From cae062ed396d1686556f5a892dea3ff5aff85e28 Mon Sep 17 00:00:00 2001 From: Richard Eisenberg Date: Tue, 11 Feb 2025 15:52:38 -0500 Subject: [PATCH 01/25] Import ocaml sources for ocaml-flambda/flambda-backend@4eb95cdd48f --- upstream/ocaml_flambda/base-rev.txt | 2 +- upstream/ocaml_flambda/parsing/ast_helper.ml | 2 +- .../ocaml_flambda/parsing/ast_iterator.ml | 5 +- upstream/ocaml_flambda/parsing/ast_mapper.ml | 4 +- .../parsing/builtin_attributes.ml | 218 +- .../parsing/builtin_attributes.mli | 9 +- upstream/ocaml_flambda/parsing/depend.ml | 4 +- upstream/ocaml_flambda/parsing/parser.mly | 27 +- upstream/ocaml_flambda/parsing/parsetree.mli | 4 +- upstream/ocaml_flambda/parsing/pprintast.ml | 12 +- upstream/ocaml_flambda/parsing/printast.ml | 9 +- upstream/ocaml_flambda/typing/btype.ml | 7 +- upstream/ocaml_flambda/typing/btype.mli | 1 + upstream/ocaml_flambda/typing/ctype.ml | 418 ++-- upstream/ocaml_flambda/typing/ctype.mli | 11 +- upstream/ocaml_flambda/typing/datarepr.ml | 17 +- upstream/ocaml_flambda/typing/env.ml | 191 +- upstream/ocaml_flambda/typing/env.mli | 29 +- upstream/ocaml_flambda/typing/includecore.ml | 115 +- upstream/ocaml_flambda/typing/includecore.mli | 5 + upstream/ocaml_flambda/typing/jkind.ml | 1828 +++++++++++++---- upstream/ocaml_flambda/typing/jkind.mli | 420 ++-- upstream/ocaml_flambda/typing/jkind_axis.ml | 440 ++-- upstream/ocaml_flambda/typing/jkind_axis.mli | 244 ++- upstream/ocaml_flambda/typing/jkind_types.ml | 107 - upstream/ocaml_flambda/typing/jkind_types.mli | 97 +- upstream/ocaml_flambda/typing/mode.ml | 91 +- upstream/ocaml_flambda/typing/mode_intf.mli | 59 +- upstream/ocaml_flambda/typing/oprint.ml | 129 +- upstream/ocaml_flambda/typing/outcometree.mli | 5 +- upstream/ocaml_flambda/typing/parmatch.ml | 8 +- upstream/ocaml_flambda/typing/predef.ml | 129 +- upstream/ocaml_flambda/typing/predef.mli | 9 +- upstream/ocaml_flambda/typing/printtyp.ml | 70 +- upstream/ocaml_flambda/typing/subst.ml | 96 +- upstream/ocaml_flambda/typing/typeclass.ml | 2 - upstream/ocaml_flambda/typing/typecore.ml | 110 +- upstream/ocaml_flambda/typing/typecore.mli | 3 +- upstream/ocaml_flambda/typing/typedecl.ml | 629 ++++-- upstream/ocaml_flambda/typing/typedecl.mli | 3 + .../typing/typedecl_separability.ml | 5 +- .../ocaml_flambda/typing/typedecl_variance.ml | 6 +- upstream/ocaml_flambda/typing/typedtree.ml | 21 +- upstream/ocaml_flambda/typing/typemod.ml | 137 +- upstream/ocaml_flambda/typing/typemode.ml | 114 +- upstream/ocaml_flambda/typing/typemode.mli | 10 +- upstream/ocaml_flambda/typing/typeopt.ml | 19 +- upstream/ocaml_flambda/typing/types.ml | 222 +- upstream/ocaml_flambda/typing/types.mli | 128 +- upstream/ocaml_flambda/typing/typetexp.ml | 27 +- upstream/ocaml_flambda/typing/typetexp.mli | 7 + upstream/ocaml_flambda/typing/zero_alloc.ml | 56 +- upstream/ocaml_flambda/typing/zero_alloc.mli | 7 +- upstream/ocaml_flambda/utils/clflags.ml | 24 +- upstream/ocaml_flambda/utils/clflags.mli | 11 +- upstream/ocaml_flambda/utils/misc.ml | 119 +- upstream/ocaml_flambda/utils/misc.mli | 106 +- upstream/ocaml_flambda/utils/warnings.ml | 15 + upstream/ocaml_flambda/utils/warnings.mli | 1 + .../utils/zero_alloc_annotations.ml | 95 +- .../utils/zero_alloc_annotations.mli | 40 +- 61 files changed, 4678 insertions(+), 2061 deletions(-) diff --git a/upstream/ocaml_flambda/base-rev.txt b/upstream/ocaml_flambda/base-rev.txt index 874a87949..171be65df 100644 --- a/upstream/ocaml_flambda/base-rev.txt +++ b/upstream/ocaml_flambda/base-rev.txt @@ -1 +1 @@ -df4a6e0ba4f74dc790e0ad79f15ea73be1225c4b +4eb95cdd48f3f2f6193e59c53e4640a008a7fd13 diff --git a/upstream/ocaml_flambda/parsing/ast_helper.ml b/upstream/ocaml_flambda/parsing/ast_helper.ml index 458c71f2a..ed0b340b4 100644 --- a/upstream/ocaml_flambda/parsing/ast_helper.ml +++ b/upstream/ocaml_flambda/parsing/ast_helper.ml @@ -142,7 +142,7 @@ module Typ = struct | Default as x -> x | Abbreviation _ as x -> x | Mod (jkind, modes) -> Mod (loop_jkind jkind, modes) - | With (jkind, typ) -> With (loop_jkind jkind, loop typ) + | With (jkind, typ, modalities) -> With (loop_jkind jkind, loop typ, modalities) | Kind_of typ -> Kind_of (loop typ) | Product jkinds -> Product (List.map loop_jkind jkinds) in diff --git a/upstream/ocaml_flambda/parsing/ast_iterator.ml b/upstream/ocaml_flambda/parsing/ast_iterator.ml index c1ca9b78b..7311e2586 100644 --- a/upstream/ocaml_flambda/parsing/ast_iterator.ml +++ b/upstream/ocaml_flambda/parsing/ast_iterator.ml @@ -842,9 +842,10 @@ let default_iterator = | Mod (t, mode_list) -> this.jkind_annotation this t; this.modes this mode_list - | With (t, ty) -> + | With (t, ty, modalities) -> this.jkind_annotation this t; - this.typ this ty + this.typ this ty; + this.modalities this modalities | Kind_of ty -> this.typ this ty | Product ts -> List.iter (this.jkind_annotation this) ts); diff --git a/upstream/ocaml_flambda/parsing/ast_mapper.ml b/upstream/ocaml_flambda/parsing/ast_mapper.ml index 0eb886cde..b6c255798 100644 --- a/upstream/ocaml_flambda/parsing/ast_mapper.ml +++ b/upstream/ocaml_flambda/parsing/ast_mapper.ml @@ -946,8 +946,8 @@ let default_mapper = | Abbreviation (s : string) -> Abbreviation s | Mod (t, mode_list) -> Mod (this.jkind_annotation this t, this.modes this mode_list) - | With (t, ty) -> - With (this.jkind_annotation this t, this.typ this ty) + | With (t, ty, modalities) -> + With (this.jkind_annotation this t, this.typ this ty, this.modalities this modalities) | Kind_of ty -> Kind_of (this.typ this ty) | Product ts -> Product (List.map (this.jkind_annotation this) ts) in diff --git a/upstream/ocaml_flambda/parsing/builtin_attributes.ml b/upstream/ocaml_flambda/parsing/builtin_attributes.ml index 042062ebd..1c21cd535 100644 --- a/upstream/ocaml_flambda/parsing/builtin_attributes.ml +++ b/upstream/ocaml_flambda/parsing/builtin_attributes.ml @@ -504,9 +504,8 @@ let has_unboxed attrs = has_attribute "unboxed" attrs let has_boxed attrs = has_attribute "boxed" attrs -let has_unsafe_allow_any_kind_in_intf attrs = has_attribute "unsafe_allow_any_kind_in_intf" attrs - -let has_unsafe_allow_any_kind_in_impl attrs = has_attribute "unsafe_allow_any_kind_in_impl" attrs +let has_unsafe_allow_any_mode_crossing attrs = + has_attribute "unsafe_allow_any_mode_crossing" attrs let parse_empty_payload attr = match attr.attr_payload with @@ -593,27 +592,39 @@ let parse_attribute_with_ident_payload attr ~name ~f = | Some i -> f i | None -> ()) -let zero_alloc_attribute (attr : Parsetree.attribute) = +let zero_alloc_attribute ~in_signature (attr : Parsetree.attribute) = + let module A = Zero_alloc_annotations in + let msg = + if in_signature then + "Only 'all' and 'all_opt' are supported" + else + "Only 'all', 'all_opt', 'check', 'check_opt', 'check_all', and 'check_none' are supported" + in + let warn () = + warn_payload attr.attr_loc attr.attr_name.txt msg + in + let set_if_not_in_sig r v = + if not in_signature then + r := v + else + warn () + in parse_attribute_with_ident_payload attr ~name:"zero_alloc" ~f:(function - | "check" -> Clflags.zero_alloc_check := Zero_alloc_annotations.Check_default - | "check_opt" -> Clflags.zero_alloc_check := Zero_alloc_annotations.Check_opt_only - | "check_all" -> Clflags.zero_alloc_check := Zero_alloc_annotations.Check_all - | "check_none" -> Clflags.zero_alloc_check := Zero_alloc_annotations.No_check - | "all" -> - Clflags.zero_alloc_check_assert_all := true + | "check" -> set_if_not_in_sig Clflags.zero_alloc_check A.Check.Check_default + | "check_opt" -> set_if_not_in_sig Clflags.zero_alloc_check A.Check.Check_opt_only + | "check_all" -> set_if_not_in_sig Clflags.zero_alloc_check A.Check.Check_all + | "check_none" -> set_if_not_in_sig Clflags.zero_alloc_check A.Check.No_check + | "all" -> Clflags.zero_alloc_assert := A.Assert.Assert_all + | "all_opt" -> Clflags.zero_alloc_assert := A.Assert.Assert_all_opt | _ -> - warn_payload attr.attr_loc attr.attr_name.txt - "Only 'all', 'check', 'check_opt', 'check_all', and 'check_none' are supported") + warn ()) let attribute_with_ignored_payload name attr = when_attribute_is [name; "ocaml." ^ name] attr ~f:(fun () -> ()) -let unsafe_allow_any_kind_in_impl_attribute = - attribute_with_ignored_payload "unsafe_allow_any_kind_in_impl" - -let unsafe_allow_any_kind_in_intf_attribute = - attribute_with_ignored_payload "unsafe_allow_any_kind_in_intf" +let unsafe_allow_any_mode_crossing_attribute = + attribute_with_ignored_payload "unsafe_allow_any_mode_crossing" let afl_inst_ratio_attribute attr = clflags_attribute_with_int_payload attr @@ -624,7 +635,8 @@ let parse_standard_interface_attributes attr = principal_attribute attr; noprincipal_attribute attr; nolabels_attribute attr; - unsafe_allow_any_kind_in_intf_attribute attr + zero_alloc_attribute ~in_signature:true attr; + unsafe_allow_any_mode_crossing_attribute attr let parse_standard_implementation_attributes attr = warning_attribute attr; @@ -635,8 +647,8 @@ let parse_standard_implementation_attributes attr = afl_inst_ratio_attribute attr; flambda_o3_attribute attr; flambda_oclassic_attribute attr; - zero_alloc_attribute attr; - unsafe_allow_any_kind_in_impl_attribute attr + zero_alloc_attribute ~in_signature:false attr; + unsafe_allow_any_mode_crossing_attribute attr let has_no_mutable_implied_modalities attrs = has_attribute "no_mutable_implied_modalities" attrs @@ -698,6 +710,7 @@ type zero_alloc_check = opt: bool; arity: int; loc: Location.t; + custom_error_msg : string option; } type zero_alloc_assume = @@ -770,11 +783,17 @@ let get_id_from_exp = | { pexp_desc = Pexp_ident { txt = Longident.Lident id } } -> Result.Ok id | _ -> Result.Error () +type parsed_payload = + | Ident + | Const_int + | Const_string + let get_id_or_constant_from_exp = let open Parsetree in function - | { pexp_desc = Pexp_ident { txt = Longident.Lident id } } -> Result.Ok id - | { pexp_desc = Pexp_constant (Pconst_integer (s,None)) } -> Result.Ok s + | { pexp_desc = Pexp_ident { txt = Longident.Lident id } } -> Result.Ok (Ident, id) + | { pexp_desc = Pexp_constant (Pconst_integer (s,None)) } -> Result.Ok (Const_int, s) + | { pexp_desc = Pexp_constant (Pconst_string (s,_loc,_so)) } -> Result.Ok (Const_string, s) | _ -> Result.Error () let get_ids_and_constants_from_exp exp = @@ -814,68 +833,96 @@ let parse_optional_id_payload txt loc ~empty cases payload = | Some r -> Ok r | None -> warn () +(* Looks for `custom_error_message msg` in payload. + If present, this returns `msg` and an updated payload + with `customer_error_message msg` removed. + Preserves the order of the payload. *) +let filter_custom_error_message payload = + let rec find_msg acc payload = + match payload with + | [] | [_] -> None + | (Ident, "custom_error_message")::(Const_string, msg)::payload -> + Some (msg, (List.rev acc) @ payload) + | s1::payload -> find_msg (s1 :: acc) payload + in + find_msg [] payload + (* Looks for `arity n` in payload. If present, this returns `n` and an updated payload with `arity n` removed. Note it may change the order of the payload, which is fine because we sort it later. *) let filter_arity payload = - let is_arity s1 s2 = - match s1 with - | "arity" -> int_of_string_opt s2 - | _ -> None - in let rec find_arity acc payload = match payload with | [] | [_] -> None - | s1 :: ((s2 :: payload) as payload') -> - begin match is_arity s1 s2 with - | Some n -> Some (n, acc @ payload) - | None -> find_arity (s1 :: acc) payload' - end + | (Ident, "arity") as s1 :: ((Const_int, n) :: payload) as payload' -> + (match int_of_string_opt n with + | Some n -> Some (n, acc @ payload) + | None -> find_arity (s1 :: acc) payload') + | s1::payload' -> find_arity (s1 :: acc) payload' in find_arity [] payload +(* If "assume_unless_opt" is not found returns None, otherwise + returns the rest of the payload. Note it may change the order of the payload, + which is fine because we sort it later. *) +let filter_assume_unless_opt payload = + let rec find acc payload = + match payload with + | [] -> None + | "assume_unless_opt"::tl -> Some (acc @ tl) + | hd::tl -> find (hd::acc) tl + in + find [] payload + let zero_alloc_lookup_table = (* These are the possible payloads (sans arity) paired with a function that returns the corresponding check_attribute, given the arity and the loc. *) [ (["assume"], - fun arity loc -> + fun arity loc _ -> + Assume { strict = false; never_returns_normally = false; + never_raises = false; + arity; loc; }); + (["assume_unless_opt"], + fun arity loc _ -> + (* same as "assume" *) Assume { strict = false; never_returns_normally = false; never_raises = false; arity; loc; }); (["strict"], - fun arity loc -> - Check { strict = true; opt = false; arity; loc; }); + fun arity loc custom_error_msg -> + Check { strict = true; opt = false; arity; loc; custom_error_msg; }); (["opt"], - fun arity loc -> - Check { strict = false; opt = true; arity; loc; }); + fun arity loc custom_error_msg -> + Check { strict = false; opt = true; arity; loc; custom_error_msg; }); (["opt"; "strict"; ], - fun arity loc -> - Check { strict = true; opt = true; arity; loc; }); + fun arity loc custom_error_msg -> + Check { strict = true; opt = true; arity; loc; custom_error_msg; }); (["assume"; "strict"], - fun arity loc -> + fun arity loc _ -> Assume { strict = true; never_returns_normally = false; never_raises = false; arity; loc; }); (["assume"; "never_returns_normally"], - fun arity loc -> + fun arity loc _ -> Assume { strict = false; never_returns_normally = true; never_raises = false; arity; loc; }); (["assume"; "never_returns_normally"; "strict"], - fun arity loc -> + fun arity loc _ -> Assume { strict = true; never_returns_normally = true; never_raises = false; arity; loc; }); (["assume"; "error"], - fun arity loc -> + fun arity loc _ -> Assume { strict = true; never_returns_normally = true; never_raises = true; arity; loc; }); - (["ignore"], fun _ _ -> Ignore_assert_all) + (["ignore"], fun _ _ _ -> Ignore_assert_all) ] -let parse_zero_alloc_payload ~loc ~arity ~warn ~empty payload = +let parse_zero_alloc_payload ~loc ~arity ~custom_error_message + ~warn ~empty payload = (* This parses the remainder of the payload after arity has been parsed out. *) match payload with @@ -884,34 +931,56 @@ let parse_zero_alloc_payload ~loc ~arity ~warn ~empty payload = let payload = List.sort String.compare payload in match List.assoc_opt payload zero_alloc_lookup_table with | None -> warn (); Default_zero_alloc - | Some ca -> ca arity loc + | Some ca -> ca arity loc custom_error_message -let parse_zero_alloc_attribute ~is_arity_allowed ~default_arity attr = +let parse_zero_alloc_attribute ~in_signature ~on_application ~default_arity attr = match attr with | None -> Default_zero_alloc | Some {Parsetree.attr_name = {txt; loc}; attr_payload = payload} -> let warn () = let ( %> ) f g x = g (f x) in let msg = - zero_alloc_lookup_table + let custom_payloads = + let fail _ _ _ = assert false in + [ + (["arity "], fail); + (["custom_error_message "], fail) + ] + in + (zero_alloc_lookup_table@custom_payloads) |> List.map (fst %> String.concat " " %> Printf.sprintf "'%s'") |> String.concat ", " |> Printf.sprintf "It must be either %s or empty" in Location.prerr_warning loc (Warnings.Attribute_payload (txt, msg)) in - let empty arity = - Check { strict = false; opt = false; arity; loc; } + let empty arity custom_error_msg = + Check { strict = false; opt = false; arity; loc; custom_error_msg; } in match get_optional_payload get_ids_and_constants_from_exp payload with | Error () -> warn (); Default_zero_alloc - | Ok None -> empty default_arity + | Ok None -> empty default_arity None | Ok (Some payload) -> + let custom_error_message, payload = + match filter_custom_error_message payload with + | None -> None, payload + | Some (custom_error_message, payload) -> + let is_assume = function + | (Ident, ("assume" | "assume_unless_opt")) -> true + | _ -> false + in + if List.exists is_assume payload then + (warn_payload loc txt + "The \"custom_error_message\" payload is not supported with \"assume\"."; + None, payload) + else + Some custom_error_message, payload + in let arity, payload = match filter_arity payload with | None -> default_arity, payload | Some (user_arity, payload) -> - if is_arity_allowed then + if in_signature then user_arity, payload else (warn_payload loc txt @@ -919,12 +988,48 @@ let parse_zero_alloc_attribute ~is_arity_allowed ~default_arity attr = signatures"; default_arity, payload) in - parse_zero_alloc_payload ~loc ~arity ~warn ~empty:(empty arity) payload - -let get_zero_alloc_attribute ~in_signature ~default_arity l = + let _, payload = List.split payload in + let parse p = + let empty = empty arity custom_error_message in + parse_zero_alloc_payload ~loc ~arity ~custom_error_message ~warn ~empty p + in + match filter_assume_unless_opt payload with + | None -> parse payload + | Some rest -> + if in_signature then + (warn_payload loc txt + "The payload \"assume_unless_opt\" is not supported \ + in signatures."; + (* Treat [@zero_alloc assume_unless_opt] as [@zero_alloc] in signatures. *) + parse rest) + else + let no_other_payload = List.compare_length_with rest 0 = 0 in + if no_other_payload then ( + if is_zero_alloc_check_enabled ~opt:true then + (if on_application then + (* Treat as if there is no attribute. + Check is not allowed on applications. *) + Default_zero_alloc + else + (* Treat [@zero_alloc assume_unless_opt] as [@zero_alloc], + forcing the function to be checked. + Setting [opt = false] to satisfy [@zero_alloc] + and not only [@zero_alloc opt] on the corresponding signatures. *) + empty arity custom_error_message) + else + (* Treat "assume_unless_opt" as "assume". + Reuse standard parsing for better error messages. *) + parse payload) + else ( + (* No support for other payloads with "assume_unless_opt". *) + warn (); + Default_zero_alloc) + + +let get_zero_alloc_attribute ~in_signature ~on_application ~default_arity l = let attr = select_attribute is_zero_alloc_attribute l in let res = - parse_zero_alloc_attribute ~is_arity_allowed:in_signature ~default_arity + parse_zero_alloc_attribute ~in_signature ~on_application ~default_arity attr in (match attr, res with @@ -949,6 +1054,7 @@ let zero_alloc_attribute_only_assume_allowed za = let name = "zero_alloc" in let msg = "Only the following combinations are supported in this context: \ 'zero_alloc assume', \ + 'zero_alloc assume_unless_opt', \ `zero_alloc assume strict`, \ `zero_alloc assume error`,\ `zero_alloc assume never_returns_normally`,\ diff --git a/upstream/ocaml_flambda/parsing/builtin_attributes.mli b/upstream/ocaml_flambda/parsing/builtin_attributes.mli index d1f95feac..abe5ba0d1 100644 --- a/upstream/ocaml_flambda/parsing/builtin_attributes.mli +++ b/upstream/ocaml_flambda/parsing/builtin_attributes.mli @@ -35,8 +35,7 @@ - ocaml.tailcall - ocaml.tail_mod_cons - ocaml.unboxed - - ocaml.unsafe_allow_any_kind_in_impl - - ocaml.unsafe_allow_any_kind_in_intf + - ocaml.unsafe_allow_any_mode_crossing - ocaml.untagged - ocaml.unrolled - ocaml.warnerror @@ -200,8 +199,7 @@ val explicit_arity: Parsetree.attributes -> bool val has_unboxed: Parsetree.attributes -> bool val has_boxed: Parsetree.attributes -> bool -val has_unsafe_allow_any_kind_in_impl: Parsetree.attributes -> bool -val has_unsafe_allow_any_kind_in_intf: Parsetree.attributes -> bool +val has_unsafe_allow_any_mode_crossing : Parsetree.attributes -> bool val parse_standard_interface_attributes : Parsetree.attribute -> unit val parse_standard_implementation_attributes : Parsetree.attribute -> unit @@ -285,6 +283,7 @@ type zero_alloc_check = opt: bool; arity: int; loc: Location.t; + custom_error_msg : string option; } type zero_alloc_assume = @@ -311,7 +310,7 @@ val is_zero_alloc_check_enabled : opt:bool -> bool "arity n" field is allowed, and whether we track this attribute for warning 199. *) val get_zero_alloc_attribute : - in_signature:bool -> default_arity:int -> Parsetree.attributes -> + in_signature:bool -> on_application:bool-> default_arity:int -> Parsetree.attributes -> zero_alloc_attribute (* This returns the [zero_alloc_assume] if the input is an assume. Otherwise, diff --git a/upstream/ocaml_flambda/parsing/depend.ml b/upstream/ocaml_flambda/parsing/depend.ml index be505a8ea..ad6a73af9 100644 --- a/upstream/ocaml_flambda/parsing/depend.ml +++ b/upstream/ocaml_flambda/parsing/depend.ml @@ -139,9 +139,9 @@ and add_jkind bv (jkind : jkind_annotation) = | Default -> () | Abbreviation _ -> () | Mod (jkind, (_ : modes)) -> add_jkind bv jkind - | With (jkind, typ) -> + | With (jkind, typ, (_ : modalities)) -> add_jkind bv jkind; - add_type bv typ + add_type bv typ; | Kind_of typ -> add_type bv typ | Product jkinds -> diff --git a/upstream/ocaml_flambda/parsing/parser.mly b/upstream/ocaml_flambda/parsing/parser.mly index 3d2e13a7a..89fbe3c2e 100644 --- a/upstream/ocaml_flambda/parsing/parser.mly +++ b/upstream/ocaml_flambda/parsing/parser.mly @@ -2796,16 +2796,20 @@ optional_atomic_constraint_: } | { empty_body_constraint } +fun_: + /* Cf #5939: we used to accept (fun p when e0 -> e) */ + | FUN ext_attributes fun_params body_constraint = optional_atomic_constraint_ + MINUSGREATER fun_body + { mkfunction $3 body_constraint $6 ~loc:$sloc ~attrs:$2 } + fun_expr: simple_expr %prec below_HASH { $1 } | fun_expr_attrs { let desc, attrs = $1 in mkexp_attrs ~loc:$sloc desc attrs } - /* Cf #5939: we used to accept (fun p when e0 -> e) */ - | FUN ext_attributes fun_params body_constraint = optional_atomic_constraint_ - MINUSGREATER fun_body - { mkfunction $3 body_constraint $6 ~loc:$sloc ~attrs:$2 } + | fun_ + { $1 } | expr_ { $1 } | let_bindings(ext) IN seq_expr @@ -2890,16 +2894,23 @@ fun_expr: { mkexp ~loc:$sloc (Pexp_apply($1, $2)) } | STACK simple_expr { mkexp ~loc:$sloc (Pexp_stack $2) } + | STACK or_function(fun_) + { mkexp ~loc:$sloc (Pexp_stack $2) } | labeled_tuple %prec below_COMMA { mkexp ~loc:$sloc (Pexp_tuple $1) } - | mkrhs(constr_longident) simple_expr %prec below_HASH - { mkexp ~loc:$sloc (Pexp_construct($1, Some $2)) } + | constructor_app %prec below_HASH { $1 } + | STACK constructor_app %prec below_HASH + { mkexp ~loc:$sloc (Pexp_stack $2) } | name_tag simple_expr %prec below_HASH { mkexp ~loc:$sloc (Pexp_variant($1, Some $2)) } | e1 = fun_expr op = op(infix_operator) e2 = expr { mkexp ~loc:$sloc (mkinfix e1 op e2) } ; +%inline constructor_app: + | mkrhs(constr_longident) simple_expr + { mkexp ~loc:$sloc (Pexp_construct($1, Some $2)) } + simple_expr: | LPAREN seq_expr RPAREN { reloc_exp ~loc:$sloc $2 } @@ -3969,8 +3980,8 @@ jkind_desc: in Mod ($1, modes) } - | jkind_annotation WITH core_type { - With ($1, $3) + | jkind_annotation WITH core_type optional_atat_modalities_expr { + With ($1, $3, $4) } | ident { Abbreviation $1 diff --git a/upstream/ocaml_flambda/parsing/parsetree.mli b/upstream/ocaml_flambda/parsing/parsetree.mli index 74aba7388..b3b6958df 100644 --- a/upstream/ocaml_flambda/parsing/parsetree.mli +++ b/upstream/ocaml_flambda/parsing/parsetree.mli @@ -1296,8 +1296,10 @@ and module_binding = and jkind_annotation_desc = | Default | Abbreviation of string + (* CR layouts v2.8: [mod] can have only layouts on the left, not + full kind annotations. We may want to narrow this type some. *) | Mod of jkind_annotation * modes - | With of jkind_annotation * core_type + | With of jkind_annotation * core_type * modalities | Kind_of of core_type | Product of jkind_annotation list diff --git a/upstream/ocaml_flambda/parsing/pprintast.ml b/upstream/ocaml_flambda/parsing/pprintast.ml index 29d289289..11777bed4 100644 --- a/upstream/ocaml_flambda/parsing/pprintast.ml +++ b/upstream/ocaml_flambda/parsing/pprintast.ml @@ -463,11 +463,13 @@ and jkind_annotation ?(nested = false) ctxt f k = match k.pjkind_desc with (pp_print_list ~pp_sep:pp_print_space mode) modes ) f (t, modes) end - | With (t, ty) -> - Misc.pp_parens_if nested (fun f (t, ty) -> - pp f "%a with %a" (jkind_annotation ~nested:true ctxt) t (core_type ctxt) - ty - ) f (t, ty) + | With (t, ty, modalities) -> + Misc.pp_parens_if nested (fun f (t, ty, modalities) -> + pp f "%a with %a%a" + (jkind_annotation ~nested:true ctxt) t + (core_type ctxt) ty + optional_space_atat_modalities modalities; + ) f (t, ty, modalities) | Kind_of ty -> pp f "kind_of_ %a" (core_type ctxt) ty | Product ts -> Misc.pp_parens_if nested (fun f ts -> diff --git a/upstream/ocaml_flambda/parsing/printast.ml b/upstream/ocaml_flambda/parsing/printast.ml index cda06afc0..cb4f26d8d 100644 --- a/upstream/ocaml_flambda/parsing/printast.ml +++ b/upstream/ocaml_flambda/parsing/printast.ml @@ -506,10 +506,11 @@ and jkind_annotation i ppf (jkind : jkind_annotation) = line i ppf "Mod\n"; jkind_annotation (i+1) ppf jkind; modes (i+1) ppf m - | With (jkind, type_) -> + | With (jkind, type_, modalities_) -> line i ppf "With\n"; jkind_annotation (i+1) ppf jkind; - core_type (i+1) ppf type_ + core_type (i+1) ppf type_; + modalities (i+1) ppf modalities_ | Kind_of type_ -> line i ppf "Kind_of\n"; core_type (i+1) ppf type_ @@ -575,7 +576,9 @@ and type_declaration i ppf x = type_kind (i+1) ppf x.ptype_kind; line i ppf "ptype_private = %a\n" fmt_private_flag x.ptype_private; line i ppf "ptype_manifest =\n"; - option (i+1) core_type ppf x.ptype_manifest + option (i+1) core_type ppf x.ptype_manifest; + line i ppf "ptype_jkind_annotation =\n"; + option (i+1) jkind_annotation ppf x.ptype_jkind_annotation and attribute i ppf k a = line i ppf "%s \"%s\"\n" k a.attr_name.txt; diff --git a/upstream/ocaml_flambda/typing/btype.ml b/upstream/ocaml_flambda/typing/btype.ml index 7c6adf272..ec24c1ca1 100644 --- a/upstream/ocaml_flambda/typing/btype.ml +++ b/upstream/ocaml_flambda/typing/btype.ml @@ -48,6 +48,7 @@ module TypeHash = struct include TransientTypeHash let mem hash = wrap_repr (mem hash) let add hash = wrap_repr (add hash) + let replace hash = wrap_repr (replace hash) let remove hash = wrap_repr (remove hash) let find hash = wrap_repr (find hash) let find_opt hash = wrap_repr (find_opt hash) @@ -337,16 +338,16 @@ let map_type_expr_cstr_args f = function let iter_type_expr_kind f = function | Type_abstract _ -> () - | Type_variant (cstrs, _) -> + | Type_variant (cstrs, _, _) -> List.iter (fun cd -> iter_type_expr_cstr_args f cd.cd_args; Option.iter f cd.cd_res ) cstrs - | Type_record(lbls, _) -> + | Type_record(lbls, _, _) -> List.iter (fun d -> f d.ld_type) lbls - | Type_record_unboxed_product(lbls, _) -> + | Type_record_unboxed_product(lbls, _, _) -> List.iter (fun d -> f d.ld_type) lbls | Type_open -> () diff --git a/upstream/ocaml_flambda/typing/btype.mli b/upstream/ocaml_flambda/typing/btype.mli index c6b858abe..cfcb14b7f 100644 --- a/upstream/ocaml_flambda/typing/btype.mli +++ b/upstream/ocaml_flambda/typing/btype.mli @@ -41,6 +41,7 @@ module TypeHash : sig include Hashtbl.S with type key = transient_expr val mem: 'a t -> type_expr -> bool val add: 'a t -> type_expr -> 'a -> unit + val replace: 'a t -> type_expr -> 'a -> unit val remove: 'a t -> type_expr -> unit val find: 'a t -> type_expr -> 'a val find_opt: 'a t -> type_expr -> 'a option diff --git a/upstream/ocaml_flambda/typing/ctype.ml b/upstream/ocaml_flambda/typing/ctype.ml index 547b8f2d6..5b30bf885 100644 --- a/upstream/ocaml_flambda/typing/ctype.ml +++ b/upstream/ocaml_flambda/typing/ctype.ml @@ -694,7 +694,7 @@ let closed_type_decl decl = begin match decl.type_kind with Type_abstract _ -> () - | Type_variant (v, _rep) -> + | Type_variant (v, _rep, _) -> List.iter (fun {cd_args; cd_res; _} -> match cd_res with @@ -712,9 +712,9 @@ let closed_type_decl decl = | None -> List.iter close_type (tys_of_constr_args cd_args) ) v - | Type_record(r, _rep) -> + | Type_record(r, _rep, _) -> List.iter (fun l -> close_type l.ld_type) r - | Type_record_unboxed_product(r, _rep) -> + | Type_record_unboxed_product(r, _rep, _) -> List.iter (fun l -> close_type l.ld_type) r | Type_open -> () end; @@ -1402,7 +1402,6 @@ let new_local_type ?(loc = Location.none) ?manifest_and_scope origin jkind = type_attributes = []; type_unboxed_default = false; type_uid = Uid.mk ~current_unit:(Env.get_unit_name ()); - type_has_illegal_crossings = false; } let existential_name name_counter ty = @@ -1466,10 +1465,17 @@ let instance_parameterized_type ?keep_names sch_args sch = (ty_args, ty) ) +let instance_parameterized_kind args jkind = + For_copy.with_scope (fun copy_scope -> + let ty_args = List.map (fun t -> copy copy_scope t) args in + let jkind = Jkind.map_type_expr (copy copy_scope) jkind in + (ty_args, jkind) + ) + (* [map_kind f kind] maps [f] over all the types in [kind]. [f] must preserve jkinds *) let map_kind f = function | (Type_abstract _ | Type_open) as k -> k - | Type_variant (cl, rep) -> + | Type_variant (cl, rep, mc) -> Type_variant ( List.map (fun c -> @@ -1477,19 +1483,19 @@ let map_kind f = function cd_args = map_type_expr_cstr_args f c.cd_args; cd_res = Option.map f c.cd_res }) - cl, rep) - | Type_record (fl, rr) -> + cl, rep, mc) + | Type_record (fl, rr, mc) -> Type_record ( List.map (fun l -> {l with ld_type = f l.ld_type} - ) fl, rr) - | Type_record_unboxed_product (fl, rr) -> + ) fl, rr, mc) + | Type_record_unboxed_product (fl, rr, mc) -> Type_record_unboxed_product ( List.map (fun l -> {l with ld_type = f l.ld_type} - ) fl, rr) + ) fl, rr, mc) let instance_declaration decl = @@ -1498,6 +1504,7 @@ let instance_declaration decl = {decl with type_params = List.map copy decl.type_params; type_manifest = Option.map copy decl.type_manifest; type_kind = map_kind copy decl.type_kind; + type_jkind = Jkind.map_type_expr copy decl.type_jkind; } ) @@ -1828,6 +1835,20 @@ let subst env level priv abbrev oty params args body = undo_abbrev (); raise Cannot_subst +let jkind_subst env level params args jkind = + if List.length params <> List.length args then raise Cannot_subst; + let old_level = !current_level in + current_level := level; + let (params', jkind') = instance_parameterized_kind params jkind in + let uenv = Expression {env; in_subst = true} in + try + List.iter2 (!unify_var' uenv) params' args; + current_level := old_level; + jkind' + with Unify _ -> + current_level := old_level; + raise Cannot_subst + (* CR layouts: Can we actually just always ignore jkinds in apply/subst? It seems like almost, but there may be cases where it would forget @@ -2076,6 +2097,8 @@ let try_expand_safe_opt env ty = let expand_head_opt env ty = try try_expand_head try_expand_safe_opt env ty with Cannot_expand -> ty +let is_principal ty = + not !Clflags.principal || get_level ty = generic_level type unbox_result = (* unboxing process made a step: either an unboxing or removal of a [Tpoly] *) @@ -2099,14 +2122,14 @@ let unbox_once env ty = let ty2 = match get_desc ty2 with Tpoly (t, _) -> t | _ -> ty2 in Stepped (apply ty2) | None -> begin match decl.type_kind with - | Type_record_unboxed_product ([_], Record_unboxed_product) -> + | Type_record_unboxed_product ([_], Record_unboxed_product, _) -> (* [find_unboxed_type] would have returned [Some] *) Misc.fatal_error "Ctype.unbox_once" | Type_record_unboxed_product - ((_::_::_ as lbls), Record_unboxed_product) -> + ((_::_::_ as lbls), Record_unboxed_product, _) -> Stepped_record_unboxed_product (List.map (fun ld -> apply ld.ld_type) lbls) - | Type_record_unboxed_product ([], _) -> + | Type_record_unboxed_product ([], _, _) -> Misc.fatal_error "Ctype.unboxed_once: fieldless record" | Type_abstract _ | Type_record _ | Type_variant _ | Type_open -> Final_result @@ -2163,6 +2186,11 @@ let tvariant_not_immediate row = | _ -> false) (row_fields row) +(* forward declarations *) +let type_equal' = ref (fun _ _ _ -> Misc.fatal_error "type_equal") +let type_jkind_purely_if_principal' = + ref (fun _ _ -> Misc.fatal_error "type_jkind_purely_if_principal") + (* We parameterize [estimate_type_jkind] by a function [expand_component] because some callers want expansion of types and others don't. *) @@ -2172,15 +2200,46 @@ let rec estimate_type_jkind ~expand_component env ty = | Tarrow _ -> Jkind.for_arrow | Ttuple _ -> Jkind.Builtin.value ~why:Tuple | Tunboxed_tuple ltys -> + let tys_modalities = + List.map (fun (_, ty) -> expand_component ty, + Mode.Modality.Value.Const.id) ltys + in + (* CR layouts v2.8: This pretty ridiculous use of [estimate_type_jkind] + just to throw most of it away will go away once we get [layout_of]. *) + let jkinds = + List.map + (fun (ty, _) -> estimate_type_jkind ~expand_component env ty) + tys_modalities + in + let layouts = List.map Jkind.extract_layout jkinds in Jkind.Builtin.product - (List.map (fun (_, ty) -> - estimate_type_jkind ~expand_component env (expand_component ty)) ltys) - ~why:Unboxed_tuple - | Tconstr (p, _, _) -> begin - try - (Env.find_type p env).type_jkind - with - Not_found -> Jkind.Builtin.any ~why:(Missing_cmi p) + ~jkind_of_type:(estimate_type_jkind ~expand_component env) + ~jkind_of_first_type:(fun () -> + match jkinds with + | first_jkind :: _ -> first_jkind + | _ -> Misc.fatal_error + "Ctype.estimate_type_jkind: use of jkind_of_first_type \ + with more than 1 type") + ~why:Unboxed_tuple tys_modalities layouts + | Tconstr (p, args, _) -> begin try + let type_decl = Env.find_type p env in + let jkind = type_decl.type_jkind in + (* Checking [has_with_bounds] here is needed for correctness, because + intersection types sometimes do not unify with themselves. Removing + this check causes typing-misc/pr7937.ml to fail. *) + if Jkind.has_with_bounds jkind + then + let level = get_level ty in + (* CR layouts v2.8: We could possibly skip this substitution if we're + called from [constrain_type_jkind]; the jkind returned without + substing is just weaker than the one we would get by substing. *) + jkind_subst env level type_decl.type_params args jkind + else + jkind + with + (* CR layouts v2.8: It will be confusing when a [Cannot_subst] leads to + a [Missing_cmi]. *) + | Cannot_subst | Not_found -> Jkind.Builtin.any ~why:(Missing_cmi p) end | Tobject _ -> Jkind.for_object | Tfield _ -> Jkind.Builtin.value ~why:Tfield @@ -2191,83 +2250,26 @@ let rec estimate_type_jkind ~expand_component env ty = then Jkind.Builtin.value ~why:Polymorphic_variant else Jkind.Builtin.immediate ~why:Immediate_polymorphic_variant | Tunivar { jkind } -> Jkind.disallow_right jkind - | Tpoly (ty, _) -> estimate_type_jkind ~expand_component env ty + | Tpoly (ty, _) -> + let jkind_of_type = !type_jkind_purely_if_principal' env in + estimate_type_jkind ~expand_component env ty |> + (* The jkind of [ty] might mention the variables bound in this [Tpoly] + node, and so just returning it here would be wrong. Instead, we need + to eliminate these variables. For now, we just [round_up] to eliminate + _all_ with-bounds. We can imagine doing better, just rounding up those + variables bound in this [Tpoly]. *) + (* CR layouts v2.8: Consider doing better -- but only once we can write + down a test case that cares. *) + Jkind.round_up ~jkind_of_type |> + Jkind.disallow_right | Tpackage _ -> Jkind.Builtin.value ~why:First_class_module -(* CR layouts v7.2: Remove this function once we have have kind-polymorphic type - declarations, and replace its uses with - [estimate_type_jkind ~expand_component:(get_unboxed_type_approximation env)]. - - [type_jkind_deep] calulates a jkind from a type expression, deeply - unfolding unboxed types. - - This deep unfolding is necessary (for now) for declarations like the - following: - - type 'a t = #{ i : 'a ; j : 'a } - type int_t : immediate & immediate = int t - - Otherwise, [int_t] will be given kind [value & value]. - - This function duplicates functionality from [find_unboxed_type] and - [constrain_type_jkind]. We're not to factoring out the shared logic because - this function will no longer be necessary once we have kind-polymorphic type - declarations. - - Returns (ran_out_of_fuel, best_effort_jkind). -*) -let rec type_jkind_deep env ty_prev ty fuel = - let fuel = fuel - 1 in - if fuel < 0 then - let _, jkind = type_unboxed_jkind_deep env ty fuel in - true, jkind - else - let ty = expand_head_opt env ty in - match unbox_once env ty with - | Stepped ty' -> type_jkind_deep env ty ty' fuel - | Stepped_record_unboxed_product component_tys -> - let out_of_fuel, component_jkinds = - types_jkinds_deep env component_tys fuel in - out_of_fuel, Jkind.Builtin.product ~why:Unboxed_record component_jkinds - | Final_result -> type_unboxed_jkind_deep env ty fuel - | Missing _ -> type_unboxed_jkind_deep env ty_prev fuel -and types_jkinds_deep env tys fuel = - List.fold_left_map (fun any_out_of_fuel ty -> - let out_of_fuel, jkind = type_jkind_deep env ty ty fuel in - (any_out_of_fuel || out_of_fuel), jkind - ) false tys -and type_unboxed_jkind_deep env ty fuel = - (* We've scraped off [@@unboxed] and unboxed records as much as we can. *) - match get_desc ty with - | Tvar { jkind } -> false, Jkind.disallow_right jkind - | Tarrow _ -> false, Jkind.for_arrow - | Ttuple _ -> false, Jkind.Builtin.value ~why:Tuple - | Tunboxed_tuple ltys -> - let out_of_fuel, component_jkinds = - types_jkinds_deep env (List.map snd ltys) fuel in - out_of_fuel, Jkind.Builtin.product ~why:Unboxed_tuple component_jkinds - | Tconstr (p, _, _) -> begin - try - false, (Env.find_type p env).type_jkind - with - Not_found -> false, Jkind.Builtin.any ~why:(Missing_cmi p) - end - | Tobject _ -> false, Jkind.for_object - | Tfield _ -> false, Jkind.Builtin.value ~why:Tfield - | Tnil -> false, Jkind.Builtin.value ~why:Tnil - | Tlink _ | Tsubst _ -> assert false - | Tvariant row -> - if tvariant_not_immediate row - then false, Jkind.Builtin.value ~why:Polymorphic_variant - else false, Jkind.Builtin.immediate ~why:Immediate_polymorphic_variant - | Tunivar { jkind } -> false, Jkind.disallow_right jkind - | Tpoly (ty, _) -> type_unboxed_jkind_deep env ty fuel - | Tpackage _ -> false, Jkind.Builtin.value ~why:First_class_module - let type_jkind env ty = - let _, jkind = type_jkind_deep env ty ty 100 in - jkind + estimate_type_jkind ~expand_component:(get_unboxed_type_approximation env) env + (get_unboxed_type_approximation env ty) +(* CR layouts v2.8: This function is quite suspect. See Jane Street internal + gdoc titled "Let's kill type_jkind_purely". *) let type_jkind_purely env ty = if !Clflags.principal || Env.has_local_constraints env then (* We snapshot to keep this pure; see the test in [typing-local/crossing.ml] @@ -2279,6 +2281,14 @@ let type_jkind_purely env ty = else type_jkind env ty +(* CR layouts v2.8: It's possible we can remove this function if we change + [jkind_subst] to not substitute non-principal things. Investigate. *) +let type_jkind_purely_if_principal env ty = + match is_principal ty with + | true -> Some (type_jkind_purely env ty) + | false -> None +let () = type_jkind_purely_if_principal' := type_jkind_purely_if_principal + let estimate_type_jkind = estimate_type_jkind ~expand_component:Fun.id (**** checking jkind relationships ****) @@ -2287,6 +2297,8 @@ let estimate_type_jkind = estimate_type_jkind ~expand_component:Fun.id then we will update the jkind of type variables to make the check true, if possible. If true, we won't (but will still instantiate sort variables). *) let constrain_type_jkind ~fixed env ty jkind = + let type_equal = !type_equal' env in + let jkind_of_type = type_jkind_purely_if_principal env in (* The [expanded] argument says whether we've already tried [expand_head_opt]. The "fuel" argument is used because we're duplicating the loop of @@ -2335,7 +2347,7 @@ let constrain_type_jkind ~fixed env ty jkind = it first. *) let jkind_inter = - Jkind.intersection_or_error + Jkind.intersection_or_error ~type_equal ~jkind_of_type ~reason:Tyvar_refinement_intersection ty's_jkind jkind in Result.map (set_var_jkind ty) jkind_inter @@ -2345,7 +2357,9 @@ let constrain_type_jkind ~fixed env ty jkind = | Tpoly (t, _) -> loop ~fuel ~expanded:false t ty's_jkind jkind | _ -> - match Jkind.sub_or_intersect ty's_jkind jkind with + match + Jkind.sub_or_intersect ~type_equal ~jkind_of_type ty's_jkind jkind + with | Sub -> Ok () | Disjoint -> (* Reporting that [ty's_jkind] must be a subjkind of [jkind] is not @@ -2441,26 +2455,6 @@ let check_type_externality env ty ext = | Ok () -> true | Error _ -> false -let check_decl_jkind env decl jkind = - (* CR layouts v2.8: This will need to be deeply reimplemented. *) - let jkind = Jkind.terrible_relax_l jkind in - match Jkind.sub_or_error decl.type_jkind jkind with - | Ok () as ok -> ok - | Error _ as err -> - match decl.type_manifest with - | None -> err - | Some ty -> check_type_jkind env ty jkind - -let constrain_decl_jkind env decl jkind = - (* CR layouts v2.8: This will need to be deeply reimplemented. *) - let jkind = Jkind.terrible_relax_l jkind in - match Jkind.sub_or_error decl.type_jkind jkind with - | Ok () as ok -> ok - | Error _ as err -> - match decl.type_manifest with - | None -> err - | Some ty -> constrain_type_jkind env ty jkind - let check_type_jkind_exn env texn ty jkind = match check_type_jkind env ty jkind with | Ok _ -> () @@ -2493,25 +2487,41 @@ let rec intersect_type_jkind ~reason env ty1 jkind2 = | _ -> (* [intersect_type_jkind] is called rarely, so we don't bother with trying to avoid this call as in [constrain_type_jkind] *) - let ty1 = get_unboxed_type_approximation env ty1 in - Jkind.intersect_l_l ~reason (estimate_type_jkind env ty1) jkind2 + let type_equal = !type_equal' env in + let jkind1 = type_jkind env ty1 in + let jkind_of_type = type_jkind_purely_if_principal env in + let jkind1 = Jkind.round_up ~jkind_of_type jkind1 in + let jkind2 = Jkind.round_up ~jkind_of_type jkind2 in + (* This is strange, in that we're rounding up and then computing an + intersection. So we might find an intersection where there isn't really + one. See the comment above this function arguing why this is OK here. *) + (* CR layouts v2.8: Think about doing better, but it's probably not worth + it. *) + Jkind.intersection_or_error ~type_equal ~jkind_of_type ~reason jkind1 jkind2 (* See comment on [jkind_unification_mode] *) -let unification_jkind_check env ty jkind = - match !lmode with - | Perform_checks -> constrain_type_jkind_exn env Unify ty jkind - | Delay_checks r -> r := (ty,jkind) :: !r - -let check_and_update_generalized_ty_jkind ?name ~loc ty = +let unification_jkind_check uenv ty jkind = + (* If we assume the original type is well-kinded, then we don't need to check + jkinds in substitution. And checking here can actually cause a loop with + with-kinds, in test case typing-misc/constraints.ml, because substitution + is used in [estimate_type_jkind], used in [constrain_type_jkind]. *) + if not (in_subst_mode uenv) then + match !lmode with + | Perform_checks -> constrain_type_jkind_exn (get_env uenv) Unify ty jkind + | Delay_checks r -> r := (ty,jkind) :: !r + +let check_and_update_generalized_ty_jkind ?name ~loc env ty = let immediacy_check jkind = let is_immediate jkind = (* Just check externality and layout, because that's what actually matters for upstream code. We check both for a known value and something that might turn out later to be value. This is the conservative choice. *) - Jkind.(Externality.le (get_externality_upper_bound jkind) External64 && - match get_layout jkind with - | Some (Base Value) | None -> true - | _ -> false) + let jkind_of_type = type_jkind_purely_if_principal env in + let ext = Jkind.get_externality_upper_bound ~jkind_of_type jkind in + Jkind.Externality.le ext External64 && + match Jkind.get_layout jkind with + | Some (Base Value) | None -> true + | _ -> false in if Language_extension.erasable_extensions_only () && is_immediate jkind && not (Jkind.History.has_warned jkind) @@ -3118,9 +3128,11 @@ let equivalent_with_nolabels l1 l2 = | (Nolabel | Labelled _), (Nolabel | Labelled _) -> true | _ -> false) -(* the [tk] means we're comparing a type against a jkind *) +(* the [tk] means we're comparing a type against a jkind; axes do + not matter, so a jkind extracted from a type_declaration does + not need to be substed *) let has_jkind_intersection_tk env ty jkind = - Jkind.has_intersection_l_l (type_jkind env ty) jkind + Jkind.has_intersection (type_jkind env ty) jkind (* [mcomp] tests if two types are "compatible" -- i.e., if they could ever unify. (This is distinct from [eqtype], which checks if two types *are* @@ -3269,12 +3281,23 @@ and mcomp_row type_pairs env row1 row2 = | _ -> ()) pairs +and mcomp_unsafe_mode_crossing umc1 umc2 = + match umc1, umc2 with + | None, None -> () + | Some _, None -> raise Incompatible + | None, Some _ -> raise Incompatible + | Some ({ modal_upper_bounds = mub1 }), + Some ({ modal_upper_bounds = mub2 }) -> + if (Mode.Alloc.Const.le mub1 mub2 && Mode.Alloc.Const.le mub2 mub1) + then () + else raise Incompatible + and mcomp_type_decl type_pairs env p1 p2 tl1 tl2 = try let decl = Env.find_type p1 env in let decl' = Env.find_type p2 env in let check_jkinds () = - if not (Jkind.has_intersection_l_l decl.type_jkind decl'.type_jkind) + if not (Jkind.has_intersection decl.type_jkind decl'.type_jkind) then raise Incompatible in if compatible_paths p1 p2 then begin @@ -3289,19 +3312,22 @@ and mcomp_type_decl type_pairs env p1 p2 tl1 tl2 = raise Incompatible else match decl.type_kind, decl'.type_kind with - | Type_record (lst,r), Type_record (lst',r') + | Type_record (lst,r,umc), Type_record (lst',r',umc') when equal_record_representation r r' -> mcomp_list type_pairs env tl1 tl2; - mcomp_record_description type_pairs env lst lst' - | Type_record_unboxed_product (lst,r), - Type_record_unboxed_product (lst',r') + mcomp_record_description type_pairs env lst lst'; + mcomp_unsafe_mode_crossing umc umc' + | Type_record_unboxed_product (lst,r,umc), + Type_record_unboxed_product (lst',r',umc') when equal_record_unboxed_product_representation r r' -> mcomp_list type_pairs env tl1 tl2; - mcomp_record_description type_pairs env lst lst' - | Type_variant (v1,r), Type_variant (v2,r') + mcomp_record_description type_pairs env lst lst'; + mcomp_unsafe_mode_crossing umc umc' + | Type_variant (v1,r,umc), Type_variant (v2,r',umc') when equal_variant_representation r r' -> mcomp_list type_pairs env tl1 tl2; - mcomp_variant_description type_pairs env v1 v2 + mcomp_variant_description type_pairs env v1 v2; + mcomp_unsafe_mode_crossing umc umc' | Type_open, Type_open -> mcomp_list type_pairs env tl1 tl2 | Type_abstract _, Type_abstract _ -> check_jkinds () @@ -3410,11 +3436,13 @@ let add_jkind_equation ~reason uenv destination jkind1 = begin try let decl = Env.find_type p env in - if not (Jkind.equal (Jkind.terrible_relax_l jkind) - (Jkind.terrible_relax_l decl.type_jkind)) - then - let refined_decl = { decl with type_jkind = jkind } in - set_env uenv (Env.add_local_constraint p refined_decl env); + (* CR layouts v2.8: We might be able to do better here. *) + match Jkind.try_allow_r jkind, Jkind.try_allow_r decl.type_jkind with + | Some jkind, Some decl_jkind when + not (Jkind.equal jkind decl_jkind) -> + let refined_decl = { decl with type_jkind = Jkind.disallow_right jkind } in + set_env uenv (Env.add_local_constraint p refined_decl env) + | _ -> () with Not_found -> () end @@ -3442,6 +3470,11 @@ let add_gadt_equation uenv source destination = When we check the jkind later, we may not be able to see the local equation because of its scope. *) let jkind = jkind_of_abstract_type_declaration env source in + let jkind = match Jkind.try_allow_r jkind with + | None -> Misc.fatal_errorf "Abstract kind with [with]: %a" + Jkind.format jkind + | Some jkind -> jkind + in add_jkind_equation ~reason:(Gadt_equation source) uenv destination jkind; (* Adding a jkind equation may change the uenv. *) @@ -3450,7 +3483,7 @@ let add_gadt_equation uenv source destination = new_local_type ~manifest_and_scope:(destination, expansion_scope) type_origin - (Jkind.terrible_relax_l jkind) + jkind in set_env uenv (Env.add_local_constraint source decl env); cleanup_abbrev () @@ -3555,7 +3588,7 @@ let unify1_var uenv t1 t2 = let env = get_env uenv in match occur_univar_for Unify env t2; - unification_jkind_check env t2 (Jkind.disallow_left jkind) + unification_jkind_check uenv t2 (Jkind.disallow_left jkind) with | () -> begin @@ -3583,7 +3616,7 @@ let unify3_var uenv jkind1 t1' t2 t2' = let snap = snapshot () in match occur_univar_for Unify (get_env uenv) t2; - unification_jkind_check (get_env uenv) t2' (Jkind.disallow_left jkind1) + unification_jkind_check uenv t2' (Jkind.disallow_left jkind1) with | () -> link_type t1' t2 | exception Unify_trace _ when in_pattern_mode uenv -> @@ -4209,7 +4242,7 @@ let unify uenv ty1 ty2 = raise (Unify (expand_to_unification_error (get_env uenv) trace)) let unify_gadt (penv : Pattern_env.t) ty1 ty2 = - univar_pairs := []; + Misc.protect_refs [R (univar_pairs, [])] begin fun () -> let equated_types = TypePairs.create 0 in let equations_generation = Allowed { equated_types } in let uenv = Pattern @@ -4220,8 +4253,9 @@ let unify_gadt (penv : Pattern_env.t) ty1 ty2 = in unify uenv ty1 ty2; equated_types + end -let unify_var ~from_subst uenv t1 t2 = +let unify_var uenv t1 t2 = if eq_type t1 t2 then () else match get_desc t1, get_desc t2 with Tvar _, Tconstr _ when deep_occur t1 t2 -> @@ -4233,9 +4267,7 @@ let unify_var ~from_subst uenv t1 t2 = occur_for Unify uenv t1 t2; update_level_for Unify env (get_level t1) t2; update_scope_for Unify (get_scope t1) t2; - if not from_subst then begin - unification_jkind_check env t2 (Jkind.disallow_left jkind) - end; + unification_jkind_check uenv t2 (Jkind.disallow_left jkind); link_type t1 t2; reset_trace_gadt_instances reset_tracing; with Unify_trace trace -> @@ -4247,18 +4279,17 @@ let unify_var ~from_subst uenv t1 t2 = | _ -> unify uenv t1 t2 -(* CR layouts: comment here explaining why it's safe to skip jkind checks in - this case when called from subst. *) -let _ = unify_var' := unify_var ~from_subst:true -let unify_var = unify_var ~from_subst:false +let _ = unify_var' := unify_var (* the final versions of unification functions *) let unify_var env ty1 ty2 = unify_var (Expression {env; in_subst = false}) ty1 ty2 let unify_pairs env ty1 ty2 pairs = + Misc.protect_refs [R (univar_pairs, pairs)] begin fun () -> univar_pairs := pairs; unify (Expression {env; in_subst = false}) ty1 ty2 + end let unify env ty1 ty2 = unify_pairs env ty1 ty2 [] @@ -4835,7 +4866,8 @@ let mode_cross_left_alloc env ty mode = let mode = if not (is_principal ty) then mode else let jkind = type_jkind_purely env ty in - let upper_bounds = Jkind.get_modal_upper_bounds jkind in + let jkind_of_type = type_jkind_purely_if_principal env in + let upper_bounds = Jkind.get_modal_upper_bounds ~jkind_of_type jkind in Alloc.meet_const upper_bounds mode in mode |> Alloc.disallow_right @@ -4845,7 +4877,8 @@ let mode_cross_left_alloc env ty mode = let mode_cross_right env ty mode = if not (is_principal ty) then Alloc.disallow_left mode else let jkind = type_jkind_purely env ty in - let upper_bounds = Jkind.get_modal_upper_bounds jkind in + let jkind_of_type = type_jkind_purely_if_principal env in + let upper_bounds = Jkind.get_modal_upper_bounds ~jkind_of_type jkind in Alloc.imply upper_bounds mode let submode_with_cross env ~is_ret ty l r = @@ -5169,9 +5202,10 @@ let moregeneral env inst_nongen pat_sch subj_sch = Misc.try_finally (fun () -> try - univar_pairs := []; + Misc.protect_refs [R (univar_pairs, [])] begin fun () -> let type_pairs = fresh_moregen_pairs () in moregen inst_nongen Covariant type_pairs env patt subj + end with Moregen_trace trace -> (* Moregen splits the generic level into two finer levels: [generic_level] and [generic_level - 1]. In order to properly @@ -5572,12 +5606,13 @@ and eqtype_alloc_mode m1 m2 = (* Must empty univar_pairs first *) let eqtype_list_same_length rename type_pairs subst env tl1 tl2 ~do_jkind_check = - univar_pairs := []; + Misc.protect_refs [R (univar_pairs, [])] begin fun () -> let snap = Btype.snapshot () in Misc.try_finally ~always:(fun () -> backtrack snap) (fun () -> eqtype_list_same_length rename type_pairs subst env tl1 tl2 ~do_jkind_check) + end let eqtype rename type_pairs subst env t1 t2 = eqtype_list ~do_jkind_check:true rename type_pairs subst env [t1] [t2] @@ -6431,7 +6466,7 @@ and subtype_row env trace row1 row2 cstrs = let subtype env ty1 ty2 = TypePairs.clear subtypes; - univar_pairs := []; + Misc.protect_refs [R (univar_pairs, [])] begin fun () -> (* Build constraint set. *) let cstrs = subtype_rec env [Subtype.Diff {got = ty1; expected = ty2}] ty1 ty2 [] @@ -6444,6 +6479,7 @@ let subtype env ty1 ty2 = try unify_pairs env t1 t2 pairs with Unify {trace} -> subtype_error ~env ~trace:trace0 ~unification_trace:(List.tl trace)) (List.rev cstrs) + end (*******************) (* Miscellaneous *) @@ -6685,6 +6721,7 @@ let rec nondep_type_rec ?(expand_private=false) env ids ty = in match get_desc ty with Tvar _ | Tunivar _ -> ty + (* CR layouts v2.8: This needs to traverse the jkind. *) | _ -> try TypeHash.find nondep_hash ty with Not_found -> let ty' = newgenstub ~scope:(get_scope ty) @@ -6788,6 +6825,13 @@ let nondep_type_decl env mid is_covariant decl = Private with Nondep_cannot_erase _ -> None, decl.type_private + and jkind = + try Jkind.map_type_expr (nondep_type_rec env mid) decl.type_jkind + (* CR layouts v2.8: This should be done with a proper nondep_jkind. *) + with Nondep_cannot_erase _ when is_covariant -> + let jkind_of_type = type_jkind_purely_if_principal env in + Jkind.round_up ~jkind_of_type decl.type_jkind |> + Jkind.disallow_right in clear_hash (); let priv = @@ -6798,7 +6842,7 @@ let nondep_type_decl env mid is_covariant decl = { type_params = params; type_arity = decl.type_arity; type_kind = tk; - type_jkind = decl.type_jkind; + type_jkind = jkind; type_manifest = tm; type_private = priv; type_variance = decl.type_variance; @@ -6809,7 +6853,6 @@ let nondep_type_decl env mid is_covariant decl = type_attributes = decl.type_attributes; type_unboxed_default = decl.type_unboxed_default; type_uid = decl.type_uid; - type_has_illegal_crossings = decl.type_has_illegal_crossings; } with Nondep_cannot_erase _ as exn -> clear_hash (); @@ -6967,3 +7010,54 @@ let print_global_state fmt global_state = print_field fmt "global_level" global_level; in Format.fprintf fmt "@[<1>{@;%a}@]" print_fields global_state + + (*******************************) + (* checking declaration jkinds *) + (* this is down here so it can use [is_equal] *) + +(* CR layouts v2.8: Passing this function everywhere is annoying. Instead, + it would be good just to use mutation to make this accessible in jkind.ml. + The problem is that Env depends on Jkind, and so the type of [type_equal] + can't be written in Jkind. It's possible that, after jkind.ml is broken up, + this problem goes away, because the dependency from Env to Jkind is pretty + minimal. *) +let type_equal env ty1 ty2 = is_equal env false [ty1] [ty2] +let () = type_equal' := type_equal + +let check_decl_jkind env decl jkind = + (* CR layouts v2.8: This could use an algorithm like [constrain_type_jkind] + to expand only as much as needed, but the l/l subtype algorithm is tricky, + and so we leave this optimization for later. *) + let type_equal = type_equal env in + let jkind_of_type ty = Some (type_jkind_purely env ty) in + match Jkind.sub_jkind_l ~type_equal ~jkind_of_type decl.type_jkind jkind with + | Ok () -> Ok () + | Error _ as err -> + match decl.type_manifest with + | None -> err + | Some ty -> + (* CR layouts v2.8: Should this use [type_jkind_purely_if_principal]? I + think not. *) + let ty_jkind = type_jkind env ty in + match Jkind.sub_jkind_l ~type_equal ~jkind_of_type ty_jkind jkind with + | Ok () -> Ok () + | Error _ as err -> err + +let constrain_decl_jkind env decl jkind = + (* CR layouts v2.8: This will need to be deeply reimplemented. *) + match Jkind.try_allow_r jkind with + (* This case is sad, because it can't refine type variables. Hence + the need for reimplementation. Hopefully no one hits this for + a while. *) + | None -> check_decl_jkind env decl jkind + | Some jkind -> + let type_equal = type_equal env in + let jkind_of_type ty = Some (type_jkind_purely env ty) in + match + Jkind.sub_or_error ~type_equal ~jkind_of_type decl.type_jkind jkind + with + | Ok () as ok -> ok + | Error _ as err -> + match decl.type_manifest with + | None -> err + | Some ty -> constrain_type_jkind env ty jkind diff --git a/upstream/ocaml_flambda/typing/ctype.mli b/upstream/ocaml_flambda/typing/ctype.mli index a5d3460cd..fa309af33 100644 --- a/upstream/ocaml_flambda/typing/ctype.mli +++ b/upstream/ocaml_flambda/typing/ctype.mli @@ -602,6 +602,11 @@ val type_jkind : Env.t -> type_expr -> jkind_l expansion. *) val type_jkind_purely : Env.t -> type_expr -> jkind_l +(* Like [type_jkind_purely], but returns [None] if the type is not + principally known. Useful to instantiate [jkind_of_type] in various + functions exported by [Jkind]. *) +val type_jkind_purely_if_principal : Env.t -> type_expr -> jkind_l option + (* Find a type's sort (if fixed is false: constraining it to be an arbitrary sort variable, if needed) *) val type_sort : @@ -628,6 +633,10 @@ val check_decl_jkind : val constrain_decl_jkind : Env.t -> type_declaration -> jkind_l -> (unit, Jkind.Violation.t) result +(* Compare two types for equality, with no renaming. This is useful for + the [type_equal] function that must be passed to certain jkind functions. *) +val type_equal: Env.t -> type_expr -> type_expr -> bool + val check_type_jkind : Env.t -> type_expr -> ('l * allowed) jkind -> (unit, Jkind.Violation.t) result val constrain_type_jkind : @@ -682,7 +691,7 @@ val check_type_externality : Env.t -> type_expr -> Jkind.Externality.t -> bool *) val check_and_update_generalized_ty_jkind : - ?name:Ident.t -> loc:Location.t -> type_expr -> unit + ?name:Ident.t -> loc:Location.t -> Env.t -> type_expr -> unit (* False if running in principal mode and the type is not principal. True otherwise. *) diff --git a/upstream/ocaml_flambda/typing/datarepr.ml b/upstream/ocaml_flambda/typing/datarepr.ml index c83d8aea3..8171c41e1 100644 --- a/upstream/ocaml_flambda/typing/datarepr.ml +++ b/upstream/ocaml_flambda/typing/datarepr.ml @@ -70,15 +70,12 @@ let constructor_args ~current_unit priv cd_args cd_res path rep = in let type_params = TypeSet.elements arg_vars_set in let arity = List.length type_params in - let is_void_label lbl = Jkind.Sort.Const.(equal void lbl.ld_sort) in - let jkind = - Jkind.for_boxed_record ~all_void:(List.for_all is_void_label lbls) - in + let jkind = Jkind.for_boxed_record lbls in let tdecl = { type_params; type_arity = arity; - type_kind = Type_record (lbls, rep); + type_kind = Type_record (lbls, rep, None); type_jkind = jkind; type_private = priv; type_manifest = None; @@ -90,7 +87,6 @@ let constructor_args ~current_unit priv cd_args cd_res path rep = type_attributes = []; type_unboxed_default = false; type_uid = Uid.mk ~current_unit; - type_has_illegal_crossings = false; } in existentials, @@ -283,7 +279,8 @@ let find_constr ~constant tag cstrs = (function | ({cstr_tag=Ordinary {runtime_tag=tag'}; cstr_constant},_) -> tag' = tag && cstr_constant = constant - | ({cstr_tag=(Extension _ | Null)},_) -> false) + | ({cstr_tag=Null; cstr_constant}, _) -> tag = -1 && cstr_constant = constant + | ({cstr_tag=Extension _},_) -> false) cstrs with | Not_found -> raise Constr_not_found @@ -293,14 +290,14 @@ let find_constr_by_tag ~constant tag cstrlist = let constructors_of_type ~current_unit ty_path decl = match decl.type_kind with - | Type_variant (cstrs,rep) -> + | Type_variant (cstrs, rep, _) -> constructor_descrs ~current_unit ty_path decl cstrs rep | Type_record _ | Type_record_unboxed_product _ | Type_abstract _ | Type_open -> [] let labels_of_type ty_path decl = match decl.type_kind with - | Type_record(labels, rep) -> + | Type_record(labels, rep, _) -> label_descrs Legacy (newgenconstr ty_path decl.type_params) labels rep decl.type_private | Type_record_unboxed_product _ @@ -308,7 +305,7 @@ let labels_of_type ty_path decl = let unboxed_labels_of_type ty_path decl = match decl.type_kind with - | Type_record_unboxed_product(labels, rep) -> + | Type_record_unboxed_product(labels, rep, _) -> label_descrs Unboxed_product (newgenconstr ty_path decl.type_params) labels rep decl.type_private | Type_record _ diff --git a/upstream/ocaml_flambda/typing/env.ml b/upstream/ocaml_flambda/typing/env.ml index b89c70c48..8af75235c 100644 --- a/upstream/ocaml_flambda/typing/env.ml +++ b/upstream/ocaml_flambda/typing/env.ml @@ -339,6 +339,12 @@ type lock = | Exclave_lock | Unboxed_lock (* to prevent capture of terms with non-value types *) +type locks = lock list + +let locks_empty = [] + +let locks_is_empty l = l = locks_empty + type lock_item = | Value | Module @@ -719,8 +725,14 @@ and module_data = mda_address : address_lazy; mda_shape: Shape.t; } +and module_alias_locks = locks + (** If the module is an alias for another module, this is the list of locks + from the original module to this module. This is accumulative: write + [module B = A;; module C = B;;], then [C] will record all locks from [A] + to [C]. Empty if not an alias. *) + and module_entry = - | Mod_local of module_data + | Mod_local of module_data * module_alias_locks | Mod_persistent | Mod_unbound of module_unbound_reason @@ -936,7 +948,7 @@ let diff env1 env2 = (* Functions for use in "wrap" parameters in IdTbl *) let wrap_identity x = x let wrap_value vda = Val_bound vda -let wrap_module mda = Mod_local mda +let wrap_module mda = Mod_local (mda, locks_empty) (* Forward declarations *) @@ -1239,7 +1251,7 @@ let check_functor_appl let find_ident_module id env = match find_same_module id env.modules with - | Mod_local data -> data + | Mod_local (data, _) -> data | Mod_unbound _ -> raise Not_found | Mod_persistent -> match Ident.to_global id with @@ -1331,10 +1343,10 @@ let type_of_cstr path = function List.map snd (Datarepr.labels_of_type path decl) in begin match decl.type_kind with - | Type_record (_, repr) -> + | Type_record (_, repr, umc) -> { tda_declaration = decl; - tda_descriptions = Type_record (labels, repr); + tda_descriptions = Type_record (labels, repr, umc); tda_shape = Shape.leaf decl.type_uid; } | _ -> assert false @@ -1369,7 +1381,7 @@ let rec find_type_data path env = and find_cstr path name env = let tda = find_type_data path env in match tda.tda_descriptions with - | Type_variant (cstrs, _) -> + | Type_variant (cstrs, _, _) -> List.find (fun cstr -> cstr.cstr_name = name) cstrs | Type_record _ | Type_record_unboxed_product _ | Type_abstract _ | Type_open -> @@ -1529,7 +1541,7 @@ let find_shape env (ns : Shape.Sig_component_kind.t) id = end | Module -> begin match IdTbl.find_same_without_locks id env.modules with - | Mod_local { mda_shape; _ } -> mda_shape + | Mod_local ({ mda_shape; _ }, _) -> mda_shape | Mod_persistent -> Shape.for_persistent_unit (Ident.name id) | Mod_unbound _ -> (* Only present temporarily while approximating the environment for @@ -1765,7 +1777,7 @@ let iter_env wrap proj1 proj2 f env () = (fun id (path, entry) -> match entry with | Mod_unbound _ -> () - | Mod_local data -> + | Mod_local (data, _) -> iter_components (Pident id) path data.mda_components | Mod_persistent -> ()) env.modules; @@ -1811,7 +1823,7 @@ let rec find_shadowed_comps path env = List.filter_map (fun (p, data) -> match data with - | Mod_local x -> Some (p, x) + | Mod_local (x, _) -> Some (p, x) | Mod_unbound _ | Mod_persistent -> None) (IdTbl.find_all wrap_module (Ident.name id) env.modules) | Pdot (p, s) -> @@ -1980,7 +1992,7 @@ let rec components_of_module_maker (Subst.type_path sub (Path.Pident id)); let descrs = match decl.type_kind with - | Type_variant (_,repr) -> + | Type_variant (_,repr,umc) -> let cstrs = List.map snd (Datarepr.constructors_of_type path final_decl ~current_unit:(get_unit_name ())) @@ -1996,8 +2008,8 @@ let rec components_of_module_maker c.comp_constrs <- add_to_tbl descr.cstr_name cda c.comp_constrs ) cstrs; - Type_variant (cstrs, repr) - | Type_record (_, repr) -> + Type_variant (cstrs, repr, umc) + | Type_record (_, repr, umc) -> let lbls = List.map snd (Datarepr.labels_of_type path final_decl) in @@ -2006,8 +2018,8 @@ let rec components_of_module_maker c.comp_labels <- add_to_tbl descr.lbl_name descr c.comp_labels) lbls; - Type_record (lbls, repr) - | Type_record_unboxed_product (_, repr) -> + Type_record (lbls, repr, umc) + | Type_record_unboxed_product (_, repr, umc) -> let (lbls : unboxed_label_description list) = List.map snd (Datarepr.unboxed_labels_of_type path final_decl) in @@ -2016,7 +2028,7 @@ let rec components_of_module_maker c.comp_unboxed_labels <- add_to_tbl descr.lbl_name descr c.comp_unboxed_labels) lbls; - Type_record_unboxed_product (lbls, repr) + Type_record_unboxed_product (lbls, repr, umc) | Type_abstract r -> Type_abstract r | Type_open -> Type_open in @@ -2077,7 +2089,7 @@ let rec components_of_module_maker NameMap.add (Ident.name id) mda c.comp_modules; env := store_module ~update_summary:false ~check:None - id addr pres md shape !env + id addr pres md shape locks_empty !env | Sig_modtype(id, decl, _) -> let final_decl = (* The prefixed items get the same scope as [cm_path], which is @@ -2258,25 +2270,25 @@ and store_type ~check id info shape env = let descrs, env = let path = Pident id in match info.type_kind with - | Type_variant (_,repr) -> + | Type_variant (_,repr,umc) -> let constructors = Datarepr.constructors_of_type path info ~current_unit:(get_unit_name ()) in - Type_variant (List.map snd constructors, repr), + Type_variant (List.map snd constructors, repr, umc), List.fold_left (fun env (cstr_id, cstr) -> store_constructor ~check info id cstr_id cstr env) env constructors - | Type_record (_, repr) -> + | Type_record (_, repr, umc) -> let labels = Datarepr.labels_of_type path info in - Type_record (List.map snd labels, repr), + Type_record (List.map snd labels, repr, umc), List.fold_left (fun env (lbl_id, lbl) -> store_label ~record_form:Legacy ~check info id lbl_id lbl env) env labels - | Type_record_unboxed_product (_, repr) -> + | Type_record_unboxed_product (_, repr, umc) -> let labels = Datarepr.unboxed_labels_of_type path info in - Type_record_unboxed_product (List.map snd labels, repr), + Type_record_unboxed_product (List.map snd labels, repr, umc), List.fold_left (fun env (lbl_id, lbl) -> store_label ~record_form:Unboxed_product ~check info id lbl_id lbl @@ -2352,7 +2364,7 @@ and store_extension ~check ~rebind id addr ext shape env = summary = Env_extension(env.summary, id, ext) } and store_module ?(update_summary=true) ~check - id addr presence md shape env = + id addr presence md shape alias_locks env = let open Subst.Lazy in let loc = md.md_loc in Option.iter @@ -2373,7 +2385,7 @@ and store_module ?(update_summary=true) ~check if not update_summary then env.summary else Env_module (env.summary, id, presence, force_module_decl md) in { env with - modules = IdTbl.add id (Mod_local mda) env.modules; + modules = IdTbl.add id (Mod_local (mda, alias_locks)) env.modules; summary } and store_modtype ?(update_summary=true) id info shape env = @@ -2466,7 +2478,7 @@ and add_extension ~check ?shape ~rebind id ext env = store_extension ~check ~rebind id addr ext shape env and add_module_declaration_lazy - ~update_summary ?(arg=false) ?shape ~check id presence md env = + ~update_summary ?(arg=false) ?shape ~check id presence md ?(locks = []) env = let check = if not check then None @@ -2478,13 +2490,13 @@ and add_module_declaration_lazy let addr = module_declaration_address env id presence md in let shape = shape_or_leaf md.Subst.Lazy.md_uid shape in let env = - store_module ~update_summary ~check id addr presence md shape env + store_module ~update_summary ~check id addr presence md shape locks env in if arg then add_functor_arg id env else env -let add_module_declaration ?(arg=false) ?shape ~check id presence md env = +let add_module_declaration ?(arg=false) ?shape ~check id presence md ?locks env = add_module_declaration_lazy ~update_summary:true ~arg ?shape ~check id - presence (Subst.Lazy.of_module_decl md) env + presence (Subst.Lazy.of_module_decl md) ?locks env and add_modtype_lazy ~update_summary ?shape id info env = let shape = shape_or_leaf info.Subst.Lazy.mtd_uid shape in @@ -2543,9 +2555,9 @@ let enter_extension ~scope ~rebind name ext env = let env = store_extension ~check:true ~rebind id addr ext shape env in (id, env) -let enter_module_declaration ~scope ?arg ?shape s presence md env = +let enter_module_declaration ~scope ?arg ?shape s presence md ?locks env = let id = Ident.create_scoped ~scope s in - (id, add_module_declaration ?arg ?shape ~check:true id presence md env) + (id, add_module_declaration ?arg ?shape ~check:true id presence md ?locks env) let enter_modtype ~scope name mtd env = let id = Ident.create_scoped ~scope name in @@ -2608,7 +2620,8 @@ module Add_signature(T : Types.Wrapped)(M : sig val add_value: ?shape:Shape.t -> mode:(Mode.allowed * 'r0) Mode.Value.t -> Ident.t -> T.value_description -> t -> t val add_module_declaration: ?arg:bool -> ?shape:Shape.t -> check:bool - -> Ident.t -> module_presence -> T.module_declaration -> t -> t + -> Ident.t -> module_presence -> T.module_declaration -> ?locks:locks -> + t -> t val add_modtype: ?shape:Shape.t -> Ident.t -> T.modtype_declaration -> t -> t end) = struct open T @@ -2688,7 +2701,7 @@ let add_cltype = add_cltype ?shape:None let add_modtype_lazy = add_modtype_lazy ?shape:None let add_modtype = add_modtype ?shape:None let add_module_declaration_lazy ?(arg=false) = - add_module_declaration_lazy ~arg ?shape:None ~check:false + add_module_declaration_lazy ~arg ?shape:None ~check:false ?locks:None let add_signature sg env = let _, env = add_signature Shape.Map.empty None sg env in env @@ -2779,7 +2792,7 @@ let add_language_extension_types env = |> add SIMD Stable Predef.add_simd_stable_extension_types |> add Small_numbers Stable Predef.add_small_number_extension_types |> add Small_numbers Beta Predef.add_small_number_beta_extension_types - |> add Layouts Alpha Predef.add_or_null) + |> add Layouts Stable Predef.add_or_null) (* Some predefined types are part of language extensions, and we don't want to make them available in the initial environment if those extensions are not @@ -3002,8 +3015,9 @@ let lookup_ident_module (type a) (load : a load) ~errors ~use ~loc s env = may_lookup_error errors loc env (Unbound_module (Lident s)) in match data with - | Mod_local mda -> begin + | Mod_local (mda, alias_locks) -> begin use_module ~use ~loc path mda; + let locks = alias_locks @ locks in match load with | Load -> path, locks, (mda : a) | Don't_load -> path, locks, (() : a) @@ -3568,37 +3582,27 @@ let open_signature (* General forms of the lookup functions *) -let walk_locks_for_module_lookup ~errors ~lock ~loc ~env ~lid locks = - if lock then - walk_locks ~errors ~loc ~env ~item:Module ~lid mda_mode None locks - else - mode_default mda_mode - -let lookup_module_path ~errors ~use ~lock ~loc ~load lid env : Path.t * _ = - let path, locks = - match lid with - | Lident s -> - if !Clflags.transparent_modules && not load then - let path, locks, _ = - lookup_ident_module Don't_load ~errors ~use ~loc s env - in - path, locks - else - let path, locks, _ = - lookup_ident_module Load ~errors ~use ~loc s env - in - path, locks - | Ldot(l, s) -> - let path, locks, _ = lookup_dot_module ~errors ~use ~loc l s env in +let lookup_module_path ~errors ~use ~loc ~load lid env = + match lid with + | Lident s -> + if !Clflags.transparent_modules && not load then + let path, locks, () = + lookup_ident_module Don't_load ~errors ~use ~loc s env + in path, locks - | Lapply _ as lid -> - let path_f, _comp_f, path_arg = lookup_apply ~errors ~use ~loc lid env in - Papply(path_f, path_arg), [] - in - let vmode = walk_locks_for_module_lookup ~errors ~lock ~loc ~lid ~env locks in - path, vmode + else + let path, locks, _ = + lookup_ident_module Load ~errors ~use ~loc s env + in + path, locks + | Ldot(l, s) -> + let path, locks, _ = lookup_dot_module ~errors ~use ~loc l s env in + path, locks + | Lapply _ as lid -> + let path_f, _comp_f, path_arg = lookup_apply ~errors ~use ~loc lid env in + Papply(path_f, path_arg), [] -let lookup_module_instance_path ~errors ~use ~lock ~loc ~load name env = +let lookup_module_instance_path ~errors ~use ~loc ~load name env = (* The locks are whatever locks we would find if we went through [lookup_module_path] on a module not found in the environment *) let locks = IdTbl.get_all_locks env.modules in @@ -3614,15 +3618,7 @@ let lookup_module_instance_path ~errors ~use ~lock ~loc ~load name env = in path in - let vmode = - let lid : Longident.t = - (* This is only used for error reporting. Probably in the long term we - want [Longident.t] to include instance names *) - Lident (name |> Global_module.Name.to_string) - in - walk_locks_for_module_lookup ~errors ~lock ~loc ~lid ~env locks - in - path, vmode + path, locks let lookup_value_lazy ~errors ~use ~loc lid env = match lid with @@ -3635,27 +3631,9 @@ let lookup_value ~errors ~use ~loc lid env = let path, locks, vda = lookup_value_lazy ~errors ~use ~loc lid env in - (* There can be locks between the definition and a use of a value. For - example, if a function closes over a value, there will be Closure_lock between - the value's definition and the value's use in the function. Walking the locks - will constrain the function and the value's modes accrodingly. - - Here, we apply the modalities to acquire the mode of the value at the - definition site, using which we walk the locks. That means the surrounding - closure would be closing over the value instead of the module. The latter can - be achieved by walking the locks before apply modalities. - - Our route provides better ergonomics, but is dangerous as it doesn't reflect - the real runtime behaviour. With the current set-up, it is sound. *) let vd, mode = normalize_vda_mode vda in let vd = Subst.Lazy.force_value_description vd in - let vmode = - if use then - walk_locks ~errors ~loc ~env ~item:Value ~lid mode (Some vd.val_type) locks - else - mode_default mode - in - path, vd, vmode + path, vd, mode, locks let lookup_type_full ~errors ~use ~loc lid env = match lid with @@ -3717,20 +3695,20 @@ let lookup_all_labels_from_type (type rep) ~use ~(record_form : rep record_form) match (find_type_descrs ty_path env, record_form) with | exception Not_found -> [] | ((Type_variant _ | Type_abstract _ | Type_open), _) -> [] - | (Type_record (lbls, _), Legacy) -> + | (Type_record (lbls, _, _), Legacy) -> List.map (fun lbl -> let use_fun () = use_label ~record_form ~use ~loc usage env lbl in (lbl, use_fun)) lbls - | (Type_record_unboxed_product (lbls, _), Unboxed_product) -> + | (Type_record_unboxed_product (lbls, _, _), Unboxed_product) -> List.map (fun lbl -> let use_fun () = use_label ~record_form ~use ~loc usage env lbl in (lbl, use_fun)) lbls - | (Type_record (_, _), Unboxed_product) -> [] - | (Type_record_unboxed_product (_, _), Legacy) -> [] + | (Type_record (_, _, _), Unboxed_product) -> [] + | (Type_record_unboxed_product (_, _, _), Legacy) -> [] let lookup_all_constructors ~errors ~use ~loc usage lid env = match lid with @@ -3748,7 +3726,7 @@ let lookup_all_constructors_from_type ~use ~loc usage ty_path env = | exception Not_found -> [] | Type_record _ | Type_record_unboxed_product _ | Type_abstract _ | Type_open -> [] - | Type_variant (cstrs, _) -> + | Type_variant (cstrs, _, _) -> List.map (fun cstr -> let use_fun () = @@ -3770,7 +3748,7 @@ let find_module_by_name lid env = let find_value_by_name lid env = let loc = Location.(in_file !input_name) in - let path, desc, _ = lookup_value ~errors:false ~use:false ~loc lid env in + let path, desc, _, _ = lookup_value ~errors:false ~use:false ~loc lid env in path, desc let find_type_by_name lid env = @@ -3817,17 +3795,14 @@ let find_cltype_index id env = find_index_tbl id env.cltypes (* Ordinary lookup functions *) -let lookup_module_path ?(use=true) ?(lock=use) ~loc ~load lid env = - let path, vmode = - lookup_module_path ~errors:true ~use ~lock ~loc ~load lid env - in - path, vmode.mode +let walk_locks ~loc ~env ~item ~lid mode ty locks = + walk_locks ~errors:true ~loc ~env ~item ~lid mode ty locks -let lookup_module_instance_path ?(use=true) ?(lock=use) ~loc ~load lid env = - let path, vmode = - lookup_module_instance_path ~errors:true ~use ~lock ~loc ~load lid env - in - path, vmode.mode +let lookup_module_path ?(use=true) ~loc ~load lid env = + lookup_module_path ~errors:true ~use ~loc ~load lid env + +let lookup_module_instance_path ?(use=true) ~loc ~load lid env = + lookup_module_instance_path ~errors:true ~use ~loc ~load lid env let lookup_module ?(use=true) ?(lock=use) ~loc lid env = let path, desc, vmode = lookup_module ~errors:true ~use ~lock ~loc lid env in @@ -3987,7 +3962,7 @@ let fold_modules f lid env acc = (fun name (p, entry) acc -> match entry with | Mod_unbound _ -> acc - | Mod_local mda -> + | Mod_local (mda, _) -> let md = Subst.Lazy.force_module_decl mda.mda_declaration in diff --git a/upstream/ocaml_flambda/typing/env.mli b/upstream/ocaml_flambda/typing/env.mli index b1540ee18..5d32c0267 100644 --- a/upstream/ocaml_flambda/typing/env.mli +++ b/upstream/ocaml_flambda/typing/env.mli @@ -204,6 +204,12 @@ type shared_context = | Module | Probe +type locks + +val locks_empty : locks + +val locks_is_empty : locks -> bool + (** Items whose accesses are affected by locks *) type lock_item = | Value @@ -262,9 +268,16 @@ type actual_mode = { (** Explains why [mode] is high. *) } +(** Takes the [mode] and [ty] of a value at definition site, walks through the list of + locks and constrains [mode] and [ty]. Return the access mode of the value allowed by + the locks. [ty] is optional as the function works on modules and classes as well, for + which [ty] should be [None]. *) +val walk_locks : loc:Location.t -> env:t -> item:lock_item -> lid:Longident.t -> + Mode.Value.l -> type_expr option -> locks -> actual_mode + val lookup_value: ?use:bool -> loc:Location.t -> Longident.t -> t -> - Path.t * value_description * actual_mode + Path.t * value_description * Mode.Value.l * locks val lookup_type: ?use:bool -> loc:Location.t -> Longident.t -> t -> Path.t * type_declaration @@ -281,14 +294,16 @@ val lookup_cltype: ?use:bool -> loc:Location.t -> Longident.t -> t -> Path.t * class_type_declaration +(* When locks are returned instead of walked for modules, the mode remains as + defined (always legacy), and thus not returned. *) val lookup_module_path: - ?use:bool -> ?lock:bool -> loc:Location.t -> load:bool -> Longident.t -> t -> - Path.t * Mode.Value.l + ?use:bool -> loc:Location.t -> load:bool -> Longident.t -> t -> + Path.t * locks val lookup_modtype_path: ?use:bool -> loc:Location.t -> Longident.t -> t -> Path.t val lookup_module_instance_path: - ?use:bool -> ?lock:bool -> loc:Location.t -> load:bool -> - Global_module.Name.t -> t -> Path.t * Mode.Value.l + ?use:bool -> loc:Location.t -> load:bool -> Global_module.Name.t -> t -> + Path.t * locks val lookup_constructor: ?use:bool -> loc:Location.t -> constructor_usage -> Longident.t -> t -> @@ -386,7 +401,7 @@ val add_module: ?arg:bool -> ?shape:Shape.t -> val add_module_lazy: update_summary:bool -> Ident.t -> module_presence -> Subst.Lazy.module_type -> t -> t val add_module_declaration: ?arg:bool -> ?shape:Shape.t -> check:bool -> - Ident.t -> module_presence -> module_declaration -> t -> t + Ident.t -> module_presence -> module_declaration -> ?locks:locks -> t -> t val add_module_declaration_lazy: ?arg:bool -> update_summary:bool -> Ident.t -> module_presence -> Subst.Lazy.module_declaration -> t -> t val add_modtype: Ident.t -> modtype_declaration -> t -> t @@ -450,7 +465,7 @@ val enter_module: module_type -> t -> Ident.t * t val enter_module_declaration: scope:int -> ?arg:bool -> ?shape:Shape.t -> string -> module_presence -> - module_declaration -> t -> Ident.t * t + module_declaration -> ?locks:locks -> t -> Ident.t * t val enter_modtype: scope:int -> string -> modtype_declaration -> t -> Ident.t * t val enter_class: scope:int -> string -> class_declaration -> t -> Ident.t * t diff --git a/upstream/ocaml_flambda/typing/includecore.ml b/upstream/ocaml_flambda/typing/includecore.ml index a6a6a9576..d02b4ee15 100644 --- a/upstream/ocaml_flambda/typing/includecore.ml +++ b/upstream/ocaml_flambda/typing/includecore.ml @@ -54,15 +54,16 @@ type mmodes = (** Mode cross a right mode *) (* This is very similar to Ctype.mode_cross_right. Any bugs here are likely bugs there, too. *) -let right_mode_cross_jkind jkind mode = - let upper_bounds = Jkind.get_modal_upper_bounds jkind in +let right_mode_cross_jkind env jkind mode = + let jkind_of_type = Ctype.type_jkind_purely_if_principal env in + let upper_bounds = Jkind.get_modal_upper_bounds ~jkind_of_type jkind in let upper_bounds = Const.alloc_as_value upper_bounds in Value.imply upper_bounds mode -let right_mode_cross env ty mode= +let right_mode_cross env ty mode = if not (Ctype.is_principal ty) then mode else let jkind = Ctype.type_jkind_purely env ty in - right_mode_cross_jkind jkind mode + right_mode_cross_jkind env jkind mode let native_repr_args nra1 nra2 = let rec loop i nra1 nra2 = @@ -238,9 +239,9 @@ type type_kind = let of_kind = function | Type_abstract _ -> Kind_abstract - | Type_record (_, _) -> Kind_record - | Type_record_unboxed_product (_, _) -> Kind_record_unboxed_product - | Type_variant (_, _) -> Kind_variant + | Type_record (_, _, _) -> Kind_record + | Type_record_unboxed_product (_, _, _) -> Kind_record_unboxed_product + | Type_variant (_, _, _) -> Kind_variant | Type_open -> Kind_open type kind_mismatch = type_kind * type_kind @@ -292,6 +293,10 @@ type variant_change = (Types.constructor_declaration as 'l, 'l, constructor_mismatch) Diffing_with_keys.change +type unsafe_mode_crossing_mismatch = + | Mode_crossing_only_on of position + | Mode_crossing_not_equal + type type_mismatch = | Arity | Privacy of privacy_mismatch @@ -308,6 +313,7 @@ type type_mismatch = | Extensible_representation of position | With_null_representation of position | Jkind of Jkind.Violation.t + | Unsafe_mode_crossing of unsafe_mode_crossing_mismatch let report_modality_sub_error first second ppf e = let print_modality id ppf m = @@ -592,6 +598,17 @@ let report_kind_mismatch first second ppf (kind1, kind2) = second (kind_to_string kind2) +let report_unsafe_mode_crossing_mismatch first second ppf e = + let pr fmt = Format.fprintf ppf fmt in + match e with + | Mode_crossing_only_on ord -> + pr "%s has [%@%@unsafe_allow_any_mode_crossing], but %s does not" + (choose ord first second) + (choose_other ord first second) + | Mode_crossing_not_equal -> + pr "Both specify [%@%@unsafe_allow_any_mode_crossing], but their \ + mod-bounds are not equal" + let report_type_mismatch first second decl env ppf err = let pr fmt = Format.fprintf ppf fmt in pr "@ "; @@ -641,6 +658,20 @@ let report_type_mismatch first second decl env ppf err = "has a null constructor" | Jkind v -> Jkind.Violation.report_with_name ~name:first ppf v + | Unsafe_mode_crossing mismatch -> + pr "They have different unsafe mode crossing behavior:@,"; + report_unsafe_mode_crossing_mismatch first second ppf mismatch + +let compare_unsafe_mode_crossing umc1 umc2 = + match umc1, umc2 with + | None, None -> None + | Some _, None -> Some (Unsafe_mode_crossing (Mode_crossing_only_on First)) + | None, Some _ -> Some (Unsafe_mode_crossing (Mode_crossing_only_on Second)) + | Some ({ modal_upper_bounds = mub1 }), + Some ({ modal_upper_bounds = mub2 }) -> + if (Mode.Alloc.Const.le mub1 mub2 && Mode.Alloc.Const.le mub2 mub1) + then None + else Some (Unsafe_mode_crossing Mode_crossing_not_equal) module Record_diffing = struct @@ -1348,26 +1379,23 @@ let type_declarations ?(equality = false) ~loc env ~mark name rep1 rep2 in let err = match (decl1.type_kind, decl2.type_kind) with - (_, Type_abstract _) -> begin - (* If both the intf has "allow any kind in impl" *and* the impl has "allow any - kind in intf", don't check the jkind at all. *) - let allow_any = - Builtin_attributes.has_unsafe_allow_any_kind_in_impl decl2.type_attributes - && Builtin_attributes.has_unsafe_allow_any_kind_in_intf decl1.type_attributes - in - (* Note that [decl2.type_jkind] is an upper bound. If it isn't tight, [decl2] must - have a manifest, which we're already checking for equality above. Similarly, - [decl1]'s kind may conservatively approximate its jkind, but [check_decl_jkind] - will expand its manifest. *) - match Ctype.check_decl_jkind env decl1 decl2.type_jkind with - | Ok _ -> - (if allow_any - then Location.prerr_warning decl2.type_loc (Warnings.Unnecessary_allow_any_kind)); - None - | Error _ when allow_any -> None - | Error v -> Some (Jkind v) - end - | (Type_variant (cstrs1, rep1), Type_variant (cstrs2, rep2)) -> + (_, Type_abstract _) -> + (* No need to check jkinds if decl2 has a manifest; we've already + checked for type equality, above. Oddly, this is not just an + optimization; unconditionally checking jkinds causes a failure + around recursive modules (test case: shapes/recmodules.ml). + Richard spent several hours trying to understand what was going + on there (after the substitution in [Typemod.check_recmodule_inclusion], + there was a type_declaration whose [type_jkind] didn't match its + [type_manifest]), but just skipping this check when there is a + manifest fixes the problem. *) + if Option.is_none decl2.type_manifest then + (* Note that [decl2.type_jkind] is an upper bound *) + match Ctype.check_decl_jkind env decl1 decl2.type_jkind with + | Ok _ -> None + | Error v -> Some (Jkind v) + else None + | (Type_variant (cstrs1, rep1, umc1), Type_variant (cstrs2, rep2, umc2)) -> begin if mark then begin let mark usage cstrs = List.iter (Env.mark_constructor_used usage) cstrs @@ -1379,18 +1407,27 @@ let type_declarations ?(equality = false) ~loc env ~mark name mark usage cstrs1; if equality then mark Env.Exported cstrs2 end; - Variant_diffing.compare_with_representation ~loc env - decl1.type_params - decl2.type_params - cstrs1 - cstrs2 - rep1 - rep2 - | (Type_record(labels1,rep1), Type_record(labels2,rep2)) -> - mark_and_compare_records Legacy labels1 rep1 labels2 rep2 - | (Type_record_unboxed_product(labels1,rep1), - Type_record_unboxed_product(labels2,rep2)) -> - mark_and_compare_records Unboxed_product labels1 rep1 labels2 rep2 + Misc.Stdlib.Option.first_some + (Variant_diffing.compare_with_representation ~loc env + decl1.type_params + decl2.type_params + cstrs1 + cstrs2 + rep1 + rep2) + (fun () -> compare_unsafe_mode_crossing umc1 umc2) + end + | (Type_record(labels1,rep1,umc1), Type_record(labels2,rep2,umc2)) -> begin + Misc.Stdlib.Option.first_some + (mark_and_compare_records Legacy labels1 rep1 labels2 rep2) + (fun () -> compare_unsafe_mode_crossing umc1 umc2) + end + | (Type_record_unboxed_product(labels1,rep1,umc1), + Type_record_unboxed_product(labels2,rep2,umc2)) -> begin + Misc.Stdlib.Option.first_some + (mark_and_compare_records Unboxed_product labels1 rep1 labels2 rep2) + (fun () -> compare_unsafe_mode_crossing umc1 umc2) + end | (Type_open, Type_open) -> None | (_, _) -> Some (Kind (of_kind decl1.type_kind, of_kind decl2.type_kind)) in diff --git a/upstream/ocaml_flambda/typing/includecore.mli b/upstream/ocaml_flambda/typing/includecore.mli index 505d5e7cf..65636c51b 100644 --- a/upstream/ocaml_flambda/typing/includecore.mli +++ b/upstream/ocaml_flambda/typing/includecore.mli @@ -105,6 +105,10 @@ type private_object_mismatch = | Missing of string | Types of Errortrace.equality_error +type unsafe_mode_crossing_mismatch = + | Mode_crossing_only_on of position + | Mode_crossing_not_equal + type type_mismatch = | Arity | Privacy of privacy_mismatch @@ -121,6 +125,7 @@ type type_mismatch = | Extensible_representation of position | With_null_representation of position | Jkind of Jkind.Violation.t + | Unsafe_mode_crossing of unsafe_mode_crossing_mismatch type mmodes = | All diff --git a/upstream/ocaml_flambda/typing/jkind.ml b/upstream/ocaml_flambda/typing/jkind.ml index 7c45cd9aa..a7a905cc1 100644 --- a/upstream/ocaml_flambda/typing/jkind.ml +++ b/upstream/ocaml_flambda/typing/jkind.ml @@ -14,6 +14,8 @@ open Mode open Jkind_types +open Jkind_axis +open Types [@@@warning "+9"] @@ -31,8 +33,6 @@ end type sort = Sort.t -type type_expr = Types.type_expr - (* A *layout* of a type describes the way values of that type are stored at runtime, including details like width, register convention, calling convention, etc. A layout may be *representable* or *unrepresentable*. The @@ -160,6 +160,11 @@ module Layout = struct | Base b -> Sort (Sort.of_base b) | Product cs -> Product (List.map of_const cs) + let product = function + | [] -> Misc.fatal_error "Layout.product: empty product" + | [lay] -> lay + | lays -> Product lays + let rec to_sort = function | Any -> None | Sort s -> Some s @@ -290,9 +295,8 @@ module Layout = struct pp_element ~nested:false ppf layout end -module Externality = Jkind_axis.Externality -module Nullability = Jkind_axis.Nullability -module Modes = Jkind_axis.Of_lattice (Alloc.Const) +module Externality = Externality +module Nullability = Nullability module History = struct include Jkind_intf.History @@ -312,34 +316,6 @@ module History = struct let has_warned t = t.has_warned end -(*********************************) -(* Main type declarations *) - -type +'d const = (type_expr, 'd) Jkind_types.Const.t - -type 'd t = (type_expr, 'd) Jkind_types.t - -type jkind_l = (allowed * disallowed) t - -type packed = Pack : 'd t -> packed [@@unboxed] - -include Allowance.Magic_allow_disallow (struct - type (_, _, 'd) sided = 'd t - - let disallow_right ({ jkind = { layout = _; _ }; _ } as t) = t - - let disallow_left ({ jkind = { layout = _; _ }; _ } as t) = t - - let allow_right ({ jkind = { layout = _; _ }; _ } as t) = t - - let allow_left ({ jkind = { layout = _; _ }; _ } as t) = t -end) - -let terrible_relax_l ({ jkind = { layout = _; _ }; _ } as t) = t - -let fresh_jkind jkind ~annotation ~why = - { jkind; annotation; history = Creation why; has_warned = false } - (******************************) (*** user errors ***) @@ -356,56 +332,479 @@ module Error = struct from_attribute : Builtin_attributes.jkind_attribute Location.loc } | Unimplemented_syntax + | With_on_right exception User_error of Location.t * t end let raise ~loc err = raise (Error.User_error (loc, err)) -module Const = struct - open Jkind_types.Layout_and_axes +(******************************) +(*** Bounds, specialized to the real [type_expr] ***) - type +'d t = 'd const +module With_bounds = struct + type 'd t = 'd Types.with_bounds constraint 'd = 'l * 'r - include Allowance.Magic_allow_disallow (struct - type (_, _, 'd) sided = 'd t + module Type_info = struct + include With_bounds_type_info + + let print ppf { relevant_axes } = + let open Format in + fprintf ppf "@[{ relevant_axes = %a }]" Axis_set.print relevant_axes + + let join { relevant_axes = axes1 } { relevant_axes = axes2 } = + { relevant_axes = Axis_set.union axes1 axes2 } + end + + let to_best_eff_map = function + | No_with_bounds -> With_bounds_types.empty + | With_bounds bounds -> bounds + + let to_list : type d. d with_bounds -> _ = function + | No_with_bounds -> [] + | With_bounds tys -> tys |> With_bounds_types.to_seq |> List.of_seq + + open Allowance - let disallow_left ({ layout = _; _ } as t) = t + include Magic_allow_disallow (struct + type (_, _, 'd) sided = 'd t constraint 'd = 'l * 'r - let disallow_right ({ layout = _; _ } as t) = t + let disallow_left : type l r. (l * r) t -> (disallowed * r) t = function + | No_with_bounds -> No_with_bounds + | With_bounds _ as b -> b - let allow_left ({ layout = _; _ } as t) = t + let disallow_right : type l r. (l * r) t -> (l * disallowed) t = function + | No_with_bounds -> No_with_bounds + | With_bounds _ as b -> b - let allow_right ({ layout = _; _ } as t) = t + let allow_left : type l r. (allowed * r) t -> (l * r) t = function + | No_with_bounds -> No_with_bounds + | With_bounds _ as b -> b + + let allow_right : type l r. (l * allowed) t -> (l * r) t = function + | No_with_bounds -> No_with_bounds end) + let try_allow_l : type l r. (l * r) t -> (allowed * r) t option = function + | No_with_bounds -> Some No_with_bounds + | With_bounds _ as b -> Some b + + let try_allow_r : type l r. (l * r) t -> (l * allowed) t option = function + | No_with_bounds -> Some No_with_bounds + | With_bounds _ -> None + + let map_type_expr (type l r) f : (l * r) t -> (l * r) t = function + | No_with_bounds -> No_with_bounds + | With_bounds tys -> + With_bounds + (tys |> With_bounds_types.to_seq + |> Seq.map (fun (ty, ti) -> f ty, ti) + |> With_bounds_types.of_seq) + + let debug_print (type l r) ~print_type_expr ppf : (l * r) t -> _ = + let open Format in + function + | No_with_bounds -> fprintf ppf "No_with_bounds" + | With_bounds tys -> + fprintf ppf "With_bounds @[[%a]@]" + (pp_print_seq + ~pp_sep:(fun ppf () -> fprintf ppf ";@ ") + (fun ppf (ty, ti) -> + fprintf ppf "@[(%a, %a)]" print_type_expr ty Type_info.print ti)) + (With_bounds_types.to_seq tys) + + let join_bounds = + With_bounds_types.merge (fun _ ti1 ti2 -> + match ti1, ti2 with + | None, None -> None + | Some ti, None -> Some ti + | None, Some ti -> Some ti + | Some ti1, Some ti2 -> Some (Type_info.join ti1 ti2)) + + (* You might think that we can only do joins on the left. But that's not true! + We can join constants. The important thing is that the allowances of both + arguments are the same and that they match the result: this will mean that + if we have any with_bounds in either argument, the result is an l-With_bounds, as + required. This might change once we have arrow kinds, but we'll deal with + that when we get there. *) + let join (type l r) (bag1 : (l * r) t) (bag2 : (l * r) t) : (l * r) t = + match bag1, bag2 with + | No_with_bounds, No_with_bounds -> No_with_bounds + | No_with_bounds, b -> b + | b, No_with_bounds -> b + | With_bounds tys1, With_bounds tys2 -> With_bounds (join_bounds tys1 tys2) + + let meet (type l1 l2) (bag1 : (l1 * allowed) t) (bag2 : (l2 * allowed) t) : + (l1 * allowed) t = + match bag1, bag2 with No_with_bounds, No_with_bounds -> No_with_bounds + + let add_bound type_expr type_info tys = + With_bounds_types.update type_expr + (function + | None -> Some type_info | Some ti -> Some (Type_info.join ti type_info)) + tys + + let add type_expr type_info bounds = + match bounds with + | No_with_bounds -> + With_bounds (With_bounds_types.singleton type_expr type_info) + | With_bounds bounds -> With_bounds (add_bound type_expr type_info bounds) + + let add_modality ~relevant_for_nullability ~modality ~type_expr + (t : (allowed * 'r) t) : (allowed * 'r) t = + let relevant_axes = + Jkind_axis.Axis_set.create ~f:(fun ~axis:(Pack axis) -> + match axis with + | Modal axis -> ( + let (P axis) = Mode.Const.Axis.alloc_as_value (P axis) in + let modality = Mode.Modality.Value.Const.proj axis modality in + let is_constant = Mode.Modality.is_constant modality in + let is_id = Mode.Modality.is_id modality in + match is_constant, is_id with + | true, _ -> false + | _, true -> true + | false, false -> + Misc.fatal_errorf + "Don't yet know how to interpret non-constant, non-identity \ + modalities, but got %a along axis %a.\n\n\ + If you see this error, please contant the Jane Street \ + compiler team." + Mode.Modality.print modality Value.print_axis axis) + | Nonmodal Externality -> true + | Nonmodal Nullability -> ( + match relevant_for_nullability with + | `Relevant -> true + | `Irrelevant -> false)) + in + match t with + | No_with_bounds -> + With_bounds + (With_bounds_types.singleton type_expr + ({ relevant_axes } : With_bounds_type_info.t)) + | With_bounds tys -> With_bounds (add_bound type_expr { relevant_axes } tys) +end + +module Mod_bounds = struct + include Types.Jkind_mod_bounds + + let debug_print ppf + { locality; + linearity; + uniqueness; + portability; + contention; + yielding; + externality; + nullability + } = + Format.fprintf ppf + "@[{ locality = %a;@ linearity = %a;@ uniqueness = %a;@ portability = \ + %a;@ contention = %a;@ yielding = %a;@ externality = %a;@ nullability = \ + %a }@]" + Mode.Locality.Const.print locality Mode.Linearity.Const.print linearity + Mode.Uniqueness.Const.print uniqueness Mode.Portability.Const.print + portability Mode.Contention.Const.print contention + Mode.Yielding.Const.print yielding Externality.print externality + Nullability.print nullability + + let min = + Create.f + { f = + (fun (type axis) ~(axis : axis Axis.t) -> + let (module Bound_ops) = Axis.get axis in + Bound_ops.min) + } + let max = - { layout = Layout.Const.max; - modes_upper_bounds = Modes.max; - externality_upper_bound = Externality.max; - nullability_upper_bound = Nullability.max + Create.f + { f = + (fun (type axis) ~(axis : axis Axis.t) -> + let (module Bound_ops) = Axis.get axis in + Bound_ops.max) + } + + let simple ~locality ~linearity ~uniqueness ~portability ~contention ~yielding + ~externality ~nullability = + { locality; + linearity; + uniqueness; + portability; + contention; + yielding; + externality; + nullability + } + + let join = + Map2.f + { f = + (fun (type axis) ~(axis : axis Axis.t) -> + let (module Bound_ops) = Axis.get axis in + Bound_ops.join) + } + + let meet = + Map2.f + { f = + (fun (type axis) ~(axis : axis Axis.t) -> + let (module Bound_ops) = Axis.get axis in + Bound_ops.meet) + } + + let less_or_equal = + Fold2.f + { f = + (fun (type axis) ~(axis : axis Axis.t) -> + let (module Bound_ops) = Axis.get axis in + Bound_ops.less_or_equal) + } + ~combine:Misc.Le_result.combine + + let equal = + Fold2.f + { f = + (fun (type axis) ~(axis : axis Axis.t) -> + let (module Bound_ops) = Axis.get axis in + Bound_ops.equal) + } + ~combine:( && ) + + (** Get all axes that are set to max *) + let get_max_axes t = + Axis_set.create ~f:(fun ~axis:(Pack axis) -> + let (module Axis_ops) = Axis.get axis in + let bound = get ~axis t in + Axis_ops.le Axis_ops.max bound) + + let for_arrow = + simple ~linearity:Linearity.Const.max ~locality:Locality.Const.max + ~uniqueness:Uniqueness.Const.min ~portability:Portability.Const.max + ~contention:Contention.Const.min ~yielding:Yielding.Const.max + ~externality:Externality.max ~nullability:Nullability.Non_null +end + +module Layout_and_axes = struct + module Allow_disallow = Allowance.Magic_allow_disallow (struct + type (_, 'layout, 'd) sided = ('layout, 'd) layout_and_axes + + let disallow_left t = + { t with with_bounds = With_bounds.disallow_left t.with_bounds } + + let disallow_right t = + { t with with_bounds = With_bounds.disallow_right t.with_bounds } + + let allow_left t = + { t with with_bounds = With_bounds.allow_left t.with_bounds } + + let allow_right t = + { t with with_bounds = With_bounds.allow_right t.with_bounds } + end) + + include Allow_disallow + + let map f t = { t with layout = f t.layout } + + let map_option f t = + match f t.layout with None -> None | Some layout -> Some { t with layout } + + let map_type_expr f t = + { t with with_bounds = With_bounds.map_type_expr f t.with_bounds } + + let equal eq_layout + { layout = lay1; + mod_bounds = mod_bounds1; + with_bounds = (No_with_bounds : (allowed * allowed) with_bounds) + } + { layout = lay2; + mod_bounds = mod_bounds2; + with_bounds = (No_with_bounds : (allowed * allowed) with_bounds) + } = + eq_layout lay1 lay2 && Mod_bounds.equal mod_bounds1 mod_bounds2 + + let try_allow_l : + type l r. + ('layout, l * r) layout_and_axes -> + ('layout, Allowance.allowed * r) layout_and_axes option = + fun { layout; mod_bounds; with_bounds } -> + match With_bounds.try_allow_l with_bounds with + | None -> None + | Some with_bounds -> + Some { layout; mod_bounds = Obj.magic mod_bounds; with_bounds } + + let try_allow_r { layout; mod_bounds; with_bounds } = + match With_bounds.try_allow_r with_bounds with + | Some with_bounds -> + Some { layout; mod_bounds = Obj.magic mod_bounds; with_bounds } + | None -> None + + let debug_print ~print_type_expr format_layout ppf + { layout; mod_bounds; with_bounds } = + Format.fprintf ppf "{ layout = %a;@ mod_bounds = %a;@ with_bounds = %a }" + format_layout layout Mod_bounds.debug_print mod_bounds + (With_bounds.debug_print ~print_type_expr) + with_bounds +end + +(*********************************) + +module Quality = struct + include Allowance.Magic_allow_disallow (struct + type (_, _, 'd) sided = 'd jkind_quality constraint 'd = 'l * 'r + + let disallow_left : + type l r. (l * r) jkind_quality -> (disallowed * r) jkind_quality = + function + | Not_best -> Not_best + | Best -> Best + + let disallow_right : + type l r. (l * r) jkind_quality -> (l * disallowed) jkind_quality = + function + | Not_best -> Not_best + | Best -> Best + + let allow_left : + type l r. (allowed * r) jkind_quality -> (l * r) jkind_quality = + function + | Not_best -> Not_best + | Best -> Best + + let allow_right : + type l r. (l * allowed) jkind_quality -> (l * r) jkind_quality = + function + | Not_best -> Not_best + end) + + let try_allow_r : + type l r. (l * r) jkind_quality -> (l * allowed) jkind_quality option = + function + | Not_best -> Some Not_best + | Best -> None +end + +include Allowance.Magic_allow_disallow (struct + type (_, _, 'd) sided = 'd jkind + + let disallow_right t = + { t with + jkind = Layout_and_axes.disallow_right t.jkind; + quality = Quality.disallow_right t.quality + } + + let disallow_left t = + { t with + jkind = Layout_and_axes.disallow_left t.jkind; + quality = Quality.disallow_left t.quality + } + + let allow_right t = + { t with + jkind = Layout_and_axes.allow_right t.jkind; + quality = Quality.allow_right t.quality + } + + let allow_left t = + { t with + jkind = Layout_and_axes.allow_left t.jkind; + quality = Quality.allow_left t.quality } +end) + +let try_allow_r t = + let open Misc.Stdlib.Monad.Option.Syntax in + let* jkind = Layout_and_axes.try_allow_r t.jkind in + let* quality = Quality.try_allow_r t.quality in + Some { t with jkind; quality } + +let fresh_jkind jkind ~annotation ~why = + { jkind; + annotation; + history = Creation why; + has_warned = false; + quality = Not_best + } + |> allow_left |> allow_right + +(* This version propagates the allowances from the [jkind] to the output. *) +let fresh_jkind_poly jkind ~annotation ~why = + { jkind; + annotation; + history = Creation why; + has_warned = false; + quality = Not_best + } + +(***********************) +(*** constant jkinds ***) + +module Context_with_transl = struct + type 'd t = + | Right_jkind : + ('l * allowed) History.annotation_context + -> ('l * allowed) t + | Left_jkind : + (Parsetree.core_type -> Types.type_expr) + * (allowed * disallowed) History.annotation_context + -> (allowed * disallowed) t + + let get_context : type l r. (l * r) t -> (l * r) History.annotation_context = + function + | Right_jkind ctx -> ctx + | Left_jkind (_, ctx) -> ctx +end + +let outcometree_of_type_scheme = ref (fun _ -> assert false) + +let set_outcometree_of_type_scheme p = outcometree_of_type_scheme := p + +let outcometree_of_modalities_new = ref (fun _ _ _ -> assert false) + +let set_outcometree_of_modalities_new p = outcometree_of_modalities_new := p + +module Const = struct + type 'd t = (Layout.Const.t, 'd) Types.layout_and_axes + + include Allowance.Magic_allow_disallow (struct + include Layout_and_axes.Allow_disallow + + type (_, _, 'd) sided = 'd t + end) + + let max = + Types. + { layout = Layout.Const.max; + mod_bounds = Mod_bounds.max; + with_bounds = No_with_bounds + } - let equal_after_all_inference_is_done t1 t2 = - Layout_and_axes.equal_after_all_inference_is_done Layout.Const.equal t1 t2 + let no_with_bounds_and_equal t1 t2 = + let open Misc.Stdlib.Monad.Option.Syntax in + let t1_t2 = + let* t1 = Layout_and_axes.try_allow_l t1 in + let* t1 = Layout_and_axes.try_allow_r t1 in + let* t2 = Layout_and_axes.try_allow_l t2 in + let* t2 = Layout_and_axes.try_allow_r t2 in + Some (t1, t2) + in + match t1_t2 with + | Some (t1, t2) -> + Layout.Const.equal t1.layout t2.layout + && Mod_bounds.equal t1.mod_bounds t2.mod_bounds + | None -> false module Builtin = struct - type nonrec +'d t = - { jkind : 'd t; + type nonrec t = + { jkind : (allowed * allowed) t; name : string } let mk_jkind ~mode_crossing ~nullability (layout : Layout.Const.t) = - let modes_upper_bounds, externality_upper_bound = + let mod_bounds = match mode_crossing with - | true -> Modes.min, Externality.min - | false -> Modes.max, Externality.max + | true -> { Mod_bounds.min with nullability } + | false -> { Mod_bounds.max with nullability } in - { layout; - modes_upper_bounds; - externality_upper_bound; - nullability_upper_bound = nullability - } + { layout; mod_bounds; with_bounds = No_with_bounds } let any = { jkind = mk_jkind Any ~mode_crossing:false ~nullability:Maybe_null; @@ -431,16 +830,14 @@ module Const = struct let immutable_data = { jkind = { layout = Base Value; - modes_upper_bounds = - { linearity = Linearity.Const.min; - contention = Contention.Const.min; - portability = Portability.Const.min; - uniqueness = Uniqueness.Const.max; - areality = Locality.Const.max; - yielding = Yielding.Const.min - }; - externality_upper_bound = Externality.max; - nullability_upper_bound = Nullability.Non_null + mod_bounds = + Mod_bounds.simple ~linearity:Linearity.Const.min + ~contention:Contention.Const.min + ~portability:Portability.Const.min + ~uniqueness:Uniqueness.Const.max ~locality:Locality.Const.max + ~yielding:Yielding.Const.min ~externality:Externality.max + ~nullability:Nullability.Non_null; + with_bounds = No_with_bounds }; name = "immutable_data" } @@ -448,16 +845,14 @@ module Const = struct let mutable_data = { jkind = { layout = Base Value; - modes_upper_bounds = - { linearity = Linearity.Const.min; - contention = Contention.Const.max; - portability = Portability.Const.min; - uniqueness = Uniqueness.Const.max; - areality = Locality.Const.max; - yielding = Yielding.Const.min - }; - externality_upper_bound = Externality.max; - nullability_upper_bound = Nullability.Non_null + mod_bounds = + Mod_bounds.simple ~linearity:Linearity.Const.min + ~contention:Contention.Const.max + ~portability:Portability.Const.min + ~uniqueness:Uniqueness.Const.max ~locality:Locality.Const.max + ~yielding:Yielding.Const.min ~externality:Externality.max + ~nullability:Nullability.Non_null; + with_bounds = No_with_bounds }; name = "mutable_data" } @@ -504,7 +899,13 @@ module Const = struct meeting the conditions. *) let immediate64 = - { jkind = { immediate.jkind with externality_upper_bound = External64 }; + { jkind = + { immediate.jkind with + mod_bounds = + { immediate.jkind.mod_bounds with + externality = Externality.External64 + } + }; name = "immediate64" } @@ -563,63 +964,48 @@ module Const = struct bits64; vec128 ] - let of_attribute : Builtin_attributes.jkind_attribute -> _ t = function + let of_attribute : Builtin_attributes.jkind_attribute -> t = function | Immediate -> immediate | Immediate64 -> immediate64 end module To_out_jkind_const : sig (** Convert a [t] into a [Outcometree.out_jkind_const]. - The jkind is written in terms of the built-in jkind that requires the least amount - of modes after the mod. For example, - [value mod global many unique portable uncontended external_ non_null] could be - written in terms of [value] (as it appears above), or in terms of [immediate] - (which would just be [immediate]). Since the latter requires less modes to be - printed, it is chosen. *) + The jkind is written in terms of the built-in jkind that requires the + least amount of modes after the mod. For example, [value mod global many + unique portable uncontended external_ non_null] could be written in + terms of [value] (as it appears above), or in terms of [immediate] + (which would just be [immediate]). Since the latter requires less modes + to be printed, it is chosen. *) val convert : 'd t -> Outcometree.out_jkind_const end = struct type printable_jkind = { base : string; - modal_bounds : string list + modal_bounds : string list; + printable_with_bounds : + (Outcometree.out_type * Outcometree.out_modality_new list) list } - module Bounds = struct - type t = - { alloc_bounds : Alloc.Const.t; - externality_bound : Externality.t; - nullability_bound : Nullability.t - } - - let of_jkind jkind = - { alloc_bounds = jkind.modes_upper_bounds; - externality_bound = jkind.externality_upper_bound; - nullability_bound = jkind.nullability_upper_bound - } - end - - let get_modal_bound ~le ~print ~base actual = - match le actual base with - | true -> ( - match le base actual with - | true -> `Valid None - | false -> `Valid (Some (Format.asprintf "%a" print actual))) - | false -> `Invalid - - let get_modal_bounds ~(base : Bounds.t) (actual : Bounds.t) = - [ get_modal_bound ~le:Locality.Const.le ~print:Locality.Const.print - ~base:base.alloc_bounds.areality actual.alloc_bounds.areality; - get_modal_bound ~le:Uniqueness.Const.le ~print:Uniqueness.Const.print - ~base:base.alloc_bounds.uniqueness actual.alloc_bounds.uniqueness; - get_modal_bound ~le:Linearity.Const.le ~print:Linearity.Const.print - ~base:base.alloc_bounds.linearity actual.alloc_bounds.linearity; - get_modal_bound ~le:Contention.Const.le ~print:Contention.Const.print - ~base:base.alloc_bounds.contention actual.alloc_bounds.contention; - get_modal_bound ~le:Portability.Const.le ~print:Portability.Const.print - ~base:base.alloc_bounds.portability actual.alloc_bounds.portability; - get_modal_bound ~le:Externality.le ~print:Externality.print - ~base:base.externality_bound actual.externality_bound; - get_modal_bound ~le:Nullability.le ~print:Nullability.print - ~base:base.nullability_bound actual.nullability_bound ] + let get_modal_bound (type a) ~(axis : a Axis.t) ~(base : a) (actual : a) = + let (module A) = Axis.get axis in + (* CR layouts v2.8: Fix printing! *) + let less_or_equal a b = + let (module Axis_ops) = Axis.get axis in + Axis_ops.less_or_equal a b + in + match less_or_equal actual base with + | Less | Equal -> ( + match less_or_equal base actual with + | Less | Equal -> `Valid None + | Not_le -> `Valid (Some (Format.asprintf "%a" A.print actual))) + | Not_le -> `Invalid + + let get_modal_bounds ~(base : Mod_bounds.t) (actual : Mod_bounds.t) = + Axis.all + |> List.map (fun (Axis.Pack axis) -> + let base = Mod_bounds.get ~axis base in + let actual = Mod_bounds.get ~axis actual in + get_modal_bound ~axis ~base actual) |> List.rev |> List.fold_left (fun acc mode -> @@ -629,18 +1015,51 @@ module Const = struct | Some acc, `Valid (Some mode) -> Some (mode :: acc)) (Some []) + let modality_from_relevant_axes relevant_axes = + (* The modality is id along relevant axes and constant along irrelevant axes. *) + let irrelevant_axes = Axis_set.complement relevant_axes in + List.fold_left + (fun acc (Axis.Pack axis) -> + match axis with + | Modal axis -> + let then_ : Modality.t = + let (P axis) = Mode.Const.Axis.alloc_as_value (P axis) in + match axis with + | Monadic monadic -> + Atom + (axis, Join_with (Mode.Value.Monadic.Const.max_axis monadic)) + | Comonadic comonadic -> + Atom + ( axis, + Meet_with (Mode.Value.Comonadic.Const.min_axis comonadic) ) + in + Modality.Value.Const.compose acc ~then_ + | Nonmodal _ -> + (* TODO: don't know how to print *) + acc) + Modality.Value.Const.id + (Axis_set.to_list irrelevant_axes) + (** Write [actual] in terms of [base] *) - let convert_with_base ~(base : _ Builtin.t) actual = + let convert_with_base ~(base : Builtin.t) (actual : _ t) = let matching_layouts = Layout.Const.equal base.jkind.layout actual.layout in let modal_bounds = - get_modal_bounds - ~base:(Bounds.of_jkind base.jkind) - (Bounds.of_jkind actual) + get_modal_bounds ~base:base.jkind.mod_bounds actual.mod_bounds + in + let printable_with_bounds = + List.map + (fun (type_expr, ({ relevant_axes } : With_bounds_type_info.t)) -> + ( !outcometree_of_type_scheme type_expr, + !outcometree_of_modalities_new + Types.Immutable [] + (modality_from_relevant_axes relevant_axes) )) + (With_bounds.to_list actual.with_bounds) in match matching_layouts, modal_bounds with - | true, Some modal_bounds -> Some { base = base.name; modal_bounds } + | true, Some modal_bounds -> + Some { base = base.name; modal_bounds; printable_with_bounds } | false, _ | _, None -> None (** Select the out_jkind_const with the least number of modal bounds to print *) @@ -656,6 +1075,11 @@ module Const = struct | [] -> None let convert jkind = + let jkind = + if Language_extension.(is_at_least Layouts Alpha) + then jkind + else { jkind with with_bounds = No_with_bounds } + in (* For each primitive jkind, we try to print the jkind in terms of it (this is possible if the primitive is a subjkind of it). We then choose the "simplest". The "simplest" is taken to mean the one with the least number of modes that need to @@ -678,9 +1102,11 @@ module Const = struct ~base: { jkind = { layout = jkind.layout; - modes_upper_bounds = Modes.max; - externality_upper_bound = Externality.max; - nullability_upper_bound = Nullability.Non_null + mod_bounds = + { Mod_bounds.max with + nullability = Nullability.Non_null + }; + with_bounds = No_with_bounds }; name = Layout.Const.to_string jkind.layout } @@ -695,9 +1121,8 @@ module Const = struct ~base: { jkind = { layout = jkind.layout; - modes_upper_bounds = Modes.max; - externality_upper_bound = Externality.max; - nullability_upper_bound = Nullability.max + mod_bounds = Mod_bounds.max; + with_bounds = No_with_bounds }; name = Layout.Const.to_string jkind.layout } @@ -707,46 +1132,48 @@ module Const = struct modal bounds are all max *) Option.get out_jkind_verbose) in - match printable_jkind with - | { base; modal_bounds = _ :: _ as modal_bounds } -> - Outcometree.Ojkind_const_mod - (Ojkind_const_abbreviation base, modal_bounds) - | { base; modal_bounds = [] } -> - Outcometree.Ojkind_const_abbreviation base + let base, with_tys = + match printable_jkind with + | { base; modal_bounds = _ :: _ as modal_bounds; printable_with_bounds } + -> + ( Outcometree.Ojkind_const_mod + (Ojkind_const_abbreviation base, modal_bounds), + printable_with_bounds ) + | { base; modal_bounds = []; printable_with_bounds } -> + Outcometree.Ojkind_const_abbreviation base, printable_with_bounds + in + (* Finally, add on the [with]-types and their modalities *) + List.fold_left + (fun jkind (ty, modalities) -> + Outcometree.Ojkind_const_with (jkind, ty, modalities)) + base with_tys end let to_out_jkind_const jkind = To_out_jkind_const.convert jkind let format ppf jkind = to_out_jkind_const jkind |> !Oprint.out_jkind_const ppf - let jkind_of_product_annotations jkinds = - let folder (layouts, mode_ub, ext_ub, null_ub) - { layout; - modes_upper_bounds; - externality_upper_bound; - nullability_upper_bound - } = - ( layout :: layouts, - Modes.join mode_ub modes_upper_bounds, - Externality.join ext_ub externality_upper_bound, - Nullability.join null_ub nullability_upper_bound ) + (*******************************) + (* converting user annotations *) + + let jkind_of_product_annotations (type l r) (jkinds : (l * r) t list) = + let folder (type l r) (layouts_acc, mod_bounds_acc, with_bounds_acc) + ({ layout; mod_bounds; with_bounds } : (l * r) t) = + ( layout :: layouts_acc, + Mod_bounds.join mod_bounds mod_bounds_acc, + With_bounds.join with_bounds with_bounds_acc ) in - let layouts, mode_ub, ext_ub, null_ub = - List.fold_left folder - ([], Modes.min, Externality.min, Nullability.min) - jkinds + let layouts, mod_bounds, with_bounds = + List.fold_left folder ([], Mod_bounds.min, No_with_bounds) jkinds in { layout = Layout.Const.Product (List.rev layouts); - modes_upper_bounds = mode_ub; - externality_upper_bound = ext_ub; - nullability_upper_bound = null_ub + mod_bounds; + with_bounds } let rec of_user_written_annotation_unchecked_level : type l r. - (l * r) History.annotation_context -> - Parsetree.jkind_annotation -> - (l * r) t = + (l * r) Context_with_transl.t -> Parsetree.jkind_annotation -> (l * r) t = fun context jkind -> match jkind.pjkind_desc with | Abbreviation name -> @@ -765,39 +1192,52 @@ module Const = struct | "bits32" -> Builtin.bits32.jkind | "bits64" -> Builtin.bits64.jkind | "vec128" -> Builtin.vec128.jkind + | "immutable_data" -> Builtin.immutable_data.jkind + | "mutable_data" -> Builtin.mutable_data.jkind | _ -> raise ~loc:jkind.pjkind_loc (Unknown_jkind jkind)) |> allow_left |> allow_right - | Mod (jkind, modifiers) -> - let base = of_user_written_annotation_unchecked_level context jkind in + | Mod (base, modifiers) -> + let base = of_user_written_annotation_unchecked_level context base in (* for each mode, lower the corresponding modal bound to be that mode *) let parsed_modifiers = Typemode.transl_modifier_annots modifiers in - let parsed_modes : Alloc.Const.Option.t = - { areality = parsed_modifiers.locality; - linearity = parsed_modifiers.linearity; - uniqueness = parsed_modifiers.uniqueness; - portability = parsed_modifiers.portability; - contention = parsed_modifiers.contention; - yielding = parsed_modifiers.yielding - } + let mod_bounds = + Mod_bounds.Create.f + { f = + (fun (type a) ~(axis : a Axis.t) -> + let (module A) = Axis.get axis in + let parsed_modifier = + Typemode.Transled_modifiers.get ~axis parsed_modifiers + in + let base_bound = Mod_bounds.get ~axis base.mod_bounds in + match parsed_modifier, base_bound with + | None, base_bound -> base_bound + | Some parsed_modifier, base_modifier -> + A.meet base_modifier parsed_modifier.txt) + } in - { layout = base.layout; - modes_upper_bounds = - Alloc.Const.meet base.modes_upper_bounds - (Alloc.Const.Option.value ~default:Alloc.Const.max parsed_modes); - nullability_upper_bound = - Nullability.meet base.nullability_upper_bound - (Option.value ~default:Nullability.max parsed_modifiers.nullability); - externality_upper_bound = - Externality.meet base.externality_upper_bound - (Option.value ~default:Externality.max parsed_modifiers.externality) - } + { layout = base.layout; mod_bounds; with_bounds = No_with_bounds } | Product ts -> let jkinds = List.map (of_user_written_annotation_unchecked_level context) ts in jkind_of_product_annotations jkinds - | Default | With _ | Kind_of _ -> - raise ~loc:jkind.pjkind_loc Unimplemented_syntax + | With (base, type_, modalities) -> ( + let base = of_user_written_annotation_unchecked_level context base in + match context with + | Right_jkind _ -> raise ~loc:type_.ptyp_loc With_on_right + | Left_jkind (transl_type, _) -> + let type_ = transl_type type_ in + let modality = + Typemode.transl_modalities ~maturity:Stable Immutable [] modalities + in + { layout = base.layout; + mod_bounds = base.mod_bounds; + with_bounds = + With_bounds.add_modality ~modality + ~relevant_for_nullability:`Irrelevant ~type_expr:type_ + base.with_bounds + }) + | Default | Kind_of _ -> raise ~loc:jkind.pjkind_loc Unimplemented_syntax (* The [annotation_context] parameter can be used to allow annotations / kinds in different contexts to be enabled with different extension settings. @@ -805,18 +1245,19 @@ module Const = struct parameter might effectively be unused. *) (* CR layouts: When everything is stable, remove this function. *) - let get_required_layouts_level (_context : 'd History.annotation_context) + let get_required_layouts_level (_context : 'd Context_with_transl.t) (jkind : 'd t) = let rec scan_layout (l : Layout.Const.t) : Language_extension.maturity = - match l, jkind.nullability_upper_bound with + match l, jkind.mod_bounds.nullability with | (Base (Float64 | Float32 | Word | Bits32 | Bits64 | Vec128) | Any), _ - | Base Value, Non_null -> + | Base Value, Non_null + | Base Value, Maybe_null -> Stable | Product layouts, _ -> List.fold_left (fun m l -> Language_extension.Maturity.max m (scan_layout l)) Language_extension.Stable layouts - | Base Void, _ | Base Value, Maybe_null -> Alpha + | Base Void, _ -> Alpha in scan_layout jkind.layout @@ -831,7 +1272,7 @@ module Const = struct end module Desc = struct - type 'd t = (Sort.Flat.t Layout.t, 'd) Layout_and_axes.t + type 'd t = (Sort.Flat.t Layout.t, 'd) layout_and_axes let get_const t = Layout_and_axes.map_option Layout.get_flat_const t @@ -840,8 +1281,7 @@ module Desc = struct algorithm. *) let format ppf t = let open Format in - let rec format_desc ~nested ppf - (desc : (Sort.Flat.t Layout.t, _) Layout_and_axes.t) = + let rec format_desc ~nested ppf (desc : _ t) = match desc.layout with | Sort (Var n) -> fprintf ppf "'s%d" (Sort.Var.get_print_number n) (* Analyze a product before calling [get_const]: the machinery in @@ -859,82 +1299,283 @@ module Desc = struct end module Jkind_desc = struct - open Jkind_types.Layout_and_axes - let of_const t = Layout_and_axes.map Layout.of_const t let add_nullability_crossing t = - { t with nullability_upper_bound = Nullability.min } - - let add_portability_and_contention_crossing ~from t = - let new_portability = - Portability.Const.meet t.modes_upper_bounds.portability - from.modes_upper_bounds.portability - in - let new_contention = - Contention.Const.meet t.modes_upper_bounds.contention - from.modes_upper_bounds.contention - in - let added_crossings = - (not - (Portability.Const.le t.modes_upper_bounds.portability new_portability)) - || not - (Contention.Const.le t.modes_upper_bounds.contention new_contention) - in - ( { t with - modes_upper_bounds = - { t.modes_upper_bounds with - portability = new_portability; - contention = new_contention - } - }, - added_crossings ) + { t with mod_bounds = { t.mod_bounds with nullability = Nullability.min } } + + let unsafely_set_mod_bounds t ~from = + { t with mod_bounds = from.mod_bounds; with_bounds = No_with_bounds } + + let add_with_bounds ~relevant_for_nullability ~type_expr ~modality t = + match Types.get_desc type_expr with + | Tarrow (_, _, _, _) -> + (* Optimization: all arrow types have the same (with-bound-free) jkind, so we can just + eagerly do a join on the mod-bounds here rather than having to add them to our with + bounds only to be normalized away later. *) + { t with mod_bounds = Mod_bounds.join t.mod_bounds Mod_bounds.for_arrow } + | _ -> + { t with + with_bounds = + With_bounds.add_modality ~relevant_for_nullability ~type_expr + ~modality t.with_bounds + } let max = of_const Const.max - let equate_or_equal ~allow_mutation - { layout = lay1; - modes_upper_bounds = modes1; - externality_upper_bound = ext1; - nullability_upper_bound = null1 - } - { layout = lay2; - modes_upper_bounds = modes2; - externality_upper_bound = ext2; - nullability_upper_bound = null2 - } = - Layout.equate_or_equal ~allow_mutation lay1 lay2 - && Modes.equal modes1 modes2 - && Externality.equal ext1 ext2 - && Nullability.equal null1 null2 + let equate_or_equal ~allow_mutation t1 t2 = + Layout_and_axes.equal (Layout.equate_or_equal ~allow_mutation) t1 t2 + + type 'd normalize_mode = + | Require_best : ('l * disallowed) normalize_mode + | Ignore_best : ('l * 'r) normalize_mode + + module Fuel_status = struct + type t = + | Ran_out_of_fuel + | Sufficient_fuel + + let both a b = + match a, b with + | Ran_out_of_fuel, _ | _, Ran_out_of_fuel -> Ran_out_of_fuel + | Sufficient_fuel, Sufficient_fuel -> Sufficient_fuel + end + + (* Normalize the jkind. If mode is Require_best, only jkinds that are best will be used. + If mode is Ignore_best, then Not_best will be used. Since Ignore_best can use + Not_best, the result is guaranteed to have no with-bounds. + + At each step during normalization, before expanding a type, [map_type_info] is used + to map the type-info for the type being expanded. The type can be prevented from + being expanded by mapping the relevant axes to an empty set. [map_type_info] is used + by sub_jkind_l to remove irrelevant axes. *) + let map_normalize (type l1 r1 l2 r2) ~jkind_of_type + ~(mode : (l2 * r2) normalize_mode) + ~(map_type_info : + type_expr -> With_bounds_type_info.t -> With_bounds_type_info.t) + (t : (l1 * r1) jkind_desc) : (l2 * r2) jkind_desc * Fuel_status.t = + (* Sadly, it seems hard (impossible?) to be sure to expand all types + here without using a fuel parameter to stop infinite regress. Here + is a nasty case: + + {[ + type zero + type 'n succ + + type 'n loopy = Mk of 'n succ loopy list [@@unboxed] + ]} + + First off: this type *is* inhabited, because of the [list] intervening + type (which can be empty). It's also inhabited by various circular + structures. + + But what's the jkind of ['n loopy]? It must be the jkind of + ['n succ loopy list], which is [immutable_data with 'n succ loopy]. + In order to see if we shouldn't mode-cross, we have to expand the + ['n succ loopy] in the jkind, but expanding that just yields the need + to expand ['n succ succ loopy], and around we go. + + It seems hard to avoid this problem. And so we use fuel. Yet we want + both a small amount of fuel (a type like [type t = K of (t * t) list] + gets big very quickly) and a lot of fuel (we can imagine using a unit + of fuel for each level of a deeply nested record structure). The + compromise is to track fuel per type head, where a type head is either + the path to a type constructor (like [t] or [loopy]) or a tuple. + (We need to include tuples because of the possibility of recursive + types and the fact that tuples track their element types in their + jkind's with_bounds.) + + The initial fuel per type head is 10, as it seems hard to imagine that + we're going to make meaningful progress if we've seen the same type + head 10 times in one line of recursive descent. (This "one line of + recursive descent" bit is why we recur separately down one type before + iterating down the list.) + *) + (* CR reisenberg: document seen_args *) + let module Loop_control = struct + type t = + { tuple_fuel : int; + constr : (int * type_expr list) Path.Map.t; + fuel_status : Fuel_status.t + } + + type result = + | Stop of t (* give up, returning [max] *) + | Skip (* skip reducing this type, but otherwise continue *) + | Continue of t (* continue, with a new [t] *) + + let initial_fuel_per_ty = 2 + + let starting = + { tuple_fuel = initial_fuel_per_ty; + constr = Path.Map.empty; + fuel_status = Sufficient_fuel + } - let sub t1 t2 = Layout_and_axes.sub Layout.sub t1 t2 + let rec check ({ tuple_fuel; constr; fuel_status = _ } as t) ty = + match Types.get_desc ty with + | Tpoly (ty, _) -> check t ty + | Ttuple _ -> + if tuple_fuel > 0 + then Continue { t with tuple_fuel = tuple_fuel - 1 } + else Stop { t with fuel_status = Ran_out_of_fuel } + | Tconstr (p, args, _) -> ( + match Path.Map.find_opt p constr with + | None -> + Continue + { t with + constr = Path.Map.add p (initial_fuel_per_ty, args) constr + } + | Some (fuel, seen_args) -> + if List.for_all2 + (fun ty1 ty2 -> + TransientTypeOps.equal (Transient_expr.repr ty1) + (Transient_expr.repr ty2)) + seen_args args + then Skip + else if fuel > 0 + then + Continue + { t with constr = Path.Map.add p (fuel - 1, args) constr } + else Stop { t with fuel_status = Ran_out_of_fuel }) + | Tvar _ | Tarrow _ | Tunboxed_tuple _ | Tobject _ | Tfield _ | Tnil + | Tvariant _ | Tunivar _ | Tpackage _ -> + (* these cases either cannot be infinitely recursive or their jkinds + do not have with_bounds *) + (* CR layouts v2.8: Some of these might get with-bounds someday. We + should double-check before we're done that they haven't. *) + Continue t + | Tlink _ | Tsubst _ -> Misc.fatal_error "Tlink or Tsubst in normalize" + end in + let rec loop (ctl : Loop_control.t) bounds_so_far : + (type_expr * With_bounds_type_info.t) list -> + Mod_bounds.t * (l2 * r2) with_bounds * Fuel_status.t = function + (* early cutoff *) + | _ + when Misc.Le_result.is_le + (Mod_bounds.less_or_equal Mod_bounds.max bounds_so_far) -> + (* CR layouts v2.8: we can do better by early-terminating on a per-axis basis *) + bounds_so_far, No_with_bounds, Sufficient_fuel + | [] -> bounds_so_far, No_with_bounds, ctl.fuel_status + | (ty, ti) :: bs -> ( + (* Map the type's info before expanding the type *) + let ti = map_type_info ty ti in + (* We don't care about axes that are already max because they can't get any + better or worse. By ignoring them, we may be able to terminate early *) + let ti : With_bounds_type_info.t = + { relevant_axes = + Axis_set.diff ti.relevant_axes + (Mod_bounds.get_max_axes bounds_so_far) + } + in + match Axis_set.is_empty ti.relevant_axes with + | true -> + (* If [ty] is not relevant to any axes, then we can safely drop it and thereby + avoid doing the work of expanding it. *) + loop ctl bounds_so_far bs + | false -> ( + let join_bounds b1 b2 ~relevant_axes = + Mod_bounds.Map2.f + { f = + (fun (type a) ~(axis : a Axis.t) b1 b2 -> + if Axis_set.mem relevant_axes axis + then + let (module Bound_ops) = Axis.get axis in + Bound_ops.join b1 b2 + else b1) + } + b1 b2 + in + let found_jkind_for_ty new_ctl b_upper_bounds b_with_bounds quality : + Mod_bounds.t * (l2 * r2) with_bounds * Fuel_status.t = + match quality, mode with + | Best, _ | Not_best, Ignore_best -> + let bounds_so_far = + join_bounds bounds_so_far b_upper_bounds + ~relevant_axes:ti.relevant_axes + in + (* Descend into the with-bounds of each of our with-bounds types' + with-bounds *) + let bounds_so_far, nested_with_bounds, fuel_result1 = + loop new_ctl bounds_so_far (With_bounds.to_list b_with_bounds) + in + (* CR layouts v2.8: we use [new_ctl] here, not [ctl], to avoid big quadratic + stack growth for very widely recursive types. This is sad, since it + prevents us from mode crossing a record with 20 lists with different + payloads, but less sad than a stack overflow of the compiler during type + declaration checking. + + Ideally, this whole problem goes away once we rethink fuel. + *) + let bounds, bs', fuel_result2 = loop new_ctl bounds_so_far bs in + ( bounds, + With_bounds.join nested_with_bounds bs', + Fuel_status.both fuel_result1 fuel_result2 ) + | Not_best, Require_best -> + let bounds_so_far, bs', fuel_result = + loop new_ctl bounds_so_far bs + in + bounds_so_far, With_bounds.add ty ti bs', fuel_result + in + match Loop_control.check ctl ty with + | Stop ctl_after_stop -> + (* out of fuel, so assume [ty] has the worst possible bounds. *) + found_jkind_for_ty ctl_after_stop Mod_bounds.max No_with_bounds + Not_best + | Skip -> loop ctl bounds_so_far bs (* skip [b] *) + | Continue ctl_after_unpacking_b -> ( + match jkind_of_type ty with + | Some b_jkind -> + found_jkind_for_ty ctl_after_unpacking_b b_jkind.jkind.mod_bounds + b_jkind.jkind.with_bounds b_jkind.quality + | None -> + (* kind of b is not principally known, so we treat it as having the max + bound (only along the axes we care about for this type!) *) + found_jkind_for_ty ctl_after_unpacking_b Mod_bounds.max + No_with_bounds Not_best))) + in + let mod_bounds, with_bounds, fuel_status = + loop Loop_control.starting t.mod_bounds + (With_bounds.to_list t.with_bounds) + in + { t with mod_bounds; with_bounds }, fuel_status + + let normalize ~jkind_of_type ~mode t = + map_normalize ~jkind_of_type ~mode ~map_type_info:(fun _ ti -> ti) t + + let sub (type l r) ~type_equal:_ ~jkind_of_type + (sub : (allowed * r) jkind_desc) + ({ layout = lay2; mod_bounds = bounds2; with_bounds = No_with_bounds } : + (l * allowed) jkind_desc) = + let ( ({ layout = lay1; mod_bounds = bounds1; with_bounds = No_with_bounds } : + Allowance.right_only jkind_desc), + _ ) = + normalize ~mode:Ignore_best ~jkind_of_type sub + in + let layout = Layout.sub lay1 lay2 in + let bounds = Mod_bounds.less_or_equal bounds1 bounds2 in + Misc.Le_result.combine layout bounds let intersection - { layout = lay1; - modes_upper_bounds = modes1; - externality_upper_bound = ext1; - nullability_upper_bound = null1 - } - { layout = lay2; - modes_upper_bounds = modes2; - externality_upper_bound = ext2; - nullability_upper_bound = null2 - } = - Option.bind (Layout.intersection lay1 lay2) (fun layout -> - Some - { layout; - modes_upper_bounds = Modes.meet modes1 modes2; - externality_upper_bound = Externality.meet ext1 ext2; - nullability_upper_bound = Nullability.meet null1 null2 - }) + { layout = lay1; mod_bounds = mod_bounds1; with_bounds = with_bounds1 } + { layout = lay2; mod_bounds = mod_bounds2; with_bounds = with_bounds2 } = + match Layout.intersection lay1 lay2 with + | None -> None + | Some layout -> + Some + { layout; + mod_bounds = Mod_bounds.meet mod_bounds1 mod_bounds2; + with_bounds = With_bounds.meet with_bounds1 with_bounds2 + } + + let map_type_expr f t = Layout_and_axes.map_type_expr f t let of_new_sort_var nullability_upper_bound = let layout, sort = Layout.of_new_sort_var () in ( { layout; - modes_upper_bounds = Modes.max; - externality_upper_bound = Externality.max; - nullability_upper_bound + mod_bounds = + { Mod_bounds.max with nullability = nullability_upper_bound }; + with_bounds = No_with_bounds }, sort ) @@ -945,54 +1586,55 @@ module Jkind_desc = struct let value = of_const Const.Builtin.value.jkind + let immutable_data = of_const Const.Builtin.immutable_data.jkind + + let mutable_data = of_const Const.Builtin.mutable_data.jkind + let void = of_const Const.Builtin.void.jkind let immediate = of_const Const.Builtin.immediate.jkind end - let product jkinds = - (* CR layouts v7.1: Here we throw away the history of the component - jkinds. This is not great. We should, as part of a broader pass on error - messages around product kinds, zip them up into some kind of product - history. *) - let folder (layouts, annotations, mode_ub, ext_ub, null_ub) - { jkind = - { layout; - modes_upper_bounds; - externality_upper_bound; - nullability_upper_bound - }; - annotation; - history = _; - has_warned = _ - } = - ( layout :: layouts, - annotation :: annotations, - Modes.join mode_ub modes_upper_bounds, - Externality.join ext_ub externality_upper_bound, - Nullability.join null_ub nullability_upper_bound ) - in - let layouts, annotations, mode_ub, ext_ub, null_ub = - List.fold_left folder - ([], [], Modes.min, Externality.min, Nullability.min) - jkinds - in - let layouts = List.rev layouts in - let annotations = List.rev annotations in - let annotations = Misc.Stdlib.Monad.Option.all annotations in - let annotation = - Option.map - (fun annotations -> - Parsetree. - { pjkind_loc = Location.none; pjkind_desc = Product annotations }) - annotations - in - ( { layout : _ Layout.t = Product layouts; - modes_upper_bounds = mode_ub; - externality_upper_bound = ext_ub; - nullability_upper_bound = null_ub - }, - annotation ) + let product ~jkind_of_first_type ~jkind_of_type tys_modalities layouts = + (* CR layouts v2.8: We can probably drop this special case once we + have proper subsumption. The general algorithm gets the right + jkind, but the subsumption check fails because it can't recognize + that the one it comes up with is right. *) + match layouts with + | [_] -> (jkind_of_first_type ()).jkind + | _ -> + if !Clflags.infer_with_bounds + then + let layout = Layout.product layouts in + let mod_bounds = Mod_bounds.min in + let with_bounds = + List.fold_right + (fun (type_expr, modality) bounds -> + With_bounds.add_modality ~relevant_for_nullability:`Relevant + ~type_expr ~modality bounds) + tys_modalities No_with_bounds + in + { layout; mod_bounds; with_bounds } + else + let folder (layouts, bounds) (ty, _) = + let { jkind = { layout; mod_bounds; with_bounds = _ }; + annotation = _; + history = _; + has_warned = _; + quality = _ + } = + jkind_of_type ty + in + layout :: layouts, Mod_bounds.join bounds mod_bounds + in + let layouts, mod_bounds = + List.fold_left folder ([], Mod_bounds.min) tys_modalities + in + let layouts = List.rev layouts in + { layout = Layout.Product layouts; + mod_bounds; + with_bounds = No_with_bounds + } let get t = Layout_and_axes.map Layout.get t @@ -1000,7 +1642,7 @@ module Jkind_desc = struct module Debug_printers = struct let t ppf t = - Layout_and_axes.format + Layout_and_axes.debug_print (Layout.Debug_printers.t Sort.Debug_printers.t) ppf t end @@ -1013,19 +1655,27 @@ end let mk_annot name = Some Parsetree.{ pjkind_loc = Location.none; pjkind_desc = Abbreviation name } +let mark_best (type l r) (t : (l * r) Types.jkind) = + { (disallow_right t) with quality = Best } + +let is_best t = match t.quality with Best -> true | Not_best -> false + module Builtin = struct let any_dummy_jkind = { jkind = Jkind_desc.max; annotation = None; (* this should never get printed: it's a dummy *) history = Creation (Any_creation Dummy_jkind); - has_warned = false + has_warned = false; + quality = Not_best } (* CR layouts: Should we be doing more memoization here? *) let any ~(why : History.any_creation_reason) = match why with - | Dummy_jkind -> any_dummy_jkind (* share this one common case *) + | Dummy_jkind -> + any_dummy_jkind (* share this one common case *) |> allow_left + |> allow_right | _ -> fresh_jkind Jkind_desc.Builtin.any ~annotation:(mk_annot "any") ~why:(Any_creation why) @@ -1034,16 +1684,18 @@ module Builtin = struct { jkind = Jkind_desc.Builtin.value_or_null; annotation = mk_annot "value"; history = Creation (Value_or_null_creation V1_safety_check); - has_warned = false + has_warned = false; + quality = Not_best } let void ~why = fresh_jkind Jkind_desc.Builtin.void ~annotation:(mk_annot "void") ~why:(Void_creation why) + |> mark_best let value_or_null ~why = match (why : History.value_or_null_creation_reason) with - | V1_safety_check -> value_v1_safety_check + | V1_safety_check -> value_v1_safety_check |> allow_left |> allow_right | _ -> fresh_jkind Jkind_desc.Builtin.value_or_null ~annotation:(mk_annot "value_or_null") ~why:(Value_or_null_creation why) @@ -1052,27 +1704,70 @@ module Builtin = struct fresh_jkind Jkind_desc.Builtin.value ~annotation:(mk_annot "value") ~why:(Value_creation why) + let immutable_data ~(why : History.value_creation_reason) = + fresh_jkind Jkind_desc.Builtin.immutable_data + ~annotation:(mk_annot "immutable_data") + ~why:(Value_creation why) + + let mutable_data ~(why : History.value_creation_reason) = + fresh_jkind Jkind_desc.Builtin.mutable_data + ~annotation:(mk_annot "mutable_data") ~why:(Value_creation why) + let immediate ~why = fresh_jkind Jkind_desc.Builtin.immediate ~annotation:(mk_annot "immediate") ~why:(Immediate_creation why) + |> mark_best - let product ~why ts = - match ts with - | [] -> Misc.fatal_error "Jkind.Builtin.product: empty product" - | [t] -> t - | ts -> - let desc, annotation = Jkind_desc.product ts in - fresh_jkind desc ~annotation ~why:(Product_creation why) + let product ~jkind_of_first_type ~jkind_of_type ~why tys_modalities layouts = + let desc = + Jkind_desc.product ~jkind_of_first_type ~jkind_of_type tys_modalities + layouts + in + fresh_jkind_poly desc ~annotation:None ~why:(Product_creation why) + (* [mark_best] is correct here because the with-bounds of a product jkind include all + the components of the product. Accordingly, looking through the product, by one + step, never loses any information. *) + |> mark_best + + let product_of_sorts ~why arity = + let layout = + Layout.product + (List.init arity (fun _ -> fst (Layout.of_new_sort_var ()))) + in + let desc : _ jkind_desc = + { layout; mod_bounds = Mod_bounds.max; with_bounds = No_with_bounds } + in + fresh_jkind_poly desc ~annotation:None ~why:(Product_creation why) + (* We do not [mark_best] here because the resulting jkind is used (only) in the middle of + type-checking mutually recursive type declarations. See Note [Default jkind in + transl_declaration] for more commentary on why we don't want [Best] jkinds there. *) end let add_nullability_crossing t = { t with jkind = Jkind_desc.add_nullability_crossing t.jkind } -let add_portability_and_contention_crossing ~from t = - let jkind, added_crossings = - Jkind_desc.add_portability_and_contention_crossing ~from:from.jkind t.jkind - in - { t with jkind }, added_crossings +let unsafely_set_mod_bounds (type l r) ~(from : (l * r) jkind) t = + match from.jkind.with_bounds with + | With_bounds _ -> Error () + | No_with_bounds -> + Ok + { t with + jkind = Jkind_desc.unsafely_set_mod_bounds t.jkind ~from:from.jkind + } + +let add_with_bounds ~modality ~type_expr t = + { t with + jkind = + Jkind_desc.add_with_bounds + (* We only care about types in fields of unboxed products for the nullability of + the overall kind *) + ~relevant_for_nullability:`Irrelevant ~type_expr ~modality t.jkind + } + +let has_with_bounds t = + match t.jkind.with_bounds with + | No_with_bounds -> false + | With_bounds _ -> true (******************************) (* construction *) @@ -1089,55 +1784,58 @@ let of_new_legacy_sort_var ~why = let of_new_legacy_sort ~why = fst (of_new_legacy_sort_var ~why) -let of_const ~annotation ~why - ({ layout; - modes_upper_bounds; - externality_upper_bound; - nullability_upper_bound - } : - 'd Const.t) = - { jkind = - { layout = Layout.of_const layout; - modes_upper_bounds; - externality_upper_bound; - nullability_upper_bound - }; +let of_const (type l r) ~annotation ~why ~(quality : (l * r) jkind_quality) + (c : (l * r) Const.t) = + { jkind = Layout_and_axes.map Layout.of_const c; annotation; history = Creation why; - has_warned = false + has_warned = false; + quality } let of_builtin ~why Const.Builtin.{ jkind; name } = - of_const ~annotation:(mk_annot name) ~why jkind + jkind |> Layout_and_axes.allow_left |> Layout_and_axes.disallow_right + |> of_const ~annotation:(mk_annot name) + ~why + (* The [Best] is OK here because this function is used only in Predef. *) + ~quality:Best let of_annotated_const ~context ~annotation ~const ~const_loc = - of_const ~annotation ~why:(Annotated (context, const_loc)) const + let context = Context_with_transl.get_context context in + of_const ~annotation + ~why:(Annotated (context, const_loc)) + const ~quality:Not_best -let of_annotation ~context (annot : Parsetree.jkind_annotation) = +let of_annotation_lr ~context (annot : Parsetree.jkind_annotation) = let const = Const.of_user_written_annotation ~context annot in of_annotated_const ~annotation:(Some annot) ~const ~const_loc:annot.pjkind_loc ~context +let of_annotation ~context annot = + of_annotation_lr ~context:(Right_jkind context) annot + let of_annotation_option_default ~default ~context = function | None -> default | Some annot -> of_annotation ~context annot let of_attribute ~context (attribute : Builtin_attributes.jkind_attribute Location.loc) = - let ({ jkind = const; name } : _ Const.Builtin.t) = + let ({ jkind = const; name } : Const.Builtin.t) = Const.Builtin.of_attribute attribute.txt in of_annotated_const ~context ~annotation:(mk_annot name) ~const ~const_loc:attribute.loc -let of_type_decl ~context (decl : Parsetree.type_declaration) = +let of_type_decl ~context ~transl_type (decl : Parsetree.type_declaration) = + let context = Context_with_transl.Left_jkind (transl_type, context) in let jkind_of_annotation = decl.ptype_jkind_annotation - |> Option.map (fun annot -> of_annotation ~context annot, annot) + |> Option.map (fun annot -> of_annotation_lr ~context annot, annot) in let jkind_of_attribute = Builtin_attributes.jkind decl.ptype_attributes - |> Option.map (fun attr -> (of_attribute ~context attr, None), attr) + |> Option.map (fun attr -> + (of_attribute ~context attr |> disallow_right, None), attr) in match jkind_of_annotation, jkind_of_attribute with | None, None -> None @@ -1147,54 +1845,161 @@ let of_type_decl ~context (decl : Parsetree.type_declaration) = raise ~loc:decl.ptype_loc (Multiple_jkinds { from_annotation; from_attribute }) -let of_type_decl_default ~context ~default (decl : Parsetree.type_declaration) = - match of_type_decl ~context decl with Some (t, _) -> t | None -> default +let of_type_decl_default ~context ~transl_type ~default + (decl : Parsetree.type_declaration) = + match of_type_decl ~context ~transl_type decl with + | Some (t, _) -> t + | None -> default -let for_boxed_record ~all_void = - if all_void +let has_mutable_label lbls = + List.exists + (fun (lbl : Types.label_declaration) -> + match lbl.ld_mutable with Immutable -> false | Mutable _ -> true) + lbls + +let all_void_labels lbls = + List.for_all + (fun (lbl : Types.label_declaration) -> Sort.Const.(equal void lbl.ld_sort)) + lbls + +let add_labels_as_with_bounds lbls jkind = + List.fold_right + (fun (lbl : Types.label_declaration) -> + add_with_bounds ~type_expr:lbl.ld_type ~modality:lbl.ld_modalities) + lbls jkind + +let for_boxed_record lbls = + if all_void_labels lbls then Builtin.immediate ~why:Empty_record + else if !Clflags.infer_with_bounds + then + let is_mutable = has_mutable_label lbls in + let base = + (if is_mutable then Builtin.mutable_data else Builtin.immutable_data) + ~why:Boxed_record + |> mark_best + in + add_labels_as_with_bounds lbls base else Builtin.value ~why:Boxed_record -let for_boxed_variant ~all_voids = - if all_voids +let for_unboxed_record ~jkind_of_first_type ~jkind_of_type lbls = + let open Types in + let tys_modalities = + List.map (fun lbl -> lbl.ld_type, lbl.ld_modalities) lbls + in + let layouts = + List.map + (fun lbl -> lbl.ld_sort |> Layout.Const.of_sort_const |> Layout.of_const) + lbls + in + Builtin.product ~jkind_of_first_type ~jkind_of_type ~why:Unboxed_record + tys_modalities layouts + +(* CR layouts v2.8: This should take modalities into account. *) +let for_boxed_variant cstrs = + let open Types in + if List.for_all + (fun cstr -> + match cstr.cd_args with + | Cstr_tuple args -> + List.for_all (fun arg -> Sort.Const.(equal void arg.ca_sort)) args + | Cstr_record lbls -> all_void_labels lbls) + cstrs then Builtin.immediate ~why:Enumeration + else if !Clflags.infer_with_bounds + then + let is_mutable = + List.exists + (fun cstr -> + match cstr.cd_args with + | Cstr_tuple _ -> false + | Cstr_record lbls -> has_mutable_label lbls) + cstrs + in + let has_gadt_constructor = + List.exists + (fun cstr -> match cstr.cd_res with None -> false | Some _ -> true) + cstrs + in + if has_gadt_constructor + (* CR layouts v2.8: This is sad, but I don't know how to account for + existentials in the with_bounds. See doc named "Existential + with_bounds". *) + then Builtin.value ~why:Boxed_variant + else + let base = + (if is_mutable then Builtin.mutable_data else Builtin.immutable_data) + ~why:Boxed_variant + |> mark_best + in + let add_cstr_args cstr jkind = + match cstr.cd_args with + | Cstr_tuple args -> + List.fold_right + (fun arg -> + add_with_bounds ~modality:arg.ca_modalities ~type_expr:arg.ca_type) + args jkind + | Cstr_record lbls -> add_labels_as_with_bounds lbls jkind + in + List.fold_right add_cstr_args cstrs base else Builtin.value ~why:Boxed_variant let for_arrow = fresh_jkind { layout = Sort (Base Value); - modes_upper_bounds = - { linearity = Linearity.Const.max; - areality = Locality.Const.max; - uniqueness = Uniqueness.Const.min; - portability = Portability.Const.max; - contention = Contention.Const.min; - yielding = Yielding.Const.max - }; - externality_upper_bound = Externality.max; - nullability_upper_bound = Non_null + mod_bounds = Mod_bounds.for_arrow; + with_bounds = No_with_bounds } ~annotation:None ~why:(Value_creation Arrow) + |> mark_best let for_object = + let ({ linearity; + areality = locality; + uniqueness; + portability; + contention; + yielding + } + : Mode.Alloc.Const.t) = + (* The crossing of objects are based on the fact that they are + produced/defined/allocated at legacy, which applies to only the + comonadic axes. *) + Alloc.Const.merge + { comonadic = Alloc.Comonadic.Const.legacy; + monadic = Alloc.Monadic.Const.max + } + in fresh_jkind { layout = Sort (Base Value); - modes_upper_bounds = - (* The crossing of objects are based on the fact that they are - produced/defined/allocated at legacy, which applies to only the - comonadic axes. *) - Alloc.Const.merge - { comonadic = Alloc.Comonadic.Const.legacy; - monadic = Alloc.Monadic.Const.max - }; - externality_upper_bound = Externality.max; - nullability_upper_bound = Non_null + mod_bounds = + Mod_bounds.simple ~linearity ~locality ~uniqueness ~portability + ~contention ~yielding ~externality:Externality.max + ~nullability:Non_null; + with_bounds = No_with_bounds } ~annotation:None ~why:(Value_creation Object) (******************************) (* elimination and defaulting *) +type normalize_mode = + | Require_best + | Ignore_best + +let[@inline] normalize ~mode ~jkind_of_type t = + let mode : _ Jkind_desc.normalize_mode = + match mode with Require_best -> Require_best | Ignore_best -> Ignore_best + in + let jkind, fuel_result = Jkind_desc.normalize ~jkind_of_type ~mode t.jkind in + { t with + jkind; + quality = + (match t.quality, fuel_result with + | Not_best, _ | _, Ran_out_of_fuel -> Not_best + | Best, Sufficient_fuel -> Best) + } + let get_layout_defaulting_to_value { jkind = { layout; _ }; _ } = Layout.default_to_value_and_get layout @@ -1217,12 +2022,42 @@ let sort_of_jkind (t : jkind_l) : sort = let get_layout jk : Layout.Const.t option = Layout.get_const jk.jkind.layout -let get_modal_upper_bounds jk = jk.jkind.modes_upper_bounds +let extract_layout jk = jk.jkind.layout + +let get_modal_upper_bounds (type l r) ~jkind_of_type (jk : (l * r) jkind) : + Alloc.Const.t = + let ( ({ layout = _; mod_bounds; with_bounds = No_with_bounds } : + Allowance.right_only jkind_desc), + _ ) = + Jkind_desc.normalize ~mode:Ignore_best ~jkind_of_type jk.jkind + in + let get axis = Mod_bounds.get mod_bounds ~axis in + { areality = get (Modal (Comonadic Areality)); + linearity = get (Modal (Comonadic Linearity)); + uniqueness = get (Modal (Monadic Uniqueness)); + portability = get (Modal (Comonadic Portability)); + contention = get (Modal (Monadic Contention)); + yielding = get (Modal (Comonadic Yielding)) + } -let get_externality_upper_bound jk = jk.jkind.externality_upper_bound +let get_externality_upper_bound ~jkind_of_type jk = + let ( ({ layout = _; mod_bounds; with_bounds = No_with_bounds } : + Allowance.right_only jkind_desc), + _ ) = + Jkind_desc.normalize ~mode:Ignore_best ~jkind_of_type jk.jkind + in + Mod_bounds.get mod_bounds ~axis:(Nonmodal Externality) let set_externality_upper_bound jk externality_upper_bound = - { jk with jkind = { jk.jkind with externality_upper_bound } } + { jk with + jkind = + { jk.jkind with + mod_bounds = + { jk.jkind.mod_bounds with externality = externality_upper_bound } + } + } + +let set_layout jk layout = { jk with jkind = { jk.jkind with layout } } let get_annotation jk = jk.annotation @@ -1607,8 +2442,8 @@ module Violation = struct open Format type violation = - | Not_a_subjkind : (allowed * 'r) t * ('l * allowed) t -> violation - | No_intersection : 'd t * ('l * allowed) t -> violation + | Not_a_subjkind : (allowed * 'r1) jkind * ('l * 'r2) jkind -> violation + | No_intersection : 'd jkind * ('l * allowed) jkind -> violation type nonrec t = { violation : violation; @@ -1657,7 +2492,7 @@ module Violation = struct else dprintf "%s a sub%s of %a" verb layout_or_kind format_layout_or_kind k2 in - let Pack k1, Pack k2, fmt_k1, fmt_k2, missing_cmi_option = + let Pack_jkind k1, Pack_jkind k2, fmt_k1, fmt_k2, missing_cmi_option = match t with | { violation = Not_a_subjkind (k1, k2); missing_cmi } -> ( let missing_cmi = @@ -1671,21 +2506,21 @@ module Violation = struct in match missing_cmi with | None -> - ( Pack k1, - Pack k2, + ( Pack_jkind k1, + Pack_jkind k2, dprintf "%s %a" layout_or_kind format_layout_or_kind k1, subjkind_format "is not" k2, None ) | Some p -> - ( Pack k1, - Pack k2, + ( Pack_jkind k1, + Pack_jkind k2, dprintf "an unknown %s" layout_or_kind, subjkind_format "might not be" k2, Some p )) | { violation = No_intersection (k1, k2); missing_cmi } -> assert (Option.is_none missing_cmi); - ( Pack k1, - Pack k2, + ( Pack_jkind k1, + Pack_jkind k2, dprintf "%s %a" layout_or_kind format_layout_or_kind k1, dprintf "does not overlap with %a" format_layout_or_kind k2, None ) @@ -1732,15 +2567,14 @@ end (* relations *) let equate_or_equal ~allow_mutation - { jkind = jkind1; annotation = _; history = _; has_warned = _ } - { jkind = jkind2; annotation = _; history = _; has_warned = _ } = + { jkind = jkind1; annotation = _; history = _; has_warned = _; quality = _ } + { jkind = jkind2; annotation = _; history = _; has_warned = _; quality = _ } + = Jkind_desc.equate_or_equal ~allow_mutation jkind1 jkind2 (* CR layouts v2.8: Switch this back to ~allow_mutation:false *) let equal t1 t2 = equate_or_equal ~allow_mutation:true t1 t2 -let () = Types.set_jkind_equal equal - let equate t1 t2 = equate_or_equal ~allow_mutation:true t1 t2 (* Not all jkind history reasons are created equal. Some are more helpful than others. @@ -1755,7 +2589,8 @@ let score_reason = function | Creation (Concrete_creation _ | Concrete_legacy_creation _) -> -1 | _ -> 0 -let combine_histories reason (Pack k1) (Pack k2) = +let combine_histories ~type_equal ~jkind_of_type reason (Pack_jkind k1) + (Pack_jkind k2) = if flattened_histories then let choose_higher_scored_history history_a history_b = @@ -1764,7 +2599,7 @@ let combine_histories reason (Pack k1) (Pack k2) = else history_b in let choose_subjkind_history k_a history_a k_b history_b = - match Jkind_desc.sub k_a k_b with + match Jkind_desc.sub ~type_equal ~jkind_of_type k_a k_b with | Less -> history_a | Not_le -> (* CR layouts: this will be wrong if we ever have a non-trivial meet in @@ -1783,66 +2618,154 @@ let combine_histories reason (Pack k1) (Pack k2) = else Interact { reason; - jkind1 = Pack k1.jkind; + jkind1 = Pack_jkind_desc k1.jkind; history1 = k1.history; - jkind2 = Pack k2.jkind; + jkind2 = Pack_jkind_desc k2.jkind; history2 = k2.history } let has_intersection t1 t2 = - Option.is_some (Jkind_desc.intersection t1.jkind t2.jkind) + (* Need to check only the layouts: all the axes have bottom elements. *) + Option.is_some (Layout.intersection t1.jkind.layout t2.jkind.layout) -let intersection_or_error ~reason t1 t2 = +let intersection_or_error ~type_equal ~jkind_of_type ~reason t1 t2 = match Jkind_desc.intersection t1.jkind t2.jkind with | None -> Error (Violation.of_ (No_intersection (t1, t2))) | Some jkind -> Ok { jkind; annotation = None; - history = combine_histories reason (Pack t1) (Pack t2); - has_warned = t1.has_warned || t2.has_warned + history = + combine_histories ~type_equal ~jkind_of_type reason (Pack_jkind t1) + (Pack_jkind t2); + has_warned = t1.has_warned || t2.has_warned; + quality = + Not_best (* As required by the fact that this is a [jkind_r] *) } -let intersect_l_l ~reason t1 t2 = - (* CR layouts v2.8: Do something cleverer here once we have more - expressive l-kinds. *) - intersection_or_error ~reason t1 (terrible_relax_l t2) +let round_up (type l r) ~jkind_of_type (t : (allowed * r) jkind) : + (l * allowed) jkind = + let normalized = + normalize ~mode:Ignore_best ~jkind_of_type (t |> disallow_right) + in + { t with + jkind = { normalized.jkind with with_bounds = No_with_bounds }; + quality = Not_best (* As required by the fact that this is a [jkind_r] *) + } -let has_intersection_l_l t1 t2 = - (* CR layouts v2.8: Do something cleverer here once we have more - expressive l-kinds. *) - has_intersection (terrible_relax_l t1) (terrible_relax_l t2) +let map_type_expr f t = { t with jkind = Jkind_desc.map_type_expr f t.jkind } (* this is hammered on; it must be fast! *) -let check_sub sub super = Jkind_desc.sub sub.jkind super.jkind +let check_sub ~jkind_of_type sub super = + Jkind_desc.sub ~jkind_of_type sub.jkind super.jkind -let sub sub super = Misc.Le_result.is_le (check_sub sub super) +let sub ~type_equal ~jkind_of_type sub super = + Misc.Le_result.is_le (check_sub ~type_equal ~jkind_of_type sub super) type sub_or_intersect = | Sub | Disjoint | Has_intersection -let sub_or_intersect t1 t2 = - if sub t1 t2 +let sub_or_intersect ~type_equal ~jkind_of_type t1 t2 = + if sub ~type_equal ~jkind_of_type t1 t2 then Sub else if has_intersection t1 t2 then Has_intersection else Disjoint -let sub_or_error t1 t2 = - match sub_or_intersect t1 t2 with +let sub_or_error ~type_equal ~jkind_of_type t1 t2 = + match sub_or_intersect ~type_equal ~jkind_of_type t1 t2 with | Sub -> Ok () | _ -> Error (Violation.of_ (Not_a_subjkind (t1, t2))) -(* CR layouts v2.8: Rewrite this to do the hard subjkind check from the - kind polymorphism design. *) -let sub_jkind_l sub super = - let super = terrible_relax_l super in - match check_sub sub super with - | Less | Equal -> - Ok { sub with history = combine_histories Subjkind (Pack sub) (Pack super) } - | Not_le -> Error (Violation.of_ (Not_a_subjkind (sub, super))) +let sub_jkind_l ~type_equal ~jkind_of_type ?(allow_any_crossing = false) sub + super = + (* This function implements the "SUB" judgement from kind-inference.md. *) + let open Misc.Stdlib.Monad.Result.Syntax in + let require_le le_result = + match Misc.Le_result.is_le le_result with + | true -> Ok () + | false -> + (* When we report an error, we want to show the best-normalized version of sub, but + the original super. When this check fails, it is usually the case that the super + was written by the user and the sub was inferred. Thus, we should display the + user-written jkind, but simplify the inferred one, since the inferred one is + probably overly complex. *) + (* CR layouts v2.8: It would be useful report to the user why this + violation occurred, specifically which axes the violation is along. *) + let best_sub = normalize ~mode:Require_best ~jkind_of_type sub in + Error (Violation.of_ (Not_a_subjkind (best_sub, super))) + in + let* () = + (* Validate layouts *) + require_le (Layout.sub sub.jkind.layout super.jkind.layout) + in + match allow_any_crossing with + | true -> Ok () + | false -> + let best_super = + (* MB_EXPAND_R *) + normalize ~mode:Require_best ~jkind_of_type super + in + let right_bounds = + With_bounds.to_best_eff_map best_super.jkind.with_bounds + in + let axes_max_on_right = + (* If the upper_bound is max on the right, then that axis is irrelevant - the + left will always satisfy the right along that axis. This is an optimization, + not necessary for correctness *) + Mod_bounds.get_max_axes best_super.jkind.mod_bounds + in + let ( ({ layout = _; + mod_bounds = sub_upper_bounds; + with_bounds = No_with_bounds + } : + Allowance.right_only jkind_desc), + _ ) = + (* MB_EXPAND_L *) + (* Here we progressively expand types on the left. + + Every time we see a type [ty] on the left, we first look to see if [ty] occurs on the + right. If it does, then we can skip* [ty]. There is an * on skip because we can + actually only skip on a per-axis basis - if [ty] is relevant only along the + portability axis on the right, then [ty] is no longer relevant to portability on + the left, but it is still relevant to all other axes. So really, we subtract the + axes that are relevant to the right from the axes that are relevant to the left. + We can also skip [ty] on any axes that are max on the right since anything is + <= max. Hence, we can also subtract [axes_max_on_right]. + + After finding which axes [ty] is relevant along, we lookup [ty]'s jkind and join it + with the [mod_bounds] along the relevant axes. *) + (* [Jkind_desc.map_normalize] handles the stepping, jkind lookups, and joining. + [map_type_info] handles looking for [ty] on the right and removing irrelevant axes. *) + Jkind_desc.map_normalize sub.jkind ~jkind_of_type ~mode:Ignore_best + ~map_type_info:(fun ty { relevant_axes = left_relevant_axes } -> + let right_relevant_axes = + (* Look for [ty] on the right. There may be multiple occurrences of it on the + right; if so, we union together the relevant axes. *) + right_bounds |> With_bounds_types.to_seq + (* CR layouts v2.8: maybe it's worth memoizing using a best-effort type map? *) + |> Seq.fold_left + (fun acc (ty2, ti) -> + match type_equal ty ty2 with + | true -> + Axis_set.union acc ti.With_bounds_type_info.relevant_axes + | false -> acc) + Axis_set.empty + in + let axes_to_drop = + Axis_set.union right_relevant_axes axes_max_on_right + in + (* MB_WITH : drop types from the left that appear on the right *) + { relevant_axes = Axis_set.diff left_relevant_axes axes_to_drop }) + in + let* () = + (* MB_MODE : verify that the remaining upper_bounds from sub are <= super's bounds *) + let super_lower_bounds = best_super.jkind.mod_bounds in + require_le (Mod_bounds.less_or_equal sub_upper_bounds super_lower_bounds) + in + Ok () let is_void_defaulting = function | { jkind = { layout = Sort s; _ }; _ } -> Sort.is_void_defaulting s @@ -1850,32 +2773,34 @@ let is_void_defaulting = function (* This doesn't do any mutation because mutating a sort variable can't make it any, and modal upper bounds are constant. *) -let is_max jkind = sub Builtin.any_dummy_jkind jkind +(* The choice of [type_equal] and [jkind_of_type] doesn't matter because there + are no with-kinds on the left-hand kind. *) +let is_max jkind = + sub + ~type_equal:(fun _ _ -> false) + ~jkind_of_type:(fun _ -> None) + Builtin.any_dummy_jkind jkind let has_layout_any jkind = match jkind.jkind.layout with Any -> true | _ -> false -let is_value_for_printing - { jkind = - { layout; - modes_upper_bounds; - externality_upper_bound; - nullability_upper_bound - }; - _ - } = - match Layout.get_const layout with +let is_value_for_printing ~ignore_null { jkind; _ } = + match Desc.get_const (Jkind_desc.get jkind) with + | None -> false | Some const -> let value = Const.Builtin.value.jkind in - Layout.Const.equal const value.layout - && Modes.equal modes_upper_bounds value.modes_upper_bounds - && Externality.equal externality_upper_bound value.externality_upper_bound - && - if (* CR layouts v3.0: remove this hack once [or_null] is out of [Alpha]. *) - Language_extension.(is_at_least Layouts Alpha) - then Nullability.equal nullability_upper_bound Nullability.Non_null - else true - | None -> false + let values = [value] in + let values = + if ignore_null + then + { value with + mod_bounds = + { value.mod_bounds with nullability = Nullability.Maybe_null } + } + :: values + else values + in + List.exists (fun v -> Const.no_with_bounds_and_equal const v) values (*********************************) (* debugging *) @@ -2036,39 +2961,46 @@ module Debug_printers = struct fprintf ppf "Tyvar_refinement_intersection" | Subjkind -> fprintf ppf "Subjkind" - let rec history ppf = function + let rec history ~print_type_expr ppf = + let jkind_desc = Jkind_desc.Debug_printers.t ~print_type_expr in + function | Interact { reason; - jkind1 = Pack jkind1; + jkind1 = Pack_jkind_desc jkind1; history1; - jkind2 = Pack jkind2; + jkind2 = Pack_jkind_desc jkind2; history2 } -> fprintf ppf "Interact {@[reason = %a;@ jkind1 = %a;@ history1 = %a;@ jkind2 = %a;@ \ history2 = %a}@]" - interact_reason reason Jkind_desc.Debug_printers.t jkind1 history - history1 Jkind_desc.Debug_printers.t jkind2 history history2 + interact_reason reason jkind_desc jkind1 (history ~print_type_expr) + history1 jkind_desc jkind2 (history ~print_type_expr) history2 | Creation c -> fprintf ppf "Creation (%a)" creation_reason c - let t ppf ({ jkind; annotation = a; history = h; has_warned = _ } : 'd t) : - unit = - fprintf ppf "@[{ jkind = %a@,; annotation = %a@,; history = %a }@]" - Jkind_desc.Debug_printers.t jkind + let t (type l r) ~print_type_expr ppf + ({ jkind; annotation = a; history = h; has_warned = _; quality = q } : + (l * r) jkind) : unit = + fprintf ppf + "@[{ jkind = %a@,\ + ; annotation = %a@,\ + ; history = %a@,\ + ; quality = %s@,\ + \ }@]" + (Jkind_desc.Debug_printers.t ~print_type_expr) + jkind (pp_print_option Pprintast.jkind_annotation) - a history h + a (history ~print_type_expr) h + (match q with Best -> "Best" | Not_best -> "Not_best") module Const = struct - let t ppf (jkind : _ Const.t) = + let t ~print_type_expr ppf ({ layout; mod_bounds; with_bounds } : _ Const.t) + = fprintf ppf - "@[{ layout = %a@,\ - ; modes_upper_bounds = %a@,\ - ; externality_upper_bound = %a@,\ - ; nullability_upper_bound = %a@,\ - }@]" - Layout.Const.Debug_printers.t jkind.layout Modes.print - jkind.modes_upper_bounds Externality.print jkind.externality_upper_bound - Nullability.print jkind.nullability_upper_bound + "@[{ layout = %a@,; mod_bounds = %a@,; with_bounds = %a@, }@]" + Layout.Const.Debug_printers.t layout Mod_bounds.debug_print mod_bounds + (With_bounds.debug_print ~print_type_expr) + with_bounds end end @@ -2108,6 +3040,8 @@ let report_error ~loc : Error.t -> _ = function Pprintast.jkind_annotation jkind hint) | Unimplemented_syntax -> Location.errorf ~loc "@[Unimplemented kind syntax@]" + | With_on_right -> + Location.errorf ~loc "'with' syntax is not allowed on a right mode." let () = Location.register_error_of_exn (function diff --git a/upstream/ocaml_flambda/typing/jkind.mli b/upstream/ocaml_flambda/typing/jkind.mli index aa6bf5ab3..0fdfa1f49 100644 --- a/upstream/ocaml_flambda/typing/jkind.mli +++ b/upstream/ocaml_flambda/typing/jkind.mli @@ -63,7 +63,8 @@ end module Sort : sig include Jkind_intf.Sort - with type base = Jkind_types.Sort.base + with type t = Jkind_types.Sort.t + and type base = Jkind_types.Sort.base and type Const.t = Jkind_types.Sort.Const.t module Flat : sig @@ -89,8 +90,14 @@ module Layout : sig val get_sort : t -> Sort.Const.t option + val of_sort_const : Sort.Const.t -> t + val to_string : t -> string end + + val of_const : Const.t -> Sort.t t + + val sub : Sort.t t -> Sort.t t -> Misc.Le_result.t end (** A Jkind.t is a full description of the runtime representation of values @@ -113,21 +120,11 @@ end the meets (intersections) of r-jkinds and check that an l-jkind is less than an r-jkind. *) -type +'d t = (Types.type_expr, 'd) Jkind_types.t - -type jkind_l := Types.jkind_l -type jkind_r := Types.jkind_r +include Allowance.Allow_disallow with type (_, _, 'd) sided = 'd Types.jkind -type jkind_lr := Types.jkind_lr - -type packed = Pack : 'd t -> packed [@@unboxed] - -include Allowance.Allow_disallow with type (_, _, 'd) sided = 'd t - -(** Convert an [l] into any jkind. This will soon become impossible, and so - uses of this function will have to be removed. *) -val terrible_relax_l : jkind_l -> 'd t +(** Try to treat this jkind as an r-jkind. *) +val try_allow_r : ('l * 'r) Types.jkind -> ('l * allowed) Types.jkind option module History : sig include module type of struct @@ -136,15 +133,15 @@ module History : sig (* history *) - val is_imported : 'd t -> bool + val is_imported : 'd Types.jkind -> bool - val update_reason : 'd t -> creation_reason -> 'd t + val update_reason : 'd Types.jkind -> creation_reason -> 'd Types.jkind (* Mark the jkind as having produced a compiler warning. *) - val with_warning : 'd t -> 'd t + val with_warning : 'd Types.jkind -> 'd Types.jkind (* Whether this jkind has produced a compiler warning. *) - val has_warned : 'd t -> bool + val has_warned : 'd Types.jkind -> bool end (******************************) @@ -152,8 +149,13 @@ end module Violation : sig type violation = - | Not_a_subjkind : (allowed * 'r) t * ('l * allowed) t -> violation - | No_intersection : 'd t * ('l * allowed) t -> violation + (* [Not_a_subjkind] allows l-jkinds on the right so that it can be used + in [sub_jkind_l]. There is no downside to this, as the printing + machinery works over l-jkinds. *) + | Not_a_subjkind : + (allowed * 'r1) Types.jkind * ('l * 'r2) Types.jkind + -> violation + | No_intersection : 'd Types.jkind * ('l * allowed) Types.jkind -> violation type t @@ -197,80 +199,83 @@ module Const : sig The "constant" refers to the fact that there are no sort variables here. The existence of [with]-types means, though, that we still need the allowance machinery here. *) - type +'d t constraint 'd = 'l * 'r + type 'd t constraint 'd = 'l * 'r + + include Allowance.Allow_disallow with type (_, _, 'd) sided = 'd t val to_out_jkind_const : 'd t -> Outcometree.out_jkind_const - (* An equality check should work over [lr]s only. But we need this - to do memoization in serialization. Happily, that's after all - inference is done, when worrying about l and r does not matter - any more. *) - val equal_after_all_inference_is_done : 'd1 t -> 'd2 t -> bool + (** This returns [true] iff both types have no with-bounds and they are equal. + Normally, we want an equality check to happen only on values that are + allowed on both the left and the right. But a type with no with-bounds is + allowed on the left and the right, so we test for that condition first + before doing the proper equality check. *) + val no_with_bounds_and_equal : 'd1 t -> 'd2 t -> bool (* CR layouts: Remove this once we have a better story for printing with jkind abbreviations. *) module Builtin : sig - type nonrec 'd t = - { jkind : 'd t; + type nonrec t = + { jkind : (allowed * allowed) t; name : string } (** This jkind is the top of the jkind lattice. All types have jkind [any]. But we cannot compile run-time manipulations of values of types with jkind [any]. *) - val any : 'd t + val any : t (** [any], except for null pointers. *) - val any_non_null : 'd t + val any_non_null : t (** Value of types of this jkind are not retained at all at runtime *) - val void : 'd t + val void : t (** This is the jkind of normal ocaml values or null pointers *) - val value_or_null : 'd t + val value_or_null : t (** This is the jkind of normal ocaml values *) - val value : 'd t + val value : t (** Immutable values that don't contain functions. *) - val immutable_data : 'd t + val immutable_data : t (** Mutable values that don't contain functions. *) - val mutable_data : 'd t + val mutable_data : t (** Values of types of this jkind are immediate on 64-bit platforms; on other platforms, we know nothing other than that it's a value. *) - val immediate64 : 'd t + val immediate64 : t (** We know for sure that values of types of this jkind are always immediate *) - val immediate : 'd t + val immediate : t (** This is the jkind of unboxed 64-bit floats. They have sort Float64. Mode-crosses. *) - val float64 : 'd t + val float64 : t (** This is the jkind of unboxed 32-bit floats. They have sort Float32. Mode-crosses. *) - val float32 : 'd t + val float32 : t (** This is the jkind of unboxed native-sized integers. They have sort Word. Does not mode-cross. *) - val word : 'd t + val word : t (** This is the jkind of unboxed 32-bit integers. They have sort Bits32. Does not mode-cross. *) - val bits32 : 'd t + val bits32 : t (** This is the jkind of unboxed 64-bit integers. They have sort Bits64. Does not mode-cross. *) - val bits64 : 'd t + val bits64 : t (** This is the jkind of unboxed 128-bit simd vectors. They have sort Vec128. Does not mode-cross. *) - val vec128 : 'd t + val vec128 : t (** A list of all Builtin jkinds *) - val all : 'd t list + val all : t list end end @@ -278,76 +283,127 @@ module Builtin : sig (** This jkind is the top of the jkind lattice. All types have jkind [any]. But we cannot compile run-time manipulations of values of types with jkind [any]. *) - val any : why:History.any_creation_reason -> 'd t + val any : why:History.any_creation_reason -> 'd Types.jkind (** Value of types of this jkind are not retained at all at runtime *) - val void : why:History.void_creation_reason -> 'd t + val void : why:History.void_creation_reason -> ('l * disallowed) Types.jkind - val value_or_null : why:History.value_or_null_creation_reason -> 'd t + val value_or_null : + why:History.value_or_null_creation_reason -> 'd Types.jkind (** This is the jkind of normal ocaml values *) - val value : why:History.value_creation_reason -> 'd t + val value : why:History.value_creation_reason -> 'd Types.jkind + + (** This is suitable for records or variants without mutable fields. *) + val immutable_data : why:History.value_creation_reason -> 'd Types.jkind + + (** This is suitable for records or variants with mutable fields. *) + val mutable_data : why:History.value_creation_reason -> 'd Types.jkind (** We know for sure that values of types of this jkind are always immediate *) - val immediate : why:History.immediate_creation_reason -> 'd t - - (** Attempt to build a jkind of unboxed products. - - If zero input kinds are given, it errors. - - If a single input kind is given, then it returns that kind. - - If two or more input kinds are given, then the layout will be the - product of the layouts of the input kinds, and the other components of - the kind will be the join relevant component of the inputs. - *) - val product : why:History.product_creation_reason -> 'd t list -> 'd t + val immediate : + why:History.immediate_creation_reason -> ('l * disallowed) Types.jkind + + (** Build a jkind of unboxed products, from a list of types with + their layouts. Errors if zero inputs are given. If only one input + is given, returns the result of calling [jkind_of_first_type]. + + Precondition: both input lists are the same length. + + This returns an [jkind_l] simply as a matter of convenience; it can be + generalized if need be. + + The resulting jkind has quality [Best], because all the components of the product + are represented in the with-bounds. *) + val product : + jkind_of_first_type:(unit -> Types.jkind_l) -> + jkind_of_type:(Types.type_expr -> Types.jkind_l) -> + why:History.product_creation_reason -> + (Types.type_expr * Mode.Modality.Value.Const.t) list -> + Sort.t Layout.t list -> + Types.jkind_l + + (** Build a jkind of unboxed products, given only an arity. This jkind will not + mode-cross (and has kind [Not_best] accordingly), even though unboxed products + generally should. This is useful when creating an initial jkind in Typedecl. *) + val product_of_sorts : + why:History.product_creation_reason -> int -> Types.jkind_l end (** Take an existing [t] and add an ability to cross across the nullability axis. *) -val add_nullability_crossing : 'd t -> 'd t +val add_nullability_crossing : 'd Types.jkind -> 'd Types.jkind + +(** Forcibly change the mod-bounds of a [t] based on the mod-bounds of + [from]. + + Returns [Error ()] if [from] contains with-bounds. *) +val unsafely_set_mod_bounds : + from:'d Types.jkind -> 'd Types.jkind -> ('d Types.jkind, unit) Result.t -(** Take an existing [t] and add an ability to mode-cross along the portability and - contention axes, if [from] crosses the respective axes. Return the new jkind, - along with a boolean of whether illegal crossing was added *) -val add_portability_and_contention_crossing : from:'d t -> 'd t -> 'd t * bool +(** Take an existing [jkind_l] and add some with-bounds. *) +val add_with_bounds : + modality:Mode.Modality.Value.Const.t -> + type_expr:Types.type_expr -> + Types.jkind_l -> + Types.jkind_l + +(** Does this jkind have with-bounds? *) +val has_with_bounds : Types.jkind_l -> bool + +(** Mark the given jkind as {i best}, meaning we can never learn any more information + about it that will cause it to become lower in the preorder of kinds*) +val mark_best : ('l * 'r) Types.jkind -> ('l * disallowed) Types.jkind + +(** Is the given kind best? *) +val is_best : ('l * disallowed) Types.jkind -> bool (******************************) (* construction *) (** Create a fresh sort variable, packed into a jkind, returning both the resulting kind and the sort. *) -val of_new_sort_var : why:History.concrete_creation_reason -> 'd t * sort +val of_new_sort_var : + why:History.concrete_creation_reason -> 'd Types.jkind * sort (** Create a fresh sort variable, packed into a jkind. *) -val of_new_sort : why:History.concrete_creation_reason -> 'd t +val of_new_sort : why:History.concrete_creation_reason -> 'd Types.jkind (** Same as [of_new_sort_var], but the jkind is lowered to [Non_null] to mirror "legacy" OCaml values. Defaulting the sort variable produces exactly [value]. *) val of_new_legacy_sort_var : - why:History.concrete_legacy_creation_reason -> 'd t * sort + why:History.concrete_legacy_creation_reason -> 'd Types.jkind * sort (** Same as [of_new_sort], but the jkind is lowered to [Non_null] to mirror "legacy" OCaml values. Defaulting the sort variable produces exactly [value]. *) -val of_new_legacy_sort : why:History.concrete_legacy_creation_reason -> 'd t +val of_new_legacy_sort : + why:History.concrete_legacy_creation_reason -> 'd Types.jkind +(** Construct a jkind from a constant jkind, at quality [Not_best] *) val of_const : annotation:Parsetree.jkind_annotation option -> why:History.creation_reason -> + quality:'d Types.jkind_quality -> 'd Const.t -> - 'd t - -val of_builtin : why:History.creation_reason -> 'd Const.Builtin.t -> 'd t + 'd Types.jkind -(* CR layouts v2.8: remove this when printing is improved *) +(** Construct a jkind from a builtin kind, at quality [Best]. *) +val of_builtin : + why:History.creation_reason -> + Const.Builtin.t -> + ('l * disallowed) Types.jkind val of_annotation : - context:'d History.annotation_context -> Parsetree.jkind_annotation -> 'd t + context:('l * allowed) History.annotation_context -> + Parsetree.jkind_annotation -> + ('l * allowed) Types.jkind val of_annotation_option_default : - default:'d t -> - context:'d History.annotation_context -> + default:('l * allowed) Types.jkind -> + context:('l * allowed) History.annotation_context -> Parsetree.jkind_annotation option -> - 'd t + ('l * allowed) Types.jkind (** Find a jkind from a type declaration. Type declarations are special because the jkind may have been provided via [: jkind] syntax (which goes through @@ -355,39 +411,49 @@ val of_annotation_option_default : attributes, and [of_type_decl] needs to look in two different places on the [type_declaration] to account for these two alternatives. - Returns the jkind and the user-written annotation. + Returns the jkind (at quality [Not_best]) and the user-written annotation. Raises if a disallowed or unknown jkind is present. *) val of_type_decl : context:History.annotation_context_l -> + transl_type:(Parsetree.core_type -> Types.type_expr) -> Parsetree.type_declaration -> - (jkind_l * Parsetree.jkind_annotation option) option + (Types.jkind_l * Parsetree.jkind_annotation option) option (** Find a jkind from a type declaration in the same way as [of_type_decl], - defaulting to ~default. + defaulting to ~default. Returns a jkind at quality [Not_best]; call [mark_best] to + mark it as [Best]. Raises if a disallowed or unknown jkind is present. *) val of_type_decl_default : context:History.annotation_context_l -> - default:jkind_l -> + transl_type:(Parsetree.core_type -> Types.type_expr) -> + default:Types.jkind_l -> Parsetree.type_declaration -> - jkind_l + Types.jkind_l + +(** Choose an appropriate jkind for a boxed record type *) +val for_boxed_record : Types.label_declaration list -> Types.jkind_l -(** Choose an appropriate jkind for a boxed record type, given whether - all of its fields are [void]. *) -val for_boxed_record : all_void:bool -> jkind_l +(** Choose an appropriate jkind for an unboxed record type. Uses + [jkind_of_first_type] only in the singleton case, where the jkind of the + unboxed record must match that of the single field. *) +val for_unboxed_record : + jkind_of_first_type:(unit -> Types.jkind_l) -> + jkind_of_type:(Types.type_expr -> Types.jkind_l) -> + Types.label_declaration list -> + Types.jkind_l -(** Choose an appropriate jkind for a boxed variant type, given whether - all of the fields of all of its constructors are [void]. *) -val for_boxed_variant : all_voids:bool -> jkind_l +(** Choose an appropriate jkind for a boxed variant type. *) +val for_boxed_variant : Types.constructor_declaration list -> Types.jkind_l (** The jkind of an arrow type. *) -val for_arrow : jkind_l +val for_arrow : Types.jkind_l (** The jkind of an object type. *) -val for_object : jkind_l +val for_object : Types.jkind_l (******************************) (* elimination and defaulting *) @@ -396,7 +462,7 @@ module Desc : sig (** The description of a jkind, used as a return type from [get]. This description has no sort variables, but it might have [with]-types and thus needs the allowance machinery. *) - type 'd t = (Sort.Flat.t Layout.t, 'd) Jkind_types.Layout_and_axes.t + type 'd t = (Sort.Flat.t Layout.t, 'd) Types.layout_and_axes val get_const : 'd t -> 'd Const.t option @@ -404,46 +470,58 @@ module Desc : sig end (** Get a description of a jkind. *) -val get : 'd t -> 'd Desc.t +val get : 'd Types.jkind -> 'd Desc.t (** [get_layout_defaulting_to_value] extracts a constant layout, defaulting any sort variable to [value]. *) -val get_layout_defaulting_to_value : 'd t -> Layout.Const.t +val get_layout_defaulting_to_value : 'd Types.jkind -> Layout.Const.t (** [get_const] returns a [Const.t] if the layout has no sort variables, returning [None] otherwise *) -val get_const : 'd t -> 'd Const.t option +val get_const : 'd Types.jkind -> 'd Const.t option (** [default_to_value t] is [ignore (get_layout_defaulting_to_value t)] *) -val default_to_value : 'd t -> unit +val default_to_value : 'd Types.jkind -> unit (** [is_void t] is [Void = get_layout_defaulting_to_value t]. In particular, it will default the jkind to value if needed to make this false. *) -val is_void_defaulting : 'd t -> bool +val is_void_defaulting : 'd Types.jkind -> bool (* CR layouts v5: When we have proper support for void, we'll want to change these three functions to default to void - it's the most efficient thing when we have a choice. *) (** Returns the sort corresponding to the jkind. Call only on representable jkinds - raises on Any. *) -val sort_of_jkind : jkind_l -> sort +val sort_of_jkind : Types.jkind_l -> sort (** Gets the layout of a jkind; returns [None] if the layout is still unknown. Never does mutation. *) -val get_layout : 'd t -> Layout.Const.t option +val get_layout : 'd Types.jkind -> Layout.Const.t option -(* CR layouts v2.8: This will need to become significantly more involved with - [with]-types. *) +(* CR reisenberg: do we need [extract_layout]? *) + +(** Gets the layout of a jkind, without looking through sort variables. *) +val extract_layout : 'd Types.jkind -> Sort.t Layout.t (** Gets the maximum modes for types of this jkind. *) -val get_modal_upper_bounds : 'd t -> Mode.Alloc.Const.t +val get_modal_upper_bounds : + jkind_of_type:(Types.type_expr -> Types.jkind_l option) -> + 'd Types.jkind -> + Mode.Alloc.Const.t (** Gets the maximum mode on the externality axis for types of this jkind. *) -val get_externality_upper_bound : 'd t -> Externality.t +val get_externality_upper_bound : + jkind_of_type:(Types.type_expr -> Types.jkind_l option) -> + 'd Types.jkind -> + Externality.t (** Computes a jkind that is the same as the input but with an updated maximum mode for the externality axis *) -val set_externality_upper_bound : jkind_r -> Externality.t -> jkind_r +val set_externality_upper_bound : + Types.jkind_r -> Externality.t -> Types.jkind_r + +(** Sets the layout in a jkind. *) +val set_layout : 'd Types.jkind -> Sort.t Layout.t -> 'd Types.jkind (** Extract out component jkinds from the product. Because there are no product jkinds, this is a bit of a lie: instead, this decomposes the layout but just @@ -451,15 +529,44 @@ val set_externality_upper_bound : jkind_r -> Externality.t -> jkind_r Because it just reuses the mode information, the resulting jkinds are higher in the jkind lattice than they might need to be. *) -val decompose_product : 'd t -> 'd t list option +val decompose_product : 'd Types.jkind -> 'd Types.jkind list option (** Get an annotation (that a user might write) for this [t]. *) -val get_annotation : 'd t -> Parsetree.jkind_annotation option +val get_annotation : 'd Types.jkind -> Parsetree.jkind_annotation option + +(*********************************) +(* normalization *) + +type normalize_mode = + | Require_best + (** Normalize a jkind without losing any precision. That is, keep any with-bounds + if the kind of the type is not best (a stronger kind may be found). *) + | Ignore_best + (** Normalize a left jkind, conservatively rounding up. That is, if the kind of a + type is not best, use the not-best kind. The resulting jkind will have no + with-bounds. *) + +val normalize : + mode:normalize_mode -> + jkind_of_type:(Types.type_expr -> Types.jkind_l option) -> + Types.jkind_l -> + Types.jkind_l (*********************************) (* pretty printing *) -val format : Format.formatter -> 'd t -> unit +(** Call these before trying to print. *) +val set_outcometree_of_type_scheme : + (Types.type_expr -> Outcometree.out_type) -> unit + +val set_outcometree_of_modalities_new : + (Types.mutability -> + Parsetree.attributes -> + Mode.Modality.Value.Const.t -> + Outcometree.out_mode_new list) -> + unit + +val format : Format.formatter -> 'd Types.jkind -> unit (** Format the history of this jkind: what interactions it has had and why it is the jkind that it is. Might be a no-op: see [display_histories] @@ -467,7 +574,7 @@ val format : Format.formatter -> 'd t -> unit The [intro] is something like "The jkind of t is". *) val format_history : - intro:(Format.formatter -> unit) -> Format.formatter -> 'd t -> unit + intro:(Format.formatter -> unit) -> Format.formatter -> 'd Types.jkind -> unit (** Provides the [Printtyp.path] formatter back up the dependency chain to this module. *) @@ -479,24 +586,20 @@ val set_printtyp_path : (Format.formatter -> Path.t -> unit) -> unit (** This checks for equality, and sets any variables to make two jkinds equal, if possible. e.g. [equate] on a var and [value] will set the variable to be [value] *) -val equate : jkind_lr -> jkind_lr -> bool +val equate : Types.jkind_lr -> Types.jkind_lr -> bool (** This checks for equality, but has the invariant that it can only be called when there is no need for unification; e.g. [equal] on a var and [value] will crash. CR layouts (v1.5): At the moment, this is actually the same as [equate]! *) -val equal : jkind_lr -> jkind_lr -> bool +val equal : Types.jkind_lr -> Types.jkind_lr -> bool (** Checks whether two jkinds have a non-empty intersection. Might mutate - sort variables. *) -val has_intersection : jkind_r -> jkind_r -> bool - -(* CR layouts v2.8: This almost certainly has to get rewritten, as l-kinds do - not support meets. *) - -(** Like [has_intersection], but comparing two [l] jkinds. *) -val has_intersection_l_l : jkind_l -> jkind_l -> bool + sort variables. Works over any mix of l- and r-jkinds, because the only + way not to have an intersection is by looking at the layout: all axes + have a bottom element. *) +val has_intersection : 'd1 Types.jkind -> 'd2 Types.jkind -> bool (** Finds the intersection of two jkinds, constraining sort variables to create one if needed, or returns a [Violation.t] if an intersection does @@ -506,14 +609,21 @@ val has_intersection_l_l : jkind_l -> jkind_l -> bool it should be thought of as modifying the first jkind to be the intersection of the two, not something that modifies the second jkind. *) val intersection_or_error : + type_equal:(Types.type_expr -> Types.type_expr -> bool) -> + jkind_of_type:(Types.type_expr -> Types.jkind_l option) -> reason:History.interact_reason -> - ('l1 * allowed) t -> - ('l2 * allowed) t -> - (('l1 * allowed) t, Violation.t) Result.t + ('l1 * allowed) Types.jkind -> + ('l2 * allowed) Types.jkind -> + (('l1 * allowed) Types.jkind, Violation.t) Result.t (** [sub t1 t2] says whether [t1] is a subjkind of [t2]. Might update either [t1] or [t2] to make their layouts equal.*) -val sub : jkind_l -> jkind_r -> bool +val sub : + type_equal:(Types.type_expr -> Types.type_expr -> bool) -> + jkind_of_type:(Types.type_expr -> Types.jkind_l option) -> + Types.jkind_l -> + Types.jkind_r -> + bool type sub_or_intersect = | Sub (** The first jkind is a subjkind of the second. *) @@ -522,46 +632,74 @@ type sub_or_intersect = (** [sub_or_intersect t1 t2] does a subtype check, returning a [sub_or_intersect]; see comments there for more info. *) -val sub_or_intersect : (allowed * 'r) t -> ('l * allowed) t -> sub_or_intersect +val sub_or_intersect : + type_equal:(Types.type_expr -> Types.type_expr -> bool) -> + jkind_of_type:(Types.type_expr -> Types.jkind_l option) -> + (allowed * 'r) Types.jkind -> + ('l * allowed) Types.jkind -> + sub_or_intersect (** [sub_or_error t1 t2] does a subtype check, returning an appropriate [Violation.t] upon failure. *) -val sub_or_error : jkind_l -> jkind_r -> (unit, Violation.t) result - -(** Like [sub], but returns the subjkind with an updated history. - Pre-condition: the super jkind must be fully settled; no variables - which might be filled in later. *) -val sub_jkind_l : jkind_l -> jkind_l -> (jkind_l, Violation.t) result - -(* CR layouts v2.8: This almost certainly has to get rewritten, as l-kinds do - not support meets. *) - -(** Like [intersection_or_error], but between an [l] and an [l], as an [l]. *) -val intersect_l_l : - reason:History.interact_reason -> - jkind_l -> - jkind_l -> - (jkind_l, Violation.t) result +val sub_or_error : + type_equal:(Types.type_expr -> Types.type_expr -> bool) -> + jkind_of_type:(Types.type_expr -> Types.jkind_l option) -> + (allowed * 'r) Types.jkind -> + ('l * allowed) Types.jkind -> + (unit, Violation.t) result + +(** Like [sub], but compares a left jkind against another left jkind. + Pre-condition: the super jkind must be fully settled; no variables which + might be filled in later. +*) +val sub_jkind_l : + type_equal:(Types.type_expr -> Types.type_expr -> bool) -> + jkind_of_type:(Types.type_expr -> Types.jkind_l option) -> + ?allow_any_crossing:bool -> + Types.jkind_l -> + Types.jkind_l -> + (unit, Violation.t) result + +(** "round up" a [jkind_l] to a [jkind_r] such that the input is less than the + output. *) +val round_up : + jkind_of_type:(Types.type_expr -> Types.jkind_l option) -> + (allowed * 'r) Types.jkind -> + ('l * allowed) Types.jkind + +(** Map a function over types in [upper_bounds] *) +val map_type_expr : + (Types.type_expr -> Types.type_expr) -> + (allowed * 'r) Types.jkind -> + (allowed * 'r) Types.jkind (** Checks to see whether a jkind is the maximum jkind. Never does any mutation. *) -val is_max : ('l * allowed) t -> bool +val is_max : ('l * allowed) Types.jkind -> bool (** Checks to see whether a jkind has layout any. Never does any mutation. *) -val has_layout_any : ('l * allowed) t -> bool +val has_layout_any : ('l * allowed) Types.jkind -> bool (** Checks whether a jkind is [value]. This really should require a [jkind_lr], but it works on any [jkind], because it's used in printing and is somewhat unprincipled. *) -val is_value_for_printing : 'd t -> bool +val is_value_for_printing : ignore_null:bool -> 'd Types.jkind -> bool (*********************************) (* debugging *) module Debug_printers : sig - val t : Format.formatter -> 'd t -> unit + val t : + print_type_expr:(Format.formatter -> Types.type_expr -> unit) -> + Format.formatter -> + 'd Types.jkind -> + unit module Const : sig - val t : Format.formatter -> 'd Const.t -> unit + val t : + print_type_expr:(Format.formatter -> Types.type_expr -> unit) -> + Format.formatter -> + 'd Const.t -> + unit end end diff --git a/upstream/ocaml_flambda/typing/jkind_axis.ml b/upstream/ocaml_flambda/typing/jkind_axis.ml index 383cc942d..35df1cd63 100644 --- a/upstream/ocaml_flambda/typing/jkind_axis.ml +++ b/upstream/ocaml_flambda/typing/jkind_axis.ml @@ -4,7 +4,7 @@ (* *) (* Liam Stevenson, Jane Street, New York *) (* *) -(* Copyright 2021 Jane Street Group LLC *) +(* Copyright 2024 Jane Street Group LLC *) (* *) (* All rights reserved. This file is distributed under the terms of *) (* the GNU Lesser General Public License version 2.1, with the *) @@ -12,36 +12,12 @@ (* *) (**************************************************************************) -module type Axis_s = sig - type t - - val max : t - - val min : t - - val equal : t -> t -> bool +module type Axis_ops = sig + include Mode_intf.Lattice val less_or_equal : t -> t -> Misc.Le_result.t - val le : t -> t -> bool - - val meet : t -> t -> t - - val join : t -> t -> t - - val print : Format.formatter -> t -> unit -end - -module Of_lattice (L : Mode_intf.Lattice) = struct - include L - - let less_or_equal a b : Misc.Le_result.t = - match le a b, le b a with - | true, true -> Equal - | true, false -> Less - | false, _ -> Not_le - - let equal a b = Misc.Le_result.is_equal (less_or_equal a b) + val equal : t -> t -> bool end module Externality = struct @@ -54,6 +30,8 @@ module Externality = struct let min = External + let legacy = Internal + let equal e1 e2 = match e1, e2 with | External, External -> true @@ -83,10 +61,10 @@ module Externality = struct let join t1 t2 = match t1, t2 with - | Internal, (External | External64 | Internal) - | (External | External64), Internal -> + | Internal, (Internal | External64 | External) + | (External64 | External), Internal -> Internal - | External64, (External | External64) | External, External64 -> External64 + | External64, (External64 | External) | External, External64 -> External64 | External, External -> External let print ppf = function @@ -104,6 +82,8 @@ module Nullability = struct let min = Non_null + let legacy = Non_null + let equal n1 n2 = match n1, n2 with | Non_null, Non_null -> true @@ -126,7 +106,7 @@ module Nullability = struct let join n1 n2 = match n1, n2 with - | Maybe_null, (Non_null | Maybe_null) | Non_null, Maybe_null -> Maybe_null + | Maybe_null, (Maybe_null | Non_null) | Non_null, Maybe_null -> Maybe_null | Non_null, Non_null -> Non_null let print ppf = function @@ -135,16 +115,6 @@ module Nullability = struct end module Axis = struct - module Modal = struct - type 'a t = - | Locality : Mode.Locality.Const.t t - | Linearity : Mode.Linearity.Const.t t - | Uniqueness : Mode.Uniqueness.Const.t t - | Portability : Mode.Portability.Const.t t - | Contention : Mode.Contention.Const.t t - | Yielding : Mode.Yielding.Const.t t - end - module Nonmodal = struct type 'a t = | Externality : Externality.t t @@ -152,10 +122,10 @@ module Axis = struct end type 'a t = - | Modal of 'a Modal.t - | Nonmodal of 'a Nonmodal.t + | Modal : ('m, 'a, 'd) Mode.Alloc.axis -> 'a t + | Nonmodal : 'a Nonmodal.t -> 'a t - type packed = Pack : 'a t -> packed + type packed = Pack : 'a t -> packed [@@unboxed] module Accent_lattice (M : Mode_intf.Lattice) = struct (* A functor to add some convenient functions to modal axes *) @@ -170,92 +140,320 @@ module Axis = struct let equal a b = Misc.Le_result.is_equal (less_or_equal a b) end - let get (type a) : a t -> (module Axis_s with type t = a) = function - | Modal Locality -> - (module Accent_lattice (Mode.Locality.Const) : Axis_s with type t = a) - | Modal Linearity -> - (module Accent_lattice (Mode.Linearity.Const) : Axis_s with type t = a) - | Modal Uniqueness -> - (module Accent_lattice (Mode.Uniqueness.Const) : Axis_s with type t = a) - | Modal Portability -> - (module Accent_lattice (Mode.Portability.Const) : Axis_s with type t = a) - | Modal Contention -> - (module Accent_lattice (Mode.Contention.Const) : Axis_s with type t = a) - | Modal Yielding -> - (module Accent_lattice (Mode.Yielding.Const) : Axis_s with type t = a) - | Nonmodal Externality -> (module Externality : Axis_s with type t = a) - | Nonmodal Nullability -> (module Nullability : Axis_s with type t = a) + let get (type a) : a t -> (module Axis_ops with type t = a) = function + | Modal axis -> + (module Accent_lattice ((val Mode.Alloc.lattice_of_axis axis))) + | Nonmodal Externality -> (module Externality) + | Nonmodal Nullability -> (module Nullability) let all = - [ Pack (Modal Locality); - Pack (Modal Linearity); - Pack (Modal Uniqueness); - Pack (Modal Portability); - Pack (Modal Contention); - Pack (Modal Yielding); + [ Pack (Modal (Comonadic Areality)); + Pack (Modal (Monadic Uniqueness)); + Pack (Modal (Comonadic Linearity)); + Pack (Modal (Monadic Contention)); + Pack (Modal (Comonadic Portability)); + Pack (Modal (Comonadic Yielding)); Pack (Nonmodal Externality); Pack (Nonmodal Nullability) ] let name (type a) : a t -> string = function - | Modal Locality -> "locality" - | Modal Linearity -> "linearity" - | Modal Uniqueness -> "uniqueness" - | Modal Portability -> "portability" - | Modal Contention -> "contention" - | Modal Yielding -> "yielding" + | Modal axis -> Format.asprintf "%a" Mode.Alloc.print_axis axis | Nonmodal Externality -> "externality" | Nonmodal Nullability -> "nullability" + + let is_modal (type a) : a t -> bool = function + | Modal (Comonadic Areality) -> true + | Modal (Comonadic Linearity) -> true + | Modal (Monadic Uniqueness) -> true + | Modal (Comonadic Portability) -> true + | Modal (Monadic Contention) -> true + | Modal (Comonadic Yielding) -> true + | Nonmodal Externality -> true + | Nonmodal Nullability -> false end -(* Sadly this needs to be functorized since we don't have higher-kinded types *) -module Axis_collection (T : Misc.T1) = struct - type t = - { locality : Mode.Locality.Const.t T.t; - linearity : Mode.Linearity.Const.t T.t; - uniqueness : Mode.Uniqueness.Const.t T.t; - portability : Mode.Portability.Const.t T.t; - contention : Mode.Contention.Const.t T.t; - yielding : Mode.Yielding.Const.t T.t; - externality : Externality.t T.t; - nullability : Nullability.t T.t - } - - let get (type a) ~(axis : a Axis.t) values : a T.t = - match axis with - | Modal Locality -> values.locality - | Modal Linearity -> values.linearity - | Modal Uniqueness -> values.uniqueness - | Modal Portability -> values.portability - | Modal Contention -> values.contention - | Modal Yielding -> values.yielding - | Nonmodal Externality -> values.externality - | Nonmodal Nullability -> values.nullability - - let set (type a) ~(axis : a Axis.t) values (value : a T.t) = - match axis with - | Modal Locality -> { values with locality = value } - | Modal Linearity -> { values with linearity = value } - | Modal Uniqueness -> { values with uniqueness = value } - | Modal Portability -> { values with portability = value } - | Modal Contention -> { values with contention = value } - | Modal Yielding -> { values with yielding = value } - | Nonmodal Externality -> { values with externality = value } - | Nonmodal Nullability -> { values with nullability = value } - - (* Since we don't have polymorphic parameters, use a record to pass the polymorphic - function *) - module Create_f = struct - type t = { f : 'a. axis:'a Axis.t -> 'a T.t } +module Axis_collection = struct + module Indexed_gen (T : Misc.T2) = struct + type 'a t_poly = + { locality : (Mode.Locality.Const.t, 'a) T.t; + linearity : (Mode.Linearity.Const.t, 'a) T.t; + uniqueness : (Mode.Uniqueness.Const.t, 'a) T.t; + portability : (Mode.Portability.Const.t, 'a) T.t; + contention : (Mode.Contention.Const.t, 'a) T.t; + yielding : (Mode.Yielding.Const.t, 'a) T.t; + externality : (Externality.t, 'a) T.t; + nullability : (Nullability.t, 'a) T.t + } + + type 'a t = 'a t_poly + + let get (type a) ~(axis : a Axis.t) (t : 'b t) : (a, 'b) T.t = + match axis with + | Modal (Comonadic Areality) -> t.locality + | Modal (Comonadic Linearity) -> t.linearity + | Modal (Monadic Uniqueness) -> t.uniqueness + | Modal (Comonadic Portability) -> t.portability + | Modal (Monadic Contention) -> t.contention + | Modal (Comonadic Yielding) -> t.yielding + | Nonmodal Externality -> t.externality + | Nonmodal Nullability -> t.nullability + + let set (type a) ~(axis : a Axis.t) (t : 'b t) (value : (a, 'b) T.t) = + match axis with + | Modal (Comonadic Areality) -> { t with locality = value } + | Modal (Comonadic Linearity) -> { t with linearity = value } + | Modal (Monadic Uniqueness) -> { t with uniqueness = value } + | Modal (Comonadic Portability) -> { t with portability = value } + | Modal (Monadic Contention) -> { t with contention = value } + | Modal (Comonadic Yielding) -> { t with yielding = value } + | Nonmodal Externality -> { t with externality = value } + | Nonmodal Nullability -> { t with nullability = value } + + (* Since we don't have polymorphic parameters, use a record to pass the + polymorphic function *) + module Create = struct + module Monadic (M : Misc.Stdlib.Monad.S) = struct + type 'a f = { f : 'axis. axis:'axis Axis.t -> ('axis, 'a) T.t M.t } + [@@unboxed] + + let[@inline] f { f } = + let open M.Syntax in + let* locality = f ~axis:Axis.(Modal (Comonadic Areality)) in + let* uniqueness = f ~axis:Axis.(Modal (Monadic Uniqueness)) in + let* linearity = f ~axis:Axis.(Modal (Comonadic Linearity)) in + let* contention = f ~axis:Axis.(Modal (Monadic Contention)) in + let* portability = f ~axis:Axis.(Modal (Comonadic Portability)) in + let* yielding = f ~axis:Axis.(Modal (Comonadic Yielding)) in + let* externality = f ~axis:Axis.(Nonmodal Externality) in + let* nullability = f ~axis:Axis.(Nonmodal Nullability) in + M.return + { locality; + uniqueness; + linearity; + contention; + portability; + yielding; + externality; + nullability + } + end + [@@inline] + + module Monadic_identity = Monadic (Misc.Stdlib.Monad.Identity) + + type 'a f = 'a Monadic_identity.f + + let[@inline] f f = Monadic_identity.f f + end + + module Map = struct + module Monadic (M : Misc.Stdlib.Monad.S) = struct + type ('a, 'b) f = + { f : + 'axis. axis:'axis Axis.t -> ('axis, 'a) T.t -> ('axis, 'b) T.t M.t + } + [@@unboxed] + + module Create = Create.Monadic (M) + + let[@inline] f { f } bounds = + Create.f { f = (fun ~axis -> f ~axis (get ~axis bounds)) } + end + [@@inline] + + module Monadic_identity = Monadic (Misc.Stdlib.Monad.Identity) + + type ('a, 'b) f = ('a, 'b) Monadic_identity.f + + let[@inline] f f bounds = Monadic_identity.f f bounds + end + + module Iter = struct + type 'a f = { f : 'axis. axis:'axis Axis.t -> ('axis, 'a) T.t -> unit } + [@@unboxed] + + let[@inline] f { f } + { locality; + linearity; + uniqueness; + portability; + contention; + yielding; + externality; + nullability + } = + f ~axis:Axis.(Modal (Comonadic Areality)) locality; + f ~axis:Axis.(Modal (Monadic Uniqueness)) uniqueness; + f ~axis:Axis.(Modal (Comonadic Linearity)) linearity; + f ~axis:Axis.(Modal (Monadic Contention)) contention; + f ~axis:Axis.(Modal (Comonadic Portability)) portability; + f ~axis:Axis.(Modal (Comonadic Yielding)) yielding; + f ~axis:Axis.(Nonmodal Externality) externality; + f ~axis:Axis.(Nonmodal Nullability) nullability + end + + module Map2 = struct + module Monadic (M : Misc.Stdlib.Monad.S) = struct + type ('a, 'b, 'c) f = + { f : + 'axis. + axis:'axis Axis.t -> + ('axis, 'a) T.t -> + ('axis, 'b) T.t -> + ('axis, 'c) T.t M.t + } + [@@unboxed] + + module Create = Create.Monadic (M) + + let[@inline] f { f } bounds1 bounds2 = + Create.f + { f = (fun ~axis -> f ~axis (get ~axis bounds1) (get ~axis bounds2)) + } + end + [@@inline] + + module Monadic_identity = Monadic (Misc.Stdlib.Monad.Identity) + + type ('a, 'b, 'c) f = ('a, 'b, 'c) Monadic_identity.f + + let[@inline] f f bounds1 bounds2 = Monadic_identity.f f bounds1 bounds2 + end + + module Fold = struct + type ('a, 'r) f = + { f : 'axis. axis:'axis Axis.t -> ('axis, 'a) T.t -> 'r } + [@@unboxed] + + let[@inline] f { f } + { locality; + linearity; + uniqueness; + portability; + contention; + yielding; + externality; + nullability + } ~combine = + combine (f ~axis:Axis.(Modal (Comonadic Areality)) locality) + @@ combine (f ~axis:Axis.(Modal (Monadic Uniqueness)) uniqueness) + @@ combine (f ~axis:Axis.(Modal (Comonadic Linearity)) linearity) + @@ combine (f ~axis:Axis.(Modal (Monadic Contention)) contention) + @@ combine (f ~axis:Axis.(Modal (Comonadic Portability)) portability) + @@ combine (f ~axis:Axis.(Modal (Comonadic Yielding)) yielding) + @@ combine (f ~axis:Axis.(Nonmodal Externality) externality) + @@ f ~axis:Axis.(Nonmodal Nullability) nullability + end + + module Fold2 = struct + type ('a, 'b, 'r) f = + { f : + 'axis. axis:'axis Axis.t -> ('axis, 'a) T.t -> ('axis, 'b) T.t -> 'r + } + [@@unboxed] + + let[@inline] f { f } + { locality = loc1; + linearity = lin1; + uniqueness = uni1; + portability = por1; + contention = con1; + yielding = yie1; + externality = ext1; + nullability = nul1 + } + { locality = loc2; + linearity = lin2; + uniqueness = uni2; + portability = por2; + contention = con2; + yielding = yie2; + externality = ext2; + nullability = nul2 + } ~combine = + combine (f ~axis:Axis.(Modal (Comonadic Areality)) loc1 loc2) + @@ combine (f ~axis:Axis.(Modal (Monadic Uniqueness)) uni1 uni2) + @@ combine (f ~axis:Axis.(Modal (Comonadic Linearity)) lin1 lin2) + @@ combine (f ~axis:Axis.(Modal (Monadic Contention)) con1 con2) + @@ combine (f ~axis:Axis.(Modal (Comonadic Portability)) por1 por2) + @@ combine (f ~axis:Axis.(Modal (Comonadic Yielding)) yie1 yie2) + @@ combine (f ~axis:Axis.(Nonmodal Externality) ext1 ext2) + @@ f ~axis:Axis.(Nonmodal Nullability) nul1 nul2 + end + end + + module Indexed (T : Misc.T1) = struct + include Indexed_gen (struct + type ('a, 'b) t = 'a T.t + end) + + type nonrec t = unit t end - let create ({ f } : Create_f.t) = - { locality = f ~axis:Axis.(Modal Locality); - linearity = f ~axis:Axis.(Modal Linearity); - uniqueness = f ~axis:Axis.(Modal Uniqueness); - portability = f ~axis:Axis.(Modal Portability); - contention = f ~axis:Axis.(Modal Contention); - yielding = f ~axis:Axis.(Modal Yielding); - externality = f ~axis:Axis.(Nonmodal Externality); - nullability = f ~axis:Axis.(Nonmodal Nullability) - } + module Identity = Indexed (Misc.Stdlib.Monad.Identity) + + include Indexed_gen (struct + type ('a, 'b) t = 'b + end) + + let create ~f = Create.f { f = (fun ~axis -> f ~axis:(Axis.Pack axis)) } + + let map ~f t = Map.f { f = (fun ~axis:_ x -> f x) } t + + let mapi ~f t = Map.f { f = (fun ~axis x -> f ~axis:(Axis.Pack axis) x) } t + + let fold ~f ~combine t = + Fold.f { f = (fun ~axis acc -> f ~axis:(Axis.Pack axis) acc) } t ~combine +end + +module Axis_set = struct + (* each axis is true or false to indicate membership *) + type t = bool Axis_collection.t + + (* TODO: this could be represented with a uint8 since there's only 7 possible members *) + + let empty = Axis_collection.create ~f:(fun ~axis:_ -> false) + + let add t axis = Axis_collection.set ~axis t true + + let remove t axis = Axis_collection.set ~axis t false + + let mem t axis = Axis_collection.get ~axis t + + let union t1 t2 = + Axis_collection.create ~f:(fun ~axis:(Pack axis) -> + Axis_collection.get ~axis t1 || Axis_collection.get ~axis t2) + + let intersection t1 t2 = + Axis_collection.create ~f:(fun ~axis:(Pack axis) -> + Axis_collection.get ~axis t1 && Axis_collection.get ~axis t2) + + let diff t1 t2 = + Axis_collection.create ~f:(fun ~axis:(Pack axis) -> + Axis_collection.get ~axis t1 && not (Axis_collection.get ~axis t2)) + + let is_subset t1 t2 = + Axis_collection.fold + ~f:(fun ~axis:(Pack axis) t1_on_axis -> + let t2_on_axis = Axis_collection.get ~axis t2 in + (not t1_on_axis) || t2_on_axis) + ~combine:( && ) t1 + + let is_empty t = is_subset t empty + + let complement t = Axis_collection.map ~f:not t + + let to_list t = + Axis_collection.fold + ~f:(fun ~axis t_on_axis -> + match t_on_axis with true -> [axis] | false -> []) + ~combine:( @ ) t + + let create = Axis_collection.create + + let print ppf t = + Format.pp_print_list + ~pp_sep:(fun ppf () -> Format.fprintf ppf ";@ ") + (fun ppf (Axis.Pack axis) -> Format.fprintf ppf "%s" (Axis.name axis)) + ppf (to_list t) end diff --git a/upstream/ocaml_flambda/typing/jkind_axis.mli b/upstream/ocaml_flambda/typing/jkind_axis.mli index 6ee32d233..a4ce3e9ba 100644 --- a/upstream/ocaml_flambda/typing/jkind_axis.mli +++ b/upstream/ocaml_flambda/typing/jkind_axis.mli @@ -4,7 +4,7 @@ (* *) (* Liam Stevenson, Jane Street, New York *) (* *) -(* Copyright 2021 Jane Street Group LLC *) +(* Copyright 2024 Jane Street Group LLC *) (* *) (* All rights reserved. This file is distributed under the terms of *) (* the GNU Lesser General Public License version 2.1, with the *) @@ -12,30 +12,15 @@ (* *) (**************************************************************************) -(** The common interface for jkind axes *) -module type Axis_s = sig - type t - - val max : t - - val min : t - - val equal : t -> t -> bool +(** Re-export *) +module type Axis_ops = sig + include Mode_intf.Lattice val less_or_equal : t -> t -> Misc.Le_result.t - val le : t -> t -> bool - - val meet : t -> t -> t - - val join : t -> t -> t - - val print : Format.formatter -> t -> unit + val equal : t -> t -> bool end -(** Adapt a [Lattice] to be an [Axis_s] *) -module Of_lattice (L : Mode_intf.Lattice) : Axis_s with type t = L.t - (** The jkind axis of Externality *) module Externality : sig type t = @@ -43,7 +28,7 @@ module Externality : sig | External64 | Internal - include Axis_s with type t := t + include Axis_ops with type t := t end (** The jkind axis of nullability *) @@ -52,21 +37,10 @@ module Nullability : sig | Non_null | Maybe_null - include Axis_s with type t := t + include Axis_ops with type t := t end module Axis : sig - (* CR zqian: remove this and use [Mode.Alloc.axis] instead *) - module Modal : sig - type 'a t = - | Locality : Mode.Locality.Const.t t - | Linearity : Mode.Linearity.Const.t t - | Uniqueness : Mode.Uniqueness.Const.t t - | Portability : Mode.Portability.Const.t t - | Contention : Mode.Contention.Const.t t - | Yielding : Mode.Yielding.Const.t t - end - module Nonmodal : sig type 'a t = | Externality : Externality.t t @@ -75,44 +49,194 @@ module Axis : sig (** Represents an axis of a jkind *) type 'a t = - | Modal of 'a Modal.t - | Nonmodal of 'a Nonmodal.t + | Modal : ('m, 'a, 'd) Mode.Alloc.axis -> 'a t + | Nonmodal : 'a Nonmodal.t -> 'a t - type packed = Pack : 'a t -> packed + type packed = Pack : 'a t -> packed [@@unboxed] (* CR zqian: push ['a t] into the module to avoid first-class module. *) (** Given a jkind axis, get its interface *) - val get : 'a t -> (module Axis_s with type t = 'a) + val get : 'a t -> (module Axis_ops with type t = 'a) val all : packed list val name : _ t -> string + + (** Is this a modal axis? Includes externality, because that will one + day be modal (it is a deep property). *) + val is_modal : _ t -> bool end -(** A collection with one item for each jkind axis. - [T] parametizes what element is being held for each axis. *) -module Axis_collection (T : Misc.T1) : sig - type t = - { locality : Mode.Locality.Const.t T.t; - linearity : Mode.Linearity.Const.t T.t; - uniqueness : Mode.Uniqueness.Const.t T.t; - portability : Mode.Portability.Const.t T.t; - contention : Mode.Contention.Const.t T.t; - yielding : Mode.Yielding.Const.t T.t; - externality : Externality.t T.t; - nullability : Nullability.t T.t - } - - val get : axis:'a Axis.t -> t -> 'a T.t - - val set : axis:'a Axis.t -> t -> 'a T.t -> t - - module Create_f : sig - (** This record type is used to pass a polymorphic function to [create] *) - type t = { f : 'a. axis:'a Axis.t -> 'a T.t } +(** A collection with one item for each jkind axis *) +module Axis_collection : sig + module type S_gen := sig + type ('a, 'b) u + + (* This is t_poly instead of t because in some instantiations of this signature, u + ignores its second parameter. In order to avoid needed to apply a useless type + parameter for those instantiations, we define [type t = unit t_poly] in them. In + instantiations where the polymorphism is actually used, we define + [type 'a t = 'a t_poly] *) + type 'a t_poly = + { locality : (Mode.Locality.Const.t, 'a) u; + linearity : (Mode.Linearity.Const.t, 'a) u; + uniqueness : (Mode.Uniqueness.Const.t, 'a) u; + portability : (Mode.Portability.Const.t, 'a) u; + contention : (Mode.Contention.Const.t, 'a) u; + yielding : (Mode.Yielding.Const.t, 'a) u; + externality : (Externality.t, 'a) u; + nullability : (Nullability.t, 'a) u + } + + val get : axis:'a Axis.t -> 'b t_poly -> ('a, 'b) u + + val set : axis:'a Axis.t -> 'b t_poly -> ('a, 'b) u -> 'b t_poly + + (** Create an axis collection by applying the function on each axis *) + module Create : sig + module Monadic (M : Misc.Stdlib.Monad.S) : sig + type 'a f = { f : 'axis. axis:'axis Axis.t -> ('axis, 'a) u M.t } + [@@unboxed] + + val f : 'a f -> 'a t_poly M.t + end + + (** This record type is used to pass a polymorphic function to [create] *) + type 'a f = 'a Monadic(Misc.Stdlib.Monad.Identity).f + + val f : 'a f -> 'a t_poly + end + + (** Map an operation over all the bounds *) + module Map : sig + module Monadic (M : Misc.Stdlib.Monad.S) : sig + type ('a, 'b) f = + { f : 'axis. axis:'axis Axis.t -> ('axis, 'a) u -> ('axis, 'b) u M.t } + [@@unboxed] + + val f : ('a, 'b) f -> 'a t_poly -> 'b t_poly M.t + end + + type ('a, 'b) f = ('a, 'b) Monadic(Misc.Stdlib.Monad.Identity).f + + val f : ('a, 'b) f -> 'a t_poly -> 'b t_poly + end + + module Iter : sig + type 'a f = { f : 'axis. axis:'axis Axis.t -> ('axis, 'a) u -> unit } + [@@unboxed] + + val f : 'a f -> 'a t_poly -> unit + end + + (** Map an operation over two sets of bounds *) + module Map2 : sig + module Monadic (M : Misc.Stdlib.Monad.S) : sig + type ('a, 'b, 'c) f = + { f : + 'axis. + axis:'axis Axis.t -> + ('axis, 'a) u -> + ('axis, 'b) u -> + ('axis, 'c) u M.t + } + [@@unboxed] + + val f : ('a, 'b, 'c) f -> 'a t_poly -> 'b t_poly -> 'c t_poly M.t + end + + type ('a, 'b, 'c) f = ('a, 'b, 'c) Monadic(Misc.Stdlib.Monad.Identity).f + + val f : ('a, 'b, 'c) f -> 'a t_poly -> 'b t_poly -> 'c t_poly + end + + (** Fold an operation over the bounds to a summary value *) + module Fold : sig + type ('a, 'r) f = { f : 'axis. axis:'axis Axis.t -> ('axis, 'a) u -> 'r } + [@@unboxed] + + (** [combine] should be commutative and associative. *) + val f : ('a, 'r) f -> 'a t_poly -> combine:('r -> 'r -> 'r) -> 'r + end + + (** Fold an operation over two sets of bounds to a summary value *) + module Fold2 : sig + type ('a, 'b, 'r) f = + { f : 'axis. axis:'axis Axis.t -> ('axis, 'a) u -> ('axis, 'b) u -> 'r } + [@@unboxed] + + (** [combine] should be commutative and associative. *) + val f : + ('a, 'b, 'r) f -> + 'a t_poly -> + 'b t_poly -> + combine:('r -> 'r -> 'r) -> + 'r + end + end + + module type S_poly := sig + include S_gen + + type 'a t = 'a t_poly + end + + module type S_mono := sig + include S_gen + + type t = unit t_poly end - (** Create an axis collection by applying the function on each axis *) - val create : Create_f.t -> t + module Indexed_gen (T : Misc.T2) : S_poly with type ('a, 'b) u := ('a, 'b) T.t + + module Indexed (T : Misc.T1) : S_mono with type ('a, 'b) u := 'a T.t + + module Identity : S_mono with type ('a, 'b) u := 'a + + include S_poly with type ('a, 'b) u := 'b + + val create : f:(axis:Axis.packed -> 'a) -> 'a t + + val get : axis:'ax Axis.t -> 'a t -> 'a + + val set : axis:'ax Axis.t -> 'a t -> 'a -> 'a t + + val mapi : f:(axis:Axis.packed -> 'a -> 'a) -> 'a t -> 'a t + + val map : f:('a -> 'a) -> 'a t -> 'a t + + val fold : + f:(axis:Axis.packed -> 'a -> 'r) -> combine:('r -> 'r -> 'r) -> 'a t -> 'r +end + +module Axis_set : sig + type t + + val empty : t + + val is_empty : t -> bool + + val add : t -> _ Axis.t -> t + + val remove : t -> _ Axis.t -> t + + val mem : t -> _ Axis.t -> bool + + val union : t -> t -> t + + val intersection : t -> t -> t + + val diff : t -> t -> t + + val is_subset : t -> t -> bool + + val complement : t -> t + + val to_list : t -> Axis.packed list + + (** Create a [t], specify for each axis whether it should be included *) + val create : f:(axis:Axis.packed -> bool) -> t + + val print : Format.formatter -> t -> unit end diff --git a/upstream/ocaml_flambda/typing/jkind_types.ml b/upstream/ocaml_flambda/typing/jkind_types.ml index 15e4860a4..951158e4c 100644 --- a/upstream/ocaml_flambda/typing/jkind_types.ml +++ b/upstream/ocaml_flambda/typing/jkind_types.ml @@ -521,110 +521,3 @@ module Layout = struct | Product of t list end end - -module Modes = Jkind_axis.Of_lattice (Mode.Alloc.Const) - -module Layout_and_axes = struct - open Jkind_axis - - type ('layout, +'d) t = - { layout : 'layout; - modes_upper_bounds : Mode.Alloc.Const.t; - externality_upper_bound : Externality.t; - nullability_upper_bound : Nullability.t - } - constraint 'd = 'l * 'r - - let map f t = { t with layout = f t.layout } - - let map_option f t = - match f t.layout with None -> None | Some layout -> Some { t with layout } - - let equal eq_layout - { layout = lay1; - modes_upper_bounds = modes1; - externality_upper_bound = ext1; - nullability_upper_bound = null1 - } - { layout = lay2; - modes_upper_bounds = modes2; - externality_upper_bound = ext2; - nullability_upper_bound = null2 - } = - eq_layout lay1 lay2 && Modes.equal modes1 modes2 - && Externality.equal ext1 ext2 - && Nullability.equal null1 null2 - - let equal_after_all_inference_is_done x y z = equal x y z - - (* Once we have more interesting mode stuff, this won't be trivial. *) - let try_allow_l ({ layout = _; _ } as t) = Some t - - (* Once we have more interesting mode stuff, this won't be trivial. *) - let try_allow_r ({ layout = _; _ } as t) = Some t - - let sub sub_layout - { layout = lay1; - modes_upper_bounds = modes1; - externality_upper_bound = ext1; - nullability_upper_bound = null1 - } - { layout = lay2; - modes_upper_bounds = modes2; - externality_upper_bound = ext2; - nullability_upper_bound = null2 - } = - Misc.Le_result.combine_list - [ sub_layout lay1 lay2; - Modes.less_or_equal modes1 modes2; - Externality.less_or_equal ext1 ext2; - Nullability.less_or_equal null1 null2 ] - [@@inline] - - let format format_layout ppf - { layout; - modes_upper_bounds; - externality_upper_bound; - nullability_upper_bound - } = - Format.fprintf ppf - "{ layout = %a;@ modes_upper_bounds = %a;@ externality_upper_bound = \ - %a;@ nullability_upper_bound = %a }" - format_layout layout Mode.Alloc.Const.print modes_upper_bounds - Externality.print externality_upper_bound Nullability.print - nullability_upper_bound -end - -module Jkind_desc = struct - type ('type_expr, 'd) t = (Sort.t Layout.t, 'd) Layout_and_axes.t - - type 'type_expr packed = Pack : ('type_expr, 'd) t -> 'type_expr packed - [@@unboxed] -end - -(* A history of conditions placed on a jkind. - - INVARIANT: at most one sort variable appears in this history. - This is a natural consequence of producing this history by comparing - jkinds. -*) -type 'type_expr history = - | Interact of - { reason : Jkind_intf.History.interact_reason; - jkind1 : 'type_expr Jkind_desc.packed; - history1 : 'type_expr history; - jkind2 : 'type_expr Jkind_desc.packed; - history2 : 'type_expr history - } - | Creation of Jkind_intf.History.creation_reason - -type ('type_expr, 'd) t = - { jkind : ('type_expr, 'd) Jkind_desc.t; - annotation : Parsetree.jkind_annotation option; - history : 'type_expr history; - has_warned : bool - } - -module Const = struct - type ('type_expr, +'d) t = (Layout.Const.t, 'd) Layout_and_axes.t -end diff --git a/upstream/ocaml_flambda/typing/jkind_types.mli b/upstream/ocaml_flambda/typing/jkind_types.mli index 4ed03f6ba..0103bd4c7 100644 --- a/upstream/ocaml_flambda/typing/jkind_types.mli +++ b/upstream/ocaml_flambda/typing/jkind_types.mli @@ -16,16 +16,16 @@ types in this file) rather than using this file directly, unless you are in [Types] or [Primitive]. *) -(* This module defines types used in the module Jkind. This is to avoid - a mutual dependencies between jkind.ml(i) and types.ml(i) and bewteen - jkind.ml(i) and primitive.ml(i). Polymorphic versions of types are defined - here, with type parameters that are meant to be filled by types defined in - types.ml(i). jkind.ml(i) redefines the types from this file types.ml - with the type variables instantiated. types.ml also redefines the types - from this file with the type variables instantiated, but only for internal - use. primitive.ml(i) uses the type [Jkind.const], and types.ml(i) depends on - prmitive.ml(i), so [Jkind.const] is defined here and primitive.ml(i) also - uses this module. +(* This module defines types used in the module Jkind. This is to avoid a mutual + dependencies between jkind.ml(i) and types.ml(i) and bewteen jkind.ml(i) and + primitive.ml(i). Polymorphic versions of types are defined here, with type + parameters that are meant to be filled by types defined in + types.ml(i). jkind.ml(i) redefines the types from this file types.ml with the + type variables instantiated. types.ml also redefines the types from this file + with the type variables instantiated, but only for internal + use. primitive.ml(i) uses the type [Jkind.Const.t], and types.ml(i) depends + on primitive.ml(i), so [Jkind.Const.t] is defined here and primitive.ml(i) + also uses this module. Dependency chain without Jkind_types: _____________________ @@ -105,80 +105,3 @@ module Layout : sig | Product of t list end end - -module Layout_and_axes : sig - open Allowance - - (* We need the variance annotation here to allow [any_dummy_jkind] to be - polymorphic in its allowances. Otherwise the value restriction bites. - Sigh. *) - type ('layout, +'d) t = - { layout : 'layout; - modes_upper_bounds : Mode.Alloc.Const.t; - externality_upper_bound : Jkind_axis.Externality.t; - nullability_upper_bound : Jkind_axis.Nullability.t - } - constraint 'd = 'l * 'r - - val map : ('a -> 'b) -> ('a, 'd) t -> ('b, 'd) t - - val map_option : ('a -> 'b option) -> ('a, 'd) t -> ('b, 'd) t option - - val equal : - ('layout -> 'layout -> bool) -> - ('layout, allowed * allowed) t -> - ('layout, allowed * allowed) t -> - bool - - (* An equality check should work over [lr]s only. But we need this - to do memoization in serialization. Happily, that's after all - inference is done, when worrying about l and r does not matter - any more. *) - val equal_after_all_inference_is_done : - ('layout -> 'layout -> bool) -> ('layout, 'd1) t -> ('layout, 'd2) t -> bool - - val try_allow_l : ('layout, 'l * 'r) t -> ('layout, allowed * 'r) t option - - val try_allow_r : ('layout, 'l * 'r) t -> ('layout, 'l * allowed) t option - - val sub : - ('layout -> 'layout -> Misc.Le_result.t) -> - ('layout, allowed * 'r) t -> - ('layout, 'l * allowed) t -> - Misc.Le_result.t - - val format : - (Format.formatter -> 'layout -> unit) -> - Format.formatter -> - ('layout, 'd) t -> - unit -end - -module Jkind_desc : sig - type ('type_expr, +'d) t = (Sort.t Layout.t, 'd) Layout_and_axes.t - - type 'type_expr packed = Pack : ('type_expr, 'd) t -> 'type_expr packed - [@@unboxed] -end - -type 'type_expr history = - | Interact of - { reason : Jkind_intf.History.interact_reason; - jkind1 : 'type_expr Jkind_desc.packed; - history1 : 'type_expr history; - jkind2 : 'type_expr Jkind_desc.packed; - history2 : 'type_expr history - } - | Creation of Jkind_intf.History.creation_reason - -type ('type_expr, +'d) t = - { jkind : ('type_expr, 'd) Jkind_desc.t; - annotation : Parsetree.jkind_annotation option; - history : 'type_expr history; - has_warned : bool - } - -(** CR layouts v2.8: remove this when printing is improved *) -module Const : sig - type ('type_expr, +'d) t = (Layout.Const.t, 'd) Layout_and_axes.t -end diff --git a/upstream/ocaml_flambda/typing/mode.ml b/upstream/ocaml_flambda/typing/mode.ml index 9e1b9d638..0bb7bf9fe 100644 --- a/upstream/ocaml_flambda/typing/mode.ml +++ b/upstream/ocaml_flambda/typing/mode.ml @@ -369,13 +369,13 @@ module Lattices = struct let meet (a0, a1) (b0, b1) = Uniqueness.meet a0 b0, Contention.meet a1 b1 + let print ppf (a0, a1) = + Format.fprintf ppf "%a,%a" Uniqueness.print a0 Contention.print a1 + let imply (a0, a1) (b0, b1) = Uniqueness.imply a0 b0, Contention.imply a1 b1 let subtract (a0, a1) (b0, b1) = Uniqueness.subtract a0 b0, Contention.subtract a1 b1 - - let print ppf (a0, a1) = - Format.fprintf ppf "%a,%a" Uniqueness.print a0 Contention.print a1 end type 'areality comonadic_with = @@ -607,7 +607,7 @@ module Lattices_mono = struct let print : type p r. _ -> (p, r) t -> unit = fun ppf -> function - | Areality -> Format.fprintf ppf "areality" + | Areality -> Format.fprintf ppf "locality" | Linearity -> Format.fprintf ppf "linearity" | Portability -> Format.fprintf ppf "portability" | Uniqueness -> Format.fprintf ppf "uniqueness" @@ -1631,6 +1631,14 @@ module Comonadic_with (Areality : Areality) = struct let print_axis ax ppf a = let obj = proj_obj ax in C.print obj ppf a + + let lattice_of_axis (type a) (axis : (t, a) Axis.t) : + (module Lattice with type t = a) = + match axis with + | Areality -> (module Areality.Const) + | Linearity -> (module Linearity.Const) + | Portability -> (module Portability.Const) + | Yielding -> (module Yielding.Const) end let proj ax m = Solver.via_monotone (proj_obj ax) (Proj (Obj.obj, ax)) m @@ -1729,6 +1737,12 @@ module Monadic = struct let le_axis ax a b = let obj = proj_obj ax in C.le obj b a + + let lattice_of_axis (type a) (axis : (t, a) Axis.t) : + (module Lattice with type t = a) = + match axis with + | Uniqueness -> (module Uniqueness.Const) + | Contention -> (module Contention.Const) end let proj ax m = Solver.via_monotone (proj_obj ax) (Proj (Obj.obj, ax)) m @@ -1805,6 +1819,26 @@ module Value_with (Areality : Areality) = struct (Comonadic.Const.t, 'a) Axis.t -> (('a, 'd) mode_comonadic, 'a, 'd) axis + type 'd axis_packed = P : ('m, 'a, 'd) axis -> 'd axis_packed + + let print_axis (type m a d) ppf (axis : (m, a, d) axis) = + match axis with + | Monadic ax -> Axis.print ppf ax + | Comonadic ax -> Axis.print ppf ax + + let lattice_of_axis (type m a d) (axis : (m, a, d) axis) : + (module Lattice with type t = a) = + match axis with + | Comonadic ax -> Comonadic.Const.lattice_of_axis ax + | Monadic ax -> Monadic.Const.lattice_of_axis ax + + let all_axes = + [ P (Comonadic Areality); + P (Monadic Uniqueness); + P (Comonadic Linearity); + P (Monadic Contention); + P (Comonadic Portability) ] + let proj_obj : type m a d. (m, a, d) axis -> a C.obj = function | Monadic ax -> Monadic.proj_obj ax | Comonadic ax -> Comonadic.proj_obj ax @@ -1843,6 +1877,9 @@ module Value_with (Areality : Areality) = struct { comonadic; monadic } module Const = struct + module Monadic = Monadic.Const + module Comonadic = Comonadic.Const + type t = ( Areality.Const.t, Linearity.Const.t, @@ -1852,9 +1889,6 @@ module Value_with (Areality : Areality) = struct Yielding.Const.t ) modes - module Monadic = Monadic.Const - module Comonadic = Comonadic.Const - let min = merge { comonadic = Comonadic.min; monadic = Monadic.min } let max = merge { comonadic = Comonadic.max; monadic = Monadic.max } @@ -1992,6 +2026,12 @@ module Value_with (Areality : Areality) = struct | Comonadic ax -> Comonadic.max_axis ax | Monadic ax -> Monadic.max_axis ax + let is_max : type m a d. (m, a, d) axis -> a -> bool = + fun ax m -> le_axis ax (max_axis ax) m + + let is_min : type m a d. (m, a, d) axis -> a -> bool = + fun ax m -> le_axis ax m (min_axis ax) + let split = split let merge = merge @@ -2250,6 +2290,17 @@ module Const = struct let areality = C.locality_as_regionality areality in { areality; linearity; portability; uniqueness; contention; yielding } + module Axis = struct + let alloc_as_value : type d. d Alloc.axis_packed -> d Value.axis_packed = + function + | P (Comonadic Areality) -> P (Comonadic Areality) + | P (Comonadic Linearity) -> P (Comonadic Linearity) + | P (Comonadic Portability) -> P (Comonadic Portability) + | P (Comonadic Yielding) -> P (Comonadic Yielding) + | P (Monadic Uniqueness) -> P (Monadic Uniqueness) + | P (Monadic Contention) -> P (Monadic Contention) + end + let locality_as_regionality = C.locality_as_regionality end @@ -2295,8 +2346,13 @@ module Modality = struct let is_id (Atom (ax, a)) = match a with - | Join_with c -> Value.Const.le_axis ax c (Value.Const.min_axis ax) - | Meet_with c -> Value.Const.le_axis ax (Value.Const.max_axis ax) c + | Join_with c -> Value.Const.is_min ax c + | Meet_with c -> Value.Const.is_max ax c + + let is_constant (Atom (ax, a)) = + match a with + | Join_with c -> Value.Const.is_max ax c + | Meet_with c -> Value.Const.is_min ax c let print ppf = function | Atom (ax, Join_with c) -> @@ -2355,6 +2411,9 @@ module Modality = struct (let ax : _ Axis.t = Contention in Atom (Monadic ax, Join_with (Axis.proj ax c))) ] + let proj ax = function + | Join_const c -> Atom (Monadic ax, Join_with (Axis.proj ax c)) + let print ppf = function | Join_const c -> Format.fprintf ppf "join_const(%a)" Mode.Const.print c end @@ -2499,6 +2558,9 @@ module Modality = struct (let ax : _ Axis.t = Portability in Atom (Comonadic ax, Meet_with (Axis.proj ax c))) ] + let proj ax = function + | Meet_const c -> Atom (Comonadic ax, Meet_with (Axis.proj ax c)) + let print ppf = function | Meet_const c -> Format.fprintf ppf "meet_const(%a)" Mode.Const.print c end @@ -2637,10 +2699,21 @@ module Modality = struct let comonadic = Comonadic.concat ~then_:then_.comonadic t.comonadic in { monadic; comonadic } + let of_list = List.fold_left (fun m atom -> compose m ~then_:atom) id + let singleton a = compose ~then_:a id let to_list { monadic; comonadic } = Comonadic.to_list comonadic @ Monadic.to_list monadic + + let proj (type m a d) (ax : (m, a, d) Value.axis) { monadic; comonadic } = + match ax with + | Monadic ax -> Monadic.proj ax monadic + | Comonadic ax -> Comonadic.proj ax comonadic + + let print ppf { monadic; comonadic } = + Format.fprintf ppf "%a;%a" Monadic.print monadic Comonadic.print + comonadic end type t = (Monadic.t, Comonadic.t) monadic_comonadic diff --git a/upstream/ocaml_flambda/typing/mode_intf.mli b/upstream/ocaml_flambda/typing/mode_intf.mli index c7544f2dd..d1b54bb64 100644 --- a/upstream/ocaml_flambda/typing/mode_intf.mli +++ b/upstream/ocaml_flambda/typing/mode_intf.mli @@ -298,13 +298,21 @@ module type S = sig | Contention : (monadic, Contention.Const.t) t val print : Format.formatter -> ('p, 'r) t -> unit + + val eq : ('p, 'r0) t -> ('p, 'r1) t -> ('r0, 'r1) Misc.eq option end module type Mode := sig module Areality : Common module Monadic : sig - module Const : Lattice with type t = monadic + module Const : sig + include Lattice with type t = monadic + + val max_axis : (t, 'a) Axis.t -> 'a + + val min_axis : (t, 'a) Axis.t -> 'a + end include Common with module Const := Const @@ -318,6 +326,10 @@ module type S = sig val eq : t -> t -> bool val print_axis : (t, 'a) Axis.t -> Format.formatter -> 'a -> unit + + val max_axis : (t, 'a) Axis.t -> 'a + + val min_axis : (t, 'a) Axis.t -> 'a end type error = Error : (Const.t, 'a) Axis.t * 'a Solver.error -> error @@ -337,6 +349,14 @@ module type S = sig (Comonadic.Const.t, 'a) Axis.t -> (('a, 'd) mode_comonadic, 'a, 'd) axis + type 'd axis_packed = P : ('m, 'a, 'd) axis -> 'd axis_packed + + val print_axis : Format.formatter -> ('m, 'a, 'd) axis -> unit + + val lattice_of_axis : ('m, 'a, 'd) axis -> (module Lattice with type t = 'a) + + val all_axes : ('l * 'r) axis_packed list + type ('a, 'b, 'c, 'd, 'e, 'f) modes = { areality : 'a; linearity : 'b; @@ -377,6 +397,10 @@ module type S = sig val print : Format.formatter -> t -> unit end + val is_max : ('m, 'a, 'd) axis -> 'a -> bool + + val is_min : ('m, 'a, 'd) axis -> 'a -> bool + val split : t -> (Monadic.Const.t, Comonadic.Const.t) monadic_comonadic val merge : (Monadic.Const.t, Comonadic.Const.t) monadic_comonadic -> t @@ -455,6 +479,10 @@ module type S = sig module Const : sig val alloc_as_value : Alloc.Const.t -> Value.Const.t + module Axis : sig + val alloc_as_value : 'd Alloc.axis_packed -> 'd Value.axis_packed + end + val locality_as_regionality : Locality.Const.t -> Regionality.Const.t end @@ -494,6 +522,9 @@ module type S = sig (** Test if the given modality is the identity modality. *) val is_id : t -> bool + (** Test if the given modality is a constant modality. *) + val is_constant : t -> bool + (** Printing for debugging *) val print : Format.formatter -> t -> unit @@ -505,6 +536,19 @@ module type S = sig type nonrec equate_error = equate_step * error + (* In the following we have both [Const.t] and [t]. The former is parameterized by + constant modes and thus its behavior fully determined. It is what users read and + write on constructor arguments, record fields and value descriptions in signatures. + + The latter is parameterized by variable modes and thus its behavior changes as the + variable modes change. It is used in module type inference: structures are inferred + to have a signature containing a list of value descriptions, each of which carries a + modality. This modality depends on the mode of the value, which is a variable. + Therefore, we parameterize the modality over the variable mode. + + Utilities are provided to convert between [Const.t] and [t], such as [of_const], + [zap_to_id], [zap_to_floor], etc.. *) + module Const : sig (** A modality that acts on [Value] modes. Conceptually it is a sequnce of [atom] that acts on individual axes. *) @@ -529,12 +573,23 @@ module type S = sig val singleton : atom -> t (** Returns the list of [atom] in the given modality. The list is - commutative. *) + commutative. Post-condition: each axis is represented in the + output list exactly once. *) val to_list : t -> atom list + (** Builds up a modality from a list of [atom], by composing each atom with + identity. The modalities are applied left to right. *) + val of_list : atom list -> t + + (** Project out the [atom] for the given axis in the given modality. *) + val proj : ('m, 'a, 'd) Value.axis -> t -> atom + (** [equate t0 t1] checks that [t0 = t1]. Definition: [t0 = t1] iff [t0 <= t1] and [t1 <= t0]. *) val equate : t -> t -> (unit, equate_error) Result.t + + (** Printing for debugging. *) + val print : Format.formatter -> t -> unit end (** A modality that acts on [Value] modes. Conceptually it is a sequnce of diff --git a/upstream/ocaml_flambda/typing/oprint.ml b/upstream/ocaml_flambda/typing/oprint.ml index a714d1aec..70e1cd6dc 100644 --- a/upstream/ocaml_flambda/typing/oprint.ml +++ b/upstream/ocaml_flambda/typing/oprint.ml @@ -342,50 +342,6 @@ let pr_var = Pprintast.tyvar let ty_var ~non_gen ppf s = pr_var ppf (if non_gen then "_" ^ s else s) -let print_out_jkind_const ppf ojkind = - let rec pp_element ~nested ppf (ojkind : Outcometree.out_jkind_const) = - match ojkind with - | Ojkind_const_default -> fprintf ppf "_" - | Ojkind_const_abbreviation abbrev -> fprintf ppf "%s" abbrev - | Ojkind_const_mod (base, modes) -> - Misc.pp_parens_if nested (fun ppf (base, modes) -> - fprintf ppf "%a mod @[%a@]" (pp_element ~nested:true) base - (pp_print_list - ~pp_sep:(fun ppf () -> fprintf ppf "@ ") - (fun ppf -> fprintf ppf "%s")) - modes - ) ppf (base, modes) - | Ojkind_const_product ts -> - let pp_sep ppf () = Format.fprintf ppf "@ & " in - Misc.pp_nested_list ~nested ~pp_element ~pp_sep ppf ts - | Ojkind_const_with _ | Ojkind_const_kind_of _ -> - failwith "XXX unimplemented jkind syntax" - in - pp_element ~nested:false ppf ojkind - -let print_out_jkind ppf ojkind = - let rec pp_element ~nested ppf ojkind = - match ojkind with - | Ojkind_var v -> fprintf ppf "%s" v - | Ojkind_const jkind -> print_out_jkind_const ppf jkind - | Ojkind_product ts -> - let pp_sep ppf () = Format.fprintf ppf "@ & " in - Misc.pp_nested_list ~nested ~pp_element ~pp_sep ppf ts - in - pp_element ~nested:false ppf ojkind - -let print_out_jkind_annot ppf = function - | None -> () - | Some lay -> fprintf ppf "@ : %a" print_out_jkind lay - -let pr_var_jkind ppf (v, l) = match l with - | None -> pr_var ppf v - | Some lay -> fprintf ppf "(%a : %a)" - pr_var v - print_out_jkind lay - -let pr_var_jkinds = - print_list pr_var_jkind (fun ppf -> fprintf ppf "@ ") (* NON-LEGACY MODES Here, we are printing mode annotations even if the mode extension is @@ -659,6 +615,85 @@ and print_out_label ppf (name, mut, arg, gbl) = print_out_type arg print_out_modalities_new m_new +and print_out_jkind_const ppf ojkind = + let rec pp_element ~nested ppf (ojkind : Outcometree.out_jkind_const) = + (* HACK: we strip off the [Ojkind_const_with]s and convert them to a [string string + list] so we can sort them lexicographically, because otherwise the order of printed + [with]s is nondeterministic. This is sad, but we'd need deterministic sorting of + types to work around it. + + CR aspsmith: remove this if we ever add deterministic, semantic type comparison + *) + let rec strip_withs ojkind = + match ojkind with + | Ojkind_const_with (base, ty, modalities) -> + let base, withs = strip_withs base in + let with_ = + Format.asprintf "%a" print_out_type ty + :: (match modalities with + | [] -> [] + | modalities -> "@@" :: modalities) + in + base, with_ :: withs + | base -> base, [] + in + let base, withs = strip_withs ojkind in + (match base with + | Ojkind_const_default -> fprintf ppf "_" + | Ojkind_const_abbreviation abbrev -> fprintf ppf "%s" abbrev + | Ojkind_const_mod (base, modes) -> + Misc.pp_parens_if nested (fun ppf (base, modes) -> + fprintf ppf "%a mod @[%a@]" (pp_element ~nested:true) base + (pp_print_list + ~pp_sep:(fun ppf () -> fprintf ppf "@ ") + (fun ppf -> fprintf ppf "%s")) + modes + ) ppf (base, modes) + | Ojkind_const_product ts -> + let pp_sep ppf () = Format.fprintf ppf "@ & " in + Misc.pp_nested_list ~nested ~pp_element ~pp_sep ppf ts + | Ojkind_const_with _ -> failwith "XXX unreachable (stripped off earlier)" + | Ojkind_const_kind_of _ -> + failwith "XXX unimplemented jkind syntax"); + let withs = List.sort (List.compare String.compare) withs in + match withs with + | [] -> () + | withs -> + pp_print_list + (fun ppf -> + Format.fprintf ppf "@ @[with %a@]" + (pp_print_list + ~pp_sep:(fun ppf () -> fprintf ppf " ") + (fun ppf -> Format.fprintf ppf "%s"))) + ppf + withs + in + pp_element ~nested:false ppf ojkind + +and print_out_jkind ppf ojkind = + let rec pp_element ~nested ppf ojkind = + match ojkind with + | Ojkind_var v -> fprintf ppf "%s" v + | Ojkind_const jkind -> print_out_jkind_const ppf jkind + | Ojkind_product ts -> + let pp_sep ppf () = Format.fprintf ppf "@ & " in + Misc.pp_nested_list ~nested ~pp_element ~pp_sep ppf ts + in + pp_element ~nested:false ppf ojkind + +and print_out_jkind_annot ppf = function + | None -> () + | Some lay -> fprintf ppf "@ : %a" print_out_jkind lay + +and pr_var_jkind ppf (v, l) = match l with + | None -> pr_var ppf v + | Some lay -> fprintf ppf "(%a : %a)" + pr_var v + print_out_jkind lay + +and pr_var_jkinds jks = + print_list pr_var_jkind (fun ppf -> fprintf ppf "@ ") jks + let out_label = ref print_out_label let out_modality = ref print_out_modality @@ -1006,13 +1041,17 @@ and print_out_type_decl kwd ppf td = print_private td.otype_private !out_type ty in - fprintf ppf "@[<2>@[%t%a%a@]%t%t%t@]" + let print_out_attrs ppf = + List.iter (fun a -> fprintf ppf "@ [@@@@%s]" a.oattr_name) + in + fprintf ppf "@[<2>@[%t%a%a@]%t%t%t@]%a" print_name_params print_out_jkind_annot td.otype_jkind print_out_tkind ty print_constraints print_unboxed print_or_null_reexport + print_out_attrs td.otype_attributes and print_simple_out_gf_type ppf (ty, gf) = let m_legacy, m_new = partition_modalities gf in diff --git a/upstream/ocaml_flambda/typing/outcometree.mli b/upstream/ocaml_flambda/typing/outcometree.mli index 8defebafc..c0a3b18cb 100644 --- a/upstream/ocaml_flambda/typing/outcometree.mli +++ b/upstream/ocaml_flambda/typing/outcometree.mli @@ -105,7 +105,7 @@ type out_jkind_const = | Ojkind_const_default | Ojkind_const_abbreviation of string | Ojkind_const_mod of out_jkind_const * string list - | Ojkind_const_with of out_jkind_const * out_type + | Ojkind_const_with of out_jkind_const * out_type * out_modality_new list | Ojkind_const_kind_of of out_type | Ojkind_const_product of out_jkind_const list @@ -205,7 +205,8 @@ and out_type_decl = otype_unboxed: bool; otype_or_null_reexport: bool; - otype_cstrs: (out_type * out_type) list } + otype_cstrs: (out_type * out_type) list; + otype_attributes: out_attribute list } and out_extension_constructor = { oext_name: string; oext_type_name: string; diff --git a/upstream/ocaml_flambda/typing/parmatch.ml b/upstream/ocaml_flambda/typing/parmatch.ml index 277c56add..9b07bd878 100644 --- a/upstream/ocaml_flambda/typing/parmatch.ml +++ b/upstream/ocaml_flambda/typing/parmatch.ml @@ -959,18 +959,18 @@ let pats_of_type env ty = | Typedecl (_, path, {type_kind = Type_variant _ | Type_record _ | Type_record_unboxed_product _ }) -> begin match Env.find_type_descrs path env with - | Type_variant (cstrs,_) when List.length cstrs <= 1 || + | Type_variant (cstrs,_,_) when List.length cstrs <= 1 || (* Only explode when all constructors are GADTs *) List.for_all (fun cd -> cd.cstr_generalized) cstrs -> List.map (pat_of_constr (make_pat Tpat_any ty env)) cstrs - | Type_record (labels, _) -> + | Type_record (labels, _,_) -> let fields = List.map (fun ld -> mknoloc (Longident.Lident ld.lbl_name), ld, omega) labels in [make_pat (Tpat_record (fields, Closed)) ty env] - | Type_record_unboxed_product (labels, _) -> + | Type_record_unboxed_product (labels, _,_) -> let fields = List.map (fun ld -> mknoloc (Longident.Lident ld.lbl_name), ld, omega) @@ -993,7 +993,7 @@ let get_variant_constructors env ty = match Ctype.extract_concrete_typedecl env ty with | Typedecl (_, path, {type_kind = Type_variant _}) -> begin match Env.find_type_descrs path env with - | Type_variant (cstrs,_) -> cstrs + | Type_variant (cstrs,_,_) -> cstrs | _ -> fatal_error "Parmatch.get_variant_constructors" end | _ -> fatal_error "Parmatch.get_variant_constructors" diff --git a/upstream/ocaml_flambda/typing/predef.ml b/upstream/ocaml_flambda/typing/predef.ml index 6e140f2ff..db2e8e548 100644 --- a/upstream/ocaml_flambda/typing/predef.ml +++ b/upstream/ocaml_flambda/typing/predef.ml @@ -218,7 +218,13 @@ let option_argument_sort = Jkind.Sort.Const.value let option_argument_jkind = Jkind.Builtin.value ~why:( Type_argument {parent_path = path_option; position = 1; arity = 1}) -let list_jkind = Jkind.Builtin.value ~why:Boxed_variant +let list_jkind param = + Jkind.Builtin.immutable_data ~why:Boxed_variant |> + Jkind.add_with_bounds + ~modality:Mode.Modality.Value.Const.id + ~type_expr:param |> + Jkind.mark_best + let list_sort = Jkind.Sort.Const.value let list_argument_sort = Jkind.Sort.Const.value let list_argument_jkind = Jkind.Builtin.value ~why:( @@ -226,38 +232,40 @@ let list_argument_jkind = Jkind.Builtin.value ~why:( let or_null_argument_sort = Jkind.Sort.Const.value -let mk_add_type add_type +let mk_add_type add_type = + let add_type_with_jkind ?manifest type_ident ?(kind=Type_abstract Definition) - ?jkind + ~jkind env = - let type_jkind = match jkind with - | None -> Jkind.Builtin.value ~why:(Primitive type_ident) - | Some k -> Jkind.of_builtin ~why:(Primitive type_ident) k + let decl = + {type_params = []; + type_arity = 0; + type_kind = kind; + type_jkind = Jkind.mark_best jkind; + type_loc = Location.none; + type_private = Asttypes.Public; + type_manifest = manifest; + type_variance = []; + type_separability = []; + type_is_newtype = false; + type_expansion_scope = lowest_level; + type_attributes = []; + type_unboxed_default = false; + type_uid = Uid.of_predef_id type_ident; + } + in + add_type type_ident decl env in - let decl = - {type_params = []; - type_arity = 0; - type_kind = kind; - type_jkind; - type_loc = Location.none; - type_private = Asttypes.Public; - type_manifest = manifest; - type_variance = []; - type_separability = []; - type_is_newtype = false; - type_expansion_scope = lowest_level; - type_attributes = []; - type_unboxed_default = false; - type_uid = Uid.of_predef_id type_ident; - type_has_illegal_crossings = false; - } + let add_type ?manifest type_ident ?kind ~jkind env = + let jkind = Jkind.of_builtin ~why:(Primitive type_ident) jkind in + add_type_with_jkind ?manifest type_ident ?kind ~jkind env in - add_type type_ident decl env + add_type_with_jkind, add_type let mk_add_type1 add_type type_ident ?(kind=fun _ -> Type_abstract Definition) - ?(jkind=Jkind.Builtin.value ~why:(Primitive type_ident)) + ~jkind ?(param_jkind=Jkind.Builtin.value ~why:( Type_argument { parent_path = Path.Pident type_ident; @@ -270,7 +278,7 @@ let mk_add_type1 add_type type_ident {type_params = [param]; type_arity = 1; type_kind = kind param; - type_jkind = jkind; + type_jkind = Jkind.mark_best (jkind param); type_loc = Location.none; type_private = Asttypes.Public; type_manifest = None; @@ -281,7 +289,6 @@ let mk_add_type1 add_type type_ident type_attributes = []; type_unboxed_default = false; type_uid = Uid.of_predef_id type_ident; - type_has_illegal_crossings = false; } in add_type type_ident decl env @@ -331,8 +338,10 @@ let variant constrs = in Constructor_uniform_value, sorts in - Type_variant (constrs, - Variant_boxed (Misc.Stdlib.Array.of_list_map mk_elt constrs)) + Type_variant ( + constrs, + Variant_boxed (Misc.Stdlib.Array.of_list_map mk_elt constrs), + None) let unrestricted tvar ca_sort = {ca_type=tvar; @@ -343,7 +352,7 @@ let unrestricted tvar ca_sort = (* CR layouts: Changes will be needed here as we add support for the built-ins to work with non-values, and as we relax the mixed block restriction. *) let build_initial_env add_type add_extension empty_env = - let add_type = mk_add_type add_type + let add_type_with_jkind, add_type = mk_add_type add_type and add_type1 = mk_add_type1 add_type and add_extension = mk_add_extension add_extension in empty_env @@ -353,17 +362,27 @@ let build_initial_env add_type add_extension empty_env = ~separability:Separability.Ind ~param_jkind:(Jkind.add_nullability_crossing (Jkind.Builtin.any ~why:Array_type_argument)) + ~jkind:(fun param -> + Jkind.Builtin.mutable_data ~why:(Primitive ident_array) |> + Jkind.add_with_bounds + ~modality:Mode.Modality.Value.Const.id + ~type_expr:param) |> add_type1 ident_iarray ~variance:Variance.covariant ~separability:Separability.Ind ~param_jkind:(Jkind.add_nullability_crossing (Jkind.Builtin.any ~why:Array_type_argument)) + ~jkind:(fun param -> + Jkind.Builtin.immutable_data ~why:(Primitive ident_iarray) |> + Jkind.add_with_bounds + ~modality:Mode.Modality.Value.Const.id + ~type_expr:param) |> add_type ident_bool ~kind:(variant [ cstr ident_false []; cstr ident_true []]) ~jkind:Jkind.Const.Builtin.immediate |> add_type ident_char ~jkind:Jkind.Const.Builtin.immediate |> add_type ident_exn ~kind:Type_open ~jkind:Jkind.Const.Builtin.value - |> add_type ident_extension_constructor + |> add_type ident_extension_constructor ~jkind:Jkind.Const.Builtin.value |> add_type ident_float ~jkind:Jkind.Const.Builtin.immutable_data |> add_type ident_floatarray ~jkind:Jkind.Const.Builtin.mutable_data |> add_type ident_int ~jkind:Jkind.Const.Builtin.immediate @@ -372,6 +391,12 @@ let build_initial_env add_type add_extension empty_env = |> add_type1 ident_lazy_t ~variance:Variance.covariant ~separability:Separability.Ind + (* CR layouts v2.8: Can [lazy_t] mode-cross at all? According to Zesen: + It can at least cross locality, because it's always heap-allocated. + It might also cross portability, linearity, uniqueness subject to its + parameter. But I'm also fine not doing that for now (and wait until + users complains). *) + ~jkind:(fun _ -> Jkind.Builtin.value ~why:(Primitive ident_lazy_t)) |> add_type1 ident_list ~variance:Variance.covariant ~separability:Separability.Ind @@ -388,8 +413,12 @@ let build_initial_env add_type add_extension empty_env = ~kind:(fun tvar -> variant [cstr ident_none []; cstr ident_some [unrestricted tvar option_argument_sort]]) - ~jkind:(Jkind.Builtin.value ~why:Boxed_variant) - |> add_type ident_lexing_position + ~jkind:(fun param -> + Jkind.Builtin.immutable_data ~why:Boxed_variant |> + Jkind.add_with_bounds + ~modality:Mode.Modality.Value.Const.id + ~type_expr:param) + |> add_type_with_jkind ident_lexing_position ~kind:( let lbl (field, field_type) = let id = Ident.create_predef field in @@ -412,10 +441,19 @@ let build_initial_env add_type add_extension empty_env = in Type_record ( labels, - (Record_boxed (List.map (fun label -> label.ld_sort) labels |> Array.of_list)) + (Record_boxed (List.map (fun label -> label.ld_sort) labels |> Array.of_list)), + None ) ) - ~jkind:Jkind.Const.Builtin.immutable_data + (* CR layouts v2.8: Possibly remove this -- and simplify [mk_add_type] -- + when we have a better jkind subsumption check. *) + ~jkind:Jkind.( + of_builtin Const.Builtin.immutable_data + ~why:(Primitive ident_lexing_position) |> + add_with_bounds ~modality:Mode.Modality.Value.Const.id ~type_expr:type_int |> + add_with_bounds ~modality:Mode.Modality.Value.Const.id ~type_expr:type_int |> + add_with_bounds ~modality:Mode.Modality.Value.Const.id ~type_expr:type_int |> + add_with_bounds ~modality:Mode.Modality.Value.Const.id ~type_expr:type_string) |> add_type ident_string ~jkind:Jkind.Const.Builtin.immutable_data |> add_type ident_unboxed_float ~jkind:Jkind.Const.Builtin.float64 |> add_type ident_unboxed_nativeint ~jkind:Jkind.Const.Builtin.word @@ -449,7 +487,7 @@ let build_initial_env add_type add_extension empty_env = Jkind.Sort.Const.value] let add_simd_stable_extension_types add_type env = - let add_type = mk_add_type add_type in + let _, add_type = mk_add_type add_type in env |> add_type ident_int8x16 ~jkind:Jkind.Const.Builtin.immutable_data |> add_type ident_int16x8 ~jkind:Jkind.Const.Builtin.immutable_data @@ -465,22 +503,26 @@ let add_simd_stable_extension_types add_type env = |> add_type ident_unboxed_float64x2 ~jkind:Jkind.Const.Builtin.vec128 let add_small_number_extension_types add_type env = - let add_type = mk_add_type add_type in + let _, add_type = mk_add_type add_type in env |> add_type ident_float32 ~jkind:Jkind.Const.Builtin.immutable_data |> add_type ident_unboxed_float32 ~jkind:Jkind.Const.Builtin.float32 let add_small_number_beta_extension_types add_type env = - let add_type = mk_add_type add_type in + let _, add_type = mk_add_type add_type in env |> add_type ident_int8 ~jkind:Jkind.Const.Builtin.immediate |> add_type ident_int16 ~jkind:Jkind.Const.Builtin.immediate let or_null_kind tvar = - (* CR layouts v3: use [Variant_with_null] when it's supported - in the backend. *) - variant [cstr ident_null []; - cstr ident_this [unrestricted tvar or_null_argument_sort]] + let cstrs = + [ cstr ident_null []; + cstr ident_this [unrestricted tvar or_null_argument_sort]] + in + Type_variant (cstrs, Variant_with_null, None) + +let or_null_jkind = + Jkind.Builtin.value_or_null ~why:(Primitive ident_or_null) let add_or_null add_type env = let add_type1 = mk_add_type1 add_type in @@ -495,8 +537,9 @@ let add_or_null add_type env = For now, we mark the type argument as [Separability.Ind] to permit the most argument types, and forbid arrays from accepting [or_null]s. In the future, we will track separability in the jkind system. *) + (* CR layouts v2.8: Add baggage and more mode crossing here. *) ~kind:or_null_kind - ~jkind:(Jkind.Builtin.value_or_null ~why:(Primitive ident_or_null)) + ~jkind:(fun _ -> or_null_jkind) let builtin_values = List.map (fun id -> (Ident.name id, id)) all_predef_exns diff --git a/upstream/ocaml_flambda/typing/predef.mli b/upstream/ocaml_flambda/typing/predef.mli index d76e220cc..5e62960c7 100644 --- a/upstream/ocaml_flambda/typing/predef.mli +++ b/upstream/ocaml_flambda/typing/predef.mli @@ -118,9 +118,9 @@ val ident_some : Ident.t val ident_or_null : Ident.t (* The jkind used for optional function argument types *) -val option_argument_jkind : 'd jkind +val option_argument_jkind : jkind_lr (* The jkind used for list argument types *) -val list_argument_jkind : 'd jkind +val list_argument_jkind : jkind_lr (* To build the initial environment. Since there is a nasty mutual recursion between predef and env, we break it by parameterizing @@ -156,6 +156,11 @@ val add_or_null : (* CR layouts v3.5: remove this when users can define null constructors. *) val or_null_kind : type_expr -> ('a, 'b, constructor_declaration) type_kind +(* Construct the [jkind] of [or_null]. For re-exporting [or_null] + while users can't define their own types with null constructors. *) +(* CR layouts v3.5: remove this when users can define null constructors. *) +val or_null_jkind : Types.jkind_l + (* To initialize linker tables *) val builtin_values: (string * Ident.t) list diff --git a/upstream/ocaml_flambda/typing/printtyp.ml b/upstream/ocaml_flambda/typing/printtyp.ml index 134d25c9e..cdbb948c4 100644 --- a/upstream/ocaml_flambda/typing/printtyp.ml +++ b/upstream/ocaml_flambda/typing/printtyp.ml @@ -49,9 +49,8 @@ module Style = Misc.Style In this case, there is no way to know the jkind without the annotation. - (* CR layouts v2.8: remove this case *) - (C1.2) The type has illegal mode crossings. In this case, the jkind is overridden by - the user rather than being inferred from the definition. + (C1.2) The type has unsafe mode crossings. In this case, the jkind is overridden by the + user rather than being inferred from the definition. Case (C2). The jkind on a type parameter to a type, like [type ('a : <>) t = ...]. @@ -1369,7 +1368,11 @@ let rec out_jkind_of_desc (desc : 'd Jkind.Desc.t) = let out_jkind_option_of_jkind jkind = let desc = Jkind.get jkind in let elide = - Jkind.is_value_for_printing jkind (* C2.1 *) + (* CR layouts: We ignore nullability here to avoid needlessly printing + ['a : value_or_null] when it's not relevant (most cases). + Unfortunately, this makes error messages really confusing, because + we don't consider jkind annotations. *) + Jkind.is_value_for_printing ~ignore_null:true jkind (* C2.1 *) || (match desc.layout with | Sort (Var _) -> not !Clflags.verbose_types (* X1 *) | _ -> false) @@ -1691,8 +1694,6 @@ let type_expr ppf ty = prepare_for_printing [ty]; prepared_type_expr ppf ty -let () = Env.print_type_expr := type_expr - (* "Half-prepared" type expression: [ty] should have had its names reserved, but should not have had its loops marked. *) let type_expr_with_reserved_names ppf ty = @@ -1720,6 +1721,11 @@ let tree_of_type_scheme ty = prepare_for_printing [ty]; tree_of_typexp Type_scheme ty +let () = + Env.print_type_expr := type_expr; + Jkind.set_outcometree_of_type_scheme tree_of_type_scheme; + Jkind.set_outcometree_of_modalities_new tree_of_modalities_new + (* Print one type declaration *) let tree_of_constraints params = @@ -1865,15 +1871,15 @@ let prepare_decl id decl = in begin match decl.type_kind with | Type_abstract _ -> () - | Type_variant (cstrs, _rep) -> + | Type_variant (cstrs, _rep,_umc) -> List.iter (fun c -> prepare_type_constructor_arguments c.cd_args; Option.iter prepare_type c.cd_res) cstrs - | Type_record(l, _rep) -> + | Type_record(l, _rep,_umc) -> List.iter (fun l -> prepare_type l.ld_type) l - | Type_record_unboxed_product(l, _rep) -> + | Type_record_unboxed_product(l, _rep,_umc) -> List.iter (fun l -> prepare_type l.ld_type) l | Type_open -> () end; @@ -1896,7 +1902,7 @@ let tree_of_type_decl id decl = decl.type_private = Private | Type_record_unboxed_product _ -> decl.type_private = Private - | Type_variant (tll, _rep) -> + | Type_variant (tll, _rep,_umc) -> decl.type_private = Private || List.exists (fun cd -> cd.cd_res <> None) tll | Type_open -> @@ -1935,15 +1941,15 @@ let tree_of_type_decl id decl = in let (name, args) = type_defined decl in let constraints = tree_of_constraints params in - let ty, priv, unboxed, or_null_reexport = + let ty, priv, unboxed, or_null_reexport, unsafe_mode_crossing = match decl.type_kind with | Type_abstract _ -> begin match ty_manifest with - | None -> (Otyp_abstract, Public, false, false) + | None -> (Otyp_abstract, Public, false, false, false) | Some ty -> - tree_of_typexp Type ty, decl.type_private, false, false + tree_of_typexp Type ty, decl.type_private, false, false, false end - | Type_variant (cstrs, rep) -> + | Type_variant (cstrs, rep, umc) -> let unboxed = match rep with | Variant_unboxed -> true @@ -1959,36 +1965,45 @@ let tree_of_type_decl id decl = tree_of_manifest (Otyp_sum (List.map tree_of_constructor_in_decl cstrs)), decl.type_private, unboxed, - or_null_reexport - | Type_record(lbls, rep) -> + or_null_reexport, + (Option.is_some umc) + | Type_record(lbls, rep, umc) -> tree_of_manifest (Otyp_record (List.map tree_of_label lbls)), decl.type_private, (match rep with Record_unboxed -> true | _ -> false), - false - | Type_record_unboxed_product(lbls, Record_unboxed_product) -> + false, + (Option.is_some umc) + | Type_record_unboxed_product(lbls, Record_unboxed_product, umc) -> tree_of_manifest (Otyp_record_unboxed_product (List.map tree_of_label lbls)), decl.type_private, false, - false + false, + (Option.is_some umc) | Type_open -> tree_of_manifest Otyp_open, decl.type_private, false, + false, false in (* The algorithm for setting [lay] here is described as Case (C1) in Note [When to print jkind annotations] *) - let is_value = Jkind.is_value_for_printing decl.type_jkind in + let is_value = Jkind.is_value_for_printing ~ignore_null:false decl.type_jkind in let otype_jkind = - match ty, is_value, decl.type_has_illegal_crossings with + match ty, is_value, unsafe_mode_crossing with | (Otyp_abstract, false, _) | (_, _, true) -> (* The two cases of (C1) from the Note correspond to Otyp_abstract. Anything but the default must be user-written, so we print the user-written annotation. *) - (* type_has_illegal_crossings corresponds to C1.2 *) + (* unsafe_mode_crossing corresponds to C1.2 *) Some (out_jkind_of_desc (Jkind.get decl.type_jkind)) | _ -> None (* other cases have no jkind annotation *) + in + let attrs = + if unsafe_mode_crossing + then [{ oattr_name = "unsafe_allow_any_mode_crossing" }] + else [] in { otype_name = name; otype_params = args; @@ -1997,7 +2012,8 @@ let tree_of_type_decl id decl = otype_jkind; otype_unboxed = unboxed; otype_or_null_reexport = or_null_reexport; - otype_cstrs = constraints } + otype_cstrs = constraints; + otype_attributes = attrs } let add_type_decl_to_preparation id decl = ignore @@ prepare_decl id decl @@ -2161,7 +2177,7 @@ let tree_of_value_description id decl = (* Important: process the fvs *after* the type; tree_of_type_scheme resets the naming context *) let snap = Btype.snapshot () in - let moda = Mode.Modality.Value.zap_to_floor decl.val_modalities in + let moda = Mode.Modality.Value.zap_to_id decl.val_modalities in let qtvs = extract_qtvs [decl.val_type] in let apparent_arity = let rec count n typ = @@ -2174,7 +2190,7 @@ let tree_of_value_description id decl = let attrs = match Zero_alloc.get decl.val_zero_alloc with | Default_zero_alloc | Ignore_assert_all -> [] - | Check { strict; opt; arity; _ } -> + | Check { strict; opt; arity; custom_error_msg; loc = _; } -> [{ oattr_name = String.concat "" ["zero_alloc"; @@ -2182,6 +2198,9 @@ let tree_of_value_description id decl = if opt then " opt" else ""; if arity = apparent_arity then "" else Printf.sprintf " arity %d" arity; + match custom_error_msg with + | None -> "" + | Some msg -> Printf.sprintf " custom_error_message %S" msg ] }] | Assume { strict; never_returns_normally; arity; _ } -> [{ oattr_name = @@ -2437,7 +2456,6 @@ let dummy = type_attributes = []; type_unboxed_default = false; type_uid = Uid.internal_not_actually_unique; - type_has_illegal_crossings = false; } (** we hide items being defined from short-path to avoid shortening diff --git a/upstream/ocaml_flambda/typing/subst.ml b/upstream/ocaml_flambda/typing/subst.ml index d06366953..b2d261821 100644 --- a/upstream/ocaml_flambda/typing/subst.ml +++ b/upstream/ocaml_flambda/typing/subst.ml @@ -80,17 +80,58 @@ type additional_action_config = | Duplicate_variables | Prepare_for_saving -let with_additional_action = - (* Memoize the built-in jkinds *) - let builtins = +(* Memoize the built-in jkinds, either best or not-best *) +module Builtins_memo : sig + val find : + quality:('l * 'r) jkind_quality -> + ('l * 'r) Jkind.Const.t -> + ('l * 'r) jkind option +end = struct + open Allowance + + type 'd builtins = ('d Jkind.Const.t * 'd jkind) list + + let make_builtins (type l r) (quality : (l * r) jkind_quality) : (l * r) builtins = Jkind.Const.Builtin.all - |> List.map (fun (builtin : _ Jkind.Const.Builtin.t) -> - builtin.jkind, - Jkind.of_const builtin.jkind - ~annotation:(Some { pjkind_loc = Location.none; - pjkind_desc = Abbreviation builtin.name }) - ~why:Jkind.History.Imported) - in + |> List.map (fun (builtin : Jkind.Const.Builtin.t) -> + let const_jkind : (l * r) Jkind.Const.t = + builtin.jkind |> Jkind.Const.allow_left |> Jkind.Const.allow_right in + const_jkind, + Jkind.of_const + const_jkind + ~quality + ~annotation:(Some { pjkind_loc = Location.none; + pjkind_desc = Abbreviation builtin.name }) + ~why:Jkind.History.Imported) + + let best_builtins : (allowed * disallowed) builtins = make_builtins Best + let not_best_builtins : (allowed * allowed) builtins = make_builtins Not_best + + let find + (type l r) + ~(quality : (l * r) jkind_quality) + (const : (l * r) Jkind.Const.t) + : (l * r) jkind option + = + (match quality with + | Best -> + List.find_opt (fun ((builtin, _) : (allowed * disallowed) Jkind.Const.t * _) -> + Jkind.Const.no_with_bounds_and_equal + (const |> Jkind.Const.disallow_right) + (builtin |> Jkind.Const.allow_left)) + best_builtins + |> Option.map (fun (_, jkind) -> jkind |> Jkind.allow_left) + | Not_best -> + List.find_opt (fun (builtin, _) -> + Jkind.Const.no_with_bounds_and_equal + const + (builtin |> Jkind.Const.allow_left |> Jkind.Const.allow_right)) + not_best_builtins + |> Option.map (fun (_, jkind) -> jkind |> Jkind.allow_left |> Jkind.allow_right) + ) +end + +let with_additional_action = fun (config : additional_action_config) s -> (* CR layouts: it would be better to put all this stuff outside this function, but it's in here because we really want to tailor the reason @@ -106,17 +147,12 @@ let with_additional_action = match config with | Duplicate_variables -> Duplicate_variables | Prepare_for_saving -> - let prepare_jkind loc jkind = + let prepare_jkind (type l r) loc (jkind : (l * r) jkind) = match Jkind.get_const jkind with | Some const -> - let builtin = - List.find_opt (fun (builtin, _) -> - Jkind.Const.equal_after_all_inference_is_done const builtin) - builtins - in - begin match builtin with - | Some (_, jkind) -> jkind |> Jkind.allow_left |> Jkind.allow_right - | None -> Jkind.of_const const ~annotation:None ~why:Imported + begin match Builtins_memo.find ~quality:jkind.quality const with + | Some jkind -> jkind + | None -> Jkind.of_const ~quality:jkind.quality const ~annotation:None ~why:Imported end | None -> raise(Error (loc, Unconstrained_jkind_variable)) in @@ -499,14 +535,14 @@ let type_declaration' copy_scope s decl = type_kind = begin match decl.type_kind with Type_abstract r -> Type_abstract r - | Type_variant (cstrs, rep) -> + | Type_variant (cstrs, rep, umc) -> Type_variant (List.map (constructor_declaration copy_scope s) cstrs, - rep) - | Type_record(lbls, rep) -> - Type_record (List.map (label_declaration copy_scope s) lbls, rep) - | Type_record_unboxed_product(lbls, rep) -> + rep, umc) + | Type_record(lbls, rep, umc) -> + Type_record (List.map (label_declaration copy_scope s) lbls, rep, umc) + | Type_record_unboxed_product(lbls, rep, umc) -> Type_record_unboxed_product - (List.map (label_declaration copy_scope s) lbls, rep) + (List.map (label_declaration copy_scope s) lbls, rep, umc) | Type_open -> Type_open end; type_manifest = @@ -517,10 +553,13 @@ let type_declaration' copy_scope s decl = end; type_jkind = begin - match s.additional_action with - | Prepare_for_saving { prepare_jkind } -> + let jkind = + match s.additional_action with + | Prepare_for_saving { prepare_jkind } -> prepare_jkind decl.type_loc decl.type_jkind - | Duplicate_variables | No_action -> decl.type_jkind + | Duplicate_variables | No_action -> decl.type_jkind + in + Jkind.map_type_expr (typexp copy_scope s decl.type_loc) jkind end; type_private = decl.type_private; type_variance = decl.type_variance; @@ -531,7 +570,6 @@ let type_declaration' copy_scope s decl = type_attributes = attrs s decl.type_attributes; type_unboxed_default = decl.type_unboxed_default; type_uid = decl.type_uid; - type_has_illegal_crossings = decl.type_has_illegal_crossings; } let type_declaration s decl = diff --git a/upstream/ocaml_flambda/typing/typeclass.ml b/upstream/ocaml_flambda/typing/typeclass.ml index 8abeeab3e..085302dea 100644 --- a/upstream/ocaml_flambda/typing/typeclass.ml +++ b/upstream/ocaml_flambda/typing/typeclass.ml @@ -1622,7 +1622,6 @@ let temp_abbrev loc id arity uid = type_attributes = []; (* or keep attrs from the class decl? *) type_unboxed_default = false; type_uid = uid; - type_has_illegal_crossings = false; } in (!params, ty, ty_td) @@ -1853,7 +1852,6 @@ let class_infos define_class kind type_attributes = []; (* or keep attrs from cl? *) type_unboxed_default = false; type_uid = dummy_class.cty_uid; - type_has_illegal_crossings = false; } in let (cl_params, cl_ty) = diff --git a/upstream/ocaml_flambda/typing/typecore.ml b/upstream/ocaml_flambda/typing/typecore.ml index 307a968fd..6a6870b85 100644 --- a/upstream/ocaml_flambda/typing/typecore.ml +++ b/upstream/ocaml_flambda/typing/typecore.ml @@ -300,7 +300,8 @@ let error_of_filter_arrow_failure ~explanation ~first ty_fun let type_module = ref ((fun _env _md -> assert false) : - Env.t -> Parsetree.module_expr -> Typedtree.module_expr * Shape.t) + Env.t -> Parsetree.module_expr -> Typedtree.module_expr * Shape.t * + Env.locks) (* Forward declaration, to be filled in by Typemod.type_open *) @@ -889,10 +890,10 @@ let extract_concrete_typedecl_protected env ty = let extract_concrete_record (type rep) (record_form : rep record_form) env ty : (rep record_extraction_result) = match record_form, extract_concrete_typedecl_protected env ty with - | Legacy, Typedecl(p0, p, {type_kind=Type_record (fields, repres)}) -> + | Legacy, Typedecl(p0, p, {type_kind=Type_record (fields, repres, _)}) -> Record_type (p0, p, fields, repres) | Unboxed_product, - Typedecl(p0, p, {type_kind=Type_record_unboxed_product (fields, repres)}) -> + Typedecl(p0, p, {type_kind=Type_record_unboxed_product (fields, repres, _)}) -> Record_type (p0, p, fields, repres) | Legacy, Typedecl(_, _, {type_kind=Type_record_unboxed_product _}) | Unboxed_product, Typedecl(_, _, {type_kind=Type_record _}) -> @@ -907,7 +908,7 @@ type variant_extraction_result = let extract_concrete_variant env ty = match extract_concrete_typedecl_protected env ty with - | Typedecl(p0, p, {type_kind=Type_variant (cstrs, _)}) -> + | Typedecl(p0, p, {type_kind=Type_variant (cstrs, _, _)}) -> Variant_type (p0, p, cstrs) | Typedecl(p0, p, {type_kind=Type_open}) -> Variant_type (p0, p, []) @@ -936,7 +937,8 @@ let mode_cross_left_value env ty mode = let mode = if not (is_principal ty) then mode else let jkind = type_jkind_purely env ty in - let upper_bounds = Jkind.get_modal_upper_bounds jkind in + let jkind_of_type = type_jkind_purely_if_principal env in + let upper_bounds = Jkind.get_modal_upper_bounds ~jkind_of_type jkind in let upper_bounds = Const.alloc_as_value upper_bounds in Value.meet_const upper_bounds mode in @@ -954,7 +956,8 @@ let alloc_mode_cross_to_max_min env ty { monadic; comonadic } = let comonadic = Alloc.Comonadic.disallow_right comonadic in if not (is_principal ty) then { monadic; comonadic } else let jkind = type_jkind_purely env ty in - let upper_bounds = Jkind.get_modal_upper_bounds jkind in + let jkind_of_type = type_jkind_purely_if_principal env in + let upper_bounds = Jkind.get_modal_upper_bounds ~jkind_of_type jkind in let upper_bounds = Alloc.Const.split upper_bounds in let comonadic = Alloc.Comonadic.meet_const upper_bounds.comonadic comonadic in let monadic = Alloc.Monadic.imply upper_bounds.monadic monadic in @@ -963,18 +966,19 @@ let alloc_mode_cross_to_max_min env ty { monadic; comonadic } = (** Mode cross a right mode *) (* This is very similar to Ctype.mode_cross_right. Any bugs here are likely bugs there, too. *) -let expect_mode_cross_jkind jkind (expected_mode : expected_mode) = - let upper_bounds = Jkind.get_modal_upper_bounds jkind in +let expect_mode_cross_jkind env jkind (expected_mode : expected_mode) = + let jkind_of_type = type_jkind_purely_if_principal env in + let upper_bounds = Jkind.get_modal_upper_bounds ~jkind_of_type jkind in let upper_bounds = Const.alloc_as_value upper_bounds in mode_morph (Value.imply upper_bounds) expected_mode let expect_mode_cross env ty (expected_mode : expected_mode) = if not (is_principal ty) then expected_mode else let jkind = type_jkind_purely env ty in - expect_mode_cross_jkind jkind expected_mode + expect_mode_cross_jkind env jkind expected_mode (** The expected mode for objects *) -let mode_object = expect_mode_cross_jkind Jkind.for_object mode_legacy +let mode_object = expect_mode_cross_jkind Env.empty Jkind.for_object mode_legacy let mode_annots_from_pat pat = let modes = @@ -1276,7 +1280,7 @@ let add_module_variables env module_variables = Here, on the other hand, we're calling [type_module] outside the raised level, so there's no extra step to take. *) - let modl, md_shape = + let modl, md_shape, locks = !type_module env Ast_helper.( Mod.unpack ~loc:mv_loc @@ -1294,7 +1298,9 @@ let add_module_variables env module_variables = md_loc = mv_name.loc; md_uid = mv_uid; } in - Env.add_module_declaration ~shape:md_shape ~check:true mv_id pres md env + Env.add_module_declaration ~shape:md_shape ~check:true mv_id pres md + (* the [locks] is always empty, but typecore doesn't need to know *) + ~locks env end ) env module_variables_as_list @@ -5287,6 +5293,7 @@ let add_zero_alloc_attribute expr attributes = let default_arity = function_arity fn.params fn.body in let za = get_zero_alloc_attribute ~in_signature:false ~default_arity attributes + ~on_application:false in begin match za with | Default_zero_alloc -> expr @@ -5877,6 +5884,7 @@ and type_expect_ in let zero_alloc = Builtin_attributes.get_zero_alloc_attribute ~in_signature:false + ~on_application:true ~default_arity:(List.length args) sfunct.pexp_attributes |> Builtin_attributes.zero_alloc_attribute_only_assume_allowed in @@ -6406,7 +6414,7 @@ and type_expect_ with_local_level begin fun () -> let modl, pres, id, new_env = Typetexp.TyVarEnv.with_local_scope begin fun () -> - let modl, md_shape = !type_module env smodl in + let modl, md_shape, locks = !type_module env smodl in Mtype.lower_nongen lv modl.mod_type; let pres = match modl.mod_type with @@ -6427,7 +6435,7 @@ and type_expect_ | Some name -> let id, env = Env.enter_module_declaration - ~scope ~shape:md_shape name pres md env + ~scope ~shape:md_shape name pres md ~locks env in Some id, env in @@ -7018,10 +7026,51 @@ and type_constraint_expect ret, ty, exp_extra and type_ident env ?(recarg=Rejected) lid = - let path, desc, actual_mode = Env.lookup_value ~loc:lid.loc lid.txt env in - (* Mode crossing here is needed only because of the strange behaviour of - [type_let] - it checks the LHS before RHS. Had it checks the RHS before LHS, - identifiers would be mode crossed when being added to the environment. *) + let path, desc, mode, locks = Env.lookup_value ~loc:lid.loc lid.txt env in + (* We cross modes when typing [Ppat_ident], before adding new variables into + the environment. Therefore, one might think all values in the environment are + already mode-crossed. That is not true for several reasons: + - [type_let] checks the LHS and adds bound variables to the environment + without the type information from the RHS. + - The identifer is [M.x], whose signature might not reflect mode crossing. + + Therefore, we need to cross modes upon look-up. Ideally that should be done in + [Env], but that is difficult due to cyclic dependency between jkind and env. *) + let mode = mode_cross_left_value env desc.val_type mode in + (* There can be locks between the definition and a use of a value. For + example, if a function closes over a value, there will be Closure_lock between + the value's definition and the value's use in the function. Walking the locks + will constrain the function and the value's modes accordingly. + + Note that the value could be from a module, and we have choices to make: + - We can walk the locks using the module's mode. That means the closures are + closing over the module. + - We can walk the locks using the value's mode. That means the closures are + closing over the value. + + We pick the second for better ergonomics. It could be dangerous as it doesn't + reflect the real runtime behaviour. With the current set-up, it is sound: + + - Locality: Modules are always global (the strongest mode), so it's fine. + - Linearity: Modules are always many (the strongest mode), so it's fine. + - Portability: Closing over a nonportable module only to extract a portable + value is fine. + - Yielding: Modules are always unyielding (the strongest mode), so it's fine. + - All monadic axes: values are in a module via some join_with_m modality. + Meanwhile, walking locks causes the mode to go through several join_with_m + where [m] is the mode of a closure lock. Since join is commutative and + associative, the order of which we apply those join does not matter. + *) + (* CR modes: codify the above per-axis argument. *) + let actual_mode = + Env.walk_locks ~loc:lid.loc ~env ~item:Value ~lid:lid.txt mode + (Some desc.val_type) locks + in + (* We need to cross again, because the monadic fragment might have been + weakened by the locks. Ideally, the first crossing only deals with comonadic, + and the second only deals with monadic. *) + (* CR layouts: allow to cross comonadic fragment and monadic fragment + separately. *) let actual_mode = actual_mode_cross_left env desc.val_type actual_mode in let is_recarg = match get_desc desc.val_type with @@ -8033,10 +8082,14 @@ and type_apply_arg env ~app_loc ~funct ~index ~position_and_mode ~partial_app (l let arg = type_expect env expected_mode sarg (mk_expected ty_arg_mono) in - if is_optional lbl then - (* CR layouts v5: relax value requirement *) - unify_exp env arg - (type_option(newvar Predef.option_argument_jkind)); + (match lbl with + | Labelled _ | Nolabel -> () + | Optional _ -> + (* CR layouts v5: relax value requirement *) + unify_exp env arg + (type_option(newvar Predef.option_argument_jkind)) + | Position _ -> + unify_exp env arg (instance Predef.type_lexing_position)); (lbl, Arg (arg, mode_arg, sort_arg)) | Arg (Known_arg { sarg; ty_arg; ty_arg0; mode_arg; wrapped_in_some; sort_arg }) -> @@ -8161,11 +8214,7 @@ and type_application env app_loc expected_mode position_and_mode let ty_ret, mode_ret, args, position_and_mode = with_local_level_if_principal begin fun () -> let sargs = List.map - (* Application will never contain Position labels, so no need to pass - argument type here. When checking against the function type, - Labelled arguments will be matched up to Position parameters - based on label names *) - (fun (label, e) -> Typetexp.transl_label label None, e) sargs + (fun (label, e) -> Typetexp.transl_label_from_expr label e) sargs in let ty_ret, mode_ret, untyped_args = collect_apply_args env funct ignore_labels ty (instance ty) @@ -9112,7 +9161,7 @@ and type_let ?check ?check_strict ?(force_toplevel = false) List.iter (fun pv -> Ctype.check_and_update_generalized_ty_jkind - ~name:pv.pv_id ~loc:pv.pv_loc pv.pv_type) + ~name:pv.pv_id ~loc:pv.pv_loc env pv.pv_type) pvs; List.iter2 (fun (_, _, expected_ty) (exp, vars) -> @@ -9141,7 +9190,7 @@ and type_let ?check ?check_strict ?(force_toplevel = false) | Tpat_alias(_, id, _, _, _) -> Some id | _ -> None in Ctype.check_and_update_generalized_ty_jkind - ?name:pat_name ~loc:exp.exp_loc exp.exp_type + ?name:pat_name ~loc:exp.exp_loc env exp.exp_type in List.iter2 update_exp_jkind mode_pat_typ_list exp_list; end @@ -9505,6 +9554,7 @@ and type_n_ary_function end; let zero_alloc = Builtin_attributes.get_zero_alloc_attribute ~in_signature:false + ~on_application:false ~default_arity:syntactic_arity attributes in let zero_alloc = @@ -9926,7 +9976,7 @@ let type_expression env jkind sexp = Pexp_ident lid -> let loc = sexp.pexp_loc in (* Special case for keeping type variables when looking-up a variable *) - let (_path, desc, _actual_mode) = + let (_path, desc, _, _) = Env.lookup_value ~use:false ~loc lid.txt env in {exp with exp_type = desc.val_type} diff --git a/upstream/ocaml_flambda/typing/typecore.mli b/upstream/ocaml_flambda/typing/typecore.mli index 36c345918..35a4a6bef 100644 --- a/upstream/ocaml_flambda/typing/typecore.mli +++ b/upstream/ocaml_flambda/typing/typecore.mli @@ -332,7 +332,8 @@ val report_error: loc:Location.t -> Env.t -> error -> Location.error (* Forward declaration, to be filled in by Typemod.type_module *) val type_module: - (Env.t -> Parsetree.module_expr -> Typedtree.module_expr * Shape.t) ref + (Env.t -> Parsetree.module_expr -> Typedtree.module_expr * Shape.t * + Env.locks) ref (* Forward declaration, to be filled in by Typemod.type_open *) val type_open: (?used_slot:bool ref -> override_flag -> Env.t -> Location.t -> diff --git a/upstream/ocaml_flambda/typing/typedecl.ml b/upstream/ocaml_flambda/typing/typedecl.ml index 9f50bca7d..eb08466c8 100644 --- a/upstream/ocaml_flambda/typing/typedecl.ml +++ b/upstream/ocaml_flambda/typing/typedecl.ml @@ -146,6 +146,9 @@ type error = ; expected: Path.t } | Non_abstract_reexport of Path.t + | Unsafe_mode_crossing_on_invalid_type_kind + | Unsafe_mode_crossing_with_with_bounds + | Illegal_baggage of jkind_l open Typedtree @@ -267,7 +270,21 @@ let enter_type ?abstract_abbrevs rec_flag env sdecl (id, uid) = let type_jkind = Jkind.of_type_decl_default ~context:(Type_declaration path) - ~default:any + (* CR layouts v2.8: This next line is truly terrible. But I think it's OK + for now: it will mean that any [with] constraints get interpreted to + mean that the thing does not cross that mode. That's OK: the jkind + produced here can be an overapproximation of the correct jkind (note + that [any] is the default). Indeed the only reason (I think) we need a + non-[any] jkind here is to produce better error messages. + + Doing better here will be annoying, because a type is in scope in its + own jkind... and yet we don't have an env that we can use at this + point. I think probably the solution will be to have + [Jkind.of_type_decl_default] just return [max] every time it sees a + [with]-kind... which basically just does this [type_exn] trick but much + more sanely. *) + ~transl_type:(fun _ -> Predef.type_exn) + ~default:(Jkind.disallow_right any) sdecl in let abstract_source, type_manifest = @@ -302,7 +319,6 @@ in type_attributes = sdecl.ptype_attributes; type_unboxed_default = false; type_uid = uid; - type_has_illegal_crossings = false; } in add_type ~check:true id decl env @@ -418,29 +434,13 @@ let set_private_row env loc p decl = should be replaced with checks at the places where values of those types are constructed. We've been conservative here in the first version. This is the same issue as with arrows. *) -let check_representable ~why ~allow_unboxed env loc kloc typ = +let check_representable ~why env loc kloc typ = match Ctype.type_sort ~why ~fixed:false env typ with - (* CR layouts v5: This is a convenient place to rule out non-value types in - structures that don't support them yet. (A callsite passes - [~allow_unboxed:true] to indicate that non-value types are allowed.) - When we support mixed blocks everywhere, this [check_representable] - will have outlived its usefulness and we can delete it. - *) - (* CR layouts v2.5: This rules out non-value types in [@@unboxed] types. No - real need to rule that out - I just haven't had time to write tests for it - yet. *) - | Ok s -> begin - if not allow_unboxed then - match Jkind.Sort.default_to_value_and_get s with - | Base (Void | Value) -> () - | Base (Float64 | Float32 | Word | Bits32 | Bits64 | Vec128) - | Product _ as const -> - raise (Error (loc, Invalid_jkind_in_block (typ, const, kloc))) - end + | Ok _ -> () | Error err -> raise (Error (loc,Jkind_sort {kloc; typ; err})) let transl_labels (type rep) ~(record_form : rep record_form) ~new_var_jkind - ~allow_unboxed env univars closed lbls kloc = + env univars closed lbls kloc = assert (lbls <> []); let all_labels = ref String.Set.empty in List.iter @@ -481,7 +481,7 @@ let transl_labels (type rep) ~(record_form : rep record_form) ~new_var_jkind let ty = ld.ld_type.ctyp_type in let ty = match get_desc ty with Tpoly(t,[]) -> t | _ -> ty in check_representable ~why:(Label_declaration ld.ld_id) - ~allow_unboxed env ld.ld_loc kloc ty; + env ld.ld_loc kloc ty; {Types.ld_id = ld.ld_id; ld_mutable = ld.ld_mutable; ld_modalities = ld.ld_modalities; @@ -496,8 +496,7 @@ let transl_labels (type rep) ~(record_form : rep record_form) ~new_var_jkind lbls in lbls, lbls' -let transl_types_gf ~new_var_jkind ~allow_unboxed - env loc univars closed cal kloc = +let transl_types_gf ~new_var_jkind env loc univars closed cal kloc = let mk arg = let cty = transl_simple_type ~new_var_jkind env ?univars ~closed @@ -511,7 +510,7 @@ let transl_types_gf ~new_var_jkind ~allow_unboxed in let tyl_gfl = List.map mk cal in let tyl_gfl' = List.mapi (fun idx (ca : Typedtree.constructor_argument) -> - check_representable ~why:(Constructor_declaration idx) ~allow_unboxed + check_representable ~why:(Constructor_declaration idx) env loc kloc ca.ca_type.ctyp_type; { Types.ca_modalities = ca.ca_modalities; @@ -527,19 +526,14 @@ let transl_constructor_arguments ~new_var_jkind ~unboxed env loc univars closed = function | Pcstr_tuple l -> let flds, flds' = - (* CR layouts: we forbid [@@unboxed] variants from being - non-value, see comment in [check_representable]. *) - transl_types_gf ~new_var_jkind ~allow_unboxed:(not unboxed) + transl_types_gf ~new_var_jkind env loc univars closed l (Cstr_tuple { unboxed }) in Types.Cstr_tuple flds', Cstr_tuple flds | Pcstr_record l -> let lbls, lbls' = - (* CR layouts: we forbid [@@unboxed] variants from being - non-value, see comment in [check_representable]. *) transl_labels ~record_form:Legacy ~new_var_jkind - ~allow_unboxed:(not unboxed) env univars closed l - (Inlined_record { unboxed }) + env univars closed l (Inlined_record { unboxed }) in Types.Cstr_record lbls', Cstr_record lbls @@ -732,6 +726,15 @@ let verify_unboxed_attr unboxed_attr sdecl = which looks through unboxed types. So it's all OK for users, but it's unfortunate that the stored jkind on [t7_2] is imprecise. + The way this interacts with checking of with-bounds is somewhat subtle and complex. + With-bounds for mutually recursive type declarations need to be normalized and checked + in a pass /after/ computing the the proper (best) jkinds for all the types and storing + them in the environment, so that they can be queried during normalization. But it's + important that we call [Jkind.Layout.sub] on each type /eagerly/, so that its sort + variables (which might be referenced from the jkinds of other types) get filled in with + the right sort. So we do that early, in [update_decl_jkind], then check the full jkind + against the dummy jkind later, after normalizing in [transl_type_decl]. + (* CR layouts: see if we can do better here. *) *) @@ -785,8 +788,28 @@ let transl_declaration env sdecl (id, uid) = | _ -> false, false (* Not unboxable, mark as boxed *) in verify_unboxed_attr unboxed_attr sdecl; + (* CR layouts v2.8: This next call to [transl_simple_type] probably can loop + because it will do perhaps-circular jkind checks. But actually I think the + same problem exists in e.g. record fields. We should probably look into this. *) + let transl_type sty = + (* CR layouts v2.8: The [~new_var_jkind:Any] is weird. The type is closed, + and so there shouldn't be any new vars. Investigate. *) + let cty = + Ctype.with_local_level begin fun () -> + Typetexp.transl_simple_type env ~new_var_jkind:Any + ~closed:true Mode.Alloc.Const.legacy sty + end + (* This call to [generalize_structure] is necessary so that copying + during instantiation traverses inside of any type constructors in the + [with]-bound. It's also necessary because the variables here are at + generic level, and so any containers of them should be, too! *) + ~post:(fun cty -> Ctype.generalize_structure cty.ctyp_type) + in + cty.ctyp_type (* CR layouts v2.8: Do this more efficiently. Or probably + add with-kinds to Typedtree. *) + in let jkind_from_annotation, jkind_annotation = - match Jkind.of_type_decl ~context:(Type_declaration path) sdecl with + match Jkind.of_type_decl ~context:(Type_declaration path) ~transl_type sdecl with | Some (jkind, annot) -> Some jkind, annot | None -> None, None @@ -823,10 +846,7 @@ let transl_declaration env sdecl (id, uid) = { definition = path; expected = Predef.path_or_null })) in let type_kind = Predef.or_null_kind param in - let jkind = - Jkind.Builtin.value_or_null - ~why:(Primitive Predef.ident_or_null) - in + let jkind = Predef.or_null_jkind in Ttype_abstract, type_kind, jkind | (Ptype_variant _ | Ptype_record _ | Ptype_record_unboxed_product _ | Ptype_open) @@ -888,8 +908,7 @@ let transl_declaration env sdecl (id, uid) = let tcstrs, cstrs = List.split (List.map make_cstr scstrs) in let rep, jkind = if unbox then - Variant_unboxed, - Jkind.of_new_legacy_sort ~why:Old_style_unboxed_type + Variant_unboxed, Jkind.of_new_legacy_sort ~why:Old_style_unboxed_type else (* We mark all arg sorts "void" here. They are updated later, after the circular type checks make it safe to check sorts. @@ -910,14 +929,11 @@ let transl_declaration env sdecl (id, uid) = ), Jkind.Builtin.value ~why:Boxed_variant in - Ttype_variant tcstrs, Type_variant (cstrs, rep), jkind + Ttype_variant tcstrs, Type_variant (cstrs, rep, None), jkind | Ptype_record lbls -> let lbls, lbls' = - (* CR layouts: we forbid [@@unboxed] records from being - non-value, see comment in [check_representable]. *) transl_labels ~record_form:Legacy ~new_var_jkind:Any - ~allow_unboxed:(not unbox) env None true lbls - (Record { unboxed = unbox }) + env None true lbls (Record { unboxed = unbox }) in let rep, jkind = if unbox then @@ -931,25 +947,26 @@ let transl_declaration env sdecl (id, uid) = Record_boxed (Array.make (List.length lbls) Jkind.Sort.Const.void), Jkind.Builtin.value ~why:Boxed_record in - Ttype_record lbls, Type_record(lbls', rep), jkind + Ttype_record lbls, Type_record(lbls', rep, None), jkind | Ptype_record_unboxed_product lbls -> Language_extension.assert_enabled ~loc:sdecl.ptype_loc Layouts Language_extension.Stable; let lbls, lbls' = transl_labels ~record_form:Unboxed_product ~new_var_jkind:Any - ~allow_unboxed:true env None true lbls Record_unboxed_product + env None true lbls Record_unboxed_product in (* The jkinds below, and the ones in [lbls], are dummy jkinds which are replaced and made to correspond to each other in [update_decl_jkind]. *) - let jkind_ls = - List.map (fun _ -> Jkind.Builtin.any ~why:Initial_typedecl_env) lbls + let jkind = + Jkind.Builtin.product_of_sorts ~why:Unboxed_record + (List.length lbls) in - let jkind = Jkind.Builtin.product ~why:Unboxed_record jkind_ls in Ttype_record_unboxed_product lbls, - Type_record_unboxed_product(lbls', Record_unboxed_product), jkind + Type_record_unboxed_product(lbls', Record_unboxed_product, None), jkind | Ptype_open -> - Ttype_open, Type_open, Jkind.Builtin.value ~why:Extensible_variant + Ttype_open, Type_open, + Jkind.Builtin.value ~why:Extensible_variant in let jkind = (* - If there's an annotation, we use that. It's checked against @@ -968,20 +985,23 @@ let transl_declaration env sdecl (id, uid) = | None, None -> jkind_default in let jkind = - (* Hack: unboxed records are given a product-of-[any]s jkind + (* Hack: unboxed records are given a product-of-[any]s layout when they would otherwise be given [any]. This allows [estimate_type_jkind] to give an estimate that's just barely good enough, such that [constain_type_jkind] can always decompose the product of [any]s and recurse on the labels. See https://github.com/ocaml-flambda/flambda-backend/pull/3399. *) - match sdecl.ptype_kind with - | Ptype_record_unboxed_product lbls - when Jkind.has_layout_any (Jkind.terrible_relax_l jkind) -> - Jkind.Builtin.product ~why:Unboxed_record - (List.map (fun _ -> jkind) lbls) - | Ptype_abstract | Ptype_variant _ | Ptype_record _ - | Ptype_record_unboxed_product _ | Ptype_open -> jkind + match kind with + | Type_record_unboxed_product _ -> + begin match Jkind.get_layout jkind with + | Some Any -> + (* [jkind_default] has just what we need here *) + Jkind.set_layout jkind (Jkind.extract_layout jkind_default) + | _ -> jkind + end + | Type_abstract _ | Type_variant _ | Type_record _ + | Type_open -> jkind in let arity = List.length params in let decl = @@ -999,7 +1019,6 @@ let transl_declaration env sdecl (id, uid) = type_attributes = sdecl.ptype_attributes; type_unboxed_default = unboxed_default; type_uid = uid; - type_has_illegal_crossings = false; } in (* Check constraints *) List.iter @@ -1036,10 +1055,10 @@ let transl_declaration env sdecl (id, uid) = let typ_shape = let uid = decl.typ_type.type_uid in match decl.typ_type.type_kind with - | Type_variant (cstrs, _) -> Shape.str ~uid (shape_map_cstrs cstrs) - | Type_record (labels, _) -> + | Type_variant (cstrs, _, _) -> Shape.str ~uid (shape_map_cstrs cstrs) + | Type_record (labels, _, _) -> Shape.str ~uid (shape_map_labels labels) - | Type_record_unboxed_product (labels, _) -> + | Type_record_unboxed_product (labels, _, _) -> Shape.str ~uid (shape_map_unboxed_labels labels) | Type_abstract _ | Type_open -> Shape.leaf uid in @@ -1121,7 +1140,7 @@ let check_constraints env sdecl (_, decl) = can't introduce new variables in the kind. *) | Type_variant _ when Builtin_attributes.has_or_null_reexport decl.type_attributes -> () - | Type_variant (l, _rep) -> + | Type_variant (l, _rep, _umc) -> let find_pl = function Ptype_variant pl -> pl | Ptype_record _ | Ptype_record_unboxed_product _ | Ptype_abstract @@ -1158,7 +1177,7 @@ let check_constraints env sdecl (_, decl) = | _ -> () ) l - | Type_record (l, _) -> + | Type_record (l, _, _) -> let find_pl = function | Ptype_record pl -> pl | Ptype_record_unboxed_product _ | Ptype_variant _ | Ptype_abstract @@ -1167,7 +1186,7 @@ let check_constraints env sdecl (_, decl) = in let pl = find_pl sdecl.ptype_kind in check_constraints_labels env visited l pl - | Type_record_unboxed_product (l, _) -> + | Type_record_unboxed_product (l, _, _) -> let find_pl = function | Ptype_record_unboxed_product pl -> pl | Ptype_record _ | Ptype_variant _ | Ptype_abstract | Ptype_open -> @@ -1191,14 +1210,82 @@ let check_constraints env sdecl (_, decl) = immediate, we should check the manifest is immediate). Also, update the resulting jkind to match the manifest. *) let narrow_to_manifest_jkind env loc decl = - match decl.type_manifest with - | None -> decl - | Some ty -> - let jkind' = Ctype.type_jkind_purely env ty in - match Jkind.sub_jkind_l jkind' decl.type_jkind with - | Ok jkind' -> { decl with type_jkind = jkind' } - | Error v -> - raise (Error (loc, Jkind_mismatch_of_type (ty,v))) + match decl.type_manifest, decl.type_kind with + | None, _ -> decl + | Some _, (Type_record _ | Type_record_unboxed_product _ | Type_variant _ | Type_open) + when not (Builtin_attributes.has_or_null_reexport decl.type_attributes) + -> + (* If there's both a manifest and a non-abstract kind, there's no reason to check that + the jkind of the manifest matches the annotation ([decl.type_jkind]). This is + because the manifest's jkind is exactly the kind's jkind, and we've already checked + and updated [type_jkind] based on the kind. *) + decl + | Some ty, _ -> + (* CR layouts v2.8: Remove this use of [type_jkind_purely], which is slow + and effectful. But we cannot do so easily, sadly. I tried using + [estimate_type_jkind] here instead, but this runs aground with mutually + recursive declarations with manifests. Example: + + {[ + type s1 = float# + and s2 = s1 + ]} + + We assign jkind [any] to both [s1] and [s2] in [transl_declaration], + because we really can't do better at that point. But then when we get + here, [estimate_type_jkind] on [s1] returns [any] -- it won't expand + the manifest to get [float64]. That's not unsound, because a jkind is + always just an approximation. But it does mean that we need to load more + cmi files in practice to get the "real" jkind. This was observed when + compiling Jane Street's codebase, requiring lots more dependencies to be + added. Boo. [type_jkind_purely] avoids this problem, by looking deeply + to find the [float#] and thus the [float64] jkind. + + The solution I have in mind here is to change the jkind assigned in + [transl_declaration] to be [kind_of 'a], where ['a] is the type variable + invented in [enter_type]; that variable can be thought of an empty vessel + that accumulates information about jkinds from usages. It also, + critically, gets unified with the actual type being defined, in + [update_type], which happens before [narrow_to_manifest_jkind]. If we use + [kind_of 'a] in [transl_declaration], then [decl.type_jkind] will be + [kind_of 'a] here, and that will force the [constrain_type_jkind] below + to work just hard enough to find a jkind less than [kind_of 'a] -- + exactly what we want to record in the final [type_jkind] of the decl. + (This will require changing [constrain_type_jkind] to return its best + jkind, but that is easy to do, and indeed used to be the case until the + result was never used anywhere.) + + Do not try this (that is, removing the use of [type_jkind_purely]) before + removing the "horrible hack" just below, as that horrible hack sometimes + avoids calling [constrain_type_jkind], which is necessary for the plan + above to work. *) + let manifest_jkind = Ctype.type_jkind_purely env ty in + (* CR layouts v2.8: Remove this horrible hack. In practice, this + [try_allow_r] fails in the case of a record re-export, because the jkind + from the record has been calculated and put in decl.type_jkind at this + point. So we need to use the deeply broken [type_jkind_purely] and then + [sub_jkind_l] here. The right way forward is to parameterize + [constrain_type_jkind] over the [l]-ness of its bound. But probably not + until we have proper subsumption working, as this hack will likely hold + up for a little while. *) + begin match Jkind.try_allow_r decl.type_jkind with + | None -> begin + let type_equal = Ctype.type_equal env in + let jkind_of_type ty = Some (Ctype.type_jkind_purely env ty) in + match + Jkind.sub_jkind_l ~type_equal ~jkind_of_type + manifest_jkind decl.type_jkind + with + | Ok () -> () + | Error v -> raise (Error (loc, Jkind_mismatch_of_type (ty,v))) + end + | Some type_jkind -> begin + match Ctype.constrain_type_jkind env ty type_jkind with + | Ok () -> () + | Error v -> raise (Error (loc, Jkind_mismatch_of_type (ty,v))) + end + end; + { decl with type_jkind = manifest_jkind } (* Check that the type expression (if present) is compatible with the kind. If both a variant/record definition and a type equation are given, @@ -1209,14 +1296,6 @@ let check_kind_coherence env loc dpath decl = | (Type_variant _ | Type_record _ | Type_record_unboxed_product _ | Type_open), Some ty -> - if !Clflags.allow_illegal_crossing then begin - let jkind' = Ctype.type_jkind_purely env ty in - begin match Jkind.sub_jkind_l jkind' decl.type_jkind with - | Ok _ -> () - | Error v -> - raise (Error (loc, Jkind_mismatch_of_type (ty,v))) - end - end; begin match get_desc ty with | Tconstr(path, args, _) -> begin @@ -1261,6 +1340,7 @@ let check_abbrev env sdecl (id, decl) = *) (* [update_label_sorts] additionally returns whether all the jkinds were void, and the jkinds of the labels *) +(* CR reisenberg: remove all_void return *) let update_label_sorts env loc lbls named = (* [named] is [Some sorts] for top-level records (we will update the sorts) and [None] for inlined records. *) @@ -1371,7 +1451,8 @@ module Element_repr = struct else let layout = Jkind.get_layout_defaulting_to_value jkind in let sort = Jkind.Layout.Const.get_sort layout in - let externality_upper_bound = Jkind.get_externality_upper_bound jkind in + let jkind_of_type ty = Some (Ctype.type_jkind_purely env ty) in + let externality_upper_bound = Jkind.get_externality_upper_bound ~jkind_of_type jkind in let base = match sort with | None -> Misc.fatal_error "Element_repr.classify: unexpected abstract layout" @@ -1523,16 +1604,22 @@ let update_constructor_representation Constructor_mixed shape +let add_types_to_env decls shapes env = + List.fold_right2 + (fun (id, decl) shape env -> + add_type ~check:true ~shape id decl env) + decls shapes env + (* This function updates jkind stored in kinds with more accurate jkinds. It is called after the circularity checks and the delayed jkind checks have happened, so we can fully compute jkinds of types. - This function is an important part - of correctness, as it also checks that the jkind computed from a kind - is consistent (i.e. a subjkind of) any jkind annotation. - See Note [Default jkinds in transl_declaration]. + This function does not do any /checks/ on the jkind after performing the update; the + annotation, for example, is checked in the caller, [update_decls_jkind], so that + mutually recursive type decls see each others' best kinds during normalization and + subsumption *) -let update_decl_jkind env dpath decl = +let update_decl_jkind env id decl = let open struct (* For tracking what types appear in record blocks. *) type element_repr_summary = @@ -1558,10 +1645,10 @@ let update_decl_jkind env dpath decl = let ld_sort = Jkind.Sort.default_to_value_and_get sort in [{lbl with ld_sort}], Record_unboxed, jkind | _, Record_boxed sorts -> - let lbls, all_void, jkinds = + let lbls, _all_void, jkinds = update_label_sorts env loc lbls (Some sorts) in - let jkind = Jkind.for_boxed_record ~all_void in + let jkind = Jkind.for_boxed_record lbls in let reprs = List.map2 (fun lbl jkind -> @@ -1692,8 +1779,8 @@ let update_decl_jkind env dpath decl = assert false end | cstrs, Variant_boxed cstr_shapes -> - let (_,cstrs,all_voids) = - List.fold_left (fun (idx,cstrs,all_voids) cstr -> + let (_,cstrs) = + List.fold_left (fun (idx,cstrs) cstr -> let arg_sorts = match cstr_shapes.(idx) with | Constructor_uniform_value, arg_sorts -> arg_sorts @@ -1702,7 +1789,7 @@ let update_decl_jkind env dpath decl = "Typedecl.update_variant_kind doesn't expect mixed \ constructor as input" in - let cd_args, all_void, jkinds = + let cd_args, _all_void, jkinds = update_constructor_arguments_sorts env cstr.Types.cd_loc cstr.Types.cd_args (Some arg_sorts) in @@ -1717,90 +1804,108 @@ let update_decl_jkind env dpath decl = | Constructor_mixed _ -> cstr_shapes.(idx) <- cstr_repr, arg_sorts in let cstr = { cstr with Types.cd_args } in - (idx+1,cstr::cstrs,all_voids && all_void) - ) (0,[],true) cstrs + (idx+1,cstr::cstrs) + ) (0,[]) cstrs in - let jkind = Jkind.for_boxed_variant ~all_voids in + let jkind = Jkind.for_boxed_variant cstrs in List.rev cstrs, rep, jkind | (([] | (_ :: _)), Variant_unboxed | _, Variant_extensible) -> assert false in - let add_crossings jkind = - match !Clflags.allow_illegal_crossing with - | true -> Jkind.add_portability_and_contention_crossing ~from:decl.type_jkind jkind - | false -> jkind, false - in - let new_decl, new_jkind = match decl.type_kind with - | Type_abstract _ -> decl, decl.type_jkind + let new_decl = + match decl.type_kind with + | Type_abstract _ -> + (* Abstract types should never have quality=best, but let's double check that here + just to be safe *) + assert (not (Jkind.is_best decl.type_jkind)); + decl | Type_open -> - let type_jkind = Jkind.Builtin.value ~why:Extensible_variant in - { decl with type_jkind }, type_jkind - | Type_record (lbls, rep) -> + let type_jkind = + Jkind.Builtin.value ~why:Extensible_variant + (* It's unlikely we'll ever be able to give better kinds than [value] to + extensible variants, so we're not worried about backwards compatibility if we + mark them as best here, and we want to be able to normalize them away *) + (* See Note [Quality of jkinds during inference] for more information about when + we mark jkinds as best *) + |> Jkind.mark_best + in + { decl with type_jkind } + | Type_record (lbls, rep, umc) -> let lbls, rep, type_jkind = update_record_kind decl.type_loc lbls rep in - let type_jkind, type_has_illegal_crossings = add_crossings type_jkind in - { decl with type_kind = Type_record (lbls, rep); - type_jkind; - type_has_illegal_crossings }, - type_jkind - (* CR layouts v3.0: remove this once [or_null] is [Variant_with_null]. + (* See Note [Quality of jkinds during inference] for more information about when we + mark jkinds as best *) + let type_jkind = Jkind.mark_best type_jkind in + { decl with type_kind = Type_record (lbls, rep, umc); type_jkind } + (* CR layouts v3.0: handle this case in [update_variant_jkind] when + [Variant_with_null] introduced. No updating required for [or_null_reexport], and we must not incorrectly override the jkind to [non_null]. *) - | Type_record_unboxed_product (lbls, rep) -> + | Type_record_unboxed_product (lbls, rep, umc) -> begin match rep with | Record_unboxed_product -> - let lbls, jkinds = + let lbls = List.map (fun (Types.{ld_type} as lbl) -> let jkind = Ctype.type_jkind env ld_type in (* This next line is guaranteed to be OK because of a call to [check_representable] *) let sort = Jkind.sort_of_jkind jkind in let ld_sort = Jkind.Sort.default_to_value_and_get sort in - {lbl with ld_sort}, jkind + {lbl with ld_sort} ) lbls - |> List.split in - let type_jkind = Jkind.Builtin.product ~why:Unboxed_record jkinds in - let type_jkind, type_has_illegal_crossings = - add_crossings type_jkind in - { decl with type_kind = Type_record_unboxed_product (lbls, rep); - type_jkind; - type_has_illegal_crossings }, - type_jkind + let type_jkind = + Jkind.for_unboxed_record + ~jkind_of_type:(Ctype.type_jkind env) + ~jkind_of_first_type:(fun () -> + match lbls with + | [lbl] -> Ctype.type_jkind env lbl.ld_type + | [] | _ :: _ :: _ -> Misc.fatal_error + "[for_unboxed_record] called [jkind_of_first_type] \ + for non-singleton record.") + lbls + in + (* See Note [Quality of jkinds during inference] for more information about when we + mark jkinds as best *) + let type_jkind = Jkind.mark_best type_jkind in + { decl with type_kind = Type_record_unboxed_product (lbls, rep, umc); + type_jkind } end | Type_variant _ when Builtin_attributes.has_or_null_reexport decl.type_attributes -> - decl, decl.type_jkind - | Type_variant (cstrs, rep) -> + decl + | Type_variant (cstrs, rep, umc) -> let cstrs, rep, type_jkind = update_variant_kind cstrs rep in - let type_jkind, type_has_illegal_crossings = add_crossings type_jkind in - { decl with type_kind = Type_variant (cstrs, rep); - type_jkind; - type_has_illegal_crossings }, - type_jkind + (* See Note [Quality of jkinds during inference] for more information about when we + mark jkinds as best *) + let type_jkind = Jkind.mark_best type_jkind in + { decl with type_kind = Type_variant (cstrs, rep, umc); type_jkind } in - (* check that the jkind computed from the kind matches the jkind - annotation, which was stored in decl.type_jkind *) - if new_jkind != decl.type_jkind then - (* CR layouts v2.8: Consider making a function that doesn't compute - histories for this use-case, which doesn't need it. *) - begin match Jkind.sub_jkind_l new_jkind decl.type_jkind with - | Ok _ -> () - | Error err -> - raise(Error(decl.type_loc, Jkind_mismatch_of_path (dpath,err))) - end; - new_decl - -let update_decls_jkind_reason decls = + (* Check the layout here, both to check it, but more importantly to fill in any sort + variables in the original decl's jkind, which might be shared with the jkinds of + other types in a (maybe mutually recursive) type declaration. See Note [Default + jkinds in transl_declaration]) *) + match + Jkind.Layout.sub new_decl.type_jkind.jkind.layout decl.type_jkind.jkind.layout + with + | Not_le -> + raise (Error ( + decl.type_loc, + Jkind_mismatch_of_path ( + Pident id, + Jkind.Violation.of_ (Not_a_subjkind (new_decl.type_jkind, decl.type_jkind))))) + | Less | Equal -> new_decl + +let update_decls_jkind_reason env decls = List.map (fun (id, decl) -> let update_generalized = Ctype.check_and_update_generalized_ty_jkind - ~name:id ~loc:decl.type_loc + ~name:id ~loc:decl.type_loc env in List.iter update_generalized decl.type_params; Btype.iter_type_expr_kind update_generalized decl.type_kind; @@ -1814,7 +1919,20 @@ let update_decls_jkind_reason decls = let update_decls_jkind env decls = List.map - (fun (id, decl) -> (id, update_decl_jkind env (Pident id) decl)) + (fun (id, decl) -> + let allow_any_crossing = + Builtin_attributes.has_unsafe_allow_any_mode_crossing decl.type_attributes + in + + (* Check that the attribute is valid, if set (unconditionally, for consistency). *) + if allow_any_crossing then begin + match decl.type_kind with + | Type_abstract _ | Type_open -> + raise(Error(decl.type_loc, Unsafe_mode_crossing_on_invalid_type_kind)) + | _ -> () + end; + + (id, decl.type_jkind, allow_any_crossing, update_decl_jkind env id decl)) decls @@ -2329,11 +2447,105 @@ let check_redefined_unit (td: Parsetree.type_declaration) = | _ -> () -let add_types_to_env decls shapes env = - List.fold_right2 - (fun (id, decl) shape env -> - add_type ~check:true ~shape id decl env) - decls shapes env + +(* Note [Quality of jkinds during inference] + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + We're careful during inference of jkinds for type declarations not to ever call + [Jkind.mark_best] on a jkind before we've added all the various pieces of information + to the jkind (the full layout, and all the with-bounds). Early in translation, we give + "dummy" kinds to types, without any with bounds, and have been careful not to mark + these as having a [Best] quality. Later on, in [update_decls_jkind], once we've learned + everything there is to know about a type declaration, we mark the new kind as [Best]. + It's important to do this /before/ [normalize_decl_jkinds], so that mutually recursive + type declarations can look up each others' (best, though perhaps not normalized!) + jkind. +*) + +(* Normalize the jkinds in a list of (potentially mutually recursive) type declarations *) +let normalize_decl_jkinds env shapes decls = + (* Add the types, with non-normalized kinds, to the environment to start, so that eg + types can look up their own (potentially non-normalized) kinds *) + let env = + List.fold_right2 + (fun (id, _, _, decl) shape env -> + add_type ~check:true ~shape id decl env) + decls shapes env + in + Misc.Stdlib.List.fold_left_map2 + (fun env (id, original_jkind, allow_any_crossing, decl) shape -> + let normalized_jkind = + Jkind.normalize + ~mode:Require_best + ~jkind_of_type:(fun ty -> Some (Ctype.type_jkind env ty)) + decl.type_jkind + in + let decl = { decl with type_jkind = normalized_jkind } in + (* Add the decl with the normalized kind back to the environment, so that later + kinds don't have to normalize this kind if they mention this type in their + with-bounds *) + let env = add_type ~check:false ~shape:shape id decl env in + if normalized_jkind != original_jkind then begin + (* If the jkind has changed, check that it is a subjkind of the original jkind + that we computed, either from a user-written annotation or as a dummy jkind. + + (see Note [Default jkinds in transl_declaration]) *) + (* CR layouts v2.8: it almost definitely has changed, but also we probably trust + the new jkind (we really only want this check here to check against the + user-written annotation). We might be able to do a better job here and save + some work. *) + let jkind_of_type ty = Some (Ctype.type_jkind_purely env ty) in + let type_equal = Ctype.type_equal env in + match + (* CR layouts v2.8: Consider making a function that doesn't compute + histories for this use-case, which doesn't need it. *) + Jkind.sub_jkind_l + ~type_equal + ~jkind_of_type + ~allow_any_crossing + decl.type_jkind + original_jkind + with + | Ok _ -> + if allow_any_crossing then + (* If the user is asking us to allow any crossing, we use the modal bounds from + the annotation rather than the modal bounds inferred from the type_kind. + However, we /only/ take the modal bounds, not the layout - because we still + want to be able to eg locally use a type declared as layout [any] as [value] + if that's its actual layout! *) + let type_jkind = + match + Jkind.unsafely_set_mod_bounds + ~from:original_jkind + decl.type_jkind + with + | Ok jkind -> jkind + | Error () -> + raise(Error(decl.type_loc, Unsafe_mode_crossing_with_with_bounds)) + in + let umc = + Some { modal_upper_bounds = + Jkind.get_modal_upper_bounds ~jkind_of_type type_jkind } + in + let type_kind = + match decl.type_kind with + | Type_abstract _ | Type_open -> assert false (* Checked above *) + | Type_record (lbls, rep, _) -> + Type_record (lbls, rep, umc) + | Type_record_unboxed_product (lbls, rep, _) -> + Type_record_unboxed_product (lbls, rep, umc) + | Type_variant (cs, rep, _) -> + Type_variant (cs, rep, umc) + in + env, (id, { decl with type_jkind; type_kind; }) + else env, (id, decl) + | Error err -> + raise(Error(decl.type_loc, Jkind_mismatch_of_path (Pident id, err))) + end + else env, (id, decl)) + env + decls + shapes (* Translate a set of type declarations, mutually recursive or not *) let transl_type_decl env rec_flag sdecl_list = @@ -2513,14 +2725,17 @@ let transl_type_decl env rec_flag sdecl_list = (* Check that constraints are enforced *) List.iter2 (check_constraints new_env) sdecl_list decls; (* Add type properties to declarations *) - let decls = + let new_env, decls = try - decls - |> name_recursion_decls sdecl_list - |> Typedecl_variance.update_decls env sdecl_list - |> Typedecl_separability.update_decls env - |> update_decls_jkind new_env - |> update_decls_jkind_reason + let new_env, decls = + decls + |> name_recursion_decls sdecl_list + |> Typedecl_variance.update_decls env sdecl_list + |> Typedecl_separability.update_decls env + |> update_decls_jkind new_env + |> normalize_decl_jkinds new_env shapes + in + new_env, update_decls_jkind_reason new_env decls with | Typedecl_variance.Error (loc, err) -> raise (Error (loc, Variance err)) @@ -2649,7 +2864,7 @@ let transl_extension_constructor ~scope env type_path type_params List.iter2 (Ctype.unify env) decl.type_params tl; let lbls = match decl.type_kind with - | Type_record (lbls, Record_inlined _) -> lbls + | Type_record (lbls, Record_inlined _, _) -> lbls | _ -> assert false in Types.Cstr_record lbls @@ -3200,13 +3415,42 @@ let error_if_containing_unexpected_jkind prim cty ty = Primitive.prim_has_valid_reprs ~loc:cty.ctyp_loc prim; unexpected_layout_any_check prim cty ty +(* [@@@zero_alloc assert all] in signatures uses the apparent arity of each + declaration just by looking at the number of arrows in the type. If the type + is an alias to an arrow type, the apparent arity is zero, and the item won't + get any zero alloc checking. This is probably not the user's intent, so we + give a warning in that case. *) +let check_for_hidden_arrow env loc ty = + match !Clflags.zero_alloc_assert with + | Assert_all | Assert_all_opt -> + let check () = + begin match get_desc (Ctype.expand_head env ty) with + | Tarrow _ -> + let attr = + match !Clflags.zero_alloc_assert with + | Assert_all -> "all" + | Assert_all_opt -> "all_opt" + | Assert_default -> assert false + in + Location.prerr_warning loc (Warnings.Zero_alloc_all_hidden_arrow attr) + | _ -> () + end + in + if !Clflags.principal || Env.has_local_constraints env then + let snap = Btype.snapshot () in + check (); + Btype.backtrack snap + else + check() + | Assert_default -> () + (* Translate a value declaration *) let transl_value_decl env loc ~sig_modalities valdecl = let cty = Typetexp.transl_type_scheme env valdecl.pval_type in let modalities = match valdecl.pval_modalities with | [] -> sig_modalities - | l -> Typemode.transl_modalities ~maturity:Alpha Immutable + | l -> Typemode.transl_modalities ~maturity:Stable Immutable valdecl.pval_attributes l in let modalities = Mode.Modality.Value.of_const modalities in @@ -3231,18 +3475,38 @@ let transl_value_decl env loc ~sig_modalities valdecl = in let zero_alloc = Builtin_attributes.get_zero_alloc_attribute ~in_signature:true + ~on_application:false ~default_arity valdecl.pval_attributes in let zero_alloc = match zero_alloc with - | Default_zero_alloc -> Zero_alloc.default + | Default_zero_alloc -> + (* We fabricate a "Check" attribute if a top-level annotation + specifies that all functions should be checked for zero alloc. *) + if default_arity = 0 then begin + check_for_hidden_arrow env loc ty; + Zero_alloc.default + end else + let create_const ~opt = + Zero_alloc.create_const + (Check { strict = false; + arity = default_arity; + custom_error_msg = None; + loc; + opt }) + in + (match !Clflags.zero_alloc_assert with + | Assert_default -> Zero_alloc.default + | Assert_all -> create_const ~opt:false + | Assert_all_opt -> create_const ~opt:true) + | Ignore_assert_all -> Zero_alloc.ignore_assert_all | Check za -> if default_arity = 0 && za.arity <= 0 then raise (Error(valdecl.pval_loc, Zero_alloc_attr_non_function)); if za.arity <= 0 then raise (Error(valdecl.pval_loc, Zero_alloc_attr_bad_user_arity)); Zero_alloc.create_const zero_alloc - | Assume _ | Ignore_assert_all -> + | Assume _ -> raise (Error(valdecl.pval_loc, Zero_alloc_attr_unsupported zero_alloc)) in { val_type = ty; val_kind = Val_reg; Types.val_loc = loc; @@ -3295,7 +3559,7 @@ let transl_value_decl env loc ~sig_modalities valdecl = Env.enter_value ~mode:Mode.Value.legacy valdecl.pval_name.txt v env ~check:(fun s -> Warnings.Unused_value_declaration s) in - Ctype.check_and_update_generalized_ty_jkind ~name:id ~loc ty; + Ctype.check_and_update_generalized_ty_jkind ~name:id ~loc newenv ty; let desc = { val_id = id; @@ -3414,7 +3678,6 @@ let transl_with_constraint id ?fixed_row_path ~sig_env ~sig_decl ~outer_env type_attributes = sdecl.ptype_attributes; type_unboxed_default; type_uid = Uid.mk ~current_unit:(Env.get_unit_name ()); - type_has_illegal_crossings = false; } in Option.iter (fun p -> set_private_row env sdecl.ptype_loc p new_sig_decl) @@ -3454,7 +3717,6 @@ let transl_with_constraint id ?fixed_row_path ~sig_env ~sig_decl ~outer_env type_variance = new_type_variance; type_separability = new_type_separability; - type_has_illegal_crossings = false; } in { typ_id = id; @@ -3493,7 +3755,6 @@ let transl_package_constraint ~loc ty = type_attributes = []; type_unboxed_default = false; type_uid = Uid.mk ~current_unit:(Env.get_unit_name ()); - type_has_illegal_crossings = false; } (* Approximate a type declaration: just make all types abstract *) @@ -3516,7 +3777,6 @@ let abstract_type_decl ~injective ~jkind ~params = type_attributes = []; type_unboxed_default = false; type_uid = Uid.internal_not_actually_unique; - type_has_illegal_crossings = false; } end @@ -3527,9 +3787,17 @@ let approx_type_decl sdecl_list = let id = Ident.create_scoped ~scope sdecl.ptype_name.txt in let path = Path.Pident id in let injective = sdecl.ptype_kind <> Ptype_abstract in + let transl_type sty = + Misc.fatal_errorf + "@[I do not yet know how to deal with [with]-types (such as %a)@ in \ + recursive modules. Please contact the Jane Street OCaml Language@ \ + team for help if you see this." + Pprintast.core_type sty + in let jkind = Jkind.of_type_decl_default ~context:(Type_declaration path) + ~transl_type ~default:(Jkind.Builtin.value ~why:Default_type_jkind) sdecl in @@ -3552,7 +3820,15 @@ let check_recmod_typedecl env loc recmod_ids path decl = check_regularity ~abs_env:env env loc path decl to_check; (* additional coherence check, as one might build an incoherent signature, and use it to build an incoherent module, cf. #7851 *) - ignore (check_coherence env loc path decl) + (* Call [check_kind_coherence] rather than [check_coherence] here, which + avoids a call to [narrow_to_manifest_jkind]. That call sometimes spuriously fails on + valid programs (see test 14 in testsuite/tests/typing-jkind-bounds/basics.ml). This + isn't sound, but this check is already unsound otherwise (see issue #13765)! And not + performing this check on the jkinds is no less sound than what already exists. So + instead of fixing the spurious failures, we choose to just not perform the check, + with the intention of fixing the jkind soundness issue once the other soundness issue + is resolved. *) + ignore (check_kind_coherence env loc path decl) (**** Error report ****) @@ -3775,7 +4051,7 @@ let report_error ppf = function | Unbound_type_var (ty, decl) -> fprintf ppf "@[A type variable is unbound in this type declaration"; begin match decl.type_kind, decl.type_manifest with - | Type_variant (tl, _rep), _ -> + | Type_variant (tl, _rep, _), _ -> explain_unbound_gen ppf ty tl (fun c -> let tl = tys_of_constr_args c.Types.cd_args in Btype.newgenty (Ttuple (List.map (fun t -> None, t) tl)) @@ -3784,10 +4060,10 @@ let report_error ppf = function fprintf ppf "%a of %a" Printtyp.ident c.Types.cd_id Printtyp.constructor_arguments c.Types.cd_args) - | Type_record (tl, _), _ -> + | Type_record (tl, _, _), _ -> explain_unbound ppf ty tl (fun l -> l.Types.ld_type) "field" (fun l -> Ident.name l.Types.ld_id ^ ": ") - | Type_record_unboxed_product (tl, _), _ -> + | Type_record_unboxed_product (tl, _, _), _ -> explain_unbound ppf ty tl (fun l -> l.Types.ld_type) "unboxed record field" (fun l -> Ident.name l.Types.ld_id ^ ": ") | Type_abstract _, Some ty' -> @@ -4115,6 +4391,19 @@ let report_error ppf = function "@[Invalid reexport declaration.\ @ Type %s must not define an explicit representation.@]" (Path.name definition) + | Unsafe_mode_crossing_on_invalid_type_kind -> + fprintf ppf + "@[[%@%@unsafe_allow_any_mode_crossing] is not allowed on this kind of \ + type declaration.@ Only records, unboxed products, and variants are \ + supported.@]" + | Unsafe_mode_crossing_with_with_bounds -> + fprintf ppf + "@[[%@%@unsafe_allow_any_mode_crossing] is not allowed with a kind \ + annotation containing with-bounds.@]" + | Illegal_baggage jkind -> + fprintf ppf + "@[Illegal %a in kind annotation of an abbreviation:@ %a@]" + Style.inline_code "with" Jkind.format jkind let () = Location.register_error_of_exn diff --git a/upstream/ocaml_flambda/typing/typedecl.mli b/upstream/ocaml_flambda/typing/typedecl.mli index 1a1555a9d..fa75290eb 100644 --- a/upstream/ocaml_flambda/typing/typedecl.mli +++ b/upstream/ocaml_flambda/typing/typedecl.mli @@ -182,6 +182,9 @@ type error = ; expected: Path.t } | Non_abstract_reexport of Path.t + | Unsafe_mode_crossing_on_invalid_type_kind + | Unsafe_mode_crossing_with_with_bounds + | Illegal_baggage of jkind_l exception Error of Location.t * error diff --git a/upstream/ocaml_flambda/typing/typedecl_separability.ml b/upstream/ocaml_flambda/typing/typedecl_separability.ml index 829a4573c..5cde9c1de 100644 --- a/upstream/ocaml_flambda/typing/typedecl_separability.ml +++ b/upstream/ocaml_flambda/typing/typedecl_separability.ml @@ -60,7 +60,7 @@ let structure : type_definition -> type_structure = fun def -> | (Type_record _ | Type_record_unboxed_product _ | Type_variant _), Some ty -> let params = match def.type_kind with - | Type_variant ([{cd_res = Some ret_type}], _) -> + | Type_variant ([{cd_res = Some ret_type}], _, _) -> begin match get_desc ret_type with | Tconstr (_, tyl, _) -> tyl | _ -> assert false @@ -482,8 +482,9 @@ let msig_of_external_type env decl = Result.is_error (Ctype.check_decl_jkind env decl (Jkind.Builtin.value_or_null ~why:Separability_check)) in + let jkind_of_type = Ctype.type_jkind_purely_if_principal env in let is_external = - match Jkind.get_externality_upper_bound decl.type_jkind with + match Jkind.get_externality_upper_bound ~jkind_of_type decl.type_jkind with | Internal -> false | External | External64 -> true in diff --git a/upstream/ocaml_flambda/typing/typedecl_variance.ml b/upstream/ocaml_flambda/typing/typedecl_variance.ml index 54dcb11b2..2a341a105 100644 --- a/upstream/ocaml_flambda/typing/typedecl_variance.ml +++ b/upstream/ocaml_flambda/typing/typedecl_variance.ml @@ -326,7 +326,7 @@ let compute_variance_decl env ~check decl (required, _ as rloc) = match decl.type_kind with Type_abstract _ | Type_open -> compute_variance_type env ~check rloc decl mn - | Type_variant (tll,_rep) -> + | Type_variant (tll,_rep, _umc) -> if List.for_all (fun c -> c.Types.cd_res = None) tll then compute_variance_type env ~check rloc decl (mn @ List.flatten (List.map (fun c -> for_constr c.Types.cd_args) @@ -351,11 +351,11 @@ let compute_variance_decl env ~check decl (required, _ as rloc) = List.fold_left (List.map2 Variance.union) vari rem | _ -> assert false end - | Type_record (ftl, _) -> + | Type_record (ftl, _, _) -> compute_variance_type env ~check rloc decl (mn @ List.map (fun {Types.ld_mutable; ld_type} -> (Types.is_mutable ld_mutable, ld_type)) ftl) - | Type_record_unboxed_product (ftl, _) -> + | Type_record_unboxed_product (ftl, _, _) -> compute_variance_type env ~check rloc decl (mn @ List.map (fun {Types.ld_mutable; ld_type} -> (Types.is_mutable ld_mutable, ld_type)) ftl) diff --git a/upstream/ocaml_flambda/typing/typedtree.ml b/upstream/ocaml_flambda/typing/typedtree.ml index 41e1c0426..4b1427226 100644 --- a/upstream/ocaml_flambda/typing/typedtree.ml +++ b/upstream/ocaml_flambda/typing/typedtree.ml @@ -1207,14 +1207,21 @@ let let_bound_idents_with_modes_sorts_and_checks bindings = function - if it remains [Default_zero_alloc], translcore adds the check. *) let arity = function_arity fn.params fn.body in - if !Clflags.zero_alloc_check_assert_all && arity > 0 then - Zero_alloc.create_const - (Check { strict = false; - arity; - loc = Location.none; - opt = false }) - else + if arity <= 0 then fn.zero_alloc + else + let create_const ~opt = + Zero_alloc.create_const + (Check { strict = false; + arity; + custom_error_msg = None; + loc = Location.none; + opt }) + in + (match !Clflags.zero_alloc_assert with + | Assert_default -> fn.zero_alloc + | Assert_all -> create_const ~opt:false + | Assert_all_opt -> create_const ~opt:true) | Ignore_assert_all | Check _ | Assume _ -> fn.zero_alloc in Ident.Map.add id zero_alloc checks diff --git a/upstream/ocaml_flambda/typing/typemod.ml b/upstream/ocaml_flambda/typing/typemod.ml index bd854508c..834748d29 100644 --- a/upstream/ocaml_flambda/typing/typemod.ml +++ b/upstream/ocaml_flambda/typing/typemod.ml @@ -691,7 +691,6 @@ let merge_constraint initial_env loc sg lid constr = type_attributes = []; type_unboxed_default = false; type_uid = Uid.mk ~current_unit:(Env.get_unit_name ()); - type_has_illegal_crossings = false; } and id_row = Ident.create_local (s^"#row") in let initial_env = @@ -750,23 +749,12 @@ let merge_constraint initial_env loc sg lid constr = the declaration from the original signature. Note that this is also checked in [check_type_decl], but there it is check, not constrain, which we need here to deal with type variables in package constraints - (see tests in [typing-modules/package_constraint.ml]). *) - begin match - Ctype.constrain_decl_jkind initial_env tdecl sig_decl.type_jkind - with - | Ok _-> () - | Error v -> - (* This is morally part of the below [check_type_decl], so we give the - same error that would be given there for good error messages. *) - let err = - Includemod.Error.In_Type_declaration( - id, Type_declarations - {got=tdecl; - expected=sig_decl; - symptom=Includecore.Jkind v}) - in - raise Includemod.(Error(initial_env, err)) - end; + (see tests in [typing-modules/package_constraint.ml]). Because the + check is repeated later -- and with better handling for errors -- we + just drop any error here. *) + ignore + (* CR layouts v2.8: Does this type_jkind need to be instantiated? *) + (Ctype.constrain_decl_jkind initial_env tdecl sig_decl.type_jkind); check_type_decl outer_sig_env sg_for_env loc id None tdecl sig_decl; let tdecl = { tdecl with type_manifest = None } in return ~ghosts ~replace_by:(Some(Sig_type(id, tdecl, rs, priv))) @@ -1042,7 +1030,7 @@ let apply_pmd_modalities env sig_modalities pmd_modalities mty = match pmd_modalities with | [] -> sig_modalities | _ :: _ -> - Typemode.transl_modalities ~maturity:Alpha Immutable [] pmd_modalities + Typemode.transl_modalities ~maturity:Stable Immutable [] pmd_modalities in (* Workaround for pmd_modalities @@ -1248,7 +1236,7 @@ and approx_sig_items env ssg= | [] -> sg | _ -> let modalities = - Typemode.transl_modalities ~maturity:Alpha Immutable [] moda + Typemode.transl_modalities ~maturity:Stable Immutable [] moda in let recursive = not @@ Builtin_attributes.has_attribute "no_recursive_modalities" attrs @@ -1608,7 +1596,7 @@ let transl_modtype_longident loc env lid = Env.lookup_modtype_path ~loc lid env let transl_module_alias loc env lid = - let path, _ = Env.lookup_module_path ~lock:false ~load:false ~loc lid env in + let path, _ = Env.lookup_module_path ~load:false ~loc lid env in path let mkmty desc typ env loc attrs = @@ -1750,7 +1738,7 @@ and transl_signature env {psg_items; psg_modalities; psg_loc} = let names = Signature_names.create () in let sig_modalities = - Typemode.transl_modalities ~maturity:Alpha Immutable [] psg_modalities + Typemode.transl_modalities ~maturity:Stable Immutable [] psg_modalities in let transl_include ~loc env sig_acc sincl modalities = @@ -1776,7 +1764,7 @@ and transl_signature env {psg_items; psg_modalities; psg_loc} = match modalities with | [] -> sig_modalities | _ -> - Typemode.transl_modalities ~maturity:Alpha Immutable [] modalities + Typemode.transl_modalities ~maturity:Stable Immutable [] modalities in let sg = if not @@ Mode.Modality.Value.Const.is_id modalities then @@ -2563,7 +2551,7 @@ let simplify_app_summary app_view = match app_view.arg with | false, None -> Includemod.Error.Anonymous, mty let maybe_infer_modalities ~loc ~env ~md_mode ~mode = - if Language_extension.(is_at_least Mode Alpha) then begin + if Language_extension.(is_at_least Mode Stable) then begin (* Values are packed into a structure at modes weaker than they actually are. This is to allow our legacy zapping behavior. For example: @@ -2600,18 +2588,41 @@ let maybe_infer_modalities ~loc ~env ~md_mode ~mode = Mode.Modality.Value.id end +type alias = + | No : alias + (** The module is in a context that doesn't treat aliases specially. *) + | Yes_hold_locks : alias + (** The module is in a context that treat alias specially. If it is indeed an + alias, the caller will hold the locks in the alias, and walk them when + later the alias is used for its content. *) + | Yes_walk_locks : alias + (** The module is in a context that treat alias specially. However, the caller + doesn't want to hold the locks, and therefore the locks must be eagerly + walked. *) + +let is_alias = function + | No -> false + | Yes_walk_locks | Yes_hold_locks -> true + let rec type_module ?(alias=false) sttn funct_body anchor env smod = + let alias = if alias then Yes_walk_locks else No in + let md, shape, locks = + type_module_maybe_hold_locks ~alias sttn funct_body anchor env smod + in + assert (Env.locks_is_empty locks); + md, shape + +and type_module_maybe_hold_locks ~alias sttn funct_body anchor env smod = Builtin_attributes.warning_scope smod.pmod_attributes (fun () -> type_module_aux ~alias sttn funct_body anchor env smod) and type_module_aux ~alias sttn funct_body anchor env smod = match smod.pmod_desc with Pmod_ident lid -> - let path, mode = - Env.lookup_module_path ~load:(not alias) ~loc:smod.pmod_loc lid.txt env + let path, locks = + Env.lookup_module_path ~load:(not @@ is_alias alias) ~loc:smod.pmod_loc lid.txt env in - Mode.Value.submode_exn mode Mode.Value.legacy; - type_module_path_aux ~alias sttn env path lid smod + type_module_path_aux ~alias sttn env path locks lid smod | Pmod_structure sstr -> let (str, sg, names, shape, _finalenv) = type_structure funct_body anchor env sstr in @@ -2623,9 +2634,12 @@ and type_module_aux ~alias sttn funct_body anchor env smod = mod_loc = smod.pmod_loc } in let sg' = Signature_names.simplify _finalenv names sg in - if List.length sg' = List.length sg then md, shape else - wrap_constraint_with_shape env false md - (Mty_signature sg') shape Tmodtype_implicit + let md, shape = + if List.length sg' = List.length sg then md, shape else + wrap_constraint_with_shape env false md + (Mty_signature sg') shape Tmodtype_implicit + in + md, shape, Env.locks_empty | Pmod_functor(arg_opt, sbody) -> let t_arg, ty_arg, newenv, funct_shape_param, funct_body = match arg_opt with @@ -2665,13 +2679,16 @@ and type_module_aux ~alias sttn funct_body anchor env smod = mod_env = env; mod_attributes = smod.pmod_attributes; mod_loc = smod.pmod_loc }, - Shape.abs funct_shape_param body_shape + Shape.abs funct_shape_param body_shape, Env.locks_empty | Pmod_apply _ | Pmod_apply_unit _ -> - type_application smod.pmod_loc sttn funct_body env smod + let md, shape = type_application smod.pmod_loc sttn funct_body env smod in + md, shape, Env.locks_empty | Pmod_constraint(sarg, smty, smode) -> check_no_modal_modules ~env smode; let smty = Option.get smty in - let arg, arg_shape = type_module ~alias true funct_body anchor env sarg in + let arg, arg_shape, locks = + type_module_maybe_hold_locks ~alias true funct_body anchor env sarg + in let mty = transl_modtype env smty in let md, final_shape = wrap_constraint_with_shape env true arg mty.mty_type arg_shape @@ -2681,7 +2698,7 @@ and type_module_aux ~alias sttn funct_body anchor env smod = mod_loc = smod.pmod_loc; mod_attributes = smod.pmod_attributes; }, - final_shape + final_shape, locks | Pmod_unpack sexp -> let exp = Ctype.with_local_level_if_principal @@ -2714,27 +2731,38 @@ and type_module_aux ~alias sttn funct_body anchor env smod = mod_env = env; mod_attributes = smod.pmod_attributes; mod_loc = smod.pmod_loc }, - Shape.leaf_for_unpack + Shape.leaf_for_unpack, Env.locks_empty | Pmod_extension ext -> raise (Error_forward (Builtin_attributes.error_of_extension ext)) | Pmod_instance glob -> Language_extension.assert_enabled ~loc:smod.pmod_loc Instances (); let glob = instance_name ~loc:smod.pmod_loc env glob in - let path, mode = - Env.lookup_module_instance_path ~load:(not alias) ~loc:smod.pmod_loc + let path, locks = + Env.lookup_module_instance_path ~load:(not @@ is_alias alias) ~loc:smod.pmod_loc glob env in - Mode.Value.submode_exn mode Mode.Value.legacy; let lid = (* Only used by [untypeast] *) let name = Format.asprintf "*instance %a*" Global_module.Name.print glob in - Lident name |> Location.mknoloc + Location.(mkloc (Lident name) (ghostify smod.pmod_loc)) in - type_module_path_aux ~alias sttn env path lid smod - -and type_module_path_aux ~alias sttn env path lid smod = + type_module_path_aux ~alias sttn env path locks lid smod + +and type_module_path_aux ~alias sttn env path locks (lid : _ loc) smod = + let locks = + match alias with + | Yes_hold_locks -> locks + | No | Yes_walk_locks -> + let vmode = + Env.walk_locks ~loc:lid.loc ~env ~item:Module ~lid:lid.txt + Mode.Value.(legacy |> disallow_right) None locks + in + Mode.Value.submode_exn vmode.mode Mode.Value.legacy; + Env.locks_empty + in + let alias = is_alias alias in let md = { mod_desc = Tmod_ident (path, lid); mod_type = Mty_alias path; mod_env = env; @@ -2766,7 +2794,7 @@ and type_module_path_aux ~alias sttn env path lid smod = { md with mod_type = mty } end in - md, shape + md, shape, locks and type_application loc strengthen funct_body env smod = let rec extract_application funct_body env sargs smod = @@ -3098,7 +3126,9 @@ and type_structure ?(toplevel = None) funct_body anchor env sstr = | Assume { strict; arity; loc; never_returns_normally = _; never_raises = _} -> - Zero_alloc.create_const (Check { strict; arity; loc; opt = false }) + Zero_alloc.create_const + (Check { strict; arity; loc; opt = false; + custom_error_msg = None; }) | Ignore_assert_all -> Zero_alloc.default in let (first_loc, _, _) = List.hd id_info in @@ -3462,7 +3492,8 @@ let type_toplevel_phrase env sig_acc s = Typecore.optimise_allocations (); (str, sg, to_remove_from_sg, shape, env) -let type_module_alias = type_module ~alias:true true false None +let type_module_alias = + type_module_maybe_hold_locks ~alias:Yes_hold_locks true false None let type_module = type_module true false None let type_structure = type_structure false None @@ -3640,18 +3671,6 @@ let () = type_module_type_of_fwd := type_module_type_of -(* File-level details *) - -let register_params params = - List.iter - (fun param_name -> - (* We don't (yet!) support parameterised parameters *) - let param = Global_module.Name.create_no_args param_name in - Env.register_parameter param - ) - params - - (* Typecheck an implementation file *) let gen_annot target annots = @@ -3738,7 +3757,6 @@ let type_implementation target modulename initial_env ast = ignore @@ Warnings.parse_options false "-32-34-37-38-60"; if !Clflags.as_parameter then error Cannot_compile_implementation_as_parameter; - register_params !Clflags.parameters; let (str, sg, names, shape, finalenv) = Profile.record_call "infer" (fun () -> type_structure initial_env ast) in @@ -3926,7 +3944,6 @@ let type_interface ~sourcefile modulename env ast = if !Clflags.as_parameter && !Clflags.parameters <> [] then begin error Compiling_as_parameterised_parameter end; - register_params !Clflags.parameters; if !Clflags.binary_annotations_cms then begin let uid = Shape.Uid.of_compilation_unit_id modulename in cms_register_toplevel_signature_attributes ~uid ~sourcefile ast diff --git a/upstream/ocaml_flambda/typing/typemode.ml b/upstream/ocaml_flambda/typing/typemode.ml index 474f7e524..b8ec36840 100644 --- a/upstream/ocaml_flambda/typing/typemode.ml +++ b/upstream/ocaml_flambda/typing/typemode.ml @@ -25,25 +25,32 @@ exception Error of Location.t * error module Axis_pair = struct type 'm t = - | Modal_axis_pair : 'a Axis.Modal.t * 'a -> modal t + | Modal_axis_pair : ('m, 'a, 'd) Mode.Alloc.axis * 'a -> modal t | Any_axis_pair : 'a Axis.t * 'a -> maybe_nonmodal t let of_string s = let open Mode in match s with - | "local" -> Any_axis_pair (Modal Locality, Locality.Const.Local) - | "global" -> Any_axis_pair (Modal Locality, Locality.Const.Global) - | "unique" -> Any_axis_pair (Modal Uniqueness, Uniqueness.Const.Unique) - | "aliased" -> Any_axis_pair (Modal Uniqueness, Uniqueness.Const.Aliased) - | "once" -> Any_axis_pair (Modal Linearity, Linearity.Const.Once) - | "many" -> Any_axis_pair (Modal Linearity, Linearity.Const.Many) + | "local" -> Any_axis_pair (Modal (Comonadic Areality), Locality.Const.Local) + | "global" -> + Any_axis_pair (Modal (Comonadic Areality), Locality.Const.Global) + | "unique" -> + Any_axis_pair (Modal (Monadic Uniqueness), Uniqueness.Const.Unique) + | "aliased" -> + Any_axis_pair (Modal (Monadic Uniqueness), Uniqueness.Const.Aliased) + | "once" -> Any_axis_pair (Modal (Comonadic Linearity), Linearity.Const.Once) + | "many" -> Any_axis_pair (Modal (Comonadic Linearity), Linearity.Const.Many) | "nonportable" -> - Any_axis_pair (Modal Portability, Portability.Const.Nonportable) - | "portable" -> Any_axis_pair (Modal Portability, Portability.Const.Portable) - | "contended" -> Any_axis_pair (Modal Contention, Contention.Const.Contended) - | "shared" -> Any_axis_pair (Modal Contention, Contention.Const.Shared) + Any_axis_pair + (Modal (Comonadic Portability), Portability.Const.Nonportable) + | "portable" -> + Any_axis_pair (Modal (Comonadic Portability), Portability.Const.Portable) + | "contended" -> + Any_axis_pair (Modal (Monadic Contention), Contention.Const.Contended) + | "shared" -> + Any_axis_pair (Modal (Monadic Contention), Contention.Const.Shared) | "uncontended" -> - Any_axis_pair (Modal Contention, Contention.Const.Uncontended) + Any_axis_pair (Modal (Monadic Contention), Contention.Const.Uncontended) | "maybe_null" -> Any_axis_pair (Nonmodal Nullability, Nullability.Maybe_null) | "non_null" -> Any_axis_pair (Nonmodal Nullability, Nullability.Non_null) @@ -51,35 +58,48 @@ module Axis_pair = struct | "external64" -> Any_axis_pair (Nonmodal Externality, Externality.External64) | "external_" -> Any_axis_pair (Nonmodal Externality, Externality.External) - | "yielding" -> Any_axis_pair (Modal Yielding, Yielding.Const.Yielding) - | "unyielding" -> Any_axis_pair (Modal Yielding, Yielding.Const.Unyielding) + | "yielding" -> + Any_axis_pair (Modal (Comonadic Yielding), Yielding.Const.Yielding) + | "unyielding" -> + Any_axis_pair (Modal (Comonadic Yielding), Yielding.Const.Unyielding) | _ -> raise Not_found end let transl_annot (type m) ~(annot_type : m annot_type) ~required_mode_maturity - annot : m Axis_pair.t = + annot : m Axis_pair.t Location.loc = Option.iter (fun maturity -> Language_extension.assert_enabled ~loc:annot.loc Mode maturity) required_mode_maturity; - match Axis_pair.of_string annot.txt, annot_type with - | Any_axis_pair (Nonmodal _, _), (Mode | Modality) | (exception Not_found) -> - raise (Error (annot.loc, Unrecognized_modifier (annot_type, annot.txt))) - | Any_axis_pair (Modal axis, mode), Mode -> Modal_axis_pair (axis, mode) - | Any_axis_pair (Modal axis, mode), Modality -> Modal_axis_pair (axis, mode) - | pair, Modifier -> pair + let pair : m Axis_pair.t = + match Axis_pair.of_string annot.txt, annot_type with + | Any_axis_pair (Nonmodal _, _), (Mode | Modality) | (exception Not_found) + -> + raise (Error (annot.loc, Unrecognized_modifier (annot_type, annot.txt))) + | Any_axis_pair (Modal axis, mode), Mode -> Modal_axis_pair (axis, mode) + | Any_axis_pair (Modal axis, mode), Modality -> Modal_axis_pair (axis, mode) + | pair, Modifier -> pair + in + { txt = pair; loc = annot.loc } let unpack_mode_annot { txt = Parsetree.Mode s; loc } = { txt = s; loc } -module Opt_axis_collection = Axis_collection (Option) +module Transled_modifier = struct + type 'a t = 'a Location.loc option + + let drop_loc modifier = Option.map Location.get_txt modifier +end + +module Transled_modifiers = + Jkind_axis.Axis_collection.Indexed (Transled_modifier) let transl_modifier_annots annots = let step modifiers_so_far annot = - let (Any_axis_pair (type a) ((axis, mode) : a Axis.t * a)) = + let { txt = Any_axis_pair (type a) ((axis, mode) : a Axis.t * a); loc } = transl_annot ~annot_type:Modifier ~required_mode_maturity:None @@ unpack_mode_annot annot in - let (module A : Axis_s with type t = a) = Axis.get axis in + let (module A) = Axis.get axis in let is_top = A.le A.max mode in if is_top then @@ -89,37 +109,41 @@ let transl_modifier_annots annots = (* Location.prerr_warning new_raw.loc (Warnings.Mod_by_top new_raw.txt) *) (); let is_dup = - Option.is_some (Opt_axis_collection.get ~axis modifiers_so_far) + Option.is_some (Transled_modifiers.get ~axis modifiers_so_far) in if is_dup then raise (Error (annot.loc, Duplicated_axis axis)); - Opt_axis_collection.set ~axis modifiers_so_far (Some mode) + Transled_modifiers.set ~axis modifiers_so_far (Some { txt = mode; loc }) in let empty_modifiers = - Opt_axis_collection.create { f = (fun ~axis:_ -> None) } + Transled_modifiers.Create.f { f = (fun ~axis:_ -> None) } in List.fold_left step empty_modifiers annots let transl_mode_annots annots : Alloc.Const.Option.t = let step modifiers_so_far annot = - let (Modal_axis_pair (type a) ((axis, mode) : a Axis.Modal.t * a)) = + let { txt = + Modal_axis_pair (type m a d) + ((axis, mode) : (m, a, d) Mode.Alloc.axis * a); + loc + } = transl_annot ~annot_type:Mode ~required_mode_maturity:(Some Stable) @@ unpack_mode_annot annot in let axis = Axis.Modal axis in - if Option.is_some (Opt_axis_collection.get ~axis modifiers_so_far) + if Option.is_some (Transled_modifiers.get ~axis modifiers_so_far) then raise (Error (annot.loc, Duplicated_axis axis)); - Opt_axis_collection.set ~axis modifiers_so_far (Some mode) + Transled_modifiers.set ~axis modifiers_so_far (Some { txt = mode; loc }) in let empty_modifiers = - Opt_axis_collection.create { f = (fun ~axis:_ -> None) } + Transled_modifiers.Create.f { f = (fun ~axis:_ -> None) } in let modes = List.fold_left step empty_modifiers annots in - { areality = modes.locality; - linearity = modes.linearity; - uniqueness = modes.uniqueness; - portability = modes.portability; - contention = modes.contention; - yielding = modes.yielding + { areality = Transled_modifier.drop_loc modes.locality; + linearity = Transled_modifier.drop_loc modes.linearity; + uniqueness = Transled_modifier.drop_loc modes.uniqueness; + portability = Transled_modifier.drop_loc modes.portability; + contention = Transled_modifier.drop_loc modes.contention; + yielding = Transled_modifier.drop_loc modes.yielding } let untransl_mode_annots ~loc (modes : Mode.Alloc.Const.Option.t) = @@ -147,19 +171,19 @@ let transl_modality ~maturity { txt = Parsetree.Modality modality; loc } = transl_annot ~annot_type:Modality ~required_mode_maturity:(Some maturity) { txt = modality; loc } in - match axis_pair with - | Modal_axis_pair (Locality, mode) -> + match axis_pair.txt with + | Modal_axis_pair (Comonadic Areality, mode) -> Modality.Atom (Comonadic Areality, Meet_with (Const.locality_as_regionality mode)) - | Modal_axis_pair (Linearity, mode) -> + | Modal_axis_pair (Comonadic Linearity, mode) -> Modality.Atom (Comonadic Linearity, Meet_with mode) - | Modal_axis_pair (Uniqueness, mode) -> - Modality.Atom (Monadic Uniqueness, Join_with mode) - | Modal_axis_pair (Portability, mode) -> + | Modal_axis_pair (Comonadic Portability, mode) -> Modality.Atom (Comonadic Portability, Meet_with mode) - | Modal_axis_pair (Contention, mode) -> + | Modal_axis_pair (Monadic Uniqueness, mode) -> + Modality.Atom (Monadic Uniqueness, Join_with mode) + | Modal_axis_pair (Monadic Contention, mode) -> Modality.Atom (Monadic Contention, Join_with mode) - | Modal_axis_pair (Yielding, mode) -> + | Modal_axis_pair (Comonadic Yielding, mode) -> Modality.Atom (Comonadic Yielding, Meet_with mode) let untransl_modality (a : Modality.t) : Parsetree.modality loc = diff --git a/upstream/ocaml_flambda/typing/typemode.mli b/upstream/ocaml_flambda/typing/typemode.mli index 96fdd145b..eb8b3cc8c 100644 --- a/upstream/ocaml_flambda/typing/typemode.mli +++ b/upstream/ocaml_flambda/typing/typemode.mli @@ -30,7 +30,13 @@ val untransl_modalities : Mode.Modality.Value.Const.t -> Parsetree.modalities +module Transled_modifier : sig + type 'a t = 'a Location.loc option +end + +module Transled_modifiers : + module type of Jkind_axis.Axis_collection.Indexed (Transled_modifier) + (** Interpret a list of modifiers. A "modifier" is any keyword coming after a `mod` in a jkind *) -val transl_modifier_annots : - Parsetree.modes -> Jkind_axis.Axis_collection(Option).t +val transl_modifier_annots : Parsetree.modes -> Transled_modifiers.t diff --git a/upstream/ocaml_flambda/typing/typeopt.ml b/upstream/ocaml_flambda/typing/typeopt.ml index 75389569b..689de7a08 100644 --- a/upstream/ocaml_flambda/typing/typeopt.ml +++ b/upstream/ocaml_flambda/typing/typeopt.ml @@ -328,9 +328,12 @@ let bigarray_specialize_kind_and_layout env ~kind ~layout typ = | _ -> (kind, layout) -let value_kind_of_value_jkind jkind = +let value_kind_of_value_jkind env jkind = let layout = Jkind.get_layout_defaulting_to_value jkind in - let externality_upper_bound = Jkind.get_externality_upper_bound jkind in + (* In other places, we use [Ctype.type_jkind_purely_if_principal]. Here, we omit + the principality check, as we're just trying to compute optimizations. *) + let jkind_of_type ty = Some (Ctype.type_jkind_purely env ty) in + let externality_upper_bound = Jkind.get_externality_upper_bound ~jkind_of_type jkind in match layout, externality_upper_bound with | Base Value, External -> Pintval | Base Value, External64 -> @@ -501,34 +504,34 @@ let rec value_kind env ~loc ~visited ~depth ~num_nodes_visited ty in if cannot_proceed () then num_nodes_visited, - mk_nn (value_kind_of_value_jkind decl.type_jkind) + mk_nn (value_kind_of_value_jkind env decl.type_jkind) else let visited = Numbers.Int.Set.add (get_id ty) visited in (* Default of [Pgenval] is currently safe for the missing cmi fallback in the case of @@unboxed variant and records, due to the precondition of [value_kind]. *) match decl.type_kind with - | Type_variant (cstrs, rep) -> + | Type_variant (cstrs, rep, _) -> fallback_if_missing_cmi ~default:(num_nodes_visited, mk_nn Pgenval) (fun () -> value_kind_variant env ~loc ~visited ~depth ~num_nodes_visited cstrs rep) - | Type_record (labels, rep) -> + | Type_record (labels, rep, _) -> let depth = depth + 1 in fallback_if_missing_cmi ~default:(num_nodes_visited, mk_nn Pgenval) (fun () -> value_kind_record env ~loc ~visited ~depth ~num_nodes_visited labels rep) - | Type_record_unboxed_product ([{ld_type}], Record_unboxed_product) -> + | Type_record_unboxed_product ([{ld_type}], Record_unboxed_product, _) -> let depth = depth + 1 in fallback_if_missing_cmi ~default:(num_nodes_visited, mk_nn Pgenval) (fun () -> value_kind env ~loc ~visited ~depth ~num_nodes_visited ld_type) | Type_record_unboxed_product (([] | _::_::_), - Record_unboxed_product) -> + Record_unboxed_product, _) -> Misc.fatal_error "Typeopt.value_kind: non-unary unboxed record can't have kind value" | Type_abstract _ -> num_nodes_visited, - mk_nn (value_kind_of_value_jkind decl.type_jkind) + mk_nn (value_kind_of_value_jkind env decl.type_jkind) | Type_open -> num_nodes_visited, mk_nn Pgenval end | Ttuple labeled_fields -> diff --git a/upstream/ocaml_flambda/typing/types.ml b/upstream/ocaml_flambda/typing/types.ml index b9f363f2c..7a0124614 100644 --- a/upstream/ocaml_flambda/typing/types.ml +++ b/upstream/ocaml_flambda/typing/types.ml @@ -28,6 +28,13 @@ let is_mutable = function (* Type expressions for the core language *) +module Jkind_mod_bounds = + Jkind_axis.Axis_collection.Indexed (Misc.Stdlib.Monad.Identity) + +module With_bounds_type_info = struct + type t = {relevant_axes : Jkind_axis.Axis_set.t } [@@unboxed] +end + type transient_expr = { mutable desc: type_desc; mutable level: int; @@ -99,18 +106,54 @@ and _ commutable_gen = | Cunknown : [> `none] commutable_gen | Cvar : {mutable commu: any commutable_gen} -> [> `var] commutable_gen -and 'd jkind = (type_expr, 'd) Jkind_types.t +(* jkinds *) + +and jkind_history = + | Interact of + { reason : Jkind_intf.History.interact_reason; + jkind1 : jkind_desc_packed; + history1 : jkind_history; + jkind2 : jkind_desc_packed; + history2 : jkind_history + } + | Creation of Jkind_intf.History.creation_reason + +(* See [With_bounds_types] for more information on this abstract type. *) +and with_bounds_types + +and 'd with_bounds = + | No_with_bounds : ('l * 'r) with_bounds + | With_bounds : with_bounds_types -> ('l * Allowance.disallowed) with_bounds + +and ('layout, 'd) layout_and_axes = + { layout : 'layout; + mod_bounds : Jkind_mod_bounds.t; + with_bounds : 'd with_bounds + } + constraint 'd = 'l * 'r + +and 'd jkind_desc = (Jkind_types.Sort.t Jkind_types.Layout.t, 'd) layout_and_axes + constraint 'd = 'l * 'r + +and jkind_desc_packed = Pack_jkind_desc : ('l * 'r) jkind_desc -> jkind_desc_packed + +and 'd jkind_quality = + | Best : ('l * disallowed) jkind_quality + | Not_best : ('l * 'r) jkind_quality + +and 'd jkind = + { jkind : 'd jkind_desc; + annotation : Parsetree.jkind_annotation option; + history : jkind_history; + has_warned : bool; + quality : 'd jkind_quality; + } + constraint 'd = 'l * 'r + and jkind_l = (allowed * disallowed) jkind and jkind_r = (disallowed * allowed) jkind and jkind_lr = (allowed * allowed) jkind - -(* jkind depends on types defined in this file, but Jkind.equal is required - here. When jkind.ml is loaded, it calls set_jkind_equal to fill a ref to the - function. *) -(** Corresponds to [Jkind.equal] *) -let jkind_equal = ref (fun _ _ -> - failwith "jkind_equal should be set by jkind.ml") -let set_jkind_equal f = jkind_equal := f +and jkind_packed = Pack_jkind : ('l * 'r) jkind -> jkind_packed module TransientTypeOps = struct type t = type_expr @@ -269,18 +312,22 @@ type type_declaration = type_attributes: Parsetree.attributes; type_unboxed_default: bool; type_uid: Uid.t; - type_has_illegal_crossings: bool; } and type_decl_kind = (label_declaration, label_declaration, constructor_declaration) type_kind +and unsafe_mode_crossing = + { modal_upper_bounds : Mode.Alloc.Const.t } + and ('lbl, 'lbl_flat, 'cstr) type_kind = Type_abstract of type_origin - | Type_record of 'lbl list * record_representation + | Type_record of 'lbl list * record_representation * unsafe_mode_crossing option | Type_record_unboxed_product of - 'lbl_flat list * record_unboxed_product_representation - | Type_variant of 'cstr list * variant_representation + 'lbl_flat list * + record_unboxed_product_representation * + unsafe_mode_crossing option + | Type_variant of 'cstr list * variant_representation * unsafe_mode_crossing option | Type_open and tag = Ordinary of {src_index: int; (* Unique name (per type) *) @@ -747,19 +794,19 @@ let record_form_to_string (type rep) (record_form : rep record_form) = let find_unboxed_type decl = match decl.type_kind with - Type_record ([{ld_type = arg; _}], Record_unboxed) - | Type_record ([{ld_type = arg; _}], Record_inlined (_, _, Variant_unboxed)) + Type_record ([{ld_type = arg; _}], Record_unboxed, _) + | Type_record ([{ld_type = arg; _}], Record_inlined (_, _, Variant_unboxed), _) | Type_record_unboxed_product - ([{ld_type = arg; _}], Record_unboxed_product) - | Type_variant ([{cd_args = Cstr_tuple [{ca_type = arg; _}]; _}], Variant_unboxed) - | Type_variant ([{cd_args = Cstr_record [{ld_type = arg; _}]; _}], Variant_unboxed) -> + ([{ld_type = arg; _}], Record_unboxed_product, _) + | Type_variant ([{cd_args = Cstr_tuple [{ca_type = arg; _}]; _}], Variant_unboxed, _) + | Type_variant ([{cd_args = Cstr_record [{ld_type = arg; _}]; _}], Variant_unboxed, _) -> Some arg | Type_record (_, ( Record_inlined _ | Record_unboxed | Record_boxed _ | Record_float | Record_ufloat - | Record_mixed _)) - | Type_record_unboxed_product (_, Record_unboxed_product) + | Record_mixed _), _) + | Type_record_unboxed_product (_, Record_unboxed_product, _) | Type_variant (_, ( Variant_boxed _ | Variant_unboxed - | Variant_extensible | Variant_with_null)) + | Variant_extensible | Variant_with_null), _) | Type_abstract _ | Type_open -> None @@ -953,19 +1000,144 @@ end let eq_type t1 t2 = t1 == t2 || repr t1 == repr t2 let compare_type t1 t2 = compare (get_id t1) (get_id t2) +(* with-bounds *) + +(* Compare types roughly semantically, to allow best-effort deduplication of the types + inside of with-bounds. + + This function might compare two types as inequal that are actually equal, but should + /never/ compare two types as equal that are not semantically equal. It may go without + saying but it also needs to expose a total order. + + Someday, it's probably desirable to merge this, and make it compatible, with + [Ctype.eqtype], though that seems quite hard. +*) +(* CR layouts v2.8: this will likely loop infinitely on rectypes *) +(* CR layouts v2.8: this whole approach is probably /quite/ wrong, since type_expr is + fundamentally mutable, and using mutable things in the keys of maps is a recipe for + disaster. We haven't found a way that this can break /yet/, but it is likely that one + exists. We should rethink this whole approach soon. *) +let rec best_effort_compare_type_expr te1 te2 = + if te1 == te2 || repr te1 == repr te2 then 0 + else + let rank ty = + match get_desc ty with + (* Types which must be compared by id *) + | Tvar _ + | Tunivar _ + | Tobject (_, _) + | Tfield (_, _, _, _) + | Tnil + | Tvariant _ + | Tpackage (_, _) + | Tarrow (_, _, _, _) + (* CR layouts v2.8: we can actually see Tsubst here in certain cases, eg during + [Ctype.copy] when copying the types inside of with_bounds. We also can't + compare Tsubst structurally, because the Tsubsts that are created in + Ctype.copy are cyclic (?). So the best we can do here is compare by id. + this is almost definitely wrong, primarily because of the mutability - we + should fix that. *) + | Tsubst (_, _) + -> + (* This negation is important! We want all these types to compare strictly /less/ + than the structural ones - the easiest way to make that happen is to make the + id negative, and ensure the ranks of all the other variants are positive *) + -ty.id + (* Types which we know how to compare structurally*) + | Ttuple _ -> 2 + | Tunboxed_tuple _ -> 3 + | Tconstr (_, _, _) -> 5 + | Tpoly (_, _) -> 6 + (* Types we should never see *) + | Tlink _ -> Misc.fatal_error "Tlink encountered in With_bounds_types" + in + match get_desc te1, get_desc te2 with + | Ttuple elts1, Ttuple elts2 + | Tunboxed_tuple elts1, Tunboxed_tuple elts2 -> + List.compare + (fun (l1, te1) (l2, te2) -> + let l = Option.compare String.compare l1 l2 in + if l = 0 then best_effort_compare_type_expr te1 te2 else l + ) + elts1 + elts2 + | Tconstr (p1, args1, _), Tconstr (p2, args2, _) -> + let p = Path.compare p1 p2 in + if p = 0 + then List.compare best_effort_compare_type_expr args1 args2 + else p + | Tpoly (t1, ts1), Tpoly (t2, ts2) -> + (* NOTE: this is mostly broken according to the semantics of type_expr, but probably + fine for the particular "best-effort" comparison we want. *) + List.compare best_effort_compare_type_expr (t1 :: ts1) (t2 :: ts2) + | _, _ -> rank te1 - rank te2 + +(* A map from [type_expr] to [With_bounds_type_info.t], specifically defined with a + (best-effort) semantic comparison function on types to be used in the with-bounds of a + jkind. + + This module is defined internally to be equal (via two uses of [Obj.magic]) to the + abstract type [with_bound_types] to break the circular dependency between with-bounds + and type_expr. The alternative to this approach would be mutually recursive modules, + but this approach creates a smaller diff with upstream and makes rebasing easier. +*) +module With_bounds_types : sig + (* Note that only the initially needed bits of [Stdlib.Map.S] are exposed here; feel + free to expose more functions if you need them! *) + type t = with_bounds_types + type info := With_bounds_type_info.t + + val empty : t + val is_empty : t -> bool + val to_seq : t -> (type_expr * info) Seq.t + val of_list : (type_expr * info) list -> t + val of_seq : (type_expr * info) Seq.t -> t + val singleton : type_expr -> info -> t + val map : (info -> info) -> t -> t + val merge + : (type_expr -> info option -> info option -> info option) -> + t -> t -> t + val update : type_expr -> (info option -> info option) -> t -> t + val find_opt : type_expr -> t -> info option +end = struct + module M = Map.Make(struct + type t = type_expr + + let compare = best_effort_compare_type_expr + end) + include M + + type map = With_bounds_type_info.t M.t + type t = with_bounds_types + + let of_map : map -> with_bounds_types = Obj.magic + let to_map : with_bounds_types -> map = Obj.magic + + let empty = empty |> of_map + let is_empty t = t |> to_map |> is_empty + let to_seq t = t |> to_map |> to_seq + let of_seq s = of_seq s |> of_map + let of_list l = l |> List.to_seq |> of_seq + let singleton ty i = add ty i (to_map empty) |> of_map + let map f t = map f (to_map t) |> of_map + let merge f t1 t2 = merge f (to_map t1) (to_map t2) |> of_map + let update te f t = update te f (to_map t) |> of_map + let find_opt te t = find_opt te (to_map t) +end + (* Constructor and accessors for [row_desc] *) let create_row ~fields ~more ~closed ~fixed ~name = - { row_fields=fields; row_more=more; - row_closed=closed; row_fixed=fixed; row_name=name } + { row_fields=fields; row_more=more; + row_closed=closed; row_fixed=fixed; row_name=name } (* [row_fields] subsumes the original [row_repr] *) let rec row_fields row = match get_desc row.row_more with | Tvariant row' -> - row.row_fields @ row_fields row' + row.row_fields @ row_fields row' | _ -> - row.row_fields + row.row_fields let rec row_repr_no_fields row = match get_desc row.row_more with diff --git a/upstream/ocaml_flambda/typing/types.mli b/upstream/ocaml_flambda/typing/types.mli index f74484bdf..c07a1a569 100644 --- a/upstream/ocaml_flambda/typing/types.mli +++ b/upstream/ocaml_flambda/typing/types.mli @@ -67,6 +67,17 @@ val is_mutable : mutability -> bool Note on mutability: TBD. *) + +(** The mod-bounds of a jkind *) +module Jkind_mod_bounds : + module type of Jkind_axis.Axis_collection.Indexed (Misc.Stdlib.Monad.Identity) + +(** Information tracked about an individual type within the with-bounds for a jkind *) +module With_bounds_type_info : sig + (** The axes that the with-bound applies to *) + type t = { relevant_axes : Jkind_axis.Axis_set.t } [@@unboxed] +end + type type_expr type row_desc type row_field @@ -229,19 +240,102 @@ and abbrev_memo = This is only allowed when the real type is known. *) -(** Jkinds classify types. *) -(* CR layouts v2.8: Say more here. *) -and 'd jkind = (type_expr, 'd) Jkind_types.t + +(**** Jkinds ****) + +(** A history of conditions placed on a jkind. + + INVARIANT: at most one sort variable appears in this history. + This is a natural consequence of producing this history by comparing + jkinds. +*) +and jkind_history = + | Interact of + { reason : Jkind_intf.History.interact_reason; + jkind1 : jkind_desc_packed; + history1 : jkind_history; + jkind2 : jkind_desc_packed; + history2 : jkind_history + } + | Creation of Jkind_intf.History.creation_reason + +(** The types within the with-bounds of a jkind *) +and with_bounds_types + +and 'd with_bounds = + | No_with_bounds : ('l * 'r) with_bounds + | With_bounds + : with_bounds_types -> ('l * Allowance.disallowed) with_bounds + (** Invariant : there must always be at least one type in this set **) + +and ('layout, 'd) layout_and_axes = + { layout : 'layout; + mod_bounds : Jkind_mod_bounds.t; + with_bounds : 'd with_bounds + } + constraint 'd = 'l * 'r + +and 'd jkind_desc = (Jkind_types.Sort.t Jkind_types.Layout.t, 'd) layout_and_axes + constraint 'd = 'l * 'r + +and jkind_desc_packed = Pack_jkind_desc : ('l * 'r) jkind_desc -> jkind_desc_packed + +(** The "quality" of a jkind indicates whether we are able to learn more about the jkind + later. + + We can never learn more about a [Best] jkind to make it "lower" (according to + [Jkind.sub] / [Jkind.sub_jkind_l]). A [Not_best], jkind, however, might have more + information provided about it later that makes it lower. + + Note that only left jkinds can be [Best] (meaning we can never compare less than or + equal to a left jkind!) +*) +and 'd jkind_quality = + | Best : ('l * disallowed) jkind_quality + | Not_best : ('l * 'r) jkind_quality + +and 'd jkind = + { jkind : 'd jkind_desc; + annotation : Parsetree.jkind_annotation option; + history : jkind_history; + has_warned : bool; + quality : 'd jkind_quality; + } + constraint 'd = 'l * 'r + and jkind_l = (allowed * disallowed) jkind (* the jkind of an actual type *) and jkind_r = (disallowed * allowed) jkind (* the jkind expected of a type *) and jkind_lr = (allowed * allowed) jkind (* the jkind of a variable *) +and jkind_packed = Pack_jkind : ('l * 'r) jkind -> jkind_packed -(* jkind depends on types defined in this file, but Jkind.equal is required - here. When jkind.ml is loaded, it calls set_jkind_equal to fill a ref to the - function. *) -(** INTERNAL USE ONLY - jkind.ml should call this with the definition of Jkind.equal *) -val set_jkind_equal : (jkind_l -> jkind_l -> bool) -> unit +(* A map from [type_expr] to [With_bounds_type_info.t], specifically defined with a + (best-effort) semantic comparison function on types to be used in the with-bounds of a + jkind. + + This module is defined internally to be equal (via two uses of [Obj.magic]) to the + abstract type [with_bound_types] to break the circular dependency between with-bounds + and type_expr. The alternative to this approach would be mutually recursive modules, + but this approach creates a smaller diff with upstream and makes rebasing easier. +*) +module With_bounds_types : sig + (* Note that only the initially needed bits of [Stdlib.Map.S] are exposed here; feel + free to expose more functions if you need them! *) + type t = with_bounds_types + type info := With_bounds_type_info.t + + val empty : t + val is_empty : t -> bool + val to_seq : t -> (type_expr * info) Seq.t + val of_list : (type_expr * info) list -> t + val of_seq : (type_expr * info) Seq.t -> t + val singleton : type_expr -> info -> t + val map : (info -> info) -> t -> t + val merge + : (type_expr -> info option -> info option -> info option) -> + t -> t -> t + val update : type_expr -> (info option -> info option) -> t -> t + val find_opt : type_expr -> t -> info option +end val is_commu_ok: commutable -> bool val commu_ok: commutable @@ -541,19 +635,21 @@ type type_declaration = type_unboxed_default: bool; (* true if the unboxed-ness of this type was chosen by a compiler flag *) type_uid: Uid.t; - type_has_illegal_crossings: bool; - (* true iff the type definition has illegal crossings of the portability and - contention axes *) - (* CR layouts v2.8: remove type_has_illegal_crossings *) } and type_decl_kind = (label_declaration, label_declaration, constructor_declaration) type_kind +and unsafe_mode_crossing = + { modal_upper_bounds : Mode.Alloc.Const.t } + and ('lbl, 'lbl_flat, 'cstr) type_kind = Type_abstract of type_origin - | Type_record of 'lbl list * record_representation - | Type_record_unboxed_product of 'lbl_flat list * record_unboxed_product_representation - | Type_variant of 'cstr list * variant_representation + | Type_record of 'lbl list * record_representation * unsafe_mode_crossing option + | Type_record_unboxed_product of + 'lbl_flat list * + record_unboxed_product_representation * + unsafe_mode_crossing option + | Type_variant of 'cstr list * variant_representation * unsafe_mode_crossing option | Type_open (* CR layouts: after removing the void translation from lambda, we could get rid of diff --git a/upstream/ocaml_flambda/typing/typetexp.ml b/upstream/ocaml_flambda/typing/typetexp.ml index 49180bfec..59d2e40bd 100644 --- a/upstream/ocaml_flambda/typing/typetexp.ml +++ b/upstream/ocaml_flambda/typing/typetexp.ml @@ -661,17 +661,28 @@ let transl_label (label : Parsetree.arg_label) | Optional l, _ -> Optional l | Nolabel, _ -> Nolabel +(* Parallel to [transl_label_from_expr]. *) let transl_label_from_pat (label : Parsetree.arg_label) (pat : Parsetree.pattern) = - let label, inner_pat = match pat with - | {ppat_desc = Ppat_constraint (inner_pat, ty, _); _} -> - (* If the argument is a constraint, translate the label using the - type information. Otherwise, it can't be a Position argument, so - we don't care about the argument type *) - transl_label label ty, inner_pat + match pat with + (* We should only strip off the constraint node if the label translates + to Position, as this means the type annotation is [%call_pos] and + nothing more. *) + | {ppat_desc = Ppat_constraint (inner_pat, ty, []); _} -> + let label = transl_label label ty in + let pat = if Btype.is_position label then inner_pat else pat in + label, pat | _ -> transl_label label None, pat - in - label, if Btype.is_position label then inner_pat else pat + +(* Parallel to [transl_label_from_pat]. *) +let transl_label_from_expr (label : Parsetree.arg_label) + (expr : Parsetree.expression) = + match expr with + | {pexp_desc = Pexp_constraint (inner_expr, ty, []); _} -> + let label = transl_label label ty in + let expr = if Btype.is_position label then inner_expr else expr in + label, expr + | _ -> transl_label label None, expr let enrich_with_attributes attrs annotation_context = match Builtin_attributes.error_message_attr attrs with diff --git a/upstream/ocaml_flambda/typing/typetexp.mli b/upstream/ocaml_flambda/typing/typetexp.mli index 04b093fc8..191b0e465 100644 --- a/upstream/ocaml_flambda/typing/typetexp.mli +++ b/upstream/ocaml_flambda/typing/typetexp.mli @@ -83,6 +83,13 @@ val transl_label_from_pat : Parsetree.arg_label -> Parsetree.pattern -> Types.arg_label * Parsetree.pattern +(** Like [transl_label_from_pat], but with special handling for expressions + [(E : [%call_pos])] instead of for patterns. +*) +val transl_label_from_expr : + Parsetree.arg_label -> Parsetree.expression + -> Types.arg_label * Parsetree.expression + (* Note about [new_var_jkind] This is exposed as an option because the same initialization doesn't work in all diff --git a/upstream/ocaml_flambda/typing/zero_alloc.ml b/upstream/ocaml_flambda/typing/zero_alloc.ml index c9cf808fa..306e10415 100644 --- a/upstream/ocaml_flambda/typing/zero_alloc.ml +++ b/upstream/ocaml_flambda/typing/zero_alloc.ml @@ -6,6 +6,7 @@ type check = Builtin_attributes.zero_alloc_check = opt: bool; arity: int; loc: Location.t; + custom_error_msg : string option; } type assume = Builtin_attributes.zero_alloc_assume = @@ -22,7 +23,7 @@ type const = Builtin_attributes.zero_alloc_attribute = | Check of check | Assume of assume -type desc = { strict : bool; opt : bool } +type desc = { strict : bool; opt : bool; custom_error_msg : string option; } type var = { loc : Location.t; @@ -44,14 +45,20 @@ let debug_printer ppf t = | Check _ -> "Check" | Assume _ -> "Assume" in + let pp_custom ppf c = + match c with + | None -> Format.fprintf ppf "None" + | Some msg -> Format.fprintf ppf "%S" msg + in match t with | Const c -> Format.fprintf ppf "Const %s" (head c) | Var v -> let print_desc ppf desc = match desc with | None -> Format.fprintf ppf "None" - | Some desc -> - Format.fprintf ppf "{ strict = %b; opt = %b }" desc.strict desc.opt + | Some { strict; opt; custom_error_msg; } -> + Format.fprintf ppf "{ strict = %b; opt = %b; custom_error_message = %a}" strict opt + pp_custom custom_error_msg in Format.fprintf ppf "Var { arity = %d; desc = %a }" v.arity print_desc v.desc @@ -62,8 +69,10 @@ let log_change = ref (fun _ -> ()) let set_change_log f = log_change := f let create_const x = Const x -let create_var loc arity = Var { loc; arity; desc = None } +let create_var loc arity = + Var { loc; arity; desc = None } let default = Const Default_zero_alloc +let ignore_assert_all = Const Ignore_assert_all let get (t : t) = match t with @@ -71,8 +80,8 @@ let get (t : t) = | Var { loc; arity; desc } -> match desc with | None -> Default_zero_alloc - | Some { strict; opt } -> - Check { loc; arity; strict; opt } + | Some { strict; opt; custom_error_msg; } -> + Check { loc; arity; strict; opt; custom_error_msg } type error = | Less_general of { missing_entirely : bool } @@ -110,10 +119,9 @@ let sub_const_const_exn za1 za2 = error. It's essential for the soundness of the way we (will, in the next PR) use zero_alloc in signatures that the apparent arity of the type in the signature matches the syntactic arity of the function. - - [ignore] can not appear in zero_alloc attributes in signatures, and is - erased from structure items when computing their signature, so we don't - need to consider it here. - *) + - [ignore] is erased from structure items when computing their signature. + On signatures, [ignore] is interpreted as "top" for the inclusion check. + This interpretation is the same as erasing [ignore]. *) let open Builtin_attributes in (* abstract domain check *) let abstract_value za = @@ -168,16 +176,28 @@ let sub_var_const_exn v c = | { arity = arity1; _ }, Check { arity = arity2; _ } when arity1 <> arity2 -> raise (Error (Arity_mismatch (arity1, arity2))) - | { desc = None; _ }, Check { strict; opt; _ } -> + | { desc = None; _ }, Check { strict; opt; custom_error_msg; } -> !log_change (None, v); - v.desc <- Some { strict; opt } - | { desc = (Some { strict = strict1; opt = opt1 } as desc); _ }, - Check { strict = strict2; opt = opt2 } -> + v.desc <- Some { strict; opt; custom_error_msg } + | { desc = (Some { strict = strict1; opt = opt1; custom_error_msg = msg1; } as desc); _ }, + Check { strict = strict2; opt = opt2; custom_error_msg = msg2 } -> let strict = strict1 || strict2 in let opt = opt1 && opt2 in - if strict <> strict1 || opt <> opt1 then begin + let custom_error_msg, msg_changed = + match msg1, msg2 with + | None, None -> msg1, false; + | None, Some _ -> msg2, true; + | Some _, None -> msg1, false; + | Some m1, Some m2 -> + let b = String.equal m1 m2 in + let msg = + if b then msg1 else Some (String.concat "\n" [m1; m2]) + in + msg, not b + in + if strict <> strict1 || opt <> opt1 || msg_changed then begin !log_change (desc, v); - v.desc <- Some { strict; opt } + v.desc <- Some { strict; opt; custom_error_msg; } end let sub_exn za1 za2 = @@ -197,9 +217,9 @@ let sub_exn za1 za2 = *) if not (za1 == za2) then Misc.fatal_error "zero_alloc: variable constraint" - | _, Const (Ignore_assert_all | Assume _) -> + | _, Const (Assume _) -> Misc.fatal_error "zero_alloc: invalid constraint" - | _, (Const Default_zero_alloc) -> () + | _, (Const (Default_zero_alloc | Ignore_assert_all)) -> () | Var v, Const c -> sub_var_const_exn v c | Const c1, Const c2 -> sub_const_const_exn c1 c2 diff --git a/upstream/ocaml_flambda/typing/zero_alloc.mli b/upstream/ocaml_flambda/typing/zero_alloc.mli index dfbb4c088..a02205015 100644 --- a/upstream/ocaml_flambda/typing/zero_alloc.mli +++ b/upstream/ocaml_flambda/typing/zero_alloc.mli @@ -3,6 +3,7 @@ type check = Builtin_attributes.zero_alloc_check = opt: bool; arity: int; loc: Location.t; + custom_error_msg : string option; } type assume = Builtin_attributes.zero_alloc_assume = @@ -29,10 +30,14 @@ type t done. *) val default : t +(* [ignore_assert_all] corresponds to [Ignore_assert_all], meaning no check will be + done even if [Clflags.zero_alloc_assert] is set to "all" or "all_opt". *) +val ignore_assert_all : t + val create_const : const -> t (* [create_var loc n] creates a variable. [loc] is the location of the function - you are creating a variable for, and [n] is its syntactic arity of the + you are creating a variable for and [n] is its syntactic arity of the function the variable is being created for. *) val create_var : Location.t -> int -> t diff --git a/upstream/ocaml_flambda/utils/clflags.ml b/upstream/ocaml_flambda/utils/clflags.ml index f872c4d3a..30c54891f 100644 --- a/upstream/ocaml_flambda/utils/clflags.ml +++ b/upstream/ocaml_flambda/utils/clflags.ml @@ -153,7 +153,6 @@ let dump_interf = ref false (* -dinterf *) let dump_prefer = ref false (* -dprefer *) let dump_regalloc = ref false (* -dalloc *) let dump_reload = ref false (* -dreload *) -let dump_scheduling = ref false (* -dscheduling *) let dump_linear = ref false (* -dlinear *) let dump_interval = ref false (* -dinterval *) let keep_startup_file = ref false (* -dstartup *) @@ -208,6 +207,7 @@ let pic_code = ref (match Config.architecture with (* -fPIC *) | _ -> false) let runtime_variant = ref "" +let ocamlrunparam = ref "" let with_runtime = ref true (* -with-runtime *) @@ -222,7 +222,7 @@ let afl_inst_ratio = ref 100 (* -afl-inst-ratio *) let function_sections = ref false (* -function-sections *) let probes = ref Config.probes (* -probes *) -let allow_illegal_crossing = ref false (* -allow_illegal_crossing *) +let infer_with_bounds = ref false (* -infer-with-bounds *) let simplify_rounds = ref None (* -rounds *) let default_simplify_rounds = ref 1 (* -rounds *) let rounds () = @@ -557,14 +557,14 @@ module Compiler_pass = struct - the manual manual/src/cmds/unified-options.etex *) type t = Parsing | Typing | Lambda | Middle_end - | Scheduling | Emit | Simplify_cfg | Selection + | Linearization | Emit | Simplify_cfg | Selection let to_string = function | Parsing -> "parsing" | Typing -> "typing" | Lambda -> "lambda" | Middle_end -> "middle_end" - | Scheduling -> "scheduling" + | Linearization -> "linearization" | Emit -> "emit" | Simplify_cfg -> "simplify_cfg" | Selection -> "selection" @@ -574,7 +574,7 @@ module Compiler_pass = struct | "typing" -> Some Typing | "lambda" -> Some Lambda | "middle_end" -> Some Middle_end - | "scheduling" -> Some Scheduling + | "linearization" -> Some Linearization | "emit" -> Some Emit | "simplify_cfg" -> Some Simplify_cfg | "selection" -> Some Selection @@ -587,7 +587,7 @@ module Compiler_pass = struct | Middle_end -> 3 | Selection -> 20 | Simplify_cfg -> 49 - | Scheduling -> 50 + | Linearization -> 50 | Emit -> 60 let passes = [ @@ -595,7 +595,7 @@ module Compiler_pass = struct Typing; Lambda; Middle_end; - Scheduling; + Linearization; Emit; Simplify_cfg; Selection; @@ -603,7 +603,7 @@ module Compiler_pass = struct let is_compilation_pass _ = true let is_native_only = function | Middle_end -> true - | Scheduling -> true + | Linearization -> true | Emit -> true | Simplify_cfg -> true | Selection -> true @@ -611,7 +611,7 @@ module Compiler_pass = struct let enabled is_native t = not (is_native_only t) || is_native let can_save_ir_after = function - | Scheduling -> true + | Linearization -> true | Simplify_cfg -> true | Selection -> true | Parsing | Typing | Lambda | Middle_end | Emit -> false @@ -627,7 +627,7 @@ module Compiler_pass = struct let to_output_filename t ~prefix = match t with - | Scheduling -> prefix ^ Compiler_ir.(extension Linear) + | Linearization -> prefix ^ Compiler_ir.(extension Linear) | Simplify_cfg -> prefix ^ Compiler_ir.(extension Cfg) | Selection -> prefix ^ Compiler_ir.(extension Cfg) ^ "-sel" | Emit | Parsing | Typing | Lambda | Middle_end -> Misc.fatal_error "Not supported" @@ -693,8 +693,8 @@ let create_usage_msg program = let print_arguments program = Arg.usage !arg_spec (create_usage_msg program) -let zero_alloc_check = ref Zero_alloc_annotations.Check_default (* -zero-alloc-check *) -let zero_alloc_check_assert_all = ref false (* -zero-alloc-check-assert-all *) +let zero_alloc_check = ref Zero_alloc_annotations.Check.Check_default (* -zero-alloc-check *) +let zero_alloc_assert = ref Zero_alloc_annotations.Assert.Assert_default (* -zero-alloc-assert all *) let no_auto_include_otherlibs = ref false (* -no-auto-include-otherlibs *) diff --git a/upstream/ocaml_flambda/utils/clflags.mli b/upstream/ocaml_flambda/utils/clflags.mli index 4354fbeb9..84191a7f3 100644 --- a/upstream/ocaml_flambda/utils/clflags.mli +++ b/upstream/ocaml_flambda/utils/clflags.mli @@ -160,7 +160,6 @@ val dump_interf : bool ref val dump_prefer : bool ref val dump_regalloc : bool ref val dump_reload : bool ref -val dump_scheduling : bool ref val dump_linear : bool ref val dump_interval : bool ref val debug_ocaml : bool ref @@ -198,6 +197,7 @@ val shared : bool ref val dlcode : bool ref val pic_code : bool ref val runtime_variant : string ref +val ocamlrunparam : string ref val with_runtime : bool ref val force_slash : bool ref val keep_docs : bool ref @@ -226,7 +226,7 @@ val afl_instrument : bool ref val afl_inst_ratio : int ref val function_sections : bool ref val probes : bool ref -val allow_illegal_crossing : bool ref +val infer_with_bounds : bool ref val all_passes : string list ref val dumped_pass : string -> bool @@ -281,7 +281,7 @@ end module Compiler_pass : sig type t = Parsing | Typing | Lambda | Middle_end - | Scheduling | Emit | Simplify_cfg | Selection + | Linearization | Emit | Simplify_cfg | Selection val of_string : string -> t option val to_string : t -> string val is_compilation_pass : t -> bool @@ -316,8 +316,9 @@ val print_arguments : string -> unit val reset_arguments : unit -> unit (* [zero_alloc_check] specifies which zero_alloc attributes to check. *) -val zero_alloc_check : Zero_alloc_annotations.t ref -val zero_alloc_check_assert_all : bool ref +val zero_alloc_check : Zero_alloc_annotations.Check.t ref +(* [zero_alloc_assert] specifies which zero_alloc attributes to add. *) +val zero_alloc_assert : Zero_alloc_annotations.Assert.t ref val no_auto_include_otherlibs : bool ref diff --git a/upstream/ocaml_flambda/utils/misc.ml b/upstream/ocaml_flambda/utils/misc.ml index 7f2ee83b6..0577e7e41 100644 --- a/upstream/ocaml_flambda/utils/misc.ml +++ b/upstream/ocaml_flambda/utils/misc.ml @@ -225,6 +225,17 @@ module Stdlib = struct in aux f 0 accu l + let fold_left_map2 f accu l1 l2 = + let rec aux f accu res l1 l2 = + match l1, l2 with + | [], [] -> accu, List.rev res + | a1 :: l1, a2 :: l2 -> + let accu', r = f accu a1 a2 in + aux f accu' (r :: res) l1 l2 + | _, _ -> invalid_arg "fold_left_map2" + in + aux f accu [] l1 l2 + let chunks_of n l = if n <= 0 then raise (Invalid_argument "chunks_of"); (* Invariant: List.length l = remaining *) @@ -504,13 +515,6 @@ module Stdlib = struct external compare : 'a -> 'a -> int = "%compare" module Monad = struct - module type Basic = sig - type 'a t - - val bind : 'a t -> ('a -> 'b t) -> 'b t - val return : 'a -> 'a t - end - module type Basic2 = sig type ('a, 'e) t @@ -519,61 +523,49 @@ module Stdlib = struct val return : 'a -> ('a, _) t end - module type S = sig + module type Basic = sig type 'a t - - val bind : 'a t -> ('a -> 'b t) -> 'b t - val (>>=) : 'a t -> ('a -> 'b t) -> 'b t - val return : 'a -> 'a t - val map : ('a -> 'b) -> 'a t -> 'b t - val join : 'a t t -> 'a t - val ignore_m : 'a t -> unit t - val all : 'a t list -> 'a list t - val all_unit : unit t list -> unit t + include Basic2 with type ('a, _) t := 'a t end module type S2 = sig type ('a, 'e) t val bind : ('a, 'e) t -> ('a -> ('b, 'e) t) -> ('b, 'e) t + val (>>=) : ('a, 'e) t -> ('a -> ('b, 'e) t) -> ('b, 'e) t val return : 'a -> ('a, _) t val map : ('a -> 'b) -> ('a, 'e) t -> ('b, 'e) t val join : (('a, 'e) t, 'e) t -> ('a, 'e) t + val both : ('a, 'e) t -> ('b, 'e) t -> ('a * 'b, 'e) t val ignore_m : (_, 'e) t -> (unit, 'e) t val all : ('a, 'e) t list -> ('a list, 'e) t val all_unit : (unit, 'e) t list -> (unit, 'e) t - end - - module Make (X : Basic) = struct - include X - - let ( >>= ) t f = bind t f - - let map f ma = ma >>= fun a -> return (f a) - - let join t = t >>= fun t' -> t' - let ignore_m t = map (fun _ -> ()) t - let all = - let rec loop vs = function - | [] -> return (List.rev vs) - | t :: ts -> t >>= fun v -> loop (v :: vs) ts - in - fun ts -> loop [] ts + module Syntax : sig + val (let+) : ('a, 'e) t -> ('a -> 'b) -> ('b, 'e) t + val (and+) : ('a, 'e) t -> ('b, 'e) t -> ('a * 'b, 'e) t + val (let*) : ('a, 'e) t -> ('a -> ('b, 'e) t) -> ('b, 'e) t + val (and*) : ('a, 'e) t -> ('b, 'e) t -> ('a * 'b, 'e) t + end + end - let rec all_unit = function - | [] -> return () - | t :: ts -> t >>= fun () -> all_unit ts + module type S = sig + type 'a t + include S2 with type ('a, _) t := 'a t end - module Make2 (X : Basic2) = struct + module[@inline] Make2 (X : Basic2) = struct include X + let[@inline] ( >>= ) t f = bind t f + let map f m = bind m (fun a -> return (f a)) let join m = bind m Fun.id + let both t1 t2 = t1 >>= fun t1 -> t2 >>= fun t2 -> return (t1, t2) + let ignore_m m = bind m (fun _ -> return ()) let all ms = @@ -586,8 +578,30 @@ module Stdlib = struct let rec all_unit = function | [] -> return () | m :: ms -> bind m (fun _ -> all_unit ms) + + module Syntax = struct + let[@inline] (let+) t f = map f t + let[@inline] (and+) a b = both a b + let[@inline] (let*) t f = bind t f + let[@inline] (and*) a b = (and+) a b + end end + module[@inline] Make (X : Basic) = struct + include Make2(struct + include X + type ('a, _) t = 'a X.t + end) + + type nonrec 'a t = 'a X.t + end + + module Identity = Make(struct + type 'a t = 'a + let[@inline] bind x f = f x + let[@inline] return x = x + end) + module Option = Make(struct include Stdlib.Option let return = some @@ -743,6 +757,9 @@ let protect_writing_to_file ~filename ~f = let rec log2 n = if n <= 1 then 0 else 1 + log2(n asr 1) +let rec log2_nativeint n = + if n <= 1n then 0 else 1 + log2_nativeint (Nativeint.shift_right n 1) + let align n a = if n >= 0 then (n + a - 1) land (-a) else n land (-a) @@ -1663,6 +1680,14 @@ module Le_result = struct let is_equal = function | Equal -> true | Less | Not_le -> false + + let less_or_equal ~le a b = + match le a b, le b a with + | true, true -> Equal + | true, false -> Less + | false, _ -> Not_le + + let equal ~le a b = le a b && le b a end (*********************************************) @@ -1712,3 +1737,21 @@ let remove_double_underscores s = in loop 0; Buffer.contents buf + +module Nonempty_list = struct + type nonrec 'a t = ( :: ) of 'a * 'a list + + let to_list (x :: xs) : _ list = x :: xs + + let of_list_opt : _ list -> _ t option = function + | [] -> None + | (x :: xs)-> Some (x :: xs) + + let map f (x :: xs) = f x :: List.map f xs + + let pp_print ?pp_sep f ppf t = + Format.pp_print_list ?pp_sep f ppf (to_list t) + + let (@) (x :: xs) (y :: ys) = + x :: List.(xs @ (y :: ys)) +end diff --git a/upstream/ocaml_flambda/utils/misc.mli b/upstream/ocaml_flambda/utils/misc.mli index d95148664..3f5fae917 100644 --- a/upstream/ocaml_flambda/utils/misc.mli +++ b/upstream/ocaml_flambda/utils/misc.mli @@ -163,6 +163,15 @@ module Stdlib : sig (** [fold_lefti f init l] is like [fold_left] but also takes as parameter the zero-based index of the element *) + val fold_left_map2 + : ('acc -> 'a -> 'b -> 'acc * 'r) + -> 'acc + -> 'a list + -> 'b list + -> 'acc * 'r list + (** [fold_left_map2] is a combination of [fold_left2] and [map2] that threads an + accumulator through calls to [f]. *) + val chunks_of : int -> 'a t -> 'a t t (** [chunks_of n t] returns a list of nonempty lists whose concatenation is equal to the original list. Every list has [n] @@ -303,11 +312,16 @@ module Stdlib : sig external compare : 'a -> 'a -> int = "%compare" module Monad : sig - module type Basic = sig - type 'a t + module type Basic2 = sig + (** Multi parameter monad. The second parameter gets unified across all + the computation. This is used to encode monads working on a multi + parameter data structure like ([('a,'b) result]). *) - val bind : 'a t -> ('a -> 'b t) -> 'b t - val return : 'a -> 'a t + type ('a, 'e) t + + val bind : ('a, 'e) t -> ('a -> ('b, 'e) t) -> ('b, 'e) t + + val return : 'a -> ('a, _) t (** The following identities ought to hold (for some value of =): @@ -318,60 +332,58 @@ module Stdlib : sig Note: [>>=] is the infix notation for [bind]) *) end - module type Basic2 = sig - (** Multi parameter monad. The second parameter gets unified across all - the computation. This is used to encode monads working on a multi - parameter data structure like ([('a,'b) result]). *) + module type Basic = sig + type 'a t + include Basic2 with type ('a, _) t := 'a t + end + module type S2 = sig type ('a, 'e) t val bind : ('a, 'e) t -> ('a -> ('b, 'e) t) -> ('b, 'e) t - val return : 'a -> ('a, _) t - end - - module type S = sig - type 'a t - - val bind : 'a t -> ('a -> 'b t) -> 'b t - (** [>>=] is a synonym for [bind] *) - val (>>=) : 'a t -> ('a -> 'b t) -> 'b t + val (>>=) : ('a, 'e) t -> ('a -> ('b, 'e) t) -> ('b, 'e) t (** [return v] returns the (trivial) computation that returns v. *) - val return : 'a -> 'a t + val return : 'a -> ('a, _) t - val map : ('a -> 'b) -> 'a t -> 'b t + val map : ('a -> 'b) -> ('a, 'e) t -> ('b, 'e) t (** [join t] is [t >>= (fun t' -> t')]. *) - val join : 'a t t -> 'a t + val join : (('a, 'e) t, 'e) t -> ('a, 'e) t + + val both : ('a, 'e) t -> ('b, 'e) t -> ('a * 'b, 'e) t (** [ignore_m t] is [map (fun _ -> ()) t]. *) - val ignore_m : 'a t -> unit t + val ignore_m : (_, 'e) t -> (unit, 'e) t - val all : 'a t list -> 'a list t + val all : ('a, 'e) t list -> ('a list, 'e) t (** Like [all], but ensures that every monadic value in the list produces a unit value, all of which are discarded rather than being collected into a list. *) - val all_unit : unit t list -> unit t - end + val all_unit : (unit, 'e) t list -> (unit, 'e) t - module type S2 = sig - type ('a, 'e) t + (** As described at https://ocaml.org/manual/latest/bindingops.html *) + module Syntax : sig + val (let+) : ('a, 'e) t -> ('a -> 'b) -> ('b, 'e) t + val (and+) : ('a, 'e) t -> ('b, 'e) t -> ('a * 'b, 'e) t + val (let*) : ('a, 'e) t -> ('a -> ('b, 'e) t) -> ('b, 'e) t + val (and*) : ('a, 'e) t -> ('b, 'e) t -> ('a * 'b, 'e) t + end + end - val bind : ('a, 'e) t -> ('a -> ('b, 'e) t) -> ('b, 'e) t - val return : 'a -> ('a, _) t - val map : ('a -> 'b) -> ('a, 'e) t -> ('b, 'e) t - val join : (('a, 'e) t, 'e) t -> ('a, 'e) t - val ignore_m : (_, 'e) t -> (unit, 'e) t - val all : ('a, 'e) t list -> ('a list, 'e) t - val all_unit : (unit, 'e) t list -> (unit, 'e) t + module type S = sig + type 'a t + include S2 with type ('a, _) t := 'a t end + module Make (X : Basic) : S with type 'a t = 'a X.t module Make2 (X : Basic2) : S2 with type ('a, 'e) t = ('a, 'e) X.t + module Identity : S with type 'a t = 'a module Option : S with type 'a t = 'a option module Result : S2 with type ('a, 'e) t = ('a, 'e) result end @@ -462,6 +474,12 @@ val log2: int -> int (** [log2 n] returns [s] such that [n = 1 lsl s] if [n] is a power of 2*) +val log2_nativeint: nativeint -> int +(** [log2_nativeint n] computes [floor (log2 n)] when [ n > 0 ]. + If [n] is also a power of 2, the result [s] satisfies + [n = Nativeint.shift_left 1n s] +*) + val align: int -> int -> int (** [align n a] rounds [n] upwards to a multiple of [a] (a power of 2). *) @@ -1035,6 +1053,10 @@ module Le_result : sig val is_le : t -> bool val is_equal : t -> bool + + (* adaptors for structures that can only compare less-or-equal *) + val less_or_equal : le:('a -> 'a -> bool) -> 'a -> 'a -> t + val equal : le:('a -> 'a -> bool) -> 'a -> 'a -> bool end (** Propositional equality *) @@ -1068,3 +1090,21 @@ type filepath = string type alerts = string Stdlib.String.Map.t val remove_double_underscores : string -> string + +(** Non-empty lists *) +module Nonempty_list : sig + type nonrec 'a t = ( :: ) of 'a * 'a list + + val to_list : 'a t -> 'a list + val of_list_opt : 'a list -> 'a t option + val map : ('a -> 'b) -> 'a t -> 'b t + + val pp_print : + ?pp_sep:(Format.formatter -> unit -> unit) -> + (Format.formatter -> 'a -> unit) -> + Format.formatter -> + 'a t -> + unit + + val (@) : 'a t -> 'a t -> 'a t +end diff --git a/upstream/ocaml_flambda/utils/warnings.ml b/upstream/ocaml_flambda/utils/warnings.ml index cd13e4cd3..0ea3da8d5 100644 --- a/upstream/ocaml_flambda/utils/warnings.ml +++ b/upstream/ocaml_flambda/utils/warnings.ml @@ -126,6 +126,7 @@ type t = | Unerasable_position_argument (* 188 *) | Unnecessarily_partial_tuple_pattern (* 189 *) | Probe_name_too_long of string (* 190 *) + | Zero_alloc_all_hidden_arrow of string (* 198 *) | Unchecked_zero_alloc_attribute (* 199 *) | Unboxing_impossible (* 210 *) | Mod_by_top of string (* 211 *) @@ -215,6 +216,7 @@ let number = function | Unerasable_position_argument -> 188 | Unnecessarily_partial_tuple_pattern -> 189 | Probe_name_too_long _ -> 190 + | Zero_alloc_all_hidden_arrow _ -> 198 | Unchecked_zero_alloc_attribute -> 199 | Unboxing_impossible -> 210 | Mod_by_top _ -> 211 @@ -581,6 +583,11 @@ let descriptions = [ names = ["probe-name-too-long"]; description = "Probe name must be at most 100 characters long."; since = since 4 14 }; + { number = 198; + names = ["zero-alloc-all-hidden-arrow"]; + description = "A declaration whose type is an alias of a function type \ + will be ignored by zero_alloc all or all_opt."; + since = since 4 14 }; { number = 199; names = ["unchecked-zero-alloc-attribute"]; description = "A property of a function that was \ @@ -1228,6 +1235,14 @@ let message = function Printf.sprintf "This probe name is too long: `%s'. \ Probe names must be at most 100 characters long." name + | Zero_alloc_all_hidden_arrow s -> + Printf.sprintf + "The type of this item is an\n\ + alias of a function type, but the [@@@zero_alloc %s] attribute for\n\ + this signature does not apply to it because its type is not\n\ + syntactically a function type. If it should be checked, use an\n\ + explicit zero_alloc attribute with an arity. If not, use an explicit\n\ + zero_alloc ignore attribute." s | Unchecked_zero_alloc_attribute -> Printf.sprintf "the zero_alloc attribute cannot be checked.\n\ The function it is attached to was optimized away. \n\ diff --git a/upstream/ocaml_flambda/utils/warnings.mli b/upstream/ocaml_flambda/utils/warnings.mli index e7c7da9d5..3da8d8db7 100644 --- a/upstream/ocaml_flambda/utils/warnings.mli +++ b/upstream/ocaml_flambda/utils/warnings.mli @@ -132,6 +132,7 @@ type t = | Unerasable_position_argument (* 188 *) | Unnecessarily_partial_tuple_pattern (* 189 *) | Probe_name_too_long of string (* 190 *) + | Zero_alloc_all_hidden_arrow of string (* 198 *) | Unchecked_zero_alloc_attribute (* 199 *) | Unboxing_impossible (* 210 *) | Mod_by_top of string (* 211 *) diff --git a/upstream/ocaml_flambda/utils/zero_alloc_annotations.ml b/upstream/ocaml_flambda/utils/zero_alloc_annotations.ml index b05538097..daa871d98 100644 --- a/upstream/ocaml_flambda/utils/zero_alloc_annotations.ml +++ b/upstream/ocaml_flambda/utils/zero_alloc_annotations.ml @@ -25,32 +25,71 @@ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * * DEALINGS IN THE SOFTWARE. * ******************************************************************************) -type t = Check_default | Check_all | Check_opt_only | No_check - -let all = [ Check_default; Check_all; Check_opt_only; No_check ] - -let to_string = function - | Check_default -> "default" - | Check_all -> "all" - | Check_opt_only -> "opt" - | No_check -> "none" - -let equal t1 t2 = - match t1, t2 with - | Check_default, Check_default -> true - | Check_all, Check_all -> true - | No_check, No_check -> true - | Check_opt_only, Check_opt_only -> true - | (Check_default | Check_all | Check_opt_only | No_check), _ -> false - -let of_string v = - let f t = - if String.equal (to_string t) v then Some t else None - in - List.find_map f all - -let doc = - "\n\ The argument specifies which annotations to check: \n\ - \ \"opt\" means attributes with \"opt\" payload and is intended for debugging;\n\ +module Check = struct + type t = + | Check_default + | Check_all + | Check_opt_only + | No_check + + let all = [Check_default; Check_all; Check_opt_only; No_check] + + let to_string = function + | Check_default -> "default" + | Check_all -> "all" + | Check_opt_only -> "opt" + | No_check -> "none" + + let equal t1 t2 = + match t1, t2 with + | Check_default, Check_default -> true + | Check_all, Check_all -> true + | No_check, No_check -> true + | Check_opt_only, Check_opt_only -> true + | (Check_default | Check_all | Check_opt_only | No_check), _ -> false + + let of_string v = + let f t = if String.equal (to_string t) v then Some t else None in + List.find_map f all + + let doc = + "\n\ + \ The argument specifies which annotations to check: \n\ + \ \"opt\" means attributes with \"opt\" payload and is intended for \ + debugging;\n\ \ \"default\" means attributes without \"opt\" payload; \n\ - \ \"all\" covers both \"opt\" and \"default\" and is intended for optimized builds." + \ \"all\" covers both \"opt\" and \"default\" and is intended for \ + optimized builds." +end + +module Assert = struct + type t = + | Assert_default + | Assert_all + | Assert_all_opt + + let all = [Assert_default; Assert_all; Assert_all_opt] + + let to_string = function + | Assert_default -> "default" + | Assert_all -> "all" + | Assert_all_opt -> "all_opt" + + let equal t1 t2 = + match t1, t2 with + | Assert_default, Assert_default -> true + | Assert_all, Assert_all -> true + | Assert_all_opt, Assert_all_opt -> true + | (Assert_default | Assert_all | Assert_all_opt), _ -> false + + let of_string v = + let f t = if String.equal (to_string t) v then Some t else None in + List.find_map f all + + let doc = + "\n\ + \ The argument specifies which annotations to use: \n\ + \ \"all\" is equivalent to adding [@@@zero_alloc all]\n\ + \ \"all_opt\" is equivalent to adding [@@@zero_alloc all_opt]\n\ + \ \"default\" does not add any attributes." +end diff --git a/upstream/ocaml_flambda/utils/zero_alloc_annotations.mli b/upstream/ocaml_flambda/utils/zero_alloc_annotations.mli index f5daa03b1..ebc8ca25c 100644 --- a/upstream/ocaml_flambda/utils/zero_alloc_annotations.mli +++ b/upstream/ocaml_flambda/utils/zero_alloc_annotations.mli @@ -25,9 +25,37 @@ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * * DEALINGS IN THE SOFTWARE. * ******************************************************************************) -type t = Check_default | Check_all | Check_opt_only | No_check -val all : t list -val to_string : t -> string -val of_string : string -> t option -val equal : t -> t -> bool -val doc : string +module Check : sig + type t = + | Check_default + | Check_all + | Check_opt_only + | No_check + + val all : t list + + val to_string : t -> string + + val of_string : string -> t option + + val equal : t -> t -> bool + + val doc : string +end + +module Assert : sig + type t = + | Assert_default + | Assert_all + | Assert_all_opt + + val all : t list + + val to_string : t -> string + + val of_string : string -> t option + + val equal : t -> t -> bool + + val doc : string +end From 88c80c1814de2cf9c341ece06d1f3f0beeb3d2a2 Mon Sep 17 00:00:00 2001 From: Richard Eisenberg Date: Tue, 11 Feb 2025 15:57:13 -0500 Subject: [PATCH 02/25] Commit conflicts --- src/ocaml/parsing/ast_helper.ml | 2 +- src/ocaml/parsing/ast_iterator.ml | 5 +- src/ocaml/parsing/ast_mapper.ml | 4 +- src/ocaml/parsing/builtin_attributes.ml | 226 ++- src/ocaml/parsing/builtin_attributes.mli | 9 +- src/ocaml/parsing/parsetree.mli | 4 +- src/ocaml/parsing/pprintast.ml | 16 + src/ocaml/parsing/printast.ml | 9 +- src/ocaml/preprocess/parser_raw.mly | 39 +- src/ocaml/typing/btype.ml | 7 +- src/ocaml/typing/btype.mli | 1 + src/ocaml/typing/ctype.ml | 418 +++-- src/ocaml/typing/ctype.mli | 11 +- src/ocaml/typing/datarepr.ml | 17 +- src/ocaml/typing/env.ml | 201 +-- src/ocaml/typing/env.mli | 29 +- src/ocaml/typing/includecore.ml | 115 +- src/ocaml/typing/includecore.mli | 5 + src/ocaml/typing/jkind.ml | 1832 +++++++++++++++----- src/ocaml/typing/jkind.mli | 420 +++-- src/ocaml/typing/jkind_axis.ml | 444 ++++- src/ocaml/typing/jkind_axis.mli | 248 ++- src/ocaml/typing/jkind_types.ml | 107 -- src/ocaml/typing/jkind_types.mli | 101 +- src/ocaml/typing/mode.ml | 91 +- src/ocaml/typing/mode_intf.mli | 59 +- src/ocaml/typing/oprint.ml | 133 +- src/ocaml/typing/outcometree.mli | 5 +- src/ocaml/typing/parmatch.ml | 8 +- src/ocaml/typing/predef.ml | 129 +- src/ocaml/typing/predef.mli | 9 +- src/ocaml/typing/printtyp.ml | 76 +- src/ocaml/typing/subst.ml | 96 +- src/ocaml/typing/typeclass.ml | 2 - src/ocaml/typing/typecore.ml | 110 +- src/ocaml/typing/typecore.mli | 3 +- src/ocaml/typing/typedecl.ml | 633 +++++-- src/ocaml/typing/typedecl.mli | 3 + src/ocaml/typing/typedecl_separability.ml | 5 +- src/ocaml/typing/typedecl_variance.ml | 6 +- src/ocaml/typing/typedtree.ml | 21 +- src/ocaml/typing/typemod.ml | 187 +- src/ocaml/typing/typemode.ml | 114 +- src/ocaml/typing/typemode.mli | 10 +- src/ocaml/typing/typeopt.ml | 19 +- src/ocaml/typing/types.ml | 222 ++- src/ocaml/typing/types.mli | 128 +- src/ocaml/typing/typetexp.ml | 27 +- src/ocaml/typing/typetexp.mli | 7 + src/ocaml/typing/zero_alloc.ml | 56 +- src/ocaml/typing/zero_alloc.mli | 7 +- src/ocaml/utils/warnings.ml | 15 + src/ocaml/utils/warnings.mli | 1 + src/ocaml/utils/zero_alloc_annotations.ml | 95 +- src/ocaml/utils/zero_alloc_annotations.mli | 40 +- 55 files changed, 4829 insertions(+), 1758 deletions(-) diff --git a/src/ocaml/parsing/ast_helper.ml b/src/ocaml/parsing/ast_helper.ml index 076364df0..f046cc358 100644 --- a/src/ocaml/parsing/ast_helper.ml +++ b/src/ocaml/parsing/ast_helper.ml @@ -147,7 +147,7 @@ module Typ = struct | Default as x -> x | Abbreviation _ as x -> x | Mod (jkind, modes) -> Mod (loop_jkind jkind, modes) - | With (jkind, typ) -> With (loop_jkind jkind, loop typ) + | With (jkind, typ, modalities) -> With (loop_jkind jkind, loop typ, modalities) | Kind_of typ -> Kind_of (loop typ) | Product jkinds -> Product (List.map loop_jkind jkinds) in diff --git a/src/ocaml/parsing/ast_iterator.ml b/src/ocaml/parsing/ast_iterator.ml index c1ca9b78b..7311e2586 100644 --- a/src/ocaml/parsing/ast_iterator.ml +++ b/src/ocaml/parsing/ast_iterator.ml @@ -842,9 +842,10 @@ let default_iterator = | Mod (t, mode_list) -> this.jkind_annotation this t; this.modes this mode_list - | With (t, ty) -> + | With (t, ty, modalities) -> this.jkind_annotation this t; - this.typ this ty + this.typ this ty; + this.modalities this modalities | Kind_of ty -> this.typ this ty | Product ts -> List.iter (this.jkind_annotation this) ts); diff --git a/src/ocaml/parsing/ast_mapper.ml b/src/ocaml/parsing/ast_mapper.ml index 5c4a83823..177198f18 100644 --- a/src/ocaml/parsing/ast_mapper.ml +++ b/src/ocaml/parsing/ast_mapper.ml @@ -946,8 +946,8 @@ let default_mapper = | Abbreviation (s : string) -> Abbreviation s | Mod (t, mode_list) -> Mod (this.jkind_annotation this t, this.modes this mode_list) - | With (t, ty) -> - With (this.jkind_annotation this t, this.typ this ty) + | With (t, ty, modalities) -> + With (this.jkind_annotation this t, this.typ this ty, this.modalities this modalities) | Kind_of ty -> Kind_of (this.typ this ty) | Product ts -> Product (List.map (this.jkind_annotation this) ts) in diff --git a/src/ocaml/parsing/builtin_attributes.ml b/src/ocaml/parsing/builtin_attributes.ml index 77551b3e3..31d31fbe9 100644 --- a/src/ocaml/parsing/builtin_attributes.ml +++ b/src/ocaml/parsing/builtin_attributes.ml @@ -509,9 +509,8 @@ let has_unboxed attrs = has_attribute "unboxed" attrs let has_boxed attrs = has_attribute "boxed" attrs -let has_unsafe_allow_any_kind_in_intf attrs = has_attribute "unsafe_allow_any_kind_in_intf" attrs - -let has_unsafe_allow_any_kind_in_impl attrs = has_attribute "unsafe_allow_any_kind_in_impl" attrs +let has_unsafe_allow_any_mode_crossing attrs = + has_attribute "unsafe_allow_any_mode_crossing" attrs let parse_empty_payload attr = match attr.attr_payload with @@ -608,28 +607,48 @@ let parse_attribute_with_ident_payload attr ~name ~f = | Some i -> f i | None -> ()) -let zero_alloc_attribute (attr : Parsetree.attribute) = +let zero_alloc_attribute ~in_signature (attr : Parsetree.attribute) = + let module A = Zero_alloc_annotations in + let msg = + if in_signature then + "Only 'all' and 'all_opt' are supported" + else + "Only 'all', 'all_opt', 'check', 'check_opt', 'check_all', and 'check_none' are supported" + in + let warn () = + warn_payload attr.attr_loc attr.attr_name.txt msg + in + let set_if_not_in_sig r v = + if not in_signature then + r := v + else + warn () + in parse_attribute_with_ident_payload attr ~name:"zero_alloc" ~f:(function - | "check" -> Clflags.zero_alloc_check := Zero_alloc_annotations.Check_default - | "check_opt" -> Clflags.zero_alloc_check := Zero_alloc_annotations.Check_opt_only - | "check_all" -> Clflags.zero_alloc_check := Zero_alloc_annotations.Check_all - | "check_none" -> Clflags.zero_alloc_check := Zero_alloc_annotations.No_check - | "all" -> - Clflags.zero_alloc_check_assert_all := true + | "check" -> set_if_not_in_sig Clflags.zero_alloc_check A.Check.Check_default + | "check_opt" -> set_if_not_in_sig Clflags.zero_alloc_check A.Check.Check_opt_only + | "check_all" -> set_if_not_in_sig Clflags.zero_alloc_check A.Check.Check_all + | "check_none" -> set_if_not_in_sig Clflags.zero_alloc_check A.Check.No_check + | "all" -> Clflags.zero_alloc_assert := A.Assert.Assert_all + | "all_opt" -> Clflags.zero_alloc_assert := A.Assert.Assert_all_opt | _ -> +<<<<<<< janestreet/merlin-jst:rae/with-kinds-roll warn_payload attr.attr_loc attr.attr_name.txt "Only 'all', 'check', 'check_opt', 'check_all', and 'check_none' are supported") *) +||||||| ocaml-flambda/flambda-backend:df4a6e0ba4f74dc790e0ad79f15ea73be1225c4b + warn_payload attr.attr_loc attr.attr_name.txt + "Only 'all', 'check', 'check_opt', 'check_all', and 'check_none' are supported") +======= + warn ()) +>>>>>>> ocaml-flambda/flambda-backend:main let attribute_with_ignored_payload name attr = when_attribute_is [name; "ocaml." ^ name] attr ~f:(fun () -> ()) -let unsafe_allow_any_kind_in_impl_attribute = - attribute_with_ignored_payload "unsafe_allow_any_kind_in_impl" - -let unsafe_allow_any_kind_in_intf_attribute = - attribute_with_ignored_payload "unsafe_allow_any_kind_in_intf" +let unsafe_allow_any_mode_crossing_attribute = + attribute_with_ignored_payload "unsafe_allow_any_mode_crossing" (* let afl_inst_ratio_attribute attr = @@ -642,7 +661,8 @@ let parse_standard_interface_attributes attr = principal_attribute attr; noprincipal_attribute attr; nolabels_attribute attr; - unsafe_allow_any_kind_in_intf_attribute attr + zero_alloc_attribute ~in_signature:true attr; + unsafe_allow_any_mode_crossing_attribute attr let parse_standard_implementation_attributes attr = warning_attribute attr; @@ -654,9 +674,17 @@ let parse_standard_implementation_attributes attr = afl_inst_ratio_attribute attr; flambda_o3_attribute attr; flambda_oclassic_attribute attr; +<<<<<<< janestreet/merlin-jst:rae/with-kinds-roll zero_alloc_attribute attr *) unsafe_allow_any_kind_in_impl_attribute attr +||||||| ocaml-flambda/flambda-backend:df4a6e0ba4f74dc790e0ad79f15ea73be1225c4b + zero_alloc_attribute attr; + unsafe_allow_any_kind_in_impl_attribute attr +======= + zero_alloc_attribute ~in_signature:false attr; + unsafe_allow_any_mode_crossing_attribute attr +>>>>>>> ocaml-flambda/flambda-backend:main let has_no_mutable_implied_modalities attrs = has_attribute "no_mutable_implied_modalities" attrs @@ -718,6 +746,7 @@ type zero_alloc_check = opt: bool; arity: int; loc: Location.t; + custom_error_msg : string option; } type zero_alloc_assume = @@ -790,11 +819,17 @@ let get_id_from_exp = | { pexp_desc = Pexp_ident { txt = Longident.Lident id } } -> Result.Ok id | _ -> Result.Error () +type parsed_payload = + | Ident + | Const_int + | Const_string + let get_id_or_constant_from_exp = let open Parsetree in function - | { pexp_desc = Pexp_ident { txt = Longident.Lident id } } -> Result.Ok id - | { pexp_desc = Pexp_constant (Pconst_integer (s,None)) } -> Result.Ok s + | { pexp_desc = Pexp_ident { txt = Longident.Lident id } } -> Result.Ok (Ident, id) + | { pexp_desc = Pexp_constant (Pconst_integer (s,None)) } -> Result.Ok (Const_int, s) + | { pexp_desc = Pexp_constant (Pconst_string (s,_loc,_so)) } -> Result.Ok (Const_string, s) | _ -> Result.Error () let get_ids_and_constants_from_exp exp = @@ -834,68 +869,96 @@ let parse_optional_id_payload txt loc ~empty cases payload = | Some r -> Ok r | None -> warn () +(* Looks for `custom_error_message msg` in payload. + If present, this returns `msg` and an updated payload + with `customer_error_message msg` removed. + Preserves the order of the payload. *) +let filter_custom_error_message payload = + let rec find_msg acc payload = + match payload with + | [] | [_] -> None + | (Ident, "custom_error_message")::(Const_string, msg)::payload -> + Some (msg, (List.rev acc) @ payload) + | s1::payload -> find_msg (s1 :: acc) payload + in + find_msg [] payload + (* Looks for `arity n` in payload. If present, this returns `n` and an updated payload with `arity n` removed. Note it may change the order of the payload, which is fine because we sort it later. *) let filter_arity payload = - let is_arity s1 s2 = - match s1 with - | "arity" -> int_of_string_opt s2 - | _ -> None - in let rec find_arity acc payload = match payload with | [] | [_] -> None - | s1 :: ((s2 :: payload) as payload') -> - begin match is_arity s1 s2 with - | Some n -> Some (n, acc @ payload) - | None -> find_arity (s1 :: acc) payload' - end + | (Ident, "arity") as s1 :: ((Const_int, n) :: payload) as payload' -> + (match int_of_string_opt n with + | Some n -> Some (n, acc @ payload) + | None -> find_arity (s1 :: acc) payload') + | s1::payload' -> find_arity (s1 :: acc) payload' in find_arity [] payload +(* If "assume_unless_opt" is not found returns None, otherwise + returns the rest of the payload. Note it may change the order of the payload, + which is fine because we sort it later. *) +let filter_assume_unless_opt payload = + let rec find acc payload = + match payload with + | [] -> None + | "assume_unless_opt"::tl -> Some (acc @ tl) + | hd::tl -> find (hd::acc) tl + in + find [] payload + let zero_alloc_lookup_table = (* These are the possible payloads (sans arity) paired with a function that returns the corresponding check_attribute, given the arity and the loc. *) [ (["assume"], - fun arity loc -> + fun arity loc _ -> + Assume { strict = false; never_returns_normally = false; + never_raises = false; + arity; loc; }); + (["assume_unless_opt"], + fun arity loc _ -> + (* same as "assume" *) Assume { strict = false; never_returns_normally = false; never_raises = false; arity; loc; }); (["strict"], - fun arity loc -> - Check { strict = true; opt = false; arity; loc; }); + fun arity loc custom_error_msg -> + Check { strict = true; opt = false; arity; loc; custom_error_msg; }); (["opt"], - fun arity loc -> - Check { strict = false; opt = true; arity; loc; }); + fun arity loc custom_error_msg -> + Check { strict = false; opt = true; arity; loc; custom_error_msg; }); (["opt"; "strict"; ], - fun arity loc -> - Check { strict = true; opt = true; arity; loc; }); + fun arity loc custom_error_msg -> + Check { strict = true; opt = true; arity; loc; custom_error_msg; }); (["assume"; "strict"], - fun arity loc -> + fun arity loc _ -> Assume { strict = true; never_returns_normally = false; never_raises = false; arity; loc; }); (["assume"; "never_returns_normally"], - fun arity loc -> + fun arity loc _ -> Assume { strict = false; never_returns_normally = true; never_raises = false; arity; loc; }); (["assume"; "never_returns_normally"; "strict"], - fun arity loc -> + fun arity loc _ -> Assume { strict = true; never_returns_normally = true; never_raises = false; arity; loc; }); (["assume"; "error"], - fun arity loc -> + fun arity loc _ -> Assume { strict = true; never_returns_normally = true; never_raises = true; arity; loc; }); - (["ignore"], fun _ _ -> Ignore_assert_all) + (["ignore"], fun _ _ _ -> Ignore_assert_all) ] -let parse_zero_alloc_payload ~loc ~arity ~warn ~empty payload = +let parse_zero_alloc_payload ~loc ~arity ~custom_error_message + ~warn ~empty payload = (* This parses the remainder of the payload after arity has been parsed out. *) match payload with @@ -904,34 +967,56 @@ let parse_zero_alloc_payload ~loc ~arity ~warn ~empty payload = let payload = List.sort String.compare payload in match List.assoc_opt payload zero_alloc_lookup_table with | None -> warn (); Default_zero_alloc - | Some ca -> ca arity loc + | Some ca -> ca arity loc custom_error_message -let parse_zero_alloc_attribute ~is_arity_allowed ~default_arity attr = +let parse_zero_alloc_attribute ~in_signature ~on_application ~default_arity attr = match attr with | None -> Default_zero_alloc | Some {Parsetree.attr_name = {txt; loc}; attr_payload = payload} -> let warn () = let ( %> ) f g x = g (f x) in let msg = - zero_alloc_lookup_table + let custom_payloads = + let fail _ _ _ = assert false in + [ + (["arity "], fail); + (["custom_error_message "], fail) + ] + in + (zero_alloc_lookup_table@custom_payloads) |> List.map (fst %> String.concat " " %> Printf.sprintf "'%s'") |> String.concat ", " |> Printf.sprintf "It must be either %s or empty" in Location.prerr_warning loc (Warnings.Attribute_payload (txt, msg)) in - let empty arity = - Check { strict = false; opt = false; arity; loc; } + let empty arity custom_error_msg = + Check { strict = false; opt = false; arity; loc; custom_error_msg; } in match get_optional_payload get_ids_and_constants_from_exp payload with | Error () -> warn (); Default_zero_alloc - | Ok None -> empty default_arity + | Ok None -> empty default_arity None | Ok (Some payload) -> + let custom_error_message, payload = + match filter_custom_error_message payload with + | None -> None, payload + | Some (custom_error_message, payload) -> + let is_assume = function + | (Ident, ("assume" | "assume_unless_opt")) -> true + | _ -> false + in + if List.exists is_assume payload then + (warn_payload loc txt + "The \"custom_error_message\" payload is not supported with \"assume\"."; + None, payload) + else + Some custom_error_message, payload + in let arity, payload = match filter_arity payload with | None -> default_arity, payload | Some (user_arity, payload) -> - if is_arity_allowed then + if in_signature then user_arity, payload else (warn_payload loc txt @@ -939,12 +1024,48 @@ let parse_zero_alloc_attribute ~is_arity_allowed ~default_arity attr = signatures"; default_arity, payload) in - parse_zero_alloc_payload ~loc ~arity ~warn ~empty:(empty arity) payload - -let get_zero_alloc_attribute ~in_signature ~default_arity l = + let _, payload = List.split payload in + let parse p = + let empty = empty arity custom_error_message in + parse_zero_alloc_payload ~loc ~arity ~custom_error_message ~warn ~empty p + in + match filter_assume_unless_opt payload with + | None -> parse payload + | Some rest -> + if in_signature then + (warn_payload loc txt + "The payload \"assume_unless_opt\" is not supported \ + in signatures."; + (* Treat [@zero_alloc assume_unless_opt] as [@zero_alloc] in signatures. *) + parse rest) + else + let no_other_payload = List.compare_length_with rest 0 = 0 in + if no_other_payload then ( + if is_zero_alloc_check_enabled ~opt:true then + (if on_application then + (* Treat as if there is no attribute. + Check is not allowed on applications. *) + Default_zero_alloc + else + (* Treat [@zero_alloc assume_unless_opt] as [@zero_alloc], + forcing the function to be checked. + Setting [opt = false] to satisfy [@zero_alloc] + and not only [@zero_alloc opt] on the corresponding signatures. *) + empty arity custom_error_message) + else + (* Treat "assume_unless_opt" as "assume". + Reuse standard parsing for better error messages. *) + parse payload) + else ( + (* No support for other payloads with "assume_unless_opt". *) + warn (); + Default_zero_alloc) + + +let get_zero_alloc_attribute ~in_signature ~on_application ~default_arity l = let attr = select_attribute is_zero_alloc_attribute l in let res = - parse_zero_alloc_attribute ~is_arity_allowed:in_signature ~default_arity + parse_zero_alloc_attribute ~in_signature ~on_application ~default_arity attr in (match attr, res with @@ -969,6 +1090,7 @@ let zero_alloc_attribute_only_assume_allowed za = let name = "zero_alloc" in let msg = "Only the following combinations are supported in this context: \ 'zero_alloc assume', \ + 'zero_alloc assume_unless_opt', \ `zero_alloc assume strict`, \ `zero_alloc assume error`,\ `zero_alloc assume never_returns_normally`,\ diff --git a/src/ocaml/parsing/builtin_attributes.mli b/src/ocaml/parsing/builtin_attributes.mli index 1a27e8857..fb207d53f 100644 --- a/src/ocaml/parsing/builtin_attributes.mli +++ b/src/ocaml/parsing/builtin_attributes.mli @@ -35,8 +35,7 @@ - ocaml.tailcall - ocaml.tail_mod_cons - ocaml.unboxed - - ocaml.unsafe_allow_any_kind_in_impl - - ocaml.unsafe_allow_any_kind_in_intf + - ocaml.unsafe_allow_any_mode_crossing - ocaml.untagged - ocaml.unrolled - ocaml.warnerror @@ -200,8 +199,7 @@ val explicit_arity: Parsetree.attributes -> bool val has_unboxed: Parsetree.attributes -> bool val has_boxed: Parsetree.attributes -> bool -val has_unsafe_allow_any_kind_in_impl: Parsetree.attributes -> bool -val has_unsafe_allow_any_kind_in_intf: Parsetree.attributes -> bool +val has_unsafe_allow_any_mode_crossing : Parsetree.attributes -> bool val parse_standard_interface_attributes : Parsetree.attribute -> unit val parse_standard_implementation_attributes : Parsetree.attribute -> unit @@ -285,6 +283,7 @@ type zero_alloc_check = opt: bool; arity: int; loc: Location.t; + custom_error_msg : string option; } type zero_alloc_assume = @@ -311,7 +310,7 @@ val is_zero_alloc_check_enabled : opt:bool -> bool "arity n" field is allowed, and whether we track this attribute for warning 199. *) val get_zero_alloc_attribute : - in_signature:bool -> default_arity:int -> Parsetree.attributes -> + in_signature:bool -> on_application:bool-> default_arity:int -> Parsetree.attributes -> zero_alloc_attribute (* This returns the [zero_alloc_assume] if the input is an assume. Otherwise, diff --git a/src/ocaml/parsing/parsetree.mli b/src/ocaml/parsing/parsetree.mli index 71addd4cd..fb722fa38 100644 --- a/src/ocaml/parsing/parsetree.mli +++ b/src/ocaml/parsing/parsetree.mli @@ -1296,8 +1296,10 @@ and module_binding = and jkind_annotation_desc = | Default | Abbreviation of string + (* CR layouts v2.8: [mod] can have only layouts on the left, not + full kind annotations. We may want to narrow this type some. *) | Mod of jkind_annotation * modes - | With of jkind_annotation * core_type + | With of jkind_annotation * core_type * modalities | Kind_of of core_type | Product of jkind_annotation list diff --git a/src/ocaml/parsing/pprintast.ml b/src/ocaml/parsing/pprintast.ml index 548ee234a..ca8b93e9b 100644 --- a/src/ocaml/parsing/pprintast.ml +++ b/src/ocaml/parsing/pprintast.ml @@ -463,11 +463,27 @@ and jkind_annotation ?(nested = false) ctxt f k = match k.pjkind_desc with (pp_print_list ~pp_sep:pp_print_space mode) modes ) f (t, modes) end +<<<<<<< janestreet/merlin-jst:rae/with-kinds-roll | With (t, ty) -> Misc_stdlib.pp_parens_if nested (fun f (t, ty) -> pp f "%a with %a" (jkind_annotation ~nested:true ctxt) t (core_type ctxt) ty ) f (t, ty) +||||||| ocaml-flambda/flambda-backend:df4a6e0ba4f74dc790e0ad79f15ea73be1225c4b + | With (t, ty) -> + Misc.pp_parens_if nested (fun f (t, ty) -> + pp f "%a with %a" (jkind_annotation ~nested:true ctxt) t (core_type ctxt) + ty + ) f (t, ty) +======= + | With (t, ty, modalities) -> + Misc.pp_parens_if nested (fun f (t, ty, modalities) -> + pp f "%a with %a%a" + (jkind_annotation ~nested:true ctxt) t + (core_type ctxt) ty + optional_space_atat_modalities modalities; + ) f (t, ty, modalities) +>>>>>>> ocaml-flambda/flambda-backend:main | Kind_of ty -> pp f "kind_of_ %a" (core_type ctxt) ty | Product ts -> Misc_stdlib.pp_parens_if nested (fun f ts -> diff --git a/src/ocaml/parsing/printast.ml b/src/ocaml/parsing/printast.ml index 2d641454d..aa32c5d3d 100644 --- a/src/ocaml/parsing/printast.ml +++ b/src/ocaml/parsing/printast.ml @@ -509,10 +509,11 @@ and jkind_annotation i ppf (jkind : jkind_annotation) = line i ppf "Mod\n"; jkind_annotation (i+1) ppf jkind; modes (i+1) ppf m - | With (jkind, type_) -> + | With (jkind, type_, modalities_) -> line i ppf "With\n"; jkind_annotation (i+1) ppf jkind; - core_type (i+1) ppf type_ + core_type (i+1) ppf type_; + modalities (i+1) ppf modalities_ | Kind_of type_ -> line i ppf "Kind_of\n"; core_type (i+1) ppf type_ @@ -578,7 +579,9 @@ and type_declaration i ppf x = type_kind (i+1) ppf x.ptype_kind; line i ppf "ptype_private = %a\n" fmt_private_flag x.ptype_private; line i ppf "ptype_manifest =\n"; - option (i+1) core_type ppf x.ptype_manifest + option (i+1) core_type ppf x.ptype_manifest; + line i ppf "ptype_jkind_annotation =\n"; + option (i+1) jkind_annotation ppf x.ptype_jkind_annotation and attribute i ppf k a = line i ppf "%s \"%s\"\n" k a.attr_name.txt; diff --git a/src/ocaml/preprocess/parser_raw.mly b/src/ocaml/preprocess/parser_raw.mly index 79b19a5ff..693b52975 100644 --- a/src/ocaml/preprocess/parser_raw.mly +++ b/src/ocaml/preprocess/parser_raw.mly @@ -2933,16 +2933,26 @@ optional_atomic_constraint_: } | { empty_body_constraint } +<<<<<<< janestreet/merlin-jst:rae/with-kinds-roll %public fun_expr [@recovery default_expr ()]: +||||||| ocaml-flambda/flambda-backend:df4a6e0ba4f74dc790e0ad79f15ea73be1225c4b +fun_expr: +======= +fun_: + /* Cf #5939: we used to accept (fun p when e0 -> e) */ + | FUN ext_attributes fun_params body_constraint = optional_atomic_constraint_ + MINUSGREATER fun_body + { mkfunction $3 body_constraint $6 ~loc:$sloc ~attrs:$2 } + +fun_expr: +>>>>>>> ocaml-flambda/flambda-backend:main simple_expr %prec below_HASH { $1 } | fun_expr_attrs { let desc, attrs = $1 in mkexp_attrs ~loc:$sloc desc attrs } - /* Cf #5939: we used to accept (fun p when e0 -> e) */ - | FUN ext_attributes fun_params body_constraint = optional_atomic_constraint_ - MINUSGREATER fun_body - { mkfunction $3 body_constraint $6 ~loc:$sloc ~attrs:$2 } + | fun_ + { $1 } | expr_ { $1 } | let_bindings(ext) IN seq_expr @@ -3031,17 +3041,30 @@ optional_atomic_constraint_: { mkexp ~loc:$sloc (Pexp_apply($1, $2)) } | STACK simple_expr { mkexp ~loc:$sloc (Pexp_stack $2) } + | STACK or_function(fun_) + { mkexp ~loc:$sloc (Pexp_stack $2) } | labeled_tuple %prec below_COMMA { mkexp ~loc:$sloc (Pexp_tuple $1) } - | mkrhs(constr_longident) simple_expr %prec below_HASH - { mkexp ~loc:$sloc (Pexp_construct($1, Some $2)) } + | constructor_app %prec below_HASH { $1 } + | STACK constructor_app %prec below_HASH + { mkexp ~loc:$sloc (Pexp_stack $2) } | name_tag simple_expr %prec below_HASH { mkexp ~loc:$sloc (Pexp_variant($1, Some $2)) } | e1 = fun_expr op = op(infix_operator) e2 = expr { mkexp ~loc:$sloc (mkinfix e1 op e2) } ; +<<<<<<< janestreet/merlin-jst:rae/with-kinds-roll %public simple_expr: +||||||| ocaml-flambda/flambda-backend:df4a6e0ba4f74dc790e0ad79f15ea73be1225c4b +simple_expr: +======= +%inline constructor_app: + | mkrhs(constr_longident) simple_expr + { mkexp ~loc:$sloc (Pexp_construct($1, Some $2)) } + +simple_expr: +>>>>>>> ocaml-flambda/flambda-backend:main | LPAREN seq_expr RPAREN { reloc_exp ~loc:$sloc $2 } (* @@ -4145,8 +4168,8 @@ jkind_desc: in Mod ($1, modes) } - | jkind_annotation WITH core_type { - With ($1, $3) + | jkind_annotation WITH core_type optional_atat_modalities_expr { + With ($1, $3, $4) } | ident { Abbreviation $1 diff --git a/src/ocaml/typing/btype.ml b/src/ocaml/typing/btype.ml index 32aabfaec..861828879 100644 --- a/src/ocaml/typing/btype.ml +++ b/src/ocaml/typing/btype.ml @@ -48,6 +48,7 @@ module TypeHash = struct include TransientTypeHash let mem hash = wrap_repr (mem hash) let add hash = wrap_repr (add hash) + let replace hash = wrap_repr (replace hash) let remove hash = wrap_repr (remove hash) let find hash = wrap_repr (find hash) let find_opt hash = wrap_repr (find_opt hash) @@ -337,16 +338,16 @@ let map_type_expr_cstr_args f = function let iter_type_expr_kind f = function | Type_abstract _ -> () - | Type_variant (cstrs, _) -> + | Type_variant (cstrs, _, _) -> List.iter (fun cd -> iter_type_expr_cstr_args f cd.cd_args; Option.iter f cd.cd_res ) cstrs - | Type_record(lbls, _) -> + | Type_record(lbls, _, _) -> List.iter (fun d -> f d.ld_type) lbls - | Type_record_unboxed_product(lbls, _) -> + | Type_record_unboxed_product(lbls, _, _) -> List.iter (fun d -> f d.ld_type) lbls | Type_open -> () diff --git a/src/ocaml/typing/btype.mli b/src/ocaml/typing/btype.mli index 4c4493dc6..706e50eb3 100644 --- a/src/ocaml/typing/btype.mli +++ b/src/ocaml/typing/btype.mli @@ -41,6 +41,7 @@ module TypeHash : sig include Hashtbl.S with type key = transient_expr val mem: 'a t -> type_expr -> bool val add: 'a t -> type_expr -> 'a -> unit + val replace: 'a t -> type_expr -> 'a -> unit val remove: 'a t -> type_expr -> unit val find: 'a t -> type_expr -> 'a val find_opt: 'a t -> type_expr -> 'a option diff --git a/src/ocaml/typing/ctype.ml b/src/ocaml/typing/ctype.ml index 78aa60c33..5478c0de3 100644 --- a/src/ocaml/typing/ctype.ml +++ b/src/ocaml/typing/ctype.ml @@ -713,7 +713,7 @@ let closed_type_decl decl = begin match decl.type_kind with Type_abstract _ -> () - | Type_variant (v, _rep) -> + | Type_variant (v, _rep, _) -> List.iter (fun {cd_args; cd_res; _} -> match cd_res with @@ -731,9 +731,9 @@ let closed_type_decl decl = | None -> List.iter close_type (tys_of_constr_args cd_args) ) v - | Type_record(r, _rep) -> + | Type_record(r, _rep, _) -> List.iter (fun l -> close_type l.ld_type) r - | Type_record_unboxed_product(r, _rep) -> + | Type_record_unboxed_product(r, _rep, _) -> List.iter (fun l -> close_type l.ld_type) r | Type_open -> () end; @@ -1421,7 +1421,6 @@ let new_local_type ?(loc = Location.none) ?manifest_and_scope origin jkind = type_attributes = []; type_unboxed_default = false; type_uid = Uid.mk ~current_unit:(Env.get_unit_name ()); - type_has_illegal_crossings = false; } let existential_name name_counter ty = @@ -1485,10 +1484,17 @@ let instance_parameterized_type ?keep_names sch_args sch = (ty_args, ty) ) +let instance_parameterized_kind args jkind = + For_copy.with_scope (fun copy_scope -> + let ty_args = List.map (fun t -> copy copy_scope t) args in + let jkind = Jkind.map_type_expr (copy copy_scope) jkind in + (ty_args, jkind) + ) + (* [map_kind f kind] maps [f] over all the types in [kind]. [f] must preserve jkinds *) let map_kind f = function | (Type_abstract _ | Type_open) as k -> k - | Type_variant (cl, rep) -> + | Type_variant (cl, rep, mc) -> Type_variant ( List.map (fun c -> @@ -1496,19 +1502,19 @@ let map_kind f = function cd_args = map_type_expr_cstr_args f c.cd_args; cd_res = Option.map f c.cd_res }) - cl, rep) - | Type_record (fl, rr) -> + cl, rep, mc) + | Type_record (fl, rr, mc) -> Type_record ( List.map (fun l -> {l with ld_type = f l.ld_type} - ) fl, rr) - | Type_record_unboxed_product (fl, rr) -> + ) fl, rr, mc) + | Type_record_unboxed_product (fl, rr, mc) -> Type_record_unboxed_product ( List.map (fun l -> {l with ld_type = f l.ld_type} - ) fl, rr) + ) fl, rr, mc) let instance_declaration decl = @@ -1517,6 +1523,7 @@ let instance_declaration decl = {decl with type_params = List.map copy decl.type_params; type_manifest = Option.map copy decl.type_manifest; type_kind = map_kind copy decl.type_kind; + type_jkind = Jkind.map_type_expr copy decl.type_jkind; } ) @@ -1847,6 +1854,20 @@ let subst env level priv abbrev oty params args body = undo_abbrev (); raise Cannot_subst +let jkind_subst env level params args jkind = + if List.length params <> List.length args then raise Cannot_subst; + let old_level = !current_level in + current_level := level; + let (params', jkind') = instance_parameterized_kind params jkind in + let uenv = Expression {env; in_subst = true} in + try + List.iter2 (!unify_var' uenv) params' args; + current_level := old_level; + jkind' + with Unify _ -> + current_level := old_level; + raise Cannot_subst + (* CR layouts: Can we actually just always ignore jkinds in apply/subst? It seems like almost, but there may be cases where it would forget @@ -2103,6 +2124,8 @@ let try_expand_safe_opt env ty = let expand_head_opt env ty = try try_expand_head try_expand_safe_opt env ty with Cannot_expand -> ty +let is_principal ty = + not !Clflags.principal || get_level ty = generic_level type unbox_result = (* unboxing process made a step: either an unboxing or removal of a [Tpoly] *) @@ -2126,14 +2149,14 @@ let unbox_once env ty = let ty2 = match get_desc ty2 with Tpoly (t, _) -> t | _ -> ty2 in Stepped (apply ty2) | None -> begin match decl.type_kind with - | Type_record_unboxed_product ([_], Record_unboxed_product) -> + | Type_record_unboxed_product ([_], Record_unboxed_product, _) -> (* [find_unboxed_type] would have returned [Some] *) Misc.fatal_error "Ctype.unbox_once" | Type_record_unboxed_product - ((_::_::_ as lbls), Record_unboxed_product) -> + ((_::_::_ as lbls), Record_unboxed_product, _) -> Stepped_record_unboxed_product (List.map (fun ld -> apply ld.ld_type) lbls) - | Type_record_unboxed_product ([], _) -> + | Type_record_unboxed_product ([], _, _) -> Misc.fatal_error "Ctype.unboxed_once: fieldless record" | Type_abstract _ | Type_record _ | Type_variant _ | Type_open -> Final_result @@ -2190,6 +2213,11 @@ let tvariant_not_immediate row = | _ -> false) (row_fields row) +(* forward declarations *) +let type_equal' = ref (fun _ _ _ -> Misc.fatal_error "type_equal") +let type_jkind_purely_if_principal' = + ref (fun _ _ -> Misc.fatal_error "type_jkind_purely_if_principal") + (* We parameterize [estimate_type_jkind] by a function [expand_component] because some callers want expansion of types and others don't. *) @@ -2199,15 +2227,46 @@ let rec estimate_type_jkind ~expand_component env ty = | Tarrow _ -> Jkind.for_arrow | Ttuple _ -> Jkind.Builtin.value ~why:Tuple | Tunboxed_tuple ltys -> + let tys_modalities = + List.map (fun (_, ty) -> expand_component ty, + Mode.Modality.Value.Const.id) ltys + in + (* CR layouts v2.8: This pretty ridiculous use of [estimate_type_jkind] + just to throw most of it away will go away once we get [layout_of]. *) + let jkinds = + List.map + (fun (ty, _) -> estimate_type_jkind ~expand_component env ty) + tys_modalities + in + let layouts = List.map Jkind.extract_layout jkinds in Jkind.Builtin.product - (List.map (fun (_, ty) -> - estimate_type_jkind ~expand_component env (expand_component ty)) ltys) - ~why:Unboxed_tuple - | Tconstr (p, _, _) -> begin - try - (Env.find_type p env).type_jkind - with - Not_found -> Jkind.Builtin.any ~why:(Missing_cmi p) + ~jkind_of_type:(estimate_type_jkind ~expand_component env) + ~jkind_of_first_type:(fun () -> + match jkinds with + | first_jkind :: _ -> first_jkind + | _ -> Misc.fatal_error + "Ctype.estimate_type_jkind: use of jkind_of_first_type \ + with more than 1 type") + ~why:Unboxed_tuple tys_modalities layouts + | Tconstr (p, args, _) -> begin try + let type_decl = Env.find_type p env in + let jkind = type_decl.type_jkind in + (* Checking [has_with_bounds] here is needed for correctness, because + intersection types sometimes do not unify with themselves. Removing + this check causes typing-misc/pr7937.ml to fail. *) + if Jkind.has_with_bounds jkind + then + let level = get_level ty in + (* CR layouts v2.8: We could possibly skip this substitution if we're + called from [constrain_type_jkind]; the jkind returned without + substing is just weaker than the one we would get by substing. *) + jkind_subst env level type_decl.type_params args jkind + else + jkind + with + (* CR layouts v2.8: It will be confusing when a [Cannot_subst] leads to + a [Missing_cmi]. *) + | Cannot_subst | Not_found -> Jkind.Builtin.any ~why:(Missing_cmi p) end | Tobject _ -> Jkind.for_object | Tfield _ -> Jkind.Builtin.value ~why:Tfield @@ -2218,83 +2277,26 @@ let rec estimate_type_jkind ~expand_component env ty = then Jkind.Builtin.value ~why:Polymorphic_variant else Jkind.Builtin.immediate ~why:Immediate_polymorphic_variant | Tunivar { jkind } -> Jkind.disallow_right jkind - | Tpoly (ty, _) -> estimate_type_jkind ~expand_component env ty + | Tpoly (ty, _) -> + let jkind_of_type = !type_jkind_purely_if_principal' env in + estimate_type_jkind ~expand_component env ty |> + (* The jkind of [ty] might mention the variables bound in this [Tpoly] + node, and so just returning it here would be wrong. Instead, we need + to eliminate these variables. For now, we just [round_up] to eliminate + _all_ with-bounds. We can imagine doing better, just rounding up those + variables bound in this [Tpoly]. *) + (* CR layouts v2.8: Consider doing better -- but only once we can write + down a test case that cares. *) + Jkind.round_up ~jkind_of_type |> + Jkind.disallow_right | Tpackage _ -> Jkind.Builtin.value ~why:First_class_module -(* CR layouts v7.2: Remove this function once we have have kind-polymorphic type - declarations, and replace its uses with - [estimate_type_jkind ~expand_component:(get_unboxed_type_approximation env)]. - - [type_jkind_deep] calulates a jkind from a type expression, deeply - unfolding unboxed types. - - This deep unfolding is necessary (for now) for declarations like the - following: - - type 'a t = #{ i : 'a ; j : 'a } - type int_t : immediate & immediate = int t - - Otherwise, [int_t] will be given kind [value & value]. - - This function duplicates functionality from [find_unboxed_type] and - [constrain_type_jkind]. We're not to factoring out the shared logic because - this function will no longer be necessary once we have kind-polymorphic type - declarations. - - Returns (ran_out_of_fuel, best_effort_jkind). -*) -let rec type_jkind_deep env ty_prev ty fuel = - let fuel = fuel - 1 in - if fuel < 0 then - let _, jkind = type_unboxed_jkind_deep env ty fuel in - true, jkind - else - let ty = expand_head_opt env ty in - match unbox_once env ty with - | Stepped ty' -> type_jkind_deep env ty ty' fuel - | Stepped_record_unboxed_product component_tys -> - let out_of_fuel, component_jkinds = - types_jkinds_deep env component_tys fuel in - out_of_fuel, Jkind.Builtin.product ~why:Unboxed_record component_jkinds - | Final_result -> type_unboxed_jkind_deep env ty fuel - | Missing _ -> type_unboxed_jkind_deep env ty_prev fuel -and types_jkinds_deep env tys fuel = - List.fold_left_map (fun any_out_of_fuel ty -> - let out_of_fuel, jkind = type_jkind_deep env ty ty fuel in - (any_out_of_fuel || out_of_fuel), jkind - ) false tys -and type_unboxed_jkind_deep env ty fuel = - (* We've scraped off [@@unboxed] and unboxed records as much as we can. *) - match get_desc ty with - | Tvar { jkind } -> false, Jkind.disallow_right jkind - | Tarrow _ -> false, Jkind.for_arrow - | Ttuple _ -> false, Jkind.Builtin.value ~why:Tuple - | Tunboxed_tuple ltys -> - let out_of_fuel, component_jkinds = - types_jkinds_deep env (List.map snd ltys) fuel in - out_of_fuel, Jkind.Builtin.product ~why:Unboxed_tuple component_jkinds - | Tconstr (p, _, _) -> begin - try - false, (Env.find_type p env).type_jkind - with - Not_found -> false, Jkind.Builtin.any ~why:(Missing_cmi p) - end - | Tobject _ -> false, Jkind.for_object - | Tfield _ -> false, Jkind.Builtin.value ~why:Tfield - | Tnil -> false, Jkind.Builtin.value ~why:Tnil - | Tlink _ | Tsubst _ -> assert false - | Tvariant row -> - if tvariant_not_immediate row - then false, Jkind.Builtin.value ~why:Polymorphic_variant - else false, Jkind.Builtin.immediate ~why:Immediate_polymorphic_variant - | Tunivar { jkind } -> false, Jkind.disallow_right jkind - | Tpoly (ty, _) -> type_unboxed_jkind_deep env ty fuel - | Tpackage _ -> false, Jkind.Builtin.value ~why:First_class_module - let type_jkind env ty = - let _, jkind = type_jkind_deep env ty ty 100 in - jkind + estimate_type_jkind ~expand_component:(get_unboxed_type_approximation env) env + (get_unboxed_type_approximation env ty) +(* CR layouts v2.8: This function is quite suspect. See Jane Street internal + gdoc titled "Let's kill type_jkind_purely". *) let type_jkind_purely env ty = if !Clflags.principal || Env.has_local_constraints env then (* We snapshot to keep this pure; see the test in [typing-local/crossing.ml] @@ -2306,6 +2308,14 @@ let type_jkind_purely env ty = else type_jkind env ty +(* CR layouts v2.8: It's possible we can remove this function if we change + [jkind_subst] to not substitute non-principal things. Investigate. *) +let type_jkind_purely_if_principal env ty = + match is_principal ty with + | true -> Some (type_jkind_purely env ty) + | false -> None +let () = type_jkind_purely_if_principal' := type_jkind_purely_if_principal + let estimate_type_jkind = estimate_type_jkind ~expand_component:Fun.id (**** checking jkind relationships ****) @@ -2314,6 +2324,8 @@ let estimate_type_jkind = estimate_type_jkind ~expand_component:Fun.id then we will update the jkind of type variables to make the check true, if possible. If true, we won't (but will still instantiate sort variables). *) let constrain_type_jkind ~fixed env ty jkind = + let type_equal = !type_equal' env in + let jkind_of_type = type_jkind_purely_if_principal env in (* The [expanded] argument says whether we've already tried [expand_head_opt]. The "fuel" argument is used because we're duplicating the loop of @@ -2362,7 +2374,7 @@ let constrain_type_jkind ~fixed env ty jkind = it first. *) let jkind_inter = - Jkind.intersection_or_error + Jkind.intersection_or_error ~type_equal ~jkind_of_type ~reason:Tyvar_refinement_intersection ty's_jkind jkind in Result.map (set_var_jkind ty) jkind_inter @@ -2372,7 +2384,9 @@ let constrain_type_jkind ~fixed env ty jkind = | Tpoly (t, _) -> loop ~fuel ~expanded:false t ty's_jkind jkind | _ -> - match Jkind.sub_or_intersect ty's_jkind jkind with + match + Jkind.sub_or_intersect ~type_equal ~jkind_of_type ty's_jkind jkind + with | Sub -> Ok () | Disjoint -> (* Reporting that [ty's_jkind] must be a subjkind of [jkind] is not @@ -2468,26 +2482,6 @@ let check_type_externality env ty ext = | Ok () -> true | Error _ -> false -let check_decl_jkind env decl jkind = - (* CR layouts v2.8: This will need to be deeply reimplemented. *) - let jkind = Jkind.terrible_relax_l jkind in - match Jkind.sub_or_error decl.type_jkind jkind with - | Ok () as ok -> ok - | Error _ as err -> - match decl.type_manifest with - | None -> err - | Some ty -> check_type_jkind env ty jkind - -let constrain_decl_jkind env decl jkind = - (* CR layouts v2.8: This will need to be deeply reimplemented. *) - let jkind = Jkind.terrible_relax_l jkind in - match Jkind.sub_or_error decl.type_jkind jkind with - | Ok () as ok -> ok - | Error _ as err -> - match decl.type_manifest with - | None -> err - | Some ty -> constrain_type_jkind env ty jkind - let check_type_jkind_exn env texn ty jkind = match check_type_jkind env ty jkind with | Ok _ -> () @@ -2520,25 +2514,41 @@ let rec intersect_type_jkind ~reason env ty1 jkind2 = | _ -> (* [intersect_type_jkind] is called rarely, so we don't bother with trying to avoid this call as in [constrain_type_jkind] *) - let ty1 = get_unboxed_type_approximation env ty1 in - Jkind.intersect_l_l ~reason (estimate_type_jkind env ty1) jkind2 + let type_equal = !type_equal' env in + let jkind1 = type_jkind env ty1 in + let jkind_of_type = type_jkind_purely_if_principal env in + let jkind1 = Jkind.round_up ~jkind_of_type jkind1 in + let jkind2 = Jkind.round_up ~jkind_of_type jkind2 in + (* This is strange, in that we're rounding up and then computing an + intersection. So we might find an intersection where there isn't really + one. See the comment above this function arguing why this is OK here. *) + (* CR layouts v2.8: Think about doing better, but it's probably not worth + it. *) + Jkind.intersection_or_error ~type_equal ~jkind_of_type ~reason jkind1 jkind2 (* See comment on [jkind_unification_mode] *) -let unification_jkind_check env ty jkind = - match !lmode with - | Perform_checks -> constrain_type_jkind_exn env Unify ty jkind - | Delay_checks r -> r := (ty,jkind) :: !r - -let check_and_update_generalized_ty_jkind ?name ~loc ty = +let unification_jkind_check uenv ty jkind = + (* If we assume the original type is well-kinded, then we don't need to check + jkinds in substitution. And checking here can actually cause a loop with + with-kinds, in test case typing-misc/constraints.ml, because substitution + is used in [estimate_type_jkind], used in [constrain_type_jkind]. *) + if not (in_subst_mode uenv) then + match !lmode with + | Perform_checks -> constrain_type_jkind_exn (get_env uenv) Unify ty jkind + | Delay_checks r -> r := (ty,jkind) :: !r + +let check_and_update_generalized_ty_jkind ?name ~loc env ty = let immediacy_check jkind = let is_immediate jkind = (* Just check externality and layout, because that's what actually matters for upstream code. We check both for a known value and something that might turn out later to be value. This is the conservative choice. *) - Jkind.(Externality.le (get_externality_upper_bound jkind) External64 && - match get_layout jkind with - | Some (Base Value) | None -> true - | _ -> false) + let jkind_of_type = type_jkind_purely_if_principal env in + let ext = Jkind.get_externality_upper_bound ~jkind_of_type jkind in + Jkind.Externality.le ext External64 && + match Jkind.get_layout jkind with + | Some (Base Value) | None -> true + | _ -> false in if Language_extension.erasable_extensions_only () && is_immediate jkind && not (Jkind.History.has_warned jkind) @@ -3145,9 +3155,11 @@ let equivalent_with_nolabels l1 l2 = | (Nolabel | Labelled _), (Nolabel | Labelled _) -> true | _ -> false) -(* the [tk] means we're comparing a type against a jkind *) +(* the [tk] means we're comparing a type against a jkind; axes do + not matter, so a jkind extracted from a type_declaration does + not need to be substed *) let has_jkind_intersection_tk env ty jkind = - Jkind.has_intersection_l_l (type_jkind env ty) jkind + Jkind.has_intersection (type_jkind env ty) jkind (* [mcomp] tests if two types are "compatible" -- i.e., if they could ever unify. (This is distinct from [eqtype], which checks if two types *are* @@ -3296,12 +3308,23 @@ and mcomp_row type_pairs env row1 row2 = | _ -> ()) pairs +and mcomp_unsafe_mode_crossing umc1 umc2 = + match umc1, umc2 with + | None, None -> () + | Some _, None -> raise Incompatible + | None, Some _ -> raise Incompatible + | Some ({ modal_upper_bounds = mub1 }), + Some ({ modal_upper_bounds = mub2 }) -> + if (Mode.Alloc.Const.le mub1 mub2 && Mode.Alloc.Const.le mub2 mub1) + then () + else raise Incompatible + and mcomp_type_decl type_pairs env p1 p2 tl1 tl2 = try let decl = Env.find_type p1 env in let decl' = Env.find_type p2 env in let check_jkinds () = - if not (Jkind.has_intersection_l_l decl.type_jkind decl'.type_jkind) + if not (Jkind.has_intersection decl.type_jkind decl'.type_jkind) then raise Incompatible in if compatible_paths p1 p2 then begin @@ -3316,19 +3339,22 @@ and mcomp_type_decl type_pairs env p1 p2 tl1 tl2 = raise Incompatible else match decl.type_kind, decl'.type_kind with - | Type_record (lst,r), Type_record (lst',r') + | Type_record (lst,r,umc), Type_record (lst',r',umc') when equal_record_representation r r' -> mcomp_list type_pairs env tl1 tl2; - mcomp_record_description type_pairs env lst lst' - | Type_record_unboxed_product (lst,r), - Type_record_unboxed_product (lst',r') + mcomp_record_description type_pairs env lst lst'; + mcomp_unsafe_mode_crossing umc umc' + | Type_record_unboxed_product (lst,r,umc), + Type_record_unboxed_product (lst',r',umc') when equal_record_unboxed_product_representation r r' -> mcomp_list type_pairs env tl1 tl2; - mcomp_record_description type_pairs env lst lst' - | Type_variant (v1,r), Type_variant (v2,r') + mcomp_record_description type_pairs env lst lst'; + mcomp_unsafe_mode_crossing umc umc' + | Type_variant (v1,r,umc), Type_variant (v2,r',umc') when equal_variant_representation r r' -> mcomp_list type_pairs env tl1 tl2; - mcomp_variant_description type_pairs env v1 v2 + mcomp_variant_description type_pairs env v1 v2; + mcomp_unsafe_mode_crossing umc umc' | Type_open, Type_open -> mcomp_list type_pairs env tl1 tl2 | Type_abstract _, Type_abstract _ -> check_jkinds () @@ -3437,11 +3463,13 @@ let add_jkind_equation ~reason uenv destination jkind1 = begin try let decl = Env.find_type p env in - if not (Jkind.equal (Jkind.terrible_relax_l jkind) - (Jkind.terrible_relax_l decl.type_jkind)) - then - let refined_decl = { decl with type_jkind = jkind } in - set_env uenv (Env.add_local_constraint p refined_decl env); + (* CR layouts v2.8: We might be able to do better here. *) + match Jkind.try_allow_r jkind, Jkind.try_allow_r decl.type_jkind with + | Some jkind, Some decl_jkind when + not (Jkind.equal jkind decl_jkind) -> + let refined_decl = { decl with type_jkind = Jkind.disallow_right jkind } in + set_env uenv (Env.add_local_constraint p refined_decl env) + | _ -> () with Not_found -> () end @@ -3469,6 +3497,11 @@ let add_gadt_equation uenv source destination = When we check the jkind later, we may not be able to see the local equation because of its scope. *) let jkind = jkind_of_abstract_type_declaration env source in + let jkind = match Jkind.try_allow_r jkind with + | None -> Misc.fatal_errorf "Abstract kind with [with]: %a" + Jkind.format jkind + | Some jkind -> jkind + in add_jkind_equation ~reason:(Gadt_equation source) uenv destination jkind; (* Adding a jkind equation may change the uenv. *) @@ -3477,7 +3510,7 @@ let add_gadt_equation uenv source destination = new_local_type ~manifest_and_scope:(destination, expansion_scope) type_origin - (Jkind.terrible_relax_l jkind) + jkind in set_env uenv (Env.add_local_constraint source decl env); cleanup_abbrev () @@ -3582,7 +3615,7 @@ let unify1_var uenv t1 t2 = let env = get_env uenv in match occur_univar_for Unify env t2; - unification_jkind_check env t2 (Jkind.disallow_left jkind) + unification_jkind_check uenv t2 (Jkind.disallow_left jkind) with | () -> begin @@ -3610,7 +3643,7 @@ let unify3_var uenv jkind1 t1' t2 t2' = let snap = snapshot () in match occur_univar_for Unify (get_env uenv) t2; - unification_jkind_check (get_env uenv) t2' (Jkind.disallow_left jkind1) + unification_jkind_check uenv t2' (Jkind.disallow_left jkind1) with | () -> link_type t1' t2 | exception Unify_trace _ when in_pattern_mode uenv -> @@ -4236,7 +4269,7 @@ let unify uenv ty1 ty2 = raise (Unify (expand_to_unification_error (get_env uenv) trace)) let unify_gadt (penv : Pattern_env.t) ty1 ty2 = - univar_pairs := []; + Misc.protect_refs [R (univar_pairs, [])] begin fun () -> let equated_types = TypePairs.create 0 in let equations_generation = Allowed { equated_types } in let uenv = Pattern @@ -4247,8 +4280,9 @@ let unify_gadt (penv : Pattern_env.t) ty1 ty2 = in unify uenv ty1 ty2; equated_types + end -let unify_var ~from_subst uenv t1 t2 = +let unify_var uenv t1 t2 = if eq_type t1 t2 then () else match get_desc t1, get_desc t2 with Tvar _, Tconstr _ when deep_occur t1 t2 -> @@ -4260,9 +4294,7 @@ let unify_var ~from_subst uenv t1 t2 = occur_for Unify uenv t1 t2; update_level_for Unify env (get_level t1) t2; update_scope_for Unify (get_scope t1) t2; - if not from_subst then begin - unification_jkind_check env t2 (Jkind.disallow_left jkind) - end; + unification_jkind_check uenv t2 (Jkind.disallow_left jkind); link_type t1 t2; reset_trace_gadt_instances reset_tracing; with Unify_trace trace -> @@ -4274,18 +4306,17 @@ let unify_var ~from_subst uenv t1 t2 = | _ -> unify uenv t1 t2 -(* CR layouts: comment here explaining why it's safe to skip jkind checks in - this case when called from subst. *) -let _ = unify_var' := unify_var ~from_subst:true -let unify_var = unify_var ~from_subst:false +let _ = unify_var' := unify_var (* the final versions of unification functions *) let unify_var env ty1 ty2 = unify_var (Expression {env; in_subst = false}) ty1 ty2 let unify_pairs env ty1 ty2 pairs = + Misc.protect_refs [R (univar_pairs, pairs)] begin fun () -> univar_pairs := pairs; unify (Expression {env; in_subst = false}) ty1 ty2 + end let unify env ty1 ty2 = unify_pairs env ty1 ty2 [] @@ -4862,7 +4893,8 @@ let mode_cross_left_alloc env ty mode = let mode = if not (is_principal ty) then mode else let jkind = type_jkind_purely env ty in - let upper_bounds = Jkind.get_modal_upper_bounds jkind in + let jkind_of_type = type_jkind_purely_if_principal env in + let upper_bounds = Jkind.get_modal_upper_bounds ~jkind_of_type jkind in Alloc.meet_const upper_bounds mode in mode |> Alloc.disallow_right @@ -4872,7 +4904,8 @@ let mode_cross_left_alloc env ty mode = let mode_cross_right env ty mode = if not (is_principal ty) then Alloc.disallow_left mode else let jkind = type_jkind_purely env ty in - let upper_bounds = Jkind.get_modal_upper_bounds jkind in + let jkind_of_type = type_jkind_purely_if_principal env in + let upper_bounds = Jkind.get_modal_upper_bounds ~jkind_of_type jkind in Alloc.imply upper_bounds mode let submode_with_cross env ~is_ret ty l r = @@ -5196,9 +5229,10 @@ let moregeneral env inst_nongen pat_sch subj_sch = Misc.try_finally (fun () -> try - univar_pairs := []; + Misc.protect_refs [R (univar_pairs, [])] begin fun () -> let type_pairs = fresh_moregen_pairs () in moregen inst_nongen Covariant type_pairs env patt subj + end with Moregen_trace trace -> (* Moregen splits the generic level into two finer levels: [generic_level] and [generic_level - 1]. In order to properly @@ -5599,12 +5633,13 @@ and eqtype_alloc_mode m1 m2 = (* Must empty univar_pairs first *) let eqtype_list_same_length rename type_pairs subst env tl1 tl2 ~do_jkind_check = - univar_pairs := []; + Misc.protect_refs [R (univar_pairs, [])] begin fun () -> let snap = Btype.snapshot () in Misc.try_finally ~always:(fun () -> backtrack snap) (fun () -> eqtype_list_same_length rename type_pairs subst env tl1 tl2 ~do_jkind_check) + end let eqtype rename type_pairs subst env t1 t2 = eqtype_list ~do_jkind_check:true rename type_pairs subst env [t1] [t2] @@ -6458,7 +6493,7 @@ and subtype_row env trace row1 row2 cstrs = let subtype env ty1 ty2 = TypePairs.clear subtypes; - univar_pairs := []; + Misc.protect_refs [R (univar_pairs, [])] begin fun () -> (* Build constraint set. *) let cstrs = subtype_rec env [Subtype.Diff {got = ty1; expected = ty2}] ty1 ty2 [] @@ -6471,6 +6506,7 @@ let subtype env ty1 ty2 = try unify_pairs env t1 t2 pairs with Unify {trace} -> subtype_error ~env ~trace:trace0 ~unification_trace:(List.tl trace)) (List.rev cstrs) + end (*******************) (* Miscellaneous *) @@ -6712,6 +6748,7 @@ let rec nondep_type_rec ?(expand_private=false) env ids ty = in match get_desc ty with Tvar _ | Tunivar _ -> ty + (* CR layouts v2.8: This needs to traverse the jkind. *) | _ -> try TypeHash.find nondep_hash ty with Not_found -> let ty' = newgenstub ~scope:(get_scope ty) @@ -6815,6 +6852,13 @@ let nondep_type_decl env mid is_covariant decl = Private with Nondep_cannot_erase _ -> None, decl.type_private + and jkind = + try Jkind.map_type_expr (nondep_type_rec env mid) decl.type_jkind + (* CR layouts v2.8: This should be done with a proper nondep_jkind. *) + with Nondep_cannot_erase _ when is_covariant -> + let jkind_of_type = type_jkind_purely_if_principal env in + Jkind.round_up ~jkind_of_type decl.type_jkind |> + Jkind.disallow_right in clear_hash (); let priv = @@ -6825,7 +6869,7 @@ let nondep_type_decl env mid is_covariant decl = { type_params = params; type_arity = decl.type_arity; type_kind = tk; - type_jkind = decl.type_jkind; + type_jkind = jkind; type_manifest = tm; type_private = priv; type_variance = decl.type_variance; @@ -6836,7 +6880,6 @@ let nondep_type_decl env mid is_covariant decl = type_attributes = decl.type_attributes; type_unboxed_default = decl.type_unboxed_default; type_uid = decl.type_uid; - type_has_illegal_crossings = decl.type_has_illegal_crossings; } with Nondep_cannot_erase _ as exn -> clear_hash (); @@ -6994,3 +7037,54 @@ let print_global_state fmt global_state = print_field fmt "global_level" global_level; in Format.fprintf fmt "@[<1>{@;%a}@]" print_fields global_state + + (*******************************) + (* checking declaration jkinds *) + (* this is down here so it can use [is_equal] *) + +(* CR layouts v2.8: Passing this function everywhere is annoying. Instead, + it would be good just to use mutation to make this accessible in jkind.ml. + The problem is that Env depends on Jkind, and so the type of [type_equal] + can't be written in Jkind. It's possible that, after jkind.ml is broken up, + this problem goes away, because the dependency from Env to Jkind is pretty + minimal. *) +let type_equal env ty1 ty2 = is_equal env false [ty1] [ty2] +let () = type_equal' := type_equal + +let check_decl_jkind env decl jkind = + (* CR layouts v2.8: This could use an algorithm like [constrain_type_jkind] + to expand only as much as needed, but the l/l subtype algorithm is tricky, + and so we leave this optimization for later. *) + let type_equal = type_equal env in + let jkind_of_type ty = Some (type_jkind_purely env ty) in + match Jkind.sub_jkind_l ~type_equal ~jkind_of_type decl.type_jkind jkind with + | Ok () -> Ok () + | Error _ as err -> + match decl.type_manifest with + | None -> err + | Some ty -> + (* CR layouts v2.8: Should this use [type_jkind_purely_if_principal]? I + think not. *) + let ty_jkind = type_jkind env ty in + match Jkind.sub_jkind_l ~type_equal ~jkind_of_type ty_jkind jkind with + | Ok () -> Ok () + | Error _ as err -> err + +let constrain_decl_jkind env decl jkind = + (* CR layouts v2.8: This will need to be deeply reimplemented. *) + match Jkind.try_allow_r jkind with + (* This case is sad, because it can't refine type variables. Hence + the need for reimplementation. Hopefully no one hits this for + a while. *) + | None -> check_decl_jkind env decl jkind + | Some jkind -> + let type_equal = type_equal env in + let jkind_of_type ty = Some (type_jkind_purely env ty) in + match + Jkind.sub_or_error ~type_equal ~jkind_of_type decl.type_jkind jkind + with + | Ok () as ok -> ok + | Error _ as err -> + match decl.type_manifest with + | None -> err + | Some ty -> constrain_type_jkind env ty jkind diff --git a/src/ocaml/typing/ctype.mli b/src/ocaml/typing/ctype.mli index e644b7b33..2d23dd6d1 100644 --- a/src/ocaml/typing/ctype.mli +++ b/src/ocaml/typing/ctype.mli @@ -607,6 +607,11 @@ val type_jkind : Env.t -> type_expr -> jkind_l expansion. *) val type_jkind_purely : Env.t -> type_expr -> jkind_l +(* Like [type_jkind_purely], but returns [None] if the type is not + principally known. Useful to instantiate [jkind_of_type] in various + functions exported by [Jkind]. *) +val type_jkind_purely_if_principal : Env.t -> type_expr -> jkind_l option + (* Find a type's sort (if fixed is false: constraining it to be an arbitrary sort variable, if needed) *) val type_sort : @@ -633,6 +638,10 @@ val check_decl_jkind : val constrain_decl_jkind : Env.t -> type_declaration -> jkind_l -> (unit, Jkind.Violation.t) result +(* Compare two types for equality, with no renaming. This is useful for + the [type_equal] function that must be passed to certain jkind functions. *) +val type_equal: Env.t -> type_expr -> type_expr -> bool + val check_type_jkind : Env.t -> type_expr -> ('l * allowed) jkind -> (unit, Jkind.Violation.t) result val constrain_type_jkind : @@ -687,7 +696,7 @@ val check_type_externality : Env.t -> type_expr -> Jkind.Externality.t -> bool *) val check_and_update_generalized_ty_jkind : - ?name:Ident.t -> loc:Location.t -> type_expr -> unit + ?name:Ident.t -> loc:Location.t -> Env.t -> type_expr -> unit (* False if running in principal mode and the type is not principal. True otherwise. *) diff --git a/src/ocaml/typing/datarepr.ml b/src/ocaml/typing/datarepr.ml index c83d8aea3..8171c41e1 100644 --- a/src/ocaml/typing/datarepr.ml +++ b/src/ocaml/typing/datarepr.ml @@ -70,15 +70,12 @@ let constructor_args ~current_unit priv cd_args cd_res path rep = in let type_params = TypeSet.elements arg_vars_set in let arity = List.length type_params in - let is_void_label lbl = Jkind.Sort.Const.(equal void lbl.ld_sort) in - let jkind = - Jkind.for_boxed_record ~all_void:(List.for_all is_void_label lbls) - in + let jkind = Jkind.for_boxed_record lbls in let tdecl = { type_params; type_arity = arity; - type_kind = Type_record (lbls, rep); + type_kind = Type_record (lbls, rep, None); type_jkind = jkind; type_private = priv; type_manifest = None; @@ -90,7 +87,6 @@ let constructor_args ~current_unit priv cd_args cd_res path rep = type_attributes = []; type_unboxed_default = false; type_uid = Uid.mk ~current_unit; - type_has_illegal_crossings = false; } in existentials, @@ -283,7 +279,8 @@ let find_constr ~constant tag cstrs = (function | ({cstr_tag=Ordinary {runtime_tag=tag'}; cstr_constant},_) -> tag' = tag && cstr_constant = constant - | ({cstr_tag=(Extension _ | Null)},_) -> false) + | ({cstr_tag=Null; cstr_constant}, _) -> tag = -1 && cstr_constant = constant + | ({cstr_tag=Extension _},_) -> false) cstrs with | Not_found -> raise Constr_not_found @@ -293,14 +290,14 @@ let find_constr_by_tag ~constant tag cstrlist = let constructors_of_type ~current_unit ty_path decl = match decl.type_kind with - | Type_variant (cstrs,rep) -> + | Type_variant (cstrs, rep, _) -> constructor_descrs ~current_unit ty_path decl cstrs rep | Type_record _ | Type_record_unboxed_product _ | Type_abstract _ | Type_open -> [] let labels_of_type ty_path decl = match decl.type_kind with - | Type_record(labels, rep) -> + | Type_record(labels, rep, _) -> label_descrs Legacy (newgenconstr ty_path decl.type_params) labels rep decl.type_private | Type_record_unboxed_product _ @@ -308,7 +305,7 @@ let labels_of_type ty_path decl = let unboxed_labels_of_type ty_path decl = match decl.type_kind with - | Type_record_unboxed_product(labels, rep) -> + | Type_record_unboxed_product(labels, rep, _) -> label_descrs Unboxed_product (newgenconstr ty_path decl.type_params) labels rep decl.type_private | Type_record _ diff --git a/src/ocaml/typing/env.ml b/src/ocaml/typing/env.ml index cb0d19a65..a90f6b4e2 100644 --- a/src/ocaml/typing/env.ml +++ b/src/ocaml/typing/env.ml @@ -352,6 +352,12 @@ type lock = | Exclave_lock | Unboxed_lock (* to prevent capture of terms with non-value types *) +type locks = lock list + +let locks_empty = [] + +let locks_is_empty l = l = locks_empty + type lock_item = | Value | Module @@ -761,8 +767,14 @@ and module_data = mda_address : address_lazy; mda_shape: Shape.t; } +and module_alias_locks = locks + (** If the module is an alias for another module, this is the list of locks + from the original module to this module. This is accumulative: write + [module B = A;; module C = B;;], then [C] will record all locks from [A] + to [C]. Empty if not an alias. *) + and module_entry = - | Mod_local of module_data + | Mod_local of module_data * module_alias_locks | Mod_persistent | Mod_unbound of module_unbound_reason @@ -990,7 +1002,7 @@ let diff env1 env2 = (* Functions for use in "wrap" parameters in IdTbl *) let wrap_identity x = x let wrap_value vda = Val_bound vda -let wrap_module mda = Mod_local mda +let wrap_module mda = Mod_local (mda, locks_empty) (* Forward declarations *) @@ -1310,7 +1322,7 @@ let check_functor_appl let find_ident_module id env = match find_same_module id env.modules with - | Mod_local data -> data + | Mod_local (data, _) -> data | Mod_unbound _ -> raise Not_found | Mod_persistent -> match Ident.to_global id with @@ -1402,10 +1414,10 @@ let type_of_cstr path = function List.map snd (Datarepr.labels_of_type path decl) in begin match decl.type_kind with - | Type_record (_, repr) -> + | Type_record (_, repr, umc) -> { tda_declaration = decl; - tda_descriptions = Type_record (labels, repr); + tda_descriptions = Type_record (labels, repr, umc); tda_shape = Shape.leaf decl.type_uid; } | _ -> assert false @@ -1440,7 +1452,7 @@ let rec find_type_data path env = and find_cstr path name env = let tda = find_type_data path env in match tda.tda_descriptions with - | Type_variant (cstrs, _) -> + | Type_variant (cstrs, _, _) -> List.find (fun cstr -> cstr.cstr_name = name) cstrs | Type_record _ | Type_record_unboxed_product _ | Type_abstract _ | Type_open -> @@ -1600,7 +1612,7 @@ let find_shape env (ns : Shape.Sig_component_kind.t) id = end | Module -> begin match IdTbl.find_same_without_locks id env.modules with - | Mod_local { mda_shape; _ } -> mda_shape + | Mod_local ({ mda_shape; _ }, _) -> mda_shape | Mod_persistent -> Shape.for_persistent_unit (Ident.name id) | Mod_unbound _ -> (* Only present temporarily while approximating the environment for @@ -1836,7 +1848,7 @@ let iter_env wrap proj1 proj2 f env () = (fun id (path, entry) -> match entry with | Mod_unbound _ -> () - | Mod_local data -> + | Mod_local (data, _) -> iter_components (Pident id) path data.mda_components | Mod_persistent -> ()) env.modules; @@ -1882,7 +1894,7 @@ let rec find_shadowed_comps path env = List.filter_map (fun (p, data) -> match data with - | Mod_local x -> Some (p, x) + | Mod_local (x, _) -> Some (p, x) | Mod_unbound _ | Mod_persistent -> None) (IdTbl.find_all wrap_module (Ident.name id) env.modules) | Pdot (p, s) -> @@ -2097,7 +2109,7 @@ let rec components_of_module_maker (Subst.type_path sub (Path.Pident id)); let descrs = match decl.type_kind with - | Type_variant (_,repr) -> + | Type_variant (_,repr,umc) -> let cstrs = List.map snd (Datarepr.constructors_of_type path final_decl ~current_unit:(get_unit_name ())) @@ -2113,8 +2125,8 @@ let rec components_of_module_maker c.comp_constrs <- add_to_tbl descr.cstr_name cda c.comp_constrs ) cstrs; - Type_variant (cstrs, repr) - | Type_record (_, repr) -> + Type_variant (cstrs, repr, umc) + | Type_record (_, repr, umc) -> let lbls = List.map snd (Datarepr.labels_of_type path final_decl) in @@ -2123,8 +2135,8 @@ let rec components_of_module_maker c.comp_labels <- add_to_tbl descr.lbl_name descr c.comp_labels) lbls; - Type_record (lbls, repr) - | Type_record_unboxed_product (_, repr) -> + Type_record (lbls, repr, umc) + | Type_record_unboxed_product (_, repr, umc) -> let (lbls : unboxed_label_description list) = List.map snd (Datarepr.unboxed_labels_of_type path final_decl) in @@ -2133,7 +2145,7 @@ let rec components_of_module_maker c.comp_unboxed_labels <- add_to_tbl descr.lbl_name descr c.comp_unboxed_labels) lbls; - Type_record_unboxed_product (lbls, repr) + Type_record_unboxed_product (lbls, repr, umc) | Type_abstract r -> Type_abstract r | Type_open -> Type_open in @@ -2194,7 +2206,7 @@ let rec components_of_module_maker NameMap.add (Ident.name id) mda c.comp_modules; env := store_module ~update_summary:false ~check:None - id addr pres md shape !env + id addr pres md shape locks_empty !env | Sig_modtype(id, decl, _) -> let final_decl = (* The prefixed items get the same scope as [cm_path], which is @@ -2379,25 +2391,25 @@ and store_type ~check ~long_path ~predef id info shape env = let descrs, env = let path = Pident id in match info.type_kind with - | Type_variant (_,repr) -> + | Type_variant (_,repr,umc) -> let constructors = Datarepr.constructors_of_type path info ~current_unit:(get_unit_name ()) in - Type_variant (List.map snd constructors, repr), + Type_variant (List.map snd constructors, repr, umc), List.fold_left (fun env (cstr_id, cstr) -> store_constructor ~check info id cstr_id cstr env) env constructors - | Type_record (_, repr) -> + | Type_record (_, repr, umc) -> let labels = Datarepr.labels_of_type path info in - Type_record (List.map snd labels, repr), + Type_record (List.map snd labels, repr, umc), List.fold_left (fun env (lbl_id, lbl) -> store_label ~record_form:Legacy ~check info id lbl_id lbl env) env labels - | Type_record_unboxed_product (_, repr) -> + | Type_record_unboxed_product (_, repr, umc) -> let labels = Datarepr.unboxed_labels_of_type path info in - Type_record_unboxed_product (List.map snd labels, repr), + Type_record_unboxed_product (List.map snd labels, repr, umc), List.fold_left (fun env (lbl_id, lbl) -> store_label ~record_form:Unboxed_product ~check info id lbl_id lbl @@ -2477,7 +2489,7 @@ and store_extension ~check ~rebind id addr ext shape env = summary = Env_extension(env.summary, id, ext) } and store_module ?(update_summary=true) ~check - id addr presence md shape env = + id addr presence md shape alias_locks env = let open Subst.Lazy in let loc = md.md_loc in Option.iter @@ -2498,7 +2510,19 @@ and store_module ?(update_summary=true) ~check if not update_summary then env.summary else Env_module (env.summary, id, presence, force_module_decl md) in { env with +<<<<<<< janestreet/merlin-jst:rae/with-kinds-roll + modules = IdTbl.add id (Mod_local mda) env.modules; +||||||| ocaml-flambda/flambda-backend:df4a6e0ba4f74dc790e0ad79f15ea73be1225c4b modules = IdTbl.add id (Mod_local mda) env.modules; + summary } + +and store_modtype ?(update_summary=true) id info shape env = +======= + modules = IdTbl.add id (Mod_local (mda, alias_locks)) env.modules; + summary } + +and store_modtype ?(update_summary=true) id info shape env = +>>>>>>> ocaml-flambda/flambda-backend:main summary; short_paths_additions = short_paths_module id md comps env.short_paths_additions; } @@ -2597,7 +2621,7 @@ and add_extension ~check ?shape ~rebind id ext env = store_extension ~check ~rebind id addr ext shape env and add_module_declaration_lazy - ~update_summary ?(arg=false) ?shape ~check id presence md env = + ~update_summary ?(arg=false) ?shape ~check id presence md ?(locks = []) env = let check = if not check then None @@ -2609,13 +2633,13 @@ and add_module_declaration_lazy let addr = module_declaration_address env id presence md in let shape = shape_or_leaf md.Subst.Lazy.md_uid shape in let env = - store_module ~update_summary ~check id addr presence md shape env + store_module ~update_summary ~check id addr presence md shape locks env in if arg then add_functor_arg id env else env -let add_module_declaration ?(arg=false) ?shape ~check id presence md env = +let add_module_declaration ?(arg=false) ?shape ~check id presence md ?locks env = add_module_declaration_lazy ~update_summary:true ~arg ?shape ~check id - presence (Subst.Lazy.of_module_decl md) env + presence (Subst.Lazy.of_module_decl md) ?locks env and add_modtype_lazy ~update_summary ?shape id info env = let shape = shape_or_leaf info.Subst.Lazy.mtd_uid shape in @@ -2676,9 +2700,9 @@ let enter_extension ~scope ~rebind name ext env = let env = store_extension ~check:true ~rebind id addr ext shape env in (id, env) -let enter_module_declaration ~scope ?arg ?shape s presence md env = +let enter_module_declaration ~scope ?arg ?shape s presence md ?locks env = let id = Ident.create_scoped ~scope s in - (id, add_module_declaration ?arg ?shape ~check:true id presence md env) + (id, add_module_declaration ?arg ?shape ~check:true id presence md ?locks env) let enter_modtype ~scope name mtd env = let id = Ident.create_scoped ~scope name in @@ -2741,7 +2765,8 @@ module Add_signature(T : Types.Wrapped)(M : sig val add_value: ?shape:Shape.t -> mode:(Mode.allowed * 'r0) Mode.Value.t -> Ident.t -> T.value_description -> t -> t val add_module_declaration: ?arg:bool -> ?shape:Shape.t -> check:bool - -> Ident.t -> module_presence -> T.module_declaration -> t -> t + -> Ident.t -> module_presence -> T.module_declaration -> ?locks:locks -> + t -> t val add_modtype: ?shape:Shape.t -> Ident.t -> T.modtype_declaration -> t -> t end) = struct open T @@ -2822,7 +2847,7 @@ let add_cltype = add_cltype ?shape:None let add_modtype_lazy = add_modtype_lazy ?shape:None let add_modtype = add_modtype ?shape:None let add_module_declaration_lazy ?(arg=false) = - add_module_declaration_lazy ~arg ?shape:None ~check:false + add_module_declaration_lazy ~arg ?shape:None ~check:false ?locks:None let add_signature sg env = let _, env = add_signature Shape.Map.empty None sg env in env @@ -2918,7 +2943,7 @@ let add_language_extension_types env = |> add SIMD Stable Predef.add_simd_stable_extension_types |> add Small_numbers Stable Predef.add_small_number_extension_types |> add Small_numbers Beta Predef.add_small_number_beta_extension_types - |> add Layouts Alpha Predef.add_or_null) + |> add Layouts Stable Predef.add_or_null) (* Some predefined types are part of language extensions, and we don't want to make them available in the initial environment if those extensions are not @@ -3141,8 +3166,9 @@ let lookup_ident_module (type a) (load : a load) ~errors ~use ~loc s env = may_lookup_error errors loc env (Unbound_module (Lident s)) in match data with - | Mod_local mda -> begin + | Mod_local (mda, alias_locks) -> begin use_module ~use ~loc path mda; + let locks = alias_locks @ locks in match load with | Load -> path, locks, (mda : a) | Don't_load -> path, locks, (() : a) @@ -3735,37 +3761,27 @@ let open_signature (* General forms of the lookup functions *) -let walk_locks_for_module_lookup ~errors ~lock ~loc ~env ~lid locks = - if lock then - walk_locks ~errors ~loc ~env ~item:Module ~lid mda_mode None locks - else - mode_default mda_mode - -let lookup_module_path ~errors ~use ~lock ~loc ~load lid env : Path.t * _ = - let path, locks = - match lid with - | Lident s -> - if !Clflags.transparent_modules && not load then - let path, locks, _ = - lookup_ident_module Don't_load ~errors ~use ~loc s env - in - path, locks - else - let path, locks, _ = - lookup_ident_module Load ~errors ~use ~loc s env - in - path, locks - | Ldot(l, s) -> - let path, locks, _ = lookup_dot_module ~errors ~use ~loc l s env in +let lookup_module_path ~errors ~use ~loc ~load lid env = + match lid with + | Lident s -> + if !Clflags.transparent_modules && not load then + let path, locks, () = + lookup_ident_module Don't_load ~errors ~use ~loc s env + in path, locks - | Lapply _ as lid -> - let path_f, _comp_f, path_arg = lookup_apply ~errors ~use ~loc lid env in - Papply(path_f, path_arg), [] - in - let vmode = walk_locks_for_module_lookup ~errors ~lock ~loc ~lid ~env locks in - path, vmode + else + let path, locks, _ = + lookup_ident_module Load ~errors ~use ~loc s env + in + path, locks + | Ldot(l, s) -> + let path, locks, _ = lookup_dot_module ~errors ~use ~loc l s env in + path, locks + | Lapply _ as lid -> + let path_f, _comp_f, path_arg = lookup_apply ~errors ~use ~loc lid env in + Papply(path_f, path_arg), [] -let lookup_module_instance_path ~errors ~use ~lock ~loc ~load name env = +let lookup_module_instance_path ~errors ~use ~loc ~load name env = (* The locks are whatever locks we would find if we went through [lookup_module_path] on a module not found in the environment *) let locks = IdTbl.get_all_locks env.modules in @@ -3781,15 +3797,7 @@ let lookup_module_instance_path ~errors ~use ~lock ~loc ~load name env = in path in - let vmode = - let lid : Longident.t = - (* This is only used for error reporting. Probably in the long term we - want [Longident.t] to include instance names *) - Lident (name |> Global_module.Name.to_string) - in - walk_locks_for_module_lookup ~errors ~lock ~loc ~lid ~env locks - in - path, vmode + path, locks let lookup_value_lazy ~errors ~use ~loc lid env = match lid with @@ -3802,27 +3810,9 @@ let lookup_value ~errors ~use ~loc lid env = let path, locks, vda = lookup_value_lazy ~errors ~use ~loc lid env in - (* There can be locks between the definition and a use of a value. For - example, if a function closes over a value, there will be Closure_lock between - the value's definition and the value's use in the function. Walking the locks - will constrain the function and the value's modes accrodingly. - - Here, we apply the modalities to acquire the mode of the value at the - definition site, using which we walk the locks. That means the surrounding - closure would be closing over the value instead of the module. The latter can - be achieved by walking the locks before apply modalities. - - Our route provides better ergonomics, but is dangerous as it doesn't reflect - the real runtime behaviour. With the current set-up, it is sound. *) let vd, mode = normalize_vda_mode vda in let vd = Subst.Lazy.force_value_description vd in - let vmode = - if use then - walk_locks ~errors ~loc ~env ~item:Value ~lid mode (Some vd.val_type) locks - else - mode_default mode - in - path, vd, vmode + path, vd, mode, locks let lookup_type_full ~errors ~use ~loc lid env = match lid with @@ -3884,20 +3874,20 @@ let lookup_all_labels_from_type (type rep) ~use ~(record_form : rep record_form) match (find_type_descrs ty_path env, record_form) with | exception Not_found -> [] | ((Type_variant _ | Type_abstract _ | Type_open), _) -> [] - | (Type_record (lbls, _), Legacy) -> + | (Type_record (lbls, _, _), Legacy) -> List.map (fun lbl -> let use_fun () = use_label ~record_form ~use ~loc usage env lbl in (lbl, use_fun)) lbls - | (Type_record_unboxed_product (lbls, _), Unboxed_product) -> + | (Type_record_unboxed_product (lbls, _, _), Unboxed_product) -> List.map (fun lbl -> let use_fun () = use_label ~record_form ~use ~loc usage env lbl in (lbl, use_fun)) lbls - | (Type_record (_, _), Unboxed_product) -> [] - | (Type_record_unboxed_product (_, _), Legacy) -> [] + | (Type_record (_, _, _), Unboxed_product) -> [] + | (Type_record_unboxed_product (_, _, _), Legacy) -> [] let lookup_all_constructors ~errors ~use ~loc usage lid env = match lid with @@ -3915,7 +3905,7 @@ let lookup_all_constructors_from_type ~use ~loc usage ty_path env = | exception Not_found -> [] | Type_record _ | Type_record_unboxed_product _ | Type_abstract _ | Type_open -> [] - | Type_variant (cstrs, _) -> + | Type_variant (cstrs, _, _) -> List.map (fun cstr -> let use_fun () = @@ -3937,7 +3927,7 @@ let find_module_by_name lid env = let find_value_by_name lid env = let loc = Location.(in_file !input_name) in - let path, desc, _ = lookup_value ~errors:false ~use:false ~loc lid env in + let path, desc, _, _ = lookup_value ~errors:false ~use:false ~loc lid env in path, desc let find_type_by_name lid env = @@ -3984,17 +3974,14 @@ let find_cltype_index id env = find_index_tbl id env.cltypes (* Ordinary lookup functions *) -let lookup_module_path ?(use=true) ?(lock=use) ~loc ~load lid env = - let path, vmode = - lookup_module_path ~errors:true ~use ~lock ~loc ~load lid env - in - path, vmode.mode +let walk_locks ~loc ~env ~item ~lid mode ty locks = + walk_locks ~errors:true ~loc ~env ~item ~lid mode ty locks -let lookup_module_instance_path ?(use=true) ?(lock=use) ~loc ~load lid env = - let path, vmode = - lookup_module_instance_path ~errors:true ~use ~lock ~loc ~load lid env - in - path, vmode.mode +let lookup_module_path ?(use=true) ~loc ~load lid env = + lookup_module_path ~errors:true ~use ~loc ~load lid env + +let lookup_module_instance_path ?(use=true) ~loc ~load lid env = + lookup_module_instance_path ~errors:true ~use ~loc ~load lid env let lookup_module ?(use=true) ?(lock=use) ~loc lid env = let path, desc, vmode = lookup_module ~errors:true ~use ~lock ~loc lid env in @@ -4154,7 +4141,7 @@ let fold_modules f lid env acc = (fun name (p, entry) acc -> match entry with | Mod_unbound _ -> acc - | Mod_local mda -> + | Mod_local (mda, _) -> let md = Subst.Lazy.force_module_decl mda.mda_declaration in diff --git a/src/ocaml/typing/env.mli b/src/ocaml/typing/env.mli index 3cd63263c..bb40f7571 100644 --- a/src/ocaml/typing/env.mli +++ b/src/ocaml/typing/env.mli @@ -202,6 +202,12 @@ type shared_context = | Module | Probe +type locks + +val locks_empty : locks + +val locks_is_empty : locks -> bool + (** Items whose accesses are affected by locks *) type lock_item = | Value @@ -260,9 +266,16 @@ type actual_mode = { (** Explains why [mode] is high. *) } +(** Takes the [mode] and [ty] of a value at definition site, walks through the list of + locks and constrains [mode] and [ty]. Return the access mode of the value allowed by + the locks. [ty] is optional as the function works on modules and classes as well, for + which [ty] should be [None]. *) +val walk_locks : loc:Location.t -> env:t -> item:lock_item -> lid:Longident.t -> + Mode.Value.l -> type_expr option -> locks -> actual_mode + val lookup_value: ?use:bool -> loc:Location.t -> Longident.t -> t -> - Path.t * value_description * actual_mode + Path.t * value_description * Mode.Value.l * locks val lookup_type: ?use:bool -> loc:Location.t -> Longident.t -> t -> Path.t * type_declaration @@ -279,14 +292,16 @@ val lookup_cltype: ?use:bool -> loc:Location.t -> Longident.t -> t -> Path.t * class_type_declaration +(* When locks are returned instead of walked for modules, the mode remains as + defined (always legacy), and thus not returned. *) val lookup_module_path: - ?use:bool -> ?lock:bool -> loc:Location.t -> load:bool -> Longident.t -> t -> - Path.t * Mode.Value.l + ?use:bool -> loc:Location.t -> load:bool -> Longident.t -> t -> + Path.t * locks val lookup_modtype_path: ?use:bool -> loc:Location.t -> Longident.t -> t -> Path.t val lookup_module_instance_path: - ?use:bool -> ?lock:bool -> loc:Location.t -> load:bool -> - Global_module.Name.t -> t -> Path.t * Mode.Value.l + ?use:bool -> loc:Location.t -> load:bool -> Global_module.Name.t -> t -> + Path.t * locks val lookup_constructor: ?use:bool -> loc:Location.t -> constructor_usage -> Longident.t -> t -> @@ -384,7 +399,7 @@ val add_module: ?arg:bool -> ?shape:Shape.t -> val add_module_lazy: update_summary:bool -> Ident.t -> module_presence -> Subst.Lazy.module_type -> t -> t val add_module_declaration: ?arg:bool -> ?shape:Shape.t -> check:bool -> - Ident.t -> module_presence -> module_declaration -> t -> t + Ident.t -> module_presence -> module_declaration -> ?locks:locks -> t -> t val add_module_declaration_lazy: ?arg:bool -> update_summary:bool -> Ident.t -> module_presence -> Subst.Lazy.module_declaration -> t -> t val add_modtype: Ident.t -> modtype_declaration -> t -> t @@ -448,7 +463,7 @@ val enter_module: module_type -> t -> Ident.t * t val enter_module_declaration: scope:int -> ?arg:bool -> ?shape:Shape.t -> string -> module_presence -> - module_declaration -> t -> Ident.t * t + module_declaration -> ?locks:locks -> t -> Ident.t * t val enter_modtype: scope:int -> string -> modtype_declaration -> t -> Ident.t * t val enter_class: scope:int -> string -> class_declaration -> t -> Ident.t * t diff --git a/src/ocaml/typing/includecore.ml b/src/ocaml/typing/includecore.ml index a6a6a9576..d02b4ee15 100644 --- a/src/ocaml/typing/includecore.ml +++ b/src/ocaml/typing/includecore.ml @@ -54,15 +54,16 @@ type mmodes = (** Mode cross a right mode *) (* This is very similar to Ctype.mode_cross_right. Any bugs here are likely bugs there, too. *) -let right_mode_cross_jkind jkind mode = - let upper_bounds = Jkind.get_modal_upper_bounds jkind in +let right_mode_cross_jkind env jkind mode = + let jkind_of_type = Ctype.type_jkind_purely_if_principal env in + let upper_bounds = Jkind.get_modal_upper_bounds ~jkind_of_type jkind in let upper_bounds = Const.alloc_as_value upper_bounds in Value.imply upper_bounds mode -let right_mode_cross env ty mode= +let right_mode_cross env ty mode = if not (Ctype.is_principal ty) then mode else let jkind = Ctype.type_jkind_purely env ty in - right_mode_cross_jkind jkind mode + right_mode_cross_jkind env jkind mode let native_repr_args nra1 nra2 = let rec loop i nra1 nra2 = @@ -238,9 +239,9 @@ type type_kind = let of_kind = function | Type_abstract _ -> Kind_abstract - | Type_record (_, _) -> Kind_record - | Type_record_unboxed_product (_, _) -> Kind_record_unboxed_product - | Type_variant (_, _) -> Kind_variant + | Type_record (_, _, _) -> Kind_record + | Type_record_unboxed_product (_, _, _) -> Kind_record_unboxed_product + | Type_variant (_, _, _) -> Kind_variant | Type_open -> Kind_open type kind_mismatch = type_kind * type_kind @@ -292,6 +293,10 @@ type variant_change = (Types.constructor_declaration as 'l, 'l, constructor_mismatch) Diffing_with_keys.change +type unsafe_mode_crossing_mismatch = + | Mode_crossing_only_on of position + | Mode_crossing_not_equal + type type_mismatch = | Arity | Privacy of privacy_mismatch @@ -308,6 +313,7 @@ type type_mismatch = | Extensible_representation of position | With_null_representation of position | Jkind of Jkind.Violation.t + | Unsafe_mode_crossing of unsafe_mode_crossing_mismatch let report_modality_sub_error first second ppf e = let print_modality id ppf m = @@ -592,6 +598,17 @@ let report_kind_mismatch first second ppf (kind1, kind2) = second (kind_to_string kind2) +let report_unsafe_mode_crossing_mismatch first second ppf e = + let pr fmt = Format.fprintf ppf fmt in + match e with + | Mode_crossing_only_on ord -> + pr "%s has [%@%@unsafe_allow_any_mode_crossing], but %s does not" + (choose ord first second) + (choose_other ord first second) + | Mode_crossing_not_equal -> + pr "Both specify [%@%@unsafe_allow_any_mode_crossing], but their \ + mod-bounds are not equal" + let report_type_mismatch first second decl env ppf err = let pr fmt = Format.fprintf ppf fmt in pr "@ "; @@ -641,6 +658,20 @@ let report_type_mismatch first second decl env ppf err = "has a null constructor" | Jkind v -> Jkind.Violation.report_with_name ~name:first ppf v + | Unsafe_mode_crossing mismatch -> + pr "They have different unsafe mode crossing behavior:@,"; + report_unsafe_mode_crossing_mismatch first second ppf mismatch + +let compare_unsafe_mode_crossing umc1 umc2 = + match umc1, umc2 with + | None, None -> None + | Some _, None -> Some (Unsafe_mode_crossing (Mode_crossing_only_on First)) + | None, Some _ -> Some (Unsafe_mode_crossing (Mode_crossing_only_on Second)) + | Some ({ modal_upper_bounds = mub1 }), + Some ({ modal_upper_bounds = mub2 }) -> + if (Mode.Alloc.Const.le mub1 mub2 && Mode.Alloc.Const.le mub2 mub1) + then None + else Some (Unsafe_mode_crossing Mode_crossing_not_equal) module Record_diffing = struct @@ -1348,26 +1379,23 @@ let type_declarations ?(equality = false) ~loc env ~mark name rep1 rep2 in let err = match (decl1.type_kind, decl2.type_kind) with - (_, Type_abstract _) -> begin - (* If both the intf has "allow any kind in impl" *and* the impl has "allow any - kind in intf", don't check the jkind at all. *) - let allow_any = - Builtin_attributes.has_unsafe_allow_any_kind_in_impl decl2.type_attributes - && Builtin_attributes.has_unsafe_allow_any_kind_in_intf decl1.type_attributes - in - (* Note that [decl2.type_jkind] is an upper bound. If it isn't tight, [decl2] must - have a manifest, which we're already checking for equality above. Similarly, - [decl1]'s kind may conservatively approximate its jkind, but [check_decl_jkind] - will expand its manifest. *) - match Ctype.check_decl_jkind env decl1 decl2.type_jkind with - | Ok _ -> - (if allow_any - then Location.prerr_warning decl2.type_loc (Warnings.Unnecessary_allow_any_kind)); - None - | Error _ when allow_any -> None - | Error v -> Some (Jkind v) - end - | (Type_variant (cstrs1, rep1), Type_variant (cstrs2, rep2)) -> + (_, Type_abstract _) -> + (* No need to check jkinds if decl2 has a manifest; we've already + checked for type equality, above. Oddly, this is not just an + optimization; unconditionally checking jkinds causes a failure + around recursive modules (test case: shapes/recmodules.ml). + Richard spent several hours trying to understand what was going + on there (after the substitution in [Typemod.check_recmodule_inclusion], + there was a type_declaration whose [type_jkind] didn't match its + [type_manifest]), but just skipping this check when there is a + manifest fixes the problem. *) + if Option.is_none decl2.type_manifest then + (* Note that [decl2.type_jkind] is an upper bound *) + match Ctype.check_decl_jkind env decl1 decl2.type_jkind with + | Ok _ -> None + | Error v -> Some (Jkind v) + else None + | (Type_variant (cstrs1, rep1, umc1), Type_variant (cstrs2, rep2, umc2)) -> begin if mark then begin let mark usage cstrs = List.iter (Env.mark_constructor_used usage) cstrs @@ -1379,18 +1407,27 @@ let type_declarations ?(equality = false) ~loc env ~mark name mark usage cstrs1; if equality then mark Env.Exported cstrs2 end; - Variant_diffing.compare_with_representation ~loc env - decl1.type_params - decl2.type_params - cstrs1 - cstrs2 - rep1 - rep2 - | (Type_record(labels1,rep1), Type_record(labels2,rep2)) -> - mark_and_compare_records Legacy labels1 rep1 labels2 rep2 - | (Type_record_unboxed_product(labels1,rep1), - Type_record_unboxed_product(labels2,rep2)) -> - mark_and_compare_records Unboxed_product labels1 rep1 labels2 rep2 + Misc.Stdlib.Option.first_some + (Variant_diffing.compare_with_representation ~loc env + decl1.type_params + decl2.type_params + cstrs1 + cstrs2 + rep1 + rep2) + (fun () -> compare_unsafe_mode_crossing umc1 umc2) + end + | (Type_record(labels1,rep1,umc1), Type_record(labels2,rep2,umc2)) -> begin + Misc.Stdlib.Option.first_some + (mark_and_compare_records Legacy labels1 rep1 labels2 rep2) + (fun () -> compare_unsafe_mode_crossing umc1 umc2) + end + | (Type_record_unboxed_product(labels1,rep1,umc1), + Type_record_unboxed_product(labels2,rep2,umc2)) -> begin + Misc.Stdlib.Option.first_some + (mark_and_compare_records Unboxed_product labels1 rep1 labels2 rep2) + (fun () -> compare_unsafe_mode_crossing umc1 umc2) + end | (Type_open, Type_open) -> None | (_, _) -> Some (Kind (of_kind decl1.type_kind, of_kind decl2.type_kind)) in diff --git a/src/ocaml/typing/includecore.mli b/src/ocaml/typing/includecore.mli index 505d5e7cf..65636c51b 100644 --- a/src/ocaml/typing/includecore.mli +++ b/src/ocaml/typing/includecore.mli @@ -105,6 +105,10 @@ type private_object_mismatch = | Missing of string | Types of Errortrace.equality_error +type unsafe_mode_crossing_mismatch = + | Mode_crossing_only_on of position + | Mode_crossing_not_equal + type type_mismatch = | Arity | Privacy of privacy_mismatch @@ -121,6 +125,7 @@ type type_mismatch = | Extensible_representation of position | With_null_representation of position | Jkind of Jkind.Violation.t + | Unsafe_mode_crossing of unsafe_mode_crossing_mismatch type mmodes = | All diff --git a/src/ocaml/typing/jkind.ml b/src/ocaml/typing/jkind.ml index 2cc5c5cdf..a5dfc188a 100644 --- a/src/ocaml/typing/jkind.ml +++ b/src/ocaml/typing/jkind.ml @@ -14,6 +14,8 @@ open Mode open Jkind_types +open Jkind_axis +open Types module Le_result = Misc_stdlib.Le_result module Misc = struct @@ -37,8 +39,6 @@ end type sort = Sort.t -type type_expr = Types.type_expr - (* A *layout* of a type describes the way values of that type are stored at runtime, including details like width, register convention, calling convention, etc. A layout may be *representable* or *unrepresentable*. The @@ -166,6 +166,11 @@ module Layout = struct | Base b -> Sort (Sort.of_base b) | Product cs -> Product (List.map of_const cs) + let product = function + | [] -> Misc.fatal_error "Layout.product: empty product" + | [lay] -> lay + | lays -> Product lays + let rec to_sort = function | Any -> None | Sort s -> Some s @@ -296,9 +301,8 @@ module Layout = struct pp_element ~nested:false ppf layout end -module Externality = Jkind_axis.Externality -module Nullability = Jkind_axis.Nullability -module Modes = Jkind_axis.Of_lattice (Alloc.Const) +module Externality = Externality +module Nullability = Nullability module History = struct include Jkind_intf.History @@ -318,34 +322,6 @@ module History = struct let has_warned t = t.has_warned end -(*********************************) -(* Main type declarations *) - -type +'d const = (type_expr, 'd) Jkind_types.Const.t - -type 'd t = (type_expr, 'd) Jkind_types.t - -type jkind_l = (allowed * disallowed) t - -type packed = Pack : 'd t -> packed [@@unboxed] - -include Allowance.Magic_allow_disallow (struct - type (_, _, 'd) sided = 'd t - - let disallow_right ({ jkind = { layout = _; _ }; _ } as t) = t - - let disallow_left ({ jkind = { layout = _; _ }; _ } as t) = t - - let allow_right ({ jkind = { layout = _; _ }; _ } as t) = t - - let allow_left ({ jkind = { layout = _; _ }; _ } as t) = t -end) - -let terrible_relax_l ({ jkind = { layout = _; _ }; _ } as t) = t - -let fresh_jkind jkind ~annotation ~why = - { jkind; annotation; history = Creation why; has_warned = false } - (******************************) (*** user errors ***) @@ -362,56 +338,479 @@ module Error = struct from_attribute : Builtin_attributes.jkind_attribute Location.loc } | Unimplemented_syntax + | With_on_right exception User_error of Location.t * t end let raise ~loc err = raise (Error.User_error (loc, err)) -module Const = struct - open Jkind_types.Layout_and_axes +(******************************) +(*** Bounds, specialized to the real [type_expr] ***) - type +'d t = 'd const +module With_bounds = struct + type 'd t = 'd Types.with_bounds constraint 'd = 'l * 'r - include Allowance.Magic_allow_disallow (struct - type (_, _, 'd) sided = 'd t + module Type_info = struct + include With_bounds_type_info + + let print ppf { relevant_axes } = + let open Format in + fprintf ppf "@[{ relevant_axes = %a }]" Axis_set.print relevant_axes + + let join { relevant_axes = axes1 } { relevant_axes = axes2 } = + { relevant_axes = Axis_set.union axes1 axes2 } + end + + let to_best_eff_map = function + | No_with_bounds -> With_bounds_types.empty + | With_bounds bounds -> bounds + + let to_list : type d. d with_bounds -> _ = function + | No_with_bounds -> [] + | With_bounds tys -> tys |> With_bounds_types.to_seq |> List.of_seq + + open Allowance - let disallow_left ({ layout = _; _ } as t) = t + include Magic_allow_disallow (struct + type (_, _, 'd) sided = 'd t constraint 'd = 'l * 'r - let disallow_right ({ layout = _; _ } as t) = t + let disallow_left : type l r. (l * r) t -> (disallowed * r) t = function + | No_with_bounds -> No_with_bounds + | With_bounds _ as b -> b - let allow_left ({ layout = _; _ } as t) = t + let disallow_right : type l r. (l * r) t -> (l * disallowed) t = function + | No_with_bounds -> No_with_bounds + | With_bounds _ as b -> b - let allow_right ({ layout = _; _ } as t) = t + let allow_left : type l r. (allowed * r) t -> (l * r) t = function + | No_with_bounds -> No_with_bounds + | With_bounds _ as b -> b + + let allow_right : type l r. (l * allowed) t -> (l * r) t = function + | No_with_bounds -> No_with_bounds end) + let try_allow_l : type l r. (l * r) t -> (allowed * r) t option = function + | No_with_bounds -> Some No_with_bounds + | With_bounds _ as b -> Some b + + let try_allow_r : type l r. (l * r) t -> (l * allowed) t option = function + | No_with_bounds -> Some No_with_bounds + | With_bounds _ -> None + + let map_type_expr (type l r) f : (l * r) t -> (l * r) t = function + | No_with_bounds -> No_with_bounds + | With_bounds tys -> + With_bounds + (tys |> With_bounds_types.to_seq + |> Seq.map (fun (ty, ti) -> f ty, ti) + |> With_bounds_types.of_seq) + + let debug_print (type l r) ~print_type_expr ppf : (l * r) t -> _ = + let open Format in + function + | No_with_bounds -> fprintf ppf "No_with_bounds" + | With_bounds tys -> + fprintf ppf "With_bounds @[[%a]@]" + (pp_print_seq + ~pp_sep:(fun ppf () -> fprintf ppf ";@ ") + (fun ppf (ty, ti) -> + fprintf ppf "@[(%a, %a)]" print_type_expr ty Type_info.print ti)) + (With_bounds_types.to_seq tys) + + let join_bounds = + With_bounds_types.merge (fun _ ti1 ti2 -> + match ti1, ti2 with + | None, None -> None + | Some ti, None -> Some ti + | None, Some ti -> Some ti + | Some ti1, Some ti2 -> Some (Type_info.join ti1 ti2)) + + (* You might think that we can only do joins on the left. But that's not true! + We can join constants. The important thing is that the allowances of both + arguments are the same and that they match the result: this will mean that + if we have any with_bounds in either argument, the result is an l-With_bounds, as + required. This might change once we have arrow kinds, but we'll deal with + that when we get there. *) + let join (type l r) (bag1 : (l * r) t) (bag2 : (l * r) t) : (l * r) t = + match bag1, bag2 with + | No_with_bounds, No_with_bounds -> No_with_bounds + | No_with_bounds, b -> b + | b, No_with_bounds -> b + | With_bounds tys1, With_bounds tys2 -> With_bounds (join_bounds tys1 tys2) + + let meet (type l1 l2) (bag1 : (l1 * allowed) t) (bag2 : (l2 * allowed) t) : + (l1 * allowed) t = + match bag1, bag2 with No_with_bounds, No_with_bounds -> No_with_bounds + + let add_bound type_expr type_info tys = + With_bounds_types.update type_expr + (function + | None -> Some type_info | Some ti -> Some (Type_info.join ti type_info)) + tys + + let add type_expr type_info bounds = + match bounds with + | No_with_bounds -> + With_bounds (With_bounds_types.singleton type_expr type_info) + | With_bounds bounds -> With_bounds (add_bound type_expr type_info bounds) + + let add_modality ~relevant_for_nullability ~modality ~type_expr + (t : (allowed * 'r) t) : (allowed * 'r) t = + let relevant_axes = + Jkind_axis.Axis_set.create ~f:(fun ~axis:(Pack axis) -> + match axis with + | Modal axis -> ( + let (P axis) = Mode.Const.Axis.alloc_as_value (P axis) in + let modality = Mode.Modality.Value.Const.proj axis modality in + let is_constant = Mode.Modality.is_constant modality in + let is_id = Mode.Modality.is_id modality in + match is_constant, is_id with + | true, _ -> false + | _, true -> true + | false, false -> + Misc.fatal_errorf + "Don't yet know how to interpret non-constant, non-identity \ + modalities, but got %a along axis %a.\n\n\ + If you see this error, please contant the Jane Street \ + compiler team." + Mode.Modality.print modality Value.print_axis axis) + | Nonmodal Externality -> true + | Nonmodal Nullability -> ( + match relevant_for_nullability with + | `Relevant -> true + | `Irrelevant -> false)) + in + match t with + | No_with_bounds -> + With_bounds + (With_bounds_types.singleton type_expr + ({ relevant_axes } : With_bounds_type_info.t)) + | With_bounds tys -> With_bounds (add_bound type_expr { relevant_axes } tys) +end + +module Mod_bounds = struct + include Types.Jkind_mod_bounds + + let debug_print ppf + { locality; + linearity; + uniqueness; + portability; + contention; + yielding; + externality; + nullability + } = + Format.fprintf ppf + "@[{ locality = %a;@ linearity = %a;@ uniqueness = %a;@ portability = \ + %a;@ contention = %a;@ yielding = %a;@ externality = %a;@ nullability = \ + %a }@]" + Mode.Locality.Const.print locality Mode.Linearity.Const.print linearity + Mode.Uniqueness.Const.print uniqueness Mode.Portability.Const.print + portability Mode.Contention.Const.print contention + Mode.Yielding.Const.print yielding Externality.print externality + Nullability.print nullability + + let min = + Create.f + { f = + (fun (type axis) ~(axis : axis Axis.t) -> + let (module Bound_ops) = Axis.get axis in + Bound_ops.min) + } + let max = - { layout = Layout.Const.max; - modes_upper_bounds = Modes.max; - externality_upper_bound = Externality.max; - nullability_upper_bound = Nullability.max + Create.f + { f = + (fun (type axis) ~(axis : axis Axis.t) -> + let (module Bound_ops) = Axis.get axis in + Bound_ops.max) + } + + let simple ~locality ~linearity ~uniqueness ~portability ~contention ~yielding + ~externality ~nullability = + { locality; + linearity; + uniqueness; + portability; + contention; + yielding; + externality; + nullability + } + + let join = + Map2.f + { f = + (fun (type axis) ~(axis : axis Axis.t) -> + let (module Bound_ops) = Axis.get axis in + Bound_ops.join) + } + + let meet = + Map2.f + { f = + (fun (type axis) ~(axis : axis Axis.t) -> + let (module Bound_ops) = Axis.get axis in + Bound_ops.meet) + } + + let less_or_equal = + Fold2.f + { f = + (fun (type axis) ~(axis : axis Axis.t) -> + let (module Bound_ops) = Axis.get axis in + Bound_ops.less_or_equal) + } + ~combine:Misc.Le_result.combine + + let equal = + Fold2.f + { f = + (fun (type axis) ~(axis : axis Axis.t) -> + let (module Bound_ops) = Axis.get axis in + Bound_ops.equal) + } + ~combine:( && ) + + (** Get all axes that are set to max *) + let get_max_axes t = + Axis_set.create ~f:(fun ~axis:(Pack axis) -> + let (module Axis_ops) = Axis.get axis in + let bound = get ~axis t in + Axis_ops.le Axis_ops.max bound) + + let for_arrow = + simple ~linearity:Linearity.Const.max ~locality:Locality.Const.max + ~uniqueness:Uniqueness.Const.min ~portability:Portability.Const.max + ~contention:Contention.Const.min ~yielding:Yielding.Const.max + ~externality:Externality.max ~nullability:Nullability.Non_null +end + +module Layout_and_axes = struct + module Allow_disallow = Allowance.Magic_allow_disallow (struct + type (_, 'layout, 'd) sided = ('layout, 'd) layout_and_axes + + let disallow_left t = + { t with with_bounds = With_bounds.disallow_left t.with_bounds } + + let disallow_right t = + { t with with_bounds = With_bounds.disallow_right t.with_bounds } + + let allow_left t = + { t with with_bounds = With_bounds.allow_left t.with_bounds } + + let allow_right t = + { t with with_bounds = With_bounds.allow_right t.with_bounds } + end) + + include Allow_disallow + + let map f t = { t with layout = f t.layout } + + let map_option f t = + match f t.layout with None -> None | Some layout -> Some { t with layout } + + let map_type_expr f t = + { t with with_bounds = With_bounds.map_type_expr f t.with_bounds } + + let equal eq_layout + { layout = lay1; + mod_bounds = mod_bounds1; + with_bounds = (No_with_bounds : (allowed * allowed) with_bounds) + } + { layout = lay2; + mod_bounds = mod_bounds2; + with_bounds = (No_with_bounds : (allowed * allowed) with_bounds) + } = + eq_layout lay1 lay2 && Mod_bounds.equal mod_bounds1 mod_bounds2 + + let try_allow_l : + type l r. + ('layout, l * r) layout_and_axes -> + ('layout, Allowance.allowed * r) layout_and_axes option = + fun { layout; mod_bounds; with_bounds } -> + match With_bounds.try_allow_l with_bounds with + | None -> None + | Some with_bounds -> + Some { layout; mod_bounds = Obj.magic mod_bounds; with_bounds } + + let try_allow_r { layout; mod_bounds; with_bounds } = + match With_bounds.try_allow_r with_bounds with + | Some with_bounds -> + Some { layout; mod_bounds = Obj.magic mod_bounds; with_bounds } + | None -> None + + let debug_print ~print_type_expr format_layout ppf + { layout; mod_bounds; with_bounds } = + Format.fprintf ppf "{ layout = %a;@ mod_bounds = %a;@ with_bounds = %a }" + format_layout layout Mod_bounds.debug_print mod_bounds + (With_bounds.debug_print ~print_type_expr) + with_bounds +end + +(*********************************) + +module Quality = struct + include Allowance.Magic_allow_disallow (struct + type (_, _, 'd) sided = 'd jkind_quality constraint 'd = 'l * 'r + + let disallow_left : + type l r. (l * r) jkind_quality -> (disallowed * r) jkind_quality = + function + | Not_best -> Not_best + | Best -> Best + + let disallow_right : + type l r. (l * r) jkind_quality -> (l * disallowed) jkind_quality = + function + | Not_best -> Not_best + | Best -> Best + + let allow_left : + type l r. (allowed * r) jkind_quality -> (l * r) jkind_quality = + function + | Not_best -> Not_best + | Best -> Best + + let allow_right : + type l r. (l * allowed) jkind_quality -> (l * r) jkind_quality = + function + | Not_best -> Not_best + end) + + let try_allow_r : + type l r. (l * r) jkind_quality -> (l * allowed) jkind_quality option = + function + | Not_best -> Some Not_best + | Best -> None +end + +include Allowance.Magic_allow_disallow (struct + type (_, _, 'd) sided = 'd jkind + + let disallow_right t = + { t with + jkind = Layout_and_axes.disallow_right t.jkind; + quality = Quality.disallow_right t.quality + } + + let disallow_left t = + { t with + jkind = Layout_and_axes.disallow_left t.jkind; + quality = Quality.disallow_left t.quality + } + + let allow_right t = + { t with + jkind = Layout_and_axes.allow_right t.jkind; + quality = Quality.allow_right t.quality + } + + let allow_left t = + { t with + jkind = Layout_and_axes.allow_left t.jkind; + quality = Quality.allow_left t.quality } +end) + +let try_allow_r t = + let open Misc.Stdlib.Monad.Option.Syntax in + let* jkind = Layout_and_axes.try_allow_r t.jkind in + let* quality = Quality.try_allow_r t.quality in + Some { t with jkind; quality } + +let fresh_jkind jkind ~annotation ~why = + { jkind; + annotation; + history = Creation why; + has_warned = false; + quality = Not_best + } + |> allow_left |> allow_right + +(* This version propagates the allowances from the [jkind] to the output. *) +let fresh_jkind_poly jkind ~annotation ~why = + { jkind; + annotation; + history = Creation why; + has_warned = false; + quality = Not_best + } + +(***********************) +(*** constant jkinds ***) + +module Context_with_transl = struct + type 'd t = + | Right_jkind : + ('l * allowed) History.annotation_context + -> ('l * allowed) t + | Left_jkind : + (Parsetree.core_type -> Types.type_expr) + * (allowed * disallowed) History.annotation_context + -> (allowed * disallowed) t + + let get_context : type l r. (l * r) t -> (l * r) History.annotation_context = + function + | Right_jkind ctx -> ctx + | Left_jkind (_, ctx) -> ctx +end + +let outcometree_of_type_scheme = ref (fun _ -> assert false) + +let set_outcometree_of_type_scheme p = outcometree_of_type_scheme := p + +let outcometree_of_modalities_new = ref (fun _ _ _ -> assert false) + +let set_outcometree_of_modalities_new p = outcometree_of_modalities_new := p + +module Const = struct + type 'd t = (Layout.Const.t, 'd) Types.layout_and_axes + + include Allowance.Magic_allow_disallow (struct + include Layout_and_axes.Allow_disallow + + type (_, _, 'd) sided = 'd t + end) + + let max = + Types. + { layout = Layout.Const.max; + mod_bounds = Mod_bounds.max; + with_bounds = No_with_bounds + } - let equal_after_all_inference_is_done t1 t2 = - Layout_and_axes.equal_after_all_inference_is_done Layout.Const.equal t1 t2 + let no_with_bounds_and_equal t1 t2 = + let open Misc.Stdlib.Monad.Option.Syntax in + let t1_t2 = + let* t1 = Layout_and_axes.try_allow_l t1 in + let* t1 = Layout_and_axes.try_allow_r t1 in + let* t2 = Layout_and_axes.try_allow_l t2 in + let* t2 = Layout_and_axes.try_allow_r t2 in + Some (t1, t2) + in + match t1_t2 with + | Some (t1, t2) -> + Layout.Const.equal t1.layout t2.layout + && Mod_bounds.equal t1.mod_bounds t2.mod_bounds + | None -> false module Builtin = struct - type nonrec +'d t = - { jkind : 'd t; + type nonrec t = + { jkind : (allowed * allowed) t; name : string } let mk_jkind ~mode_crossing ~nullability (layout : Layout.Const.t) = - let modes_upper_bounds, externality_upper_bound = + let mod_bounds = match mode_crossing with - | true -> Modes.min, Externality.min - | false -> Modes.max, Externality.max + | true -> { Mod_bounds.min with nullability } + | false -> { Mod_bounds.max with nullability } in - { layout; - modes_upper_bounds; - externality_upper_bound; - nullability_upper_bound = nullability - } + { layout; mod_bounds; with_bounds = No_with_bounds } let any = { jkind = mk_jkind Any ~mode_crossing:false ~nullability:Maybe_null; @@ -437,16 +836,14 @@ module Const = struct let immutable_data = { jkind = { layout = Base Value; - modes_upper_bounds = - { linearity = Linearity.Const.min; - contention = Contention.Const.min; - portability = Portability.Const.min; - uniqueness = Uniqueness.Const.max; - areality = Locality.Const.max; - yielding = Yielding.Const.min - }; - externality_upper_bound = Externality.max; - nullability_upper_bound = Nullability.Non_null + mod_bounds = + Mod_bounds.simple ~linearity:Linearity.Const.min + ~contention:Contention.Const.min + ~portability:Portability.Const.min + ~uniqueness:Uniqueness.Const.max ~locality:Locality.Const.max + ~yielding:Yielding.Const.min ~externality:Externality.max + ~nullability:Nullability.Non_null; + with_bounds = No_with_bounds }; name = "immutable_data" } @@ -454,16 +851,14 @@ module Const = struct let mutable_data = { jkind = { layout = Base Value; - modes_upper_bounds = - { linearity = Linearity.Const.min; - contention = Contention.Const.max; - portability = Portability.Const.min; - uniqueness = Uniqueness.Const.max; - areality = Locality.Const.max; - yielding = Yielding.Const.min - }; - externality_upper_bound = Externality.max; - nullability_upper_bound = Nullability.Non_null + mod_bounds = + Mod_bounds.simple ~linearity:Linearity.Const.min + ~contention:Contention.Const.max + ~portability:Portability.Const.min + ~uniqueness:Uniqueness.Const.max ~locality:Locality.Const.max + ~yielding:Yielding.Const.min ~externality:Externality.max + ~nullability:Nullability.Non_null; + with_bounds = No_with_bounds }; name = "mutable_data" } @@ -510,7 +905,13 @@ module Const = struct meeting the conditions. *) let immediate64 = - { jkind = { immediate.jkind with externality_upper_bound = External64 }; + { jkind = + { immediate.jkind with + mod_bounds = + { immediate.jkind.mod_bounds with + externality = Externality.External64 + } + }; name = "immediate64" } @@ -569,63 +970,48 @@ module Const = struct bits64; vec128 ] - let of_attribute : Builtin_attributes.jkind_attribute -> _ t = function + let of_attribute : Builtin_attributes.jkind_attribute -> t = function | Immediate -> immediate | Immediate64 -> immediate64 end module To_out_jkind_const : sig (** Convert a [t] into a [Outcometree.out_jkind_const]. - The jkind is written in terms of the built-in jkind that requires the least amount - of modes after the mod. For example, - [value mod global many unique portable uncontended external_ non_null] could be - written in terms of [value] (as it appears above), or in terms of [immediate] - (which would just be [immediate]). Since the latter requires less modes to be - printed, it is chosen. *) + The jkind is written in terms of the built-in jkind that requires the + least amount of modes after the mod. For example, [value mod global many + unique portable uncontended external_ non_null] could be written in + terms of [value] (as it appears above), or in terms of [immediate] + (which would just be [immediate]). Since the latter requires less modes + to be printed, it is chosen. *) val convert : 'd t -> Outcometree.out_jkind_const end = struct type printable_jkind = { base : string; - modal_bounds : string list + modal_bounds : string list; + printable_with_bounds : + (Outcometree.out_type * Outcometree.out_modality_new list) list } - module Bounds = struct - type t = - { alloc_bounds : Alloc.Const.t; - externality_bound : Externality.t; - nullability_bound : Nullability.t - } - - let of_jkind jkind = - { alloc_bounds = jkind.modes_upper_bounds; - externality_bound = jkind.externality_upper_bound; - nullability_bound = jkind.nullability_upper_bound - } - end - - let get_modal_bound ~le ~print ~base actual = - match le actual base with - | true -> ( - match le base actual with - | true -> `Valid None - | false -> `Valid (Some (Format.asprintf "%a" print actual))) - | false -> `Invalid - - let get_modal_bounds ~(base : Bounds.t) (actual : Bounds.t) = - [ get_modal_bound ~le:Locality.Const.le ~print:Locality.Const.print - ~base:base.alloc_bounds.areality actual.alloc_bounds.areality; - get_modal_bound ~le:Uniqueness.Const.le ~print:Uniqueness.Const.print - ~base:base.alloc_bounds.uniqueness actual.alloc_bounds.uniqueness; - get_modal_bound ~le:Linearity.Const.le ~print:Linearity.Const.print - ~base:base.alloc_bounds.linearity actual.alloc_bounds.linearity; - get_modal_bound ~le:Contention.Const.le ~print:Contention.Const.print - ~base:base.alloc_bounds.contention actual.alloc_bounds.contention; - get_modal_bound ~le:Portability.Const.le ~print:Portability.Const.print - ~base:base.alloc_bounds.portability actual.alloc_bounds.portability; - get_modal_bound ~le:Externality.le ~print:Externality.print - ~base:base.externality_bound actual.externality_bound; - get_modal_bound ~le:Nullability.le ~print:Nullability.print - ~base:base.nullability_bound actual.nullability_bound ] + let get_modal_bound (type a) ~(axis : a Axis.t) ~(base : a) (actual : a) = + let (module A) = Axis.get axis in + (* CR layouts v2.8: Fix printing! *) + let less_or_equal a b = + let (module Axis_ops) = Axis.get axis in + Axis_ops.less_or_equal a b + in + match less_or_equal actual base with + | Less | Equal -> ( + match less_or_equal base actual with + | Less | Equal -> `Valid None + | Not_le -> `Valid (Some (Format.asprintf "%a" A.print actual))) + | Not_le -> `Invalid + + let get_modal_bounds ~(base : Mod_bounds.t) (actual : Mod_bounds.t) = + Axis.all + |> List.map (fun (Axis.Pack axis) -> + let base = Mod_bounds.get ~axis base in + let actual = Mod_bounds.get ~axis actual in + get_modal_bound ~axis ~base actual) |> List.rev |> List.fold_left (fun acc mode -> @@ -635,18 +1021,51 @@ module Const = struct | Some acc, `Valid (Some mode) -> Some (mode :: acc)) (Some []) + let modality_from_relevant_axes relevant_axes = + (* The modality is id along relevant axes and constant along irrelevant axes. *) + let irrelevant_axes = Axis_set.complement relevant_axes in + List.fold_left + (fun acc (Axis.Pack axis) -> + match axis with + | Modal axis -> + let then_ : Modality.t = + let (P axis) = Mode.Const.Axis.alloc_as_value (P axis) in + match axis with + | Monadic monadic -> + Atom + (axis, Join_with (Mode.Value.Monadic.Const.max_axis monadic)) + | Comonadic comonadic -> + Atom + ( axis, + Meet_with (Mode.Value.Comonadic.Const.min_axis comonadic) ) + in + Modality.Value.Const.compose acc ~then_ + | Nonmodal _ -> + (* TODO: don't know how to print *) + acc) + Modality.Value.Const.id + (Axis_set.to_list irrelevant_axes) + (** Write [actual] in terms of [base] *) - let convert_with_base ~(base : _ Builtin.t) actual = + let convert_with_base ~(base : Builtin.t) (actual : _ t) = let matching_layouts = Layout.Const.equal base.jkind.layout actual.layout in let modal_bounds = - get_modal_bounds - ~base:(Bounds.of_jkind base.jkind) - (Bounds.of_jkind actual) + get_modal_bounds ~base:base.jkind.mod_bounds actual.mod_bounds + in + let printable_with_bounds = + List.map + (fun (type_expr, ({ relevant_axes } : With_bounds_type_info.t)) -> + ( !outcometree_of_type_scheme type_expr, + !outcometree_of_modalities_new + Types.Immutable [] + (modality_from_relevant_axes relevant_axes) )) + (With_bounds.to_list actual.with_bounds) in match matching_layouts, modal_bounds with - | true, Some modal_bounds -> Some { base = base.name; modal_bounds } + | true, Some modal_bounds -> + Some { base = base.name; modal_bounds; printable_with_bounds } | false, _ | _, None -> None (** Select the out_jkind_const with the least number of modal bounds to print *) @@ -662,6 +1081,11 @@ module Const = struct | [] -> None let convert jkind = + let jkind = + if Language_extension.(is_at_least Layouts Alpha) + then jkind + else { jkind with with_bounds = No_with_bounds } + in (* For each primitive jkind, we try to print the jkind in terms of it (this is possible if the primitive is a subjkind of it). We then choose the "simplest". The "simplest" is taken to mean the one with the least number of modes that need to @@ -684,9 +1108,11 @@ module Const = struct ~base: { jkind = { layout = jkind.layout; - modes_upper_bounds = Modes.max; - externality_upper_bound = Externality.max; - nullability_upper_bound = Nullability.Non_null + mod_bounds = + { Mod_bounds.max with + nullability = Nullability.Non_null + }; + with_bounds = No_with_bounds }; name = Layout.Const.to_string jkind.layout } @@ -701,9 +1127,8 @@ module Const = struct ~base: { jkind = { layout = jkind.layout; - modes_upper_bounds = Modes.max; - externality_upper_bound = Externality.max; - nullability_upper_bound = Nullability.max + mod_bounds = Mod_bounds.max; + with_bounds = No_with_bounds }; name = Layout.Const.to_string jkind.layout } @@ -713,46 +1138,48 @@ module Const = struct modal bounds are all max *) Option.get out_jkind_verbose) in - match printable_jkind with - | { base; modal_bounds = _ :: _ as modal_bounds } -> - Outcometree.Ojkind_const_mod - (Ojkind_const_abbreviation base, modal_bounds) - | { base; modal_bounds = [] } -> - Outcometree.Ojkind_const_abbreviation base + let base, with_tys = + match printable_jkind with + | { base; modal_bounds = _ :: _ as modal_bounds; printable_with_bounds } + -> + ( Outcometree.Ojkind_const_mod + (Ojkind_const_abbreviation base, modal_bounds), + printable_with_bounds ) + | { base; modal_bounds = []; printable_with_bounds } -> + Outcometree.Ojkind_const_abbreviation base, printable_with_bounds + in + (* Finally, add on the [with]-types and their modalities *) + List.fold_left + (fun jkind (ty, modalities) -> + Outcometree.Ojkind_const_with (jkind, ty, modalities)) + base with_tys end let to_out_jkind_const jkind = To_out_jkind_const.convert jkind let format ppf jkind = to_out_jkind_const jkind |> !Oprint.out_jkind_const ppf - let jkind_of_product_annotations jkinds = - let folder (layouts, mode_ub, ext_ub, null_ub) - { layout; - modes_upper_bounds; - externality_upper_bound; - nullability_upper_bound - } = - ( layout :: layouts, - Modes.join mode_ub modes_upper_bounds, - Externality.join ext_ub externality_upper_bound, - Nullability.join null_ub nullability_upper_bound ) + (*******************************) + (* converting user annotations *) + + let jkind_of_product_annotations (type l r) (jkinds : (l * r) t list) = + let folder (type l r) (layouts_acc, mod_bounds_acc, with_bounds_acc) + ({ layout; mod_bounds; with_bounds } : (l * r) t) = + ( layout :: layouts_acc, + Mod_bounds.join mod_bounds mod_bounds_acc, + With_bounds.join with_bounds with_bounds_acc ) in - let layouts, mode_ub, ext_ub, null_ub = - List.fold_left folder - ([], Modes.min, Externality.min, Nullability.min) - jkinds + let layouts, mod_bounds, with_bounds = + List.fold_left folder ([], Mod_bounds.min, No_with_bounds) jkinds in { layout = Layout.Const.Product (List.rev layouts); - modes_upper_bounds = mode_ub; - externality_upper_bound = ext_ub; - nullability_upper_bound = null_ub + mod_bounds; + with_bounds } let rec of_user_written_annotation_unchecked_level : type l r. - (l * r) History.annotation_context -> - Parsetree.jkind_annotation -> - (l * r) t = + (l * r) Context_with_transl.t -> Parsetree.jkind_annotation -> (l * r) t = fun context jkind -> match jkind.pjkind_desc with | Abbreviation name -> @@ -771,39 +1198,52 @@ module Const = struct | "bits32" -> Builtin.bits32.jkind | "bits64" -> Builtin.bits64.jkind | "vec128" -> Builtin.vec128.jkind + | "immutable_data" -> Builtin.immutable_data.jkind + | "mutable_data" -> Builtin.mutable_data.jkind | _ -> raise ~loc:jkind.pjkind_loc (Unknown_jkind jkind)) |> allow_left |> allow_right - | Mod (jkind, modifiers) -> - let base = of_user_written_annotation_unchecked_level context jkind in + | Mod (base, modifiers) -> + let base = of_user_written_annotation_unchecked_level context base in (* for each mode, lower the corresponding modal bound to be that mode *) let parsed_modifiers = Typemode.transl_modifier_annots modifiers in - let parsed_modes : Alloc.Const.Option.t = - { areality = parsed_modifiers.locality; - linearity = parsed_modifiers.linearity; - uniqueness = parsed_modifiers.uniqueness; - portability = parsed_modifiers.portability; - contention = parsed_modifiers.contention; - yielding = parsed_modifiers.yielding - } + let mod_bounds = + Mod_bounds.Create.f + { f = + (fun (type a) ~(axis : a Axis.t) -> + let (module A) = Axis.get axis in + let parsed_modifier = + Typemode.Transled_modifiers.get ~axis parsed_modifiers + in + let base_bound = Mod_bounds.get ~axis base.mod_bounds in + match parsed_modifier, base_bound with + | None, base_bound -> base_bound + | Some parsed_modifier, base_modifier -> + A.meet base_modifier parsed_modifier.txt) + } in - { layout = base.layout; - modes_upper_bounds = - Alloc.Const.meet base.modes_upper_bounds - (Alloc.Const.Option.value ~default:Alloc.Const.max parsed_modes); - nullability_upper_bound = - Nullability.meet base.nullability_upper_bound - (Option.value ~default:Nullability.max parsed_modifiers.nullability); - externality_upper_bound = - Externality.meet base.externality_upper_bound - (Option.value ~default:Externality.max parsed_modifiers.externality) - } + { layout = base.layout; mod_bounds; with_bounds = No_with_bounds } | Product ts -> let jkinds = List.map (of_user_written_annotation_unchecked_level context) ts in jkind_of_product_annotations jkinds - | Default | With _ | Kind_of _ -> - raise ~loc:jkind.pjkind_loc Unimplemented_syntax + | With (base, type_, modalities) -> ( + let base = of_user_written_annotation_unchecked_level context base in + match context with + | Right_jkind _ -> raise ~loc:type_.ptyp_loc With_on_right + | Left_jkind (transl_type, _) -> + let type_ = transl_type type_ in + let modality = + Typemode.transl_modalities ~maturity:Stable Immutable [] modalities + in + { layout = base.layout; + mod_bounds = base.mod_bounds; + with_bounds = + With_bounds.add_modality ~modality + ~relevant_for_nullability:`Irrelevant ~type_expr:type_ + base.with_bounds + }) + | Default | Kind_of _ -> raise ~loc:jkind.pjkind_loc Unimplemented_syntax (* The [annotation_context] parameter can be used to allow annotations / kinds in different contexts to be enabled with different extension settings. @@ -811,18 +1251,19 @@ module Const = struct parameter might effectively be unused. *) (* CR layouts: When everything is stable, remove this function. *) - let get_required_layouts_level (_context : 'd History.annotation_context) + let get_required_layouts_level (_context : 'd Context_with_transl.t) (jkind : 'd t) = let rec scan_layout (l : Layout.Const.t) : Language_extension.maturity = - match l, jkind.nullability_upper_bound with + match l, jkind.mod_bounds.nullability with | (Base (Float64 | Float32 | Word | Bits32 | Bits64 | Vec128) | Any), _ - | Base Value, Non_null -> + | Base Value, Non_null + | Base Value, Maybe_null -> Stable | Product layouts, _ -> List.fold_left (fun m l -> Language_extension.Maturity.max m (scan_layout l)) Language_extension.Stable layouts - | Base Void, _ | Base Value, Maybe_null -> Alpha + | Base Void, _ -> Alpha in scan_layout jkind.layout @@ -837,7 +1278,7 @@ module Const = struct end module Desc = struct - type 'd t = (Sort.Flat.t Layout.t, 'd) Layout_and_axes.t + type 'd t = (Sort.Flat.t Layout.t, 'd) layout_and_axes let get_const t = Layout_and_axes.map_option Layout.get_flat_const t @@ -846,8 +1287,7 @@ module Desc = struct algorithm. *) let format ppf t = let open Format in - let rec format_desc ~nested ppf - (desc : (Sort.Flat.t Layout.t, _) Layout_and_axes.t) = + let rec format_desc ~nested ppf (desc : _ t) = match desc.layout with | Sort (Var n) -> fprintf ppf "'s%d" (Sort.Var.get_print_number n) (* Analyze a product before calling [get_const]: the machinery in @@ -865,82 +1305,283 @@ module Desc = struct end module Jkind_desc = struct - open Jkind_types.Layout_and_axes - let of_const t = Layout_and_axes.map Layout.of_const t let add_nullability_crossing t = - { t with nullability_upper_bound = Nullability.min } - - let add_portability_and_contention_crossing ~from t = - let new_portability = - Portability.Const.meet t.modes_upper_bounds.portability - from.modes_upper_bounds.portability - in - let new_contention = - Contention.Const.meet t.modes_upper_bounds.contention - from.modes_upper_bounds.contention - in - let added_crossings = - (not - (Portability.Const.le t.modes_upper_bounds.portability new_portability)) - || not - (Contention.Const.le t.modes_upper_bounds.contention new_contention) - in - ( { t with - modes_upper_bounds = - { t.modes_upper_bounds with - portability = new_portability; - contention = new_contention - } - }, - added_crossings ) + { t with mod_bounds = { t.mod_bounds with nullability = Nullability.min } } + + let unsafely_set_mod_bounds t ~from = + { t with mod_bounds = from.mod_bounds; with_bounds = No_with_bounds } + + let add_with_bounds ~relevant_for_nullability ~type_expr ~modality t = + match Types.get_desc type_expr with + | Tarrow (_, _, _, _) -> + (* Optimization: all arrow types have the same (with-bound-free) jkind, so we can just + eagerly do a join on the mod-bounds here rather than having to add them to our with + bounds only to be normalized away later. *) + { t with mod_bounds = Mod_bounds.join t.mod_bounds Mod_bounds.for_arrow } + | _ -> + { t with + with_bounds = + With_bounds.add_modality ~relevant_for_nullability ~type_expr + ~modality t.with_bounds + } let max = of_const Const.max - let equate_or_equal ~allow_mutation - { layout = lay1; - modes_upper_bounds = modes1; - externality_upper_bound = ext1; - nullability_upper_bound = null1 - } - { layout = lay2; - modes_upper_bounds = modes2; - externality_upper_bound = ext2; - nullability_upper_bound = null2 - } = - Layout.equate_or_equal ~allow_mutation lay1 lay2 - && Modes.equal modes1 modes2 - && Externality.equal ext1 ext2 - && Nullability.equal null1 null2 + let equate_or_equal ~allow_mutation t1 t2 = + Layout_and_axes.equal (Layout.equate_or_equal ~allow_mutation) t1 t2 + + type 'd normalize_mode = + | Require_best : ('l * disallowed) normalize_mode + | Ignore_best : ('l * 'r) normalize_mode + + module Fuel_status = struct + type t = + | Ran_out_of_fuel + | Sufficient_fuel + + let both a b = + match a, b with + | Ran_out_of_fuel, _ | _, Ran_out_of_fuel -> Ran_out_of_fuel + | Sufficient_fuel, Sufficient_fuel -> Sufficient_fuel + end + + (* Normalize the jkind. If mode is Require_best, only jkinds that are best will be used. + If mode is Ignore_best, then Not_best will be used. Since Ignore_best can use + Not_best, the result is guaranteed to have no with-bounds. + + At each step during normalization, before expanding a type, [map_type_info] is used + to map the type-info for the type being expanded. The type can be prevented from + being expanded by mapping the relevant axes to an empty set. [map_type_info] is used + by sub_jkind_l to remove irrelevant axes. *) + let map_normalize (type l1 r1 l2 r2) ~jkind_of_type + ~(mode : (l2 * r2) normalize_mode) + ~(map_type_info : + type_expr -> With_bounds_type_info.t -> With_bounds_type_info.t) + (t : (l1 * r1) jkind_desc) : (l2 * r2) jkind_desc * Fuel_status.t = + (* Sadly, it seems hard (impossible?) to be sure to expand all types + here without using a fuel parameter to stop infinite regress. Here + is a nasty case: + + {[ + type zero + type 'n succ + + type 'n loopy = Mk of 'n succ loopy list [@@unboxed] + ]} + + First off: this type *is* inhabited, because of the [list] intervening + type (which can be empty). It's also inhabited by various circular + structures. + + But what's the jkind of ['n loopy]? It must be the jkind of + ['n succ loopy list], which is [immutable_data with 'n succ loopy]. + In order to see if we shouldn't mode-cross, we have to expand the + ['n succ loopy] in the jkind, but expanding that just yields the need + to expand ['n succ succ loopy], and around we go. + + It seems hard to avoid this problem. And so we use fuel. Yet we want + both a small amount of fuel (a type like [type t = K of (t * t) list] + gets big very quickly) and a lot of fuel (we can imagine using a unit + of fuel for each level of a deeply nested record structure). The + compromise is to track fuel per type head, where a type head is either + the path to a type constructor (like [t] or [loopy]) or a tuple. + (We need to include tuples because of the possibility of recursive + types and the fact that tuples track their element types in their + jkind's with_bounds.) + + The initial fuel per type head is 10, as it seems hard to imagine that + we're going to make meaningful progress if we've seen the same type + head 10 times in one line of recursive descent. (This "one line of + recursive descent" bit is why we recur separately down one type before + iterating down the list.) + *) + (* CR reisenberg: document seen_args *) + let module Loop_control = struct + type t = + { tuple_fuel : int; + constr : (int * type_expr list) Path.Map.t; + fuel_status : Fuel_status.t + } + + type result = + | Stop of t (* give up, returning [max] *) + | Skip (* skip reducing this type, but otherwise continue *) + | Continue of t (* continue, with a new [t] *) + + let initial_fuel_per_ty = 2 + + let starting = + { tuple_fuel = initial_fuel_per_ty; + constr = Path.Map.empty; + fuel_status = Sufficient_fuel + } - let sub t1 t2 = Layout_and_axes.sub Layout.sub t1 t2 + let rec check ({ tuple_fuel; constr; fuel_status = _ } as t) ty = + match Types.get_desc ty with + | Tpoly (ty, _) -> check t ty + | Ttuple _ -> + if tuple_fuel > 0 + then Continue { t with tuple_fuel = tuple_fuel - 1 } + else Stop { t with fuel_status = Ran_out_of_fuel } + | Tconstr (p, args, _) -> ( + match Path.Map.find_opt p constr with + | None -> + Continue + { t with + constr = Path.Map.add p (initial_fuel_per_ty, args) constr + } + | Some (fuel, seen_args) -> + if List.for_all2 + (fun ty1 ty2 -> + TransientTypeOps.equal (Transient_expr.repr ty1) + (Transient_expr.repr ty2)) + seen_args args + then Skip + else if fuel > 0 + then + Continue + { t with constr = Path.Map.add p (fuel - 1, args) constr } + else Stop { t with fuel_status = Ran_out_of_fuel }) + | Tvar _ | Tarrow _ | Tunboxed_tuple _ | Tobject _ | Tfield _ | Tnil + | Tvariant _ | Tunivar _ | Tpackage _ -> + (* these cases either cannot be infinitely recursive or their jkinds + do not have with_bounds *) + (* CR layouts v2.8: Some of these might get with-bounds someday. We + should double-check before we're done that they haven't. *) + Continue t + | Tlink _ | Tsubst _ -> Misc.fatal_error "Tlink or Tsubst in normalize" + end in + let rec loop (ctl : Loop_control.t) bounds_so_far : + (type_expr * With_bounds_type_info.t) list -> + Mod_bounds.t * (l2 * r2) with_bounds * Fuel_status.t = function + (* early cutoff *) + | _ + when Misc.Le_result.is_le + (Mod_bounds.less_or_equal Mod_bounds.max bounds_so_far) -> + (* CR layouts v2.8: we can do better by early-terminating on a per-axis basis *) + bounds_so_far, No_with_bounds, Sufficient_fuel + | [] -> bounds_so_far, No_with_bounds, ctl.fuel_status + | (ty, ti) :: bs -> ( + (* Map the type's info before expanding the type *) + let ti = map_type_info ty ti in + (* We don't care about axes that are already max because they can't get any + better or worse. By ignoring them, we may be able to terminate early *) + let ti : With_bounds_type_info.t = + { relevant_axes = + Axis_set.diff ti.relevant_axes + (Mod_bounds.get_max_axes bounds_so_far) + } + in + match Axis_set.is_empty ti.relevant_axes with + | true -> + (* If [ty] is not relevant to any axes, then we can safely drop it and thereby + avoid doing the work of expanding it. *) + loop ctl bounds_so_far bs + | false -> ( + let join_bounds b1 b2 ~relevant_axes = + Mod_bounds.Map2.f + { f = + (fun (type a) ~(axis : a Axis.t) b1 b2 -> + if Axis_set.mem relevant_axes axis + then + let (module Bound_ops) = Axis.get axis in + Bound_ops.join b1 b2 + else b1) + } + b1 b2 + in + let found_jkind_for_ty new_ctl b_upper_bounds b_with_bounds quality : + Mod_bounds.t * (l2 * r2) with_bounds * Fuel_status.t = + match quality, mode with + | Best, _ | Not_best, Ignore_best -> + let bounds_so_far = + join_bounds bounds_so_far b_upper_bounds + ~relevant_axes:ti.relevant_axes + in + (* Descend into the with-bounds of each of our with-bounds types' + with-bounds *) + let bounds_so_far, nested_with_bounds, fuel_result1 = + loop new_ctl bounds_so_far (With_bounds.to_list b_with_bounds) + in + (* CR layouts v2.8: we use [new_ctl] here, not [ctl], to avoid big quadratic + stack growth for very widely recursive types. This is sad, since it + prevents us from mode crossing a record with 20 lists with different + payloads, but less sad than a stack overflow of the compiler during type + declaration checking. + + Ideally, this whole problem goes away once we rethink fuel. + *) + let bounds, bs', fuel_result2 = loop new_ctl bounds_so_far bs in + ( bounds, + With_bounds.join nested_with_bounds bs', + Fuel_status.both fuel_result1 fuel_result2 ) + | Not_best, Require_best -> + let bounds_so_far, bs', fuel_result = + loop new_ctl bounds_so_far bs + in + bounds_so_far, With_bounds.add ty ti bs', fuel_result + in + match Loop_control.check ctl ty with + | Stop ctl_after_stop -> + (* out of fuel, so assume [ty] has the worst possible bounds. *) + found_jkind_for_ty ctl_after_stop Mod_bounds.max No_with_bounds + Not_best + | Skip -> loop ctl bounds_so_far bs (* skip [b] *) + | Continue ctl_after_unpacking_b -> ( + match jkind_of_type ty with + | Some b_jkind -> + found_jkind_for_ty ctl_after_unpacking_b b_jkind.jkind.mod_bounds + b_jkind.jkind.with_bounds b_jkind.quality + | None -> + (* kind of b is not principally known, so we treat it as having the max + bound (only along the axes we care about for this type!) *) + found_jkind_for_ty ctl_after_unpacking_b Mod_bounds.max + No_with_bounds Not_best))) + in + let mod_bounds, with_bounds, fuel_status = + loop Loop_control.starting t.mod_bounds + (With_bounds.to_list t.with_bounds) + in + { t with mod_bounds; with_bounds }, fuel_status + + let normalize ~jkind_of_type ~mode t = + map_normalize ~jkind_of_type ~mode ~map_type_info:(fun _ ti -> ti) t + + let sub (type l r) ~type_equal:_ ~jkind_of_type + (sub : (allowed * r) jkind_desc) + ({ layout = lay2; mod_bounds = bounds2; with_bounds = No_with_bounds } : + (l * allowed) jkind_desc) = + let ( ({ layout = lay1; mod_bounds = bounds1; with_bounds = No_with_bounds } : + Allowance.right_only jkind_desc), + _ ) = + normalize ~mode:Ignore_best ~jkind_of_type sub + in + let layout = Layout.sub lay1 lay2 in + let bounds = Mod_bounds.less_or_equal bounds1 bounds2 in + Misc.Le_result.combine layout bounds let intersection - { layout = lay1; - modes_upper_bounds = modes1; - externality_upper_bound = ext1; - nullability_upper_bound = null1 - } - { layout = lay2; - modes_upper_bounds = modes2; - externality_upper_bound = ext2; - nullability_upper_bound = null2 - } = - Option.bind (Layout.intersection lay1 lay2) (fun layout -> - Some - { layout; - modes_upper_bounds = Modes.meet modes1 modes2; - externality_upper_bound = Externality.meet ext1 ext2; - nullability_upper_bound = Nullability.meet null1 null2 - }) + { layout = lay1; mod_bounds = mod_bounds1; with_bounds = with_bounds1 } + { layout = lay2; mod_bounds = mod_bounds2; with_bounds = with_bounds2 } = + match Layout.intersection lay1 lay2 with + | None -> None + | Some layout -> + Some + { layout; + mod_bounds = Mod_bounds.meet mod_bounds1 mod_bounds2; + with_bounds = With_bounds.meet with_bounds1 with_bounds2 + } + + let map_type_expr f t = Layout_and_axes.map_type_expr f t let of_new_sort_var nullability_upper_bound = let layout, sort = Layout.of_new_sort_var () in ( { layout; - modes_upper_bounds = Modes.max; - externality_upper_bound = Externality.max; - nullability_upper_bound + mod_bounds = + { Mod_bounds.max with nullability = nullability_upper_bound }; + with_bounds = No_with_bounds }, sort ) @@ -951,54 +1592,55 @@ module Jkind_desc = struct let value = of_const Const.Builtin.value.jkind + let immutable_data = of_const Const.Builtin.immutable_data.jkind + + let mutable_data = of_const Const.Builtin.mutable_data.jkind + let void = of_const Const.Builtin.void.jkind let immediate = of_const Const.Builtin.immediate.jkind end - let product jkinds = - (* CR layouts v7.1: Here we throw away the history of the component - jkinds. This is not great. We should, as part of a broader pass on error - messages around product kinds, zip them up into some kind of product - history. *) - let folder (layouts, annotations, mode_ub, ext_ub, null_ub) - { jkind = - { layout; - modes_upper_bounds; - externality_upper_bound; - nullability_upper_bound - }; - annotation; - history = _; - has_warned = _ - } = - ( layout :: layouts, - annotation :: annotations, - Modes.join mode_ub modes_upper_bounds, - Externality.join ext_ub externality_upper_bound, - Nullability.join null_ub nullability_upper_bound ) - in - let layouts, annotations, mode_ub, ext_ub, null_ub = - List.fold_left folder - ([], [], Modes.min, Externality.min, Nullability.min) - jkinds - in - let layouts = List.rev layouts in - let annotations = List.rev annotations in - let annotations = Misc.Stdlib.Monad.Option.all annotations in - let annotation = - Option.map - (fun annotations -> - Parsetree. - { pjkind_loc = Location.none; pjkind_desc = Product annotations }) - annotations - in - ( { layout : _ Layout.t = Product layouts; - modes_upper_bounds = mode_ub; - externality_upper_bound = ext_ub; - nullability_upper_bound = null_ub - }, - annotation ) + let product ~jkind_of_first_type ~jkind_of_type tys_modalities layouts = + (* CR layouts v2.8: We can probably drop this special case once we + have proper subsumption. The general algorithm gets the right + jkind, but the subsumption check fails because it can't recognize + that the one it comes up with is right. *) + match layouts with + | [_] -> (jkind_of_first_type ()).jkind + | _ -> + if !Clflags.infer_with_bounds + then + let layout = Layout.product layouts in + let mod_bounds = Mod_bounds.min in + let with_bounds = + List.fold_right + (fun (type_expr, modality) bounds -> + With_bounds.add_modality ~relevant_for_nullability:`Relevant + ~type_expr ~modality bounds) + tys_modalities No_with_bounds + in + { layout; mod_bounds; with_bounds } + else + let folder (layouts, bounds) (ty, _) = + let { jkind = { layout; mod_bounds; with_bounds = _ }; + annotation = _; + history = _; + has_warned = _; + quality = _ + } = + jkind_of_type ty + in + layout :: layouts, Mod_bounds.join bounds mod_bounds + in + let layouts, mod_bounds = + List.fold_left folder ([], Mod_bounds.min) tys_modalities + in + let layouts = List.rev layouts in + { layout = Layout.Product layouts; + mod_bounds; + with_bounds = No_with_bounds + } let get t = Layout_and_axes.map Layout.get t @@ -1006,7 +1648,7 @@ module Jkind_desc = struct module Debug_printers = struct let t ppf t = - Layout_and_axes.format + Layout_and_axes.debug_print (Layout.Debug_printers.t Sort.Debug_printers.t) ppf t end @@ -1019,19 +1661,27 @@ end let mk_annot name = Some Parsetree.{ pjkind_loc = Location.none; pjkind_desc = Abbreviation name } +let mark_best (type l r) (t : (l * r) Types.jkind) = + { (disallow_right t) with quality = Best } + +let is_best t = match t.quality with Best -> true | Not_best -> false + module Builtin = struct let any_dummy_jkind = { jkind = Jkind_desc.max; annotation = None; (* this should never get printed: it's a dummy *) history = Creation (Any_creation Dummy_jkind); - has_warned = false + has_warned = false; + quality = Not_best } (* CR layouts: Should we be doing more memoization here? *) let any ~(why : History.any_creation_reason) = match why with - | Dummy_jkind -> any_dummy_jkind (* share this one common case *) + | Dummy_jkind -> + any_dummy_jkind (* share this one common case *) |> allow_left + |> allow_right | _ -> fresh_jkind Jkind_desc.Builtin.any ~annotation:(mk_annot "any") ~why:(Any_creation why) @@ -1040,16 +1690,18 @@ module Builtin = struct { jkind = Jkind_desc.Builtin.value_or_null; annotation = mk_annot "value"; history = Creation (Value_or_null_creation V1_safety_check); - has_warned = false + has_warned = false; + quality = Not_best } let void ~why = fresh_jkind Jkind_desc.Builtin.void ~annotation:(mk_annot "void") ~why:(Void_creation why) + |> mark_best let value_or_null ~why = match (why : History.value_or_null_creation_reason) with - | V1_safety_check -> value_v1_safety_check + | V1_safety_check -> value_v1_safety_check |> allow_left |> allow_right | _ -> fresh_jkind Jkind_desc.Builtin.value_or_null ~annotation:(mk_annot "value_or_null") ~why:(Value_or_null_creation why) @@ -1058,27 +1710,70 @@ module Builtin = struct fresh_jkind Jkind_desc.Builtin.value ~annotation:(mk_annot "value") ~why:(Value_creation why) + let immutable_data ~(why : History.value_creation_reason) = + fresh_jkind Jkind_desc.Builtin.immutable_data + ~annotation:(mk_annot "immutable_data") + ~why:(Value_creation why) + + let mutable_data ~(why : History.value_creation_reason) = + fresh_jkind Jkind_desc.Builtin.mutable_data + ~annotation:(mk_annot "mutable_data") ~why:(Value_creation why) + let immediate ~why = fresh_jkind Jkind_desc.Builtin.immediate ~annotation:(mk_annot "immediate") ~why:(Immediate_creation why) + |> mark_best - let product ~why ts = - match ts with - | [] -> Misc.fatal_error "Jkind.Builtin.product: empty product" - | [t] -> t - | ts -> - let desc, annotation = Jkind_desc.product ts in - fresh_jkind desc ~annotation ~why:(Product_creation why) + let product ~jkind_of_first_type ~jkind_of_type ~why tys_modalities layouts = + let desc = + Jkind_desc.product ~jkind_of_first_type ~jkind_of_type tys_modalities + layouts + in + fresh_jkind_poly desc ~annotation:None ~why:(Product_creation why) + (* [mark_best] is correct here because the with-bounds of a product jkind include all + the components of the product. Accordingly, looking through the product, by one + step, never loses any information. *) + |> mark_best + + let product_of_sorts ~why arity = + let layout = + Layout.product + (List.init arity (fun _ -> fst (Layout.of_new_sort_var ()))) + in + let desc : _ jkind_desc = + { layout; mod_bounds = Mod_bounds.max; with_bounds = No_with_bounds } + in + fresh_jkind_poly desc ~annotation:None ~why:(Product_creation why) + (* We do not [mark_best] here because the resulting jkind is used (only) in the middle of + type-checking mutually recursive type declarations. See Note [Default jkind in + transl_declaration] for more commentary on why we don't want [Best] jkinds there. *) end let add_nullability_crossing t = { t with jkind = Jkind_desc.add_nullability_crossing t.jkind } -let add_portability_and_contention_crossing ~from t = - let jkind, added_crossings = - Jkind_desc.add_portability_and_contention_crossing ~from:from.jkind t.jkind - in - { t with jkind }, added_crossings +let unsafely_set_mod_bounds (type l r) ~(from : (l * r) jkind) t = + match from.jkind.with_bounds with + | With_bounds _ -> Error () + | No_with_bounds -> + Ok + { t with + jkind = Jkind_desc.unsafely_set_mod_bounds t.jkind ~from:from.jkind + } + +let add_with_bounds ~modality ~type_expr t = + { t with + jkind = + Jkind_desc.add_with_bounds + (* We only care about types in fields of unboxed products for the nullability of + the overall kind *) + ~relevant_for_nullability:`Irrelevant ~type_expr ~modality t.jkind + } + +let has_with_bounds t = + match t.jkind.with_bounds with + | No_with_bounds -> false + | With_bounds _ -> true (******************************) (* construction *) @@ -1095,55 +1790,58 @@ let of_new_legacy_sort_var ~why = let of_new_legacy_sort ~why = fst (of_new_legacy_sort_var ~why) -let of_const ~annotation ~why - ({ layout; - modes_upper_bounds; - externality_upper_bound; - nullability_upper_bound - } : - 'd Const.t) = - { jkind = - { layout = Layout.of_const layout; - modes_upper_bounds; - externality_upper_bound; - nullability_upper_bound - }; +let of_const (type l r) ~annotation ~why ~(quality : (l * r) jkind_quality) + (c : (l * r) Const.t) = + { jkind = Layout_and_axes.map Layout.of_const c; annotation; history = Creation why; - has_warned = false + has_warned = false; + quality } let of_builtin ~why Const.Builtin.{ jkind; name } = - of_const ~annotation:(mk_annot name) ~why jkind + jkind |> Layout_and_axes.allow_left |> Layout_and_axes.disallow_right + |> of_const ~annotation:(mk_annot name) + ~why + (* The [Best] is OK here because this function is used only in Predef. *) + ~quality:Best let of_annotated_const ~context ~annotation ~const ~const_loc = - of_const ~annotation ~why:(Annotated (context, const_loc)) const + let context = Context_with_transl.get_context context in + of_const ~annotation + ~why:(Annotated (context, const_loc)) + const ~quality:Not_best -let of_annotation ~context (annot : Parsetree.jkind_annotation) = +let of_annotation_lr ~context (annot : Parsetree.jkind_annotation) = let const = Const.of_user_written_annotation ~context annot in of_annotated_const ~annotation:(Some annot) ~const ~const_loc:annot.pjkind_loc ~context +let of_annotation ~context annot = + of_annotation_lr ~context:(Right_jkind context) annot + let of_annotation_option_default ~default ~context = function | None -> default | Some annot -> of_annotation ~context annot let of_attribute ~context (attribute : Builtin_attributes.jkind_attribute Location.loc) = - let ({ jkind = const; name } : _ Const.Builtin.t) = + let ({ jkind = const; name } : Const.Builtin.t) = Const.Builtin.of_attribute attribute.txt in of_annotated_const ~context ~annotation:(mk_annot name) ~const ~const_loc:attribute.loc -let of_type_decl ~context (decl : Parsetree.type_declaration) = +let of_type_decl ~context ~transl_type (decl : Parsetree.type_declaration) = + let context = Context_with_transl.Left_jkind (transl_type, context) in let jkind_of_annotation = decl.ptype_jkind_annotation - |> Option.map (fun annot -> of_annotation ~context annot, annot) + |> Option.map (fun annot -> of_annotation_lr ~context annot, annot) in let jkind_of_attribute = Builtin_attributes.jkind decl.ptype_attributes - |> Option.map (fun attr -> (of_attribute ~context attr, None), attr) + |> Option.map (fun attr -> + (of_attribute ~context attr |> disallow_right, None), attr) in match jkind_of_annotation, jkind_of_attribute with | None, None -> None @@ -1153,54 +1851,161 @@ let of_type_decl ~context (decl : Parsetree.type_declaration) = raise ~loc:decl.ptype_loc (Multiple_jkinds { from_annotation; from_attribute }) -let of_type_decl_default ~context ~default (decl : Parsetree.type_declaration) = - match of_type_decl ~context decl with Some (t, _) -> t | None -> default +let of_type_decl_default ~context ~transl_type ~default + (decl : Parsetree.type_declaration) = + match of_type_decl ~context ~transl_type decl with + | Some (t, _) -> t + | None -> default -let for_boxed_record ~all_void = - if all_void +let has_mutable_label lbls = + List.exists + (fun (lbl : Types.label_declaration) -> + match lbl.ld_mutable with Immutable -> false | Mutable _ -> true) + lbls + +let all_void_labels lbls = + List.for_all + (fun (lbl : Types.label_declaration) -> Sort.Const.(equal void lbl.ld_sort)) + lbls + +let add_labels_as_with_bounds lbls jkind = + List.fold_right + (fun (lbl : Types.label_declaration) -> + add_with_bounds ~type_expr:lbl.ld_type ~modality:lbl.ld_modalities) + lbls jkind + +let for_boxed_record lbls = + if all_void_labels lbls then Builtin.immediate ~why:Empty_record + else if !Clflags.infer_with_bounds + then + let is_mutable = has_mutable_label lbls in + let base = + (if is_mutable then Builtin.mutable_data else Builtin.immutable_data) + ~why:Boxed_record + |> mark_best + in + add_labels_as_with_bounds lbls base else Builtin.value ~why:Boxed_record -let for_boxed_variant ~all_voids = - if all_voids +let for_unboxed_record ~jkind_of_first_type ~jkind_of_type lbls = + let open Types in + let tys_modalities = + List.map (fun lbl -> lbl.ld_type, lbl.ld_modalities) lbls + in + let layouts = + List.map + (fun lbl -> lbl.ld_sort |> Layout.Const.of_sort_const |> Layout.of_const) + lbls + in + Builtin.product ~jkind_of_first_type ~jkind_of_type ~why:Unboxed_record + tys_modalities layouts + +(* CR layouts v2.8: This should take modalities into account. *) +let for_boxed_variant cstrs = + let open Types in + if List.for_all + (fun cstr -> + match cstr.cd_args with + | Cstr_tuple args -> + List.for_all (fun arg -> Sort.Const.(equal void arg.ca_sort)) args + | Cstr_record lbls -> all_void_labels lbls) + cstrs then Builtin.immediate ~why:Enumeration + else if !Clflags.infer_with_bounds + then + let is_mutable = + List.exists + (fun cstr -> + match cstr.cd_args with + | Cstr_tuple _ -> false + | Cstr_record lbls -> has_mutable_label lbls) + cstrs + in + let has_gadt_constructor = + List.exists + (fun cstr -> match cstr.cd_res with None -> false | Some _ -> true) + cstrs + in + if has_gadt_constructor + (* CR layouts v2.8: This is sad, but I don't know how to account for + existentials in the with_bounds. See doc named "Existential + with_bounds". *) + then Builtin.value ~why:Boxed_variant + else + let base = + (if is_mutable then Builtin.mutable_data else Builtin.immutable_data) + ~why:Boxed_variant + |> mark_best + in + let add_cstr_args cstr jkind = + match cstr.cd_args with + | Cstr_tuple args -> + List.fold_right + (fun arg -> + add_with_bounds ~modality:arg.ca_modalities ~type_expr:arg.ca_type) + args jkind + | Cstr_record lbls -> add_labels_as_with_bounds lbls jkind + in + List.fold_right add_cstr_args cstrs base else Builtin.value ~why:Boxed_variant let for_arrow = fresh_jkind { layout = Sort (Base Value); - modes_upper_bounds = - { linearity = Linearity.Const.max; - areality = Locality.Const.max; - uniqueness = Uniqueness.Const.min; - portability = Portability.Const.max; - contention = Contention.Const.min; - yielding = Yielding.Const.max - }; - externality_upper_bound = Externality.max; - nullability_upper_bound = Non_null + mod_bounds = Mod_bounds.for_arrow; + with_bounds = No_with_bounds } ~annotation:None ~why:(Value_creation Arrow) + |> mark_best let for_object = + let ({ linearity; + areality = locality; + uniqueness; + portability; + contention; + yielding + } + : Mode.Alloc.Const.t) = + (* The crossing of objects are based on the fact that they are + produced/defined/allocated at legacy, which applies to only the + comonadic axes. *) + Alloc.Const.merge + { comonadic = Alloc.Comonadic.Const.legacy; + monadic = Alloc.Monadic.Const.max + } + in fresh_jkind { layout = Sort (Base Value); - modes_upper_bounds = - (* The crossing of objects are based on the fact that they are - produced/defined/allocated at legacy, which applies to only the - comonadic axes. *) - Alloc.Const.merge - { comonadic = Alloc.Comonadic.Const.legacy; - monadic = Alloc.Monadic.Const.max - }; - externality_upper_bound = Externality.max; - nullability_upper_bound = Non_null + mod_bounds = + Mod_bounds.simple ~linearity ~locality ~uniqueness ~portability + ~contention ~yielding ~externality:Externality.max + ~nullability:Non_null; + with_bounds = No_with_bounds } ~annotation:None ~why:(Value_creation Object) (******************************) (* elimination and defaulting *) +type normalize_mode = + | Require_best + | Ignore_best + +let[@inline] normalize ~mode ~jkind_of_type t = + let mode : _ Jkind_desc.normalize_mode = + match mode with Require_best -> Require_best | Ignore_best -> Ignore_best + in + let jkind, fuel_result = Jkind_desc.normalize ~jkind_of_type ~mode t.jkind in + { t with + jkind; + quality = + (match t.quality, fuel_result with + | Not_best, _ | _, Ran_out_of_fuel -> Not_best + | Best, Sufficient_fuel -> Best) + } + let get_layout_defaulting_to_value { jkind = { layout; _ }; _ } = Layout.default_to_value_and_get layout @@ -1223,12 +2028,42 @@ let sort_of_jkind (t : jkind_l) : sort = let get_layout jk : Layout.Const.t option = Layout.get_const jk.jkind.layout -let get_modal_upper_bounds jk = jk.jkind.modes_upper_bounds +let extract_layout jk = jk.jkind.layout + +let get_modal_upper_bounds (type l r) ~jkind_of_type (jk : (l * r) jkind) : + Alloc.Const.t = + let ( ({ layout = _; mod_bounds; with_bounds = No_with_bounds } : + Allowance.right_only jkind_desc), + _ ) = + Jkind_desc.normalize ~mode:Ignore_best ~jkind_of_type jk.jkind + in + let get axis = Mod_bounds.get mod_bounds ~axis in + { areality = get (Modal (Comonadic Areality)); + linearity = get (Modal (Comonadic Linearity)); + uniqueness = get (Modal (Monadic Uniqueness)); + portability = get (Modal (Comonadic Portability)); + contention = get (Modal (Monadic Contention)); + yielding = get (Modal (Comonadic Yielding)) + } -let get_externality_upper_bound jk = jk.jkind.externality_upper_bound +let get_externality_upper_bound ~jkind_of_type jk = + let ( ({ layout = _; mod_bounds; with_bounds = No_with_bounds } : + Allowance.right_only jkind_desc), + _ ) = + Jkind_desc.normalize ~mode:Ignore_best ~jkind_of_type jk.jkind + in + Mod_bounds.get mod_bounds ~axis:(Nonmodal Externality) let set_externality_upper_bound jk externality_upper_bound = - { jk with jkind = { jk.jkind with externality_upper_bound } } + { jk with + jkind = + { jk.jkind with + mod_bounds = + { jk.jkind.mod_bounds with externality = externality_upper_bound } + } + } + +let set_layout jk layout = { jk with jkind = { jk.jkind with layout } } let get_annotation jk = jk.annotation @@ -1615,8 +2450,8 @@ module Violation = struct open Format type violation = - | Not_a_subjkind : (allowed * 'r) t * ('l * allowed) t -> violation - | No_intersection : 'd t * ('l * allowed) t -> violation + | Not_a_subjkind : (allowed * 'r1) jkind * ('l * 'r2) jkind -> violation + | No_intersection : 'd jkind * ('l * allowed) jkind -> violation type nonrec t = { violation : violation; @@ -1665,7 +2500,7 @@ module Violation = struct else dprintf "%s a sub%s of %a" verb layout_or_kind format_layout_or_kind k2 in - let Pack k1, Pack k2, fmt_k1, fmt_k2, missing_cmi_option = + let Pack_jkind k1, Pack_jkind k2, fmt_k1, fmt_k2, missing_cmi_option = match t with | { violation = Not_a_subjkind (k1, k2); missing_cmi } -> ( let missing_cmi = @@ -1679,21 +2514,21 @@ module Violation = struct in match missing_cmi with | None -> - ( Pack k1, - Pack k2, + ( Pack_jkind k1, + Pack_jkind k2, dprintf "%s %a" layout_or_kind format_layout_or_kind k1, subjkind_format "is not" k2, None ) | Some p -> - ( Pack k1, - Pack k2, + ( Pack_jkind k1, + Pack_jkind k2, dprintf "an unknown %s" layout_or_kind, subjkind_format "might not be" k2, Some p )) | { violation = No_intersection (k1, k2); missing_cmi } -> assert (Option.is_none missing_cmi); - ( Pack k1, - Pack k2, + ( Pack_jkind k1, + Pack_jkind k2, dprintf "%s %a" layout_or_kind format_layout_or_kind k1, dprintf "does not overlap with %a" format_layout_or_kind k2, None ) @@ -1740,15 +2575,14 @@ end (* relations *) let equate_or_equal ~allow_mutation - { jkind = jkind1; annotation = _; history = _; has_warned = _ } - { jkind = jkind2; annotation = _; history = _; has_warned = _ } = + { jkind = jkind1; annotation = _; history = _; has_warned = _; quality = _ } + { jkind = jkind2; annotation = _; history = _; has_warned = _; quality = _ } + = Jkind_desc.equate_or_equal ~allow_mutation jkind1 jkind2 (* CR layouts v2.8: Switch this back to ~allow_mutation:false *) let equal t1 t2 = equate_or_equal ~allow_mutation:true t1 t2 -let () = Types.set_jkind_equal equal - let equate t1 t2 = equate_or_equal ~allow_mutation:true t1 t2 (* Not all jkind history reasons are created equal. Some are more helpful than others. @@ -1763,7 +2597,8 @@ let score_reason = function | Creation (Concrete_creation _ | Concrete_legacy_creation _) -> -1 | _ -> 0 -let combine_histories reason (Pack k1) (Pack k2) = +let combine_histories ~type_equal ~jkind_of_type reason (Pack_jkind k1) + (Pack_jkind k2) = if flattened_histories then let choose_higher_scored_history history_a history_b = @@ -1772,7 +2607,7 @@ let combine_histories reason (Pack k1) (Pack k2) = else history_b in let choose_subjkind_history k_a history_a k_b history_b = - match Jkind_desc.sub k_a k_b with + match Jkind_desc.sub ~type_equal ~jkind_of_type k_a k_b with | Less -> history_a | Not_le -> (* CR layouts: this will be wrong if we ever have a non-trivial meet in @@ -1791,66 +2626,160 @@ let combine_histories reason (Pack k1) (Pack k2) = else Interact { reason; - jkind1 = Pack k1.jkind; + jkind1 = Pack_jkind_desc k1.jkind; history1 = k1.history; - jkind2 = Pack k2.jkind; + jkind2 = Pack_jkind_desc k2.jkind; history2 = k2.history } let has_intersection t1 t2 = - Option.is_some (Jkind_desc.intersection t1.jkind t2.jkind) + (* Need to check only the layouts: all the axes have bottom elements. *) + Option.is_some (Layout.intersection t1.jkind.layout t2.jkind.layout) -let intersection_or_error ~reason t1 t2 = +let intersection_or_error ~type_equal ~jkind_of_type ~reason t1 t2 = match Jkind_desc.intersection t1.jkind t2.jkind with | None -> Error (Violation.of_ (No_intersection (t1, t2))) | Some jkind -> Ok { jkind; annotation = None; - history = combine_histories reason (Pack t1) (Pack t2); - has_warned = t1.has_warned || t2.has_warned + history = + combine_histories ~type_equal ~jkind_of_type reason (Pack_jkind t1) + (Pack_jkind t2); + has_warned = t1.has_warned || t2.has_warned; + quality = + Not_best (* As required by the fact that this is a [jkind_r] *) } -let intersect_l_l ~reason t1 t2 = - (* CR layouts v2.8: Do something cleverer here once we have more - expressive l-kinds. *) - intersection_or_error ~reason t1 (terrible_relax_l t2) +let round_up (type l r) ~jkind_of_type (t : (allowed * r) jkind) : + (l * allowed) jkind = + let normalized = + normalize ~mode:Ignore_best ~jkind_of_type (t |> disallow_right) + in + { t with + jkind = { normalized.jkind with with_bounds = No_with_bounds }; + quality = Not_best (* As required by the fact that this is a [jkind_r] *) + } -let has_intersection_l_l t1 t2 = - (* CR layouts v2.8: Do something cleverer here once we have more - expressive l-kinds. *) - has_intersection (terrible_relax_l t1) (terrible_relax_l t2) +let map_type_expr f t = { t with jkind = Jkind_desc.map_type_expr f t.jkind } (* this is hammered on; it must be fast! *) -let check_sub sub super = Jkind_desc.sub sub.jkind super.jkind +let check_sub ~jkind_of_type sub super = + Jkind_desc.sub ~jkind_of_type sub.jkind super.jkind +<<<<<<< janestreet/merlin-jst:rae/with-kinds-roll let sub sub super = Le_result.is_le (check_sub sub super) +||||||| ocaml-flambda/flambda-backend:df4a6e0ba4f74dc790e0ad79f15ea73be1225c4b +let sub sub super = Misc.Le_result.is_le (check_sub sub super) +======= +let sub ~type_equal ~jkind_of_type sub super = + Misc.Le_result.is_le (check_sub ~type_equal ~jkind_of_type sub super) +>>>>>>> ocaml-flambda/flambda-backend:main type sub_or_intersect = | Sub | Disjoint | Has_intersection -let sub_or_intersect t1 t2 = - if sub t1 t2 +let sub_or_intersect ~type_equal ~jkind_of_type t1 t2 = + if sub ~type_equal ~jkind_of_type t1 t2 then Sub else if has_intersection t1 t2 then Has_intersection else Disjoint -let sub_or_error t1 t2 = - match sub_or_intersect t1 t2 with +let sub_or_error ~type_equal ~jkind_of_type t1 t2 = + match sub_or_intersect ~type_equal ~jkind_of_type t1 t2 with | Sub -> Ok () | _ -> Error (Violation.of_ (Not_a_subjkind (t1, t2))) -(* CR layouts v2.8: Rewrite this to do the hard subjkind check from the - kind polymorphism design. *) -let sub_jkind_l sub super = - let super = terrible_relax_l super in - match check_sub sub super with - | Less | Equal -> - Ok { sub with history = combine_histories Subjkind (Pack sub) (Pack super) } - | Not_le -> Error (Violation.of_ (Not_a_subjkind (sub, super))) +let sub_jkind_l ~type_equal ~jkind_of_type ?(allow_any_crossing = false) sub + super = + (* This function implements the "SUB" judgement from kind-inference.md. *) + let open Misc.Stdlib.Monad.Result.Syntax in + let require_le le_result = + match Misc.Le_result.is_le le_result with + | true -> Ok () + | false -> + (* When we report an error, we want to show the best-normalized version of sub, but + the original super. When this check fails, it is usually the case that the super + was written by the user and the sub was inferred. Thus, we should display the + user-written jkind, but simplify the inferred one, since the inferred one is + probably overly complex. *) + (* CR layouts v2.8: It would be useful report to the user why this + violation occurred, specifically which axes the violation is along. *) + let best_sub = normalize ~mode:Require_best ~jkind_of_type sub in + Error (Violation.of_ (Not_a_subjkind (best_sub, super))) + in + let* () = + (* Validate layouts *) + require_le (Layout.sub sub.jkind.layout super.jkind.layout) + in + match allow_any_crossing with + | true -> Ok () + | false -> + let best_super = + (* MB_EXPAND_R *) + normalize ~mode:Require_best ~jkind_of_type super + in + let right_bounds = + With_bounds.to_best_eff_map best_super.jkind.with_bounds + in + let axes_max_on_right = + (* If the upper_bound is max on the right, then that axis is irrelevant - the + left will always satisfy the right along that axis. This is an optimization, + not necessary for correctness *) + Mod_bounds.get_max_axes best_super.jkind.mod_bounds + in + let ( ({ layout = _; + mod_bounds = sub_upper_bounds; + with_bounds = No_with_bounds + } : + Allowance.right_only jkind_desc), + _ ) = + (* MB_EXPAND_L *) + (* Here we progressively expand types on the left. + + Every time we see a type [ty] on the left, we first look to see if [ty] occurs on the + right. If it does, then we can skip* [ty]. There is an * on skip because we can + actually only skip on a per-axis basis - if [ty] is relevant only along the + portability axis on the right, then [ty] is no longer relevant to portability on + the left, but it is still relevant to all other axes. So really, we subtract the + axes that are relevant to the right from the axes that are relevant to the left. + We can also skip [ty] on any axes that are max on the right since anything is + <= max. Hence, we can also subtract [axes_max_on_right]. + + After finding which axes [ty] is relevant along, we lookup [ty]'s jkind and join it + with the [mod_bounds] along the relevant axes. *) + (* [Jkind_desc.map_normalize] handles the stepping, jkind lookups, and joining. + [map_type_info] handles looking for [ty] on the right and removing irrelevant axes. *) + Jkind_desc.map_normalize sub.jkind ~jkind_of_type ~mode:Ignore_best + ~map_type_info:(fun ty { relevant_axes = left_relevant_axes } -> + let right_relevant_axes = + (* Look for [ty] on the right. There may be multiple occurrences of it on the + right; if so, we union together the relevant axes. *) + right_bounds |> With_bounds_types.to_seq + (* CR layouts v2.8: maybe it's worth memoizing using a best-effort type map? *) + |> Seq.fold_left + (fun acc (ty2, ti) -> + match type_equal ty ty2 with + | true -> + Axis_set.union acc ti.With_bounds_type_info.relevant_axes + | false -> acc) + Axis_set.empty + in + let axes_to_drop = + Axis_set.union right_relevant_axes axes_max_on_right + in + (* MB_WITH : drop types from the left that appear on the right *) + { relevant_axes = Axis_set.diff left_relevant_axes axes_to_drop }) + in + let* () = + (* MB_MODE : verify that the remaining upper_bounds from sub are <= super's bounds *) + let super_lower_bounds = best_super.jkind.mod_bounds in + require_le (Mod_bounds.less_or_equal sub_upper_bounds super_lower_bounds) + in + Ok () let is_void_defaulting = function | { jkind = { layout = Sort s; _ }; _ } -> Sort.is_void_defaulting s @@ -1858,32 +2787,34 @@ let is_void_defaulting = function (* This doesn't do any mutation because mutating a sort variable can't make it any, and modal upper bounds are constant. *) -let is_max jkind = sub Builtin.any_dummy_jkind jkind +(* The choice of [type_equal] and [jkind_of_type] doesn't matter because there + are no with-kinds on the left-hand kind. *) +let is_max jkind = + sub + ~type_equal:(fun _ _ -> false) + ~jkind_of_type:(fun _ -> None) + Builtin.any_dummy_jkind jkind let has_layout_any jkind = match jkind.jkind.layout with Any -> true | _ -> false -let is_value_for_printing - { jkind = - { layout; - modes_upper_bounds; - externality_upper_bound; - nullability_upper_bound - }; - _ - } = - match Layout.get_const layout with +let is_value_for_printing ~ignore_null { jkind; _ } = + match Desc.get_const (Jkind_desc.get jkind) with + | None -> false | Some const -> let value = Const.Builtin.value.jkind in - Layout.Const.equal const value.layout - && Modes.equal modes_upper_bounds value.modes_upper_bounds - && Externality.equal externality_upper_bound value.externality_upper_bound - && - if (* CR layouts v3.0: remove this hack once [or_null] is out of [Alpha]. *) - Language_extension.(is_at_least Layouts Alpha) - then Nullability.equal nullability_upper_bound Nullability.Non_null - else true - | None -> false + let values = [value] in + let values = + if ignore_null + then + { value with + mod_bounds = + { value.mod_bounds with nullability = Nullability.Maybe_null } + } + :: values + else values + in + List.exists (fun v -> Const.no_with_bounds_and_equal const v) values (*********************************) (* debugging *) @@ -2045,39 +2976,46 @@ module Debug_printers = struct fprintf ppf "Tyvar_refinement_intersection" | Subjkind -> fprintf ppf "Subjkind" - let rec history ppf = function + let rec history ~print_type_expr ppf = + let jkind_desc = Jkind_desc.Debug_printers.t ~print_type_expr in + function | Interact { reason; - jkind1 = Pack jkind1; + jkind1 = Pack_jkind_desc jkind1; history1; - jkind2 = Pack jkind2; + jkind2 = Pack_jkind_desc jkind2; history2 } -> fprintf ppf "Interact {@[reason = %a;@ jkind1 = %a;@ history1 = %a;@ jkind2 = %a;@ \ history2 = %a}@]" - interact_reason reason Jkind_desc.Debug_printers.t jkind1 history - history1 Jkind_desc.Debug_printers.t jkind2 history history2 + interact_reason reason jkind_desc jkind1 (history ~print_type_expr) + history1 jkind_desc jkind2 (history ~print_type_expr) history2 | Creation c -> fprintf ppf "Creation (%a)" creation_reason c - let t ppf ({ jkind; annotation = a; history = h; has_warned = _ } : 'd t) : - unit = - fprintf ppf "@[{ jkind = %a@,; annotation = %a@,; history = %a }@]" - Jkind_desc.Debug_printers.t jkind + let t (type l r) ~print_type_expr ppf + ({ jkind; annotation = a; history = h; has_warned = _; quality = q } : + (l * r) jkind) : unit = + fprintf ppf + "@[{ jkind = %a@,\ + ; annotation = %a@,\ + ; history = %a@,\ + ; quality = %s@,\ + \ }@]" + (Jkind_desc.Debug_printers.t ~print_type_expr) + jkind (pp_print_option Pprintast.jkind_annotation) - a history h + a (history ~print_type_expr) h + (match q with Best -> "Best" | Not_best -> "Not_best") module Const = struct - let t ppf (jkind : _ Const.t) = + let t ~print_type_expr ppf ({ layout; mod_bounds; with_bounds } : _ Const.t) + = fprintf ppf - "@[{ layout = %a@,\ - ; modes_upper_bounds = %a@,\ - ; externality_upper_bound = %a@,\ - ; nullability_upper_bound = %a@,\ - }@]" - Layout.Const.Debug_printers.t jkind.layout Modes.print - jkind.modes_upper_bounds Externality.print jkind.externality_upper_bound - Nullability.print jkind.nullability_upper_bound + "@[{ layout = %a@,; mod_bounds = %a@,; with_bounds = %a@, }@]" + Layout.Const.Debug_printers.t layout Mod_bounds.debug_print mod_bounds + (With_bounds.debug_print ~print_type_expr) + with_bounds end end @@ -2117,6 +3055,8 @@ let report_error ~loc : Error.t -> _ = function Pprintast.jkind_annotation jkind hint) | Unimplemented_syntax -> Location.errorf ~loc "@[Unimplemented kind syntax@]" + | With_on_right -> + Location.errorf ~loc "'with' syntax is not allowed on a right mode." let () = Location.register_error_of_exn (function diff --git a/src/ocaml/typing/jkind.mli b/src/ocaml/typing/jkind.mli index aa6bf5ab3..0fdfa1f49 100644 --- a/src/ocaml/typing/jkind.mli +++ b/src/ocaml/typing/jkind.mli @@ -63,7 +63,8 @@ end module Sort : sig include Jkind_intf.Sort - with type base = Jkind_types.Sort.base + with type t = Jkind_types.Sort.t + and type base = Jkind_types.Sort.base and type Const.t = Jkind_types.Sort.Const.t module Flat : sig @@ -89,8 +90,14 @@ module Layout : sig val get_sort : t -> Sort.Const.t option + val of_sort_const : Sort.Const.t -> t + val to_string : t -> string end + + val of_const : Const.t -> Sort.t t + + val sub : Sort.t t -> Sort.t t -> Misc.Le_result.t end (** A Jkind.t is a full description of the runtime representation of values @@ -113,21 +120,11 @@ end the meets (intersections) of r-jkinds and check that an l-jkind is less than an r-jkind. *) -type +'d t = (Types.type_expr, 'd) Jkind_types.t - -type jkind_l := Types.jkind_l -type jkind_r := Types.jkind_r +include Allowance.Allow_disallow with type (_, _, 'd) sided = 'd Types.jkind -type jkind_lr := Types.jkind_lr - -type packed = Pack : 'd t -> packed [@@unboxed] - -include Allowance.Allow_disallow with type (_, _, 'd) sided = 'd t - -(** Convert an [l] into any jkind. This will soon become impossible, and so - uses of this function will have to be removed. *) -val terrible_relax_l : jkind_l -> 'd t +(** Try to treat this jkind as an r-jkind. *) +val try_allow_r : ('l * 'r) Types.jkind -> ('l * allowed) Types.jkind option module History : sig include module type of struct @@ -136,15 +133,15 @@ module History : sig (* history *) - val is_imported : 'd t -> bool + val is_imported : 'd Types.jkind -> bool - val update_reason : 'd t -> creation_reason -> 'd t + val update_reason : 'd Types.jkind -> creation_reason -> 'd Types.jkind (* Mark the jkind as having produced a compiler warning. *) - val with_warning : 'd t -> 'd t + val with_warning : 'd Types.jkind -> 'd Types.jkind (* Whether this jkind has produced a compiler warning. *) - val has_warned : 'd t -> bool + val has_warned : 'd Types.jkind -> bool end (******************************) @@ -152,8 +149,13 @@ end module Violation : sig type violation = - | Not_a_subjkind : (allowed * 'r) t * ('l * allowed) t -> violation - | No_intersection : 'd t * ('l * allowed) t -> violation + (* [Not_a_subjkind] allows l-jkinds on the right so that it can be used + in [sub_jkind_l]. There is no downside to this, as the printing + machinery works over l-jkinds. *) + | Not_a_subjkind : + (allowed * 'r1) Types.jkind * ('l * 'r2) Types.jkind + -> violation + | No_intersection : 'd Types.jkind * ('l * allowed) Types.jkind -> violation type t @@ -197,80 +199,83 @@ module Const : sig The "constant" refers to the fact that there are no sort variables here. The existence of [with]-types means, though, that we still need the allowance machinery here. *) - type +'d t constraint 'd = 'l * 'r + type 'd t constraint 'd = 'l * 'r + + include Allowance.Allow_disallow with type (_, _, 'd) sided = 'd t val to_out_jkind_const : 'd t -> Outcometree.out_jkind_const - (* An equality check should work over [lr]s only. But we need this - to do memoization in serialization. Happily, that's after all - inference is done, when worrying about l and r does not matter - any more. *) - val equal_after_all_inference_is_done : 'd1 t -> 'd2 t -> bool + (** This returns [true] iff both types have no with-bounds and they are equal. + Normally, we want an equality check to happen only on values that are + allowed on both the left and the right. But a type with no with-bounds is + allowed on the left and the right, so we test for that condition first + before doing the proper equality check. *) + val no_with_bounds_and_equal : 'd1 t -> 'd2 t -> bool (* CR layouts: Remove this once we have a better story for printing with jkind abbreviations. *) module Builtin : sig - type nonrec 'd t = - { jkind : 'd t; + type nonrec t = + { jkind : (allowed * allowed) t; name : string } (** This jkind is the top of the jkind lattice. All types have jkind [any]. But we cannot compile run-time manipulations of values of types with jkind [any]. *) - val any : 'd t + val any : t (** [any], except for null pointers. *) - val any_non_null : 'd t + val any_non_null : t (** Value of types of this jkind are not retained at all at runtime *) - val void : 'd t + val void : t (** This is the jkind of normal ocaml values or null pointers *) - val value_or_null : 'd t + val value_or_null : t (** This is the jkind of normal ocaml values *) - val value : 'd t + val value : t (** Immutable values that don't contain functions. *) - val immutable_data : 'd t + val immutable_data : t (** Mutable values that don't contain functions. *) - val mutable_data : 'd t + val mutable_data : t (** Values of types of this jkind are immediate on 64-bit platforms; on other platforms, we know nothing other than that it's a value. *) - val immediate64 : 'd t + val immediate64 : t (** We know for sure that values of types of this jkind are always immediate *) - val immediate : 'd t + val immediate : t (** This is the jkind of unboxed 64-bit floats. They have sort Float64. Mode-crosses. *) - val float64 : 'd t + val float64 : t (** This is the jkind of unboxed 32-bit floats. They have sort Float32. Mode-crosses. *) - val float32 : 'd t + val float32 : t (** This is the jkind of unboxed native-sized integers. They have sort Word. Does not mode-cross. *) - val word : 'd t + val word : t (** This is the jkind of unboxed 32-bit integers. They have sort Bits32. Does not mode-cross. *) - val bits32 : 'd t + val bits32 : t (** This is the jkind of unboxed 64-bit integers. They have sort Bits64. Does not mode-cross. *) - val bits64 : 'd t + val bits64 : t (** This is the jkind of unboxed 128-bit simd vectors. They have sort Vec128. Does not mode-cross. *) - val vec128 : 'd t + val vec128 : t (** A list of all Builtin jkinds *) - val all : 'd t list + val all : t list end end @@ -278,76 +283,127 @@ module Builtin : sig (** This jkind is the top of the jkind lattice. All types have jkind [any]. But we cannot compile run-time manipulations of values of types with jkind [any]. *) - val any : why:History.any_creation_reason -> 'd t + val any : why:History.any_creation_reason -> 'd Types.jkind (** Value of types of this jkind are not retained at all at runtime *) - val void : why:History.void_creation_reason -> 'd t + val void : why:History.void_creation_reason -> ('l * disallowed) Types.jkind - val value_or_null : why:History.value_or_null_creation_reason -> 'd t + val value_or_null : + why:History.value_or_null_creation_reason -> 'd Types.jkind (** This is the jkind of normal ocaml values *) - val value : why:History.value_creation_reason -> 'd t + val value : why:History.value_creation_reason -> 'd Types.jkind + + (** This is suitable for records or variants without mutable fields. *) + val immutable_data : why:History.value_creation_reason -> 'd Types.jkind + + (** This is suitable for records or variants with mutable fields. *) + val mutable_data : why:History.value_creation_reason -> 'd Types.jkind (** We know for sure that values of types of this jkind are always immediate *) - val immediate : why:History.immediate_creation_reason -> 'd t - - (** Attempt to build a jkind of unboxed products. - - If zero input kinds are given, it errors. - - If a single input kind is given, then it returns that kind. - - If two or more input kinds are given, then the layout will be the - product of the layouts of the input kinds, and the other components of - the kind will be the join relevant component of the inputs. - *) - val product : why:History.product_creation_reason -> 'd t list -> 'd t + val immediate : + why:History.immediate_creation_reason -> ('l * disallowed) Types.jkind + + (** Build a jkind of unboxed products, from a list of types with + their layouts. Errors if zero inputs are given. If only one input + is given, returns the result of calling [jkind_of_first_type]. + + Precondition: both input lists are the same length. + + This returns an [jkind_l] simply as a matter of convenience; it can be + generalized if need be. + + The resulting jkind has quality [Best], because all the components of the product + are represented in the with-bounds. *) + val product : + jkind_of_first_type:(unit -> Types.jkind_l) -> + jkind_of_type:(Types.type_expr -> Types.jkind_l) -> + why:History.product_creation_reason -> + (Types.type_expr * Mode.Modality.Value.Const.t) list -> + Sort.t Layout.t list -> + Types.jkind_l + + (** Build a jkind of unboxed products, given only an arity. This jkind will not + mode-cross (and has kind [Not_best] accordingly), even though unboxed products + generally should. This is useful when creating an initial jkind in Typedecl. *) + val product_of_sorts : + why:History.product_creation_reason -> int -> Types.jkind_l end (** Take an existing [t] and add an ability to cross across the nullability axis. *) -val add_nullability_crossing : 'd t -> 'd t +val add_nullability_crossing : 'd Types.jkind -> 'd Types.jkind + +(** Forcibly change the mod-bounds of a [t] based on the mod-bounds of + [from]. + + Returns [Error ()] if [from] contains with-bounds. *) +val unsafely_set_mod_bounds : + from:'d Types.jkind -> 'd Types.jkind -> ('d Types.jkind, unit) Result.t -(** Take an existing [t] and add an ability to mode-cross along the portability and - contention axes, if [from] crosses the respective axes. Return the new jkind, - along with a boolean of whether illegal crossing was added *) -val add_portability_and_contention_crossing : from:'d t -> 'd t -> 'd t * bool +(** Take an existing [jkind_l] and add some with-bounds. *) +val add_with_bounds : + modality:Mode.Modality.Value.Const.t -> + type_expr:Types.type_expr -> + Types.jkind_l -> + Types.jkind_l + +(** Does this jkind have with-bounds? *) +val has_with_bounds : Types.jkind_l -> bool + +(** Mark the given jkind as {i best}, meaning we can never learn any more information + about it that will cause it to become lower in the preorder of kinds*) +val mark_best : ('l * 'r) Types.jkind -> ('l * disallowed) Types.jkind + +(** Is the given kind best? *) +val is_best : ('l * disallowed) Types.jkind -> bool (******************************) (* construction *) (** Create a fresh sort variable, packed into a jkind, returning both the resulting kind and the sort. *) -val of_new_sort_var : why:History.concrete_creation_reason -> 'd t * sort +val of_new_sort_var : + why:History.concrete_creation_reason -> 'd Types.jkind * sort (** Create a fresh sort variable, packed into a jkind. *) -val of_new_sort : why:History.concrete_creation_reason -> 'd t +val of_new_sort : why:History.concrete_creation_reason -> 'd Types.jkind (** Same as [of_new_sort_var], but the jkind is lowered to [Non_null] to mirror "legacy" OCaml values. Defaulting the sort variable produces exactly [value]. *) val of_new_legacy_sort_var : - why:History.concrete_legacy_creation_reason -> 'd t * sort + why:History.concrete_legacy_creation_reason -> 'd Types.jkind * sort (** Same as [of_new_sort], but the jkind is lowered to [Non_null] to mirror "legacy" OCaml values. Defaulting the sort variable produces exactly [value]. *) -val of_new_legacy_sort : why:History.concrete_legacy_creation_reason -> 'd t +val of_new_legacy_sort : + why:History.concrete_legacy_creation_reason -> 'd Types.jkind +(** Construct a jkind from a constant jkind, at quality [Not_best] *) val of_const : annotation:Parsetree.jkind_annotation option -> why:History.creation_reason -> + quality:'d Types.jkind_quality -> 'd Const.t -> - 'd t - -val of_builtin : why:History.creation_reason -> 'd Const.Builtin.t -> 'd t + 'd Types.jkind -(* CR layouts v2.8: remove this when printing is improved *) +(** Construct a jkind from a builtin kind, at quality [Best]. *) +val of_builtin : + why:History.creation_reason -> + Const.Builtin.t -> + ('l * disallowed) Types.jkind val of_annotation : - context:'d History.annotation_context -> Parsetree.jkind_annotation -> 'd t + context:('l * allowed) History.annotation_context -> + Parsetree.jkind_annotation -> + ('l * allowed) Types.jkind val of_annotation_option_default : - default:'d t -> - context:'d History.annotation_context -> + default:('l * allowed) Types.jkind -> + context:('l * allowed) History.annotation_context -> Parsetree.jkind_annotation option -> - 'd t + ('l * allowed) Types.jkind (** Find a jkind from a type declaration. Type declarations are special because the jkind may have been provided via [: jkind] syntax (which goes through @@ -355,39 +411,49 @@ val of_annotation_option_default : attributes, and [of_type_decl] needs to look in two different places on the [type_declaration] to account for these two alternatives. - Returns the jkind and the user-written annotation. + Returns the jkind (at quality [Not_best]) and the user-written annotation. Raises if a disallowed or unknown jkind is present. *) val of_type_decl : context:History.annotation_context_l -> + transl_type:(Parsetree.core_type -> Types.type_expr) -> Parsetree.type_declaration -> - (jkind_l * Parsetree.jkind_annotation option) option + (Types.jkind_l * Parsetree.jkind_annotation option) option (** Find a jkind from a type declaration in the same way as [of_type_decl], - defaulting to ~default. + defaulting to ~default. Returns a jkind at quality [Not_best]; call [mark_best] to + mark it as [Best]. Raises if a disallowed or unknown jkind is present. *) val of_type_decl_default : context:History.annotation_context_l -> - default:jkind_l -> + transl_type:(Parsetree.core_type -> Types.type_expr) -> + default:Types.jkind_l -> Parsetree.type_declaration -> - jkind_l + Types.jkind_l + +(** Choose an appropriate jkind for a boxed record type *) +val for_boxed_record : Types.label_declaration list -> Types.jkind_l -(** Choose an appropriate jkind for a boxed record type, given whether - all of its fields are [void]. *) -val for_boxed_record : all_void:bool -> jkind_l +(** Choose an appropriate jkind for an unboxed record type. Uses + [jkind_of_first_type] only in the singleton case, where the jkind of the + unboxed record must match that of the single field. *) +val for_unboxed_record : + jkind_of_first_type:(unit -> Types.jkind_l) -> + jkind_of_type:(Types.type_expr -> Types.jkind_l) -> + Types.label_declaration list -> + Types.jkind_l -(** Choose an appropriate jkind for a boxed variant type, given whether - all of the fields of all of its constructors are [void]. *) -val for_boxed_variant : all_voids:bool -> jkind_l +(** Choose an appropriate jkind for a boxed variant type. *) +val for_boxed_variant : Types.constructor_declaration list -> Types.jkind_l (** The jkind of an arrow type. *) -val for_arrow : jkind_l +val for_arrow : Types.jkind_l (** The jkind of an object type. *) -val for_object : jkind_l +val for_object : Types.jkind_l (******************************) (* elimination and defaulting *) @@ -396,7 +462,7 @@ module Desc : sig (** The description of a jkind, used as a return type from [get]. This description has no sort variables, but it might have [with]-types and thus needs the allowance machinery. *) - type 'd t = (Sort.Flat.t Layout.t, 'd) Jkind_types.Layout_and_axes.t + type 'd t = (Sort.Flat.t Layout.t, 'd) Types.layout_and_axes val get_const : 'd t -> 'd Const.t option @@ -404,46 +470,58 @@ module Desc : sig end (** Get a description of a jkind. *) -val get : 'd t -> 'd Desc.t +val get : 'd Types.jkind -> 'd Desc.t (** [get_layout_defaulting_to_value] extracts a constant layout, defaulting any sort variable to [value]. *) -val get_layout_defaulting_to_value : 'd t -> Layout.Const.t +val get_layout_defaulting_to_value : 'd Types.jkind -> Layout.Const.t (** [get_const] returns a [Const.t] if the layout has no sort variables, returning [None] otherwise *) -val get_const : 'd t -> 'd Const.t option +val get_const : 'd Types.jkind -> 'd Const.t option (** [default_to_value t] is [ignore (get_layout_defaulting_to_value t)] *) -val default_to_value : 'd t -> unit +val default_to_value : 'd Types.jkind -> unit (** [is_void t] is [Void = get_layout_defaulting_to_value t]. In particular, it will default the jkind to value if needed to make this false. *) -val is_void_defaulting : 'd t -> bool +val is_void_defaulting : 'd Types.jkind -> bool (* CR layouts v5: When we have proper support for void, we'll want to change these three functions to default to void - it's the most efficient thing when we have a choice. *) (** Returns the sort corresponding to the jkind. Call only on representable jkinds - raises on Any. *) -val sort_of_jkind : jkind_l -> sort +val sort_of_jkind : Types.jkind_l -> sort (** Gets the layout of a jkind; returns [None] if the layout is still unknown. Never does mutation. *) -val get_layout : 'd t -> Layout.Const.t option +val get_layout : 'd Types.jkind -> Layout.Const.t option -(* CR layouts v2.8: This will need to become significantly more involved with - [with]-types. *) +(* CR reisenberg: do we need [extract_layout]? *) + +(** Gets the layout of a jkind, without looking through sort variables. *) +val extract_layout : 'd Types.jkind -> Sort.t Layout.t (** Gets the maximum modes for types of this jkind. *) -val get_modal_upper_bounds : 'd t -> Mode.Alloc.Const.t +val get_modal_upper_bounds : + jkind_of_type:(Types.type_expr -> Types.jkind_l option) -> + 'd Types.jkind -> + Mode.Alloc.Const.t (** Gets the maximum mode on the externality axis for types of this jkind. *) -val get_externality_upper_bound : 'd t -> Externality.t +val get_externality_upper_bound : + jkind_of_type:(Types.type_expr -> Types.jkind_l option) -> + 'd Types.jkind -> + Externality.t (** Computes a jkind that is the same as the input but with an updated maximum mode for the externality axis *) -val set_externality_upper_bound : jkind_r -> Externality.t -> jkind_r +val set_externality_upper_bound : + Types.jkind_r -> Externality.t -> Types.jkind_r + +(** Sets the layout in a jkind. *) +val set_layout : 'd Types.jkind -> Sort.t Layout.t -> 'd Types.jkind (** Extract out component jkinds from the product. Because there are no product jkinds, this is a bit of a lie: instead, this decomposes the layout but just @@ -451,15 +529,44 @@ val set_externality_upper_bound : jkind_r -> Externality.t -> jkind_r Because it just reuses the mode information, the resulting jkinds are higher in the jkind lattice than they might need to be. *) -val decompose_product : 'd t -> 'd t list option +val decompose_product : 'd Types.jkind -> 'd Types.jkind list option (** Get an annotation (that a user might write) for this [t]. *) -val get_annotation : 'd t -> Parsetree.jkind_annotation option +val get_annotation : 'd Types.jkind -> Parsetree.jkind_annotation option + +(*********************************) +(* normalization *) + +type normalize_mode = + | Require_best + (** Normalize a jkind without losing any precision. That is, keep any with-bounds + if the kind of the type is not best (a stronger kind may be found). *) + | Ignore_best + (** Normalize a left jkind, conservatively rounding up. That is, if the kind of a + type is not best, use the not-best kind. The resulting jkind will have no + with-bounds. *) + +val normalize : + mode:normalize_mode -> + jkind_of_type:(Types.type_expr -> Types.jkind_l option) -> + Types.jkind_l -> + Types.jkind_l (*********************************) (* pretty printing *) -val format : Format.formatter -> 'd t -> unit +(** Call these before trying to print. *) +val set_outcometree_of_type_scheme : + (Types.type_expr -> Outcometree.out_type) -> unit + +val set_outcometree_of_modalities_new : + (Types.mutability -> + Parsetree.attributes -> + Mode.Modality.Value.Const.t -> + Outcometree.out_mode_new list) -> + unit + +val format : Format.formatter -> 'd Types.jkind -> unit (** Format the history of this jkind: what interactions it has had and why it is the jkind that it is. Might be a no-op: see [display_histories] @@ -467,7 +574,7 @@ val format : Format.formatter -> 'd t -> unit The [intro] is something like "The jkind of t is". *) val format_history : - intro:(Format.formatter -> unit) -> Format.formatter -> 'd t -> unit + intro:(Format.formatter -> unit) -> Format.formatter -> 'd Types.jkind -> unit (** Provides the [Printtyp.path] formatter back up the dependency chain to this module. *) @@ -479,24 +586,20 @@ val set_printtyp_path : (Format.formatter -> Path.t -> unit) -> unit (** This checks for equality, and sets any variables to make two jkinds equal, if possible. e.g. [equate] on a var and [value] will set the variable to be [value] *) -val equate : jkind_lr -> jkind_lr -> bool +val equate : Types.jkind_lr -> Types.jkind_lr -> bool (** This checks for equality, but has the invariant that it can only be called when there is no need for unification; e.g. [equal] on a var and [value] will crash. CR layouts (v1.5): At the moment, this is actually the same as [equate]! *) -val equal : jkind_lr -> jkind_lr -> bool +val equal : Types.jkind_lr -> Types.jkind_lr -> bool (** Checks whether two jkinds have a non-empty intersection. Might mutate - sort variables. *) -val has_intersection : jkind_r -> jkind_r -> bool - -(* CR layouts v2.8: This almost certainly has to get rewritten, as l-kinds do - not support meets. *) - -(** Like [has_intersection], but comparing two [l] jkinds. *) -val has_intersection_l_l : jkind_l -> jkind_l -> bool + sort variables. Works over any mix of l- and r-jkinds, because the only + way not to have an intersection is by looking at the layout: all axes + have a bottom element. *) +val has_intersection : 'd1 Types.jkind -> 'd2 Types.jkind -> bool (** Finds the intersection of two jkinds, constraining sort variables to create one if needed, or returns a [Violation.t] if an intersection does @@ -506,14 +609,21 @@ val has_intersection_l_l : jkind_l -> jkind_l -> bool it should be thought of as modifying the first jkind to be the intersection of the two, not something that modifies the second jkind. *) val intersection_or_error : + type_equal:(Types.type_expr -> Types.type_expr -> bool) -> + jkind_of_type:(Types.type_expr -> Types.jkind_l option) -> reason:History.interact_reason -> - ('l1 * allowed) t -> - ('l2 * allowed) t -> - (('l1 * allowed) t, Violation.t) Result.t + ('l1 * allowed) Types.jkind -> + ('l2 * allowed) Types.jkind -> + (('l1 * allowed) Types.jkind, Violation.t) Result.t (** [sub t1 t2] says whether [t1] is a subjkind of [t2]. Might update either [t1] or [t2] to make their layouts equal.*) -val sub : jkind_l -> jkind_r -> bool +val sub : + type_equal:(Types.type_expr -> Types.type_expr -> bool) -> + jkind_of_type:(Types.type_expr -> Types.jkind_l option) -> + Types.jkind_l -> + Types.jkind_r -> + bool type sub_or_intersect = | Sub (** The first jkind is a subjkind of the second. *) @@ -522,46 +632,74 @@ type sub_or_intersect = (** [sub_or_intersect t1 t2] does a subtype check, returning a [sub_or_intersect]; see comments there for more info. *) -val sub_or_intersect : (allowed * 'r) t -> ('l * allowed) t -> sub_or_intersect +val sub_or_intersect : + type_equal:(Types.type_expr -> Types.type_expr -> bool) -> + jkind_of_type:(Types.type_expr -> Types.jkind_l option) -> + (allowed * 'r) Types.jkind -> + ('l * allowed) Types.jkind -> + sub_or_intersect (** [sub_or_error t1 t2] does a subtype check, returning an appropriate [Violation.t] upon failure. *) -val sub_or_error : jkind_l -> jkind_r -> (unit, Violation.t) result - -(** Like [sub], but returns the subjkind with an updated history. - Pre-condition: the super jkind must be fully settled; no variables - which might be filled in later. *) -val sub_jkind_l : jkind_l -> jkind_l -> (jkind_l, Violation.t) result - -(* CR layouts v2.8: This almost certainly has to get rewritten, as l-kinds do - not support meets. *) - -(** Like [intersection_or_error], but between an [l] and an [l], as an [l]. *) -val intersect_l_l : - reason:History.interact_reason -> - jkind_l -> - jkind_l -> - (jkind_l, Violation.t) result +val sub_or_error : + type_equal:(Types.type_expr -> Types.type_expr -> bool) -> + jkind_of_type:(Types.type_expr -> Types.jkind_l option) -> + (allowed * 'r) Types.jkind -> + ('l * allowed) Types.jkind -> + (unit, Violation.t) result + +(** Like [sub], but compares a left jkind against another left jkind. + Pre-condition: the super jkind must be fully settled; no variables which + might be filled in later. +*) +val sub_jkind_l : + type_equal:(Types.type_expr -> Types.type_expr -> bool) -> + jkind_of_type:(Types.type_expr -> Types.jkind_l option) -> + ?allow_any_crossing:bool -> + Types.jkind_l -> + Types.jkind_l -> + (unit, Violation.t) result + +(** "round up" a [jkind_l] to a [jkind_r] such that the input is less than the + output. *) +val round_up : + jkind_of_type:(Types.type_expr -> Types.jkind_l option) -> + (allowed * 'r) Types.jkind -> + ('l * allowed) Types.jkind + +(** Map a function over types in [upper_bounds] *) +val map_type_expr : + (Types.type_expr -> Types.type_expr) -> + (allowed * 'r) Types.jkind -> + (allowed * 'r) Types.jkind (** Checks to see whether a jkind is the maximum jkind. Never does any mutation. *) -val is_max : ('l * allowed) t -> bool +val is_max : ('l * allowed) Types.jkind -> bool (** Checks to see whether a jkind has layout any. Never does any mutation. *) -val has_layout_any : ('l * allowed) t -> bool +val has_layout_any : ('l * allowed) Types.jkind -> bool (** Checks whether a jkind is [value]. This really should require a [jkind_lr], but it works on any [jkind], because it's used in printing and is somewhat unprincipled. *) -val is_value_for_printing : 'd t -> bool +val is_value_for_printing : ignore_null:bool -> 'd Types.jkind -> bool (*********************************) (* debugging *) module Debug_printers : sig - val t : Format.formatter -> 'd t -> unit + val t : + print_type_expr:(Format.formatter -> Types.type_expr -> unit) -> + Format.formatter -> + 'd Types.jkind -> + unit module Const : sig - val t : Format.formatter -> 'd Const.t -> unit + val t : + print_type_expr:(Format.formatter -> Types.type_expr -> unit) -> + Format.formatter -> + 'd Const.t -> + unit end end diff --git a/src/ocaml/typing/jkind_axis.ml b/src/ocaml/typing/jkind_axis.ml index c351db406..9304bc044 100644 --- a/src/ocaml/typing/jkind_axis.ml +++ b/src/ocaml/typing/jkind_axis.ml @@ -4,7 +4,7 @@ (* *) (* Liam Stevenson, Jane Street, New York *) (* *) -(* Copyright 2021 Jane Street Group LLC *) +(* Copyright 2024 Jane Street Group LLC *) (* *) (* All rights reserved. This file is distributed under the terms of *) (* the GNU Lesser General Public License version 2.1, with the *) @@ -12,6 +12,7 @@ (* *) (**************************************************************************) +<<<<<<< janestreet/merlin-jst:rae/with-kinds-roll (* Merlin-specific: Change the module path of Misc_stdlib.Le_result to Misc.Le_result to match the compiler *) module Misc = struct @@ -26,28 +27,23 @@ module type Axis_s = sig val min : t val equal : t -> t -> bool +||||||| ocaml-flambda/flambda-backend:df4a6e0ba4f74dc790e0ad79f15ea73be1225c4b +module type Axis_s = sig + type t - val less_or_equal : t -> t -> Misc.Le_result.t - - val le : t -> t -> bool - - val meet : t -> t -> t - - val join : t -> t -> t + val max : t - val print : Format.formatter -> t -> unit -end + val min : t -module Of_lattice (L : Mode_intf.Lattice) = struct - include L + val equal : t -> t -> bool +======= +module type Axis_ops = sig + include Mode_intf.Lattice +>>>>>>> ocaml-flambda/flambda-backend:main - let less_or_equal a b : Misc.Le_result.t = - match le a b, le b a with - | true, true -> Equal - | true, false -> Less - | false, _ -> Not_le + val less_or_equal : t -> t -> Misc.Le_result.t - let equal a b = Misc.Le_result.is_equal (less_or_equal a b) + val equal : t -> t -> bool end module Externality = struct @@ -60,6 +56,8 @@ module Externality = struct let min = External + let legacy = Internal + let equal e1 e2 = match e1, e2 with | External, External -> true @@ -89,10 +87,10 @@ module Externality = struct let join t1 t2 = match t1, t2 with - | Internal, (External | External64 | Internal) - | (External | External64), Internal -> + | Internal, (Internal | External64 | External) + | (External64 | External), Internal -> Internal - | External64, (External | External64) | External, External64 -> External64 + | External64, (External64 | External) | External, External64 -> External64 | External, External -> External let print ppf = function @@ -110,6 +108,8 @@ module Nullability = struct let min = Non_null + let legacy = Non_null + let equal n1 n2 = match n1, n2 with | Non_null, Non_null -> true @@ -132,7 +132,7 @@ module Nullability = struct let join n1 n2 = match n1, n2 with - | Maybe_null, (Non_null | Maybe_null) | Non_null, Maybe_null -> Maybe_null + | Maybe_null, (Maybe_null | Non_null) | Non_null, Maybe_null -> Maybe_null | Non_null, Non_null -> Non_null let print ppf = function @@ -141,16 +141,6 @@ module Nullability = struct end module Axis = struct - module Modal = struct - type 'a t = - | Locality : Mode.Locality.Const.t t - | Linearity : Mode.Linearity.Const.t t - | Uniqueness : Mode.Uniqueness.Const.t t - | Portability : Mode.Portability.Const.t t - | Contention : Mode.Contention.Const.t t - | Yielding : Mode.Yielding.Const.t t - end - module Nonmodal = struct type 'a t = | Externality : Externality.t t @@ -158,10 +148,10 @@ module Axis = struct end type 'a t = - | Modal of 'a Modal.t - | Nonmodal of 'a Nonmodal.t + | Modal : ('m, 'a, 'd) Mode.Alloc.axis -> 'a t + | Nonmodal : 'a Nonmodal.t -> 'a t - type packed = Pack : 'a t -> packed + type packed = Pack : 'a t -> packed [@@unboxed] module Accent_lattice (M : Mode_intf.Lattice) = struct (* A functor to add some convenient functions to modal axes *) @@ -176,43 +166,39 @@ module Axis = struct let equal a b = Misc.Le_result.is_equal (less_or_equal a b) end - let get (type a) : a t -> (module Axis_s with type t = a) = function - | Modal Locality -> - (module Accent_lattice (Mode.Locality.Const) : Axis_s with type t = a) - | Modal Linearity -> - (module Accent_lattice (Mode.Linearity.Const) : Axis_s with type t = a) - | Modal Uniqueness -> - (module Accent_lattice (Mode.Uniqueness.Const) : Axis_s with type t = a) - | Modal Portability -> - (module Accent_lattice (Mode.Portability.Const) : Axis_s with type t = a) - | Modal Contention -> - (module Accent_lattice (Mode.Contention.Const) : Axis_s with type t = a) - | Modal Yielding -> - (module Accent_lattice (Mode.Yielding.Const) : Axis_s with type t = a) - | Nonmodal Externality -> (module Externality : Axis_s with type t = a) - | Nonmodal Nullability -> (module Nullability : Axis_s with type t = a) + let get (type a) : a t -> (module Axis_ops with type t = a) = function + | Modal axis -> + (module Accent_lattice ((val Mode.Alloc.lattice_of_axis axis))) + | Nonmodal Externality -> (module Externality) + | Nonmodal Nullability -> (module Nullability) let all = - [ Pack (Modal Locality); - Pack (Modal Linearity); - Pack (Modal Uniqueness); - Pack (Modal Portability); - Pack (Modal Contention); - Pack (Modal Yielding); + [ Pack (Modal (Comonadic Areality)); + Pack (Modal (Monadic Uniqueness)); + Pack (Modal (Comonadic Linearity)); + Pack (Modal (Monadic Contention)); + Pack (Modal (Comonadic Portability)); + Pack (Modal (Comonadic Yielding)); Pack (Nonmodal Externality); Pack (Nonmodal Nullability) ] let name (type a) : a t -> string = function - | Modal Locality -> "locality" - | Modal Linearity -> "linearity" - | Modal Uniqueness -> "uniqueness" - | Modal Portability -> "portability" - | Modal Contention -> "contention" - | Modal Yielding -> "yielding" + | Modal axis -> Format.asprintf "%a" Mode.Alloc.print_axis axis | Nonmodal Externality -> "externality" | Nonmodal Nullability -> "nullability" + + let is_modal (type a) : a t -> bool = function + | Modal (Comonadic Areality) -> true + | Modal (Comonadic Linearity) -> true + | Modal (Monadic Uniqueness) -> true + | Modal (Comonadic Portability) -> true + | Modal (Monadic Contention) -> true + | Modal (Comonadic Yielding) -> true + | Nonmodal Externality -> true + | Nonmodal Nullability -> false end +<<<<<<< janestreet/merlin-jst:rae/with-kinds-roll (* Sadly this needs to be functorized since we don't have higher-kinded types *) module Axis_collection (T : Misc_stdlib.T1) = struct type t = @@ -252,16 +238,330 @@ module Axis_collection (T : Misc_stdlib.T1) = struct function *) module Create_f = struct type t = { f : 'a. axis:'a Axis.t -> 'a T.t } +||||||| ocaml-flambda/flambda-backend:df4a6e0ba4f74dc790e0ad79f15ea73be1225c4b +(* Sadly this needs to be functorized since we don't have higher-kinded types *) +module Axis_collection (T : Misc.T1) = struct + type t = + { locality : Mode.Locality.Const.t T.t; + linearity : Mode.Linearity.Const.t T.t; + uniqueness : Mode.Uniqueness.Const.t T.t; + portability : Mode.Portability.Const.t T.t; + contention : Mode.Contention.Const.t T.t; + yielding : Mode.Yielding.Const.t T.t; + externality : Externality.t T.t; + nullability : Nullability.t T.t + } + + let get (type a) ~(axis : a Axis.t) values : a T.t = + match axis with + | Modal Locality -> values.locality + | Modal Linearity -> values.linearity + | Modal Uniqueness -> values.uniqueness + | Modal Portability -> values.portability + | Modal Contention -> values.contention + | Modal Yielding -> values.yielding + | Nonmodal Externality -> values.externality + | Nonmodal Nullability -> values.nullability + + let set (type a) ~(axis : a Axis.t) values (value : a T.t) = + match axis with + | Modal Locality -> { values with locality = value } + | Modal Linearity -> { values with linearity = value } + | Modal Uniqueness -> { values with uniqueness = value } + | Modal Portability -> { values with portability = value } + | Modal Contention -> { values with contention = value } + | Modal Yielding -> { values with yielding = value } + | Nonmodal Externality -> { values with externality = value } + | Nonmodal Nullability -> { values with nullability = value } + + (* Since we don't have polymorphic parameters, use a record to pass the polymorphic + function *) + module Create_f = struct + type t = { f : 'a. axis:'a Axis.t -> 'a T.t } +======= +module Axis_collection = struct + module Indexed_gen (T : Misc.T2) = struct + type 'a t_poly = + { locality : (Mode.Locality.Const.t, 'a) T.t; + linearity : (Mode.Linearity.Const.t, 'a) T.t; + uniqueness : (Mode.Uniqueness.Const.t, 'a) T.t; + portability : (Mode.Portability.Const.t, 'a) T.t; + contention : (Mode.Contention.Const.t, 'a) T.t; + yielding : (Mode.Yielding.Const.t, 'a) T.t; + externality : (Externality.t, 'a) T.t; + nullability : (Nullability.t, 'a) T.t + } + + type 'a t = 'a t_poly + + let get (type a) ~(axis : a Axis.t) (t : 'b t) : (a, 'b) T.t = + match axis with + | Modal (Comonadic Areality) -> t.locality + | Modal (Comonadic Linearity) -> t.linearity + | Modal (Monadic Uniqueness) -> t.uniqueness + | Modal (Comonadic Portability) -> t.portability + | Modal (Monadic Contention) -> t.contention + | Modal (Comonadic Yielding) -> t.yielding + | Nonmodal Externality -> t.externality + | Nonmodal Nullability -> t.nullability + + let set (type a) ~(axis : a Axis.t) (t : 'b t) (value : (a, 'b) T.t) = + match axis with + | Modal (Comonadic Areality) -> { t with locality = value } + | Modal (Comonadic Linearity) -> { t with linearity = value } + | Modal (Monadic Uniqueness) -> { t with uniqueness = value } + | Modal (Comonadic Portability) -> { t with portability = value } + | Modal (Monadic Contention) -> { t with contention = value } + | Modal (Comonadic Yielding) -> { t with yielding = value } + | Nonmodal Externality -> { t with externality = value } + | Nonmodal Nullability -> { t with nullability = value } + + (* Since we don't have polymorphic parameters, use a record to pass the + polymorphic function *) + module Create = struct + module Monadic (M : Misc.Stdlib.Monad.S) = struct + type 'a f = { f : 'axis. axis:'axis Axis.t -> ('axis, 'a) T.t M.t } + [@@unboxed] + + let[@inline] f { f } = + let open M.Syntax in + let* locality = f ~axis:Axis.(Modal (Comonadic Areality)) in + let* uniqueness = f ~axis:Axis.(Modal (Monadic Uniqueness)) in + let* linearity = f ~axis:Axis.(Modal (Comonadic Linearity)) in + let* contention = f ~axis:Axis.(Modal (Monadic Contention)) in + let* portability = f ~axis:Axis.(Modal (Comonadic Portability)) in + let* yielding = f ~axis:Axis.(Modal (Comonadic Yielding)) in + let* externality = f ~axis:Axis.(Nonmodal Externality) in + let* nullability = f ~axis:Axis.(Nonmodal Nullability) in + M.return + { locality; + uniqueness; + linearity; + contention; + portability; + yielding; + externality; + nullability + } + end + [@@inline] + + module Monadic_identity = Monadic (Misc.Stdlib.Monad.Identity) + + type 'a f = 'a Monadic_identity.f + + let[@inline] f f = Monadic_identity.f f + end + + module Map = struct + module Monadic (M : Misc.Stdlib.Monad.S) = struct + type ('a, 'b) f = + { f : + 'axis. axis:'axis Axis.t -> ('axis, 'a) T.t -> ('axis, 'b) T.t M.t + } + [@@unboxed] + + module Create = Create.Monadic (M) + + let[@inline] f { f } bounds = + Create.f { f = (fun ~axis -> f ~axis (get ~axis bounds)) } + end + [@@inline] + + module Monadic_identity = Monadic (Misc.Stdlib.Monad.Identity) + + type ('a, 'b) f = ('a, 'b) Monadic_identity.f + + let[@inline] f f bounds = Monadic_identity.f f bounds + end + + module Iter = struct + type 'a f = { f : 'axis. axis:'axis Axis.t -> ('axis, 'a) T.t -> unit } + [@@unboxed] + + let[@inline] f { f } + { locality; + linearity; + uniqueness; + portability; + contention; + yielding; + externality; + nullability + } = + f ~axis:Axis.(Modal (Comonadic Areality)) locality; + f ~axis:Axis.(Modal (Monadic Uniqueness)) uniqueness; + f ~axis:Axis.(Modal (Comonadic Linearity)) linearity; + f ~axis:Axis.(Modal (Monadic Contention)) contention; + f ~axis:Axis.(Modal (Comonadic Portability)) portability; + f ~axis:Axis.(Modal (Comonadic Yielding)) yielding; + f ~axis:Axis.(Nonmodal Externality) externality; + f ~axis:Axis.(Nonmodal Nullability) nullability + end + + module Map2 = struct + module Monadic (M : Misc.Stdlib.Monad.S) = struct + type ('a, 'b, 'c) f = + { f : + 'axis. + axis:'axis Axis.t -> + ('axis, 'a) T.t -> + ('axis, 'b) T.t -> + ('axis, 'c) T.t M.t + } + [@@unboxed] + + module Create = Create.Monadic (M) + + let[@inline] f { f } bounds1 bounds2 = + Create.f + { f = (fun ~axis -> f ~axis (get ~axis bounds1) (get ~axis bounds2)) + } + end + [@@inline] + + module Monadic_identity = Monadic (Misc.Stdlib.Monad.Identity) + + type ('a, 'b, 'c) f = ('a, 'b, 'c) Monadic_identity.f + + let[@inline] f f bounds1 bounds2 = Monadic_identity.f f bounds1 bounds2 + end + + module Fold = struct + type ('a, 'r) f = + { f : 'axis. axis:'axis Axis.t -> ('axis, 'a) T.t -> 'r } + [@@unboxed] + + let[@inline] f { f } + { locality; + linearity; + uniqueness; + portability; + contention; + yielding; + externality; + nullability + } ~combine = + combine (f ~axis:Axis.(Modal (Comonadic Areality)) locality) + @@ combine (f ~axis:Axis.(Modal (Monadic Uniqueness)) uniqueness) + @@ combine (f ~axis:Axis.(Modal (Comonadic Linearity)) linearity) + @@ combine (f ~axis:Axis.(Modal (Monadic Contention)) contention) + @@ combine (f ~axis:Axis.(Modal (Comonadic Portability)) portability) + @@ combine (f ~axis:Axis.(Modal (Comonadic Yielding)) yielding) + @@ combine (f ~axis:Axis.(Nonmodal Externality) externality) + @@ f ~axis:Axis.(Nonmodal Nullability) nullability + end + + module Fold2 = struct + type ('a, 'b, 'r) f = + { f : + 'axis. axis:'axis Axis.t -> ('axis, 'a) T.t -> ('axis, 'b) T.t -> 'r + } + [@@unboxed] + + let[@inline] f { f } + { locality = loc1; + linearity = lin1; + uniqueness = uni1; + portability = por1; + contention = con1; + yielding = yie1; + externality = ext1; + nullability = nul1 + } + { locality = loc2; + linearity = lin2; + uniqueness = uni2; + portability = por2; + contention = con2; + yielding = yie2; + externality = ext2; + nullability = nul2 + } ~combine = + combine (f ~axis:Axis.(Modal (Comonadic Areality)) loc1 loc2) + @@ combine (f ~axis:Axis.(Modal (Monadic Uniqueness)) uni1 uni2) + @@ combine (f ~axis:Axis.(Modal (Comonadic Linearity)) lin1 lin2) + @@ combine (f ~axis:Axis.(Modal (Monadic Contention)) con1 con2) + @@ combine (f ~axis:Axis.(Modal (Comonadic Portability)) por1 por2) + @@ combine (f ~axis:Axis.(Modal (Comonadic Yielding)) yie1 yie2) + @@ combine (f ~axis:Axis.(Nonmodal Externality) ext1 ext2) + @@ f ~axis:Axis.(Nonmodal Nullability) nul1 nul2 + end end - let create ({ f } : Create_f.t) = - { locality = f ~axis:Axis.(Modal Locality); - linearity = f ~axis:Axis.(Modal Linearity); - uniqueness = f ~axis:Axis.(Modal Uniqueness); - portability = f ~axis:Axis.(Modal Portability); - contention = f ~axis:Axis.(Modal Contention); - yielding = f ~axis:Axis.(Modal Yielding); - externality = f ~axis:Axis.(Nonmodal Externality); - nullability = f ~axis:Axis.(Nonmodal Nullability) - } + module Indexed (T : Misc.T1) = struct + include Indexed_gen (struct + type ('a, 'b) t = 'a T.t + end) + + type nonrec t = unit t +>>>>>>> ocaml-flambda/flambda-backend:main + end + + module Identity = Indexed (Misc.Stdlib.Monad.Identity) + + include Indexed_gen (struct + type ('a, 'b) t = 'b + end) + + let create ~f = Create.f { f = (fun ~axis -> f ~axis:(Axis.Pack axis)) } + + let map ~f t = Map.f { f = (fun ~axis:_ x -> f x) } t + + let mapi ~f t = Map.f { f = (fun ~axis x -> f ~axis:(Axis.Pack axis) x) } t + + let fold ~f ~combine t = + Fold.f { f = (fun ~axis acc -> f ~axis:(Axis.Pack axis) acc) } t ~combine +end + +module Axis_set = struct + (* each axis is true or false to indicate membership *) + type t = bool Axis_collection.t + + (* TODO: this could be represented with a uint8 since there's only 7 possible members *) + + let empty = Axis_collection.create ~f:(fun ~axis:_ -> false) + + let add t axis = Axis_collection.set ~axis t true + + let remove t axis = Axis_collection.set ~axis t false + + let mem t axis = Axis_collection.get ~axis t + + let union t1 t2 = + Axis_collection.create ~f:(fun ~axis:(Pack axis) -> + Axis_collection.get ~axis t1 || Axis_collection.get ~axis t2) + + let intersection t1 t2 = + Axis_collection.create ~f:(fun ~axis:(Pack axis) -> + Axis_collection.get ~axis t1 && Axis_collection.get ~axis t2) + + let diff t1 t2 = + Axis_collection.create ~f:(fun ~axis:(Pack axis) -> + Axis_collection.get ~axis t1 && not (Axis_collection.get ~axis t2)) + + let is_subset t1 t2 = + Axis_collection.fold + ~f:(fun ~axis:(Pack axis) t1_on_axis -> + let t2_on_axis = Axis_collection.get ~axis t2 in + (not t1_on_axis) || t2_on_axis) + ~combine:( && ) t1 + + let is_empty t = is_subset t empty + + let complement t = Axis_collection.map ~f:not t + + let to_list t = + Axis_collection.fold + ~f:(fun ~axis t_on_axis -> + match t_on_axis with true -> [axis] | false -> []) + ~combine:( @ ) t + + let create = Axis_collection.create + + let print ppf t = + Format.pp_print_list + ~pp_sep:(fun ppf () -> Format.fprintf ppf ";@ ") + (fun ppf (Axis.Pack axis) -> Format.fprintf ppf "%s" (Axis.name axis)) + ppf (to_list t) end diff --git a/src/ocaml/typing/jkind_axis.mli b/src/ocaml/typing/jkind_axis.mli index 59d4ed32c..ba97cae2d 100644 --- a/src/ocaml/typing/jkind_axis.mli +++ b/src/ocaml/typing/jkind_axis.mli @@ -4,7 +4,7 @@ (* *) (* Liam Stevenson, Jane Street, New York *) (* *) -(* Copyright 2021 Jane Street Group LLC *) +(* Copyright 2024 Jane Street Group LLC *) (* *) (* All rights reserved. This file is distributed under the terms of *) (* the GNU Lesser General Public License version 2.1, with the *) @@ -12,30 +12,15 @@ (* *) (**************************************************************************) -(** The common interface for jkind axes *) -module type Axis_s = sig - type t - - val max : t - - val min : t - - val equal : t -> t -> bool +(** Re-export *) +module type Axis_ops = sig + include Mode_intf.Lattice val less_or_equal : t -> t -> Misc_stdlib.Le_result.t - val le : t -> t -> bool - - val meet : t -> t -> t - - val join : t -> t -> t - - val print : Format.formatter -> t -> unit + val equal : t -> t -> bool end -(** Adapt a [Lattice] to be an [Axis_s] *) -module Of_lattice (L : Mode_intf.Lattice) : Axis_s with type t = L.t - (** The jkind axis of Externality *) module Externality : sig type t = @@ -43,7 +28,7 @@ module Externality : sig | External64 | Internal - include Axis_s with type t := t + include Axis_ops with type t := t end (** The jkind axis of nullability *) @@ -52,21 +37,10 @@ module Nullability : sig | Non_null | Maybe_null - include Axis_s with type t := t + include Axis_ops with type t := t end module Axis : sig - (* CR zqian: remove this and use [Mode.Alloc.axis] instead *) - module Modal : sig - type 'a t = - | Locality : Mode.Locality.Const.t t - | Linearity : Mode.Linearity.Const.t t - | Uniqueness : Mode.Uniqueness.Const.t t - | Portability : Mode.Portability.Const.t t - | Contention : Mode.Contention.Const.t t - | Yielding : Mode.Yielding.Const.t t - end - module Nonmodal : sig type 'a t = | Externality : Externality.t t @@ -75,21 +49,26 @@ module Axis : sig (** Represents an axis of a jkind *) type 'a t = - | Modal of 'a Modal.t - | Nonmodal of 'a Nonmodal.t + | Modal : ('m, 'a, 'd) Mode.Alloc.axis -> 'a t + | Nonmodal : 'a Nonmodal.t -> 'a t - type packed = Pack : 'a t -> packed + type packed = Pack : 'a t -> packed [@@unboxed] (* CR zqian: push ['a t] into the module to avoid first-class module. *) (** Given a jkind axis, get its interface *) - val get : 'a t -> (module Axis_s with type t = 'a) + val get : 'a t -> (module Axis_ops with type t = 'a) val all : packed list val name : _ t -> string + + (** Is this a modal axis? Includes externality, because that will one + day be modal (it is a deep property). *) + val is_modal : _ t -> bool end +<<<<<<< janestreet/merlin-jst:rae/with-kinds-roll (** A collection with one item for each jkind axis. [T] parametizes what element is being held for each axis. *) module Axis_collection (T : Misc_stdlib.T1) : sig @@ -111,8 +90,199 @@ module Axis_collection (T : Misc_stdlib.T1) : sig module Create_f : sig (** This record type is used to pass a polymorphic function to [create] *) type t = { f : 'a. axis:'a Axis.t -> 'a T.t } +||||||| ocaml-flambda/flambda-backend:df4a6e0ba4f74dc790e0ad79f15ea73be1225c4b +(** A collection with one item for each jkind axis. + [T] parametizes what element is being held for each axis. *) +module Axis_collection (T : Misc.T1) : sig + type t = + { locality : Mode.Locality.Const.t T.t; + linearity : Mode.Linearity.Const.t T.t; + uniqueness : Mode.Uniqueness.Const.t T.t; + portability : Mode.Portability.Const.t T.t; + contention : Mode.Contention.Const.t T.t; + yielding : Mode.Yielding.Const.t T.t; + externality : Externality.t T.t; + nullability : Nullability.t T.t + } + + val get : axis:'a Axis.t -> t -> 'a T.t + + val set : axis:'a Axis.t -> t -> 'a T.t -> t + + module Create_f : sig + (** This record type is used to pass a polymorphic function to [create] *) + type t = { f : 'a. axis:'a Axis.t -> 'a T.t } +======= +(** A collection with one item for each jkind axis *) +module Axis_collection : sig + module type S_gen := sig + type ('a, 'b) u + + (* This is t_poly instead of t because in some instantiations of this signature, u + ignores its second parameter. In order to avoid needed to apply a useless type + parameter for those instantiations, we define [type t = unit t_poly] in them. In + instantiations where the polymorphism is actually used, we define + [type 'a t = 'a t_poly] *) + type 'a t_poly = + { locality : (Mode.Locality.Const.t, 'a) u; + linearity : (Mode.Linearity.Const.t, 'a) u; + uniqueness : (Mode.Uniqueness.Const.t, 'a) u; + portability : (Mode.Portability.Const.t, 'a) u; + contention : (Mode.Contention.Const.t, 'a) u; + yielding : (Mode.Yielding.Const.t, 'a) u; + externality : (Externality.t, 'a) u; + nullability : (Nullability.t, 'a) u + } + + val get : axis:'a Axis.t -> 'b t_poly -> ('a, 'b) u + + val set : axis:'a Axis.t -> 'b t_poly -> ('a, 'b) u -> 'b t_poly + + (** Create an axis collection by applying the function on each axis *) + module Create : sig + module Monadic (M : Misc.Stdlib.Monad.S) : sig + type 'a f = { f : 'axis. axis:'axis Axis.t -> ('axis, 'a) u M.t } + [@@unboxed] + + val f : 'a f -> 'a t_poly M.t + end + + (** This record type is used to pass a polymorphic function to [create] *) + type 'a f = 'a Monadic(Misc.Stdlib.Monad.Identity).f + + val f : 'a f -> 'a t_poly + end + + (** Map an operation over all the bounds *) + module Map : sig + module Monadic (M : Misc.Stdlib.Monad.S) : sig + type ('a, 'b) f = + { f : 'axis. axis:'axis Axis.t -> ('axis, 'a) u -> ('axis, 'b) u M.t } + [@@unboxed] + + val f : ('a, 'b) f -> 'a t_poly -> 'b t_poly M.t + end + + type ('a, 'b) f = ('a, 'b) Monadic(Misc.Stdlib.Monad.Identity).f + + val f : ('a, 'b) f -> 'a t_poly -> 'b t_poly + end + + module Iter : sig + type 'a f = { f : 'axis. axis:'axis Axis.t -> ('axis, 'a) u -> unit } + [@@unboxed] + + val f : 'a f -> 'a t_poly -> unit + end + + (** Map an operation over two sets of bounds *) + module Map2 : sig + module Monadic (M : Misc.Stdlib.Monad.S) : sig + type ('a, 'b, 'c) f = + { f : + 'axis. + axis:'axis Axis.t -> + ('axis, 'a) u -> + ('axis, 'b) u -> + ('axis, 'c) u M.t + } + [@@unboxed] + + val f : ('a, 'b, 'c) f -> 'a t_poly -> 'b t_poly -> 'c t_poly M.t + end + + type ('a, 'b, 'c) f = ('a, 'b, 'c) Monadic(Misc.Stdlib.Monad.Identity).f + + val f : ('a, 'b, 'c) f -> 'a t_poly -> 'b t_poly -> 'c t_poly + end + + (** Fold an operation over the bounds to a summary value *) + module Fold : sig + type ('a, 'r) f = { f : 'axis. axis:'axis Axis.t -> ('axis, 'a) u -> 'r } + [@@unboxed] + + (** [combine] should be commutative and associative. *) + val f : ('a, 'r) f -> 'a t_poly -> combine:('r -> 'r -> 'r) -> 'r + end + + (** Fold an operation over two sets of bounds to a summary value *) + module Fold2 : sig + type ('a, 'b, 'r) f = + { f : 'axis. axis:'axis Axis.t -> ('axis, 'a) u -> ('axis, 'b) u -> 'r } + [@@unboxed] + + (** [combine] should be commutative and associative. *) + val f : + ('a, 'b, 'r) f -> + 'a t_poly -> + 'b t_poly -> + combine:('r -> 'r -> 'r) -> + 'r + end + end + + module type S_poly := sig + include S_gen + + type 'a t = 'a t_poly end - (** Create an axis collection by applying the function on each axis *) - val create : Create_f.t -> t + module type S_mono := sig + include S_gen + + type t = unit t_poly +>>>>>>> ocaml-flambda/flambda-backend:main + end + + module Indexed_gen (T : Misc.T2) : S_poly with type ('a, 'b) u := ('a, 'b) T.t + + module Indexed (T : Misc.T1) : S_mono with type ('a, 'b) u := 'a T.t + + module Identity : S_mono with type ('a, 'b) u := 'a + + include S_poly with type ('a, 'b) u := 'b + + val create : f:(axis:Axis.packed -> 'a) -> 'a t + + val get : axis:'ax Axis.t -> 'a t -> 'a + + val set : axis:'ax Axis.t -> 'a t -> 'a -> 'a t + + val mapi : f:(axis:Axis.packed -> 'a -> 'a) -> 'a t -> 'a t + + val map : f:('a -> 'a) -> 'a t -> 'a t + + val fold : + f:(axis:Axis.packed -> 'a -> 'r) -> combine:('r -> 'r -> 'r) -> 'a t -> 'r +end + +module Axis_set : sig + type t + + val empty : t + + val is_empty : t -> bool + + val add : t -> _ Axis.t -> t + + val remove : t -> _ Axis.t -> t + + val mem : t -> _ Axis.t -> bool + + val union : t -> t -> t + + val intersection : t -> t -> t + + val diff : t -> t -> t + + val is_subset : t -> t -> bool + + val complement : t -> t + + val to_list : t -> Axis.packed list + + (** Create a [t], specify for each axis whether it should be included *) + val create : f:(axis:Axis.packed -> bool) -> t + + val print : Format.formatter -> t -> unit end diff --git a/src/ocaml/typing/jkind_types.ml b/src/ocaml/typing/jkind_types.ml index 61aca2146..ca0f01a93 100644 --- a/src/ocaml/typing/jkind_types.ml +++ b/src/ocaml/typing/jkind_types.ml @@ -527,110 +527,3 @@ module Layout = struct | Product of t list end end - -module Modes = Jkind_axis.Of_lattice (Mode.Alloc.Const) - -module Layout_and_axes = struct - open Jkind_axis - - type ('layout, +'d) t = - { layout : 'layout; - modes_upper_bounds : Mode.Alloc.Const.t; - externality_upper_bound : Externality.t; - nullability_upper_bound : Nullability.t - } - constraint 'd = 'l * 'r - - let map f t = { t with layout = f t.layout } - - let map_option f t = - match f t.layout with None -> None | Some layout -> Some { t with layout } - - let equal eq_layout - { layout = lay1; - modes_upper_bounds = modes1; - externality_upper_bound = ext1; - nullability_upper_bound = null1 - } - { layout = lay2; - modes_upper_bounds = modes2; - externality_upper_bound = ext2; - nullability_upper_bound = null2 - } = - eq_layout lay1 lay2 && Modes.equal modes1 modes2 - && Externality.equal ext1 ext2 - && Nullability.equal null1 null2 - - let equal_after_all_inference_is_done x y z = equal x y z - - (* Once we have more interesting mode stuff, this won't be trivial. *) - let try_allow_l ({ layout = _; _ } as t) = Some t - - (* Once we have more interesting mode stuff, this won't be trivial. *) - let try_allow_r ({ layout = _; _ } as t) = Some t - - let sub sub_layout - { layout = lay1; - modes_upper_bounds = modes1; - externality_upper_bound = ext1; - nullability_upper_bound = null1 - } - { layout = lay2; - modes_upper_bounds = modes2; - externality_upper_bound = ext2; - nullability_upper_bound = null2 - } = - Misc.Le_result.combine_list - [ sub_layout lay1 lay2; - Modes.less_or_equal modes1 modes2; - Externality.less_or_equal ext1 ext2; - Nullability.less_or_equal null1 null2 ] - [@@inline] - - let format format_layout ppf - { layout; - modes_upper_bounds; - externality_upper_bound; - nullability_upper_bound - } = - Format.fprintf ppf - "{ layout = %a;@ modes_upper_bounds = %a;@ externality_upper_bound = \ - %a;@ nullability_upper_bound = %a }" - format_layout layout Mode.Alloc.Const.print modes_upper_bounds - Externality.print externality_upper_bound Nullability.print - nullability_upper_bound -end - -module Jkind_desc = struct - type ('type_expr, 'd) t = (Sort.t Layout.t, 'd) Layout_and_axes.t - - type 'type_expr packed = Pack : ('type_expr, 'd) t -> 'type_expr packed - [@@unboxed] -end - -(* A history of conditions placed on a jkind. - - INVARIANT: at most one sort variable appears in this history. - This is a natural consequence of producing this history by comparing - jkinds. -*) -type 'type_expr history = - | Interact of - { reason : Jkind_intf.History.interact_reason; - jkind1 : 'type_expr Jkind_desc.packed; - history1 : 'type_expr history; - jkind2 : 'type_expr Jkind_desc.packed; - history2 : 'type_expr history - } - | Creation of Jkind_intf.History.creation_reason - -type ('type_expr, 'd) t = - { jkind : ('type_expr, 'd) Jkind_desc.t; - annotation : Parsetree.jkind_annotation option; - history : 'type_expr history; - has_warned : bool - } - -module Const = struct - type ('type_expr, +'d) t = (Layout.Const.t, 'd) Layout_and_axes.t -end diff --git a/src/ocaml/typing/jkind_types.mli b/src/ocaml/typing/jkind_types.mli index 869a37e5b..fdb013375 100644 --- a/src/ocaml/typing/jkind_types.mli +++ b/src/ocaml/typing/jkind_types.mli @@ -16,16 +16,16 @@ types in this file) rather than using this file directly, unless you are in [Types] or [Primitive]. *) -(* This module defines types used in the module Jkind. This is to avoid - a mutual dependencies between jkind.ml(i) and types.ml(i) and bewteen - jkind.ml(i) and primitive.ml(i). Polymorphic versions of types are defined - here, with type parameters that are meant to be filled by types defined in - types.ml(i). jkind.ml(i) redefines the types from this file types.ml - with the type variables instantiated. types.ml also redefines the types - from this file with the type variables instantiated, but only for internal - use. primitive.ml(i) uses the type [Jkind.const], and types.ml(i) depends on - prmitive.ml(i), so [Jkind.const] is defined here and primitive.ml(i) also - uses this module. +(* This module defines types used in the module Jkind. This is to avoid a mutual + dependencies between jkind.ml(i) and types.ml(i) and bewteen jkind.ml(i) and + primitive.ml(i). Polymorphic versions of types are defined here, with type + parameters that are meant to be filled by types defined in + types.ml(i). jkind.ml(i) redefines the types from this file types.ml with the + type variables instantiated. types.ml also redefines the types from this file + with the type variables instantiated, but only for internal + use. primitive.ml(i) uses the type [Jkind.Const.t], and types.ml(i) depends + on primitive.ml(i), so [Jkind.Const.t] is defined here and primitive.ml(i) + also uses this module. Dependency chain without Jkind_types: _____________________ @@ -105,6 +105,7 @@ module Layout : sig | Product of t list end end +<<<<<<< janestreet/merlin-jst:rae/with-kinds-roll module Layout_and_axes : sig open Allowance @@ -182,3 +183,83 @@ type ('type_expr, +'d) t = module Const : sig type ('type_expr, +'d) t = (Layout.Const.t, 'd) Layout_and_axes.t end +||||||| ocaml-flambda/flambda-backend:df4a6e0ba4f74dc790e0ad79f15ea73be1225c4b + +module Layout_and_axes : sig + open Allowance + + (* We need the variance annotation here to allow [any_dummy_jkind] to be + polymorphic in its allowances. Otherwise the value restriction bites. + Sigh. *) + type ('layout, +'d) t = + { layout : 'layout; + modes_upper_bounds : Mode.Alloc.Const.t; + externality_upper_bound : Jkind_axis.Externality.t; + nullability_upper_bound : Jkind_axis.Nullability.t + } + constraint 'd = 'l * 'r + + val map : ('a -> 'b) -> ('a, 'd) t -> ('b, 'd) t + + val map_option : ('a -> 'b option) -> ('a, 'd) t -> ('b, 'd) t option + + val equal : + ('layout -> 'layout -> bool) -> + ('layout, allowed * allowed) t -> + ('layout, allowed * allowed) t -> + bool + + (* An equality check should work over [lr]s only. But we need this + to do memoization in serialization. Happily, that's after all + inference is done, when worrying about l and r does not matter + any more. *) + val equal_after_all_inference_is_done : + ('layout -> 'layout -> bool) -> ('layout, 'd1) t -> ('layout, 'd2) t -> bool + + val try_allow_l : ('layout, 'l * 'r) t -> ('layout, allowed * 'r) t option + + val try_allow_r : ('layout, 'l * 'r) t -> ('layout, 'l * allowed) t option + + val sub : + ('layout -> 'layout -> Misc.Le_result.t) -> + ('layout, allowed * 'r) t -> + ('layout, 'l * allowed) t -> + Misc.Le_result.t + + val format : + (Format.formatter -> 'layout -> unit) -> + Format.formatter -> + ('layout, 'd) t -> + unit +end + +module Jkind_desc : sig + type ('type_expr, +'d) t = (Sort.t Layout.t, 'd) Layout_and_axes.t + + type 'type_expr packed = Pack : ('type_expr, 'd) t -> 'type_expr packed + [@@unboxed] +end + +type 'type_expr history = + | Interact of + { reason : Jkind_intf.History.interact_reason; + jkind1 : 'type_expr Jkind_desc.packed; + history1 : 'type_expr history; + jkind2 : 'type_expr Jkind_desc.packed; + history2 : 'type_expr history + } + | Creation of Jkind_intf.History.creation_reason + +type ('type_expr, +'d) t = + { jkind : ('type_expr, 'd) Jkind_desc.t; + annotation : Parsetree.jkind_annotation option; + history : 'type_expr history; + has_warned : bool + } + +(** CR layouts v2.8: remove this when printing is improved *) +module Const : sig + type ('type_expr, +'d) t = (Layout.Const.t, 'd) Layout_and_axes.t +end +======= +>>>>>>> ocaml-flambda/flambda-backend:main diff --git a/src/ocaml/typing/mode.ml b/src/ocaml/typing/mode.ml index 7c32c836a..4ea0c934f 100644 --- a/src/ocaml/typing/mode.ml +++ b/src/ocaml/typing/mode.ml @@ -374,13 +374,13 @@ module Lattices = struct let meet (a0, a1) (b0, b1) = Uniqueness.meet a0 b0, Contention.meet a1 b1 + let print ppf (a0, a1) = + Format.fprintf ppf "%a,%a" Uniqueness.print a0 Contention.print a1 + let imply (a0, a1) (b0, b1) = Uniqueness.imply a0 b0, Contention.imply a1 b1 let subtract (a0, a1) (b0, b1) = Uniqueness.subtract a0 b0, Contention.subtract a1 b1 - - let print ppf (a0, a1) = - Format.fprintf ppf "%a,%a" Uniqueness.print a0 Contention.print a1 end type 'areality comonadic_with = @@ -612,7 +612,7 @@ module Lattices_mono = struct let print : type p r. _ -> (p, r) t -> unit = fun ppf -> function - | Areality -> Format.fprintf ppf "areality" + | Areality -> Format.fprintf ppf "locality" | Linearity -> Format.fprintf ppf "linearity" | Portability -> Format.fprintf ppf "portability" | Uniqueness -> Format.fprintf ppf "uniqueness" @@ -1636,6 +1636,14 @@ module Comonadic_with (Areality : Areality) = struct let print_axis ax ppf a = let obj = proj_obj ax in C.print obj ppf a + + let lattice_of_axis (type a) (axis : (t, a) Axis.t) : + (module Lattice with type t = a) = + match axis with + | Areality -> (module Areality.Const) + | Linearity -> (module Linearity.Const) + | Portability -> (module Portability.Const) + | Yielding -> (module Yielding.Const) end let proj ax m = Solver.via_monotone (proj_obj ax) (Proj (Obj.obj, ax)) m @@ -1734,6 +1742,12 @@ module Monadic = struct let le_axis ax a b = let obj = proj_obj ax in C.le obj b a + + let lattice_of_axis (type a) (axis : (t, a) Axis.t) : + (module Lattice with type t = a) = + match axis with + | Uniqueness -> (module Uniqueness.Const) + | Contention -> (module Contention.Const) end let proj ax m = Solver.via_monotone (proj_obj ax) (Proj (Obj.obj, ax)) m @@ -1810,6 +1824,26 @@ module Value_with (Areality : Areality) = struct (Comonadic.Const.t, 'a) Axis.t -> (('a, 'd) mode_comonadic, 'a, 'd) axis + type 'd axis_packed = P : ('m, 'a, 'd) axis -> 'd axis_packed + + let print_axis (type m a d) ppf (axis : (m, a, d) axis) = + match axis with + | Monadic ax -> Axis.print ppf ax + | Comonadic ax -> Axis.print ppf ax + + let lattice_of_axis (type m a d) (axis : (m, a, d) axis) : + (module Lattice with type t = a) = + match axis with + | Comonadic ax -> Comonadic.Const.lattice_of_axis ax + | Monadic ax -> Monadic.Const.lattice_of_axis ax + + let all_axes = + [ P (Comonadic Areality); + P (Monadic Uniqueness); + P (Comonadic Linearity); + P (Monadic Contention); + P (Comonadic Portability) ] + let proj_obj : type m a d. (m, a, d) axis -> a C.obj = function | Monadic ax -> Monadic.proj_obj ax | Comonadic ax -> Comonadic.proj_obj ax @@ -1848,6 +1882,9 @@ module Value_with (Areality : Areality) = struct { comonadic; monadic } module Const = struct + module Monadic = Monadic.Const + module Comonadic = Comonadic.Const + type t = ( Areality.Const.t, Linearity.Const.t, @@ -1857,9 +1894,6 @@ module Value_with (Areality : Areality) = struct Yielding.Const.t ) modes - module Monadic = Monadic.Const - module Comonadic = Comonadic.Const - let min = merge { comonadic = Comonadic.min; monadic = Monadic.min } let max = merge { comonadic = Comonadic.max; monadic = Monadic.max } @@ -1997,6 +2031,12 @@ module Value_with (Areality : Areality) = struct | Comonadic ax -> Comonadic.max_axis ax | Monadic ax -> Monadic.max_axis ax + let is_max : type m a d. (m, a, d) axis -> a -> bool = + fun ax m -> le_axis ax (max_axis ax) m + + let is_min : type m a d. (m, a, d) axis -> a -> bool = + fun ax m -> le_axis ax m (min_axis ax) + let split = split let merge = merge @@ -2255,6 +2295,17 @@ module Const = struct let areality = C.locality_as_regionality areality in { areality; linearity; portability; uniqueness; contention; yielding } + module Axis = struct + let alloc_as_value : type d. d Alloc.axis_packed -> d Value.axis_packed = + function + | P (Comonadic Areality) -> P (Comonadic Areality) + | P (Comonadic Linearity) -> P (Comonadic Linearity) + | P (Comonadic Portability) -> P (Comonadic Portability) + | P (Comonadic Yielding) -> P (Comonadic Yielding) + | P (Monadic Uniqueness) -> P (Monadic Uniqueness) + | P (Monadic Contention) -> P (Monadic Contention) + end + let locality_as_regionality = C.locality_as_regionality end @@ -2300,8 +2351,13 @@ module Modality = struct let is_id (Atom (ax, a)) = match a with - | Join_with c -> Value.Const.le_axis ax c (Value.Const.min_axis ax) - | Meet_with c -> Value.Const.le_axis ax (Value.Const.max_axis ax) c + | Join_with c -> Value.Const.is_min ax c + | Meet_with c -> Value.Const.is_max ax c + + let is_constant (Atom (ax, a)) = + match a with + | Join_with c -> Value.Const.is_max ax c + | Meet_with c -> Value.Const.is_min ax c let print ppf = function | Atom (ax, Join_with c) -> @@ -2360,6 +2416,9 @@ module Modality = struct (let ax : _ Axis.t = Contention in Atom (Monadic ax, Join_with (Axis.proj ax c))) ] + let proj ax = function + | Join_const c -> Atom (Monadic ax, Join_with (Axis.proj ax c)) + let print ppf = function | Join_const c -> Format.fprintf ppf "join_const(%a)" Mode.Const.print c end @@ -2504,6 +2563,9 @@ module Modality = struct (let ax : _ Axis.t = Portability in Atom (Comonadic ax, Meet_with (Axis.proj ax c))) ] + let proj ax = function + | Meet_const c -> Atom (Comonadic ax, Meet_with (Axis.proj ax c)) + let print ppf = function | Meet_const c -> Format.fprintf ppf "meet_const(%a)" Mode.Const.print c end @@ -2642,10 +2704,21 @@ module Modality = struct let comonadic = Comonadic.concat ~then_:then_.comonadic t.comonadic in { monadic; comonadic } + let of_list = List.fold_left (fun m atom -> compose m ~then_:atom) id + let singleton a = compose ~then_:a id let to_list { monadic; comonadic } = Comonadic.to_list comonadic @ Monadic.to_list monadic + + let proj (type m a d) (ax : (m, a, d) Value.axis) { monadic; comonadic } = + match ax with + | Monadic ax -> Monadic.proj ax monadic + | Comonadic ax -> Comonadic.proj ax comonadic + + let print ppf { monadic; comonadic } = + Format.fprintf ppf "%a;%a" Monadic.print monadic Comonadic.print + comonadic end type t = (Monadic.t, Comonadic.t) monadic_comonadic diff --git a/src/ocaml/typing/mode_intf.mli b/src/ocaml/typing/mode_intf.mli index c7544f2dd..d1b54bb64 100644 --- a/src/ocaml/typing/mode_intf.mli +++ b/src/ocaml/typing/mode_intf.mli @@ -298,13 +298,21 @@ module type S = sig | Contention : (monadic, Contention.Const.t) t val print : Format.formatter -> ('p, 'r) t -> unit + + val eq : ('p, 'r0) t -> ('p, 'r1) t -> ('r0, 'r1) Misc.eq option end module type Mode := sig module Areality : Common module Monadic : sig - module Const : Lattice with type t = monadic + module Const : sig + include Lattice with type t = monadic + + val max_axis : (t, 'a) Axis.t -> 'a + + val min_axis : (t, 'a) Axis.t -> 'a + end include Common with module Const := Const @@ -318,6 +326,10 @@ module type S = sig val eq : t -> t -> bool val print_axis : (t, 'a) Axis.t -> Format.formatter -> 'a -> unit + + val max_axis : (t, 'a) Axis.t -> 'a + + val min_axis : (t, 'a) Axis.t -> 'a end type error = Error : (Const.t, 'a) Axis.t * 'a Solver.error -> error @@ -337,6 +349,14 @@ module type S = sig (Comonadic.Const.t, 'a) Axis.t -> (('a, 'd) mode_comonadic, 'a, 'd) axis + type 'd axis_packed = P : ('m, 'a, 'd) axis -> 'd axis_packed + + val print_axis : Format.formatter -> ('m, 'a, 'd) axis -> unit + + val lattice_of_axis : ('m, 'a, 'd) axis -> (module Lattice with type t = 'a) + + val all_axes : ('l * 'r) axis_packed list + type ('a, 'b, 'c, 'd, 'e, 'f) modes = { areality : 'a; linearity : 'b; @@ -377,6 +397,10 @@ module type S = sig val print : Format.formatter -> t -> unit end + val is_max : ('m, 'a, 'd) axis -> 'a -> bool + + val is_min : ('m, 'a, 'd) axis -> 'a -> bool + val split : t -> (Monadic.Const.t, Comonadic.Const.t) monadic_comonadic val merge : (Monadic.Const.t, Comonadic.Const.t) monadic_comonadic -> t @@ -455,6 +479,10 @@ module type S = sig module Const : sig val alloc_as_value : Alloc.Const.t -> Value.Const.t + module Axis : sig + val alloc_as_value : 'd Alloc.axis_packed -> 'd Value.axis_packed + end + val locality_as_regionality : Locality.Const.t -> Regionality.Const.t end @@ -494,6 +522,9 @@ module type S = sig (** Test if the given modality is the identity modality. *) val is_id : t -> bool + (** Test if the given modality is a constant modality. *) + val is_constant : t -> bool + (** Printing for debugging *) val print : Format.formatter -> t -> unit @@ -505,6 +536,19 @@ module type S = sig type nonrec equate_error = equate_step * error + (* In the following we have both [Const.t] and [t]. The former is parameterized by + constant modes and thus its behavior fully determined. It is what users read and + write on constructor arguments, record fields and value descriptions in signatures. + + The latter is parameterized by variable modes and thus its behavior changes as the + variable modes change. It is used in module type inference: structures are inferred + to have a signature containing a list of value descriptions, each of which carries a + modality. This modality depends on the mode of the value, which is a variable. + Therefore, we parameterize the modality over the variable mode. + + Utilities are provided to convert between [Const.t] and [t], such as [of_const], + [zap_to_id], [zap_to_floor], etc.. *) + module Const : sig (** A modality that acts on [Value] modes. Conceptually it is a sequnce of [atom] that acts on individual axes. *) @@ -529,12 +573,23 @@ module type S = sig val singleton : atom -> t (** Returns the list of [atom] in the given modality. The list is - commutative. *) + commutative. Post-condition: each axis is represented in the + output list exactly once. *) val to_list : t -> atom list + (** Builds up a modality from a list of [atom], by composing each atom with + identity. The modalities are applied left to right. *) + val of_list : atom list -> t + + (** Project out the [atom] for the given axis in the given modality. *) + val proj : ('m, 'a, 'd) Value.axis -> t -> atom + (** [equate t0 t1] checks that [t0 = t1]. Definition: [t0 = t1] iff [t0 <= t1] and [t1 <= t0]. *) val equate : t -> t -> (unit, equate_error) Result.t + + (** Printing for debugging. *) + val print : Format.formatter -> t -> unit end (** A modality that acts on [Value] modes. Conceptually it is a sequnce of diff --git a/src/ocaml/typing/oprint.ml b/src/ocaml/typing/oprint.ml index c66e59097..41f8a2a21 100644 --- a/src/ocaml/typing/oprint.ml +++ b/src/ocaml/typing/oprint.ml @@ -342,6 +342,7 @@ let pr_var = Pprintast.tyvar let ty_var ~non_gen ppf s = pr_var ppf (if non_gen then "_" ^ s else s) +<<<<<<< janestreet/merlin-jst:rae/with-kinds-roll let print_out_jkind_const ppf ojkind = let rec pp_element ~nested ppf (ojkind : Outcometree.out_jkind_const) = match ojkind with @@ -386,6 +387,53 @@ let pr_var_jkind ppf (v, l) = match l with let pr_var_jkinds = print_list pr_var_jkind (fun ppf -> fprintf ppf "@ ") +||||||| ocaml-flambda/flambda-backend:df4a6e0ba4f74dc790e0ad79f15ea73be1225c4b +let print_out_jkind_const ppf ojkind = + let rec pp_element ~nested ppf (ojkind : Outcometree.out_jkind_const) = + match ojkind with + | Ojkind_const_default -> fprintf ppf "_" + | Ojkind_const_abbreviation abbrev -> fprintf ppf "%s" abbrev + | Ojkind_const_mod (base, modes) -> + Misc.pp_parens_if nested (fun ppf (base, modes) -> + fprintf ppf "%a mod @[%a@]" (pp_element ~nested:true) base + (pp_print_list + ~pp_sep:(fun ppf () -> fprintf ppf "@ ") + (fun ppf -> fprintf ppf "%s")) + modes + ) ppf (base, modes) + | Ojkind_const_product ts -> + let pp_sep ppf () = Format.fprintf ppf "@ & " in + Misc.pp_nested_list ~nested ~pp_element ~pp_sep ppf ts + | Ojkind_const_with _ | Ojkind_const_kind_of _ -> + failwith "XXX unimplemented jkind syntax" + in + pp_element ~nested:false ppf ojkind + +let print_out_jkind ppf ojkind = + let rec pp_element ~nested ppf ojkind = + match ojkind with + | Ojkind_var v -> fprintf ppf "%s" v + | Ojkind_const jkind -> print_out_jkind_const ppf jkind + | Ojkind_product ts -> + let pp_sep ppf () = Format.fprintf ppf "@ & " in + Misc.pp_nested_list ~nested ~pp_element ~pp_sep ppf ts + in + pp_element ~nested:false ppf ojkind + +let print_out_jkind_annot ppf = function + | None -> () + | Some lay -> fprintf ppf "@ : %a" print_out_jkind lay + +let pr_var_jkind ppf (v, l) = match l with + | None -> pr_var ppf v + | Some lay -> fprintf ppf "(%a : %a)" + pr_var v + print_out_jkind lay + +let pr_var_jkinds = + print_list pr_var_jkind (fun ppf -> fprintf ppf "@ ") +======= +>>>>>>> ocaml-flambda/flambda-backend:main (* NON-LEGACY MODES Here, we are printing mode annotations even if the mode extension is @@ -659,6 +707,85 @@ and print_out_label ppf (name, mut, arg, gbl) = print_out_type arg print_out_modalities_new m_new +and print_out_jkind_const ppf ojkind = + let rec pp_element ~nested ppf (ojkind : Outcometree.out_jkind_const) = + (* HACK: we strip off the [Ojkind_const_with]s and convert them to a [string string + list] so we can sort them lexicographically, because otherwise the order of printed + [with]s is nondeterministic. This is sad, but we'd need deterministic sorting of + types to work around it. + + CR aspsmith: remove this if we ever add deterministic, semantic type comparison + *) + let rec strip_withs ojkind = + match ojkind with + | Ojkind_const_with (base, ty, modalities) -> + let base, withs = strip_withs base in + let with_ = + Format.asprintf "%a" print_out_type ty + :: (match modalities with + | [] -> [] + | modalities -> "@@" :: modalities) + in + base, with_ :: withs + | base -> base, [] + in + let base, withs = strip_withs ojkind in + (match base with + | Ojkind_const_default -> fprintf ppf "_" + | Ojkind_const_abbreviation abbrev -> fprintf ppf "%s" abbrev + | Ojkind_const_mod (base, modes) -> + Misc.pp_parens_if nested (fun ppf (base, modes) -> + fprintf ppf "%a mod @[%a@]" (pp_element ~nested:true) base + (pp_print_list + ~pp_sep:(fun ppf () -> fprintf ppf "@ ") + (fun ppf -> fprintf ppf "%s")) + modes + ) ppf (base, modes) + | Ojkind_const_product ts -> + let pp_sep ppf () = Format.fprintf ppf "@ & " in + Misc.pp_nested_list ~nested ~pp_element ~pp_sep ppf ts + | Ojkind_const_with _ -> failwith "XXX unreachable (stripped off earlier)" + | Ojkind_const_kind_of _ -> + failwith "XXX unimplemented jkind syntax"); + let withs = List.sort (List.compare String.compare) withs in + match withs with + | [] -> () + | withs -> + pp_print_list + (fun ppf -> + Format.fprintf ppf "@ @[with %a@]" + (pp_print_list + ~pp_sep:(fun ppf () -> fprintf ppf " ") + (fun ppf -> Format.fprintf ppf "%s"))) + ppf + withs + in + pp_element ~nested:false ppf ojkind + +and print_out_jkind ppf ojkind = + let rec pp_element ~nested ppf ojkind = + match ojkind with + | Ojkind_var v -> fprintf ppf "%s" v + | Ojkind_const jkind -> print_out_jkind_const ppf jkind + | Ojkind_product ts -> + let pp_sep ppf () = Format.fprintf ppf "@ & " in + Misc.pp_nested_list ~nested ~pp_element ~pp_sep ppf ts + in + pp_element ~nested:false ppf ojkind + +and print_out_jkind_annot ppf = function + | None -> () + | Some lay -> fprintf ppf "@ : %a" print_out_jkind lay + +and pr_var_jkind ppf (v, l) = match l with + | None -> pr_var ppf v + | Some lay -> fprintf ppf "(%a : %a)" + pr_var v + print_out_jkind lay + +and pr_var_jkinds jks = + print_list pr_var_jkind (fun ppf -> fprintf ppf "@ ") jks + let out_label = ref print_out_label let out_modality = ref print_out_modality @@ -1008,13 +1135,17 @@ and print_out_type_decl kwd ppf td = print_private td.otype_private !out_type ty in - fprintf ppf "@[<2>@[%t%a%a@]%t%t%t@]" + let print_out_attrs ppf = + List.iter (fun a -> fprintf ppf "@ [@@@@%s]" a.oattr_name) + in + fprintf ppf "@[<2>@[%t%a%a@]%t%t%t@]%a" print_name_params print_out_jkind_annot td.otype_jkind print_out_tkind ty print_constraints print_unboxed print_or_null_reexport + print_out_attrs td.otype_attributes and print_simple_out_gf_type ppf (ty, gf) = let m_legacy, m_new = partition_modalities gf in diff --git a/src/ocaml/typing/outcometree.mli b/src/ocaml/typing/outcometree.mli index f54fa48a6..a07b5004d 100644 --- a/src/ocaml/typing/outcometree.mli +++ b/src/ocaml/typing/outcometree.mli @@ -106,7 +106,7 @@ type out_jkind_const = | Ojkind_const_default | Ojkind_const_abbreviation of string | Ojkind_const_mod of out_jkind_const * string list - | Ojkind_const_with of out_jkind_const * out_type + | Ojkind_const_with of out_jkind_const * out_type * out_modality_new list | Ojkind_const_kind_of of out_type | Ojkind_const_product of out_jkind_const list @@ -207,7 +207,8 @@ and out_type_decl = otype_unboxed: bool; otype_or_null_reexport: bool; - otype_cstrs: (out_type * out_type) list } + otype_cstrs: (out_type * out_type) list; + otype_attributes: out_attribute list } and out_extension_constructor = { oext_name: string; oext_type_name: string; diff --git a/src/ocaml/typing/parmatch.ml b/src/ocaml/typing/parmatch.ml index a7cf6a649..8c4137a92 100644 --- a/src/ocaml/typing/parmatch.ml +++ b/src/ocaml/typing/parmatch.ml @@ -959,18 +959,18 @@ let pats_of_type env ty = | Typedecl (_, path, {type_kind = Type_variant _ | Type_record _ | Type_record_unboxed_product _ }) -> begin match Env.find_type_descrs path env with - | Type_variant (cstrs,_) when List.length cstrs <= 1 || + | Type_variant (cstrs,_,_) when List.length cstrs <= 1 || (* Only explode when all constructors are GADTs *) List.for_all (fun cd -> cd.cstr_generalized) cstrs -> List.map (pat_of_constr (make_pat Tpat_any ty env)) cstrs - | Type_record (labels, _) -> + | Type_record (labels, _,_) -> let fields = List.map (fun ld -> mknoloc (Longident.Lident ld.lbl_name), ld, omega) labels in [make_pat (Tpat_record (fields, Closed)) ty env] - | Type_record_unboxed_product (labels, _) -> + | Type_record_unboxed_product (labels, _,_) -> let fields = List.map (fun ld -> mknoloc (Longident.Lident ld.lbl_name), ld, omega) @@ -993,7 +993,7 @@ let get_variant_constructors env ty = match Ctype.extract_concrete_typedecl env ty with | Typedecl (_, path, {type_kind = Type_variant _}) -> begin match Env.find_type_descrs path env with - | Type_variant (cstrs,_) -> cstrs + | Type_variant (cstrs,_,_) -> cstrs | _ -> fatal_error "Parmatch.get_variant_constructors" end | _ -> fatal_error "Parmatch.get_variant_constructors" diff --git a/src/ocaml/typing/predef.ml b/src/ocaml/typing/predef.ml index 22806cbaa..4d45db7af 100644 --- a/src/ocaml/typing/predef.ml +++ b/src/ocaml/typing/predef.ml @@ -223,7 +223,13 @@ let option_argument_sort = Jkind.Sort.Const.value let option_argument_jkind = Jkind.Builtin.value ~why:( Type_argument {parent_path = path_option; position = 1; arity = 1}) -let list_jkind = Jkind.Builtin.value ~why:Boxed_variant +let list_jkind param = + Jkind.Builtin.immutable_data ~why:Boxed_variant |> + Jkind.add_with_bounds + ~modality:Mode.Modality.Value.Const.id + ~type_expr:param |> + Jkind.mark_best + let list_sort = Jkind.Sort.Const.value let list_argument_sort = Jkind.Sort.Const.value let list_argument_jkind = Jkind.Builtin.value ~why:( @@ -231,38 +237,40 @@ let list_argument_jkind = Jkind.Builtin.value ~why:( let or_null_argument_sort = Jkind.Sort.Const.value -let mk_add_type add_type +let mk_add_type add_type = + let add_type_with_jkind ?manifest type_ident ?(kind=Type_abstract Definition) - ?jkind + ~jkind env = - let type_jkind = match jkind with - | None -> Jkind.Builtin.value ~why:(Primitive type_ident) - | Some k -> Jkind.of_builtin ~why:(Primitive type_ident) k + let decl = + {type_params = []; + type_arity = 0; + type_kind = kind; + type_jkind = Jkind.mark_best jkind; + type_loc = Location.none; + type_private = Asttypes.Public; + type_manifest = manifest; + type_variance = []; + type_separability = []; + type_is_newtype = false; + type_expansion_scope = lowest_level; + type_attributes = []; + type_unboxed_default = false; + type_uid = Uid.of_predef_id type_ident; + } + in + add_type type_ident decl env in - let decl = - {type_params = []; - type_arity = 0; - type_kind = kind; - type_jkind; - type_loc = Location.none; - type_private = Asttypes.Public; - type_manifest = manifest; - type_variance = []; - type_separability = []; - type_is_newtype = false; - type_expansion_scope = lowest_level; - type_attributes = []; - type_unboxed_default = false; - type_uid = Uid.of_predef_id type_ident; - type_has_illegal_crossings = false; - } + let add_type ?manifest type_ident ?kind ~jkind env = + let jkind = Jkind.of_builtin ~why:(Primitive type_ident) jkind in + add_type_with_jkind ?manifest type_ident ?kind ~jkind env in - add_type type_ident decl env + add_type_with_jkind, add_type let mk_add_type1 add_type type_ident ?(kind=fun _ -> Type_abstract Definition) - ?(jkind=Jkind.Builtin.value ~why:(Primitive type_ident)) + ~jkind ?(param_jkind=Jkind.Builtin.value ~why:( Type_argument { parent_path = Path.Pident type_ident; @@ -275,7 +283,7 @@ let mk_add_type1 add_type type_ident {type_params = [param]; type_arity = 1; type_kind = kind param; - type_jkind = jkind; + type_jkind = Jkind.mark_best (jkind param); type_loc = Location.none; type_private = Asttypes.Public; type_manifest = None; @@ -286,7 +294,6 @@ let mk_add_type1 add_type type_ident type_attributes = []; type_unboxed_default = false; type_uid = Uid.of_predef_id type_ident; - type_has_illegal_crossings = false; } in add_type type_ident decl env @@ -336,8 +343,10 @@ let variant constrs = in Constructor_uniform_value, sorts in - Type_variant (constrs, - Variant_boxed (Misc.Stdlib.Array.of_list_map mk_elt constrs)) + Type_variant ( + constrs, + Variant_boxed (Misc.Stdlib.Array.of_list_map mk_elt constrs), + None) let unrestricted tvar ca_sort = {ca_type=tvar; @@ -348,7 +357,7 @@ let unrestricted tvar ca_sort = (* CR layouts: Changes will be needed here as we add support for the built-ins to work with non-values, and as we relax the mixed block restriction. *) let build_initial_env add_type add_extension empty_env = - let add_type = mk_add_type add_type + let add_type_with_jkind, add_type = mk_add_type add_type and add_type1 = mk_add_type1 add_type and add_extension = mk_add_extension add_extension in empty_env @@ -358,17 +367,27 @@ let build_initial_env add_type add_extension empty_env = ~separability:Separability.Ind ~param_jkind:(Jkind.add_nullability_crossing (Jkind.Builtin.any ~why:Array_type_argument)) + ~jkind:(fun param -> + Jkind.Builtin.mutable_data ~why:(Primitive ident_array) |> + Jkind.add_with_bounds + ~modality:Mode.Modality.Value.Const.id + ~type_expr:param) |> add_type1 ident_iarray ~variance:Variance.covariant ~separability:Separability.Ind ~param_jkind:(Jkind.add_nullability_crossing (Jkind.Builtin.any ~why:Array_type_argument)) + ~jkind:(fun param -> + Jkind.Builtin.immutable_data ~why:(Primitive ident_iarray) |> + Jkind.add_with_bounds + ~modality:Mode.Modality.Value.Const.id + ~type_expr:param) |> add_type ident_bool ~kind:(variant [ cstr ident_false []; cstr ident_true []]) ~jkind:Jkind.Const.Builtin.immediate |> add_type ident_char ~jkind:Jkind.Const.Builtin.immediate |> add_type ident_exn ~kind:Type_open ~jkind:Jkind.Const.Builtin.value - |> add_type ident_extension_constructor + |> add_type ident_extension_constructor ~jkind:Jkind.Const.Builtin.value |> add_type ident_float ~jkind:Jkind.Const.Builtin.immutable_data |> add_type ident_floatarray ~jkind:Jkind.Const.Builtin.mutable_data |> add_type ident_int ~jkind:Jkind.Const.Builtin.immediate @@ -377,6 +396,12 @@ let build_initial_env add_type add_extension empty_env = |> add_type1 ident_lazy_t ~variance:Variance.covariant ~separability:Separability.Ind + (* CR layouts v2.8: Can [lazy_t] mode-cross at all? According to Zesen: + It can at least cross locality, because it's always heap-allocated. + It might also cross portability, linearity, uniqueness subject to its + parameter. But I'm also fine not doing that for now (and wait until + users complains). *) + ~jkind:(fun _ -> Jkind.Builtin.value ~why:(Primitive ident_lazy_t)) |> add_type1 ident_list ~variance:Variance.covariant ~separability:Separability.Ind @@ -393,8 +418,12 @@ let build_initial_env add_type add_extension empty_env = ~kind:(fun tvar -> variant [cstr ident_none []; cstr ident_some [unrestricted tvar option_argument_sort]]) - ~jkind:(Jkind.Builtin.value ~why:Boxed_variant) - |> add_type ident_lexing_position + ~jkind:(fun param -> + Jkind.Builtin.immutable_data ~why:Boxed_variant |> + Jkind.add_with_bounds + ~modality:Mode.Modality.Value.Const.id + ~type_expr:param) + |> add_type_with_jkind ident_lexing_position ~kind:( let lbl (field, field_type) = let id = Ident.create_predef field in @@ -417,10 +446,19 @@ let build_initial_env add_type add_extension empty_env = in Type_record ( labels, - (Record_boxed (List.map (fun label -> label.ld_sort) labels |> Array.of_list)) + (Record_boxed (List.map (fun label -> label.ld_sort) labels |> Array.of_list)), + None ) ) - ~jkind:Jkind.Const.Builtin.immutable_data + (* CR layouts v2.8: Possibly remove this -- and simplify [mk_add_type] -- + when we have a better jkind subsumption check. *) + ~jkind:Jkind.( + of_builtin Const.Builtin.immutable_data + ~why:(Primitive ident_lexing_position) |> + add_with_bounds ~modality:Mode.Modality.Value.Const.id ~type_expr:type_int |> + add_with_bounds ~modality:Mode.Modality.Value.Const.id ~type_expr:type_int |> + add_with_bounds ~modality:Mode.Modality.Value.Const.id ~type_expr:type_int |> + add_with_bounds ~modality:Mode.Modality.Value.Const.id ~type_expr:type_string) |> add_type ident_string ~jkind:Jkind.Const.Builtin.immutable_data |> add_type ident_unboxed_float ~jkind:Jkind.Const.Builtin.float64 |> add_type ident_unboxed_nativeint ~jkind:Jkind.Const.Builtin.word @@ -454,7 +492,7 @@ let build_initial_env add_type add_extension empty_env = Jkind.Sort.Const.value] let add_simd_stable_extension_types add_type env = - let add_type = mk_add_type add_type in + let _, add_type = mk_add_type add_type in env |> add_type ident_int8x16 ~jkind:Jkind.Const.Builtin.immutable_data |> add_type ident_int16x8 ~jkind:Jkind.Const.Builtin.immutable_data @@ -470,22 +508,26 @@ let add_simd_stable_extension_types add_type env = |> add_type ident_unboxed_float64x2 ~jkind:Jkind.Const.Builtin.vec128 let add_small_number_extension_types add_type env = - let add_type = mk_add_type add_type in + let _, add_type = mk_add_type add_type in env |> add_type ident_float32 ~jkind:Jkind.Const.Builtin.immutable_data |> add_type ident_unboxed_float32 ~jkind:Jkind.Const.Builtin.float32 let add_small_number_beta_extension_types add_type env = - let add_type = mk_add_type add_type in + let _, add_type = mk_add_type add_type in env |> add_type ident_int8 ~jkind:Jkind.Const.Builtin.immediate |> add_type ident_int16 ~jkind:Jkind.Const.Builtin.immediate let or_null_kind tvar = - (* CR layouts v3: use [Variant_with_null] when it's supported - in the backend. *) - variant [cstr ident_null []; - cstr ident_this [unrestricted tvar or_null_argument_sort]] + let cstrs = + [ cstr ident_null []; + cstr ident_this [unrestricted tvar or_null_argument_sort]] + in + Type_variant (cstrs, Variant_with_null, None) + +let or_null_jkind = + Jkind.Builtin.value_or_null ~why:(Primitive ident_or_null) let add_or_null add_type env = let add_type1 = mk_add_type1 add_type in @@ -500,8 +542,9 @@ let add_or_null add_type env = For now, we mark the type argument as [Separability.Ind] to permit the most argument types, and forbid arrays from accepting [or_null]s. In the future, we will track separability in the jkind system. *) + (* CR layouts v2.8: Add baggage and more mode crossing here. *) ~kind:or_null_kind - ~jkind:(Jkind.Builtin.value_or_null ~why:(Primitive ident_or_null)) + ~jkind:(fun _ -> or_null_jkind) let builtin_values = List.map (fun id -> (Ident.name id, id)) all_predef_exns diff --git a/src/ocaml/typing/predef.mli b/src/ocaml/typing/predef.mli index e2800caad..0ec600a83 100644 --- a/src/ocaml/typing/predef.mli +++ b/src/ocaml/typing/predef.mli @@ -120,9 +120,9 @@ val ident_some : Ident.t val ident_or_null : Ident.t (* The jkind used for optional function argument types *) -val option_argument_jkind : 'd jkind +val option_argument_jkind : jkind_lr (* The jkind used for list argument types *) -val list_argument_jkind : 'd jkind +val list_argument_jkind : jkind_lr (* To build the initial environment. Since there is a nasty mutual recursion between predef and env, we break it by parameterizing @@ -158,6 +158,11 @@ val add_or_null : (* CR layouts v3.5: remove this when users can define null constructors. *) val or_null_kind : type_expr -> ('a, 'b, constructor_declaration) type_kind +(* Construct the [jkind] of [or_null]. For re-exporting [or_null] + while users can't define their own types with null constructors. *) +(* CR layouts v3.5: remove this when users can define null constructors. *) +val or_null_jkind : Types.jkind_l + (* To initialize linker tables *) val builtin_values: (string * Ident.t) list diff --git a/src/ocaml/typing/printtyp.ml b/src/ocaml/typing/printtyp.ml index 1ec087638..b1699a94c 100644 --- a/src/ocaml/typing/printtyp.ml +++ b/src/ocaml/typing/printtyp.ml @@ -50,9 +50,8 @@ module Style = Misc.Style In this case, there is no way to know the jkind without the annotation. - (* CR layouts v2.8: remove this case *) - (C1.2) The type has illegal mode crossings. In this case, the jkind is overridden by - the user rather than being inferred from the definition. + (C1.2) The type has unsafe mode crossings. In this case, the jkind is overridden by the + user rather than being inferred from the definition. Case (C2). The jkind on a type parameter to a type, like [type ('a : <>) t = ...]. @@ -1299,7 +1298,11 @@ let rec out_jkind_of_desc (desc : 'd Jkind.Desc.t) = let out_jkind_option_of_jkind jkind = let desc = Jkind.get jkind in let elide = - Jkind.is_value_for_printing jkind (* C2.1 *) + (* CR layouts: We ignore nullability here to avoid needlessly printing + ['a : value_or_null] when it's not relevant (most cases). + Unfortunately, this makes error messages really confusing, because + we don't consider jkind annotations. *) + Jkind.is_value_for_printing ~ignore_null:true jkind (* C2.1 *) || (match desc.layout with | Sort (Var _) -> true (* not !Clflags.verbose_types *) (* X1 *) | _ -> false) @@ -1624,8 +1627,6 @@ let type_expr ppf ty = prepare_for_printing [ty]; prepared_type_expr ppf ty -let () = Env.print_type_expr := type_expr - (* "Half-prepared" type expression: [ty] should have had its names reserved, but should not have had its loops marked. *) let type_expr_with_reserved_names ppf ty = @@ -1650,6 +1651,11 @@ let tree_of_type_scheme ty = prepare_for_printing [ty]; tree_of_typexp Type_scheme ty +let () = + Env.print_type_expr := type_expr; + Jkind.set_outcometree_of_type_scheme tree_of_type_scheme; + Jkind.set_outcometree_of_modalities_new tree_of_modalities_new + (* Print one type declaration *) let tree_of_constraints params = @@ -1795,15 +1801,15 @@ let prepare_decl id decl = in begin match decl.type_kind with | Type_abstract _ -> () - | Type_variant (cstrs, _rep) -> + | Type_variant (cstrs, _rep,_umc) -> List.iter (fun c -> prepare_type_constructor_arguments c.cd_args; Option.iter prepare_type c.cd_res) cstrs - | Type_record(l, _rep) -> + | Type_record(l, _rep,_umc) -> List.iter (fun l -> prepare_type l.ld_type) l - | Type_record_unboxed_product(l, _rep) -> + | Type_record_unboxed_product(l, _rep,_umc) -> List.iter (fun l -> prepare_type l.ld_type) l | Type_open -> () end; @@ -1826,7 +1832,7 @@ let tree_of_type_decl ?(print_non_value_inferred_jkind = false) id decl = decl.type_private = Private | Type_record_unboxed_product _ -> decl.type_private = Private - | Type_variant (tll, _rep) -> + | Type_variant (tll, _rep,_umc) -> decl.type_private = Private || List.exists (fun cd -> cd.cd_res <> None) tll | Type_open -> @@ -1865,15 +1871,15 @@ let tree_of_type_decl ?(print_non_value_inferred_jkind = false) id decl = in let (name, args) = type_defined decl in let constraints = tree_of_constraints params in - let ty, priv, unboxed, or_null_reexport = + let ty, priv, unboxed, or_null_reexport, unsafe_mode_crossing = match decl.type_kind with | Type_abstract _ -> begin match ty_manifest with - | None -> (Otyp_abstract, Public, false, false) + | None -> (Otyp_abstract, Public, false, false, false) | Some ty -> - tree_of_typexp Type ty, decl.type_private, false, false + tree_of_typexp Type ty, decl.type_private, false, false, false end - | Type_variant (cstrs, rep) -> + | Type_variant (cstrs, rep, umc) -> let unboxed = match rep with | Variant_unboxed -> true @@ -1889,39 +1895,56 @@ let tree_of_type_decl ?(print_non_value_inferred_jkind = false) id decl = tree_of_manifest (Otyp_sum (List.map tree_of_constructor_in_decl cstrs)), decl.type_private, unboxed, - or_null_reexport - | Type_record(lbls, rep) -> + or_null_reexport, + (Option.is_some umc) + | Type_record(lbls, rep, umc) -> tree_of_manifest (Otyp_record (List.map tree_of_label lbls)), decl.type_private, (match rep with Record_unboxed -> true | _ -> false), - false - | Type_record_unboxed_product(lbls, Record_unboxed_product) -> + false, + (Option.is_some umc) + | Type_record_unboxed_product(lbls, Record_unboxed_product, umc) -> tree_of_manifest (Otyp_record_unboxed_product (List.map tree_of_label lbls)), decl.type_private, false, - false + false, + (Option.is_some umc) | Type_open -> tree_of_manifest Otyp_open, decl.type_private, false, + false, false in (* The algorithm for setting [lay] here is described as Case (C1) in Note [When to print jkind annotations] *) - let is_value = Jkind.is_value_for_printing decl.type_jkind in + let is_value = Jkind.is_value_for_printing ~ignore_null:false decl.type_jkind in let otype_jkind = +<<<<<<< janestreet/merlin-jst:rae/with-kinds-roll match ty, is_value, decl.type_has_illegal_crossings, print_non_value_inferred_jkind with | (Otyp_abstract, false, _, _) | (_, _, true, _) (* Merlin only: we print the inferred jkind (not the jkind annotation) if the user asked for it hard enough. *) | (_, false, _, true) -> +||||||| ocaml-flambda/flambda-backend:df4a6e0ba4f74dc790e0ad79f15ea73be1225c4b + match ty, is_value, decl.type_has_illegal_crossings with + | (Otyp_abstract, false, _) | (_, _, true) -> +======= + match ty, is_value, unsafe_mode_crossing with + | (Otyp_abstract, false, _) | (_, _, true) -> +>>>>>>> ocaml-flambda/flambda-backend:main (* The two cases of (C1) from the Note correspond to Otyp_abstract. Anything but the default must be user-written, so we print the user-written annotation. *) - (* type_has_illegal_crossings corresponds to C1.2 *) + (* unsafe_mode_crossing corresponds to C1.2 *) Some (out_jkind_of_desc (Jkind.get decl.type_jkind)) | _ -> None (* other cases have no jkind annotation *) + in + let attrs = + if unsafe_mode_crossing + then [{ oattr_name = "unsafe_allow_any_mode_crossing" }] + else [] in { otype_name = name; otype_params = args; @@ -1930,7 +1953,8 @@ let tree_of_type_decl ?(print_non_value_inferred_jkind = false) id decl = otype_jkind; otype_unboxed = unboxed; otype_or_null_reexport = or_null_reexport; - otype_cstrs = constraints } + otype_cstrs = constraints; + otype_attributes = attrs } let add_type_decl_to_preparation id decl = ignore @@ prepare_decl id decl @@ -2094,7 +2118,7 @@ let tree_of_value_description id decl = (* Important: process the fvs *after* the type; tree_of_type_scheme resets the naming context *) let snap = Btype.snapshot () in - let moda = Mode.Modality.Value.zap_to_floor decl.val_modalities in + let moda = Mode.Modality.Value.zap_to_id decl.val_modalities in let qtvs = extract_qtvs [decl.val_type] in let apparent_arity = let rec count n typ = @@ -2107,7 +2131,7 @@ let tree_of_value_description id decl = let attrs = match Zero_alloc.get decl.val_zero_alloc with | Default_zero_alloc | Ignore_assert_all -> [] - | Check { strict; opt; arity; _ } -> + | Check { strict; opt; arity; custom_error_msg; loc = _; } -> [{ oattr_name = String.concat "" ["zero_alloc"; @@ -2115,6 +2139,9 @@ let tree_of_value_description id decl = if opt then " opt" else ""; if arity = apparent_arity then "" else Printf.sprintf " arity %d" arity; + match custom_error_msg with + | None -> "" + | Some msg -> Printf.sprintf " custom_error_message %S" msg ] }] | Assume { strict; never_returns_normally; arity; _ } -> [{ oattr_name = @@ -2355,7 +2382,6 @@ let dummy = type_attributes = []; type_unboxed_default = false; type_uid = Uid.internal_not_actually_unique; - type_has_illegal_crossings = false; } (** we hide items being defined from short-path to avoid shortening diff --git a/src/ocaml/typing/subst.ml b/src/ocaml/typing/subst.ml index 24f00deaa..0a6ec4c71 100644 --- a/src/ocaml/typing/subst.ml +++ b/src/ocaml/typing/subst.ml @@ -82,17 +82,58 @@ type additional_action_config = | Duplicate_variables | Prepare_for_saving -let with_additional_action = - (* Memoize the built-in jkinds *) - let builtins = +(* Memoize the built-in jkinds, either best or not-best *) +module Builtins_memo : sig + val find : + quality:('l * 'r) jkind_quality -> + ('l * 'r) Jkind.Const.t -> + ('l * 'r) jkind option +end = struct + open Allowance + + type 'd builtins = ('d Jkind.Const.t * 'd jkind) list + + let make_builtins (type l r) (quality : (l * r) jkind_quality) : (l * r) builtins = Jkind.Const.Builtin.all - |> List.map (fun (builtin : _ Jkind.Const.Builtin.t) -> - builtin.jkind, - Jkind.of_const builtin.jkind - ~annotation:(Some { pjkind_loc = Location.none; - pjkind_desc = Abbreviation builtin.name }) - ~why:Jkind.History.Imported) - in + |> List.map (fun (builtin : Jkind.Const.Builtin.t) -> + let const_jkind : (l * r) Jkind.Const.t = + builtin.jkind |> Jkind.Const.allow_left |> Jkind.Const.allow_right in + const_jkind, + Jkind.of_const + const_jkind + ~quality + ~annotation:(Some { pjkind_loc = Location.none; + pjkind_desc = Abbreviation builtin.name }) + ~why:Jkind.History.Imported) + + let best_builtins : (allowed * disallowed) builtins = make_builtins Best + let not_best_builtins : (allowed * allowed) builtins = make_builtins Not_best + + let find + (type l r) + ~(quality : (l * r) jkind_quality) + (const : (l * r) Jkind.Const.t) + : (l * r) jkind option + = + (match quality with + | Best -> + List.find_opt (fun ((builtin, _) : (allowed * disallowed) Jkind.Const.t * _) -> + Jkind.Const.no_with_bounds_and_equal + (const |> Jkind.Const.disallow_right) + (builtin |> Jkind.Const.allow_left)) + best_builtins + |> Option.map (fun (_, jkind) -> jkind |> Jkind.allow_left) + | Not_best -> + List.find_opt (fun (builtin, _) -> + Jkind.Const.no_with_bounds_and_equal + const + (builtin |> Jkind.Const.allow_left |> Jkind.Const.allow_right)) + not_best_builtins + |> Option.map (fun (_, jkind) -> jkind |> Jkind.allow_left |> Jkind.allow_right) + ) +end + +let with_additional_action = fun (config : additional_action_config) s -> (* CR layouts: it would be better to put all this stuff outside this function, but it's in here because we really want to tailor the reason @@ -108,17 +149,12 @@ let with_additional_action = match config with | Duplicate_variables -> Duplicate_variables | Prepare_for_saving -> - let prepare_jkind loc jkind = + let prepare_jkind (type l r) loc (jkind : (l * r) jkind) = match Jkind.get_const jkind with | Some const -> - let builtin = - List.find_opt (fun (builtin, _) -> - Jkind.Const.equal_after_all_inference_is_done const builtin) - builtins - in - begin match builtin with - | Some (_, jkind) -> jkind |> Jkind.allow_left |> Jkind.allow_right - | None -> Jkind.of_const const ~annotation:None ~why:Imported + begin match Builtins_memo.find ~quality:jkind.quality const with + | Some jkind -> jkind + | None -> Jkind.of_const ~quality:jkind.quality const ~annotation:None ~why:Imported end | None -> raise(Error (loc, Unconstrained_jkind_variable)) in @@ -505,14 +541,14 @@ let type_declaration' copy_scope s decl = type_kind = begin match decl.type_kind with Type_abstract r -> Type_abstract r - | Type_variant (cstrs, rep) -> + | Type_variant (cstrs, rep, umc) -> Type_variant (List.map (constructor_declaration copy_scope s) cstrs, - rep) - | Type_record(lbls, rep) -> - Type_record (List.map (label_declaration copy_scope s) lbls, rep) - | Type_record_unboxed_product(lbls, rep) -> + rep, umc) + | Type_record(lbls, rep, umc) -> + Type_record (List.map (label_declaration copy_scope s) lbls, rep, umc) + | Type_record_unboxed_product(lbls, rep, umc) -> Type_record_unboxed_product - (List.map (label_declaration copy_scope s) lbls, rep) + (List.map (label_declaration copy_scope s) lbls, rep, umc) | Type_open -> Type_open end; type_manifest = @@ -523,10 +559,13 @@ let type_declaration' copy_scope s decl = end; type_jkind = begin - match s.additional_action with - | Prepare_for_saving { prepare_jkind } -> + let jkind = + match s.additional_action with + | Prepare_for_saving { prepare_jkind } -> prepare_jkind decl.type_loc decl.type_jkind - | Duplicate_variables | No_action -> decl.type_jkind + | Duplicate_variables | No_action -> decl.type_jkind + in + Jkind.map_type_expr (typexp copy_scope s decl.type_loc) jkind end; type_private = decl.type_private; type_variance = decl.type_variance; @@ -537,7 +576,6 @@ let type_declaration' copy_scope s decl = type_attributes = attrs s decl.type_attributes; type_unboxed_default = decl.type_unboxed_default; type_uid = decl.type_uid; - type_has_illegal_crossings = decl.type_has_illegal_crossings; } let type_declaration s decl = diff --git a/src/ocaml/typing/typeclass.ml b/src/ocaml/typing/typeclass.ml index 9ae415537..7cf338736 100644 --- a/src/ocaml/typing/typeclass.ml +++ b/src/ocaml/typing/typeclass.ml @@ -1623,7 +1623,6 @@ let temp_abbrev loc id arity uid = type_attributes = []; (* or keep attrs from the class decl? *) type_unboxed_default = false; type_uid = uid; - type_has_illegal_crossings = false; } in (!params, ty, ty_td) @@ -1854,7 +1853,6 @@ let class_infos define_class kind type_attributes = []; (* or keep attrs from cl? *) type_unboxed_default = false; type_uid = dummy_class.cty_uid; - type_has_illegal_crossings = false; } in let (cl_params, cl_ty) = diff --git a/src/ocaml/typing/typecore.ml b/src/ocaml/typing/typecore.ml index 7392a1f1d..558b2e696 100644 --- a/src/ocaml/typing/typecore.ml +++ b/src/ocaml/typing/typecore.ml @@ -401,7 +401,8 @@ let error (loc, env, err) = let type_module = ref ((fun _env _md -> assert false) : - Env.t -> Parsetree.module_expr -> Typedtree.module_expr * Shape.t) + Env.t -> Parsetree.module_expr -> Typedtree.module_expr * Shape.t * + Env.locks) (* Forward declaration, to be filled in by Typemod.type_open *) @@ -998,10 +999,10 @@ let extract_concrete_typedecl_protected env ty = let extract_concrete_record (type rep) (record_form : rep record_form) env ty : (rep record_extraction_result) = match record_form, extract_concrete_typedecl_protected env ty with - | Legacy, Typedecl(p0, p, {type_kind=Type_record (fields, repres)}) -> + | Legacy, Typedecl(p0, p, {type_kind=Type_record (fields, repres, _)}) -> Record_type (p0, p, fields, repres) | Unboxed_product, - Typedecl(p0, p, {type_kind=Type_record_unboxed_product (fields, repres)}) -> + Typedecl(p0, p, {type_kind=Type_record_unboxed_product (fields, repres, _)}) -> Record_type (p0, p, fields, repres) | Legacy, Typedecl(_, _, {type_kind=Type_record_unboxed_product _}) | Unboxed_product, Typedecl(_, _, {type_kind=Type_record _}) -> @@ -1016,7 +1017,7 @@ type variant_extraction_result = let extract_concrete_variant env ty = match extract_concrete_typedecl_protected env ty with - | Typedecl(p0, p, {type_kind=Type_variant (cstrs, _)}) -> + | Typedecl(p0, p, {type_kind=Type_variant (cstrs, _, _)}) -> Variant_type (p0, p, cstrs) | Typedecl(p0, p, {type_kind=Type_open}) -> Variant_type (p0, p, []) @@ -1045,7 +1046,8 @@ let mode_cross_left_value env ty mode = let mode = if not (is_principal ty) then mode else let jkind = type_jkind_purely env ty in - let upper_bounds = Jkind.get_modal_upper_bounds jkind in + let jkind_of_type = type_jkind_purely_if_principal env in + let upper_bounds = Jkind.get_modal_upper_bounds ~jkind_of_type jkind in let upper_bounds = Const.alloc_as_value upper_bounds in Value.meet_const upper_bounds mode in @@ -1063,7 +1065,8 @@ let alloc_mode_cross_to_max_min env ty { monadic; comonadic } = let comonadic = Alloc.Comonadic.disallow_right comonadic in if not (is_principal ty) then { monadic; comonadic } else let jkind = type_jkind_purely env ty in - let upper_bounds = Jkind.get_modal_upper_bounds jkind in + let jkind_of_type = type_jkind_purely_if_principal env in + let upper_bounds = Jkind.get_modal_upper_bounds ~jkind_of_type jkind in let upper_bounds = Alloc.Const.split upper_bounds in let comonadic = Alloc.Comonadic.meet_const upper_bounds.comonadic comonadic in let monadic = Alloc.Monadic.imply upper_bounds.monadic monadic in @@ -1072,18 +1075,19 @@ let alloc_mode_cross_to_max_min env ty { monadic; comonadic } = (** Mode cross a right mode *) (* This is very similar to Ctype.mode_cross_right. Any bugs here are likely bugs there, too. *) -let expect_mode_cross_jkind jkind (expected_mode : expected_mode) = - let upper_bounds = Jkind.get_modal_upper_bounds jkind in +let expect_mode_cross_jkind env jkind (expected_mode : expected_mode) = + let jkind_of_type = type_jkind_purely_if_principal env in + let upper_bounds = Jkind.get_modal_upper_bounds ~jkind_of_type jkind in let upper_bounds = Const.alloc_as_value upper_bounds in mode_morph (Value.imply upper_bounds) expected_mode let expect_mode_cross env ty (expected_mode : expected_mode) = if not (is_principal ty) then expected_mode else let jkind = type_jkind_purely env ty in - expect_mode_cross_jkind jkind expected_mode + expect_mode_cross_jkind env jkind expected_mode (** The expected mode for objects *) -let mode_object = expect_mode_cross_jkind Jkind.for_object mode_legacy +let mode_object = expect_mode_cross_jkind Env.empty Jkind.for_object mode_legacy let mode_annots_from_pat pat = let modes = @@ -1386,7 +1390,7 @@ let add_module_variables env module_variables = Here, on the other hand, we're calling [type_module] outside the raised level, so there's no extra step to take. *) - let modl, md_shape = + let modl, md_shape, locks = !type_module env Ast_helper.( Mod.unpack ~loc:mv_loc @@ -1404,7 +1408,9 @@ let add_module_variables env module_variables = md_loc = mv_name.loc; md_uid = mv_uid; } in - Env.add_module_declaration ~shape:md_shape ~check:true mv_id pres md env + Env.add_module_declaration ~shape:md_shape ~check:true mv_id pres md + (* the [locks] is always empty, but typecore doesn't need to know *) + ~locks env end ) env module_variables_as_list @@ -5470,6 +5476,7 @@ let add_zero_alloc_attribute expr attributes = let default_arity = function_arity fn.params fn.body in let za = get_zero_alloc_attribute ~in_signature:false ~default_arity attributes + ~on_application:false in begin match za with | Default_zero_alloc -> expr @@ -6080,6 +6087,7 @@ and type_expect_ in let zero_alloc = Builtin_attributes.get_zero_alloc_attribute ~in_signature:false + ~on_application:true ~default_arity:(List.length args) sfunct.pexp_attributes |> Builtin_attributes.zero_alloc_attribute_only_assume_allowed in @@ -6635,7 +6643,7 @@ and type_expect_ with_local_level begin fun () -> let modl, pres, id, new_env = Typetexp.TyVarEnv.with_local_scope begin fun () -> - let modl, md_shape = !type_module env smodl in + let modl, md_shape, locks = !type_module env smodl in Mtype.lower_nongen lv modl.mod_type; let pres = match modl.mod_type with @@ -6656,7 +6664,7 @@ and type_expect_ | Some name -> let id, env = Env.enter_module_declaration - ~scope ~shape:md_shape name pres md env + ~scope ~shape:md_shape name pres md ~locks env in Some id, env in @@ -7262,10 +7270,51 @@ and type_constraint_expect ret, ty, exp_extra and type_ident env ?(recarg=Rejected) lid = - let path, desc, actual_mode = Env.lookup_value ~loc:lid.loc lid.txt env in - (* Mode crossing here is needed only because of the strange behaviour of - [type_let] - it checks the LHS before RHS. Had it checks the RHS before LHS, - identifiers would be mode crossed when being added to the environment. *) + let path, desc, mode, locks = Env.lookup_value ~loc:lid.loc lid.txt env in + (* We cross modes when typing [Ppat_ident], before adding new variables into + the environment. Therefore, one might think all values in the environment are + already mode-crossed. That is not true for several reasons: + - [type_let] checks the LHS and adds bound variables to the environment + without the type information from the RHS. + - The identifer is [M.x], whose signature might not reflect mode crossing. + + Therefore, we need to cross modes upon look-up. Ideally that should be done in + [Env], but that is difficult due to cyclic dependency between jkind and env. *) + let mode = mode_cross_left_value env desc.val_type mode in + (* There can be locks between the definition and a use of a value. For + example, if a function closes over a value, there will be Closure_lock between + the value's definition and the value's use in the function. Walking the locks + will constrain the function and the value's modes accordingly. + + Note that the value could be from a module, and we have choices to make: + - We can walk the locks using the module's mode. That means the closures are + closing over the module. + - We can walk the locks using the value's mode. That means the closures are + closing over the value. + + We pick the second for better ergonomics. It could be dangerous as it doesn't + reflect the real runtime behaviour. With the current set-up, it is sound: + + - Locality: Modules are always global (the strongest mode), so it's fine. + - Linearity: Modules are always many (the strongest mode), so it's fine. + - Portability: Closing over a nonportable module only to extract a portable + value is fine. + - Yielding: Modules are always unyielding (the strongest mode), so it's fine. + - All monadic axes: values are in a module via some join_with_m modality. + Meanwhile, walking locks causes the mode to go through several join_with_m + where [m] is the mode of a closure lock. Since join is commutative and + associative, the order of which we apply those join does not matter. + *) + (* CR modes: codify the above per-axis argument. *) + let actual_mode = + Env.walk_locks ~loc:lid.loc ~env ~item:Value ~lid:lid.txt mode + (Some desc.val_type) locks + in + (* We need to cross again, because the monadic fragment might have been + weakened by the locks. Ideally, the first crossing only deals with comonadic, + and the second only deals with monadic. *) + (* CR layouts: allow to cross comonadic fragment and monadic fragment + separately. *) let actual_mode = actual_mode_cross_left env desc.val_type actual_mode in let is_recarg = match get_desc desc.val_type with @@ -8402,10 +8451,14 @@ and type_apply_arg env ~app_loc ~funct ~index ~position_and_mode ~partial_app (l let arg = type_expect env expected_mode sarg (mk_expected ty_arg_mono) in - if is_optional lbl then - (* CR layouts v5: relax value requirement *) - unify_exp env arg - (type_option(newvar Predef.option_argument_jkind)); + (match lbl with + | Labelled _ | Nolabel -> () + | Optional _ -> + (* CR layouts v5: relax value requirement *) + unify_exp env arg + (type_option(newvar Predef.option_argument_jkind)) + | Position _ -> + unify_exp env arg (instance Predef.type_lexing_position)); (lbl, Arg (arg, mode_arg, sort_arg)) | Arg (Known_arg { sarg; ty_arg; ty_arg0; mode_arg; wrapped_in_some; sort_arg }) -> @@ -8530,11 +8583,7 @@ and type_application env app_loc expected_mode position_and_mode let ty_ret, mode_ret, args, position_and_mode = with_local_level_if_principal begin fun () -> let sargs = List.map - (* Application will never contain Position labels, so no need to pass - argument type here. When checking against the function type, - Labelled arguments will be matched up to Position parameters - based on label names *) - (fun (label, e) -> Typetexp.transl_label label None, e) sargs + (fun (label, e) -> Typetexp.transl_label_from_expr label e) sargs in let ty_ret, mode_ret, untyped_args = collect_apply_args env funct ignore_labels ty (instance ty) @@ -9527,7 +9576,7 @@ and type_let ?check ?check_strict ?(force_toplevel = false) List.iter (fun pv -> Ctype.check_and_update_generalized_ty_jkind - ~name:pv.pv_id ~loc:pv.pv_loc pv.pv_type) + ~name:pv.pv_id ~loc:pv.pv_loc env pv.pv_type) pvs; List.iter2 (fun (_, _, expected_ty) (exp, vars) -> @@ -9556,7 +9605,7 @@ and type_let ?check ?check_strict ?(force_toplevel = false) | Tpat_alias(_, id, _, _, _) -> Some id | _ -> None in Ctype.check_and_update_generalized_ty_jkind - ?name:pat_name ~loc:exp.exp_loc exp.exp_type + ?name:pat_name ~loc:exp.exp_loc env exp.exp_type in List.iter2 update_exp_jkind mode_pat_typ_list exp_list; end @@ -9920,6 +9969,7 @@ and type_n_ary_function end; let zero_alloc = Builtin_attributes.get_zero_alloc_attribute ~in_signature:false + ~on_application:false ~default_arity:syntactic_arity attributes in let zero_alloc = @@ -10339,7 +10389,7 @@ let type_expression env jkind sexp = Pexp_ident lid -> let loc = sexp.pexp_loc in (* Special case for keeping type variables when looking-up a variable *) - let (_path, desc, _actual_mode) = + let (_path, desc, _, _) = Env.lookup_value ~use:false ~loc lid.txt env in {exp with exp_type = desc.val_type} diff --git a/src/ocaml/typing/typecore.mli b/src/ocaml/typing/typecore.mli index 6f01ec500..9370647a6 100644 --- a/src/ocaml/typing/typecore.mli +++ b/src/ocaml/typing/typecore.mli @@ -334,7 +334,8 @@ val report_error: loc:Location.t -> Env.t -> error -> Location.error (* Forward declaration, to be filled in by Typemod.type_module *) val type_module: - (Env.t -> Parsetree.module_expr -> Typedtree.module_expr * Shape.t) ref + (Env.t -> Parsetree.module_expr -> Typedtree.module_expr * Shape.t * + Env.locks) ref (* Forward declaration, to be filled in by Typemod.type_open *) val type_open: (?used_slot:bool ref -> override_flag -> Env.t -> Location.t -> diff --git a/src/ocaml/typing/typedecl.ml b/src/ocaml/typing/typedecl.ml index 64e261221..eb7eaf9f0 100644 --- a/src/ocaml/typing/typedecl.ml +++ b/src/ocaml/typing/typedecl.ml @@ -146,6 +146,9 @@ type error = ; expected: Path.t } | Non_abstract_reexport of Path.t + | Unsafe_mode_crossing_on_invalid_type_kind + | Unsafe_mode_crossing_with_with_bounds + | Illegal_baggage of jkind_l open Typedtree @@ -270,7 +273,21 @@ let enter_type ?abstract_abbrevs rec_flag env sdecl (id, uid) = let type_jkind = Jkind.of_type_decl_default ~context:(Type_declaration path) - ~default:any + (* CR layouts v2.8: This next line is truly terrible. But I think it's OK + for now: it will mean that any [with] constraints get interpreted to + mean that the thing does not cross that mode. That's OK: the jkind + produced here can be an overapproximation of the correct jkind (note + that [any] is the default). Indeed the only reason (I think) we need a + non-[any] jkind here is to produce better error messages. + + Doing better here will be annoying, because a type is in scope in its + own jkind... and yet we don't have an env that we can use at this + point. I think probably the solution will be to have + [Jkind.of_type_decl_default] just return [max] every time it sees a + [with]-kind... which basically just does this [type_exn] trick but much + more sanely. *) + ~transl_type:(fun _ -> Predef.type_exn) + ~default:(Jkind.disallow_right any) sdecl in let abstract_source, type_manifest = @@ -305,7 +322,6 @@ in type_attributes = sdecl.ptype_attributes; type_unboxed_default = false; type_uid = uid; - type_has_illegal_crossings = false; } in add_type ~long_path:true ~check:true id decl env @@ -421,29 +437,13 @@ let set_private_row env loc p decl = should be replaced with checks at the places where values of those types are constructed. We've been conservative here in the first version. This is the same issue as with arrows. *) -let check_representable ~why ~allow_unboxed env loc kloc typ = +let check_representable ~why env loc kloc typ = match Ctype.type_sort ~why ~fixed:false env typ with - (* CR layouts v5: This is a convenient place to rule out non-value types in - structures that don't support them yet. (A callsite passes - [~allow_unboxed:true] to indicate that non-value types are allowed.) - When we support mixed blocks everywhere, this [check_representable] - will have outlived its usefulness and we can delete it. - *) - (* CR layouts v2.5: This rules out non-value types in [@@unboxed] types. No - real need to rule that out - I just haven't had time to write tests for it - yet. *) - | Ok s -> begin - if not allow_unboxed then - match Jkind.Sort.default_to_value_and_get s with - | Base (Void | Value) -> () - | Base (Float64 | Float32 | Word | Bits32 | Bits64 | Vec128) - | Product _ as const -> - raise (Error (loc, Invalid_jkind_in_block (typ, const, kloc))) - end + | Ok _ -> () | Error err -> raise (Error (loc,Jkind_sort {kloc; typ; err})) let transl_labels (type rep) ~(record_form : rep record_form) ~new_var_jkind - ~allow_unboxed env univars closed lbls kloc = + env univars closed lbls kloc = assert (lbls <> []); let all_labels = ref String.Set.empty in List.iter @@ -484,7 +484,7 @@ let transl_labels (type rep) ~(record_form : rep record_form) ~new_var_jkind let ty = ld.ld_type.ctyp_type in let ty = match get_desc ty with Tpoly(t,[]) -> t | _ -> ty in check_representable ~why:(Label_declaration ld.ld_id) - ~allow_unboxed env ld.ld_loc kloc ty; + env ld.ld_loc kloc ty; {Types.ld_id = ld.ld_id; ld_mutable = ld.ld_mutable; ld_modalities = ld.ld_modalities; @@ -499,8 +499,7 @@ let transl_labels (type rep) ~(record_form : rep record_form) ~new_var_jkind lbls in lbls, lbls' -let transl_types_gf ~new_var_jkind ~allow_unboxed - env loc univars closed cal kloc = +let transl_types_gf ~new_var_jkind env loc univars closed cal kloc = let mk arg = let cty = transl_simple_type ~new_var_jkind env ?univars ~closed @@ -514,7 +513,7 @@ let transl_types_gf ~new_var_jkind ~allow_unboxed in let tyl_gfl = List.map mk cal in let tyl_gfl' = List.mapi (fun idx (ca : Typedtree.constructor_argument) -> - check_representable ~why:(Constructor_declaration idx) ~allow_unboxed + check_representable ~why:(Constructor_declaration idx) env loc kloc ca.ca_type.ctyp_type; { Types.ca_modalities = ca.ca_modalities; @@ -530,19 +529,14 @@ let transl_constructor_arguments ~new_var_jkind ~unboxed env loc univars closed = function | Pcstr_tuple l -> let flds, flds' = - (* CR layouts: we forbid [@@unboxed] variants from being - non-value, see comment in [check_representable]. *) - transl_types_gf ~new_var_jkind ~allow_unboxed:(not unboxed) + transl_types_gf ~new_var_jkind env loc univars closed l (Cstr_tuple { unboxed }) in Types.Cstr_tuple flds', Cstr_tuple flds | Pcstr_record l -> let lbls, lbls' = - (* CR layouts: we forbid [@@unboxed] variants from being - non-value, see comment in [check_representable]. *) transl_labels ~record_form:Legacy ~new_var_jkind - ~allow_unboxed:(not unboxed) env univars closed l - (Inlined_record { unboxed }) + env univars closed l (Inlined_record { unboxed }) in Types.Cstr_record lbls', Cstr_record lbls @@ -735,6 +729,15 @@ let verify_unboxed_attr unboxed_attr sdecl = which looks through unboxed types. So it's all OK for users, but it's unfortunate that the stored jkind on [t7_2] is imprecise. + The way this interacts with checking of with-bounds is somewhat subtle and complex. + With-bounds for mutually recursive type declarations need to be normalized and checked + in a pass /after/ computing the the proper (best) jkinds for all the types and storing + them in the environment, so that they can be queried during normalization. But it's + important that we call [Jkind.Layout.sub] on each type /eagerly/, so that its sort + variables (which might be referenced from the jkinds of other types) get filled in with + the right sort. So we do that early, in [update_decl_jkind], then check the full jkind + against the dummy jkind later, after normalizing in [transl_type_decl]. + (* CR layouts: see if we can do better here. *) *) @@ -788,8 +791,28 @@ let transl_declaration env sdecl (id, uid) = | _ -> false, false (* Not unboxable, mark as boxed *) in verify_unboxed_attr unboxed_attr sdecl; + (* CR layouts v2.8: This next call to [transl_simple_type] probably can loop + because it will do perhaps-circular jkind checks. But actually I think the + same problem exists in e.g. record fields. We should probably look into this. *) + let transl_type sty = + (* CR layouts v2.8: The [~new_var_jkind:Any] is weird. The type is closed, + and so there shouldn't be any new vars. Investigate. *) + let cty = + Ctype.with_local_level begin fun () -> + Typetexp.transl_simple_type env ~new_var_jkind:Any + ~closed:true Mode.Alloc.Const.legacy sty + end + (* This call to [generalize_structure] is necessary so that copying + during instantiation traverses inside of any type constructors in the + [with]-bound. It's also necessary because the variables here are at + generic level, and so any containers of them should be, too! *) + ~post:(fun cty -> Ctype.generalize_structure cty.ctyp_type) + in + cty.ctyp_type (* CR layouts v2.8: Do this more efficiently. Or probably + add with-kinds to Typedtree. *) + in let jkind_from_annotation, jkind_annotation = - match Jkind.of_type_decl ~context:(Type_declaration path) sdecl with + match Jkind.of_type_decl ~context:(Type_declaration path) ~transl_type sdecl with | Some (jkind, annot) -> Some jkind, annot | None -> None, None @@ -826,10 +849,7 @@ let transl_declaration env sdecl (id, uid) = { definition = path; expected = Predef.path_or_null })) in let type_kind = Predef.or_null_kind param in - let jkind = - Jkind.Builtin.value_or_null - ~why:(Primitive Predef.ident_or_null) - in + let jkind = Predef.or_null_jkind in Ttype_abstract, type_kind, jkind | (Ptype_variant _ | Ptype_record _ | Ptype_record_unboxed_product _ | Ptype_open) @@ -891,8 +911,7 @@ let transl_declaration env sdecl (id, uid) = let tcstrs, cstrs = List.split (List.map make_cstr scstrs) in let rep, jkind = if unbox then - Variant_unboxed, - Jkind.of_new_legacy_sort ~why:Old_style_unboxed_type + Variant_unboxed, Jkind.of_new_legacy_sort ~why:Old_style_unboxed_type else (* We mark all arg sorts "void" here. They are updated later, after the circular type checks make it safe to check sorts. @@ -913,14 +932,11 @@ let transl_declaration env sdecl (id, uid) = ), Jkind.Builtin.value ~why:Boxed_variant in - Ttype_variant tcstrs, Type_variant (cstrs, rep), jkind + Ttype_variant tcstrs, Type_variant (cstrs, rep, None), jkind | Ptype_record lbls -> let lbls, lbls' = - (* CR layouts: we forbid [@@unboxed] records from being - non-value, see comment in [check_representable]. *) transl_labels ~record_form:Legacy ~new_var_jkind:Any - ~allow_unboxed:(not unbox) env None true lbls - (Record { unboxed = unbox }) + env None true lbls (Record { unboxed = unbox }) in let rep, jkind = if unbox then @@ -934,25 +950,26 @@ let transl_declaration env sdecl (id, uid) = Record_boxed (Array.make (List.length lbls) Jkind.Sort.Const.void), Jkind.Builtin.value ~why:Boxed_record in - Ttype_record lbls, Type_record(lbls', rep), jkind + Ttype_record lbls, Type_record(lbls', rep, None), jkind | Ptype_record_unboxed_product lbls -> Language_extension.assert_enabled ~loc:sdecl.ptype_loc Layouts Language_extension.Stable; let lbls, lbls' = transl_labels ~record_form:Unboxed_product ~new_var_jkind:Any - ~allow_unboxed:true env None true lbls Record_unboxed_product + env None true lbls Record_unboxed_product in (* The jkinds below, and the ones in [lbls], are dummy jkinds which are replaced and made to correspond to each other in [update_decl_jkind]. *) - let jkind_ls = - List.map (fun _ -> Jkind.Builtin.any ~why:Initial_typedecl_env) lbls + let jkind = + Jkind.Builtin.product_of_sorts ~why:Unboxed_record + (List.length lbls) in - let jkind = Jkind.Builtin.product ~why:Unboxed_record jkind_ls in Ttype_record_unboxed_product lbls, - Type_record_unboxed_product(lbls', Record_unboxed_product), jkind + Type_record_unboxed_product(lbls', Record_unboxed_product, None), jkind | Ptype_open -> - Ttype_open, Type_open, Jkind.Builtin.value ~why:Extensible_variant + Ttype_open, Type_open, + Jkind.Builtin.value ~why:Extensible_variant in let jkind = (* - If there's an annotation, we use that. It's checked against @@ -971,20 +988,23 @@ let transl_declaration env sdecl (id, uid) = | None, None -> jkind_default in let jkind = - (* Hack: unboxed records are given a product-of-[any]s jkind + (* Hack: unboxed records are given a product-of-[any]s layout when they would otherwise be given [any]. This allows [estimate_type_jkind] to give an estimate that's just barely good enough, such that [constain_type_jkind] can always decompose the product of [any]s and recurse on the labels. See https://github.com/ocaml-flambda/flambda-backend/pull/3399. *) - match sdecl.ptype_kind with - | Ptype_record_unboxed_product lbls - when Jkind.has_layout_any (Jkind.terrible_relax_l jkind) -> - Jkind.Builtin.product ~why:Unboxed_record - (List.map (fun _ -> jkind) lbls) - | Ptype_abstract | Ptype_variant _ | Ptype_record _ - | Ptype_record_unboxed_product _ | Ptype_open -> jkind + match kind with + | Type_record_unboxed_product _ -> + begin match Jkind.get_layout jkind with + | Some Any -> + (* [jkind_default] has just what we need here *) + Jkind.set_layout jkind (Jkind.extract_layout jkind_default) + | _ -> jkind + end + | Type_abstract _ | Type_variant _ | Type_record _ + | Type_open -> jkind in let arity = List.length params in let decl = @@ -1002,7 +1022,6 @@ let transl_declaration env sdecl (id, uid) = type_attributes = sdecl.ptype_attributes; type_unboxed_default = unboxed_default; type_uid = uid; - type_has_illegal_crossings = false; } in (* Check constraints *) List.iter @@ -1039,10 +1058,10 @@ let transl_declaration env sdecl (id, uid) = let typ_shape = let uid = decl.typ_type.type_uid in match decl.typ_type.type_kind with - | Type_variant (cstrs, _) -> Shape.str ~uid (shape_map_cstrs cstrs) - | Type_record (labels, _) -> + | Type_variant (cstrs, _, _) -> Shape.str ~uid (shape_map_cstrs cstrs) + | Type_record (labels, _, _) -> Shape.str ~uid (shape_map_labels labels) - | Type_record_unboxed_product (labels, _) -> + | Type_record_unboxed_product (labels, _, _) -> Shape.str ~uid (shape_map_unboxed_labels labels) | Type_abstract _ | Type_open -> Shape.leaf uid in @@ -1124,7 +1143,7 @@ let check_constraints env sdecl (_, decl) = can't introduce new variables in the kind. *) | Type_variant _ when Builtin_attributes.has_or_null_reexport decl.type_attributes -> () - | Type_variant (l, _rep) -> + | Type_variant (l, _rep, _umc) -> let find_pl = function Ptype_variant pl -> pl | Ptype_record _ | Ptype_record_unboxed_product _ | Ptype_abstract @@ -1161,7 +1180,7 @@ let check_constraints env sdecl (_, decl) = | _ -> () ) l - | Type_record (l, _) -> + | Type_record (l, _, _) -> let find_pl = function | Ptype_record pl -> pl | Ptype_record_unboxed_product _ | Ptype_variant _ | Ptype_abstract @@ -1170,7 +1189,7 @@ let check_constraints env sdecl (_, decl) = in let pl = find_pl sdecl.ptype_kind in check_constraints_labels env visited l pl - | Type_record_unboxed_product (l, _) -> + | Type_record_unboxed_product (l, _, _) -> let find_pl = function | Ptype_record_unboxed_product pl -> pl | Ptype_record _ | Ptype_variant _ | Ptype_abstract | Ptype_open -> @@ -1194,14 +1213,82 @@ let check_constraints env sdecl (_, decl) = immediate, we should check the manifest is immediate). Also, update the resulting jkind to match the manifest. *) let narrow_to_manifest_jkind env loc decl = - match decl.type_manifest with - | None -> decl - | Some ty -> - let jkind' = Ctype.type_jkind_purely env ty in - match Jkind.sub_jkind_l jkind' decl.type_jkind with - | Ok jkind' -> { decl with type_jkind = jkind' } - | Error v -> - raise (Error (loc, Jkind_mismatch_of_type (ty,v))) + match decl.type_manifest, decl.type_kind with + | None, _ -> decl + | Some _, (Type_record _ | Type_record_unboxed_product _ | Type_variant _ | Type_open) + when not (Builtin_attributes.has_or_null_reexport decl.type_attributes) + -> + (* If there's both a manifest and a non-abstract kind, there's no reason to check that + the jkind of the manifest matches the annotation ([decl.type_jkind]). This is + because the manifest's jkind is exactly the kind's jkind, and we've already checked + and updated [type_jkind] based on the kind. *) + decl + | Some ty, _ -> + (* CR layouts v2.8: Remove this use of [type_jkind_purely], which is slow + and effectful. But we cannot do so easily, sadly. I tried using + [estimate_type_jkind] here instead, but this runs aground with mutually + recursive declarations with manifests. Example: + + {[ + type s1 = float# + and s2 = s1 + ]} + + We assign jkind [any] to both [s1] and [s2] in [transl_declaration], + because we really can't do better at that point. But then when we get + here, [estimate_type_jkind] on [s1] returns [any] -- it won't expand + the manifest to get [float64]. That's not unsound, because a jkind is + always just an approximation. But it does mean that we need to load more + cmi files in practice to get the "real" jkind. This was observed when + compiling Jane Street's codebase, requiring lots more dependencies to be + added. Boo. [type_jkind_purely] avoids this problem, by looking deeply + to find the [float#] and thus the [float64] jkind. + + The solution I have in mind here is to change the jkind assigned in + [transl_declaration] to be [kind_of 'a], where ['a] is the type variable + invented in [enter_type]; that variable can be thought of an empty vessel + that accumulates information about jkinds from usages. It also, + critically, gets unified with the actual type being defined, in + [update_type], which happens before [narrow_to_manifest_jkind]. If we use + [kind_of 'a] in [transl_declaration], then [decl.type_jkind] will be + [kind_of 'a] here, and that will force the [constrain_type_jkind] below + to work just hard enough to find a jkind less than [kind_of 'a] -- + exactly what we want to record in the final [type_jkind] of the decl. + (This will require changing [constrain_type_jkind] to return its best + jkind, but that is easy to do, and indeed used to be the case until the + result was never used anywhere.) + + Do not try this (that is, removing the use of [type_jkind_purely]) before + removing the "horrible hack" just below, as that horrible hack sometimes + avoids calling [constrain_type_jkind], which is necessary for the plan + above to work. *) + let manifest_jkind = Ctype.type_jkind_purely env ty in + (* CR layouts v2.8: Remove this horrible hack. In practice, this + [try_allow_r] fails in the case of a record re-export, because the jkind + from the record has been calculated and put in decl.type_jkind at this + point. So we need to use the deeply broken [type_jkind_purely] and then + [sub_jkind_l] here. The right way forward is to parameterize + [constrain_type_jkind] over the [l]-ness of its bound. But probably not + until we have proper subsumption working, as this hack will likely hold + up for a little while. *) + begin match Jkind.try_allow_r decl.type_jkind with + | None -> begin + let type_equal = Ctype.type_equal env in + let jkind_of_type ty = Some (Ctype.type_jkind_purely env ty) in + match + Jkind.sub_jkind_l ~type_equal ~jkind_of_type + manifest_jkind decl.type_jkind + with + | Ok () -> () + | Error v -> raise (Error (loc, Jkind_mismatch_of_type (ty,v))) + end + | Some type_jkind -> begin + match Ctype.constrain_type_jkind env ty type_jkind with + | Ok () -> () + | Error v -> raise (Error (loc, Jkind_mismatch_of_type (ty,v))) + end + end; + { decl with type_jkind = manifest_jkind } (* Check that the type expression (if present) is compatible with the kind. If both a variant/record definition and a type equation are given, @@ -1212,14 +1299,6 @@ let check_kind_coherence env loc dpath decl = | (Type_variant _ | Type_record _ | Type_record_unboxed_product _ | Type_open), Some ty -> - if !Clflags.allow_illegal_crossing then begin - let jkind' = Ctype.type_jkind_purely env ty in - begin match Jkind.sub_jkind_l jkind' decl.type_jkind with - | Ok _ -> () - | Error v -> - raise (Error (loc, Jkind_mismatch_of_type (ty,v))) - end - end; begin match get_desc ty with | Tconstr(path, args, _) -> begin @@ -1264,6 +1343,7 @@ let check_abbrev env sdecl (id, decl) = *) (* [update_label_sorts] additionally returns whether all the jkinds were void, and the jkinds of the labels *) +(* CR reisenberg: remove all_void return *) let update_label_sorts env loc lbls named = (* [named] is [Some sorts] for top-level records (we will update the sorts) and [None] for inlined records. *) @@ -1374,7 +1454,8 @@ module Element_repr = struct else let layout = Jkind.get_layout_defaulting_to_value jkind in let sort = Jkind.Layout.Const.get_sort layout in - let externality_upper_bound = Jkind.get_externality_upper_bound jkind in + let jkind_of_type ty = Some (Ctype.type_jkind_purely env ty) in + let externality_upper_bound = Jkind.get_externality_upper_bound ~jkind_of_type jkind in let base = match sort with | None -> Misc.fatal_error "Element_repr.classify: unexpected abstract layout" @@ -1526,16 +1607,22 @@ let update_constructor_representation Constructor_mixed shape +let add_types_to_env decls shapes env = + List.fold_right2 + (fun (id, decl) shape env -> + add_type ~check:true ~shape id decl env) + decls shapes env + (* This function updates jkind stored in kinds with more accurate jkinds. It is called after the circularity checks and the delayed jkind checks have happened, so we can fully compute jkinds of types. - This function is an important part - of correctness, as it also checks that the jkind computed from a kind - is consistent (i.e. a subjkind of) any jkind annotation. - See Note [Default jkinds in transl_declaration]. + This function does not do any /checks/ on the jkind after performing the update; the + annotation, for example, is checked in the caller, [update_decls_jkind], so that + mutually recursive type decls see each others' best kinds during normalization and + subsumption *) -let update_decl_jkind env dpath decl = +let update_decl_jkind env id decl = let open struct (* For tracking what types appear in record blocks. *) type element_repr_summary = @@ -1561,10 +1648,10 @@ let update_decl_jkind env dpath decl = let ld_sort = Jkind.Sort.default_to_value_and_get sort in [{lbl with ld_sort}], Record_unboxed, jkind | _, Record_boxed sorts -> - let lbls, all_void, jkinds = + let lbls, _all_void, jkinds = update_label_sorts env loc lbls (Some sorts) in - let jkind = Jkind.for_boxed_record ~all_void in + let jkind = Jkind.for_boxed_record lbls in let reprs = List.map2 (fun lbl jkind -> @@ -1695,8 +1782,8 @@ let update_decl_jkind env dpath decl = assert false end | cstrs, Variant_boxed cstr_shapes -> - let (_,cstrs,all_voids) = - List.fold_left (fun (idx,cstrs,all_voids) cstr -> + let (_,cstrs) = + List.fold_left (fun (idx,cstrs) cstr -> let arg_sorts = match cstr_shapes.(idx) with | Constructor_uniform_value, arg_sorts -> arg_sorts @@ -1705,7 +1792,7 @@ let update_decl_jkind env dpath decl = "Typedecl.update_variant_kind doesn't expect mixed \ constructor as input" in - let cd_args, all_void, jkinds = + let cd_args, _all_void, jkinds = update_constructor_arguments_sorts env cstr.Types.cd_loc cstr.Types.cd_args (Some arg_sorts) in @@ -1720,90 +1807,108 @@ let update_decl_jkind env dpath decl = | Constructor_mixed _ -> cstr_shapes.(idx) <- cstr_repr, arg_sorts in let cstr = { cstr with Types.cd_args } in - (idx+1,cstr::cstrs,all_voids && all_void) - ) (0,[],true) cstrs + (idx+1,cstr::cstrs) + ) (0,[]) cstrs in - let jkind = Jkind.for_boxed_variant ~all_voids in + let jkind = Jkind.for_boxed_variant cstrs in List.rev cstrs, rep, jkind | (([] | (_ :: _)), Variant_unboxed | _, Variant_extensible) -> assert false in - let add_crossings jkind = - match !Clflags.allow_illegal_crossing with - | true -> Jkind.add_portability_and_contention_crossing ~from:decl.type_jkind jkind - | false -> jkind, false - in - let new_decl, new_jkind = match decl.type_kind with - | Type_abstract _ -> decl, decl.type_jkind + let new_decl = + match decl.type_kind with + | Type_abstract _ -> + (* Abstract types should never have quality=best, but let's double check that here + just to be safe *) + assert (not (Jkind.is_best decl.type_jkind)); + decl | Type_open -> - let type_jkind = Jkind.Builtin.value ~why:Extensible_variant in - { decl with type_jkind }, type_jkind - | Type_record (lbls, rep) -> + let type_jkind = + Jkind.Builtin.value ~why:Extensible_variant + (* It's unlikely we'll ever be able to give better kinds than [value] to + extensible variants, so we're not worried about backwards compatibility if we + mark them as best here, and we want to be able to normalize them away *) + (* See Note [Quality of jkinds during inference] for more information about when + we mark jkinds as best *) + |> Jkind.mark_best + in + { decl with type_jkind } + | Type_record (lbls, rep, umc) -> let lbls, rep, type_jkind = update_record_kind decl.type_loc lbls rep in - let type_jkind, type_has_illegal_crossings = add_crossings type_jkind in - { decl with type_kind = Type_record (lbls, rep); - type_jkind; - type_has_illegal_crossings }, - type_jkind - (* CR layouts v3.0: remove this once [or_null] is [Variant_with_null]. + (* See Note [Quality of jkinds during inference] for more information about when we + mark jkinds as best *) + let type_jkind = Jkind.mark_best type_jkind in + { decl with type_kind = Type_record (lbls, rep, umc); type_jkind } + (* CR layouts v3.0: handle this case in [update_variant_jkind] when + [Variant_with_null] introduced. No updating required for [or_null_reexport], and we must not incorrectly override the jkind to [non_null]. *) - | Type_record_unboxed_product (lbls, rep) -> + | Type_record_unboxed_product (lbls, rep, umc) -> begin match rep with | Record_unboxed_product -> - let lbls, jkinds = + let lbls = List.map (fun (Types.{ld_type} as lbl) -> let jkind = Ctype.type_jkind env ld_type in (* This next line is guaranteed to be OK because of a call to [check_representable] *) let sort = Jkind.sort_of_jkind jkind in let ld_sort = Jkind.Sort.default_to_value_and_get sort in - {lbl with ld_sort}, jkind + {lbl with ld_sort} ) lbls - |> List.split in - let type_jkind = Jkind.Builtin.product ~why:Unboxed_record jkinds in - let type_jkind, type_has_illegal_crossings = - add_crossings type_jkind in - { decl with type_kind = Type_record_unboxed_product (lbls, rep); - type_jkind; - type_has_illegal_crossings }, - type_jkind + let type_jkind = + Jkind.for_unboxed_record + ~jkind_of_type:(Ctype.type_jkind env) + ~jkind_of_first_type:(fun () -> + match lbls with + | [lbl] -> Ctype.type_jkind env lbl.ld_type + | [] | _ :: _ :: _ -> Misc.fatal_error + "[for_unboxed_record] called [jkind_of_first_type] \ + for non-singleton record.") + lbls + in + (* See Note [Quality of jkinds during inference] for more information about when we + mark jkinds as best *) + let type_jkind = Jkind.mark_best type_jkind in + { decl with type_kind = Type_record_unboxed_product (lbls, rep, umc); + type_jkind } end | Type_variant _ when Builtin_attributes.has_or_null_reexport decl.type_attributes -> - decl, decl.type_jkind - | Type_variant (cstrs, rep) -> + decl + | Type_variant (cstrs, rep, umc) -> let cstrs, rep, type_jkind = update_variant_kind cstrs rep in - let type_jkind, type_has_illegal_crossings = add_crossings type_jkind in - { decl with type_kind = Type_variant (cstrs, rep); - type_jkind; - type_has_illegal_crossings }, - type_jkind + (* See Note [Quality of jkinds during inference] for more information about when we + mark jkinds as best *) + let type_jkind = Jkind.mark_best type_jkind in + { decl with type_kind = Type_variant (cstrs, rep, umc); type_jkind } in - (* check that the jkind computed from the kind matches the jkind - annotation, which was stored in decl.type_jkind *) - if new_jkind != decl.type_jkind then - (* CR layouts v2.8: Consider making a function that doesn't compute - histories for this use-case, which doesn't need it. *) - begin match Jkind.sub_jkind_l new_jkind decl.type_jkind with - | Ok _ -> () - | Error err -> - raise(Error(decl.type_loc, Jkind_mismatch_of_path (dpath,err))) - end; - new_decl - -let update_decls_jkind_reason decls = + (* Check the layout here, both to check it, but more importantly to fill in any sort + variables in the original decl's jkind, which might be shared with the jkinds of + other types in a (maybe mutually recursive) type declaration. See Note [Default + jkinds in transl_declaration]) *) + match + Jkind.Layout.sub new_decl.type_jkind.jkind.layout decl.type_jkind.jkind.layout + with + | Not_le -> + raise (Error ( + decl.type_loc, + Jkind_mismatch_of_path ( + Pident id, + Jkind.Violation.of_ (Not_a_subjkind (new_decl.type_jkind, decl.type_jkind))))) + | Less | Equal -> new_decl + +let update_decls_jkind_reason env decls = List.map (fun (id, decl) -> let update_generalized = Ctype.check_and_update_generalized_ty_jkind - ~name:id ~loc:decl.type_loc + ~name:id ~loc:decl.type_loc env in List.iter update_generalized decl.type_params; Btype.iter_type_expr_kind update_generalized decl.type_kind; @@ -1817,7 +1922,20 @@ let update_decls_jkind_reason decls = let update_decls_jkind env decls = List.map - (fun (id, decl) -> (id, update_decl_jkind env (Pident id) decl)) + (fun (id, decl) -> + let allow_any_crossing = + Builtin_attributes.has_unsafe_allow_any_mode_crossing decl.type_attributes + in + + (* Check that the attribute is valid, if set (unconditionally, for consistency). *) + if allow_any_crossing then begin + match decl.type_kind with + | Type_abstract _ | Type_open -> + raise(Error(decl.type_loc, Unsafe_mode_crossing_on_invalid_type_kind)) + | _ -> () + end; + + (id, decl.type_jkind, allow_any_crossing, update_decl_jkind env id decl)) decls @@ -2332,11 +2450,119 @@ let check_redefined_unit (td: Parsetree.type_declaration) = | _ -> () +<<<<<<< janestreet/merlin-jst:rae/with-kinds-roll let add_types_to_env decls shapes env = List.fold_right2 (fun (id, decl) shape env -> add_type ~long_path:false ~check:true ~shape id decl env) decls shapes env +||||||| ocaml-flambda/flambda-backend:df4a6e0ba4f74dc790e0ad79f15ea73be1225c4b +let add_types_to_env decls shapes env = + List.fold_right2 + (fun (id, decl) shape env -> + add_type ~check:true ~shape id decl env) + decls shapes env +======= + +(* Note [Quality of jkinds during inference] + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + We're careful during inference of jkinds for type declarations not to ever call + [Jkind.mark_best] on a jkind before we've added all the various pieces of information + to the jkind (the full layout, and all the with-bounds). Early in translation, we give + "dummy" kinds to types, without any with bounds, and have been careful not to mark + these as having a [Best] quality. Later on, in [update_decls_jkind], once we've learned + everything there is to know about a type declaration, we mark the new kind as [Best]. + It's important to do this /before/ [normalize_decl_jkinds], so that mutually recursive + type declarations can look up each others' (best, though perhaps not normalized!) + jkind. +*) + +(* Normalize the jkinds in a list of (potentially mutually recursive) type declarations *) +let normalize_decl_jkinds env shapes decls = + (* Add the types, with non-normalized kinds, to the environment to start, so that eg + types can look up their own (potentially non-normalized) kinds *) + let env = + List.fold_right2 + (fun (id, _, _, decl) shape env -> + add_type ~check:true ~shape id decl env) + decls shapes env + in + Misc.Stdlib.List.fold_left_map2 + (fun env (id, original_jkind, allow_any_crossing, decl) shape -> + let normalized_jkind = + Jkind.normalize + ~mode:Require_best + ~jkind_of_type:(fun ty -> Some (Ctype.type_jkind env ty)) + decl.type_jkind + in + let decl = { decl with type_jkind = normalized_jkind } in + (* Add the decl with the normalized kind back to the environment, so that later + kinds don't have to normalize this kind if they mention this type in their + with-bounds *) + let env = add_type ~check:false ~shape:shape id decl env in + if normalized_jkind != original_jkind then begin + (* If the jkind has changed, check that it is a subjkind of the original jkind + that we computed, either from a user-written annotation or as a dummy jkind. + + (see Note [Default jkinds in transl_declaration]) *) + (* CR layouts v2.8: it almost definitely has changed, but also we probably trust + the new jkind (we really only want this check here to check against the + user-written annotation). We might be able to do a better job here and save + some work. *) + let jkind_of_type ty = Some (Ctype.type_jkind_purely env ty) in + let type_equal = Ctype.type_equal env in + match + (* CR layouts v2.8: Consider making a function that doesn't compute + histories for this use-case, which doesn't need it. *) + Jkind.sub_jkind_l + ~type_equal + ~jkind_of_type + ~allow_any_crossing + decl.type_jkind + original_jkind + with + | Ok _ -> + if allow_any_crossing then + (* If the user is asking us to allow any crossing, we use the modal bounds from + the annotation rather than the modal bounds inferred from the type_kind. + However, we /only/ take the modal bounds, not the layout - because we still + want to be able to eg locally use a type declared as layout [any] as [value] + if that's its actual layout! *) + let type_jkind = + match + Jkind.unsafely_set_mod_bounds + ~from:original_jkind + decl.type_jkind + with + | Ok jkind -> jkind + | Error () -> + raise(Error(decl.type_loc, Unsafe_mode_crossing_with_with_bounds)) + in + let umc = + Some { modal_upper_bounds = + Jkind.get_modal_upper_bounds ~jkind_of_type type_jkind } + in + let type_kind = + match decl.type_kind with + | Type_abstract _ | Type_open -> assert false (* Checked above *) + | Type_record (lbls, rep, _) -> + Type_record (lbls, rep, umc) + | Type_record_unboxed_product (lbls, rep, _) -> + Type_record_unboxed_product (lbls, rep, umc) + | Type_variant (cs, rep, _) -> + Type_variant (cs, rep, umc) + in + env, (id, { decl with type_jkind; type_kind; }) + else env, (id, decl) + | Error err -> + raise(Error(decl.type_loc, Jkind_mismatch_of_path (Pident id, err))) + end + else env, (id, decl)) + env + decls + shapes +>>>>>>> ocaml-flambda/flambda-backend:main (* Translate a set of type declarations, mutually recursive or not *) let transl_type_decl env rec_flag sdecl_list = @@ -2518,14 +2744,17 @@ let transl_type_decl env rec_flag sdecl_list = (* Check that constraints are enforced *) List.iter2 (check_constraints new_env) sdecl_list decls; (* Add type properties to declarations *) - let decls = + let new_env, decls = try - decls - |> name_recursion_decls sdecl_list - |> Typedecl_variance.update_decls env sdecl_list - |> Typedecl_separability.update_decls env - |> update_decls_jkind new_env - |> update_decls_jkind_reason + let new_env, decls = + decls + |> name_recursion_decls sdecl_list + |> Typedecl_variance.update_decls env sdecl_list + |> Typedecl_separability.update_decls env + |> update_decls_jkind new_env + |> normalize_decl_jkinds new_env shapes + in + new_env, update_decls_jkind_reason new_env decls with | Typedecl_variance.Error (loc, err) -> raise (Error (loc, Variance err)) @@ -2654,7 +2883,7 @@ let transl_extension_constructor ~scope env type_path type_params List.iter2 (Ctype.unify env) decl.type_params tl; let lbls = match decl.type_kind with - | Type_record (lbls, Record_inlined _) -> lbls + | Type_record (lbls, Record_inlined _, _) -> lbls | _ -> assert false in Types.Cstr_record lbls @@ -3206,13 +3435,42 @@ let error_if_containing_unexpected_jkind prim cty ty = Primitive.prim_has_valid_reprs ~loc:cty.ctyp_loc prim; unexpected_layout_any_check prim cty ty +(* [@@@zero_alloc assert all] in signatures uses the apparent arity of each + declaration just by looking at the number of arrows in the type. If the type + is an alias to an arrow type, the apparent arity is zero, and the item won't + get any zero alloc checking. This is probably not the user's intent, so we + give a warning in that case. *) +let check_for_hidden_arrow env loc ty = + match !Clflags.zero_alloc_assert with + | Assert_all | Assert_all_opt -> + let check () = + begin match get_desc (Ctype.expand_head env ty) with + | Tarrow _ -> + let attr = + match !Clflags.zero_alloc_assert with + | Assert_all -> "all" + | Assert_all_opt -> "all_opt" + | Assert_default -> assert false + in + Location.prerr_warning loc (Warnings.Zero_alloc_all_hidden_arrow attr) + | _ -> () + end + in + if !Clflags.principal || Env.has_local_constraints env then + let snap = Btype.snapshot () in + check (); + Btype.backtrack snap + else + check() + | Assert_default -> () + (* Translate a value declaration *) let transl_value_decl env loc ~sig_modalities valdecl = let cty = Typetexp.transl_type_scheme env valdecl.pval_type in let modalities = match valdecl.pval_modalities with | [] -> sig_modalities - | l -> Typemode.transl_modalities ~maturity:Alpha Immutable + | l -> Typemode.transl_modalities ~maturity:Stable Immutable valdecl.pval_attributes l in let modalities = Mode.Modality.Value.of_const modalities in @@ -3237,18 +3495,38 @@ let transl_value_decl env loc ~sig_modalities valdecl = in let zero_alloc = Builtin_attributes.get_zero_alloc_attribute ~in_signature:true + ~on_application:false ~default_arity valdecl.pval_attributes in let zero_alloc = match zero_alloc with - | Default_zero_alloc -> Zero_alloc.default + | Default_zero_alloc -> + (* We fabricate a "Check" attribute if a top-level annotation + specifies that all functions should be checked for zero alloc. *) + if default_arity = 0 then begin + check_for_hidden_arrow env loc ty; + Zero_alloc.default + end else + let create_const ~opt = + Zero_alloc.create_const + (Check { strict = false; + arity = default_arity; + custom_error_msg = None; + loc; + opt }) + in + (match !Clflags.zero_alloc_assert with + | Assert_default -> Zero_alloc.default + | Assert_all -> create_const ~opt:false + | Assert_all_opt -> create_const ~opt:true) + | Ignore_assert_all -> Zero_alloc.ignore_assert_all | Check za -> if default_arity = 0 && za.arity <= 0 then raise (Error(valdecl.pval_loc, Zero_alloc_attr_non_function)); if za.arity <= 0 then raise (Error(valdecl.pval_loc, Zero_alloc_attr_bad_user_arity)); Zero_alloc.create_const zero_alloc - | Assume _ | Ignore_assert_all -> + | Assume _ -> raise (Error(valdecl.pval_loc, Zero_alloc_attr_unsupported zero_alloc)) in { val_type = ty; val_kind = Val_reg; Types.val_loc = loc; @@ -3303,7 +3581,7 @@ let transl_value_decl env loc ~sig_modalities valdecl = Env.enter_value ~mode:Mode.Value.legacy valdecl.pval_name.txt v env ~check:(fun s -> Warnings.Unused_value_declaration s) in - Ctype.check_and_update_generalized_ty_jkind ~name:id ~loc ty; + Ctype.check_and_update_generalized_ty_jkind ~name:id ~loc newenv ty; let desc = { val_id = id; @@ -3422,7 +3700,6 @@ let transl_with_constraint id ?fixed_row_path ~sig_env ~sig_decl ~outer_env type_attributes = sdecl.ptype_attributes; type_unboxed_default; type_uid = Uid.mk ~current_unit:(Env.get_unit_name ()); - type_has_illegal_crossings = false; } in Option.iter (fun p -> set_private_row env sdecl.ptype_loc p new_sig_decl) @@ -3462,7 +3739,6 @@ let transl_with_constraint id ?fixed_row_path ~sig_env ~sig_decl ~outer_env type_variance = new_type_variance; type_separability = new_type_separability; - type_has_illegal_crossings = false; } in { typ_id = id; @@ -3501,7 +3777,6 @@ let transl_package_constraint ~loc ty = type_attributes = []; type_unboxed_default = false; type_uid = Uid.mk ~current_unit:(Env.get_unit_name ()); - type_has_illegal_crossings = false; } (* Approximate a type declaration: just make all types abstract *) @@ -3524,7 +3799,6 @@ let abstract_type_decl ~injective ~jkind ~params = type_attributes = []; type_unboxed_default = false; type_uid = Uid.internal_not_actually_unique; - type_has_illegal_crossings = false; } end @@ -3535,9 +3809,17 @@ let approx_type_decl sdecl_list = let id = Ident.create_scoped ~scope sdecl.ptype_name.txt in let path = Path.Pident id in let injective = sdecl.ptype_kind <> Ptype_abstract in + let transl_type sty = + Misc.fatal_errorf + "@[I do not yet know how to deal with [with]-types (such as %a)@ in \ + recursive modules. Please contact the Jane Street OCaml Language@ \ + team for help if you see this." + Pprintast.core_type sty + in let jkind = Jkind.of_type_decl_default ~context:(Type_declaration path) + ~transl_type ~default:(Jkind.Builtin.value ~why:Default_type_jkind) sdecl in @@ -3560,7 +3842,15 @@ let check_recmod_typedecl env loc recmod_ids path decl = check_regularity ~abs_env:env env loc path decl to_check; (* additional coherence check, as one might build an incoherent signature, and use it to build an incoherent module, cf. #7851 *) - ignore (check_coherence env loc path decl) + (* Call [check_kind_coherence] rather than [check_coherence] here, which + avoids a call to [narrow_to_manifest_jkind]. That call sometimes spuriously fails on + valid programs (see test 14 in testsuite/tests/typing-jkind-bounds/basics.ml). This + isn't sound, but this check is already unsound otherwise (see issue #13765)! And not + performing this check on the jkinds is no less sound than what already exists. So + instead of fixing the spurious failures, we choose to just not perform the check, + with the intention of fixing the jkind soundness issue once the other soundness issue + is resolved. *) + ignore (check_kind_coherence env loc path decl) (**** Error report ****) @@ -3783,7 +4073,7 @@ let report_error ppf = function | Unbound_type_var (ty, decl) -> fprintf ppf "@[A type variable is unbound in this type declaration"; begin match decl.type_kind, decl.type_manifest with - | Type_variant (tl, _rep), _ -> + | Type_variant (tl, _rep, _), _ -> explain_unbound_gen ppf ty tl (fun c -> let tl = tys_of_constr_args c.Types.cd_args in Btype.newgenty (Ttuple (List.map (fun t -> None, t) tl)) @@ -3792,10 +4082,10 @@ let report_error ppf = function fprintf ppf "%a of %a" Printtyp.ident c.Types.cd_id Printtyp.constructor_arguments c.Types.cd_args) - | Type_record (tl, _), _ -> + | Type_record (tl, _, _), _ -> explain_unbound ppf ty tl (fun l -> l.Types.ld_type) "field" (fun l -> Ident.name l.Types.ld_id ^ ": ") - | Type_record_unboxed_product (tl, _), _ -> + | Type_record_unboxed_product (tl, _, _), _ -> explain_unbound ppf ty tl (fun l -> l.Types.ld_type) "unboxed record field" (fun l -> Ident.name l.Types.ld_id ^ ": ") | Type_abstract _, Some ty' -> @@ -4123,6 +4413,19 @@ let report_error ppf = function "@[Invalid reexport declaration.\ @ Type %s must not define an explicit representation.@]" (Path.name definition) + | Unsafe_mode_crossing_on_invalid_type_kind -> + fprintf ppf + "@[[%@%@unsafe_allow_any_mode_crossing] is not allowed on this kind of \ + type declaration.@ Only records, unboxed products, and variants are \ + supported.@]" + | Unsafe_mode_crossing_with_with_bounds -> + fprintf ppf + "@[[%@%@unsafe_allow_any_mode_crossing] is not allowed with a kind \ + annotation containing with-bounds.@]" + | Illegal_baggage jkind -> + fprintf ppf + "@[Illegal %a in kind annotation of an abbreviation:@ %a@]" + Style.inline_code "with" Jkind.format jkind let () = Location.register_error_of_exn diff --git a/src/ocaml/typing/typedecl.mli b/src/ocaml/typing/typedecl.mli index 1a1555a9d..fa75290eb 100644 --- a/src/ocaml/typing/typedecl.mli +++ b/src/ocaml/typing/typedecl.mli @@ -182,6 +182,9 @@ type error = ; expected: Path.t } | Non_abstract_reexport of Path.t + | Unsafe_mode_crossing_on_invalid_type_kind + | Unsafe_mode_crossing_with_with_bounds + | Illegal_baggage of jkind_l exception Error of Location.t * error diff --git a/src/ocaml/typing/typedecl_separability.ml b/src/ocaml/typing/typedecl_separability.ml index 829a4573c..5cde9c1de 100644 --- a/src/ocaml/typing/typedecl_separability.ml +++ b/src/ocaml/typing/typedecl_separability.ml @@ -60,7 +60,7 @@ let structure : type_definition -> type_structure = fun def -> | (Type_record _ | Type_record_unboxed_product _ | Type_variant _), Some ty -> let params = match def.type_kind with - | Type_variant ([{cd_res = Some ret_type}], _) -> + | Type_variant ([{cd_res = Some ret_type}], _, _) -> begin match get_desc ret_type with | Tconstr (_, tyl, _) -> tyl | _ -> assert false @@ -482,8 +482,9 @@ let msig_of_external_type env decl = Result.is_error (Ctype.check_decl_jkind env decl (Jkind.Builtin.value_or_null ~why:Separability_check)) in + let jkind_of_type = Ctype.type_jkind_purely_if_principal env in let is_external = - match Jkind.get_externality_upper_bound decl.type_jkind with + match Jkind.get_externality_upper_bound ~jkind_of_type decl.type_jkind with | Internal -> false | External | External64 -> true in diff --git a/src/ocaml/typing/typedecl_variance.ml b/src/ocaml/typing/typedecl_variance.ml index 54dcb11b2..2a341a105 100644 --- a/src/ocaml/typing/typedecl_variance.ml +++ b/src/ocaml/typing/typedecl_variance.ml @@ -326,7 +326,7 @@ let compute_variance_decl env ~check decl (required, _ as rloc) = match decl.type_kind with Type_abstract _ | Type_open -> compute_variance_type env ~check rloc decl mn - | Type_variant (tll,_rep) -> + | Type_variant (tll,_rep, _umc) -> if List.for_all (fun c -> c.Types.cd_res = None) tll then compute_variance_type env ~check rloc decl (mn @ List.flatten (List.map (fun c -> for_constr c.Types.cd_args) @@ -351,11 +351,11 @@ let compute_variance_decl env ~check decl (required, _ as rloc) = List.fold_left (List.map2 Variance.union) vari rem | _ -> assert false end - | Type_record (ftl, _) -> + | Type_record (ftl, _, _) -> compute_variance_type env ~check rloc decl (mn @ List.map (fun {Types.ld_mutable; ld_type} -> (Types.is_mutable ld_mutable, ld_type)) ftl) - | Type_record_unboxed_product (ftl, _) -> + | Type_record_unboxed_product (ftl, _, _) -> compute_variance_type env ~check rloc decl (mn @ List.map (fun {Types.ld_mutable; ld_type} -> (Types.is_mutable ld_mutable, ld_type)) ftl) diff --git a/src/ocaml/typing/typedtree.ml b/src/ocaml/typing/typedtree.ml index 5db200a08..89bb6bffc 100644 --- a/src/ocaml/typing/typedtree.ml +++ b/src/ocaml/typing/typedtree.ml @@ -1209,14 +1209,21 @@ let let_bound_idents_with_modes_sorts_and_checks bindings = function - if it remains [Default_zero_alloc], translcore adds the check. *) let arity = function_arity fn.params fn.body in - if !Clflags.zero_alloc_check_assert_all && arity > 0 then - Zero_alloc.create_const - (Check { strict = false; - arity; - loc = Location.none; - opt = false }) - else + if arity <= 0 then fn.zero_alloc + else + let create_const ~opt = + Zero_alloc.create_const + (Check { strict = false; + arity; + custom_error_msg = None; + loc = Location.none; + opt }) + in + (match !Clflags.zero_alloc_assert with + | Assert_default -> fn.zero_alloc + | Assert_all -> create_const ~opt:false + | Assert_all_opt -> create_const ~opt:true) | Ignore_assert_all | Check _ | Assume _ -> fn.zero_alloc in Ident.Map.add id zero_alloc checks diff --git a/src/ocaml/typing/typemod.ml b/src/ocaml/typing/typemod.ml index 625026444..c6c4d9fb4 100644 --- a/src/ocaml/typing/typemod.ml +++ b/src/ocaml/typing/typemod.ml @@ -701,7 +701,6 @@ let merge_constraint initial_env loc sg lid constr = type_attributes = []; type_unboxed_default = false; type_uid = Uid.mk ~current_unit:(Env.get_unit_name ()); - type_has_illegal_crossings = false; } and id_row = Ident.create_local (s^"#row") in let initial_env = @@ -760,23 +759,12 @@ let merge_constraint initial_env loc sg lid constr = the declaration from the original signature. Note that this is also checked in [check_type_decl], but there it is check, not constrain, which we need here to deal with type variables in package constraints - (see tests in [typing-modules/package_constraint.ml]). *) - begin match - Ctype.constrain_decl_jkind initial_env tdecl sig_decl.type_jkind - with - | Ok _-> () - | Error v -> - (* This is morally part of the below [check_type_decl], so we give the - same error that would be given there for good error messages. *) - let err = - Includemod.Error.In_Type_declaration( - id, Type_declarations - {got=tdecl; - expected=sig_decl; - symptom=Includecore.Jkind v}) - in - raise Includemod.(Error(initial_env, err)) - end; + (see tests in [typing-modules/package_constraint.ml]). Because the + check is repeated later -- and with better handling for errors -- we + just drop any error here. *) + ignore + (* CR layouts v2.8: Does this type_jkind need to be instantiated? *) + (Ctype.constrain_decl_jkind initial_env tdecl sig_decl.type_jkind); check_type_decl outer_sig_env sg_for_env loc id None tdecl sig_decl; let tdecl = { tdecl with type_manifest = None } in return ~ghosts ~replace_by:(Some(Sig_type(id, tdecl, rs, priv))) @@ -1052,7 +1040,7 @@ let apply_pmd_modalities env sig_modalities pmd_modalities mty = match pmd_modalities with | [] -> sig_modalities | _ :: _ -> - Typemode.transl_modalities ~maturity:Alpha Immutable [] pmd_modalities + Typemode.transl_modalities ~maturity:Stable Immutable [] pmd_modalities in (* Workaround for pmd_modalities @@ -1258,7 +1246,7 @@ and approx_sig_items env ssg= | [] -> sg | _ -> let modalities = - Typemode.transl_modalities ~maturity:Alpha Immutable [] moda + Typemode.transl_modalities ~maturity:Stable Immutable [] moda in let recursive = not @@ Builtin_attributes.has_attribute "no_recursive_modalities" attrs @@ -1618,7 +1606,7 @@ let transl_modtype_longident loc env lid = Env.lookup_modtype_path ~loc lid env let transl_module_alias loc env lid = - let path, _ = Env.lookup_module_path ~lock:false ~load:false ~loc lid env in + let path, _ = Env.lookup_module_path ~load:false ~loc lid env in path let mkmty desc typ env loc attrs = @@ -1767,7 +1755,7 @@ and transl_signature ?(keep_warnings = false) env sig_acc {psg_items; psg_modali let names = Signature_names.create () in let sig_modalities = - Typemode.transl_modalities ~maturity:Alpha Immutable [] psg_modalities + Typemode.transl_modalities ~maturity:Stable Immutable [] psg_modalities in let transl_include ~loc env sig_acc sincl modalities = @@ -1793,7 +1781,7 @@ and transl_signature ?(keep_warnings = false) env sig_acc {psg_items; psg_modali match modalities with | [] -> sig_modalities | _ -> - Typemode.transl_modalities ~maturity:Alpha Immutable [] modalities + Typemode.transl_modalities ~maturity:Stable Immutable [] modalities in let sg = if not @@ Mode.Modality.Value.Const.is_id modalities then @@ -2594,7 +2582,7 @@ let simplify_app_summary app_view = match app_view.arg with | false, None -> Includemod.Error.Anonymous, mty let maybe_infer_modalities ~loc ~env ~md_mode ~mode = - if Language_extension.(is_at_least Mode Alpha) then begin + if Language_extension.(is_at_least Mode Stable) then begin (* Values are packed into a structure at modes weaker than they actually are. This is to allow our legacy zapping behavior. For example: @@ -2645,21 +2633,60 @@ let rec type_module ?(alias=false) sttn funct_body anchor env smod = str_items = []; str_type = []; str_final_env = env; +<<<<<<< janestreet/merlin-jst:rae/with-kinds-roll }; mod_type = Mty_signature []; mod_env = env; mod_attributes = Msupport.flush_saved_types () @ smod.pmod_attributes; mod_loc = smod.pmod_loc }, Shape.dummy_mod +||||||| ocaml-flambda/flambda-backend:df4a6e0ba4f74dc790e0ad79f15ea73be1225c4b + Mode.Modality.Value.id + end + +let rec type_module ?(alias=false) sttn funct_body anchor env smod = + Builtin_attributes.warning_scope smod.pmod_attributes + (fun () -> type_module_aux ~alias sttn funct_body anchor env smod) +======= + Mode.Modality.Value.id + end + +type alias = + | No : alias + (** The module is in a context that doesn't treat aliases specially. *) + | Yes_hold_locks : alias + (** The module is in a context that treat alias specially. If it is indeed an + alias, the caller will hold the locks in the alias, and walk them when + later the alias is used for its content. *) + | Yes_walk_locks : alias + (** The module is in a context that treat alias specially. However, the caller + doesn't want to hold the locks, and therefore the locks must be eagerly + walked. *) + +let is_alias = function + | No -> false + | Yes_walk_locks | Yes_hold_locks -> true + +let rec type_module ?(alias=false) sttn funct_body anchor env smod = + let alias = if alias then Yes_walk_locks else No in + let md, shape, locks = + type_module_maybe_hold_locks ~alias sttn funct_body anchor env smod + in + assert (Env.locks_is_empty locks); + md, shape + +and type_module_maybe_hold_locks ~alias sttn funct_body anchor env smod = + Builtin_attributes.warning_scope smod.pmod_attributes + (fun () -> type_module_aux ~alias sttn funct_body anchor env smod) +>>>>>>> ocaml-flambda/flambda-backend:main and type_module_aux ~alias sttn funct_body anchor env smod = match smod.pmod_desc with Pmod_ident lid -> - let path, mode = - Env.lookup_module_path ~load:(not alias) ~loc:smod.pmod_loc lid.txt env + let path, locks = + Env.lookup_module_path ~load:(not @@ is_alias alias) ~loc:smod.pmod_loc lid.txt env in - Mode.Value.submode_exn mode Mode.Value.legacy; - type_module_path_aux ~alias sttn env path lid smod + type_module_path_aux ~alias sttn env path locks lid smod | Pmod_structure sstr -> let (str, sg, names, shape, _finalenv) = type_structure funct_body anchor env [] sstr in @@ -2671,9 +2698,12 @@ and type_module_aux ~alias sttn funct_body anchor env smod = mod_loc = smod.pmod_loc } in let sg' = Signature_names.simplify _finalenv names sg in - if List.length sg' = List.length sg then md, shape else - wrap_constraint_with_shape env false md - (Mty_signature sg') shape Tmodtype_implicit + let md, shape = + if List.length sg' = List.length sg then md, shape else + wrap_constraint_with_shape env false md + (Mty_signature sg') shape Tmodtype_implicit + in + md, shape, Env.locks_empty | Pmod_functor(arg_opt, sbody) -> let t_arg, ty_arg, newenv, funct_shape_param, funct_body = match arg_opt with @@ -2713,13 +2743,28 @@ and type_module_aux ~alias sttn funct_body anchor env smod = mod_env = env; mod_attributes = smod.pmod_attributes; mod_loc = smod.pmod_loc }, - Shape.abs funct_shape_param body_shape + Shape.abs funct_shape_param body_shape, Env.locks_empty | Pmod_apply _ | Pmod_apply_unit _ -> - type_application smod.pmod_loc sttn funct_body env smod + let md, shape = type_application smod.pmod_loc sttn funct_body env smod in + md, shape, Env.locks_empty | Pmod_constraint(sarg, smty, smode) -> check_no_modal_modules ~env smode; let smty = Option.get smty in +<<<<<<< janestreet/merlin-jst:rae/with-kinds-roll let arg, arg_shape = type_module ~alias true funct_body anchor env sarg in +||||||| ocaml-flambda/flambda-backend:df4a6e0ba4f74dc790e0ad79f15ea73be1225c4b + let arg, arg_shape = type_module ~alias true funct_body anchor env sarg in + let mty = transl_modtype env smty in + let md, final_shape = + wrap_constraint_with_shape env true arg mty.mty_type arg_shape +======= + let arg, arg_shape, locks = + type_module_maybe_hold_locks ~alias true funct_body anchor env sarg + in + let mty = transl_modtype env smty in + let md, final_shape = + wrap_constraint_with_shape env true arg mty.mty_type arg_shape +>>>>>>> ocaml-flambda/flambda-backend:main begin try let mty = transl_modtype env smty in let md, final_shape = @@ -2744,9 +2789,21 @@ and type_module_aux ~alias sttn funct_body anchor env smod = mod_env = env; mod_attributes = sarg.pmod_attributes; }, +<<<<<<< janestreet/merlin-jst:rae/with-kinds-roll Shape.dummy_mod | _ -> raise exn end +||||||| ocaml-flambda/flambda-backend:df4a6e0ba4f74dc790e0ad79f15ea73be1225c4b + mod_loc = smod.pmod_loc; + mod_attributes = smod.pmod_attributes; + }, + final_shape +======= + mod_loc = smod.pmod_loc; + mod_attributes = smod.pmod_attributes; + }, + final_shape, locks +>>>>>>> ocaml-flambda/flambda-backend:main | Pmod_unpack sexp -> let exp = Ctype.with_local_level_if_principal @@ -2780,6 +2837,7 @@ and type_module_aux ~alias sttn funct_body anchor env smod = mod_env = env; mod_attributes = smod.pmod_attributes; mod_loc = smod.pmod_loc }, +<<<<<<< janestreet/merlin-jst:rae/with-kinds-roll Shape.leaf_for_unpack | Pmod_extension ({ txt; _ }, _) when txt = Ast_helper.hole_txt -> { mod_desc = Tmod_typed_hole; @@ -2788,26 +2846,42 @@ and type_module_aux ~alias sttn funct_body anchor env smod = mod_attributes = smod.pmod_attributes; mod_loc = smod.pmod_loc }, Shape.dummy_mod +||||||| ocaml-flambda/flambda-backend:df4a6e0ba4f74dc790e0ad79f15ea73be1225c4b + Shape.leaf_for_unpack +======= + Shape.leaf_for_unpack, Env.locks_empty +>>>>>>> ocaml-flambda/flambda-backend:main | Pmod_extension ext -> raise (Error_forward (Builtin_attributes.error_of_extension ext)) | Pmod_instance glob -> Language_extension.assert_enabled ~loc:smod.pmod_loc Instances (); let glob = instance_name ~loc:smod.pmod_loc env glob in - let path, mode = - Env.lookup_module_instance_path ~load:(not alias) ~loc:smod.pmod_loc + let path, locks = + Env.lookup_module_instance_path ~load:(not @@ is_alias alias) ~loc:smod.pmod_loc glob env in - Mode.Value.submode_exn mode Mode.Value.legacy; let lid = (* Only used by [untypeast] *) let name = Format.asprintf "*instance %a*" Global_module.Name.print glob in - Lident name |> Location.mknoloc + Location.(mkloc (Lident name) (ghostify smod.pmod_loc)) in - type_module_path_aux ~alias sttn env path lid smod - -and type_module_path_aux ~alias sttn env path lid smod = + type_module_path_aux ~alias sttn env path locks lid smod + +and type_module_path_aux ~alias sttn env path locks (lid : _ loc) smod = + let locks = + match alias with + | Yes_hold_locks -> locks + | No | Yes_walk_locks -> + let vmode = + Env.walk_locks ~loc:lid.loc ~env ~item:Module ~lid:lid.txt + Mode.Value.(legacy |> disallow_right) None locks + in + Mode.Value.submode_exn vmode.mode Mode.Value.legacy; + Env.locks_empty + in + let alias = is_alias alias in let md = { mod_desc = Tmod_ident (path, lid); mod_type = Mty_alias path; mod_env = env; @@ -2839,7 +2913,7 @@ and type_module_path_aux ~alias sttn env path lid smod = { md with mod_type = mty } end in - md, shape + md, shape, locks and type_application loc strengthen funct_body env smod = let rec extract_application funct_body env sargs smod = @@ -3193,7 +3267,9 @@ and type_structure ?(toplevel = None) ?(keep_warnings = false) funct_body anchor | Assume { strict; arity; loc; never_returns_normally = _; never_raises = _} -> - Zero_alloc.create_const (Check { strict; arity; loc; opt = false }) + Zero_alloc.create_const + (Check { strict; arity; loc; opt = false; + custom_error_msg = None; }) | Ignore_assert_all -> Zero_alloc.default in let (first_loc, _, _) = List.hd id_info in @@ -3563,7 +3639,8 @@ let type_toplevel_phrase env sig_acc s = Typecore.optimise_allocations (); (str, sg, (* to_remove_from_sg, *) shape, env) -let type_module_alias = type_module ~alias:true true false None +let type_module_alias = + type_module_maybe_hold_locks ~alias:Yes_hold_locks true false None let type_module = type_module true false None let merlin_type_structure env sig_acc str = @@ -3750,18 +3827,6 @@ let () = type_module_type_of_fwd := type_module_type_of -(* File-level details *) - -let register_params params = - List.iter - (fun param_name -> - (* We don't (yet!) support parameterised parameters *) - let param = Global_module.Name.create_no_args param_name in - Env.register_parameter param - ) - params - - (* Typecheck an implementation file *) (* let gen_annot target annots = @@ -3849,7 +3914,18 @@ let type_implementation target modulename initial_env ast = ignore @@ Warnings.parse_options false "-32-34-37-38-60"; if !Clflags.as_parameter then error Cannot_compile_implementation_as_parameter; +<<<<<<< janestreet/merlin-jst:rae/with-kinds-roll + register_params !Clflags.parameters; +||||||| ocaml-flambda/flambda-backend:df4a6e0ba4f74dc790e0ad79f15ea73be1225c4b register_params !Clflags.parameters; + let (str, sg, names, shape, finalenv) = + Profile.record_call "infer" (fun () -> + type_structure initial_env ast) in +======= + let (str, sg, names, shape, finalenv) = + Profile.record_call "infer" (fun () -> + type_structure initial_env ast) in +>>>>>>> ocaml-flambda/flambda-backend:main let (str, sg, names, shape, finalenv) = type_structure initial_env ast in let uid = Uid.of_compilation_unit_id modulename in let shape = Shape.set_uid_if_none shape uid in @@ -4029,7 +4105,6 @@ let type_interface ~sourcefile modulename env ast = if !Clflags.as_parameter && !Clflags.parameters <> [] then begin error Compiling_as_parameterised_parameter end; - register_params !Clflags.parameters; if !Clflags.binary_annotations_cms then begin let uid = Shape.Uid.of_compilation_unit_id modulename in cms_register_toplevel_signature_attributes ~uid ~sourcefile ast diff --git a/src/ocaml/typing/typemode.ml b/src/ocaml/typing/typemode.ml index 474f7e524..b8ec36840 100644 --- a/src/ocaml/typing/typemode.ml +++ b/src/ocaml/typing/typemode.ml @@ -25,25 +25,32 @@ exception Error of Location.t * error module Axis_pair = struct type 'm t = - | Modal_axis_pair : 'a Axis.Modal.t * 'a -> modal t + | Modal_axis_pair : ('m, 'a, 'd) Mode.Alloc.axis * 'a -> modal t | Any_axis_pair : 'a Axis.t * 'a -> maybe_nonmodal t let of_string s = let open Mode in match s with - | "local" -> Any_axis_pair (Modal Locality, Locality.Const.Local) - | "global" -> Any_axis_pair (Modal Locality, Locality.Const.Global) - | "unique" -> Any_axis_pair (Modal Uniqueness, Uniqueness.Const.Unique) - | "aliased" -> Any_axis_pair (Modal Uniqueness, Uniqueness.Const.Aliased) - | "once" -> Any_axis_pair (Modal Linearity, Linearity.Const.Once) - | "many" -> Any_axis_pair (Modal Linearity, Linearity.Const.Many) + | "local" -> Any_axis_pair (Modal (Comonadic Areality), Locality.Const.Local) + | "global" -> + Any_axis_pair (Modal (Comonadic Areality), Locality.Const.Global) + | "unique" -> + Any_axis_pair (Modal (Monadic Uniqueness), Uniqueness.Const.Unique) + | "aliased" -> + Any_axis_pair (Modal (Monadic Uniqueness), Uniqueness.Const.Aliased) + | "once" -> Any_axis_pair (Modal (Comonadic Linearity), Linearity.Const.Once) + | "many" -> Any_axis_pair (Modal (Comonadic Linearity), Linearity.Const.Many) | "nonportable" -> - Any_axis_pair (Modal Portability, Portability.Const.Nonportable) - | "portable" -> Any_axis_pair (Modal Portability, Portability.Const.Portable) - | "contended" -> Any_axis_pair (Modal Contention, Contention.Const.Contended) - | "shared" -> Any_axis_pair (Modal Contention, Contention.Const.Shared) + Any_axis_pair + (Modal (Comonadic Portability), Portability.Const.Nonportable) + | "portable" -> + Any_axis_pair (Modal (Comonadic Portability), Portability.Const.Portable) + | "contended" -> + Any_axis_pair (Modal (Monadic Contention), Contention.Const.Contended) + | "shared" -> + Any_axis_pair (Modal (Monadic Contention), Contention.Const.Shared) | "uncontended" -> - Any_axis_pair (Modal Contention, Contention.Const.Uncontended) + Any_axis_pair (Modal (Monadic Contention), Contention.Const.Uncontended) | "maybe_null" -> Any_axis_pair (Nonmodal Nullability, Nullability.Maybe_null) | "non_null" -> Any_axis_pair (Nonmodal Nullability, Nullability.Non_null) @@ -51,35 +58,48 @@ module Axis_pair = struct | "external64" -> Any_axis_pair (Nonmodal Externality, Externality.External64) | "external_" -> Any_axis_pair (Nonmodal Externality, Externality.External) - | "yielding" -> Any_axis_pair (Modal Yielding, Yielding.Const.Yielding) - | "unyielding" -> Any_axis_pair (Modal Yielding, Yielding.Const.Unyielding) + | "yielding" -> + Any_axis_pair (Modal (Comonadic Yielding), Yielding.Const.Yielding) + | "unyielding" -> + Any_axis_pair (Modal (Comonadic Yielding), Yielding.Const.Unyielding) | _ -> raise Not_found end let transl_annot (type m) ~(annot_type : m annot_type) ~required_mode_maturity - annot : m Axis_pair.t = + annot : m Axis_pair.t Location.loc = Option.iter (fun maturity -> Language_extension.assert_enabled ~loc:annot.loc Mode maturity) required_mode_maturity; - match Axis_pair.of_string annot.txt, annot_type with - | Any_axis_pair (Nonmodal _, _), (Mode | Modality) | (exception Not_found) -> - raise (Error (annot.loc, Unrecognized_modifier (annot_type, annot.txt))) - | Any_axis_pair (Modal axis, mode), Mode -> Modal_axis_pair (axis, mode) - | Any_axis_pair (Modal axis, mode), Modality -> Modal_axis_pair (axis, mode) - | pair, Modifier -> pair + let pair : m Axis_pair.t = + match Axis_pair.of_string annot.txt, annot_type with + | Any_axis_pair (Nonmodal _, _), (Mode | Modality) | (exception Not_found) + -> + raise (Error (annot.loc, Unrecognized_modifier (annot_type, annot.txt))) + | Any_axis_pair (Modal axis, mode), Mode -> Modal_axis_pair (axis, mode) + | Any_axis_pair (Modal axis, mode), Modality -> Modal_axis_pair (axis, mode) + | pair, Modifier -> pair + in + { txt = pair; loc = annot.loc } let unpack_mode_annot { txt = Parsetree.Mode s; loc } = { txt = s; loc } -module Opt_axis_collection = Axis_collection (Option) +module Transled_modifier = struct + type 'a t = 'a Location.loc option + + let drop_loc modifier = Option.map Location.get_txt modifier +end + +module Transled_modifiers = + Jkind_axis.Axis_collection.Indexed (Transled_modifier) let transl_modifier_annots annots = let step modifiers_so_far annot = - let (Any_axis_pair (type a) ((axis, mode) : a Axis.t * a)) = + let { txt = Any_axis_pair (type a) ((axis, mode) : a Axis.t * a); loc } = transl_annot ~annot_type:Modifier ~required_mode_maturity:None @@ unpack_mode_annot annot in - let (module A : Axis_s with type t = a) = Axis.get axis in + let (module A) = Axis.get axis in let is_top = A.le A.max mode in if is_top then @@ -89,37 +109,41 @@ let transl_modifier_annots annots = (* Location.prerr_warning new_raw.loc (Warnings.Mod_by_top new_raw.txt) *) (); let is_dup = - Option.is_some (Opt_axis_collection.get ~axis modifiers_so_far) + Option.is_some (Transled_modifiers.get ~axis modifiers_so_far) in if is_dup then raise (Error (annot.loc, Duplicated_axis axis)); - Opt_axis_collection.set ~axis modifiers_so_far (Some mode) + Transled_modifiers.set ~axis modifiers_so_far (Some { txt = mode; loc }) in let empty_modifiers = - Opt_axis_collection.create { f = (fun ~axis:_ -> None) } + Transled_modifiers.Create.f { f = (fun ~axis:_ -> None) } in List.fold_left step empty_modifiers annots let transl_mode_annots annots : Alloc.Const.Option.t = let step modifiers_so_far annot = - let (Modal_axis_pair (type a) ((axis, mode) : a Axis.Modal.t * a)) = + let { txt = + Modal_axis_pair (type m a d) + ((axis, mode) : (m, a, d) Mode.Alloc.axis * a); + loc + } = transl_annot ~annot_type:Mode ~required_mode_maturity:(Some Stable) @@ unpack_mode_annot annot in let axis = Axis.Modal axis in - if Option.is_some (Opt_axis_collection.get ~axis modifiers_so_far) + if Option.is_some (Transled_modifiers.get ~axis modifiers_so_far) then raise (Error (annot.loc, Duplicated_axis axis)); - Opt_axis_collection.set ~axis modifiers_so_far (Some mode) + Transled_modifiers.set ~axis modifiers_so_far (Some { txt = mode; loc }) in let empty_modifiers = - Opt_axis_collection.create { f = (fun ~axis:_ -> None) } + Transled_modifiers.Create.f { f = (fun ~axis:_ -> None) } in let modes = List.fold_left step empty_modifiers annots in - { areality = modes.locality; - linearity = modes.linearity; - uniqueness = modes.uniqueness; - portability = modes.portability; - contention = modes.contention; - yielding = modes.yielding + { areality = Transled_modifier.drop_loc modes.locality; + linearity = Transled_modifier.drop_loc modes.linearity; + uniqueness = Transled_modifier.drop_loc modes.uniqueness; + portability = Transled_modifier.drop_loc modes.portability; + contention = Transled_modifier.drop_loc modes.contention; + yielding = Transled_modifier.drop_loc modes.yielding } let untransl_mode_annots ~loc (modes : Mode.Alloc.Const.Option.t) = @@ -147,19 +171,19 @@ let transl_modality ~maturity { txt = Parsetree.Modality modality; loc } = transl_annot ~annot_type:Modality ~required_mode_maturity:(Some maturity) { txt = modality; loc } in - match axis_pair with - | Modal_axis_pair (Locality, mode) -> + match axis_pair.txt with + | Modal_axis_pair (Comonadic Areality, mode) -> Modality.Atom (Comonadic Areality, Meet_with (Const.locality_as_regionality mode)) - | Modal_axis_pair (Linearity, mode) -> + | Modal_axis_pair (Comonadic Linearity, mode) -> Modality.Atom (Comonadic Linearity, Meet_with mode) - | Modal_axis_pair (Uniqueness, mode) -> - Modality.Atom (Monadic Uniqueness, Join_with mode) - | Modal_axis_pair (Portability, mode) -> + | Modal_axis_pair (Comonadic Portability, mode) -> Modality.Atom (Comonadic Portability, Meet_with mode) - | Modal_axis_pair (Contention, mode) -> + | Modal_axis_pair (Monadic Uniqueness, mode) -> + Modality.Atom (Monadic Uniqueness, Join_with mode) + | Modal_axis_pair (Monadic Contention, mode) -> Modality.Atom (Monadic Contention, Join_with mode) - | Modal_axis_pair (Yielding, mode) -> + | Modal_axis_pair (Comonadic Yielding, mode) -> Modality.Atom (Comonadic Yielding, Meet_with mode) let untransl_modality (a : Modality.t) : Parsetree.modality loc = diff --git a/src/ocaml/typing/typemode.mli b/src/ocaml/typing/typemode.mli index 96fdd145b..eb8b3cc8c 100644 --- a/src/ocaml/typing/typemode.mli +++ b/src/ocaml/typing/typemode.mli @@ -30,7 +30,13 @@ val untransl_modalities : Mode.Modality.Value.Const.t -> Parsetree.modalities +module Transled_modifier : sig + type 'a t = 'a Location.loc option +end + +module Transled_modifiers : + module type of Jkind_axis.Axis_collection.Indexed (Transled_modifier) + (** Interpret a list of modifiers. A "modifier" is any keyword coming after a `mod` in a jkind *) -val transl_modifier_annots : - Parsetree.modes -> Jkind_axis.Axis_collection(Option).t +val transl_modifier_annots : Parsetree.modes -> Transled_modifiers.t diff --git a/src/ocaml/typing/typeopt.ml b/src/ocaml/typing/typeopt.ml index e89ba5945..8fbfc9bfc 100644 --- a/src/ocaml/typing/typeopt.ml +++ b/src/ocaml/typing/typeopt.ml @@ -294,9 +294,12 @@ let bigarray_specialize_kind_and_layout env ~kind ~layout typ = | _ -> (kind, layout) -let value_kind_of_value_jkind jkind = +let value_kind_of_value_jkind env jkind = let layout = Jkind.get_layout_defaulting_to_value jkind in - let externality_upper_bound = Jkind.get_externality_upper_bound jkind in + (* In other places, we use [Ctype.type_jkind_purely_if_principal]. Here, we omit + the principality check, as we're just trying to compute optimizations. *) + let jkind_of_type ty = Some (Ctype.type_jkind_purely env ty) in + let externality_upper_bound = Jkind.get_externality_upper_bound ~jkind_of_type jkind in match layout, externality_upper_bound with | Base Value, External -> Pintval | Base Value, External64 -> @@ -467,34 +470,34 @@ let rec value_kind env ~loc ~visited ~depth ~num_nodes_visited ty in if cannot_proceed () then num_nodes_visited, - mk_nn (value_kind_of_value_jkind decl.type_jkind) + mk_nn (value_kind_of_value_jkind env decl.type_jkind) else let visited = Numbers.Int.Set.add (get_id ty) visited in (* Default of [Pgenval] is currently safe for the missing cmi fallback in the case of @@unboxed variant and records, due to the precondition of [value_kind]. *) match decl.type_kind with - | Type_variant (cstrs, rep) -> + | Type_variant (cstrs, rep, _) -> fallback_if_missing_cmi ~default:(num_nodes_visited, mk_nn Pgenval) (fun () -> value_kind_variant env ~loc ~visited ~depth ~num_nodes_visited cstrs rep) - | Type_record (labels, rep) -> + | Type_record (labels, rep, _) -> let depth = depth + 1 in fallback_if_missing_cmi ~default:(num_nodes_visited, mk_nn Pgenval) (fun () -> value_kind_record env ~loc ~visited ~depth ~num_nodes_visited labels rep) - | Type_record_unboxed_product ([{ld_type}], Record_unboxed_product) -> + | Type_record_unboxed_product ([{ld_type}], Record_unboxed_product, _) -> let depth = depth + 1 in fallback_if_missing_cmi ~default:(num_nodes_visited, mk_nn Pgenval) (fun () -> value_kind env ~loc ~visited ~depth ~num_nodes_visited ld_type) | Type_record_unboxed_product (([] | _::_::_), - Record_unboxed_product) -> + Record_unboxed_product, _) -> Misc.fatal_error "Typeopt.value_kind: non-unary unboxed record can't have kind value" | Type_abstract _ -> num_nodes_visited, - mk_nn (value_kind_of_value_jkind decl.type_jkind) + mk_nn (value_kind_of_value_jkind env decl.type_jkind) | Type_open -> num_nodes_visited, mk_nn Pgenval end | Ttuple labeled_fields -> diff --git a/src/ocaml/typing/types.ml b/src/ocaml/typing/types.ml index 44ae0afbe..ec72a906c 100644 --- a/src/ocaml/typing/types.ml +++ b/src/ocaml/typing/types.ml @@ -28,6 +28,13 @@ let is_mutable = function (* Type expressions for the core language *) +module Jkind_mod_bounds = + Jkind_axis.Axis_collection.Indexed (Misc.Stdlib.Monad.Identity) + +module With_bounds_type_info = struct + type t = {relevant_axes : Jkind_axis.Axis_set.t } [@@unboxed] +end + type transient_expr = { mutable desc: type_desc; mutable level: int; @@ -99,18 +106,54 @@ and _ commutable_gen = | Cunknown : [> `none] commutable_gen | Cvar : {mutable commu: any commutable_gen} -> [> `var] commutable_gen -and 'd jkind = (type_expr, 'd) Jkind_types.t +(* jkinds *) + +and jkind_history = + | Interact of + { reason : Jkind_intf.History.interact_reason; + jkind1 : jkind_desc_packed; + history1 : jkind_history; + jkind2 : jkind_desc_packed; + history2 : jkind_history + } + | Creation of Jkind_intf.History.creation_reason + +(* See [With_bounds_types] for more information on this abstract type. *) +and with_bounds_types + +and 'd with_bounds = + | No_with_bounds : ('l * 'r) with_bounds + | With_bounds : with_bounds_types -> ('l * Allowance.disallowed) with_bounds + +and ('layout, 'd) layout_and_axes = + { layout : 'layout; + mod_bounds : Jkind_mod_bounds.t; + with_bounds : 'd with_bounds + } + constraint 'd = 'l * 'r + +and 'd jkind_desc = (Jkind_types.Sort.t Jkind_types.Layout.t, 'd) layout_and_axes + constraint 'd = 'l * 'r + +and jkind_desc_packed = Pack_jkind_desc : ('l * 'r) jkind_desc -> jkind_desc_packed + +and 'd jkind_quality = + | Best : ('l * disallowed) jkind_quality + | Not_best : ('l * 'r) jkind_quality + +and 'd jkind = + { jkind : 'd jkind_desc; + annotation : Parsetree.jkind_annotation option; + history : jkind_history; + has_warned : bool; + quality : 'd jkind_quality; + } + constraint 'd = 'l * 'r + and jkind_l = (allowed * disallowed) jkind and jkind_r = (disallowed * allowed) jkind and jkind_lr = (allowed * allowed) jkind - -(* jkind depends on types defined in this file, but Jkind.equal is required - here. When jkind.ml is loaded, it calls set_jkind_equal to fill a ref to the - function. *) -(** Corresponds to [Jkind.equal] *) -let jkind_equal = ref (fun _ _ -> - failwith "jkind_equal should be set by jkind.ml") -let set_jkind_equal f = jkind_equal := f +and jkind_packed = Pack_jkind : ('l * 'r) jkind -> jkind_packed module TransientTypeOps = struct type t = type_expr @@ -268,18 +311,22 @@ type type_declaration = type_attributes: Parsetree.attributes; type_unboxed_default: bool; type_uid: Uid.t; - type_has_illegal_crossings: bool; } and type_decl_kind = (label_declaration, label_declaration, constructor_declaration) type_kind +and unsafe_mode_crossing = + { modal_upper_bounds : Mode.Alloc.Const.t } + and ('lbl, 'lbl_flat, 'cstr) type_kind = Type_abstract of type_origin - | Type_record of 'lbl list * record_representation + | Type_record of 'lbl list * record_representation * unsafe_mode_crossing option | Type_record_unboxed_product of - 'lbl_flat list * record_unboxed_product_representation - | Type_variant of 'cstr list * variant_representation + 'lbl_flat list * + record_unboxed_product_representation * + unsafe_mode_crossing option + | Type_variant of 'cstr list * variant_representation * unsafe_mode_crossing option | Type_open and tag = Ordinary of {src_index: int; (* Unique name (per type) *) @@ -762,19 +809,19 @@ let record_form_to_string (type rep) (record_form : rep record_form) = let find_unboxed_type decl = match decl.type_kind with - Type_record ([{ld_type = arg; _}], Record_unboxed) - | Type_record ([{ld_type = arg; _}], Record_inlined (_, _, Variant_unboxed)) + Type_record ([{ld_type = arg; _}], Record_unboxed, _) + | Type_record ([{ld_type = arg; _}], Record_inlined (_, _, Variant_unboxed), _) | Type_record_unboxed_product - ([{ld_type = arg; _}], Record_unboxed_product) - | Type_variant ([{cd_args = Cstr_tuple [{ca_type = arg; _}]; _}], Variant_unboxed) - | Type_variant ([{cd_args = Cstr_record [{ld_type = arg; _}]; _}], Variant_unboxed) -> + ([{ld_type = arg; _}], Record_unboxed_product, _) + | Type_variant ([{cd_args = Cstr_tuple [{ca_type = arg; _}]; _}], Variant_unboxed, _) + | Type_variant ([{cd_args = Cstr_record [{ld_type = arg; _}]; _}], Variant_unboxed, _) -> Some arg | Type_record (_, ( Record_inlined _ | Record_unboxed | Record_boxed _ | Record_float | Record_ufloat - | Record_mixed _)) - | Type_record_unboxed_product (_, Record_unboxed_product) + | Record_mixed _), _) + | Type_record_unboxed_product (_, Record_unboxed_product, _) | Type_variant (_, ( Variant_boxed _ | Variant_unboxed - | Variant_extensible | Variant_with_null)) + | Variant_extensible | Variant_with_null), _) | Type_abstract _ | Type_open -> None @@ -972,19 +1019,144 @@ end let eq_type t1 t2 = t1 == t2 || repr t1 == repr t2 let compare_type t1 t2 = compare (get_id t1) (get_id t2) +(* with-bounds *) + +(* Compare types roughly semantically, to allow best-effort deduplication of the types + inside of with-bounds. + + This function might compare two types as inequal that are actually equal, but should + /never/ compare two types as equal that are not semantically equal. It may go without + saying but it also needs to expose a total order. + + Someday, it's probably desirable to merge this, and make it compatible, with + [Ctype.eqtype], though that seems quite hard. +*) +(* CR layouts v2.8: this will likely loop infinitely on rectypes *) +(* CR layouts v2.8: this whole approach is probably /quite/ wrong, since type_expr is + fundamentally mutable, and using mutable things in the keys of maps is a recipe for + disaster. We haven't found a way that this can break /yet/, but it is likely that one + exists. We should rethink this whole approach soon. *) +let rec best_effort_compare_type_expr te1 te2 = + if te1 == te2 || repr te1 == repr te2 then 0 + else + let rank ty = + match get_desc ty with + (* Types which must be compared by id *) + | Tvar _ + | Tunivar _ + | Tobject (_, _) + | Tfield (_, _, _, _) + | Tnil + | Tvariant _ + | Tpackage (_, _) + | Tarrow (_, _, _, _) + (* CR layouts v2.8: we can actually see Tsubst here in certain cases, eg during + [Ctype.copy] when copying the types inside of with_bounds. We also can't + compare Tsubst structurally, because the Tsubsts that are created in + Ctype.copy are cyclic (?). So the best we can do here is compare by id. + this is almost definitely wrong, primarily because of the mutability - we + should fix that. *) + | Tsubst (_, _) + -> + (* This negation is important! We want all these types to compare strictly /less/ + than the structural ones - the easiest way to make that happen is to make the + id negative, and ensure the ranks of all the other variants are positive *) + -ty.id + (* Types which we know how to compare structurally*) + | Ttuple _ -> 2 + | Tunboxed_tuple _ -> 3 + | Tconstr (_, _, _) -> 5 + | Tpoly (_, _) -> 6 + (* Types we should never see *) + | Tlink _ -> Misc.fatal_error "Tlink encountered in With_bounds_types" + in + match get_desc te1, get_desc te2 with + | Ttuple elts1, Ttuple elts2 + | Tunboxed_tuple elts1, Tunboxed_tuple elts2 -> + List.compare + (fun (l1, te1) (l2, te2) -> + let l = Option.compare String.compare l1 l2 in + if l = 0 then best_effort_compare_type_expr te1 te2 else l + ) + elts1 + elts2 + | Tconstr (p1, args1, _), Tconstr (p2, args2, _) -> + let p = Path.compare p1 p2 in + if p = 0 + then List.compare best_effort_compare_type_expr args1 args2 + else p + | Tpoly (t1, ts1), Tpoly (t2, ts2) -> + (* NOTE: this is mostly broken according to the semantics of type_expr, but probably + fine for the particular "best-effort" comparison we want. *) + List.compare best_effort_compare_type_expr (t1 :: ts1) (t2 :: ts2) + | _, _ -> rank te1 - rank te2 + +(* A map from [type_expr] to [With_bounds_type_info.t], specifically defined with a + (best-effort) semantic comparison function on types to be used in the with-bounds of a + jkind. + + This module is defined internally to be equal (via two uses of [Obj.magic]) to the + abstract type [with_bound_types] to break the circular dependency between with-bounds + and type_expr. The alternative to this approach would be mutually recursive modules, + but this approach creates a smaller diff with upstream and makes rebasing easier. +*) +module With_bounds_types : sig + (* Note that only the initially needed bits of [Stdlib.Map.S] are exposed here; feel + free to expose more functions if you need them! *) + type t = with_bounds_types + type info := With_bounds_type_info.t + + val empty : t + val is_empty : t -> bool + val to_seq : t -> (type_expr * info) Seq.t + val of_list : (type_expr * info) list -> t + val of_seq : (type_expr * info) Seq.t -> t + val singleton : type_expr -> info -> t + val map : (info -> info) -> t -> t + val merge + : (type_expr -> info option -> info option -> info option) -> + t -> t -> t + val update : type_expr -> (info option -> info option) -> t -> t + val find_opt : type_expr -> t -> info option +end = struct + module M = Map.Make(struct + type t = type_expr + + let compare = best_effort_compare_type_expr + end) + include M + + type map = With_bounds_type_info.t M.t + type t = with_bounds_types + + let of_map : map -> with_bounds_types = Obj.magic + let to_map : with_bounds_types -> map = Obj.magic + + let empty = empty |> of_map + let is_empty t = t |> to_map |> is_empty + let to_seq t = t |> to_map |> to_seq + let of_seq s = of_seq s |> of_map + let of_list l = l |> List.to_seq |> of_seq + let singleton ty i = add ty i (to_map empty) |> of_map + let map f t = map f (to_map t) |> of_map + let merge f t1 t2 = merge f (to_map t1) (to_map t2) |> of_map + let update te f t = update te f (to_map t) |> of_map + let find_opt te t = find_opt te (to_map t) +end + (* Constructor and accessors for [row_desc] *) let create_row ~fields ~more ~closed ~fixed ~name = - { row_fields=fields; row_more=more; - row_closed=closed; row_fixed=fixed; row_name=name } + { row_fields=fields; row_more=more; + row_closed=closed; row_fixed=fixed; row_name=name } (* [row_fields] subsumes the original [row_repr] *) let rec row_fields row = match get_desc row.row_more with | Tvariant row' -> - row.row_fields @ row_fields row' + row.row_fields @ row_fields row' | _ -> - row.row_fields + row.row_fields let rec row_repr_no_fields row = match get_desc row.row_more with diff --git a/src/ocaml/typing/types.mli b/src/ocaml/typing/types.mli index 08a8c635d..4804cdf8a 100644 --- a/src/ocaml/typing/types.mli +++ b/src/ocaml/typing/types.mli @@ -67,6 +67,17 @@ val is_mutable : mutability -> bool Note on mutability: TBD. *) + +(** The mod-bounds of a jkind *) +module Jkind_mod_bounds : + module type of Jkind_axis.Axis_collection.Indexed (Misc.Stdlib.Monad.Identity) + +(** Information tracked about an individual type within the with-bounds for a jkind *) +module With_bounds_type_info : sig + (** The axes that the with-bound applies to *) + type t = { relevant_axes : Jkind_axis.Axis_set.t } [@@unboxed] +end + type type_expr type row_desc type row_field @@ -229,19 +240,102 @@ and abbrev_memo = This is only allowed when the real type is known. *) -(** Jkinds classify types. *) -(* CR layouts v2.8: Say more here. *) -and 'd jkind = (type_expr, 'd) Jkind_types.t + +(**** Jkinds ****) + +(** A history of conditions placed on a jkind. + + INVARIANT: at most one sort variable appears in this history. + This is a natural consequence of producing this history by comparing + jkinds. +*) +and jkind_history = + | Interact of + { reason : Jkind_intf.History.interact_reason; + jkind1 : jkind_desc_packed; + history1 : jkind_history; + jkind2 : jkind_desc_packed; + history2 : jkind_history + } + | Creation of Jkind_intf.History.creation_reason + +(** The types within the with-bounds of a jkind *) +and with_bounds_types + +and 'd with_bounds = + | No_with_bounds : ('l * 'r) with_bounds + | With_bounds + : with_bounds_types -> ('l * Allowance.disallowed) with_bounds + (** Invariant : there must always be at least one type in this set **) + +and ('layout, 'd) layout_and_axes = + { layout : 'layout; + mod_bounds : Jkind_mod_bounds.t; + with_bounds : 'd with_bounds + } + constraint 'd = 'l * 'r + +and 'd jkind_desc = (Jkind_types.Sort.t Jkind_types.Layout.t, 'd) layout_and_axes + constraint 'd = 'l * 'r + +and jkind_desc_packed = Pack_jkind_desc : ('l * 'r) jkind_desc -> jkind_desc_packed + +(** The "quality" of a jkind indicates whether we are able to learn more about the jkind + later. + + We can never learn more about a [Best] jkind to make it "lower" (according to + [Jkind.sub] / [Jkind.sub_jkind_l]). A [Not_best], jkind, however, might have more + information provided about it later that makes it lower. + + Note that only left jkinds can be [Best] (meaning we can never compare less than or + equal to a left jkind!) +*) +and 'd jkind_quality = + | Best : ('l * disallowed) jkind_quality + | Not_best : ('l * 'r) jkind_quality + +and 'd jkind = + { jkind : 'd jkind_desc; + annotation : Parsetree.jkind_annotation option; + history : jkind_history; + has_warned : bool; + quality : 'd jkind_quality; + } + constraint 'd = 'l * 'r + and jkind_l = (allowed * disallowed) jkind (* the jkind of an actual type *) and jkind_r = (disallowed * allowed) jkind (* the jkind expected of a type *) and jkind_lr = (allowed * allowed) jkind (* the jkind of a variable *) +and jkind_packed = Pack_jkind : ('l * 'r) jkind -> jkind_packed -(* jkind depends on types defined in this file, but Jkind.equal is required - here. When jkind.ml is loaded, it calls set_jkind_equal to fill a ref to the - function. *) -(** INTERNAL USE ONLY - jkind.ml should call this with the definition of Jkind.equal *) -val set_jkind_equal : (jkind_l -> jkind_l -> bool) -> unit +(* A map from [type_expr] to [With_bounds_type_info.t], specifically defined with a + (best-effort) semantic comparison function on types to be used in the with-bounds of a + jkind. + + This module is defined internally to be equal (via two uses of [Obj.magic]) to the + abstract type [with_bound_types] to break the circular dependency between with-bounds + and type_expr. The alternative to this approach would be mutually recursive modules, + but this approach creates a smaller diff with upstream and makes rebasing easier. +*) +module With_bounds_types : sig + (* Note that only the initially needed bits of [Stdlib.Map.S] are exposed here; feel + free to expose more functions if you need them! *) + type t = with_bounds_types + type info := With_bounds_type_info.t + + val empty : t + val is_empty : t -> bool + val to_seq : t -> (type_expr * info) Seq.t + val of_list : (type_expr * info) list -> t + val of_seq : (type_expr * info) Seq.t -> t + val singleton : type_expr -> info -> t + val map : (info -> info) -> t -> t + val merge + : (type_expr -> info option -> info option -> info option) -> + t -> t -> t + val update : type_expr -> (info option -> info option) -> t -> t + val find_opt : type_expr -> t -> info option +end val is_commu_ok: commutable -> bool val commu_ok: commutable @@ -541,19 +635,21 @@ type type_declaration = type_unboxed_default: bool; (* true if the unboxed-ness of this type was chosen by a compiler flag *) type_uid: Uid.t; - type_has_illegal_crossings: bool; - (* true iff the type definition has illegal crossings of the portability and - contention axes *) - (* CR layouts v2.8: remove type_has_illegal_crossings *) } and type_decl_kind = (label_declaration, label_declaration, constructor_declaration) type_kind +and unsafe_mode_crossing = + { modal_upper_bounds : Mode.Alloc.Const.t } + and ('lbl, 'lbl_flat, 'cstr) type_kind = Type_abstract of type_origin - | Type_record of 'lbl list * record_representation - | Type_record_unboxed_product of 'lbl_flat list * record_unboxed_product_representation - | Type_variant of 'cstr list * variant_representation + | Type_record of 'lbl list * record_representation * unsafe_mode_crossing option + | Type_record_unboxed_product of + 'lbl_flat list * + record_unboxed_product_representation * + unsafe_mode_crossing option + | Type_variant of 'cstr list * variant_representation * unsafe_mode_crossing option | Type_open (* CR layouts: after removing the void translation from lambda, we could get rid of diff --git a/src/ocaml/typing/typetexp.ml b/src/ocaml/typing/typetexp.ml index 4633a0a65..7f22cc134 100644 --- a/src/ocaml/typing/typetexp.ml +++ b/src/ocaml/typing/typetexp.ml @@ -660,17 +660,28 @@ let transl_label (label : Parsetree.arg_label) | Optional l, _ -> Optional l | Nolabel, _ -> Nolabel +(* Parallel to [transl_label_from_expr]. *) let transl_label_from_pat (label : Parsetree.arg_label) (pat : Parsetree.pattern) = - let label, inner_pat = match pat with - | {ppat_desc = Ppat_constraint (inner_pat, ty, _); _} -> - (* If the argument is a constraint, translate the label using the - type information. Otherwise, it can't be a Position argument, so - we don't care about the argument type *) - transl_label label ty, inner_pat + match pat with + (* We should only strip off the constraint node if the label translates + to Position, as this means the type annotation is [%call_pos] and + nothing more. *) + | {ppat_desc = Ppat_constraint (inner_pat, ty, []); _} -> + let label = transl_label label ty in + let pat = if Btype.is_position label then inner_pat else pat in + label, pat | _ -> transl_label label None, pat - in - label, if Btype.is_position label then inner_pat else pat + +(* Parallel to [transl_label_from_pat]. *) +let transl_label_from_expr (label : Parsetree.arg_label) + (expr : Parsetree.expression) = + match expr with + | {pexp_desc = Pexp_constraint (inner_expr, ty, []); _} -> + let label = transl_label label ty in + let expr = if Btype.is_position label then inner_expr else expr in + label, expr + | _ -> transl_label label None, expr let enrich_with_attributes attrs annotation_context = match Builtin_attributes.error_message_attr attrs with diff --git a/src/ocaml/typing/typetexp.mli b/src/ocaml/typing/typetexp.mli index 04b093fc8..191b0e465 100644 --- a/src/ocaml/typing/typetexp.mli +++ b/src/ocaml/typing/typetexp.mli @@ -83,6 +83,13 @@ val transl_label_from_pat : Parsetree.arg_label -> Parsetree.pattern -> Types.arg_label * Parsetree.pattern +(** Like [transl_label_from_pat], but with special handling for expressions + [(E : [%call_pos])] instead of for patterns. +*) +val transl_label_from_expr : + Parsetree.arg_label -> Parsetree.expression + -> Types.arg_label * Parsetree.expression + (* Note about [new_var_jkind] This is exposed as an option because the same initialization doesn't work in all diff --git a/src/ocaml/typing/zero_alloc.ml b/src/ocaml/typing/zero_alloc.ml index c9cf808fa..306e10415 100644 --- a/src/ocaml/typing/zero_alloc.ml +++ b/src/ocaml/typing/zero_alloc.ml @@ -6,6 +6,7 @@ type check = Builtin_attributes.zero_alloc_check = opt: bool; arity: int; loc: Location.t; + custom_error_msg : string option; } type assume = Builtin_attributes.zero_alloc_assume = @@ -22,7 +23,7 @@ type const = Builtin_attributes.zero_alloc_attribute = | Check of check | Assume of assume -type desc = { strict : bool; opt : bool } +type desc = { strict : bool; opt : bool; custom_error_msg : string option; } type var = { loc : Location.t; @@ -44,14 +45,20 @@ let debug_printer ppf t = | Check _ -> "Check" | Assume _ -> "Assume" in + let pp_custom ppf c = + match c with + | None -> Format.fprintf ppf "None" + | Some msg -> Format.fprintf ppf "%S" msg + in match t with | Const c -> Format.fprintf ppf "Const %s" (head c) | Var v -> let print_desc ppf desc = match desc with | None -> Format.fprintf ppf "None" - | Some desc -> - Format.fprintf ppf "{ strict = %b; opt = %b }" desc.strict desc.opt + | Some { strict; opt; custom_error_msg; } -> + Format.fprintf ppf "{ strict = %b; opt = %b; custom_error_message = %a}" strict opt + pp_custom custom_error_msg in Format.fprintf ppf "Var { arity = %d; desc = %a }" v.arity print_desc v.desc @@ -62,8 +69,10 @@ let log_change = ref (fun _ -> ()) let set_change_log f = log_change := f let create_const x = Const x -let create_var loc arity = Var { loc; arity; desc = None } +let create_var loc arity = + Var { loc; arity; desc = None } let default = Const Default_zero_alloc +let ignore_assert_all = Const Ignore_assert_all let get (t : t) = match t with @@ -71,8 +80,8 @@ let get (t : t) = | Var { loc; arity; desc } -> match desc with | None -> Default_zero_alloc - | Some { strict; opt } -> - Check { loc; arity; strict; opt } + | Some { strict; opt; custom_error_msg; } -> + Check { loc; arity; strict; opt; custom_error_msg } type error = | Less_general of { missing_entirely : bool } @@ -110,10 +119,9 @@ let sub_const_const_exn za1 za2 = error. It's essential for the soundness of the way we (will, in the next PR) use zero_alloc in signatures that the apparent arity of the type in the signature matches the syntactic arity of the function. - - [ignore] can not appear in zero_alloc attributes in signatures, and is - erased from structure items when computing their signature, so we don't - need to consider it here. - *) + - [ignore] is erased from structure items when computing their signature. + On signatures, [ignore] is interpreted as "top" for the inclusion check. + This interpretation is the same as erasing [ignore]. *) let open Builtin_attributes in (* abstract domain check *) let abstract_value za = @@ -168,16 +176,28 @@ let sub_var_const_exn v c = | { arity = arity1; _ }, Check { arity = arity2; _ } when arity1 <> arity2 -> raise (Error (Arity_mismatch (arity1, arity2))) - | { desc = None; _ }, Check { strict; opt; _ } -> + | { desc = None; _ }, Check { strict; opt; custom_error_msg; } -> !log_change (None, v); - v.desc <- Some { strict; opt } - | { desc = (Some { strict = strict1; opt = opt1 } as desc); _ }, - Check { strict = strict2; opt = opt2 } -> + v.desc <- Some { strict; opt; custom_error_msg } + | { desc = (Some { strict = strict1; opt = opt1; custom_error_msg = msg1; } as desc); _ }, + Check { strict = strict2; opt = opt2; custom_error_msg = msg2 } -> let strict = strict1 || strict2 in let opt = opt1 && opt2 in - if strict <> strict1 || opt <> opt1 then begin + let custom_error_msg, msg_changed = + match msg1, msg2 with + | None, None -> msg1, false; + | None, Some _ -> msg2, true; + | Some _, None -> msg1, false; + | Some m1, Some m2 -> + let b = String.equal m1 m2 in + let msg = + if b then msg1 else Some (String.concat "\n" [m1; m2]) + in + msg, not b + in + if strict <> strict1 || opt <> opt1 || msg_changed then begin !log_change (desc, v); - v.desc <- Some { strict; opt } + v.desc <- Some { strict; opt; custom_error_msg; } end let sub_exn za1 za2 = @@ -197,9 +217,9 @@ let sub_exn za1 za2 = *) if not (za1 == za2) then Misc.fatal_error "zero_alloc: variable constraint" - | _, Const (Ignore_assert_all | Assume _) -> + | _, Const (Assume _) -> Misc.fatal_error "zero_alloc: invalid constraint" - | _, (Const Default_zero_alloc) -> () + | _, (Const (Default_zero_alloc | Ignore_assert_all)) -> () | Var v, Const c -> sub_var_const_exn v c | Const c1, Const c2 -> sub_const_const_exn c1 c2 diff --git a/src/ocaml/typing/zero_alloc.mli b/src/ocaml/typing/zero_alloc.mli index dfbb4c088..a02205015 100644 --- a/src/ocaml/typing/zero_alloc.mli +++ b/src/ocaml/typing/zero_alloc.mli @@ -3,6 +3,7 @@ type check = Builtin_attributes.zero_alloc_check = opt: bool; arity: int; loc: Location.t; + custom_error_msg : string option; } type assume = Builtin_attributes.zero_alloc_assume = @@ -29,10 +30,14 @@ type t done. *) val default : t +(* [ignore_assert_all] corresponds to [Ignore_assert_all], meaning no check will be + done even if [Clflags.zero_alloc_assert] is set to "all" or "all_opt". *) +val ignore_assert_all : t + val create_const : const -> t (* [create_var loc n] creates a variable. [loc] is the location of the function - you are creating a variable for, and [n] is its syntactic arity of the + you are creating a variable for and [n] is its syntactic arity of the function the variable is being created for. *) val create_var : Location.t -> int -> t diff --git a/src/ocaml/utils/warnings.ml b/src/ocaml/utils/warnings.ml index 5feedc67b..03b931954 100644 --- a/src/ocaml/utils/warnings.ml +++ b/src/ocaml/utils/warnings.ml @@ -126,6 +126,7 @@ type t = | Unerasable_position_argument (* 188 *) | Unnecessarily_partial_tuple_pattern (* 189 *) | Probe_name_too_long of string (* 190 *) + | Zero_alloc_all_hidden_arrow of string (* 198 *) | Unchecked_zero_alloc_attribute (* 199 *) | Unboxing_impossible (* 210 *) | Mod_by_top of string (* 211 *) @@ -215,6 +216,7 @@ let number = function | Unerasable_position_argument -> 188 | Unnecessarily_partial_tuple_pattern -> 189 | Probe_name_too_long _ -> 190 + | Zero_alloc_all_hidden_arrow _ -> 198 | Unchecked_zero_alloc_attribute -> 199 | Unboxing_impossible -> 210 | Mod_by_top _ -> 211 @@ -581,6 +583,11 @@ let descriptions = [ names = ["probe-name-too-long"]; description = "Probe name must be at most 100 characters long."; since = since 4 14 }; + { number = 198; + names = ["zero-alloc-all-hidden-arrow"]; + description = "A declaration whose type is an alias of a function type \ + will be ignored by zero_alloc all or all_opt."; + since = since 4 14 }; { number = 199; names = ["unchecked-zero-alloc-attribute"]; description = "A property of a function that was \ @@ -1236,6 +1243,14 @@ let message = function Printf.sprintf "This probe name is too long: `%s'. \ Probe names must be at most 100 characters long." name + | Zero_alloc_all_hidden_arrow s -> + Printf.sprintf + "The type of this item is an\n\ + alias of a function type, but the [@@@zero_alloc %s] attribute for\n\ + this signature does not apply to it because its type is not\n\ + syntactically a function type. If it should be checked, use an\n\ + explicit zero_alloc attribute with an arity. If not, use an explicit\n\ + zero_alloc ignore attribute." s | Unchecked_zero_alloc_attribute -> Printf.sprintf "the zero_alloc attribute cannot be checked.\n\ The function it is attached to was optimized away. \n\ diff --git a/src/ocaml/utils/warnings.mli b/src/ocaml/utils/warnings.mli index f25a25936..231794d73 100644 --- a/src/ocaml/utils/warnings.mli +++ b/src/ocaml/utils/warnings.mli @@ -132,6 +132,7 @@ type t = | Unerasable_position_argument (* 188 *) | Unnecessarily_partial_tuple_pattern (* 189 *) | Probe_name_too_long of string (* 190 *) + | Zero_alloc_all_hidden_arrow of string (* 198 *) | Unchecked_zero_alloc_attribute (* 199 *) | Unboxing_impossible (* 210 *) | Mod_by_top of string (* 211 *) diff --git a/src/ocaml/utils/zero_alloc_annotations.ml b/src/ocaml/utils/zero_alloc_annotations.ml index b05538097..daa871d98 100644 --- a/src/ocaml/utils/zero_alloc_annotations.ml +++ b/src/ocaml/utils/zero_alloc_annotations.ml @@ -25,32 +25,71 @@ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * * DEALINGS IN THE SOFTWARE. * ******************************************************************************) -type t = Check_default | Check_all | Check_opt_only | No_check - -let all = [ Check_default; Check_all; Check_opt_only; No_check ] - -let to_string = function - | Check_default -> "default" - | Check_all -> "all" - | Check_opt_only -> "opt" - | No_check -> "none" - -let equal t1 t2 = - match t1, t2 with - | Check_default, Check_default -> true - | Check_all, Check_all -> true - | No_check, No_check -> true - | Check_opt_only, Check_opt_only -> true - | (Check_default | Check_all | Check_opt_only | No_check), _ -> false - -let of_string v = - let f t = - if String.equal (to_string t) v then Some t else None - in - List.find_map f all - -let doc = - "\n\ The argument specifies which annotations to check: \n\ - \ \"opt\" means attributes with \"opt\" payload and is intended for debugging;\n\ +module Check = struct + type t = + | Check_default + | Check_all + | Check_opt_only + | No_check + + let all = [Check_default; Check_all; Check_opt_only; No_check] + + let to_string = function + | Check_default -> "default" + | Check_all -> "all" + | Check_opt_only -> "opt" + | No_check -> "none" + + let equal t1 t2 = + match t1, t2 with + | Check_default, Check_default -> true + | Check_all, Check_all -> true + | No_check, No_check -> true + | Check_opt_only, Check_opt_only -> true + | (Check_default | Check_all | Check_opt_only | No_check), _ -> false + + let of_string v = + let f t = if String.equal (to_string t) v then Some t else None in + List.find_map f all + + let doc = + "\n\ + \ The argument specifies which annotations to check: \n\ + \ \"opt\" means attributes with \"opt\" payload and is intended for \ + debugging;\n\ \ \"default\" means attributes without \"opt\" payload; \n\ - \ \"all\" covers both \"opt\" and \"default\" and is intended for optimized builds." + \ \"all\" covers both \"opt\" and \"default\" and is intended for \ + optimized builds." +end + +module Assert = struct + type t = + | Assert_default + | Assert_all + | Assert_all_opt + + let all = [Assert_default; Assert_all; Assert_all_opt] + + let to_string = function + | Assert_default -> "default" + | Assert_all -> "all" + | Assert_all_opt -> "all_opt" + + let equal t1 t2 = + match t1, t2 with + | Assert_default, Assert_default -> true + | Assert_all, Assert_all -> true + | Assert_all_opt, Assert_all_opt -> true + | (Assert_default | Assert_all | Assert_all_opt), _ -> false + + let of_string v = + let f t = if String.equal (to_string t) v then Some t else None in + List.find_map f all + + let doc = + "\n\ + \ The argument specifies which annotations to use: \n\ + \ \"all\" is equivalent to adding [@@@zero_alloc all]\n\ + \ \"all_opt\" is equivalent to adding [@@@zero_alloc all_opt]\n\ + \ \"default\" does not add any attributes." +end diff --git a/src/ocaml/utils/zero_alloc_annotations.mli b/src/ocaml/utils/zero_alloc_annotations.mli index f5daa03b1..ebc8ca25c 100644 --- a/src/ocaml/utils/zero_alloc_annotations.mli +++ b/src/ocaml/utils/zero_alloc_annotations.mli @@ -25,9 +25,37 @@ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * * DEALINGS IN THE SOFTWARE. * ******************************************************************************) -type t = Check_default | Check_all | Check_opt_only | No_check -val all : t list -val to_string : t -> string -val of_string : string -> t option -val equal : t -> t -> bool -val doc : string +module Check : sig + type t = + | Check_default + | Check_all + | Check_opt_only + | No_check + + val all : t list + + val to_string : t -> string + + val of_string : string -> t option + + val equal : t -> t -> bool + + val doc : string +end + +module Assert : sig + type t = + | Assert_default + | Assert_all + | Assert_all_opt + + val all : t list + + val to_string : t -> string + + val of_string : string -> t option + + val equal : t -> t -> bool + + val doc : string +end From e8710dbde8a94269e7c0811e70e6dd6b7d7dd2b3 Mon Sep 17 00:00:00 2001 From: Richard Eisenberg Date: Tue, 11 Feb 2025 15:57:24 -0500 Subject: [PATCH 03/25] Manually update clflags.ml{,i} --- src/ocaml/utils/clflags.ml | 2 +- src/ocaml/utils/clflags.mli | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/ocaml/utils/clflags.ml b/src/ocaml/utils/clflags.ml index 0bf026cbf..a75b5af47 100644 --- a/src/ocaml/utils/clflags.ml +++ b/src/ocaml/utils/clflags.ml @@ -21,7 +21,7 @@ let as_parameter = ref false let as_argument_for = ref None let zero_alloc_check = ref Zero_alloc_annotations.Check_default let zero_alloc_check_assert_all = ref false -let allow_illegal_crossing = ref false +let infer_with_bounds = ref false let annotations = ref false let binary_annotations = ref true diff --git a/src/ocaml/utils/clflags.mli b/src/ocaml/utils/clflags.mli index 4ddad9745..bdb4c6fe0 100644 --- a/src/ocaml/utils/clflags.mli +++ b/src/ocaml/utils/clflags.mli @@ -27,7 +27,7 @@ val as_parameter : bool ref val as_argument_for : string option ref val zero_alloc_check : Zero_alloc_annotations.t ref val zero_alloc_check_assert_all : bool ref -val allow_illegal_crossing : bool ref +val infer_with_bounds : bool ref (** {1 Dummy values} Ignored by merlin but kept for compatibility with upstream code. *) From 4a022374ad1a0b946d63ebd8c75c07fc1ffd1638 Mon Sep 17 00:00:00 2001 From: Richard Eisenberg Date: Tue, 11 Feb 2025 16:18:36 -0500 Subject: [PATCH 04/25] Manually fix conflicts --- src/ocaml/parsing/builtin_attributes.ml | 18 +-- src/ocaml/parsing/pprintast.ml | 16 +-- src/ocaml/preprocess/parser_raw.mly | 18 +-- src/ocaml/typing/env.ml | 12 -- src/ocaml/typing/jkind.ml | 8 +- src/ocaml/typing/jkind_axis.ml | 120 ++---------------- src/ocaml/typing/jkind_axis.mli | 58 +-------- src/ocaml/typing/jkind_types.mli | 158 ------------------------ src/ocaml/typing/oprint.ml | 92 -------------- src/ocaml/typing/printtyp.ml | 10 +- src/ocaml/typing/typedecl.ml | 17 +-- src/ocaml/typing/typemod.ml | 104 ++++------------ 12 files changed, 46 insertions(+), 585 deletions(-) diff --git a/src/ocaml/parsing/builtin_attributes.ml b/src/ocaml/parsing/builtin_attributes.ml index 31d31fbe9..74b23453f 100644 --- a/src/ocaml/parsing/builtin_attributes.ml +++ b/src/ocaml/parsing/builtin_attributes.ml @@ -633,16 +633,8 @@ let zero_alloc_attribute ~in_signature (attr : Parsetree.attribute) = | "all" -> Clflags.zero_alloc_assert := A.Assert.Assert_all | "all_opt" -> Clflags.zero_alloc_assert := A.Assert.Assert_all_opt | _ -> -<<<<<<< janestreet/merlin-jst:rae/with-kinds-roll - warn_payload attr.attr_loc attr.attr_name.txt - "Only 'all', 'check', 'check_opt', 'check_all', and 'check_none' are supported") -*) -||||||| ocaml-flambda/flambda-backend:df4a6e0ba4f74dc790e0ad79f15ea73be1225c4b - warn_payload attr.attr_loc attr.attr_name.txt - "Only 'all', 'check', 'check_opt', 'check_all', and 'check_none' are supported") -======= warn ()) ->>>>>>> ocaml-flambda/flambda-backend:main +*) let attribute_with_ignored_payload name attr = when_attribute_is [name; "ocaml." ^ name] attr ~f:(fun () -> ()) @@ -674,17 +666,9 @@ let parse_standard_implementation_attributes attr = afl_inst_ratio_attribute attr; flambda_o3_attribute attr; flambda_oclassic_attribute attr; -<<<<<<< janestreet/merlin-jst:rae/with-kinds-roll zero_alloc_attribute attr *) - unsafe_allow_any_kind_in_impl_attribute attr -||||||| ocaml-flambda/flambda-backend:df4a6e0ba4f74dc790e0ad79f15ea73be1225c4b - zero_alloc_attribute attr; - unsafe_allow_any_kind_in_impl_attribute attr -======= - zero_alloc_attribute ~in_signature:false attr; unsafe_allow_any_mode_crossing_attribute attr ->>>>>>> ocaml-flambda/flambda-backend:main let has_no_mutable_implied_modalities attrs = has_attribute "no_mutable_implied_modalities" attrs diff --git a/src/ocaml/parsing/pprintast.ml b/src/ocaml/parsing/pprintast.ml index ca8b93e9b..755a2632e 100644 --- a/src/ocaml/parsing/pprintast.ml +++ b/src/ocaml/parsing/pprintast.ml @@ -463,27 +463,13 @@ and jkind_annotation ?(nested = false) ctxt f k = match k.pjkind_desc with (pp_print_list ~pp_sep:pp_print_space mode) modes ) f (t, modes) end -<<<<<<< janestreet/merlin-jst:rae/with-kinds-roll - | With (t, ty) -> - Misc_stdlib.pp_parens_if nested (fun f (t, ty) -> - pp f "%a with %a" (jkind_annotation ~nested:true ctxt) t (core_type ctxt) - ty - ) f (t, ty) -||||||| ocaml-flambda/flambda-backend:df4a6e0ba4f74dc790e0ad79f15ea73be1225c4b - | With (t, ty) -> - Misc.pp_parens_if nested (fun f (t, ty) -> - pp f "%a with %a" (jkind_annotation ~nested:true ctxt) t (core_type ctxt) - ty - ) f (t, ty) -======= | With (t, ty, modalities) -> - Misc.pp_parens_if nested (fun f (t, ty, modalities) -> + Misc_stdlib.pp_parens_if nested (fun f (t, ty, modalities) -> pp f "%a with %a%a" (jkind_annotation ~nested:true ctxt) t (core_type ctxt) ty optional_space_atat_modalities modalities; ) f (t, ty, modalities) ->>>>>>> ocaml-flambda/flambda-backend:main | Kind_of ty -> pp f "kind_of_ %a" (core_type ctxt) ty | Product ts -> Misc_stdlib.pp_parens_if nested (fun f ts -> diff --git a/src/ocaml/preprocess/parser_raw.mly b/src/ocaml/preprocess/parser_raw.mly index 693b52975..29a06ce99 100644 --- a/src/ocaml/preprocess/parser_raw.mly +++ b/src/ocaml/preprocess/parser_raw.mly @@ -998,7 +998,7 @@ let merloc startpos ?endpos x = psg_modalities = []; psg_items = []; psg_loc = !default_loc; - } + } in Mty.signature ~loc:!default_loc desc ] @@ -2933,19 +2933,13 @@ optional_atomic_constraint_: } | { empty_body_constraint } -<<<<<<< janestreet/merlin-jst:rae/with-kinds-roll -%public fun_expr [@recovery default_expr ()]: -||||||| ocaml-flambda/flambda-backend:df4a6e0ba4f74dc790e0ad79f15ea73be1225c4b -fun_expr: -======= fun_: /* Cf #5939: we used to accept (fun p when e0 -> e) */ | FUN ext_attributes fun_params body_constraint = optional_atomic_constraint_ MINUSGREATER fun_body { mkfunction $3 body_constraint $6 ~loc:$sloc ~attrs:$2 } -fun_expr: ->>>>>>> ocaml-flambda/flambda-backend:main +%public fun_expr [@recovery default_expr ()]: simple_expr %prec below_HASH { $1 } | fun_expr_attrs @@ -3054,17 +3048,11 @@ fun_expr: { mkexp ~loc:$sloc (mkinfix e1 op e2) } ; -<<<<<<< janestreet/merlin-jst:rae/with-kinds-roll -%public simple_expr: -||||||| ocaml-flambda/flambda-backend:df4a6e0ba4f74dc790e0ad79f15ea73be1225c4b -simple_expr: -======= %inline constructor_app: | mkrhs(constr_longident) simple_expr { mkexp ~loc:$sloc (Pexp_construct($1, Some $2)) } -simple_expr: ->>>>>>> ocaml-flambda/flambda-backend:main +%public simple_expr: | LPAREN seq_expr RPAREN { reloc_exp ~loc:$sloc $2 } (* diff --git a/src/ocaml/typing/env.ml b/src/ocaml/typing/env.ml index a90f6b4e2..4878fc6d8 100644 --- a/src/ocaml/typing/env.ml +++ b/src/ocaml/typing/env.ml @@ -2510,19 +2510,7 @@ and store_module ?(update_summary=true) ~check if not update_summary then env.summary else Env_module (env.summary, id, presence, force_module_decl md) in { env with -<<<<<<< janestreet/merlin-jst:rae/with-kinds-roll - modules = IdTbl.add id (Mod_local mda) env.modules; -||||||| ocaml-flambda/flambda-backend:df4a6e0ba4f74dc790e0ad79f15ea73be1225c4b - modules = IdTbl.add id (Mod_local mda) env.modules; - summary } - -and store_modtype ?(update_summary=true) id info shape env = -======= modules = IdTbl.add id (Mod_local (mda, alias_locks)) env.modules; - summary } - -and store_modtype ?(update_summary=true) id info shape env = ->>>>>>> ocaml-flambda/flambda-backend:main summary; short_paths_additions = short_paths_module id md comps env.short_paths_additions; } diff --git a/src/ocaml/typing/jkind.ml b/src/ocaml/typing/jkind.ml index a5dfc188a..139913410 100644 --- a/src/ocaml/typing/jkind.ml +++ b/src/ocaml/typing/jkind.ml @@ -2667,14 +2667,8 @@ let map_type_expr f t = { t with jkind = Jkind_desc.map_type_expr f t.jkind } let check_sub ~jkind_of_type sub super = Jkind_desc.sub ~jkind_of_type sub.jkind super.jkind -<<<<<<< janestreet/merlin-jst:rae/with-kinds-roll -let sub sub super = Le_result.is_le (check_sub sub super) -||||||| ocaml-flambda/flambda-backend:df4a6e0ba4f74dc790e0ad79f15ea73be1225c4b -let sub sub super = Misc.Le_result.is_le (check_sub sub super) -======= let sub ~type_equal ~jkind_of_type sub super = - Misc.Le_result.is_le (check_sub ~type_equal ~jkind_of_type sub super) ->>>>>>> ocaml-flambda/flambda-backend:main + Le_result.is_le (check_sub ~type_equal ~jkind_of_type sub super) type sub_or_intersect = | Sub diff --git a/src/ocaml/typing/jkind_axis.ml b/src/ocaml/typing/jkind_axis.ml index 9304bc044..6be17c741 100644 --- a/src/ocaml/typing/jkind_axis.ml +++ b/src/ocaml/typing/jkind_axis.ml @@ -12,34 +12,14 @@ (* *) (**************************************************************************) -<<<<<<< janestreet/merlin-jst:rae/with-kinds-roll (* Merlin-specific: Change the module path of Misc_stdlib.Le_result to Misc.Le_result to match the compiler *) module Misc = struct module Le_result = Misc_stdlib.Le_result end -module type Axis_s = sig - type t - - val max : t - - val min : t - - val equal : t -> t -> bool -||||||| ocaml-flambda/flambda-backend:df4a6e0ba4f74dc790e0ad79f15ea73be1225c4b -module type Axis_s = sig - type t - - val max : t - - val min : t - - val equal : t -> t -> bool -======= module type Axis_ops = sig include Mode_intf.Lattice ->>>>>>> ocaml-flambda/flambda-backend:main val less_or_equal : t -> t -> Misc.Le_result.t @@ -198,89 +178,8 @@ module Axis = struct | Nonmodal Nullability -> false end -<<<<<<< janestreet/merlin-jst:rae/with-kinds-roll -(* Sadly this needs to be functorized since we don't have higher-kinded types *) -module Axis_collection (T : Misc_stdlib.T1) = struct - type t = - { locality : Mode.Locality.Const.t T.t; - linearity : Mode.Linearity.Const.t T.t; - uniqueness : Mode.Uniqueness.Const.t T.t; - portability : Mode.Portability.Const.t T.t; - contention : Mode.Contention.Const.t T.t; - yielding : Mode.Yielding.Const.t T.t; - externality : Externality.t T.t; - nullability : Nullability.t T.t - } - - let get (type a) ~(axis : a Axis.t) values : a T.t = - match axis with - | Modal Locality -> values.locality - | Modal Linearity -> values.linearity - | Modal Uniqueness -> values.uniqueness - | Modal Portability -> values.portability - | Modal Contention -> values.contention - | Modal Yielding -> values.yielding - | Nonmodal Externality -> values.externality - | Nonmodal Nullability -> values.nullability - - let set (type a) ~(axis : a Axis.t) values (value : a T.t) = - match axis with - | Modal Locality -> { values with locality = value } - | Modal Linearity -> { values with linearity = value } - | Modal Uniqueness -> { values with uniqueness = value } - | Modal Portability -> { values with portability = value } - | Modal Contention -> { values with contention = value } - | Modal Yielding -> { values with yielding = value } - | Nonmodal Externality -> { values with externality = value } - | Nonmodal Nullability -> { values with nullability = value } - - (* Since we don't have polymorphic parameters, use a record to pass the polymorphic - function *) - module Create_f = struct - type t = { f : 'a. axis:'a Axis.t -> 'a T.t } -||||||| ocaml-flambda/flambda-backend:df4a6e0ba4f74dc790e0ad79f15ea73be1225c4b -(* Sadly this needs to be functorized since we don't have higher-kinded types *) -module Axis_collection (T : Misc.T1) = struct - type t = - { locality : Mode.Locality.Const.t T.t; - linearity : Mode.Linearity.Const.t T.t; - uniqueness : Mode.Uniqueness.Const.t T.t; - portability : Mode.Portability.Const.t T.t; - contention : Mode.Contention.Const.t T.t; - yielding : Mode.Yielding.Const.t T.t; - externality : Externality.t T.t; - nullability : Nullability.t T.t - } - - let get (type a) ~(axis : a Axis.t) values : a T.t = - match axis with - | Modal Locality -> values.locality - | Modal Linearity -> values.linearity - | Modal Uniqueness -> values.uniqueness - | Modal Portability -> values.portability - | Modal Contention -> values.contention - | Modal Yielding -> values.yielding - | Nonmodal Externality -> values.externality - | Nonmodal Nullability -> values.nullability - - let set (type a) ~(axis : a Axis.t) values (value : a T.t) = - match axis with - | Modal Locality -> { values with locality = value } - | Modal Linearity -> { values with linearity = value } - | Modal Uniqueness -> { values with uniqueness = value } - | Modal Portability -> { values with portability = value } - | Modal Contention -> { values with contention = value } - | Modal Yielding -> { values with yielding = value } - | Nonmodal Externality -> { values with externality = value } - | Nonmodal Nullability -> { values with nullability = value } - - (* Since we don't have polymorphic parameters, use a record to pass the polymorphic - function *) - module Create_f = struct - type t = { f : 'a. axis:'a Axis.t -> 'a T.t } -======= module Axis_collection = struct - module Indexed_gen (T : Misc.T2) = struct + module Indexed_gen (T : Misc_stdlib.T2) = struct type 'a t_poly = { locality : (Mode.Locality.Const.t, 'a) T.t; linearity : (Mode.Linearity.Const.t, 'a) T.t; @@ -319,7 +218,7 @@ module Axis_collection = struct (* Since we don't have polymorphic parameters, use a record to pass the polymorphic function *) module Create = struct - module Monadic (M : Misc.Stdlib.Monad.S) = struct + module Monadic (M : Misc_stdlib.Monad.S) = struct type 'a f = { f : 'axis. axis:'axis Axis.t -> ('axis, 'a) T.t M.t } [@@unboxed] @@ -346,7 +245,7 @@ module Axis_collection = struct end [@@inline] - module Monadic_identity = Monadic (Misc.Stdlib.Monad.Identity) + module Monadic_identity = Monadic (Misc_stdlib.Monad.Identity) type 'a f = 'a Monadic_identity.f @@ -354,7 +253,7 @@ module Axis_collection = struct end module Map = struct - module Monadic (M : Misc.Stdlib.Monad.S) = struct + module Monadic (M : Misc_stdlib.Monad.S) = struct type ('a, 'b) f = { f : 'axis. axis:'axis Axis.t -> ('axis, 'a) T.t -> ('axis, 'b) T.t M.t @@ -368,7 +267,7 @@ module Axis_collection = struct end [@@inline] - module Monadic_identity = Monadic (Misc.Stdlib.Monad.Identity) + module Monadic_identity = Monadic (Misc_stdlib.Monad.Identity) type ('a, 'b) f = ('a, 'b) Monadic_identity.f @@ -400,7 +299,7 @@ module Axis_collection = struct end module Map2 = struct - module Monadic (M : Misc.Stdlib.Monad.S) = struct + module Monadic (M : Misc_stdlib.Monad.S) = struct type ('a, 'b, 'c) f = { f : 'axis. @@ -420,7 +319,7 @@ module Axis_collection = struct end [@@inline] - module Monadic_identity = Monadic (Misc.Stdlib.Monad.Identity) + module Monadic_identity = Monadic (Misc_stdlib.Monad.Identity) type ('a, 'b, 'c) f = ('a, 'b, 'c) Monadic_identity.f @@ -489,16 +388,15 @@ module Axis_collection = struct end end - module Indexed (T : Misc.T1) = struct + module Indexed (T : Misc_stdlib.T1) = struct include Indexed_gen (struct type ('a, 'b) t = 'a T.t end) type nonrec t = unit t ->>>>>>> ocaml-flambda/flambda-backend:main end - module Identity = Indexed (Misc.Stdlib.Monad.Identity) + module Identity = Indexed (Misc_stdlib.Monad.Identity) include Indexed_gen (struct type ('a, 'b) t = 'b diff --git a/src/ocaml/typing/jkind_axis.mli b/src/ocaml/typing/jkind_axis.mli index ba97cae2d..d05c74adc 100644 --- a/src/ocaml/typing/jkind_axis.mli +++ b/src/ocaml/typing/jkind_axis.mli @@ -68,51 +68,6 @@ module Axis : sig val is_modal : _ t -> bool end -<<<<<<< janestreet/merlin-jst:rae/with-kinds-roll -(** A collection with one item for each jkind axis. - [T] parametizes what element is being held for each axis. *) -module Axis_collection (T : Misc_stdlib.T1) : sig - type t = - { locality : Mode.Locality.Const.t T.t; - linearity : Mode.Linearity.Const.t T.t; - uniqueness : Mode.Uniqueness.Const.t T.t; - portability : Mode.Portability.Const.t T.t; - contention : Mode.Contention.Const.t T.t; - yielding : Mode.Yielding.Const.t T.t; - externality : Externality.t T.t; - nullability : Nullability.t T.t - } - - val get : axis:'a Axis.t -> t -> 'a T.t - - val set : axis:'a Axis.t -> t -> 'a T.t -> t - - module Create_f : sig - (** This record type is used to pass a polymorphic function to [create] *) - type t = { f : 'a. axis:'a Axis.t -> 'a T.t } -||||||| ocaml-flambda/flambda-backend:df4a6e0ba4f74dc790e0ad79f15ea73be1225c4b -(** A collection with one item for each jkind axis. - [T] parametizes what element is being held for each axis. *) -module Axis_collection (T : Misc.T1) : sig - type t = - { locality : Mode.Locality.Const.t T.t; - linearity : Mode.Linearity.Const.t T.t; - uniqueness : Mode.Uniqueness.Const.t T.t; - portability : Mode.Portability.Const.t T.t; - contention : Mode.Contention.Const.t T.t; - yielding : Mode.Yielding.Const.t T.t; - externality : Externality.t T.t; - nullability : Nullability.t T.t - } - - val get : axis:'a Axis.t -> t -> 'a T.t - - val set : axis:'a Axis.t -> t -> 'a T.t -> t - - module Create_f : sig - (** This record type is used to pass a polymorphic function to [create] *) - type t = { f : 'a. axis:'a Axis.t -> 'a T.t } -======= (** A collection with one item for each jkind axis *) module Axis_collection : sig module type S_gen := sig @@ -140,7 +95,7 @@ module Axis_collection : sig (** Create an axis collection by applying the function on each axis *) module Create : sig - module Monadic (M : Misc.Stdlib.Monad.S) : sig + module Monadic (M : Misc_stdlib.Monad.S) : sig type 'a f = { f : 'axis. axis:'axis Axis.t -> ('axis, 'a) u M.t } [@@unboxed] @@ -148,14 +103,14 @@ module Axis_collection : sig end (** This record type is used to pass a polymorphic function to [create] *) - type 'a f = 'a Monadic(Misc.Stdlib.Monad.Identity).f + type 'a f = 'a Monadic(Misc_stdlib.Monad.Identity).f val f : 'a f -> 'a t_poly end (** Map an operation over all the bounds *) module Map : sig - module Monadic (M : Misc.Stdlib.Monad.S) : sig + module Monadic (M : Misc_stdlib.Monad.S) : sig type ('a, 'b) f = { f : 'axis. axis:'axis Axis.t -> ('axis, 'a) u -> ('axis, 'b) u M.t } [@@unboxed] @@ -163,7 +118,7 @@ module Axis_collection : sig val f : ('a, 'b) f -> 'a t_poly -> 'b t_poly M.t end - type ('a, 'b) f = ('a, 'b) Monadic(Misc.Stdlib.Monad.Identity).f + type ('a, 'b) f = ('a, 'b) Monadic(Misc_stdlib.Monad.Identity).f val f : ('a, 'b) f -> 'a t_poly -> 'b t_poly end @@ -177,7 +132,7 @@ module Axis_collection : sig (** Map an operation over two sets of bounds *) module Map2 : sig - module Monadic (M : Misc.Stdlib.Monad.S) : sig + module Monadic (M : Misc_stdlib.Monad.S) : sig type ('a, 'b, 'c) f = { f : 'axis. @@ -191,7 +146,7 @@ module Axis_collection : sig val f : ('a, 'b, 'c) f -> 'a t_poly -> 'b t_poly -> 'c t_poly M.t end - type ('a, 'b, 'c) f = ('a, 'b, 'c) Monadic(Misc.Stdlib.Monad.Identity).f + type ('a, 'b, 'c) f = ('a, 'b, 'c) Monadic(Misc_stdlib.Monad.Identity).f val f : ('a, 'b, 'c) f -> 'a t_poly -> 'b t_poly -> 'c t_poly end @@ -231,7 +186,6 @@ module Axis_collection : sig include S_gen type t = unit t_poly ->>>>>>> ocaml-flambda/flambda-backend:main end module Indexed_gen (T : Misc.T2) : S_poly with type ('a, 'b) u := ('a, 'b) T.t diff --git a/src/ocaml/typing/jkind_types.mli b/src/ocaml/typing/jkind_types.mli index fdb013375..0103bd4c7 100644 --- a/src/ocaml/typing/jkind_types.mli +++ b/src/ocaml/typing/jkind_types.mli @@ -105,161 +105,3 @@ module Layout : sig | Product of t list end end -<<<<<<< janestreet/merlin-jst:rae/with-kinds-roll - -module Layout_and_axes : sig - open Allowance - - (* We need the variance annotation here to allow [any_dummy_jkind] to be - polymorphic in its allowances. Otherwise the value restriction bites. - Sigh. *) - type ('layout, +'d) t = - { layout : 'layout; - modes_upper_bounds : Mode.Alloc.Const.t; - externality_upper_bound : Jkind_axis.Externality.t; - nullability_upper_bound : Jkind_axis.Nullability.t - } - constraint 'd = 'l * 'r - - val map : ('a -> 'b) -> ('a, 'd) t -> ('b, 'd) t - - val map_option : ('a -> 'b option) -> ('a, 'd) t -> ('b, 'd) t option - - val equal : - ('layout -> 'layout -> bool) -> - ('layout, allowed * allowed) t -> - ('layout, allowed * allowed) t -> - bool - - (* An equality check should work over [lr]s only. But we need this - to do memoization in serialization. Happily, that's after all - inference is done, when worrying about l and r does not matter - any more. *) - val equal_after_all_inference_is_done : - ('layout -> 'layout -> bool) -> ('layout, 'd1) t -> ('layout, 'd2) t -> bool - - val try_allow_l : ('layout, 'l * 'r) t -> ('layout, allowed * 'r) t option - - val try_allow_r : ('layout, 'l * 'r) t -> ('layout, 'l * allowed) t option - - val sub : - ('layout -> 'layout -> Misc_stdlib.Le_result.t) -> - ('layout, allowed * 'r) t -> - ('layout, 'l * allowed) t -> - Misc_stdlib.Le_result.t - - val format : - (Format.formatter -> 'layout -> unit) -> - Format.formatter -> - ('layout, 'd) t -> - unit -end - -module Jkind_desc : sig - type ('type_expr, +'d) t = (Sort.t Layout.t, 'd) Layout_and_axes.t - - type 'type_expr packed = Pack : ('type_expr, 'd) t -> 'type_expr packed - [@@unboxed] -end - -type 'type_expr history = - | Interact of - { reason : Jkind_intf.History.interact_reason; - jkind1 : 'type_expr Jkind_desc.packed; - history1 : 'type_expr history; - jkind2 : 'type_expr Jkind_desc.packed; - history2 : 'type_expr history - } - | Creation of Jkind_intf.History.creation_reason - -type ('type_expr, +'d) t = - { jkind : ('type_expr, 'd) Jkind_desc.t; - annotation : Parsetree.jkind_annotation option; - history : 'type_expr history; - has_warned : bool - } - -(** CR layouts v2.8: remove this when printing is improved *) -module Const : sig - type ('type_expr, +'d) t = (Layout.Const.t, 'd) Layout_and_axes.t -end -||||||| ocaml-flambda/flambda-backend:df4a6e0ba4f74dc790e0ad79f15ea73be1225c4b - -module Layout_and_axes : sig - open Allowance - - (* We need the variance annotation here to allow [any_dummy_jkind] to be - polymorphic in its allowances. Otherwise the value restriction bites. - Sigh. *) - type ('layout, +'d) t = - { layout : 'layout; - modes_upper_bounds : Mode.Alloc.Const.t; - externality_upper_bound : Jkind_axis.Externality.t; - nullability_upper_bound : Jkind_axis.Nullability.t - } - constraint 'd = 'l * 'r - - val map : ('a -> 'b) -> ('a, 'd) t -> ('b, 'd) t - - val map_option : ('a -> 'b option) -> ('a, 'd) t -> ('b, 'd) t option - - val equal : - ('layout -> 'layout -> bool) -> - ('layout, allowed * allowed) t -> - ('layout, allowed * allowed) t -> - bool - - (* An equality check should work over [lr]s only. But we need this - to do memoization in serialization. Happily, that's after all - inference is done, when worrying about l and r does not matter - any more. *) - val equal_after_all_inference_is_done : - ('layout -> 'layout -> bool) -> ('layout, 'd1) t -> ('layout, 'd2) t -> bool - - val try_allow_l : ('layout, 'l * 'r) t -> ('layout, allowed * 'r) t option - - val try_allow_r : ('layout, 'l * 'r) t -> ('layout, 'l * allowed) t option - - val sub : - ('layout -> 'layout -> Misc.Le_result.t) -> - ('layout, allowed * 'r) t -> - ('layout, 'l * allowed) t -> - Misc.Le_result.t - - val format : - (Format.formatter -> 'layout -> unit) -> - Format.formatter -> - ('layout, 'd) t -> - unit -end - -module Jkind_desc : sig - type ('type_expr, +'d) t = (Sort.t Layout.t, 'd) Layout_and_axes.t - - type 'type_expr packed = Pack : ('type_expr, 'd) t -> 'type_expr packed - [@@unboxed] -end - -type 'type_expr history = - | Interact of - { reason : Jkind_intf.History.interact_reason; - jkind1 : 'type_expr Jkind_desc.packed; - history1 : 'type_expr history; - jkind2 : 'type_expr Jkind_desc.packed; - history2 : 'type_expr history - } - | Creation of Jkind_intf.History.creation_reason - -type ('type_expr, +'d) t = - { jkind : ('type_expr, 'd) Jkind_desc.t; - annotation : Parsetree.jkind_annotation option; - history : 'type_expr history; - has_warned : bool - } - -(** CR layouts v2.8: remove this when printing is improved *) -module Const : sig - type ('type_expr, +'d) t = (Layout.Const.t, 'd) Layout_and_axes.t -end -======= ->>>>>>> ocaml-flambda/flambda-backend:main diff --git a/src/ocaml/typing/oprint.ml b/src/ocaml/typing/oprint.ml index 41f8a2a21..fd3bdc63a 100644 --- a/src/ocaml/typing/oprint.ml +++ b/src/ocaml/typing/oprint.ml @@ -342,98 +342,6 @@ let pr_var = Pprintast.tyvar let ty_var ~non_gen ppf s = pr_var ppf (if non_gen then "_" ^ s else s) -<<<<<<< janestreet/merlin-jst:rae/with-kinds-roll -let print_out_jkind_const ppf ojkind = - let rec pp_element ~nested ppf (ojkind : Outcometree.out_jkind_const) = - match ojkind with - | Ojkind_const_default -> fprintf ppf "_" - | Ojkind_const_abbreviation abbrev -> fprintf ppf "%s" abbrev - | Ojkind_const_mod (base, modes) -> - Misc_stdlib.pp_parens_if nested (fun ppf (base, modes) -> - fprintf ppf "%a mod @[%a@]" (pp_element ~nested:true) base - (pp_print_list - ~pp_sep:(fun ppf () -> fprintf ppf "@ ") - (fun ppf -> fprintf ppf "%s")) - modes - ) ppf (base, modes) - | Ojkind_const_product ts -> - let pp_sep ppf () = Format.fprintf ppf "@ & " in - Misc_stdlib.pp_nested_list ~nested ~pp_element ~pp_sep ppf ts - | Ojkind_const_with _ | Ojkind_const_kind_of _ -> - failwith "XXX unimplemented jkind syntax" - in - pp_element ~nested:false ppf ojkind - -let print_out_jkind ppf ojkind = - let rec pp_element ~nested ppf ojkind = - match ojkind with - | Ojkind_var v -> fprintf ppf "%s" v - | Ojkind_const jkind -> print_out_jkind_const ppf jkind - | Ojkind_product ts -> - let pp_sep ppf () = Format.fprintf ppf "@ & " in - Misc_stdlib.pp_nested_list ~nested ~pp_element ~pp_sep ppf ts - in - pp_element ~nested:false ppf ojkind - -let print_out_jkind_annot ppf = function - | None -> () - | Some lay -> fprintf ppf "@ : %a" print_out_jkind lay - -let pr_var_jkind ppf (v, l) = match l with - | None -> pr_var ppf v - | Some lay -> fprintf ppf "(%a : %a)" - pr_var v - print_out_jkind lay - -let pr_var_jkinds = - print_list pr_var_jkind (fun ppf -> fprintf ppf "@ ") -||||||| ocaml-flambda/flambda-backend:df4a6e0ba4f74dc790e0ad79f15ea73be1225c4b -let print_out_jkind_const ppf ojkind = - let rec pp_element ~nested ppf (ojkind : Outcometree.out_jkind_const) = - match ojkind with - | Ojkind_const_default -> fprintf ppf "_" - | Ojkind_const_abbreviation abbrev -> fprintf ppf "%s" abbrev - | Ojkind_const_mod (base, modes) -> - Misc.pp_parens_if nested (fun ppf (base, modes) -> - fprintf ppf "%a mod @[%a@]" (pp_element ~nested:true) base - (pp_print_list - ~pp_sep:(fun ppf () -> fprintf ppf "@ ") - (fun ppf -> fprintf ppf "%s")) - modes - ) ppf (base, modes) - | Ojkind_const_product ts -> - let pp_sep ppf () = Format.fprintf ppf "@ & " in - Misc.pp_nested_list ~nested ~pp_element ~pp_sep ppf ts - | Ojkind_const_with _ | Ojkind_const_kind_of _ -> - failwith "XXX unimplemented jkind syntax" - in - pp_element ~nested:false ppf ojkind - -let print_out_jkind ppf ojkind = - let rec pp_element ~nested ppf ojkind = - match ojkind with - | Ojkind_var v -> fprintf ppf "%s" v - | Ojkind_const jkind -> print_out_jkind_const ppf jkind - | Ojkind_product ts -> - let pp_sep ppf () = Format.fprintf ppf "@ & " in - Misc.pp_nested_list ~nested ~pp_element ~pp_sep ppf ts - in - pp_element ~nested:false ppf ojkind - -let print_out_jkind_annot ppf = function - | None -> () - | Some lay -> fprintf ppf "@ : %a" print_out_jkind lay - -let pr_var_jkind ppf (v, l) = match l with - | None -> pr_var ppf v - | Some lay -> fprintf ppf "(%a : %a)" - pr_var v - print_out_jkind lay - -let pr_var_jkinds = - print_list pr_var_jkind (fun ppf -> fprintf ppf "@ ") -======= ->>>>>>> ocaml-flambda/flambda-backend:main (* NON-LEGACY MODES Here, we are printing mode annotations even if the mode extension is diff --git a/src/ocaml/typing/printtyp.ml b/src/ocaml/typing/printtyp.ml index b1699a94c..b8e508229 100644 --- a/src/ocaml/typing/printtyp.ml +++ b/src/ocaml/typing/printtyp.ml @@ -1921,19 +1921,11 @@ let tree_of_type_decl ?(print_non_value_inferred_jkind = false) id decl = Note [When to print jkind annotations] *) let is_value = Jkind.is_value_for_printing ~ignore_null:false decl.type_jkind in let otype_jkind = -<<<<<<< janestreet/merlin-jst:rae/with-kinds-roll - match ty, is_value, decl.type_has_illegal_crossings, print_non_value_inferred_jkind with + match ty, is_value, unsafe_mode_crossing, print_non_value_inferred_jkind with | (Otyp_abstract, false, _, _) | (_, _, true, _) (* Merlin only: we print the inferred jkind (not the jkind annotation) if the user asked for it hard enough. *) | (_, false, _, true) -> -||||||| ocaml-flambda/flambda-backend:df4a6e0ba4f74dc790e0ad79f15ea73be1225c4b - match ty, is_value, decl.type_has_illegal_crossings with - | (Otyp_abstract, false, _) | (_, _, true) -> -======= - match ty, is_value, unsafe_mode_crossing with - | (Otyp_abstract, false, _) | (_, _, true) -> ->>>>>>> ocaml-flambda/flambda-backend:main (* The two cases of (C1) from the Note correspond to Otyp_abstract. Anything but the default must be user-written, so we print the user-written annotation. *) diff --git a/src/ocaml/typing/typedecl.ml b/src/ocaml/typing/typedecl.ml index eb7eaf9f0..4006177cf 100644 --- a/src/ocaml/typing/typedecl.ml +++ b/src/ocaml/typing/typedecl.ml @@ -1610,7 +1610,7 @@ let update_constructor_representation let add_types_to_env decls shapes env = List.fold_right2 (fun (id, decl) shape env -> - add_type ~check:true ~shape id decl env) + add_type ~long_path:false ~check:true ~shape id decl env) decls shapes env (* This function updates jkind stored in kinds with more accurate jkinds. @@ -2450,20 +2450,6 @@ let check_redefined_unit (td: Parsetree.type_declaration) = | _ -> () -<<<<<<< janestreet/merlin-jst:rae/with-kinds-roll -let add_types_to_env decls shapes env = - List.fold_right2 - (fun (id, decl) shape env -> - add_type ~long_path:false ~check:true ~shape id decl env) - decls shapes env -||||||| ocaml-flambda/flambda-backend:df4a6e0ba4f74dc790e0ad79f15ea73be1225c4b -let add_types_to_env decls shapes env = - List.fold_right2 - (fun (id, decl) shape env -> - add_type ~check:true ~shape id decl env) - decls shapes env -======= - (* Note [Quality of jkinds during inference] ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -2562,7 +2548,6 @@ let normalize_decl_jkinds env shapes decls = env decls shapes ->>>>>>> ocaml-flambda/flambda-backend:main (* Translate a set of type declarations, mutually recursive or not *) let transl_type_decl env rec_flag sdecl_list = diff --git a/src/ocaml/typing/typemod.ml b/src/ocaml/typing/typemod.ml index c6c4d9fb4..f5640af65 100644 --- a/src/ocaml/typing/typemod.ml +++ b/src/ocaml/typing/typemod.ml @@ -2619,38 +2619,6 @@ let maybe_infer_modalities ~loc ~env ~md_mode ~mode = Mode.Modality.Value.id end -let rec type_module ?(alias=false) sttn funct_body anchor env smod = - (* Merlin: when we start typing a module we don't want to include potential - saved_items from its parent. We backup them before starting and restore them - when finished. *) - Msupport.with_saved_types @@ fun () -> - try - Builtin_attributes.warning_scope smod.pmod_attributes - (fun () -> type_module_aux ~alias sttn funct_body anchor env smod) - with exn -> - Msupport.raise_error exn; - { mod_desc = Tmod_structure { - str_items = []; - str_type = []; - str_final_env = env; -<<<<<<< janestreet/merlin-jst:rae/with-kinds-roll - }; - mod_type = Mty_signature []; - mod_env = env; - mod_attributes = Msupport.flush_saved_types () @ smod.pmod_attributes; - mod_loc = smod.pmod_loc }, - Shape.dummy_mod -||||||| ocaml-flambda/flambda-backend:df4a6e0ba4f74dc790e0ad79f15ea73be1225c4b - Mode.Modality.Value.id - end - -let rec type_module ?(alias=false) sttn funct_body anchor env smod = - Builtin_attributes.warning_scope smod.pmod_attributes - (fun () -> type_module_aux ~alias sttn funct_body anchor env smod) -======= - Mode.Modality.Value.id - end - type alias = | No : alias (** The module is in a context that doesn't treat aliases specially. *) @@ -2675,10 +2643,26 @@ let rec type_module ?(alias=false) sttn funct_body anchor env smod = assert (Env.locks_is_empty locks); md, shape -and type_module_maybe_hold_locks ~alias sttn funct_body anchor env smod = - Builtin_attributes.warning_scope smod.pmod_attributes - (fun () -> type_module_aux ~alias sttn funct_body anchor env smod) ->>>>>>> ocaml-flambda/flambda-backend:main +and type_module_maybe_hold_locks ~alias sttn funct_body anchor env smod = + (* Merlin: when we start typing a module we don't want to include potential + saved_items from its parent. We backup them before starting and restore them + when finished. *) + Msupport.with_saved_types @@ fun () -> + try + Builtin_attributes.warning_scope smod.pmod_attributes + (fun () -> type_module_aux ~alias sttn funct_body anchor env smod) + with exn -> + Msupport.raise_error exn; + { mod_desc = Tmod_structure { + str_items = []; + str_type = []; + str_final_env = env; + }; + mod_type = Mty_signature []; + mod_env = env; + mod_attributes = Msupport.flush_saved_types () @ smod.pmod_attributes; + mod_loc = smod.pmod_loc }, + Shape.dummy_mod and type_module_aux ~alias sttn funct_body anchor env smod = match smod.pmod_desc with @@ -2750,21 +2734,9 @@ and type_module_aux ~alias sttn funct_body anchor env smod = | Pmod_constraint(sarg, smty, smode) -> check_no_modal_modules ~env smode; let smty = Option.get smty in -<<<<<<< janestreet/merlin-jst:rae/with-kinds-roll - let arg, arg_shape = type_module ~alias true funct_body anchor env sarg in -||||||| ocaml-flambda/flambda-backend:df4a6e0ba4f74dc790e0ad79f15ea73be1225c4b - let arg, arg_shape = type_module ~alias true funct_body anchor env sarg in - let mty = transl_modtype env smty in - let md, final_shape = - wrap_constraint_with_shape env true arg mty.mty_type arg_shape -======= let arg, arg_shape, locks = type_module_maybe_hold_locks ~alias true funct_body anchor env sarg in - let mty = transl_modtype env smty in - let md, final_shape = - wrap_constraint_with_shape env true arg mty.mty_type arg_shape ->>>>>>> ocaml-flambda/flambda-backend:main begin try let mty = transl_modtype env smty in let md, final_shape = @@ -2775,7 +2747,7 @@ and type_module_aux ~alias sttn funct_body anchor env smod = mod_loc = smod.pmod_loc; mod_attributes = smod.pmod_attributes; }, - final_shape + final_shape, locks with exn -> (* [merlin] For better Construct error messages we need to keep holes in the recovered typedtree *) @@ -2789,21 +2761,9 @@ and type_module_aux ~alias sttn funct_body anchor env smod = mod_env = env; mod_attributes = sarg.pmod_attributes; }, -<<<<<<< janestreet/merlin-jst:rae/with-kinds-roll - Shape.dummy_mod + Shape.dummy_mod, locks | _ -> raise exn end -||||||| ocaml-flambda/flambda-backend:df4a6e0ba4f74dc790e0ad79f15ea73be1225c4b - mod_loc = smod.pmod_loc; - mod_attributes = smod.pmod_attributes; - }, - final_shape -======= - mod_loc = smod.pmod_loc; - mod_attributes = smod.pmod_attributes; - }, - final_shape, locks ->>>>>>> ocaml-flambda/flambda-backend:main | Pmod_unpack sexp -> let exp = Ctype.with_local_level_if_principal @@ -2837,8 +2797,7 @@ and type_module_aux ~alias sttn funct_body anchor env smod = mod_env = env; mod_attributes = smod.pmod_attributes; mod_loc = smod.pmod_loc }, -<<<<<<< janestreet/merlin-jst:rae/with-kinds-roll - Shape.leaf_for_unpack + Shape.leaf_for_unpack, Env.locks_empty | Pmod_extension ({ txt; _ }, _) when txt = Ast_helper.hole_txt -> { mod_desc = Tmod_typed_hole; mod_type = Mty_for_hole; @@ -2846,11 +2805,6 @@ and type_module_aux ~alias sttn funct_body anchor env smod = mod_attributes = smod.pmod_attributes; mod_loc = smod.pmod_loc }, Shape.dummy_mod -||||||| ocaml-flambda/flambda-backend:df4a6e0ba4f74dc790e0ad79f15ea73be1225c4b - Shape.leaf_for_unpack -======= - Shape.leaf_for_unpack, Env.locks_empty ->>>>>>> ocaml-flambda/flambda-backend:main | Pmod_extension ext -> raise (Error_forward (Builtin_attributes.error_of_extension ext)) | Pmod_instance glob -> @@ -3914,18 +3868,6 @@ let type_implementation target modulename initial_env ast = ignore @@ Warnings.parse_options false "-32-34-37-38-60"; if !Clflags.as_parameter then error Cannot_compile_implementation_as_parameter; -<<<<<<< janestreet/merlin-jst:rae/with-kinds-roll - register_params !Clflags.parameters; -||||||| ocaml-flambda/flambda-backend:df4a6e0ba4f74dc790e0ad79f15ea73be1225c4b - register_params !Clflags.parameters; - let (str, sg, names, shape, finalenv) = - Profile.record_call "infer" (fun () -> - type_structure initial_env ast) in -======= - let (str, sg, names, shape, finalenv) = - Profile.record_call "infer" (fun () -> - type_structure initial_env ast) in ->>>>>>> ocaml-flambda/flambda-backend:main let (str, sg, names, shape, finalenv) = type_structure initial_env ast in let uid = Uid.of_compilation_unit_id modulename in let shape = Shape.set_uid_if_none shape uid in From fcbc4db67be1f4e2b53cd5217a42c82359ec343b Mon Sep 17 00:00:00 2001 From: Richard Eisenberg Date: Tue, 11 Feb 2025 16:47:12 -0500 Subject: [PATCH 05/25] Fix the build --- src/analysis/completion.ml | 6 +- src/analysis/construct.ml | 6 +- src/analysis/destruct.ml | 4 +- src/analysis/ptyp_of_type.ml | 6 +- src/kernel/mconfig.ml | 10 +- src/kernel/mconfig.mli | 2 +- src/ocaml/parsing/builtin_attributes.ml | 2 + src/ocaml/preprocess/menhirLib.ml | 412 +- src/ocaml/preprocess/menhirLib.mli | 316 +- src/ocaml/preprocess/parser_printer.ml | 2 + src/ocaml/preprocess/parser_raw.ml | 68557 +++++++++++----------- src/ocaml/preprocess/parser_raw.mli | 1 + src/ocaml/preprocess/parser_recover.ml | 9292 +-- src/ocaml/typing/includecore.ml | 6 +- src/ocaml/typing/jkind.ml | 8 +- src/ocaml/typing/jkind.mli | 2 +- src/ocaml/typing/jkind_axis.mli | 4 +- src/ocaml/typing/mode_intf.mli | 2 +- src/ocaml/typing/oprint.ml | 6 +- src/ocaml/typing/typedecl.ml | 6 +- src/ocaml/typing/typemod.ml | 4 +- src/ocaml/typing/types.ml | 2 +- src/ocaml/typing/types.mli | 2 +- src/ocaml/utils/clflags.ml | 4 +- src/ocaml/utils/clflags.mli | 4 +- src/ocaml/utils/misc_stdlib.ml | 94 +- src/ocaml/utils/misc_stdlib.mli | 82 +- src/sherlodoc/type_parser.ml | 1011 +- 28 files changed, 41091 insertions(+), 38762 deletions(-) diff --git a/src/analysis/completion.ml b/src/analysis/completion.ml index d019ef604..e9e96809a 100644 --- a/src/analysis/completion.ml +++ b/src/analysis/completion.ml @@ -289,7 +289,7 @@ let fold_sumtype_constructors ~env ~init ~f t = | Type_record_unboxed_product _ | Type_abstract _ | Type_open -> init - | Type_variant (constrs, _) -> List.fold_right constrs ~init ~f + | Type_variant (constrs, _, _) -> List.fold_right constrs ~init ~f end | _ -> init @@ -678,7 +678,7 @@ let branch_complete buffer ?get_doc ?target_type ?kinds ~keywords prefix = match Types.get_desc t with | Types.Tconstr (p, _, _) -> ( match (Env.find_type p env).Types.type_kind with - | Types.Type_record (labels, _) -> Declaration (t, labels) + | Types.Type_record (labels, _, _) -> Declaration (t, labels) | _ -> Maybe) | _ -> Maybe with _ -> Maybe @@ -722,7 +722,7 @@ let branch_complete buffer ?get_doc ?target_type ?kinds ~keywords prefix = Description labels with _ -> ( match decl.Types.type_kind with - | Types.Type_record (lbls, _) -> Declaration (ty, lbls) + | Types.Type_record (lbls, _, _) -> Declaration (ty, lbls) | _ -> Maybe) end | _ | (exception _) -> Maybe diff --git a/src/analysis/construct.ml b/src/analysis/construct.ml index 30558ed17..e346f1e12 100644 --- a/src/analysis/construct.ml +++ b/src/analysis/construct.ml @@ -504,9 +504,9 @@ module Gen = struct with Not_found -> ( let def = Env.find_type_descrs path env in match def with - | Type_variant (constrs, _) -> constructor env rtyp path constrs - | Type_record (labels, _) -> record env rtyp path labels Legacy - | Type_record_unboxed_product (labels, _) -> + | Type_variant (constrs, _, _) -> constructor env rtyp path constrs + | Type_record (labels, _, _) -> record env rtyp path labels Legacy + | Type_record_unboxed_product (labels, _, _) -> record env rtyp path labels Unboxed_product | Type_abstract _ | Type_open -> []) end diff --git a/src/analysis/destruct.ml b/src/analysis/destruct.ml index 7bca62e53..4eb3e984f 100644 --- a/src/analysis/destruct.ml +++ b/src/analysis/destruct.ml @@ -101,7 +101,7 @@ let rec gen_patterns ?(recurse = true) env type_expr = [ Tast_helper.Pat.tuple env type_expr patterns ] | Tconstr (path, _params, _) -> begin match Env.find_type_descrs path env with - | Type_record (labels, _) -> + | Type_record (labels, _, _) -> let lst = List.map labels ~f:(fun lbl_descr -> let lidloc = mk_id lbl_descr.lbl_name in @@ -111,7 +111,7 @@ let rec gen_patterns ?(recurse = true) env type_expr = (mk_var lbl_descr.lbl_name) )) in [ Tast_helper.Pat.record env type_expr lst Asttypes.Closed ] - | Type_variant (constructors, _) -> + | Type_variant (constructors, _, _) -> let prefix = let path = Printtyp.shorten_type_path env path in fun name -> diff --git a/src/analysis/ptyp_of_type.ml b/src/analysis/ptyp_of_type.ml index f818dc79d..46de3ab62 100644 --- a/src/analysis/ptyp_of_type.ml +++ b/src/analysis/ptyp_of_type.ml @@ -226,11 +226,11 @@ and type_declaration id match type_kind with | Type_abstract _ -> Parsetree.Ptype_abstract | Type_open -> Ptype_open - | Type_variant (constrs, _) -> + | Type_variant (constrs, _, _) -> Ptype_variant (List.map ~f:constructor_declaration constrs) - | Type_record (labels, _repr) -> + | Type_record (labels, _repr, _) -> Ptype_record (List.map ~f:label_declaration labels) - | Type_record_unboxed_product (labels, _repr) -> + | Type_record_unboxed_product (labels, _repr, _) -> Ptype_record_unboxed_product (List.map ~f:label_declaration labels) in let manifest = Option.map ~f:core_type type_manifest in diff --git a/src/kernel/mconfig.ml b/src/kernel/mconfig.ml index e09ed6670..b2fecfb7e 100644 --- a/src/kernel/mconfig.ml +++ b/src/kernel/mconfig.ml @@ -26,7 +26,7 @@ type ocaml = parameters : string list; as_parameter : bool; as_argument_for : string option; - zero_alloc_check : Zero_alloc_annotations.t; + zero_alloc_check : Zero_alloc_annotations.Check.t; allow_illegal_crossing : bool } @@ -57,7 +57,7 @@ let dump_ocaml x = ("parameters", `List (List.map ~f:Json.string x.parameters)); ("as_parameter", `Bool x.as_parameter); ( "zero_alloc_check", - `String (Zero_alloc_annotations.to_string x.zero_alloc_check) ) + `String (Zero_alloc_annotations.Check.to_string x.zero_alloc_check) ) ] (** Some paths can be resolved relative to a current working directory *) @@ -828,12 +828,12 @@ let ocaml_flags = ); ( "-zero-alloc-check", Marg.param "string" (fun zero_alloc_str ocaml -> - match Zero_alloc_annotations.of_string zero_alloc_str with + match Zero_alloc_annotations.Check.of_string zero_alloc_str with | Some zero_alloc_check -> { ocaml with zero_alloc_check } | None -> failwith ("Invalid value for -zero-alloc-check: " ^ zero_alloc_str)), " Check that annotated functions do not allocate and do not have \ - indirect calls. " ^ Zero_alloc_annotations.doc ); + indirect calls. " ^ Zero_alloc_annotations.Check.doc ); ( "-allow-illegal-crossing", Marg.unit (fun ocaml -> { ocaml with allow_illegal_crossing = true }), "Type declarations will not be checked along the portability or \ @@ -865,7 +865,7 @@ let initial = parameters = []; as_parameter = false; as_argument_for = None; - zero_alloc_check = Zero_alloc_annotations.Check_default; + zero_alloc_check = Zero_alloc_annotations.Check.Check_default; allow_illegal_crossing = false }; merlin = diff --git a/src/kernel/mconfig.mli b/src/kernel/mconfig.mli index f037a6adc..df763eeac 100644 --- a/src/kernel/mconfig.mli +++ b/src/kernel/mconfig.mli @@ -24,7 +24,7 @@ type ocaml = parameters : string list; as_parameter : bool; as_argument_for : string option; - zero_alloc_check : Zero_alloc_annotations.t; + zero_alloc_check : Zero_alloc_annotations.Check.t; allow_illegal_crossing : bool } diff --git a/src/ocaml/parsing/builtin_attributes.ml b/src/ocaml/parsing/builtin_attributes.ml index 74b23453f..cd77467c7 100644 --- a/src/ocaml/parsing/builtin_attributes.ml +++ b/src/ocaml/parsing/builtin_attributes.ml @@ -653,7 +653,9 @@ let parse_standard_interface_attributes attr = principal_attribute attr; noprincipal_attribute attr; nolabels_attribute attr; + (* merlin-jst: See {comments} above zero_alloc_attribute ~in_signature:true attr; + *) unsafe_allow_any_mode_crossing_attribute attr let parse_standard_implementation_attributes attr = diff --git a/src/ocaml/preprocess/menhirLib.ml b/src/ocaml/preprocess/menhirLib.ml index 753d5e7c3..ee7f581f2 100644 --- a/src/ocaml/preprocess/menhirLib.ml +++ b/src/ocaml/preprocess/menhirLib.ml @@ -1,14 +1,11 @@ module General = struct (******************************************************************************) (* *) -(* Menhir *) +(* Menhir *) (* *) -(* François Pottier, Inria Paris *) -(* Yann Régis-Gianas, PPS, Université Paris Diderot *) -(* *) -(* Copyright Inria. All rights reserved. This file is distributed under the *) -(* terms of the GNU Library General Public License version 2, with a *) -(* special exception on linking, as described in the file LICENSE. *) +(* Copyright Inria. All rights reserved. This file is distributed under *) +(* the terms of the GNU Library General Public License version 2, with a *) +(* special exception on linking, as described in the file LICENSE. *) (* *) (******************************************************************************) @@ -89,14 +86,11 @@ end module Convert = struct (******************************************************************************) (* *) -(* Menhir *) -(* *) -(* François Pottier, Inria Paris *) -(* Yann Régis-Gianas, PPS, Université Paris Diderot *) +(* Menhir *) (* *) -(* Copyright Inria. All rights reserved. This file is distributed under the *) -(* terms of the GNU Library General Public License version 2, with a *) -(* special exception on linking, as described in the file LICENSE. *) +(* Copyright Inria. All rights reserved. This file is distributed under *) +(* the terms of the GNU Library General Public License version 2, with a *) +(* special exception on linking, as described in the file LICENSE. *) (* *) (******************************************************************************) @@ -212,14 +206,11 @@ end module IncrementalEngine = struct (******************************************************************************) (* *) -(* Menhir *) -(* *) -(* François Pottier, Inria Paris *) -(* Yann Régis-Gianas, PPS, Université Paris Diderot *) +(* Menhir *) (* *) -(* Copyright Inria. All rights reserved. This file is distributed under the *) -(* terms of the GNU Library General Public License version 2, with a *) -(* special exception on linking, as described in the file LICENSE. *) +(* Copyright Inria. All rights reserved. This file is distributed under *) +(* the terms of the GNU Library General Public License version 2, with a *) +(* special exception on linking, as described in the file LICENSE. *) (* *) (******************************************************************************) @@ -300,12 +291,12 @@ module type INCREMENTAL_ENGINE = sig 'a checkpoint (* [resume] allows the user to resume the parser after it has suspended - itself with a checkpoint of the form [AboutToReduce (env, prod)] or - [HandlingError env]. [resume] expects the old checkpoint and produces a + itself with a checkpoint of the form [Shifting _], [AboutToReduce _], or + [HandlingError _]. [resume] expects the old checkpoint and produces a new checkpoint. It does not raise any exception. *) (* The optional argument [strategy] influences the manner in which [resume] - deals with checkpoints of the form [ErrorHandling _]. Its default value + deals with checkpoints of the form [HandlingError _]. Its default value is [`Legacy]. It can be briefly described as follows: - If the [error] token is used only to report errors (that is, if the @@ -701,14 +692,11 @@ end module EngineTypes = struct (******************************************************************************) (* *) -(* Menhir *) +(* Menhir *) (* *) -(* François Pottier, Inria Paris *) -(* Yann Régis-Gianas, PPS, Université Paris Diderot *) -(* *) -(* Copyright Inria. All rights reserved. This file is distributed under the *) -(* terms of the GNU Library General Public License version 2, with a *) -(* special exception on linking, as described in the file LICENSE. *) +(* Copyright Inria. All rights reserved. This file is distributed under *) +(* the terms of the GNU Library General Public License version 2, with a *) +(* special exception on linking, as described in the file LICENSE. *) (* *) (******************************************************************************) @@ -789,6 +777,53 @@ type ('state, 'semantic_value, 'token) env = { (* --------------------------------------------------------------------------- *) +(* A number of logging hooks are used to (optionally) emit logging messages. *) + +(* The comments indicate the conventional messages that correspond + to these hooks in the code-based back-end; see [CodeBackend]. *) + +module type LOG = sig + + type state + type terminal + type production + + (* State %d: *) + + val state: state -> unit + + (* Shifting () to state *) + + val shift: terminal -> state -> unit + + (* Reducing a production should be logged either as a reduction + event (for regular productions) or as an acceptance event (for + start productions). *) + + (* Reducing production / Accepting *) + + val reduce_or_accept: production -> unit + + (* Lookahead token is now (-) *) + + val lookahead_token: terminal -> Lexing.position -> Lexing.position -> unit + + (* Initiating error handling *) + + val initiating_error_handling: unit -> unit + + (* Resuming error handling *) + + val resuming_error_handling: unit -> unit + + (* Handling error in state *) + + val handling_error: state -> unit + +end + +(* --------------------------------------------------------------------------- *) + (* This signature describes the parameters that must be supplied to the LR engine. *) @@ -910,6 +945,16 @@ module type TABLE = sig ('env -> 'answer) -> 'env -> 'answer + (**[maybe_shift_t s t] determines whether there exists a transition out of + the state [s], labeled with the terminal symbol [t], to some state + [s']. If so, it returns [Some s']. Otherwise, it returns [None]. *) + val maybe_shift_t : state -> terminal -> state option + + (**[may_reduce_prod s t prod] determines whether in the state [s], with + lookahead symbol [t], the automaton reduces production [prod]. This test + accounts for the possible existence of a default reduction. *) + val may_reduce_prod : state -> terminal -> production -> bool + (* This is the automaton's goto table. This table maps a pair of a state and a nonterminal symbol to a new state. By extension, it also maps a pair of a state and a production to a new state. *) @@ -925,6 +970,11 @@ module type TABLE = sig val goto_prod: state -> production -> state val maybe_goto_nt: state -> nonterminal -> state option + (* [lhs prod] returns the left-hand side of production [prod], + a nonterminal symbol. *) + + val lhs: production -> nonterminal + (* [is_start prod] tells whether the production [prod] is a start production. *) val is_start: production -> bool @@ -965,51 +1015,17 @@ module type TABLE = sig val may_reduce: state -> production -> bool - (* The LR engine requires a number of hooks, which are used for logging. *) - - (* The comments below indicate the conventional messages that correspond - to these hooks in the code-based back-end; see [CodeBackend]. *) - (* If the flag [log] is false, then the logging functions are not called. If it is [true], then they are called. *) val log : bool - module Log : sig - - (* State %d: *) - - val state: state -> unit - - (* Shifting () to state *) - - val shift: terminal -> state -> unit - - (* Reducing a production should be logged either as a reduction - event (for regular productions) or as an acceptance event (for - start productions). *) - - (* Reducing production / Accepting *) - - val reduce_or_accept: production -> unit - - (* Lookahead token is now (-) *) - - val lookahead_token: terminal -> Lexing.position -> Lexing.position -> unit - - (* Initiating error handling *) - - val initiating_error_handling: unit -> unit + (* The logging hooks required by the LR engine. *) - (* Resuming error handling *) - - val resuming_error_handling: unit -> unit - - (* Handling error in state *) - - val handling_error: state -> unit - - end + module Log : LOG + with type state := state + and type terminal := terminal + and type production := production end @@ -1102,14 +1118,11 @@ end module Engine = struct (******************************************************************************) (* *) -(* Menhir *) +(* Menhir *) (* *) -(* François Pottier, Inria Paris *) -(* Yann Régis-Gianas, PPS, Université Paris Diderot *) -(* *) -(* Copyright Inria. All rights reserved. This file is distributed under the *) -(* terms of the GNU Library General Public License version 2, with a *) -(* special exception on linking, as described in the file LICENSE. *) +(* Copyright Inria. All rights reserved. This file is distributed under *) +(* the terms of the GNU Library General Public License version 2, with a *) +(* special exception on linking, as described in the file LICENSE. *) (* *) (******************************************************************************) @@ -1256,8 +1269,7 @@ module Make (T : TABLE) = struct (* The following recursive group of functions are tail recursive, produce a checkpoint of type [semantic_value checkpoint], and cannot raise an - exception. A semantic action can raise [Error], but this exception is - immediately caught within [reduce]. *) + exception. *) let rec run env please_discard : semantic_value checkpoint = @@ -1413,33 +1425,22 @@ module Make (T : TABLE) = struct (* Invoke the semantic action. The semantic action is responsible for truncating the stack and pushing a new cell onto the stack, which - contains a new semantic value. It can raise [Error]. *) - - (* If the semantic action terminates normally, it returns a new stack, + contains a new semantic value. The semantic action returns a new stack, which becomes the current stack. *) - (* If the semantic action raises [Error], we catch it and initiate error - handling. *) - - (* This [match/with/exception] construct requires OCaml 4.02. *) + let stack = T.semantic_action prod env in - match T.semantic_action prod env with - | stack -> + (* By our convention, the semantic action has produced an updated + stack. The state now found in the top stack cell is the return + state. *) - (* By our convention, the semantic action has produced an updated - stack. The state now found in the top stack cell is the return - state. *) + (* Perform a goto transition. The target state is determined + by consulting the goto table at the return state and at + production [prod]. *) - (* Perform a goto transition. The target state is determined - by consulting the goto table at the return state and at - production [prod]. *) - - let current = T.goto_prod stack.state prod in - let env = { env with stack; current } in - run env false - - | exception Error -> - initiate env + let current = T.goto_prod stack.state prod in + let env = { env with stack; current } in + run env false and accept env prod = (* Log an accept event. *) @@ -1618,10 +1619,10 @@ module Make (T : TABLE) = struct checkpoint of the form [InputNeeded env]. It checks that [checkpoint] is indeed of this form, and invokes [discard]. *) - (* [resume checkpoint] is invoked by the user in response to a checkpoint of - the form [AboutToReduce (env, prod)] or [HandlingError env]. It checks - that [checkpoint] is indeed of this form, and invokes [reduce] or - [error], as appropriate. *) + (* [resume checkpoint] is invoked by the user in response to a checkpoint + of the form [Shifting _], [AboutToReduce _], or [HandlingError env]. It + checks that [checkpoint] is indeed of this form, and invokes [reduce] + or [error], as appropriate. *) (* In reality, [offer] and [resume] accept an argument of type [semantic_value checkpoint] and produce a checkpoint of the same type. @@ -2063,14 +2064,11 @@ end module ErrorReports = struct (******************************************************************************) (* *) -(* Menhir *) -(* *) -(* François Pottier, Inria Paris *) -(* Yann Régis-Gianas, PPS, Université Paris Diderot *) +(* Menhir *) (* *) -(* Copyright Inria. All rights reserved. This file is distributed under the *) -(* terms of the GNU Library General Public License version 2, with a *) -(* special exception on linking, as described in the file LICENSE. *) +(* Copyright Inria. All rights reserved. This file is distributed under *) +(* the terms of the GNU Library General Public License version 2, with a *) +(* special exception on linking, as described in the file LICENSE. *) (* *) (******************************************************************************) @@ -2229,14 +2227,11 @@ end module LexerUtil = struct (******************************************************************************) (* *) -(* Menhir *) +(* Menhir *) (* *) -(* François Pottier, Inria Paris *) -(* Yann Régis-Gianas, PPS, Université Paris Diderot *) -(* *) -(* Copyright Inria. All rights reserved. This file is distributed under the *) -(* terms of the GNU Library General Public License version 2, with a *) -(* special exception on linking, as described in the file LICENSE. *) +(* Copyright Inria. All rights reserved. This file is distributed under *) +(* the terms of the GNU Library General Public License version 2, with a *) +(* special exception on linking, as described in the file LICENSE. *) (* *) (******************************************************************************) @@ -2280,18 +2275,40 @@ let range ((pos1, pos2) as range) = sprintf "File \"%s\", line %d, characters %d-%d:\n" file line char1 char2 (* use [char1 + 1] and [char2 + 1] if *not* using Caml mode *) + +let tabulate (type a) (is_eof : a -> bool) (lexer : unit -> a) : unit -> a = + (* Read tokens from the lexer until we hit an EOF token. *) + let rec read tokens = + let token = lexer() in + let tokens = token :: tokens in + if is_eof token then + (* Once done, reverse the list and convert it to an array. *) + tokens |> List.rev |> Array.of_list + else + read tokens + in + (* We now have an array of tokens. *) + let tokens = read [] in + (* Define a pseudo-lexer that reads from this array. *) + let i = ref 0 in + let lexer () = + (* If this assertion is violated, then the parser is trying to read + past an EOF token. This should not happen. *) + assert (!i < Array.length tokens); + let token = Array.unsafe_get tokens !i in + i := !i + 1; + token + in + lexer end module Printers = struct (******************************************************************************) (* *) -(* Menhir *) +(* Menhir *) (* *) -(* François Pottier, Inria Paris *) -(* Yann Régis-Gianas, PPS, Université Paris Diderot *) -(* *) -(* Copyright Inria. All rights reserved. This file is distributed under the *) -(* terms of the GNU Library General Public License version 2, with a *) -(* special exception on linking, as described in the file LICENSE. *) +(* Copyright Inria. All rights reserved. This file is distributed under *) +(* the terms of the GNU Library General Public License version 2, with a *) +(* special exception on linking, as described in the file LICENSE. *) (* *) (******************************************************************************) @@ -2407,14 +2424,11 @@ end module InfiniteArray = struct (******************************************************************************) (* *) -(* Menhir *) -(* *) -(* François Pottier, Inria Paris *) -(* Yann Régis-Gianas, PPS, Université Paris Diderot *) +(* Menhir *) (* *) -(* Copyright Inria. All rights reserved. This file is distributed under the *) -(* terms of the GNU Library General Public License version 2, with a *) -(* special exception on linking, as described in the file LICENSE. *) +(* Copyright Inria. All rights reserved. This file is distributed under *) +(* the terms of the GNU Library General Public License version 2, with a *) +(* special exception on linking, as described in the file LICENSE. *) (* *) (******************************************************************************) @@ -2472,14 +2486,11 @@ end module PackedIntArray = struct (******************************************************************************) (* *) -(* Menhir *) -(* *) -(* François Pottier, Inria Paris *) -(* Yann Régis-Gianas, PPS, Université Paris Diderot *) +(* Menhir *) (* *) -(* Copyright Inria. All rights reserved. This file is distributed under the *) -(* terms of the GNU Library General Public License version 2, with a *) -(* special exception on linking, as described in the file LICENSE. *) +(* Copyright Inria. All rights reserved. This file is distributed under *) +(* the terms of the GNU Library General Public License version 2, with a *) +(* special exception on linking, as described in the file LICENSE. *) (* *) (******************************************************************************) @@ -2681,14 +2692,11 @@ end module RowDisplacement = struct (******************************************************************************) (* *) -(* Menhir *) +(* Menhir *) (* *) -(* François Pottier, Inria Paris *) -(* Yann Régis-Gianas, PPS, Université Paris Diderot *) -(* *) -(* Copyright Inria. All rights reserved. This file is distributed under the *) -(* terms of the GNU Library General Public License version 2, with a *) -(* special exception on linking, as described in the file LICENSE. *) +(* Copyright Inria. All rights reserved. This file is distributed under *) +(* the terms of the GNU Library General Public License version 2, with a *) +(* special exception on linking, as described in the file LICENSE. *) (* *) (******************************************************************************) @@ -2941,14 +2949,11 @@ end module LinearizedArray = struct (******************************************************************************) (* *) -(* Menhir *) -(* *) -(* François Pottier, Inria Paris *) -(* Yann Régis-Gianas, PPS, Université Paris Diderot *) +(* Menhir *) (* *) -(* Copyright Inria. All rights reserved. This file is distributed under the *) -(* terms of the GNU Library General Public License version 2, with a *) -(* special exception on linking, as described in the file LICENSE. *) +(* Copyright Inria. All rights reserved. This file is distributed under *) +(* the terms of the GNU Library General Public License version 2, with a *) +(* special exception on linking, as described in the file LICENSE. *) (* *) (******************************************************************************) @@ -3023,14 +3028,11 @@ end module TableFormat = struct (******************************************************************************) (* *) -(* Menhir *) +(* Menhir *) (* *) -(* François Pottier, Inria Paris *) -(* Yann Régis-Gianas, PPS, Université Paris Diderot *) -(* *) -(* Copyright Inria. All rights reserved. This file is distributed under the *) -(* terms of the GNU Library General Public License version 2, with a *) -(* special exception on linking, as described in the file LICENSE. *) +(* Copyright Inria. All rights reserved. This file is distributed under *) +(* the terms of the GNU Library General Public License version 2, with a *) +(* special exception on linking, as described in the file LICENSE. *) (* *) (******************************************************************************) @@ -3162,14 +3164,11 @@ end module InspectionTableFormat = struct (******************************************************************************) (* *) -(* Menhir *) -(* *) -(* François Pottier, Inria Paris *) -(* Yann Régis-Gianas, PPS, Université Paris Diderot *) +(* Menhir *) (* *) -(* Copyright Inria. All rights reserved. This file is distributed under the *) -(* terms of the GNU Library General Public License version 2, with a *) -(* special exception on linking, as described in the file LICENSE. *) +(* Copyright Inria. All rights reserved. This file is distributed under *) +(* the terms of the GNU Library General Public License version 2, with a *) +(* special exception on linking, as described in the file LICENSE. *) (* *) (******************************************************************************) @@ -3238,14 +3237,11 @@ end module InspectionTableInterpreter = struct (******************************************************************************) (* *) -(* Menhir *) -(* *) -(* François Pottier, Inria Paris *) -(* Yann Régis-Gianas, PPS, Université Paris Diderot *) +(* Menhir *) (* *) -(* Copyright Inria. All rights reserved. This file is distributed under the *) -(* terms of the GNU Library General Public License version 2, with a *) -(* special exception on linking, as described in the file LICENSE. *) +(* Copyright Inria. All rights reserved. This file is distributed under *) +(* the terms of the GNU Library General Public License version 2, with a *) +(* special exception on linking, as described in the file LICENSE. *) (* *) (******************************************************************************) @@ -3549,14 +3545,11 @@ end module TableInterpreter = struct (******************************************************************************) (* *) -(* Menhir *) +(* Menhir *) (* *) -(* François Pottier, Inria Paris *) -(* Yann Régis-Gianas, PPS, Université Paris Diderot *) -(* *) -(* Copyright Inria. All rights reserved. This file is distributed under the *) -(* terms of the GNU Library General Public License version 2, with a *) -(* special exception on linking, as described in the file LICENSE. *) +(* Copyright Inria. All rights reserved. This file is distributed under *) +(* the terms of the GNU Library General Public License version 2, with a *) +(* special exception on linking, as described in the file LICENSE. *) (* *) (******************************************************************************) @@ -3630,9 +3623,12 @@ module MakeEngineTable (T : TableFormat.TABLES) = struct let default_reduction state defred nodefred env = let code = PackedIntArray.get T.default_reduction state in if code = 0 then + (* no default reduction *) nodefred env else - defred env (code - 1) + (* default reduction *) + let prod = code - 1 in + defred env prod let is_start prod = prod < T.start @@ -3666,13 +3662,59 @@ module MakeEngineTable (T : TableFormat.TABLES) = struct assert (c = 0); fail env + let maybe_shift_t state terminal = + match PackedIntArray.unflatten1 T.error state terminal with + | 1 -> + let action = unmarshal2 T.action state terminal in + let opcode = action land 0b11 in + if opcode >= 0b10 then + (* 0b10 : shift/discard *) + (* 0b11 : shift/nodiscard *) + let state' = action lsr 2 in + Some state' + else + (* 0b01 : reduce *) + (* 0b00 : cannot happen *) + None + | c -> + assert (c = 0); + None + + let may_reduce_prod state terminal prod = + let code = PackedIntArray.get T.default_reduction state in + if code = 0 then + (* no default reduction *) + match PackedIntArray.unflatten1 T.error state terminal with + | 1 -> + let action = unmarshal2 T.action state terminal in + let opcode = action land 0b11 in + if opcode >= 0b10 then + (* 0b10 : shift/discard *) + (* 0b11 : shift/nodiscard *) + false + else + (* 0b01 : reduce *) + (* 0b00 : cannot happen *) + let prod' = action lsr 2 in + prod = prod' + | c -> + assert (c = 0); + false + else + (* default reduction *) + let prod' = code - 1 in + prod = prod' + let goto_nt state nt = let code = unmarshal2 T.goto state nt in (* code = 1 + state *) code - 1 + let[@inline] lhs prod = + PackedIntArray.get T.lhs prod + let goto_prod state prod = - goto_nt state (PackedIntArray.get T.lhs prod) + goto_nt state (lhs prod) let maybe_goto_nt state nt = let code = unmarshal2 T.goto state nt in @@ -3792,5 +3834,5 @@ module MakeEngineTable (T : TableFormat.TABLES) = struct end end module StaticVersion = struct -let require_20210419 = () +let require_20231231 = () end diff --git a/src/ocaml/preprocess/menhirLib.mli b/src/ocaml/preprocess/menhirLib.mli index 9d19a7ca6..2156459dc 100644 --- a/src/ocaml/preprocess/menhirLib.mli +++ b/src/ocaml/preprocess/menhirLib.mli @@ -1,14 +1,11 @@ module General : sig (******************************************************************************) (* *) -(* Menhir *) +(* Menhir *) (* *) -(* François Pottier, Inria Paris *) -(* Yann Régis-Gianas, PPS, Université Paris Diderot *) -(* *) -(* Copyright Inria. All rights reserved. This file is distributed under the *) -(* terms of the GNU Library General Public License version 2, with a *) -(* special exception on linking, as described in the file LICENSE. *) +(* Copyright Inria. All rights reserved. This file is distributed under *) +(* the terms of the GNU Library General Public License version 2, with a *) +(* special exception on linking, as described in the file LICENSE. *) (* *) (******************************************************************************) @@ -65,14 +62,11 @@ end module Convert : sig (******************************************************************************) (* *) -(* Menhir *) -(* *) -(* François Pottier, Inria Paris *) -(* Yann Régis-Gianas, PPS, Université Paris Diderot *) +(* Menhir *) (* *) -(* Copyright Inria. All rights reserved. This file is distributed under the *) -(* terms of the GNU Library General Public License version 2, with a *) -(* special exception on linking, as described in the file LICENSE. *) +(* Copyright Inria. All rights reserved. This file is distributed under *) +(* the terms of the GNU Library General Public License version 2, with a *) +(* special exception on linking, as described in the file LICENSE. *) (* *) (******************************************************************************) @@ -144,14 +138,11 @@ end module IncrementalEngine : sig (******************************************************************************) (* *) -(* Menhir *) -(* *) -(* François Pottier, Inria Paris *) -(* Yann Régis-Gianas, PPS, Université Paris Diderot *) +(* Menhir *) (* *) -(* Copyright Inria. All rights reserved. This file is distributed under the *) -(* terms of the GNU Library General Public License version 2, with a *) -(* special exception on linking, as described in the file LICENSE. *) +(* Copyright Inria. All rights reserved. This file is distributed under *) +(* the terms of the GNU Library General Public License version 2, with a *) +(* special exception on linking, as described in the file LICENSE. *) (* *) (******************************************************************************) @@ -232,12 +223,12 @@ module type INCREMENTAL_ENGINE = sig 'a checkpoint (* [resume] allows the user to resume the parser after it has suspended - itself with a checkpoint of the form [AboutToReduce (env, prod)] or - [HandlingError env]. [resume] expects the old checkpoint and produces a + itself with a checkpoint of the form [Shifting _], [AboutToReduce _], or + [HandlingError _]. [resume] expects the old checkpoint and produces a new checkpoint. It does not raise any exception. *) (* The optional argument [strategy] influences the manner in which [resume] - deals with checkpoints of the form [ErrorHandling _]. Its default value + deals with checkpoints of the form [HandlingError _]. Its default value is [`Legacy]. It can be briefly described as follows: - If the [error] token is used only to report errors (that is, if the @@ -633,14 +624,11 @@ end module EngineTypes : sig (******************************************************************************) (* *) -(* Menhir *) +(* Menhir *) (* *) -(* François Pottier, Inria Paris *) -(* Yann Régis-Gianas, PPS, Université Paris Diderot *) -(* *) -(* Copyright Inria. All rights reserved. This file is distributed under the *) -(* terms of the GNU Library General Public License version 2, with a *) -(* special exception on linking, as described in the file LICENSE. *) +(* Copyright Inria. All rights reserved. This file is distributed under *) +(* the terms of the GNU Library General Public License version 2, with a *) +(* special exception on linking, as described in the file LICENSE. *) (* *) (******************************************************************************) @@ -721,6 +709,53 @@ type ('state, 'semantic_value, 'token) env = { (* --------------------------------------------------------------------------- *) +(* A number of logging hooks are used to (optionally) emit logging messages. *) + +(* The comments indicate the conventional messages that correspond + to these hooks in the code-based back-end; see [CodeBackend]. *) + +module type LOG = sig + + type state + type terminal + type production + + (* State %d: *) + + val state: state -> unit + + (* Shifting () to state *) + + val shift: terminal -> state -> unit + + (* Reducing a production should be logged either as a reduction + event (for regular productions) or as an acceptance event (for + start productions). *) + + (* Reducing production / Accepting *) + + val reduce_or_accept: production -> unit + + (* Lookahead token is now (-) *) + + val lookahead_token: terminal -> Lexing.position -> Lexing.position -> unit + + (* Initiating error handling *) + + val initiating_error_handling: unit -> unit + + (* Resuming error handling *) + + val resuming_error_handling: unit -> unit + + (* Handling error in state *) + + val handling_error: state -> unit + +end + +(* --------------------------------------------------------------------------- *) + (* This signature describes the parameters that must be supplied to the LR engine. *) @@ -842,6 +877,16 @@ module type TABLE = sig ('env -> 'answer) -> 'env -> 'answer + (**[maybe_shift_t s t] determines whether there exists a transition out of + the state [s], labeled with the terminal symbol [t], to some state + [s']. If so, it returns [Some s']. Otherwise, it returns [None]. *) + val maybe_shift_t : state -> terminal -> state option + + (**[may_reduce_prod s t prod] determines whether in the state [s], with + lookahead symbol [t], the automaton reduces production [prod]. This test + accounts for the possible existence of a default reduction. *) + val may_reduce_prod : state -> terminal -> production -> bool + (* This is the automaton's goto table. This table maps a pair of a state and a nonterminal symbol to a new state. By extension, it also maps a pair of a state and a production to a new state. *) @@ -857,6 +902,11 @@ module type TABLE = sig val goto_prod: state -> production -> state val maybe_goto_nt: state -> nonterminal -> state option + (* [lhs prod] returns the left-hand side of production [prod], + a nonterminal symbol. *) + + val lhs: production -> nonterminal + (* [is_start prod] tells whether the production [prod] is a start production. *) val is_start: production -> bool @@ -897,51 +947,17 @@ module type TABLE = sig val may_reduce: state -> production -> bool - (* The LR engine requires a number of hooks, which are used for logging. *) - - (* The comments below indicate the conventional messages that correspond - to these hooks in the code-based back-end; see [CodeBackend]. *) - (* If the flag [log] is false, then the logging functions are not called. If it is [true], then they are called. *) val log : bool - module Log : sig - - (* State %d: *) - - val state: state -> unit - - (* Shifting () to state *) - - val shift: terminal -> state -> unit - - (* Reducing a production should be logged either as a reduction - event (for regular productions) or as an acceptance event (for - start productions). *) - - (* Reducing production / Accepting *) - - val reduce_or_accept: production -> unit - - (* Lookahead token is now (-) *) + (* The logging hooks required by the LR engine. *) - val lookahead_token: terminal -> Lexing.position -> Lexing.position -> unit - - (* Initiating error handling *) - - val initiating_error_handling: unit -> unit - - (* Resuming error handling *) - - val resuming_error_handling: unit -> unit - - (* Handling error in state *) - - val handling_error: state -> unit - - end + module Log : LOG + with type state := state + and type terminal := terminal + and type production := production end @@ -1034,14 +1050,11 @@ end module Engine : sig (******************************************************************************) (* *) -(* Menhir *) +(* Menhir *) (* *) -(* François Pottier, Inria Paris *) -(* Yann Régis-Gianas, PPS, Université Paris Diderot *) -(* *) -(* Copyright Inria. All rights reserved. This file is distributed under the *) -(* terms of the GNU Library General Public License version 2, with a *) -(* special exception on linking, as described in the file LICENSE. *) +(* Copyright Inria. All rights reserved. This file is distributed under *) +(* the terms of the GNU Library General Public License version 2, with a *) +(* special exception on linking, as described in the file LICENSE. *) (* *) (******************************************************************************) @@ -1067,14 +1080,11 @@ end module ErrorReports : sig (******************************************************************************) (* *) -(* Menhir *) -(* *) -(* François Pottier, Inria Paris *) -(* Yann Régis-Gianas, PPS, Université Paris Diderot *) +(* Menhir *) (* *) -(* Copyright Inria. All rights reserved. This file is distributed under the *) -(* terms of the GNU Library General Public License version 2, with a *) -(* special exception on linking, as described in the file LICENSE. *) +(* Copyright Inria. All rights reserved. This file is distributed under *) +(* the terms of the GNU Library General Public License version 2, with a *) +(* special exception on linking, as described in the file LICENSE. *) (* *) (******************************************************************************) @@ -1147,57 +1157,61 @@ end module LexerUtil : sig (******************************************************************************) (* *) -(* Menhir *) -(* *) -(* François Pottier, Inria Paris *) -(* Yann Régis-Gianas, PPS, Université Paris Diderot *) +(* Menhir *) (* *) -(* Copyright Inria. All rights reserved. This file is distributed under the *) -(* terms of the GNU Library General Public License version 2, with a *) -(* special exception on linking, as described in the file LICENSE. *) +(* Copyright Inria. All rights reserved. This file is distributed under *) +(* the terms of the GNU Library General Public License version 2, with a *) +(* special exception on linking, as described in the file LICENSE. *) (* *) (******************************************************************************) open Lexing -(* [init filename lexbuf] initializes the lexing buffer [lexbuf] so +(**[init filename lexbuf] initializes the lexing buffer [lexbuf] so that the positions that are subsequently read from it refer to the file [filename]. It returns [lexbuf]. *) - val init: string -> lexbuf -> lexbuf -(* [read filename] reads the entire contents of the file [filename] and +(**[read filename] reads the entire contents of the file [filename] and returns a pair of this content (a string) and a lexing buffer that has been initialized, based on this string. *) - val read: string -> string * lexbuf -(* [newline lexbuf] increments the line counter stored within [lexbuf]. It +(**[newline lexbuf] increments the line counter stored within [lexbuf]. It should be invoked by the lexer itself every time a newline character is consumed. This allows maintaining a current the line number in [lexbuf]. *) - val newline: lexbuf -> unit -(* [range (startpos, endpos)] prints a textual description of the range +(**[range (startpos, endpos)] prints a textual description of the range delimited by the start and end positions [startpos] and [endpos]. This description is one line long and ends in a newline character. This description mentions the file name, the line number, and a range of characters on this line. The line number is correct only if [newline] has been correctly used, as described dabove. *) - val range: position * position -> string + +(**[tabulate is_eof lexer] tabulates the lexer [lexer]: that is, it + immediately runs this lexer all the way until an EOF token is found, stores + the tokens in an array in memory, and returns a new lexer which (when + invoked) reads tokens from this array. The function [lexer] is not allowed + to raise an exception, and must produce a finite stream of tokens: that is, + after a finite number of invocations, it must return a token that is + identified by the function [is_eof] as an EOF token. + + Both the existing lexer [lexer] and the new lexer returned by [tabulate + is_eof lexer] are functions of type [unit -> 'a], where the type ['a] is + likely to be instantiated with a triple of a token and two positions, as + per the revised lexer API described in the module {!Convert}. *) +val tabulate: ('a -> bool) -> (unit -> 'a) -> (unit -> 'a) end module Printers : sig (******************************************************************************) (* *) -(* Menhir *) -(* *) -(* François Pottier, Inria Paris *) -(* Yann Régis-Gianas, PPS, Université Paris Diderot *) +(* Menhir *) (* *) -(* Copyright Inria. All rights reserved. This file is distributed under the *) -(* terms of the GNU Library General Public License version 2, with a *) -(* special exception on linking, as described in the file LICENSE. *) +(* Copyright Inria. All rights reserved. This file is distributed under *) +(* the terms of the GNU Library General Public License version 2, with a *) +(* special exception on linking, as described in the file LICENSE. *) (* *) (******************************************************************************) @@ -1268,14 +1282,11 @@ end module InfiniteArray : sig (******************************************************************************) (* *) -(* Menhir *) +(* Menhir *) (* *) -(* François Pottier, Inria Paris *) -(* Yann Régis-Gianas, PPS, Université Paris Diderot *) -(* *) -(* Copyright Inria. All rights reserved. This file is distributed under the *) -(* terms of the GNU Library General Public License version 2, with a *) -(* special exception on linking, as described in the file LICENSE. *) +(* Copyright Inria. All rights reserved. This file is distributed under *) +(* the terms of the GNU Library General Public License version 2, with a *) +(* special exception on linking, as described in the file LICENSE. *) (* *) (******************************************************************************) @@ -1306,14 +1317,11 @@ end module PackedIntArray : sig (******************************************************************************) (* *) -(* Menhir *) -(* *) -(* François Pottier, Inria Paris *) -(* Yann Régis-Gianas, PPS, Université Paris Diderot *) +(* Menhir *) (* *) -(* Copyright Inria. All rights reserved. This file is distributed under the *) -(* terms of the GNU Library General Public License version 2, with a *) -(* special exception on linking, as described in the file LICENSE. *) +(* Copyright Inria. All rights reserved. This file is distributed under *) +(* the terms of the GNU Library General Public License version 2, with a *) +(* special exception on linking, as described in the file LICENSE. *) (* *) (******************************************************************************) @@ -1365,14 +1373,11 @@ end module RowDisplacement : sig (******************************************************************************) (* *) -(* Menhir *) +(* Menhir *) (* *) -(* François Pottier, Inria Paris *) -(* Yann Régis-Gianas, PPS, Université Paris Diderot *) -(* *) -(* Copyright Inria. All rights reserved. This file is distributed under the *) -(* terms of the GNU Library General Public License version 2, with a *) -(* special exception on linking, as described in the file LICENSE. *) +(* Copyright Inria. All rights reserved. This file is distributed under *) +(* the terms of the GNU Library General Public License version 2, with a *) +(* special exception on linking, as described in the file LICENSE. *) (* *) (******************************************************************************) @@ -1429,14 +1434,11 @@ end module LinearizedArray : sig (******************************************************************************) (* *) -(* Menhir *) -(* *) -(* François Pottier, Inria Paris *) -(* Yann Régis-Gianas, PPS, Université Paris Diderot *) +(* Menhir *) (* *) -(* Copyright Inria. All rights reserved. This file is distributed under the *) -(* terms of the GNU Library General Public License version 2, with a *) -(* special exception on linking, as described in the file LICENSE. *) +(* Copyright Inria. All rights reserved. This file is distributed under *) +(* the terms of the GNU Library General Public License version 2, with a *) +(* special exception on linking, as described in the file LICENSE. *) (* *) (******************************************************************************) @@ -1503,14 +1505,11 @@ end module TableFormat : sig (******************************************************************************) (* *) -(* Menhir *) +(* Menhir *) (* *) -(* François Pottier, Inria Paris *) -(* Yann Régis-Gianas, PPS, Université Paris Diderot *) -(* *) -(* Copyright Inria. All rights reserved. This file is distributed under the *) -(* terms of the GNU Library General Public License version 2, with a *) -(* special exception on linking, as described in the file LICENSE. *) +(* Copyright Inria. All rights reserved. This file is distributed under *) +(* the terms of the GNU Library General Public License version 2, with a *) +(* special exception on linking, as described in the file LICENSE. *) (* *) (******************************************************************************) @@ -1642,14 +1641,11 @@ end module InspectionTableFormat : sig (******************************************************************************) (* *) -(* Menhir *) -(* *) -(* François Pottier, Inria Paris *) -(* Yann Régis-Gianas, PPS, Université Paris Diderot *) +(* Menhir *) (* *) -(* Copyright Inria. All rights reserved. This file is distributed under the *) -(* terms of the GNU Library General Public License version 2, with a *) -(* special exception on linking, as described in the file LICENSE. *) +(* Copyright Inria. All rights reserved. This file is distributed under *) +(* the terms of the GNU Library General Public License version 2, with a *) +(* special exception on linking, as described in the file LICENSE. *) (* *) (******************************************************************************) @@ -1718,14 +1714,11 @@ end module InspectionTableInterpreter : sig (******************************************************************************) (* *) -(* Menhir *) +(* Menhir *) (* *) -(* François Pottier, Inria Paris *) -(* Yann Régis-Gianas, PPS, Université Paris Diderot *) -(* *) -(* Copyright Inria. All rights reserved. This file is distributed under the *) -(* terms of the GNU Library General Public License version 2, with a *) -(* special exception on linking, as described in the file LICENSE. *) +(* Copyright Inria. All rights reserved. This file is distributed under *) +(* the terms of the GNU Library General Public License version 2, with a *) +(* special exception on linking, as described in the file LICENSE. *) (* *) (******************************************************************************) @@ -1770,14 +1763,11 @@ end module TableInterpreter : sig (******************************************************************************) (* *) -(* Menhir *) -(* *) -(* François Pottier, Inria Paris *) -(* Yann Régis-Gianas, PPS, Université Paris Diderot *) +(* Menhir *) (* *) -(* Copyright Inria. All rights reserved. This file is distributed under the *) -(* terms of the GNU Library General Public License version 2, with a *) -(* special exception on linking, as described in the file LICENSE. *) +(* Copyright Inria. All rights reserved. This file is distributed under *) +(* the terms of the GNU Library General Public License version 2, with a *) +(* special exception on linking, as described in the file LICENSE. *) (* *) (******************************************************************************) @@ -1803,5 +1793,5 @@ module MakeEngineTable and type nonterminal = int end module StaticVersion : sig -val require_20210419: unit +val require_20231231: unit end diff --git a/src/ocaml/preprocess/parser_printer.ml b/src/ocaml/preprocess/parser_printer.ml index f25e276ce..bca134b55 100644 --- a/src/ocaml/preprocess/parser_printer.ml +++ b/src/ocaml/preprocess/parser_printer.ml @@ -380,6 +380,7 @@ let print_symbol = function | MenhirInterpreter.X (MenhirInterpreter.N MenhirInterpreter.N_fun_param_as_list) -> "fun_param_as_list" | MenhirInterpreter.X (MenhirInterpreter.N MenhirInterpreter.N_fun_expr) -> "fun_expr" | MenhirInterpreter.X (MenhirInterpreter.N MenhirInterpreter.N_fun_body) -> "fun_body" + | MenhirInterpreter.X (MenhirInterpreter.N MenhirInterpreter.N_fun_) -> "fun_" | MenhirInterpreter.X (MenhirInterpreter.N MenhirInterpreter.N_formal_class_parameters) -> "formal_class_parameters" | MenhirInterpreter.X (MenhirInterpreter.N MenhirInterpreter.N_floating_attribute) -> "floating_attribute" | MenhirInterpreter.X (MenhirInterpreter.N MenhirInterpreter.N_extension_type) -> "extension_type" @@ -789,6 +790,7 @@ let print_value (type a) : a MenhirInterpreter.symbol -> a -> string = function | MenhirInterpreter.N MenhirInterpreter.N_fun_param_as_list -> (fun _ -> "fun_param_as_list") | MenhirInterpreter.N MenhirInterpreter.N_fun_expr -> (fun _ -> "fun_expr") | MenhirInterpreter.N MenhirInterpreter.N_fun_body -> (fun _ -> "fun_body") + | MenhirInterpreter.N MenhirInterpreter.N_fun_ -> (fun _ -> "fun_") | MenhirInterpreter.N MenhirInterpreter.N_formal_class_parameters -> (fun _ -> "formal_class_parameters") | MenhirInterpreter.N MenhirInterpreter.N_floating_attribute -> (fun _ -> "floating_attribute") | MenhirInterpreter.N MenhirInterpreter.N_extension_type -> (fun _ -> "extension_type") diff --git a/src/ocaml/preprocess/parser_raw.ml b/src/ocaml/preprocess/parser_raw.ml index fd7035849..313ce59ae 100644 --- a/src/ocaml/preprocess/parser_raw.ml +++ b/src/ocaml/preprocess/parser_raw.ml @@ -2,12 +2,16 @@ (* This generated code requires the following version of MenhirLib: *) let () = - MenhirLib.StaticVersion.require_20210419 + MenhirLib.StaticVersion.require_20231231 module MenhirBasics = struct exception Error + let _eRR = + fun _s -> + raise Error + type token = | WITH | WHILE @@ -19,7 +23,7 @@ module MenhirBasics = struct | UIDENT of ( # 1155 "src/ocaml/preprocess/parser_raw.mly" (string) -# 23 "src/ocaml/preprocess/parser_raw.ml" +# 27 "src/ocaml/preprocess/parser_raw.ml" ) | TYPE | TRY @@ -31,7 +35,7 @@ module MenhirBasics = struct | STRING of ( # 1141 "src/ocaml/preprocess/parser_raw.mly" (string * Location.t * string option) -# 35 "src/ocaml/preprocess/parser_raw.ml" +# 39 "src/ocaml/preprocess/parser_raw.ml" ) | STAR | STACK @@ -45,12 +49,12 @@ module MenhirBasics = struct | QUOTED_STRING_ITEM of ( # 1146 "src/ocaml/preprocess/parser_raw.mly" (string * Location.t * string * Location.t * string option) -# 49 "src/ocaml/preprocess/parser_raw.ml" +# 53 "src/ocaml/preprocess/parser_raw.ml" ) | QUOTED_STRING_EXPR of ( # 1143 "src/ocaml/preprocess/parser_raw.mly" (string * Location.t * string * Location.t * string option) -# 54 "src/ocaml/preprocess/parser_raw.ml" +# 58 "src/ocaml/preprocess/parser_raw.ml" ) | QUOTE | QUESTION @@ -58,7 +62,7 @@ module MenhirBasics = struct | PREFIXOP of ( # 1124 "src/ocaml/preprocess/parser_raw.mly" (string) -# 62 "src/ocaml/preprocess/parser_raw.ml" +# 66 "src/ocaml/preprocess/parser_raw.ml" ) | PLUSEQ | PLUSDOT @@ -69,7 +73,7 @@ module MenhirBasics = struct | OPTLABEL of ( # 1116 "src/ocaml/preprocess/parser_raw.mly" (string) -# 73 "src/ocaml/preprocess/parser_raw.ml" +# 77 "src/ocaml/preprocess/parser_raw.ml" ) | OPEN | ONCE @@ -90,12 +94,12 @@ module MenhirBasics = struct | LIDENT of ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 94 "src/ocaml/preprocess/parser_raw.ml" +# 98 "src/ocaml/preprocess/parser_raw.ml" ) | LETOP of ( # 1074 "src/ocaml/preprocess/parser_raw.mly" (string) -# 99 "src/ocaml/preprocess/parser_raw.ml" +# 103 "src/ocaml/preprocess/parser_raw.ml" ) | LET | LESSMINUS @@ -116,41 +120,41 @@ module MenhirBasics = struct | LABEL of ( # 1082 "src/ocaml/preprocess/parser_raw.mly" (string) -# 120 "src/ocaml/preprocess/parser_raw.ml" +# 124 "src/ocaml/preprocess/parser_raw.ml" ) | KIND_OF | KIND_ABBREV | INT of ( # 1078 "src/ocaml/preprocess/parser_raw.mly" (string * char option) -# 127 "src/ocaml/preprocess/parser_raw.ml" +# 131 "src/ocaml/preprocess/parser_raw.ml" ) | INITIALIZER | INHERIT | INFIXOP4 of ( # 1072 "src/ocaml/preprocess/parser_raw.mly" (string) -# 134 "src/ocaml/preprocess/parser_raw.ml" +# 138 "src/ocaml/preprocess/parser_raw.ml" ) | INFIXOP3 of ( # 1071 "src/ocaml/preprocess/parser_raw.mly" (string) -# 139 "src/ocaml/preprocess/parser_raw.ml" +# 143 "src/ocaml/preprocess/parser_raw.ml" ) | INFIXOP2 of ( # 1070 "src/ocaml/preprocess/parser_raw.mly" (string) -# 144 "src/ocaml/preprocess/parser_raw.ml" +# 148 "src/ocaml/preprocess/parser_raw.ml" ) | INFIXOP1 of ( # 1069 "src/ocaml/preprocess/parser_raw.mly" (string) -# 149 "src/ocaml/preprocess/parser_raw.ml" +# 153 "src/ocaml/preprocess/parser_raw.ml" ) | INFIXOP0 of ( # 1066 "src/ocaml/preprocess/parser_raw.mly" (string) -# 154 "src/ocaml/preprocess/parser_raw.ml" +# 158 "src/ocaml/preprocess/parser_raw.ml" ) | INCLUDE | IN @@ -159,17 +163,17 @@ module MenhirBasics = struct | HASH_INT of ( # 1079 "src/ocaml/preprocess/parser_raw.mly" (string * char option) -# 163 "src/ocaml/preprocess/parser_raw.ml" +# 167 "src/ocaml/preprocess/parser_raw.ml" ) | HASH_FLOAT of ( # 1052 "src/ocaml/preprocess/parser_raw.mly" (string * char option) -# 168 "src/ocaml/preprocess/parser_raw.ml" +# 172 "src/ocaml/preprocess/parser_raw.ml" ) | HASHOP of ( # 1137 "src/ocaml/preprocess/parser_raw.mly" (string) -# 173 "src/ocaml/preprocess/parser_raw.ml" +# 177 "src/ocaml/preprocess/parser_raw.ml" ) | HASHLPAREN | HASHLBRACE @@ -186,7 +190,7 @@ module MenhirBasics = struct | FLOAT of ( # 1051 "src/ocaml/preprocess/parser_raw.mly" (string * char option) -# 190 "src/ocaml/preprocess/parser_raw.ml" +# 194 "src/ocaml/preprocess/parser_raw.ml" ) | FALSE | EXTERNAL @@ -202,7 +206,7 @@ module MenhirBasics = struct | DOTOP of ( # 1073 "src/ocaml/preprocess/parser_raw.mly" (string) -# 206 "src/ocaml/preprocess/parser_raw.ml" +# 210 "src/ocaml/preprocess/parser_raw.ml" ) | DOTLESS | DOTHASH @@ -212,14 +216,14 @@ module MenhirBasics = struct | DOCSTRING of ( # 1163 "src/ocaml/preprocess/parser_raw.mly" (Docstrings.docstring) -# 216 "src/ocaml/preprocess/parser_raw.ml" +# 220 "src/ocaml/preprocess/parser_raw.ml" ) | DO | CONSTRAINT | COMMENT of ( # 1162 "src/ocaml/preprocess/parser_raw.mly" (string * Location.t) -# 223 "src/ocaml/preprocess/parser_raw.ml" +# 227 "src/ocaml/preprocess/parser_raw.ml" ) | COMMA | COLONRBRACKET @@ -231,7 +235,7 @@ module MenhirBasics = struct | CHAR of ( # 1028 "src/ocaml/preprocess/parser_raw.mly" (char) -# 235 "src/ocaml/preprocess/parser_raw.ml" +# 239 "src/ocaml/preprocess/parser_raw.ml" ) | BEGIN | BARRBRACKET @@ -246,7 +250,7 @@ module MenhirBasics = struct | ANDOP of ( # 1075 "src/ocaml/preprocess/parser_raw.mly" (string) -# 250 "src/ocaml/preprocess/parser_raw.ml" +# 254 "src/ocaml/preprocess/parser_raw.ml" ) | AND | AMPERSAND @@ -256,9 +260,6 @@ end include MenhirBasics -let _eRR = - MenhirBasics.Error - # 25 "src/ocaml/preprocess/parser_raw.mly" @@ -1197,7 +1198,7 @@ let merloc startpos ?endpos x = { x with pexp_attributes = attr :: x.pexp_attributes } -# 1201 "src/ocaml/preprocess/parser_raw.ml" +# 1202 "src/ocaml/preprocess/parser_raw.ml" module Tables = struct @@ -1799,22 +1800,22 @@ module Tables = struct Obj.repr () and default_reduction = - (16, "\000\000\000\000\000\000\004+\004*\004)\004(\004'\003\249\004&\004%\004$\004#\004\"\004!\004 \004\031\004\030\004\029\004\028\004\027\004\026\004\025\004\024\004\023\004\022\004\021\004\020\004\019\003\248\004\018\004\017\004\016\004\015\004\014\004\r\004\012\004\011\004\n\004\t\004\b\004\007\004\006\004\005\004\004\004\003\004\002\004\001\004\000\003\255\003\254\003\253\003\252\003\251\003\250\000\000\000\000\000,\000\154\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\134\002n\002\131\002\130\002\129\002\135\002\139\002\127\002\133\002\132\002o\002\137\002\128\002~\002}\002|\002y\002w\002\138\002\136\000\000\000\000\000\000\001/\000\000\000\000\002r\000\000\000\000\000\000\002t\000\000\000\000\000\000\002v\002\143\002\140\002x\002{\002z\002p\002\141\002\142\000\000\005\004\005\005\000\000\000\000\000\000\000\000\000\000\002O\002Q\002P\000(\001\244\000\156\000\000\001)\001*\000\000\000\000\000\000\002\180\002\179\000\000\000\000\000\000\0019\000\000\000\000\000\000\000'\000\000\000\000\000\000\000\000\000\000\000\000\0013\002\250\0017\000\000\000\000\000\000\004\243\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002I\002\174\000\000\002%\000\000\000\000\000\000\000\000\004\255\000\000\004\250\000\000\000\000\004\252\000\000\004\254\000\000\004\251\004\253\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002G\0015\000\000\002\249\000\000\001\196\000\000\000\000\000\000\000\000\000\000\002\193\000\000\004\242\000\000\003O\003N\000\000\000\000\004\239\000\000\000\000\004\238\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000w\000\000\000\000\000u\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\198\002\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\147\000\000\000\000\000\146\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\242\000\000\000\000\000\000\002\t\000\000\001\245\002\b\000\000\001\243\000a\000#\000 \002\000\001\254\000\029\000\137\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002K\000\026\000\000\000\000\000\000\000\000\004C\000\000\000\000\001\024\000\000\000\000\000\000\000%\000\"\000\031\000\000\000\000\002\001\001\255\004\237\004\245\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003?\000\000\000\000\000\000\000\000\000\000\003@\000\000\000\018\000\138\000\159\000\139\000\028\000\000\000\000\000\000\000\000\000\000\004D\000\000\000\000\000\000\000\000\000\000\004F\000\000\000\000\000\000\000\000\000\000\000\000\004G\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000$\000!\000\030\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004E\000\000\000\000\000\000\000\136\000\000\000\000\000\000\000\019\000\000\000\000\000\000\000\000\000\021\000\000\000\000\000\000\000\000\000\020\000\000\000\140\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0040\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0041\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0042\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0043\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0044\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0045\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0046\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0047\000\000\000\000\000\000\000\000\000\000\000\000\004B\000\000\000\000\000\000\000\000\000\000\000&\000\000\000\000\000\000\000\150\000\000\000\000\000\000\000\149\000\000\000\000\002B\003f\003J\000\000\000\143\000\000\003K\000\000\000\000\002\144\000\000\000\000\000\000\000\000\004\210\000\000\004\211\000\000\000\000\000\142\000\000\000\000\000\000\000\144\000\000\000\145\000\000\000\147\000\000\000\000\000\148\003<\003;\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003$\003#\005\015\000\000\000\000\000\000\000\000\000\000\000\000\003\235\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001v\001u\000\000\003\152\003\147\003\148\003\153\000\000\003\150\003\145\003\146\003\151\000\000\000\000\000\000\000\000\000\000\002\031\002\030\000\000\003\233\000\000\000\000\000\000\000\000\000\000\002\029\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0031\000\000\000\000\000\000\000\000\0012\000\017\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\002\000\000\000\000\002\005\002\003\002\n\000D\003\179\004\209\004\208\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\138\001\137\000\000\000\000\000\000\000t\000\000\001H\000\000\003\154\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\r\000\000\004\244\003\240\000\000\000\000\005\000\005\001\000\000\000\000\000\000\000\000\003\155\000\000\003\239\005\016\000v\005\014\003\149\003\229\005\006\003\144\003\230\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001n\001m\000\000\001l\003\232\000\000\000\000\000\000\000\000\003\236\003\247\003\238\000\000\000\000\000\000\003\243\000\000\000\000\000\000\002\214\002\212\002\209\002\213\002\208\000\000\002\217\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001f\001e\000\000\001d\003\245\003\237\000~\003&\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\216\000\000\000\000\000}\000\000\003\231\000\000\000\000\000\000\000\000\000\000\000\000\001j\001i\000\000\001h\003'\000\000\000\000\000\000\003\246\000\000\000\000\000\000\002\210\002\215\000\000\000|\000\000\003\244\000\000\003\242\000\000\003\156\000\000\000\000\003s\003\241\003(\000\000\000\000\003\161\000\000\002\218\000\000\000\000\000\000\000\000\002\149\001\223\001\224\003\158\000\000\003\157\003\160\000\000\003\159\000\000\001\136\0030\002\224\000\000\000\000\000\000\002\220\002\221\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001z\001y\000\000\001x\003,\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\134\001\133\000\000\001\132\003/\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\130\001\129\000\000\001\128\003.\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\027\001G\000\000\001E\001C\000\000\000\000\001V\000\000\001U\001W\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\226\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\177\000\000\001\176\001\175\000\000\001\178\000\000\001\171\000\000\000\000\000\000\000\000\000\000\001\170\000\000\001\168\001\166\000\000\000\000\000\000\001S\000\000\000\000\001R\002\225\001T\000\000\000\000\000\000\000\000\000\000\000\000\002D\000\000\000\000\000\000\001\016\002E\000\000\001\015\000\000\002C\002S\000\000\000\000\000\000\000\000\000\000\001b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001_\000\000\001]\000\000\001^\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001`\000\000\000\000\001[\000\000\000\000\000\000\000\000\001a\000\000\000\000\001Z\000\000\001Y\001X\001\\\000\000\001\017\0034\000\000\000\000\000\000\002\176\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\021\003\020\000\000\000\000\000r\003\183\002\006\000s\003\187\003\185\000\000\000\000\000\000\003\199\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\025\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0038\000\000\000\000\002+\000\000\000\000\000\000\000\000\000\000\000\000\005!\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\241\000\000\000\000\000\000\000\000\000\000\002*\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\253\0027\001\252\0023\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003H\000\000\000\000\003I\000\000\000\000\0037\000\000\000\000\000\000\002)\000\000\001\026\000\000\001\027\000\000\000\000\002\023\000\000\000\000\002\027\000\000\002\184\000\000\000\000\002\181\000\000\002\182\002\026\002\024\000\000\002\183\000\000\002\028\000\000\000\000\000\000\003\216\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\195\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\185\003A\000\000\000\000\000\000\000\000\000\000\001L\001K\000\000\001M\000\000\000\000\000\000\003\194\000\000\003\191\000\000\000\000\000\000\003\168\000\000\000\000\000\000\000\000\000\000\000\000\003\011\003\n\000\000\000\000\005\007\003\197\003\184\003\222\000\000\000\000\000\000\000\000\000\000\003C\000\000\000\000\000\000\000\000\000\240\003w\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\n\000\000\000\000\000\000\000\000\000\000\000\000\000\187\000\186\000\000\000\000\000\000\001\022\001\021\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\016\003\015\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004.\001\159\000\000\000\000\002\152\000\000\000\000\000\164\004/\002\153\0033\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\152\000\000\000\000\001\153\000\000\000\000\000\000\000\000\001\148\000\000\000\000\001\149\000\000\000\000\001\142\000\000\000\000\001\143\001\141\000\000\000\000\001\144\000\000\000\000\000\000\000\000\001\156\000\000\000\000\001\157\000\000\000\000\001\155\000\000\000\000\001\154\000\000\000\000\000\000\000\000\000\000\000\000\001~\001}\000\000\001|\003-\000\000\000\000\000\000\000\000\002\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\150\000\000\000\000\001\151\000\000\000\000\001\145\000\000\000\000\001\146\001\158\000\000\000\000\001\147\001\139\000\000\000\000\001\202\000\022\001\161\000\000\000\000\000\000\003\170\000\000\000\000\003\169\000\000\000\000\000\000\000\000\003\172\000\000\000\000\003l\000\000\000\000\003\176\000\000\000\000\003\174\003\190\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003:\0039\000\184\003m\000\000\003\171\000\000\000\000\003\175\000\000\000\000\003\173\001\014\000\000\000\151\000\152\000\000\000\000\000\000\000\000\000\181\001\181\000\000\000\000\001\182\000\000\000\000\000\241\000\000\001\184\001\183\000\000\000\000\003\192\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000e\003G\003F\000\000\003\213\0036\0035\003\221\000\000\003\220\000\000\000\000\003\212\000\000\000\000\000\000\000\000\000\000\000\000\003\211\003\206\000\000\003\205\000\000\000\000\003\210\000\000\003\215\000\000\000\000\000\000\000\000\000\000\003\209\000\000\003\214\000\000\000\000\003\208\000\000\000\000\003\193\000\000\000\000\000\000\002\248\000\000\002\170\000\000\000\000\000\000\003v\002\247\000\000\003\202\000\000\000\000\000\000\002\007\000\000\000\000\000\000\000\000\000\000\000\000\000\188\002\177\000\000\000\000\001\226\000\000\001\227\001\225\003B\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\178\000\000\003\177\000\000\000\000\000\000\000\000\000\000\000\000\003\026\003\025\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\163\000\000\003\162\000\000\000\000\003\201\000\000\000\000\000\000\000\000\000\000\000\000\003\217\000\000\000\000\003\200\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003p\003\189\000\000\003\188\000\000\000\000\000\000\000\000\000\000\003\224\000\000\003\207\000\000\000\000\003\223\000\000\000\000\000\000\000\000\000\000\003\226\003\204\000\000\003\203\000\000\000\000\003\225\000\000\000\000\000\000\000\000\002\186\000\000\000\000\002\192\000\000\000\000\002\188\000\000\000\000\002\190\000\000\002\185\000\000\000\000\002\191\000\000\000\000\002\187\000\000\000\000\002\189\000\000\000\000\000\169\000\000\000\000\000\000\000\000\000\168\000\000\000\000\000\000\000\000\000\000\000\000\002#\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\166\000\000\002\015\000\000\000\000\000\000\002\"\000\000\000\000\000\000\000x\000\000\000\000\000y\000\000\000\000\000\000\000\000\002;\002<\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001>\000\000\000\000\000\132\000\000\001A\001?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\030\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\167\000z\000\000\000\000\002\246\000\000\000\000\001\160\002\168\000\000\001P\000\000\000\000\001O\001Q\001\179\000\000\000\000\000\000\000\000\000\000\001\011\000\000\000\000\000\000\000\000\000\000\003\228\003\219\000\000\003\218\000\000\000\000\003\227\003\186\000\000\000\000\000\000\000\000\003\180\000\000\000\000\003\181\000\000\003\165\000\000\003\166\000\000\003\167\000\000\000\000\000\000\001\r\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002k\000\000\000\000\000\000\002j\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0025\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\192\004\202\000\000\000\000\004\201\000\000\000\000\000\000\000\000\000\000\002\231\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001-\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002U\000\000\002\237\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004-\000\000\000\000\003y\000\000\002\228\000\000\000\000\000\000\000\000\000\000\005\019\000\000\000\000\003P\000\000\000\162\000\000\003Q\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000H\000\000\000\000\000\000\000\000\002A\000\000\002@\000\000\000\000\000\000\000\000\000K\000\000\000\000\000\000\002\244\000\000\002\243\000\000\000\000\000\000\000\000\000L\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000Q\000\000\000\000\000\000\000R\000P\000\000\000T\000\000\000\000\000\000\000\000\000\000\000J\000\000\000\000\000\000\000\000\000\000\000\000\000M\000\000\000S\000\000\000N\000O\000\000\001\211\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\190\000`\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0029\000\000\000\000\000\000\005\n\000\000\000\000\005\012\000\000\0009\000\000\000\000\005\022\000\000\005\021\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\t\000\000\000\000\005\011\000\000\000\000\000\000\002\239\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\241\000\000\000\000\001\239\001\237\000\000\000:\000\000\000\000\005\025\000\000\005\024\000\000\000\000\000\000\001\235\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\240\000\000\000\000\001\238\001\236\000\000\000\000\000\000\000<\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\163\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000Y\000\000\000\000\000\000\000\000\000\000\000\000\0006\000\000\000\000\000X\000\000\0004\001\164\000\000\000C\0000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\162\000\000\000W\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000]\000\000\000_\000^\000\000\000Z\000\000\000\000\002\157\000\000\0008\000\000\000\000\000\000\0007\000\000\000\000\000\000\000;\000\000\000[\000\000\000=\000>\000\000\001\213\000\000\000\000\000\000\000\000\000\000\000\000\000A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\186\004\205\004\196\000\000\000\000\004\200\004,\004\195\004\204\004\203\001\209\000\000\004\194\000\000\004\192\000\000\000\000\000\000\000\000\004\207\000\000\000\000\000\000\000\000\000\000\000\000\0031\000\000\000\000\001\198\002\155\004\197\004\193\004\206\002\227\000\000\000\000\004\190\000-\004\189\000\000\000\000\000\160\000\000\0011\000\000\000\000\001\208\001\207\000\000\002\236\001(\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\157\000\000\001#\000\000\004\199\003\002\003\003\002\254\003\000\002\255\003\001\000\000\000\000\000\000\000\158\000\000\001$\000\000\000\000\000\000\0031\000\000\001'\000\000\000\000\000\000\000\000\004\198\000\000\002\021\000\000\000\000\003\234\000\000\001t\003*\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001r\001q\000\000\001p\003)\000\000\000\000\000E\000\000\000\000\000F\000\000\000\000\003\182\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\031\003\030\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\012\000\000\000\155\000\000\000\000\000\000\000\000\000\000\000\000\001\234\001\228\000\000\000\000\001\229\002i\000\000\002h\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004A\000\000\000\000\000\000\000\000\000\000\000\000\002a\000\000\000\000\002e\002]\000\000\000\000\000\000\000\000\002\253\002\251\002\252\000\000\002Y\000\000\000\000\000\000\002`\000\000\000\000\002d\002\\\004\236\000\000\000\000\000\000\000\000\000\000\002c\000\000\000\000\002g\002_\002[\000\000\000\000\002b\000\000\000\000\002f\002^\002Z\002X\000\000\0031\000\000\001&\000\000\000\000\000\000\000\000\003\131\003\006\003\004\003\005\000\000\000\000\000\000\000\000\0031\000\000\001%\000\000\000\000\000\000\000\000\003\130\000\000\000\000\000\000\000\000\000\000\000\000\002m\000\000\000\000\000\000\002l\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0026\000\000\000\000\000\000\000\000\000\000\002$\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\194\003\136\000\000\000\000\000\000\000\025\000\000\002!\000\000\000\000\000\000\000\000\002\172\000\000\003\134\000\000\000\000\002\016\000\000\003\133\000\000\000\000\000\000\002\019\002\017\000\000\002\020\002 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\188\003\140\003~\000\000\003\132\003\127\003\139\003\138\003\137\003\135\001\205\003}\000\000\003{\000\000\000\000\000\000\000\000\000\000\003\142\000\000\003\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0031\000\000\000\000\001\200\003\129\003|\003\141\001\204\003z\000\000\000\141\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0048\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0049\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004:\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004;\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004<\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004=\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004>\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\170\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\171\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\168\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\169\000\000\000\000\000\000\000\000\000)\000\000\000\000\001;\000\000\000\000\000*\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\017\000\000\000.\000\000\000\000\000\000\000\000\000\180\000\000\001+\000\001\000\000\000\000\0010\000\002\000\000\000\000\000\000\001\247\001\248\000\003\000\000\000\000\000\000\000\000\001\250\001\251\001\249\000\023\001\246\000\024\000\000\002\196\000\000\000\004\000\000\002\197\000\000\000\005\000\000\002\198\000\000\000\000\002\199\000\006\000\000\000\007\000\000\002\200\000\000\000\b\000\000\002\201\000\000\000\t\000\000\002\202\000\000\000\n\000\000\002\203\000\000\000\011\000\000\002\204\000\000\000\000\002\205\000\012\000\000\000\000\002\206\000\r\000\000\000\000\000\000\000\000\000\000\004\225\004\220\004\221\004\224\004\222\000\000\000\000\000\000\004\218\004\213\004\214\004\217\004\215\000\000\004\229\000\014\000\000\004\228\000\000\001\215\000\000\000\000\004\226\000\000\004\227\000\000\000\000\000\000\000\000\001\219\001\220\000\000\000\000\001\218\001\217\000\015\000\000\000\000\000\000\005\003\000\000\005\002") + (16, "\000\000\000\000\000\000\004/\004.\004-\004,\004+\003\253\004*\004)\004(\004'\004&\004%\004$\004#\004\"\004!\004 \004\031\004\030\004\029\004\028\004\027\004\026\004\025\004\024\004\023\003\252\004\022\004\021\004\020\004\019\004\018\004\017\004\016\004\015\004\014\004\r\004\012\004\011\004\n\004\t\004\b\004\007\004\006\004\005\004\004\004\003\004\002\004\001\004\000\003\255\003\254\000\000\000\000\000,\000\154\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\138\002r\002\135\002\134\002\133\002\139\002\143\002\131\002\137\002\136\002s\002\141\002\132\002\130\002\129\002\128\002}\002{\002\142\002\140\000\000\000\000\000\000\0013\000\000\000\000\002v\000\000\000\000\000\000\002x\000\000\000\000\000\000\002z\002\147\002\144\002|\002\127\002~\002t\002\145\002\146\000\000\005\b\005\t\000\000\000\000\000\000\000\000\000\000\002S\002U\002T\000(\001\248\000\156\000\000\001-\001.\000\000\000\000\000\000\002\184\002\183\000\000\000\000\000\000\001=\000\000\000\000\000\000\000'\000\000\000\000\000\000\000\000\000\000\000\000\0017\002\254\001;\000\000\000\000\000\000\004\247\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002M\002\178\000\000\002)\000\000\000\000\000\000\000\000\005\003\000\000\004\254\000\000\000\000\005\000\000\000\005\002\000\000\004\255\005\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002K\0019\000\000\002\253\000\000\001\200\000\000\000\000\000\000\000\000\000\000\002\197\000\000\004\246\000\000\003S\003R\000\000\000\000\004\243\000\000\000\000\004\242\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000w\000\000\000\000\000u\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\202\002\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\151\000\000\000\000\000\146\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\246\000\000\000\000\000\000\002\r\000\000\001\249\002\012\000\000\001\247\000a\000#\000 \002\004\002\002\000\029\000\137\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002O\000\026\000\000\000\000\000\000\000\000\004G\000\000\000\000\001\028\000\000\000\000\000\000\000%\000\"\000\031\000\000\000\000\002\005\002\003\004\241\004\249\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003C\000\000\000\000\000\000\000\000\000\000\003D\000\000\000\018\000\138\000\159\000\139\000\028\000\000\000\000\000\000\000\000\000\000\004H\000\000\000\000\000\000\000\000\000\000\004J\000\000\000\000\000\000\000\000\000\000\000\000\004K\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000$\000!\000\030\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004I\000\000\000\000\000\000\000\136\000\000\000\000\000\000\000\019\000\000\000\000\000\000\000\000\000\021\000\000\000\000\000\000\000\000\000\020\000\000\000\140\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0044\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0045\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0046\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0047\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0048\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0049\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004:\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004;\000\000\000\000\000\000\000\000\000\000\000\000\004F\000\000\000\000\000\000\000\000\000\000\000&\000\000\000\000\000\000\000\150\000\000\000\000\000\000\000\149\000\000\000\000\002F\003j\003N\000\000\000\143\000\000\003O\000\000\000\000\002\148\000\000\000\000\000\000\000\000\004\214\000\000\004\215\000\000\000\000\000\142\000\000\000\000\000\000\000\144\000\000\000\145\000\000\000\147\000\000\000\000\000\148\003@\003?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003(\003'\005\019\000\000\000\000\000\000\000\000\000\000\000\000\003\239\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001z\001y\000\000\003\156\003\151\003\152\003\157\000\000\003\154\003\149\003\150\003\155\000\000\000\000\000\000\000\000\000\000\002#\002\"\000\000\003\237\000\000\000\000\000\000\000\000\000\000\002!\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0035\000\000\000\000\000\000\000\000\0016\000\017\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\006\000\000\000\000\002\t\002\007\002\014\000D\003\183\004\213\004\212\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\142\001\141\000\000\000\000\000\000\000t\000\000\001L\000\000\003\158\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\017\000\000\004\248\003\244\000\000\000\000\005\004\005\005\000\000\000\000\000\000\000\000\003\159\000\000\003\243\005\020\000v\005\018\003\153\003\233\005\n\003\148\003\234\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001r\001q\000\000\001p\003\236\000\000\000\000\000\000\000\000\003\240\003\251\003\242\000\000\000\000\000\000\003\247\000\000\000\000\000\000\002\218\002\216\002\213\002\217\002\212\000\000\002\221\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001j\001i\000\000\001h\003\249\003\241\000~\003*\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\220\000\000\000\000\000}\000\000\003\235\000\000\000\000\000\000\000\000\000\000\000\000\001n\001m\000\000\001l\003+\000\000\000\000\000\000\003\250\000\000\000\000\000\000\002\214\002\219\000\000\000|\000\000\003\248\000\000\003\246\000\000\003\160\000\000\000\000\003w\003\245\003,\000\000\000\000\003\165\000\000\002\222\000\000\000\000\000\000\000\000\002\153\001\227\001\228\003\162\000\000\003\161\003\164\000\000\003\163\000\000\001\140\0034\002\228\000\000\000\000\000\000\002\224\002\225\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001~\001}\000\000\001|\0030\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\138\001\137\000\000\001\136\0033\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\134\001\133\000\000\001\132\0032\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\027\001K\000\000\001I\001G\000\000\000\000\001Z\000\000\001Y\001[\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\230\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\181\000\000\001\180\001\179\000\000\001\182\000\000\001\175\000\000\000\000\000\000\000\000\000\000\001\174\000\000\001\172\001\170\000\000\000\000\000\000\001W\000\000\000\000\001V\002\229\001X\000\000\000\000\000\000\000\000\000\000\000\000\002H\000\000\000\000\000\000\001\020\002I\000\000\001\019\000\000\002G\002W\000\000\000\000\000\000\000\000\000\000\001f\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001c\000\000\001a\000\000\001b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001d\000\000\000\000\001_\000\000\000\000\000\000\000\000\001e\000\000\000\000\001^\000\000\001]\001\\\001`\000\000\001\021\0038\000\000\000\000\000\000\002\180\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\025\003\024\000\000\000\000\000r\003\187\002\n\000s\003\191\003\189\000\000\000\000\000\000\003\203\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\029\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003<\000\000\000\000\002/\000\000\000\000\000\000\000\000\000\000\000\000\005%\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\245\000\000\000\000\000\000\000\000\000\000\002.\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\001\002;\002\000\0027\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003L\000\000\000\000\003M\000\000\000\000\003;\000\000\000\000\000\000\002-\000\000\001\030\000\000\001\031\000\000\000\000\002\027\000\000\000\000\002\031\000\000\002\188\000\000\000\000\002\185\000\000\002\186\002\030\002\028\000\000\002\187\000\000\002 \000\000\000\000\000\000\003\220\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\199\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\186\003E\000\000\000\000\000\000\000\000\000\000\001P\001O\000\000\001Q\000\000\000\000\000\000\003\198\000\000\003\195\000\000\000\000\000\000\003\172\000\000\000\000\000\000\000\000\000\000\000\000\003\015\003\014\000\000\000\000\005\011\003\201\003\188\003\226\000\000\000\000\000\000\000\000\000\000\003G\000\000\000\000\000\000\000\000\000\244\003{\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\014\000\189\000\000\000\000\000\000\000\000\000\000\000\000\000\188\000\187\000\000\000\000\000\000\001\026\001\025\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\020\003\019\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0042\001\163\000\000\000\000\002\156\000\000\000\000\000\165\0043\002\157\0037\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\156\000\000\000\000\001\157\000\000\000\000\000\000\000\000\001\152\000\000\000\000\001\153\000\000\000\000\001\146\000\000\000\000\001\147\001\145\000\000\000\000\001\148\000\000\000\000\000\000\000\000\001\160\000\000\000\000\001\161\000\000\000\000\001\159\000\000\000\000\001\158\000\000\000\000\000\000\000\000\000\000\000\000\001\130\001\129\000\000\001\128\0031\000\000\000\000\000\000\000\000\002\226\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\154\000\000\000\000\001\155\000\000\000\000\001\149\000\000\000\000\001\150\001\162\000\000\000\000\001\151\001\143\000\000\000\000\001\206\000\022\001\165\000\000\000\000\000\000\003\174\000\000\000\000\003\173\000\000\000\000\000\000\000\000\003\176\000\000\000\000\003p\000\000\000\000\003\180\000\000\000\000\003\178\003\194\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003>\003=\000\185\003q\000\000\003\175\000\000\000\000\003\179\000\000\000\000\003\177\001\018\000\000\000\151\000\152\000\000\000\000\000\000\000\000\000\182\001\185\000\000\000\000\001\186\000\000\000\000\000\245\000\000\001\188\001\187\000\000\000\000\003\196\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000e\003K\003J\000\000\003\217\003:\0039\003\225\000\000\003\224\000\000\000\000\003\216\000\000\000\000\000\000\000\000\000\000\000\000\003\215\003\210\000\000\003\209\000\000\000\000\003\214\000\000\003\219\000\000\000\000\000\000\000\000\000\000\003\213\000\000\003\218\000\000\000\000\003\212\000\000\000\000\003\197\000\000\000\000\000\000\002\252\000\000\002\174\000\000\000\000\000\000\003z\002\251\000\000\003\206\000\000\000\000\000\000\002\011\000\000\000\000\000\000\000\000\000\000\000\000\000\163\002\181\000\000\000\000\001\230\000\000\001\231\001\229\003F\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\182\000\000\003\181\000\000\000\000\000\000\000\000\000\000\000\000\003\030\003\029\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\167\000\000\003\166\000\000\000\000\003\205\000\000\000\000\000\000\000\000\000\000\000\000\003\221\000\000\000\000\003\204\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003t\003\193\000\000\003\192\000\000\000\000\000\000\000\000\000\000\003\228\000\000\003\211\000\000\000\000\003\227\000\000\000\000\000\000\000\000\000\000\003\230\003\208\000\000\003\207\000\000\000\000\003\229\000\000\000\000\000\000\000\000\002\190\000\000\000\000\002\196\000\000\000\000\002\192\000\000\000\000\002\194\000\000\002\189\000\000\000\000\002\195\000\000\000\000\002\191\000\000\000\000\002\193\000\000\000\000\000\170\000\000\000\000\000\000\000\000\000\169\000\000\000\000\000\000\000\000\000\000\000\000\002'\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\167\000\000\002\019\000\000\000\000\000\000\002&\000\000\000\000\000\000\000x\000\000\000\000\000y\000\000\000\000\000\000\000\000\002?\002@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001B\000\000\000\000\000\132\000\000\001E\001C\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\168\000z\000\000\000\000\002\250\000\000\000\000\001\164\002\172\000\000\001T\000\000\000\000\001S\001U\001\183\000\000\000\000\000\000\000\000\000\000\001\015\000\000\000\000\000\000\000\000\000\000\003\232\003\223\000\000\003\222\000\000\000\000\003\231\003\190\000\000\000\000\000\000\000\000\003\184\000\000\000\000\003\185\000\000\003\169\000\000\003\170\000\000\003\171\000\000\000\000\000\000\001\017\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002o\000\000\000\000\000\000\002n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0029\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\196\004\206\000\000\000\000\004\205\000\000\000\000\000\000\000\000\000\000\002\235\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0011\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002Y\000\000\002\241\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0041\000\000\000\000\003}\000\000\002\232\000\000\000\000\000\000\000\000\000\000\005\023\000\000\000\000\003T\000\000\000\162\000\000\003U\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000H\000\000\000\000\000\000\000\000\002E\000\000\002D\000\000\000\000\000\000\000\000\000K\000\000\000\000\000\000\002\248\000\000\002\247\000\000\000\000\000\000\000\000\000L\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000Q\000\000\000\000\000\000\000R\000P\000\000\000T\000\000\000\000\000\000\000\000\000\000\000J\000\000\000\000\000\000\000\000\000\000\000\000\000M\000\000\000S\000\000\000N\000O\000\000\001\215\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\194\000`\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002=\000\000\000\000\000\000\005\014\000\000\000\000\005\016\000\000\0009\000\000\000\000\005\026\000\000\005\025\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\r\000\000\000\000\005\015\000\000\000\000\000\000\002\243\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\245\000\000\000\000\001\243\001\241\000\000\000:\000\000\000\000\005\029\000\000\005\028\000\000\000\000\000\000\001\239\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\244\000\000\000\000\001\242\001\240\000\000\000\000\000\000\000<\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\167\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000Y\000\000\000\000\000\000\000\000\000\000\000\000\0006\000\000\000\000\000X\000\000\0004\001\168\000\000\000C\0000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\166\000\000\000W\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000]\000\000\000_\000^\000\000\000Z\000\000\000\000\002\161\000\000\0008\000\000\000\000\000\000\0007\000\000\000\000\000\000\000;\000\000\000[\000\000\000=\000>\000\000\001\217\000\000\000\000\000\000\000\000\000\000\000\000\000A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\190\004\209\004\200\000\000\000\000\004\204\0040\004\199\004\208\004\207\001\213\000\000\004\198\000\000\004\196\000\000\000\000\000\000\000\000\004\211\000\000\000\000\000\000\000\000\000\000\000\000\0035\000\000\000\000\001\202\002\159\004\201\004\197\004\210\002\231\000\000\000\000\004\194\000-\004\193\000\000\000\000\000\160\000\000\0015\000\000\000\000\001\212\001\211\000\000\002\240\001,\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\157\000\000\001'\000\000\004\203\003\006\003\007\003\002\003\004\003\003\003\005\000\000\000\000\000\000\000\158\000\000\001(\000\000\000\000\000\000\0035\000\000\001+\000\000\000\000\000\000\000\000\004\202\000\000\002\025\000\000\000\000\003\238\000\000\001x\003.\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001v\001u\000\000\001t\003-\000\000\000\000\000E\000\000\000\000\000F\000\000\000\000\003\186\000\000\000\000\000\000\000\000\000\000\000\192\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003#\003\"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\016\000\000\000\155\000\000\000\000\000\000\000\000\000\000\000\000\001\238\001\232\000\000\000\000\001\233\002m\000\000\002l\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004D\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004E\000\000\000\000\000\000\000\000\000\000\000\000\002e\000\000\000\000\002i\002a\000\000\000\000\000\000\000\000\003\001\002\255\003\000\000\000\002]\000\000\000\000\000\000\002d\000\000\000\000\002h\002`\004\240\000\000\000\000\000\000\000\000\000\000\002g\000\000\000\000\002k\002c\002_\000\000\000\000\002f\000\000\000\000\002j\002b\002^\002\\\000\000\0035\000\000\001*\000\000\000\000\000\000\000\000\003\135\003\n\003\b\003\t\000\000\000\000\000\000\000\000\0035\000\000\001)\000\000\000\000\000\000\000\000\003\134\000\000\000\000\000\000\000\000\000\000\000\000\002q\000\000\000\000\000\000\002p\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002:\000\000\000\000\000\000\000\000\000\000\002(\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\198\003\140\000\000\000\000\000\000\000\025\000\000\002%\000\000\000\000\000\000\000\000\002\176\000\000\003\138\000\000\000\000\002\020\000\000\003\137\000\000\000\000\000\000\002\023\002\021\000\000\002\024\002$\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\192\003\144\003\130\000\000\003\136\003\131\003\143\003\142\003\141\003\139\001\209\003\129\000\000\003\127\000\000\000\000\000\000\000\000\000\000\003\146\000\000\003\132\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0035\000\000\000\000\001\204\003\133\003\128\003\145\001\208\003~\000\000\000\141\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004<\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004=\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004>\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004B\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004C\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\174\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\175\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\172\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\173\000\000\000\000\000\000\000\000\001:\000)\000\000\000\000\001?\000\000\000\000\000*\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\021\000\000\000.\000\000\000\000\000\000\000\000\000\181\000\000\001/\000\001\000\000\000\000\0014\000\002\000\000\000\000\000\000\001\251\001\252\000\003\000\000\000\000\000\000\000\000\001\254\001\255\001\253\000\023\001\250\000\024\000\000\002\200\000\000\000\004\000\000\002\201\000\000\000\005\000\000\002\202\000\000\000\000\002\203\000\006\000\000\000\007\000\000\002\204\000\000\000\b\000\000\002\205\000\000\000\t\000\000\002\206\000\000\000\n\000\000\002\207\000\000\000\011\000\000\002\208\000\000\000\000\002\209\000\012\000\000\000\000\002\210\000\r\000\000\000\000\000\000\000\000\000\000\004\229\004\224\004\225\004\228\004\226\000\000\000\000\000\000\004\222\004\217\004\218\004\221\004\219\000\000\004\233\000\014\000\000\004\232\000\000\001\219\000\000\000\000\004\230\000\000\004\231\000\000\000\000\000\000\000\000\001\223\001\224\000\000\000\000\001\222\001\221\000\015\000\000\000\000\000\000\005\007\000\000\005\006") and error = - (147, "'\244\1681i\170o\204\231\216\n\216\015\242(\000\028d\004v\148\002/\021\r\248\153\249\000[\001\244\005\000\001\140\129\243\236D\b\021\248m\000\002\0248\000{G\002\192P\026\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\127\173\205\235]\211\254g~\242^\224\255\137H\129\231 |\251\017\002\005~\027@\000\134\014\000\030\209\192\176\020\006\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\218P\b\180T7\226g\228\001l\007\208\020\000\0062\007\207\177\016 W\225\180\000\b`\224\001\237\028\011\001@hO\233Qj\211T\223\153\207\176\021\176\031\224P\000x\200\000\000\000\000\004\000\001@\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000(\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000>\128,\018\000\000>\004\b\001\002\000\016+,\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\001@\000\000\000\000\000\000\000\000\000\000\0000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\136\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000p\000\003\128P\000\226\224\128\000\002\128\000\000\000\000\000\000\014R\000`\130\000\156_\023 \007p\006@\000\000 \128\001\202@\012\016@\019\139\226\228\000\238\000\200\000\000\004\016\0009H\001\130\b\002q|\\\128\029\192\025\000\000\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0010\019\186\000@\165R\014\005\131A\016\022\192DD&\160\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\192\000\014\001A\003\139\130\000\000\n\000\000\000\000\000\000\000\b\004 \000\000\b\016\000\128\000\000@\000\000\000B\000\160\003\000\000\000\000\000\n\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012\000\000\000\000\000(\000\001\000\000\000\000\000\000\000\000\000\003\128\000\028\002\128\007\023\004\000\000\020\000\000\000\000\000\000\000\016\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\192\000\014\001A\003\139\130\000\000\n\000\000\000\000\000\000\000\b\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\001\000\132\016\000\001\n\000\016\000\000\b\000\000\002\b@\020\000`\000\000\000\000\001@\000\b\000\000\000\000\000\000\000\000\002\"\000U\000\b\024\002A\128\128H \002\216\000\164\128\006\001\128\000\000\000\000\005\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000 \000\000\016\000\000\000\000\000\000\000\000\000@\000\004\007\000\0008\005\000\014.\b\000\000(\000\000\000\000\000\000\0170\019\184\000@\228R\014\005\130A\016\022\192\005l&\176\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\128\000\024\000\128\007\023\004\000\000\020\000\000\000\000\000\000\000p\000\003\128P@\226\224\128\000\002\128\000\000\000\000\000\000\002\000@@@\b\020\016 \000\000\000@\000\000\000\000\000\000@\b\b\000\001\002\130\004\000\000\000\b\000\000\000\000\000\000\b\001\001\000\000 P@\000\000\000\001\000\000\000\000\000\000\136\128\021@\002\005\b\144p \018\b\000\182\002\003 1\001\016\002\b\000@\128\002\n\004\002\000\000\020@\000\004\004\000\"\000A\000\b\016\000A\000\128@\000\002\136\000\000\128\128\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\136\t\220\000 P)\007\002\001\160\128\011`\002\002\016\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\016\002(\000@\128\002\b\004\002\000\000\020\192\000\004\000\000\012\000\000I\128\129(\000@\002\000\000\000\000\000\000\002\000\001\128\000\t \016%\000\b\000@\000\000\000\000\000\000@\0000\000\001$\002\004\160\000\000\b\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\000\000\018@\000J\000\000\000\128\000\000\000\000\000\000\128\000@\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\t \000 \000\000\000@\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000 \128\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\002\000\000\000\000\000\000\001\b\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000!\000\000\001\128\000\000\000\000\005\000\000 \000\000\000\000\000\000\000\000\b\000\000@\000\000 \000\000\000\000\000\000\000\000\000\128\000\b\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\" \005P\000\129\128\164\024\b\004\130\000-\128\nH\000`\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000`\000\000\000\000\001@\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000/\245\191\255k\190\127\223\255\222O\220\127\243*\020<\244\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\004\000\000\000\000\000\000\002\016\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000B\000\000\003\000\000\000\000\000\n\000\000@\000\000\000\000\000\000\000\000\016\000\000\128\000\000@\000\000\000\000\000\000\000\000\001\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000$\128\000\128\000\000\001\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000 \000\000\000@\002\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\016\000\016\000\000\000 \001\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000D\000\138\b\016 \000\131\001\000\128\000\005\176\001\011\000\b\003\000\000\000\000\000\n\000\000@\000\000\000\000\000\000\000\000\017\016\002(\000@\192\018\012\004\002A\000\022\192\004$\0000\"\000E\000\b\016\000A\128\128@\000\002\216\000\132\128\004\003\144\000\030\002\128\007\023\005\000\000\028\000\128\002\000\000\128\000\136\001\020\000(@\137\007\002\001 \128\n`\"\006\016\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\200\000\014\001@\003\139\130\128\000\014\000@\001\000\000@\0008\000!\192( qp@\000\001@\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000`\000\006\000\000\001E\193\000\000\005\016\000\000\128\000\000\000\028\000\000\224\020\0168\184 \000\000\160\000\000\000\000\000\000\000\128\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\016\b@\000\000\016 \001\000\000\000\128\000\000\000\132\001A\243\236D\b\021\248m\000\002\0248\000{G\002\192P\026\019\250TZ\180\2137\230s\236\005l\007\248\020\000\0302\002;J\001\022\138\134\252L|\128-\128\250\002\128\000\198@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\029\165\000\139\197C~&~@\022\192}\001@\000c #\180\160\017h\168o\196\207\200\002\216\015\160(\000\012d\004v\148\002-\021\r\248\152\249\000[\001\244\005\000\001\140\128\000\000\000\000\000\000\020\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\000\000\007\000\0008\005\000\014.\b\000\000(\000\000\000\000\000\000\000\224\000\007\000\160\001\197\193\000\000\005\000\000\000\000\000(\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\128\000\028\002\128\007\023\004\000\000\020\000\000\000\000\000 \000p\000\019\128P\000\226\224\128\000\002\128\000\000\000\000\020\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\192\000\014\001@\003\139\130\000\000\n\000\000\000\000\000\016\0008\000\001\192(\000qp@\000\001@\000\000\000\000\n\000\003\000\0000\000\000\n.\b\000\000(\000\000\000\000\000\000\000 \016\000\000\000\000@\000\000\000A\000\000\000\000\b\000\000\012\000\000\192\000\000(\184 \000\000\160\000\000\000\000\000\000D\192N\224\001\003\145H8\022\r\004@[\000\021\144\154\192\016\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\128\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\b\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\128\000\000\000\b\000\000\000\000\000P0@\000\001\000\000\000\000\000\000\000\007\000\0008\005\004\014.\b\000\000(\000\000\000\000\000\000\017\016\003\184\000@\228\018\014\005\130A\016\022\192\005d&\176\028\000\000\224\020\0008\184 \000\000\160\000\000\000\000\000\000D@\014\224\001\003\144H8\022\t\004@[\000\021\144\154\192\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\001\017\000;\128\004\014E \224X$\017\001l\000VBk\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\136\128\029\192\002\007 \144p,\018\b\128\182\000+!5\128\224\000\007\000\160\001\197\193\000\000\005\000\000\000\000\000\000\002\"\000w\000\b\028\130A\192\176H\"\002\216\000\172\132\214D@\014\224\001\003\144H8\022\t\004@[\000\021\144\154\192\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\014\000\000`\002\000\028\\\016\000\000P\000\000\000\000\000\000\001\192\000\014\001A\003\139\130\000\000\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000 \000\000\000\000\000@\000\000\000\001\000\000\000\000\000\000\000\004\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\128\000\000\000\b\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000p\000\003\128P\000\226\224\128\000\002\128\000\000\000\000\000\000\002\001\b\000\000\002\004\000 \000\000\016\000\000\000\016\128(\000\192\000\000\000\000\002\128\000\016\000\000\000\000\000\000\000\000\004\000\000 \000\000\016\000\000\000\000\000\000\000\000\000@\000\004\001\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000 \016\128\000\000 @\002\000\000\001\000\000\000\001\b\002\128\012\000\000\000\000\000(\000\001\000\000\000\000\000\000\000\000\000@\000\002\000\000\001\000\000\000\000\000\000\000\000\000\004\000\000@0\000\003\000\000\000\162\224\128\000\002\128\000\000\000\000\000\000\014\000\000p\n\b\028\\\016\000\000P\000\000\000\000\000\000\000\000\000\004\000\000\002\000\000\000\000\000\000\000\000\128\000\000\000\b\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\0000\000\000\000\000\000\160\000\004\000\000\000\000\000\000\000\000\001\000\000\b\000\000\004\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0008\000\001\192(\000qp@\000\001@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\004\0008\000\001\192(\000qp@\000\001@\000\000\000\000\000\000\136\128\029\192\002\007 \144p,\018\b\128\182\000+!5\145\016\003\184\000@\228\018\014\005\130A\016\022\192\005d&\176\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\128\000\024\000\000\005\023\004\000\000\020\000\000\000\000\000\000\b\136\001\220\000 r\t\007\002\193 \136\011`\002\178\019X\014\000\000p\n\000\028\\\016\000\000P\000\000\000\000\000\000\" \007p\000\129\200$\028\011\004\130 -\128\n\200MdD\000\238\000\0169\004\131\129`\144D\005\176\001Y\t\172\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000`\000\006\000\000\001E\193\000\000\005\000\000\000\000\000\000\002\"\000w\000\b\028\130A\192\176H\"\002\216\000\172\132\214D@\014\224\001\003\144H8\022\t\004@[\000\021\144\154\192p\000\003\128P\000\226\224\128\000\002\128\000\000\000\000\000\001\017\000;\128\004\014A \224X$\017\001l\000VBk\" \007p\000\129\200$\028\011\004\130 -\128\n\200M`\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\000\0000\000\000\n.\b\000\000(\000\000\000\000\000\000\017\016\003\184\000@\228\018\014\005\130A\016\022\192\005d&\178\"\000w\000\b\028\130A\192\176H\"\002\216\000\172\132\214D\192N\224\001\003\145H8\022\t\004@[\000\021\144\154\1920\000\003\000\000\000\162\224\128\000\002\128\000\000\000\000\000\001\019\001;\128\004\014E \224X$\017\001l\000V\194k\000\192\000\012\000\000\002\139\130\000\000\n\000\000\000\000\000\000\004L\004\238\000\0169\020\131\129`\144D\005\176\001Y\t\172\001\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\136\t\220\000 r\t\007\002\193 \136\011`\002\178\019X\006\000\000`\000\000\020\\\016\000\000P\000\000\000\000\000\000\"`'p\000\129\200\164\028\011\004\130 -\128\n\216M`\024\000\001\128\000\000Qp@\000\001@\000\000\000\000\000\000\137\128\157\192\002\007\"\144p,\018\b\128\182\000+!5\1450\019\184\000@\228R\014\005\130A\016\022\192\005d&\178&\002w\000\b\028\138A\192\176H\"\002\216\000\172\132\214D@\014\224\001\003\144H8\022\t\004@[\000\021\144\154\192\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\014\000\000p\n\000\028\\\016\000\000P\000\000\000\000\000\000\" \007p\000\129\200$\028\011\004\130 -\128\n\200MdD\000\238\000\0169\004\131\129`\144D\005\176\001Y\t\172\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000`\000\006\000\000\001E\193\000\000\005\000\000\000\000\000\000\002\"\000w\000\b\028\130A\192\176H\"\002\216\000\172\132\214D@\014\224\001\003\144H8\022\t\004@[\000\021\144\154\192\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\017\000;\128\004\014A \224X$\017\001l\000VBk\000\000\000\004\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\001\128\000\000\000\000\005\000\000 \000\000\000\000\000\000\000\000\b\000\000@\000\000 \000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\003\000\000\000\000\000\n\000\000@\000\000\000\000\000\000\000\000\016\000\000\128\000\000@\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\b\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\014\000\000p\n\000\028\\\016\000\000P\000\000\000\000\000\000\000@!\000\000\000@\128\004\000\000\002\000\000\000\002\016\005\000\024\000\000\000\000\000P\000\002\000\000\000\000\000\000\000\000\000\128\000\004\000\000\002\000\000\000\000\000\000\000\000\000\b\000\000\128 \000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\004\002\016\000\000\004\b\000@\000\000 \000\000\000!\000P\001\128\000\000\000\000\005\000\000 \000\000\000\000\000\000\000\000\b\000\000@\000\000 \000\000\000\000\000\000\000\000\000\128\000\b\000\000\b\000\000\000\000\000 \000\000\000\000\000\000\016\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\016\000\000\000\000\000\000\b\000\000\000\000\000\002\000\000\001\000\000\000\000\000\000\000\000@\000\000\000\028\000\000\224\020\0008\184 \000\000\160\000\000\000\000\000\000\000\000\002\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\001\000\014\000\000p\n\000\028\\\016\000\000P\000\000\000\000\000\000\" \007p\000\129\200$\028\011\004\130 -\128\n\200MdD\000\238\000\0169\004\131\129`\144D\005\176\001Y\t\172\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000`\000\006\000\000\001E\193\000\000\005\000\000\000\000\000\000\002\"\000w\000\b\028\130A\192\176H\"\002\216\000\172\132\214D@\014\224\001\003\144H8\022\t\004@[\000\021\144\154\192\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\014\000\000p\n\000\028\\\016\000\000P\000\000\000\000\000\000\" \007p\000\129\200$\028\011\004\130 -\128\n\200MdD\000\238\000\0169\004\131\129`\144D\005\176\001Y\t\172\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000`\000\006\000\000\001E\193\000\000\005\000\000\000\000\000\000\002\"\000w\000\b\028\130A\192\176H\"\002\216\000\172\132\214D@\014\224\001\003\144H8\022\t\004@[\000\021\144\154\192\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\001\000\014\000\000p\n\000\028\\\016\000\000P\000\000\000\000\000\000\" \007p\000\129\200$\028\011\004\130 -\128\n\200MdD\000\238\000\0169\004\131\129`\144D\005\176\001Y\t\172\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000`\000\006\000\000\001E\193\000\000\005\000\000\000\000\000\000\002\"\000w\000\b\028\130A\192\176H\"\002\216\000\172\132\214D@\014\224\001\003\144H8\022\t\004@[\000\021\144\154\192\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\014\000\000p\n\000\028\\\016\000\000P\000\000\000\000\000\000\" \007p\000\129\200$\028\011\004\130 -\128\n\200MdD\000\238\000\0169\004\131\129`\144D\005\176\001Y\t\172\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000`\000\006\000\000\001E\193\000\000\005\000\000\000\000\000\000\002\"\000w\000\b\028\130A\192\176H\"\002\216\000\172\132\214D@\014\224\001\003\144H8\022\t\004@[\000\021\144\154\1920\000\003\000\000\000\162\224\128\000\002\128\000\000\000\000\000\000\014\000\000p\n\b\028\\\016\000\000P\000\000\000\000\000\000\000\000\000\004\000\000\002\000\000\000\000\000\000\000\000\128\000\000\0008\000\001\192(\000qp@\000\001@\000\000\000\000\000\000\000\000\004\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\002\000\028\000\000\224\020\0008\184 \000\000\160\000\000\000\000\000\000D@\014\224\001\003\144H8\022\t\004@[\000\021\144\154\200\136\001\220\000 r\t\007\002\193 \136\011`\002\178\019X\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\192\000\012\000\000\002\139\130\000\000\n\000\000\000\000\000\000\004D\000\238\000\0169\004\131\129`\144D\005\176\001Y\t\172\136\128\029\192\002\007 \144p,\018\b\128\182\000+!5\128\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\028\000\000\224\020\0008\184 \000\000\160\000\000\000\000\000\000D@\014\224\001\003\144H8\022\t\004@[\000\021\144\154\200\136\001\220\000 r\t\007\002\193 \136\011`\002\178\019X\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\192\000\012\000\000\002\139\130\000\000\n\000\000\000\000\000\000\004D\000\238\000\0169\004\131\129`\144D\005\176\001Y\t\172\136\128\029\192\002\007 \144p,\018\b\128\182\000+!5\128\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\002\000\028\000\000\224\020\0008\184 \000\000\160\000\000\000\000\000\000D@\014\224\001\003\144H8\022\t\004@[\000\021\144\154\200\136\001\220\000 r\t\007\002\193 \136\011`\002\178\019X\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\192\000\012\000\000\002\139\130\000\000\n\000\000\000\000\000\000\004D\000\238\000\0169\004\131\129`\144D\005\176\001Y\t\172\136\128\029\192\002\007 \144p,\018\b\128\182\000+!5\128\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\028\000\000\224\020\0008\184 \000\000\160\000\000\000\000\000\000D@\014\224\001\003\144H8\022\t\004@[\000\021\144\154\200\136\001\220\000 r\t\007\002\193 \136\011`\002\178\019X\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\192\000\012\000\000\002\139\130\000\000\n\000\000\000\000\000\000\004D\000\238\000\0169\004\131\129`\144D\005\176\001Y\t\172\136\128\029\192\002\007 \144p,\018\b\128\182\000+!5\128`\000\006\000\000\001E\193\000\000\005\000\000\000\000\000\000\002\"\000w\000\b\028\130A\192\176H\"\002\216\000\172\132\214D@\014\224\001\003\144H8\022\t\004@[\000\021\144\154\192\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\000\000`\000\000\020\\\016\000\000P\000\000\000\000\000\000\" \007p\000\129\200$\028\011\004\130 -\128\n\200MdD\000\238\000\0169\004\131\129`\144D\005\176\001Y\t\172\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128@\000\000\000\001\000\000\000\000\004\000\000\000\000\000\000\0000\000\003\000\000\000\162\224\128\000\002\128\000\000\000\000\000\000\000\001\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\004\000\000\000\000\016\000\000\000\000@\000\000\000\000\000\000\003\000\0000\000\000\n.\b\000\000(\000\000\000\000\000\000\000\000\016\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\128\000\028\002\128\007\023\004\000\000\020\000\000\000\000\000 \000\016\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\028\000\000\224\020\0008\184 \000\000\160\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\b\000\000\001\000\000\000\b\000\000\000\000\016\000\014\000\000p\n\000\028\\\016\000\000P\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0008\000\001\192(\000qp@\000\001@\000\000\000\000\000\000\000\000\001\000\000\000\000\000\016\000\000\000\128\000\000\000\001\000\128\224\000\007\000\160\001\197\193\000\000\005\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000@\000\000\002\000\000\000\000\004\018\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\001\000\000\000\b\000\000\000\000\016H\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\004\000\000\000 \000\000\000\000@\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\028\000\000\224\020\0008\184 \000\000\160\000\000\000\000\001\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\004\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003 \000\000\000\000\004\000\000\000\000\004\000\000\000\b\0008\000\001\192(\000qp@\000\001@\000\000\000\000\000\000\000\000\012\128\000\000\000\000\016\000\000\000\000\016\000\002\000 \000\224\000\007\000\160\001\197\193\000\000\005\000\000\000\000\000\000\000\000\0002\000\000\000\000\000@\000\000\000\000@\000\000\000\128\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\142\210\128E\162\161\191\019\031 \011`>\128\160\0001\144\000\000\000\000\000\000\002\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002@\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006B\000D\000\160\020\019\028 \003`\006\000\160\0001\128\000\200@\b\128\020\002\130c\132\000l\000\192\020\000\0060\000@\000\002\001\000\001@\130\128`\000\000\000\016\001\000\000\000\b\000\000@\000\000(\016P\012\000\000\000\002\000 \000\000\001\000\000\b\000\000\005\002\b\001\128\000\000\000@\004\000\000\000\012\164\000\129\000\001(&.@\014\224\012\128\000\000A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\160\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\0008\000\001\192(\000qp@\000\001@\000\000\000\000\000\000\000\000\004\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\012\164\000\129\000\001(&.@\014\224\012\128\016\000A\000\000\000\000\000\000\000\005\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\001\192\000\014\001@\003\139\130\000\000\n\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\006\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\012\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0002\152B>\128l\178\152\185>?\1363\002\000\025/,\000\000\b\000\000\000\000\000\000 \003\000\004\000\000\000\000\000\000\192\000\000\b\000\000\000\004\000\000\000\000\000\000\000\000\000\000\024\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\003\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000@@\000\b\020\016\000\000\000\000@\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\003\002\000 \000\000\b\b\016\000\000\000 \000\000\000\000\000\000`@\004\000\000\001\001\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000'\244\1681i\170o\204\239\216\n\216\015\241(\000\028d\004\254\149\006-5M\249\156\251\001[\001\254%\000\003\140\128\006\000\000$\192@\148\000 \001\000\000\000\000\000\000\001\000\000\192\000\004\144\b\018\128\004\000 \000\000\000\000\000\000 \000\024\000\000\146\001\002P\000\000\004\000\000\000\000\000\000\004\000\003\000\000\018@\000J\000\000\000\128\000\000\000\000\000\000\128\000 \000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\"\000E\004\b\016\002A\128\128H \002\216\000\129\128\004\004@\b\160\001\002\000H0\016\t\004\000[\000\016\016\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\000\"\128\004\b\001 \192@$\016\001L\000@@\002>}\136\129\002\191\r\160\000C\007\000\015h\224X\n\003B\127J\139V\154\166\252\206}\128\173\128\255\002\128\003\198@O\233Qb\211T\223\153\207\176\021\176\031\230P\0008\200\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004v\148\002/\021\r\248\153\249\000[\001\244\005\000\001\140\128\142\210\128E\162\161\191\019? \011`>\128\160\0001\144\017\218P\b\180T7\226c\228\001l\007\208\020\000\0062\002;J\001\022\138\134\252L|\128-\128\250\002\128\000\198@\001\000\000\000 \000\002\000\016\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000@\002\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\002\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\142\210\128E\226\161\191\019? \011`>\128\160\0001\144\017\218P\b\180T7\226g\228\001l\007\208\020\000\0062\002;J\001\022\138\134\252L|\128-\128\250\002\128\000\198@Gi\196#\249V\223\169\143\147\229\240\159Pp\001\154\250\192d \132@\n\001A1\194\0006\000`\n\000\003\024\001\029\165\000\139EC~&>@\022\192}\001@\016c #\180\160\017h\168o\196\199\200\002\216\015\160(\000\012d\n\187\217\222\190\229~\175\159\235\255\191\184{\127\182\255\255<\142\210\128E\162\161\191\019\031 \011`>\128\160\0001\144\000\202@\b\016\000\018\130b\228\000\238\000\192\000\000\004\016\000\000\000\000\000\000\000P\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\028\000\000\224\020\0008\184 \000\000\160\000\000\000\000\000\000\000\000\002\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\006R\000@\128\000\148\019\023 \007p\006\000\b\000 \128\000\000\000\000\000\000\002\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\224\000\007\000\160\001\197\193\000\000\005\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006R\000@\128\000\148\019\023 \007p\006@\000\b \128\000\202@\b\016\000\018\130b\228\000\238\000\200\000\000\005\016\000\025H\t\002\000\002PL\\\128\029\192\025\000\000\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\000\000\000\000\000\000\000\000\000\000 \000\000\128\000\001\192\000\014\001@\003\139\130\000\000\n\000\000\000\000\000\000\000\000\000D\000\000\000\000\000\128\000\000\000\000\128\000\000\000\000\000\000\b\128\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000e \004\b\000\tA1r\000w\000d\000\000\002\b\000\012\132\000\129\128\001(&h@\014\224\012\000\000\000A\000\001\144\128\016 \000%\004\205\b\001\220\001\128\000\000\b \0002\016\002\004\000\004\160\152\161\000;\1280\000\000\001\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000@\000\000\000\004\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006R\000@\128\000\148\019\023 \007p\006@\000\000 \128\000\200@\b\016\000\018\130b\132\000\238\000\192\000\000\004\016\000\b\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\006R\000@\128\000\148\019\023 \007p\006@\b\000 \128\000\000\000\000\000\000\002\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\224\000\007\000\160\001\197\193\000\000\005\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006B\000@\128\000\148\019\020 \007p\006\000\000\000 \128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000#)\r\168D\001J\t\154\144\011\184\003\020\004\014\213T\000\000 \000\b\000\b\000\000\002\000\000\000@\000\000\002\000\000\000\000\000\000\000\000\000\000\000@\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\025HmB \nPL\220\128]\192\025\160\016v\170\160\001\000\000\000\000\000\b\001\138\000\0000\000\000\000\000\000\000\000e \132\b\000\tA1r\000w\000d\000\000\018\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\148\128\0160\000%\004\205\200\001\220\001\144\000\000\b \0002\144\002\004\000\004\160\153\185\000;\1282\000\000\001\004\000\006R\000@\128\000\148\019\023 \007p\006@\000\000 \128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\148\134\208 \000\165\004\205\200\005\220\001\154\000\006j\170\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\027\000\000\002\000\000 \000\016\000\000(\000\025\138(\000\202@\b\016\000\018\130b\228\000\238\000\200\001\000\004\016\000\000\000\000\000\000\000P\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\028\000\000\224\020\0008\184 \000\000\160\000\000\000\000\000\000\000\000\002\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\200@\b\016\000\018\130b\132\000\238\000\192\000\000\004\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\216\000\000\016\000\001\000\000\128\000\001@\000\204Q@\006R\000@\128\000\148\019\023 \007p\006@\000\000 \128\b\000\003`\000\000@\000\004\000\002\000\000\005\000\0031E\001\025Hm\002\000\nPL\220\128]\192\025\160\000f\170\160\003\169\132#\232\006\203)\139\147\227\248\1310 \001\146\242\192\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\144\128\016 \000%\004\197\b\001\220\001\128\000\000\b \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000 \003\000\004\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\016\000\000\000\000\000\000\b\193\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012\164\000\129\000\001(&.@\014\224\012\128\016\000A\000\000\000\000\000\000\000\005\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\001\192\000\014\001@\003\139\130\000\000\n\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012\132\000\129\000\001(&(@\014\224\012\000\000\000A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\027\000\000\002\000\000 \000\016\000\000(\000\025\138(\001\192\000\014\001@\003\139\130\000\000\n\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000e \004\b\000\tA1r\000w\000d\000\000\002\b\000\128\0006\000\000\004\000\000@\000 \000\000P\0003\020P\000\000\000\000\000\000\005\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\016\000\000\000\000\000\000\b\129\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012\164\004\129\000\001(&.@\014\224\012\128\000\000A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002@\000\000\000\000\004\000\000\000\000\000\000\003!A\000\025H\t\002\000\002PL\\\128\029\192\025\000\000 \162\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\006\192\000\000\128\000\b\000\004\000\000\n\000\006b\138\000\000\000@\000\000\000\000\001\000\000\000\000\000\000\000\136\016@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\002 A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\128\000\000\000\000\016\000\000\000\000\000\000\b\129\004\000\000\001\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012\000\002\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\004@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006B\000@\128\000\148\019\020 \007p\006\000\000\000 \128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\002\000\001\016 \128\012\164\000\129\000\001(&.@\014\224\012\128\000\000A\000\000\000\000\000\000\000\000\000\b\000\000\000\000\b\000\004@\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\004\000\002 A\000\025H\001\002\000\002PL\\\128\029\192\024\000 \000\130\000\000\000\000\000\000\000\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\003\128\000\028\002\128\007\023\004\000\000\020\000\000\000\000\000\000\000\000\000@\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\025\b\001\002\000\002PLP\128\029\192\024\000\000\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000@\000\"\004\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\0002\144\002\004\000\004\160\152\185\000;\1280\000@\001\004\000\000\000\000\000\000\000\020\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\007\000\0008\005\000\014.\b\000\000(\000\000\000\000\000\000\000\000\000\128\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0002\016\002\004\000\004\160\152\161\000;\1280\000\000\001\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\128\000D\b \003!\000 @\000J\t\138\016\003\184\003\000\000\000\016@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\012\164\000\129\000\001(&.@\014\224\012\000\016\000A\000\000\000\000\000\000\000\005\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\001\192\000\014\001@\003\139\130\000\000\n\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012\132\000\129\000\001(&(@\014\224\012\000\000\000A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000 \000\017\002\b\000\202@\n\017\000\018\130f\164\002\238\000\196\000\0024Q\128\000\000\000\000\000\000P\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\001\000\006\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\002\000\000\b\002\000\028\000\000\224\020\0008\184 \000\000\160\000\000\000\000\000\000\000\000\000\b\000\000\004\000\000\000\000\000\000\000\001\000\000\000\000p\000\003\128P\000\226\224\128\000\002\128\000\000\000\000\000\000\000\000\b\000\000\000\000\000 \000\000\000\000 \000\000\000@\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\002\000\000\000\000\002\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000(\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\128\003\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\017\218P\b\180T7\226c\228\001l\007\208\020\000\0062\0009H\017\003\024\"pL\220\128\029\192\025\000\000\000\130\000\003\002\000 \000\b\b\016\000\000\000 \000\000\000\000\128\000`@\004\004\000\001\001\002\000\000\000\004\000\000\000\000\000\000\012\b\000\128\000\000 @\000\000\000\128\000\000\000\000\000\001\129\000\016\000\000\004\004\000\000\000\000\016\000\000\000\000\000\000\176 \002\000\000\000\128\128\000\000\000\002\000\000\000\000\000\000\142\210\128E\162\161\191\019? \011`>\128\160\0001\144\017\218P\b\180T7\226c\228\001l\007\208\020\000\0062\002;J\001\022\138\134\252L|\128-\128\250\002\128\000\230@GiA\"\209P\223\137\143\144\005\176\031@P\000\024\200\000\000\000\000\000\000\000@\000\000\000\000@\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\b\000@\000\000\000\000#\180\160\017h\168o\196\199\200\002\216\015\160(\000\012d\0002\016\002 \005\000\160\152\225\000\027\0000\005\000\001\140\001\000\000\017\000\000\000\000\000\000\000\004\144\000 T\004\128\000\017\218P\b\180T7\226c\228\001l\007\208\020\000\0062\000\025\b\001\017\002\128PL\240\128\r\128\024\002\128\000\198\000\003!\000\"\000P\n\t\158\016\001\176\003\000P\000\024\192\000d \004@\n\001A1\194\0006\000`\n\000\003\024\000\012\132\000\136\001@(&8@\006\192\012\001@\000c\000\001\144\128\017\000(\005\004\199\b\000\216\001\128(\000\012`\004v\148\002-\021\r\248\152\249\000[\001\244\005\000\001\140\128\006B\000D\000\160\020\019\028 \003`\006\000\160\0001\128\017\218P\b\188T7\226g\228\001l\007\208\148\000\0062\002;J\001\022\138\134\252L\252\128-\128\250\018\128\000\198@Gi@\"\209P\223\137\143\144\005\176\031BP\000\024\200\b\237(\004^*\027\2413\242\000\182\003\232\n\000\003\025\001\029\165\000\139EC~&~@\022\192}\001@\000c #\180\160\017h\168o\196\199\200\002\216\015\160(\000\012d\0002\144\002\006\000\004\160\153\185\000;\1282\000\000\001\020\000\006R\000@\128\000\148\0197 \007p\006@\000\000\"\128\000\202@\b\016\000\018\130b\228\000\238\000\200\000\000\004P\000\025H\001\002\000\002PL\\\128\029\192\025\000\000\000\130\000 \000\000\000\000\001\000\000\016\000\000\000\000\000\000\b\129\004\b\237(\004Z*\027\2411\242\000\182\003\232\n\000\003\025\000\012\164\000\161\144\001(&j@\014\224\012\000\000\000A\000\001\148\128\020\"\000%\004\205H\001\220\001\128\000\000\b \0002\144\002\132@\004\160\152\169\000;\1280\000\000\001\004\000\004\000\000\000\000\000\020\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0009H\001\002\b\002pL\\\128\029\192\025\000\000\000\130\000\003)\132#\232\006\203)\139\147\227\248\1310 \001\146\242\192e0\132}\000\217e1r|\127\016f\004\0002^X\000\000\016\000\000\000\000\000@\000\000\000\000\000\000#\004P\003\128\000\028\002\128\007\023\004\000\000\020\000\000\000\000\000\000\000\000\000\001\000\000\000\128\000\000\000\000\000\000\000 \000\000\000\014\000\000p\n\000\028\\\016\000\000P\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\016\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\128\000\000\000\000\128\000F\b\160\007\000\0008\005\000\014.\b\000\000(\000\000\000\000\000\000\000\000\000\002\000\000\001\000\000\000\000\000\000\000\000@\000\000\000\028\000\000\224\020\0008\184 \000\000\160\000\000\000\000\000\000\000\000\002\000\000\000\000\000\b\000\000\000\000\b\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000 \000\000\000\000 \000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003)\000 @\000J\t\139\144\003\184\003 \000\000\016@\000\000\000\128\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\2450\132} \217\2291r|\127\016f\004\0002^X\000\000\000\000\000\000(\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\006\000\000\000\000\000\020\000\000\128\000\000\000\000\000\000\000\000 \000\001\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\n\000\000\000\000\000\000\000\000\000@\000\000`\000\000\000\000\001@\000\b\000\000\000\000\000\000\000\000\002\000\000\016\000\000\b\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000P\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000@\000\000\000\000\000\000#\004P\003\128\000\028\002\128\007\023\004\000\000\020\000\000\000\000\000\000\000\000\000\001\000\000\000\128\000\000\000\000\000\000\000 \000\000\000\014\000\000p\n\000\028\\\016\000\000P\000\000\000\000\000\000\000\000\001\000\000\000\000\000\004\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003)\000 @\000J\t\139\144\003\184\003 \000\000\016@\000\000\000\128\000\000\000\000\002\000\000\000\000\000\000\001\024\"\128\028\000\000\224\020\0008\184 \000\000\160\000\000\000\000\000\000\000\000\000\b\000\000\004\000\000\000\000\000\000\000\001\000\000\000\000p\000\003\128P\000\226\224\128\000\002\128\000\000\000\000\000\000\000\000\b\000\000\000\000\000 \000\000\000\000\000\000\000\000@\000\000\001\000\000\000\000\000\004\000\000\000\000\000\000\000\000\b\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006B\000@\128\000\148\019\020 \007p\006\000\000\000 \128\001\202a\b\250A\179\202b\228\248\254 \204\b\000d\188\176\000\000 \000\000\000\000\000\128\000\000\000\000\000\000F\b\160\007\000\0008\005\000\014.\b\000\000(\000\000\000\000\000\000\000\000\000\002\000\000\001\000\000\000\000\000\000\000\000@\000\000\000\028\000\000\224\020\0008\184 \000\000\160\000\000\000\000\000\000\000\000\002\000\000\000\000\000\b\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006R\000@\128\000\148\019\023 \007p\006@\000\000 \128\000\000\001\000\000\000\000\000\004\000\000\000\000\000\000\0020E\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007\000\0008\005\000\014.\b\000\000(\000\000\000\000\000\000\000\000\000\002\000\000\001\000\000\000\000\000\000\000\000@\000\000\000\028\000\000\224\020\0008\184 \000\000\160\000\000\000\000\000\000\000\000\002\000\000\000\000\000\b\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000@\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0002\144\002\132@\020\160\152\169\000;\1281\000\000%\005\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\002\000\128\003\000\0000\000\000\n.\b\000\000(\000\000\000\000\000\000\000 \000\000\000\000 @\000\000\000\001\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\004v\148\002-\021\r\248\152\249\000[\001\244\005\000\001\140\128\006R\000@\192\000\148\0197 \007p\006@\000\000\"\128\000\202@\b\016\000\018\130f\228\000\238\000\200\000\000\004P\000\025H\001\002\000\002PL\\\128\029\192\025\000\000\000\138\000\168\148\157\193\234\007\224\176p/\250\011\132\183\129o\2313\200\237(\004Z*\027\2411\242\000\182\003\232\n\000\003\025\000\000\000\000\000\000\000(\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000$\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003!\000\"\000P\n\t\142\016\001\176\003\000P\000\024\192\000d \004@\n\001A1\194\0006\000`\n\000\003\024\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\171\189\157\235\238W\234\185\254\191\251\251\135\183\251o\255\247\192 \000\000\000\000\001@1\192\000\000\000\000\000\000\000\000\001\029\167\016\143\229[~\166>O\151\194}A\192\006k\235\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004v\148B-\021\r\248\152\249\000[\001\244\005\000\001\140\128\142\210\136E\162\161\191\019\031 \011`>\128\160\0001\144\000\192\128\b\b\000\002\002\004\000\000\000\b\000\000\000\000\000\000\024\016\001\000\000\000@@\128\000\000\001\000\000\000\000\000\000\003\002\000 \000\000\b\b\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\001\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\001\128\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000@\b\b\000\001\002\130\000\000\000\000\b\000\000\000\000\000\000\b\001!\000\000 P@\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000 \004\004\000\000\129A\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000 \000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\b\001\001\000\000 P@\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\016\002\168\000@\160\018\014\004\002A\000\022\192\000D\006 \006\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\001\128\000\t \000%\000\000\000@\000\000\000\000\000\000@\000\016\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\002\000\000\001\192\000\015\001@\003\139\130\000\000\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007\000\0008\005\000\014.\b\000\000(\000\000\000\000\000\000\017\016\002\168\000@\160\018\014\004\002A\000\022\192\000D\006\160\028\000\000\224\020\0008\184 \000\000\160\000\000\000\000\000\000D@\n\160\001\002\128H8\016\t\004\000[\000\017\016\026\136\136\001T\000 P\t\007\002\001 \128\011`\002\"\003\016\014\000\000p\n\000\028\\\016\000\000P\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\004\000\000\000\000\0008\000\001\192(\000qp@\000\001@\000\000\000\000\000\000\136\128\021@\002\005\000\144p \018\b\000\182\000\" 1\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\016\000\000\002\000@@\000\b\020\016\000\000\000\000@\000\000\000\000\000\" \005P\000\129@$\028\b\004\130\000-\128\000\136\012@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000 \004\004\000\000\129A\000\000\000\000\004\000\000\000\000\000\002\"\000U\000\b\020\002A\192\128H \002\216\000\b\128\196\000\128\016\016\000\002\005\004\000\000\000\000\016\000\000\000\000\000\b\136\001T\000 P\t\007\002\001 \128\011`\000\"\003\017\017\000*\128\004\n\001 \224@$\016\001l\000\004@b\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\128\000\000\000\b\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\136\128\021@\002\005\b\144p \018\b\000\182\002\003 1\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\017\000*\128\004\n\001 \224@$\016\001l\000\004@b\000@\b\b\000\001\002\130\000\000\000\000\b\000\000\000\000\000\004D\000\170\000\016(\004\131\129\000\144@\005\176\000\017\001\136\000\000\000\000\000\000\000\000\000\000\000\000\000\016\002\001\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\"\000U\000\b\020\"A\192\128H \002\216\b\b\128\196\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\017\000*\128\004\n\017 \224@$\016\001l\004\004@b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004D\000\170\000\016(\004\131\129\000\144@\005\176\000\017\001\136\000\128\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\"\000U\000\b\020\"A\192\128H \002\216\b\b\128\196D@\n\160\001\002\128H8\016\t\004\000[\000\001\016\024\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\017\000*\128\004\n\001 \224@$\016\001l\000\004@b\" \005P\000\129@$\028\b\004\130\000-\128\000\136\012D\000\000 \000\000\b\000\000\128\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\128\000\000 \000\002\000\000\000\000\000\000\000\000\006\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\192\128\b\000\000\002\002\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\136\128\021@\002\005\b\144p \026\b\000\182\000\002`1\001`@\132\000\000\001\001\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\004\000\b\000\000\000\000\000\000\000 \b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000@@\000\b\020\016\000\000\000\000@\000\000\000\000\000 \000\001\000\000\000@\000\004\000\000\000\000\000\000\000\000\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\" \005P\000\129B$\028\b\006\130\000-\128\128\152\012@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\016\000\000\000\000\000\000\000@\000\000 \004\004\000\000\129A\000\000\000\000\004\000\000\000\000\000\002\000\000\016\000\000\004\000\000@\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004v\148B-\021\r\248\152\249\000[\001\244\005\000\001\140\128\142\210\136E\162\161\191\019\031 \011`>\128\160\0001\144\000\202A\b\016\000\018\130b\228\000\238\000\192\000\000\004\016\000\000\000\000\000\000\000\000\000\128\000\000\000\000\128\000F\b \007\000\0008\005\000\014.\b\000\000(\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\002\000\000\000\000\001\029\165\000\139EC~&>@\022\192}\001@\000c \001\148\128\0160\000%\004\205\200\001\220\001\144\000\000\b \0002\144\002\004\000\004\160\153\185\000;\1282\000\000\001\004\000\006R\000@\128\000\148\019\023 \007p\006@\000\000 \128\000\000\000\000\000\000\000\000\004\000\000\000\000\004\000\002 A\002;J\001\022\138\134\252L|\128-\128\250\002\128\000\198@Gi@\"\209P\223\137\143\144\005\176\031@P\000\024\200\000d \004D\n\001A3\194\0006\000`\n\000\003\024\000\012\132\000\136\001@(&x@\006\192\012\001@\000c\000\001\144\128\017\000(\005\004\199\b\000\216\001\128(\000\012`\n\137I\220\030\160~\011\007\002\255\164\184Kz\182\254s<\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\025\b\001\016\002\128PLp\128\r\128\024\002\128\000\198\000\171\189\157\235\238W\234\185\254\191\251\251\135\183\251o\255\247\192\000\000\000\000\000\001\000\001@\000\000\000\000\000\000\000\000\001\029\165\000\139EC~&>@\022\192}\001@\000c \001\148\128\0160\000%\004\205\200\001\220\001\144\000\000\b\160\0002\144\002\004\000\004\160\153\185\000;\1282\000\000\001\020\000\006R\000@\128\000\148\019\023 \007p\006@\000\000\"\128\000\000\003`\000\000\000\000\000\000\000\000\000\000\000\003\001@\002;J-\022\138\134\252L|\128-\128\250\002\128 \230@Gi@\"\209P\223\137\143\144\005\176\031@P\000\024\200\000e \004\012\000\tA3r\000w\000d\000\000\002(\000\012\164\000\129\000\001(&n@\014\224\012\128\000\000E\000\001\148\128\016 \000%\004\197\200\001\220\001\144\000\000\b\160\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000*\239gz\251\149\250\174\127\175\254\254\225\237\254\219\255\252\240\000\000\000\000\000\000P\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000H\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\025\b\001\016\002\128PLp\128\r\128\024\002\128\000\198\000\171\189\157\235\238W\234\185\254\191\251\251\135\183\251o\255\247\192\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\020\000\020\000\000\000\000\000\000\000\000\000\017\218P\b\180T7\226c\228\001l\007\208\020\000\0062\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\021\018\147\184=@\252\022\014\005\255Ap\150\240-\252\230y\029\165\000\139EC~&>@\022\192}\001@\000c \000\000\000\000\000\000\005\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\128\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000d \004@\n\001A1\194\0006\000`\n\000\003\024\002\162Rw\007\168\031\130\193\192\191\233.\018\222\173\191\156\207\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\025H\001\003\000\002PL\220\128\029\192\025\000\000\000\138\000\003)\000 @\000J\t\155\144\003\184\003 \000\000\017@\000e \004\b\000\tA1r\000w\000d\000\000\002(\002\162Rw\007\168\031\130\193\192\191\232.\018\222\005\191\156\207\001\148\128\016 \000%\004\197\200\001\220\001\144\000\000\b \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001W{;\215\220\175\213s\253\127\247\247\015o\246\223\255\231\170%'pz\129\248,\028\011\254\146\225-\234\219\249\204\240\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\bGi@\"\209P\223\137\143\144\005\176\031@P\000\024\200\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000TJN\224\245\003\240X8\023\253\005\194[\192\183\243\153\228v\148\002-\021\r\248\152\249\000[\001\244\005\000\001\140\128\006R\000@\192\000\148\0197 \007p\006@\000\000\"\128\000\202@\b\016\000\018\130f\228\000\238\000\200\000\000\004P\000\025H\001\002\000\002PL\\\128\029\192\025\000\000\000\138\000\168\148\157\193\234\007\224\176p/\250\011\132\183\129o\2313\213\018\147\184=@\252\022\014\005\255Ap\150\240-\252\230y\029\165\000\139EC~&>@\022\192}\001@\000c \001\148\128\0160\000%\004\205\200\001\220\001\144\000\000\b\160\0002\144\002\004\000\004\160\153\185\000;\1282\000\000\001\020\000\006R\000@\128\000\148\019\023 \007p\006@\000\000\"\128*%'pz\129\248,\028\011\254\130\225-\224[\249\204\245D\164\238\015P?\005\131\129\127\208\\%\188\011\1279\158\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\021w\179\189}\202\253W?\215\255\127p\246\255m\255\254z\162Rw\007\168\031\130\193\192\191\233.\018\222\173\191\156\207#\180\160\017h\168o\196\199\200\002\216\015\160(\000\012d\0002\144\002\006\000\004\160\153\185\000;\1282\000\000\001\020\000\006R\000@\128\000\148\0197 \007p\006@\000\000\"\128\000\202@\b\016\000\018\130b\228\000\238\000\200\000\000\004P\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\029\255\187\188\127j\255\247?\247\255\247s\254\250-\255\255{\231\216\136\016+\240\218\000\0040p\000\246\142\005\128\1604#\180\160\017h\168o\196\199\200\002\216\015\160(\000\012d\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\218P\b\180T7\226c\228\001l\007\208\020\000\0062\000\025H\001\003\000\002PL\220\128\029\192\025\000\000\000\138\000\003)\000 @\000J\t\155\144\003\184\003 \000\000\017@\000e \004\b\000\tA1r\000w\000d\000\000\002(\002\162Rw\007\168\031\130\193\192\191\232.\018\222\005\191\156\207TJN\224\245\003\240X8\023\253\005\194[\192\183\243\153\228v\148\002-\021\r\248\152\249\000[\001\244\005\000\001\140\128\006R\000@\192\000\148\0197 \007p\006@\000\000\"\128\000\202@\b\016\000\018\130f\228\000\238\000\200\000\000\004P\000\025H\001\002\000\002PL\\\128\029\192\025\000\000\000\138\000\168\148\157\193\234\007\224\176p/\250\011\132\183\129o\2313\213\018\147\184=@\252\022\014\005\255Ap\150\240-\252\230y\029\165\000\139EC~&>@\022\192}\001@\000c \001\148\128\0160\000%\004\205\200\001\220\001\144\000\000\b\160\0002\144\002\004\000\004\160\153\185\000;\1282\000\000\001\020\000\006R\000@\128\000\148\019\023 \007p\006@\000\000\"\128*%'pz\129\248,\028\011\254\130\225-\224[\249\204\245D\164\238\015P?\005\131\129\127\208\\%\188\011\1279\158Gi@\"\209P\223\137\143\144\005\176\031@P\000\024\200\000e \004\012\000\tA3r\000w\000d\000\000\002(\000\012\164\000\129\000\001(&n@\014\224\012\128\000\000E\000\001\148\128\016 \000%\004\197\200\001\220\001\144\000\000\b\160\n\137I\220\030\160~\011\007\002\255\160\184Kx\022\254s=Q);\131\212\015\193`\224_\244\023\to\002\223\206g\145\218P\b\180T7\226c\228\001l\007\208\020\000\0062\000\025H\001\003\000\002PL\220\128\029\192\025\000\000\000\138\000\003)\000 @\000J\t\155\144\003\184\003 \000\000\017@\000e \004\b\000\tA1r\000w\000d\000\000\002(\002\162Rw\007\168\031\130\193\192\191\232.\018\222\005\191\156\207TJN\224\245\003\240X8\023\253\005\194[\192\183\243\153\228v\148\002-\021\r\248\152\249\000[\001\244\005\000\001\140\128\006R\000@\192\000\148\0197 \007p\006@\000\000\"\128\000\202@\b\016\000\018\130f\228\000\238\000\200\000\000\004P\000\025H\001\002\000\002PL\\\128\029\192\025\000\000\000\138\000\168\148\157\193\234\007\224\176p/\250\011\132\183\129o\2313\213\018\147\184=@\252\022\014\005\255Ap\150\240-\252\230y\029\165\000\139EC~&>@\022\192}\001@\000c \001\148\128\0160\000%\004\205\200\001\220\001\144\000\000\b\160\0002\144\002\004\000\004\160\153\185\000;\1282\000\000\001\020\000\006R\000@\128\000\148\019\023 \007p\006@\000\000\"\128*%'pz\129\248,\028\011\254\130\225-\224[\249\204\245D\164\238\015P?\005\131\129\127\208\\%\188\011\1279\158Gi@\"\209P\223\137\143\144\005\176\031@P\000\024\200\000e \004\012\000\tA3r\000w\000d\000\000\002(\000\012\164\000\129\000\001(&n@\014\224\012\128\000\000E\000\001\148\128\016 \000%\004\197\200\001\220\001\144\000\000\b\160\n\137I\220\030\160~\011\007\002\255\160\184Kx\022\254s=Q);\131\212\015\193`\224_\244\023\to\002\223\206g\145\218P\b\180T7\226c\228\001l\007\208\020\000\0062\000\025H\001\003\000\002PL\220\128\029\192\025\000\000\000\138\000\003)\000 @\000J\t\155\144\003\184\003 \000\000\017@\000e \004\b\000\tA1r\000w\000d\000\000\002(\002\162Rw\007\168\031\130\193\192\191\232.\018\222\005\191\156\207TJN\224\245\003\240X8\023\253\005\194[\192\183\243\153\228v\148\002-\021\r\248\152\249\000[\001\244\005\000\001\140\128\006R\000@\192\000\148\0197 \007p\006@\000\000\"\128\000\202@\b\016\000\018\130f\228\000\238\000\200\000\000\004P\000\025H\001\002\000\002PL\\\128\029\192\025\000\000\000\138\000\168\148\157\193\234\007\224\176p/\250\011\132\183\129o\2313\213\018\147\184=@\252\022\014\005\255Ap\150\240-\252\230y\029\165\000\139EC~&>@\022\192}\001@\000c \001\148\128\0160\000%\004\205\200\001\220\001\144\000\000\b\160\0002\144\002\004\000\004\160\153\185\000;\1282\000\000\001\020\000\006R\000@\128\000\148\019\023 \007p\006@\000\000\"\128*%'pz\129\248,\028\011\254\130\225-\224[\249\204\245D\164\238\015P?\005\131\129\127\208\\%\188\011\1279\158Gi@\"\209P\223\137\143\144\005\176\031@P\000\024\200\000e \004\012\000\tA3r\000w\000d\000\000\002(\000\012\164\000\129\000\001(&n@\014\224\012\128\000\000E\000\001\148\128\016 \000%\004\197\200\001\220\001\144\000\000\b\160\n\137I\220\030\160~\011\007\002\255\160\184Kx\022\254s=Q);\131\212\015\193`\224_\244\023\to\002\223\206g\145\218P\b\180T7\226c\228\001l\007\208\020\000\0062\000\025H\001\003\000\002PL\220\128\029\192\025\000\000\000\138\000\003)\000 @\000J\t\155\144\003\184\003 \000\000\017@\000e \004\b\000\tA1r\000w\000d\000\000\002(\002\162Rw\007\168\031\130\193\192\191\232.\018\222\005\191\156\207TJN\224\245\003\240X8\023\253\005\194[\192\183\243\153\228v\148\002-\021\r\248\152\249\000[\001\244\005\000\001\140\128\006R\000@\192\000\148\0197 \007p\006@\000\000\"\128\000\202@\b\016\000\018\130f\228\000\238\000\200\000\000\004P\000\025H\001\002\000\002PL\\\128\029\192\025\000\000\000\138\000\168\148\157\193\234\007\224\176p/\250\011\132\183\129o\2313\213\018\147\184=@\252\022\014\005\255Ap\150\240-\252\230y\029\165\000\139EC~&>@\022\192}\001@\000c \001\148\128\0160\000%\004\205\200\001\220\001\144\000\000\b\160\0002\144\002\004\000\004\160\153\185\000;\1282\000\000\001\020\000\006R\000@\128\000\148\019\023 \007p\006@\000\000\"\128*%'pz\129\248,\028\011\254\130\225-\224[\249\204\245D\164\238\015P?\005\131\129\127\208\\%\188\011\1279\158Gi@\"\209P\223\137\143\144\005\176\031@P\000\024\200\000e \004\012\000\tA3r\000w\000d\000\000\002(\000\012\164\000\129\000\001(&n@\014\224\012\128\000\000E\000\001\148\128\016 \000%\004\197\200\001\220\001\144\000\000\b\160\n\137I\220\030\160~\011\007\002\255\160\184Kx\022\254s=Q);\131\212\015\193`\224_\244\023\to\002\223\206g\145\218P\b\180T7\226c\228\001l\007\208\020\000\0062\000\025H\001\003\000\002PL\220\128\029\192\025\000\000\000\138\000\003)\000 @\000J\t\155\144\003\184\003 \000\000\017@\000e \004\b\000\tA1r\000w\000d\000\000\002(\002\162Rw\007\168\031\130\193\192\191\232.\018\222\005\191\156\207TJN\224\245\003\240X8\023\253\005\194[\192\183\243\153\228v\148\002-\021\r\248\152\249\000[\001\244\005\000\001\140\128\006R\000@\192\000\148\0197 \007p\006@\000\000\"\128\000\202@\b\016\000\018\130f\228\000\238\000\200\000\000\004P\000\025H\001\002\000\002PL\\\128\029\192\025\000\000\000\138\000\168\148\157\193\234\007\224\176p/\250\011\132\183\129o\2313\213\018\147\184=@\252\022\014\005\255Ap\150\240-\252\230y\029\165\000\139EC~&>@\022\192}\001@\000c \001\148\128\0160\000%\004\205\200\001\220\001\144\000\000\b\160\0002\144\002\004\000\004\160\153\185\000;\1282\000\000\001\020\000\006R\000@\128\000\148\019\023 \007p\006@\000\000\"\128*%'pz\129\248,\028\011\254\130\225-\224[\249\204\245D\164\238\015P?\005\131\129\127\208\\%\188\011\1279\158Gi@\"\209P\223\137\143\144\005\176\031@P\000\024\200\000e \004\012\000\tA3r\000w\000d\000\000\002(\000\012\164\000\129\000\001(&n@\014\224\012\128\000\000E\000\001\148\128\016 \000%\004\197\200\001\220\001\144\000\000\b\160\n\137I\220\030\160~\011\007\002\255\160\184Kx\022\254s=Q);\131\212\015\193`\224_\244\023\to\002\223\206g\145\218P\b\180T7\226c\228\001l\007\208\020\000\0062\000\025H\001\003\000\002PL\220\128\029\192\025\000\000\000\138\000\003)\000 @\000J\t\155\144\003\184\003 \000\000\017@\000e \004\b\000\tA1r\000w\000d\000\000\002(\002\162Rw\007\168\031\130\193\192\191\232.\018\222\005\191\156\207TJN\224\245\003\240X8\023\253\005\194[\192\183\243\153\228v\148\002-\021\r\248\152\249\000[\001\244\005\000\001\140\128\000\000\000\000\000\000\020\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\144\128\017\000(\005\004\199\b\000\216\001\128(\000\012`\n\137I\220\030\160~\011\007\002\255\164\184Kz\182\254s<\006R\000@\192\000\148\0197 \007p\006@\000\000\"\128\000\202@\b\016\000\018\130f\228\000\238\000\200\000\000\004P\000\025H\001\002\000\002PL\\\128\029\192\025\000\000\000\138\000\168\148\157\193\234\007\224\176p/\250\011\132\183\129o\2313\213\018\147\184=@\252\022\014\005\255Ap\150\240-\252\230y\029\165\000\139EC~&>@\022\192}\001@\000c \001\148\128\0160\000%\004\205\200\001\220\001\144\000\000\b\160\0002\144\002\004\000\004\160\153\185\000;\1282\000\000\001\020\000\006R\000@\128\000\148\019\023 \007p\006@\000\000\"\128*%'pz\129\248,\028\011\254\130\225-\224[\249\204\245D\164\238\015P?\005\131\129\127\208\\%\188\011\1279\158\007)\000 A\000N\t\155\144\003\184\003\000\000\000\016@\000\229 \004\b \t\1931r\000w\000`\000\000\002\b\000\012\166\016\143\160\027,\166.O\143\226\012\192\128\006K\203\000\000\002\000\000\000\000\000\b\000\000\000\000\000\000\004`\138\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006R\000P\136\000\148\019\021 \007p\006 \000\000 \128\017\218P\b\180T7\226c\228\001l\007\208\020\000\0062\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000H\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\142\210\128E\162\161\191\019\031 \011`>\128\160\0001\144\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000.\164E\161\024\017*g\234\192n\224\014\216\000+\197T\003\192\000\028\002\128\007\023\004\000\000\020\000\000\000\000\000\000\000\000\000\000\000\000\000\160\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\001\192\000\014\001@\003\139\130\000\000\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\128\000\000\001\000Gi@\"\209P\223\137\143\144\005\176\031@P\000\024\200\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000#\180\160\017h\168o\196\199\200\002\216\015\160(\000\012d\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\016\000\000\000\000\000\000\000\004\000\000\000\001\192\000\014\001@\003\139\130\000\000\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\128\000\000\001\000Gi@\"\209P\223\137\143\144\005\176\031@P\000\024\200\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000#\180\160\017h\168o\196\199\200\002\216\015\160(\000\012d\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000@\017\218P\b\180T7\226c\228\001l\007\208\020\000\0062\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\b\237(\004Z*\027\2411\242\000\182\003\232\n\000\003\025\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\142\210\128E\162\161\191\019\031 \011`>\128\160\0001\144\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\128\000F\b\160\007\000\0008\005\000\014.\b\000\000(\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\002\000\000\000\004\001\029\165\000\139EC~&>@\022\192}\001@\000c \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\142\210\128E\162\161\191\019\031 \011`>\128\160\0001\144\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000Gi@\"\209P\223\137\143\144\005\176\031@P\000\024\200\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000@\000\"\004\016#\180\160\017h\168o\196\199\200\002\216\015\160(\000\012d\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006R\000@\128\000\148\019\023 \007p\006\000\b\000 \128\000\000\000\000\000\000\002\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\224\000\007\000\160\001\197\193\000\000\005\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006B\000@\128\000\148\019\020 \007p\006\000\000\000 \128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\016\000\b\129\004\000e \004\b\000\tA1r\000w\000d\000\000\002\b\000\000\000\000\000\000\000\000\000@\000\000\000\000@\000\"\004\016\000\000\000\000\000\000\005\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\000\000\000\000\000\000\000\000\000\000\202@\n\017\000\018\130b\164\000\238\000\196\000\000\148\020\0008\000\001\192(\000qp@\000\001@\000\000\000\000\000\000\000\000\000\016\000\000\b\000\000\000\000\000\000\000\002\000\000\000\000\224\000\007\000\160\001\197\193\000\000\005\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000@\000\000\000\128#\180\160\017h\168o\196\199\200\002\216\015\160(\000\012d\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\017\218P\b\180T7\226c\228\001l\007\208\020\000\0062\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000 \b\237(\004Z*\027\2411\242\000\182\003\232\n\000\003\025\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\004v\148\002-\021\r\248\152\249\000[\001\244\005\000\001\140\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000Gi@\"\209P\223\137\143\144\005\176\031@P\000\024\200\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004@\b\160\001\002\000H0\016\r\004\000S\000\000\016\000\128\136\001\020\000 B\t\006\002\193\160\128\n`\002\002\002\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\168\148\157\193\234\007\224\176p/\250\011\132\183\129o\2313\200\237(\004Z*\027\2411\242\000\182\003\232\n\000\003\025\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004v\148\002-\021\r\248\152\249\000[\001\244\005\000\001\140\128\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\016\000\000\000\000\000\000\000\000\000\b\000\n\000\000\000\000\000\000\000\000\000\b\237(\004Z*\027\2411\242\000\182\003\232\n\000\003\025\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\216\030\128,\002\001\000>\000\b\001\000\000\216c\012\142\210\139E\162\161\191\019\031 \011`>\128\160\b9\144\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002;J\001\022\138\134\252L|\128-\128\250\002\128\000\198@\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\029\165\000\139EC~&>@\022\192}\001@\000c \000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\200@\b\128\020\002\130c\132\000l\000\192\020\000\0060\005]\236\239_r\191U\207\245\255\223\220=\191\219\127\255\190\000\000\000\000\000\000\b\000\n\000\000\000\000\000\000\000\000\000\b\237(\004Z*\027\2411\242\000\182\003\232\n\000\003\025\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000U\222\206\245\247+\245|\255_\253\253\195\219\253\183\255\249\228v\148\002-\021\r\248\152\249\000[\001\244\005\000\001\140\128\006R\000@\192\000\148\0197 \007p\006@\000\000\"\128\000\202@\b\016\000\018\130f\228\000\238\000\200\000\000\004P\000\025H\001\002\000\002PL\\\128\029\192\025\000\000\000\138\000\168\148\157\193\234\007\224\176p/\250\011\132\183\129o\2313\213\018\147\184=@\252\022\014\005\255Ap\150\240-\252\230y\029\165\000\139EC~&>@\022\192}\001@\000c \000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\187\217\222\190\229~\175\159\235\255\191\184{\127\182\255\255<\142\210\128E\162\161\191\019\031 \011`>\128\160\0001\144\000\202@\b\024\000\018\130f\228\000\238\000\200\000\000\004P\000\025H\001\002\000\002PL\220\128\029\192\025\000\000\000\138\000\003)\000 @\000J\t\139\144\003\184\003 \000\000\017@\021\018\147\184=@\252\022\014\005\255Ap\150\240-\252\230z\162Rw\007\168\031\130\193\192\191\232.\018\222\005\191\156\207#\180\160\017h\168o\196\199\200\002\216\015\160(\000\012d\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001W{;\215\220\175\213\243\253\127\247\247\015o\246\223\255\231\145\218P\b\180T7\226c\228\001l\007\208\020\000\0062\000\025H\001\003\000\002PL\220\128\029\192\025\000\000\000\138\000\003)\000 @\000J\t\155\144\003\184\003 \000\000\017@\000e \004\b\000\tA1r\000w\000d\000\000\002(\002\162Rw\007\168\031\130\193\192\191\232.\018\222\005\191\156\207TJN\224\245\003\240X8\023\253\005\194[\192\183\243\153\224\016\000\000\000\000\000\160\000\160\000\000\000\000\000\000\000\000\000\142\210\128E\162\161\191\019\031 \011`>\128\160\0001\144\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005]\236\239_r\191W\207\245\255\223\220=\191\219\127\255\158Gi@\"\209P\223\137\143\144\005\176\031@P\000\024\200\000e \004\012\000\tA3r\000w\000d\000\000\002(\000\012\164\000\129\000\001(&n@\014\224\012\128\000\000E\000\001\148\128\016 \000%\004\197\200\001\220\001\144\000\000\b\160\n\137I\220\030\160~\011\007\002\255\160\184Kx\022\254s=Q);\131\212\015\193`\224_\244\023\to\002\223\206g\145\218P\b\180T7\226c\228\001l\007\208\020\000\0062\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\171\189\157\235\238W\234\249\254\191\251\251\135\183\251o\255\243\200\237(\004Z*\027\2411\242\000\182\003\232\n\000\003\025\000\012\164\000\129\128\001(&n@\014\224\012\128\000\000E\000\001\148\128\016 \000%\004\205\200\001\220\001\144\000\000\b\160\0002\144\002\004\000\004\160\152\185\000;\1282\000\000\001\020\001Q);\131\212\015\193`\224_\244\023\to\002\223\206g\170%'pz\129\248,\028\011\254\130\225-\224[\249\204\242;J\001\022\138\134\252L|\128-\128\250\002\128\000\198@\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\021w\179\189}\202\253_?\215\255\127p\246\255m\255\254y\029\165\000\139EC~&>@\022\192}\001@\000c \001\148\128\0160\000%\004\205\200\001\220\001\144\000\000\b\160\0002\144\002\004\000\004\160\153\185\000;\1282\000\000\001\020\000\006R\000@\128\000\148\019\023 \007p\006@\000\000\"\128*%'pz\129\248,\028\011\254\130\225-\224[\249\204\245D\164\238\015P?\005\131\129\127\208\\%\188\011\1279\158\000\000\000\000\000\000\000\000\000\000\000\000\000\000\"\000\000\000\000\000\000\000\000\000\001\000\001@\000\000\000\000\000\000\000\000\001\029\165\000\139EC~&>@\022\192}\001@\000c \000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\187\217\222\190\229~\175\159\235\255\191\184{\127\182\255\255<\142\210\128E\162\161\191\019\031 \011`>\128\160\0001\144\000\202@\b\024\000\018\130f\228\000\238\000\200\000\000\004P\000\025H\001\002\000\002PL\220\128\029\192\025\000\000\000\138\000\003)\000 @\000J\t\139\144\003\184\003 \000\000\017@\021\018\147\184=@\252\022\014\005\255Ap\150\240-\252\230z\162Rw\007\168\031\130\193\192\191\232.\018\222\005\191\156\207#\180\160\017h\168o\196\199\200\002\216\015\160(\000\012d\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001W{;\215\220\175\213\243\253\127\247\247\015o\246\223\255\231\145\218P\b\180T7\226c\228\001l\007\208\020\000\0062\000\025H\001\003\000\002PL\220\128\029\192\025\000\000\000\138\000\003)\000 @\000J\t\155\144\003\184\003 \000\000\017@\000e \004\b\000\tA1r\000w\000d\000\000\002(\002\162Rw\007\168\031\130\193\192\191\232.\018\222\005\191\156\207TJN\224\245\003\240X8\023\253\005\194[\192\183\243\153\228v\148\002-\021\r\248\152\249\000[\001\244\005\000\001\140\128\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000*\239gz\251\149\250\190\127\175\254\254\225\237\254\219\255\252\242;J\001\022\138\134\252L|\128-\128\250\002\128\000\198@\003)\000 `\000J\t\155\144\003\184\003 \000\000\017@\000e \004\b\000\tA3r\000w\000d\000\000\002(\000\012\164\000\129\000\001(&.@\014\224\012\128\000\000E\000TJN\224\245\003\240X8\023\253\005\194[\192\183\243\153\234\137I\220\030\160~\011\007\002\255\160\184Kx\022\254s=W{;\215\220\175\213\243\253\127\247\247\015o\246\223\255\231\145\218P\b\180T7\226c\228\001l\007\208\020\000\0062\000\025H\001\003\000\002PL\220\128\029\192\025\000\000\000\138\000\003)\000 @\000J\t\155\144\003\184\003 \000\000\017@\000e \004\b\000\tA1r\000w\000d\000\000\002(\002\162Rw\007\168\031\130\193\192\191\232.\018\222\005\191\156\207TJN\224\245\003\240X8\023\253\005\194[\192\183\243\153\234\187\217\222\190\229~\171\159\235\255\191\184{\127\182\255\255}W{;\215\220\175\213s\253\127\247w\015o\162\223\255\231\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004v\148\002-\021\r\248\152\249\000[\001\244\005\000\001\140\128\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002;J\001\022\138\134\252L|\128-\128\250\002\128\000\198@\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\218P\b\180T7\226c\228\001l\007\208\020\000\0062\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000Gi@\"\209P\223\137\143\144\005\176\031@P\000\024\200\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\001\000\000\136\016@\142\210\128E\162\161\191\019\031 \011`>\128\160\0001\144\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\016Gi@\"\209P\223\137\143\144\005\176\031@P\000\024\200\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012\164\000\129\000\001(&.@\014\224\012\000\000\000A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006B\bD\000\160\020\019\028 \003`\006\000\160\0001\128\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000Gi@\"\209P\223\137\143\144\005\176\031@P\004\024\200\000e \004\012\000\tA3r\000w\000d\000\000\002(\000\012\164\000\129\000\001(&n@\014\224\012\128\000\000E\000\001\148\128\016 \000%\004\197\200\001\220\001\144\000\000\b\160\002\000\000\128\000\000\000\000\000\000\000\000\000@\000\000\192\016\000\142\210\128E\162\161\191\019\031 \011`>\128\160\0001\144\000\202@\b\024\000\018\130f\228\000\238\000\200\000\000\004P\000\025H\001\002\000\002PL\220\128\029\192\025\000\000\000\138\000\003)\000 @\000J\t\139\144\003\184\003 \000\000\017@\004\000\000 \000\000\000\000\000\000\000\000\000\128\000\001\128\160\000\128\002\004\007\160\011\000\128@\015\128\002\016@\0006\024\195\003\148\128\016 \128'\004\205\200\001\220\001\144\000\000\b \002\000\000\016\000\000\000\000\000\000\000\000\000@\000\000@@\016\014R\000@\130\000\156\0197 \007p\006@\000\000 \128\001\202@\b\016@\019\130b\228\000\238\000\200\000\000\004\016\000\025H\001\002\000\002PL\\\128\029\192\025\000\000\000\130\000\000\000\000\000\000\000\000\000\016\000\b\000\000\000\000\b\129\004\b\237(\004Z*\027\2411\242\000\182\003\232\n\000\003\025\000\012\164\000\129\128\001(&n@\014\224\012\128\000\000E\000\001\148\128\016 \000%\004\205\200\001\220\001\144\000\000\b\160\0002\144\002\004\000\004\160\152\185\000;\1282\000\000\001\020\000@\000\002\000\000\000\000\000\000\000\000\000\b\000\000\024\n\002\b\000 @z\000\176\b\004\000\248\000!\004\000\003a\140p\025H\001\002\000\002PL\\\128\029\192\025\000\000\000\130\000\000\000\000\000\000\000\000\000\016\000\b\000\000\000\000\b\129\004\b\237(\004Z*\027\2411\242\000\182\003\232\n\000\003\025\000\012\164\000\129\128\001(&n@\014\224\012\128\000\000E\000\001\148\128\016 \000%\004\205\200\001\220\001\144\000\000\b\160\0002\144\002\004\000\004\160\152\185\000;\1282\000\000\001\020\000@\000\002\000\000\000\000\000\000\000\000\000\b\000\000\024\n\002\b\000 @z\000\176\b\004\000\248\000!\004\000\003a\140p\025H\001\002\000\002PL\\\128\029\192\025\000\000\000\130\000\000\000\000\000\000\000\000\000\016\000\b\000\000\000\000\b\129\004\b\237(\004Z*\027\2411\242\000\182\003\232\n\000\003\025\000\012\164\000\129\128\001(&n@\014\224\012\128\000\000E\000\001\148\128\016 \000%\004\205\200\001\220\001\144\000\000\b\160\0002\144\002\004\000\004\160\152\185\000;\1282\000\000\001\020\000@\000\002\000\000\000\000\000\000\000\000\000\b\000\000\024\n\002\b\000 @z\000\176\b\004\000\248\000!\004\000\003a\140p\000\000\000\000\000\000\000\000\128\000@\000\000\128\000D\b Gi@\"\209P\223\137\143\144\005\176\031@P\000\024\200\000e \004\012\000\tA3r\000w\000d\000\000\002(\000\012\164\000\129\000\001(&n@\014\224\012\128\000\000E\000\001\148\128\016 \000%\004\197\200\001\220\001\144\000\000\b\160\002\000\000\016\000\000\000\000\000\000\000\000\000@\000\000\192P\016@\001\002\003\208\005\128@ \007\192\001\b \000\027\012c\145\218P\b\180T7\226c\228\001l\007\208\020\000\0062\000\025H\001\003\000\002PL\220\128\029\192\025\000\000\000\138\000\003)\000 @\000J\t\155\144\003\184\003 \000\000\017@\000e \004\b\000\tA1r\000w\000d\000\000\002(\000\000@\000\000\000\000\000\000\000\000\000\000\000\002\000 \004\000#\180\160\017h\168o\196\199\200\002\216\015\160(\000\012d\0002\144\002\006\000\004\160\153\185\000;\1282\000\000\001\020\000\006R\000@\128\000\148\0197 \007p\006@\000\000\"\128\000\202@\b\016\000\018\130b\228\000\238\000\200\000\000\004P\001\000\000\b\000\000\000\000\000\000\000\000\000 \000\000`(\b \000\129\001\232\002\192 \016\003\224\000\132\016\000\r\1341\192\002\016\000=\000X\004\002\000|\000\016\002\016\0010F\025\029\165\000\139EC~&>@\022\192}\001@\000c \001\148\128\0160\000%\004\205\200\001\220\001\144\000\000\b\160\0002\144\002\004\000\004\160\153\185\000;\1282\000\000\001\020\000\006R\000@\128\000\148\019\023 \007p\006@\000\000\"\128\b\000\000@\000\000\000\000\000\000\000\000\001\000\000\003\001@A\000\004\b\015@\022\001\000\128\031\000\004 \128\000l1\142\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\002\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\002 \007\160\011\000\128@\015\128\002\016@\0006\b\195\016\000\000\000\000\000\000\000\000\000\000\000\002\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\142\210\128E\162\161\191\019\031 \011`>\128\160\0009\144\000\202@\b\024\000\018\130f\228\000\238\000\200\000\000\004P\000\025H\001\002\000\002PL\220\128\029\192\025\000\000\000\138\000\003)\000 @\000J\t\139\144\003\184\003 \000\000\017@\004\000\001\000\000\000\000\000\000\000\000\000\000\128\000\001\000\160\000\128\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\004@\015@\022\001\000\128\031\000\004 \128\000L1\134 \000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\029\165\004\139EC~&>@\022\192}\001@\000c \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0002\144\002\006\000\004\160\153\185\000;\1282\000\000\001\020\000\006R\000@\128\000\148\0197 \007p\006@\000\000\"\128\000\202@\b\016\000\018\130b\228\000\238\000\200\000\000\004P\001\000\000H\000\000\000\000\000\000\000\000\000 \000\000@\b\000 \000\001\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\b\144\030\128,\002\001\000>\000\bA\000\000\152#\012@\000\002\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012\132\000\136\001@(&8@\006\192\012\001@\000c\000@\000\000\000\000\000\000\000\000\000\001$\000\000\021\000\000\000\000\016\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002 \000\000\000\000\000\000\000\000\000\004\000\000\144\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\128\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\001\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\002\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\018@\000\001P\000\000\000\001\000\000\000\000\000\n\001\142\000\000\000\000\000\000\000\000\000\016\000\001\016\000\000\000\000\000\000\000I\000\002\005@H\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000TJN\224\245\003\240X8\023\253%\194[\213\183\243\153\2242\144\002\006\000\004\160\153\185\000;\1282\000\000\001\020\000\006R\000@\128\000\148\0197 \007p\006@\000\000\"\128\000\202@\b\016\000\018\130b\228\000\238\000\200\000\000\004P\005D\164\238\015P?\005\131\129\127\208\\%\188\011\1279\158\168\148\157\193\234\007\224\176p/\250\011\132\183\129o\2313\192\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\004v\148\002-\021\r\248\152\249\000[\001\244\005\000\001\140\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\218P\b\180T7\226c\228\001l\007\208\020\128\0062\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\162Rw\007\168\031\130\193\192\191\232.\018\222\005\191\156\207\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004v\148\002-\021\r\248\152\249\000[\001\244\005\000\001\140\128\006R\000@\192\000\148\0197 \007p\006@\000\000\"\128\000\202@\b\016\000\018\130f\228\000\238\000\200\000\000\004P\000\025H\001\002\000\002PL\\\128\029\192\025\000\000\000\138\000\168\148\157\193\234\007\224\176p/\250\011\132\183\129o\2313\200\237(\004Z*\027\2411\242\000\182\003\232\n\000\003\025\000\012\164\000\129\128\001(&n@\014\224\012\128\000\000E\000\001\148\128\016 \000%\004\205\200\001\220\001\144\000\000\b\160\0002\144\002\004\000\004\160\152\185\000;\1282\000\000\001\020\001Q);\131\212\015\193`\224_\244\023\to\002\223\206g\170%'pz\129\248,\028\011\254\130\225-\224[\249\204\245D\164\238\015P?\005\131\129\127\208\\%\188\011\1279\158Gi@\"\209P\223\137\143\144\005\176\031@P\000\024\200\000e \004\012\000\tA3r\000w\000d\000\000\002(\000\012\164\000\129\000\001(&n@\014\224\012\128\000\000E\000\001\148\128\016 \000%\004\197\200\001\220\001\144\000\000\b\160\n\137I\220\030\160~\011\007\002\255\160\184Kx\022\254s=Q);\131\212\015\193`\224_\244\023\to\002\223\206g\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000I\000\000\005A\000\000\001\029\165\000\139EC~&>@\022\192}\001@\000c \000\000\000\000\000\000\005\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\128\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000d \004@\n\001A1\194\0006\000`\n\000\003\024\002\162Rw\007\168\031\130\193\192\191\233.\018\222\173\191\156\207\001\148\128\0160\000%\004\205\200\001\220\001\144\000\000\b\160\0002\144\002\004\000\004\160\153\185\000;\1282\000\000\001\020\000\006R\000@\128\000\148\019\023 \007p\006@\000\000\"\128*%'pz\129\248,\028\011\254\130\225-\224[\249\204\245D\164\238\015P?\005\131\129\127\208\\%\188\011\1279\158\003)\000 `\000J\t\155\144\003\184\003 \000\000\017@\000e \004\b\000\tA3r\000w\000d\000\000\002(\000\012\164\000\129\000\001(&.@\014\224\012\128\000\000E\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\004\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\003\208\005\128@ \007\192\003\000 \000\019\004a\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005]\236\239_r\191U\207\245\255\223\220=\191\219\127\255\190\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\162Rw\007\168\031\130\193\192\191\233.\018\222\173\191\156\207\001\148\128\0160\000%\004\205\200\001\220\001\144\000\000\b\160\0002\144\002\004\000\004\160\153\185\000;\1282\000\000\001\020\000\006R\000@\128\000\148\019\023 \007p\006@\000\000\"\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000@\000\000\004 \015@\022\001\000\128\031\000\004\000\128\000L\017\134\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000=\000X\004\002\000|\000\016\002\000\0010F\024\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0002\144\002\006\000\004\160\153\185\000;\1282\000\000\001\020\000\006R\000@\128\000\148\0197 \007p\006@\000\000\"\128\000\202@\b\016\000\018\130b\228\000\238\000\200\000\000\004P\000\000\000D\000\000\000\000\000\000\000\000\016\000\000\000@\b\000\000\000\136\129\232\002\192 \016\003\224\002\128\016\000\t\1300\192\000\001\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\025H\001\003\000\002PL\220\128\029\192\025\000\000\000\138\000\003)\000 @\000J\t\155\144\003\184\003 \000\000\017@\000e \004\b\000\tA1r\000w\000d\000\000\002(\000\128\000$\000\000\000\000\000\000\000\000\000\016\000\000 \004\000\016\000\000\128\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\004H\015@\022\001\000\128\031\000\004 \128\000L\017\134 \000\001\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012\164\000\129\128\001(&n@\014\224\012\128\000\000E\000\001\148\128\016 \000%\004\205\200\001\220\001\144\000\000\b\160\0002\144\002\004\000\004\160\152\185\000;\1282\000\000\001\020\000@\000\016\000\000\000\000\000\000\000\000\000\b\000\000\016\n\000\b\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000D\000\244\001`\016\b\001\240\000B\b\000\004\195\024b\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\202@\b\024\000\018\130f\228\000\238\000\200\000\000\004P\000\025H\001\002\000\002PL\220\128\029\192\025\000\000\000\138\000\003)\000 @\000J\t\139\144\003\184\003 \000\000\017@\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\001H \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\016\016\000\002\005\004\000\000\000\000\016\000\000\000\000\000\b\000\000@\000\000\016\000\001\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\b\b\000\001\002\130\000\000\000\000\b\000\000\000\000\000\004\000\000 \000\000\b\000\000\128\000\000\000\000\000\000\016\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \004\004\000\000\129A\000\000\000\000\004\000\000\000\000\000\002\000\000\016\000\000\004\000\000@\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b@\030\128,\002\001\000>\000\b\001\000\000\188#\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\b\b\000\001\002\130\000\000\000\000\b\000\000\000\000\000\004\000\000 \000\000\b\000\000\128\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \004\004\000\000\129A\000\000\000\000\004\000\000\000\000\000\002\000\000\016\000\000\004\000\000@\000\000\000\000\000\000\b\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\002\002\000\000@\160\128\000\000\000\002\000\000\000\000\000\001\000\000\b\000\000\002\000\000 \000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\128\000@\000\000\000\000\000\000\000Gi@\"\209P\223\137\143\144\005\176\031@P\000\024\200\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012\b\000\128\000\000 @\000\000\000\128\000\000\000\000\000\001\129\000\016\000\000\004\004\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\128\001\000\000\128\000\000\000\000\000\000\000\142\210\128E\162\161\191\019\031 \011`>\128\160\0001\144\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\024\000\000\001\000\000@\000\128\000\000\000\000\000\000\000\000\000\003\000\000\000\000\000\b\000\016\000\000\000\000\000\000\000\000\000\000`\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\004\000\000\016\004\000\024\016\001\000\000\000@@\000\000\000\001\000\000\000\000\000\000\b\128\017@\002\004\b\144p \026\b\000\166\000\000 \001\000 \004\004\000\000\129A\000\000\000\000\004\000\000\000\000\000\002\000\000\000\000\000\004\000\000@\000\000\000\000@\000\000\000\192\001\129\000\016\000\000\004\004\000\000\000\000\016\000\000\000\000\000\000\136\001\020\000 @\137\007\002\001\160\128\n`\000\002\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\192\128\b\000\000\002\002\000\000\000\000\b\000\000\000\000\000\000D\000\138\000\016 D\131\129\000\208@\0050\000\001\000\b\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\b\237(\004Z*\027\2411\242\000\182\003\232\n\000\003\025\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\b\000\000 \b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\192\128\b\000\000\002\002\000\000\000\000\b\000\000\000\000\000\000D\000\138\000\016 D\131\129\000\208@\0050\000\001\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000$\000\000\004\000\001\000\003\000\000\000\000 \000\000\000\000\000\004\128\000\000\000\000 \000`\000\000\000\004\000\000\000\000\000\000\144\000\000\000\000\004\000\004\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\002\000\001\000\000\000\000\000\b\000\000\012\000\000\192\000\000(\184(\000\000\161\000\000\000\000\000\000\000\000\000\000\000\004\001\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\007\000\0008\005\000\014.\b\000\000(\000\000\000\000\000\000\000\000\000\002\000\000\001\000\000\000\000\000\000\000\000@\000\000\000\028\000\000\224\020\0008\184 \000\000\160\000\000\000\000\000\000\000\000\004@\000\000\000\000\b\000\000\000@\000\000\000\000\018\000\000\000\136\000\000\000\000\001\000\000\000\000\000\000\000\000\002\000\000\000\017\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\002 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000@\016\000\128\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\016\000\000\000\000\002\000\000\000\016\000\000\000\000\004\128\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\128 \000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\024\000\001\128\000\000Qp@\000\001@\000\000\000\000\000\000\t\128\145@\002\005\002\144p \026\b\000\166\000 !!\001\016\018(\000@\160\018\014\004\003A\000\020\192\004\004 \000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\128\000\024\000\000\005\023\004\000\000\020 \000\000\000\000\000\0000\000\003\000\000\000\162\224\128\000\002\128\000\000\000\000\000\000\019\001\"\128\004\n\005 \224@4\016\001L\000@BB\002 $P\000\129@$\028\b\006\130\000)\128\b\b@@L\004\138\000\016(\020\131\129\000\208@\0050\001\001\t\b\b\128\145@\002\005\000\144p \026\b\000\166\000 !\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000&\002E\000\b\016\nA\192\128h \002\152\000\128\132\132\004@H\160\001\002\128H8\016\r\004\000S\000\016\016\128\1280\000\003\000\000\000\162\224\160\000\002\132\000\000\000\000\000\000\014\000\000p\n\b\028\\\016\000\000P\000\000\000\000\000\000\000@\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\b\004 \000\000\b\016\000\128\000\000@\000\000\000B\000\160\003\000\000\000\000\000\n\000\000@\000\000\000\000\000\000\000\000\016\000\000\128\000\000@\000\000\000\000\000\000\000\000\001\000\000\016&\002w@\b\020\170A\192\176h\"\002\216\b\168\132\212\003\128\000\028\002\128\007\023\004\000\000\020\000\000\000\000\000\000\000\016\b@\000\000\016 \001\000\000\000\128\000\000\000\132\001@\006\000\000\000\000\000\020\000\000\128\000\000\000\000\000\000\000\000 \000\001\000\000\000\128\000\000\000\000\000\000\000\000\002\000\000 \b\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\001\000\132\000\000\001\002\000\016\000\000\b\000\000\000\b@\020\000`\000\000\000\000\001@\000\b\000\000\000\000\000\000\000\000\002\000\000\016\000\000\b\000\000\000\000\000\000\000\000\000 \000\002\000\000\002\000\000\000\000\000\b\000\000\000\000\000\000\004\000\000\000\000\000\001\000\000\000\128\000\000\000\000\000\000\000 \000\000\000\006\000\000`\000\000\020\\\020\000\000P\128\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\024\000\001\128\000\000Qp@\000\001@\000\000\000\000\000\000\t\128\017@\002\004\002\144p \026\b\000\166\000 !\001\0010\018(\000@\160R\014\004\003A\000\020\192\004\004$ \000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\001\128\000\024\000\000\005\023\004\000\000\020\000\000\000\000\000\000\000\152\001\020\000 @)\007\002\001\160\128\n`\002\002\016\016\019\001\"\128\004\n\005 \224@4\016\001L\000@BB\000\000\000\000\000\000\000\000\004\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000Gi@\"\209P\223\137\143\144\005\176\031@P\000\024\200\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\148\129\016 \128'\004\205\200\001\220\001\128\000\000\b \000r\144\"\004\016\004\224\152\185\000;\1280\000\000\001\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\202@\b\016@\019\130b\228\000\238\000\192\000\000\004\016\000D\000\138\000\016 \004\131\001\000\208@\0050\000\001\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000e \004\012\000\tA3r\000w\000d\000\000\002(\000\012\164\000\129\000\001(&n@\014\224\012\128\000\000E\000\001\148\128\016 \000%\004\197\200\001\220\001\144\000\000\b\160\n\137I\220\030\160~\011\007\002\255\160\184Kx\022\254s=Q);\131\212\015\193`\224_\244\023\to\002\223\206g\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\025H\001\003\000\002PL\220\128\029\192\025\000\000\000\138\000\003)\000 @\000J\t\155\144\003\184\003 \000\000\017@\000e \004\b\000\tA1r\000w\000d\000\000\002(\000\128\000 \000\000\000\000\000\000\000\000\000\016\000\0000\004\000\016\000\000\000\000\000\000\000\000\000\000\000\002\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\136\001\232\002\192 \016\003\224\000\132\016\000\r\1300\196\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0000 \002\002\000\000\128\129\000\000\000\002\000\000\000\000\000\000\006\004\000@\000\000\016\016 \000\000\000@\000\000\000\000\000\000\192\128\b\000\000\002\002\000\000\000\000\b\000\000\000\000\000\000\000\000 \000\000\000@\000\128\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \004\004\000\000\129A\000\000\000\000\004\000\000\000\000\000\002\000\000\016\000\000\004\000\000@\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000$\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\148\128\016 \000%\004\197\200\001\220\001\144\000\000\b\160\n\137I\220\030\160~\011\007\002\255\160\184Kx\022\254s<\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002;J\001\022\138\134\252L|\128-\128\250\002\128\000\198@\003)\000 `\000J\t\155\144\003\184\003 \000\000\017@\000e \004\b\000\tA3r\000w\000d\000\000\002(\000\012\164\000\129\000\001(&.@\014\224\012\128\000\000E\000TJN\224\245\003\240X8\023\253\005\194[\192\183\243\153\234\137I\220\030\160~\011\007\002\255\160\184Kx\022\254s<\006\004\000@@\000\016\016 \000\000\000@\000\000\000\001\000\000\192\128\b\b\000\002\002\004\000\000\000\b\000\000\000\000\000\000\024\016\001\000\000\000@@\128\000\000\001\000\000\000\000\000\000\003\002\000 \000\000\b\b\000\000\000\000 \000\000\000\000\000\001\016\002(\000@\129\018\014\004\002A\000\020\192\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\129\000\016\000\000\004\004\b\000\000\000\016\000\000\000\000\000\0000 \002\000\000\000\128\128\000\000\000\002\000\000\000\000\000\000\017\000\"\128\004\b\017 \224@$\016\001L\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\028\000\016\001\000\000@\000\128\000\000\000\000\000\000\000\000\000\001\000\000\000 \000\002\000\016\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000@\002\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\004@\b\160\001\002\000H0\016\t\004\000[\000\000\016\000\000\016\002\002\000\000@\160\128\000\000\000\002\000\000\000\000\000\001\017\000\"\128\004\n\001 \224@$\016\001L\000\000@ \002 \004P\000\129\000$\024\b\004\130\000)\128\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\000\002\000\000\000\b\000\016\000\000\000\000\000\000\000\000\000\000`\000@\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\012\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\b\000\000 \b\000\136\001\020\000 @\t\006\002\001 \128\n`\000\002\000\016\017\000\"\128\004\b\001 \128@$\016\001L\000\000@\002\000\192\000\000\000\000\002\000\004\000\000\000\000\000\000\000\000\000\000\024\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\016\000\000@\016\001\016\002(\000@\128\018\012\004\002A\000\020\192\000\004\000 \"\000E\000\b\016\002A\000\128H \002\152\000\000\128\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000 \000\000\128 \002 \004P\000\129\000$\024\b\004\130\000)\128\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\249\246\"\004\n\2526\128\001\012\028\000=\163\129`(\r\t\253*-Zj\155\2439\246\002\182\003\252\n\000\015\025\000\012\164\000\129\000\001(&.@\014\224\012\128\000\000A\000\016\000\000\128\000\000\000\000\b\000\000\000\000\000\000\004@\130\004v\148\002-\021\r\248\152\249\000[\001\244\005\000\001\140\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000>}\136\129\002\191\r\160\000C\007\000\015h\224X\n\003B\127J\139V\154\166\252\206}\128\173\128\255\002\128\003\198@\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\012\000\000\000\000\000(\000\001\000\000\000\000\000\000\000\000\000D@\b\160\001\003\000H \016\t\004\000S\000\000\016\000@0\"\002\002\000@\160\129\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\002\128\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000P\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\028\000\000\224\020\0008\184 \000\000\160\000\000\000\000\000\000\000\000\000\b\000\000\004\000\000\000\000\000\000\000\001\000\000\000\000p\000\003\128P\000\226\224\128\000\002\128\000\000\000\000\000\000\017\000\"\128\004\bA \224X$\016\001l\000@@@\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\016\"(\000@\128\018\012\004\002A\000\020\192\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004@\b\160\001\002\000H0\016\t\004\000S\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\000\"\128\004\bA \224X$\016\001l\000@@@\000H\000\000\b\000\002\000\006\000\000\000\000@\000\000\000\000\000\t\000\000\000\000\000@\000\192\000\000\000\b\000\000\000\000\000\001 \000\000\000\000\b\000\b\000\000\000\001\000\000\000\000\000\001\016\002(\000P\128\018\014\004\002A\000\022\192\000\012\000\000\004\128\000\000\000\000 \000 \000\000\000\004\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\136\001\020\000 @\t\007\002\001 \128\n` \002\016\000\002\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000D\000\138\000\016 \004\131\129\000\144@\0050\000\001\000\000\b\128\017@\002\004\000\144` \018\b\000\166\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\"\000E\000\b\016\002A\192\128H \002\152\000\000\128\000\004@\b\160\001\002\000H0\016\t\004\000S\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\031\000\"\240\014\b\028|\144@ P\001@\000\000@@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\016\128\000\000 \000\002\000\024\000\000\000\000\000\000\000\000\000\002\000\000\000\004\000\000@\003\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\b\000`\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\001\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\016\000\000\000\000\000\000\000\000\000\000\128\000\004\144\000\016\000\000\000 \000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000I\000\001\000\000\000\002\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000@\000\b\000\016\000\162\002\000\000\000\000\000\000\000\000\000\000@\000\002\000\000\001@\130\128 \000\000\000\016\001\000\000\000\b\000\000@\000\000(\016@\004\000\000\000\002\000 \000\000\000\224\000\007\000\160\001\197\193\000\000\005\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\004\000\000\002\001\004\000@\000\000\000 \002\000\000\000 \000\000\000\000\016\004\000 \000\000\000\000\000\000\000\000\000\004\000\000\000\000\002\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\014\000\000p\n\000\028\\\016\000\000P\000\000\000\000\000\000\002\000\000\016\000\000\b\004\028\001\000\000\000\000\128\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\004\000\000\002\000\016\000\000\000\000\000\000\000\000\000\002\000\000\000\128\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\007\000\0008\005\000\014.\b\000\000(\000\000\000\000\000\000\001\000\000\b\000\000\004\002\012\000\128\000\000\000@\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\016\000 \001D\012\000\000\000\000\000\000\000\000\000\000\016\000\002\000\004\000(\128\128\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000 \000\b\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000@\000\000\000\004\000\000\128\001\000\n \000\000\000\000\000\000\000\000\000\003\128\000\028\002\128\007\023\004\000\000\020\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\002\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0008\000\001\192(\000qp@\000\001@\000\000\000\000\000\000\000\000\001\000\000\000\000\000\016\000\000\000\000\000\000\b\000\000\000\000\000 \000\000\000\000\002\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\136\001T\000 B\t\007\002A \128\011`\002\002\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\016\000\000\000\001\000\000 \000@\002\136\b\000\000\000\000\000\000\000\000\000\001\016\002\168\000@\132\018\014\004\130A\000\022\192\004\004\000 \000\001\000\000\000\128A\192\016\000\000\000\b\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000p\000\003\128P\000\226\225\128\000\002\128\000\000\000\000\000\000\014\000\000p\n\000\028\\\016\000\000P\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\004\000\000\000\000\0008\000\001\192(\000qp@\000\001@\000\000\000\000\000\000\b\000\000@\000\000 \016p\012\000\000\000\002\000 \000\000\001\000\000\b\000\000\004\002\012\000\128\000\000\000@\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\128\000\000@ \192\b\000\000\000\004\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000@\000\000 \016@\004\000\000\000\002\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\"\000E\000\b\016\002A\192\128H \002\152\000\000\128\004\004@\b\160\001\002\000H \016\t\004\000S\000\000\016\000\129\000\000\000\000\000\000 \001\128\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\004\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000 \000\004\000\b\000Q\001\000\000\000\000\000\000\000\000\000\000\"\000E\000\b\016\002A\192\128H \002\152\000\000\128\004\004@\b\160\001\002\000H \016\t\004\000S\000\000\016\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\128\006\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\016\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\012\164\000\161\016\001(&*@\014\224\012@\000\001A\000\003\148\194\017\244\131g\148\197\201\241\252A\152\016\000\201y`\016\000\002\000\004\000\168\128\128\000\000\000\128\000\000\000\000\000\016\000\000\128\000\000P \160\024\000\000\000\004\000@\000\000\002\000\000\016\000\000\n\004\016\003\000\000\000\000\128\b\000\000\000@\000\002\000\000\001\000\130\000`\000\000\000\016\001\000\000\000\016\000\000\000\000\b\002\000\016\000\000\000\000\000\000\000\000\128\000\000\000\000\000\001\000@\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\004\128\000\017\218P\b\180T7\226c\228\001l\007\208\020\000\0062\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\b\237(\004Z*\027\2411\242\000\182\003\232\n\000\003\025\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000 \000\000\016\b0\006\000\000\000\001\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\016\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000p\000\003\128P\000\226\224\128\000\002\128\000\000\000\000\000\000\016\000\000\128\000\000@ \224\024\000\000\000\004\000@\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\018\000\000Gi@\"\209P\223\137\143\144\005\176\031@P\000\024\200\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000#\180\160\017h\168o\196\199\200\002\216\015\160(\000\012d\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\b\000\000\004\000 \000\000\000\000\000\000\000\001\000\000\000\000\001\000\000\000\128\004\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\012\164\000\161\016\001(&*@\014\224\012@\000\001A\000\003\192\000\028\002\128\007\023\004\000\000\020\000\000\000\000\000\000\000\000\000\000\000\000\000\160\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\001\192\000\014\001@\003\139\130\000\000\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\128\000\000\000\000Gi@\"\209P\223\137\143\144\005\176\031@P\000\024\200\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000#\180\160\017h\168o\196\199\200\002\216\015\160(\000\012d\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\016\000\000\b\004\024\003\000\000\000\000\128\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\004\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\0008\000\001\192(\000qp@\000\001@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\012\164\000\161\016\001(&*@\014\224\012@\000\001A\000\003\192\000\028\002\128\007\023\004\000\000\020\000\000\000\000\000\000\000\000\000\000\000\000\000\160\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\001\192\000\014\001@\003\139\130\000\000\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\128\000\000\000\000Gi@\"\209P\223\137\143\144\005\176\031@P\000\024\200\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000#\180\160\017h\168o\196\199\200\002\216\015\160(\000\012d\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\218P\b\180T7\226g\228\001l\007\208\020\000\0062\002;J\001\022\138\134\252L|\128-\128\250\002\128\000\198@\b\000\000@\000\000 \016`\012\000\000\000\002\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\128\001\000* `\000\000\000 \000\000\000\002\000\000\128\000\016\000 \005D\012\000\000\000\004\000\000\000\000\000\000\016\000\002\000\004\000\168\128\128\000\000\000\128\000\000\000\000\000\002\000\000@\000\128\021\016\016\000\000\000\016\000\000\000\000\000\001\202@\136\024\192\019\130f\228\000\238\000\192\000\000\004\016\007\207\177\016 W\225\180\000\b`\224\001\237\028\011\001@h\007)\002 A\000N\t\155\144\003\184\003\000\000\000\016@\000\229 D\b \t\1931r\000w\000`\000\000\002\b\000\028\164\000\129\004\0018&.@\014\224\012\000\000\000A\000\000\000\000\000\000\000\000\000\016\000\004\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\001\000\000@\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\002\000\000\000\000 \000\004\000\b\001Q\001\000\000\000\001\000\000\000\000\000\000\028\000\000\224\020\0008\184 \000\000\160\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\016\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\202@\n\017\000\018\130f\164\000\238\000\192\000\000\004\016\000\025H\001B \002PLT\128\029\192\024\000\000\000\130\000\003)\000(D\001J\t\138\144\003\184\003\000\000\000\016@\000 \000\004\000\b\001Q\001\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\004\000\128\000\016\000 \005D\004\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\023R*\212\012\168U3\253x'p\007L\160@\241\138\002\234EZ\129\149\n\166\127\175\004\238\000\233\148\b\0301@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\128\021@\002\004 \144p,\018\b\000\166\000 `\005\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004@\n\160\001\002\016H8\022\t\004\000S\000\0160\002\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002 \005P\000\129\b$\028\011\004\130\000)\128\b\024\001@\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\002\000\000\000\000 \000\004\000\b\001Q\001\000\000\000\001\000\000\000\000\000\000\"\000U\000\b\016\130A\192\176H \002\152\000\129\128\020\003\148\129\016 \128'\004\197\200\001\220\001\128\000\000\b \000r\144\002\004\016\004\224\152\185\000;\1280\000\000\001\004\000\000\000\000\000\000\000\000\000@\000\016\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\128\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000`\000\007\000\136\001U\193\000\000\005\000\000\000\000\000\000\000&\002U\000\b\020\bA\192\128H \002\216\000\001\128\004\001\128\000\024\000\000\005\023\004\000\000\020\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\006\000\000p\b\128\021\\\016\000\000P\000\000\000\000\000\000\001\192\000\014\001@\003\139\130\000\000\n\000\000\000\000\000P\000\000\000\b\000\000\000\000\000\128\000\000\000\000\000\000@\b\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000`\000\007\000\136\001U\193\000\000\005\000\000\000\000\000\000\000\012\000\000\192\000\000(\184 \000\000\160\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\0000\000\003\128D\000\170\224\128\000\002\128\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\004\000\000\000\000@\000\000\000\000\002\129\130\000\000\b\000\000\000\000\000\000\000L\004\170\000\016(\016\131\129\000\144@\005\176\000\001\000\b\t\128\149@\002\005\002\016p \016\b\000\182\000\000 \001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\"\000U\000\b\016\000A\192\128@\000\002\216\000\000\128\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\002\000\000\001\000\131\128`\000\000\000\016\001\000\000 \000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\001\000\000\000\128A\1280\000\000\000\b\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\002\000\004\000\168\128\128\000\000\000\128\000\000\000\000\000\016\000\000\128\000\000@ \224\024\000\000\000\004\000@\000\b\002\000\000\016\000\000\b\004\024\003\000\000\000\000\128\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007\000\0008\005\000\014.\024\000\000(\000\000\000\000\000\000\000\224\000\007\000\160\001\197\193\000\000\005\000\000\000\000\000\000\000 \000\001\000\000\000\128A\1280\000\000\000\b\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\016\000\000\b\004\024\003\000\000\000\000\128\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\b\000\000\004\002\b\001\128\000\000\000@\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004@\b\160\001\002\000H8\016\t\004\000S\000\000\016\000\1280\000\003\128D\000\170\224\128\000\002\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000@\000\b\000\016\002\162\002\000\000\000\002\000\000\000\000\000\000D\000\138\000\016 \004\131\129\000\144@\0050\000\001\000\b\003)\000(D\000J\t\138\144\003\184\003\016\000\000P@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\"\000E\000\b\016\002A\128\128H \002\152\000\000\128\004\004@\b\160\001\002\000H \016\t\004\000S\000\000\016\000\129\000\000\000\000\000\000 \001\128\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\004\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\003)\000(D\000J\t\138\144\003\184\003\016\000\000P@\001\016\002(\000@\128\018\012\004\002A\000\020\192\000\004\000 \"\000E\000\b\016\002A\000\128H \002\152\000\000\128\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002 \004P\000\129\000$\016\b\004\000\000)\128\000\b\000\0009H\017\003\b\002pL\220\128\029\192\024\000\000\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002 \004P\000\129\000$\016\b\004\130\000)\128\000\b\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\128\017@\002\004\000\144` \018\b\000\166\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012\b\000\128\128\000 @\000\000\000\128\000\000\000\000\000\001\129\000\016\000\000\004\004\b\000\000\000\016\000\000\000\000\000\0000 \002\000\000\000\128\128\000\000\000\002\000\000\000\000\000\000\017\000\"\128\004\b\017 \224@$\016\001L\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000D\000\138\000\016 \004\130\001\000\144@\0050\000\001\000\b\002\000\000\018@\000J\000\016\000\128\000\000\000\000\000\000\128\000@\000\002H\000\t@\000\000\016\000\000\000\000\000\000\016\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\004@\b\160\001\002\000H0\016\t\004\000[\000\0160\000\128\136\001\020\000 @\t\006\002\001 \128\011`\002\002\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002 \004P\000\129\000$\024\b\004\130\000)\128\b\b\000@D\000\138\000\016 \004\130\001\000\144@\0050\000\001\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002 \004P\000\129\000$\024\b\004\000\000)\128\000\b\000\000D\000\138\000\016 \004\130\001\000\128\000\0050\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004@\b\160\001\002\000H \016\r\004\000S\000\000\016\000\128\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\128\017@\002\004\000\144` \016\000\000\166\000\000 \000\001\016\002(\000@\128\018\b\004\002\000\000\020\192\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001 \000\004\000\000\b\000\b\000\000\000\001\000\000\000\001\000\000$\000\000\000\000\001\000\001\000\000\000\000 \000\000\000 \000\004\128\000\000\000\000 \000 \000\000\000\004\000\000\000\000\000\004@\b\160\001B\000H8\016\t\004\000[\000\0000\128\000\018\000\000\000\000\000\128\000\128\000\000\000\016\000\000\000\000\000\017\000\"\128\004\b\001 \224@$\016\001L\000\000B\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000D\000\138\000\016 \004\131\129\000\144@\0050\001\001\b\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\016\002(\000@\128\018\012\004\002A\000\020\192\000\004 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\016\002(\000P\128\018\014\004\002A\000\022\192\000\012 \000\004\128\000\000\000\000 \000 \000\000\000\004\000\000\000\000\000\004@\b\160\001\002\000H8\016\t\004\000S\000\000\016\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\000\"\128\004\b\001 \224@$\016\001L\000@B\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\b\128\017A\002\004\000\144` \018\b\000\182\000 `\001\001\016\002(\000@\128\018\012\004\002A\000\022\192\004\004\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004@\b\160\001\002\000H0\016\t\004\000S\000\016\016\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000H\000\001\000\000\002\000\002\000\000\000\000@\000\000\000@\000\t\000\000\000\000\000@\000@\000\000\000\b\000\000\000\b\000\b\128\017@\002\004\000\144` \018\b\000\166\000\000!\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\136\001T\000 P\137\007\002\001 \128\011`\000\"\003\017\000\000\b\000\000\002\000\000 \000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\025\b\001\002\000\002PLP\128\029\192\024\000\000\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\0006\000\000\004\000\000@\000 \000\000P\0003\020P\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\0002\144\002\004\000\004\160\152\185\000;\1282\000@\001\004\000\000\000\000\000\000\000\020\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\007\000\0008\005\000\014.\b\000\000(\000\000\000\000\000\000\000\000\000\128\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0002\016\002\004\000\004\160\152\161\000;\1280\000\000\001\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000l\000\000\b\000\000\128\000@\000\000\160\000f(\160\000\000\004\000\000\000\000\000\016\000\000\000\000\000\000\b\193\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\028\000\000\224\020\0008\184 \000\000\160\000\000\000\000\000\000\000\000\002\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\128\000\000@ \128\024\000\000\000\004\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\168\148\157\193\234\007\224\176p/\250K\132\183\171o\2313\192d \004@\n\001A1\194\0006\000`\n\000\003\024\002\162Rw\007\168\031\130\193\192\191\233.\018\222\173\191\156\207\001\148\128\0160\000%\004\205\200\001\220\001\144\000\000\b\160\0002\144\002\004\000\004\160\153\185\000;\1282\000\000\001\020\000\006R\000@\128\000\148\019\023 \007p\006@\000\000\"\128*%'pz\129\248,\028\011\254\130\225-\224[\249\204\245D\164\238\015P?\005\131\129\127\208\\%\188\011\1279\158\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\b\237(\004Z*\027\2411\242\000\182\003\232\n\000\003\025\000\000\000\000\000\000\000(\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000$\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003!\000\"\000P\n\t\142\016\001\176\003\000P\000\024\192\021\018\147\184=@\252\022\014\005\255Ip\150\245m\252\230x\012\164\000\129\128\001(&n@\014\224\012\128\000\000E\000\001\148\128\016 \000%\004\205\200\001\220\001\144\000\000\b\160\0002\144\002\004\000\004\160\152\185\000;\1282\000\000\001\020\001Q);\131\212\015\193`\224_\244\023\to\002\223\206g\170%'pz\129\248,\028\011\254\130\225-\224[\249\204\244\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003)\000 @\000J\t\139\144\003\184\003 \000\000\017@\021\018\147\184=@\252\022\014\005\255Ap\150\240-\252\230x\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\016\000\000\000\004\000\000\000\004\017\000\000\000\000\128\000\001\192\000\014\001@\003\139\130\000\000\n\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\128\000\000\004\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000`\000\006\000\000\001E\195\000\000\005\016\000\000\128\000\000\000\012\000\000\192\000\000(\184 \000\000\162\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\016\000\000\000\004\000\000\000\000\017\000\000\000\000\000\000\000\192\000\012\000\000\002\139\130\000\000\n \000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\004\000\000\000\000\000\000\000\001\000\000\000\000p\000\003\128P\000\226\224\128\000\002\128\000\000\000\000\000\000\000\000\b\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\004\0008\000\001\192(\000qp@\000\001@\000\000\000\000\000\000\136\128\029\192\002\007 \144p,\018\b\128\182\000+!5\145\016\003\184\000@\228\018\014\005\130A\016\022\192\005d&\176\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\128\000\024\000\000\005\023\004\000\000\020\000\000\000\000\000\000\b\136\001\220\000 r\t\007\002\193 \136\011`\002\178\019Y\017\000;\128\004\014A \224X$\017\001l\000VBk\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\0008\000\001\192(\000qp@\000\001@\000\000\000\000\000\000\136\128\029\192\002\007 \144p,\018\b\128\182\000+!5\145\016\003\184\000@\228\018\014\005\130A\016\022\192\005d&\176\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\128\000\024\000\000\005\023\004\000\000\020\000\000\000\000\000\000\b\136\001\220\000 r\t\007\002\193 \136\011`\002\178\019Y\017\000;\128\004\014A \224X$\017\001l\000VBk\001\192\000N\001@\003\139\130\000\000\n\000\000\000\000\000P\000\000\000\000\000\000@\016\000\000\000\000\002\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \b\000\000\000\000\001\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002h\004P\000\129\002$\026\b\004\130\000i\128\b\b\000@D\000\138\000\020 \004\131\129\000\144@\0050\001\003\b\b\b\128\017@\002\004\000\144` \018\b\000\166\000 !\001\000$\000\000\000\000\001\000\001\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\000\"\128\004\b\001 \224@$\016\001L\000@@\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000D\000\138\000\020 \004\131\129\000\144@\0050\001\003\b\b\000\000\000\000\000\b\002\000\000\000\000\000@\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\001\000\000\000\000\000 \000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\128\017@\002\004\000\144p \018\b\000\182\000 \001\000$\000\000\128\000\001\000\001@\000\002\000 \000\128\000 \000\004\128\000\000\000\000 \000(\000\000@\004\000\016\000\004\000\000\000\000\000\000\004\001\000\000\000\000\000 \000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\128\000\000\000\000\016\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\001\000\000\000\000\000 \000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\128\000\000\000\000\016\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000r\000\003\192P\000\226\224\160\000\003\128\016\000@\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002 \004P\000\129\000\004\024\b\004\000\000)\128\b\b\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000$\000\000\128\000\001\000\001\000\000\000\000 \000\000\000 \000\004\128\000\000\000\000 \000 \000\000\000\004\000\000\000\004\000\004@\b\160\001\002\000\b0\016\b\000\000S\000\000\016\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\001\016\002( @\128\002\012\004\002\000\000\022\192\004,\000 \"\000E\000\b\016\000A\128\128@\000\002\216\000\132\128\004\003\144\000\030\002\128\007\023\005\000\000\028\000\128\002\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\000\"\128\004\b\000 \192@ \000\001L\000@@\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001 \000\004\000\000\b\000\b\000\000\000\001\000\000\000\001\000\000$\000\000\000\000\001\000\001\000\000\000\000 \000\000\000 \000\"\000E\000\b\016\000A\128\128@\000\002\152\000\000\132\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\136\001\020\000 @\001\004\002\001\000\000\n`\000\002\000\000\002\000\000\000@\000\000\000 \000\000\000\000\000\000\000\001\000\000@\000\000\b\000\000\000\004\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\016\002(\000@\129\002\012\004\002\000\000\020\192@\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\000\"\128\004\b\016 \192@ \000\001L\004\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\028\000\016\001\000\000@\000\128\000\000\000\000\000\000\000\000\000\001\000\000\000 \000\002\000\016\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000@\002\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\004@\b\160\001\002\000\b0\016\b\000\000[\000\000\144\000\000\016\002\002\000\000@\160\128\000\000\000\002\000\000\000\000\000\001\017\000\"\128\004\n\000 \224@ \000\001L\000\000@ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\024\000\016\000\000\000@\000\128\000\000\000\000\000\000\000\000\000\003\000\002\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\002\000\000(\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004@\b\160\001\002\004\b0\016\b\000\000S\001\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\b\001\001\000\000 P@\000\000\000\001\000\000\000\000\000\000\136\128\017@\002\005\000\016p \016\000\000\166\000\000 1\001\016\002(\000@\128\002\012\004\002\000\000\020\192\000\004\000 \"\000E\000\b\016\000A\000\128@\000\002\152\000\000\128\004\001\128\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\0000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000@\b\b\000\001\002\130\000\000\000\000\b\000\000\000\000\000\004D\000\138\000\016(\000\131\129\000\128\000\0050\000\001\001\136\b\128\017@\002\004\000\016` \016\000\000\166\000\000 \001\001\016\002(\000@\128\002\b\004\002\000\000\020\192\000\004\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000@\000\001\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\136\001\020\000 @\001\006\002\001\000\000\n` \002\001\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000D\000\138\000\016 \000\131\001\000\128\000\0050\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \004\004\000\000\129A\000\000\000\000\004\000\000\000\000\000\002\"\000E\000\b\020\000A\192\128@\000\002\152\000\000\128\192\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\136\001\020\000 @\001\006\002\001\000\000\n`\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\016\000\000\b\001\001\000\000 P@\000\000\000\001\000\000\000\000\000\000\136\128\017@\002\005\000\016p \016\000\000\166\000\000 0\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000H\000\000\b\000\002\000\006\000\000\000\000@\000\000\000\000\000\t\000\000\000\000\000@\000\192\000\000\000\b\000\000\000\000\000\001 \000\000\000\000\b\000\b\000\000\000\001\000\000\000\000\000\001\016\002(\000P\128\002\014\004\002\000\000\020\192\000\012\000\000B\000\000\000\128\000\b\000`\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\001\000\012\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000 \000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\003\000\0008\004@\n\174\b\000\000(\000\000\000\000\000\000\001\016\002(\000@\128\002\012\004\002\000\000\020\192\000\004\000 \"\000E\000\b\016\000A\000\128@\000\002\152\000\000\128\004\b\000\000\000\000\000\001\000\012\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000 \000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\003\000\0008\004@\n\174\b\000\000(\000\000\000\000\000\000\001\016\002(\000@\128\002\012\004\002\000\000\020\192\000\004\000 \"\000E\000\b\016\000A\000\128@\000\002\152\000\000\128\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002 \004P\000\129\000\004\016\b\004\000\000)\128\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000D\000\138\000\016 \000\131\001\000\128\000\0050\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \004\004\004\000\129A\002\000\000\000\004\000\000\000\000\000\000\004\000\128\128\000\016( @\000\000\000\128\000\000\000\000\000\000\128\016\016\000\002\005\004\000\000\000\000\016\000\000\000\000\000\b\136\001\020\000 P\001\007\002\001\000\000\n`\000\002\003\000\017\000\"\128\004\b\000 \128@ \000\001L\000\000@@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000D\000\138\000\016 \000\130\001\000\128\000\0050\000\001\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\016\002(\000@\128\002\b\004\002\000\000\020\192\000\004\000 \b\000\000I\000\001(\000@\002\000\000\000\000\000\000\002\000\001\000\000\t \000%\000\000\000@\000\000\000\000\000\000@\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\0009\000\001\224(\000qpP\000\001\192\b\000 \000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\016\002(\000@\128\002\012\004\002\000\000\020\192\004\004\000 \"\000E\000\b\016\000A\000\128@\000\002\152\000\000\128\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\128\000\000 \000\002\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\004\000\000\000\000\000\000\000\001\000\000\000\000p\000\003\128P\000\226\224\128\000\002\128\000\000\000\000\000\000\000\000\b\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\004\0008\000\001\192(\000qp@\000\001@\000\000\000\000\000\000\136\128\029\192\002\007 \144p,\018\b\128\182\000+!5\145\016\003\184\000@\228\018\014\005\130A\016\022\192\005d&\176\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\128\000\024\000\000\005\023\004\000\000\020\000\000\000\000\000\000\b\136\001\220\000 r\t\007\002\193 \136\011`\002\178\019Y\017\000;\128\004\014A \224X$\017\001l\000VBk\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\0008\000\001\192(\000qp@\000\001@\000\000\000\000\000\000\136\128\029\192\002\007 \144p,\018\b\128\182\000+!5\145\016\003\184\000@\228\018\014\005\130A\016\022\192\005d&\176\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\128\000\024\000\000\005\023\004\000\000\020\000\000\000\000\000\000\b\136\001\220\000 r\t\007\002\193 \136\011`\002\178\019Y\017\000;\128\004\014A \224X$\017\001l\000VBk\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\004\0008\000\001\192(\000qp@\000\001@\000\000\000\000\000\000\136\128\029\192\002\007 \144p,\018\b\128\182\000+!5\145\016\003\184\000@\228\018\014\005\130A\016\022\192\005d&\176\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\128\000\024\000\000\005\023\004\000\000\020\000\000\000\000\000\000\b\136\001\220\000 r\t\007\002\193 \136\011`\002\178\019Y\017\000;\128\004\014A \224X$\017\001l\000VBk\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\0008\000\001\192(\000qp@\000\001@\000\000\000\000\000\000\136\128\029\192\002\007 \144p,\018\b\128\182\000+!5\145\016\003\184\000@\228\018\014\005\130A\016\022\192\005d&\176\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\128\000\024\000\000\005\023\004\000\000\020\000\000\000\000\000\000\b\136\001\220\000 r\t\007\002\193 \136\011`\002\178\019Y\017\000;\128\004\014A \224X$\017\001l\000VBk\000\192\000\012\000\000\002\139\130\000\000\n\000\000\000\000\000\000\0008\000\001\192( qp@\000\001@\000\000\000\000\000\000\000\000\000\016\000\000\b\000\000\000\000\000\000\000\002\000\000\000\000\224\000\007\000\160\001\197\193\000\000\005\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\b\000p\000\003\128P\000\226\224\128\000\002\128\000\000\000\000\000\001\017\000;\128\004\014A \224X$\017\001l\000VBk\" \007p\000\129\200$\028\011\004\130 -\128\n\200M`\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\000\0000\000\000\n.\b\000\000(\000\000\000\000\000\000\017\016\003\184\000@\228\018\014\005\130A\016\022\192\005d&\178\"\000w\000\b\028\130A\192\176H\"\002\216\000\172\132\214\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000p\000\003\128P\000\226\224\128\000\002\128\000\000\000\000\000\001\017\000;\128\004\014A \224X$\017\001l\000VBk\" \007p\000\129\200$\028\011\004\130 -\128\n\200M`\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\000\0000\000\000\n.\b\000\000(\000\000\000\000\000\000\017\016\003\184\000@\228\018\014\005\130A\016\022\192\005d&\178\"\000w\000\b\028\130A\192\176H\"\002\216\000\172\132\214\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\b\000p\000\003\128P\000\226\224\128\000\002\128\000\000\000\000\000\001\017\000;\128\004\014A \224X$\017\001l\000VBk\" \007p\000\129\200$\028\011\004\130 -\128\n\200M`\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\000\0000\000\000\n.\b\000\000(\000\000\000\000\000\000\017\016\003\184\000@\228\018\014\005\130A\016\022\192\005d&\178\"\000w\000\b\028\130A\192\176H\"\002\216\000\172\132\214\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000p\000\003\128P\000\226\224\128\000\002\128\000\000\000\000\000\001\017\000;\128\004\014A \224X$\017\001l\000VBk\" \007p\000\129\200$\028\011\004\130 -\128\n\200M`\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\000\0000\000\000\n.\b\000\000(\000\000\000\000\000\000\017\016\003\184\000@\228\018\014\005\130A\016\022\192\005d&\178\"\000w\000\b\028\130A\192\176H\"\002\216\000\172\132\214\000\128@\000\000\000\129\000\000\000\000\004\000\000\000\000\000\b\0000\000\003\000\000\000\162\224\128\000\002\128\000\000\000\000\000\000\000\001\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000 \001\192\000\014\001@\003\139\130\000\000\n\000\000\000\000\000\000\004D\000\238\000\0169\004\131\129`\144D\005\176\001Y\t\172\136\128\029\192\002\007 \144p,\018\b\128\182\000+!5\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012\000\000\192\000\000(\184 \000\000\160\000\000\000\000\000\000D@\014\224\001\003\144H8\022\t\004@[\000\021\144\154\200\136\001\220\000 r\t\007\002\193 \136\011`\002\178\019X\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\001\192\000\014\001@\003\139\130\000\000\n\000\000\000\000\000\000\004D\000\238\000\0169\004\131\129`\144D\005\176\001Y\t\172\136\128\029\192\002\007 \144p,\018\b\128\182\000+!5\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012\000\000\192\000\000(\184 \000\000\160\000\000\000\000\000\000D@\014\224\001\003\144H8\022\t\004@[\000\021\144\154\200\136\001\220\000 r\t\007\002\193 \136\011`\002\178\019X\002\001\000\000\000\002\004\000\000\000\000\016\000\000\000\000\000 \000\192\000\012\000\000\002\139\130\000\000\n\000\000\000\000\000\000\004D\004\238\000\0169\004\131\129`\144D\005\176\001Y\t\172\007\000\0008\005\000\014.\b\000\000(\000\000\000\000\000\000\017\016\003\184\000@\228\018\014\005\130A\016\022\192\005d&\178\"\000w\000\b\028\130A\192\176H\"\002\216\000\172\132\214\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0000\000\003\000\000\000\162\224\128\000\002\128\000\000\000\000\000\001\017\000;\128\004\014A \224X$\017\001l\000VBk\" \007p\000\129\200$\028\011\004\130 -\128\n\200M`\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\007\000\0008\005\000\014.\b\000\000(\000\000\000\000\000\000\017\016\003\184\000@\228\018\014\005\130A\016\022\192\005d&\178\"\000w\000\b\028\130A\192\176H\"\002\216\000\172\132\214\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0000\000\003\000\000\000\162\224\128\000\002\128\000\000\000\000\000\001\017\000;\128\004\014A \224X$\017\001l\000VBk\" \007p\000\129\200$\028\011\004\130 -\128\n\200MdD\000\170\000\0160\004\131\129\000\144@\005\176\001I\000\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\016\002\168\000@\192\018\014\004\002A\000\022\192\005$\0002\000\000\016\000\000\b\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\t\000\000\b\000\000\004\000\000\000\000\000\000\000\000\000\016\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0008\000\001\192(\000qp@\000\001@\000\000\000\000\000\000\001\000\132\000\000\001\002\000\016\000\000\b\000\000\000\b@\020\000`\000\000\000\000\001@\000\b\000\000\000\000\000\000\000\000\002\000\000\016\000\000\b\000\000\000\000\000\000\000\000\000 \000\002\000\128\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\016\b@\000\000\016 \001\000\000\000\128\000\000\000\132\001@\006\000\000\000\000\000\020\000\000\128\000\000\000\000\000\000\000\000 \000\001\000\000\000\128\000\000\000\000\000\000\000\000\002\000\000 \000\000 \000\000\000\000\000\128\000\000\000\000\000\000@\000\000\001\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000 \016\130\000\000!@\002\000\000\001\000\000\000A\b\002\128\"\000E\000\b\016\002A\128\128H \002\152\000\000\128\128\004@\b\160\001\002\000H0\016\t\004\000S\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002;J\001\022\138\134\252L|\128-\128\250\002\128\000\198@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\b\237(\004Z*\027\2411\242\000\182\003\232\n\000\003\025\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000D\000\130\000\016 \000\130\001\000\128\000\005 \000\001\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\144\000\000\000\000\005\000\004\000\000\000\000\128\000\000\000\000\000\000\b@>\128,\018\000\000>\004\b\001\002\000\024+,\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000@\000\000\000\004\000\000\000\000\000(\000\000\000\000\000\000\000\000\000\000\000\000\000@\001\244\001`\144\000\001\240 @\b\016\000\193Y`\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002@\000\000\000\000\016\000\016\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\224\000\007\000\160\001\197\193\000\000\005\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\142\210\128E\162\161\191\019\031 \011`>\128\160\0001\144\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\002\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000`@\004\000\000\001\001\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\b\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000@@\000\b\020\016\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\b\000\000\128\000\000\000\000 \000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006R\000@\128\000\148\019\023 \007p\006@\000\000 \128\000\000\000\000\000\000\000\000\004\000\000\000\000\001\000\002 A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\001@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000@\000\000\000\000\002\128\000\000\000\000\000\000\000\000\000\000\002\127J\131\022\154\166\252\206}\128\189\192\255\"\128\001\198@\001\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\0014\"\b\000@\129R\b\006\002A\0004\128\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000D\000\130\000\016 \004\130\001\000\144@\005 \016\001\000\000\001\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\0014\"\b\000@\129R\b\006\002A\0004\128\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000D\000\130\000\016 \004\130\001\000\144@\005 \016\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\136\001\004\000 @\t\004\002\001\000\000\n\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000'\244\1681i\170o\204\231\216\011\220\015\242(\000\028d\004\254\149\006-5M\249\156\251\001{\129\254E\000\003\140\128\017\000 \128\004\b\001 \128@$\016\001H\000\000@\000\002 \004\016\000\129\000$\016\b\004\130\000)\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\016\002\b\000@\128\018\012\004\002A\000\020\128\000\004\000\000\"\000A\000\b\016\002A\000\128H \002\144\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002 \004\016\000\129\000$\024\b\004\130\000)\000\000\b\000\000D\000\130\000\016 \004\130\001\000\144@\005 \000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000") + (147, "'\244\1681i\170o\204\231\216\n\216\015\242(\000\028d\004v\148\002/\021\r\248\153\249\000[\001\244\005\000\001\140\129\243\236D\b\021\248m\000\002\0248\000{G\002\192P\026\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\127\173\205\235]\211\254g~\242^\224\255\137H\129\231 |\251\017\002\005~\027@\000\134\014\000\030\209\192\176\020\006\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\218P\b\180T7\226g\228\001l\007\208\020\000\0062\007\207\177\016 W\225\180\000\b`\224\001\237\028\011\001@hO\233Qj\211T\223\153\207\176\021\176\031\224P\000x\200\000\000\000\000\004\000\001@\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000(\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000>\128,\018\000\000>\004\b\001\002\000\016+,\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\001@\000\000\000\000\000\000\000\000\000\000\0000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\136\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000p\000\003\128P\000\226\224\128\000\002\128\000\000\000\000\000\000\014R\000`\130\000\156_\023 \007p\006@\000\000 \128\001\202@\012\016@\019\139\226\228\000\238\000\200\000\000\004\016\0009H\001\130\b\002q|\\\128\029\192\025\000\000\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0010\019\186\000@\165R\014\005\131A\016\022\192DD&\160\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\192\000\014\001A\003\139\130\000\000\n\000\000\000\000\000\000\000\b\004 \000\000\b\016\000\128\000\000@\000\000\000B\000\160\003\000\000\000\000\000\n\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012\000\000\000\000\000(\000\001\000\000\000\000\000\000\000\000\000\003\128\000\028\002\128\007\023\004\000\000\020\000\000\000\000\000\000\000\016\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\192\000\014\001A\003\139\130\000\000\n\000\000\000\000\000\000\000\b\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\001\000\132\016\000\001\n\000\016\000\000\b\000\000\002\b@\020\000`\000\000\000\000\001@\000\b\000\000\000\000\000\000\000\000\002\"\000U\000\b\024\002A\128\128H \002\216\000\164\128\006\001\128\000\000\000\000\005\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000 \000\000\016\000\000\000\000\000\000\000\000\000@\000\004\007\000\0008\005\000\014.\b\000\000(\000\000\000\000\000\000\0170\019\184\000@\228R\014\005\130A\016\022\192\005l&\176\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\128\000\024\000\128\007\023\004\000\000\020\000\000\000\000\000\000\000p\000\003\128P@\226\224\128\000\002\128\000\000\000\000\000\000\002\000@@@\b\020\016 \000\000\000@\000\000\000\000\000\000@\b\b\000\001\002\130\004\000\000\000\b\000\000\000\000\000\000\b\001\001\000\000 P@\000\000\000\001\000\000\000\000\000\000\136\128\021@\002\005\b\144p \018\b\000\182\002\003 1\001\016\002\b\000@\128\002\n\004\002\000\000\020@\000\004\004\000\"\000A\000\b\016\000A\000\128@\000\002\136\000\000\128\128\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\b\136\t\220\000 p)\007\002\001\160\128\011`\002\146\016\024\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\016\002(\000@\128\002\b\004\002\000\000\020\192\000\004\000\000\012\000\000I\128\129(\000@\002\000\000\000\000\000\000\002\000\001\128\000\t \016%\000\b\000@\000\000\000\000\000\000@\0000\000\001$\002\004\160\000\000\b\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\000\000\018@\000J\000\000\000\128\000\000\000\000\000\000\128\000@\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\t \000 \000\000\000@\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000 \128\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\002\000\000\000\000\000\000\001\b\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000!\000\000\001\128\000\000\000\000\005\000\000 \000\000\000\000\000\000\000\000\b\000\000@\000\000 \000\000\000\000\000\000\000\000\000\128\000\b\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\" \005P\000\129\128\164\024\b\004\130\000-\128\nH\000`\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000`\000\000\000\000\001@\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000/\245\191\255k\190\127\223\255\222O\220\127\243*\020<\244\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\004\000\000\000\000\000\000\002\016\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000B\000\000\003\000\000\000\000\000\n\000\000@\000\000\000\000\000\000\000\000\016\000\000\128\000\000@\000\000\000\000\000\000\000\000\001\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000$\128\000\128\000\000\001\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000 \000\000\000@\002\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\016\000\016\000\000\000 \001\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000D\000\138\b\016 \000\131\001\000\128\000\005\176\001\011\000\b\003\000\000\000\000\000\n\000\000@\000\000\000\000\000\000\000\000\017\016\002(\000@\192\018\012\004\002A\000\022\192\004$\0000\"\000E\000\b\016\000A\128\128@\000\002\216\000\132\128\004\003\144\000\030\002\128\007\023\005\000\000\028\000\128\002\000\000\128\000\136\001\020\000(@\137\007\002\001 \128\n`\"\006\016\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\200\000\014\001@\003\139\130\128\000\014\000@\001\000\000@\0008\000!\192( qp@\000\001@\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000`\000\006\000\000\001E\193\000\000\005\016\000\000\128\000\000\000\028\000\000\224\020\0168\184 \000\000\160\000\000\000\000\000\000\000\128\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\016\b@\000\000\016 \001\000\000\000\128\000\000\000\132\001A\243\236D\b\021\248m\000\002\0248\000{G\002\192P\026\019\250TZ\180\2137\230s\236\005l\007\248\020\000\0302\002;J\001\022\138\134\252L|\128-\128\250\002\128\000\198@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\029\165\000\139\197C~&~@\022\192}\001@\000c #\180\160\017h\168o\196\207\200\002\216\015\160(\000\012d\004v\148\002-\021\r\248\152\249\000[\001\244\005\000\001\140\128\000\000\000\000\000\000\020\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\000\000\007\000\0008\005\000\014.\b\000\000(\000\000\000\000\000\000\000\224\000\007\000\160\001\197\193\000\000\005\000\000\000\000\000(\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\128\000\028\002\128\007\023\004\000\000\020\000\000\000\000\000 \000p\000\019\128P\000\226\224\128\000\002\128\000\000\000\000\020\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\192\000\014\001@\003\139\130\000\000\n\000\000\000\000\000\016\0008\000\001\192(\000qp@\000\001@\000\000\000\000\n\000\003\000\0000\000\000\n.\b\000\000(\000\000\000\000\000\000\000 \016\000\000\000\000@\000\000\000A\000\000\000\000\b\000\000\012\000\000\192\000\000(\184 \000\000\160\000\000\000\000\000\000D\192N\224\001\003\145H8\022\r\004@[\000\021\144\154\192\016\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\128\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\b\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\128\000\000\000\b\000\000\000\000\000P0@\000\001\000\000\000\000\000\000\000\007\000\0008\005\004\014.\b\000\000(\000\000\000\000\000\000\017\016\003\184\000@\228\018\014\005\130A\016\022\192\005d&\176\028\000\000\224\020\0008\184 \000\000\160\000\000\000\000\000\000D@\014\224\001\003\144H8\022\t\004@[\000\021\144\154\192\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\001\017\000;\128\004\014E \224X$\017\001l\000VBk\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\136\128\029\192\002\007 \144p,\018\b\128\182\000+!5\128\224\000\007\000\160\001\197\193\000\000\005\000\000\000\000\000\000\002\"\000w\000\b\028\130A\192\176H\"\002\216\000\172\132\214D@\014\224\001\003\144H8\022\t\004@[\000\021\144\154\192\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\014\000\000`\002\000\028\\\016\000\000P\000\000\000\000\000\000\001\192\000\014\001A\003\139\130\000\000\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000 \000\000\000\000\000@\000\000\000\001\000\000\000\000\000\000\000\004\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\128\000\000\000\b\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000p\000\003\128P\000\226\224\128\000\002\128\000\000\000\000\000\000\002\001\b\000\000\002\004\000 \000\000\016\000\000\000\016\128(\000\192\000\000\000\000\002\128\000\016\000\000\000\000\000\000\000\000\004\000\000 \000\000\016\000\000\000\000\000\000\000\000\000@\000\004\001\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000 \016\128\000\000 @\002\000\000\001\000\000\000\001\b\002\128\012\000\000\000\000\000(\000\001\000\000\000\000\000\000\000\000\000@\000\002\000\000\001\000\000\000\000\000\000\000\000\000\004\000\000@0\000\003\000\000\000\162\224\128\000\002\128\000\000\000\000\000\000\014\000\000p\n\b\028\\\016\000\000P\000\000\000\000\000\000\000\000\000\004\000\000\002\000\000\000\000\000\000\000\000\128\000\000\000\b\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\0000\000\000\000\000\000\160\000\004\000\000\000\000\000\000\000\000\001\000\000\b\000\000\004\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0008\000\001\192(\000qp@\000\001@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\004\0008\000\001\192(\000qp@\000\001@\000\000\000\000\000\000\136\128\029\192\002\007 \144p,\018\b\128\182\000+!5\145\016\003\184\000@\228\018\014\005\130A\016\022\192\005d&\176\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\128\000\024\000\000\005\023\004\000\000\020\000\000\000\000\000\000\b\136\001\220\000 r\t\007\002\193 \136\011`\002\178\019X\014\000\000p\n\000\028\\\016\000\000P\000\000\000\000\000\000\" \007p\000\129\200$\028\011\004\130 -\128\n\200MdD\000\238\000\0169\004\131\129`\144D\005\176\001Y\t\172\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000`\000\006\000\000\001E\193\000\000\005\000\000\000\000\000\000\002\"\000w\000\b\028\130A\192\176H\"\002\216\000\172\132\214D@\014\224\001\003\144H8\022\t\004@[\000\021\144\154\192p\000\003\128P\000\226\224\128\000\002\128\000\000\000\000\000\001\017\000;\128\004\014A \224X$\017\001l\000VBk\" \007p\000\129\200$\028\011\004\130 -\128\n\200M`\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\000\0000\000\000\n.\b\000\000(\000\000\000\000\000\000\017\016\003\184\000@\228\018\014\005\130A\016\022\192\005d&\178\"\000w\000\b\028\130A\192\176H\"\002\216\000\172\132\214D\192N\224\001\003\145H8\022\t\004@[\000\021\144\154\1920\000\003\000\000\000\162\224\128\000\002\128\000\000\000\000\000\001\019\001;\128\004\014E \224X$\017\001l\000V\194k\000\192\000\012\000\000\002\139\130\000\000\n\000\000\000\000\000\000\004L\004\238\000\0169\020\131\129`\144D\005\176\001Y\t\172\001\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\136\t\220\000 r\t\007\002\193 \136\011`\002\178\019X\006\000\000`\000\000\020\\\016\000\000P\000\000\000\000\000\000\"`'p\000\129\200\164\028\011\004\130 -\128\n\216M`\024\000\001\128\000\000Qp@\000\001@\000\000\000\000\000\000\137\128\157\192\002\007\"\144p,\018\b\128\182\000+!5\1450\019\184\000@\228R\014\005\130A\016\022\192\005d&\178&\002w\000\b\028\138A\192\176H\"\002\216\000\172\132\214D@\014\224\001\003\144H8\022\t\004@[\000\021\144\154\192\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\014\000\000p\n\000\028\\\016\000\000P\000\000\000\000\000\000\" \007p\000\129\200$\028\011\004\130 -\128\n\200MdD\000\238\000\0169\004\131\129`\144D\005\176\001Y\t\172\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000`\000\006\000\000\001E\193\000\000\005\000\000\000\000\000\000\002\"\000w\000\b\028\130A\192\176H\"\002\216\000\172\132\214D@\014\224\001\003\144H8\022\t\004@[\000\021\144\154\192\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\017\000;\128\004\014A \224X$\017\001l\000VBk\000\000\000\004\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\001\128\000\000\000\000\005\000\000 \000\000\000\000\000\000\000\000\b\000\000@\000\000 \000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\003\000\000\000\000\000\n\000\000@\000\000\000\000\000\000\000\000\016\000\000\128\000\000@\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\b\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\014\000\000p\n\000\028\\\016\000\000P\000\000\000\000\000\000\000@!\000\000\000@\128\004\000\000\002\000\000\000\002\016\005\000\024\000\000\000\000\000P\000\002\000\000\000\000\000\000\000\000\000\128\000\004\000\000\002\000\000\000\000\000\000\000\000\000\b\000\000\128 \000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\004\002\016\000\000\004\b\000@\000\000 \000\000\000!\000P\001\128\000\000\000\000\005\000\000 \000\000\000\000\000\000\000\000\b\000\000@\000\000 \000\000\000\000\000\000\000\000\000\128\000\b\000\000\b\000\000\000\000\000 \000\000\000\000\000\000\016\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\016\000\000\000\000\000\000\b\000\000\000\000\000\002\000\000\001\000\000\000\000\000\000\000\000@\000\000\000\028\000\000\224\020\0008\184 \000\000\160\000\000\000\000\000\000\000\000\002\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\001\000\014\000\000p\n\000\028\\\016\000\000P\000\000\000\000\000\000\" \007p\000\129\200$\028\011\004\130 -\128\n\200MdD\000\238\000\0169\004\131\129`\144D\005\176\001Y\t\172\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000`\000\006\000\000\001E\193\000\000\005\000\000\000\000\000\000\002\"\000w\000\b\028\130A\192\176H\"\002\216\000\172\132\214D@\014\224\001\003\144H8\022\t\004@[\000\021\144\154\192\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\014\000\000p\n\000\028\\\016\000\000P\000\000\000\000\000\000\" \007p\000\129\200$\028\011\004\130 -\128\n\200MdD\000\238\000\0169\004\131\129`\144D\005\176\001Y\t\172\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000`\000\006\000\000\001E\193\000\000\005\000\000\000\000\000\000\002\"\000w\000\b\028\130A\192\176H\"\002\216\000\172\132\214D@\014\224\001\003\144H8\022\t\004@[\000\021\144\154\192\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\001\000\014\000\000p\n\000\028\\\016\000\000P\000\000\000\000\000\000\" \007p\000\129\200$\028\011\004\130 -\128\n\200MdD\000\238\000\0169\004\131\129`\144D\005\176\001Y\t\172\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000`\000\006\000\000\001E\193\000\000\005\000\000\000\000\000\000\002\"\000w\000\b\028\130A\192\176H\"\002\216\000\172\132\214D@\014\224\001\003\144H8\022\t\004@[\000\021\144\154\192\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\014\000\000p\n\000\028\\\016\000\000P\000\000\000\000\000\000\" \007p\000\129\200$\028\011\004\130 -\128\n\200MdD\000\238\000\0169\004\131\129`\144D\005\176\001Y\t\172\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000`\000\006\000\000\001E\193\000\000\005\000\000\000\000\000\000\002\"\000w\000\b\028\130A\192\176H\"\002\216\000\172\132\214D@\014\224\001\003\144H8\022\t\004@[\000\021\144\154\1920\000\003\000\000\000\162\224\128\000\002\128\000\000\000\000\000\000\014\000\000p\n\b\028\\\016\000\000P\000\000\000\000\000\000\000\000\000\004\000\000\002\000\000\000\000\000\000\000\000\128\000\000\0008\000\001\192(\000qp@\000\001@\000\000\000\000\000\000\000\000\004\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\002\000\028\000\000\224\020\0008\184 \000\000\160\000\000\000\000\000\000D@\014\224\001\003\144H8\022\t\004@[\000\021\144\154\200\136\001\220\000 r\t\007\002\193 \136\011`\002\178\019X\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\192\000\012\000\000\002\139\130\000\000\n\000\000\000\000\000\000\004D\000\238\000\0169\004\131\129`\144D\005\176\001Y\t\172\136\128\029\192\002\007 \144p,\018\b\128\182\000+!5\128\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\028\000\000\224\020\0008\184 \000\000\160\000\000\000\000\000\000D@\014\224\001\003\144H8\022\t\004@[\000\021\144\154\200\136\001\220\000 r\t\007\002\193 \136\011`\002\178\019X\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\192\000\012\000\000\002\139\130\000\000\n\000\000\000\000\000\000\004D\000\238\000\0169\004\131\129`\144D\005\176\001Y\t\172\136\128\029\192\002\007 \144p,\018\b\128\182\000+!5\128\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\002\000\028\000\000\224\020\0008\184 \000\000\160\000\000\000\000\000\000D@\014\224\001\003\144H8\022\t\004@[\000\021\144\154\200\136\001\220\000 r\t\007\002\193 \136\011`\002\178\019X\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\192\000\012\000\000\002\139\130\000\000\n\000\000\000\000\000\000\004D\000\238\000\0169\004\131\129`\144D\005\176\001Y\t\172\136\128\029\192\002\007 \144p,\018\b\128\182\000+!5\128\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\028\000\000\224\020\0008\184 \000\000\160\000\000\000\000\000\000D@\014\224\001\003\144H8\022\t\004@[\000\021\144\154\200\136\001\220\000 r\t\007\002\193 \136\011`\002\178\019X\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\192\000\012\000\000\002\139\130\000\000\n\000\000\000\000\000\000\004D\000\238\000\0169\004\131\129`\144D\005\176\001Y\t\172\136\128\029\192\002\007 \144p,\018\b\128\182\000+!5\128`\000\006\000\000\001E\193\000\000\005\000\000\000\000\000\000\002\"\000w\000\b\028\130A\192\176H\"\002\216\000\172\132\214D@\014\224\001\003\144H8\022\t\004@[\000\021\144\154\192\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\000\000`\000\000\020\\\016\000\000P\000\000\000\000\000\000\" \007p\000\129\200$\028\011\004\130 -\128\n\200MdD\000\238\000\0169\004\131\129`\144D\005\176\001Y\t\172\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128@\000\000\000\001\000\000\000\000\004\000\000\000\000\000\000\0000\000\003\000\000\000\162\224\128\000\002\128\000\000\000\000\000\000\000\001\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\004\000\000\000\000\016\000\000\000\000@\000\000\000\000\000\000\003\000\0000\000\000\n.\b\000\000(\000\000\000\000\000\000\000\000\016\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\128\000\028\002\128\007\023\004\000\000\020\000\000\000\000\000 \000\016\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\028\000\000\224\020\0008\184 \000\000\160\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\b\000\000\001\000\000\000\b\000\000\000\000\016\000\014\000\000p\n\000\028\\\016\000\000P\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0008\000\001\192(\000qp@\000\001@\000\000\000\000\000\000\000\000\001\000\000\000\000\000\016\000\000\000\128\000\000\000\001\000\128\224\000\007\000\160\001\197\193\000\000\005\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000@\000\000\002\000\000\000\000\004\018\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\001\000\000\000\b\000\000\000\000\016H\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\004\000\000\000 \000\000\000\000@\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\028\000\000\224\020\0008\184 \000\000\160\000\000\000\000\001\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\004\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003 \000\000\000\000\004\000\000\000\000\004\000\000\000\b\0008\000\001\192(\000qp@\000\001@\000\000\000\000\000\000\000\000\012\128\000\000\000\000\016\000\000\000\000\016\000\002\000 \000\224\000\007\000\160\001\197\193\000\000\005\000\000\000\000\000\000\000\000\0002\000\000\000\000\000@\000\000\000\000@\000\000\000\128\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\142\210\128E\162\161\191\019\031 \011`>\128\160\0001\144\000\000\000\000\000\000\002\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002@\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006B\000D\000\160\020\019\028 \003`6\000\160\0001\128\000\200@\b\128\020\002\130c\132\000l\000\192\020\000\0060\000@\000\002\001\000\001@\130\128`\000\000\000\016\001\000\000\000\b\000\000@\000\000(\016P\012\000\000\000\002\000 \000\000\001\000\000\b\000\000\005\002\b\001\128\000\000\000@\004\000\000\000\012\164\000\129\000\001(&.@\014\224\012\128\000\000A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\160\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\0008\000\001\192(\000qp@\000\001@\000\000\000\000\000\000\000\000\004\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\012\164\000\129\000\001(&.@\014\224\012\128\016\000A\000\000\000\000\000\000\000\005\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\001\192\000\014\001@\003\139\130\000\000\n\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\006\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\012\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0002\152B>\128l\178\152\185>?\1363\002\000\025/,\000\000\b\000\000\000\000\000\000 \003\000\004\000\000\000\000\000\000\192\000\000\b\000\000\000\004\000\000\000\000\000\000\000\000\000\000\024\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\003\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000@@\000\b\020\016\000\000\000\000@\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\003\002\000 \000\000\b\b\016\000\000\000 \000\000\000\000\000\000`@\004\000\000\001\001\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000'\244\1681i\170o\204\239\216\n\216\015\241(\000\028d\004\254\149\006-5M\249\156\251\001[\001\254%\000\003\140\128\006\000\000$\192@\148\000 \001\000\000\000\000\000\000\001\000\000\192\000\004\144\b\018\128\004\000 \000\000\000\000\000\000 \000\024\000\000\146\001\002P\000\000\004\000\000\000\000\000\000\004\000\003\000\000\018@\000J\000\000\000\128\000\000\000\000\000\000\128\000 \000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\"\000E\004\b\016\002A\128\128H \002\216\000\129\128\004\004@\b\160\001\002\000H0\016\t\004\000[\000\016\016\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\000\"\128\004\b\001 \192@$\016\001L\000@@\002>}\136\129\002\191\r\160\000C\007\000\015h\224X\n\003B\127J\139V\154\166\252\206}\128\173\128\255\002\128\003\198@O\233Qb\211T\223\153\207\176\021\176\031\230P\0008\200\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004v\148\002/\021\r\248\153\249\000[\001\244\005\000\001\140\128\142\210\128E\162\161\191\019? \011`>\128\160\0001\144\017\218P\b\180T7\226c\228\001l\007\208\020\000\0062\002;J\001\022\138\134\252L|\128-\128\250\002\128\000\198@\001\000\000\000 \000\002\000\016\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000@\002\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\002\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\142\210\128E\226\161\191\019? \011`>\128\160\0001\144\017\218P\b\180T7\226g\228\001l\007\208\020\000\0062\002;J\001\022\138\134\252L|\128-\128\250\002\128\000\198@Gi\196#\249V\223\169\143\147\229\240\159Pp\001\154\250\192d \132@\n\001A1\194\0006\000`\n\000\003\024\001\029\165\000\139EC~&>@\022\192}\001@\016c #\180\160\017h\168o\196\199\200\002\216\015\160(\000\012d\n\187\217\222\190\229~\175\159\235\255\191\184{\127\182\255\255<\142\210\128E\162\161\191\019\031 \011`>\128\160\0001\144\000\202@\b\016\000\018\130b\228\000\238\000\192\000\000\004\016\000\000\000\000\000\000\000P\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\028\000\000\224\020\0008\184 \000\000\160\000\000\000\000\000\000\000\000\002\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\006R\000@\128\000\148\019\023 \007p\006\000\b\000 \128\000\000\000\000\000\000\002\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\224\000\007\000\160\001\197\193\000\000\005\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006R\000@\128\000\148\019\023 \007p\006@\000\b \128\000\202@\b\016\000\018\130b\228\000\238\000\200\000\000\005\016\000\025H\t\002\000\002PL\\\128\029\192\025\000\000\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\000\000\000\000\000\000\000\000\000\000 \000\000\128\000\001\192\000\014\001@\003\139\130\000\000\n\000\000\000\000\000\000\000\000\000D\000\000\000\000\000\128\000\000\000\000\128\000\000\000\000\000\000\b\128\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000e \004\b\000\tA1r\000w\000d\000\000\002\b\000\012\132\000\129\128\001(&h@\014\224\012\000\000\000A\000\001\144\128\016 \000%\004\205\b\001\220\001\128\000\000\b \0002\016\002\004\000\004\160\152\161\000;\1280\000\000\001\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000@\000\000\000\004\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006R\000@\128\000\148\019\023 \007p\006@\000\000 \128\000\200@\b\016\000\018\130b\132\000\238\000\192\000\000\004\016\000\b\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\006R\000@\128\000\148\019\023 \007p\006@\b\000 \128\000\000\000\000\000\000\002\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\224\000\007\000\160\001\197\193\000\000\005\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006B\000@\128\000\148\019\020 \007p\006\000\000\000 \128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000#)\r\168D\001J\t\154\144\011\184\003\020\004\014\213T\000\000 \000\b\000\b\000\000\002\000\000\000@\000\000\002\000\000\000\000\000\000\000\000\000\000\000@\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\025HmB \nPL\220\128]\192\025\160\016v\170\160\001\000\000\000\000\000\b\001\138\000\0000\000\000\000\000\000\000\000e \132\b\000\tA1r\000w\000d\000\000\018\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\148\128\0160\000%\004\205\200\001\220\001\144\000\000\b \0002\144\002\004\000\004\160\153\185\000;\1282\000\000\001\004\000\006R\000@\128\000\148\019\023 \007p\006@\000\000 \128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\148\134\208 \000\165\004\205\200\005\220\001\154\000\006j\170\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\027\000\000\002\000\000 \000\016\000\000(\000\025\138(\000\202@\b\016\000\018\130b\228\000\238\000\200\001\000\004\016\000\000\000\000\000\000\000P\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\028\000\000\224\020\0008\184 \000\000\160\000\000\000\000\000\000\000\000\002\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\200@\b\016\000\018\130b\132\000\238\000\192\000\000\004\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\216\000\000\016\000\001\000\000\128\000\001@\000\204Q@\006R\000@\128\000\148\019\023 \007p\006@\000\000 \128\b\000\003`\000\000@\000\004\000\002\000\000\005\000\0031E\001\025Hm\002\000\nPL\220\128]\192\025\160\000f\170\160\003\169\132#\232\006\203)\139\147\227\248\1310 \001\146\242\192\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\144\128\016 \000%\004\197\b\001\220\001\128\000\000\b \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000 \003\000\004\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\016\000\000\000\000\000\000\b\193\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012\164\000\129\000\001(&.@\014\224\012\128\016\000A\000\000\000\000\000\000\000\005\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\001\192\000\014\001@\003\139\130\000\000\n\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012\132\000\129\000\001(&(@\014\224\012\000\000\000A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\027\000\000\002\000\000 \000\016\000\000(\000\025\138(\001\192\000\014\001@\003\139\130\000\000\n\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000e \004\b\000\tA1r\000w\000d\000\000\002\b\000\128\0006\000\000\004\000\000@\000 \000\000P\0003\020P\000\000\000\000\000\000\005\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\016\000\000\000\000\000\000\b\129\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012\164\004\129\000\001(&.@\014\224\012\128\000\000A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002@\000\000\000\000\004\000\000\000\000\000\000\003!A\000\025H\t\002\000\002PL\\\128\029\192\025\000\000 \162\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\006\192\000\000\128\000\b\000\004\000\000\n\000\006b\138\000\000\000@\000\000\000\000\001\000\000\000\000\000\000\000\136\016@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\002 A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\128\000\000\000\000\016\000\000\000\000\000\000\b\129\004\000\000\001\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012\000\002\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\004@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006B\000@\128\000\148\019\020 \007p\006\000\000\000 \128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\002\000\001\016 \128\012\164\000\129\000\001(&.@\014\224\012\128\000\000A\000\000\000\000\000\000\000\000\000\b\000\000\000\000\b\000\004@\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\004\000\002 A\000\025H\001\002\000\002PL\\\128\029\192\024\000 \000\130\000\000\000\000\000\000\000\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\003\128\000\028\002\128\007\023\004\000\000\020\000\000\000\000\000\000\000\000\000@\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\025\b\001\002\000\002PLP\128\029\192\024\000\000\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000@\000\"\004\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\0002\144\002\004\000\004\160\152\185\000;\1280\000@\001\004\000\000\000\000\000\000\000\020\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\007\000\0008\005\000\014.\b\000\000(\000\000\000\000\000\000\000\000\000\128\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0002\016\002\004\000\004\160\152\161\000;\1280\000\000\001\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\128\000D\b \003!\000 @\000J\t\138\016\003\184\003\000\000\000\016@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\012\164\000\129\000\001(&.@\014\224\012\000\016\000A\000\000\000\000\000\000\000\005\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\001\192\000\014\001@\003\139\130\000\000\n\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012\132\000\129\000\001(&(@\014\224\012\000\000\000A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000 \000\017\002\b\000\202@\n\017\000\018\130f\164\002\238\000\196\000\0024Q\128\000\000\000\000\000\000P\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\001\000\006\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\002\000\000\b\002\000\028\000\000\224\020\0008\184 \000\000\160\000\000\000\000\000\000\000\000\000\b\000\000\004\000\000\000\000\000\000\000\001\000\000\000\000p\000\003\128P\000\226\224\128\000\002\128\000\000\000\000\000\000\000\000\b\000\000\000\000\000 \000\000\000\000 \000\000\000@\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\002\000\000\000\000\002\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000(\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\128\003\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\017\218P\b\180T7\226c\228\001l\007\208\020\000\0062\0009H\017\003\024\"pL\220\128\029\192\025\000\000\000\130\000\003\002\000 \000\b\b\016\000\000\000 \000\000\000\000\128\000`@\004\004\000\001\001\002\000\000\000\004\000\000\000\000\000\000\012\b\000\128\000\000 @\000\000\000\128\000\000\000\000\000\001\129\000\016\000\000\004\004\000\000\000\000\016\000\000\000\000\000\000\176 \002\000\000\000\128\128\000\000\000\002\000\000\000\000\000\000\142\210\128E\162\161\191\019? \011`>\128\160\0001\144\017\218P\b\180T7\226c\228\001l\007\208\020\000\0062\002;J\001\022\138\134\252L|\128-\128\250\002\128\000\230@GiA\"\209P\223\137\143\144\005\176\031@P\000\024\200\000\000\000\000\000\000\000@\000\000\000\000@\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\b\000@\000\000\000\000#\180\160\017h\168o\196\199\200\002\216\015\160(\000\012d\0002\016\002 \005\000\160\152\225\000\027\0000\005\000\001\140\001\000\000\017\000\000\000\000\000\000\000\004\144\000 T\004\128\000\017\218P\b\180T7\226c\228\001l\007\208\020\000\0062\000\025\b\001\017\002\128PL\240\128\r\128\024\002\128\000\198\000\003!\000\"\000P\n\t\158\016\001\176\003\000P\000\024\192\000d \004@\n\001A1\194\0006\000`\n\000\003\024\000\012\132\000\136\001@(&8@\006\192\012\001@\000c\000\001\144\128\017\000(\005\004\199\b\000\216\001\128(\000\012`\004v\148\002-\021\r\248\152\249\000[\001\244\005\000\001\140\128\006B\000D\000\160\020\019\028 \003`\006\000\160\0001\128\017\218P\b\188T7\226g\228\001l\007\208\148\000\0062\002;J\001\022\138\134\252L\252\128-\128\250\018\128\000\198@Gi@\"\209P\223\137\143\144\005\176\031BP\000\024\200\b\237(\004^*\027\2413\242\000\182\003\232\n\000\003\025\001\029\165\000\139EC~&~@\022\192}\001@\000c #\180\160\017h\168o\196\199\200\002\216\015\160(\000\012d\0002\144\002\006\000\004\160\153\185\000;\1282\000\000\001\020\000\006R\000@\128\000\148\0197 \007p\006@\000\000\"\128\000\202@\b\016\000\018\130b\228\000\238\000\200\000\000\004P\000\025H\001\002\000\002PL\\\128\029\192\025\000\000\000\130\000 \000\000\000\000\001\000\000\016\000\000\000\000\000\000\b\129\004\b\237(\004Z*\027\2411\242\000\182\003\232\n\000\003\025\000\012\164\000\161\144\001(&j@\014\224\012\000\000\000A\000\001\148\128\020\"\000%\004\205H\001\220\001\128\000\000\b \0002\144\002\132@\004\160\152\169\000;\1280\000\000\001\004\000\004\000\000\000\000\000\020\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0009H\001\002\b\002pL\\\128\029\192\025\000\000\000\130\000\003)\132#\232\006\203)\139\147\227\248\1310 \001\146\242\192e0\132}\000\217e1r|\127\016f\004\0002^X\000\000\016\000\000\000\000\000@\000\000\000\000\000\000#\004P\003\128\000\028\002\128\007\023\004\000\000\020\000\000\000\000\000\000\000\000\000\001\000\000\000\128\000\000\000\000\000\000\000 \000\000\000\014\000\000p\n\000\028\\\016\000\000P\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\016\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\128\000\000\000\000\128\000F\b\160\007\000\0008\005\000\014.\b\000\000(\000\000\000\000\000\000\000\000\000\002\000\000\001\000\000\000\000\000\000\000\000@\000\000\000\028\000\000\224\020\0008\184 \000\000\160\000\000\000\000\000\000\000\000\002\000\000\000\000\000\b\000\000\000\000\b\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000 \000\000\000\000 \000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003)\000 @\000J\t\139\144\003\184\003 \000\000\016@\000\000\000\128\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\2450\132} \217\2291r|\127\016f\004\0002^X\000\000\000\000\000\000(\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\006\000\000\000\000\000\020\000\000\128\000\000\000\000\000\000\000\000 \000\001\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\n\000\000\000\000\000\000\000\000\000@\000\000`\000\000\000\000\001@\000\b\000\000\000\000\000\000\000\000\002\000\000\016\000\000\b\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000P\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000@\000\000\000\000\000\000#\004P\003\128\000\028\002\128\007\023\004\000\000\020\000\000\000\000\000\000\000\000\000\001\000\000\000\128\000\000\000\000\000\000\000 \000\000\000\014\000\000p\n\000\028\\\016\000\000P\000\000\000\000\000\000\000\000\001\000\000\000\000\000\004\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003)\000 @\000J\t\139\144\003\184\003 \000\000\016@\000\000\000\128\000\000\000\000\002\000\000\000\000\000\000\001\024\"\128\028\000\000\224\020\0008\184 \000\000\160\000\000\000\000\000\000\000\000\000\b\000\000\004\000\000\000\000\000\000\000\001\000\000\000\000p\000\003\128P\000\226\224\128\000\002\128\000\000\000\000\000\000\000\000\b\000\000\000\000\000 \000\000\000\000\000\000\000\000@\000\000\001\000\000\000\000\000\004\000\000\000\000\000\000\000\000\b\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006B\000@\128\000\148\019\020 \007p\006\000\000\000 \128\001\202a\b\250A\179\202b\228\248\254 \204\b\000d\188\176\000\000 \000\000\000\000\000\128\000\000\000\000\000\000F\b\160\007\000\0008\005\000\014.\b\000\000(\000\000\000\000\000\000\000\000\000\002\000\000\001\000\000\000\000\000\000\000\000@\000\000\000\028\000\000\224\020\0008\184 \000\000\160\000\000\000\000\000\000\000\000\002\000\000\000\000\000\b\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006R\000@\128\000\148\019\023 \007p\006@\000\000 \128\000\000\001\000\000\000\000\000\004\000\000\000\000\000\000\0020E\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007\000\0008\005\000\014.\b\000\000(\000\000\000\000\000\000\000\000\000\002\000\000\001\000\000\000\000\000\000\000\000@\000\000\000\028\000\000\224\020\0008\184 \000\000\160\000\000\000\000\000\000\000\000\002\000\000\000\000\000\b\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000@\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0002\144\002\132@\020\160\152\169\000;\1281\000\000%\005\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\002\000\128\003\000\0000\000\000\n.\b\000\000(\000\000\000\000\000\000\000 \000\000\000\000 @\000\000\000\001\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\004v\148\002-\021\r\248\152\249\000[\001\244\005\000\001\140\128\006R\000@\192\000\148\0197 \007p\006@\000\000\"\128\000\202@\b\016\000\018\130f\228\000\238\000\200\000\000\004P\000\025H\001\002\000\002PL\\\128\029\192\025\000\000\000\138\000\168\148\157\193\234\007\224\176p/\250\011\132\183\129o\2313\200\237(\004Z*\027\2411\242\000\182\003\232\n\000\003\025\000\000\000\000\000\000\000(\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000$\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003!\000\"\000P\n\t\142\016\001\176\003\000P\000\024\192\000d \004@\n\001A1\194\0006\000`\n\000\003\024\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\171\189\157\235\238W\234\185\254\191\251\251\135\183\251o\255\247\192 \000\000\000\000\001@1\192\000\000\000\000\000\000\000\000\001\029\167\016\143\229[~\166>O\151\194}A\192\006k\235\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004v\148B-\021\r\248\152\249\000[\001\244\005\000\001\140\128\142\210\136E\162\161\191\019\031 \011`>\128\160\0001\144\000\192\128\b\b\000\002\002\004\000\000\000\b\000\000\000\000\000\000\024\016\001\000\000\000@@\128\000\000\001\000\000\000\000\000\000\003\002\000 \000\000\b\b\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\001\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\001\128\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000@\b\b\000\001\002\130\000\000\000\000\b\000\000\000\000\000\000\b\001!\000\000 P@\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000 \004\004\000\000\129A\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000 \000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\b\001\001\000\000 P@\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\016\002\168\000@\160\018\014\004\002A\000\022\192\000D\006 \006\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\001\128\000\t \000%\000\000\000@\000\000\000\000\000\000@\000\016\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\002\000\000\001\192\000\015\001@\003\139\130\000\000\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007\000\0008\005\000\014.\b\000\000(\000\000\000\000\000\000\017\016\002\168\000@\160\018\014\004\002A\000\022\192\000D\006\160\028\000\000\224\020\0008\184 \000\000\160\000\000\000\000\000\000D@\n\160\001\002\128H8\016\t\004\000[\000\017\016\026\136\136\001T\000 P\t\007\002\001 \128\011`\002\"\003\016\014\000\000p\n\000\028\\\016\000\000P\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\004\000\000\000\000\0008\000\001\192(\000qp@\000\001@\000\000\000\000\000\000\136\128\021@\002\005\000\144p \018\b\000\182\000\" 1\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\016\000\000\002\000@@\000\b\020\016\000\000\000\000@\000\000\000\000\000\" \005P\000\129@$\028\b\004\130\000-\128\000\136\012@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000 \004\004\000\000\129A\000\000\000\000\004\000\000\000\000\000\002\"\000U\000\b\020\002A\192\128H \002\216\000\b\128\196\000\128\016\016\000\002\005\004\000\000\000\000\016\000\000\000\000\000\b\136\001T\000 P\t\007\002\001 \128\011`\000\"\003\017\017\000*\128\004\n\001 \224@$\016\001l\000\004@b\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\128\000\000\000\b\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\136\128\021@\002\005\b\144p \018\b\000\182\002\003 1\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\017\000*\128\004\n\001 \224@$\016\001l\000\004@b\000@\b\b\000\001\002\130\000\000\000\000\b\000\000\000\000\000\004D\000\170\000\016(\004\131\129\000\144@\005\176\000\017\001\136\000\000\000\000\000\000\000\000\000\000\000\000\000\016\002\001\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\"\000U\000\b\020\"A\192\128H \002\216\b\b\128\196\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\017\000*\128\004\n\017 \224@$\016\001l\004\004@b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004D\000\170\000\016(\004\131\129\000\144@\005\176\000\017\001\136\000\128\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\"\000U\000\b\020\"A\192\128H \002\216\b\b\128\196D@\n\160\001\002\128H8\016\t\004\000[\000\001\016\024\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\017\000*\128\004\n\001 \224@$\016\001l\000\004@b\" \005P\000\129@$\028\b\004\130\000-\128\000\136\012D\000\000 \000\000\b\000\000\128\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\128\000\000 \000\002\000\000\000\000\000\000\000\000\006\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\192\128\b\000\000\002\002\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\136\128\021@\002\005\b\144p \026\b\000\182\000\002`1\001`@\132\000\000\001\001\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\004\000\b\000\000\000\000\000\000\000 \b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000@@\000\b\020\016\000\000\000\000@\000\000\000\000\000 \000\001\000\000\000@\000\004\000\000\000\000\000\000\000\000\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\" \005P\000\129B$\028\b\006\130\000-\128\128\152\012@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\016\000\000\000\000\000\000\000@\000\000 \004\004\000\000\129A\000\000\000\000\004\000\000\000\000\000\002\000\000\016\000\000\004\000\000@\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004v\148B-\021\r\248\152\249\000[\001\244\005\000\001\140\128\142\210\136E\162\161\191\019\031 \011`>\128\160\0001\144\000\202A\b\016\000\018\130b\228\000\238\000\192\000\000\004\016\000\000\000\000\000\000\000\000\000\128\000\000\000\000\128\000F\b \007\000\0008\005\000\014.\b\000\000(\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\002\000\000\000\000\001\029\165\000\139EC~&>@\022\192}\001@\000c \001\148\128\0160\000%\004\205\200\001\220\001\144\000\000\b \0002\144\002\004\000\004\160\153\185\000;\1282\000\000\001\004\000\006R\000@\128\000\148\019\023 \007p\006@\000\000 \128\000\000\000\000\000\000\000\000\004\000\000\000\000\004\000\002 A\002;J\001\022\138\134\252L|\128-\128\250\002\128\000\198@Gi@\"\209P\223\137\143\144\005\176\031@P\000\024\200\000d \004D\n\001A3\194\0006\000`\n\000\003\024\000\012\132\000\136\001@(&x@\006\192\012\001@\000c\000\001\144\128\017\000(\005\004\199\b\000\216\001\128(\000\012`\n\137I\220\030\160~\011\007\002\255\164\184Kz\182\254s<\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\025\b\001\016\002\128PLp\128\r\128\024\002\128\000\198\000\171\189\157\235\238W\234\185\254\191\251\251\135\183\251o\255\247\192\000\000\000\000\000\001\000\001@\000\000\000\000\000\000\000\000\001\029\165\000\139EC~&>@\022\192}\001@\000c \001\148\128\0160\000%\004\205\200\001\220\001\144\000\000\b\160\0002\144\002\004\000\004\160\153\185\000;\1282\000\000\001\020\000\006R\000@\128\000\148\019\023 \007p\006@\000\000\"\128\000\000\003`\000\000\000\000\000\000\000\000\000\000\000\003\001@\002;J-\022\138\134\252L|\128-\128\250\002\128 \230@Gi@\"\209P\223\137\143\144\005\176\031@P\000\024\200\000e \004\012\000\tA3r\000w\000d\000\000\002(\000\012\164\000\129\000\001(&n@\014\224\012\128\000\000E\000\001\148\128\016 \000%\004\197\200\001\220\001\144\000\000\b\160\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000*\239gz\251\149\250\174\127\175\254\254\225\237\254\219\255\252\240\000\000\000\000\000\000P\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000H\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\025\b\001\016\002\128PLp\128\r\128\024\002\128\000\198\000\171\189\157\235\238W\234\185\254\191\251\251\135\183\251o\255\247\192\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\020\000\020\000\000\000\000\000\000\000\000\000\017\218P\b\180T7\226c\228\001l\007\208\020\000\0062\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\021\018\147\184=@\252\022\014\005\255Ap\150\240-\252\230y\029\165\000\139EC~&>@\022\192}\001@\000c \000\000\000\000\000\000\005\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\128\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000d \004@\n\001A1\194\0006\000`\n\000\003\024\002\162Rw\007\168\031\130\193\192\191\233.\018\222\173\191\156\207\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\025H\001\003\000\002PL\220\128\029\192\025\000\000\000\138\000\003)\000 @\000J\t\155\144\003\184\003 \000\000\017@\000e \004\b\000\tA1r\000w\000d\000\000\002(\002\162Rw\007\168\031\130\193\192\191\232.\018\222\005\191\156\207\001\148\128\016 \000%\004\197\200\001\220\001\144\000\000\b \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001W{;\215\220\175\213s\253\127\247\247\015o\246\223\255\231\170%'pz\129\248,\028\011\254\146\225-\234\219\249\204\240\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\bGi@\"\209P\223\137\143\144\005\176\031@P\000\024\200\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000TJN\224\245\003\240X8\023\253\005\194[\192\183\243\153\228v\148\002-\021\r\248\152\249\000[\001\244\005\000\001\140\128\006R\000@\192\000\148\0197 \007p\006@\000\000\"\128\000\202@\b\016\000\018\130f\228\000\238\000\200\000\000\004P\000\025H\001\002\000\002PL\\\128\029\192\025\000\000\000\138\000\168\148\157\193\234\007\224\176p/\250\011\132\183\129o\2313\213\018\147\184=@\252\022\014\005\255Ap\150\240-\252\230y\029\165\000\139EC~&>@\022\192}\001@\000c \001\148\128\0160\000%\004\205\200\001\220\001\144\000\000\b\160\0002\144\002\004\000\004\160\153\185\000;\1282\000\000\001\020\000\006R\000@\128\000\148\019\023 \007p\006@\000\000\"\128*%'pz\129\248,\028\011\254\130\225-\224[\249\204\245D\164\238\015P?\005\131\129\127\208\\%\188\011\1279\158\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\174\246w\175\185_\170\231\250\255\239\238\030\223\237\191\255\207TJN\224\245\003\240X8\023\253%\194[\213\183\243\153\228v\148\002-\021\r\248\152\249\000[\001\244\005\000\001\140\128\006R\000@\192\000\148\0197 \007p\006@\000\000\"\128\000\202@\b\016\000\018\130f\228\000\238\000\200\000\000\004P\000\025H\001\002\000\002PL\\\128\029\192\025\000\000\000\138\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\191\247w\143\237_\254\231\254\255\254\238\127\223E\191\255\239|\251\017\002\005~\027@\000\134\014\000\030\209\192\176\020\006\132v\148\002-\021\r\248\152\249\000[\001\244\005\000\001\140\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002;J\001\022\138\134\252L|\128-\128\250\002\128\000\198@\003)\000 `\000J\t\155\144\003\184\003 \000\000\017@\000e \004\b\000\tA3r\000w\000d\000\000\002(\000\012\164\000\129\000\001(&.@\014\224\012\128\000\000E\000TJN\224\245\003\240X8\023\253\005\194[\192\183\243\153\234\137I\220\030\160~\011\007\002\255\160\184Kx\022\254s<\142\210\128E\162\161\191\019\031 \011`>\128\160\0001\144\000\202@\b\024\000\018\130f\228\000\238\000\200\000\000\004P\000\025H\001\002\000\002PL\220\128\029\192\025\000\000\000\138\000\003)\000 @\000J\t\139\144\003\184\003 \000\000\017@\021\018\147\184=@\252\022\014\005\255Ap\150\240-\252\230z\162Rw\007\168\031\130\193\192\191\232.\018\222\005\191\156\207#\180\160\017h\168o\196\199\200\002\216\015\160(\000\012d\0002\144\002\006\000\004\160\153\185\000;\1282\000\000\001\020\000\006R\000@\128\000\148\0197 \007p\006@\000\000\"\128\000\202@\b\016\000\018\130b\228\000\238\000\200\000\000\004P\005D\164\238\015P?\005\131\129\127\208\\%\188\011\1279\158\168\148\157\193\234\007\224\176p/\250\011\132\183\129o\2313\200\237(\004Z*\027\2411\242\000\182\003\232\n\000\003\025\000\012\164\000\129\128\001(&n@\014\224\012\128\000\000E\000\001\148\128\016 \000%\004\205\200\001\220\001\144\000\000\b\160\0002\144\002\004\000\004\160\152\185\000;\1282\000\000\001\020\001Q);\131\212\015\193`\224_\244\023\to\002\223\206g\170%'pz\129\248,\028\011\254\130\225-\224[\249\204\242;J\001\022\138\134\252L|\128-\128\250\002\128\000\198@\003)\000 `\000J\t\155\144\003\184\003 \000\000\017@\000e \004\b\000\tA3r\000w\000d\000\000\002(\000\012\164\000\129\000\001(&.@\014\224\012\128\000\000E\000TJN\224\245\003\240X8\023\253\005\194[\192\183\243\153\234\137I\220\030\160~\011\007\002\255\160\184Kx\022\254s<\142\210\128E\162\161\191\019\031 \011`>\128\160\0001\144\000\202@\b\024\000\018\130f\228\000\238\000\200\000\000\004P\000\025H\001\002\000\002PL\220\128\029\192\025\000\000\000\138\000\003)\000 @\000J\t\139\144\003\184\003 \000\000\017@\021\018\147\184=@\252\022\014\005\255Ap\150\240-\252\230z\162Rw\007\168\031\130\193\192\191\232.\018\222\005\191\156\207#\180\160\017h\168o\196\199\200\002\216\015\160(\000\012d\0002\144\002\006\000\004\160\153\185\000;\1282\000\000\001\020\000\006R\000@\128\000\148\0197 \007p\006@\000\000\"\128\000\202@\b\016\000\018\130b\228\000\238\000\200\000\000\004P\005D\164\238\015P?\005\131\129\127\208\\%\188\011\1279\158\168\148\157\193\234\007\224\176p/\250\011\132\183\129o\2313\200\237(\004Z*\027\2411\242\000\182\003\232\n\000\003\025\000\012\164\000\129\128\001(&n@\014\224\012\128\000\000E\000\001\148\128\016 \000%\004\205\200\001\220\001\144\000\000\b\160\0002\144\002\004\000\004\160\152\185\000;\1282\000\000\001\020\001Q);\131\212\015\193`\224_\244\023\to\002\223\206g\170%'pz\129\248,\028\011\254\130\225-\224[\249\204\242;J\001\022\138\134\252L|\128-\128\250\002\128\000\198@\003)\000 `\000J\t\155\144\003\184\003 \000\000\017@\000e \004\b\000\tA3r\000w\000d\000\000\002(\000\012\164\000\129\000\001(&.@\014\224\012\128\000\000E\000TJN\224\245\003\240X8\023\253\005\194[\192\183\243\153\234\137I\220\030\160~\011\007\002\255\160\184Kx\022\254s<\142\210\128E\162\161\191\019\031 \011`>\128\160\0001\144\000\202@\b\024\000\018\130f\228\000\238\000\200\000\000\004P\000\025H\001\002\000\002PL\220\128\029\192\025\000\000\000\138\000\003)\000 @\000J\t\139\144\003\184\003 \000\000\017@\021\018\147\184=@\252\022\014\005\255Ap\150\240-\252\230z\162Rw\007\168\031\130\193\192\191\232.\018\222\005\191\156\207#\180\160\017h\168o\196\199\200\002\216\015\160(\000\012d\0002\144\002\006\000\004\160\153\185\000;\1282\000\000\001\020\000\006R\000@\128\000\148\0197 \007p\006@\000\000\"\128\000\202@\b\016\000\018\130b\228\000\238\000\200\000\000\004P\005D\164\238\015P?\005\131\129\127\208\\%\188\011\1279\158\168\148\157\193\234\007\224\176p/\250\011\132\183\129o\2313\200\237(\004Z*\027\2411\242\000\182\003\232\n\000\003\025\000\012\164\000\129\128\001(&n@\014\224\012\128\000\000E\000\001\148\128\016 \000%\004\205\200\001\220\001\144\000\000\b\160\0002\144\002\004\000\004\160\152\185\000;\1282\000\000\001\020\001Q);\131\212\015\193`\224_\244\023\to\002\223\206g\170%'pz\129\248,\028\011\254\130\225-\224[\249\204\242;J\001\022\138\134\252L|\128-\128\250\002\128\000\198@\003)\000 `\000J\t\155\144\003\184\003 \000\000\017@\000e \004\b\000\tA3r\000w\000d\000\000\002(\000\012\164\000\129\000\001(&.@\014\224\012\128\000\000E\000TJN\224\245\003\240X8\023\253\005\194[\192\183\243\153\234\137I\220\030\160~\011\007\002\255\160\184Kx\022\254s<\142\210\128E\162\161\191\019\031 \011`>\128\160\0001\144\000\202@\b\024\000\018\130f\228\000\238\000\200\000\000\004P\000\025H\001\002\000\002PL\220\128\029\192\025\000\000\000\138\000\003)\000 @\000J\t\139\144\003\184\003 \000\000\017@\021\018\147\184=@\252\022\014\005\255Ap\150\240-\252\230z\162Rw\007\168\031\130\193\192\191\232.\018\222\005\191\156\207#\180\160\017h\168o\196\199\200\002\216\015\160(\000\012d\0002\144\002\006\000\004\160\153\185\000;\1282\000\000\001\020\000\006R\000@\128\000\148\0197 \007p\006@\000\000\"\128\000\202@\b\016\000\018\130b\228\000\238\000\200\000\000\004P\005D\164\238\015P?\005\131\129\127\208\\%\188\011\1279\158\168\148\157\193\234\007\224\176p/\250\011\132\183\129o\2313\200\237(\004Z*\027\2411\242\000\182\003\232\n\000\003\025\000\012\164\000\129\128\001(&n@\014\224\012\128\000\000E\000\001\148\128\016 \000%\004\205\200\001\220\001\144\000\000\b\160\0002\144\002\004\000\004\160\152\185\000;\1282\000\000\001\020\001Q);\131\212\015\193`\224_\244\023\to\002\223\206g\170%'pz\129\248,\028\011\254\130\225-\224[\249\204\242;J\001\022\138\134\252L|\128-\128\250\002\128\000\198@\003)\000 `\000J\t\155\144\003\184\003 \000\000\017@\000e \004\b\000\tA3r\000w\000d\000\000\002(\000\012\164\000\129\000\001(&.@\014\224\012\128\000\000E\000TJN\224\245\003\240X8\023\253\005\194[\192\183\243\153\234\137I\220\030\160~\011\007\002\255\160\184Kx\022\254s<\142\210\128E\162\161\191\019\031 \011`>\128\160\0001\144\000\202@\b\024\000\018\130f\228\000\238\000\200\000\000\004P\000\025H\001\002\000\002PL\220\128\029\192\025\000\000\000\138\000\003)\000 @\000J\t\139\144\003\184\003 \000\000\017@\021\018\147\184=@\252\022\014\005\255Ap\150\240-\252\230z\162Rw\007\168\031\130\193\192\191\232.\018\222\005\191\156\207#\180\160\017h\168o\196\199\200\002\216\015\160(\000\012d\0002\144\002\006\000\004\160\153\185\000;\1282\000\000\001\020\000\006R\000@\128\000\148\0197 \007p\006@\000\000\"\128\000\202@\b\016\000\018\130b\228\000\238\000\200\000\000\004P\005D\164\238\015P?\005\131\129\127\208\\%\188\011\1279\158\168\148\157\193\234\007\224\176p/\250\011\132\183\129o\2313\200\237(\004Z*\027\2411\242\000\182\003\232\n\000\003\025\000\012\164\000\129\128\001(&n@\014\224\012\128\000\000E\000\001\148\128\016 \000%\004\205\200\001\220\001\144\000\000\b\160\0002\144\002\004\000\004\160\152\185\000;\1282\000\000\001\020\001Q);\131\212\015\193`\224_\244\023\to\002\223\206g\170%'pz\129\248,\028\011\254\130\225-\224[\249\204\242;J\001\022\138\134\252L|\128-\128\250\002\128\000\198@\003)\000 `\000J\t\155\144\003\184\003 \000\000\017@\000e \004\b\000\tA3r\000w\000d\000\000\002(\000\012\164\000\129\000\001(&.@\014\224\012\128\000\000E\000TJN\224\245\003\240X8\023\253\005\194[\192\183\243\153\234\137I\220\030\160~\011\007\002\255\160\184Kx\022\254s<\142\210\128E\162\161\191\019\031 \011`>\128\160\0001\144\000\000\000\000\000\000\002\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002@\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0002\016\002 \005\000\160\152\225\000\027\0000\005\000\001\140\001Q);\131\212\015\193`\224_\244\151\toV\223\206g\128\202@\b\024\000\018\130f\228\000\238\000\200\000\000\004P\000\025H\001\002\000\002PL\220\128\029\192\025\000\000\000\138\000\003)\000 @\000J\t\139\144\003\184\003 \000\000\017@\021\018\147\184=@\252\022\014\005\255Ap\150\240-\252\230z\162Rw\007\168\031\130\193\192\191\232.\018\222\005\191\156\207#\180\160\017h\168o\196\199\200\002\216\015\160(\000\012d\0002\144\002\006\000\004\160\153\185\000;\1282\000\000\001\020\000\006R\000@\128\000\148\0197 \007p\006@\000\000\"\128\000\202@\b\016\000\018\130b\228\000\238\000\200\000\000\004P\005D\164\238\015P?\005\131\129\127\208\\%\188\011\1279\158\168\148\157\193\234\007\224\176p/\250\011\132\183\129o\2313\192\229 \004\b \t\1933r\000w\000`\000\000\002\b\000\028\164\000\129\004\0018&.@\014\224\012\000\000\000A\000\001\148\194\017\244\003e\148\197\201\241\252A\152\016\000\201y`\000\000@\000\000\000\000\001\000\000\000\000\000\000\000\140\017@\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\202@\n\017\000\018\130b\164\000\238\000\196\000\000\004\016\002;J\001\022\138\134\252L|\128-\128\250\002\128\000\198@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\t\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\017\218P\b\180T7\226c\228\001l\007\208\020\000\0062\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\212\136\180#\002%L\253X\r\220\001\219\000\005x\170\128x\000\003\128P\000\226\224\128\000\002\128\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\0008\000\001\192(\000qp@\000\001@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\016\000\000\000 \b\237(\004Z*\027\2411\242\000\182\003\232\n\000\003\025\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\004v\148\002-\021\r\248\152\249\000[\001\244\005\000\001\140\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\002\000\000\000\000\000\000\000\000\128\000\000\0008\000\001\192(\000qp@\000\001@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\016\000\000\000 \b\237(\004Z*\027\2411\242\000\182\003\232\n\000\003\025\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\004v\148\002-\021\r\248\152\249\000[\001\244\005\000\001\140\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\b\002;J\001\022\138\134\252L|\128-\128\250\002\128\000\198@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\001\029\165\000\139EC~&>@\022\192}\001@\000c \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\017\218P\b\180T7\226c\228\001l\007\208\020\000\0062\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\016\000\b\193\020\000\224\000\007\000\160\001\197\193\000\000\005\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000@\000\000\000\128#\180\160\017h\168o\196\199\200\002\216\015\160(\000\012d\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\017\218P\b\180T7\226c\228\001l\007\208\020\000\0062\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\b\237(\004Z*\027\2411\242\000\182\003\232\n\000\003\025\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\b\000\004@\130\004v\148\002-\021\r\248\152\249\000[\001\244\005\000\001\140\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\202@\b\016\000\018\130b\228\000\238\000\192\001\000\004\016\000\000\000\000\000\000\000P\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\028\000\000\224\020\0008\184 \000\000\160\000\000\000\000\000\000\000\000\002\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\200@\b\016\000\018\130b\132\000\238\000\192\000\000\004\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\002\000\001\016 \128\012\164\000\129\000\001(&.@\014\224\012\128\000\000A\000\000\000\000\000\000\000\000\000\b\000\000\000\000\b\000\004@\130\000\000\000\000\000\000\000\160\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\128\000\000\000\000\000\000\000\000\000\000\000\025H\001B \002PLT\128\029\192\024\128\000\018\130\128\007\000\0008\005\000\014.\b\000\000(\000\000\000\000\000\000\000\000\000\002\000\000\001\000\000\000\000\000\000\000\000@\000\000\000\028\000\000\224\020\0008\184 \000\000\160\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\b\000\000\000\016\004v\148\002-\021\r\248\152\249\000[\001\244\005\000\001\140\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\002;J\001\022\138\134\252L|\128-\128\250\002\128\000\198@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\004\001\029\165\000\139EC~&>@\022\192}\001@\000c \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\142\210\128E\162\161\191\019\031 \011`>\128\160\0001\144\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\b\237(\004Z*\027\2411\242\000\182\003\232\n\000\003\025\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\136\001\020\000 @\t\006\002\001\160\128\n`\000\002\000\016\017\000\"\128\004\bA \192X4\016\001L\000@@B\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\021\018\147\184=@\252\022\014\005\255Ap\150\240-\252\230y\029\165\000\139EC~&>@\022\192}\001@\000c \000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\142\210\128E\162\161\191\019\031 \011`>\128\160\0001\144\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\"\000\000\000\000\000\000\000\000\000\001\000\001@\000\000\000\000\000\000\000\000\001\029\165\000\139EC~&>@\022\192}\001@\000c \000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\027\003\208\005\128@ \007\192\001\000 \000\027\012a\145\218Qh\180T7\226c\228\001l\007\208\020\001\0072\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000Gi@\"\209P\223\137\143\144\005\176\031@P\000\024\200\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000#\180\160\017h\168o\196\199\200\002\216\015\160(\000\012d\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\025\b\001\016\002\128PLp\128\r\128\024\002\128\000\198\000\171\189\157\235\238W\234\185\254\191\251\251\135\183\251o\255\247\192\000\000\000\000\000\001\000\001@\000\000\000\000\000\000\000\000\001\029\165\000\139EC~&>@\022\192}\001@\000c \000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\187\217\222\190\229~\175\159\235\255\191\184{\127\182\255\255<\142\210\128E\162\161\191\019\031 \011`>\128\160\0001\144\000\202@\b\024\000\018\130f\228\000\238\000\200\000\000\004P\000\025H\001\002\000\002PL\220\128\029\192\025\000\000\000\138\000\003)\000 @\000J\t\139\144\003\184\003 \000\000\017@\021\018\147\184=@\252\022\014\005\255Ap\150\240-\252\230z\162Rw\007\168\031\130\193\192\191\232.\018\222\005\191\156\207#\180\160\017h\168o\196\199\200\002\216\015\160(\000\012d\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001W{;\215\220\175\213\243\253\127\247\247\015o\246\223\255\231\145\218P\b\180T7\226c\228\001l\007\208\020\000\0062\000\025H\001\003\000\002PL\220\128\029\192\025\000\000\000\138\000\003)\000 @\000J\t\155\144\003\184\003 \000\000\017@\000e \004\b\000\tA1r\000w\000d\000\000\002(\002\162Rw\007\168\031\130\193\192\191\232.\018\222\005\191\156\207TJN\224\245\003\240X8\023\253\005\194[\192\183\243\153\228v\148\002-\021\r\248\152\249\000[\001\244\005\000\001\140\128\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000*\239gz\251\149\250\190\127\175\254\254\225\237\254\219\255\252\242;J\001\022\138\134\252L|\128-\128\250\002\128\000\198@\003)\000 `\000J\t\155\144\003\184\003 \000\000\017@\000e \004\b\000\tA3r\000w\000d\000\000\002(\000\012\164\000\129\000\001(&.@\014\224\012\128\000\000E\000TJN\224\245\003\240X8\023\253\005\194[\192\183\243\153\234\137I\220\030\160~\011\007\002\255\160\184Kx\022\254s<\002\000\000\000\000\000\020\000\020\000\000\000\000\000\000\000\000\000\017\218P\b\180T7\226c\228\001l\007\208\020\000\0062\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\171\189\157\235\238W\234\249\254\191\251\251\135\183\251o\255\243\200\237(\004Z*\027\2411\242\000\182\003\232\n\000\003\025\000\012\164\000\129\128\001(&n@\014\224\012\128\000\000E\000\001\148\128\016 \000%\004\205\200\001\220\001\144\000\000\b\160\0002\144\002\004\000\004\160\152\185\000;\1282\000\000\001\020\001Q);\131\212\015\193`\224_\244\023\to\002\223\206g\170%'pz\129\248,\028\011\254\130\225-\224[\249\204\242;J\001\022\138\134\252L|\128-\128\250\002\128\000\198@\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\021w\179\189}\202\253_?\215\255\127p\246\255m\255\254y\029\165\000\139EC~&>@\022\192}\001@\000c \001\148\128\0160\000%\004\205\200\001\220\001\144\000\000\b\160\0002\144\002\004\000\004\160\153\185\000;\1282\000\000\001\020\000\006R\000@\128\000\148\019\023 \007p\006@\000\000\"\128*%'pz\129\248,\028\011\254\130\225-\224[\249\204\245D\164\238\015P?\005\131\129\127\208\\%\188\011\1279\158Gi@\"\209P\223\137\143\144\005\176\031@P\000\024\200\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\174\246w\175\185_\171\231\250\255\239\238\030\223\237\191\255\207#\180\160\017h\168o\196\199\200\002\216\015\160(\000\012d\0002\144\002\006\000\004\160\153\185\000;\1282\000\000\001\020\000\006R\000@\128\000\148\0197 \007p\006@\000\000\"\128\000\202@\b\016\000\018\130b\228\000\238\000\200\000\000\004P\005D\164\238\015P?\005\131\129\127\208\\%\188\011\1279\158\168\148\157\193\234\007\224\176p/\250\011\132\183\129o\2313\192\000\000\000\000\000\000\000\000\000\000\000\000\000\004@\000\000\000\000\000\000\000\000\000 \000(\000\000\000\000\000\000\000\000\000#\180\160\017h\168o\196\199\200\002\216\015\160(\000\012d\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001W{;\215\220\175\213\243\253\127\247\247\015o\246\223\255\231\145\218P\b\180T7\226c\228\001l\007\208\020\000\0062\000\025H\001\003\000\002PL\220\128\029\192\025\000\000\000\138\000\003)\000 @\000J\t\155\144\003\184\003 \000\000\017@\000e \004\b\000\tA1r\000w\000d\000\000\002(\002\162Rw\007\168\031\130\193\192\191\232.\018\222\005\191\156\207TJN\224\245\003\240X8\023\253\005\194[\192\183\243\153\228v\148\002-\021\r\248\152\249\000[\001\244\005\000\001\140\128\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000*\239gz\251\149\250\190\127\175\254\254\225\237\254\219\255\252\242;J\001\022\138\134\252L|\128-\128\250\002\128\000\198@\003)\000 `\000J\t\155\144\003\184\003 \000\000\017@\000e \004\b\000\tA3r\000w\000d\000\000\002(\000\012\164\000\129\000\001(&.@\014\224\012\128\000\000E\000TJN\224\245\003\240X8\023\253\005\194[\192\183\243\153\234\137I\220\030\160~\011\007\002\255\160\184Kx\022\254s<\142\210\128E\162\161\191\019\031 \011`>\128\160\0001\144\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\005]\236\239_r\191W\207\245\255\223\220=\191\219\127\255\158Gi@\"\209P\223\137\143\144\005\176\031@P\000\024\200\000e \004\012\000\tA3r\000w\000d\000\000\002(\000\012\164\000\129\000\001(&n@\014\224\012\128\000\000E\000\001\148\128\016 \000%\004\197\200\001\220\001\144\000\000\b\160\n\137I\220\030\160~\011\007\002\255\160\184Kx\022\254s=Q);\131\212\015\193`\224_\244\023\to\002\223\206g\170\239gz\251\149\250\190\127\175\254\254\225\237\254\219\255\252\242;J\001\022\138\134\252L|\128-\128\250\002\128\000\198@\003)\000 `\000J\t\155\144\003\184\003 \000\000\017@\000e \004\b\000\tA3r\000w\000d\000\000\002(\000\012\164\000\129\000\001(&.@\014\224\012\128\000\000E\000TJN\224\245\003\240X8\023\253\005\194[\192\183\243\153\234\137I\220\030\160~\011\007\002\255\160\184Kx\022\254s=W{;\215\220\175\213s\253\127\247\247\015o\246\223\255\239\170\239gz\251\149\250\174\127\175\254\238\225\237\244[\255\252\240\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\142\210\128E\162\161\191\019\031 \011`>\128\160\0001\144\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000Gi@\"\209P\223\137\143\144\005\176\031@P\000\024\200\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002;J\001\022\138\134\252L|\128-\128\250\002\128\000\198@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\b\237(\004Z*\027\2411\242\000\182\003\232\n\000\003\025\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000 \000\017\002\b\017\218P\b\180T7\226c\228\001l\007\208\020\000\0062\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\002\b\237(\004Z*\027\2411\242\000\182\003\232\n\000\003\025\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\148\128\016 \000%\004\197\200\001\220\001\128\000\000\b \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\200A\b\128\020\002\130c\132\000l\000\192\020\000\0060\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\237(\004Z*\027\2411\242\000\182\003\232\n\000\131\025\000\012\164\000\129\128\001(&n@\014\224\012\128\000\000E\000\001\148\128\016 \000%\004\205\200\001\220\001\144\000\000\b\160\0002\144\002\004\000\004\160\152\185\000;\1282\000\000\001\020\000@\000\016\000\000\000\000\000\000\000\000\000\b\000\000\024\002\000\017\218P\b\180T7\226c\228\001l\007\208\020\000\0062\000\025H\001\003\000\002PL\220\128\029\192\025\000\000\000\138\000\003)\000 @\000J\t\155\144\003\184\003 \000\000\017@\000e \004\b\000\tA1r\000w\000d\000\000\002(\000\128\000\004\000\000\000\000\000\000\000\000\000\016\000\0000\020\000\016\000@\128\244\001`\016\b\001\240\000B\b\000\006\195\024`r\144\002\004\016\004\224\153\185\000;\1282\000\000\001\004\000@\000\002\000\000\000\000\000\000\000\000\000\b\000\000\b\b\002\001\202@\b\016@\019\130f\228\000\238\000\200\000\000\004\016\0009H\001\002\b\002pL\\\128\029\192\025\000\000\000\130\000\003)\000 @\000J\t\139\144\003\184\003 \000\000\016@\000\000\000\000\000\000\000\000\002\000\001\000\000\000\000\001\016 \129\029\165\000\139EC~&>@\022\192}\001@\000c \001\148\128\0160\000%\004\205\200\001\220\001\144\000\000\b\160\0002\144\002\004\000\004\160\153\185\000;\1282\000\000\001\020\000\006R\000@\128\000\148\019\023 \007p\006@\000\000\"\128\b\000\000@\000\000\000\000\000\000\000\000\001\000\000\003\001@A\000\004\b\015@\022\001\000\128\031\000\004 \128\000l1\142\003)\000 @\000J\t\139\144\003\184\003 \000\000\016@\000\000\000\000\000\000\000\000\002\000\001\000\000\000\000\001\016 \129\029\165\000\139EC~&>@\022\192}\001@\000c \001\148\128\0160\000%\004\205\200\001\220\001\144\000\000\b\160\0002\144\002\004\000\004\160\153\185\000;\1282\000\000\001\020\000\006R\000@\128\000\148\019\023 \007p\006@\000\000\"\128\b\000\000@\000\000\000\000\000\000\000\000\001\000\000\003\001@A\000\004\b\015@\022\001\000\128\031\000\004 \128\000l1\142\003)\000 @\000J\t\139\144\003\184\003 \000\000\016@\000\000\000\000\000\000\000\000\002\000\001\000\000\000\000\001\016 \129\029\165\000\139EC~&>@\022\192}\001@\000c \001\148\128\0160\000%\004\205\200\001\220\001\144\000\000\b\160\0002\144\002\004\000\004\160\153\185\000;\1282\000\000\001\020\000\006R\000@\128\000\148\019\023 \007p\006@\000\000\"\128\b\000\000@\000\000\000\000\000\000\000\000\001\000\000\003\001@A\000\004\b\015@\022\001\000\128\031\000\004 \128\000l1\142\000\000\000\000\000\000\000\000\016\000\b\000\000\016\000\b\129\004\b\237(\004Z*\027\2411\242\000\182\003\232\n\000\003\025\000\012\164\000\129\128\001(&n@\014\224\012\128\000\000E\000\001\148\128\016 \000%\004\205\200\001\220\001\144\000\000\b\160\0002\144\002\004\000\004\160\152\185\000;\1282\000\000\001\020\000@\000\002\000\000\000\000\000\000\000\000\000\b\000\000\024\n\002\b\000 @z\000\176\b\004\000\248\000!\004\000\003a\140r;J\001\022\138\134\252L|\128-\128\250\002\128\000\198@\003)\000 `\000J\t\155\144\003\184\003 \000\000\017@\000e \004\b\000\tA3r\000w\000d\000\000\002(\000\012\164\000\129\000\001(&.@\014\224\012\128\000\000E\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000@\004\000\128\004v\148\002-\021\r\248\152\249\000[\001\244\005\000\001\140\128\006R\000@\192\000\148\0197 \007p\006@\000\000\"\128\000\202@\b\016\000\018\130f\228\000\238\000\200\000\000\004P\000\025H\001\002\000\002PL\\\128\029\192\025\000\000\000\138\000 \000\001\000\000\000\000\000\000\000\000\000\004\000\000\012\005\001\004\000\016 =\000X\004\002\000|\000\016\130\000\001\176\1988\000B\000\007\160\011\000\128@\015\128\002\000B\000&\b\195#\180\160\017h\168o\196\199\200\002\216\015\160(\000\012d\0002\144\002\006\000\004\160\153\185\000;\1282\000\000\001\020\000\006R\000@\128\000\148\0197 \007p\006@\000\000\"\128\000\202@\b\016\000\018\130b\228\000\238\000\200\000\000\004P\001\000\000\b\000\000\000\000\000\000\000\000\000 \000\000`(\b \000\129\001\232\002\192 \016\003\224\000\132\016\000\r\1341\192\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000@\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000D\000\244\001`\016\b\001\240\000B\b\000\006\193\024b\000\000\000\000\000\000\000\000\000\000\000\000@\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\218P\b\180T7\226c\228\001l\007\208\020\000\0072\000\025H\001\003\000\002PL\220\128\029\192\025\000\000\000\138\000\003)\000 @\000J\t\155\144\003\184\003 \000\000\017@\000e \004\b\000\tA1r\000w\000d\000\000\002(\000\128\000 \000\000\000\000\000\000\000\000\000\016\000\000 \020\000\016\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\136\001\232\002\192 \016\003\224\000\132\016\000\t\1340\196\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000#\180\160\145h\168o\196\199\200\002\216\015\160(\000\012d\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006R\000@\192\000\148\0197 \007p\006@\000\000\"\128\000\202@\b\016\000\018\130f\228\000\238\000\200\000\000\004P\000\025H\001\002\000\002PL\\\128\029\192\025\000\000\000\138\000 \000\t\000\000\000\000\000\000\000\000\000\004\000\000\b\001\000\004\000\000 \000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\001\018\003\208\005\128@ \007\192\001\b \000\019\004a\136\000\000@\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\144\128\017\000(\005\004\199\b\000\216\001\128(\000\012`\b\000\000\000\000\000\000\000\000\000\000$\128\000\002\160\000\000\000\002\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000D\000\000\000\000\000\000\000\000\000\000\128\000\018\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\016\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000@\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\002H\000\000*\000\000\000\000 \000\000\000\000\001@1\192\000\000\000\000\000\000\000\000\002\000\000\"\000\000\000\000\000\000\000\t \000@\168\t\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\137I\220\030\160~\011\007\002\255\164\184Kz\182\254s<\006R\000@\192\000\148\0197 \007p\006@\000\000\"\128\000\202@\b\016\000\018\130f\228\000\238\000\200\000\000\004P\000\025H\001\002\000\002PL\\\128\029\192\025\000\000\000\138\000\168\148\157\193\234\007\224\176p/\250\011\132\183\129o\2313\213\018\147\184=@\252\022\014\005\255Ap\150\240-\252\230x\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\142\210\128E\162\161\191\019\031 \011`>\128\160\0001\144\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002;J\001\022\138\134\252L|\128-\128\250\002\144\000\198@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000TJN\224\245\003\240X8\023\253\005\194[\192\183\243\153\224\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\142\210\128E\162\161\191\019\031 \011`>\128\160\0001\144\000\202@\b\024\000\018\130f\228\000\238\000\200\000\000\004P\000\025H\001\002\000\002PL\220\128\029\192\025\000\000\000\138\000\003)\000 @\000J\t\139\144\003\184\003 \000\000\017@\021\018\147\184=@\252\022\014\005\255Ap\150\240-\252\230y\029\165\000\139EC~&>@\022\192}\001@\000c \001\148\128\0160\000%\004\205\200\001\220\001\144\000\000\b\160\0002\144\002\004\000\004\160\153\185\000;\1282\000\000\001\020\000\006R\000@\128\000\148\019\023 \007p\006@\000\000\"\128*%'pz\129\248,\028\011\254\130\225-\224[\249\204\245D\164\238\015P?\005\131\129\127\208\\%\188\011\1279\158\168\148\157\193\234\007\224\176p/\250\011\132\183\129o\2313\200\237(\004Z*\027\2411\242\000\182\003\232\n\000\003\025\000\012\164\000\129\128\001(&n@\014\224\012\128\000\000E\000\001\148\128\016 \000%\004\205\200\001\220\001\144\000\000\b\160\0002\144\002\004\000\004\160\152\185\000;\1282\000\000\001\020\001Q);\131\212\015\193`\224_\244\023\to\002\223\206g\170%'pz\129\248,\028\011\254\130\225-\224[\249\204\240\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t \000\000\168 \000\000#\180\160\017h\168o\196\199\200\002\216\015\160(\000\012d\000\000\000\000\000\000\000\160\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\144\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012\132\000\136\001@(&8@\006\192\012\001@\000c\000TJN\224\245\003\240X8\023\253%\194[\213\183\243\153\2242\144\002\006\000\004\160\153\185\000;\1282\000\000\001\020\000\006R\000@\128\000\148\0197 \007p\006@\000\000\"\128\000\202@\b\016\000\018\130b\228\000\238\000\200\000\000\004P\005D\164\238\015P?\005\131\129\127\208\\%\188\011\1279\158\168\148\157\193\234\007\224\176p/\250\011\132\183\129o\2313\192e \004\012\000\tA3r\000w\000d\000\000\002(\000\012\164\000\129\000\001(&n@\014\224\012\128\000\000E\000\001\148\128\016 \000%\004\197\200\001\220\001\144\000\000\b\160\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\128\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000z\000\176\b\004\000\248\000`\004\000\002`\1400\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\171\189\157\235\238W\234\185\254\191\251\251\135\183\251o\255\247\192\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000TJN\224\245\003\240X8\023\253%\194[\213\183\243\153\2242\144\002\006\000\004\160\153\185\000;\1282\000\000\001\020\000\006R\000@\128\000\148\0197 \007p\006@\000\000\"\128\000\202@\b\016\000\018\130b\228\000\238\000\200\000\000\004P\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\b\000\000\000\132\001\232\002\192 \016\003\224\000\128\016\000\t\1300\192\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\007\160\011\000\128@\015\128\002\000@\000&\b\195\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006R\000@\192\000\148\0197 \007p\006@\000\000\"\128\000\202@\b\016\000\018\130f\228\000\238\000\200\000\000\004P\000\025H\001\002\000\002PL\\\128\029\192\025\000\000\000\138\000\000\000\b\128\000\000\000\000\000\000\000\002\000\000\000\b\001\000\000\000\017\016=\000X\004\002\000|\000P\002\000\0010F\024\000\000 \000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003)\000 `\000J\t\155\144\003\184\003 \000\000\017@\000e \004\b\000\tA3r\000w\000d\000\000\002(\000\012\164\000\129\000\001(&.@\014\224\012\128\000\000E\000\016\000\004\128\000\000\000\000\000\000\000\000\002\000\000\004\000\128\002\000\000\016\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\137\001\232\002\192 \016\003\224\000\132\016\000\t\1300\196\000\000 \000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\148\128\0160\000%\004\205\200\001\220\001\144\000\000\b\160\0002\144\002\004\000\004\160\153\185\000;\1282\000\000\001\020\000\006R\000@\128\000\148\019\023 \007p\006@\000\000\"\128\b\000\002\000\000\000\000\000\000\000\000\000\001\000\000\002\001@\001\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\b\128\030\128,\002\001\000>\000\bA\000\000\152c\012@\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\025H\001\003\000\002PL\220\128\029\192\025\000\000\000\138\000\003)\000 @\000J\t\155\144\003\184\003 \000\000\017@\000e \004\b\000\tA1r\000w\000d\000\000\002(\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000)\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\002\002\000\000@\160\128\000\000\000\002\000\000\000\000\000\001\000\000\b\000\000\002\000\000 \000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\001\001\000\000 P@\000\000\000\001\000\000\000\000\000\000\128\000\004\000\000\001\000\000\016\000\000\000\000\000\000\002\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\128\128\000\016( \000\000\000\000\128\000\000\000\000\000@\000\002\000\000\000\128\000\b\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\b\003\208\005\128@ \007\192\001\000 \000\023\132a\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\001\001\000\000 P@\000\000\000\001\000\000\000\000\000\000\128\000\004\000\000\001\000\000\016\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\128\128\000\016( \000\000\000\000\128\000\000\000\000\000@\000\002\000\000\000\128\000\b\000\000\000\000\000\000\001\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000@@\000\b\020\016\000\000\000\000@\000\000\000\000\000 \000\001\000\000\000@\000\004\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\016\000\b\000\000\000\000\000\000\000\b\237(\004Z*\027\2411\242\000\182\003\232\n\000\003\025\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\129\000\016\000\000\004\004\b\000\000\000\016\000\000\000\000\000\0000 \002\000\000\000\128\128\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\016\000 \000\016\000\000\000\000\000\000\000\017\218P\b\180T7\226c\228\001l\007\208\020\000\0062\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\000\000\000 \000\b\000\016\000\000\000\000\000\000\000\000\000\000`\000\000\000\000\001\000\002\000\000\000\000\000\000\000\000\000\000\012\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\001\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\128\000\002\000\128\003\002\000 \000\000\b\b\000\000\000\000 \000\000\000\000\000\001\016\002(\000@\129\018\014\004\003A\000\020\192\000\004\000 \004\000\128\128\000\016( \000\000\000\000\128\000\000\000\000\000@\000\000\000\000\000\128\000\b\000\000\000\000\b\000\000\000\024\0000 \002\000\000\000\128\128\000\000\000\002\000\000\000\000\000\000\017\000\"\128\004\b\017 \224@4\016\001L\000\000@\002\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\024\016\001\000\000\000@@\000\000\000\001\000\000\000\000\000\000\b\128\017@\002\004\b\144p \026\b\000\166\000\000 \001\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\001\029\165\000\139EC~&>@\022\192}\001@\000c \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\001\000\000\004\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\024\016\001\000\000\000@@\000\000\000\001\000\000\000\000\000\000\b\128\017@\002\004\b\144p \026\b\000\166\000\000 \001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\128\000\000\128\000 \000`\000\000\000\004\000\000\000\000\000\000\144\000\000\000\000\004\000\012\000\000\000\000\128\000\000\000\000\000\018\000\000\000\000\000\128\000\128\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000@\000 \000\000\000\000\001\000\000\001\128\000\024\000\000\005\023\005\000\000\020 \000\000\000\000\000\000\000\000\000\000\000\128 \000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\224\000\007\000\160\001\197\193\000\000\005\000\000\000\000\000\000\000\000\000\000@\000\000 \000\000\000\000\000\000\000\b\000\000\000\003\128\000\028\002\128\007\023\004\000\000\020\000\000\000\000\000\000\000\000\000\136\000\000\000\000\001\000\000\000\b\000\000\000\000\002@\000\000\017\000\000\000\000\000 \000\000\000\000\000\000\000\000@\000\000\002 \000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000D\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\b\002\000\016\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\"\000\000\000\000\000@\000\000\002\000\000\000\000\000\144\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\016\004\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\000\0000\000\000\n.\b\000\000(\000\000\000\000\000\000\0010\018(\000@\160R\014\004\003A\000\020\192\004\004$ \"\002E\000\b\020\002A\192\128h \002\152\000\128\132\004\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0000\000\003\000\000\000\162\224\128\000\002\132\000\000\000\000\000\000\006\000\000`\000\000\020\\\016\000\000P\000\000\000\000\000\000\002`$P\000\129@\164\028\b\006\130\000)\128\b\bH@D\004\138\000\016(\004\131\129\000\208@\0050\001\001\b\b\t\128\145@\002\005\002\144p \026\b\000\166\000 !!\001\016\018(\000@\160\018\014\004\003A\000\020\192\004\004 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\192H\160\001\002\001H8\016\r\004\000S\000\016\016\144\128\136\t\020\000 P\t\007\002\001\160\128\n`\002\002\016\016\006\000\000`\000\000\020\\\020\000\000P\128\000\000\000\000\000\001\192\000\014\001A\003\139\130\000\000\n\000\000\000\000\000\000\000\b\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\001\000\132\000\000\001\002\000\016\000\000\b\000\000\000\b@\020\000`\000\000\000\000\001@\000\b\000\000\000\000\000\000\000\000\002\000\000\016\000\000\b\000\000\000\000\000\000\000\000\000 \000\002\004\192N\232\001\002\149H8\022\r\004@[\001\021\016\154\128p\000\003\128P\000\226\224\128\000\002\128\000\000\000\000\000\000\002\001\b\000\000\002\004\000 \000\000\016\000\000\000\016\128(\000\192\000\000\000\000\002\128\000\016\000\000\000\000\000\000\000\000\004\000\000 \000\000\016\000\000\000\000\000\000\000\000\000@\000\004\001\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000 \016\128\000\000 @\002\000\000\001\000\000\000\001\b\002\128\012\000\000\000\000\000(\000\001\000\000\000\000\000\000\000\000\000@\000\002\000\000\001\000\000\000\000\000\000\000\000\000\004\000\000@\000\000@\000\000\000\000\001\000\000\000\000\000\000\000\128\000\000\000\000\000 \000\000\016\000\000\000\000\000\000\000\004\000\000\000\000\192\000\012\000\000\002\139\130\128\000\n\016\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\003\000\0000\000\000\n.\b\000\000(\000\000\000\000\000\000\0010\002(\000@\128R\014\004\003A\000\020\192\004\004 &\002E\000\b\020\nA\192\128h \002\152\000\128\132\132\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\0000\000\003\000\000\000\162\224\128\000\002\128\000\000\000\000\000\000\019\000\"\128\004\b\005 \224@4\016\001L\000@B\002\002`$P\000\129@\164\028\b\006\130\000)\128\b\bH@\000\000\000\000\000\000\000\000\128\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\b\237(\004Z*\027\2411\242\000\182\003\232\n\000\003\025\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000r\144\"\004\016\004\224\153\185\000;\1280\000\000\001\004\000\014R\004@\130\000\156\019\023 \007p\006\000\000\000 \128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0009H\001\002\b\002pL\\\128\029\192\024\000\000\000\130\000\b\128\017@\002\004\000\144` \026\b\000\166\000\000 \001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012\164\000\129\128\001(&n@\014\224\012\128\000\000E\000\001\148\128\016 \000%\004\205\200\001\220\001\144\000\000\b\160\0002\144\002\004\000\004\160\152\185\000;\1282\000\000\001\020\001Q);\131\212\015\193`\224_\244\023\to\002\223\206g\170%'pz\129\248,\028\011\254\130\225-\224[\249\204\240\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003)\000 `\000J\t\155\144\003\184\003 \000\000\017@\000e \004\b\000\tA3r\000w\000d\000\000\002(\000\012\164\000\129\000\001(&.@\014\224\012\128\000\000E\000\016\000\004\000\000\000\000\000\000\000\000\000\002\000\000\006\000\128\002\000\000\000\000\000\000\000\000\000\000\000\000@\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\017\000=\000X\004\002\000|\000\016\130\000\001\176F\024\128\000\000\000\000\000\000\000\000\000\000\000\016\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\004\000@@\000\016\016 \000\000\000@\000\000\000\000\000\000\192\128\b\000\000\002\002\004\000\000\000\b\000\000\000\000\000\000\024\016\001\000\000\000@@\000\000\000\001\000\000\000\000\000\000\000\000\004\000\000\000\b\000\016\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\128\128\000\016( \000\000\000\000\128\000\000\000\000\000@\000\002\000\000\000\128\000\b\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\004\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0002\144\002\004\000\004\160\152\185\000;\1282\000\000\001\020\001Q);\131\212\015\193`\224_\244\023\to\002\223\206g\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000Gi@\"\209P\223\137\143\144\005\176\031@P\000\024\200\000e \004\012\000\tA3r\000w\000d\000\000\002(\000\012\164\000\129\000\001(&n@\014\224\012\128\000\000E\000\001\148\128\016 \000%\004\197\200\001\220\001\144\000\000\b\160\n\137I\220\030\160~\011\007\002\255\160\184Kx\022\254s=Q);\131\212\015\193`\224_\244\023\to\002\223\206g\128\192\128\b\b\000\002\002\004\000\000\000\b\000\000\000\000 \000\024\016\001\001\000\000@@\128\000\000\001\000\000\000\000\000\000\003\002\000 \000\000\b\b\016\000\000\000 \000\000\000\000\000\000`@\004\000\000\001\001\000\000\000\000\004\000\000\000\000\000\000\"\000E\000\b\016\"A\192\128H \002\152\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0000 \002\000\000\000\128\129\000\000\000\002\000\000\000\000\000\000\006\004\000@\000\000\016\016\000\000\000\000@\000\000\000\000\000\002 \004P\000\129\002$\028\b\004\130\000)\128\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\128\002\000 \000\b\000\016\000\000\000\000\000\000\000\000\000\000 \000\000\004\000\000@\002\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\b\000@\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\136\001\020\000 @\t\006\002\001 \128\011`\000\002\000\000\002\000@@\000\b\020\016\000\000\000\000@\000\000\000\000\000\" \004P\000\129@$\028\b\004\130\000)\128\000\b\004\000D\000\138\000\016 \004\131\001\000\144@\0050\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000`\000@\000\000\001\000\002\000\000\000\000\000\000\000\000\000\000\012\000\b\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\001\128\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\001\000\000\004\001\000\017\000\"\128\004\b\001 \192@$\016\001L\000\000@\002\002 \004P\000\129\000$\016\b\004\130\000)\128\000\b\000@\024\000\000\000\000\000@\000\128\000\000\000\000\000\000\000\000\000\003\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\002\000\000\b\002\000\"\000E\000\b\016\002A\128\128H \002\152\000\000\128\004\004@\b\160\001\002\000H \016\t\004\000S\000\000\016\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\004\000\000\016\004\000D\000\138\000\016 \004\131\001\000\144@\0050\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\031>\196@\129_\134\208\000!\131\128\007\180p,\005\001\161?\165E\171MS~g>\192V\192\127\129@\001\227 \001\148\128\016 \000%\004\197\200\001\220\001\144\000\000\b \002\000\000\016\000\000\000\000\001\000\000\000\000\000\000\000\136\016@\142\210\128E\162\161\191\019\031 \011`>\128\160\0001\144\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007\207\177\016 W\225\180\000\b`\224\001\237\028\011\001@hO\233Qj\211T\223\153\207\176\021\176\031\224P\000x\200\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\001\128\000\000\000\000\005\000\000 \000\000\000\000\000\000\000\000\b\136\001\020\000 `\t\004\002\001 \128\n`\000\002\000\b\006\004@@@\b\020\016 \000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000P\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\003\128\000\028\002\128\007\023\004\000\000\020\000\000\000\000\000\000\000\000\000\001\000\000\000\128\000\000\000\000\000\000\000 \000\000\000\014\000\000p\n\000\028\\\016\000\000P\000\000\000\000\000\000\002 \004P\000\129\b$\028\011\004\130\000-\128\b\b\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\"\004E\000\b\016\002A\128\128H \002\152\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\136\001\020\000 @\t\006\002\001 \128\n`\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002 \004P\000\129\b$\028\011\004\130\000-\128\b\b\b\000\t\000\000\001\000\000@\000\192\000\000\000\b\000\000\000\000\000\001 \000\000\000\000\b\000\024\000\000\000\001\000\000\000\000\000\000$\000\000\000\000\001\000\001\000\000\000\000 \000\000\000\000\000\"\000E\000\n\016\002A\192\128H \002\216\000\001\128\000\000\144\000\000\000\000\004\000\004\000\000\000\000\128\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\017\000\"\128\004\b\001 \224@$\016\001L\004\000B\000\000@\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\b\128\017@\002\004\000\144p \018\b\000\166\000\000 \000\001\016\002(\000@\128\018\012\004\002A\000\020\192\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004@\b\160\001\002\000H8\016\t\004\000S\000\000\016\000\000\136\001\020\000 @\t\006\002\001 \128\n`\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\224\004^\001\193\003\143\146\b\004\n\000(\000\000\b\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\002\016\000\000\004\000\000@\003\000\000\000\000\000\000\000\000\000\000@\000\000\000\128\000\b\000`\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\001\000\012\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000 \000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\002\000\000\000\000\000\000\000\000\000\000\016\000\000\146\000\002\000\000\000\004\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\t \000 \000\000\000@\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\b\000\001\000\002\000\020@@\000\000\000\000\000\000\000\000\000\b\000\000@\000\000(\016P\004\000\000\000\002\000 \000\000\001\000\000\b\000\000\005\002\b\000\128\000\000\000@\004\000\000\000\028\000\000\224\020\0008\184 \000\000\160\000\000\000\000\000\000\000\000\002\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\128\000\000@ \128\b\000\000\000\004\000@\000\000\004\000\000\000\000\002\000\128\004\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000@\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\001\192\000\014\001@\003\139\130\000\000\n\000\000\000\000\000\000\000@\000\002\000\000\001\000\131\128 \000\000\000\016\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\128\000\000@\002\000\000\000\000\000\000\000\000\000\000@\000\000\016\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\224\000\007\000\160\001\197\193\000\000\005\000\000\000\000\000\000\000 \000\001\000\000\000\128A\128\016\000\000\000\b\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\002\000\004\000(\129\128\000\000\000\000\000\000\000\000\000\002\000\000@\000\128\005\016\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\004\000\001\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\b\000\000\000\000\128\000\016\000 \001D\004\000\000\000\000\000\000\000\000\000\000p\000\003\128P\000\226\224\128\000\002\128\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000@\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007\000\0008\005\000\014.\b\000\000(\000\000\000\000\000\000\000\000\000 \000\000\000\000\002\000\000\000\000\000\000\001\000\000\000\000\000\004\000\000\000\000\000@\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\000*\128\004\bA \224H$\016\001l\000@@\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\002\000\000\000\000 \000\004\000\b\000Q\001\000\000\000\000\000\000\000\000\000\000\"\000U\000\b\016\130A\192\144H \002\216\000\128\128\004\004\000\000 \000\000\016\b8\002\000\000\000\001\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\014\000\000p\n\000\028\\0\000\000P\000\000\000\000\000\000\001\192\000\014\001@\003\139\130\000\000\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\128\000\000\000\000\007\000\0008\005\000\014.\b\000\000(\000\000\000\000\000\000\001\000\000\b\000\000\004\002\014\001\128\000\000\000@\004\000\000\000 \000\001\000\000\000\128A\128\016\000\000\000\b\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\016\000\000\b\004\024\001\000\000\000\000\128\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\b\000\000\004\002\b\000\128\000\000\000@\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004@\b\160\001\002\000H8\016\t\004\000S\000\000\016\000\128\136\001\020\000 @\t\004\002\001 \128\n`\000\002\000\016 \000\000\000\000\000\004\0000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\128\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\004\000\000\128\001\000\n \000\000\000\000\000\000\000\000\000\004@\b\160\001\002\000H8\016\t\004\000S\000\000\016\000\128\136\001\020\000 @\t\004\002\001 \128\n`\000\002\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\016\000\192\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\002\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\001\148\128\020\"\000%\004\197H\001\220\001\136\000\000( \000r\152B>\144l\242\152\185>?\1363\002\000\025/,\002\000\000@\000\128\021\016\016\000\000\000\016\000\000\000\000\000\002\000\000\016\000\000\n\004\020\003\000\000\000\000\128\b\000\000\000@\000\002\000\000\001@\130\000`\000\000\000\016\001\000\000\000\b\000\000@\000\000 \016@\012\000\000\000\002\000 \000\000\002\000\000\000\000\001\000@\002\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000 \b\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\144\000\002;J\001\022\138\134\252L|\128-\128\250\002\128\000\198@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\001\029\165\000\139EC~&>@\022\192}\001@\000c \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\004\000\000\002\001\006\000\192\000\000\000 \002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\002\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\014\000\000p\n\000\028\\\016\000\000P\000\000\000\000\000\000\002\000\000\016\000\000\b\004\028\003\000\000\000\000\128\b\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\002@\000\b\237(\004Z*\027\2411\242\000\182\003\232\n\000\003\025\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\004v\148\002-\021\r\248\152\249\000[\001\244\005\000\001\140\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\001\000\000\000\128\004\000\000\000\000\000\000\000\000 \000\000\000\000 \000\000\016\000\128\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\001\148\128\020\"\000%\004\197H\001\220\001\136\000\000( \000x\000\003\128P\000\226\224\128\000\002\128\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\0008\000\001\192(\000qp@\000\001@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\016\000\000\000\000\b\237(\004Z*\027\2411\242\000\182\003\232\n\000\003\025\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\004v\148\002-\021\r\248\152\249\000[\001\244\005\000\001\140\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\002\000\000\001\000\131\000`\000\000\000\016\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\128\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\007\000\0008\005\000\014.\b\000\000(\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\001\148\128\020\"\000%\004\197H\001\220\001\136\000\000( \000x\000\003\128P\000\226\224\128\000\002\128\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\0008\000\001\192(\000qp@\000\001@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\016\000\000\000\000\b\237(\004Z*\027\2411\242\000\182\003\232\n\000\003\025\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\004v\148\002-\021\r\248\152\249\000[\001\244\005\000\001\140\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002;J\001\022\138\134\252L\252\128-\128\250\002\128\000\198@Gi@\"\209P\223\137\143\144\005\176\031@P\000\024\200\001\000\000\b\000\000\004\002\012\001\128\000\000\000@\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\016\000 \005D\012\000\000\000\004\000\000\000\000@\000\016\000\002\000\004\000\168\129\128\000\000\000\128\000\000\000\000\000\002\000\000@\000\128\021\016\016\000\000\000\016\000\000\000\000\000\000@\000\b\000\016\002\162\002\000\000\000\002\000\000\000\000\000\0009H\017\003\024\002pL\220\128\029\192\024\000\000\000\130\000\249\246\"\004\n\2526\128\001\012\028\000=\163\129`(\r\000\229 D\b \t\1933r\000w\000`\000\000\002\b\000\028\164\b\129\004\0018&.@\014\224\012\000\000\000A\000\003\148\128\016 \128'\004\197\200\001\220\001\128\000\000\b \000\000\000\000\000\000\000\000\002\000\000\128\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000 \000\b\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000@\000\000\000\004\000\000\128\001\000* \000\000\000 \000\000\000\000\000\003\128\000\028\002\128\007\023\004\000\000\020\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\002\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\025H\001B \002PL\212\128\029\192\024\000\000\000\130\000\003)\000(D\000J\t\138\144\003\184\003\000\000\000\016@\000e \005\b\128)A1R\000w\000`\000\000\002\b\000\004\000\000\128\001\000* \000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\128\016\000\002\000\004\000\168\128\128\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\234EZ\129\149\n\166\127\175\004\238\000\233\148\b\0301@]H\171P2\161T\207\245\224\157\192\0292\129\003\198(\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\016\002\168\000@\132\018\014\005\130A\000\020\192\004\012\000\160\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\136\001T\000 B\t\007\002\193 \128\n`\002\006\000P\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000D\000\170\000\016!\004\131\129`\144@\0050\001\003\000(\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000@\000\000\000\004\000\000\128\001\000* \000\000\000 \000\000\000\000\000\004@\n\160\001\002\016H8\022\t\004\000S\000\0160\002\128r\144\"\004\016\004\224\152\185\000;\1280\000\000\001\004\000\014R\000@\130\000\156\019\023 \007p\006\000\000\000 \128\000\000\000\000\000\000\000\000\b\000\002\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\016\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012\000\000\224\017\000*\184 \000\000\160\000\000\000\000\000\000\004\192J\160\001\002\129\b8\016\t\004\000[\000\0000\000\1280\000\003\000\000\000\162\224\128\000\002\128\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\192\000\014\001\016\002\171\130\000\000\n\000\000\000\000\000\000\0008\000\001\192(\000qp@\000\001@\000\000\000\000\n\000\000\000\001\000\000\000\000\000\016\000\000\000\000\000\000\b\001\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\012\000\000\224\017\000*\184 \000\000\160\000\000\000\000\000\000\001\128\000\024\000\000\005\023\004\000\000\020\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\006\000\000p\b\128\021\\\016\000\000P\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\128\000\000\000\b\000\000\000\000\000P0@\000\001\000\000\000\000\000\000\000\t\128\149@\002\005\002\016p \018\b\000\182\000\000 \001\0010\018\168\000@\160B\014\004\002\001\000\022\192\000\004\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004@\n\160\001\002\000\b8\016\b\000\000[\000\000\016\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000@\000\000 \016p\012\000\000\000\002\000 \000\004\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000 \000\000\016\b0\006\000\000\000\001\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000@\000\128\021\016\016\000\000\000\016\000\000\000\000\000\002\000\000\016\000\000\b\004\028\003\000\000\000\000\128\b\000\001\000@\000\002\000\000\001\000\131\000`\000\000\000\016\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\224\000\007\000\160\001\197\195\000\000\005\000\000\000\000\000\000\000\028\000\000\224\020\0008\184 \000\000\160\000\000\000\000\000\000\004\000\000 \000\000\016\b0\006\000\000\000\001\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\002\000\000\001\000\131\000`\000\000\000\016\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\001\000\000\000\128A\0000\000\000\000\b\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\136\001\020\000 @\t\007\002\001 \128\n`\000\002\000\016\006\000\000p\b\128\021\\\016\000\000P\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\b\000\001\000\002\000T@@\000\000\000@\000\000\000\000\000\b\128\017@\002\004\000\144p \018\b\000\166\000\000 \001\000e \005\b\128\tA1R\000w\000b\000\000\n\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004@\b\160\001\002\000H0\016\t\004\000S\000\000\016\000\128\136\001\020\000 @\t\004\002\001 \128\n`\000\002\000\016 \000\000\000\000\000\004\0000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\128\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000e \005\b\128\tA1R\000w\000b\000\000\n\b\000\"\000E\000\b\016\002A\128\128H \002\152\000\000\128\004\004@\b\160\001\002\000H \016\t\004\000S\000\000\016\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000D\000\138\000\016 \004\130\001\000\128\000\0050\000\001\000\000\007)\002 a\000N\t\155\144\003\184\003\000\000\000\016@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000D\000\138\000\016 \004\130\001\000\144@\0050\000\001\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\016\002(\000@\128\018\012\004\002A\000\020\192\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\129\000\016\016\000\004\004\b\000\000\000\016\000\000\000\000\000\0000 \002\000\000\000\128\129\000\000\000\002\000\000\000\000\000\000\006\004\000@\000\000\016\016\000\000\000\000@\000\000\000\000\000\002 \004P\000\129\002$\028\b\004\130\000)\128\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\128\017@\002\004\000\144@ \018\b\000\166\000\000 \001\000@\000\002H\000\t@\002\000\016\000\000\000\000\000\000\016\000\b\000\000I\000\001(\000\000\002\000\000\000\000\000\000\002\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\136\001\020\000 @\t\006\002\001 \128\011`\002\006\000\016\017\000\"\128\004\b\001 \192@$\016\001l\000@@\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000D\000\138\000\016 \004\131\001\000\144@\0050\001\001\000\b\b\128\017@\002\004\000\144@ \018\b\000\166\000\000 \001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000D\000\138\000\016 \004\131\001\000\128\000\0050\000\001\000\000\b\128\017@\002\004\000\144@ \016\000\000\166\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\136\001\020\000 @\t\004\002\001\160\128\n`\000\002\000\016\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\016\002(\000@\128\018\012\004\002\000\000\020\192\000\004\000\000\"\000E\000\b\016\002A\000\128@\000\002\152\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000$\000\000\128\000\001\000\001\000\000\000\000 \000\000\000 \000\004\128\000\000\000\000 \000 \000\000\000\004\000\000\000\004\000\000\144\000\000\000\000\004\000\004\000\000\000\000\128\000\000\000\000\000\136\001\020\000(@\t\007\002\001 \128\011`\000\006\016\000\002@\000\000\000\000\016\000\016\000\000\000\002\000\000\000\000\000\002 \004P\000\129\000$\028\b\004\130\000)\128\000\b@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\128\017@\002\004\000\144p \018\b\000\166\000 !\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\"\000E\000\b\016\002A\128\128H \002\152\000\000\132\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\"\000E\000\n\016\002A\192\128H \002\216\000\001\132\000\000\144\000\000\000\000\004\000\004\000\000\000\000\128\000\000\000\000\000\136\001\020\000 @\t\007\002\001 \128\n`\000\002\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002 \004P\000\129\000$\028\b\004\130\000)\128\b\b@@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\001\016\002( @\128\018\012\004\002A\000\022\192\004\012\000 \"\000E\000\b\016\002A\128\128H \002\216\000\128\128\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\136\001\020\000 @\t\006\002\001 \128\n`\002\002\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\000\000 \000\000@\000@\000\000\000\b\000\000\000\b\000\001 \000\000\000\000\b\000\b\000\000\000\001\000\000\000\001\000\001\016\002(\000@\128\018\012\004\002A\000\020\192\000\004 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\017\000*\128\004\n\017 \224@$\016\001l\000\004@b \000\001\000\000\000@\000\004\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003!\000 @\000J\t\138\016\003\184\003\000\000\000\016@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\006\192\000\000\128\000\b\000\004\000\000\n\000\006b\138\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\006R\000@\128\000\148\019\023 \007p\006@\b\000 \128\000\000\000\000\000\000\002\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\224\000\007\000\160\001\197\193\000\000\005\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006B\000@\128\000\148\019\020 \007p\006\000\000\000 \128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\r\128\000\001\000\000\016\000\b\000\000\020\000\012\197\020\000\000\000\128\000\000\000\000\002\000\000\000\000\000\000\001\024 \128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\128\000\028\002\128\007\023\004\000\000\020\000\000\000\000\000\000\000\000\000@\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\016\000\000\b\004\016\003\000\000\000\000\128\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000e \004\012\000\tA3r\000w\000d\000\000\002(\000\012\164\000\129\000\001(&n@\014\224\012\128\000\000E\000\001\148\128\016 \000%\004\197\200\001\220\001\144\000\000\b\160\n\137I\220\030\160~\011\007\002\255\160\184Kx\022\254s=Q);\131\212\015\193`\224_\244\151\toV\223\206g\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005]\172\239\031R\191U\207\241\255\223\220=\191\219\127\255\158\168\148\157\193\234\007\224\176p/\250K\132\183\171o\2313\192d \004@\n\001A1\194\0006\000`\n\000\003\024\002\162Rw\007\168\031\130\193\192\191\233.\018\222\173\191\156\207\001\148\128\0160\000%\004\205\200\001\220\001\144\000\000\b\160\0002\144\002\004\000\004\160\153\185\000;\1282\000\000\001\020\000\006R\000@\128\000\148\019\023 \007p\006@\000\000\"\128*%'pz\129\248,\028\011\254\130\225-\224[\249\204\245D\164\238\015P?\005\131\129\127\208\\%\188\011\1279\158\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\b\237(\004Z*\027\2411\242\000\182\003\232\n\000\003\025\000\000\000\000\000\000\000(\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000$\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003!\000\"\000P\n\t\142\016\001\176\003\000P\000\024\192\021\018\147\184=@\252\022\014\005\255Ip\150\245m\252\230x\012\164\000\129\128\001(&n@\014\224\012\128\000\000E\000\001\148\128\016 \000%\004\205\200\001\220\001\144\000\000\b\160\0002\144\002\004\000\004\160\152\185\000;\1282\000\000\001\020\001Q);\131\212\015\193`\224_\244\023\to\002\223\206g\170%'pz\129\248,\028\011\254\130\225-\224[\249\204\244\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003)\000 @\000J\t\139\144\003\184\003 \000\000\017@\021\018\147\184=@\252\022\014\005\255Ap\150\240-\252\230x\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\016\000\000\000\004\000\000\000\004\017\000\000\000\000\128\000\001\192\000\014\001@\003\139\130\000\000\n\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\128\000\000\004\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000`\000\006\000\000\001E\195\000\000\005\016\000\000\128\000\000\000\012\000\000\192\000\000(\184 \000\000\162\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\016\000\000\000\004\000\000\000\000\017\000\000\000\000\000\000\000\192\000\012\000\000\002\139\130\000\000\n \000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\004\000\000\000\000\000\000\000\001\000\000\000\000p\000\003\128P\000\226\224\128\000\002\128\000\000\000\000\000\000\000\000\b\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\004\0008\000\001\192(\000qp@\000\001@\000\000\000\000\000\000\136\128\029\192\002\007 \144p,\018\b\128\182\000+!5\145\016\003\184\000@\228\018\014\005\130A\016\022\192\005d&\176\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\128\000\024\000\000\005\023\004\000\000\020\000\000\000\000\000\000\b\136\001\220\000 r\t\007\002\193 \136\011`\002\178\019Y\017\000;\128\004\014A \224X$\017\001l\000VBk\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\0008\000\001\192(\000qp@\000\001@\000\000\000\000\000\000\136\128\029\192\002\007 \144p,\018\b\128\182\000+!5\145\016\003\184\000@\228\018\014\005\130A\016\022\192\005d&\176\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\128\000\024\000\000\005\023\004\000\000\020\000\000\000\000\000\000\b\136\001\220\000 r\t\007\002\193 \136\011`\002\178\019Y\017\000;\128\004\014A \224X$\017\001l\000VBk\001\192\000N\001@\003\139\130\000\000\n\000\000\000\000\000P\000\000\000\000\000\000@\016\000\000\000\000\002\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \b\000\000\000\000\001\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002h\004P\000\129\002$\026\b\004\130\000i\128\b\b\000@D\000\138\000\020 \004\131\129\000\144@\0050\001\003\b\b\b\128\017@\002\004\000\144` \018\b\000\166\000 !\001\000$\000\000\000\000\001\000\001\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\000\"\128\004\b\001 \224@$\016\001L\000@@\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000D\000\138\000\020 \004\131\129\000\144@\0050\001\003\b\b\000\000\000\000\000\b\002\000\000\000\000\000@\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\001\000\000\000\000\000 \000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\128\017@\002\004\000\144p \018\b\000\182\000 \001\000$\000\000\128\000\001\000\001@\000\002\000 \000\128\000 \000\004\128\000\000\000\000 \000(\000\000@\004\000\016\000\004\000\000\000\000\000\000\004\001\000\000\000\000\000 \000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\128\000\000\000\000\016\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\001\000\000\000\000\000 \000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\128\000\000\000\000\016\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000r\000\003\192P\000\226\224\160\000\003\128\016\000@\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002 \004P\000\129\000\004\024\b\004\000\000)\128\b\b\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000$\000\000\128\000\001\000\001\000\000\000\000 \000\000\000 \000\004\128\000\000\000\000 \000 \000\000\000\004\000\000\000\004\000\004@\b\160\001\002\000\b0\016\b\000\000S\000\000\016\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\001\016\002( @\128\002\012\004\002\000\000\022\192\004,\000 \"\000E\000\b\016\000A\128\128@\000\002\216\000\132\128\004\003\144\000\030\002\128\007\023\005\000\000\028\000\128\002\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\000\"\128\004\b\000 \192@ \000\001L\000@@\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001 \000\004\000\000\b\000\b\000\000\000\001\000\000\000\001\000\000$\000\000\000\000\001\000\001\000\000\000\000 \000\000\000 \000\"\000E\000\b\016\000A\128\128@\000\002\152\000\000\132\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\136\001\020\000 @\001\004\002\001\000\000\n`\000\002\000\000\002\000\000\000@\000\000\000 \000\000\000\000\000\000\000\001\000\000@\000\000\b\000\000\000\004\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\016\002(\000@\129\002\012\004\002\000\000\020\192@\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\000\"\128\004\b\016 \192@ \000\001L\004\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\028\000\016\001\000\000@\000\128\000\000\000\000\000\000\000\000\000\001\000\000\000 \000\002\000\016\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000@\002\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\004@\b\160\001\002\000\b0\016\b\000\000[\000\000\144\000\000\016\002\002\000\000@\160\128\000\000\000\002\000\000\000\000\000\001\017\000\"\128\004\n\000 \224@ \000\001L\000\000@ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\024\000\016\000\000\000@\000\128\000\000\000\000\000\000\000\000\000\003\000\002\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\002\000\000(\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004@\b\160\001\002\004\b0\016\b\000\000S\001\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\b\001\001\000\000 P@\000\000\000\001\000\000\000\000\000\000\136\128\017@\002\005\000\016p \016\000\000\166\000\000 1\001\016\002(\000@\128\002\012\004\002\000\000\020\192\000\004\000 \"\000E\000\b\016\000A\000\128@\000\002\152\000\000\128\004\001\128\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\0000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000@\b\b\000\001\002\130\000\000\000\000\b\000\000\000\000\000\004D\000\138\000\016(\000\131\129\000\128\000\0050\000\001\001\136\b\128\017@\002\004\000\016` \016\000\000\166\000\000 \001\001\016\002(\000@\128\002\b\004\002\000\000\020\192\000\004\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000@\000\001\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\136\001\020\000 @\001\006\002\001\000\000\n` \002\001\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000D\000\138\000\016 \000\131\001\000\128\000\0050\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \004\004\000\000\129A\000\000\000\000\004\000\000\000\000\000\002\"\000E\000\b\020\000A\192\128@\000\002\152\000\000\128\192\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\136\001\020\000 @\001\006\002\001\000\000\n`\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\016\000\000\b\001\001\000\000 P@\000\000\000\001\000\000\000\000\000\000\136\128\017@\002\005\000\016p \016\000\000\166\000\000 0\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000H\000\000\b\000\002\000\006\000\000\000\000@\000\000\000\000\000\t\000\000\000\000\000@\000\192\000\000\000\b\000\000\000\000\000\001 \000\000\000\000\b\000\b\000\000\000\001\000\000\000\000\000\001\016\002(\000P\128\002\014\004\002\000\000\020\192\000\012\000\000B\000\000\000\128\000\b\000`\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\001\000\012\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000 \000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\003\000\0008\004@\n\174\b\000\000(\000\000\000\000\000\000\001\016\002(\000@\128\002\012\004\002\000\000\020\192\000\004\000 \"\000E\000\b\016\000A\000\128@\000\002\152\000\000\128\004\b\000\000\000\000\000\001\000\012\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000 \000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\003\000\0008\004@\n\174\b\000\000(\000\000\000\000\000\000\001\016\002(\000@\128\002\012\004\002\000\000\020\192\000\004\000 \"\000E\000\b\016\000A\000\128@\000\002\152\000\000\128\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002 \004P\000\129\000\004\016\b\004\000\000)\128\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000D\000\138\000\016 \000\131\001\000\128\000\0050\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \004\004\004\000\129A\002\000\000\000\004\000\000\000\000\000\000\004\000\128\128\000\016( @\000\000\000\128\000\000\000\000\000\000\128\016\016\000\002\005\004\000\000\000\000\016\000\000\000\000\000\b\136\001\020\000 P\001\007\002\001\000\000\n`\000\002\003\000\017\000\"\128\004\b\000 \128@ \000\001L\000\000@@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000D\000\138\000\016 \000\130\001\000\128\000\0050\000\001\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\016\002(\000@\128\002\b\004\002\000\000\020\192\000\004\000 \b\000\000I\000\001(\000@\002\000\000\000\000\000\000\002\000\001\000\000\t \000%\000\000\000@\000\000\000\000\000\000@\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\0009\000\001\224(\000qpP\000\001\192\b\000 \000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\016\002(\000@\128\002\012\004\002\000\000\020\192\004\004\000 \"\000E\000\b\016\000A\000\128@\000\002\152\000\000\128\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\128\000\000 \000\002\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\004\000\000\000\000\000\000\000\001\000\000\000\000p\000\003\128P\000\226\224\128\000\002\128\000\000\000\000\000\000\000\000\b\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\004\0008\000\001\192(\000qp@\000\001@\000\000\000\000\000\000\136\128\029\192\002\007 \144p,\018\b\128\182\000+!5\145\016\003\184\000@\228\018\014\005\130A\016\022\192\005d&\176\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\128\000\024\000\000\005\023\004\000\000\020\000\000\000\000\000\000\b\136\001\220\000 r\t\007\002\193 \136\011`\002\178\019Y\017\000;\128\004\014A \224X$\017\001l\000VBk\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\0008\000\001\192(\000qp@\000\001@\000\000\000\000\000\000\136\128\029\192\002\007 \144p,\018\b\128\182\000+!5\145\016\003\184\000@\228\018\014\005\130A\016\022\192\005d&\176\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\128\000\024\000\000\005\023\004\000\000\020\000\000\000\000\000\000\b\136\001\220\000 r\t\007\002\193 \136\011`\002\178\019Y\017\000;\128\004\014A \224X$\017\001l\000VBk\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\004\0008\000\001\192(\000qp@\000\001@\000\000\000\000\000\000\136\128\029\192\002\007 \144p,\018\b\128\182\000+!5\145\016\003\184\000@\228\018\014\005\130A\016\022\192\005d&\176\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\128\000\024\000\000\005\023\004\000\000\020\000\000\000\000\000\000\b\136\001\220\000 r\t\007\002\193 \136\011`\002\178\019Y\017\000;\128\004\014A \224X$\017\001l\000VBk\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\0008\000\001\192(\000qp@\000\001@\000\000\000\000\000\000\136\128\029\192\002\007 \144p,\018\b\128\182\000+!5\145\016\003\184\000@\228\018\014\005\130A\016\022\192\005d&\176\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\128\000\024\000\000\005\023\004\000\000\020\000\000\000\000\000\000\b\136\001\220\000 r\t\007\002\193 \136\011`\002\178\019Y\017\000;\128\004\014A \224X$\017\001l\000VBk\000\192\000\012\000\000\002\139\130\000\000\n\000\000\000\000\000\000\0008\000\001\192( qp@\000\001@\000\000\000\000\000\000\000\000\000\016\000\000\b\000\000\000\000\000\000\000\002\000\000\000\000\224\000\007\000\160\001\197\193\000\000\005\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\b\000p\000\003\128P\000\226\224\128\000\002\128\000\000\000\000\000\001\017\000;\128\004\014A \224X$\017\001l\000VBk\" \007p\000\129\200$\028\011\004\130 -\128\n\200M`\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\000\0000\000\000\n.\b\000\000(\000\000\000\000\000\000\017\016\003\184\000@\228\018\014\005\130A\016\022\192\005d&\178\"\000w\000\b\028\130A\192\176H\"\002\216\000\172\132\214\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000p\000\003\128P\000\226\224\128\000\002\128\000\000\000\000\000\001\017\000;\128\004\014A \224X$\017\001l\000VBk\" \007p\000\129\200$\028\011\004\130 -\128\n\200M`\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\000\0000\000\000\n.\b\000\000(\000\000\000\000\000\000\017\016\003\184\000@\228\018\014\005\130A\016\022\192\005d&\178\"\000w\000\b\028\130A\192\176H\"\002\216\000\172\132\214\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\b\000p\000\003\128P\000\226\224\128\000\002\128\000\000\000\000\000\001\017\000;\128\004\014A \224X$\017\001l\000VBk\" \007p\000\129\200$\028\011\004\130 -\128\n\200M`\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\000\0000\000\000\n.\b\000\000(\000\000\000\000\000\000\017\016\003\184\000@\228\018\014\005\130A\016\022\192\005d&\178\"\000w\000\b\028\130A\192\176H\"\002\216\000\172\132\214\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000p\000\003\128P\000\226\224\128\000\002\128\000\000\000\000\000\001\017\000;\128\004\014A \224X$\017\001l\000VBk\" \007p\000\129\200$\028\011\004\130 -\128\n\200M`\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\000\0000\000\000\n.\b\000\000(\000\000\000\000\000\000\017\016\003\184\000@\228\018\014\005\130A\016\022\192\005d&\178\"\000w\000\b\028\130A\192\176H\"\002\216\000\172\132\214\000\128@\000\000\000\129\000\000\000\000\004\000\000\000\000\000\b\0000\000\003\000\000\000\162\224\128\000\002\128\000\000\000\000\000\000\000\001\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000 \001\192\000\014\001@\003\139\130\000\000\n\000\000\000\000\000\000\004D\000\238\000\0169\004\131\129`\144D\005\176\001Y\t\172\136\128\029\192\002\007 \144p,\018\b\128\182\000+!5\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012\000\000\192\000\000(\184 \000\000\160\000\000\000\000\000\000D@\014\224\001\003\144H8\022\t\004@[\000\021\144\154\200\136\001\220\000 r\t\007\002\193 \136\011`\002\178\019X\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\001\192\000\014\001@\003\139\130\000\000\n\000\000\000\000\000\000\004D\000\238\000\0169\004\131\129`\144D\005\176\001Y\t\172\136\128\029\192\002\007 \144p,\018\b\128\182\000+!5\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012\000\000\192\000\000(\184 \000\000\160\000\000\000\000\000\000D@\014\224\001\003\144H8\022\t\004@[\000\021\144\154\200\136\001\220\000 r\t\007\002\193 \136\011`\002\178\019X\002\001\000\000\000\002\004\000\000\000\000\016\000\000\000\000\000 \000\192\000\012\000\000\002\139\130\000\000\n\000\000\000\000\000\000\004D\004\238\000\0169\004\131\129`\144D\005\176\001Y\t\172\007\000\0008\005\000\014.\b\000\000(\000\000\000\000\000\000\017\016\003\184\000@\228\018\014\005\130A\016\022\192\005d&\178\"\000w\000\b\028\130A\192\176H\"\002\216\000\172\132\214\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0000\000\003\000\000\000\162\224\128\000\002\128\000\000\000\000\000\001\017\000;\128\004\014A \224X$\017\001l\000VBk\" \007p\000\129\200$\028\011\004\130 -\128\n\200M`\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\007\000\0008\005\000\014.\b\000\000(\000\000\000\000\000\000\017\016\003\184\000@\228\018\014\005\130A\016\022\192\005d&\178\"\000w\000\b\028\130A\192\176H\"\002\216\000\172\132\214\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0000\000\003\000\000\000\162\224\128\000\002\128\000\000\000\000\000\001\017\000;\128\004\014A \224X$\017\001l\000VBk\" \007p\000\129\200$\028\011\004\130 -\128\n\200MdD\000\170\000\0160\004\131\129\000\144@\005\176\001I\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\"\000U\000\b\024\002A\192\128H \002\216\000\164\128\006@\000\002\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\001 \000\001\000\000\000\128\000\000\000\000\000\000\000\000\002\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007\000\0008\005\000\014.\b\000\000(\000\000\000\000\000\000\000 \016\128\000\000 @\002\000\000\001\000\000\000\001\b\002\128\012\000\000\000\000\000(\000\001\000\000\000\000\000\000\000\000\000@\000\002\000\000\001\000\000\000\000\000\000\000\000\000\004\000\000@\016\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\002\001\b\000\000\002\004\000 \000\000\016\000\000\000\016\128(\000\192\000\000\000\000\002\128\000\016\000\000\000\000\000\000\000\000\004\000\000 \000\000\016\000\000\000\000\000\000\000\000\000@\000\004\000\000\004\000\000\000\000\000\016\000\000\000\000\000\000\b\000\000\000 \000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\004\002\016@\000\004(\000@\000\000 \000\000\b!\000P\004@\b\160\001\002\000H0\016\t\004\000S\000\000\016\016\000\136\001\020\000 @\t\006\002\001 \128\n`\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000Gi@\"\209P\223\137\143\144\005\176\031@P\000\024\200\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\001\029\165\000\139EC~&>@\022\192}\001@\000c \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\128\016@\002\004\000\016@ \016\000\000\164\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\000\000\000\000\000\160\000\128\000\000\000\016\000\000\000\000\000\000\001\b\007\208\005\130@\000\007\192\129\000 @\003\005e\128\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\b\000\000\000\000\128\000\000\000\000\005\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000>\128,\018\000\000>\004\b\001\002\000\024+,\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000H\000\000\000\000\002\000\002\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\028\000\000\224\020\0008\184 \000\000\160\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\218P\b\180T7\226c\228\001l\007\208\020\000\0062\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000@ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012\b\000\128\000\000 \000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\001\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\b\b\000\001\002\130\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\001\000\000\016\000\000\000\000\004\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\202@\b\016\000\018\130b\228\000\238\000\200\000\000\004\016\000\000\000\000\000\000\000\000\000\128\000\000\000\000 \000D\b \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000(\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\b\000\000\000\000\000P\000\000\000\000\000\000\000\000\000\000\000O\233Pb\211T\223\153\207\176\023\184\031\228P\0008\200\000 \000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000&\132A\000\b\016*A\000\192H \006\144\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\128\016@\002\004\000\144@ \018\b\000\164\002\000 \000\000 \000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000&\132A\000\b\016*A\000\192H \006\144\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\128\016@\002\004\000\144@ \018\b\000\164\002\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\000 \128\004\b\001 \128@ \000\001@\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\254\149\006-5M\249\156\251\001{\129\254E\000\003\140\128\159\210\160\197\166\169\1913\159`/p?\200\160\000q\144\002 \004\016\000\129\000$\016\b\004\130\000)\000\000\b\000\000D\000\130\000\016 \004\130\001\000\144@\005 \000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\"\000A\000\b\016\002A\128\128H \002\144\000\000\128\000\004@\b \001\002\000H \016\t\004\000R\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000D\000\130\000\016 \004\131\001\000\144@\005 \000\001\000\000\b\128\016@\002\004\000\144@ \018\b\000\164\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000") and start = 15 and action = - ((32, "\000\000\151\138\000\000\162\028\000\000\172\152\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\026.\000\000\172\152\000\000\000\000\000\000\000\000\000\000\025\020\000\000\172\152\000\000\151\138\000\000\000\240\000\000\0005\000\000\0038\000\001z\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000Z\000\000\002\018\000\000\000\231\000\000\000\000\000\000\001P\000\000\000\030\000\000\000\000\000\000\001\234\000\000\001p\000\000\000\254\000\000\000\000\000\000\000&\000\000\002\\\000\000\003b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\222\000\000\000\000\000\000\000\000\000\000\002n\000\001\182\204\000\001c\024\000\001c\202\000\001d|\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001~\000\000\000\000\000\000\000\000\000\000\236\208\000\000\003V\000\000\004\130\000\000\000\000\000\000\000\000\000\001q\254\000\000\234*\000\000\t\006\000\000\000\000\000\000\t\006\000\001h\014\000\000\001~\000\000\000\000\000\001\176~\000\000\001~\000\000\232&\000\000\t\006\000\001\135\\\000\000\t\006\000\000\000\000\000\000\000\000\000\000\000\000\000\000$f\000\001h\014\000\000\229\152\000\000\000\000\000\000\237\188\000\001\176~\000\000\157\134\000\000\025\020\000\000\027\196\000\001h\166\000\000\025\020\000\001gx\000\000\005L\000\001i\134\000\000\000\000\000\000\000\000\000\000\004\232\000\000\000\000\000\000\230\216\000\000\161\232\000\000\025\020\000\000\155\020\000\000\000\000\000\000\024\254\000\000\000\000\000\000\155\020\000\000\025\222\000\000\000\000\000\000\151\022\000\000\000\000\000\000\000\226\000\000\000\000\000\000\000\000\000\000\005\194\000\000\024.\000\000\017\184\000\000\t\006\000\000%\138\000\000\005\158\000\001z\144\000\000\000\000\000\000\000\000\000\000\t\006\000\000\000\000\000\000\025\020\000\000\000\000\000\000\001~\000\000\024.\000\000\018\220\000\000\t\006\000\000(\246\000\000\000\000\000\000\003\178\000\000\000\000\000\000\151\022\000\000\000\000\000\000\000\000\000\000\b\n\000\000\025\020\000\000\000\000\000\000\001~\000\000\025\020\000\000\000\000\000\000\t\232\000\001\171\024\000\000\t\006\000\001\152\194\000\001\171\158\000\001\163L\000\001\151\150\000\000\000\000\000\001\165,\000\001\176~\000\000\000\000\000\001ld\000\001\178\160\000\000\001~\000\000\232&\000\000\172\152\000\000\151\138\000\000\000\003\000\000\000\000\000\000\000\000\000\000\162\028\000\000\025\020\000\000\000\003\000\000\003\196\000\000\006\024\000\000\006\202\000\001h\014\000\001\177\016\000\000\000\000\000\001h\014\000\001\177\016\000\000\000\000\000\001h\014\000\001\179r\000\000\238\224\000\000\030\254\000\000\236\024\000\000\229\152\000\000\n\238\000\000\000\000\000\000\000\b\000\000\0010\000\000\0040\000\000\000\000\000\000\006\206\000\000\000\000\000\000\000\000\000\000\n\252\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\128\000\000\026\156\000\001\179r\000\000\240\172\000\001h\014\000\000\241\172\000\000\006\176\000\000\237\168\000\000\000\000\000\000\000\000\000\000\242\172\000\001h\014\000\000\243\172\000\000\244\172\000\000\000\000\000\001ut\000\001\176~\000\000\000\000\000\000\003\234\000\000\0010\000\000\n\238\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\236\000\000\0120\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\184R\000\000\244\214\000\000\t\006\000\000+>\000\000\001~\000\000\236\140\000\000\t\006\000\000,b\000\000\239\226\000\001\176~\000\000\001~\000\000\001~\000\000\000\000\000\000\007\n\000\000\001~\000\000\006\166\000\000\t\006\000\000\"b\000\000\000\000\000\001h\014\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\242\000\000\006\230\000\001h\014\000\000\245\172\000\000\246\172\000\000\000\000\000\000\239\226\000\000\247\172\000\001h\014\000\000\248\172\000\000\249\172\000\000\000\000\000\000\239\226\000\000\250\172\000\000\251\172\000\001h\014\000\000\252\172\000\000\253\172\000\000\000\000\000\000\239\226\000\000\254\172\000\000\255\172\000\000\230\196\000\000\240\226\000\000\229\160\000\000\236\024\000\000\231\198\000\000\n\238\000\000\000\000\000\000\000\000\000\000\000\000\000\000\238\170\000\000\241\226\000\000\229\168\000\000\236\024\000\000\232\200\000\000\233\202\000\000\234\204\000\001\000\172\000\000\007\174\000\001h\014\000\001\001\172\000\001\002\172\000\000\000\000\000\000\239\226\000\001\003\172\000\001\004\172\000\000\000\000\000\001\005\172\000\000\006@\000\000\001~\000\000\000\000\000\000\t\216\000\000\007.\000\000\t\006\000\000\"\246\000\000\000\000\000\000\001~\000\000\007b\000\000\t\006\000\000$\172\000\000\000\000\000\000\001\002\000\000\000\000\000\001\184\202\000\000\244\254\000\000\t\006\000\000-\134\000\000\001~\000\000\237\006\000\000\t\006\000\000.\170\000\000\003J\000\000\b*\000\000\b\140\000\000\0056\000\000\002\162\000\001h\014\000\000\006\022\000\000\t.\000\001h\014\000\001\006\172\000\001\007\172\000\000\000\000\000\000\239\226\000\001\b\172\000\001\t\172\000\000\b\146\000\001h\014\000\001\n\172\000\001\011\172\000\000\000\000\000\000\239\226\000\001\012\172\000\001\r\172\000\000\tN\000\001h\014\000\001\014\172\000\001\015\172\000\000\000\000\000\000\239\226\000\001\016\172\000\001\017\172\000\000\b\198\000\001h\014\000\001\018\172\000\001\019\172\000\000\000\000\000\000\239\226\000\001\020\172\000\001\021\172\000\000\242\226\000\001\176~\000\000\003\198\000\001h\014\000\000\011\166\000\000\011\204\000\001h\014\000\001\022\172\000\001\023\172\000\000\000\000\000\000\239\226\000\001\024\172\000\001\025\172\000\000\t\024\000\001h\014\000\001\026\172\000\001\027\172\000\000\000\000\000\000\239\226\000\001\028\172\000\001\029\172\000\000\014v\000\001h\014\000\001\030\172\000\001\031\172\000\000\000\000\000\000\239\226\000\001 \172\000\001!\172\000\000\tj\000\001h\014\000\001\"\172\000\001#\172\000\000\000\000\000\000\239\226\000\001$\172\000\001%\172\000\000\239\226\000\001&\172\000\001'\172\000\000\000\000\000\000\239\226\000\001(\172\000\001)\172\000\000\t\182\000\000\001\002\000\000\000\000\000\000 \000\000\240\226\000\000\011\148\000\000\000\000\000\000#\140\000\000\240\226\000\000\014V\000\000\000\000\000\001h\014\000\000\001~\000\000\000\000\000\000\000\000\000\000\000\000\000\000\011~\000\000\000\000\000\001h\014\000\000\000\000\000\000\024\222\000\001\182\018\000\000\000\000\000\001h\014\000\000\024\234\000\001h\014\000\000'\"\000\000\000\000\000\000(F\000\000\000\000\000\000\026\222\000\000\012\162\000\000\000\000\000\000\n*\000\001h\014\000\000\012\214\000\000\000\000\000\000\015\030\000\000\000\000\000\000\004\166\000\000\000\000\000\000\000\003\000\000\001:\000\000\000\000\000\000\000\000\000\000\000\000\000\000($\000\001h\014\000\000%\220\000\001h\014\000\000)H\000\000\011B\000\000\n\168\000\000\173\134\000\000\t\224\000\000\012X\000\000\006\202\000\000\012\220\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\134\000\000\020\134\000\000\161\194\000\000\025\020\000\000\172~\000\000\227x\000\000\000\000\000\000\n\016\000\000\012\230\000\000\012~\000\001h\014\000\000\012\150\000\000\012\240\000\001{>\000\000\r\150\000\000\r\154\000\000\r\162\000\001h\014\000\000\012\202\000\000\000\000\000\000\000\000\000\000\026:\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\028\158\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\157\198\000\000 \206\000\000\n*\000\000\000*\000\000\b<\000\000\000\000\000\000\000\000\000\000\002\214\000\000\000\000\000\000\027\196\000\000\015\184\000\000\015\172\000\000\025\020\000\000\"\016\000\000\000\000\000\000\025\020\000\000\151\138\000\000\161\232\000\000\025\020\000\000\234$\000\000\155\020\000\000\016b\000\001\163\156\000\001\171\158\000\000\000\000\000\001\173\216\000\000\172\152\000\000\151\138\000\000\151\138\000\000\000\000\000\000\000\000\000\000\000\000\000\000\162\028\000\000\025\020\000\000\000\003\000\000\000\003\000\000\n*\000\000\003\000\000\000\b\180\000\000\000\000\000\000\015D\000\000\016\162\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\162\028\000\000\025\020\000\000\000\003\000\000\027@\000\001{\240\000\000\162\254\000\000\000\003\000\000\001\"\000\000\174h\000\001\147|\000\000\014\b\000\000\015\208\000\000\015p\000\001h\014\000\000\014\156\000\000\015\208\000\001\135\222\000\000\014\160\000\000\016\128\000\000\016N\000\001h\014\000\000\014\246\000\000\000\000\000\000\000\000\000\001s6\000\001|\156\000\001s6\000\000\000\000\000\000\b\180\000\000\000\000\000\000\017T\000\000\000\000\000\000\028\002\000\001h\014\000\000\004\208\000\000\001\030\000\000\227x\000\000\162\018\000\000\025\020\000\000\227x\000\000\000\000\000\000\017\134\000\000\000\000\000\000\000\000\000\000\016R\000\000\017\198\000\000\000\000\000\000\000\000\000\000\227x\000\000\227x\000\000\b\180\000\000\017\148\000\000\000\000\000\000\017\134\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\024\000\001}N\000\000\015\226\000\000\018\024\000\000\017\148\000\001h\014\000\000\015\222\000\000\000\000\000\000\000\000\000\000\227x\000\000\000\000\000\000\000\000\000\000\226h\000\000\026\138\000\000\001\210\000\000\014\148\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002D\000\000\031\200\000\001s6\000\000\000\000\000\000\162\018\000\000\025\020\000\000\227x\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\227x\000\000\000\000\000\001\166\b\000\001~\000\000\000\017@\000\000\018\148\000\000\018\014\000\001h\014\000\000\017\002\000\000\000\000\000\000\000\000\000\000\227x\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\167\020\000\000\227x\000\001\182\018\000\000\228\136\000\000\157\198\000\000\005\158\000\000\019\004\000\000\227x\000\000\000\000\000\000\"\214\000\000\019\n\000\000\000\000\000\000\030\210\000\000\000\000\000\001~\178\000\000\017t\000\000\019<\000\000\018\184\000\001h\014\000\000\018\030\000\000\000\000\000\000\000\000\000\000\227x\000\000\000\000\000\000\000\000\000\001\184\196\000\001h\014\000\000\001\134\000\000\000\000\000\000\227x\000\001\185,\000\000\0038\000\000\000\000\000\000\000\000\000\000\019\226\000\000\000\000\000\000\028\216\000\000\000\000\000\001|\156\000\000\000\000\000\000\020$\000\000\000\000\000\000\031\004\000\001j6\000\000\000\000\000\000\000\000\000\000\000\000\000\001\185x\000\000#b\000\000\000\000\000\000\028\216\000\000\000\000\000\000#\198\000\000\017B\000\000\b\180\000\000\018:\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\212\000\000\000\000\000\000\000\000\000\000\0206\000\000\000\000\000\000\227x\000\000\000\000\000\000\000\000\000\000\000\000\000\000#\148\000\000\227x\000\000$\184\000\000\000\000\000\000\000\000\000\000'\000\000\001\136\144\000\000\017\216\000\000\020\236\000\000\020n\000\001h\014\000\000\018&\000\000\000\000\000\000\000\000\000\000\227x\000\000\000\000\000\000\000\000\000\000*l\000\000\020\236\000\001\137B\000\000\018\012\000\000\021\150\000\000\021:\000\001h\014\000\000\018~\000\000\000\000\000\000\000\000\000\000\227x\000\000\000\000\000\000\000\000\000\000+\144\000\000\227x\000\000\021\132\000\001\137\244\000\000\018&\000\000\022h\000\000\021\240\000\001h\014\000\000\018\162\000\000\000\000\000\000\000\000\000\000\227x\000\000\000\000\000\000\000\000\000\000,\180\000\001b\\\000\000\018\252\000\000\0072\000\000\002\226\000\001\182\204\000\000\004\234\000\001h\014\000\000!(\000\000\006\176\000\000\000\000\000\000\000\000\000\000!v\000\000\000\000\000\000\000\000\000\000\0072\000\000\022\222\000\000\000\000\000\000\022\252\000\000\000\000\000\000\000\000\000\000\0190\000\000\0072\000\000\0072\000\000\019\178\000\000\000\003\000\000\162\028\000\000\155b\000\000\155b\000\000\025\020\000\000\"\016\000\000\157T\000\000\025\020\000\000\175J\000\000\164\016\000\000\165\"\000\000\011\240\000\000\006\028\000\000\176,\000\000\029\128\000\000\155\188\000\000\177\014\000\000\162\028\000\000\025\020\000\000\020\134\000\000\029\128\000\000\020\134\000\000\177\240\000\000\020\134\000\000\162\028\000\000\025\020\000\000\152\156\000\000\162\028\000\000\025\020\000\000\000\003\000\001j\232\000\000\025\020\000\001j6\000\000\227x\000\000#\198\000\000\000\003\000\000\162\018\000\000\025\020\000\000\158\226\000\000\004\232\000\000\000\000\000\001k\154\000\000\154\142\000\000\154\142\000\000\157\158\000\001\182\204\000\000\005\158\000\001h\014\000\000\000]\000\000\000\000\000\000\001\134\000\000\000\000\000\000\000\000\000\000\023 \000\000\000\000\000\000\0232\000\000\000\000\000\000\164\198\000\001\182\204\000\000\006\194\000\001h\014\000\000%\184\000\000\000\000\000\000&\220\000\000\000\000\000\000\000\000\000\001k\154\000\000\019\178\000\000\023v\000\000\000\000\000\000\019\178\000\000\023\148\000\000\000\000\000\000\000\000\000\000\000\000\000\000\154\142\000\000\019\136\000\000\023X\000\000\023\020\000\000\t\006\000\000):\000\000\000\000\000\000\003R\000\000\t\006\000\000*(\000\000\000\000\000\000\000\000\000\000\023\244\000\000\000\000\000\000\028\172\000\000\000\000\000\000\000\000\000\000\169j\000\001\182\204\000\000\0072\000\001h\014\000\000\b6\000\000\000\000\000\001\138\166\000\000\170\158\000\001\182\204\000\000\007\230\000\001h\014\000\000\n~\000\000\n\166\000\000\024 \000\000\000\000\000\000\024Z\000\000\000\000\000\000\024r\000\000\000\000\000\001\164\026\000\000\154\142\000\000\171T\000\001\182\204\000\000\bV\000\001h\014\000\000\011\162\000\000\000\000\000\001\138\166\000\000\226*\000\000\000\000\000\001\182\204\000\000\t\004\000\001h\014\000\000\012\198\000\000\000\000\000\000\000]\000\000\024\130\000\000\000\000\000\000\024\154\000\000\000\000\000\000\000\000\000\000\000\000\000\001e\224\000\000\000\000\000\000\000\000\000\000\001~\000\000\236\024\000\000\004$\000\000\000\000\000\000\024\132\000\000\178\210\000\001j\232\000\000\025\020\000\001j6\000\000*\012\000\000\179\180\000\000\019\188\000\000\024\230\000\000\006\202\000\000\025.\000\000\000\000\000\000\000\000\000\000\020\134\000\000\020\134\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002F\000\000 \236\000\000\028\\\000\000\000\000\000\000\166\004\000\000\166\230\000\000\155b\000\000\025\020\000\000\"\016\000\000\0005\000\000\005\022\000\000\r\150\000\000\000\000\000\000\024p\000\000\027\196\000\000\226j\000\000\025T\000\000\027\196\000\000\0005\000\000\005\022\000\000\014\134\000\000\000\000\000\000\025X\000\000\027\196\000\000\000\000\000\001\139:\000\000\n\174\000\000\155\020\000\000\b\180\000\000\bZ\000\001\182v\000\000\000\000\000\001h\014\000\001\127F\000\001h\014\000\001s\202\000\001\128\004\000\001h\014\000\000\012\244\000\001h\014\000\001\128\194\000\000\000\000\000\000\015\136\000\000\018\170\000\000\t\n\000\000\027\196\000\001\139\248\000\000\000\000\000\000\025Z\000\000\027\196\000\001\140\182\000\000\027\196\000\001\141t\000\001\1422\000\000\018\128\000\000\018\234\000\001l.\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\142\240\000\000\027\196\000\001\143\174\000\000\000\023\000\000\0010\000\001t\136\000\000\016\162\000\000\0010\000\001u`\000\000\000\000\000\001\144l\000\000\n\174\000\000\000\000\000\001v8\000\001\145*\000\000\000\000\000\001\145\232\000\001\146\166\000\000*r\000\000\000\000\000\000$\228\000\000\000\000\000\000\025\166\000\000\000\000\000\000\025\148\000\000\"\016\000\000\000\000\000\001m\014\000\000\157T\000\000\000\000\000\000\030p\000\000\000\000\000\000\027\196\000\000)t\000\000\000\000\000\000\025\220\000\000\000\000\000\000\000\000\000\000\000\000\000\000\026$\000\000\000\000\000\001fx\000\000\000\000\000\000\006b\000\000\027\196\000\000*\152\000\000\000\000\000\000\167\200\000\000\168\170\000\001\147|\000\000\156\004\000\001h\014\000\000\016\192\000\000\000\003\000\000\162\018\000\000\025\020\000\000\227x\000\000\031\004\000\000\000\003\000\000\000\003\000\000\162\028\000\000\025\020\000\000\020\134\000\000\029\128\000\000\025\234\000\000\000\000\000\000\020\134\000\000\003j\000\000\b\252\000\000\159\248\000\001j\232\000\000\025\020\000\001j6\000\000\"p\000\000\159\248\000\000\180\150\000\001j\232\000\000\025\020\000\001j6\000\000\000\000\000\000\000\000\000\000\020\134\000\000\020$\000\000\025\236\000\000\006\202\000\000\026>\000\000\000\000\000\000\000\000\000\000\026\000\000\000\000\000\000\000\020\134\000\000\004\142\000\000\026F\000\000\000\000\000\000\b\180\000\000\000\000\000\000\024N\000\000\000\003\000\000\026\150\000\000\000\000\000\000+0\000\000\181x\000\000\020T\000\000\026t\000\000\006\202\000\000\026\198\000\000\000\000\000\000\000\000\000\000\020\134\000\000\030\164\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001j\232\000\000\025\020\000\001j6\000\000,T\000\000\227x\000\000\000\000\000\000\021\170\000\000\031\200\000\000\0140\000\000\000\003\000\000\000\000\000\000\000\000\000\000-x\000\000\182Z\000\001j\232\000\000\025\020\000\001j6\000\000.\156\000\000/\192\000\000\183<\000\001j\232\000\000\025\020\000\001j6\000\0000\228\000\0002\b\000\000\000\000\000\000\022\206\000\000 \236\000\000\184\030\000\001j\232\000\000\025\020\000\001j6\000\000\000\000\000\000\000\000\000\000\000\003\000\000\172\152\000\000\000\003\000\000\000\000\000\000\000\000\000\000\185\000\000\001j\232\000\000\025\020\000\001j6\000\0003,\000\0004P\000\000\185\226\000\001j\232\000\000\025\020\000\001j6\000\0005t\000\0006\152\000\000\186\196\000\001j\232\000\000\025\020\000\001j6\000\0007\188\000\0008\224\000\000\187\166\000\001j\232\000\000\025\020\000\001j6\000\000:\004\000\000;(\000\000\188\136\000\001j\232\000\000\025\020\000\001j6\000\000\148\000\000?\184\000\000\190L\000\001j\232\000\000\025\020\000\001j6\000\000@\220\000\000B\000\000\000\191.\000\001j\232\000\000\025\020\000\001j6\000\000C$\000\000DH\000\000\192\016\000\001j\232\000\000\025\020\000\001j6\000\000El\000\000F\144\000\000\192\242\000\001j\232\000\000\025\020\000\001j6\000\000G\180\000\000H\216\000\000\193\212\000\001j\232\000\000\025\020\000\001j6\000\000I\252\000\000K \000\000\194\182\000\001j\232\000\000\025\020\000\001j6\000\000LD\000\000Mh\000\000\195\152\000\001j\232\000\000\025\020\000\001j6\000\000N\140\000\000O\176\000\000\196z\000\001j\232\000\000\025\020\000\001j6\000\000P\212\000\000Q\248\000\000\197\\\000\001j\232\000\000\025\020\000\001j6\000\000S\028\000\000T@\000\000\198>\000\001j\232\000\000\025\020\000\001j6\000\000Ud\000\000V\136\000\000\199 \000\001j\232\000\000\025\020\000\001j6\000\000W\172\000\000X\208\000\000\200\002\000\001j\232\000\000\025\020\000\001j6\000\000Y\244\000\000[\024\000\000\200\228\000\001j\232\000\000\025\020\000\001j6\000\000\\<\000\000]`\000\000\201\198\000\001j\232\000\000\025\020\000\001j6\000\000^\132\000\000_\168\000\000\202\168\000\001j\232\000\000\025\020\000\001j6\000\000`\204\000\000a\240\000\000\203\138\000\000\020n\000\000\026\166\000\000\006\202\000\000\026\242\000\000\000\000\000\000\000\000\000\000\020\134\000\000\"\016\000\001j\232\000\000\025\020\000\001j6\000\000c\020\000\000d8\000\000\204l\000\001j\232\000\000\025\020\000\001j6\000\000e\\\000\000f\128\000\000\025\020\000\001v\232\000\000\157\198\000\000\228J\000\000\026\244\000\000\158\226\000\000\000\003\000\000\000\000\000\000\000\000\000\000\n\134\000\000\018\158\000\000\000\000\000\000\026R\000\000\178\210\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\158\226\000\001\182\204\000\000\020\132\000\000\026@\000\001h\014\000\000\000]\000\000\000\003\000\000\000\000\000\000\026d\000\000\000\003\000\000\000\000\000\000\tz\000\001h\014\000\000\0044\000\000\000\003\000\000\000\000\000\000\026n\000\000\000\003\000\000\000\000\000\000\020,\000\000\000\003\000\000\000\000\000\000\026\134\000\000\000\003\000\000\000\000\000\000\000\000\000\000\026\144\000\000\000\003\000\000\000\000\000\000\154\130\000\001h\014\000\000\006|\000\000\000\003\000\000\000\000\000\000\026\150\000\000\000\003\000\000\000\000\000\000\026\152\000\000\000\003\000\000\000\000\000\000-\216\000\000\000\003\000\000\000\000\000\001\148.\000\000\020\172\000\000\027\n\000\000\026v\000\001h\014\000\000\020\"\000\000\000\000\000\000\000\000\000\000\227x\000\000\000\000\000\000\000\000\000\000.\252\000\000\227x\000\0000 \000\000\0038\000\000\000\000\000\000\0038\000\001g(\000\001\182\204\000\000\n(\000\001h\014\000\000\007\160\000\000\000\003\000\000\000\000\000\000\026\164\000\000\000\003\000\000\000\000\000\000\020\160\000\000\000\003\000\000\000\000\000\000\026\180\000\000\000\003\000\000\000\000\000\000\000\000\000\000\026\190\000\000\000\003\000\000\000\000\000\000\000\000\000\001\153Z\000\001\153Z\000\000\000\000\000\000\000\000\000\000\000\000\000\000g\164\000\000\000\003\000\000\027j\000\000\000\000\000\000\000\003\000\000\027\138\000\000\000\000\000\000\018\228\000\000\r\140\000\000\159\248\000\000\027\146\000\000\000\000\000\001m\214\000\000\161\n\000\000\000\000\000\000\159\248\000\000\027\184\000\000\000\000\000\000\159\248\000\000\027\202\000\000\000\000\000\000\000\000\000\000\020\134\000\000\005\178\000\000\r\180\000\000\159\248\000\000\027\212\000\000\006\214\000\000\205N\000\001j\232\000\000\025\020\000\001j6\000\000h\200\000\000i\236\000\000\159\248\000\000\027\236\000\000\007\250\000\000\2060\000\001j\232\000\000\025\020\000\001j6\000\000k\016\000\000l4\000\000\159\248\000\000\027\240\000\000\t\030\000\000\207\018\000\001j\232\000\000\025\020\000\001j6\000\000mX\000\000n|\000\000\031\174\000\000\000\003\000\000\028\004\000\000\nB\000\000\207\244\000\001j\232\000\000\025\020\000\001j6\000\000o\160\000\000p\196\000\000\000\003\000\000\028\b\000\000\011f\000\000\208\214\000\001j\232\000\000\025\020\000\001j6\000\000q\232\000\000s\012\000\000\000\003\000\000\028\n\000\000\012\138\000\000\209\184\000\001j\232\000\000\025\020\000\001j6\000\000t0\000\000uT\000\000\019\190\000\000\014\176\000\000\159\248\000\000\028\024\000\000\r\174\000\000\210\154\000\001j\232\000\000\025\020\000\001j6\000\000vx\000\000w\156\000\000\159\248\000\000\028\028\000\000\014\210\000\000\211|\000\001j\232\000\000\025\020\000\001j6\000\000x\192\000\000y\228\000\000\159\248\000\000\028<\000\000\015\246\000\000\212^\000\001j\232\000\000\025\020\000\001j6\000\000{\b\000\000|,\000\000\017\026\000\000\213@\000\001j\232\000\000\025\020\000\001j6\000\000}P\000\000~t\000\000\018>\000\000\023\242\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\028H\000\000\000\000\000\000\159\248\000\000\028J\000\000\000\000\000\000\159\248\000\000\028R\000\000\000\000\000\000\000\000\000\000\003\128\000\000\000\000\000\000\000\000\000\000\000\003\000\000\027\180\000\000\000\003\000\000\027\186\000\000\000\000\000\000\000\000\000\0001D\000\000\000\003\000\000\000\000\000\000\003\b\000\000\000\003\000\000\000\000\000\001\147|\000\000\000\000\000\000\000\000\000\001\129v\000\000\028\138\000\000\000\000\000\000\169\140\000\001j\232\000\000\025\020\000\001j6\000\000'2\000\000\214\"\000\001j\232\000\000\025\020\000\001j6\000\000\006\246\000\001w\130\000\000\025\020\000\0001\208\000\000\025\020\000\001j6\000\000\227x\000\000%\220\000\000\215\004\000\001j\232\000\000\025\020\000\001j6\000\000\027\n\000\001n$\000\000\227x\000\000)H\000\000\215\230\000\001j\232\000\000\025\020\000\001j6\000\000\173 \000\001o\018\000\000\227x\000\0003\140\000\000\216\200\000\001j\232\000\000\025\020\000\001j6\000\000\226\190\000\001o`\000\000 (\000\000\217\170\000\001j\232\000\000\025\020\000\001j6\000\000\230\172\000\001pN\000\000\218\140\000\001j\232\000\000\025\020\000\001j6\000\000\003\208\000\000\219n\000\001j\232\000\000\025\020\000\001j6\000\000\2314\000\001p\156\000\001m\214\000\000\220P\000\001j\232\000\000\025\020\000\001j6\000\000\231\\\000\001q\138\000\000\000\000\000\000\000\000\000\000\000\000\000\000\011\022\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\027\192\000\000\000\000\000\001m\214\000\000\012z\000\000\000\000\000\000\170\158\000\001j\232\000\000\025\020\000\001j6\000\000\029\004\000\000\t\226\000\000\000\000\000\000\000\000\000\000\027\196\000\000\000\000\000\001m\214\000\000\011\022\000\000\000\000\000\000\171\176\000\000\000\000\000\001j\232\000\000\025\020\000\001j6\000\000&\240\000\000\r\206\000\000\000\000\000\000\028\192\000\000\000\000\000\001m\214\000\000\014\154\000\000\000\000\000\000\011\240\000\000\028Z\000\000\000\000\000\000\029\128\000\000 X\000\000\b\180\000\000\000\000\000\000\028d\000\000\000\000\000\000\014\206\000\000\020\164\000\000\015\140\000\000\000\000\000\000\000\000\000\000\028\234\000\000\000\000\000\000\001\204\000\000#4\000\000\158Z\000\000\000\000\000\000#4\000\001j\232\000\000\025\020\000\001j6\000\000\127\152\000\000\128\188\000\000\000\000\000\000\000\000\000\000\028\194\000\000\000\003\000\000\000\000\000\000\000\003\000\000\000\000\000\000\000\000\000\000\000\000\000\000\129\224\000\000\029\028\000\000\2212\000\001j\232\000\000\025\020\000\001j6\000\000\131\004\000\000\222\020\000\001j\232\000\000\025\020\000\001j6\000\000\132(\000\000\133L\000\000\134p\000\000\222\246\000\001j\232\000\000\025\020\000\001j6\000\000\135\148\000\000\136\184\000\000\000\000\000\000\028l\000\000\000\000\000\000 \234\000\000\223\216\000\000\020\224\000\000\028\230\000\000\006\202\000\000\029*\000\000\000\000\000\000\000\000\000\000\020\134\000\000$X\000\001j\232\000\000\025\020\000\001j6\000\000\137\220\000\000\139\000\000\001j\232\000\000\025\020\000\001j6\000\000\011\152\000\000\000\000\000\001m\214\000\000\000\000\000\000\019b\000\000\029&\000\000\000\000\000\000%|\000\001j\232\000\000\025\020\000\001j6\000\000\003\208\000\000*\242\000\000\000\000\000\000-x\000\000\029(\000\000\000\000\000\001j\232\000\000\025\020\000\001j6\000\000\027@\000\001w\130\000\000\021T\000\000\020\226\000\000\000\000\000\000\000\000\000\000\028\186\000\000\000\000\000\001j\232\000\000\025\020\000\001j6\000\000&\240\000\000\015\190\000\000\000\000\000\000\029L\000\000\000\000\000\001m\214\000\000\016\022\000\000\000\000\000\001j\232\000\000\025\020\000\001j6\000\000\029\004\000\000\011.\000\000\000\000\000\000\000\000\000\000\028x\000\000\000\000\000\001m\214\000\000\r^\000\000\000\000\000\001j\232\000\000\025\020\000\001j6\000\000\027\136\000\000\000\000\000\000\027\196\000\000+\186\000\000\000\000\000\000\027\196\000\000\153\154\000\000\000\000\000\000\027\196\000\000+\188\000\000\000\000\000\001n$\000\000\000\000\000\000\027\196\000\000,\186\000\000\000\000\000\000\027\196\000\000\153\232\000\000\000\000\000\000\027\196\000\000,\222\000\000\000\000\000\000\006\168\000\000\000\003\000\000\000\000\000\000\025\020\000\000\"\016\000\000\007\204\000\000\000\003\000\000\000\000\000\000\n*\000\000\005\244\000\000\b<\000\000\b<\000\000\001~\000\000\029`\000\000\000\000\000\000\005\022\000\000\"\016\000\001\165\154\000\000\027\196\000\0002n\000\000\"\016\000\001\166L\000\000\028\188\000\000\"\016\000\001\166\254\000\000\028\244\000\000\000\003\000\000\000\000\000\000\005\022\000\000\000\000\000\000\028\204\000\000\"\016\000\001\167\176\000\000\000\000\000\000\030\174\000\000\025\020\000\000\"\020\000\000\000\000\000\000\004\222\000\000\029z\000\000\000\000\000\000\029~\000\000\029h\000\001u\150\000\000\014\026\000\000\000\000\000\000\000\000\000\000\029J\000\000\028\184\000\001\182\204\000\000\n\158\000\001h\014\000\000\"\202\000\000&6\000\000\000\015\000\000\021\158\000\000\024\234\000\000\000\000\000\000(~\000\000\029\150\000\000\000\000\000\000*.\000\000\000\000\000\000\000\000\000\000\236\024\000\001\130>\000\001\154\012\000\000\029\170\000\000\236\024\000\000\236\024\000\001\130>\000\001\154\190\000\001\130>\000\001\155p\000\000\000\000\000\001\130 \000\001\156\"\000\001\146\236\000\001\1830\000\000\001~\000\000\233(\000\000\t\006\000\000/\206\000\000\235\206\000\001\1862\000\000\245\254\000\000\t\006\000\0000\242\000\000\001~\000\000\237X\000\000\t\006\000\0002\022\000\000\b\162\000\000\014\190\000\001u\150\000\000\029v\000\000\236\024\000\001\156\220\000\001\130\250\000\000\029\140\000\000\236\024\000\001\157\150\000\001\131\184\000\000\004>\000\000\029R\000\000\000\003\000\000\000\000\000\000\000\000\000\000\025\020\000\001r\132\000\000\000\000\000\001v\232\000\001\153Z\000\000\000\000\000\000\000\000\000\000\030\000\000\000\000\000\000\000\019\178\000\000\030\016\000\000\000\000\000\000\000\000\000\000\000\000\000\001j\232\000\000\025\020\000\001j6\000\000\140$\000\000\141H\000\000\000\000\000\001j\232\000\000\025\020\000\001j6\000\000'2\000\000\r^\000\000\000\000\000\000\000\000\000\000\029H\000\000\000\000\000\001m\214\000\000\014\154\000\000\000\000\000\000\000\000\000\000\155b\000\000\025\020\000\000\"\016\000\000\011N\000\000\000\000\000\000\027\196\000\000,\224\000\000\000\000\000\000\015\022\000\000\000\000\000\000\021\134\000\000\000\000\000\000\030\026\000\000\000\000\000\000\030F\000\001j6\000\000\142l\000\000\000\000\000\000\030H\000\000\224\186\000\001j\232\000\000\025\020\000\001j6\000\000\143\144\000\000\144\180\000\000\161\190\000\000\155b\000\000\025\020\000\000\"\016\000\001\174\006\000\000\000\000\000\000\025\020\000\000\"\016\000\001\174\006\000\000\000\000\000\000\030\206\000\000\n*\000\000\003\000\000\000\001~\000\001\177`\000\000\027\196\000\001\168b\000\001\153Z\000\000\000\000\000\000\005\244\000\000\b<\000\000\b<\000\000\005\022\000\001\153Z\000\001\180 \000\000\005\244\000\000\b<\000\000\005\022\000\001\153Z\000\001\180 \000\000\000\000\000\000\000\000\000\000\005\022\000\001\153Z\000\000\000\000\000\000\172\152\000\000\151\138\000\000\227x\000\000\150\186\000\000\000\003\000\000\000\000\000\000\172\152\000\000\151\138\000\000\029\230\000\000\029\130\000\000\t\006\000\001\174\184\000\000\227\254\000\000\000\000\000\000\000\240\000\000\0005\000\000\0038\000\000\029n\000\001\182\204\000\000\017\000\000\001h\014\000\001\158H\000\000\021P\000\000\029\160\000\000\030z\000\001\178\"\000\000\000\000\000\001\153Z\000\000\000\000\000\001\158\224\000\000\030\174\000\000\025\020\000\000\"\020\000\001\168\250\000\000&\170\000\000\020\214\000\000\002J\000\000\020J\000\000\028\\\000\000\025\020\000\001\153Z\000\000\000\000\000\000\025\020\000\001\153Z\000\000\000\000\000\001h\014\000\000\000\000\000\000\004\014\000\000\026\026\000\000\026\026\000\000\024\214\000\000\rH\000\000\000\000\000\000\016\024\000\000\151\022\000\000\000\000\000\000\021\202\000\000\000\000\000\000\151\022\000\000\000\000\000\000\030:\000\000\029\212\000\000\158\176\000\000\025\020\000\000\030\184\000\001h\014\000\000\020n\000\000\000\000\000\000$l\000\000\012(\000\000\016\184\000\000\021t\000\000\000\000\000\000\022\022\000\000\000\000\000\000\030B\000\000\029\174\000\001h\014\000\000\162\254\000\000\000\000\000\000\025\020\000\000\027 \000\000\022\176\000\000\000\000\000\000\022\142\000\000\000\000\000\000\030F\000\000\029\180\000\001\182\204\000\000\156>\000\000\000\000\000\000\025\020\000\000\158\176\000\000\030l\000\000\006\022\000\000\000*\000\000\000\003\000\000\016t\000\000\158\176\000\001h\014\000\000\022&\000\000\n\238\000\000\000\000\000\001h\014\000\000\023\230\000\000\0242\000\000\000\000\000\000\000\000\000\001\159x\000\000\000\000\000\000\000\003\000\000\021\004\000\000\158\176\000\001\1604\000\000\162\254\000\000\000\000\000\000\025\020\000\001h\014\000\000\022\026\000\001h\014\000\000\028\\\000\000\156>\000\000\000\000\000\000\029\234\000\000\000\000\000\000\156>\000\000\000\000\000\000\000\000\000\000$l\000\000\000\000\000\001\174\006\000\001\180\210\000\000\024\214\000\000\rH\000\000\016\024\000\000\030\\\000\000\029\250\000\000\158\176\000\001\174\006\000\001\180\210\000\000\000\000\000\000\000\000\000\000\024\214\000\000\rH\000\000\016\024\000\000\030t\000\001x(\000\000\154\142\000\000\152\014\000\000\025\020\000\000\172~\000\000\151\172\000\000\025z\000\000\012(\000\000\021\204\000\000\000\000\000\000\030\130\000\000\017\b\000\000\000\003\000\000\000\000\000\000\030\030\000\000\000\003\000\000\000\000\000\000\162\254\000\000\000\000\000\000\020\242\000\000\022l\000\000\000\000\000\000\023\028\000\000\000\000\000\000\030\140\000\000\030\b\000\001h\014\000\000\161\n\000\000\030\162\000\000\017^\000\000\000\003\000\000\000\000\000\000\030:\000\000\000\003\000\000\000\000\000\000\025\194\000\000\017\002\000\000\023&\000\000\000\000\000\000\030\182\000\001x\218\000\001\183\134\000\000\020\132\000\000\0308\000\001h\014\000\000\022\186\000\000\000\003\000\000\000\000\000\000\030Z\000\000\000\003\000\000\000\000\000\000\000\000\000\000\162\254\000\000\000\000\000\000\028\n\000\000\023\212\000\000\000\000\000\000\023\144\000\000\000\000\000\000\030\226\000\000\030X\000\001\182\204\000\000\000\000\000\000\030\242\000\001y\140\000\001\183\250\000\000\020\132\000\000\030z\000\001h\014\000\000\023b\000\000\000\003\000\000\000\000\000\000\030\146\000\000\000\003\000\000\000\000\000\000\000\000\000\000\025\020\000\000\000\003\000\000\162\254\000\000\000\000\000\000\025|\000\000\025\020\000\000\152\014\000\000\152\014\000\001e.\000\000\172\152\000\000\025\020\000\001r\132\000\001v\232\000\000\015\158\000\000\000\000\000\000\018~\000\000\000*\000\000\000\003\000\000\022(\000\000\152\014\000\001h\014\000\000\023J\000\000\b\180\000\000\000\000\000\000\025\020\000\001x(\000\001x(\000\000\152\014\000\000\015B\000\000\152\014\000\000\000\000\000\000\155\170\000\000\156\190\000\000\000\000\000\001\148\194\000\000\000\000\000\000\000\000\000\001\149~\000\000\000\000\000\000\000\000\000\001\150:\000\000\000\003\000\000\022\\\000\000\152\014\000\001\150\246\000\001r\132\000\001v\232\000\000\015\158\000\000\000\000\000\000\004v\000\000\000\000\000\001mT\000\001\152*\000\000\236\024\000\000\031\014\000\001mT\000\001\179r\000\000 ,\000\000\031\018\000\001mT\000\000\236\024\000\000\031\024\000\001mT\000\000\022\204\000\000&\160\000\001\160\200\000\001\161\252\000\000\000\000\000\001\178\182\000\000\000\000\000\000\000\000\000\000\031d\000\000\000\000\000\000\027@\000\000\031.\000\000\000\000\000\000\162\254\000\000\000\000\000\000\152\014\000\000\027@\000\000\162\254\000\000\000\000\000\000\025\020\000\001h\014\000\000\162\254\000\000\000\000\000\000\030\216\000\000\000\000\000\000\162\254\000\000\000\000\000\000\000\000\000\000\151\172\000\000\000\000\000\001\174\240\000\001mT\000\000\030\248\000\000\152\014\000\001\175\144\000\001x(\000\000\000\000\000\001\153Z\000\001\180\230\000\000\024\214\000\000\rH\000\000\016\024\000\000\031p\000\001x(\000\001\153Z\000\001\180\230\000\000\000\000\000\000\000\000\000\000\000\000\000\001\187\180\000\000\162\028\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\179<\000\000\000\000\000\001\153Z\000\000\000\000\000\000\155b\000\000\025\020\000\000\"\016\000\001\174\006\000\000\000\000\000\001\181\152\000\000\025\000\000\000\155\020\000\000\031x\000\001vj\000\001\171\158\000\000\000\000\000\001\173\216\000\001\181\152\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001e\224\000\001\187\180\000\000\000\000\000\000\000\000\000\000\000\000\000\001\179<\000\000\031\184\000\000\000\000\000\000\031\188\000\000\000\000\000\001e\224\000\001\187\180\000\000\000\000\000\000\000\000\000\000\031\198\000\000\000\000\000\000\000\000\000\000\031\196\000\000\159n\000\000\"\020\000\000\"\020\000\001\162\156\000\000&\170\000\000\025\020\000\000\000\000\000\000\025\020\000\000\000\000\000\001\153Z\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\164\174\000\000&\170\000\000\025\020\000\000\000\000\000\000\025\020\000\000\000\000\000\000\020\014\000\001\163\156\000\001\171\158\000\000\000\000\000\001\173\216\000\000\000\000\000\000\031\218\000\000\159n\000\000\"\020\000\001\153Z\000\000\000\000\000\000\031@\000\000\000\000\000\001\132t\000\000-\222\000\000\000\000\000\000\227x\000\000\000\000\000\000\000\000\000\001\186,\000\000\031(\000\001\132\246\000\000\022\004\000\000\031\198\000\000\0312\000\001h\014\000\000\021\146\000\000\000\000\000\000\000\000\000\000\227x\000\000\000\000\000\000\000\000\000\001\186\148\000\000\">\000\000\000\000\000\001h\014\000\000\022\182\000\000\000\000\000\000\151\172\000\000\031f\000\000\000\000\000\000&\160\000\000\020\134\000\000'\196\000\001j\232\000\000\025\020\000\001j6\000\000\145\216\000\000\146\252\000\000\031L\000\000\225\156\000\000\023\140\000\000\031\230\000\000\006\202\000\000 ,\000\000\000\000\000\000\000\000\000\000\020\134\000\000(\232\000\001j\232\000\000\025\020\000\001j6\000\000\148 \000\000\149D\000\000 ^\000\001j6\000\000\150h\000\000\000\000\000\000 D\000\000\000\000\000\000\028\132\000\001\182\204\000\000\012X\000\000\006L\000\000\025\020\000\001tH\000\000\000\000\000\000\000\000\000\000 \250\000\001\127\196\000\000\000\000\000\000\000\000\000\000\031\182\000\000\000\000\000\000\018\154\000\001h\014\000\000\023\014\000\000\025h\000\001h\014\000\001*\172\000\001+\172\000\000\000\000\000\000\239\226\000\001,\172\000\001-\172\000\000 \026\000\001h\014\000\001.\172\000\001/\172\000\000\000\000\000\000\239\226\000\0010\172\000\0011\172\000\001\179r\000\000\014\026\000\000 R\000\000\000\000\000\000\014\026\000\000 Z\000\000\000\000\000\000\000\000\000\001\161h\000\001\162\156\000\001\1726\000\000\"\020\000\000\000\000\000\000\000\000\000\000\000\000\000\001\172\214\000\000\000\000\000\001\162\156\000\000\014\026\000\000 ^\000\000\000\000\000\000\014\026\000\000 `\000\000\000\000\000\000\000\000\000\000\000\000\000\001\169\146\000\000\159\166\000\000\153~\000\000\014\026\000\000 d\000\000\000\000\000\000\014\026\000\000 f\000\000\000\000\000\000\000\000\000\000\000\000\000\000\014\026\000\000 j\000\000\000\000\000\000\014\026\000\000 p\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\163L\000\000\000\000\000\001|\b\000\000\000\000\000\000 l\000\000\159n\000\000%\134\000\001|\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\023\152\000\001\171\024\000\001\171\176\000\001\163L\000\000\000\000\000\001|\b\000\000\000\000\000\000 z\000\000\159n\000\000%\134\000\001|\b\000\000\000\000\000\000\230\216\000\000\030\174\000\000\n*\000\000\000*\000\000\0010\000\001\153Z\000\000\000\000\000\000\000*\000\000\0010\000\001\153Z\000\000\000\000\000\000\":\000\000\n*\000\000\003\000\000\000\001~\000\000\170\158\000\000\027\196\000\001|\b\000\000\000\000\000\000\005\244\000\000\012\204\000\000\028H\000\000\0010\000\001\153Z\000\000\000\000\000\000\b<\000\000\031\188\000\000\027\196\000\001\173@\000\001|\b\000\001\188>\000\000\000*\000\000\b<\000\000\031\204\000\000\027\196\000\001\173@\000\001|\b\000\001\188>\000\000\000\000\000\000\000\000\000\000\b<\000\000\031\196\000\000\005L\000\000\000\000\000\000 \182\000\000\000\000\000\000\016~\000\000\000\003\000\001\184\014\000\000\005L\000\000\000\000\000\001e\224\000\000\000\000\000\000\027\196\000\001h\014\000\000\000\000\000\001e\224\000\000\000\000\000\000\023~\000\000\027\196\000\001\175\250\000\000\000\000\000\000\000\000\000\000\023~\000\000\000\000\000\000\000\000\000\000\030\174\000\000\025\020\000\000\"\020\000\000\164\016\000\000\026\026\000\000\024\214\000\000\rH\000\000\016\024\000\000 v\000\000\031\236\000\001mT\000\001|\b\000\001\188p\000\000\024\214\000\000\rH\000\000\016\024\000\000 \134\000\000\031\244\000\001mT\000\001|\b\000\001\188p\000\000\000\000\000\000\000\000\000\000\000\000\000\000\230\216\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001e\224\000\000\000\000\000\000\157\134\000\000\025\020\000\000\027\196\000\001\176\146\000\001h\014\000\000\000\000\000\001\181\152\000\000\000\000\000\001\188\208\000\000\025\000\000\000\155\020\000\000 \148\000\000\023*\000\000 \016\000\001\163L\000\000\000\000\000\001|\b\000\001\188\208\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000.\002\000\000\000\000\000\000\019H\000\001h\014\000\000\024D\000\000\025\180\000\001h\014\000\0012\172\000\0013\172\000\000\000\000\000\000\239\226\000\0014\172\000\0015\172\000\000 \186\000\001h\014\000\0016\172\000\0017\172\000\000\000\000\000\000\239\226\000\0018\172\000\0019\172\000\000\025\192\000\001h\014\000\001:\172\000\001;\172\000\000\000\000\000\000\239\226\000\001<\172\000\001=\172\000\000 \200\000\001h\014\000\001>\172\000\001?\172\000\000\000\000\000\000\239\226\000\001@\172\000\001A\172\000\000\243\226\000\001\176~\000\000\019N\000\001h\014\000\000\025|\000\000\026\020\000\001h\014\000\001B\172\000\001C\172\000\000\000\000\000\000\239\226\000\001D\172\000\001E\172\000\000 \212\000\001h\014\000\001F\172\000\001G\172\000\000\000\000\000\000\239\226\000\001H\172\000\001I\172\000\000\026\024\000\001h\014\000\001J\172\000\001K\172\000\000\000\000\000\000\239\226\000\001L\172\000\001M\172\000\000 \224\000\001h\014\000\001N\172\000\001O\172\000\000\000\000\000\000\239\226\000\001P\172\000\001Q\172\000\000(\252\000\000\240\226\000\000\006\130\000\001h\014\000\001R\172\000\001S\172\000\000\000\000\000\000\239\226\000\001T\172\000\001U\172\000\000 \248\000\001h\014\000\001V\172\000\001W\172\000\000\000\000\000\000\239\226\000\001X\172\000\001Y\172\000\0003@\000\000\240\226\000\000\239\172\000\001h\014\000\001Z\172\000\001[\172\000\000\000\000\000\000\239\226\000\001\\\172\000\001]\172\000\000 \252\000\001h\014\000\001^\172\000\001_\172\000\000\000\000\000\000\239\226\000\001`\172\000\001a\172\000\001\133\142\000\000\000\000\000\001\134.\000\000*x\000\000\000\000\000\000\016\000\000\0003:\000\000\000\000\000\001\187N\000\000\246\254\000\000\t\006\000\0004^\000\000\001~\000\000\247\254\000\000\t\006\000\0004\158\000\000\r2\000\000\001~\000\000\233(\000\001\179\238\000\001\153Z\000\000\000\000\000\000!0\000\000\000\000\000\000\000\003\000\000 v\000\000\000\003\000\000 \140\000\000\000\000\000\000 \168\000\000\000\000\000\000\000\000\000\000\226\254\000\000 \204\000\000\000\000\000\000\000\000\000\000%\022\000\001z\n\000\000!\134\000\000\000\000\000\000\000\000\000\000\000\000\000\000\023\252\000\000\019\190\000\001\134|\000\000!\138\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \222\000\000\000\000\000\000&\170\000\000\000\000\000\000 \228\000\000\000\000\000\001h\014\000\000\000\000\000\000\015\222\000\000\000\000\000\000\000\003\000\000 \234\000\000\000\000\000\000\000\000\000\000\0010\000\000\000\000\000\000\011\b\000\000\000\000\000\000\000\003\000\000\000\000\000\000\t\174\000\000\000\000\000\000\"\016\000\000\000\000\000\000\001\n\000\000\000\000\000\000\027\196\000\000\000\000\000\000*r\000\000\000\000\000\000\018\170\000\000\000\000\000\000!\002\000\000\000\000\000\000\227x\000\000\">\000\000\000\000\000\000\000\000\000\000\021\146\000\000!\024\000\000\000\000\000\000\000\000\000\000!\b\000\000\022\006\000\000\152\156\000\000\001~\000\001\1702\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\156\200\000\000\001~\000\001\170\174\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\187\130\000\000\000\000\000\000\000\000\000\000!\222\000\000\000\000\000\001\149t\000\000\000\000\000\000\024 \000\000!\224\000\000\000\000\000\000!\236\000\000\000\000\000\000\153\174\000\000\153\174\000\001\189V\000\001\189V\000\000\000\000\000\000\000\000\000\001\153Z\000\001\189V\000\000\000\000\000\000\000\000\000\000\000\000\000\001\153Z\000\001\189V\000\000!<\000\000\000\000\000\000!@\000\000\000\000"), (16, "\004M\000\006\004M\001f\004M\003\146\003\150\003\154\004M\003\158\003j\004M\003\170\004M\007\t\bf\004M\bj\007\t\004M\004M\004M\000\242\004M\004M\004M\001\234\007\t\007\t\007\t\bn\004M\t^\tb\019^\tf\004M\t\193\004M\tr\001b\br\000\242\tv\004\181\004M\004M\004M\t\162\t\166\004M\t\170\t\182\t\194\t\198\t\206\r\146\003\242\004M\004M\003\138\000\242\022\022\t\190\r\178\004M\004M\004M\r\182\r\186\r\198\r\210\r\234\001r\004M\nJ\004M\004M\004M\004M\004M\004M\004M\004M\004M\r\250\004M\nb\nf\000\242\r\206\r\222\004M\rN\004M\004M\004M\017\026\001^\014\006\014\030\017\226\n\134\n\138\004M\017\246\004M\004M\017\"\004M\004M\004M\004M\r\226\001v\r\230\001\134\017&\027\210\004M\019\225\004M\004M\004\n\004M\004M\004M\004M\004M\004M\004M\n\142\r\238\004M\004M\004M\015\250\007\166\004M\004M\017\250\019\225\004M\004M\004M\004M\020\017\002\206\020\017\t\201\020\017\006\006\020\017\020\017\020\017\000\n\020\017\020\017\020\017\020\017\001\230\020\017\020\017\002\210\n\145\020\017\020\017\020\017\n\145\020\017\020\017\020\017\020\017\002a\020\017\002a\020\017\020\017\020\017\020\017\020\017\b\"\020\017\020\017\020\017\001\130\017z\020\017\002a\020\017\001n\020\017\020\017\020\017\020\017\020\017\020\017\000\242\020\017\001\242\020\017\000\242\020\017\t\202\020\017\020\017\020\017\003\226\001~\020\017\020\017\020\017\020\017\020\017\020\017\020\017\020\017\011\214\020\017\004\210\020\017\020\017\020\017\020\017\020\017\020\017\020\017\020\017\020\017\020\017\020\017\001\233\020\017\020\017\020\017\020\017\020\017\020\017\020\017\n\197\020\017\020\017\020\017.\199\004\218\004~\001\246\020\017\020\017\020\017\020\017\n:\020\017\020\017\006\n\020\017\020\017\020\017\020\017\020\017\020\017\020\017\020\017\000\242\020\017\020\017\001b\020\017\020\017\004\181\020\017\020\017\020\017\020\017\020\017\020\017\020\017\020\017\020\017\020\017\020\017\020\017\020\017\020\017\020\017\020\017\001b\004\181\020\017\020\017\020\017\020\017\001\233\001\233\001\233\007\166\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\b\194\004\242\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\015\182\001\233\001\233\001\233\001\233\001\233\001\142\001\233\001\233\001\233\004F\001\233\001\233\rN\001\233\b\206\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\027\150\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\004\210\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\t\006\001\233\001\233\001\233\001\186\004\218\005\005\007\t\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\n\246\016\026\001\233!j\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\015\r\007\t\015\r\001\198\015\r\rq\015\r\015\r\015\r\t\t\015\r\015\r\015\r\015\r\000\242\015\r\015\r\t\209\006>\015\r\015\r\015\r\025f\015\r\015\r\015\r\015\r\001\006\015\r\001\190\015\r\015\r\015\r\015\r\015\r\025\150\015\r\015\r\015\r\005\005\t\t\015\r\t\t\015\r\002\002\015\r\015\r\015\r\015\r\015\r\015\r\000\242\015\r\001\146\015\r\t\n\015\r\003&\015\r\015\r\015\r\r>\025f\015\r\015\r\015\r\015\r\015\r\015\r\015\r\015\r\004F\015\r\004\210\015\r\015\r\015\r\015\r\015\r\015\r\015\r\015\r\015\r\015\r\015\r\004z\015\r\015\r\015\r\015\r\015\r\015\r\015\r\025\158\015\r\015\r\015\r\003\174\004\218'\246\001\230\015\r\015\r\015\r\015\r\011\145\015\r\015\r\rq\015\r\015\r\015\r\015\r\015\r\018\026\015\r\018\130\014\218\018\138\015\r\003\250\015\r\015\r\025j\015\r\015\r\015\r\015\r\015\r\015\r\015\r\015\r\015\r\015\r\015\r\015\r\015\r\015\r\015\r\015\r\n\185\015\r\015\r\015\r\015\r\015\r\0055\003\226\0055\000\242\0055\003\242\0055\0055\0055%\022\0055\0055\0055\0055\003*\0055\0055\025j\006\210\0055\0055\0055\000\242\0055\0055\0055\0055\000\242\0055\015\218\0055\0055\0055\0055\0055\b\022\0055\0055\0055\005v\018\226\0055\004\166\0055\007\t\0055\0055\0055\0055\0055\0055\014.\0055\ny\0055\000\242\0055\ny\0055\0055\0055\003v\0226\0055\0055\0055\0055\0055\0055\0055\0055\003\254\0055\004\210\0055\0055\0055\0055\0055\0055\0055\0055\0055\0055\0055\rN\018\n\0055\0055\018\018\0055\0055\018z\rN\0055\0055\0055\0142\004\218\014\178\000\242\0055\0055\0055\0055\re\0055\0055\b\026\0055\0055\0055\0055\0055\018\026\0055\018\130%\026\018\138\0055\016B\0055\0055\002\006\0055\0055\0055\0055\0055\0055\0055\0055\0055\0055\0055\0055\0055\0055\0055\0055\ny\0055\0055\0055\0055\0055\005%\007\190\005%\002\134\005%\000\242\005%\005%\005%\002\150\005%\005%\005%\005%\002\218\005%\005%\004\210\rF\005%\005%\005%\030N\005%\005%\005%\005%\003\242\005%\029\242\005%\005%\005%\005%\005%\003\n\005%\005%\005%\007\t\007\t\005%\004\218\005%\002\238\005%\005%\005%\005%\005%\005%\029\250\005%\005\014\005%\007\t\005%\007\t\005%\005%\005%\004F\re\005%\005%\005%\005%\005%\005%\005%\005%\006F\005%\n}\005%\005%\005%\005%\005%\005%\005%\005%\005%\005%\005%\007\t\018\n\005%\005%\018\018\005%\005%\018z\0042\005%\005%\005%(Z\005\210\000\242\000\242\005%\005%\005%\005%\003\178\005%\005%\014J\005%\005%\005%\005%\005%\018\026\005%\018\130\000\242\018\138\005%\005\138\005%\005%\005\218\005%\005%\005%\005%\005%\005%\005%\005%\005%\005%\005%\005%\005%\005%\005%\005%\017z\005%\005%\005%\005%\005%\014\169\n}\014\169\004\002\014\169-\014\014\169\014\169\014\169\000\242\014\169\014\169\014\169\014\169\r\194\014\169\014\169\004\210\001\141\014\169\014\169\014\169\000\242\014\169\014\169\014\169\014\169\007\157\014\169\017z\014\169\014\169\014\169\014\169\014\169\004J\014\169\014\169\014\169\001\141\"R\014\169\004\218\014\169\000\242\014\169\014\169\014\169\014\169\014\169\014\169\001\202\014\169\004\222\014\169\005\018\014\169\023\198\014\169\014\169\014\169\029\182\022~\014\169\014\169\014\169\014\169\014\169\014\169\014\169\014\169\017\186\014\169\004\210\014\169\014\169\014\169\014\169\014\169\014\169\014\169\014\169\014\169\014\169\014\169\001\206\014\169\014\169\014\169\014\169\014\169\014\169\014\169\rN\014\169\014\169\014\169\004F\004\218\001\210\r:\014\169\014\169\014\169\014\169\004\230\014\169\014\169\014~\014\169\014\169\014\169\014\169\014\169\014\169\014\169\014\169\001\141\014\169\014\169\003\182\014\169\014\169\b2\014\169\014\169\014\169\014\169\014\169\014\169\014\169\014\169\014\169\014\169\014\169\014\169\014\169\014\169\014\169\014\169\015\218\001\141\014\169\014\169\014\169\014\169\014\185\004F\014\185\001\141\014\185\018\226\014\185\014\185\014\185\005\170\014\185\014\185\014\185\014\185\003:\014\185\014\185\004\210\015\n\014\185\014\185\014\185\000\242\014\185\014\185\014\185\014\185\005\226\014\185\017z\014\185\014\185\014\185\014\185\014\185\003B\014\185\014\185\014\185\b\250\b\254\014\185\004\218\014\185\000\242\014\185\014\185\014\185\014\185\014\185\014\185\015\018\014\185\005\246\014\185 \158\014\185\023\234\014\185\014\185\014\185\029\202\023\002\014\185\014\185\014\185\014\185\014\185\014\185\014\185\014\185\005*\014\185\004\210\014\185\014\185\014\185\014\185\014\185\014\185\014\185\014\185\014\185\014\185\014\185\029\222\014\185\014\185\014\185\014\185\014\185\014\185\014\185\rN\014\185\014\185\014\185\000\242\004\218\012B\003\154\014\185\014\185\014\185\014\185\r}\014\185\014\185\015&\014\185\014\185\014\185\014\185\014\185\014\185\014\185\014\185\007u\014\185\014\185\005F\014\185\014\185\006j\014\185\014\185\014\185\014\185\014\185\014\185\014\185\014\185\014\185\014\185\014\185\014\185\014\185\014\185\014\185\014\185\002\026\001\242\014\185\014\185\014\185\014\185\014\177\t\130\014\177\006\170\014\177\000\242\014\177\014\177\014\177\016\142\014\177\014\177\014\177\014\177\004\210\014\177\014\177\004F\015^\014\177\014\177\014\177\rN\014\177\014\177\014\177\014\177\003\242\014\177\016\150\014\177\014\177\014\177\014\177\014\177\018\030\014\177\014\177\014\177\004\218\002\030\014\177\001\246\014\177\006\254\014\177\014\177\014\177\014\177\014\177\014\177\025F\014\177\025R\014\177\006J\014\177\024\014\014\177\014\177\014\177\002\"\r}\014\177\014\177\014\177\014\177\014\177\014\177\014\177\014\177\006\138\014\177\004\210\014\177\014\177\014\177\014\177\014\177\014\177\014\177\014\177\014\177\014\177\014\177\007>\014\177\014\177\014\177\014\177\014\177\014\177\014\177\004\146\014\177\014\177\014\177\016\202\004\218\005\222\025\202\014\177\014\177\014\177\014\177\015~\014\177\014\177\001\230\014\177\014\177\014\177\014\177\014\177\014\177\014\177\014\177\017\014\014\177\014\177\005\238\014\177\014\177\004Z\014\177\014\177\014\177\014\177\014\177\014\177\014\177\014\177\014\177\014\177\014\177\014\177\014\177\014\177\014\177\014\177\002a\002a\014\177\014\177\014\177\014\177\014\157\004F\014\157\bR\014\157\bb\014\157\014\157\014\157\003R\014\157\014\157\014\157\014\157\004\210\014\157\014\157\004F\022.\014\157\014\157\014\157\000\n\014\157\014\157\014\157\014\157\b\138\014\157'\130\014\157\014\157\014\157\014\157\014\157.\183\014\157\014\157\014\157\004\218\002a\014\157\002a\014\157\017\"\014\157\014\157\014\157\014\157\014\157\014\157\006\181\014\157\025\226\014\157\002a\014\157\0246\014\157\014\157\014\157\001\230\016\130\014\157\014\157\014\157\014\157\014\157\014\157\014\157\014\157\006\177\014\157\004\210\014\157\014\157\014\157\014\157\014\157\014\157\014\157\014\157\014\157\014\157\014\157\027\002\014\157\014\157\014\157\014\157\014\157\014\157\014\157\001\230\014\157\014\157\014\157\000\242\004\218\016\190\004\002\014\157\014\157\014\157\014\157\022\250\014\157\014\157\025\202\014\157\014\157\014\157\014\157\014\157\014\157\014\157\014\157\000\242\014\157\014\157\025\202\014\157\014\157\007\254\014\157\014\157\014\157\014\157\014\157\014\157\014\157\014\157\014\157\014\157\014\157\014\157\014\157\014\157\014\157\014\157\003\234\nU\014\157\014\157\014\157\014\157\014\165\004\014\014\165\bF\014\165\003\242\014\165\014\165\014\165\031\246\014\165\014\165\014\165\014\165\003\182\014\165\014\165\b2\030~\014\165\014\165\014\165\rN\014\165\014\165\014\165\014\165\004F\014\165\bJ\014\165\014\165\014\165\014\165\014\165\007\186\014\165\014\165\014\165\005\138\017z\014\165\rN\014\165\007\142\014\165\014\165\014\165\014\165\014\165\014\165\015f\014\165\006\218\014\165\000\242\014\165\024Z\014\165\014\165\014\165\025\226.\167\014\165\014\165\014\165\014\165\014\165\014\165\014\165\014\165\003\254\014\165\025\226\014\165\014\165\014\165\014\165\014\165\014\165\014\165\014\165\014\165\014\165\014\165\026\198\014\165\014\165\014\165\014\165\014\165\014\165\014\165\027\026\014\165\014\165\014\165\000\242\006\222\000\242\007\t\014\165\014\165\014\165\014\165\0292\014\165\014\165\004\002\014\165\014\165\014\165\014\165\014\165\014\165\014\165\014\165\031\250\014\165\014\165\028\134\014\165\014\165\r\190\014\165\014\165\014\165\014\165\014\165\014\165\014\165\014\165\014\165\014\165\014\165\014\165\014\165\014\165\014\165\014\165\025\202\007\t\014\165\014\165\014\165\014\165\014\161\007\190\014\161\015\218\014\161\007\t\014\161\014\161\014\161\003\226\014\161\014\161\014\161\014\161\018\226\014\161\014\161\028\230\000\242\014\161\014\161\014\161\rN\014\161\014\161\014\161\014\161\b\154\014\161\bV\014\161\014\161\014\161\014\161\014\161\007\246\014\161\014\161\014\161\b\250*:\014\161\000\242\014\161\004F\014\161\014\161\014\161\014\161\014\161\014\161\015\134\014\161\b\182\014\161*J\014\161\024~\014\161\014\161\014\161\b\006\b^\014\161\014\161\014\161\014\161\014\161\014\161\014\161\014\161\007\t\014\161\000\242\014\161\014\161\014\161\014\161\014\161\014\161\014\161\014\161\014\161\014\161\014\161*\134\014\161\014\161\014\161\014\161\014\161\014\161\014\161\025\226\014\161\014\161\014\161\000\242!\166\000\242\b\142\014\161\014\161\014\161\014\161\r\137\014\161\014\161\025\202\014\161\014\161\014\161\014\161\014\161\014\161\014\161\014\161\026\230\014\161\014\161\000\242\014\161\014\161\b\146\014\161\014\161\014\161\014\161\014\161\014\161\014\161\014\161\014\161\014\161\014\161\014\161\014\161\014\161\014\161\014\161\b\250\b\254\014\161\014\161\014\161\014\161\014\173\r\149\014\173\020E\014\173\000\242\014\173\014\173\014\173\016F\014\173\014\173\014\173\014\173\016\178\014\173\014\173\020E\025\202\014\173\014\173\014\173\rN\014\173\014\173\014\173\014\173\007\190\014\173\b\158\014\173\014\173\014\173\014\173\014\173\023z\014\173\014\173\014\173\027:\b\166\014\173\b\186\014\173\b\170\014\173\014\173\014\173\014\173\014\173\014\173\023\146\014\173\023\158\014\173\023\186\014\173\024\170\014\173\014\173\014\173\025\226\r\137\014\173\014\173\014\173\014\173\014\173\014\173\014\173\014\173\023\222\014\173\024\002\014\173\014\173\014\173\014\173\014\173\014\173\014\173\014\173\014\173\014\173\014\173\031\198\014\173\014\173\014\173\014\173\014\173\014\173\014\173\029J\014\173\014\173\014\173\t\214\030f\012\194\005\138\014\173\014\173\014\173\014\173\007\158\014\173\014\173\b\229\014\173\014\173\014\173\014\173\014\173\014\173\014\173\014\173\025\226\014\173\014\173\025\202\014\173\014\173\b\174\014\173\014\173\014\173\014\173\014\173\014\173\014\173\014\173\014\173\014\173\014\173\014\173\014\173\014\173\014\173\014\173\t\230\027N\014\173\014\173\014\173\014\173\014\189\007\030\014\189\018\246\014\189\030j\014\189\014\189\014\189\004m\014\189\014\189\014\189\014\189\016B\014\189\014\189\004\210\n}\014\189\014\189\014\189\n}\014\189\014\189\014\189\014\189\t\242\014\189\n\006\014\189\014\189\014\189\014\189\014\189\024\158\014\189\014\189\014\189\n\002\000\242\014\189\004\218\014\189\b\214\014\189\014\189\014\189\014\189\014\189\014\189\024\194\014\189\024\230\014\189 \n\014\189\024\206\014\189\014\189\014\189\b\014\021\182\014\189\014\189\014\189\014\189\014\189\014\189\014\189\014\189\b\226\014\189\025\226\014\189\014\189\014\189\014\189\014\189\014\189\014\189\014\189\014\189\014\189\014\189\000\242\014\189\014\189\014\189\014\189\014\189\014\189\014\189\004F\014\189\014\189\014\189\031\222\003\154\016\194\003\154\014\189\014\189\014\189\014\189\r\194\014\189\014\189\031*\014\189\014\189\014\189\014\189\014\189\014\189\014\189\014\189\r\209\014\189\014\189\025\202\014\189\014\189\t\018\014\189\014\189\014\189\014\189\014\189\014\189\014\189\014\189\014\189\014\189\014\189\014\189\014\189\014\189\014\189\014\189$\194\029\006\014\189\014\189\014\189\014\189\014\181\t\130\014\181\t\022\014\181\002V\014\181\014\181\014\181\n\194\014\181\014\181\014\181\014\181\003\182\014\181\014\181\b2\025\202\014\181\014\181\014\181\tN\014\181\014\181\014\181\014\181\007\190\014\181\t\138\014\181\014\181\014\181\014\181\014\181\t\218\014\181\014\181\014\181\029\026\007!\014\181\n\178\014\181\n\198\014\181\014\181\014\181\014\181\014\181\014\181\002\234\014\181\021\182\014\181\000\242\014\181\024\242\014\181\014\181\014\181\001\230\t\222\014\181\014\181\014\181\014\181\014\181\014\181\014\181\014\181\002\129\014\181\025\226\014\181\014\181\014\181\014\181\014\181\014\181\014\181\014\181\014\181\014\181\014\181!\174\014\181\014\181\014\181\014\181\014\181\014\181\014\181\t\142\014\181\014\181\014\181.\135\003\242\007!!\242\014\181\014\181\014\181\014\181\t\234\014\181\014\181\t>\014\181\014\181\014\181\014\181\014\181\014\181\014\181\014\181\025\226\014\181\014\181\016B\014\181\014\181\t\246\014\181\014\181\014\181\014\181\014\181\014\181\014\181\014\181\014\181\014\181\014\181\014\181\014\181\014\181\014\181\014\181\t\146!\250\014\181\014\181\014\181\014\181\014\245\"^\014\245\002\250\014\245\b\241\014\245\014\245\014\245\011F\014\245\014\245\014\245\014\245\004\210\014\245\014\245\007\t\n^\014\245\014\245\014\245\000\242\014\245\014\245\014\245\014\245\t\250\014\245*\162\014\245\014\245\014\245\014\245\014\245\017\"\014\245\014\245\014\245\004\218\012>\014\245\007\t\014\245\007q\014\245\014\245\014\245\014\245\014\245\014\245*\186\014\245\n&\014\245\000\242\014\245\025\014\014\245\014\245\014\245\001\230\017\222\014\245\014\245\014\245\014\245\014\245\014\245\014\245\014\245\0116\014\245\011J\014\245\014\245\014\245\014\245\014\245\014\245\014\245\014\245\014\245\014\245\014\245\nz\014\245\014\245\014\245\014\245\014\245\014\245\014\245\004\002\014\245\014\245\014\245\011\166#N\011\186\019\185\014\245\014\245\014\245\014\245!&\014\245\014\245\nR\014\245\014\245\014\245\014\245\014\245\014\245\014\245\014\245\003\182\014\245\014\245\b2\014\245\014\245\n\170\014\245\014\245\014\245\014\245\014\245\014\245\014\245\014\245\014\245\014\245\014\245\014\245\014\245\014\245\014\245\014\245\nR#\150\014\245\014\245\014\245\014\245\005!\012\154\005!\012\174\005!\011\182\005!\005!\005!\012\170\005!\005!\005!\005!\003\182\005!\005!\b2\012F\005!\005!\005!\nM\005!\005!\005!\005!\012\206\005!\012\226\005!\005!\005!\005!\005!\n\182\005!\005!\005!\007\t\r\006\005!\r\026\005!\n\186\005!\005!\005!\005!\005!\005!\000\242\005!\012\222\005!\000\242\005!\019\185\005!\005!\005!\002v\002\226\005!\005!\005!\005!\005!\005!\005!\005!\r\022\005!\004\210\005!\005!\005!\005!\005!\005!\005!\005!\005!\005!\005!\003\242\018\n\005!\005!\018\018\005!\005!\018z\016\246\005!\005!\005!\011:\004\218\000\242\019\181\005!\005!\005!\005!\011>\005!\005!\001\246\005!\005!\005!\005!\005!\018\026\005!\018\130\000\242\018\138\005!\011\130\005!\005!\011\146\005!\005!\005!\005!\005!\005!\005!\005!\005!\005!\005!\005!\005!\005!\005!\005!\001\246\005!\005!\005!\005!\005!\014\141\r6\014\141\rz\014\141\016\242\014\141\014\141\014\141\nY\014\141\014\141\014\141\014\141\004\210\014\141\014\141\004\210(\134\014\141\014\141\014\141$\142\014\141\014\141\014\141\014\141\r\130\014\141\031\146\014\141\014\141\014\141\014\141\014\141\011\170\014\141\014\141\014\141\004\218\rN\014\141\004\218\014\141\011\174\014\141\014\141\014\141\014\141\014\141\014\141\023v\014\141\016\246\014\141\t\138\014\141\019\181\014\141\014\141\014\141\n\153\003\022\014\141\014\141\014\141\014\141\014\141\014\141\014\141\014\141\014\194\014\141\014\214\014\141\014\141\014\141\014\141\014\141\014\141\014\141\014\141\014\141\014\141\014\141\011\242\018\n\014\141\014\141\018\018\014\141\014\141\018z\001\230\014\141\014\141\014\141\015\226.B\015\242\001\246\014\141\014\141\014\141\014\141+\230\014\141\014\141,z\014\141\014\141\014\141\014\141\014\141\018\026\014\141\018\130\022\194\018\138\014\141\012\n\014\141\014\141\t\142\014\141\014\141\014\141\014\141\014\141\014\141\014\141\014\141\014\141\014\141\014\141\014\141\014\141\014\141\014\141\014\141'6\014\141\014\141\014\141\014\141\014\141\002\145\r\142\002\145\018V\002\145\018f\003\150\003\154\002\145!\226\003j\002\145\018R\002\145\024\154\bf\002\145\000\242\t\138\002\145\002\145\002\145!n\002\145\002\145\002\145\001\234\018\166\018j\018\182\bn\002\145\002\145\002\145\002\145\027~\002\145\018r\002\145\r\205\021n\br\021~\tv\012Z\002\145\002\145\002\145\002\145\002\145\002\145\014\194\t\182\014\246\001\190\000\242\002\145#n\002\145\002\145\003\138\003v\022N\t\190\r\178\002\145\002\145\002\145\r\182\r\186\r\198\022\178\023\174\022\198\002\145\nJ\002\145\002\145\002\145\002\145\002\145\002\145\002\145\002\145\002\145\012f\018\n\nb\nf\018\018\r\206\r\222\018z\rN\002\145\002\145\002\145\028F#v\028V\r\190\002\145\n\134\n\138\002\145\012\158\002\145\002\145\b\221\002\145\002\145\002\145\002\145\r\226\023\182\r\230\018\130\012\162\024&\002\145\023\026\002\145\002\145\028\222\002\145\002\145\002\145\002\145\002\145\002\145\002\145\n\142\r\238\002\145\002\145\002\145\015\250\007\166\002\145\002\145\r\185\003\154\002\145\002\145\002\145\002\145\014\225\"\150\014\225 \018\014\225\rN\003\150\003\154\014\225'\158\003j\014\225\014\225\014\225\030\146\bf\014\225!\246\004\241\014\225\014\225\014\225\011\142\014\225\014\225\014\225\001\234\b\249\014\225\012\198\bn\014\225\014\225\014\225\014\225\017\"\014\225\014\225\014\225!\186\001\006\br\001\190\tv\012\210\014\225\014\225\014\225\014\225\014\225\014\225\r\181\t\182\t\142\001\190\000\242\014\225!\254\014\225\014\225\003\138#B\n\177\t\190\r\178\014\225\014\225\014\225\r\182\r\186\r\198\b\221\014\225\012\214\014\225\nJ\014\225\014\225\014\225\014\225\014\225\014\225\014\225\014\225\014\225\"j\014\225\nb\nf\014\225\r\206\r\222\014\225\002\130\014\225\014\225\014\225'\142\001\006'\162\001\190\014\225\n\134\n\138\014\225\012\254\014\225\014\225\b\245\014\225\014\225\014\225\014\225\r\226\014\225\r\230\014\225\"*\014\225\014\225\rN\014\225\014\225\000\242\014\225\014\225\014\225\014\225\014\225\014\225\014\225\n\142\r\238\014\225\014\225\014\225\015\250\007\166\014\225\014\225!\190#r\014\225\014\225\014\225\014\225\014\221$\154\014\221\r\n\014\221\020M\003\150\003\154\014\221'\198\003j\014\221\014\221\014\221\"\"\bf\014\221\"\178\r\014\014\221\014\221\014\221\011\193\014\221\014\221\014\221\001\234$\250\014\221\rn\bn\014\221\014\221\014\221\014\221\017\"\014\221\014\221\014\221\011\197\"r\br#z\tv\rv\014\221\014\221\014\221\014\221\014\221\014\221\003\242\t\182(\142\001\190\000\242\014\221\000\242\014\221\014\221\003\138\017\"\014f\t\190\r\178\014\221\014\221\014\221\r\182\r\186\r\198\014n\014\221#\182\014\221\nJ\014\221\014\221\014\221\014\221\014\221\014\221\014\221\014\221\014\221$\166\014\221\nb\nf\014\221\r\206\r\222\014\221\b\225\014\221\014\221\014\221#\214\011\181\000\242$\006\014\221\n\134\n\138\014\221\014\162\014\221\014\221\001\230\014\221\014\221\014\221\014\221\r\226\014\221\r\230\014\221%N\014\221\014\221\014\174\014\221\014\221\014\198\014\221\014\221\014\221\014\221\014\221\014\221\014\221\n\142\r\238\014\221\014\221\014\221\015\250\007\166\014\221\014\221\016B\000\242\014\221\014\221\014\221\014\221\002\241(\002\002\241(\018\002\241\011\185\003\150\003\154\002\241)\186\003j\002\241\018R\002\241#\254\bf\002\241\r1\014\202\002\241\002\241\002\241\014\238\002\241\002\241\002\241\001\234\ne\018j\003V\bn\002\241\002\241\002\241\002\241$6\002\241\018r\002\241\020Y\"r\br\007!\tv\0156\002\241\002\241\002\241\002\241\002\241\002\241\007\t\t\182\003\154\001\190\r-\002\241\003\242\002\241\002\241\003\138\000\242+\238\t\190\r\178\002\241\002\241\002\241\r\182\r\186\r\198*\210\023\174\015>\002\241\nJ\002\241\002\241\002\241\002\241\002\241\002\241\002\241\002\241\002\241\015F\002\241\nb\nf\tN\r\206\r\222\002\241\015\146\002\241\002\241\002\241\000\242\018\142\000\242\t\130\002\241\n\134\n\138\002\241\015\154\002\241\002\241\000\242\002\241\002\241\002\241\002\241\r\226\023Z\r\230\023f\007\t\r1\002\241\015\198\002\241\002\241.>\002\241\002\241\002\241\002\241\002\241\002\241\002\241\n\142\r\238\002\241\002\241\002\241\015\250\007\166\002\241\002\241\019\217\007\t\002\241\002\241\002\241\002\241\007\t\007\t\007\t\007\t\007\t\007\t\007\t\007\t\007\t\007\t\r-\007\t\007\202\007\t\007\t\019\217\007\t\007\t\007\t\007\t\007\t\007\t\007\t\007\t\007\t\007\t\007\t\007\t\007\t\007\t\015\230\007\t\007\t\015\238\007\t\000\242\007\t\007\t\007\t\000\242\007\t\007\t\007\t\007\t\007\t\000\242\016N\007\t\007\t\007\t\007\t\007\t\007\t\007\t\007\t\007\t\000\242\007\t\007\t\007\t\007\t\007\t\007\t\007\t\007\t\007\t\000\242\007\t\007\t\007\t\007\t\007\t,\130\007\t\007\t\007\t\007\t\007\t\016Z\007\t\016r\016\218\007\t\007\t\007\t\007\t\007\t\007\t(\146\007\t\007\t\007\t\007\t\017f\007\t\007\t\007\t\007\t\007\t\007\t\007\t\007\t\007\t\007\t\007\t\007\t\019\221\007\t\007\t\007\t\017n\007\t\007\t\007\t\007\t\007\t\007\t\000\242\000\242\007\t\017\154\007\t\007\218\007\t\002\178\007\t+\242\019\221\007\t\007\t\007\t\007\t,2\002a\007\t\007\t\007\t\007\t!\154\007\t\007\t\000\169\007\t\000\169\000\169\000\169\000\169\000\169\000\169\000\169\000\169\007\t\000\169\000\242\000\169\000\169\017\170\000\169\000\169\000\169\018\014\018Z\000\169\000\169\000\n\000\169\000\169\000\169\000\169\018b\000\169\018n\000\169\000\169,\134\000\169,\198\000\169\000\169\000\169\004F\000\169\000\169\000\169\002a\000\169#:$b\000\169\000\169\000\169\000\169\000\169\000\169\000\169\000\169\000\169\002a\002a\000\169\000\169\bf\004\002\000\169\000\169\000\169\018~\000\169\000\169\000\169\000\169\000\169\000\169\018\150\000\169\000\169\000\169\000\169\004F\n\222\000\169\b\194#\174\000\169\004F\000\169\000\169\000\169\000\169\018\170\000\169\000\169\000\169\b\198\b\202\n\226\002\190\018\178\000\169\000\169\000\169\000\169\000\169\000\169\000\169\000\169\000\169\0046\b\206\003\226\000\169\r\153\001\161\000\169\021r\000\169\003\186\003\198\000\226\021z\021\202\nJ\000\169\003\210\"\030\021\234\004F\022\014\004F\000\169\000\169\000\169\000\169\001\161\022\"\000\169\000\169\000\169\000\006\022B\000\169\nm\003\146\003\150\003\154\003\214\003\158\003j\n\134\003\170\"&\022Z\bf\001\n\bj\000\242\022j\n\133\003v\022\138\022\150\n\133\nm\001\234\022\182\022\186\023\014\t\186\001\018\016&\016*\001\030\tf\001\"\023&\011\189\tr\n\142\br\0236\tv\023b\031\230\001&\r\153\017\198\017\202\nm\t\170\t\182\t\194\t\198\017\206\r\146\029^\0016\nm\003\138\023n\023\130\t\190\r\178\nm\nm\000\242\r\182\r\186\r\198\r\210\r\234\002v\001\161\nJ\nm\nm\001:\001>\001B\001F\001J\023\154\002z\r\250\r\153\nb\nf\001N\r\206\r\222\001\234\023\166\n\133\023\194\001R\015\218\001\161\014\006\014\030\017\226\n\134\n\138#\250\017\246\001\161\001V\018\226\023\230\nm\t\014\024\n\r\226\001Z\r\230\001\161\nu\016R\0242\001\246\nu\nm\024V\015\218\024z\003\138\001\150\011\142\024\166$\002\n\142\r\238\024\202\001\154\018\226\025\170\007\166\001\162\001\166\017\250%v\001\170\000\006\001\174\001\178\001\249\003\146\003\150\003\154\024\238\003\158\003j\025B\003\170\011\181\025N\bf\001\n\bj\015\218\025Z\029b\016\"\016^\029n\n\161\001\249\001\234\019\205\n\161\018\226\t\186\001\018\016&\016*\001\030\tf\001\"\025v\025~\tr\019\205\br\bu\tv\025\178\016.\001&\026\218\017\198\017\202\001\249\t\170\t\182\t\194\t\198\017\206\r\146\027\014\0016\001\249\003\138\tE\nu\t\190\r\178\001\249\001\249\000\242\r\182\r\186\r\198\r\210\r\234\027B\019\205\nJ\001\249\001\249\001:\001>\001B\001F\001J\011\250\n.\r\250\025\202\nb\nf\001N\r\206\r\222\014\194\027Z\014\246\027\142\001R\bu\027\198\014\006\014\030\017\226\n\134\n\138\0182\017\246\002^\001V\b\214\027\230\001\249\n\161\019\205\r\226\001Z\r\230\019\205*>\0286\bu\b\218\b\222\001\249\028J\028R\028\154\028\194\001\150\011\238\000\242\003\182\n\142\r\238\b2\001\154\b\226\025\170\007\166\001\162\001\166\017\250\028\238\001\170\029\014\001\174\001\178\002\213\029>\002\213(N\002\213\029\234\003\150\003\154\002\213\030\014\003j\002\213\tE\002\213\030\026\bf\002\213\030.\030R\002\213\002\213\002\213\n\022\002\213\002\213\002\213\001\234\030r\030^\030v\bn\002\213\002\213\002\213\002\213\030\162\002\213\030\194\002\213\025\226\011\158\br\0312\tv\011j\002\213\002\213\002\213\002\213\002\213\002\213\011\218\t\182\031B\r\202\004q\002\213\011\226\002\213\002\213\003\138\031V\015\218\t\190\r\178\002\213\002\213\002\213\r\182\r\186\r\198\r\165\004q\018\226\002\213\nJ\002\213\002\213\002\213\002\213\002\213\002\213\002\213\002\213\002\213\031\130\018\n\nb\nf\018\018\r\206\r\222\018z\031\142\002\213\002\213\002\213\031\210 \026 \" 2\002\213\n\134\n\138\002\213 \250\002\213\002\213 \254\002\213\002\213\002\213\002\213\r\226\018\026\r\230\018\130\030\230\018\138\002\213!\030\002\213\002\213!6\002\213\002\213\002\213\002\213\002\213\002\213\002\213\n\142\r\238\002\213\002\213\002\213\015\250\007\166\002\213\002\213!:\017\134\002\213\002\213\002\213\002\213\012!!\202\012!!\206\012!\"\006\"\n\"2\012!\"6\"N\012!\002a\012!\001!\002a\012!\"\198\"\246\012!\012!\012!\"\250\012!\012!\012!\017z\002a\002a v#\030\012!\012!\012!\012!\001!\012!#J\012!\000\n#Z\000\242#\130\002a\011\154\012!\012!\012!\012!\012!\012!#\134\019\205#\146#\162\000\n\012!\002a\012!\012!\001!\019\205!\218#\190#\206\012!\012!\012!\012\018\001!#\226\r\193\002a\002a\012!\001!\012!\012!\012!\012!\012!\012!\012!\012!\012!$\014\018\n\001!\002a\018\018\000\242$\018\018z$\030\012!\012!\012!$.$B\019\205%*\012!%:\017\138\012!%F\012!\012!\002a\012!\012!\012!\012!\004F\018\026\000\242\018\130%n\018\138\012!\001!\012!\012!%z\012!\012!\012!\012!\012!\012!\012!\002^\001!\012!\012!\012!%\170\019\205\012!\012!\003\154)\238\012!\012!\012!\012!\003\001\011\158\003\001%\206\003\001\011j\011\206\t\142\003\001\017\242%\246\003\001\011\218\003\001&b&\170\003\001&\178\011\226\003\001\003\001\003\001&\202\003\001\003\001\003\001\011\158\r\193\003\222&\214\011j\003\001\003\001\003\001\003\001\r\193\003\001\011\218\003\001\024*'N\t\130'b\011\226'\134\003\001\003\001\003\001\003\001\003\001\003\001\001\230\n\250'\146'\150\024N\003\001\024r\003\001\003\001\007\134'\210'\250\n\n\n\014\003\001\003\001\003\001\011\254(\006\n\026(\014\027f\r-\003\001(6\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001(F\018\n(~(\178\018\018\nj\nr\018z(\218\003\001\003\001\003\001(\230\003\226)\030)*\003\001)J)V\003\001)j\003\001\003\001)v\003\001\003\001\003\001\003\001)\154\018\026\000\242\018\130\000\242\018\138\003\001)\214\003\001\003\001*R\003\001\003\001\003\001\003\001\003\001\003\001\003\001*n\026V\003\001\003\001\003\001\005v*\142\003\001\003\001*\154+\018\003\001\003\001\003\001\003\001\002\253+\022\002\253+2\002\253+6\n\001\t\142\002\253\026n+\170\002\253\018\n\002\253\001\230\018\018\002\253+\178\018z\002\253\002\253\002\253,\018\002\253\002\253\002\253\011\158(n\r-,R\011j\002\253\002\253\002\253\002\253,\166\002\253\011\218\002\253\r\153\018\026,\230\018\130\011\226\018\138\002\253\002\253\002\253\002\253\002\253\002\253\005\021\016\030-.\001\190-v\002\253-\238\002\253\002\253\b\194\003\226-\250\025\182\026\234\002\253\002\253\002\253\027\030\027R\027^.\002\b\198\b\202\002\253.\011\002\253\002\253\002\253\002\253\002\253\002\253\002\253\002\253\002\253\018\n\018\n\b\206\018\018\018\018\005\r\018z\018z.\027\002\253\002\253\002\253\000\242..\005v.J\002\253.g\007\161\002\253.w\002\253\002\253.\147\002\253\002\253\002\253\002\253\018\026\018\026\018\130\018\130\018\138\018\138\002\253.\231\002\253\002\253\028>\002\253\002\253\002\253\002\253\002\253\002\253\002\253/\003/\014\002\253\002\253\002\253\000\242\005\021\002\253\002\253/c/w\002\253\002\253\002\253\002\253\0125/\127\0125/\187\0125/\195\t\030\003\154\0125\030F\000\000\0125\003j\0125\t\"\000\000\0125\000\000\000\000\0125\0125\0125\rN\0125\0125\0125\001\234\002a\002a*\022\005\r\0125\0125\0125\0125\000\000\0125\000\000\0125\000\000\000\000\002V\000\000\002a'\186\0125\0125\0125\0125\0125\0125\000\000\r\166\000\000\030J\000\n\0125\000\000\0125\0125\003\138\rN\004\238\000\000\000\000\0125\0125\0125\0182\r\165\030V\r\165\r\165\002a\0125\000\000\0125\0125\0125\0125\0125\0125\0125\0125\0125\000\000\018\n\002\234\002a\018\018\000\242\000\000\018z\000\000\0125\0125\0125\000\000\016:\000\000\000\000\0125\000\000\000\000\0125\n\138\0125\0125\000\000\0125\0125\0125\0125\011\169\018\026\002V\018\130\011\169\018\138\0125\n\r\0125\0125\000\000\0125\0125\0125\0125\0125\0125\0125\000\000.\243\0125\0125\0125\005\234&\222\0125\0125\000\000\000\000\0125\0125\0125\0125\012I\011\158\012I\000\000\012I\011j'\190\t\142\012I\000\000\000\000\012I\011\218\012I\011\169\002\234\012I\000\000\011\226\012I\012I\012I\000\000\012I\012I\012I\015\218\r\165\b\214\000\000\000\000\012I\012I\012I\012I\r\165\012I\018\226\012I\002\250\b\218\b\222\000\000\011\169\012*\012I\012I\012I\012I\012I\012I\001\230\016\030\000\000\027\154\b\226\012I\000\000\012I\012I\007\150\000\000\000\000\025\182\026\234\012I\012I\012I\027\030\027R\027^\000\000\000\000\000\000\012I\014\026\012I\012I\012I\012I\012I\012I\012I\012I\012I\011\169\018\n\000\000\005\206\018\018\011M\000\000\018z\n\149\012I\012I\012I\n\149\003\226\000\000\000\000\012I\000\000\000\000\012I\000\000\012I\012I\000\000\012I\012I\012I\012I\002\250\018\026\000\242\018\130\000\000\018\138\012I\027\206\012I\012I\000\000\012I\012I\012I\012I\012I\012I\012I\000\000\000\000\012I\012I\012I\005v\000\000\012I\012I\000\242\000\000\012I\012I\012I\012I\012]\011M\012]\000\000\012]\011M\000\000\002V\012]\006\025\000\000\012]\011M\012]!\234\000\000\012]\000\000\011M\012]\012]\012]\000\000\012]\012]\012]\006\025\000\000-\150\000\000\012~\012]\012]\012]\012]\tZ\012]\006\025\012]\000\000\000\000\000\000\002V\006\025\000\000\012]\012]\012]\012]\012]\012]\011\158\000\000\002\234\000\000\011j\012]\000\000\012]\012]\"\022\000\000\011\218\005\254\000\000\012]\012]\012]\011\226 \214\016~\000\000\000\000\000\000\012] \238\012]\012]\012]\012]\012]\012]\012]\012]\012]\000\000\018\n\"B\002\234\018\018\000\000\017^\018z\000\000\012]\012]\012]\000\000\000\000\000\000\000\000\012]\002v\000\000\012]\003j\012]\012]\000\000\012]\012]\012]\012]\000\000\018\026\011i\018\130\016\226\018\138\012]\007E\012]\012]\000\000\012]\012]\012]\012]\012]\012]\012]\031\002\"\166\012]\012]\012]\000\000\000\242\012]\012]\000\000\000\000\012]\012]\012]\012]\002\217.&\002\217\001\246\002\217\002\250\000\000\002V\002\217\011i\000\000\002\217\030F\002\217\000\000\003j\002\217\030V\000\000\002\217\002\217\002\217\000\000\002\217\002\217\002\217\011i\000\000\011\t\000\000\011j\002\217\002\217\002\217\002\217\000\000\002\217\011i\002\217\000\000\002\250\000\000\000\000\011i\000\000\002\217\002\217\002\217\002\217\002\217\002\217\006\161\n\138\002\234\000\000\000\000\002\217\030J\002\217\002\217\000\000\000\000\rN\004F\000\000\002\217\002\217\002\217\019\157\019\157\000\000\000\000\019\157\030V\002\217\000\000\002\217\002\217\002\217\002\217\002\217\002\217\002\217\002\217\002\217\000\000\018\n\000\000\000\000\018\018\000\000\000\000\018z\000\000\002\217\002\217\002\217\000\242\000\000\000\000\000\000\002\217\000\000\000\000\002\217\000\000\002\217\002\217\n\138\002\217\002\217\002\217\002\217\n\177\018\026\000\242\018\130\n\177\018\138\002\217\000\000\002\217\002\217\000\000\002\217\002\217\002\217\002\217\002\217\002\217\002\217\011\t\025\250\002\217\002\217\002\217\000\000\006\161\002\217\002\217(\250\000\000\002\217\002\217\002\217\002\217\002\245\000\000\002\245\000\000\002\245\002\250\000\000\004\002\002\245\019\157\000\000\002\245\003\154\002\245\n\177\003j\002\245\000\000\000\000\002\245\002\245\002\245\rN\002\245\002\245\002\245\011\158\000\000\b:\000\000\011j\002\245\002\245\002\245\002\245\000\000\002\245\011\218\002\245\000\000\019\157\000\000\025\202\011\226\000\000\002\245\002\245\002\245\002\245\002\245\002\245\006\153\0046\000\000%R\000\000\002\245!b\002\245\002\245\0182\003\186\003\198\r\165\000\000\002\245\002\245\002\245\003\210\000\000\000\000\000\000\000\000\030V\002\245\025\202\002\245\002\245\002\245\002\245\002\245\002\245\002\245\002\245\002\245\002\130\002\245\000\000\r\017\018\018\003\214\000\000\002\245\0182\002\245\002\245\002\245\000\242\000\000\000\000\000\000\002\245\000\000\000\000\002\245\000\000\002\245\002\245\n\138\002\245\002\245\002\245\002\245\000\000\018\026\012\169\018\130\000\000\018\138\002\245\000\000\002\245\002\245\000\000\002\245\002\245\002\245\002\245\002\245\002\245\002\245\000\000\r\017\002\245\002\245\002\245\000\000\006\153\002\245\002\245\000\000\025\226\002\245\002\245\002\245\002\245\012\133\000\000\012\133\000\000\012\133\000\000\000\000\000\000\012\133\012\169\000\000\012\133\000\000\012\133\000\000\r\017\012\133\000\000\015\218\012\133\012\133\012\133\rN\012\133\012\133\012\133\012\146\000\000\025\226\018\226\012\169\012\133\012\133\012\133\012\133\000\000\012\133\012\169\012\133\000\000\000\000\000\000\000\000\012\169\000\000\012\133\012\133\012\133\012\133\012\133\012\133\015\218\r\165\000\000\r\017\000\000\012\133\000\000\012\133\012\133\005\206\000\000\018\226\r\017\000\000\012\133\012\133\012\133\019\165\019\165\000\000\000\000\019\165\000\000\012\133\000\000\012\133\012\133\012\133\012\133\012\133\012\133\012\133\012\133\012\133\000\000\018\n\000\000\r\r\018\018\000\000\000\000\018z\000\000\012\133\012\133\012\133\000\000\000\000\000\000\000\000\012\133\000\000\000\000\012\133\000\000\012\133\012\133\000\000\012\133\012\133\012\133\012\133\011\165\018\026\000\242\018\130\011\165\018\138\012\133\000\000\012\133\012\133\000\000\012\133\012\133\012\133\012\133\012\133\012\133\012\133\000\000\r\r\012\133\012\133\012\133\000\000\000\000\012\133\012\133\000\000\000\000\012\133\012\133\012\133\012\133\012q\000\000\012q\000\000\012q\000\000\000\000\002V\012q\019\165\000\000\012q\000\000\012q\011\165\r\r\012q\001\230\000\000\012q\012q\012q\000\000\012q\012q\012q-\006\000\000\011\005\000\000\000\000\012q\012q\012q\012q\000\000\012q\000\000\012q\000\000\019\165\002V\000\000\011\165\000\000\012q\012q\012q\012q\012q\012q\000\000\000\000\002\234\r\r\000\000\012q\019\149\012q\012q\005\206\000\000\014\210\r\r\003\226\012q\012q\012q\019\161\019\161\016~\000\000\019\161\000\000\012q\000\000\012q\012q\012q\012q\012q\012q\012q\012q\012q\011\165\018\n\002\234\005\206\018\018\000\000\017\146\018z\000\000\012q\012q\012q\000\000\000\000\000\000\000\000\012q\005v\000\000\012q\000\000\012q\012q\000\000\012q\012q\012q\012q\000\000\018\026\000\242\018\130\016\226\018\138\012q\000\000\012q\012q\000\000\012q\012q\012q\012q\012q\012q\012q\011\005\026\026\012q\012q\012q\000\000\000\242\012q\012q\000\000\000\000\012q\012q\012q\012q\002\137\000\000\002\137\019\149\002\137\002\250\000\000\000\000\002\137\019\161\000\000\002\137\000\000\002\137\002V\000\000\002\137\000\000\000\000\002\137\002\137\002\137\000\000\002\137\002\137\002\137\011\158\000\000\000\000\000\000\011j\002\137\002\137\002\137\002\137\014\226\002\137\011\218\002\137\002\250\019\161\004\253\000\000\011\226\000\000\002\137\002\137\002\137\002\137\002\137\002\137\016~\000\000\000\000\004\201\000\000\002\137\000\000\002\137\002\137\002\234\030f\rN\004F\000\000\002\137\002\137\002\137\000\000\000\000\016~\b\229\017V\000\000\002\137-\162\002\137\002\137\002\137\002\137\002\137\002\137\002\137\002\137\002\137\000\000\002\137\000\000\000\000\000\000\000\000\017\194\002\137\000\000\002\137\002\137\002\137\000\000\016\226\000\000\004\201\002\137\000\000\000\000\002\137\000\000\002\137\002\137\000\000\002\137\002\137\002\137\002\137\000\000\030j\000\242\000\000\016\226\000\242\002\137\000\000\002\137\002\137\000\000\015\218\002\137\002\137\002\137\002\137\002\137\002\137\002\249\000\000\002\137\002\137\018\226\028\182\000\242\002\137\002\137\000\000\000\000\002\137\002\137\002\137\002\137\002\249\002\249\002\249\002\249\002\249\002\249\000\000\002V\002\249\005\217\000\000\002\249\002\250\002\249.\215\002\249\002\249\002\249\002\249\002\249\002\249\002\249\000\000\002\249\002\249\002\249\005\217\002\249\rm\000\000\012~\002\249\002\249\002\249\002\249\000\000\002\249\005\217\002\249\000\000\000\000\000\000\000\000\005\217\004F\002\249\002\249\002\249\002\249\002\249\002\249\002\249\004\201\002\234\000\000\000\000\002\249\000\000\002\249\002\249\000\000\000\000\000\000\004F\000\000\002\249\002\249\002\249\000\000\016~\016~\000\000\000\000\000\000\002\249\000\000\002\249\002\249\002\249\002\249\002\249\002\249\002\249\002\249\002\249\000\000\002\249\000\000\000\000\000\000\029j\029\130\002\249\018\158\002\249\002\249\002\249\002\249\000\000\000\000\000\000\002\249\000\000\002\249\002\249\000\000\002\249\002\249\002\249\002\249\002\249\002\249\002\249\002\249\002\249\000\242\016\226\016\226\000\000\002\249\000\000\002\249\002\249\000\000\018\158\002\249\002\249\002\249\002\249\002\249\002\249\rm\000\000\002\249\002\249\002\249\000\242\000\242\002\249\002\249\000\000\000\000\002\249\002\249\002\249\002\249\012\029\000\000\012\029\000\000\012\029\002\250\000\000\002V\012\029\006\t\000\000\012\029\000\000\012\029\000\000\000\000\012\029\000\000\000\000\012\029\012\029\012\029\000\000\012\029\012\029\012\029\006\t\000\000\ri\000\000\012~\012\029\012\029\012\029\012\029\000\000\012\029\006\t\012\029\000\000\000\000\000\000\000\000\006\t\000\000\012\029\012\029\012\029\012\029\012\029\012\029\016~\000\000\002\234\000\000\000\000\012\029\000\000\012\029\012\029\000\000\000\000\004F\004F\000\000\012\029\012\029\012\029\000\000\016~\016~\000\000\029\150\000\000\012\029\000\000\012\029\012\029\012\029\012\029\012\029\012\029\012\029\012\029\012\029\000\000\012\029\000\000\000\000\000\000\029\174 \002\012\029\000\000\012\029\012\029\012\029\000\000\016\226\000\000\000\000\012\029\000\000\000\000\012\029\000\000\012\029\012\029\000\000\012\029\012\029\012\029\012\029\000\000\000\000\000\242\016\226\016\226\000\242\012\029\000\000\012\029\012\029\000\000\015\218\012\029\012\029\012\029\012\029\012\029\012\029\ri\000\000\012\029\012\029\018\226\000\242\000\242\012\029\012\029\000\000\000\000\012\029\012\029\012\029\012\029\004I\000\000\004I\000\000\004I\002\250\000\000\002V\004I\005\249\000\000\004I\000\000\004I\000\000\000\000\019\006\000\000\000\000\004I\019Z\004I\000\000\004I\004I\004I\005\249\000\000\ry\000\000\012~\019n\019\206\019\230\019\134\000\000\019\254\005\249\004I\000\000\000\000\000\000\000\000\005\249\004F\004I\019\158\004I\020\022\020.\004I\016~\000\000\002\234\000\000\000\000\004I\000\000\020F\004I\000\000\000\000\004F\004F\000\000\004I\004I\000\242\000\000\016~\000\000\000\000'n\000\000\004I\000\000\004I\004I\019\030\019\182\020^\020v\020\214\004I\004I\000\000\004I\000\000\000\000\000\000+\222\000\000\004I\000\000\004I\004I\020\238\000\000\016\226\000\000\000\000\004I\000\000\000\000\004I\000\000\004I\021\006\000\000\004I\004I\004I\004I\000\000\000\000\000\242\016\226\000\000\000\242\004I\000\000\004I\004I\000\000\021f\004I\004I\021\158\020\142\004I\004I\ry\000\000\004I\021\030\004I\000\242\000\000\020\166\020\190\000\000\000\000\004I\004I\0216\021N\003q\000\000\003q\000\000\003q\002\250\000\000\002V\003q\022\162\000\000\003q\000\000\003q\000\000\000\000\003q\000\000\000\000\003q\003q\003q\000\000\003q\003q\003q\022\170\000\000\ru\000\000\012~\003q\003q\003q\003q\000\000\003q\022\218\003q\000\000\000\000\000\000\000\000\022\226\004F\003q\003q\003q\003q\003q\003q\000\000\000\000\002\234\000\000\000\000\003q\000\000\003q\003q\000\000\000\000\004F\000\000\000\000\003q\003q\003q\000\000\000\000\000\000\000\000\000\000\000\000\003q\000\000\003q\003q\003q\003q\003q\003q\003q\003q\003q\000\000\003q\000\000\000\000\000\000\000\000\000\000\003q\000\000\003q\003q\003q\000\000\000\000\000\000\000\000\003q\000\000\000\000\003q\000\000\003q\003q\000\000\003q\003q\003q\003q\000\000\000\000\000\242\000\000\000\000\000\000\003q\000\000\003q\003q\000\000\015\218\003q\003q\003q\003q\003q\003q\ru\000\000\003q\003q\018\226\000\000\000\000\003q\003q\000\000\000\000\003q\003q\003q\003q\003m\000\000\003m\000\000\003m\002\250\000\000\002V\003m\005\233\000\000\003m\000\000\003m\000\000\000\000\003m\000\000\000\000\003m\003m\003m\000\000\003m\003m\003m\005\233\000\000\030\254\000\000\012~\003m\003m\003m\003m\000\000\003m\005\233\003m\000\000\000\000\000\000\000\000\005\233\000\000\003m\003m\003m\003m\003m\003m\000\000\000\000\002\234\000\000\000\000\003m\000\000\003m\003m\000\000\000\000\000\000\000\000\000\000\003m\003m\003m\000\000\000\000\000\000\000\000\000\000\000\000\003m\000\000\003m\003m\019\030\003m\003m\003m\003m\003m\003m\000\000\003m\000\000\000\000\000\000\000\000\000\000\003m\000\000\003m\003m\003m\000\000\000\000\000\000\000\000\003m\000\000\000\000\003m\000\000\003m\003m\000\000\003m\003m\003m\003m\000\000\000\000\000\242\000\000\000\000\000\000\003m\000\000\003m\003m\000\000\003m\003m\003m\003m\003m\003m\003m\031\002\000\000\003m\003m\003m\000\000\000\000\003m\003m\000\000\000\000\003m\003m\003m\003m\003A\000\000\003A\000\000\003A\002\250\000\000\002V\003A\011y\000\000\003A\000\000\003A\000\000\000\000\003A\000\000\000\000\003A\003A\003A\000\000\003A\003A\003A\011\158\000\000\r\133\000\000\011j\003A\003A\003A\003A\000\000\003A\011y\003A\000\000\000\000\000\000\000\000\011y\000\000\003A\003A\003A\003A\003A\003A\000\000\000\000\002\234\000\000\000\000\003A\000\000\003A\003A\000\000\000\000\000\000\000\000\000\000\003A\003A\003A\000\000\000\000\000\000\000\000\000\000\000\000\003A\000\000\003A\003A\003A\003A\003A\003A\003A\003A\003A\000\000\003A\000\000\000\000\000\000\000\000\000\000\003A\000\000\003A\003A\003A\000\000\000\000\000\000\000\000\003A\000\000\000\000\003A\000\000\003A\003A\000\000\003A\003A\003A\003A\000\000\000\000\000\242\000\000\000\000\000\000\003A\001\133\003A\003A\000\000\015\218\003A\003A\003A\003A\003A\003A\r\133\000\000\003A\003A\018\226\000\000\000\000\003A\003A\000\000\001\133\003A\003A\003A\003A\003=\000\000\003=\000\000\003=\002\250\000\000\002V\003=\025\138\000\000\003=\000\000\003=\000\000\000\000\003=\000\000\000\000\003=\003=\003=\000\000\003=\003=\003=\022\170\000\000\r\129\000\000\012~\003=\003=\003=\003=\000\000\003=\022\218\003=\000\000\000\000\000\000\000\000\022\226\000\000\003=\003=\003=\003=\003=\003=\016~\000\000\002\234\000\000\000\000\003=\000\000\003=\003=\000\000\000\000\000\000\000\000\000\000\003=\003=\003=\000\000\000\000\000\000\000\000\000\000\001\133\003=\000\000\003=\003=\019\030\003=\003=\003=\003=\003=\003=\000\000\003=\000\000\000\000\000\000\000\000\000\000\003=\000\000\003=\003=\003=\001\133\016\226\000\000\000\000\003=\000\000\000\000\003=\001\133\003=\003=\000\000\003=\003=\003=\003=\000\000\000\000\025\234\000\000\000\000\000\242\003=\000\000\003=\003=\000\000\003=\003=\003=\003=\003=\003=\003=\r\129\000\000\003=\003=\003=\000\000\000\000\003=\003=\000\000\000\000\003=\003=\003=\003=\003Y\000\000\003Y\000\000\003Y\002\250\000\000\002V\003Y\000\000\000\000\003Y\030\002\003Y\000\000\000\000\003Y\001\230\000\000\003Y\003Y\003Y\000\000\003Y\003Y\003Y-N\000\000-\174\000\000\000\000\003Y\003Y\003Y\003Y\000\000\003Y\000\000\003Y\000\000\000\000\000\000\000\000\rN\004F\003Y\003Y\003Y\003Y\003Y\003Y\000\000\000\000\002\234\000\000\000\000\003Y\019\149\003Y\003Y\000\000\000\000\000\000\000\000\003\226\003Y\003Y\003Y\000\000\000\000\000\000\000\000\000\000\000\000\003Y\000\000\003Y\003Y\003Y\003Y\003Y\003Y\003Y\003Y\003Y\000\000\003Y\000\000\000\000\000\000\000\000\000\000\003Y\000\000\003Y\003Y\003Y\000\000\000\000\000\000\000\000\003Y\005v\000\000\003Y\000\000\003Y\003Y\000\000\003Y\003Y\003Y\003Y\000\000\000\000\000\242\000\000\000\000\000\000\003Y\000\000\003Y\003Y\000\000\015\218\003Y\003Y\003Y\003Y\003Y\003Y-\178\026:\003Y\003Y\018\226\000\000\000\000\003Y\003Y\000\000\000\000\003Y\003Y\003Y\003Y\003U\000\000\003U\019\149\003U\002\250\000\000\002V\003U\000\000\000\000\003U\000\000\003U\000\000\000\000\019\006\000\000\000\000\003U\003U\003U\000\000\003U\003U\003U\011\158\000\000\r\145\000\000\011j\003U\003U\003U\019\134\000\000\003U\011\218\003U\002V\000\000\000\000\000\000\011\226\000\000\003U\019\158\003U\003U\003U\003U\000\000\000\000\002\234\000\000\000\000\003U\000\000\003U\003U\r\141\000\000\000\000\000\000\000\000\003U\003U\003U\000\000\000\000\000\000\000\000\000\000\000\000\003U\000\000\003U\003U\019\030\019\182\003U\003U\003U\003U\003U\002\234\003U\000\000\000\000\000\000\000\000\000\000\003U\000\000\003U\003U\003U\000\000\000\000\000\000\000\000\003U\000\000\000\000\003U\000\000\003U\003U\000\000\003U\003U\003U\003U\000\000\000\000\000\000\000\000\000\000\000\000\003U\000\000\003U\003U\000\000\003U\003U\003U\003U\003U\003U\003U\r\145\000\000\003U\003U\003U\000\000\000\000\003U\003U\000\000\000\000\003U\003U\003U\003U\003y\000\000\003y\000\000\003y\002\250\000\000\000\000\003y\000\000\000\000\003y\000\000\003y\000\000\000\000\003y\r\141\000\000\003y\003y\003y\000\000\003y\003y\003y\000\000\000\000\000\000\000\000\000\000\003y\003y\003y\003y\000\000\003y\002\250\003y\000\000\000\000\000\000\000\000\000\000\000\000\003y\003y\003y\003y\003y\003y\000\000\000\000\000\000\000\000\000\000\003y\000\000\003y\003y\000\000\000\000\000\000\000\000\000\000\003y\003y\003y\000\000\000\000\000\000\000\000\000\000\000\000\003y\000\000\003y\003y\003y\003y\003y\003y\003y\003y\003y\000\000\003y\000\000\000\000\000\000\000\000\000\000\003y\000\000\003y\003y\003y\000\000\000\000\000\000\000\000\003y\000\000\000\000\003y\000\000\003y\003y\000\000\003y\003y\003y\003y\000\000\000\000\000\000\000\000\000\000\000\000\003y\000\000\003y\003y\000\000\015\218\003y\003y\003y\003y\003y\003y\000\000\000\000\003y\003y\018\226\000\000\000\000\003y\003y\000\000\000\000\003y\003y\003y\003y\003u\000\000\003u\000\000\003u\000\000\000\000\000\000\003u\000\000\000\000\003u\000\000\003u\000\000\000\000\003u\000\000\000\000\003u\003u\003u\000\000\003u\003u\003u\000\000\000\000\000\000\000\000\000\000\003u\003u\003u\003u\000\000\003u\000\000\003u\000\000\000\000\000\000\000\000\000\000\000\000\003u\003u\003u\003u\003u\003u\000\000\000\000\000\000\000\000\000\000\003u\000\000\003u\003u\000\000\000\000\000\000\000\000\000\000\003u\003u\003u\000\000\000\000\000\000\000\000\000\000\000\000\003u\000\000\003u\003u\019\030\003u\003u\003u\003u\003u\003u\000\000\003u\000\000\000\000\000\000\000\000\000\000\003u\000\000\003u\003u\003u\000\000\000\000\000\000\000\000\003u\000\000\000\000\003u\000\000\003u\003u\000\000\003u\003u\003u\003u\000\000\000\000\000\000\000\000\000\000\000\000\003u\000\000\003u\003u\000\000\003u\003u\003u\003u\003u\003u\003u\000\000\000\000\003u\003u\003u\000\000\000\000\003u\003u\000\000\000\000\003u\003u\003u\003u\0039\000\000\0039\000\000\0039\000\000\000\000\000\000\0039\000\000\000\000\0039\000\000\0039\000\000\000\000\0039\000\000\000\000\0039\0039\0039\000\000\0039\0039\0039\000\000\000\000\000\000\000\000\000\000\0039\0039\0039\0039\000\000\0039\000\000\0039\000\000\000\000\000\000\000\000\000\000\000\000\0039\0039\0039\0039\0039\0039\000\000\000\000\000\000\000\000\000\000\0039\000\000\0039\0039\000\000\000\000\000\000\000\000\000\000\0039\0039\0039\000\000\000\000\000\000\000\000\000\000\000\000\0039\000\000\0039\0039\0039\0039\0039\0039\0039\0039\0039\000\000\0039\000\000\000\000\000\000\000\000\000\000\0039\000\000\0039\0039\0039\000\000\000\000\000\000\000\000\0039\000\000\000\000\0039\000\000\0039\0039\000\000\0039\0039\0039\0039\000\000\000\000\000\000\000\000\000\000\000\000\0039\000\000\0039\0039\000\000\015\218\0039\0039\0039\0039\0039\0039\000\000\000\000\0039\0039\018\226\000\000\000\000\0039\0039\000\000\000\000\0039\0039\0039\0039\0035\000\000\0035\000\000\0035\000\000\000\000\000\000\0035\000\000\000\000\0035\000\000\0035\000\000\000\000\0035\000\000\000\000\0035\0035\0035\000\000\0035\0035\0035\000\000\000\000\000\000\000\000\000\000\0035\0035\0035\0035\000\000\0035\000\000\0035\000\000\000\000\000\000\000\000\000\000\000\000\0035\0035\0035\0035\0035\0035\000\000\000\000\000\000\000\000\000\000\0035\000\000\0035\0035\000\000\000\000\000\000\000\000\000\000\0035\0035\0035\000\000\000\000\000\000\000\000\000\000\000\000\0035\000\000\0035\0035\019\030\0035\0035\0035\0035\0035\0035\000\000\0035\000\000\000\000\000\000\000\000\000\000\0035\000\000\0035\0035\0035\000\000\000\000\000\000\000\000\0035\000\000\000\000\0035\000\000\0035\0035\000\000\0035\0035\0035\0035\000\000\000\000\000\000\000\000\000\000\000\000\0035\000\000\0035\0035\000\000\0035\0035\0035\0035\0035\0035\0035\000\000\000\000\0035\0035\0035\000\000\000\000\0035\0035\000\000\000\000\0035\0035\0035\0035\0031\000\000\0031\000\000\0031\000\000\000\000\000\000\0031\000\000\000\000\0031\000\000\0031\000\000\000\000\0031\000\000\000\000\0031\0031\0031\000\000\0031\0031\0031\000\000\000\000\000\000\000\000\000\000\0031\0031\0031\0031\000\000\0031\000\000\0031\000\000\000\000\000\000\000\000\000\000\000\000\0031\0031\0031\0031\0031\0031\000\000\000\000\000\000\000\000\000\000\0031\000\000\0031\0031\000\000\000\000\000\000\000\000\000\000\0031\0031\0031\000\000\000\000\000\000\000\000\000\000\000\000\0031\000\000\0031\0031\0031\0031\0031\0031\0031\0031\0031\000\000\0031\000\000\000\000\000\000\000\000\000\000\0031\000\000\0031\0031\0031\000\000\000\000\000\000\000\000\0031\000\000\000\000\0031\000\000\0031\0031\000\000\0031\0031\0031\0031\000\000\000\000\000\000\000\000\000\000\000\000\0031\000\000\0031\0031\000\000\015\218\0031\0031\0031\0031\0031\0031\000\000\000\000\0031\0031\018\226\000\000\000\000\0031\0031\000\000\000\000\0031\0031\0031\0031\003-\000\000\003-\000\000\003-\000\000\000\000\000\000\003-\000\000\000\000\003-\000\000\003-\000\000\000\000\003-\000\000\000\000\003-\003-\003-\000\000\003-\003-\003-\000\000\000\000\000\000\000\000\000\000\003-\003-\003-\003-\000\000\003-\000\000\003-\000\000\000\000\000\000\000\000\000\000\000\000\003-\003-\003-\003-\003-\003-\000\000\000\000\000\000\000\000\000\000\003-\000\000\003-\003-\000\000\000\000\000\000\000\000\000\000\003-\003-\003-\000\000\000\000\000\000\000\000\000\000\000\000\003-\000\000\003-\003-\019\030\003-\003-\003-\003-\003-\003-\000\000\003-\000\000\000\000\000\000\000\000\000\000\003-\000\000\003-\003-\003-\000\000\000\000\000\000\000\000\003-\000\000\000\000\003-\000\000\003-\003-\000\000\003-\003-\003-\003-\000\000\000\000\000\000\000\000\000\000\000\000\003-\000\000\003-\003-\000\000\003-\003-\003-\003-\003-\003-\003-\000\000\000\000\003-\003-\003-\000\000\000\000\003-\003-\000\000\000\000\003-\003-\003-\003-\003Q\000\000\003Q\000\000\003Q\000\000\000\000\000\000\003Q\000\000\000\000\003Q\000\000\003Q\000\000\000\000\003Q\000\000\000\000\003Q\003Q\003Q\000\000\003Q\003Q\003Q\000\000\000\000\000\000\000\000\000\000\003Q\003Q\003Q\003Q\000\000\003Q\000\000\003Q\000\000\000\000\000\000\000\000\000\000\000\000\003Q\003Q\003Q\003Q\003Q\003Q\000\000\000\000\000\000\000\000\000\000\003Q\000\000\003Q\003Q\000\000\000\000\000\000\000\000\000\000\003Q\003Q\003Q\000\000\000\000\000\000\000\000\000\000\000\000\003Q\000\000\003Q\003Q\003Q\003Q\003Q\003Q\003Q\003Q\003Q\000\000\003Q\000\000\000\000\000\000\000\000\000\000\003Q\000\000\003Q\003Q\003Q\000\000\000\000\000\000\000\000\003Q\000\000\000\000\003Q\000\000\003Q\003Q\000\000\003Q\003Q\003Q\003Q\000\000\000\000\000\000\000\000\000\000\000\000\003Q\000\000\003Q\003Q\000\000\015\218\003Q\003Q\003Q\003Q\003Q\003Q\000\000\000\000\003Q\003Q\018\226\000\000\000\000\003Q\003Q\000\000\000\000\003Q\003Q\003Q\003Q\003M\000\000\003M\000\000\003M\000\000\000\000\000\000\003M\000\000\000\000\003M\000\000\003M\000\000\000\000\019\006\000\000\000\000\003M\003M\003M\000\000\003M\003M\003M\000\000\000\000\000\000\000\000\000\000\003M\003M\003M\019\134\000\000\003M\000\000\003M\000\000\000\000\000\000\000\000\000\000\000\000\003M\019\158\003M\003M\003M\003M\000\000\000\000\000\000\000\000\000\000\003M\000\000\003M\003M\000\000\000\000\000\000\000\000\000\000\003M\003M\003M\000\000\000\000\000\000\000\000\000\000\000\000\003M\000\000\003M\003M\019\030\019\182\003M\003M\003M\003M\003M\000\000\003M\000\000\000\000\000\000\000\000\000\000\003M\000\000\003M\003M\003M\000\000\000\000\000\000\000\000\003M\000\000\000\000\003M\000\000\003M\003M\000\000\003M\003M\003M\003M\000\000\000\000\000\000\000\000\000\000\000\000\003M\000\000\003M\003M\000\000\003M\003M\003M\003M\003M\003M\003M\000\000\000\000\003M\003M\003M\000\000\000\000\003M\003M\000\000\000\000\003M\003M\003M\003M\003I\000\000\003I\000\000\003I\000\000\000\000\000\000\003I\000\000\000\000\003I\000\000\003I\000\000\000\000\003I\000\000\000\000\003I\003I\003I\000\000\003I\003I\003I\000\000\000\000\000\000\000\000\000\000\003I\003I\003I\003I\000\000\003I\000\000\003I\000\000\000\000\000\000\000\000\000\000\000\000\003I\003I\003I\003I\003I\003I\000\000\000\000\000\000\000\000\000\000\003I\000\000\003I\003I\000\000\000\000\000\000\000\000\000\000\003I\003I\003I\000\000\000\000\000\000\000\000\000\000\000\000\003I\000\000\003I\003I\003I\003I\003I\003I\003I\003I\003I\000\000\003I\000\000\000\000\000\000\000\000\000\000\003I\000\000\003I\003I\003I\000\000\000\000\000\000\000\000\003I\000\000\000\000\003I\000\000\003I\003I\000\000\003I\003I\003I\003I\000\000\000\000\000\000\000\000\000\000\000\000\003I\000\000\003I\003I\000\000\015\218\003I\003I\003I\003I\003I\003I\000\000\000\000\003I\003I\018\226\000\000\000\000\003I\003I\000\000\000\000\003I\003I\003I\003I\003E\000\000\003E\000\000\003E\000\000\000\000\000\000\003E\000\000\000\000\003E\000\000\003E\000\000\000\000\019\006\000\000\000\000\003E\003E\003E\000\000\003E\003E\003E\000\000\000\000\000\000\000\000\000\000\003E\003E\003E\019\134\000\000\003E\000\000\003E\000\000\000\000\000\000\000\000\000\000\000\000\003E\019\158\003E\003E\003E\003E\000\000\000\000\000\000\000\000\000\000\003E\000\000\003E\003E\000\000\000\000\000\000\000\000\000\000\003E\003E\003E\000\000\000\000\000\000\000\000\000\000\000\000\003E\000\000\003E\003E\019\030\019\182\003E\003E\003E\003E\003E\000\000\003E\000\000\000\000\000\000\000\000\000\000\003E\000\000\003E\003E\003E\000\000\000\000\000\000\000\000\003E\000\000\000\000\003E\000\000\003E\003E\000\000\003E\003E\003E\003E\000\000\000\000\000\000\000\000\000\000\000\000\003E\000\000\003E\003E\000\000\003E\003E\003E\003E\003E\003E\003E\000\000\000\000\003E\003E\003E\000\000\000\000\003E\003E\000\000\000\000\003E\003E\003E\003E\003\153\000\000\003\153\000\000\003\153\000\000\000\000\000\000\003\153\000\000\000\000\003\153\000\000\003\153\000\000\000\000\003\153\000\000\000\000\003\153\003\153\003\153\000\000\003\153\003\153\003\153\000\000\000\000\000\000\000\000\000\000\003\153\003\153\003\153\003\153\000\000\003\153\000\000\003\153\000\000\000\000\000\000\000\000\000\000\000\000\003\153\003\153\003\153\003\153\003\153\003\153\000\000\000\000\000\000\000\000\000\000\003\153\000\000\003\153\003\153\000\000\000\000\000\000\000\000\000\000\003\153\003\153\003\153\000\000\000\000\000\000\000\000\000\000\000\000\003\153\000\000\003\153\003\153\003\153\003\153\003\153\003\153\003\153\003\153\003\153\000\000\003\153\000\000\000\000\000\000\000\000\000\000\003\153\000\000\003\153\003\153\003\153\000\000\000\000\000\000\000\000\003\153\000\000\000\000\003\153\000\000\003\153\003\153\000\000\003\153\003\153\003\153\003\153\000\000\000\000\000\000\000\000\000\000\000\000\003\153\000\000\003\153\003\153\000\000\015\218\003\153\003\153\003\153\003\153\003\153\003\153\000\000\000\000\003\153\003\153\018\226\000\000\000\000\003\153\003\153\000\000\000\000\003\153\003\153\003\153\003\153\003\149\000\000\003\149\000\000\003\149\000\000\000\000\000\000\003\149\000\000\000\000\003\149\000\000\003\149\000\000\000\000\019\006\000\000\000\000\003\149\003\149\003\149\000\000\003\149\003\149\003\149\000\000\000\000\000\000\000\000\000\000\019n\019\206\019\230\019\134\000\000\019\254\000\000\003\149\000\000\000\000\000\000\000\000\000\000\000\000\003\149\019\158\003\149\020\022\020.\003\149\000\000\000\000\000\000\000\000\000\000\003\149\000\000\020F\003\149\000\000\000\000\000\000\000\000\000\000\003\149\003\149\000\242\000\000\000\000\000\000\000\000\000\000\000\000\003\149\000\000\003\149\003\149\019\030\019\182\020^\020v\020\214\003\149\003\149\000\000\003\149\000\000\000\000\000\000\000\000\000\000\003\149\000\000\003\149\003\149\020\238\000\000\000\000\000\000\000\000\003\149\000\000\000\000\003\149\000\000\003\149\021\006\000\000\003\149\003\149\003\149\003\149\000\000\000\000\000\000\000\000\000\000\000\000\003\149\000\000\003\149\003\149\000\000\003\149\003\149\003\149\003\149\020\142\003\149\003\149\000\000\000\000\003\149\021\030\003\149\000\000\000\000\020\166\020\190\000\000\000\000\003\149\003\149\0216\021N\003i\000\000\003i\000\000\003i\000\000\000\000\000\000\003i\000\000\000\000\003i\000\000\003i\000\000\000\000\003i\000\000\000\000\003i\003i\003i\000\000\003i\003i\003i\000\000\000\000\000\000\000\000\000\000\003i\003i\003i\003i\000\000\003i\000\000\003i\000\000\000\000\000\000\000\000\000\000\000\000\003i\003i\003i\003i\003i\003i\000\000\000\000\000\000\000\000\000\000\003i\000\000\003i\003i\000\000\000\000\000\000\000\000\000\000\003i\003i\003i\000\000\000\000\000\000\000\000\000\000\000\000\003i\000\000\003i\003i\003i\003i\003i\003i\003i\003i\003i\000\000\003i\000\000\000\000\000\000\000\000\000\000\003i\000\000\003i\003i\003i\000\000\000\000\000\000\000\000\003i\000\000\000\000\003i\000\000\003i\003i\000\000\003i\003i\003i\003i\000\000\000\000\000\000\000\000\000\000\000\000\003i\000\000\003i\003i\000\000\015\218\003i\003i\003i\003i\003i\003i\000\000\000\000\003i\003i\018\226\000\000\000\000\003i\003i\000\000\000\000\003i\003i\003i\003i\003e\000\000\003e\000\000\003e\000\000\000\000\000\000\003e\000\000\000\000\003e\000\000\003e\000\000\000\000\019\006\000\000\000\000\003e\003e\003e\000\000\003e\003e\003e\000\000\000\000\000\000\000\000\000\000\003e\003e\003e\019\134\000\000\003e\000\000\003e\000\000\000\000\000\000\000\000\000\000\000\000\003e\019\158\003e\003e\003e\003e\000\000\000\000\000\000\000\000\000\000\003e\000\000\003e\003e\000\000\000\000\000\000\000\000\000\000\003e\003e\003e\000\000\000\000\000\000\000\000\000\000\000\000\003e\000\000\003e\003e\019\030\019\182\003e\003e\003e\003e\003e\000\000\003e\000\000\000\000\000\000\000\000\000\000\003e\000\000\003e\003e\003e\000\000\000\000\000\000\000\000\003e\000\000\000\000\003e\000\000\003e\003e\000\000\003e\003e\003e\003e\000\000\000\000\000\000\000\000\000\000\000\000\003e\000\000\003e\003e\000\000\003e\003e\003e\003e\003e\003e\003e\000\000\000\000\003e\003e\003e\000\000\000\000\003e\003e\000\000\000\000\003e\003e\003e\003e\003a\000\000\003a\000\000\003a\000\000\000\000\000\000\003a\000\000\000\000\003a\000\000\003a\000\000\000\000\003a\000\000\000\000\003a\003a\003a\000\000\003a\003a\003a\000\000\000\000\000\000\000\000\000\000\003a\003a\003a\003a\000\000\003a\000\000\003a\000\000\000\000\000\000\000\000\000\000\000\000\003a\003a\003a\003a\003a\003a\000\000\000\000\000\000\000\000\000\000\003a\000\000\003a\003a\000\000\000\000\000\000\000\000\000\000\003a\003a\003a\000\000\000\000\000\000\000\000\000\000\000\000\003a\000\000\003a\003a\003a\003a\003a\003a\003a\003a\003a\000\000\003a\000\000\000\000\000\000\000\000\000\000\003a\000\000\003a\003a\003a\000\000\000\000\000\000\000\000\003a\000\000\000\000\003a\000\000\003a\003a\000\000\003a\003a\003a\003a\000\000\000\000\000\000\000\000\000\000\000\000\003a\000\000\003a\003a\000\000\015\218\003a\003a\003a\003a\003a\003a\000\000\000\000\003a\003a\018\226\000\000\000\000\003a\003a\000\000\000\000\003a\003a\003a\003a\003]\000\000\003]\000\000\003]\000\000\000\000\000\000\003]\000\000\000\000\003]\000\000\003]\000\000\000\000\019\006\000\000\000\000\003]\003]\003]\000\000\003]\003]\003]\000\000\000\000\000\000\000\000\000\000\003]\003]\003]\019\134\000\000\003]\000\000\003]\000\000\000\000\000\000\000\000\000\000\000\000\003]\019\158\003]\003]\003]\003]\000\000\000\000\000\000\000\000\000\000\003]\000\000\003]\003]\000\000\000\000\000\000\000\000\000\000\003]\003]\003]\000\000\000\000\000\000\000\000\000\000\000\000\003]\000\000\003]\003]\019\030\019\182\003]\003]\003]\003]\003]\000\000\003]\000\000\000\000\000\000\000\000\000\000\003]\000\000\003]\003]\003]\000\000\000\000\000\000\000\000\003]\000\000\000\000\003]\000\000\003]\003]\000\000\003]\003]\003]\003]\000\000\000\000\000\000\000\000\000\000\000\000\003]\000\000\003]\003]\000\000\003]\003]\003]\003]\003]\003]\003]\000\000\000\000\003]\003]\003]\000\000\000\000\003]\003]\000\000\000\000\003]\003]\003]\003]\003\137\000\000\003\137\000\000\003\137\000\000\000\000\000\000\003\137\000\000\000\000\003\137\000\000\003\137\000\000\000\000\003\137\000\000\000\000\003\137\003\137\003\137\000\000\003\137\003\137\003\137\000\000\000\000\000\000\000\000\000\000\003\137\003\137\003\137\003\137\000\000\003\137\000\000\003\137\000\000\000\000\000\000\000\000\000\000\000\000\003\137\003\137\003\137\003\137\003\137\003\137\000\000\000\000\000\000\000\000\000\000\003\137\000\000\003\137\003\137\000\000\000\000\000\000\000\000\000\000\003\137\003\137\003\137\000\000\000\000\000\000\000\000\000\000\000\000\003\137\000\000\003\137\003\137\003\137\003\137\003\137\003\137\003\137\003\137\003\137\000\000\003\137\000\000\000\000\000\000\000\000\000\000\003\137\000\000\003\137\003\137\003\137\000\000\000\000\000\000\000\000\003\137\000\000\000\000\003\137\000\000\003\137\003\137\000\000\003\137\003\137\003\137\003\137\000\000\000\000\000\000\000\000\000\000\000\000\003\137\000\000\003\137\003\137\000\000\015\218\003\137\003\137\003\137\003\137\003\137\003\137\000\000\000\000\003\137\003\137\018\226\000\000\000\000\003\137\003\137\000\000\000\000\003\137\003\137\003\137\003\137\003\133\000\000\003\133\000\000\003\133\000\000\000\000\000\000\003\133\000\000\000\000\003\133\000\000\003\133\000\000\000\000\019\006\000\000\000\000\003\133\003\133\003\133\000\000\003\133\003\133\003\133\000\000\000\000\000\000\000\000\000\000\019n\019\206\019\230\019\134\000\000\003\133\000\000\003\133\000\000\000\000\000\000\000\000\000\000\000\000\003\133\019\158\003\133\020\022\020.\003\133\000\000\000\000\000\000\000\000\000\000\003\133\000\000\003\133\003\133\000\000\000\000\000\000\000\000\000\000\003\133\003\133\000\242\000\000\000\000\000\000\000\000\000\000\000\000\003\133\000\000\003\133\003\133\019\030\019\182\020^\020v\003\133\003\133\003\133\000\000\003\133\000\000\000\000\000\000\000\000\000\000\003\133\000\000\003\133\003\133\003\133\000\000\000\000\000\000\000\000\003\133\000\000\000\000\003\133\000\000\003\133\003\133\000\000\003\133\003\133\003\133\003\133\000\000\000\000\000\000\000\000\000\000\000\000\003\133\000\000\003\133\003\133\000\000\003\133\003\133\003\133\003\133\020\142\003\133\003\133\000\000\000\000\003\133\003\133\003\133\000\000\000\000\020\166\020\190\000\000\000\000\003\133\003\133\003\133\003\133\003)\000\000\003)\000\000\003)\000\000\000\000\000\000\003)\000\000\000\000\003)\000\000\003)\000\000\000\000\003)\000\000\000\000\003)\003)\003)\000\000\003)\003)\003)\000\000\000\000\000\000\000\000\000\000\003)\003)\003)\003)\000\000\003)\000\000\003)\000\000\000\000\000\000\000\000\000\000\000\000\003)\003)\003)\003)\003)\003)\000\000\000\000\000\000\000\000\000\000\003)\000\000\003)\003)\000\000\000\000\000\000\000\000\000\000\003)\003)\003)\000\000\000\000\000\000\000\000\000\000\000\000\003)\000\000\003)\003)\003)\003)\003)\003)\003)\003)\003)\000\000\003)\000\000\000\000\000\000\000\000\000\000\003)\000\000\003)\003)\003)\000\000\000\000\000\000\000\000\003)\000\000\000\000\003)\000\000\003)\003)\000\000\003)\003)\003)\003)\000\000\000\000\000\000\000\000\000\000\000\000\003)\000\000\003)\003)\000\000\015\218\003)\003)\003)\003)\003)\003)\000\000\000\000\003)\003)\018\226\000\000\000\000\003)\003)\000\000\000\000\003)\003)\003)\003)\003%\000\000\003%\000\000\003%\000\000\000\000\000\000\003%\000\000\000\000\003%\000\000\003%\000\000\000\000\019\006\000\000\000\000\003%\003%\003%\000\000\003%\003%\003%\000\000\000\000\000\000\000\000\000\000\003%\003%\003%\019\134\000\000\003%\000\000\003%\000\000\000\000\000\000\000\000\000\000\000\000\003%\019\158\003%\003%\003%\003%\000\000\000\000\000\000\000\000\000\000\003%\000\000\003%\003%\000\000\000\000\000\000\000\000\000\000\003%\003%\003%\000\000\000\000\000\000\000\000\000\000\000\000\003%\000\000\003%\003%\019\030\019\182\003%\003%\003%\003%\003%\000\000\003%\000\000\000\000\000\000\000\000\000\000\003%\000\000\003%\003%\003%\000\000\000\000\000\000\000\000\003%\000\000\000\000\003%\000\000\003%\003%\000\000\003%\003%\003%\003%\000\000\000\000\000\000\000\000\000\000\000\000\003%\000\000\003%\003%\000\000\003%\003%\003%\003%\003%\003%\003%\000\000\000\000\003%\003%\003%\000\000\000\000\003%\003%\000\000\000\000\003%\003%\003%\003%\003!\000\000\003!\000\000\003!\000\000\000\000\000\000\003!\000\000\000\000\003!\000\000\003!\000\000\000\000\003!\000\000\000\000\003!\003!\003!\000\000\003!\003!\003!\000\000\000\000\000\000\000\000\000\000\003!\003!\003!\003!\000\000\003!\000\000\003!\000\000\000\000\000\000\000\000\000\000\000\000\003!\003!\003!\003!\003!\003!\000\000\000\000\000\000\000\000\000\000\003!\000\000\003!\003!\000\000\000\000\000\000\000\000\000\000\003!\003!\003!\000\000\000\000\000\000\000\000\000\000\000\000\003!\000\000\003!\003!\003!\003!\003!\003!\003!\003!\003!\000\000\003!\000\000\000\000\000\000\000\000\000\000\003!\000\000\003!\003!\003!\000\000\000\000\000\000\000\000\003!\000\000\000\000\003!\000\000\003!\003!\000\000\003!\003!\003!\003!\000\000\000\000\000\000\000\000\000\000\000\000\003!\000\000\003!\003!\000\000\015\218\003!\003!\003!\003!\003!\003!\000\000\000\000\003!\003!\018\226\000\000\000\000\003!\003!\000\000\000\000\003!\003!\003!\003!\003\029\000\000\003\029\000\000\003\029\000\000\000\000\000\000\003\029\000\000\000\000\003\029\000\000\003\029\000\000\000\000\019\006\000\000\000\000\003\029\003\029\003\029\000\000\003\029\003\029\003\029\000\000\000\000\000\000\000\000\000\000\019n\019\206\019\230\019\134\000\000\003\029\000\000\003\029\000\000\000\000\000\000\000\000\000\000\000\000\003\029\019\158\003\029\020\022\020.\003\029\000\000\000\000\000\000\000\000\000\000\003\029\000\000\003\029\003\029\000\000\000\000\000\000\000\000\000\000\003\029\003\029\000\242\000\000\000\000\000\000\000\000\000\000\000\000\003\029\000\000\003\029\003\029\019\030\019\182\020^\020v\003\029\003\029\003\029\000\000\003\029\000\000\000\000\000\000\000\000\000\000\003\029\000\000\003\029\003\029\003\029\000\000\000\000\000\000\000\000\003\029\000\000\000\000\003\029\000\000\003\029\003\029\000\000\003\029\003\029\003\029\003\029\000\000\000\000\000\000\000\000\000\000\000\000\003\029\000\000\003\029\003\029\000\000\003\029\003\029\003\029\003\029\020\142\003\029\003\029\000\000\000\000\003\029\003\029\003\029\000\000\000\000\020\166\020\190\000\000\000\000\003\029\003\029\003\029\003\029\003\201\000\000\003\201\000\000\003\201\000\000\000\000\000\000\003\201\000\000\000\000\003\201\000\000\003\201\000\000\000\000\003\201\000\000\000\000\003\201\003\201\003\201\000\000\003\201\003\201\003\201\000\000\000\000\000\000\000\000\000\000\003\201\003\201\003\201\003\201\000\000\003\201\000\000\003\201\000\000\000\000\000\000\000\000\000\000\000\000\003\201\003\201\003\201\003\201\003\201\003\201\000\000\000\000\000\000\000\000\000\000\003\201\000\000\003\201\003\201\000\000\000\000\000\000\000\000\000\000\003\201\003\201\003\201\000\000\000\000\000\000\000\000\000\000\000\000\003\201\000\000\003\201\003\201\003\201\003\201\003\201\003\201\003\201\003\201\003\201\000\000\003\201\000\000\000\000\000\000\000\000\000\000\003\201\000\000\003\201\003\201\003\201\000\000\000\000\000\000\000\000\003\201\000\000\000\000\003\201\000\000\003\201\003\201\000\000\003\201\003\201\003\201\003\201\000\000\000\000\000\000\000\000\000\000\000\000\003\201\000\000\003\201\003\201\000\000\015\218\003\201\003\201\003\201\003\201\003\201\003\201\000\000\000\000\003\201\003\201\018\226\000\000\000\000\003\201\003\201\000\000\000\000\003\201\003\201\003\201\003\201\003\197\000\000\003\197\000\000\003\197\000\000\000\000\000\000\003\197\000\000\000\000\003\197\000\000\003\197\000\000\000\000\019\006\000\000\000\000\003\197\003\197\003\197\000\000\003\197\003\197\003\197\000\000\000\000\000\000\000\000\000\000\019n\019\206\019\230\019\134\000\000\003\197\000\000\003\197\000\000\000\000\000\000\000\000\000\000\000\000\003\197\019\158\003\197\020\022\020.\003\197\000\000\000\000\000\000\000\000\000\000\003\197\000\000\003\197\003\197\000\000\000\000\000\000\000\000\000\000\003\197\003\197\003\197\000\000\000\000\000\000\000\000\000\000\000\000\003\197\000\000\003\197\003\197\019\030\019\182\020^\003\197\003\197\003\197\003\197\000\000\003\197\000\000\000\000\000\000\000\000\000\000\003\197\000\000\003\197\003\197\003\197\000\000\000\000\000\000\000\000\003\197\000\000\000\000\003\197\000\000\003\197\003\197\000\000\003\197\003\197\003\197\003\197\000\000\000\000\000\000\000\000\000\000\000\000\003\197\000\000\003\197\003\197\000\000\003\197\003\197\003\197\003\197\020\142\003\197\003\197\000\000\000\000\003\197\003\197\003\197\000\000\000\000\003\197\003\197\000\000\000\000\003\197\003\197\003\197\003\197\003\025\000\000\003\025\000\000\003\025\000\000\000\000\000\000\003\025\000\000\000\000\003\025\000\000\003\025\000\000\000\000\003\025\000\000\000\000\003\025\003\025\003\025\000\000\003\025\003\025\003\025\000\000\000\000\000\000\000\000\000\000\003\025\003\025\003\025\003\025\000\000\003\025\000\000\003\025\000\000\000\000\000\000\000\000\000\000\000\000\003\025\003\025\003\025\003\025\003\025\003\025\000\000\000\000\000\000\000\000\000\000\003\025\000\000\003\025\003\025\000\000\000\000\000\000\000\000\000\000\003\025\003\025\003\025\000\000\000\000\000\000\000\000\000\000\000\000\003\025\000\000\003\025\003\025\003\025\003\025\003\025\003\025\003\025\003\025\003\025\000\000\003\025\000\000\000\000\000\000\000\000\000\000\003\025\000\000\003\025\003\025\003\025\000\000\000\000\000\000\000\000\003\025\000\000\000\000\003\025\000\000\003\025\003\025\000\000\003\025\003\025\003\025\003\025\000\000\000\000\000\000\000\000\000\000\000\000\003\025\000\000\003\025\003\025\000\000\015\218\003\025\003\025\003\025\003\025\003\025\003\025\000\000\000\000\003\025\003\025\018\226\000\000\000\000\003\025\003\025\000\000\000\000\003\025\003\025\003\025\003\025\003\021\000\000\003\021\000\000\003\021\000\000\000\000\000\000\003\021\000\000\000\000\003\021\000\000\003\021\000\000\000\000\019\006\000\000\000\000\003\021\003\021\003\021\000\000\003\021\003\021\003\021\000\000\000\000\000\000\000\000\000\000\019n\019\206\019\230\019\134\000\000\003\021\000\000\003\021\000\000\000\000\000\000\000\000\000\000\000\000\003\021\019\158\003\021\020\022\020.\003\021\000\000\000\000\000\000\000\000\000\000\003\021\000\000\003\021\003\021\000\000\000\000\000\000\000\000\000\000\003\021\003\021\000\242\000\000\000\000\000\000\000\000\000\000\000\000\003\021\000\000\003\021\003\021\019\030\019\182\020^\020v\003\021\003\021\003\021\000\000\003\021\000\000\000\000\000\000\000\000\000\000\003\021\000\000\003\021\003\021\003\021\000\000\000\000\000\000\000\000\003\021\000\000\000\000\003\021\000\000\003\021\003\021\000\000\003\021\003\021\003\021\003\021\000\000\000\000\000\000\000\000\000\000\000\000\003\021\000\000\003\021\003\021\000\000\003\021\003\021\003\021\003\021\020\142\003\021\003\021\000\000\000\000\003\021\003\021\003\021\000\000\000\000\020\166\020\190\000\000\000\000\003\021\003\021\003\021\003\021\003\017\000\000\003\017\000\000\003\017\000\000\000\000\000\000\003\017\000\000\000\000\003\017\000\000\003\017\000\000\000\000\003\017\000\000\000\000\003\017\003\017\003\017\000\000\003\017\003\017\003\017\000\000\000\000\000\000\000\000\000\000\003\017\003\017\003\017\003\017\000\000\003\017\000\000\003\017\000\000\000\000\000\000\000\000\000\000\000\000\003\017\003\017\003\017\003\017\003\017\003\017\000\000\000\000\000\000\000\000\000\000\003\017\000\000\003\017\003\017\000\000\000\000\000\000\000\000\000\000\003\017\003\017\003\017\000\000\000\000\000\000\000\000\000\000\000\000\003\017\000\000\003\017\003\017\003\017\003\017\003\017\003\017\003\017\003\017\003\017\000\000\003\017\000\000\000\000\000\000\000\000\000\000\003\017\000\000\003\017\003\017\003\017\000\000\000\000\000\000\000\000\003\017\000\000\000\000\003\017\000\000\003\017\003\017\000\000\003\017\003\017\003\017\003\017\000\000\000\000\000\000\000\000\000\000\000\000\003\017\000\000\003\017\003\017\000\000\015\218\003\017\003\017\003\017\003\017\003\017\003\017\000\000\000\000\003\017\003\017\018\226\000\000\000\000\003\017\003\017\000\000\000\000\003\017\003\017\003\017\003\017\003\r\000\000\003\r\000\000\003\r\000\000\000\000\000\000\003\r\000\000\000\000\003\r\000\000\003\r\000\000\000\000\019\006\000\000\000\000\003\r\003\r\003\r\000\000\003\r\003\r\003\r\000\000\000\000\000\000\000\000\000\000\019n\019\206\019\230\019\134\000\000\003\r\000\000\003\r\000\000\000\000\000\000\000\000\000\000\000\000\003\r\019\158\003\r\020\022\020.\003\r\000\000\000\000\000\000\000\000\000\000\003\r\000\000\003\r\003\r\000\000\000\000\000\000\000\000\000\000\003\r\003\r\000\242\000\000\000\000\000\000\000\000\000\000\000\000\003\r\000\000\003\r\003\r\019\030\019\182\020^\020v\003\r\003\r\003\r\000\000\003\r\000\000\000\000\000\000\000\000\000\000\003\r\000\000\003\r\003\r\003\r\000\000\000\000\000\000\000\000\003\r\000\000\000\000\003\r\000\000\003\r\003\r\000\000\003\r\003\r\003\r\003\r\000\000\000\000\000\000\000\000\000\000\000\000\003\r\000\000\003\r\003\r\000\000\003\r\003\r\003\r\003\r\020\142\003\r\003\r\000\000\000\000\003\r\003\r\003\r\000\000\000\000\020\166\020\190\000\000\000\000\003\r\003\r\003\r\003\r\003\t\000\000\003\t\000\000\003\t\000\000\000\000\000\000\003\t\000\000\000\000\003\t\000\000\003\t\000\000\000\000\003\t\000\000\000\000\003\t\003\t\003\t\000\000\003\t\003\t\003\t\000\000\000\000\000\000\000\000\000\000\003\t\003\t\003\t\003\t\000\000\003\t\000\000\003\t\000\000\000\000\000\000\000\000\000\000\000\000\003\t\003\t\003\t\003\t\003\t\003\t\000\000\000\000\000\000\000\000\000\000\003\t\000\000\003\t\003\t\000\000\000\000\000\000\000\000\000\000\003\t\003\t\003\t\000\000\000\000\000\000\000\000\000\000\000\000\003\t\000\000\003\t\003\t\003\t\003\t\003\t\003\t\003\t\003\t\003\t\000\000\003\t\000\000\000\000\000\000\000\000\000\000\003\t\000\000\003\t\003\t\003\t\000\000\000\000\000\000\000\000\003\t\000\000\000\000\003\t\000\000\003\t\003\t\000\000\003\t\003\t\003\t\003\t\000\000\000\000\000\000\000\000\000\000\000\000\003\t\000\000\003\t\003\t\000\000\015\218\003\t\003\t\003\t\003\t\003\t\003\t\000\000\000\000\003\t\003\t\018\226\000\000\000\000\003\t\003\t\000\000\000\000\003\t\003\t\003\t\003\t\003\005\000\000\003\005\000\000\003\005\000\000\000\000\000\000\003\005\000\000\000\000\003\005\000\000\003\005\000\000\000\000\019\006\000\000\000\000\003\005\003\005\003\005\000\000\003\005\003\005\003\005\000\000\000\000\000\000\000\000\000\000\019n\019\206\019\230\019\134\000\000\003\005\000\000\003\005\000\000\000\000\000\000\000\000\000\000\000\000\003\005\019\158\003\005\020\022\020.\003\005\000\000\000\000\000\000\000\000\000\000\003\005\000\000\003\005\003\005\000\000\000\000\000\000\000\000\000\000\003\005\003\005\000\242\000\000\000\000\000\000\000\000\000\000\000\000\003\005\000\000\003\005\003\005\019\030\019\182\020^\020v\003\005\003\005\003\005\000\000\003\005\000\000\000\000\000\000\000\000\000\000\003\005\000\000\003\005\003\005\003\005\000\000\000\000\000\000\000\000\003\005\000\000\000\000\003\005\000\000\003\005\003\005\000\000\003\005\003\005\003\005\003\005\000\000\000\000\000\000\000\000\000\000\000\000\003\005\000\000\003\005\003\005\000\000\003\005\003\005\003\005\003\005\020\142\003\005\003\005\000\000\000\000\003\005\003\005\003\005\000\000\000\000\020\166\020\190\000\000\000\000\003\005\003\005\003\005\003\005\003\145\000\000\003\145\000\000\003\145\000\000\000\000\000\000\003\145\000\000\000\000\003\145\000\000\003\145\000\000\000\000\003\145\000\000\000\000\003\145\003\145\003\145\000\000\003\145\003\145\003\145\000\000\000\000\000\000\000\000\000\000\003\145\003\145\003\145\003\145\000\000\003\145\000\000\003\145\000\000\000\000\000\000\000\000\000\000\000\000\003\145\003\145\003\145\003\145\003\145\003\145\000\000\000\000\000\000\000\000\000\000\003\145\000\000\003\145\003\145\000\000\000\000\000\000\000\000\000\000\003\145\003\145\003\145\000\000\000\000\000\000\000\000\000\000\000\000\003\145\000\000\003\145\003\145\003\145\003\145\003\145\003\145\003\145\003\145\003\145\000\000\003\145\000\000\000\000\000\000\000\000\000\000\003\145\000\000\003\145\003\145\003\145\000\000\000\000\000\000\000\000\003\145\000\000\000\000\003\145\000\000\003\145\003\145\000\000\003\145\003\145\003\145\003\145\000\000\000\000\000\000\000\000\000\000\000\000\003\145\000\000\003\145\003\145\000\000\015\218\003\145\003\145\003\145\003\145\003\145\003\145\000\000\000\000\003\145\003\145\018\226\000\000\000\000\003\145\003\145\000\000\000\000\003\145\003\145\003\145\003\145\003\141\000\000\003\141\000\000\003\141\000\000\000\000\000\000\003\141\000\000\000\000\003\141\000\000\003\141\000\000\000\000\019\006\000\000\000\000\003\141\003\141\003\141\000\000\003\141\003\141\003\141\000\000\000\000\000\000\000\000\000\000\019n\019\206\019\230\019\134\000\000\003\141\000\000\003\141\000\000\000\000\000\000\000\000\000\000\000\000\003\141\019\158\003\141\020\022\020.\003\141\000\000\000\000\000\000\000\000\000\000\003\141\000\000\003\141\003\141\000\000\000\000\000\000\000\000\000\000\003\141\003\141\000\242\000\000\000\000\000\000\000\000\000\000\000\000\003\141\000\000\003\141\003\141\019\030\019\182\020^\020v\003\141\003\141\003\141\000\000\003\141\000\000\000\000\000\000\000\000\000\000\003\141\000\000\003\141\003\141\003\141\000\000\000\000\000\000\000\000\003\141\000\000\000\000\003\141\000\000\003\141\003\141\000\000\003\141\003\141\003\141\003\141\000\000\000\000\000\000\000\000\000\000\000\000\003\141\000\000\003\141\003\141\000\000\003\141\003\141\003\141\003\141\020\142\003\141\003\141\000\000\000\000\003\141\003\141\003\141\000\000\000\000\020\166\020\190\000\000\000\000\003\141\003\141\003\141\003\141\003\129\000\000\003\129\000\000\003\129\000\000\000\000\000\000\003\129\000\000\000\000\003\129\000\000\003\129\000\000\000\000\003\129\000\000\000\000\003\129\003\129\003\129\000\000\003\129\003\129\003\129\000\000\000\000\000\000\000\000\000\000\003\129\003\129\003\129\003\129\000\000\003\129\000\000\003\129\000\000\000\000\000\000\000\000\000\000\000\000\003\129\003\129\003\129\003\129\003\129\003\129\000\000\000\000\000\000\000\000\000\000\003\129\000\000\003\129\003\129\000\000\000\000\000\000\000\000\000\000\003\129\003\129\003\129\000\000\000\000\000\000\000\000\000\000\000\000\003\129\000\000\003\129\003\129\003\129\003\129\003\129\003\129\003\129\003\129\003\129\000\000\003\129\000\000\000\000\000\000\000\000\000\000\003\129\000\000\003\129\003\129\003\129\000\000\000\000\000\000\000\000\003\129\000\000\000\000\003\129\000\000\003\129\003\129\000\000\003\129\003\129\003\129\003\129\000\000\000\000\000\000\000\000\000\000\000\000\003\129\000\000\003\129\003\129\000\000\015\218\003\129\003\129\003\129\003\129\003\129\003\129\000\000\000\000\003\129\003\129\018\226\000\000\000\000\003\129\003\129\000\000\000\000\003\129\003\129\003\129\003\129\003}\000\000\003}\000\000\003}\000\000\000\000\000\000\003}\000\000\000\000\003}\000\000\003}\000\000\000\000\019\006\000\000\000\000\003}\003}\003}\000\000\003}\003}\003}\000\000\000\000\000\000\000\000\000\000\019n\019\206\019\230\019\134\000\000\003}\000\000\003}\000\000\000\000\000\000\000\000\000\000\000\000\003}\019\158\003}\020\022\020.\003}\000\000\000\000\000\000\000\000\000\000\003}\000\000\003}\003}\000\000\000\000\000\000\000\000\000\000\003}\003}\000\242\000\000\000\000\000\000\000\000\000\000\000\000\003}\000\000\003}\003}\019\030\019\182\020^\020v\003}\003}\003}\000\000\003}\000\000\000\000\000\000\000\000\000\000\003}\000\000\003}\003}\003}\000\000\000\000\000\000\000\000\003}\000\000\000\000\003}\000\000\003}\003}\000\000\003}\003}\003}\003}\000\000\000\000\000\000\000\000\000\000\000\000\003}\000\000\003}\003}\000\000\003}\003}\003}\003}\020\142\003}\003}\000\000\000\000\003}\003}\003}\000\000\000\000\020\166\020\190\000\000\000\000\003}\003}\003}\003}\003\161\000\000\003\161\000\000\003\161\000\000\000\000\000\000\003\161\000\000\000\000\003\161\000\000\003\161\000\000\000\000\003\161\000\000\000\000\003\161\003\161\003\161\000\000\003\161\003\161\003\161\000\000\000\000\000\000\000\000\000\000\003\161\003\161\003\161\003\161\000\000\003\161\000\000\003\161\000\000\000\000\000\000\000\000\000\000\000\000\003\161\003\161\003\161\003\161\003\161\003\161\000\000\000\000\000\000\000\000\000\000\003\161\000\000\003\161\003\161\000\000\000\000\000\000\000\000\000\000\003\161\003\161\003\161\000\000\000\000\000\000\000\000\000\000\000\000\003\161\000\000\003\161\003\161\003\161\003\161\003\161\003\161\003\161\003\161\003\161\000\000\003\161\000\000\000\000\000\000\000\000\000\000\003\161\000\000\003\161\003\161\003\161\000\000\000\000\000\000\000\000\003\161\000\000\000\000\003\161\000\000\003\161\003\161\000\000\003\161\003\161\003\161\003\161\000\000\000\000\000\000\000\000\000\000\000\000\003\161\000\000\003\161\003\161\000\000\015\218\003\161\003\161\003\161\003\161\003\161\003\161\000\000\000\000\003\161\003\161\018\226\000\000\000\000\003\161\003\161\000\000\000\000\003\161\003\161\003\161\003\161\003\157\000\000\003\157\000\000\003\157\000\000\000\000\000\000\003\157\000\000\000\000\003\157\000\000\003\157\000\000\000\000\019\006\000\000\000\000\003\157\003\157\003\157\000\000\003\157\003\157\003\157\000\000\000\000\000\000\000\000\000\000\019n\019\206\019\230\019\134\000\000\019\254\000\000\003\157\000\000\000\000\000\000\000\000\000\000\000\000\003\157\019\158\003\157\020\022\020.\003\157\000\000\000\000\000\000\000\000\000\000\003\157\000\000\020F\003\157\000\000\000\000\000\000\000\000\000\000\003\157\003\157\000\242\000\000\000\000\000\000\000\000\000\000\000\000\003\157\000\000\003\157\003\157\019\030\019\182\020^\020v\020\214\003\157\003\157\000\000\003\157\000\000\000\000\000\000\000\000\000\000\003\157\000\000\003\157\003\157\020\238\000\000\000\000\000\000\000\000\003\157\000\000\000\000\003\157\000\000\003\157\021\006\000\000\003\157\003\157\003\157\003\157\000\000\000\000\000\000\000\000\000\000\000\000\003\157\000\000\003\157\003\157\000\000\003\157\003\157\003\157\003\157\020\142\003\157\003\157\000\000\000\000\003\157\021\030\003\157\000\000\000\000\020\166\020\190\000\000\000\000\003\157\003\157\0216\021N\003\169\000\000\003\169\000\000\003\169\000\000\000\000\000\000\003\169\000\000\000\000\003\169\000\000\003\169\000\000\000\000\003\169\000\000\000\000\003\169\003\169\003\169\000\000\003\169\003\169\003\169\000\000\000\000\000\000\000\000\000\000\003\169\003\169\003\169\003\169\000\000\003\169\000\000\003\169\000\000\000\000\000\000\000\000\000\000\000\000\003\169\003\169\003\169\003\169\003\169\003\169\000\000\000\000\000\000\000\000\000\000\003\169\000\000\003\169\003\169\000\000\000\000\000\000\000\000\000\000\003\169\003\169\003\169\000\000\000\000\000\000\000\000\000\000\000\000\003\169\000\000\003\169\003\169\003\169\003\169\003\169\003\169\003\169\003\169\003\169\000\000\003\169\000\000\000\000\000\000\000\000\000\000\003\169\000\000\003\169\003\169\003\169\000\000\000\000\000\000\000\000\003\169\000\000\000\000\003\169\000\000\003\169\003\169\000\000\003\169\003\169\003\169\003\169\000\000\000\000\000\000\000\000\000\000\000\000\003\169\000\000\003\169\003\169\000\000\015\218\003\169\003\169\003\169\003\169\003\169\003\169\000\000\000\000\003\169\003\169\018\226\000\000\000\000\003\169\003\169\000\000\000\000\003\169\003\169\003\169\003\169\003\165\000\000\003\165\000\000\003\165\000\000\000\000\000\000\003\165\000\000\000\000\003\165\000\000\003\165\000\000\000\000\019\006\000\000\000\000\003\165\003\165\003\165\000\000\003\165\003\165\003\165\000\000\000\000\000\000\000\000\000\000\019n\019\206\019\230\019\134\000\000\003\165\000\000\003\165\000\000\000\000\000\000\000\000\000\000\000\000\003\165\019\158\003\165\020\022\020.\003\165\000\000\000\000\000\000\000\000\000\000\003\165\000\000\020F\003\165\000\000\000\000\000\000\000\000\000\000\003\165\003\165\000\242\000\000\000\000\000\000\000\000\000\000\000\000\003\165\000\000\003\165\003\165\019\030\019\182\020^\020v\020\214\003\165\003\165\000\000\003\165\000\000\000\000\000\000\000\000\000\000\003\165\000\000\003\165\003\165\020\238\000\000\000\000\000\000\000\000\003\165\000\000\000\000\003\165\000\000\003\165\021\006\000\000\003\165\003\165\003\165\003\165\000\000\000\000\000\000\000\000\000\000\000\000\003\165\000\000\003\165\003\165\000\000\003\165\003\165\003\165\003\165\020\142\003\165\003\165\000\000\000\000\003\165\003\165\003\165\000\000\000\000\020\166\020\190\000\000\000\000\003\165\003\165\0216\021N\003\177\000\000\003\177\000\000\003\177\000\000\000\000\000\000\003\177\000\000\000\000\003\177\000\000\003\177\000\000\000\000\003\177\000\000\000\000\003\177\003\177\003\177\000\000\003\177\003\177\003\177\000\000\000\000\000\000\000\000\000\000\003\177\003\177\003\177\003\177\000\000\003\177\000\000\003\177\000\000\000\000\000\000\000\000\000\000\000\000\003\177\003\177\003\177\003\177\003\177\003\177\000\000\000\000\000\000\000\000\000\000\003\177\000\000\003\177\003\177\000\000\000\000\000\000\000\000\000\000\003\177\003\177\003\177\000\000\000\000\000\000\000\000\000\000\000\000\003\177\000\000\003\177\003\177\003\177\003\177\003\177\003\177\003\177\003\177\003\177\000\000\003\177\000\000\000\000\000\000\000\000\000\000\003\177\000\000\003\177\003\177\003\177\000\000\000\000\000\000\000\000\003\177\000\000\000\000\003\177\000\000\003\177\003\177\000\000\003\177\003\177\003\177\003\177\000\000\000\000\000\000\000\000\000\000\000\000\003\177\000\000\003\177\003\177\000\000\015\218\003\177\003\177\003\177\003\177\003\177\003\177\000\000\000\000\003\177\003\177\018\226\000\000\000\000\003\177\003\177\000\000\000\000\003\177\003\177\003\177\003\177\003\173\000\000\003\173\000\000\003\173\000\000\000\000\000\000\003\173\000\000\000\000\003\173\000\000\003\173\000\000\000\000\019\006\000\000\000\000\003\173\003\173\003\173\000\000\003\173\003\173\003\173\000\000\000\000\000\000\000\000\000\000\019n\019\206\019\230\019\134\000\000\003\173\000\000\003\173\000\000\000\000\000\000\000\000\000\000\000\000\003\173\019\158\003\173\020\022\020.\003\173\000\000\000\000\000\000\000\000\000\000\003\173\000\000\020F\003\173\000\000\000\000\000\000\000\000\000\000\003\173\003\173\000\242\000\000\000\000\000\000\000\000\000\000\000\000\003\173\000\000\003\173\003\173\019\030\019\182\020^\020v\020\214\003\173\003\173\000\000\003\173\000\000\000\000\000\000\000\000\000\000\003\173\000\000\003\173\003\173\020\238\000\000\000\000\000\000\000\000\003\173\000\000\000\000\003\173\000\000\003\173\021\006\000\000\003\173\003\173\003\173\003\173\000\000\000\000\000\000\000\000\000\000\000\000\003\173\000\000\003\173\003\173\000\000\003\173\003\173\003\173\003\173\020\142\003\173\003\173\000\000\000\000\003\173\003\173\003\173\000\000\000\000\020\166\020\190\000\000\000\000\003\173\003\173\0216\021N\0121\000\000\0121\000\000\0121\000\000\000\000\000\000\0121\000\000\000\000\0121\000\000\0121\000\000\000\000\0121\000\000\000\000\0121\0121\0121\000\000\0121\0121\0121\000\000\000\000\000\000\000\000\000\000\0121\0121\0121\0121\000\000\0121\000\000\0121\000\000\000\000\000\000\000\000\000\000\000\000\0121\0121\0121\0121\0121\0121\000\000\000\000\000\000\000\000\000\000\0121\000\000\0121\0121\000\000\000\000\000\000\000\000\000\000\0121\0121\0121\000\000\000\000\000\000\000\000\000\000\000\000\0121\000\000\0121\0121\0121\0121\0121\0121\0121\0121\0121\000\000\0121\000\000\000\000\000\000\000\000\000\000\0121\000\000\0121\0121\0121\000\000\000\000\000\000\000\000\0121\000\000\000\000\0121\000\000\0121\0121\000\000\0121\0121\0121\0121\000\000\000\000\000\000\000\000\000\000\000\000\0121\000\000\0121\0121\000\000\015\218\0121\0121\0121\0121\0121\0121\000\000\000\000\0121\0121\018\226\000\000\000\000\0121\0121\000\000\000\000\0121\0121\0121\0121\012-\000\000\012-\000\000\012-\000\000\000\000\000\000\012-\000\000\000\000\012-\000\000\012-\000\000\000\000\019\006\000\000\000\000\012-\012-\012-\000\000\012-\012-\012-\000\000\000\000\000\000\000\000\000\000\019n\019\206\019\230\019\134\000\000\019\254\000\000\012-\000\000\000\000\000\000\000\000\000\000\000\000\012-\019\158\012-\020\022\020.\012-\000\000\000\000\000\000\000\000\000\000\012-\000\000\020F\012-\000\000\000\000\000\000\000\000\000\000\012-\012-\000\242\000\000\000\000\000\000\000\000\000\000\000\000\012-\000\000\012-\012-\019\030\019\182\020^\020v\020\214\012-\012-\000\000\012-\000\000\000\000\000\000\000\000\000\000\012-\000\000\012-\012-\020\238\000\000\000\000\000\000\000\000\012-\000\000\000\000\012-\000\000\012-\021\006\000\000\012-\012-\012-\012-\000\000\000\000\000\000\000\000\000\000\000\000\012-\000\000\012-\012-\000\000\012-\012-\012-\012-\020\142\012-\012-\000\000\000\000\012-\021\030\012-\000\000\000\000\020\166\020\190\000\000\000\000\012-\012-\0216\021N\003\185\000\000\003\185\000\000\003\185\000\000\000\000\000\000\003\185\000\000\000\000\003\185\000\000\003\185\000\000\000\000\003\185\000\000\000\000\003\185\003\185\003\185\000\000\003\185\003\185\003\185\000\000\000\000\000\000\000\000\000\000\003\185\003\185\003\185\003\185\000\000\003\185\000\000\003\185\000\000\000\000\000\000\000\000\000\000\000\000\003\185\003\185\003\185\003\185\003\185\003\185\000\000\000\000\000\000\000\000\000\000\003\185\000\000\003\185\003\185\000\000\000\000\000\000\000\000\000\000\003\185\003\185\003\185\000\000\000\000\000\000\000\000\000\000\000\000\003\185\000\000\003\185\003\185\003\185\003\185\003\185\003\185\003\185\003\185\003\185\000\000\003\185\000\000\000\000\000\000\000\000\000\000\003\185\000\000\003\185\003\185\003\185\000\000\000\000\000\000\000\000\003\185\000\000\000\000\003\185\000\000\003\185\003\185\000\000\003\185\003\185\003\185\003\185\000\000\000\000\000\000\000\000\000\000\000\000\003\185\000\000\003\185\003\185\000\000\015\218\003\185\003\185\003\185\003\185\003\185\003\185\000\000\000\000\003\185\003\185\018\226\000\000\000\000\003\185\003\185\000\000\000\000\003\185\003\185\003\185\003\185\003\181\000\000\003\181\000\000\003\181\000\000\000\000\000\000\003\181\000\000\000\000\003\181\000\000\003\181\000\000\000\000\019\006\000\000\000\000\003\181\003\181\003\181\000\000\003\181\003\181\003\181\000\000\000\000\000\000\000\000\000\000\019n\019\206\019\230\019\134\000\000\019\254\000\000\003\181\000\000\000\000\000\000\000\000\000\000\000\000\003\181\019\158\003\181\020\022\020.\003\181\000\000\000\000\000\000\000\000\000\000\003\181\000\000\020F\003\181\000\000\000\000\000\000\000\000\000\000\003\181\003\181\000\242\000\000\000\000\000\000\000\000\000\000\000\000\003\181\000\000\003\181\003\181\019\030\019\182\020^\020v\020\214\003\181\003\181\000\000\003\181\000\000\000\000\000\000\000\000\000\000\003\181\000\000\003\181\003\181\020\238\000\000\000\000\000\000\000\000\003\181\000\000\000\000\003\181\000\000\003\181\021\006\000\000\003\181\003\181\003\181\003\181\000\000\000\000\000\000\000\000\000\000\000\000\003\181\000\000\003\181\003\181\000\000\021f\003\181\003\181\021\158\020\142\003\181\003\181\000\000\000\000\003\181\021\030\003\181\000\000\000\000\020\166\020\190\000\000\000\000\003\181\003\181\0216\021N\012\025\000\000\012\025\000\000\012\025\000\000\000\000\000\000\012\025\000\000\000\000\012\025\000\000\012\025\000\000\000\000\019\006\000\000\000\000\012\025\012\025\012\025\000\000\012\025\012\025\012\025\000\000\000\000\000\000\000\000\000\000\019n\019\206\019\230\019\134\000\000\019\254\000\000\012\025\000\000\000\000\000\000\000\000\000\000\000\000\012\025\019\158\012\025\020\022\020.\012\025\000\000\000\000\000\000\000\000\000\000\012\025\000\000\020F\012\025\000\000\000\000\000\000\000\000\000\000\012\025\012\025\000\242\000\000\000\000\000\000\000\000\000\000\000\000\012\025\000\000\012\025\012\025\019\030\019\182\020^\020v\020\214\012\025\012\025\000\000\012\025\000\000\000\000\000\000\000\000\000\000\012\025\000\000\012\025\012\025\020\238\000\000\000\000\000\000\000\000\012\025\000\000\000\000\012\025\000\000\012\025\021\006\000\000\012\025\012\025\012\025\012\025\000\000\000\000\000\000\000\000\000\000\000\000\012\025\000\000\012\025\012\025\000\000\012\025\012\025\012\025\012\025\020\142\012\025\012\025\000\000\000\000\012\025\021\030\012\025\000\000\000\000\020\166\020\190\000\000\000\000\012\025\012\025\0216\021N\003\249\000\000\003\249\000\000\003\249\000\000\000\000\000\000\003\249\000\000\000\000\003\249\000\000\003\249\000\000\000\000\003\249\000\000\000\000\003\249\003\249\003\249\000\000\003\249\003\249\003\249\000\000\000\000\000\000\000\000\000\000\003\249\003\249\003\249\003\249\000\000\003\249\000\000\003\249\000\000\000\000\000\000\000\000\000\000\000\000\003\249\003\249\003\249\003\249\003\249\003\249\000\000\000\000\000\000\000\000\000\000\003\249\000\000\003\249\003\249\000\000\000\000\000\000\000\000\000\000\003\249\003\249\003\249\000\000\000\000\000\000\000\000\000\000\000\000\003\249\000\000\003\249\003\249\003\249\003\249\003\249\003\249\003\249\003\249\003\249\000\000\003\249\000\000\000\000\000\000\000\000\000\000\003\249\000\000\003\249\003\249\003\249\000\000\000\000\000\000\000\000\003\249\000\000\000\000\003\249\000\000\003\249\003\249\000\000\003\249\003\249\003\249\003\249\000\000\000\000\000\000\000\000\000\000\000\000\003\249\000\000\003\249\003\249\000\000\015\218\003\249\003\249\003\249\003\249\003\249\003\249\000\000\000\000\003\249\003\249\018\226\000\000\000\000\003\249\003\249\000\000\000\000\003\249\003\249\003\249\003\249\003\245\000\000\003\245\000\000\003\245\000\000\000\000\000\000\003\245\000\000\000\000\003\245\000\000\003\245\000\000\000\000\019\006\000\000\000\000\003\245\003\245\003\245\000\000\003\245\003\245\003\245\000\000\000\000\000\000\000\000\000\000\019n\019\206\019\230\019\134\000\000\019\254\000\000\003\245\000\000\000\000\000\000\000\000\000\000\000\000\003\245\019\158\003\245\020\022\020.\003\245\000\000\000\000\000\000\000\000\000\000\003\245\000\000\020F\003\245\000\000\000\000\000\000\000\000\000\000\003\245\003\245\000\242\000\000\000\000\000\000\000\000\000\000\000\000\003\245\000\000\003\245\003\245\019\030\019\182\020^\020v\020\214\003\245\003\245\000\000\003\245\000\000\000\000\000\000\000\000\000\000\003\245\000\000\003\245\003\245\020\238\000\000\000\000\000\000\000\000\003\245\000\000\000\000\003\245\000\000\003\245\021\006\000\000\003\245\003\245\003\245\003\245\000\000\000\000\000\000\000\000\000\000\000\000\003\245\000\000\003\245\003\245\000\000\021f\003\245\003\245\021\158\020\142\003\245\003\245\000\000\000\000\003\245\021\030\003\245\000\000\000\000\020\166\020\190\000\000\000\000\003\245\003\245\0216\021N\004\025\000\000\004\025\000\000\004\025\000\000\000\000\000\000\004\025\000\000\000\000\004\025\000\000\004\025\000\000\000\000\004\025\000\000\000\000\004\025\004\025\004\025\000\000\004\025\004\025\004\025\000\000\000\000\000\000\000\000\000\000\004\025\004\025\004\025\004\025\000\000\004\025\000\000\004\025\000\000\000\000\000\000\000\000\000\000\000\000\004\025\004\025\004\025\004\025\004\025\004\025\000\000\000\000\000\000\000\000\000\000\004\025\000\000\004\025\004\025\000\000\000\000\000\000\000\000\000\000\004\025\004\025\004\025\000\000\000\000\000\000\000\000\000\000\000\000\004\025\000\000\004\025\004\025\004\025\004\025\004\025\004\025\004\025\004\025\004\025\000\000\004\025\000\000\000\000\000\000\000\000\000\000\004\025\000\000\004\025\004\025\004\025\000\000\000\000\000\000\000\000\004\025\000\000\000\000\004\025\000\000\004\025\004\025\000\000\004\025\004\025\004\025\004\025\000\000\000\000\000\000\000\000\000\000\000\000\004\025\000\000\004\025\004\025\000\000\015\218\004\025\004\025\004\025\004\025\004\025\004\025\000\000\000\000\004\025\004\025\018\226\000\000\000\000\004\025\004\025\000\000\000\000\004\025\004\025\004\025\004\025\004\021\000\000\004\021\000\000\004\021\000\000\000\000\000\000\004\021\000\000\000\000\004\021\000\000\004\021\000\000\000\000\019\006\000\000\000\000\004\021\004\021\004\021\000\000\004\021\004\021\004\021\000\000\000\000\000\000\000\000\000\000\019n\019\206\019\230\019\134\000\000\019\254\000\000\004\021\000\000\000\000\000\000\000\000\000\000\000\000\004\021\019\158\004\021\020\022\020.\004\021\000\000\000\000\000\000\000\000\000\000\004\021\000\000\020F\004\021\000\000\000\000\000\000\000\000\000\000\004\021\004\021\000\242\000\000\000\000\000\000\000\000\000\000\000\000\004\021\000\000\004\021\004\021\019\030\019\182\020^\020v\020\214\004\021\004\021\000\000\004\021\000\000\000\000\000\000\000\000\000\000\004\021\000\000\004\021\004\021\020\238\000\000\000\000\000\000\000\000\004\021\000\000\000\000\004\021\000\000\004\021\021\006\000\000\004\021\004\021\004\021\004\021\000\000\000\000\000\000\000\000\000\000\000\000\004\021\000\000\004\021\004\021\000\000\021f\004\021\004\021\021\158\020\142\004\021\004\021\000\000\000\000\004\021\021\030\004\021\000\000\000\000\020\166\020\190\000\000\000\000\004\021\004\021\0216\021N\004\t\000\000\004\t\000\000\004\t\000\000\000\000\000\000\004\t\000\000\000\000\004\t\000\000\004\t\000\000\000\000\004\t\000\000\000\000\004\t\004\t\004\t\000\000\004\t\004\t\004\t\000\000\000\000\000\000\000\000\000\000\004\t\004\t\004\t\004\t\000\000\004\t\000\000\004\t\000\000\000\000\000\000\000\000\000\000\000\000\004\t\004\t\004\t\004\t\004\t\004\t\000\000\000\000\000\000\000\000\000\000\004\t\000\000\004\t\004\t\000\000\000\000\000\000\000\000\000\000\004\t\004\t\004\t\000\000\000\000\000\000\000\000\000\000\000\000\004\t\000\000\004\t\004\t\004\t\004\t\004\t\004\t\004\t\004\t\004\t\000\000\004\t\000\000\000\000\000\000\000\000\000\000\004\t\000\000\004\t\004\t\004\t\000\000\000\000\000\000\000\000\004\t\000\000\000\000\004\t\000\000\004\t\004\t\000\000\004\t\004\t\004\t\004\t\000\000\000\000\000\000\000\000\000\000\000\000\004\t\000\000\004\t\004\t\000\000\015\218\004\t\004\t\004\t\004\t\004\t\004\t\000\000\000\000\004\t\004\t\018\226\000\000\000\000\004\t\004\t\000\000\000\000\004\t\004\t\004\t\004\t\004\005\000\000\004\005\000\000\004\005\000\000\000\000\000\000\004\005\000\000\000\000\004\005\000\000\004\005\000\000\000\000\019\006\000\000\000\000\004\005\004\005\004\005\000\000\004\005\004\005\004\005\000\000\000\000\000\000\000\000\000\000\019n\019\206\019\230\019\134\000\000\019\254\000\000\004\005\000\000\000\000\000\000\000\000\000\000\000\000\004\005\019\158\004\005\020\022\020.\004\005\000\000\000\000\000\000\000\000\000\000\004\005\000\000\020F\004\005\000\000\000\000\000\000\000\000\000\000\004\005\004\005\000\242\000\000\000\000\000\000\000\000\000\000\000\000\004\005\000\000\004\005\004\005\019\030\019\182\020^\020v\020\214\004\005\004\005\000\000\004\005\000\000\000\000\000\000\000\000\000\000\004\005\000\000\004\005\004\005\020\238\000\000\000\000\000\000\000\000\004\005\000\000\000\000\004\005\000\000\004\005\021\006\000\000\004\005\004\005\004\005\004\005\000\000\000\000\000\000\000\000\000\000\000\000\004\005\000\000\004\005\004\005\000\000\021f\004\005\004\005\021\158\020\142\004\005\004\005\000\000\000\000\004\005\021\030\004\005\000\000\000\000\020\166\020\190\000\000\000\000\004\005\004\005\0216\021N\003\225\000\000\003\225\000\000\003\225\000\000\000\000\000\000\003\225\000\000\000\000\003\225\000\000\003\225\000\000\000\000\003\225\000\000\000\000\003\225\003\225\003\225\000\000\003\225\003\225\003\225\000\000\000\000\000\000\000\000\000\000\003\225\003\225\003\225\003\225\000\000\003\225\000\000\003\225\000\000\000\000\000\000\000\000\000\000\000\000\003\225\003\225\003\225\003\225\003\225\003\225\000\000\000\000\000\000\000\000\000\000\003\225\000\000\003\225\003\225\000\000\000\000\000\000\000\000\000\000\003\225\003\225\003\225\000\000\000\000\000\000\000\000\000\000\000\000\003\225\000\000\003\225\003\225\003\225\003\225\003\225\003\225\003\225\003\225\003\225\000\000\003\225\000\000\000\000\000\000\000\000\000\000\003\225\000\000\003\225\003\225\003\225\000\000\000\000\000\000\000\000\003\225\000\000\000\000\003\225\000\000\003\225\003\225\000\000\003\225\003\225\003\225\003\225\000\000\000\000\000\000\000\000\000\000\000\000\003\225\000\000\003\225\003\225\000\000\015\218\003\225\003\225\003\225\003\225\003\225\003\225\000\000\000\000\003\225\003\225\018\226\000\000\000\000\003\225\003\225\000\000\000\000\003\225\003\225\003\225\003\225\003\221\000\000\003\221\000\000\003\221\000\000\000\000\000\000\003\221\000\000\000\000\003\221\000\000\003\221\000\000\000\000\019\006\000\000\000\000\003\221\003\221\003\221\000\000\003\221\003\221\003\221\000\000\000\000\000\000\000\000\000\000\019n\019\206\019\230\019\134\000\000\019\254\000\000\003\221\000\000\000\000\000\000\000\000\000\000\000\000\003\221\019\158\003\221\020\022\020.\003\221\000\000\000\000\000\000\000\000\000\000\003\221\000\000\020F\003\221\000\000\000\000\000\000\000\000\000\000\003\221\003\221\000\242\000\000\000\000\000\000\000\000\000\000\000\000\003\221\000\000\003\221\003\221\019\030\019\182\020^\020v\020\214\003\221\003\221\000\000\003\221\000\000\000\000\000\000\000\000\000\000\003\221\000\000\003\221\003\221\020\238\000\000\000\000\000\000\000\000\003\221\000\000\000\000\003\221\000\000\003\221\021\006\000\000\003\221\003\221\003\221\003\221\000\000\000\000\000\000\000\000\000\000\000\000\003\221\000\000\003\221\003\221\000\000\021f\003\221\003\221\021\158\020\142\003\221\003\221\000\000\000\000\003\221\021\030\003\221\000\000\000\000\020\166\020\190\000\000\000\000\003\221\003\221\0216\021N\003\241\000\000\003\241\000\000\003\241\000\000\000\000\000\000\003\241\000\000\000\000\003\241\000\000\003\241\000\000\000\000\003\241\000\000\000\000\003\241\003\241\003\241\000\000\003\241\003\241\003\241\000\000\000\000\000\000\000\000\000\000\003\241\003\241\003\241\003\241\000\000\003\241\000\000\003\241\000\000\000\000\000\000\000\000\000\000\000\000\003\241\003\241\003\241\003\241\003\241\003\241\000\000\000\000\000\000\000\000\000\000\003\241\000\000\003\241\003\241\000\000\000\000\000\000\000\000\000\000\003\241\003\241\003\241\000\000\000\000\000\000\000\000\000\000\000\000\003\241\000\000\003\241\003\241\003\241\003\241\003\241\003\241\003\241\003\241\003\241\000\000\003\241\000\000\000\000\000\000\000\000\000\000\003\241\000\000\003\241\003\241\003\241\000\000\000\000\000\000\000\000\003\241\000\000\000\000\003\241\000\000\003\241\003\241\000\000\003\241\003\241\003\241\003\241\000\000\000\000\000\000\000\000\000\000\000\000\003\241\000\000\003\241\003\241\000\000\015\218\003\241\003\241\003\241\003\241\003\241\003\241\000\000\000\000\003\241\003\241\018\226\000\000\000\000\003\241\003\241\000\000\000\000\003\241\003\241\003\241\003\241\003\237\000\000\003\237\000\000\003\237\000\000\000\000\000\000\003\237\000\000\000\000\003\237\000\000\003\237\000\000\000\000\019\006\000\000\000\000\003\237\003\237\003\237\000\000\003\237\003\237\003\237\000\000\000\000\000\000\000\000\000\000\019n\019\206\019\230\019\134\000\000\019\254\000\000\003\237\000\000\000\000\000\000\000\000\000\000\000\000\003\237\019\158\003\237\020\022\020.\003\237\000\000\000\000\000\000\000\000\000\000\003\237\000\000\020F\003\237\000\000\000\000\000\000\000\000\000\000\003\237\003\237\000\242\000\000\000\000\000\000\000\000\000\000\000\000\003\237\000\000\003\237\003\237\019\030\019\182\020^\020v\020\214\003\237\003\237\000\000\003\237\000\000\000\000\000\000\000\000\000\000\003\237\000\000\003\237\003\237\020\238\000\000\000\000\000\000\000\000\003\237\000\000\000\000\003\237\000\000\003\237\021\006\000\000\003\237\003\237\003\237\003\237\000\000\000\000\000\000\000\000\000\000\000\000\003\237\000\000\003\237\003\237\000\000\021f\003\237\003\237\021\158\020\142\003\237\003\237\000\000\000\000\003\237\021\030\003\237\000\000\000\000\020\166\020\190\000\000\000\000\003\237\003\237\0216\021N\003\233\000\000\003\233\000\000\003\233\000\000\000\000\000\000\003\233\000\000\000\000\003\233\000\000\003\233\000\000\000\000\003\233\000\000\000\000\003\233\003\233\003\233\000\000\003\233\003\233\003\233\000\000\000\000\000\000\000\000\000\000\003\233\003\233\003\233\003\233\000\000\003\233\000\000\003\233\000\000\000\000\000\000\000\000\000\000\000\000\003\233\003\233\003\233\003\233\003\233\003\233\000\000\000\000\000\000\000\000\000\000\003\233\000\000\003\233\003\233\000\000\000\000\000\000\000\000\000\000\003\233\003\233\003\233\000\000\000\000\000\000\000\000\000\000\000\000\003\233\000\000\003\233\003\233\003\233\003\233\003\233\003\233\003\233\003\233\003\233\000\000\003\233\000\000\000\000\000\000\000\000\000\000\003\233\000\000\003\233\003\233\003\233\000\000\000\000\000\000\000\000\003\233\000\000\000\000\003\233\000\000\003\233\003\233\000\000\003\233\003\233\003\233\003\233\000\000\000\000\000\000\000\000\000\000\000\000\003\233\000\000\003\233\003\233\000\000\015\218\003\233\003\233\003\233\003\233\003\233\003\233\000\000\000\000\003\233\003\233\018\226\000\000\000\000\003\233\003\233\000\000\000\000\003\233\003\233\003\233\003\233\003\229\000\000\003\229\000\000\003\229\000\000\000\000\000\000\003\229\000\000\000\000\003\229\000\000\003\229\000\000\000\000\019\006\000\000\000\000\003\229\003\229\003\229\000\000\003\229\003\229\003\229\000\000\000\000\000\000\000\000\000\000\019n\019\206\019\230\019\134\000\000\019\254\000\000\003\229\000\000\000\000\000\000\000\000\000\000\000\000\003\229\019\158\003\229\020\022\020.\003\229\000\000\000\000\000\000\000\000\000\000\003\229\000\000\020F\003\229\000\000\000\000\000\000\000\000\000\000\003\229\003\229\000\242\000\000\000\000\000\000\000\000\000\000\000\000\003\229\000\000\003\229\003\229\019\030\019\182\020^\020v\020\214\003\229\003\229\000\000\003\229\000\000\000\000\000\000\000\000\000\000\003\229\000\000\003\229\003\229\020\238\000\000\000\000\000\000\000\000\003\229\000\000\000\000\003\229\000\000\003\229\021\006\000\000\003\229\003\229\003\229\003\229\000\000\000\000\000\000\000\000\000\000\000\000\003\229\000\000\003\229\003\229\000\000\021f\003\229\003\229\021\158\020\142\003\229\003\229\000\000\000\000\003\229\021\030\003\229\000\000\000\000\020\166\020\190\000\000\000\000\003\229\003\229\0216\021N\004\001\000\000\004\001\000\000\004\001\000\000\000\000\000\000\004\001\000\000\000\000\004\001\000\000\004\001\000\000\000\000\004\001\000\000\000\000\004\001\004\001\004\001\000\000\004\001\004\001\004\001\000\000\000\000\000\000\000\000\000\000\004\001\004\001\004\001\004\001\000\000\004\001\000\000\004\001\000\000\000\000\000\000\000\000\000\000\000\000\004\001\004\001\004\001\004\001\004\001\004\001\000\000\000\000\000\000\000\000\000\000\004\001\000\000\004\001\004\001\000\000\000\000\000\000\000\000\000\000\004\001\004\001\004\001\000\000\000\000\000\000\000\000\000\000\000\000\004\001\000\000\004\001\004\001\004\001\004\001\004\001\004\001\004\001\004\001\004\001\000\000\004\001\000\000\000\000\000\000\000\000\000\000\004\001\000\000\004\001\004\001\004\001\000\000\000\000\000\000\000\000\004\001\000\000\000\000\004\001\000\000\004\001\004\001\000\000\004\001\004\001\004\001\004\001\000\000\000\000\000\000\000\000\000\000\000\000\004\001\000\000\004\001\004\001\000\000\015\218\004\001\004\001\004\001\004\001\004\001\004\001\000\000\000\000\004\001\004\001\018\226\000\000\000\000\004\001\004\001\000\000\000\000\004\001\004\001\004\001\004\001\003\253\000\000\003\253\000\000\003\253\000\000\000\000\000\000\003\253\000\000\000\000\003\253\000\000\003\253\000\000\000\000\019\006\000\000\000\000\003\253\003\253\003\253\000\000\003\253\003\253\003\253\000\000\000\000\000\000\000\000\000\000\019n\019\206\019\230\019\134\000\000\019\254\000\000\003\253\000\000\000\000\000\000\000\000\000\000\000\000\003\253\019\158\003\253\020\022\020.\003\253\000\000\000\000\000\000\000\000\000\000\003\253\000\000\020F\003\253\000\000\000\000\000\000\000\000\000\000\003\253\003\253\000\242\000\000\000\000\000\000\000\000\000\000\000\000\003\253\000\000\003\253\003\253\019\030\019\182\020^\020v\020\214\003\253\003\253\000\000\003\253\000\000\000\000\000\000\000\000\000\000\003\253\000\000\003\253\003\253\020\238\000\000\000\000\000\000\000\000\003\253\000\000\000\000\003\253\000\000\003\253\021\006\000\000\003\253\003\253\003\253\003\253\000\000\000\000\000\000\000\000\000\000\000\000\003\253\000\000\003\253\003\253\000\000\021f\003\253\003\253\021\158\020\142\003\253\003\253\000\000\000\000\003\253\021\030\003\253\000\000\000\000\020\166\020\190\000\000\000\000\003\253\003\253\0216\021N\004!\000\000\004!\000\000\004!\000\000\000\000\000\000\004!\000\000\000\000\004!\000\000\004!\000\000\000\000\004!\000\000\000\000\004!\004!\004!\000\000\004!\004!\004!\000\000\000\000\000\000\000\000\000\000\004!\004!\004!\004!\000\000\004!\000\000\004!\000\000\000\000\000\000\000\000\000\000\000\000\004!\004!\004!\004!\004!\004!\000\000\000\000\000\000\000\000\000\000\004!\000\000\004!\004!\000\000\000\000\000\000\000\000\000\000\004!\004!\004!\000\000\000\000\000\000\000\000\000\000\000\000\004!\000\000\004!\004!\004!\004!\004!\004!\004!\004!\004!\000\000\004!\000\000\000\000\000\000\000\000\000\000\004!\000\000\004!\004!\004!\000\000\000\000\000\000\000\000\004!\000\000\000\000\004!\000\000\004!\004!\000\000\004!\004!\004!\004!\000\000\000\000\000\000\000\000\000\000\000\000\004!\000\000\004!\004!\000\000\015\218\004!\004!\004!\004!\004!\004!\000\000\000\000\004!\004!\018\226\000\000\000\000\004!\004!\000\000\000\000\004!\004!\004!\004!\004\029\000\000\004\029\000\000\004\029\000\000\000\000\000\000\004\029\000\000\000\000\004\029\000\000\004\029\000\000\000\000\019\006\000\000\000\000\004\029\004\029\004\029\000\000\004\029\004\029\004\029\000\000\000\000\000\000\000\000\000\000\019n\019\206\019\230\019\134\000\000\019\254\000\000\004\029\000\000\000\000\000\000\000\000\000\000\000\000\004\029\019\158\004\029\020\022\020.\004\029\000\000\000\000\000\000\000\000\000\000\004\029\000\000\020F\004\029\000\000\000\000\000\000\000\000\000\000\004\029\004\029\000\242\000\000\000\000\000\000\000\000\000\000\000\000\004\029\000\000\004\029\004\029\019\030\019\182\020^\020v\020\214\004\029\004\029\000\000\004\029\000\000\000\000\000\000\000\000\000\000\004\029\000\000\004\029\004\029\020\238\000\000\000\000\000\000\000\000\004\029\000\000\000\000\004\029\000\000\004\029\021\006\000\000\004\029\004\029\004\029\004\029\000\000\000\000\000\000\000\000\000\000\000\000\004\029\000\000\004\029\004\029\000\000\021f\004\029\004\029\021\158\020\142\004\029\004\029\000\000\000\000\004\029\021\030\004\029\000\000\000\000\020\166\020\190\000\000\000\000\004\029\004\029\0216\021N\004\017\000\000\004\017\000\000\004\017\000\000\000\000\000\000\004\017\000\000\000\000\004\017\000\000\004\017\000\000\000\000\004\017\000\000\000\000\004\017\004\017\004\017\000\000\004\017\004\017\004\017\000\000\000\000\000\000\000\000\000\000\004\017\004\017\004\017\004\017\000\000\004\017\000\000\004\017\000\000\000\000\000\000\000\000\000\000\000\000\004\017\004\017\004\017\004\017\004\017\004\017\000\000\000\000\000\000\000\000\000\000\004\017\000\000\004\017\004\017\000\000\000\000\000\000\000\000\000\000\004\017\004\017\004\017\000\000\000\000\000\000\000\000\000\000\000\000\004\017\000\000\004\017\004\017\004\017\004\017\004\017\004\017\004\017\004\017\004\017\000\000\004\017\000\000\000\000\000\000\000\000\000\000\004\017\000\000\004\017\004\017\004\017\000\000\000\000\000\000\000\000\004\017\000\000\000\000\004\017\000\000\004\017\004\017\000\000\004\017\004\017\004\017\004\017\000\000\000\000\000\000\000\000\000\000\000\000\004\017\000\000\004\017\004\017\000\000\015\218\004\017\004\017\004\017\004\017\004\017\004\017\000\000\000\000\004\017\004\017\018\226\000\000\000\000\004\017\004\017\000\000\000\000\004\017\004\017\004\017\004\017\004\r\000\000\004\r\000\000\004\r\000\000\000\000\000\000\004\r\000\000\000\000\004\r\000\000\004\r\000\000\000\000\019\006\000\000\000\000\004\r\004\r\004\r\000\000\004\r\004\r\004\r\000\000\000\000\000\000\000\000\000\000\019n\019\206\019\230\019\134\000\000\019\254\000\000\004\r\000\000\000\000\000\000\000\000\000\000\000\000\004\r\019\158\004\r\020\022\020.\004\r\000\000\000\000\000\000\000\000\000\000\004\r\000\000\020F\004\r\000\000\000\000\000\000\000\000\000\000\004\r\004\r\000\242\000\000\000\000\000\000\000\000\000\000\000\000\004\r\000\000\004\r\004\r\019\030\019\182\020^\020v\020\214\004\r\004\r\000\000\004\r\000\000\000\000\000\000\000\000\000\000\004\r\000\000\004\r\004\r\020\238\000\000\000\000\000\000\000\000\004\r\000\000\000\000\004\r\000\000\004\r\021\006\000\000\004\r\004\r\004\r\004\r\000\000\000\000\000\000\000\000\000\000\000\000\004\r\000\000\004\r\004\r\000\000\021f\004\r\004\r\021\158\020\142\004\r\004\r\000\000\000\000\004\r\021\030\004\r\000\000\000\000\020\166\020\190\000\000\000\000\004\r\004\r\0216\021N\003\217\000\000\003\217\000\000\003\217\000\000\000\000\000\000\003\217\000\000\000\000\003\217\000\000\003\217\000\000\000\000\003\217\000\000\000\000\003\217\003\217\003\217\000\000\003\217\003\217\003\217\000\000\000\000\000\000\000\000\000\000\003\217\003\217\003\217\003\217\000\000\003\217\000\000\003\217\000\000\000\000\000\000\000\000\000\000\000\000\003\217\003\217\003\217\003\217\003\217\003\217\000\000\000\000\000\000\000\000\000\000\003\217\000\000\003\217\003\217\000\000\000\000\000\000\000\000\000\000\003\217\003\217\003\217\000\000\000\000\000\000\000\000\000\000\000\000\003\217\000\000\003\217\003\217\003\217\003\217\003\217\003\217\003\217\003\217\003\217\000\000\003\217\000\000\000\000\000\000\000\000\000\000\003\217\000\000\003\217\003\217\003\217\000\000\000\000\000\000\000\000\003\217\000\000\000\000\003\217\000\000\003\217\003\217\000\000\003\217\003\217\003\217\003\217\000\000\000\000\000\000\000\000\000\000\000\000\003\217\000\000\003\217\003\217\000\000\015\218\003\217\003\217\003\217\003\217\003\217\003\217\000\000\000\000\003\217\003\217\018\226\000\000\000\000\003\217\003\217\000\000\000\000\003\217\003\217\003\217\003\217\003\213\000\000\003\213\000\000\003\213\000\000\000\000\000\000\003\213\000\000\000\000\003\213\000\000\003\213\000\000\000\000\019\006\000\000\000\000\003\213\003\213\003\213\000\000\003\213\003\213\003\213\000\000\000\000\000\000\000\000\000\000\019n\019\206\019\230\019\134\000\000\019\254\000\000\003\213\000\000\000\000\000\000\000\000\000\000\000\000\003\213\019\158\003\213\020\022\020.\003\213\000\000\000\000\000\000\000\000\000\000\003\213\000\000\020F\003\213\000\000\000\000\000\000\000\000\000\000\003\213\003\213\000\242\000\000\000\000\000\000\000\000\000\000\000\000\003\213\000\000\003\213\003\213\019\030\019\182\020^\020v\020\214\003\213\003\213\000\000\003\213\000\000\000\000\000\000\000\000\000\000\003\213\000\000\003\213\003\213\020\238\000\000\000\000\000\000\000\000\003\213\000\000\000\000\003\213\000\000\003\213\021\006\000\000\003\213\003\213\003\213\003\213\000\000\000\000\000\000\000\000\000\000\000\000\003\213\000\000\003\213\003\213\000\000\021f\003\213\003\213\021\158\020\142\003\213\003\213\000\000\000\000\003\213\021\030\003\213\000\000\000\000\020\166\020\190\000\000\000\000\003\213\003\213\0216\021N\012E\000\000\012E\000\000\012E\000\000\000\000\000\000\012E\000\000\000\000\012E\000\000\012E\000\000\000\000\012E\000\000\000\000\012E\012E\012E\000\000\012E\012E\012E\000\000\000\000\000\000\000\000\000\000\012E\012E\012E\012E\000\000\012E\000\000\012E\000\000\000\000\000\000\000\000\000\000\000\000\012E\012E\012E\012E\012E\012E\000\000\000\000\000\000\000\000\000\000\012E\000\000\012E\012E\000\000\000\000\000\000\000\000\000\000\012E\012E\012E\000\000\000\000\000\000\000\000\000\000\000\000\012E\000\000\012E\012E\012E\012E\012E\012E\012E\012E\012E\000\000\012E\000\000\000\000\000\000\000\000\000\000\012E\000\000\012E\012E\012E\000\000\000\000\000\000\000\000\012E\000\000\000\000\012E\000\000\012E\012E\000\000\012E\012E\012E\012E\000\000\000\000\000\000\000\000\000\000\000\000\012E\000\000\012E\012E\000\000\015\218\012E\012E\012E\012E\012E\012E\000\000\000\000\012E\012E\018\226\000\000\000\000\012E\012E\000\000\000\000\012E\012E\012E\012E\012A\000\000\012A\000\000\012A\000\000\000\000\000\000\012A\000\000\000\000\012A\000\000\012A\000\000\000\000\019\006\000\000\000\000\012A\012A\012A\000\000\012A\012A\012A\000\000\000\000\000\000\000\000\000\000\019n\019\206\019\230\019\134\000\000\019\254\000\000\012A\000\000\000\000\000\000\000\000\000\000\000\000\012A\019\158\012A\020\022\020.\012A\000\000\000\000\000\000\000\000\000\000\012A\000\000\020F\012A\000\000\000\000\000\000\000\000\000\000\012A\012A\000\242\000\000\000\000\000\000\000\000\000\000\000\000\012A\000\000\012A\012A\019\030\019\182\020^\020v\020\214\012A\012A\000\000\012A\000\000\000\000\000\000\000\000\000\000\012A\000\000\012A\012A\020\238\000\000\000\000\000\000\000\000\012A\000\000\000\000\012A\000\000\012A\021\006\000\000\012A\012A\012A\012A\000\000\000\000\000\000\000\000\000\000\000\000\012A\000\000\012A\012A\000\000\012A\012A\012A\012A\020\142\012A\012A\000\000\000\000\012A\021\030\012A\000\000\000\000\020\166\020\190\000\000\000\000\012A\012A\0216\021N\r\221\000\000\r\221\000\000\r\221\000\000\000\000\000\000\r\221\000\000\000\000\r\221\000\000\r\221\000\000\000\000\r\221\000\000\000\000\r\221\r\221\r\221\000\000\r\221\r\221\r\221\000\000\000\000\000\000\000\000\000\000\r\221\r\221\r\221\r\221\000\000\r\221\000\000\r\221\000\000\000\000\000\000\000\000\000\000\000\000\r\221\r\221\r\221\r\221\r\221\r\221\000\000\000\000\000\000\000\000\000\000\r\221\000\000\r\221\r\221\000\000\000\000\000\000\000\000\000\000\r\221\r\221\r\221\000\000\000\000\000\000\000\000\000\000\000\000\r\221\000\000\r\221\r\221\r\221\r\221\r\221\r\221\r\221\r\221\r\221\000\000\r\221\000\000\000\000\000\000\000\000\000\000\r\221\000\000\r\221\r\221\r\221\000\000\000\000\000\000\000\000\r\221\000\000\000\000\r\221\000\000\r\221\r\221\000\000\r\221\r\221\r\221\r\221\000\000\000\000\000\000\000\000\000\000\000\000\r\221\000\000\r\221\r\221\000\000\015\218\r\221\r\221\r\221\r\221\r\221\r\221\000\000\000\000\r\221\r\221\018\226\000\000\000\000\r\221\r\221\000\000\000\000\r\221\r\221\r\221\r\221\002\201\000\000\002\201\000\000\002\201\000\000\000\000\000\000\002\201\000\000\000\000\002\201\000\000\002\201\000\000\000\000\002\201\000\000\000\000\002\201\002\201\002\201\000\000\002\201\002\201\002\201\000\000\000\000\000\000\000\000\000\000\002\201\002\201\002\201\002\201\000\000\002\201\000\000\002\201\000\000\000\000\000\000\000\000\000\000\000\000\002\201\002\201\002\201\002\201\002\201\002\201\000\000\000\000\000\000\000\000\000\000\002\201\000\000\002\201\002\201\000\000\000\000\000\000\000\000\000\000\002\201\002\201\002\201\000\000\000\000\000\000\000\000\000\000\000\000\002\201\000\000\002\201\002\201\002\201\002\201\002\201\002\201\002\201\002\201\002\201\000\000\002\201\000\000\000\000\000\000\000\000\000\000\002\201\000\000\002\201\002\201\002\201\000\000\000\000\000\000\000\000\002\201\000\000\000\000\002\201\000\000\002\201\002\201\000\000\002\201\002\201\027\250\002\201\000\000\000\000\000\000\000\000\000\000\000\000\002\201\000\000\002\201\002\201\000\000\015\218\002\201\002\201\002\201\002\201\002\201\002\201\000\000\000\000\002\201\002\201\018\226\000\000\000\000\002\201\002\201\000\000\000\000\002\201\002\201\002\201\002\201\002\193\000\000\002\193\000\000\002\193\000\000\000\000\000\000\002\193\000\000\000\000\002\193\000\000\002\193\000\000\000\000\002\193\000\000\000\000\002\193\002\193\002\193\000\000\002\193\002\193\002\193\000\000\000\000\000\000\000\000\000\000\002\193\002\193\002\193\002\193\000\000\002\193\000\000\002\193\000\000\000\000\000\000\000\000\000\000\000\000\002\193\002\193\002\193\002\193\002\193\002\193\000\000\000\000\000\000\000\000\000\000\002\193\000\000\002\193\002\193\000\000\000\000\000\000\000\000\000\000\002\193\002\193\002\193\000\000\000\000\000\000\000\000\000\000\000\000\002\193\000\000\002\193\002\193\002\193\002\193\002\193\002\193\002\193\002\193\002\193\000\000\002\193\000\000\000\000\000\000\000\000\000\000\002\193\000\000\002\193\002\193\002\193\000\000\000\000\000\000\000\000\002\193\000\000\000\000\002\193\000\000\002\193\002\193\000\000\002\193\002\193\002\193\002\193\000\000\000\000\000\000\000\000\000\000\000\000\002\193\000\000\002\193\002\193\000\000\015\218\002\193\002\193\002\193\002\193\002\193\002\193\000\000\000\000\002\193\002\193\018\226\000\000\000\000\002\193\002\193\000\000\000\000\002\193\002\193\002\193\002\193\002\189\000\000\002\189\000\000\002\189\000\000\000\000\000\000\002\189\000\000\000\000\002\189\000\000\002\189\000\000\000\000\019\006\000\000\000\000\002\189\002\189\002\189\000\000\002\189\002\189\002\189\000\000\000\000\000\000\000\000\000\000\019n\019\206\019\230\019\134\000\000\019\254\000\000\002\189\000\000\000\000\000\000\000\000\000\000\000\000\002\189\019\158\002\189\020\022\020.\002\189\000\000\000\000\000\000\000\000\000\000\002\189\000\000\020F\002\189\000\000\000\000\000\000\000\000\000\000\002\189\002\189\000\242\000\000\000\000\000\000\000\000\000\000\000\000\002\189\000\000\002\189\002\189\019\030\019\182\020^\020v\020\214\002\189\002\189\000\000\002\189\000\000\000\000\000\000\000\000\000\000\002\189\000\000\002\189\002\189\020\238\000\000\000\000\000\000\000\000\002\189\000\000\000\000\002\189\000\000\002\189\021\006\000\000\002\189\002\189\002\189\002\189\000\000\000\000\000\000\000\000\000\000\000\000\002\189\000\000\002\189\002\189\000\000\021f\002\189\002\189\021\158\020\142\002\189\002\189\000\000\000\000\002\189\021\030\002\189\000\000\000\000\020\166\020\190\000\000\000\000\002\189\002\189\0216\021N\002\197\000\000\002\197\000\000\002\197\000\000\000\000\000\000\002\197\000\000\000\000\002\197\000\000\002\197\000\000\000\000\019\006\000\000\000\000\002\197\002\197\002\197\000\000\002\197\002\197\002\197\000\000\000\000\000\000\000\000\000\000\019n\019\206\019\230\019\134\000\000\019\254\000\000\002\197\000\000\000\000\000\000\000\000\000\000\000\000\002\197\019\158\002\197\020\022\020.\002\197\000\000\000\000\000\000\000\000\000\000\002\197\000\000\020F\002\197\000\000\000\000\000\000\000\000\000\000\002\197\002\197\000\242\000\000\000\000\000\000\000\000\000\000\000\000\002\197\000\000\002\197\002\197\019\030\019\182\020^\020v\020\214\002\197\002\197\000\000\002\197\000\000\000\000\000\000\000\000\000\000\002\197\000\000\002\197\002\197\020\238\000\000\000\000\000\000\000\000\002\197\000\000\000\000\002\197\000\000\002\197\021\006\000\000\002\197\002\197\028\022\002\197\000\000\000\000\000\000\000\000\000\000\000\000\002\197\000\000\002\197\002\197\000\000\021f\002\197\002\197\021\158\020\142\002\197\002\197\000\000\000\000\002\197\021\030\002\197\000\000\000\000\020\166\020\190\000\000\000\000\002\197\002\197\0216\021N\002\185\000\000\002\185\000\000\002\185\000\000\000\000\000\000\002\185\000\000\000\000\002\185\000\000\002\185\000\000\000\000\002\185\000\000\000\000\002\185\002\185\002\185\000\000\002\185\002\185\002\185\000\000\000\000\000\000\000\000\000\000\002\185\002\185\002\185\002\185\000\000\002\185\000\000\002\185\000\000\000\000\000\000\000\000\000\000\000\000\002\185\002\185\002\185\002\185\002\185\002\185\000\000\000\000\000\000\000\000\000\000\002\185\000\000\002\185\002\185\000\000\000\000\000\000\000\000\000\000\002\185\002\185\002\185\000\000\000\000\000\000\000\000\000\000\000\000\002\185\000\000\002\185\002\185\002\185\002\185\002\185\002\185\002\185\002\185\002\185\000\000\002\185\000\000\000\000\000\000\000\000\000\000\002\185\000\000\002\185\002\185\002\185\000\000\000\000\000\000\000\000\002\185\000\000\000\000\002\185\000\000\002\185\002\185\000\000\002\185\002\185\002\185\002\185\000\000\000\000\000\000\000\000\000\000\000\000\002\185\000\000\002\185\002\185\000\000\015\218\002\185\002\185\002\185\002\185\002\185\002\185\000\000\000\000\002\185\002\185\018\226\000\000\000\000\002\185\002\185\000\000\000\000\002\185\002\185\002\185\002\185\002\181\000\000\002\181\000\000\002\181\000\000\000\000\000\000\002\181\000\000\000\000\002\181\000\000\002\181\000\000\000\000\019\006\000\000\000\000\002\181\002\181\002\181\000\000\002\181\002\181\002\181\000\000\000\000\000\000\000\000\000\000\019n\019\206\019\230\019\134\000\000\019\254\000\000\002\181\000\000\000\000\000\000\000\000\000\000\000\000\002\181\019\158\002\181\020\022\020.\002\181\000\000\000\000\000\000\000\000\000\000\002\181\000\000\020F\002\181\000\000\000\000\000\000\000\000\000\000\002\181\002\181\000\242\000\000\000\000\000\000\000\000\000\000\000\000\002\181\000\000\002\181\002\181\019\030\019\182\020^\020v\020\214\002\181\002\181\000\000\002\181\000\000\000\000\000\000\000\000\000\000\002\181\000\000\002\181\002\181\020\238\000\000\000\000\000\000\000\000\002\181\000\000\000\000\002\181\000\000\002\181\021\006\000\000\002\181\002\181\002\181\002\181\000\000\000\000\000\000\000\000\000\000\000\000\002\181\000\000\002\181\002\181\000\000\021f\002\181\002\181\021\158\020\142\002\181\002\181\000\000\000\000\002\181\021\030\002\181\000\000\000\000\020\166\020\190\000\000\000\000\002\181\002\181\0216\021N\012Y\000\000\012Y\000\000\012Y\000\000\000\000\000\000\012Y\000\000\000\000\012Y\000\000\012Y\000\000\000\000\012Y\000\000\000\000\012Y\012Y\012Y\000\000\012Y\012Y\012Y\000\000\000\000\000\000\000\000\000\000\012Y\012Y\012Y\012Y\000\000\012Y\000\000\012Y\000\000\000\000\000\000\000\000\000\000\000\000\012Y\012Y\012Y\012Y\012Y\012Y\000\000\000\000\000\000\000\000\000\000\012Y\000\000\012Y\012Y\000\000\000\000\000\000\000\000\000\000\012Y\012Y\012Y\000\000\000\000\000\000\000\000\000\000\000\000\012Y\000\000\012Y\012Y\012Y\012Y\012Y\012Y\012Y\012Y\012Y\000\000\012Y\000\000\000\000\000\000\000\000\000\000\012Y\000\000\012Y\012Y\012Y\000\000\000\000\000\000\000\000\012Y\000\000\000\000\012Y\000\000\012Y\012Y\000\000\012Y\012Y\012Y\012Y\000\000\000\000\000\000\000\000\000\000\000\000\012Y\000\000\012Y\012Y\000\000\015\218\012Y\012Y\012Y\012Y\012Y\012Y\000\000\000\000\012Y\012Y\018\226\000\000\000\000\012Y\012Y\000\000\000\000\012Y\012Y\012Y\012Y\012U\000\000\012U\000\000\012U\000\000\000\000\000\000\012U\000\000\000\000\012U\000\000\012U\000\000\000\000\019\006\000\000\000\000\012U\012U\012U\000\000\012U\012U\012U\000\000\000\000\000\000\000\000\000\000\019n\019\206\019\230\019\134\000\000\019\254\000\000\012U\000\000\000\000\000\000\000\000\000\000\000\000\012U\019\158\012U\020\022\020.\012U\000\000\000\000\000\000\000\000\000\000\012U\000\000\020F\012U\000\000\000\000\000\000\000\000\000\000\012U\012U\000\242\000\000\000\000\000\000\000\000\000\000\000\000\012U\000\000\012U\012U\019\030\019\182\020^\020v\020\214\012U\012U\000\000\012U\000\000\000\000\000\000\000\000\000\000\012U\000\000\012U\012U\020\238\000\000\000\000\000\000\000\000\012U\000\000\000\000\012U\000\000\012U\021\006\000\000\012U\012U\012U\012U\000\000\000\000\000\000\000\000\000\000\000\000\012U\000\000\012U\012U\000\000\012U\012U\012U\012U\020\142\012U\012U\000\000\000\000\012U\021\030\012U\000\000\000\000\020\166\020\190\000\000\000\000\012U\012U\0216\021N\003\209\000\000\003\209\000\000\003\209\000\000\000\000\000\000\003\209\000\000\000\000\003\209\000\000\003\209\000\000\000\000\003\209\000\000\000\000\003\209\003\209\003\209\000\000\003\209\003\209\003\209\000\000\000\000\000\000\000\000\000\000\003\209\003\209\003\209\003\209\000\000\003\209\000\000\003\209\000\000\000\000\000\000\000\000\000\000\000\000\003\209\003\209\003\209\003\209\003\209\003\209\000\000\000\000\000\000\000\000\000\000\003\209\000\000\003\209\003\209\000\000\000\000\000\000\000\000\000\000\003\209\003\209\003\209\000\000\000\000\000\000\000\000\000\000\000\000\003\209\000\000\003\209\003\209\003\209\003\209\003\209\003\209\003\209\003\209\003\209\000\000\003\209\000\000\000\000\000\000\000\000\000\000\003\209\000\000\003\209\003\209\003\209\000\000\000\000\000\000\000\000\003\209\000\000\000\000\003\209\000\000\003\209\003\209\000\000\003\209\003\209\003\209\003\209\000\000\000\000\000\000\000\000\000\000\000\000\003\209\000\000\003\209\003\209\000\000\015\218\003\209\003\209\003\209\003\209\003\209\003\209\000\000\000\000\003\209\003\209\018\226\000\000\000\000\003\209\003\209\000\000\000\000\003\209\003\209\003\209\003\209\003\205\000\000\003\205\000\000\003\205\000\000\000\000\000\000\003\205\000\000\000\000\003\205\000\000\003\205\000\000\000\000\019\006\000\000\000\000\003\205\003\205\003\205\000\000\003\205\003\205\003\205\000\000\000\000\000\000\000\000\000\000\019n\019\206\019\230\019\134\000\000\019\254\000\000\003\205\000\000\000\000\000\000\000\000\000\000\000\000\003\205\019\158\003\205\020\022\020.\003\205\000\000\000\000\000\000\000\000\000\000\003\205\000\000\020F\003\205\000\000\000\000\000\000\000\000\000\000\003\205\003\205\000\242\000\000\000\000\000\000\000\000\000\000\000\000\003\205\000\000\003\205\003\205\019\030\019\182\020^\020v\020\214\003\205\003\205\000\000\003\205\000\000\000\000\000\000\000\000\000\000\003\205\000\000\003\205\003\205\020\238\000\000\000\000\000\000\000\000\003\205\000\000\000\000\003\205\000\000\003\205\021\006\000\000\003\205\003\205\003\205\003\205\000\000\000\000\000\000\000\000\000\000\000\000\003\205\000\000\003\205\003\205\000\000\021f\003\205\003\205\021\158\020\142\003\205\003\205\000\000\000\000\003\205\021\030\003\205\000\000\000\000\020\166\020\190\000\000\000\000\003\205\003\205\0216\021N\002\165\000\000\002\165\000\000\002\165\000\000\000\000\000\000\002\165\000\000\000\000\002\165\000\000\002\165\000\000\000\000\002\165\000\000\000\000\002\165\002\165\002\165\000\000\002\165\002\165\002\165\000\000\000\000\000\000\000\000\000\000\002\165\002\165\002\165\002\165\000\000\002\165\000\000\002\165\000\000\000\000\000\000\000\000\000\000\000\000\002\165\002\165\002\165\002\165\002\165\002\165\000\000\000\000\000\000\000\000\000\000\002\165\000\000\002\165\002\165\000\000\000\000\000\000\000\000\000\000\002\165\002\165\002\165\000\000\000\000\000\000\000\000\000\000\000\000\002\165\000\000\002\165\002\165\002\165\002\165\002\165\002\165\002\165\002\165\002\165\000\000\002\165\000\000\000\000\000\000\000\000\000\000\002\165\000\000\002\165\002\165\002\165\000\000\000\000\000\000\000\000\002\165\000\000\000\000\002\165\000\000\002\165\002\165\000\000\002\165\002\165\002\165\002\165\000\000\000\000\000\000\000\000\000\000\000\000\002\165\000\000\002\165\002\165\000\000\002\165\002\165\002\165\002\165\002\165\002\165\002\165\000\000\000\000\002\165\002\165\018\226\000\000\000\000\002\165\002\165\000\000\000\000\002\165\002\165\002\165\002\165\002\177\000\000\002\177\000\000\002\177\000\000\000\000\000\000\002\177\000\000\000\000\002\177\000\000\002\177\000\000\000\000\002\177\000\000\000\000\002\177\002\177\002\177\000\000\002\177\002\177\002\177\000\000\000\000\000\000\000\000\000\000\002\177\002\177\002\177\002\177\000\000\002\177\000\000\002\177\000\000\000\000\000\000\000\000\000\000\000\000\002\177\002\177\002\177\002\177\002\177\002\177\000\000\000\000\000\000\000\000\000\000\002\177\000\000\002\177\002\177\000\000\000\000\000\000\000\000\000\000\002\177\002\177\002\177\000\000\000\000\000\000\000\000\000\000\000\000\002\177\000\000\002\177\002\177\002\177\002\177\002\177\002\177\002\177\002\177\002\177\000\000\002\177\000\000\000\000\000\000\000\000\000\000\002\177\000\000\002\177\002\177\002\177\000\000\000\000\000\000\000\000\002\177\000\000\000\000\002\177\000\000\002\177\002\177\000\000\002\177\002\177\002\177\002\177\000\000\000\000\000\000\000\000\000\000\000\000\002\177\000\000\002\177\002\177\000\000\015\218\002\177\002\177\002\177\002\177\002\177\002\177\000\000\000\000\002\177\002\177\018\226\000\000\000\000\002\177\002\177\000\000\000\000\002\177\002\177\002\177\002\177\002\173\000\000\002\173\000\000\002\173\000\000\000\000\000\000\002\173\000\000\000\000\002\173\000\000\002\173\000\000\000\000\019\006\000\000\000\000\002\173\002\173\002\173\000\000\002\173\002\173\002\173\000\000\000\000\000\000\000\000\000\000\019n\019\206\019\230\019\134\000\000\019\254\000\000\002\173\000\000\000\000\000\000\000\000\000\000\000\000\002\173\019\158\002\173\020\022\020.\002\173\000\000\000\000\000\000\000\000\000\000\002\173\000\000\020F\002\173\000\000\000\000\000\000\000\000\000\000\002\173\002\173\000\242\000\000\000\000\000\000\000\000\000\000\000\000\002\173\000\000\002\173\002\173\019\030\019\182\020^\020v\020\214\002\173\002\173\000\000\002\173\000\000\000\000\000\000\000\000\000\000\002\173\000\000\002\173\002\173\020\238\000\000\000\000\000\000\000\000\002\173\000\000\000\000\002\173\000\000\002\173\021\006\000\000\002\173\002\173\002\173\002\173\000\000\000\000\000\000\000\000\000\000\000\000\002\173\000\000\002\173\002\173\000\000\021f\002\173\002\173\021\158\020\142\002\173\002\173\000\000\000\000\002\173\021\030\002\173\000\000\000\000\020\166\020\190\000\000\000\000\002\173\002\173\0216\021N\012\129\000\000\012\129\000\000\012\129\000\000\000\000\000\000\012\129\000\000\000\000\012\129\000\000\012\129\000\000\000\000\012\129\000\000\000\000\012\129\012\129\012\129\000\000\012\129\012\129\012\129\000\000\000\000\000\000\000\000\000\000\012\129\012\129\012\129\012\129\000\000\012\129\000\000\012\129\000\000\000\000\000\000\000\000\000\000\000\000\012\129\012\129\012\129\012\129\012\129\012\129\000\000\000\000\000\000\000\000\000\000\012\129\000\000\012\129\012\129\000\000\000\000\000\000\000\000\000\000\012\129\012\129\012\129\000\000\000\000\000\000\000\000\000\000\000\000\012\129\000\000\012\129\012\129\012\129\012\129\012\129\012\129\012\129\012\129\012\129\000\000\012\129\000\000\000\000\000\000\000\000\000\000\012\129\000\000\012\129\012\129\012\129\000\000\000\000\000\000\000\000\012\129\000\000\000\000\012\129\000\000\012\129\012\129\000\000\012\129\012\129\012\129\012\129\000\000\000\000\000\000\000\000\000\000\000\000\012\129\000\000\012\129\012\129\000\000\015\218\012\129\012\129\012\129\012\129\012\129\012\129\000\000\000\000\012\129\012\129\018\226\000\000\000\000\012\129\012\129\000\000\000\000\012\129\012\129\012\129\012\129\012}\000\000\012}\000\000\012}\000\000\000\000\000\000\012}\000\000\000\000\012}\000\000\012}\000\000\000\000\019\006\000\000\000\000\012}\012}\012}\000\000\012}\012}\012}\000\000\000\000\000\000\000\000\000\000\019n\019\206\019\230\019\134\000\000\019\254\000\000\012}\000\000\000\000\000\000\000\000\000\000\000\000\012}\019\158\012}\020\022\020.\012}\000\000\000\000\000\000\000\000\000\000\012}\000\000\020F\012}\000\000\000\000\000\000\000\000\000\000\012}\012}\000\242\000\000\000\000\000\000\000\000\000\000\000\000\012}\000\000\012}\012}\019\030\019\182\020^\020v\020\214\012}\012}\000\000\012}\000\000\000\000\000\000\000\000\000\000\012}\000\000\012}\012}\020\238\000\000\000\000\000\000\000\000\012}\000\000\000\000\012}\000\000\012}\021\006\000\000\012}\012}\012}\012}\000\000\000\000\000\000\000\000\000\000\000\000\012}\000\000\012}\012}\000\000\012}\012}\012}\012}\020\142\012}\012}\000\000\000\000\012}\021\030\012}\000\000\000\000\020\166\020\190\000\000\000\000\012}\012}\0216\021N\012m\000\000\012m\000\000\012m\000\000\000\000\000\000\012m\000\000\000\000\012m\000\000\012m\000\000\000\000\012m\000\000\000\000\012m\012m\012m\000\000\012m\012m\012m\000\000\000\000\000\000\000\000\000\000\012m\012m\012m\012m\000\000\012m\000\000\012m\000\000\000\000\000\000\000\000\000\000\000\000\012m\012m\012m\012m\012m\012m\000\000\000\000\000\000\000\000\000\000\012m\000\000\012m\012m\000\000\000\000\000\000\000\000\000\000\012m\012m\012m\000\000\000\000\000\000\000\000\000\000\000\000\012m\000\000\012m\012m\012m\012m\012m\012m\012m\012m\012m\000\000\012m\000\000\000\000\000\000\000\000\000\000\012m\000\000\012m\012m\012m\000\000\000\000\000\000\000\000\012m\000\000\000\000\012m\000\000\012m\012m\000\000\012m\012m\012m\012m\000\000\000\000\000\000\000\000\000\000\000\000\012m\000\000\012m\012m\000\000\015\218\012m\012m\012m\012m\012m\012m\000\000\000\000\012m\012m\018\226\000\000\000\000\012m\012m\000\000\000\000\012m\012m\012m\012m\012i\000\000\012i\000\000\012i\000\000\000\000\000\000\012i\000\000\000\000\012i\000\000\012i\000\000\000\000\019\006\000\000\000\000\012i\012i\012i\000\000\012i\012i\012i\000\000\000\000\000\000\000\000\000\000\019n\019\206\019\230\019\134\000\000\019\254\000\000\012i\000\000\000\000\000\000\000\000\000\000\000\000\012i\019\158\012i\020\022\020.\012i\000\000\000\000\000\000\000\000\000\000\012i\000\000\020F\012i\000\000\000\000\000\000\000\000\000\000\012i\012i\000\242\000\000\000\000\000\000\000\000\000\000\000\000\012i\000\000\012i\012i\019\030\019\182\020^\020v\020\214\012i\012i\000\000\012i\000\000\000\000\000\000\000\000\000\000\012i\000\000\012i\012i\020\238\000\000\000\000\000\000\000\000\012i\000\000\000\000\012i\000\000\012i\021\006\000\000\012i\012i\012i\012i\000\000\000\000\000\000\000\000\000\000\000\000\012i\000\000\012i\012i\000\000\012i\012i\012i\012i\020\142\012i\012i\000\000\000\000\012i\021\030\012i\000\000\000\000\020\166\020\190\000\000\000\000\012i\012i\0216\021N\002\169\000\000\002\169\000\000\002\169\000\000\000\000\000\000\002\169\000\000\000\000\002\169\000\000\002\169\000\000\000\000\002\169\000\000\000\000\002\169\002\169\002\169\000\000\002\169\002\169\002\169\000\000\000\000\000\000\000\000\000\000\002\169\002\169\002\169\002\169\000\000\002\169\000\000\002\169\000\000\000\000\000\000\000\000 \230\000\000\002\169\002\169\002\169\002\169\002\169\002\169\000\000\000\000\000\000\000\000\000\000\002\169\000\000\002\169\002\169\000\000\000\000\000\000\000\000\011\149\002\169\002\169\002\169\000\000\000\000\000\000\000\000\000\000\000\000\002\169\000\000\002\169\002\169\002\169\002\169\002\169\002\169\002\169\002\169\002\169\000\000\002\169\000\000\000\000\000\000\000\000\000\000\002\169\019\213\002\169\002\169\002\169\000\000\000\000\000\000\000\000\002\169\000\000\000\000\002\169\000\000\002\169\002\169\000\242\002\169\002\169\002\169\002\169\000\000\019\213\000\000\000\000\002\170\000\000\002\169\002\174\002\169\002\169\000\000\002\169\002\169\002\169\002\169\002\169\002\169\002\169\000\000\000\000\002\169\002\169\018\226\002\186\000\000\002\169\002\169\000\000\000\000\002\169\002\169\002\169\002\169\000\006\000\000\000\000\000\250\003\146\003\150\003\154\t*\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\000\000\tV\011\158#6\002\198\0075\011j\tZ\001\234\000\000 \222\000\000\bn\011\218\t^\tb\000\000\tf\000\000\011\226 J\tr\000\000\br\tZ\tv\000\000 r\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000 \214\003\138\000\000\000\000\t\190\r\178 \238\000\000#\170\r\182\r\186\r\198\r\210\r\234\003\154 \246\nJ \214\000\000\002\202\000\000\000\000\000\000 \238!\006\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\001\234$N$^\000\000\000\000\000\000\000\000\014\006\014\030\017\226\n\134\n\138!\014\017\246!N#*\000\000\0075\0075\000\000\000\000\r\226\000\000\r\230\000\000\000\000$j\000\000\t\130\000\000$n\000\000\000\000\000\000\003\138\007M\000\000!\138!\150\n\142\r\238\000\000$\158\000\000\015\250\007\166\000\006%\150\017\250\000\250\003\146\003\150\003\154\t*\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\000\000\007U\000\000\000\000\000\000\000\000\000\000\tZ\001\234\000\000\000\000$\174\bn\000\000\t^\tb\000\000\tf\000\000\000\000 J\tr\000\000\br\000\000\tv\000\000 r\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000 \214\003\138\000\000\000\000\t\190\r\178 \238\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000 \246\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000!\006\000\000\r\250/\022\nb\nf\000\000\r\206\r\222/6\000\000\000\000\000\000\000\000\000\000\000\000\014\006\014\030\017\226\n\134\n\138!\014\017\246!N\000\000\000\000/W\028.\000\000\000\000\r\226\000\000\r\230\000\000\000\000\000\000\000\000\030F\000\000\000\000\003j\000\000\000\000\000\000\016~\000\000\000\000!\150\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\006\000\000\017\250\000\250\003\146\003\150\003\154\t*\003\158\003j\029v\003\170\000\000\000\000\bf\000\000\bj\000\000/\134\000\000\000\000\000\000\000\000\000\000\tZ\001\234\000\000\030J\016~\bn\000\000\t^\tb\000\000\tf\000\000\016\226 J\tr\000\000\br\000\000\tv\030V r)B\000\000\t\162\t\166\029\162\t\170\t\182\t\194\t\198\t\206\r\146\000\242\000\000 \214\003\138\000\000\000\000\t\190\r\178 \238\000\000)N\r\182\r\186\r\198\r\210\r\234\000\000 \246\nJ\016\226\000\000\000\000\n\138\000\000\000\000\000\000!\006\000\000\r\250/\022\nb\nf\000\000\r\206\r\222/6)Z\000\000\000\000\000\242\000\000\000\000\014\006\014\030\017\226\n\134\n\138!\014\017\246!N\000\000\000\000\007]\000\000(\238\000\000\r\226\000\000\r\230\029z\001\202\b\130\003\154\014\190\000\000\003j\000\000\b\134\000\000\000\000\bf\001\n\004F!\150\n\142\r\238\003v\000\000\000\000\015\250\007\166\001\234\000\000\017\250\000\000\001\014\001\018\001\022\b\234\001\030\000\000\001\"\000\000\000\000\001\206\000\000\000\000\000\000\029\166\000\000\b\238\001&\000\000\001*\011\138\000\000\000\000\014:\001\210\001\190\0012\004F\000\000\0016\000\000\003\138\015\149\000\000\n\n\n\014\000\000\000\000\000\000\n\018\000\000\n\026\n>\nn\019\213\019\189\nJ\000\000\000\000\001:\001>\001B\001F\001J\000\000\000\000\000\000\nN\nb\nf\001N\nj\nr\n~\000\000\019\213\000\000\001R\002\170\000\000\000\000\002\174\015\149\n\134\n\138\000\000\000\000\011\002\001V\000\000\002\182\000\000\000\000\002a\002a\001Z\000\000\002\186\000\000\015\149\002\194\002a\019\189\015\149\022v\000\000\000\000\000\000\001\150\011\142\015\149\000\000\n\142\002a\004F\001\154\015\149\001\158\007\166\001\162\001\166\000\n\000\000\001\170\000\000\001\174\001\178\000\185\002\198\003\150\003\154\000\185\020\017\003j\000\000\018R\000\000\000\000\bf\002a\000\000\000\000\000\185\000\000\000\185\000\000\000\185\002a\000\185\001\234\000\000\018j\b\005\bn\002a\000\000\b\005\000\000\000\000\000\000\018r\000\185\000\000\000\000\br\000\000\tv\000\000\000\185\000\000\000\000\000\000\000\000\000\185\000\000\t\182\000\000\001\190\000\000\000\185\000\000\000\000\000\185\003\138\002\202\002a\t\190\r\178\000\185\000\185\000\185\r\182\r\186\r\198\000\000\023\174\000\000\000\185\nJ\000\185\000\185\007!\000\000\000\000\000\000\000\000\000\185\000\000\000\000\000\185\nb\nf\000\000\r\206\r\222\000\185\000\000\000\000\020\017\000\000\000\000\020\017\007!\r\154\020\017\n\134\n\138\000\185\000\000\000\185\000\000\000\000\000\185\000\185\000\000\011U\r\226\000\000\r\230\b\005\000\000\000\000\000\000\000\000\000\000\000\185\020\017\007!\020\017\000\000\020\017\000\000\000\185\000\185\n\142\r\238\007!\000\000\b\005\015\250\007\166\b\005\007!\tN\000\185\000\209\000\185\003\150\003\154\000\209\000\000\003j\000\000\018R\007!\011U\bf\000\000\000\000\000\000\000\209\000\000\000\209\000\000\000\209\000\000\000\209\001\234\000\000\018j\000\000\bn\011U\000\000\000\000\000\000\011U\017\214\018r\000\209\000\000\000\000\br\011U\tv\000\000\000\209\007!\000\000\011U\000\000\000\209\000\000\t\182\000\000\001\190\000\000\000\209\000\000\007!\000\209\003\138\000\000\000\000\t\190\r\178\000\209\000\209\000\209\r\182\r\186\r\198\000\000\023\174\000\000\000\209\nJ\000\209\000\209\000\000\r\170\000\000\t\030\003\154\000\209\000\000\000\000\000\209\nb\nf\t\"\r\206\r\222\000\209\000\000\000\000\000\000\017~\000\000\000\000\000\000\000\000\001\234\n\134\n\138\000\209\000\000\000\209\002a\000\000\000\209\000\209\000\000\000\000\r\226\000\000\r\230\000\000\000\000\002a\000\000\000\000\000\000\000\209\000\000\000\000\000\000\002a\r\166\000\000\000\209\000\209\n\142\r\238\011\154\000\n\003\138\015\250\007\166\b\130\003\154\011z\000\209\003j\000\209\b\134\002a\000\000\bf\001\n\000\000\000\000\000\000\002a\003v\002a\000\000\000\000\000\000\001\234\000\000\002a\000\000\001\014\001\018\001\022\b\234\001\030\002a\001\"\000\000\000\000\000\000\000\000\016:\000\000\000\000\000\000\b\238\001&\000\242\001*\011\138\000\000\000\000\b\230\000\000\001\190\0012\000\000\000\000\0016\000\000\003\138\000\000\000\000\n\n\n\014\000\000\002a\000\000\n\018\000\000\n\026\n>\nn\000\000\020\017\nJ\000\000\000\000\001:\001>\001B\001F\001J\000\000\000\000\000\000\nN\nb\nf\001N\nj\nr\n~\000\000\b\t\000\000\001R\000\000\b\t\000\000\000\000\000\000\n\134\n\138\011\158\000\000\011\002\001V\011j\014B\000\000\000\000\000\000\000\000\001Z\011\218\000\000\000\000\000\000\004F\000\000\011\226\000\000\000\000\001\230\000\000\000\000\001\150\011\142\000\000\000\000\n\142\000\000\000\000\001\154\000\000\001\158\007\166\001\162\001\166\000\000\000\000\001\170\001\234\001\174\001\178\006-\000\000\b\130\003\154\006-\000\000\003j\000\000\r2\000\000\000\000\bf!\210\000\000\020\017\006-\000\000\020\017\000\000\006-\020\017\006-\001\234\000\000\r~\003\234\000\000\"J\000\000\b\190\000\000\003\138\000\000\014*\006-\b\t\000\000\000\000\000\000\"b\000\000\006-\020\017\000\000\020\017\b\210\020\017\000\000\014\186\000\000\001\190\000\000\006-\000\000\b\t\006-\003\138\b\t\000\000\n\n\n\014\006-\006-\015\145\n\018\000\000\n\026\000\000\015J\000\000\006-\nJ\000\000\011\181\000\000\000\000\011\181\000\000\000\000\006-\006-\000\000\nN\nb\nf\000\000\nj\nr\n~\000\000\000\000\000\000\000\000\000\000\000\000#\182\000\000\000\000\n\134\n\138\006-\030F\006-\021\206\003j\006-\006-\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\011\181\000\000\015\145\000\000\003\182)>\015\145\022\002\006-\n\142\000\000\000\000\000\000\015\145\000\000\007\166\011\181\004F\000\006\015\145\000\000\006-\003\146\003\150\003\154\000\000\003\158\003j\030J\003\170\000\000\000\000\bf\000\000\bj\000\000\000\000\000\000\r\169\000\000\r\169\r\169\000\000\001\234\030V\000\000)b\bn\000\000\t^\tb\011\181\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166)n\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\n\138\t\190\r\178\000\000\011\181\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ)z\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000(\238\000\000\000\000\000\000\000\000\018\"\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\000\r\230\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\169\000\000\000\000\000\000\000\000\000\000\n\142\r\238\r\169\000\000\000\000\015\250\007\166\000\006\000\000\017\250\020\029\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\000\000\000\000\000\000\r\161\000\000\r\161\r\161\020\029\001\234\000\000\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\020\029\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\020\029\003\138\000\000\000\000\t\190\r\178\020\029\020\029\000\242\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\020\029\020\029\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\002a\002a\000\000\018\"\014\030\017\226\n\134\n\138\002a\017\246\000\000\000\000\000\000\000\000\020\029\000\000\000\000\r\226\000\000\r\230\002a\002a\002a\000\000\000\000\000\000\020\029\000\000\000\n\r\161\000\n\000\000\000\000\000\000\000\000\n\142\r\238\r\161\000\000\000\000\015\250\007\166\002a\002a\017\250\002a\002a\002a\002a\000\n\002a\002a\000\000\002a\002a\002a\002a\002a\002a\000\000\000\000\002a\002a\002a\002a\000\000\000\000\002a\000\000\002a\000\n\002a\002a\002a\002a\000\n\002a\000\000\000\000\r\150\002a\000\000\002a\000\000\002a\002a\029\210\000\000\002a\002a\002a\000\000\002a\002a\002a\002a\002a\002a\000\000\002a\002a\002a\000\000\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\000\000\000\000\002a\000\000\002a\000\000\000\000\000\000\002a\002a\002a\000\000\002a\002a\002a\002a N\002a\002a\002a\000\000\000\000\000\000\000\000\002a\002a\002a\002a\002a\002a\002a\000\000\002a\030:\000\000\000\000\000\000\002a\000\000\000\000\002a\000\006\002a\000\000\007!\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\002a\000\000\bf\000\000\bj\002a\002a\000\000\000\000\000\000\002a\002a\007!\001\234\002a\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\007!\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\007!\003\138\000\000\000\000\t\190\r\178\007!\tN\000\242\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\007!\007!\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\031\178\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\007!\000\000\000\000\r\226\000\000\r\230\000\000\000\000\000\000\000\000\000\000\000\000\007!\000\000\000\000\031\202\000\000\000\000\000\000\000\000\000\000\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\006\000\000\017\250\004q\003\146\003\150\003\154\004q\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\000\000\004q\000\000\000\000\000\000\004q\000\000\004q\001\234\000\000\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\004q\tr\030^\br\000\000\tv\000\000\004q\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\004q\003\138\000\000\000\000\t\190\r\178\004q\004q\004q\r\182\r\186\r\198\r\210\r\234\000\000\004q\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004q\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\029\030\014\030\017\226\n\134\n\138\004q\017\246\004q\000\000\000\000\004q\004q\000\000\006\145\r\226\000\000\r\230\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\030\230\004q\n\142\r\238\0296\000\000\000\000\015\250\007\166\000\006\000\000\017\250\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\000\000\000\000\000\000\000\242\000\000\n\022\000\000\000\000\001\234\000\000\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\006\145\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\011\158\000\000\000\000\000\000\011j\014v\000\000\r\250\000\000\nb\nf\011\218\r\206\r\222\000\000\004F\000\000\011\226\000\000\000\000\000\000\028\242\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000A\r\230\000\000\000\000\000A\000A\000A\000\000\000A\000A\000\000\000A\000\000\000\000\000A\000\000\000A\n\142\r\238\000\000\n\005\000\000\015\250\007\166\000\000\000A\017\250\000\000\000\000\000A\000\000\000A\000A\000\000\000A\000\000\000\000\000\000\000A\000\000\000A\000\000\000A\000\000\000\000\000\000\000\000\000A\000A\000\000\000A\000A\000A\000A\000A\000A\000\000\000\000\000\000\000A\000\000\000\000\000A\000A\000\000\000\000\000\000\000A\000A\000A\000A\000A\000\000\000\000\000A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000A\000\000\000A\000A\000\000\000A\000A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000A\000A\000A\000A\000A\000\000\000A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000A\000=\000A\000\000\000\000\000=\000=\000=\000\000\000=\000=\000\000\000=\000\000\000\000\000=\000\000\000=\000A\000A\000\000\n\001\000\000\000A\000A\000\000\000=\000A\000\000\000\000\000=\000\000\000=\000=\000\000\000=\000\000\000\000\000\000\000=\000\000\000=\000\000\000=\000\000\000\000\000\000\000\000\000=\000=\000\000\000=\000=\000=\000=\000=\000=\000\000\000\000\000\000\000=\000\000\000\000\000=\000=\000\000\000\000\000\000\000=\000=\000=\000=\000=\000\000\000\000\000=\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000=\000\000\000=\000=\000\000\000=\000=\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000=\000=\000=\000=\000=\000\000\000=\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000=\019A\000=\000\000\000\000\019A\019A\019A\000\000\019A\019A\000\000\019A\000\000\000\000\019A\000\000\019A\000=\000=\000\000\n\017\000\000\000=\000=\000\000\019A\000=\000\000\000\000\019A\000\000\019A\019A\000\000\019A\000\000\000\000\000\000\019A\000\000\019A\000\000\019A\000\000\000\000\000\000\000\000\019A\019A\000\000\019A\019A\019A\019A\019A\019A\000\000\000\000\000\000\019A\000\000\000\000\019A\019A\000\000\000\000\000\000\019A\019A\019A\019A\019A\000\000\000\000\019A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019A\000\000\019A\019A\000\000\019A\019A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019A\019A\019A\019A\019A\000\000\019A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019A\019=\019A\000\000\000\000\019=\019=\019=\000\000\019=\019=\000\000\019=\000\000\000\000\019=\000\000\019=\019A\019A\000\000\n\r\000\000\019A\019A\000\000\019=\019A\000\000\000\000\019=\000\000\019=\019=\000\000\019=\000\000\000\000\000\000\019=\000\000\019=\000\000\019=\000\000\000\000\000\000\000\000\019=\019=\000\000\019=\019=\019=\019=\019=\019=\000\000\000\000\000\000\019=\000\000\000\000\019=\019=\000\000\000\000\000\000\019=\019=\019=\019=\019=\000\000\000\000\019=\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019=\000\000\019=\019=\000\000\019=\019=\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019=\019=\019=\019=\019=\000\000\019=\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019=\000\006\019=\000\000\011\154\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\019=\019=\000\000\000\000\000\000\019=\019=\000\000\001\234\019=\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\242\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\025\186\014\030\017\226\n\134\n\138\000\000\017\246\000\000\011\158\000\000\000\000\000\000\011j\015\002\r\226\000\000\r\230\000\000\000\000\011\218\000\000\000\000\000\000\004F\000\000\011\226\026\210\000\000\000\000\000\000\000\000\000\000\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\006\000\000\017\250\n\137\003\146\003\150\003\154\n\137\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\000\000\n\137\000\000\006\173\000\000\n\137\000\000\n\137\001\234\000\000\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\n\137\tr\000\000\br\000\000\tv\000\000\n\137\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\n\137\003\138\000\000\000\000\t\190\r\178\n\137\n\137\000\242\r\182\r\186\r\198\r\210\r\234\000\000\n\137\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\137\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\026\238\014\030\017\226\n\134\n\138\n\137\017\246\n\137 \134\000\000\n\137\n\137\000\000\011\154\r\226\000\000\r\230\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\011\158\000\000\000\000*&\011j\015\030\n\137\n\142\r\238\027\006\000\000\011\218\015\250\007\166\000\006\004F\017\250\011\226\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\000\000\000\000\000\000\000\242\000\000\027\"\000\000\000\000\001\234\000\000\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\011\158\000\000\000\000\000\000\011j\015V\000\000\r\250\000\000\nb\nf\011\218\r\206\r\222\000\000\004F\000\000\011\226\000\000\000\000\000\000\027&\014\030\017\226\n\134\n\138\000\000\017\246\000\000\001\025\000\000\000\000\000\000\000\000\000\000\r\226\000\000\r\230\000\014\000\018\000\022\000\026\000\030\000\000\000\000\000\"\000&\000*\000.\0002\001\025\0006\000:\n\142\r\238\000\000\000>\000\000\015\250\007\166\000B\000\000\017\250\000\000\000\000\000\000\000\000\000F\000\000\000\000\000\000\000\000\000\000\000\000\000J\001\025\000N\b~\000R\000V\000Z\000^\000b\000f\001\025\000\000\000\000\000\000\000j\000n\001\025\000r\000v\000\000\000z\000\000\000\000\000\000\000\000\000\000\000\000\001\025\001\025\000\000\000\000\000\000\000\000\000\000\001\169\000~\000\000\000\000\000\000\000\000\000\130\000\134\000\000\000\000\000\000\000\000\000\000\000\138\000\142\000\146\000\000\000\000\000\000\000\000\000\000\001\169\000\000\000\000\000\000\000\000\000\000\001\025\000\150\000\154\000\158\000\162\000\000\000\166\000\170\000\000\000\174\000\000\000\000\001\025\000\178\000\182\000\186\000\000\000\000\000\000\000\000\000\000\000\000\000\190\000\006\000\194\000\198\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\202\bN\000\206\000\000\bf\000\000\bj\000\000\000\000\000\000\000\210\000\214\000\000\000\218\000\000\001\234\000\000\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\001\169\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210'\218\015\218\001\169\nJ\000\000\000\000\000\000\000\000\000\000\000\000\001\169\000\000\018\226\r\250\000\000\nb\nf\000\000\r\206\r\222\001\169\000\000\000\000\000\000\000\000\000\000\000\000'\226\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\031\154\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\029N\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\028\198\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\028\162\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\028v\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015\202\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\015\222\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\015\246\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\027\166\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018:\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\018\162\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\018\186\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\210\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\n\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\"\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019F\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019r\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\138\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\162\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\186\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\210\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\234\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\002\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\026\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0202\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020J\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020b\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020z\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\146\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\170\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\194\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\218\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\242\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\021\n\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\021\"\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\021:\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\021R\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\021j\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\021\130\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\021\138\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\021\162\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\023\202\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\023\238\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\024\018\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\024:\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\024^\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\024\130\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\024\174\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\024\210\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\024\246\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\025\018\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\025\206\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\025\254\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\026\030\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\026>\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\026Z\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\026r\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\026\134\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\026\162\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\027\234\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\027\254\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\028\026\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\028B\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\028Z\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\028b\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000 6\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000'\254\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210(\022\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\015r\000\000\000\000\000\000\000\000\000\000\000\000(\030\014\030\017\226\n\134\n\138\0149\017\246\000\000\000\000\0149\0149\002v\000\000\0149\r\226\0149\r\230\000\000\0149\000\000\000\000\000\000\002z\0149\0149\016V\0149\0149\000\000\0149\001\234\0149\n\142\r\238\000\000\000\000\0149\015\250\007\166\000\242\0149\017\250\000\000\000\000\000\000\000\000\000\000\000\000\001\153\t\014\0149\000\000\0149\000\000\000\000\0149\016R\0149\001\246\000\000\000\000\000\000\000\000\0149\003\138\000\000\0149\0149\000\000\001\153\0149\0149\000\000\0149\000\000\0149\000\000\000\000\0149\000\000\000\000\000\000\n\177\000\000\000\000\000\000\n\177\0149\000\000\0149\0149\0149\000\000\0149\0149\0149\011\158\n\177\000\000\000\000\011j\015v\016^\n\177\000\000\0149\0149\011\218\000\000\000\000\0149\004F\0149\011\226\000\000\000\000\n\177\000\000\000\000\000\000\n\218\000\000\000\000\n\177\000\000\000\000\000\000\0149\0149\0149\000\000\0149\0149\000\000\0149\000\000\0149\n\177\0149\000\000\0149\015\181\0149\n\177\0149\b\130\003\154\001\153\000\000\003j\000\000\b\134\n\177\000\000\bf\000\000\000\000\000\000\000\000\015\181\015\181\n\177\015\181\015\181\000\000\001\234\000\000\000\000\000\000\000\000\015\218\001\153\b\190\000\000\000\000\000\000\000\000\000\000\000\000\001\153\000\000\018\226\n\177\000\000\n\177\000\000\015\181\n\177\b\210\001\153\000\000\b\230\000\000\001\190\000\000\000\000\000\000\000\000\000\000\003\138\000\000\000\000\n\n\n\014\000\000\000\000\015\181\n\018\n\177\n\026\n>\nn\004\173\004\173\nJ\000\000\002\130\000\000\000\000\000\000\004\173\000\000\000\000\015\181\004\173\nN\nb\nf\000\000\nj\nr\n~\004\173\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\173\n\134\n\138\000\000\000\000\011\002\015\181\000\000\015\181\000\000\000\000\004\173\000\000\000\000\000\000\000\000\000\000\000\000\004\173\000\000\004\173\000\000\000\000\015\181\015\181\015\145\004\173\015\181\015\181\000\000\n\142\000\000\015\181\004\173\015\181\000\000\007\166\015\177\015\181\000\000\015\181\b\130\003\154\000\000\000\000\003j\000\000\b\134\000\000\000\000\bf\000\000\000\000\000\000\000\000\015\177\015\177\000\000\015\177\015\177\000\000\001\234\000\000\000\000!\n\000\000\000\000\000\000\b\190\000\000\000\000\015\145\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015\177\000\000\b\210\000\000\000\000\011v\000\000\001\190\000\000\000\000\000\000\000\000\000\000\003\138\000\000\000\000\n\n\n\014\000\000\000\000\015\177\n\018\000\000\n\026\n>\nn\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015\177\000\000\nN\nb\nf\000\000\nj\nr\n~\015\145\000\000\000\000\000\000\015\145\015\145\000\000\000\000\000\000\n\134\n\138\015\145\000\000\011\002\015\177\004F\015\177\015\145\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015\177\015\177\000\000\000\000\015\177\015\177\000\000\n\142\000\000\015\177\000\000\015\177\019\205\007\166\000\000\015\177\019\205\015\177\000\000\019\205\019\205\000\000\000\000\019\205\019\205\000\000\000\000\019\205\019\205\000\000\000\000\019\205\019\205\019\205\000\000\019\205\019\205\019\205\000\000\019\205\019\205\019\205\000\000\019\205\019\205\019\205\000\000\000\000\000\000\000\000\019\205\000\000\000\000\000\000\019\205\000\000\000\000\019\205\019\205\019\205\000\000\019\205\019\205\019\205\000\000\019\205\019\205\019\205\019\205\000\000\019\205\019\205\019\205\000\000\019\205\019\205\019\205\019\205\019\205\019\205\000\000\019\205\019\205\019\205\000\000\019\205\019\205\019\205\019\205\019\205\019\205\000\000\019\205\019\205\019\205\019\205\019\205\019\205\002^\019\205\000\000\000\000\002^\019\205\019\205\000\000\002^\000\000\019\205\000\000\000\000\000\000\019\205\000\000\000\000\000\000\019\205\000\000\019\205\019\205\019\205\019\205\019\205\019\205\019\205\019\205\019\205\019\205\000\000\019\205\019\205\000\000\000\000\000\000\019\205\000\000\019\205\000\000\019\205\019\205\019\205\002b\019\205\019\205\019\205\005n\019\205\019\205\000\000\005\146\019\205\019\205\001\193\019\205\019\205\019\205\019\205\019\205\019\205\019\205\019\205\019\205\019\149\019\205\019\205\000\000\019\149\000\000\000\000\001\230\019\149\000\000\000\000\001\193\000\000\000\000\000\250\000\000\005f\000\000\002\158\019\149\019\149\019\149\000\000\019\149\019\149\019\149\000\000\000\000\000\000)\230\000\000\000\000\000\000\007)\000\000\tZ\000\000\000\000\019\149\000\000\000\000\000\000\000\000\000\000\000\000\019\149\019\149\019\149)\234\000\000\019\149\000\000\000\000\000\000\003\226*\018\019\149\000\000\001\185\019\149\000\000\000\000\000\000\000\000\000\000\019\149\019\149\019\149\000\000 \214\000\000\000\000\000\000\000\000\019\149 \238\019\149\019\149\001\177\001\185\000\000\000\000\000\000\019\149 \246\000\000\019\149\000\000\000\000\001\193\000\000\000\000\005v!\006\000\000\000\000\019\149\000\000\000\000\001\177\000\000\000\000\000\000\000\000\019\149\000\000\019\149\019\149\000\000\019\149\019\149\000\000\015\218\001\193!\014\000\000*\238\000\000\000\000\007)\007)\001\193\019\149\018\226\019\149\000\000\019\149\019\149\000\000\rY\019\149\001\193\000\000\rY\000\000\019\149\001\230\rY\019\149\019\149*\254\019\149\000\000\019\149\019\149\rY\000\000\000\000\rY\rY\rY\000\000\rY\rY\rY\000\000\000\000\001\185\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\rY\000\000\000\000\000\000\000\000\000\000\000\000\rY\rY\rY\001\177\000\000\rY\015\218\001\185\000\000\003\226\000\153\rY\000\000\000\000\rY\001\185\000\000\018\226\000\000\000\153\rY\rY\rY\000\000\000\153\001\185\015\218\001\177\000\000\rY\012\241\rY\rY\000\000\000\000\001\177\000\000\018\226\rY\000\000\000\000\rY\000\000\000\000\000\000\001\177\000\000\005v\000\000\000\000\000\153\rY\000\000\000\000\000\000\012\241\000\000\000\153\000\000\rY\000\000\rY\rY\000\000\rY\rY\000\000\000\000\000\000\000\000\000\153\000\000\000\000\000\000\000\000\000\000\000\000\rY\000\000\rY\000\000\rY\rY\000\000\ra\rY\000\000\000\000\ra\000\000\rY\001\230\ra\rY\rY\000\153\rY\000\000\rY\rY\ra\000\000\000\000\ra\ra\ra\000\000\ra\ra\ra\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012\241\ra\000\000\000\000\000\000\000\000\000\153\000\000\ra\ra\ra\002:\000\000\ra\000\000\000\000\000\000\003\226\000\153\ra\000\000\000\153\ra\000\153\000\000\000\000\000\000\000\153\ra\ra\ra\000\000\000\153\000\000\000\000\000\000\000\000\ra\012\241\ra\ra\000\000\000\000\000\000\000\000\000\000\ra\000\000\000\000\ra\000\000\000\000\000\000\000\000\000\000\005v\000\000\000\000\000\153\ra\000\000\000\000\000\000\012\241\000\000\000\153\000\000\ra\000\000\ra\ra\000\000\ra\ra\000\000\000\000\000\000\000\000\000\153\000\000\000\000\000\000\000\000\000\000\000\000\ra\000\000\ra\000\000\ra\ra\000\000\r]\ra\000\000\000\000\r]\000\000\ra\001\230\r]\ra\ra\000\153\ra\000\000\ra\ra\r]\000\000\000\000\r]\r]\r]\000\000\r]\r]\r]\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012\241\r]\000\000\000\000\000\000\000\000\000\153\000\000\r]\r]\r]\030\246\000\000\r]\019\213\019\189\000\000\003\226\000\157\r]\000\000\000\153\r]\000\153\000\000\000\000\000\000\000\157\r]\r]\r]\000\000\000\157\000\000\000\000\019\213\000\000\r]\002\170\r]\r]\002\174\000\000\000\000\000\000\000\000\r]\000\000\000\000\r]\t6\000\000\000\000\000\000\000\000\005v\000\000\002\186\000\157\r]\002\194\000\000\019\189\000\000\000\000\000\157\000\000\r]\000\000\r]\r]\000\000\r]\r]\000\000\000\000\000\000\000\000\000\157\000\000\000\000\000\000\000\000\000\000\000\000\r]\000\000\r]\002\198\r]\r]\000\000\rU\r]\000\000\000\000\rU\000\000\r]\001\230\rU\r]\r]\000\157\r]\000\000\r]\r]\rU\000\000\000\000\rU\rU\rU\000\000\rU\rU\rU\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\rU\000\000\000\000\000\000\000\000\000\157\000\000\rU\rU\rU\002\022\000\000\rU\000\000\002\202\000\000\003\226\000\000\rU\000\000\000\157\rU\000\157\000\000\000\000\000\000\000\000\rU\rU\rU\000\000\000\000\000\000\000\000\000\000\000\000\rU\000\000\rU\rU\000\000\000\000\000\000\000\000\000\000\rU\000\000\000\000\rU\000\000\000\000\000\000\000\000\000\000\005v\000\000\000\000\000\000\rU\000\000\000\000\000\000\000\000\000\000\000\000\000\000\rU\000\000\rU\rU\000\000\rU\rU\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\rU\000\000\rU\000\000\rU\rU\000\000\000\000\rU\000\000\000\000\000\161\000\000\rU\000\161\000\161\rU\rU\000\000\rU\000\000\rU\rU\000\161\000\000\000\000\000\161\000\161\000\161\000\000\000\161\000\161\000\161\000\000\012\245\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\161\000\000\000\000\000\000\000\000\001\226\001\230\000\161\000\000\000\161\000\000\000\000\000\161\000\000\012\245\000\000\000\161\000\000\000\161\000\000\000\000\000\161\000\000\000\000\000\000\001\234\002&\000\161\000\161\000\161\000\000\000\000\000\000\000\000\000\000\000\000\000\161\000\000\000\161\000\161\000\000\000\000\000\000\000\000\000\000\000\161\000\161\000\000\000\161\000\000\000\000\003~\000\000\003\226\000\161\000\000\000\000\003z\000\161\003\138\003\186\003\198\000\000\000\000\000\153\000\000\000\161\003\210\000\161\000\161\000\000\000\161\000\161\000\153\000\000\000\000\000\000\000\000\000\153\000\000\012\245\000\000\000\000\000\000\000\161\000\000\000\161\000\000\000\161\003\214\000\000\003\230\000\161\000\000\000\000\000\153\030\198\000\161\000\153\000\153\000\161\000\161\000\000\000\161\000\153\000\161\000\000\000\153\000\000\000\000\000\153\000\153\000\153\000\000\000\153\000\153\000\153\000\000\012\241\000\000\000\000\000\000\000\000\000\000\000\153\000\153\000\000\000\000\000\000\000\153\000\000\000\000\000\000\000\000\000\153\000\000\000\153\000\000\000\153\000\153\000\000\000\153\000\000\012\241\000\000\000\153\000\000\000\153\000\000\000\153\000\153\000\000\000\000\000\000\000\000\000\000\000\153\000\153\000\153\000\000\000\000\000\000\000\000\000\000\000\000\000\153\000\153\000\153\000\153\000\000\000\000\000\000\000\153\000\000\000\153\000\153\000\000\000\153\000\000\000\000\000\153\000\153\000\000\000\153\000\000\000\153\004\190\000\153\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\153\000\153\000\153\000\153\t%\000\153\000\153\000\000\t%\000\000\000\000\000\153\t%\000\000\012\241\000\153\000\000\000\000\000\153\001\202\001\226\001\230\000\153\t%\t%\t%\000\153\t%\t%\t%\000\000\000\153\000\000\000\000\000\153\000\153\000\000\000\153\000\000\000\153\001\234\002&\t%\000\000\000\000\000\000\000\000\000\153\000\000\t%\t%\t%\006\"\001\206\t%\000\000\000\153\000\000\004J\000\000\t%\000\000\000\153\t%\000\153\000\000\002f\001\210\003\226\t%\t%\t%\003z\000\000\003\138\003\186\003\198\000\000\t%\000\000\t%\t%\003\210\000\000\000\000\000\000\000\000\t%\000\153\000\000\t%\000\000\000\000\031\026\000\000\000\000\t%\000\000\000\000\000\000\t%\000\000\000\000\000\153\003\214\000\153\003\230\000\000\t%\000\000\t%\t%\000\000\t%\t%\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t%\000\000\t%\000\000\t%\t%\000\000\019\153\t%\000\000\000\000\019\153\000\000\t%\000\000\019\153\t%\t%\000\000\t%\000\000\t%\t%\005\138\000\000\000\000\019\153\019\153\019\153\000\000\019\153\019\153\019\153\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\226\001\230\000\000\000\000\000\000\019\153\000\000\000\000\000\000\000\000\000\000\000\000\019\153\019\153\019\153\000\000\000\000\019\153\000\000\000\000\001\234\002&\000\000\019\153\000\000\000\000\019\153\000\000\000\000\000\000\000\000\000\000\019\153\019\153\019\153\000\000\000\000\000\000\000\000\000\000\000\000\019\153\000\000\019\153\019\153\000\000\003~\000\000\003\218\000\000\019\153\000\000\003z\019\153\003\138\003\186\003\198\000\000\000\000\019\153\000\000\000\000\003\210\019\153\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\153\000\000\019\153\019\153\000\000\019\153\019\153\000\000\000\000\000\000\000\000\000\000\000\000\003\214\000\000\003\230\000\000\000\000\019\153\000\000\019\153\000\000\019\153\019\153\000\000\018\237\019\153\000\000\000\000\018\237\000\000\019\153\000\000\018\237\019\153\019\153\000\000\019\153\000\000\019\153\019\153\005\138\000\000\000\000\018\237\018\237\018\237\000\000\018\237\018\237\018\237\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\226\001\230\000\000\000\000\000\000\018\237\000\000\000\000\000\000\000\000\000\000\000\000\018\237\018\237-V\000\000\000\000\018\237\000\000\000\000\001\234\002&\000\000\018\237\000\000\000\000\018\237\000\000\000\000\000\000\000\000\000\000\018\237\018\237\018\237\000\000\000\000\000\000\000\000\000\000\000\000\018\237\000\000\018\237\018\237\000\000\004\202\000\000\003\226\000\000\018\237\000\000\003z\018\237\003\138\003\186\003\198\000\000\000\000\018\237\000\000\000\000\003\210\018\237\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\237\000\000\018\237\018\237\000\000\018\237\018\237\000\000\000\000\000\000\000\000\000\000\000\000\003\214\000\000\003\230\000\000\000\000\018\237\000\000\018\237\000\000\018\237\018\237\004Y\000\000\018\237\000\000\004Y\000\000\000\000\018\237\004Y\000\000\018\237\004F\000\000\018\237\000\000\018\237\018\237\000\000\000\000\004Y\004Y\004Y\000\000\004Y\004Y\004Y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\226\001\230\000\000\000\000\000\000\004Y\000\000\000\000\000\000\000\000\000\000\000\000\004Y\004Y\004>\000\000\000\000\004Y\000\000\000\000\001\234\002&\000\000\004Y\000\000\000\000\004Y\000\000\000\000\000\000\000\000\000\000\004Y\004Y\004Y\000\000\000\000\000\000\000\000\000\000\000\000\004Y\000\000\004Y\004Y\000\000\003~\000\000\005j\000\000\004Y\000\000\003z\004Y\003\138\003\186\003\198\000\000\000\000\004Y\000\000\000\000\003\210\004Y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004Y\000\000\004Y\004Y\000\000\004Y\004Y\000\000\000\000\000\000\000\000\000\000\000\000\003\214\000\000\003\230\000\000\000\000\004Y\000\000\004Y\000\000\004Y\004Y\018=\000\000\004Y\000\000\018=\000\000\000\000\004Y\018=\000\000\004Y\004F\000\000\004Y\000\000\004Y\004Y\000\000\000\000\018=\018=\018=\000\000\018=\018=\018=\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\226\001\230\000\000\000\000\000\000\018=\000\000\000\000\000\000\000\000\000\000\000\000\018=\018=\004>\000\000\000\000\018=\000\000\000\000\001\234\002&\000\000\018=\000\000\000\000\018=\000\000\000\000\000\000\000\000\000\000\018=\018=\018=\000\000\000\000\000\000\000\000\000\000\000\000\018=\000\000\018=\018=\000\000\003~\000\000\005\142\000\000\018=\000\000\003z\018=\003\138\003\186\003\198\000\000\000\000\018=\000\000\000\000\003\210\018=\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018=\000\000\018=\018=\000\000\018=\018=\000\000\000\000\000\000\000\000\000\000\000\000\003\214\000\000\003\230\000\000\000\000\018=\000\000\018=\000\000\018=\018=\018A\000\000\018=\000\000\018A\000\000\000\000\018=\018A\000\000\018=\004F\000\000\018=\000\000\018=\018=\000\000\000\000\018A\018A\018A\000\000\018A\018A\018A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\226\001\230\000\000\000\000\000\000\018A\000\000\000\000\000\000\000\000\000\000\000\000\018A\018A\004Z\000\000\000\000\018A\000\000\000\000\001\234\002&\000\000\018A\000\000\000\000\018A\000\000\000\000\000\000\000\000\000\000\018A\018A\018A\000\000\000\000\000\000\000\000\000\000\000\000\018A\000\000\018A\018A\000\000\006\202\000\000\003\226\000\000\018A\000\000\003z\018A\003\138\003\186\003\198\000\000\000\000\018A\000\000\000\000\003\210\018A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018A\000\000\018A\018A\000\000\018A\018A\000\000\000\000\000\000\000\000\000\000\000\000\003\214\000\000\003\230\000\000\000\000\018A\000\000\018A\000\000\018A\018A\018M\000\000\018A\000\000\018M\000\000\000\000\018A\018M\000\000\018A\018A\000\000\018A\000\000\018A\018A\000\000\000\000\018M\018M\018M\000\000\018M\018M\018M\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\226\001\230\000\000\000\000\000\000\018M\000\000\000\000\000\000\000\000\000\000\000\000\018M\018M\004>\000\000\000\000\018M\000\000\000\000\001\234\002&\000\000\018M\000\000\000\000\018M\000\000\000\000\000\000\000\000\000\000\018M\018M\018M\000\000\000\000\000\000\000\000\000\000\000\000\018M\000\000\018M\018M\000\000,r\000\000\003\226\000\000\018M\000\000\003z\018M\003\138\003\186\003\198\000\000\000\000\018M\000\000\000\000\003\210\018M\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018M\000\000\018M\018M\000\000\018M\018M\000\000\000\000\000\000\000\000\000\000\000\000\003\214\000\000\003\230\000\000\000\000\018M\000\000\018M\000\000\018M\018M\018Q\000\000\018M\000\000\018Q\000\000\000\000\018M\018Q\000\000\018M\004F\000\000\018M\000\000\018M\018M\000\000\000\000\018Q\018Q\018Q\000\000\018Q\018Q\018Q\000\000\000\000\000\157\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\157\018Q\000\000\000\000\000\000\000\157\000\000\000\000\018Q\018Q\004Z\000\157\000\000\018Q\000\000\000\000\000\000\000\000\000\000\018Q\000\157\000\000\018Q\000\000\000\000\000\157\000\000\000\000\018Q\018Q\018Q\000\157\000\000\000\000\000\000\000\000\000\000\018Q\000\157\018Q\018Q\000\000\000\000\000\000\000\000\000\000\018Q\000\000\000\000\018Q\000\000\000\157\000\000\000\000\000\000\018Q\000\000\000\000\000\157\018Q\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018Q\000\000\018Q\018Q\000\157\018Q\018Q\000\000\000\000\000\157\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018Q\000\000\018Q\000\000\018Q\018Q\018]\000\000\018Q\000\000\018]\000\157\000\000\018Q\018]\000\000\018Q\018Q\000\000\018Q\000\000\018Q\018Q\000\157\000\000\018]\018]\018]\004\174\018]\018]\018]\000\000\000\000\000\000\000\000\000\000\000\000\000\157\000\000\000\157\000\000\000\000\000\157\018]\000\000\000\000\000\000\006\018\000\000\000\000\018]\018]\004>\000\157\000\000\018]\000\000\000\157\000\000\000\157\000\000\018]\000\157\000\000\018]\000\000\000\000\000\157\000\000\000\000\018]\018]\018]\000\000\000\000\000\000\000\000\000\000\000\000\018]\000\000\018]\018]\000\000\000\000\000\000\000\000\000\000\018]\000\000\000\000\018]\000\000\000\157\000\000\000\000\000\000\018]\000\000\000\000\000\157\018]\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018]\000\000\018]\018]\000\157\018]\018]\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018]\000\000\018]\000\000\018]\018]\018a\000\000\018]\000\000\018a\000\157\000\000\018]\018a\000\000\018]\004F\000\000\018]\000\000\018]\018]\000\000\000\000\018a\018a\018a\000\000\018a\018a\018a\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\157\018a\000\000\000\000\000\000\031\n\000\000\000\000\018a\018a\004Z\000\157\000\000\018a\000\000\000\157\000\000\000\157\000\000\018a\000\157\000\000\018a\000\000\000\000\000\157\000\000\000\000\018a\018a\018a\000\000\000\000\000\000\000\000\000\000\000\000\018a\000\000\018a\018a\000\000\000\000\000\000\000\000\000\000\018a\000\000\000\000\018a\000\000\000\157\000\000\000\000\000\000\018a\000\000\000\000\000\157\018a\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018a\000\000\018a\018a\000\157\018a\018a\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018a\000\000\018a\000\000\018a\018a\018e\000\000\018a\000\000\018e\000\157\000\000\018a\018e\000\000\018a\018a\000\000\018a\000\000\018a\018a\000\000\000\000\018e\018e\018e\000\000\018e\018e\018e\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\157\018e\000\000\000\000\000\000-\186\000\000\000\000\018e\018e\005*\000\153\000\000\018e\000\000\000\157\000\000\000\157\000\000\018e\000\153\000\000\018e\000\000\000\000\000\153\000\000\000\000\018e\018e\018e\000\000\000\000\000\000\000\000\000\000\000\000\018e\000\000\018e\018e\000\000\000\000\000\000\000\000\000\000\018e\000\000\000\000\018e\000\000\000\153\000\000\000\000\000\000\018e\000\000\000\000\000\153\018e\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018e\000\000\018e\018e\000\153\018e\018e\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018e\000\000\018e\000\000\018e\018e\018}\000\000\018e\000\000\018}\000\153\000\000\018e\018}\000\000\018e\004F\000\000\018e\000\000\018e\018e\000\000\000\000\018}\018}\018}\000\000\018}\018}\018}\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\153\018}\000\000\000\000\000\000-\202\000\000\000\000\018}\018}\004>\000\000\000\000\018}\000\000\000\153\000\000\000\153\000\000\018}\000\000\000\000\018}\000\000\000\000\000\000\000\000\000\000\018}\018}\018}\000\000\000\000\000\000\000\000\000\000\000\000\018}\000\000\018}\018}\000\000\000\000\000\000\000\000\000\000\018}\000\000\000\000\018}\000\000\000\000\000\000\000\000\000\000\018}\000\000\000\000\000\000\018}\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018}\000\000\018}\018}\000\000\018}\018}\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018}\000\000\018}\000\000\018}\018}\018\129\000\000\018}\000\000\018\129\000\000\000\000\018}\018\129\000\000\018}\004F\000\000\018}\000\000\018}\018}\000\000\000\000\018\129\018\129\018\129\000\000\018\129\018\129\018\129\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\129\000\000\000\000\000\000\000\000\000\000\000\000\018\129\018\129\004Z\000\000\000\000\018\129\000\000\000\000\000\000\000\000\000\000\018\129\000\000\000\000\018\129\000\000\000\000\000\000\000\000\000\000\018\129\018\129\018\129\000\000\000\000\000\000\000\000\000\000\000\000\018\129\000\000\018\129\018\129\000\000\000\000\000\000\000\000\000\000\018\129\000\000\000\000\018\129\000\000\000\000\000\000\000\000\000\000\018\129\000\000\000\000\000\000\018\129\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\129\000\000\018\129\018\129\000\000\018\129\018\129\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\129\000\000\018\129\000\000\018\129\018\129\018\133\000\000\018\129\000\000\018\133\000\000\000\000\018\129\018\133\000\000\018\129\018\129\000\000\018\129\000\000\018\129\018\129\000\000\000\000\018\133\018\133\018\133\000\000\018\133\018\133\018\133\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\133\000\000\000\000\000\000\000\000\000\000\000\000\018\133\018\133\005*\000\000\000\000\018\133\000\000\000\000\000\000\000\000\000\000\018\133\000\000\000\000\018\133\000\000\000\000\000\000\000\000\000\000\018\133\018\133\018\133\000\000\000\000\000\000\000\000\000\000\000\000\018\133\000\000\018\133\018\133\000\000\000\000\000\000\000\000\000\000\018\133\000\000\000\000\018\133\000\000\000\000\000\000\000\000\000\000\018\133\000\000\000\000\000\000\018\133\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\133\000\000\018\133\018\133\000\000\018\133\018\133\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\133\000\000\018\133\000\000\018\133\018\133\018\137\000\000\018\133\000\000\018\137\000\000\000\000\018\133\018\137\000\000\018\133\004F\000\000\018\133\000\000\018\133\018\133\000\000\000\000\018\137\018\137\018\137\000\000\018\137\018\137\018\137\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\137\000\000\000\000\000\000\000\000\000\000\000\000\018\137\018\137\005F\000\000\000\000\018\137\000\000\000\000\000\000\000\000\000\000\018\137\000\000\000\000\018\137\000\000\000\000\000\000\000\000\000\000\018\137\018\137\018\137\000\000\000\000\000\000\000\000\000\000\000\000\018\137\000\000\018\137\018\137\000\000\000\000\000\000\000\000\000\000\018\137\000\000\000\000\018\137\000\000\000\000\000\000\000\000\000\000\018\137\000\000\000\000\000\000\018\137\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\137\000\000\018\137\018\137\000\000\018\137\018\137\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\137\000\000\018\137\000\000\018\137\018\137\018\141\000\000\018\137\000\000\018\141\000\000\000\000\018\137\018\141\000\000\018\137\018\137\000\000\018\137\000\000\018\137\018\137\000\000\000\000\018\141\018\141\018\141\000\000\018\141\018\141\018\141\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\141\000\000\000\000\000\000\000\000\000\000\000\000\018\141\018\141\004>\000\000\000\000\018\141\000\000\000\000\000\000\000\000\000\000\018\141\000\000\000\000\018\141\000\000\000\000\000\000\000\000\000\000\018\141\018\141\018\141\000\000\000\000\000\000\000\000\000\000\000\000\018\141\000\000\018\141\018\141\000\000\000\000\000\000\000\000\000\000\018\141\000\000\000\000\018\141\000\000\000\000\000\000\000\000\000\000\018\141\000\000\000\000\000\000\018\141\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\141\000\000\018\141\018\141\000\000\018\141\018\141\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\141\000\000\018\141\000\000\018\141\018\141\018\145\000\000\018\141\000\000\018\145\000\000\000\000\018\141\018\145\000\000\018\141\004F\000\000\018\141\000\000\018\141\018\141\000\000\000\000\018\145\018\145\018\145\000\000\018\145\018\145\018\145\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\145\000\000\000\000\000\000\000\000\000\000\000\000\018\145\018\145\004Z\000\000\000\000\018\145\000\000\000\000\000\000\000\000\000\000\018\145\000\000\000\000\018\145\000\000\000\000\000\000\000\000\000\000\018\145\018\145\018\145\000\000\000\000\000\000\000\000\000\000\000\000\018\145\000\000\018\145\018\145\000\000\000\000\000\000\000\000\000\000\018\145\000\000\000\000\018\145\000\000\000\000\000\000\000\000\000\000\018\145\000\000\000\000\000\000\018\145\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\145\000\000\018\145\018\145\000\000\018\145\018\145\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\145\000\000\018\145\000\000\018\145\018\145\018\149\000\000\018\145\000\000\018\149\000\000\000\000\018\145\018\149\000\000\018\145\018\145\000\000\018\145\000\000\018\145\018\145\000\000\000\000\018\149\018\149\018\149\000\000\018\149\018\149\018\149\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\149\000\000\000\000\000\000\000\000\000\000\000\000\018\149\018\149\005*\000\000\000\000\018\149\000\000\000\000\000\000\000\000\000\000\018\149\000\000\000\000\018\149\000\000\000\000\000\000\000\000\000\000\018\149\018\149\018\149\000\000\000\000\000\000\000\000\000\000\000\000\018\149\000\000\018\149\018\149\000\000\000\000\000\000\000\000\000\000\018\149\000\000\000\000\018\149\000\000\000\000\000\000\000\000\000\000\018\149\000\000\000\000\000\000\018\149\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\149\000\000\018\149\018\149\000\000\018\149\018\149\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\149\000\000\018\149\000\000\018\149\018\149\018\153\000\000\018\149\000\000\018\153\000\000\000\000\018\149\018\153\000\000\018\149\004F\000\000\018\149\000\000\018\149\018\149\000\000\000\000\018\153\018\153\018\153\000\000\018\153\018\153\018\153\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\153\000\000\000\000\000\000\000\000\000\000\000\000\018\153\018\153\005F\000\000\000\000\018\153\000\000\000\000\000\000\000\000\000\000\018\153\000\000\000\000\018\153\000\000\000\000\000\000\000\000\000\000\018\153\018\153\018\153\000\000\000\000\000\000\000\000\000\000\000\000\018\153\000\000\018\153\018\153\000\000\000\000\000\000\000\000\000\000\018\153\000\000\000\000\018\153\000\000\000\000\000\000\000\000\000\000\018\153\000\000\000\000\000\000\018\153\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\153\000\000\018\153\018\153\000\000\018\153\018\153\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\153\000\000\018\153\000\000\018\153\018\153\018i\000\000\018\153\000\000\018i\000\000\000\000\018\153\018i\000\000\018\153\018\153\000\000\018\153\000\000\018\153\018\153\000\000\000\000\018i\018i\018i\000\000\018i\018i\018i\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018i\000\000\000\000\000\000\000\000\000\000\000\000\018i\018i\005F\000\000\000\000\018i\000\000\000\000\000\000\000\000\000\000\018i\000\000\000\000\018i\000\000\000\000\000\000\000\000\000\000\018i\018i\018i\000\000\000\000\000\000\000\000\000\000\000\000\018i\000\000\018i\018i\000\000\000\000\000\000\000\000\000\000\018i\000\000\000\000\018i\000\000\000\000\000\000\000\000\000\000\018i\000\000\000\000\000\000\018i\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018i\000\000\018i\018i\000\000\018i\018i\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018i\000\000\018i\000\000\018i\018i\018m\000\000\018i\000\000\018m\000\000\000\000\018i\018m\000\000\018i\018i\000\000\018i\000\000\018i\018i\000\000\000\000\018m\018m\018m\000\000\018m\018m\018m\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018m\000\000\000\000\000\000\000\000\000\000\000\000\018m\018m\004>\000\000\000\000\018m\000\000\000\000\000\000\000\000\000\000\018m\000\000\000\000\018m\000\000\000\000\000\000\000\000\000\000\018m\018m\018m\000\000\000\000\000\000\000\000\000\000\000\000\018m\000\000\018m\018m\000\000\000\000\000\000\000\000\000\000\018m\000\000\000\000\018m\000\000\000\000\000\000\000\000\000\000\018m\000\000\000\000\000\000\018m\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018m\000\000\018m\018m\000\000\018m\018m\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018m\000\000\018m\000\000\018m\018m\018q\000\000\018m\000\000\018q\000\000\000\000\018m\018q\000\000\018m\004F\000\000\018m\000\000\018m\018m\000\000\000\000\018q\018q\018q\000\000\018q\018q\018q\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018q\000\000\000\000\000\000\000\000\000\000\000\000\018q\018q\004Z\000\000\000\000\018q\000\000\000\000\000\000\000\000\000\000\018q\000\000\000\000\018q\000\000\000\000\000\000\000\000\000\000\018q\018q\018q\000\000\000\000\000\000\000\000\000\000\000\000\018q\000\000\018q\018q\000\000\000\000\000\000\000\000\000\000\018q\000\000\000\000\018q\000\000\000\000\000\000\000\000\000\000\018q\000\000\000\000\000\000\018q\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018q\000\000\018q\018q\000\000\018q\018q\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018q\000\000\018q\000\000\018q\018q\018u\000\000\018q\000\000\018u\000\000\000\000\018q\018u\000\000\018q\018q\000\000\018q\000\000\018q\018q\000\000\000\000\018u\018u\018u\000\000\018u\018u\018u\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018u\000\000\000\000\000\000\000\000\000\000\000\000\018u\018u\005*\000\000\000\000\018u\000\000\000\000\000\000\000\000\000\000\018u\000\000\000\000\018u\000\000\000\000\000\000\000\000\000\000\018u\018u\018u\000\000\000\000\000\000\000\000\000\000\000\000\018u\000\000\018u\018u\000\000\000\000\000\000\000\000\000\000\018u\000\000\000\000\018u\000\000\000\000\000\000\000\000\000\000\018u\000\000\000\000\000\000\018u\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018u\000\000\018u\018u\000\000\018u\018u\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018u\000\000\018u\000\000\018u\018u\018y\000\000\018u\000\000\018y\000\000\000\000\018u\018y\000\000\018u\004F\000\000\018u\000\000\018u\018u\000\000\000\000\018y\018y\018y\000\000\018y\018y\018y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018y\000\000\000\000\000\000\000\000\000\000\000\000\018y\018y\005F\000\000\000\000\018y\000\000\000\000\000\000\000\000\000\000\018y\000\000\000\000\018y\000\000\000\000\000\000\000\000\000\000\018y\018y\018y\000\000\000\000\000\000\000\000\000\000\000\000\018y\000\000\018y\018y\000\000\000\000\000\000\000\000\000\000\018y\000\000\000\000\018y\000\000\000\000\000\000\000\000\000\000\018y\000\000\000\000\000\000\018y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018y\000\000\018y\018y\000\000\018y\018y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018y\000\000\018y\000\000\018y\018y\002\025\000\000\018y\000\000\002\025\000\000\000\000\018y\002\025\000\000\018y\018y\000\000\018y\000\000\018y\018y\000\000\000\000\002\025\002\025\002\025\000\000\002\025\002\025\002\025\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\025\000\000\000\000\000\000\000\000\000\000\000\000\002\025\002\025\002\025\000\000\000\000\002\025\000\000\000\000\000\000\000\000\000\000\002\025\000\000\000\000\002\025\000\000\000\000\000\000\000\000\000\000\002\025\002\025\002\025\000\000\000\000\000\000\000\000\000\000\000\000\002\025\000\000\002\025\002\025\000\000\000\000\000\000\000\000\000\000\002\025\000\000\000\000\002\025\000\000\000\000\000\000\000\000\000\000\002\025\000\000\000\000\000\000\002\025\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\025\000\000\002\025\002\025\000\000\002\025\002\025\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\025\000\000\002\025\000\000\002\025\002\025\017\029\000\000\002\025\000\000\017\029\000\000\000\000\002\025\017\029\000\000\002\025\002\025\000\000\005\206\000\000\002\025\002\025\000\000\000\000\017\029\017\029\017\029\000\000\017\029\017\029\017\029\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\029\000\000\000\000\000\000\000\000\000\000\000\000\017\029\017\029\004>\000\000\000\000\017\029\000\000\000\000\000\000\000\000\000\000\017\029\000\000\000\000\017\029\000\000\000\000\000\000\000\000\000\000\017\029\017\029\017\029\000\000\000\000\000\000\000\000\000\000\000\000\017\029\000\000\017\029\017\029\000\000\000\000\000\000\000\000\000\000\017\029\000\000\000\000\017\029\000\000\000\000\000\000\000\000\000\000\017\029\000\000\000\000\000\000\017\029\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\029\000\000\017\029\017\029\000\000\017\029\017\029\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\029\000\000\017\029\000\000\017\029\017\029\017!\000\000\017\029\000\000\017!\000\000\000\000\017\029\017!\000\000\017\029\004F\000\000\017\029\000\000\017\029\017\029\000\000\000\000\017!\017!\017!\000\000\017!\017!\017!\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017!\000\000\000\000\000\000\000\000\000\000\000\000\017!\017!\004Z\000\000\000\000\017!\000\000\000\000\000\000\000\000\000\000\017!\000\000\000\000\017!\000\000\000\000\000\000\000\000\000\000\017!\017!\017!\000\000\000\000\000\000\000\000\000\000\000\000\017!\000\000\017!\017!\000\000\000\000\000\000\000\000\000\000\017!\000\000\000\000\017!\000\000\000\000\000\000\000\000\000\000\017!\000\000\000\000\000\000\017!\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017!\000\000\017!\017!\000\000\017!\017!\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017!\000\000\017!\000\000\017!\017!\017%\000\000\017!\000\000\017%\000\000\000\000\017!\017%\000\000\017!\017!\000\000\017!\000\000\017!\017!\000\000\000\000\017%\017%\017%\000\000\017%\017%\017%\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017%\000\000\000\000\000\000\000\000\000\000\000\000\017%\017%\005*\000\000\000\000\017%\000\000\000\000\000\000\000\000\000\000\017%\000\000\000\000\017%\000\000\000\000\000\000\000\000\000\000\017%\017%\017%\000\000\000\000\000\000\000\000\000\000\000\000\017%\000\000\017%\017%\000\000\000\000\000\000\000\000\000\000\017%\000\000\000\000\017%\000\000\000\000\000\000\000\000\000\000\017%\000\000\000\000\000\000\017%\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017%\000\000\017%\017%\000\000\017%\017%\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017%\000\000\017%\000\000\017%\017%\017)\000\000\017%\000\000\017)\000\000\000\000\017%\017)\000\000\017%\004F\000\000\017%\000\000\017%\017%\000\000\000\000\017)\017)\017)\000\000\017)\017)\017)\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017)\000\000\000\000\000\000\000\000\000\000\000\000\017)\017)\005F\000\000\000\000\017)\000\000\000\000\000\000\000\000\000\000\017)\000\000\000\000\017)\000\000\000\000\000\000\000\000\000\000\017)\017)\017)\000\000\000\000\000\000\000\000\000\000\000\000\017)\000\000\017)\017)\000\000\000\000\000\000\000\000\000\000\017)\000\000\000\000\017)\000\000\000\000\000\000\000\000\000\000\017)\000\000\000\000\000\000\017)\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017)\000\000\017)\017)\000\000\017)\017)\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017)\000\000\017)\000\000\017)\017)\017-\000\000\017)\000\000\017-\000\000\000\000\017)\017-\000\000\017)\017)\000\000\017)\000\000\017)\017)\000\000\000\000\017-\017-\017-\000\000\017-\017-\017-\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017-\000\000\000\000\000\000\000\000\000\000\000\000\017-\017-\004>\000\000\000\000\017-\000\000\000\000\000\000\000\000\000\000\017-\000\000\000\000\017-\000\000\000\000\000\000\000\000\000\000\017-\017-\017-\000\000\000\000\000\000\000\000\000\000\000\000\017-\000\000\017-\017-\000\000\000\000\000\000\000\000\000\000\017-\000\000\000\000\017-\000\000\000\000\000\000\000\000\000\000\017-\000\000\000\000\000\000\017-\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017-\000\000\017-\017-\000\000\017-\017-\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017-\000\000\017-\000\000\017-\017-\0171\000\000\017-\000\000\0171\000\000\000\000\017-\0171\000\000\017-\004F\000\000\017-\000\000\017-\017-\000\000\000\000\0171\0171\0171\000\000\0171\0171\0171\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0171\000\000\000\000\000\000\000\000\000\000\000\000\0171\0171\004Z\000\000\000\000\0171\000\000\000\000\000\000\000\000\000\000\0171\000\000\000\000\0171\000\000\000\000\000\000\000\000\000\000\0171\0171\0171\000\000\000\000\000\000\000\000\000\000\000\000\0171\000\000\0171\0171\000\000\000\000\000\000\000\000\000\000\0171\000\000\000\000\0171\000\000\000\000\000\000\000\000\000\000\0171\000\000\000\000\000\000\0171\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0171\000\000\0171\0171\000\000\0171\0171\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0171\000\000\0171\000\000\0171\0171\0175\000\000\0171\000\000\0175\000\000\000\000\0171\0175\000\000\0171\0171\000\000\0171\000\000\0171\0171\000\000\000\000\0175\0175\0175\000\000\0175\0175\0175\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0175\000\000\000\000\000\000\000\000\000\000\000\000\0175\0175\005*\000\000\000\000\0175\000\000\000\000\000\000\000\000\000\000\0175\000\000\000\000\0175\000\000\000\000\000\000\000\000\000\000\0175\0175\0175\000\000\000\000\000\000\000\000\000\000\000\000\0175\000\000\0175\0175\000\000\000\000\000\000\000\000\000\000\0175\000\000\000\000\0175\000\000\000\000\000\000\000\000\000\000\0175\000\000\000\000\000\000\0175\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0175\000\000\0175\0175\000\000\0175\0175\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0175\000\000\0175\000\000\0175\0175\0179\000\000\0175\000\000\0179\000\000\000\000\0175\0179\000\000\0175\004F\000\000\0175\000\000\0175\0175\000\000\000\000\0179\0179\0179\000\000\0179\0179\0179\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0179\000\000\000\000\000\000\000\000\000\000\000\000\0179\0179\005F\000\000\000\000\0179\000\000\000\000\000\000\000\000\000\000\0179\000\000\000\000\0179\000\000\000\000\000\000\000\000\000\000\0179\0179\0179\000\000\000\000\000\000\000\000\000\000\000\000\0179\000\000\0179\0179\000\000\000\000\000\000\000\000\000\000\0179\000\000\000\000\0179\000\000\000\000\000\000\000\000\000\000\0179\000\000\000\000\000\000\0179\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0179\000\000\0179\0179\000\000\0179\0179\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0179\000\000\0179\000\000\0179\0179\017=\000\000\0179\000\000\017=\000\000\000\000\0179\017=\000\000\0179\0179\000\000\0179\000\000\0179\0179\000\000\000\000\017=\017=\017=\000\000\017=\017=\017=\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017=\000\000\000\000\000\000\000\000\000\000\000\000\017=\017=\004>\000\000\000\000\017=\000\000\000\000\000\000\000\000\000\000\017=\000\000\000\000\017=\000\000\000\000\000\000\000\000\000\000\017=\017=\017=\000\000\000\000\000\000\000\000\000\000\000\000\017=\000\000\017=\017=\000\000\000\000\000\000\000\000\000\000\017=\000\000\000\000\017=\000\000\000\000\000\000\000\000\000\000\017=\000\000\000\000\000\000\017=\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017=\000\000\017=\017=\000\000\017=\017=\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017=\000\000\017=\000\000\017=\017=\017A\000\000\017=\000\000\017A\000\000\000\000\017=\017A\000\000\017=\004F\000\000\017=\000\000\017=\017=\000\000\000\000\017A\017A\017A\000\000\017A\017A\017A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017A\000\000\000\000\000\000\000\000\000\000\000\000\017A\017A\004Z\000\000\000\000\017A\000\000\000\000\000\000\000\000\000\000\017A\000\000\000\000\017A\000\000\000\000\000\000\000\000\000\000\017A\017A\017A\000\000\000\000\000\000\000\000\000\000\000\000\017A\000\000\017A\017A\000\000\000\000\000\000\000\000\000\000\017A\000\000\000\000\017A\000\000\000\000\000\000\000\000\000\000\017A\000\000\000\000\000\000\017A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017A\000\000\017A\017A\000\000\017A\017A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017A\000\000\017A\000\000\017A\017A\017E\000\000\017A\000\000\017E\000\000\000\000\017A\017E\000\000\017A\017A\000\000\017A\000\000\017A\017A\000\000\000\000\017E\017E\017E\000\000\017E\017E\017E\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017E\000\000\000\000\000\000\000\000\000\000\000\000\017E\017E\005*\000\000\000\000\017E\000\000\000\000\000\000\000\000\000\000\017E\000\000\000\000\017E\000\000\000\000\000\000\000\000\000\000\017E\017E\017E\000\000\000\000\000\000\000\000\000\000\000\000\017E\000\000\017E\017E\000\000\000\000\000\000\000\000\000\000\017E\000\000\000\000\017E\000\000\000\000\000\000\000\000\000\000\017E\000\000\000\000\000\000\017E\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017E\000\000\017E\017E\000\000\017E\017E\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017E\000\000\017E\000\000\017E\017E\017I\000\000\017E\000\000\017I\000\000\000\000\017E\017I\000\000\017E\004F\000\000\017E\000\000\017E\017E\000\000\000\000\017I\017I\017I\000\000\017I\017I\017I\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017I\000\000\000\000\000\000\000\000\000\000\000\000\017I\017I\005F\000\000\000\000\017I\000\000\000\000\000\000\000\000\000\000\017I\000\000\000\000\017I\000\000\000\000\000\000\000\000\000\000\017I\017I\017I\000\000\000\000\000\000\000\000\000\000\000\000\017I\000\000\017I\017I\000\000\000\000\000\000\000\000\000\000\017I\000\000\000\000\017I\000\000\000\000\000\000\000\000\000\000\017I\000\000\000\000\000\000\017I\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017I\000\000\017I\017I\000\000\017I\017I\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017I\000\000\017I\000\000\017I\017I\017M\000\000\017I\000\000\017M\000\000\000\000\017I\017M\000\000\017I\017I\000\000\017I\000\000\017I\017I\000\000\000\000\017M\017M\017M\000\000\017M\017M\017M\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017M\000\000\000\000\000\000\000\000\000\000\000\000\017M\017M\004>\000\000\000\000\017M\000\000\000\000\000\000\000\000\000\000\017M\000\000\000\000\017M\000\000\000\000\000\000\000\000\000\000\017M\017M\017M\000\000\000\000\000\000\000\000\000\000\000\000\017M\000\000\017M\017M\000\000\000\000\000\000\000\000\000\000\017M\000\000\000\000\017M\000\000\000\000\000\000\000\000\000\000\017M\000\000\000\000\000\000\017M\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017M\000\000\017M\017M\000\000\017M\017M\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017M\000\000\017M\000\000\017M\017M\017Q\000\000\017M\000\000\017Q\000\000\000\000\017M\017Q\000\000\017M\004F\000\000\017M\000\000\017M\017M\000\000\000\000\017Q\017Q\017Q\000\000\017Q\017Q\017Q\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017Q\000\000\000\000\000\000\000\000\000\000\000\000\017Q\017Q\004Z\000\000\000\000\017Q\000\000\000\000\000\000\000\000\000\000\017Q\000\000\000\000\017Q\000\000\000\000\000\000\000\000\000\000\017Q\017Q\017Q\000\000\000\000\000\000\000\000\000\000\000\000\017Q\000\000\017Q\017Q\000\000\000\000\000\000\000\000\000\000\017Q\000\000\000\000\017Q\000\000\000\000\000\000\000\000\000\000\017Q\000\000\000\000\000\000\017Q\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017Q\000\000\017Q\017Q\000\000\017Q\017Q\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017Q\000\000\017Q\000\000\017Q\017Q\017U\000\000\017Q\000\000\017U\000\000\000\000\017Q\017U\000\000\017Q\017Q\000\000\017Q\000\000\017Q\017Q\000\000\000\000\017U\017U\017U\000\000\017U\017U\017U\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017U\000\000\000\000\000\000\000\000\000\000\000\000\017U\017U\005*\000\000\000\000\017U\000\000\000\000\000\000\000\000\000\000\017U\000\000\000\000\017U\000\000\000\000\000\000\000\000\000\000\017U\017U\017U\000\000\000\000\000\000\000\000\000\000\000\000\017U\000\000\017U\017U\000\000\000\000\000\000\000\000\000\000\017U\000\000\000\000\017U\000\000\000\000\000\000\000\000\000\000\017U\000\000\000\000\000\000\017U\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017U\000\000\017U\017U\000\000\017U\017U\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017U\000\000\017U\000\000\017U\017U\017Y\000\000\017U\000\000\017Y\000\000\000\000\017U\017Y\000\000\017U\004F\000\000\017U\000\000\017U\017U\000\000\000\000\017Y\017Y\017Y\000\000\017Y\017Y\017Y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017Y\000\000\000\000\000\000\000\000\000\000\000\000\017Y\017Y\005F\000\000\000\000\017Y\000\000\000\000\000\000\000\000\000\000\017Y\000\000\000\000\017Y\000\000\000\000\000\000\000\000\000\000\017Y\017Y\017Y\000\000\000\000\000\000\000\000\000\000\000\000\017Y\000\000\017Y\017Y\000\000\000\000\000\000\000\000\000\000\017Y\000\000\000\000\017Y\000\000\000\000\000\000\000\000\000\000\017Y\000\000\000\000\000\000\017Y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017Y\000\000\017Y\017Y\000\000\017Y\017Y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017Y\000\000\017Y\000\000\017Y\017Y\017]\000\000\017Y\000\000\017]\000\000\000\000\017Y\017]\000\000\017Y\017Y\000\000\017Y\000\000\017Y\017Y\000\000\000\000\017]\017]\017]\000\000\017]\017]\017]\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017]\000\000\000\000\000\000\000\000\000\000\000\000\017]\017]\004>\000\000\000\000\017]\000\000\000\000\000\000\000\000\000\000\017]\000\000\000\000\017]\000\000\000\000\000\000\000\000\000\000\017]\017]\017]\000\000\000\000\000\000\000\000\000\000\000\000\017]\000\000\017]\017]\000\000\000\000\000\000\000\000\000\000\017]\000\000\000\000\017]\000\000\000\000\000\000\000\000\000\000\017]\000\000\000\000\000\000\017]\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017]\000\000\017]\017]\000\000\017]\017]\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017]\000\000\017]\000\000\017]\017]\017a\000\000\017]\000\000\017a\000\000\000\000\017]\017a\000\000\017]\004F\000\000\017]\000\000\017]\017]\000\000\000\000\017a\017a\017a\000\000\017a\017a\017a\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017a\000\000\000\000\000\000\000\000\000\000\000\000\017a\017a\004Z\000\000\000\000\017a\000\000\000\000\000\000\000\000\000\000\017a\000\000\000\000\017a\000\000\000\000\000\000\000\000\000\000\017a\017a\017a\000\000\000\000\000\000\000\000\000\000\000\000\017a\000\000\017a\017a\000\000\000\000\000\000\000\000\000\000\017a\000\000\000\000\017a\000\000\000\000\000\000\000\000\000\000\017a\000\000\000\000\000\000\017a\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017a\000\000\017a\017a\000\000\017a\017a\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017a\000\000\017a\000\000\017a\017a\017e\000\000\017a\000\000\017e\000\000\000\000\017a\017e\000\000\017a\017a\000\000\017a\000\000\017a\017a\000\000\000\000\017e\017e\017e\000\000\017e\017e\017e\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017e\000\000\000\000\000\000\000\000\000\000\000\000\017e\017e\005*\000\000\000\000\017e\000\000\000\000\000\000\000\000\000\000\017e\000\000\000\000\017e\000\000\000\000\000\000\000\000\000\000\017e\017e\017e\000\000\000\000\000\000\000\000\000\000\000\000\017e\000\000\017e\017e\000\000\000\000\000\000\000\000\000\000\017e\000\000\000\000\017e\000\000\000\000\000\000\000\000\000\000\017e\000\000\000\000\000\000\017e\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017e\000\000\017e\017e\000\000\017e\017e\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017e\000\000\017e\000\000\017e\017e\017i\000\000\017e\000\000\017i\000\000\000\000\017e\017i\000\000\017e\004F\000\000\017e\000\000\017e\017e\000\000\000\000\017i\017i\017i\000\000\017i\017i\017i\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017i\000\000\000\000\000\000\000\000\000\000\000\000\017i\017i\005F\000\000\000\000\017i\000\000\000\000\000\000\000\000\000\000\017i\000\000\000\000\017i\000\000\000\000\000\000\000\000\000\000\017i\017i\017i\000\000\000\000\000\000\000\000\000\000\000\000\017i\000\000\017i\017i\000\000\000\000\000\000\000\000\000\000\017i\000\000\000\000\017i\000\000\000\000\000\000\000\000\000\000\017i\000\000\000\000\000\000\017i\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017i\000\000\017i\017i\000\000\017i\017i\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017i\000\000\017i\000\000\017i\017i\017m\000\000\017i\000\000\017m\000\000\000\000\017i\017m\000\000\017i\017i\000\000\017i\000\000\017i\017i\000\000\000\000\017m\017m\017m\000\000\017m\017m\017m\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017m\000\000\000\000\000\000\000\000\000\000\000\000\017m\017m\004>\000\000\000\000\017m\000\000\000\000\000\000\000\000\000\000\017m\000\000\000\000\017m\000\000\000\000\000\000\000\000\000\000\017m\017m\017m\000\000\000\000\000\000\000\000\000\000\000\000\017m\000\000\017m\017m\000\000\000\000\000\000\000\000\000\000\017m\000\000\000\000\017m\000\000\000\000\000\000\000\000\000\000\017m\000\000\000\000\000\000\017m\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017m\000\000\017m\017m\000\000\017m\017m\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017m\000\000\017m\000\000\017m\017m\017q\000\000\017m\000\000\017q\000\000\000\000\017m\017q\000\000\017m\004F\000\000\017m\000\000\017m\017m\000\000\000\000\017q\017q\017q\000\000\017q\017q\017q\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017q\000\000\000\000\000\000\000\000\000\000\000\000\017q\017q\004Z\000\000\000\000\017q\000\000\000\000\000\000\000\000\000\000\017q\000\000\000\000\017q\000\000\000\000\000\000\000\000\000\000\017q\017q\017q\000\000\000\000\000\000\000\000\000\000\000\000\017q\000\000\017q\017q\000\000\000\000\000\000\000\000\000\000\017q\000\000\000\000\017q\000\000\000\000\000\000\000\000\000\000\017q\000\000\000\000\000\000\017q\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017q\000\000\017q\017q\000\000\017q\017q\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017q\000\000\017q\000\000\017q\017q\017u\000\000\017q\000\000\017u\000\000\000\000\017q\017u\000\000\017q\017q\000\000\017q\000\000\017q\017q\000\000\000\000\017u\017u\017u\000\000\017u\017u\017u\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017u\000\000\000\000\000\000\000\000\000\000\000\000\017u\017u\005*\000\000\000\000\017u\000\000\000\000\000\000\000\000\000\000\017u\000\000\000\000\017u\000\000\000\000\000\000\000\000\000\000\017u\017u\017u\000\000\000\000\000\000\000\000\000\000\000\000\017u\000\000\017u\017u\000\000\000\000\000\000\000\000\000\000\017u\000\000\000\000\017u\000\000\000\000\000\000\000\000\000\000\017u\000\000\000\000\000\000\017u\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017u\000\000\017u\017u\000\000\017u\017u\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017u\000\000\017u\000\000\017u\017u\017y\000\000\017u\000\000\017y\000\000\000\000\017u\017y\000\000\017u\004F\000\000\017u\000\000\017u\017u\000\000\000\000\017y\017y\017y\000\000\017y\017y\017y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017y\000\000\000\000\000\000\000\000\000\000\000\000\017y\017y\005F\000\000\000\000\017y\000\000\000\000\000\000\000\000\000\000\017y\000\000\000\000\017y\000\000\000\000\000\000\000\000\000\000\017y\017y\017y\000\000\000\000\000\000\000\000\000\000\000\000\017y\000\000\017y\017y\000\000\000\000\000\000\000\000\000\000\017y\000\000\000\000\017y\000\000\000\000\000\000\000\000\000\000\017y\000\000\000\000\000\000\017y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017y\000\000\017y\017y\000\000\017y\017y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017y\000\000\017y\000\000\017y\017y\017}\000\000\017y\000\000\017}\000\000\000\000\017y\017}\000\000\017y\017y\000\000\017y\000\000\017y\017y\000\000\000\000\017}\017}\017}\000\000\017}\017}\017}\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017}\000\000\000\000\000\000\000\000\000\000\000\000\017}\017}\004>\000\000\000\000\017}\000\000\000\000\000\000\000\000\000\000\017}\000\000\000\000\017}\000\000\000\000\000\000\000\000\000\000\017}\017}\017}\000\000\000\000\000\000\000\000\000\000\000\000\017}\000\000\017}\017}\000\000\000\000\000\000\000\000\000\000\017}\000\000\000\000\017}\000\000\000\000\000\000\000\000\000\000\017}\000\000\000\000\000\000\017}\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017}\000\000\017}\017}\000\000\017}\017}\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017}\000\000\017}\000\000\017}\017}\017\129\000\000\017}\000\000\017\129\000\000\000\000\017}\017\129\000\000\017}\004F\000\000\017}\000\000\017}\017}\000\000\000\000\017\129\017\129\017\129\000\000\017\129\017\129\017\129\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\129\000\000\000\000\000\000\000\000\000\000\000\000\017\129\017\129\004Z\000\000\000\000\017\129\000\000\000\000\000\000\000\000\000\000\017\129\000\000\000\000\017\129\000\000\000\000\000\000\000\000\000\000\017\129\017\129\017\129\000\000\000\000\000\000\000\000\000\000\000\000\017\129\000\000\017\129\017\129\000\000\000\000\000\000\000\000\000\000\017\129\000\000\000\000\017\129\000\000\000\000\000\000\000\000\000\000\017\129\000\000\000\000\000\000\017\129\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\129\000\000\017\129\017\129\000\000\017\129\017\129\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\129\000\000\017\129\000\000\017\129\017\129\017\133\000\000\017\129\000\000\017\133\000\000\000\000\017\129\017\133\000\000\017\129\017\129\000\000\017\129\000\000\017\129\017\129\000\000\000\000\017\133\017\133\017\133\000\000\017\133\017\133\017\133\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\133\000\000\000\000\000\000\000\000\000\000\000\000\017\133\017\133\005*\000\000\000\000\017\133\000\000\000\000\000\000\000\000\000\000\017\133\000\000\000\000\017\133\000\000\000\000\000\000\000\000\000\000\017\133\017\133\017\133\000\000\000\000\000\000\000\000\000\000\000\000\017\133\000\000\017\133\017\133\000\000\000\000\000\000\000\000\000\000\017\133\000\000\000\000\017\133\000\000\000\000\000\000\000\000\000\000\017\133\000\000\000\000\000\000\017\133\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\133\000\000\017\133\017\133\000\000\017\133\017\133\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\133\000\000\017\133\000\000\017\133\017\133\017\137\000\000\017\133\000\000\017\137\000\000\000\000\017\133\017\137\000\000\017\133\004F\000\000\017\133\000\000\017\133\017\133\000\000\000\000\017\137\017\137\017\137\000\000\017\137\017\137\017\137\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\137\000\000\000\000\000\000\000\000\000\000\000\000\017\137\017\137\005F\000\000\000\000\017\137\000\000\000\000\000\000\000\000\000\000\017\137\000\000\000\000\017\137\000\000\000\000\000\000\000\000\000\000\017\137\017\137\017\137\000\000\000\000\000\000\000\000\000\000\000\000\017\137\000\000\017\137\017\137\000\000\000\000\000\000\000\000\000\000\017\137\000\000\000\000\017\137\000\000\000\000\000\000\000\000\000\000\017\137\000\000\000\000\000\000\017\137\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\137\000\000\017\137\017\137\000\000\017\137\017\137\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\137\000\000\017\137\000\000\017\137\017\137\017\141\000\000\017\137\000\000\017\141\000\000\000\000\017\137\017\141\000\000\017\137\017\137\000\000\017\137\000\000\017\137\017\137\000\000\000\000\017\141\017\141\017\141\000\000\017\141\017\141\017\141\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\141\000\000\000\000\000\000\000\000\000\000\000\000\017\141\017\141\004>\000\000\000\000\017\141\000\000\000\000\000\000\000\000\000\000\017\141\000\000\000\000\017\141\000\000\000\000\000\000\000\000\000\000\017\141\017\141\017\141\000\000\000\000\000\000\000\000\000\000\000\000\017\141\000\000\017\141\017\141\000\000\000\000\000\000\000\000\000\000\017\141\000\000\000\000\017\141\000\000\000\000\000\000\000\000\000\000\017\141\000\000\000\000\000\000\017\141\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\141\000\000\017\141\017\141\000\000\017\141\017\141\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\141\000\000\017\141\000\000\017\141\017\141\017\145\000\000\017\141\000\000\017\145\000\000\000\000\017\141\017\145\000\000\017\141\004F\000\000\017\141\000\000\017\141\017\141\000\000\000\000\017\145\017\145\017\145\000\000\017\145\017\145\017\145\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\145\000\000\000\000\000\000\000\000\000\000\000\000\017\145\017\145\004Z\000\000\000\000\017\145\000\000\000\000\000\000\000\000\000\000\017\145\000\000\000\000\017\145\000\000\000\000\000\000\000\000\000\000\017\145\017\145\017\145\000\000\000\000\000\000\000\000\000\000\000\000\017\145\000\000\017\145\017\145\000\000\000\000\000\000\000\000\000\000\017\145\000\000\000\000\017\145\000\000\000\000\000\000\000\000\000\000\017\145\000\000\000\000\000\000\017\145\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\145\000\000\017\145\017\145\000\000\017\145\017\145\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\145\000\000\017\145\000\000\017\145\017\145\017\149\000\000\017\145\000\000\017\149\000\000\000\000\017\145\017\149\000\000\017\145\017\145\000\000\017\145\000\000\017\145\017\145\000\000\000\000\017\149\017\149\017\149\000\000\017\149\017\149\017\149\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\149\000\000\000\000\000\000\000\000\000\000\000\000\017\149\017\149\005*\000\000\000\000\017\149\000\000\000\000\000\000\000\000\000\000\017\149\000\000\000\000\017\149\000\000\000\000\000\000\000\000\000\000\017\149\017\149\017\149\000\000\000\000\000\000\000\000\000\000\000\000\017\149\000\000\017\149\017\149\000\000\000\000\000\000\000\000\000\000\017\149\000\000\000\000\017\149\000\000\000\000\000\000\000\000\000\000\017\149\000\000\000\000\000\000\017\149\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\149\000\000\017\149\017\149\000\000\017\149\017\149\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\149\000\000\017\149\000\000\017\149\017\149\017\153\000\000\017\149\000\000\017\153\000\000\000\000\017\149\017\153\000\000\017\149\004F\000\000\017\149\000\000\017\149\017\149\000\000\000\000\017\153\017\153\017\153\000\000\017\153\017\153\017\153\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\153\000\000\000\000\000\000\000\000\000\000\000\000\017\153\017\153\005F\000\000\000\000\017\153\000\000\000\000\000\000\000\000\000\000\017\153\000\000\000\000\017\153\000\000\000\000\000\000\000\000\000\000\017\153\017\153\017\153\000\000\000\000\000\000\000\000\000\000\000\000\017\153\000\000\017\153\017\153\000\000\000\000\000\000\000\000\000\000\017\153\000\000\000\000\017\153\000\000\000\000\000\000\000\000\000\000\017\153\000\000\000\000\000\000\017\153\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\153\000\000\017\153\017\153\000\000\017\153\017\153\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\153\000\000\017\153\000\000\017\153\017\153\018U\000\000\017\153\000\000\018U\000\000\000\000\017\153\018U\000\000\017\153\017\153\000\000\017\153\000\000\017\153\017\153\000\000\000\000\018U\018U\018U\000\000\018U\018U\018U\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018U\000\000\000\000\000\000\000\000\000\000\000\000\018U\018U\005*\000\000\000\000\018U\000\000\000\000\000\000\000\000\000\000\018U\000\000\000\000\018U\000\000\000\000\000\000\000\000\000\000\018U\018U\018U\000\000\000\000\000\000\000\000\000\000\000\000\018U\000\000\018U\018U\000\000\000\000\000\000\000\000\000\000\018U\000\000\000\000\018U\000\000\000\000\000\000\000\000\000\000\018U\000\000\000\000\000\000\018U\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018U\000\000\018U\018U\000\000\018U\018U\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018U\000\000\018U\000\000\018U\018U\018Y\000\000\018U\000\000\018Y\000\000\000\000\018U\018Y\000\000\018U\004F\000\000\018U\000\000\018U\018U\000\000\000\000\018Y\018Y\018Y\000\000\018Y\018Y\018Y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018Y\000\000\000\000\000\000\000\000\000\000\000\000\018Y\018Y\005F\000\000\000\000\018Y\000\000\000\000\000\000\000\000\000\000\018Y\000\000\000\000\018Y\000\000\000\000\000\000\000\000\000\000\018Y\018Y\018Y\000\000\000\000\000\000\000\000\000\000\000\000\018Y\000\000\018Y\018Y\000\000\000\000\000\000\000\000\000\000\018Y\000\000\000\000\018Y\000\000\000\000\000\000\000\000\000\000\018Y\000\000\000\000\000\000\018Y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018Y\000\000\018Y\018Y\000\000\018Y\018Y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018Y\000\000\018Y\000\000\018Y\018Y\018E\000\000\018Y\000\000\018E\000\000\000\000\018Y\018E\000\000\018Y\018Y\000\000\018Y\000\000\018Y\018Y\000\000\000\000\018E\018E\018E\000\000\018E\018E\018E\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018E\000\000\000\000\000\000\000\000\000\000\000\000\018E\018E\005*\000\000\000\000\018E\000\000\000\000\000\000\000\000\000\000\018E\000\000\000\000\018E\000\000\000\000\000\000\000\000\000\000\018E\018E\018E\000\000\000\000\000\000\000\000\000\000\000\000\018E\000\000\018E\018E\000\000\000\000\000\000\000\000\000\000\018E\000\000\000\000\018E\000\000\000\000\000\000\000\000\000\000\018E\000\000\000\000\000\000\018E\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018E\000\000\018E\018E\000\000\018E\018E\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018E\000\000\018E\000\000\018E\018E\018I\000\000\018E\000\000\018I\000\000\000\000\018E\018I\000\000\018E\004F\000\000\018E\000\000\018E\018E\000\000\000\000\018I\018I\018I\000\000\018I\018I\018I\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018I\000\000\000\000\000\000\000\000\000\000\000\000\018I\018I\005F\000\000\000\000\018I\000\000\000\000\000\000\000\000\000\000\018I\000\000\000\000\018I\000\000\000\000\000\000\000\000\000\000\018I\018I\018I\000\000\000\000\000\000\000\000\000\000\000\000\018I\000\000\018I\018I\000\000\000\000\000\000\000\000\000\000\018I\000\000\000\000\018I\000\000\000\000\000\000\000\000\000\000\018I\000\000\000\000\000\000\018I\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018I\000\000\018I\018I\000\000\018I\018I\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018I\000\000\018I\000\000\018I\018I\018\029\000\000\018I\000\000\018\029\000\000\000\000\018I\018\029\000\000\018I\018I\000\000\018I\000\000\018I\018I\000\000\000\000\018\029\018\029\018\029\000\000\018\029\018\029\018\029\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\029\000\000\000\000\000\000\000\000\000\000\000\000\018\029\018\029\004>\000\000\000\000\018\029\000\000\000\000\000\000\000\000\000\000\018\029\000\000\000\000\018\029\000\000\000\000\000\000\000\000\000\000\018\029\018\029\018\029\000\000\000\000\000\000\000\000\000\000\000\000\018\029\000\000\018\029\018\029\000\000\000\000\000\000\000\000\000\000\018\029\000\000\000\000\018\029\000\000\000\000\000\000\000\000\000\000\018\029\000\000\000\000\000\000\018\029\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\029\000\000\018\029\018\029\000\000\018\029\018\029\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\029\000\000\018\029\000\000\018\029\018\029\018!\000\000\018\029\000\000\018!\000\000\000\000\018\029\018!\000\000\018\029\004F\000\000\018\029\000\000\018\029\018\029\000\000\000\000\018!\018!\018!\000\000\018!\018!\018!\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018!\000\000\000\000\000\000\000\000\000\000\000\000\018!\018!\004Z\000\000\000\000\018!\000\000\000\000\000\000\000\000\000\000\018!\000\000\000\000\018!\000\000\000\000\000\000\000\000\000\000\018!\018!\018!\000\000\000\000\000\000\000\000\000\000\000\000\018!\000\000\018!\018!\000\000\000\000\000\000\000\000\000\000\018!\000\000\000\000\018!\000\000\000\000\000\000\000\000\000\000\018!\000\000\000\000\000\000\018!\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018!\000\000\018!\018!\000\000\018!\018!\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018!\000\000\018!\000\000\018!\018!\018%\000\000\018!\000\000\018%\000\000\000\000\018!\018%\000\000\018!\018!\000\000\018!\000\000\018!\018!\000\000\000\000\018%\018%\018%\000\000\018%\018%\018%\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018%\000\000\000\000\000\000\000\000\000\000\000\000\018%\018%\005*\000\000\000\000\018%\000\000\000\000\000\000\000\000\000\000\018%\000\000\000\000\018%\000\000\000\000\000\000\000\000\000\000\018%\018%\018%\000\000\000\000\000\000\000\000\000\000\000\000\018%\000\000\018%\018%\000\000\000\000\000\000\000\000\000\000\018%\000\000\000\000\018%\000\000\000\000\000\000\000\000\000\000\018%\000\000\000\000\000\000\018%\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018%\000\000\018%\018%\000\000\018%\018%\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018%\000\000\018%\000\000\018%\018%\018)\000\000\018%\000\000\018)\000\000\000\000\018%\018)\000\000\018%\004F\000\000\018%\000\000\018%\018%\000\000\000\000\018)\018)\018)\000\000\018)\018)\018)\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018)\000\000\000\000\000\000\000\000\000\000\000\000\018)\018)\005F\000\000\000\000\018)\000\000\000\000\000\000\000\000\000\000\018)\000\000\000\000\018)\000\000\000\000\000\000\000\000\000\000\018)\018)\018)\000\000\000\000\000\000\000\000\000\000\000\000\018)\000\000\018)\018)\000\000\000\000\000\000\000\000\000\000\018)\000\000\000\000\018)\000\000\000\000\000\000\000\000\000\000\018)\000\000\000\000\000\000\018)\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018)\000\000\018)\018)\000\000\018)\018)\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018)\000\000\018)\000\000\018)\018)\018-\000\000\018)\000\000\018-\000\000\000\000\018)\018-\000\000\018)\018)\000\000\018)\000\000\018)\018)\000\000\000\000\018-\018-\018-\000\000\018-\018-\018-\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018-\000\000\000\000\000\000\000\000\000\000\000\000\018-\018-\004>\000\000\000\000\018-\000\000\000\000\000\000\000\000\000\000\018-\000\000\000\000\018-\000\000\000\000\000\000\000\000\000\000\018-\018-\018-\000\000\000\000\000\000\000\000\000\000\000\000\018-\000\000\018-\018-\000\000\000\000\000\000\000\000\000\000\018-\000\000\000\000\018-\000\000\000\000\000\000\000\000\000\000\018-\000\000\000\000\000\000\018-\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018-\000\000\018-\018-\000\000\018-\018-\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018-\000\000\018-\000\000\018-\018-\0181\000\000\018-\000\000\0181\000\000\000\000\018-\0181\000\000\018-\004F\000\000\018-\000\000\018-\018-\000\000\000\000\0181\0181\0181\000\000\0181\0181\0181\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0181\000\000\000\000\000\000\000\000\000\000\000\000\0181\0181\004Z\000\000\000\000\0181\000\000\000\000\000\000\000\000\000\000\0181\000\000\000\000\0181\000\000\000\000\000\000\000\000\000\000\0181\0181\0181\000\000\000\000\000\000\000\000\000\000\000\000\0181\000\000\0181\0181\000\000\000\000\000\000\000\000\000\000\0181\000\000\000\000\0181\000\000\000\000\000\000\000\000\000\000\0181\000\000\000\000\000\000\0181\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0181\000\000\0181\0181\000\000\0181\0181\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0181\000\000\0181\000\000\0181\0181\0185\000\000\0181\000\000\0185\000\000\000\000\0181\0185\000\000\0181\0181\000\000\0181\000\000\0181\0181\000\000\000\000\0185\0185\0185\000\000\0185\0185\0185\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0185\000\000\000\000\000\000\000\000\000\000\000\000\0185\0185\005*\000\000\000\000\0185\000\000\000\000\000\000\000\000\000\000\0185\000\000\000\000\0185\000\000\000\000\000\000\000\000\000\000\0185\0185\0185\000\000\000\000\000\000\000\000\000\000\000\000\0185\000\000\0185\0185\000\000\000\000\000\000\000\000\000\000\0185\000\000\000\000\0185\000\000\000\000\000\000\000\000\000\000\0185\000\000\000\000\000\000\0185\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0185\000\000\0185\0185\000\000\0185\0185\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0185\000\000\0185\000\000\0185\0185\0189\000\000\0185\000\000\0189\000\000\000\000\0185\0189\000\000\0185\004F\000\000\0185\000\000\0185\0185\000\000\000\000\0189\0189\0189\000\000\0189\0189\0189\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0189\000\000\000\000\000\000\000\000\000\000\000\000\0189\0189\005F\000\000\000\000\0189\000\000\000\000\000\000\000\000\000\000\0189\000\000\000\000\0189\000\000\000\000\000\000\000\000\000\000\0189\0189\0189\000\000\000\000\000\000\000\000\000\000\000\000\0189\000\000\0189\0189\000\000\000\000\000\000\000\000\000\000\0189\000\000\000\000\0189\000\000\000\000\000\000\000\000\000\000\0189\000\000\000\000\000\000\0189\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0189\000\000\0189\0189\000\000\0189\0189\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0189\000\000\0189\000\000\0189\0189\017\157\000\000\0189\000\000\017\157\000\000\000\000\0189\017\157\000\000\0189\0189\000\000\0189\000\000\0189\0189\000\000\000\000\017\157\017\157\017\157\000\000\017\157\017\157\017\157\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\157\000\000\000\000\000\000\000\000\000\000\000\000\017\157\017\157\004>\000\000\000\000\017\157\000\000\000\000\000\000\000\000\000\000\017\157\000\000\000\000\017\157\000\000\000\000\000\000\000\000\000\000\017\157\017\157\017\157\000\000\000\000\000\000\000\000\000\000\000\000\017\157\000\000\017\157\017\157\000\000\000\000\000\000\000\000\000\000\017\157\000\000\000\000\017\157\000\000\000\000\000\000\000\000\000\000\017\157\000\000\000\000\000\000\017\157\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\157\000\000\017\157\017\157\000\000\017\157\017\157\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\157\000\000\017\157\000\000\017\157\017\157\017\161\000\000\017\157\000\000\017\161\000\000\000\000\017\157\017\161\000\000\017\157\004F\000\000\017\157\000\000\017\157\017\157\000\000\000\000\017\161\017\161\017\161\000\000\017\161\017\161\017\161\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\161\000\000\000\000\000\000\000\000\000\000\000\000\017\161\017\161\004Z\000\000\000\000\017\161\000\000\000\000\000\000\000\000\000\000\017\161\000\000\000\000\017\161\000\000\000\000\000\000\000\000\000\000\017\161\017\161\017\161\000\000\000\000\000\000\000\000\000\000\000\000\017\161\000\000\017\161\017\161\000\000\000\000\000\000\000\000\000\000\017\161\000\000\000\000\017\161\000\000\000\000\000\000\000\000\000\000\017\161\000\000\000\000\000\000\017\161\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\161\000\000\017\161\017\161\000\000\017\161\017\161\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\161\000\000\017\161\000\000\017\161\017\161\017\165\000\000\017\161\000\000\017\165\000\000\000\000\017\161\017\165\000\000\017\161\017\161\000\000\017\161\000\000\017\161\017\161\000\000\000\000\017\165\017\165\017\165\000\000\017\165\017\165\017\165\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\165\000\000\000\000\000\000\000\000\000\000\000\000\017\165\017\165\005*\000\000\000\000\017\165\000\000\000\000\000\000\000\000\000\000\017\165\000\000\000\000\017\165\000\000\000\000\000\000\000\000\000\000\017\165\017\165\017\165\000\000\000\000\000\000\000\000\000\000\000\000\017\165\000\000\017\165\017\165\000\000\000\000\000\000\000\000\000\000\017\165\000\000\000\000\017\165\000\000\000\000\000\000\000\000\000\000\017\165\000\000\000\000\000\000\017\165\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\165\000\000\017\165\017\165\000\000\017\165\017\165\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\165\000\000\017\165\000\000\017\165\017\165\017\169\000\000\017\165\000\000\017\169\000\000\000\000\017\165\017\169\000\000\017\165\004F\000\000\017\165\000\000\017\165\017\165\000\000\000\000\017\169\017\169\017\169\000\000\017\169\017\169\017\169\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\169\000\000\000\000\000\000\000\000\000\000\000\000\017\169\017\169\005F\000\000\000\000\017\169\000\000\000\000\000\000\000\000\000\000\017\169\000\000\000\000\017\169\000\000\000\000\000\000\000\000\000\000\017\169\017\169\017\169\000\000\000\000\000\000\000\000\000\000\000\000\017\169\000\000\017\169\017\169\000\000\000\000\000\000\000\000\000\000\017\169\000\000\000\000\017\169\000\000\000\000\000\000\000\000\000\000\017\169\000\000\000\000\000\000\017\169\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\169\000\000\017\169\017\169\000\000\017\169\017\169\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\169\000\000\017\169\000\000\017\169\017\169\017\173\000\000\017\169\000\000\017\173\000\000\000\000\017\169\017\173\000\000\017\169\017\169\000\000\017\169\000\000\017\169\017\169\000\000\000\000\017\173\017\173\017\173\000\000\017\173\017\173\017\173\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\173\000\000\000\000\000\000\000\000\000\000\000\000\017\173\017\173\004>\000\000\000\000\017\173\000\000\000\000\000\000\000\000\000\000\017\173\000\000\000\000\017\173\000\000\000\000\000\000\000\000\000\000\017\173\017\173\017\173\000\000\000\000\000\000\000\000\000\000\000\000\017\173\000\000\017\173\017\173\000\000\000\000\000\000\000\000\000\000\017\173\000\000\000\000\017\173\000\000\000\000\000\000\000\000\000\000\017\173\000\000\000\000\000\000\017\173\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\173\000\000\017\173\017\173\000\000\017\173\017\173\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\173\000\000\017\173\000\000\017\173\017\173\017\177\000\000\017\173\000\000\017\177\000\000\000\000\017\173\017\177\000\000\017\173\004F\000\000\017\173\000\000\017\173\017\173\000\000\000\000\017\177\017\177\017\177\000\000\017\177\017\177\017\177\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\177\000\000\000\000\000\000\000\000\000\000\000\000\017\177\017\177\004Z\000\000\000\000\017\177\000\000\000\000\000\000\000\000\000\000\017\177\000\000\000\000\017\177\000\000\000\000\000\000\000\000\000\000\017\177\017\177\017\177\000\000\000\000\000\000\000\000\000\000\000\000\017\177\000\000\017\177\017\177\000\000\000\000\000\000\000\000\000\000\017\177\000\000\000\000\017\177\000\000\000\000\000\000\000\000\000\000\017\177\000\000\000\000\000\000\017\177\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\177\000\000\017\177\017\177\000\000\017\177\017\177\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\177\000\000\017\177\000\000\017\177\017\177\017\181\000\000\017\177\000\000\017\181\000\000\000\000\017\177\017\181\000\000\017\177\017\177\000\000\017\177\000\000\017\177\017\177\000\000\000\000\017\181\017\181\017\181\000\000\017\181\017\181\017\181\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\181\000\000\000\000\000\000\000\000\000\000\000\000\017\181\017\181\005*\000\000\000\000\017\181\000\000\000\000\000\000\000\000\000\000\017\181\000\000\000\000\017\181\000\000\000\000\000\000\000\000\000\000\017\181\017\181\017\181\000\000\000\000\000\000\000\000\000\000\000\000\017\181\000\000\017\181\017\181\000\000\000\000\000\000\000\000\000\000\017\181\000\000\000\000\017\181\000\000\000\000\000\000\000\000\000\000\017\181\000\000\000\000\000\000\017\181\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\181\000\000\017\181\017\181\000\000\017\181\017\181\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\181\000\000\017\181\000\000\017\181\017\181\017\185\000\000\017\181\000\000\017\185\000\000\000\000\017\181\017\185\000\000\017\181\004F\000\000\017\181\000\000\017\181\017\181\000\000\000\000\017\185\017\185\017\185\000\000\017\185\017\185\017\185\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\185\000\000\000\000\000\000\000\000\000\000\000\000\017\185\017\185\005F\000\000\000\000\017\185\000\000\000\000\000\000\000\000\000\000\017\185\000\000\000\000\017\185\000\000\000\000\000\000\000\000\000\000\017\185\017\185\017\185\000\000\000\000\000\000\000\000\000\000\000\000\017\185\000\000\017\185\017\185\000\000\000\000\000\000\000\000\000\000\017\185\000\000\000\000\017\185\000\000\000\000\000\000\000\000\000\000\017\185\000\000\000\000\000\000\017\185\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\185\000\000\017\185\017\185\000\000\017\185\017\185\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\185\000\000\017\185\000\000\017\185\017\185\017\189\000\000\017\185\000\000\017\189\000\000\000\000\017\185\017\189\000\000\017\185\017\185\000\000\017\185\000\000\017\185\017\185\000\000\000\000\017\189\017\189\017\189\000\000\017\189\017\189\017\189\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\189\000\000\000\000\000\000\000\000\000\000\000\000\017\189\017\189\004>\000\000\000\000\017\189\000\000\000\000\000\000\000\000\000\000\017\189\000\000\000\000\017\189\000\000\000\000\000\000\000\000\000\000\017\189\017\189\017\189\000\000\000\000\000\000\000\000\000\000\000\000\017\189\000\000\017\189\017\189\000\000\000\000\000\000\000\000\000\000\017\189\000\000\000\000\017\189\000\000\000\000\000\000\000\000\000\000\017\189\000\000\000\000\000\000\017\189\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\189\000\000\017\189\017\189\000\000\017\189\017\189\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\189\000\000\017\189\000\000\017\189\017\189\017\193\000\000\017\189\000\000\017\193\000\000\000\000\017\189\017\193\000\000\017\189\004F\000\000\017\189\000\000\017\189\017\189\000\000\000\000\017\193\017\193\017\193\000\000\017\193\017\193\017\193\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\193\000\000\000\000\000\000\000\000\000\000\000\000\017\193\017\193\004Z\000\000\000\000\017\193\000\000\000\000\000\000\000\000\000\000\017\193\000\000\000\000\017\193\000\000\000\000\000\000\000\000\000\000\017\193\017\193\017\193\000\000\000\000\000\000\000\000\000\000\000\000\017\193\000\000\017\193\017\193\000\000\000\000\000\000\000\000\000\000\017\193\000\000\000\000\017\193\000\000\000\000\000\000\000\000\000\000\017\193\000\000\000\000\000\000\017\193\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\193\000\000\017\193\017\193\000\000\017\193\017\193\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\193\000\000\017\193\000\000\017\193\017\193\017\197\000\000\017\193\000\000\017\197\000\000\000\000\017\193\017\197\000\000\017\193\017\193\000\000\017\193\000\000\017\193\017\193\000\000\000\000\017\197\017\197\017\197\000\000\017\197\017\197\017\197\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\197\000\000\000\000\000\000\000\000\000\000\000\000\017\197\017\197\005*\000\000\000\000\017\197\000\000\000\000\000\000\000\000\000\000\017\197\000\000\000\000\017\197\000\000\000\000\000\000\000\000\000\000\017\197\017\197\017\197\000\000\000\000\000\000\000\000\000\000\000\000\017\197\000\000\017\197\017\197\000\000\000\000\000\000\000\000\000\000\017\197\000\000\000\000\017\197\000\000\000\000\000\000\000\000\000\000\017\197\000\000\000\000\000\000\017\197\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\197\000\000\017\197\017\197\000\000\017\197\017\197\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\197\000\000\017\197\000\000\017\197\017\197\017\201\000\000\017\197\000\000\017\201\000\000\000\000\017\197\017\201\000\000\017\197\004F\000\000\017\197\000\000\017\197\017\197\000\000\000\000\017\201\017\201\017\201\000\000\017\201\017\201\017\201\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\201\000\000\000\000\000\000\000\000\000\000\000\000\017\201\017\201\005F\000\000\000\000\017\201\000\000\000\000\000\000\000\000\000\000\017\201\000\000\000\000\017\201\000\000\000\000\000\000\000\000\000\000\017\201\017\201\017\201\000\000\000\000\000\000\000\000\000\000\000\000\017\201\000\000\017\201\017\201\000\000\000\000\000\000\000\000\000\000\017\201\000\000\000\000\017\201\000\000\000\000\000\000\000\000\000\000\017\201\000\000\000\000\000\000\017\201\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\201\000\000\017\201\017\201\000\000\017\201\017\201\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\201\000\000\017\201\000\000\017\201\017\201\017\205\000\000\017\201\000\000\017\205\000\000\000\000\017\201\017\205\000\000\017\201\017\201\000\000\017\201\000\000\017\201\017\201\000\000\000\000\017\205\017\205\017\205\000\000\017\205\017\205\017\205\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\205\000\000\000\000\000\000\000\000\000\000\000\000\017\205\017\205\004>\000\000\000\000\017\205\000\000\000\000\000\000\000\000\000\000\017\205\000\000\000\000\017\205\000\000\000\000\000\000\000\000\000\000\017\205\017\205\017\205\000\000\000\000\000\000\000\000\000\000\000\000\017\205\000\000\017\205\017\205\000\000\000\000\000\000\000\000\000\000\017\205\000\000\000\000\017\205\000\000\000\000\000\000\000\000\000\000\017\205\000\000\000\000\000\000\017\205\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\205\000\000\017\205\017\205\000\000\017\205\017\205\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\205\000\000\017\205\000\000\017\205\017\205\017\209\000\000\017\205\000\000\017\209\000\000\000\000\017\205\017\209\000\000\017\205\004F\000\000\017\205\000\000\017\205\017\205\000\000\000\000\017\209\017\209\017\209\000\000\017\209\017\209\017\209\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\209\000\000\000\000\000\000\000\000\000\000\000\000\017\209\017\209\004Z\000\000\000\000\017\209\000\000\000\000\000\000\000\000\000\000\017\209\000\000\000\000\017\209\000\000\000\000\000\000\000\000\000\000\017\209\017\209\017\209\000\000\000\000\000\000\000\000\000\000\000\000\017\209\000\000\017\209\017\209\000\000\000\000\000\000\000\000\000\000\017\209\000\000\000\000\017\209\000\000\000\000\000\000\000\000\000\000\017\209\000\000\000\000\000\000\017\209\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\209\000\000\017\209\017\209\000\000\017\209\017\209\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\209\000\000\017\209\000\000\017\209\017\209\017\213\000\000\017\209\000\000\017\213\000\000\000\000\017\209\017\213\000\000\017\209\017\209\000\000\017\209\000\000\017\209\017\209\000\000\000\000\017\213\017\213\017\213\000\000\017\213\017\213\017\213\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\213\000\000\000\000\000\000\000\000\000\000\000\000\017\213\017\213\005*\000\000\000\000\017\213\000\000\000\000\000\000\000\000\000\000\017\213\000\000\000\000\017\213\000\000\000\000\000\000\000\000\000\000\017\213\017\213\017\213\000\000\000\000\000\000\000\000\000\000\000\000\017\213\000\000\017\213\017\213\000\000\000\000\000\000\000\000\000\000\017\213\000\000\000\000\017\213\000\000\000\000\000\000\000\000\000\000\017\213\000\000\000\000\000\000\017\213\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\213\000\000\017\213\017\213\000\000\017\213\017\213\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\213\000\000\017\213\000\000\017\213\017\213\017\217\000\000\017\213\000\000\017\217\000\000\000\000\017\213\017\217\000\000\017\213\004F\000\000\017\213\000\000\017\213\017\213\000\000\000\000\017\217\017\217\017\217\000\000\017\217\017\217\017\217\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\217\000\000\000\000\000\000\000\000\000\000\000\000\017\217\017\217\005F\000\000\000\000\017\217\000\000\000\000\000\000\000\000\000\000\017\217\000\000\000\000\017\217\000\000\000\000\000\000\000\000\000\000\017\217\017\217\017\217\000\000\000\000\000\000\000\000\000\000\000\000\017\217\000\000\017\217\017\217\000\000\000\000\000\000\000\000\000\000\017\217\000\000\000\000\017\217\000\000\000\000\000\000\000\000\000\000\017\217\000\000\000\000\000\000\017\217\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\217\000\000\017\217\017\217\000\000\017\217\017\217\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\217\000\000\017\217\000\000\017\217\017\217\017\221\000\000\017\217\000\000\017\221\000\000\000\000\017\217\017\221\000\000\017\217\017\217\000\000\017\217\000\000\017\217\017\217\000\000\000\000\017\221\017\221\017\221\000\000\017\221\017\221\017\221\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\221\000\000\000\000\000\000\000\000\000\000\000\000\017\221\017\221\004>\000\000\000\000\017\221\000\000\000\000\000\000\000\000\000\000\017\221\000\000\000\000\017\221\000\000\000\000\000\000\000\000\000\000\017\221\017\221\017\221\000\000\000\000\000\000\000\000\000\000\000\000\017\221\000\000\017\221\017\221\000\000\000\000\000\000\000\000\000\000\017\221\000\000\000\000\017\221\000\000\000\000\000\000\000\000\000\000\017\221\000\000\000\000\000\000\017\221\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\221\000\000\017\221\017\221\000\000\017\221\017\221\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\221\000\000\017\221\000\000\017\221\017\221\017\225\000\000\017\221\000\000\017\225\000\000\000\000\017\221\017\225\000\000\017\221\004F\000\000\017\221\000\000\017\221\017\221\000\000\000\000\017\225\017\225\017\225\000\000\017\225\017\225\017\225\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\225\000\000\000\000\000\000\000\000\000\000\000\000\017\225\017\225\004Z\000\000\000\000\017\225\000\000\000\000\000\000\000\000\000\000\017\225\000\000\000\000\017\225\000\000\000\000\000\000\000\000\000\000\017\225\017\225\017\225\000\000\000\000\000\000\000\000\000\000\000\000\017\225\000\000\017\225\017\225\000\000\000\000\000\000\000\000\000\000\017\225\000\000\000\000\017\225\000\000\000\000\000\000\000\000\000\000\017\225\000\000\000\000\000\000\017\225\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\225\000\000\017\225\017\225\000\000\017\225\017\225\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\225\000\000\017\225\000\000\017\225\017\225\017\229\000\000\017\225\000\000\017\229\000\000\000\000\017\225\017\229\000\000\017\225\017\225\000\000\017\225\000\000\017\225\017\225\000\000\000\000\017\229\017\229\017\229\000\000\017\229\017\229\017\229\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\229\000\000\000\000\000\000\000\000\000\000\000\000\017\229\017\229\005*\000\000\000\000\017\229\000\000\000\000\000\000\000\000\000\000\017\229\000\000\000\000\017\229\000\000\000\000\000\000\000\000\000\000\017\229\017\229\017\229\000\000\000\000\000\000\000\000\000\000\000\000\017\229\000\000\017\229\017\229\000\000\000\000\000\000\000\000\000\000\017\229\000\000\000\000\017\229\000\000\000\000\000\000\000\000\000\000\017\229\000\000\000\000\000\000\017\229\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\229\000\000\017\229\017\229\000\000\017\229\017\229\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\229\000\000\017\229\000\000\017\229\017\229\017\233\000\000\017\229\000\000\017\233\000\000\000\000\017\229\017\233\000\000\017\229\004F\000\000\017\229\000\000\017\229\017\229\000\000\000\000\017\233\017\233\017\233\000\000\017\233\017\233\017\233\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\233\000\000\000\000\000\000\000\000\000\000\000\000\017\233\017\233\005F\000\000\000\000\017\233\000\000\000\000\000\000\000\000\000\000\017\233\000\000\000\000\017\233\000\000\000\000\000\000\000\000\000\000\017\233\017\233\017\233\000\000\000\000\000\000\000\000\000\000\000\000\017\233\000\000\017\233\017\233\000\000\000\000\000\000\000\000\000\000\017\233\000\000\000\000\017\233\000\000\000\000\000\000\000\000\000\000\017\233\000\000\000\000\000\000\017\233\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\233\000\000\017\233\017\233\000\000\017\233\017\233\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\233\000\000\017\233\000\000\017\233\017\233\017\237\000\000\017\233\000\000\017\237\000\000\000\000\017\233\017\237\000\000\017\233\017\233\000\000\017\233\000\000\017\233\017\233\000\000\000\000\017\237\017\237\017\237\000\000\017\237\017\237\017\237\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\237\000\000\000\000\000\000\000\000\000\000\000\000\017\237\017\237\004>\000\000\000\000\017\237\000\000\000\000\000\000\000\000\000\000\017\237\000\000\000\000\017\237\000\000\000\000\000\000\000\000\000\000\017\237\017\237\017\237\000\000\000\000\000\000\000\000\000\000\000\000\017\237\000\000\017\237\017\237\000\000\000\000\000\000\000\000\000\000\017\237\000\000\000\000\017\237\000\000\000\000\000\000\000\000\000\000\017\237\000\000\000\000\000\000\017\237\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\237\000\000\017\237\017\237\000\000\017\237\017\237\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\237\000\000\017\237\000\000\017\237\017\237\017\241\000\000\017\237\000\000\017\241\000\000\000\000\017\237\017\241\000\000\017\237\004F\000\000\017\237\000\000\017\237\017\237\000\000\000\000\017\241\017\241\017\241\000\000\017\241\017\241\017\241\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\241\000\000\000\000\000\000\000\000\000\000\000\000\017\241\017\241\004Z\000\000\000\000\017\241\000\000\000\000\000\000\000\000\000\000\017\241\000\000\000\000\017\241\000\000\000\000\000\000\000\000\000\000\017\241\017\241\017\241\000\000\000\000\000\000\000\000\000\000\000\000\017\241\000\000\017\241\017\241\000\000\000\000\000\000\000\000\000\000\017\241\000\000\000\000\017\241\000\000\000\000\000\000\000\000\000\000\017\241\000\000\000\000\000\000\017\241\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\241\000\000\017\241\017\241\000\000\017\241\017\241\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\241\000\000\017\241\000\000\017\241\017\241\017\245\000\000\017\241\000\000\017\245\000\000\000\000\017\241\017\245\000\000\017\241\017\241\000\000\017\241\000\000\017\241\017\241\000\000\000\000\017\245\017\245\017\245\000\000\017\245\017\245\017\245\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\245\000\000\000\000\000\000\000\000\000\000\000\000\017\245\017\245\005*\000\000\000\000\017\245\000\000\000\000\000\000\000\000\000\000\017\245\000\000\000\000\017\245\000\000\000\000\000\000\000\000\000\000\017\245\017\245\017\245\000\000\000\000\000\000\000\000\000\000\000\000\017\245\000\000\017\245\017\245\000\000\000\000\000\000\000\000\000\000\017\245\000\000\000\000\017\245\000\000\000\000\000\000\000\000\000\000\017\245\000\000\000\000\000\000\017\245\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\245\000\000\017\245\017\245\000\000\017\245\017\245\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\245\000\000\017\245\000\000\017\245\017\245\017\249\000\000\017\245\000\000\017\249\000\000\000\000\017\245\017\249\000\000\017\245\004F\000\000\017\245\000\000\017\245\017\245\000\000\000\000\017\249\017\249\017\249\000\000\017\249\017\249\017\249\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\249\000\000\000\000\000\000\000\000\000\000\000\000\017\249\017\249\005F\000\000\000\000\017\249\000\000\000\000\000\000\000\000\000\000\017\249\000\000\000\000\017\249\000\000\000\000\000\000\000\000\000\000\017\249\017\249\017\249\000\000\000\000\000\000\000\000\000\000\000\000\017\249\000\000\017\249\017\249\000\000\000\000\000\000\000\000\000\000\017\249\000\000\000\000\017\249\000\000\000\000\000\000\000\000\000\000\017\249\000\000\000\000\000\000\017\249\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\249\000\000\017\249\017\249\000\000\017\249\017\249\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\249\000\000\017\249\000\000\017\249\017\249\017\253\000\000\017\249\000\000\017\253\000\000\000\000\017\249\017\253\000\000\017\249\017\249\000\000\017\249\000\000\017\249\017\249\000\000\000\000\017\253\017\253\017\253\000\000\017\253\017\253\017\253\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\253\000\000\000\000\000\000\000\000\000\000\000\000\017\253\017\253\004>\000\000\000\000\017\253\000\000\000\000\000\000\000\000\000\000\017\253\000\000\000\000\017\253\000\000\000\000\000\000\000\000\000\000\017\253\017\253\017\253\000\000\000\000\000\000\000\000\000\000\000\000\017\253\000\000\017\253\017\253\000\000\000\000\000\000\000\000\000\000\017\253\000\000\000\000\017\253\000\000\000\000\000\000\000\000\000\000\017\253\000\000\000\000\000\000\017\253\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\253\000\000\017\253\017\253\000\000\017\253\017\253\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\253\000\000\017\253\000\000\017\253\017\253\018\001\000\000\017\253\000\000\018\001\000\000\000\000\017\253\018\001\000\000\017\253\004F\000\000\017\253\000\000\017\253\017\253\000\000\000\000\018\001\018\001\018\001\000\000\018\001\018\001\018\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\001\000\000\000\000\000\000\000\000\000\000\000\000\018\001\018\001\004Z\000\000\000\000\018\001\000\000\000\000\000\000\000\000\000\000\018\001\000\000\000\000\018\001\000\000\000\000\000\000\000\000\000\000\018\001\018\001\018\001\000\000\000\000\000\000\000\000\000\000\000\000\018\001\000\000\018\001\018\001\000\000\000\000\000\000\000\000\000\000\018\001\000\000\000\000\018\001\000\000\000\000\000\000\000\000\000\000\018\001\000\000\000\000\000\000\018\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\001\000\000\018\001\018\001\000\000\018\001\018\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\001\000\000\018\001\000\000\018\001\018\001\018\005\000\000\018\001\000\000\018\005\000\000\000\000\018\001\018\005\000\000\018\001\018\001\000\000\018\001\000\000\018\001\018\001\000\000\000\000\018\005\018\005\018\005\000\000\018\005\018\005\018\005\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\005\000\000\000\000\000\000\000\000\000\000\000\000\018\005\018\005\005*\000\000\000\000\018\005\000\000\000\000\000\000\000\000\000\000\018\005\000\000\000\000\018\005\000\000\000\000\000\000\000\000\000\000\018\005\018\005\018\005\000\000\000\000\000\000\000\000\000\000\000\000\018\005\000\000\018\005\018\005\000\000\000\000\000\000\000\000\000\000\018\005\000\000\000\000\018\005\000\000\000\000\000\000\000\000\000\000\018\005\000\000\000\000\000\000\018\005\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\005\000\000\018\005\018\005\000\000\018\005\018\005\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\005\000\000\018\005\000\000\018\005\018\005\018\t\000\000\018\005\000\000\018\t\000\000\000\000\018\005\018\t\000\000\018\005\004F\000\000\018\005\000\000\018\005\018\005\000\000\000\000\018\t\018\t\018\t\000\000\018\t\018\t\018\t\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\t\000\000\000\000\000\000\000\000\000\000\000\000\018\t\018\t\005F\000\000\000\000\018\t\000\000\000\000\000\000\000\000\000\000\018\t\000\000\000\000\018\t\000\000\000\000\000\000\000\000\000\000\018\t\018\t\018\t\000\000\000\000\000\000\000\000\000\000\000\000\018\t\000\000\018\t\018\t\000\000\000\000\000\000\000\000\000\000\018\t\000\000\000\000\018\t\000\000\000\000\000\000\000\000\000\000\018\t\000\000\000\000\000\000\018\t\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\t\000\000\018\t\018\t\000\000\018\t\018\t\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\t\000\000\018\t\000\000\018\t\018\t\018\r\000\000\018\t\000\000\018\r\000\000\000\000\018\t\018\r\000\000\018\t\018\t\000\000\018\t\000\000\018\t\018\t\000\000\000\000\018\r\018\r\018\r\000\000\018\r\018\r\018\r\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\r\000\000\000\000\000\000\000\000\000\000\000\000\018\r\018\r\004>\000\000\000\000\018\r\000\000\000\000\000\000\000\000\000\000\018\r\000\000\000\000\018\r\000\000\000\000\000\000\000\000\000\000\018\r\018\r\018\r\000\000\000\000\000\000\000\000\000\000\000\000\018\r\000\000\018\r\018\r\000\000\000\000\000\000\000\000\000\000\018\r\000\000\000\000\018\r\000\000\000\000\000\000\000\000\000\000\018\r\000\000\000\000\000\000\018\r\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\r\000\000\018\r\018\r\000\000\018\r\018\r\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\r\000\000\018\r\000\000\018\r\018\r\018\017\000\000\018\r\000\000\018\017\000\000\000\000\018\r\018\017\000\000\018\r\004F\000\000\018\r\000\000\018\r\018\r\000\000\000\000\018\017\018\017\018\017\000\000\018\017\018\017\018\017\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\017\000\000\000\000\000\000\000\000\000\000\000\000\018\017\018\017\004Z\000\000\000\000\018\017\000\000\000\000\000\000\000\000\000\000\018\017\000\000\000\000\018\017\000\000\000\000\000\000\000\000\000\000\018\017\018\017\018\017\000\000\000\000\000\000\000\000\000\000\000\000\018\017\000\000\018\017\018\017\000\000\000\000\000\000\000\000\000\000\018\017\000\000\000\000\018\017\000\000\000\000\000\000\000\000\000\000\018\017\000\000\000\000\000\000\018\017\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\017\000\000\018\017\018\017\000\000\018\017\018\017\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\017\000\000\018\017\000\000\018\017\018\017\018\021\000\000\018\017\000\000\018\021\000\000\000\000\018\017\018\021\000\000\018\017\018\017\000\000\018\017\000\000\018\017\018\017\000\000\000\000\018\021\018\021\018\021\000\000\018\021\018\021\018\021\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\021\000\000\000\000\000\000\000\000\000\000\000\000\018\021\018\021\005*\000\000\000\000\018\021\000\000\000\000\000\000\000\000\000\000\018\021\000\000\000\000\018\021\000\000\000\000\000\000\000\000\000\000\018\021\018\021\018\021\000\000\000\000\000\000\000\000\000\000\000\000\018\021\000\000\018\021\018\021\000\000\000\000\000\000\000\000\000\000\018\021\000\000\000\000\018\021\000\000\000\000\000\000\000\000\000\000\018\021\000\000\000\000\000\000\018\021\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\021\000\000\018\021\018\021\000\000\018\021\018\021\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\021\000\000\018\021\000\000\018\021\018\021\018\025\000\000\018\021\000\000\018\025\000\000\000\000\018\021\018\025\000\000\018\021\004F\000\000\018\021\000\000\018\021\018\021\000\000\000\000\018\025\018\025\018\025\000\000\018\025\018\025\018\025\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\025\000\000\000\000\000\000\000\000\000\000\000\000\018\025\018\025\005F\000\000\000\000\018\025\000\000\000\000\000\000\000\000\000\000\018\025\000\000\000\000\018\025\000\000\000\000\000\000\000\000\000\000\018\025\018\025\018\025\000\000\000\000\000\000\000\000\000\000\000\000\018\025\000\000\018\025\018\025\000\000\000\000\000\000\000\000\000\000\018\025\000\000\000\000\018\025\000\000\000\000\000\000\000\000\000\000\018\025\000\000\000\000\000\000\018\025\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\025\000\000\018\025\018\025\000\000\018\025\018\025\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\025\000\000\018\025\000\000\018\025\018\025\018\205\000\000\018\025\000\000\018\205\000\000\000\000\018\025\018\205\000\000\018\025\018\025\000\000\018\025\000\000\018\025\018\025\000\000\000\000\018\205\018\205\018\205\000\000\018\205\018\205\018\205\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\205\000\000\000\000\000\000\000\000\000\000\000\000\018\205\018\205\004>\000\000\000\000\018\205\000\000\000\000\000\000\000\000\000\000\018\205\000\000\000\000\018\205\000\000\000\000\000\000\000\000\000\000\018\205\018\205\018\205\000\000\000\000\000\000\000\000\000\000\000\000\018\205\000\000\018\205\018\205\000\000\000\000\000\000\000\000\000\000\018\205\000\000\000\000\018\205\000\000\000\000\000\000\000\000\000\000\018\205\000\000\000\000\000\000\018\205\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\205\000\000\018\205\018\205\000\000\018\205\018\205\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\205\000\000\018\205\000\000\018\205\018\205\018\209\000\000\018\205\000\000\018\209\000\000\000\000\018\205\018\209\000\000\018\205\004F\000\000\018\205\000\000\018\205\018\205\000\000\000\000\018\209\018\209\018\209\000\000\018\209\018\209\018\209\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\209\000\000\000\000\000\000\000\000\000\000\000\000\018\209\018\209\004Z\000\000\000\000\018\209\000\000\000\000\000\000\000\000\000\000\018\209\000\000\000\000\018\209\000\000\000\000\000\000\000\000\000\000\018\209\018\209\018\209\000\000\000\000\000\000\000\000\000\000\000\000\018\209\000\000\018\209\018\209\000\000\000\000\000\000\000\000\000\000\018\209\000\000\000\000\018\209\000\000\000\000\000\000\000\000\000\000\018\209\000\000\000\000\000\000\018\209\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\209\000\000\018\209\018\209\000\000\018\209\018\209\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\209\000\000\018\209\000\000\018\209\018\209\018\213\000\000\018\209\000\000\018\213\000\000\000\000\018\209\018\213\000\000\018\209\018\209\000\000\018\209\000\000\018\209\018\209\000\000\000\000\018\213\018\213\018\213\000\000\018\213\018\213\018\213\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\213\000\000\000\000\000\000\000\000\000\000\000\000\018\213\018\213\005*\000\000\000\000\018\213\000\000\000\000\000\000\000\000\000\000\018\213\000\000\000\000\018\213\000\000\000\000\000\000\000\000\000\000\018\213\018\213\018\213\000\000\000\000\000\000\000\000\000\000\000\000\018\213\000\000\018\213\018\213\000\000\000\000\000\000\000\000\000\000\018\213\000\000\000\000\018\213\000\000\000\000\000\000\000\000\000\000\018\213\000\000\000\000\000\000\018\213\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\213\000\000\018\213\018\213\000\000\018\213\018\213\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\213\000\000\018\213\000\000\018\213\018\213\018\217\000\000\018\213\000\000\018\217\000\000\000\000\018\213\018\217\000\000\018\213\004F\000\000\018\213\000\000\018\213\018\213\000\000\000\000\018\217\018\217\018\217\000\000\018\217\018\217\018\217\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\217\000\000\000\000\000\000\000\000\000\000\000\000\018\217\018\217\005F\000\000\000\000\018\217\000\000\000\000\000\000\000\000\000\000\018\217\000\000\000\000\018\217\000\000\000\000\000\000\000\000\000\000\018\217\018\217\018\217\000\000\000\000\000\000\000\000\000\000\000\000\018\217\000\000\018\217\018\217\000\000\000\000\000\000\000\000\000\000\018\217\000\000\000\000\018\217\000\000\000\000\000\000\000\000\000\000\018\217\000\000\000\000\000\000\018\217\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\217\000\000\018\217\018\217\000\000\018\217\018\217\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\217\000\000\018\217\000\000\018\217\018\217\018\221\000\000\018\217\000\000\018\221\000\000\000\000\018\217\018\221\000\000\018\217\018\217\000\000\018\217\000\000\018\217\018\217\000\000\000\000\018\221\018\221\018\221\000\000\018\221\018\221\018\221\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\221\000\000\000\000\000\000\000\000\000\000\000\000\018\221\018\221\004>\000\000\000\000\018\221\000\000\000\000\000\000\000\000\000\000\018\221\000\000\000\000\018\221\000\000\000\000\000\000\000\000\000\000\018\221\018\221\018\221\000\000\000\000\000\000\000\000\000\000\000\000\018\221\000\000\018\221\018\221\000\000\000\000\000\000\000\000\000\000\018\221\000\000\000\000\018\221\000\000\000\000\000\000\000\000\000\000\018\221\000\000\000\000\000\000\018\221\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\221\000\000\018\221\018\221\000\000\018\221\018\221\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\221\000\000\018\221\000\000\018\221\018\221\018\225\000\000\018\221\000\000\018\225\000\000\000\000\018\221\018\225\000\000\018\221\004F\000\000\018\221\000\000\018\221\018\221\000\000\000\000\018\225\018\225\018\225\000\000\018\225\018\225\018\225\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\225\000\000\000\000\000\000\000\000\000\000\000\000\018\225\018\225\004Z\000\000\000\000\018\225\000\000\000\000\000\000\000\000\000\000\018\225\000\000\000\000\018\225\000\000\000\000\000\000\000\000\000\000\018\225\018\225\018\225\000\000\000\000\000\000\000\000\000\000\000\000\018\225\000\000\018\225\018\225\000\000\000\000\000\000\000\000\000\000\018\225\000\000\000\000\018\225\000\000\000\000\000\000\000\000\000\000\018\225\000\000\000\000\000\000\018\225\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\225\000\000\018\225\018\225\000\000\018\225\018\225\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\225\000\000\018\225\000\000\018\225\018\225\018\229\000\000\018\225\000\000\018\229\000\000\000\000\018\225\018\229\000\000\018\225\018\225\000\000\018\225\000\000\018\225\018\225\000\000\000\000\018\229\018\229\018\229\000\000\018\229\018\229\018\229\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\229\000\000\000\000\000\000\000\000\000\000\000\000\018\229\018\229\005*\000\000\000\000\018\229\000\000\000\000\000\000\000\000\000\000\018\229\000\000\000\000\018\229\000\000\000\000\000\000\000\000\000\000\018\229\018\229\018\229\000\000\000\000\000\000\000\000\000\000\000\000\018\229\000\000\018\229\018\229\000\000\000\000\000\000\000\000\000\000\018\229\000\000\000\000\018\229\000\000\000\000\000\000\000\000\000\000\018\229\000\000\000\000\000\000\018\229\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\229\000\000\018\229\018\229\000\000\018\229\018\229\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\229\000\000\018\229\000\000\018\229\018\229\018\233\000\000\018\229\000\000\018\233\000\000\000\000\018\229\018\233\000\000\018\229\004F\000\000\018\229\000\000\018\229\018\229\000\000\000\000\018\233\018\233\018\233\000\000\018\233\018\233\018\233\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\233\000\000\000\000\000\000\000\000\000\000\000\000\018\233\018\233\005F\000\000\000\000\018\233\000\000\000\000\000\000\000\000\000\000\018\233\000\000\000\000\018\233\000\000\000\000\000\000\000\000\000\000\018\233\018\233\018\233\000\000\000\000\000\000\000\000\000\000\000\000\018\233\000\000\018\233\018\233\000\000\000\000\000\000\000\000\000\000\018\233\000\000\000\000\018\233\000\000\000\000\000\000\000\000\000\000\018\233\000\000\000\000\000\000\018\233\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\233\000\000\018\233\018\233\000\000\018\233\018\233\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\233\000\000\018\233\000\000\018\233\018\233\018\173\000\000\018\233\000\000\018\173\000\000\000\000\018\233\018\173\000\000\018\233\018\233\000\000\018\233\000\000\018\233\018\233\000\000\000\000\018\173\018\173\018\173\000\000\018\173\018\173\018\173\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\173\000\000\000\000\000\000\000\000\000\000\000\000\018\173\018\173\004>\000\000\000\000\018\173\000\000\000\000\000\000\000\000\000\000\018\173\000\000\000\000\018\173\000\000\000\000\000\000\000\000\000\000\018\173\018\173\018\173\000\000\000\000\000\000\000\000\000\000\000\000\018\173\000\000\018\173\018\173\000\000\000\000\000\000\000\000\000\000\018\173\000\000\000\000\018\173\000\000\000\000\000\000\000\000\000\000\018\173\000\000\000\000\000\000\018\173\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\173\000\000\018\173\018\173\000\000\018\173\018\173\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\173\000\000\018\173\000\000\018\173\018\173\018\177\000\000\018\173\000\000\018\177\000\000\000\000\018\173\018\177\000\000\018\173\004F\000\000\018\173\000\000\018\173\018\173\000\000\000\000\018\177\018\177\018\177\000\000\018\177\018\177\018\177\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\177\000\000\000\000\000\000\000\000\000\000\000\000\018\177\018\177\004Z\000\000\000\000\018\177\000\000\000\000\000\000\000\000\000\000\018\177\000\000\000\000\018\177\000\000\000\000\000\000\000\000\000\000\018\177\018\177\018\177\000\000\000\000\000\000\000\000\000\000\000\000\018\177\000\000\018\177\018\177\000\000\000\000\000\000\000\000\000\000\018\177\000\000\000\000\018\177\000\000\000\000\000\000\000\000\000\000\018\177\000\000\000\000\000\000\018\177\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\177\000\000\018\177\018\177\000\000\018\177\018\177\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\177\000\000\018\177\000\000\018\177\018\177\018\181\000\000\018\177\000\000\018\181\000\000\000\000\018\177\018\181\000\000\018\177\018\177\000\000\018\177\000\000\018\177\018\177\000\000\000\000\018\181\018\181\018\181\000\000\018\181\018\181\018\181\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\181\000\000\000\000\000\000\000\000\000\000\000\000\018\181\018\181\005*\000\000\000\000\018\181\000\000\000\000\000\000\000\000\000\000\018\181\000\000\000\000\018\181\000\000\000\000\000\000\000\000\000\000\018\181\018\181\018\181\000\000\000\000\000\000\000\000\000\000\000\000\018\181\000\000\018\181\018\181\000\000\000\000\000\000\000\000\000\000\018\181\000\000\000\000\018\181\000\000\000\000\000\000\000\000\000\000\018\181\000\000\000\000\000\000\018\181\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\181\000\000\018\181\018\181\000\000\018\181\018\181\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\181\000\000\018\181\000\000\018\181\018\181\018\185\000\000\018\181\000\000\018\185\000\000\000\000\018\181\018\185\000\000\018\181\004F\000\000\018\181\000\000\018\181\018\181\000\000\000\000\018\185\018\185\018\185\000\000\018\185\018\185\018\185\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\185\000\000\000\000\000\000\000\000\000\000\000\000\018\185\018\185\005F\000\000\000\000\018\185\000\000\000\000\000\000\000\000\000\000\018\185\000\000\000\000\018\185\000\000\000\000\000\000\000\000\000\000\018\185\018\185\018\185\000\000\000\000\000\000\000\000\000\000\000\000\018\185\000\000\018\185\018\185\000\000\000\000\000\000\000\000\000\000\018\185\000\000\000\000\018\185\000\000\000\000\000\000\000\000\000\000\018\185\000\000\000\000\000\000\018\185\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\185\000\000\018\185\018\185\000\000\018\185\018\185\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\185\000\000\018\185\000\000\018\185\018\185\018\189\000\000\018\185\000\000\018\189\000\000\000\000\018\185\018\189\000\000\018\185\018\185\000\000\018\185\000\000\018\185\018\185\000\000\000\000\018\189\018\189\018\189\000\000\018\189\018\189\018\189\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\189\000\000\000\000\000\000\000\000\000\000\000\000\018\189\018\189\004>\000\000\000\000\018\189\000\000\000\000\000\000\000\000\000\000\018\189\000\000\000\000\018\189\000\000\000\000\000\000\000\000\000\000\018\189\018\189\018\189\000\000\000\000\000\000\000\000\000\000\000\000\018\189\000\000\018\189\018\189\000\000\000\000\000\000\000\000\000\000\018\189\000\000\000\000\018\189\000\000\000\000\000\000\000\000\000\000\018\189\000\000\000\000\000\000\018\189\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\189\000\000\018\189\018\189\000\000\018\189\018\189\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\189\000\000\018\189\000\000\018\189\018\189\018\193\000\000\018\189\000\000\018\193\000\000\000\000\018\189\018\193\000\000\018\189\004F\000\000\018\189\000\000\018\189\018\189\000\000\000\000\018\193\018\193\018\193\000\000\018\193\018\193\018\193\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\193\000\000\000\000\000\000\000\000\000\000\000\000\018\193\018\193\004Z\000\000\000\000\018\193\000\000\000\000\000\000\000\000\000\000\018\193\000\000\000\000\018\193\000\000\000\000\000\000\000\000\000\000\018\193\018\193\018\193\000\000\000\000\000\000\000\000\000\000\000\000\018\193\000\000\018\193\018\193\000\000\000\000\000\000\000\000\000\000\018\193\000\000\000\000\018\193\000\000\000\000\000\000\000\000\000\000\018\193\000\000\000\000\000\000\018\193\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\193\000\000\018\193\018\193\000\000\018\193\018\193\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\193\000\000\018\193\000\000\018\193\018\193\018\197\000\000\018\193\000\000\018\197\000\000\000\000\018\193\018\197\000\000\018\193\018\193\000\000\018\193\000\000\018\193\018\193\000\000\000\000\018\197\018\197\018\197\000\000\018\197\018\197\018\197\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\197\000\000\000\000\000\000\000\000\000\000\000\000\018\197\018\197\005*\000\000\000\000\018\197\000\000\000\000\000\000\000\000\000\000\018\197\000\000\000\000\018\197\000\000\000\000\000\000\000\000\000\000\018\197\018\197\018\197\000\000\000\000\000\000\000\000\000\000\000\000\018\197\000\000\018\197\018\197\000\000\000\000\000\000\000\000\000\000\018\197\000\000\000\000\018\197\000\000\000\000\000\000\000\000\000\000\018\197\000\000\000\000\000\000\018\197\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\197\000\000\018\197\018\197\000\000\018\197\018\197\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\197\000\000\018\197\000\000\018\197\018\197\018\201\000\000\018\197\000\000\018\201\000\000\000\000\018\197\018\201\000\000\018\197\004F\000\000\018\197\000\000\018\197\018\197\000\000\000\000\018\201\018\201\018\201\000\000\018\201\018\201\018\201\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\201\000\000\000\000\000\000\000\000\000\000\000\000\018\201\018\201\005F\000\000\000\000\018\201\000\000\000\000\000\000\000\000\000\000\018\201\000\000\000\000\018\201\000\000\000\000\000\000\000\000\000\000\018\201\018\201\018\201\000\000\000\000\000\000\000\000\000\000\000\000\018\201\000\000\018\201\018\201\000\000\000\000\000\000\000\000\000\000\018\201\000\000\000\000\018\201\000\000\000\000\000\000\000\000\000\000\018\201\000\000\b\130\003\154\018\201\000\000\003j\000\000\r2\000\000\000\000\bf\018\201\000\000\018\201\018\201\000\000\018\201\018\201\000\000\000\000\000\000\001\234\000\000\r~\000\000\000\000\000\000\000\000\b\190\018\201\000\000\018\201\014*\018\201\018\201\000\000\000\000\018\201\000\000\000\000\000\000\000\000\018\201\000\000\b\210\018\201\018\201\014\186\018\201\001\190\018\201\018\201\000\000\000\000\000\000\003\138\000\000\000\000\n\n\n\014\000\000\000\000\015\145\n\018\000\000\n\026\000\000\015J\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\205\000\000\nN\nb\nf\000\000\nj\nr\n~\000\000\000\000\000\000\000\000\000\000\000\000\001\202\t1\t1\n\134\n\138\t1\000\000\t1\021\206\000\000\t1\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t1\t1\000\000\000\000\015\145\000\000\000\000\t1\015\145\015\145\000\000\n\142\000\000\001\206\000\000\015\145\000\000\007\166\000\000\000\000\000\000\015\145\006\205\t1\000\000\000\000\t1\001\210\t1\000\000\000\000\000\000\t1\000\000\t1\t1\t1\t1\t1\000\000\000\000\000\000\t1\000\000\t1\t1\t1\000\000\000\000\t1\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t1\t1\t1\000\000\t1\t1\t1\000\000\001\202\t5\t5\000\000\000\000\t5\000\000\t5\t1\t1\t5\000\000\t1\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t5\t5\000\000\000\000\000\000\000\000\000\000\t5\000\000\000\000\000\000\000\000\000\000\001\206\000\000\000\000\t1\000\000\000\000\000\000\000\000\000\000\t1\t5\000\000\000\000\t5\001\210\t5\000\000\000\000\000\000\t5\000\000\t5\t5\t5\t5\t5\000\000\000\000\000\000\t5\000\000\t5\t5\t5\000\000\000\000\t5\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t5\t5\t5\000\000\t5\t5\t5\000\000\001\202\t-\t-\000\000\000\000\t-\000\000\t-\t5\t5\t-\000\000\t5\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t-\t-\000\000\000\000\000\000\000\000\000\000\t-\000\000\000\000\000\000\000\000\000\000\001\206\000\000\000\000\t5\000\000\000\000\000\000\000\000\000\000\t5\t-\000\000\000\000\t-\001\210\t-\000\000\000\000\000\000\t-\000\000\t-\t-\t-\t-\t-\000\000\000\000\000\000\t-\000\000\t-\t-\t-\000\000\000\000\t-\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t-\t-\t-\000\000\t-\t-\t-\000\000\007\t\007\t\007\t\000\000\000\000\007\t\000\000\007\t\t-\t-\007\t\000\000\t-\000\000\000\000\000\000\000\000\007\t\000\000\000\000\000\000\007\t\000\000\000\000\000\000\000\000\000\000\000\000\007\t$r\000\000\000\000\000\000$\138\007\t\000\000\000\000\t-\000\000\000\000\000\000\000\000\000\000\t-\007\t\000\000\000\000\007\t\007\t\007\t\000\000\000\000\000\000\000\000\000\000\007\t\000\000\000\000\007\t\007\t\000\000\000\000\000\242\007\t\000\000\007\t\007\t\007\t\000\000\000\000\007\t\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007\t\007\t\007\t\000\000\007\t\007\t\007\t\007!\000\000\b\130\003\154\007!\000\000\003j\000\000\r2\007\t\007\t\bf\000\000\000\000\000\000\007!\000\000\000\000\000\000\007!\000\000\007!\001\234\000\000\r~\000\000\000\000\000\000\000\000\b\190\000\000\000\000\000\000\014*\007!\000\000\000\000\000\000\007\t\000\000\000\000\007!\000\000\004E\007\t\b\210\000\000\000\000\014\186\000\000\001\190\000\000\007!\000\000\000\000\007!\003\138\000\000\000\000\n\n\n\014\007!\tN\000\000\n\018\000\000\n\026\000\000\015J\000\000\007!\nJ\ba\000\000\000\000\000\000\ba\000\000\000\000\007!\ba\000\000\nN\nb\nf\000\000\nj\nr\n~\000\000\000\000\ba\000\000\ba\000\000\ba\000\000\ba\n\134\n\138\007!\000\000\007!\004E\000\000\007!\007!\000\000\000\000\000\000\ba\000\000\000\000\000\000\000\000\000\000\000\000\ba\000\000\ba\000\000\000\000\004E\000\000\ba\004E\007!\n\142\ba\000\000\000\000\ba\000\000\007\166\000\000\004E\000\000\ba\ba\ba\000\000\000\000\000\000\000\000\000\000\000\000\ba\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ba\ba\000\000\ba\000\000\000\000\000\000\000\000\000\000\ba\000\000\b\130\003\154\000\000\000\000\003j\000\000\r2\000\000\000\000\bf\ba\000\000\ba\ba\000\000\ba\ba\000\000\000\000\000\000\001\234\000\000\r~\000\000\017\"\000\000\000\000\b\190\000\000\000\000\000\000\014*\ba\000\000\000\000\ba\ba\000\000\n\177\000\000\000\000\000\000\n\177\b\210\ba\ba\014\186\000\000\001\190\ba\000\000\000\000\000\000\n\177\003\138\000\000\000\000\n\n\n\014\n\177\000\000\000\000\n\018\000\000\n\026\000\000\015J\000\000\000\000\nJ\000\000\000\000\n\177\000\000\000\000\000\000\000\000\000\000\000\000\n\177\nN\nb\nf\000\000\nj\nr\n~\000\000\000\000\000\000\000\000\000\000\000\000\n\177\000\000\000\000\n\134\n\138\000\000\n\177\000\000\021\206\000\000\000\000\000\000\000\000\000\000\000\000\n\177\016~\000\000\000\000\000\000\n\177\001\202\001\226\001\230\n\177\000\000\000\000\003\182\000\000\000\000\022\242\000\000\n\142\000\000\000\000\n\177\000\000\000\000\007\166\n\177\004F\n\177\001\234\002&\001\254\n\177\000\000\n\177\000\000\000\000\000\000\n\177\000\000\002\n\n\177\001\206\000\000\000\000\000\000\000\000\000\000\n\177\000\000\016\226\000\000\000\000\000\000\000\000\002.\001\210\002Z\n\177\000\000\000\000\003z\n\177\003\138\003\186\003\198\002\130\000\000\n\177\n\177\000\242\003\210\000\000\000\000\000\000\000\000\000\000\n\177\000\000\004\161\000\000\000\000\000\000\004\161\000\000\000\000\n\177\004\161\000\000\000\000\000\000\000\000\000\000\003\214\000\000\003\230\000\000\000\000\004\161\000\000\004\161\000\000\004\161\000\000\004\161\000\000\000\000\n\177\000\000\n\177\000\000\000\000\n\177\n\177\000\000\000\000\000\000\004\161\000\000\000\000\000\000\000\000\000\000\000\000\004\161\000\000\004\161\000\000\000\000\000\000\000\000\007\205\000\000\n\177\000\000\004\161\000\000\000\000\004\161\000\000\007\166\002\130\004F\000\000\004\161\004\161\004\161\000\000\000\000\000\000\000\000\000\000\000\000\004\161\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\161\000\000\000\000\004\161\000\000\000\000\000\000\000\000\000\000\004\161\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\161\000\000\004\161\004\161\000\000\004\161\004\161\000\000\000\000\000\000\000\000\000\000\t\029\000\000\007\205\000\000\t\029\000\000\000\000\000\000\000\000\000\000\004\161\004\161\t\029\000\000\004\161\t\029\t\029\t\029\000\000\t\029\t\029\t\029\004\161\004\161\000\000\000\000\000\000\004\161\000\000\000\000\000\000\000\000\000\000\000\000\t\029\000\000\000\000\000\000\000\000\000\000\000\000\t\029\000\000\t\029\000\000\000\000\000\000\000\000\000\000\000\000\002\134\000\000\t\029\000\000\000\000\t\029\000\000\000\000\000\000\000\000\000\000\t\029\t\029\t\029\000\000\000\000\000\000\000\000\000\000\000\000\t\029\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\029\t\029\000\000\t\029\000\000\000\000\000\000\000\000\000\000\t\029\025\242\b\130\003\154\000\000\000\000\003j\000\000\b\134\000\000\000\000\bf\t\029\000\000\t\029\t\029\000\000\t\029\t\029\r\197\000\000\000\000\001\234\000\000\000\000\000\000\000\000\000\000\000\000\b\190\t\029\000\000\000\000\000\000\000\000\026\018\000\000\000\000\t\029\000\000\000\000\000\000\000\000\t\029\000\000\b\210\000\000\000\000\b\230\0262\001\190\t\029\000\000\000\000\000\000\000\000\003\138\000\000\000\000\n\n\n\014\000\000\000\000\000\000\n\018\000\000\n\026\n>\nn\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\nN\nb\nf\000\000\nj\nr\n~\000\000\000\000\002a\002a\000\000\000\000\002a\000\000\002a\n\134\n\138\002a\000\000\011\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002a\000\000\000\000\000\000\000\000\000\000\000\000\002a\000\n\000\000\r\197\000\000\000\000\000\000\000\000\000\000\n\142\000\000\r\197\000\000\014\018\000\000\007\166\002a\000\000\000\000\002a\000\000\002a\000\000\000\000\000\000\000\000\000\000\002a\000\000\000\000\002a\002a\000\000\000\000\002a\002a\000\000\002a\002a\002a\000\000\000\000\002a\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002a\002a\002a\000\000\002a\002a\002a\000\000\001\202\b\130\003\154\000\000\000\000\003j\000\000\b\134\002a\002a\bf\000\000\002a\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\234\000\000\000\000\000\000\000\000\000\000\000\000\b\190\000\000\000\000\000\000\000\000\000\000\001\206\000\000\000\000\002a\000\000\000\000\000\000\002a\000\000\002a\b\210\000\000\000\000\0146\001\210\001\190\000\000\000\000\000\000\000\000\000\000\003\138\000\000\000\000\n\n\n\014\000\000\000\000\000\000\n\018\000\000\n\026\n>\nn\000\000\004\161\nJ\000\000\000\000\004\161\000\000\000\000\000\000\004\161\000\000\000\000\000\000\nN\nb\nf\000\000\nj\nr\n~\004\161\000\000\004\161\000\000\004\161\000\000\004\161\000\000\000\000\n\134\n\138\000\000\000\000\011\002\001\226\001\230\000\000\000\000\000\000\004\161\000\000\000\000\000\000\000\000\000\000\000\000\004\161\000\000\004\161\000\000\000\000\000\000\000\000\007\209\001\234\002&\000\000\004\161\n\142\000\000\004\161\000\000\000\000\000\000\007\166\000\000\004\161\004\161\004\161\000\000\000\000\000\000\000\000\000\000\000\000\004\161\000\000\000\000\000\000\000\000\003~\000\000(J\000\000\004\161\000\000\003z\004\161\003\138\003\186\003\198\000\000\000\000\004\161\000\000\000\000\003\210\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\161\000\000\004\161\004\161\000\000\004\161\004\161\000\000\bU\000\000\000\000\000\000\bU\003\214\007\209\003\230\bU\000\000\000\000(v\000\000\000\000\004\161\004\161\000\000\000\000\004\161\bU\000\000\bU\000\000\bU\000\000\bU\004\161\004\161\000\000\000\000\000\000\004\161(b\000\000\000\000\000\000\000\000\000\000\bU\000\000\000\000\001\226\001\230\000\000\000\000\bU\000\000\bU\000\000\000\000\000\000\000\000\017z\000\000\000\000\000\000\bU\000\000\000\000\bU\000\000\001\234\002&\001\254\000\000\bU\bU\000\242\000\000\000\000\000\000\000\000\002\n\000\000\bU\000\000!\210\000\000\000\000\000\000\000\000\000\000\000\000\bU\bU\000\000\bU\003~\000\000%\030\000\000\"J\bU\003z\000\000\003\138\003\186\003\198\000\000\000\000\000\000\000\000\025\202%.\bU\000\000\bU\bU\000\000\bU\bU\025f\000\000\000\000\000\000\000\000\019\006\000\000\000\000\000\000\023\138\r\157\000\000\r\157\r\157\003\214\bU\003\230\000\000\bU\bU\019n\019\206\019\230\019\134\000\000\019\254\000\000\bU\bU\000\000\001\157\000\000\bU\000\000\000\000\019\158\000\000\020\022\020.\000\000\000\000\000\000\000\000\000\000\019\006\000\000\000\000\020F\000\000\029\138\000\000\001\157\000\000\000\000\000\000\000\000\000\242\000\000\000\000\019n\019\206\019\230\019\134\000\000\019\254\000\000\000\000\019\030\019\182\020^\020v\020\214\000\000\000\000\019\158\000\000\020\022\020.\000\000\000\000\000\000\000\000\000\000\000\000\028\142\020\238\020F\000\000\000\000\000\000\025\226\000\000\000\000\000\000\000\000\000\242\021\006\000\000\000\000\000\000\000\000\025j\000\000\000\000\000\000\000\000\019\030\019\182\020^\020v\020\214\000\000\000\000\021f\r\157\000\000\021\158\020\142\000\000\000\000\000\000\000\000\r\157\021\030\020\238\000\000\000\000\020\166\020\190\001\157\000\000\000\000\000\000\0216\021N\021\006\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\165\000\000\000\000\021f\001\157\029\142\021\158\020\142\029\154\000\000\000\000\000\000\001\157\021\030\019\006\000\000\000\000\020\166\020\190\000\000\000\000\001\165\001\157\0216\021N\000\000\000\000\000\000\000\000\019n\019\206\019\230\019\134\000\000\019\254\000\000\000\000\000\000\000\000\001\149\000\000\000\000\000\000\000\000\019\158\000\000\020\022\020.\000\000\000\000\000\000\000\000\000\000\019\006\000\000\000\000\020F\000\000\000\000\000\000\001\149\000\000\000\000\000\000\000\000\000\242\000\000\000\000\019n\019\206\019\230\019\134\000\000\019\254\000\000\000\000\019\030\019\182\020^\020v\020\214\000\000\000\000\019\158\000\000\020\022\020.\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\238\020F\000\000\000\000\000\000\001\165\000\000\000\000\000\000\000\000\000\242\021\006\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\030\019\182\020^\020v\020\214\000\000\000\000\021f\001\165\000\000\021\158\020\142\000\000\000\000\000\000\000\000\001\165\021\030\020\238\000\000\000\000\020\166\020\190\001\149\000\000\000\000\001\165\0216\021N\021\006\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\189\000\000\000\000\021f\001\149\000\000\021\158\020\142\000\000\000\000\000\000\000\000\001\149\021\030\019\006\000\000\000\000\020\166\020\190\000\000\000\000\001\189\001\149\0216\021N\000\000\000\000\000\000\000\000\019n\019\206\019\230\019\134\000\000\019\254\000\000\000\000\000\000\000\000\001\181\000\000\000\000\000\000\000\000\019\158\000\000\020\022\020.\000\000\000\000\000\000\000\000\000\000\019\006\000\000\000\000\020F\000\000\000\000\000\000\001\181\000\000\000\000\000\000\000\000\000\242\000\000\000\000\019n\019\206\019\230\019\134\000\000\019\254\000\000\000\000\019\030\019\182\020^\020v\020\214\000\000\000\000\019\158\000\000\020\022\020.\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\238\020F\000\000\000\000\000\000\001\189\000\000\000\000\000\000\000\000\000\242\021\006\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\030\019\182\020^\020v\020\214\000\000\000\000\021f\001\189\000\000\021\158\020\142\000\000\000\000\000\000\000\000\001\189\021\030\020\238\000\000\000\000\020\166\020\190\001\181\000\000\000\000\001\189\0216\021N\021\006\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\173\000\000\000\000\021f\001\181\000\000\021\158\020\142\000\000\000\000\000\000\000\000\001\181\021\030\019\006\000\000\000\000\020\166\020\190\000\000\000\000\001\173\001\181\0216\021N\000\000\000\000\000\000\000\000\019n\019\206\019\230\019\134\000\000\019\254\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\158\000\000\020\022\020.\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020F\000\000\000\000\000\000\000\000\001\202\002\018\001\230\000\000\000\242\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\030\019\182\020^\020v\020\214\000\000\001\234-\214\001\254\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\n\020\238\001\206\000\000\000\000\000\000\001\173\000\000\002j\000\000\000\000\000\000\021\006\000\000\000\000\002\014\001\210\002Z\000\000\000\000\000\000\003z\000\000\003\138\003\186\003\198\000\000\000\000\000\000\021f\001\173\003\210\021\158\020\142\000\000\011\209\011\209\011\209\001\173\021\030\011\209\000\000\011\209\020\166\020\190\011\209\000\000\000\000\001\173\0216\021N\000\000\031j\003\214\000\000\003\230\011\209\000\000\000\000\000\000\000\000\000\000\000\000\011\209\000\000\000\000\000\000\000\000\000\000\011\209\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\011\209\000\000\000\000\011\209\011\209\011\209\000\000\000\000\000\000\000\000\000\000\011\209\000\000\000\000\011\209\011\209\000\000\000\000\000\000\011\209\000\000\011\209\011\209\011\209\000\000\000\000\011\209\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\011\209\011\209\011\209\000\000\011\209\011\209\011\209\000\000\000\000\b\130\003\154\000\000\000\000\003j\000\000\b\134\011\209\011\209\bf\000\000\000\000\000\000\000\000\000\000\n\254\000\000\n\022\000\000\000\000\001\234\000\000\000\000\000\000\000\000\000\000\000\000\b\190\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\011\209\000\000\000\000\000\000\000\000\000\000\011\209\b\210\000\000\000\000\b\230\000\000\001\190\000\000\000\000\000\000\000\000\000\000\003\138\000\000\000\000\n\n\n\014\000\000\000\000\000\000\n\018\000\000\n\026\n>\nn\000\000\012\193\nJ\000\000\000\000\012\193\000\000\000\000\000\000\012\193\000\000\000\000\000\000\nN\nb\nf\000\000\nj\nr\n~\012\193\000\000\012\193\000\000\012\193\000\000\012\193\000\000\000\000\n\134\n\138\000\000\000\000\011\002\000\000\000\000\000\000\000\000\000\000\012\193\000\000\000\000\000\000\000\000\000\000\000\000\012\193\000\000\012\193\000\000\000\000\000\000\012^\000\000\000\000\011\238\000\000\012\193\n\142\000\000\012\193\000\000\000\000\000\000\007\166\000\000\012\193\012\193\012\193\000\000\001\226\001\230\000\000\000\000\000\000\012\193\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012\193\000\000\000\000\012\193\000\000\000\000\001\234\002&\000\000\012\193\000\000\000\000\020m\000\000\000\000\000\000\020m\000\000\000\000\000\000\020m\012\193\000\000\012\193\012\193\000\000\012\193\012\193\000\000\000\000\000\000\020m\003~\020m(J\020m\000\000\020m\003z\012\193\003\138\003\186\003\198\012\193\000\000\000\000\000\000\012\193\003\210\000\000\020m\000\000\000\000\000\000\000\000\012\193\012\193\020m\005\206\020m\012\193\000\000\000\000\000\000\003\242\000\000\000\000\000\000\020m\000\000\003\214\020m\003\230\000\000\000\000\000\000\007\149\020m\020m\020m\000\000\000\000\000\000\000\000\000\000\000\000\020m\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020m\000\000(b\020m\000\000\000\000\000\000\000\000\000\000\020m\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020m\000\000\020m\020m\020q\020m\020m\000\000\020q\000\000\000\000\000\000\020q\000\000\003\254\000\000\000\000\000\000\000\000\001\202\001\226\001\230\020m\020q\000\000\020q\020m\020q\000\000\020q\000\000\000\000\000\000\000\000\020m\020m\000\000\001\226\001\230\020m\001\234\002&\020q\000\000\000\000\000\000\000\000\000\000\000\000\020q\000\000\020q\000\000\001\206\000\000\000\000\003\242\001\234\002&\000\000\020q\000\000\000\000\020q\000\000\000\000\004n\001\210\003\226\020q\020q\020q\003z\000\000\003\138\003\186\003\198\000\000\020q\000\000\000\000\000\000\003\210\003~\000\000\003\226\000\000\020q\000\000\003z\020q\003\138\003\186\003\198\000\000\000\000\020q\000\000\000\000\003\210\000\000\030b\000\000\000\000\003\214\000\000\003\230\000\000\020q\000\000\020q\020q\b\205\020q\020q\000\000\b\205\000\000\000\000\000\000\b\205\003\214\003\254\003\230\000\000\000\000\000\000\000\000\030\178\000\000\020q\b\205\000\000\b\205\020q\b\205\000\000\b\205\000\000\000\000\000\000\ne\020q\020q\000\000\ne\000\000\020q\000\000\000\000\b\205\000\000\000\000\000\000\000\000\000\000\ne\b\205\000\000\b\205\ne\000\000\ne\000\000\003\242\000\000\000\000\000\000\b\205\000\000\000\000\b\205\000\000\000\000\000\000\ne\000\000\b\205\b\205\b\205\000\000\000\000\ne\000\000\000\000\000\000\b\205\000\000\000\000\000\000\000\000\000\000\000\000\ne\000\000\b\205\ne\000\000\b\205\000\000\000\000\000\000\ne\ne\b\205\001\202\b\130\003\154\000\000\000\000\003j\ne\t\210\000\000\000\000\bf\b\205\000\000\b\205\b\205\ne\b\205\b\205\ne\000\000\000\000\001\234\000\000\000\000\ne\003\254\000\000\000\000\b\190\000\000\000\000\000\000\000\000\b\205\001\206\000\000\ne\b\205\ne\ne\000\000\ne\ne\000\000\b\210\b\205\b\205\021\190\001\210\001\190\b\205\000\000\000\000\000\000\ne\003\138\000\000\000\000\n\n\n\014\000\000\003V\ne\n\018\000\000\n\026\n>\012\246\000\000\000\000\nJ\000\000\000\000\000\000\001\137\ne\000\000\000\000\000\000\000\000\000\000\nN\nb\nf\000\000\nj\nr\n~\019\006\000\000\000\000\000\000\n\129\000\000\000\000\001\137\n\129\n\134\n\138\000\000\000\000\000\000\000\000\019n\019\206\019\230\019\134\000\000\019\254\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\158\000\000\020\022\020.\000\000\000\000\000\000\000\000\n\142\000\000\000\000\000\000\020F\000\000\007\166\000\000\000\000\000\000\000\000\000\000\000\000\000\242\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\030\019\182\020^\020v\020\214\000\000\000\000\000\000\000\000\000\000\000\000\b\130\003\154\000\000\000\000\003j\n\129\r2\020\238\000\000\bf\000\000\000\000\001\137\000\000\000\000\000\000\000\000\000\000\021\006\000\000\001\234\000\000\r~\000\000\000\000\000\000\000\000\b\190\000\000\000\000\000\000\014*\000\000\000\000\000\000\021f\001\137\000\000\021\158\020\142\000\000$\186\000\000\b\210\001\137\021\030#\"\000\000\001\190\020\166\020\190\000\000\000\000\000\000\003\138\0216\021N\n\n\n\014\000\000\000\000\000\000\n\018\000\000\n\026\000\000\015J\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\nN\nb\nf\000\000\nj\nr\n~\000\000\000\000\b\130\003\154\000\000\000\000\003j\000\000\r2\n\134\n\138\bf\000\000\000\000#&\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\234\000\000\r~\000\000\000\000\000\000\000\000\b\190\000\000\000\000\000\000\014*\000\000\000\000%\198\000\000\n\142\000\000\000\000\000\000\000\000\000\000\007\166\b\210\000\000\000\000\014\186\000\000\001\190\000\000\000\000\000\000\000\000\000\000\003\138\000\000\000\000\n\n\n\014\000\000\000\000\000\000\n\018\000\000\n\026\000\000\015J\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\nN\nb\nf\000\000\nj\nr\n~\000\000\000\000\b\130\003\154\000\000\000\000\003j\000\000\r2\n\134\n\138\bf\000\000\000\000\021\206\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\234\000\000\r~\000\000\000\000\000\000\000\000\b\190\000\000\000\000\000\000\014*\000\000\000\000#\194\000\000\n\142\000\000\000\000\000\000\000\000\000\000\007\166\b\210\000\000\000\000\014\186\000\000\001\190\000\000\000\000\000\000\000\000\000\000\003\138\000\000\000\000\n\n\n\014\000\000\000\000\000\000\n\018\000\000\n\026\000\000\015J\000\000\000\000\nJ\000\000\000\000\000\000\001\n\000\000\000\000\000\000\000\000\003v\000\000\nN\nb\nf\000\000\nj\nr\n~\001\014\001\018\001\022\001\026\001\030\000\000\001\"\000\000\000\000\n\134\n\138\000\000\000\000\000\000\021\206\000\000\001&\000\000\001*\001.\000\000\000\000\000\000\000\000\000\000\0012\000\000\000\000\0016\000\000\000\000\000\000\000\000\000\000\000\000\000\000$\"\t\021\n\142\000\000\000\000\t\021\000\000\000\000\007\166\t\021\000\000\000\000\001:\001>\001B\001F\001J\000\000\000\000\000\000\t\021\000\000\t\021\001N\t\021\000\000\t\021\000\000\000\000\000\000\001R\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\021\000\000\001V\000\000\000\000\000\000\000\000\t\021\t\021\001Z\000\000\000\000\000\000\000\000\000\000\000\000\002\238\000\000\t\021\000\000\000\000\t\021\001\150.*\000\000\000\000\000\000\t\021\t\021\001\154\000\000\001\158\000\000\001\162\001\166\000\000\t\021\001\170\000\000\001\174\001\178\000\000\000\000\000\000\000\000\t\021\000\000\000\000\t\021\000\000\000\000\000\000\000\000\000\000\t\021\b\130\003\154\000\000\000\000\003j\000\000\b\162\000\000\000\000\bf\000\000\t\021\000\000\t\021\t\021\000\000\t\021\t\021\000\000\000\000\001\234\000\000\000\000\000\000\000\000\000\000\000\000\b\190\000\000\t\021\000\000\t\021\000\000\000\000\t\021\000\000\000\000\t\021\000\000\000\000\000\000\000\000\000\000\b\210\000\000\000\000\b\230\000\000\001\190\000\000\t\021\t\021\000\000\000\000\003\138\000\000\000\000\n\n\n\014\000\000\000\000\000\000\n\018\000\000\n\026\n>'r\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\nN\nb\nf\000\000\nj\nr\n~\000\000\000\000\003\150\003\154\000\000\000\000\003j\000\000\016~\n\134\n\138\bf\007!\011\002\000\000\000\000\007!\t\181\000\000\000\000\000\000\000\000\001\234\000\000'z\000\000\bn\007!\000\000\000\000\000\000\007!\000\000\007!\000\000\000\000\000\000\br\n\142\tv\000\000\000\000\000\000\000\000\007\166\000\000\007!\000\000\t\182\000\000\001\190\000\000\000\000\007!\000\000\016\226\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\007!\000\000\000\000\000\000\nJ\000\000\007!\tN\000\242\000\000\000\000\000\000\000\000\000\000\000\000\007!\nb\nf\000\000\r\206\r\222\b\130\003\154\000\000\007!\003j\000\000\b\134\000\000\000\000\bf\n\134\n\138\000\000\000\000\000\000\000\000\000\000\012\002\000\000\000\000\001\234\r\226\000\000\r\230\007!\000\000\007!\b\190\000\000\007!\007!\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\142\r\238\000\000\016\170\b\210\015\250\007\166\b\230\000\000\001\190\000\000\007!\000\000\000\000\000\000\003\138(\250\000\000\n\n\n\014\004F\000\000\000\000\n\018\007!\n\026\n>\nn\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\nN\nb\nf\000\000\nj\nr\n~\000\000\000\000\b\130\003\154\000\000\000\000\003j\000\000\n\174\n\134\n\138\bf\000\000\011\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\234\000\000\000\000\000\000\000\000\000\000\000\000\b\190\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\142\000\000\012R\000\000\000\000\000\000\007\166\b\210\000\000\000\000\b\230\000\000\001\190\000\000\000\000\000\000\000\000\000\000\003\138\000\000\000\000\n\n\n\014\000\000\000\000\000\000\n\018\000\000\n\026\n>\n\202\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\nN\nb\nf\000\000\nj\nr\n~\000\000\000\000\b\130\003\154\000\000\000\000\003j\000\000\0112\n\134\n\138\bf\000\000\011\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\234\000\000\012\030\000\000\000\000\000\000\000\000\b\190\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\142\000\000\000\000\000\000\000\000\000\000\007\166\b\210\000\000\000\000\b\230\000\000\001\190\000\000\000\000\000\000\000\000\000\000\003\138\000\000\000\000\n\n\n\014\000\000\000\000\000\000\n\018\000\000\n\026\n>\011N\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\nN\nb\nf\000\000\nj\nr\n~\000\000\000\000\b\130\003\154\000\000\000\000\003j\000\000\011\162\n\134\n\138\bf\000\000\011\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\234\000\000\011b\000\000\000\000\000\000\000\000\b\190\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\142\000\000\000\000\000\000\000\000\000\000\007\166\b\210\000\000\000\000\b\230\000\000\001\190\000\000\000\000\000\000\000\000\000\000\003\138\000\000\000\000\n\n\n\014\000\000\000\000\000\000\n\018\000\000\n\026\n>\011\190\000\000\020i\nJ\000\000\000\000\020i\000\000\000\000\000\000\020i\000\000\000\000\000\000\nN\nb\nf\000\000\nj\nr\n~\020i\000\000\020i\000\000\020i\000\000\020i\000\000\000\000\n\134\n\138\000\000\000\000\011\002\000\000\000\000\000\000\000\000\000\000\020i\000\000\000\000\000\000\000\000\011\198\000\000\020i\000\000\020i\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020i\n\142\000\000\020i\000\000\000\000\000\000\007\166\000\000\020i\020i\020i\000\000\001\226\001\230\000\000\000\000\000\000\020i\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020i\000\000\000\000\020i\000\000\000\000\001\234\002&\000\000\020i\000\000\000\000\020e\000\000\000\000\000\000\020e\000\000\000\000\000\000\020e\020i\000\000\020i\020i\000\000\020i\020i\000\000\000\000\000\000\020e\003~\020e(J\020e\000\000\020e\003z\000\000\003\138\003\186\003\198\020i\000\000\000\000\000\000\020i\003\210\000\000\020e\000\000\000\000\000\000\000\000\020i\020i\020e\005\206\020e\020i\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020e\000\000\003\214\020e\003\230\000\000\000\000\000\000\007\153\020e\020e\020e\000\000\000\000\000\000\000\000\000\000\000\000\020e\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020e\000\000(b\020e\000\000\000\000\000\000\000\000\000\000\020e\000\000\000\000\012\197\000\000\000\000\000\000\012\197\000\000\000\000\000\000\012\197\020e\000\000\020e\020e\000\000\020e\020e\000\000\000\000\000\000\012\197\000\000\012\197\000\000\012\197\000\000\012\197\000\000\016\170\000\000\000\000\000\000\020e\000\000\000\000\000\000\020e\000\000\000\000\012\197\000\000\000\000\000\000\000\000\020e\020e\012\197\000\000\012\197\020e\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012\197\000\000\000\000\012\197\000\000\000\000\000\000\000\000\000\000\012\197\012\197\000\242\000\000\000\000\000\000\000\000\000\000\000\000\012\197\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012\197\000\000\000\000\012\197\000\000\000\000\000\000\000\000\000\000\012\197\000\000\000\000\000\000\003\150\003\154\000\000\000\000\003j\000\000\000\000\000\000\012\197\bf\012\197\012\197\000\000\012\197\012\197\t\221\000\000\000\000\000\000\000\000\001\234\000\000\000\000\000\000\bn\000\000\012\197\000\000\000\000\000\000\012\197\000\000\000\000\000\000\012\197\br\000\000\tv\000\000\000\000\000\000\000\000\012\197\012\197\000\000\000\000\t\182\012\197\001\190\000\000\000\000\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\000\000\000\000\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\nb\nf\n\177\r\206\r\222\001\230\n\177\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\177\n\134\n\138\n\177\000\000\000\000\001\230\n\177\000\000\n\177\000\000\000\000\r\226\000\000\r\230\n\177\000\000\000\000\n\177\000\000\000\000\000\000\n\177\000\000\n\177\000\000\000\000\000\000\000\000\n\177\n\142\r\238\000\000\000\000\000\000\015\250\007\166\n\177\003\226\000\000\n\177\000\000\000\000\n\177\n\177\000\000\n\177\000\000\000\000\n\177\n\177\n\177\000\000\003\226\000\000\n\177\000\000\000\000\n\177\000\000\000\000\000\000\000\000\000\000\n\177\n\177\n\177\n\177\n\177\000\000\n\177\000\000\000\000\n\177\000\000\000\000\005v\000\000\000\000\000\000\000\000\000\000\n\177\n\177\000\000\n\177\000\000\000\000\n\177\000\000\n\177\005v\000\000\n\177\n\177\000\000\000\000\004\133\000\000\000\000\001\230\004\133\000\000\n\177\000\000\n\177\n\177\000\000\n\177\n\177\000\000\000\000\004\133\000\000\n\177\000\000\004\133\000\000\004\133\n\177\000\000\n\177\002\130\000\000\000\000\000\000\000\000\n\177\000\000\n\177\000\000\004\133\000\000\000\000\n\177\000\000\000\000\002\130\004\133\000\000\n\177\000\000\n\177\000\000\000\000\000\000\000\000\003\226\000\000\004\133\000\000\000\000\004\133\000\000\000\000\000\000\000\000\000\000\004\133\004\133\004\133\000\000\000\000\000\000\000\000\000\000\000\000\004\133\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\133\004\133\000\000\004\133\000\000\000\000\000\000\000\000\000\000\005v\000\000\000\000\000\000\000\000\000\000\000\000\004\129\000\000\000\000\001\230\004\129\004\133\000\000\004\133\000\000\000\000\004\133\004\133\n\177\000\000\000\000\004\129\000\000\000\000\000\000\004\129\000\000\004\129\000\000\004\133\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\133\000\000\000\000\004\129\000\000\004\133\000\000\000\000\002\130\000\000\004\129\000\000\n\177\004\133\000\000\000\000\000\000\000\000\000\000\003\226\000\000\004\129\000\000\000\000\004\129\000\000\000\000\000\000\000\000\000\000\004\129\004\129\004\129\000\000\000\000\000\000\000\000\000\000\000\000\004\129\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\129\004\129\000\000\004\129\000\000\000\000\000\000\000\000\000\000\005v\000\000\b\157\000\000\000\000\000\000\b\157\000\000\000\000\000\000\b\157\000\000\004\129\000\000\004\129\000\000\000\000\004\129\004\129\000\000\000\000\b\157\000\000\b\157\000\000\b\157\000\000\b\157\000\000\000\000\004\129\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\129\000\000\b\157\000\000\000\000\004\129\000\000\000\000\002\130\b\157\000\000\b\157\000\000\004\129\000\000\000\000\017z\000\000\000\000\000\000\b\157\000\000\000\000\b\157\000\000\000\000\000\000\000\000\000\000\b\157\b\157\000\242\000\000\000\000\000\000\b\130\003\154\000\000\b\157\003j\000\000'\138\000\000\000\000\bf\000\000\000\000\b\157\000\000\000\000\b\157\000\000\000\000\000\000\000\000\001\234\b\157\000\000\000\000\000\000\000\000\000\000\b\190\000\000\000\000\000\000\000\000\000\000\b\157\000\000\b\157\b\157\000\000\b\157\b\157\000\000\000\000\000\000\b\210\000\000\000\000\b\230\000\000\001\190\000\000\000\000\000\000\000\000\000\000\003\138\b\157\000\000\n\n\n\014\b\157\000\000\000\000\n\018\000\000\n\026\n>'\166\b\157\b\157\nJ\004\213\000\000\b\157\000\000\004\213\000\000\000\000\000\000\004\213\000\000\nN\nb\nf\000\000\nj\nr\n~\000\000\000\000\004\213\000\000\004\213\000\000\004\213\000\000\004\213\n\134\n\138\000\000\000\000\011\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\213\000\000\000\000'\174\000\000\000\000\000\000\004\213\004\213\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\142\004\213\000\000\000\000\004\213\000\000\007\166\000\000\000\000\000\000\004\213\004\213\000\242\000\000\000\000\000\000\000\000\000\000\000\000\004\213\000\000\000\000\000\000\000\000\000\000\004\221\000\000\000\000\004\213\004\221\000\000\004\213\000\000\004\221\000\000\000\000\000\000\004\213\000\000\000\000\000\000\000\000\000\000\000\000\004\221\000\000\004\221\000\000\004\221\004\213\004\221\004\213\004\213\000\000\004\213\004\213\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\221\000\000\000\000\000\000\004\213\000\000\004\213\004\221\004\221\004\213\000\000\000\000\004\213\000\000\000\000\000\000\000\000\001\n\004\221\000\000\000\000\004\221\000\000\000\000\000\000\004\213\004\213\004\221\004\221\000\242\000\000\001\014\001\018\001\022\001\026\001\030\004\221\001\"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\221\000\000\001&\004\221\001*\001.\000\000\000\000\000\000\004\221\000\000\0012\000\000\000\000\0016\000\000\000\000\000\000\000\000\000\000\000\000\004\221\000\000\004\221\004\221\000\000\004\221\004\221\000\000\000\000\000\000\000\000\000\000\000\000\001:\001>\001B\001F\001J\004\221\000\000\004\221\000\000\000\000\004\221\001N\000\000\004\221\000\000\000\000\000\000\000\000\001R\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\221\004\221\000\000\001V\000\000\000\000\000\000\000\000\004\229\000\000\001Z\000\000\004\229\000\000\000\000\000\000\004\229\000\000\000\000\000\000\000\000\000\000\000\000\001\150.F\000\000\000\000\004\229\000\000\004\229\001\154\004\229\001\158\004\229\001\162\001\166\000\000\000\000\001\170\000\000\001\174\001\178\000\000\000\000\000\000\000\000\004\229\000\000\000\000\000\000\000\000\000\000\000\000\004\229\004\229\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\229\000\000\000\000\004\229\000\000\000\000\000\000\000\000\000\000\004\229\004\229\000\000\000\000\000\000\000\000\b\130\003\154\000\000\004\229\003j\000\000\t\238\000\000\000\000\bf\000\000\000\000\004\229\000\000\000\000\004\229\000\000\000\000\000\000\000\000\001\234\004\229\000\000\000\000\000\000\000\000\000\000\b\190\000\000\000\000\000\000\000\000\000\000\004\229\000\000\004\229\004\229\000\000\004\229\004\229\000\000\000\000\000\000\b\210\000\000\000\000\b\230\000\000\001\190\000\000\000\000\004\229\000\000\004\229\003\138\000\000\004\229\n\n\n\014\004\229\000\000\000\000\n\018\000\000\n\026\n>\012j\000\000\000\000\nJ\000\000\000\000\004\229\002B\000\000\000\000\000\000\000\000\000\000\000\000\nN\nb\nf\000\000\nj\nr\n~\000\000\000\000\b\130\003\154\000\000\000\000\003j\000\000\012\150\n\134\n\138\bf\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\234\000\000\012r\000\000\000\000\000\000\000\000\b\190\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\142\000\000\000\000\000\000\000\000\000\000\007\166\b\210\000\000\000\000\b\230\000\000\001\190\000\000\000\000\000\000\000\000\000\000\003\138\000\000\000\000\n\n\n\014\000\000\000\000\000\000\n\018\000\000\n\026\n>\012\178\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\nN\nb\nf\000\000\nj\nr\n~\000\000\000\000\b\130\003\154\000\000\000\000\003j\000\000\012\202\n\134\n\138\bf\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\234\000\000\012\186\000\000\000\000\000\000\000\000\b\190\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\142\000\000\000\000\000\000\000\000\000\000\007\166\b\210\000\000\000\000\b\230\000\000\001\190\000\000\000\000\000\000\000\000\000\000\003\138\000\000\000\000\n\n\n\014\000\000\000\000\000\000\n\018\000\000\n\026\n>\012\230\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\nN\nb\nf\000\000\nj\nr\n~\000\000\000\000\b\130\003\154\000\000\000\000\003j\000\000\r\002\n\134\n\138\bf\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\234\000\000\012\238\000\000\000\000\000\000\000\000\b\190\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\142\000\000\000\000\000\000\000\000\000\000\007\166\b\210\000\000\000\000\b\230\000\000\001\190\000\000\000\000\000\000\000\000\000\000\003\138\000\000\000\000\n\n\n\014\000\000\000\000\000\000\n\018\000\000\n\026\n>\r\030\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\nN\nb\nf\000\000\nj\nr\n~\000\000\000\000\b\130\003\154\000\000\000\000\003j\000\000\b\134\n\134\n\138\bf\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\234\000\000\r&\000\000\000\000\000\000\000\000\b\190\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\142\000\000\000\000\000\000\000\000\000\000\007\166\b\210\000\000\000\000\014:\000\000\001\190\000\000\000\000\000\000\000\000\000\000\003\138\000\000\000\000\n\n\n\014\000\000\000\000\000\000\n\018\000\000\n\026\n>\nn\000\000\016~\nJ\000\000\000\000\b\149\000\000\000\000\000\000\b\149\000\000\000\000\000\000\nN\nb\nf\000\000\nj\nr\n~\b\149\000\000\b\149\000\000\b\149\000\000\b\149\000\000\000\000\n\134\n\138\000\000\000\000\011\002\000\000\000\000\000\000\000\000\000\000\b\149\000\000\000\000\000\000\000\000\000\000\000\000\b\149\000\000\016\226\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\149\n\142\000\000\b\149\000\000\000\000\000\000\007\166\000\000\b\149\b\149\000\242\000\000\000\000\000\000\000\000\000\000\000\000\b\149\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\149\000\000\000\000\b\149\000\000\000\000\000\000\000\000\000\000\b\149\000\000\000\000\020u\000\000\000\000\000\000\020u\000\000\000\000\000\000\020u\b\149\000\000\b\149\b\149\000\000\b\149\b\149\000\000\000\000\000\000\020u\000\000\020u\000\000\020u\000\000\020u\000\000\000\000\000\000\000\000\000\000\b\149\000\000\000\000\000\000\b\149\000\000\000\000\020u\000\000\000\000\000\000\000\000\b\149\004F\020u\000\000\020u\b\149\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020u\000\000\000\000\020u\000\000\000\000\000\000\000\000\000\000\020u\020u\000\242\000\000\000\000\000\000\000\000\000\000\000\000\020u\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020u\000\000\000\000\020u\000\000\000\000\000\000\000\000\000\000\020u\000\000\000\000\016~\000\000\000\000\000\000\b\189\000\000\000\000\000\000\b\189\020u\000\000\020u\020u\000\000\020u\020u\000\000\000\000\000\000\b\189\000\000\b\189\000\000\b\189\000\000\b\189\000\000\000\000\000\000\000\000\000\000\020u\000\000\000\000\000\000\020u\000\000\000\000\b\189\000\000\000\000\000\000\000\000\020u\004F\b\189\000\000\016\226\020u\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\189\000\000\000\000\b\189\000\000\000\000\000\000\000\000\000\000\b\189\b\189\000\242\000\000\000\000\000\000\000\000\000\000\000\000\b\189\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\189\000\000\000\000\b\189\000\000\000\000\000\000\000\000\000\000\b\189\000\000\000\000\016~\000\000\000\000\000\000\b\181\000\000\000\000\000\000\b\181\b\189\000\000\b\189\b\189\000\000\b\189\b\189\000\000\000\000\000\000\b\181\000\000\b\181\000\000\b\181\000\000\b\181\000\000\000\000\000\000\000\000\000\000\b\189\000\000\000\000\000\000\b\189\000\000\000\000\b\181\000\000\000\000\000\000\000\000\b\189\004F\b\181\000\000\016\226\b\189\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\181\000\000\000\000\b\181\000\000\000\000\000\000\000\000\000\000\b\181\b\181\000\242\000\000\000\000\000\000\000\000\000\000\000\000\b\181\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\181\000\000\000\000\b\181\000\000\000\000\000\000\000\000\000\000\b\181\000\000\000\000\b\185\000\000\000\000\000\000\b\185\000\000\000\000\000\000\b\185\b\181\000\000\b\181\b\181\000\000\b\181\b\181\000\000\000\000\000\000\b\185\000\000\b\185\000\000\b\185\000\000\b\185\000\000\000\000\000\000\000\000\000\000\b\181\000\000\000\000\000\000\b\181\000\000\000\000\b\185\000\000\000\000\000\000\000\000\b\181\004F\b\185\000\000\016\218\b\181\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\185\000\000\000\000\b\185\000\000\000\000\000\000\000\000\000\000\b\185\b\185\b\185\000\000\000\000\000\000\000\000\000\000\000\000\b\185\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\185\000\000\000\000\b\185\000\000\000\000\000\000\000\000\000\000\b\185\000\000\000\000\b\193\000\000\000\000\000\000\b\193\000\000\000\000\000\000\b\193\b\185\000\000\b\185\b\185\000\000\b\185\b\185\000\000\000\000\000\000\b\193\000\000\b\193\000\000\b\193\000\000\b\193\000\000\000\000\000\000\000\000\000\000\b\185\000\000\000\000\000\000\b\185\000\000\000\000\b\193\000\000\000\000\000\000\000\000\b\185\b\185\b\193\000\000\016\218\b\185\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\193\000\000\000\000\b\193\000\000\000\000\000\000\000\000\000\000\b\193\b\193\b\193\000\000\000\000\000\000\000\000\000\000\000\000\b\193\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\193\000\000\000\000\b\193\000\000\000\000\000\000\000\000\000\000\b\193\000\000\000\000\020y\000\000\000\000\000\000\020y\000\000\000\000\000\000\020y\b\193\000\000\b\193\b\193\000\000\b\193\b\193\000\000\000\000\000\000\020y\000\000\020y\000\000\020y\000\000\020y\000\000\000\000\000\000\000\000\000\000\b\193\000\000\000\000\000\000\b\193\000\000\000\000\020y\000\000\000\000\000\000\000\000\b\193\b\193\020y\000\000\016\226\b\193\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020y\000\000\000\000\020y\000\000\000\000\000\000\000\000\000\000\020y\020y\000\242\000\000\000\000\000\000\000\000\000\000\000\000\020y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020y\000\000\000\000\020y\000\000\000\000\000\000\000\000\000\000\020y\000\000\000\000\b\197\000\000\000\000\000\000\b\197\000\000\000\000\000\000\b\197\020y\000\000\020y\020y\000\000\020y\020y\000\000\000\000\000\000\b\197\000\000\b\197\000\000\b\197\000\000\b\197\000\000\000\000\000\000\000\000\000\000\020y\000\000\000\000\000\000\020y\000\000\000\000\b\197\000\000\000\000\000\000\000\000\020y\004F\b\197\000\000\b\197\020y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\197\000\000\000\000\b\197\000\000\000\000\000\000\000\000\000\000\b\197\b\197\b\197\000\000\000\000\000\000\000\000\000\000\000\000\b\197\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\197\000\000\000\000\b\197\000\000\000\000\000\000\000\000\000\000\b\197\000\000\000\000\b\153\000\000\000\000\000\000\b\153\000\000\000\000\000\000\b\153\b\197\000\000\b\197\b\197\000\000\b\197\b\197\000\000\000\000\000\000\b\153\000\000\b\153\000\000\b\153\000\000\b\153\000\000\000\000\000\000\000\000\000\000\b\197\000\000\000\000\000\000\b\197\000\000\000\000\b\153\000\000\000\000\000\000\000\000\b\197\b\197\b\153\000\000\016\218\0176\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\153\000\000\000\000\b\153\000\000\000\000\000\000\000\000\000\000\b\153\b\153\b\153\000\000\000\000\000\000\000\000\000\000\000\000\b\153\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\153\000\000\000\000\b\153\000\000\000\000\000\000\000\000\000\000\b\153\000\000\000\000\b\173\000\000\000\000\000\000\b\173\000\000\000\000\000\000\b\173\b\153\000\000\b\153\b\153\000\000\b\153\b\153\000\000\000\000\000\000\b\173\000\000\b\173\000\000\b\173\000\000\b\173\000\000\000\000\000\000\000\000\000\000\b\153\000\000\000\000\000\000\b\153\000\000\000\000\b\173\000\000\000\000\000\000\000\000\b\153\b\153\b\173\000\000\016\226\b\153\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\173\000\000\000\000\b\173\000\000\000\000\000\000\000\000\000\000\b\173\b\173\000\242\000\000\000\000\000\000\000\000\000\000\000\000\b\173\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\173\000\000\000\000\b\173\000\000\000\000\000\000\000\000\000\000\b\173\000\000\000\000\b\177\000\000\000\000\000\000\b\177\000\000\000\000\000\000\b\177\b\173\000\000\b\173\b\173\000\000\b\173\b\173\000\000\000\000\000\000\b\177\000\000\b\177\000\000\b\177\000\000\b\177\000\000\000\000\000\000\000\000\000\000\b\173\000\000\000\000\000\000\b\173\000\000\000\000\b\177\000\000\000\000\001\226\001\230\b\173\004F\b\177\000\000\016\218\b\173\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\177\000\000\000\000\b\177\000\000\001\234\001\238\000\000\000\000\b\177\b\177\b\177\000\000\000\000\000\000\000\000\000\000\000\000\b\177\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\177\000\000\000\000\b\177\030\234\000\000\003\226\000\000\000\000\b\177\003z\000\000\003\138\003\186\003\198\000\000\000\000\000\000\000\000\000\000\003\210\b\177\030b\b\177\b\177\000\000\b\177\b\177\000\000\000\000\b\130\003\154\000\000\000\000\003j\000\000\t\210\000\000\000\000\bf\000\000\000\000\003\214\b\177\003\230\t\185\000\000\b\177\000\000\030\178\001\234\000\000\000\000\000\000\000\000\b\177\b\177\b\190\000\000\000\000\b\177\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\210\000\000\000\000\b\230\000\000\001\190\000\000\000\000\000\000\000\000\000\000\003\138\000\000\000\000\n\n\n\014\000\000\000\000\000\000\n\018\000\000\n\026\n>\012\246\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\nN\nb\nf\000\000\nj\nr\n~\000\000\000\000\b\130\003\154\000\000\000\000\003j\000\000\022\174\n\134\n\138\bf\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\234\000\000\000\000\000\000\000\000\000\000\000\000\b\190\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\142\000\000\000\000\000\000\000\000\000\000\007\166\b\210\000\000\000\000\b\230\000\000\001\190\000\000\000\000\000\000\000\000\000\000\003\138\000\000\000\000\n\n\n\014\000\000\000\000\000\000\n\018\000\000\n\026\n>\022\202\000\000\000\000\nJ\000\000\000\000\000\193\000\000\000\000\000\000\000\193\000\000\000\000\000\000\nN\nb\nf\000\000\nj\nr\n~\000\193\000\000\000\193\000\000\000\193\000\000\000\193\000\000\000\000\n\134\n\138\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\193\000\000\000\000\000\000\000\000\022\210\000\000\000\193\000\000\000\000\000\000\000\000\000\193\000\000\000\000\000\000\000\000\000\000\000\193\n\142\000\000\000\193\000\000\000\000\000\000\007\166\000\000\000\193\000\193\000\242\000\000\000\000\000\000\000\000\000\000\000\000\000\193\000\000\000\193\000\193\000\000\000\000\000\000\000\000\000\000\000\193\000\000\000\000\000\193\000\000\000\000\000\000\000\000\000\000\000\193\000\250\000\000\000\000\000\000\t*\001\005\000\000\000\000\000\000\001\005\000\000\000\193\000\000\000\193\000\000\007U\000\193\000\193\000\000\000\000\001\005\tZ\001\005\000\000\001\005\000\000\001\005\000\000\000\000\000\193\000\000\000\000\000\000\000\000 J\000\000\000\193\000\193\000\000\001\005\000\000 r\000\000\000\000\000\000\000\000\001\005\000\000\000\193\000\000\000\193\001\005&\018\000\000\000\000 \214\000\000\001\005\000\000\000\000\001\005 \238\000\000\000\000\000\000\000\000\001\005\001\005\000\242\000\000 \246\000\000\000\000\000\000\000\000\001\005\000\000\001\005\001\005!\006\000\000\000\000\000\000\000\000\001\005\000\000\000\000\001\005\000\000\000\000\000\000\000\000\000\000\001\005\000\000\000\000\000\000\000\000\000\000\000\201!\014\000\000!N\000\201\000\000\001\005\000\000\001\005\000\000\000\000\001\005\001\005\000\000\000\000\000\201\000\000\000\201\000\000\000\201\000\000\000\201\000\000\000\000\001\005\000\000\000\000!\150\000\000\000\000\000\000\001\005\001\005\000\000\000\201\000\000\000\000\000\000\000\000\000\000\000\000\000\201\000\000\001\005\000\000\001\005\000\201\000\000\000\000\000\000\000\000\000\000\000\201\000\000\000\000\000\201\000\000\000\000\000\000\000\000\000\000\000\201\000\201\000\242\000\000\000\000\000\000\000\000\000\000\000\000\000\201\000\000\000\201\000\201\000\000\000\000\000\000\000\000\000\000\000\201\000\000\000\000\000\201\000\000\000\000\000\000\000\000\000\000\000\201\000\000\000\000\000\000\000\000\000\000\000\197\000\000\000\000\000\000\000\197\000\000\000\201\000\000\000\201\000\000\000\000\000\201\000\201\000\000\000\000\000\197\000\000\000\197\000\000\000\197\000\000\000\197\000\000\000\000\000\201\000\000\000\000\000\000\000\000\000\000\000\000\000\201\000\201\000\000\000\197\000\000\000\000\000\000\000\000\000\000\000\000\000\197\000\000\000\201\000\000\000\201\000\197\000\000\000\000\000\000\000\000\000\000\000\197\000\000\000\000\000\197\000\000\000\000\000\000\000\000\000\000\000\197\000\197\000\242\000\000\000\000\000\000\000\000\000\000\000\000\000\197\000\000\000\197\000\197\000\000\000\000\000\000\000\000\000\000\000\197\001\221\000\000\000\197\000\000\001\221\000\000\000\000\000\000\000\197\000\000\000\000\000\000\000\000\000\000\000\000\001\221\000\000\000\000\000\000\001\221\000\197\001\221\000\197\000\000\000\000\000\197\000\197\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\221\000\000\001\221\000\000\000\197\000\000\000\000\001\221\000\000\000\000\000\000\000\197\000\197\000\000\007\205\000\000\000\000\000\000\001\221\000\000\000\000\001\221\000\000\000\197\000\000\000\197\000\000\001\221\001\221\001\221\000\000\000\000\000\000\000\000\000\000\000\000\001\221\000\000\000\000\000\000\007\197\000\000\000\000\019\205\007\197\001\221\000\000\000\000\001\221\000\000\000\000\000\000\019\205\000\000\001\221\007\197\000\000\007\197\000\000\007\197\000\000\007\197\000\000\000\000\000\000\000\000\001\221\000\000\001\221\000\000\000\000\001\221\001\221\000\000\007\197\000\000\000\000\000\000\000\000\000\000\007\205\007\197\000\000\019\205\001\221\000\000\000\000\000\000\000\000\000\000\019\205\001\221\001\221\000\000\000\000\007\197\000\000\001\221\000\000\000\000\000\000\007\197\007\197\007\197\000\000\001\221\000\000\000\000\000\000\000\000\007\197\000\000\002V\000\000\000\000\000\000\004\205\000\000\000\000\007\197\004\205\000\000\002^\000\000\000\000\000\000\000\000\000\000\019\205\000\000\000\000\004\205\000\000\000\000\000\000\004\205\000\000\004\205\000\000\000\000\007\197\000\000\007\197\007\197\000\000\007\197\007\197\000\000\000\000\000\000\004\205\000\000\000\000\000\000\000\000\000\000\000\000\004\205\002\234\000\000\000\000\000\000\000\000\000\000\000\000%\"\007\197\000\000\004\205\000\000\000\000\004\205\000\000\000\000\000\000\000\000\000\000\004\205\004\205\007\197\000\000\000\000\000\000\000\000\000\000\000\000\004\205\000\000\000\000\000\000\000\000\000\000\007!\000\000\000\000\004\205\007!\000\000\004\205\000\000\000\000\000\000\000\000\000\000\004\205\000\000\000\000\007!\000\000\000\000\000\000\007!\000\000\007!\000\000\000\000\004\205\000\000\004\205\004\205\000\000\004\205\004\205\000\000\000\000\000\000\007!\000\000\000\000\000\000\000\000\000\000\000\000\007!\004\205\000\000\000\000\000\000\007!\004\205\003\242\000\000\004\205\000\000\007!\000\000\000\000\007!\000\000\000\000\000\000\000\000\000\000\007!\tN\004\205\002\250\000\000\000\000\000\000\000\000\000\000\007!\000\000\007!\007!\000\000\000\000\000\000\000\000\000\000\007!\007!\000\000\007!\000\000\000\000\000\000\000\000\000\000\007!\002\001\000\000\000\000\000\000\002\001\000\000\000\000\000\000\000\000\000\000\000\000\007!\rI\007!\000\000\002\001\007!\007!\000\000\002\001\000\000\002\001\000\000\000\000\000\000\003\254\000\000\000\000\000\000\007!\000\000\000\000\000\000\000\000\002\001\000\000\000\000\007!\000\000\000\000\000\000\002\001&\222\002\001\000\000\007!\000\000\000\000\000\000\000\000\007!\000\000\002\001\000\000\000\000\002\001\000\000\000\000\000\000\000\000\000\000\002\001\002\001\002\001\000\000\000\000\000\000\000\000\000\000\000\000\002\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\001\002\001\000\000\002\001\000\000\000\000\000\000\000\000\000\000\002\001\002\t\000\000\000\000\000\000\002\t\000\000\000\000\000\000\000\000\000\000\000\000\002\001\rQ\002\001\000\000\002\t\002\001\002\001\000\000\002\t\000\000\002\t\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\001\000\000\000\000\000\000\000\000\002\t\000\000\000\000\002\001\000\000\000\000\000\000\002\t\002\001\002\t\000\000\000\000\000\000\000\000\000\000\000\000\002\001\000\000\002\t\000\000\000\000\002\t\000\000\000\000\000\000\000\000\000\000\002\t\002\t\002\t\000\000\000\000\000\000\000\000\000\000\000\000\002\t\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\t\002\t\000\000\002\t\000\000\000\000\000\000\000\000\000\000\002\t\002\005\000\000\000\000\000\000\002\005\000\000\000\000\000\000\000\000\000\000\000\000\002\t\rM\002\t\000\000\002\005\002\t\002\t\000\000\002\005\000\000\002\005\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\t\000\000\000\000\000\000\000\000\002\005\000\000\000\000\002\t\000\000\000\000\000\000\002\005\002\t\002\005\000\000\000\000\000\000\000\000\000\000\000\000\002\t\000\000\002\005\000\000\000\000\002\005\000\000\000\000\000\000\000\000\000\000\002\005\002\005\002\005\000\000\000\000\000\000\000\000\000\000\000\000\002\005\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\005\002\005\000\000\002\005\000\000\000\000\000\000\000\000\000\000\002\005\001\253\000\000\000\000\000\000\001\253\000\000\000\000\000\000\000\000\000\000\000\000\002\005\rE\002\005\000\000\001\253\002\005\002\005\000\000\001\253\000\000\001\253\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\005\000\000\000\000\000\000\000\000\001\253\000\000\000\000\002\005\000\000\000\000\000\000\001\253\002\005\001\253\000\000\000\000\000\000\000\000\000\000\000\000\002\005\000\000\001\253\000\000\000\000\001\253\000\000\000\000\000\000\000\000\000\000\001\253\001\253\001\253\000\000\000\000\000\000\000\000\000\000\000\000\001\253\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\253\001\253\000\000\001\253\019y\000\000\000\000\000\000\019y\001\253\000\000\000\000\000\000\000\000\004}\000\000\000\000\001\230\004}\019y\000\000\001\253\000\000\001\253\000\000\019y\001\253\001\253\000\000\004}\000\000\000\000\000\000\004}\000\000\004}\000\000\000\000\019y\001\253\000\000\000\000\000\000\000\000\000\000\019y\000\000\001\253\004}\000\000\000\000\000\000\001\253\000\000\000\000\004}\019y\000\000\000\000\019y\001\253\000\000\000\000\000\000\003\226\019y\004}\000\000\000\000\004}\000\000\000\000\000\000\000\000\019y\004}\004}\004}\000\000\000\000\000\000\000\000\000\000\019y\004}\000\000\019y\000\000\000\000\000\000\000\000\000\000\019y\004}\004}\000\000\004}\000\000\000\000\000\000\000\000\000\000\005v\000\000\019y\000\000\019y\004y\000\000\019y\001\230\004y\000\000\000\000\004}\000\000\004}\000\000/\014\004}\004}\000\000\004y\000\000\000\000\000\000\004y\000\000\004y\000\000\019y\000\000\004}\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004}\004y\000\000\000\000\000\000\004}\000\000\000\000\004y\000\000\000\000\000\000\000\000\004}\000\000\000\000\000\000\003\226\000\000\004y\000\000\000\000\004y\000\000\000\000\000\000\000\000\000\000\004y\004y\004y\000\000\000\000\000\000\000\000\000\000\000\000\004y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004y\004y\000\000\004y\000\000\000\000\000\000\000\000\000\000\005v\011\161\000\000\000\000\000\000\011\161\000\000\000\000\000\000\000\000\000\000\000\000\004y\000\000\004y\000\000\011\161\004y\004y\000\000\011\161\000\000\011\161\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004y\000\000\000\000\000\000\000\000\011\161\000\000\000\000\004y\000\000\000\000\000\000\011\161\004y\000\000\000\000\000\000\011\161\000\000\000\000\000\000\004y\000\000\011\161\000\000\000\000\011\161\000\000\000\000\000\000\000\000\000\000\011\161\011\161\000\242\000\000\000\000\000\000\000\000\000\000\000\000\011\161\000\000\011\161\011\161\000\000\000\000\011\157\000\000\000\000\011\161\011\157\000\000\011\161\000\000\000\000\000\000\000\000\000\000\011\161\000\000\000\000\011\157\000\000\000\000\000\000\011\157\000\000\011\157\000\000\000\000\011\161\000\000\011\161\011\161\000\000\011\161\011\161\000\000\000\000\000\000\011\157\000\000\000\000\000\000\000\000\000\000\000\000\011\157\011\161\000\000\000\000\000\000\011\157\000\000\000\000\000\000\011\161\000\000\011\157\000\000\000\000\011\157\000\000\000\000\011\161\000\000\000\000\011\157\011\157\000\242\000\000\000\000\000\000\000\000\000\000\000\000\011\157\000\000\011\157\011\157\000\000\000\000\001U\000\000\000\000\011\157\001U\000\000\011\157\000\000\000\000\000\000\000\000\000\000\011\157\000\000\000\000\001U\000\000\001U\000\000\001U\000\000\001U\000\000\000\000\011\157\000\000\011\157\011\157\000\000\011\157\011\157\000\000\000\000\000\000\001U\000\000\000\000\000\000\000\000\000\000\000\000\001U\011\157\000\000\000\000\000\000\001U\000\000\000\000\000\000\011\157\000\000\001U\000\000\000\000\001U\000\000\000\000\011\157\000\000\000\000\001U\001U\000\242\000\000\000\000\000\000\000\000\000\000\000\000\001U\000\000\000\000\001U\000\000\000\000\000\000\000\000\000\000\001U\000\000\000\000\001U\000\000\000\000\000\000\000\000\000\000\001U\000\000\000\000\000\000\000\000\000\000\001Q\000\000\000\000\000\000\001Q\000\000\001U\000\000\001U\001U\000\000\001U\001U\000\000\000\000\001Q\000\000\001Q\000\000\001Q\000\000\001Q\000\000\000\000\001U\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001U\000\000\001Q\000\000\000\000\000\000\000\000\000\000\000\000\001Q\000\000\000\000\000\000\001U\001Q\000\000\000\000\000\000\000\000\000\000\001Q\000\000\000\000\001Q\000\000\000\000\000\000\000\000\000\000\001Q\001Q\000\242\000\000\000\000\000\000\000\000\000\000\000\000\001Q\000\000\000\000\001Q\007\201\000\000\000\000\019\205\007\201\001Q\000\000\000\000\001Q\000\000\000\000\000\000\019\205\000\000\001Q\007\201\000\000\007\201\000\000\007\201\000\000\007\201\000\000\000\000\000\000\000\000\001Q\000\000\001Q\001Q\000\000\001Q\001Q\000\000\007\201\000\000\000\000\000\000\000\000\000\000\000\000\007\201\000\000\019\205\001Q\000\000\000\000\000\000\000\000\000\000\019\205\000\000\001Q\000\000\000\000\007\201\000\000\000\000\000\000\000\000\000\000\007\201\007\201\007\201\000\000\001Q\000\000\000\000\000\000\000\000\007\201\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007\201\002\017\000\000\002^\030F\002\017\000\000\003j\000\000\019\205\000\000\000\000\000\000\000\000\000\000\000\000\002\017\000\000\000\000\000\000\002\017\007\201\002\017\007\201\007\201\000\000\007\201\007\201\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\017\000\000\000\000\000\000\000\000\000\000\000\000\002\017\000\000\000\000\000\000\000\000\007\201\000\000\030J\000\000\000\000\000\000\002\017\000\000\000\000\002\017\000\000\000\000\000\000\007\201\000\000\002\017\002\017\000\000\030V\000\000\000\000\000\000\000\000\000\000\002\017\000\000\000\000\000\000\001E\000\000\000\000\002y\001E\002\017\000\000\000\000\002\017\000\000\000\000\000\000\002y\000\000\002\017\001E\000\000\001E\000\000\001E\000\000\001E\000\000\000\000\000\000\n\138\002\017\000\000\002\017\000\000\000\000\002\017\002\017\000\000\001E\000\000\000\000\000\000\000\000\000\000\000\000\001E\000\000\002y\002\017\000\000\000\000\000\000\000\000\000\000\002y\000\000\002\017\000\000\000\000\001E\000\000\000\000\000\000\000\000\000\000\001E\001E\001E\000\000\002\017\000\000\000\000\000\000\000\000\001E\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001E\004q\000\000\000\000\000\000\004q\000\000\000\000\000\000\002y\000\000\000\000\000\000\000\000\000\000\000\000\004q\000\000\000\000\000\000\004q\001E\004q\001E\001E\000\000\001E\001E\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004q\000\000\030^\000\000\000\000\000\000\000\000\004q\000\000\000\000\000\000\000\000\001E\000\000\000\000\000\000\000\000\000\000\004q\000\000\000\000\004q\000\000\000\000\000\000\001E\000\000\004q\004q\004q\000\000\000\000\000\000\000\000\000\000\000\000\004q\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004q\000\000\000\000\004q\000\000\000\000\000\000\000\000\000\000\004q\001\202\001\226\003f\000\000\000\000\003j\000\000\000\000\000\000\000\000\000\000\004q\000\000\004q&\230\000\000\004q\004q\000\000\000\000\000\000\001\234\002&\001\254\003n\000\000\000\000\000\000\000\000\004q\000\000\000\000\002\n\000\000\001\206\000\000\030\230\004q\000\000\ne\000\000\000\000\004q\ne\000\000\000\000\000\000\003r\001\210\002Z\004q\000\000\000\000\003z\ne\003\138\003\186\003\198\ne\000\000\ne\000\000\000\000(\206\000\000)\022\019\205\000\000\000\000\000\000\000\000\000\000\000\000\ne\000\000\000\000\000\000\000\000\000\000\000\000\ne\000\000\000\000\000\000\000\000\003\214)\"\003\230\000\000\000\000\000\000\ne\000\000\000\000\ne\000\000\000\000\000\000\n\138\000\000\ne\ne\000\000\000\000\b\130\003\154\000\000\000\000\003j\ne\000\000\000\000).\bf\000\000\000\000\000\000\000\000\ne\000\000\000\000\ne\000\000\000\000\001\234\000\000\000\000\ne\000\000\000\000(\238\b\190\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ne\000\000\ne\ne\000\000\ne\ne\000\000\b\210\000\000\000\000\015N\000\000\001\190\000\000\000\000\000\000\000\000\ne\003\138\000\000\000\000\n\n\n\014\000\000\003V\ne\n\018\000\000\n\026\000\000\000\000\000\000\000\000\nJ\000\000\000\000\004q\000\000\ne\000\000\004q\000\000\000\000\000\000\nN\nb\nf\000\000\nj\nr\n~\004q\000\000\000\000\000\000\004q\000\000\004q\000\000\000\000\n\134\n\138\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004q\000\000\030^\000\000\000\000\000\000\000\000\004q\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004q\n\142\000\000\004q\000\000\000\000\000\000\007\166\000\000\004q\004q\004q\001\202\001\226\003f\000\000\000\000\003j\004q\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004q\000\000\000\000\004q\000\000\000\000\001\234\002&\001\254\004q\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\n\000\000\001\206\000\000\004q\000\000\004q'\030\000\000\004q\004q\000\000\000\000\000\000\000\000\003r\001\210\002Z\000\000\000\000\000\000\003z\b)\003\138\003\186\003\198\b)\000\000\000\000\030\230\004q(\206\000\000(\210\000\000\004q\000\000\b)\000\000\000\000\000\000\b)\000\000\b)\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\214(\222\003\230\b)\000\000\000\000\000\000\000\000\000\000\000\000\b)\000\000\000\000\n\138\000\000\000\000\000\000\017z\000\000\000\000\000\000\b)\012\145\000\000\b)\000\000\000\000(\234\000\000\000\000\b)\b)\000\242\000\000\000\000\000\000\000\000\000\000\000\000\b)\012\145\012\145\000\000\012\145\012\145(\238\000\000\000\000\b)\b)\000\000\b)\000\000\000\000\000\000\000\000\000\000\b)\b-\000\000\000\000\000\000\b-\000\000\000\000\000\000\000\000\012\145\000\000\b)\000\000\b)\000\000\b-\b)\b)\000\000\b-\000\000\b-\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012\145\000\000\000\000\000\000\000\000\b-\000\000\000\000\b)\000\000\000\000\000\000\b-\000\000\000\000\000\000\000\000\012\145\000\000\017z\000\000\b)\000\000\b-\000\000\000\000\b-\000\000\000\000\000\000\000\000\000\000\b-\b-\000\242\000\000\000\000\000\000\000\000\000\000\012\145\b-\012\145\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b-\b-\000\000\b-\000\000\000\000\000\000\011.\012\145\b-\b1\012\145\012\145\000\000\b1\000\000\012\145\000\000\012\145\005\137\000\000\b-\012\145\b-\012\145\b1\b-\b-\000\000\b1\000\000\b1\000\000\000\000\000\000\000\000\000\000\005\137\005\137\000\000\005\137\005\137\000\000\000\000\b1\000\000\000\000\b-\000\000\000\000\000\000\b1\000\000\000\000\000\000\000\000\000\000\000\000\017z\000\000\b-\000\000\b1\000\000\005\137\b1\000\000\000\000\000\000\000\000\000\000\b1\b1\000\242\000\000\000\000\000\000\000\000\000\000\000\000\b1\000\000\000\000\000\000\000\242\000\000\000\000\000\000\000\000\b1\b1\000\000\b1\000\000\000\000\000\000\000\000\000\000\b1\b5\000\000\005\137\000\000\b5\000\000\000\000\000\000\000\000\000\000\000\000\b1\000\000\b1\000\000\b5\b1\b1\000\000\b5\000\000\b5\000\000\000\000\000\000\005\137\000\000\005\137\000\000\000\000\000\000\000\000\000\000\000\000\b5\000\000\000\000\b1\000\000\000\000\000\000\b5\005\137\005\137\000\000\000\000\011j\005\137\017z\000\000\b1\005\137\b5\005\137\000\000\b5\000\000\005\137\000\000\005\137\000\000\b5\b5\000\242\000\000\000\000\000\000\000\000\000\000\000\000\b5\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b5\b5\000\000\b5\000\000\000\000\016~\000\000\000\000\b5\n\141\000\000\000\000\000\000\n\141\000\000\000\000\000\000\000\000\000\000\000\000\b5\000\000\b5\000\000\n\141\b5\b5\000\000\n\141\000\000\n\141\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\141\000\000\000\000\b5\000\000\000\000\000\000\n\141\000\000\016\226\000\000\000\000\000\000\000\000\000\000\000\000\b5\000\000\n\141\000\000\000\000\n\141\000\000\000\000\000\000\000\000\000\000\n\141\n\141\000\242\000\000\000\000\000\000\000\000\000\000\000\000\n\141\000\000\000\000\000\000\000\000\000\000\004q\000\000\000\000\n\141\004q\000\000\n\141\000\000\000\000\000\000\000\000\000\000\n\141\000\000\000\000\004q\000\000\000\000\000\000\004q\000\000\004q\000\000\000\000\n\141\000\000\n\141\000\000\000\000\n\141\n\141\000\000\000\000\000\000\004q\000\000\030^\000\000\000\000\000\000\000\000\004q\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\141\000\000\004q\000\000\000\000\004q\000\000\000\000\000\000\004F\000\000\004q\004q\004q\000\000\000\000\000\000\000\000\000\000\000\000\004q\000\000\000\000\000\000\000\000\000\000\tU\000\000\000\000\004q\tU\000\000\004q\000\000\000\000\000\000\000\000\000\000\004q\000\000\000\000\tU\000\000\000\000\000\000\tU\000\000\tU\000\000\000\000\004q\000\000\004q!^\000\000\004q\004q\000\000\000\000\000\000\tU\000\000\000\000\000\000\000\000\000\000\000\000\tU\000\000\000\000\000\000\000\000\000\000\000\000\000\000\030\230\004q\000\000\tU\000\000\000\000\tU\000\000\000\000\000\000\000\000\000\000\tU\tU\000\242\000\000\000\000\000\000\000\000\000\000\000\000\tU\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\tU\019i\000\000\tU\003\154\019i\000\000/\030\000\000\tU\000\000\000\000/\"\000\000\000\000\000\000\019i\000\000\000\000\000\000\000\000\tU\019i\tU):\000\000\tU\tU\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019i\000\000\000\000\000\000\tU\000\000\000\000\019i\000\000\000\000\000\000\000\000\tU\000\000\001\006\000\000\001\190\000\000\019i\000\000\000\000\019i\000\000\000\000\000\000\tU\000\000\019i\019M\000\000\000\000\003\154\019M\000\000/>\000\000\019i/&\000\000/B\000\000\000\000\000\000\019M\000\000\019i\000\000\000\000\019i\019M\000\000\000\000\000\000\000\000\019i\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019M\000\000\000\000/*\019i\000\000\019i\019M\000\000\019i\000\000\000\000\000\000\000\000\001\006\000\000\001\190\000\000\019M\ne\000\000\019M\000\000\ne\000\000\000\000\000\000\019M\000\000\000\000\019i\000\000\000\000\000\000\ne\000\000\019M/F\ne\000\000\ne\000\000\000\000\000\000\000\000\019M\019\205\000\000\019M\000\000\000\000\000\000\000\000\ne\019M\000\000\000\000\000\000\000\000\000\000\ne\000\000\000\000\000\000\000\000/J\019M\000\000\019M\000\000\000\000\019M\000\000\000\000\ne\000\000\000\000\000\000\000\000\000\000\ne\ne\000\000\000\000\000\000\000\000\019\169\000\000\000\000\ne\019\169\000\000\019M\000\000\000\000\019\169\000\000\000\000\ne\019\169\000\000\019\169\000\000\000\000\000\000\019\169\000\000\019\169\000\000\000\000\019\169\000\000\000\000\000\000\019\169\000\000\019\169\000\000\000\000\ne\019\169\ne\ne\000\000\ne\ne\000\000\019\169\000\000\019\169\000\000\000\000\000\000\000\000\000\000\000\000\019\169\ne\019\169\000\000\000\000\019\169\ne\000\000\003V\ne\000\000\019\169\019\169\000\000\019\169\000\000\000\000\000\000\000\000\000\000\019\169\019\169\ne\000\000\000\000\000\000\002\021\000\000\000\000\019\169\002\021\000\000\019\169\000\000\000\000\000\000\000\000\000\000\019\169\000\000\000\000\002\021\000\000\000\000\000\000\002\021\000\000\002\021\000\000\000\000\019\169\000\000\019\169\003b\000\000\019\169\019\169\000\000\000\000\019\169\002\021\019\169\003b\000\000\019\169\019\169\000\000\002\021\019\169\000\000\000\000\000\000\000\000)\134\000\000\000\000\019\169\019\169\002\021\000\000\000\000\002\021)\194\000\000\000\000\019\169\000\000\002\021\002\021\019\169\000\000\000\000\000\000\000\000\000\000\000\000\002\021\000\000\019\169\000\000\000\000\000\000\000\000\000\000\000\000\002\021\tY\000\000\002\021\000\000\tY\000\000\000\000\000\000\002\021\000\000\000\000\000\000\000\000\000\000\000\000\tY\000\000\000\000\000\000\tY\002\021\tY\002\021\000\000\000\000\002\021\002\021\000\000\000\000\000\000\000\000\000\000\000\000\000\000\tY\000\000\000\000\000\000\002\021\000\000\000\000\tY\000\000\000\000\000\000\000\000\002\021\000\000\000\000\016~\000\000(\250\tY\n\177\000\000\tY\000\000\n\177\000\000\002\021\000\000\tY\tY\000\242\000\000\000\000\000\000\000\000\n\177\000\000\tY\000\000\n\177\000\000\n\177\000\000\000\000\000\000\000\000\tY\000\000\000\000\tY\000\000\000\000\000\000\000\000\n\177\tY\000\000\000\000\000\000\000\000\000\000\n\177\000\000\016\226\000\000\000\000\000\000\tY\000\000\tY\000\000\000\000\tY\tY\000\000\n\177\000\000\000\000\000\000\000\000\000\000\n\177\n\177\000\242\000\000\tY\000\000\000\000\000\000\000\000\n\177\000\000\000\000\tY\000\000\000\000\007!\000\000\000\000\n\177\007!\000\000\000\000\000\000\000\000\000\000\tY\000\000\000\000\000\000\000\000\007!\000\000\000\000\000\000\007!\000\000\007!\000\000\007!\n\177\000\000\n\177\007!\000\000\n\177\n\177\000\000\000\000\000\000\007!\000\000\000\000\000\000\007!\000\000\000\000\007!\007!\000\000\007!\000\000\000\000\000\000\000\000\000\000\n\177\000\000\007!\000\000\000\000\007!\000\000\007!\002\130\004F\000\000\007!\tN\n\177\007!\000\000\000\000\000\000\000\000\000\000\007!\017z\000\000\000\000\000\000\007!\000\000\000\000\007!\007!\000\000\000\000\007!\000\000\007!\tN\000\242\000\000\007!\000\000\000\000\000\000\000\000\007!\000\000\000\000\000\000\000\000\000\000\000\000\007!\000\000\007!\000\000\000\000\007!\007!\000\000\002V\000\000\000\000\007!\004\237\000\000\000\000\000\000\004\237\000\000\016\170\000\000\000\000\000\000\000\000\007!\000\000\007!\007!\004\237\007!\007!\000\000\004\237\000\000\004\237\000\000\000\000\000\000\000\000\000\000\007!\000\249\000\000\000\000\000\000\000\249\000\000\004\237\000\000\000\000\007!\000\000\000\000\000\000\004\237\002\234\000\249\000\000\000\000\000\000\000\249\000\000\000\249\007!\000\000\004\237\000\000\000\000\004\237\000\000\000\000\000\000\000\000\000\000\004\237\000\249\000\000\000\000\000\000\000\000\000\000\000\000\000\249\004\237\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\237\000\249\000\000\004\237\000\249\000\000\000\000\000\000\000\000\004\237\000\249\000\249\000\242\000\000\000\000\000\000\000\000\000\000\000\000\000\249\000\000\004\237\000\000\004\237\000\000\000\000\004\237\004\237\000\249\000\253\000\000\000\249\000\000\000\253\000\000\000\000\000\000\000\249\000\000\000\000\000\000\000\000\000\000\000\000\000\253\000\000\000\000\004\237\000\253\000\249\000\253\000\249\000\000\000\000\000\249\000\249\000\000\000\000\000\000\000\000\000\000\002\250\000\000\000\253\000\000\000\000\000\000\000\000\000\000\000\000\000\253\000\000\000\000\000\000\000\000\000\249\000\000\000\000\016~\000\000\000\000\000\253\bE\000\000\000\253\000\000\bE\000\000\000\249\000\000\000\253\000\253\000\242\000\000\000\000\000\000\000\000\bE\000\000\000\253\000\000\bE\000\000\bE\000\000\000\000\000\000\000\000\000\253\000\000\000\000\000\253\000\000\000\000\000\000\000\000\bE\000\253\000\000\000\000\000\000\000\000\000\000\bE\000\000\016\226\000\000\000\000\000\000\000\253\000\000\000\253\000\000\000\000\000\253\000\253\000\000\bE\000\000\000\000\000\000\000\000\000\000\bE\bE\000\242\000\000\000\000\000\000\001\202\002\018\001\230\bE\000\000\016~\000\253\000\000\000\000\007!\000\000\000\000\bE\007!\000\000\000\000\003v\000\000\000\000\000\253\000\000\001\234\0022\001\254\007!\000\000\000\000\000\000\007!\000\000\007!\000\000\002\n\bE\001\206\bE\000\000\000\000\bE\bE\002j\000\000\000\000\007!\000\000\000\000\000\000\002\014\001\210\002Z\007!\000\000\016\226\003z\000\000\003\138\003\186\003\198\000\000\bE\000\000\000\000\000\000\003\210\007!\000\000\000\000\rN\004F\000\000\007!\tN\000\242\nE\nE\nE\000\000\000\000\000\000\007!\000\000\000\000\000\000\000\000\000\000\003\214\000\000\003\230\007!\000\000\000\000\003\202\000\000\000\000\nE\nE\nE\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\nE\000\000\nE\000\000\007!\000\000\007!\n\137\000\000\007!\007!\n\137\000\000\000\000\000\000\nE\nE\nE\030N\000\000\000\000\nE\n\137\nE\nE\nE\n\137\000\000\n\137\000\000\007!\nE\000\000\000\000\000\000\000\000\000\000\000\000\007!\004F\000\000\n\137\000\000\000\000\000\000\000\000\000\000\000\000\n\137\000\000\000\000\000\000\000\000\nE\000\000\nE\000\000\000\000\000\000\n\137\000\000\000\000\n\137\000\000\000\000\000\000\000\000\000\000\n\137\n\137\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\137\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\137\000\000\000\000\n\137\000\000\000\000\000\000\000\000\000\000\n\137\000\000\000\000\003\190\000\000\nE\000\000\000\000\000\000\tM\000\000\000\000\n\137\tM\n\137 \134\000\000\n\137\n\137\000\000!:\000\000\000\000\000\000\tM\000\000\000\000\000\000\tM\000\000\tM\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\137\000\000\000\000\000\000\000\000\tM\000\000\000\000\000\000\000\000\000\000\000\000\tM\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\tM\000\000\000\000\tM\000\000\000\000\000\000\000\000\000\000\tM\tM\000\000\001\202\002\018\001\230\000\000\000\000\000\000\tM\000\000\000\000\000\000\001m\000\000\000\000\000\000\001m\tM\000\000\000\000\tM\000\000\000\000\001\234\003\130\001\254\tM\001m\000\000\001m\000\000\001m\000\000\001m\002\n\000\000\001\206\000\000\tM\000\000\tM\000\000\002j\tM\tM\000\000\001m\000\000\000\000\002.\001\210\002Z\000\000\001m\000\000\003z\000\000\003\138\003\186\003\198\000\000\000\000\000\000\000\000\tM\003\210\000\000\001m\000\000\000\000\000\000\000\000\000\000\001m\001m\000\242\000\000\000\000\000\000\018\249\000\000\000\000\001m\018\249\000\000\000\000\000\000\003\214\000\000\003\230\000\000\001m\000\000\000\000\018\249\000\000\000\000\000\000\018\249\000\000\018\249\000\000\000\000\000\000\000\000\000\000\000\000\001\202\001\226\001\230\000\000\000\000\001m\018\249\001m\001m\000\000\001m\001m\000\000\018\249\000\000\000\000\000\000\000\000\n\022\000\000\000\000\001\234\002&\001\254\018\249\000\000\000\000\018\249\000\000\000\000\000\000\001m\002\n\018\249\001\206\000\000\000\000\000\000\000\000\000\000\002j\000\000\018\249\000\000\001m\000\000\000\000\002.\001\210\002Z\000\000\018\249\018\246\003z\018\249\003\138\003\186\003\198\000\000\000\000\018\249\n\177\000\000\003\210\000\000\n\177\000\000\000\000\000\000\000\000\000\000\000\000\018\249\000\000\018\249\000\000\n\177\018\249\018\249\000\000\n\177\000\000\n\177\000\000\000\000\003\214\006\249\003\230\000\000\000\000\006\249\000\000\000\000\000\000\000\000\n\177\000\000\000\000\018\249\000\000\000\000\006\249\n\177\000\000\000\000\006\249\000\000\006\249\000\000\000\000\000\000\021\182\000\000\n\177\000\000\000\000\n\177\000\000\000\000\000\000\006\249\000\000\n\177\n\177\000\000\000\000\000\000\006\249\000\000\000\000\007\162\n\177\007\166\000\000\000\000\000\000\000\000\000\000\006\249\000\000\n\177\006\249\000\000\n\177\000\000\000\000\000\000\006\249\000\000\n\177\000\000\000\000\000\000\000\000\000\000\000\000\006\249\000\000\000\000\000\000\000\000\n\177\000\000\n\177\000\000\006\249\n\177\n\177\006\249\000\000\000\000\000\000\000\000\000\000\006\249\006\241\000\000\000\000\000\000\006\241\000\000\000\000\000\000\000\000\000\000\006\225\006\249\n\177\006\249\006\225\006\241\006\249\006\249\000\000\006\241\002\130\006\241\000\000\000\000\000\000\006\225\000\000\000\000\000\000\006\225\000\000\006\225\000\000\000\000\006\241\000\000\000\000\006\249\000\000\000\000\000\000\006\241\000\000\000\000\006\225\000\000\000\000\000\000\000\000\000\000 \174\006\225\006\241\000\000\000\000\006\241\000\000\000\000\000\000\000\000\000\000\006\241\006\225\000\000\000\000\006\225\000\000\000\000\000\000\000\000\006\241\006\225\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\241\006\225\000\000\006\241\000\000\000\000\000\000\000\000\000\000\006\241\006\225\000\000\000\000\006\225\000\000\000\000\000\000\000\000\000\000\006\225\007\017\006\241\000\000\006\241\007\017\000\000\006\241\006\241\000\000\000\000\000\000\006\225\000\000\006\225\000\000\007\017\006\225\006\225\000\000\007\017\000\000\007\017\000\000\000\000\000\000\000\000\000\000\006\241\000\000\000\000\000\000\000\000\000\000\000\000\007\017\000\000\000\000\006\225\000\000\000\000\"\230\007\017\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000%\230\000\000\007\017\000\000\000\000\007\017\000\000\000\000\000\000\0119\000\000\007\017\nA\nA\nA\000\000\000\000\000\000\000\000\000\000\007\017\000\000\000\000\000\000\000\000\000\000\000\000\0119\0119\007\017\0119\0119\007\017\nA\nA\nA\000\000\000\000\007\017\000\000\000\000\000\000\000\000\000\000\nA\000\000\nA\000\000\000\000\000\000\007\017\000\000\007\017\000\000\0119\007\017\007\017\000\000\000\000\nA\nA\nA\020}\020}\020}\nA\000\000\nA\nA\nA\000\000\000\000\000\000\000\000\0119\nA\007\017\000\000\000\000\000\000\000\000\000\000\000\000\020}\020}\020}\016\146\000\000\000\000&V\000\000\0119\000\000\000\000\020}\000\000\020}\nA\000\000\nA\000\000\000\000\000\000\000\000\000\000\001\202\001\226\001\230\022\006\020}\020}\020}\000\000\000\000\0119\020}\0119\020}\020}\020}\000\000\000\000\000\000\000\000\000\000\020}\001\234\001\238\001\254\000\000\000\000\0119\0119\000\000\000\000\011j\0119\002\n\000\000\001\206\0119\000\000\0119\000\000\000\000\000\000\0119\020}\0119\020}\000\000\007\206\002\014\001\210\002Z\001\202\002\018\001\230\003z\000\000\003\138\003\186\003\198\000\000\000\000\000\000\000\000\000\000\003\210\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\234\030\238\001\254\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\n\000\000\001\206\003\214\000\000\003\230\000\000\000\000\002j\000\000\000\000\001\202\001\226\001\230#\198\002.\001\210\002Z\000\000\000\000\000\000\003z\000\000\003\138\003\186\003\198\000\000\000\000\000\000\000\000\000\000\003\210\001\234\001\238\001\254\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\n\000\000\001\206\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\214\000\000\003\230\000\000\000\000\002\014\001\210\002Z\000\000\000\000\000\000\003z\000\000\003\138\003\186\003\198\001\202\001\226\001\230$&\000\000\003\210\000\000\000\000\000\000\n\169\000\000\000\000\000\000\n\169\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\234\001\238\001\254\n\169\000\000\000\000\003\214\n\169\003\230\n\169\000\000\002\n\000\000\001\206\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\169\001\202\004\170\001\230\002\014\001\210\002Z\n\169\000\000\000\000\003z\000\000\003\138\003\186\003\198\000\000\000\000\000\000\000\000\000\000\003\210\n\169\001\234\004\182\001\254\000\000\000\000\n\169\n\169\000\000\000\000\000\000\000\000\002\n\000\000\001\206\n\169\000\000\000\000\000\000\000\000\000\000\003\214\000\000\003\230\n\169\000\000\000\000\002.\001\210\002Z\000\000\000\000\000\000\003z\005\153\003\138\003\186\003\198\000\000\000\000\001\202\006\014\001\230\003\210\000\000\n\169\000\000\n\169\000\000\000\000\n\169\n\169\005\153\005\153\000\000\005\153\005\153\000\000\000\000\017\"\000\000\001\234\006\026\001\254\000\000\003\214\000\000\003\230\000\000\000\000\000\000\n\169\002\n\000\000\001\206\000\000\000\000\000\000\000\000\005\153*\170\000\000\000\000\000\000\000\000\000\000\011I\002.\001\210\002Z\000\000\000\000\000\000\003z\000\000\003\138\003\186\003\198\000\000\000\242\000\000\000\000\000\000\003\210\011I\011I\000\000\011I\011I\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\153\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\169\003\214\000\000\003\230\000\000\000\000\000\000\011I\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\153\000\000\005\153\005\169\005\169\000\000\005\169\005\169\000\000\000\000\000\000\000\000\000\242\000\000\000\000\000\000\000\000\005\153\005\153\000\000\000\000\011j\005\153\000\000\000\000\000\000\005\153\000\000\005\153\011I\005\169\000\000\005\153\000\000\005\153\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\242\000\000\011I\000\000\011I\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\169\000\000\011\158\011I\000\000\000\000\011j\011I\005\201\000\000\000\000\011I\000\000\011I\001\202\031\006\001\230\011I\000\000\011I\000\000\000\000\000\000\005\169\000\000\005\169\005\201\005\201\000\000\005\201\005\201\000\000\000\000\000\000\000\000\001\234\031\018\001\254\000\000\000\000\005\169\005\169\000\000\000\000\011j\005\169\002\n\000\000\001\206\005\169\000\000\005\169\000\000\005\201\000\000\005\169\000\000\005\169\000\000\000\000\005\185\002.\001\210\002Z\000\000\000\000\000\000\003z\000\000\003\138\003\186\003\198\000\000\000\242\000\000\000\000\000\000\003\210\005\185\005\185\000\000\005\185\005\185\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\201\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\214\000\000\003\230\000\000\000\000\000\000\005\185\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\201\000\000\005\201\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\242\000\000\000\000\000\000\000\000\005\201\005\201\000\000\000\000\011j\005\201\000\000\000\000\000\000\005\201\000\000\005\201\005\185\000\000\000\000\005\201\000\000\005\201\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\202-\182\001\230\000\000\000\000\000\000\000\000\000\000\000\000\005\185\000\000\005\185\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\234-\194\001\254\000\000\019]\005\185\005\185\000\000\019]\011j\005\185\002\n\000\000\001\206\005\185\000\000\005\185\000\000\000\000\019]\005\185\000\000\005\185\000\000\000\000\019]\002.\001\210\002Z\000\250\000\000\000\000\003z\t*\003\138\003\186\003\198\000\000\019]\000\000\000\000\000\000\003\210\000\000\tV\019]\000\000\000\000\0075\000\000\tZ\000\000\000\000\000\000\000\000\000\000\019]\000\000\000\000\019]\000\000\000\000\000\000 J\003\214\019]\003\230\000\000\000\000\000\000 r\000\000\000\000\000\000\019]\000\000\000\000\000\000\000\000\000\000\000\000&\018\000\000\019] \214\000\000\019]\000\000\000\000\000\000 \238\000\000\019]\000\000\000\000\000\000\000\000\000\000\007\001 \246\000\000\000\000\007\001\000\000\019]\000\000\019]\000\000!\006\019]\000\000\000\000\000\000\007\001\000\000\000\000\000\000\007\001/\014\007\001\000\000\000\000\000\000\006\233\000\000\000\000\000\000\006\233\000\000!\014\019]!N\007\001\000\000\0075\0075\000\000\000\000\006\233\007\001\000\000\000\000\006\233\000\000\006\233\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007\001\000\000!\150\000\000\006\233\000\000\007\001\000\000\000\000\000\000\000\000\006\233\000\000\000\000\000\000\007\001\000\000\000\000\007\025\000\000\000\000\000\000\007\025\000\000\007\001\006\233\000\000\000\000\000\000\000\000\000\000\006\233\000\000\007\025\000\000\000\000\000\000\007\025\000\000\007\025\006\233\000\000\000\000\000\000\000\000\007\001\000\000\007\001\000\000\006\233\007\001\007\001\007\025\000\000\000\000\000\000\000\000\000\000\000\000\007\025\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\233\007\001\006\233\007\025\000\000\006\233\006\233\000\000\000\000\007\025\000\000\000\000\000\000\000\000*b\000\250\000\000\000\000\007\025\t*\000\000\000\000\000\000\000\000\000\000\000\000\006\233\007\025\000\000\000\000/\134\000\000\000\000\000\000\000\000\000\000\tZ\000\000\000\000+\"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007\025 J\007\025\000\000\000\000\007\025\007\025\000\000 r\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000&\018\000\000\000\000 \214\000\000\000\000\000\000\007\025\000\000 \238\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \246\000\000+\158\000\000\000\000\000\000\000\000\000\000\000\000!\006\000\000\000\000/\022\000\000\000\000\000\000\000\000\000\000/6\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000!\014\000\000!N\000\000\000\000\007]\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000!\150")) + ((32, "\000\000\153\210\000\000\164d\000\000\174\224\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\026.\000\000\174\224\000\000\000\000\000\000\000\000\000\000\025\020\000\000\174\224\000\000\153\210\000\000\000\240\000\000\0005\000\000\0038\000\001|\170\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000Z\000\000\002\018\000\000\000\231\000\000\000\000\000\000\001P\000\000\000\030\000\000\000\000\000\000\001\234\000\000\001p\000\000\000\254\000\000\000\000\000\000\000&\000\000\002\\\000\000\003b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\222\000\000\000\000\000\000\000\000\000\000\002n\000\001\184\252\000\001fb\000\001g\020\000\001g\198\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001~\000\000\000\000\000\000\000\000\000\000\239\024\000\000\003V\000\000\004\130\000\000\000\000\000\000\000\000\000\001\180\202\000\000\236r\000\000\t\006\000\000\000\000\000\000\t\006\000\001kX\000\000\001~\000\000\000\000\000\001\178\168\000\000\001~\000\000\234n\000\000\t\006\000\001\137Z\000\000\t\006\000\000\000\000\000\000\000\000\000\000\000\000\000\000$f\000\001kX\000\000\231\224\000\000\000\000\000\000\240\004\000\001\178\168\000\000\159\206\000\000\025\020\000\000\027\196\000\001k\240\000\000\025\020\000\001j\194\000\000\005L\000\001e\168\000\000\000\000\000\000\000\000\000\000\004\232\000\000\000\000\000\000\233 \000\000\1640\000\000\025\020\000\000\157\\\000\000\000\000\000\000\024\254\000\000\000\000\000\000\157\\\000\000\025\222\000\000\000\000\000\000\153^\000\000\000\000\000\000\000\226\000\000\000\000\000\000\000\000\000\000\005\194\000\000\024.\000\000\017\184\000\000\t\006\000\000%\138\000\000\005\158\000\001}0\000\000\000\000\000\000\000\000\000\000\t\006\000\000\000\000\000\000\025\020\000\000\000\000\000\000\001~\000\000\024.\000\000\018\220\000\000\t\006\000\000(\246\000\000\000\000\000\000\003\178\000\000\000\000\000\000\153^\000\000\000\000\000\000\000\000\000\000\b\n\000\000\025\020\000\000\000\000\000\000\001~\000\000\025\020\000\000\000\000\000\000\t\232\000\001\173B\000\000\t\006\000\001\154\236\000\001\173\200\000\001\165v\000\001\153\192\000\000\000\000\000\001\167V\000\001\178\168\000\000\000\000\000\001n\160\000\001\183\236\000\000\001~\000\000\234n\000\000\174\224\000\000\153\210\000\000\000\003\000\000\000\000\000\000\000\000\000\000\164d\000\000\025\020\000\000\000\003\000\000\003\196\000\000\006\024\000\000\006\202\000\001kX\000\001\179:\000\000\000\000\000\001kX\000\001\179:\000\000\000\000\000\001kX\000\001\181\156\000\000\241(\000\000\030\254\000\000\238`\000\000\231\224\000\000\n\238\000\000\000\000\000\000\000\b\000\000\0010\000\000\0040\000\000\000\000\000\000\006\206\000\000\000\000\000\000\000\000\000\000\n\252\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\128\000\000\026\156\000\001\181\156\000\000\242\244\000\001kX\000\000\243\244\000\000\006\176\000\000\239\240\000\000\000\000\000\000\000\000\000\000\244\244\000\001kX\000\000\245\244\000\000\246\244\000\000\000\000\000\001wP\000\001\178\168\000\000\000\000\000\000\003\234\000\000\0010\000\000\n\238\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\236\000\000\0120\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\186\130\000\000\247\030\000\000\t\006\000\000*\026\000\000\001~\000\000\238\212\000\000\t\006\000\000,b\000\000\242*\000\001\178\168\000\000\001~\000\000\001~\000\000\000\000\000\000\007\n\000\000\001~\000\000\006\166\000\000\t\006\000\000\"b\000\000\000\000\000\001kX\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\242\000\000\006\230\000\001kX\000\000\247\244\000\000\248\244\000\000\000\000\000\000\242*\000\000\249\244\000\001kX\000\000\250\244\000\000\251\244\000\000\000\000\000\000\242*\000\000\252\244\000\000\253\244\000\001kX\000\000\254\244\000\000\255\244\000\000\000\000\000\000\242*\000\001\000\244\000\001\001\244\000\000\233\012\000\000\243*\000\000\231\232\000\000\238`\000\000\234\014\000\000\n\238\000\000\000\000\000\000\000\000\000\000\000\000\000\000\240\242\000\000\244*\000\000\231\240\000\000\238`\000\000\235\016\000\000\236\018\000\000\237\020\000\001\002\244\000\000\007\174\000\001kX\000\001\003\244\000\001\004\244\000\000\000\000\000\000\242*\000\001\005\244\000\001\006\244\000\000\000\000\000\001\007\244\000\000\006@\000\000\001~\000\000\000\000\000\000\t\216\000\000\007.\000\000\t\006\000\000\"\246\000\000\000\000\000\000\001~\000\000\007b\000\000\t\006\000\000$\172\000\000\000\000\000\000\001\002\000\000\000\000\000\001\186\250\000\000\247F\000\000\t\006\000\000-\134\000\000\001~\000\000\239N\000\000\t\006\000\000.\170\000\000\003J\000\000\b*\000\000\b\140\000\000\0056\000\000\002\162\000\001kX\000\000\006\022\000\000\t.\000\001kX\000\001\b\244\000\001\t\244\000\000\000\000\000\000\242*\000\001\n\244\000\001\011\244\000\000\b\146\000\001kX\000\001\012\244\000\001\r\244\000\000\000\000\000\000\242*\000\001\014\244\000\001\015\244\000\000\tN\000\001kX\000\001\016\244\000\001\017\244\000\000\000\000\000\000\242*\000\001\018\244\000\001\019\244\000\000\b\198\000\001kX\000\001\020\244\000\001\021\244\000\000\000\000\000\000\242*\000\001\022\244\000\001\023\244\000\000\245*\000\001\178\168\000\000\003\198\000\001kX\000\000\011\166\000\000\011\204\000\001kX\000\001\024\244\000\001\025\244\000\000\000\000\000\000\242*\000\001\026\244\000\001\027\244\000\000\t\024\000\001kX\000\001\028\244\000\001\029\244\000\000\000\000\000\000\242*\000\001\030\244\000\001\031\244\000\000\014v\000\001kX\000\001 \244\000\001!\244\000\000\000\000\000\000\242*\000\001\"\244\000\001#\244\000\000\tj\000\001kX\000\001$\244\000\001%\244\000\000\000\000\000\000\242*\000\001&\244\000\001'\244\000\000\242*\000\001(\244\000\001)\244\000\000\000\000\000\000\242*\000\001*\244\000\001+\244\000\000\t\182\000\000\001\002\000\000\000\000\000\000 \000\000\243*\000\000\011\148\000\000\000\000\000\000#\140\000\000\243*\000\000\014V\000\000\000\000\000\001kX\000\000\001~\000\000\000\000\000\000\000\000\000\000\000\000\000\000\011~\000\000\000\000\000\001kX\000\000\000\000\000\000\024\222\000\001\184B\000\000\000\000\000\001kX\000\000\024\234\000\001kX\000\000'\"\000\000\000\000\000\000(F\000\000\000\000\000\000\026\222\000\000\012\162\000\000\000\000\000\000\n*\000\001kX\000\000\012\214\000\000\000\000\000\000\015\030\000\000\000\000\000\000\004\166\000\000\000\000\000\000\000\003\000\000\001:\000\000\000\000\000\000\000\000\000\000\000\000\000\000($\000\001kX\000\000%\220\000\001kX\000\000)H\000\000\011B\000\000\n\168\000\000\175\206\000\000\t\224\000\000\012X\000\000\006\202\000\000\012\220\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\134\000\000\020\134\000\000\164\n\000\000\025\020\000\000\174\198\000\000\229\192\000\000\000\000\000\000\n\016\000\000\012\230\000\000\012~\000\001kX\000\000\012\150\000\000\012\240\000\001}\222\000\000\r\150\000\000\r\154\000\000\r\162\000\001kX\000\000\012\202\000\000\000\000\000\000\000\000\000\000\026:\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\028\158\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\160\014\000\000 \206\000\000\n*\000\000\000*\000\000\b<\000\000\000\000\000\000\000\000\000\000\002\214\000\000\000\000\000\000\027\196\000\000\015\184\000\000\015\172\000\000\025\020\000\000\"\016\000\000\000\000\000\000\025\020\000\000\153\210\000\000\1640\000\000\025\020\000\000\236l\000\000\157\\\000\000\016b\000\001\165\198\000\001\173\200\000\000\000\000\000\001\176\002\000\000\174\224\000\000\153\210\000\000\153\210\000\000\000\000\000\000\000\000\000\000\000\000\000\000\164d\000\000\025\020\000\000\000\003\000\000\000\003\000\000\n*\000\000\003\000\000\000\b\180\000\000\000\000\000\000\015D\000\000\016\162\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\164d\000\000\025\020\000\000\000\003\000\000\027@\000\001~\144\000\000\165F\000\000\000\003\000\000\001\"\000\000\176\176\000\001\149\166\000\000\014\b\000\000\015\208\000\000\015p\000\001kX\000\000\014\156\000\000\015\208\000\001\138\b\000\000\014\160\000\000\016\128\000\000\016N\000\001kX\000\000\014\246\000\000\000\000\000\000\000\000\000\001\127<\000\001p\184\000\001p\184\000\000\000\000\000\000\b\180\000\000\000\000\000\000\017T\000\000\000\000\000\000\028\002\000\001kX\000\000\004\208\000\000\001\030\000\000\229\192\000\000\164Z\000\000\025\020\000\000\229\192\000\000\000\000\000\000\017\134\000\000\000\000\000\000\000\000\000\000\016R\000\000\017\198\000\000\000\000\000\000\000\000\000\000\229\192\000\000\229\192\000\000\b\180\000\000\017\148\000\000\000\000\000\000\017\134\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\024\000\001\127\238\000\000\015\226\000\000\018\024\000\000\017\148\000\001kX\000\000\015\222\000\000\000\000\000\000\000\000\000\000\229\192\000\000\000\000\000\000\000\000\000\000\228\176\000\000\026\138\000\000\001\210\000\000\014\148\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002D\000\000\031\200\000\001p\184\000\000\000\000\000\000\164Z\000\000\025\020\000\000\229\192\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\229\192\000\000\000\000\000\001\1682\000\001\128\160\000\000\017@\000\000\018\148\000\000\018\014\000\001kX\000\000\017\002\000\000\000\000\000\000\000\000\000\000\229\192\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\169>\000\000\229\192\000\001\186\244\000\000\230\208\000\000\160\014\000\000\005\158\000\000\019\004\000\000\229\192\000\000\000\000\000\000\"\214\000\000\019\n\000\000\000\000\000\000\030\210\000\000\000\000\000\001\129R\000\000\017t\000\000\019<\000\000\018\184\000\001kX\000\000\018\030\000\000\000\000\000\000\000\000\000\000\229\192\000\000\000\000\000\000\000\000\000\001\187\\\000\001kX\000\000\001\134\000\000\000\000\000\000\229\192\000\001\187\168\000\000\0038\000\000\000\000\000\000\000\000\000\000\019\226\000\000\000\000\000\000\028\216\000\000\000\000\000\001\127<\000\000\000\000\000\000\020$\000\000\000\000\000\000\031\004\000\001lr\000\000\000\000\000\000\000\000\000\000\000\000\000\001\187\238\000\000#b\000\000\000\000\000\000\028\216\000\000\000\000\000\000#\198\000\000\017B\000\000\b\180\000\000\018:\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\212\000\000\000\000\000\000\000\000\000\000\0206\000\000\000\000\000\000\229\192\000\000\000\000\000\000\000\000\000\000\000\000\000\000#\148\000\000\229\192\000\000$\184\000\000\000\000\000\000\000\000\000\000'\000\000\001\138\186\000\000\017\216\000\000\020\220\000\000\020V\000\001kX\000\000\018&\000\000\000\000\000\000\000\000\000\000\229\192\000\000\000\000\000\000\000\000\000\000*l\000\000\020x\000\001\139l\000\000\018\012\000\000\0212\000\000\020\226\000\001kX\000\000\018~\000\000\000\000\000\000\000\000\000\000\229\192\000\000\000\000\000\000\000\000\000\000+\144\000\000\229\192\000\000\020\248\000\001\140\030\000\000\018&\000\000\021\150\000\000\021z\000\001kX\000\000\018\162\000\000\000\000\000\000\000\000\000\000\229\192\000\000\000\000\000\000\000\000\000\000,\180\000\001d\164\000\000\018\252\000\000\0072\000\000\002\226\000\001\184\252\000\000\004\234\000\001kX\000\000!(\000\000\006\176\000\000\000\000\000\000\000\000\000\000!v\000\000\000\000\000\000\000\000\000\000\0072\000\000\022X\000\000\000\000\000\000\022\170\000\000\000\000\000\000\000\000\000\000\0190\000\000\0072\000\000\0072\000\000\019\178\000\000\000\003\000\000\164d\000\000\157\170\000\000\157\170\000\000\025\020\000\000\"\016\000\000\159\156\000\000\025\020\000\000\177\146\000\000\166X\000\000\167j\000\000\011\240\000\000\006\028\000\000\178t\000\000\029\128\000\000\158\004\000\000\179V\000\000\164d\000\000\025\020\000\000\020\134\000\000\029\128\000\000\020\134\000\000\1808\000\000\020\134\000\000\164d\000\000\025\020\000\000\154\228\000\000\164d\000\000\025\020\000\000\000\003\000\001m$\000\000\025\020\000\001lr\000\000\229\192\000\000#\198\000\000\000\003\000\000\164Z\000\000\025\020\000\000\161*\000\000\004\232\000\000\000\000\000\001m\214\000\000\156\214\000\000\156\214\000\000\159\230\000\001\184\252\000\000\005\158\000\001kX\000\000\000]\000\000\000\000\000\000\001\134\000\000\000\000\000\000\000\000\000\000\022\200\000\000\000\000\000\000\022\252\000\000\000\000\000\000\167\014\000\001\184\252\000\000\006\194\000\001kX\000\000%\184\000\000\000\000\000\000&\220\000\000\000\000\000\000\000\000\000\001m\214\000\000\019\178\000\000\023 \000\000\000\000\000\000\019\178\000\000\023\154\000\000\000\000\000\000\000\000\000\000\000\000\000\000\156\214\000\000\019\136\000\000\023\136\000\000\023\002\000\000\t\006\000\000):\000\000\000\000\000\000\003R\000\000\t\006\000\000*(\000\000\000\000\000\000\000\000\000\000\023\236\000\000\000\000\000\000\028\172\000\000\000\000\000\000\000\000\000\000\171\178\000\001\184\252\000\000\0072\000\001kX\000\000\b6\000\000\000\000\000\001\140\208\000\000\172\230\000\001\184\252\000\000\007\230\000\001kX\000\000\n~\000\000\n\166\000\000\024\002\000\000\000\000\000\000\024\014\000\000\000\000\000\000\024\028\000\000\000\000\000\001\166D\000\000\156\214\000\000\173\156\000\001\184\252\000\000\bV\000\001kX\000\000\011\162\000\000\000\000\000\001\140\208\000\000\228r\000\000\000\000\000\001\184\252\000\000\t\004\000\001kX\000\000\012\198\000\000\000\000\000\000\000]\000\000\024 \000\000\000\000\000\000\024V\000\000\000\000\000\000\000\000\000\000\000\000\000\001i*\000\000\000\000\000\000\000\000\000\000\001~\000\000\238`\000\000\004$\000\000\000\000\000\000\024&\000\000\181\026\000\001m$\000\000\025\020\000\001lr\000\000+0\000\000\181\252\000\000\019\188\000\000\0240\000\000\006\202\000\000\024z\000\000\000\000\000\000\000\000\000\000\020\134\000\000\020\134\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002F\000\000 \236\000\000\028\\\000\000\000\000\000\000\168L\000\000\169.\000\000\157\170\000\000\025\020\000\000\"\016\000\000\0005\000\000\005\022\000\000\r\150\000\000\000\000\000\000\023\194\000\000\027\196\000\000\228\178\000\000\024\132\000\000\027\196\000\000\0005\000\000\005\022\000\000\014\134\000\000\000\000\000\000\024\244\000\000\027\196\000\000\000\000\000\001\141d\000\000\n\174\000\000\157\\\000\000\b\180\000\000\bZ\000\001\184\166\000\000\000\000\000\001kX\000\001\129\230\000\001kX\000\001u\166\000\001\130\164\000\001kX\000\000\012\244\000\001kX\000\001\131b\000\000\000\000\000\000\015\136\000\000\018\170\000\000\t\n\000\000\027\196\000\001\142\"\000\000\000\000\000\000\025\020\000\000\027\196\000\001\142\224\000\000\027\196\000\001\143\158\000\001\144\\\000\000\018\128\000\000\018\234\000\001nj\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\145\026\000\000\027\196\000\001\145\216\000\000\000\023\000\000\0010\000\001vd\000\000\016\162\000\000\0010\000\001w<\000\000\000\000\000\001\146\150\000\000\n\174\000\000\000\000\000\001x\020\000\001\147T\000\000\000\000\000\001\148\018\000\001\148\208\000\000*\152\000\000\000\000\000\000$\228\000\000\000\000\000\000\025\136\000\000\000\000\000\000\025X\000\000\"\016\000\000\000\000\000\001oJ\000\000\159\156\000\000\000\000\000\000\030p\000\000\000\000\000\000\027\196\000\000)t\000\000\000\000\000\000\025\142\000\000\000\000\000\000\000\000\000\000\000\000\000\000\025\166\000\000\000\000\000\001i\194\000\000\000\000\000\000\006b\000\000\027\196\000\000+\150\000\000\000\000\000\000\170\016\000\000\170\242\000\001\149\166\000\000\158L\000\001kX\000\000\016\192\000\000\000\003\000\000\164Z\000\000\025\020\000\000\229\192\000\000\031\004\000\000\000\003\000\000\000\003\000\000\164d\000\000\025\020\000\000\020\134\000\000\029\128\000\000\025\154\000\000\000\000\000\000\020\134\000\000\003j\000\000\b\252\000\000\162@\000\001m$\000\000\025\020\000\001lr\000\000\"p\000\000\162@\000\000\182\222\000\001m$\000\000\025\020\000\001lr\000\000\000\000\000\000\000\000\000\000\020\134\000\000\020$\000\000\025\226\000\000\006\202\000\000\026.\000\000\000\000\000\000\000\000\000\000\025\252\000\000\000\000\000\000\020\134\000\000\004\142\000\000\026\000\000\000\000\000\000\000\b\180\000\000\000\000\000\000\024N\000\000\000\003\000\000\026\150\000\000\000\000\000\000,T\000\000\183\192\000\000\020T\000\000\026\132\000\000\006\202\000\000\026\242\000\000\000\000\000\000\000\000\000\000\020\134\000\000\030\164\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001m$\000\000\025\020\000\001lr\000\000-x\000\000\229\192\000\000\000\000\000\000\021\170\000\000\031\200\000\000\0140\000\000\000\003\000\000\000\000\000\000\000\000\000\000.\156\000\000\184\162\000\001m$\000\000\025\020\000\001lr\000\000/\192\000\0000\228\000\000\185\132\000\001m$\000\000\025\020\000\001lr\000\0002\b\000\0003,\000\000\000\000\000\000\000\000\000\000\022\206\000\000 \236\000\000\186f\000\001m$\000\000\025\020\000\001lr\000\000\000\000\000\000\000\000\000\000\000\003\000\000\174\224\000\000\000\003\000\000\000\000\000\000\000\000\000\000\187H\000\001m$\000\000\025\020\000\001lr\000\0004P\000\0005t\000\000\188*\000\001m$\000\000\025\020\000\001lr\000\0006\152\000\0007\188\000\000\189\012\000\001m$\000\000\025\020\000\001lr\000\0008\224\000\000:\004\000\000\189\238\000\001m$\000\000\025\020\000\001lr\000\000;(\000\000\148\000\000\191\178\000\001m$\000\000\025\020\000\001lr\000\000?\184\000\000@\220\000\000\192\148\000\001m$\000\000\025\020\000\001lr\000\000B\000\000\000C$\000\000\193v\000\001m$\000\000\025\020\000\001lr\000\000DH\000\000El\000\000\194X\000\001m$\000\000\025\020\000\001lr\000\000F\144\000\000G\180\000\000\195:\000\001m$\000\000\025\020\000\001lr\000\000H\216\000\000I\252\000\000\196\028\000\001m$\000\000\025\020\000\001lr\000\000K \000\000LD\000\000\196\254\000\001m$\000\000\025\020\000\001lr\000\000Mh\000\000N\140\000\000\197\224\000\001m$\000\000\025\020\000\001lr\000\000O\176\000\000P\212\000\000\198\194\000\001m$\000\000\025\020\000\001lr\000\000Q\248\000\000S\028\000\000\199\164\000\001m$\000\000\025\020\000\001lr\000\000T@\000\000Ud\000\000\200\134\000\001m$\000\000\025\020\000\001lr\000\000V\136\000\000W\172\000\000\201h\000\001m$\000\000\025\020\000\001lr\000\000X\208\000\000Y\244\000\000\202J\000\001m$\000\000\025\020\000\001lr\000\000[\024\000\000\\<\000\000\203,\000\001m$\000\000\025\020\000\001lr\000\000]`\000\000^\132\000\000\204\014\000\001m$\000\000\025\020\000\001lr\000\000_\168\000\000`\204\000\000\204\240\000\001m$\000\000\025\020\000\001lr\000\000a\240\000\000c\020\000\000\205\210\000\000\020n\000\000\026\178\000\000\006\202\000\000\026\254\000\000\000\000\000\000\000\000\000\000\020\134\000\000\"\016\000\001m$\000\000\025\020\000\001lr\000\000d8\000\000e\\\000\000\206\180\000\001m$\000\000\025\020\000\001lr\000\000f\128\000\000g\164\000\000\025\020\000\001x\196\000\000\160\014\000\000\230\146\000\000\027\002\000\000\161*\000\000\000\003\000\000\000\000\000\000\000\000\000\000\n\134\000\000\018\158\000\000\000\000\000\000\026d\000\000\181\026\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\161*\000\001\184\252\000\000\020\132\000\000\026X\000\001kX\000\000\000]\000\000\000\003\000\000\000\000\000\000\026\134\000\000\000\003\000\000\000\000\000\000\tz\000\001kX\000\000\0044\000\000\000\003\000\000\000\000\000\000\026\144\000\000\000\003\000\000\000\000\000\000\020,\000\000\000\003\000\000\000\000\000\000\026\150\000\000\000\003\000\000\000\000\000\000\000\000\000\000\026\152\000\000\000\003\000\000\000\000\000\000\156\202\000\001kX\000\000\006|\000\000\000\003\000\000\000\000\000\000\026\160\000\000\000\003\000\000\000\000\000\000\026\162\000\000\000\003\000\000\000\000\000\000-\216\000\000\000\003\000\000\000\000\000\001\150X\000\000\020\172\000\000\027\014\000\000\026\136\000\001kX\000\000\020\"\000\000\000\000\000\000\000\000\000\000\229\192\000\000\000\000\000\000\000\000\000\000.\252\000\000\229\192\000\0000 \000\000\0038\000\000\000\000\000\000\0038\000\001jr\000\001\184\252\000\000\n(\000\001kX\000\000\007\160\000\000\000\003\000\000\000\000\000\000\026\190\000\000\000\003\000\000\000\000\000\000\020\160\000\000\000\003\000\000\000\000\000\000\026\194\000\000\000\003\000\000\000\000\000\000\000\000\000\000\026\228\000\000\000\003\000\000\000\000\000\000\000\000\000\001\155\132\000\001\155\132\000\000\000\000\000\000\000\000\000\000\000\000\000\000h\200\000\000\000\003\000\000\027\142\000\000\000\000\000\000\000\003\000\000\027\182\000\000\000\000\000\000\018\228\000\000\r\140\000\000\162@\000\000\027\208\000\000\000\000\000\001p\018\000\000\163R\000\000\000\000\000\000\162@\000\000\027\208\000\000\000\000\000\000\162@\000\000\027\234\000\000\000\000\000\000\000\000\000\000\020\134\000\000\005\178\000\000\r\180\000\000\162@\000\000\027\246\000\000\006\214\000\000\207\150\000\001m$\000\000\025\020\000\001lr\000\000i\236\000\000k\016\000\000\162@\000\000\028\000\000\000\007\250\000\000\208x\000\001m$\000\000\025\020\000\001lr\000\000l4\000\000mX\000\000\162@\000\000\028\006\000\000\t\030\000\000\209Z\000\001m$\000\000\025\020\000\001lr\000\000n|\000\000o\160\000\000\031\174\000\000\000\003\000\000\028\016\000\000\nB\000\000\210<\000\001m$\000\000\025\020\000\001lr\000\000p\196\000\000q\232\000\000\000\003\000\000\028\020\000\000\011f\000\000\211\030\000\001m$\000\000\025\020\000\001lr\000\000s\012\000\000t0\000\000\000\003\000\000\028\026\000\000\012\138\000\000\212\000\000\001m$\000\000\025\020\000\001lr\000\000uT\000\000vx\000\000\019\190\000\000\014\176\000\000\162@\000\000\028B\000\000\r\174\000\000\212\226\000\001m$\000\000\025\020\000\001lr\000\000w\156\000\000x\192\000\000\162@\000\000\028D\000\000\014\210\000\000\213\196\000\001m$\000\000\025\020\000\001lr\000\000y\228\000\000{\b\000\000\162@\000\000\028H\000\000\015\246\000\000\214\166\000\001m$\000\000\025\020\000\001lr\000\000|,\000\000}P\000\000\017\026\000\000\215\136\000\001m$\000\000\025\020\000\001lr\000\000~t\000\000\127\152\000\000\018>\000\000\023\242\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\028X\000\000\000\000\000\000\162@\000\000\028x\000\000\000\000\000\000\162@\000\000\028x\000\000\000\000\000\000\000\000\000\000\003\128\000\000\000\000\000\000\000\000\000\000\000\003\000\000\027\194\000\000\000\003\000\000\027\204\000\000\000\000\000\000\000\000\000\0001D\000\000\000\003\000\000\000\000\000\000\003\b\000\000\000\003\000\000\000\000\000\001\149\166\000\000\000\000\000\000\000\000\000\001\132\022\000\000\028\164\000\000\000\000\000\000\171\212\000\001m$\000\000\025\020\000\001lr\000\000'2\000\000\216j\000\001m$\000\000\025\020\000\001lr\000\000\006\246\000\001y^\000\000\025\020\000\0001\208\000\000\025\020\000\001p\184\000\000\229\192\000\000%\220\000\000\217L\000\001m$\000\000\025\020\000\001lr\000\000\027\n\000\001qR\000\000\229\192\000\000)H\000\000\218.\000\001m$\000\000\025\020\000\001lr\000\000\175h\000\001q\160\000\000\229\192\000\0003\140\000\000\219\016\000\001m$\000\000\025\020\000\001lr\000\000\229\006\000\001r\142\000\000 (\000\000\219\242\000\001m$\000\000\025\020\000\001lr\000\000\232\244\000\001r\220\000\000\220\212\000\001m$\000\000\025\020\000\001lr\000\000\003\208\000\000\221\182\000\001m$\000\000\025\020\000\001lr\000\000\233|\000\001s\202\000\001p\018\000\000\222\152\000\001m$\000\000\025\020\000\001lr\000\000\233\164\000\001t\024\000\000\000\000\000\000\000\000\000\000\000\000\000\000\011\022\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\027\244\000\000\000\000\000\001p\018\000\000\012z\000\000\000\000\000\000\172\230\000\001m$\000\000\025\020\000\001lr\000\000\029\004\000\000\t\226\000\000\000\000\000\000\000\000\000\000\028\012\000\000\000\000\000\001p\018\000\000\011\022\000\000\000\000\000\000\173\248\000\000\000\000\000\001m$\000\000\025\020\000\001lr\000\000&\240\000\000\r\206\000\000\000\000\000\000\028\236\000\000\000\000\000\001p\018\000\000\014\154\000\000\000\000\000\000\011\240\000\000\028d\000\000\000\000\000\000\029\128\000\000 X\000\000\b\180\000\000\000\000\000\000\028d\000\000\000\000\000\000\014\206\000\000\020\164\000\000\015\140\000\000\000\000\000\000\000\000\000\000\029\006\000\000\000\000\000\000\001\204\000\000#4\000\000\160\162\000\000\000\000\000\000#4\000\001m$\000\000\025\020\000\001lr\000\000\128\188\000\000\129\224\000\000\000\000\000\000\000\000\000\000\028\234\000\000\000\003\000\000\000\000\000\000\000\003\000\000\000\000\000\000\000\000\000\000\000\000\000\000\131\004\000\000\0298\000\000\223z\000\001m$\000\000\025\020\000\001lr\000\000\132(\000\000\224\\\000\001m$\000\000\025\020\000\001lr\000\000\133L\000\000\134p\000\000\135\148\000\000\225>\000\001m$\000\000\025\020\000\001lr\000\000\136\184\000\000\137\220\000\000\000\000\000\000\028x\000\000\000\000\000\000 \234\000\000\226 \000\000\021D\000\000\028\234\000\000\006\202\000\000\029.\000\000\000\000\000\000\000\000\000\000\020\134\000\000$X\000\001m$\000\000\025\020\000\001lr\000\000\139\000\000\000\140$\000\001m$\000\000\025\020\000\001lr\000\000\011\152\000\000\000\000\000\001qR\000\000\000\000\000\000\019b\000\000\029F\000\000\000\000\000\000%|\000\001m$\000\000\025\020\000\001lr\000\000\003\208\000\000,\022\000\000\000\000\000\000.\156\000\000\029J\000\000\000\000\000\001m$\000\000\025\020\000\001lr\000\000\027@\000\001qR\000\000\021T\000\000\021`\000\000\000\000\000\000\000\000\000\000\028\198\000\000\000\000\000\001m$\000\000\025\020\000\001lr\000\000&\240\000\000\015\190\000\000\000\000\000\000\029\\\000\000\000\000\000\001p\018\000\000\016\022\000\000\000\000\000\001m$\000\000\025\020\000\001lr\000\000\029\004\000\000\011.\000\000\000\000\000\000\000\000\000\000\028\136\000\000\000\000\000\001p\018\000\000\r^\000\000\000\000\000\001m$\000\000\025\020\000\001lr\000\000\027\136\000\000\000\000\000\000\027\196\000\000+\188\000\000\000\000\000\000\027\196\000\000\155\226\000\000\000\000\000\000\027\196\000\000,\222\000\000\000\000\000\001qR\000\000\000\000\000\000\027\196\000\000,\224\000\000\000\000\000\000\027\196\000\000\1560\000\000\000\000\000\000\027\196\000\000-\222\000\000\000\000\000\000\006\168\000\000\000\003\000\000\000\000\000\000\025\020\000\000\"\016\000\000\007\204\000\000\000\003\000\000\000\000\000\000\n*\000\000\005\244\000\000\b<\000\000\b<\000\000\001~\000\000\029r\000\000\000\000\000\000\005\022\000\000\"\016\000\001\167\196\000\000\027\196\000\0002n\000\000\"\016\000\001\168v\000\000\028\204\000\000\"\016\000\001\169(\000\000\028\252\000\000\000\003\000\000\000\000\000\000\005\022\000\000\000\000\000\000\028\214\000\000\"\016\000\001\169\218\000\000\000\000\000\000\030\174\000\000\025\020\000\000\"\020\000\000\000\000\000\000\004\222\000\000\029\140\000\000\000\000\000\000\029\140\000\000\029h\000\001wr\000\000\014\026\000\000\000\000\000\000\000\000\000\000\029Z\000\000\028\200\000\001\184\252\000\000\n\158\000\001kX\000\000\"\202\000\000&6\000\000\000\015\000\000\021\158\000\000\024\234\000\000\000\000\000\000(~\000\000\029\164\000\000\000\000\000\000*d\000\000\000\000\000\000\000\000\000\000\238`\000\001\132\222\000\001\1566\000\000\029\202\000\000\238`\000\000\238`\000\001\132\222\000\001\156\232\000\001\132\222\000\001\157\154\000\000\000\000\000\001\132\192\000\001\158L\000\001\149\022\000\001\185`\000\000\001~\000\000\235p\000\000\t\006\000\000/\206\000\000\238\022\000\001\188\202\000\000\248F\000\000\t\006\000\0000\242\000\000\001~\000\000\239\160\000\000\t\006\000\0002\022\000\000\b\162\000\000\014\190\000\001wr\000\000\029\156\000\000\238`\000\001\159\006\000\001\133\154\000\000\029\204\000\000\238`\000\001\159\192\000\001\134X\000\000\004>\000\000\029\146\000\000\000\003\000\000\000\000\000\000\000\000\000\000\025\020\000\001u\018\000\000\000\000\000\001x\196\000\001\155\132\000\000\000\000\000\000\000\000\000\000\030\024\000\000\000\000\000\000\019\178\000\000\030\026\000\000\000\000\000\000\000\000\000\000\000\000\000\001m$\000\000\025\020\000\001lr\000\000\141H\000\000\142l\000\000\000\000\000\001m$\000\000\025\020\000\001lr\000\000'2\000\000\r^\000\000\000\000\000\000\000\000\000\000\029L\000\000\000\000\000\001p\018\000\000\014\154\000\000\000\000\000\000\000\000\000\000\157\170\000\000\025\020\000\000\"\016\000\000\011N\000\000\000\000\000\000\027\196\000\000.\002\000\000\000\000\000\000\015\022\000\000\000\000\000\000\022\014\000\000\000\000\000\000\030\030\000\000\000\000\000\000\030R\000\001lr\000\000\143\144\000\000\000\000\000\000\030X\000\000\227\002\000\001m$\000\000\025\020\000\001lr\000\000\144\180\000\000\145\216\000\000\164\006\000\000\157\170\000\000\025\020\000\000\"\016\000\001\1760\000\000\000\000\000\000\025\020\000\000\"\016\000\001\1760\000\000\000\000\000\000\030\206\000\000\n*\000\000\003\000\000\000\001~\000\001\179\138\000\000\027\196\000\001\170\140\000\001\155\132\000\000\000\000\000\000\005\244\000\000\b<\000\000\b<\000\000\005\022\000\001\155\132\000\001\182\024\000\000\005\244\000\000\b<\000\000\005\022\000\001\155\132\000\001\182\024\000\000\000\000\000\000\000\000\000\000\005\022\000\001\155\132\000\000\000\000\000\000\174\224\000\000\153\210\000\000\229\192\000\000\153\002\000\000\000\003\000\000\000\000\000\000\174\224\000\000\153\210\000\000\030\004\000\000\029\160\000\000\t\006\000\001\176\226\000\000\230F\000\000\000\000\000\000\000\240\000\000\0005\000\000\0038\000\000\029\150\000\001\184\252\000\000\017\000\000\001kX\000\001\160r\000\000\021P\000\000\029\208\000\000\030\140\000\001\180L\000\000\000\000\000\001\155\132\000\000\000\000\000\001\161\n\000\000\030\174\000\000\025\020\000\000\"\020\000\001\171$\000\000&\170\000\000\020\214\000\000\002J\000\000\020J\000\000\028\\\000\000\025\020\000\001\155\132\000\000\000\000\000\000\025\020\000\001\155\132\000\000\000\000\000\001kX\000\000\000\000\000\000\004\014\000\000\026\026\000\000\026\026\000\000\024\214\000\000\rH\000\000\000\000\000\000\016\024\000\000\153^\000\000\000\000\000\000\021\202\000\000\000\000\000\000\153^\000\000\000\000\000\000\030B\000\000\029\218\000\000\160\248\000\000\025\020\000\000\030\184\000\001kX\000\000\020n\000\000\000\000\000\000$l\000\000\012(\000\000\016\184\000\000\022l\000\000\000\000\000\000\022\142\000\000\000\000\000\000\030F\000\000\029\180\000\001kX\000\000\165F\000\000\000\000\000\000\025\020\000\000\027 \000\000\022\176\000\000\000\000\000\000\023:\000\000\000\000\000\000\030L\000\000\029\196\000\001\184\252\000\000\158\134\000\000\000\000\000\000\025\020\000\000\160\248\000\000\030|\000\000\006\022\000\000\000*\000\000\000\003\000\000\016t\000\000\160\248\000\001kX\000\000\022&\000\000\n\238\000\000\000\000\000\001kX\000\000\023\230\000\000\0242\000\000\000\000\000\000\000\000\000\001\161\162\000\000\000\000\000\000\000\003\000\000\0218\000\000\160\248\000\001\162^\000\000\165F\000\000\000\000\000\000\025\020\000\001kX\000\000\022\026\000\001kX\000\000\028\\\000\000\158\134\000\000\000\000\000\000\029\244\000\000\000\000\000\000\158\134\000\000\000\000\000\000\000\000\000\000$l\000\000\000\000\000\001\1760\000\001\182J\000\000\024\214\000\000\rH\000\000\016\024\000\000\030t\000\000\030\024\000\000\160\248\000\001\1760\000\001\182J\000\000\000\000\000\000\000\000\000\000\024\214\000\000\rH\000\000\016\024\000\000\030\136\000\001z\004\000\000\156\214\000\000\154V\000\000\025\020\000\000\174\198\000\000\153\244\000\000\025z\000\000\012(\000\000\022\220\000\000\000\000\000\000\030\140\000\000\017\b\000\000\000\003\000\000\000\000\000\000\0304\000\000\000\003\000\000\000\000\000\000\165F\000\000\000\000\000\000\020\242\000\000\023\144\000\000\000\000\000\000\023\140\000\000\000\000\000\000\030\162\000\000\030\014\000\001kX\000\000\163R\000\000\030\182\000\000\017^\000\000\000\003\000\000\000\000\000\000\030N\000\000\000\003\000\000\000\000\000\000\025\194\000\000\017\002\000\000\023\212\000\000\000\000\000\000\030\196\000\001z\182\000\001\185\182\000\000\020\132\000\000\030b\000\001kX\000\000\022\178\000\000\000\003\000\000\000\000\000\000\030\132\000\000\000\003\000\000\000\000\000\000\000\000\000\000\165F\000\000\000\000\000\000\028\n\000\000\026\166\000\000\000\000\000\000\023\178\000\000\000\000\000\000\030\242\000\000\030d\000\001\184\252\000\000\000\000\000\000\030\252\000\001{h\000\001\186*\000\000\020\132\000\000\030\128\000\001kX\000\000\023\016\000\000\000\003\000\000\000\000\000\000\030\154\000\000\000\003\000\000\000\000\000\000\000\000\000\000\025\020\000\000\000\003\000\000\165F\000\000\000\000\000\000\025|\000\000\025\020\000\000\154V\000\000\154V\000\001hx\000\000\174\224\000\000\025\020\000\001u\018\000\001x\196\000\000\015\158\000\000\000\000\000\000\018~\000\000\000*\000\000\000\003\000\000\022(\000\000\154V\000\001kX\000\000\023J\000\000\b\180\000\000\000\000\000\000\025\020\000\001z\004\000\001z\004\000\000\154V\000\000\015B\000\000\154V\000\000\000\000\000\000\157\242\000\000\159\006\000\000\000\000\000\001\150\236\000\000\000\000\000\000\000\000\000\001\151\168\000\000\000\000\000\000\000\000\000\001\152d\000\000\000\003\000\000\022\180\000\000\154V\000\001\153 \000\001u\018\000\001x\196\000\000\015\158\000\000\000\000\000\000\004v\000\000\000\000\000\001o\144\000\001\154T\000\000\238`\000\000\031\024\000\001o\144\000\001\181\156\000\000 ,\000\000\0310\000\001o\144\000\000\238`\000\000\031<\000\001o\144\000\000\023\192\000\000&\160\000\001\162\242\000\001\164&\000\000\000\000\000\001\180\224\000\000\000\000\000\000\000\000\000\000\031\138\000\000\000\000\000\000\027@\000\000\031b\000\000\000\000\000\000\165F\000\000\000\000\000\000\154V\000\000\027@\000\000\165F\000\000\000\000\000\000\025\020\000\001kX\000\000\165F\000\000\000\000\000\000\031\000\000\000\000\000\000\000\165F\000\000\000\000\000\000\000\000\000\000\153\244\000\000\000\000\000\001\177\026\000\001o\144\000\000\031\014\000\000\154V\000\001\177\186\000\001z\004\000\000\000\000\000\001\155\132\000\001\182\252\000\000\024\214\000\000\rH\000\000\016\024\000\000\031z\000\001z\004\000\001\155\132\000\001\182\252\000\000\000\000\000\000\000\000\000\000\000\000\000\001\190\002\000\000\164d\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\181f\000\000\000\000\000\001\155\132\000\000\000\000\000\000\157\170\000\000\025\020\000\000\"\016\000\001\1760\000\000\000\000\000\001\1834\000\000\025\000\000\000\157\\\000\000\031~\000\001xF\000\001\173\200\000\000\000\000\000\001\176\002\000\001\1834\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001i*\000\001\190\002\000\000\000\000\000\000\000\000\000\000\000\000\000\001\181f\000\000\031\198\000\000\000\000\000\000\031\212\000\000\000\000\000\001i*\000\001\190\002\000\000\000\000\000\000\000\000\000\000\031\234\000\000\000\000\000\000\000\000\000\000\031\222\000\000\161\182\000\000\"\020\000\000\"\020\000\001\164\198\000\000&\170\000\000\025\020\000\000\000\000\000\000\025\020\000\000\000\000\000\001\155\132\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\166\216\000\000&\170\000\000\025\020\000\000\000\000\000\000\025\020\000\000\000\000\000\000\020\014\000\001\165\198\000\001\173\200\000\000\000\000\000\001\176\002\000\000\000\000\000\000\031\226\000\000\161\182\000\000\"\020\000\001\155\132\000\000\000\000\000\000\031V\000\000\000\000\000\001\135\020\000\000.\004\000\000\000\000\000\000\229\192\000\000\000\000\000\000\000\000\000\001\188\180\000\000\031<\000\001\135\150\000\000\022\004\000\000\031\214\000\000\031B\000\001kX\000\000\021\146\000\000\000\000\000\000\000\000\000\000\229\192\000\000\000\000\000\000\000\000\000\001\188\242\000\000\">\000\000\000\000\000\001kX\000\000\022\182\000\000\000\000\000\000\153\244\000\000\031v\000\000\000\000\000\001m$\000\000\025\020\000\001lr\000\000\146\252\000\000&\160\000\000\000\000\000\000\022\206\000\000'\196\000\000\020\134\000\000(\232\000\001m$\000\000\025\020\000\001lr\000\000\148 \000\000\149D\000\000\031^\000\000\227\228\000\000\022\156\000\000\031\242\000\000\006\202\000\000 H\000\000\000\000\000\000\000\000\000\000\020\134\000\000*\012\000\001m$\000\000\025\020\000\001lr\000\000\150h\000\000\151\140\000\000 v\000\001lr\000\000\152\176\000\000\000\000\000\000 J\000\000\000\000\000\000\028\132\000\001\184\252\000\000\012X\000\000\006L\000\000\025\020\000\001v$\000\000\000\000\000\000\000\000\000\000 \250\000\001\130d\000\000\000\000\000\000\000\000\000\000\031\194\000\000\000\000\000\000\018\154\000\001kX\000\000\024D\000\000\025h\000\001kX\000\001,\244\000\001-\244\000\000\000\000\000\000\242*\000\001.\244\000\001/\244\000\000 ,\000\001kX\000\0010\244\000\0011\244\000\000\000\000\000\000\242*\000\0012\244\000\0013\244\000\001\181\156\000\000\014\026\000\000 ^\000\000\000\000\000\000\014\026\000\000 `\000\000\000\000\000\000\000\000\000\001\163\146\000\001\164\198\000\001\174`\000\000\"\020\000\000\000\000\000\000\000\000\000\000\000\000\000\001\175\000\000\000\000\000\000\001\164\198\000\000\014\026\000\000 d\000\000\000\000\000\000\014\026\000\000 f\000\000\000\000\000\000\000\000\000\000\000\000\000\001\171\188\000\000\161\238\000\000\155\198\000\000\014\026\000\000 j\000\000\000\000\000\000\014\026\000\000 p\000\000\000\000\000\000\000\000\000\000\000\000\000\000\014\026\000\000 z\000\000\000\000\000\000\014\026\000\000 \136\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\165v\000\000\000\000\000\001~\168\000\000\000\000\000\000 \128\000\000\161\182\000\000%\134\000\001~\168\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\022.\000\001\173B\000\001\173\218\000\001\165v\000\000\000\000\000\001~\168\000\000\000\000\000\000 \144\000\000\161\182\000\000%\134\000\001~\168\000\000\000\000\000\000\233 \000\000\030\174\000\000\n*\000\000\000*\000\000\0010\000\001\155\132\000\000\000\000\000\000\000*\000\000\0010\000\001\155\132\000\000\000\000\000\000\":\000\000\n*\000\000\003\000\000\000\001~\000\000\172\230\000\000\027\196\000\001~\168\000\000\000\000\000\000\005\244\000\000\012\204\000\000\028H\000\000\0010\000\001\155\132\000\000\000\000\000\000\b<\000\000\031\216\000\000\027\196\000\001\175j\000\001~\168\000\001\1904\000\000\000*\000\000\b<\000\000\031\222\000\000\027\196\000\001\175j\000\001~\168\000\001\1904\000\000\000\000\000\000\000\000\000\000\b<\000\000\031\204\000\000\005L\000\000\000\000\000\000 \196\000\000\000\000\000\000\016~\000\000\000\003\000\001\186>\000\000\005L\000\000\000\000\000\001i*\000\000\000\000\000\000\027\196\000\001kX\000\000\000\000\000\001i*\000\000\000\000\000\000\024\240\000\000\027\196\000\001\178$\000\000\000\000\000\000\000\000\000\000\024\240\000\000\000\000\000\000\000\000\000\000\030\174\000\000\025\020\000\000\"\020\000\000\166X\000\000\026\026\000\000\024\214\000\000\rH\000\000\016\024\000\000 \134\000\000\031\244\000\001o\144\000\001~\168\000\001\190l\000\000\024\214\000\000\rH\000\000\016\024\000\000 \148\000\000 \012\000\001o\144\000\001~\168\000\001\190l\000\000\000\000\000\000\000\000\000\000\000\000\000\000\233 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001i*\000\000\000\000\000\000\159\206\000\000\025\020\000\000\027\196\000\001\178\188\000\001kX\000\000\000\000\000\001\1834\000\000\000\000\000\001\190\158\000\000\025\000\000\000\157\\\000\000 \172\000\000\022\146\000\000 (\000\001\165v\000\000\000\000\000\001~\168\000\001\190\158\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000/\002\000\000\000\000\000\000\019H\000\001kX\000\000\025|\000\000\025\180\000\001kX\000\0014\244\000\0015\244\000\000\000\000\000\000\242*\000\0016\244\000\0017\244\000\000 \212\000\001kX\000\0018\244\000\0019\244\000\000\000\000\000\000\242*\000\001:\244\000\001;\244\000\000\025\192\000\001kX\000\001<\244\000\001=\244\000\000\000\000\000\000\242*\000\001>\244\000\001?\244\000\000 \224\000\001kX\000\001@\244\000\001A\244\000\000\000\000\000\000\242*\000\001B\244\000\001C\244\000\000\246*\000\001\178\168\000\000\019N\000\001kX\000\000\026,\000\000\026\020\000\001kX\000\001D\244\000\001E\244\000\000\000\000\000\000\242*\000\001F\244\000\001G\244\000\000 \248\000\001kX\000\001H\244\000\001I\244\000\000\000\000\000\000\242*\000\001J\244\000\001K\244\000\000\026\024\000\001kX\000\001L\244\000\001M\244\000\000\000\000\000\000\242*\000\001N\244\000\001O\244\000\000 \252\000\001kX\000\001P\244\000\001Q\244\000\000\000\000\000\000\242*\000\001R\244\000\001S\244\000\000(\252\000\000\243*\000\000\006\130\000\001kX\000\001T\244\000\001U\244\000\000\000\000\000\000\242*\000\001V\244\000\001W\244\000\000!\000\000\001kX\000\001X\244\000\001Y\244\000\000\000\000\000\000\242*\000\001Z\244\000\001[\244\000\0003@\000\000\243*\000\000\241\244\000\001kX\000\001\\\244\000\001]\244\000\000\000\000\000\000\242*\000\001^\244\000\001_\244\000\000!\n\000\001kX\000\001`\244\000\001a\244\000\000\000\000\000\000\242*\000\001b\244\000\001c\244\000\001{\252\000\000\000\000\000\000\000\000\000\001\136.\000\000*x\000\000\000\000\000\000\016\000\000\0003:\000\000\000\000\000\001\189\206\000\000\249F\000\000\t\006\000\0004^\000\000\001~\000\000\250F\000\000\t\006\000\0004\158\000\000\r2\000\000\001~\000\000\235p\000\001{\252\000\001\155\132\000\000\000\000\000\000!L\000\000\000\000\000\000\000\003\000\000 \144\000\000\000\003\000\000 \184\000\000\000\000\000\000 \214\000\000\000\000\000\000\000\000\000\000\229F\000\000 \218\000\000\000\000\000\000\000\000\000\000%\022\000\001|\170\000\000!\142\000\000\000\000\000\000\000\000\000\000\000\000\000\000\023\252\000\000\019\190\000\001\136\212\000\000!\148\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \234\000\000\000\000\000\000&\170\000\000\000\000\000\000!\002\000\000\000\000\000\001kX\000\000\000\000\000\000\015\222\000\000\000\000\000\000\000\003\000\000!\024\000\000\000\000\000\000\000\000\000\000\0010\000\000\000\000\000\000\011\b\000\000\000\000\000\000\000\003\000\000\000\000\000\000\t\174\000\000\000\000\000\000\"\016\000\000\000\000\000\000\001\n\000\000\000\000\000\000\027\196\000\000\000\000\000\000+\150\000\000\000\000\000\000\018\170\000\000\000\000\000\000!\026\000\000\000\000\000\000\229\192\000\000\">\000\000\000\000\000\000\000\000\000\000\021\146\000\000!*\000\000\000\000\000\000\000\000\000\000!\026\000\000\022\006\000\000\154\228\000\000\001~\000\001\172\\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001}.\000\000\001~\000\001\172\216\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\137X\000\000\000\000\000\000\000\000\000\000!\236\000\000\000\000\000\001\151\158\000\000\000\000\000\000\023:\000\000!\240\000\000\000\000\000\000!\244\000\000\000\000\000\000\155\246\000\000\155\246\000\001\158\242\000\001\158\242\000\000\000\000\000\000\000\000\000\001\155\132\000\001\158\242\000\000\000\000\000\000\000\000\000\000\000\000\000\001\155\132\000\001\158\242\000\000!J\000\000\000\000\000\000!T\000\000\000\000"), (16, "\004]\000\006\004]\001f\004]\003\146\003\150\003\154\004]\003\158\003j\004]\003\170\004]\007\025\bf\004]\bj\007\025\004]\004]\004]\000\242\004]\004]\004]\001\234\007\025\007\025\007\025\bn\004]\t^\tb\019b\tf\004]\t\209\004]\tr\001b\br\000\242\tv\004\197\004]\004]\004]\t\162\t\166\004]\t\170\t\182\t\194\t\198\t\206\r\146\003\242\004]\004]\003\138\000\242\022\026\t\190\r\178\004]\004]\004]\r\182\r\186\r\198\r\210\r\234\001r\004]\nJ\004]\004]\004]\004]\004]\004]\004]\004]\004]\r\250\004]\nb\nf\000\242\r\206\r\222\004]\rN\004]\004]\004]\017\026\001^\014\006\014\030\017\226\n\134\n\138\004]\017\246\004]\004]\017\"\004]\004]\004]\004]\r\226\001v\r\230\001\134\017&\027\214\004]\019\241\004]\004]\004\n\004]\004]\004]\004]\004]\004]\004]\n\142\r\238\004]\004]\004]\015\250\007\166\004]\004]\017\250\019\241\004]\004]\004]\004]\020!\002\206\020!\t\217\020!\006\006\020!\020!\020!\000\n\020!\020!\020!\020!\001\230\020!\020!\002\210\n\161\020!\020!\020!\n\161\020!\020!\020!\020!\002a\020!\002a\020!\020!\020!\020!\020!\b\"\020!\020!\020!\001\130\017z\020!\002a\020!\001n\020!\020!\020!\020!\020!\020!\000\242\020!\001\242\020!\000\242\020!\t\202\020!\020!\020!\003\226\001~\020!\020!\020!\020!\020!\020!\020!\020!\011\214\020!\004\210\020!\020!\020!\020!\020!\020!\020!\020!\020!\020!\020!\001\233\020!\020!\020!\020!\020!\020!\020!\n\213\020!\020!\020!.\235\004\218\004~\001\246\020!\020!\020!\020!\n:\020!\020!\006\n\020!\020!\020!\020!\020!\020!\020!\020!\000\242\020!\020!\001b\020!\020!\004\197\020!\020!\020!\020!\020!\020!\020!\020!\020!\020!\020!\020!\020!\020!\020!\020!\001b\004\197\020!\020!\020!\020!\001\233\001\233\001\233\007\166\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\b\194\004\242\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\015\182\001\233\001\233\001\233\001\233\001\233\001\142\001\233\001\233\001\233\004F\001\233\001\233\rN\001\233\b\206\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\027\154\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\004\210\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\t\006\001\233\001\233\001\233\001\186\004\218\005\021\007\025\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\n\246\016\026\001\233!n\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\015\029\007\025\015\029\001\198\015\029\r\129\015\029\015\029\015\029\t\025\015\029\015\029\015\029\015\029\000\242\015\029\015\029\t\225\006>\015\029\015\029\015\029\025j\015\029\015\029\015\029\015\029\001\006\015\029\001\190\015\029\015\029\015\029\015\029\015\029\025\154\015\029\015\029\015\029\005\021\t\025\015\029\t\025\015\029\002\002\015\029\015\029\015\029\015\029\015\029\015\029\000\242\015\029\001\146\015\029\t\n\015\029\003&\015\029\015\029\015\029\r>\025j\015\029\015\029\015\029\015\029\015\029\015\029\015\029\015\029\004F\015\029\004\210\015\029\015\029\015\029\015\029\015\029\015\029\015\029\015\029\015\029\015\029\015\029\004z\015\029\015\029\015\029\015\029\015\029\015\029\015\029\025\162\015\029\015\029\015\029\003\174\004\218(\022\001\230\015\029\015\029\015\029\015\029\011\161\015\029\015\029\r\129\015\029\015\029\015\029\015\029\015\029\018\026\015\029\018\130\014\218\018\138\015\029\003\250\015\029\015\029\025n\015\029\015\029\015\029\015\029\015\029\015\029\015\029\015\029\015\029\015\029\015\029\015\029\015\029\015\029\015\029\015\029\n\201\015\029\015\029\015\029\015\029\015\029\005E\003\226\005E\000\242\005E\003\242\005E\005E\005E%\026\005E\005E\005E\005E\003*\005E\005E\025n\006\210\005E\005E\005E\000\242\005E\005E\005E\005E\000\242\005E\015\218\005E\005E\005E\005E\005E\b\022\005E\005E\005E\005v\018\226\005E\004\166\005E\007\025\005E\005E\005E\005E\005E\005E\014.\005E\n\137\005E\000\242\005E\n\137\005E\005E\005E\003v\022:\005E\005E\005E\005E\005E\005E\005E\005E\003\254\005E\004\210\005E\005E\005E\005E\005E\005E\005E\005E\005E\005E\005E\rN\018\n\005E\005E\018\018\005E\005E\018z\rN\005E\005E\005E\0142\004\218\014\178\000\242\005E\005E\005E\005E\ru\005E\005E\b\026\005E\005E\005E\005E\005E\018\026\005E\018\130%\030\018\138\005E\016B\005E\005E\002\006\005E\005E\005E\005E\005E\005E\005E\005E\005E\005E\005E\005E\005E\005E\005E\005E\n\137\005E\005E\005E\005E\005E\0055\007\190\0055\002\134\0055\000\242\0055\0055\0055\002\150\0055\0055\0055\0055\002\218\0055\0055\004\210\rF\0055\0055\0055\030R\0055\0055\0055\0055\003\242\0055\029\246\0055\0055\0055\0055\0055\003\n\0055\0055\0055\007\025\007\025\0055\004\218\0055\002\238\0055\0055\0055\0055\0055\0055\029\254\0055\005\014\0055\007\025\0055\007\025\0055\0055\0055\004F\ru\0055\0055\0055\0055\0055\0055\0055\0055\006F\0055\n\141\0055\0055\0055\0055\0055\0055\0055\0055\0055\0055\0055\007\025\018\n\0055\0055\018\018\0055\0055\018z\0042\0055\0055\0055(z\005\210\000\242\000\242\0055\0055\0055\0055\003\178\0055\0055\014J\0055\0055\0055\0055\0055\018\026\0055\018\130\000\242\018\138\0055\005\138\0055\0055\005\218\0055\0055\0055\0055\0055\0055\0055\0055\0055\0055\0055\0055\0055\0055\0055\0055\017z\0055\0055\0055\0055\0055\014\185\n\141\014\185\004\002\014\185-.\014\185\014\185\014\185\000\242\014\185\014\185\014\185\014\185\r\194\014\185\014\185\004\210\001\141\014\185\014\185\014\185\000\242\014\185\014\185\014\185\014\185\007\173\014\185\017z\014\185\014\185\014\185\014\185\014\185\004J\014\185\014\185\014\185\001\141\"V\014\185\004\218\014\185\000\242\014\185\014\185\014\185\014\185\014\185\014\185\001\202\014\185\004\222\014\185\005\018\014\185\023\202\014\185\014\185\014\185\029\186\022\130\014\185\014\185\014\185\014\185\014\185\014\185\014\185\014\185\017\186\014\185\004\210\014\185\014\185\014\185\014\185\014\185\014\185\014\185\014\185\014\185\014\185\014\185\001\206\014\185\014\185\014\185\014\185\014\185\014\185\014\185\rN\014\185\014\185\014\185\004F\004\218\001\210\r:\014\185\014\185\014\185\014\185\004\230\014\185\014\185\014~\014\185\014\185\014\185\014\185\014\185\014\185\014\185\014\185\001\141\014\185\014\185\003\182\014\185\014\185\b2\014\185\014\185\014\185\014\185\014\185\014\185\014\185\014\185\014\185\014\185\014\185\014\185\014\185\014\185\014\185\014\185\015\218\001\141\014\185\014\185\014\185\014\185\014\201\004F\014\201\001\141\014\201\018\226\014\201\014\201\014\201\005\170\014\201\014\201\014\201\014\201\003:\014\201\014\201\004\210\015\n\014\201\014\201\014\201\000\242\014\201\014\201\014\201\014\201\005\226\014\201\017z\014\201\014\201\014\201\014\201\014\201\003B\014\201\014\201\014\201\b\250\b\254\014\201\004\218\014\201\000\242\014\201\014\201\014\201\014\201\014\201\014\201\015\018\014\201\005\246\014\201 \162\014\201\023\238\014\201\014\201\014\201\029\206\023\006\014\201\014\201\014\201\014\201\014\201\014\201\014\201\014\201\005*\014\201\004\210\014\201\014\201\014\201\014\201\014\201\014\201\014\201\014\201\014\201\014\201\014\201\029\226\014\201\014\201\014\201\014\201\014\201\014\201\014\201\rN\014\201\014\201\014\201\000\242\004\218\012B\003\154\014\201\014\201\014\201\014\201\r\141\014\201\014\201\015&\014\201\014\201\014\201\014\201\014\201\014\201\014\201\014\201\007\133\014\201\014\201\005F\014\201\014\201\006j\014\201\014\201\014\201\014\201\014\201\014\201\014\201\014\201\014\201\014\201\014\201\014\201\014\201\014\201\014\201\014\201\002\026\001\242\014\201\014\201\014\201\014\201\014\193\t\130\014\193\006\170\014\193\000\242\014\193\014\193\014\193\016\142\014\193\014\193\014\193\014\193\004\210\014\193\014\193\004F\015^\014\193\014\193\014\193\rN\014\193\014\193\014\193\014\193\003\242\014\193\016\150\014\193\014\193\014\193\014\193\014\193\018\030\014\193\014\193\014\193\004\218\002\030\014\193\001\246\014\193\006\254\014\193\014\193\014\193\014\193\014\193\014\193\025J\014\193\025V\014\193\006J\014\193\024\018\014\193\014\193\014\193\002\"\r\141\014\193\014\193\014\193\014\193\014\193\014\193\014\193\014\193\006\138\014\193\004\210\014\193\014\193\014\193\014\193\014\193\014\193\014\193\014\193\014\193\014\193\014\193\007>\014\193\014\193\014\193\014\193\014\193\014\193\014\193\004\146\014\193\014\193\014\193\016\202\004\218\005\222\025\206\014\193\014\193\014\193\014\193\015~\014\193\014\193\001\230\014\193\014\193\014\193\014\193\014\193\014\193\014\193\014\193\017\014\014\193\014\193\005\238\014\193\014\193\004Z\014\193\014\193\014\193\014\193\014\193\014\193\014\193\014\193\014\193\014\193\014\193\014\193\014\193\014\193\014\193\014\193\002a\002a\014\193\014\193\014\193\014\193\014\173\004F\014\173\bR\014\173\bb\014\173\014\173\014\173\003R\014\173\014\173\014\173\014\173\004\210\014\173\014\173\004F\0222\014\173\014\173\014\173\000\n\014\173\014\173\014\173\014\173\b\138\014\173'\134\014\173\014\173\014\173\014\173\014\173.\219\014\173\014\173\014\173\004\218\002a\014\173\002a\014\173\017\"\014\173\014\173\014\173\014\173\014\173\014\173\006\197\014\173\025\230\014\173\002a\014\173\024:\014\173\014\173\014\173\001\230\016\130\014\173\014\173\014\173\014\173\014\173\014\173\014\173\014\173\006\193\014\173\004\210\014\173\014\173\014\173\014\173\014\173\014\173\014\173\014\173\014\173\014\173\014\173\027\006\014\173\014\173\014\173\014\173\014\173\014\173\014\173\001\230\014\173\014\173\014\173\000\242\004\218\016\190\004\002\014\173\014\173\014\173\014\173\022\254\014\173\014\173\025\206\014\173\014\173\014\173\014\173\014\173\014\173\014\173\014\173\000\242\014\173\014\173\025\206\014\173\014\173\007\254\014\173\014\173\014\173\014\173\014\173\014\173\014\173\014\173\014\173\014\173\014\173\014\173\014\173\014\173\014\173\014\173\003\234\ne\014\173\014\173\014\173\014\173\014\181\004\014\014\181\bF\014\181\003\242\014\181\014\181\014\181\031\250\014\181\014\181\014\181\014\181\003\182\014\181\014\181\b2\030\130\014\181\014\181\014\181\rN\014\181\014\181\014\181\014\181\004F\014\181\bJ\014\181\014\181\014\181\014\181\014\181\007\186\014\181\014\181\014\181\005\138\017z\014\181\rN\014\181\007\142\014\181\014\181\014\181\014\181\014\181\014\181\015f\014\181\006\218\014\181\000\242\014\181\024^\014\181\014\181\014\181\025\230.\203\014\181\014\181\014\181\014\181\014\181\014\181\014\181\014\181\003\254\014\181\025\230\014\181\014\181\014\181\014\181\014\181\014\181\014\181\014\181\014\181\014\181\014\181\026\202\014\181\014\181\014\181\014\181\014\181\014\181\014\181\027\030\014\181\014\181\014\181\000\242\006\222\000\242\007\025\014\181\014\181\014\181\014\181\0296\014\181\014\181\004\002\014\181\014\181\014\181\014\181\014\181\014\181\014\181\014\181\031\254\014\181\014\181\028\138\014\181\014\181\r\190\014\181\014\181\014\181\014\181\014\181\014\181\014\181\014\181\014\181\014\181\014\181\014\181\014\181\014\181\014\181\014\181\025\206\007\025\014\181\014\181\014\181\014\181\014\177\007\190\014\177\015\218\014\177\007\025\014\177\014\177\014\177\003\226\014\177\014\177\014\177\014\177\018\226\014\177\014\177\028\234\000\242\014\177\014\177\014\177\rN\014\177\014\177\014\177\014\177\b\154\014\177\bV\014\177\014\177\014\177\014\177\014\177\007\246\014\177\014\177\014\177\b\250*Z\014\177\000\242\014\177\004F\014\177\014\177\014\177\014\177\014\177\014\177\015\134\014\177\b\182\014\177*j\014\177\024\130\014\177\014\177\014\177\b\006\b^\014\177\014\177\014\177\014\177\014\177\014\177\014\177\014\177\007\025\014\177\000\242\014\177\014\177\014\177\014\177\014\177\014\177\014\177\014\177\014\177\014\177\014\177*\166\014\177\014\177\014\177\014\177\014\177\014\177\014\177\025\230\014\177\014\177\014\177\000\242!\170\000\242\b\142\014\177\014\177\014\177\014\177\r\153\014\177\014\177\025\206\014\177\014\177\014\177\014\177\014\177\014\177\014\177\014\177\026\234\014\177\014\177\000\242\014\177\014\177\b\146\014\177\014\177\014\177\014\177\014\177\014\177\014\177\014\177\014\177\014\177\014\177\014\177\014\177\014\177\014\177\014\177\b\250\b\254\014\177\014\177\014\177\014\177\014\189\r\165\014\189\020U\014\189\000\242\014\189\014\189\014\189\016F\014\189\014\189\014\189\014\189\016\178\014\189\014\189\020U\025\206\014\189\014\189\014\189\rN\014\189\014\189\014\189\014\189\007\190\014\189\b\158\014\189\014\189\014\189\014\189\014\189\023~\014\189\014\189\014\189\027>\b\166\014\189\b\186\014\189\b\170\014\189\014\189\014\189\014\189\014\189\014\189\023\150\014\189\023\162\014\189\023\190\014\189\024\174\014\189\014\189\014\189\025\230\r\153\014\189\014\189\014\189\014\189\014\189\014\189\014\189\014\189\023\226\014\189\024\006\014\189\014\189\014\189\014\189\014\189\014\189\014\189\014\189\014\189\014\189\014\189\031\202\014\189\014\189\014\189\014\189\014\189\014\189\014\189\029N\014\189\014\189\014\189\t\214\030j\012\194\005\138\014\189\014\189\014\189\014\189\007\158\014\189\014\189\b\245\014\189\014\189\014\189\014\189\014\189\014\189\014\189\014\189\025\230\014\189\014\189\025\206\014\189\014\189\b\174\014\189\014\189\014\189\014\189\014\189\014\189\014\189\014\189\014\189\014\189\014\189\014\189\014\189\014\189\014\189\014\189\t\230\027R\014\189\014\189\014\189\014\189\014\205\007\030\014\205\018\246\014\205\030n\014\205\014\205\014\205\004}\014\205\014\205\014\205\014\205\016B\014\205\014\205\004\210\n\141\014\205\014\205\014\205\n\141\014\205\014\205\014\205\014\205\t\242\014\205\n\006\014\205\014\205\014\205\014\205\014\205\024\162\014\205\014\205\014\205\n\002\000\242\014\205\004\218\014\205\b\214\014\205\014\205\014\205\014\205\014\205\014\205\024\198\014\205\024\234\014\205 \014\014\205\024\210\014\205\014\205\014\205\b\014\021\186\014\205\014\205\014\205\014\205\014\205\014\205\014\205\014\205\b\226\014\205\025\230\014\205\014\205\014\205\014\205\014\205\014\205\014\205\014\205\014\205\014\205\014\205\000\242\014\205\014\205\014\205\014\205\014\205\014\205\014\205\004F\014\205\014\205\014\205\031\226\003\154\016\194\003\154\014\205\014\205\014\205\014\205\r\194\014\205\014\205\031.\014\205\014\205\014\205\014\205\014\205\014\205\014\205\014\205\r\225\014\205\014\205\025\206\014\205\014\205\t\018\014\205\014\205\014\205\014\205\014\205\014\205\014\205\014\205\014\205\014\205\014\205\014\205\014\205\014\205\014\205\014\205$\198\029\n\014\205\014\205\014\205\014\205\014\197\t\130\014\197\t\022\014\197\002V\014\197\014\197\014\197\n\194\014\197\014\197\014\197\014\197\003\182\014\197\014\197\b2\025\206\014\197\014\197\014\197\tN\014\197\014\197\014\197\014\197\007\190\014\197\t\138\014\197\014\197\014\197\014\197\014\197\t\218\014\197\014\197\014\197\029\030\0071\014\197\n\178\014\197\n\198\014\197\014\197\014\197\014\197\014\197\014\197\002\234\014\197\021\186\014\197\000\242\014\197\024\246\014\197\014\197\014\197\001\230\t\222\014\197\014\197\014\197\014\197\014\197\014\197\014\197\014\197\002\129\014\197\025\230\014\197\014\197\014\197\014\197\014\197\014\197\014\197\014\197\014\197\014\197\014\197!\178\014\197\014\197\014\197\014\197\014\197\014\197\014\197\t\142\014\197\014\197\014\197.\171\003\242\0071!\246\014\197\014\197\014\197\014\197\t\234\014\197\014\197\t>\014\197\014\197\014\197\014\197\014\197\014\197\014\197\014\197\025\230\014\197\014\197\016B\014\197\014\197\t\246\014\197\014\197\014\197\014\197\014\197\014\197\014\197\014\197\014\197\014\197\014\197\014\197\014\197\014\197\014\197\014\197\t\146!\254\014\197\014\197\014\197\014\197\015\005\"b\015\005\002\250\015\005\t\001\015\005\015\005\015\005\011F\015\005\015\005\015\005\015\005\004\210\015\005\015\005\007\025\n^\015\005\015\005\015\005\000\242\015\005\015\005\015\005\015\005\t\250\015\005*\194\015\005\015\005\015\005\015\005\015\005\017\"\015\005\015\005\015\005\004\218\012>\015\005\007\025\015\005\007\129\015\005\015\005\015\005\015\005\015\005\015\005*\218\015\005\n&\015\005\000\242\015\005\025\018\015\005\015\005\015\005\001\230\017\222\015\005\015\005\015\005\015\005\015\005\015\005\015\005\015\005\0116\015\005\011J\015\005\015\005\015\005\015\005\015\005\015\005\015\005\015\005\015\005\015\005\015\005\nz\015\005\015\005\015\005\015\005\015\005\015\005\015\005\004\002\015\005\015\005\015\005\011\166#R\011\186\019\201\015\005\015\005\015\005\015\005!*\015\005\015\005\nR\015\005\015\005\015\005\015\005\015\005\015\005\015\005\015\005\003\182\015\005\015\005\b2\015\005\015\005\n\170\015\005\015\005\015\005\015\005\015\005\015\005\015\005\015\005\015\005\015\005\015\005\015\005\015\005\015\005\015\005\015\005\nR#\154\015\005\015\005\015\005\015\005\0051\012\154\0051\012\174\0051\011\182\0051\0051\0051\012\170\0051\0051\0051\0051\003\182\0051\0051\b2\012F\0051\0051\0051\n]\0051\0051\0051\0051\012\206\0051\012\226\0051\0051\0051\0051\0051\n\182\0051\0051\0051\007\025\r\006\0051\r\026\0051\n\186\0051\0051\0051\0051\0051\0051\000\242\0051\012\222\0051\000\242\0051\019\201\0051\0051\0051\002v\002\226\0051\0051\0051\0051\0051\0051\0051\0051\r\022\0051\004\210\0051\0051\0051\0051\0051\0051\0051\0051\0051\0051\0051\003\242\018\n\0051\0051\018\018\0051\0051\018z\016\246\0051\0051\0051\011:\004\218\000\242\019\197\0051\0051\0051\0051\011>\0051\0051\001\246\0051\0051\0051\0051\0051\018\026\0051\018\130\000\242\018\138\0051\011\130\0051\0051\011\146\0051\0051\0051\0051\0051\0051\0051\0051\0051\0051\0051\0051\0051\0051\0051\0051\001\246\0051\0051\0051\0051\0051\014\157\r6\014\157\rz\014\157\016\242\014\157\014\157\014\157\ni\014\157\014\157\014\157\014\157\004\210\014\157\014\157\004\210(\166\014\157\014\157\014\157$\146\014\157\014\157\014\157\014\157\r\130\014\157\031\150\014\157\014\157\014\157\014\157\014\157\011\170\014\157\014\157\014\157\004\218\rN\014\157\004\218\014\157\011\174\014\157\014\157\014\157\014\157\014\157\014\157\023z\014\157\016\246\014\157\t\138\014\157\019\197\014\157\014\157\014\157\n\169\003\022\014\157\014\157\014\157\014\157\014\157\014\157\014\157\014\157\014\194\014\157\014\214\014\157\014\157\014\157\014\157\014\157\014\157\014\157\014\157\014\157\014\157\014\157\011\242\018\n\014\157\014\157\018\018\014\157\014\157\018z\001\230\014\157\014\157\014\157\015\226.f\015\242\001\246\014\157\014\157\014\157\014\157,\006\014\157\014\157,\154\014\157\014\157\014\157\014\157\014\157\018\026\014\157\018\130\022\198\018\138\014\157\012\n\014\157\014\157\t\142\014\157\014\157\014\157\014\157\014\157\014\157\014\157\014\157\014\157\014\157\014\157\014\157\014\157\014\157\014\157\014\157':\014\157\014\157\014\157\014\157\014\157\002\149\r\142\002\149\018V\002\149\018f\003\150\003\154\002\149!\230\003j\002\149\018R\002\149\024\158\bf\002\149\000\242\t\138\002\149\002\149\002\149!r\002\149\002\149\002\149\001\234\018\166\018j\018\182\bn\002\149\002\149\002\149\002\149\027\130\002\149\018r\002\149\r\221\021r\br\021\130\tv\012Z\002\149\002\149\002\149\002\149\002\149\002\149\014\194\t\182\014\246\001\190\000\242\002\149#r\002\149\002\149\003\138\003v\022R\t\190\r\178\002\149\002\149\002\149\r\182\r\186\r\198\022\182\023\178\022\202\002\149\nJ\002\149\002\149\002\149\002\149\002\149\002\149\002\149\002\149\002\149\012f\018\n\nb\nf\018\018\r\206\r\222\018z\rN\002\149\002\149\002\149\012\158#z'\218\014\030\002\149\n\134\n\138\002\149\012\162\002\149\002\149\b\237\002\149\002\149\002\149\002\149\r\226\023\186\r\230\018\130\012\198\024*\002\149\023\030\002\149\002\149\028\226\002\149\002\149\002\149\002\149\002\149\002\149\002\149\n\142\r\238\002\149\002\149\002\149\015\250\007\166\002\149\002\149\012\210\003\154\002\149\002\149\002\149\002\149\014\241\028J\014\241\028Z\014\241\rN\003\150\003\154\014\241'\162\003j\014\241\014\241\014\241\030\150\bf\014\241\r\190\005\001\014\241\014\241\014\241\011\142\014\241\014\241\014\241\001\234\"\154\014\241\012\214\bn\014\241\014\241\014\241\014\241\012\254\014\241\014\241\014\241!\190\001\006\br\001\190\tv\r\n\014\241\014\241\014\241\014\241\014\241\014\241\r\197\t\182\t\142\001\190\000\242\014\241\r\201\014\241\014\241\003\138\017\"\n\193\t\190\r\178\014\241\014\241\014\241\r\182\r\186\r\198 \022\014\241\001\230\014\241\nJ\014\241\014\241\014\241\014\241\014\241\014\241\014\241\014\241\014\241\"n\014\241\nb\nf\014\241\r\206\r\222\014\241\002\130\014\241\014\241\014\241'\146\001\006'\166\001\190\014\241\n\134\n\138\014\241\r\014\014\241\014\241\rn\014\241\014\241\014\241\014\241\r\226\014\241\r\230\014\241\"\002\014\241\014\241)\218\014\241\014\241\000\242\014\241\014\241\014\241\014\241\014\241\014\241\014\241\n\142\r\238\014\241\014\241\014\241\015\250\007\166\014\241\014\241!\194!\250\014\241\014\241\014\241\014\241\014\237$\158\014\237\rv\014\237\t\t\003\150\003\154\014\237'\202\003j\014\237\014\237\014\237\"&\bf\014\237\"\182\014f\014\237\014\237\014\237\t\005\014\237\014\237\014\237\001\234(\"\014\237(2\bn\014\237\014\237\014\237\014\237\017\"\014\237\014\237\014\237\011\213\"v\br\rN\tv\014n\014\237\014\237\014\237\014\237\014\237\014\237#F\t\182\000\242\001\190\000\242\014\237\".\014\237\014\237\003\138\b\237\014\162\t\190\r\178\014\237\014\237\014\237\r\182\r\186\r\198$\254\014\237\0071\014\237\nJ\014\237\014\237\014\237\014\237\014\237\014\237\014\237\014\237\014\237$\170\014\237\nb\nf\014\237\r\206\r\222\014\237#\218\014\237\014\237\014\237\nu#~\003V\000\242\014\237\n\134\n\138\014\237\017\"\014\237\014\237\011\209\014\237\014\237\014\237\014\237\r\226\014\237\r\230\014\237$\n\014\237\014\237\tN\014\237\014\237\014\174\014\237\014\237\014\237\014\237\014\237\014\237\014\237\n\142\r\238\014\237\014\237\014\237\015\250\007\166\014\237\014\237$:#v\014\237\014\237\014\237\014\237\002\245\014\198\002\245\b\241\002\245\020]\003\150\003\154\002\245\014\202\003j\002\245\018R\002\245#\186\bf\002\245\rA\014\238\002\245\002\245\002\245\011\201\002\245\002\245\002\245\001\234\003\242\018j\0156\bn\002\245\002\245\002\245\002\245\015>\002\245\018r\002\245\011\197\"v\br\015F\tv\015\146\002\245\002\245\002\245\002\245\002\245\002\245\007\025\t\182\003\154\001\190\r=\002\245\003\242\002\245\002\245\003\138\000\242(\174\t\190\r\178\002\245\002\245\002\245\r\182\r\186\r\198\015\154\023\178\015\198\002\245\nJ\002\245\002\245\002\245\002\245\002\245\002\245\002\245\002\245\002\245\015\230\002\245\nb\nf\015\238\r\206\r\222\002\245%R\002\245\002\245\002\245\000\242\018\142\000\242\t\130\002\245\n\134\n\138\002\245\016N\002\245\002\245\000\242\002\245\002\245\002\245\002\245\r\226\023^\r\230\023j\007\025\rA\002\245\016Z\002\245\002\245.b\002\245\002\245\002\245\002\245\002\245\002\245\002\245\n\142\r\238\002\245\002\245\002\245\015\250\007\166\002\245\002\245\019\233\007\025\002\245\002\245\002\245\002\245\007\025\007\025\007\025\007\025\007\025\007\025\007\025\007\025\007\025\007\025\r=\007\025\007\202\007\025\007\025\019\233\007\025\007\025\007\025\007\025\007\025\007\025\007\025\007\025\007\025\007\025\007\025\007\025\007\025\007\025\016r\007\025\007\025\016B\007\025\000\242\007\025\007\025\007\025\000\242\007\025\007\025\007\025\007\025\007\025\000\242\016\218\007\025\007\025\007\025\007\025\007\025\007\025\007\025\007\025\007\025\000\242\007\025\007\025\007\025\007\025\007\025\007\025\007\025\007\025\007\025\000\242\007\025\007\025\007\025\007\025\007\025,\014\007\025\007\025\007\025\007\025\007\025\017f\007\025\017n\017\154\007\025\007\025\007\025\007\025\007\025\007\025(\178\007\025\007\025\007\025\007\025\017\170\007\025\007\025\007\025\007\025\007\025\007\025\007\025\007\025\007\025\007\025\007\025\007\025\019\237\007\025\007\025\007\025*\242\007\025\007\025\007\025\007\025\007\025\007\025\000\242\000\242\007\025\018\014\007\025\007\218\007\025\002\178\007\025,\018\019\237\007\025\007\025\007\025\007\025,R\002a\007\025\007\025\007\025\007\025!\158\007\025\007\025\000\169\007\025\000\169\000\169\000\169\000\169\000\169\000\169\000\169\000\169\007\025\000\169\000\242\000\169\000\169\018Z\000\169\000\169\000\169,\162\018b\000\169\000\169\000\n\000\169\000\169\000\169\000\169\018n\000\169\018~\000\169\000\169,\166\000\169,\230\000\169\000\169\000\169\004F\000\169\000\169\000\169\002a\000\169#>$f\000\169\000\169\000\169\000\169\000\169\000\169\000\169\000\169\000\169\002a\002a\000\169\000\169\bf\004\002\000\169\000\169\000\169\000\242\000\169\000\169\000\169\000\169\000\169\000\169\018\150\000\169\000\169\000\169\000\169\004F\n\222\000\169\b\194#\178\000\169\004F\000\169\000\169\000\169\000\169$\002\000\169\000\169\000\169\b\198\b\202\n\226\002\190\018\170\000\169\000\169\000\169\000\169\000\169\000\169\000\169\000\169\000\169\0046\b\206\003\226\000\169\r\169\001\161\000\169\020i\000\169\003\186\003\198\000\226\018\178\021v\nJ\000\169\003\210\"\"\021~\004F\021\206\004F\000\169\000\169\000\169\000\169\001\161\021\238\000\169\000\169\000\169\000\006\022\018\000\169\n}\003\146\003\150\003\154\003\214\003\158\003j\n\134\003\170\"*\022&\bf\001\n\bj\000\242\022F\n\149\003v\022^\022n\n\149\n}\001\234\022\142\022\154\022\186\t\186\001\018\016&\016*\001\030\tf\001\"\022\190\011\205\tr\n\142\br\023\018\tv\023*\031\234\001&\r\169\017\198\017\202\n}\t\170\t\182\t\194\t\198\017\206\r\146\029b\0016\n}\003\138\023:\023f\t\190\r\178\n}\n}\000\242\r\182\r\186\r\198\r\210\r\234\002v\001\161\nJ\n}\n}\001:\001>\001B\001F\001J\023r\002z\r\250\r\169\nb\nf\001N\r\206\r\222\001\234\023\134\n\149\023\158\001R\015\218\001\161\014\006\014\030\017\226\n\134\n\138#\254\017\246\001\161\001V\018\226\023\170\n}\t\014\023\198\r\226\001Z\r\230\001\161\n\133\016R\023\234\001\246\n\133\n}\024\014\015\218\0246\003\138\001\150\011\142\024Z$\006\n\142\r\238\024~\001\154\018\226\025\174\007\166\001\162\001\166\017\250%z\001\170\000\006\001\174\001\178\001\249\003\146\003\150\003\154\024\170\003\158\003j\024\206\003\170\011\197\024\242\bf\001\n\bj\015\218\025F\029f\016\"\016^\029r\n\177\001\249\001\234\019\221\n\177\018\226\t\186\001\018\016&\016*\001\030\tf\001\"\025R\025^\tr\019\221\br\b\133\tv\025z\016.\001&\025\130\017\198\017\202\001\249\t\170\t\182\t\194\t\198\017\206\r\146\025\182\0016\001\249\003\138\tU\n\133\t\190\r\178\001\249\001\249\000\242\r\182\r\186\r\198\r\210\r\234\026\222\019\221\nJ\001\249\001\249\001:\001>\001B\001F\001J\011\250\n.\r\250\025\206\nb\nf\001N\r\206\r\222\014\194\027\018\014\246\027F\001R\b\133\027^\014\006\014\030\017\226\n\134\n\138\0182\017\246\002^\001V\b\214\027\146\001\249\n\177\019\221\r\226\001Z\r\230\019\221*^\027\202\b\133\b\218\b\222\001\249\027\234\028:\028N\028V\001\150\011\238\000\242\003\182\n\142\r\238\b2\001\154\b\226\025\174\007\166\001\162\001\166\017\250\028\158\001\170\028\198\001\174\001\178\002\217\028\242\002\217(n\002\217\029\018\003\150\003\154\002\217\029B\003j\002\217\tU\002\217\029\238\bf\002\217\030\018\030\030\002\217\002\217\002\217\0302\002\217\002\217\002\217\001\234\030V\030b\n\022\bn\002\217\002\217\002\217\002\217\030v\002\217\030z\002\217\025\230\011\158\br\030\166\tv\011j\002\217\002\217\002\217\002\217\002\217\002\217\011\218\t\182\030\198\r\202\004\129\002\217\011\226\002\217\002\217\003\138\0316\015\218\t\190\r\178\002\217\002\217\002\217\r\182\r\186\r\198\r\181\004\129\018\226\002\217\nJ\002\217\002\217\002\217\002\217\002\217\002\217\002\217\002\217\002\217\031F\018\n\nb\nf\018\018\r\206\r\222\018z\031Z\002\217\002\217\002\217\031\134\031\146\031\214 \030\002\217\n\134\n\138\002\217 &\002\217\002\217 6\002\217\002\217\002\217\002\217\r\226\018\026\r\230\018\130\030\234\018\138\002\217 \254\002\217\002\217!\002\002\217\002\217\002\217\002\217\002\217\002\217\002\217\n\142\r\238\002\217\002\217\002\217\015\250\007\166\002\217\002\217!\"\017\134\002\217\002\217\002\217\002\217\0121!:\0121!>\0121!\206!\210\"\n\0121\"\014\"6\0121\002a\0121\001!\002a\0121\":\"R\0121\0121\0121\"\202\0121\0121\0121\017z\002a\002a z\"\250\0121\0121\0121\0121\001!\0121\"\254\0121\000\n#\"\000\242#N\002a\011\154\0121\0121\0121\0121\0121\0121#^\019\221#\134#\138\000\n\0121\002a\0121\0121\001!\019\221!\222#\150#\166\0121\0121\0121\012\018\001!#\194\r\209\002a\002a\0121\001!\0121\0121\0121\0121\0121\0121\0121\0121\0121#\210\018\n\001!\002a\018\018\000\242#\230\018z$\018\0121\0121\0121$\022$\"\019\221$2\0121$F\017\138\0121%.\0121\0121\002a\0121\0121\0121\0121\004F\018\026\000\242\018\130%>\018\138\0121\001!\0121\0121%J\0121\0121\0121\0121\0121\0121\0121\002^\001!\0121\0121\0121%r\019\221\0121\0121\003\154*\014\0121\0121\0121\0121\003\017\011\158\003\017%~\003\017\011j\011\206\t\142\003\017\017\242%\174\003\017\011\218\003\017%\210%\250\003\017&f\011\226\003\017\003\017\003\017&\174\003\017\003\017\003\017\011\158\r\209\003\222&\182\011j\003\017\003\017\003\017\003\017\r\209\003\017\011\218\003\017\024.&\206\t\130&\218\011\226'R\003\017\003\017\003\017\003\017\003\017\003\017\001\230\n\250'f'\138\024R\003\017\024v\003\017\003\017\007\134'\150'\154\n\n\n\014\003\017\003\017\003\017\011\254'\214\n\026(\026\027j\r=\003\017(&\003\017\003\017\003\017\003\017\003\017\003\017\003\017\003\017\003\017(.\018\n(V(f\018\018\nj\nr\018z(\158\003\017\003\017\003\017(\210\003\226(\250)\006\003\017)>)J\003\017)j\003\017\003\017)v\003\017\003\017\003\017\003\017)\138\018\026\000\242\018\130\000\242\018\138\003\017)\150\003\017\003\017)\186\003\017\003\017\003\017\003\017\003\017\003\017\003\017)\246\026Z\003\017\003\017\003\017\005v*r\003\017\003\017*\142*\174\003\017\003\017\003\017\003\017\003\t*\186\003\t+2\003\t+6\n\017\t\142\003\t\026r+R\003\t\018\n\003\t\001\230\018\018\003\t+V\018z\003\t\003\t\003\t+\202\003\t\003\t\003\t\011\158(\142\r=+\210\011j\003\t\003\t\003\t\003\t,2\003\t\011\218\003\t\r\169\018\026,r\018\130\011\226\018\138\003\t\003\t\003\t\003\t\003\t\003\t\005%\016\030,\198\001\190-\006\003\t-N\003\t\003\t\b\194\003\226-\150\025\186\026\238\003\t\003\t\003\t\027\"\027V\027b.\018\b\198\b\202\003\t.\030\003\t\003\t\003\t\003\t\003\t\003\t\003\t\003\t\003\t\018\n\018\n\b\206\018\018\018\018\005\029\018z\018z.&\003\t\003\t\003\t\000\242./\005v.?\003\t.R\007\177\003\t.n\003\t\003\t.\139\003\t\003\t\003\t\003\t\018\026\018\026\018\130\018\130\018\138\018\138\003\t.\155\003\t\003\t\028B\003\t\003\t\003\t\003\t\003\t\003\t\003\t.\183/\011\003\t\003\t\003\t\000\242\005%\003\t\003\t/'/2\003\t\003\t\003\t\003\t\012E/\135\012E/\155\012E/\163\t\030\003\154\012E\030J/\223\012E\003j\012E\t\"/\231\012E\000\000\000\000\012E\012E\012E\rN\012E\012E\012E\001\234\002a\002a*6\005\029\012E\012E\012E\012E\000\000\012E\000\000\012E\000\000\000\000\002V\000\000\002a'\190\012E\012E\012E\012E\012E\012E\000\000\r\166\000\000\030N\000\n\012E\000\000\012E\012E\003\138\rN\004\238\000\000\000\000\012E\012E\012E\0182\r\181\030Z\r\181\r\181\002a\012E\000\000\012E\012E\012E\012E\012E\012E\012E\012E\012E\000\000\018\n\002\234\002a\018\018\000\242\000\000\018z\000\000\012E\012E\012E\000\000\016:\000\000\000\000\012E\000\000\000\000\012E\n\138\012E\012E\000\000\012E\012E\012E\012E\011\185\018\026\002V\018\130\011\185\018\138\012E\n\029\012E\012E\000\000\012E\012E\012E\012E\012E\012E\012E\000\000/\023\012E\012E\012E\005\234&\226\012E\012E\000\000\000\000\012E\012E\012E\012E\012Y\011\158\012Y\000\000\012Y\011j'\194\t\142\012Y\000\000\000\000\012Y\011\218\012Y\011\185\002\234\012Y\000\000\011\226\012Y\012Y\012Y\000\000\012Y\012Y\012Y\015\218\r\181\b\214\000\000\000\000\012Y\012Y\012Y\012Y\r\181\012Y\018\226\012Y\002\250\b\218\b\222\000\000\011\185\012*\012Y\012Y\012Y\012Y\012Y\012Y\001\230\016\030\000\000\027\158\b\226\012Y\000\000\012Y\012Y\007\150\000\000\000\000\025\186\026\238\012Y\012Y\012Y\027\"\027V\027b\000\000\000\000\000\000\012Y\014\026\012Y\012Y\012Y\012Y\012Y\012Y\012Y\012Y\012Y\011\185\018\n\000\000\005\206\018\018\011]\000\000\018z\n\165\012Y\012Y\012Y\n\165\003\226\000\000\000\000\012Y\000\000\000\000\012Y\000\000\012Y\012Y\000\000\012Y\012Y\012Y\012Y\002\250\018\026\000\242\018\130\000\000\018\138\012Y\027\210\012Y\012Y\000\000\012Y\012Y\012Y\012Y\012Y\012Y\012Y\000\000\000\000\012Y\012Y\012Y\005v\000\000\012Y\012Y\000\242\000\000\012Y\012Y\012Y\012Y\012m\011]\012m\000\000\012m\011]\000\000\002V\012m\006)\000\000\012m\011]\012m!\238\000\000\012m\000\000\011]\012m\012m\012m\000\000\012m\012m\012m\006)\000\000-\186\000\000\012~\012m\012m\012m\012m\tZ\012m\006)\012m\000\000\000\000\000\000\002V\006)\000\000\012m\012m\012m\012m\012m\012m\011\158\000\000\002\234\000\000\011j\012m\000\000\012m\012m\"\026\000\000\011\218\005\254\000\000\012m\012m\012m\011\226 \218\016~\000\000\000\000\000\000\012m \242\012m\012m\012m\012m\012m\012m\012m\012m\012m\000\000\018\n\"F\002\234\018\018\000\000\017^\018z\000\000\012m\012m\012m\000\000\000\000\000\000\000\000\012m\002v\000\000\012m\003j\012m\012m\000\000\012m\012m\012m\012m\000\000\018\026\011y\018\130\016\226\018\138\012m\007U\012m\012m\000\000\012m\012m\012m\012m\012m\012m\012m\031\006\"\170\012m\012m\012m\000\000\000\242\012m\012m\000\000\000\000\012m\012m\012m\012m\002\221.J\002\221\001\246\002\221\002\250\000\000\002V\002\221\011y\000\000\002\221\030J\002\221\000\000\003j\002\221\030Z\000\000\002\221\002\221\002\221\000\000\002\221\002\221\002\221\011y\000\000\011\025\000\000\011j\002\221\002\221\002\221\002\221\000\000\002\221\011y\002\221\000\000\002\250\000\000\000\000\011y\000\000\002\221\002\221\002\221\002\221\002\221\002\221\006\177\n\138\002\234\000\000\000\000\002\221\030N\002\221\002\221\000\000\000\000\rN\004F\000\000\002\221\002\221\002\221\019\173\019\173\000\000\000\000\019\173\030Z\002\221\000\000\002\221\002\221\002\221\002\221\002\221\002\221\002\221\002\221\002\221\000\000\018\n\000\000\000\000\018\018\000\000\000\000\018z\000\000\002\221\002\221\002\221\000\242\000\000\000\000\000\000\002\221\000\000\000\000\002\221\000\000\002\221\002\221\n\138\002\221\002\221\002\221\002\221\n\193\018\026\000\242\018\130\n\193\018\138\002\221\000\000\002\221\002\221\000\000\002\221\002\221\002\221\002\221\002\221\002\221\002\221\011\025\025\254\002\221\002\221\002\221\000\000\006\177\002\221\002\221)\026\000\000\002\221\002\221\002\221\002\221\002\249\000\000\002\249\000\000\002\249\002\250\000\000\004\002\002\249\019\173\000\000\002\249\003\154\002\249\n\193\003j\002\249\000\000\000\000\002\249\002\249\002\249\rN\002\249\002\249\002\249\011\158\000\000\b:\000\000\011j\002\249\002\249\002\249\002\249\000\000\002\249\011\218\002\249\000\000\019\173\000\000\025\206\011\226\000\000\002\249\002\249\002\249\002\249\002\249\002\249\006\169\0046\000\000%V\000\000\002\249!f\002\249\002\249\0182\003\186\003\198\r\181\000\000\002\249\002\249\002\249\003\210\000\000\000\000\000\000\000\000\030Z\002\249\025\206\002\249\002\249\002\249\002\249\002\249\002\249\002\249\002\249\002\249\002\130\002\249\000\000\r!\018\018\003\214\000\000\002\249\0182\002\249\002\249\002\249\000\242\000\000\000\000\000\000\002\249\000\000\000\000\002\249\000\000\002\249\002\249\n\138\002\249\002\249\002\249\002\249\000\000\018\026\012\185\018\130\000\000\018\138\002\249\000\000\002\249\002\249\000\000\002\249\002\249\002\249\002\249\002\249\002\249\002\249\000\000\r!\002\249\002\249\002\249\000\000\006\169\002\249\002\249\000\000\025\230\002\249\002\249\002\249\002\249\003\r\000\000\003\r\000\000\003\r\000\000\000\000\000\000\003\r\012\185\000\000\003\r\000\000\003\r\000\000\r!\003\r\000\000\015\218\003\r\003\r\003\r\rN\003\r\003\r\003\r\012\146\000\000\025\230\018\226\012\185\003\r\003\r\003\r\003\r\000\000\003\r\012\185\003\r\000\000\000\000\000\000\000\000\012\185\000\000\003\r\003\r\003\r\003\r\003\r\003\r\015\218\r\181\000\000\r!\000\000\003\r\000\000\003\r\003\r\005\206\000\000\018\226\r!\000\000\003\r\003\r\003\r\019\181\019\181\000\000\000\000\019\181\000\000\003\r\000\000\003\r\003\r\003\r\003\r\003\r\003\r\003\r\003\r\003\r\000\000\018\n\000\000\r\029\018\018\000\000\000\000\018z\000\000\003\r\003\r\003\r\000\000\000\000\000\000\000\000\003\r\000\000\000\000\003\r\000\000\003\r\003\r\000\000\003\r\003\r\003\r\003\r\011\181\018\026\000\242\018\130\011\181\018\138\003\r\000\000\003\r\003\r\000\000\003\r\003\r\003\r\003\r\003\r\003\r\003\r\000\000\r\029\003\r\003\r\003\r\000\000\000\000\003\r\003\r\000\000\000\000\003\r\003\r\003\r\003\r\012\149\000\000\012\149\000\000\012\149\000\000\000\000\002V\012\149\019\181\000\000\012\149\000\000\012\149\011\181\r\029\012\149\001\230\000\000\012\149\012\149\012\149\000\000\012\149\012\149\012\149-&\000\000\011\021\000\000\000\000\012\149\012\149\012\149\012\149\000\000\012\149\000\000\012\149\000\000\019\181\002V\000\000\011\181\000\000\012\149\012\149\012\149\012\149\012\149\012\149\000\000\000\000\002\234\r\029\000\000\012\149\019\165\012\149\012\149\005\206\000\000\014\210\r\029\003\226\012\149\012\149\012\149\019\177\019\177\016~\000\000\019\177\000\000\012\149\000\000\012\149\012\149\012\149\012\149\012\149\012\149\012\149\012\149\012\149\011\181\018\n\002\234\005\206\018\018\000\000\017\146\018z\000\000\012\149\012\149\012\149\000\000\000\000\000\000\000\000\012\149\005v\000\000\012\149\000\000\012\149\012\149\000\000\012\149\012\149\012\149\012\149\000\000\018\026\000\242\018\130\016\226\018\138\012\149\000\000\012\149\012\149\000\000\012\149\012\149\012\149\012\149\012\149\012\149\012\149\011\021\026\030\012\149\012\149\012\149\000\000\000\242\012\149\012\149\000\000\000\000\012\149\012\149\012\149\012\149\012\129\000\000\012\129\019\165\012\129\002\250\000\000\002V\012\129\019\177\000\000\012\129\000\000\012\129\002V\000\000\012\129\000\000\000\000\012\129\012\129\012\129\000\000\012\129\012\129\012\129\011\158\000\000\r}\000\000\011j\012\129\012\129\012\129\012\129\014\226\012\129\011\218\012\129\002\250\019\177\000\000\000\000\011\226\000\000\012\129\012\129\012\129\012\129\012\129\012\129\000\000\000\000\002\234\004\217\000\000\012\129\000\000\012\129\012\129\002\234\000\000\rN\004F\000\000\012\129\012\129\012\129\005\r\000\000\016~\000\000\000\000\000\000\012\129-\198\012\129\012\129\012\129\012\129\012\129\012\129\012\129\012\129\012\129\000\000\018\n\000\000\030j\018\018\000\000\017V\018z\000\000\012\129\012\129\012\129\000\000\b\245\000\000\004\217\012\129\000\000\000\000\012\129\000\000\012\129\012\129\000\000\012\129\012\129\012\129\012\129\000\000\018\026\000\242\018\130\016\226\018\138\012\129\000\000\012\129\012\129\000\000\012\129\012\129\012\129\012\129\012\129\012\129\012\129\r}\000\000\012\129\012\129\012\129\000\000\000\242\012\129\012\129\000\000\030n\012\129\012\129\012\129\012\129\002\141\000\000\002\141\000\000\002\141\002\250\000\000\000\000\002\141\005\233\000\000\002\141\002\250\002\141\000\000\000\000\002\141\000\000\000\000\002\141\002\141\002\141\000\000\002\141\002\141\002\141\005\233\000\000\000\000\000\000\012~\002\141\002\141\002\141\002\141\000\000\002\141\005\233\002\141\000\000\000\000\000\000\000\000\005\233\000\000\002\141\002\141\002\141\002\141\002\141\002\141\016~\004\217\000\000\000\000\000\000\002\141\000\000\002\141\002\141\000\000\000\000\000\000\004F\000\000\002\141\002\141\002\141\000\000\000\000\016~\000\000\017\194\000\000\002\141\000\000\002\141\002\141\002\141\002\141\002\141\002\141\002\141\002\141\002\141\000\000\002\141\000\000\000\000\000\000\000\000\029n\002\141\000\000\002\141\002\141\002\141\000\000\016\226\000\000\000\000\002\141\000\000\000\000\002\141\000\000\002\141\002\141\000\000\002\141\002\141\002\141\002\141\000\000\000\000\000\242\000\000\016\226\000\242\002\141\000\000\002\141\002\141\000\000\015\218\002\141\002\141\002\141\002\141\002\141\002\141\003\005\000\000\002\141\002\141\018\226\028\186\000\242\002\141\002\141\000\000\000\000\002\141\002\141\002\141\002\141\003\005\003\005\003\005\003\005\003\005\003\005\000\000\002V\003\005\006\025\000\000\003\005\000\000\003\005.\251\003\005\003\005\003\005\003\005\003\005\003\005\003\005\000\000\003\005\003\005\003\005\006\025\003\005\ry\000\000\012~\003\005\003\005\003\005\003\005\000\000\003\005\006\025\003\005\000\000\000\000\000\000\000\000\006\025\004F\003\005\003\005\003\005\003\005\003\005\003\005\003\005\000\000\002\234\000\000\000\000\003\005\000\000\003\005\003\005\000\000\000\000\000\000\004F\000\000\003\005\003\005\003\005\000\000\016~\016~\000\000\000\000\000\000\003\005\000\000\003\005\003\005\003\005\003\005\003\005\003\005\003\005\003\005\003\005\000\000\003\005\000\000\000\000\000\000\029\134\029\154\003\005\018\158\003\005\003\005\003\005\003\005\000\000\000\000\000\000\003\005\000\000\003\005\003\005\000\000\003\005\003\005\003\005\003\005\003\005\003\005\003\005\003\005\003\005\000\242\016\226\016\226\000\000\003\005\000\000\003\005\003\005\000\000\018\158\003\005\003\005\003\005\003\005\003\005\003\005\ry\000\000\003\005\003\005\003\005\000\242\000\242\003\005\003\005\000\000\000\000\003\005\003\005\003\005\003\005\012-\000\000\012-\000\000\012-\002\250\000\000\002V\012-\006\t\000\000\012-\000\000\012-\000\000\000\000\012-\000\000\000\000\012-\012-\012-\000\000\012-\012-\012-\006\t\000\000\r\137\000\000\012~\012-\012-\012-\012-\000\000\012-\006\t\012-\000\000\000\000\000\000\000\000\006\t\000\000\012-\012-\012-\012-\012-\012-\016~\000\000\002\234\000\000\000\000\012-\000\000\012-\012-\000\000\000\000\004F\004F\000\000\012-\012-\012-\000\000\016~\016~\000\000\029\178\000\000\012-\000\000\012-\012-\012-\012-\012-\012-\012-\012-\012-\000\000\012-\000\000\000\000\000\000 \006'r\012-\000\000\012-\012-\012-\000\000\016\226\000\000\000\000\012-\000\000\000\000\012-\000\000\012-\012-\000\000\012-\012-\012-\012-\000\000\000\000\000\242\016\226\016\226\000\242\012-\000\000\012-\012-\000\000\015\218\012-\012-\012-\012-\012-\012-\r\137\000\000\012-\012-\018\226\000\242\000\242\012-\012-\000\000\000\000\012-\012-\012-\012-\004Y\000\000\004Y\000\000\004Y\002\250\000\000\002V\004Y\022\166\000\000\004Y\000\000\004Y\000\000\000\000\019\006\000\000\000\000\004Y\019^\004Y\000\000\004Y\004Y\004Y\022\174\000\000\r\133\000\000\012~\019r\019\210\019\234\019\138\000\000\020\002\022\222\004Y\000\000\000\000\000\000\000\000\022\230\004F\004Y\019\162\004Y\020\026\0202\004Y\016~\000\000\002\234\000\000\000\000\004Y\000\000\020J\004Y\000\000\000\000\004F\004F\000\000\004Y\004Y\000\242\000\000\000\000\000\000\000\000+\254\000\000\004Y\000\000\004Y\004Y\019\030\019\186\020b\020z\020\218\004Y\004Y\000\000\004Y\000\000\000\000\000\000\000\000\000\000\004Y\000\000\004Y\004Y\020\242\000\000\016\226\000\000\000\000\004Y\000\000\000\000\004Y\000\000\004Y\021\n\000\000\004Y\004Y\004Y\004Y\000\000\000\000\000\242\000\000\000\000\000\242\004Y\000\000\004Y\004Y\000\000\021j\004Y\004Y\021\162\020\146\004Y\004Y\r\133\000\000\004Y\021\"\004Y\000\000\000\000\020\170\020\194\000\000\000\000\004Y\004Y\021:\021R\003\129\000\000\003\129\000\000\003\129\002\250\000\000\002V\003\129\005\249\000\000\003\129\000\000\003\129\000\000\000\000\003\129\000\000\000\000\003\129\003\129\003\129\000\000\003\129\003\129\003\129\005\249\000\000\031\002\000\000\012~\003\129\003\129\003\129\003\129\000\000\003\129\005\249\003\129\000\000\000\000\000\000\000\000\005\249\004F\003\129\003\129\003\129\003\129\003\129\003\129\000\000\000\000\002\234\000\000\000\000\003\129\000\000\003\129\003\129\000\000\000\000\000\000\000\000\000\000\003\129\003\129\003\129\000\000\000\000\000\000\000\000\000\000\000\000\003\129\000\000\003\129\003\129\003\129\003\129\003\129\003\129\003\129\003\129\003\129\000\000\003\129\000\000\000\000\000\000\000\000\000\000\003\129\000\000\003\129\003\129\003\129\000\000\000\000\000\000\000\000\003\129\000\000\000\000\003\129\000\000\003\129\003\129\000\000\003\129\003\129\003\129\003\129\000\000\000\000\000\242\000\000\000\000\000\000\003\129\000\000\003\129\003\129\000\000\015\218\003\129\003\129\003\129\003\129\003\129\003\129\031\006\000\000\003\129\003\129\018\226\000\000\000\000\003\129\003\129\000\000\000\000\003\129\003\129\003\129\003\129\003}\000\000\003}\000\000\003}\002\250\000\000\002V\003}\011\137\000\000\003}\000\000\003}\000\000\000\000\003}\000\000\000\000\003}\003}\003}\000\000\003}\003}\003}\011\158\000\000\r\149\000\000\011j\003}\003}\003}\003}\000\000\003}\011\137\003}\000\000\000\000\000\000\000\000\011\137\000\000\003}\003}\003}\003}\003}\003}\000\000\000\000\002\234\000\000\000\000\003}\000\000\003}\003}\000\000\000\000\000\000\000\000\000\000\003}\003}\003}\000\000\000\000\000\000\000\000\000\000\000\000\003}\000\000\003}\003}\019\030\003}\003}\003}\003}\003}\003}\000\000\003}\000\000\000\000\000\000\000\000\000\000\003}\000\000\003}\003}\003}\000\000\000\000\000\000\000\000\003}\000\000\000\000\003}\000\000\003}\003}\000\000\003}\003}\003}\003}\000\000\000\000\000\242\000\000\000\000\000\000\003}\001\133\003}\003}\000\000\003}\003}\003}\003}\003}\003}\003}\r\149\000\000\003}\003}\003}\000\000\000\000\003}\003}\000\000\001\133\003}\003}\003}\003}\003Q\000\000\003Q\000\000\003Q\002\250\000\000\002V\003Q\025\142\000\000\003Q\000\000\003Q\000\000\000\000\003Q\000\000\000\000\003Q\003Q\003Q\000\000\003Q\003Q\003Q\022\174\000\000\r\145\000\000\012~\003Q\003Q\003Q\003Q\000\000\003Q\022\222\003Q\000\000\000\000\000\000\000\000\022\230\000\000\003Q\003Q\003Q\003Q\003Q\003Q\016~\000\000\002\234\000\000\000\000\003Q\000\000\003Q\003Q\000\000\000\000\000\000\000\000\000\000\003Q\003Q\003Q\000\000\000\000\000\000\000\000\000\000\001\133\003Q\000\000\003Q\003Q\003Q\003Q\003Q\003Q\003Q\003Q\003Q\000\000\003Q\000\000\000\000\000\000\000\000\000\000\003Q\000\000\003Q\003Q\003Q\001\133\016\226\000\000\000\000\003Q\000\000\000\000\003Q\001\133\003Q\003Q\000\000\003Q\003Q\003Q\003Q\000\000\000\000\025\238\000\000\000\000\000\242\003Q\000\000\003Q\003Q\000\000\015\218\003Q\003Q\003Q\003Q\003Q\003Q\r\145\000\000\003Q\003Q\018\226\000\000\000\000\003Q\003Q\000\000\000\000\003Q\003Q\003Q\003Q\003M\000\000\003M\000\000\003M\002\250\000\000\002V\003M\000\000\000\000\003M\030\006\003M\000\000\000\000\003M\001\230\000\000\003M\003M\003M\000\000\003M\003M\003M-n\000\000-\210\000\000\000\000\003M\003M\003M\003M\000\000\003M\000\000\003M\000\000\000\000\000\000\000\000\rN\004F\003M\003M\003M\003M\003M\003M\000\000\000\000\002\234\000\000\000\000\003M\019\165\003M\003M\000\000\000\000\000\000\000\000\003\226\003M\003M\003M\000\000\000\000\000\000\000\000\000\000\000\000\003M\000\000\003M\003M\019\030\003M\003M\003M\003M\003M\003M\000\000\003M\000\000\000\000\000\000\000\000\000\000\003M\000\000\003M\003M\003M\000\000\000\000\000\000\000\000\003M\005v\000\000\003M\000\000\003M\003M\000\000\003M\003M\003M\003M\000\000\000\000\000\242\000\000\000\000\000\000\003M\000\000\003M\003M\000\000\003M\003M\003M\003M\003M\003M\003M-\214\026>\003M\003M\003M\000\000\000\000\003M\003M\000\000\000\000\003M\003M\003M\003M\003i\000\000\003i\019\165\003i\002\250\000\000\002V\003i\000\000\000\000\003i\000\000\003i\000\000\000\000\003i\000\000\000\000\003i\003i\003i\000\000\003i\003i\003i\011\158\000\000\r\161\000\000\011j\003i\003i\003i\003i\000\000\003i\011\218\003i\002V\000\000\000\000\000\000\011\226\000\000\003i\003i\003i\003i\003i\003i\000\000\000\000\002\234\000\000\000\000\003i\000\000\003i\003i\r\157\000\000\000\000\000\000\000\000\003i\003i\003i\000\000\000\000\000\000\000\000\000\000\000\000\003i\000\000\003i\003i\003i\003i\003i\003i\003i\003i\003i\002\234\003i\000\000\000\000\000\000\000\000\000\000\003i\000\000\003i\003i\003i\000\000\000\000\000\000\000\000\003i\000\000\000\000\003i\000\000\003i\003i\000\000\003i\003i\003i\003i\000\000\000\000\000\000\000\000\000\000\000\000\003i\000\000\003i\003i\000\000\015\218\003i\003i\003i\003i\003i\003i\r\161\000\000\003i\003i\018\226\000\000\000\000\003i\003i\000\000\000\000\003i\003i\003i\003i\003e\000\000\003e\000\000\003e\002\250\000\000\000\000\003e\000\000\000\000\003e\000\000\003e\000\000\000\000\019\006\r\157\000\000\003e\003e\003e\000\000\003e\003e\003e\000\000\000\000\000\000\000\000\000\000\003e\003e\003e\019\138\000\000\003e\002\250\003e\000\000\000\000\000\000\000\000\000\000\000\000\003e\019\162\003e\003e\003e\003e\000\000\000\000\000\000\000\000\000\000\003e\000\000\003e\003e\000\000\000\000\000\000\000\000\000\000\003e\003e\003e\000\000\000\000\000\000\000\000\000\000\000\000\003e\000\000\003e\003e\019\030\019\186\003e\003e\003e\003e\003e\000\000\003e\000\000\000\000\000\000\000\000\000\000\003e\000\000\003e\003e\003e\000\000\000\000\000\000\000\000\003e\000\000\000\000\003e\000\000\003e\003e\000\000\003e\003e\003e\003e\000\000\000\000\000\000\000\000\000\000\000\000\003e\000\000\003e\003e\000\000\003e\003e\003e\003e\003e\003e\003e\000\000\000\000\003e\003e\003e\000\000\000\000\003e\003e\000\000\000\000\003e\003e\003e\003e\003\137\000\000\003\137\000\000\003\137\000\000\000\000\000\000\003\137\000\000\000\000\003\137\000\000\003\137\000\000\000\000\003\137\000\000\000\000\003\137\003\137\003\137\000\000\003\137\003\137\003\137\000\000\000\000\000\000\000\000\000\000\003\137\003\137\003\137\003\137\000\000\003\137\000\000\003\137\000\000\000\000\000\000\000\000\000\000\000\000\003\137\003\137\003\137\003\137\003\137\003\137\000\000\000\000\000\000\000\000\000\000\003\137\000\000\003\137\003\137\000\000\000\000\000\000\000\000\000\000\003\137\003\137\003\137\000\000\000\000\000\000\000\000\000\000\000\000\003\137\000\000\003\137\003\137\003\137\003\137\003\137\003\137\003\137\003\137\003\137\000\000\003\137\000\000\000\000\000\000\000\000\000\000\003\137\000\000\003\137\003\137\003\137\000\000\000\000\000\000\000\000\003\137\000\000\000\000\003\137\000\000\003\137\003\137\000\000\003\137\003\137\003\137\003\137\000\000\000\000\000\000\000\000\000\000\000\000\003\137\000\000\003\137\003\137\000\000\015\218\003\137\003\137\003\137\003\137\003\137\003\137\000\000\000\000\003\137\003\137\018\226\000\000\000\000\003\137\003\137\000\000\000\000\003\137\003\137\003\137\003\137\003\133\000\000\003\133\000\000\003\133\000\000\000\000\000\000\003\133\000\000\000\000\003\133\000\000\003\133\000\000\000\000\003\133\000\000\000\000\003\133\003\133\003\133\000\000\003\133\003\133\003\133\000\000\000\000\000\000\000\000\000\000\003\133\003\133\003\133\003\133\000\000\003\133\000\000\003\133\000\000\000\000\000\000\000\000\000\000\000\000\003\133\003\133\003\133\003\133\003\133\003\133\000\000\000\000\000\000\000\000\000\000\003\133\000\000\003\133\003\133\000\000\000\000\000\000\000\000\000\000\003\133\003\133\003\133\000\000\000\000\000\000\000\000\000\000\000\000\003\133\000\000\003\133\003\133\019\030\003\133\003\133\003\133\003\133\003\133\003\133\000\000\003\133\000\000\000\000\000\000\000\000\000\000\003\133\000\000\003\133\003\133\003\133\000\000\000\000\000\000\000\000\003\133\000\000\000\000\003\133\000\000\003\133\003\133\000\000\003\133\003\133\003\133\003\133\000\000\000\000\000\000\000\000\000\000\000\000\003\133\000\000\003\133\003\133\000\000\003\133\003\133\003\133\003\133\003\133\003\133\003\133\000\000\000\000\003\133\003\133\003\133\000\000\000\000\003\133\003\133\000\000\000\000\003\133\003\133\003\133\003\133\003I\000\000\003I\000\000\003I\000\000\000\000\000\000\003I\000\000\000\000\003I\000\000\003I\000\000\000\000\003I\000\000\000\000\003I\003I\003I\000\000\003I\003I\003I\000\000\000\000\000\000\000\000\000\000\003I\003I\003I\003I\000\000\003I\000\000\003I\000\000\000\000\000\000\000\000\000\000\000\000\003I\003I\003I\003I\003I\003I\000\000\000\000\000\000\000\000\000\000\003I\000\000\003I\003I\000\000\000\000\000\000\000\000\000\000\003I\003I\003I\000\000\000\000\000\000\000\000\000\000\000\000\003I\000\000\003I\003I\003I\003I\003I\003I\003I\003I\003I\000\000\003I\000\000\000\000\000\000\000\000\000\000\003I\000\000\003I\003I\003I\000\000\000\000\000\000\000\000\003I\000\000\000\000\003I\000\000\003I\003I\000\000\003I\003I\003I\003I\000\000\000\000\000\000\000\000\000\000\000\000\003I\000\000\003I\003I\000\000\015\218\003I\003I\003I\003I\003I\003I\000\000\000\000\003I\003I\018\226\000\000\000\000\003I\003I\000\000\000\000\003I\003I\003I\003I\003E\000\000\003E\000\000\003E\000\000\000\000\000\000\003E\000\000\000\000\003E\000\000\003E\000\000\000\000\003E\000\000\000\000\003E\003E\003E\000\000\003E\003E\003E\000\000\000\000\000\000\000\000\000\000\003E\003E\003E\003E\000\000\003E\000\000\003E\000\000\000\000\000\000\000\000\000\000\000\000\003E\003E\003E\003E\003E\003E\000\000\000\000\000\000\000\000\000\000\003E\000\000\003E\003E\000\000\000\000\000\000\000\000\000\000\003E\003E\003E\000\000\000\000\000\000\000\000\000\000\000\000\003E\000\000\003E\003E\019\030\003E\003E\003E\003E\003E\003E\000\000\003E\000\000\000\000\000\000\000\000\000\000\003E\000\000\003E\003E\003E\000\000\000\000\000\000\000\000\003E\000\000\000\000\003E\000\000\003E\003E\000\000\003E\003E\003E\003E\000\000\000\000\000\000\000\000\000\000\000\000\003E\000\000\003E\003E\000\000\003E\003E\003E\003E\003E\003E\003E\000\000\000\000\003E\003E\003E\000\000\000\000\003E\003E\000\000\000\000\003E\003E\003E\003E\003A\000\000\003A\000\000\003A\000\000\000\000\000\000\003A\000\000\000\000\003A\000\000\003A\000\000\000\000\003A\000\000\000\000\003A\003A\003A\000\000\003A\003A\003A\000\000\000\000\000\000\000\000\000\000\003A\003A\003A\003A\000\000\003A\000\000\003A\000\000\000\000\000\000\000\000\000\000\000\000\003A\003A\003A\003A\003A\003A\000\000\000\000\000\000\000\000\000\000\003A\000\000\003A\003A\000\000\000\000\000\000\000\000\000\000\003A\003A\003A\000\000\000\000\000\000\000\000\000\000\000\000\003A\000\000\003A\003A\003A\003A\003A\003A\003A\003A\003A\000\000\003A\000\000\000\000\000\000\000\000\000\000\003A\000\000\003A\003A\003A\000\000\000\000\000\000\000\000\003A\000\000\000\000\003A\000\000\003A\003A\000\000\003A\003A\003A\003A\000\000\000\000\000\000\000\000\000\000\000\000\003A\000\000\003A\003A\000\000\015\218\003A\003A\003A\003A\003A\003A\000\000\000\000\003A\003A\018\226\000\000\000\000\003A\003A\000\000\000\000\003A\003A\003A\003A\003=\000\000\003=\000\000\003=\000\000\000\000\000\000\003=\000\000\000\000\003=\000\000\003=\000\000\000\000\003=\000\000\000\000\003=\003=\003=\000\000\003=\003=\003=\000\000\000\000\000\000\000\000\000\000\003=\003=\003=\003=\000\000\003=\000\000\003=\000\000\000\000\000\000\000\000\000\000\000\000\003=\003=\003=\003=\003=\003=\000\000\000\000\000\000\000\000\000\000\003=\000\000\003=\003=\000\000\000\000\000\000\000\000\000\000\003=\003=\003=\000\000\000\000\000\000\000\000\000\000\000\000\003=\000\000\003=\003=\019\030\003=\003=\003=\003=\003=\003=\000\000\003=\000\000\000\000\000\000\000\000\000\000\003=\000\000\003=\003=\003=\000\000\000\000\000\000\000\000\003=\000\000\000\000\003=\000\000\003=\003=\000\000\003=\003=\003=\003=\000\000\000\000\000\000\000\000\000\000\000\000\003=\000\000\003=\003=\000\000\003=\003=\003=\003=\003=\003=\003=\000\000\000\000\003=\003=\003=\000\000\000\000\003=\003=\000\000\000\000\003=\003=\003=\003=\003a\000\000\003a\000\000\003a\000\000\000\000\000\000\003a\000\000\000\000\003a\000\000\003a\000\000\000\000\003a\000\000\000\000\003a\003a\003a\000\000\003a\003a\003a\000\000\000\000\000\000\000\000\000\000\003a\003a\003a\003a\000\000\003a\000\000\003a\000\000\000\000\000\000\000\000\000\000\000\000\003a\003a\003a\003a\003a\003a\000\000\000\000\000\000\000\000\000\000\003a\000\000\003a\003a\000\000\000\000\000\000\000\000\000\000\003a\003a\003a\000\000\000\000\000\000\000\000\000\000\000\000\003a\000\000\003a\003a\003a\003a\003a\003a\003a\003a\003a\000\000\003a\000\000\000\000\000\000\000\000\000\000\003a\000\000\003a\003a\003a\000\000\000\000\000\000\000\000\003a\000\000\000\000\003a\000\000\003a\003a\000\000\003a\003a\003a\003a\000\000\000\000\000\000\000\000\000\000\000\000\003a\000\000\003a\003a\000\000\015\218\003a\003a\003a\003a\003a\003a\000\000\000\000\003a\003a\018\226\000\000\000\000\003a\003a\000\000\000\000\003a\003a\003a\003a\003]\000\000\003]\000\000\003]\000\000\000\000\000\000\003]\000\000\000\000\003]\000\000\003]\000\000\000\000\019\006\000\000\000\000\003]\003]\003]\000\000\003]\003]\003]\000\000\000\000\000\000\000\000\000\000\003]\003]\003]\019\138\000\000\003]\000\000\003]\000\000\000\000\000\000\000\000\000\000\000\000\003]\019\162\003]\003]\003]\003]\000\000\000\000\000\000\000\000\000\000\003]\000\000\003]\003]\000\000\000\000\000\000\000\000\000\000\003]\003]\003]\000\000\000\000\000\000\000\000\000\000\000\000\003]\000\000\003]\003]\019\030\019\186\003]\003]\003]\003]\003]\000\000\003]\000\000\000\000\000\000\000\000\000\000\003]\000\000\003]\003]\003]\000\000\000\000\000\000\000\000\003]\000\000\000\000\003]\000\000\003]\003]\000\000\003]\003]\003]\003]\000\000\000\000\000\000\000\000\000\000\000\000\003]\000\000\003]\003]\000\000\003]\003]\003]\003]\003]\003]\003]\000\000\000\000\003]\003]\003]\000\000\000\000\003]\003]\000\000\000\000\003]\003]\003]\003]\003Y\000\000\003Y\000\000\003Y\000\000\000\000\000\000\003Y\000\000\000\000\003Y\000\000\003Y\000\000\000\000\003Y\000\000\000\000\003Y\003Y\003Y\000\000\003Y\003Y\003Y\000\000\000\000\000\000\000\000\000\000\003Y\003Y\003Y\003Y\000\000\003Y\000\000\003Y\000\000\000\000\000\000\000\000\000\000\000\000\003Y\003Y\003Y\003Y\003Y\003Y\000\000\000\000\000\000\000\000\000\000\003Y\000\000\003Y\003Y\000\000\000\000\000\000\000\000\000\000\003Y\003Y\003Y\000\000\000\000\000\000\000\000\000\000\000\000\003Y\000\000\003Y\003Y\003Y\003Y\003Y\003Y\003Y\003Y\003Y\000\000\003Y\000\000\000\000\000\000\000\000\000\000\003Y\000\000\003Y\003Y\003Y\000\000\000\000\000\000\000\000\003Y\000\000\000\000\003Y\000\000\003Y\003Y\000\000\003Y\003Y\003Y\003Y\000\000\000\000\000\000\000\000\000\000\000\000\003Y\000\000\003Y\003Y\000\000\015\218\003Y\003Y\003Y\003Y\003Y\003Y\000\000\000\000\003Y\003Y\018\226\000\000\000\000\003Y\003Y\000\000\000\000\003Y\003Y\003Y\003Y\003U\000\000\003U\000\000\003U\000\000\000\000\000\000\003U\000\000\000\000\003U\000\000\003U\000\000\000\000\019\006\000\000\000\000\003U\003U\003U\000\000\003U\003U\003U\000\000\000\000\000\000\000\000\000\000\003U\003U\003U\019\138\000\000\003U\000\000\003U\000\000\000\000\000\000\000\000\000\000\000\000\003U\019\162\003U\003U\003U\003U\000\000\000\000\000\000\000\000\000\000\003U\000\000\003U\003U\000\000\000\000\000\000\000\000\000\000\003U\003U\003U\000\000\000\000\000\000\000\000\000\000\000\000\003U\000\000\003U\003U\019\030\019\186\003U\003U\003U\003U\003U\000\000\003U\000\000\000\000\000\000\000\000\000\000\003U\000\000\003U\003U\003U\000\000\000\000\000\000\000\000\003U\000\000\000\000\003U\000\000\003U\003U\000\000\003U\003U\003U\003U\000\000\000\000\000\000\000\000\000\000\000\000\003U\000\000\003U\003U\000\000\003U\003U\003U\003U\003U\003U\003U\000\000\000\000\003U\003U\003U\000\000\000\000\003U\003U\000\000\000\000\003U\003U\003U\003U\003\169\000\000\003\169\000\000\003\169\000\000\000\000\000\000\003\169\000\000\000\000\003\169\000\000\003\169\000\000\000\000\003\169\000\000\000\000\003\169\003\169\003\169\000\000\003\169\003\169\003\169\000\000\000\000\000\000\000\000\000\000\003\169\003\169\003\169\003\169\000\000\003\169\000\000\003\169\000\000\000\000\000\000\000\000\000\000\000\000\003\169\003\169\003\169\003\169\003\169\003\169\000\000\000\000\000\000\000\000\000\000\003\169\000\000\003\169\003\169\000\000\000\000\000\000\000\000\000\000\003\169\003\169\003\169\000\000\000\000\000\000\000\000\000\000\000\000\003\169\000\000\003\169\003\169\003\169\003\169\003\169\003\169\003\169\003\169\003\169\000\000\003\169\000\000\000\000\000\000\000\000\000\000\003\169\000\000\003\169\003\169\003\169\000\000\000\000\000\000\000\000\003\169\000\000\000\000\003\169\000\000\003\169\003\169\000\000\003\169\003\169\003\169\003\169\000\000\000\000\000\000\000\000\000\000\000\000\003\169\000\000\003\169\003\169\000\000\015\218\003\169\003\169\003\169\003\169\003\169\003\169\000\000\000\000\003\169\003\169\018\226\000\000\000\000\003\169\003\169\000\000\000\000\003\169\003\169\003\169\003\169\003\165\000\000\003\165\000\000\003\165\000\000\000\000\000\000\003\165\000\000\000\000\003\165\000\000\003\165\000\000\000\000\019\006\000\000\000\000\003\165\003\165\003\165\000\000\003\165\003\165\003\165\000\000\000\000\000\000\000\000\000\000\019r\019\210\019\234\019\138\000\000\020\002\000\000\003\165\000\000\000\000\000\000\000\000\000\000\000\000\003\165\019\162\003\165\020\026\0202\003\165\000\000\000\000\000\000\000\000\000\000\003\165\000\000\020J\003\165\000\000\000\000\000\000\000\000\000\000\003\165\003\165\000\242\000\000\000\000\000\000\000\000\000\000\000\000\003\165\000\000\003\165\003\165\019\030\019\186\020b\020z\020\218\003\165\003\165\000\000\003\165\000\000\000\000\000\000\000\000\000\000\003\165\000\000\003\165\003\165\020\242\000\000\000\000\000\000\000\000\003\165\000\000\000\000\003\165\000\000\003\165\021\n\000\000\003\165\003\165\003\165\003\165\000\000\000\000\000\000\000\000\000\000\000\000\003\165\000\000\003\165\003\165\000\000\003\165\003\165\003\165\003\165\020\146\003\165\003\165\000\000\000\000\003\165\021\"\003\165\000\000\000\000\020\170\020\194\000\000\000\000\003\165\003\165\021:\021R\003y\000\000\003y\000\000\003y\000\000\000\000\000\000\003y\000\000\000\000\003y\000\000\003y\000\000\000\000\003y\000\000\000\000\003y\003y\003y\000\000\003y\003y\003y\000\000\000\000\000\000\000\000\000\000\003y\003y\003y\003y\000\000\003y\000\000\003y\000\000\000\000\000\000\000\000\000\000\000\000\003y\003y\003y\003y\003y\003y\000\000\000\000\000\000\000\000\000\000\003y\000\000\003y\003y\000\000\000\000\000\000\000\000\000\000\003y\003y\003y\000\000\000\000\000\000\000\000\000\000\000\000\003y\000\000\003y\003y\003y\003y\003y\003y\003y\003y\003y\000\000\003y\000\000\000\000\000\000\000\000\000\000\003y\000\000\003y\003y\003y\000\000\000\000\000\000\000\000\003y\000\000\000\000\003y\000\000\003y\003y\000\000\003y\003y\003y\003y\000\000\000\000\000\000\000\000\000\000\000\000\003y\000\000\003y\003y\000\000\015\218\003y\003y\003y\003y\003y\003y\000\000\000\000\003y\003y\018\226\000\000\000\000\003y\003y\000\000\000\000\003y\003y\003y\003y\003u\000\000\003u\000\000\003u\000\000\000\000\000\000\003u\000\000\000\000\003u\000\000\003u\000\000\000\000\019\006\000\000\000\000\003u\003u\003u\000\000\003u\003u\003u\000\000\000\000\000\000\000\000\000\000\003u\003u\003u\019\138\000\000\003u\000\000\003u\000\000\000\000\000\000\000\000\000\000\000\000\003u\019\162\003u\003u\003u\003u\000\000\000\000\000\000\000\000\000\000\003u\000\000\003u\003u\000\000\000\000\000\000\000\000\000\000\003u\003u\003u\000\000\000\000\000\000\000\000\000\000\000\000\003u\000\000\003u\003u\019\030\019\186\003u\003u\003u\003u\003u\000\000\003u\000\000\000\000\000\000\000\000\000\000\003u\000\000\003u\003u\003u\000\000\000\000\000\000\000\000\003u\000\000\000\000\003u\000\000\003u\003u\000\000\003u\003u\003u\003u\000\000\000\000\000\000\000\000\000\000\000\000\003u\000\000\003u\003u\000\000\003u\003u\003u\003u\003u\003u\003u\000\000\000\000\003u\003u\003u\000\000\000\000\003u\003u\000\000\000\000\003u\003u\003u\003u\003q\000\000\003q\000\000\003q\000\000\000\000\000\000\003q\000\000\000\000\003q\000\000\003q\000\000\000\000\003q\000\000\000\000\003q\003q\003q\000\000\003q\003q\003q\000\000\000\000\000\000\000\000\000\000\003q\003q\003q\003q\000\000\003q\000\000\003q\000\000\000\000\000\000\000\000\000\000\000\000\003q\003q\003q\003q\003q\003q\000\000\000\000\000\000\000\000\000\000\003q\000\000\003q\003q\000\000\000\000\000\000\000\000\000\000\003q\003q\003q\000\000\000\000\000\000\000\000\000\000\000\000\003q\000\000\003q\003q\003q\003q\003q\003q\003q\003q\003q\000\000\003q\000\000\000\000\000\000\000\000\000\000\003q\000\000\003q\003q\003q\000\000\000\000\000\000\000\000\003q\000\000\000\000\003q\000\000\003q\003q\000\000\003q\003q\003q\003q\000\000\000\000\000\000\000\000\000\000\000\000\003q\000\000\003q\003q\000\000\015\218\003q\003q\003q\003q\003q\003q\000\000\000\000\003q\003q\018\226\000\000\000\000\003q\003q\000\000\000\000\003q\003q\003q\003q\003m\000\000\003m\000\000\003m\000\000\000\000\000\000\003m\000\000\000\000\003m\000\000\003m\000\000\000\000\019\006\000\000\000\000\003m\003m\003m\000\000\003m\003m\003m\000\000\000\000\000\000\000\000\000\000\003m\003m\003m\019\138\000\000\003m\000\000\003m\000\000\000\000\000\000\000\000\000\000\000\000\003m\019\162\003m\003m\003m\003m\000\000\000\000\000\000\000\000\000\000\003m\000\000\003m\003m\000\000\000\000\000\000\000\000\000\000\003m\003m\003m\000\000\000\000\000\000\000\000\000\000\000\000\003m\000\000\003m\003m\019\030\019\186\003m\003m\003m\003m\003m\000\000\003m\000\000\000\000\000\000\000\000\000\000\003m\000\000\003m\003m\003m\000\000\000\000\000\000\000\000\003m\000\000\000\000\003m\000\000\003m\003m\000\000\003m\003m\003m\003m\000\000\000\000\000\000\000\000\000\000\000\000\003m\000\000\003m\003m\000\000\003m\003m\003m\003m\003m\003m\003m\000\000\000\000\003m\003m\003m\000\000\000\000\003m\003m\000\000\000\000\003m\003m\003m\003m\003\153\000\000\003\153\000\000\003\153\000\000\000\000\000\000\003\153\000\000\000\000\003\153\000\000\003\153\000\000\000\000\003\153\000\000\000\000\003\153\003\153\003\153\000\000\003\153\003\153\003\153\000\000\000\000\000\000\000\000\000\000\003\153\003\153\003\153\003\153\000\000\003\153\000\000\003\153\000\000\000\000\000\000\000\000\000\000\000\000\003\153\003\153\003\153\003\153\003\153\003\153\000\000\000\000\000\000\000\000\000\000\003\153\000\000\003\153\003\153\000\000\000\000\000\000\000\000\000\000\003\153\003\153\003\153\000\000\000\000\000\000\000\000\000\000\000\000\003\153\000\000\003\153\003\153\003\153\003\153\003\153\003\153\003\153\003\153\003\153\000\000\003\153\000\000\000\000\000\000\000\000\000\000\003\153\000\000\003\153\003\153\003\153\000\000\000\000\000\000\000\000\003\153\000\000\000\000\003\153\000\000\003\153\003\153\000\000\003\153\003\153\003\153\003\153\000\000\000\000\000\000\000\000\000\000\000\000\003\153\000\000\003\153\003\153\000\000\015\218\003\153\003\153\003\153\003\153\003\153\003\153\000\000\000\000\003\153\003\153\018\226\000\000\000\000\003\153\003\153\000\000\000\000\003\153\003\153\003\153\003\153\003\149\000\000\003\149\000\000\003\149\000\000\000\000\000\000\003\149\000\000\000\000\003\149\000\000\003\149\000\000\000\000\019\006\000\000\000\000\003\149\003\149\003\149\000\000\003\149\003\149\003\149\000\000\000\000\000\000\000\000\000\000\019r\019\210\019\234\019\138\000\000\003\149\000\000\003\149\000\000\000\000\000\000\000\000\000\000\000\000\003\149\019\162\003\149\020\026\0202\003\149\000\000\000\000\000\000\000\000\000\000\003\149\000\000\003\149\003\149\000\000\000\000\000\000\000\000\000\000\003\149\003\149\000\242\000\000\000\000\000\000\000\000\000\000\000\000\003\149\000\000\003\149\003\149\019\030\019\186\020b\020z\003\149\003\149\003\149\000\000\003\149\000\000\000\000\000\000\000\000\000\000\003\149\000\000\003\149\003\149\003\149\000\000\000\000\000\000\000\000\003\149\000\000\000\000\003\149\000\000\003\149\003\149\000\000\003\149\003\149\003\149\003\149\000\000\000\000\000\000\000\000\000\000\000\000\003\149\000\000\003\149\003\149\000\000\003\149\003\149\003\149\003\149\020\146\003\149\003\149\000\000\000\000\003\149\003\149\003\149\000\000\000\000\020\170\020\194\000\000\000\000\003\149\003\149\003\149\003\149\0039\000\000\0039\000\000\0039\000\000\000\000\000\000\0039\000\000\000\000\0039\000\000\0039\000\000\000\000\0039\000\000\000\000\0039\0039\0039\000\000\0039\0039\0039\000\000\000\000\000\000\000\000\000\000\0039\0039\0039\0039\000\000\0039\000\000\0039\000\000\000\000\000\000\000\000\000\000\000\000\0039\0039\0039\0039\0039\0039\000\000\000\000\000\000\000\000\000\000\0039\000\000\0039\0039\000\000\000\000\000\000\000\000\000\000\0039\0039\0039\000\000\000\000\000\000\000\000\000\000\000\000\0039\000\000\0039\0039\0039\0039\0039\0039\0039\0039\0039\000\000\0039\000\000\000\000\000\000\000\000\000\000\0039\000\000\0039\0039\0039\000\000\000\000\000\000\000\000\0039\000\000\000\000\0039\000\000\0039\0039\000\000\0039\0039\0039\0039\000\000\000\000\000\000\000\000\000\000\000\000\0039\000\000\0039\0039\000\000\015\218\0039\0039\0039\0039\0039\0039\000\000\000\000\0039\0039\018\226\000\000\000\000\0039\0039\000\000\000\000\0039\0039\0039\0039\0035\000\000\0035\000\000\0035\000\000\000\000\000\000\0035\000\000\000\000\0035\000\000\0035\000\000\000\000\019\006\000\000\000\000\0035\0035\0035\000\000\0035\0035\0035\000\000\000\000\000\000\000\000\000\000\0035\0035\0035\019\138\000\000\0035\000\000\0035\000\000\000\000\000\000\000\000\000\000\000\000\0035\019\162\0035\0035\0035\0035\000\000\000\000\000\000\000\000\000\000\0035\000\000\0035\0035\000\000\000\000\000\000\000\000\000\000\0035\0035\0035\000\000\000\000\000\000\000\000\000\000\000\000\0035\000\000\0035\0035\019\030\019\186\0035\0035\0035\0035\0035\000\000\0035\000\000\000\000\000\000\000\000\000\000\0035\000\000\0035\0035\0035\000\000\000\000\000\000\000\000\0035\000\000\000\000\0035\000\000\0035\0035\000\000\0035\0035\0035\0035\000\000\000\000\000\000\000\000\000\000\000\000\0035\000\000\0035\0035\000\000\0035\0035\0035\0035\0035\0035\0035\000\000\000\000\0035\0035\0035\000\000\000\000\0035\0035\000\000\000\000\0035\0035\0035\0035\0031\000\000\0031\000\000\0031\000\000\000\000\000\000\0031\000\000\000\000\0031\000\000\0031\000\000\000\000\0031\000\000\000\000\0031\0031\0031\000\000\0031\0031\0031\000\000\000\000\000\000\000\000\000\000\0031\0031\0031\0031\000\000\0031\000\000\0031\000\000\000\000\000\000\000\000\000\000\000\000\0031\0031\0031\0031\0031\0031\000\000\000\000\000\000\000\000\000\000\0031\000\000\0031\0031\000\000\000\000\000\000\000\000\000\000\0031\0031\0031\000\000\000\000\000\000\000\000\000\000\000\000\0031\000\000\0031\0031\0031\0031\0031\0031\0031\0031\0031\000\000\0031\000\000\000\000\000\000\000\000\000\000\0031\000\000\0031\0031\0031\000\000\000\000\000\000\000\000\0031\000\000\000\000\0031\000\000\0031\0031\000\000\0031\0031\0031\0031\000\000\000\000\000\000\000\000\000\000\000\000\0031\000\000\0031\0031\000\000\015\218\0031\0031\0031\0031\0031\0031\000\000\000\000\0031\0031\018\226\000\000\000\000\0031\0031\000\000\000\000\0031\0031\0031\0031\003-\000\000\003-\000\000\003-\000\000\000\000\000\000\003-\000\000\000\000\003-\000\000\003-\000\000\000\000\019\006\000\000\000\000\003-\003-\003-\000\000\003-\003-\003-\000\000\000\000\000\000\000\000\000\000\019r\019\210\019\234\019\138\000\000\003-\000\000\003-\000\000\000\000\000\000\000\000\000\000\000\000\003-\019\162\003-\020\026\0202\003-\000\000\000\000\000\000\000\000\000\000\003-\000\000\003-\003-\000\000\000\000\000\000\000\000\000\000\003-\003-\000\242\000\000\000\000\000\000\000\000\000\000\000\000\003-\000\000\003-\003-\019\030\019\186\020b\020z\003-\003-\003-\000\000\003-\000\000\000\000\000\000\000\000\000\000\003-\000\000\003-\003-\003-\000\000\000\000\000\000\000\000\003-\000\000\000\000\003-\000\000\003-\003-\000\000\003-\003-\003-\003-\000\000\000\000\000\000\000\000\000\000\000\000\003-\000\000\003-\003-\000\000\003-\003-\003-\003-\020\146\003-\003-\000\000\000\000\003-\003-\003-\000\000\000\000\020\170\020\194\000\000\000\000\003-\003-\003-\003-\003\217\000\000\003\217\000\000\003\217\000\000\000\000\000\000\003\217\000\000\000\000\003\217\000\000\003\217\000\000\000\000\003\217\000\000\000\000\003\217\003\217\003\217\000\000\003\217\003\217\003\217\000\000\000\000\000\000\000\000\000\000\003\217\003\217\003\217\003\217\000\000\003\217\000\000\003\217\000\000\000\000\000\000\000\000\000\000\000\000\003\217\003\217\003\217\003\217\003\217\003\217\000\000\000\000\000\000\000\000\000\000\003\217\000\000\003\217\003\217\000\000\000\000\000\000\000\000\000\000\003\217\003\217\003\217\000\000\000\000\000\000\000\000\000\000\000\000\003\217\000\000\003\217\003\217\003\217\003\217\003\217\003\217\003\217\003\217\003\217\000\000\003\217\000\000\000\000\000\000\000\000\000\000\003\217\000\000\003\217\003\217\003\217\000\000\000\000\000\000\000\000\003\217\000\000\000\000\003\217\000\000\003\217\003\217\000\000\003\217\003\217\003\217\003\217\000\000\000\000\000\000\000\000\000\000\000\000\003\217\000\000\003\217\003\217\000\000\015\218\003\217\003\217\003\217\003\217\003\217\003\217\000\000\000\000\003\217\003\217\018\226\000\000\000\000\003\217\003\217\000\000\000\000\003\217\003\217\003\217\003\217\003\213\000\000\003\213\000\000\003\213\000\000\000\000\000\000\003\213\000\000\000\000\003\213\000\000\003\213\000\000\000\000\019\006\000\000\000\000\003\213\003\213\003\213\000\000\003\213\003\213\003\213\000\000\000\000\000\000\000\000\000\000\019r\019\210\019\234\019\138\000\000\003\213\000\000\003\213\000\000\000\000\000\000\000\000\000\000\000\000\003\213\019\162\003\213\020\026\0202\003\213\000\000\000\000\000\000\000\000\000\000\003\213\000\000\003\213\003\213\000\000\000\000\000\000\000\000\000\000\003\213\003\213\003\213\000\000\000\000\000\000\000\000\000\000\000\000\003\213\000\000\003\213\003\213\019\030\019\186\020b\003\213\003\213\003\213\003\213\000\000\003\213\000\000\000\000\000\000\000\000\000\000\003\213\000\000\003\213\003\213\003\213\000\000\000\000\000\000\000\000\003\213\000\000\000\000\003\213\000\000\003\213\003\213\000\000\003\213\003\213\003\213\003\213\000\000\000\000\000\000\000\000\000\000\000\000\003\213\000\000\003\213\003\213\000\000\003\213\003\213\003\213\003\213\020\146\003\213\003\213\000\000\000\000\003\213\003\213\003\213\000\000\000\000\003\213\003\213\000\000\000\000\003\213\003\213\003\213\003\213\003)\000\000\003)\000\000\003)\000\000\000\000\000\000\003)\000\000\000\000\003)\000\000\003)\000\000\000\000\003)\000\000\000\000\003)\003)\003)\000\000\003)\003)\003)\000\000\000\000\000\000\000\000\000\000\003)\003)\003)\003)\000\000\003)\000\000\003)\000\000\000\000\000\000\000\000\000\000\000\000\003)\003)\003)\003)\003)\003)\000\000\000\000\000\000\000\000\000\000\003)\000\000\003)\003)\000\000\000\000\000\000\000\000\000\000\003)\003)\003)\000\000\000\000\000\000\000\000\000\000\000\000\003)\000\000\003)\003)\003)\003)\003)\003)\003)\003)\003)\000\000\003)\000\000\000\000\000\000\000\000\000\000\003)\000\000\003)\003)\003)\000\000\000\000\000\000\000\000\003)\000\000\000\000\003)\000\000\003)\003)\000\000\003)\003)\003)\003)\000\000\000\000\000\000\000\000\000\000\000\000\003)\000\000\003)\003)\000\000\015\218\003)\003)\003)\003)\003)\003)\000\000\000\000\003)\003)\018\226\000\000\000\000\003)\003)\000\000\000\000\003)\003)\003)\003)\003%\000\000\003%\000\000\003%\000\000\000\000\000\000\003%\000\000\000\000\003%\000\000\003%\000\000\000\000\019\006\000\000\000\000\003%\003%\003%\000\000\003%\003%\003%\000\000\000\000\000\000\000\000\000\000\019r\019\210\019\234\019\138\000\000\003%\000\000\003%\000\000\000\000\000\000\000\000\000\000\000\000\003%\019\162\003%\020\026\0202\003%\000\000\000\000\000\000\000\000\000\000\003%\000\000\003%\003%\000\000\000\000\000\000\000\000\000\000\003%\003%\000\242\000\000\000\000\000\000\000\000\000\000\000\000\003%\000\000\003%\003%\019\030\019\186\020b\020z\003%\003%\003%\000\000\003%\000\000\000\000\000\000\000\000\000\000\003%\000\000\003%\003%\003%\000\000\000\000\000\000\000\000\003%\000\000\000\000\003%\000\000\003%\003%\000\000\003%\003%\003%\003%\000\000\000\000\000\000\000\000\000\000\000\000\003%\000\000\003%\003%\000\000\003%\003%\003%\003%\020\146\003%\003%\000\000\000\000\003%\003%\003%\000\000\000\000\020\170\020\194\000\000\000\000\003%\003%\003%\003%\003!\000\000\003!\000\000\003!\000\000\000\000\000\000\003!\000\000\000\000\003!\000\000\003!\000\000\000\000\003!\000\000\000\000\003!\003!\003!\000\000\003!\003!\003!\000\000\000\000\000\000\000\000\000\000\003!\003!\003!\003!\000\000\003!\000\000\003!\000\000\000\000\000\000\000\000\000\000\000\000\003!\003!\003!\003!\003!\003!\000\000\000\000\000\000\000\000\000\000\003!\000\000\003!\003!\000\000\000\000\000\000\000\000\000\000\003!\003!\003!\000\000\000\000\000\000\000\000\000\000\000\000\003!\000\000\003!\003!\003!\003!\003!\003!\003!\003!\003!\000\000\003!\000\000\000\000\000\000\000\000\000\000\003!\000\000\003!\003!\003!\000\000\000\000\000\000\000\000\003!\000\000\000\000\003!\000\000\003!\003!\000\000\003!\003!\003!\003!\000\000\000\000\000\000\000\000\000\000\000\000\003!\000\000\003!\003!\000\000\015\218\003!\003!\003!\003!\003!\003!\000\000\000\000\003!\003!\018\226\000\000\000\000\003!\003!\000\000\000\000\003!\003!\003!\003!\003\029\000\000\003\029\000\000\003\029\000\000\000\000\000\000\003\029\000\000\000\000\003\029\000\000\003\029\000\000\000\000\019\006\000\000\000\000\003\029\003\029\003\029\000\000\003\029\003\029\003\029\000\000\000\000\000\000\000\000\000\000\019r\019\210\019\234\019\138\000\000\003\029\000\000\003\029\000\000\000\000\000\000\000\000\000\000\000\000\003\029\019\162\003\029\020\026\0202\003\029\000\000\000\000\000\000\000\000\000\000\003\029\000\000\003\029\003\029\000\000\000\000\000\000\000\000\000\000\003\029\003\029\000\242\000\000\000\000\000\000\000\000\000\000\000\000\003\029\000\000\003\029\003\029\019\030\019\186\020b\020z\003\029\003\029\003\029\000\000\003\029\000\000\000\000\000\000\000\000\000\000\003\029\000\000\003\029\003\029\003\029\000\000\000\000\000\000\000\000\003\029\000\000\000\000\003\029\000\000\003\029\003\029\000\000\003\029\003\029\003\029\003\029\000\000\000\000\000\000\000\000\000\000\000\000\003\029\000\000\003\029\003\029\000\000\003\029\003\029\003\029\003\029\020\146\003\029\003\029\000\000\000\000\003\029\003\029\003\029\000\000\000\000\020\170\020\194\000\000\000\000\003\029\003\029\003\029\003\029\003\025\000\000\003\025\000\000\003\025\000\000\000\000\000\000\003\025\000\000\000\000\003\025\000\000\003\025\000\000\000\000\003\025\000\000\000\000\003\025\003\025\003\025\000\000\003\025\003\025\003\025\000\000\000\000\000\000\000\000\000\000\003\025\003\025\003\025\003\025\000\000\003\025\000\000\003\025\000\000\000\000\000\000\000\000\000\000\000\000\003\025\003\025\003\025\003\025\003\025\003\025\000\000\000\000\000\000\000\000\000\000\003\025\000\000\003\025\003\025\000\000\000\000\000\000\000\000\000\000\003\025\003\025\003\025\000\000\000\000\000\000\000\000\000\000\000\000\003\025\000\000\003\025\003\025\003\025\003\025\003\025\003\025\003\025\003\025\003\025\000\000\003\025\000\000\000\000\000\000\000\000\000\000\003\025\000\000\003\025\003\025\003\025\000\000\000\000\000\000\000\000\003\025\000\000\000\000\003\025\000\000\003\025\003\025\000\000\003\025\003\025\003\025\003\025\000\000\000\000\000\000\000\000\000\000\000\000\003\025\000\000\003\025\003\025\000\000\015\218\003\025\003\025\003\025\003\025\003\025\003\025\000\000\000\000\003\025\003\025\018\226\000\000\000\000\003\025\003\025\000\000\000\000\003\025\003\025\003\025\003\025\003\021\000\000\003\021\000\000\003\021\000\000\000\000\000\000\003\021\000\000\000\000\003\021\000\000\003\021\000\000\000\000\019\006\000\000\000\000\003\021\003\021\003\021\000\000\003\021\003\021\003\021\000\000\000\000\000\000\000\000\000\000\019r\019\210\019\234\019\138\000\000\003\021\000\000\003\021\000\000\000\000\000\000\000\000\000\000\000\000\003\021\019\162\003\021\020\026\0202\003\021\000\000\000\000\000\000\000\000\000\000\003\021\000\000\003\021\003\021\000\000\000\000\000\000\000\000\000\000\003\021\003\021\000\242\000\000\000\000\000\000\000\000\000\000\000\000\003\021\000\000\003\021\003\021\019\030\019\186\020b\020z\003\021\003\021\003\021\000\000\003\021\000\000\000\000\000\000\000\000\000\000\003\021\000\000\003\021\003\021\003\021\000\000\000\000\000\000\000\000\003\021\000\000\000\000\003\021\000\000\003\021\003\021\000\000\003\021\003\021\003\021\003\021\000\000\000\000\000\000\000\000\000\000\000\000\003\021\000\000\003\021\003\021\000\000\003\021\003\021\003\021\003\021\020\146\003\021\003\021\000\000\000\000\003\021\003\021\003\021\000\000\000\000\020\170\020\194\000\000\000\000\003\021\003\021\003\021\003\021\003\161\000\000\003\161\000\000\003\161\000\000\000\000\000\000\003\161\000\000\000\000\003\161\000\000\003\161\000\000\000\000\003\161\000\000\000\000\003\161\003\161\003\161\000\000\003\161\003\161\003\161\000\000\000\000\000\000\000\000\000\000\003\161\003\161\003\161\003\161\000\000\003\161\000\000\003\161\000\000\000\000\000\000\000\000\000\000\000\000\003\161\003\161\003\161\003\161\003\161\003\161\000\000\000\000\000\000\000\000\000\000\003\161\000\000\003\161\003\161\000\000\000\000\000\000\000\000\000\000\003\161\003\161\003\161\000\000\000\000\000\000\000\000\000\000\000\000\003\161\000\000\003\161\003\161\003\161\003\161\003\161\003\161\003\161\003\161\003\161\000\000\003\161\000\000\000\000\000\000\000\000\000\000\003\161\000\000\003\161\003\161\003\161\000\000\000\000\000\000\000\000\003\161\000\000\000\000\003\161\000\000\003\161\003\161\000\000\003\161\003\161\003\161\003\161\000\000\000\000\000\000\000\000\000\000\000\000\003\161\000\000\003\161\003\161\000\000\015\218\003\161\003\161\003\161\003\161\003\161\003\161\000\000\000\000\003\161\003\161\018\226\000\000\000\000\003\161\003\161\000\000\000\000\003\161\003\161\003\161\003\161\003\157\000\000\003\157\000\000\003\157\000\000\000\000\000\000\003\157\000\000\000\000\003\157\000\000\003\157\000\000\000\000\019\006\000\000\000\000\003\157\003\157\003\157\000\000\003\157\003\157\003\157\000\000\000\000\000\000\000\000\000\000\019r\019\210\019\234\019\138\000\000\003\157\000\000\003\157\000\000\000\000\000\000\000\000\000\000\000\000\003\157\019\162\003\157\020\026\0202\003\157\000\000\000\000\000\000\000\000\000\000\003\157\000\000\003\157\003\157\000\000\000\000\000\000\000\000\000\000\003\157\003\157\000\242\000\000\000\000\000\000\000\000\000\000\000\000\003\157\000\000\003\157\003\157\019\030\019\186\020b\020z\003\157\003\157\003\157\000\000\003\157\000\000\000\000\000\000\000\000\000\000\003\157\000\000\003\157\003\157\003\157\000\000\000\000\000\000\000\000\003\157\000\000\000\000\003\157\000\000\003\157\003\157\000\000\003\157\003\157\003\157\003\157\000\000\000\000\000\000\000\000\000\000\000\000\003\157\000\000\003\157\003\157\000\000\003\157\003\157\003\157\003\157\020\146\003\157\003\157\000\000\000\000\003\157\003\157\003\157\000\000\000\000\020\170\020\194\000\000\000\000\003\157\003\157\003\157\003\157\003\145\000\000\003\145\000\000\003\145\000\000\000\000\000\000\003\145\000\000\000\000\003\145\000\000\003\145\000\000\000\000\003\145\000\000\000\000\003\145\003\145\003\145\000\000\003\145\003\145\003\145\000\000\000\000\000\000\000\000\000\000\003\145\003\145\003\145\003\145\000\000\003\145\000\000\003\145\000\000\000\000\000\000\000\000\000\000\000\000\003\145\003\145\003\145\003\145\003\145\003\145\000\000\000\000\000\000\000\000\000\000\003\145\000\000\003\145\003\145\000\000\000\000\000\000\000\000\000\000\003\145\003\145\003\145\000\000\000\000\000\000\000\000\000\000\000\000\003\145\000\000\003\145\003\145\003\145\003\145\003\145\003\145\003\145\003\145\003\145\000\000\003\145\000\000\000\000\000\000\000\000\000\000\003\145\000\000\003\145\003\145\003\145\000\000\000\000\000\000\000\000\003\145\000\000\000\000\003\145\000\000\003\145\003\145\000\000\003\145\003\145\003\145\003\145\000\000\000\000\000\000\000\000\000\000\000\000\003\145\000\000\003\145\003\145\000\000\015\218\003\145\003\145\003\145\003\145\003\145\003\145\000\000\000\000\003\145\003\145\018\226\000\000\000\000\003\145\003\145\000\000\000\000\003\145\003\145\003\145\003\145\003\141\000\000\003\141\000\000\003\141\000\000\000\000\000\000\003\141\000\000\000\000\003\141\000\000\003\141\000\000\000\000\019\006\000\000\000\000\003\141\003\141\003\141\000\000\003\141\003\141\003\141\000\000\000\000\000\000\000\000\000\000\019r\019\210\019\234\019\138\000\000\003\141\000\000\003\141\000\000\000\000\000\000\000\000\000\000\000\000\003\141\019\162\003\141\020\026\0202\003\141\000\000\000\000\000\000\000\000\000\000\003\141\000\000\003\141\003\141\000\000\000\000\000\000\000\000\000\000\003\141\003\141\000\242\000\000\000\000\000\000\000\000\000\000\000\000\003\141\000\000\003\141\003\141\019\030\019\186\020b\020z\003\141\003\141\003\141\000\000\003\141\000\000\000\000\000\000\000\000\000\000\003\141\000\000\003\141\003\141\003\141\000\000\000\000\000\000\000\000\003\141\000\000\000\000\003\141\000\000\003\141\003\141\000\000\003\141\003\141\003\141\003\141\000\000\000\000\000\000\000\000\000\000\000\000\003\141\000\000\003\141\003\141\000\000\003\141\003\141\003\141\003\141\020\146\003\141\003\141\000\000\000\000\003\141\003\141\003\141\000\000\000\000\020\170\020\194\000\000\000\000\003\141\003\141\003\141\003\141\003\177\000\000\003\177\000\000\003\177\000\000\000\000\000\000\003\177\000\000\000\000\003\177\000\000\003\177\000\000\000\000\003\177\000\000\000\000\003\177\003\177\003\177\000\000\003\177\003\177\003\177\000\000\000\000\000\000\000\000\000\000\003\177\003\177\003\177\003\177\000\000\003\177\000\000\003\177\000\000\000\000\000\000\000\000\000\000\000\000\003\177\003\177\003\177\003\177\003\177\003\177\000\000\000\000\000\000\000\000\000\000\003\177\000\000\003\177\003\177\000\000\000\000\000\000\000\000\000\000\003\177\003\177\003\177\000\000\000\000\000\000\000\000\000\000\000\000\003\177\000\000\003\177\003\177\003\177\003\177\003\177\003\177\003\177\003\177\003\177\000\000\003\177\000\000\000\000\000\000\000\000\000\000\003\177\000\000\003\177\003\177\003\177\000\000\000\000\000\000\000\000\003\177\000\000\000\000\003\177\000\000\003\177\003\177\000\000\003\177\003\177\003\177\003\177\000\000\000\000\000\000\000\000\000\000\000\000\003\177\000\000\003\177\003\177\000\000\015\218\003\177\003\177\003\177\003\177\003\177\003\177\000\000\000\000\003\177\003\177\018\226\000\000\000\000\003\177\003\177\000\000\000\000\003\177\003\177\003\177\003\177\003\173\000\000\003\173\000\000\003\173\000\000\000\000\000\000\003\173\000\000\000\000\003\173\000\000\003\173\000\000\000\000\019\006\000\000\000\000\003\173\003\173\003\173\000\000\003\173\003\173\003\173\000\000\000\000\000\000\000\000\000\000\019r\019\210\019\234\019\138\000\000\020\002\000\000\003\173\000\000\000\000\000\000\000\000\000\000\000\000\003\173\019\162\003\173\020\026\0202\003\173\000\000\000\000\000\000\000\000\000\000\003\173\000\000\020J\003\173\000\000\000\000\000\000\000\000\000\000\003\173\003\173\000\242\000\000\000\000\000\000\000\000\000\000\000\000\003\173\000\000\003\173\003\173\019\030\019\186\020b\020z\020\218\003\173\003\173\000\000\003\173\000\000\000\000\000\000\000\000\000\000\003\173\000\000\003\173\003\173\020\242\000\000\000\000\000\000\000\000\003\173\000\000\000\000\003\173\000\000\003\173\021\n\000\000\003\173\003\173\003\173\003\173\000\000\000\000\000\000\000\000\000\000\000\000\003\173\000\000\003\173\003\173\000\000\003\173\003\173\003\173\003\173\020\146\003\173\003\173\000\000\000\000\003\173\021\"\003\173\000\000\000\000\020\170\020\194\000\000\000\000\003\173\003\173\021:\021R\003\185\000\000\003\185\000\000\003\185\000\000\000\000\000\000\003\185\000\000\000\000\003\185\000\000\003\185\000\000\000\000\003\185\000\000\000\000\003\185\003\185\003\185\000\000\003\185\003\185\003\185\000\000\000\000\000\000\000\000\000\000\003\185\003\185\003\185\003\185\000\000\003\185\000\000\003\185\000\000\000\000\000\000\000\000\000\000\000\000\003\185\003\185\003\185\003\185\003\185\003\185\000\000\000\000\000\000\000\000\000\000\003\185\000\000\003\185\003\185\000\000\000\000\000\000\000\000\000\000\003\185\003\185\003\185\000\000\000\000\000\000\000\000\000\000\000\000\003\185\000\000\003\185\003\185\003\185\003\185\003\185\003\185\003\185\003\185\003\185\000\000\003\185\000\000\000\000\000\000\000\000\000\000\003\185\000\000\003\185\003\185\003\185\000\000\000\000\000\000\000\000\003\185\000\000\000\000\003\185\000\000\003\185\003\185\000\000\003\185\003\185\003\185\003\185\000\000\000\000\000\000\000\000\000\000\000\000\003\185\000\000\003\185\003\185\000\000\015\218\003\185\003\185\003\185\003\185\003\185\003\185\000\000\000\000\003\185\003\185\018\226\000\000\000\000\003\185\003\185\000\000\000\000\003\185\003\185\003\185\003\185\003\181\000\000\003\181\000\000\003\181\000\000\000\000\000\000\003\181\000\000\000\000\003\181\000\000\003\181\000\000\000\000\019\006\000\000\000\000\003\181\003\181\003\181\000\000\003\181\003\181\003\181\000\000\000\000\000\000\000\000\000\000\019r\019\210\019\234\019\138\000\000\003\181\000\000\003\181\000\000\000\000\000\000\000\000\000\000\000\000\003\181\019\162\003\181\020\026\0202\003\181\000\000\000\000\000\000\000\000\000\000\003\181\000\000\020J\003\181\000\000\000\000\000\000\000\000\000\000\003\181\003\181\000\242\000\000\000\000\000\000\000\000\000\000\000\000\003\181\000\000\003\181\003\181\019\030\019\186\020b\020z\020\218\003\181\003\181\000\000\003\181\000\000\000\000\000\000\000\000\000\000\003\181\000\000\003\181\003\181\020\242\000\000\000\000\000\000\000\000\003\181\000\000\000\000\003\181\000\000\003\181\021\n\000\000\003\181\003\181\003\181\003\181\000\000\000\000\000\000\000\000\000\000\000\000\003\181\000\000\003\181\003\181\000\000\003\181\003\181\003\181\003\181\020\146\003\181\003\181\000\000\000\000\003\181\003\181\003\181\000\000\000\000\020\170\020\194\000\000\000\000\003\181\003\181\021:\021R\003\193\000\000\003\193\000\000\003\193\000\000\000\000\000\000\003\193\000\000\000\000\003\193\000\000\003\193\000\000\000\000\003\193\000\000\000\000\003\193\003\193\003\193\000\000\003\193\003\193\003\193\000\000\000\000\000\000\000\000\000\000\003\193\003\193\003\193\003\193\000\000\003\193\000\000\003\193\000\000\000\000\000\000\000\000\000\000\000\000\003\193\003\193\003\193\003\193\003\193\003\193\000\000\000\000\000\000\000\000\000\000\003\193\000\000\003\193\003\193\000\000\000\000\000\000\000\000\000\000\003\193\003\193\003\193\000\000\000\000\000\000\000\000\000\000\000\000\003\193\000\000\003\193\003\193\003\193\003\193\003\193\003\193\003\193\003\193\003\193\000\000\003\193\000\000\000\000\000\000\000\000\000\000\003\193\000\000\003\193\003\193\003\193\000\000\000\000\000\000\000\000\003\193\000\000\000\000\003\193\000\000\003\193\003\193\000\000\003\193\003\193\003\193\003\193\000\000\000\000\000\000\000\000\000\000\000\000\003\193\000\000\003\193\003\193\000\000\015\218\003\193\003\193\003\193\003\193\003\193\003\193\000\000\000\000\003\193\003\193\018\226\000\000\000\000\003\193\003\193\000\000\000\000\003\193\003\193\003\193\003\193\003\189\000\000\003\189\000\000\003\189\000\000\000\000\000\000\003\189\000\000\000\000\003\189\000\000\003\189\000\000\000\000\019\006\000\000\000\000\003\189\003\189\003\189\000\000\003\189\003\189\003\189\000\000\000\000\000\000\000\000\000\000\019r\019\210\019\234\019\138\000\000\003\189\000\000\003\189\000\000\000\000\000\000\000\000\000\000\000\000\003\189\019\162\003\189\020\026\0202\003\189\000\000\000\000\000\000\000\000\000\000\003\189\000\000\020J\003\189\000\000\000\000\000\000\000\000\000\000\003\189\003\189\000\242\000\000\000\000\000\000\000\000\000\000\000\000\003\189\000\000\003\189\003\189\019\030\019\186\020b\020z\020\218\003\189\003\189\000\000\003\189\000\000\000\000\000\000\000\000\000\000\003\189\000\000\003\189\003\189\020\242\000\000\000\000\000\000\000\000\003\189\000\000\000\000\003\189\000\000\003\189\021\n\000\000\003\189\003\189\003\189\003\189\000\000\000\000\000\000\000\000\000\000\000\000\003\189\000\000\003\189\003\189\000\000\003\189\003\189\003\189\003\189\020\146\003\189\003\189\000\000\000\000\003\189\003\189\003\189\000\000\000\000\020\170\020\194\000\000\000\000\003\189\003\189\021:\021R\012A\000\000\012A\000\000\012A\000\000\000\000\000\000\012A\000\000\000\000\012A\000\000\012A\000\000\000\000\012A\000\000\000\000\012A\012A\012A\000\000\012A\012A\012A\000\000\000\000\000\000\000\000\000\000\012A\012A\012A\012A\000\000\012A\000\000\012A\000\000\000\000\000\000\000\000\000\000\000\000\012A\012A\012A\012A\012A\012A\000\000\000\000\000\000\000\000\000\000\012A\000\000\012A\012A\000\000\000\000\000\000\000\000\000\000\012A\012A\012A\000\000\000\000\000\000\000\000\000\000\000\000\012A\000\000\012A\012A\012A\012A\012A\012A\012A\012A\012A\000\000\012A\000\000\000\000\000\000\000\000\000\000\012A\000\000\012A\012A\012A\000\000\000\000\000\000\000\000\012A\000\000\000\000\012A\000\000\012A\012A\000\000\012A\012A\012A\012A\000\000\000\000\000\000\000\000\000\000\000\000\012A\000\000\012A\012A\000\000\015\218\012A\012A\012A\012A\012A\012A\000\000\000\000\012A\012A\018\226\000\000\000\000\012A\012A\000\000\000\000\012A\012A\012A\012A\012=\000\000\012=\000\000\012=\000\000\000\000\000\000\012=\000\000\000\000\012=\000\000\012=\000\000\000\000\019\006\000\000\000\000\012=\012=\012=\000\000\012=\012=\012=\000\000\000\000\000\000\000\000\000\000\019r\019\210\019\234\019\138\000\000\020\002\000\000\012=\000\000\000\000\000\000\000\000\000\000\000\000\012=\019\162\012=\020\026\0202\012=\000\000\000\000\000\000\000\000\000\000\012=\000\000\020J\012=\000\000\000\000\000\000\000\000\000\000\012=\012=\000\242\000\000\000\000\000\000\000\000\000\000\000\000\012=\000\000\012=\012=\019\030\019\186\020b\020z\020\218\012=\012=\000\000\012=\000\000\000\000\000\000\000\000\000\000\012=\000\000\012=\012=\020\242\000\000\000\000\000\000\000\000\012=\000\000\000\000\012=\000\000\012=\021\n\000\000\012=\012=\012=\012=\000\000\000\000\000\000\000\000\000\000\000\000\012=\000\000\012=\012=\000\000\012=\012=\012=\012=\020\146\012=\012=\000\000\000\000\012=\021\"\012=\000\000\000\000\020\170\020\194\000\000\000\000\012=\012=\021:\021R\003\201\000\000\003\201\000\000\003\201\000\000\000\000\000\000\003\201\000\000\000\000\003\201\000\000\003\201\000\000\000\000\003\201\000\000\000\000\003\201\003\201\003\201\000\000\003\201\003\201\003\201\000\000\000\000\000\000\000\000\000\000\003\201\003\201\003\201\003\201\000\000\003\201\000\000\003\201\000\000\000\000\000\000\000\000\000\000\000\000\003\201\003\201\003\201\003\201\003\201\003\201\000\000\000\000\000\000\000\000\000\000\003\201\000\000\003\201\003\201\000\000\000\000\000\000\000\000\000\000\003\201\003\201\003\201\000\000\000\000\000\000\000\000\000\000\000\000\003\201\000\000\003\201\003\201\003\201\003\201\003\201\003\201\003\201\003\201\003\201\000\000\003\201\000\000\000\000\000\000\000\000\000\000\003\201\000\000\003\201\003\201\003\201\000\000\000\000\000\000\000\000\003\201\000\000\000\000\003\201\000\000\003\201\003\201\000\000\003\201\003\201\003\201\003\201\000\000\000\000\000\000\000\000\000\000\000\000\003\201\000\000\003\201\003\201\000\000\015\218\003\201\003\201\003\201\003\201\003\201\003\201\000\000\000\000\003\201\003\201\018\226\000\000\000\000\003\201\003\201\000\000\000\000\003\201\003\201\003\201\003\201\003\197\000\000\003\197\000\000\003\197\000\000\000\000\000\000\003\197\000\000\000\000\003\197\000\000\003\197\000\000\000\000\019\006\000\000\000\000\003\197\003\197\003\197\000\000\003\197\003\197\003\197\000\000\000\000\000\000\000\000\000\000\019r\019\210\019\234\019\138\000\000\020\002\000\000\003\197\000\000\000\000\000\000\000\000\000\000\000\000\003\197\019\162\003\197\020\026\0202\003\197\000\000\000\000\000\000\000\000\000\000\003\197\000\000\020J\003\197\000\000\000\000\000\000\000\000\000\000\003\197\003\197\000\242\000\000\000\000\000\000\000\000\000\000\000\000\003\197\000\000\003\197\003\197\019\030\019\186\020b\020z\020\218\003\197\003\197\000\000\003\197\000\000\000\000\000\000\000\000\000\000\003\197\000\000\003\197\003\197\020\242\000\000\000\000\000\000\000\000\003\197\000\000\000\000\003\197\000\000\003\197\021\n\000\000\003\197\003\197\003\197\003\197\000\000\000\000\000\000\000\000\000\000\000\000\003\197\000\000\003\197\003\197\000\000\021j\003\197\003\197\021\162\020\146\003\197\003\197\000\000\000\000\003\197\021\"\003\197\000\000\000\000\020\170\020\194\000\000\000\000\003\197\003\197\021:\021R\012)\000\000\012)\000\000\012)\000\000\000\000\000\000\012)\000\000\000\000\012)\000\000\012)\000\000\000\000\019\006\000\000\000\000\012)\012)\012)\000\000\012)\012)\012)\000\000\000\000\000\000\000\000\000\000\019r\019\210\019\234\019\138\000\000\020\002\000\000\012)\000\000\000\000\000\000\000\000\000\000\000\000\012)\019\162\012)\020\026\0202\012)\000\000\000\000\000\000\000\000\000\000\012)\000\000\020J\012)\000\000\000\000\000\000\000\000\000\000\012)\012)\000\242\000\000\000\000\000\000\000\000\000\000\000\000\012)\000\000\012)\012)\019\030\019\186\020b\020z\020\218\012)\012)\000\000\012)\000\000\000\000\000\000\000\000\000\000\012)\000\000\012)\012)\020\242\000\000\000\000\000\000\000\000\012)\000\000\000\000\012)\000\000\012)\021\n\000\000\012)\012)\012)\012)\000\000\000\000\000\000\000\000\000\000\000\000\012)\000\000\012)\012)\000\000\012)\012)\012)\012)\020\146\012)\012)\000\000\000\000\012)\021\"\012)\000\000\000\000\020\170\020\194\000\000\000\000\012)\012)\021:\021R\004\t\000\000\004\t\000\000\004\t\000\000\000\000\000\000\004\t\000\000\000\000\004\t\000\000\004\t\000\000\000\000\004\t\000\000\000\000\004\t\004\t\004\t\000\000\004\t\004\t\004\t\000\000\000\000\000\000\000\000\000\000\004\t\004\t\004\t\004\t\000\000\004\t\000\000\004\t\000\000\000\000\000\000\000\000\000\000\000\000\004\t\004\t\004\t\004\t\004\t\004\t\000\000\000\000\000\000\000\000\000\000\004\t\000\000\004\t\004\t\000\000\000\000\000\000\000\000\000\000\004\t\004\t\004\t\000\000\000\000\000\000\000\000\000\000\000\000\004\t\000\000\004\t\004\t\004\t\004\t\004\t\004\t\004\t\004\t\004\t\000\000\004\t\000\000\000\000\000\000\000\000\000\000\004\t\000\000\004\t\004\t\004\t\000\000\000\000\000\000\000\000\004\t\000\000\000\000\004\t\000\000\004\t\004\t\000\000\004\t\004\t\004\t\004\t\000\000\000\000\000\000\000\000\000\000\000\000\004\t\000\000\004\t\004\t\000\000\015\218\004\t\004\t\004\t\004\t\004\t\004\t\000\000\000\000\004\t\004\t\018\226\000\000\000\000\004\t\004\t\000\000\000\000\004\t\004\t\004\t\004\t\004\005\000\000\004\005\000\000\004\005\000\000\000\000\000\000\004\005\000\000\000\000\004\005\000\000\004\005\000\000\000\000\019\006\000\000\000\000\004\005\004\005\004\005\000\000\004\005\004\005\004\005\000\000\000\000\000\000\000\000\000\000\019r\019\210\019\234\019\138\000\000\020\002\000\000\004\005\000\000\000\000\000\000\000\000\000\000\000\000\004\005\019\162\004\005\020\026\0202\004\005\000\000\000\000\000\000\000\000\000\000\004\005\000\000\020J\004\005\000\000\000\000\000\000\000\000\000\000\004\005\004\005\000\242\000\000\000\000\000\000\000\000\000\000\000\000\004\005\000\000\004\005\004\005\019\030\019\186\020b\020z\020\218\004\005\004\005\000\000\004\005\000\000\000\000\000\000\000\000\000\000\004\005\000\000\004\005\004\005\020\242\000\000\000\000\000\000\000\000\004\005\000\000\000\000\004\005\000\000\004\005\021\n\000\000\004\005\004\005\004\005\004\005\000\000\000\000\000\000\000\000\000\000\000\000\004\005\000\000\004\005\004\005\000\000\021j\004\005\004\005\021\162\020\146\004\005\004\005\000\000\000\000\004\005\021\"\004\005\000\000\000\000\020\170\020\194\000\000\000\000\004\005\004\005\021:\021R\004)\000\000\004)\000\000\004)\000\000\000\000\000\000\004)\000\000\000\000\004)\000\000\004)\000\000\000\000\004)\000\000\000\000\004)\004)\004)\000\000\004)\004)\004)\000\000\000\000\000\000\000\000\000\000\004)\004)\004)\004)\000\000\004)\000\000\004)\000\000\000\000\000\000\000\000\000\000\000\000\004)\004)\004)\004)\004)\004)\000\000\000\000\000\000\000\000\000\000\004)\000\000\004)\004)\000\000\000\000\000\000\000\000\000\000\004)\004)\004)\000\000\000\000\000\000\000\000\000\000\000\000\004)\000\000\004)\004)\004)\004)\004)\004)\004)\004)\004)\000\000\004)\000\000\000\000\000\000\000\000\000\000\004)\000\000\004)\004)\004)\000\000\000\000\000\000\000\000\004)\000\000\000\000\004)\000\000\004)\004)\000\000\004)\004)\004)\004)\000\000\000\000\000\000\000\000\000\000\000\000\004)\000\000\004)\004)\000\000\015\218\004)\004)\004)\004)\004)\004)\000\000\000\000\004)\004)\018\226\000\000\000\000\004)\004)\000\000\000\000\004)\004)\004)\004)\004%\000\000\004%\000\000\004%\000\000\000\000\000\000\004%\000\000\000\000\004%\000\000\004%\000\000\000\000\019\006\000\000\000\000\004%\004%\004%\000\000\004%\004%\004%\000\000\000\000\000\000\000\000\000\000\019r\019\210\019\234\019\138\000\000\020\002\000\000\004%\000\000\000\000\000\000\000\000\000\000\000\000\004%\019\162\004%\020\026\0202\004%\000\000\000\000\000\000\000\000\000\000\004%\000\000\020J\004%\000\000\000\000\000\000\000\000\000\000\004%\004%\000\242\000\000\000\000\000\000\000\000\000\000\000\000\004%\000\000\004%\004%\019\030\019\186\020b\020z\020\218\004%\004%\000\000\004%\000\000\000\000\000\000\000\000\000\000\004%\000\000\004%\004%\020\242\000\000\000\000\000\000\000\000\004%\000\000\000\000\004%\000\000\004%\021\n\000\000\004%\004%\004%\004%\000\000\000\000\000\000\000\000\000\000\000\000\004%\000\000\004%\004%\000\000\021j\004%\004%\021\162\020\146\004%\004%\000\000\000\000\004%\021\"\004%\000\000\000\000\020\170\020\194\000\000\000\000\004%\004%\021:\021R\004\025\000\000\004\025\000\000\004\025\000\000\000\000\000\000\004\025\000\000\000\000\004\025\000\000\004\025\000\000\000\000\004\025\000\000\000\000\004\025\004\025\004\025\000\000\004\025\004\025\004\025\000\000\000\000\000\000\000\000\000\000\004\025\004\025\004\025\004\025\000\000\004\025\000\000\004\025\000\000\000\000\000\000\000\000\000\000\000\000\004\025\004\025\004\025\004\025\004\025\004\025\000\000\000\000\000\000\000\000\000\000\004\025\000\000\004\025\004\025\000\000\000\000\000\000\000\000\000\000\004\025\004\025\004\025\000\000\000\000\000\000\000\000\000\000\000\000\004\025\000\000\004\025\004\025\004\025\004\025\004\025\004\025\004\025\004\025\004\025\000\000\004\025\000\000\000\000\000\000\000\000\000\000\004\025\000\000\004\025\004\025\004\025\000\000\000\000\000\000\000\000\004\025\000\000\000\000\004\025\000\000\004\025\004\025\000\000\004\025\004\025\004\025\004\025\000\000\000\000\000\000\000\000\000\000\000\000\004\025\000\000\004\025\004\025\000\000\015\218\004\025\004\025\004\025\004\025\004\025\004\025\000\000\000\000\004\025\004\025\018\226\000\000\000\000\004\025\004\025\000\000\000\000\004\025\004\025\004\025\004\025\004\021\000\000\004\021\000\000\004\021\000\000\000\000\000\000\004\021\000\000\000\000\004\021\000\000\004\021\000\000\000\000\019\006\000\000\000\000\004\021\004\021\004\021\000\000\004\021\004\021\004\021\000\000\000\000\000\000\000\000\000\000\019r\019\210\019\234\019\138\000\000\020\002\000\000\004\021\000\000\000\000\000\000\000\000\000\000\000\000\004\021\019\162\004\021\020\026\0202\004\021\000\000\000\000\000\000\000\000\000\000\004\021\000\000\020J\004\021\000\000\000\000\000\000\000\000\000\000\004\021\004\021\000\242\000\000\000\000\000\000\000\000\000\000\000\000\004\021\000\000\004\021\004\021\019\030\019\186\020b\020z\020\218\004\021\004\021\000\000\004\021\000\000\000\000\000\000\000\000\000\000\004\021\000\000\004\021\004\021\020\242\000\000\000\000\000\000\000\000\004\021\000\000\000\000\004\021\000\000\004\021\021\n\000\000\004\021\004\021\004\021\004\021\000\000\000\000\000\000\000\000\000\000\000\000\004\021\000\000\004\021\004\021\000\000\021j\004\021\004\021\021\162\020\146\004\021\004\021\000\000\000\000\004\021\021\"\004\021\000\000\000\000\020\170\020\194\000\000\000\000\004\021\004\021\021:\021R\003\241\000\000\003\241\000\000\003\241\000\000\000\000\000\000\003\241\000\000\000\000\003\241\000\000\003\241\000\000\000\000\003\241\000\000\000\000\003\241\003\241\003\241\000\000\003\241\003\241\003\241\000\000\000\000\000\000\000\000\000\000\003\241\003\241\003\241\003\241\000\000\003\241\000\000\003\241\000\000\000\000\000\000\000\000\000\000\000\000\003\241\003\241\003\241\003\241\003\241\003\241\000\000\000\000\000\000\000\000\000\000\003\241\000\000\003\241\003\241\000\000\000\000\000\000\000\000\000\000\003\241\003\241\003\241\000\000\000\000\000\000\000\000\000\000\000\000\003\241\000\000\003\241\003\241\003\241\003\241\003\241\003\241\003\241\003\241\003\241\000\000\003\241\000\000\000\000\000\000\000\000\000\000\003\241\000\000\003\241\003\241\003\241\000\000\000\000\000\000\000\000\003\241\000\000\000\000\003\241\000\000\003\241\003\241\000\000\003\241\003\241\003\241\003\241\000\000\000\000\000\000\000\000\000\000\000\000\003\241\000\000\003\241\003\241\000\000\015\218\003\241\003\241\003\241\003\241\003\241\003\241\000\000\000\000\003\241\003\241\018\226\000\000\000\000\003\241\003\241\000\000\000\000\003\241\003\241\003\241\003\241\003\237\000\000\003\237\000\000\003\237\000\000\000\000\000\000\003\237\000\000\000\000\003\237\000\000\003\237\000\000\000\000\019\006\000\000\000\000\003\237\003\237\003\237\000\000\003\237\003\237\003\237\000\000\000\000\000\000\000\000\000\000\019r\019\210\019\234\019\138\000\000\020\002\000\000\003\237\000\000\000\000\000\000\000\000\000\000\000\000\003\237\019\162\003\237\020\026\0202\003\237\000\000\000\000\000\000\000\000\000\000\003\237\000\000\020J\003\237\000\000\000\000\000\000\000\000\000\000\003\237\003\237\000\242\000\000\000\000\000\000\000\000\000\000\000\000\003\237\000\000\003\237\003\237\019\030\019\186\020b\020z\020\218\003\237\003\237\000\000\003\237\000\000\000\000\000\000\000\000\000\000\003\237\000\000\003\237\003\237\020\242\000\000\000\000\000\000\000\000\003\237\000\000\000\000\003\237\000\000\003\237\021\n\000\000\003\237\003\237\003\237\003\237\000\000\000\000\000\000\000\000\000\000\000\000\003\237\000\000\003\237\003\237\000\000\021j\003\237\003\237\021\162\020\146\003\237\003\237\000\000\000\000\003\237\021\"\003\237\000\000\000\000\020\170\020\194\000\000\000\000\003\237\003\237\021:\021R\004\001\000\000\004\001\000\000\004\001\000\000\000\000\000\000\004\001\000\000\000\000\004\001\000\000\004\001\000\000\000\000\004\001\000\000\000\000\004\001\004\001\004\001\000\000\004\001\004\001\004\001\000\000\000\000\000\000\000\000\000\000\004\001\004\001\004\001\004\001\000\000\004\001\000\000\004\001\000\000\000\000\000\000\000\000\000\000\000\000\004\001\004\001\004\001\004\001\004\001\004\001\000\000\000\000\000\000\000\000\000\000\004\001\000\000\004\001\004\001\000\000\000\000\000\000\000\000\000\000\004\001\004\001\004\001\000\000\000\000\000\000\000\000\000\000\000\000\004\001\000\000\004\001\004\001\004\001\004\001\004\001\004\001\004\001\004\001\004\001\000\000\004\001\000\000\000\000\000\000\000\000\000\000\004\001\000\000\004\001\004\001\004\001\000\000\000\000\000\000\000\000\004\001\000\000\000\000\004\001\000\000\004\001\004\001\000\000\004\001\004\001\004\001\004\001\000\000\000\000\000\000\000\000\000\000\000\000\004\001\000\000\004\001\004\001\000\000\015\218\004\001\004\001\004\001\004\001\004\001\004\001\000\000\000\000\004\001\004\001\018\226\000\000\000\000\004\001\004\001\000\000\000\000\004\001\004\001\004\001\004\001\003\253\000\000\003\253\000\000\003\253\000\000\000\000\000\000\003\253\000\000\000\000\003\253\000\000\003\253\000\000\000\000\019\006\000\000\000\000\003\253\003\253\003\253\000\000\003\253\003\253\003\253\000\000\000\000\000\000\000\000\000\000\019r\019\210\019\234\019\138\000\000\020\002\000\000\003\253\000\000\000\000\000\000\000\000\000\000\000\000\003\253\019\162\003\253\020\026\0202\003\253\000\000\000\000\000\000\000\000\000\000\003\253\000\000\020J\003\253\000\000\000\000\000\000\000\000\000\000\003\253\003\253\000\242\000\000\000\000\000\000\000\000\000\000\000\000\003\253\000\000\003\253\003\253\019\030\019\186\020b\020z\020\218\003\253\003\253\000\000\003\253\000\000\000\000\000\000\000\000\000\000\003\253\000\000\003\253\003\253\020\242\000\000\000\000\000\000\000\000\003\253\000\000\000\000\003\253\000\000\003\253\021\n\000\000\003\253\003\253\003\253\003\253\000\000\000\000\000\000\000\000\000\000\000\000\003\253\000\000\003\253\003\253\000\000\021j\003\253\003\253\021\162\020\146\003\253\003\253\000\000\000\000\003\253\021\"\003\253\000\000\000\000\020\170\020\194\000\000\000\000\003\253\003\253\021:\021R\003\249\000\000\003\249\000\000\003\249\000\000\000\000\000\000\003\249\000\000\000\000\003\249\000\000\003\249\000\000\000\000\003\249\000\000\000\000\003\249\003\249\003\249\000\000\003\249\003\249\003\249\000\000\000\000\000\000\000\000\000\000\003\249\003\249\003\249\003\249\000\000\003\249\000\000\003\249\000\000\000\000\000\000\000\000\000\000\000\000\003\249\003\249\003\249\003\249\003\249\003\249\000\000\000\000\000\000\000\000\000\000\003\249\000\000\003\249\003\249\000\000\000\000\000\000\000\000\000\000\003\249\003\249\003\249\000\000\000\000\000\000\000\000\000\000\000\000\003\249\000\000\003\249\003\249\003\249\003\249\003\249\003\249\003\249\003\249\003\249\000\000\003\249\000\000\000\000\000\000\000\000\000\000\003\249\000\000\003\249\003\249\003\249\000\000\000\000\000\000\000\000\003\249\000\000\000\000\003\249\000\000\003\249\003\249\000\000\003\249\003\249\003\249\003\249\000\000\000\000\000\000\000\000\000\000\000\000\003\249\000\000\003\249\003\249\000\000\015\218\003\249\003\249\003\249\003\249\003\249\003\249\000\000\000\000\003\249\003\249\018\226\000\000\000\000\003\249\003\249\000\000\000\000\003\249\003\249\003\249\003\249\003\245\000\000\003\245\000\000\003\245\000\000\000\000\000\000\003\245\000\000\000\000\003\245\000\000\003\245\000\000\000\000\019\006\000\000\000\000\003\245\003\245\003\245\000\000\003\245\003\245\003\245\000\000\000\000\000\000\000\000\000\000\019r\019\210\019\234\019\138\000\000\020\002\000\000\003\245\000\000\000\000\000\000\000\000\000\000\000\000\003\245\019\162\003\245\020\026\0202\003\245\000\000\000\000\000\000\000\000\000\000\003\245\000\000\020J\003\245\000\000\000\000\000\000\000\000\000\000\003\245\003\245\000\242\000\000\000\000\000\000\000\000\000\000\000\000\003\245\000\000\003\245\003\245\019\030\019\186\020b\020z\020\218\003\245\003\245\000\000\003\245\000\000\000\000\000\000\000\000\000\000\003\245\000\000\003\245\003\245\020\242\000\000\000\000\000\000\000\000\003\245\000\000\000\000\003\245\000\000\003\245\021\n\000\000\003\245\003\245\003\245\003\245\000\000\000\000\000\000\000\000\000\000\000\000\003\245\000\000\003\245\003\245\000\000\021j\003\245\003\245\021\162\020\146\003\245\003\245\000\000\000\000\003\245\021\"\003\245\000\000\000\000\020\170\020\194\000\000\000\000\003\245\003\245\021:\021R\004\017\000\000\004\017\000\000\004\017\000\000\000\000\000\000\004\017\000\000\000\000\004\017\000\000\004\017\000\000\000\000\004\017\000\000\000\000\004\017\004\017\004\017\000\000\004\017\004\017\004\017\000\000\000\000\000\000\000\000\000\000\004\017\004\017\004\017\004\017\000\000\004\017\000\000\004\017\000\000\000\000\000\000\000\000\000\000\000\000\004\017\004\017\004\017\004\017\004\017\004\017\000\000\000\000\000\000\000\000\000\000\004\017\000\000\004\017\004\017\000\000\000\000\000\000\000\000\000\000\004\017\004\017\004\017\000\000\000\000\000\000\000\000\000\000\000\000\004\017\000\000\004\017\004\017\004\017\004\017\004\017\004\017\004\017\004\017\004\017\000\000\004\017\000\000\000\000\000\000\000\000\000\000\004\017\000\000\004\017\004\017\004\017\000\000\000\000\000\000\000\000\004\017\000\000\000\000\004\017\000\000\004\017\004\017\000\000\004\017\004\017\004\017\004\017\000\000\000\000\000\000\000\000\000\000\000\000\004\017\000\000\004\017\004\017\000\000\015\218\004\017\004\017\004\017\004\017\004\017\004\017\000\000\000\000\004\017\004\017\018\226\000\000\000\000\004\017\004\017\000\000\000\000\004\017\004\017\004\017\004\017\004\r\000\000\004\r\000\000\004\r\000\000\000\000\000\000\004\r\000\000\000\000\004\r\000\000\004\r\000\000\000\000\019\006\000\000\000\000\004\r\004\r\004\r\000\000\004\r\004\r\004\r\000\000\000\000\000\000\000\000\000\000\019r\019\210\019\234\019\138\000\000\020\002\000\000\004\r\000\000\000\000\000\000\000\000\000\000\000\000\004\r\019\162\004\r\020\026\0202\004\r\000\000\000\000\000\000\000\000\000\000\004\r\000\000\020J\004\r\000\000\000\000\000\000\000\000\000\000\004\r\004\r\000\242\000\000\000\000\000\000\000\000\000\000\000\000\004\r\000\000\004\r\004\r\019\030\019\186\020b\020z\020\218\004\r\004\r\000\000\004\r\000\000\000\000\000\000\000\000\000\000\004\r\000\000\004\r\004\r\020\242\000\000\000\000\000\000\000\000\004\r\000\000\000\000\004\r\000\000\004\r\021\n\000\000\004\r\004\r\004\r\004\r\000\000\000\000\000\000\000\000\000\000\000\000\004\r\000\000\004\r\004\r\000\000\021j\004\r\004\r\021\162\020\146\004\r\004\r\000\000\000\000\004\r\021\"\004\r\000\000\000\000\020\170\020\194\000\000\000\000\004\r\004\r\021:\021R\0041\000\000\0041\000\000\0041\000\000\000\000\000\000\0041\000\000\000\000\0041\000\000\0041\000\000\000\000\0041\000\000\000\000\0041\0041\0041\000\000\0041\0041\0041\000\000\000\000\000\000\000\000\000\000\0041\0041\0041\0041\000\000\0041\000\000\0041\000\000\000\000\000\000\000\000\000\000\000\000\0041\0041\0041\0041\0041\0041\000\000\000\000\000\000\000\000\000\000\0041\000\000\0041\0041\000\000\000\000\000\000\000\000\000\000\0041\0041\0041\000\000\000\000\000\000\000\000\000\000\000\000\0041\000\000\0041\0041\0041\0041\0041\0041\0041\0041\0041\000\000\0041\000\000\000\000\000\000\000\000\000\000\0041\000\000\0041\0041\0041\000\000\000\000\000\000\000\000\0041\000\000\000\000\0041\000\000\0041\0041\000\000\0041\0041\0041\0041\000\000\000\000\000\000\000\000\000\000\000\000\0041\000\000\0041\0041\000\000\015\218\0041\0041\0041\0041\0041\0041\000\000\000\000\0041\0041\018\226\000\000\000\000\0041\0041\000\000\000\000\0041\0041\0041\0041\004-\000\000\004-\000\000\004-\000\000\000\000\000\000\004-\000\000\000\000\004-\000\000\004-\000\000\000\000\019\006\000\000\000\000\004-\004-\004-\000\000\004-\004-\004-\000\000\000\000\000\000\000\000\000\000\019r\019\210\019\234\019\138\000\000\020\002\000\000\004-\000\000\000\000\000\000\000\000\000\000\000\000\004-\019\162\004-\020\026\0202\004-\000\000\000\000\000\000\000\000\000\000\004-\000\000\020J\004-\000\000\000\000\000\000\000\000\000\000\004-\004-\000\242\000\000\000\000\000\000\000\000\000\000\000\000\004-\000\000\004-\004-\019\030\019\186\020b\020z\020\218\004-\004-\000\000\004-\000\000\000\000\000\000\000\000\000\000\004-\000\000\004-\004-\020\242\000\000\000\000\000\000\000\000\004-\000\000\000\000\004-\000\000\004-\021\n\000\000\004-\004-\004-\004-\000\000\000\000\000\000\000\000\000\000\000\000\004-\000\000\004-\004-\000\000\021j\004-\004-\021\162\020\146\004-\004-\000\000\000\000\004-\021\"\004-\000\000\000\000\020\170\020\194\000\000\000\000\004-\004-\021:\021R\004!\000\000\004!\000\000\004!\000\000\000\000\000\000\004!\000\000\000\000\004!\000\000\004!\000\000\000\000\004!\000\000\000\000\004!\004!\004!\000\000\004!\004!\004!\000\000\000\000\000\000\000\000\000\000\004!\004!\004!\004!\000\000\004!\000\000\004!\000\000\000\000\000\000\000\000\000\000\000\000\004!\004!\004!\004!\004!\004!\000\000\000\000\000\000\000\000\000\000\004!\000\000\004!\004!\000\000\000\000\000\000\000\000\000\000\004!\004!\004!\000\000\000\000\000\000\000\000\000\000\000\000\004!\000\000\004!\004!\004!\004!\004!\004!\004!\004!\004!\000\000\004!\000\000\000\000\000\000\000\000\000\000\004!\000\000\004!\004!\004!\000\000\000\000\000\000\000\000\004!\000\000\000\000\004!\000\000\004!\004!\000\000\004!\004!\004!\004!\000\000\000\000\000\000\000\000\000\000\000\000\004!\000\000\004!\004!\000\000\015\218\004!\004!\004!\004!\004!\004!\000\000\000\000\004!\004!\018\226\000\000\000\000\004!\004!\000\000\000\000\004!\004!\004!\004!\004\029\000\000\004\029\000\000\004\029\000\000\000\000\000\000\004\029\000\000\000\000\004\029\000\000\004\029\000\000\000\000\019\006\000\000\000\000\004\029\004\029\004\029\000\000\004\029\004\029\004\029\000\000\000\000\000\000\000\000\000\000\019r\019\210\019\234\019\138\000\000\020\002\000\000\004\029\000\000\000\000\000\000\000\000\000\000\000\000\004\029\019\162\004\029\020\026\0202\004\029\000\000\000\000\000\000\000\000\000\000\004\029\000\000\020J\004\029\000\000\000\000\000\000\000\000\000\000\004\029\004\029\000\242\000\000\000\000\000\000\000\000\000\000\000\000\004\029\000\000\004\029\004\029\019\030\019\186\020b\020z\020\218\004\029\004\029\000\000\004\029\000\000\000\000\000\000\000\000\000\000\004\029\000\000\004\029\004\029\020\242\000\000\000\000\000\000\000\000\004\029\000\000\000\000\004\029\000\000\004\029\021\n\000\000\004\029\004\029\004\029\004\029\000\000\000\000\000\000\000\000\000\000\000\000\004\029\000\000\004\029\004\029\000\000\021j\004\029\004\029\021\162\020\146\004\029\004\029\000\000\000\000\004\029\021\"\004\029\000\000\000\000\020\170\020\194\000\000\000\000\004\029\004\029\021:\021R\003\233\000\000\003\233\000\000\003\233\000\000\000\000\000\000\003\233\000\000\000\000\003\233\000\000\003\233\000\000\000\000\003\233\000\000\000\000\003\233\003\233\003\233\000\000\003\233\003\233\003\233\000\000\000\000\000\000\000\000\000\000\003\233\003\233\003\233\003\233\000\000\003\233\000\000\003\233\000\000\000\000\000\000\000\000\000\000\000\000\003\233\003\233\003\233\003\233\003\233\003\233\000\000\000\000\000\000\000\000\000\000\003\233\000\000\003\233\003\233\000\000\000\000\000\000\000\000\000\000\003\233\003\233\003\233\000\000\000\000\000\000\000\000\000\000\000\000\003\233\000\000\003\233\003\233\003\233\003\233\003\233\003\233\003\233\003\233\003\233\000\000\003\233\000\000\000\000\000\000\000\000\000\000\003\233\000\000\003\233\003\233\003\233\000\000\000\000\000\000\000\000\003\233\000\000\000\000\003\233\000\000\003\233\003\233\000\000\003\233\003\233\003\233\003\233\000\000\000\000\000\000\000\000\000\000\000\000\003\233\000\000\003\233\003\233\000\000\015\218\003\233\003\233\003\233\003\233\003\233\003\233\000\000\000\000\003\233\003\233\018\226\000\000\000\000\003\233\003\233\000\000\000\000\003\233\003\233\003\233\003\233\003\229\000\000\003\229\000\000\003\229\000\000\000\000\000\000\003\229\000\000\000\000\003\229\000\000\003\229\000\000\000\000\019\006\000\000\000\000\003\229\003\229\003\229\000\000\003\229\003\229\003\229\000\000\000\000\000\000\000\000\000\000\019r\019\210\019\234\019\138\000\000\020\002\000\000\003\229\000\000\000\000\000\000\000\000\000\000\000\000\003\229\019\162\003\229\020\026\0202\003\229\000\000\000\000\000\000\000\000\000\000\003\229\000\000\020J\003\229\000\000\000\000\000\000\000\000\000\000\003\229\003\229\000\242\000\000\000\000\000\000\000\000\000\000\000\000\003\229\000\000\003\229\003\229\019\030\019\186\020b\020z\020\218\003\229\003\229\000\000\003\229\000\000\000\000\000\000\000\000\000\000\003\229\000\000\003\229\003\229\020\242\000\000\000\000\000\000\000\000\003\229\000\000\000\000\003\229\000\000\003\229\021\n\000\000\003\229\003\229\003\229\003\229\000\000\000\000\000\000\000\000\000\000\000\000\003\229\000\000\003\229\003\229\000\000\021j\003\229\003\229\021\162\020\146\003\229\003\229\000\000\000\000\003\229\021\"\003\229\000\000\000\000\020\170\020\194\000\000\000\000\003\229\003\229\021:\021R\012U\000\000\012U\000\000\012U\000\000\000\000\000\000\012U\000\000\000\000\012U\000\000\012U\000\000\000\000\012U\000\000\000\000\012U\012U\012U\000\000\012U\012U\012U\000\000\000\000\000\000\000\000\000\000\012U\012U\012U\012U\000\000\012U\000\000\012U\000\000\000\000\000\000\000\000\000\000\000\000\012U\012U\012U\012U\012U\012U\000\000\000\000\000\000\000\000\000\000\012U\000\000\012U\012U\000\000\000\000\000\000\000\000\000\000\012U\012U\012U\000\000\000\000\000\000\000\000\000\000\000\000\012U\000\000\012U\012U\012U\012U\012U\012U\012U\012U\012U\000\000\012U\000\000\000\000\000\000\000\000\000\000\012U\000\000\012U\012U\012U\000\000\000\000\000\000\000\000\012U\000\000\000\000\012U\000\000\012U\012U\000\000\012U\012U\012U\012U\000\000\000\000\000\000\000\000\000\000\000\000\012U\000\000\012U\012U\000\000\015\218\012U\012U\012U\012U\012U\012U\000\000\000\000\012U\012U\018\226\000\000\000\000\012U\012U\000\000\000\000\012U\012U\012U\012U\012Q\000\000\012Q\000\000\012Q\000\000\000\000\000\000\012Q\000\000\000\000\012Q\000\000\012Q\000\000\000\000\019\006\000\000\000\000\012Q\012Q\012Q\000\000\012Q\012Q\012Q\000\000\000\000\000\000\000\000\000\000\019r\019\210\019\234\019\138\000\000\020\002\000\000\012Q\000\000\000\000\000\000\000\000\000\000\000\000\012Q\019\162\012Q\020\026\0202\012Q\000\000\000\000\000\000\000\000\000\000\012Q\000\000\020J\012Q\000\000\000\000\000\000\000\000\000\000\012Q\012Q\000\242\000\000\000\000\000\000\000\000\000\000\000\000\012Q\000\000\012Q\012Q\019\030\019\186\020b\020z\020\218\012Q\012Q\000\000\012Q\000\000\000\000\000\000\000\000\000\000\012Q\000\000\012Q\012Q\020\242\000\000\000\000\000\000\000\000\012Q\000\000\000\000\012Q\000\000\012Q\021\n\000\000\012Q\012Q\012Q\012Q\000\000\000\000\000\000\000\000\000\000\000\000\012Q\000\000\012Q\012Q\000\000\012Q\012Q\012Q\012Q\020\146\012Q\012Q\000\000\000\000\012Q\021\"\012Q\000\000\000\000\020\170\020\194\000\000\000\000\012Q\012Q\021:\021R\r\237\000\000\r\237\000\000\r\237\000\000\000\000\000\000\r\237\000\000\000\000\r\237\000\000\r\237\000\000\000\000\r\237\000\000\000\000\r\237\r\237\r\237\000\000\r\237\r\237\r\237\000\000\000\000\000\000\000\000\000\000\r\237\r\237\r\237\r\237\000\000\r\237\000\000\r\237\000\000\000\000\000\000\000\000\000\000\000\000\r\237\r\237\r\237\r\237\r\237\r\237\000\000\000\000\000\000\000\000\000\000\r\237\000\000\r\237\r\237\000\000\000\000\000\000\000\000\000\000\r\237\r\237\r\237\000\000\000\000\000\000\000\000\000\000\000\000\r\237\000\000\r\237\r\237\r\237\r\237\r\237\r\237\r\237\r\237\r\237\000\000\r\237\000\000\000\000\000\000\000\000\000\000\r\237\000\000\r\237\r\237\r\237\000\000\000\000\000\000\000\000\r\237\000\000\000\000\r\237\000\000\r\237\r\237\000\000\r\237\r\237\r\237\r\237\000\000\000\000\000\000\000\000\000\000\000\000\r\237\000\000\r\237\r\237\000\000\015\218\r\237\r\237\r\237\r\237\r\237\r\237\000\000\000\000\r\237\r\237\018\226\000\000\000\000\r\237\r\237\000\000\000\000\r\237\r\237\r\237\r\237\002\205\000\000\002\205\000\000\002\205\000\000\000\000\000\000\002\205\000\000\000\000\002\205\000\000\002\205\000\000\000\000\002\205\000\000\000\000\002\205\002\205\002\205\000\000\002\205\002\205\002\205\000\000\000\000\000\000\000\000\000\000\002\205\002\205\002\205\002\205\000\000\002\205\000\000\002\205\000\000\000\000\000\000\000\000\000\000\000\000\002\205\002\205\002\205\002\205\002\205\002\205\000\000\000\000\000\000\000\000\000\000\002\205\000\000\002\205\002\205\000\000\000\000\000\000\000\000\000\000\002\205\002\205\002\205\000\000\000\000\000\000\000\000\000\000\000\000\002\205\000\000\002\205\002\205\002\205\002\205\002\205\002\205\002\205\002\205\002\205\000\000\002\205\000\000\000\000\000\000\000\000\000\000\002\205\000\000\002\205\002\205\002\205\000\000\000\000\000\000\000\000\002\205\000\000\000\000\002\205\000\000\002\205\002\205\000\000\002\205\002\205\027\254\002\205\000\000\000\000\000\000\000\000\000\000\000\000\002\205\000\000\002\205\002\205\000\000\015\218\002\205\002\205\002\205\002\205\002\205\002\205\000\000\000\000\002\205\002\205\018\226\000\000\000\000\002\205\002\205\000\000\000\000\002\205\002\205\002\205\002\205\002\197\000\000\002\197\000\000\002\197\000\000\000\000\000\000\002\197\000\000\000\000\002\197\000\000\002\197\000\000\000\000\002\197\000\000\000\000\002\197\002\197\002\197\000\000\002\197\002\197\002\197\000\000\000\000\000\000\000\000\000\000\002\197\002\197\002\197\002\197\000\000\002\197\000\000\002\197\000\000\000\000\000\000\000\000\000\000\000\000\002\197\002\197\002\197\002\197\002\197\002\197\000\000\000\000\000\000\000\000\000\000\002\197\000\000\002\197\002\197\000\000\000\000\000\000\000\000\000\000\002\197\002\197\002\197\000\000\000\000\000\000\000\000\000\000\000\000\002\197\000\000\002\197\002\197\002\197\002\197\002\197\002\197\002\197\002\197\002\197\000\000\002\197\000\000\000\000\000\000\000\000\000\000\002\197\000\000\002\197\002\197\002\197\000\000\000\000\000\000\000\000\002\197\000\000\000\000\002\197\000\000\002\197\002\197\000\000\002\197\002\197\002\197\002\197\000\000\000\000\000\000\000\000\000\000\000\000\002\197\000\000\002\197\002\197\000\000\015\218\002\197\002\197\002\197\002\197\002\197\002\197\000\000\000\000\002\197\002\197\018\226\000\000\000\000\002\197\002\197\000\000\000\000\002\197\002\197\002\197\002\197\002\193\000\000\002\193\000\000\002\193\000\000\000\000\000\000\002\193\000\000\000\000\002\193\000\000\002\193\000\000\000\000\019\006\000\000\000\000\002\193\002\193\002\193\000\000\002\193\002\193\002\193\000\000\000\000\000\000\000\000\000\000\019r\019\210\019\234\019\138\000\000\020\002\000\000\002\193\000\000\000\000\000\000\000\000\000\000\000\000\002\193\019\162\002\193\020\026\0202\002\193\000\000\000\000\000\000\000\000\000\000\002\193\000\000\020J\002\193\000\000\000\000\000\000\000\000\000\000\002\193\002\193\000\242\000\000\000\000\000\000\000\000\000\000\000\000\002\193\000\000\002\193\002\193\019\030\019\186\020b\020z\020\218\002\193\002\193\000\000\002\193\000\000\000\000\000\000\000\000\000\000\002\193\000\000\002\193\002\193\020\242\000\000\000\000\000\000\000\000\002\193\000\000\000\000\002\193\000\000\002\193\021\n\000\000\002\193\002\193\002\193\002\193\000\000\000\000\000\000\000\000\000\000\000\000\002\193\000\000\002\193\002\193\000\000\021j\002\193\002\193\021\162\020\146\002\193\002\193\000\000\000\000\002\193\021\"\002\193\000\000\000\000\020\170\020\194\000\000\000\000\002\193\002\193\021:\021R\002\201\000\000\002\201\000\000\002\201\000\000\000\000\000\000\002\201\000\000\000\000\002\201\000\000\002\201\000\000\000\000\019\006\000\000\000\000\002\201\002\201\002\201\000\000\002\201\002\201\002\201\000\000\000\000\000\000\000\000\000\000\019r\019\210\019\234\019\138\000\000\020\002\000\000\002\201\000\000\000\000\000\000\000\000\000\000\000\000\002\201\019\162\002\201\020\026\0202\002\201\000\000\000\000\000\000\000\000\000\000\002\201\000\000\020J\002\201\000\000\000\000\000\000\000\000\000\000\002\201\002\201\000\242\000\000\000\000\000\000\000\000\000\000\000\000\002\201\000\000\002\201\002\201\019\030\019\186\020b\020z\020\218\002\201\002\201\000\000\002\201\000\000\000\000\000\000\000\000\000\000\002\201\000\000\002\201\002\201\020\242\000\000\000\000\000\000\000\000\002\201\000\000\000\000\002\201\000\000\002\201\021\n\000\000\002\201\002\201\028\026\002\201\000\000\000\000\000\000\000\000\000\000\000\000\002\201\000\000\002\201\002\201\000\000\021j\002\201\002\201\021\162\020\146\002\201\002\201\000\000\000\000\002\201\021\"\002\201\000\000\000\000\020\170\020\194\000\000\000\000\002\201\002\201\021:\021R\002\189\000\000\002\189\000\000\002\189\000\000\000\000\000\000\002\189\000\000\000\000\002\189\000\000\002\189\000\000\000\000\002\189\000\000\000\000\002\189\002\189\002\189\000\000\002\189\002\189\002\189\000\000\000\000\000\000\000\000\000\000\002\189\002\189\002\189\002\189\000\000\002\189\000\000\002\189\000\000\000\000\000\000\000\000\000\000\000\000\002\189\002\189\002\189\002\189\002\189\002\189\000\000\000\000\000\000\000\000\000\000\002\189\000\000\002\189\002\189\000\000\000\000\000\000\000\000\000\000\002\189\002\189\002\189\000\000\000\000\000\000\000\000\000\000\000\000\002\189\000\000\002\189\002\189\002\189\002\189\002\189\002\189\002\189\002\189\002\189\000\000\002\189\000\000\000\000\000\000\000\000\000\000\002\189\000\000\002\189\002\189\002\189\000\000\000\000\000\000\000\000\002\189\000\000\000\000\002\189\000\000\002\189\002\189\000\000\002\189\002\189\002\189\002\189\000\000\000\000\000\000\000\000\000\000\000\000\002\189\000\000\002\189\002\189\000\000\015\218\002\189\002\189\002\189\002\189\002\189\002\189\000\000\000\000\002\189\002\189\018\226\000\000\000\000\002\189\002\189\000\000\000\000\002\189\002\189\002\189\002\189\002\185\000\000\002\185\000\000\002\185\000\000\000\000\000\000\002\185\000\000\000\000\002\185\000\000\002\185\000\000\000\000\019\006\000\000\000\000\002\185\002\185\002\185\000\000\002\185\002\185\002\185\000\000\000\000\000\000\000\000\000\000\019r\019\210\019\234\019\138\000\000\020\002\000\000\002\185\000\000\000\000\000\000\000\000\000\000\000\000\002\185\019\162\002\185\020\026\0202\002\185\000\000\000\000\000\000\000\000\000\000\002\185\000\000\020J\002\185\000\000\000\000\000\000\000\000\000\000\002\185\002\185\000\242\000\000\000\000\000\000\000\000\000\000\000\000\002\185\000\000\002\185\002\185\019\030\019\186\020b\020z\020\218\002\185\002\185\000\000\002\185\000\000\000\000\000\000\000\000\000\000\002\185\000\000\002\185\002\185\020\242\000\000\000\000\000\000\000\000\002\185\000\000\000\000\002\185\000\000\002\185\021\n\000\000\002\185\002\185\002\185\002\185\000\000\000\000\000\000\000\000\000\000\000\000\002\185\000\000\002\185\002\185\000\000\021j\002\185\002\185\021\162\020\146\002\185\002\185\000\000\000\000\002\185\021\"\002\185\000\000\000\000\020\170\020\194\000\000\000\000\002\185\002\185\021:\021R\012i\000\000\012i\000\000\012i\000\000\000\000\000\000\012i\000\000\000\000\012i\000\000\012i\000\000\000\000\012i\000\000\000\000\012i\012i\012i\000\000\012i\012i\012i\000\000\000\000\000\000\000\000\000\000\012i\012i\012i\012i\000\000\012i\000\000\012i\000\000\000\000\000\000\000\000\000\000\000\000\012i\012i\012i\012i\012i\012i\000\000\000\000\000\000\000\000\000\000\012i\000\000\012i\012i\000\000\000\000\000\000\000\000\000\000\012i\012i\012i\000\000\000\000\000\000\000\000\000\000\000\000\012i\000\000\012i\012i\012i\012i\012i\012i\012i\012i\012i\000\000\012i\000\000\000\000\000\000\000\000\000\000\012i\000\000\012i\012i\012i\000\000\000\000\000\000\000\000\012i\000\000\000\000\012i\000\000\012i\012i\000\000\012i\012i\012i\012i\000\000\000\000\000\000\000\000\000\000\000\000\012i\000\000\012i\012i\000\000\015\218\012i\012i\012i\012i\012i\012i\000\000\000\000\012i\012i\018\226\000\000\000\000\012i\012i\000\000\000\000\012i\012i\012i\012i\012e\000\000\012e\000\000\012e\000\000\000\000\000\000\012e\000\000\000\000\012e\000\000\012e\000\000\000\000\019\006\000\000\000\000\012e\012e\012e\000\000\012e\012e\012e\000\000\000\000\000\000\000\000\000\000\019r\019\210\019\234\019\138\000\000\020\002\000\000\012e\000\000\000\000\000\000\000\000\000\000\000\000\012e\019\162\012e\020\026\0202\012e\000\000\000\000\000\000\000\000\000\000\012e\000\000\020J\012e\000\000\000\000\000\000\000\000\000\000\012e\012e\000\242\000\000\000\000\000\000\000\000\000\000\000\000\012e\000\000\012e\012e\019\030\019\186\020b\020z\020\218\012e\012e\000\000\012e\000\000\000\000\000\000\000\000\000\000\012e\000\000\012e\012e\020\242\000\000\000\000\000\000\000\000\012e\000\000\000\000\012e\000\000\012e\021\n\000\000\012e\012e\012e\012e\000\000\000\000\000\000\000\000\000\000\000\000\012e\000\000\012e\012e\000\000\012e\012e\012e\012e\020\146\012e\012e\000\000\000\000\012e\021\"\012e\000\000\000\000\020\170\020\194\000\000\000\000\012e\012e\021:\021R\003\225\000\000\003\225\000\000\003\225\000\000\000\000\000\000\003\225\000\000\000\000\003\225\000\000\003\225\000\000\000\000\003\225\000\000\000\000\003\225\003\225\003\225\000\000\003\225\003\225\003\225\000\000\000\000\000\000\000\000\000\000\003\225\003\225\003\225\003\225\000\000\003\225\000\000\003\225\000\000\000\000\000\000\000\000\000\000\000\000\003\225\003\225\003\225\003\225\003\225\003\225\000\000\000\000\000\000\000\000\000\000\003\225\000\000\003\225\003\225\000\000\000\000\000\000\000\000\000\000\003\225\003\225\003\225\000\000\000\000\000\000\000\000\000\000\000\000\003\225\000\000\003\225\003\225\003\225\003\225\003\225\003\225\003\225\003\225\003\225\000\000\003\225\000\000\000\000\000\000\000\000\000\000\003\225\000\000\003\225\003\225\003\225\000\000\000\000\000\000\000\000\003\225\000\000\000\000\003\225\000\000\003\225\003\225\000\000\003\225\003\225\003\225\003\225\000\000\000\000\000\000\000\000\000\000\000\000\003\225\000\000\003\225\003\225\000\000\015\218\003\225\003\225\003\225\003\225\003\225\003\225\000\000\000\000\003\225\003\225\018\226\000\000\000\000\003\225\003\225\000\000\000\000\003\225\003\225\003\225\003\225\003\221\000\000\003\221\000\000\003\221\000\000\000\000\000\000\003\221\000\000\000\000\003\221\000\000\003\221\000\000\000\000\019\006\000\000\000\000\003\221\003\221\003\221\000\000\003\221\003\221\003\221\000\000\000\000\000\000\000\000\000\000\019r\019\210\019\234\019\138\000\000\020\002\000\000\003\221\000\000\000\000\000\000\000\000\000\000\000\000\003\221\019\162\003\221\020\026\0202\003\221\000\000\000\000\000\000\000\000\000\000\003\221\000\000\020J\003\221\000\000\000\000\000\000\000\000\000\000\003\221\003\221\000\242\000\000\000\000\000\000\000\000\000\000\000\000\003\221\000\000\003\221\003\221\019\030\019\186\020b\020z\020\218\003\221\003\221\000\000\003\221\000\000\000\000\000\000\000\000\000\000\003\221\000\000\003\221\003\221\020\242\000\000\000\000\000\000\000\000\003\221\000\000\000\000\003\221\000\000\003\221\021\n\000\000\003\221\003\221\003\221\003\221\000\000\000\000\000\000\000\000\000\000\000\000\003\221\000\000\003\221\003\221\000\000\021j\003\221\003\221\021\162\020\146\003\221\003\221\000\000\000\000\003\221\021\"\003\221\000\000\000\000\020\170\020\194\000\000\000\000\003\221\003\221\021:\021R\002\169\000\000\002\169\000\000\002\169\000\000\000\000\000\000\002\169\000\000\000\000\002\169\000\000\002\169\000\000\000\000\002\169\000\000\000\000\002\169\002\169\002\169\000\000\002\169\002\169\002\169\000\000\000\000\000\000\000\000\000\000\002\169\002\169\002\169\002\169\000\000\002\169\000\000\002\169\000\000\000\000\000\000\000\000\000\000\000\000\002\169\002\169\002\169\002\169\002\169\002\169\000\000\000\000\000\000\000\000\000\000\002\169\000\000\002\169\002\169\000\000\000\000\000\000\000\000\000\000\002\169\002\169\002\169\000\000\000\000\000\000\000\000\000\000\000\000\002\169\000\000\002\169\002\169\002\169\002\169\002\169\002\169\002\169\002\169\002\169\000\000\002\169\000\000\000\000\000\000\000\000\000\000\002\169\000\000\002\169\002\169\002\169\000\000\000\000\000\000\000\000\002\169\000\000\000\000\002\169\000\000\002\169\002\169\000\000\002\169\002\169\002\169\002\169\000\000\000\000\000\000\000\000\000\000\000\000\002\169\000\000\002\169\002\169\000\000\002\169\002\169\002\169\002\169\002\169\002\169\002\169\000\000\000\000\002\169\002\169\018\226\000\000\000\000\002\169\002\169\000\000\000\000\002\169\002\169\002\169\002\169\002\181\000\000\002\181\000\000\002\181\000\000\000\000\000\000\002\181\000\000\000\000\002\181\000\000\002\181\000\000\000\000\002\181\000\000\000\000\002\181\002\181\002\181\000\000\002\181\002\181\002\181\000\000\000\000\000\000\000\000\000\000\002\181\002\181\002\181\002\181\000\000\002\181\000\000\002\181\000\000\000\000\000\000\000\000\000\000\000\000\002\181\002\181\002\181\002\181\002\181\002\181\000\000\000\000\000\000\000\000\000\000\002\181\000\000\002\181\002\181\000\000\000\000\000\000\000\000\000\000\002\181\002\181\002\181\000\000\000\000\000\000\000\000\000\000\000\000\002\181\000\000\002\181\002\181\002\181\002\181\002\181\002\181\002\181\002\181\002\181\000\000\002\181\000\000\000\000\000\000\000\000\000\000\002\181\000\000\002\181\002\181\002\181\000\000\000\000\000\000\000\000\002\181\000\000\000\000\002\181\000\000\002\181\002\181\000\000\002\181\002\181\002\181\002\181\000\000\000\000\000\000\000\000\000\000\000\000\002\181\000\000\002\181\002\181\000\000\015\218\002\181\002\181\002\181\002\181\002\181\002\181\000\000\000\000\002\181\002\181\018\226\000\000\000\000\002\181\002\181\000\000\000\000\002\181\002\181\002\181\002\181\002\177\000\000\002\177\000\000\002\177\000\000\000\000\000\000\002\177\000\000\000\000\002\177\000\000\002\177\000\000\000\000\019\006\000\000\000\000\002\177\002\177\002\177\000\000\002\177\002\177\002\177\000\000\000\000\000\000\000\000\000\000\019r\019\210\019\234\019\138\000\000\020\002\000\000\002\177\000\000\000\000\000\000\000\000\000\000\000\000\002\177\019\162\002\177\020\026\0202\002\177\000\000\000\000\000\000\000\000\000\000\002\177\000\000\020J\002\177\000\000\000\000\000\000\000\000\000\000\002\177\002\177\000\242\000\000\000\000\000\000\000\000\000\000\000\000\002\177\000\000\002\177\002\177\019\030\019\186\020b\020z\020\218\002\177\002\177\000\000\002\177\000\000\000\000\000\000\000\000\000\000\002\177\000\000\002\177\002\177\020\242\000\000\000\000\000\000\000\000\002\177\000\000\000\000\002\177\000\000\002\177\021\n\000\000\002\177\002\177\002\177\002\177\000\000\000\000\000\000\000\000\000\000\000\000\002\177\000\000\002\177\002\177\000\000\021j\002\177\002\177\021\162\020\146\002\177\002\177\000\000\000\000\002\177\021\"\002\177\000\000\000\000\020\170\020\194\000\000\000\000\002\177\002\177\021:\021R\003\001\000\000\003\001\000\000\003\001\000\000\000\000\000\000\003\001\000\000\000\000\003\001\000\000\003\001\000\000\000\000\003\001\000\000\000\000\003\001\003\001\003\001\000\000\003\001\003\001\003\001\000\000\000\000\000\000\000\000\000\000\003\001\003\001\003\001\003\001\000\000\003\001\000\000\003\001\000\000\000\000\000\000\000\000\000\000\000\000\003\001\003\001\003\001\003\001\003\001\003\001\000\000\000\000\000\000\000\000\000\000\003\001\000\000\003\001\003\001\000\000\000\000\000\000\000\000\000\000\003\001\003\001\003\001\000\000\000\000\000\000\000\000\000\000\000\000\003\001\000\000\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\000\000\003\001\000\000\000\000\000\000\000\000\000\000\003\001\000\000\003\001\003\001\003\001\000\000\000\000\000\000\000\000\003\001\000\000\000\000\003\001\000\000\003\001\003\001\000\000\003\001\003\001\003\001\003\001\000\000\000\000\000\000\000\000\000\000\000\000\003\001\000\000\003\001\003\001\000\000\003\001\003\001\003\001\003\001\003\001\003\001\003\001\000\000\000\000\003\001\003\001\018\226\000\000\000\000\003\001\003\001\000\000\000\000\003\001\003\001\003\001\003\001\012\145\000\000\012\145\000\000\012\145\000\000\000\000\000\000\012\145\000\000\000\000\012\145\000\000\012\145\000\000\000\000\012\145\000\000\000\000\012\145\012\145\012\145\000\000\012\145\012\145\012\145\000\000\000\000\000\000\000\000\000\000\012\145\012\145\012\145\012\145\000\000\012\145\000\000\012\145\000\000\000\000\000\000\000\000\000\000\000\000\012\145\012\145\012\145\012\145\012\145\012\145\000\000\000\000\000\000\000\000\000\000\012\145\000\000\012\145\012\145\000\000\000\000\000\000\000\000\000\000\012\145\012\145\012\145\000\000\000\000\000\000\000\000\000\000\000\000\012\145\000\000\012\145\012\145\012\145\012\145\012\145\012\145\012\145\012\145\012\145\000\000\012\145\000\000\000\000\000\000\000\000\000\000\012\145\000\000\012\145\012\145\012\145\000\000\000\000\000\000\000\000\012\145\000\000\000\000\012\145\000\000\012\145\012\145\000\000\012\145\012\145\012\145\012\145\000\000\000\000\000\000\000\000\000\000\000\000\012\145\000\000\012\145\012\145\000\000\015\218\012\145\012\145\012\145\012\145\012\145\012\145\000\000\000\000\012\145\012\145\018\226\000\000\000\000\012\145\012\145\000\000\000\000\012\145\012\145\012\145\012\145\012\141\000\000\012\141\000\000\012\141\000\000\000\000\000\000\012\141\000\000\000\000\012\141\000\000\012\141\000\000\000\000\019\006\000\000\000\000\012\141\012\141\012\141\000\000\012\141\012\141\012\141\000\000\000\000\000\000\000\000\000\000\019r\019\210\019\234\019\138\000\000\020\002\000\000\012\141\000\000\000\000\000\000\000\000\000\000\000\000\012\141\019\162\012\141\020\026\0202\012\141\000\000\000\000\000\000\000\000\000\000\012\141\000\000\020J\012\141\000\000\000\000\000\000\000\000\000\000\012\141\012\141\000\242\000\000\000\000\000\000\000\000\000\000\000\000\012\141\000\000\012\141\012\141\019\030\019\186\020b\020z\020\218\012\141\012\141\000\000\012\141\000\000\000\000\000\000\000\000\000\000\012\141\000\000\012\141\012\141\020\242\000\000\000\000\000\000\000\000\012\141\000\000\000\000\012\141\000\000\012\141\021\n\000\000\012\141\012\141\012\141\012\141\000\000\000\000\000\000\000\000\000\000\000\000\012\141\000\000\012\141\012\141\000\000\012\141\012\141\012\141\012\141\020\146\012\141\012\141\000\000\000\000\012\141\021\"\012\141\000\000\000\000\020\170\020\194\000\000\000\000\012\141\012\141\021:\021R\012}\000\000\012}\000\000\012}\000\000\000\000\000\000\012}\000\000\000\000\012}\000\000\012}\000\000\000\000\012}\000\000\000\000\012}\012}\012}\000\000\012}\012}\012}\000\000\000\000\000\000\000\000\000\000\012}\012}\012}\012}\000\000\012}\000\000\012}\000\000\000\000\000\000\000\000\000\000\000\000\012}\012}\012}\012}\012}\012}\000\000\000\000\000\000\000\000\000\000\012}\000\000\012}\012}\000\000\000\000\000\000\000\000\000\000\012}\012}\012}\000\000\000\000\000\000\000\000\000\000\000\000\012}\000\000\012}\012}\012}\012}\012}\012}\012}\012}\012}\000\000\012}\000\000\000\000\000\000\000\000\000\000\012}\000\000\012}\012}\012}\000\000\000\000\000\000\000\000\012}\000\000\000\000\012}\000\000\012}\012}\000\000\012}\012}\012}\012}\000\000\000\000\000\000\000\000\000\000\000\000\012}\000\000\012}\012}\000\000\015\218\012}\012}\012}\012}\012}\012}\000\000\000\000\012}\012}\018\226\000\000\000\000\012}\012}\000\000\000\000\012}\012}\012}\012}\012y\000\000\012y\000\000\012y\000\000\000\000\000\000\012y\000\000\000\000\012y\000\000\012y\000\000\000\000\019\006\000\000\000\000\012y\012y\012y\000\000\012y\012y\012y\000\000\000\000\000\000\000\000\000\000\019r\019\210\019\234\019\138\000\000\020\002\000\000\012y\000\000\000\000\000\000\000\000\000\000\000\000\012y\019\162\012y\020\026\0202\012y\000\000\000\000\000\000\000\000\000\000\012y\000\000\020J\012y\000\000\000\000\000\000\000\000\000\000\012y\012y\000\242\000\000\000\000\000\000\000\000\000\000\000\000\012y\000\000\012y\012y\019\030\019\186\020b\020z\020\218\012y\012y\000\000\012y\000\000\000\000\000\000\000\000\000\000\012y\000\000\012y\012y\020\242\000\000\000\000\000\000\000\000\012y\000\000\000\000\012y\000\000\012y\021\n\000\000\012y\012y\012y\012y\000\000\000\000\000\000\000\000\000\000\000\000\012y\000\000\012y\012y\000\000\012y\012y\012y\012y\020\146\012y\012y\000\000\000\000\012y\021\"\012y\000\000\000\000\020\170\020\194\000\000\000\000\012y\012y\021:\021R\002\173\000\000\002\173\000\000\002\173\000\000\000\000\000\000\002\173\000\000\000\000\002\173\000\000\002\173\000\000\000\000\002\173\000\000\000\000\002\173\002\173\002\173\000\000\002\173\002\173\002\173\000\000\000\000\000\000\000\000\000\000\002\173\002\173\002\173\002\173\000\000\002\173\000\000\002\173\000\000\000\000\000\000\000\000 \234\000\000\002\173\002\173\002\173\002\173\002\173\002\173\000\000\000\000\000\000\000\000\000\000\002\173\000\000\002\173\002\173\000\000\000\000\000\000\000\000\011\165\002\173\002\173\002\173\000\000\000\000\000\000\000\000\000\000\000\000\002\173\000\000\002\173\002\173\002\173\002\173\002\173\002\173\002\173\002\173\002\173\000\000\002\173\000\000\000\000\000\000\000\000\000\000\002\173\019\229\002\173\002\173\002\173\000\000\000\000\000\000\000\000\002\173\000\000\000\000\002\173\000\000\002\173\002\173\000\242\002\173\002\173\002\173\002\173\000\000\019\229\000\000\000\000\002\170\000\000\002\173\002\174\002\173\002\173\000\000\002\173\002\173\002\173\002\173\002\173\002\173\002\173\000\000\000\000\002\173\002\173\018\226\002\186\000\000\002\173\002\173\000\000\000\000\002\173\002\173\002\173\002\173\000\006\000\000\000\000\000\250\003\146\003\150\003\154\t*\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\000\000\tV\011\158#:\002\198\007E\011j\tZ\001\234\000\000 \226\000\000\bn\011\218\t^\tb\000\000\tf\000\000\011\226 N\tr\000\000\br\tZ\tv\000\000 v\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000 \218\003\138\000\000\000\000\t\190\r\178 \242\000\000#\174\r\182\r\186\r\198\r\210\r\234\003\154 \250\nJ \218\000\000\002\202\000\000\000\000\000\000 \242!\n\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\001\234$R$b\000\000\000\000\000\000\000\000\014\006\014\030\017\226\n\134\n\138!\018\017\246!R#.\000\000\007E\007E\000\000\000\000\r\226\000\000\r\230\000\000\000\000$n\000\000\t\130\000\000$r\000\000\000\000\000\000\003\138\007]\000\000!\142!\154\n\142\r\238\000\000$\162\000\000\015\250\007\166\000\006%\154\017\250\000\250\003\146\003\150\003\154\t*\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\000\000\007e\000\000\000\000\000\000\000\000\000\000\tZ\001\234\000\000\000\000$\178\bn\000\000\t^\tb\000\000\tf\000\000\000\000 N\tr\000\000\br\000\000\tv\000\000 v\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000 \218\003\138\000\000\000\000\t\190\r\178 \242\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000 \250\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000!\n\000\000\r\250/:\nb\nf\000\000\r\206\r\222/Z\000\000\000\000\000\000\000\000\000\000\000\000\014\006\014\030\017\226\n\134\n\138!\018\017\246!R\000\000\000\000/{\0282\000\000\000\000\r\226\000\000\r\230\000\000\000\000\000\000\000\000\030J\000\000\000\000\003j\000\000\000\000\000\000\016~\000\000\000\000!\154\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\006\000\000\017\250\000\250\003\146\003\150\003\154\t*\003\158\003j\029z\003\170\000\000\000\000\bf\000\000\bj\000\000/\170\000\000\000\000\000\000\000\000\000\000\tZ\001\234\000\000\030N\016~\bn\000\000\t^\tb\000\000\tf\000\000\016\226 N\tr\000\000\br\000\000\tv\030Z v)b\000\000\t\162\t\166\029\166\t\170\t\182\t\194\t\198\t\206\r\146\000\242\000\000 \218\003\138\000\000\000\000\t\190\r\178 \242\000\000)n\r\182\r\186\r\198\r\210\r\234\000\000 \250\nJ\016\226\000\000\000\000\n\138\000\000\000\000\000\000!\n\000\000\r\250/:\nb\nf\000\000\r\206\r\222/Z)z\000\000\000\000\000\242\000\000\000\000\014\006\014\030\017\226\n\134\n\138!\018\017\246!R\000\000\000\000\007m\000\000)\014\000\000\r\226\000\000\r\230\029~\001\202\b\130\003\154\014\190\000\000\003j\000\000\b\134\000\000\000\000\bf\001\n\004F!\154\n\142\r\238\003v\000\000\000\000\015\250\007\166\001\234\000\000\017\250\000\000\001\014\001\018\001\022\b\234\001\030\000\000\001\"\000\000\000\000\001\206\000\000\000\000\000\000\029\170\000\000\b\238\001&\000\000\001*\011\138\000\000\000\000\014:\001\210\001\190\0012\004F\000\000\0016\000\000\003\138\015\165\000\000\n\n\n\014\000\000\000\000\000\000\n\018\000\000\n\026\n>\nn\019\229\019\205\nJ\000\000\000\000\001:\001>\001B\001F\001J\000\000\000\000\000\000\nN\nb\nf\001N\nj\nr\n~\000\000\019\229\000\000\001R\002\170\000\000\000\000\002\174\015\165\n\134\n\138\000\000\000\000\011\002\001V\000\000\002\182\000\000\000\000\002a\002a\001Z\000\000\002\186\000\000\015\165\002\194\002a\019\205\015\165\022z\000\000\000\000\000\000\001\150\011\142\015\165\000\000\n\142\002a\004F\001\154\015\165\001\158\007\166\001\162\001\166\000\n\000\000\001\170\000\000\001\174\001\178\000\185\002\198\003\150\003\154\000\185\020!\003j\000\000\018R\000\000\000\000\bf\002a\000\000\000\000\000\185\000\000\000\185\000\000\000\185\002a\000\185\001\234\000\000\018j\b\021\bn\002a\000\000\b\021\000\000\000\000\000\000\018r\000\185\000\000\000\000\br\000\000\tv\000\000\000\185\000\000\000\000\000\000\000\000\000\185\000\000\t\182\000\000\001\190\000\000\000\185\000\000\000\000\000\185\003\138\002\202\002a\t\190\r\178\000\185\000\185\000\185\r\182\r\186\r\198\000\000\023\178\000\000\000\185\nJ\000\185\000\185\0071\000\000\000\000\000\000\000\000\000\185\000\000\000\000\000\185\nb\nf\000\000\r\206\r\222\000\185\000\000\000\000\020!\000\000\000\000\020!\0071\r\154\020!\n\134\n\138\000\185\000\000\000\185\000\000\000\000\000\185\000\185\000\000\011e\r\226\000\000\r\230\b\021\000\000\000\000\000\000\000\000\000\000\000\185\020!\0071\020!\000\000\020!\000\000\000\185\000\185\n\142\r\238\0071\000\000\b\021\015\250\007\166\b\021\0071\tN\000\185\000\209\000\185\003\150\003\154\000\209\000\000\003j\000\000\018R\0071\011e\bf\000\000\000\000\000\000\000\209\000\000\000\209\000\000\000\209\000\000\000\209\001\234\000\000\018j\000\000\bn\011e\000\000\000\000\000\000\011e\017\214\018r\000\209\000\000\000\000\br\011e\tv\000\000\000\209\0071\000\000\011e\000\000\000\209\000\000\t\182\000\000\001\190\000\000\000\209\000\000\0071\000\209\003\138\000\000\000\000\t\190\r\178\000\209\000\209\000\209\r\182\r\186\r\198\000\000\023\178\000\000\000\209\nJ\000\209\000\209\000\000\r\170\000\000\t\030\003\154\000\209\000\000\000\000\000\209\nb\nf\t\"\r\206\r\222\000\209\000\000\000\000\000\000\017~\000\000\000\000\000\000\000\000\001\234\n\134\n\138\000\209\000\000\000\209\002a\000\000\000\209\000\209\000\000\000\000\r\226\000\000\r\230\000\000\000\000\002a\000\000\000\000\000\000\000\209\000\000\000\000\000\000\002a\r\166\000\000\000\209\000\209\n\142\r\238\011\154\000\n\003\138\015\250\007\166\b\130\003\154\011z\000\209\003j\000\209\b\134\002a\000\000\bf\001\n\000\000\000\000\000\000\002a\003v\002a\000\000\000\000\000\000\001\234\000\000\002a\000\000\001\014\001\018\001\022\b\234\001\030\002a\001\"\000\000\000\000\000\000\000\000\016:\000\000\000\000\000\000\b\238\001&\000\242\001*\011\138\000\000\000\000\b\230\000\000\001\190\0012\000\000\000\000\0016\000\000\003\138\000\000\000\000\n\n\n\014\000\000\002a\000\000\n\018\000\000\n\026\n>\nn\000\000\020!\nJ\000\000\000\000\001:\001>\001B\001F\001J\000\000\000\000\000\000\nN\nb\nf\001N\nj\nr\n~\000\000\b\025\000\000\001R\000\000\b\025\000\000\000\000\000\000\n\134\n\138\011\158\000\000\011\002\001V\011j\014B\000\000\000\000\000\000\000\000\001Z\011\218\000\000\000\000\000\000\004F\000\000\011\226\000\000\000\000\001\230\000\000\000\000\001\150\011\142\000\000\000\000\n\142\000\000\000\000\001\154\000\000\001\158\007\166\001\162\001\166\000\000\000\000\001\170\001\234\001\174\001\178\006=\000\000\b\130\003\154\006=\000\000\003j\000\000\r2\000\000\000\000\bf!\214\000\000\020!\006=\000\000\020!\000\000\006=\020!\006=\001\234\000\000\r~\003\234\000\000\"N\000\000\b\190\000\000\003\138\000\000\014*\006=\b\025\000\000\000\000\000\000\"f\000\000\006=\020!\000\000\020!\b\210\020!\000\000\014\186\000\000\001\190\000\000\006=\000\000\b\025\006=\003\138\b\025\000\000\n\n\n\014\006=\006=\015\161\n\018\000\000\n\026\000\000\015J\000\000\006=\nJ\000\000\011\197\000\000\000\000\011\197\000\000\000\000\006=\006=\000\000\nN\nb\nf\000\000\nj\nr\n~\000\000\000\000\000\000\000\000\000\000\000\000#\186\000\000\000\000\n\134\n\138\006=\030J\006=\021\210\003j\006=\006=\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\011\197\000\000\015\161\000\000\003\182)^\015\161\022\006\006=\n\142\000\000\000\000\000\000\015\161\000\000\007\166\011\197\004F\000\006\015\161\000\000\006=\003\146\003\150\003\154\000\000\003\158\003j\030N\003\170\000\000\000\000\bf\000\000\bj\000\000\000\000\000\000\r\185\000\000\r\185\r\185\000\000\001\234\030Z\000\000)\130\bn\000\000\t^\tb\011\197\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166)\142\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\n\138\t\190\r\178\000\000\011\197\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ)\154\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000)\014\000\000\000\000\000\000\000\000\018\"\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\000\r\230\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\185\000\000\000\000\000\000\000\000\000\000\n\142\r\238\r\185\000\000\000\000\015\250\007\166\000\006\000\000\017\250\020-\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\000\000\000\000\000\000\r\177\000\000\r\177\r\177\020-\001\234\000\000\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\020-\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\020-\003\138\000\000\000\000\t\190\r\178\020-\020-\000\242\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\020-\020-\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\002a\002a\000\000\018\"\014\030\017\226\n\134\n\138\002a\017\246\000\000\000\000\000\000\000\000\020-\000\000\000\000\r\226\000\000\r\230\002a\002a\002a\000\000\000\000\000\000\020-\000\000\000\n\r\177\000\n\000\000\000\000\000\000\000\000\n\142\r\238\r\177\000\000\000\000\015\250\007\166\002a\002a\017\250\002a\002a\002a\002a\000\n\002a\002a\000\000\002a\002a\002a\002a\002a\002a\000\000\000\000\002a\002a\002a\002a\000\000\000\000\002a\000\000\002a\000\n\002a\002a\002a\002a\000\n\002a\000\000\000\000\r\150\002a\000\000\002a\000\000\002a\002a\029\214\000\000\002a\002a\002a\000\000\002a\002a\002a\002a\002a\002a\000\000\002a\002a\002a\000\000\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\000\000\000\000\002a\000\000\002a\000\000\000\000\000\000\002a\002a\002a\000\000\002a\002a\002a\002a R\002a\002a\002a\000\000\000\000\000\000\000\000\002a\002a\002a\002a\002a\002a\002a\000\000\002a\030>\000\000\000\000\000\000\002a\000\000\000\000\002a\000\006\002a\000\000\0071\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\002a\000\000\bf\000\000\bj\002a\002a\000\000\000\000\000\000\002a\002a\0071\001\234\002a\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\0071\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\0071\003\138\000\000\000\000\t\190\r\178\0071\tN\000\242\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\0071\0071\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\031\182\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\0071\000\000\000\000\r\226\000\000\r\230\000\000\000\000\000\000\000\000\000\000\000\000\0071\000\000\000\000\031\206\000\000\000\000\000\000\000\000\000\000\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\006\000\000\017\250\004\129\003\146\003\150\003\154\004\129\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\000\000\004\129\000\000\000\000\000\000\004\129\000\000\004\129\001\234\000\000\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\004\129\tr\030b\br\000\000\tv\000\000\004\129\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\004\129\003\138\000\000\000\000\t\190\r\178\004\129\004\129\004\129\r\182\r\186\r\198\r\210\r\234\000\000\004\129\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\129\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\029\"\014\030\017\226\n\134\n\138\004\129\017\246\004\129\000\000\000\000\004\129\004\129\000\000\006\161\r\226\000\000\r\230\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\030\234\004\129\n\142\r\238\029:\000\000\000\000\015\250\007\166\000\006\000\000\017\250\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\000\000\000\000\000\000\000\242\000\000\n\022\000\000\000\000\001\234\000\000\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\006\161\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\011\158\000\000\000\000\000\000\011j\014v\000\000\r\250\000\000\nb\nf\011\218\r\206\r\222\000\000\004F\000\000\011\226\000\000\000\000\000\000\028\246\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000A\r\230\000\000\000\000\000A\000A\000A\000\000\000A\000A\000\000\000A\000\000\000\000\000A\000\000\000A\n\142\r\238\000\000\n\021\000\000\015\250\007\166\000\000\000A\017\250\000\000\000\000\000A\000\000\000A\000A\000\000\000A\000\000\000\000\000\000\000A\000\000\000A\000\000\000A\000\000\000\000\000\000\000\000\000A\000A\000\000\000A\000A\000A\000A\000A\000A\000\000\000\000\000\000\000A\000\000\000\000\000A\000A\000\000\000\000\000\000\000A\000A\000A\000A\000A\000\000\000\000\000A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000A\000\000\000A\000A\000\000\000A\000A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000A\000A\000A\000A\000A\000\000\000A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000A\000=\000A\000\000\000\000\000=\000=\000=\000\000\000=\000=\000\000\000=\000\000\000\000\000=\000\000\000=\000A\000A\000\000\n\017\000\000\000A\000A\000\000\000=\000A\000\000\000\000\000=\000\000\000=\000=\000\000\000=\000\000\000\000\000\000\000=\000\000\000=\000\000\000=\000\000\000\000\000\000\000\000\000=\000=\000\000\000=\000=\000=\000=\000=\000=\000\000\000\000\000\000\000=\000\000\000\000\000=\000=\000\000\000\000\000\000\000=\000=\000=\000=\000=\000\000\000\000\000=\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000=\000\000\000=\000=\000\000\000=\000=\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000=\000=\000=\000=\000=\000\000\000=\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000=\019Q\000=\000\000\000\000\019Q\019Q\019Q\000\000\019Q\019Q\000\000\019Q\000\000\000\000\019Q\000\000\019Q\000=\000=\000\000\n!\000\000\000=\000=\000\000\019Q\000=\000\000\000\000\019Q\000\000\019Q\019Q\000\000\019Q\000\000\000\000\000\000\019Q\000\000\019Q\000\000\019Q\000\000\000\000\000\000\000\000\019Q\019Q\000\000\019Q\019Q\019Q\019Q\019Q\019Q\000\000\000\000\000\000\019Q\000\000\000\000\019Q\019Q\000\000\000\000\000\000\019Q\019Q\019Q\019Q\019Q\000\000\000\000\019Q\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019Q\000\000\019Q\019Q\000\000\019Q\019Q\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019Q\019Q\019Q\019Q\019Q\000\000\019Q\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019Q\019M\019Q\000\000\000\000\019M\019M\019M\000\000\019M\019M\000\000\019M\000\000\000\000\019M\000\000\019M\019Q\019Q\000\000\n\029\000\000\019Q\019Q\000\000\019M\019Q\000\000\000\000\019M\000\000\019M\019M\000\000\019M\000\000\000\000\000\000\019M\000\000\019M\000\000\019M\000\000\000\000\000\000\000\000\019M\019M\000\000\019M\019M\019M\019M\019M\019M\000\000\000\000\000\000\019M\000\000\000\000\019M\019M\000\000\000\000\000\000\019M\019M\019M\019M\019M\000\000\000\000\019M\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019M\000\000\019M\019M\000\000\019M\019M\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019M\019M\019M\019M\019M\000\000\019M\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019M\000\006\019M\000\000\011\154\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\019M\019M\000\000\000\000\000\000\019M\019M\000\000\001\234\019M\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\242\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\025\190\014\030\017\226\n\134\n\138\000\000\017\246\000\000\011\158\000\000\000\000\000\000\011j\015\002\r\226\000\000\r\230\000\000\000\000\011\218\000\000\000\000\000\000\004F\000\000\011\226\026\214\000\000\000\000\000\000\000\000\000\000\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\006\000\000\017\250\n\153\003\146\003\150\003\154\n\153\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\000\000\n\153\000\000\006\189\000\000\n\153\000\000\n\153\001\234\000\000\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\n\153\tr\000\000\br\000\000\tv\000\000\n\153\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\n\153\003\138\000\000\000\000\t\190\r\178\n\153\n\153\000\242\r\182\r\186\r\198\r\210\r\234\000\000\n\153\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\153\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\026\242\014\030\017\226\n\134\n\138\n\153\017\246\n\153 \138\000\000\n\153\n\153\000\000\011\154\r\226\000\000\r\230\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\011\158\000\000\000\000*F\011j\015\030\n\153\n\142\r\238\027\n\000\000\011\218\015\250\007\166\000\006\004F\017\250\011\226\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\000\000\000\000\000\000\000\242\000\000\027&\000\000\000\000\001\234\000\000\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\011\158\000\000\000\000\000\000\011j\015V\000\000\r\250\000\000\nb\nf\011\218\r\206\r\222\000\000\004F\000\000\011\226\000\000\000\000\000\000\027*\014\030\017\226\n\134\n\138\000\000\017\246\000\000\001\025\000\000\000\000\000\000\000\000\000\000\r\226\000\000\r\230\000\014\000\018\000\022\000\026\000\030\000\000\000\000\000\"\000&\000*\000.\0002\001\025\0006\000:\n\142\r\238\000\000\000>\000\000\015\250\007\166\000B\000\000\017\250\000\000\000\000\000\000\000\000\000F\000\000\000\000\000\000\000\000\000\000\000\000\000J\001\025\000N\b~\000R\000V\000Z\000^\000b\000f\001\025\000\000\000\000\000\000\000j\000n\001\025\000r\000v\000\000\000z\000\000\000\000\000\000\000\000\000\000\000\000\001\025\001\025\000\000\000\000\000\000\000\000\000\000\001\169\000~\000\000\000\000\000\000\000\000\000\130\000\134\000\000\000\000\000\000\000\000\000\000\000\138\000\142\000\146\000\000\000\000\000\000\000\000\000\000\001\169\000\000\000\000\000\000\000\000\000\000\001\025\000\150\000\154\000\158\000\162\000\000\000\166\000\170\000\000\000\174\000\000\000\000\001\025\000\178\000\182\000\186\000\000\000\000\000\000\000\000\000\000\000\000\000\190\000\006\000\194\000\198\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\202\bN\000\206\000\000\bf\000\000\bj\000\000\000\000\000\000\000\210\000\214\000\000\000\218\000\000\001\234\000\000\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\001\169\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210'\250\015\218\001\169\nJ\000\000\000\000\000\000\000\000\000\000\000\000\001\169\000\000\018\226\r\250\000\000\nb\nf\000\000\r\206\r\222\001\169\000\000\000\000\000\000\000\000\000\000\000\000(\002\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\031\158\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\029R\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\028\202\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\028\166\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\028z\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015\202\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\015\222\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\015\246\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\027\170\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018:\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\018\162\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\018\186\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\210\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\n\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\"\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019J\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019v\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\142\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\166\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\190\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\214\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\238\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\006\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\030\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0206\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020N\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020f\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020~\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\150\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\174\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\198\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\222\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\246\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\021\014\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\021&\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\021>\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\021V\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\021n\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\021\134\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\021\142\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\021\166\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\023\206\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\023\242\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\024\022\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\024>\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\024b\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\024\134\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\024\178\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\024\214\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\024\250\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\025\022\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\025\210\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\026\002\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\026\"\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\026B\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\026^\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\026v\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\026\138\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\026\166\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\027\238\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\028\002\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\028\030\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\028F\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\028^\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\028f\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000 :\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000(\030\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210(6\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\015r\000\000\000\000\000\000\000\000\000\000\000\000(>\014\030\017\226\n\134\n\138\014I\017\246\000\000\000\000\014I\014I\002v\000\000\014I\r\226\014I\r\230\000\000\014I\000\000\000\000\000\000\002z\014I\014I\016V\014I\014I\000\000\014I\001\234\014I\n\142\r\238\000\000\000\000\014I\015\250\007\166\000\242\014I\017\250\000\000\000\000\000\000\000\000\000\000\000\000\001\153\t\014\014I\000\000\014I\000\000\000\000\014I\016R\014I\001\246\000\000\000\000\000\000\000\000\014I\003\138\000\000\014I\014I\000\000\001\153\014I\014I\000\000\014I\000\000\014I\000\000\000\000\014I\000\000\000\000\000\000\n\193\000\000\000\000\000\000\n\193\014I\000\000\014I\014I\014I\000\000\014I\014I\014I\011\158\n\193\000\000\000\000\011j\015v\016^\n\193\000\000\014I\014I\011\218\000\000\000\000\014I\004F\014I\011\226\000\000\000\000\n\193\000\000\000\000\000\000\n\218\000\000\000\000\n\193\000\000\000\000\000\000\014I\014I\014I\000\000\014I\014I\000\000\014I\000\000\014I\n\193\014I\000\000\014I\015\197\014I\n\193\014I\b\130\003\154\001\153\000\000\003j\000\000\b\134\n\193\000\000\bf\000\000\000\000\000\000\000\000\015\197\015\197\n\193\015\197\015\197\000\000\001\234\000\000\000\000\000\000\000\000\015\218\001\153\b\190\000\000\000\000\000\000\000\000\000\000\000\000\001\153\000\000\018\226\n\193\000\000\n\193\000\000\015\197\n\193\b\210\001\153\000\000\b\230\000\000\001\190\000\000\000\000\000\000\000\000\000\000\003\138\000\000\000\000\n\n\n\014\000\000\000\000\015\197\n\018\n\193\n\026\n>\nn\004\189\004\189\nJ\000\000\002\130\000\000\000\000\000\000\004\189\000\000\000\000\015\197\004\189\nN\nb\nf\000\000\nj\nr\n~\004\189\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\189\n\134\n\138\000\000\000\000\011\002\015\197\000\000\015\197\000\000\000\000\004\189\000\000\000\000\000\000\000\000\000\000\000\000\004\189\000\000\004\189\000\000\000\000\015\197\015\197\015\161\004\189\015\197\015\197\000\000\n\142\000\000\015\197\004\189\015\197\000\000\007\166\015\193\015\197\000\000\015\197\b\130\003\154\000\000\000\000\003j\000\000\b\134\000\000\000\000\bf\000\000\000\000\000\000\000\000\015\193\015\193\000\000\015\193\015\193\000\000\001\234\000\000\000\000!\014\000\000\000\000\000\000\b\190\000\000\000\000\015\161\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015\193\000\000\b\210\000\000\000\000\011v\000\000\001\190\000\000\000\000\000\000\000\000\000\000\003\138\000\000\000\000\n\n\n\014\000\000\000\000\015\193\n\018\000\000\n\026\n>\nn\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015\193\000\000\nN\nb\nf\000\000\nj\nr\n~\015\161\000\000\000\000\000\000\015\161\015\161\000\000\000\000\000\000\n\134\n\138\015\161\000\000\011\002\015\193\004F\015\193\015\161\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015\193\015\193\000\000\000\000\015\193\015\193\000\000\n\142\000\000\015\193\000\000\015\193\019\221\007\166\000\000\015\193\019\221\015\193\000\000\019\221\019\221\000\000\000\000\019\221\019\221\000\000\000\000\019\221\019\221\000\000\000\000\019\221\019\221\019\221\000\000\019\221\019\221\019\221\000\000\019\221\019\221\019\221\000\000\019\221\019\221\019\221\000\000\000\000\000\000\000\000\019\221\000\000\000\000\000\000\019\221\000\000\000\000\019\221\019\221\019\221\000\000\019\221\019\221\019\221\000\000\019\221\019\221\019\221\019\221\000\000\019\221\019\221\019\221\000\000\019\221\019\221\019\221\019\221\019\221\019\221\000\000\019\221\019\221\019\221\000\000\019\221\019\221\019\221\019\221\019\221\019\221\000\000\019\221\019\221\019\221\019\221\019\221\019\221\002^\019\221\000\000\000\000\002^\019\221\019\221\000\000\002^\000\000\019\221\000\000\000\000\000\000\019\221\000\000\000\000\000\000\019\221\000\000\019\221\019\221\019\221\019\221\019\221\019\221\019\221\019\221\019\221\019\221\000\000\019\221\019\221\000\000\000\000\000\000\019\221\000\000\019\221\000\000\019\221\019\221\019\221\002b\019\221\019\221\019\221\005n\019\221\019\221\000\000\005\146\019\221\019\221\001\193\019\221\019\221\019\221\019\221\019\221\019\221\019\221\019\221\019\221\019\165\019\221\019\221\000\000\019\165\000\000\000\000\001\230\019\165\000\000\000\000\001\193\000\000\000\000\000\250\000\000\005f\000\000\002\158\019\165\019\165\019\165\000\000\019\165\019\165\019\165\000\000\000\000\000\000*\006\000\000\000\000\000\000\0079\000\000\tZ\000\000\000\000\019\165\000\000\000\000\000\000\000\000\000\000\000\000\019\165\019\165\019\165*\n\000\000\019\165\000\000\000\000\000\000\003\226*2\019\165\000\000\001\185\019\165\000\000\000\000\000\000\000\000\000\000\019\165\019\165\019\165\000\000 \218\000\000\000\000\000\000\000\000\019\165 \242\019\165\019\165\001\177\001\185\000\000\000\000\000\000\019\165 \250\000\000\019\165\000\000\000\000\001\193\000\000\000\000\005v!\n\000\000\000\000\019\165\000\000\000\000\001\177\000\000\000\000\000\000\000\000\019\165\000\000\019\165\019\165\000\000\019\165\019\165\000\000\015\218\001\193!\018\000\000+\014\000\000\000\000\0079\0079\001\193\019\165\018\226\019\165\000\000\019\165\019\165\000\000\ri\019\165\001\193\000\000\ri\000\000\019\165\001\230\ri\019\165\019\165+\030\019\165\000\000\019\165\019\165\ri\000\000\000\000\ri\ri\ri\000\000\ri\ri\ri\000\000\000\000\001\185\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ri\000\000\000\000\000\000\000\000\000\000\000\000\ri\ri\ri\001\177\000\000\ri\015\218\001\185\000\000\003\226\000\153\ri\000\000\000\000\ri\001\185\000\000\018\226\000\000\000\153\ri\ri\ri\000\000\000\153\001\185\015\218\001\177\000\000\ri\r\001\ri\ri\000\000\000\000\001\177\000\000\018\226\ri\000\000\000\000\ri\000\000\000\000\000\000\001\177\000\000\005v\000\000\000\000\000\153\ri\000\000\000\000\000\000\r\001\000\000\000\153\000\000\ri\000\000\ri\ri\000\000\ri\ri\000\000\000\000\000\000\000\000\000\153\000\000\000\000\000\000\000\000\000\000\000\000\ri\000\000\ri\000\000\ri\ri\000\000\rq\ri\000\000\000\000\rq\000\000\ri\001\230\rq\ri\ri\000\153\ri\000\000\ri\ri\rq\000\000\000\000\rq\rq\rq\000\000\rq\rq\rq\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\001\rq\000\000\000\000\000\000\000\000\000\153\000\000\rq\rq\rq\002:\000\000\rq\000\000\000\000\000\000\003\226\000\153\rq\000\000\000\153\rq\000\153\000\000\000\000\000\000\000\153\rq\rq\rq\000\000\000\153\000\000\000\000\000\000\000\000\rq\r\001\rq\rq\000\000\000\000\000\000\000\000\000\000\rq\000\000\000\000\rq\000\000\000\000\000\000\000\000\000\000\005v\000\000\000\000\000\153\rq\000\000\000\000\000\000\r\001\000\000\000\153\000\000\rq\000\000\rq\rq\000\000\rq\rq\000\000\000\000\000\000\000\000\000\153\000\000\000\000\000\000\000\000\000\000\000\000\rq\000\000\rq\000\000\rq\rq\000\000\rm\rq\000\000\000\000\rm\000\000\rq\001\230\rm\rq\rq\000\153\rq\000\000\rq\rq\rm\000\000\000\000\rm\rm\rm\000\000\rm\rm\rm\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\001\rm\000\000\000\000\000\000\000\000\000\153\000\000\rm\rm\rm\030\250\000\000\rm\019\229\019\205\000\000\003\226\000\157\rm\000\000\000\153\rm\000\153\000\000\000\000\000\000\000\157\rm\rm\rm\000\000\000\157\000\000\000\000\019\229\000\000\rm\002\170\rm\rm\002\174\000\000\000\000\000\000\000\000\rm\000\000\000\000\rm\t6\000\000\000\000\000\000\000\000\005v\000\000\002\186\000\157\rm\002\194\000\000\019\205\000\000\000\000\000\157\000\000\rm\000\000\rm\rm\000\000\rm\rm\000\000\000\000\000\000\000\000\000\157\000\000\000\000\000\000\000\000\000\000\000\000\rm\000\000\rm\002\198\rm\rm\000\000\re\rm\000\000\000\000\re\000\000\rm\001\230\re\rm\rm\000\157\rm\000\000\rm\rm\re\000\000\000\000\re\re\re\000\000\re\re\re\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\re\000\000\000\000\000\000\000\000\000\157\000\000\re\re\re\002\022\000\000\re\000\000\002\202\000\000\003\226\000\000\re\000\000\000\157\re\000\157\000\000\000\000\000\000\000\000\re\re\re\000\000\000\000\000\000\000\000\000\000\000\000\re\000\000\re\re\000\000\000\000\000\000\000\000\000\000\re\000\000\000\000\re\000\000\000\000\000\000\000\000\000\000\005v\000\000\000\000\000\000\re\000\000\000\000\000\000\000\000\000\000\000\000\000\000\re\000\000\re\re\000\000\re\re\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\re\000\000\re\000\000\re\re\000\000\000\000\re\000\000\000\000\000\161\000\000\re\000\161\000\161\re\re\000\000\re\000\000\re\re\000\161\000\000\000\000\000\161\000\161\000\161\000\000\000\161\000\161\000\161\000\000\r\005\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\161\000\000\000\000\000\000\000\000\001\226\001\230\000\161\000\000\000\161\000\000\000\000\000\161\000\000\r\005\000\000\000\161\000\000\000\161\000\000\000\000\000\161\000\000\000\000\000\000\001\234\002&\000\161\000\161\000\161\000\000\000\000\000\000\000\000\000\000\000\000\000\161\000\000\000\161\000\161\000\000\000\000\000\000\000\000\000\000\000\161\000\161\000\000\000\161\000\000\000\000\003~\000\000\003\226\000\161\000\000\000\000\003z\000\161\003\138\003\186\003\198\000\000\000\000\000\153\000\000\000\161\003\210\000\161\000\161\000\000\000\161\000\161\000\153\000\000\000\000\000\000\000\000\000\153\000\000\r\005\000\000\000\000\000\000\000\161\000\000\000\161\000\000\000\161\003\214\000\000\003\230\000\161\000\000\000\000\000\153\030\202\000\161\000\153\000\153\000\161\000\161\000\000\000\161\000\153\000\161\000\000\000\153\000\000\000\000\000\153\000\153\000\153\000\000\000\153\000\153\000\153\000\000\r\001\000\000\000\000\000\000\000\000\000\000\000\153\000\153\000\000\000\000\000\000\000\153\000\000\000\000\000\000\000\000\000\153\000\000\000\153\000\000\000\153\000\153\000\000\000\153\000\000\r\001\000\000\000\153\000\000\000\153\000\000\000\153\000\153\000\000\000\000\000\000\000\000\000\000\000\153\000\153\000\153\000\000\000\000\000\000\000\000\000\000\000\000\000\153\000\153\000\153\000\153\000\000\000\000\000\000\000\153\000\000\000\153\000\153\000\000\000\153\000\000\000\000\000\153\000\153\000\000\000\153\000\000\000\153\004\190\000\153\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\153\000\153\000\153\000\153\t5\000\153\000\153\000\000\t5\000\000\000\000\000\153\t5\000\000\r\001\000\153\000\000\000\000\000\153\001\202\001\226\001\230\000\153\t5\t5\t5\000\153\t5\t5\t5\000\000\000\153\000\000\000\000\000\153\000\153\000\000\000\153\000\000\000\153\001\234\002&\t5\000\000\000\000\000\000\000\000\000\153\000\000\t5\t5\t5\006\"\001\206\t5\000\000\000\153\000\000\004J\000\000\t5\000\000\000\153\t5\000\153\000\000\002f\001\210\003\226\t5\t5\t5\003z\000\000\003\138\003\186\003\198\000\000\t5\000\000\t5\t5\003\210\000\000\000\000\000\000\000\000\t5\000\153\000\000\t5\000\000\000\000\031\030\000\000\000\000\t5\000\000\000\000\000\000\t5\000\000\000\000\000\153\003\214\000\153\003\230\000\000\t5\000\000\t5\t5\000\000\t5\t5\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t5\000\000\t5\000\000\t5\t5\000\000\019\169\t5\000\000\000\000\019\169\000\000\t5\000\000\019\169\t5\t5\000\000\t5\000\000\t5\t5\005\138\000\000\000\000\019\169\019\169\019\169\000\000\019\169\019\169\019\169\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\226\001\230\000\000\000\000\000\000\019\169\000\000\000\000\000\000\000\000\000\000\000\000\019\169\019\169\019\169\000\000\000\000\019\169\000\000\000\000\001\234\002&\000\000\019\169\000\000\000\000\019\169\000\000\000\000\000\000\000\000\000\000\019\169\019\169\019\169\000\000\000\000\000\000\000\000\000\000\000\000\019\169\000\000\019\169\019\169\000\000\003~\000\000\003\218\000\000\019\169\000\000\003z\019\169\003\138\003\186\003\198\000\000\000\000\019\169\000\000\000\000\003\210\019\169\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\169\000\000\019\169\019\169\000\000\019\169\019\169\000\000\000\000\000\000\000\000\000\000\000\000\003\214\000\000\003\230\000\000\000\000\019\169\000\000\019\169\000\000\019\169\019\169\000\000\018\253\019\169\000\000\000\000\018\253\000\000\019\169\000\000\018\253\019\169\019\169\000\000\019\169\000\000\019\169\019\169\005\138\000\000\000\000\018\253\018\253\018\253\000\000\018\253\018\253\018\253\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\226\001\230\000\000\000\000\000\000\018\253\000\000\000\000\000\000\000\000\000\000\000\000\018\253\018\253-v\000\000\000\000\018\253\000\000\000\000\001\234\002&\000\000\018\253\000\000\000\000\018\253\000\000\000\000\000\000\000\000\000\000\018\253\018\253\018\253\000\000\000\000\000\000\000\000\000\000\000\000\018\253\000\000\018\253\018\253\000\000\004\202\000\000\003\226\000\000\018\253\000\000\003z\018\253\003\138\003\186\003\198\000\000\000\000\018\253\000\000\000\000\003\210\018\253\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\253\000\000\018\253\018\253\000\000\018\253\018\253\000\000\000\000\000\000\000\000\000\000\000\000\003\214\000\000\003\230\000\000\000\000\018\253\000\000\018\253\000\000\018\253\018\253\004i\000\000\018\253\000\000\004i\000\000\000\000\018\253\004i\000\000\018\253\004F\000\000\018\253\000\000\018\253\018\253\000\000\000\000\004i\004i\004i\000\000\004i\004i\004i\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\226\001\230\000\000\000\000\000\000\004i\000\000\000\000\000\000\000\000\000\000\000\000\004i\004i\004>\000\000\000\000\004i\000\000\000\000\001\234\002&\000\000\004i\000\000\000\000\004i\000\000\000\000\000\000\000\000\000\000\004i\004i\004i\000\000\000\000\000\000\000\000\000\000\000\000\004i\000\000\004i\004i\000\000\003~\000\000\005j\000\000\004i\000\000\003z\004i\003\138\003\186\003\198\000\000\000\000\004i\000\000\000\000\003\210\004i\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004i\000\000\004i\004i\000\000\004i\004i\000\000\000\000\000\000\000\000\000\000\000\000\003\214\000\000\003\230\000\000\000\000\004i\000\000\004i\000\000\004i\004i\018M\000\000\004i\000\000\018M\000\000\000\000\004i\018M\000\000\004i\004F\000\000\004i\000\000\004i\004i\000\000\000\000\018M\018M\018M\000\000\018M\018M\018M\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\226\001\230\000\000\000\000\000\000\018M\000\000\000\000\000\000\000\000\000\000\000\000\018M\018M\004>\000\000\000\000\018M\000\000\000\000\001\234\002&\000\000\018M\000\000\000\000\018M\000\000\000\000\000\000\000\000\000\000\018M\018M\018M\000\000\000\000\000\000\000\000\000\000\000\000\018M\000\000\018M\018M\000\000\003~\000\000\005\142\000\000\018M\000\000\003z\018M\003\138\003\186\003\198\000\000\000\000\018M\000\000\000\000\003\210\018M\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018M\000\000\018M\018M\000\000\018M\018M\000\000\000\000\000\000\000\000\000\000\000\000\003\214\000\000\003\230\000\000\000\000\018M\000\000\018M\000\000\018M\018M\018Q\000\000\018M\000\000\018Q\000\000\000\000\018M\018Q\000\000\018M\004F\000\000\018M\000\000\018M\018M\000\000\000\000\018Q\018Q\018Q\000\000\018Q\018Q\018Q\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\226\001\230\000\000\000\000\000\000\018Q\000\000\000\000\000\000\000\000\000\000\000\000\018Q\018Q\004Z\000\000\000\000\018Q\000\000\000\000\001\234\002&\000\000\018Q\000\000\000\000\018Q\000\000\000\000\000\000\000\000\000\000\018Q\018Q\018Q\000\000\000\000\000\000\000\000\000\000\000\000\018Q\000\000\018Q\018Q\000\000\006\202\000\000\003\226\000\000\018Q\000\000\003z\018Q\003\138\003\186\003\198\000\000\000\000\018Q\000\000\000\000\003\210\018Q\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018Q\000\000\018Q\018Q\000\000\018Q\018Q\000\000\000\000\000\000\000\000\000\000\000\000\003\214\000\000\003\230\000\000\000\000\018Q\000\000\018Q\000\000\018Q\018Q\018]\000\000\018Q\000\000\018]\000\000\000\000\018Q\018]\000\000\018Q\018Q\000\000\018Q\000\000\018Q\018Q\000\000\000\000\018]\018]\018]\000\000\018]\018]\018]\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\226\001\230\000\000\000\000\000\000\018]\000\000\000\000\000\000\000\000\000\000\000\000\018]\018]\004>\000\000\000\000\018]\000\000\000\000\001\234\002&\000\000\018]\000\000\000\000\018]\000\000\000\000\000\000\000\000\000\000\018]\018]\018]\000\000\000\000\000\000\000\000\000\000\000\000\018]\000\000\018]\018]\000\000,\146\000\000\003\226\000\000\018]\000\000\003z\018]\003\138\003\186\003\198\000\000\000\000\018]\000\000\000\000\003\210\018]\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018]\000\000\018]\018]\000\000\018]\018]\000\000\000\000\000\000\000\000\000\000\000\000\003\214\000\000\003\230\000\000\000\000\018]\000\000\018]\000\000\018]\018]\018a\000\000\018]\000\000\018a\000\000\000\000\018]\018a\000\000\018]\004F\000\000\018]\000\000\018]\018]\000\000\000\000\018a\018a\018a\000\000\018a\018a\018a\000\000\000\000\000\157\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\157\018a\000\000\000\000\000\000\000\157\000\000\000\000\018a\018a\004Z\000\157\000\000\018a\000\000\000\000\000\000\000\000\000\000\018a\000\157\000\000\018a\000\000\000\000\000\157\000\000\000\000\018a\018a\018a\000\157\000\000\000\000\000\000\000\000\000\000\018a\000\157\018a\018a\000\000\000\000\000\000\000\000\000\000\018a\000\000\000\000\018a\000\000\000\157\000\000\000\000\000\000\018a\000\000\000\000\000\157\018a\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018a\000\000\018a\018a\000\157\018a\018a\000\000\000\000\000\157\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018a\000\000\018a\000\000\018a\018a\018m\000\000\018a\000\000\018m\000\157\000\000\018a\018m\000\000\018a\018a\000\000\018a\000\000\018a\018a\000\157\000\000\018m\018m\018m\004\174\018m\018m\018m\000\000\000\000\000\000\000\000\000\000\000\000\000\157\000\000\000\157\000\000\000\000\000\157\018m\000\000\000\000\000\000\006\018\000\000\000\000\018m\018m\004>\000\157\000\000\018m\000\000\000\157\000\000\000\157\000\000\018m\000\157\000\000\018m\000\000\000\000\000\157\000\000\000\000\018m\018m\018m\000\000\000\000\000\000\000\000\000\000\000\000\018m\000\000\018m\018m\000\000\000\000\000\000\000\000\000\000\018m\000\000\000\000\018m\000\000\000\157\000\000\000\000\000\000\018m\000\000\000\000\000\157\018m\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018m\000\000\018m\018m\000\157\018m\018m\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018m\000\000\018m\000\000\018m\018m\018q\000\000\018m\000\000\018q\000\157\000\000\018m\018q\000\000\018m\004F\000\000\018m\000\000\018m\018m\000\000\000\000\018q\018q\018q\000\000\018q\018q\018q\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\157\018q\000\000\000\000\000\000\031\014\000\000\000\000\018q\018q\004Z\000\157\000\000\018q\000\000\000\157\000\000\000\157\000\000\018q\000\157\000\000\018q\000\000\000\000\000\157\000\000\000\000\018q\018q\018q\000\000\000\000\000\000\000\000\000\000\000\000\018q\000\000\018q\018q\000\000\000\000\000\000\000\000\000\000\018q\000\000\000\000\018q\000\000\000\157\000\000\000\000\000\000\018q\000\000\000\000\000\157\018q\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018q\000\000\018q\018q\000\157\018q\018q\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018q\000\000\018q\000\000\018q\018q\018u\000\000\018q\000\000\018u\000\157\000\000\018q\018u\000\000\018q\018q\000\000\018q\000\000\018q\018q\000\000\000\000\018u\018u\018u\000\000\018u\018u\018u\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\157\018u\000\000\000\000\000\000-\222\000\000\000\000\018u\018u\005*\000\153\000\000\018u\000\000\000\157\000\000\000\157\000\000\018u\000\153\000\000\018u\000\000\000\000\000\153\000\000\000\000\018u\018u\018u\000\000\000\000\000\000\000\000\000\000\000\000\018u\000\000\018u\018u\000\000\000\000\000\000\000\000\000\000\018u\000\000\000\000\018u\000\000\000\153\000\000\000\000\000\000\018u\000\000\000\000\000\153\018u\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018u\000\000\018u\018u\000\153\018u\018u\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018u\000\000\018u\000\000\018u\018u\018\141\000\000\018u\000\000\018\141\000\153\000\000\018u\018\141\000\000\018u\004F\000\000\018u\000\000\018u\018u\000\000\000\000\018\141\018\141\018\141\000\000\018\141\018\141\018\141\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\153\018\141\000\000\000\000\000\000-\238\000\000\000\000\018\141\018\141\004>\000\000\000\000\018\141\000\000\000\153\000\000\000\153\000\000\018\141\000\000\000\000\018\141\000\000\000\000\000\000\000\000\000\000\018\141\018\141\018\141\000\000\000\000\000\000\000\000\000\000\000\000\018\141\000\000\018\141\018\141\000\000\000\000\000\000\000\000\000\000\018\141\000\000\000\000\018\141\000\000\000\000\000\000\000\000\000\000\018\141\000\000\000\000\000\000\018\141\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\141\000\000\018\141\018\141\000\000\018\141\018\141\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\141\000\000\018\141\000\000\018\141\018\141\018\145\000\000\018\141\000\000\018\145\000\000\000\000\018\141\018\145\000\000\018\141\004F\000\000\018\141\000\000\018\141\018\141\000\000\000\000\018\145\018\145\018\145\000\000\018\145\018\145\018\145\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\145\000\000\000\000\000\000\000\000\000\000\000\000\018\145\018\145\004Z\000\000\000\000\018\145\000\000\000\000\000\000\000\000\000\000\018\145\000\000\000\000\018\145\000\000\000\000\000\000\000\000\000\000\018\145\018\145\018\145\000\000\000\000\000\000\000\000\000\000\000\000\018\145\000\000\018\145\018\145\000\000\000\000\000\000\000\000\000\000\018\145\000\000\000\000\018\145\000\000\000\000\000\000\000\000\000\000\018\145\000\000\000\000\000\000\018\145\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\145\000\000\018\145\018\145\000\000\018\145\018\145\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\145\000\000\018\145\000\000\018\145\018\145\018\149\000\000\018\145\000\000\018\149\000\000\000\000\018\145\018\149\000\000\018\145\018\145\000\000\018\145\000\000\018\145\018\145\000\000\000\000\018\149\018\149\018\149\000\000\018\149\018\149\018\149\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\149\000\000\000\000\000\000\000\000\000\000\000\000\018\149\018\149\005*\000\000\000\000\018\149\000\000\000\000\000\000\000\000\000\000\018\149\000\000\000\000\018\149\000\000\000\000\000\000\000\000\000\000\018\149\018\149\018\149\000\000\000\000\000\000\000\000\000\000\000\000\018\149\000\000\018\149\018\149\000\000\000\000\000\000\000\000\000\000\018\149\000\000\000\000\018\149\000\000\000\000\000\000\000\000\000\000\018\149\000\000\000\000\000\000\018\149\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\149\000\000\018\149\018\149\000\000\018\149\018\149\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\149\000\000\018\149\000\000\018\149\018\149\018\153\000\000\018\149\000\000\018\153\000\000\000\000\018\149\018\153\000\000\018\149\004F\000\000\018\149\000\000\018\149\018\149\000\000\000\000\018\153\018\153\018\153\000\000\018\153\018\153\018\153\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\153\000\000\000\000\000\000\000\000\000\000\000\000\018\153\018\153\005F\000\000\000\000\018\153\000\000\000\000\000\000\000\000\000\000\018\153\000\000\000\000\018\153\000\000\000\000\000\000\000\000\000\000\018\153\018\153\018\153\000\000\000\000\000\000\000\000\000\000\000\000\018\153\000\000\018\153\018\153\000\000\000\000\000\000\000\000\000\000\018\153\000\000\000\000\018\153\000\000\000\000\000\000\000\000\000\000\018\153\000\000\000\000\000\000\018\153\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\153\000\000\018\153\018\153\000\000\018\153\018\153\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\153\000\000\018\153\000\000\018\153\018\153\018\157\000\000\018\153\000\000\018\157\000\000\000\000\018\153\018\157\000\000\018\153\018\153\000\000\018\153\000\000\018\153\018\153\000\000\000\000\018\157\018\157\018\157\000\000\018\157\018\157\018\157\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\157\000\000\000\000\000\000\000\000\000\000\000\000\018\157\018\157\004>\000\000\000\000\018\157\000\000\000\000\000\000\000\000\000\000\018\157\000\000\000\000\018\157\000\000\000\000\000\000\000\000\000\000\018\157\018\157\018\157\000\000\000\000\000\000\000\000\000\000\000\000\018\157\000\000\018\157\018\157\000\000\000\000\000\000\000\000\000\000\018\157\000\000\000\000\018\157\000\000\000\000\000\000\000\000\000\000\018\157\000\000\000\000\000\000\018\157\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\157\000\000\018\157\018\157\000\000\018\157\018\157\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\157\000\000\018\157\000\000\018\157\018\157\018\161\000\000\018\157\000\000\018\161\000\000\000\000\018\157\018\161\000\000\018\157\004F\000\000\018\157\000\000\018\157\018\157\000\000\000\000\018\161\018\161\018\161\000\000\018\161\018\161\018\161\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\161\000\000\000\000\000\000\000\000\000\000\000\000\018\161\018\161\004Z\000\000\000\000\018\161\000\000\000\000\000\000\000\000\000\000\018\161\000\000\000\000\018\161\000\000\000\000\000\000\000\000\000\000\018\161\018\161\018\161\000\000\000\000\000\000\000\000\000\000\000\000\018\161\000\000\018\161\018\161\000\000\000\000\000\000\000\000\000\000\018\161\000\000\000\000\018\161\000\000\000\000\000\000\000\000\000\000\018\161\000\000\000\000\000\000\018\161\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\161\000\000\018\161\018\161\000\000\018\161\018\161\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\161\000\000\018\161\000\000\018\161\018\161\018\165\000\000\018\161\000\000\018\165\000\000\000\000\018\161\018\165\000\000\018\161\018\161\000\000\018\161\000\000\018\161\018\161\000\000\000\000\018\165\018\165\018\165\000\000\018\165\018\165\018\165\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\165\000\000\000\000\000\000\000\000\000\000\000\000\018\165\018\165\005*\000\000\000\000\018\165\000\000\000\000\000\000\000\000\000\000\018\165\000\000\000\000\018\165\000\000\000\000\000\000\000\000\000\000\018\165\018\165\018\165\000\000\000\000\000\000\000\000\000\000\000\000\018\165\000\000\018\165\018\165\000\000\000\000\000\000\000\000\000\000\018\165\000\000\000\000\018\165\000\000\000\000\000\000\000\000\000\000\018\165\000\000\000\000\000\000\018\165\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\165\000\000\018\165\018\165\000\000\018\165\018\165\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\165\000\000\018\165\000\000\018\165\018\165\018\169\000\000\018\165\000\000\018\169\000\000\000\000\018\165\018\169\000\000\018\165\004F\000\000\018\165\000\000\018\165\018\165\000\000\000\000\018\169\018\169\018\169\000\000\018\169\018\169\018\169\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\169\000\000\000\000\000\000\000\000\000\000\000\000\018\169\018\169\005F\000\000\000\000\018\169\000\000\000\000\000\000\000\000\000\000\018\169\000\000\000\000\018\169\000\000\000\000\000\000\000\000\000\000\018\169\018\169\018\169\000\000\000\000\000\000\000\000\000\000\000\000\018\169\000\000\018\169\018\169\000\000\000\000\000\000\000\000\000\000\018\169\000\000\000\000\018\169\000\000\000\000\000\000\000\000\000\000\018\169\000\000\000\000\000\000\018\169\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\169\000\000\018\169\018\169\000\000\018\169\018\169\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\169\000\000\018\169\000\000\018\169\018\169\018y\000\000\018\169\000\000\018y\000\000\000\000\018\169\018y\000\000\018\169\018\169\000\000\018\169\000\000\018\169\018\169\000\000\000\000\018y\018y\018y\000\000\018y\018y\018y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018y\000\000\000\000\000\000\000\000\000\000\000\000\018y\018y\005F\000\000\000\000\018y\000\000\000\000\000\000\000\000\000\000\018y\000\000\000\000\018y\000\000\000\000\000\000\000\000\000\000\018y\018y\018y\000\000\000\000\000\000\000\000\000\000\000\000\018y\000\000\018y\018y\000\000\000\000\000\000\000\000\000\000\018y\000\000\000\000\018y\000\000\000\000\000\000\000\000\000\000\018y\000\000\000\000\000\000\018y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018y\000\000\018y\018y\000\000\018y\018y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018y\000\000\018y\000\000\018y\018y\018}\000\000\018y\000\000\018}\000\000\000\000\018y\018}\000\000\018y\018y\000\000\018y\000\000\018y\018y\000\000\000\000\018}\018}\018}\000\000\018}\018}\018}\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018}\000\000\000\000\000\000\000\000\000\000\000\000\018}\018}\004>\000\000\000\000\018}\000\000\000\000\000\000\000\000\000\000\018}\000\000\000\000\018}\000\000\000\000\000\000\000\000\000\000\018}\018}\018}\000\000\000\000\000\000\000\000\000\000\000\000\018}\000\000\018}\018}\000\000\000\000\000\000\000\000\000\000\018}\000\000\000\000\018}\000\000\000\000\000\000\000\000\000\000\018}\000\000\000\000\000\000\018}\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018}\000\000\018}\018}\000\000\018}\018}\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018}\000\000\018}\000\000\018}\018}\018\129\000\000\018}\000\000\018\129\000\000\000\000\018}\018\129\000\000\018}\004F\000\000\018}\000\000\018}\018}\000\000\000\000\018\129\018\129\018\129\000\000\018\129\018\129\018\129\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\129\000\000\000\000\000\000\000\000\000\000\000\000\018\129\018\129\004Z\000\000\000\000\018\129\000\000\000\000\000\000\000\000\000\000\018\129\000\000\000\000\018\129\000\000\000\000\000\000\000\000\000\000\018\129\018\129\018\129\000\000\000\000\000\000\000\000\000\000\000\000\018\129\000\000\018\129\018\129\000\000\000\000\000\000\000\000\000\000\018\129\000\000\000\000\018\129\000\000\000\000\000\000\000\000\000\000\018\129\000\000\000\000\000\000\018\129\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\129\000\000\018\129\018\129\000\000\018\129\018\129\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\129\000\000\018\129\000\000\018\129\018\129\018\133\000\000\018\129\000\000\018\133\000\000\000\000\018\129\018\133\000\000\018\129\018\129\000\000\018\129\000\000\018\129\018\129\000\000\000\000\018\133\018\133\018\133\000\000\018\133\018\133\018\133\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\133\000\000\000\000\000\000\000\000\000\000\000\000\018\133\018\133\005*\000\000\000\000\018\133\000\000\000\000\000\000\000\000\000\000\018\133\000\000\000\000\018\133\000\000\000\000\000\000\000\000\000\000\018\133\018\133\018\133\000\000\000\000\000\000\000\000\000\000\000\000\018\133\000\000\018\133\018\133\000\000\000\000\000\000\000\000\000\000\018\133\000\000\000\000\018\133\000\000\000\000\000\000\000\000\000\000\018\133\000\000\000\000\000\000\018\133\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\133\000\000\018\133\018\133\000\000\018\133\018\133\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\133\000\000\018\133\000\000\018\133\018\133\018\137\000\000\018\133\000\000\018\137\000\000\000\000\018\133\018\137\000\000\018\133\004F\000\000\018\133\000\000\018\133\018\133\000\000\000\000\018\137\018\137\018\137\000\000\018\137\018\137\018\137\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\137\000\000\000\000\000\000\000\000\000\000\000\000\018\137\018\137\005F\000\000\000\000\018\137\000\000\000\000\000\000\000\000\000\000\018\137\000\000\000\000\018\137\000\000\000\000\000\000\000\000\000\000\018\137\018\137\018\137\000\000\000\000\000\000\000\000\000\000\000\000\018\137\000\000\018\137\018\137\000\000\000\000\000\000\000\000\000\000\018\137\000\000\000\000\018\137\000\000\000\000\000\000\000\000\000\000\018\137\000\000\000\000\000\000\018\137\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\137\000\000\018\137\018\137\000\000\018\137\018\137\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\137\000\000\018\137\000\000\018\137\018\137\002\025\000\000\018\137\000\000\002\025\000\000\000\000\018\137\002\025\000\000\018\137\018\137\000\000\018\137\000\000\018\137\018\137\000\000\000\000\002\025\002\025\002\025\000\000\002\025\002\025\002\025\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\025\000\000\000\000\000\000\000\000\000\000\000\000\002\025\002\025\002\025\000\000\000\000\002\025\000\000\000\000\000\000\000\000\000\000\002\025\000\000\000\000\002\025\000\000\000\000\000\000\000\000\000\000\002\025\002\025\002\025\000\000\000\000\000\000\000\000\000\000\000\000\002\025\000\000\002\025\002\025\000\000\000\000\000\000\000\000\000\000\002\025\000\000\000\000\002\025\000\000\000\000\000\000\000\000\000\000\002\025\000\000\000\000\000\000\002\025\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\025\000\000\002\025\002\025\000\000\002\025\002\025\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\025\000\000\002\025\000\000\002\025\002\025\017-\000\000\002\025\000\000\017-\000\000\000\000\002\025\017-\000\000\002\025\002\025\000\000\005\206\000\000\002\025\002\025\000\000\000\000\017-\017-\017-\000\000\017-\017-\017-\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017-\000\000\000\000\000\000\000\000\000\000\000\000\017-\017-\004>\000\000\000\000\017-\000\000\000\000\000\000\000\000\000\000\017-\000\000\000\000\017-\000\000\000\000\000\000\000\000\000\000\017-\017-\017-\000\000\000\000\000\000\000\000\000\000\000\000\017-\000\000\017-\017-\000\000\000\000\000\000\000\000\000\000\017-\000\000\000\000\017-\000\000\000\000\000\000\000\000\000\000\017-\000\000\000\000\000\000\017-\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017-\000\000\017-\017-\000\000\017-\017-\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017-\000\000\017-\000\000\017-\017-\0171\000\000\017-\000\000\0171\000\000\000\000\017-\0171\000\000\017-\004F\000\000\017-\000\000\017-\017-\000\000\000\000\0171\0171\0171\000\000\0171\0171\0171\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0171\000\000\000\000\000\000\000\000\000\000\000\000\0171\0171\004Z\000\000\000\000\0171\000\000\000\000\000\000\000\000\000\000\0171\000\000\000\000\0171\000\000\000\000\000\000\000\000\000\000\0171\0171\0171\000\000\000\000\000\000\000\000\000\000\000\000\0171\000\000\0171\0171\000\000\000\000\000\000\000\000\000\000\0171\000\000\000\000\0171\000\000\000\000\000\000\000\000\000\000\0171\000\000\000\000\000\000\0171\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0171\000\000\0171\0171\000\000\0171\0171\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0171\000\000\0171\000\000\0171\0171\0175\000\000\0171\000\000\0175\000\000\000\000\0171\0175\000\000\0171\0171\000\000\0171\000\000\0171\0171\000\000\000\000\0175\0175\0175\000\000\0175\0175\0175\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0175\000\000\000\000\000\000\000\000\000\000\000\000\0175\0175\005*\000\000\000\000\0175\000\000\000\000\000\000\000\000\000\000\0175\000\000\000\000\0175\000\000\000\000\000\000\000\000\000\000\0175\0175\0175\000\000\000\000\000\000\000\000\000\000\000\000\0175\000\000\0175\0175\000\000\000\000\000\000\000\000\000\000\0175\000\000\000\000\0175\000\000\000\000\000\000\000\000\000\000\0175\000\000\000\000\000\000\0175\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0175\000\000\0175\0175\000\000\0175\0175\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0175\000\000\0175\000\000\0175\0175\0179\000\000\0175\000\000\0179\000\000\000\000\0175\0179\000\000\0175\004F\000\000\0175\000\000\0175\0175\000\000\000\000\0179\0179\0179\000\000\0179\0179\0179\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0179\000\000\000\000\000\000\000\000\000\000\000\000\0179\0179\005F\000\000\000\000\0179\000\000\000\000\000\000\000\000\000\000\0179\000\000\000\000\0179\000\000\000\000\000\000\000\000\000\000\0179\0179\0179\000\000\000\000\000\000\000\000\000\000\000\000\0179\000\000\0179\0179\000\000\000\000\000\000\000\000\000\000\0179\000\000\000\000\0179\000\000\000\000\000\000\000\000\000\000\0179\000\000\000\000\000\000\0179\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0179\000\000\0179\0179\000\000\0179\0179\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0179\000\000\0179\000\000\0179\0179\017=\000\000\0179\000\000\017=\000\000\000\000\0179\017=\000\000\0179\0179\000\000\0179\000\000\0179\0179\000\000\000\000\017=\017=\017=\000\000\017=\017=\017=\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017=\000\000\000\000\000\000\000\000\000\000\000\000\017=\017=\004>\000\000\000\000\017=\000\000\000\000\000\000\000\000\000\000\017=\000\000\000\000\017=\000\000\000\000\000\000\000\000\000\000\017=\017=\017=\000\000\000\000\000\000\000\000\000\000\000\000\017=\000\000\017=\017=\000\000\000\000\000\000\000\000\000\000\017=\000\000\000\000\017=\000\000\000\000\000\000\000\000\000\000\017=\000\000\000\000\000\000\017=\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017=\000\000\017=\017=\000\000\017=\017=\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017=\000\000\017=\000\000\017=\017=\017A\000\000\017=\000\000\017A\000\000\000\000\017=\017A\000\000\017=\004F\000\000\017=\000\000\017=\017=\000\000\000\000\017A\017A\017A\000\000\017A\017A\017A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017A\000\000\000\000\000\000\000\000\000\000\000\000\017A\017A\004Z\000\000\000\000\017A\000\000\000\000\000\000\000\000\000\000\017A\000\000\000\000\017A\000\000\000\000\000\000\000\000\000\000\017A\017A\017A\000\000\000\000\000\000\000\000\000\000\000\000\017A\000\000\017A\017A\000\000\000\000\000\000\000\000\000\000\017A\000\000\000\000\017A\000\000\000\000\000\000\000\000\000\000\017A\000\000\000\000\000\000\017A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017A\000\000\017A\017A\000\000\017A\017A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017A\000\000\017A\000\000\017A\017A\017E\000\000\017A\000\000\017E\000\000\000\000\017A\017E\000\000\017A\017A\000\000\017A\000\000\017A\017A\000\000\000\000\017E\017E\017E\000\000\017E\017E\017E\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017E\000\000\000\000\000\000\000\000\000\000\000\000\017E\017E\005*\000\000\000\000\017E\000\000\000\000\000\000\000\000\000\000\017E\000\000\000\000\017E\000\000\000\000\000\000\000\000\000\000\017E\017E\017E\000\000\000\000\000\000\000\000\000\000\000\000\017E\000\000\017E\017E\000\000\000\000\000\000\000\000\000\000\017E\000\000\000\000\017E\000\000\000\000\000\000\000\000\000\000\017E\000\000\000\000\000\000\017E\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017E\000\000\017E\017E\000\000\017E\017E\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017E\000\000\017E\000\000\017E\017E\017I\000\000\017E\000\000\017I\000\000\000\000\017E\017I\000\000\017E\004F\000\000\017E\000\000\017E\017E\000\000\000\000\017I\017I\017I\000\000\017I\017I\017I\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017I\000\000\000\000\000\000\000\000\000\000\000\000\017I\017I\005F\000\000\000\000\017I\000\000\000\000\000\000\000\000\000\000\017I\000\000\000\000\017I\000\000\000\000\000\000\000\000\000\000\017I\017I\017I\000\000\000\000\000\000\000\000\000\000\000\000\017I\000\000\017I\017I\000\000\000\000\000\000\000\000\000\000\017I\000\000\000\000\017I\000\000\000\000\000\000\000\000\000\000\017I\000\000\000\000\000\000\017I\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017I\000\000\017I\017I\000\000\017I\017I\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017I\000\000\017I\000\000\017I\017I\017M\000\000\017I\000\000\017M\000\000\000\000\017I\017M\000\000\017I\017I\000\000\017I\000\000\017I\017I\000\000\000\000\017M\017M\017M\000\000\017M\017M\017M\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017M\000\000\000\000\000\000\000\000\000\000\000\000\017M\017M\004>\000\000\000\000\017M\000\000\000\000\000\000\000\000\000\000\017M\000\000\000\000\017M\000\000\000\000\000\000\000\000\000\000\017M\017M\017M\000\000\000\000\000\000\000\000\000\000\000\000\017M\000\000\017M\017M\000\000\000\000\000\000\000\000\000\000\017M\000\000\000\000\017M\000\000\000\000\000\000\000\000\000\000\017M\000\000\000\000\000\000\017M\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017M\000\000\017M\017M\000\000\017M\017M\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017M\000\000\017M\000\000\017M\017M\017Q\000\000\017M\000\000\017Q\000\000\000\000\017M\017Q\000\000\017M\004F\000\000\017M\000\000\017M\017M\000\000\000\000\017Q\017Q\017Q\000\000\017Q\017Q\017Q\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017Q\000\000\000\000\000\000\000\000\000\000\000\000\017Q\017Q\004Z\000\000\000\000\017Q\000\000\000\000\000\000\000\000\000\000\017Q\000\000\000\000\017Q\000\000\000\000\000\000\000\000\000\000\017Q\017Q\017Q\000\000\000\000\000\000\000\000\000\000\000\000\017Q\000\000\017Q\017Q\000\000\000\000\000\000\000\000\000\000\017Q\000\000\000\000\017Q\000\000\000\000\000\000\000\000\000\000\017Q\000\000\000\000\000\000\017Q\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017Q\000\000\017Q\017Q\000\000\017Q\017Q\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017Q\000\000\017Q\000\000\017Q\017Q\017U\000\000\017Q\000\000\017U\000\000\000\000\017Q\017U\000\000\017Q\017Q\000\000\017Q\000\000\017Q\017Q\000\000\000\000\017U\017U\017U\000\000\017U\017U\017U\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017U\000\000\000\000\000\000\000\000\000\000\000\000\017U\017U\005*\000\000\000\000\017U\000\000\000\000\000\000\000\000\000\000\017U\000\000\000\000\017U\000\000\000\000\000\000\000\000\000\000\017U\017U\017U\000\000\000\000\000\000\000\000\000\000\000\000\017U\000\000\017U\017U\000\000\000\000\000\000\000\000\000\000\017U\000\000\000\000\017U\000\000\000\000\000\000\000\000\000\000\017U\000\000\000\000\000\000\017U\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017U\000\000\017U\017U\000\000\017U\017U\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017U\000\000\017U\000\000\017U\017U\017Y\000\000\017U\000\000\017Y\000\000\000\000\017U\017Y\000\000\017U\004F\000\000\017U\000\000\017U\017U\000\000\000\000\017Y\017Y\017Y\000\000\017Y\017Y\017Y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017Y\000\000\000\000\000\000\000\000\000\000\000\000\017Y\017Y\005F\000\000\000\000\017Y\000\000\000\000\000\000\000\000\000\000\017Y\000\000\000\000\017Y\000\000\000\000\000\000\000\000\000\000\017Y\017Y\017Y\000\000\000\000\000\000\000\000\000\000\000\000\017Y\000\000\017Y\017Y\000\000\000\000\000\000\000\000\000\000\017Y\000\000\000\000\017Y\000\000\000\000\000\000\000\000\000\000\017Y\000\000\000\000\000\000\017Y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017Y\000\000\017Y\017Y\000\000\017Y\017Y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017Y\000\000\017Y\000\000\017Y\017Y\017]\000\000\017Y\000\000\017]\000\000\000\000\017Y\017]\000\000\017Y\017Y\000\000\017Y\000\000\017Y\017Y\000\000\000\000\017]\017]\017]\000\000\017]\017]\017]\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017]\000\000\000\000\000\000\000\000\000\000\000\000\017]\017]\004>\000\000\000\000\017]\000\000\000\000\000\000\000\000\000\000\017]\000\000\000\000\017]\000\000\000\000\000\000\000\000\000\000\017]\017]\017]\000\000\000\000\000\000\000\000\000\000\000\000\017]\000\000\017]\017]\000\000\000\000\000\000\000\000\000\000\017]\000\000\000\000\017]\000\000\000\000\000\000\000\000\000\000\017]\000\000\000\000\000\000\017]\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017]\000\000\017]\017]\000\000\017]\017]\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017]\000\000\017]\000\000\017]\017]\017a\000\000\017]\000\000\017a\000\000\000\000\017]\017a\000\000\017]\004F\000\000\017]\000\000\017]\017]\000\000\000\000\017a\017a\017a\000\000\017a\017a\017a\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017a\000\000\000\000\000\000\000\000\000\000\000\000\017a\017a\004Z\000\000\000\000\017a\000\000\000\000\000\000\000\000\000\000\017a\000\000\000\000\017a\000\000\000\000\000\000\000\000\000\000\017a\017a\017a\000\000\000\000\000\000\000\000\000\000\000\000\017a\000\000\017a\017a\000\000\000\000\000\000\000\000\000\000\017a\000\000\000\000\017a\000\000\000\000\000\000\000\000\000\000\017a\000\000\000\000\000\000\017a\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017a\000\000\017a\017a\000\000\017a\017a\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017a\000\000\017a\000\000\017a\017a\017e\000\000\017a\000\000\017e\000\000\000\000\017a\017e\000\000\017a\017a\000\000\017a\000\000\017a\017a\000\000\000\000\017e\017e\017e\000\000\017e\017e\017e\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017e\000\000\000\000\000\000\000\000\000\000\000\000\017e\017e\005*\000\000\000\000\017e\000\000\000\000\000\000\000\000\000\000\017e\000\000\000\000\017e\000\000\000\000\000\000\000\000\000\000\017e\017e\017e\000\000\000\000\000\000\000\000\000\000\000\000\017e\000\000\017e\017e\000\000\000\000\000\000\000\000\000\000\017e\000\000\000\000\017e\000\000\000\000\000\000\000\000\000\000\017e\000\000\000\000\000\000\017e\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017e\000\000\017e\017e\000\000\017e\017e\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017e\000\000\017e\000\000\017e\017e\017i\000\000\017e\000\000\017i\000\000\000\000\017e\017i\000\000\017e\004F\000\000\017e\000\000\017e\017e\000\000\000\000\017i\017i\017i\000\000\017i\017i\017i\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017i\000\000\000\000\000\000\000\000\000\000\000\000\017i\017i\005F\000\000\000\000\017i\000\000\000\000\000\000\000\000\000\000\017i\000\000\000\000\017i\000\000\000\000\000\000\000\000\000\000\017i\017i\017i\000\000\000\000\000\000\000\000\000\000\000\000\017i\000\000\017i\017i\000\000\000\000\000\000\000\000\000\000\017i\000\000\000\000\017i\000\000\000\000\000\000\000\000\000\000\017i\000\000\000\000\000\000\017i\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017i\000\000\017i\017i\000\000\017i\017i\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017i\000\000\017i\000\000\017i\017i\017m\000\000\017i\000\000\017m\000\000\000\000\017i\017m\000\000\017i\017i\000\000\017i\000\000\017i\017i\000\000\000\000\017m\017m\017m\000\000\017m\017m\017m\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017m\000\000\000\000\000\000\000\000\000\000\000\000\017m\017m\004>\000\000\000\000\017m\000\000\000\000\000\000\000\000\000\000\017m\000\000\000\000\017m\000\000\000\000\000\000\000\000\000\000\017m\017m\017m\000\000\000\000\000\000\000\000\000\000\000\000\017m\000\000\017m\017m\000\000\000\000\000\000\000\000\000\000\017m\000\000\000\000\017m\000\000\000\000\000\000\000\000\000\000\017m\000\000\000\000\000\000\017m\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017m\000\000\017m\017m\000\000\017m\017m\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017m\000\000\017m\000\000\017m\017m\017q\000\000\017m\000\000\017q\000\000\000\000\017m\017q\000\000\017m\004F\000\000\017m\000\000\017m\017m\000\000\000\000\017q\017q\017q\000\000\017q\017q\017q\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017q\000\000\000\000\000\000\000\000\000\000\000\000\017q\017q\004Z\000\000\000\000\017q\000\000\000\000\000\000\000\000\000\000\017q\000\000\000\000\017q\000\000\000\000\000\000\000\000\000\000\017q\017q\017q\000\000\000\000\000\000\000\000\000\000\000\000\017q\000\000\017q\017q\000\000\000\000\000\000\000\000\000\000\017q\000\000\000\000\017q\000\000\000\000\000\000\000\000\000\000\017q\000\000\000\000\000\000\017q\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017q\000\000\017q\017q\000\000\017q\017q\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017q\000\000\017q\000\000\017q\017q\017u\000\000\017q\000\000\017u\000\000\000\000\017q\017u\000\000\017q\017q\000\000\017q\000\000\017q\017q\000\000\000\000\017u\017u\017u\000\000\017u\017u\017u\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017u\000\000\000\000\000\000\000\000\000\000\000\000\017u\017u\005*\000\000\000\000\017u\000\000\000\000\000\000\000\000\000\000\017u\000\000\000\000\017u\000\000\000\000\000\000\000\000\000\000\017u\017u\017u\000\000\000\000\000\000\000\000\000\000\000\000\017u\000\000\017u\017u\000\000\000\000\000\000\000\000\000\000\017u\000\000\000\000\017u\000\000\000\000\000\000\000\000\000\000\017u\000\000\000\000\000\000\017u\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017u\000\000\017u\017u\000\000\017u\017u\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017u\000\000\017u\000\000\017u\017u\017y\000\000\017u\000\000\017y\000\000\000\000\017u\017y\000\000\017u\004F\000\000\017u\000\000\017u\017u\000\000\000\000\017y\017y\017y\000\000\017y\017y\017y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017y\000\000\000\000\000\000\000\000\000\000\000\000\017y\017y\005F\000\000\000\000\017y\000\000\000\000\000\000\000\000\000\000\017y\000\000\000\000\017y\000\000\000\000\000\000\000\000\000\000\017y\017y\017y\000\000\000\000\000\000\000\000\000\000\000\000\017y\000\000\017y\017y\000\000\000\000\000\000\000\000\000\000\017y\000\000\000\000\017y\000\000\000\000\000\000\000\000\000\000\017y\000\000\000\000\000\000\017y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017y\000\000\017y\017y\000\000\017y\017y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017y\000\000\017y\000\000\017y\017y\017}\000\000\017y\000\000\017}\000\000\000\000\017y\017}\000\000\017y\017y\000\000\017y\000\000\017y\017y\000\000\000\000\017}\017}\017}\000\000\017}\017}\017}\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017}\000\000\000\000\000\000\000\000\000\000\000\000\017}\017}\004>\000\000\000\000\017}\000\000\000\000\000\000\000\000\000\000\017}\000\000\000\000\017}\000\000\000\000\000\000\000\000\000\000\017}\017}\017}\000\000\000\000\000\000\000\000\000\000\000\000\017}\000\000\017}\017}\000\000\000\000\000\000\000\000\000\000\017}\000\000\000\000\017}\000\000\000\000\000\000\000\000\000\000\017}\000\000\000\000\000\000\017}\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017}\000\000\017}\017}\000\000\017}\017}\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017}\000\000\017}\000\000\017}\017}\017\129\000\000\017}\000\000\017\129\000\000\000\000\017}\017\129\000\000\017}\004F\000\000\017}\000\000\017}\017}\000\000\000\000\017\129\017\129\017\129\000\000\017\129\017\129\017\129\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\129\000\000\000\000\000\000\000\000\000\000\000\000\017\129\017\129\004Z\000\000\000\000\017\129\000\000\000\000\000\000\000\000\000\000\017\129\000\000\000\000\017\129\000\000\000\000\000\000\000\000\000\000\017\129\017\129\017\129\000\000\000\000\000\000\000\000\000\000\000\000\017\129\000\000\017\129\017\129\000\000\000\000\000\000\000\000\000\000\017\129\000\000\000\000\017\129\000\000\000\000\000\000\000\000\000\000\017\129\000\000\000\000\000\000\017\129\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\129\000\000\017\129\017\129\000\000\017\129\017\129\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\129\000\000\017\129\000\000\017\129\017\129\017\133\000\000\017\129\000\000\017\133\000\000\000\000\017\129\017\133\000\000\017\129\017\129\000\000\017\129\000\000\017\129\017\129\000\000\000\000\017\133\017\133\017\133\000\000\017\133\017\133\017\133\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\133\000\000\000\000\000\000\000\000\000\000\000\000\017\133\017\133\005*\000\000\000\000\017\133\000\000\000\000\000\000\000\000\000\000\017\133\000\000\000\000\017\133\000\000\000\000\000\000\000\000\000\000\017\133\017\133\017\133\000\000\000\000\000\000\000\000\000\000\000\000\017\133\000\000\017\133\017\133\000\000\000\000\000\000\000\000\000\000\017\133\000\000\000\000\017\133\000\000\000\000\000\000\000\000\000\000\017\133\000\000\000\000\000\000\017\133\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\133\000\000\017\133\017\133\000\000\017\133\017\133\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\133\000\000\017\133\000\000\017\133\017\133\017\137\000\000\017\133\000\000\017\137\000\000\000\000\017\133\017\137\000\000\017\133\004F\000\000\017\133\000\000\017\133\017\133\000\000\000\000\017\137\017\137\017\137\000\000\017\137\017\137\017\137\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\137\000\000\000\000\000\000\000\000\000\000\000\000\017\137\017\137\005F\000\000\000\000\017\137\000\000\000\000\000\000\000\000\000\000\017\137\000\000\000\000\017\137\000\000\000\000\000\000\000\000\000\000\017\137\017\137\017\137\000\000\000\000\000\000\000\000\000\000\000\000\017\137\000\000\017\137\017\137\000\000\000\000\000\000\000\000\000\000\017\137\000\000\000\000\017\137\000\000\000\000\000\000\000\000\000\000\017\137\000\000\000\000\000\000\017\137\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\137\000\000\017\137\017\137\000\000\017\137\017\137\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\137\000\000\017\137\000\000\017\137\017\137\017\141\000\000\017\137\000\000\017\141\000\000\000\000\017\137\017\141\000\000\017\137\017\137\000\000\017\137\000\000\017\137\017\137\000\000\000\000\017\141\017\141\017\141\000\000\017\141\017\141\017\141\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\141\000\000\000\000\000\000\000\000\000\000\000\000\017\141\017\141\004>\000\000\000\000\017\141\000\000\000\000\000\000\000\000\000\000\017\141\000\000\000\000\017\141\000\000\000\000\000\000\000\000\000\000\017\141\017\141\017\141\000\000\000\000\000\000\000\000\000\000\000\000\017\141\000\000\017\141\017\141\000\000\000\000\000\000\000\000\000\000\017\141\000\000\000\000\017\141\000\000\000\000\000\000\000\000\000\000\017\141\000\000\000\000\000\000\017\141\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\141\000\000\017\141\017\141\000\000\017\141\017\141\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\141\000\000\017\141\000\000\017\141\017\141\017\145\000\000\017\141\000\000\017\145\000\000\000\000\017\141\017\145\000\000\017\141\004F\000\000\017\141\000\000\017\141\017\141\000\000\000\000\017\145\017\145\017\145\000\000\017\145\017\145\017\145\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\145\000\000\000\000\000\000\000\000\000\000\000\000\017\145\017\145\004Z\000\000\000\000\017\145\000\000\000\000\000\000\000\000\000\000\017\145\000\000\000\000\017\145\000\000\000\000\000\000\000\000\000\000\017\145\017\145\017\145\000\000\000\000\000\000\000\000\000\000\000\000\017\145\000\000\017\145\017\145\000\000\000\000\000\000\000\000\000\000\017\145\000\000\000\000\017\145\000\000\000\000\000\000\000\000\000\000\017\145\000\000\000\000\000\000\017\145\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\145\000\000\017\145\017\145\000\000\017\145\017\145\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\145\000\000\017\145\000\000\017\145\017\145\017\149\000\000\017\145\000\000\017\149\000\000\000\000\017\145\017\149\000\000\017\145\017\145\000\000\017\145\000\000\017\145\017\145\000\000\000\000\017\149\017\149\017\149\000\000\017\149\017\149\017\149\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\149\000\000\000\000\000\000\000\000\000\000\000\000\017\149\017\149\005*\000\000\000\000\017\149\000\000\000\000\000\000\000\000\000\000\017\149\000\000\000\000\017\149\000\000\000\000\000\000\000\000\000\000\017\149\017\149\017\149\000\000\000\000\000\000\000\000\000\000\000\000\017\149\000\000\017\149\017\149\000\000\000\000\000\000\000\000\000\000\017\149\000\000\000\000\017\149\000\000\000\000\000\000\000\000\000\000\017\149\000\000\000\000\000\000\017\149\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\149\000\000\017\149\017\149\000\000\017\149\017\149\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\149\000\000\017\149\000\000\017\149\017\149\017\153\000\000\017\149\000\000\017\153\000\000\000\000\017\149\017\153\000\000\017\149\004F\000\000\017\149\000\000\017\149\017\149\000\000\000\000\017\153\017\153\017\153\000\000\017\153\017\153\017\153\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\153\000\000\000\000\000\000\000\000\000\000\000\000\017\153\017\153\005F\000\000\000\000\017\153\000\000\000\000\000\000\000\000\000\000\017\153\000\000\000\000\017\153\000\000\000\000\000\000\000\000\000\000\017\153\017\153\017\153\000\000\000\000\000\000\000\000\000\000\000\000\017\153\000\000\017\153\017\153\000\000\000\000\000\000\000\000\000\000\017\153\000\000\000\000\017\153\000\000\000\000\000\000\000\000\000\000\017\153\000\000\000\000\000\000\017\153\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\153\000\000\017\153\017\153\000\000\017\153\017\153\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\153\000\000\017\153\000\000\017\153\017\153\017\157\000\000\017\153\000\000\017\157\000\000\000\000\017\153\017\157\000\000\017\153\017\153\000\000\017\153\000\000\017\153\017\153\000\000\000\000\017\157\017\157\017\157\000\000\017\157\017\157\017\157\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\157\000\000\000\000\000\000\000\000\000\000\000\000\017\157\017\157\004>\000\000\000\000\017\157\000\000\000\000\000\000\000\000\000\000\017\157\000\000\000\000\017\157\000\000\000\000\000\000\000\000\000\000\017\157\017\157\017\157\000\000\000\000\000\000\000\000\000\000\000\000\017\157\000\000\017\157\017\157\000\000\000\000\000\000\000\000\000\000\017\157\000\000\000\000\017\157\000\000\000\000\000\000\000\000\000\000\017\157\000\000\000\000\000\000\017\157\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\157\000\000\017\157\017\157\000\000\017\157\017\157\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\157\000\000\017\157\000\000\017\157\017\157\017\161\000\000\017\157\000\000\017\161\000\000\000\000\017\157\017\161\000\000\017\157\004F\000\000\017\157\000\000\017\157\017\157\000\000\000\000\017\161\017\161\017\161\000\000\017\161\017\161\017\161\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\161\000\000\000\000\000\000\000\000\000\000\000\000\017\161\017\161\004Z\000\000\000\000\017\161\000\000\000\000\000\000\000\000\000\000\017\161\000\000\000\000\017\161\000\000\000\000\000\000\000\000\000\000\017\161\017\161\017\161\000\000\000\000\000\000\000\000\000\000\000\000\017\161\000\000\017\161\017\161\000\000\000\000\000\000\000\000\000\000\017\161\000\000\000\000\017\161\000\000\000\000\000\000\000\000\000\000\017\161\000\000\000\000\000\000\017\161\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\161\000\000\017\161\017\161\000\000\017\161\017\161\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\161\000\000\017\161\000\000\017\161\017\161\017\165\000\000\017\161\000\000\017\165\000\000\000\000\017\161\017\165\000\000\017\161\017\161\000\000\017\161\000\000\017\161\017\161\000\000\000\000\017\165\017\165\017\165\000\000\017\165\017\165\017\165\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\165\000\000\000\000\000\000\000\000\000\000\000\000\017\165\017\165\005*\000\000\000\000\017\165\000\000\000\000\000\000\000\000\000\000\017\165\000\000\000\000\017\165\000\000\000\000\000\000\000\000\000\000\017\165\017\165\017\165\000\000\000\000\000\000\000\000\000\000\000\000\017\165\000\000\017\165\017\165\000\000\000\000\000\000\000\000\000\000\017\165\000\000\000\000\017\165\000\000\000\000\000\000\000\000\000\000\017\165\000\000\000\000\000\000\017\165\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\165\000\000\017\165\017\165\000\000\017\165\017\165\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\165\000\000\017\165\000\000\017\165\017\165\017\169\000\000\017\165\000\000\017\169\000\000\000\000\017\165\017\169\000\000\017\165\004F\000\000\017\165\000\000\017\165\017\165\000\000\000\000\017\169\017\169\017\169\000\000\017\169\017\169\017\169\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\169\000\000\000\000\000\000\000\000\000\000\000\000\017\169\017\169\005F\000\000\000\000\017\169\000\000\000\000\000\000\000\000\000\000\017\169\000\000\000\000\017\169\000\000\000\000\000\000\000\000\000\000\017\169\017\169\017\169\000\000\000\000\000\000\000\000\000\000\000\000\017\169\000\000\017\169\017\169\000\000\000\000\000\000\000\000\000\000\017\169\000\000\000\000\017\169\000\000\000\000\000\000\000\000\000\000\017\169\000\000\000\000\000\000\017\169\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\169\000\000\017\169\017\169\000\000\017\169\017\169\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\169\000\000\017\169\000\000\017\169\017\169\018e\000\000\017\169\000\000\018e\000\000\000\000\017\169\018e\000\000\017\169\017\169\000\000\017\169\000\000\017\169\017\169\000\000\000\000\018e\018e\018e\000\000\018e\018e\018e\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018e\000\000\000\000\000\000\000\000\000\000\000\000\018e\018e\005*\000\000\000\000\018e\000\000\000\000\000\000\000\000\000\000\018e\000\000\000\000\018e\000\000\000\000\000\000\000\000\000\000\018e\018e\018e\000\000\000\000\000\000\000\000\000\000\000\000\018e\000\000\018e\018e\000\000\000\000\000\000\000\000\000\000\018e\000\000\000\000\018e\000\000\000\000\000\000\000\000\000\000\018e\000\000\000\000\000\000\018e\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018e\000\000\018e\018e\000\000\018e\018e\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018e\000\000\018e\000\000\018e\018e\018i\000\000\018e\000\000\018i\000\000\000\000\018e\018i\000\000\018e\004F\000\000\018e\000\000\018e\018e\000\000\000\000\018i\018i\018i\000\000\018i\018i\018i\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018i\000\000\000\000\000\000\000\000\000\000\000\000\018i\018i\005F\000\000\000\000\018i\000\000\000\000\000\000\000\000\000\000\018i\000\000\000\000\018i\000\000\000\000\000\000\000\000\000\000\018i\018i\018i\000\000\000\000\000\000\000\000\000\000\000\000\018i\000\000\018i\018i\000\000\000\000\000\000\000\000\000\000\018i\000\000\000\000\018i\000\000\000\000\000\000\000\000\000\000\018i\000\000\000\000\000\000\018i\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018i\000\000\018i\018i\000\000\018i\018i\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018i\000\000\018i\000\000\018i\018i\018U\000\000\018i\000\000\018U\000\000\000\000\018i\018U\000\000\018i\018i\000\000\018i\000\000\018i\018i\000\000\000\000\018U\018U\018U\000\000\018U\018U\018U\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018U\000\000\000\000\000\000\000\000\000\000\000\000\018U\018U\005*\000\000\000\000\018U\000\000\000\000\000\000\000\000\000\000\018U\000\000\000\000\018U\000\000\000\000\000\000\000\000\000\000\018U\018U\018U\000\000\000\000\000\000\000\000\000\000\000\000\018U\000\000\018U\018U\000\000\000\000\000\000\000\000\000\000\018U\000\000\000\000\018U\000\000\000\000\000\000\000\000\000\000\018U\000\000\000\000\000\000\018U\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018U\000\000\018U\018U\000\000\018U\018U\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018U\000\000\018U\000\000\018U\018U\018Y\000\000\018U\000\000\018Y\000\000\000\000\018U\018Y\000\000\018U\004F\000\000\018U\000\000\018U\018U\000\000\000\000\018Y\018Y\018Y\000\000\018Y\018Y\018Y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018Y\000\000\000\000\000\000\000\000\000\000\000\000\018Y\018Y\005F\000\000\000\000\018Y\000\000\000\000\000\000\000\000\000\000\018Y\000\000\000\000\018Y\000\000\000\000\000\000\000\000\000\000\018Y\018Y\018Y\000\000\000\000\000\000\000\000\000\000\000\000\018Y\000\000\018Y\018Y\000\000\000\000\000\000\000\000\000\000\018Y\000\000\000\000\018Y\000\000\000\000\000\000\000\000\000\000\018Y\000\000\000\000\000\000\018Y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018Y\000\000\018Y\018Y\000\000\018Y\018Y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018Y\000\000\018Y\000\000\018Y\018Y\018-\000\000\018Y\000\000\018-\000\000\000\000\018Y\018-\000\000\018Y\018Y\000\000\018Y\000\000\018Y\018Y\000\000\000\000\018-\018-\018-\000\000\018-\018-\018-\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018-\000\000\000\000\000\000\000\000\000\000\000\000\018-\018-\004>\000\000\000\000\018-\000\000\000\000\000\000\000\000\000\000\018-\000\000\000\000\018-\000\000\000\000\000\000\000\000\000\000\018-\018-\018-\000\000\000\000\000\000\000\000\000\000\000\000\018-\000\000\018-\018-\000\000\000\000\000\000\000\000\000\000\018-\000\000\000\000\018-\000\000\000\000\000\000\000\000\000\000\018-\000\000\000\000\000\000\018-\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018-\000\000\018-\018-\000\000\018-\018-\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018-\000\000\018-\000\000\018-\018-\0181\000\000\018-\000\000\0181\000\000\000\000\018-\0181\000\000\018-\004F\000\000\018-\000\000\018-\018-\000\000\000\000\0181\0181\0181\000\000\0181\0181\0181\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0181\000\000\000\000\000\000\000\000\000\000\000\000\0181\0181\004Z\000\000\000\000\0181\000\000\000\000\000\000\000\000\000\000\0181\000\000\000\000\0181\000\000\000\000\000\000\000\000\000\000\0181\0181\0181\000\000\000\000\000\000\000\000\000\000\000\000\0181\000\000\0181\0181\000\000\000\000\000\000\000\000\000\000\0181\000\000\000\000\0181\000\000\000\000\000\000\000\000\000\000\0181\000\000\000\000\000\000\0181\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0181\000\000\0181\0181\000\000\0181\0181\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0181\000\000\0181\000\000\0181\0181\0185\000\000\0181\000\000\0185\000\000\000\000\0181\0185\000\000\0181\0181\000\000\0181\000\000\0181\0181\000\000\000\000\0185\0185\0185\000\000\0185\0185\0185\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0185\000\000\000\000\000\000\000\000\000\000\000\000\0185\0185\005*\000\000\000\000\0185\000\000\000\000\000\000\000\000\000\000\0185\000\000\000\000\0185\000\000\000\000\000\000\000\000\000\000\0185\0185\0185\000\000\000\000\000\000\000\000\000\000\000\000\0185\000\000\0185\0185\000\000\000\000\000\000\000\000\000\000\0185\000\000\000\000\0185\000\000\000\000\000\000\000\000\000\000\0185\000\000\000\000\000\000\0185\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0185\000\000\0185\0185\000\000\0185\0185\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0185\000\000\0185\000\000\0185\0185\0189\000\000\0185\000\000\0189\000\000\000\000\0185\0189\000\000\0185\004F\000\000\0185\000\000\0185\0185\000\000\000\000\0189\0189\0189\000\000\0189\0189\0189\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0189\000\000\000\000\000\000\000\000\000\000\000\000\0189\0189\005F\000\000\000\000\0189\000\000\000\000\000\000\000\000\000\000\0189\000\000\000\000\0189\000\000\000\000\000\000\000\000\000\000\0189\0189\0189\000\000\000\000\000\000\000\000\000\000\000\000\0189\000\000\0189\0189\000\000\000\000\000\000\000\000\000\000\0189\000\000\000\000\0189\000\000\000\000\000\000\000\000\000\000\0189\000\000\000\000\000\000\0189\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0189\000\000\0189\0189\000\000\0189\0189\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0189\000\000\0189\000\000\0189\0189\018=\000\000\0189\000\000\018=\000\000\000\000\0189\018=\000\000\0189\0189\000\000\0189\000\000\0189\0189\000\000\000\000\018=\018=\018=\000\000\018=\018=\018=\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018=\000\000\000\000\000\000\000\000\000\000\000\000\018=\018=\004>\000\000\000\000\018=\000\000\000\000\000\000\000\000\000\000\018=\000\000\000\000\018=\000\000\000\000\000\000\000\000\000\000\018=\018=\018=\000\000\000\000\000\000\000\000\000\000\000\000\018=\000\000\018=\018=\000\000\000\000\000\000\000\000\000\000\018=\000\000\000\000\018=\000\000\000\000\000\000\000\000\000\000\018=\000\000\000\000\000\000\018=\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018=\000\000\018=\018=\000\000\018=\018=\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018=\000\000\018=\000\000\018=\018=\018A\000\000\018=\000\000\018A\000\000\000\000\018=\018A\000\000\018=\004F\000\000\018=\000\000\018=\018=\000\000\000\000\018A\018A\018A\000\000\018A\018A\018A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018A\000\000\000\000\000\000\000\000\000\000\000\000\018A\018A\004Z\000\000\000\000\018A\000\000\000\000\000\000\000\000\000\000\018A\000\000\000\000\018A\000\000\000\000\000\000\000\000\000\000\018A\018A\018A\000\000\000\000\000\000\000\000\000\000\000\000\018A\000\000\018A\018A\000\000\000\000\000\000\000\000\000\000\018A\000\000\000\000\018A\000\000\000\000\000\000\000\000\000\000\018A\000\000\000\000\000\000\018A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018A\000\000\018A\018A\000\000\018A\018A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018A\000\000\018A\000\000\018A\018A\018E\000\000\018A\000\000\018E\000\000\000\000\018A\018E\000\000\018A\018A\000\000\018A\000\000\018A\018A\000\000\000\000\018E\018E\018E\000\000\018E\018E\018E\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018E\000\000\000\000\000\000\000\000\000\000\000\000\018E\018E\005*\000\000\000\000\018E\000\000\000\000\000\000\000\000\000\000\018E\000\000\000\000\018E\000\000\000\000\000\000\000\000\000\000\018E\018E\018E\000\000\000\000\000\000\000\000\000\000\000\000\018E\000\000\018E\018E\000\000\000\000\000\000\000\000\000\000\018E\000\000\000\000\018E\000\000\000\000\000\000\000\000\000\000\018E\000\000\000\000\000\000\018E\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018E\000\000\018E\018E\000\000\018E\018E\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018E\000\000\018E\000\000\018E\018E\018I\000\000\018E\000\000\018I\000\000\000\000\018E\018I\000\000\018E\004F\000\000\018E\000\000\018E\018E\000\000\000\000\018I\018I\018I\000\000\018I\018I\018I\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018I\000\000\000\000\000\000\000\000\000\000\000\000\018I\018I\005F\000\000\000\000\018I\000\000\000\000\000\000\000\000\000\000\018I\000\000\000\000\018I\000\000\000\000\000\000\000\000\000\000\018I\018I\018I\000\000\000\000\000\000\000\000\000\000\000\000\018I\000\000\018I\018I\000\000\000\000\000\000\000\000\000\000\018I\000\000\000\000\018I\000\000\000\000\000\000\000\000\000\000\018I\000\000\000\000\000\000\018I\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018I\000\000\018I\018I\000\000\018I\018I\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018I\000\000\018I\000\000\018I\018I\017\173\000\000\018I\000\000\017\173\000\000\000\000\018I\017\173\000\000\018I\018I\000\000\018I\000\000\018I\018I\000\000\000\000\017\173\017\173\017\173\000\000\017\173\017\173\017\173\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\173\000\000\000\000\000\000\000\000\000\000\000\000\017\173\017\173\004>\000\000\000\000\017\173\000\000\000\000\000\000\000\000\000\000\017\173\000\000\000\000\017\173\000\000\000\000\000\000\000\000\000\000\017\173\017\173\017\173\000\000\000\000\000\000\000\000\000\000\000\000\017\173\000\000\017\173\017\173\000\000\000\000\000\000\000\000\000\000\017\173\000\000\000\000\017\173\000\000\000\000\000\000\000\000\000\000\017\173\000\000\000\000\000\000\017\173\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\173\000\000\017\173\017\173\000\000\017\173\017\173\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\173\000\000\017\173\000\000\017\173\017\173\017\177\000\000\017\173\000\000\017\177\000\000\000\000\017\173\017\177\000\000\017\173\004F\000\000\017\173\000\000\017\173\017\173\000\000\000\000\017\177\017\177\017\177\000\000\017\177\017\177\017\177\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\177\000\000\000\000\000\000\000\000\000\000\000\000\017\177\017\177\004Z\000\000\000\000\017\177\000\000\000\000\000\000\000\000\000\000\017\177\000\000\000\000\017\177\000\000\000\000\000\000\000\000\000\000\017\177\017\177\017\177\000\000\000\000\000\000\000\000\000\000\000\000\017\177\000\000\017\177\017\177\000\000\000\000\000\000\000\000\000\000\017\177\000\000\000\000\017\177\000\000\000\000\000\000\000\000\000\000\017\177\000\000\000\000\000\000\017\177\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\177\000\000\017\177\017\177\000\000\017\177\017\177\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\177\000\000\017\177\000\000\017\177\017\177\017\181\000\000\017\177\000\000\017\181\000\000\000\000\017\177\017\181\000\000\017\177\017\177\000\000\017\177\000\000\017\177\017\177\000\000\000\000\017\181\017\181\017\181\000\000\017\181\017\181\017\181\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\181\000\000\000\000\000\000\000\000\000\000\000\000\017\181\017\181\005*\000\000\000\000\017\181\000\000\000\000\000\000\000\000\000\000\017\181\000\000\000\000\017\181\000\000\000\000\000\000\000\000\000\000\017\181\017\181\017\181\000\000\000\000\000\000\000\000\000\000\000\000\017\181\000\000\017\181\017\181\000\000\000\000\000\000\000\000\000\000\017\181\000\000\000\000\017\181\000\000\000\000\000\000\000\000\000\000\017\181\000\000\000\000\000\000\017\181\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\181\000\000\017\181\017\181\000\000\017\181\017\181\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\181\000\000\017\181\000\000\017\181\017\181\017\185\000\000\017\181\000\000\017\185\000\000\000\000\017\181\017\185\000\000\017\181\004F\000\000\017\181\000\000\017\181\017\181\000\000\000\000\017\185\017\185\017\185\000\000\017\185\017\185\017\185\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\185\000\000\000\000\000\000\000\000\000\000\000\000\017\185\017\185\005F\000\000\000\000\017\185\000\000\000\000\000\000\000\000\000\000\017\185\000\000\000\000\017\185\000\000\000\000\000\000\000\000\000\000\017\185\017\185\017\185\000\000\000\000\000\000\000\000\000\000\000\000\017\185\000\000\017\185\017\185\000\000\000\000\000\000\000\000\000\000\017\185\000\000\000\000\017\185\000\000\000\000\000\000\000\000\000\000\017\185\000\000\000\000\000\000\017\185\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\185\000\000\017\185\017\185\000\000\017\185\017\185\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\185\000\000\017\185\000\000\017\185\017\185\017\189\000\000\017\185\000\000\017\189\000\000\000\000\017\185\017\189\000\000\017\185\017\185\000\000\017\185\000\000\017\185\017\185\000\000\000\000\017\189\017\189\017\189\000\000\017\189\017\189\017\189\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\189\000\000\000\000\000\000\000\000\000\000\000\000\017\189\017\189\004>\000\000\000\000\017\189\000\000\000\000\000\000\000\000\000\000\017\189\000\000\000\000\017\189\000\000\000\000\000\000\000\000\000\000\017\189\017\189\017\189\000\000\000\000\000\000\000\000\000\000\000\000\017\189\000\000\017\189\017\189\000\000\000\000\000\000\000\000\000\000\017\189\000\000\000\000\017\189\000\000\000\000\000\000\000\000\000\000\017\189\000\000\000\000\000\000\017\189\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\189\000\000\017\189\017\189\000\000\017\189\017\189\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\189\000\000\017\189\000\000\017\189\017\189\017\193\000\000\017\189\000\000\017\193\000\000\000\000\017\189\017\193\000\000\017\189\004F\000\000\017\189\000\000\017\189\017\189\000\000\000\000\017\193\017\193\017\193\000\000\017\193\017\193\017\193\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\193\000\000\000\000\000\000\000\000\000\000\000\000\017\193\017\193\004Z\000\000\000\000\017\193\000\000\000\000\000\000\000\000\000\000\017\193\000\000\000\000\017\193\000\000\000\000\000\000\000\000\000\000\017\193\017\193\017\193\000\000\000\000\000\000\000\000\000\000\000\000\017\193\000\000\017\193\017\193\000\000\000\000\000\000\000\000\000\000\017\193\000\000\000\000\017\193\000\000\000\000\000\000\000\000\000\000\017\193\000\000\000\000\000\000\017\193\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\193\000\000\017\193\017\193\000\000\017\193\017\193\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\193\000\000\017\193\000\000\017\193\017\193\017\197\000\000\017\193\000\000\017\197\000\000\000\000\017\193\017\197\000\000\017\193\017\193\000\000\017\193\000\000\017\193\017\193\000\000\000\000\017\197\017\197\017\197\000\000\017\197\017\197\017\197\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\197\000\000\000\000\000\000\000\000\000\000\000\000\017\197\017\197\005*\000\000\000\000\017\197\000\000\000\000\000\000\000\000\000\000\017\197\000\000\000\000\017\197\000\000\000\000\000\000\000\000\000\000\017\197\017\197\017\197\000\000\000\000\000\000\000\000\000\000\000\000\017\197\000\000\017\197\017\197\000\000\000\000\000\000\000\000\000\000\017\197\000\000\000\000\017\197\000\000\000\000\000\000\000\000\000\000\017\197\000\000\000\000\000\000\017\197\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\197\000\000\017\197\017\197\000\000\017\197\017\197\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\197\000\000\017\197\000\000\017\197\017\197\017\201\000\000\017\197\000\000\017\201\000\000\000\000\017\197\017\201\000\000\017\197\004F\000\000\017\197\000\000\017\197\017\197\000\000\000\000\017\201\017\201\017\201\000\000\017\201\017\201\017\201\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\201\000\000\000\000\000\000\000\000\000\000\000\000\017\201\017\201\005F\000\000\000\000\017\201\000\000\000\000\000\000\000\000\000\000\017\201\000\000\000\000\017\201\000\000\000\000\000\000\000\000\000\000\017\201\017\201\017\201\000\000\000\000\000\000\000\000\000\000\000\000\017\201\000\000\017\201\017\201\000\000\000\000\000\000\000\000\000\000\017\201\000\000\000\000\017\201\000\000\000\000\000\000\000\000\000\000\017\201\000\000\000\000\000\000\017\201\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\201\000\000\017\201\017\201\000\000\017\201\017\201\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\201\000\000\017\201\000\000\017\201\017\201\017\205\000\000\017\201\000\000\017\205\000\000\000\000\017\201\017\205\000\000\017\201\017\201\000\000\017\201\000\000\017\201\017\201\000\000\000\000\017\205\017\205\017\205\000\000\017\205\017\205\017\205\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\205\000\000\000\000\000\000\000\000\000\000\000\000\017\205\017\205\004>\000\000\000\000\017\205\000\000\000\000\000\000\000\000\000\000\017\205\000\000\000\000\017\205\000\000\000\000\000\000\000\000\000\000\017\205\017\205\017\205\000\000\000\000\000\000\000\000\000\000\000\000\017\205\000\000\017\205\017\205\000\000\000\000\000\000\000\000\000\000\017\205\000\000\000\000\017\205\000\000\000\000\000\000\000\000\000\000\017\205\000\000\000\000\000\000\017\205\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\205\000\000\017\205\017\205\000\000\017\205\017\205\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\205\000\000\017\205\000\000\017\205\017\205\017\209\000\000\017\205\000\000\017\209\000\000\000\000\017\205\017\209\000\000\017\205\004F\000\000\017\205\000\000\017\205\017\205\000\000\000\000\017\209\017\209\017\209\000\000\017\209\017\209\017\209\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\209\000\000\000\000\000\000\000\000\000\000\000\000\017\209\017\209\004Z\000\000\000\000\017\209\000\000\000\000\000\000\000\000\000\000\017\209\000\000\000\000\017\209\000\000\000\000\000\000\000\000\000\000\017\209\017\209\017\209\000\000\000\000\000\000\000\000\000\000\000\000\017\209\000\000\017\209\017\209\000\000\000\000\000\000\000\000\000\000\017\209\000\000\000\000\017\209\000\000\000\000\000\000\000\000\000\000\017\209\000\000\000\000\000\000\017\209\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\209\000\000\017\209\017\209\000\000\017\209\017\209\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\209\000\000\017\209\000\000\017\209\017\209\017\213\000\000\017\209\000\000\017\213\000\000\000\000\017\209\017\213\000\000\017\209\017\209\000\000\017\209\000\000\017\209\017\209\000\000\000\000\017\213\017\213\017\213\000\000\017\213\017\213\017\213\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\213\000\000\000\000\000\000\000\000\000\000\000\000\017\213\017\213\005*\000\000\000\000\017\213\000\000\000\000\000\000\000\000\000\000\017\213\000\000\000\000\017\213\000\000\000\000\000\000\000\000\000\000\017\213\017\213\017\213\000\000\000\000\000\000\000\000\000\000\000\000\017\213\000\000\017\213\017\213\000\000\000\000\000\000\000\000\000\000\017\213\000\000\000\000\017\213\000\000\000\000\000\000\000\000\000\000\017\213\000\000\000\000\000\000\017\213\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\213\000\000\017\213\017\213\000\000\017\213\017\213\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\213\000\000\017\213\000\000\017\213\017\213\017\217\000\000\017\213\000\000\017\217\000\000\000\000\017\213\017\217\000\000\017\213\004F\000\000\017\213\000\000\017\213\017\213\000\000\000\000\017\217\017\217\017\217\000\000\017\217\017\217\017\217\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\217\000\000\000\000\000\000\000\000\000\000\000\000\017\217\017\217\005F\000\000\000\000\017\217\000\000\000\000\000\000\000\000\000\000\017\217\000\000\000\000\017\217\000\000\000\000\000\000\000\000\000\000\017\217\017\217\017\217\000\000\000\000\000\000\000\000\000\000\000\000\017\217\000\000\017\217\017\217\000\000\000\000\000\000\000\000\000\000\017\217\000\000\000\000\017\217\000\000\000\000\000\000\000\000\000\000\017\217\000\000\000\000\000\000\017\217\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\217\000\000\017\217\017\217\000\000\017\217\017\217\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\217\000\000\017\217\000\000\017\217\017\217\017\221\000\000\017\217\000\000\017\221\000\000\000\000\017\217\017\221\000\000\017\217\017\217\000\000\017\217\000\000\017\217\017\217\000\000\000\000\017\221\017\221\017\221\000\000\017\221\017\221\017\221\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\221\000\000\000\000\000\000\000\000\000\000\000\000\017\221\017\221\004>\000\000\000\000\017\221\000\000\000\000\000\000\000\000\000\000\017\221\000\000\000\000\017\221\000\000\000\000\000\000\000\000\000\000\017\221\017\221\017\221\000\000\000\000\000\000\000\000\000\000\000\000\017\221\000\000\017\221\017\221\000\000\000\000\000\000\000\000\000\000\017\221\000\000\000\000\017\221\000\000\000\000\000\000\000\000\000\000\017\221\000\000\000\000\000\000\017\221\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\221\000\000\017\221\017\221\000\000\017\221\017\221\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\221\000\000\017\221\000\000\017\221\017\221\017\225\000\000\017\221\000\000\017\225\000\000\000\000\017\221\017\225\000\000\017\221\004F\000\000\017\221\000\000\017\221\017\221\000\000\000\000\017\225\017\225\017\225\000\000\017\225\017\225\017\225\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\225\000\000\000\000\000\000\000\000\000\000\000\000\017\225\017\225\004Z\000\000\000\000\017\225\000\000\000\000\000\000\000\000\000\000\017\225\000\000\000\000\017\225\000\000\000\000\000\000\000\000\000\000\017\225\017\225\017\225\000\000\000\000\000\000\000\000\000\000\000\000\017\225\000\000\017\225\017\225\000\000\000\000\000\000\000\000\000\000\017\225\000\000\000\000\017\225\000\000\000\000\000\000\000\000\000\000\017\225\000\000\000\000\000\000\017\225\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\225\000\000\017\225\017\225\000\000\017\225\017\225\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\225\000\000\017\225\000\000\017\225\017\225\017\229\000\000\017\225\000\000\017\229\000\000\000\000\017\225\017\229\000\000\017\225\017\225\000\000\017\225\000\000\017\225\017\225\000\000\000\000\017\229\017\229\017\229\000\000\017\229\017\229\017\229\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\229\000\000\000\000\000\000\000\000\000\000\000\000\017\229\017\229\005*\000\000\000\000\017\229\000\000\000\000\000\000\000\000\000\000\017\229\000\000\000\000\017\229\000\000\000\000\000\000\000\000\000\000\017\229\017\229\017\229\000\000\000\000\000\000\000\000\000\000\000\000\017\229\000\000\017\229\017\229\000\000\000\000\000\000\000\000\000\000\017\229\000\000\000\000\017\229\000\000\000\000\000\000\000\000\000\000\017\229\000\000\000\000\000\000\017\229\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\229\000\000\017\229\017\229\000\000\017\229\017\229\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\229\000\000\017\229\000\000\017\229\017\229\017\233\000\000\017\229\000\000\017\233\000\000\000\000\017\229\017\233\000\000\017\229\004F\000\000\017\229\000\000\017\229\017\229\000\000\000\000\017\233\017\233\017\233\000\000\017\233\017\233\017\233\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\233\000\000\000\000\000\000\000\000\000\000\000\000\017\233\017\233\005F\000\000\000\000\017\233\000\000\000\000\000\000\000\000\000\000\017\233\000\000\000\000\017\233\000\000\000\000\000\000\000\000\000\000\017\233\017\233\017\233\000\000\000\000\000\000\000\000\000\000\000\000\017\233\000\000\017\233\017\233\000\000\000\000\000\000\000\000\000\000\017\233\000\000\000\000\017\233\000\000\000\000\000\000\000\000\000\000\017\233\000\000\000\000\000\000\017\233\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\233\000\000\017\233\017\233\000\000\017\233\017\233\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\233\000\000\017\233\000\000\017\233\017\233\017\237\000\000\017\233\000\000\017\237\000\000\000\000\017\233\017\237\000\000\017\233\017\233\000\000\017\233\000\000\017\233\017\233\000\000\000\000\017\237\017\237\017\237\000\000\017\237\017\237\017\237\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\237\000\000\000\000\000\000\000\000\000\000\000\000\017\237\017\237\004>\000\000\000\000\017\237\000\000\000\000\000\000\000\000\000\000\017\237\000\000\000\000\017\237\000\000\000\000\000\000\000\000\000\000\017\237\017\237\017\237\000\000\000\000\000\000\000\000\000\000\000\000\017\237\000\000\017\237\017\237\000\000\000\000\000\000\000\000\000\000\017\237\000\000\000\000\017\237\000\000\000\000\000\000\000\000\000\000\017\237\000\000\000\000\000\000\017\237\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\237\000\000\017\237\017\237\000\000\017\237\017\237\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\237\000\000\017\237\000\000\017\237\017\237\017\241\000\000\017\237\000\000\017\241\000\000\000\000\017\237\017\241\000\000\017\237\004F\000\000\017\237\000\000\017\237\017\237\000\000\000\000\017\241\017\241\017\241\000\000\017\241\017\241\017\241\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\241\000\000\000\000\000\000\000\000\000\000\000\000\017\241\017\241\004Z\000\000\000\000\017\241\000\000\000\000\000\000\000\000\000\000\017\241\000\000\000\000\017\241\000\000\000\000\000\000\000\000\000\000\017\241\017\241\017\241\000\000\000\000\000\000\000\000\000\000\000\000\017\241\000\000\017\241\017\241\000\000\000\000\000\000\000\000\000\000\017\241\000\000\000\000\017\241\000\000\000\000\000\000\000\000\000\000\017\241\000\000\000\000\000\000\017\241\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\241\000\000\017\241\017\241\000\000\017\241\017\241\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\241\000\000\017\241\000\000\017\241\017\241\017\245\000\000\017\241\000\000\017\245\000\000\000\000\017\241\017\245\000\000\017\241\017\241\000\000\017\241\000\000\017\241\017\241\000\000\000\000\017\245\017\245\017\245\000\000\017\245\017\245\017\245\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\245\000\000\000\000\000\000\000\000\000\000\000\000\017\245\017\245\005*\000\000\000\000\017\245\000\000\000\000\000\000\000\000\000\000\017\245\000\000\000\000\017\245\000\000\000\000\000\000\000\000\000\000\017\245\017\245\017\245\000\000\000\000\000\000\000\000\000\000\000\000\017\245\000\000\017\245\017\245\000\000\000\000\000\000\000\000\000\000\017\245\000\000\000\000\017\245\000\000\000\000\000\000\000\000\000\000\017\245\000\000\000\000\000\000\017\245\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\245\000\000\017\245\017\245\000\000\017\245\017\245\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\245\000\000\017\245\000\000\017\245\017\245\017\249\000\000\017\245\000\000\017\249\000\000\000\000\017\245\017\249\000\000\017\245\004F\000\000\017\245\000\000\017\245\017\245\000\000\000\000\017\249\017\249\017\249\000\000\017\249\017\249\017\249\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\249\000\000\000\000\000\000\000\000\000\000\000\000\017\249\017\249\005F\000\000\000\000\017\249\000\000\000\000\000\000\000\000\000\000\017\249\000\000\000\000\017\249\000\000\000\000\000\000\000\000\000\000\017\249\017\249\017\249\000\000\000\000\000\000\000\000\000\000\000\000\017\249\000\000\017\249\017\249\000\000\000\000\000\000\000\000\000\000\017\249\000\000\000\000\017\249\000\000\000\000\000\000\000\000\000\000\017\249\000\000\000\000\000\000\017\249\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\249\000\000\017\249\017\249\000\000\017\249\017\249\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\249\000\000\017\249\000\000\017\249\017\249\017\253\000\000\017\249\000\000\017\253\000\000\000\000\017\249\017\253\000\000\017\249\017\249\000\000\017\249\000\000\017\249\017\249\000\000\000\000\017\253\017\253\017\253\000\000\017\253\017\253\017\253\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\253\000\000\000\000\000\000\000\000\000\000\000\000\017\253\017\253\004>\000\000\000\000\017\253\000\000\000\000\000\000\000\000\000\000\017\253\000\000\000\000\017\253\000\000\000\000\000\000\000\000\000\000\017\253\017\253\017\253\000\000\000\000\000\000\000\000\000\000\000\000\017\253\000\000\017\253\017\253\000\000\000\000\000\000\000\000\000\000\017\253\000\000\000\000\017\253\000\000\000\000\000\000\000\000\000\000\017\253\000\000\000\000\000\000\017\253\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\253\000\000\017\253\017\253\000\000\017\253\017\253\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\253\000\000\017\253\000\000\017\253\017\253\018\001\000\000\017\253\000\000\018\001\000\000\000\000\017\253\018\001\000\000\017\253\004F\000\000\017\253\000\000\017\253\017\253\000\000\000\000\018\001\018\001\018\001\000\000\018\001\018\001\018\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\001\000\000\000\000\000\000\000\000\000\000\000\000\018\001\018\001\004Z\000\000\000\000\018\001\000\000\000\000\000\000\000\000\000\000\018\001\000\000\000\000\018\001\000\000\000\000\000\000\000\000\000\000\018\001\018\001\018\001\000\000\000\000\000\000\000\000\000\000\000\000\018\001\000\000\018\001\018\001\000\000\000\000\000\000\000\000\000\000\018\001\000\000\000\000\018\001\000\000\000\000\000\000\000\000\000\000\018\001\000\000\000\000\000\000\018\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\001\000\000\018\001\018\001\000\000\018\001\018\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\001\000\000\018\001\000\000\018\001\018\001\018\005\000\000\018\001\000\000\018\005\000\000\000\000\018\001\018\005\000\000\018\001\018\001\000\000\018\001\000\000\018\001\018\001\000\000\000\000\018\005\018\005\018\005\000\000\018\005\018\005\018\005\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\005\000\000\000\000\000\000\000\000\000\000\000\000\018\005\018\005\005*\000\000\000\000\018\005\000\000\000\000\000\000\000\000\000\000\018\005\000\000\000\000\018\005\000\000\000\000\000\000\000\000\000\000\018\005\018\005\018\005\000\000\000\000\000\000\000\000\000\000\000\000\018\005\000\000\018\005\018\005\000\000\000\000\000\000\000\000\000\000\018\005\000\000\000\000\018\005\000\000\000\000\000\000\000\000\000\000\018\005\000\000\000\000\000\000\018\005\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\005\000\000\018\005\018\005\000\000\018\005\018\005\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\005\000\000\018\005\000\000\018\005\018\005\018\t\000\000\018\005\000\000\018\t\000\000\000\000\018\005\018\t\000\000\018\005\004F\000\000\018\005\000\000\018\005\018\005\000\000\000\000\018\t\018\t\018\t\000\000\018\t\018\t\018\t\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\t\000\000\000\000\000\000\000\000\000\000\000\000\018\t\018\t\005F\000\000\000\000\018\t\000\000\000\000\000\000\000\000\000\000\018\t\000\000\000\000\018\t\000\000\000\000\000\000\000\000\000\000\018\t\018\t\018\t\000\000\000\000\000\000\000\000\000\000\000\000\018\t\000\000\018\t\018\t\000\000\000\000\000\000\000\000\000\000\018\t\000\000\000\000\018\t\000\000\000\000\000\000\000\000\000\000\018\t\000\000\000\000\000\000\018\t\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\t\000\000\018\t\018\t\000\000\018\t\018\t\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\t\000\000\018\t\000\000\018\t\018\t\018\r\000\000\018\t\000\000\018\r\000\000\000\000\018\t\018\r\000\000\018\t\018\t\000\000\018\t\000\000\018\t\018\t\000\000\000\000\018\r\018\r\018\r\000\000\018\r\018\r\018\r\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\r\000\000\000\000\000\000\000\000\000\000\000\000\018\r\018\r\004>\000\000\000\000\018\r\000\000\000\000\000\000\000\000\000\000\018\r\000\000\000\000\018\r\000\000\000\000\000\000\000\000\000\000\018\r\018\r\018\r\000\000\000\000\000\000\000\000\000\000\000\000\018\r\000\000\018\r\018\r\000\000\000\000\000\000\000\000\000\000\018\r\000\000\000\000\018\r\000\000\000\000\000\000\000\000\000\000\018\r\000\000\000\000\000\000\018\r\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\r\000\000\018\r\018\r\000\000\018\r\018\r\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\r\000\000\018\r\000\000\018\r\018\r\018\017\000\000\018\r\000\000\018\017\000\000\000\000\018\r\018\017\000\000\018\r\004F\000\000\018\r\000\000\018\r\018\r\000\000\000\000\018\017\018\017\018\017\000\000\018\017\018\017\018\017\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\017\000\000\000\000\000\000\000\000\000\000\000\000\018\017\018\017\004Z\000\000\000\000\018\017\000\000\000\000\000\000\000\000\000\000\018\017\000\000\000\000\018\017\000\000\000\000\000\000\000\000\000\000\018\017\018\017\018\017\000\000\000\000\000\000\000\000\000\000\000\000\018\017\000\000\018\017\018\017\000\000\000\000\000\000\000\000\000\000\018\017\000\000\000\000\018\017\000\000\000\000\000\000\000\000\000\000\018\017\000\000\000\000\000\000\018\017\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\017\000\000\018\017\018\017\000\000\018\017\018\017\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\017\000\000\018\017\000\000\018\017\018\017\018\021\000\000\018\017\000\000\018\021\000\000\000\000\018\017\018\021\000\000\018\017\018\017\000\000\018\017\000\000\018\017\018\017\000\000\000\000\018\021\018\021\018\021\000\000\018\021\018\021\018\021\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\021\000\000\000\000\000\000\000\000\000\000\000\000\018\021\018\021\005*\000\000\000\000\018\021\000\000\000\000\000\000\000\000\000\000\018\021\000\000\000\000\018\021\000\000\000\000\000\000\000\000\000\000\018\021\018\021\018\021\000\000\000\000\000\000\000\000\000\000\000\000\018\021\000\000\018\021\018\021\000\000\000\000\000\000\000\000\000\000\018\021\000\000\000\000\018\021\000\000\000\000\000\000\000\000\000\000\018\021\000\000\000\000\000\000\018\021\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\021\000\000\018\021\018\021\000\000\018\021\018\021\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\021\000\000\018\021\000\000\018\021\018\021\018\025\000\000\018\021\000\000\018\025\000\000\000\000\018\021\018\025\000\000\018\021\004F\000\000\018\021\000\000\018\021\018\021\000\000\000\000\018\025\018\025\018\025\000\000\018\025\018\025\018\025\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\025\000\000\000\000\000\000\000\000\000\000\000\000\018\025\018\025\005F\000\000\000\000\018\025\000\000\000\000\000\000\000\000\000\000\018\025\000\000\000\000\018\025\000\000\000\000\000\000\000\000\000\000\018\025\018\025\018\025\000\000\000\000\000\000\000\000\000\000\000\000\018\025\000\000\018\025\018\025\000\000\000\000\000\000\000\000\000\000\018\025\000\000\000\000\018\025\000\000\000\000\000\000\000\000\000\000\018\025\000\000\000\000\000\000\018\025\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\025\000\000\018\025\018\025\000\000\018\025\018\025\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\025\000\000\018\025\000\000\018\025\018\025\018\029\000\000\018\025\000\000\018\029\000\000\000\000\018\025\018\029\000\000\018\025\018\025\000\000\018\025\000\000\018\025\018\025\000\000\000\000\018\029\018\029\018\029\000\000\018\029\018\029\018\029\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\029\000\000\000\000\000\000\000\000\000\000\000\000\018\029\018\029\004>\000\000\000\000\018\029\000\000\000\000\000\000\000\000\000\000\018\029\000\000\000\000\018\029\000\000\000\000\000\000\000\000\000\000\018\029\018\029\018\029\000\000\000\000\000\000\000\000\000\000\000\000\018\029\000\000\018\029\018\029\000\000\000\000\000\000\000\000\000\000\018\029\000\000\000\000\018\029\000\000\000\000\000\000\000\000\000\000\018\029\000\000\000\000\000\000\018\029\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\029\000\000\018\029\018\029\000\000\018\029\018\029\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\029\000\000\018\029\000\000\018\029\018\029\018!\000\000\018\029\000\000\018!\000\000\000\000\018\029\018!\000\000\018\029\004F\000\000\018\029\000\000\018\029\018\029\000\000\000\000\018!\018!\018!\000\000\018!\018!\018!\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018!\000\000\000\000\000\000\000\000\000\000\000\000\018!\018!\004Z\000\000\000\000\018!\000\000\000\000\000\000\000\000\000\000\018!\000\000\000\000\018!\000\000\000\000\000\000\000\000\000\000\018!\018!\018!\000\000\000\000\000\000\000\000\000\000\000\000\018!\000\000\018!\018!\000\000\000\000\000\000\000\000\000\000\018!\000\000\000\000\018!\000\000\000\000\000\000\000\000\000\000\018!\000\000\000\000\000\000\018!\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018!\000\000\018!\018!\000\000\018!\018!\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018!\000\000\018!\000\000\018!\018!\018%\000\000\018!\000\000\018%\000\000\000\000\018!\018%\000\000\018!\018!\000\000\018!\000\000\018!\018!\000\000\000\000\018%\018%\018%\000\000\018%\018%\018%\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018%\000\000\000\000\000\000\000\000\000\000\000\000\018%\018%\005*\000\000\000\000\018%\000\000\000\000\000\000\000\000\000\000\018%\000\000\000\000\018%\000\000\000\000\000\000\000\000\000\000\018%\018%\018%\000\000\000\000\000\000\000\000\000\000\000\000\018%\000\000\018%\018%\000\000\000\000\000\000\000\000\000\000\018%\000\000\000\000\018%\000\000\000\000\000\000\000\000\000\000\018%\000\000\000\000\000\000\018%\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018%\000\000\018%\018%\000\000\018%\018%\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018%\000\000\018%\000\000\018%\018%\018)\000\000\018%\000\000\018)\000\000\000\000\018%\018)\000\000\018%\004F\000\000\018%\000\000\018%\018%\000\000\000\000\018)\018)\018)\000\000\018)\018)\018)\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018)\000\000\000\000\000\000\000\000\000\000\000\000\018)\018)\005F\000\000\000\000\018)\000\000\000\000\000\000\000\000\000\000\018)\000\000\000\000\018)\000\000\000\000\000\000\000\000\000\000\018)\018)\018)\000\000\000\000\000\000\000\000\000\000\000\000\018)\000\000\018)\018)\000\000\000\000\000\000\000\000\000\000\018)\000\000\000\000\018)\000\000\000\000\000\000\000\000\000\000\018)\000\000\000\000\000\000\018)\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018)\000\000\018)\018)\000\000\018)\018)\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018)\000\000\018)\000\000\018)\018)\018\221\000\000\018)\000\000\018\221\000\000\000\000\018)\018\221\000\000\018)\018)\000\000\018)\000\000\018)\018)\000\000\000\000\018\221\018\221\018\221\000\000\018\221\018\221\018\221\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\221\000\000\000\000\000\000\000\000\000\000\000\000\018\221\018\221\004>\000\000\000\000\018\221\000\000\000\000\000\000\000\000\000\000\018\221\000\000\000\000\018\221\000\000\000\000\000\000\000\000\000\000\018\221\018\221\018\221\000\000\000\000\000\000\000\000\000\000\000\000\018\221\000\000\018\221\018\221\000\000\000\000\000\000\000\000\000\000\018\221\000\000\000\000\018\221\000\000\000\000\000\000\000\000\000\000\018\221\000\000\000\000\000\000\018\221\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\221\000\000\018\221\018\221\000\000\018\221\018\221\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\221\000\000\018\221\000\000\018\221\018\221\018\225\000\000\018\221\000\000\018\225\000\000\000\000\018\221\018\225\000\000\018\221\004F\000\000\018\221\000\000\018\221\018\221\000\000\000\000\018\225\018\225\018\225\000\000\018\225\018\225\018\225\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\225\000\000\000\000\000\000\000\000\000\000\000\000\018\225\018\225\004Z\000\000\000\000\018\225\000\000\000\000\000\000\000\000\000\000\018\225\000\000\000\000\018\225\000\000\000\000\000\000\000\000\000\000\018\225\018\225\018\225\000\000\000\000\000\000\000\000\000\000\000\000\018\225\000\000\018\225\018\225\000\000\000\000\000\000\000\000\000\000\018\225\000\000\000\000\018\225\000\000\000\000\000\000\000\000\000\000\018\225\000\000\000\000\000\000\018\225\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\225\000\000\018\225\018\225\000\000\018\225\018\225\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\225\000\000\018\225\000\000\018\225\018\225\018\229\000\000\018\225\000\000\018\229\000\000\000\000\018\225\018\229\000\000\018\225\018\225\000\000\018\225\000\000\018\225\018\225\000\000\000\000\018\229\018\229\018\229\000\000\018\229\018\229\018\229\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\229\000\000\000\000\000\000\000\000\000\000\000\000\018\229\018\229\005*\000\000\000\000\018\229\000\000\000\000\000\000\000\000\000\000\018\229\000\000\000\000\018\229\000\000\000\000\000\000\000\000\000\000\018\229\018\229\018\229\000\000\000\000\000\000\000\000\000\000\000\000\018\229\000\000\018\229\018\229\000\000\000\000\000\000\000\000\000\000\018\229\000\000\000\000\018\229\000\000\000\000\000\000\000\000\000\000\018\229\000\000\000\000\000\000\018\229\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\229\000\000\018\229\018\229\000\000\018\229\018\229\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\229\000\000\018\229\000\000\018\229\018\229\018\233\000\000\018\229\000\000\018\233\000\000\000\000\018\229\018\233\000\000\018\229\004F\000\000\018\229\000\000\018\229\018\229\000\000\000\000\018\233\018\233\018\233\000\000\018\233\018\233\018\233\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\233\000\000\000\000\000\000\000\000\000\000\000\000\018\233\018\233\005F\000\000\000\000\018\233\000\000\000\000\000\000\000\000\000\000\018\233\000\000\000\000\018\233\000\000\000\000\000\000\000\000\000\000\018\233\018\233\018\233\000\000\000\000\000\000\000\000\000\000\000\000\018\233\000\000\018\233\018\233\000\000\000\000\000\000\000\000\000\000\018\233\000\000\000\000\018\233\000\000\000\000\000\000\000\000\000\000\018\233\000\000\000\000\000\000\018\233\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\233\000\000\018\233\018\233\000\000\018\233\018\233\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\233\000\000\018\233\000\000\018\233\018\233\018\237\000\000\018\233\000\000\018\237\000\000\000\000\018\233\018\237\000\000\018\233\018\233\000\000\018\233\000\000\018\233\018\233\000\000\000\000\018\237\018\237\018\237\000\000\018\237\018\237\018\237\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\237\000\000\000\000\000\000\000\000\000\000\000\000\018\237\018\237\004>\000\000\000\000\018\237\000\000\000\000\000\000\000\000\000\000\018\237\000\000\000\000\018\237\000\000\000\000\000\000\000\000\000\000\018\237\018\237\018\237\000\000\000\000\000\000\000\000\000\000\000\000\018\237\000\000\018\237\018\237\000\000\000\000\000\000\000\000\000\000\018\237\000\000\000\000\018\237\000\000\000\000\000\000\000\000\000\000\018\237\000\000\000\000\000\000\018\237\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\237\000\000\018\237\018\237\000\000\018\237\018\237\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\237\000\000\018\237\000\000\018\237\018\237\018\241\000\000\018\237\000\000\018\241\000\000\000\000\018\237\018\241\000\000\018\237\004F\000\000\018\237\000\000\018\237\018\237\000\000\000\000\018\241\018\241\018\241\000\000\018\241\018\241\018\241\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\241\000\000\000\000\000\000\000\000\000\000\000\000\018\241\018\241\004Z\000\000\000\000\018\241\000\000\000\000\000\000\000\000\000\000\018\241\000\000\000\000\018\241\000\000\000\000\000\000\000\000\000\000\018\241\018\241\018\241\000\000\000\000\000\000\000\000\000\000\000\000\018\241\000\000\018\241\018\241\000\000\000\000\000\000\000\000\000\000\018\241\000\000\000\000\018\241\000\000\000\000\000\000\000\000\000\000\018\241\000\000\000\000\000\000\018\241\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\241\000\000\018\241\018\241\000\000\018\241\018\241\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\241\000\000\018\241\000\000\018\241\018\241\018\245\000\000\018\241\000\000\018\245\000\000\000\000\018\241\018\245\000\000\018\241\018\241\000\000\018\241\000\000\018\241\018\241\000\000\000\000\018\245\018\245\018\245\000\000\018\245\018\245\018\245\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\245\000\000\000\000\000\000\000\000\000\000\000\000\018\245\018\245\005*\000\000\000\000\018\245\000\000\000\000\000\000\000\000\000\000\018\245\000\000\000\000\018\245\000\000\000\000\000\000\000\000\000\000\018\245\018\245\018\245\000\000\000\000\000\000\000\000\000\000\000\000\018\245\000\000\018\245\018\245\000\000\000\000\000\000\000\000\000\000\018\245\000\000\000\000\018\245\000\000\000\000\000\000\000\000\000\000\018\245\000\000\000\000\000\000\018\245\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\245\000\000\018\245\018\245\000\000\018\245\018\245\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\245\000\000\018\245\000\000\018\245\018\245\018\249\000\000\018\245\000\000\018\249\000\000\000\000\018\245\018\249\000\000\018\245\004F\000\000\018\245\000\000\018\245\018\245\000\000\000\000\018\249\018\249\018\249\000\000\018\249\018\249\018\249\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\249\000\000\000\000\000\000\000\000\000\000\000\000\018\249\018\249\005F\000\000\000\000\018\249\000\000\000\000\000\000\000\000\000\000\018\249\000\000\000\000\018\249\000\000\000\000\000\000\000\000\000\000\018\249\018\249\018\249\000\000\000\000\000\000\000\000\000\000\000\000\018\249\000\000\018\249\018\249\000\000\000\000\000\000\000\000\000\000\018\249\000\000\000\000\018\249\000\000\000\000\000\000\000\000\000\000\018\249\000\000\000\000\000\000\018\249\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\249\000\000\018\249\018\249\000\000\018\249\018\249\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\249\000\000\018\249\000\000\018\249\018\249\018\189\000\000\018\249\000\000\018\189\000\000\000\000\018\249\018\189\000\000\018\249\018\249\000\000\018\249\000\000\018\249\018\249\000\000\000\000\018\189\018\189\018\189\000\000\018\189\018\189\018\189\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\189\000\000\000\000\000\000\000\000\000\000\000\000\018\189\018\189\004>\000\000\000\000\018\189\000\000\000\000\000\000\000\000\000\000\018\189\000\000\000\000\018\189\000\000\000\000\000\000\000\000\000\000\018\189\018\189\018\189\000\000\000\000\000\000\000\000\000\000\000\000\018\189\000\000\018\189\018\189\000\000\000\000\000\000\000\000\000\000\018\189\000\000\000\000\018\189\000\000\000\000\000\000\000\000\000\000\018\189\000\000\000\000\000\000\018\189\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\189\000\000\018\189\018\189\000\000\018\189\018\189\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\189\000\000\018\189\000\000\018\189\018\189\018\193\000\000\018\189\000\000\018\193\000\000\000\000\018\189\018\193\000\000\018\189\004F\000\000\018\189\000\000\018\189\018\189\000\000\000\000\018\193\018\193\018\193\000\000\018\193\018\193\018\193\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\193\000\000\000\000\000\000\000\000\000\000\000\000\018\193\018\193\004Z\000\000\000\000\018\193\000\000\000\000\000\000\000\000\000\000\018\193\000\000\000\000\018\193\000\000\000\000\000\000\000\000\000\000\018\193\018\193\018\193\000\000\000\000\000\000\000\000\000\000\000\000\018\193\000\000\018\193\018\193\000\000\000\000\000\000\000\000\000\000\018\193\000\000\000\000\018\193\000\000\000\000\000\000\000\000\000\000\018\193\000\000\000\000\000\000\018\193\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\193\000\000\018\193\018\193\000\000\018\193\018\193\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\193\000\000\018\193\000\000\018\193\018\193\018\197\000\000\018\193\000\000\018\197\000\000\000\000\018\193\018\197\000\000\018\193\018\193\000\000\018\193\000\000\018\193\018\193\000\000\000\000\018\197\018\197\018\197\000\000\018\197\018\197\018\197\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\197\000\000\000\000\000\000\000\000\000\000\000\000\018\197\018\197\005*\000\000\000\000\018\197\000\000\000\000\000\000\000\000\000\000\018\197\000\000\000\000\018\197\000\000\000\000\000\000\000\000\000\000\018\197\018\197\018\197\000\000\000\000\000\000\000\000\000\000\000\000\018\197\000\000\018\197\018\197\000\000\000\000\000\000\000\000\000\000\018\197\000\000\000\000\018\197\000\000\000\000\000\000\000\000\000\000\018\197\000\000\000\000\000\000\018\197\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\197\000\000\018\197\018\197\000\000\018\197\018\197\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\197\000\000\018\197\000\000\018\197\018\197\018\201\000\000\018\197\000\000\018\201\000\000\000\000\018\197\018\201\000\000\018\197\004F\000\000\018\197\000\000\018\197\018\197\000\000\000\000\018\201\018\201\018\201\000\000\018\201\018\201\018\201\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\201\000\000\000\000\000\000\000\000\000\000\000\000\018\201\018\201\005F\000\000\000\000\018\201\000\000\000\000\000\000\000\000\000\000\018\201\000\000\000\000\018\201\000\000\000\000\000\000\000\000\000\000\018\201\018\201\018\201\000\000\000\000\000\000\000\000\000\000\000\000\018\201\000\000\018\201\018\201\000\000\000\000\000\000\000\000\000\000\018\201\000\000\000\000\018\201\000\000\000\000\000\000\000\000\000\000\018\201\000\000\000\000\000\000\018\201\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\201\000\000\018\201\018\201\000\000\018\201\018\201\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\201\000\000\018\201\000\000\018\201\018\201\018\205\000\000\018\201\000\000\018\205\000\000\000\000\018\201\018\205\000\000\018\201\018\201\000\000\018\201\000\000\018\201\018\201\000\000\000\000\018\205\018\205\018\205\000\000\018\205\018\205\018\205\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\205\000\000\000\000\000\000\000\000\000\000\000\000\018\205\018\205\004>\000\000\000\000\018\205\000\000\000\000\000\000\000\000\000\000\018\205\000\000\000\000\018\205\000\000\000\000\000\000\000\000\000\000\018\205\018\205\018\205\000\000\000\000\000\000\000\000\000\000\000\000\018\205\000\000\018\205\018\205\000\000\000\000\000\000\000\000\000\000\018\205\000\000\000\000\018\205\000\000\000\000\000\000\000\000\000\000\018\205\000\000\000\000\000\000\018\205\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\205\000\000\018\205\018\205\000\000\018\205\018\205\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\205\000\000\018\205\000\000\018\205\018\205\018\209\000\000\018\205\000\000\018\209\000\000\000\000\018\205\018\209\000\000\018\205\004F\000\000\018\205\000\000\018\205\018\205\000\000\000\000\018\209\018\209\018\209\000\000\018\209\018\209\018\209\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\209\000\000\000\000\000\000\000\000\000\000\000\000\018\209\018\209\004Z\000\000\000\000\018\209\000\000\000\000\000\000\000\000\000\000\018\209\000\000\000\000\018\209\000\000\000\000\000\000\000\000\000\000\018\209\018\209\018\209\000\000\000\000\000\000\000\000\000\000\000\000\018\209\000\000\018\209\018\209\000\000\000\000\000\000\000\000\000\000\018\209\000\000\000\000\018\209\000\000\000\000\000\000\000\000\000\000\018\209\000\000\000\000\000\000\018\209\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\209\000\000\018\209\018\209\000\000\018\209\018\209\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\209\000\000\018\209\000\000\018\209\018\209\018\213\000\000\018\209\000\000\018\213\000\000\000\000\018\209\018\213\000\000\018\209\018\209\000\000\018\209\000\000\018\209\018\209\000\000\000\000\018\213\018\213\018\213\000\000\018\213\018\213\018\213\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\213\000\000\000\000\000\000\000\000\000\000\000\000\018\213\018\213\005*\000\000\000\000\018\213\000\000\000\000\000\000\000\000\000\000\018\213\000\000\000\000\018\213\000\000\000\000\000\000\000\000\000\000\018\213\018\213\018\213\000\000\000\000\000\000\000\000\000\000\000\000\018\213\000\000\018\213\018\213\000\000\000\000\000\000\000\000\000\000\018\213\000\000\000\000\018\213\000\000\000\000\000\000\000\000\000\000\018\213\000\000\000\000\000\000\018\213\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\213\000\000\018\213\018\213\000\000\018\213\018\213\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\213\000\000\018\213\000\000\018\213\018\213\018\217\000\000\018\213\000\000\018\217\000\000\000\000\018\213\018\217\000\000\018\213\004F\000\000\018\213\000\000\018\213\018\213\000\000\000\000\018\217\018\217\018\217\000\000\018\217\018\217\018\217\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\217\000\000\000\000\000\000\000\000\000\000\000\000\018\217\018\217\005F\000\000\000\000\018\217\000\000\000\000\000\000\000\000\000\000\018\217\000\000\000\000\018\217\000\000\000\000\000\000\000\000\000\000\018\217\018\217\018\217\000\000\000\000\000\000\000\000\000\000\000\000\018\217\000\000\018\217\018\217\000\000\000\000\000\000\000\000\000\000\018\217\000\000\000\000\018\217\000\000\000\000\000\000\000\000\000\000\018\217\000\000\b\130\003\154\018\217\000\000\003j\000\000\r2\000\000\000\000\bf\018\217\000\000\018\217\018\217\000\000\018\217\018\217\000\000\000\000\000\000\001\234\000\000\r~\000\000\000\000\000\000\000\000\b\190\018\217\000\000\018\217\014*\018\217\018\217\000\000\000\000\018\217\000\000\000\000\000\000\000\000\018\217\000\000\b\210\018\217\018\217\014\186\018\217\001\190\018\217\018\217\000\000\000\000\000\000\003\138\000\000\000\000\n\n\n\014\000\000\000\000\015\161\n\018\000\000\n\026\000\000\015J\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\221\000\000\nN\nb\nf\000\000\nj\nr\n~\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\134\n\138\000\000\000\000\000\000\021\210\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015\161\000\000\000\000\000\000\015\161\015\161\t-\n\142\000\000\000\000\t-\015\161\000\000\007\166\t-\000\000\000\000\015\161\006\221\000\000\000\000\000\000\t-\000\000\000\000\t-\t-\t-\000\000\t-\t-\t-\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t-\000\000\000\000\000\000\000\000\000\000\000\000\t-\t-\t-\000\000\000\000\000\000\000\000\000\000\000\000\002\134\000\000\t-\000\000\000\000\t-\000\000\000\000\000\000\000\000\000\000\t-\t-\t-\000\000\000\000\000\000\000\000\000\000\000\000\t-\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t-\t-\000\000\t-\000\000\000\000\000\000\000\000\000\000\t-\000\000\000\000\000\000\000\000\000\000\001\202\tA\tA\000\000\000\000\tA\t-\tA\t-\t-\tA\t-\t-\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\tA\tA\000\000\t-\000\000\t-\000\000\tA\t-\000\000\000\000\t-\000\000\001\206\000\000\000\000\t-\000\000\000\000\000\000\000\000\000\000\000\000\tA\t-\t-\tA\001\210\tA\000\000\000\000\000\000\tA\000\000\tA\tA\tA\tA\tA\000\000\000\000\000\000\tA\000\000\tA\tA\tA\000\000\000\000\tA\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\tA\tA\tA\000\000\tA\tA\tA\000\000\001\202\tE\tE\000\000\000\000\tE\000\000\tE\tA\tA\tE\000\000\tA\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\tE\tE\000\000\000\000\000\000\000\000\000\000\tE\000\000\000\000\000\000\000\000\000\000\001\206\000\000\000\000\tA\000\000\000\000\000\000\000\000\000\000\tA\tE\000\000\000\000\tE\001\210\tE\000\000\000\000\000\000\tE\000\000\tE\tE\tE\tE\tE\000\000\000\000\000\000\tE\000\000\tE\tE\tE\000\000\000\000\tE\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\tE\tE\tE\000\000\tE\tE\tE\000\000\001\202\t=\t=\000\000\000\000\t=\000\000\t=\tE\tE\t=\000\000\tE\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t=\t=\000\000\000\000\000\000\000\000\000\000\t=\000\000\000\000\000\000\000\000\000\000\001\206\000\000\000\000\tE\000\000\000\000\000\000\000\000\000\000\tE\t=\000\000\000\000\t=\001\210\t=\000\000\000\000\000\000\t=\000\000\t=\t=\t=\t=\t=\000\000\000\000\000\000\t=\000\000\t=\t=\t=\000\000\000\000\t=\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t=\t=\t=\000\000\t=\t=\t=\000\000\007\025\007\025\007\025\000\000\000\000\007\025\000\000\007\025\t=\t=\007\025\000\000\t=\000\000\000\000\000\000\000\000\007\025\000\000\000\000\000\000\007\025\000\000\000\000\000\000\000\000\000\000\000\000\007\025$v\000\000\000\000\000\000$\142\007\025\000\000\000\000\t=\000\000\000\000\000\000\000\000\000\000\t=\007\025\000\000\000\000\007\025\007\025\007\025\000\000\000\000\000\000\000\000\000\000\007\025\000\000\000\000\007\025\007\025\000\000\000\000\000\242\007\025\000\000\007\025\007\025\007\025\000\000\000\000\007\025\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007\025\007\025\007\025\000\000\007\025\007\025\007\025\0071\000\000\b\130\003\154\0071\000\000\003j\000\000\r2\007\025\007\025\bf\000\000\000\000\000\000\0071\000\000\000\000\000\000\0071\000\000\0071\001\234\000\000\r~\000\000\000\000\000\000\000\000\b\190\000\000\000\000\000\000\014*\0071\000\000\000\000\000\000\007\025\000\000\000\000\0071\000\000\004U\007\025\b\210\000\000\000\000\014\186\000\000\001\190\000\000\0071\000\000\000\000\0071\003\138\000\000\000\000\n\n\n\014\0071\tN\000\000\n\018\000\000\n\026\000\000\015J\000\000\0071\nJ\bq\000\000\000\000\000\000\bq\000\000\000\000\0071\bq\000\000\nN\nb\nf\000\000\nj\nr\n~\000\000\000\000\bq\000\000\bq\000\000\bq\000\000\bq\n\134\n\138\0071\000\000\0071\004U\000\000\0071\0071\000\000\000\000\000\000\bq\000\000\000\000\000\000\000\000\000\000\000\000\bq\000\000\bq\000\000\000\000\004U\000\000\bq\004U\0071\n\142\bq\000\000\000\000\bq\000\000\007\166\000\000\004U\000\000\bq\bq\bq\000\000\000\000\000\000\000\000\000\000\000\000\bq\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\bq\bq\000\000\bq\000\000\000\000\000\000\000\000\000\000\bq\000\000\b\130\003\154\000\000\000\000\003j\000\000\r2\000\000\000\000\bf\bq\000\000\bq\bq\000\000\bq\bq\000\000\000\000\000\000\001\234\000\000\r~\000\000\017\"\000\000\000\000\b\190\000\000\000\000\000\000\014*\bq\000\000\000\000\bq\bq\000\000\n\193\000\000\000\000\000\000\n\193\b\210\bq\bq\014\186\000\000\001\190\bq\000\000\000\000\000\000\n\193\003\138\000\000\000\000\n\n\n\014\n\193\000\000\000\000\n\018\000\000\n\026\000\000\015J\000\000\000\000\nJ\000\000\000\000\n\193\000\000\000\000\000\000\000\000\000\000\000\000\n\193\nN\nb\nf\000\000\nj\nr\n~\000\000\000\000\000\000\000\000\000\000\000\000\n\193\000\000\000\000\n\134\n\138\000\000\n\193\000\000\021\210\000\000\000\000\000\000\000\000\000\000\000\000\n\193\016~\000\000\000\000\000\000\n\193\001\202\001\226\001\230\n\193\000\000\000\000\003\182\000\000\000\000\022\246\000\000\n\142\000\000\000\000\n\193\000\000\000\000\007\166\n\193\004F\n\193\001\234\002&\001\254\n\193\000\000\n\193\000\000\000\000\000\000\n\193\000\000\002\n\n\193\001\206\000\000\000\000\000\000\000\000\000\000\n\193\000\000\016\226\000\000\000\000\000\000\000\000\002.\001\210\002Z\n\193\000\000\000\000\003z\n\193\003\138\003\186\003\198\002\130\000\000\n\193\n\193\000\242\003\210\000\000\000\000\000\000\000\000\000\000\n\193\000\000\004\177\000\000\000\000\000\000\004\177\000\000\000\000\n\193\004\177\000\000\000\000\000\000\000\000\000\000\003\214\000\000\003\230\000\000\000\000\004\177\000\000\004\177\000\000\004\177\000\000\004\177\000\000\000\000\n\193\000\000\n\193\000\000\000\000\n\193\n\193\000\000\000\000\000\000\004\177\000\000\000\000\000\000\000\000\000\000\000\000\004\177\000\000\004\177\000\000\000\000\000\000\000\000\007\221\000\000\n\193\000\000\004\177\000\000\000\000\004\177\000\000\007\166\002\130\004F\000\000\004\177\004\177\004\177\000\000\000\000\000\000\b\130\003\154\000\000\004\177\003j\000\000\b\134\000\000\000\000\bf\000\000\000\000\004\177\000\000\000\000\004\177\000\000\r\213\000\000\000\000\001\234\004\177\000\000\000\000\000\000\000\000\000\000\b\190\000\000\000\000\000\000\000\000\000\000\004\177\000\000\004\177\004\177\000\000\004\177\004\177\000\000\000\000\000\000\b\210\000\000\000\000\b\230\007\221\001\190\000\000\000\000\000\000\000\000\000\000\003\138\004\177\004\177\n\n\n\014\004\177\000\000\000\000\n\018\000\000\n\026\n>\nn\004\177\004\177\nJ\000\000\000\000\004\177\000\000\000\000\000\000\000\000\000\000\000\000\000\000\nN\nb\nf\000\000\nj\nr\n~\000\000\000\000\002a\002a\000\000\000\000\002a\000\000\002a\n\134\n\138\002a\000\000\011\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002a\000\000\000\000\000\000\000\000\000\000\000\000\002a\000\n\000\000\r\213\000\000\000\000\000\000\000\000\000\000\n\142\000\000\r\213\000\000\014\018\000\000\007\166\002a\000\000\000\000\002a\000\000\002a\000\000\000\000\000\000\000\000\000\000\002a\000\000\000\000\002a\002a\000\000\000\000\002a\002a\000\000\002a\002a\002a\000\000\000\000\002a\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002a\002a\002a\000\000\002a\002a\002a\000\000\001\202\b\130\003\154\000\000\000\000\003j\000\000\b\134\002a\002a\bf\000\000\002a\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\234\000\000\000\000\000\000\000\000\000\000\000\000\b\190\000\000\000\000\000\000\000\000\000\000\001\206\000\000\000\000\002a\000\000\000\000\000\000\002a\000\000\002a\b\210\000\000\000\000\0146\001\210\001\190\000\000\000\000\000\000\000\000\000\000\003\138\000\000\000\000\n\n\n\014\000\000\000\000\000\000\n\018\000\000\n\026\n>\nn\000\000\004\177\nJ\000\000\000\000\004\177\000\000\000\000\000\000\004\177\000\000\000\000\000\000\nN\nb\nf\000\000\nj\nr\n~\004\177\000\000\004\177\000\000\004\177\000\000\004\177\000\000\000\000\n\134\n\138\000\000\000\000\011\002\001\226\001\230\000\000\000\000\000\000\004\177\000\000\000\000\000\000\000\000\000\000\000\000\004\177\000\000\004\177\000\000\000\000\000\000\000\000\007\225\001\234\002&\000\000\004\177\n\142\000\000\004\177\000\000\000\000\000\000\007\166\000\000\004\177\004\177\004\177\000\000\000\000\000\000\000\000\000\000\000\000\004\177\000\000\000\000\000\000\000\000\003~\000\000(j\000\000\004\177\000\000\003z\004\177\003\138\003\186\003\198\000\000\000\000\004\177\000\000\000\000\003\210\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\177\000\000\004\177\004\177\000\000\004\177\004\177\000\000\be\000\000\000\000\000\000\be\003\214\007\225\003\230\be\000\000\000\000(\150\000\000\000\000\004\177\004\177\000\000\000\000\004\177\be\000\000\be\000\000\be\000\000\be\004\177\004\177\000\000\000\000\000\000\004\177(\130\000\000\000\000\000\000\000\000\000\000\be\000\000\000\000\001\226\001\230\000\000\000\000\be\000\000\be\000\000\000\000\000\000\000\000\017z\000\000\000\000\000\000\be\000\000\000\000\be\000\000\001\234\002&\001\254\000\000\be\be\000\242\000\000\000\000\000\000\000\000\002\n\000\000\be\000\000!\214\000\000\000\000\000\000\000\000\000\000\000\000\be\be\000\000\be\003~\000\000%\"\000\000\"N\be\003z\000\000\003\138\003\186\003\198\000\000\000\000\000\000\000\000\025\206%2\be\000\000\be\be\000\000\be\be\025j\000\000\000\000\000\000\000\000\019\006\000\000\000\000\000\000\023\142\r\173\000\000\r\173\r\173\003\214\be\003\230\000\000\be\be\019r\019\210\019\234\019\138\000\000\020\002\000\000\be\be\000\000\000\000\000\000\be\000\000\000\000\019\162\000\000\020\026\0202\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020J\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\242\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\030\019\186\020b\020z\020\218\000\000\000\000\000\000\000\000\000\000\025\246\b\130\003\154\000\000\000\000\003j\000\000\b\134\020\242\000\000\bf\000\000\000\000\025\230\000\000\000\000\n\254\000\000\n\022\021\n\000\000\001\234\000\000\000\000\025n\000\000\000\000\000\000\b\190\000\000\000\000\000\000\000\000\000\000\026\022\000\000\021j\r\173\000\000\021\162\020\146\000\000\000\000\000\000\b\210\r\173\021\"\b\230\0266\001\190\020\170\020\194\000\000\000\000\000\000\003\138\021:\021R\n\n\n\014\000\000\000\000\000\000\n\018\000\000\n\026\n>\nn\000\000\000\000\nJ\000\000\000\000\000\000\001\157\000\000\000\000\000\000\000\000\000\000\000\000\nN\nb\nf\000\000\nj\nr\n~\019\006\000\000\000\000\000\000\n\145\029\142\000\000\001\157\n\145\n\134\n\138\000\000\000\000\011\002\000\000\019r\019\210\019\234\019\138\000\000\020\002\000\000\000\000\000\000\000\000\001\165\000\000\000\000\000\000\000\000\019\162\000\000\020\026\0202\000\000\011\238\000\000\000\000\n\142\019\006\012R\000\000\020J\000\000\007\166\000\000\001\165\000\000\000\000\000\000\000\000\000\242\000\000\000\000\019r\019\210\019\234\019\138\000\000\020\002\000\000\000\000\019\030\019\186\020b\020z\020\218\000\000\000\000\019\162\000\000\020\026\0202\000\000\000\000\000\000\000\000\000\000\n\145\028\146\020\242\020J\000\000\000\000\000\000\001\157\000\000\000\000\000\000\000\000\000\242\021\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\030\019\186\020b\020z\020\218\000\000\000\000\021j\001\157\029\146\021\162\020\146\029\158\000\000\000\000\000\000\001\157\021\"\020\242\000\000\000\000\020\170\020\194\001\165\000\000\000\000\001\157\021:\021R\021\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\149\000\000\000\000\021j\001\165\000\000\021\162\020\146\000\000\000\000\000\000\000\000\001\165\021\"\019\006\000\000\000\000\020\170\020\194\000\000\000\000\001\149\001\165\021:\021R\000\000\000\000\000\000\000\000\019r\019\210\019\234\019\138\000\000\020\002\000\000\000\000\000\000\000\000\001\189\000\000\000\000\000\000\000\000\019\162\000\000\020\026\0202\000\000\000\000\000\000\000\000\000\000\019\006\000\000\000\000\020J\000\000\000\000\000\000\001\189\000\000\000\000\000\000\000\000\000\242\000\000\000\000\019r\019\210\019\234\019\138\000\000\020\002\000\000\000\000\019\030\019\186\020b\020z\020\218\000\000\000\000\019\162\000\000\020\026\0202\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\242\020J\000\000\000\000\000\000\001\149\000\000\000\000\000\000\000\000\000\242\021\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\030\019\186\020b\020z\020\218\000\000\000\000\021j\001\149\000\000\021\162\020\146\000\000\000\000\000\000\000\000\001\149\021\"\020\242\000\000\000\000\020\170\020\194\001\189\000\000\000\000\001\149\021:\021R\021\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\181\000\000\000\000\021j\001\189\000\000\021\162\020\146\000\000\000\000\000\000\000\000\001\189\021\"\019\006\000\000\000\000\020\170\020\194\000\000\000\000\001\181\001\189\021:\021R\000\000\000\000\000\000\000\000\019r\019\210\019\234\019\138\000\000\020\002\000\000\000\000\000\000\000\000\001\173\000\000\000\000\000\000\000\000\019\162\000\000\020\026\0202\000\000\000\000\000\000\000\000\000\000\019\006\000\000\000\000\020J\000\000\000\000\000\000\001\173\000\000\000\000\000\000\000\000\000\242\000\000\000\000\019r\019\210\019\234\019\138\000\000\020\002\000\000\000\000\019\030\019\186\020b\020z\020\218\000\000\000\000\019\162\000\000\020\026\0202\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\242\020J\000\000\000\000\000\000\001\181\000\000\000\000\000\000\000\000\000\242\021\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\030\019\186\020b\020z\020\218\000\000\000\000\021j\001\181\000\000\021\162\020\146\000\000\000\000\000\000\000\000\001\181\021\"\020\242\000\000\000\000\020\170\020\194\001\173\000\000\000\000\001\181\021:\021R\021\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\021j\001\173\000\000\021\162\020\146\000\000\011\225\011\225\011\225\001\173\021\"\011\225\000\000\011\225\020\170\020\194\011\225\000\000\000\000\001\173\021:\021R\000\000\031n\000\000\000\000\000\000\011\225\000\000\000\000\000\000\000\000\000\000\000\000\011\225\000\000\000\000\000\000\000\000\000\000\011\225\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\011\225\000\000\000\000\011\225\011\225\011\225\000\000\000\000\000\000\000\000\000\000\011\225\000\000\000\000\011\225\011\225\000\000\000\000\000\000\011\225\000\000\011\225\011\225\011\225\000\000\012\209\011\225\000\000\000\000\012\209\000\000\000\000\000\000\012\209\000\000\000\000\000\000\011\225\011\225\011\225\000\000\011\225\011\225\011\225\012\209\000\000\012\209\000\000\012\209\000\000\012\209\000\000\000\000\011\225\011\225\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012\209\000\000\000\000\000\000\000\000\000\000\000\000\012\209\000\000\012\209\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012\209\011\225\000\000\012\209\000\000\000\000\000\000\011\225\000\000\012\209\012\209\012\209\000\000\001\226\001\230\000\000\000\000\000\000\012\209\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012\209\000\000\000\000\012\209\000\000\000\000\001\234\002&\000\000\012\209\000\000\000\000\020}\000\000\000\000\000\000\020}\000\000\000\000\000\000\020}\012\209\000\000\012\209\012\209\000\000\012\209\012\209\000\000\000\000\000\000\020}\003~\020}(j\020}\000\000\020}\003z\012\209\003\138\003\186\003\198\012\209\000\000\000\000\000\000\012\209\003\210\000\000\020}\000\000\000\000\000\000\000\000\012\209\012\209\020}\005\206\020}\012\209\000\000\000\000\000\000\003\242\000\000\000\000\000\000\020}\000\000\003\214\020}\003\230\000\000\000\000\000\000\007\165\020}\020}\020}\000\000\000\000\000\000\000\000\000\000\000\000\020}\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020}\000\000(\130\020}\000\000\000\000\000\000\000\000\000\000\020}\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020}\000\000\020}\020}\020\129\020}\020}\000\000\020\129\000\000\000\000\000\000\020\129\000\000\003\254\000\000\000\000\000\000\000\000\001\202\001\226\001\230\020}\020\129\000\000\020\129\020}\020\129\000\000\020\129\000\000\000\000\000\000\000\000\020}\020}\000\000\001\226\001\230\020}\001\234\002&\020\129\000\000\000\000\000\000\000\000\000\000\000\000\020\129\000\000\020\129\000\000\001\206\000\000\000\000\003\242\001\234\002&\000\000\020\129\000\000\000\000\020\129\000\000\000\000\004n\001\210\003\226\020\129\020\129\020\129\003z\000\000\003\138\003\186\003\198\000\000\020\129\000\000\000\000\000\000\003\210\003~\000\000\003\226\000\000\020\129\000\000\003z\020\129\003\138\003\186\003\198\000\000\000\000\020\129\000\000\000\000\003\210\000\000\030f\000\000\000\000\003\214\000\000\003\230\000\000\020\129\000\000\020\129\020\129\b\221\020\129\020\129\000\000\b\221\000\000\000\000\000\000\b\221\003\214\003\254\003\230\000\000\000\000\000\000\000\000\030\182\000\000\020\129\b\221\000\000\b\221\020\129\b\221\000\000\b\221\000\000\000\000\000\000\nu\020\129\020\129\000\000\nu\000\000\020\129\000\000\000\000\b\221\000\000\000\000\000\000\000\000\000\000\nu\b\221\000\000\b\221\nu\000\000\nu\000\000\003\242\000\000\000\000\000\000\b\221\000\000\000\000\b\221\000\000\000\000\000\000\nu\000\000\b\221\b\221\b\221\000\000\000\000\nu\000\000\000\000\000\000\b\221\000\000\000\000\000\000\000\000\000\000\000\000\nu\000\000\b\221\nu\000\000\b\221\000\000\000\000\000\000\nu\nu\b\221\001\202\b\130\003\154\000\000\000\000\003j\nu\t\210\000\000\000\000\bf\b\221\000\000\b\221\b\221\nu\b\221\b\221\nu\000\000\000\000\001\234\000\000\000\000\nu\003\254\000\000\000\000\b\190\000\000\000\000\000\000\000\000\b\221\001\206\000\000\nu\b\221\nu\nu\000\000\nu\nu\000\000\b\210\b\221\b\221\021\194\001\210\001\190\b\221\000\000\000\000\000\000\nu\003\138\000\000\000\000\n\n\n\014\000\000\003V\nu\n\018\000\000\n\026\n>\012\246\000\000\000\000\nJ\000\000\000\000\000\000\001\137\nu\000\000\000\000\000\000\000\000\000\000\nN\nb\nf\000\000\nj\nr\n~\019\006\000\000\000\000\000\000\000\000\000\000\000\000\001\137\000\000\n\134\n\138\000\000\000\000\000\000\000\000\019r\019\210\019\234\019\138\000\000\020\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\162\000\000\020\026\0202\000\000\000\000\000\000\000\000\n\142\000\000\000\000\000\000\020J\000\000\007\166\000\000\000\000\000\000\000\000\000\000\000\000\000\242\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\030\019\186\020b\020z\020\218\000\000\000\000\000\000\000\000\000\000\000\000\b\130\003\154\000\000\000\000\003j\000\000\r2\020\242\000\000\bf\000\000\000\000\001\137\000\000\000\000\000\000\000\000\000\000\021\n\000\000\001\234\000\000\r~\000\000\000\000\000\000\000\000\b\190\000\000\000\000\000\000\014*\000\000\000\000\000\000\021j\001\137\000\000\021\162\020\146\000\000$\190\000\000\b\210\001\137\021\"#&\000\000\001\190\020\170\020\194\000\000\000\000\000\000\003\138\021:\021R\n\n\n\014\000\000\000\000\000\000\n\018\000\000\n\026\000\000\015J\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\nN\nb\nf\000\000\nj\nr\n~\000\000\000\000\b\130\003\154\000\000\000\000\003j\000\000\r2\n\134\n\138\bf\000\000\000\000#*\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\234\000\000\r~\000\000\000\000\000\000\000\000\b\190\000\000\000\000\000\000\014*\000\000\000\000%\202\000\000\n\142\000\000\000\000\000\000\000\000\000\000\007\166\b\210\000\000\000\000\014\186\000\000\001\190\000\000\000\000\000\000\000\000\000\000\003\138\000\000\000\000\n\n\n\014\000\000\000\000\000\000\n\018\000\000\n\026\000\000\015J\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\nN\nb\nf\000\000\nj\nr\n~\000\000\000\000\b\130\003\154\000\000\000\000\003j\000\000\r2\n\134\n\138\bf\000\000\000\000\021\210\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\234\000\000\r~\000\000\000\000\000\000\000\000\b\190\000\000\000\000\000\000\014*\000\000\000\000#\198\000\000\n\142\000\000\000\000\000\000\000\000\000\000\007\166\b\210\000\000\000\000\014\186\000\000\001\190\000\000\000\000\000\000\000\000\000\000\003\138\000\000\000\000\n\n\n\014\000\000\000\000\000\000\n\018\000\000\n\026\000\000\015J\000\000\n\193\nJ\000\000\000\000\n\193\000\000\000\000\000\000\n\193\000\000\000\000\000\000\nN\nb\nf\000\000\nj\nr\n~\n\193\000\000\n\193\000\000\n\193\000\000\n\193\000\000\000\000\n\134\n\138\000\000\000\000\000\000\021\210\000\000\000\000\000\000\000\000\n\193\000\000\000\000\000\000\000\000\000\000\000\000\n\193\n\193\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000$&\n\193\n\142\000\000\n\193\000\000\000\000\000\000\007\166\000\000\n\193\n\193\000\242\000\000\000\000\000\000\000\000\000\000\000\000\n\193\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\193\000\000\000\000\n\193\000\000\000\000\000\000\000\000\000\000\n\193\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\n\n\193\000\000\n\193\n\193\003v\n\193\n\193\000\000\000\000\000\000\000\000\000\000\000\000\001\014\001\018\001\022\001\026\001\030\n\193\001\"\n\193\000\000\000\000\n\193\000\000\000\000\n\193\000\000\000\000\001&\000\000\001*\001.\000\000\002\130\000\000\000\000\000\000\0012\n\193\n\193\0016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t%\000\000\000\000\019\137\t%\000\000\000\000\019\137\t%\000\000\000\000\001:\001>\001B\001F\001J\000\000\000\000\019\137\t%\000\000\t%\001N\t%\019\137\t%\000\000\000\000\000\000\001R\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\137\t%\000\000\001V\000\000\000\000\000\000\019\137\t%\t%\001Z\000\000\000\000\000\000\000\000\000\000\000\000\002\238\019\137\t%\000\000\019\137\t%\001\150.N\000\000\000\000\019\137\t%\t%\001\154\000\000\001\158\000\000\001\162\001\166\019\137\t%\001\170\000\000\001\174\001\178\000\000\000\000\000\000\019\137\t%\000\000\019\137\t%\000\000\000\000\000\000\000\000\019\137\t%\b\130\003\154\000\000\000\000\003j\000\000\b\162\000\000\000\000\bf\019\137\t%\019\137\t%\t%\019\137\t%\t%\000\000\000\000\001\234\000\000\000\000\000\000/2\000\000\000\000\b\190\000\000\t%\000\000\t%\000\000\000\000\t%\000\000\019\137\t%\000\000\000\000\000\000\000\000\000\000\b\210\000\000\000\000\b\230\000\000\001\190\000\000\t%\t%\000\000\000\000\003\138\000\000\000\000\n\n\n\014\000\000\000\000\000\000\n\018\000\000\n\026\n>'v\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\nN\nb\nf\000\000\nj\nr\n~\000\000\000\000\003\150\003\154\000\000\000\000\003j\000\000\016~\n\134\n\138\bf\0071\011\002\000\000\000\000\0071\t\197\000\000\000\000\000\000\000\000\001\234\000\000'~\000\000\bn\0071\000\000\000\000\000\000\0071\000\000\0071\000\000\000\000\000\000\br\n\142\tv\000\000\000\000\000\000\000\000\007\166\000\000\0071\000\000\t\182\000\000\001\190\000\000\000\000\0071\000\000\016\226\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\0071\000\000\000\000\000\000\nJ\000\000\0071\tN\000\242\000\000\000\000\000\000\000\000\000\000\000\000\0071\nb\nf\000\000\r\206\r\222\b\130\003\154\000\000\0071\003j\000\000\b\134\000\000\000\000\bf\n\134\n\138\000\000\000\000\000\000\000\000\000\000\012\002\000\000\000\000\001\234\r\226\000\000\r\230\0071\000\000\0071\b\190\000\000\0071\0071\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\142\r\238\000\000\016\170\b\210\015\250\007\166\b\230\000\000\001\190\000\000\0071\000\000\000\000\000\000\003\138)\026\000\000\n\n\n\014\004F\000\000\000\000\n\018\0071\n\026\n>\nn\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\nN\nb\nf\000\000\nj\nr\n~\000\000\000\000\b\130\003\154\000\000\000\000\003j\000\000\n\174\n\134\n\138\bf\000\000\011\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\234\000\000\000\000\000\000\000\000\000\000\000\000\b\190\000\000\000\000\012^\000\000\000\000\000\000\000\000\000\000\n\142\000\000\000\000\000\000\000\000\000\000\007\166\b\210\000\000\000\000\b\230\000\000\001\190\000\000\000\000\000\000\000\000\000\000\003\138\000\000\000\000\n\n\n\014\000\000\000\000\000\000\n\018\000\000\n\026\n>\n\202\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\nN\nb\nf\000\000\nj\nr\n~\000\000\000\000\b\130\003\154\000\000\000\000\003j\000\000\0112\n\134\n\138\bf\000\000\011\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\234\000\000\012\030\000\000\000\000\000\000\000\000\b\190\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\142\000\000\000\000\000\000\000\000\000\000\007\166\b\210\000\000\000\000\b\230\000\000\001\190\000\000\000\000\000\000\000\000\000\000\003\138\000\000\000\000\n\n\n\014\000\000\000\000\000\000\n\018\000\000\n\026\n>\011N\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\nN\nb\nf\000\000\nj\nr\n~\000\000\000\000\b\130\003\154\000\000\000\000\003j\000\000\011\162\n\134\n\138\bf\000\000\011\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\234\000\000\011b\000\000\000\000\000\000\000\000\b\190\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\142\000\000\000\000\000\000\000\000\000\000\007\166\b\210\000\000\000\000\b\230\000\000\001\190\000\000\000\000\000\000\000\000\000\000\003\138\000\000\000\000\n\n\n\014\000\000\000\000\000\000\n\018\000\000\n\026\n>\011\190\000\000\020y\nJ\000\000\000\000\020y\000\000\000\000\000\000\020y\000\000\000\000\000\000\nN\nb\nf\000\000\nj\nr\n~\020y\000\000\020y\000\000\020y\000\000\020y\000\000\000\000\n\134\n\138\000\000\000\000\011\002\000\000\000\000\000\000\000\000\000\000\020y\000\000\000\000\000\000\000\000\011\198\000\000\020y\000\000\020y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020y\n\142\000\000\020y\000\000\000\000\000\000\007\166\000\000\020y\020y\020y\000\000\001\226\001\230\000\000\000\000\000\000\020y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020y\000\000\000\000\020y\000\000\000\000\001\234\002&\000\000\020y\000\000\000\000\020u\000\000\000\000\000\000\020u\000\000\000\000\000\000\020u\020y\000\000\020y\020y\000\000\020y\020y\000\000\000\000\000\000\020u\003~\020u(j\020u\000\000\020u\003z\000\000\003\138\003\186\003\198\020y\000\000\000\000\000\000\020y\003\210\000\000\020u\000\000\000\000\000\000\000\000\020y\020y\020u\005\206\020u\020y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020u\000\000\003\214\020u\003\230\000\000\000\000\000\000\007\169\020u\020u\020u\000\000\000\000\000\000\000\000\000\000\000\000\020u\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020u\000\000(\130\020u\000\000\000\000\000\000\000\000\000\000\020u\000\000\000\000\012\213\000\000\000\000\000\000\012\213\000\000\000\000\000\000\012\213\020u\000\000\020u\020u\000\000\020u\020u\000\000\000\000\000\000\012\213\000\000\012\213\000\000\012\213\000\000\012\213\000\000\016\170\000\000\000\000\000\000\020u\000\000\000\000\000\000\020u\000\000\000\000\012\213\000\000\000\000\000\000\000\000\020u\020u\012\213\000\000\012\213\020u\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012\213\000\000\000\000\012\213\000\000\000\000\000\000\000\000\000\000\012\213\012\213\000\242\000\000\000\000\000\000\000\000\000\000\000\000\012\213\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012\213\000\000\000\000\012\213\000\000\000\000\000\000\000\000\000\000\012\213\000\000\000\000\000\000\003\150\003\154\000\000\000\000\003j\000\000\000\000\000\000\012\213\bf\012\213\012\213\000\000\012\213\012\213\t\237\000\000\000\000\000\000\000\000\001\234\000\000\000\000\000\000\bn\000\000\012\213\000\000\000\000\000\000\012\213\000\000\000\000\000\000\012\213\br\000\000\tv\000\000\000\000\000\000\000\000\012\213\012\213\000\000\000\000\t\182\012\213\001\190\000\000\000\000\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\000\000\000\000\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\nb\nf\n\193\r\206\r\222\001\230\n\193\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\193\n\134\n\138\n\193\000\000\000\000\001\230\n\193\000\000\n\193\000\000\000\000\r\226\000\000\r\230\n\193\000\000\000\000\n\193\000\000\000\000\000\000\n\193\000\000\n\193\000\000\000\000\000\000\000\000\n\193\n\142\r\238\000\000\000\000\000\000\015\250\007\166\n\193\003\226\000\000\n\193\000\000\000\000\n\193\n\193\000\000\n\193\000\000\000\000\n\193\n\193\n\193\000\000\003\226\000\000\n\193\000\000\000\000\n\193\000\000\000\000\000\000\000\000\000\000\n\193\n\193\n\193\n\193\n\193\000\000\n\193\000\000\000\000\n\193\000\000\000\000\005v\000\000\000\000\000\000\000\000\000\000\n\193\n\193\000\000\n\193\000\000\000\000\n\193\000\000\n\193\005v\000\000\n\193\n\193\000\000\000\000\004\149\000\000\000\000\001\230\004\149\000\000\n\193\000\000\n\193\n\193\000\000\n\193\n\193\000\000\000\000\004\149\000\000\n\193\000\000\004\149\000\000\004\149\n\193\000\000\n\193\002\130\000\000\000\000\000\000\000\000\n\193\000\000\n\193\000\000\004\149\000\000\000\000\n\193\000\000\000\000\002\130\004\149\000\000\n\193\000\000\n\193\000\000\000\000\000\000\000\000\003\226\000\000\004\149\000\000\000\000\004\149\000\000\000\000\000\000\000\000\000\000\004\149\004\149\004\149\000\000\000\000\000\000\000\000\000\000\000\000\004\149\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\149\004\149\000\000\004\149\000\000\000\000\000\000\000\000\000\000\005v\000\000\000\000\000\000\000\000\000\000\000\000\004\145\000\000\000\000\001\230\004\145\004\149\000\000\004\149\000\000\000\000\004\149\004\149\n\193\000\000\000\000\004\145\000\000\000\000\000\000\004\145\000\000\004\145\000\000\004\149\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\149\000\000\000\000\004\145\000\000\004\149\000\000\000\000\002\130\000\000\004\145\000\000\n\193\004\149\000\000\000\000\000\000\000\000\000\000\003\226\000\000\004\145\000\000\000\000\004\145\000\000\000\000\000\000\000\000\000\000\004\145\004\145\004\145\000\000\000\000\000\000\000\000\000\000\000\000\004\145\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\145\004\145\000\000\004\145\000\000\000\000\000\000\000\000\000\000\005v\000\000\b\173\000\000\000\000\000\000\b\173\000\000\000\000\000\000\b\173\000\000\004\145\000\000\004\145\000\000\000\000\004\145\004\145\000\000\000\000\b\173\000\000\b\173\000\000\b\173\000\000\b\173\000\000\000\000\004\145\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\145\000\000\b\173\000\000\000\000\004\145\000\000\000\000\002\130\b\173\000\000\b\173\000\000\004\145\000\000\000\000\017z\000\000\000\000\000\000\b\173\000\000\000\000\b\173\000\000\000\000\000\000\000\000\000\000\b\173\b\173\000\242\000\000\000\000\000\000\b\130\003\154\000\000\b\173\003j\000\000'\142\000\000\000\000\bf\000\000\000\000\b\173\000\000\000\000\b\173\000\000\000\000\000\000\000\000\001\234\b\173\000\000\000\000\000\000\000\000\000\000\b\190\000\000\000\000\000\000\000\000\000\000\b\173\000\000\b\173\b\173\000\000\b\173\b\173\000\000\000\000\000\000\b\210\000\000\000\000\b\230\000\000\001\190\000\000\000\000\000\000\000\000\000\000\003\138\b\173\000\000\n\n\n\014\b\173\000\000\000\000\n\018\000\000\n\026\n>'\170\b\173\b\173\nJ\004\237\000\000\b\173\000\000\004\237\000\000\000\000\000\000\004\237\000\000\nN\nb\nf\000\000\nj\nr\n~\000\000\000\000\004\237\000\000\004\237\000\000\004\237\000\000\004\237\n\134\n\138\000\000\000\000\011\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\237\000\000\000\000'\178\000\000\000\000\000\000\004\237\004\237\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\142\004\237\000\000\000\000\004\237\000\000\007\166\000\000\000\000\000\000\004\237\004\237\000\242\000\000\000\000\000\000\000\000\000\000\000\000\004\237\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\237\000\000\000\000\004\237\000\000\000\000\000\000\000\000\000\000\004\237\000\000\000\000\000\000\000\000\000\000\000\000\001\n\000\000\000\000\000\000\000\000\004\237\000\000\004\237\004\237\000\000\004\237\004\237\000\000\000\000\001\014\001\018\001\022\001\026\001\030\000\000\001\"\000\000\000\000\004\237\000\000\004\237\000\000\000\000\004\237\000\000\001&\004\237\001*\001.\000\000\000\000\000\000\000\000\000\000\0012\000\000\000\000\0016\000\000\004\237\004\237\000\000\000\000\000\000\000\000\000\000\004\245\000\000\000\000\019m\004\245\000\000\000\000\019m\004\245\000\000\000\000\001:\001>\001B\001F\001J\000\000\000\000\019m\004\245\000\000\004\245\001N\004\245\019m\004\245\000\000\000\000\000\000\001R\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019m\004\245\000\000\001V\000\000\000\000\000\000\019m\004\245\004\245\001Z\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019m\004\245\000\000\019m\004\245\001\150.j\000\000\000\000\019m\004\245\004\245\001\154\000\000\001\158\000\000\001\162\001\166\019m\004\245\001\170\000\000\001\174\001\178\000\000\000\000\000\000\019m\004\245\000\000\019m\004\245\000\000\000\000\000\000\000\000\019m\004\245\b\130\003\154\000\000\000\000\003j\000\000\t\238\000\000\000\000\bf\019m\004\245\019m\004\245\004\245\019m\004\245\004\245\000\000\000\000\001\234\000\000\000\000\000\000/2\000\000\000\000\b\190\000\000\004\245\000\000\004\245\000\000\000\000\004\245\000\000\019m\004\245\000\000\000\000\000\000\000\000\000\000\b\210\000\000\000\000\b\230\000\000\001\190\000\000\004\245\002B\000\000\000\000\003\138\000\000\000\000\n\n\n\014\000\000\000\000\000\000\n\018\000\000\n\026\n>\012j\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\nN\nb\nf\000\000\nj\nr\n~\000\000\000\000\b\130\003\154\000\000\000\000\003j\000\000\012\150\n\134\n\138\bf\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\234\000\000\012r\000\000\000\000\000\000\000\000\b\190\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\142\000\000\000\000\000\000\000\000\000\000\007\166\b\210\000\000\000\000\b\230\000\000\001\190\000\000\000\000\000\000\000\000\000\000\003\138\000\000\000\000\n\n\n\014\000\000\000\000\000\000\n\018\000\000\n\026\n>\012\178\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\nN\nb\nf\000\000\nj\nr\n~\000\000\000\000\b\130\003\154\000\000\000\000\003j\000\000\012\202\n\134\n\138\bf\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\234\000\000\012\186\000\000\000\000\000\000\000\000\b\190\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\142\000\000\000\000\000\000\000\000\000\000\007\166\b\210\000\000\000\000\b\230\000\000\001\190\000\000\000\000\000\000\000\000\000\000\003\138\000\000\000\000\n\n\n\014\000\000\000\000\000\000\n\018\000\000\n\026\n>\012\230\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\nN\nb\nf\000\000\nj\nr\n~\000\000\000\000\b\130\003\154\000\000\000\000\003j\000\000\r\002\n\134\n\138\bf\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\234\000\000\012\238\000\000\000\000\000\000\000\000\b\190\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\142\000\000\000\000\000\000\000\000\000\000\007\166\b\210\000\000\000\000\b\230\000\000\001\190\000\000\000\000\000\000\000\000\000\000\003\138\000\000\000\000\n\n\n\014\000\000\000\000\000\000\n\018\000\000\n\026\n>\r\030\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\nN\nb\nf\000\000\nj\nr\n~\000\000\000\000\b\130\003\154\000\000\000\000\003j\000\000\b\134\n\134\n\138\bf\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\234\000\000\r&\000\000\000\000\000\000\000\000\b\190\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\142\000\000\000\000\000\000\000\000\000\000\007\166\b\210\000\000\000\000\014:\000\000\001\190\000\000\000\000\000\000\000\000\000\000\003\138\000\000\000\000\n\n\n\014\000\000\000\000\000\000\n\018\000\000\n\026\n>\nn\000\000\016~\nJ\000\000\000\000\b\165\000\000\000\000\000\000\b\165\000\000\000\000\000\000\nN\nb\nf\000\000\nj\nr\n~\b\165\000\000\b\165\000\000\b\165\000\000\b\165\000\000\000\000\n\134\n\138\000\000\000\000\011\002\000\000\000\000\000\000\000\000\000\000\b\165\000\000\000\000\000\000\000\000\000\000\000\000\b\165\000\000\016\226\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\165\n\142\000\000\b\165\000\000\000\000\000\000\007\166\000\000\b\165\b\165\000\242\000\000\000\000\000\000\000\000\000\000\000\000\b\165\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\165\000\000\000\000\b\165\000\000\000\000\000\000\000\000\000\000\b\165\000\000\000\000\020\133\000\000\000\000\000\000\020\133\000\000\000\000\000\000\020\133\b\165\000\000\b\165\b\165\000\000\b\165\b\165\000\000\000\000\000\000\020\133\000\000\020\133\000\000\020\133\000\000\020\133\000\000\000\000\000\000\000\000\000\000\b\165\000\000\000\000\000\000\b\165\000\000\000\000\020\133\000\000\000\000\000\000\000\000\b\165\004F\020\133\000\000\020\133\b\165\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\133\000\000\000\000\020\133\000\000\000\000\000\000\000\000\000\000\020\133\020\133\000\242\000\000\000\000\000\000\000\000\000\000\000\000\020\133\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\133\000\000\000\000\020\133\000\000\000\000\000\000\000\000\000\000\020\133\000\000\000\000\016~\000\000\000\000\000\000\b\205\000\000\000\000\000\000\b\205\020\133\000\000\020\133\020\133\000\000\020\133\020\133\000\000\000\000\000\000\b\205\000\000\b\205\000\000\b\205\000\000\b\205\000\000\000\000\000\000\000\000\000\000\020\133\000\000\000\000\000\000\020\133\000\000\000\000\b\205\000\000\000\000\000\000\000\000\020\133\004F\b\205\000\000\016\226\020\133\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\205\000\000\000\000\b\205\000\000\000\000\000\000\000\000\000\000\b\205\b\205\000\242\000\000\000\000\000\000\000\000\000\000\000\000\b\205\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\205\000\000\000\000\b\205\000\000\000\000\000\000\000\000\000\000\b\205\000\000\000\000\016~\000\000\000\000\000\000\b\197\000\000\000\000\000\000\b\197\b\205\000\000\b\205\b\205\000\000\b\205\b\205\000\000\000\000\000\000\b\197\000\000\b\197\000\000\b\197\000\000\b\197\000\000\000\000\000\000\000\000\000\000\b\205\000\000\000\000\000\000\b\205\000\000\000\000\b\197\000\000\000\000\000\000\000\000\b\205\004F\b\197\000\000\016\226\b\205\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\197\000\000\000\000\b\197\000\000\000\000\000\000\000\000\000\000\b\197\b\197\000\242\000\000\000\000\000\000\000\000\000\000\000\000\b\197\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\197\000\000\000\000\b\197\000\000\000\000\000\000\000\000\000\000\b\197\000\000\000\000\b\201\000\000\000\000\000\000\b\201\000\000\000\000\000\000\b\201\b\197\000\000\b\197\b\197\000\000\b\197\b\197\000\000\000\000\000\000\b\201\000\000\b\201\000\000\b\201\000\000\b\201\000\000\000\000\000\000\000\000\000\000\b\197\000\000\000\000\000\000\b\197\000\000\000\000\b\201\000\000\000\000\000\000\000\000\b\197\004F\b\201\000\000\016\218\b\197\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\201\000\000\000\000\b\201\000\000\000\000\000\000\000\000\000\000\b\201\b\201\b\201\000\000\000\000\000\000\000\000\000\000\000\000\b\201\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\201\000\000\000\000\b\201\000\000\000\000\000\000\000\000\000\000\b\201\000\000\000\000\b\209\000\000\000\000\000\000\b\209\000\000\000\000\000\000\b\209\b\201\000\000\b\201\b\201\000\000\b\201\b\201\000\000\000\000\000\000\b\209\000\000\b\209\000\000\b\209\000\000\b\209\000\000\000\000\000\000\000\000\000\000\b\201\000\000\000\000\000\000\b\201\000\000\000\000\b\209\000\000\000\000\000\000\000\000\b\201\b\201\b\209\000\000\016\218\b\201\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\209\000\000\000\000\b\209\000\000\000\000\000\000\000\000\000\000\b\209\b\209\b\209\000\000\000\000\000\000\000\000\000\000\000\000\b\209\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\209\000\000\000\000\b\209\000\000\000\000\000\000\000\000\000\000\b\209\000\000\000\000\020\137\000\000\000\000\000\000\020\137\000\000\000\000\000\000\020\137\b\209\000\000\b\209\b\209\000\000\b\209\b\209\000\000\000\000\000\000\020\137\000\000\020\137\000\000\020\137\000\000\020\137\000\000\000\000\000\000\000\000\000\000\b\209\000\000\000\000\000\000\b\209\000\000\000\000\020\137\000\000\000\000\000\000\000\000\b\209\b\209\020\137\000\000\016\226\b\209\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\137\000\000\000\000\020\137\000\000\000\000\000\000\000\000\000\000\020\137\020\137\000\242\000\000\000\000\000\000\000\000\000\000\000\000\020\137\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\137\000\000\000\000\020\137\000\000\000\000\000\000\000\000\000\000\020\137\000\000\000\000\b\213\000\000\000\000\000\000\b\213\000\000\000\000\000\000\b\213\020\137\000\000\020\137\020\137\000\000\020\137\020\137\000\000\000\000\000\000\b\213\000\000\b\213\000\000\b\213\000\000\b\213\000\000\000\000\000\000\000\000\000\000\020\137\000\000\000\000\000\000\020\137\000\000\000\000\b\213\000\000\000\000\000\000\000\000\020\137\004F\b\213\000\000\b\213\020\137\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\213\000\000\000\000\b\213\000\000\000\000\000\000\000\000\000\000\b\213\b\213\b\213\000\000\000\000\000\000\000\000\000\000\000\000\b\213\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\213\000\000\000\000\b\213\000\000\000\000\000\000\000\000\000\000\b\213\000\000\000\000\b\169\000\000\000\000\000\000\b\169\000\000\000\000\000\000\b\169\b\213\000\000\b\213\b\213\000\000\b\213\b\213\000\000\000\000\000\000\b\169\000\000\b\169\000\000\b\169\000\000\b\169\000\000\000\000\000\000\000\000\000\000\b\213\000\000\000\000\000\000\b\213\000\000\000\000\b\169\000\000\000\000\000\000\000\000\b\213\b\213\b\169\000\000\016\218\0176\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\169\000\000\000\000\b\169\000\000\000\000\000\000\000\000\000\000\b\169\b\169\b\169\000\000\000\000\000\000\000\000\000\000\000\000\b\169\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\169\000\000\000\000\b\169\000\000\000\000\000\000\000\000\000\000\b\169\000\000\000\000\b\189\000\000\000\000\000\000\b\189\000\000\000\000\000\000\b\189\b\169\000\000\b\169\b\169\000\000\b\169\b\169\000\000\000\000\000\000\b\189\000\000\b\189\000\000\b\189\000\000\b\189\000\000\000\000\000\000\000\000\000\000\b\169\000\000\000\000\000\000\b\169\000\000\000\000\b\189\000\000\000\000\000\000\000\000\b\169\b\169\b\189\000\000\016\226\b\169\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\189\000\000\000\000\b\189\000\000\000\000\000\000\000\000\000\000\b\189\b\189\000\242\000\000\000\000\000\000\000\000\000\000\000\000\b\189\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\189\000\000\000\000\b\189\000\000\000\000\000\000\000\000\000\000\b\189\000\000\000\000\b\193\000\000\000\000\000\000\b\193\000\000\000\000\000\000\b\193\b\189\000\000\b\189\b\189\000\000\b\189\b\189\000\000\000\000\000\000\b\193\000\000\b\193\000\000\b\193\000\000\b\193\000\000\000\000\000\000\000\000\000\000\b\189\000\000\000\000\000\000\b\189\000\000\000\000\b\193\000\000\000\000\001\226\001\230\b\189\004F\b\193\000\000\016\218\b\189\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\193\000\000\000\000\b\193\000\000\001\234\001\238\000\000\000\000\b\193\b\193\b\193\000\000\000\000\000\000\000\000\000\000\000\000\b\193\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\193\000\000\000\000\b\193\030\238\000\000\003\226\000\000\000\000\b\193\003z\000\000\003\138\003\186\003\198\000\000\000\000\000\000\000\000\000\000\003\210\b\193\030f\b\193\b\193\000\000\b\193\b\193\000\000\000\000\b\130\003\154\000\000\000\000\003j\000\000\t\210\000\000\000\000\bf\000\000\000\000\003\214\b\193\003\230\t\201\000\000\b\193\000\000\030\182\001\234\000\000\000\000\000\000\000\000\b\193\b\193\b\190\000\000\000\000\b\193\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\210\000\000\000\000\b\230\000\000\001\190\000\000\000\000\000\000\000\000\000\000\003\138\000\000\000\000\n\n\n\014\000\000\000\000\000\000\n\018\000\000\n\026\n>\012\246\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\nN\nb\nf\000\000\nj\nr\n~\000\000\000\000\b\130\003\154\000\000\000\000\003j\000\000\022\178\n\134\n\138\bf\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\234\000\000\000\000\000\000\000\000\000\000\000\000\b\190\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\142\000\000\000\000\000\000\000\000\000\000\007\166\b\210\000\000\000\000\b\230\000\000\001\190\000\000\000\000\000\000\000\000\000\000\003\138\000\000\000\000\n\n\n\014\000\000\000\000\000\000\n\018\000\000\n\026\n>\022\206\000\000\000\000\nJ\000\000\000\000\000\193\000\000\000\000\000\000\000\193\000\000\000\000\000\000\nN\nb\nf\000\000\nj\nr\n~\000\193\000\000\000\193\000\000\000\193\000\000\000\193\000\000\000\000\n\134\n\138\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\193\000\000\000\000\000\000\000\000\022\214\000\000\000\193\000\000\000\000\000\000\000\000\000\193\000\000\000\000\000\000\000\000\000\000\000\193\n\142\000\000\000\193\000\000\000\000\000\000\007\166\000\000\000\193\000\193\000\242\000\000\000\000\000\000\000\000\000\000\000\000\000\193\000\000\000\193\000\193\000\000\000\000\000\000\000\000\000\000\000\193\000\000\000\000\000\193\000\000\000\000\000\000\000\000\000\000\000\193\000\250\000\000\000\000\000\000\t*\001\005\000\000\000\000\000\000\001\005\000\000\000\193\000\000\000\193\000\000\007e\000\193\000\193\000\000\000\000\001\005\tZ\001\005\000\000\001\005\000\000\001\005\000\000\000\000\000\193\000\000\000\000\000\000\000\000 N\000\000\000\193\000\193\000\000\001\005\000\000 v\000\000\000\000\000\000\000\000\001\005\000\000\000\193\000\000\000\193\001\005&\022\000\000\000\000 \218\000\000\001\005\000\000\000\000\001\005 \242\000\000\000\000\000\000\000\000\001\005\001\005\000\242\000\000 \250\000\000\000\000\000\000\000\000\001\005\000\000\001\005\001\005!\n\000\000\000\000\000\000\000\000\001\005\000\000\000\000\001\005\000\000\000\000\000\000\000\000\000\000\001\005\000\000\000\000\000\000\000\000\000\000\000\201!\018\000\000!R\000\201\000\000\001\005\000\000\001\005\000\000\000\000\001\005\001\005\000\000\000\000\000\201\000\000\000\201\000\000\000\201\000\000\000\201\000\000\000\000\001\005\000\000\000\000!\154\000\000\000\000\000\000\001\005\001\005\000\000\000\201\000\000\000\000\000\000\000\000\000\000\000\000\000\201\000\000\001\005\000\000\001\005\000\201\000\000\000\000\000\000\000\000\000\000\000\201\000\000\000\000\000\201\000\000\000\000\000\000\000\000\000\000\000\201\000\201\000\242\000\000\000\000\000\000\000\000\000\000\000\000\000\201\000\000\000\201\000\201\000\000\000\000\000\000\000\000\000\000\000\201\000\000\000\000\000\201\000\000\000\000\000\000\000\000\000\000\000\201\000\000\000\000\000\000\000\000\000\000\000\197\000\000\000\000\000\000\000\197\000\000\000\201\000\000\000\201\000\000\000\000\000\201\000\201\000\000\000\000\000\197\000\000\000\197\000\000\000\197\000\000\000\197\000\000\000\000\000\201\000\000\000\000\000\000\000\000\000\000\000\000\000\201\000\201\000\000\000\197\000\000\000\000\000\000\000\000\000\000\000\000\000\197\000\000\000\201\000\000\000\201\000\197\000\000\000\000\000\000\000\000\000\000\000\197\000\000\000\000\000\197\000\000\000\000\000\000\000\000\000\000\000\197\000\197\000\242\000\000\000\000\000\000\000\000\000\000\000\000\000\197\000\000\000\197\000\197\000\000\000\000\000\000\000\000\000\000\000\197\001\221\000\000\000\197\000\000\001\221\000\000\000\000\000\000\000\197\000\000\000\000\000\000\000\000\000\000\000\000\001\221\000\000\000\000\000\000\001\221\000\197\001\221\000\197\000\000\000\000\000\197\000\197\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\221\000\000\001\221\000\000\000\197\000\000\000\000\001\221\000\000\000\000\000\000\000\197\000\197\000\000\007\221\000\000\000\000\000\000\001\221\000\000\000\000\001\221\000\000\000\197\000\000\000\197\000\000\001\221\001\221\001\221\000\000\000\000\000\000\000\000\000\000\000\000\001\221\000\000\000\000\000\000\007\213\000\000\000\000\019\221\007\213\001\221\000\000\000\000\001\221\000\000\000\000\000\000\019\221\000\000\001\221\007\213\000\000\007\213\000\000\007\213\000\000\007\213\000\000\000\000\000\000\000\000\001\221\000\000\001\221\000\000\000\000\001\221\001\221\000\000\007\213\000\000\000\000\000\000\000\000\000\000\007\221\007\213\000\000\019\221\001\221\000\000\000\000\000\000\000\000\000\000\019\221\001\221\001\221\000\000\000\000\007\213\000\000\001\221\000\000\000\000\000\000\007\213\007\213\007\213\000\000\001\221\000\000\000\000\000\000\000\000\007\213\000\000\002V\000\000\000\000\000\000\004\221\000\000\000\000\007\213\004\221\000\000\002^\000\000\000\000\000\000\000\000\000\000\019\221\000\000\000\000\004\221\000\000\000\000\000\000\004\221\000\000\004\221\000\000\000\000\007\213\000\000\007\213\007\213\000\000\007\213\007\213\000\000\000\000\000\000\004\221\000\000\000\000\000\000\000\000\000\000\000\000\004\221\002\234\000\000\000\000\000\000\000\000\000\000\000\000%&\007\213\000\000\004\221\000\000\000\000\004\221\000\000\000\000\000\000\000\000\000\000\004\221\004\221\007\213\000\000\000\000\000\000\000\000\000\000\000\000\004\221\000\000\000\000\000\000\000\000\000\000\0071\000\000\000\000\004\221\0071\000\000\004\221\000\000\000\000\000\000\000\000\000\000\004\221\000\000\000\000\0071\000\000\000\000\000\000\0071\000\000\0071\000\000\000\000\004\221\000\000\004\221\004\221\000\000\004\221\004\221\000\000\000\000\000\000\0071\000\000\000\000\000\000\000\000\000\000\000\000\0071\004\221\000\000\000\000\000\000\0071\004\221\003\242\000\000\004\221\000\000\0071\000\000\000\000\0071\000\000\000\000\000\000\000\000\000\000\0071\tN\004\221\002\250\000\000\000\000\000\000\000\000\000\000\0071\000\000\0071\0071\000\000\000\000\000\000\000\000\000\000\0071\0071\000\000\0071\000\000\000\000\000\000\000\000\000\000\0071\002\001\000\000\000\000\000\000\002\001\000\000\000\000\000\000\000\000\000\000\000\000\0071\rY\0071\000\000\002\001\0071\0071\000\000\002\001\000\000\002\001\000\000\000\000\000\000\003\254\000\000\000\000\000\000\0071\000\000\000\000\000\000\000\000\002\001\000\000\000\000\0071\000\000\000\000\000\000\002\001&\226\002\001\000\000\0071\000\000\000\000\000\000\000\000\0071\000\000\002\001\000\000\000\000\002\001\000\000\000\000\000\000\000\000\000\000\002\001\002\001\002\001\000\000\000\000\000\000\000\000\000\000\000\000\002\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\001\002\001\000\000\002\001\000\000\000\000\000\000\000\000\000\000\002\001\002\t\000\000\000\000\000\000\002\t\000\000\000\000\000\000\000\000\000\000\000\000\002\001\ra\002\001\000\000\002\t\002\001\002\001\000\000\002\t\000\000\002\t\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\001\000\000\000\000\000\000\000\000\002\t\000\000\000\000\002\001\000\000\000\000\000\000\002\t\002\001\002\t\000\000\000\000\000\000\000\000\000\000\000\000\002\001\000\000\002\t\000\000\000\000\002\t\000\000\000\000\000\000\000\000\000\000\002\t\002\t\002\t\000\000\000\000\000\000\000\000\000\000\000\000\002\t\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\t\002\t\000\000\002\t\000\000\000\000\000\000\000\000\000\000\002\t\002\005\000\000\000\000\000\000\002\005\000\000\000\000\000\000\000\000\000\000\000\000\002\t\r]\002\t\000\000\002\005\002\t\002\t\000\000\002\005\000\000\002\005\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\t\000\000\000\000\000\000\000\000\002\005\000\000\000\000\002\t\000\000\000\000\000\000\002\005\002\t\002\005\000\000\000\000\000\000\000\000\000\000\000\000\002\t\000\000\002\005\000\000\000\000\002\005\000\000\000\000\000\000\000\000\000\000\002\005\002\005\002\005\000\000\000\000\000\000\000\000\000\000\000\000\002\005\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\005\002\005\000\000\002\005\000\000\000\000\000\000\000\000\000\000\002\005\001\253\000\000\000\000\000\000\001\253\000\000\000\000\000\000\000\000\000\000\000\000\002\005\rU\002\005\000\000\001\253\002\005\002\005\000\000\001\253\000\000\001\253\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\005\000\000\000\000\000\000\000\000\001\253\000\000\000\000\002\005\000\000\000\000\000\000\001\253\002\005\001\253\000\000\000\000\000\000\000\000\000\000\000\000\002\005\000\000\001\253\000\000\000\000\001\253\000\000\000\000\000\000\000\000\000\000\001\253\001\253\001\253\000\000\000\000\000\000\000\000\000\000\000\000\001\253\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\253\001\253\000\000\001\253\000\250\000\000\000\000\000\000\t*\001\253\000\000\000\000\000\000\000\000\004\141\000\000\000\000\001\230\004\141/\170\000\000\001\253\000\000\001\253\000\000\tZ\001\253\001\253\000\000\004\141\000\000\000\000\000\000\004\141\000\000\004\141\000\000\000\000 N\001\253\000\000\000\000\000\000\000\000\000\000 v\000\000\001\253\004\141\000\000\000\000\000\000\001\253\000\000\000\000\004\141&\022\000\000\000\000 \218\001\253\000\000\000\000\000\000\003\226 \242\004\141\000\000\000\000\004\141\000\000\000\000\000\000\000\000 \250\004\141\004\141\004\141\000\000\000\000\000\000\000\000\000\000!\n\004\141\000\000/:\000\000\000\000\000\000\000\000\000\000/Z\004\141\004\141\000\000\004\141\000\000\000\000\000\000\000\000\000\000\005v\000\000!\018\000\000!R\004\137\000\000\007m\001\230\004\137\000\000\000\000\004\141\000\000\004\141\000\000\000\000\004\141\004\141\000\000\004\137\000\000\000\000\000\000\004\137\000\000\004\137\000\000!\154\000\000\004\141\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\141\004\137\000\000\000\000\000\000\004\141\000\000\000\000\004\137\000\000\000\000\000\000\000\000\004\141\000\000\000\000\000\000\003\226\000\000\004\137\000\000\000\000\004\137\000\000\000\000\000\000\000\000\000\000\004\137\004\137\004\137\000\000\000\000\000\000\000\000\000\000\000\000\004\137\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\137\004\137\000\000\004\137\000\000\000\000\000\000\000\000\000\000\005v\011\177\000\000\000\000\000\000\011\177\000\000\000\000\000\000\000\000\000\000\000\000\004\137\000\000\004\137\000\000\011\177\004\137\004\137\000\000\011\177\000\000\011\177\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\137\000\000\000\000\000\000\000\000\011\177\000\000\000\000\004\137\000\000\000\000\000\000\011\177\004\137\000\000\000\000\000\000\011\177\000\000\000\000\000\000\004\137\000\000\011\177\000\000\000\000\011\177\000\000\000\000\000\000\000\000\000\000\011\177\011\177\000\242\000\000\000\000\000\000\000\000\000\000\000\000\011\177\000\000\011\177\011\177\000\000\000\000\011\173\000\000\000\000\011\177\011\173\000\000\011\177\000\000\000\000\000\000\000\000\000\000\011\177\000\000\000\000\011\173\000\000\000\000\000\000\011\173\000\000\011\173\000\000\000\000\011\177\000\000\011\177\011\177\000\000\011\177\011\177\000\000\000\000\000\000\011\173\000\000\000\000\000\000\000\000\000\000\000\000\011\173\011\177\000\000\000\000\000\000\011\173\000\000\000\000\000\000\011\177\000\000\011\173\000\000\000\000\011\173\000\000\000\000\011\177\000\000\000\000\011\173\011\173\000\242\000\000\000\000\000\000\000\000\000\000\000\000\011\173\000\000\011\173\011\173\000\000\000\000\001U\000\000\000\000\011\173\001U\000\000\011\173\000\000\000\000\000\000\000\000\000\000\011\173\000\000\000\000\001U\000\000\001U\000\000\001U\000\000\001U\000\000\000\000\011\173\000\000\011\173\011\173\000\000\011\173\011\173\000\000\000\000\000\000\001U\000\000\000\000\000\000\000\000\000\000\000\000\001U\011\173\000\000\000\000\000\000\001U\000\000\000\000\000\000\011\173\000\000\001U\000\000\000\000\001U\000\000\000\000\011\173\000\000\000\000\001U\001U\000\242\000\000\000\000\000\000\000\000\000\000\000\000\001U\000\000\000\000\001U\000\000\000\000\000\000\000\000\000\000\001U\000\000\000\000\001U\000\000\000\000\000\000\000\000\000\000\001U\000\000\000\000\000\000\000\000\000\000\001Q\000\000\000\000\000\000\001Q\000\000\001U\000\000\001U\001U\000\000\001U\001U\000\000\000\000\001Q\000\000\001Q\000\000\001Q\000\000\001Q\000\000\000\000\001U\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001U\000\000\001Q\000\000\000\000\000\000\000\000\000\000\000\000\001Q\000\000\000\000\000\000\001U\001Q\000\000\000\000\000\000\000\000\000\000\001Q\000\000\000\000\001Q\000\000\000\000\000\000\000\000\000\000\001Q\001Q\000\242\000\000\000\000\000\000\000\000\000\000\000\000\001Q\000\000\000\000\001Q\007\217\000\000\000\000\019\221\007\217\001Q\000\000\000\000\001Q\000\000\000\000\000\000\019\221\000\000\001Q\007\217\000\000\007\217\000\000\007\217\000\000\007\217\000\000\000\000\000\000\000\000\001Q\000\000\001Q\001Q\000\000\001Q\001Q\000\000\007\217\000\000\000\000\000\000\000\000\000\000\000\000\007\217\000\000\019\221\001Q\000\000\000\000\000\000\000\000\000\000\019\221\000\000\001Q\000\000\000\000\007\217\000\000\000\000\000\000\000\000\000\000\007\217\007\217\007\217\000\000\001Q\000\000\000\000\000\000\000\000\007\217\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007\217\002\017\000\000\002^\030J\002\017\000\000\003j\000\000\019\221\000\000\000\000\000\000\000\000\000\000\000\000\002\017\000\000\000\000\000\000\002\017\007\217\002\017\007\217\007\217\000\000\007\217\007\217\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\017\000\000\000\000\000\000\000\000\000\000\000\000\002\017\000\000\000\000\000\000\000\000\007\217\000\000\030N\000\000\000\000\000\000\002\017\000\000\000\000\002\017\000\000\000\000\000\000\007\217\000\000\002\017\002\017\000\000\030Z\000\000\000\000\000\000\000\000\000\000\002\017\000\000\000\000\000\000\001E\000\000\000\000\002y\001E\002\017\000\000\000\000\002\017\000\000\000\000\000\000\002y\000\000\002\017\001E\000\000\001E\000\000\001E\000\000\001E\000\000\000\000\000\000\n\138\002\017\000\000\002\017\000\000\000\000\002\017\002\017\000\000\001E\000\000\000\000\000\000\000\000\000\000\000\000\001E\000\000\002y\002\017\000\000\000\000\000\000\000\000\000\000\002y\000\000\002\017\000\000\000\000\001E\000\000\000\000\000\000\000\000\000\000\001E\001E\001E\000\000\002\017\000\000\000\000\000\000\000\000\001E\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001E\004\129\000\000\000\000\000\000\004\129\000\000\000\000\000\000\002y\000\000\000\000\000\000\000\000\000\000\000\000\004\129\000\000\000\000\000\000\004\129\001E\004\129\001E\001E\000\000\001E\001E\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\129\000\000\030b\000\000\000\000\000\000\000\000\004\129\000\000\000\000\000\000\000\000\001E\000\000\000\000\000\000\000\000\000\000\004\129\000\000\000\000\004\129\000\000\000\000\000\000\001E\000\000\004\129\004\129\004\129\000\000\000\000\000\000\000\000\000\000\000\000\004\129\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\129\000\000\000\000\004\129\000\000\000\000\000\000\000\000\000\000\004\129\001\202\001\226\003f\000\000\000\000\003j\000\000\000\000\000\000\000\000\000\000\004\129\000\000\004\129&\234\000\000\004\129\004\129\000\000\000\000\000\000\001\234\002&\001\254\003n\000\000\000\000\000\000\000\000\004\129\000\000\000\000\002\n\000\000\001\206\000\000\030\234\004\129\000\000\nu\000\000\000\000\004\129\nu\000\000\000\000\000\000\003r\001\210\002Z\004\129\000\000\000\000\003z\nu\003\138\003\186\003\198\nu\000\000\nu\000\000\000\000(\238\000\000)6\019\221\000\000\000\000\000\000\000\000\000\000\000\000\nu\000\000\000\000\000\000\000\000\000\000\000\000\nu\000\000\000\000\000\000\000\000\003\214)B\003\230\000\000\000\000\000\000\nu\000\000\000\000\nu\000\000\000\000\000\000\n\138\000\000\nu\nu\000\000\000\000\b\130\003\154\000\000\000\000\003j\nu\000\000\000\000)N\bf\000\000\000\000\000\000\000\000\nu\000\000\000\000\nu\000\000\000\000\001\234\000\000\000\000\nu\000\000\000\000)\014\b\190\000\000\000\000\000\000\000\000\000\000\000\000\000\000\nu\000\000\nu\nu\000\000\nu\nu\000\000\b\210\000\000\000\000\015N\000\000\001\190\000\000\000\000\000\000\000\000\nu\003\138\000\000\000\000\n\n\n\014\000\000\003V\nu\n\018\000\000\n\026\000\000\000\000\000\000\000\000\nJ\000\000\000\000\004\129\000\000\nu\000\000\004\129\000\000\000\000\000\000\nN\nb\nf\000\000\nj\nr\n~\004\129\000\000\000\000\000\000\004\129\000\000\004\129\000\000\000\000\n\134\n\138\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\129\000\000\030b\000\000\000\000\000\000\000\000\004\129\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\129\n\142\000\000\004\129\000\000\000\000\000\000\007\166\000\000\004\129\004\129\004\129\001\202\001\226\003f\000\000\000\000\003j\004\129\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\129\000\000\000\000\004\129\000\000\000\000\001\234\002&\001\254\004\129\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\n\000\000\001\206\000\000\004\129\000\000\004\129'\"\000\000\004\129\004\129\000\000\000\000\000\000\000\000\003r\001\210\002Z\000\000\000\000\000\000\003z\b9\003\138\003\186\003\198\b9\000\000\000\000\030\234\004\129(\238\000\000(\242\000\000\004\129\000\000\b9\000\000\000\000\000\000\b9\000\000\b9\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\214(\254\003\230\b9\000\000\000\000\000\000\000\000\000\000\000\000\b9\000\000\000\000\n\138\000\000\000\000\000\000\017z\000\000\000\000\000\000\b9\012\161\000\000\b9\000\000\000\000)\n\000\000\000\000\b9\b9\000\242\000\000\000\000\000\000\000\000\000\000\000\000\b9\012\161\012\161\000\000\012\161\012\161)\014\000\000\000\000\b9\b9\000\000\b9\000\000\000\000\000\000\000\000\000\000\b9\b=\000\000\000\000\000\000\b=\000\000\000\000\000\000\000\000\012\161\000\000\b9\000\000\b9\000\000\b=\b9\b9\000\000\b=\000\000\b=\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012\161\000\000\000\000\000\000\000\000\b=\000\000\000\000\b9\000\000\000\000\000\000\b=\000\000\000\000\000\000\000\000\012\161\000\000\017z\000\000\b9\000\000\b=\000\000\000\000\b=\000\000\000\000\000\000\000\000\000\000\b=\b=\000\242\000\000\000\000\000\000\000\000\000\000\012\161\b=\012\161\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b=\b=\000\000\b=\000\000\000\000\000\000\011.\012\161\b=\bA\012\161\012\161\000\000\bA\000\000\012\161\000\000\012\161\005\153\000\000\b=\012\161\b=\012\161\bA\b=\b=\000\000\bA\000\000\bA\000\000\000\000\000\000\000\000\000\000\005\153\005\153\000\000\005\153\005\153\000\000\000\000\bA\000\000\000\000\b=\000\000\000\000\000\000\bA\000\000\000\000\000\000\000\000\000\000\000\000\017z\000\000\b=\000\000\bA\000\000\005\153\bA\000\000\000\000\000\000\000\000\000\000\bA\bA\000\242\000\000\000\000\000\000\000\000\000\000\000\000\bA\000\000\000\000\000\000\000\242\000\000\000\000\000\000\000\000\bA\bA\000\000\bA\000\000\000\000\000\000\000\000\000\000\bA\bE\000\000\005\153\000\000\bE\000\000\000\000\000\000\000\000\000\000\000\000\bA\000\000\bA\000\000\bE\bA\bA\000\000\bE\000\000\bE\000\000\000\000\000\000\005\153\000\000\005\153\000\000\000\000\000\000\000\000\000\000\000\000\bE\000\000\000\000\bA\000\000\000\000\000\000\bE\005\153\005\153\000\000\000\000\011j\005\153\017z\000\000\bA\005\153\bE\005\153\000\000\bE\000\000\005\153\000\000\005\153\000\000\bE\bE\000\242\000\000\000\000\000\000\000\000\000\000\000\000\bE\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\bE\bE\000\000\bE\000\000\000\000\016~\000\000\000\000\bE\n\157\000\000\000\000\000\000\n\157\000\000\000\000\000\000\000\000\000\000\000\000\bE\000\000\bE\000\000\n\157\bE\bE\000\000\n\157\000\000\n\157\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\157\000\000\000\000\bE\000\000\000\000\000\000\n\157\000\000\016\226\000\000\000\000\000\000\000\000\000\000\000\000\bE\000\000\n\157\000\000\000\000\n\157\000\000\000\000\000\000\000\000\000\000\n\157\n\157\000\242\000\000\000\000\000\000\000\000\000\000\000\000\n\157\000\000\000\000\000\000\000\000\000\000\004\129\000\000\000\000\n\157\004\129\000\000\n\157\000\000\000\000\000\000\000\000\000\000\n\157\000\000\000\000\004\129\000\000\000\000\000\000\004\129\000\000\004\129\000\000\000\000\n\157\000\000\n\157\000\000\000\000\n\157\n\157\000\000\000\000\000\000\004\129\000\000\030b\000\000\000\000\000\000\000\000\004\129\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\157\000\000\004\129\000\000\000\000\004\129\000\000\000\000\000\000\004F\000\000\004\129\004\129\004\129\000\000\000\000\000\000\000\000\000\000\000\000\004\129\000\000\000\000\000\000\000\000\000\000\te\000\000\000\000\004\129\te\000\000\004\129\000\000\000\000\000\000\000\000\000\000\004\129\000\000\000\000\te\000\000\000\000\000\000\te\000\000\te\000\000\000\000\004\129\000\000\004\129!b\000\000\004\129\004\129\000\000\000\000\000\000\te\000\000\000\000\000\000\000\000\000\000\000\000\te\000\000\000\000\000\000\000\000\000\000\000\000\000\000\030\234\004\129\000\000\te\000\000\000\000\te\000\000\000\000\000\000\000\000\000\000\te\te\000\242\000\000\000\000\000\000\000\000\000\000\000\000\te\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\te\019y\000\000\te\003\154\019y\000\000/B\000\000\te\000\000\000\000/F\000\000\000\000\000\000\019y\000\000\000\000\000\000\000\000\te\019y\te)Z\000\000\te\te\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019y\000\000\000\000\000\000\te\000\000\000\000\019y\000\000\000\000\000\000\000\000\te\000\000\001\006\000\000\001\190\000\000\019y\000\000\000\000\019y\000\000\000\000\000\000\te\000\000\019y\019]\000\000\000\000\003\154\019]\000\000/b\000\000\019y/J\000\000/f\000\000\000\000\000\000\019]\000\000\019y\000\000\000\000\019y\019]\000\000\000\000\000\000\000\000\019y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019]\000\000\000\000/N\019y\000\000\019y\019]\000\000\019y\000\000\000\000\000\000\000\000\001\006\000\000\001\190\000\000\019]\nu\000\000\019]\000\000\nu\000\000\000\000\000\000\019]\000\000\000\000\019y\000\000\000\000\000\000\nu\000\000\019]/j\nu\000\000\nu\000\000\000\000\000\000\000\000\019]\019\221\000\000\019]\000\000\000\000\000\000\000\000\nu\019]\000\000\000\000\000\000\000\000\000\000\nu\000\000\000\000\000\000\000\000/n\019]\000\000\019]\000\000\000\000\019]\000\000\000\000\nu\000\000\000\000\000\000\000\000\000\000\nu\nu\000\000\000\000\000\000\000\000\019\185\000\000\000\000\nu\019\185\000\000\019]\000\000\000\000\019\185\000\000\000\000\nu\019\185\000\000\019\185\000\000\000\000\000\000\019\185\000\000\019\185\000\000\000\000\019\185\000\000\000\000\000\000\019\185\000\000\019\185\000\000\000\000\nu\019\185\nu\nu\000\000\nu\nu\000\000\019\185\000\000\019\185\000\000\000\000\000\000\000\000\000\000\000\000\019\185\nu\019\185\000\000\000\000\019\185\nu\000\000\003V\nu\000\000\019\185\019\185\000\000\019\185\000\000\000\000\000\000\000\000\000\000\019\185\019\185\nu\000\000\000\000\000\000\002\021\000\000\000\000\019\185\002\021\000\000\019\185\000\000\000\000\000\000\000\000\000\000\019\185\000\000\000\000\002\021\000\000\000\000\000\000\002\021\000\000\002\021\000\000\000\000\019\185\000\000\019\185\003b\000\000\019\185\019\185\000\000\000\000\019\185\002\021\019\185\003b\000\000\019\185\019\185\000\000\002\021\019\185\000\000\000\000\000\000\000\000)\166\000\000\000\000\019\185\019\185\002\021\000\000\000\000\002\021)\226\000\000\000\000\019\185\000\000\002\021\002\021\019\185\000\000\000\000\000\000\000\000\000\000\000\000\002\021\000\000\019\185\000\000\000\000\000\000\000\000\000\000\000\000\002\021\ti\000\000\002\021\000\000\ti\000\000\000\000\000\000\002\021\000\000\000\000\000\000\000\000\000\000\000\000\ti\000\000\000\000\000\000\ti\002\021\ti\002\021\000\000\000\000\002\021\002\021\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ti\000\000\000\000\000\000\002\021\000\000\000\000\ti\000\000\000\000\000\000\000\000\002\021\000\000\000\000\016~\000\000)\026\ti\n\193\000\000\ti\000\000\n\193\000\000\002\021\000\000\ti\ti\000\242\000\000\000\000\000\000\000\000\n\193\000\000\ti\000\000\n\193\000\000\n\193\000\000\000\000\000\000\000\000\ti\000\000\000\000\ti\000\000\000\000\000\000\000\000\n\193\ti\000\000\000\000\000\000\000\000\000\000\n\193\000\000\016\226\000\000\000\000\000\000\ti\000\000\ti\000\000\000\000\ti\ti\000\000\n\193\000\000\000\000\000\000\000\000\000\000\n\193\n\193\000\242\000\000\ti\000\000\000\000\000\000\000\000\n\193\000\000\000\000\ti\000\000\000\000\0071\000\000\000\000\n\193\0071\000\000\000\000\000\000\000\000\000\000\ti\000\000\000\000\000\000\000\000\0071\000\000\000\000\000\000\0071\000\000\0071\000\000\0071\n\193\000\000\n\193\0071\000\000\n\193\n\193\000\000\000\000\000\000\0071\000\000\000\000\000\000\0071\000\000\000\000\0071\0071\000\000\0071\000\000\000\000\000\000\000\000\000\000\n\193\000\000\0071\000\000\000\000\0071\000\000\0071\002\130\004F\000\000\0071\tN\n\193\0071\000\000\000\000\000\000\000\000\000\000\0071\017z\000\000\000\000\000\000\0071\000\000\000\000\0071\0071\000\000\000\000\0071\000\000\0071\tN\000\242\000\000\0071\000\000\000\000\000\000\000\000\0071\000\000\000\000\000\000\000\000\000\000\000\000\0071\000\000\0071\000\000\000\000\0071\0071\000\000\002V\000\000\000\000\0071\004\253\000\000\000\000\000\000\004\253\000\000\016\170\000\000\000\000\000\000\000\000\0071\000\000\0071\0071\004\253\0071\0071\000\000\004\253\000\000\004\253\000\000\000\000\000\000\000\000\000\000\0071\000\249\000\000\000\000\000\000\000\249\000\000\004\253\000\000\000\000\0071\000\000\000\000\000\000\004\253\002\234\000\249\000\000\000\000\000\000\000\249\000\000\000\249\0071\000\000\004\253\000\000\000\000\004\253\000\000\000\000\000\000\000\000\000\000\004\253\000\249\000\000\000\000\000\000\000\000\000\000\000\000\000\249\004\253\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\253\000\249\000\000\004\253\000\249\000\000\000\000\000\000\000\000\004\253\000\249\000\249\000\242\000\000\000\000\000\000\000\000\000\000\000\000\000\249\000\000\004\253\000\000\004\253\000\000\000\000\004\253\004\253\000\249\000\253\000\000\000\249\000\000\000\253\000\000\000\000\000\000\000\249\000\000\000\000\000\000\000\000\000\000\000\000\000\253\000\000\000\000\004\253\000\253\000\249\000\253\000\249\000\000\000\000\000\249\000\249\000\000\000\000\000\000\000\000\000\000\002\250\000\000\000\253\000\000\000\000\000\000\000\000\000\000\000\000\000\253\000\000\000\000\000\000\000\000\000\249\000\000\000\000\016~\000\000\000\000\000\253\bU\000\000\000\253\000\000\bU\000\000\000\249\000\000\000\253\000\253\000\242\000\000\000\000\000\000\000\000\bU\000\000\000\253\000\000\bU\000\000\bU\000\000\000\000\000\000\000\000\000\253\000\000\000\000\000\253\000\000\000\000\000\000\000\000\bU\000\253\000\000\000\000\000\000\000\000\000\000\bU\000\000\016\226\000\000\000\000\000\000\000\253\000\000\000\253\000\000\000\000\000\253\000\253\000\000\bU\000\000\000\000\000\000\000\000\000\000\bU\bU\000\242\000\000\000\000\000\000\001\202\002\018\001\230\bU\000\000\016~\000\253\000\000\000\000\0071\000\000\000\000\bU\0071\000\000\000\000\003v\000\000\000\000\000\253\000\000\001\234\0022\001\254\0071\000\000\000\000\000\000\0071\000\000\0071\000\000\002\n\bU\001\206\bU\000\000\000\000\bU\bU\002j\000\000\000\000\0071\000\000\000\000\000\000\002\014\001\210\002Z\0071\000\000\016\226\003z\000\000\003\138\003\186\003\198\000\000\bU\000\000\000\000\000\000\003\210\0071\000\000\000\000\rN\004F\000\000\0071\tN\000\242\nU\nU\nU\000\000\000\000\000\000\0071\000\000\000\000\000\000\000\000\000\000\003\214\000\000\003\230\0071\000\000\000\000\003\202\000\000\000\000\nU\nU\nU\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\nU\000\000\nU\000\000\0071\000\000\0071\n\153\000\000\0071\0071\n\153\000\000\000\000\000\000\nU\nU\nU\030R\000\000\000\000\nU\n\153\nU\nU\nU\n\153\000\000\n\153\000\000\0071\nU\000\000\000\000\000\000\000\000\000\000\000\000\0071\004F\000\000\n\153\000\000\000\000\000\000\000\000\000\000\000\000\n\153\000\000\000\000\000\000\000\000\nU\000\000\nU\000\000\000\000\000\000\n\153\000\000\000\000\n\153\000\000\000\000\000\000\000\000\000\000\n\153\n\153\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\153\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\153\000\000\000\000\n\153\000\000\000\000\000\000\000\000\000\000\n\153\000\000\000\000\003\190\000\000\nU\000\000\000\000\000\000\t]\000\000\000\000\n\153\t]\n\153 \138\000\000\n\153\n\153\000\000!>\000\000\000\000\000\000\t]\000\000\000\000\000\000\t]\000\000\t]\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\153\000\000\000\000\000\000\000\000\t]\000\000\000\000\000\000\000\000\000\000\000\000\t]\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t]\000\000\000\000\t]\000\000\000\000\000\000\000\000\000\000\t]\t]\000\000\001\202\002\018\001\230\000\000\000\000\000\000\t]\000\000\000\000\000\000\001m\000\000\000\000\000\000\001m\t]\000\000\000\000\t]\000\000\000\000\001\234-\250\001\254\t]\001m\000\000\001m\000\000\001m\000\000\001m\002\n\000\000\001\206\000\000\t]\000\000\t]\000\000\002j\t]\t]\000\000\001m\000\000\000\000\002\014\001\210\002Z\000\000\001m\000\000\003z\000\000\003\138\003\186\003\198\000\000\000\000\000\000\000\000\t]\003\210\000\000\001m\000\000\000\000\000\000\000\000\000\000\001m\001m\000\242\000\000\000\000\000\000\019\t\000\000\000\000\001m\019\t\000\000\000\000\000\000\003\214\000\000\003\230\000\000\001m\000\000\000\000\019\t\000\000\000\000\000\000\019\t\000\000\019\t\000\000\000\000\000\000\000\000\000\000\000\000\001\202\001\226\001\230\000\000\000\000\001m\019\t\001m\001m\000\000\001m\001m\000\000\019\t\000\000\000\000\000\000\000\000\n\022\000\000\000\000\001\234\002&\001\254\019\t\000\000\000\000\019\t\000\000\000\000\000\000\001m\002\n\019\t\001\206\000\000\000\000\000\000\000\000\000\000\002j\000\000\019\t\000\000\001m\000\000\000\000\002.\001\210\002Z\000\000\019\t\018\246\003z\019\t\003\138\003\186\003\198\000\000\000\000\019\t\007\t\000\000\003\210\000\000\007\t\000\000\000\000\000\000\000\000\000\000\000\000\019\t\000\000\019\t\000\000\007\t\019\t\019\t\000\000\007\t\000\000\007\t\000\000\000\000\003\214\007\001\003\230\000\000\000\000\007\001\000\000\000\000\000\000\000\000\007\t\000\000\000\000\019\t\000\000\000\000\007\001\007\t\000\000\000\000\007\001\000\000\007\001\000\000\000\000\000\000\021\186\000\000\007\t\000\000\000\000\007\t\000\000\000\000\000\000\007\001\000\000\007\t\000\000\000\000\000\000\000\000\007\001\000\000\000\000\007\162\007\t\007\166\000\000\000\000\000\000\000\000\000\000\007\001\000\000\007\t\007\001\000\000\007\t\000\000\000\000\000\000\007\001\000\000\007\t\000\000\000\000\000\000\000\000\000\000\000\000\007\001\000\000\000\000\000\000\000\000\007\t\000\000\007\t\000\000\007\001\007\t\007\t\007\001\000\000\000\000\000\000\000\000\000\000\007\001\006\241\000\000\000\000\000\000\006\241\000\000\000\000\000\000\000\000\000\000\000\000\007\001\007\t\007\001\000\000\006\241\007\001\007\001\000\000\006\241\000\000\006\241\000\000\000\000\000\000 \178\000\000\000\000\007!\000\000\000\000\000\000\007!\000\000\006\241\000\000\000\000\007\001\000\000\000\000\000\000\006\241\000\000\007!\000\000\000\000\000\000\007!\000\000\007!\"\234\000\000\006\241\000\000\000\000\006\241\000\000\000\000\000\000\000\000\000\000\006\241\007!\000\000\000\000\000\000\000\000\000\000\000\000\007!\006\241\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\241\007!\000\000\006\241\007!\000\000\000\000\000\000\000\000\006\241\007!\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007!\000\000\006\241\000\000\006\241\000\000\000\000\006\241\006\241\007!\000\000\000\000\007!\000\000\000\000\000\000\000\000\000\000\007!\000\000\000\000\000\000\000\000\001\202\002\018\001\230\000\000\000\000\006\241\000\000\007!\000\000\007!\000\000\000\000\007!\007!\000\000\000\000\000\000\000\000%\234\000\000\000\000\001\234\003\130\001\254\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\n\007!\001\206\000\000\000\000\000\000\000\000\000\000\002j\000\000\000\000\nQ\nQ\nQ&Z\002.\001\210\002Z\000\000\000\000\000\000\003z\000\000\003\138\003\186\003\198\000\000\000\000\000\000\000\000\000\000\003\210\nQ\nQ\nQ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\nQ\000\000\nQ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\214\000\000\003\230\000\000\000\000\nQ\nQ\nQ\020\141\020\141\020\141\nQ\000\000\nQ\nQ\nQ\000\000\000\000\000\000\000\000\000\000\nQ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\141\020\141\020\141\016\146\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\141\000\000\020\141\nQ\000\000\nQ\000\000\000\000\000\000\000\000\000\000\001\202\001\226\001\230\022\n\020\141\020\141\020\141\000\000\000\000\000\000\020\141\000\000\020\141\020\141\020\141\000\000\000\000\000\000\000\000\000\000\020\141\001\234\001\238\001\254\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\n\000\000\001\206\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\141\000\000\020\141\000\000\007\206\002\014\001\210\002Z\001\202\002\018\001\230\003z\000\000\003\138\003\186\003\198\000\000\000\000\000\000\000\000\000\000\003\210\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\234\030\242\001\254\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\n\000\000\001\206\003\214\000\000\003\230\000\000\000\000\002j\000\000\000\000\001\202\001\226\001\230#\202\002.\001\210\002Z\000\000\000\000\000\000\003z\000\000\003\138\003\186\003\198\000\000\000\000\000\000\000\000\000\000\003\210\001\234\001\238\001\254\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\n\000\000\001\206\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\214\000\000\003\230\000\000\000\000\002\014\001\210\002Z\000\000\000\000\000\000\003z\000\000\003\138\003\186\003\198\001\202\001\226\001\230$*\000\000\003\210\000\000\000\000\000\000\n\185\000\000\000\000\000\000\n\185\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\234\001\238\001\254\n\185\000\000\000\000\003\214\n\185\003\230\n\185\000\000\002\n\000\000\001\206\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\185\001\202\004\170\001\230\002\014\001\210\002Z\n\185\000\000\000\000\003z\000\000\003\138\003\186\003\198\000\000\000\000\000\000\000\000\000\000\003\210\n\185\001\234\004\182\001\254\000\000\000\000\n\185\n\185\000\000\000\000\000\000\000\000\002\n\000\000\001\206\n\185\000\000\000\000\000\000\000\000\000\000\003\214\000\000\003\230\n\185\000\000\000\000\002.\001\210\002Z\000\000\000\000\000\000\003z\011I\003\138\003\186\003\198\000\000\000\000\001\202\006\014\001\230\003\210\000\000\n\185\000\000\n\185\000\000\000\000\n\185\n\185\011I\011I\000\000\011I\011I\000\000\000\000\017\"\000\000\001\234\006\026\001\254\000\000\003\214\000\000\003\230\000\000\000\000\000\000\n\185\002\n\000\000\001\206\000\000\000\000\000\000\000\000\011I*\202\000\000\000\000\000\000\000\000\000\000\005\169\002.\001\210\002Z\000\000\000\000\000\000\003z\000\000\003\138\003\186\003\198\000\000\011I\000\000\000\000\000\000\003\210\005\169\005\169\000\000\005\169\005\169\000\000\000\000\000\000\000\000\000\000\000\000\000\000\011I\000\000\000\000\000\000\000\000\000\000\000\000\000\000\011Y\003\214\000\000\003\230\000\000\000\000\000\000\005\169\000\000\000\000\000\000\000\000\000\000\000\000\000\000\011I\000\000\011I\011Y\011Y\000\000\011Y\011Y\000\000\000\000\000\000\000\000\000\242\000\000\000\000\000\000\000\000\011I\011I\000\000\005\185\011j\011I\000\000\000\000\000\000\011I\000\000\011I\005\169\011Y\000\000\011I\000\000\011I\000\000\000\000\000\000\005\185\005\185\000\000\005\185\005\185\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\242\000\000\005\169\000\000\005\169\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\185\000\000\011Y\000\000\005\169\005\169\000\000\000\000\011j\005\169\000\000\000\000\000\000\005\169\000\000\005\169\000\000\000\000\000\000\005\169\000\242\005\169\000\000\000\000\000\000\011Y\000\000\011Y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\185\000\000\000\000\000\000\000\000\011\158\011Y\000\000\000\000\011j\011Y\000\000\000\000\000\000\011Y\000\000\011Y\005\217\000\000\000\000\011Y\000\000\011Y\005\185\000\000\005\185\000\000\000\000\000\000\000\000\000\000\001\202\031\n\001\230\000\000\005\217\005\217\000\000\005\217\005\217\005\185\005\185\000\000\000\000\011j\005\185\000\000\000\000\005\201\005\185\000\000\005\185\001\234\031\022\001\254\005\185\000\000\005\185\000\000\000\000\000\000\000\000\005\217\002\n\000\000\001\206\005\201\005\201\000\000\005\201\005\201\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002.\001\210\002Z\000\000\000\242\000\000\003z\000\000\003\138\003\186\003\198\000\000\000\000\000\000\000\000\005\201\003\210\000\000\000\000\000\000\000\000\005\217\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\242\000\000\000\000\003\214\000\000\003\230\000\000\000\000\000\000\005\217\000\000\005\217\000\000\000\000\000\000\000\000\000\000\005\201\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\217\005\217\000\000\000\000\011j\005\217\000\000\000\000\000\000\005\217\000\000\005\217\000\000\000\000\005\201\005\217\005\201\005\217\000\000\000\000\000\000\000\000\001\202-\218\001\230\000\000\000\000\000\000\000\000\000\000\000\000\005\201\005\201\000\000\000\000\011j\005\201\000\000\000\000\000\000\005\201\000\000\005\201\001\234-\230\001\254\005\201\000\250\005\201\000\000\000\000\t*\000\000\000\000\002\n\000\000\001\206\000\000\000\000\000\000\000\000\000\000\tV\000\000\000\000\000\000\007E\000\000\tZ\002.\001\210\002Z\007\017\000\000\000\000\003z\007\017\003\138\003\186\003\198\000\000 N\000\000\000\000\000\000\003\210\000\000\007\017 v\000\000\000\000\007\017\000\000\007\017\000\000\000\000\000\000\000\000\000\000&\022\006\249\000\000 \218\000\000\006\249\000\000\007\017\003\214 \242\003\230\000\000\000\000\000\000\007\017\000\000\006\249\000\000 \250\000\000\006\249\000\000\006\249\000\000\000\000\000\000\007)!\n\007\017\000\000\007)\000\000\000\000\000\000\007\017\006\249\000\000\000\000\000\000\000\000\000\000\007)\006\249\007\017\000\000\007)\000\000\007)!\018\000\000!R\000\000\007\017\007E\007E\000\000\006\249\000\000\000\000\000\000\007)\000\000\006\249\000\000\000\000\000\000\000\000\007)\000\000\000\000\000\000\006\249\000\000\007\017!\154\007\017\000\000\000\000\007\017\007\017\006\249\007)\000\000\000\000\000\000\000\000\000\000\007)\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007)\000\000\000\000\007\017\000\000\006\249\000\000\006\249\000\000\007)\006\249\006\249\000\000\000\000\000\000\000\000*\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007)\006\249\007)\000\000\000\000\007)\007)\000\000\000\000\000\000\000\000\000\000\000\000\000\000+B\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007)\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000+\190")) and lhs = - (16, "\000\014\000\r\000\012\000\011\000\n\000\t\000\b\000\007\000\006\000\005\000\004\000\003\000\002\000\001\000\000\001\018\001\018\001\017\001\017\001\017\001\017\001\016\001\015\001\015\001\014\001\r\001\012\001\011\001\011\001\011\001\011\001\011\001\011\001\011\001\011\001\011\001\011\001\011\001\011\001\011\001\011\001\011\001\n\001\n\001\t\001\b\001\007\001\007\001\007\001\007\001\007\001\007\001\007\001\007\001\006\001\006\001\006\001\006\001\006\001\006\001\006\001\006\001\005\001\005\001\005\001\004\001\004\001\003\001\002\001\002\001\002\001\001\001\001\001\000\001\000\001\000\001\000\001\000\001\000\000\255\000\255\000\255\000\255\000\255\000\255\000\255\000\254\000\254\000\254\000\254\000\254\000\253\000\253\000\253\000\253\000\252\000\251\000\250\000\250\000\250\000\249\000\249\000\249\000\249\000\249\000\249\000\249\000\248\000\248\000\248\000\248\000\248\000\248\000\247\000\247\000\246\000\246\000\246\000\246\000\245\000\245\000\245\000\244\000\244\000\244\000\244\000\243\000\242\000\242\000\242\000\242\000\242\000\241\000\241\000\240\000\240\000\239\000\239\000\239\000\238\000\238\000\238\000\238\000\238\000\238\000\238\000\238\000\238\000\238\000\238\000\237\000\237\000\236\000\236\000\235\000\235\000\234\000\233\000\232\000\231\000\230\000\230\000\229\000\229\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\227\000\227\000\227\000\226\000\225\000\225\000\225\000\225\000\224\000\224\000\223\000\223\000\223\000\222\000\221\000\221\000\221\000\221\000\221\000\221\000\220\000\219\000\218\000\218\000\217\000\217\000\216\000\216\000\215\000\214\000\214\000\213\000\213\000\212\000\211\000\211\000\210\000\209\000\208\000\208\000\208\000\208\000\208\000\208\000\208\000\207\000\206\000\205\000\204\000\204\000\204\000\203\000\203\000\203\000\203\000\203\000\203\000\202\000\201\000\201\000\201\000\201\000\201\000\201\000\200\000\200\000\200\000\200\000\200\000\200\000\200\000\200\000\200\000\200\000\200\000\200\000\200\000\200\000\200\000\200\000\200\000\200\000\200\000\200\000\199\000\199\000\199\000\199\000\199\000\199\000\199\000\199\000\199\000\199\000\199\000\199\000\199\000\199\000\199\000\199\000\199\000\199\000\199\000\199\000\198\000\198\000\198\000\198\000\198\000\198\000\198\000\198\000\198\000\198\000\198\000\198\000\198\000\198\000\198\000\198\000\198\000\198\000\198\000\198\000\197\000\197\000\196\000\196\000\196\000\196\000\196\000\196\000\196\000\196\000\196\000\196\000\196\000\196\000\196\000\196\000\196\000\196\000\196\000\196\000\196\000\195\000\195\000\194\000\194\000\194\000\193\000\193\000\193\000\193\000\193\000\193\000\193\000\192\000\192\000\192\000\191\000\191\000\191\000\191\000\190\000\190\000\190\000\190\000\189\000\189\000\188\000\188\000\187\000\187\000\186\000\186\000\185\000\185\000\184\000\184\000\183\000\183\000\182\000\182\000\181\000\181\000\180\000\180\000\179\000\179\000\179\000\178\000\178\000\178\000\178\000\177\000\177\000\176\000\176\000\175\000\175\000\174\000\174\000\174\000\174\000\174\000\173\000\173\000\173\000\173\000\172\000\172\000\172\000\171\000\171\000\171\000\171\000\171\000\171\000\171\000\170\000\170\000\170\000\170\000\170\000\170\000\170\000\169\000\169\000\168\000\168\000\167\000\167\000\167\000\167\000\167\000\167\000\166\000\166\000\165\000\165\000\164\000\164\000\163\000\163\000\162\000\162\000\161\000\161\000\160\000\160\000\159\000\158\000\158\000\158\000\158\000\158\000\157\000\157\000\156\000\156\000\156\000\155\000\155\000\155\000\155\000\155\000\155\000\155\000\155\000\155\000\154\000\154\000\153\000\153\000\152\000\152\000\151\000\150\000\150\000\150\000\150\000\150\000\150\000\150\000\150\000\150\000\150\000\150\000\150\000\150\000\150\000\150\000\150\000\149\000\148\000\147\000\146\000\146\000\145\000\145\000\145\000\144\000\144\000\144\000\144\000\144\000\143\000\142\000\142\000\141\000\140\000\140\000\139\000\139\000\138\000\138\000\137\000\137\000\137\000\137\000\137\000\137\000\136\000\136\000\135\000\135\000\134\000\134\000\134\000\134\000\134\000\134\000\134\000\134\000\134\000\134\000\134\000\134\000\134\000\134\000\134\000\134\000\134\000\134\000\133\000\133\000\132\000\132\000\131\000\131\000\130\000\130\000\130\000\130\000\130\000\130\000\130\000\130\000\130\000\130\000\130\000\130\000\130\000\130\000\130\000\130\000\130\000\130\000\130\000\130\000\130\000\130\000\130\000\130\000\130\000\130\000\130\000\130\000\130\000\130\000\130\000\130\000\130\000\130\000\129\000\129\000\128\000\128\000\127\000\127\000~\000~\000~\000~\000}\000}\000|\000|\000{\000{\000z\000z\000z\000y\000y\000x\000x\000w\000w\000v\000v\000u\000u\000t\000t\000s\000s\000s\000s\000r\000r\000q\000q\000q\000q\000q\000q\000q\000q\000q\000q\000q\000q\000p\000p\000p\000o\000n\000m\000l\000k\000j\000i\000h\000g\000f\000e\000d\000d\000d\000d\000d\000d\000d\000c\000c\000c\000c\000c\000b\000b\000b\000b\000b\000b\000a\000a\000`\000`\000`\000`\000`\000_\000_\000^\000^\000]\000\\\000[\000[\000Z\000Z\000Z\000Z\000Z\000Y\000Y\000X\000X\000W\000W\000V\000V\000V\000U\000U\000U\000U\000U\000U\000T\000T\000T\000S\000S\000S\000S\000S\000S\000S\000S\000S\000S\000S\000S\000S\000S\000S\000S\000S\000S\000S\000S\000S\000S\000S\000S\000S\000S\000S\000S\000S\000S\000R\000R\000R\000R\000R\000R\000Q\000Q\000Q\000Q\000Q\000Q\000P\000P\000O\000O\000N\000N\000M\000M\000L\000L\000K\000K\000J\000J\000J\000J\000I\000I\000I\000H\000H\000G\000G\000F\000F\000E\000E\000D\000D\000C\000C\000B\000B\000A\000A\000A\000A\000@\000@\000@\000@\000?\000?\000?\000?\000?\000?\000?\000?\000?\000?\000?\000?\000>\000>\000=\000=\000=\000=\000=\000=\000<\000<\000<\000;\000;\000;\000:\000:\000:\0009\0009\0008\0007\0006\0006\0006\0006\0006\0006\0006\0006\0006\0006\0006\0006\0006\0006\0006\0006\0006\0006\0006\0006\0005\0005\0005\0005\0005\0005\0004\0004\0004\0004\0004\0003\0003\0003\0003\0003\0003\0003\0003\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0001\0001\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000.\000.\000-\000-\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000+\000+\000*\000*\000*\000*\000*\000*\000*\000*\000*\000*\000*\000*\000*\000*\000*\000*\000*\000)\000)\000(\000(\000'\000'\000'\000'\000'\000'\000'\000'\000'\000'\000'\000'\000'\000'\000&\000&\000&\000&\000%\000%\000$\000$\000$\000#\000#\000\"\000!\000!\000 \000 \000 \000\031\000\030\000\029\000\028\000\028\000\028\000\028\000\028\000\028\000\028\000\028\000\028\000\028\000\027\000\027\000\026\000\026\000\025\000\024\000\024\000\023\000\022\000\022\000\022\000\022\000\022\000\021\000\021\000\021\000\021\000\020\000\019\000\019\000\018\000\018\000\018\000\017\000\017\000\017\000\016\000\016\000\016\000\016\000\016\000\016\000\015\000\015") + (16, "\000\014\000\r\000\012\000\011\000\n\000\t\000\b\000\007\000\006\000\005\000\004\000\003\000\002\000\001\000\000\001\019\001\019\001\018\001\018\001\018\001\018\001\017\001\016\001\016\001\015\001\014\001\r\001\012\001\012\001\012\001\012\001\012\001\012\001\012\001\012\001\012\001\012\001\012\001\012\001\012\001\012\001\012\001\011\001\011\001\n\001\t\001\b\001\b\001\b\001\b\001\b\001\b\001\b\001\b\001\007\001\007\001\007\001\007\001\007\001\007\001\007\001\007\001\006\001\006\001\006\001\005\001\005\001\004\001\003\001\003\001\003\001\002\001\002\001\001\001\001\001\001\001\001\001\001\001\001\001\000\001\000\001\000\001\000\001\000\001\000\001\000\000\255\000\255\000\255\000\255\000\255\000\254\000\254\000\254\000\254\000\253\000\252\000\251\000\251\000\251\000\250\000\250\000\250\000\250\000\250\000\250\000\250\000\249\000\249\000\249\000\249\000\249\000\249\000\248\000\248\000\247\000\247\000\247\000\247\000\246\000\246\000\246\000\245\000\245\000\245\000\245\000\244\000\243\000\243\000\243\000\243\000\243\000\242\000\242\000\241\000\241\000\240\000\240\000\240\000\239\000\239\000\239\000\239\000\239\000\239\000\239\000\239\000\239\000\239\000\239\000\238\000\238\000\237\000\237\000\236\000\236\000\235\000\234\000\233\000\232\000\231\000\231\000\230\000\229\000\229\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\227\000\227\000\227\000\226\000\225\000\225\000\225\000\225\000\224\000\224\000\223\000\223\000\223\000\222\000\221\000\221\000\221\000\221\000\221\000\221\000\220\000\219\000\218\000\218\000\217\000\217\000\216\000\216\000\215\000\214\000\214\000\213\000\213\000\212\000\211\000\211\000\210\000\209\000\208\000\208\000\208\000\208\000\208\000\208\000\208\000\207\000\206\000\205\000\204\000\204\000\204\000\203\000\203\000\203\000\203\000\203\000\203\000\202\000\201\000\201\000\201\000\201\000\201\000\201\000\200\000\200\000\200\000\200\000\200\000\200\000\200\000\200\000\200\000\200\000\200\000\200\000\200\000\200\000\200\000\200\000\200\000\200\000\200\000\200\000\199\000\199\000\199\000\199\000\199\000\199\000\199\000\199\000\199\000\199\000\199\000\199\000\199\000\199\000\199\000\199\000\199\000\199\000\199\000\199\000\198\000\198\000\198\000\198\000\198\000\198\000\198\000\198\000\198\000\198\000\198\000\198\000\198\000\198\000\198\000\198\000\198\000\198\000\198\000\198\000\197\000\197\000\196\000\196\000\196\000\196\000\196\000\196\000\196\000\196\000\196\000\196\000\196\000\196\000\196\000\196\000\196\000\196\000\196\000\196\000\196\000\195\000\195\000\194\000\194\000\194\000\193\000\193\000\193\000\193\000\193\000\193\000\193\000\192\000\192\000\192\000\191\000\191\000\191\000\191\000\190\000\190\000\190\000\190\000\189\000\189\000\188\000\188\000\187\000\187\000\186\000\186\000\185\000\185\000\184\000\184\000\183\000\183\000\182\000\182\000\181\000\181\000\180\000\180\000\179\000\179\000\179\000\178\000\178\000\178\000\178\000\177\000\177\000\176\000\176\000\175\000\175\000\174\000\174\000\174\000\174\000\174\000\173\000\173\000\173\000\173\000\172\000\172\000\172\000\171\000\171\000\171\000\171\000\171\000\171\000\171\000\170\000\170\000\170\000\170\000\170\000\170\000\170\000\169\000\169\000\168\000\168\000\167\000\167\000\167\000\167\000\167\000\167\000\166\000\166\000\165\000\165\000\164\000\164\000\163\000\163\000\162\000\162\000\161\000\161\000\160\000\160\000\159\000\158\000\158\000\158\000\158\000\158\000\157\000\157\000\156\000\156\000\156\000\155\000\155\000\155\000\155\000\155\000\155\000\155\000\155\000\155\000\154\000\154\000\153\000\153\000\152\000\152\000\151\000\150\000\150\000\150\000\150\000\150\000\150\000\150\000\150\000\150\000\150\000\150\000\150\000\150\000\150\000\150\000\150\000\149\000\148\000\147\000\146\000\146\000\145\000\145\000\145\000\144\000\144\000\144\000\144\000\144\000\143\000\142\000\142\000\141\000\140\000\140\000\139\000\139\000\138\000\138\000\137\000\137\000\137\000\137\000\137\000\137\000\136\000\136\000\135\000\135\000\134\000\134\000\134\000\134\000\134\000\134\000\134\000\134\000\134\000\134\000\134\000\134\000\134\000\134\000\134\000\134\000\134\000\134\000\133\000\133\000\132\000\132\000\131\000\131\000\130\000\130\000\130\000\130\000\130\000\130\000\130\000\130\000\130\000\130\000\130\000\130\000\130\000\130\000\130\000\130\000\130\000\130\000\130\000\130\000\130\000\130\000\130\000\130\000\130\000\130\000\130\000\130\000\130\000\130\000\130\000\130\000\130\000\130\000\129\000\129\000\128\000\128\000\127\000\127\000~\000~\000~\000~\000}\000}\000|\000|\000{\000{\000z\000z\000z\000y\000y\000x\000x\000w\000w\000v\000v\000u\000u\000t\000t\000s\000s\000s\000s\000r\000r\000q\000q\000q\000q\000q\000q\000q\000q\000q\000q\000q\000q\000p\000p\000p\000o\000n\000m\000l\000k\000j\000i\000h\000g\000f\000e\000d\000d\000d\000d\000d\000d\000d\000c\000c\000c\000c\000c\000b\000b\000b\000b\000b\000b\000a\000a\000`\000`\000`\000`\000`\000_\000_\000^\000^\000]\000\\\000[\000[\000Z\000Z\000Z\000Z\000Z\000Y\000Y\000X\000X\000W\000W\000V\000V\000V\000U\000U\000U\000U\000U\000U\000T\000T\000T\000S\000S\000S\000S\000S\000S\000S\000S\000S\000S\000S\000S\000S\000S\000S\000S\000S\000S\000S\000S\000S\000S\000S\000S\000S\000S\000S\000S\000S\000S\000R\000R\000R\000R\000R\000R\000Q\000Q\000Q\000Q\000Q\000Q\000P\000P\000O\000O\000N\000N\000M\000M\000L\000L\000K\000K\000J\000J\000J\000J\000I\000I\000I\000H\000H\000G\000G\000F\000F\000E\000E\000D\000D\000C\000C\000B\000B\000A\000A\000A\000A\000@\000@\000@\000@\000?\000?\000?\000?\000?\000?\000?\000?\000?\000?\000?\000?\000>\000>\000=\000=\000=\000=\000=\000=\000<\000<\000<\000;\000;\000;\000:\000:\000:\0009\0009\0008\0007\0006\0006\0006\0006\0006\0006\0006\0006\0006\0006\0006\0006\0006\0006\0006\0006\0006\0006\0006\0006\0005\0005\0005\0005\0005\0005\0004\0004\0004\0004\0004\0003\0003\0003\0003\0003\0003\0003\0003\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0001\0001\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000.\000.\000-\000-\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000+\000+\000*\000*\000*\000*\000*\000*\000*\000*\000*\000*\000*\000*\000*\000*\000*\000*\000*\000)\000)\000(\000(\000'\000'\000'\000'\000'\000'\000'\000'\000'\000'\000'\000'\000'\000'\000&\000&\000&\000&\000%\000%\000$\000$\000$\000#\000#\000\"\000!\000!\000 \000 \000 \000\031\000\030\000\029\000\028\000\028\000\028\000\028\000\028\000\028\000\028\000\028\000\028\000\028\000\027\000\027\000\026\000\026\000\025\000\024\000\024\000\023\000\022\000\022\000\022\000\022\000\022\000\021\000\021\000\021\000\021\000\020\000\019\000\019\000\018\000\018\000\018\000\017\000\017\000\017\000\016\000\016\000\016\000\016\000\016\000\016\000\015\000\015") and goto = - ((16, "\002\022\001\177\000v\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0012\000\000\000\000\001[\001\200\000)\001\159\000>\003\190\000\133\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000;\000\000\000\000\000\000\000\000\000\000\000d\000\000\000\000\000\000\000z\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\014\166\001\\\001r\002\226\000\000\000\000\000\000\000\000\000\000\000\000\002Z\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015\192\000\000\004\240\000\000\005\n!\162\002\214\000\000\015\192\003(\000\000\006\136\000\000\007\130\000\000\000\000\000\000\000\000!\210\000\000\000\000\031\204\015\236\003\238\000l\001\027\000\000\002\162\001P\004\234\005\002\000\000\000\000\000\000\000\000\017l\004\136\002\236\000)\000\000\000\000\000\000\000\136\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\003H\000\000\t.\000\000\005\176\005\230\000\000\000\000\011D\000\000\004T\000\000\005b\005F\000\000\011b\000\000\000\000\000\000\000\000\000\014\000\000\000\000\000\000\005\218\000\000\005\254\006*\000\000\002P\002\000\011v\000\000\007\202\006\244\000\000\000\000\n\140\015\192\000\000#\238\015\192\006t\000\000\003\000\003\164\"\022\000\000\000\000\006\176\006l\"\250\000\000\000\000\bz#L\007\206\000\000\011j\007\228\000\000\011\166\014|z\212\000\000\178H\000\000\005\158\000\000\000\000\001!\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003F$\b\007d\029\216\b\n\t\"\t\138\000\000\000\000\000\000\127V\b\154\000\000\000\000(P\016\164\000\000\000\000\005:\b\024\000\000\000\000\000\000\000\000\003F\000\000\000\000\000\000\000\000$*\000\000\012\"\000\000\tB\000\000\012\138\000\0005\"\017\014\000\000\tj\000\000\000\000\t\142\000\000\012\172\000\000\000\000$f\000\000\000\000\000\000\000\000\000\000\002$\t\226\153h\t\248\000\000\000\000<6\n\006\160`\n\018\000\000\000\000H\012\nj\000\000\160v\n\172\000\000\000\000Qt\n\224\000\000\000j4\026\000\000\178Z\000j\tJ\000\000\000\000\000\000\000\000\178\170\000\000\178\190\000j\000j\000j\000\000\000\000\160\162\011\238\000\000\000\000S|\011\252\000\000\000\000\000\000\000\000\012\128\000\000\000\000\000\000\012\174\000\000\000\000\r\026\000\000\rt\000\000\000\000\002$\000\000%D\000\000\r\134\000\000\rJ\000\000\r\184\000\000\002$\r\004\000\000\002$\000\000%n\002$\r\014\160\184\r,\000\000\000\000kr\rH\000\000\000\000\160\202\rL\000\000\000\000z\170\r\152\000\000\r\202\161\024\014 \000\000\000\000\139\006\014\140\000\000\000\000\162\006\014\202\000\000\000\000\159X\014\242\000\000\163b\017&\000\000%\184\002$\014\254\162p\015 \000\000\000\000\1680\015&\000\000\000\000\162\130\015^\000\000\000\000\169\014\015~\000\000\015\204\162\190\015\208\000\000\000\000\1698\015\234\000\000\000\000\162\224\015\238\000\000\000\000\169V\016\002\000\000\169|\016\b\000\000\000\000\169\146\016(\000\000\000\000\002$\000\000\000jZ\230\000\000\000\000\000j_\224\000\000\000\000\012\132\016\148\000\000\000\000\000\000\000\000\000\000\014\184\000\000\007\128\017^\000\000&\"\b\004q&\000\000\000\000\000\000\000\000\002$\000\000\000\000\000\000\rb\000\000\000\000\000\000\000\000\000\000\000\000\002\244\017D\000\000\000\000\000\000\002$\027@\002$&\150\002$\000\000\000\000\129\140\000\000\000\000\018 \000\000\000\000\000\000\000\000\004h\019\204\016\146\b$\016\190\129\182\000\000\000\000\000\000\000\000&\210\002$\000\000\130\134\000\000\000\000\000\000't\002$\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000q\130\000\000\017D\bf\017\250\000\000\000\000\000\000\000\000\000s\000\000\000\000\b\180\000E\000\000\b\214\006\164\017^\t\220\000\208\001*\002\224\002\180\007\202\018\204\003h\003\b\0000\b2\000\000\000\000\000\000\017\156\nj'\218(\152\017\168\n\152\000c\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\200\n\156(\214\021L\019\204q\238):\000\000\129\248\000\021\000\000\000\000\000\000)\168\002$\000\000\131R\000\000\000\000\000\000)\204\002$\000\000\000\000r\228shs\144\000\000\001\134\000\000\000\000\000\000\018\174)\246\002$\019\b\131\162\0180\n\208+\138\000\000\004\142\000\000\000\000\000\000\003F\000\000\000\000\131\2407>\001\146\000\000\000\000\006R\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\132\\\000\000\000\000\000\000+\018\002$\000\000\000\000e\142\000\000\000\000\000\000\000\226\000\000\000\000\000\000\000\000\000\000\000\000\019\172\132\162\000\000\018`\n\220\132\232\000\000\000\000\000\000\001\176\000\000\133R\001\176\000\000\133\152\000\000\000\000\000\000+6\002$\000\000\000\000o6\000\000\000\000\000\000\000\000\000\000\001\176\134\004\001\176\134Jq\130\0190\000\000\170\152\000\000\000\000\000\000\000\000\001\176\000\000\134\144\000\000\000\000\000\000+Z\002$\000\000\000\000\170\218\000\000\000\000\001\176,>\002$\000\000\134\250\001\176\005\022\000\000\001\176\000\000\000\000\001\176\000\000s\144\000\000\000\000\000\000\001\176t\020\000\000\000\000\000\000\001\176\000\000\000\000\001\176\000\000\001\176\000\000\002\162\019b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\1714\000\000\000\000\000\000\018R\135@\001\176\000\000\000\000\000\000\135\172\000\000\000\000\000\000,b\002$\000\000\000\000\171R\000\000\000\000\018R\000\000\135\242\000\000\000\000\000\000,\134\002$\000\000\000\000\171\148\000\000\000\000\018R\171\162\000\000\1368\000\000\000\000\000\000-j\002$\000\000\000\000\171\248\000\000\000\000\018R=\148\000\000\000\153\018N\021\208\000\000-\142\002$\019Z\000\000\000\000\0060\000\000\000\000\018\252\000\000\000\000\000\000\000\000\000\000\000\000\002\132\019\002\019\194-\178\018\240\018\246\018\248\n\226\004\022\005\232\n\236\136\174s\234t0\020\132\020\012\136\244!b\000\000\137:\019\218\011\004\02200\138w\026\137\128~\154\019\228\011..\142\019\236\0112.\224\019\242\011\\\0020u,\001\176/\146\020\n\011\174\137\236\021(\000\000\012\2380\"0\168\001\176\022\180\000\0000\224\006r\000\000\007\004\000\000\000\000\000\000\000\000\000\000\000\000\004\244\023\b\000\0000\242\007\242\000\000\b\024\000\000\000\000u~\021\002\000\000\000\000\021\b\000\000\000\000\000\000\000\000\023\216\001\214\000\000\000\000\r\232\000\000\000\000\000\000\r\242\000\000\000\000\000\000\000\000\000\000\006\012\000\000\000\000\001\176\024\016\000\0001Z\006r\000\0002 \001\176\024\"\000\0002\154\006r\007\004\000\000\000\000\000\000\000\000\000\000\000\000\172\020\024\216\001\176\025J\000\0002\232\006r\000\000u\254\001\176\000\000\025~\000\0003\028\006r\000\000\007\004\000\000\000\000\000\000\000\000\000\000\000\000\n\170\000\000\000\000\005b\179\016\000j\000\000\000\0003^\020 \011\1864\176\000\000\1384\000\000\000\000\021\190\000\000\000\000\000\000\172\006\179N\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007F\026D\000\000\000\000\000\000\020H\011\192\006\026\012\016\000\160\020\240\000\000\000\000\001\146\001\200\000\000\003\190\012:\004\158\020n\000\000\000\000\004\144\000\000\007,\001\232\007\210\003\152\022\024\000\000\000\000t\194\000\000vP\021\158\000\0004F\002$4\202\002$\000\000\002\018\000\229\000\000\005,\004\026\000\000\000\000\b\n\007\214\b\\\bd\000\000\000\000\020\150\000\000\000\000\000\000\000\000\000\000\000\000\t\226\004\026\000\000\n\184\000\000\000\000\011>\000\000\000\000\000\000\022(\000\000\000\000\000\000\000\000\b\224\000\000\004\026\000\000\006\b\000\000\000\000\000\000\000\000\007\016\000\000\000\223\005\232\000\000\000\166\000\000\012H\007\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\223\012\186\004\026\000\000\000\000\000\000\000\021\000\0005l\002$6\028\020\128\012h\139*\001\1766\1586\168\020\144\012\142\179\140\000\000\000\000\000\000\180\016\000\000\000\000v\190\020\170\012\1487b\000\000v\252\138\188\020\174\012\1747\228\000\000\000\000\022\210\000\000\000\000\022D\000\000\000\000\000\000\000\000\000\000\180v\000\000\000\000\000\000\005\166\000\000\006\1346\244\000\000\000\000\000\000\139x\000\000\000\000\022J\000\000\000\000\000\000\180\132\000\000\000\000\000\000\000\000\000\000\020\194\012\2008\158\000\000w\236\000\000\180\198\000\000\020|8\188\000\000\000\000\000\189\139\182\020\200\rF9\"\000\000\000\189\140\000\020\222\rZ9\210\000\000\000\189\000\000\180\208\000\000\140L\020\224\r\156:\130\000\000\000\189:\208\005,;\"\000\000\000\000\141D\020\226\r\218;\006\000\000\000\189\141\130\020\228\r\220;\200\000\000\000\189\141\174\020\234\r\2266\000\000\000\189\143z\020\254\014b>D\000\000\000\189\143\166\021\000\014j>\230\000\000\000\189\143\228\021\004\014n?\150\000\000\000\189\144\016\021\b\014\168@\022\000\000\000\189\144z\021\012\014\198@$\000\000\000\189\144\228\021\014\014\218@\198\000\000\000\189\145P\021\016\014\224Av\000\000\000\189\145\186\021\020\014\232A\246\000\000\000\189\145\230\021\028\014\242B\004\000\000\000\189\146$\021\030\014\254B\166\000\000\000\189\146P\021\"\015\030CV\000\000\000\189\146\186\021>\015.C\214\000\000\000\189\147$\021D\0152C\228\000\000\000\189\147\144\021F\015FD\134\000\000\000\189\147\250\000\000\000\000\022\220\000\000\000\000\000\000\180\228\000\000\021N\015LE6\000\000\000\189\148&\021P\015XE\182\000\000\000\189\015^\026\174x8\021\018\000\000?\136E(\000\000\000\000\000\028\021\022\000\000\000\000E\250\000\000\000\000\000\000\000\000\t\230\027@\003h\000\000FF\n\194F\138\000\000\000\000F\246\000\000\000\000G\160\0114GH\000\000\000\000H\206\000\000\021\026I\020\000\000\000\000IZ\000\000\000\000\000\000I\164\000\000\021\"HX\011ZJ\154\000\000\000\000J\224\000\000\000\000K&\000\000\018RKp\000\000\148\192\000\000\000\000\000\000K\176\002$\000\000\000\000\172t\000\000\000\000\018R\149*\001\176\007\160\000\000\t\150\027~\027\228\000\000L:\011`L\246\000\000\000\000Mh\000\000\021&Mx\000\000\000\000M\130\000\000\000\000\000\000N@\000\000\000\000\006&\t\204\000\000\000\000\000\000\000\189N\160\000\000\000\000O`\000\000\000\000\000\000\000\000w~\000\000\000\000\000\189x\228\000\000yV\000\000\000\000yf\000\000\000\000\000\000\1816\000\000\000\000y\230\000\000\000\000\149D\021h\015jO\170\000\000\000\189zP\000\000\000\000\150\000\021r\015~PP\000\000\000\189z`\000\000\000\000\150F\021x\015\150P\218\000\000\000\189\bpP\170\000\000\000\000\150\144\021|\015\152Q\154\000\000\000\189Q\220\000\000\000\000\151\n\021~\015\168Rj\000\000\000\189R\178\000\000\000\000\151\030\021\128\015\174S\162\000\000\000\189\000\000\000\000{\136\000\000\000\000\151t\021\130\015\176S\176\000\000\000\189{\178\000\000\000\000\152X\021\132\015\182Tr\000\000\000\189|:\000\000\000\000\152l\021\134\015\216T\130\000\000\000\189\000\000\152\152\021\138\015\224UD\000\000\000\189\000\000d4\000\000\000\000\000\189\000\000\000\000\000\000|d\000\000\000\000|\240\000\000\000\000\000\000\021\138\000\000\000\000U6\000\000U\194\000\000\000\000\000\000\018RU\204\000\000\000\000V\\\000\000}\182\000\000\000\000\179N\000\000\000\000}b\021\142\015\236W\148\003\172\152\238\021\144\015\240W\162\000\000\000\189\007\202\000\000\005\228\153\030\1544\001\176\153\210\021\148\016\006X\"\000\000\000\189\154\188\001\176\155\004\021\158\016\014Xt\000\000\000\189\155n\001\176\155\182\021\160\016\022X\244\000\000\000\189\b\220\155\252\021\162\016\028Yt\000\000\000\189\156B\021\166\016,Y\192\021\166\156\174\021\170\016DZ@\000\000\000\189\000\189\156\244\021\172\016\140Z\140\000\000\000\189\000\000\000\000\000\000\021\146\000\000\000\000\000\000\000\000\000\000\000\000\001,\021\146\000\000~:\021\176\016\152[\012\004\148\021\146\000\000\000\000\000\000\000\000\002\224\021\146\000\000~\188\000\000\021\178\016\158[X\007\150\021\146\000\000\000\000\000\000\003\176\021\146\000\000\023\020\000\000\000\000q\146\000\000\004\234\000\000\005\214\000\000\022\154\000\000\006$\000\000\000\000\000\000\000\000\000\000\007F\000\000\000\000\000\000\021\186\016\162[\216\000\000\000\189\000\000\000\000\000\000[\226\000\000\\T\000\000\000\000\000\000\000\000\000\000\157\130\021\188\016\164\\\164\000\000\157\236\021\190\016\186]\162\000\000\000\189\000\189\158\024\021\194\016\188]\238\000\000\000\189\000\000\000\000\000\000\000\000\158B\000\000\000\000\023V\000\000\000\000\000\000\181`\000\000\021\202\016\200^n\000\000\000\189\021\204\016\228^\186\000\000\000\000\000\189\000\000\000\000\000\000\000\000\000\000\021\208\016\238_:\000\000\000\000\000\000\000\189\000\000\000\000\021\210\016\254_\134\000\000\000\189\000\000\023:\000\000\000\000\000\000\000\000\021\220\017\n`\006\011.\021\146\000\000\000\000\000\000\004\228\021\146\000\000\021\222\017\024`R\011\182\021\146\000\000\000\000\000\000\000\000\006\170\021\146\000\000\021\224\017J`\210\000\000\000\000\012\216\004\026\000\000\r\224\004\026\000\000\015$\004\026\000\000\000\189\000\000\016\004\004\026\000\000\016\132\004\026\000\000\016\238\004\026\000\000\000\223`\220\000\000\017R\007:\000\223aN\000\000\021\226\017Z\000K\022\136\021\166\000\000\000\000\000\203\007j\000\223\017\144\b|\b\184\000\223\000\000\t\190\000\223\000\000a\154\000\000\004\170\000\000\000\000\n$\000\223\000\000\021\236\017l\011\196\000\000\000\000\000\000\000\000\000\000\022\014\018\012\007\198\000\000\000\000\000\000\000\000\028f\000\000\127\"\000\000\022\226\017z\000\000\017\130\000\000\000\000\000\000\000\000\n\128\000\000\000\000\181\006\000\234\000\000\000\000\181\158\181\182\001\198\000\000\005v\000\000\000\000\005\208\000\000\014\004\015\192\022\028\000\000\014.\000\000\000\000b\016\000\000\014l\000\000\022\030\000\000\014n\000\000\002$\000\000\026\254\000\000\181\224\000j\005\208\000\000\181\242\000j\005\208\017\132\000\000b\184\000\000\000\000\017\138\023\030\000\000\029\028\011\234\000\000\000\000\000\000\000\000\022\228\000\000\000\000\000\000\000\000\021\254\017\146cr\000\000\000\189\000\000\022\002\017\154c\242\012\026\021\146\000\000\000\000\000\000\000\000\007\n\021\146\000\000\000\000\022\004\017\162\n6\000\223\000\000\018\\\004\026\000\000\023\150\000\000\021\200\000\000\000\000\000\000\000\000dx\000\000\000\000\000\000\158\130\022\n\017\180d\190\000\000\000\189\022\012\022\016\017\184\011\"\007\002\000\000\017\198\011V\tD\000\000\022\018\022\022\017\208\022H\023\b\0192\004\026\012(\000\000\017\212\r\b\r>\007:\012P\022\142\017\214\rF\007\166\r\156\022\154\000\000\000\000\007\200\r\212\000\000\007>\003\252\159\172\001\176e:\000\000\rF\001\190\000\000\000\000\014\190\000\000\000\000\000\000\022H\017\226\014Z\000\000\018N\000\000e\168\002$\023:\000\000\023\022\023\024\000\000\014\b\000\000\002$\022P\017\228\r\150\022p\001\166\000\000\000\000\000\000\000\000\017\240\014F\000\000\017\250\015\000\000\000\018f\000\000\002$\022T\022V\018\000\024\n\000\000\022f\004\236\000\000\000\000\000\000\011@\000\000\000\000\000\000\000\183\018\004\0222e\212\002$\000\000\000\170\018\b\023\022\000\000\000\000\000\000\000\000\000\000\000\000e\252\003\244\000\000\018\012\023\136\000\000\000\000\000\000\000\000\000\000\000\000\019\130\015~\000\000\018\016\006 \000\000\018F\018J\003,\000\000\b\236\029n\000\000\n\012\000\000f\240\002$\002$\000\000\000\000\t\174\000\000\007\188\000\000\t*\t\174\t\174\000\000\018L\029\144\002$g\024\002$\015\140\000\000\000\000\000\000\016\004\000\000\000\000\000\218\000\000\n\030\022\208\018\\\024 \022\138\000\000\000\000\n`\nr\022\238\000\000\000\000\018f\024D\022\162\000\000\021\236\023\216\000\129\018\152\022l\001=\004\022\018\172\023N\000\000\000\000\024.h\020\000\000\000\000h\030\000\000\016\n\000\000\b\130\000\000\000\000\000\000\000\000\000\000\000\000h^\002$\000\000\0240h\210\000\000\000\000i^\000\000\bD\018\220\023\200\000\000\000\000Ah\019\148\0052\000\000i\232\002$j \000\000\000\000j:\000\000\000\000\016x\000\000\014\\\000\000\000\000\000\000\000\000\000\000\000\000\020\156\000\000\000\000CH\020\200\t\162\000\000k0\002$j\172\000\000\000\000l \000\000\000\000\018\222lr\017D\000\000\018\224\018\226\0036\005^\018\230\rb\019\006\023\206\030`\017\146\000\000\019\012\019\018\n\130\000\000\005\254\030\178\000\000\001\236\000\000\019\022\000\014&8\007r\022b\007\200\000\000\"\216d4\000\000\016\"\000\000\000\000\016\"\000\000\000\000\016\"\015r\000\000\td\016\"\023\212\0312\017\194\000\000\016\"\000\000\002h\000\000\172P\000\000br\r\158\002$\000\000k\162\172\186\000\000\127l\000\000\003F\000\000\000\000\000\000\t\174\000\000\000\000\000\000\000\000\016\"\000\000\000\000\017\196\000\000\n\208\0160\018\028\000\000\019\024\031\156\018Z\000\000\000\000\000\000\018\204\000\000\000\000\000-\000\000\016\"\127\128\000\000\011\002\016\"M\004\000\000\018\210\023\016\019.\024f\022\194\000\000]\028\018\214\023\030\000\000\000\000\000\000\1738\018\240\000\000\000\000\000\000\000\000\000\000\000\000\020|\000\000\019J\000\000\022\192\0194\011Z\n\252\000\000\023.\0196\011\022\000\000\r\242\024V\024\002\019\176\023:\000\000\000\000\000\000\000\000\000\000\000\000\019\208\173N\000\000\000\000\000\000\020|\000\000\000\000\000\000\000\000\019\212\173|\000\000\000\000\000\000\000\000\000\000\000\000\023\244\001v\014B\022\242\003f\019>\000\000\019@\000\000\006\154\000\000\000\000\000\000\000\000\000\000\000\000\000\000\022\244\004J\019X\000\000\019z\000\000\006\230\015\012\024j\024\018\019\254\000\000\000\000\023\254\002\212\t\200\000\000\000\000\000\000\000\223\004\026\000\000\173\230\000\000\000\000\001\176\000\000\159\186\000\000\000\000\000\000l\224\002$\000\000\000\000\175\002\000\000\000\000\001\176\001\176\000\000m\028\002$\000\000\003\018\000\000\000\000\000\000\182`\000\000\022\224\019\138m\236\000\000\000\189\000\000\160\b\000\000\000\000\024t\000\000\000\000\000\000\182\194\000\000\022\234\019\140n\174\000\000\000\189\000\000n\190\000\000\000\000\000\000\000\000\000\000\031\230\019\144\000\000\019\176RL\000\000\000\000\000jf\158\000\000\000\000\000\000\000\000\000\000nJ\002$\022\170\1632\022\172\000\000\000\000\1742\022\178\000\000\000\000\164:\022\180\000\000\000\000\174f\022\182\000\000\014|\011\154\000\000\000\000\011\200\000\000\000\000\000\000\014\214\022\242\023\026\014\214\000\000\000\000\000\000\002$\000\000\022\244\012X\000\000\000\000\012x\000\000\000\000\000\000\000\000\002$\004Z\004\188\r6\000\000\000\000\014\012\000\000\000\000\000\000\000\000\014\136\000\000\000\000\015\016\000\000\000\000\000\000\000\000\000\000\b\130\0244\020\004\000\000\000\000\024$\000!\000\017\000\000\000\000\000\000\000\000\t@\017\150\024j\tf\024@\020Z\000\000\000\000\024,\003\172\002\014\000\0009(\023\020\023\022\019\200\rD\020x\000\000\019\222\015J\020\156\000\000\023\024\023\026\020\026\023H\023\b\019j\012\130\000\000\020\030\015\224\000\000\015b\020\190\000\000\023\198\000\000\019t\004\026\020\212\023\140\020\"\023\202\000\000\024J\007\016\020\218\023\144\000\000\000\000\023\208\022\240\023\250\000\000\000\000\000\000\015\184\015\226\024(\023\254\000\000\020\220\000\000\024\252\bL\000\000\021\012\000\000\011\204\025,\n\014\000\000\000\000\012&\000\000\000\000\023@\020$\016\012\022p\023H\020:\024\254\023Z\000\000\000\000\127\206\021\014\023\178\020^\025\b\023d\000\000\000\000\128\170\021\022\023\188\000\000\000\000\000\000Vh\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\021\028\000\000\023^\020`\026\006\r\174\024T\000\000\023\216\000\000\023\220\020p\011\242\000\000\018L\000\000\t\174\024\168\021.\023\224\000\000\000\000\000\000\000\000\000\000\000\000\004\026\000\000\000\000n\254\002$\0232\164j\0234\000\000\000\000\174\180\0238\000\000\000\000\164\140\023:\000\000\000\000\175\028\023B\000\000\023D\164\174\023J\000\000\000\000\175L\023N\000\000\000\000\164\222\023T\000\000\000\000\175^\023Z\000\000\175\188\020\240\000\000ol\002$\023^\165\148\023`\000\000\000\000\176\016\023d\000\000\000\000\165\200\023f\000\000\000\000\1766\023h\000\000\023r\1668\023v\000\000\000\000\176f\023x\000\000\000\000\166\172\023~\000\000\000\000\176x\023\130\000\000\000j\156*\023\138\166\208\023\140\000\000\000\000\176\218\023\142\000\000\000\000\166\232\023\144\000\000\000\000\177.\023\146\000\000\000j\177\128\023\150\167\020\023\152\000\000\000\000\177\146\023\154\000\000\000\000\167\140\023\156\000\000\000\000\177\246\023\164\000\000\002$\000\000\002$\000\000\000\000\000\000\000\000\000\000o\186\000\000\015\226\000\000\024\022\000\000\016.\000\000\002$\024\026\000\000\024\228\021:\000\000\000\000\000\000p\182\000\000p\192\000\000\000\000\000\000\000\000\000\000\000\200\000\000\000\000\000\000\001N\000\133\000\000\000\000\000\000\000\000\000\000\007\188\000\133\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0001\000\000\000\000\000\000 \238\000\000\002$\000\000!\018\000\000\000\000\000\000\000L\000\000\000\000\000\000\001v\000\000\000\000\000\000\001\206\000\000\000\223\000\000\000U\000\000\004\026\000\000\003P\000\000\000\000\000\000\129p\001\176\000\000\000\000\001\020\000\000\000\000\000\000\000\000\007F\004\196\024\030\004\150\000\000\000\000\000\000\000\000\000\000\000\000\024\"\007\174\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\226\000\000\021B\000\000\000\000\000\000\000\000\005\200\007Vy\148\167\146\000\000\000\000\021D\168|\000\000\000\000\000\000\021F\168\182\000\000\000\000\000\000\000\000"), (16, "\t\131\004\000\004h\004\001\004\002\002\167\004\030\004\003\000\206\n\247\011}\002\165\nn\004/\003L\002\167\000\254\002\168\tj\004<\000<\004\142\t\132\t\163\001\002\004@\t\134\001\002\002\165\000@\004\148\002\166\002\167\0042\002\168\000\182\t\135\t\164\002\169\004u\000\200\002\181\002\182\002\187\t\131\004\000\004<\004\001\004\002\002\167\005x\004\003\004@\tl\001\002\002\169\003\233\007\134\002\181\002\182\002\187\003Z\011\180\004\167\000n\004\142\t\132\t\163\ni\000\252\t\134\003\030\t\136\tn\004\148\004A\t\167\001\002\001\005\004]\t\135\t\164\001`\001\b\001\t\005\210\011\156\001a\006b\003#\004\030\000\193\000\182\t\219\004B\002b\000\206\000\200\002f\002g\000\212\004/\004A\004<\to\004\030\0008\004\167\011\181\004@\002b\001\002\t\137\002f\002g\007|\t\136\007\142\004<\000\204\t\167\t\218\007\137\004\187\004@\004l\001\002\003]\002f\t\138\t0\000\201\000\206\002\201\002\165\bZ\t\205\004/\002f\004\006\005z\004\177\002f\006\168\b\160\011\168\001`\001\b\001\t\002\189\002\188\001a\002f\004i\tp\011\134\t\137\004\026\t\168\004A\b\161\011\192\004\002\002\167\b\184\002\186\002\189\004\187\007\139\002f\004\206\t2\nj\t\138\004A\t\169\000\205\000\206\004B\006e\006j\002O\004/\004\006\000[\004\177\002f\t\141\003$\tl\t3\t\142\011\141\004B\t\144\t5\004h\t\149\011\169\tq\0008\004m\t\168\nl\nm\004\192\001\002\t.\004\193\tn\002h\t\161\nk\001$\000A\004\178\000\167\001(\001)\t\169\011\157\001\002\002\216\000\165\004\207\002\214\002\216\004\180\006\185\nE\007\216\t\141\t\162\007\175\002\221\t\142\002\216\000\157\t\144\011\194\to\t\149\002\214\t\131\004\000\011{\004\001\004\002\002\167\004\192\004\003\002\215\004\193\002\216\004\209\t\161\001`\001\b\001\t\004\178\004L\001a\b\177\000_\004\142\t\132\t\163\t;\004\207\t\134\002\216\004\180\t\191\004\148\000c\0008\t\162\001$\011\142\t\135\t\164\001(\001)\005~\000\167\001\002\b\183\t\131\004\000\t\178\004\001\004\002\002\167\011\172\004\003\000\193\b\179\011\195\004\209\004\177\002f\002\165\004[\004R\002\166\002\167\004\167\002\168\004\142\t\132\011\130\000x\011\136\t\134\004M\t\136\b\181\004\148\000\193\t\167\b\179\003\240\000w\t\135\t\164\000;\001\b\011\143\002\169\002\196\nf\002\181\002\182\002\187\011\150\001\002\011\176\001\007\001\b\001\t\b\181\b\182\001\n\007\180\004]\tN\011\173\004i\004\030\002f\004\167\004W\004j\006\248\002b\t\137\005\210\002f\002\136\t\136\002b\004<\002\197\002f\002\136\b\182\004\187\004@\002\137\001\002\bZ\003\186\t\138\002f\002\158\004\030\003\187\003\189\004U\002\198\003\134\000\216\004\006\011\151\004\177\002f\011\177\001$\004<\t\131\004l\001(\001)\002f\004@\001\002\001\002\002\139\001\b\t\137\006\180\t\168\t\181\002\139\004P\002b\t\195\t\196\002f\002g\004\187\011\218\001\002\011\152\004\206\t\134\t\138\004A\t\169\000:\t\197\t\198\tP\002\201\004F\t\135\004\006\002f\004\177\002f\t\141\0008\t\199\007\216\t\142\0008\004B\t\144\011\153\002\189\t\149\001\011\002f\ny\004A\t\168\006\198\t\214\004\192\001&\001'\004\193\004\147\002\b\t\161\b]\002\151\002\216\004\178\003b\001(\t\136\t\169\004B\001\002\t\159\004m\004\207\tS\002\216\004\180\002Q\001(\001)\t\141\t\162\001\002\001\005\t\142\002\203\002\200\t\144\011\132\nk\t\149\003\152\t\131\004\000\t\170\004\001\004\002\002\167\004\192\004\003\000>\004\193\002b\004\209\t\161\002f\002\136\t\137\004\178\000q\002\167\t+\000v\004\142\t\132\t\163\003\020\004\207\t\134\002\216\004\180\002\214\004\148\000\127\t\138\t\162\000\160\002\011\t\135\t\164\002\221\007\226\002\216\011\184\002\151\005\210\t\131\004\000\001(\004\001\004\002\002\167\001\002\004\003\001r\002\139\001?\004\209\003V\tV\011\219\b\217\001A\001B\006\177\004\167\006\211\004\142\t\132\t\163\nx\t\159\t\134\000\170\t\136\b\161\004\148\t[\n\017\tX\t\140\b\151\t\135\t\164\002f\t\244\002b\011\185\003\186\002f\002g\001Y\t\141\005\131\003\189\000\139\t\142\t\195\t\196\t\144\004<\004\000\t\149\004\001\004\002\002\167\004@\004\003\001\002\004\167\bZ\t\197\t\198\002f\t\137\005\210\t\161\000\193\t\136\000\184\tl\t0\t\172\t\199\007\216\004\187\011\204\004\002\002\167\001\b\t\246\t\138\t\180\002\150\006\180\002b\000\142\t\162\002f\002\136\tn\004\006\004\030\004\177\002f\004S\t\131\004\000\004\206\004\001\004\002\002\167\004]\004\003\000\193\004<\004A\n\151\t\137\n>\t\168\004@\t2\001\002\011\215\011\216\000\228\004\142\011\218\004\187\002U\to\t\134\001\224\000\206\t\138\004\148\t\169\004#\bm\006\192\t3\t\135\011\220\004\026\004\006\t5\004\177\002f\t\141\t]\002\250\002\167\t\142\007m\t\187\t\144\002\216\004l\t\149\000\193\002f\b\133\006\219\t\168\nl\nm\004\192\n>\004\167\004\193\004A\bn\t\161\001\"\001\b\001\t\004\178\t\136\001#\007F\t\169\b\219\004\005\bZ\0008\004\207\002f\002\216\004\180\004B\nE\007\216\t\141\t\162\000\144\006\180\t\142\006\180\004\006\t\144\004\177\002f\t\149\001`\001\b\001\t\004\030\000\144\001a\004\031\004\192\004\206\000\194\004\193\000\156\004\209\t\161\t\137\002\151\004<\004\178\011\205\001(\004\177\002f\004@\001\002\001\002\004\187\004\207\007\138\002\216\004\180\004m\t\138\t\131\004\000\t\162\004\001\004\002\002\167\011\235\004\003\000\164\004\006\001r\004\177\002f\001`\001\b\001\t\nA\nB\001a\011\227\000\163\004\142\011\228\006\221\004\209\011\223\t\134\000\193\002b\0045\004\148\002f\002\136\t\201\0046\002\216\t\135\011\236\n`\004\178\004A\003\186\nE\007\216\003\241\t\169\b\243\003\189\004\179\004\030\002\216\004\180\0044\004\028\004R\007\182\000\169\t\141\000\193\004B\007\137\t\142\004<\004\167\t\144\nA\nB\t\149\004@\001$\001\002\006\220\t\136\001(\001)\004\192\006\180\001\002\004\193\001\b\000\146\t\161\011k\002\161\006\225\004\178\002b\nX\000\148\002f\002g\nE\007\216\011h\004\207\011j\002\216\004\180\000\197\001$\007\185\000\148\t\162\001(\001)\006\222\007\139\001\002\000\190\004]\t\131\004\000\t\137\004\001\004\002\002\167\006\180\004\003\004A\000\252\005\210\t0\002b\004\187\004\209\002f\002\136\001\002\001\005\t\138\004\206\004\142\t\132\t\216\004]\000\189\t\134\004B\002\200\004\006\004\148\004\177\002f\003\165\001$\000\196\t\135\t\164\001(\001)\003\191\004a\001\002\001\b\011\240\004l\003\189\t\211\002f\001\007\001\b\001\t\t2\000\144\001\n\004\162\002b\001\015\004\217\002f\002g\007R\000\208\004\167\001\029\t\169\004n\006|\005\210\000\193\004l\t3\t\136\002f\000\252\002b\t5\t\141\002f\002\136\tE\t\142\001\002\001\005\t\144\006\232\002\167\t\149\006\240\t\131\004\000\t0\004\001\004\002\002\167\004\192\004\003\005\212\004\193\002\151\001\006\t\161\000\211\001(\0008\004\178\n>\001\002\011\227\007\247\004\142\011\228\t\137\000\210\004\207\t\134\002\216\004\180\006\220\004\148\005\210\004m\t\162\004\187\005\221\t\135\011\231\002f\002\136\t\138\005\186\002\167\t2\006\175\001\027\000\234\011\212\004\002\002\167\004\006\004h\004\177\002f\000\193\004\209\011\148\004m\004]\000\193\b\160\n\158\t3\004\167\001\011\nM\t\192\t5\0012\t\168\000\206\t<\t\136\002R\004\"\004/\b\161\0045\005\235\004]\b\168\004Y\0046\000\226\002\151\000\146\t\169\000\149\001(\000\144\006\206\001\012\001\002\000\148\000\193\001(\001)\001r\t\141\001\002\004^\003X\t\142\004]\004l\t\144\t\193\002f\t\149\006z\t\131\004\000\t\137\004\001\004\002\002\167\004\192\004\003\b\024\004\193\t\194\007r\t\161\004\187\b*\004l\004\178\000\193\002f\t\138\001r\004\142\t\132\000\233\003\149\004\207\t\134\002\216\004\180\004\006\004\148\004\177\002f\t\162\006\180\007~\t\135\t\174\b\224\004l\nA\nB\002f\002b\011\234\001>\002f\002g\004\206\001\007\001\b\001\t\002\017\001?\001\n\004\209\001@\001\015\000\241\001A\001B\nN\na\004\167\001\029\t\169\nE\007\216\b/\000\244\004m\007\156\t\136\011\213\001\251\004\177\002f\t\141\t0\007\137\b\165\t\142\006\180\002f\t\144\b4\002b\t\149\001Y\002f\002g\004m\004i\001r\001s\004\192\004\206\003\151\004\193\0045\000\146\t\161\000\147\004f\0046\004\178\n>\004\030\000\148\n\177\0048\006|\t\137\0045\004\207\004m\002\216\004\180\004Q\t2\004<\t0\t\162\004\187\b7\007\139\004@\000\252\001\002\t\138\007\168\007\170\007\172\007\137\001\027\001\002\001\005\011\149\t3\004\006\001\249\004\177\002f\t5\004\209\001\b\001\222\t9\004\030\nu\007\137\004:\006\180\001\011\nc\000\193\002\031\0012\t\177\b\252\004]\004<\t2\001\007\001\b\001\t\b\228\004@\001\n\001\002\006&\001\015\b\254\002f\002\136\t\169\004A\006\176\001\029\007\139\001\012\t3\005\188\002\167\001(\001)\t5\t\141\001\002\002>\t6\t\142\000\193\000\144\t\144\004B\007\139\t\149\0045\001\007\001\b\001\t\007\130\004C\001\n\004\192\004l\001\015\004\193\002f\005\210\t\161\001r\006C\001\029\004\178\003\162\004A\001!\002\165\n>\000\193\002\166\002\167\004\207\002\168\002\216\004\180\002G\001\022\004h\001r\t\162\000\252\005\147\003\164\004B\000\193\001\021\nA\nB\001\002\001\005\005\153\001>\002J\002\169\003\233\001\027\002\181\002\182\002\187\001?\000\193\004\209\001@\n>\0045\001A\001B\nN\na\0046\005\210\000\252\nE\007\216\001\011\nr\0045\000\193\0012\001\002\001\005\004;\002\151\005\210\003\234\005\210\001(\000\252\0045\004m\001\002\001\027\007\131\0046\001Y\001\002\001\005\001\020\004]\002b\001s\001\012\002f\002g\b\028\001(\001)\003\186\001\025\001\002\001\011\n\238\t\011\003\189\0012\b\160\000\193\001\007\001\b\001\t\006\174\000\146\001\n\000\186\002\165\001\015\005\210\002\166\002\167\000\148\002\168\b\161\001\029\000\193\t0\b\162\002\200\001\012\0045\001/\007\133\001(\001)\004T\004l\001\002\b\160\002f\002\188\004]\004\030\002\169\003\233\004E\002\181\002\182\002\187\b\169\004]\0016\nA\nB\b\161\004<\002\189\001>\b\167\002f\005\210\004@\t\215\001\002\005\211\001?\n>\t2\001@\0019\001_\001A\001B\nN\na\002M\000\252\000\206\nE\007\216\004i\t\152\004/\007\141\001\002\001\005\t3\004l\nA\nB\002f\t5\007\253\001>\001\027\t@\004l\003\235\000\206\002f\001Y\001?\t\193\bq\001@\b\185\001s\001A\001B\nN\na\004A\004m\001\011\nE\007\216\t\194\0012\000\252\007\156\001\007\001\b\001\t\005w\005\127\001\n\001\002\001\005\001\015\005\210\004B\001\236\002\214\b\163\t&\001\029\001Y\002f\002\188\007A\001\012\002\215\001s\002\216\001(\001)\002\\\b\193\001\002\004h\001\007\001\b\001\t\001\237\002\189\001\n\000\193\002f\001\015\000\144\002\005\001\236\004H\004m\001j\001\029\005\154\b\156\004]\002`\001\002\002m\004m\002b\000\144\001G\002f\002g\007\171\007\170\007\172\0045\001i\001\237\000\144\n\183\0046\000\206\001M\b\163\002\003\n\234\004/\b\160\004]\003\235\004]\002\146\002b\nA\nB\002f\002g\002\195\001>\001\027\003i\007L\t0\b\161\b\023\003l\001?\b\192\004l\001@\t\148\002f\001A\001B\nC\nD\003\236\003w\001\011\nE\007\216\000\193\0012\004K\002\214\b\163\001Q\t0\001\242\001\027\b\027\001\002\t\147\002\215\004l\002\216\004l\002f\003~\002f\003\129\001Y\005\210\t2\000\193\001\012\000\193\001s\001\011\001(\001)\007\241\0012\001\002\007\156\001\007\001\b\001\t\001\242\001T\001\n\003\132\t3\001\015\000\144\001r\001\236\t5\t2\005\136\001\029\tc\000\193\005\210\000\146\001\012\000\192\007\156\000\193\001(\001)\000\193\000\148\001\002\004m\001X\000\193\t3\001\237\000\146\n\184\000\199\t5\005\210\004i\001\238\tu\000\148\000\193\000\146\002\165\000\215\003\138\002\166\002\167\006\180\002\168\000\148\003\245\001>\004m\004\014\004m\n6\007\170\007\172\000\144\001?\005\210\000\193\001@\000\193\001r\001A\001B\001\252\005\144\002\169\002\196\007\222\002\181\002\182\002\187\000\144\000\144\n\186\n9\007\170\007\172\001>\001\027\001r\000\193\004\030\001r\005\162\004d\001?\005\195\007\156\001@\004\016\001Y\001A\001B\001\252\004<\n\185\001s\001\011\b%\002\197\004@\0012\001\002\007\156\001\007\001\b\001\t\001\242\0008\001\n\004\025\006\180\001\015\007\151\007\216\001\236\002\198\003\157\b+\001\029\001Y\000\193\0008\000\146\001\012\001-\001s\000\193\001(\001)\000\193\000\148\001\002\004{\001\007\001\b\001\t\001\237\004\030\001\n\n\185\004p\001\015\n\140\002\001\001\253\nG\007\170\007\172\001\029\004A\004<\004\129\004\030\003\166\004\139\007Z\004@\001m\001\002\002\201\006\180\nJ\007\170\007\172\001q\004<\001\255\004\145\004B\000\193\000\144\004@\b\154\001\002\000\146\002\189\0011\001v\002f\000\144\004\183\b3\000\148\007\142\001\007\001\b\001\t\001>\001\027\001\n\000\193\000\146\000\146\001;\001z\001?\005\210\007\156\001@\000\148\000\148\001A\001B\001\252\000\144\005\210\004A\001\011\b)\003\170\007\142\0012\b.\000\193\007\142\002\203\t\003\001\242\001\027\n\127\007\176\004A\bG\002\167\005\210\004B\0045\001\002\000\144\007\202\001Y\0046\000\193\000\144\001\012\000\193\001s\001\011\001(\001)\004B\0012\001\002\004\197\001\007\001\b\001\t\001\242\000\193\001\n\005\210\002\214\001\015\004\203\001}\001\253\nR\007\170\007\172\001\029\002\221\000\193\002\216\000\144\001\012\001\007\001\b\001\t\001(\001)\001\n\t\154\001\002\001\015\001\007\001\b\001\t\001\255\001\136\001\n\001\029\005\210\001\015\b0\004\030\001\236\004\212\007]\001\011\001\029\t\007\000\146\n\227\001\127\000\144\000\144\001\141\004<\001>\000\148\000\146\001\154\001\134\004@\007\156\001\002\001?\001\241\000\148\001@\bI\b5\001A\001B\001\252\001\012\001\149\004\223\004\229\001(\001)\004\235\004\241\001\002\000\193\000\146\b=\001\138\001>\001\027\001\153\011x\001\157\000\148\000\193\000\144\001?\bR\004\247\001@\t\030\001Y\001A\001B\tM\bW\007\216\001s\001\011\000\146\001\027\003\180\0012\004A\000\146\t\159\003\184\000\148\001\242\001\027\004\253\005\003\000\148\nU\007\170\007\172\007\156\000\193\b_\001\011\001\161\001Y\004B\0012\005\210\001\012\0045\001s\001\011\001(\001)\0046\0012\001\002\000\146\005\t\007\191\001?\001\242\005\015\001@\005\021\000\148\001A\001B\001\170\001\012\007\208\000\193\000\193\001(\001)\000\193\000\193\001\002\001\012\001\007\001\b\001\t\001(\001)\001\n\t\207\001\002\001\015\000\146\000\146\007\196\007\200\000\193\005\027\001\029\007\211\000\148\000\148\nZ\007\170\007\172\001\007\001\b\001\t\t\185\007\216\001\n\007\156\005!\001\015\005\210\001\165\001>\001\030\000\193\000\193\001\029\005\210\005'\004\030\001?\005-\007`\001@\n!\0053\001A\001B\001\252\000\146\0059\bA\004<\001>\bb\001\030\005?\000\148\004@\000\193\001\002\001?\001>\000\193\001@\000\193\n\249\001A\001B\bS\001?\n\131\005E\001@\000\144\001Y\001A\001B\001\252\001\002\005K\001s\005Q\n\145\001\027\001\169\n]\007\170\007\172\t\159\t>\001\002\005W\002f\000\193\005e\001Y\005\210\n=\007\216\005\210\005k\001s\001\011\005o\001Y\001\027\0012\004A\000\193\005\245\001s\000\144\001\007\001\b\001\t\001\173\b\144\001\n\000\193\005\254\001\015\000\193\n\178\b\176\001\011\000\193\004B\001\029\0012\001\012\000\193\006\007\006\017\001(\001)\001\177\000\193\001\002\n\168\n\187\006\026\001\191\t`\006#\006.\n\170\001\030\0067\002f\td\004\030\001\012\000\193\007e\005\210\001(\001)\001\143\001\186\001\002\000\193\001\190\000\193\004<\006@\001\007\001\b\001\t\006G\004@\001\n\001\002\000\193\001\015\006q\000\193\006v\001\007\001\b\001\t\001\029\000\193\001\n\b\180\000\193\001\015\b\218\006\130\n\180\001\194\000\193\006\138\001\029\001>\000\146\006\146\011p\001\027\006\153\001\030\000\193\001?\000\148\n\211\001@\001\198\006\159\001A\001B\001\129\0014\001\030\000\193\000\193\004\030\001>\001\011\007h\006\164\004A\0012\000\193\001\180\001?\000\193\000\193\001@\004<\000\193\001A\001B\001\129\000\146\004@\011t\001\002\001Y\n\212\004B\n\213\000\148\b\253\001s\001\012\001\207\000\193\001\202\001(\001)\000\193\001\027\001\002\n\191\007\216\006\171\000\193\005\210\000\193\001Y\001\206\006\190\001\210\001\027\006\204\001s\006\236\006\253\004\030\000\193\001\011\007k\001\214\000\193\0012\001\217\n\214\000\193\007\002\007\t\000\193\004<\001\011\t7\004A\007\027\0012\004@\000\193\001\002\t7\001\221\001\235\001\007\001\b\001\t\005\210\001\012\001\n\007 \000\193\001(\001)\004B\007+\001\002\001\245\002\n\001>\001\012\002\023\002\030\0074\001(\001)\n\215\001?\001\002\007?\001@\005\210\005\210\001A\001B\001\129\007J\001\007\001\b\001\t\007\176\np\001\n\n\216\n\217\001\015\n\218\000\193\004A\001\007\001\b\001\t\001\029\000\193\001\n\t\023\000\193\001\015\000\193\000\193\004\030\007V\001Y\007\128\001\029\007q\t\243\004B\001s\007w\000\193\000\193\001>\004<\n\246\bd\005\210\000\193\007\145\004@\001?\001\002\bI\001@\001>\007\164\001A\001B\001\129\007\166\007\213\000\193\001?\007\218\t\"\001@\000\193\007\233\001A\001B\001\129\007\239\n\220\bL\000\193\007\252\n\221\005\210\001\011\n\223\000\193\002=\n\229\n\231\b\016\001Y\b\022\000\193\tD\ta\002A\001s\001\027\b\026\002L\t\159\n\243\001Y\b \004A\b'\b-\n\236\001s\001\027\001\012\000\167\bF\bV\001(\001)\001\011\000\193\001\002\b^\0012\000\193\n\244\004B\ba\000\193\002S\bi\001\011\bv\002[\b|\0012\b\135\000\193\b\146\002_\004\030\te\005\210\b\000\000\193\005\210\001\012\005\210\000\193\000\193\001(\001)\000\193\004<\001\002\002l\000\193\002\142\001\012\004@\000\193\001\002\001(\001)\000\193\b\164\001\002\b\150\b\171\001\007\001\b\001\t\ti\000\193\001\n\000\193\b\187\001\015\001\007\001\b\001\t\b\197\000\193\001\n\001\029\001?\001\015\000\193\001@\000\193\000\193\001A\001B\001\029\t\159\007\183\000\193\000\193\004\000\003\015\004\001\004\002\002\167\000\193\004\003\005\210\b\204\002\145\000\193\004A\001>\000\193\003\007\000\193\bI\000\193\b\208\000\193\001?\000\193\007\184\001@\001>\bI\001A\001B\bS\007\249\004B\tm\001?\002\194\ty\001@\t\128\b\143\001A\001B\be\002\224\b\237\t\021\tb\t\026\b\248\tA\000\193\004\030\000\193\000\193\b#\003\019\003\"\001Y\001\027\003Y\005\210\000\193\003U\001s\004<\t\031\000\193\001\027\t=\001Y\004@\t%\001\002\t-\tg\001s\005\210\001\011\005\210\004\030\003[\0012\n\139\003c\004\030\t{\001\011\n\150\t\146\t\151\0012\000\193\004<\t\188\t\190\007\224\t\143\004<\004@\005\210\001\002\000\193\005\210\004@\001\012\001\002\t\202\007\217\001(\001)\007p\003h\001\002\001\012\001\007\001\b\001\t\001(\001)\001\n\004A\001\002\001\015\t\204\004\005\000\193\000\193\000\193\000\193\001\029\000\193\t\251\n\n\007;\n\022\0077\001\007\001\b\001\t\004B\004\006\001\n\004\177\002f\001\015\005\210\000\193\t\157\004A\000\193\n\024\001\029\000\193\004A\000\193\000\193\001\007\001\b\001\t\bI\005\210\001\n\n~\t\165\001\015\t\175\000\193\004B\001>\000\193\000\193\001\029\004B\n\130\000\193\000\193\001?\001>\005\210\001@\t\006\bI\001A\001B\bS\001?\t\210\000\193\001@\ne\001\030\001A\001B\bS\004\000\005\210\004\001\004\002\002\167\001\027\004\003\011\030\t\016\n\136\000\193\n\142\005\210\n\154\n\190\005\210\005\210\001Y\000\193\000\193\004\142\000\193\004\178\001s\001\011\n\194\001Y\001\027\0012\004\148\003v\004\179\001s\002\216\004\180\003}\b\002\000\193\nt\003\128\005\210\005\210\003\131\n\202\n\225\005\210\001\011\001\027\005\210\000\193\0012\001\012\n\233\n\128\003\137\001(\001)\005\210\003\174\001\002\000\193\003\168\004\167\005\210\003\171\003\244\001\011\005\210\005\210\005\210\0012\n\132\003\251\001\012\001\007\001\b\001\t\001(\001)\001\n\002\165\001\002\001\015\002\166\002\167\004\r\002\168\004\019\n\146\001\029\000\193\004\027\000\193\001\012\000\193\000\193\004(\001(\001)\n\152\004*\001\002\n\159\n\174\004?\004O\000\193\002\169\003\233\000n\002\181\002\182\002\187\004z\004\000\001>\004\001\004\002\002\167\003Q\004\003\004\128\004\187\001?\000\193\000\193\001@\n\179\n\200\001A\001B\bS\n\208\000\193\004\138\n\222\004\144\001>\004\006\004\152\004\177\002f\004\172\007(\n\240\001?\004\182\005\213\001@\004\196\011z\001A\001B\bS\011\221\011\232\011\237\001>\001Y\001\027\004\202\004\211\004\222\004\228\001s\001?\004\234\004\240\001@\004\246\004\252\001A\001B\001\129\004\189\005\002\005\b\005\014\001\011\005\020\001Y\005\026\0012\005 \005&\005,\001s\0052\001\007\001\b\001\t\0058\005>\001\n\005D\004\000\001\015\004\001\004\002\002\167\001Y\004\003\002\188\001\029\004\192\001\012\001s\004\193\005J\001(\001)\005P\005V\001\002\004\178\005^\005d\005j\002\189\005r\005y\002f\005\150\004\207\006J\002\216\004\180\005\165\005\201\005\244\001\007\001\b\001\t\003\146\005\253\001\n\004\005\006\006\001\015\006\016\006\025\006\"\006-\0066\006?\001\029\006F\006\\\006p\006u\006K\006\129\004\006\004\209\004\177\002f\006\137\006\145\006\152\tv\006\158\006\161\006\163\006\170\006\179\006\189\006\203\006\214\006\223\001>\006\235\006\252\007\001\001\027\007\b\003\159\007\020\001?\007\026\007\031\001@\007*\0073\001A\001B\003W\0079\007>\007I\007U\007v\007y\001\011\007z\002\214\007\144\0012\007\212\007\163\007\189\007\198\007\220\007\227\002\215\007\232\002\216\007\238\007\251\b\004\b\006\b\015\b\025\001Y\b\021\b&\001\027\b\031\004\005\001s\001\012\tx\b!\b$\001(\001)\b2\002\165\001\002\004\178\002\166\002\167\b1\002\168\004\006\001\011\004\177\002f\004\179\0012\002\216\004\180\bE\bM\bQ\bP\bU\b`\b\196\bh\bk\br\bz\b\129\002\169\002\196\b\140\002\181\002\182\002\187\b\195\b\188\001\012\001\007\001\b\001\t\001(\001)\001\n\b\189\001\002\001\015\001\007\001\b\001\t\b\194\006M\001\n\001\029\b\198\001\015\b\199\b\205\b\210\001>\b\214\b\232\001\029\002\197\b\239\t \t8\001?\tB\t\130\001@\t|\t}\001A\001B\003\150\t\129\t\145\t\160\t\155\002\198\003\192\t\156\003\194\t\158\004\178\t\183\t\189\t\203\t\208\t\209\t\213\003\201\t\250\004\179\n\003\002\216\004\180\n\t\n,\n'\001>\001Y\n+\n/\n3\n@\nd\001s\001?\nh\000n\001@\ns\nw\001A\001B\003\163\003\198\n\129\n}\n\141\n\135\001\027\002\201\n\137\n\148\n\161\n\155\n\160\002\165\n\163\001\027\002\166\002\167\n\166\002\168\n\165\n\173\n\172\002\189\n\189\001\011\002f\001Y\n\193\0012\n\195\n\196\n\210\001s\001\011\n\203\n\204\n\209\0012\n\224\002\169\002\196\n\228\002\181\002\182\002\187\n\230\n\242\n\239\n\241\011\004\n\255\001\012\011\003\011\007\003\209\001(\001)\011\011\011\020\001\002\001\012\011\015\002\203\011\019\001(\001)\011\023\004\030\001\002\011\027\n\157\011)\011$\002\197\011(\011,\0110\001\007\001\b\001\t\004<\0119\001\n\0114\0118\001\015\004@\011<\001\002\011@\002\198\003\213\001\029\011K\011F\011J\011N\011R\002\214\011]\011X\011\\\011`\001\007\001\b\001\t\011d\002\221\001\n\002\216\011r\001\015\011w\011y\011\199\001>\011\207\000\000\001\029\000\000\000\000\000n\003\215\001?\001>\000\000\001@\000\000\003\219\001A\001B\003\150\001?\000\000\002\201\001@\004A\000\000\001A\001B\003\204\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\223\000\000\002\189\000\000\000\000\002f\000\000\004B\004\030\000\000\001Y\n\176\000\000\000\000\001\027\000\000\001s\000\000\000\000\001Y\000\000\004<\000\000\000\000\000\000\001s\000\000\004@\000\000\001\002\000\000\000\000\004\030\001\011\003\230\n\182\000\000\0012\000\000\000\000\001\027\000\000\002\203\000\000\000\000\004<\004\000\000\000\004\001\004\002\002\167\004@\004\003\001\002\000\000\000\000\000\000\000\000\000\000\001\011\001\012\000\000\000\000\0012\001(\001)\004\142\000\000\001\002\000\000\000\000\000\000\000\000\000\000\000\000\004\148\000\000\004A\002\214\000\000\000\000\000\000\006l\000\000\000\000\000\000\001\012\002\221\000\000\002\216\001(\001)\000\000\000\000\001\002\000\000\004B\000\000\000\000\002\165\000\000\004A\005\128\002\167\000\000\002\168\000\000\000\000\004\167\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004B\000\000\000\000\000\000\001>\000\000\005\157\002\196\000\000\002\181\002\182\002\187\001?\000\000\000\000\001@\000\000\000\000\001A\001B\003\150\004\030\000\000\000\000\n\226\000\000\000\000\001\007\001\b\001\t\001>\000\000\001\n\000\000\004<\000n\000\000\000\000\001?\003\030\004@\001@\001\002\000\000\001A\001B\003\227\001Y\004\187\000\000\000\000\000\000\000\000\001s\000\000\000\000\005\168\003#\000\000\000\000\001\007\001\b\001\t\007\176\004\006\001\n\004\177\002f\001\015\000\000\000\000\000\000\000\000\001Y\000\000\001\029\000\000\000\000\000\000\001s\000\000\000\000\000\000\002\165\000\000\000\000\002\166\002\167\000\000\002\168\004A\000\000\000\000\000\000\000\000\005\187\000\000\000\000\005\198\000\000\004\189\002\201\000\000\000\000\000\000\005\139\000\000\005\204\000\000\004B\002\169\003\233\000\000\002\181\002\182\002\187\000\000\002\189\000\000\000\000\002f\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\192\001\011\000\000\004\193\000\000\000\000\000\000\000\000\000\000\000\000\004\178\003\234\001\007\001\b\001\t\001\027\000\000\001\n\000\000\004\207\001\015\002\216\004\180\000\000\005\208\005\209\003$\001\029\001\012\000\000\000\000\000\000\001(\001)\001\011\000\000\001\002\000\000\0012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\209\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\190\000\000\000\000\000\000\001\012\000\000\002\214\000\000\001(\001)\000\000\000\000\001\002\000\000\000\000\002\221\000\000\002\216\002\188\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001\015\000\000\000\000\000\000\000\000\000\000\002\189\001\029\000\000\002f\000\000\000\000\001\027\000\000\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\000\000\000\000\007\204\000\000\000\000\000\000\000\000\000\000\001\011\000\000\000\000\000\000\0012\000\000\007\159\000\000\000\000\001>\000\000\000\000\000\000\000\000\000\000\000\000\003\235\001?\000\000\007\207\001@\000\000\000\000\001A\001B\002\014\007\162\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\000\000\000\000\000\000\000\000\000\000\000\000\005w\005\127\002\165\000\000\001\027\005\128\002\167\000\000\002\168\002\214\001Y\000\000\000\000\000\000\000\000\000\000\001s\000\000\002\215\000\000\002\216\000\000\000\000\001\011\000\000\000\000\000\000\0012\000\000\005\157\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\205\000\000\000\000\000\000\000\000\000\000\001>\001\012\001\007\001\b\001\t\001(\001)\001\n\001?\001\002\001\015\001@\000\000\003\030\001A\001B\002\014\001\029\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001\015\000\000\000\000\005\168\003#\000\000\000\000\001\029\000\000\000\000\000\000\000\000\000\000\000\000\b\154\000\000\001Y\000\000\000\000\000\000\000\000\000\000\001s\000\000\000\000\000\000\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001\017\000\000\001>\000\000\000\000\000\000\005\187\001\218\000\000\000\000\001?\000\000\002\201\001@\000\000\000\000\001A\001B\000\000\000\000\000\000\000\000\000\000\000\000\001\027\000\000\000\000\000\000\002\189\000\000\000\000\002f\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\027\000\000\001\011\000\000\001Y\000\000\0012\000\000\000\000\000\000\007\167\002\165\000\000\000\000\005\128\002\167\000\000\002\168\000\000\001\011\000\000\000\000\000\000\0012\005\208\007\221\003$\000\000\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\001\027\001\002\005\157\002\196\000\000\002\181\002\182\002\187\000\000\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\001\011\000\000\000\000\000\000\001\219\001\007\001\b\001\t\002\214\000\000\001\n\000\000\000\000\001\015\000\000\000\000\003\030\002\221\000\000\002\216\001\029\000\000\000\000\000\000\000\000\000\000\000\000\001\012\000\000\000\000\000\000\001(\001)\005\168\003#\001\002\000\000\000\000\001>\000\000\000\000\000\000\000\000\000\000\t)\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\b\159\001>\000\000\000\000\000\000\000\000\000\000\002\165\000\000\001?\005\128\002\167\001@\002\168\000\000\001A\001B\b\172\005\187\000\000\b\175\000\000\000\000\000\000\002\201\000\000\000\000\001Y\000\000\000\000\000\000\000\000\000\000\001s\005\157\002\196\001\027\002\181\002\182\002\187\002\189\000\000\000\000\002f\001Y\001?\000\000\000\000\001@\000\000\001s\001A\001B\000\000\000\000\001\011\000\000\000\000\000\000\0012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\030\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001\015\005\208\t!\003$\001Y\000\000\001\012\001\029\005\168\003#\001(\001)\000\000\000\000\001\002\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\011\012\000\000\000\000\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001\015\000\000\000\000\002\214\000\000\000\000\000\000\001\029\000\000\000\000\005\187\000\000\002\221\000\000\002\216\000\000\002\201\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\189\001>\000\000\002f\000\000\007\159\000\000\000\000\001\027\001?\000\000\000\000\001@\000\000\000\000\001A\001B\b\159\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\021\000\000\001\011\000\000\000\000\000\000\0012\000\000\000\000\000\000\000\000\000\000\005\208\tC\003$\000\000\000\000\000\000\000\000\001Y\001\027\000\000\000\000\000\000\000\000\001s\001\011\000\000\000\000\001\012\011\028\000\000\000\000\001(\001)\000\000\000\000\001\002\000\000\001\011\000\000\000\000\000\000\0012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\214\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\002\221\001\002\002\216\000\000\000\000\000\000\001\012\001\007\001\b\001\t\001(\001)\001\n\000\000\001\002\001\015\000\000\004\000\000\000\004\001\004\002\002\167\001\029\004\003\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001>\000\000\000\000\000\000\004\142\000\000\000\000\000\000\001?\000\000\000\000\001@\000\000\004\148\001A\001B\b\172\000\000\000\000\th\011\164\000\000\000\000\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\001?\000\000\000\000\001@\000\000\001>\001A\001B\000\000\000\000\000\000\001Y\000\000\001?\004\167\000\000\001@\001s\000\000\001A\001B\006\217\011\160\000\000\000\000\000\000\000\000\001\027\000\000\006\226\000\000\000\000\001\007\001\b\001\t\011S\000\000\001\n\000\000\011\166\001\015\000\000\000\000\000\000\000\000\000\000\001\011\001\029\001Y\000\000\0012\000\000\000\000\000\000\007\167\000\000\001\007\001\b\001\t\0070\000\000\001\n\000\000\000\000\001\015\000\000\000\000\000\000\000\000\000\000\000\000\001\029\000\000\001\012\004\187\000\000\000\000\001(\001)\000\000\000\000\001\002\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\004\006\000\000\004\177\002f\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\142\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\148\000\000\000\000\004\005\000\000\000\000\001\027\n\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\189\000\000\000\000\000\000\006\229\000\000\004\177\002f\002\136\000\000\001\011\001>\000\000\000\000\0012\001\027\000\000\000\000\004\167\001?\000\000\000\000\001@\000\000\000\000\001A\001B\011\161\000\000\000\000\004\192\000\000\000\000\004\193\001\011\000\000\000\000\001\012\0012\000\000\004\178\001(\001)\000\000\000\000\001\002\000\000\006\220\000\000\004\207\000\000\002\216\004\180\004\000\001Y\004\001\004\002\002\167\000\000\004\003\001s\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\004\187\004\209\004\178\000\000\006J\000\000\000\000\000\000\000\000\000\000\000\000\004\179\004\142\002\216\004\180\000\000\004\006\000\000\004\177\002f\000\000\004\148\000\000\001>\000\000\000\000\000\000\000\000\n\r\000\000\t4\001?\000\000\000\000\001@\000\000\000\000\001A\001B\011g\000\000\001\007\001\b\001\t\000\000\000\000\001\n\001>\000\000\001\015\000\000\000\000\004\189\000\000\004\167\001?\001\029\000\000\001@\000\000\000\000\001A\001B\011e\000\000\000\000\001Y\000\000\000\000\000\000\000\000\000\000\001s\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\192\000\000\000\000\004\193\000\000\000\000\000\000\000\000\001Y\000\000\004\178\000\000\000\000\000\000\001s\004\005\000\000\000\000\000\000\004\207\000\000\002\216\004\180\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\006\004\187\004\177\002f\000\000\000\000\000\000\000\000\000\000\001\007\001\b\001\t\000\000\001\027\001\n\000\000\000\000\004\006\004\209\004\177\002f\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001\015\000\000\001\011\000\000\000\000\000\000\0012\001\029\000\000\001\007\001\b\001\t\006M\000\000\001\n\000\000\000\000\001\015\000\000\000\000\000\000\000\000\000\000\004\189\001\029\000\000\000\000\000\000\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\004\178\001\015\000\000\000\000\000\000\000\000\000\000\004\192\001\029\004\179\004\193\002\216\004\180\000\000\000\000\000\000\000\000\004\178\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\207\000\000\002\216\004\180\000\000\001\027\000\000\000\000\000\000\000\000\000\000\001\011\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001>\001\027\000\000\001\011\000\000\000\000\000\000\0012\001?\004\209\000\000\001@\000\000\000\000\001A\001B\002\012\001\012\000\000\000\000\001\011\001(\001)\000\000\0012\001\002\000\000\000\000\n\031\000\000\001\012\001\027\000\000\000\000\001(\001)\000\000\000\000\001\002\000\000\000\000\000\000\000\000\001Y\000\000\000\000\000\000\001\012\000\000\001s\001\011\001(\001)\000\000\0012\001\002\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001\015\000\000\000\000\000\000\000\000\000\000\000\000\001\029\000\000\000\000\000\000\000\000\001\012\001\007\001\b\001\t\001(\001)\001\n\000\000\001\002\001\015\000\000\000\000\001?\000\000\000\000\001@\001\029\001>\001A\001B\000\000\000\000\000\000\000\000\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\001\223\001>\000\000\000\000\000\000\001\007\001\b\001\t\000\000\001?\001\n\000\000\001@\001\015\n\027\001A\001B\001\142\000\000\000\000\001\029\000\000\000\000\000\000\000\000\000\000\000\000\001Y\000\000\000\000\000\000\001>\001\027\001s\000\000\000\000\000\000\000\000\000\000\001?\000\000\000\000\001@\000\000\001Y\001A\001B\001C\000\000\000\000\001s\001\011\000\000\001\027\000\000\0012\000\000\000\000\001\007\001\b\001\t\002\165\000\000\001\n\002\166\002\167\001\015\002\168\000\000\000\000\000\000\000\000\001\011\001\029\001Y\000\000\0012\000\000\001\012\000\000\001s\000\000\001(\001)\000\000\000\000\001\002\000\000\002\169\003\233\001\027\002\181\002\182\002\187\000\000\000\000\000\000\000\000\000\000\001\012\000\000\001\246\000\000\001(\001)\000\000\000\000\001\002\000\000\001\011\000\000\000\000\000\000\0012\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001\015\000\000\000\000\000\000\000\000\000\000\000\000\001\029\000\000\000\000\000\000\000\000\001\012\000\000\000\000\000\000\001(\001)\001>\001\027\001\002\000\000\001\007\001\b\001\t\000\000\001?\001\n\000\000\001@\001\015\000\000\001A\001B\001\139\000\000\000\000\001\029\001\011\001>\000\000\000\000\0012\000\000\000\000\000\000\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\001\145\000\000\000\000\000\000\002\188\000\000\001Y\000\000\000\000\000\000\001\012\000\000\001s\000\000\001(\001)\000\000\000\000\001\002\000\000\002\189\001>\001\027\002f\000\000\000\000\000\000\001Y\000\000\001?\000\000\000\000\001@\001s\000\000\001A\001B\001\182\000\000\000\000\000\000\001\011\000\000\000\000\000\000\0012\000\000\000\000\001\007\001\b\001\t\000\000\001\027\001\n\000\000\000\000\001\015\000\000\000\000\000\000\000\000\t.\000\000\001\029\001Y\000\000\000\000\000\000\001\012\000\000\001s\001\011\001(\001)\001>\0012\001\002\000\000\000\000\000\000\000\000\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\000\000\004\000\000\000\004\001\004\002\002\167\002\214\004\003\001\012\000\000\000\000\000\000\001(\001)\000\000\002\215\001\002\002\216\000\000\000\000\000\000\004\142\000\000\000\000\000\000\000\000\000\000\001Y\000\000\000\000\004\148\t:\000\000\001\250\000\000\000\000\000\000\b\012\000\000\000\000\000\000\000\000\001>\001\027\000\000\000\000\000\000\000\000\000\000\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\002\016\000\000\000\000\000\000\001\011\004\167\000\000\000\000\0012\000\000\001\007\001\b\001\t\000\000\001>\001\n\000\000\000\000\001\162\000\000\000\000\000\000\001?\000\000\000\000\001@\000\000\001Y\001A\001B\002&\001\012\000\000\001s\000\000\001(\001)\000\000\004\000\001\002\004\001\004\002\002\167\000\000\004\003\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001Y\004\142\000\000\000\000\000\000\000\000\001s\000\000\004\187\000\000\004\148\000\000\004\000\000\000\004\001\004\002\002\167\b\011\004\003\000\000\000\000\000\000\000\000\000\000\004\006\000\000\004\177\002f\000\000\000\000\000\000\000\000\004\142\000\000\000\000\000\000\000\000\000\000\001>\000\000\000\000\004\148\000\000\004\167\000\000\000\000\001?\000\000\b\b\001@\000\000\000\000\001A\001B\002-\000\000\000\000\001\011\000\000\000\000\004\189\001\178\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\000\000\000\000\000\000\000\000\004\167\000\000\000\000\000\000\000\000\000\000\000\000\001Y\004\142\000\000\001\012\000\000\000\000\001s\001(\001)\004\192\004\148\001\002\004\193\000\000\000\000\000\000\000\000\007\236\000\000\004\178\000\000\000\000\004\187\000\000\000\000\000\000\000\000\000\000\004\207\000\000\002\216\004\180\000\000\000\000\000\000\000\000\000\000\000\000\004\006\000\000\004\177\002f\000\000\004\167\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001\015\004\187\000\000\000\000\000\000\000\000\004\209\001\029\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\004\006\001\015\004\177\002f\000\000\004\189\001?\000\000\001\029\001@\000\000\000\000\001A\001B\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001\015\000\000\000\000\000\000\000\000\000\000\000\000\001\029\000\000\000\000\000\000\000\000\004\187\004\192\004\189\000\000\004\193\000\000\000\000\001Y\000\000\000\000\000\000\004\178\000\000\000\000\000\000\000\000\004\006\000\000\004\177\002f\004\207\000\000\002\216\004\180\000\000\000\000\001\027\000\000\000\000\000\000\000\000\000\000\004\192\000\000\000\000\004\193\000\000\000\000\000\000\000\000\000\000\000\000\004\178\000\000\001\027\001\011\000\000\000\000\000\000\0012\004\209\004\207\004\189\002\216\004\180\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\011\000\000\001\027\000\000\0012\000\000\000\000\000\000\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\004\209\004\192\000\000\001\011\004\193\000\000\000\000\0012\000\000\001\012\000\000\004\178\000\000\001(\001)\000\000\000\000\001\002\000\000\000\000\004\207\000\000\002\216\004\180\000\000\000\000\000\000\000\000\000\000\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001\015\004\209\000\000\000\000\000\000\000\000\001>\001\029\000\000\000\000\001\007\001\b\001\t\000\000\001?\001\n\000\000\001@\001\015\000\000\001A\001B\002y\000\000\001>\001\029\000\000\000\000\001\007\001\b\001\t\000\000\001?\001\n\000\000\001@\001\015\000\000\001A\001B\002\128\000\000\000\000\001\029\002\165\001>\000\000\002\166\002\167\001Y\002\168\000\000\000\000\001?\000\000\001s\001@\000\000\000\000\001A\001B\002\141\000\000\000\000\000\000\000\000\000\000\001Y\000\000\000\000\000\000\002\169\003\r\001s\002\181\002\182\002\187\001\027\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001Y\000\000\000\000\000\000\000\000\000\000\001s\001\027\001\011\000\000\000\000\000\000\0012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\027\001\011\000\000\000\000\000\000\0012\000\000\000\000\000\000\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\001\011\000\000\000\000\000\000\0012\000\000\000\000\000\000\000\000\001\012\001\007\001\b\001\t\001(\001)\001\n\000\000\001\002\001\015\000\000\000\000\000\000\000\000\000\000\000\000\001\029\000\000\001\012\001\007\001\b\001\t\001(\001)\001\n\002\188\001\002\001\015\000\000\000\000\000\000\000\000\000\000\000\000\001\029\000\000\000\000\001\007\001\b\001\t\000\000\002\189\001\n\000\000\002f\001\015\001>\000\000\000\000\000\000\000\000\000\000\001\029\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\002\176\000\000\001>\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\002\209\000\000\001>\000\000\000\000\000\000\001\027\000\000\000\000\001Y\001?\000\000\000\000\001@\000\000\001s\001A\001B\002\237\000\000\000\000\000\000\000\000\000\000\001\027\001\011\000\000\001Y\000\000\0012\000\000\000\000\000\000\001s\000\000\000\000\000\000\002\214\000\000\000\000\000\000\000\000\001\027\001\011\000\000\001Y\002\215\0012\002\216\000\000\000\000\001s\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\001\011\000\000\000\000\000\000\0012\000\000\000\000\000\000\000\000\001\012\001\007\001\b\001\t\001(\001)\001\n\000\000\001\002\001\015\000\000\000\000\000\000\000\000\000\000\000\000\001\029\000\000\001\012\001\007\001\b\001\t\001(\001)\001\n\000\000\001\002\001\015\000\000\004\000\000\000\004\001\004\002\002\167\001\029\004\003\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001>\000\000\000\000\004\142\000\000\000\000\000\000\000\000\001?\000\000\000\000\001@\004\148\000\000\001A\001B\002\245\000\000\001>\007\223\000\000\000\000\000\000\000\000\000\000\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\003*\000\000\001>\000\000\000\000\000\000\001\027\000\000\000\000\001Y\001?\004\167\000\000\001@\000\000\001s\001A\001B\0037\000\000\000\000\000\000\000\000\000\000\001\027\001\011\000\000\001Y\000\000\0012\000\000\000\000\000\000\001s\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\011\000\000\001Y\000\000\0012\000\000\000\000\000\000\001s\001\012\000\000\000\000\000\000\001(\001)\000\000\004\000\001\002\004\001\004\002\002\167\000\000\004\003\000\000\000\000\000\000\000\000\001\012\004\187\000\000\000\000\001(\001)\000\000\000\000\001\002\004\142\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\006\004\148\004\177\002f\000\000\000\000\000\000\000\000\007\r\000\000\000\000\000\000\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001>\000\000\000\000\000\000\004\142\004\167\000\000\004\189\001?\000\000\000\000\001@\000\000\004\148\001A\001B\003E\000\000\001>\000\000\006\249\000\000\000\000\000\000\000\000\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\003S\000\000\000\000\004\192\000\000\000\000\004\193\000\000\000\000\001Y\000\000\000\000\004\167\004\178\000\000\001s\000\000\000\000\000\000\000\000\000\000\000\000\004\207\000\000\002\216\004\180\000\000\001Y\000\000\000\000\000\000\004\187\000\000\001s\000\000\000\000\000\000\000\000\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\004\006\000\000\004\177\002f\000\000\004\209\000\000\000\000\000\000\000\000\000\000\000\000\004\142\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\148\000\000\000\000\000\000\004\187\000\000\000\000\006\241\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\189\000\000\000\000\000\000\000\000\004\006\000\000\004\177\002f\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\167\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\165\000\000\004\192\002\166\002\167\004\193\002\168\000\000\000\000\000\000\000\000\000\000\004\178\004\189\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\207\000\000\002\216\004\180\000\000\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\192\000\000\000\000\004\193\000\000\000\000\000\000\004\187\004\209\004\000\004\178\004\001\004\002\002\167\000\000\004\003\000\000\000\000\002\197\004\207\000\000\002\216\004\180\004\006\002\165\004\177\002f\002\166\002\167\000\000\002\168\000\000\000\000\000\000\000\000\002\198\003\144\000\000\006\217\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\226\000\000\000\000\004\209\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\004\189\001\007\001\b\001\t\000\000\000\000\001\n\000n\000\000\001\015\001\007\001\b\001\t\000\000\000\000\001\n\001\029\007&\001\015\000\000\002\201\000\000\000\000\000\000\000\000\001\029\002\197\000\000\000\000\000\000\004\192\000\000\000\000\004\193\000\000\000\000\002\189\000\000\000\000\002f\004\178\000\000\000\000\002\198\003\144\000\000\000\000\000\000\000\000\004\207\000\000\002\216\004\180\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\003\155\000\000\001\015\000\000\004\005\000\000\000n\000\000\002\203\001\029\000\000\004\209\000\000\000\000\000\000\000\000\000\000\000\000\001\027\002\201\006\229\000\000\004\177\002f\002\136\000\000\000\000\001\027\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\189\000\000\001\011\002f\000\000\000\000\0012\000\000\000\000\002\214\000\000\001\011\000\000\000\000\000\000\0012\000\000\000\000\002\221\000\000\002\216\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\220\001\012\000\000\000\000\003\153\001(\001)\000\000\000\000\001\002\001\012\000\000\002\203\000\000\001(\001)\001\027\000\000\001\002\000\000\000\000\000\000\002\165\000\000\000\000\002\166\002\167\000\000\002\168\000\000\000\000\000\000\000\000\004\178\000\000\001\011\000\000\000\000\000\000\0012\000\000\000\000\004\179\000\000\002\216\004\180\000\000\000\000\002\214\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\002\221\000\000\002\216\000\000\000\000\001\012\000\000\000\000\001>\001(\001)\000\000\000\000\001\002\000\000\000\000\001?\001>\000\000\001@\000\000\000\000\001A\001B\003\148\001?\002\197\000\000\001@\000\000\000\000\001A\001B\003\161\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001\015\002\198\003\199\000\000\000\000\000\000\000\000\001\029\000\000\001Y\000\000\000\000\000\000\000\000\000\000\001s\000\000\000\000\001Y\000\000\000\000\000\000\000\000\000\000\001s\000\000\000\000\001>\000\000\000\000\000\000\001\007\001\b\001\t\000\000\001?\001\n\000\000\001@\001\015\000\000\001A\001B\003\196\000\000\002\201\001\029\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\007\001\b\001\t\000\000\002\189\001\n\000\000\002f\001\015\000\000\000\000\000\000\000\000\001Y\000\000\001\029\000\000\000\000\000\000\001s\001\027\000\000\000\000\000\000\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\000\000\000\000\000\000\003\205\003\207\000\000\001\011\000\000\000\000\000\000\0012\002\203\004\142\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\148\000\000\000\000\000\000\000\000\001\027\000\000\000\000\000\000\000\000\000\000\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\000\000\000\000\000\000\001\011\000\000\002\214\000\000\0012\000\000\000\000\001\027\000\000\004\167\000\000\002\221\000\000\002\216\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\011\001\012\000\000\000\000\0012\001(\001)\000\000\000\000\001\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\007\001\b\001\t\001>\001\012\001\n\000\000\000\000\001(\001)\000\000\001?\001\002\000\000\001@\000\000\000\000\001A\001B\003\203\004\187\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001\015\000\000\000\000\000\000\000\000\001b\004\006\001\029\004\177\002f\000\000\000\000\001>\000\000\000\000\000\000\001Y\000\000\000\000\000\000\001?\000\000\001s\001@\000\000\000\000\001A\001B\003\217\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\165\001>\000\000\002\166\002\167\004\189\002\168\000\000\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\003\225\001Y\000\000\000\000\001\007\001\b\001\t\001s\000\000\001\n\002\169\002\196\001\015\002\181\002\182\002\187\000\000\000\000\005|\001\029\001\011\004\193\006\239\001\027\000\000\000\000\000\000\001Y\004\178\000\000\000\000\000\000\000\000\001s\000\000\003\246\000\000\004\207\000\000\002\216\004\180\000\000\001\011\000\000\002\197\000\000\0012\001\012\001\007\001\b\001\t\001(\001)\001\n\000\000\001\002\001\140\000\000\000\000\000\000\000\000\002\198\003\134\000\000\000\000\000\000\000\000\004\209\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\007\001\b\001\t\000\000\001\027\001\n\000\000\000\000\001\015\000\000\000\000\000\000\000\000\000\000\000\000\001\029\000\000\000\000\000\000\000\000\002\201\000\000\000\000\001\011\000\000\000\000\000\000\0012\000\000\000\000\000\000\000\000\000\000\000\000\001?\000\000\002\189\001@\000\000\002f\001A\001B\000\000\000\000\000\000\000\000\000\000\000\000\001>\004\147\001\012\000\000\000\000\000\000\001(\001)\001?\000\000\001\002\001@\000\000\000\000\001A\001B\004,\000\000\000\000\001\011\000\000\001h\000\000\000\000\000\000\000\000\000\000\000\000\002\203\000\000\000\000\000\000\004\000\000\000\004\001\004\002\002\167\001\027\004\003\000\000\000\000\000\000\000\000\001Y\000\000\000\000\001\012\000\000\000\000\001s\001(\001)\004\142\000\000\001\002\000\000\001\011\000\000\000\000\000\000\0012\004\148\000\000\000\000\002\214\000\000\001>\000\000\006a\000\000\000\000\000\000\000\000\002\221\001?\002\216\000\000\001@\000\000\000\000\001A\001B\004.\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\000\000\000\000\004\167\000\000\000\000\004\000\000\000\004\001\004\002\002\167\004\000\004\003\004\001\004\002\002\167\000\000\004\003\001Y\000\000\000\000\000\000\000\000\000\000\001s\000\000\004\142\001?\000\000\000\000\001@\004\142\000\000\001A\001B\004\148\000\000\000\000\000\000\000\000\004\148\000\000\006Y\000\000\000\000\000\000\000\000\006X\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\001>\000\000\000\000\000\000\000\000\000\000\001Y\004\187\001?\000\000\000\000\001@\004\167\004\142\001A\001B\004w\004\167\000\000\000\000\000\000\000\000\004\148\004\006\000\000\004\177\002f\000\000\000\000\004\165\002\165\000\000\000\000\002\166\002\167\000\000\002\168\000\000\000\000\000\000\000\000\000\000\000\000\001Y\000\000\000\000\000\000\000\000\002\165\001s\000\000\002\166\002\167\000\000\002\168\004\167\000\000\002\169\002\170\004\189\002\181\002\182\002\187\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\187\000\000\000\000\002\169\002\196\004\187\002\181\002\182\002\187\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\006\004\192\004\177\002f\004\193\004\006\000\000\004\177\002f\000\000\000\000\004\178\004\140\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\207\002\197\002\216\004\180\000\000\002\165\000\000\004\187\002\166\002\167\000\000\002\168\000\000\000\000\000\000\000\000\004\189\000\000\002\198\003\134\000\000\004\189\000\000\004\006\000\000\004\177\002f\000\000\000\000\000\000\004\209\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\000\000\000\000\000\000\002\188\000\000\004\192\000\000\000\000\004\193\000\000\004\192\000\000\000\000\004\193\000\000\004\178\004\146\000\000\004\189\002\189\004\178\002\201\002f\000\000\004\207\002\197\002\216\004\180\000\000\004\207\000\000\002\216\004\180\000\000\000\000\000\000\000\000\002\189\000\000\000\000\002f\000\000\002\198\003\134\000\000\000\000\000\000\000\000\004\192\000\000\004\147\004\193\000\000\000\000\004\209\000\000\000\000\002\165\004\178\004\209\002\166\002\167\000\000\002\168\000\000\000\000\000\000\004\207\000\000\002\216\004\180\000\000\004\000\000\000\004\001\004\002\002\167\002\203\004\003\000\000\000\000\000\000\000\000\000\000\002\169\002\196\002\201\002\181\002\182\002\187\000\000\000\000\004\142\000\000\000\000\002\214\000\000\004\209\000\000\000\000\000\000\004\148\002\189\000\000\002\215\002f\002\216\000\000\004\191\004\184\000\000\000\000\000\000\002\214\000\000\004\147\000\000\000\000\002\197\000\000\000\000\000\000\002\221\002\165\002\216\n\211\002\166\002\167\000\000\002\168\000\000\000\000\000\000\000\000\004\167\002\198\003\134\000\000\000\000\000\000\000\000\000\000\002\203\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\n\212\000\000\n\213\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\198\000\000\000\000\002\214\002\201\000\000\000\000\000\000\000\000\002\197\000\000\000\000\002\221\000\000\002\216\000\000\000\000\000\000\000\000\004\187\002\189\000\000\n\214\002f\000\000\000\000\002\198\003\134\000\000\000\000\000\000\000\000\000\000\004\147\000\000\004\006\002\165\004\177\002f\002\166\002\167\000\000\002\168\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\203\n\215\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\002\201\004\189\000\000\000\000\000\000\000\000\000\000\000\000\n\216\n\217\000\000\n\218\000\000\000\000\000\000\000\000\002\189\000\000\004\204\002f\000\000\000\000\000\000\000\000\000\000\000\000\002\214\002\197\000\000\004\147\000\000\004\192\000\000\000\000\004\193\002\221\000\000\002\216\000\000\n\245\000\000\004\178\000\000\000\000\002\198\003\134\000\000\000\000\000\000\000\000\004\207\000\000\002\216\004\180\002\165\000\000\002\203\002\166\002\167\000\000\002\168\000\000\000\000\000\000\000\000\000\000\000\000\n\220\000\000\000\000\000\000\n\221\000\000\000\000\n\223\000\000\000\000\n\229\n\231\000\000\004\209\002\169\002\196\000\000\002\181\002\182\002\187\000\000\002\201\000\000\000\000\n\243\002\214\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\002\221\000\000\002\216\002\189\000\000\004\213\002f\000\000\000\000\000\000\000\000\n\244\004\142\000\000\002\197\000\000\004\147\000\000\000\000\002\165\000\000\004\148\002\166\002\167\000\000\002\168\000\000\000\000\004\219\000\000\000\000\002\198\003\134\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\000\000\000\000\002\203\000\000\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\004\142\004\167\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\148\000\000\000\000\000\000\000\000\000\000\000\000\004\218\000\000\004\224\000\000\000\000\000\000\002\201\000\000\000\000\000\000\002\214\002\197\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\221\000\000\002\216\002\189\000\000\000\000\002f\004\167\000\000\002\198\003\134\000\000\000\000\000\000\000\000\000\000\004\147\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\187\000\000\002\165\000\000\000\000\002\166\002\167\000\000\002\168\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\006\002\203\004\177\002f\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\201\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\000\000\000\000\000\000\004\187\000\000\002\189\000\000\000\000\002f\000\000\000\000\000\000\000\000\000\000\004\189\002\214\004\230\000\000\004\147\004\006\000\000\004\177\002f\000\000\002\221\002\197\002\216\001\007\001\b\001\t\002\165\000\000\001\n\002\166\002\167\001J\002\168\000\000\000\000\000\000\000\000\000\000\002\198\003\134\004\192\002\203\000\000\004\193\000\000\000\000\000\000\000\000\000\000\000\000\004\178\004\189\000\000\002\169\002\196\000\000\002\181\002\182\002\187\004\207\000\000\002\216\004\180\000\000\000\000\002\165\000\000\000\000\002\166\002\167\000\000\002\168\000\000\000\000\000\000\000\000\000\000\002\214\004\236\000\000\000\000\004\192\002\201\000\000\004\193\000\000\002\221\002\197\002\216\004\209\000\000\004\178\002\169\002\196\000\000\002\181\002\182\002\187\002\189\000\000\004\207\002f\002\216\004\180\002\198\003\134\000\000\000\000\000\000\000\000\000\000\004\147\000\000\000\000\000\000\000\000\000\000\004\242\000\000\002\165\000\000\000\000\002\166\002\167\000\000\002\168\002\197\001\011\000\000\000\000\004\209\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\203\000\000\000\000\000\000\000\000\002\198\003\134\000\000\002\169\002\196\002\201\002\181\002\182\002\187\000\000\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\000\000\002\189\000\000\000\000\002f\000\000\000\000\000\000\004\248\000\000\000\000\002\214\000\000\000\000\004\147\000\000\000\000\002\197\000\000\000\000\002\221\000\000\002\216\000\000\002\201\000\000\000\000\002\165\000\000\000\000\002\166\002\167\000\000\002\168\002\198\003\134\000\000\000\000\000\000\000\000\002\189\002\203\000\000\002f\002\165\000\000\000\000\002\166\002\167\000\000\002\168\007\230\000\000\004\147\002\169\003\233\000\000\002\181\002\182\002\187\000\000\000\000\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\002\169\002\196\000\000\002\181\002\182\002\187\002\214\002\201\000\000\002\203\000\000\000\000\000\000\000\000\003\234\002\221\000\000\002\216\000\000\000\000\000\000\000\000\000\000\002\189\000\000\004\254\002f\001Y\000\000\000\000\000\000\000\000\000\000\000\000\002\197\000\000\004\147\002\165\000\000\000\000\002\166\002\167\000\000\002\168\002\165\002\214\000\000\002\166\002\167\000\000\002\168\002\198\003\134\000\000\002\221\000\000\002\216\000\000\000\000\000\000\000\000\000\000\000\000\002\203\002\169\002\196\000\000\002\181\002\182\002\187\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\002\188\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\004\000\000\000\000\000\000\000\000\002\189\002\201\005\n\002f\002\197\002\214\000\000\000\000\000\000\000\000\000\000\002\197\000\000\000\000\002\221\000\000\002\216\002\189\000\000\000\000\002f\002\198\003\134\000\000\000\000\000\000\000\000\000\000\002\198\003\134\004\147\002\165\000\000\000\000\002\166\002\167\000\000\002\168\000\000\000\000\000\000\003\235\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\203\002\169\002\196\000\000\002\181\002\182\002\187\000\000\002\201\000\000\005w\005\127\000\000\000\000\000\000\002\201\000\000\000\000\000\000\002\214\000\000\000\000\000\000\000\000\002\189\000\000\005\016\002f\002\215\000\000\002\216\002\189\000\000\000\000\002f\002\197\002\214\004\147\000\000\000\000\000\000\000\000\000\000\000\000\004\147\002\221\000\000\002\216\000\000\000\000\000\000\000\000\002\198\003\134\000\000\002\165\000\000\000\000\002\166\002\167\000\000\002\168\002\165\000\000\002\203\002\166\002\167\000\000\002\168\000\000\000\000\002\203\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005v\000\000\000\000\002\169\003\233\000\000\002\181\002\182\002\187\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\002\201\000\000\000\000\000\000\002\214\000\000\000\000\000\000\000\000\000\000\000\000\002\214\000\000\002\221\000\000\002\216\002\189\003\234\005\022\002f\002\221\000\000\002\216\000\000\000\000\000\000\000\000\002\197\000\000\004\147\002\165\000\000\000\000\002\166\002\167\000\000\002\168\002\165\000\000\000\000\002\166\002\167\000\000\002\168\002\198\003\134\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\203\002\169\002\196\000\000\002\181\002\182\002\187\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\188\005\028\000\000\000\000\000\000\000\000\000\000\002\201\005\"\000\000\002\197\002\214\000\000\000\000\000\000\000\000\002\189\002\197\000\000\002f\002\221\000\000\002\216\002\189\000\000\000\000\002f\002\198\003\134\000\000\000\000\000\000\000\000\000\000\002\198\003\134\004\147\002\165\000\000\000\000\002\166\002\167\000\000\002\168\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\235\000\000\000\000\000\000\000\000\000\000\002\203\002\169\002\196\000\000\002\181\002\182\002\187\000\000\002\201\000\000\000\000\000\000\000\000\000\000\000\000\002\201\000\000\000\000\000\000\000\000\005w\005\127\000\000\000\000\002\189\000\000\005(\002f\000\000\002\214\000\000\002\189\000\000\000\000\002f\002\197\002\214\004\147\002\215\000\000\002\216\000\000\000\000\000\000\004\147\002\221\000\000\002\216\000\000\000\000\000\000\000\000\002\198\003\134\000\000\002\165\000\000\000\000\002\166\002\167\000\000\002\168\002\165\000\000\002\203\002\166\002\167\000\000\002\168\000\000\000\000\002\203\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\251\000\000\000\000\002\169\003\233\000\000\002\181\002\182\002\187\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\002\201\000\000\000\000\000\000\002\214\000\000\000\000\000\000\000\000\000\000\000\000\002\214\000\000\002\221\000\000\002\216\002\189\003\234\005.\002f\002\221\000\000\002\216\000\000\000\000\000\000\000\000\002\197\000\000\004\147\002\165\000\000\000\000\002\166\002\167\000\000\002\168\002\165\000\000\000\000\002\166\002\167\000\000\002\168\002\198\003\134\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\203\002\169\002\196\000\000\002\181\002\182\002\187\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\188\0054\000\000\000\000\000\000\000\000\000\000\002\201\005:\000\000\002\197\002\214\000\000\000\000\000\000\000\000\002\189\002\197\000\000\002f\002\221\000\000\002\216\002\189\000\000\000\000\002f\002\198\003\134\000\000\000\000\000\000\000\000\000\000\002\198\003\134\004\147\002\165\000\000\000\000\002\166\002\167\000\000\002\168\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\235\000\000\000\000\000\000\000\000\000\000\002\203\002\169\002\196\000\000\002\181\002\182\002\187\000\000\002\201\000\000\000\000\000\000\000\000\000\000\000\000\002\201\000\000\000\000\000\000\000\000\005w\005\127\000\000\000\000\002\189\000\000\005@\002f\000\000\002\214\000\000\002\189\000\000\000\000\002f\002\197\002\214\004\147\002\215\000\000\002\216\000\000\000\000\000\000\004\147\002\221\000\000\002\216\000\000\000\000\000\000\000\000\002\198\003\134\000\000\002\165\000\000\000\000\002\166\002\167\000\000\002\168\002\165\000\000\002\203\002\166\002\167\000\000\002\168\000\000\000\000\002\203\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\019\000\000\000\000\002\169\003\233\000\000\002\181\002\182\002\187\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\002\201\000\000\000\000\000\000\002\214\000\000\000\000\000\000\000\000\000\000\000\000\002\214\000\000\002\221\000\000\002\216\002\189\003\234\005F\002f\002\221\000\000\002\216\000\000\000\000\000\000\000\000\002\197\000\000\004\147\002\165\000\000\000\000\002\166\002\167\000\000\002\168\002\165\000\000\000\000\002\166\002\167\000\000\002\168\002\198\003\134\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\203\002\169\002\196\000\000\002\181\002\182\002\187\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\188\005L\000\000\000\000\000\000\000\000\000\000\002\201\005R\000\000\002\197\002\214\000\000\000\000\000\000\000\000\002\189\002\197\000\000\002f\002\221\000\000\002\216\002\189\000\000\000\000\002f\002\198\003\134\000\000\000\000\000\000\000\000\000\000\002\198\003\134\004\147\002\165\000\000\000\000\002\166\002\167\000\000\002\168\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\235\000\000\000\000\000\000\000\000\000\000\002\203\002\169\002\196\000\000\002\181\002\182\002\187\000\000\002\201\000\000\000\000\000\000\000\000\000\000\000\000\002\201\000\000\000\000\000\000\000\000\005w\005\127\000\000\000\000\002\189\000\000\005X\002f\000\000\002\214\000\000\002\189\000\000\000\000\002f\002\197\002\214\004\147\002\215\000\000\002\216\000\000\000\000\000\000\004\147\002\221\000\000\002\216\000\000\000\000\000\000\000\000\002\198\003\134\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\002\165\000\000\002\203\002\166\002\167\000\000\002\168\000\000\000\000\002\203\000\000\000\000\000\000\004\142\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\148\000\000\000\000\000\000\000\000\002\169\002\196\005u\002\181\002\182\002\187\000\000\002\201\000\000\000\000\000\000\002\214\000\000\000\000\000\000\000\000\000\000\000\000\002\214\000\000\002\221\000\000\002\216\002\189\000\000\005f\002f\002\221\004\167\002\216\000\000\000\000\000\000\000\000\002\197\000\000\004\147\002\165\000\000\000\000\002\166\002\167\000\000\002\168\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\198\003\134\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\203\002\169\002\196\000\000\002\181\002\182\002\187\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\187\005l\000\000\004\142\000\000\000\000\000\000\002\201\000\000\000\000\002\197\002\214\004\148\000\000\000\000\000\000\004\006\000\000\004\177\002f\002\221\000\000\002\216\002\189\000\000\000\000\002f\002\198\003\134\001\007\001\b\001\t\000\000\000\000\001\n\000\000\004\147\001\015\000\000\000\000\000\000\000\000\000\000\000\000\001\029\004\167\000\000\000\000\000\000\000\000\000\000\000\000\004\189\000\000\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\002\203\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\201\000\000\000\000\000\000\004\142\000\000\000\000\000\000\000\000\000\000\000\000\004\192\000\000\004\148\004\193\000\000\002\189\000\000\000\000\002f\005\135\004\178\000\000\000\000\000\000\000\000\000\000\000\000\002\214\004\147\004\207\000\000\002\216\004\180\004\187\000\000\000\000\002\221\004\000\002\216\004\001\004\002\002\167\001\027\004\003\000\000\004\167\000\000\000\000\000\000\004\006\000\000\004\177\002f\000\000\000\000\002\203\000\000\004\142\000\000\004\209\000\000\001\011\000\000\000\000\000\000\0012\004\148\000\000\000\000\000\000\000\000\000\000\000\000\005\138\000\000\000\000\000\000\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\004\189\000\000\000\000\001\012\000\000\000\000\002\214\001(\001)\000\000\000\000\001\002\000\000\004\142\004\167\002\221\000\000\002\216\000\000\000\000\004\187\000\000\004\148\000\000\000\000\000\000\000\000\000\000\000\000\005\143\005|\000\000\000\000\004\193\005}\000\000\004\006\000\000\004\177\002f\004\178\000\000\000\000\000\000\000\000\001\007\001\b\001\t\000\000\004\207\001\n\002\216\004\180\001\015\000\000\004\167\000\000\000\000\000\000\000\000\001\029\000\000\000\000\000\000\000\000\000\000\000\000\001>\000\000\000\000\000\000\000\000\004\189\000\000\004\187\001?\000\000\000\000\001@\004\209\000\000\001A\001B\005\133\000\000\000\000\000\000\000\000\000\000\000\000\004\006\000\000\004\177\002f\000\000\000\000\000\000\000\000\000\000\001\007\001\b\001\t\004\192\000\000\001\n\004\193\000\000\001P\000\000\000\000\001Y\000\000\004\178\000\000\000\000\004\187\001s\000\000\000\000\000\000\000\000\004\207\000\000\002\216\004\180\000\000\004\189\000\000\000\000\000\000\001\027\004\006\000\000\004\177\002f\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001\015\000\000\000\000\000\000\001\011\000\000\004\209\001\029\0012\000\000\000\000\004\192\000\000\000\000\004\193\000\000\000\000\000\000\000\000\000\000\000\000\004\178\004\189\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\207\001\012\002\216\004\180\000\000\001(\001)\000\000\000\000\001\002\000\000\000\000\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\000\000\004\192\000\000\000\000\004\193\000\000\000\000\001\011\000\000\004\209\000\000\004\178\004\142\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\207\004\148\002\216\004\180\000\000\000\000\001\027\004\000\005\146\004\001\004\002\002\167\000\000\004\003\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\000\000\001>\001\011\000\000\004\142\000\000\0012\004\209\000\000\001?\000\000\004\167\001@\004\148\000\000\001A\001B\005\141\000\000\004\000\005\149\004\001\004\002\002\167\000\000\004\003\000\000\000\000\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\000\000\004\142\000\000\000\000\000\000\000\000\001Y\000\000\004\167\000\000\004\148\000\000\001s\000\000\000\000\000\000\000\000\005\152\004\000\000\000\004\001\004\002\002\167\000\000\004\003\001?\000\000\000\000\001@\000\000\000\000\001A\001B\004\187\000\000\000\000\000\000\000\000\004\142\000\000\000\000\000\000\000\000\004\167\000\000\000\000\000\000\004\148\000\000\004\006\000\000\004\177\002f\000\000\005\156\001>\000\000\000\000\000\000\000\000\001Y\000\000\000\000\001?\000\000\000\000\001@\000\000\004\187\001A\001B\005\159\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\167\000\000\000\000\000\000\004\006\004\189\004\177\002f\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001Y\000\000\000\000\000\000\000\000\004\187\001s\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\192\000\000\000\000\004\193\004\006\004\189\004\177\002f\000\000\000\000\004\178\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\207\000\000\002\216\004\180\000\000\000\000\004\187\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\000\000\004\192\000\000\000\000\004\193\000\000\004\189\004\006\000\000\004\177\002f\004\178\004\142\000\000\000\000\004\209\000\000\000\000\000\000\000\000\004\207\004\148\002\216\004\180\000\000\000\000\000\000\004\000\005\161\004\001\004\002\002\167\000\000\004\003\000\000\000\000\004\192\000\000\000\000\004\193\000\000\000\000\000\000\004\189\000\000\000\000\004\178\004\142\000\000\000\000\004\209\000\000\000\000\000\000\004\167\004\207\004\148\002\216\004\180\000\000\000\000\000\000\004\000\005\164\004\001\004\002\002\167\000\000\004\003\000\000\000\000\000\000\000\000\004\192\000\000\000\000\004\193\000\000\000\000\000\000\000\000\000\000\004\142\004\178\000\000\004\209\000\000\000\000\000\000\004\167\000\000\004\148\004\207\000\000\002\216\004\180\000\000\000\000\005\167\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\187\000\000\000\000\000\000\000\000\004\142\000\000\000\000\004\209\000\000\004\167\000\000\000\000\000\000\004\148\000\000\004\006\000\000\004\177\002f\000\000\005\170\000\000\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001\015\000\000\004\187\000\000\000\000\000\000\000\000\001\029\000\000\000\000\000\000\000\000\000\000\000\000\004\167\000\000\000\000\000\000\004\006\004\189\004\177\002f\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\187\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\192\000\000\000\000\004\193\004\006\004\189\004\177\002f\000\000\000\000\004\178\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\004\207\001\015\002\216\004\180\000\000\000\000\004\187\000\000\001\029\001\027\000\000\000\000\000\000\000\000\000\000\000\000\004\192\000\000\000\000\004\193\000\000\004\189\004\006\000\000\004\177\002f\004\178\000\000\001\011\000\000\004\209\000\000\0012\000\000\000\000\004\207\000\000\002\216\004\180\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\192\000\000\000\000\004\193\001\012\000\000\000\000\004\189\001(\001)\004\178\000\000\001\002\000\000\004\209\000\000\000\000\000\000\000\000\004\207\000\000\002\216\004\180\000\000\000\000\000\000\000\000\001\027\004\000\000\000\004\001\004\002\002\167\000\000\004\003\002\165\000\000\004\192\002\166\002\167\004\193\002\168\000\000\000\000\000\000\000\000\001\011\004\178\004\142\004\209\0012\000\000\000\000\000\000\000\000\000\000\004\207\004\148\002\216\004\180\000\000\000\000\002\169\003\233\005\194\002\181\002\182\002\187\001>\000\000\000\000\000\000\000\000\001\012\000\000\000\000\001?\001(\001)\001@\000\000\001\002\001A\001B\005\176\004\000\004\209\004\001\004\002\002\167\004\167\004\003\000\000\004\000\000\000\004\001\004\002\002\167\004\000\004\003\004\001\004\002\002\167\000\000\004\003\004\142\000\000\000\000\000\000\000\000\000\000\001Y\000\000\004\142\004\148\000\000\000\000\001s\004\142\000\000\000\000\005\197\004\148\000\000\000\000\000\000\000\000\004\148\000\000\005\200\000\000\000\000\000\000\000\000\005\203\000\000\000\000\001>\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001?\000\000\004\167\001@\000\000\004\187\001A\001B\005\192\000\000\004\167\000\000\002\188\000\000\000\000\004\167\000\000\000\000\000\000\000\000\000\000\004\006\000\000\004\177\002f\000\000\000\000\000\000\002\189\000\000\000\000\002f\000\000\000\000\000\000\001Y\000\000\000\000\000\000\000\000\000\000\001s\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\000\000\004\189\000\000\000\000\000\000\000\000\004\187\000\000\000\000\000\000\000\000\000\000\004\142\tv\004\187\000\000\000\000\000\000\000\000\004\187\000\000\004\148\004\006\000\000\004\177\002f\000\000\000\000\005\207\000\000\004\006\004\192\004\177\002f\004\193\004\006\000\000\004\177\002f\000\000\004\000\004\178\004\001\004\002\002\167\000\000\004\003\000\000\002\214\000\000\004\207\000\000\002\216\004\180\004\167\000\000\000\000\002\215\004\189\002\216\004\142\000\000\000\000\000\000\000\000\000\000\004\189\000\000\000\000\004\148\000\000\004\189\000\000\000\000\tw\000\000\005\216\000\000\000\000\000\000\004\209\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\192\000\000\000\000\004\193\000\000\000\000\000\000\000\000\004\192\000\000\004\178\004\193\000\000\004\192\004\167\000\000\004\193\000\000\004\178\004\207\000\000\002\216\004\180\004\178\000\000\000\000\004\187\004\207\000\000\002\216\004\180\000\000\004\207\000\000\002\216\004\180\000\000\000\000\000\000\000\000\000\000\000\000\004\006\000\000\004\177\002f\000\000\000\000\004\000\004\209\004\001\004\002\002\167\000\000\004\003\000\000\000\000\004\209\000\000\000\000\000\000\000\000\004\209\000\000\000\000\000\000\000\000\000\000\004\142\000\000\000\000\000\000\000\000\000\000\004\187\000\000\000\000\004\148\004\189\000\000\000\000\000\000\000\000\000\000\005\219\002\165\000\000\000\000\002\166\002\167\004\006\002\168\004\177\002f\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\192\000\000\004\167\004\193\002\169\002\196\000\000\002\181\002\182\002\187\004\178\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\189\004\207\000\000\002\216\004\180\000\000\000\000\000\000\000\000\000\000\000\000\005\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\197\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\192\004\209\000\000\004\193\000\000\000\000\000\000\002\198\003\134\000\000\004\178\000\000\002\165\000\000\004\187\002\166\002\167\000\000\002\168\004\207\000\000\002\216\004\180\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\006\000\000\004\177\002f\000\000\000\000\000\000\000\000\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\000\000\004\209\000\000\002\201\000\000\000\000\000\000\000\000\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\005\255\000\000\004\189\002\189\000\000\000\000\002f\000\000\000\000\002\197\000\000\000\000\000\000\004\142\000\000\000\000\004\147\002\165\000\000\000\000\002\166\002\167\004\148\002\168\000\000\000\000\002\198\003\134\000\000\006\012\000\000\000\000\004\192\000\000\000\000\004\193\000\000\000\000\000\000\000\000\000\000\000\000\004\178\002\203\002\169\002\196\000\000\002\181\002\182\002\187\000\000\004\207\000\000\002\216\004\180\004\167\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\b\002\201\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\197\002\214\000\000\004\209\000\000\000\000\000\000\000\000\002\189\000\000\002\221\002f\002\216\000\000\000\000\000\000\000\000\002\198\003\134\000\000\000\000\004\147\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001W\000\000\000\000\002\165\000\000\004\187\002\166\002\167\000\000\002\168\000\000\000\000\000\000\000\000\000\000\000\000\002\203\000\000\000\000\000\000\000\000\004\006\000\000\004\177\002f\000\000\000\000\000\000\000\000\002\201\002\169\002\196\000\000\002\181\002\182\002\187\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\000\000\002\189\000\000\000\000\002f\000\000\000\000\000\000\002\214\000\000\000\000\006\018\004\142\004\189\004\147\000\000\000\000\002\221\000\000\002\216\002\197\004\148\000\000\000\000\000\000\000\000\000\000\000\000\006\021\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\198\003\134\000\000\000\000\002\203\000\000\004\192\000\000\000\000\004\193\000\000\000\000\000\000\000\000\000\000\001\011\004\178\004\167\000\000\001\007\001\b\001\t\000\000\000\000\001\n\004\207\002\165\002\216\004\180\002\166\002\167\000\000\002\168\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\214\000\000\001\012\000\000\002\201\000\000\001(\001)\000\000\002\221\001\002\002\216\000\000\002\169\002\196\004\209\002\181\002\182\002\187\000\000\002\189\000\000\004\000\002f\004\001\004\002\002\167\000\000\004\003\000\000\000\000\000\000\000\000\004\147\000\000\000\000\000\000\004\187\006\027\000\000\000\000\000\000\004\142\000\000\000\000\000\000\000\000\002\197\000\000\000\000\000\000\004\148\000\000\004\006\000\000\004\177\002f\000\000\006\030\000\000\002\203\000\000\000\000\000\000\002\198\003\134\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\000\000\001\011\004\167\000\000\000\000\000\000\000\000\004\189\000\000\000\000\000\000\000\000\000\000\000\000\002\214\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\221\000\000\002\216\002\201\001Y\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\004\192\000\000\n\026\004\193\000\000\002\189\000\000\000\000\002f\000\000\004\178\000\000\001\007\001\b\001\t\000\000\000\000\001\n\004\147\004\207\001p\002\216\004\180\002\165\000\000\004\187\002\166\002\167\000\000\002\168\002\165\000\000\000\000\002\166\002\167\000\000\002\168\000\000\000\000\000\000\000\000\004\006\000\000\004\177\002f\002\203\000\000\000\000\000\000\004\209\002\169\002\196\000\000\002\181\002\182\002\187\000\000\002\169\002\196\000\000\002\181\002\182\002\187\001?\000\000\000\000\001@\000\000\000\000\001A\001B\000\000\000\000\000\000\000\000\006$\000\000\004\189\000\000\000\000\000\000\002\214\006/\000\000\002\197\000\000\000\000\000\000\000\000\000\000\002\221\002\197\002\216\000\000\000\000\000\000\000\000\000\000\n\027\000\000\000\000\002\198\003\134\000\000\000\000\000\000\000\000\004\192\002\198\003\134\004\193\000\000\000\000\000\000\000\000\000\000\001\011\004\178\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\207\002\165\002\216\004\180\002\166\002\167\000\000\002\168\000\000\002\165\000\000\000\000\002\166\002\167\000\000\002\168\000\000\001\012\000\000\002\201\000\000\001(\001)\000\000\000\000\001\002\002\201\000\000\002\169\002\196\004\209\002\181\002\182\002\187\000\000\002\189\002\169\002\196\002f\002\181\002\182\002\187\002\189\000\000\000\000\002f\000\000\000\000\004\147\000\000\000\000\000\000\000\000\0068\000\000\004\147\000\000\000\000\000\000\000\000\000\000\006A\002\197\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\197\000\000\000\000\000\000\000\000\002\203\000\000\000\000\000\000\002\198\003\134\000\000\002\203\000\000\000\000\000\000\000\000\002\198\003\134\001?\000\000\000\000\001@\000\000\000\000\001A\001B\000\000\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\002\165\000\000\000\000\002\166\002\167\002\214\002\168\000\000\000\000\000\000\000\000\000\000\002\214\004\142\002\221\000\000\002\216\002\201\001Y\000\000\000\000\002\221\004\148\002\216\000\000\002\201\000\000\002\169\002\196\006]\002\181\002\182\002\187\002\189\000\000\000\000\002f\000\000\000\000\000\000\000\000\002\189\000\000\000\000\002f\000\000\004\147\000\000\000\000\000\000\000\000\000\000\006H\000\000\004\147\004\167\000\000\000\000\000\000\000\000\000\000\002\197\000\000\004\000\000\000\004\001\004\002\002\167\004\000\004\003\004\001\004\002\002\167\002\203\004\003\000\000\000\000\000\000\002\198\003\134\000\000\002\203\000\000\004\142\000\000\000\000\000\000\000\000\004\142\000\000\000\000\000\000\004\148\000\000\000\000\000\000\000\000\004\148\000\000\006_\000\000\000\000\000\000\000\000\006d\000\000\000\000\000\000\000\000\002\214\000\000\000\000\000\000\000\000\000\000\004\187\000\000\002\214\002\221\000\000\002\216\000\000\002\201\000\000\000\000\004\167\002\221\000\000\002\216\000\000\004\167\004\006\000\000\004\177\002f\000\000\000\000\000\000\002\189\000\000\004\000\002f\004\001\004\002\002\167\n\211\004\003\000\000\000\000\000\000\000\000\004\147\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\142\000\000\000\000\000\000\000\000\000\000\000\000\004\189\000\000\004\148\000\000\000\000\000\000\000\000\000\000\000\000\006g\000\000\002\203\n\212\000\000\n\213\000\000\000\000\000\000\004\187\000\000\000\000\000\000\000\000\004\187\000\000\000\000\000\000\000\000\000\000\000\000\004\192\000\000\000\000\004\193\004\006\004\167\004\177\002f\000\000\004\006\004\178\004\177\002f\000\000\000\000\000\000\000\000\002\214\000\000\004\207\n\214\002\216\004\180\000\000\000\000\000\000\002\221\000\000\002\216\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\189\000\000\000\000\000\000\000\000\004\189\000\000\000\000\000\000\004\209\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\215\000\000\000\000\000\000\000\000\000\000\004\187\000\000\000\000\000\000\000\000\004\192\000\000\000\000\004\193\000\000\004\192\n\216\n\217\004\193\n\218\004\178\004\006\000\000\004\177\002f\004\178\000\000\000\000\000\000\004\207\000\000\002\216\004\180\000\000\004\207\000\000\002\216\004\180\000\000\002\165\000\000\000\000\002\166\002\167\000\000\002\168\002\165\n\219\000\000\002\166\002\167\000\000\002\168\000\000\000\000\000\000\000\000\004\189\000\000\004\209\000\000\000\000\000\000\000\000\004\209\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\002\169\002\196\n\220\002\181\002\182\002\187\n\221\000\000\000\000\n\223\000\000\000\000\n\229\n\231\004\192\000\000\000\000\004\193\006r\000\000\000\000\000\000\000\000\000\000\004\178\006w\n\243\002\197\000\000\000\000\000\000\000\000\000\000\004\207\002\197\002\216\004\180\002\165\000\000\000\000\002\166\002\167\000\000\002\168\002\198\003\134\000\000\n\244\000\000\000\000\000\000\002\198\003\134\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\209\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\165\000\000\000\000\002\166\002\167\000\000\002\168\000\000\000\000\000\000\002\201\006\131\000\000\000\000\000\000\000\000\000\000\002\201\000\000\000\000\002\197\000\000\000\000\000\000\000\000\000\000\002\189\002\169\002\196\002f\002\181\002\182\002\187\002\189\000\000\000\000\002f\002\198\003\134\004\147\000\000\000\000\000\000\000\000\000\000\000\000\004\147\000\000\000\000\000\000\000\000\000\000\006\139\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\197\000\000\000\000\002\165\000\000\002\203\002\166\002\167\000\000\002\168\000\000\000\000\002\203\000\000\000\000\000\000\000\000\002\198\003\134\000\000\002\201\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\169\002\196\000\000\002\181\002\182\002\187\002\189\000\000\000\000\002f\000\000\002\214\000\000\000\000\000\000\000\000\000\000\000\000\002\214\004\147\002\221\000\000\002\216\000\000\000\000\006\147\000\000\002\221\000\000\002\216\000\000\002\201\000\000\000\000\002\197\000\000\000\000\002\165\000\000\000\000\002\166\002\167\000\000\002\168\000\000\000\000\002\203\002\189\000\000\000\000\002f\002\198\003\134\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\147\000\000\000\000\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\000\000\000\000\002\165\000\000\000\000\002\166\002\167\000\000\002\168\002\214\000\000\000\000\000\000\000\000\002\203\000\000\006\154\000\000\002\221\000\000\002\216\000\000\002\201\000\000\000\000\002\197\000\000\000\000\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\002\189\000\000\000\000\002f\002\198\003\134\000\000\000\000\000\000\000\000\000\000\000\000\002\214\004\147\000\000\000\000\006\160\000\000\000\000\000\000\000\000\002\221\000\000\002\216\000\000\002\197\000\000\000\000\002\165\000\000\000\000\002\166\002\167\000\000\002\168\000\000\000\000\000\000\000\000\000\000\002\203\000\000\002\198\003\134\000\000\000\000\000\000\000\000\002\201\000\000\000\000\000\000\000\000\000\000\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\002\189\000\000\002\165\002f\000\000\002\166\002\167\000\000\002\168\000\000\000\000\000\000\002\214\004\147\000\000\000\000\006\165\000\000\000\000\000\000\000\000\002\221\002\201\002\216\000\000\002\197\000\000\000\000\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\002\189\000\000\002\203\002f\002\198\003\134\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\147\000\000\000\000\006\172\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\002\197\000\000\000\000\002\165\000\000\000\000\002\166\002\167\000\000\002\168\000\000\000\000\000\000\002\214\000\000\002\203\000\000\002\198\003\134\000\000\000\000\000\000\002\221\002\201\002\216\000\000\000\000\001\227\000\000\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\002\189\000\000\002\165\002f\000\000\002\166\002\167\000\000\002\168\000\000\000\000\000\000\002\214\004\147\000\000\000\000\006\191\000\000\000\000\000\000\000\000\002\221\002\201\002\216\000\000\002\197\000\000\000\000\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\002\189\000\000\002\203\002f\002\198\003\134\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\147\000\000\000\000\006\205\000\000\000\000\001\011\000\000\000\000\000\000\000\000\000\000\002\197\000\000\000\000\002\165\000\000\000\000\002\166\002\167\004\000\002\168\004\001\004\002\002\167\002\214\004\003\002\203\000\000\002\198\003\134\000\000\000\000\001\012\002\221\002\201\002\216\001(\001)\000\000\004\142\001\002\002\169\002\196\000\000\002\181\002\182\002\187\000\000\004\148\000\000\002\189\000\000\000\000\002f\000\000\006\243\000\000\000\000\000\000\000\000\000\000\000\000\002\214\004\147\000\000\000\000\006\237\000\000\000\000\000\000\000\000\002\221\002\201\002\216\000\000\002\197\004\000\000\000\004\001\004\002\002\167\004\167\004\003\000\000\000\000\000\000\000\000\000\000\002\189\000\000\002\203\002f\002\198\003\134\000\000\000\000\004\142\000\000\000\000\000\000\000\000\004\147\000\000\000\000\001?\004\148\000\000\001@\000\000\000\000\001A\001B\006\246\000\000\000\000\000\000\002\165\000\000\000\000\002\166\002\167\000\000\002\168\000\000\000\000\000\000\002\214\000\000\002\203\000\000\000\000\000\000\000\000\000\000\000\000\002\221\002\201\002\216\004\167\001h\000\000\004\187\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\002\189\000\000\000\000\002f\000\000\004\006\000\000\004\177\002f\000\000\000\000\000\000\002\214\004\147\000\000\000\000\006\254\000\000\000\000\000\000\000\000\002\221\000\000\002\216\002\165\002\197\000\000\002\166\002\167\000\000\002\168\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\203\004\189\002\198\003\134\000\000\000\000\004\187\000\000\000\000\000\000\000\000\002\169\003\233\000\000\002\181\002\182\002\187\000\000\000\000\000\000\000\000\000\000\004\006\000\000\004\177\002f\000\000\000\000\000\000\000\000\000\000\004\192\000\000\000\000\004\193\000\000\002\214\000\000\000\000\000\000\000\000\004\178\000\000\000\000\000\000\002\221\002\201\002\216\000\000\000\000\004\207\002\165\002\216\004\180\002\166\002\167\000\000\002\168\004\189\000\000\000\000\000\000\002\189\000\000\000\000\002f\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\147\000\000\000\000\002\169\002\196\004\209\002\181\002\182\002\187\000\000\000\000\000\000\000\000\004\192\002\165\000\000\004\193\002\166\002\167\000\000\002\168\000\000\000\000\004\178\000\000\000\000\000\000\002\203\007\003\000\000\000\000\002\188\004\207\000\000\002\216\004\180\000\000\002\197\000\000\000\000\000\000\002\169\002\196\000\000\002\181\002\182\002\187\002\189\000\000\000\000\002f\000\000\000\000\000\000\002\198\003\134\000\000\000\000\000\000\000\000\000\000\000\000\004\209\002\214\000\000\000\000\007\n\000\000\000\000\000\000\000\000\000\000\002\221\000\000\002\216\002\197\000\000\000\000\002\165\000\000\000\000\002\166\002\167\000\000\002\168\000\000\000\000\000\000\tv\000\000\000\000\000\000\002\198\003\134\000\000\000\000\000\000\000\000\002\201\000\000\000\000\000\000\000\000\000\000\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\002\189\000\000\002\165\002f\000\000\002\166\002\167\000\000\002\168\002\214\000\000\000\000\000\000\004\147\000\000\000\000\007\028\000\000\002\215\000\000\002\216\000\000\002\201\000\000\000\000\002\197\000\000\000\000\000\000\002\169\002\196\000\000\002\181\002\182\002\187\t\127\000\000\000\000\002\189\000\000\002\203\002f\002\198\003\134\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\147\000\000\000\000\007!\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\197\000\000\000\000\002\165\000\000\000\000\002\166\002\167\000\000\002\168\000\000\000\000\000\000\002\214\000\000\002\203\000\000\002\198\003\134\000\000\000\000\000\000\002\221\002\201\002\216\000\000\000\000\000\000\000\000\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\002\189\000\000\002\165\002f\000\000\002\166\002\167\000\000\002\168\000\000\000\000\000\000\002\214\004\147\000\000\000\000\007,\000\000\000\000\000\000\000\000\002\221\002\201\002\216\000\000\002\197\000\000\000\000\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\002\189\000\000\002\203\002f\002\198\003\134\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\147\000\000\000\000\0075\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\002\197\000\000\000\000\002\165\000\000\000\000\002\166\002\167\000\000\002\168\000\000\000\000\000\000\002\214\000\000\002\203\000\000\002\198\003\134\000\000\000\000\000\000\002\221\002\201\002\216\000\000\000\000\001\231\000\000\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\002\189\000\000\002\165\002f\000\000\002\166\002\167\000\000\002\168\000\000\000\000\000\000\002\214\004\147\000\000\000\000\007@\000\000\000\000\000\000\000\000\002\221\002\201\002\216\000\000\002\197\000\000\000\000\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\002\189\000\000\002\203\002f\002\198\003\134\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\147\000\000\000\000\007K\000\000\000\000\001\011\000\000\000\000\000\000\000\000\000\000\002\197\000\000\000\000\002\165\000\000\000\000\002\166\002\167\004\000\002\168\004\001\004\002\002\167\002\214\004\003\002\203\000\000\002\198\003\134\000\000\000\000\001\012\002\221\002\201\002\216\001(\001)\000\000\004\142\001\002\002\169\002\196\000\000\002\181\002\182\002\187\000\000\004\148\000\000\002\189\000\000\000\000\002f\000\000\007o\000\000\000\000\000\000\000\000\000\000\000\000\002\214\004\147\000\000\000\000\007W\000\000\000\000\000\000\000\000\002\221\002\201\002\216\000\000\002\197\004\000\000\000\004\001\004\002\002\167\004\167\004\003\000\000\000\000\000\000\000\000\000\000\002\189\000\000\002\203\002f\002\198\003\134\000\000\000\000\004\142\000\000\000\000\000\000\000\000\004\147\000\000\000\000\001?\004\148\000\000\001@\000\000\000\000\001A\001B\007t\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\000\000\000\000\000\000\000\000\002\214\000\000\002\203\000\000\000\000\000\000\000\000\000\000\004\142\002\221\002\201\002\216\004\167\001h\000\000\004\187\000\000\004\148\000\000\000\000\000\000\000\000\000\000\000\000\007\136\000\000\002\189\000\000\000\000\002f\000\000\004\006\000\000\004\177\002f\000\000\000\000\000\000\002\214\004\147\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\221\000\000\002\216\004\167\000\000\000\000\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001\015\000\000\000\000\002\203\004\189\000\000\000\000\001\029\000\000\004\187\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\006\000\000\004\177\002f\000\000\000\000\000\000\000\000\000\000\004\192\000\000\000\000\004\193\000\000\002\214\000\000\001\007\001\b\001\t\004\178\000\000\001\n\004\187\002\221\tN\002\216\000\000\000\000\004\207\000\000\002\216\004\180\000\000\000\000\000\000\000\000\004\189\000\000\004\006\000\000\004\177\002f\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\000\000\001\027\000\000\000\000\000\000\000\000\000\000\004\209\000\000\000\000\000\000\000\000\004\142\000\000\000\000\004\192\000\000\000\000\004\193\000\000\001\011\004\148\000\000\004\189\0012\004\178\000\000\000\000\007\215\000\000\000\000\000\000\000\000\000\000\004\207\000\000\002\216\004\180\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\012\000\000\000\000\tP\001(\001)\004\192\004\167\001\002\004\193\000\000\000\000\000\000\000\000\000\000\000\000\004\178\004\209\000\000\000\000\000\000\000\000\001\011\000\000\000\000\004\207\000\000\002\216\004\180\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\165\000\000\000\000\002\166\002\167\000\000\002\168\000\000\000\000\000\000\000\000\tS\000\000\000\000\000\000\001(\001)\004\209\000\000\001\002\001\005\000\000\000\000\000\000\000\000\000\000\001>\002\169\002\196\004\187\002\181\002\182\002\187\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\007\201\000\000\000\000\004\006\000\000\004\177\002f\000\000\000\000\000\000\007\234\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\197\000\000\000\000\002\165\000\000\000\000\002\166\002\167\001Y\002\168\000\000\000\000\000\000\000\000\001s\000\000\000\000\002\198\003\134\000\000\004\189\000\000\001?\000\000\000\000\tV\000\000\000\000\001A\001B\002\169\002\196\000\000\002\181\002\182\002\187\004\000\000\000\004\001\004\002\002\167\b\161\004\003\tZ\000\000\tX\000\000\000\000\000\000\000\000\004\192\000\000\000\000\004\193\000\000\007\240\000\000\001Y\000\000\000\000\004\178\002\201\000\000\000\000\002\197\006J\000\000\000\000\000\000\004\207\002\165\002\216\004\180\002\166\002\167\000\000\002\168\002\189\000\000\000\000\002f\002\198\003\134\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\147\000\000\000\000\000\000\000\000\000\000\000\000\002\169\002\196\004\209\002\181\002\182\002\187\000\000\000\000\002\165\000\000\000\000\002\166\002\167\000\000\002\168\000\000\000\000\000\000\000\000\000\000\002\203\000\000\000\000\000\000\000\000\b\n\000\000\000\000\002\201\000\000\000\000\000\000\000\000\000\000\002\197\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\002\189\000\000\000\000\002f\000\000\000\000\000\000\002\198\003\134\000\000\000\000\000\000\002\214\004\147\000\000\000\000\b\017\004\005\000\000\000\000\000\000\002\221\000\000\002\216\000\000\002\197\004\000\000\000\004\001\004\002\002\167\000\000\004\003\004\006\000\000\004\177\002f\000\000\000\000\000\000\002\203\000\000\002\198\003\134\000\000\000\000\004\142\000\000\000\000\000\000\000\000\002\201\000\000\000\000\000\000\004\148\000\000\000\000\000\000\000\000\000\000\000\000\b;\000\000\000\000\000\000\000\000\002\189\002\165\000\000\002f\002\166\002\167\000\000\002\168\006L\002\214\000\000\000\000\000\000\004\147\000\000\000\000\000\000\000\000\002\221\002\201\002\216\004\167\001\007\001\b\001\t\000\000\000\000\001\n\002\169\002\180\001\015\002\181\002\182\002\187\000\000\002\189\000\000\001\029\002f\000\000\002\203\000\000\004\178\000\000\001\007\001\b\001\t\000\000\004\147\001\n\000\000\004\179\001\015\002\216\004\180\000\000\000\000\000\000\000\000\001\029\000\000\000\000\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001\015\000\000\000\000\002\203\002\214\000\000\000\000\001\029\000\000\004\187\000\000\000\000\000\000\002\221\000\000\002\216\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\006\000\000\004\177\002f\000\000\000\000\000\000\000\000\000\000\000\000\001\027\000\000\000\000\000\000\002\214\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\221\000\000\002\216\002\188\000\000\000\000\001\011\000\000\000\000\001\027\0012\000\000\000\000\004\189\000\000\000\000\000\000\000\000\000\000\002\189\000\000\000\000\002f\000\000\000\000\001\007\001\b\001\t\001\011\001\027\001\n\000\000\0012\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\000\000\004\192\000\000\000\000\004\193\000\000\001\011\000\000\000\000\000\000\0012\004\178\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\004\207\001\002\002\216\004\180\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001\015\001\012\000\000\000\000\000\000\001(\001)\001\029\000\000\001\002\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\004\209\000\000\001\015\002\214\000\000\001>\000\000\000\000\000\000\001\029\000\000\000\000\002\215\001?\002\216\000\000\001@\000\000\000\000\001A\001B\bK\000\000\000\000\000\000\000\000\000\000\001>\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001?\000\000\001\011\001@\000\000\000\000\001A\001B\bx\000\000\000\000\000\000\001>\001Y\000\000\000\000\000\000\000\000\000\000\001s\001?\000\000\000\000\001@\001\027\000\000\001A\001B\b\132\001\012\000\000\000\000\000\000\001(\001)\001Y\000\000\001\002\000\000\000\000\n\029\001s\000\000\001\011\001\027\000\000\000\000\0012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001Y\000\000\000\000\000\000\000\000\000\000\001s\000\000\001\011\000\000\000\000\000\000\0012\000\000\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\004\000\001\002\004\001\004\002\002\167\004\000\004\003\004\001\004\002\002\167\000\000\004\003\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\004\142\001\002\000\000\000\000\001?\004\142\000\000\001@\000\000\004\148\001A\001B\000\000\000\000\004\148\000\000\b\213\000\000\000\000\000\000\000\000\b\216\000\000\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001\015\000\000\000\000\000\000\001>\000\000\n\027\001\029\000\000\004\167\000\000\000\000\001?\000\000\004\167\001@\000\000\000\000\001A\001B\b\158\000\000\000\000\000\000\001>\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\b\174\000\000\004\000\000\000\004\001\004\002\002\167\001Y\004\003\000\000\000\000\000\000\000\000\001s\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\142\000\000\000\000\000\000\000\000\001Y\000\000\004\187\000\000\004\148\000\000\001s\004\187\000\000\000\000\001\027\b\231\000\000\000\000\000\000\000\000\000\000\000\000\004\006\000\000\004\177\002f\000\000\004\006\000\000\004\177\002f\000\000\000\000\001\011\000\000\000\000\000\000\0012\000\000\000\000\000\000\004\167\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\000\000\004\189\000\000\001\012\000\000\000\000\004\189\001(\001)\000\000\000\000\001\002\004\142\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\148\000\000\000\000\000\000\000\000\000\000\000\000\b\234\000\000\000\000\004\192\000\000\000\000\004\193\000\000\004\192\000\000\000\000\004\193\000\000\004\178\000\000\000\000\004\187\000\000\004\178\000\000\000\000\000\000\004\207\000\000\002\216\004\180\004\167\004\207\000\000\002\216\004\180\000\000\004\006\000\000\004\177\002f\000\000\000\000\000\000\001>\000\000\001\007\001\b\001\t\000\000\000\000\001\n\001?\000\000\001\015\001@\000\000\004\209\001A\001B\b\227\001\029\004\209\000\000\000\000\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\004\189\000\000\000\000\000\000\000\000\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\004\142\001Y\000\000\000\000\000\000\004\187\000\000\001s\000\000\004\148\000\000\000\000\000\000\004\142\000\000\000\000\b\247\004\192\000\000\000\000\004\193\004\006\004\148\004\177\002f\000\000\000\000\004\178\000\000\b\250\000\000\000\000\000\000\000\000\000\000\000\000\004\207\000\000\002\216\004\180\000\000\000\000\004\167\000\000\000\000\001\027\000\000\000\000\000\000\000\000\004\000\000\000\004\001\004\002\002\167\004\167\004\003\004\189\000\000\000\000\000\000\000\000\000\000\000\000\001\011\000\000\004\209\000\000\0012\000\000\004\142\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\148\000\000\000\000\000\000\000\000\000\000\000\000\t\015\004\192\000\000\000\000\004\193\001\012\000\000\000\000\000\000\001(\001)\004\178\000\000\001\002\000\000\000\000\004\187\000\000\000\000\000\000\004\207\000\000\002\216\004\180\000\000\000\000\004\167\000\000\000\000\004\187\000\000\000\000\004\006\000\000\004\177\002f\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\004\006\001\015\004\177\002f\000\000\004\209\000\000\000\000\001\029\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\189\001>\000\000\001\007\001\b\001\t\000\000\000\000\001\n\001?\000\000\001\152\001@\004\189\000\000\001A\001B\b\245\004\187\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\007\001\b\001\t\004\192\000\000\001\n\004\193\004\006\tN\004\177\002f\000\000\000\000\004\178\000\000\000\000\004\192\001Y\000\000\004\193\000\000\000\000\004\207\001s\002\216\004\180\004\178\000\000\001\027\000\000\000\000\000\000\000\000\000\000\000\000\004\207\000\000\002\216\004\180\000\000\000\000\000\000\000\000\004\189\000\000\000\000\000\000\001\011\000\000\000\000\000\000\0012\004\209\000\000\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\000\000\000\000\004\209\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\192\001\012\004\142\004\193\000\000\001(\001)\001\011\000\000\001\002\004\178\004\148\tP\000\000\000\000\000\000\000\000\000\000\t\018\004\207\000\000\002\216\004\180\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\001\011\000\000\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\004\142\004\167\000\000\000\000\000\000\000\000\004\209\000\000\000\000\004\148\000\000\000\000\000\000\000\000\000\000\tS\t\022\000\000\000\000\001(\001)\000\000\001>\001\002\001\005\000\000\000\000\000\000\000\000\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\t\r\000\000\000\000\000\000\004\167\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001\015\000\000\000\000\000\000\000\000\000\000\000\000\001\029\000\000\000\000\004\187\000\000\001?\000\000\001Y\001@\000\000\000\000\001A\001B\001s\000\000\001\007\001\b\001\t\000\000\004\006\001\n\004\177\002f\001\015\000\000\000\000\000\000\000\000\000\000\001?\001\029\000\000\tV\000\000\000\000\001A\001B\000\000\000\000\000\000\001Y\000\000\000\000\000\000\004\187\000\000\000\000\000\000\b\161\000\000\tY\000\000\tX\000\000\000\000\004\189\000\000\000\000\000\000\000\000\004\006\000\000\004\177\002f\001Y\000\000\000\000\000\000\000\000\000\000\001\027\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\192\000\000\000\000\004\193\001\011\000\000\000\000\000\000\0012\000\000\004\178\004\189\000\000\000\000\000\000\001\027\000\000\000\000\000\000\004\207\000\000\002\216\004\180\000\000\000\000\000\000\002\165\000\000\000\000\002\166\002\167\001\012\002\168\000\000\001\011\001(\001)\000\000\0012\001\002\000\000\004\192\000\000\000\000\004\193\000\000\000\000\000\000\000\000\004\209\000\000\004\178\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\004\207\001\012\002\216\004\180\000\000\001(\001)\000\000\000\000\001\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\252\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\002\197\000\000\001\015\004\209\000\000\000\000\000\000\000\000\001>\001\029\000\000\000\000\000\000\000\000\000\000\000\000\001?\002\198\003\134\001@\000\000\000\000\001A\001B\t\231\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\165\000\000\001>\002\166\002\167\000\000\002\168\000\000\002\165\000\000\001?\002\166\002\167\001@\002\168\001Y\001A\001B\t\241\000\000\000\000\001s\000\000\000\000\000\000\002\201\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\002\169\002\196\000\000\002\181\002\182\002\187\002\189\000\000\001\027\002f\001Y\000\000\000\000\001\007\001\b\001\t\001s\n\011\001\n\004\147\000\000\001\015\000\000\000\000\000\000\n\015\002\197\001\011\001\029\000\000\000\000\0012\000\000\002\165\002\197\000\000\002\166\002\167\000\000\002\168\000\000\000\000\000\000\002\198\003\134\000\000\002\203\000\000\000\000\000\000\000\000\002\198\003\134\000\000\001\012\000\000\000\000\000\000\001(\001)\002\169\002\213\001\002\002\181\002\182\002\187\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001\015\000\000\000\000\000\000\000\000\000\000\002\214\001\029\000\000\000\000\000\000\002\201\000\000\000\000\000\000\002\221\000\000\002\216\000\000\002\201\000\000\000\000\001\027\000\000\000\000\000\000\000\000\002\189\000\000\000\000\002f\001\007\001\b\001\t\000\000\002\189\001\n\000\000\002f\001\015\004\147\001\011\001>\000\000\000\000\0012\001\029\000\000\004\147\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\n#\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\203\001\012\000\000\000\000\000\000\001(\001)\000\000\002\203\001\002\001\027\000\000\002\188\000\000\000\000\000\000\000\000\000\000\001Y\000\000\000\000\000\000\000\000\000\000\001s\000\000\000\000\000\000\002\189\001\011\000\000\002f\000\000\0012\000\000\000\000\002\214\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\214\002\221\000\000\002\216\000\000\001\027\000\000\000\000\000\000\002\221\000\000\002\216\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\001>\000\000\000\000\001\011\000\000\000\000\000\000\0012\001?\000\000\000\000\001@\000\000\000\000\001A\001B\n\251\004\000\000\000\004\001\004\002\002\167\004\000\004\003\004\001\004\002\002\167\000\000\004\003\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\004\142\001\002\002\214\000\000\000\000\004\142\001Y\000\000\000\000\004\148\000\000\002\215\001s\002\216\004\148\000\000\011~\000\000\001>\000\000\000\000\011\128\000\000\000\000\000\000\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\011 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\167\000\000\001\007\001\b\001\t\004\167\000\000\001\n\000\000\000\000\001\015\000\000\000\000\000\000\000\000\001>\000\000\001\029\000\000\001Y\000\000\000\000\000\000\001?\000\000\001s\001@\000\000\000\000\001A\001B\011u\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\165\000\000\000\000\002\166\002\167\000\000\002\168\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\000\000\000\000\001Y\000\000\004\187\000\000\000\000\000\000\001s\004\187\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\004\006\006\217\004\177\002f\000\000\004\006\000\000\004\177\002f\006\226\000\000\001\027\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\002\197\000\000\000\000\000\000\000\000\001\011\000\000\000\000\000\000\0012\000\000\004\189\000\000\004\142\006\227\000\000\004\189\002\198\002\230\000\000\000\000\000\000\004\148\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\012\007\244\000\000\000\000\001(\001)\000\000\000\000\001\002\004\192\000\000\000\000\004\193\000\000\004\192\000\000\000n\004\193\000\000\004\178\000\000\000\000\000\000\004\167\004\178\000\000\000\000\000\000\004\207\002\201\002\216\004\180\000\000\004\207\000\000\002\216\004\180\004\005\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\189\000\000\000\000\002f\000\000\000\000\000\000\000\000\006\229\000\000\004\177\002f\002\136\004\209\000\000\000\000\000\000\000\000\004\209\001>\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\000\000\000\000\000\000\004\187\002\165\002\203\000\000\002\166\002\167\000\000\002\168\000\000\000\000\000\000\000\000\000\000\006\220\000\000\000\000\004\006\000\000\004\177\002f\000\000\000\000\000\000\000\000\001Y\000\000\000\000\000\000\002\169\002\196\001\248\002\181\002\182\002\187\000\000\000\000\000\000\000\000\002\214\003\025\000\000\000\000\000\000\000\000\000\000\000\000\004\178\002\221\000\000\002\216\000\000\000\000\004\189\000\000\000\000\004\179\000\000\002\216\004\180\000\000\000\000\000\000\002\197\000\000\000\000\000\000\000\000\002\165\000\000\000\000\002\166\002\167\000\000\002\168\000\000\000\000\000\000\000\000\000\000\002\198\003\004\000\000\000\000\000\000\000\000\007\246\000\000\002\165\000\000\000\000\002\166\002\167\004\178\002\168\002\169\002\196\000\000\002\181\002\182\002\187\000\000\004\207\000\000\002\216\004\180\003\022\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\002\201\000\000\003\002\000\000\000\000\002\197\000\000\000\000\004\209\004\000\000\000\004\001\004\002\002\167\000\000\004\003\002\189\000\000\000\000\002f\000\000\000\000\002\198\003\004\000\000\002\197\000\000\000\000\000\000\004\142\002\165\000\000\000\000\002\166\002\167\000\000\002\168\000\000\004\148\000\000\000\000\000\000\002\198\003\004\004\000\000\000\004\001\004\002\002\167\007O\004\003\000\000\000\000\000\000\000\000\000\000\002\203\002\169\002\196\000\000\002\181\002\182\002\187\000\000\004\142\000\000\002\201\000\000\003\006\000\000\000\000\004\167\000\000\004\148\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\189\000\000\007C\002f\002\201\000\000\000\000\000\000\000\000\002\197\002\214\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\221\002\189\002\216\000\000\002f\004\167\000\000\002\198\003\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\203\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\004\187\000\000\001\015\000\000\000\000\000\000\000\000\000\000\000\000\001\029\000\000\002\203\000\000\000\000\000\000\000\000\004\006\000\000\004\177\002f\000\000\002\201\000\000\000\000\000\000\000\000\000\000\002\214\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\187\002\221\002\189\002\216\002\165\002f\000\000\002\166\002\167\000\000\002\168\000\000\002\214\000\000\000\000\000\000\004\006\004\189\004\177\002f\000\000\002\221\000\000\002\216\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\000\000\000\000\002\203\000\000\001\027\002\165\000\000\000\000\002\166\002\167\007Q\002\168\004\189\000\000\000\000\000\000\000\000\004\178\000\000\000\000\000\000\000\000\000\000\001\011\000\000\002\197\004\207\0012\002\216\004\180\000\000\000\000\002\169\002\196\000\000\002\181\002\182\002\187\002\214\000\000\000\000\000\000\002\198\003\134\000\000\007E\000\000\002\221\000\000\002\216\001\012\000\000\004\178\000\000\001(\001)\004\209\000\000\001\002\000\000\000\000\004\207\000\000\002\216\004\180\000\000\002\197\000\000\000\000\002\165\000\000\000\000\002\166\002\167\000\000\002\168\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\198\003\157\000\000\002\201\000\000\000\000\000\000\000\000\004\209\000\000\000\000\000\000\000\000\002\169\002\196\000\000\002\181\002\182\002\187\002\189\000\000\000\000\002f\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001>\006\247\000\000\000\000\001\007\001\b\001\t\000\000\001?\001\n\000\000\001@\001\015\002\201\001A\001B\002\197\000\000\000\000\001\029\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\203\002\189\000\000\000\000\002f\002\198\003\220\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001Y\000\000\000\000\000\000\000\000\000\000\004'\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\000\000\000\000\000\000\000\000\003\167\002\214\000\000\000\000\000\000\000\000\002\203\000\000\004\142\000\000\002\221\000\000\002\216\000\000\002\201\000\000\000\000\004\148\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\001\027\000\000\006P\000\000\002\189\000\000\000\000\002f\004\000\000\000\004\001\004\002\002\167\004\142\004\003\000\000\002\214\000\000\000\000\001\011\000\000\000\000\004\148\0012\004\167\002\221\000\000\002\216\000\000\000\000\000\000\000\000\000\000\006O\000\000\000\000\003\228\007%\000\000\000\000\000\000\000\000\000\000\000\000\002\203\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\004\167\000\000\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\142\000\000\002\214\000\000\000\000\000\000\004\187\000\000\000\000\004\148\000\000\002\221\000\000\002\216\000\000\000\000\000\000\000\000\000\000\000\000\005\224\000\000\004\006\000\000\004\177\002f\000\000\000\000\000\000\000\000\000\000\000\000\001>\000\000\000\000\002\165\000\000\004\187\002\166\002\167\001?\002\168\004\167\001@\000\000\000\000\001A\001B\000\000\000\000\000\000\000\000\004\005\004\006\000\000\004\177\002f\000\000\004\189\000\000\000\000\000\000\002\169\002\196\000\000\002\181\002\182\002\187\004\006\000\000\004\177\002f\000\000\002\165\000\000\001Y\005q\002\167\000\000\002\168\000\000\004)\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\189\000\000\005\226\000\000\000\000\000\000\000\000\002\197\000\000\004\178\000\000\002\169\002\196\004\187\002\181\002\182\002\187\000\000\004\207\000\000\002\216\004\180\000\000\000\000\002\198\003\134\000\000\000\000\000\000\004\006\000\000\004\177\002f\005\226\000\000\000\000\000\000\000\000\000\000\000\000\004\178\000\000\000\000\000\000\000\000\002\197\000\000\000\000\004\209\004\207\000\000\002\216\004\180\000\000\000\000\004\178\000\000\000\000\000\000\000\000\000\000\000\000\002\198\002\230\004\179\004\189\002\216\004\180\002\201\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\000\000\004\209\000\000\000\000\000\000\000\000\002\189\000\000\000\000\002f\000\000\000\000\004\142\000\000\000\000\000n\000\000\000\000\000\000\004\186\005\226\004\148\000\000\000\000\000\000\000\000\000\000\004\178\002\201\000\000\000\000\000\000\005\228\000\000\000\000\000\000\004\207\000\000\002\216\004\180\000\000\000\000\000\000\000\000\002\189\000\000\002\203\002f\000\000\004\000\000\000\004\001\004\002\002\167\004\167\004\003\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\000\000\004\209\000\000\000\000\004\142\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\142\004\148\t\131\000\000\000\000\002\214\000\000\002\203\000\000\004\148\000\000\000\000\005\230\000\000\002\221\000\000\002\216\000\000\000\000\000\000\005\233\011\227\000\000\000\000\011\228\000\000\000\000\000\000\t\134\000\000\000\000\000\000\000\000\000\000\004\167\000\000\000\000\004\187\t\135\000\000\000\000\000\000\004\167\002\214\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\002\221\004\006\002\216\004\177\002f\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\142\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\148\t\136\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\240\000\000\000\000\000\000\000\000\004\189\000\000\000\000\000\000\000\000\004\187\000\000\000\000\004\000\000\000\004\001\004\002\002\167\004\187\004\003\000\000\004\000\004\167\004\001\004\002\002\167\004\006\004\003\004\177\002f\t\137\000\000\000\000\004\142\004\006\000\000\004\177\002f\005\226\000\000\000\000\004\142\004\148\000\000\000\000\004\178\000\000\t\138\000\000\000\000\004\148\000\000\000\000\005\249\004\207\000\000\002\216\004\180\000\000\000\000\000\000\006\002\004\189\000\000\000\000\000\000\001\007\001\b\001\t\000\000\004\189\001\n\011\230\000\000\001\160\004\167\000\000\000\000\000\000\000\000\000\000\000\000\004\187\004\167\004\209\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\t\140\000\000\005\226\000\000\000\000\004\006\000\000\004\177\002f\004\178\005\226\000\000\t\141\000\000\000\000\000\000\t\142\004\178\004\207\t\144\002\216\004\180\t\149\000\000\000\000\000\000\004\207\000\000\002\216\004\180\000\000\000\000\000\000\000\000\000\000\000\000\t\161\000\000\000\000\000\000\000\000\004\189\004\187\000\000\000\000\000\000\000\000\000\000\004\209\000\000\004\187\000\000\000\000\000\000\000\000\000\000\004\209\t\162\004\006\000\000\004\177\002f\000\000\000\000\000\000\000\000\004\006\000\000\004\177\002f\000\000\000\000\000\000\000\000\005\226\000\000\004\000\001\011\004\001\004\002\002\167\004\178\004\003\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\207\000\000\002\216\004\180\004\189\000\000\004\142\004\000\001\011\004\001\004\002\002\167\004\189\004\003\001\012\004\148\000\000\000\000\001(\001)\000\000\000\000\001\002\000\000\000\000\000\000\006)\004\142\000\000\000\000\004\209\000\000\000\000\000\000\000\000\001\012\004\148\005\226\000\000\001(\001)\000\000\000\000\001\002\004\178\005\226\000\000\0062\004\167\000\000\000\000\000\000\004\178\004\207\000\000\002\216\004\180\000\000\000\000\000\000\000\000\004\207\000\000\002\216\004\180\000\000\000\000\000\000\000\000\004\167\000\000\000\000\000\000\000\000\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\004\209\000\000\000\000\001?\000\000\000\000\001@\000\000\004\209\001A\001B\000\000\004\142\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\004\148\000\000\000\000\001?\004\187\000\000\001@\000\000\000\000\001A\001B\006;\004\142\000\000\000\000\000\000\000\000\001Y\000\000\000\000\004\006\004\148\004\177\002f\000\000\004\187\000\000\000\000\000\000\000\000\000\000\000\000\006S\004\167\000\000\000\000\000\000\000\000\001\229\000\000\000\000\004\006\000\000\004\177\002f\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\167\000\000\004\189\000\000\000\000\000\000\000\000\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\189\000\000\000\000\000\000\000\000\004\142\000\000\000\000\000\000\000\000\000\000\000\000\005\226\000\000\004\148\000\000\004\187\000\000\000\000\004\178\000\000\000\000\000\000\000\000\000\000\006V\000\000\000\000\004\207\000\000\002\216\004\180\004\006\005\226\004\177\002f\000\000\004\187\000\000\000\000\004\178\000\000\004\000\000\000\004\001\004\002\002\167\004\167\004\003\004\207\000\000\002\216\004\180\004\006\000\000\004\177\002f\000\000\004\209\000\000\000\000\000\000\004\142\000\000\000\000\000\000\000\000\000\000\004\189\000\000\000\000\004\148\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\209\000\000\000\000\006\182\000\000\002\165\000\000\000\000\003L\002\167\004\189\002\168\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\226\000\000\000\000\004\167\000\000\000\000\004\187\004\178\000\000\000\000\002\169\004u\000\000\002\181\002\182\002\187\004\207\000\000\002\216\004\180\000\000\005\226\004\006\000\000\004\177\002f\000\000\000\000\004\178\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\207\000\000\002\216\004\180\000\000\000\000\003\030\000\000\000\000\004\209\000\000\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\000\000\004\189\000\000\006b\003#\000\000\004\187\000\000\000\000\000\000\004\209\000\000\004\142\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\148\004\006\000\000\004\177\002f\000\000\000\000\000\000\000\000\000\000\000\000\006\195\000\000\005\226\000\000\000\000\000\000\000\000\000\000\004\000\004\178\004\001\004\002\002\167\000\000\004\003\000\000\002\201\000\000\004\207\000\000\002\216\004\180\004\167\000\000\000\000\004\000\004\189\004\001\004\002\002\167\000\000\004\003\002\189\000\000\000\000\002f\000\000\007\015\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\142\000\000\000\000\004\209\000\000\000\000\000\000\000\000\000\000\004\148\000\000\000\000\000\000\000\000\006\184\000\000\000\000\000\000\006i\000\000\006\208\004\178\000\000\000\000\000\000\000\000\003$\000\000\000\000\000\000\004\207\000\000\002\216\004\180\000\000\000\000\000\000\004\187\000\000\001\007\001\b\001\t\004\167\000\000\001\n\000\000\000\000\001\015\000\000\000\000\000\000\000\000\000\000\004\006\001\029\004\177\002f\000\000\000\000\000\000\004\209\000\000\000\000\002\214\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\002\221\001\024\002\216\000\000\001\007\001\b\001\t\000\000\001\026\001\n\000\000\000\000\tN\004\005\001\007\001\b\001\t\004\189\000\000\001\n\000\000\000\000\tN\000\000\000\000\000\000\000\000\000\000\000\000\004\006\004\187\004\177\002f\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\006\000\000\004\177\002f\006\197\000\000\001\027\001\007\001\b\001\t\000\000\004\178\001\n\000\000\000\000\tN\000\000\000\000\000\000\000\000\004\207\000\000\002\216\004\180\000\000\001\011\000\000\000\000\000\000\0012\000\000\000\000\001\027\000\000\000\000\000\000\004\189\000\000\000\000\000\000\000\000\000\000\000\000\tP\000\000\000\000\000\000\000\000\000\000\000\000\004\209\001\011\001\012\tP\000\000\001\215\001(\001)\000\000\004\178\001\002\000\000\001\011\000\000\000\000\000\000\000\000\000\000\004\179\006\210\002\216\004\180\001\011\000\000\000\000\000\000\004\178\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\004\207\001\002\002\216\004\180\tS\000\000\000\000\tP\001(\001)\000\000\000\000\001\002\001\005\tS\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\001\005\000\000\000\000\001\011\000\000\000\000\000\000\004\209\001>\001\007\001\b\001\t\000\000\000\000\001\n\000\000\001?\tN\000\000\001@\000\000\000\000\001A\001B\000\000\000\000\000\000\000\000\000\000\000\000\tS\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\001\005\000\000\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\000\000\001Y\000\000\001?\000\000\000\000\tV\007\161\000\000\001A\001B\000\000\000\000\001?\000\000\000\000\tV\000\000\000\000\001A\001B\000\000\b\161\000\000\tW\000\000\tX\001Y\000\000\000\000\000\000\000\000\b\161\000\000\ts\000\000\tX\000\000\001Y\000\000\000\000\000\000\000\000\000\000\tP\000\000\000\000\000\000\001Y\000\000\002\165\000\000\001?\002\166\002\167\tV\002\168\000\000\001A\001B\000\000\000\000\000\000\001\011\004\000\000\000\004\001\004\002\002\167\000\000\004\003\b\161\000\000\n\199\000\000\tX\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\004\142\002\165\000\000\001Y\002\166\002\167\tS\002\168\000\000\004\148\001(\001)\000\000\000\000\001\002\001\005\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\197\002\169\002\196\000\000\002\181\002\182\002\187\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\004\167\000\000\002\198\011\188\000\000\011\190\000\000\000\000\000\000\000\000\000\000\000\000\004\142\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\197\004\148\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001?\002\198\t\238\tV\000\000\000\000\001A\001B\000\000\000\000\002\201\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\167\b\161\000\000\n\207\000\000\tX\004\187\000\000\002\189\002\165\000\000\002f\002\166\002\167\000\000\002\168\000\000\001Y\000\000\000\000\000\000\000\000\004\006\000\000\004\177\002f\000\000\002\201\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\002\189\000\000\000\000\002f\000\000\002\203\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\189\000\000\004\187\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\197\000\000\000\000\000\000\000\000\000\000\004\006\000\000\004\177\002f\000\000\000\000\000\000\002\203\002\214\000\000\000\000\002\198\t\224\000\000\000\000\t\253\000\000\002\221\000\000\002\216\000\000\000\000\004\178\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\207\000\000\002\216\004\180\002\165\004\189\000\000\002\166\002\167\000\000\002\168\000\000\002\214\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\221\000\000\002\216\002\201\000\000\000\000\000\000\000\000\000\000\004\209\002\169\002\196\000\000\002\181\002\182\002\187\000\000\007\235\000\000\002\189\000\000\000\000\002f\002\165\004\178\000\000\002\166\002\167\000\000\002\168\000\000\000\000\000\000\004\207\000\000\002\216\004\180\000\000\000\000\000\000\000\000\000\000\000\000\003\030\000\000\000\000\000\000\000\000\000\000\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\002\203\003\031\003#\002\165\004\209\000\000\002\166\002\167\000\000\002\168\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\197\000\000\000\000\000\000\000\000\002\169\002\196\000\000\002\181\002\182\002\187\002\214\000\000\000\000\000\000\000\000\000\000\002\198\003\014\000\000\002\221\002\201\002\216\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\165\000\000\000\000\002\166\002\167\002\189\002\168\003\n\002f\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\198\003\012\000\000\002\169\002\196\002\201\002\181\002\182\002\187\000\000\000\000\002\165\000\000\000\000\002\166\002\167\000\000\002\168\000\000\000\000\003$\002\189\000\000\000\000\002f\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\197\002\169\002\196\000\000\002\181\002\182\002\187\002\201\000\000\002\165\000\000\000\000\002\166\002\167\000\000\002\168\000\000\002\198\003\t\000\000\002\214\000\000\000\000\002\189\002\203\000\000\002f\000\000\000\000\002\221\000\000\002\216\000\000\000\000\000\000\002\197\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\198\002\254\000\000\000\000\000\000\000\000\000\000\000\000\002\214\002\201\002\165\002\203\000\000\002\166\002\167\000\000\002\168\002\221\002\197\002\216\000\000\000\000\000\000\000\000\000\000\002\189\000\000\000\000\002f\000\000\000\000\000\000\000\000\000\000\000\000\002\198\002\199\002\169\002\196\000\000\002\181\002\182\002\187\000\000\002\201\002\165\000\000\002\214\002\166\002\167\000\000\002\168\000\000\000\000\000\000\000\000\002\221\000\000\002\216\000\000\002\189\000\000\000\000\002f\000\000\002\203\000\000\000\000\000\000\000\000\000\000\002\197\002\169\002\196\000\000\002\181\002\182\002\187\000\000\002\201\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\198\002\202\000\000\000\000\000\000\000\000\000\000\002\189\000\000\000\000\002f\002\165\002\203\002\214\002\166\002\167\000\000\002\168\002\197\000\000\000\000\000\000\002\221\000\000\002\216\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\198\002\218\000\000\002\169\002\196\000\000\002\181\002\182\002\187\002\201\000\000\002\165\002\203\002\214\002\166\002\167\000\000\002\168\000\000\000\000\000\000\000\000\002\221\000\000\002\216\002\189\000\000\000\000\002f\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\197\002\169\002\196\000\000\002\181\002\182\002\187\002\201\000\000\002\165\000\000\002\214\002\166\002\167\000\000\002\168\000\000\002\198\002\220\000\000\002\221\000\000\002\216\002\189\000\000\000\000\002f\000\000\002\203\000\000\000\000\000\000\000\000\000\000\000\000\002\197\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\198\002\251\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\201\002\165\002\203\002\214\002\166\002\167\000\000\002\168\000\000\002\197\000\000\000\000\002\221\000\000\002\216\000\000\002\189\000\000\000\000\002f\000\000\000\000\000\000\000\000\000\000\000\000\002\198\002\243\002\169\002\196\000\000\002\181\002\182\002\187\000\000\002\201\002\165\000\000\002\214\002\166\002\167\000\000\002\168\000\000\000\000\000\000\000\000\002\221\000\000\002\216\000\000\002\189\000\000\000\000\002f\000\000\002\203\000\000\000\000\000\000\000\000\000\000\002\197\002\169\002\196\000\000\002\181\002\182\002\187\000\000\002\201\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\198\002\248\000\000\000\000\000\000\000\000\000\000\002\189\000\000\000\000\002f\002\165\002\203\002\214\002\166\002\167\000\000\002\168\002\197\000\000\000\000\000\000\002\221\000\000\002\216\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\198\003!\000\000\002\169\002\196\000\000\002\181\002\182\002\187\002\201\000\000\002\165\002\203\002\214\002\166\002\167\000\000\002\168\000\000\000\000\000\000\000\000\002\221\000\000\002\216\002\189\000\000\000\000\002f\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\030\000\000\002\169\002\196\000\000\002\181\002\182\002\187\002\201\000\000\002\165\000\000\002\214\002\166\002\167\000\000\002\168\0030\003#\000\000\000\000\002\221\000\000\002\216\002\189\000\000\000\000\002f\000\000\002\203\000\000\000\000\000\000\000\000\000\000\003\030\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003=\003#\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\201\000\000\002\203\002\214\000\000\000\000\000\000\004\000\003\030\004\001\004\002\002\167\002\221\004\003\002\216\000\000\002\189\000\000\000\000\002f\000\000\000\000\000\000\000\000\000\000\003K\003#\004\142\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\201\004\148\000\000\002\214\000\000\000\000\000\000\004\000\000\000\004\001\004\002\002\167\002\221\004\003\002\216\000\000\002\189\000\000\000\000\002f\003$\000\000\000\000\000\000\000\000\000\000\000\000\004\142\000\000\000\000\000\000\000\000\000\000\000\000\004\167\002\201\004\148\000\000\000\000\000\000\000\000\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\000\000\002\189\000\000\000\000\002f\003$\000\000\002\214\000\000\000\000\000\000\000\000\004\142\000\000\000\000\000\000\002\221\000\000\002\216\004\167\000\000\004\148\000\000\000\000\000\000\000\000\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\000\000\000\000\000\000\000\000\000\000\003$\000\000\002\214\000\000\004\187\000\000\000\000\004\142\000\000\000\000\000\000\002\221\000\000\002\216\007-\000\000\004\148\000\000\000\000\000\000\004\006\000\000\004\177\002f\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\214\000\000\004\187\000\000\002\165\000\000\000\000\002\166\002\167\002\221\002\168\002\216\004\167\000\000\000\000\000\000\000\000\000\000\004\006\004\189\004\177\002f\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\169\003\233\000\000\002\181\002\182\002\187\004\187\000\000\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\000\000\000\000\000\000\000\000\007b\004\006\004\189\004\177\002f\000\000\000\000\004\178\004\142\000\000\003\234\000\000\000\000\000\000\000\000\000\000\004\207\004\148\002\216\004\180\004\187\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0076\004\006\004\189\004\177\002f\000\000\000\000\004\178\000\000\000\000\000\000\004\209\000\000\000\000\000\000\004\167\004\207\000\000\002\216\004\180\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007/\000\000\004\189\000\000\002\188\000\000\004\142\004\178\000\000\000\000\000\000\004\209\000\000\000\000\000\000\004\148\004\207\000\000\002\216\004\180\002\189\000\000\000\000\002f\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\007\001\b\001\t\000\000\007#\001\n\000\000\000\000\001\168\004\187\002\165\004\178\000\000\002\166\002\167\004\209\002\168\004\167\000\000\000\000\004\207\000\000\002\216\004\180\000\000\004\006\000\000\004\177\002f\000\000\003\235\000\000\000\000\000\000\000\000\000\000\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\000\000\000\000\000\000\004\000\004\209\004\001\004\002\002\167\000\000\004\003\003\237\005\127\000\000\000\000\000\000\004\189\000\000\000\000\000\000\002\214\000\000\000\000\000\000\004\142\000\000\002\197\000\000\000\000\002\215\000\000\002\216\004\187\004\148\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\002\198\004|\000\000\000\000\000\000\004\006\006\238\004\177\002f\000\000\000\000\000\000\004\142\004\178\000\000\000\000\001\011\000\000\000\000\000\000\000\000\004\148\004\207\004\167\002\216\004\180\000\000\000\000\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\000\000\000\000\000\000\000\000\004\189\000\000\001\012\002\201\000\000\000\000\001(\001)\004\142\000\000\001\002\004\209\000\000\004\167\000\000\000\000\000\000\004\148\000\000\002\189\000\000\000\000\002f\000\000\000\000\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\006N\000\000\000\000\000\000\000\000\000\000\000\000\004\178\000\000\004\187\000\000\000\000\000\000\004\142\000\000\000\000\004\207\004\167\002\216\004\180\000\000\000\000\004\148\000\000\000\000\004\006\002\203\004\177\002f\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\187\001?\000\000\000\000\001@\000\000\004\209\001A\001B\000\000\000\000\000\000\000\000\000\000\000\000\004\167\004\006\000\000\004\177\002f\000\000\004\189\002\214\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\221\000\000\002\216\000\000\000\000\001Y\004\187\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\189\004\006\005\214\004\177\002f\000\000\000\000\000\000\000\000\004\178\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\207\000\000\002\216\004\180\000\000\004\187\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\004\199\000\000\000\000\000\000\004\189\000\000\004\006\004\178\004\177\002f\000\000\000\000\004\142\000\000\000\000\004\209\004\207\000\000\002\216\004\180\000\000\004\148\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\205\000\000\000\000\000\000\000\000\004\189\004\142\004\178\004\000\004\209\004\001\004\002\002\167\000\000\004\003\004\148\004\207\004\167\002\216\004\180\000\000\000\000\000\000\004\000\000\000\004\001\004\002\002\167\004\142\004\003\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\148\004\214\000\000\000\000\000\000\000\000\004\142\000\000\004\178\004\209\000\000\004\167\000\000\000\000\000\000\004\148\000\000\004\207\000\000\002\216\004\180\000\000\000\000\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\000\000\004\167\000\000\000\000\000\000\000\000\000\000\000\000\004\187\000\000\000\000\000\000\004\142\000\000\000\000\004\209\004\167\000\000\000\000\000\000\000\000\004\148\000\000\000\000\004\006\000\000\004\177\002f\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\187\000\000\000\000\000\000\000\000\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\000\000\004\167\004\006\000\000\004\177\002f\000\000\004\189\004\187\000\000\000\000\000\000\004\142\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\148\000\000\004\187\004\006\000\000\004\177\002f\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\189\004\006\004\225\004\177\002f\000\000\000\000\000\000\000\000\004\178\000\000\000\000\000\000\000\000\000\000\000\000\004\167\000\000\004\207\000\000\002\216\004\180\004\189\004\187\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\004\231\000\000\000\000\000\000\004\189\000\000\004\006\004\178\004\177\002f\000\000\000\000\004\142\000\000\000\000\004\209\004\207\000\000\002\216\004\180\000\000\004\148\004\237\000\000\000\000\000\000\000\000\000\000\000\000\004\178\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\243\004\207\000\000\002\216\004\180\004\189\004\187\004\178\004\000\004\209\004\001\004\002\002\167\000\000\004\003\000\000\004\207\004\167\002\216\004\180\000\000\000\000\004\006\000\000\004\177\002f\000\000\000\000\004\142\000\000\004\000\004\209\004\001\004\002\002\167\000\000\004\003\004\148\004\249\000\000\000\000\000\000\000\000\000\000\000\000\004\178\004\209\000\000\000\000\000\000\004\142\000\000\000\000\000\000\004\207\000\000\002\216\004\180\004\189\004\148\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\000\000\004\167\000\000\000\000\000\000\000\000\000\000\000\000\004\187\000\000\000\000\000\000\004\142\000\000\004\000\004\209\004\001\004\002\002\167\000\000\004\003\004\148\004\255\004\167\004\006\000\000\004\177\002f\000\000\004\178\000\000\000\000\000\000\000\000\004\142\000\000\000\000\000\000\004\207\000\000\002\216\004\180\000\000\004\148\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\167\000\000\000\000\000\000\000\000\000\000\004\189\004\187\000\000\000\000\000\000\000\000\000\000\004\000\004\209\004\001\004\002\002\167\000\000\004\003\000\000\000\000\004\167\004\006\000\000\004\177\002f\000\000\000\000\004\187\000\000\000\000\000\000\004\142\000\000\000\000\000\000\000\000\000\000\005\005\000\000\000\000\004\148\000\000\000\000\004\006\004\178\004\177\002f\000\000\000\000\000\000\000\000\000\000\000\000\004\207\000\000\002\216\004\180\004\189\004\187\000\000\000\000\000\000\000\000\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\000\000\004\167\004\006\000\000\004\177\002f\000\000\004\189\004\187\000\000\000\000\004\209\004\142\000\000\000\000\000\000\000\000\000\000\005\011\000\000\000\000\004\148\000\000\000\000\004\006\004\178\004\177\002f\000\000\000\000\000\000\000\000\000\000\000\000\004\207\000\000\002\216\004\180\004\189\000\000\005\017\000\000\000\000\000\000\000\000\000\000\004\000\004\178\004\001\004\002\002\167\000\000\004\003\000\000\004\167\000\000\004\207\000\000\002\216\004\180\004\189\004\187\000\000\000\000\004\209\000\000\004\142\000\000\000\000\000\000\000\000\005\023\000\000\000\000\000\000\004\148\000\000\004\006\004\178\004\177\002f\000\000\000\000\000\000\000\000\000\000\004\209\004\207\000\000\002\216\004\180\000\000\000\000\005\029\000\000\000\000\000\000\000\000\000\000\004\000\004\178\004\001\004\002\002\167\000\000\004\003\000\000\000\000\004\167\004\207\000\000\002\216\004\180\004\189\004\187\000\000\000\000\004\209\000\000\004\142\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\004\148\000\000\004\006\000\000\004\177\002f\000\000\000\000\000\000\000\000\000\000\004\209\000\000\004\142\000\000\000\000\000\000\000\000\005#\000\000\000\000\000\000\004\148\000\000\004\000\004\178\004\001\004\002\002\167\000\000\004\003\000\000\000\000\004\167\004\207\000\000\002\216\004\180\004\189\000\000\004\187\000\000\000\000\000\000\004\142\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\004\148\000\000\004\167\004\006\000\000\004\177\002f\000\000\000\000\000\000\000\000\004\209\000\000\004\142\000\000\000\000\000\000\000\000\005)\000\000\000\000\000\000\004\148\000\000\000\000\004\178\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\167\004\207\000\000\002\216\004\180\000\000\004\189\004\187\000\000\000\000\000\000\000\000\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\000\000\004\167\004\006\000\000\004\177\002f\000\000\000\000\004\187\000\000\004\209\000\000\004\142\000\000\000\000\000\000\000\000\000\000\005/\000\000\000\000\004\148\000\000\000\000\004\006\004\178\004\177\002f\000\000\000\000\000\000\000\000\000\000\000\000\004\207\000\000\002\216\004\180\004\189\004\187\000\000\000\000\000\000\000\000\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\000\000\004\167\004\006\000\000\004\177\002f\000\000\004\189\004\187\000\000\000\000\004\209\004\142\000\000\000\000\000\000\000\000\000\000\0055\000\000\000\000\004\148\000\000\000\000\004\006\004\178\004\177\002f\000\000\000\000\000\000\000\000\000\000\000\000\004\207\000\000\002\216\004\180\004\189\000\000\005;\000\000\000\000\000\000\000\000\000\000\004\000\004\178\004\001\004\002\002\167\000\000\004\003\000\000\004\167\000\000\004\207\000\000\002\216\004\180\004\189\004\187\000\000\000\000\004\209\000\000\004\142\000\000\000\000\000\000\000\000\005A\000\000\000\000\000\000\004\148\000\000\004\006\004\178\004\177\002f\000\000\000\000\000\000\000\000\000\000\004\209\004\207\000\000\002\216\004\180\000\000\000\000\005G\000\000\000\000\000\000\000\000\000\000\004\000\004\178\004\001\004\002\002\167\000\000\004\003\000\000\000\000\004\167\004\207\000\000\002\216\004\180\004\189\004\187\000\000\000\000\004\209\000\000\004\142\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\004\148\000\000\004\006\000\000\004\177\002f\000\000\000\000\000\000\000\000\000\000\004\209\000\000\004\142\000\000\000\000\000\000\000\000\005M\000\000\000\000\000\000\004\148\000\000\000\000\004\178\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\167\004\207\000\000\002\216\004\180\004\189\000\000\004\187\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\167\004\006\000\000\004\177\002f\000\000\000\000\000\000\000\000\004\209\000\000\000\000\000\000\000\000\000\000\002\165\005S\000\000\002\166\002\167\000\000\002\168\000\000\004\178\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\207\000\000\002\216\004\180\000\000\004\189\004\187\000\000\000\000\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\000\000\000\000\000\000\004\006\000\000\004\177\002f\000\000\000\000\004\187\000\000\004\209\000\000\000\000\000\000\000\000\000\000\002\165\000\000\005Y\002\166\002\167\000\000\002\168\003\030\004\006\004\178\004\177\002f\000\000\004\000\000\000\004\001\004\002\002\167\004\207\004\003\002\216\004\180\004\189\000\000\005\182\003#\000\000\002\169\002\196\000\000\002\181\002\182\002\187\004\142\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\148\000\000\004\189\000\000\000\000\000\000\004\209\000\000\000\000\000\000\000\000\000\000\000\000\005g\000\000\000\000\000\000\000\000\000\000\002\197\004\178\000\000\000\000\000\000\000\000\000\000\000\000\002\201\000\000\004\207\000\000\002\216\004\180\004\167\000\000\005m\002\198\005\184\000\000\000\000\000\000\000\000\004\178\002\189\000\000\000\000\002f\000\000\000\000\000\000\000\000\004\207\000\000\002\216\004\180\000\000\000\000\000\000\000\000\004\209\000\000\000\000\000\000\000\000\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\201\004\209\003$\000\000\000\000\004\142\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\187\004\148\000\000\002\189\000\000\000\000\002f\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\000\000\004\006\000\000\004\177\002f\000\000\000\000\000\000\000\000\000\000\000\000\002\214\004\142\000\000\000\000\000\000\000\000\000\000\000\000\004\167\002\221\004\148\002\216\000\000\000\000\000\000\000\000\000\000\002\203\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\004\189\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\142\000\000\000\000\000\000\000\000\004\167\000\000\000\000\000\000\004\148\000\000\000\000\000\000\000\000\000\000\002\214\000\000\000\000\000\000\000\000\000\000\005\247\000\000\000\000\002\221\000\000\002\216\000\000\004\178\000\000\004\187\000\000\000\000\000\000\000\000\000\000\000\000\004\207\000\000\002\216\004\180\004\000\004\167\004\001\004\002\002\167\004\006\004\003\004\177\002f\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\000\000\000\000\004\142\000\000\000\000\000\000\004\187\000\000\004\209\000\000\000\000\004\148\004\142\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\148\004\006\004\189\004\177\002f\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\004\187\004\167\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\167\004\142\006\000\000\000\004\189\004\006\000\000\004\177\002f\004\178\004\148\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\207\000\000\002\216\004\180\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\t\000\000\000\000\000\000\004\189\000\000\004\167\004\178\000\000\000\000\000\000\004\209\000\000\004\187\000\000\000\000\004\207\000\000\002\216\004\180\000\000\000\000\000\000\004\187\000\000\000\000\000\000\000\000\000\000\004\006\000\000\004\177\002f\000\000\000\000\000\000\000\000\006\019\000\000\004\006\000\000\004\177\002f\000\000\004\178\000\000\004\209\000\000\000\000\000\000\000\000\000\000\000\000\004\207\000\000\002\216\004\180\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\004\189\004\187\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\004\189\000\000\000\000\004\142\000\000\000\000\000\000\004\006\004\209\004\177\002f\000\000\004\148\004\142\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\004\148\006\028\000\000\000\000\000\000\000\000\000\000\000\000\004\178\000\000\000\000\006%\000\000\004\142\000\000\000\000\000\000\004\207\004\178\002\216\004\180\004\189\004\148\004\167\000\000\000\000\000\000\004\207\000\000\002\216\004\180\000\000\000\000\004\167\000\000\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\000\000\000\000\000\000\004\209\000\000\000\000\000\000\000\000\000\000\000\000\0060\004\167\004\142\004\209\000\000\000\000\002\165\004\178\000\000\002\166\002\167\004\148\002\168\000\000\000\000\000\000\004\207\000\000\002\216\004\180\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\187\000\000\000\000\000\000\002\169\002\196\000\000\002\181\002\182\002\187\004\187\000\000\000\000\000\000\000\000\004\167\004\006\004\209\004\177\002f\000\000\000\000\001\007\001\b\001\t\000\000\004\006\001\n\004\177\002f\001F\000\000\004\187\000\000\000\000\000\000\000\000\001H\002\197\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\006\000\000\004\177\002f\004\189\000\000\000\000\002\198\006\149\000\000\000\000\000\000\000\000\000\000\004\189\000\000\000\000\000\000\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\004\187\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\189\0069\000\000\004\142\000\000\000\000\000\000\004\006\004\178\004\177\002f\006B\004\148\000\000\000\000\002\201\000\000\004\207\004\178\002\216\004\180\000\000\000\000\001\027\000\000\000\000\000\000\004\207\000\000\002\216\004\180\002\189\002\165\006I\002f\002\166\002\167\000\000\002\168\000\000\004\178\000\000\001\011\004\189\000\000\004\167\001I\004\209\000\000\004\207\000\000\002\216\004\180\000\000\000\000\000\000\000\000\004\209\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\000\000\001\012\000\000\002\203\000\000\001(\001)\000\000\006x\001\002\000\000\004\209\000\000\000\000\000\000\004\178\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\207\002\197\002\216\004\180\000\000\000\000\000\000\000\000\002\165\000\000\000\000\002\166\002\167\004\187\002\168\002\214\000\000\000\000\002\198\006~\000\000\000\000\000\000\000\000\002\221\000\000\002\216\000\000\000\000\004\006\004\209\004\177\002f\000\000\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\004\000\000\000\004\001\004\002\002\167\001?\004\003\000\000\001@\000\000\000\000\001A\001B\000\000\000\000\000\000\000\000\000\000\002\201\000\000\004\142\004\189\000\000\000\000\000\000\002\197\000\000\000\000\000\000\004\148\000\000\000\000\000\000\000\000\002\189\000\000\000\000\002f\000\000\000\000\001Y\000\000\002\198\006\134\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\165\006\132\000\000\002\166\002\167\000\000\002\168\000\000\004\178\004\167\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\207\000\000\002\216\004\180\002\203\000\000\000\000\000\000\000\000\000\000\002\169\002\196\000\000\002\181\002\182\002\187\002\201\000\000\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\000\000\000\000\000\000\004\209\000\000\002\189\000\000\000\000\002f\000\000\000\000\000\000\004\142\002\214\000\000\000\000\000\000\002\197\000\000\000\000\000\000\004\148\002\221\000\000\002\216\004\187\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\002\198\006\142\000\000\000\000\000\000\000\000\000\000\004\006\000\000\004\177\002f\002\203\000\000\004\142\000\000\000\000\000\000\000\000\000\000\000\000\004\167\000\000\004\148\000\000\001\007\001\b\001\t\000\000\004\000\001\n\004\001\004\002\002\167\000\000\004\003\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\189\002\201\000\000\000\000\002\214\004\142\000\000\000\000\000\000\000\000\000\000\000\000\004\167\002\221\004\148\002\216\011C\002\189\000\000\000\000\002f\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\140\000\000\000\000\000\000\004\187\000\000\004\000\004\178\004\001\004\002\002\167\000\000\004\003\000\000\004\167\000\000\004\207\000\000\002\216\004\180\004\006\000\000\004\177\002f\002\203\000\000\004\142\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\148\000\000\000\000\000\000\004\187\000\000\004\000\000\000\004\001\004\002\002\167\004\209\004\003\000\000\000\000\000\000\000\000\001\011\000\000\000\000\004\006\004\189\004\177\002f\000\000\002\214\004\142\000\000\000\000\000\000\000\000\000\000\000\000\004\167\002\221\004\148\002\216\000\000\000\000\004\187\000\000\000\000\000\000\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\000\000\006\148\004\006\004\189\004\177\002f\000\000\000\000\004\178\000\000\000\000\000\000\000\000\000\000\000\000\004\167\000\000\004\207\000\000\002\216\004\180\000\000\000\000\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\000\000\000\000\000\000\000\000\006\155\000\000\004\189\000\000\004\187\000\000\000\000\004\178\004\142\000\000\000\000\004\209\000\000\000\000\000\000\000\000\004\207\004\148\002\216\004\180\004\006\000\000\004\177\002f\000\000\000\000\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\006\167\000\000\000\000\000\000\004\187\000\000\004\000\004\178\004\001\004\002\002\167\004\209\004\003\000\000\000\000\004\167\004\207\000\000\002\216\004\180\004\006\004\189\004\177\002f\000\000\000\000\004\142\001h\004\000\000\000\004\001\004\002\002\167\000\000\004\003\004\148\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\209\000\000\004\142\004\000\000\000\004\001\004\002\002\167\006\166\004\003\004\189\004\148\000\000\000\000\000\000\004\178\000\000\000\000\000\000\000\000\000\000\000\000\004\167\004\142\004\207\000\000\002\216\004\180\000\000\004\187\000\000\000\000\004\148\000\000\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\006\173\004\167\004\006\000\000\004\177\002f\000\000\004\178\000\000\000\000\000\000\004\209\004\142\000\000\000\000\000\000\004\207\000\000\002\216\004\180\000\000\004\148\004\167\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\189\004\187\000\000\000\000\000\000\000\000\000\000\000\000\004\209\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\167\004\006\000\000\004\177\002f\000\000\000\000\004\187\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007\005\000\000\000\000\000\000\000\000\000\000\004\006\004\178\004\177\002f\000\000\004\187\000\000\000\000\000\000\000\000\004\207\000\000\002\216\004\180\004\189\000\000\000\000\000\000\000\000\000\000\000\000\004\006\000\000\004\177\002f\000\000\000\000\000\000\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\004\189\004\187\001\176\000\000\004\209\000\000\000\000\000\000\000\000\000\000\000\000\007\004\000\000\000\000\000\000\000\000\000\000\004\006\004\178\004\177\002f\004\189\000\000\000\000\000\000\000\000\000\000\004\207\002\165\002\216\004\180\002\166\002\167\007\011\002\168\002\165\000\000\000\000\002\166\002\167\004\178\002\168\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\207\000\000\002\216\004\180\004\189\007\029\002\169\002\196\004\209\002\181\002\182\002\187\004\178\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\004\207\000\000\002\216\004\180\004\000\000\000\004\001\004\002\002\167\004\209\004\003\000\000\000\000\000\000\000\000\000\000\b\018\000\000\000\000\002\197\000\000\000\000\000\000\004\178\004\142\000\000\002\197\000\000\001\011\000\000\004\209\000\000\004\207\004\148\002\216\004\180\002\198\b9\000\000\000\000\000\000\000\000\000\000\002\198\t\237\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\012\001\007\001\b\001\t\001(\001)\001\n\004\209\001\002\001L\000\000\004\167\001\007\001\b\001\t\000\000\001N\001\n\000\000\000\000\001S\000\000\000\000\000\000\000\000\002\201\000\000\001U\000\000\000\000\000\000\000\000\002\201\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\002\189\001l\000\000\002f\001\007\001\b\001\t\002\189\001n\001\n\002f\000\000\001\148\001\007\001\b\001\t\000\000\000\000\001\n\001\150\000\000\001\156\000\000\000\000\000\000\000\000\000\000\000\000\001\158\000\000\004\187\001?\000\000\000\000\001@\000\000\000\000\001A\001B\000\000\002\203\000\000\000\000\000\000\000\000\001\027\004\006\002\203\004\177\002f\000\000\000\000\001\007\001\b\001\t\000\000\001\027\001\n\000\000\000\000\001\164\000\000\000\000\000\000\001\011\000\000\001Y\001\166\001O\000\000\000\000\000\000\000\000\000\000\000\000\001\011\002\214\000\000\001\027\001V\000\000\000\000\004\189\002\214\000\000\002\221\000\000\002\216\000\000\001\027\000\000\001\012\002\221\000\000\002\216\001(\001)\001\011\001\027\001\002\000\000\001o\001\012\000\000\000\000\000\000\001(\001)\001\011\000\000\001\002\000\000\001\151\000\000\000\000\n\012\000\000\001\011\000\000\000\000\000\000\001\159\004\178\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\004\207\001\002\002\216\004\180\001\012\000\000\001\027\000\000\001(\001)\000\000\000\000\001\002\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\000\000\000\000\000\000\001\011\000\000\000\000\000\000\001\167\004\209\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\001\007\001\b\001\t\001?\000\000\001\n\001@\000\000\001\172\001A\001B\000\000\001\012\000\000\000\000\001\174\001(\001)\000\000\000\000\001\002\000\000\000\000\000\000\000\000\001?\000\000\001Y\001@\000\000\000\000\001A\001B\000\000\000\000\000\000\001?\000\000\001Y\001@\000\000\000\000\001A\001B\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\001\007\001\b\001\t\000\000\000\000\001\n\000\000\001Y\001\185\001\007\001\b\001\t\000\000\000\000\001\n\001\187\000\000\001\193\001Y\000\000\000\000\000\000\000\000\000\000\001\195\000\000\000\000\001Y\000\000\000\000\000\000\001?\001\027\000\000\001@\000\000\000\000\001A\001B\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001\201\000\000\000\000\000\000\001\011\000\000\000\000\001\203\001\175\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001\209\000\000\001Y\000\000\000\000\000\000\000\000\001\211\000\000\000\000\000\000\000\000\000\000\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\001\027\001\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\027\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\001\011\n&\000\000\000\000\001\188\000\000\000\000\000\000\n(\001\011\000\000\000\000\000\000\001\196\000\000\000\000\000\000\001\007\001\b\001\t\001\027\000\000\001\n\000\000\000\000\001\199\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\001\012\001\027\000\000\001\011\001(\001)\000\000\001\204\001\002\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\000\000\000\000\001\011\000\000\000\000\000\000\001\212\000\000\000\000\000\000\000\000\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\000\000\000\000\000\000\001\027\000\000\000\000\001Y\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\000\000\000\000\000\000\000\000\000\000\001\011\000\000\001?\000\000\n)\001@\000\000\000\000\001A\001B\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\000\000\000\000\000\000\000\000\000\000\001\011\000\000\000\000\001\012\001\007\001\b\001\t\001(\001)\001\n\000\000\001\002\n.\001Y\000\000\000\000\000\000\001?\000\000\n0\001@\000\000\001Y\001A\001B\000\000\000\000\001\012\001\007\001\b\001\t\001(\001)\001\n\001?\001\002\n\254\001@\000\000\000\000\001A\001B\000\000\011\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\001Y\011\006\000\000\000\000\000\000\000\000\000\000\000\000\011\b\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\001Y\011\014\000\000\000\000\000\000\000\000\001?\000\000\011\016\001@\000\000\000\000\001A\001B\000\000\000\000\000\000\001\007\001\b\001\t\001\027\000\000\001\n\000\000\000\000\011\022\000\000\000\000\000\000\000\000\001?\000\000\011\024\001@\000\000\000\000\001A\001B\000\000\001\011\000\000\001Y\000\000\n1\001\027\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\027\000\000\001\011\000\000\001Y\001\012\011\001\000\000\000\000\001(\001)\000\000\000\000\001\002\000\000\000\000\000\000\001\027\000\000\001\011\000\000\000\000\000\000\011\t\000\000\000\000\000\000\000\000\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\001\011\001\002\000\000\000\000\011\017\001\027\000\000\000\000\000\000\000\000\001\012\001\007\001\b\001\t\001(\001)\001\n\000\000\001\002\011#\000\000\000\000\000\000\000\000\001\011\000\000\011%\001\012\011\025\000\000\000\000\001(\001)\000\000\000\000\001\002\000\000\001\007\001\b\001\t\000\000\001?\001\n\000\000\001@\011+\000\000\001A\001B\000\000\000\000\001\012\011-\000\000\000\000\001(\001)\000\000\000\000\001\002\000\000\000\000\000\000\000\000\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\000\000\000\000\000\000\001Y\000\000\000\000\000\000\000\000\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\000\000\000\000\000\000\001\007\001\b\001\t\001\027\000\000\001\n\001?\001Y\0113\001@\000\000\000\000\001A\001B\000\000\0115\000\000\000\000\000\000\000\000\000\000\000\000\001\011\000\000\001Y\000\000\011&\000\000\000\000\001\027\001?\000\000\000\000\001@\000\000\000\000\001A\001B\000\000\000\000\000\000\001Y\000\000\000\000\000\000\000\000\000\000\000\000\001\011\001\012\000\000\000\000\011.\001(\001)\000\000\000\000\001\002\001\007\001\b\001\t\000\000\000\000\001\n\000\000\001Y\011;\000\000\000\000\000\000\000\000\000\000\000\000\011=\000\000\001\012\001\007\001\b\001\t\001(\001)\001\n\000\000\001\002\011E\001\027\000\000\000\000\001\007\001\b\001\t\011G\000\000\001\n\000\000\000\000\011M\000\000\000\000\000\000\000\000\000\000\000\000\011O\001\011\000\000\000\000\000\000\0116\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\011W\000\000\000\000\001?\000\000\000\000\001@\011Y\000\000\001A\001B\000\000\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\000\000\000\000\000\000\001\027\000\000\000\000\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\000\000\001Y\000\000\000\000\000\000\000\000\001\027\001\011\000\000\t\131\000\000\011>\000\000\000\000\000\000\001\007\001\b\001\t\001\027\000\000\001\n\000\000\000\000\011_\000\000\001\011\000\000\001Y\011\227\011H\011a\011\228\000\000\000\000\001\012\t\134\000\000\001\011\001(\001)\001\027\011P\001\002\000\000\000\000\t\135\000\000\000\000\001?\000\000\000\000\001@\001\012\000\000\001A\001B\001(\001)\000\000\001\011\001\002\000\000\000\000\011Z\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\136\000\000\001Y\000\000\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\000\000\000\000\001\007\001\b\001\t\001\027\000\000\001\n\000\000\000\000\001\189\001?\000\000\000\000\001@\000\000\000\000\001A\001B\000\000\000\000\000\000\000\000\000\000\001\011\000\000\t\137\000\000\011b\001?\000\000\t\131\001@\000\000\000\000\001A\001B\000\000\000\000\000\000\000\000\001?\000\000\t\138\001@\000\000\001Y\001A\001B\000\000\011\227\001\012\000\000\011\228\000\000\001(\001)\t\134\000\000\001\002\t\131\000\000\000\000\001?\001Y\000\000\001@\t\135\011\229\001A\001B\000\000\000\000\000\000\000\000\000\000\001Y\000\000\000\000\011\227\000\000\000\000\011\228\000\000\000\000\000\000\t\134\000\000\000\000\t\140\000\000\000\000\000\000\000\000\000\000\000\000\t\135\000\000\001Y\000\000\000\000\t\141\000\000\t\136\000\000\t\142\001\011\000\000\t\144\000\000\000\000\t\149\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001\197\000\000\001?\000\000\t\161\001@\000\000\000\000\001A\001B\000\000\t\136\001\012\001\007\001\b\001\t\001(\001)\001\n\000\000\001\002\001\205\t\137\000\000\000\000\t\162\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001\213\001Y\000\000\t\138\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\007\001\b\001\t\000\000\t\137\001\n\000\000\000\000\001\216\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\011\233\000\000\001\220\000\000\t\138\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001?\t\140\000\000\001@\000\000\000\000\001A\001B\000\000\011\238\000\000\000\000\001\011\t\141\000\000\000\000\000\000\t\142\000\000\000\000\t\144\000\000\000\000\t\149\000\000\000\000\000\000\000\000\000\000\000\000\t\140\000\000\000\000\001\011\000\000\001Y\000\000\t\161\000\000\001\012\000\000\000\000\t\141\001(\001)\000\000\t\142\001\002\001\011\t\144\000\000\000\000\t\149\000\000\000\000\000\000\000\000\000\000\t\162\000\000\001\012\000\000\000\000\000\000\001(\001)\t\161\001\011\001\002\000\000\000\000\000\000\000\000\000\000\000\000\001\012\000\000\000\000\001\011\001(\001)\000\000\000\000\001\002\000\000\000\000\000\000\t\162\000\000\000\000\000\000\000\000\000\000\000\000\001\012\000\000\000\000\002\165\001(\001)\002\166\002\167\001\002\002\168\000\000\001\012\000\000\000\000\000\000\001(\001)\001?\000\000\001\002\001@\000\000\000\000\001A\001B\000\000\000\000\000\000\000\000\000\000\002\169\002\226\000\000\002\181\002\182\002\187\002\165\000\000\001?\002\166\002\167\001@\002\168\000\000\001A\001B\000\000\000\000\000\000\000\000\000\000\000\000\001Y\001?\000\000\000\000\001@\000\000\000\000\001A\001B\000\000\000\000\002\169\002\241\000\000\002\181\002\182\002\187\000\000\000\000\000\000\001?\001Y\000\000\001@\000\000\000\000\001A\001B\000\000\002\165\000\000\001?\002\166\002\167\001@\002\168\001Y\001A\001B\000\000\000\000\000\000\000\000\000\000\002\165\000\000\000\000\002\166\002\167\000\000\002\168\000\000\000\000\000\000\000\000\001Y\002\169\003\028\000\000\002\181\002\182\002\187\000\000\000\000\000\000\000\000\001Y\000\000\000\000\000\000\000\000\002\169\003.\002\188\002\181\002\182\002\187\002\165\000\000\000\000\002\166\002\167\000\000\002\168\002\165\000\000\000\000\002\166\002\167\002\189\002\168\000\000\002f\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\169\003;\002\188\002\181\002\182\002\187\000\000\002\169\003?\000\000\002\181\002\182\002\187\000\000\000\000\000\000\000\000\000\000\002\189\000\000\000\000\002f\000\000\002\165\000\000\000\000\002\166\002\167\000\000\002\168\004\000\000\000\004\001\004\002\002\167\000\000\004\003\002\165\000\000\000\000\002\166\002\167\000\000\002\168\000\000\000\000\000\000\002\188\000\000\000\000\002\169\003I\000\000\002\181\002\182\002\187\000\000\000\000\000\000\006\233\000\000\002\214\002\188\002\189\002\169\003\232\002f\002\181\002\182\002\187\002\215\000\000\002\216\000\000\000\000\001\007\001\b\001\t\002\189\000\000\001\n\002f\000\000\tJ\000\000\002\165\000\000\000\000\002\166\002\167\000\000\002\168\000\000\000\000\002\214\002\188\000\000\000\000\000\000\000\000\000\000\000\000\002\188\002\215\000\000\002\216\000\000\000\000\000\000\000\000\000\000\002\189\002\169\005\180\002f\002\181\002\182\002\187\002\189\000\000\000\000\002f\000\000\000\000\000\000\000\000\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\tQ\000\000\000\000\002\214\000\000\000\000\000\000\000\000\000\000\002\188\000\000\000\000\002\215\000\000\002\216\000\000\004\005\000\000\002\214\000\000\000\000\000\000\000\000\002\188\000\000\002\189\000\000\002\215\002f\002\216\000\000\000\000\004\006\000\000\004\177\002f\000\000\000\000\000\000\002\189\000\000\000\000\002f\001\011\000\000\000\000\t\131\000\000\000\000\000\000\000\000\002\214\000\000\000\000\000\000\000\000\000\000\t\131\002\214\000\000\002\215\000\000\002\216\000\000\000\000\000\000\000\000\002\215\t\132\002\216\001\012\002\188\t\134\000\000\001(\001)\000\000\000\000\001\002\t\132\t\131\000\000\t\135\t\134\000\000\000\000\000\000\002\189\000\000\000\000\002f\000\000\000\000\t\135\000\000\000\000\001\011\000\000\000\000\000\000\000\000\002\214\t\132\000\000\000\000\000\000\t\134\000\000\004\178\000\000\002\215\000\000\002\216\000\000\000\000\002\214\t\135\004\179\t\136\002\216\004\180\000\000\000\000\001\012\002\215\000\000\002\216\001(\001)\t\136\000\000\001\002\000\000\000\000\002\165\000\000\000\000\002\166\002\167\000\000\002\168\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\000\000\000\000\t\136\000\000\000\000\000\000\000\000\000\000\t\137\000\000\000\000\002\169\t\222\002\214\002\181\002\182\002\187\000\000\000\000\t\137\000\000\000\000\002\215\000\000\002\216\t\138\000\000\001Y\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\t\138\000\000\n*\000\000\000\000\000\000\t\137\000\000\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\000\000\t\139\000\000\001\007\001\b\001\t\t\138\000\000\001\n\000\000\000\000\n2\t\166\000\000\000\000\000\000\000\000\000\000\t\140\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001Y\000\000\t\140\t\141\000\000\000\000\000\000\t\142\t\176\000\000\t\144\000\000\000\000\t\149\t\141\001\007\001\b\001\t\t\142\000\000\001\n\t\144\000\000\011\002\t\149\t\140\002\188\t\161\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\141\t\161\000\000\000\000\t\142\002\189\000\000\t\144\002f\002\165\t\149\t\162\002\166\002\167\000\000\002\168\000\000\001\011\000\000\000\000\000\000\000\000\t\162\000\000\t\161\000\000\000\000\000\000\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\002\169\t\235\011\n\002\181\002\182\002\187\000\000\001\011\001\012\t\162\000\000\000\000\001(\001)\000\000\000\000\001\002\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\011\018\001\007\001\b\001\t\000\000\000\000\001\n\000\000\001\012\011\026\000\000\000\000\001(\001)\000\000\000\000\001\002\000\000\000\000\002\214\001\011\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\215\000\000\002\216\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\012\001\007\001\b\001\t\001(\001)\001\n\001?\001\002\0111\001@\000\000\000\000\001A\001B\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\188\000\000\000\000\001\011\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001?\000\000\000\000\001@\000\000\002\189\001A\001B\002f\001Y\001\007\001\b\001\t\000\000\000\000\001\n\001\011\000\000\011'\001\012\000\000\000\000\000\000\001(\001)\001\011\000\000\001\002\000\000\001\007\001\b\001\t\000\000\000\000\001\n\001Y\000\000\011/\000\000\001?\000\000\000\000\001@\001\012\000\000\001A\001B\001(\001)\000\000\000\000\001\002\001\012\001\007\001\b\001\t\001(\001)\001\n\000\000\001\002\0117\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\011?\000\000\001\011\000\000\001Y\000\000\000\000\000\000\000\000\000\000\000\000\002\214\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\215\001?\002\216\000\000\001@\000\000\000\000\001A\001B\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\000\000\000\000\000\000\001\007\001\b\001\t\001\011\001?\001\n\000\000\001@\011I\000\000\001A\001B\000\000\001?\000\000\001Y\001@\000\000\000\000\001A\001B\000\000\001\011\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\001Y\000\000\000\000\001\007\001\b\001\t\000\000\001\011\001\n\001Y\001\012\011Q\000\000\000\000\001(\001)\001\011\000\000\001\002\000\000\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\000\000\000\000\000\000\000\000\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\001\012\001\007\001\b\001\t\001(\001)\001\n\000\000\001\002\000\000\001\007\001\b\001\t\011A\000\000\001\n\000\000\000\000\011[\000\000\001?\000\000\001\011\001@\000\000\000\000\001A\001B\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\011U\000\000\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\000\000\000\000\001\012\000\000\000\000\000\000\001(\001)\001Y\000\000\001\002\000\000\000\000\001\007\001\b\001\t\001?\001\011\001\n\001@\000\000\011c\001A\001B\000\000\001?\000\000\001Y\001@\000\000\000\000\001A\001B\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\001Y\001\002\000\000\001\007\001\b\001\t\000\000\001\011\001\n\001Y\000\000\000\000\001\007\001\b\001\t\000\000\001\011\001\n\000\000\000\000\000\000\000\000\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\000\000\000\000\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\001\007\001\b\001\t\000\000\000\000\001\n\001Y\000\000\000\000\000\000\001\007\001\b\001\t\001?\001\011\001\n\001@\000\000\000\000\001A\001B\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\001Y\001\002\000\000\001\007\001\b\001\t\001?\001\011\001\n\001@\000\000\000\000\001A\001B\000\000\001?\001\011\000\000\001@\000\000\000\000\001A\001B\000\000\000\000\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\001h\001\002\001\012\000\000\000\000\000\000\001(\001)\000\000\001Y\001\002\000\000\000\000\000\000\004\004\001\011\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\001?\001\011\000\000\001@\000\000\000\000\001A\001B\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\012\000\000\000\000\004\130\001(\001)\000\000\000\000\001\002\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\001Y\001\002\000\000\000\000\000\000\000\000\001?\001\011\000\000\001@\000\000\000\000\001A\001B\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\000\000\000\000\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\001\225\001\002\000\000\000\000\000\000\000\000\000\000\004\005\000\000\001]\000\000\004\134\000\000\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\000\000\004\006\001?\004\177\002f\001@\000\000\000\000\001A\001B\000\000\004\000\000\000\004\001\004\002\002\167\004\005\004\003\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\000\000\001g\000\000\000\000\000\000\000\000\004\006\000\000\004\177\002f\000\000\001f\000\000\000\000\004\158\000\000\000\000\001?\000\000\000\000\001@\004\176\000\000\001A\001B\004\000\000\000\004\001\004\002\002\167\004\000\004\003\004\001\004\002\002\167\000\000\004\003\000\000\000\000\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\000\000\000\000\000\000\004\178\003\239\000\000\004\188\000\000\004\005\000\000\000\000\004\208\004\179\000\000\002\216\004\180\000\000\001\007\001\b\001\t\000\000\005b\001\n\000\000\004\006\000\000\004\177\002f\000\000\000\000\000\000\000\000\000\000\004\000\004\178\004\001\004\002\002\167\000\000\004\003\000\000\000\000\000\000\004\179\000\000\002\216\004\180\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\004\001\004\002\002\167\004\005\004\003\000\000\005\237\000\000\000\000\000\000\004\005\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\006\000\000\004\177\002f\000\000\000\000\000\000\004\006\007\024\004\177\002f\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\004\005\004\178\000\000\000\000\000\000\004\005\001\007\001\b\001\t\000\000\004\179\001\n\002\216\004\180\000\000\004\005\004\006\000\000\004\177\002f\000\000\004\006\001\011\004\177\002f\000\000\000\000\001\007\001\b\001\t\000\000\004\006\001\n\004\177\002f\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\012\000\000\000\000\004\178\001(\001)\000\000\004\005\001\002\000\000\004\178\000\000\004\179\000\000\002\216\004\180\000\000\000\000\000\000\004\179\000\000\002\216\004\180\004\006\000\000\004\177\002f\000\000\004\005\000\000\000\000\000\000\000\000\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\000\000\004\178\004\006\000\000\004\177\002f\004\178\001\011\000\000\000\000\004\179\000\000\002\216\004\180\000\000\004\179\004\178\002\216\004\180\001\011\000\000\t\248\000\000\000\000\000\000\004\179\000\000\002\216\004\180\000\000\001?\000\000\000\000\001@\001\012\000\000\001A\001B\001(\001)\001\011\004\000\001\002\004\001\004\002\002\167\001\012\004\003\000\000\001\011\001(\001)\000\000\000\000\001\002\000\000\000\000\004\178\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007\174\004\179\001\012\002\216\004\180\n\007\001(\001)\000\000\000\000\001\002\001\012\000\000\004\178\000\000\001(\001)\000\000\000\000\001\002\000\000\000\000\004\179\000\000\002\216\004\180\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\004\005\000\000\000\000\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\000\000\000\000\000\000\000\000\004\006\000\000\004\177\002f\000\000\000\000\000\000\000\000\000\000\001?\000\000\007\181\001@\000\000\000\000\001A\001B\000\000\001?\000\000\000\000\001@\000\000\007\179\001A\001B\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\005\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007\206\000\000\000\000\000\000\000\000\004\006\000\000\004\177\002f\007\210\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\178\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\179\000\000\002\216\004\180\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\178\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\179\000\000\002\216\004\180")) + ((16, "\001\228\000\155\000\029\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\138\000\000\000\000\001_\001\146\000)\000P\000q\001\156\001T\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\152\000\000\000\000\000\000\000\000\000\000\001\208\000\000\000\000\000\000\001\242\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016 \003\"\004\026\004R\000\000\000\000\000\000\000\000\000\000\000\000\003\226\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016R\000\000\001\206\000\000\002\158;\208\004`\000\000\016R\004\186\000\000\003\212\000\000\005Z\000\000\000\000\000\000\000\000\000\000\005\156\000\000\006\156\007\026\000\000\000\000\006r\000\000\004\146\000\000\006\192\004\180\000\000\007\134\000\000\000\000\000\000\000\000\000\031\000\000\000\000\000\000\004\182\000\000\007\178\005\142\000\000\001\192\003\252\b*\000\000\tX\t\162\000\000\000\000\011\210\016R\000\0003\208\016R\bF\000\000\004|\003\144\002V\000\000\000\000\b`\006\170\021x\000\000\000\000\n^<\216\n~\000\000\012\184\011(\000\000\r\138\0154\180\210\000\000\180\232\000\000\000\209\000\000\000\000\003.\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\228=\012\n\024\t\204\nH\011V\011t\000\000\000\000\000\0004\132\n\208\000\000\000\000'\232\018\022\000\000\000\000\0008\000M\000\000\000\000\000\000\000\000\003\238\000\000\000\000\000\000\000\000=\\\000\000\b\238\000\000\011\142\000\000\n\018\000\0005B\018@\000\000\011\180\000\000\000\000\012J\000\000\n\178\000\000\000\000=\196\000\000\000\000\000\000\000\000\000\000\000\173\012\028]\146\012T\000\000\000\000G\202\012\142\163\208\r\018\000\000\000\000\144\212\rf\000\000\163\230\rz\000\000\000\000\146\216\r\180\000\000\001&\135\174\000\000\181P\001&\004x\000\000\000\000\000\000\000\000\181\146\000\000\182\004\001&\001&\001&\000\000\000\000\164\"\r\184\000\000\000\000\147t\r\214\000\000\000\000\000\000\000\000\014\154\000\000\000\000\000\000\n\236\000\000\000\000\014\194\000\000\011 \000\000\000\000\000\173\000\000>B\000\000\011\176\000\000\014\244\000\000\011\246\000\000\000\173\014\176\000\000\000\173\000\000>\238\000\173\014\190\164:\014\198\000\000\000\000\160\224\014\244\000\000\000\000\164\254\015(\000\000\000\000\162j\015p\000\000\015|\165R\015\138\000\000\000\000\171\150\015\184\000\000\000\000\165\154\015\194\000\000\000\000\171\198\015\202\000\000\171\216\018j\000\000? \000\173\015\212\165\178\015\224\000\000\000\000\172\n\015\234\000\000\000\000\1666\015\240\000\000\000\000\1720\015\244\000\000\016\002\166\186\016\006\000\000\000\000\172\180\016\026\000\000\000\000\166\226\016:\000\000\000\000\173P\016P\000\000\173\156\016z\000\000\000\000\173\188\016\128\000\000\000\000\000\173\000\000\001&\173\234\000\000\000\000\001&\173\254\000\000\000\000\r\212\017\030\000\000\000\000\000\000\000\000\000\000\015\240\000\000\006\228\017\208\000\000?\212\007 y,\000\000\000\000\000\000\000\000\000\173\000\000\000\000\000\000\014\004\000\000\000\000\000\000\000\000\000\000\000\000\004x\017\190\000\000\000\000\000\000\000\173#@\000\173?t\000\173\000\000\000\000y\146\000\000\000\000\018\152\000\000\000\000\000\000\000\000M\190kl\017\012\007\"\017\000\154\022\000\000\000\000\000\000\000\000?\138\000\173\000\000\154\\\000\000\000\000\000\000@>\000\173\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012\006\000\000\0174\007\220\017\234\000\000\000\000\000\000\000\000\005(\000\000\000\000\b\006\000\223\000\000\b8\007T\017T\bh\006V\0078\003\024\006 \tX\018\172\006<\b\160\000\b\tV\000\000\000\000\000\000\017\148\bz\023@\023\248\017\160\tX\004\150\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\196\t\178\024B\006|klA\140\024\174\000\000y\232A\154\000\000\000\000\000\000A\240\000\173\000\000\154l\000\000\000\000\000\000BP\000\173\000\000\000\000z4{6{\196\000\000\0013\000\000\000\000\000\000\018\200B\174\000\173\018\222\154\224\017\250\t\198\017\030\000\000\003\156\000\000\000\000\000\000\003\238\000\000\000\000\155..\196\000\165\000\000\000\000\003\204\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\155L\000\000\000\000\000\000C\b\000\173\000\000\000\000M@\000\000\000\000\000\000\005L\000\000\000\000\000\000\000\000\000\000\000\000\019t\156\030\000\000\018@\t\240\1562\000\000\000\000\000\000\003\"\000\000\156F\003\"\000\000\157\024\000\000\000\000\000\000D \000\173\000\000\000\000\132\156\000\000\000\000\000\000\000\000\000\000\003\"\1576\003\"\157\132\012\006\019\014\000\000\151p\000\000\000\000\000\000\000\000\003\"\000\000\158\b\000\000\000\000\000\000D\\\000\173\000\000\000\000\174\026\000\000\000\000\003\"D\128\000\173\000\000\158N\003\"\n*\000\000\003\"\000\000\000\000\003\"\000\000{\196\000\000\000\000\000\000\003\"|.\000\000\000\000\000\000\003\"\000\000\000\000\003\"\000\000\003\"\000\000\000\141\0198\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\174B\000\000\000\000\000\000\018@\158\218\003\"\000\000\000\000\000\000\159 \000\000\000\000\000\000D\188\000\173\000\000\000\000\174\136\000\000\000\000\018@\000\000\159\168\000\000\000\000\000\000EB\000\173\000\000\000\000\175\128\000\000\000\000\018@\175\142\000\000\159\242\000\000\000\000\000\000F\012\000\173\000\000\000\000\175\220\000\000\000\000\018@|\022\000\000\007\136\018@\025\006\000\000Fl\000\173\019J\000\000\000\000\001R\000\000\000\000\018\202\000\000\000\000\000\000\000\000\000\000\000\000\b\210\018\208\019|\025>\018\198\018\220\018\236\n2\001\128\001\176\n4||F\144GV\020h\019\252|\186x\200\000\000}F\019 \nJy\246\167$|\166}\250\181\b\019,\n\170\025|\019F\n\192\026<\019L\n\230Ctz\024\003\"\026\222\019\146\011\024\160\016\020\174\000\000HS\128\000\000\000\184\132\140\020\174\r\134T\002\000\000\000\184\133.\020\176\r\138TN\000\000\000\184\133Z\020\180\r\228T\208\000\000\000\184\133\230\020\196\r\232U\024\000\000\000\184\1340\020\202\r\236U\154\000\000\000\184\134\156\020\208\014\bU\230\000\000\000\184\135(\020\210\014\014Vh\000\000\000\184\135T\020\218\014\018V\176\000\000\000\184\136\030\020\222\014 W2\000\000\000\184\136t\020\228\014$W~\000\000\000\184\136\160\020\230\014\000\250\144\b\0210\015Lf\030\000\000\000\184\005R\000\000\000<\161\168\162\018\003\"\1448\0212\015Zfp\000\000\000\184\162\192\003\"\144\130\0216\015\\g\024\000\000\000\184\163\b\003\"\1456\0218\015hg4\000\000\000\184\003\248\145\134\021>\015\146g\188\000\000\000\184\146\018\021@\015\156hJ\021@\146^\021F\015\170i\n\000\000\000\184\t\150\146\180\021J\015\172iP\000\000\000\184\000\000\000\000\000\000\0210\000\000\000\000\000\000\000\000\000\000\000\000\000\184\0210\000\000i&\021P\015\178i\152\rJ\0210\000\000\000\000\000\000\000\000\005\022\0210\000\000i\220\000\000\021R\015\198j\162\rb\0210\000\000\000\000\000\000\007\128\0210\000\000\022\182\000\000\000\000\1672\000\000\001\006\000\000\017\n\000\000\022@\000\000\002\134\000\000\000\000\000\000\000\000\000\000\n\198\000\000\000\000\000\000\021\\\016\028k*\000\000\000\184\000\000\000\000\000\000/\226\000\0000B\000\000\000\000\000\000\000\000\000\000\147\020\021b\016(k\172\000\000\147\220\021d\016:k\244\000\000\000\184\000\184\1488\021h\016\017\150\021\206qv\000\173\000\000\001\168\017\174\022\182\000\000\000\000\000\000\000\000\000\000\000\000q\178\005~\000\000\017\184\023$\000\000\000\000\000\000\000\000\000\000\000\000\020\186\016\190\000\000\017\190\003\026\000\000\017\202\017\250\007\b\000\000\003b4$\000\000\006\022\000\000r\146\000\173\000\173\000\000\000\000\006\002\000\000\007\158\000\000\005\028\006\002\006\002\000\000\017\2524H\000\173r\218\000\173\017P\000\000\000\000\000\000\017`\000\000\000\000\003\214\000\000\006\216\022f\018,\023\186\022\020\000\000\000\000\0056\b\152\022t\000\000\000\000\0182\023\202\022$\000\000\017\130\028\n\000\187\018t\021\238\000\155\004\208\018v\022\210\000\000\000\000\023\1764\204\000\000\000\0005\136\000\000\017\186\000\000\007\224\000\000\000\000\000\000\000\000\000\000\000\000s\006\000\173\000\000\023\1786N\000\000\000\0006~\000\000\001D\018~\023F\000\000\000\000\150\026\020\208\007\174\000\000s\186\000\1736\218\000\000\000\0007\n\000\000\000\000\018\030\000\000\0064\000\000\000\000\000\000\000\000\000\000\000\000\021\232\000\000\000\000\150r\022\012\t\190\000\000t\"\000\1737T\000\000\000\0007\192\000\000\000\000\018\1408L\018:\000\000\018\154\018\156\0014\001`\018\186\014\224\018\196\023L8\244\018\158\000\000\018\202\018\210\b\142\000\000\002\2009:\000\000\b \000\000\018\224\029\248E\184\006P\021\224\006\140\000\000K\1380\\\000\000\r\206\000\000\000\000\r\206\000\000\000\000\r\206\t.\000\000\006\160\r\206\023R9\240\018\196\000\000\r\206\000\000M\252\000\000\176@\000\000\149\172\014\192\000\173\000\000\150\202\176R\000\000\150\222\000\000\004\228\000\000\000\000\000\000\006\002\000\000\000\000\000\000\000\000\r\206\000\000\000\000\019\014\000\000\0070\014\246\019,\000\000\019\0129\138\019z\000\000\000\000\000\000\019\160\000\000\000\000\001B\000\000\r\206\151(\000\000\007\144\r\206^P\000\000\019\174\022\142\019\018\023\226\022@\000\000w\162\019\236\022\152\000\000\000\000\000\000P(\018\198\000\000\000\000\000\000\000\000\000\000\000\000\0202\000\000\019\246\000\000\022<\019(\n\178\007\240\000\000\022\172\019:\011\170\000\000\014d\023\214\023~\019\250\022\180\000\000\000\000\000\000\000\000\000\000\000\000\020\006Q\192\000\000\000\000\000\000\0202\000\000\000\000\000\000\000\000\020\nSX\000\000\000\000\000\000\000\000\000\000\000\000\023v\002\156\0156\022x\005\196\019J\000\000\019z\000\000\000Q\000\000\000\000\000\000\000\000\000\000\000\000\000\000\022z\b\250\019~\000\000\019\128\000\000\004\172\015\242\023\240\023\152\020,\000\000\000\000\023\132\003\012\001\250\000\000\000\000\000\000\000,\004n\000\000\176x\000\000\000\000\003\"\000\000\163\142\000\000\000\000\000\000tj\000\173\000\000\000\000\176\198\000\000\000\000\003\"\003\"\000\000t\222\000\173\000\000\004\172\000\000\000\000\022b\019\180v\002\000\000\000\000\000\000\185\152\000\000\185\230\000\000\022d\019\188v\164\000\000\000\184\000\000\152\018\000\000\000\000\023\248\000\000\000\000\000\000\186:\000\000\022h\019\190v\194\000\000\000\184\000\000w,\000\000\000\000\000\000\000\000\000\0009\180\019\194\000\000\019\196\151\168\000\000\000\000\001&\1616\000\000\000\000\000\000\000\000\000\000wn\000\173\022(\167\160\022*\000\000\000\000\177\002\022,\000\000\000\000\167\250\0220\000\000\000\000\177n\0222\000\000\0154\011\192\000\000\000\000\012\006\000\000\000\000\000\000\015\178\022x\022\152\015\178\000\000\000\000\000\000\000\173\000\000\022z\012\208\000\000\000\000\012\226\000\000\000\000\000\000\000\000\000\173\000\149\004B\r\026\000\000\000\000\rR\000\000\000\000\000\000\000\000\r\142\000\000\000\000\r\154\000\000\000\000\000\000\000\000\000\000\n&\023\178\020V\000\000\000\000\023\158\000\244\002\030\000\000\000\000\000\000\000\000\b\162\016\208\023\240\011N\023\182\020|\000\000\000\000\023\162\001\024\b\140\000\000.\176\022\128\022\134\019\198\015\016\020\134\000\000\019\206\015l\020\136\000\000\022\136\022\138\019\234\022\182\022\180\016\022\007\030\000\000\020\024\016\168\000\000\016\180\020\192\000\000\0234\000\000\017\138\004n\020\198\022\254\020(\023B\000\000\018L\007\164\020\200\023\n\000\000\000\000\023H\022b\023p\000\000\000\000\000\000\n\144\tF\023\158\023v\000\000\020\206\000\000\018\178\b\232\000\000\020\234\000\000\000\147\018\196\n\b\000\000\000\000\r\202\000\000\000\000\022\180\020*\016z\022\004\022\182\020,\024l\022\200\000\000\000\000\152B\020\246\023\"\020H\024t\022\210\000\000\000\000\152V\020\248\023.\000\000\000\000\000\000f\234\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\254\000\000\022\212\020Z\019~\b\232\023\200\000\000\023F\000\000\023L\020d\012@\000\000\017\178\000\000\011\150\024\024\021\000\023P\000\000\000\000\000\000\000\000\000\000\000\000\004n\000\000\000\000w\216\000\173\022\160\168\026\022\162\000\000\000\000\177\156\022\164\000\000\000\000\168D\022\166\000\000\000\000\177\188\022\168\000\000\022\172\168d\022\174\000\000\000\000\178\n\022\176\000\000\000\000\169\"\022\178\000\000\000\000\1788\022\180\000\000\178V\022\202\000\000x\n\000\173\022\182\169l\022\184\000\000\000\000\178\134\022\186\000\000\000\000\169\132\022\190\000\000\000\000\178\180\022\202\000\000\022\206\169\198\022\208\000\000\000\000\178\212\022\212\000\000\000\000\170F\022\214\000\000\000\000\178\240\022\216\000\000\001&\179n\022\218\170\164\022\220\000\000\000\000\180\b\022\222\000\000\000\000\170\232\022\224\000\000\000\000\1808\022\226\000\000\001&\180\\\022\232\171n\022\234\000\000\000\000\180\164\022\238\000\000\000\000\171\132\022\242\000\000\000\000\180\182\022\244\000\000\011\190\000\000\000\000\000\173\000\000\000\000\000\000\000\000\000\000x\144\000\000\r@\000\000\023d\000\000\014\030\000\000\000\173\023j\000\000\0244\021\002\000\000\000\000\000\000:|\000\000;\030\000\000\000\000\000\000\000\000\000\000\011\n\000\000\000\000\000\000\001\016\001T\000\000\000\000\000\000\000\000\000\000\015\016\001T\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\183\000\000\000\000\000\000;\168\000\000\000\173\000\000\000z\000\000\000\000\000\000\001\134\000\000\000\000\000\000\001\220\000\000\000\000\000\000\000M\000\000\000,\000\000\000i\000\000\004n\000\000\000\019\000\000\000\000\000\000\153\012\003\"\000\000\000\000\005\238\000\000\000\000\000\000\000\000\n\198\005r\023n\004\n\000\000\000\000\000\000\000\000\000\000\000\000\023r\004\142\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000d\148\000\000\021\006\000\000\000\000\000\000\000\000\0060\bR\015L*\152\000\000\000\000\021\b@\204\000\000\000\000\000\000\021,s\210\000\000\000\000\000\000\000\000"), (16, "\t\132\004\000\004]\004\001\004\002\002\167\002b\004\003\011\134\002f\002\136\002\165\nF\000\182\002\166\002\167\005y\002\168\000\200\011\165\002\137\004\142\t\133\t\164\t\132\004\000\t\135\004\001\004\002\002\167\004\148\004\003\007}\0008\007\143\000\182\t\136\t\165\002\169\003\233\000\200\002\181\002\182\002\187\t\219\004\142\t\133\t\164\004l\002\139\t\135\002f\011\189\005\211\004\148\004\026\000\252\001\"\001\b\001\t\t\136\t\165\001#\004\167\001\002\001\005\002b\011\185\b[\002f\002g\002f\t\137\003\186\000\201\004]\t\168\002b\003\187\003\189\002f\002\136\004\000\n\192\004\001\004\002\002\167\004\167\004\003\002b\000\193\002\158\002f\002\136\011\193\004\030\t\137\000\204\011\190\tk\t\168\t1\004\142\003\020\004F\000\206\005{\002f\004<\nv\004/\004\148\t\138\000\165\004@\005\211\001\002\011\186\011\173\000\205\002\139\004l\000\252\004\187\002f\004m\b4\000A\007\143\t\139\001\002\001\005\002\139\002\188\tm\004h\t\138\000\157\011\194\004\006\t\193\004\177\002f\t3\004\167\nI\nJ\004\187\001\006\002\189\n\193\004<\002f\t\139\011\166\to\002\216\004@\t\169\001\002\000<\011\150\t4\004\006\004A\004\177\002f\t6\nh\011\175\006\186\tr\nM\007\217\000\167\t\170\001`\001\b\001\t\001r\t\194\001a\t\169\003V\004B\004\026\tp\t\142\001$\006\220\003\235\t\143\001(\001)\t\145\t\195\001\002\t\150\004m\t\170\004[\004R\b\025\006\178\004\187\004\192\nq\004A\004\193\000\193\004\207\t\142\t\162\006}\001!\t\143\004\178\003\236\t\145\000\193\004\006\t\150\004\177\002f\n\128\004\208\002\214\002\216\004\180\004\192\000q\002\167\004\193\t\163\004\207\002\215\t\162\002\216\t\132\004\000\004\178\004\001\004\002\002\167\0008\004\003\011\132\011\151\0008\004\208\005\127\002\216\004\180\000;\001\b\004\210\004\189\t\163\nn\004\142\t\133\t\164\t\132\004\000\t\135\004\001\004\002\002\167\004\148\004\003\t\179\001`\001\b\001\t\t\136\t\165\001a\000@\002b\004\210\006\176\002f\002\136\004\142\t\133\011\139\004\192\004i\t\135\004\193\002b\004\207\004\148\002f\002\136\000\193\011\152\004\178\t\136\t\165\000n\004\167\011\177\011\159\001\002\004]\004\208\001$\002\216\004\180\t\137\001(\001)\002b\t\168\001\002\002f\002g\000\144\000\252\004\000\004#\004\001\004\002\002\167\004\167\004\003\001\002\001\005\004]\004\028\004R\b\253\006\221\t\137\002b\004\210\tq\002f\002g\004\142\nt\nu\006\181\011\181\b\255\005\211\007n\t1\004\148\t\138\004l\011\160\003\241\002f\011\178\n\024\004\206\007\176\nt\nu\004\187\002b\001\002\005\211\002f\002\136\t\139\nM\007\217\t1\004a\tm\000\160\t\138\004l\006\181\004\006\002f\004\177\002f\006\226\004\167\011\161\002\151\004\187\nM\007\217\001(\b\178\t3\t\139\001\002\to\000\206\b\161\t\169\011\182\000\212\004/\002f\004\006\001$\004\177\002f\004\162\001(\001)\011\162\t4\001\002\b\162\t3\t\170\t6\b\185\003\240\000[\t^\t\192\t\169\004h\000\144\b\180\tp\t\142\001\b\000\193\004m\t\143\t\182\t4\t\145\t\216\001r\t\150\t6\t\170\003X\000\146\tF\011t\004\187\004\192\b\182\000_\004\193\000\148\004\207\t\142\t\162\nr\004m\t\143\004\178\000\193\t\145\011\141\004\006\t\150\004\177\002f\000c\004\208\000:\002\216\004\180\004\192\000>\b\183\004\193\t\163\004\207\t\194\t\162\t\215\t\132\004\000\004\178\004\001\004\002\002\167\002b\004\003\t\171\002f\002\136\004\208\t\195\002\216\004\180\ns\001\b\004\210\004\189\t\163\002\150\004\142\t\133\t\164\t\132\004\000\t\135\004\001\004\002\002\167\004\148\004\003\006\241\001`\001\b\001\t\t\136\t\165\001a\002b\001\b\004\210\002f\002g\002\161\004\142\t\133\t\164\004\192\006\221\t\135\004\193\005\222\004\207\004\148\002f\002\136\001&\001'\004\178\t\136\t\165\000x\004\167\011\213\004\002\002\167\011q\004\208\011s\002\216\004\180\t\137\004]\t1\000\148\n\025\t\196\t\197\002\165\002\151\000\252\002\166\002\167\001(\002\168\007\135\004\167\001\002\001\002\001\005\000\254\t\198\t\199\005\148\005\236\t\137\004i\004\210\001\002\t\173\000\144\004j\005\154\t\200\007\217\002\169\003\233\003\186\002\181\002\182\002\187\t\138\005\132\003\189\004n\t3\000\252\b[\004l\007\181\002f\002f\004\187\006'\001\002\001\005\002f\002\136\t\139\011\221\004\002\002\167\t\196\t\197\t4\t\138\003\234\000\206\004\006\t6\004\177\002f\bn\t=\0008\002\151\004\187\t\198\t\199\001(\007\138\001\b\t\139\001\002\nF\t\212\b\161\t\169\000\216\t\200\007\217\b\218\004\006\001$\004\177\002f\006D\001(\001)\002\151\002\b\001\002\b\162\001(\t\170\bo\b\169\001\002\000\170\001&\001'\t\169\001\007\001\b\001\t\000w\t\142\001\n\004]\002\200\t\143\b\184\b\161\t\145\003\152\004m\t\150\007\140\t\170\011\214\002\188\004\177\002f\b^\004\192\002\216\n\159\004\193\b\162\004\207\t\142\t\162\b\163\000v\t\143\004\178\002\189\t\145\007\177\002f\t\150\000\146\002\165\000\149\004\208\b\180\002\216\004\180\004\192\000\148\004^\004\193\t\163\004\207\004l\t\162\000\127\002f\002\011\004\178\t\132\004\000\t\160\004\001\004\002\002\167\b\182\004\003\004\208\000\184\002\216\004\180\006\199\002\186\004\210\000\252\t\163\003\235\011\224\011\225\000\193\004\142\011\227\001\002\001\005\011\222\t\135\004\177\002f\002b\004\148\b\183\002f\002g\004]\006{\t\136\011\229\004\210\004\030\006\175\002\151\n\255\005x\005\128\001(\001\011\nI\nJ\001\002\001r\000\194\004<\002\214\003\149\000\144\002\200\t\245\004@\000\139\001\002\003\165\002\215\004\167\002\216\011\201\004\002\002\167\000\197\000\208\n`\004m\t\137\001\012\nM\007\217\007s\001(\001)\005\211\004l\001\002\b\220\002f\001`\001\b\001\t\005\155\000\144\001a\004\030\000\193\tm\t\220\t\004\t\132\004\000\000\252\004\001\004\002\002\167\011\244\004\003\004<\000\142\001\002\001\005\001_\004A\004@\000\252\001\002\t\138\to\011\236\0045\004\142\011\237\001\002\001\005\0046\t\135\000\206\004\187\000\228\004\148\t\206\004/\004B\t\139\002h\t\136\011\245\000\193\004\000\000\156\004\001\004\002\002\167\004\006\004\003\004\177\002f\011\203\tp\005\211\001?\006}\001\224\001@\000\193\000\193\001A\001B\004\142\011\232\007\184\004m\004\167\004A\001`\001\b\001\t\004\148\000\193\001a\b\134\t\137\t\b\004\030\b\003\007\183\004W\b\161\005\211\t\170\000\146\000\211\000\147\004B\b[\007\185\004<\002f\000\148\006\181\b\161\t\142\004@\b\162\001\002\t\143\002Q\b\168\t\145\000\144\004\167\t\150\000\164\004\206\007\139\011\204\b\162\004\177\002f\004\192\b\193\t\138\004\193\000\146\004\207\000\186\t\162\000\163\006\177\001$\004\178\000\148\004\187\001(\001)\0045\000\252\001\002\t\139\004\208\004Q\002\216\004\180\000\193\001\002\001\005\b\170\t\163\004\006\000\206\004\177\002f\004A\002O\004/\t\132\004\000\000n\004\001\004\002\002\167\007\186\004\003\011\249\002b\001r\005\211\002f\002g\004\210\004\187\000\169\004B\000\193\0042\t\181\004\142\t\133\t\217\007\138\t\188\t\135\002\216\000\190\t\170\004\148\004\006\004<\004\177\002f\t\160\t\136\t\165\004@\002b\001\002\t\142\002f\002g\t1\t\143\005\211\004]\t\145\002b\001$\t\150\002f\002g\001(\001)\000\206\004]\001\002\004\192\004\"\004/\004\193\004\167\004\207\005\211\t\162\004\189\b\225\004]\004\178\007\140\t\137\b\157\t1\000\146\b\164\000\192\000\234\004\208\006\212\002\216\004\180\000\148\t1\004h\t3\t\163\004A\007\127\0045\000\189\000\144\004l\004Y\0046\002f\004\192\b\186\007\131\004\193\b\152\004\207\004l\002f\t4\002f\001\251\004\178\004\210\t6\007\134\t\138\004]\t:\004l\t3\004\208\002f\002\216\004\180\002b\000\196\004\187\002f\002g\t3\t\132\004\000\t\139\004\001\004\002\002\167\n\148\004\003\t4\n\166\001\249\002\031\004\006\t6\004\177\002f\003Z\t7\t4\011\236\004\210\004\142\011\237\t6\005\211\b\029\t\135\tA\007\142\t1\004\148\t\169\004l\000\193\003\186\002f\t\136\011\240\004\030\b\244\003\189\004U\002b\004m\004h\002f\002g\000\144\t\170\b\166\001\b\004<\002f\004m\n}\004\030\b\164\004@\004S\001\002\t\142\007\157\000\193\004\167\t\143\004m\0008\t\145\004<\b\229\t\150\t3\t\137\007G\004@\0045\001\002\t1\004\192\004f\0046\004\193\003]\004\207\004\030\t\162\000\146\004\031\000\199\004\178\t4\0045\000\193\000\193\000\148\t6\0046\004<\004\208\td\002\216\004\180\005\211\004@\002>\001\002\t\163\004A\005\211\004m\004i\t\149\t\138\004]\002b\004]\000\210\002f\002g\t3\007\169\007\171\007\173\004\187\004A\002G\006\181\004B\004\210\t\139\t\132\004\000\001r\004\001\004\002\002\167\003\151\004\003\t4\004\006\004\206\004\177\002f\t6\004B\000\144\002R\tv\005\211\007S\002J\004\142\t\133\004A\011\243\007\254\t\135\b\024\0045\004l\004\148\004l\002f\0046\002f\b+\t\136\t\175\000\146\t'\000\215\n\185\002f\004B\002M\t\170\000\148\001\007\001\b\001\t\002\151\003b\001\n\002\\\001(\001\015\000\193\t\142\001\002\n\129\000\226\t\143\001\029\004\167\t\145\b\194\004i\t\150\001\007\001\b\001\t\004\030\t\137\001\n\0044\004\192\001\017\000\193\004\193\004L\004\207\003\191\t\162\001\218\004<\t,\004\178\003\189\004\030\b0\004@\0048\001\002\b[\000\233\004\208\002f\002\216\004\180\ns\007\138\004<\000\193\t\163\nF\n\235\004m\004@\004m\001\002\002\250\002\167\t\138\001\007\001\b\001\t\006\181\007\227\001\n\t?\004]\001\015\002f\004\187\004\030\004\210\000\193\004:\001\029\t\139\004\206\n\178\001\027\004M\002f\000\193\000\146\004<\001-\004\006\004A\004\177\002f\004@\000\148\001\002\004\030\007\140\002\017\004E\b\164\001\011\nU\001\027\007\138\0012\002U\004A\t\178\004<\004B\000\144\b\028\007\248\002`\004@\004l\001\002\003\186\002f\nF\b5\001\011\t\012\003\189\t\170\001\219\004B\001\012\t\202\0045\002\216\001(\001)\007\132\0046\001\002\t\142\006\233\002\167\0045\t\143\006\181\004A\t\145\0046\001r\t\150\001\027\001\012\003\162\007\140\0008\001(\001)\004\192\004\206\001\002\004\193\002m\004\207\004\030\t\162\004B\004d\004A\004\178\001\011\nk\002\146\b*\0012\007\143\004P\004<\004\208\004\030\002\216\004\180\004p\004@\001\002\001\002\t\163\005\211\004B\007\138\nI\nJ\004<\002\195\000\144\001>\004m\001\012\004@\000\193\001\002\001(\001)\006\169\001?\001\002\011\143\001@\004\210\000\241\001A\001B\nV\ni\001\007\001\b\001\t\nM\007\217\001\n\004]\004\030\001\015\000\144\007[\001?\003i\003l\001@\001\029\004\206\001A\001B\004A\004<\000\146\007\140\0011\003w\001Y\004@\0045\001\002\000\148\000\193\001s\004C\n\186\004A\000\144\001\007\001\b\001\t\004B\000\193\001\n\nI\nJ\001\015\000\206\001Y\001>\t\148\t\153\004/\001\029\004l\000\167\004B\002f\001?\nF\007\157\001@\005\213\000\193\001A\001B\nV\ni\001\007\001\b\001\t\nM\007\217\001\n\003~\0045\001\015\006\181\004A\n\191\0046\004\030\000\244\001\029\007^\003\129\002\165\001\027\001\222\002\166\002\167\004\206\002\168\001Y\004<\nF\000\193\000\193\004B\001s\004@\n\188\001\002\000\146\003\132\001;\001\011\nz\000\193\000\144\0012\000\148\001\022\002\169\002\196\001\021\002\181\002\182\002\187\007\172\007\171\007\173\000\206\001\027\001r\nF\n\242\004/\003\164\003\138\001\020\004m\000\146\001\012\001z\003\245\004\030\001(\001)\007a\000\148\001\002\001\011\n\246\000\144\011n\0012\002\197\001r\004<\004A\011\145\005\137\001\027\0045\004@\000\193\001\002\000\146\004;\001\127\004\014\004\016\004\218\002\198\002\230\000\148\000\193\004\030\001\012\004B\007f\001\011\001(\001)\007\157\0012\001\002\004\025\000\144\001\025\004<\004H\001\007\001\b\001\t\000\193\004@\001\n\001\002\001\002\001\015\nI\nJ\001\236\000n\0045\001>\001\029\001\012\004{\004T\004\129\001(\001)\004A\001?\001\002\002\201\001@\007\157\000\193\001A\001B\nV\ni\001\237\000\193\000\144\nM\007\217\001/\004\139\002\005\002\189\004B\0008\002f\nI\nJ\000\146\004K\001\134\001>\n>\007\171\007\173\004A\000\148\001\002\0016\001Y\001?\000\193\000\193\001@\000\144\001s\001A\001B\nV\ni\004\145\004\183\0008\nM\007\217\004B\nI\nJ\000\193\004\197\000\144\001>\002\203\000\146\005\211\001\138\001\027\nA\007\171\007\173\001?\000\148\004\203\001@\000\144\001Y\001A\001B\nK\nL\000\193\001s\000\193\nM\007\217\001\011\001\007\001\b\001\t\0012\000\144\001\n\001r\004\213\001\015\001\242\005\145\001\236\000\146\002\214\003\180\001\029\000\193\006\193\004\224\001Y\000\148\000\144\002\221\007\157\002\216\001s\001\012\0019\004\230\006\207\001(\001)\007\157\001\237\001\002\005\187\002\167\001\007\001\b\001\t\002\003\005\211\001\n\005\211\004\236\001\015\000\193\000\193\001\236\005\189\002\167\000\146\001\029\003\184\004\030\000\193\004\242\007i\001j\000\148\007\157\001\007\001\b\001\t\007B\005\212\001\n\004<\000\193\001\015\001\237\004\248\001\236\004@\001r\001\002\001\029\001\238\005\163\000\146\004\254\007\192\nO\007\171\007\173\001\027\001G\000\148\007\157\000\193\001>\nR\007\171\007\173\001\237\000\146\b/\007\197\007\143\001?\000\193\002\001\001@\000\148\001\011\001A\001B\001\252\0012\000\146\000\193\007\201\007\152\007\217\001\242\001i\005\004\000\148\007\157\nZ\007\171\007\173\001\027\004A\007\157\000\146\000\193\bB\007\223\ta\b&\001\012\000\144\000\148\001Y\001(\001)\007M\000\193\001\002\001s\001\011\000\146\004B\011y\0012\001\027\n]\007\171\007\173\000\148\001\242\005\n\000\193\005\016\001\007\001\b\001\t\b8\n\194\001\n\004\030\000\193\001\015\007l\001\011\001\253\001r\001\012\0012\001\029\005\196\001(\001)\004<\001\242\001\002\nb\007\171\007\173\004@\001M\001\002\ne\007\171\007\173\b>\005\211\001\255\0008\006\181\011\157\001\012\005\211\b\155\001>\001(\001)\000\193\005\022\001\002\005\028\006\181\005\"\001?\t\155\004\030\001@\007\242\007\129\001A\001B\001\252\001\007\001\b\001\t\t\132\005(\001\n\004<\005.\001\015\0054\001Q\001\253\004@\n\193\001\002\001\029\005:\004A\005@\001>\001T\000\193\011\236\000\193\006\181\011\237\001Y\001\027\001?\t\135\005F\001@\001s\001\255\001A\001B\001\252\004B\005\211\t\136\000\146\005\211\011}\001>\bH\002\167\001\011\005L\000\148\001X\0012\001m\001?\bX\007\217\001@\001\242\t8\001A\001B\001\252\b,\004A\001Y\te\005R\001q\b1\000\193\001s\000\193\004\030\000\193\001\012\b\001\t\137\t\160\001(\001)\005X\005f\001\002\004B\005l\004<\001\027\000\193\001Y\005p\000\193\004@\000\193\001\002\001s\001\007\001\b\001\t\006\181\000\193\001\n\000\193\005\246\001\015\004\030\001\011\001\236\b$\005\255\0012\001\029\001v\006\b\000\193\n\135\001\242\t\138\004<\006\018\001\007\001\b\001\t\001\002\004@\001\n\001\002\b6\001\015\001\241\bS\000\193\001}\001\012\t\139\001\029\006\027\001(\001)\001>\006$\001\002\004A\006/\0068\001\007\001\b\001\t\001?\000\193\001\n\001@\006A\001\015\001A\001B\tN\001\136\006H\011\239\001\029\n\139\004B\000\193\000\193\bJ\006r\000\193\006w\001\002\006\181\011\158\000\193\000\206\004A\006\131\006\139\001\141\br\001\030\t\141\001\027\006\147\001Y\001\154\000\193\011\129\005\211\001\149\001s\n)\000\193\t\142\t\208\004B\000\193\t\143\001>\t\031\t\145\001\011\000\193\t\150\006\154\0012\001\027\001?\t8\006\160\001@\001\242\001\153\001A\001B\001\252\006\165\006\172\t\162\000\193\006\191\t\186\007\217\000\193\005\211\001\011\000\193\000\193\001\012\0012\006\205\001\027\001(\001)\004\030\000\193\001\002\n\147\001\157\t\163\002\165\000\193\001Y\002\166\002\167\006\222\002\168\004<\001s\000\193\001\011\000\193\001\012\004@\0012\001\002\001(\001)\000\193\000\193\001\002\001\007\001\b\001\t\005\211\000\193\001\n\002\169\003\r\001\015\002\181\002\182\002\187\006\237\001\161\b`\001\029\001\012\t\160\006\254\001\170\001(\001)\nE\007\217\001\002\000\193\001\165\007\003\007\n\002\165\000\193\001>\002\166\002\167\001\030\002\168\007\028\000\193\000\193\007!\001?\000\193\004A\001@\nx\011\001\001A\001B\001\252\001\169\bc\000\193\n\176\n\195\001\173\001>\002\169\003\233\001\177\002\181\002\182\002\187\004B\001\191\001?\n\153\006\223\001@\007,\001\186\001A\001B\bT\001\002\001\190\001Y\005\211\001\194\0075\001\198\001>\001s\007@\007K\005\211\001\027\001\207\007W\001\202\001?\b\145\007r\001@\007x\000\193\001A\001B\001\129\001\206\001Y\000\193\002\188\007\146\007\165\001\011\001s\007\167\007\214\0012\000\193\000\193\001\007\001\b\001\t\001\210\007\219\001\n\002\189\000\193\001\015\002f\000\193\n\199\007\217\001Y\001\214\001\029\007\234\t\160\005\211\001s\001\012\001\007\001\b\001\t\001(\001)\001\n\007\240\001\002\001\015\007\253\b\017\b\023\b\027\001\030\001\217\001\029\b!\001\221\000\193\002\188\b(\001\007\001\b\001\t\001\143\n\244\001\n\004\030\000\193\001\015\n\158\b\177\000\193\000\193\001\030\002\189\001\029\000\193\002f\b\181\004<\000\193\001\235\000\193\001\245\0014\004@\005\211\001\002\002\n\b.\002\023\000\193\000\193\002\030\001\030\000\193\000\193\bG\bW\b_\005\211\002\214\001>\001\027\000\193\001\180\bb\bj\bw\t\244\002\215\001?\002\216\002=\001@\tw\000\193\001A\001B\001\129\b}\002A\001\011\b\219\001\027\b\136\0012\000\193\b\147\002L\000\193\000\193\000\193\000\193\b\165\004A\004\000\000\193\004\001\004\002\002\167\000\193\004\003\001\011\002S\001\027\001Y\0012\t\160\001\012\005\211\002\214\001s\001(\001)\004B\004\142\001\002\b\151\b\172\002\215\002[\002\216\004\030\001\011\004\148\n\165\002_\0012\005\211\001\012\000\193\006m\b\254\001(\001)\004<\ty\001\002\000\193\000\193\000\193\004@\b\188\001\002\002l\b\198\t\024\000\193\000\193\000\193\001\012\001\007\001\b\001\t\001(\001)\001\n\004\167\001\002\011\020\002\142\000\193\001\007\001\b\001\t\005\211\000\193\001\n\003\015\000\193\001\015\002\145\001>\004\030\003\007\000\193\n\184\001\029\b\205\b\209\005\211\001?\004\030\b\238\001@\n\190\004<\001A\001B\001\129\t\022\004A\004@\001>\001\002\004<\t#\tc\t\027\000\193\000\193\004@\001?\001\002\000n\001@\002\194\bJ\001A\001B\001\129\004B\002\224\tB\001>\tE\001Y\004\187\t \005\211\003\019\t>\001s\001?\000\193\t&\001@\000\193\bM\001A\001B\001\129\t.\004\006\003\"\004\177\002f\001Y\005\211\003Y\003U\003[\004A\001s\003c\005\211\007\225\001\027\001\007\001\b\001\t\004A\tb\001\n\th\001\011\001\015\t|\001Y\011$\000\193\000\193\004B\001\029\001s\000\193\001\011\tf\t\147\004\189\0012\004B\000\193\007\218\be\004\030\005\211\t\152\n\234\000\193\000\193\005\211\001\012\005\211\007q\t\189\001(\001)\004<\005\211\001\002\005\211\003h\001\012\004@\000\193\001\002\001(\001)\004\192\000\193\001\002\004\193\000\193\004\207\007<\tj\000\193\005\211\t\191\004\178\t\203\t\205\0078\000\193\001\007\001\b\001\t\003v\004\208\001\n\002\216\004\180\001\015\003}\tn\001\007\001\b\001\t\005\211\001\029\001\n\tz\001\027\001\015\000\167\000\193\003\128\t\249\000\193\003\131\001\029\n\003\n\018\004A\n\030\n \n\134\005\211\004\210\000\193\n\138\001\011\005\211\005\211\001?\0012\001>\001@\000\193\bJ\001A\001B\t\129\004B\n\144\001?\000\193\t\144\001@\t\158\bJ\001A\001B\bT\003\137\t\166\003\174\t\176\001\012\003\168\b\144\005\211\001(\001)\005\211\005\211\001\002\n\150\005\211\011[\000\193\b\249\000\193\000\193\t\211\n\162\n\198\n\202\003\171\001\027\001Y\004\000\005\211\004\001\004\002\002\167\001s\004\003\005\211\005\211\001\027\n\210\005\211\005\211\005\211\nm\005\211\005\211\001\011\000\193\n\233\004\142\0012\000\193\000\193\n\241\000\193\000\193\000\193\001\011\004\148\003\244\000\193\0012\n|\005\211\003\251\n\021\004\r\n\136\n\140\004\019\001>\004\027\004(\001\012\000\193\004*\004?\001(\001)\001?\004O\001\002\001@\004z\001\012\001A\001B\bf\001(\001)\004\128\004\167\001\002\001\007\001\b\001\t\n\154\000\193\001\n\n\160\n\167\001\015\004\138\n\182\004\144\000\193\000\193\000\193\001\029\004\152\004\172\001\007\001\b\001\t\001Y\004\182\001\n\n\187\005\214\001\015\001s\000\193\004\196\n\208\n\216\004\202\001\029\n\230\n\248\011\131\000\193\011\230\011\241\004\212\004\223\000\193\004\229\001>\bJ\004\235\004\241\004\247\004\253\005\003\005\t\005\015\001?\005\021\001>\001@\011\246\004\187\001A\001B\bT\005\027\bJ\001?\005!\t\007\001@\005'\005-\001A\001B\bT\0053\004\006\0059\004\177\002f\005?\005E\005K\005Q\005W\005_\t\017\001\027\005e\005k\001Y\005s\005z\005\151\005\166\005\202\001s\005\245\005\254\006\007\006\017\001Y\006\026\006#\006.\001\027\001\011\001s\0067\006@\0012\006G\004\189\006]\006q\001\007\001\b\001\t\006v\006\130\001\n\006\138\006\146\001\015\001\011\006\153\006\159\006\162\0012\006\164\001\029\006\171\006\180\001\012\006\190\006\204\006\215\001(\001)\006\224\006\236\001\002\004\192\006\253\007\002\004\193\007\t\004\207\007\021\001\030\007\027\001\012\007 \004\178\007+\001(\001)\0074\007:\001\002\011&\007?\004\208\007J\002\216\004\180\004\000\007V\004\001\004\002\002\167\007w\004\003\007z\007{\007\145\007\213\007\164\007\190\007\199\007\221\007\228\007\233\007\239\007\252\b\005\004\142\b\007\b\016\b\026\b\022\b'\004\210\b \b\"\004\148\b%\001>\b3\b2\001\027\bF\b\r\bN\bR\bQ\001?\bV\ba\001@\b\197\bi\001A\001B\bT\001>\bl\bs\b{\001\011\b\130\b\141\b\196\0012\001?\b\189\b\190\001@\004\167\b\195\001A\001B\bT\b\199\b\200\b\206\b\211\b\215\b\233\b\240\t!\001Y\t9\tC\t\131\t}\001\012\001s\t~\t\130\001(\001)\t\146\t\161\001\002\t\156\t\157\t\159\004\000\001Y\004\001\004\002\002\167\t\184\004\003\001s\t\190\t\204\t\209\t\210\t\214\t\248\n\002\n\011\n\017\n4\n/\n3\004\142\n7\n;\nH\nl\np\n{\n\127\n\137\004\148\004\187\n\133\n\149\n\143\n\145\n\156\b\012\004\000\n\169\004\001\004\002\002\167\n\163\004\003\n\168\n\171\004\006\n\174\004\177\002f\n\173\n\181\001>\n\180\n\197\n\201\n\203\004\142\n\204\n\218\n\211\001?\004\167\n\212\001@\n\217\004\148\001A\001B\001\129\n\232\n\236\n\238\b\t\n\250\n\247\n\249\011\012\011\007\011\011\011\015\011\019\004\189\011\028\011\023\011\027\011\031\011#\0111\011,\0110\004\000\0114\004\001\004\002\002\167\001Y\004\003\0118\004\167\011A\011<\001s\011@\011D\011H\011S\011N\011R\011V\011Z\004\142\004\192\011e\011`\004\193\011d\004\207\011h\011l\004\148\011{\004\187\004\178\011\128\011\130\011\208\007\237\011\216\000\000\000\000\000\000\004\208\000\000\002\216\004\180\000\000\000\000\004\006\000\000\004\177\002f\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001\015\000\000\004\167\000\000\000\000\000\000\000\000\001\029\004\187\000\000\000\000\004\210\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\000\000\000\000\000\000\004\189\004\006\000\000\004\177\002f\000\000\000\000\000\000\000\000\004\142\000\000\000\000\000\000\000\000\003Q\000\000\000\000\000\000\004\148\000\000\004\000\000\000\004\001\004\002\002\167\007\224\004\003\000\000\000\000\000\000\004\192\000\000\000\000\004\193\000\000\004\207\000\000\004\189\000\000\004\187\004\142\004\178\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\148\004\208\004\167\002\216\004\180\001\027\004\006\007\014\004\177\002f\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\192\000\000\000\000\004\193\000\000\004\207\001\011\000\000\000\000\000\000\0012\004\178\000\000\004\210\000\000\004\167\000\000\000\000\000\000\000\000\004\208\000\000\002\216\004\180\004\189\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\000\000\000\000\004\187\000\000\000\000\000\000\000\000\004\000\004\210\004\001\004\002\002\167\004\192\004\003\000\000\004\193\000\000\004\207\004\006\000\000\004\177\002f\000\000\004\178\000\000\000\000\000\000\004\142\000\000\000\000\000\000\000\000\004\208\004\187\002\216\004\180\004\148\000\000\000\000\001\007\001\b\001\t\000\000\006\250\001\n\000\000\000\000\000\000\000\000\004\006\000\000\004\177\002f\000\000\004\189\001>\000\000\000\000\000\000\000\000\000\000\000\000\004\210\000\000\001?\000\000\000\000\001@\000\000\004\167\001A\001B\003W\000\000\000\000\007\177\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\192\004\189\000\000\004\193\004\000\004\207\004\001\004\002\002\167\000\000\004\003\004\178\000\000\000\000\000\000\001Y\000\000\000\000\000\000\000\000\004\208\001s\002\216\004\180\004\142\000\000\000\000\000\000\000\000\000\000\000\000\004\192\000\000\004\148\004\193\000\000\004\207\000\000\000\000\000\000\006\242\000\000\004\178\000\000\000\000\004\187\000\000\000\000\000\000\000\000\004\210\004\208\000\000\002\216\004\180\000\000\000\000\000\000\000\000\001\011\000\000\004\006\000\000\004\177\002f\000\000\004\167\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001\015\000\000\000\000\000\000\000\000\000\000\004\210\001\029\000\000\000\000\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\000\000\000\000\004\189\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\003\146\000\000\001\015\000\000\000\000\000\000\000\000\000\000\000\000\001\029\000\000\000\000\000\000\000\000\004\187\004\192\000\000\000\000\004\193\000\000\004\207\000\000\000\000\000\000\000\000\000\000\004\178\000\000\000\000\000\000\004\006\000\000\004\177\002f\000\000\004\208\000\000\002\216\004\180\003\159\001\027\000\000\002\165\000\000\000\000\002\166\002\167\001?\002\168\000\000\001@\000\000\000\000\001A\001B\000\000\000\000\007\205\000\000\001\011\000\000\000\000\000\000\0012\000\000\004\210\004\189\000\000\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\000\000\001\027\000\000\000\000\007\208\000\000\000\000\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\000\000\004\192\000\000\001\011\004\193\000\000\004\207\0012\002\197\000\000\000\000\000\000\004\178\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\208\000\000\002\216\004\180\002\198\003\192\000\000\000\000\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001\015\000\000\000\000\000\000\004\210\000\000\000\000\001\029\001>\000n\000\000\000\000\000\000\000\000\000\000\000\000\003\198\001?\000\000\000\000\001@\000\000\002\201\001A\001B\003\150\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001\015\003\194\002\189\000\000\000\000\002f\000\000\001\029\000\000\000\000\000\000\001>\000\000\000\000\000\000\000\000\001Y\000\000\000\000\000\000\001?\000\000\001s\001@\000\000\000\000\001A\001B\003\163\000\000\000\000\000\000\000\000\000\000\003\209\000\000\000\000\003\201\000\000\000\000\002\165\001\027\002\203\002\166\002\167\000\000\002\168\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001Y\000\000\000\000\000\000\000\000\001\011\001s\000\000\000\000\0012\000\000\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\000\000\001\027\000\000\002\214\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\012\002\221\000\000\002\216\001(\001)\000\000\000\000\001\002\001\011\000\000\000\000\000\000\0012\002\197\000\000\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\002\165\000\000\001\015\002\166\002\167\000\000\002\168\002\198\003\213\001\029\000\000\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\000\000\000\000\000\000\000\000\000\000\000\000\002\169\003\233\000\000\002\181\002\182\002\187\000\000\000\000\000\000\000\000\000\000\000n\003\215\001>\000\000\000\000\000\000\000\000\003\219\000\000\000\000\000\000\001?\000\000\002\201\001@\000\000\000\000\001A\001B\003\150\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\002\189\001\015\000\000\002f\000\000\000\000\000\000\000\000\001\029\001>\000\000\000\000\001\027\000\000\000\000\000\000\000\000\001Y\001?\000\000\000\000\001@\000\000\001s\001A\001B\003\204\000\000\000\000\000\000\000\000\001\011\003\230\000\000\000\000\0012\000\000\000\000\003\223\000\000\002\203\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\000\000\000\000\000\000\000\000\001Y\000\000\002\188\000\000\000\000\001\012\001s\000\000\004\142\001(\001)\000\000\000\000\001\002\000\000\000\000\000\000\004\148\002\189\000\000\000\000\002f\000\000\000\000\002\214\001\027\004\000\000\000\004\001\004\002\002\167\000\000\004\003\002\221\000\000\002\216\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\001\011\000\000\004\142\000\000\0012\000\000\004\167\000\000\000\000\000\000\000\000\004\148\004\142\000\000\000\000\t/\000\000\000\000\006b\000\000\000\000\004\148\000\000\000\000\000\000\001>\000\000\001\012\006Z\000\000\000\000\001(\001)\000\000\001?\001\002\000\000\001@\000\000\000\000\001A\001B\003\150\004\000\004\167\004\001\004\002\002\167\000\000\004\003\000\000\002\214\000\000\000\000\004\167\000\000\000\000\000\000\000\000\000\000\002\215\000\000\002\216\004\142\000\000\000\000\004\187\000\000\000\000\001Y\000\000\000\000\004\148\000\000\000\000\001s\t<\000\000\000\000\006Y\000\000\000\000\004\006\000\000\004\177\002f\000\000\000\000\000\000\000\000\000\000\001>\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\001?\000\000\000\000\001@\004\187\004\167\001A\001B\003\227\000\000\000\000\000\000\004\142\000\000\004\187\000\000\000\000\000\000\004\189\000\000\004\006\004\148\004\177\002f\000\000\000\000\000\000\000\000\004\165\000\000\004\006\000\000\004\177\002f\000\000\001Y\000\000\000\000\000\000\000\000\004\000\001s\004\001\004\002\002\167\000\000\004\003\000\000\005}\000\000\000\000\004\193\006\240\004\207\004\167\000\000\004\189\000\000\000\000\004\178\004\142\000\000\000\000\000\000\000\000\004\187\004\189\000\000\004\208\004\148\002\216\004\180\000\000\000\000\000\000\000\000\004\191\000\000\000\000\000\000\000\000\004\006\000\000\004\177\002f\000\000\004\192\000\000\000\000\004\193\000\000\004\207\000\000\000\000\000\000\000\000\004\192\004\178\004\210\004\193\000\000\004\207\004\167\000\000\000\000\000\000\004\208\004\178\002\216\004\180\000\000\000\000\000\000\000\000\004\187\000\000\004\208\004\189\002\216\004\180\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\006\000\000\004\177\002f\000\000\000\000\004\210\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\210\004\192\000\000\000\000\004\193\000\000\004\207\000\000\000\000\000\000\000\000\000\000\004\178\000\000\000\000\000\000\004\187\000\000\000\000\000\000\004\189\004\208\000\000\002\216\004\180\000\000\000\000\004\000\000\000\004\001\004\002\002\167\004\006\004\003\004\177\002f\000\000\000\000\000\000\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\004\142\000\000\000\000\004\192\004\210\000\000\004\193\000\000\004\207\004\148\000\000\000\000\000\000\004\142\004\178\000\000\004\220\000\000\000\000\000\000\000\000\004\189\004\148\004\208\000\000\002\216\004\180\000\000\000\000\004\219\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\004\167\004\001\004\002\002\167\000\000\004\003\000\000\000\000\000\000\004\192\000\000\004\210\004\193\004\167\004\207\000\000\000\000\000\000\000\000\004\142\004\178\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\148\004\208\000\000\002\216\004\180\000\000\000\000\005v\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\210\004\187\004\167\000\000\000\000\000\000\000\000\002\165\000\000\000\000\005\129\002\167\000\000\002\168\004\187\000\000\000\000\004\006\000\000\004\177\002f\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\006\000\000\004\177\002f\005\158\002\196\000\000\002\181\002\182\002\187\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\000\000\000\000\000\000\000\000\000\000\004\189\000\000\000\000\000\000\000\000\000\000\000\000\004\142\000\000\004\187\000\000\000\000\000\000\004\189\003\030\000\000\004\148\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\006\000\000\004\177\002f\000\000\004\192\005\169\003#\004\193\000\000\004\207\000\000\000\000\000\000\000\000\000\000\004\178\000\000\004\192\000\000\000\000\004\193\000\000\004\207\004\167\004\208\000\000\002\216\004\180\004\178\000\000\000\000\000\000\000\000\000\000\000\000\004\189\000\000\004\208\000\000\002\216\004\180\000\000\000\000\000\000\005\188\000\000\000\000\001\007\001\b\001\t\002\201\000\000\001\n\000\000\004\210\001\015\000\000\004\000\000\000\004\001\004\002\002\167\001\029\004\003\000\000\004\192\002\189\004\210\004\193\002f\004\207\000\000\000\000\000\000\000\000\000\000\004\178\004\142\004\000\000\000\004\001\004\002\002\167\004\187\004\003\004\208\004\148\002\216\004\180\000\000\000\000\000\000\005\140\005\136\000\000\000\000\000\000\000\000\004\142\004\006\000\000\004\177\002f\005\209\005\210\003$\000\000\004\148\000\000\000\000\000\000\000\000\n\219\000\000\005\139\004\210\000\000\000\000\000\000\004\167\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\004\001\004\002\002\167\001\027\004\003\000\000\004\189\000\000\000\000\000\000\000\000\004\167\000\000\000\000\002\214\000\000\000\000\n\220\004\142\n\221\000\000\000\000\001\011\002\221\000\000\002\216\0012\004\148\000\000\000\000\000\000\000\000\000\000\000\000\005\144\000\000\005}\000\000\000\000\004\193\005~\004\207\000\000\000\000\000\000\000\000\000\000\004\178\000\000\001\012\004\187\000\000\000\000\001(\001)\n\222\004\208\001\002\002\216\004\180\004\167\000\000\000\000\000\000\000\000\000\000\004\006\000\000\004\177\002f\000\000\004\187\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\004\210\004\006\000\000\004\177\002f\000\000\000\000\000\000\n\223\000\000\000\000\000\000\000\000\004\142\000\000\000\000\004\189\000\000\000\000\000\000\000\000\000\000\004\148\000\000\000\000\n\224\n\225\001>\n\226\005\147\000\000\000\000\000\000\000\000\004\187\000\000\001?\004\189\000\000\001@\000\000\000\000\001A\001B\002\014\000\000\004\192\000\000\000\000\004\193\004\006\004\207\004\177\002f\000\000\004\167\n\254\004\178\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\208\004\192\002\216\004\180\004\193\001Y\004\207\000\000\000\000\000\000\000\000\001s\004\178\000\000\000\000\000\000\000\000\000\000\n\228\000\000\004\189\004\208\n\229\002\216\004\180\n\231\000\000\000\000\n\237\n\239\004\210\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\n\251\004\001\004\002\002\167\000\000\004\003\004\187\004\192\004\210\000\000\004\193\000\000\004\207\000\000\000\000\000\000\000\000\000\000\004\178\004\142\000\000\n\252\004\006\000\000\004\177\002f\000\000\004\208\004\148\002\216\004\180\000\000\000\000\000\000\000\000\005\150\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\142\004\210\004\189\000\000\004\000\004\167\004\001\004\002\002\167\004\148\004\003\000\000\000\000\000\000\000\000\000\000\005\153\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\142\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\192\004\148\000\000\004\193\000\000\004\207\000\000\000\000\005\157\000\000\004\167\004\178\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\208\000\000\002\216\004\180\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\187\004\167\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\004\006\004\210\004\177\002f\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\142\004\000\000\000\004\001\004\002\002\167\000\000\004\003\004\187\004\148\000\000\004\000\000\000\004\001\004\002\002\167\005\162\004\003\000\000\000\000\000\000\004\142\000\000\004\189\004\006\000\000\004\177\002f\000\000\000\000\004\148\000\000\004\187\000\000\000\000\000\000\000\000\005\165\000\000\000\000\006K\000\000\004\167\000\000\000\000\000\000\000\000\000\000\004\006\000\000\004\177\002f\000\000\004\192\000\000\000\000\004\193\000\000\004\207\000\000\004\189\000\000\000\000\004\167\004\178\000\000\006L\000\000\000\000\000\000\000\000\000\000\000\000\004\208\000\000\002\216\004\180\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\189\000\000\000\000\000\000\000\000\000\000\004\192\000\000\000\000\004\193\000\000\004\207\000\000\000\000\000\000\000\000\000\000\004\178\004\187\004\210\000\000\000\000\000\000\000\000\000\000\000\000\004\208\000\000\002\216\004\180\004\192\000\000\000\000\004\193\004\006\004\207\004\177\002f\000\000\004\187\004\000\004\178\004\001\004\002\002\167\000\000\004\003\000\000\000\000\004\005\004\208\000\000\002\216\004\180\000\000\004\006\004\210\004\177\002f\000\000\004\142\000\000\000\000\000\000\000\000\004\006\000\000\004\177\002f\004\148\004\189\000\000\000\000\000\000\000\000\000\000\005\168\000\000\000\000\000\000\004\210\000\000\000\000\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\004\189\000\000\001\162\000\000\000\000\000\000\000\000\000\000\000\000\004\192\000\000\004\167\004\193\000\000\004\207\000\000\006N\000\000\000\000\004\000\004\178\004\001\004\002\002\167\000\000\004\003\000\000\000\000\000\000\004\208\004\192\002\216\004\180\004\193\000\000\004\207\000\000\000\000\000\000\004\142\000\000\004\178\000\000\000\000\000\000\000\000\000\000\000\000\004\148\000\000\004\208\004\178\002\216\004\180\000\000\005\171\000\000\000\000\000\000\004\210\004\179\000\000\002\216\004\180\000\000\000\000\000\000\000\000\000\000\002\165\000\000\004\187\002\166\002\167\000\000\002\168\000\000\000\000\000\000\000\000\004\210\004\167\000\000\000\000\005\199\000\000\000\000\004\006\000\000\004\177\002f\000\000\000\000\005\205\000\000\000\000\002\169\003\233\001\011\002\181\002\182\002\187\001\178\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001\015\000\000\004\000\000\000\004\001\004\002\002\167\001\029\004\003\000\000\004\189\000\000\001\012\000\000\003\234\000\000\001(\001)\000\000\000\000\001\002\000\000\004\142\000\000\000\000\000\000\000\000\000\000\004\187\000\000\000\000\004\148\000\000\000\000\000\000\000\000\000\000\005\191\005\195\000\000\004\192\000\000\000\000\004\193\004\006\004\207\004\177\002f\000\000\000\000\004\000\004\178\004\001\004\002\002\167\000\000\004\003\000\000\000\000\000\000\004\208\000\000\002\216\004\180\004\167\000\000\000\000\000\000\000\000\000\000\004\142\000\000\000\000\000\000\000\000\000\000\000\000\001\027\002\188\004\148\004\189\000\000\000\000\000\000\000\000\001?\005\198\000\000\001@\000\000\004\210\001A\001B\000\000\002\189\000\000\001\011\002f\000\000\000\000\0012\000\000\000\000\000\000\000\000\004\000\000\000\004\001\004\002\002\167\004\192\004\003\004\167\004\193\000\000\004\207\000\000\000\000\000\000\000\000\001Y\004\178\000\000\001\012\004\187\004\142\000\000\001(\001)\000\000\004\208\001\002\002\216\004\180\004\148\003\235\000\000\000\000\000\000\000\000\004\006\005\201\004\177\002f\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\210\005x\005\128\000\000\000\000\004\142\000\000\004\167\000\000\000\000\000\000\002\214\004\187\000\000\004\148\000\000\004\189\000\000\000\000\000\000\002\215\005\204\002\216\000\000\000\000\000\000\000\000\001>\004\006\000\000\004\177\002f\000\000\000\000\000\000\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\002\014\005\206\004\192\004\167\000\000\004\193\000\000\004\207\000\000\000\000\000\000\000\000\t\132\004\178\000\000\000\000\000\000\000\000\000\000\000\000\004\189\000\000\004\208\004\187\002\216\004\180\000\000\001Y\000\000\000\000\000\000\011\236\000\000\001s\011\237\000\000\000\000\000\000\t\135\004\006\000\000\004\177\002f\000\000\000\000\000\000\000\000\000\000\t\136\000\000\004\192\000\000\004\210\004\193\000\000\004\207\004\000\000\000\004\001\004\002\002\167\004\178\004\003\004\187\000\000\000\000\000\000\000\000\000\000\000\000\004\208\000\000\002\216\004\180\000\000\004\189\004\142\000\000\000\000\004\006\000\000\004\177\002f\000\000\t\137\004\148\000\000\000\000\000\000\000\000\000\000\000\000\005\208\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\210\000\000\000\000\000\000\000\000\004\192\000\000\000\000\004\193\000\000\004\207\000\000\000\000\000\000\000\000\004\189\004\178\004\000\004\167\004\001\004\002\002\167\000\000\004\003\t\138\004\208\000\000\002\216\004\180\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\142\000\000\000\000\000\000\t\139\000\000\000\000\000\000\004\192\004\148\000\000\004\193\000\000\004\207\000\000\000\000\005\217\000\000\004\210\004\178\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\004\208\011\238\002\216\004\180\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\142\004\187\004\167\000\000\000\000\000\000\000\000\000\000\000\000\004\148\t\141\000\000\000\000\000\000\000\000\000\000\005\220\004\006\004\210\004\177\002f\000\000\t\142\000\000\000\000\000\000\t\143\000\000\000\000\t\145\000\000\004\000\t\150\004\001\004\002\002\167\000\000\004\003\000\000\000\000\000\000\000\000\004\167\000\000\000\000\000\000\000\000\t\162\000\000\000\000\000\000\004\142\000\000\004\189\000\000\000\000\000\000\000\000\000\000\000\000\004\148\000\000\004\187\000\000\000\000\000\000\000\000\006\r\t\163\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\006\000\000\004\177\002f\000\000\004\192\000\000\000\000\004\193\000\000\004\207\000\000\000\000\000\000\000\000\004\167\004\178\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\187\004\208\000\000\002\216\004\180\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\189\000\000\000\000\000\000\004\006\000\000\004\177\002f\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\000\000\000\000\004\210\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\142\004\192\000\000\000\000\004\193\000\000\004\207\000\000\000\000\004\148\004\187\004\189\004\178\000\000\000\000\000\000\006\022\000\000\000\000\000\000\000\000\004\208\000\000\002\216\004\180\000\000\004\006\000\000\004\177\002f\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\192\004\167\000\000\004\193\000\000\004\207\000\000\000\000\000\000\000\000\004\210\004\178\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\208\004\189\002\216\004\180\000\000\000\000\000\000\000\000\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\142\004\210\004\192\000\000\000\000\004\193\000\000\004\207\000\000\004\148\000\000\000\000\004\187\004\178\000\000\000\000\006\031\004\000\000\000\004\001\004\002\002\167\004\208\004\003\002\216\004\180\000\000\000\000\004\006\000\000\004\177\002f\000\000\000\000\000\000\000\000\000\000\004\142\000\000\000\000\000\000\004\000\004\167\004\001\004\002\002\167\004\148\004\003\000\000\000\000\000\000\000\000\004\210\006^\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\142\000\000\000\000\004\189\000\000\000\000\000\000\000\000\000\000\004\148\000\000\004\000\000\000\004\001\004\002\002\167\006`\004\003\004\167\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\142\000\000\004\192\000\000\000\000\004\193\000\000\004\207\000\000\004\148\004\187\004\167\000\000\004\178\000\000\000\000\006e\000\000\000\000\000\000\000\000\000\000\004\208\000\000\002\216\004\180\004\006\000\000\004\177\002f\000\000\000\000\000\000\000\000\n\219\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\167\000\000\000\000\002\165\000\000\004\187\002\166\002\167\000\000\002\168\004\210\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\189\004\006\000\000\004\177\002f\000\000\n\220\000\000\n\221\004\187\002\169\002\170\000\000\002\181\002\182\002\187\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\006\000\000\004\177\002f\000\000\004\192\000\000\000\000\004\193\000\000\004\207\000\000\004\189\000\000\000\000\004\187\004\178\000\000\000\000\n\222\004\000\000\000\004\001\004\002\002\167\004\208\004\003\002\216\004\180\000\000\000\000\004\006\000\000\004\177\002f\000\000\004\189\000\000\000\000\000\000\004\142\000\000\004\192\000\000\000\000\004\193\000\000\004\207\000\000\004\148\000\000\000\000\000\000\004\178\000\000\004\210\006h\000\000\n\223\000\000\000\000\000\000\004\208\000\000\002\216\004\180\004\192\004\189\000\000\004\193\000\000\004\207\000\000\000\000\000\000\n\224\n\225\004\178\n\226\000\000\002\188\000\000\004\167\000\000\000\000\000\000\004\208\000\000\002\216\004\180\000\000\000\000\004\210\000\000\000\000\000\000\002\189\004\192\000\000\002f\004\193\004\000\004\207\004\001\004\002\002\167\n\253\004\003\004\178\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\210\004\208\000\000\002\216\004\180\004\142\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\148\000\000\000\000\000\000\n\228\000\000\000\000\006\244\n\229\000\000\000\000\n\231\004\187\000\000\n\237\n\239\000\000\004\210\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\000\000\004\006\n\251\004\177\002f\004\000\004\167\004\001\004\002\002\167\000\000\004\003\004\142\000\000\000\000\000\000\002\214\000\000\000\000\000\000\000\000\004\148\000\000\n\252\000\000\002\215\000\000\002\216\006\247\000\000\000\000\000\000\000\000\000\000\006K\000\000\000\000\004\189\000\000\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\167\000\000\000\000\000\000\000\000\000\000\004\142\000\000\000\000\000\000\000\000\000\000\004\187\004\192\000\000\004\148\004\193\000\000\004\207\000\000\000\000\000\000\007p\000\000\004\178\000\000\000\000\000\000\004\006\000\000\004\177\002f\000\000\004\208\000\000\002\216\004\180\000\000\000\000\000\000\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\004\167\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\187\004\142\000\000\004\210\004\189\000\000\000\000\000\000\000\000\000\000\004\148\000\000\000\000\004\005\000\000\000\000\004\006\007u\004\177\002f\000\000\000\000\000\000\000\000\004\000\000\000\004\001\004\002\002\167\004\006\004\003\004\177\002f\000\000\004\192\000\000\000\000\004\193\000\000\004\207\000\000\000\000\000\000\004\167\004\142\004\178\000\000\000\000\004\187\000\000\000\000\000\000\004\189\004\148\004\208\000\000\002\216\004\180\000\000\000\000\007\137\000\000\000\000\000\000\004\006\000\000\004\177\002f\000\000\000\000\000\000\006M\000\000\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\004\192\001\015\004\210\004\193\004\167\004\207\000\000\000\000\001\029\000\000\000\000\004\178\000\000\000\000\000\000\000\000\000\000\000\000\004\189\000\000\004\208\004\187\002\216\004\180\004\178\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\179\000\000\002\216\004\180\004\006\007\160\004\177\002f\000\000\000\000\004\000\000\000\004\001\004\002\002\167\004\192\004\003\004\210\004\193\000\000\004\207\000\000\000\000\000\000\000\000\007\163\004\178\000\000\000\000\000\000\004\142\004\187\000\000\000\000\000\000\004\208\000\000\002\216\004\180\004\148\004\189\000\000\000\000\000\000\000\000\001\027\007\216\004\006\000\000\004\177\002f\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\011\004\210\000\000\000\000\0012\000\000\004\192\000\000\004\167\004\193\000\000\004\207\000\000\000\000\000\000\000\000\000\000\004\178\000\000\004\189\000\000\000\000\000\000\000\000\000\000\000\000\004\208\001\012\002\216\004\180\000\000\001(\001)\000\000\000\000\001\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\192\000\000\000\000\004\193\000\000\004\207\000\000\004\210\000\000\000\000\000\000\004\178\004\000\000\000\004\001\004\002\002\167\000\000\004\003\004\187\004\208\000\000\002\216\004\180\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\142\000\000\000\000\004\006\000\000\004\177\002f\000\000\000\000\004\148\001>\000\000\000\000\000\000\000\000\000\000\b<\002\165\004\210\001?\005\129\002\167\001@\002\168\000\000\001A\001B\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\189\000\000\000\000\004\167\000\000\005\158\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\000\000\001Y\000\000\000\000\000\000\000\000\000\000\007\168\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\192\000\000\000\000\004\193\000\000\004\207\000\000\000\000\003\030\000\000\000\000\004\178\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\004\208\000\000\002\216\004\180\000\000\005\169\003#\000\000\000\000\000\000\000\000\000\000\000\000\004\187\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\006\004\210\004\177\002f\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001\015\000\000\005\188\000\000\000\000\000\000\000\000\001\029\002\201\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001\015\000\000\000\000\000\000\000\000\004\189\002\189\001\029\000\000\002f\000\000\000\000\000\000\b\155\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001\024\000\000\000\000\000\000\000\000\004\192\001\011\001\026\004\193\000\000\004\207\000\000\000\000\005\209\007\222\003$\004\178\000\000\000\000\000\000\004\000\000\000\004\001\004\002\002\167\004\208\004\003\002\216\004\180\001\027\000\000\000\000\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\004\142\001\002\000\000\000\000\n'\000\000\000\000\001\027\001\011\004\148\000\000\000\000\0012\002\214\000\000\004\210\b\214\000\000\000\000\000\000\000\000\000\000\002\221\000\000\002\216\000\000\001\011\000\000\000\000\000\000\0012\000\000\000\000\000\000\000\000\001\012\000\000\001\027\000\000\001(\001)\000\000\004\167\001\002\000\000\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\001\012\000\000\001\140\001\011\001(\001)\000\000\001\215\001\002\000\000\000\000\000\000\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\000\000\000\000\004\142\000\000\000\000\000\000\000\000\001>\000\000\n#\004\187\004\148\000\000\000\000\000\000\000\000\001?\000\000\b\217\001@\000\000\000\000\001A\001B\b\160\001>\004\006\000\000\004\177\002f\000\000\000\000\000\000\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\b\173\000\000\004\167\b\176\000\000\000\000\000\000\000\000\000\000\001Y\000\000\000\000\000\000\000\000\000\000\001s\000\000\001\011\000\000\000\000\004\189\000\000\001?\000\000\000\000\001@\000\000\001Y\001A\001B\000\000\000\000\000\000\001s\000\000\000\000\000\000\000\000\000\000\004\000\000\000\004\001\004\002\002\167\001\012\004\003\000\000\000\000\001(\001)\004\192\000\000\001\002\004\193\000\000\004\207\000\000\001Y\000\000\004\142\000\000\004\178\004\187\004\000\000\000\004\001\004\002\002\167\004\148\004\003\004\208\000\000\002\216\004\180\000\000\b\232\000\000\000\000\004\006\000\000\004\177\002f\000\000\004\142\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\148\000\000\000\000\000\000\000\000\000\000\000\000\b\235\004\210\004\167\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\004\001\004\002\002\167\004\189\004\003\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\004\167\000\000\000\000\000\000\004\142\000\000\000\000\000\000\004\000\000\000\004\001\004\002\002\167\004\148\004\003\000\000\000\000\000\000\000\000\004\192\b\248\000\000\004\193\000\000\004\207\000\000\000\000\001Y\004\142\000\000\004\178\000\000\000\000\000\000\000\000\000\000\004\187\004\148\000\000\004\208\000\000\002\216\004\180\000\000\b\251\004\000\004\167\004\001\004\002\002\167\000\000\004\003\004\006\000\000\004\177\002f\000\000\000\000\000\000\000\000\004\187\000\000\000\000\000\000\000\000\004\142\000\000\000\000\000\000\004\210\004\167\000\000\000\000\000\000\004\148\000\000\004\006\000\000\004\177\002f\000\000\t\016\000\000\000\000\000\000\000\000\000\000\000\000\004\189\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\004\187\004\167\000\000\000\000\000\000\000\000\004\189\000\000\000\000\000\000\000\000\000\000\004\192\004\142\000\000\004\193\004\006\004\207\004\177\002f\000\000\000\000\004\148\004\178\004\187\000\000\000\000\000\000\000\000\t\019\000\000\000\000\004\208\000\000\002\216\004\180\004\192\000\000\000\000\004\193\004\006\004\207\004\177\002f\000\000\000\000\000\000\004\178\000\000\000\000\000\000\000\000\004\189\000\000\000\000\004\167\004\208\000\000\002\216\004\180\000\000\004\187\004\210\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\000\000\000\000\000\000\000\000\000\000\004\189\004\006\000\000\004\177\002f\000\000\004\192\004\142\000\000\004\193\004\210\004\207\000\000\000\000\000\000\000\000\004\148\004\178\000\000\000\000\000\000\000\000\000\000\t\023\000\000\000\000\004\208\000\000\002\216\004\180\004\192\000\000\000\000\004\193\000\000\004\207\000\000\004\189\000\000\004\187\000\000\004\178\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\167\004\208\000\000\002\216\004\180\000\000\004\006\004\210\004\177\002f\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\192\000\000\000\000\004\193\002\165\004\207\000\000\005\129\002\167\000\000\002\168\004\178\000\000\004\210\000\000\000\000\000\000\000\000\000\000\000\000\004\208\000\000\002\216\004\180\004\189\000\000\000\000\000\000\000\000\000\000\000\000\005\158\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\000\000\000\000\004\187\000\000\000\000\000\000\000\000\001\007\001\b\001\t\004\210\000\000\001\n\000\000\004\192\001\015\000\000\004\193\004\006\004\207\004\177\002f\001\029\000\000\003\030\004\178\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\208\000\000\002\216\004\180\000\000\000\000\000\000\005\169\003#\000\000\000\000\000\000\t*\001\007\001\b\001\t\000\000\000\000\001\n\000\000\004\189\001\015\000\000\000\000\000\000\000\000\000\000\000\000\001\029\000\000\004\210\000\000\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001\015\000\000\000\000\000\000\005\188\000\000\000\000\001\029\004\192\000\000\002\201\004\193\000\000\004\207\002\165\000\000\001\027\005\129\002\167\004\178\002\168\000\000\000\000\000\000\000\000\000\000\002\189\000\000\004\208\002f\002\216\004\180\000\000\000\000\000\000\001\011\000\000\007\160\000\000\0012\000\000\005\158\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\027\n\029\004\210\000\000\000\000\000\000\001\012\005\209\t\"\003$\001(\001)\000\000\000\000\001\002\000\000\000\000\000\000\003\030\001\011\000\000\001\027\000\000\0012\000\000\000\000\000\000\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\005\169\003#\000\000\000\000\000\000\001\011\000\000\000\000\000\000\0012\000\000\001\012\002\214\004\142\000\000\001(\001)\000\000\000\000\001\002\000\000\002\221\004\148\002\216\000\000\000\000\000\000\000\000\000\000\011\135\000\000\000\000\001\012\000\000\000\000\001>\001(\001)\000\000\005\188\001\002\000\000\000\000\000\000\001?\002\201\000\000\001@\000\000\000\000\001A\001B\b\160\000\000\000\000\004\167\000\000\000\000\000\000\000\000\000\000\002\189\000\000\000\000\002f\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\001>\004\001\004\002\002\167\001Y\004\003\000\000\000\000\000\000\001?\001s\000\000\001@\000\000\000\000\001A\001B\b\173\000\000\004\142\ti\001>\000\000\005\209\tD\003$\000\000\000\000\004\148\000\000\001?\000\000\000\000\001@\000\000\011\137\001A\001B\000\000\000\000\004\187\000\000\000\000\000\000\001Y\000\000\000\000\000\000\000\000\000\000\001s\000\000\000\000\000\000\000\000\000\000\004\006\000\000\004\177\002f\000\000\004\167\000\000\002\214\000\000\001Y\000\000\000\000\000\000\000\000\000\000\007\168\002\221\000\000\002\216\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001\015\000\000\000\000\000\000\000\000\000\000\000\000\001\029\004\189\000\000\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001\015\000\000\000\000\000\000\000\000\000\000\000\000\001\029\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\004\187\004\192\000\000\000\000\004\193\000\000\004\207\000\000\000\000\000\000\000\000\000\000\004\178\000\000\000\000\000\000\004\006\000\000\004\177\002f\000\000\004\208\000\000\002\216\004\180\000\000\000\000\000\000\007\177\000\000\000\000\000\000\000\000\000\000\000\000\011\169\000\000\007\203\000\000\000\000\001\027\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001\015\000\000\004\210\004\189\000\000\000\000\000\000\001\029\000\000\000\000\001\011\001\027\000\000\000\000\0012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\011\000\000\000\000\004\192\0012\000\000\004\193\001\012\004\207\000\000\000\000\001(\001)\000\000\004\178\001\002\000\000\001\011\000\000\000\000\000\000\000\000\000\000\004\208\000\000\002\216\004\180\001\012\001\007\001\b\001\t\001(\001)\001\n\000\000\001\002\001\015\000\000\000\000\000\000\000\000\000\000\000\000\001\029\001\012\000\000\000\000\001\027\001(\001)\000\000\000\000\001\002\004\210\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001\015\000\000\000\000\000\000\001\011\000\000\000\000\001\029\0012\001>\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\011\170\000\000\000\000\001>\000\000\001\012\001\007\001\b\001\t\001(\001)\001\n\001?\001\002\001\015\001@\000\000\000\000\001A\001B\011p\001\029\000\000\000\000\000\000\001\027\000\000\001Y\000\000\001?\000\000\000\000\001@\001s\000\000\001A\001B\000\000\000\000\007\209\000\000\000\000\000\000\000\000\001\011\000\000\000\000\001Y\0012\000\000\000\000\001\027\000\000\001s\000\000\000\000\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\007\212\000\000\001\015\000\000\000\000\001>\001\011\001\012\000\000\001\029\0012\001(\001)\000\000\001?\001\002\000\000\001@\000\000\000\000\001A\001B\011m\000\000\000\000\000\000\000\000\001\027\000\000\000\000\000\000\000\000\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\000\000\000\000\000\000\000\000\001\011\000\000\000\000\001Y\0012\000\000\000\000\000\000\000\000\001s\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001\015\000\000\000\000\000\000\000\000\000\000\001>\001\029\001\012\000\000\000\000\000\000\001(\001)\001\027\001?\001\002\000\000\001@\000\000\000\000\001A\001B\002\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001>\001\011\000\000\000\000\000\000\0012\000\000\000\000\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\001\223\001Y\000\000\000\000\000\000\000\000\000\000\001s\000\000\000\000\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\000\000\000\000\000\000\001>\000\000\000\000\000\000\001Y\001\027\001\007\001\b\001\t\001?\001s\001\n\001@\000\000\001\015\001A\001B\001\142\000\000\000\000\000\000\001\029\000\000\000\000\001\011\000\000\000\000\000\000\0012\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001\015\000\000\000\000\000\000\000\000\001Y\000\000\001\029\000\000\000\000\000\000\001s\001\012\001>\000\000\000\000\001(\001)\000\000\000\000\001\002\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\001C\000\000\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001\015\000\000\000\000\001\007\001\b\001\t\000\000\001\029\001\n\000\000\001\027\001\015\000\000\000\000\000\000\001Y\000\000\000\000\001\029\000\000\000\000\001s\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\011\000\000\000\000\000\000\0012\001>\001\027\000\000\000\000\000\000\000\000\001\007\001\b\001\t\001?\000\000\001\n\001@\000\000\001\015\001A\001B\001\139\000\000\000\000\001\011\001\029\001\012\000\000\0012\000\000\001(\001)\000\000\000\000\001\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\027\001Y\000\000\000\000\001\012\000\000\001\246\001s\001(\001)\000\000\001\027\001\002\000\000\000\000\000\000\001\007\001\b\001\t\001\011\000\000\001\n\000\000\0012\001\015\000\000\000\000\000\000\000\000\000\000\001\011\001\029\000\000\000\000\0012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001>\000\000\000\000\001\012\000\000\001\027\000\000\001(\001)\001?\000\000\001\002\001@\000\000\001\012\001A\001B\001\145\001(\001)\000\000\000\000\001\002\000\000\001\011\001>\000\000\000\000\0012\000\000\000\000\000\000\000\000\000\000\001?\t\132\000\000\001@\000\000\000\000\001A\001B\001\182\000\000\001Y\000\000\000\000\000\000\000\000\000\000\001s\001\012\000\000\000\000\011\236\001(\001)\011\237\001\027\001\002\000\000\t\135\000\000\000\000\000\000\000\000\000\000\001>\000\000\001Y\000\000\t\136\000\000\000\000\000\000\001s\001?\001\011\001>\001@\000\000\0012\001A\001B\002\016\000\000\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\002&\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\012\000\000\000\000\t\137\001(\001)\000\000\001Y\001\002\000\000\000\000\001>\000\000\001s\000\000\000\000\000\000\000\000\001Y\000\000\001?\000\000\000\000\001@\001s\000\000\001A\001B\004\000\000\000\004\001\004\002\002\167\000\000\004\003\002\165\000\000\000\000\003L\002\167\000\000\002\168\000\000\t\138\000\000\000\000\000\000\000\000\004\142\000\000\000\000\000\000\000\000\000\000\000\000\001Y\000\000\004\148\000\000\000\000\t\139\001\250\002\169\004u\001>\002\181\002\182\002\187\007\245\000\000\000\000\000\000\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\002-\000\000\000\000\000\000\011\242\001\007\001\b\001\t\000\000\004\167\001\n\000\000\000\000\001\015\003\030\000\000\000\000\000\000\000\000\000\000\001\029\000\000\000\000\000\000\000\000\t\141\000\000\001Y\000\000\000\000\000\000\006c\003#\001s\000\000\000\000\000\000\t\142\000\000\000\000\000\000\t\143\000\000\000\000\t\145\000\000\000\000\t\150\000\000\000\000\000\000\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001\015\t\162\000\000\000\000\000\000\000\000\000\000\001\029\004\187\000\000\000\000\000\000\000\000\000\000\000\000\002\201\000\000\000\000\000\000\000\000\000\000\000\000\t\163\000\000\004\006\000\000\004\177\002f\000\000\001\027\000\000\002\189\000\000\000\000\002f\000\000\000\000\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001\015\001\011\000\000\000\000\000\000\0012\000\000\001\029\000\000\000\000\000\000\000\000\000\000\004\189\006f\006k\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003$\000\000\000\000\000\000\000\000\001\012\000\000\001\027\000\000\001(\001)\000\000\000\000\001\002\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001\015\007\247\000\000\004\207\001\011\000\000\000\000\001\029\0012\004\178\000\000\000\000\000\000\000\000\000\000\000\000\002\214\000\000\004\208\000\000\002\216\004\180\000\000\000\000\000\000\002\221\000\000\002\216\000\000\000\000\000\000\001\012\001\027\000\000\000\000\001(\001)\000\000\002\165\001\002\000\000\002\166\002\167\000\000\002\168\000\000\000\000\001>\004\210\000\000\000\000\001\011\000\000\000\000\000\000\0012\001?\000\000\000\000\001@\000\000\000\000\001A\001B\002y\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\000\000\000\000\000\000\001\027\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\000\000\000\000\000\000\006\249\001Y\000\000\000\000\000\000\001>\001\011\001s\000\000\002\197\0012\000\000\000\000\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\002\128\000\000\000\000\000\000\002\198\003\134\000\000\000\000\000\000\000\000\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\001\007\001\b\001\t\000\000\000\000\001\n\000\000\001Y\001\015\000\000\001>\000\000\000\000\001s\000\000\001\029\000\000\000\000\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\002\141\002\201\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001\015\000\000\000\000\000\000\000\000\000\000\002\189\001\029\000\000\002f\001\007\001\b\001\t\000\000\000\000\001\n\001Y\001>\001\015\004\147\000\000\000\000\001s\000\000\000\000\001\029\001?\000\000\000\000\001@\000\000\000\000\001A\001B\002\176\000\000\000\000\000\000\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\002\203\001\027\001\015\000\000\000\000\000\000\000\000\000\000\000\000\001\029\000\000\000\000\000\000\000\000\000\000\001Y\000\000\000\000\000\000\000\000\001\011\001s\000\000\000\000\0012\000\000\000\000\000\000\000\000\000\000\000\000\001\027\000\000\000\000\000\000\000\000\000\000\002\214\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\221\001\012\002\216\001\027\001\011\001(\001)\000\000\0012\001\002\000\000\000\000\000\000\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\001\011\001\015\000\000\000\000\0012\000\000\000\000\000\000\001\029\001\012\000\000\001\027\000\000\001(\001)\000\000\000\000\001\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\012\000\000\000\000\001\011\001(\001)\000\000\0012\001\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001>\002\165\000\000\000\000\002\166\002\167\000\000\002\168\000\000\001?\000\000\000\000\001@\000\000\001\012\001A\001B\002\209\001(\001)\000\000\000\000\001\002\000\000\000\000\000\000\000\000\000\000\002\169\003\233\001>\002\181\002\182\002\187\000\000\001\027\000\000\000\000\000\000\001?\000\000\000\000\001@\000\000\001Y\001A\001B\002\237\001>\000\000\001s\001\007\001\b\001\t\001\011\000\000\001\n\001?\0012\001\015\001@\000\000\000\000\001A\001B\002\245\001\029\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001Y\000\000\000\000\000\000\001>\000\000\001s\001\012\000\000\000\000\000\000\001(\001)\001?\000\000\001\002\001@\000\000\001Y\001A\001B\003*\000\000\000\000\001s\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001\015\000\000\004\000\000\000\004\001\004\002\002\167\001\029\004\003\000\000\000\000\000\000\000\000\000\000\000\000\001Y\002\188\000\000\000\000\000\000\000\000\001s\004\142\000\000\000\000\000\000\000\000\000\000\000\000\001\027\000\000\004\148\002\189\000\000\000\000\002f\000\000\000\000\001>\000\000\000\000\000\000\007P\000\000\000\000\000\000\000\000\001?\001\011\000\000\001@\000\000\0012\001A\001B\0037\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\167\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t/\000\000\001\012\000\000\001\027\000\000\001(\001)\000\000\001Y\001\002\000\000\000\000\000\000\000\000\001s\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\011\000\000\000\000\000\000\0012\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\002\214\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\215\000\000\002\216\004\142\000\000\001\012\004\187\000\000\000\000\001(\001)\000\000\004\148\001\002\000\000\000\000\t;\000\000\000\000\000\000\000\000\001>\004\006\007D\004\177\002f\000\000\000\000\000\000\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\003E\000\000\000\000\000\000\000\000\000\000\000\000\004\167\000\000\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001J\004\189\000\000\000\000\000\000\000\000\000\000\000\000\001Y\000\000\000\000\000\000\001>\000\000\001s\000\000\000\000\000\000\000\000\000\000\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\003S\000\000\000\000\000\000\000\000\007R\000\000\004\207\000\000\000\000\000\000\000\000\002\165\004\178\000\000\002\166\002\167\000\000\002\168\004\187\000\000\000\000\004\208\000\000\002\216\004\180\000\000\001Y\000\000\000\000\000\000\000\000\000\000\001s\000\000\004\006\000\000\004\177\002f\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\002\165\000\000\000\000\002\166\002\167\004\210\002\168\002\165\000\000\000\000\002\166\002\167\000\000\002\168\000\000\000\000\000\000\000\000\000\000\000\000\001\011\000\000\000\000\000\000\004\189\000\000\002\197\002\169\002\196\000\000\002\181\002\182\002\187\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\002\198\003\157\000\000\000\000\001\012\001\007\001\b\001\t\001(\001)\001\n\000\000\001\002\001\015\007F\000\000\004\207\000\000\002\197\000\000\001\029\000\000\004\178\000\000\000\000\002\197\000\000\000\000\000\000\000\000\000\000\004\208\000\000\002\216\004\180\002\198\003\144\000\000\003\166\000\000\000\000\000\000\002\198\003\144\002\201\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\189\004\210\000\000\002f\000\000\000\000\000n\001\007\001\b\001\t\000\000\000\000\001\n\000n\000\000\001\015\000\000\001?\000\000\002\201\001@\000\000\001\029\001A\001B\000\000\002\201\000\000\000\000\000\000\001\027\001\007\001\b\001\t\003\170\002\189\001\n\000\000\002f\001\015\002\203\000\000\002\189\000\000\000\000\002f\001\029\000\000\000\000\001\011\000\000\000\000\001Y\0012\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001\015\000\000\002\165\003\155\000\000\002\166\002\167\001\029\002\168\000\000\003\153\002\203\001\012\002\214\000\000\000\000\001(\001)\002\203\000\000\001\002\000\000\002\221\000\000\002\216\000\000\000\000\000\000\001\027\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\011\002\214\000\000\000\000\0012\001\027\000\000\000\000\002\214\000\000\002\221\000\000\002\216\000\000\000\000\000\000\002\197\002\221\000\000\002\216\000\000\000\000\000\000\000\000\001\011\000\000\000\000\001\012\0012\001>\001\027\001(\001)\002\198\003\199\001\002\000\000\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\003\148\000\000\000\000\001\011\000\000\001\012\000\000\0012\000\000\001(\001)\000\000\000\000\001\002\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001\015\000\000\000\000\000\000\000\000\001Y\000\000\001\029\001\012\002\201\000\000\001s\001(\001)\000\000\000\000\001\002\000\000\000\000\000\000\000\000\000\000\000\000\001>\000\000\002\189\000\000\000\000\002f\001\007\001\b\001\t\001?\000\000\001\n\001@\000\000\001\015\001A\001B\003\161\000\000\000\000\000\000\001\029\000\000\000\000\001>\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001?\003\205\003\207\001@\000\000\000\000\001A\001B\003\196\002\203\000\000\001Y\000\000\000\000\000\000\000\000\001>\001s\000\000\000\000\000\000\001\027\000\000\000\000\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\003\203\000\000\001Y\000\000\000\000\000\000\000\000\001\011\001s\000\000\000\000\0012\000\000\002\214\000\000\000\000\000\000\004\000\000\000\004\001\004\002\002\167\002\221\004\003\002\216\001\027\000\000\001Y\000\000\000\000\000\000\000\000\000\000\001s\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\000\000\001\011\000\000\006K\000\000\0012\000\000\002\165\000\000\000\000\002\166\002\167\000\000\002\168\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\012\t5\000\000\000\000\001(\001)\002\169\002\196\001\002\002\181\002\182\002\187\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001\015\000\000\000\000\000\000\000\000\001>\000\000\001\029\000\000\003\246\000\000\000\000\000\000\000\000\001?\000\000\000\000\001@\002\197\000\000\001A\001B\003\217\000\000\000\000\000\000\000\000\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\002\198\003\134\001\015\000\000\000\000\000\000\000\000\001>\000\000\001\029\000\000\004\005\000\000\000\000\001Y\000\000\001?\000\000\000\000\001@\001s\000\000\001A\001B\003\225\000\000\000\000\004\006\000\000\004\177\002f\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\027\000\000\002\201\000\000\000\000\001\007\001\b\001\t\000\000\001Y\001\n\000\000\000\000\001\015\000\000\001s\000\000\000\000\002\189\001\011\001\029\002f\000\000\0012\000\000\000\000\000\000\006N\000\000\000\000\000\000\004\147\000\000\000\000\000\000\000\000\000\000\001\027\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\000\000\001\011\000\000\002\203\004\142\0012\000\000\004\178\000\000\000\000\000\000\002\165\000\000\004\148\002\166\002\167\004\179\002\168\002\216\004\180\000\000\000\000\000\000\000\000\006Q\000\000\000\000\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\001\027\001\002\000\000\002\169\002\180\002\214\002\181\002\182\002\187\000\000\000\000\004\167\000\000\000\000\002\221\000\000\002\216\000\000\000\000\001\011\001>\000\000\000\000\0012\000\000\000\000\000\000\000\000\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\004,\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\000\000\000\000\001>\000\000\000\000\000\000\000\000\000\000\000\000\001Y\000\000\001?\000\000\t\251\001@\001s\004\187\001A\001B\004.\000\000\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\tO\004\006\000\000\004\177\002f\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\188\000\000\004\000\001Y\004\001\004\002\002\167\002\165\004\003\001s\002\166\002\167\001>\002\168\000\000\000\000\002\189\000\000\000\000\002f\000\000\001?\004\142\000\000\001@\004\189\000\000\001A\001B\004w\000\000\004\148\000\000\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\006P\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001Y\000\000\005\227\004\140\004\207\000\000\001s\004\005\004\167\tQ\004\178\000\000\002\197\000\000\000\000\000\000\000\000\000\000\000\000\004\208\000\000\002\216\004\180\004\006\000\000\004\177\002f\000\000\001\011\002\198\003\134\000\000\000\000\000\000\000\000\000\000\000\000\002\214\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\215\002\165\002\216\004\210\002\166\002\167\000\000\002\168\000\000\tT\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\001\005\000\000\000\000\000\000\004\187\000\000\000\000\000\000\000\000\002\201\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\000\000\004\006\000\000\004\177\002f\000\000\002\189\000\000\000\000\002f\000\000\t\252\000\000\000\000\000\000\000\000\004\146\004\178\000\000\004\147\000\000\000\000\000\000\000\000\000\000\002\197\t\253\000\000\002\216\004\180\002\165\000\000\000\000\002\166\002\167\000\000\002\168\004\189\000\000\000\000\000\000\000\000\002\198\003\134\000\000\001?\002\203\000\000\tW\000\000\000\000\001A\001B\000\000\000\000\000\000\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\b\162\000\000\t\\\000\000\tY\000\000\005\227\000\000\004\207\000\000\000\000\000\000\000\000\000\000\004\178\000\000\001Y\000\000\004\184\002\214\000\000\000\000\002\201\004\208\000\000\002\216\004\180\002\197\002\221\000\000\002\216\002\165\000\000\000\000\002\166\002\167\000\000\002\168\002\189\000\000\000\000\002f\000\000\000\000\002\198\003\134\t\132\000\000\000\000\000\000\000\000\004\147\000\000\004\210\000\000\000\000\000\000\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\002\165\t\133\000\000\002\166\002\167\t\135\002\168\000\000\000\000\000\000\000\000\002\203\000\000\000\000\000\000\t\136\004\198\000\000\000\000\000\000\000\000\002\201\000\000\000\000\000\000\002\197\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\000\000\002\189\000\000\000\000\002f\000\000\002\198\003\134\000\000\000\000\000\000\000\000\002\214\000\000\004\147\t\137\004\204\000\000\000\000\000\000\000\000\002\221\000\000\002\216\000\000\002\197\000\000\000\000\000\000\002\165\000\000\000\000\002\166\002\167\000\000\002\168\000\000\000\000\000\000\000\000\000\000\002\203\002\198\003\134\000\000\000\000\000\000\000\000\000\000\000\000\002\201\000\000\000\000\000\000\000\000\t\138\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\000\000\002\189\002\165\000\000\002f\002\166\002\167\t\139\002\168\000\000\000\000\000\000\000\000\002\214\004\147\000\000\004\214\000\000\000\000\000\000\000\000\002\201\002\221\000\000\002\216\002\197\000\000\000\000\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\t\140\002\189\000\000\000\000\002f\002\203\002\198\003\134\000\000\000\000\000\000\000\000\000\000\000\000\004\147\000\000\000\000\t\141\004\225\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\197\000\000\t\142\000\000\002\165\000\000\t\143\002\166\002\167\t\145\002\168\000\000\t\150\000\000\002\203\002\214\000\000\002\198\003\134\t\132\000\000\000\000\000\000\002\201\002\221\000\000\002\216\t\162\000\000\000\000\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\002\189\002\165\t\133\002f\002\166\002\167\t\135\002\168\000\000\t\163\000\000\000\000\002\214\004\147\000\000\000\000\t\136\004\231\000\000\000\000\000\000\002\221\002\201\002\216\000\000\000\000\002\197\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\000\000\002\189\000\000\002\203\002f\000\000\002\198\003\134\000\000\000\000\000\000\000\000\000\000\000\000\004\147\t\137\004\237\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\197\000\000\000\000\000\000\002\165\000\000\000\000\002\166\002\167\000\000\002\168\000\000\000\000\000\000\000\000\002\214\002\203\002\198\003\134\000\000\000\000\000\000\000\000\000\000\002\221\002\201\002\216\000\000\000\000\000\000\t\138\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\000\000\002\189\002\165\000\000\002f\002\166\002\167\t\139\002\168\000\000\000\000\000\000\000\000\002\214\004\147\000\000\004\243\000\000\000\000\000\000\000\000\002\201\002\221\000\000\002\216\002\197\000\000\000\000\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\t\167\002\189\000\000\000\000\002f\002\203\002\198\003\134\000\000\000\000\000\000\000\000\000\000\000\000\004\147\000\000\000\000\t\141\004\249\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\197\000\000\t\142\000\000\002\165\000\000\t\143\002\166\002\167\t\145\002\168\000\000\t\150\000\000\002\203\002\214\000\000\002\198\003\134\t\132\000\000\000\000\000\000\002\201\002\221\000\000\002\216\t\162\000\000\000\000\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\002\189\002\165\t\133\002f\002\166\002\167\t\135\002\168\000\000\t\163\000\000\000\000\002\214\004\147\000\000\000\000\t\136\004\255\000\000\000\000\000\000\002\221\002\201\002\216\000\000\000\000\002\197\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\000\000\002\189\000\000\002\203\002f\000\000\002\198\003\134\000\000\000\000\000\000\000\000\000\000\000\000\004\147\t\137\005\005\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\197\000\000\000\000\000\000\002\165\000\000\000\000\002\166\002\167\000\000\002\168\000\000\000\000\000\000\000\000\002\214\002\203\002\198\003\134\000\000\000\000\000\000\000\000\000\000\002\221\002\201\002\216\000\000\000\000\000\000\t\138\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\000\000\002\189\002\165\000\000\002f\002\166\002\167\t\139\002\168\000\000\000\000\000\000\000\000\002\214\004\147\000\000\005\011\000\000\000\000\000\000\000\000\002\201\002\221\000\000\002\216\002\197\000\000\000\000\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\t\177\002\189\000\000\000\000\002f\002\203\002\198\003\134\000\000\000\000\000\000\000\000\000\000\000\000\004\147\000\000\000\000\t\141\005\017\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\197\000\000\t\142\000\000\002\165\000\000\t\143\002\166\002\167\t\145\002\168\000\000\t\150\000\000\002\203\002\214\000\000\002\198\003\134\000\000\000\000\000\000\000\000\002\201\002\221\000\000\002\216\t\162\000\000\000\000\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\002\189\002\165\000\000\002f\002\166\002\167\000\000\002\168\000\000\t\163\000\000\000\000\002\214\004\147\000\000\000\000\000\000\005\023\000\000\000\000\000\000\002\221\002\201\002\216\000\000\000\000\002\197\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\000\000\002\189\000\000\002\203\002f\000\000\002\198\003\134\000\000\000\000\000\000\000\000\000\000\000\000\004\147\000\000\005\029\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\197\000\000\000\000\000\000\002\165\000\000\000\000\002\166\002\167\000\000\002\168\000\000\000\000\000\000\000\000\002\214\002\203\002\198\003\134\000\000\000\000\000\000\000\000\000\000\002\221\002\201\002\216\000\000\000\000\000\000\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\000\000\002\189\002\165\000\000\002f\002\166\002\167\000\000\002\168\000\000\000\000\000\000\000\000\002\214\004\147\000\000\005#\000\000\000\000\000\000\000\000\002\201\002\221\000\000\002\216\002\197\000\000\000\000\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\002\189\000\000\000\000\002f\002\203\002\198\003\134\000\000\000\000\000\000\000\000\000\000\000\000\004\147\000\000\000\000\000\000\005)\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\197\000\000\000\000\000\000\002\165\000\000\000\000\002\166\002\167\000\000\002\168\000\000\000\000\000\000\002\203\002\214\000\000\002\198\003\134\000\000\000\000\000\000\000\000\002\201\002\221\000\000\002\216\000\000\000\000\000\000\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\002\189\002\165\000\000\002f\002\166\002\167\000\000\002\168\000\000\000\000\000\000\000\000\002\214\004\147\000\000\000\000\000\000\005/\000\000\000\000\000\000\002\221\002\201\002\216\000\000\000\000\002\197\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\000\000\002\189\000\000\002\203\002f\000\000\002\198\003\134\000\000\000\000\000\000\000\000\000\000\000\000\004\147\000\000\0055\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\197\000\000\000\000\000\000\002\165\000\000\000\000\002\166\002\167\000\000\002\168\000\000\000\000\000\000\000\000\002\214\002\203\002\198\003\134\000\000\000\000\000\000\000\000\000\000\002\221\002\201\002\216\000\000\000\000\000\000\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\000\000\002\189\002\165\000\000\002f\002\166\002\167\000\000\002\168\000\000\000\000\000\000\000\000\002\214\004\147\000\000\005;\000\000\000\000\000\000\000\000\002\201\002\221\000\000\002\216\002\197\000\000\000\000\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\002\189\000\000\000\000\002f\002\203\002\198\003\134\000\000\000\000\000\000\000\000\000\000\000\000\004\147\000\000\000\000\000\000\005A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\197\000\000\000\000\000\000\002\165\000\000\000\000\002\166\002\167\000\000\002\168\000\000\000\000\000\000\002\203\002\214\000\000\002\198\003\134\000\000\000\000\000\000\000\000\002\201\002\221\000\000\002\216\000\000\000\000\000\000\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\002\189\002\165\000\000\002f\002\166\002\167\000\000\002\168\000\000\000\000\000\000\000\000\002\214\004\147\000\000\000\000\000\000\005G\000\000\000\000\000\000\002\221\002\201\002\216\000\000\000\000\002\197\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\000\000\002\189\000\000\002\203\002f\000\000\002\198\003\134\000\000\000\000\000\000\000\000\000\000\000\000\004\147\000\000\005M\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\197\000\000\000\000\000\000\002\165\000\000\000\000\002\166\002\167\000\000\002\168\000\000\000\000\000\000\000\000\002\214\002\203\002\198\003\134\000\000\000\000\000\000\000\000\000\000\002\221\002\201\002\216\000\000\000\000\000\000\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\000\000\002\189\002\165\000\000\002f\002\166\002\167\000\000\002\168\000\000\000\000\000\000\000\000\002\214\004\147\000\000\005S\000\000\000\000\000\000\000\000\002\201\002\221\000\000\002\216\002\197\000\000\000\000\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\002\189\000\000\000\000\002f\002\203\002\198\003\134\000\000\000\000\000\000\000\000\000\000\000\000\004\147\000\000\000\000\000\000\005Y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\197\001\007\001\b\001\t\002\165\000\000\001\n\002\166\002\167\001\015\002\168\000\000\000\000\000\000\002\203\002\214\001\029\002\198\003\134\000\000\000\000\000\000\000\000\002\201\002\221\000\000\002\216\000\000\000\000\000\000\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\002\189\002\165\000\000\002f\002\166\002\167\000\000\002\168\000\000\000\000\000\000\000\000\002\214\004\147\000\000\000\000\000\000\005g\000\000\000\000\000\000\002\221\002\201\002\216\000\000\000\000\002\197\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\000\000\002\189\000\000\002\203\002f\000\000\002\198\003\134\000\000\000\000\001\027\000\000\000\000\000\000\004\147\000\000\005m\000\000\000\000\000\000\000\000\000\000\001\007\001\b\001\t\002\197\000\000\001\n\000\000\001\011\001\015\000\000\000\000\0012\000\000\000\000\000\000\001\029\000\000\000\000\002\214\002\203\002\198\003\134\000\000\000\000\000\000\000\000\000\000\002\221\002\201\002\216\000\000\000\000\000\000\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\000\000\002\189\000\000\000\000\002f\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\214\004\147\000\000\000\000\000\000\001\007\001\b\001\t\002\201\002\221\001\n\002\216\000\000\001\015\000\000\000\000\000\000\000\000\000\000\000\000\001\029\000\000\000\000\000\000\002\189\000\000\000\000\002f\002\203\001\027\001\007\001\b\001\t\000\000\000\000\001\n\000\000\004\147\001\015\000\000\000\000\000\000\001>\000\000\000\000\001\029\000\000\000\000\001\011\000\000\000\000\001?\0012\000\000\001@\000\000\000\000\001A\001B\005\134\000\000\000\000\000\000\000\000\002\203\002\214\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\221\001\012\002\216\000\000\000\000\001(\001)\000\000\000\000\001\002\000\000\000\000\001Y\000\000\000\000\000\000\001\027\000\000\001s\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\214\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\011\002\221\000\000\002\216\0012\000\000\001\027\001\007\001\b\001\t\000\000\000\000\001\n\000\000\004\000\001\015\004\001\004\002\002\167\000\000\004\003\000\000\001\029\000\000\000\000\001\011\000\000\001\012\000\000\0012\001>\001(\001)\000\000\004\142\001\002\000\000\000\000\000\000\001?\000\000\000\000\001@\004\148\000\000\001A\001B\005\142\000\000\000\000\000\000\000\000\001\012\000\000\005\225\000\000\001(\001)\000\000\000\000\001\002\000\000\000\000\000\000\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\000\000\001Y\000\000\004\167\000\000\000\000\000\000\001s\000\000\000\000\000\000\000\000\004\142\000\000\000\000\000\000\000\000\000\000\001>\001\027\000\000\004\148\000\000\000\000\000\000\000\000\000\000\001?\000\000\000\000\001@\000\000\005\229\001A\001B\005\160\000\000\000\000\001\011\000\000\000\000\000\000\0012\001>\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001?\000\000\004\167\001@\000\000\000\000\001A\001B\005\177\000\000\001Y\004\187\000\000\001\012\000\000\000\000\001s\001(\001)\000\000\000\000\001\002\000\000\000\000\000\000\000\000\000\000\004\006\000\000\004\177\002f\000\000\000\000\000\000\000\000\001Y\000\000\000\000\000\000\000\000\000\000\001s\000\000\000\000\000\000\000\000\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\187\004\189\000\000\000\000\000\000\004\142\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\004\148\001>\004\006\000\000\004\177\002f\000\000\000\000\000\000\000\000\001?\005\231\004\142\001@\000\000\000\000\001A\001B\005\193\000\000\005\227\004\148\004\207\000\000\000\000\000\000\000\000\000\000\004\178\000\000\000\000\000\000\005\234\004\167\000\000\000\000\000\000\004\208\004\189\002\216\004\180\000\000\000\000\000\000\000\000\001Y\000\000\000\000\000\000\000\000\000\000\001s\000\000\000\000\004\167\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001F\000\000\004\210\000\000\000\000\000\000\005\227\001H\004\207\000\000\000\000\000\000\000\000\000\000\004\178\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\208\000\000\002\216\004\180\000\000\004\187\000\000\004\000\000\000\004\001\004\002\002\167\004\000\004\003\004\001\004\002\002\167\000\000\004\003\000\000\000\000\004\006\000\000\004\177\002f\000\000\004\187\004\142\000\000\000\000\004\210\000\000\004\142\000\000\000\000\000\000\004\148\000\000\000\000\000\000\000\000\004\148\004\006\000\000\004\177\002f\000\000\005\241\000\000\000\000\000\000\000\000\005\250\000\000\001\027\000\000\002\165\004\189\000\000\002\166\002\167\000\000\002\168\000\000\000\000\000\000\000\000\000\000\000\000\004\167\000\000\000\000\000\000\001\011\004\167\000\000\000\000\001I\004\189\000\000\000\000\000\000\000\000\002\169\003\233\000\000\002\181\002\182\002\187\000\000\005\227\000\000\004\207\000\000\000\000\000\000\000\000\000\000\004\178\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\004\208\001\002\002\216\004\180\005\227\000\000\004\207\000\000\000\000\000\000\000\000\000\000\004\178\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\208\004\187\002\216\004\180\002\165\000\000\004\187\002\166\002\167\004\210\002\168\000\000\000\000\000\000\000\000\000\000\000\000\004\006\000\000\004\177\002f\000\000\004\006\000\000\004\177\002f\000\000\000\000\000\000\000\000\004\210\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\002\165\000\000\000\000\002\166\002\167\001?\002\168\000\000\001@\000\000\002\188\001A\001B\004\189\000\000\000\000\005\247\000\000\004\189\000\000\000\000\000\000\000\000\000\000\000\000\002\197\002\189\002\169\002\196\002f\002\181\002\182\002\187\000\000\000\000\004\000\000\000\004\001\004\002\002\167\001Y\004\003\002\198\003\134\000\000\000\000\005\227\000\000\004\207\000\000\000\000\005\227\006\000\004\207\004\178\004\142\000\000\000\000\000\000\004\178\000\000\002\197\000\000\004\208\004\148\002\216\004\180\tw\004\208\000\000\002\216\004\180\000\000\000\000\000\000\006\003\000\000\000\000\002\198\003\134\000\000\000\000\000\000\000\000\000\000\000\000\002\201\000\000\000\000\000\000\000\000\000\000\000\000\004\210\000\000\000\000\000\000\004\167\004\210\000\000\000\000\000\000\002\189\002\214\000\000\002f\000\000\000\000\000\000\000\000\000\000\000\000\002\215\000\000\002\216\004\147\000\000\000\000\000\000\000\000\000\000\000\000\002\201\000\000\000\000\000\000\000\000\000\000\000\000\tx\000\000\000\000\000\000\002\165\000\000\000\000\002\166\002\167\002\189\002\168\000\000\002f\002\203\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\147\000\000\000\000\000\000\000\000\000\000\004\187\000\000\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\002\165\000\000\000\000\002\166\002\167\004\006\002\168\004\177\002f\000\000\002\203\002\214\000\000\000\000\000\000\000\000\000\000\006\t\000\000\000\000\002\221\000\000\002\216\000\000\000\000\000\000\002\197\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\002\165\000\000\000\000\002\166\002\167\004\189\002\168\002\198\003\134\000\000\000\000\002\214\000\000\000\000\000\000\000\000\006\019\000\000\000\000\000\000\002\221\000\000\002\216\000\000\000\000\002\197\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\000\000\000\000\005\227\000\000\004\207\000\000\002\198\003\134\000\000\000\000\004\178\000\000\000\000\000\000\000\000\002\201\006\028\000\000\000\000\004\208\000\000\002\216\004\180\000\000\000\000\002\197\000\000\000\000\000\000\000\000\000\000\002\189\000\000\002\165\002f\000\000\002\166\002\167\000\000\002\168\000\000\000\000\002\198\003\134\004\147\000\000\000\000\000\000\000\000\004\210\002\201\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\169\002\196\000\000\002\181\002\182\002\187\002\189\000\000\000\000\002f\000\000\002\203\000\000\000\000\000\000\000\000\000\000\000\000\004\000\004\147\004\001\004\002\002\167\000\000\004\003\006%\002\201\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\197\000\000\000\000\000\000\004\142\000\000\000\000\000\000\002\189\000\000\000\000\002f\002\203\004\148\002\214\000\000\000\000\002\198\003\134\000\000\000\000\004\147\000\000\002\221\006*\002\216\000\000\000\000\000\000\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\002\165\000\000\000\000\002\166\002\167\000\000\002\168\000\000\000\000\004\167\000\000\002\203\002\214\004\142\002\165\000\000\000\000\002\166\002\167\000\000\002\168\002\221\004\148\002\216\002\201\000\000\000\000\002\169\002\196\000\000\002\181\002\182\002\187\0063\000\000\000\000\000\000\000\000\000\000\000\000\002\189\002\169\002\196\002f\002\181\002\182\002\187\000\000\002\214\000\000\000\000\000\000\0060\004\147\000\000\004\167\000\000\002\221\000\000\002\216\000\000\002\197\000\000\000\000\000\000\000\000\0069\000\000\000\000\004\187\000\000\000\000\000\000\000\000\000\000\002\197\000\000\000\000\002\198\003\134\002\203\000\000\000\000\000\000\000\000\004\006\000\000\004\177\002f\000\000\000\000\000\000\002\198\003\134\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\004\001\004\002\002\167\004\187\004\003\002\214\000\000\000\000\000\000\004\189\002\201\000\000\000\000\000\000\002\221\000\000\002\216\000\000\004\142\004\006\000\000\004\177\002f\000\000\002\201\000\000\002\189\004\148\000\000\002f\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006<\004\147\002\189\000\000\005\227\002f\004\207\002\165\000\000\000\000\002\166\002\167\004\178\002\168\000\000\004\147\000\000\004\189\000\000\000\000\000\000\004\208\004\167\002\216\004\180\000\000\000\000\000\000\002\203\000\000\000\000\000\000\000\000\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\002\203\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\227\004\210\004\207\000\000\000\000\000\000\000\000\000\000\004\178\006B\000\000\000\000\000\000\000\000\000\000\002\214\000\000\004\208\002\197\002\216\004\180\000\000\000\000\000\000\002\221\000\000\002\216\000\000\000\000\002\214\000\000\000\000\004\187\000\000\000\000\002\198\003\134\000\000\002\221\000\000\002\216\000\000\000\000\000\000\000\000\000\000\000\000\004\210\004\006\000\000\004\177\002f\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\002\165\000\000\000\000\002\166\002\167\000\000\002\168\000\000\000\000\000\000\000\000\000\000\000\000\004\142\000\000\000\000\000\000\000\000\000\000\002\201\000\000\000\000\004\148\000\000\004\189\000\000\000\000\002\169\002\196\000\000\002\181\002\182\002\187\006T\000\000\002\189\000\000\000\000\002f\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\147\000\000\000\000\000\000\006I\000\000\000\000\004\167\000\000\005\227\t\132\004\207\000\000\002\197\000\000\000\000\000\000\004\178\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\004\208\002\203\002\216\004\180\002\198\003\134\011\227\000\000\000\000\000\000\t\135\000\000\004\142\004\000\000\000\004\001\004\002\002\167\000\000\004\003\t\136\004\148\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\210\000\000\006W\004\142\000\000\000\000\000\000\000\000\002\214\000\000\000\000\004\187\004\148\000\000\000\000\000\000\000\000\002\221\002\201\002\216\000\000\000\000\000\000\006\183\004\167\000\000\t\137\004\006\000\000\004\177\002f\000\000\000\000\000\000\002\189\000\000\000\000\002f\000\000\000\000\002\165\000\000\000\000\002\166\002\167\004\167\002\168\004\147\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\189\000\000\000\000\t\138\002\169\002\196\000\000\002\181\002\182\002\187\000\000\002\203\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\139\004\187\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006s\000\000\000\000\000\000\005\227\000\000\004\207\000\000\004\006\002\197\004\177\002f\004\178\004\187\000\000\000\000\000\000\011\228\000\000\002\214\000\000\004\208\000\000\002\216\004\180\000\000\002\198\003\134\002\221\004\006\002\216\004\177\002f\000\000\000\000\000\000\000\000\t\141\000\000\000\000\000\000\000\000\000\000\000\000\004\189\000\000\000\000\000\000\000\000\t\142\000\000\004\210\000\000\t\143\000\000\000\000\t\145\000\000\000\000\t\150\002\165\000\000\000\000\002\166\002\167\004\189\002\168\000\000\000\000\000\000\002\201\000\000\000\000\000\000\t\162\000\000\000\000\005\227\000\000\004\207\000\000\000\000\000\000\000\000\000\000\004\178\002\189\002\169\002\196\002f\002\181\002\182\002\187\000\000\004\208\t\163\002\216\004\180\006\185\004\147\004\207\002\165\000\000\000\000\002\166\002\167\004\178\002\168\000\000\000\000\000\000\000\000\006x\000\000\000\000\004\208\000\000\002\216\004\180\000\000\000\000\002\197\000\000\000\000\004\210\000\000\002\203\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\000\000\002\198\003\134\000\000\000\000\000\000\000\000\000\000\004\210\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\132\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\219\002\197\002\214\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\221\000\000\002\216\000\000\000\000\000\000\000\000\002\198\003\134\000\000\002\201\000\000\000\000\002\165\000\000\000\000\002\166\002\167\000\000\002\168\000\000\000\000\000\000\n\220\000\000\n\221\002\189\002\165\000\000\002f\002\166\002\167\000\000\002\168\000\000\000\000\000\000\000\000\000\000\004\147\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\000\000\000\000\002\201\000\000\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\n\222\000\000\000\000\000\000\006\140\002\203\002\189\000\000\000\000\002f\000\000\000\000\000\000\002\197\000\000\000\000\000\000\000\000\006\148\004\147\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\197\000\000\000\000\002\198\003\134\000\000\000\000\002\165\000\000\000\000\002\166\002\167\n\223\002\168\000\000\002\214\000\000\002\198\003\134\002\203\000\000\000\000\000\000\000\000\002\221\000\000\002\216\000\000\000\000\n\224\n\225\000\000\n\226\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\201\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\214\000\000\000\000\006\155\n\227\002\201\000\000\002\189\000\000\002\221\002f\002\216\002\197\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\147\002\189\002\165\000\000\002f\002\166\002\167\000\000\002\168\002\198\003\134\000\000\n\228\000\000\004\147\000\000\n\229\000\000\000\000\n\231\000\000\000\000\n\237\n\239\000\000\000\000\000\000\002\203\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\n\251\000\000\000\000\000\000\002\203\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\201\006\161\000\000\000\000\000\000\n\252\000\000\000\000\000\000\000\000\002\197\002\214\000\000\000\000\000\000\000\000\002\189\000\000\000\000\002f\002\221\000\000\002\216\000\000\000\000\002\214\000\000\002\198\003\134\004\147\000\000\000\000\000\000\000\000\002\221\000\000\002\216\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\165\000\000\000\000\002\166\002\167\000\000\002\168\000\000\000\000\000\000\000\000\002\203\000\000\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\000\000\000\000\000\000\000\000\002\201\002\169\002\196\000\000\002\181\002\182\002\187\000\000\004\142\002\165\000\000\000\000\002\166\002\167\000\000\002\168\002\189\004\148\000\000\002f\000\000\000\000\002\214\000\000\000\000\000\000\006\166\000\000\006\196\004\147\000\000\002\221\000\000\002\216\000\000\002\197\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\002\165\000\000\000\000\002\166\002\167\004\167\002\168\002\198\003\134\000\000\000\000\002\203\000\000\000\000\000\000\000\000\006\173\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\197\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\002\198\003\134\000\000\000\000\000\000\000\000\002\214\000\000\000\000\002\201\006\192\000\000\004\142\000\000\000\000\002\221\000\000\002\216\000\000\002\197\000\000\004\148\000\000\004\187\000\000\002\189\000\000\000\000\002f\000\000\000\000\000\000\006\209\000\000\000\000\000\000\002\198\003\134\004\147\004\006\000\000\004\177\002f\000\000\002\201\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\167\000\000\000\000\000\000\000\000\000\000\002\189\000\000\000\000\002f\000\000\002\203\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\147\000\000\004\189\000\000\000\000\000\000\000\000\002\201\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\165\000\000\000\000\002\166\002\167\002\189\002\168\000\000\002f\002\203\000\000\002\214\000\000\000\000\000\000\000\000\000\000\006\198\004\147\004\207\002\221\000\000\002\216\004\187\000\000\004\178\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\004\208\000\000\002\216\004\180\000\000\004\006\000\000\004\177\002f\000\000\000\000\002\203\002\214\000\000\000\000\000\000\000\000\000\000\006\206\000\000\000\000\002\221\000\000\002\216\000\000\000\000\000\000\002\197\000\000\000\000\004\210\000\000\000\000\000\000\002\165\000\000\000\000\002\166\002\167\000\000\002\168\004\189\000\000\000\000\002\198\003\134\000\000\000\000\002\214\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\221\000\000\002\216\000\000\002\169\002\196\000\000\002\181\002\182\002\187\004\000\000\000\004\001\004\002\002\167\000\000\004\003\006\211\000\000\004\207\000\000\000\000\000\000\000\000\000\000\004\178\000\000\000\000\000\000\006\238\000\000\002\201\000\000\000\000\004\208\000\000\002\216\004\180\002\197\007\250\000\000\000\000\002\165\000\000\000\000\002\166\002\167\002\189\002\168\000\000\002f\000\000\000\000\000\000\000\000\002\198\003\134\000\000\000\000\000\000\004\147\000\000\000\000\000\000\004\210\000\000\000\000\000\000\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\002\165\000\000\000\000\002\166\002\167\000\000\002\168\000\000\000\000\002\203\000\000\000\000\000\000\000\000\000\000\000\000\006\255\000\000\000\000\000\000\000\000\002\201\000\000\000\000\000\000\002\197\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\000\000\002\189\000\000\000\000\002f\000\000\002\198\003\134\000\000\000\000\002\214\000\000\000\000\000\000\004\147\000\000\007\004\000\000\004\005\002\221\000\000\002\216\000\000\000\000\000\000\002\197\000\000\000\000\000\000\002\165\000\000\000\000\002\166\002\167\004\006\002\168\004\177\002f\000\000\000\000\000\000\002\203\002\198\003\134\000\000\000\000\000\000\000\000\000\000\000\000\002\201\000\000\000\000\000\000\000\000\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\000\000\002\189\002\165\000\000\002f\002\166\002\167\000\000\002\168\000\000\000\000\000\000\000\000\002\214\004\147\000\000\007\011\000\000\000\000\000\000\000\000\002\201\002\221\000\000\002\216\002\197\000\000\000\000\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\002\189\000\000\000\000\002f\002\203\002\198\003\134\000\000\000\000\004\178\000\000\000\000\000\000\004\147\000\000\000\000\000\000\007\029\004\179\000\000\002\216\004\180\000\000\000\000\000\000\000\000\002\197\000\000\000\000\000\000\002\165\000\000\000\000\002\166\002\167\000\000\002\168\000\000\000\000\000\000\002\203\002\214\000\000\002\198\003\134\000\000\000\000\000\000\000\000\002\201\002\221\000\000\002\216\000\000\000\000\000\000\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\002\189\002\165\000\000\002f\002\166\002\167\000\000\002\168\000\000\000\000\000\000\000\000\002\214\004\147\000\000\000\000\000\000\007\"\000\000\000\000\000\000\002\221\002\201\002\216\000\000\000\000\002\197\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\000\000\002\189\000\000\002\203\002f\000\000\002\198\003\134\000\000\000\000\000\000\000\000\000\000\000\000\004\147\000\000\007-\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\197\000\000\000\000\000\000\002\165\000\000\000\000\002\166\002\167\000\000\002\168\000\000\000\000\000\000\000\000\002\214\002\203\002\198\003\134\000\000\000\000\000\000\000\000\000\000\002\221\002\201\002\216\000\000\000\000\000\000\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\000\000\002\189\002\165\000\000\002f\002\166\002\167\000\000\002\168\000\000\000\000\000\000\000\000\002\214\004\147\000\000\0076\000\000\000\000\000\000\000\000\002\201\002\221\000\000\002\216\002\197\000\000\000\000\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\002\189\000\000\000\000\002f\002\203\002\198\003\134\000\000\000\000\000\000\000\000\000\000\000\000\004\147\000\000\000\000\000\000\007A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\197\001\007\001\b\001\t\002\165\000\000\001\n\002\166\002\167\001\015\002\168\000\000\000\000\000\000\002\203\002\214\001\029\002\198\003\134\000\000\000\000\000\000\000\000\002\201\002\221\000\000\002\216\000\000\000\000\000\000\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\002\189\002\165\000\000\002f\002\166\002\167\000\000\002\168\000\000\000\000\000\000\000\000\002\214\004\147\000\000\000\000\000\000\007L\000\000\000\000\000\000\002\221\002\201\002\216\000\000\000\000\002\197\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\000\000\002\189\000\000\002\203\002f\000\000\002\198\003\134\000\000\000\000\001\027\000\000\000\000\000\000\004\147\000\000\007X\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\197\000\000\000\000\000\000\001\011\000\000\000\000\000\000\0012\000\000\000\000\000\000\000\000\000\000\000\000\002\214\002\203\002\198\003\134\000\000\000\000\000\000\000\000\000\000\002\221\002\201\002\216\000\000\000\000\000\000\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\000\000\002\189\002\165\000\000\002f\002\166\002\167\000\000\002\168\000\000\000\000\000\000\000\000\002\214\004\147\000\000\000\000\000\000\000\000\000\000\000\000\002\201\002\221\000\000\002\216\000\000\000\000\000\000\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\002\189\000\000\000\000\002f\002\203\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\147\000\000\000\000\000\000\007\235\001>\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\197\001?\000\000\000\000\001@\000\000\000\000\001A\001B\007\202\000\000\000\000\000\000\000\000\002\203\002\214\000\000\002\198\003\134\000\000\000\000\000\000\000\000\000\000\002\221\000\000\002\216\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001Y\002\165\000\000\000\000\002\166\002\167\001s\002\168\002\165\000\000\000\000\002\166\002\167\000\000\002\168\002\214\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\221\002\201\002\216\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\002\169\002\196\000\000\002\181\002\182\002\187\002\189\000\000\002\165\002f\000\000\002\166\002\167\000\000\002\168\000\000\000\000\000\000\007\241\004\147\000\000\000\000\000\000\000\000\000\000\b\011\000\000\002\197\000\000\000\000\000\000\000\000\000\000\000\000\002\197\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\002\198\003\134\002\203\000\000\001\007\001\b\001\t\002\198\003\134\001\n\000\000\000\000\001\015\000\000\000\000\000\000\b\018\000\000\000\000\001\029\000\000\000\000\000\000\000\000\000\000\002\197\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001\015\000\000\000\000\000\000\000\000\002\214\000\000\001\029\002\198\003\134\002\201\000\000\000\000\000\000\002\221\000\000\002\216\002\201\000\000\000\000\000\000\000\000\001\007\001\b\001\t\000\000\002\189\001\n\000\000\002f\001\015\000\000\000\000\002\189\000\000\000\000\002f\001\029\000\000\004\147\000\000\000\000\000\000\000\000\000\000\000\000\004\147\000\000\000\000\000\000\000\000\000\000\002\201\000\000\000\000\001\027\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\203\000\000\002\189\000\000\000\000\002f\000\000\002\203\001\011\000\000\000\000\001\027\0012\000\000\000\000\004\147\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\011\000\000\000\000\000\000\0012\001\012\000\000\002\214\000\000\001(\001)\001\027\002\203\001\002\002\214\000\000\002\221\000\000\002\216\000\000\000\000\000\000\000\000\002\221\000\000\002\216\000\000\001\012\000\000\000\000\001\011\001(\001)\000\000\0012\001\002\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001\015\000\000\000\000\002\214\000\000\000\000\000\000\001\029\000\000\000\000\000\000\001\012\002\221\000\000\002\216\001(\001)\000\000\000\000\001\002\000\000\000\000\000\000\001>\000\000\000\000\000\000\000\000\001\007\001\b\001\t\000\000\001?\001\n\000\000\001@\001\015\000\000\001A\001B\bL\000\000\000\000\001\029\000\000\001>\000\000\000\000\000\000\000\000\001\007\001\b\001\t\000\000\001?\001\n\000\000\001@\001\015\000\000\001A\001B\by\000\000\000\000\001\029\000\000\001Y\000\000\000\000\000\000\000\000\000\000\001s\000\000\001>\000\000\001\027\000\000\000\000\000\000\000\000\000\000\000\000\001?\000\000\000\000\001@\000\000\001Y\001A\001B\b\133\000\000\000\000\001s\001\011\000\000\000\000\000\000\0012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\027\000\000\000\000\000\000\000\000\000\000\001Y\000\000\000\000\000\000\001\012\000\000\001s\000\000\001(\001)\000\000\000\000\001\002\001\011\000\000\000\000\001\027\0012\000\000\000\000\000\000\001\007\001\b\001\t\t\132\000\000\001\n\000\000\000\000\001\015\000\000\000\000\000\000\000\000\000\000\001\011\001\029\000\000\000\000\0012\001\012\000\000\000\000\011\236\001(\001)\011\237\000\000\001\002\000\000\t\135\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\136\000\000\001\012\000\000\000\000\000\000\001(\001)\001>\000\000\001\002\000\000\000\000\001\007\001\b\001\t\000\000\001?\001\n\000\000\001@\001\015\000\000\001A\001B\b\159\000\000\000\000\001\029\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\137\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001>\000\000\001\027\000\000\000\000\001\007\001\b\001\t\001Y\001?\001\n\000\000\001@\001\015\001s\001A\001B\b\175\000\000\000\000\001\029\001\011\001>\000\000\000\000\0012\000\000\000\000\000\000\000\000\000\000\001?\t\138\000\000\001@\000\000\000\000\001A\001B\b\228\000\000\000\000\000\000\000\000\001Y\000\000\000\000\000\000\001\012\t\139\001s\000\000\001(\001)\001\027\000\000\001\002\000\000\000\000\000\000\000\000\000\000\000\000\001\007\001\b\001\t\001Y\000\000\001\n\000\000\000\000\001\015\001s\001\011\011\247\000\000\000\000\0012\001\029\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\027\000\000\000\000\000\000\000\000\t\141\000\000\000\000\000\000\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\t\142\001\002\001\011\000\000\t\143\001>\0012\t\145\000\000\000\000\t\150\000\000\000\000\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\b\246\000\000\000\000\t\162\000\000\000\000\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\000\000\000\000\000\000\001\027\000\000\000\000\000\000\000\000\t\163\000\000\000\000\001Y\000\000\000\000\000\000\000\000\000\000\001s\000\000\001>\000\000\000\000\001\011\000\000\000\000\000\000\0012\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\t\014\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\012\000\000\000\000\000\000\001(\001)\001>\002\165\001\002\000\000\002\166\002\167\000\000\002\168\001Y\001?\000\000\000\000\001@\000\000\001s\001A\001B\t\232\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001Y\000\000\000\000\000\000\000\000\000\000\001s\000\000\000\000\t\250\000\000\000\000\000\000\000\000\001>\000\000\000\000\000\000\002\197\000\000\000\000\000\000\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\t\242\000\000\000\000\000\000\002\198\003\134\000\000\002\165\000\000\000\000\002\166\002\167\000\000\002\168\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\165\000\000\000\000\002\166\002\167\001Y\002\168\000\000\000\000\000\000\000\000\001s\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\201\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\000\000\n\004\000\000\000\000\000\000\000\000\002\189\000\000\000\000\002f\002\197\000\000\000\000\000\000\000\000\000\000\n\019\002\165\000\000\004\147\002\166\002\167\000\000\002\168\000\000\002\197\000\000\002\198\003\134\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\198\003\134\002\169\002\196\002\203\002\181\002\182\002\187\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001\015\000\000\000\000\n\023\000\000\002\201\000\000\001\029\000\000\000\000\002\165\000\000\002\197\002\166\002\167\000\000\002\168\002\214\000\000\000\000\002\201\002\189\000\000\000\000\002f\000\000\002\221\000\000\002\216\002\198\003\134\000\000\000\000\000\000\004\147\000\000\002\189\002\169\003\233\002f\002\181\002\182\002\187\000\000\000\000\001\007\001\b\001\t\000\000\004\147\001\n\000\000\000\000\001\015\000\000\000\000\000\000\000\000\000\000\000\000\001\029\002\203\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\007\001\b\001\t\002\201\000\000\001\n\002\203\001\027\001\015\000\000\000\000\000\000\000\000\000\000\000\000\001\029\000\000\000\000\000\000\002\189\000\000\000\000\002f\000\000\000\000\000\000\001\011\000\000\002\214\000\000\0012\000\000\004\147\000\000\000\000\000\000\000\000\002\221\000\000\002\216\000\000\000\000\000\000\002\214\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\221\001\012\002\216\000\000\000\000\001(\001)\002\203\001\027\001\002\002\188\000\000\000\000\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001\015\000\000\000\000\002\189\001\011\000\000\002f\001\029\0012\000\000\001\027\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\000\000\002\214\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\011\002\221\001\012\002\216\0012\000\000\001(\001)\000\000\000\000\001\002\000\000\006\218\001>\000\000\tw\000\000\000\000\000\000\000\000\006\227\000\000\001?\000\000\000\000\001@\000\000\001\012\001A\001B\n+\001(\001)\000\000\000\000\001\002\000\000\000\000\000\000\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\001\027\001\015\0071\002\214\000\000\000\000\000\000\000\000\001\029\001Y\000\000\000\000\002\215\000\000\002\216\001s\000\000\000\000\001>\001\011\000\000\000\000\000\000\0012\000\000\000\000\000\000\001?\000\000\t\128\001@\000\000\000\000\001A\001B\011\003\004\000\000\000\004\001\004\002\002\167\000\000\004\003\001>\000\000\000\000\001\012\000\000\000\000\000\000\001(\001)\001?\000\000\001\002\001@\004\142\004\005\001A\001B\011(\000\000\001Y\000\000\000\000\004\148\000\000\000\000\001s\000\000\000\000\000\000\000\000\006\230\000\000\004\177\002f\002\136\001\027\004\000\000\000\004\001\004\002\002\167\000\000\004\003\004\000\001Y\004\001\004\002\002\167\000\000\004\003\001s\000\000\000\000\000\000\001\011\004\167\004\142\000\000\0012\000\000\002\165\000\000\000\000\002\166\002\167\004\148\002\168\001>\000\000\000\000\000\000\000\000\007)\006\221\002\165\000\000\001?\002\166\002\167\001@\002\168\001\012\001A\001B\011~\001(\001)\002\169\002\196\001\002\002\181\002\182\002\187\000\000\000\000\000\000\000\000\000\000\004\167\000\000\000\000\002\169\002\196\000\000\002\181\002\182\002\187\004\178\000\000\000\000\000\000\001Y\003\025\000\000\000\000\004\187\004\179\001s\002\216\004\180\000\000\002\197\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\006\000\000\004\177\002f\002\197\000\000\000\000\002\198\003\134\000\000\000\000\000\000\000\000\000\000\001>\000\000\000\000\000\000\000\000\000\000\000\000\002\198\003\004\001?\000\000\000\000\001@\004\187\000\000\001A\001B\000\000\000\000\000\000\004\005\000\000\004\189\000\000\000\000\000\000\000\000\000\000\000\000\004\006\000\000\004\177\002f\000\000\000\000\000\000\004\006\002\201\004\177\002f\000\000\000\000\000\000\000\000\001Y\000\000\000\000\000\000\000\000\000\000\001\248\002\201\000\000\002\189\000\000\n\005\002f\004\207\002\165\000\000\000\000\002\166\002\167\004\178\002\168\004\189\006\248\002\189\000\000\000\000\002f\000\000\004\208\000\000\002\216\004\180\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\002\203\000\000\000\000\003\022\000\000\007\236\000\000\004\207\000\000\004\210\000\000\000\000\000\000\004\178\002\203\000\000\000\000\000\000\000\000\000\000\004\178\000\000\004\208\000\000\002\216\004\180\002\197\000\000\000\000\004\179\000\000\002\216\004\180\000\000\000\000\000\000\002\165\002\214\000\000\002\166\002\167\000\000\002\168\002\198\003\004\000\000\002\221\000\000\002\216\000\000\000\000\002\214\004\210\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\221\000\000\002\216\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\000\000\000\000\003\002\000\000\000\000\002\165\000\000\000\000\002\166\002\167\000\000\002\168\000\000\000\000\000\000\002\201\000\000\002\165\000\000\000\000\002\166\002\167\000\000\002\168\000\000\002\197\000\000\000\000\000\000\007\231\000\000\002\189\002\169\003\233\002f\002\181\002\182\002\187\000\000\000\000\000\000\000\000\002\198\003\004\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\000\000\000\000\003\006\004\000\000\000\004\001\004\002\002\167\000\000\004\003\003\234\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\203\000\000\000\000\000\000\000\000\004\142\004\000\002\197\004\001\004\002\002\167\000\000\004\003\000\000\004\148\002\201\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\002\198\003\004\000\000\000\000\000\000\000\000\000\000\002\189\000\000\000\000\002f\007&\004\142\002\214\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\148\002\221\004\167\002\216\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\188\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\201\000\000\000\000\002\203\002\189\000\000\000\000\002f\000\000\000\000\004\167\000\000\000\000\000\000\000\000\000\000\002\189\000\000\004\000\002f\004\001\004\002\002\167\000\000\004\003\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\142\004\187\002\214\000\000\000\000\000\000\000\000\003\235\000\000\004\148\000\000\002\221\000\000\002\216\000\000\000\000\000\000\004\006\002\203\004\177\002f\000\000\004\005\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\187\005x\005\128\000\000\000\000\000\000\004\006\000\000\004\177\002f\007.\002\214\000\000\000\000\000\000\000\000\004\006\000\000\004\177\002f\002\215\004\189\002\216\002\214\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\221\000\000\002\216\000\000\000\000\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\189\000\000\007c\000\000\004\207\000\000\004\142\000\000\000\000\000\000\004\178\000\000\000\000\000\000\000\000\004\148\000\000\000\000\004\187\004\208\000\000\002\216\004\180\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\178\000\000\0077\004\006\004\207\004\177\002f\000\000\000\000\004\179\004\178\002\216\004\180\000\000\000\000\000\000\000\000\004\167\004\210\004\208\002\165\002\216\004\180\002\166\002\167\000\000\002\168\002\165\000\000\000\000\002\166\002\167\000\000\002\168\000\000\000\000\000\000\000\000\000\000\004\189\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\169\002\196\004\210\002\181\002\182\002\187\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\007\001\b\001\t\000\000\0070\001\n\004\207\000\000\001\015\004\187\000\000\000\000\004\178\002\197\000\000\001\029\000\000\000\000\000\000\000\000\002\197\004\208\000\000\002\216\004\180\004\006\000\000\004\177\002f\000\000\002\198\003\157\000\000\000\000\000\000\000\000\000\000\002\198\003\220\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\000\000\000\000\000\000\000\000\004\210\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\142\004\000\004\189\004\001\004\002\002\167\000\000\004\003\000\000\004\148\000\000\000\000\000\000\000\000\000\000\002\201\000\000\000\000\000\000\000\000\000\000\004\142\002\201\000\000\000\000\000\000\001\027\000\000\000\000\000\000\004\148\002\189\000\000\000\000\002f\007$\000\000\004\207\002\189\000\000\000\000\002f\004\167\004\178\004\000\001\011\004\001\004\002\002\167\0012\004\003\000\000\004\208\000\000\002\216\004\180\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\167\004\142\003\167\000\000\000\000\000\000\000\000\003\228\002\203\001\012\004\148\000\000\000\000\001(\001)\002\203\000\000\001\002\000\000\004\210\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001\015\000\000\000\000\000\000\000\000\000\000\000\000\001\029\000\000\000\000\004\187\000\000\000\000\000\000\004\167\000\000\002\214\000\000\000\000\000\000\000\000\000\000\000\000\002\214\000\000\002\221\004\006\002\216\004\177\002f\000\000\004\187\002\221\000\000\002\216\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001>\000\000\000\000\004\006\000\000\004\177\002f\000\000\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\000\000\004\189\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\187\000\000\000\000\001\027\002\165\000\000\000\000\002\166\002\167\004\189\002\168\000\000\000\000\000\000\001Y\000\000\004\006\000\000\004\177\002f\004'\006\239\001\011\004\207\000\000\000\000\0012\000\000\000\000\004\178\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\004\208\000\000\002\216\004\180\006O\000\000\004\207\000\000\000\000\000\000\000\000\001\012\004\178\000\000\004\189\001(\001)\000\000\000\000\001\002\000\000\004\208\000\000\002\216\004\180\000\000\000\000\002\197\000\000\000\000\004\210\000\000\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\000\000\000\000\000\000\002\198\003\134\000\000\005\215\000\000\004\207\000\000\004\210\000\000\004\142\000\000\004\178\000\000\000\000\000\000\000\000\000\000\000\000\004\148\000\000\004\208\000\000\002\216\004\180\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001>\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\001?\000\000\000\000\001@\002\201\000\000\001A\001B\000\000\000\000\004\210\004\167\004\142\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\189\004\148\000\000\002f\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\186\000\000\001Y\000\000\000\000\000\000\000\000\000\000\004)\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\000\000\000\000\000\000\004\167\000\000\000\000\000\000\000\000\000\000\002\203\000\000\000\000\004\142\004\000\000\000\004\001\004\002\002\167\000\000\004\003\004\187\004\148\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\000\000\000\000\004\142\000\000\000\000\004\006\000\000\004\177\002f\000\000\000\000\004\148\004\142\000\000\000\000\002\214\000\000\000\000\000\000\000\000\000\000\004\148\000\000\004\167\002\221\000\000\002\216\000\000\000\000\000\000\000\000\000\000\004\187\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\189\000\000\004\000\004\167\004\001\004\002\002\167\004\006\004\003\004\177\002f\000\000\000\000\004\167\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\142\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\148\000\000\004\199\000\000\004\207\000\000\000\000\000\000\000\000\000\000\004\178\004\187\004\189\000\000\000\000\000\000\000\000\000\000\000\000\004\208\000\000\002\216\004\180\000\000\000\000\000\000\000\000\004\006\000\000\004\177\002f\000\000\004\187\004\167\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\187\000\000\000\000\004\205\000\000\004\207\004\006\004\210\004\177\002f\000\000\004\178\000\000\000\000\000\000\000\000\004\006\000\000\004\177\002f\004\208\004\189\002\216\004\180\004\000\000\000\004\001\004\002\002\167\004\000\004\003\004\001\004\002\002\167\000\000\004\003\000\000\000\000\000\000\000\000\000\000\000\000\004\189\000\000\004\142\000\000\000\000\000\000\000\000\004\142\004\210\004\187\004\189\004\148\004\215\000\000\004\207\000\000\004\148\000\000\000\000\000\000\004\178\000\000\000\000\000\000\000\000\004\006\000\000\004\177\002f\004\208\000\000\002\216\004\180\004\226\000\000\004\207\004\000\000\000\004\001\004\002\002\167\004\178\004\003\004\232\004\167\004\207\000\000\000\000\000\000\004\167\004\208\004\178\002\216\004\180\000\000\000\000\004\142\000\000\000\000\004\210\004\208\004\189\002\216\004\180\000\000\004\148\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\210\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\210\000\000\000\000\000\000\004\238\000\000\004\207\004\000\004\167\004\001\004\002\002\167\004\178\004\003\004\187\000\000\000\000\000\000\000\000\004\187\000\000\004\208\000\000\002\216\004\180\000\000\000\000\004\142\000\000\000\000\004\006\000\000\004\177\002f\000\000\004\006\004\148\004\177\002f\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\210\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\002\165\000\000\000\000\002\166\002\167\004\189\002\168\004\187\004\167\000\000\004\189\000\000\004\142\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\148\000\000\004\006\000\000\004\177\002f\002\169\002\213\000\000\002\181\002\182\002\187\000\000\000\000\000\000\000\000\000\000\004\244\000\000\004\207\000\000\000\000\004\250\000\000\004\207\004\178\000\000\000\000\000\000\000\000\004\178\000\000\000\000\004\167\004\208\000\000\002\216\004\180\004\189\004\208\000\000\002\216\004\180\000\000\000\000\000\000\000\000\004\187\000\000\000\000\000\000\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\000\000\000\000\000\000\004\006\004\210\004\177\002f\000\000\000\000\004\210\000\000\005\000\004\142\004\207\004\000\000\000\004\001\004\002\002\167\004\178\004\003\004\148\000\000\000\000\000\000\000\000\000\000\000\000\004\208\000\000\002\216\004\180\000\000\004\187\004\142\000\000\000\000\000\000\000\000\004\189\000\000\002\188\000\000\004\148\000\000\000\000\000\000\000\000\000\000\004\006\000\000\004\177\002f\000\000\004\167\000\000\000\000\002\189\004\210\000\000\002f\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\006\000\000\004\207\000\000\004\167\000\000\000\000\000\000\004\178\000\000\000\000\000\000\004\000\004\189\004\001\004\002\002\167\004\208\004\003\002\216\004\180\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\142\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\148\004\187\000\000\000\000\000\000\005\012\004\210\004\207\004\000\000\000\004\001\004\002\002\167\004\178\004\003\000\000\000\000\004\006\000\000\004\177\002f\002\214\004\208\004\187\002\216\004\180\000\000\000\000\004\142\000\000\002\215\000\000\002\216\004\167\000\000\000\000\000\000\004\148\000\000\004\006\000\000\004\177\002f\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\210\004\189\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\004\167\000\000\000\000\000\000\000\000\004\189\000\000\000\000\000\000\000\000\000\000\000\000\004\142\000\000\000\000\000\000\005\018\000\000\004\207\000\000\000\000\004\148\000\000\004\187\004\178\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\208\000\000\002\216\004\180\000\000\005\024\004\006\004\207\004\177\002f\000\000\000\000\000\000\004\178\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\167\004\208\000\000\002\216\004\180\000\000\004\187\000\000\004\000\004\210\004\001\004\002\002\167\000\000\004\003\000\000\000\000\000\000\000\000\000\000\000\000\004\189\004\006\000\000\004\177\002f\000\000\000\000\004\142\000\000\004\000\004\210\004\001\004\002\002\167\000\000\004\003\004\148\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\142\000\000\000\000\000\000\005\030\000\000\004\207\000\000\004\189\004\148\004\187\000\000\004\178\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\167\004\208\000\000\002\216\004\180\000\000\004\006\000\000\004\177\002f\000\000\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\005$\004\167\004\207\000\000\000\000\000\000\000\000\000\000\004\178\000\000\004\210\000\000\000\000\000\000\000\000\000\000\000\000\004\208\000\000\002\216\004\180\004\189\000\000\000\000\000\000\000\000\000\000\001b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\187\004\000\000\000\004\001\004\002\002\167\000\000\004\003\004\210\000\000\000\000\000\000\000\000\000\000\000\000\005*\004\006\004\207\004\177\002f\000\000\004\142\004\187\004\178\000\000\000\000\000\000\000\000\000\000\000\000\004\148\000\000\004\208\000\000\002\216\004\180\000\000\000\000\004\006\000\000\004\177\002f\000\000\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\004\189\000\000\000\000\000\000\000\000\001\011\000\000\000\000\000\000\000\000\004\210\004\167\004\142\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\004\148\004\189\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\012\0050\004\142\004\207\001(\001)\000\000\000\000\001\002\004\178\000\000\004\148\000\000\000\000\000\000\000\000\000\000\000\000\004\208\000\000\002\216\004\180\004\167\0056\000\000\004\207\000\000\000\000\000\000\000\000\000\000\004\178\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\187\004\208\000\000\002\216\004\180\004\167\000\000\000\000\000\000\004\210\000\000\000\000\000\000\000\000\000\000\000\000\004\006\000\000\004\177\002f\000\000\000\000\000\000\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\004\210\000\000\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\000\000\004\187\004\142\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\189\004\148\000\000\000\000\000\000\000\000\000\000\004\006\000\000\004\177\002f\000\000\000\000\004\187\000\000\000\000\000\000\001h\000\000\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\000\000\004\006\000\000\004\177\002f\005<\004\167\004\207\000\000\000\000\000\000\000\000\004\142\004\178\004\000\004\189\004\001\004\002\002\167\000\000\004\003\004\148\004\208\000\000\002\216\004\180\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\142\000\000\000\000\004\189\000\000\000\000\000\000\000\000\000\000\004\148\000\000\000\000\000\000\000\000\005B\000\000\004\207\000\000\004\210\000\000\004\167\000\000\004\178\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\208\004\187\002\216\004\180\000\000\005H\000\000\004\207\000\000\000\000\000\000\004\167\000\000\004\178\000\000\000\000\000\000\004\006\000\000\004\177\002f\000\000\004\208\000\000\002\216\004\180\000\000\000\000\000\000\000\000\004\210\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\187\000\000\000\000\004\210\004\189\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\000\000\000\000\004\006\000\000\004\177\002f\000\000\000\000\004\187\000\000\000\000\000\000\004\142\000\000\000\000\000\000\004\000\000\000\004\001\004\002\002\167\004\148\004\003\005N\004\006\004\207\004\177\002f\000\000\000\000\000\000\004\178\000\000\000\000\000\000\000\000\004\142\000\000\004\189\000\000\004\208\000\000\002\216\004\180\000\000\004\148\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\004\167\000\000\000\000\000\000\000\000\000\000\004\189\000\000\000\000\000\000\000\000\000\000\000\000\004\142\000\000\000\000\004\210\005T\000\000\004\207\000\000\000\000\004\148\000\000\004\167\004\178\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\208\000\000\002\216\004\180\000\000\005Z\000\000\004\207\000\000\000\000\000\000\000\000\000\000\004\178\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\167\004\208\000\000\002\216\004\180\004\187\000\000\000\000\002\165\004\210\000\000\005r\002\167\000\000\002\168\000\000\000\000\000\000\000\000\000\000\000\000\004\006\002\165\004\177\002f\002\166\002\167\000\000\002\168\004\187\000\000\004\210\000\000\000\000\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\000\000\004\006\005w\004\177\002f\002\169\003\233\000\000\002\181\002\182\002\187\000\000\000\000\004\189\000\000\000\000\004\187\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\002\197\000\000\000\000\000\000\000\000\000\000\000\000\004\006\000\000\004\177\002f\003\234\004\189\004\142\000\000\000\000\000\000\002\198\002\230\000\000\000\000\005h\004\148\004\207\000\000\000\000\000\000\000\000\000\000\004\178\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\208\000\000\002\216\004\180\000\000\004\189\000\000\005n\000\000\004\207\000n\000\000\000\000\000\000\000\000\004\178\004\000\004\167\004\001\004\002\002\167\000\000\004\003\002\201\004\208\000\000\002\216\004\180\000\000\000\000\004\210\000\000\000\000\000\000\000\000\000\000\004\142\002\188\005\248\002\189\004\207\000\000\002f\000\000\000\000\004\148\004\178\000\000\000\000\000\000\000\000\000\000\000\000\002\189\004\210\004\208\002f\002\216\004\180\000\000\000\000\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\187\004\167\002\203\000\000\000\000\004\142\000\000\000\000\004\210\004\000\000\000\004\001\004\002\002\167\004\148\004\003\004\006\003\235\004\177\002f\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\142\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\148\002\214\000\000\000\000\000\000\005x\005\128\000\000\000\000\004\167\002\221\000\000\002\216\000\000\004\189\002\214\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\187\002\215\000\000\002\216\000\000\004\000\000\000\004\001\004\002\002\167\004\167\004\003\000\000\000\000\000\000\000\000\004\006\000\000\004\177\002f\000\000\000\000\000\000\000\000\006\001\004\142\004\207\000\000\000\000\000\000\000\000\000\000\004\178\000\000\004\148\000\000\000\000\000\000\000\000\000\000\000\000\004\208\000\000\002\216\004\180\000\000\004\187\000\000\000\000\000\000\000\000\000\000\004\189\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\004\006\000\000\004\177\002f\000\000\004\167\000\000\000\000\004\187\004\210\000\000\000\000\004\142\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\148\000\000\006\n\004\006\004\207\004\177\002f\000\000\000\000\000\000\004\178\000\000\000\000\000\000\004\000\004\189\004\001\004\002\002\167\004\208\004\003\002\216\004\180\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\167\004\142\000\000\000\000\000\000\000\000\004\189\000\000\000\000\000\000\004\148\004\187\000\000\000\000\000\000\006\020\004\210\004\207\000\000\000\000\000\000\000\000\000\000\004\178\000\000\000\000\000\000\004\006\000\000\004\177\002f\000\000\004\208\000\000\002\216\004\180\000\000\000\000\000\000\006\029\000\000\004\207\000\000\004\167\000\000\000\000\004\000\004\178\004\001\004\002\002\167\000\000\004\003\000\000\000\000\000\000\004\208\000\000\002\216\004\180\004\187\000\000\004\210\004\189\000\000\000\000\004\142\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\148\004\006\000\000\004\177\002f\000\000\000\000\000\000\000\000\000\000\000\000\004\210\000\000\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\006&\000\000\004\207\000\000\000\000\000\000\000\000\004\187\004\178\000\000\000\000\000\000\004\167\004\142\000\000\000\000\004\189\004\208\000\000\002\216\004\180\000\000\004\148\004\006\000\000\004\177\002f\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\210\000\000\0061\000\000\004\207\000\000\000\000\000\000\004\167\000\000\004\178\000\000\004\189\000\000\000\000\000\000\000\000\000\000\000\000\004\208\000\000\002\216\004\180\000\000\000\000\004\187\000\000\000\000\002\165\000\000\000\000\003L\002\167\000\000\002\168\000\000\000\000\000\000\000\000\000\000\000\000\004\006\000\000\004\177\002f\006:\000\000\004\207\000\000\004\210\000\000\000\000\000\000\004\178\000\000\002\169\004u\000\000\002\181\002\182\002\187\000\000\004\208\000\000\002\216\004\180\000\000\000\000\004\187\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\004\189\000\000\000\000\000\000\000\000\000\000\000\000\004\006\000\000\004\177\002f\003\030\000\000\004\142\000\000\004\210\000\000\004\000\000\000\004\001\004\002\002\167\004\148\004\003\000\000\000\000\000\000\000\000\006c\003#\000\000\000\000\000\000\006C\000\000\004\207\000\000\004\142\000\000\000\000\000\000\004\178\000\000\004\189\000\000\000\000\004\148\000\000\000\000\000\000\004\208\000\000\002\216\004\180\004\000\004\167\004\001\004\002\002\167\000\000\004\003\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\201\004\142\000\000\006J\000\000\004\207\004\167\004\210\000\000\000\000\004\148\004\178\000\000\000\000\000\000\000\000\002\189\000\000\000\000\002f\004\208\000\000\002\216\004\180\000\000\000\000\000\000\000\000\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001P\000\000\000\000\000\000\004\187\004\167\000\000\000\000\000\000\006j\000\000\000\000\004\210\000\000\000\000\000\000\000\000\003$\000\000\000\000\004\006\000\000\004\177\002f\000\000\000\000\000\000\000\000\004\187\000\000\000\000\000\000\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\000\000\000\000\000\000\004\006\000\000\004\177\002f\000\000\000\000\000\000\000\000\000\000\004\142\000\000\002\214\004\189\000\000\000\000\000\000\000\000\000\000\004\148\000\000\002\221\004\187\002\216\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\004\189\004\006\000\000\004\177\002f\000\000\000\000\000\000\000\000\006y\000\000\004\207\000\000\004\142\000\000\004\167\001\011\004\178\000\000\000\000\000\000\000\000\004\148\000\000\000\000\000\000\004\208\000\000\002\216\004\180\000\000\000\000\000\000\006\133\000\000\004\207\000\000\004\189\000\000\000\000\000\000\004\178\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\004\208\001\002\002\216\004\180\000\000\004\167\004\210\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\006\141\000\000\004\207\000\000\000\000\004\187\000\000\000\000\004\178\000\000\004\210\000\000\000\000\004\142\000\000\000\000\000\000\004\208\000\000\002\216\004\180\004\006\004\148\004\177\002f\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\187\001?\004\210\000\000\001@\000\000\004\142\001A\001B\000\000\004\167\000\000\004\189\000\000\000\000\004\148\004\006\000\000\004\177\002f\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\001Y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\149\000\000\004\207\004\167\004\142\000\000\000\000\004\189\004\178\000\000\001\007\001\b\001\t\004\148\000\000\001\n\000\000\004\208\001W\002\216\004\180\000\000\000\000\000\000\000\000\004\187\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\006\156\004\006\004\207\004\177\002f\000\000\004\167\004\210\004\178\000\000\000\000\000\000\004\142\000\000\000\000\000\000\000\000\004\208\000\000\002\216\004\180\004\148\000\000\004\187\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\189\000\000\004\006\000\000\004\177\002f\000\000\000\000\000\000\000\000\004\210\001\007\001\b\001\t\000\000\000\000\001\n\004\167\000\000\001p\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\187\000\000\000\000\000\000\006\168\000\000\004\207\000\000\001\011\004\189\000\000\000\000\004\178\000\000\000\000\000\000\004\006\000\000\004\177\002f\000\000\004\208\000\000\002\216\004\180\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\006\167\001\002\004\207\000\000\004\142\000\000\004\187\000\000\004\178\004\210\004\189\000\000\000\000\004\148\000\000\000\000\000\000\004\208\000\000\002\216\004\180\000\000\004\006\000\000\004\177\002f\000\000\000\000\000\000\000\000\004\000\000\000\004\001\004\002\002\167\004\000\004\003\004\001\004\002\002\167\000\000\004\003\000\000\006\174\001\011\004\207\004\167\004\210\000\000\000\000\004\142\004\178\000\000\000\000\000\000\004\142\000\000\000\000\004\189\004\148\004\208\000\000\002\216\004\180\004\148\000\000\001?\000\000\000\000\001@\000\000\001\012\001A\001B\000\000\001(\001)\000\000\000\000\001\002\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001\015\004\210\007\006\004\167\004\207\000\000\000\000\001\029\004\167\000\000\004\178\000\000\001Y\000\000\000\000\000\000\000\000\004\187\000\000\004\208\000\000\002\216\004\180\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\006\000\000\004\177\002f\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\000\000\000\000\000\000\000\000\004\210\000\000\000\000\000\000\000\000\000\000\001?\000\000\004\142\001@\000\000\000\000\001A\001B\004\187\000\000\000\000\004\148\000\000\004\187\004\189\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\027\000\000\004\006\000\000\004\177\002f\000\000\004\006\000\000\004\177\002f\000\000\000\000\001Y\000\000\000\000\000\000\000\000\000\000\001\011\000\000\000\000\004\167\0012\000\000\007\005\000\000\004\207\000\000\000\000\000\000\000\000\000\000\004\178\000\000\000\000\000\000\000\000\004\189\000\000\000\000\000\000\004\208\004\189\002\216\004\180\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\000\000\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\tO\000\000\000\000\000\000\000\000\007\012\004\210\004\207\000\000\000\000\007\030\000\000\004\207\004\178\000\000\000\000\004\187\000\000\004\178\000\000\000\000\000\000\004\208\000\000\002\216\004\180\000\000\004\208\000\000\002\216\004\180\000\000\004\006\000\000\004\177\002f\000\000\000\000\000\000\002\165\000\000\000\000\002\166\002\167\001>\002\168\000\000\000\000\000\000\000\000\000\000\000\000\004\210\001?\000\000\000\000\001@\004\210\000\000\001A\001B\000\000\000\000\b\252\000\000\000\000\002\169\003\233\004\189\002\181\002\182\002\187\000\000\000\000\000\000\000\000\000\000\tQ\000\000\000\000\000\000\000\000\000\000\002\165\000\000\000\000\002\166\002\167\001Y\002\168\000\000\000\000\000\000\000\000\007\162\000\000\001\011\003\234\000\000\000\000\000\000\b\019\000\000\004\207\000\000\000\000\000\000\t\020\000\000\004\178\002\169\003\233\000\000\002\181\002\182\002\187\000\000\000\000\004\208\000\000\002\216\004\180\000\000\tT\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\001\005\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\003\234\000\000\tO\000\000\001\007\001\b\001\t\004\210\000\000\001\n\000\000\000\000\tO\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\188\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\189\000\000\000\000\002f\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\tO\000\000\000\000\000\000\000\000\000\000\001?\000\000\000\000\tW\000\000\000\000\001A\001B\000\000\002\188\000\000\000\000\000\000\000\000\002\165\000\000\000\000\002\166\002\167\b\162\002\168\t[\003\235\tY\tQ\002\189\000\000\000\000\002f\000\000\000\000\000\000\000\000\000\000\tQ\001Y\000\000\000\000\000\000\000\000\000\000\002\169\002\226\001\011\002\181\002\182\002\187\000\000\005x\005\128\001\007\001\b\001\t\001\011\000\000\001\n\000\000\000\000\002\214\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\235\002\215\000\000\002\216\tT\tQ\000\000\000\000\001(\001)\000\000\000\000\001\002\001\005\tT\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\001\005\001\011\000\000\005x\005\128\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\002\214\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\215\000\000\002\216\000\000\004\142\000\000\tT\000\000\000\000\000\000\001(\001)\000\000\004\148\001\002\001\005\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\tO\002\188\001\007\001\b\001\t\000\000\000\000\001\n\001?\000\000\tO\tW\000\000\000\000\001A\001B\000\000\002\189\001?\001\011\002f\tW\004\167\000\000\001A\001B\000\000\b\162\000\000\tZ\000\000\tY\000\000\000\000\000\000\000\000\000\000\b\162\000\000\tX\000\000\tY\000\000\001Y\000\000\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\001Y\001\002\001?\000\000\n\"\tW\000\000\000\000\001A\001B\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\162\000\000\tt\tQ\tY\000\000\000\000\000\000\004\187\000\000\000\000\002\165\000\000\tQ\002\166\002\167\001Y\002\168\000\000\000\000\002\214\000\000\001\011\000\000\004\006\000\000\004\177\002f\000\000\002\215\000\000\002\216\001\011\000\000\000\000\000\000\000\000\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\001?\000\000\000\000\001@\tT\000\000\001A\001B\001(\001)\000\000\000\000\001\002\001\005\tT\004\189\000\000\000\000\001(\001)\000\000\000\000\001\002\001\005\000\000\000\000\000\000\002\197\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n#\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\198\011\197\000\000\011\199\n\020\000\000\004\207\000\000\000\000\000\000\000\000\000\000\004\178\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\208\000\000\002\216\004\180\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001?\000\000\000\000\tW\000\000\000\000\001A\001B\000\000\000\000\001?\002\201\000\000\tW\000\000\000\000\001A\001B\004\210\b\162\000\000\n\207\002\165\tY\000\000\002\166\002\167\002\189\002\168\b\162\002f\n\215\000\000\tY\000\000\001Y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001Y\000\000\000\000\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\002\165\000\000\000\000\002\166\002\167\000\000\002\168\000\000\002\165\000\000\002\203\002\166\002\167\000\000\002\168\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\197\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\002\198\t\239\000\000\000\000\002\214\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\221\000\000\002\216\000\000\000\000\002\197\000\000\000\000\000\000\000\000\002\165\000\000\003\030\002\166\002\167\000\000\002\168\000\000\000\000\000\000\000\000\000\000\002\198\t\225\000\000\000\000\000\000\000\000\000\000\003\031\003#\002\201\000\000\000\000\000\000\000\000\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\000\000\002\189\000\000\002\165\002f\000\000\002\166\002\167\000\000\002\168\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\165\000\000\002\201\002\166\002\167\000\000\002\168\002\197\000\000\000\000\002\201\000\000\002\169\002\196\000\000\002\181\002\182\002\187\002\189\000\000\000\000\002f\000\000\002\203\002\198\003\014\002\189\002\169\002\196\002f\002\181\002\182\002\187\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\203\000\000\002\214\002\197\000\000\002\198\003\012\003$\000\000\000\000\002\201\002\221\000\000\002\216\000\000\000\000\000\000\000\000\000\000\000\000\002\198\003\t\000\000\000\000\000\000\000\000\002\189\000\000\000\000\002f\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\214\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\214\002\221\002\165\002\216\002\201\002\166\002\167\000\000\002\168\002\221\000\000\002\216\002\165\000\000\000\000\002\166\002\167\000\000\002\168\002\201\002\189\002\203\002\165\002f\000\000\002\166\002\167\000\000\002\168\002\169\002\196\000\000\002\181\002\182\002\187\002\189\000\000\000\000\002f\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\002\214\000\000\002\203\000\000\000\000\002\197\000\000\000\000\000\000\002\221\000\000\002\216\000\000\000\000\000\000\002\197\000\000\002\203\000\000\000\000\000\000\000\000\002\198\002\254\000\000\002\197\000\000\000\000\000\000\000\000\000\000\000\000\002\198\002\199\000\000\000\000\000\000\000\000\000\000\002\214\000\000\000\000\002\198\002\202\000\000\000\000\000\000\000\000\002\221\000\000\002\216\000\000\000\000\000\000\002\214\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\221\000\000\002\216\002\201\000\000\000\000\002\165\000\000\000\000\002\166\002\167\000\000\002\168\002\201\000\000\000\000\000\000\000\000\000\000\002\189\000\000\002\165\002f\002\201\002\166\002\167\000\000\002\168\000\000\002\189\000\000\000\000\002f\002\169\002\196\000\000\002\181\002\182\002\187\002\189\000\000\000\000\002f\000\000\000\000\000\000\000\000\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\000\000\000\000\002\203\002\165\000\000\000\000\002\166\002\167\000\000\002\168\002\197\000\000\002\203\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\203\000\000\000\000\002\197\000\000\002\198\002\218\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\002\214\000\000\000\000\002\198\002\220\000\000\000\000\000\000\000\000\002\221\002\214\002\216\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\221\002\214\002\216\000\000\000\000\000\000\002\197\000\000\000\000\000\000\002\221\002\165\002\216\002\201\002\166\002\167\000\000\002\168\000\000\000\000\000\000\000\000\000\000\002\198\002\251\000\000\000\000\000\000\002\201\002\189\000\000\000\000\002f\000\000\000\000\000\000\000\000\000\000\002\169\002\196\000\000\002\181\002\182\002\187\002\189\000\000\002\165\002f\000\000\002\166\002\167\000\000\002\168\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\201\000\000\002\203\000\000\000\000\002\197\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\000\000\002\189\002\203\000\000\002f\000\000\000\000\002\198\002\243\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\214\002\197\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\221\002\165\002\216\000\000\002\166\002\167\002\214\002\168\002\203\002\198\002\248\000\000\000\000\000\000\000\000\002\221\000\000\002\216\002\201\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\169\002\196\000\000\002\181\002\182\002\187\002\189\000\000\002\165\002f\000\000\002\166\002\167\000\000\002\168\000\000\000\000\002\214\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\201\002\221\000\000\002\216\000\000\000\000\000\000\000\000\000\000\002\197\002\169\002\196\000\000\002\181\002\182\002\187\002\189\000\000\000\000\002f\000\000\002\203\000\000\000\000\000\000\000\000\002\198\003!\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\030\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\165\000\000\000\000\002\166\002\167\002\203\002\168\002\214\000\000\0030\003#\000\000\000\000\000\000\000\000\000\000\002\221\000\000\002\216\002\201\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\002\189\000\000\002\165\002f\000\000\002\166\002\167\002\214\002\168\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\221\002\165\002\216\002\201\002\166\002\167\000\000\002\168\000\000\003\030\000\000\000\000\000\000\002\169\002\196\000\000\002\181\002\182\002\187\002\189\000\000\000\000\002f\000\000\002\203\000\000\003=\003#\002\169\003\233\000\000\002\181\002\182\002\187\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\030\000\000\000\000\000\000\002\165\000\000\000\000\002\166\002\167\000\000\002\168\000\000\003$\003\234\000\000\002\214\000\000\003K\003#\000\000\000\000\000\000\000\000\000\000\002\221\002\201\002\216\000\000\000\000\000\000\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\000\000\002\189\000\000\000\000\002f\000\000\000\000\000\000\000\000\000\000\002\214\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\221\000\000\002\216\002\201\000\000\000\000\002\197\000\000\001\007\001\b\001\t\002\165\000\000\001\n\002\166\002\167\001\152\002\168\002\188\002\189\000\000\003$\002f\002\198\004|\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\189\000\000\000\000\002f\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\003$\002\214\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\201\002\221\000\000\002\216\003\030\000\000\000\000\000\000\003\235\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\189\000\000\000\000\002f\002\165\005\183\003#\002\166\002\167\000\000\002\168\000\000\000\000\002\214\000\000\000\000\000\000\002\165\003\237\005\128\002\166\002\167\002\221\002\168\002\216\000\000\000\000\000\000\002\214\001\011\000\000\002\169\002\196\000\000\002\181\002\182\002\187\002\215\000\000\002\216\002\203\000\000\000\000\000\000\002\169\002\196\000\000\002\181\002\182\002\187\002\201\000\000\000\000\000\000\000\000\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\002\197\002\189\000\000\000\000\002f\002\165\000\000\001\011\002\166\002\167\000\000\002\168\002\214\002\197\000\000\000\000\000\000\002\198\005\185\000\000\000\000\002\221\000\000\002\216\000\000\000\000\000\000\000\000\000\000\000\000\002\198\006\150\002\169\002\196\001\012\002\181\002\182\002\187\001(\001)\003$\000\000\001\002\000\000\000\000\n%\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\007\001\b\001\t\000\000\002\201\001\n\000\000\001?\001\160\002\197\001@\000\000\000\000\001A\001B\000\000\000\000\002\201\000\000\000\000\002\189\002\214\000\000\002f\000\000\000\000\002\198\006\127\000\000\000\000\002\221\000\000\002\216\002\189\000\000\002\165\002f\000\000\002\166\002\167\000\000\002\168\001Y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\000\000\000\000\002\203\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\002\201\002\165\000\000\002\203\002\166\002\167\000\000\002\168\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n#\002\189\000\000\000\000\002f\000\000\000\000\000\000\000\000\000\000\000\000\002\197\002\214\002\169\002\196\000\000\002\181\002\182\002\187\001\011\000\000\002\221\000\000\002\216\000\000\002\214\000\000\000\000\002\198\006\135\000\000\000\000\000\000\000\000\002\221\000\000\002\216\000\000\000\000\002\165\000\000\002\203\002\166\002\167\000\000\002\168\001\012\002\197\000\000\000\000\001(\001)\000\000\002\165\001\002\000\000\002\166\002\167\000\000\002\168\000\000\000\000\000\000\000\000\002\198\006\143\002\169\002\196\000\000\002\181\002\182\002\187\002\201\000\000\000\000\000\000\000\000\000\000\002\214\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\002\221\002\189\002\216\000\000\002f\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\002\197\000\000\001L\000\000\000\000\001\007\001\b\001\t\002\201\001N\001\n\000\000\000\000\001S\002\197\000\000\000\000\002\198\b:\001?\001U\000\000\001@\000\000\002\189\001A\001B\002f\002\203\000\000\000\000\002\198\t\238\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001l\000\000\000\000\000\000\001\007\001\b\001\t\001n\000\000\001\n\000\000\001Y\001\148\000\000\000\000\000\000\000\000\000\000\002\201\001\150\000\000\002\203\002\214\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\221\002\201\002\216\002\189\000\000\001\027\002f\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\027\002\189\000\000\000\000\002f\000\000\000\000\000\000\001\011\000\000\000\000\002\214\001O\000\000\000\000\000\000\000\000\000\000\000\000\001\011\002\221\000\000\002\216\001V\000\000\000\000\000\000\002\203\000\000\000\000\001\027\000\000\000\000\000\000\000\000\001\012\000\000\000\000\000\000\001(\001)\002\203\001\027\001\002\000\000\000\000\001\012\000\000\000\000\001\011\001(\001)\000\000\001o\001\002\001\007\001\b\001\t\000\000\000\000\001\n\001\011\000\000\001\156\002\214\001\151\000\000\000\000\000\000\000\000\001\158\000\000\000\000\002\221\000\000\002\216\001\012\000\000\002\214\000\000\001(\001)\000\000\000\000\001\002\000\000\000\000\002\221\001\012\002\216\000\000\000\000\001(\001)\000\000\000\000\001\002\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001\164\000\000\000\000\001?\000\000\000\000\001@\001\166\000\000\001A\001B\000\000\000\000\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\000\000\000\000\000\000\000\000\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\001\027\001\172\000\000\001Y\000\000\001\007\001\b\001\t\001\174\001?\001\n\000\000\001@\001\185\001Y\001A\001B\000\000\000\000\001\011\001\187\001?\000\000\001\159\001@\000\000\000\000\001A\001B\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\027\000\000\001Y\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\000\000\001Y\000\000\000\000\000\000\000\000\001\011\000\000\000\000\000\000\001\167\000\000\000\000\000\000\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\001\027\001\193\000\000\000\000\000\000\000\000\000\000\000\000\001\195\000\000\001\012\000\000\001\027\000\000\001(\001)\000\000\000\000\001\002\001\011\000\000\000\000\000\000\001\175\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\011\000\000\000\000\000\000\001\188\000\000\000\000\000\000\000\000\000\000\001?\000\000\000\000\001@\000\000\001\012\001A\001B\000\000\001(\001)\000\000\000\000\001\002\000\000\000\000\000\000\001\012\001\007\001\b\001\t\001(\001)\001\n\000\000\001\002\001\201\000\000\000\000\000\000\000\000\000\000\000\000\001\203\000\000\001Y\000\000\001\027\001\007\001\b\001\t\000\000\001?\001\n\000\000\001@\001\209\000\000\001A\001B\000\000\000\000\000\000\001\211\000\000\000\000\001\011\000\000\000\000\000\000\001\196\000\000\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\004\000\000\000\004\001\004\002\002\167\000\000\004\003\001Y\001?\000\000\000\000\001@\000\000\001\012\001A\001B\000\000\001(\001)\000\000\001?\001\002\006\218\001@\000\000\000\000\001A\001B\000\000\006\218\006\227\000\000\000\000\001\027\000\000\000\000\000\000\006\227\000\000\000\000\000\000\000\000\000\000\001Y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\011\001\027\000\000\001Y\001\204\000\000\000\000\000\000\007'\000\000\000\000\001\007\001\b\001\t\000\000\006\228\001\n\000\000\000\000\n.\001\011\000\000\000\000\000\000\001\212\000\000\n0\001\012\000\000\000\000\000\000\001(\001)\000\000\001?\001\002\000\000\001@\000\000\000\000\001A\001B\000\000\000\000\000\000\000\000\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\001\007\001\b\001\t\000\000\000\000\001\n\000\000\004\005\n6\000\000\000\000\000\000\000\000\001Y\004\005\n8\001\007\001\b\001\t\000\000\000\000\001\n\000\000\006\230\011\006\004\177\002f\002\136\000\000\000\000\006\230\011\b\004\177\002f\002\136\000\000\000\000\001\007\001\b\001\t\001\027\000\000\001\n\000\000\001?\011\014\000\000\001@\000\000\000\000\001A\001B\011\016\001\007\001\b\001\t\000\000\000\000\001\n\001\011\000\000\011\022\000\000\n1\001?\000\000\006\221\001@\011\024\000\000\001A\001B\000\000\006\221\000\000\000\000\000\000\000\000\000\000\001Y\000\000\000\000\000\000\000\000\000\000\001\027\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\000\000\000\000\000\000\000\000\001Y\004\178\001\027\000\000\000\000\001\011\000\000\000\000\004\178\n9\004\179\000\000\002\216\004\180\000\000\000\000\000\000\004\179\000\000\002\216\004\180\001\011\000\000\001\027\000\000\011\t\000\000\000\000\000\000\000\000\000\000\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\001\027\001\002\000\000\001\011\000\000\000\000\000\000\011\017\000\000\001\012\001\007\001\b\001\t\001(\001)\001\n\000\000\001\002\011\030\001\011\000\000\001?\000\000\011\025\001@\011 \000\000\001A\001B\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\012\001\007\001\b\001\t\001(\001)\001\n\000\000\001\002\011+\001Y\000\000\000\000\001\007\001\b\001\t\011-\000\000\001\n\000\000\001?\0113\000\000\001@\000\000\000\000\001A\001B\0115\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\000\000\000\000\001\007\001\b\001\t\001\027\000\000\001\n\000\000\000\000\011;\001Y\000\000\001?\000\000\000\000\001@\011=\000\000\001A\001B\000\000\000\000\000\000\001\011\000\000\000\000\001Y\011!\001?\000\000\000\000\001@\000\000\000\000\001A\001B\000\000\000\000\000\000\000\000\000\000\001\027\000\000\000\000\000\000\000\000\000\000\001Y\000\000\000\000\001\012\000\000\000\000\001\027\001(\001)\000\000\000\000\001\002\000\000\001\011\000\000\000\000\001Y\011.\001\007\001\b\001\t\000\000\000\000\001\n\000\000\001\011\011C\000\000\000\000\0116\000\000\000\000\000\000\011E\000\000\000\000\000\000\000\000\000\000\001\027\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\000\000\000\000\000\000\001\012\000\000\000\000\000\000\001(\001)\001\011\000\000\001\002\000\000\011>\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\011M\000\000\000\000\001?\000\000\000\000\001@\011O\000\000\001A\001B\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\000\000\000\000\000\000\000\000\000\000\001\007\001\b\001\t\000\000\001\027\001\n\000\000\000\000\011U\000\000\000\000\000\000\001Y\000\000\001?\011W\000\000\001@\000\000\000\000\001A\001B\000\000\001\011\000\000\000\000\001?\011F\000\000\001@\000\000\000\000\001A\001B\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001Y\001\012\001\027\000\000\000\000\001(\001)\000\000\000\000\001\002\001?\000\000\001Y\001@\000\000\000\000\001A\001B\001\007\001\b\001\t\001\011\000\000\001\n\000\000\011P\011_\000\000\000\000\001\007\001\b\001\t\000\000\011a\001\n\000\000\001\027\011g\001\007\001\b\001\t\000\000\000\000\001\n\011i\001Y\001\168\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\001\011\001\002\000\000\000\000\011X\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001\176\001\007\001\b\001\t\001?\000\000\001\n\001@\000\000\001\199\001A\001B\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\000\000\000\000\000\000\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\001\027\001\189\000\000\000\000\000\000\000\000\001Y\000\000\000\000\000\000\000\000\001\027\001\007\001\b\001\t\000\000\000\000\001\n\001?\001\011\001\197\001@\000\000\011b\001A\001B\000\000\000\000\000\000\000\000\001\011\000\000\000\000\000\000\011j\000\000\000\000\000\000\000\000\001\011\000\000\000\000\000\000\000\000\000\000\000\000\001\012\000\000\000\000\000\000\001(\001)\001?\001Y\001\002\001@\000\000\001\012\001A\001B\000\000\001(\001)\001\011\000\000\001\002\001\012\000\000\000\000\000\000\001(\001)\001\011\000\000\001\002\000\000\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001\205\001Y\000\000\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\001\011\001\002\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\011\000\000\000\000\001?\000\000\000\000\001@\000\000\001\012\001A\001B\000\000\001(\001)\001?\000\000\001\002\001@\000\000\000\000\001A\001B\000\000\001?\000\000\000\000\001@\001\012\000\000\001A\001B\001(\001)\000\000\000\000\001\002\000\000\000\000\001Y\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\001?\001\213\001Y\001@\000\000\000\000\001A\001B\000\000\001?\000\000\001Y\001@\000\000\000\000\001A\001B\000\000\000\000\001\011\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\007\001\b\001\t\001?\001Y\001\n\001@\000\000\001\216\001A\001B\000\000\000\000\001Y\000\000\001\012\001\007\001\b\001\t\001(\001)\001\n\001?\001\002\001\220\001@\000\000\000\000\001A\001B\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001Y\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\002\165\000\000\001Y\002\166\002\167\000\000\002\168\000\000\000\000\000\000\000\000\001\011\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\227\002\165\000\000\000\000\002\166\002\167\000\000\002\168\002\169\002\241\001\231\002\181\002\182\002\187\001?\000\000\000\000\001@\000\000\001\012\001A\001B\000\000\001(\001)\000\000\000\000\001\002\002\169\003\028\001\011\002\181\002\182\002\187\000\000\000\000\002\165\000\000\000\000\002\166\002\167\000\000\002\168\000\000\000\000\000\000\001\011\000\000\000\000\001Y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\012\000\000\000\000\000\000\001(\001)\002\169\003.\001\002\002\181\002\182\002\187\001\011\000\000\000\000\000\000\001\012\000\000\000\000\000\000\001(\001)\001\011\000\000\001\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001?\000\000\000\000\001@\001\012\000\000\001A\001B\001(\001)\000\000\002\188\001\002\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\000\000\000\000\000\000\000\000\002\189\000\000\000\000\002f\002\188\000\000\000\000\000\000\001Y\000\000\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\000\000\002\189\000\000\000\000\002f\000\000\000\000\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\000\000\000\000\000\000\000\000\002\188\000\000\002\165\000\000\000\000\002\166\002\167\001Y\002\168\002\165\000\000\001?\002\166\002\167\001@\002\168\002\189\001A\001B\002f\000\000\001?\000\000\001Y\001@\000\000\000\000\001A\001B\002\169\003;\000\000\002\181\002\182\002\187\000\000\002\169\003?\002\214\002\181\002\182\002\187\000\000\000\000\000\000\000\000\001h\002\215\002\165\002\216\000\000\002\166\002\167\000\000\002\168\000\000\001h\000\000\002\214\000\000\002\165\000\000\000\000\002\166\002\167\000\000\002\168\002\215\002\165\002\216\000\000\002\166\002\167\000\000\002\168\002\169\003I\000\000\002\181\002\182\002\187\000\000\000\000\000\000\000\000\000\000\000\000\002\169\003\232\000\000\002\181\002\182\002\187\002\214\000\000\002\169\005\181\000\000\002\181\002\182\002\187\000\000\002\215\000\000\002\216\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\tK\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\tR\002\188\000\000\002\165\000\000\000\000\002\166\002\167\002\188\002\168\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\189\000\000\000\000\002f\000\000\000\000\000\000\002\189\000\000\000\000\002f\000\000\000\000\002\169\t\223\000\000\002\181\002\182\002\187\000\000\000\000\000\000\000\000\000\000\000\000\002\165\000\000\000\000\002\166\002\167\002\188\002\168\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\188\000\000\000\000\000\000\002\189\000\000\000\000\002f\002\188\000\000\002\169\t\236\000\000\002\181\002\182\002\187\002\189\000\000\000\000\002f\000\000\001\007\001\b\001\t\002\189\000\000\001\n\002f\001\011\n2\000\000\000\000\000\000\000\000\000\000\002\214\000\000\001\011\000\000\000\000\000\000\000\000\002\214\000\000\002\215\000\000\002\216\000\000\000\000\000\000\000\000\002\215\000\000\002\216\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\001\012\000\000\002\188\000\000\001(\001)\000\000\000\000\001\002\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\002\214\002\189\n:\000\000\002f\000\000\000\000\000\000\000\000\002\215\000\000\002\216\002\214\000\000\000\000\000\000\000\000\001\007\001\b\001\t\002\214\002\215\001\n\002\216\002\188\011\n\000\000\000\000\000\000\002\215\000\000\002\216\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\002\189\011\018\000\000\002f\001\011\000\000\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\012\001\007\001\b\001\t\001(\001)\001\n\002\214\001\002\011\026\000\000\001Y\000\000\000\000\000\000\000\000\002\215\000\000\002\216\000\000\001Y\000\000\000\000\000\000\001\007\001\b\001\t\001\011\000\000\001\n\000\000\000\000\011\"\000\000\000\000\000\000\000\000\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\002\214\0119\000\000\000\000\001\011\000\000\000\000\000\000\001\012\002\215\000\000\002\216\001(\001)\000\000\000\000\001\002\001\007\001\b\001\t\001\011\000\000\001\n\000\000\000\000\011/\000\000\001?\000\000\000\000\001@\001\012\000\000\001A\001B\001(\001)\000\000\000\000\001\002\001\007\001\b\001\t\000\000\000\000\001\n\000\000\001\012\0117\000\000\000\000\001(\001)\000\000\000\000\001\002\001\007\001\b\001\t\001\011\000\000\001\n\001Y\000\000\011?\000\000\000\000\000\000\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\011G\000\000\000\000\001?\001\011\000\000\001@\000\000\001\012\001A\001B\000\000\001(\001)\000\000\000\000\001\002\000\000\000\000\001\011\000\000\000\000\000\000\000\000\000\000\000\000\001?\000\000\000\000\001@\000\000\001\012\001A\001B\000\000\001(\001)\000\000\001Y\001\002\000\000\000\000\001?\001\011\000\000\001@\001\012\000\000\001A\001B\001(\001)\000\000\000\000\001\002\001\007\001\b\001\t\000\000\000\000\001\n\001Y\000\000\000\000\000\000\000\000\001\011\000\000\000\000\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\001Y\001\002\000\000\000\000\001?\001\011\000\000\001@\000\000\000\000\001A\001B\000\000\011K\000\000\000\000\001\012\000\000\000\000\001\011\001(\001)\000\000\000\000\001\002\000\000\000\000\001?\000\000\000\000\001@\000\000\001\012\001A\001B\000\000\001(\001)\000\000\001Y\001\002\000\000\001?\000\000\000\000\001@\001\012\000\000\001A\001B\001(\001)\000\000\000\000\001\002\001\007\001\b\001\t\000\000\000\000\001\n\000\000\001Y\011Q\000\000\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\000\000\000\000\000\000\011I\000\000\001\007\001\b\001\t\001\011\000\000\001\n\000\000\000\000\011Y\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\001\007\001\b\001\t\000\000\001Y\001\n\000\000\000\000\001?\000\000\000\000\001@\001\012\000\000\001A\001B\001(\001)\000\000\000\000\001\002\000\000\001?\000\000\000\000\001@\000\000\001Y\001A\001B\000\000\000\000\000\000\000\000\000\000\011]\001\007\001\b\001\t\000\000\000\000\001\n\000\000\001Y\011c\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\011k\000\000\000\000\000\000\001Y\000\000\001\007\001\b\001\t\001\011\000\000\001\n\000\000\000\000\000\000\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\001?\001\011\000\000\001@\001\012\000\000\001A\001B\001(\001)\000\000\000\000\001\002\000\000\000\000\000\000\000\000\000\000\000\000\001\011\000\000\000\000\007\016\000\000\000\000\000\000\000\000\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\001h\001\002\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\001\011\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\011\000\000\000\000\000\000\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\001?\001\011\000\000\001@\000\000\001\012\001A\001B\000\000\001(\001)\000\000\001\011\001\002\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\000\000\001?\000\000\000\000\001@\001\012\000\000\001A\001B\001(\001)\000\000\001Y\001\002\000\000\004\005\001\012\000\000\000\000\001?\001(\001)\001@\000\000\001\002\001A\001B\001\007\001\b\001\t\000\000\004\006\001\n\004\177\002f\000\000\001Y\000\000\000\000\000\000\000\000\001\011\000\000\000\000\000\000\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\001h\001?\000\000\000\000\001@\000\000\000\000\001A\001B\000\000\001?\000\000\000\000\001@\001\012\000\000\001A\001B\001(\001)\001\011\000\000\001\002\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\000\000\000\000\000\000\001?\001Y\000\000\001@\000\000\000\000\001A\001B\000\000\000\000\001Y\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\004\178\001\002\000\000\000\000\000\000\001\229\000\000\000\000\000\000\004\179\000\000\002\216\004\180\000\000\000\000\004\000\001\225\004\001\004\002\002\167\000\000\004\003\004\000\001\011\004\001\004\002\002\167\000\000\004\003\000\000\000\000\000\000\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\000\000\000\000\001\011\006\234\000\000\000\000\000\000\000\000\000\000\001\012\004\004\000\000\000\000\001(\001)\000\000\004\000\001\002\004\001\004\002\002\167\000\000\004\003\000\000\000\000\001?\000\000\001]\001@\001\012\000\000\001A\001B\001(\001)\000\000\004\000\001\002\004\001\004\002\002\167\000\000\004\003\000\000\004\000\004\130\004\001\004\002\002\167\000\000\004\003\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001g\000\000\000\000\000\000\000\000\004\134\000\000\000\000\000\000\000\000\000\000\000\000\004\000\004\158\004\001\004\002\002\167\004\000\004\003\004\001\004\002\002\167\001?\004\003\000\000\001@\000\000\000\000\001A\001B\000\000\000\000\000\000\000\000\000\000\000\000\004\005\000\000\000\000\000\000\000\000\004\176\001?\004\005\000\000\001@\004\188\000\000\001A\001B\000\000\000\000\004\006\000\000\004\177\002f\000\000\001f\000\000\004\006\000\000\004\177\002f\000\000\000\000\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\000\000\000\000\000\000\003\239\004\005\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\006\004\209\004\177\002f\004\005\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\005\000\000\005c\000\000\000\000\000\000\000\000\000\000\004\006\000\000\004\177\002f\001\007\001\b\001\t\000\000\004\006\001\n\004\177\002f\000\000\000\000\000\000\004\178\001\007\001\b\001\t\000\000\004\005\001\n\004\178\000\000\004\179\004\005\002\216\004\180\000\000\000\000\000\000\004\179\000\000\002\216\004\180\000\000\004\006\000\000\004\177\002f\000\000\004\006\000\000\004\177\002f\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\000\000\000\000\000\000\004\178\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\179\000\000\002\216\004\180\000\000\001\007\001\b\001\t\004\005\005\238\001\n\004\178\004\000\000\000\004\001\004\002\002\167\000\000\004\003\004\178\004\179\004\005\002\216\004\180\004\006\000\000\004\177\002f\004\179\000\000\002\216\004\180\000\000\000\000\000\000\000\000\000\000\004\006\000\000\004\177\002f\007\025\001\011\001\007\001\b\001\t\000\000\004\178\001\n\000\000\000\000\000\000\004\178\000\000\001\011\000\000\004\179\000\000\002\216\004\180\000\000\004\179\000\000\002\216\004\180\000\000\001\007\001\b\001\t\001\012\000\000\001\n\000\000\001(\001)\000\000\000\000\001\002\000\000\000\000\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\004\000\001\002\004\001\004\002\002\167\000\000\004\003\000\000\000\000\000\000\000\000\000\000\000\000\004\178\004\005\000\000\000\000\000\000\000\000\000\000\000\000\001\011\004\179\000\000\002\216\004\180\004\178\000\000\000\000\t\254\004\006\000\000\004\177\002f\000\000\004\179\000\000\002\216\004\180\004\000\000\000\004\001\004\002\002\167\000\000\004\003\004\005\000\000\001\012\000\000\000\000\000\000\001(\001)\001?\000\000\001\002\001@\000\000\001\011\001A\001B\004\006\000\000\004\177\002f\001?\000\000\n\000\001@\000\000\000\000\001A\001B\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\001\011\004\001\004\002\002\167\001\012\004\003\000\000\007\175\001(\001)\000\000\000\000\001\002\000\000\000\000\000\000\000\000\000\000\000\000\007\182\000\000\000\000\000\000\000\000\000\000\004\178\000\000\001\012\n\015\000\000\000\000\001(\001)\000\000\004\179\001\002\002\216\004\180\000\000\001?\004\005\000\000\001@\000\000\000\000\001A\001B\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\006\004\178\004\177\002f\000\000\000\000\000\000\000\000\000\000\000\000\004\179\000\000\002\216\004\180\000\000\000\000\000\000\000\000\007\180\000\000\000\000\001?\000\000\004\005\001@\000\000\000\000\001A\001B\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\006\000\000\004\177\002f\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\000\000\000\000\000\000\000\000\007\207\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\005\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\178\000\000\007\211\000\000\004\006\000\000\004\177\002f\000\000\004\179\000\000\002\216\004\180\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\178\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\179\000\000\002\216\004\180\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\178\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\179\000\000\002\216\004\180")) and semantic_action = [| @@ -1832,9 +1833,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5301 "src/ocaml/preprocess/parser_raw.mly" +# 5312 "src/ocaml/preprocess/parser_raw.mly" ( "+" ) -# 1838 "src/ocaml/preprocess/parser_raw.ml" +# 1839 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -1857,9 +1858,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5302 "src/ocaml/preprocess/parser_raw.mly" +# 5313 "src/ocaml/preprocess/parser_raw.mly" ( "+." ) -# 1863 "src/ocaml/preprocess/parser_raw.ml" +# 1864 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -1882,9 +1883,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Parsetree.core_type) = -# 4519 "src/ocaml/preprocess/parser_raw.mly" +# 4530 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 1888 "src/ocaml/preprocess/parser_raw.ml" +# 1889 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -1927,39 +1928,41 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_ty_ in let _endpos = _endpos__1_ in - let _v : (Parsetree.core_type) = let _1 = + let _v = let _1 = - let tyvar = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let _1 = + let tyvar = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 1940 "src/ocaml/preprocess/parser_raw.ml" +# 1942 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 4522 "src/ocaml/preprocess/parser_raw.mly" +# 4533 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_alias(ty, Some tyvar, None) ) -# 1946 "src/ocaml/preprocess/parser_raw.ml" +# 1948 "src/ocaml/preprocess/parser_raw.ml" + + in + let _startpos__1_ = _startpos_ty_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _startpos__1_ = _startpos_ty_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 1956 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4524 "src/ocaml/preprocess/parser_raw.mly" +# 1958 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4535 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 1962 "src/ocaml/preprocess/parser_raw.ml" - in +# 1964 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -2029,32 +2032,34 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_aliased_type_ in let _endpos = _endpos__7_ in - let _v : (Parsetree.core_type) = let name = - let (_endpos__2_, _2) = (_endpos__2_inlined1_, _2_inlined1) in - let _1 = -# 4222 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let name = + let (_endpos__2_, _2) = (_endpos__2_inlined1_, _2_inlined1) in + let _1 = +# 4233 "src/ocaml/preprocess/parser_raw.mly" ( Some _2 ) -# 2038 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos__1_ = _endpos__2_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 2042 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__2_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 2047 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__7_ in - let _symbolstartpos = _startpos_aliased_type_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 4531 "src/ocaml/preprocess/parser_raw.mly" +# 2051 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__7_ in + let _symbolstartpos = _startpos_aliased_type_ in + let _sloc = (_symbolstartpos, _endpos) in + ( +# 4542 "src/ocaml/preprocess/parser_raw.mly" ( let name = Option.map (fun x -> mkloc x name.loc) name.txt in mktyp ~loc:_sloc (Ptyp_alias (aliased_type, name, Some jkind)) ) -# 2057 "src/ocaml/preprocess/parser_raw.ml" - in +# 2061 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -2117,30 +2122,32 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_aliased_type_ in let _endpos = _endpos__7_ in - let _v : (Parsetree.core_type) = let name = - let _1 = -# 4224 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let name = + let _1 = +# 4235 "src/ocaml/preprocess/parser_raw.mly" ( None ) -# 2125 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 2131 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 2133 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__7_ in - let _symbolstartpos = _startpos_aliased_type_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 4531 "src/ocaml/preprocess/parser_raw.mly" +# 2139 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__7_ in + let _symbolstartpos = _startpos_aliased_type_ in + let _sloc = (_symbolstartpos, _endpos) in + ( +# 4542 "src/ocaml/preprocess/parser_raw.mly" ( let name = Option.map (fun x -> mkloc x name.loc) name.txt in mktyp ~loc:_sloc (Ptyp_alias (aliased_type, name, Some jkind)) ) -# 2143 "src/ocaml/preprocess/parser_raw.ml" - in +# 2149 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -2183,34 +2190,36 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined2_ in - let _v : (Parser_types.let_binding) = let attrs2 = - let _1 = _1_inlined2 in - -# 5388 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 2192 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_attrs2_ = _endpos__1_inlined2_ in - let attrs1 = - let _1 = _1_inlined1 in - -# 5392 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 2201 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos_attrs2_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 3431 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let attrs2 = + let _1 = _1_inlined2 in + +# 5399 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 2200 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_attrs2_ = _endpos__1_inlined2_ in + let attrs1 = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 2209 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos_attrs2_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + ( +# 3442 "src/ocaml/preprocess/parser_raw.mly" ( let attrs = attrs1 @ attrs2 in mklb ~loc:_sloc false body attrs ) -# 2213 "src/ocaml/preprocess/parser_raw.ml" - in +# 2221 "src/ocaml/preprocess/parser_raw.ml" + : (Parser_types.let_binding)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -2232,9 +2241,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Longident.t) = -# 5173 "src/ocaml/preprocess/parser_raw.mly" +# 5184 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 2238 "src/ocaml/preprocess/parser_raw.ml" +# 2247 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -2257,9 +2266,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Longident.t) = -# 5174 "src/ocaml/preprocess/parser_raw.mly" +# 5185 "src/ocaml/preprocess/parser_raw.mly" ( Lident _1 ) -# 2263 "src/ocaml/preprocess/parser_raw.ml" +# 2272 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -2288,19 +2297,21 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined1_ in - let _v : (Parsetree.modalities) = let _2 = - let _1 = _1_inlined1 in - -# 4698 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _2 = + let _1 = _1_inlined1 in + +# 4709 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 2297 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4701 "src/ocaml/preprocess/parser_raw.mly" +# 2307 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4712 "src/ocaml/preprocess/parser_raw.mly" (_2) -# 2303 "src/ocaml/preprocess/parser_raw.ml" - in +# 2313 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.modalities)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -2328,19 +2339,21 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined1_ in - let _v : (Parsetree.modes) = let _2 = - let _1 = _1_inlined1 in - -# 4662 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _2 = + let _1 = _1_inlined1 in + +# 4673 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 2337 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4666 "src/ocaml/preprocess/parser_raw.mly" +# 2349 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4677 "src/ocaml/preprocess/parser_raw.mly" (_2) -# 2343 "src/ocaml/preprocess/parser_raw.ml" - in +# 2355 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.modes)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -2368,19 +2381,21 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined1_ in - let _v : (Parsetree.modes) = let _2 = - let _1 = _1_inlined1 in - -# 4662 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _2 = + let _1 = _1_inlined1 in + +# 4673 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 2377 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4683 "src/ocaml/preprocess/parser_raw.mly" +# 2391 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4694 "src/ocaml/preprocess/parser_raw.mly" (_2) -# 2383 "src/ocaml/preprocess/parser_raw.ml" - in +# 2397 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.modes)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -2402,9 +2417,9 @@ module Tables = struct let _startpos = _startpos_type__ in let _endpos = _endpos_type__ in let _v : (Parsetree.core_type) = -# 4865 "src/ocaml/preprocess/parser_raw.mly" +# 4876 "src/ocaml/preprocess/parser_raw.mly" ( type_ ) -# 2408 "src/ocaml/preprocess/parser_raw.ml" +# 2423 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -2426,43 +2441,45 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v : (Parsetree.core_type) = let _1 = + let _v = let _1 = - let tid = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let _1 = + let tid = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 2439 "src/ocaml/preprocess/parser_raw.ml" - - in - let tys = -# 4905 "src/ocaml/preprocess/parser_raw.mly" +# 2455 "src/ocaml/preprocess/parser_raw.ml" + + in + let tys = +# 4916 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 2445 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4869 "src/ocaml/preprocess/parser_raw.mly" +# 2461 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4880 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_constr (tid, tys) ) -# 2450 "src/ocaml/preprocess/parser_raw.ml" +# 2466 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 2459 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4886 "src/ocaml/preprocess/parser_raw.mly" +# 2475 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4897 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 2465 "src/ocaml/preprocess/parser_raw.ml" - in +# 2481 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -2490,44 +2507,46 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_ty_ in let _endpos = _endpos__1_ in - let _v : (Parsetree.core_type) = let _1 = + let _v = let _1 = - let tid = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let _1 = + let tid = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 2503 "src/ocaml/preprocess/parser_raw.ml" - - in - let tys = -# 4907 "src/ocaml/preprocess/parser_raw.mly" +# 2521 "src/ocaml/preprocess/parser_raw.ml" + + in + let tys = +# 4918 "src/ocaml/preprocess/parser_raw.mly" ( [ ty ] ) -# 2509 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4869 "src/ocaml/preprocess/parser_raw.mly" +# 2527 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4880 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_constr (tid, tys) ) -# 2514 "src/ocaml/preprocess/parser_raw.ml" +# 2532 "src/ocaml/preprocess/parser_raw.ml" + + in + let _startpos__1_ = _startpos_ty_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _startpos__1_ = _startpos_ty_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 2524 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4886 "src/ocaml/preprocess/parser_raw.mly" +# 2542 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4897 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 2530 "src/ocaml/preprocess/parser_raw.ml" - in +# 2548 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -2569,59 +2588,61 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined1_ in - let _v : (Parsetree.core_type) = let _1 = + let _v = let _1 = - let tid = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let _1 = + let tid = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 2583 "src/ocaml/preprocess/parser_raw.ml" - - in - let tys = +# 2603 "src/ocaml/preprocess/parser_raw.ml" + + in let tys = - let xs = -# 253 "" + let tys = + let xs = +# 264 "" ( List.rev xs ) -# 2591 "src/ocaml/preprocess/parser_raw.ml" - in - +# 2611 "src/ocaml/preprocess/parser_raw.ml" + in + # 1478 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 2596 "src/ocaml/preprocess/parser_raw.ml" +# 2616 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 4922 "src/ocaml/preprocess/parser_raw.mly" + ( tys ) +# 2622 "src/ocaml/preprocess/parser_raw.ml" in -# 4911 "src/ocaml/preprocess/parser_raw.mly" - ( tys ) -# 2602 "src/ocaml/preprocess/parser_raw.ml" +# 4880 "src/ocaml/preprocess/parser_raw.mly" + ( Ptyp_constr (tid, tys) ) +# 2628 "src/ocaml/preprocess/parser_raw.ml" in + let _endpos__1_ = _endpos__1_inlined1_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 4869 "src/ocaml/preprocess/parser_raw.mly" - ( Ptyp_constr (tid, tys) ) -# 2608 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__1_inlined1_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 2618 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4886 "src/ocaml/preprocess/parser_raw.mly" +# 2638 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4897 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 2624 "src/ocaml/preprocess/parser_raw.ml" - in +# 2644 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -2642,45 +2663,47 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v : (Parsetree.core_type) = let _1 = + let _v = let _1 = - let tid = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let _1 = + let tid = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 2655 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos_tid_, _startpos_tid_) = (_endpos__1_, _startpos__1_) in - let tys = -# 4905 "src/ocaml/preprocess/parser_raw.mly" +# 2677 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos_tid_, _startpos_tid_) = (_endpos__1_, _startpos__1_) in + let tys = +# 4916 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 2662 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_tid_ = (_startpos_tid_, _endpos_tid_) in - -# 4872 "src/ocaml/preprocess/parser_raw.mly" +# 2684 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_tid_ = (_startpos_tid_, _endpos_tid_) in + +# 4883 "src/ocaml/preprocess/parser_raw.mly" ( unboxed_type _loc_tid_ tid.txt tys ) -# 2668 "src/ocaml/preprocess/parser_raw.ml" +# 2690 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 2677 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4886 "src/ocaml/preprocess/parser_raw.mly" +# 2699 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4897 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 2683 "src/ocaml/preprocess/parser_raw.ml" - in +# 2705 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -2708,46 +2731,48 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_ty_ in let _endpos = _endpos__1_ in - let _v : (Parsetree.core_type) = let _1 = + let _v = let _1 = - let tid = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let _1 = + let tid = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 2721 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos_tid_, _startpos_tid_) = (_endpos__1_, _startpos__1_) in - let tys = -# 4907 "src/ocaml/preprocess/parser_raw.mly" +# 2745 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos_tid_, _startpos_tid_) = (_endpos__1_, _startpos__1_) in + let tys = +# 4918 "src/ocaml/preprocess/parser_raw.mly" ( [ ty ] ) -# 2728 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_tid_ = (_startpos_tid_, _endpos_tid_) in - -# 4872 "src/ocaml/preprocess/parser_raw.mly" +# 2752 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_tid_ = (_startpos_tid_, _endpos_tid_) in + +# 4883 "src/ocaml/preprocess/parser_raw.mly" ( unboxed_type _loc_tid_ tid.txt tys ) -# 2734 "src/ocaml/preprocess/parser_raw.ml" +# 2758 "src/ocaml/preprocess/parser_raw.ml" + + in + let _startpos__1_ = _startpos_ty_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _startpos__1_ = _startpos_ty_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 2744 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4886 "src/ocaml/preprocess/parser_raw.mly" +# 2768 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4897 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 2750 "src/ocaml/preprocess/parser_raw.ml" - in +# 2774 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -2789,61 +2814,63 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined1_ in - let _v : (Parsetree.core_type) = let _1 = + let _v = let _1 = - let tid = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let _1 = + let tid = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 2803 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos_tid_, _startpos_tid_) = (_endpos__1_inlined1_, _startpos__1_inlined1_) in - let tys = +# 2829 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos_tid_, _startpos_tid_) = (_endpos__1_inlined1_, _startpos__1_inlined1_) in let tys = - let xs = -# 253 "" + let tys = + let xs = +# 264 "" ( List.rev xs ) -# 2812 "src/ocaml/preprocess/parser_raw.ml" - in - +# 2838 "src/ocaml/preprocess/parser_raw.ml" + in + # 1478 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 2817 "src/ocaml/preprocess/parser_raw.ml" +# 2843 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 4922 "src/ocaml/preprocess/parser_raw.mly" + ( tys ) +# 2849 "src/ocaml/preprocess/parser_raw.ml" in + let _loc_tid_ = (_startpos_tid_, _endpos_tid_) in -# 4911 "src/ocaml/preprocess/parser_raw.mly" - ( tys ) -# 2823 "src/ocaml/preprocess/parser_raw.ml" +# 4883 "src/ocaml/preprocess/parser_raw.mly" + ( unboxed_type _loc_tid_ tid.txt tys ) +# 2856 "src/ocaml/preprocess/parser_raw.ml" in - let _loc_tid_ = (_startpos_tid_, _endpos_tid_) in - -# 4872 "src/ocaml/preprocess/parser_raw.mly" - ( unboxed_type _loc_tid_ tid.txt tys ) -# 2830 "src/ocaml/preprocess/parser_raw.ml" + let _endpos__1_ = _endpos__1_inlined1_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos__1_ = _endpos__1_inlined1_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 2840 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4886 "src/ocaml/preprocess/parser_raw.mly" +# 2866 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4897 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 2846 "src/ocaml/preprocess/parser_raw.ml" - in +# 2872 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -2871,44 +2898,46 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__2_ in let _endpos = _endpos__1_ in - let _v : (Parsetree.core_type) = let _1 = + let _v = let _1 = - let cid = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let _1 = + let cid = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 2884 "src/ocaml/preprocess/parser_raw.ml" - - in - let tys = -# 4905 "src/ocaml/preprocess/parser_raw.mly" +# 2912 "src/ocaml/preprocess/parser_raw.ml" + + in + let tys = +# 4916 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 2890 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4876 "src/ocaml/preprocess/parser_raw.mly" +# 2918 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4887 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_class (cid, tys) ) -# 2895 "src/ocaml/preprocess/parser_raw.ml" +# 2923 "src/ocaml/preprocess/parser_raw.ml" + + in + let _startpos__1_ = _startpos__2_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _startpos__1_ = _startpos__2_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 2905 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4886 "src/ocaml/preprocess/parser_raw.mly" +# 2933 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4897 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 2911 "src/ocaml/preprocess/parser_raw.ml" - in +# 2939 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -2943,44 +2972,46 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_ty_ in let _endpos = _endpos__1_ in - let _v : (Parsetree.core_type) = let _1 = + let _v = let _1 = - let cid = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let _1 = + let cid = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 2956 "src/ocaml/preprocess/parser_raw.ml" - - in - let tys = -# 4907 "src/ocaml/preprocess/parser_raw.mly" +# 2986 "src/ocaml/preprocess/parser_raw.ml" + + in + let tys = +# 4918 "src/ocaml/preprocess/parser_raw.mly" ( [ ty ] ) -# 2962 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4876 "src/ocaml/preprocess/parser_raw.mly" +# 2992 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4887 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_class (cid, tys) ) -# 2967 "src/ocaml/preprocess/parser_raw.ml" +# 2997 "src/ocaml/preprocess/parser_raw.ml" + + in + let _startpos__1_ = _startpos_ty_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _startpos__1_ = _startpos_ty_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 2977 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4886 "src/ocaml/preprocess/parser_raw.mly" +# 3007 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4897 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 2983 "src/ocaml/preprocess/parser_raw.ml" - in +# 3013 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -3029,59 +3060,61 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined1_ in - let _v : (Parsetree.core_type) = let _1 = + let _v = let _1 = - let cid = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let _1 = + let cid = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 3043 "src/ocaml/preprocess/parser_raw.ml" - - in - let tys = +# 3075 "src/ocaml/preprocess/parser_raw.ml" + + in let tys = - let xs = -# 253 "" + let tys = + let xs = +# 264 "" ( List.rev xs ) -# 3051 "src/ocaml/preprocess/parser_raw.ml" - in - +# 3083 "src/ocaml/preprocess/parser_raw.ml" + in + # 1478 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 3056 "src/ocaml/preprocess/parser_raw.ml" +# 3088 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 4922 "src/ocaml/preprocess/parser_raw.mly" + ( tys ) +# 3094 "src/ocaml/preprocess/parser_raw.ml" in -# 4911 "src/ocaml/preprocess/parser_raw.mly" - ( tys ) -# 3062 "src/ocaml/preprocess/parser_raw.ml" +# 4887 "src/ocaml/preprocess/parser_raw.mly" + ( Ptyp_class (cid, tys) ) +# 3100 "src/ocaml/preprocess/parser_raw.ml" in + let _endpos__1_ = _endpos__1_inlined1_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 4876 "src/ocaml/preprocess/parser_raw.mly" - ( Ptyp_class (cid, tys) ) -# 3068 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__1_inlined1_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 3078 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4886 "src/ocaml/preprocess/parser_raw.mly" +# 3110 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4897 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 3084 "src/ocaml/preprocess/parser_raw.ml" - in +# 3116 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -3116,39 +3149,41 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_type__ in - let _v : (Parsetree.core_type) = let _1 = + let _v = let _1 = - let mod_ident = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let _1 = + let mod_ident = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 3129 "src/ocaml/preprocess/parser_raw.ml" +# 3163 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 4880 "src/ocaml/preprocess/parser_raw.mly" +# 4891 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_open (mod_ident, type_) ) -# 3135 "src/ocaml/preprocess/parser_raw.ml" +# 3169 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__1_ = _endpos_type__ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos__1_ = _endpos_type__ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 3145 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4886 "src/ocaml/preprocess/parser_raw.mly" +# 3179 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4897 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 3151 "src/ocaml/preprocess/parser_raw.ml" - in +# 3185 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -3176,27 +3211,29 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_ident_ in - let _v : (Parsetree.core_type) = let _1 = - let _1 = -# 4882 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _1 = + let _1 = +# 4893 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_var (ident, None) ) -# 3184 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos__1_ = _endpos_ident_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 3220 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos_ident_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 3193 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4886 "src/ocaml/preprocess/parser_raw.mly" +# 3229 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4897 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 3199 "src/ocaml/preprocess/parser_raw.ml" - in +# 3235 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -3217,26 +3254,28 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v : (Parsetree.core_type) = let _1 = - let _1 = -# 4884 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _1 = + let _1 = +# 4895 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_any None ) -# 3225 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 3263 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 3233 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4886 "src/ocaml/preprocess/parser_raw.mly" +# 3271 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4897 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 3239 "src/ocaml/preprocess/parser_raw.ml" - in +# 3277 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -3292,14 +3331,16 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__6_ in - let _v : (Parsetree.core_type) = let _endpos = _endpos__6_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 4888 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _endpos = _endpos__6_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + ( +# 4899 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc (Ptyp_var (name, Some jkind)) ) -# 3302 "src/ocaml/preprocess/parser_raw.ml" - in +# 3342 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -3348,14 +3389,16 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__5_ in - let _v : (Parsetree.core_type) = let _endpos = _endpos__5_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 4890 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _endpos = _endpos__5_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + ( +# 4901 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc (Ptyp_any (Some jkind)) ) -# 3358 "src/ocaml/preprocess/parser_raw.ml" - in +# 3400 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -3376,26 +3419,28 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v : (string Location.loc) = let _1 = - let _1 = -# 5369 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _1 = + let _1 = +# 5380 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 3384 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 3428 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1326 "src/ocaml/preprocess/parser_raw.mly" ( mkloc _1 (make_loc _sloc) ) -# 3392 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 5371 "src/ocaml/preprocess/parser_raw.mly" +# 3436 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 5382 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 3398 "src/ocaml/preprocess/parser_raw.ml" - in +# 3442 "src/ocaml/preprocess/parser_raw.ml" + : (string Location.loc)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -3430,27 +3475,29 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in - let _v : (string Location.loc) = let _1 = - let _1 = -# 5370 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _1 = + let _1 = +# 5381 "src/ocaml/preprocess/parser_raw.mly" ( _1 ^ "." ^ _3.txt ) -# 3438 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos__1_ = _endpos__3_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 3484 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__3_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1326 "src/ocaml/preprocess/parser_raw.mly" ( mkloc _1 (make_loc _sloc) ) -# 3447 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 5371 "src/ocaml/preprocess/parser_raw.mly" +# 3493 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 5382 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 3453 "src/ocaml/preprocess/parser_raw.ml" - in +# 3499 "src/ocaml/preprocess/parser_raw.ml" + : (string Location.loc)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -3472,11 +3519,11 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Parsetree.payload) = -# 5426 "src/ocaml/preprocess/parser_raw.mly" +# 5437 "src/ocaml/preprocess/parser_raw.mly" ( Builtin_attributes.mark_payload_attrs_used _1; _1 ) -# 3480 "src/ocaml/preprocess/parser_raw.ml" +# 3527 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -3519,14 +3566,16 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in - let _v : (Parsetree.attribute) = let _endpos = _endpos__4_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 5375 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _endpos = _endpos__4_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + ( +# 5386 "src/ocaml/preprocess/parser_raw.mly" ( mk_attr ~loc:(make_loc _sloc) _2 _3 ) -# 3529 "src/ocaml/preprocess/parser_raw.ml" - in +# 3577 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.attribute)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -3550,7 +3599,7 @@ module Tables = struct let _v : (Parsetree.class_expr) = # 2397 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 3554 "src/ocaml/preprocess/parser_raw.ml" +# 3603 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -3586,22 +3635,24 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in - let _v : (Parsetree.class_expr) = let _2 = - let _1 = _1_inlined1 in - -# 5392 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _2 = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 3595 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 3645 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + ( # 2399 "src/ocaml/preprocess/parser_raw.mly" ( wrap_class_attrs ~loc:_sloc _3 _2 ) -# 3604 "src/ocaml/preprocess/parser_raw.ml" - in +# 3654 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.class_expr)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -3636,14 +3687,16 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in - let _v : (Parsetree.class_expr) = let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let _v = + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + ( # 2401 "src/ocaml/preprocess/parser_raw.mly" ( class_of_let_bindings ~loc:_sloc _1 _3 ) -# 3646 "src/ocaml/preprocess/parser_raw.ml" - in +# 3698 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.class_expr)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -3699,41 +3752,43 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__7_ in - let _v : (Parsetree.class_expr) = let _5 = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let _v = + let _5 = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 3711 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__5_ = _endpos__1_inlined2_ in - let _4 = - let _1 = _1_inlined1 in - -# 5392 "src/ocaml/preprocess/parser_raw.mly" +# 3765 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__5_ = _endpos__1_inlined2_ in + let _4 = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 3720 "src/ocaml/preprocess/parser_raw.ml" - - in - let _3 = -# 5293 "src/ocaml/preprocess/parser_raw.mly" +# 3774 "src/ocaml/preprocess/parser_raw.ml" + + in + let _3 = +# 5304 "src/ocaml/preprocess/parser_raw.mly" ( Fresh ) -# 3726 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__7_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 3780 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__7_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + ( # 2403 "src/ocaml/preprocess/parser_raw.mly" ( let loc = (_startpos__2_, _endpos__5_) in let od = Opn.mk ~override:_3 ~loc:(make_loc loc) _5 in mkclass ~loc:_sloc ~attrs:_4 (Pcl_open(od, _7)) ) -# 3736 "src/ocaml/preprocess/parser_raw.ml" - in +# 3790 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.class_expr)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -3796,41 +3851,43 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__7_ in - let _v : (Parsetree.class_expr) = let _5 = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined3_, _startpos__1_inlined3_, _1_inlined3) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let _v = + let _5 = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined3_, _startpos__1_inlined3_, _1_inlined3) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 3808 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__5_ = _endpos__1_inlined3_ in - let _4 = - let _1 = _1_inlined2 in - -# 5392 "src/ocaml/preprocess/parser_raw.mly" +# 3864 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__5_ = _endpos__1_inlined3_ in + let _4 = + let _1 = _1_inlined2 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 3817 "src/ocaml/preprocess/parser_raw.ml" - - in - let _3 = -# 5294 "src/ocaml/preprocess/parser_raw.mly" +# 3873 "src/ocaml/preprocess/parser_raw.ml" + + in + let _3 = +# 5305 "src/ocaml/preprocess/parser_raw.mly" ( Override ) -# 3823 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__7_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 3879 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__7_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + ( # 2403 "src/ocaml/preprocess/parser_raw.mly" ( let loc = (_startpos__2_, _endpos__5_) in let od = Opn.mk ~override:_3 ~loc:(make_loc loc) _5 in mkclass ~loc:_sloc ~attrs:_4 (Pcl_open(od, _7)) ) -# 3833 "src/ocaml/preprocess/parser_raw.ml" - in +# 3889 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.class_expr)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -3861,7 +3918,7 @@ module Tables = struct let _v : (Parsetree.class_expr) = # 2407 "src/ocaml/preprocess/parser_raw.mly" ( Cl.attr _1 _2 ) -# 3865 "src/ocaml/preprocess/parser_raw.ml" +# 3922 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -3890,41 +3947,43 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_xs_ in - let _v : (Parsetree.class_expr) = let _1 = + let _v = let _1 = - let _2 = - let xs = -# 253 "" + let _1 = + let _2 = + let xs = +# 264 "" ( List.rev xs ) -# 3900 "src/ocaml/preprocess/parser_raw.ml" - in - +# 3958 "src/ocaml/preprocess/parser_raw.ml" + in + # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 3905 "src/ocaml/preprocess/parser_raw.ml" +# 3963 "src/ocaml/preprocess/parser_raw.ml" + + in - in - # 2410 "src/ocaml/preprocess/parser_raw.mly" ( Pcl_apply(_1, _2) ) -# 3911 "src/ocaml/preprocess/parser_raw.ml" +# 3969 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__1_ = _endpos_xs_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos__1_ = _endpos_xs_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1349 "src/ocaml/preprocess/parser_raw.mly" ( mkclass ~loc:_sloc _1 ) -# 3921 "src/ocaml/preprocess/parser_raw.ml" - - in - +# 3979 "src/ocaml/preprocess/parser_raw.ml" + + in + ( # 2413 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 3927 "src/ocaml/preprocess/parser_raw.ml" - in +# 3985 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.class_expr)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -3945,26 +4004,28 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v : (Parsetree.class_expr) = let _1 = - let _1 = + let _v = + let _1 = + let _1 = # 2412 "src/ocaml/preprocess/parser_raw.mly" ( Pcl_extension _1 ) -# 3953 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 4013 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1349 "src/ocaml/preprocess/parser_raw.mly" ( mkclass ~loc:_sloc _1 ) -# 3961 "src/ocaml/preprocess/parser_raw.ml" - - in - +# 4021 "src/ocaml/preprocess/parser_raw.ml" + + in + ( # 2413 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 3967 "src/ocaml/preprocess/parser_raw.ml" - in +# 4027 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.class_expr)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -4013,37 +4074,39 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined2_ in - let _v : (Parsetree.class_field) = let _6 = - let _1 = _1_inlined2 in - -# 5388 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _6 = + let _1 = _1_inlined2 in + +# 5399 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 4022 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__6_ = _endpos__1_inlined2_ in - let _3 = - let _1 = _1_inlined1 in - -# 5392 "src/ocaml/preprocess/parser_raw.mly" +# 4084 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__6_ = _endpos__1_inlined2_ in + let _3 = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 4031 "src/ocaml/preprocess/parser_raw.ml" - - in - let _2 = -# 5293 "src/ocaml/preprocess/parser_raw.mly" +# 4093 "src/ocaml/preprocess/parser_raw.ml" + + in + let _2 = +# 5304 "src/ocaml/preprocess/parser_raw.mly" ( Fresh ) -# 4037 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__6_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 4099 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__6_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + ( # 2467 "src/ocaml/preprocess/parser_raw.mly" ( let docs = symbol_docs _sloc in mkcf ~loc:_sloc (Pcf_inherit (_2, _4, self)) ~attrs:(_3@_6) ~docs ) -# 4046 "src/ocaml/preprocess/parser_raw.ml" - in +# 4108 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.class_field)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -4099,37 +4162,39 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined3_ in - let _v : (Parsetree.class_field) = let _6 = - let _1 = _1_inlined3 in - -# 5388 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _6 = + let _1 = _1_inlined3 in + +# 5399 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 4108 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__6_ = _endpos__1_inlined3_ in - let _3 = - let _1 = _1_inlined2 in - -# 5392 "src/ocaml/preprocess/parser_raw.mly" +# 4172 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__6_ = _endpos__1_inlined3_ in + let _3 = + let _1 = _1_inlined2 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 4117 "src/ocaml/preprocess/parser_raw.ml" - - in - let _2 = -# 5294 "src/ocaml/preprocess/parser_raw.mly" +# 4181 "src/ocaml/preprocess/parser_raw.ml" + + in + let _2 = +# 5305 "src/ocaml/preprocess/parser_raw.mly" ( Override ) -# 4123 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__6_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 4187 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__6_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + ( # 2467 "src/ocaml/preprocess/parser_raw.mly" ( let docs = symbol_docs _sloc in mkcf ~loc:_sloc (Pcf_inherit (_2, _4, self)) ~attrs:(_3@_6) ~docs ) -# 4132 "src/ocaml/preprocess/parser_raw.ml" - in +# 4196 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.class_field)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -4165,25 +4230,27 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined1_ in - let _v : (Parsetree.class_field) = let _3 = - let _1 = _1_inlined1 in - -# 5388 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _3 = + let _1 = _1_inlined1 in + +# 5399 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 4174 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__3_ = _endpos__1_inlined1_ in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 4240 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__3_ = _endpos__1_inlined1_ in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + ( # 2470 "src/ocaml/preprocess/parser_raw.mly" ( let v, attrs = _2 in let docs = symbol_docs _sloc in mkcf ~loc:_sloc (Pcf_val v) ~attrs:(attrs@_3) ~docs ) -# 4186 "src/ocaml/preprocess/parser_raw.ml" - in +# 4252 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.class_field)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -4219,25 +4286,27 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined1_ in - let _v : (Parsetree.class_field) = let _3 = - let _1 = _1_inlined1 in - -# 5388 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _3 = + let _1 = _1_inlined1 in + +# 5399 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 4228 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__3_ = _endpos__1_inlined1_ in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 4296 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__3_ = _endpos__1_inlined1_ in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + ( # 2474 "src/ocaml/preprocess/parser_raw.mly" ( let meth, attrs = _2 in let docs = symbol_docs _sloc in mkcf ~loc:_sloc (Pcf_method meth) ~attrs:(attrs@_3) ~docs ) -# 4240 "src/ocaml/preprocess/parser_raw.ml" - in +# 4308 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.class_field)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -4279,32 +4348,34 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined2_ in - let _v : (Parsetree.class_field) = let _4 = - let _1 = _1_inlined2 in - -# 5388 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _4 = + let _1 = _1_inlined2 in + +# 5399 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 4288 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__4_ = _endpos__1_inlined2_ in - let _2 = - let _1 = _1_inlined1 in - -# 5392 "src/ocaml/preprocess/parser_raw.mly" +# 4358 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__4_ = _endpos__1_inlined2_ in + let _2 = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 4297 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__4_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 4367 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__4_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + ( # 2478 "src/ocaml/preprocess/parser_raw.mly" ( let docs = symbol_docs _sloc in mkcf ~loc:_sloc (Pcf_constraint _3) ~attrs:(_2@_4) ~docs ) -# 4307 "src/ocaml/preprocess/parser_raw.ml" - in +# 4377 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.class_field)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -4346,32 +4417,34 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined2_ in - let _v : (Parsetree.class_field) = let _4 = - let _1 = _1_inlined2 in - -# 5388 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _4 = + let _1 = _1_inlined2 in + +# 5399 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 4355 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__4_ = _endpos__1_inlined2_ in - let _2 = - let _1 = _1_inlined1 in - -# 5392 "src/ocaml/preprocess/parser_raw.mly" +# 4427 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__4_ = _endpos__1_inlined2_ in + let _2 = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 4364 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__4_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 4436 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__4_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + ( # 2481 "src/ocaml/preprocess/parser_raw.mly" ( let docs = symbol_docs _sloc in mkcf ~loc:_sloc (Pcf_initializer _3) ~attrs:(_2@_4) ~docs ) -# 4374 "src/ocaml/preprocess/parser_raw.ml" - in +# 4446 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.class_field)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -4399,24 +4472,26 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined1_ in - let _v : (Parsetree.class_field) = let _2 = - let _1 = _1_inlined1 in - -# 5388 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _2 = + let _1 = _1_inlined1 in + +# 5399 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 4408 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__2_ = _endpos__1_inlined1_ in - let _endpos = _endpos__2_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 4482 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__2_ = _endpos__1_inlined1_ in + let _endpos = _endpos__2_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + ( # 2484 "src/ocaml/preprocess/parser_raw.mly" ( let docs = symbol_docs _sloc in mkcf ~loc:_sloc (Pcf_extension _1) ~attrs:_2 ~docs ) -# 4419 "src/ocaml/preprocess/parser_raw.ml" - in +# 4493 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.class_field)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -4437,26 +4512,28 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v : (Parsetree.class_field) = let _1 = - let _1 = + let _v = + let _1 = + let _1 = # 2487 "src/ocaml/preprocess/parser_raw.mly" ( Pcf_attribute _1 ) -# 4445 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 4521 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1347 "src/ocaml/preprocess/parser_raw.mly" ( mkcf ~loc:_sloc _1 ) -# 4453 "src/ocaml/preprocess/parser_raw.ml" - - in - +# 4529 "src/ocaml/preprocess/parser_raw.ml" + + in + ( # 2488 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 4459 "src/ocaml/preprocess/parser_raw.ml" - in +# 4535 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.class_field)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -4487,7 +4564,7 @@ module Tables = struct let _v : (Parsetree.class_expr) = # 2377 "src/ocaml/preprocess/parser_raw.mly" ( _2 ) -# 4491 "src/ocaml/preprocess/parser_raw.ml" +# 4568 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -4530,27 +4607,29 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in - let _v : (Parsetree.class_expr) = let _1 = - let _1 = + let _v = + let _1 = + let _1 = # 2380 "src/ocaml/preprocess/parser_raw.mly" ( Pcl_constraint(_4, _2) ) -# 4538 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos__1_ = _endpos__4_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 4616 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__4_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1349 "src/ocaml/preprocess/parser_raw.mly" ( mkclass ~loc:_sloc _1 ) -# 4547 "src/ocaml/preprocess/parser_raw.ml" - - in - +# 4625 "src/ocaml/preprocess/parser_raw.ml" + + in + ( # 2383 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 4553 "src/ocaml/preprocess/parser_raw.ml" - in +# 4631 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.class_expr)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -4578,27 +4657,29 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in - let _v : (Parsetree.class_expr) = let _1 = - let _1 = + let _v = + let _1 = + let _1 = # 2382 "src/ocaml/preprocess/parser_raw.mly" ( let (l,o,p) = _1 in Pcl_fun(l, o, p, _2) ) -# 4586 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos__1_ = _endpos__2_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 4666 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__2_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1349 "src/ocaml/preprocess/parser_raw.mly" ( mkclass ~loc:_sloc _1 ) -# 4595 "src/ocaml/preprocess/parser_raw.ml" - - in - +# 4675 "src/ocaml/preprocess/parser_raw.ml" + + in + ( # 2383 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 4601 "src/ocaml/preprocess/parser_raw.ml" - in +# 4681 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.class_expr)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -4633,27 +4714,29 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_e_ in - let _v : (Parsetree.class_expr) = let _1 = - let _1 = + let _v = + let _1 = + let _1 = # 2444 "src/ocaml/preprocess/parser_raw.mly" ( let (l,o,p) = _1 in Pcl_fun(l, o, p, e) ) -# 4641 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos__1_ = _endpos_e_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 4723 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos_e_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1349 "src/ocaml/preprocess/parser_raw.mly" ( mkclass ~loc:_sloc _1 ) -# 4650 "src/ocaml/preprocess/parser_raw.ml" - - in - +# 4732 "src/ocaml/preprocess/parser_raw.ml" + + in + ( # 2445 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 4656 "src/ocaml/preprocess/parser_raw.ml" - in +# 4738 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.class_expr)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -4681,27 +4764,29 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_e_ in - let _v : (Parsetree.class_expr) = let _1 = - let _1 = + let _v = + let _1 = + let _1 = # 2444 "src/ocaml/preprocess/parser_raw.mly" ( let (l,o,p) = _1 in Pcl_fun(l, o, p, e) ) -# 4689 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos__1_ = _endpos_e_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 4773 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos_e_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1349 "src/ocaml/preprocess/parser_raw.mly" ( mkclass ~loc:_sloc _1 ) -# 4698 "src/ocaml/preprocess/parser_raw.ml" - - in - +# 4782 "src/ocaml/preprocess/parser_raw.ml" + + in + ( # 2445 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 4704 "src/ocaml/preprocess/parser_raw.ml" - in +# 4788 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.class_expr)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -4723,9 +4808,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Longident.t) = -# 5163 "src/ocaml/preprocess/parser_raw.mly" +# 5174 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 4729 "src/ocaml/preprocess/parser_raw.ml" +# 4814 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -4761,14 +4846,16 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in - let _v : (Parsetree.pattern) = let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let _v = + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + ( # 2453 "src/ocaml/preprocess/parser_raw.mly" ( reloc_pat ~loc:_sloc _2 ) -# 4771 "src/ocaml/preprocess/parser_raw.ml" - in +# 4857 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.pattern)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -4817,14 +4904,16 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__5_ in - let _v : (Parsetree.pattern) = let _endpos = _endpos__5_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let _v = + let _endpos = _endpos__5_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + ( # 2455 "src/ocaml/preprocess/parser_raw.mly" ( mkpat_with_modes ~loc:_sloc ~pat:_2 ~cty:(Some _4) ~modes:[] ) -# 4827 "src/ocaml/preprocess/parser_raw.ml" - in +# 4915 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.pattern)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -4838,14 +4927,16 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in let _endpos = _startpos in - let _v : (Parsetree.pattern) = let _endpos = _endpos__0_ in - let _symbolstartpos = _endpos in - let _sloc = (_symbolstartpos, _endpos) in - + let _v = + let _endpos = _endpos__0_ in + let _symbolstartpos = _endpos in + let _sloc = (_symbolstartpos, _endpos) in + ( # 2457 "src/ocaml/preprocess/parser_raw.mly" ( ghpat ~loc:_sloc Ppat_any ) -# 4848 "src/ocaml/preprocess/parser_raw.ml" - in +# 4938 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.pattern)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -4883,7 +4974,7 @@ module Tables = struct let _v : (Parsetree.core_type) = # 2584 "src/ocaml/preprocess/parser_raw.mly" ( _2 ) -# 4887 "src/ocaml/preprocess/parser_raw.ml" +# 4978 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -4898,27 +4989,29 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in let _endpos = _startpos in - let _v : (Parsetree.core_type) = let _1 = - let _1 = + let _v = + let _1 = + let _1 = # 2585 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_any None ) -# 4906 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos__1_ = _endpos__0_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _endpos in - let _sloc = (_symbolstartpos, _endpos) in - +# 4998 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__0_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _endpos in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 4915 "src/ocaml/preprocess/parser_raw.ml" - - in - +# 5007 "src/ocaml/preprocess/parser_raw.ml" + + in + ( # 2586 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 4921 "src/ocaml/preprocess/parser_raw.ml" - in +# 5013 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -4960,32 +5053,34 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined2_ in - let _v : (Parsetree.class_type_field) = let _4 = - let _1 = _1_inlined2 in - -# 5388 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _4 = + let _1 = _1_inlined2 in + +# 5399 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 4969 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__4_ = _endpos__1_inlined2_ in - let _2 = - let _1 = _1_inlined1 in - -# 5392 "src/ocaml/preprocess/parser_raw.mly" +# 5063 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__4_ = _endpos__1_inlined2_ in + let _2 = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 4978 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__4_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 5072 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__4_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + ( # 2594 "src/ocaml/preprocess/parser_raw.mly" ( let docs = symbol_docs _sloc in mkctf ~loc:_sloc (Pctf_inherit _3) ~attrs:(_2@_4) ~docs ) -# 4988 "src/ocaml/preprocess/parser_raw.ml" - in +# 5082 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.class_type_field)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -5044,7 +5139,7 @@ module Tables = struct let _1_inlined2 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 5048 "src/ocaml/preprocess/parser_raw.ml" +# 5143 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined2 in let flags : (Asttypes.mutable_flag * Asttypes.virtual_flag) = Obj.magic flags in let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in @@ -5052,58 +5147,60 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined3_ in - let _v : (Parsetree.class_type_field) = let _4 = - let _1 = _1_inlined3 in - -# 5388 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _4 = + let _1 = _1_inlined3 in + +# 5399 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 5061 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__4_ = _endpos__1_inlined3_ in - let _3 = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in - let label = - let _1 = -# 4999 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 5071 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 5157 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__4_ = _endpos__1_inlined3_ in + let _3 = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in + let label = + let _1 = +# 5010 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 5167 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 5079 "src/ocaml/preprocess/parser_raw.ml" +# 5175 "src/ocaml/preprocess/parser_raw.ml" + + in - in - # 2619 "src/ocaml/preprocess/parser_raw.mly" ( let mut, virt = flags in label, mut, virt, ty ) -# 5088 "src/ocaml/preprocess/parser_raw.ml" - - in - let _2 = - let _1 = _1_inlined1 in - -# 5392 "src/ocaml/preprocess/parser_raw.mly" +# 5184 "src/ocaml/preprocess/parser_raw.ml" + + in + let _2 = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 5096 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__4_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 5192 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__4_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + ( # 2597 "src/ocaml/preprocess/parser_raw.mly" ( let docs = symbol_docs _sloc in mkctf ~loc:_sloc (Pctf_val _3) ~attrs:(_2@_4) ~docs ) -# 5106 "src/ocaml/preprocess/parser_raw.ml" - in +# 5202 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.class_type_field)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -5162,7 +5259,7 @@ module Tables = struct let _1_inlined2 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 5166 "src/ocaml/preprocess/parser_raw.ml" +# 5263 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined2 in let _3 : (Asttypes.private_flag * Asttypes.virtual_flag) = Obj.magic _3 in let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in @@ -5170,57 +5267,59 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined4_ in - let _v : (Parsetree.class_type_field) = let _7 = - let _1 = _1_inlined4 in - -# 5388 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 5179 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__7_ = _endpos__1_inlined4_ in - let _6 = - let _1 = _1_inlined3 in - -# 4485 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _7 = + let _1 = _1_inlined4 in + +# 5399 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 5188 "src/ocaml/preprocess/parser_raw.ml" - - in - let _4 = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in - let _1 = -# 4999 "src/ocaml/preprocess/parser_raw.mly" +# 5277 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__7_ = _endpos__1_inlined4_ in + let _6 = + let _1 = _1_inlined3 in + +# 4496 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 5286 "src/ocaml/preprocess/parser_raw.ml" + + in + let _4 = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in + let _1 = +# 5010 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 5196 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 5294 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 5204 "src/ocaml/preprocess/parser_raw.ml" - - in - let _2 = - let _1 = _1_inlined1 in - -# 5392 "src/ocaml/preprocess/parser_raw.mly" +# 5302 "src/ocaml/preprocess/parser_raw.ml" + + in + let _2 = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 5212 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__7_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 5310 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__7_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + ( # 2601 "src/ocaml/preprocess/parser_raw.mly" ( let (p, v) = _3 in let docs = symbol_docs _sloc in mkctf ~loc:_sloc (Pctf_method (_4, p, v, _6)) ~attrs:(_2@_7) ~docs ) -# 5223 "src/ocaml/preprocess/parser_raw.ml" - in +# 5321 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.class_type_field)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -5262,32 +5361,34 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined2_ in - let _v : (Parsetree.class_type_field) = let _4 = - let _1 = _1_inlined2 in - -# 5388 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _4 = + let _1 = _1_inlined2 in + +# 5399 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 5271 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__4_ = _endpos__1_inlined2_ in - let _2 = - let _1 = _1_inlined1 in - -# 5392 "src/ocaml/preprocess/parser_raw.mly" +# 5371 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__4_ = _endpos__1_inlined2_ in + let _2 = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 5280 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__4_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 5380 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__4_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + ( # 2605 "src/ocaml/preprocess/parser_raw.mly" ( let docs = symbol_docs _sloc in mkctf ~loc:_sloc (Pctf_constraint _3) ~attrs:(_2@_4) ~docs ) -# 5290 "src/ocaml/preprocess/parser_raw.ml" - in +# 5390 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.class_type_field)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -5315,24 +5416,26 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined1_ in - let _v : (Parsetree.class_type_field) = let _2 = - let _1 = _1_inlined1 in - -# 5388 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _2 = + let _1 = _1_inlined1 in + +# 5399 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 5324 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__2_ = _endpos__1_inlined1_ in - let _endpos = _endpos__2_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 5426 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__2_ = _endpos__1_inlined1_ in + let _endpos = _endpos__2_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + ( # 2608 "src/ocaml/preprocess/parser_raw.mly" ( let docs = symbol_docs _sloc in mkctf ~loc:_sloc (Pctf_extension _1) ~attrs:_2 ~docs ) -# 5335 "src/ocaml/preprocess/parser_raw.ml" - in +# 5437 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.class_type_field)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -5353,26 +5456,28 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v : (Parsetree.class_type_field) = let _1 = - let _1 = + let _v = + let _1 = + let _1 = # 2611 "src/ocaml/preprocess/parser_raw.mly" ( Pctf_attribute _1 ) -# 5361 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 5465 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1345 "src/ocaml/preprocess/parser_raw.mly" ( mkctf ~loc:_sloc _1 ) -# 5369 "src/ocaml/preprocess/parser_raw.ml" - - in - +# 5473 "src/ocaml/preprocess/parser_raw.ml" + + in + ( # 2612 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 5375 "src/ocaml/preprocess/parser_raw.ml" - in +# 5479 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.class_type_field)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -5393,50 +5498,52 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v : (Parsetree.class_type) = let _1 = + let _v = let _1 = - let cid = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let _1 = + let cid = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 5406 "src/ocaml/preprocess/parser_raw.ml" - - in - let tys = - let tys = +# 5512 "src/ocaml/preprocess/parser_raw.ml" + + in + let tys = + let tys = # 2570 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 5413 "src/ocaml/preprocess/parser_raw.ml" - in - +# 5519 "src/ocaml/preprocess/parser_raw.ml" + in + # 2576 "src/ocaml/preprocess/parser_raw.mly" ( tys ) -# 5418 "src/ocaml/preprocess/parser_raw.ml" +# 5524 "src/ocaml/preprocess/parser_raw.ml" + + in - in - # 2551 "src/ocaml/preprocess/parser_raw.mly" ( Pcty_constr (cid, tys) ) -# 5424 "src/ocaml/preprocess/parser_raw.ml" +# 5530 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1343 "src/ocaml/preprocess/parser_raw.mly" ( mkcty ~loc:_sloc _1 ) -# 5433 "src/ocaml/preprocess/parser_raw.ml" - - in - +# 5539 "src/ocaml/preprocess/parser_raw.ml" + + in + ( # 2554 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 5439 "src/ocaml/preprocess/parser_raw.ml" - in +# 5545 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.class_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -5478,66 +5585,68 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined1_ in - let _v : (Parsetree.class_type) = let _1 = + let _v = let _1 = - let cid = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let _1 = + let cid = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 5492 "src/ocaml/preprocess/parser_raw.ml" - - in - let tys = +# 5600 "src/ocaml/preprocess/parser_raw.ml" + + in let tys = - let params = - let xs = -# 253 "" + let tys = + let params = + let xs = +# 264 "" ( List.rev xs ) -# 5501 "src/ocaml/preprocess/parser_raw.ml" - in - +# 5609 "src/ocaml/preprocess/parser_raw.ml" + in + # 1450 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 5506 "src/ocaml/preprocess/parser_raw.ml" +# 5614 "src/ocaml/preprocess/parser_raw.ml" + + in - in - # 2572 "src/ocaml/preprocess/parser_raw.mly" ( params ) -# 5512 "src/ocaml/preprocess/parser_raw.ml" +# 5620 "src/ocaml/preprocess/parser_raw.ml" + + in - in - # 2576 "src/ocaml/preprocess/parser_raw.mly" ( tys ) -# 5518 "src/ocaml/preprocess/parser_raw.ml" +# 5626 "src/ocaml/preprocess/parser_raw.ml" + + in - in - # 2551 "src/ocaml/preprocess/parser_raw.mly" ( Pcty_constr (cid, tys) ) -# 5524 "src/ocaml/preprocess/parser_raw.ml" +# 5632 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__1_ = _endpos__1_inlined1_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos__1_ = _endpos__1_inlined1_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1343 "src/ocaml/preprocess/parser_raw.mly" ( mkcty ~loc:_sloc _1 ) -# 5534 "src/ocaml/preprocess/parser_raw.ml" - - in - +# 5642 "src/ocaml/preprocess/parser_raw.ml" + + in + ( # 2554 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 5540 "src/ocaml/preprocess/parser_raw.ml" - in +# 5648 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.class_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -5558,26 +5667,28 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v : (Parsetree.class_type) = let _1 = - let _1 = + let _v = + let _1 = + let _1 = # 2553 "src/ocaml/preprocess/parser_raw.mly" ( Pcty_extension _1 ) -# 5566 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 5676 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1343 "src/ocaml/preprocess/parser_raw.mly" ( mkcty ~loc:_sloc _1 ) -# 5574 "src/ocaml/preprocess/parser_raw.ml" - - in - +# 5684 "src/ocaml/preprocess/parser_raw.ml" + + in + ( # 2554 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 5580 "src/ocaml/preprocess/parser_raw.ml" - in +# 5690 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.class_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -5626,52 +5737,54 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in - let _v : (Parsetree.class_type) = let _3 = - let _1 = _1_inlined2 in - let _2 = - let _1 = - let _1 = -# 260 "" + let _v = + let _3 = + let _1 = _1_inlined2 in + let _2 = + let _1 = + let _1 = +# 271 "" ( List.flatten xss ) -# 5637 "src/ocaml/preprocess/parser_raw.ml" - in - +# 5749 "src/ocaml/preprocess/parser_raw.ml" + in + # 2590 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 5642 "src/ocaml/preprocess/parser_raw.ml" +# 5754 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos_xss_, _startpos_xss_) in + let _endpos = _endpos__1_ in + let _startpos = _startpos__1_ in - in - let (_endpos__1_, _startpos__1_) = (_endpos_xss_, _startpos_xss_) in - let _endpos = _endpos__1_ in - let _startpos = _startpos__1_ in - # 1291 "src/ocaml/preprocess/parser_raw.mly" ( extra_csig _startpos _endpos _1 ) -# 5651 "src/ocaml/preprocess/parser_raw.ml" +# 5763 "src/ocaml/preprocess/parser_raw.ml" + + in - in - # 2580 "src/ocaml/preprocess/parser_raw.mly" ( Csig.mk _1 _2 ) -# 5657 "src/ocaml/preprocess/parser_raw.ml" - - in - let _2 = - let _1 = _1_inlined1 in - -# 5392 "src/ocaml/preprocess/parser_raw.mly" +# 5769 "src/ocaml/preprocess/parser_raw.ml" + + in + let _2 = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 5665 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__4_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 5777 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__4_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + ( # 2556 "src/ocaml/preprocess/parser_raw.mly" ( mkcty ~loc:_sloc ~attrs:_2 (Pcty_signature _3) ) -# 5674 "src/ocaml/preprocess/parser_raw.ml" - in +# 5786 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.class_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -5702,7 +5815,7 @@ module Tables = struct let _v : (Parsetree.class_type) = # 2562 "src/ocaml/preprocess/parser_raw.mly" ( Cty.attr _1 _2 ) -# 5706 "src/ocaml/preprocess/parser_raw.ml" +# 5819 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -5759,41 +5872,43 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__7_ in - let _v : (Parsetree.class_type) = let _5 = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let _v = + let _5 = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 5771 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__5_ = _endpos__1_inlined2_ in - let _4 = - let _1 = _1_inlined1 in - -# 5392 "src/ocaml/preprocess/parser_raw.mly" +# 5885 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__5_ = _endpos__1_inlined2_ in + let _4 = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 5780 "src/ocaml/preprocess/parser_raw.ml" - - in - let _3 = -# 5293 "src/ocaml/preprocess/parser_raw.mly" +# 5894 "src/ocaml/preprocess/parser_raw.ml" + + in + let _3 = +# 5304 "src/ocaml/preprocess/parser_raw.mly" ( Fresh ) -# 5786 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__7_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 5900 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__7_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + ( # 2564 "src/ocaml/preprocess/parser_raw.mly" ( let loc = (_startpos__2_, _endpos__5_) in let od = Opn.mk ~override:_3 ~loc:(make_loc loc) _5 in mkcty ~loc:_sloc ~attrs:_4 (Pcty_open(od, _7)) ) -# 5796 "src/ocaml/preprocess/parser_raw.ml" - in +# 5910 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.class_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -5856,41 +5971,43 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__7_ in - let _v : (Parsetree.class_type) = let _5 = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined3_, _startpos__1_inlined3_, _1_inlined3) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let _v = + let _5 = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined3_, _startpos__1_inlined3_, _1_inlined3) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 5868 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__5_ = _endpos__1_inlined3_ in - let _4 = - let _1 = _1_inlined2 in - -# 5392 "src/ocaml/preprocess/parser_raw.mly" +# 5984 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__5_ = _endpos__1_inlined3_ in + let _4 = + let _1 = _1_inlined2 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 5877 "src/ocaml/preprocess/parser_raw.ml" - - in - let _3 = -# 5294 "src/ocaml/preprocess/parser_raw.mly" +# 5993 "src/ocaml/preprocess/parser_raw.ml" + + in + let _3 = +# 5305 "src/ocaml/preprocess/parser_raw.mly" ( Override ) -# 5883 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__7_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 5999 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__7_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + ( # 2564 "src/ocaml/preprocess/parser_raw.mly" ( let loc = (_startpos__2_, _endpos__5_) in let od = Opn.mk ~override:_3 ~loc:(make_loc loc) _5 in mkcty ~loc:_sloc ~attrs:_4 (Pcty_open(od, _7)) ) -# 5893 "src/ocaml/preprocess/parser_raw.ml" - in +# 6009 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.class_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -5928,7 +6045,7 @@ module Tables = struct let _v : (Parsetree.class_expr) = # 2417 "src/ocaml/preprocess/parser_raw.mly" ( _2 ) -# 5932 "src/ocaml/preprocess/parser_raw.ml" +# 6049 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -5950,50 +6067,52 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v : (Parsetree.class_expr) = let _1 = + let _v = let _1 = - let cid = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let _1 = + let cid = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 5963 "src/ocaml/preprocess/parser_raw.ml" - - in - let tys = - let tys = +# 6081 "src/ocaml/preprocess/parser_raw.ml" + + in + let tys = + let tys = # 2570 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 5970 "src/ocaml/preprocess/parser_raw.ml" - in - +# 6088 "src/ocaml/preprocess/parser_raw.ml" + in + # 2576 "src/ocaml/preprocess/parser_raw.mly" ( tys ) -# 5975 "src/ocaml/preprocess/parser_raw.ml" +# 6093 "src/ocaml/preprocess/parser_raw.ml" + + in - in - # 2424 "src/ocaml/preprocess/parser_raw.mly" ( Pcl_constr(cid, tys) ) -# 5981 "src/ocaml/preprocess/parser_raw.ml" +# 6099 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1349 "src/ocaml/preprocess/parser_raw.mly" ( mkclass ~loc:_sloc _1 ) -# 5990 "src/ocaml/preprocess/parser_raw.ml" - - in - +# 6108 "src/ocaml/preprocess/parser_raw.ml" + + in + ( # 2435 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 5996 "src/ocaml/preprocess/parser_raw.ml" - in +# 6114 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.class_expr)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -6035,66 +6154,68 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined1_ in - let _v : (Parsetree.class_expr) = let _1 = + let _v = let _1 = - let cid = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let _1 = + let cid = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 6049 "src/ocaml/preprocess/parser_raw.ml" - - in - let tys = +# 6169 "src/ocaml/preprocess/parser_raw.ml" + + in let tys = - let params = - let xs = -# 253 "" + let tys = + let params = + let xs = +# 264 "" ( List.rev xs ) -# 6058 "src/ocaml/preprocess/parser_raw.ml" - in - +# 6178 "src/ocaml/preprocess/parser_raw.ml" + in + # 1450 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 6063 "src/ocaml/preprocess/parser_raw.ml" +# 6183 "src/ocaml/preprocess/parser_raw.ml" + + in - in - # 2572 "src/ocaml/preprocess/parser_raw.mly" ( params ) -# 6069 "src/ocaml/preprocess/parser_raw.ml" +# 6189 "src/ocaml/preprocess/parser_raw.ml" + + in - in - # 2576 "src/ocaml/preprocess/parser_raw.mly" ( tys ) -# 6075 "src/ocaml/preprocess/parser_raw.ml" +# 6195 "src/ocaml/preprocess/parser_raw.ml" + + in - in - # 2424 "src/ocaml/preprocess/parser_raw.mly" ( Pcl_constr(cid, tys) ) -# 6081 "src/ocaml/preprocess/parser_raw.ml" +# 6201 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__1_ = _endpos__1_inlined1_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos__1_ = _endpos__1_inlined1_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1349 "src/ocaml/preprocess/parser_raw.mly" ( mkclass ~loc:_sloc _1 ) -# 6091 "src/ocaml/preprocess/parser_raw.ml" - - in - +# 6211 "src/ocaml/preprocess/parser_raw.ml" + + in + ( # 2435 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 6097 "src/ocaml/preprocess/parser_raw.ml" - in +# 6217 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.class_expr)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -6143,27 +6264,29 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__5_ in - let _v : (Parsetree.class_expr) = let _1 = - let _1 = + let _v = + let _1 = + let _1 = # 2430 "src/ocaml/preprocess/parser_raw.mly" ( Pcl_constraint(_2, _4) ) -# 6151 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos__1_ = _endpos__5_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 6273 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__5_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1349 "src/ocaml/preprocess/parser_raw.mly" ( mkclass ~loc:_sloc _1 ) -# 6160 "src/ocaml/preprocess/parser_raw.ml" - - in - +# 6282 "src/ocaml/preprocess/parser_raw.ml" + + in + ( # 2435 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 6166 "src/ocaml/preprocess/parser_raw.ml" - in +# 6288 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.class_expr)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -6212,52 +6335,54 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in - let _v : (Parsetree.class_expr) = let _3 = - let _1 = _1_inlined2 in - let _2 = - let _1 = - let _1 = -# 260 "" + let _v = + let _3 = + let _1 = _1_inlined2 in + let _2 = + let _1 = + let _1 = +# 271 "" ( List.flatten xss ) -# 6223 "src/ocaml/preprocess/parser_raw.ml" - in - +# 6347 "src/ocaml/preprocess/parser_raw.ml" + in + # 2461 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 6228 "src/ocaml/preprocess/parser_raw.ml" +# 6352 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos_xss_, _startpos_xss_) in + let _endpos = _endpos__1_ in + let _startpos = _startpos__1_ in - in - let (_endpos__1_, _startpos__1_) = (_endpos_xss_, _startpos_xss_) in - let _endpos = _endpos__1_ in - let _startpos = _startpos__1_ in - # 1290 "src/ocaml/preprocess/parser_raw.mly" ( extra_cstr _startpos _endpos _1 ) -# 6237 "src/ocaml/preprocess/parser_raw.ml" +# 6361 "src/ocaml/preprocess/parser_raw.ml" + + in - in - # 2449 "src/ocaml/preprocess/parser_raw.mly" ( Cstr.mk _1 _2 ) -# 6243 "src/ocaml/preprocess/parser_raw.ml" - - in - let _2 = - let _1 = _1_inlined1 in - -# 5392 "src/ocaml/preprocess/parser_raw.mly" +# 6367 "src/ocaml/preprocess/parser_raw.ml" + + in + let _2 = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 6251 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__4_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 6375 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__4_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + ( # 2437 "src/ocaml/preprocess/parser_raw.mly" ( mkclass ~loc:_sloc ~attrs:_2 (Pcl_structure _3) ) -# 6260 "src/ocaml/preprocess/parser_raw.ml" - in +# 6384 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.class_expr)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -6281,7 +6406,7 @@ module Tables = struct let _v : (Parsetree.class_type) = # 2539 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 6285 "src/ocaml/preprocess/parser_raw.ml" +# 6410 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -6324,41 +6449,43 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos_codomain_ in - let _v : (Parsetree.class_type) = let _1 = + let _v = let _1 = - let label = - let _1 = -# 4626 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let label = + let _1 = +# 4637 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 6334 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4633 "src/ocaml/preprocess/parser_raw.mly" +# 6460 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 6339 "src/ocaml/preprocess/parser_raw.ml" +# 6465 "src/ocaml/preprocess/parser_raw.ml" + + in - in - # 2545 "src/ocaml/preprocess/parser_raw.mly" ( Pcty_arrow(label, domain, codomain) ) -# 6345 "src/ocaml/preprocess/parser_raw.ml" +# 6471 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1343 "src/ocaml/preprocess/parser_raw.mly" ( mkcty ~loc:_sloc _1 ) -# 6355 "src/ocaml/preprocess/parser_raw.ml" - - in - +# 6481 "src/ocaml/preprocess/parser_raw.ml" + + in + ( # 2546 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 6361 "src/ocaml/preprocess/parser_raw.ml" - in +# 6487 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.class_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -6406,46 +6533,48 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 6410 "src/ocaml/preprocess/parser_raw.ml" +# 6537 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos_codomain_ in - let _v : (Parsetree.class_type) = let _1 = + let _v = let _1 = - let label = - let _1 = -# 4628 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let label = + let _1 = +# 4639 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 6421 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4633 "src/ocaml/preprocess/parser_raw.mly" +# 6549 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 6426 "src/ocaml/preprocess/parser_raw.ml" +# 6554 "src/ocaml/preprocess/parser_raw.ml" + + in - in - # 2545 "src/ocaml/preprocess/parser_raw.mly" ( Pcty_arrow(label, domain, codomain) ) -# 6432 "src/ocaml/preprocess/parser_raw.ml" +# 6560 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1343 "src/ocaml/preprocess/parser_raw.mly" ( mkcty ~loc:_sloc _1 ) -# 6442 "src/ocaml/preprocess/parser_raw.ml" - - in - +# 6570 "src/ocaml/preprocess/parser_raw.ml" + + in + ( # 2546 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 6448 "src/ocaml/preprocess/parser_raw.ml" - in +# 6576 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.class_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -6480,34 +6609,36 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_domain_ in let _endpos = _endpos_codomain_ in - let _v : (Parsetree.class_type) = let _1 = + let _v = let _1 = - let label = -# 4635 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let label = +# 4646 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 6489 "src/ocaml/preprocess/parser_raw.ml" - in - +# 6619 "src/ocaml/preprocess/parser_raw.ml" + in + # 2545 "src/ocaml/preprocess/parser_raw.mly" ( Pcty_arrow(label, domain, codomain) ) -# 6494 "src/ocaml/preprocess/parser_raw.ml" +# 6624 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_domain_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_domain_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1343 "src/ocaml/preprocess/parser_raw.mly" ( mkcty ~loc:_sloc _1 ) -# 6504 "src/ocaml/preprocess/parser_raw.ml" - - in - +# 6634 "src/ocaml/preprocess/parser_raw.ml" + + in + ( # 2546 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 6510 "src/ocaml/preprocess/parser_raw.ml" - in +# 6640 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.class_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -6591,7 +6722,7 @@ module Tables = struct let _1_inlined2 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 6595 "src/ocaml/preprocess/parser_raw.ml" +# 6726 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined2 in let params : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = Obj.magic params in let virt : (Asttypes.virtual_flag) = Obj.magic virt in @@ -6602,40 +6733,41 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_bs_ in - let _v : (string Location.loc option * Parsetree.class_type_declaration list) = let _1 = - let a = - let attrs2 = - let _1 = _1_inlined3 in - -# 5388 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _1 = + let a = + let attrs2 = + let _1 = _1_inlined3 in + +# 5399 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 6613 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_attrs2_ = _endpos__1_inlined3_ in - let id = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 6745 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_attrs2_ = _endpos__1_inlined3_ in + let id = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 6625 "src/ocaml/preprocess/parser_raw.ml" - - in - let attrs1 = - let _1 = _1_inlined1 in - -# 5392 "src/ocaml/preprocess/parser_raw.mly" +# 6757 "src/ocaml/preprocess/parser_raw.ml" + + in + let attrs1 = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 6633 "src/ocaml/preprocess/parser_raw.ml" +# 6765 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos_attrs2_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos = _endpos_attrs2_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 2686 "src/ocaml/preprocess/parser_raw.mly" ( let attrs = attrs1 @ attrs2 in @@ -6644,20 +6776,21 @@ module Tables = struct ext, Ci.mk id csig ~virt ~params ~attrs ~loc ~docs ) -# 6648 "src/ocaml/preprocess/parser_raw.ml" +# 6780 "src/ocaml/preprocess/parser_raw.ml" + + in - in - # 1547 "src/ocaml/preprocess/parser_raw.mly" ( let (x, b) = a in x, b :: bs ) -# 6654 "src/ocaml/preprocess/parser_raw.ml" - - in - +# 6786 "src/ocaml/preprocess/parser_raw.ml" + + in + ( # 2674 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 6660 "src/ocaml/preprocess/parser_raw.ml" - in +# 6792 "src/ocaml/preprocess/parser_raw.ml" + : (string Location.loc option * Parsetree.class_type_declaration list)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -6679,9 +6812,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Longident.t) = -# 5160 "src/ocaml/preprocess/parser_raw.mly" +# 5171 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 6685 "src/ocaml/preprocess/parser_raw.ml" +# 6818 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -6710,23 +6843,25 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_xs_ in - let _v : (Parsetree.comprehension_clause) = let _2 = - let xs = -# 253 "" + let _v = + let _2 = + let xs = +# 264 "" ( List.rev xs ) -# 6718 "src/ocaml/preprocess/parser_raw.ml" - in - +# 6852 "src/ocaml/preprocess/parser_raw.ml" + in + # 1450 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 6723 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 3137 "src/ocaml/preprocess/parser_raw.mly" +# 6857 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 3148 "src/ocaml/preprocess/parser_raw.mly" ( Pcomp_for _2 ) -# 6729 "src/ocaml/preprocess/parser_raw.ml" - in +# 6863 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.comprehension_clause)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -6754,24 +6889,26 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined1_ in - let _v : (Parsetree.comprehension_clause) = let _2 = - let _1 = _1_inlined1 in - let _1 = + let _v = + let _2 = + let _1 = _1_inlined1 in + let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 6763 "src/ocaml/preprocess/parser_raw.ml" - in - -# 2981 "src/ocaml/preprocess/parser_raw.mly" +# 6899 "src/ocaml/preprocess/parser_raw.ml" + in + +# 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 6768 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 3139 "src/ocaml/preprocess/parser_raw.mly" +# 6904 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 3150 "src/ocaml/preprocess/parser_raw.mly" ( Pcomp_when _2 ) -# 6774 "src/ocaml/preprocess/parser_raw.ml" - in +# 6910 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.comprehension_clause)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -6820,49 +6957,50 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_xs_ in - let _v : (Parsetree.comprehension_clause) = let _2 = - let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in - let _1 = - let _3 = - let xs = - let xs = -# 253 "" + let _v = + let _2 = + let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in + let _1 = + let _3 = + let xs = + let xs = +# 264 "" ( List.rev xs ) -# 6832 "src/ocaml/preprocess/parser_raw.ml" - in - +# 6970 "src/ocaml/preprocess/parser_raw.ml" + in + # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 6837 "src/ocaml/preprocess/parser_raw.ml" +# 6975 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 3499 "src/ocaml/preprocess/parser_raw.mly" +# 3510 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 6843 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__3_ = _endpos_xs_ in - let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in +# 6981 "src/ocaml/preprocess/parser_raw.ml" -# 5392 "src/ocaml/preprocess/parser_raw.mly" + in + let _endpos__3_ = _endpos_xs_ in + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in + let _2 = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 6854 "src/ocaml/preprocess/parser_raw.ml" +# 6992 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 5405 "src/ocaml/preprocess/parser_raw.mly" +# 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 6860 "src/ocaml/preprocess/parser_raw.ml" +# 6998 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 2718 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in @@ -6876,20 +7014,21 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 6880 "src/ocaml/preprocess/parser_raw.ml" +# 7018 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 2981 "src/ocaml/preprocess/parser_raw.mly" +# 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 6886 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 3139 "src/ocaml/preprocess/parser_raw.mly" +# 7024 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 3150 "src/ocaml/preprocess/parser_raw.mly" ( Pcomp_when _2 ) -# 6892 "src/ocaml/preprocess/parser_raw.ml" - in +# 7030 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.comprehension_clause)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -6924,16 +7063,18 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in - let _v : (Parsetree.comprehension_clause_binding) = let _1 = -# 5392 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _1 = +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 6931 "src/ocaml/preprocess/parser_raw.ml" - in - -# 3118 "src/ocaml/preprocess/parser_raw.mly" +# 7071 "src/ocaml/preprocess/parser_raw.ml" + in + ( +# 3129 "src/ocaml/preprocess/parser_raw.mly" ( { pcomp_cb_pattern = _2 ; pcomp_cb_iterator = _3 ; pcomp_cb_attributes = _1 } ) -# 6936 "src/ocaml/preprocess/parser_raw.ml" - in +# 7076 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.comprehension_clause_binding)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -6982,45 +7123,46 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined2_ in - let _v : (Parsetree.comprehension_clause_binding) = let _5 = - let _1 = _1_inlined2 in - let _1 = + let _v = + let _5 = + let _1 = _1_inlined2 in + let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 6991 "src/ocaml/preprocess/parser_raw.ml" - in - -# 2981 "src/ocaml/preprocess/parser_raw.mly" +# 7133 "src/ocaml/preprocess/parser_raw.ml" + in + +# 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 6996 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__5_ = _endpos__1_inlined2_ in - let _2 = - let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos__1_inlined1_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 4640 "src/ocaml/preprocess/parser_raw.mly" +# 7138 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__5_ = _endpos__1_inlined2_ in + let _2 = + let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos__1_inlined1_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 4651 "src/ocaml/preprocess/parser_raw.mly" ( mkloc (Mode "local") (make_loc _sloc) ) -# 7008 "src/ocaml/preprocess/parser_raw.ml" - - in - let _startpos__2_ = _startpos__1_inlined1_ in - let _1 = -# 5392 "src/ocaml/preprocess/parser_raw.mly" +# 7150 "src/ocaml/preprocess/parser_raw.ml" + + in + let _startpos__2_ = _startpos__1_inlined1_ in + let _1 = +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 7015 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__5_ in - let _symbolstartpos = if _startpos__1_ != _endpos__1_ then - _startpos__1_ - else - _startpos__2_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 3125 "src/ocaml/preprocess/parser_raw.mly" +# 7157 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__5_ in + let _symbolstartpos = if _startpos__1_ != _endpos__1_ then + _startpos__1_ + else + _startpos__2_ in + let _sloc = (_symbolstartpos, _endpos) in + ( +# 3136 "src/ocaml/preprocess/parser_raw.mly" ( let expr = mkexp_constraint ~loc:_sloc ~exp:_5 ~cty:None ~modes:[_2] in @@ -7029,8 +7171,9 @@ module Tables = struct ; pcomp_cb_attributes = _1 } ) -# 7033 "src/ocaml/preprocess/parser_raw.ml" - in +# 7175 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.comprehension_clause_binding)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -7100,49 +7243,50 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_xs_ in - let _v : (Parsetree.comprehension_clause_binding) = let _5 = - let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined2_, _1_inlined4, _1_inlined3) in - let _1 = - let _3 = - let xs = - let xs = -# 253 "" + let _v = + let _5 = + let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined2_, _1_inlined4, _1_inlined3) in + let _1 = + let _3 = + let xs = + let xs = +# 264 "" ( List.rev xs ) -# 7112 "src/ocaml/preprocess/parser_raw.ml" - in - +# 7256 "src/ocaml/preprocess/parser_raw.ml" + in + # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 7117 "src/ocaml/preprocess/parser_raw.ml" +# 7261 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 3499 "src/ocaml/preprocess/parser_raw.mly" +# 3510 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 7123 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__3_ = _endpos_xs_ in - let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in +# 7267 "src/ocaml/preprocess/parser_raw.ml" -# 5392 "src/ocaml/preprocess/parser_raw.mly" + in + let _endpos__3_ = _endpos_xs_ in + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in + let _2 = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 7134 "src/ocaml/preprocess/parser_raw.ml" +# 7278 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 5405 "src/ocaml/preprocess/parser_raw.mly" +# 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 7140 "src/ocaml/preprocess/parser_raw.ml" +# 7284 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 2718 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in @@ -7156,41 +7300,41 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 7160 "src/ocaml/preprocess/parser_raw.ml" +# 7304 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 2981 "src/ocaml/preprocess/parser_raw.mly" +# 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 7166 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__5_ = _endpos_xs_ in - let _2 = - let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos__1_inlined1_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 4640 "src/ocaml/preprocess/parser_raw.mly" +# 7310 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__5_ = _endpos_xs_ in + let _2 = + let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos__1_inlined1_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 4651 "src/ocaml/preprocess/parser_raw.mly" ( mkloc (Mode "local") (make_loc _sloc) ) -# 7178 "src/ocaml/preprocess/parser_raw.ml" - - in - let _startpos__2_ = _startpos__1_inlined1_ in - let _1 = -# 5392 "src/ocaml/preprocess/parser_raw.mly" +# 7322 "src/ocaml/preprocess/parser_raw.ml" + + in + let _startpos__2_ = _startpos__1_inlined1_ in + let _1 = +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 7185 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__5_ in - let _symbolstartpos = if _startpos__1_ != _endpos__1_ then - _startpos__1_ - else - _startpos__2_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 3125 "src/ocaml/preprocess/parser_raw.mly" +# 7329 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__5_ in + let _symbolstartpos = if _startpos__1_ != _endpos__1_ then + _startpos__1_ + else + _startpos__2_ in + let _sloc = (_symbolstartpos, _endpos) in + ( +# 3136 "src/ocaml/preprocess/parser_raw.mly" ( let expr = mkexp_constraint ~loc:_sloc ~exp:_5 ~cty:None ~modes:[_2] in @@ -7199,8 +7343,9 @@ module Tables = struct ; pcomp_cb_attributes = _1 } ) -# 7203 "src/ocaml/preprocess/parser_raw.ml" - in +# 7347 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.comprehension_clause_binding)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -7249,45 +7394,46 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined2_ in - let _v : (Parsetree.comprehension_clause_binding) = let _5 = - let _1 = _1_inlined2 in - let _1 = + let _v = + let _5 = + let _1 = _1_inlined2 in + let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 7258 "src/ocaml/preprocess/parser_raw.ml" - in - -# 2981 "src/ocaml/preprocess/parser_raw.mly" +# 7404 "src/ocaml/preprocess/parser_raw.ml" + in + +# 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 7263 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__5_ = _endpos__1_inlined2_ in - let _2 = - let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos__1_inlined1_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 4642 "src/ocaml/preprocess/parser_raw.mly" +# 7409 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__5_ = _endpos__1_inlined2_ in + let _2 = + let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos__1_inlined1_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 4653 "src/ocaml/preprocess/parser_raw.mly" ( mkloc (Mode "unique") (make_loc _sloc) ) -# 7275 "src/ocaml/preprocess/parser_raw.ml" - - in - let _startpos__2_ = _startpos__1_inlined1_ in - let _1 = -# 5392 "src/ocaml/preprocess/parser_raw.mly" +# 7421 "src/ocaml/preprocess/parser_raw.ml" + + in + let _startpos__2_ = _startpos__1_inlined1_ in + let _1 = +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 7282 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__5_ in - let _symbolstartpos = if _startpos__1_ != _endpos__1_ then - _startpos__1_ - else - _startpos__2_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 3125 "src/ocaml/preprocess/parser_raw.mly" +# 7428 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__5_ in + let _symbolstartpos = if _startpos__1_ != _endpos__1_ then + _startpos__1_ + else + _startpos__2_ in + let _sloc = (_symbolstartpos, _endpos) in + ( +# 3136 "src/ocaml/preprocess/parser_raw.mly" ( let expr = mkexp_constraint ~loc:_sloc ~exp:_5 ~cty:None ~modes:[_2] in @@ -7296,8 +7442,9 @@ module Tables = struct ; pcomp_cb_attributes = _1 } ) -# 7300 "src/ocaml/preprocess/parser_raw.ml" - in +# 7446 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.comprehension_clause_binding)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -7367,49 +7514,50 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_xs_ in - let _v : (Parsetree.comprehension_clause_binding) = let _5 = - let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined2_, _1_inlined4, _1_inlined3) in - let _1 = - let _3 = - let xs = - let xs = -# 253 "" + let _v = + let _5 = + let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined2_, _1_inlined4, _1_inlined3) in + let _1 = + let _3 = + let xs = + let xs = +# 264 "" ( List.rev xs ) -# 7379 "src/ocaml/preprocess/parser_raw.ml" - in - +# 7527 "src/ocaml/preprocess/parser_raw.ml" + in + # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 7384 "src/ocaml/preprocess/parser_raw.ml" +# 7532 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 3499 "src/ocaml/preprocess/parser_raw.mly" +# 3510 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 7390 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__3_ = _endpos_xs_ in - let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in +# 7538 "src/ocaml/preprocess/parser_raw.ml" -# 5392 "src/ocaml/preprocess/parser_raw.mly" + in + let _endpos__3_ = _endpos_xs_ in + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in + let _2 = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 7401 "src/ocaml/preprocess/parser_raw.ml" +# 7549 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 5405 "src/ocaml/preprocess/parser_raw.mly" +# 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 7407 "src/ocaml/preprocess/parser_raw.ml" +# 7555 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 2718 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in @@ -7423,41 +7571,41 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 7427 "src/ocaml/preprocess/parser_raw.ml" +# 7575 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 2981 "src/ocaml/preprocess/parser_raw.mly" +# 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 7433 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__5_ = _endpos_xs_ in - let _2 = - let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos__1_inlined1_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 4642 "src/ocaml/preprocess/parser_raw.mly" +# 7581 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__5_ = _endpos_xs_ in + let _2 = + let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos__1_inlined1_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 4653 "src/ocaml/preprocess/parser_raw.mly" ( mkloc (Mode "unique") (make_loc _sloc) ) -# 7445 "src/ocaml/preprocess/parser_raw.ml" - - in - let _startpos__2_ = _startpos__1_inlined1_ in - let _1 = -# 5392 "src/ocaml/preprocess/parser_raw.mly" +# 7593 "src/ocaml/preprocess/parser_raw.ml" + + in + let _startpos__2_ = _startpos__1_inlined1_ in + let _1 = +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 7452 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__5_ in - let _symbolstartpos = if _startpos__1_ != _endpos__1_ then - _startpos__1_ - else - _startpos__2_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 3125 "src/ocaml/preprocess/parser_raw.mly" +# 7600 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__5_ in + let _symbolstartpos = if _startpos__1_ != _endpos__1_ then + _startpos__1_ + else + _startpos__2_ in + let _sloc = (_symbolstartpos, _endpos) in + ( +# 3136 "src/ocaml/preprocess/parser_raw.mly" ( let expr = mkexp_constraint ~loc:_sloc ~exp:_5 ~cty:None ~modes:[_2] in @@ -7466,8 +7614,9 @@ module Tables = struct ; pcomp_cb_attributes = _1 } ) -# 7470 "src/ocaml/preprocess/parser_raw.ml" - in +# 7618 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.comprehension_clause_binding)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -7516,45 +7665,46 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined2_ in - let _v : (Parsetree.comprehension_clause_binding) = let _5 = - let _1 = _1_inlined2 in - let _1 = + let _v = + let _5 = + let _1 = _1_inlined2 in + let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 7525 "src/ocaml/preprocess/parser_raw.ml" - in - -# 2981 "src/ocaml/preprocess/parser_raw.mly" +# 7675 "src/ocaml/preprocess/parser_raw.ml" + in + +# 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 7530 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__5_ = _endpos__1_inlined2_ in - let _2 = - let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos__1_inlined1_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 4644 "src/ocaml/preprocess/parser_raw.mly" +# 7680 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__5_ = _endpos__1_inlined2_ in + let _2 = + let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos__1_inlined1_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 4655 "src/ocaml/preprocess/parser_raw.mly" ( mkloc (Mode "once") (make_loc _sloc) ) -# 7542 "src/ocaml/preprocess/parser_raw.ml" - - in - let _startpos__2_ = _startpos__1_inlined1_ in - let _1 = -# 5392 "src/ocaml/preprocess/parser_raw.mly" +# 7692 "src/ocaml/preprocess/parser_raw.ml" + + in + let _startpos__2_ = _startpos__1_inlined1_ in + let _1 = +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 7549 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__5_ in - let _symbolstartpos = if _startpos__1_ != _endpos__1_ then - _startpos__1_ - else - _startpos__2_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 3125 "src/ocaml/preprocess/parser_raw.mly" +# 7699 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__5_ in + let _symbolstartpos = if _startpos__1_ != _endpos__1_ then + _startpos__1_ + else + _startpos__2_ in + let _sloc = (_symbolstartpos, _endpos) in + ( +# 3136 "src/ocaml/preprocess/parser_raw.mly" ( let expr = mkexp_constraint ~loc:_sloc ~exp:_5 ~cty:None ~modes:[_2] in @@ -7563,8 +7713,9 @@ module Tables = struct ; pcomp_cb_attributes = _1 } ) -# 7567 "src/ocaml/preprocess/parser_raw.ml" - in +# 7717 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.comprehension_clause_binding)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -7634,49 +7785,50 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_xs_ in - let _v : (Parsetree.comprehension_clause_binding) = let _5 = - let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined2_, _1_inlined4, _1_inlined3) in - let _1 = - let _3 = - let xs = - let xs = -# 253 "" + let _v = + let _5 = + let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined2_, _1_inlined4, _1_inlined3) in + let _1 = + let _3 = + let xs = + let xs = +# 264 "" ( List.rev xs ) -# 7646 "src/ocaml/preprocess/parser_raw.ml" - in - +# 7798 "src/ocaml/preprocess/parser_raw.ml" + in + # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 7651 "src/ocaml/preprocess/parser_raw.ml" +# 7803 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 3499 "src/ocaml/preprocess/parser_raw.mly" +# 3510 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 7657 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__3_ = _endpos_xs_ in - let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in +# 7809 "src/ocaml/preprocess/parser_raw.ml" -# 5392 "src/ocaml/preprocess/parser_raw.mly" + in + let _endpos__3_ = _endpos_xs_ in + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in + let _2 = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 7668 "src/ocaml/preprocess/parser_raw.ml" +# 7820 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 5405 "src/ocaml/preprocess/parser_raw.mly" +# 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 7674 "src/ocaml/preprocess/parser_raw.ml" +# 7826 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 2718 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in @@ -7690,41 +7842,41 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 7694 "src/ocaml/preprocess/parser_raw.ml" +# 7846 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 2981 "src/ocaml/preprocess/parser_raw.mly" +# 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 7700 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__5_ = _endpos_xs_ in - let _2 = - let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos__1_inlined1_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 4644 "src/ocaml/preprocess/parser_raw.mly" +# 7852 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__5_ = _endpos_xs_ in + let _2 = + let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos__1_inlined1_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 4655 "src/ocaml/preprocess/parser_raw.mly" ( mkloc (Mode "once") (make_loc _sloc) ) -# 7712 "src/ocaml/preprocess/parser_raw.ml" - - in - let _startpos__2_ = _startpos__1_inlined1_ in - let _1 = -# 5392 "src/ocaml/preprocess/parser_raw.mly" +# 7864 "src/ocaml/preprocess/parser_raw.ml" + + in + let _startpos__2_ = _startpos__1_inlined1_ in + let _1 = +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 7719 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__5_ in - let _symbolstartpos = if _startpos__1_ != _endpos__1_ then - _startpos__1_ - else - _startpos__2_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 3125 "src/ocaml/preprocess/parser_raw.mly" +# 7871 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__5_ in + let _symbolstartpos = if _startpos__1_ != _endpos__1_ then + _startpos__1_ + else + _startpos__2_ in + let _sloc = (_symbolstartpos, _endpos) in + ( +# 3136 "src/ocaml/preprocess/parser_raw.mly" ( let expr = mkexp_constraint ~loc:_sloc ~exp:_5 ~cty:None ~modes:[_2] in @@ -7733,8 +7885,9 @@ module Tables = struct ; pcomp_cb_attributes = _1 } ) -# 7737 "src/ocaml/preprocess/parser_raw.ml" - in +# 7889 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.comprehension_clause_binding)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -7776,37 +7929,39 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined2_ in - let _v : (Parsetree.comprehension_iterator) = let _4 = - let _1 = _1_inlined2 in - let _1 = + let _v = + let _4 = + let _1 = _1_inlined2 in + let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 7785 "src/ocaml/preprocess/parser_raw.ml" - in - -# 2981 "src/ocaml/preprocess/parser_raw.mly" +# 7939 "src/ocaml/preprocess/parser_raw.ml" + in + +# 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 7790 "src/ocaml/preprocess/parser_raw.ml" - - in - let _2 = - let _1 = _1_inlined1 in - let _1 = +# 7944 "src/ocaml/preprocess/parser_raw.ml" + + in + let _2 = + let _1 = _1_inlined1 in + let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 7798 "src/ocaml/preprocess/parser_raw.ml" - in - -# 2981 "src/ocaml/preprocess/parser_raw.mly" +# 7952 "src/ocaml/preprocess/parser_raw.ml" + in + +# 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 7803 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 3111 "src/ocaml/preprocess/parser_raw.mly" +# 7957 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 3122 "src/ocaml/preprocess/parser_raw.mly" ( Pcomp_range { start = _2 ; stop = _4 ; direction = _3 } ) -# 7809 "src/ocaml/preprocess/parser_raw.ml" - in +# 7963 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.comprehension_iterator)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -7869,49 +8024,50 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_xs_ in - let _v : (Parsetree.comprehension_iterator) = let _4 = - let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined2_, _1_inlined4, _1_inlined3) in - let _1 = - let _3 = - let xs = - let xs = -# 253 "" + let _v = + let _4 = + let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined2_, _1_inlined4, _1_inlined3) in + let _1 = + let _3 = + let xs = + let xs = +# 264 "" ( List.rev xs ) -# 7881 "src/ocaml/preprocess/parser_raw.ml" - in - +# 8037 "src/ocaml/preprocess/parser_raw.ml" + in + # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 7886 "src/ocaml/preprocess/parser_raw.ml" +# 8042 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 3499 "src/ocaml/preprocess/parser_raw.mly" +# 3510 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 7892 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__3_ = _endpos_xs_ in - let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in +# 8048 "src/ocaml/preprocess/parser_raw.ml" -# 5392 "src/ocaml/preprocess/parser_raw.mly" + in + let _endpos__3_ = _endpos_xs_ in + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in + let _2 = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 7903 "src/ocaml/preprocess/parser_raw.ml" +# 8059 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 5405 "src/ocaml/preprocess/parser_raw.mly" +# 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 7909 "src/ocaml/preprocess/parser_raw.ml" +# 8065 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 2718 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in @@ -7925,33 +8081,34 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 7929 "src/ocaml/preprocess/parser_raw.ml" +# 8085 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 2981 "src/ocaml/preprocess/parser_raw.mly" +# 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 7935 "src/ocaml/preprocess/parser_raw.ml" - - in - let _2 = - let _1 = _1_inlined1 in - let _1 = +# 8091 "src/ocaml/preprocess/parser_raw.ml" + + in + let _2 = + let _1 = _1_inlined1 in + let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 7943 "src/ocaml/preprocess/parser_raw.ml" - in - -# 2981 "src/ocaml/preprocess/parser_raw.mly" +# 8099 "src/ocaml/preprocess/parser_raw.ml" + in + +# 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 7948 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 3111 "src/ocaml/preprocess/parser_raw.mly" +# 8104 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 3122 "src/ocaml/preprocess/parser_raw.mly" ( Pcomp_range { start = _2 ; stop = _4 ; direction = _3 } ) -# 7954 "src/ocaml/preprocess/parser_raw.ml" - in +# 8110 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.comprehension_iterator)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -8014,62 +8171,63 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined4_ in - let _v : (Parsetree.comprehension_iterator) = let _4 = - let _1 = _1_inlined4 in - let _1 = + let _v = + let _4 = + let _1 = _1_inlined4 in + let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 8023 "src/ocaml/preprocess/parser_raw.ml" - in - -# 2981 "src/ocaml/preprocess/parser_raw.mly" +# 8181 "src/ocaml/preprocess/parser_raw.ml" + in + +# 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 8028 "src/ocaml/preprocess/parser_raw.ml" - - in - let _2 = - let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in - let _1 = - let _3 = - let xs = - let xs = -# 253 "" +# 8186 "src/ocaml/preprocess/parser_raw.ml" + + in + let _2 = + let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in + let _1 = + let _3 = + let xs = + let xs = +# 264 "" ( List.rev xs ) -# 8039 "src/ocaml/preprocess/parser_raw.ml" - in - +# 8197 "src/ocaml/preprocess/parser_raw.ml" + in + # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 8044 "src/ocaml/preprocess/parser_raw.ml" +# 8202 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 3499 "src/ocaml/preprocess/parser_raw.mly" +# 3510 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 8050 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__3_ = _endpos_xs_ in - let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in +# 8208 "src/ocaml/preprocess/parser_raw.ml" -# 5392 "src/ocaml/preprocess/parser_raw.mly" + in + let _endpos__3_ = _endpos_xs_ in + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in + let _2 = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 8061 "src/ocaml/preprocess/parser_raw.ml" +# 8219 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 5405 "src/ocaml/preprocess/parser_raw.mly" +# 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 8067 "src/ocaml/preprocess/parser_raw.ml" +# 8225 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 2718 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in @@ -8083,20 +8241,21 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 8087 "src/ocaml/preprocess/parser_raw.ml" +# 8245 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 2981 "src/ocaml/preprocess/parser_raw.mly" +# 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 8093 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 3111 "src/ocaml/preprocess/parser_raw.mly" +# 8251 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 3122 "src/ocaml/preprocess/parser_raw.mly" ( Pcomp_range { start = _2 ; stop = _4 ; direction = _3 } ) -# 8099 "src/ocaml/preprocess/parser_raw.ml" - in +# 8257 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.comprehension_iterator)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -8180,49 +8339,50 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_xs_inlined1_ in - let _v : (Parsetree.comprehension_iterator) = let _4 = - let (_endpos_xs_, _startpos__1_, xs, _1_inlined2, _1_inlined1) = (_endpos_xs_inlined1_, _startpos__1_inlined4_, xs_inlined1, _1_inlined6, _1_inlined5) in - let _1 = - let _3 = - let xs = - let xs = -# 253 "" + let _v = + let _4 = + let (_endpos_xs_, _startpos__1_, xs, _1_inlined2, _1_inlined1) = (_endpos_xs_inlined1_, _startpos__1_inlined4_, xs_inlined1, _1_inlined6, _1_inlined5) in + let _1 = + let _3 = + let xs = + let xs = +# 264 "" ( List.rev xs ) -# 8192 "src/ocaml/preprocess/parser_raw.ml" - in - +# 8352 "src/ocaml/preprocess/parser_raw.ml" + in + # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 8197 "src/ocaml/preprocess/parser_raw.ml" +# 8357 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 3499 "src/ocaml/preprocess/parser_raw.mly" +# 3510 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 8203 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__3_ = _endpos_xs_ in - let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in +# 8363 "src/ocaml/preprocess/parser_raw.ml" -# 5392 "src/ocaml/preprocess/parser_raw.mly" + in + let _endpos__3_ = _endpos_xs_ in + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in + let _2 = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 8214 "src/ocaml/preprocess/parser_raw.ml" +# 8374 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 5405 "src/ocaml/preprocess/parser_raw.mly" +# 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 8220 "src/ocaml/preprocess/parser_raw.ml" +# 8380 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 2718 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in @@ -8236,58 +8396,58 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 8240 "src/ocaml/preprocess/parser_raw.ml" +# 8400 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 2981 "src/ocaml/preprocess/parser_raw.mly" +# 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 8246 "src/ocaml/preprocess/parser_raw.ml" - - in - let _2 = - let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in - let _1 = - let _3 = - let xs = - let xs = -# 253 "" +# 8406 "src/ocaml/preprocess/parser_raw.ml" + + in + let _2 = + let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in + let _1 = + let _3 = + let xs = + let xs = +# 264 "" ( List.rev xs ) -# 8257 "src/ocaml/preprocess/parser_raw.ml" - in - +# 8417 "src/ocaml/preprocess/parser_raw.ml" + in + # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 8262 "src/ocaml/preprocess/parser_raw.ml" +# 8422 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 3499 "src/ocaml/preprocess/parser_raw.mly" +# 3510 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 8268 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__3_ = _endpos_xs_ in - let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in +# 8428 "src/ocaml/preprocess/parser_raw.ml" -# 5392 "src/ocaml/preprocess/parser_raw.mly" + in + let _endpos__3_ = _endpos_xs_ in + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in + let _2 = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 8279 "src/ocaml/preprocess/parser_raw.ml" +# 8439 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 5405 "src/ocaml/preprocess/parser_raw.mly" +# 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 8285 "src/ocaml/preprocess/parser_raw.ml" +# 8445 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 2718 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in @@ -8301,20 +8461,21 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 8305 "src/ocaml/preprocess/parser_raw.ml" +# 8465 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 2981 "src/ocaml/preprocess/parser_raw.mly" +# 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 8311 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 3111 "src/ocaml/preprocess/parser_raw.mly" +# 8471 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 3122 "src/ocaml/preprocess/parser_raw.mly" ( Pcomp_range { start = _2 ; stop = _4 ; direction = _3 } ) -# 8317 "src/ocaml/preprocess/parser_raw.ml" - in +# 8477 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.comprehension_iterator)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -8342,24 +8503,26 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined1_ in - let _v : (Parsetree.comprehension_iterator) = let _2 = - let _1 = _1_inlined1 in - let _1 = + let _v = + let _2 = + let _1 = _1_inlined1 in + let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 8351 "src/ocaml/preprocess/parser_raw.ml" - in - -# 2981 "src/ocaml/preprocess/parser_raw.mly" +# 8513 "src/ocaml/preprocess/parser_raw.ml" + in + +# 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 8356 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 3113 "src/ocaml/preprocess/parser_raw.mly" +# 8518 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 3124 "src/ocaml/preprocess/parser_raw.mly" ( Pcomp_in _2 ) -# 8362 "src/ocaml/preprocess/parser_raw.ml" - in +# 8524 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.comprehension_iterator)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -8408,49 +8571,50 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_xs_ in - let _v : (Parsetree.comprehension_iterator) = let _2 = - let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in - let _1 = - let _3 = - let xs = - let xs = -# 253 "" + let _v = + let _2 = + let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in + let _1 = + let _3 = + let xs = + let xs = +# 264 "" ( List.rev xs ) -# 8420 "src/ocaml/preprocess/parser_raw.ml" - in - +# 8584 "src/ocaml/preprocess/parser_raw.ml" + in + # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 8425 "src/ocaml/preprocess/parser_raw.ml" +# 8589 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 3499 "src/ocaml/preprocess/parser_raw.mly" +# 3510 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 8431 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__3_ = _endpos_xs_ in - let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in +# 8595 "src/ocaml/preprocess/parser_raw.ml" -# 5392 "src/ocaml/preprocess/parser_raw.mly" + in + let _endpos__3_ = _endpos_xs_ in + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in + let _2 = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 8442 "src/ocaml/preprocess/parser_raw.ml" +# 8606 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 5405 "src/ocaml/preprocess/parser_raw.mly" +# 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 8448 "src/ocaml/preprocess/parser_raw.ml" +# 8612 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 2718 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in @@ -8464,20 +8628,21 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 8468 "src/ocaml/preprocess/parser_raw.ml" +# 8632 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 2981 "src/ocaml/preprocess/parser_raw.mly" +# 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 8474 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 3113 "src/ocaml/preprocess/parser_raw.mly" +# 8638 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 3124 "src/ocaml/preprocess/parser_raw.mly" ( Pcomp_in _2 ) -# 8480 "src/ocaml/preprocess/parser_raw.ml" - in +# 8644 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.comprehension_iterator)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -8499,9 +8664,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Parsetree.constant) = -# 5016 "src/ocaml/preprocess/parser_raw.mly" +# 5027 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 8505 "src/ocaml/preprocess/parser_raw.ml" +# 8670 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -8524,9 +8689,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Parsetree.constant) = -# 5017 "src/ocaml/preprocess/parser_raw.mly" +# 5028 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 8530 "src/ocaml/preprocess/parser_raw.ml" +# 8695 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -8556,9 +8721,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (string) = -# 5105 "src/ocaml/preprocess/parser_raw.mly" +# 5116 "src/ocaml/preprocess/parser_raw.mly" ( "[]" ) -# 8562 "src/ocaml/preprocess/parser_raw.ml" +# 8727 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -8588,9 +8753,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (string) = -# 5106 "src/ocaml/preprocess/parser_raw.mly" +# 5117 "src/ocaml/preprocess/parser_raw.mly" ( "()" ) -# 8594 "src/ocaml/preprocess/parser_raw.ml" +# 8759 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -8613,9 +8778,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5107 "src/ocaml/preprocess/parser_raw.mly" +# 5118 "src/ocaml/preprocess/parser_raw.mly" ( "false" ) -# 8619 "src/ocaml/preprocess/parser_raw.ml" +# 8784 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -8638,9 +8803,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5108 "src/ocaml/preprocess/parser_raw.mly" +# 5119 "src/ocaml/preprocess/parser_raw.mly" ( "true" ) -# 8644 "src/ocaml/preprocess/parser_raw.ml" +# 8809 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -8661,15 +8826,15 @@ module Tables = struct let _1 : ( # 1155 "src/ocaml/preprocess/parser_raw.mly" (string) -# 8665 "src/ocaml/preprocess/parser_raw.ml" +# 8830 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5111 "src/ocaml/preprocess/parser_raw.mly" +# 5122 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 8673 "src/ocaml/preprocess/parser_raw.ml" +# 8838 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -8705,16 +8870,18 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in - let _v : (string) = let _1 = -# 5102 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _1 = +# 5113 "src/ocaml/preprocess/parser_raw.mly" ( "::" ) -# 8712 "src/ocaml/preprocess/parser_raw.ml" - in - -# 5112 "src/ocaml/preprocess/parser_raw.mly" +# 8878 "src/ocaml/preprocess/parser_raw.ml" + in + ( +# 5123 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 8717 "src/ocaml/preprocess/parser_raw.ml" - in +# 8883 "src/ocaml/preprocess/parser_raw.ml" + : (string)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -8736,9 +8903,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5113 "src/ocaml/preprocess/parser_raw.mly" +# 5124 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 8742 "src/ocaml/preprocess/parser_raw.ml" +# 8909 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -8761,9 +8928,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Longident.t) = -# 5116 "src/ocaml/preprocess/parser_raw.mly" +# 5127 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 8767 "src/ocaml/preprocess/parser_raw.ml" +# 8934 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -8813,16 +8980,18 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in - let _v : (Longident.t) = let _3 = -# 5102 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _3 = +# 5113 "src/ocaml/preprocess/parser_raw.mly" ( "::" ) -# 8820 "src/ocaml/preprocess/parser_raw.ml" - in - -# 5117 "src/ocaml/preprocess/parser_raw.mly" +# 8988 "src/ocaml/preprocess/parser_raw.ml" + in + ( +# 5128 "src/ocaml/preprocess/parser_raw.mly" ( Ldot(_1,_3) ) -# 8825 "src/ocaml/preprocess/parser_raw.ml" - in +# 8993 "src/ocaml/preprocess/parser_raw.ml" + : (Longident.t)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -8857,16 +9026,18 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in - let _v : (Longident.t) = let _1 = -# 5102 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _1 = +# 5113 "src/ocaml/preprocess/parser_raw.mly" ( "::" ) -# 8864 "src/ocaml/preprocess/parser_raw.ml" - in - -# 5118 "src/ocaml/preprocess/parser_raw.mly" +# 9034 "src/ocaml/preprocess/parser_raw.ml" + in + ( +# 5129 "src/ocaml/preprocess/parser_raw.mly" ( Lident _1 ) -# 8869 "src/ocaml/preprocess/parser_raw.ml" - in +# 9039 "src/ocaml/preprocess/parser_raw.ml" + : (Longident.t)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -8888,9 +9059,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Longident.t) = -# 5119 "src/ocaml/preprocess/parser_raw.mly" +# 5130 "src/ocaml/preprocess/parser_raw.mly" ( Lident _1 ) -# 8894 "src/ocaml/preprocess/parser_raw.ml" +# 9065 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -8929,7 +9100,7 @@ module Tables = struct let _v : (Parsetree.core_type * Parsetree.core_type) = # 2630 "src/ocaml/preprocess/parser_raw.mly" ( _1, _3 ) -# 8933 "src/ocaml/preprocess/parser_raw.ml" +# 9104 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -8958,54 +9129,56 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_cty_ in let _endpos = _endpos_m1_ in - let _v : (Parsetree.constructor_arguments) = let tys = - let xs = + let _v = + let tys = let xs = - let x = - let gbl = -# 5250 "src/ocaml/preprocess/parser_raw.mly" + let xs = + let x = + let gbl = +# 5261 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 8969 "src/ocaml/preprocess/parser_raw.ml" - in - let (_endpos_gbl_, _startpos_gbl_) = (_endpos__0_, _endpos__0_) in - let _endpos = _endpos_m1_ in - let _symbolstartpos = if _startpos_gbl_ != _endpos_gbl_ then - _startpos_gbl_ - else - _startpos_cty_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 4334 "src/ocaml/preprocess/parser_raw.mly" +# 9141 "src/ocaml/preprocess/parser_raw.ml" + in + let (_endpos_gbl_, _startpos_gbl_) = (_endpos__0_, _endpos__0_) in + let _endpos = _endpos_m1_ in + let _symbolstartpos = if _startpos_gbl_ != _endpos_gbl_ then + _startpos_gbl_ + else + _startpos_cty_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 4345 "src/ocaml/preprocess/parser_raw.mly" ( let modalities = gbl @ m1 in Type.constructor_arg cty ~modalities ~loc:(make_loc _sloc) ) -# 8984 "src/ocaml/preprocess/parser_raw.ml" +# 9156 "src/ocaml/preprocess/parser_raw.ml" + + in - in - # 1434 "src/ocaml/preprocess/parser_raw.mly" ( [ x ] ) -# 8990 "src/ocaml/preprocess/parser_raw.ml" +# 9162 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 253 "" +# 264 "" ( List.rev xs ) -# 8996 "src/ocaml/preprocess/parser_raw.ml" +# 9168 "src/ocaml/preprocess/parser_raw.ml" + + in - in - # 1454 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 9002 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4342 "src/ocaml/preprocess/parser_raw.mly" +# 9174 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4353 "src/ocaml/preprocess/parser_raw.mly" ( Pcstr_tuple tys ) -# 9008 "src/ocaml/preprocess/parser_raw.ml" - in +# 9180 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.constructor_arguments)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -9040,59 +9213,61 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_m1_ in - let _v : (Parsetree.constructor_arguments) = let tys = - let xs = + let _v = + let tys = let xs = - let x = - let gbl = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 5251 "src/ocaml/preprocess/parser_raw.mly" + let xs = + let x = + let gbl = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 5262 "src/ocaml/preprocess/parser_raw.mly" ( [ mkloc (Modality "global") (make_loc _sloc)] ) -# 9055 "src/ocaml/preprocess/parser_raw.ml" +# 9229 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos_gbl_, _startpos_gbl_) = (_endpos__1_, _startpos__1_) in + let _endpos = _endpos_m1_ in + let _symbolstartpos = if _startpos_gbl_ != _endpos_gbl_ then + _startpos_gbl_ + else + _startpos_cty_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let (_endpos_gbl_, _startpos_gbl_) = (_endpos__1_, _startpos__1_) in - let _endpos = _endpos_m1_ in - let _symbolstartpos = if _startpos_gbl_ != _endpos_gbl_ then - _startpos_gbl_ - else - _startpos_cty_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 4334 "src/ocaml/preprocess/parser_raw.mly" +# 4345 "src/ocaml/preprocess/parser_raw.mly" ( let modalities = gbl @ m1 in Type.constructor_arg cty ~modalities ~loc:(make_loc _sloc) ) -# 9071 "src/ocaml/preprocess/parser_raw.ml" +# 9245 "src/ocaml/preprocess/parser_raw.ml" + + in - in - # 1434 "src/ocaml/preprocess/parser_raw.mly" ( [ x ] ) -# 9077 "src/ocaml/preprocess/parser_raw.ml" +# 9251 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 253 "" +# 264 "" ( List.rev xs ) -# 9083 "src/ocaml/preprocess/parser_raw.ml" +# 9257 "src/ocaml/preprocess/parser_raw.ml" + + in - in - # 1454 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 9089 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4342 "src/ocaml/preprocess/parser_raw.mly" +# 9263 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4353 "src/ocaml/preprocess/parser_raw.mly" ( Pcstr_tuple tys ) -# 9095 "src/ocaml/preprocess/parser_raw.ml" - in +# 9269 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.constructor_arguments)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -9134,55 +9309,57 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_xs_ in let _endpos = _endpos_m1_ in - let _v : (Parsetree.constructor_arguments) = let tys = - let xs = + let _v = + let tys = let xs = - let x = - let _endpos__0_ = _endpos__2_ in - let gbl = -# 5250 "src/ocaml/preprocess/parser_raw.mly" + let xs = + let x = + let _endpos__0_ = _endpos__2_ in + let gbl = +# 5261 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 9146 "src/ocaml/preprocess/parser_raw.ml" - in - let (_endpos_gbl_, _startpos_gbl_) = (_endpos__0_, _endpos__0_) in - let _endpos = _endpos_m1_ in - let _symbolstartpos = if _startpos_gbl_ != _endpos_gbl_ then - _startpos_gbl_ - else - _startpos_cty_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 4334 "src/ocaml/preprocess/parser_raw.mly" +# 9322 "src/ocaml/preprocess/parser_raw.ml" + in + let (_endpos_gbl_, _startpos_gbl_) = (_endpos__0_, _endpos__0_) in + let _endpos = _endpos_m1_ in + let _symbolstartpos = if _startpos_gbl_ != _endpos_gbl_ then + _startpos_gbl_ + else + _startpos_cty_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 4345 "src/ocaml/preprocess/parser_raw.mly" ( let modalities = gbl @ m1 in Type.constructor_arg cty ~modalities ~loc:(make_loc _sloc) ) -# 9161 "src/ocaml/preprocess/parser_raw.ml" +# 9337 "src/ocaml/preprocess/parser_raw.ml" + + in - in - # 1438 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 9167 "src/ocaml/preprocess/parser_raw.ml" +# 9343 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 253 "" +# 264 "" ( List.rev xs ) -# 9173 "src/ocaml/preprocess/parser_raw.ml" +# 9349 "src/ocaml/preprocess/parser_raw.ml" + + in - in - # 1454 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 9179 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4342 "src/ocaml/preprocess/parser_raw.mly" +# 9355 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4353 "src/ocaml/preprocess/parser_raw.mly" ( Pcstr_tuple tys ) -# 9185 "src/ocaml/preprocess/parser_raw.ml" - in +# 9361 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.constructor_arguments)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -9231,59 +9408,61 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_xs_ in let _endpos = _endpos_m1_ in - let _v : (Parsetree.constructor_arguments) = let tys = - let xs = + let _v = + let tys = let xs = - let x = - let gbl = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 5251 "src/ocaml/preprocess/parser_raw.mly" + let xs = + let x = + let gbl = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 5262 "src/ocaml/preprocess/parser_raw.mly" ( [ mkloc (Modality "global") (make_loc _sloc)] ) -# 9246 "src/ocaml/preprocess/parser_raw.ml" +# 9424 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos_gbl_, _startpos_gbl_) = (_endpos__1_, _startpos__1_) in + let _endpos = _endpos_m1_ in + let _symbolstartpos = if _startpos_gbl_ != _endpos_gbl_ then + _startpos_gbl_ + else + _startpos_cty_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let (_endpos_gbl_, _startpos_gbl_) = (_endpos__1_, _startpos__1_) in - let _endpos = _endpos_m1_ in - let _symbolstartpos = if _startpos_gbl_ != _endpos_gbl_ then - _startpos_gbl_ - else - _startpos_cty_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 4334 "src/ocaml/preprocess/parser_raw.mly" +# 4345 "src/ocaml/preprocess/parser_raw.mly" ( let modalities = gbl @ m1 in Type.constructor_arg cty ~modalities ~loc:(make_loc _sloc) ) -# 9262 "src/ocaml/preprocess/parser_raw.ml" +# 9440 "src/ocaml/preprocess/parser_raw.ml" + + in - in - # 1438 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 9268 "src/ocaml/preprocess/parser_raw.ml" +# 9446 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 253 "" +# 264 "" ( List.rev xs ) -# 9274 "src/ocaml/preprocess/parser_raw.ml" +# 9452 "src/ocaml/preprocess/parser_raw.ml" + + in - in - # 1454 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 9280 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4342 "src/ocaml/preprocess/parser_raw.mly" +# 9458 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4353 "src/ocaml/preprocess/parser_raw.mly" ( Pcstr_tuple tys ) -# 9286 "src/ocaml/preprocess/parser_raw.ml" - in +# 9464 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.constructor_arguments)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -9319,9 +9498,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : (Parsetree.constructor_arguments) = -# 4344 "src/ocaml/preprocess/parser_raw.mly" +# 4355 "src/ocaml/preprocess/parser_raw.mly" ( Pcstr_record _2 ) -# 9325 "src/ocaml/preprocess/parser_raw.ml" +# 9504 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -9344,9 +9523,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Parsetree.constructor_declaration list) = -# 4251 "src/ocaml/preprocess/parser_raw.mly" +# 4262 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 9350 "src/ocaml/preprocess/parser_raw.ml" +# 9529 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -9368,16 +9547,18 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_xs_ in let _endpos = _endpos_xs_ in - let _v : (Parsetree.constructor_declaration list) = let cs = + let _v = + let cs = # 1539 "src/ocaml/preprocess/parser_raw.mly" ( List.rev xs ) -# 9375 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4253 "src/ocaml/preprocess/parser_raw.mly" +# 9555 "src/ocaml/preprocess/parser_raw.ml" + in + ( +# 4264 "src/ocaml/preprocess/parser_raw.mly" ( cs ) -# 9380 "src/ocaml/preprocess/parser_raw.ml" - in +# 9560 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.constructor_declaration list)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -9398,16 +9579,18 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v : (Parsetree.core_type) = let _1 = -# 4510 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _1 = +# 4521 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 9405 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4500 "src/ocaml/preprocess/parser_raw.mly" +# 9587 "src/ocaml/preprocess/parser_raw.ml" + in + ( +# 4511 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 9410 "src/ocaml/preprocess/parser_raw.ml" - in +# 9592 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -9436,9 +9619,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Parsetree.core_type) = -# 4502 "src/ocaml/preprocess/parser_raw.mly" +# 4513 "src/ocaml/preprocess/parser_raw.mly" ( Typ.attr _1 _2 ) -# 9442 "src/ocaml/preprocess/parser_raw.ml" +# 9625 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -9461,9 +9644,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Parsetree.core_type) = -# 4860 "src/ocaml/preprocess/parser_raw.mly" +# 4871 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 9467 "src/ocaml/preprocess/parser_raw.ml" +# 9650 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -9486,9 +9669,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Parsetree.core_type) = -# 4860 "src/ocaml/preprocess/parser_raw.mly" +# 4871 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 9492 "src/ocaml/preprocess/parser_raw.ml" +# 9675 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -9511,9 +9694,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Parsetree.core_type) = -# 4860 "src/ocaml/preprocess/parser_raw.mly" +# 4871 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 9517 "src/ocaml/preprocess/parser_raw.ml" +# 9700 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -9550,9 +9733,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : (Parsetree.core_type) = -# 4811 "src/ocaml/preprocess/parser_raw.mly" +# 4822 "src/ocaml/preprocess/parser_raw.mly" ( type_ ) -# 9556 "src/ocaml/preprocess/parser_raw.ml" +# 9739 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -9609,43 +9792,45 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__5_ in - let _v : (Parsetree.core_type) = let package_type = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined3_, _startpos__1_inlined3_, _1_inlined3) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 4925 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let package_type = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined3_, _startpos__1_inlined3_, _1_inlined3) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 4936 "src/ocaml/preprocess/parser_raw.mly" ( let (lid, cstrs, attrs) = package_type_of_module_type _1 in let descr = Ptyp_package (lid, cstrs) in mktyp ~loc:_sloc ~attrs descr ) -# 9623 "src/ocaml/preprocess/parser_raw.ml" - - in - let attrs = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in +# 9807 "src/ocaml/preprocess/parser_raw.ml" -# 5392 "src/ocaml/preprocess/parser_raw.mly" + in + let attrs = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in + let _2 = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 9633 "src/ocaml/preprocess/parser_raw.ml" +# 9817 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 5405 "src/ocaml/preprocess/parser_raw.mly" +# 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 9639 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__5_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 4813 "src/ocaml/preprocess/parser_raw.mly" +# 9823 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__5_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + ( +# 4824 "src/ocaml/preprocess/parser_raw.mly" ( wrap_typ_attrs ~loc:_sloc (reloc_typ ~loc:_sloc package_type) attrs ) -# 9648 "src/ocaml/preprocess/parser_raw.ml" - in +# 9832 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -9680,27 +9865,29 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in - let _v : (Parsetree.core_type) = let _1 = - let _1 = -# 4816 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _1 = + let _1 = +# 4827 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_variant([ field ], Closed, None) ) -# 9688 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos__1_ = _endpos__3_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 9874 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__3_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 9697 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4835 "src/ocaml/preprocess/parser_raw.mly" +# 9883 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4846 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 9703 "src/ocaml/preprocess/parser_raw.ml" - in +# 9889 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -9742,48 +9929,50 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in - let _v : (Parsetree.core_type) = let _1 = + let _v = let _1 = - let fields = - let _1 = - let xs = -# 253 "" + let _1 = + let fields = + let _1 = + let xs = +# 264 "" ( List.rev xs ) -# 9753 "src/ocaml/preprocess/parser_raw.ml" - in - +# 9941 "src/ocaml/preprocess/parser_raw.ml" + in + # 1450 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 9758 "src/ocaml/preprocess/parser_raw.ml" +# 9946 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 4942 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 9952 "src/ocaml/preprocess/parser_raw.ml" in -# 4931 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 9764 "src/ocaml/preprocess/parser_raw.ml" +# 4829 "src/ocaml/preprocess/parser_raw.mly" + ( Ptyp_variant(fields, Closed, None) ) +# 9958 "src/ocaml/preprocess/parser_raw.ml" in + let _endpos__1_ = _endpos__4_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 4818 "src/ocaml/preprocess/parser_raw.mly" - ( Ptyp_variant(fields, Closed, None) ) -# 9770 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__4_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 9780 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4835 "src/ocaml/preprocess/parser_raw.mly" +# 9968 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4846 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 9786 "src/ocaml/preprocess/parser_raw.ml" - in +# 9974 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -9832,48 +10021,50 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__5_ in - let _v : (Parsetree.core_type) = let _1 = + let _v = let _1 = - let fields = - let _1 = - let xs = -# 253 "" + let _1 = + let fields = + let _1 = + let xs = +# 264 "" ( List.rev xs ) -# 9843 "src/ocaml/preprocess/parser_raw.ml" - in - +# 10033 "src/ocaml/preprocess/parser_raw.ml" + in + # 1450 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 9848 "src/ocaml/preprocess/parser_raw.ml" +# 10038 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 4942 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 10044 "src/ocaml/preprocess/parser_raw.ml" in -# 4931 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 9854 "src/ocaml/preprocess/parser_raw.ml" +# 4831 "src/ocaml/preprocess/parser_raw.mly" + ( Ptyp_variant(field :: fields, Closed, None) ) +# 10050 "src/ocaml/preprocess/parser_raw.ml" in + let _endpos__1_ = _endpos__5_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 4820 "src/ocaml/preprocess/parser_raw.mly" - ( Ptyp_variant(field :: fields, Closed, None) ) -# 9860 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 9870 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4835 "src/ocaml/preprocess/parser_raw.mly" +# 10060 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4846 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 9876 "src/ocaml/preprocess/parser_raw.ml" - in +# 10066 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -9915,48 +10106,50 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in - let _v : (Parsetree.core_type) = let _1 = + let _v = let _1 = - let fields = - let _1 = - let xs = -# 253 "" + let _1 = + let fields = + let _1 = + let xs = +# 264 "" ( List.rev xs ) -# 9926 "src/ocaml/preprocess/parser_raw.ml" - in - +# 10118 "src/ocaml/preprocess/parser_raw.ml" + in + # 1450 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 9931 "src/ocaml/preprocess/parser_raw.ml" +# 10123 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 4942 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 10129 "src/ocaml/preprocess/parser_raw.ml" in -# 4931 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 9937 "src/ocaml/preprocess/parser_raw.ml" +# 4833 "src/ocaml/preprocess/parser_raw.mly" + ( Ptyp_variant(fields, Open, None) ) +# 10135 "src/ocaml/preprocess/parser_raw.ml" in + let _endpos__1_ = _endpos__4_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 4822 "src/ocaml/preprocess/parser_raw.mly" - ( Ptyp_variant(fields, Open, None) ) -# 9943 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__4_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 9953 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4835 "src/ocaml/preprocess/parser_raw.mly" +# 10145 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4846 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 9959 "src/ocaml/preprocess/parser_raw.ml" - in +# 10151 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -9984,27 +10177,29 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in - let _v : (Parsetree.core_type) = let _1 = - let _1 = -# 4824 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _1 = + let _1 = +# 4835 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_variant([], Open, None) ) -# 9992 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos__1_ = _endpos__2_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 10186 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__2_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 10001 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4835 "src/ocaml/preprocess/parser_raw.mly" +# 10195 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4846 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 10007 "src/ocaml/preprocess/parser_raw.ml" - in +# 10201 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -10046,48 +10241,50 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in - let _v : (Parsetree.core_type) = let _1 = + let _v = let _1 = - let fields = - let _1 = - let xs = -# 253 "" + let _1 = + let fields = + let _1 = + let xs = +# 264 "" ( List.rev xs ) -# 10057 "src/ocaml/preprocess/parser_raw.ml" - in - +# 10253 "src/ocaml/preprocess/parser_raw.ml" + in + # 1450 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 10062 "src/ocaml/preprocess/parser_raw.ml" +# 10258 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 4942 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 10264 "src/ocaml/preprocess/parser_raw.ml" in -# 4931 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 10068 "src/ocaml/preprocess/parser_raw.ml" +# 4837 "src/ocaml/preprocess/parser_raw.mly" + ( Ptyp_variant(fields, Closed, Some []) ) +# 10270 "src/ocaml/preprocess/parser_raw.ml" in + let _endpos__1_ = _endpos__4_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 4826 "src/ocaml/preprocess/parser_raw.mly" - ( Ptyp_variant(fields, Closed, Some []) ) -# 10074 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__4_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 10084 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4835 "src/ocaml/preprocess/parser_raw.mly" +# 10280 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4846 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 10090 "src/ocaml/preprocess/parser_raw.ml" - in +# 10286 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -10143,68 +10340,70 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__6_ in - let _v : (Parsetree.core_type) = let _1 = + let _v = let _1 = - let tags = - let xs = xs_inlined1 in - let _1 = - let xs = -# 253 "" + let _1 = + let tags = + let xs = xs_inlined1 in + let _1 = + let xs = +# 264 "" ( List.rev xs ) -# 10155 "src/ocaml/preprocess/parser_raw.ml" - in - +# 10353 "src/ocaml/preprocess/parser_raw.ml" + in + # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 10160 "src/ocaml/preprocess/parser_raw.ml" +# 10358 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 4959 "src/ocaml/preprocess/parser_raw.mly" +# 4970 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 10166 "src/ocaml/preprocess/parser_raw.ml" - - in - let fields = - let _1 = - let xs = -# 253 "" - ( List.rev xs ) -# 10174 "src/ocaml/preprocess/parser_raw.ml" - in +# 10364 "src/ocaml/preprocess/parser_raw.ml" + in + let fields = + let _1 = + let xs = +# 264 "" + ( List.rev xs ) +# 10372 "src/ocaml/preprocess/parser_raw.ml" + in + # 1450 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 10179 "src/ocaml/preprocess/parser_raw.ml" +# 10377 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 4942 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 10383 "src/ocaml/preprocess/parser_raw.ml" in -# 4931 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 10185 "src/ocaml/preprocess/parser_raw.ml" +# 4842 "src/ocaml/preprocess/parser_raw.mly" + ( Ptyp_variant(fields, Closed, Some tags) ) +# 10389 "src/ocaml/preprocess/parser_raw.ml" in + let _endpos__1_ = _endpos__6_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 4831 "src/ocaml/preprocess/parser_raw.mly" - ( Ptyp_variant(fields, Closed, Some tags) ) -# 10191 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__6_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 10201 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4835 "src/ocaml/preprocess/parser_raw.mly" +# 10399 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4846 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 10207 "src/ocaml/preprocess/parser_raw.ml" - in +# 10405 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -10253,48 +10452,50 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in - let _v : (Parsetree.core_type) = let _1 = + let _v = let _1 = - let _2 = - let ltys = - let xs = -# 253 "" + let _1 = + let _2 = + let ltys = + let xs = +# 264 "" ( List.rev xs ) -# 10264 "src/ocaml/preprocess/parser_raw.ml" - in - +# 10464 "src/ocaml/preprocess/parser_raw.ml" + in + # 1450 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 10269 "src/ocaml/preprocess/parser_raw.ml" +# 10469 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 4775 "src/ocaml/preprocess/parser_raw.mly" + ( (None, ty1) :: ltys ) +# 10475 "src/ocaml/preprocess/parser_raw.ml" in -# 4764 "src/ocaml/preprocess/parser_raw.mly" - ( (None, ty1) :: ltys ) -# 10275 "src/ocaml/preprocess/parser_raw.ml" +# 4844 "src/ocaml/preprocess/parser_raw.mly" + ( Ptyp_unboxed_tuple _2 ) +# 10481 "src/ocaml/preprocess/parser_raw.ml" in + let _endpos__1_ = _endpos__3_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 4833 "src/ocaml/preprocess/parser_raw.mly" - ( Ptyp_unboxed_tuple _2 ) -# 10281 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__3_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 10291 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4835 "src/ocaml/preprocess/parser_raw.mly" +# 10491 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4846 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 10297 "src/ocaml/preprocess/parser_raw.ml" - in +# 10497 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -10355,54 +10556,56 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 10359 "src/ocaml/preprocess/parser_raw.ml" +# 10560 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in - let _v : (Parsetree.core_type) = let _1 = + let _v = let _1 = - let _2 = - let ltys = - let xs = -# 253 "" + let _1 = + let _2 = + let ltys = + let xs = +# 264 "" ( List.rev xs ) -# 10372 "src/ocaml/preprocess/parser_raw.ml" - in - +# 10574 "src/ocaml/preprocess/parser_raw.ml" + in + # 1450 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 10377 "src/ocaml/preprocess/parser_raw.ml" +# 10579 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 4781 "src/ocaml/preprocess/parser_raw.mly" + ( (Some label, ty1) :: ltys ) +# 10585 "src/ocaml/preprocess/parser_raw.ml" in -# 4770 "src/ocaml/preprocess/parser_raw.mly" - ( (Some label, ty1) :: ltys ) -# 10383 "src/ocaml/preprocess/parser_raw.ml" +# 4844 "src/ocaml/preprocess/parser_raw.mly" + ( Ptyp_unboxed_tuple _2 ) +# 10591 "src/ocaml/preprocess/parser_raw.ml" in + let _endpos__1_ = _endpos__3_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 4833 "src/ocaml/preprocess/parser_raw.mly" - ( Ptyp_unboxed_tuple _2 ) -# 10389 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__3_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 10399 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4835 "src/ocaml/preprocess/parser_raw.mly" +# 10601 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4846 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 10405 "src/ocaml/preprocess/parser_raw.ml" - in +# 10607 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -10424,9 +10627,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Asttypes.direction_flag) = -# 5226 "src/ocaml/preprocess/parser_raw.mly" +# 5237 "src/ocaml/preprocess/parser_raw.mly" ( Upto ) -# 10430 "src/ocaml/preprocess/parser_raw.ml" +# 10633 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -10449,9 +10652,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Asttypes.direction_flag) = -# 5227 "src/ocaml/preprocess/parser_raw.mly" +# 5238 "src/ocaml/preprocess/parser_raw.mly" ( Downto ) -# 10455 "src/ocaml/preprocess/parser_raw.ml" +# 10658 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -10467,9 +10670,9 @@ module Tables = struct let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in let _endpos = _startpos in let _v : (string Location.loc option) = -# 5395 "src/ocaml/preprocess/parser_raw.mly" +# 5406 "src/ocaml/preprocess/parser_raw.mly" ( None ) -# 10473 "src/ocaml/preprocess/parser_raw.ml" +# 10676 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -10499,9 +10702,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (string Location.loc option) = -# 5396 "src/ocaml/preprocess/parser_raw.mly" +# 5407 "src/ocaml/preprocess/parser_raw.mly" ( Some _2 ) -# 10505 "src/ocaml/preprocess/parser_raw.ml" +# 10708 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -10545,9 +10748,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in let _v : (Parsetree.extension) = -# 5408 "src/ocaml/preprocess/parser_raw.mly" +# 5419 "src/ocaml/preprocess/parser_raw.mly" ( (_2, _3) ) -# 10551 "src/ocaml/preprocess/parser_raw.ml" +# 10754 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -10568,19 +10771,21 @@ module Tables = struct let _1 : ( # 1143 "src/ocaml/preprocess/parser_raw.mly" (string * Location.t * string * Location.t * string option) -# 10572 "src/ocaml/preprocess/parser_raw.ml" +# 10775 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v : (Parsetree.extension) = let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 5410 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + ( +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( mk_quotedext ~loc:_sloc _1 ) -# 10583 "src/ocaml/preprocess/parser_raw.ml" - in +# 10787 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.extension)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -10629,46 +10834,48 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined3_ in - let _v : (Parsetree.extension_constructor) = let attrs = - let _1 = _1_inlined3 in - -# 5392 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let attrs = + let _1 = _1_inlined3 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 10638 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_attrs_ = _endpos__1_inlined3_ in - let lid = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 10844 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_attrs_ = _endpos__1_inlined3_ in + let lid = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 10650 "src/ocaml/preprocess/parser_raw.ml" - - in - let cid = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 10856 "src/ocaml/preprocess/parser_raw.ml" + + in + let cid = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 10661 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos_attrs_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 4416 "src/ocaml/preprocess/parser_raw.mly" +# 10867 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos_attrs_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + ( +# 4427 "src/ocaml/preprocess/parser_raw.mly" ( let info = symbol_info _endpos in Te.rebind cid lid ~attrs ~loc:(make_loc _sloc) ~info ) -# 10671 "src/ocaml/preprocess/parser_raw.ml" - in +# 10877 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.extension_constructor)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -10710,51 +10917,53 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined2_ in - let _v : (Parsetree.extension_constructor) = let attrs = - let _1 = _1_inlined2 in - -# 5392 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let attrs = + let _1 = _1_inlined2 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 10719 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_attrs_ = _endpos__1_inlined2_ in - let lid = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 10927 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_attrs_ = _endpos__1_inlined2_ in + let lid = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 10731 "src/ocaml/preprocess/parser_raw.ml" - - in - let cid = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 10939 "src/ocaml/preprocess/parser_raw.ml" + + in + let cid = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 10741 "src/ocaml/preprocess/parser_raw.ml" - - in - let _startpos_cid_ = _startpos__1_ in - let _1 = -# 5200 "src/ocaml/preprocess/parser_raw.mly" +# 10949 "src/ocaml/preprocess/parser_raw.ml" + + in + let _startpos_cid_ = _startpos__1_ in + let _1 = +# 5211 "src/ocaml/preprocess/parser_raw.mly" ( () ) -# 10748 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos_attrs_ in - let _symbolstartpos = _startpos_cid_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 4416 "src/ocaml/preprocess/parser_raw.mly" +# 10956 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos_attrs_ in + let _symbolstartpos = _startpos_cid_ in + let _sloc = (_symbolstartpos, _endpos) in + ( +# 4427 "src/ocaml/preprocess/parser_raw.mly" ( let info = symbol_info _endpos in Te.rebind cid lid ~attrs ~loc:(make_loc _sloc) ~info ) -# 10757 "src/ocaml/preprocess/parser_raw.ml" - in +# 10965 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.extension_constructor)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -10775,27 +10984,29 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_ext_ in let _endpos = _endpos_ext_ in - let _v : (Parsetree.core_type) = let _1 = - let _1 = -# 4851 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _1 = + let _1 = +# 4862 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_extension ext ) -# 10783 "src/ocaml/preprocess/parser_raw.ml" - in - let (_endpos__1_, _startpos__1_) = (_endpos_ext_, _startpos_ext_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 10993 "src/ocaml/preprocess/parser_raw.ml" + in + let (_endpos__1_, _startpos__1_) = (_endpos_ext_, _startpos_ext_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 10792 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4853 "src/ocaml/preprocess/parser_raw.mly" +# 11002 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4864 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 10798 "src/ocaml/preprocess/parser_raw.ml" - in +# 11008 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -10837,15 +11048,17 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in - let _v : (Parsetree.attribute) = let _endpos = _endpos__4_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 5383 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _endpos = _endpos__4_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + ( +# 5394 "src/ocaml/preprocess/parser_raw.mly" ( mark_symbol_docs _sloc; mk_attr ~loc:(make_loc _sloc) _2 _3 ) -# 10848 "src/ocaml/preprocess/parser_raw.ml" - in +# 11060 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.attribute)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -10859,16 +11072,18 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in let _endpos = _startpos in - let _v : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = let params = + let _v = + let params = # 2570 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 10866 "src/ocaml/preprocess/parser_raw.ml" - in - +# 11080 "src/ocaml/preprocess/parser_raw.ml" + in + ( # 2388 "src/ocaml/preprocess/parser_raw.mly" ( params ) -# 10871 "src/ocaml/preprocess/parser_raw.ml" - in +# 11085 "src/ocaml/preprocess/parser_raw.ml" + : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -10903,30 +11118,120 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in - let _v : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = let params = + let _v = let params = - let xs = -# 253 "" + let params = + let xs = +# 264 "" ( List.rev xs ) -# 10912 "src/ocaml/preprocess/parser_raw.ml" - in - +# 11128 "src/ocaml/preprocess/parser_raw.ml" + in + # 1450 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 10917 "src/ocaml/preprocess/parser_raw.ml" +# 11133 "src/ocaml/preprocess/parser_raw.ml" + + in - in - # 2572 "src/ocaml/preprocess/parser_raw.mly" ( params ) -# 10923 "src/ocaml/preprocess/parser_raw.ml" - - in - +# 11139 "src/ocaml/preprocess/parser_raw.ml" + + in + ( # 2388 "src/ocaml/preprocess/parser_raw.mly" ( params ) -# 10929 "src/ocaml/preprocess/parser_raw.ml" - in +# 11145 "src/ocaml/preprocess/parser_raw.ml" + : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list)) + in + { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _6; + MenhirLib.EngineTypes.startp = _startpos__6_; + MenhirLib.EngineTypes.endp = _endpos__6_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _5; + MenhirLib.EngineTypes.startp = _startpos__5_; + MenhirLib.EngineTypes.endp = _endpos__5_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = body_constraint; + MenhirLib.EngineTypes.startp = _startpos_body_constraint_; + MenhirLib.EngineTypes.endp = _endpos_body_constraint_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _1_inlined2; + MenhirLib.EngineTypes.startp = _startpos__1_inlined2_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _1_inlined1; + MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; + }; + }; + }; + } = _menhir_stack in + let _6 : (Parsetree.function_body) = Obj.magic _6 in + let _5 : unit = Obj.magic _5 in + let body_constraint : (Parsetree.function_constraint) = Obj.magic body_constraint in + let _3 : (Parsetree.function_param list) = Obj.magic _3 in + let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in + let _1_inlined1 : (string Location.loc option) = Obj.magic _1_inlined1 in + let _1 : unit = Obj.magic _1 in + let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in + let _startpos = _startpos__1_ in + let _endpos = _endpos__6_ in + let _v = + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in + let _2 = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 11218 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 5416 "src/ocaml/preprocess/parser_raw.mly" + ( _1, _2 ) +# 11224 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__6_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + ( +# 2940 "src/ocaml/preprocess/parser_raw.mly" + ( mkfunction _3 body_constraint _6 ~loc:_sloc ~attrs:_2 ) +# 11233 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -10968,47 +11273,48 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_xs_ in - let _v : (Parsetree.function_body) = let _3 = - let xs = - let xs = -# 253 "" + let _v = + let _3 = + let xs = + let xs = +# 264 "" ( List.rev xs ) -# 10977 "src/ocaml/preprocess/parser_raw.ml" - in - +# 11283 "src/ocaml/preprocess/parser_raw.ml" + in + # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 10982 "src/ocaml/preprocess/parser_raw.ml" +# 11288 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 3499 "src/ocaml/preprocess/parser_raw.mly" +# 3510 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 10988 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__3_ = _endpos_xs_ in - let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in +# 11294 "src/ocaml/preprocess/parser_raw.ml" -# 5392 "src/ocaml/preprocess/parser_raw.mly" + in + let _endpos__3_ = _endpos_xs_ in + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in + let _2 = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 10999 "src/ocaml/preprocess/parser_raw.ml" +# 11305 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 5405 "src/ocaml/preprocess/parser_raw.mly" +# 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 11005 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 3485 "src/ocaml/preprocess/parser_raw.mly" +# 11311 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + ( +# 3496 "src/ocaml/preprocess/parser_raw.mly" ( let ext, attrs = _2 in match ext with | None -> Pfunction_cases (_3, make_loc _sloc, attrs) @@ -11018,8 +11324,9 @@ module Tables = struct let function_ = mkfunction [] empty_body_constraint cases ~loc:_sloc ~attrs:_2 in Pfunction_body function_ ) -# 11022 "src/ocaml/preprocess/parser_raw.ml" - in +# 11328 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.function_body)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -11041,9 +11348,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Parsetree.function_body) = -# 3495 "src/ocaml/preprocess/parser_raw.mly" +# 3506 "src/ocaml/preprocess/parser_raw.mly" ( Pfunction_body _1 ) -# 11047 "src/ocaml/preprocess/parser_raw.ml" +# 11354 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -11066,9 +11373,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Parsetree.expression) = -# 2938 "src/ocaml/preprocess/parser_raw.mly" +# 2944 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 11072 "src/ocaml/preprocess/parser_raw.ml" +# 11379 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -11139,42 +11446,44 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__7_ in - let _v : (Parsetree.expression) = let _1 = - let _3 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in - -# 5392 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _1 = + let _3 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in + let _2 = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 11151 "src/ocaml/preprocess/parser_raw.ml" +# 11459 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 5405 "src/ocaml/preprocess/parser_raw.mly" +# 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 11157 "src/ocaml/preprocess/parser_raw.ml" +# 11465 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 2985 "src/ocaml/preprocess/parser_raw.mly" +# 2989 "src/ocaml/preprocess/parser_raw.mly" ( let name, modes = _4 in let body = maybe_pmod_constraint modes _5 in Pexp_letmodule(name, body, (merloc _endpos__6_ _7)), _3 ) -# 11166 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__7_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 2940 "src/ocaml/preprocess/parser_raw.mly" +# 11474 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__1_ = _endpos__7_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + ( +# 2946 "src/ocaml/preprocess/parser_raw.mly" ( let desc, attrs = _1 in mkexp_attrs ~loc:_sloc desc attrs ) -# 11177 "src/ocaml/preprocess/parser_raw.ml" - in +# 11485 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -11252,70 +11561,72 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__6_ in - let _v : (Parsetree.expression) = let _1 = - let _4 = - let (_endpos__1_inlined1_, _endpos__1_, _startpos__1_, _1_inlined1, _2, _1) = (_endpos__1_inlined4_, _endpos__1_inlined3_, _startpos__1_inlined3_, _1_inlined4, _2_inlined1, _1_inlined3) in - let _3 = - let _1 = _1_inlined1 in - -# 5392 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _1 = + let _4 = + let (_endpos__1_inlined1_, _endpos__1_, _startpos__1_, _1_inlined1, _2, _1) = (_endpos__1_inlined4_, _endpos__1_inlined3_, _startpos__1_inlined3_, _1_inlined4, _2_inlined1, _1_inlined3) in + let _3 = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 11264 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__3_ = _endpos__1_inlined1_ in - let _1 = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 11574 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__3_ = _endpos__1_inlined1_ in + let _1 = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 11275 "src/ocaml/preprocess/parser_raw.ml" +# 11585 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 4315 "src/ocaml/preprocess/parser_raw.mly" +# 4326 "src/ocaml/preprocess/parser_raw.mly" ( let vars, args, res = _2 in Te.decl _1 ~vars ~args ?res ~attrs:_3 ~loc:(make_loc _sloc) ) -# 11285 "src/ocaml/preprocess/parser_raw.ml" - - in - let _3 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in +# 11595 "src/ocaml/preprocess/parser_raw.ml" -# 5392 "src/ocaml/preprocess/parser_raw.mly" + in + let _3 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in + let _2 = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 11295 "src/ocaml/preprocess/parser_raw.ml" +# 11605 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 5416 "src/ocaml/preprocess/parser_raw.mly" + ( _1, _2 ) +# 11611 "src/ocaml/preprocess/parser_raw.ml" in -# 5405 "src/ocaml/preprocess/parser_raw.mly" - ( _1, _2 ) -# 11301 "src/ocaml/preprocess/parser_raw.ml" +# 2994 "src/ocaml/preprocess/parser_raw.mly" + ( Pexp_letexception(_4, _6), _3 ) +# 11617 "src/ocaml/preprocess/parser_raw.ml" in - -# 2990 "src/ocaml/preprocess/parser_raw.mly" - ( Pexp_letexception(_4, _6), _3 ) -# 11307 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__6_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 2940 "src/ocaml/preprocess/parser_raw.mly" + let _endpos__1_ = _endpos__6_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + ( +# 2946 "src/ocaml/preprocess/parser_raw.mly" ( let desc, attrs = _1 in mkexp_attrs ~loc:_sloc desc attrs ) -# 11318 "src/ocaml/preprocess/parser_raw.ml" - in +# 11628 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -11378,46 +11689,48 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__7_ in - let _v : (Parsetree.expression) = let _1 = - let _4 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in - -# 5392 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _1 = + let _4 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in + let _2 = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 11390 "src/ocaml/preprocess/parser_raw.ml" +# 11702 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 5405 "src/ocaml/preprocess/parser_raw.mly" +# 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 11396 "src/ocaml/preprocess/parser_raw.ml" - - in - let _3 = -# 5293 "src/ocaml/preprocess/parser_raw.mly" +# 11708 "src/ocaml/preprocess/parser_raw.ml" + + in + let _3 = +# 5304 "src/ocaml/preprocess/parser_raw.mly" ( Fresh ) -# 11402 "src/ocaml/preprocess/parser_raw.ml" - in - -# 2992 "src/ocaml/preprocess/parser_raw.mly" +# 11714 "src/ocaml/preprocess/parser_raw.ml" + in + +# 2996 "src/ocaml/preprocess/parser_raw.mly" ( let open_loc = make_loc (_startpos__2_, _endpos__5_) in let od = Opn.mk _5 ~override:_3 ~loc:open_loc in Pexp_open(od, (merloc _endpos__6_ _7)), _4 ) -# 11409 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__7_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 2940 "src/ocaml/preprocess/parser_raw.mly" +# 11721 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__1_ = _endpos__7_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + ( +# 2946 "src/ocaml/preprocess/parser_raw.mly" ( let desc, attrs = _1 in mkexp_attrs ~loc:_sloc desc attrs ) -# 11420 "src/ocaml/preprocess/parser_raw.ml" - in +# 11732 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -11487,46 +11800,48 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__7_ in - let _v : (Parsetree.expression) = let _1 = - let _4 = - let (_1_inlined1, _1) = (_1_inlined3, _1_inlined2) in - let _2 = - let _1 = _1_inlined1 in - -# 5392 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _1 = + let _4 = + let (_1_inlined1, _1) = (_1_inlined3, _1_inlined2) in + let _2 = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 11499 "src/ocaml/preprocess/parser_raw.ml" +# 11813 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 5405 "src/ocaml/preprocess/parser_raw.mly" +# 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 11505 "src/ocaml/preprocess/parser_raw.ml" - - in - let _3 = -# 5294 "src/ocaml/preprocess/parser_raw.mly" +# 11819 "src/ocaml/preprocess/parser_raw.ml" + + in + let _3 = +# 5305 "src/ocaml/preprocess/parser_raw.mly" ( Override ) -# 11511 "src/ocaml/preprocess/parser_raw.ml" - in - -# 2992 "src/ocaml/preprocess/parser_raw.mly" +# 11825 "src/ocaml/preprocess/parser_raw.ml" + in + +# 2996 "src/ocaml/preprocess/parser_raw.mly" ( let open_loc = make_loc (_startpos__2_, _endpos__5_) in let od = Opn.mk _5 ~override:_3 ~loc:open_loc in Pexp_open(od, (merloc _endpos__6_ _7)), _4 ) -# 11518 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__7_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 2940 "src/ocaml/preprocess/parser_raw.mly" +# 11832 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__1_ = _endpos__7_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + ( +# 2946 "src/ocaml/preprocess/parser_raw.mly" ( let desc, attrs = _1 in mkexp_attrs ~loc:_sloc desc attrs ) -# 11529 "src/ocaml/preprocess/parser_raw.ml" - in +# 11843 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -11582,58 +11897,60 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_xs_ in - let _v : (Parsetree.expression) = let _1 = - let _5 = - let xs = - let xs = -# 253 "" + let _v = + let _1 = + let _5 = + let xs = + let xs = +# 264 "" ( List.rev xs ) -# 11592 "src/ocaml/preprocess/parser_raw.ml" - in - +# 11908 "src/ocaml/preprocess/parser_raw.ml" + in + # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 11597 "src/ocaml/preprocess/parser_raw.ml" +# 11913 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 3499 "src/ocaml/preprocess/parser_raw.mly" +# 3510 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 11603 "src/ocaml/preprocess/parser_raw.ml" - - in - let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in +# 11919 "src/ocaml/preprocess/parser_raw.ml" -# 5392 "src/ocaml/preprocess/parser_raw.mly" + in + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in + let _2 = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 11613 "src/ocaml/preprocess/parser_raw.ml" +# 11929 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 5416 "src/ocaml/preprocess/parser_raw.mly" + ( _1, _2 ) +# 11935 "src/ocaml/preprocess/parser_raw.ml" in -# 5405 "src/ocaml/preprocess/parser_raw.mly" - ( _1, _2 ) -# 11619 "src/ocaml/preprocess/parser_raw.ml" +# 3000 "src/ocaml/preprocess/parser_raw.mly" + ( Pexp_match(_3, _5), _2 ) +# 11941 "src/ocaml/preprocess/parser_raw.ml" in - -# 2996 "src/ocaml/preprocess/parser_raw.mly" - ( Pexp_match(_3, _5), _2 ) -# 11625 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos_xs_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 2940 "src/ocaml/preprocess/parser_raw.mly" + let _endpos__1_ = _endpos_xs_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + ( +# 2946 "src/ocaml/preprocess/parser_raw.mly" ( let desc, attrs = _1 in mkexp_attrs ~loc:_sloc desc attrs ) -# 11636 "src/ocaml/preprocess/parser_raw.ml" - in +# 11952 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -11689,58 +12006,60 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_xs_ in - let _v : (Parsetree.expression) = let _1 = - let _5 = - let xs = - let xs = -# 253 "" + let _v = + let _1 = + let _5 = + let xs = + let xs = +# 264 "" ( List.rev xs ) -# 11699 "src/ocaml/preprocess/parser_raw.ml" - in - +# 12017 "src/ocaml/preprocess/parser_raw.ml" + in + # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 11704 "src/ocaml/preprocess/parser_raw.ml" +# 12022 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 3499 "src/ocaml/preprocess/parser_raw.mly" +# 3510 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 11710 "src/ocaml/preprocess/parser_raw.ml" - - in - let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in +# 12028 "src/ocaml/preprocess/parser_raw.ml" -# 5392 "src/ocaml/preprocess/parser_raw.mly" + in + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in + let _2 = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 11720 "src/ocaml/preprocess/parser_raw.ml" +# 12038 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 5416 "src/ocaml/preprocess/parser_raw.mly" + ( _1, _2 ) +# 12044 "src/ocaml/preprocess/parser_raw.ml" in -# 5405 "src/ocaml/preprocess/parser_raw.mly" - ( _1, _2 ) -# 11726 "src/ocaml/preprocess/parser_raw.ml" +# 3002 "src/ocaml/preprocess/parser_raw.mly" + ( Pexp_try(_3, _5), _2 ) +# 12050 "src/ocaml/preprocess/parser_raw.ml" in - -# 2998 "src/ocaml/preprocess/parser_raw.mly" - ( Pexp_try(_3, _5), _2 ) -# 11732 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos_xs_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 2940 "src/ocaml/preprocess/parser_raw.mly" + let _endpos__1_ = _endpos_xs_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + ( +# 2946 "src/ocaml/preprocess/parser_raw.mly" ( let desc, attrs = _1 in mkexp_attrs ~loc:_sloc desc attrs ) -# 11743 "src/ocaml/preprocess/parser_raw.ml" - in +# 12061 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -11796,52 +12115,54 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined3_ in - let _v : (Parsetree.expression) = let _1 = - let _5 = - let _1 = _1_inlined3 in - let _1 = + let _v = + let _1 = + let _5 = + let _1 = _1_inlined3 in + let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 11806 "src/ocaml/preprocess/parser_raw.ml" - in - -# 2981 "src/ocaml/preprocess/parser_raw.mly" +# 12126 "src/ocaml/preprocess/parser_raw.ml" + in + +# 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 11811 "src/ocaml/preprocess/parser_raw.ml" - - in - let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in +# 12131 "src/ocaml/preprocess/parser_raw.ml" -# 5392 "src/ocaml/preprocess/parser_raw.mly" + in + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in + let _2 = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 11821 "src/ocaml/preprocess/parser_raw.ml" +# 12141 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 5416 "src/ocaml/preprocess/parser_raw.mly" + ( _1, _2 ) +# 12147 "src/ocaml/preprocess/parser_raw.ml" in -# 5405 "src/ocaml/preprocess/parser_raw.mly" - ( _1, _2 ) -# 11827 "src/ocaml/preprocess/parser_raw.ml" +# 3008 "src/ocaml/preprocess/parser_raw.mly" + ( Pexp_overwrite(_3, (merloc _endpos__4_ _5)), _2 ) +# 12153 "src/ocaml/preprocess/parser_raw.ml" in - -# 3004 "src/ocaml/preprocess/parser_raw.mly" - ( Pexp_overwrite(_3, (merloc _endpos__4_ _5)), _2 ) -# 11833 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__1_inlined3_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 2940 "src/ocaml/preprocess/parser_raw.mly" + let _endpos__1_ = _endpos__1_inlined3_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + ( +# 2946 "src/ocaml/preprocess/parser_raw.mly" ( let desc, attrs = _1 in mkexp_attrs ~loc:_sloc desc attrs ) -# 11844 "src/ocaml/preprocess/parser_raw.ml" - in +# 12164 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -11918,50 +12239,51 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_xs_ in - let _v : (Parsetree.expression) = let _1 = - let _5 = - let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined3_, _1_inlined5, _1_inlined4) in - let _1 = - let _3 = - let xs = - let xs = -# 253 "" + let _v = + let _1 = + let _5 = + let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined3_, _1_inlined5, _1_inlined4) in + let _1 = + let _3 = + let xs = + let xs = +# 264 "" ( List.rev xs ) -# 11931 "src/ocaml/preprocess/parser_raw.ml" - in - +# 12253 "src/ocaml/preprocess/parser_raw.ml" + in + # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 11936 "src/ocaml/preprocess/parser_raw.ml" +# 12258 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 3510 "src/ocaml/preprocess/parser_raw.mly" + ( xs ) +# 12264 "src/ocaml/preprocess/parser_raw.ml" in - -# 3499 "src/ocaml/preprocess/parser_raw.mly" - ( xs ) -# 11942 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__3_ = _endpos_xs_ in - let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in + let _endpos__3_ = _endpos_xs_ in let _2 = - let _1 = _1_inlined1 in - -# 5392 "src/ocaml/preprocess/parser_raw.mly" + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in + let _2 = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 11953 "src/ocaml/preprocess/parser_raw.ml" +# 12275 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 5405 "src/ocaml/preprocess/parser_raw.mly" +# 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 11959 "src/ocaml/preprocess/parser_raw.ml" +# 12281 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 2718 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in @@ -11975,47 +12297,48 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 11979 "src/ocaml/preprocess/parser_raw.ml" +# 12301 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 2981 "src/ocaml/preprocess/parser_raw.mly" +# 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 11985 "src/ocaml/preprocess/parser_raw.ml" - - in - let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in +# 12307 "src/ocaml/preprocess/parser_raw.ml" -# 5392 "src/ocaml/preprocess/parser_raw.mly" + in + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in + let _2 = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 11995 "src/ocaml/preprocess/parser_raw.ml" +# 12317 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 5416 "src/ocaml/preprocess/parser_raw.mly" + ( _1, _2 ) +# 12323 "src/ocaml/preprocess/parser_raw.ml" in -# 5405 "src/ocaml/preprocess/parser_raw.mly" - ( _1, _2 ) -# 12001 "src/ocaml/preprocess/parser_raw.ml" +# 3008 "src/ocaml/preprocess/parser_raw.mly" + ( Pexp_overwrite(_3, (merloc _endpos__4_ _5)), _2 ) +# 12329 "src/ocaml/preprocess/parser_raw.ml" in - -# 3004 "src/ocaml/preprocess/parser_raw.mly" - ( Pexp_overwrite(_3, (merloc _endpos__4_ _5)), _2 ) -# 12007 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos_xs_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 2940 "src/ocaml/preprocess/parser_raw.mly" + let _endpos__1_ = _endpos_xs_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + ( +# 2946 "src/ocaml/preprocess/parser_raw.mly" ( let desc, attrs = _1 in mkexp_attrs ~loc:_sloc desc attrs ) -# 12018 "src/ocaml/preprocess/parser_raw.ml" - in +# 12340 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -12085,65 +12408,67 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined4_ in - let _v : (Parsetree.expression) = let _1 = - let _7 = - let _1 = _1_inlined4 in - let _1 = + let _v = + let _1 = + let _7 = + let _1 = _1_inlined4 in + let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 12095 "src/ocaml/preprocess/parser_raw.ml" - in - -# 2981 "src/ocaml/preprocess/parser_raw.mly" +# 12419 "src/ocaml/preprocess/parser_raw.ml" + in + +# 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 12100 "src/ocaml/preprocess/parser_raw.ml" - - in - let _5 = - let _1 = _1_inlined3 in - let _1 = +# 12424 "src/ocaml/preprocess/parser_raw.ml" + + in + let _5 = + let _1 = _1_inlined3 in + let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 12108 "src/ocaml/preprocess/parser_raw.ml" - in - -# 2981 "src/ocaml/preprocess/parser_raw.mly" +# 12432 "src/ocaml/preprocess/parser_raw.ml" + in + +# 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 12113 "src/ocaml/preprocess/parser_raw.ml" - - in - let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in +# 12437 "src/ocaml/preprocess/parser_raw.ml" -# 5392 "src/ocaml/preprocess/parser_raw.mly" + in + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in + let _2 = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 12123 "src/ocaml/preprocess/parser_raw.ml" +# 12447 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 5416 "src/ocaml/preprocess/parser_raw.mly" + ( _1, _2 ) +# 12453 "src/ocaml/preprocess/parser_raw.ml" in -# 5405 "src/ocaml/preprocess/parser_raw.mly" - ( _1, _2 ) -# 12129 "src/ocaml/preprocess/parser_raw.ml" +# 3010 "src/ocaml/preprocess/parser_raw.mly" + ( Pexp_ifthenelse(_3, (merloc _endpos__4_ _5), Some (merloc _endpos__6_ _7)), _2 ) +# 12459 "src/ocaml/preprocess/parser_raw.ml" in - -# 3006 "src/ocaml/preprocess/parser_raw.mly" - ( Pexp_ifthenelse(_3, (merloc _endpos__4_ _5), Some (merloc _endpos__6_ _7)), _2 ) -# 12135 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__1_inlined4_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 2940 "src/ocaml/preprocess/parser_raw.mly" + let _endpos__1_ = _endpos__1_inlined4_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + ( +# 2946 "src/ocaml/preprocess/parser_raw.mly" ( let desc, attrs = _1 in mkexp_attrs ~loc:_sloc desc attrs ) -# 12146 "src/ocaml/preprocess/parser_raw.ml" - in +# 12470 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -12234,50 +12559,51 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_xs_ in - let _v : (Parsetree.expression) = let _1 = - let _7 = - let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined4_, _1_inlined6, _1_inlined5) in - let _1 = - let _3 = - let xs = - let xs = -# 253 "" + let _v = + let _1 = + let _7 = + let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined4_, _1_inlined6, _1_inlined5) in + let _1 = + let _3 = + let xs = + let xs = +# 264 "" ( List.rev xs ) -# 12247 "src/ocaml/preprocess/parser_raw.ml" - in - +# 12573 "src/ocaml/preprocess/parser_raw.ml" + in + # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 12252 "src/ocaml/preprocess/parser_raw.ml" +# 12578 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 3499 "src/ocaml/preprocess/parser_raw.mly" +# 3510 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 12258 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__3_ = _endpos_xs_ in - let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in +# 12584 "src/ocaml/preprocess/parser_raw.ml" -# 5392 "src/ocaml/preprocess/parser_raw.mly" + in + let _endpos__3_ = _endpos_xs_ in + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in + let _2 = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 12269 "src/ocaml/preprocess/parser_raw.ml" +# 12595 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 5405 "src/ocaml/preprocess/parser_raw.mly" +# 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 12275 "src/ocaml/preprocess/parser_raw.ml" +# 12601 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 2718 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in @@ -12291,60 +12617,61 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 12295 "src/ocaml/preprocess/parser_raw.ml" +# 12621 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 2981 "src/ocaml/preprocess/parser_raw.mly" +# 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 12301 "src/ocaml/preprocess/parser_raw.ml" - - in - let _5 = - let _1 = _1_inlined3 in - let _1 = +# 12627 "src/ocaml/preprocess/parser_raw.ml" + + in + let _5 = + let _1 = _1_inlined3 in + let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 12309 "src/ocaml/preprocess/parser_raw.ml" - in - -# 2981 "src/ocaml/preprocess/parser_raw.mly" +# 12635 "src/ocaml/preprocess/parser_raw.ml" + in + +# 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 12314 "src/ocaml/preprocess/parser_raw.ml" - - in - let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in +# 12640 "src/ocaml/preprocess/parser_raw.ml" -# 5392 "src/ocaml/preprocess/parser_raw.mly" + in + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in + let _2 = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 12324 "src/ocaml/preprocess/parser_raw.ml" +# 12650 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 5416 "src/ocaml/preprocess/parser_raw.mly" + ( _1, _2 ) +# 12656 "src/ocaml/preprocess/parser_raw.ml" in -# 5405 "src/ocaml/preprocess/parser_raw.mly" - ( _1, _2 ) -# 12330 "src/ocaml/preprocess/parser_raw.ml" +# 3010 "src/ocaml/preprocess/parser_raw.mly" + ( Pexp_ifthenelse(_3, (merloc _endpos__4_ _5), Some (merloc _endpos__6_ _7)), _2 ) +# 12662 "src/ocaml/preprocess/parser_raw.ml" in - -# 3006 "src/ocaml/preprocess/parser_raw.mly" - ( Pexp_ifthenelse(_3, (merloc _endpos__4_ _5), Some (merloc _endpos__6_ _7)), _2 ) -# 12336 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos_xs_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 2940 "src/ocaml/preprocess/parser_raw.mly" + let _endpos__1_ = _endpos_xs_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + ( +# 2946 "src/ocaml/preprocess/parser_raw.mly" ( let desc, attrs = _1 in mkexp_attrs ~loc:_sloc desc attrs ) -# 12347 "src/ocaml/preprocess/parser_raw.ml" - in +# 12673 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -12435,63 +12762,64 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined6_ in - let _v : (Parsetree.expression) = let _1 = - let _7 = - let _1 = _1_inlined6 in - let _1 = + let _v = + let _1 = + let _7 = + let _1 = _1_inlined6 in + let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 12445 "src/ocaml/preprocess/parser_raw.ml" - in - -# 2981 "src/ocaml/preprocess/parser_raw.mly" +# 12773 "src/ocaml/preprocess/parser_raw.ml" + in + +# 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 12450 "src/ocaml/preprocess/parser_raw.ml" - - in - let _5 = - let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined3_, _1_inlined5, _1_inlined4) in - let _1 = - let _3 = - let xs = - let xs = -# 253 "" +# 12778 "src/ocaml/preprocess/parser_raw.ml" + + in + let _5 = + let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined3_, _1_inlined5, _1_inlined4) in + let _1 = + let _3 = + let xs = + let xs = +# 264 "" ( List.rev xs ) -# 12461 "src/ocaml/preprocess/parser_raw.ml" - in - +# 12789 "src/ocaml/preprocess/parser_raw.ml" + in + # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 12466 "src/ocaml/preprocess/parser_raw.ml" +# 12794 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 3499 "src/ocaml/preprocess/parser_raw.mly" +# 3510 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 12472 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__3_ = _endpos_xs_ in - let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in +# 12800 "src/ocaml/preprocess/parser_raw.ml" -# 5392 "src/ocaml/preprocess/parser_raw.mly" + in + let _endpos__3_ = _endpos_xs_ in + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in + let _2 = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 12483 "src/ocaml/preprocess/parser_raw.ml" +# 12811 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 5405 "src/ocaml/preprocess/parser_raw.mly" +# 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 12489 "src/ocaml/preprocess/parser_raw.ml" +# 12817 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 2718 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in @@ -12505,47 +12833,48 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 12509 "src/ocaml/preprocess/parser_raw.ml" +# 12837 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 2981 "src/ocaml/preprocess/parser_raw.mly" +# 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 12515 "src/ocaml/preprocess/parser_raw.ml" - - in - let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in +# 12843 "src/ocaml/preprocess/parser_raw.ml" -# 5392 "src/ocaml/preprocess/parser_raw.mly" + in + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in + let _2 = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 12525 "src/ocaml/preprocess/parser_raw.ml" +# 12853 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 5416 "src/ocaml/preprocess/parser_raw.mly" + ( _1, _2 ) +# 12859 "src/ocaml/preprocess/parser_raw.ml" in -# 5405 "src/ocaml/preprocess/parser_raw.mly" - ( _1, _2 ) -# 12531 "src/ocaml/preprocess/parser_raw.ml" +# 3010 "src/ocaml/preprocess/parser_raw.mly" + ( Pexp_ifthenelse(_3, (merloc _endpos__4_ _5), Some (merloc _endpos__6_ _7)), _2 ) +# 12865 "src/ocaml/preprocess/parser_raw.ml" in - -# 3006 "src/ocaml/preprocess/parser_raw.mly" - ( Pexp_ifthenelse(_3, (merloc _endpos__4_ _5), Some (merloc _endpos__6_ _7)), _2 ) -# 12537 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__1_inlined6_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 2940 "src/ocaml/preprocess/parser_raw.mly" + let _endpos__1_ = _endpos__1_inlined6_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + ( +# 2946 "src/ocaml/preprocess/parser_raw.mly" ( let desc, attrs = _1 in mkexp_attrs ~loc:_sloc desc attrs ) -# 12548 "src/ocaml/preprocess/parser_raw.ml" - in +# 12876 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -12657,50 +12986,51 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_xs_inlined1_ in - let _v : (Parsetree.expression) = let _1 = - let _7 = - let (_endpos_xs_, _startpos__1_, xs, _1_inlined2, _1_inlined1) = (_endpos_xs_inlined1_, _startpos__1_inlined6_, xs_inlined1, _1_inlined8, _1_inlined7) in - let _1 = - let _3 = - let xs = - let xs = -# 253 "" + let _v = + let _1 = + let _7 = + let (_endpos_xs_, _startpos__1_, xs, _1_inlined2, _1_inlined1) = (_endpos_xs_inlined1_, _startpos__1_inlined6_, xs_inlined1, _1_inlined8, _1_inlined7) in + let _1 = + let _3 = + let xs = + let xs = +# 264 "" ( List.rev xs ) -# 12670 "src/ocaml/preprocess/parser_raw.ml" - in - +# 13000 "src/ocaml/preprocess/parser_raw.ml" + in + # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 12675 "src/ocaml/preprocess/parser_raw.ml" +# 13005 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 3499 "src/ocaml/preprocess/parser_raw.mly" +# 3510 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 12681 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__3_ = _endpos_xs_ in - let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in +# 13011 "src/ocaml/preprocess/parser_raw.ml" -# 5392 "src/ocaml/preprocess/parser_raw.mly" + in + let _endpos__3_ = _endpos_xs_ in + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in + let _2 = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 12692 "src/ocaml/preprocess/parser_raw.ml" +# 13022 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 5405 "src/ocaml/preprocess/parser_raw.mly" +# 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 12698 "src/ocaml/preprocess/parser_raw.ml" +# 13028 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 2718 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in @@ -12714,58 +13044,58 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 12718 "src/ocaml/preprocess/parser_raw.ml" +# 13048 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 2981 "src/ocaml/preprocess/parser_raw.mly" +# 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 12724 "src/ocaml/preprocess/parser_raw.ml" - - in - let _5 = - let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined3_, _1_inlined5, _1_inlined4) in - let _1 = - let _3 = - let xs = - let xs = -# 253 "" +# 13054 "src/ocaml/preprocess/parser_raw.ml" + + in + let _5 = + let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined3_, _1_inlined5, _1_inlined4) in + let _1 = + let _3 = + let xs = + let xs = +# 264 "" ( List.rev xs ) -# 12735 "src/ocaml/preprocess/parser_raw.ml" - in - +# 13065 "src/ocaml/preprocess/parser_raw.ml" + in + # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 12740 "src/ocaml/preprocess/parser_raw.ml" +# 13070 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 3499 "src/ocaml/preprocess/parser_raw.mly" +# 3510 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 12746 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__3_ = _endpos_xs_ in - let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in +# 13076 "src/ocaml/preprocess/parser_raw.ml" -# 5392 "src/ocaml/preprocess/parser_raw.mly" + in + let _endpos__3_ = _endpos_xs_ in + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in + let _2 = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 12757 "src/ocaml/preprocess/parser_raw.ml" +# 13087 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 5405 "src/ocaml/preprocess/parser_raw.mly" +# 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 12763 "src/ocaml/preprocess/parser_raw.ml" +# 13093 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 2718 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in @@ -12779,47 +13109,48 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 12783 "src/ocaml/preprocess/parser_raw.ml" +# 13113 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 2981 "src/ocaml/preprocess/parser_raw.mly" +# 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 12789 "src/ocaml/preprocess/parser_raw.ml" - - in - let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in +# 13119 "src/ocaml/preprocess/parser_raw.ml" -# 5392 "src/ocaml/preprocess/parser_raw.mly" + in + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in + let _2 = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 12799 "src/ocaml/preprocess/parser_raw.ml" +# 13129 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 5416 "src/ocaml/preprocess/parser_raw.mly" + ( _1, _2 ) +# 13135 "src/ocaml/preprocess/parser_raw.ml" in -# 5405 "src/ocaml/preprocess/parser_raw.mly" - ( _1, _2 ) -# 12805 "src/ocaml/preprocess/parser_raw.ml" +# 3010 "src/ocaml/preprocess/parser_raw.mly" + ( Pexp_ifthenelse(_3, (merloc _endpos__4_ _5), Some (merloc _endpos__6_ _7)), _2 ) +# 13141 "src/ocaml/preprocess/parser_raw.ml" in - -# 3006 "src/ocaml/preprocess/parser_raw.mly" - ( Pexp_ifthenelse(_3, (merloc _endpos__4_ _5), Some (merloc _endpos__6_ _7)), _2 ) -# 12811 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos_xs_inlined1_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 2940 "src/ocaml/preprocess/parser_raw.mly" + let _endpos__1_ = _endpos_xs_inlined1_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + ( +# 2946 "src/ocaml/preprocess/parser_raw.mly" ( let desc, attrs = _1 in mkexp_attrs ~loc:_sloc desc attrs ) -# 12822 "src/ocaml/preprocess/parser_raw.ml" - in +# 13152 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -12875,52 +13206,54 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined3_ in - let _v : (Parsetree.expression) = let _1 = - let _5 = - let _1 = _1_inlined3 in - let _1 = + let _v = + let _1 = + let _5 = + let _1 = _1_inlined3 in + let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 12885 "src/ocaml/preprocess/parser_raw.ml" - in - -# 2981 "src/ocaml/preprocess/parser_raw.mly" +# 13217 "src/ocaml/preprocess/parser_raw.ml" + in + +# 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 12890 "src/ocaml/preprocess/parser_raw.ml" - - in - let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in +# 13222 "src/ocaml/preprocess/parser_raw.ml" -# 5392 "src/ocaml/preprocess/parser_raw.mly" + in + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in + let _2 = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 12900 "src/ocaml/preprocess/parser_raw.ml" +# 13232 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 5416 "src/ocaml/preprocess/parser_raw.mly" + ( _1, _2 ) +# 13238 "src/ocaml/preprocess/parser_raw.ml" in -# 5405 "src/ocaml/preprocess/parser_raw.mly" - ( _1, _2 ) -# 12906 "src/ocaml/preprocess/parser_raw.ml" +# 3012 "src/ocaml/preprocess/parser_raw.mly" + ( Pexp_ifthenelse(_3, (merloc _endpos__4_ _5), None), _2 ) +# 13244 "src/ocaml/preprocess/parser_raw.ml" in - -# 3008 "src/ocaml/preprocess/parser_raw.mly" - ( Pexp_ifthenelse(_3, (merloc _endpos__4_ _5), None), _2 ) -# 12912 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__1_inlined3_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 2940 "src/ocaml/preprocess/parser_raw.mly" + let _endpos__1_ = _endpos__1_inlined3_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + ( +# 2946 "src/ocaml/preprocess/parser_raw.mly" ( let desc, attrs = _1 in mkexp_attrs ~loc:_sloc desc attrs ) -# 12923 "src/ocaml/preprocess/parser_raw.ml" - in +# 13255 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -12997,50 +13330,51 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_xs_ in - let _v : (Parsetree.expression) = let _1 = - let _5 = - let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined3_, _1_inlined5, _1_inlined4) in - let _1 = - let _3 = - let xs = - let xs = -# 253 "" + let _v = + let _1 = + let _5 = + let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined3_, _1_inlined5, _1_inlined4) in + let _1 = + let _3 = + let xs = + let xs = +# 264 "" ( List.rev xs ) -# 13010 "src/ocaml/preprocess/parser_raw.ml" - in - +# 13344 "src/ocaml/preprocess/parser_raw.ml" + in + # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 13015 "src/ocaml/preprocess/parser_raw.ml" +# 13349 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 3499 "src/ocaml/preprocess/parser_raw.mly" +# 3510 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 13021 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__3_ = _endpos_xs_ in - let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in +# 13355 "src/ocaml/preprocess/parser_raw.ml" -# 5392 "src/ocaml/preprocess/parser_raw.mly" + in + let _endpos__3_ = _endpos_xs_ in + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in + let _2 = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 13032 "src/ocaml/preprocess/parser_raw.ml" +# 13366 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 5405 "src/ocaml/preprocess/parser_raw.mly" +# 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 13038 "src/ocaml/preprocess/parser_raw.ml" +# 13372 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 2718 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in @@ -13054,47 +13388,48 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 13058 "src/ocaml/preprocess/parser_raw.ml" +# 13392 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 2981 "src/ocaml/preprocess/parser_raw.mly" +# 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 13064 "src/ocaml/preprocess/parser_raw.ml" - - in - let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in +# 13398 "src/ocaml/preprocess/parser_raw.ml" -# 5392 "src/ocaml/preprocess/parser_raw.mly" + in + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in + let _2 = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 13074 "src/ocaml/preprocess/parser_raw.ml" +# 13408 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 5416 "src/ocaml/preprocess/parser_raw.mly" + ( _1, _2 ) +# 13414 "src/ocaml/preprocess/parser_raw.ml" in -# 5405 "src/ocaml/preprocess/parser_raw.mly" - ( _1, _2 ) -# 13080 "src/ocaml/preprocess/parser_raw.ml" +# 3012 "src/ocaml/preprocess/parser_raw.mly" + ( Pexp_ifthenelse(_3, (merloc _endpos__4_ _5), None), _2 ) +# 13420 "src/ocaml/preprocess/parser_raw.ml" in - -# 3008 "src/ocaml/preprocess/parser_raw.mly" - ( Pexp_ifthenelse(_3, (merloc _endpos__4_ _5), None), _2 ) -# 13086 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos_xs_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 2940 "src/ocaml/preprocess/parser_raw.mly" + let _endpos__1_ = _endpos_xs_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + ( +# 2946 "src/ocaml/preprocess/parser_raw.mly" ( let desc, attrs = _1 in mkexp_attrs ~loc:_sloc desc attrs ) -# 13097 "src/ocaml/preprocess/parser_raw.ml" - in +# 13431 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -13157,39 +13492,41 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__6_ in - let _v : (Parsetree.expression) = let _1 = - let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in + let _v = + let _1 = let _2 = - let _1 = _1_inlined1 in - -# 5392 "src/ocaml/preprocess/parser_raw.mly" + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in + let _2 = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 13169 "src/ocaml/preprocess/parser_raw.ml" +# 13505 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 5416 "src/ocaml/preprocess/parser_raw.mly" + ( _1, _2 ) +# 13511 "src/ocaml/preprocess/parser_raw.ml" in -# 5405 "src/ocaml/preprocess/parser_raw.mly" - ( _1, _2 ) -# 13175 "src/ocaml/preprocess/parser_raw.ml" +# 3014 "src/ocaml/preprocess/parser_raw.mly" + ( Pexp_while(_3, (merloc _endpos__4_ _5)), _2 ) +# 13517 "src/ocaml/preprocess/parser_raw.ml" in - -# 3010 "src/ocaml/preprocess/parser_raw.mly" - ( Pexp_while(_3, (merloc _endpos__4_ _5)), _2 ) -# 13181 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__6_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 2940 "src/ocaml/preprocess/parser_raw.mly" + let _endpos__1_ = _endpos__6_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + ( +# 2946 "src/ocaml/preprocess/parser_raw.mly" ( let desc, attrs = _1 in mkexp_attrs ~loc:_sloc desc attrs ) -# 13192 "src/ocaml/preprocess/parser_raw.ml" - in +# 13528 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -13280,39 +13617,41 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__10_ in - let _v : (Parsetree.expression) = let _1 = - let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in + let _v = + let _1 = let _2 = - let _1 = _1_inlined1 in - -# 5392 "src/ocaml/preprocess/parser_raw.mly" + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in + let _2 = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 13292 "src/ocaml/preprocess/parser_raw.ml" +# 13630 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 5416 "src/ocaml/preprocess/parser_raw.mly" + ( _1, _2 ) +# 13636 "src/ocaml/preprocess/parser_raw.ml" in -# 5405 "src/ocaml/preprocess/parser_raw.mly" - ( _1, _2 ) -# 13298 "src/ocaml/preprocess/parser_raw.ml" +# 3021 "src/ocaml/preprocess/parser_raw.mly" + ( Pexp_for(_3, (merloc _endpos__4_ _5), (merloc _endpos__6_ _7), _6, (merloc _endpos__8_ _9)), _2 ) +# 13642 "src/ocaml/preprocess/parser_raw.ml" in - -# 3017 "src/ocaml/preprocess/parser_raw.mly" - ( Pexp_for(_3, (merloc _endpos__4_ _5), (merloc _endpos__6_ _7), _6, (merloc _endpos__8_ _9)), _2 ) -# 13304 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__10_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 2940 "src/ocaml/preprocess/parser_raw.mly" + let _endpos__1_ = _endpos__10_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + ( +# 2946 "src/ocaml/preprocess/parser_raw.mly" ( let desc, attrs = _1 in mkexp_attrs ~loc:_sloc desc attrs ) -# 13315 "src/ocaml/preprocess/parser_raw.ml" - in +# 13653 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -13354,39 +13693,41 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in - let _v : (Parsetree.expression) = let _1 = - let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in + let _v = + let _1 = let _2 = - let _1 = _1_inlined1 in - -# 5392 "src/ocaml/preprocess/parser_raw.mly" + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in + let _2 = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 13366 "src/ocaml/preprocess/parser_raw.ml" +# 13706 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 5416 "src/ocaml/preprocess/parser_raw.mly" + ( _1, _2 ) +# 13712 "src/ocaml/preprocess/parser_raw.ml" in -# 5405 "src/ocaml/preprocess/parser_raw.mly" - ( _1, _2 ) -# 13372 "src/ocaml/preprocess/parser_raw.ml" +# 3023 "src/ocaml/preprocess/parser_raw.mly" + ( Pexp_assert _3, _2 ) +# 13718 "src/ocaml/preprocess/parser_raw.ml" in - -# 3019 "src/ocaml/preprocess/parser_raw.mly" - ( Pexp_assert _3, _2 ) -# 13378 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__3_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 2940 "src/ocaml/preprocess/parser_raw.mly" + let _endpos__1_ = _endpos__3_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + ( +# 2946 "src/ocaml/preprocess/parser_raw.mly" ( let desc, attrs = _1 in mkexp_attrs ~loc:_sloc desc attrs ) -# 13389 "src/ocaml/preprocess/parser_raw.ml" - in +# 13729 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -13428,39 +13769,41 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in - let _v : (Parsetree.expression) = let _1 = - let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in + let _v = + let _1 = let _2 = - let _1 = _1_inlined1 in - -# 5392 "src/ocaml/preprocess/parser_raw.mly" + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in + let _2 = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 13440 "src/ocaml/preprocess/parser_raw.ml" +# 13782 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 5416 "src/ocaml/preprocess/parser_raw.mly" + ( _1, _2 ) +# 13788 "src/ocaml/preprocess/parser_raw.ml" in -# 5405 "src/ocaml/preprocess/parser_raw.mly" - ( _1, _2 ) -# 13446 "src/ocaml/preprocess/parser_raw.ml" +# 3025 "src/ocaml/preprocess/parser_raw.mly" + ( Pexp_lazy _3, _2 ) +# 13794 "src/ocaml/preprocess/parser_raw.ml" in - -# 3021 "src/ocaml/preprocess/parser_raw.mly" - ( Pexp_lazy _3, _2 ) -# 13452 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__3_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 2940 "src/ocaml/preprocess/parser_raw.mly" + let _endpos__1_ = _endpos__3_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + ( +# 2946 "src/ocaml/preprocess/parser_raw.mly" ( let desc, attrs = _1 in mkexp_attrs ~loc:_sloc desc attrs ) -# 13463 "src/ocaml/preprocess/parser_raw.ml" - in +# 13805 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -13488,38 +13831,40 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined1_ in - let _v : (Parsetree.expression) = let _1 = - let _2 = - let _1 = _1_inlined1 in - let _1 = + let _v = + let _1 = + let _2 = + let _1 = _1_inlined1 in + let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 13498 "src/ocaml/preprocess/parser_raw.ml" - in - -# 2981 "src/ocaml/preprocess/parser_raw.mly" +# 13842 "src/ocaml/preprocess/parser_raw.ml" + in + +# 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 13503 "src/ocaml/preprocess/parser_raw.ml" +# 13847 "src/ocaml/preprocess/parser_raw.ml" + + in + let _loc__1_ = (_startpos__1_, _endpos__1_) in - in - let _loc__1_ = (_startpos__1_, _endpos__1_) in - -# 3023 "src/ocaml/preprocess/parser_raw.mly" +# 3027 "src/ocaml/preprocess/parser_raw.mly" ( let desc, attrs = mkuminus ~oploc:_loc__1_ _1 _2 in desc, (None, attrs) ) -# 13511 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__1_inlined1_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 2940 "src/ocaml/preprocess/parser_raw.mly" +# 13855 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__1_ = _endpos__1_inlined1_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + ( +# 2946 "src/ocaml/preprocess/parser_raw.mly" ( let desc, attrs = _1 in mkexp_attrs ~loc:_sloc desc attrs ) -# 13522 "src/ocaml/preprocess/parser_raw.ml" - in +# 13866 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -13568,50 +13913,51 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_xs_ in - let _v : (Parsetree.expression) = let _1 = - let _2 = - let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in - let _1 = - let _3 = - let xs = - let xs = -# 253 "" + let _v = + let _1 = + let _2 = + let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in + let _1 = + let _3 = + let xs = + let xs = +# 264 "" ( List.rev xs ) -# 13581 "src/ocaml/preprocess/parser_raw.ml" - in - +# 13927 "src/ocaml/preprocess/parser_raw.ml" + in + # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 13586 "src/ocaml/preprocess/parser_raw.ml" +# 13932 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 3499 "src/ocaml/preprocess/parser_raw.mly" +# 3510 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 13592 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__3_ = _endpos_xs_ in - let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in +# 13938 "src/ocaml/preprocess/parser_raw.ml" -# 5392 "src/ocaml/preprocess/parser_raw.mly" + in + let _endpos__3_ = _endpos_xs_ in + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in + let _2 = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 13603 "src/ocaml/preprocess/parser_raw.ml" +# 13949 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 5405 "src/ocaml/preprocess/parser_raw.mly" +# 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 13609 "src/ocaml/preprocess/parser_raw.ml" +# 13955 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 2718 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in @@ -13625,33 +13971,34 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 13629 "src/ocaml/preprocess/parser_raw.ml" +# 13975 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 2981 "src/ocaml/preprocess/parser_raw.mly" +# 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 13635 "src/ocaml/preprocess/parser_raw.ml" +# 13981 "src/ocaml/preprocess/parser_raw.ml" + + in + let _loc__1_ = (_startpos__1_, _endpos__1_) in - in - let _loc__1_ = (_startpos__1_, _endpos__1_) in - -# 3023 "src/ocaml/preprocess/parser_raw.mly" +# 3027 "src/ocaml/preprocess/parser_raw.mly" ( let desc, attrs = mkuminus ~oploc:_loc__1_ _1 _2 in desc, (None, attrs) ) -# 13643 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos_xs_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 2940 "src/ocaml/preprocess/parser_raw.mly" +# 13989 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__1_ = _endpos_xs_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + ( +# 2946 "src/ocaml/preprocess/parser_raw.mly" ( let desc, attrs = _1 in mkexp_attrs ~loc:_sloc desc attrs ) -# 13654 "src/ocaml/preprocess/parser_raw.ml" - in +# 14000 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -13679,38 +14026,40 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined1_ in - let _v : (Parsetree.expression) = let _1 = - let _2 = - let _1 = _1_inlined1 in - let _1 = + let _v = + let _1 = + let _2 = + let _1 = _1_inlined1 in + let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 13689 "src/ocaml/preprocess/parser_raw.ml" - in - -# 2981 "src/ocaml/preprocess/parser_raw.mly" +# 14037 "src/ocaml/preprocess/parser_raw.ml" + in + +# 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 13694 "src/ocaml/preprocess/parser_raw.ml" +# 14042 "src/ocaml/preprocess/parser_raw.ml" + + in + let _loc__1_ = (_startpos__1_, _endpos__1_) in - in - let _loc__1_ = (_startpos__1_, _endpos__1_) in - -# 3026 "src/ocaml/preprocess/parser_raw.mly" +# 3030 "src/ocaml/preprocess/parser_raw.mly" ( let desc, attrs = mkuplus ~oploc:_loc__1_ _1 _2 in desc, (None, attrs) ) -# 13702 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__1_inlined1_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 2940 "src/ocaml/preprocess/parser_raw.mly" +# 14050 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__1_ = _endpos__1_inlined1_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + ( +# 2946 "src/ocaml/preprocess/parser_raw.mly" ( let desc, attrs = _1 in mkexp_attrs ~loc:_sloc desc attrs ) -# 13713 "src/ocaml/preprocess/parser_raw.ml" - in +# 14061 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -13759,50 +14108,51 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_xs_ in - let _v : (Parsetree.expression) = let _1 = - let _2 = - let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in - let _1 = - let _3 = - let xs = - let xs = -# 253 "" + let _v = + let _1 = + let _2 = + let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in + let _1 = + let _3 = + let xs = + let xs = +# 264 "" ( List.rev xs ) -# 13772 "src/ocaml/preprocess/parser_raw.ml" - in - +# 14122 "src/ocaml/preprocess/parser_raw.ml" + in + # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 13777 "src/ocaml/preprocess/parser_raw.ml" +# 14127 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 3499 "src/ocaml/preprocess/parser_raw.mly" +# 3510 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 13783 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__3_ = _endpos_xs_ in - let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in +# 14133 "src/ocaml/preprocess/parser_raw.ml" -# 5392 "src/ocaml/preprocess/parser_raw.mly" + in + let _endpos__3_ = _endpos_xs_ in + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in + let _2 = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 13794 "src/ocaml/preprocess/parser_raw.ml" +# 14144 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 5405 "src/ocaml/preprocess/parser_raw.mly" +# 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 13800 "src/ocaml/preprocess/parser_raw.ml" +# 14150 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 2718 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in @@ -13816,33 +14166,34 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 13820 "src/ocaml/preprocess/parser_raw.ml" +# 14170 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 2981 "src/ocaml/preprocess/parser_raw.mly" +# 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 13826 "src/ocaml/preprocess/parser_raw.ml" +# 14176 "src/ocaml/preprocess/parser_raw.ml" + + in + let _loc__1_ = (_startpos__1_, _endpos__1_) in - in - let _loc__1_ = (_startpos__1_, _endpos__1_) in - -# 3026 "src/ocaml/preprocess/parser_raw.mly" +# 3030 "src/ocaml/preprocess/parser_raw.mly" ( let desc, attrs = mkuplus ~oploc:_loc__1_ _1 _2 in desc, (None, attrs) ) -# 13834 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos_xs_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 2940 "src/ocaml/preprocess/parser_raw.mly" +# 14184 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__1_ = _endpos_xs_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + ( +# 2946 "src/ocaml/preprocess/parser_raw.mly" ( let desc, attrs = _1 in mkexp_attrs ~loc:_sloc desc attrs ) -# 13845 "src/ocaml/preprocess/parser_raw.ml" - in +# 14195 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -13853,81 +14204,20 @@ module Tables = struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _6; - MenhirLib.EngineTypes.startp = _startpos__6_; - MenhirLib.EngineTypes.endp = _endpos__6_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _5; - MenhirLib.EngineTypes.startp = _startpos__5_; - MenhirLib.EngineTypes.endp = _endpos__5_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = body_constraint; - MenhirLib.EngineTypes.startp = _startpos_body_constraint_; - MenhirLib.EngineTypes.endp = _endpos_body_constraint_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined2; - MenhirLib.EngineTypes.startp = _startpos__1_inlined2_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined1; - MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - }; - }; - }; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let _6 : (Parsetree.function_body) = Obj.magic _6 in - let _5 : unit = Obj.magic _5 in - let body_constraint : (Parsetree.function_constraint) = Obj.magic body_constraint in - let _3 : (Parsetree.function_param list) = Obj.magic _3 in - let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in - let _1_inlined1 : (string Location.loc option) = Obj.magic _1_inlined1 in - let _1 : unit = Obj.magic _1 in + let _1 : (Parsetree.expression) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos__6_ in - let _v : (Parsetree.expression) = let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in - -# 5392 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 13916 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 5405 "src/ocaml/preprocess/parser_raw.mly" - ( _1, _2 ) -# 13922 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__6_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 2945 "src/ocaml/preprocess/parser_raw.mly" - ( mkfunction _3 body_constraint _6 ~loc:_sloc ~attrs:_2 ) -# 13931 "src/ocaml/preprocess/parser_raw.ml" + let _endpos = _endpos__1_ in + let _v : (Parsetree.expression) = +# 2949 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 14221 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -13956,34 +14246,36 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_xs_ in - let _v : (Parsetree.expression) = let _1 = - let _2 = - let xs = -# 253 "" + let _v = + let _1 = + let _2 = + let xs = +# 264 "" ( List.rev xs ) -# 13965 "src/ocaml/preprocess/parser_raw.ml" - in - +# 14256 "src/ocaml/preprocess/parser_raw.ml" + in + # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 13970 "src/ocaml/preprocess/parser_raw.ml" +# 14261 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__2_ = _endpos_xs_ in + let _endpos = _endpos__2_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos__2_ = _endpos_xs_ in - let _endpos = _endpos__2_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 3031 "src/ocaml/preprocess/parser_raw.mly" +# 3035 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (Pexp_apply(_1, _2)) ) -# 13980 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 2947 "src/ocaml/preprocess/parser_raw.mly" +# 14271 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 2951 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 13986 "src/ocaml/preprocess/parser_raw.ml" - in +# 14277 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -14011,21 +14303,200 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in - let _v : (Parsetree.expression) = let _1 = - let _endpos = _endpos__2_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 3033 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _1 = + let _endpos = _endpos__2_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 3037 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (Pexp_stack _2) ) -# 14022 "src/ocaml/preprocess/parser_raw.ml" - +# 14315 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 2951 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 14321 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression)) in - -# 2947 "src/ocaml/preprocess/parser_raw.mly" + { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _1_inlined1; + MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + } = _menhir_stack in + let _1_inlined1 : (Parsetree.expression) = Obj.magic _1_inlined1 in + let _1 : unit = Obj.magic _1 in + let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in + let _startpos = _startpos__1_ in + let _endpos = _endpos__1_inlined1_ in + let _v = + let _1 = + let _2 = + let _1 = _1_inlined1 in + +# 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 14028 "src/ocaml/preprocess/parser_raw.ml" - in +# 14358 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__2_ = _endpos__1_inlined1_ in + let _endpos = _endpos__2_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 3039 "src/ocaml/preprocess/parser_raw.mly" + ( mkexp ~loc:_sloc (Pexp_stack _2) ) +# 14368 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 2951 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 14374 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression)) + in + { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = xs; + MenhirLib.EngineTypes.startp = _startpos_xs_; + MenhirLib.EngineTypes.endp = _endpos_xs_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _1_inlined3; + MenhirLib.EngineTypes.startp = _startpos__1_inlined3_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _1_inlined2; + MenhirLib.EngineTypes.startp = _startpos__1_inlined2_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _1_inlined1; + MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; + }; + } = _menhir_stack in + let xs : (Parsetree.case list) = Obj.magic xs in + let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in + let _1_inlined2 : (string Location.loc option) = Obj.magic _1_inlined2 in + let _1_inlined1 : unit = Obj.magic _1_inlined1 in + let _1 : unit = Obj.magic _1 in + let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in + let _startpos = _startpos__1_ in + let _endpos = _endpos_xs_ in + let _v = + let _1 = + let _2 = + let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in + let _3 = + let xs = + let xs = +# 264 "" + ( List.rev xs ) +# 14434 "src/ocaml/preprocess/parser_raw.ml" + in + +# 1511 "src/ocaml/preprocess/parser_raw.mly" + ( xs ) +# 14439 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 3510 "src/ocaml/preprocess/parser_raw.mly" + ( xs ) +# 14445 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__3_ = _endpos_xs_ in + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in + let _2 = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 14456 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 5416 "src/ocaml/preprocess/parser_raw.mly" + ( _1, _2 ) +# 14462 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 2718 "src/ocaml/preprocess/parser_raw.mly" + ( let loc = make_loc _sloc in + let cases = _3 in + (* There are two choices of where to put attributes: on the + Pexp_function node; on the Pfunction_cases body. We put them on the + Pexp_function node here because the compiler only uses + Pfunction_cases attributes for enabling/disabling warnings in + typechecking. For standalone function cases, we want the compiler to + respect, e.g., [@inline] attributes. + *) + mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 + ~loc:_sloc + ) +# 14482 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__2_ = _endpos_xs_ in + let _endpos = _endpos__2_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 3039 "src/ocaml/preprocess/parser_raw.mly" + ( mkexp ~loc:_sloc (Pexp_stack _2) ) +# 14492 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 2951 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 14498 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -14046,34 +14517,36 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_xs_ in let _endpos = _endpos_xs_ in - let _v : (Parsetree.expression) = let _1 = + let _v = let _1 = - let xs = -# 253 "" + let _1 = + let xs = +# 264 "" ( List.rev xs ) -# 14055 "src/ocaml/preprocess/parser_raw.ml" - in - -# 3622 "src/ocaml/preprocess/parser_raw.mly" +# 14527 "src/ocaml/preprocess/parser_raw.ml" + in + +# 3633 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 14060 "src/ocaml/preprocess/parser_raw.ml" +# 14532 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos_xs_, _startpos_xs_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let (_endpos__1_, _startpos__1_) = (_endpos_xs_, _startpos_xs_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 3035 "src/ocaml/preprocess/parser_raw.mly" +# 3041 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (Pexp_tuple _1) ) -# 14070 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 2947 "src/ocaml/preprocess/parser_raw.mly" +# 14542 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 2951 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 14076 "src/ocaml/preprocess/parser_raw.ml" - in +# 14548 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -14101,31 +14574,112 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in - let _v : (Parsetree.expression) = let _1 = + let _v = let _1 = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let _1 = + let _1 = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 14113 "src/ocaml/preprocess/parser_raw.ml" +# 14588 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__2_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 3053 "src/ocaml/preprocess/parser_raw.mly" + ( mkexp ~loc:_sloc (Pexp_construct(_1, Some _2)) ) +# 14597 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 3042 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 14603 "src/ocaml/preprocess/parser_raw.ml" in - let _endpos = _endpos__2_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 3037 "src/ocaml/preprocess/parser_raw.mly" - ( mkexp ~loc:_sloc (Pexp_construct(_1, Some _2)) ) -# 14122 "src/ocaml/preprocess/parser_raw.ml" - + ( +# 2951 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 14609 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression)) in - -# 2947 "src/ocaml/preprocess/parser_raw.mly" + { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _1_inlined1; + MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + } = _menhir_stack in + let _2 : (Parsetree.expression) = Obj.magic _2 in + let _1_inlined1 : (Longident.t) = Obj.magic _1_inlined1 in + let _1 : unit = Obj.magic _1 in + let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in + let _startpos = _startpos__1_ in + let _endpos = _endpos__2_ in + let _v = + let _1 = + let _2 = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in + let _1 = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 1296 "src/ocaml/preprocess/parser_raw.mly" + ( mkrhs _1 _sloc ) +# 14657 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__2_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 3053 "src/ocaml/preprocess/parser_raw.mly" + ( mkexp ~loc:_sloc (Pexp_construct(_1, Some _2)) ) +# 14666 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__2_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 3044 "src/ocaml/preprocess/parser_raw.mly" + ( mkexp ~loc:_sloc (Pexp_stack _2) ) +# 14675 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 2951 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 14128 "src/ocaml/preprocess/parser_raw.ml" - in +# 14681 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -14153,21 +14707,23 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in - let _v : (Parsetree.expression) = let _1 = - let _endpos = _endpos__2_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 3039 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _1 = + let _endpos = _endpos__2_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 3046 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (Pexp_variant(_1, Some _2)) ) -# 14164 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 2947 "src/ocaml/preprocess/parser_raw.mly" +# 14719 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 2951 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 14170 "src/ocaml/preprocess/parser_raw.ml" - in +# 14725 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -14200,56 +14756,58 @@ module Tables = struct let op : ( # 1066 "src/ocaml/preprocess/parser_raw.mly" (string) -# 14204 "src/ocaml/preprocess/parser_raw.ml" +# 14760 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic op in let e1 : (Parsetree.expression) = Obj.magic e1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_e1_ in let _endpos = _endpos__1_ in - let _v : (Parsetree.expression) = let _1 = - let e2 = - let _1 = + let _v = + let _1 = + let e2 = + let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 14215 "src/ocaml/preprocess/parser_raw.ml" - in - -# 2981 "src/ocaml/preprocess/parser_raw.mly" +# 14772 "src/ocaml/preprocess/parser_raw.ml" + in + +# 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 14220 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_e2_ = _endpos__1_ in - let op = - let _1 = -# 5072 "src/ocaml/preprocess/parser_raw.mly" +# 14777 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_e2_ = _endpos__1_ in + let op = + let _1 = +# 5083 "src/ocaml/preprocess/parser_raw.mly" ( op ) -# 14228 "src/ocaml/preprocess/parser_raw.ml" - in - let (_endpos__1_, _startpos__1_) = (_endpos_op_, _startpos_op_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 14785 "src/ocaml/preprocess/parser_raw.ml" + in + let (_endpos__1_, _startpos__1_) = (_endpos_op_, _startpos_op_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1323 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 14237 "src/ocaml/preprocess/parser_raw.ml" +# 14794 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos_e2_ in + let _symbolstartpos = _startpos_e1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos = _endpos_e2_ in - let _symbolstartpos = _startpos_e1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 3041 "src/ocaml/preprocess/parser_raw.mly" +# 3048 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 14246 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 2947 "src/ocaml/preprocess/parser_raw.mly" +# 14803 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 2951 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 14252 "src/ocaml/preprocess/parser_raw.ml" - in +# 14809 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -14303,55 +14861,56 @@ module Tables = struct let op : ( # 1066 "src/ocaml/preprocess/parser_raw.mly" (string) -# 14307 "src/ocaml/preprocess/parser_raw.ml" +# 14865 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic op in let e1 : (Parsetree.expression) = Obj.magic e1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_e1_ in let _endpos = _endpos_xs_ in - let _v : (Parsetree.expression) = let _1 = - let e2 = - let _1 = - let _3 = - let xs = - let xs = -# 253 "" + let _v = + let _1 = + let e2 = + let _1 = + let _3 = + let xs = + let xs = +# 264 "" ( List.rev xs ) -# 14321 "src/ocaml/preprocess/parser_raw.ml" - in - +# 14880 "src/ocaml/preprocess/parser_raw.ml" + in + # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 14326 "src/ocaml/preprocess/parser_raw.ml" +# 14885 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 3499 "src/ocaml/preprocess/parser_raw.mly" +# 3510 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 14332 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__3_ = _endpos_xs_ in - let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in +# 14891 "src/ocaml/preprocess/parser_raw.ml" -# 5392 "src/ocaml/preprocess/parser_raw.mly" + in + let _endpos__3_ = _endpos_xs_ in + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in + let _2 = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 14343 "src/ocaml/preprocess/parser_raw.ml" +# 14902 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 5405 "src/ocaml/preprocess/parser_raw.mly" +# 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 14349 "src/ocaml/preprocess/parser_raw.ml" +# 14908 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 2718 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in @@ -14365,46 +14924,47 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 14369 "src/ocaml/preprocess/parser_raw.ml" +# 14928 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 2981 "src/ocaml/preprocess/parser_raw.mly" +# 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 14375 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_e2_ = _endpos_xs_ in - let op = - let _1 = -# 5072 "src/ocaml/preprocess/parser_raw.mly" +# 14934 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_e2_ = _endpos_xs_ in + let op = + let _1 = +# 5083 "src/ocaml/preprocess/parser_raw.mly" ( op ) -# 14383 "src/ocaml/preprocess/parser_raw.ml" - in - let (_endpos__1_, _startpos__1_) = (_endpos_op_, _startpos_op_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 14942 "src/ocaml/preprocess/parser_raw.ml" + in + let (_endpos__1_, _startpos__1_) = (_endpos_op_, _startpos_op_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1323 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 14392 "src/ocaml/preprocess/parser_raw.ml" +# 14951 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos_e2_ in + let _symbolstartpos = _startpos_e1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos = _endpos_e2_ in - let _symbolstartpos = _startpos_e1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 3041 "src/ocaml/preprocess/parser_raw.mly" +# 3048 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 14401 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 2947 "src/ocaml/preprocess/parser_raw.mly" +# 14960 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 2951 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 14407 "src/ocaml/preprocess/parser_raw.ml" - in +# 14966 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -14439,50 +14999,52 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_e1_ in let _endpos = _endpos__1_inlined1_ in - let _v : (Parsetree.expression) = let _1 = - let e2 = - let _1 = _1_inlined1 in - let _1 = + let _v = + let _1 = + let e2 = + let _1 = _1_inlined1 in + let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 14449 "src/ocaml/preprocess/parser_raw.ml" - in - -# 2981 "src/ocaml/preprocess/parser_raw.mly" +# 15010 "src/ocaml/preprocess/parser_raw.ml" + in + +# 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 14454 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_e2_ = _endpos__1_inlined1_ in - let op = - let _1 = -# 5074 "src/ocaml/preprocess/parser_raw.mly" +# 15015 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_e2_ = _endpos__1_inlined1_ in + let op = + let _1 = +# 5085 "src/ocaml/preprocess/parser_raw.mly" ("@") -# 14462 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 15023 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1323 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 14470 "src/ocaml/preprocess/parser_raw.ml" +# 15031 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos_e2_ in + let _symbolstartpos = _startpos_e1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos = _endpos_e2_ in - let _symbolstartpos = _startpos_e1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 3041 "src/ocaml/preprocess/parser_raw.mly" +# 3048 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 14479 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 2947 "src/ocaml/preprocess/parser_raw.mly" +# 15040 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 2951 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 14485 "src/ocaml/preprocess/parser_raw.ml" - in +# 15046 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -14538,50 +15100,51 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_e1_ in let _endpos = _endpos_xs_ in - let _v : (Parsetree.expression) = let _1 = - let e2 = - let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in - let _1 = - let _3 = - let xs = - let xs = -# 253 "" + let _v = + let _1 = + let e2 = + let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in + let _1 = + let _3 = + let xs = + let xs = +# 264 "" ( List.rev xs ) -# 14551 "src/ocaml/preprocess/parser_raw.ml" - in - +# 15114 "src/ocaml/preprocess/parser_raw.ml" + in + # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 14556 "src/ocaml/preprocess/parser_raw.ml" +# 15119 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 3510 "src/ocaml/preprocess/parser_raw.mly" + ( xs ) +# 15125 "src/ocaml/preprocess/parser_raw.ml" in - -# 3499 "src/ocaml/preprocess/parser_raw.mly" - ( xs ) -# 14562 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__3_ = _endpos_xs_ in - let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in + let _endpos__3_ = _endpos_xs_ in let _2 = - let _1 = _1_inlined1 in - -# 5392 "src/ocaml/preprocess/parser_raw.mly" + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in + let _2 = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 14573 "src/ocaml/preprocess/parser_raw.ml" +# 15136 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 5405 "src/ocaml/preprocess/parser_raw.mly" +# 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 14579 "src/ocaml/preprocess/parser_raw.ml" +# 15142 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 2718 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in @@ -14595,45 +15158,46 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 14599 "src/ocaml/preprocess/parser_raw.ml" +# 15162 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 2981 "src/ocaml/preprocess/parser_raw.mly" +# 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 14605 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_e2_ = _endpos_xs_ in - let op = - let _1 = -# 5074 "src/ocaml/preprocess/parser_raw.mly" +# 15168 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_e2_ = _endpos_xs_ in + let op = + let _1 = +# 5085 "src/ocaml/preprocess/parser_raw.mly" ("@") -# 14613 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 15176 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1323 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 14621 "src/ocaml/preprocess/parser_raw.ml" +# 15184 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos_e2_ in + let _symbolstartpos = _startpos_e1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos = _endpos_e2_ in - let _symbolstartpos = _startpos_e1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 3041 "src/ocaml/preprocess/parser_raw.mly" +# 3048 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 14630 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 2947 "src/ocaml/preprocess/parser_raw.mly" +# 15193 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 2951 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 14636 "src/ocaml/preprocess/parser_raw.ml" - in +# 15199 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -14668,50 +15232,52 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_e1_ in let _endpos = _endpos__1_inlined1_ in - let _v : (Parsetree.expression) = let _1 = - let e2 = - let _1 = _1_inlined1 in - let _1 = + let _v = + let _1 = + let e2 = + let _1 = _1_inlined1 in + let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 14678 "src/ocaml/preprocess/parser_raw.ml" - in - -# 2981 "src/ocaml/preprocess/parser_raw.mly" +# 15243 "src/ocaml/preprocess/parser_raw.ml" + in + +# 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 14683 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_e2_ = _endpos__1_inlined1_ in - let op = - let _1 = -# 5075 "src/ocaml/preprocess/parser_raw.mly" +# 15248 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_e2_ = _endpos__1_inlined1_ in + let op = + let _1 = +# 5086 "src/ocaml/preprocess/parser_raw.mly" ("@@") -# 14691 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 15256 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1323 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 14699 "src/ocaml/preprocess/parser_raw.ml" +# 15264 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos_e2_ in + let _symbolstartpos = _startpos_e1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos = _endpos_e2_ in - let _symbolstartpos = _startpos_e1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 3041 "src/ocaml/preprocess/parser_raw.mly" +# 3048 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 14708 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 2947 "src/ocaml/preprocess/parser_raw.mly" +# 15273 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 2951 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 14714 "src/ocaml/preprocess/parser_raw.ml" - in +# 15279 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -14767,50 +15333,51 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_e1_ in let _endpos = _endpos_xs_ in - let _v : (Parsetree.expression) = let _1 = - let e2 = - let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in - let _1 = - let _3 = - let xs = - let xs = -# 253 "" + let _v = + let _1 = + let e2 = + let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in + let _1 = + let _3 = + let xs = + let xs = +# 264 "" ( List.rev xs ) -# 14780 "src/ocaml/preprocess/parser_raw.ml" - in - +# 15347 "src/ocaml/preprocess/parser_raw.ml" + in + # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 14785 "src/ocaml/preprocess/parser_raw.ml" +# 15352 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 3499 "src/ocaml/preprocess/parser_raw.mly" +# 3510 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 14791 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__3_ = _endpos_xs_ in - let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in +# 15358 "src/ocaml/preprocess/parser_raw.ml" -# 5392 "src/ocaml/preprocess/parser_raw.mly" + in + let _endpos__3_ = _endpos_xs_ in + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in + let _2 = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 14802 "src/ocaml/preprocess/parser_raw.ml" +# 15369 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 5405 "src/ocaml/preprocess/parser_raw.mly" +# 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 14808 "src/ocaml/preprocess/parser_raw.ml" +# 15375 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 2718 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in @@ -14824,45 +15391,46 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 14828 "src/ocaml/preprocess/parser_raw.ml" +# 15395 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 2981 "src/ocaml/preprocess/parser_raw.mly" +# 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 14834 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_e2_ = _endpos_xs_ in - let op = - let _1 = -# 5075 "src/ocaml/preprocess/parser_raw.mly" +# 15401 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_e2_ = _endpos_xs_ in + let op = + let _1 = +# 5086 "src/ocaml/preprocess/parser_raw.mly" ("@@") -# 14842 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 15409 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1323 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 14850 "src/ocaml/preprocess/parser_raw.ml" +# 15417 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos_e2_ in + let _symbolstartpos = _startpos_e1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos = _endpos_e2_ in - let _symbolstartpos = _startpos_e1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 3041 "src/ocaml/preprocess/parser_raw.mly" +# 3048 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 14859 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 2947 "src/ocaml/preprocess/parser_raw.mly" +# 15426 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 2951 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 14865 "src/ocaml/preprocess/parser_raw.ml" - in +# 15432 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -14895,56 +15463,58 @@ module Tables = struct let op : ( # 1069 "src/ocaml/preprocess/parser_raw.mly" (string) -# 14899 "src/ocaml/preprocess/parser_raw.ml" +# 15467 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic op in let e1 : (Parsetree.expression) = Obj.magic e1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_e1_ in let _endpos = _endpos__1_ in - let _v : (Parsetree.expression) = let _1 = - let e2 = - let _1 = + let _v = + let _1 = + let e2 = + let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 14910 "src/ocaml/preprocess/parser_raw.ml" - in - -# 2981 "src/ocaml/preprocess/parser_raw.mly" +# 15479 "src/ocaml/preprocess/parser_raw.ml" + in + +# 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 14915 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_e2_ = _endpos__1_ in - let op = - let _1 = -# 5076 "src/ocaml/preprocess/parser_raw.mly" +# 15484 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_e2_ = _endpos__1_ in + let op = + let _1 = +# 5087 "src/ocaml/preprocess/parser_raw.mly" ( op ) -# 14923 "src/ocaml/preprocess/parser_raw.ml" - in - let (_endpos__1_, _startpos__1_) = (_endpos_op_, _startpos_op_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 15492 "src/ocaml/preprocess/parser_raw.ml" + in + let (_endpos__1_, _startpos__1_) = (_endpos_op_, _startpos_op_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1323 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 14932 "src/ocaml/preprocess/parser_raw.ml" +# 15501 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos_e2_ in + let _symbolstartpos = _startpos_e1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos = _endpos_e2_ in - let _symbolstartpos = _startpos_e1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 3041 "src/ocaml/preprocess/parser_raw.mly" +# 3048 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 14941 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 2947 "src/ocaml/preprocess/parser_raw.mly" +# 15510 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 2951 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 14947 "src/ocaml/preprocess/parser_raw.ml" - in +# 15516 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -14998,55 +15568,56 @@ module Tables = struct let op : ( # 1069 "src/ocaml/preprocess/parser_raw.mly" (string) -# 15002 "src/ocaml/preprocess/parser_raw.ml" +# 15572 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic op in let e1 : (Parsetree.expression) = Obj.magic e1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_e1_ in let _endpos = _endpos_xs_ in - let _v : (Parsetree.expression) = let _1 = - let e2 = - let _1 = - let _3 = - let xs = - let xs = -# 253 "" + let _v = + let _1 = + let e2 = + let _1 = + let _3 = + let xs = + let xs = +# 264 "" ( List.rev xs ) -# 15016 "src/ocaml/preprocess/parser_raw.ml" - in - +# 15587 "src/ocaml/preprocess/parser_raw.ml" + in + # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 15021 "src/ocaml/preprocess/parser_raw.ml" +# 15592 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 3499 "src/ocaml/preprocess/parser_raw.mly" +# 3510 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 15027 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__3_ = _endpos_xs_ in - let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in +# 15598 "src/ocaml/preprocess/parser_raw.ml" -# 5392 "src/ocaml/preprocess/parser_raw.mly" + in + let _endpos__3_ = _endpos_xs_ in + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in + let _2 = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 15038 "src/ocaml/preprocess/parser_raw.ml" +# 15609 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 5405 "src/ocaml/preprocess/parser_raw.mly" +# 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 15044 "src/ocaml/preprocess/parser_raw.ml" +# 15615 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 2718 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in @@ -15060,46 +15631,47 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 15064 "src/ocaml/preprocess/parser_raw.ml" +# 15635 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 2981 "src/ocaml/preprocess/parser_raw.mly" +# 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 15070 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_e2_ = _endpos_xs_ in - let op = - let _1 = -# 5076 "src/ocaml/preprocess/parser_raw.mly" +# 15641 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_e2_ = _endpos_xs_ in + let op = + let _1 = +# 5087 "src/ocaml/preprocess/parser_raw.mly" ( op ) -# 15078 "src/ocaml/preprocess/parser_raw.ml" - in - let (_endpos__1_, _startpos__1_) = (_endpos_op_, _startpos_op_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 15649 "src/ocaml/preprocess/parser_raw.ml" + in + let (_endpos__1_, _startpos__1_) = (_endpos_op_, _startpos_op_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1323 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 15087 "src/ocaml/preprocess/parser_raw.ml" +# 15658 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos_e2_ in + let _symbolstartpos = _startpos_e1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos = _endpos_e2_ in - let _symbolstartpos = _startpos_e1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 3041 "src/ocaml/preprocess/parser_raw.mly" +# 3048 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 15096 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 2947 "src/ocaml/preprocess/parser_raw.mly" +# 15667 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 2951 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 15102 "src/ocaml/preprocess/parser_raw.ml" - in +# 15673 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -15132,56 +15704,58 @@ module Tables = struct let op : ( # 1070 "src/ocaml/preprocess/parser_raw.mly" (string) -# 15136 "src/ocaml/preprocess/parser_raw.ml" +# 15708 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic op in let e1 : (Parsetree.expression) = Obj.magic e1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_e1_ in let _endpos = _endpos__1_ in - let _v : (Parsetree.expression) = let _1 = - let e2 = - let _1 = + let _v = + let _1 = + let e2 = + let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 15147 "src/ocaml/preprocess/parser_raw.ml" - in - -# 2981 "src/ocaml/preprocess/parser_raw.mly" +# 15720 "src/ocaml/preprocess/parser_raw.ml" + in + +# 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 15152 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_e2_ = _endpos__1_ in - let op = - let _1 = -# 5077 "src/ocaml/preprocess/parser_raw.mly" +# 15725 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_e2_ = _endpos__1_ in + let op = + let _1 = +# 5088 "src/ocaml/preprocess/parser_raw.mly" ( op ) -# 15160 "src/ocaml/preprocess/parser_raw.ml" - in - let (_endpos__1_, _startpos__1_) = (_endpos_op_, _startpos_op_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 15733 "src/ocaml/preprocess/parser_raw.ml" + in + let (_endpos__1_, _startpos__1_) = (_endpos_op_, _startpos_op_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1323 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 15169 "src/ocaml/preprocess/parser_raw.ml" +# 15742 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos_e2_ in + let _symbolstartpos = _startpos_e1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos = _endpos_e2_ in - let _symbolstartpos = _startpos_e1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 3041 "src/ocaml/preprocess/parser_raw.mly" +# 3048 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 15178 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 2947 "src/ocaml/preprocess/parser_raw.mly" +# 15751 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 2951 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 15184 "src/ocaml/preprocess/parser_raw.ml" - in +# 15757 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -15235,55 +15809,56 @@ module Tables = struct let op : ( # 1070 "src/ocaml/preprocess/parser_raw.mly" (string) -# 15239 "src/ocaml/preprocess/parser_raw.ml" +# 15813 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic op in let e1 : (Parsetree.expression) = Obj.magic e1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_e1_ in let _endpos = _endpos_xs_ in - let _v : (Parsetree.expression) = let _1 = - let e2 = - let _1 = - let _3 = - let xs = - let xs = -# 253 "" + let _v = + let _1 = + let e2 = + let _1 = + let _3 = + let xs = + let xs = +# 264 "" ( List.rev xs ) -# 15253 "src/ocaml/preprocess/parser_raw.ml" - in - +# 15828 "src/ocaml/preprocess/parser_raw.ml" + in + # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 15258 "src/ocaml/preprocess/parser_raw.ml" +# 15833 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 3499 "src/ocaml/preprocess/parser_raw.mly" +# 3510 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 15264 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__3_ = _endpos_xs_ in - let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in +# 15839 "src/ocaml/preprocess/parser_raw.ml" -# 5392 "src/ocaml/preprocess/parser_raw.mly" + in + let _endpos__3_ = _endpos_xs_ in + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in + let _2 = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 15275 "src/ocaml/preprocess/parser_raw.ml" +# 15850 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 5405 "src/ocaml/preprocess/parser_raw.mly" +# 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 15281 "src/ocaml/preprocess/parser_raw.ml" +# 15856 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 2718 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in @@ -15297,46 +15872,47 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 15301 "src/ocaml/preprocess/parser_raw.ml" +# 15876 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 2981 "src/ocaml/preprocess/parser_raw.mly" +# 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 15307 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_e2_ = _endpos_xs_ in - let op = - let _1 = -# 5077 "src/ocaml/preprocess/parser_raw.mly" +# 15882 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_e2_ = _endpos_xs_ in + let op = + let _1 = +# 5088 "src/ocaml/preprocess/parser_raw.mly" ( op ) -# 15315 "src/ocaml/preprocess/parser_raw.ml" - in - let (_endpos__1_, _startpos__1_) = (_endpos_op_, _startpos_op_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 15890 "src/ocaml/preprocess/parser_raw.ml" + in + let (_endpos__1_, _startpos__1_) = (_endpos_op_, _startpos_op_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1323 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 15324 "src/ocaml/preprocess/parser_raw.ml" +# 15899 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos_e2_ in + let _symbolstartpos = _startpos_e1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos = _endpos_e2_ in - let _symbolstartpos = _startpos_e1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 3041 "src/ocaml/preprocess/parser_raw.mly" +# 3048 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 15333 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 2947 "src/ocaml/preprocess/parser_raw.mly" +# 15908 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 2951 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 15339 "src/ocaml/preprocess/parser_raw.ml" - in +# 15914 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -15369,63 +15945,65 @@ module Tables = struct let op : ( # 1071 "src/ocaml/preprocess/parser_raw.mly" (string) -# 15373 "src/ocaml/preprocess/parser_raw.ml" +# 15949 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic op in let e1 : (Parsetree.expression) = Obj.magic e1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_e1_ in let _endpos = _endpos__1_ in - let _v : (Parsetree.expression) = let _1 = - let e2 = - let _1 = + let _v = + let _1 = + let e2 = + let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 15384 "src/ocaml/preprocess/parser_raw.ml" - in - -# 2981 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 15389 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_e2_ = _endpos__1_ in - let op = - let _1 = - let op = -# 5068 "src/ocaml/preprocess/parser_raw.mly" - ( op ) -# 15398 "src/ocaml/preprocess/parser_raw.ml" +# 15961 "src/ocaml/preprocess/parser_raw.ml" in -# 5078 "src/ocaml/preprocess/parser_raw.mly" +# 2985 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 15966 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_e2_ = _endpos__1_ in + let op = + let _1 = + let op = +# 5079 "src/ocaml/preprocess/parser_raw.mly" + ( op ) +# 15975 "src/ocaml/preprocess/parser_raw.ml" + in + +# 5089 "src/ocaml/preprocess/parser_raw.mly" ( op ) -# 15403 "src/ocaml/preprocess/parser_raw.ml" +# 15980 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos_op_, _startpos_op_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 1323 "src/ocaml/preprocess/parser_raw.mly" + ( mkoperator ~loc:_sloc _1 ) +# 15990 "src/ocaml/preprocess/parser_raw.ml" in - let (_endpos__1_, _startpos__1_) = (_endpos_op_, _startpos_op_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in + let _endpos = _endpos_e2_ in + let _symbolstartpos = _startpos_e1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1323 "src/ocaml/preprocess/parser_raw.mly" - ( mkoperator ~loc:_sloc _1 ) -# 15413 "src/ocaml/preprocess/parser_raw.ml" +# 3048 "src/ocaml/preprocess/parser_raw.mly" + ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) +# 15999 "src/ocaml/preprocess/parser_raw.ml" in - let _endpos = _endpos_e2_ in - let _symbolstartpos = _startpos_e1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 3041 "src/ocaml/preprocess/parser_raw.mly" - ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 15422 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 2947 "src/ocaml/preprocess/parser_raw.mly" + ( +# 2951 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 15428 "src/ocaml/preprocess/parser_raw.ml" - in +# 16005 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -15479,55 +16057,56 @@ module Tables = struct let op : ( # 1071 "src/ocaml/preprocess/parser_raw.mly" (string) -# 15483 "src/ocaml/preprocess/parser_raw.ml" +# 16061 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic op in let e1 : (Parsetree.expression) = Obj.magic e1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_e1_ in let _endpos = _endpos_xs_ in - let _v : (Parsetree.expression) = let _1 = - let e2 = - let _1 = - let _3 = - let xs = - let xs = -# 253 "" + let _v = + let _1 = + let e2 = + let _1 = + let _3 = + let xs = + let xs = +# 264 "" ( List.rev xs ) -# 15497 "src/ocaml/preprocess/parser_raw.ml" - in - +# 16076 "src/ocaml/preprocess/parser_raw.ml" + in + # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 15502 "src/ocaml/preprocess/parser_raw.ml" +# 16081 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 3510 "src/ocaml/preprocess/parser_raw.mly" + ( xs ) +# 16087 "src/ocaml/preprocess/parser_raw.ml" in - -# 3499 "src/ocaml/preprocess/parser_raw.mly" - ( xs ) -# 15508 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__3_ = _endpos_xs_ in - let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in + let _endpos__3_ = _endpos_xs_ in let _2 = - let _1 = _1_inlined1 in - -# 5392 "src/ocaml/preprocess/parser_raw.mly" + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in + let _2 = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 15519 "src/ocaml/preprocess/parser_raw.ml" +# 16098 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 5405 "src/ocaml/preprocess/parser_raw.mly" +# 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 15525 "src/ocaml/preprocess/parser_raw.ml" +# 16104 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 2718 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in @@ -15541,53 +16120,54 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 15545 "src/ocaml/preprocess/parser_raw.ml" +# 16124 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 2981 "src/ocaml/preprocess/parser_raw.mly" +# 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 15551 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_e2_ = _endpos_xs_ in - let op = - let _1 = - let op = -# 5068 "src/ocaml/preprocess/parser_raw.mly" - ( op ) -# 15560 "src/ocaml/preprocess/parser_raw.ml" - in +# 16130 "src/ocaml/preprocess/parser_raw.ml" -# 5078 "src/ocaml/preprocess/parser_raw.mly" + in + let _endpos_e2_ = _endpos_xs_ in + let op = + let _1 = + let op = +# 5079 "src/ocaml/preprocess/parser_raw.mly" + ( op ) +# 16139 "src/ocaml/preprocess/parser_raw.ml" + in + +# 5089 "src/ocaml/preprocess/parser_raw.mly" ( op ) -# 15565 "src/ocaml/preprocess/parser_raw.ml" +# 16144 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos_op_, _startpos_op_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 1323 "src/ocaml/preprocess/parser_raw.mly" + ( mkoperator ~loc:_sloc _1 ) +# 16154 "src/ocaml/preprocess/parser_raw.ml" in - let (_endpos__1_, _startpos__1_) = (_endpos_op_, _startpos_op_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in + let _endpos = _endpos_e2_ in + let _symbolstartpos = _startpos_e1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1323 "src/ocaml/preprocess/parser_raw.mly" - ( mkoperator ~loc:_sloc _1 ) -# 15575 "src/ocaml/preprocess/parser_raw.ml" +# 3048 "src/ocaml/preprocess/parser_raw.mly" + ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) +# 16163 "src/ocaml/preprocess/parser_raw.ml" in - let _endpos = _endpos_e2_ in - let _symbolstartpos = _startpos_e1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 3041 "src/ocaml/preprocess/parser_raw.mly" - ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 15584 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 2947 "src/ocaml/preprocess/parser_raw.mly" + ( +# 2951 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 15590 "src/ocaml/preprocess/parser_raw.ml" - in +# 16169 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -15622,57 +16202,59 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_e1_ in let _endpos = _endpos__1_inlined1_ in - let _v : (Parsetree.expression) = let _1 = - let e2 = - let _1 = _1_inlined1 in - let _1 = + let _v = + let _1 = + let e2 = + let _1 = _1_inlined1 in + let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 15632 "src/ocaml/preprocess/parser_raw.ml" - in - -# 2981 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 15637 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_e2_ = _endpos__1_inlined1_ in - let op = - let _1 = - let op = -# 5069 "src/ocaml/preprocess/parser_raw.mly" - ( "mod" ) -# 15646 "src/ocaml/preprocess/parser_raw.ml" +# 16213 "src/ocaml/preprocess/parser_raw.ml" in -# 5078 "src/ocaml/preprocess/parser_raw.mly" +# 2985 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 16218 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_e2_ = _endpos__1_inlined1_ in + let op = + let _1 = + let op = +# 5080 "src/ocaml/preprocess/parser_raw.mly" + ( "mod" ) +# 16227 "src/ocaml/preprocess/parser_raw.ml" + in + +# 5089 "src/ocaml/preprocess/parser_raw.mly" ( op ) -# 15651 "src/ocaml/preprocess/parser_raw.ml" +# 16232 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 1323 "src/ocaml/preprocess/parser_raw.mly" + ( mkoperator ~loc:_sloc _1 ) +# 16241 "src/ocaml/preprocess/parser_raw.ml" in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in + let _endpos = _endpos_e2_ in + let _symbolstartpos = _startpos_e1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1323 "src/ocaml/preprocess/parser_raw.mly" - ( mkoperator ~loc:_sloc _1 ) -# 15660 "src/ocaml/preprocess/parser_raw.ml" +# 3048 "src/ocaml/preprocess/parser_raw.mly" + ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) +# 16250 "src/ocaml/preprocess/parser_raw.ml" in - let _endpos = _endpos_e2_ in - let _symbolstartpos = _startpos_e1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 3041 "src/ocaml/preprocess/parser_raw.mly" - ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 15669 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 2947 "src/ocaml/preprocess/parser_raw.mly" + ( +# 2951 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 15675 "src/ocaml/preprocess/parser_raw.ml" - in +# 16256 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -15728,50 +16310,51 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_e1_ in let _endpos = _endpos_xs_ in - let _v : (Parsetree.expression) = let _1 = - let e2 = - let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in - let _1 = - let _3 = - let xs = - let xs = -# 253 "" + let _v = + let _1 = + let e2 = + let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in + let _1 = + let _3 = + let xs = + let xs = +# 264 "" ( List.rev xs ) -# 15741 "src/ocaml/preprocess/parser_raw.ml" - in - +# 16324 "src/ocaml/preprocess/parser_raw.ml" + in + # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 15746 "src/ocaml/preprocess/parser_raw.ml" +# 16329 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 3499 "src/ocaml/preprocess/parser_raw.mly" +# 3510 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 15752 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__3_ = _endpos_xs_ in - let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in +# 16335 "src/ocaml/preprocess/parser_raw.ml" -# 5392 "src/ocaml/preprocess/parser_raw.mly" + in + let _endpos__3_ = _endpos_xs_ in + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in + let _2 = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 15763 "src/ocaml/preprocess/parser_raw.ml" +# 16346 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 5405 "src/ocaml/preprocess/parser_raw.mly" +# 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 15769 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 16352 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2718 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in @@ -15785,52 +16368,53 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 15789 "src/ocaml/preprocess/parser_raw.ml" +# 16372 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 2981 "src/ocaml/preprocess/parser_raw.mly" +# 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 15795 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_e2_ = _endpos_xs_ in - let op = - let _1 = - let op = -# 5069 "src/ocaml/preprocess/parser_raw.mly" - ( "mod" ) -# 15804 "src/ocaml/preprocess/parser_raw.ml" - in +# 16378 "src/ocaml/preprocess/parser_raw.ml" -# 5078 "src/ocaml/preprocess/parser_raw.mly" + in + let _endpos_e2_ = _endpos_xs_ in + let op = + let _1 = + let op = +# 5080 "src/ocaml/preprocess/parser_raw.mly" + ( "mod" ) +# 16387 "src/ocaml/preprocess/parser_raw.ml" + in + +# 5089 "src/ocaml/preprocess/parser_raw.mly" ( op ) -# 15809 "src/ocaml/preprocess/parser_raw.ml" +# 16392 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 1323 "src/ocaml/preprocess/parser_raw.mly" + ( mkoperator ~loc:_sloc _1 ) +# 16401 "src/ocaml/preprocess/parser_raw.ml" in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in + let _endpos = _endpos_e2_ in + let _symbolstartpos = _startpos_e1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1323 "src/ocaml/preprocess/parser_raw.mly" - ( mkoperator ~loc:_sloc _1 ) -# 15818 "src/ocaml/preprocess/parser_raw.ml" +# 3048 "src/ocaml/preprocess/parser_raw.mly" + ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) +# 16410 "src/ocaml/preprocess/parser_raw.ml" in - let _endpos = _endpos_e2_ in - let _symbolstartpos = _startpos_e1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 3041 "src/ocaml/preprocess/parser_raw.mly" - ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 15827 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 2947 "src/ocaml/preprocess/parser_raw.mly" + ( +# 2951 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 15833 "src/ocaml/preprocess/parser_raw.ml" - in +# 16416 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -15863,56 +16447,58 @@ module Tables = struct let op : ( # 1072 "src/ocaml/preprocess/parser_raw.mly" (string) -# 15867 "src/ocaml/preprocess/parser_raw.ml" +# 16451 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic op in let e1 : (Parsetree.expression) = Obj.magic e1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_e1_ in let _endpos = _endpos__1_ in - let _v : (Parsetree.expression) = let _1 = - let e2 = - let _1 = + let _v = + let _1 = + let e2 = + let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 15878 "src/ocaml/preprocess/parser_raw.ml" - in - -# 2981 "src/ocaml/preprocess/parser_raw.mly" +# 16463 "src/ocaml/preprocess/parser_raw.ml" + in + +# 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 15883 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_e2_ = _endpos__1_ in - let op = - let _1 = -# 5079 "src/ocaml/preprocess/parser_raw.mly" +# 16468 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_e2_ = _endpos__1_ in + let op = + let _1 = +# 5090 "src/ocaml/preprocess/parser_raw.mly" ( op ) -# 15891 "src/ocaml/preprocess/parser_raw.ml" - in - let (_endpos__1_, _startpos__1_) = (_endpos_op_, _startpos_op_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 16476 "src/ocaml/preprocess/parser_raw.ml" + in + let (_endpos__1_, _startpos__1_) = (_endpos_op_, _startpos_op_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1323 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 15900 "src/ocaml/preprocess/parser_raw.ml" +# 16485 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos_e2_ in + let _symbolstartpos = _startpos_e1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos = _endpos_e2_ in - let _symbolstartpos = _startpos_e1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 3041 "src/ocaml/preprocess/parser_raw.mly" +# 3048 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 15909 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 2947 "src/ocaml/preprocess/parser_raw.mly" +# 16494 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 2951 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 15915 "src/ocaml/preprocess/parser_raw.ml" - in +# 16500 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -15966,55 +16552,56 @@ module Tables = struct let op : ( # 1072 "src/ocaml/preprocess/parser_raw.mly" (string) -# 15970 "src/ocaml/preprocess/parser_raw.ml" +# 16556 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic op in let e1 : (Parsetree.expression) = Obj.magic e1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_e1_ in let _endpos = _endpos_xs_ in - let _v : (Parsetree.expression) = let _1 = - let e2 = - let _1 = - let _3 = - let xs = - let xs = -# 253 "" + let _v = + let _1 = + let e2 = + let _1 = + let _3 = + let xs = + let xs = +# 264 "" ( List.rev xs ) -# 15984 "src/ocaml/preprocess/parser_raw.ml" - in - +# 16571 "src/ocaml/preprocess/parser_raw.ml" + in + # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 15989 "src/ocaml/preprocess/parser_raw.ml" +# 16576 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 3499 "src/ocaml/preprocess/parser_raw.mly" +# 3510 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 15995 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__3_ = _endpos_xs_ in - let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in +# 16582 "src/ocaml/preprocess/parser_raw.ml" -# 5392 "src/ocaml/preprocess/parser_raw.mly" + in + let _endpos__3_ = _endpos_xs_ in + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in + let _2 = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 16006 "src/ocaml/preprocess/parser_raw.ml" +# 16593 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 5405 "src/ocaml/preprocess/parser_raw.mly" +# 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 16012 "src/ocaml/preprocess/parser_raw.ml" +# 16599 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 2718 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in @@ -16028,46 +16615,47 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 16032 "src/ocaml/preprocess/parser_raw.ml" +# 16619 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 2981 "src/ocaml/preprocess/parser_raw.mly" +# 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 16038 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_e2_ = _endpos_xs_ in - let op = - let _1 = -# 5079 "src/ocaml/preprocess/parser_raw.mly" +# 16625 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_e2_ = _endpos_xs_ in + let op = + let _1 = +# 5090 "src/ocaml/preprocess/parser_raw.mly" ( op ) -# 16046 "src/ocaml/preprocess/parser_raw.ml" - in - let (_endpos__1_, _startpos__1_) = (_endpos_op_, _startpos_op_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 16633 "src/ocaml/preprocess/parser_raw.ml" + in + let (_endpos__1_, _startpos__1_) = (_endpos_op_, _startpos_op_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1323 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 16055 "src/ocaml/preprocess/parser_raw.ml" +# 16642 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos_e2_ in + let _symbolstartpos = _startpos_e1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos = _endpos_e2_ in - let _symbolstartpos = _startpos_e1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 3041 "src/ocaml/preprocess/parser_raw.mly" +# 3048 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 16064 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 2947 "src/ocaml/preprocess/parser_raw.mly" +# 16651 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 2951 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 16070 "src/ocaml/preprocess/parser_raw.ml" - in +# 16657 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -16102,50 +16690,52 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_e1_ in let _endpos = _endpos__1_inlined1_ in - let _v : (Parsetree.expression) = let _1 = - let e2 = - let _1 = _1_inlined1 in - let _1 = + let _v = + let _1 = + let e2 = + let _1 = _1_inlined1 in + let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 16112 "src/ocaml/preprocess/parser_raw.ml" - in - -# 2981 "src/ocaml/preprocess/parser_raw.mly" +# 16701 "src/ocaml/preprocess/parser_raw.ml" + in + +# 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 16117 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_e2_ = _endpos__1_inlined1_ in - let op = - let _1 = -# 5080 "src/ocaml/preprocess/parser_raw.mly" +# 16706 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_e2_ = _endpos__1_inlined1_ in + let op = + let _1 = +# 5091 "src/ocaml/preprocess/parser_raw.mly" ("+") -# 16125 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 16714 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1323 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 16133 "src/ocaml/preprocess/parser_raw.ml" +# 16722 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos_e2_ in + let _symbolstartpos = _startpos_e1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos = _endpos_e2_ in - let _symbolstartpos = _startpos_e1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 3041 "src/ocaml/preprocess/parser_raw.mly" +# 3048 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 16142 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 2947 "src/ocaml/preprocess/parser_raw.mly" +# 16731 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 2951 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 16148 "src/ocaml/preprocess/parser_raw.ml" - in +# 16737 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -16201,50 +16791,51 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_e1_ in let _endpos = _endpos_xs_ in - let _v : (Parsetree.expression) = let _1 = - let e2 = - let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in - let _1 = - let _3 = - let xs = - let xs = -# 253 "" + let _v = + let _1 = + let e2 = + let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in + let _1 = + let _3 = + let xs = + let xs = +# 264 "" ( List.rev xs ) -# 16214 "src/ocaml/preprocess/parser_raw.ml" - in - +# 16805 "src/ocaml/preprocess/parser_raw.ml" + in + # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 16219 "src/ocaml/preprocess/parser_raw.ml" +# 16810 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 3499 "src/ocaml/preprocess/parser_raw.mly" +# 3510 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 16225 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__3_ = _endpos_xs_ in - let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in +# 16816 "src/ocaml/preprocess/parser_raw.ml" -# 5392 "src/ocaml/preprocess/parser_raw.mly" + in + let _endpos__3_ = _endpos_xs_ in + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in + let _2 = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 16236 "src/ocaml/preprocess/parser_raw.ml" +# 16827 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 5405 "src/ocaml/preprocess/parser_raw.mly" +# 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 16242 "src/ocaml/preprocess/parser_raw.ml" +# 16833 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 2718 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in @@ -16258,45 +16849,46 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 16262 "src/ocaml/preprocess/parser_raw.ml" +# 16853 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 2981 "src/ocaml/preprocess/parser_raw.mly" +# 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 16268 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_e2_ = _endpos_xs_ in - let op = - let _1 = -# 5080 "src/ocaml/preprocess/parser_raw.mly" +# 16859 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_e2_ = _endpos_xs_ in + let op = + let _1 = +# 5091 "src/ocaml/preprocess/parser_raw.mly" ("+") -# 16276 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 16867 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1323 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 16284 "src/ocaml/preprocess/parser_raw.ml" +# 16875 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos_e2_ in + let _symbolstartpos = _startpos_e1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos = _endpos_e2_ in - let _symbolstartpos = _startpos_e1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 3041 "src/ocaml/preprocess/parser_raw.mly" +# 3048 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 16293 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 2947 "src/ocaml/preprocess/parser_raw.mly" +# 16884 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 2951 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 16299 "src/ocaml/preprocess/parser_raw.ml" - in +# 16890 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -16331,50 +16923,52 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_e1_ in let _endpos = _endpos__1_inlined1_ in - let _v : (Parsetree.expression) = let _1 = - let e2 = - let _1 = _1_inlined1 in - let _1 = + let _v = + let _1 = + let e2 = + let _1 = _1_inlined1 in + let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 16341 "src/ocaml/preprocess/parser_raw.ml" - in - -# 2981 "src/ocaml/preprocess/parser_raw.mly" +# 16934 "src/ocaml/preprocess/parser_raw.ml" + in + +# 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 16346 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_e2_ = _endpos__1_inlined1_ in - let op = - let _1 = -# 5081 "src/ocaml/preprocess/parser_raw.mly" +# 16939 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_e2_ = _endpos__1_inlined1_ in + let op = + let _1 = +# 5092 "src/ocaml/preprocess/parser_raw.mly" ("+.") -# 16354 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 16947 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1323 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 16362 "src/ocaml/preprocess/parser_raw.ml" +# 16955 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos_e2_ in + let _symbolstartpos = _startpos_e1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos = _endpos_e2_ in - let _symbolstartpos = _startpos_e1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 3041 "src/ocaml/preprocess/parser_raw.mly" +# 3048 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 16371 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 2947 "src/ocaml/preprocess/parser_raw.mly" +# 16964 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 2951 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 16377 "src/ocaml/preprocess/parser_raw.ml" - in +# 16970 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -16430,50 +17024,51 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_e1_ in let _endpos = _endpos_xs_ in - let _v : (Parsetree.expression) = let _1 = - let e2 = - let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in - let _1 = - let _3 = - let xs = - let xs = -# 253 "" + let _v = + let _1 = + let e2 = + let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in + let _1 = + let _3 = + let xs = + let xs = +# 264 "" ( List.rev xs ) -# 16443 "src/ocaml/preprocess/parser_raw.ml" - in - +# 17038 "src/ocaml/preprocess/parser_raw.ml" + in + # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 16448 "src/ocaml/preprocess/parser_raw.ml" +# 17043 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 3499 "src/ocaml/preprocess/parser_raw.mly" +# 3510 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 16454 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__3_ = _endpos_xs_ in - let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in +# 17049 "src/ocaml/preprocess/parser_raw.ml" -# 5392 "src/ocaml/preprocess/parser_raw.mly" + in + let _endpos__3_ = _endpos_xs_ in + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in + let _2 = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 16465 "src/ocaml/preprocess/parser_raw.ml" +# 17060 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 5405 "src/ocaml/preprocess/parser_raw.mly" +# 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 16471 "src/ocaml/preprocess/parser_raw.ml" +# 17066 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 2718 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in @@ -16487,45 +17082,46 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 16491 "src/ocaml/preprocess/parser_raw.ml" +# 17086 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 2981 "src/ocaml/preprocess/parser_raw.mly" +# 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 16497 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_e2_ = _endpos_xs_ in - let op = - let _1 = -# 5081 "src/ocaml/preprocess/parser_raw.mly" +# 17092 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_e2_ = _endpos_xs_ in + let op = + let _1 = +# 5092 "src/ocaml/preprocess/parser_raw.mly" ("+.") -# 16505 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 17100 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1323 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 16513 "src/ocaml/preprocess/parser_raw.ml" +# 17108 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos_e2_ in + let _symbolstartpos = _startpos_e1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos = _endpos_e2_ in - let _symbolstartpos = _startpos_e1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 3041 "src/ocaml/preprocess/parser_raw.mly" +# 3048 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 16522 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 2947 "src/ocaml/preprocess/parser_raw.mly" +# 17117 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 2951 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 16528 "src/ocaml/preprocess/parser_raw.ml" - in +# 17123 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -16560,50 +17156,52 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_e1_ in let _endpos = _endpos__1_inlined1_ in - let _v : (Parsetree.expression) = let _1 = - let e2 = - let _1 = _1_inlined1 in - let _1 = + let _v = + let _1 = + let e2 = + let _1 = _1_inlined1 in + let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 16570 "src/ocaml/preprocess/parser_raw.ml" - in - -# 2981 "src/ocaml/preprocess/parser_raw.mly" +# 17167 "src/ocaml/preprocess/parser_raw.ml" + in + +# 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 16575 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_e2_ = _endpos__1_inlined1_ in - let op = - let _1 = -# 5082 "src/ocaml/preprocess/parser_raw.mly" +# 17172 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_e2_ = _endpos__1_inlined1_ in + let op = + let _1 = +# 5093 "src/ocaml/preprocess/parser_raw.mly" ("+=") -# 16583 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 17180 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1323 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 16591 "src/ocaml/preprocess/parser_raw.ml" +# 17188 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos_e2_ in + let _symbolstartpos = _startpos_e1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos = _endpos_e2_ in - let _symbolstartpos = _startpos_e1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 3041 "src/ocaml/preprocess/parser_raw.mly" +# 3048 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 16600 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 2947 "src/ocaml/preprocess/parser_raw.mly" +# 17197 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 2951 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 16606 "src/ocaml/preprocess/parser_raw.ml" - in +# 17203 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -16659,50 +17257,51 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_e1_ in let _endpos = _endpos_xs_ in - let _v : (Parsetree.expression) = let _1 = - let e2 = - let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in - let _1 = - let _3 = - let xs = - let xs = -# 253 "" + let _v = + let _1 = + let e2 = + let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in + let _1 = + let _3 = + let xs = + let xs = +# 264 "" ( List.rev xs ) -# 16672 "src/ocaml/preprocess/parser_raw.ml" - in - +# 17271 "src/ocaml/preprocess/parser_raw.ml" + in + # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 16677 "src/ocaml/preprocess/parser_raw.ml" +# 17276 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 3499 "src/ocaml/preprocess/parser_raw.mly" +# 3510 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 16683 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__3_ = _endpos_xs_ in - let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in +# 17282 "src/ocaml/preprocess/parser_raw.ml" -# 5392 "src/ocaml/preprocess/parser_raw.mly" + in + let _endpos__3_ = _endpos_xs_ in + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in + let _2 = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 16694 "src/ocaml/preprocess/parser_raw.ml" +# 17293 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 5405 "src/ocaml/preprocess/parser_raw.mly" +# 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 16700 "src/ocaml/preprocess/parser_raw.ml" +# 17299 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 2718 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in @@ -16716,45 +17315,46 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 16720 "src/ocaml/preprocess/parser_raw.ml" +# 17319 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 2985 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 17325 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_e2_ = _endpos_xs_ in + let op = + let _1 = +# 5093 "src/ocaml/preprocess/parser_raw.mly" + ("+=") +# 17333 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 1323 "src/ocaml/preprocess/parser_raw.mly" + ( mkoperator ~loc:_sloc _1 ) +# 17341 "src/ocaml/preprocess/parser_raw.ml" in - -# 2981 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 16726 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_e2_ = _endpos_xs_ in - let op = - let _1 = -# 5082 "src/ocaml/preprocess/parser_raw.mly" - ("+=") -# 16734 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in + let _endpos = _endpos_e2_ in + let _symbolstartpos = _startpos_e1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1323 "src/ocaml/preprocess/parser_raw.mly" - ( mkoperator ~loc:_sloc _1 ) -# 16742 "src/ocaml/preprocess/parser_raw.ml" +# 3048 "src/ocaml/preprocess/parser_raw.mly" + ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) +# 17350 "src/ocaml/preprocess/parser_raw.ml" in - let _endpos = _endpos_e2_ in - let _symbolstartpos = _startpos_e1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 3041 "src/ocaml/preprocess/parser_raw.mly" - ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 16751 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 2947 "src/ocaml/preprocess/parser_raw.mly" + ( +# 2951 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 16757 "src/ocaml/preprocess/parser_raw.ml" - in +# 17356 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -16789,50 +17389,52 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_e1_ in let _endpos = _endpos__1_inlined1_ in - let _v : (Parsetree.expression) = let _1 = - let e2 = - let _1 = _1_inlined1 in - let _1 = + let _v = + let _1 = + let e2 = + let _1 = _1_inlined1 in + let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 16799 "src/ocaml/preprocess/parser_raw.ml" - in - -# 2981 "src/ocaml/preprocess/parser_raw.mly" +# 17400 "src/ocaml/preprocess/parser_raw.ml" + in + +# 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 16804 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_e2_ = _endpos__1_inlined1_ in - let op = - let _1 = -# 5083 "src/ocaml/preprocess/parser_raw.mly" +# 17405 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_e2_ = _endpos__1_inlined1_ in + let op = + let _1 = +# 5094 "src/ocaml/preprocess/parser_raw.mly" ("-") -# 16812 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 17413 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1323 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 16820 "src/ocaml/preprocess/parser_raw.ml" +# 17421 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos_e2_ in + let _symbolstartpos = _startpos_e1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos = _endpos_e2_ in - let _symbolstartpos = _startpos_e1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 3041 "src/ocaml/preprocess/parser_raw.mly" +# 3048 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 16829 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 2947 "src/ocaml/preprocess/parser_raw.mly" +# 17430 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 2951 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 16835 "src/ocaml/preprocess/parser_raw.ml" - in +# 17436 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -16888,50 +17490,51 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_e1_ in let _endpos = _endpos_xs_ in - let _v : (Parsetree.expression) = let _1 = - let e2 = - let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in - let _1 = - let _3 = - let xs = - let xs = -# 253 "" + let _v = + let _1 = + let e2 = + let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in + let _1 = + let _3 = + let xs = + let xs = +# 264 "" ( List.rev xs ) -# 16901 "src/ocaml/preprocess/parser_raw.ml" - in - +# 17504 "src/ocaml/preprocess/parser_raw.ml" + in + # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 16906 "src/ocaml/preprocess/parser_raw.ml" +# 17509 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 3499 "src/ocaml/preprocess/parser_raw.mly" +# 3510 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 16912 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__3_ = _endpos_xs_ in - let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in +# 17515 "src/ocaml/preprocess/parser_raw.ml" -# 5392 "src/ocaml/preprocess/parser_raw.mly" + in + let _endpos__3_ = _endpos_xs_ in + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in + let _2 = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 16923 "src/ocaml/preprocess/parser_raw.ml" +# 17526 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 5405 "src/ocaml/preprocess/parser_raw.mly" +# 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 16929 "src/ocaml/preprocess/parser_raw.ml" +# 17532 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 2718 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in @@ -16945,45 +17548,46 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 16949 "src/ocaml/preprocess/parser_raw.ml" +# 17552 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 2981 "src/ocaml/preprocess/parser_raw.mly" +# 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 16955 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_e2_ = _endpos_xs_ in - let op = - let _1 = -# 5083 "src/ocaml/preprocess/parser_raw.mly" +# 17558 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_e2_ = _endpos_xs_ in + let op = + let _1 = +# 5094 "src/ocaml/preprocess/parser_raw.mly" ("-") -# 16963 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 17566 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1323 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 16971 "src/ocaml/preprocess/parser_raw.ml" +# 17574 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos_e2_ in + let _symbolstartpos = _startpos_e1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos = _endpos_e2_ in - let _symbolstartpos = _startpos_e1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 3041 "src/ocaml/preprocess/parser_raw.mly" +# 3048 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 16980 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 2947 "src/ocaml/preprocess/parser_raw.mly" +# 17583 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 2951 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 16986 "src/ocaml/preprocess/parser_raw.ml" - in +# 17589 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -17018,50 +17622,52 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_e1_ in let _endpos = _endpos__1_inlined1_ in - let _v : (Parsetree.expression) = let _1 = - let e2 = - let _1 = _1_inlined1 in - let _1 = + let _v = + let _1 = + let e2 = + let _1 = _1_inlined1 in + let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 17028 "src/ocaml/preprocess/parser_raw.ml" - in - -# 2981 "src/ocaml/preprocess/parser_raw.mly" +# 17633 "src/ocaml/preprocess/parser_raw.ml" + in + +# 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 17033 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_e2_ = _endpos__1_inlined1_ in - let op = - let _1 = -# 5084 "src/ocaml/preprocess/parser_raw.mly" +# 17638 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_e2_ = _endpos__1_inlined1_ in + let op = + let _1 = +# 5095 "src/ocaml/preprocess/parser_raw.mly" ("-.") -# 17041 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 17646 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1323 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 17049 "src/ocaml/preprocess/parser_raw.ml" +# 17654 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos_e2_ in + let _symbolstartpos = _startpos_e1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos = _endpos_e2_ in - let _symbolstartpos = _startpos_e1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 3041 "src/ocaml/preprocess/parser_raw.mly" +# 3048 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 17058 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 2947 "src/ocaml/preprocess/parser_raw.mly" +# 17663 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 2951 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 17064 "src/ocaml/preprocess/parser_raw.ml" - in +# 17669 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -17117,50 +17723,51 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_e1_ in let _endpos = _endpos_xs_ in - let _v : (Parsetree.expression) = let _1 = - let e2 = - let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in - let _1 = - let _3 = - let xs = - let xs = -# 253 "" + let _v = + let _1 = + let e2 = + let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in + let _1 = + let _3 = + let xs = + let xs = +# 264 "" ( List.rev xs ) -# 17130 "src/ocaml/preprocess/parser_raw.ml" - in - +# 17737 "src/ocaml/preprocess/parser_raw.ml" + in + # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 17135 "src/ocaml/preprocess/parser_raw.ml" +# 17742 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 3499 "src/ocaml/preprocess/parser_raw.mly" +# 3510 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 17141 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__3_ = _endpos_xs_ in - let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in +# 17748 "src/ocaml/preprocess/parser_raw.ml" -# 5392 "src/ocaml/preprocess/parser_raw.mly" + in + let _endpos__3_ = _endpos_xs_ in + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in + let _2 = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 17152 "src/ocaml/preprocess/parser_raw.ml" +# 17759 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 5405 "src/ocaml/preprocess/parser_raw.mly" +# 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 17158 "src/ocaml/preprocess/parser_raw.ml" +# 17765 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 2718 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in @@ -17174,45 +17781,46 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 17178 "src/ocaml/preprocess/parser_raw.ml" +# 17785 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 2981 "src/ocaml/preprocess/parser_raw.mly" +# 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 17184 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_e2_ = _endpos_xs_ in - let op = - let _1 = -# 5084 "src/ocaml/preprocess/parser_raw.mly" +# 17791 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_e2_ = _endpos_xs_ in + let op = + let _1 = +# 5095 "src/ocaml/preprocess/parser_raw.mly" ("-.") -# 17192 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 17799 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1323 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 17200 "src/ocaml/preprocess/parser_raw.ml" +# 17807 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos_e2_ in + let _symbolstartpos = _startpos_e1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos = _endpos_e2_ in - let _symbolstartpos = _startpos_e1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 3041 "src/ocaml/preprocess/parser_raw.mly" +# 3048 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 17209 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 2947 "src/ocaml/preprocess/parser_raw.mly" +# 17816 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 2951 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 17215 "src/ocaml/preprocess/parser_raw.ml" - in +# 17822 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -17247,50 +17855,52 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_e1_ in let _endpos = _endpos__1_inlined1_ in - let _v : (Parsetree.expression) = let _1 = - let e2 = - let _1 = _1_inlined1 in - let _1 = + let _v = + let _1 = + let e2 = + let _1 = _1_inlined1 in + let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 17257 "src/ocaml/preprocess/parser_raw.ml" - in - -# 2981 "src/ocaml/preprocess/parser_raw.mly" +# 17866 "src/ocaml/preprocess/parser_raw.ml" + in + +# 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 17262 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_e2_ = _endpos__1_inlined1_ in - let op = - let _1 = -# 5085 "src/ocaml/preprocess/parser_raw.mly" +# 17871 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_e2_ = _endpos__1_inlined1_ in + let op = + let _1 = +# 5096 "src/ocaml/preprocess/parser_raw.mly" ("*") -# 17270 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 17879 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1323 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 17278 "src/ocaml/preprocess/parser_raw.ml" +# 17887 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos_e2_ in + let _symbolstartpos = _startpos_e1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos = _endpos_e2_ in - let _symbolstartpos = _startpos_e1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 3041 "src/ocaml/preprocess/parser_raw.mly" +# 3048 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 17287 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 2947 "src/ocaml/preprocess/parser_raw.mly" +# 17896 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 2951 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 17293 "src/ocaml/preprocess/parser_raw.ml" - in +# 17902 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -17346,50 +17956,51 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_e1_ in let _endpos = _endpos_xs_ in - let _v : (Parsetree.expression) = let _1 = - let e2 = - let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in - let _1 = - let _3 = - let xs = - let xs = -# 253 "" + let _v = + let _1 = + let e2 = + let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in + let _1 = + let _3 = + let xs = + let xs = +# 264 "" ( List.rev xs ) -# 17359 "src/ocaml/preprocess/parser_raw.ml" - in - +# 17970 "src/ocaml/preprocess/parser_raw.ml" + in + # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 17364 "src/ocaml/preprocess/parser_raw.ml" +# 17975 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 3499 "src/ocaml/preprocess/parser_raw.mly" +# 3510 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 17370 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__3_ = _endpos_xs_ in - let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in +# 17981 "src/ocaml/preprocess/parser_raw.ml" -# 5392 "src/ocaml/preprocess/parser_raw.mly" + in + let _endpos__3_ = _endpos_xs_ in + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in + let _2 = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 17381 "src/ocaml/preprocess/parser_raw.ml" +# 17992 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 5405 "src/ocaml/preprocess/parser_raw.mly" +# 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 17387 "src/ocaml/preprocess/parser_raw.ml" +# 17998 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 2718 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in @@ -17403,45 +18014,46 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 17407 "src/ocaml/preprocess/parser_raw.ml" +# 18018 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 2981 "src/ocaml/preprocess/parser_raw.mly" +# 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 17413 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_e2_ = _endpos_xs_ in - let op = - let _1 = -# 5085 "src/ocaml/preprocess/parser_raw.mly" +# 18024 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_e2_ = _endpos_xs_ in + let op = + let _1 = +# 5096 "src/ocaml/preprocess/parser_raw.mly" ("*") -# 17421 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 18032 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1323 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 17429 "src/ocaml/preprocess/parser_raw.ml" +# 18040 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos_e2_ in + let _symbolstartpos = _startpos_e1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos = _endpos_e2_ in - let _symbolstartpos = _startpos_e1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 3041 "src/ocaml/preprocess/parser_raw.mly" +# 3048 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 17438 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 2947 "src/ocaml/preprocess/parser_raw.mly" +# 18049 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 2951 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 17444 "src/ocaml/preprocess/parser_raw.ml" - in +# 18055 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -17476,50 +18088,52 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_e1_ in let _endpos = _endpos__1_inlined1_ in - let _v : (Parsetree.expression) = let _1 = - let e2 = - let _1 = _1_inlined1 in - let _1 = + let _v = + let _1 = + let e2 = + let _1 = _1_inlined1 in + let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 17486 "src/ocaml/preprocess/parser_raw.ml" - in - -# 2981 "src/ocaml/preprocess/parser_raw.mly" +# 18099 "src/ocaml/preprocess/parser_raw.ml" + in + +# 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 17491 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_e2_ = _endpos__1_inlined1_ in - let op = - let _1 = -# 5086 "src/ocaml/preprocess/parser_raw.mly" +# 18104 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_e2_ = _endpos__1_inlined1_ in + let op = + let _1 = +# 5097 "src/ocaml/preprocess/parser_raw.mly" ("%") -# 17499 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 18112 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1323 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 17507 "src/ocaml/preprocess/parser_raw.ml" +# 18120 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos_e2_ in + let _symbolstartpos = _startpos_e1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos = _endpos_e2_ in - let _symbolstartpos = _startpos_e1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 3041 "src/ocaml/preprocess/parser_raw.mly" +# 3048 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 17516 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 2947 "src/ocaml/preprocess/parser_raw.mly" +# 18129 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 2951 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 17522 "src/ocaml/preprocess/parser_raw.ml" - in +# 18135 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -17575,50 +18189,51 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_e1_ in let _endpos = _endpos_xs_ in - let _v : (Parsetree.expression) = let _1 = - let e2 = - let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in - let _1 = - let _3 = - let xs = - let xs = -# 253 "" + let _v = + let _1 = + let e2 = + let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in + let _1 = + let _3 = + let xs = + let xs = +# 264 "" ( List.rev xs ) -# 17588 "src/ocaml/preprocess/parser_raw.ml" - in - +# 18203 "src/ocaml/preprocess/parser_raw.ml" + in + # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 17593 "src/ocaml/preprocess/parser_raw.ml" +# 18208 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 3510 "src/ocaml/preprocess/parser_raw.mly" + ( xs ) +# 18214 "src/ocaml/preprocess/parser_raw.ml" in - -# 3499 "src/ocaml/preprocess/parser_raw.mly" - ( xs ) -# 17599 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__3_ = _endpos_xs_ in - let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in + let _endpos__3_ = _endpos_xs_ in let _2 = - let _1 = _1_inlined1 in - -# 5392 "src/ocaml/preprocess/parser_raw.mly" + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in + let _2 = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 17610 "src/ocaml/preprocess/parser_raw.ml" +# 18225 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 5405 "src/ocaml/preprocess/parser_raw.mly" +# 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 17616 "src/ocaml/preprocess/parser_raw.ml" +# 18231 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 2718 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in @@ -17632,45 +18247,46 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 17636 "src/ocaml/preprocess/parser_raw.ml" +# 18251 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 2981 "src/ocaml/preprocess/parser_raw.mly" +# 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 17642 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_e2_ = _endpos_xs_ in - let op = - let _1 = -# 5086 "src/ocaml/preprocess/parser_raw.mly" - ("%") -# 17650 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 18257 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_e2_ = _endpos_xs_ in + let op = + let _1 = +# 5097 "src/ocaml/preprocess/parser_raw.mly" + ("%") +# 18265 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1323 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 17658 "src/ocaml/preprocess/parser_raw.ml" +# 18273 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos_e2_ in + let _symbolstartpos = _startpos_e1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos = _endpos_e2_ in - let _symbolstartpos = _startpos_e1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 3041 "src/ocaml/preprocess/parser_raw.mly" +# 3048 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 17667 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 2947 "src/ocaml/preprocess/parser_raw.mly" +# 18282 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 2951 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 17673 "src/ocaml/preprocess/parser_raw.ml" - in +# 18288 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -17705,50 +18321,52 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_e1_ in let _endpos = _endpos__1_inlined1_ in - let _v : (Parsetree.expression) = let _1 = - let e2 = - let _1 = _1_inlined1 in - let _1 = + let _v = + let _1 = + let e2 = + let _1 = _1_inlined1 in + let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 17715 "src/ocaml/preprocess/parser_raw.ml" - in - -# 2981 "src/ocaml/preprocess/parser_raw.mly" +# 18332 "src/ocaml/preprocess/parser_raw.ml" + in + +# 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 17720 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_e2_ = _endpos__1_inlined1_ in - let op = - let _1 = -# 5087 "src/ocaml/preprocess/parser_raw.mly" +# 18337 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_e2_ = _endpos__1_inlined1_ in + let op = + let _1 = +# 5098 "src/ocaml/preprocess/parser_raw.mly" ("=") -# 17728 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 18345 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1323 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 17736 "src/ocaml/preprocess/parser_raw.ml" +# 18353 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos_e2_ in + let _symbolstartpos = _startpos_e1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos = _endpos_e2_ in - let _symbolstartpos = _startpos_e1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 3041 "src/ocaml/preprocess/parser_raw.mly" +# 3048 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 17745 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 2947 "src/ocaml/preprocess/parser_raw.mly" +# 18362 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 2951 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 17751 "src/ocaml/preprocess/parser_raw.ml" - in +# 18368 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -17804,50 +18422,51 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_e1_ in let _endpos = _endpos_xs_ in - let _v : (Parsetree.expression) = let _1 = - let e2 = - let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in - let _1 = - let _3 = - let xs = - let xs = -# 253 "" + let _v = + let _1 = + let e2 = + let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in + let _1 = + let _3 = + let xs = + let xs = +# 264 "" ( List.rev xs ) -# 17817 "src/ocaml/preprocess/parser_raw.ml" - in - +# 18436 "src/ocaml/preprocess/parser_raw.ml" + in + # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 17822 "src/ocaml/preprocess/parser_raw.ml" +# 18441 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 3499 "src/ocaml/preprocess/parser_raw.mly" +# 3510 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 17828 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__3_ = _endpos_xs_ in - let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in +# 18447 "src/ocaml/preprocess/parser_raw.ml" -# 5392 "src/ocaml/preprocess/parser_raw.mly" + in + let _endpos__3_ = _endpos_xs_ in + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in + let _2 = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 17839 "src/ocaml/preprocess/parser_raw.ml" +# 18458 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 5405 "src/ocaml/preprocess/parser_raw.mly" +# 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 17845 "src/ocaml/preprocess/parser_raw.ml" +# 18464 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 2718 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in @@ -17861,45 +18480,46 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 17865 "src/ocaml/preprocess/parser_raw.ml" +# 18484 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 2981 "src/ocaml/preprocess/parser_raw.mly" +# 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 17871 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_e2_ = _endpos_xs_ in - let op = - let _1 = -# 5087 "src/ocaml/preprocess/parser_raw.mly" +# 18490 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_e2_ = _endpos_xs_ in + let op = + let _1 = +# 5098 "src/ocaml/preprocess/parser_raw.mly" ("=") -# 17879 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 18498 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1323 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 17887 "src/ocaml/preprocess/parser_raw.ml" +# 18506 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos_e2_ in + let _symbolstartpos = _startpos_e1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos = _endpos_e2_ in - let _symbolstartpos = _startpos_e1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 3041 "src/ocaml/preprocess/parser_raw.mly" +# 3048 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 17896 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 2947 "src/ocaml/preprocess/parser_raw.mly" +# 18515 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 2951 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 17902 "src/ocaml/preprocess/parser_raw.ml" - in +# 18521 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -17934,50 +18554,52 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_e1_ in let _endpos = _endpos__1_inlined1_ in - let _v : (Parsetree.expression) = let _1 = - let e2 = - let _1 = _1_inlined1 in - let _1 = + let _v = + let _1 = + let e2 = + let _1 = _1_inlined1 in + let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 17944 "src/ocaml/preprocess/parser_raw.ml" - in - -# 2981 "src/ocaml/preprocess/parser_raw.mly" +# 18565 "src/ocaml/preprocess/parser_raw.ml" + in + +# 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 17949 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_e2_ = _endpos__1_inlined1_ in - let op = - let _1 = -# 5088 "src/ocaml/preprocess/parser_raw.mly" +# 18570 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_e2_ = _endpos__1_inlined1_ in + let op = + let _1 = +# 5099 "src/ocaml/preprocess/parser_raw.mly" ("<") -# 17957 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 18578 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1323 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 17965 "src/ocaml/preprocess/parser_raw.ml" +# 18586 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos_e2_ in + let _symbolstartpos = _startpos_e1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos = _endpos_e2_ in - let _symbolstartpos = _startpos_e1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 3041 "src/ocaml/preprocess/parser_raw.mly" +# 3048 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 17974 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 2947 "src/ocaml/preprocess/parser_raw.mly" +# 18595 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 2951 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 17980 "src/ocaml/preprocess/parser_raw.ml" - in +# 18601 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -18033,50 +18655,51 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_e1_ in let _endpos = _endpos_xs_ in - let _v : (Parsetree.expression) = let _1 = - let e2 = - let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in - let _1 = - let _3 = - let xs = - let xs = -# 253 "" + let _v = + let _1 = + let e2 = + let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in + let _1 = + let _3 = + let xs = + let xs = +# 264 "" ( List.rev xs ) -# 18046 "src/ocaml/preprocess/parser_raw.ml" - in - +# 18669 "src/ocaml/preprocess/parser_raw.ml" + in + # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 18051 "src/ocaml/preprocess/parser_raw.ml" +# 18674 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 3499 "src/ocaml/preprocess/parser_raw.mly" +# 3510 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 18057 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__3_ = _endpos_xs_ in - let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in +# 18680 "src/ocaml/preprocess/parser_raw.ml" -# 5392 "src/ocaml/preprocess/parser_raw.mly" + in + let _endpos__3_ = _endpos_xs_ in + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in + let _2 = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 18068 "src/ocaml/preprocess/parser_raw.ml" +# 18691 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 5405 "src/ocaml/preprocess/parser_raw.mly" +# 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 18074 "src/ocaml/preprocess/parser_raw.ml" +# 18697 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 2718 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in @@ -18090,45 +18713,46 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 18094 "src/ocaml/preprocess/parser_raw.ml" +# 18717 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 2981 "src/ocaml/preprocess/parser_raw.mly" +# 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 18100 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_e2_ = _endpos_xs_ in - let op = - let _1 = -# 5088 "src/ocaml/preprocess/parser_raw.mly" +# 18723 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_e2_ = _endpos_xs_ in + let op = + let _1 = +# 5099 "src/ocaml/preprocess/parser_raw.mly" ("<") -# 18108 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 18731 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1323 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 18116 "src/ocaml/preprocess/parser_raw.ml" +# 18739 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos_e2_ in + let _symbolstartpos = _startpos_e1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos = _endpos_e2_ in - let _symbolstartpos = _startpos_e1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 3041 "src/ocaml/preprocess/parser_raw.mly" +# 3048 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 18125 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 2947 "src/ocaml/preprocess/parser_raw.mly" +# 18748 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 2951 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 18131 "src/ocaml/preprocess/parser_raw.ml" - in +# 18754 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -18163,50 +18787,52 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_e1_ in let _endpos = _endpos__1_inlined1_ in - let _v : (Parsetree.expression) = let _1 = - let e2 = - let _1 = _1_inlined1 in - let _1 = + let _v = + let _1 = + let e2 = + let _1 = _1_inlined1 in + let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 18173 "src/ocaml/preprocess/parser_raw.ml" - in - -# 2981 "src/ocaml/preprocess/parser_raw.mly" +# 18798 "src/ocaml/preprocess/parser_raw.ml" + in + +# 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 18178 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_e2_ = _endpos__1_inlined1_ in - let op = - let _1 = -# 5089 "src/ocaml/preprocess/parser_raw.mly" +# 18803 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_e2_ = _endpos__1_inlined1_ in + let op = + let _1 = +# 5100 "src/ocaml/preprocess/parser_raw.mly" (">") -# 18186 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 18811 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1323 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 18194 "src/ocaml/preprocess/parser_raw.ml" +# 18819 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos_e2_ in + let _symbolstartpos = _startpos_e1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos = _endpos_e2_ in - let _symbolstartpos = _startpos_e1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 3041 "src/ocaml/preprocess/parser_raw.mly" +# 3048 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 18203 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 2947 "src/ocaml/preprocess/parser_raw.mly" +# 18828 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 2951 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 18209 "src/ocaml/preprocess/parser_raw.ml" - in +# 18834 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -18262,50 +18888,51 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_e1_ in let _endpos = _endpos_xs_ in - let _v : (Parsetree.expression) = let _1 = - let e2 = - let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in - let _1 = - let _3 = - let xs = - let xs = -# 253 "" + let _v = + let _1 = + let e2 = + let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in + let _1 = + let _3 = + let xs = + let xs = +# 264 "" ( List.rev xs ) -# 18275 "src/ocaml/preprocess/parser_raw.ml" - in - +# 18902 "src/ocaml/preprocess/parser_raw.ml" + in + # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 18280 "src/ocaml/preprocess/parser_raw.ml" +# 18907 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 3499 "src/ocaml/preprocess/parser_raw.mly" +# 3510 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 18286 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__3_ = _endpos_xs_ in - let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in +# 18913 "src/ocaml/preprocess/parser_raw.ml" -# 5392 "src/ocaml/preprocess/parser_raw.mly" + in + let _endpos__3_ = _endpos_xs_ in + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in + let _2 = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 18297 "src/ocaml/preprocess/parser_raw.ml" +# 18924 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 5405 "src/ocaml/preprocess/parser_raw.mly" +# 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 18303 "src/ocaml/preprocess/parser_raw.ml" +# 18930 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 2718 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in @@ -18319,45 +18946,46 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 18323 "src/ocaml/preprocess/parser_raw.ml" +# 18950 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 2981 "src/ocaml/preprocess/parser_raw.mly" +# 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 18329 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_e2_ = _endpos_xs_ in - let op = - let _1 = -# 5089 "src/ocaml/preprocess/parser_raw.mly" +# 18956 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_e2_ = _endpos_xs_ in + let op = + let _1 = +# 5100 "src/ocaml/preprocess/parser_raw.mly" (">") -# 18337 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 18964 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1323 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 18345 "src/ocaml/preprocess/parser_raw.ml" +# 18972 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos_e2_ in + let _symbolstartpos = _startpos_e1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos = _endpos_e2_ in - let _symbolstartpos = _startpos_e1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 3041 "src/ocaml/preprocess/parser_raw.mly" +# 3048 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 18354 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 2947 "src/ocaml/preprocess/parser_raw.mly" +# 18981 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 2951 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 18360 "src/ocaml/preprocess/parser_raw.ml" - in +# 18987 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -18392,50 +19020,52 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_e1_ in let _endpos = _endpos__1_inlined1_ in - let _v : (Parsetree.expression) = let _1 = - let e2 = - let _1 = _1_inlined1 in - let _1 = + let _v = + let _1 = + let e2 = + let _1 = _1_inlined1 in + let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 18402 "src/ocaml/preprocess/parser_raw.ml" - in - -# 2981 "src/ocaml/preprocess/parser_raw.mly" +# 19031 "src/ocaml/preprocess/parser_raw.ml" + in + +# 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 18407 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_e2_ = _endpos__1_inlined1_ in - let op = - let _1 = -# 5090 "src/ocaml/preprocess/parser_raw.mly" +# 19036 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_e2_ = _endpos__1_inlined1_ in + let op = + let _1 = +# 5101 "src/ocaml/preprocess/parser_raw.mly" ("or") -# 18415 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 19044 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1323 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 18423 "src/ocaml/preprocess/parser_raw.ml" +# 19052 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos_e2_ in + let _symbolstartpos = _startpos_e1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos = _endpos_e2_ in - let _symbolstartpos = _startpos_e1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 3041 "src/ocaml/preprocess/parser_raw.mly" +# 3048 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 18432 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 2947 "src/ocaml/preprocess/parser_raw.mly" +# 19061 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 2951 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 18438 "src/ocaml/preprocess/parser_raw.ml" - in +# 19067 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -18491,50 +19121,51 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_e1_ in let _endpos = _endpos_xs_ in - let _v : (Parsetree.expression) = let _1 = - let e2 = - let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in - let _1 = - let _3 = - let xs = - let xs = -# 253 "" + let _v = + let _1 = + let e2 = + let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in + let _1 = + let _3 = + let xs = + let xs = +# 264 "" ( List.rev xs ) -# 18504 "src/ocaml/preprocess/parser_raw.ml" - in - +# 19135 "src/ocaml/preprocess/parser_raw.ml" + in + # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 18509 "src/ocaml/preprocess/parser_raw.ml" +# 19140 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 3499 "src/ocaml/preprocess/parser_raw.mly" +# 3510 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 18515 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__3_ = _endpos_xs_ in - let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in +# 19146 "src/ocaml/preprocess/parser_raw.ml" -# 5392 "src/ocaml/preprocess/parser_raw.mly" + in + let _endpos__3_ = _endpos_xs_ in + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in + let _2 = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 18526 "src/ocaml/preprocess/parser_raw.ml" +# 19157 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 5405 "src/ocaml/preprocess/parser_raw.mly" +# 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 18532 "src/ocaml/preprocess/parser_raw.ml" +# 19163 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 2718 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in @@ -18548,45 +19179,46 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 18552 "src/ocaml/preprocess/parser_raw.ml" +# 19183 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 2981 "src/ocaml/preprocess/parser_raw.mly" +# 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 18558 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_e2_ = _endpos_xs_ in - let op = - let _1 = -# 5090 "src/ocaml/preprocess/parser_raw.mly" +# 19189 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_e2_ = _endpos_xs_ in + let op = + let _1 = +# 5101 "src/ocaml/preprocess/parser_raw.mly" ("or") -# 18566 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in +# 19197 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 1323 "src/ocaml/preprocess/parser_raw.mly" + ( mkoperator ~loc:_sloc _1 ) +# 19205 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos_e2_ in + let _symbolstartpos = _startpos_e1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1323 "src/ocaml/preprocess/parser_raw.mly" - ( mkoperator ~loc:_sloc _1 ) -# 18574 "src/ocaml/preprocess/parser_raw.ml" +# 3048 "src/ocaml/preprocess/parser_raw.mly" + ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) +# 19214 "src/ocaml/preprocess/parser_raw.ml" in - let _endpos = _endpos_e2_ in - let _symbolstartpos = _startpos_e1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 3041 "src/ocaml/preprocess/parser_raw.mly" - ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 18583 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 2947 "src/ocaml/preprocess/parser_raw.mly" + ( +# 2951 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 18589 "src/ocaml/preprocess/parser_raw.ml" - in +# 19220 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -18621,50 +19253,52 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_e1_ in let _endpos = _endpos__1_inlined1_ in - let _v : (Parsetree.expression) = let _1 = - let e2 = - let _1 = _1_inlined1 in - let _1 = + let _v = + let _1 = + let e2 = + let _1 = _1_inlined1 in + let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 18631 "src/ocaml/preprocess/parser_raw.ml" - in - -# 2981 "src/ocaml/preprocess/parser_raw.mly" +# 19264 "src/ocaml/preprocess/parser_raw.ml" + in + +# 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 18636 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_e2_ = _endpos__1_inlined1_ in - let op = - let _1 = -# 5091 "src/ocaml/preprocess/parser_raw.mly" +# 19269 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_e2_ = _endpos__1_inlined1_ in + let op = + let _1 = +# 5102 "src/ocaml/preprocess/parser_raw.mly" ("||") -# 18644 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 19277 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1323 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 18652 "src/ocaml/preprocess/parser_raw.ml" +# 19285 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos_e2_ in + let _symbolstartpos = _startpos_e1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos = _endpos_e2_ in - let _symbolstartpos = _startpos_e1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 3041 "src/ocaml/preprocess/parser_raw.mly" +# 3048 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 18661 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 2947 "src/ocaml/preprocess/parser_raw.mly" +# 19294 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 2951 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 18667 "src/ocaml/preprocess/parser_raw.ml" - in +# 19300 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -18720,50 +19354,51 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_e1_ in let _endpos = _endpos_xs_ in - let _v : (Parsetree.expression) = let _1 = - let e2 = - let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in - let _1 = - let _3 = - let xs = - let xs = -# 253 "" + let _v = + let _1 = + let e2 = + let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in + let _1 = + let _3 = + let xs = + let xs = +# 264 "" ( List.rev xs ) -# 18733 "src/ocaml/preprocess/parser_raw.ml" - in - +# 19368 "src/ocaml/preprocess/parser_raw.ml" + in + # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 18738 "src/ocaml/preprocess/parser_raw.ml" +# 19373 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 3499 "src/ocaml/preprocess/parser_raw.mly" +# 3510 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 18744 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__3_ = _endpos_xs_ in - let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in +# 19379 "src/ocaml/preprocess/parser_raw.ml" -# 5392 "src/ocaml/preprocess/parser_raw.mly" + in + let _endpos__3_ = _endpos_xs_ in + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in + let _2 = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 18755 "src/ocaml/preprocess/parser_raw.ml" +# 19390 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 5405 "src/ocaml/preprocess/parser_raw.mly" +# 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 18761 "src/ocaml/preprocess/parser_raw.ml" +# 19396 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 2718 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in @@ -18777,45 +19412,46 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 18781 "src/ocaml/preprocess/parser_raw.ml" +# 19416 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 2981 "src/ocaml/preprocess/parser_raw.mly" +# 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 18787 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_e2_ = _endpos_xs_ in - let op = - let _1 = -# 5091 "src/ocaml/preprocess/parser_raw.mly" +# 19422 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_e2_ = _endpos_xs_ in + let op = + let _1 = +# 5102 "src/ocaml/preprocess/parser_raw.mly" ("||") -# 18795 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 19430 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1323 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 18803 "src/ocaml/preprocess/parser_raw.ml" +# 19438 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos_e2_ in + let _symbolstartpos = _startpos_e1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos = _endpos_e2_ in - let _symbolstartpos = _startpos_e1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 3041 "src/ocaml/preprocess/parser_raw.mly" +# 3048 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 18812 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 2947 "src/ocaml/preprocess/parser_raw.mly" +# 19447 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 2951 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 18818 "src/ocaml/preprocess/parser_raw.ml" - in +# 19453 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -18850,50 +19486,52 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_e1_ in let _endpos = _endpos__1_inlined1_ in - let _v : (Parsetree.expression) = let _1 = - let e2 = - let _1 = _1_inlined1 in - let _1 = + let _v = + let _1 = + let e2 = + let _1 = _1_inlined1 in + let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 18860 "src/ocaml/preprocess/parser_raw.ml" - in - -# 2981 "src/ocaml/preprocess/parser_raw.mly" +# 19497 "src/ocaml/preprocess/parser_raw.ml" + in + +# 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 18865 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_e2_ = _endpos__1_inlined1_ in - let op = - let _1 = -# 5092 "src/ocaml/preprocess/parser_raw.mly" +# 19502 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_e2_ = _endpos__1_inlined1_ in + let op = + let _1 = +# 5103 "src/ocaml/preprocess/parser_raw.mly" ("&") -# 18873 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 19510 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1323 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 18881 "src/ocaml/preprocess/parser_raw.ml" +# 19518 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos_e2_ in + let _symbolstartpos = _startpos_e1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos = _endpos_e2_ in - let _symbolstartpos = _startpos_e1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 3041 "src/ocaml/preprocess/parser_raw.mly" +# 3048 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 18890 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 2947 "src/ocaml/preprocess/parser_raw.mly" +# 19527 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 2951 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 18896 "src/ocaml/preprocess/parser_raw.ml" - in +# 19533 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -18949,50 +19587,51 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_e1_ in let _endpos = _endpos_xs_ in - let _v : (Parsetree.expression) = let _1 = - let e2 = - let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in - let _1 = - let _3 = - let xs = - let xs = -# 253 "" + let _v = + let _1 = + let e2 = + let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in + let _1 = + let _3 = + let xs = + let xs = +# 264 "" ( List.rev xs ) -# 18962 "src/ocaml/preprocess/parser_raw.ml" - in - +# 19601 "src/ocaml/preprocess/parser_raw.ml" + in + # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 18967 "src/ocaml/preprocess/parser_raw.ml" +# 19606 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 3499 "src/ocaml/preprocess/parser_raw.mly" +# 3510 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 18973 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__3_ = _endpos_xs_ in - let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in +# 19612 "src/ocaml/preprocess/parser_raw.ml" -# 5392 "src/ocaml/preprocess/parser_raw.mly" + in + let _endpos__3_ = _endpos_xs_ in + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in + let _2 = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 18984 "src/ocaml/preprocess/parser_raw.ml" +# 19623 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 5405 "src/ocaml/preprocess/parser_raw.mly" +# 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 18990 "src/ocaml/preprocess/parser_raw.ml" +# 19629 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 2718 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in @@ -19006,45 +19645,46 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 19010 "src/ocaml/preprocess/parser_raw.ml" +# 19649 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 2981 "src/ocaml/preprocess/parser_raw.mly" +# 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 19016 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_e2_ = _endpos_xs_ in - let op = - let _1 = -# 5092 "src/ocaml/preprocess/parser_raw.mly" +# 19655 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_e2_ = _endpos_xs_ in + let op = + let _1 = +# 5103 "src/ocaml/preprocess/parser_raw.mly" ("&") -# 19024 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 19663 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1323 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 19032 "src/ocaml/preprocess/parser_raw.ml" +# 19671 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos_e2_ in + let _symbolstartpos = _startpos_e1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos = _endpos_e2_ in - let _symbolstartpos = _startpos_e1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 3041 "src/ocaml/preprocess/parser_raw.mly" +# 3048 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 19041 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 2947 "src/ocaml/preprocess/parser_raw.mly" +# 19680 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 2951 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 19047 "src/ocaml/preprocess/parser_raw.ml" - in +# 19686 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -19079,50 +19719,52 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_e1_ in let _endpos = _endpos__1_inlined1_ in - let _v : (Parsetree.expression) = let _1 = - let e2 = - let _1 = _1_inlined1 in - let _1 = + let _v = + let _1 = + let e2 = + let _1 = _1_inlined1 in + let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 19089 "src/ocaml/preprocess/parser_raw.ml" - in - -# 2981 "src/ocaml/preprocess/parser_raw.mly" +# 19730 "src/ocaml/preprocess/parser_raw.ml" + in + +# 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 19094 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_e2_ = _endpos__1_inlined1_ in - let op = - let _1 = -# 5093 "src/ocaml/preprocess/parser_raw.mly" +# 19735 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_e2_ = _endpos__1_inlined1_ in + let op = + let _1 = +# 5104 "src/ocaml/preprocess/parser_raw.mly" ("&&") -# 19102 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 19743 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1323 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 19110 "src/ocaml/preprocess/parser_raw.ml" +# 19751 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos_e2_ in + let _symbolstartpos = _startpos_e1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos = _endpos_e2_ in - let _symbolstartpos = _startpos_e1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 3041 "src/ocaml/preprocess/parser_raw.mly" +# 3048 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 19119 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 2947 "src/ocaml/preprocess/parser_raw.mly" +# 19760 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 2951 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 19125 "src/ocaml/preprocess/parser_raw.ml" - in +# 19766 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -19178,50 +19820,51 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_e1_ in let _endpos = _endpos_xs_ in - let _v : (Parsetree.expression) = let _1 = - let e2 = - let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in - let _1 = - let _3 = - let xs = - let xs = -# 253 "" + let _v = + let _1 = + let e2 = + let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in + let _1 = + let _3 = + let xs = + let xs = +# 264 "" ( List.rev xs ) -# 19191 "src/ocaml/preprocess/parser_raw.ml" - in - +# 19834 "src/ocaml/preprocess/parser_raw.ml" + in + # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 19196 "src/ocaml/preprocess/parser_raw.ml" +# 19839 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 3510 "src/ocaml/preprocess/parser_raw.mly" + ( xs ) +# 19845 "src/ocaml/preprocess/parser_raw.ml" in - -# 3499 "src/ocaml/preprocess/parser_raw.mly" - ( xs ) -# 19202 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__3_ = _endpos_xs_ in - let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in + let _endpos__3_ = _endpos_xs_ in let _2 = - let _1 = _1_inlined1 in - -# 5392 "src/ocaml/preprocess/parser_raw.mly" + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in + let _2 = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 19213 "src/ocaml/preprocess/parser_raw.ml" +# 19856 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 5405 "src/ocaml/preprocess/parser_raw.mly" +# 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 19219 "src/ocaml/preprocess/parser_raw.ml" +# 19862 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 2718 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in @@ -19235,45 +19878,46 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 19239 "src/ocaml/preprocess/parser_raw.ml" +# 19882 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 2981 "src/ocaml/preprocess/parser_raw.mly" +# 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 19245 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_e2_ = _endpos_xs_ in - let op = - let _1 = -# 5093 "src/ocaml/preprocess/parser_raw.mly" +# 19888 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_e2_ = _endpos_xs_ in + let op = + let _1 = +# 5104 "src/ocaml/preprocess/parser_raw.mly" ("&&") -# 19253 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 19896 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1323 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 19261 "src/ocaml/preprocess/parser_raw.ml" +# 19904 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos_e2_ in + let _symbolstartpos = _startpos_e1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos = _endpos_e2_ in - let _symbolstartpos = _startpos_e1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 3041 "src/ocaml/preprocess/parser_raw.mly" +# 3048 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 19270 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 2947 "src/ocaml/preprocess/parser_raw.mly" +# 19913 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 2951 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 19276 "src/ocaml/preprocess/parser_raw.ml" - in +# 19919 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -19308,50 +19952,52 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_e1_ in let _endpos = _endpos__1_inlined1_ in - let _v : (Parsetree.expression) = let _1 = - let e2 = - let _1 = _1_inlined1 in - let _1 = + let _v = + let _1 = + let e2 = + let _1 = _1_inlined1 in + let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 19318 "src/ocaml/preprocess/parser_raw.ml" - in - -# 2981 "src/ocaml/preprocess/parser_raw.mly" +# 19963 "src/ocaml/preprocess/parser_raw.ml" + in + +# 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 19323 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_e2_ = _endpos__1_inlined1_ in - let op = - let _1 = -# 5094 "src/ocaml/preprocess/parser_raw.mly" +# 19968 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_e2_ = _endpos__1_inlined1_ in + let op = + let _1 = +# 5105 "src/ocaml/preprocess/parser_raw.mly" (":=") -# 19331 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 19976 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1323 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 19339 "src/ocaml/preprocess/parser_raw.ml" +# 19984 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos_e2_ in + let _symbolstartpos = _startpos_e1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos = _endpos_e2_ in - let _symbolstartpos = _startpos_e1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 3041 "src/ocaml/preprocess/parser_raw.mly" +# 3048 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 19348 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 2947 "src/ocaml/preprocess/parser_raw.mly" +# 19993 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 2951 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 19354 "src/ocaml/preprocess/parser_raw.ml" - in +# 19999 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -19407,50 +20053,51 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_e1_ in let _endpos = _endpos_xs_ in - let _v : (Parsetree.expression) = let _1 = - let e2 = - let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in - let _1 = - let _3 = - let xs = - let xs = -# 253 "" + let _v = + let _1 = + let e2 = + let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in + let _1 = + let _3 = + let xs = + let xs = +# 264 "" ( List.rev xs ) -# 19420 "src/ocaml/preprocess/parser_raw.ml" - in - +# 20067 "src/ocaml/preprocess/parser_raw.ml" + in + # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 19425 "src/ocaml/preprocess/parser_raw.ml" +# 20072 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 3499 "src/ocaml/preprocess/parser_raw.mly" +# 3510 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 19431 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__3_ = _endpos_xs_ in - let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in +# 20078 "src/ocaml/preprocess/parser_raw.ml" -# 5392 "src/ocaml/preprocess/parser_raw.mly" + in + let _endpos__3_ = _endpos_xs_ in + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in + let _2 = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 19442 "src/ocaml/preprocess/parser_raw.ml" +# 20089 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 5405 "src/ocaml/preprocess/parser_raw.mly" +# 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 19448 "src/ocaml/preprocess/parser_raw.ml" +# 20095 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 2718 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in @@ -19464,45 +20111,46 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 19468 "src/ocaml/preprocess/parser_raw.ml" +# 20115 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 2981 "src/ocaml/preprocess/parser_raw.mly" +# 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 19474 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_e2_ = _endpos_xs_ in - let op = - let _1 = -# 5094 "src/ocaml/preprocess/parser_raw.mly" +# 20121 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_e2_ = _endpos_xs_ in + let op = + let _1 = +# 5105 "src/ocaml/preprocess/parser_raw.mly" (":=") -# 19482 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 20129 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1323 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 19490 "src/ocaml/preprocess/parser_raw.ml" +# 20137 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos_e2_ in + let _symbolstartpos = _startpos_e1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos = _endpos_e2_ in - let _symbolstartpos = _startpos_e1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 3041 "src/ocaml/preprocess/parser_raw.mly" +# 3048 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 19499 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 2947 "src/ocaml/preprocess/parser_raw.mly" +# 20146 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 2951 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 19505 "src/ocaml/preprocess/parser_raw.ml" - in +# 20152 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -19537,14 +20185,16 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in - let _v : (Parsetree.expression) = let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 2949 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + ( +# 2953 "src/ocaml/preprocess/parser_raw.mly" ( expr_of_let_bindings ~loc:_sloc _1 (merloc _endpos__2_ _3) ) -# 19547 "src/ocaml/preprocess/parser_raw.ml" - in +# 20196 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -19585,34 +20235,36 @@ module Tables = struct let _1 : ( # 1074 "src/ocaml/preprocess/parser_raw.mly" (string) -# 19589 "src/ocaml/preprocess/parser_raw.ml" +# 20239 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_body_ in - let _v : (Parsetree.expression) = let pbop_op = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let _v = + let pbop_op = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 19601 "src/ocaml/preprocess/parser_raw.ml" - - in - let _startpos_pbop_op_ = _startpos__1_ in - let _endpos = _endpos_body_ in - let _symbolstartpos = _startpos_pbop_op_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 2951 "src/ocaml/preprocess/parser_raw.mly" +# 20252 "src/ocaml/preprocess/parser_raw.ml" + + in + let _startpos_pbop_op_ = _startpos__1_ in + let _endpos = _endpos_body_ in + let _symbolstartpos = _startpos_pbop_op_ in + let _sloc = (_symbolstartpos, _endpos) in + ( +# 2955 "src/ocaml/preprocess/parser_raw.mly" ( let (pbop_pat, pbop_exp, rev_ands) = bindings in let ands = List.rev rev_ands in let pbop_loc = make_loc _sloc in let let_ = {pbop_op; pbop_pat; pbop_exp; pbop_loc} in mkexp ~loc:_sloc (Pexp_letop{ let_; ands; body}) ) -# 19615 "src/ocaml/preprocess/parser_raw.ml" - in +# 20266 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -19647,30 +20299,32 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined1_ in - let _v : (Parsetree.expression) = let _3 = - let _1 = _1_inlined1 in - let _1 = + let _v = + let _3 = + let _1 = _1_inlined1 in + let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 19656 "src/ocaml/preprocess/parser_raw.ml" - in - -# 2981 "src/ocaml/preprocess/parser_raw.mly" +# 20309 "src/ocaml/preprocess/parser_raw.ml" + in + +# 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 19661 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__3_ = _endpos__1_inlined1_ in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _loc__2_ = (_startpos__2_, _endpos__2_) in - let _sloc = (_symbolstartpos, _endpos) in - -# 2957 "src/ocaml/preprocess/parser_raw.mly" +# 20314 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__3_ = _endpos__1_inlined1_ in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _loc__2_ = (_startpos__2_, _endpos__2_) in + let _sloc = (_symbolstartpos, _endpos) in + ( +# 2961 "src/ocaml/preprocess/parser_raw.mly" ( mkexp_cons ~loc:_sloc _loc__2_ (ghexp ~loc:_sloc (Pexp_tuple[None, _1; None, (merloc _endpos__2_ _3)])) ) -# 19673 "src/ocaml/preprocess/parser_raw.ml" - in +# 20326 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -19726,49 +20380,50 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_xs_ in - let _v : (Parsetree.expression) = let _3 = - let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in - let _1 = - let _3 = - let xs = - let xs = -# 253 "" + let _v = + let _3 = + let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in + let _1 = + let _3 = + let xs = + let xs = +# 264 "" ( List.rev xs ) -# 19738 "src/ocaml/preprocess/parser_raw.ml" - in - +# 20393 "src/ocaml/preprocess/parser_raw.ml" + in + # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 19743 "src/ocaml/preprocess/parser_raw.ml" +# 20398 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 3499 "src/ocaml/preprocess/parser_raw.mly" +# 3510 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 19749 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__3_ = _endpos_xs_ in - let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in +# 20404 "src/ocaml/preprocess/parser_raw.ml" -# 5392 "src/ocaml/preprocess/parser_raw.mly" + in + let _endpos__3_ = _endpos_xs_ in + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in + let _2 = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 19760 "src/ocaml/preprocess/parser_raw.ml" +# 20415 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 5405 "src/ocaml/preprocess/parser_raw.mly" +# 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 19766 "src/ocaml/preprocess/parser_raw.ml" +# 20421 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 2718 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in @@ -19782,26 +20437,27 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 19786 "src/ocaml/preprocess/parser_raw.ml" +# 20441 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 2981 "src/ocaml/preprocess/parser_raw.mly" +# 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 19792 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__3_ = _endpos_xs_ in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _loc__2_ = (_startpos__2_, _endpos__2_) in - let _sloc = (_symbolstartpos, _endpos) in - -# 2957 "src/ocaml/preprocess/parser_raw.mly" +# 20447 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__3_ = _endpos_xs_ in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _loc__2_ = (_startpos__2_, _endpos__2_) in + let _sloc = (_symbolstartpos, _endpos) in + ( +# 2961 "src/ocaml/preprocess/parser_raw.mly" ( mkexp_cons ~loc:_sloc _loc__2_ (ghexp ~loc:_sloc (Pexp_tuple[None, _1; None, (merloc _endpos__2_ _3)])) ) -# 19804 "src/ocaml/preprocess/parser_raw.ml" - in +# 20459 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -19835,48 +20491,50 @@ module Tables = struct let _1 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 19839 "src/ocaml/preprocess/parser_raw.ml" +# 20495 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined1_ in - let _v : (Parsetree.expression) = let _3 = - let _1 = _1_inlined1 in - let _1 = + let _v = + let _3 = + let _1 = _1_inlined1 in + let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 19849 "src/ocaml/preprocess/parser_raw.ml" - in - -# 2981 "src/ocaml/preprocess/parser_raw.mly" +# 20506 "src/ocaml/preprocess/parser_raw.ml" + in + +# 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 19854 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__3_ = _endpos__1_inlined1_ in - let _1 = - let _1 = -# 4999 "src/ocaml/preprocess/parser_raw.mly" +# 20511 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__3_ = _endpos__1_inlined1_ in + let _1 = + let _1 = +# 5010 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 19862 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 20519 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 19870 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 2960 "src/ocaml/preprocess/parser_raw.mly" +# 20527 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + ( +# 2964 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (Pexp_setinstvar(_1, _3)) ) -# 19879 "src/ocaml/preprocess/parser_raw.ml" - in +# 20536 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -19931,54 +20589,55 @@ module Tables = struct let _1 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 19935 "src/ocaml/preprocess/parser_raw.ml" +# 20593 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_xs_ in - let _v : (Parsetree.expression) = let _3 = - let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in - let _1 = - let _3 = - let xs = - let xs = -# 253 "" + let _v = + let _3 = + let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in + let _1 = + let _3 = + let xs = + let xs = +# 264 "" ( List.rev xs ) -# 19948 "src/ocaml/preprocess/parser_raw.ml" - in - +# 20607 "src/ocaml/preprocess/parser_raw.ml" + in + # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 19953 "src/ocaml/preprocess/parser_raw.ml" +# 20612 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 3499 "src/ocaml/preprocess/parser_raw.mly" +# 3510 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 19959 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__3_ = _endpos_xs_ in - let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in +# 20618 "src/ocaml/preprocess/parser_raw.ml" -# 5392 "src/ocaml/preprocess/parser_raw.mly" + in + let _endpos__3_ = _endpos_xs_ in + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in + let _2 = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 19970 "src/ocaml/preprocess/parser_raw.ml" +# 20629 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 5405 "src/ocaml/preprocess/parser_raw.mly" +# 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 19976 "src/ocaml/preprocess/parser_raw.ml" +# 20635 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 2718 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in @@ -19992,39 +20651,40 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 19996 "src/ocaml/preprocess/parser_raw.ml" +# 20655 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 2981 "src/ocaml/preprocess/parser_raw.mly" +# 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 20002 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__3_ = _endpos_xs_ in - let _1 = - let _1 = -# 4999 "src/ocaml/preprocess/parser_raw.mly" +# 20661 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__3_ = _endpos_xs_ in + let _1 = + let _1 = +# 5010 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 20010 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 20669 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 20018 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 2960 "src/ocaml/preprocess/parser_raw.mly" +# 20677 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + ( +# 2964 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (Pexp_setinstvar(_1, _3)) ) -# 20027 "src/ocaml/preprocess/parser_raw.ml" - in +# 20686 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -20073,39 +20733,41 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined2_ in - let _v : (Parsetree.expression) = let _5 = - let _1 = _1_inlined2 in - let _1 = + let _v = + let _5 = + let _1 = _1_inlined2 in + let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 20082 "src/ocaml/preprocess/parser_raw.ml" - in - -# 2981 "src/ocaml/preprocess/parser_raw.mly" +# 20743 "src/ocaml/preprocess/parser_raw.ml" + in + +# 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 20087 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__5_ = _endpos__1_inlined2_ in - let _3 = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 20748 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__5_ = _endpos__1_inlined2_ in + let _3 = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 20099 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__5_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 2962 "src/ocaml/preprocess/parser_raw.mly" +# 20760 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__5_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + ( +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (Pexp_setfield(_1, _3, _5)) ) -# 20108 "src/ocaml/preprocess/parser_raw.ml" - in +# 20769 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -20175,49 +20837,50 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_xs_ in - let _v : (Parsetree.expression) = let _5 = - let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined2_, _1_inlined4, _1_inlined3) in - let _1 = - let _3 = - let xs = - let xs = -# 253 "" + let _v = + let _5 = + let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined2_, _1_inlined4, _1_inlined3) in + let _1 = + let _3 = + let xs = + let xs = +# 264 "" ( List.rev xs ) -# 20187 "src/ocaml/preprocess/parser_raw.ml" - in - +# 20850 "src/ocaml/preprocess/parser_raw.ml" + in + # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 20192 "src/ocaml/preprocess/parser_raw.ml" +# 20855 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 3499 "src/ocaml/preprocess/parser_raw.mly" +# 3510 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 20198 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__3_ = _endpos_xs_ in - let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in +# 20861 "src/ocaml/preprocess/parser_raw.ml" -# 5392 "src/ocaml/preprocess/parser_raw.mly" + in + let _endpos__3_ = _endpos_xs_ in + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in + let _2 = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 20209 "src/ocaml/preprocess/parser_raw.ml" +# 20872 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 5405 "src/ocaml/preprocess/parser_raw.mly" +# 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 20215 "src/ocaml/preprocess/parser_raw.ml" +# 20878 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 2718 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in @@ -20231,35 +20894,36 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 20235 "src/ocaml/preprocess/parser_raw.ml" +# 20898 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 2981 "src/ocaml/preprocess/parser_raw.mly" +# 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 20241 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__5_ = _endpos_xs_ in - let _3 = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 20904 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__5_ = _endpos_xs_ in + let _3 = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 20253 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__5_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 2962 "src/ocaml/preprocess/parser_raw.mly" +# 20916 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__5_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + ( +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (Pexp_setfield(_1, _3, _5)) ) -# 20262 "src/ocaml/preprocess/parser_raw.ml" - in +# 20925 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -20322,42 +20986,44 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_array_ in let _endpos = _endpos__1_inlined1_ in - let _v : (Parsetree.expression) = let _1 = - let r = - let v = - let _1 = _1_inlined1 in - let _1 = + let _v = + let _1 = + let r = + let v = + let _1 = _1_inlined1 in + let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 20333 "src/ocaml/preprocess/parser_raw.ml" - in - -# 2981 "src/ocaml/preprocess/parser_raw.mly" +# 20998 "src/ocaml/preprocess/parser_raw.ml" + in + +# 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 20338 "src/ocaml/preprocess/parser_raw.ml" +# 21003 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 2963 "src/ocaml/preprocess/parser_raw.mly" +# 2967 "src/ocaml/preprocess/parser_raw.mly" (Some v) -# 20344 "src/ocaml/preprocess/parser_raw.ml" +# 21009 "src/ocaml/preprocess/parser_raw.ml" + + in - in - # 2903 "src/ocaml/preprocess/parser_raw.mly" ( array, d, Paren, i, r ) -# 20350 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos_array_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 2964 "src/ocaml/preprocess/parser_raw.mly" +# 21015 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos_array_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + ( +# 2968 "src/ocaml/preprocess/parser_raw.mly" ( mk_indexop_expr builtin_indexing_operators ~loc:_sloc _1 ) -# 20360 "src/ocaml/preprocess/parser_raw.ml" - in +# 21025 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -20441,51 +21107,52 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_array_ in let _endpos = _endpos_xs_ in - let _v : (Parsetree.expression) = let _1 = - let r = - let v = - let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in - let _1 = - let _3 = - let xs = - let xs = -# 253 "" + let _v = + let _1 = + let r = + let v = + let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in + let _1 = + let _3 = + let xs = + let xs = +# 264 "" ( List.rev xs ) -# 20455 "src/ocaml/preprocess/parser_raw.ml" - in - +# 21122 "src/ocaml/preprocess/parser_raw.ml" + in + # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 20460 "src/ocaml/preprocess/parser_raw.ml" +# 21127 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 3499 "src/ocaml/preprocess/parser_raw.mly" +# 3510 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 20466 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__3_ = _endpos_xs_ in - let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in +# 21133 "src/ocaml/preprocess/parser_raw.ml" -# 5392 "src/ocaml/preprocess/parser_raw.mly" + in + let _endpos__3_ = _endpos_xs_ in + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in + let _2 = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 20477 "src/ocaml/preprocess/parser_raw.ml" +# 21144 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 5405 "src/ocaml/preprocess/parser_raw.mly" +# 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 20483 "src/ocaml/preprocess/parser_raw.ml" +# 21150 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 2718 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in @@ -20499,36 +21166,37 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 20503 "src/ocaml/preprocess/parser_raw.ml" +# 21170 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 2985 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 21176 "src/ocaml/preprocess/parser_raw.ml" in -# 2981 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 20509 "src/ocaml/preprocess/parser_raw.ml" +# 2967 "src/ocaml/preprocess/parser_raw.mly" + (Some v) +# 21182 "src/ocaml/preprocess/parser_raw.ml" in -# 2963 "src/ocaml/preprocess/parser_raw.mly" - (Some v) -# 20515 "src/ocaml/preprocess/parser_raw.ml" - - in - # 2903 "src/ocaml/preprocess/parser_raw.mly" ( array, d, Paren, i, r ) -# 20521 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos_xs_, _startpos_array_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 2964 "src/ocaml/preprocess/parser_raw.mly" +# 21188 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos_xs_, _startpos_array_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + ( +# 2968 "src/ocaml/preprocess/parser_raw.mly" ( mk_indexop_expr builtin_indexing_operators ~loc:_sloc _1 ) -# 20531 "src/ocaml/preprocess/parser_raw.ml" - in +# 21198 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -20591,42 +21259,44 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_array_ in let _endpos = _endpos__1_inlined1_ in - let _v : (Parsetree.expression) = let _1 = - let r = - let v = - let _1 = _1_inlined1 in - let _1 = + let _v = + let _1 = + let r = + let v = + let _1 = _1_inlined1 in + let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 20602 "src/ocaml/preprocess/parser_raw.ml" - in - -# 2981 "src/ocaml/preprocess/parser_raw.mly" +# 21271 "src/ocaml/preprocess/parser_raw.ml" + in + +# 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 20607 "src/ocaml/preprocess/parser_raw.ml" +# 21276 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 2963 "src/ocaml/preprocess/parser_raw.mly" +# 2967 "src/ocaml/preprocess/parser_raw.mly" (Some v) -# 20613 "src/ocaml/preprocess/parser_raw.ml" +# 21282 "src/ocaml/preprocess/parser_raw.ml" + + in - in - # 2905 "src/ocaml/preprocess/parser_raw.mly" ( array, d, Brace, i, r ) -# 20619 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos_array_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 2964 "src/ocaml/preprocess/parser_raw.mly" +# 21288 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos_array_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + ( +# 2968 "src/ocaml/preprocess/parser_raw.mly" ( mk_indexop_expr builtin_indexing_operators ~loc:_sloc _1 ) -# 20629 "src/ocaml/preprocess/parser_raw.ml" - in +# 21298 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -20710,51 +21380,52 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_array_ in let _endpos = _endpos_xs_ in - let _v : (Parsetree.expression) = let _1 = - let r = - let v = - let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in - let _1 = - let _3 = - let xs = - let xs = -# 253 "" + let _v = + let _1 = + let r = + let v = + let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in + let _1 = + let _3 = + let xs = + let xs = +# 264 "" ( List.rev xs ) -# 20724 "src/ocaml/preprocess/parser_raw.ml" - in - +# 21395 "src/ocaml/preprocess/parser_raw.ml" + in + # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 20729 "src/ocaml/preprocess/parser_raw.ml" +# 21400 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 3499 "src/ocaml/preprocess/parser_raw.mly" +# 3510 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 20735 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__3_ = _endpos_xs_ in - let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in +# 21406 "src/ocaml/preprocess/parser_raw.ml" -# 5392 "src/ocaml/preprocess/parser_raw.mly" + in + let _endpos__3_ = _endpos_xs_ in + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in + let _2 = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 20746 "src/ocaml/preprocess/parser_raw.ml" +# 21417 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 5405 "src/ocaml/preprocess/parser_raw.mly" +# 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 20752 "src/ocaml/preprocess/parser_raw.ml" +# 21423 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 2718 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in @@ -20768,36 +21439,37 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 20772 "src/ocaml/preprocess/parser_raw.ml" +# 21443 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 2985 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 21449 "src/ocaml/preprocess/parser_raw.ml" in -# 2981 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 20778 "src/ocaml/preprocess/parser_raw.ml" +# 2967 "src/ocaml/preprocess/parser_raw.mly" + (Some v) +# 21455 "src/ocaml/preprocess/parser_raw.ml" in -# 2963 "src/ocaml/preprocess/parser_raw.mly" - (Some v) -# 20784 "src/ocaml/preprocess/parser_raw.ml" - - in - # 2905 "src/ocaml/preprocess/parser_raw.mly" ( array, d, Brace, i, r ) -# 20790 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos_xs_, _startpos_array_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 2964 "src/ocaml/preprocess/parser_raw.mly" +# 21461 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos_xs_, _startpos_array_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + ( +# 2968 "src/ocaml/preprocess/parser_raw.mly" ( mk_indexop_expr builtin_indexing_operators ~loc:_sloc _1 ) -# 20800 "src/ocaml/preprocess/parser_raw.ml" - in +# 21471 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -20860,42 +21532,44 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_array_ in let _endpos = _endpos__1_inlined1_ in - let _v : (Parsetree.expression) = let _1 = - let r = - let v = - let _1 = _1_inlined1 in - let _1 = + let _v = + let _1 = + let r = + let v = + let _1 = _1_inlined1 in + let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 20871 "src/ocaml/preprocess/parser_raw.ml" - in - -# 2981 "src/ocaml/preprocess/parser_raw.mly" +# 21544 "src/ocaml/preprocess/parser_raw.ml" + in + +# 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 20876 "src/ocaml/preprocess/parser_raw.ml" +# 21549 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 2963 "src/ocaml/preprocess/parser_raw.mly" +# 2967 "src/ocaml/preprocess/parser_raw.mly" (Some v) -# 20882 "src/ocaml/preprocess/parser_raw.ml" +# 21555 "src/ocaml/preprocess/parser_raw.ml" + + in - in - # 2907 "src/ocaml/preprocess/parser_raw.mly" ( array, d, Bracket, i, r ) -# 20888 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos_array_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 2964 "src/ocaml/preprocess/parser_raw.mly" +# 21561 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos_array_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + ( +# 2968 "src/ocaml/preprocess/parser_raw.mly" ( mk_indexop_expr builtin_indexing_operators ~loc:_sloc _1 ) -# 20898 "src/ocaml/preprocess/parser_raw.ml" - in +# 21571 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -20979,51 +21653,52 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_array_ in let _endpos = _endpos_xs_ in - let _v : (Parsetree.expression) = let _1 = - let r = - let v = - let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in - let _1 = - let _3 = - let xs = - let xs = -# 253 "" + let _v = + let _1 = + let r = + let v = + let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in + let _1 = + let _3 = + let xs = + let xs = +# 264 "" ( List.rev xs ) -# 20993 "src/ocaml/preprocess/parser_raw.ml" - in - +# 21668 "src/ocaml/preprocess/parser_raw.ml" + in + # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 20998 "src/ocaml/preprocess/parser_raw.ml" +# 21673 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 3499 "src/ocaml/preprocess/parser_raw.mly" +# 3510 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 21004 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__3_ = _endpos_xs_ in - let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in +# 21679 "src/ocaml/preprocess/parser_raw.ml" -# 5392 "src/ocaml/preprocess/parser_raw.mly" + in + let _endpos__3_ = _endpos_xs_ in + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in + let _2 = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 21015 "src/ocaml/preprocess/parser_raw.ml" +# 21690 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 5405 "src/ocaml/preprocess/parser_raw.mly" +# 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 21021 "src/ocaml/preprocess/parser_raw.ml" +# 21696 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 2718 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in @@ -21037,36 +21712,37 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 21041 "src/ocaml/preprocess/parser_raw.ml" +# 21716 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 2985 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 21722 "src/ocaml/preprocess/parser_raw.ml" in -# 2981 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 21047 "src/ocaml/preprocess/parser_raw.ml" +# 2967 "src/ocaml/preprocess/parser_raw.mly" + (Some v) +# 21728 "src/ocaml/preprocess/parser_raw.ml" in -# 2963 "src/ocaml/preprocess/parser_raw.mly" - (Some v) -# 21053 "src/ocaml/preprocess/parser_raw.ml" - - in - # 2907 "src/ocaml/preprocess/parser_raw.mly" ( array, d, Bracket, i, r ) -# 21059 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos_xs_, _startpos_array_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 2964 "src/ocaml/preprocess/parser_raw.mly" +# 21734 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos_xs_, _startpos_array_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + ( +# 2968 "src/ocaml/preprocess/parser_raw.mly" ( mk_indexop_expr builtin_indexing_operators ~loc:_sloc _1 ) -# 21069 "src/ocaml/preprocess/parser_raw.ml" - in +# 21744 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -21127,65 +21803,67 @@ module Tables = struct let _2 : ( # 1073 "src/ocaml/preprocess/parser_raw.mly" (string) -# 21131 "src/ocaml/preprocess/parser_raw.ml" +# 21807 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _2 in let array : (Parsetree.expression) = Obj.magic array in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_array_ in let _endpos = _endpos__1_inlined1_ in - let _v : (Parsetree.expression) = let _1 = - let r = - let v = - let _1 = _1_inlined1 in - let _1 = + let _v = + let _1 = + let r = + let v = + let _1 = _1_inlined1 in + let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 21144 "src/ocaml/preprocess/parser_raw.ml" - in - -# 2981 "src/ocaml/preprocess/parser_raw.mly" +# 21821 "src/ocaml/preprocess/parser_raw.ml" + in + +# 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 21149 "src/ocaml/preprocess/parser_raw.ml" +# 21826 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 2965 "src/ocaml/preprocess/parser_raw.mly" +# 2969 "src/ocaml/preprocess/parser_raw.mly" (Some v) -# 21155 "src/ocaml/preprocess/parser_raw.ml" - - in - let i = -# 3663 "src/ocaml/preprocess/parser_raw.mly" +# 21832 "src/ocaml/preprocess/parser_raw.ml" + + in + let i = +# 3674 "src/ocaml/preprocess/parser_raw.mly" ( es ) -# 21161 "src/ocaml/preprocess/parser_raw.ml" - in - let d = - let _1 = -# 124 "" - ( None ) -# 21167 "src/ocaml/preprocess/parser_raw.ml" +# 21838 "src/ocaml/preprocess/parser_raw.ml" in - + let d = + let _1 = +# 123 "" + ( None ) +# 21844 "src/ocaml/preprocess/parser_raw.ml" + in + # 2919 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 21172 "src/ocaml/preprocess/parser_raw.ml" +# 21849 "src/ocaml/preprocess/parser_raw.ml" + + in - in - # 2903 "src/ocaml/preprocess/parser_raw.mly" ( array, d, Paren, i, r ) -# 21178 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos_array_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 2966 "src/ocaml/preprocess/parser_raw.mly" +# 21855 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos_array_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + ( +# 2970 "src/ocaml/preprocess/parser_raw.mly" ( mk_indexop_expr user_indexing_operators ~loc:_sloc _1 ) -# 21188 "src/ocaml/preprocess/parser_raw.ml" - in +# 21865 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -21267,57 +21945,58 @@ module Tables = struct let _2 : ( # 1073 "src/ocaml/preprocess/parser_raw.mly" (string) -# 21271 "src/ocaml/preprocess/parser_raw.ml" +# 21949 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _2 in let array : (Parsetree.expression) = Obj.magic array in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_array_ in let _endpos = _endpos_xs_ in - let _v : (Parsetree.expression) = let _1 = - let r = - let v = - let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in - let _1 = - let _3 = - let xs = - let xs = -# 253 "" + let _v = + let _1 = + let r = + let v = + let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in + let _1 = + let _3 = + let xs = + let xs = +# 264 "" ( List.rev xs ) -# 21287 "src/ocaml/preprocess/parser_raw.ml" - in - +# 21966 "src/ocaml/preprocess/parser_raw.ml" + in + # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 21292 "src/ocaml/preprocess/parser_raw.ml" +# 21971 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 3499 "src/ocaml/preprocess/parser_raw.mly" +# 3510 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 21298 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__3_ = _endpos_xs_ in - let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in +# 21977 "src/ocaml/preprocess/parser_raw.ml" -# 5392 "src/ocaml/preprocess/parser_raw.mly" + in + let _endpos__3_ = _endpos_xs_ in + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in + let _2 = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 21309 "src/ocaml/preprocess/parser_raw.ml" +# 21988 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 5405 "src/ocaml/preprocess/parser_raw.mly" +# 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 21315 "src/ocaml/preprocess/parser_raw.ml" +# 21994 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 2718 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in @@ -21331,53 +22010,54 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 21335 "src/ocaml/preprocess/parser_raw.ml" +# 22014 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 2985 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 22020 "src/ocaml/preprocess/parser_raw.ml" in -# 2981 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 21341 "src/ocaml/preprocess/parser_raw.ml" +# 2969 "src/ocaml/preprocess/parser_raw.mly" + (Some v) +# 22026 "src/ocaml/preprocess/parser_raw.ml" in - -# 2965 "src/ocaml/preprocess/parser_raw.mly" - (Some v) -# 21347 "src/ocaml/preprocess/parser_raw.ml" - - in - let i = -# 3663 "src/ocaml/preprocess/parser_raw.mly" + let i = +# 3674 "src/ocaml/preprocess/parser_raw.mly" ( es ) -# 21353 "src/ocaml/preprocess/parser_raw.ml" - in - let d = - let _1 = -# 124 "" - ( None ) -# 21359 "src/ocaml/preprocess/parser_raw.ml" +# 22032 "src/ocaml/preprocess/parser_raw.ml" in - + let d = + let _1 = +# 123 "" + ( None ) +# 22038 "src/ocaml/preprocess/parser_raw.ml" + in + # 2919 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 21364 "src/ocaml/preprocess/parser_raw.ml" +# 22043 "src/ocaml/preprocess/parser_raw.ml" + + in - in - # 2903 "src/ocaml/preprocess/parser_raw.mly" ( array, d, Paren, i, r ) -# 21370 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos_xs_, _startpos_array_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 2966 "src/ocaml/preprocess/parser_raw.mly" +# 22049 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos_xs_, _startpos_array_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + ( +# 2970 "src/ocaml/preprocess/parser_raw.mly" ( mk_indexop_expr user_indexing_operators ~loc:_sloc _1 ) -# 21380 "src/ocaml/preprocess/parser_raw.ml" - in +# 22059 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -21450,7 +22130,7 @@ module Tables = struct let _2 : ( # 1073 "src/ocaml/preprocess/parser_raw.mly" (string) -# 21454 "src/ocaml/preprocess/parser_raw.ml" +# 22134 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _2 in let _2_inlined1 : (Longident.t) = Obj.magic _2_inlined1 in let _1 : unit = Obj.magic _1 in @@ -21458,68 +22138,70 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_array_ in let _endpos = _endpos__1_inlined2_ in - let _v : (Parsetree.expression) = let _1 = - let r = - let _1_inlined1 = _1_inlined2 in - let v = - let _1 = _1_inlined1 in - let _1 = + let _v = + let _1 = + let r = + let _1_inlined1 = _1_inlined2 in + let v = + let _1 = _1_inlined1 in + let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 21470 "src/ocaml/preprocess/parser_raw.ml" - in - -# 2981 "src/ocaml/preprocess/parser_raw.mly" +# 22151 "src/ocaml/preprocess/parser_raw.ml" + in + +# 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 21475 "src/ocaml/preprocess/parser_raw.ml" +# 22156 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 2965 "src/ocaml/preprocess/parser_raw.mly" +# 2969 "src/ocaml/preprocess/parser_raw.mly" (Some v) -# 21481 "src/ocaml/preprocess/parser_raw.ml" - - in - let i = -# 3663 "src/ocaml/preprocess/parser_raw.mly" +# 22162 "src/ocaml/preprocess/parser_raw.ml" + + in + let i = +# 3674 "src/ocaml/preprocess/parser_raw.mly" ( es ) -# 21487 "src/ocaml/preprocess/parser_raw.ml" - in - let d = - let _1 = - let _2 = _2_inlined1 in - let x = +# 22168 "src/ocaml/preprocess/parser_raw.ml" + in + let d = + let _1 = + let _2 = _2_inlined1 in + let x = # 2919 "src/ocaml/preprocess/parser_raw.mly" (_2) -# 21495 "src/ocaml/preprocess/parser_raw.ml" - in - +# 22176 "src/ocaml/preprocess/parser_raw.ml" + in + # 126 "" ( Some x ) -# 21500 "src/ocaml/preprocess/parser_raw.ml" +# 22181 "src/ocaml/preprocess/parser_raw.ml" + + in - in - # 2919 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 21506 "src/ocaml/preprocess/parser_raw.ml" +# 22187 "src/ocaml/preprocess/parser_raw.ml" + + in - in - # 2903 "src/ocaml/preprocess/parser_raw.mly" ( array, d, Paren, i, r ) -# 21512 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined2_, _startpos_array_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 2966 "src/ocaml/preprocess/parser_raw.mly" +# 22193 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined2_, _startpos_array_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + ( +# 2970 "src/ocaml/preprocess/parser_raw.mly" ( mk_indexop_expr user_indexing_operators ~loc:_sloc _1 ) -# 21522 "src/ocaml/preprocess/parser_raw.ml" - in +# 22203 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -21613,7 +22295,7 @@ module Tables = struct let _2 : ( # 1073 "src/ocaml/preprocess/parser_raw.mly" (string) -# 21617 "src/ocaml/preprocess/parser_raw.ml" +# 22299 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _2 in let _2_inlined1 : (Longident.t) = Obj.magic _2_inlined1 in let _1 : unit = Obj.magic _1 in @@ -21621,52 +22303,53 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_array_ in let _endpos = _endpos_xs_ in - let _v : (Parsetree.expression) = let _1 = - let r = - let (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) = (_startpos__1_inlined2_, _1_inlined4, _1_inlined3) in - let v = - let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in - let _1 = - let _3 = - let xs = - let xs = -# 253 "" + let _v = + let _1 = + let r = + let (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) = (_startpos__1_inlined2_, _1_inlined4, _1_inlined3) in + let v = + let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in + let _1 = + let _3 = + let xs = + let xs = +# 264 "" ( List.rev xs ) -# 21636 "src/ocaml/preprocess/parser_raw.ml" - in - +# 22319 "src/ocaml/preprocess/parser_raw.ml" + in + # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 21641 "src/ocaml/preprocess/parser_raw.ml" +# 22324 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 3499 "src/ocaml/preprocess/parser_raw.mly" +# 3510 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 21647 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__3_ = _endpos_xs_ in - let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in +# 22330 "src/ocaml/preprocess/parser_raw.ml" -# 5392 "src/ocaml/preprocess/parser_raw.mly" + in + let _endpos__3_ = _endpos_xs_ in + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in + let _2 = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 21658 "src/ocaml/preprocess/parser_raw.ml" +# 22341 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 5405 "src/ocaml/preprocess/parser_raw.mly" +# 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 21664 "src/ocaml/preprocess/parser_raw.ml" +# 22347 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 2718 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in @@ -21680,61 +22363,62 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 21684 "src/ocaml/preprocess/parser_raw.ml" +# 22367 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 2985 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 22373 "src/ocaml/preprocess/parser_raw.ml" in -# 2981 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 21690 "src/ocaml/preprocess/parser_raw.ml" +# 2969 "src/ocaml/preprocess/parser_raw.mly" + (Some v) +# 22379 "src/ocaml/preprocess/parser_raw.ml" in - -# 2965 "src/ocaml/preprocess/parser_raw.mly" - (Some v) -# 21696 "src/ocaml/preprocess/parser_raw.ml" - - in - let i = -# 3663 "src/ocaml/preprocess/parser_raw.mly" + let i = +# 3674 "src/ocaml/preprocess/parser_raw.mly" ( es ) -# 21702 "src/ocaml/preprocess/parser_raw.ml" - in - let d = - let _1 = - let _2 = _2_inlined1 in - let x = +# 22385 "src/ocaml/preprocess/parser_raw.ml" + in + let d = + let _1 = + let _2 = _2_inlined1 in + let x = # 2919 "src/ocaml/preprocess/parser_raw.mly" (_2) -# 21710 "src/ocaml/preprocess/parser_raw.ml" - in - +# 22393 "src/ocaml/preprocess/parser_raw.ml" + in + # 126 "" ( Some x ) -# 21715 "src/ocaml/preprocess/parser_raw.ml" +# 22398 "src/ocaml/preprocess/parser_raw.ml" + + in - in - # 2919 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 21721 "src/ocaml/preprocess/parser_raw.ml" +# 22404 "src/ocaml/preprocess/parser_raw.ml" + + in - in - # 2903 "src/ocaml/preprocess/parser_raw.mly" ( array, d, Paren, i, r ) -# 21727 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos_xs_, _startpos_array_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 2966 "src/ocaml/preprocess/parser_raw.mly" +# 22410 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos_xs_, _startpos_array_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + ( +# 2970 "src/ocaml/preprocess/parser_raw.mly" ( mk_indexop_expr user_indexing_operators ~loc:_sloc _1 ) -# 21737 "src/ocaml/preprocess/parser_raw.ml" - in +# 22420 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -21795,65 +22479,67 @@ module Tables = struct let _2 : ( # 1073 "src/ocaml/preprocess/parser_raw.mly" (string) -# 21799 "src/ocaml/preprocess/parser_raw.ml" +# 22483 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _2 in let array : (Parsetree.expression) = Obj.magic array in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_array_ in let _endpos = _endpos__1_inlined1_ in - let _v : (Parsetree.expression) = let _1 = - let r = - let v = - let _1 = _1_inlined1 in - let _1 = + let _v = + let _1 = + let r = + let v = + let _1 = _1_inlined1 in + let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 21812 "src/ocaml/preprocess/parser_raw.ml" - in - -# 2981 "src/ocaml/preprocess/parser_raw.mly" +# 22497 "src/ocaml/preprocess/parser_raw.ml" + in + +# 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 21817 "src/ocaml/preprocess/parser_raw.ml" +# 22502 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 2965 "src/ocaml/preprocess/parser_raw.mly" +# 2969 "src/ocaml/preprocess/parser_raw.mly" (Some v) -# 21823 "src/ocaml/preprocess/parser_raw.ml" - - in - let i = -# 3663 "src/ocaml/preprocess/parser_raw.mly" +# 22508 "src/ocaml/preprocess/parser_raw.ml" + + in + let i = +# 3674 "src/ocaml/preprocess/parser_raw.mly" ( es ) -# 21829 "src/ocaml/preprocess/parser_raw.ml" - in - let d = - let _1 = -# 124 "" - ( None ) -# 21835 "src/ocaml/preprocess/parser_raw.ml" +# 22514 "src/ocaml/preprocess/parser_raw.ml" in - + let d = + let _1 = +# 123 "" + ( None ) +# 22520 "src/ocaml/preprocess/parser_raw.ml" + in + # 2919 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 21840 "src/ocaml/preprocess/parser_raw.ml" +# 22525 "src/ocaml/preprocess/parser_raw.ml" + + in - in - # 2905 "src/ocaml/preprocess/parser_raw.mly" ( array, d, Brace, i, r ) -# 21846 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos_array_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 2966 "src/ocaml/preprocess/parser_raw.mly" +# 22531 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos_array_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + ( +# 2970 "src/ocaml/preprocess/parser_raw.mly" ( mk_indexop_expr user_indexing_operators ~loc:_sloc _1 ) -# 21856 "src/ocaml/preprocess/parser_raw.ml" - in +# 22541 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -21935,57 +22621,58 @@ module Tables = struct let _2 : ( # 1073 "src/ocaml/preprocess/parser_raw.mly" (string) -# 21939 "src/ocaml/preprocess/parser_raw.ml" +# 22625 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _2 in let array : (Parsetree.expression) = Obj.magic array in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_array_ in let _endpos = _endpos_xs_ in - let _v : (Parsetree.expression) = let _1 = - let r = - let v = - let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in - let _1 = - let _3 = - let xs = - let xs = -# 253 "" + let _v = + let _1 = + let r = + let v = + let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in + let _1 = + let _3 = + let xs = + let xs = +# 264 "" ( List.rev xs ) -# 21955 "src/ocaml/preprocess/parser_raw.ml" - in - +# 22642 "src/ocaml/preprocess/parser_raw.ml" + in + # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 21960 "src/ocaml/preprocess/parser_raw.ml" +# 22647 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 3499 "src/ocaml/preprocess/parser_raw.mly" +# 3510 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 21966 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__3_ = _endpos_xs_ in - let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in +# 22653 "src/ocaml/preprocess/parser_raw.ml" -# 5392 "src/ocaml/preprocess/parser_raw.mly" + in + let _endpos__3_ = _endpos_xs_ in + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in + let _2 = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 21977 "src/ocaml/preprocess/parser_raw.ml" +# 22664 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 5405 "src/ocaml/preprocess/parser_raw.mly" +# 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 21983 "src/ocaml/preprocess/parser_raw.ml" +# 22670 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 2718 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in @@ -21999,53 +22686,54 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 22003 "src/ocaml/preprocess/parser_raw.ml" +# 22690 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 2985 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 22696 "src/ocaml/preprocess/parser_raw.ml" in -# 2981 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 22009 "src/ocaml/preprocess/parser_raw.ml" +# 2969 "src/ocaml/preprocess/parser_raw.mly" + (Some v) +# 22702 "src/ocaml/preprocess/parser_raw.ml" in - -# 2965 "src/ocaml/preprocess/parser_raw.mly" - (Some v) -# 22015 "src/ocaml/preprocess/parser_raw.ml" - - in - let i = -# 3663 "src/ocaml/preprocess/parser_raw.mly" + let i = +# 3674 "src/ocaml/preprocess/parser_raw.mly" ( es ) -# 22021 "src/ocaml/preprocess/parser_raw.ml" - in - let d = - let _1 = -# 124 "" - ( None ) -# 22027 "src/ocaml/preprocess/parser_raw.ml" +# 22708 "src/ocaml/preprocess/parser_raw.ml" in - + let d = + let _1 = +# 123 "" + ( None ) +# 22714 "src/ocaml/preprocess/parser_raw.ml" + in + # 2919 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 22032 "src/ocaml/preprocess/parser_raw.ml" +# 22719 "src/ocaml/preprocess/parser_raw.ml" + + in - in - # 2905 "src/ocaml/preprocess/parser_raw.mly" ( array, d, Brace, i, r ) -# 22038 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos_xs_, _startpos_array_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 2966 "src/ocaml/preprocess/parser_raw.mly" +# 22725 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos_xs_, _startpos_array_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + ( +# 2970 "src/ocaml/preprocess/parser_raw.mly" ( mk_indexop_expr user_indexing_operators ~loc:_sloc _1 ) -# 22048 "src/ocaml/preprocess/parser_raw.ml" - in +# 22735 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -22118,7 +22806,7 @@ module Tables = struct let _2 : ( # 1073 "src/ocaml/preprocess/parser_raw.mly" (string) -# 22122 "src/ocaml/preprocess/parser_raw.ml" +# 22810 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _2 in let _2_inlined1 : (Longident.t) = Obj.magic _2_inlined1 in let _1 : unit = Obj.magic _1 in @@ -22126,68 +22814,70 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_array_ in let _endpos = _endpos__1_inlined2_ in - let _v : (Parsetree.expression) = let _1 = - let r = - let _1_inlined1 = _1_inlined2 in - let v = - let _1 = _1_inlined1 in - let _1 = + let _v = + let _1 = + let r = + let _1_inlined1 = _1_inlined2 in + let v = + let _1 = _1_inlined1 in + let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 22138 "src/ocaml/preprocess/parser_raw.ml" - in - -# 2981 "src/ocaml/preprocess/parser_raw.mly" +# 22827 "src/ocaml/preprocess/parser_raw.ml" + in + +# 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 22143 "src/ocaml/preprocess/parser_raw.ml" +# 22832 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 2965 "src/ocaml/preprocess/parser_raw.mly" +# 2969 "src/ocaml/preprocess/parser_raw.mly" (Some v) -# 22149 "src/ocaml/preprocess/parser_raw.ml" - - in - let i = -# 3663 "src/ocaml/preprocess/parser_raw.mly" +# 22838 "src/ocaml/preprocess/parser_raw.ml" + + in + let i = +# 3674 "src/ocaml/preprocess/parser_raw.mly" ( es ) -# 22155 "src/ocaml/preprocess/parser_raw.ml" - in - let d = - let _1 = - let _2 = _2_inlined1 in - let x = +# 22844 "src/ocaml/preprocess/parser_raw.ml" + in + let d = + let _1 = + let _2 = _2_inlined1 in + let x = # 2919 "src/ocaml/preprocess/parser_raw.mly" (_2) -# 22163 "src/ocaml/preprocess/parser_raw.ml" - in - +# 22852 "src/ocaml/preprocess/parser_raw.ml" + in + # 126 "" ( Some x ) -# 22168 "src/ocaml/preprocess/parser_raw.ml" +# 22857 "src/ocaml/preprocess/parser_raw.ml" + + in - in - # 2919 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 22174 "src/ocaml/preprocess/parser_raw.ml" +# 22863 "src/ocaml/preprocess/parser_raw.ml" + + in - in - # 2905 "src/ocaml/preprocess/parser_raw.mly" ( array, d, Brace, i, r ) -# 22180 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined2_, _startpos_array_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 2966 "src/ocaml/preprocess/parser_raw.mly" +# 22869 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined2_, _startpos_array_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + ( +# 2970 "src/ocaml/preprocess/parser_raw.mly" ( mk_indexop_expr user_indexing_operators ~loc:_sloc _1 ) -# 22190 "src/ocaml/preprocess/parser_raw.ml" - in +# 22879 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -22281,7 +22971,7 @@ module Tables = struct let _2 : ( # 1073 "src/ocaml/preprocess/parser_raw.mly" (string) -# 22285 "src/ocaml/preprocess/parser_raw.ml" +# 22975 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _2 in let _2_inlined1 : (Longident.t) = Obj.magic _2_inlined1 in let _1 : unit = Obj.magic _1 in @@ -22289,52 +22979,53 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_array_ in let _endpos = _endpos_xs_ in - let _v : (Parsetree.expression) = let _1 = - let r = - let (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) = (_startpos__1_inlined2_, _1_inlined4, _1_inlined3) in - let v = - let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in - let _1 = - let _3 = - let xs = - let xs = -# 253 "" + let _v = + let _1 = + let r = + let (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) = (_startpos__1_inlined2_, _1_inlined4, _1_inlined3) in + let v = + let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in + let _1 = + let _3 = + let xs = + let xs = +# 264 "" ( List.rev xs ) -# 22304 "src/ocaml/preprocess/parser_raw.ml" - in - +# 22995 "src/ocaml/preprocess/parser_raw.ml" + in + # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 22309 "src/ocaml/preprocess/parser_raw.ml" +# 23000 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 3499 "src/ocaml/preprocess/parser_raw.mly" +# 3510 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 22315 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__3_ = _endpos_xs_ in - let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in +# 23006 "src/ocaml/preprocess/parser_raw.ml" -# 5392 "src/ocaml/preprocess/parser_raw.mly" + in + let _endpos__3_ = _endpos_xs_ in + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in + let _2 = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 22326 "src/ocaml/preprocess/parser_raw.ml" +# 23017 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 5405 "src/ocaml/preprocess/parser_raw.mly" +# 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 22332 "src/ocaml/preprocess/parser_raw.ml" +# 23023 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 2718 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in @@ -22348,61 +23039,62 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 22352 "src/ocaml/preprocess/parser_raw.ml" +# 23043 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 2985 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 23049 "src/ocaml/preprocess/parser_raw.ml" in -# 2981 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 22358 "src/ocaml/preprocess/parser_raw.ml" +# 2969 "src/ocaml/preprocess/parser_raw.mly" + (Some v) +# 23055 "src/ocaml/preprocess/parser_raw.ml" in - -# 2965 "src/ocaml/preprocess/parser_raw.mly" - (Some v) -# 22364 "src/ocaml/preprocess/parser_raw.ml" - - in - let i = -# 3663 "src/ocaml/preprocess/parser_raw.mly" + let i = +# 3674 "src/ocaml/preprocess/parser_raw.mly" ( es ) -# 22370 "src/ocaml/preprocess/parser_raw.ml" - in - let d = - let _1 = - let _2 = _2_inlined1 in - let x = +# 23061 "src/ocaml/preprocess/parser_raw.ml" + in + let d = + let _1 = + let _2 = _2_inlined1 in + let x = # 2919 "src/ocaml/preprocess/parser_raw.mly" (_2) -# 22378 "src/ocaml/preprocess/parser_raw.ml" - in - +# 23069 "src/ocaml/preprocess/parser_raw.ml" + in + # 126 "" ( Some x ) -# 22383 "src/ocaml/preprocess/parser_raw.ml" +# 23074 "src/ocaml/preprocess/parser_raw.ml" + + in - in - # 2919 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 22389 "src/ocaml/preprocess/parser_raw.ml" +# 23080 "src/ocaml/preprocess/parser_raw.ml" + + in - in - # 2905 "src/ocaml/preprocess/parser_raw.mly" ( array, d, Brace, i, r ) -# 22395 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos_xs_, _startpos_array_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 2966 "src/ocaml/preprocess/parser_raw.mly" +# 23086 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos_xs_, _startpos_array_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + ( +# 2970 "src/ocaml/preprocess/parser_raw.mly" ( mk_indexop_expr user_indexing_operators ~loc:_sloc _1 ) -# 22405 "src/ocaml/preprocess/parser_raw.ml" - in +# 23096 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -22463,65 +23155,67 @@ module Tables = struct let _2 : ( # 1073 "src/ocaml/preprocess/parser_raw.mly" (string) -# 22467 "src/ocaml/preprocess/parser_raw.ml" +# 23159 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _2 in let array : (Parsetree.expression) = Obj.magic array in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_array_ in let _endpos = _endpos__1_inlined1_ in - let _v : (Parsetree.expression) = let _1 = - let r = - let v = - let _1 = _1_inlined1 in - let _1 = + let _v = + let _1 = + let r = + let v = + let _1 = _1_inlined1 in + let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 22480 "src/ocaml/preprocess/parser_raw.ml" - in - -# 2981 "src/ocaml/preprocess/parser_raw.mly" +# 23173 "src/ocaml/preprocess/parser_raw.ml" + in + +# 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 22485 "src/ocaml/preprocess/parser_raw.ml" +# 23178 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 2965 "src/ocaml/preprocess/parser_raw.mly" +# 2969 "src/ocaml/preprocess/parser_raw.mly" (Some v) -# 22491 "src/ocaml/preprocess/parser_raw.ml" - - in - let i = -# 3663 "src/ocaml/preprocess/parser_raw.mly" +# 23184 "src/ocaml/preprocess/parser_raw.ml" + + in + let i = +# 3674 "src/ocaml/preprocess/parser_raw.mly" ( es ) -# 22497 "src/ocaml/preprocess/parser_raw.ml" - in - let d = - let _1 = -# 124 "" - ( None ) -# 22503 "src/ocaml/preprocess/parser_raw.ml" +# 23190 "src/ocaml/preprocess/parser_raw.ml" in - + let d = + let _1 = +# 123 "" + ( None ) +# 23196 "src/ocaml/preprocess/parser_raw.ml" + in + # 2919 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 22508 "src/ocaml/preprocess/parser_raw.ml" +# 23201 "src/ocaml/preprocess/parser_raw.ml" + + in - in - # 2907 "src/ocaml/preprocess/parser_raw.mly" ( array, d, Bracket, i, r ) -# 22514 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos_array_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 2966 "src/ocaml/preprocess/parser_raw.mly" +# 23207 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos_array_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + ( +# 2970 "src/ocaml/preprocess/parser_raw.mly" ( mk_indexop_expr user_indexing_operators ~loc:_sloc _1 ) -# 22524 "src/ocaml/preprocess/parser_raw.ml" - in +# 23217 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -22603,57 +23297,58 @@ module Tables = struct let _2 : ( # 1073 "src/ocaml/preprocess/parser_raw.mly" (string) -# 22607 "src/ocaml/preprocess/parser_raw.ml" +# 23301 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _2 in let array : (Parsetree.expression) = Obj.magic array in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_array_ in let _endpos = _endpos_xs_ in - let _v : (Parsetree.expression) = let _1 = - let r = - let v = - let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in - let _1 = - let _3 = - let xs = - let xs = -# 253 "" + let _v = + let _1 = + let r = + let v = + let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in + let _1 = + let _3 = + let xs = + let xs = +# 264 "" ( List.rev xs ) -# 22623 "src/ocaml/preprocess/parser_raw.ml" - in - +# 23318 "src/ocaml/preprocess/parser_raw.ml" + in + # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 22628 "src/ocaml/preprocess/parser_raw.ml" +# 23323 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 3499 "src/ocaml/preprocess/parser_raw.mly" +# 3510 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 22634 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__3_ = _endpos_xs_ in - let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in +# 23329 "src/ocaml/preprocess/parser_raw.ml" -# 5392 "src/ocaml/preprocess/parser_raw.mly" + in + let _endpos__3_ = _endpos_xs_ in + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in + let _2 = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 22645 "src/ocaml/preprocess/parser_raw.ml" +# 23340 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 5405 "src/ocaml/preprocess/parser_raw.mly" +# 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 22651 "src/ocaml/preprocess/parser_raw.ml" +# 23346 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 2718 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in @@ -22667,53 +23362,54 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 22671 "src/ocaml/preprocess/parser_raw.ml" +# 23366 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 2985 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 23372 "src/ocaml/preprocess/parser_raw.ml" in -# 2981 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 22677 "src/ocaml/preprocess/parser_raw.ml" +# 2969 "src/ocaml/preprocess/parser_raw.mly" + (Some v) +# 23378 "src/ocaml/preprocess/parser_raw.ml" in - -# 2965 "src/ocaml/preprocess/parser_raw.mly" - (Some v) -# 22683 "src/ocaml/preprocess/parser_raw.ml" - - in - let i = -# 3663 "src/ocaml/preprocess/parser_raw.mly" + let i = +# 3674 "src/ocaml/preprocess/parser_raw.mly" ( es ) -# 22689 "src/ocaml/preprocess/parser_raw.ml" - in - let d = - let _1 = -# 124 "" - ( None ) -# 22695 "src/ocaml/preprocess/parser_raw.ml" +# 23384 "src/ocaml/preprocess/parser_raw.ml" in - + let d = + let _1 = +# 123 "" + ( None ) +# 23390 "src/ocaml/preprocess/parser_raw.ml" + in + # 2919 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 22700 "src/ocaml/preprocess/parser_raw.ml" +# 23395 "src/ocaml/preprocess/parser_raw.ml" + + in - in - # 2907 "src/ocaml/preprocess/parser_raw.mly" ( array, d, Bracket, i, r ) -# 22706 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos_xs_, _startpos_array_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 2966 "src/ocaml/preprocess/parser_raw.mly" +# 23401 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos_xs_, _startpos_array_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + ( +# 2970 "src/ocaml/preprocess/parser_raw.mly" ( mk_indexop_expr user_indexing_operators ~loc:_sloc _1 ) -# 22716 "src/ocaml/preprocess/parser_raw.ml" - in +# 23411 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -22786,7 +23482,7 @@ module Tables = struct let _2 : ( # 1073 "src/ocaml/preprocess/parser_raw.mly" (string) -# 22790 "src/ocaml/preprocess/parser_raw.ml" +# 23486 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _2 in let _2_inlined1 : (Longident.t) = Obj.magic _2_inlined1 in let _1 : unit = Obj.magic _1 in @@ -22794,68 +23490,70 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_array_ in let _endpos = _endpos__1_inlined2_ in - let _v : (Parsetree.expression) = let _1 = - let r = - let _1_inlined1 = _1_inlined2 in - let v = - let _1 = _1_inlined1 in - let _1 = + let _v = + let _1 = + let r = + let _1_inlined1 = _1_inlined2 in + let v = + let _1 = _1_inlined1 in + let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 22806 "src/ocaml/preprocess/parser_raw.ml" - in - -# 2981 "src/ocaml/preprocess/parser_raw.mly" +# 23503 "src/ocaml/preprocess/parser_raw.ml" + in + +# 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 22811 "src/ocaml/preprocess/parser_raw.ml" +# 23508 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 2965 "src/ocaml/preprocess/parser_raw.mly" +# 2969 "src/ocaml/preprocess/parser_raw.mly" (Some v) -# 22817 "src/ocaml/preprocess/parser_raw.ml" - - in - let i = -# 3663 "src/ocaml/preprocess/parser_raw.mly" +# 23514 "src/ocaml/preprocess/parser_raw.ml" + + in + let i = +# 3674 "src/ocaml/preprocess/parser_raw.mly" ( es ) -# 22823 "src/ocaml/preprocess/parser_raw.ml" - in - let d = - let _1 = - let _2 = _2_inlined1 in - let x = +# 23520 "src/ocaml/preprocess/parser_raw.ml" + in + let d = + let _1 = + let _2 = _2_inlined1 in + let x = # 2919 "src/ocaml/preprocess/parser_raw.mly" (_2) -# 22831 "src/ocaml/preprocess/parser_raw.ml" - in - +# 23528 "src/ocaml/preprocess/parser_raw.ml" + in + # 126 "" ( Some x ) -# 22836 "src/ocaml/preprocess/parser_raw.ml" +# 23533 "src/ocaml/preprocess/parser_raw.ml" + + in - in - # 2919 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 22842 "src/ocaml/preprocess/parser_raw.ml" +# 23539 "src/ocaml/preprocess/parser_raw.ml" + + in - in - # 2907 "src/ocaml/preprocess/parser_raw.mly" ( array, d, Bracket, i, r ) -# 22848 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined2_, _startpos_array_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 2966 "src/ocaml/preprocess/parser_raw.mly" +# 23545 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined2_, _startpos_array_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + ( +# 2970 "src/ocaml/preprocess/parser_raw.mly" ( mk_indexop_expr user_indexing_operators ~loc:_sloc _1 ) -# 22858 "src/ocaml/preprocess/parser_raw.ml" - in +# 23555 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -22949,7 +23647,7 @@ module Tables = struct let _2 : ( # 1073 "src/ocaml/preprocess/parser_raw.mly" (string) -# 22953 "src/ocaml/preprocess/parser_raw.ml" +# 23651 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _2 in let _2_inlined1 : (Longident.t) = Obj.magic _2_inlined1 in let _1 : unit = Obj.magic _1 in @@ -22957,52 +23655,53 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_array_ in let _endpos = _endpos_xs_ in - let _v : (Parsetree.expression) = let _1 = - let r = - let (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) = (_startpos__1_inlined2_, _1_inlined4, _1_inlined3) in - let v = - let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in - let _1 = - let _3 = - let xs = - let xs = -# 253 "" + let _v = + let _1 = + let r = + let (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) = (_startpos__1_inlined2_, _1_inlined4, _1_inlined3) in + let v = + let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in + let _1 = + let _3 = + let xs = + let xs = +# 264 "" ( List.rev xs ) -# 22972 "src/ocaml/preprocess/parser_raw.ml" - in - +# 23671 "src/ocaml/preprocess/parser_raw.ml" + in + # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 22977 "src/ocaml/preprocess/parser_raw.ml" +# 23676 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 3499 "src/ocaml/preprocess/parser_raw.mly" +# 3510 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 22983 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__3_ = _endpos_xs_ in - let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in +# 23682 "src/ocaml/preprocess/parser_raw.ml" -# 5392 "src/ocaml/preprocess/parser_raw.mly" + in + let _endpos__3_ = _endpos_xs_ in + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in + let _2 = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 22994 "src/ocaml/preprocess/parser_raw.ml" +# 23693 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 5405 "src/ocaml/preprocess/parser_raw.mly" +# 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 23000 "src/ocaml/preprocess/parser_raw.ml" +# 23699 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 2718 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in @@ -23016,61 +23715,62 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 23020 "src/ocaml/preprocess/parser_raw.ml" +# 23719 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 2985 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 23725 "src/ocaml/preprocess/parser_raw.ml" in -# 2981 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 23026 "src/ocaml/preprocess/parser_raw.ml" +# 2969 "src/ocaml/preprocess/parser_raw.mly" + (Some v) +# 23731 "src/ocaml/preprocess/parser_raw.ml" in - -# 2965 "src/ocaml/preprocess/parser_raw.mly" - (Some v) -# 23032 "src/ocaml/preprocess/parser_raw.ml" - - in - let i = -# 3663 "src/ocaml/preprocess/parser_raw.mly" + let i = +# 3674 "src/ocaml/preprocess/parser_raw.mly" ( es ) -# 23038 "src/ocaml/preprocess/parser_raw.ml" - in - let d = - let _1 = - let _2 = _2_inlined1 in - let x = +# 23737 "src/ocaml/preprocess/parser_raw.ml" + in + let d = + let _1 = + let _2 = _2_inlined1 in + let x = # 2919 "src/ocaml/preprocess/parser_raw.mly" (_2) -# 23046 "src/ocaml/preprocess/parser_raw.ml" - in - +# 23745 "src/ocaml/preprocess/parser_raw.ml" + in + # 126 "" ( Some x ) -# 23051 "src/ocaml/preprocess/parser_raw.ml" +# 23750 "src/ocaml/preprocess/parser_raw.ml" + + in - in - # 2919 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 23057 "src/ocaml/preprocess/parser_raw.ml" +# 23756 "src/ocaml/preprocess/parser_raw.ml" + + in - in - # 2907 "src/ocaml/preprocess/parser_raw.mly" ( array, d, Bracket, i, r ) -# 23063 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos_xs_, _startpos_array_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 2966 "src/ocaml/preprocess/parser_raw.mly" +# 23762 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos_xs_, _startpos_array_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + ( +# 2970 "src/ocaml/preprocess/parser_raw.mly" ( mk_indexop_expr user_indexing_operators ~loc:_sloc _1 ) -# 23073 "src/ocaml/preprocess/parser_raw.ml" - in +# 23772 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -23099,9 +23799,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Parsetree.expression) = -# 2968 "src/ocaml/preprocess/parser_raw.mly" +# 2972 "src/ocaml/preprocess/parser_raw.mly" ( Exp.attr _1 _2 ) -# 23105 "src/ocaml/preprocess/parser_raw.ml" +# 23805 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -23130,25 +23830,27 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_exp_ in - let _v : (Parsetree.expression) = let mode = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 4640 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let mode = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 4651 "src/ocaml/preprocess/parser_raw.mly" ( mkloc (Mode "local") (make_loc _sloc) ) -# 23141 "src/ocaml/preprocess/parser_raw.ml" - - in - let _startpos_mode_ = _startpos__1_ in - let _endpos = _endpos_exp_ in - let _symbolstartpos = _startpos_mode_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 2976 "src/ocaml/preprocess/parser_raw.mly" +# 23842 "src/ocaml/preprocess/parser_raw.ml" + + in + let _startpos_mode_ = _startpos__1_ in + let _endpos = _endpos_exp_ in + let _symbolstartpos = _startpos_mode_ in + let _sloc = (_symbolstartpos, _endpos) in + ( +# 2980 "src/ocaml/preprocess/parser_raw.mly" ( mkexp_constraint ~loc:_sloc ~exp ~cty:None ~modes:[mode] ) -# 23151 "src/ocaml/preprocess/parser_raw.ml" - in +# 23852 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -23176,25 +23878,27 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_exp_ in - let _v : (Parsetree.expression) = let mode = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 4642 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let mode = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 4653 "src/ocaml/preprocess/parser_raw.mly" ( mkloc (Mode "unique") (make_loc _sloc) ) -# 23187 "src/ocaml/preprocess/parser_raw.ml" - - in - let _startpos_mode_ = _startpos__1_ in - let _endpos = _endpos_exp_ in - let _symbolstartpos = _startpos_mode_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 2976 "src/ocaml/preprocess/parser_raw.mly" +# 23890 "src/ocaml/preprocess/parser_raw.ml" + + in + let _startpos_mode_ = _startpos__1_ in + let _endpos = _endpos_exp_ in + let _symbolstartpos = _startpos_mode_ in + let _sloc = (_symbolstartpos, _endpos) in + ( +# 2980 "src/ocaml/preprocess/parser_raw.mly" ( mkexp_constraint ~loc:_sloc ~exp ~cty:None ~modes:[mode] ) -# 23197 "src/ocaml/preprocess/parser_raw.ml" - in +# 23900 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -23222,25 +23926,27 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_exp_ in - let _v : (Parsetree.expression) = let mode = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 4644 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let mode = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 4655 "src/ocaml/preprocess/parser_raw.mly" ( mkloc (Mode "once") (make_loc _sloc) ) -# 23233 "src/ocaml/preprocess/parser_raw.ml" - - in - let _startpos_mode_ = _startpos__1_ in - let _endpos = _endpos_exp_ in - let _symbolstartpos = _startpos_mode_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 2976 "src/ocaml/preprocess/parser_raw.mly" +# 23938 "src/ocaml/preprocess/parser_raw.ml" + + in + let _startpos_mode_ = _startpos__1_ in + let _endpos = _endpos_exp_ in + let _symbolstartpos = _startpos_mode_ in + let _sloc = (_symbolstartpos, _endpos) in + ( +# 2980 "src/ocaml/preprocess/parser_raw.mly" ( mkexp_constraint ~loc:_sloc ~exp ~cty:None ~modes:[mode] ) -# 23243 "src/ocaml/preprocess/parser_raw.ml" - in +# 23948 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -23268,15 +23974,17 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in - let _v : (Parsetree.expression) = let _endpos = _endpos__2_ in - let _symbolstartpos = _startpos__1_ in - let _loc__1_ = (_startpos__1_, _endpos__1_) in - let _sloc = (_symbolstartpos, _endpos) in - -# 2978 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _endpos = _endpos__2_ in + let _symbolstartpos = _startpos__1_ in + let _loc__1_ = (_startpos__1_, _endpos__1_) in + let _sloc = (_symbolstartpos, _endpos) in + ( +# 2982 "src/ocaml/preprocess/parser_raw.mly" ( mkexp_exclave ~loc:_sloc ~kwd_loc:(_loc__1_) _2 ) -# 23279 "src/ocaml/preprocess/parser_raw.ml" - in +# 23986 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -23318,11 +24026,12 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in - let _v : (Parsetree.function_param list) = let _endpos = _endpos__4_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 3513 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _endpos = _endpos__4_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + ( +# 3524 "src/ocaml/preprocess/parser_raw.mly" ( (* We desugar (type a b c) to (type a) (type b) (type c). If we do this desugaring, the loc for each parameter is a ghost. *) @@ -23338,8 +24047,9 @@ module Tables = struct }) ty_params ) -# 23342 "src/ocaml/preprocess/parser_raw.ml" - in +# 24051 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.function_param list)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -23392,36 +24102,38 @@ module Tables = struct let _1_inlined1 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 23396 "src/ocaml/preprocess/parser_raw.ml" +# 24106 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__6_ in - let _v : (Parsetree.function_param list) = let _3 = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let _v = + let _3 = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 23411 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__6_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 3529 "src/ocaml/preprocess/parser_raw.mly" +# 24122 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__6_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + ( +# 3540 "src/ocaml/preprocess/parser_raw.mly" ( [ { pparam_loc = make_loc _sloc; pparam_desc = Pparam_newtype (_3, Some _5) } ] ) -# 23424 "src/ocaml/preprocess/parser_raw.ml" - in +# 24135 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.function_param list)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -23442,19 +24154,21 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v : (Parsetree.function_param list) = let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 3535 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + ( +# 3546 "src/ocaml/preprocess/parser_raw.mly" ( let a, b, c = _1 in [ { pparam_loc = make_loc _sloc; pparam_desc = Pparam_val (a, b, c) } ] ) -# 23457 "src/ocaml/preprocess/parser_raw.ml" - in +# 24170 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.function_param list)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -23475,23 +24189,25 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_xs_ in let _endpos = _endpos_xs_ in - let _v : (Parsetree.function_param list) = let _1 = - let xs = -# 253 "" + let _v = + let _1 = + let xs = +# 264 "" ( List.rev xs ) -# 23483 "src/ocaml/preprocess/parser_raw.ml" - in - +# 24198 "src/ocaml/preprocess/parser_raw.ml" + in + # 1418 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 23488 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 3543 "src/ocaml/preprocess/parser_raw.mly" +# 24203 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 3554 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 23494 "src/ocaml/preprocess/parser_raw.ml" - in +# 24209 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.function_param list)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -23515,7 +24231,7 @@ module Tables = struct let _v : (Parsetree.expression) = # 2741 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 23519 "src/ocaml/preprocess/parser_raw.ml" +# 24235 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -23547,7 +24263,7 @@ module Tables = struct let _v : (Parsetree.expression) = # 2742 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 23551 "src/ocaml/preprocess/parser_raw.ml" +# 24267 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -23583,27 +24299,29 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in - let _v : (Parsetree.expression) = let _1 = - let _1 = + let _v = + let _1 = + let _1 = # 2744 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_sequence(_1, _3) ) -# 23591 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos__1_ = _endpos__3_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 24308 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__3_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1329 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc _1 ) -# 23600 "src/ocaml/preprocess/parser_raw.ml" - - in - +# 24317 "src/ocaml/preprocess/parser_raw.ml" + + in + ( # 2745 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 23606 "src/ocaml/preprocess/parser_raw.ml" - in +# 24323 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -23652,16 +24370,18 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__5_ in - let _v : (Parsetree.expression) = let _endpos = _endpos__5_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let _v = + let _endpos = _endpos__5_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + ( # 2747 "src/ocaml/preprocess/parser_raw.mly" ( let seq = mkexp ~loc:_sloc (Pexp_sequence (_1, _5)) in let payload = PStr [mkstrexp seq []] in mkexp ~loc:_sloc (Pexp_extension (_4, payload)) ) -# 23664 "src/ocaml/preprocess/parser_raw.ml" - in +# 24383 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -23683,9 +24403,9 @@ module Tables = struct let _startpos = _startpos_ty_ in let _endpos = _endpos_ty_ in let _v : (Parsetree.core_type) = -# 4544 "src/ocaml/preprocess/parser_raw.mly" +# 4555 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 23689 "src/ocaml/preprocess/parser_raw.ml" +# 24409 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -23708,9 +24428,9 @@ module Tables = struct let _startpos = _startpos_ty_ in let _endpos = _endpos_ty_ in let _v : (Parsetree.core_type) = -# 4546 "src/ocaml/preprocess/parser_raw.mly" +# 4557 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 23714 "src/ocaml/preprocess/parser_raw.ml" +# 24434 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -23739,12 +24459,14 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in - let _v : (Lexing.position * Parsetree.functor_parameter) = let _startpos = _startpos__1_ in - + let _v = + let _startpos = _startpos__1_ in + ( # 1705 "src/ocaml/preprocess/parser_raw.mly" ( _startpos, Unit ) -# 23747 "src/ocaml/preprocess/parser_raw.ml" - in +# 24468 "src/ocaml/preprocess/parser_raw.ml" + : (Lexing.position * Parsetree.functor_parameter)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -23793,28 +24515,30 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__6_ in - let _v : (Lexing.position * Parsetree.functor_parameter) = let mm = -# 4688 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let mm = +# 4699 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 23800 "src/ocaml/preprocess/parser_raw.ml" - in - let x = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 24523 "src/ocaml/preprocess/parser_raw.ml" + in + let x = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 23810 "src/ocaml/preprocess/parser_raw.ml" - - in - let _startpos = _startpos__1_ in - +# 24533 "src/ocaml/preprocess/parser_raw.ml" + + in + let _startpos = _startpos__1_ in + ( # 1708 "src/ocaml/preprocess/parser_raw.mly" ( _startpos, Named (x, mty, mm) ) -# 23817 "src/ocaml/preprocess/parser_raw.ml" - in +# 24540 "src/ocaml/preprocess/parser_raw.ml" + : (Lexing.position * Parsetree.functor_parameter)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -23870,31 +24594,33 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__6_ in - let _v : (Lexing.position * Parsetree.functor_parameter) = let mm = - let _1 = _1_inlined2 in - -# 4689 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let mm = + let _1 = _1_inlined2 in + +# 4700 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 23879 "src/ocaml/preprocess/parser_raw.ml" - - in - let x = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 24604 "src/ocaml/preprocess/parser_raw.ml" + + in + let x = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 23890 "src/ocaml/preprocess/parser_raw.ml" - - in - let _startpos = _startpos__1_ in - +# 24615 "src/ocaml/preprocess/parser_raw.ml" + + in + let _startpos = _startpos__1_ in + ( # 1708 "src/ocaml/preprocess/parser_raw.mly" ( _startpos, Named (x, mty, mm) ) -# 23897 "src/ocaml/preprocess/parser_raw.ml" - in +# 24622 "src/ocaml/preprocess/parser_raw.ml" + : (Lexing.position * Parsetree.functor_parameter)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -23918,7 +24644,7 @@ module Tables = struct let _v : ((Lexing.position * Parsetree.functor_parameter) list) = # 1697 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 23922 "src/ocaml/preprocess/parser_raw.ml" +# 24648 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -23935,9 +24661,9 @@ module Tables = struct let _endpos = _startpos in let _v : ((string Location.loc * Parsetree.jkind_annotation option) list * Parsetree.constructor_arguments * Parsetree.core_type option) = -# 4320 "src/ocaml/preprocess/parser_raw.mly" +# 4331 "src/ocaml/preprocess/parser_raw.mly" ( ([],Pcstr_tuple [],None) ) -# 23941 "src/ocaml/preprocess/parser_raw.ml" +# 24667 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -23968,9 +24694,9 @@ module Tables = struct let _endpos = _endpos__2_ in let _v : ((string Location.loc * Parsetree.jkind_annotation option) list * Parsetree.constructor_arguments * Parsetree.core_type option) = -# 4321 "src/ocaml/preprocess/parser_raw.mly" +# 4332 "src/ocaml/preprocess/parser_raw.mly" ( ([],_2,None) ) -# 23974 "src/ocaml/preprocess/parser_raw.ml" +# 24700 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -24015,9 +24741,9 @@ module Tables = struct let _endpos = _endpos__4_ in let _v : ((string Location.loc * Parsetree.jkind_annotation option) list * Parsetree.constructor_arguments * Parsetree.core_type option) = -# 4323 "src/ocaml/preprocess/parser_raw.mly" +# 4334 "src/ocaml/preprocess/parser_raw.mly" ( ([],_2,Some _4) ) -# 24021 "src/ocaml/preprocess/parser_raw.ml" +# 24747 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -24074,31 +24800,33 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__6_ in - let _v : ((string Location.loc * Parsetree.jkind_annotation option) list * - Parsetree.constructor_arguments * Parsetree.core_type option) = let _2 = - let _1 = - let xs = -# 253 "" + let _v = + let _2 = + let _1 = + let xs = +# 264 "" ( List.rev xs ) -# 24084 "src/ocaml/preprocess/parser_raw.ml" - in - +# 24810 "src/ocaml/preprocess/parser_raw.ml" + in + # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 24089 "src/ocaml/preprocess/parser_raw.ml" +# 24815 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 4470 "src/ocaml/preprocess/parser_raw.mly" +# 4481 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 24095 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4326 "src/ocaml/preprocess/parser_raw.mly" +# 24821 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4337 "src/ocaml/preprocess/parser_raw.mly" ( (_2,_4,Some _6) ) -# 24101 "src/ocaml/preprocess/parser_raw.ml" - in +# 24827 "src/ocaml/preprocess/parser_raw.ml" + : ((string Location.loc * Parsetree.jkind_annotation option) list * + Parsetree.constructor_arguments * Parsetree.core_type option)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -24128,9 +24856,9 @@ module Tables = struct let _endpos = _endpos__2_ in let _v : ((string Location.loc * Parsetree.jkind_annotation option) list * Parsetree.constructor_arguments * Parsetree.core_type option) = -# 4328 "src/ocaml/preprocess/parser_raw.mly" +# 4339 "src/ocaml/preprocess/parser_raw.mly" ( ([],Pcstr_tuple [],Some _2) ) -# 24134 "src/ocaml/preprocess/parser_raw.ml" +# 24862 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -24173,31 +24901,33 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in - let _v : ((string Location.loc * Parsetree.jkind_annotation option) list * - Parsetree.constructor_arguments * Parsetree.core_type option) = let _2 = - let _1 = - let xs = -# 253 "" + let _v = + let _2 = + let _1 = + let xs = +# 264 "" ( List.rev xs ) -# 24183 "src/ocaml/preprocess/parser_raw.ml" - in - +# 24911 "src/ocaml/preprocess/parser_raw.ml" + in + # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 24188 "src/ocaml/preprocess/parser_raw.ml" +# 24916 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 4470 "src/ocaml/preprocess/parser_raw.mly" +# 4481 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 24194 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4330 "src/ocaml/preprocess/parser_raw.mly" +# 24922 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4341 "src/ocaml/preprocess/parser_raw.mly" ( (_2,Pcstr_tuple [],Some _4) ) -# 24200 "src/ocaml/preprocess/parser_raw.ml" - in +# 24928 "src/ocaml/preprocess/parser_raw.ml" + : ((string Location.loc * Parsetree.jkind_annotation option) list * + Parsetree.constructor_arguments * Parsetree.core_type option)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -24240,42 +24970,44 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined2_ in - let _v : (Ocaml_parsing.Ast_helper.str * - (string Location.loc * Parsetree.jkind_annotation option) list * - Parsetree.constructor_arguments * Parsetree.core_type option * - Parsetree.attributes * Location.t * Ocaml_parsing.Docstrings.info) = let attrs = - let _1 = _1_inlined2 in - -# 5392 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let attrs = + let _1 = _1_inlined2 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 24252 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_attrs_ = _endpos__1_inlined2_ in - let cid = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 24980 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_attrs_ = _endpos__1_inlined2_ in + let cid = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 24264 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos_attrs_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 4267 "src/ocaml/preprocess/parser_raw.mly" +# 24992 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos_attrs_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + ( +# 4278 "src/ocaml/preprocess/parser_raw.mly" ( let vars, args, res = vars_args_res in let info = symbol_info _endpos in let loc = make_loc _sloc in cid, vars, args, res, attrs, loc, info ) -# 24278 "src/ocaml/preprocess/parser_raw.ml" - in +# 25006 "src/ocaml/preprocess/parser_raw.ml" + : (Ocaml_parsing.Ast_helper.str * + (string Location.loc * Parsetree.jkind_annotation option) list * + Parsetree.constructor_arguments * Parsetree.core_type option * + Parsetree.attributes * Location.t * Ocaml_parsing.Docstrings.info)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -24311,47 +25043,49 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined1_ in - let _v : (Ocaml_parsing.Ast_helper.str * - (string Location.loc * Parsetree.jkind_annotation option) list * - Parsetree.constructor_arguments * Parsetree.core_type option * - Parsetree.attributes * Location.t * Ocaml_parsing.Docstrings.info) = let attrs = - let _1 = _1_inlined1 in - -# 5392 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let attrs = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 24323 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_attrs_ = _endpos__1_inlined1_ in - let cid = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 25053 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_attrs_ = _endpos__1_inlined1_ in + let cid = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 24334 "src/ocaml/preprocess/parser_raw.ml" - - in - let _startpos_cid_ = _startpos__1_ in - let _1 = -# 5200 "src/ocaml/preprocess/parser_raw.mly" +# 25064 "src/ocaml/preprocess/parser_raw.ml" + + in + let _startpos_cid_ = _startpos__1_ in + let _1 = +# 5211 "src/ocaml/preprocess/parser_raw.mly" ( () ) -# 24341 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos_attrs_ in - let _symbolstartpos = _startpos_cid_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 4267 "src/ocaml/preprocess/parser_raw.mly" +# 25071 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos_attrs_ in + let _symbolstartpos = _startpos_cid_ in + let _sloc = (_symbolstartpos, _endpos) in + ( +# 4278 "src/ocaml/preprocess/parser_raw.mly" ( let vars, args, res = vars_args_res in let info = symbol_info _endpos in let loc = make_loc _sloc in cid, vars, args, res, attrs, loc, info ) -# 24354 "src/ocaml/preprocess/parser_raw.ml" - in +# 25084 "src/ocaml/preprocess/parser_raw.ml" + : (Ocaml_parsing.Ast_helper.str * + (string Location.loc * Parsetree.jkind_annotation option) list * + Parsetree.constructor_arguments * Parsetree.core_type option * + Parsetree.attributes * Location.t * Ocaml_parsing.Docstrings.info)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -24430,7 +25164,7 @@ module Tables = struct let _1_inlined2 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 24434 "src/ocaml/preprocess/parser_raw.ml" +# 25168 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined2 in let params : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = Obj.magic params in let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in @@ -24439,69 +25173,69 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined4_ in - let _v : ((Asttypes.rec_flag * string Location.loc option) * - Parsetree.type_declaration) = let attrs2 = - let _1 = _1_inlined4 in - -# 5388 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let attrs2 = + let _1 = _1_inlined4 in + +# 5399 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 24449 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_attrs2_ = _endpos__1_inlined4_ in - let cstrs = - let _1 = - let xs = -# 253 "" - ( List.rev xs ) -# 24458 "src/ocaml/preprocess/parser_raw.ml" - in +# 25183 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos_attrs2_ = _endpos__1_inlined4_ in + let cstrs = + let _1 = + let xs = +# 264 "" + ( List.rev xs ) +# 25192 "src/ocaml/preprocess/parser_raw.ml" + in + # 1380 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 24463 "src/ocaml/preprocess/parser_raw.ml" +# 25197 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 4087 "src/ocaml/preprocess/parser_raw.mly" +# 4098 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 24469 "src/ocaml/preprocess/parser_raw.ml" - - in - let kind_priv_manifest = -# 4126 "src/ocaml/preprocess/parser_raw.mly" +# 25203 "src/ocaml/preprocess/parser_raw.ml" + + in + let kind_priv_manifest = +# 4137 "src/ocaml/preprocess/parser_raw.mly" ( _2 ) -# 24475 "src/ocaml/preprocess/parser_raw.ml" - in - let id = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 25209 "src/ocaml/preprocess/parser_raw.ml" + in + let id = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 24485 "src/ocaml/preprocess/parser_raw.ml" - - in - let flag = -# 5220 "src/ocaml/preprocess/parser_raw.mly" +# 25219 "src/ocaml/preprocess/parser_raw.ml" + + in + let flag = +# 5231 "src/ocaml/preprocess/parser_raw.mly" ( Recursive ) -# 24491 "src/ocaml/preprocess/parser_raw.ml" - in - let attrs1 = - let _1 = _1_inlined1 in - -# 5392 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 24498 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos_attrs2_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 4056 "src/ocaml/preprocess/parser_raw.mly" +# 25225 "src/ocaml/preprocess/parser_raw.ml" + in + let attrs1 = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 25232 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos_attrs2_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + ( +# 4067 "src/ocaml/preprocess/parser_raw.mly" ( let (kind, priv, manifest) = kind_priv_manifest in let docs = symbol_docs _sloc in @@ -24511,8 +25245,10 @@ module Tables = struct Type.mk id ~params ~cstrs ~kind ~priv ?manifest ~attrs ~loc ~docs ?jkind_annotation ) -# 24515 "src/ocaml/preprocess/parser_raw.ml" - in +# 25249 "src/ocaml/preprocess/parser_raw.ml" + : ((Asttypes.rec_flag * string Location.loc option) * + Parsetree.type_declaration)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -24597,7 +25333,7 @@ module Tables = struct let _1_inlined3 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 24601 "src/ocaml/preprocess/parser_raw.ml" +# 25337 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined3 in let params : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = Obj.magic params in let _1_inlined2 : unit = Obj.magic _1_inlined2 in @@ -24607,75 +25343,75 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined5_ in - let _v : ((Asttypes.rec_flag * string Location.loc option) * - Parsetree.type_declaration) = let attrs2 = - let _1 = _1_inlined5 in - -# 5388 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let attrs2 = + let _1 = _1_inlined5 in + +# 5399 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 24617 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_attrs2_ = _endpos__1_inlined5_ in - let cstrs = - let _1 = - let xs = -# 253 "" - ( List.rev xs ) -# 24626 "src/ocaml/preprocess/parser_raw.ml" - in +# 25353 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos_attrs2_ = _endpos__1_inlined5_ in + let cstrs = + let _1 = + let xs = +# 264 "" + ( List.rev xs ) +# 25362 "src/ocaml/preprocess/parser_raw.ml" + in + # 1380 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 24631 "src/ocaml/preprocess/parser_raw.ml" +# 25367 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 4087 "src/ocaml/preprocess/parser_raw.mly" +# 4098 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 24637 "src/ocaml/preprocess/parser_raw.ml" - - in - let kind_priv_manifest = -# 4126 "src/ocaml/preprocess/parser_raw.mly" +# 25373 "src/ocaml/preprocess/parser_raw.ml" + + in + let kind_priv_manifest = +# 4137 "src/ocaml/preprocess/parser_raw.mly" ( _2 ) -# 24643 "src/ocaml/preprocess/parser_raw.ml" - in - let id = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined3_, _startpos__1_inlined3_, _1_inlined3) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 25379 "src/ocaml/preprocess/parser_raw.ml" + in + let id = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined3_, _startpos__1_inlined3_, _1_inlined3) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 24653 "src/ocaml/preprocess/parser_raw.ml" - - in - let flag = - let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined2_, _startpos__1_inlined2_) in - let _endpos = _endpos__1_ in - let _startpos = _startpos__1_ in - let _loc = (_startpos, _endpos) in - -# 5222 "src/ocaml/preprocess/parser_raw.mly" +# 25389 "src/ocaml/preprocess/parser_raw.ml" + + in + let flag = + let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined2_, _startpos__1_inlined2_) in + let _endpos = _endpos__1_ in + let _startpos = _startpos__1_ in + let _loc = (_startpos, _endpos) in + +# 5233 "src/ocaml/preprocess/parser_raw.mly" ( not_expecting _loc "nonrec flag"; Recursive ) -# 24664 "src/ocaml/preprocess/parser_raw.ml" - - in - let attrs1 = - let _1 = _1_inlined1 in - -# 5392 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 24672 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos_attrs2_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 4056 "src/ocaml/preprocess/parser_raw.mly" +# 25400 "src/ocaml/preprocess/parser_raw.ml" + + in + let attrs1 = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 25408 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos_attrs2_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + ( +# 4067 "src/ocaml/preprocess/parser_raw.mly" ( let (kind, priv, manifest) = kind_priv_manifest in let docs = symbol_docs _sloc in @@ -24685,8 +25421,10 @@ module Tables = struct Type.mk id ~params ~cstrs ~kind ~priv ?manifest ~attrs ~loc ~docs ?jkind_annotation ) -# 24689 "src/ocaml/preprocess/parser_raw.ml" - in +# 25425 "src/ocaml/preprocess/parser_raw.ml" + : ((Asttypes.rec_flag * string Location.loc option) * + Parsetree.type_declaration)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -24758,7 +25496,7 @@ module Tables = struct let _1_inlined2 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 24762 "src/ocaml/preprocess/parser_raw.ml" +# 25500 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined2 in let params : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = Obj.magic params in let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in @@ -24767,64 +25505,64 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined3_ in - let _v : ((Asttypes.rec_flag * string Location.loc option) * - Parsetree.type_declaration) = let attrs2 = - let _1 = _1_inlined3 in - -# 5388 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let attrs2 = + let _1 = _1_inlined3 in + +# 5399 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 24777 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_attrs2_ = _endpos__1_inlined3_ in - let cstrs = - let _1 = - let xs = -# 253 "" - ( List.rev xs ) -# 24786 "src/ocaml/preprocess/parser_raw.ml" - in +# 25515 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos_attrs2_ = _endpos__1_inlined3_ in + let cstrs = + let _1 = + let xs = +# 264 "" + ( List.rev xs ) +# 25524 "src/ocaml/preprocess/parser_raw.ml" + in + # 1380 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 24791 "src/ocaml/preprocess/parser_raw.ml" +# 25529 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 4087 "src/ocaml/preprocess/parser_raw.mly" +# 4098 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 24797 "src/ocaml/preprocess/parser_raw.ml" - - in - let id = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 25535 "src/ocaml/preprocess/parser_raw.ml" + + in + let id = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 24808 "src/ocaml/preprocess/parser_raw.ml" - - in - let flag = -# 5216 "src/ocaml/preprocess/parser_raw.mly" +# 25546 "src/ocaml/preprocess/parser_raw.ml" + + in + let flag = +# 5227 "src/ocaml/preprocess/parser_raw.mly" ( Recursive ) -# 24814 "src/ocaml/preprocess/parser_raw.ml" - in - let attrs1 = - let _1 = _1_inlined1 in - -# 5392 "src/ocaml/preprocess/parser_raw.mly" +# 25552 "src/ocaml/preprocess/parser_raw.ml" + in + let attrs1 = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 24821 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos_attrs2_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 4056 "src/ocaml/preprocess/parser_raw.mly" +# 25559 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos_attrs2_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + ( +# 4067 "src/ocaml/preprocess/parser_raw.mly" ( let (kind, priv, manifest) = kind_priv_manifest in let docs = symbol_docs _sloc in @@ -24834,8 +25572,10 @@ module Tables = struct Type.mk id ~params ~cstrs ~kind ~priv ?manifest ~attrs ~loc ~docs ?jkind_annotation ) -# 24838 "src/ocaml/preprocess/parser_raw.ml" - in +# 25576 "src/ocaml/preprocess/parser_raw.ml" + : ((Asttypes.rec_flag * string Location.loc option) * + Parsetree.type_declaration)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -24913,7 +25653,7 @@ module Tables = struct let _1_inlined3 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 24917 "src/ocaml/preprocess/parser_raw.ml" +# 25657 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined3 in let params : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = Obj.magic params in let _1_inlined2 : unit = Obj.magic _1_inlined2 in @@ -24923,64 +25663,64 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined4_ in - let _v : ((Asttypes.rec_flag * string Location.loc option) * - Parsetree.type_declaration) = let attrs2 = - let _1 = _1_inlined4 in - -# 5388 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let attrs2 = + let _1 = _1_inlined4 in + +# 5399 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 24933 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_attrs2_ = _endpos__1_inlined4_ in - let cstrs = - let _1 = - let xs = -# 253 "" - ( List.rev xs ) -# 24942 "src/ocaml/preprocess/parser_raw.ml" - in +# 25673 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos_attrs2_ = _endpos__1_inlined4_ in + let cstrs = + let _1 = + let xs = +# 264 "" + ( List.rev xs ) +# 25682 "src/ocaml/preprocess/parser_raw.ml" + in + # 1380 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 24947 "src/ocaml/preprocess/parser_raw.ml" +# 25687 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 4087 "src/ocaml/preprocess/parser_raw.mly" +# 4098 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 24953 "src/ocaml/preprocess/parser_raw.ml" - - in - let id = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined3_, _startpos__1_inlined3_, _1_inlined3) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 25693 "src/ocaml/preprocess/parser_raw.ml" + + in + let id = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined3_, _startpos__1_inlined3_, _1_inlined3) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 24964 "src/ocaml/preprocess/parser_raw.ml" - - in - let flag = -# 5217 "src/ocaml/preprocess/parser_raw.mly" +# 25704 "src/ocaml/preprocess/parser_raw.ml" + + in + let flag = +# 5228 "src/ocaml/preprocess/parser_raw.mly" ( Nonrecursive ) -# 24970 "src/ocaml/preprocess/parser_raw.ml" - in - let attrs1 = - let _1 = _1_inlined1 in - -# 5392 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 24977 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos_attrs2_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 4056 "src/ocaml/preprocess/parser_raw.mly" +# 25710 "src/ocaml/preprocess/parser_raw.ml" + in + let attrs1 = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 25717 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos_attrs2_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + ( +# 4067 "src/ocaml/preprocess/parser_raw.mly" ( let (kind, priv, manifest) = kind_priv_manifest in let docs = symbol_docs _sloc in @@ -24990,8 +25730,10 @@ module Tables = struct Type.mk id ~params ~cstrs ~kind ~priv ?manifest ~attrs ~loc ~docs ?jkind_annotation ) -# 24994 "src/ocaml/preprocess/parser_raw.ml" - in +# 25734 "src/ocaml/preprocess/parser_raw.ml" + : ((Asttypes.rec_flag * string Location.loc option) * + Parsetree.type_declaration)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -25011,15 +25753,15 @@ module Tables = struct let _1 : ( # 1155 "src/ocaml/preprocess/parser_raw.mly" (string) -# 25015 "src/ocaml/preprocess/parser_raw.ml" +# 25757 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5038 "src/ocaml/preprocess/parser_raw.mly" +# 5049 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 25023 "src/ocaml/preprocess/parser_raw.ml" +# 25765 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -25040,15 +25782,15 @@ module Tables = struct let _1 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 25044 "src/ocaml/preprocess/parser_raw.ml" +# 25786 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5039 "src/ocaml/preprocess/parser_raw.mly" +# 5050 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 25052 "src/ocaml/preprocess/parser_raw.ml" +# 25794 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -25080,7 +25822,7 @@ module Tables = struct let _v : (Parsetree.structure) = # 1571 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 25084 "src/ocaml/preprocess/parser_raw.ml" +# 25826 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -25105,7 +25847,7 @@ module Tables = struct let _v : (Parsetree.include_kind) = # 1992 "src/ocaml/preprocess/parser_raw.mly" ( Structure ) -# 25109 "src/ocaml/preprocess/parser_raw.ml" +# 25851 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -25137,7 +25879,7 @@ module Tables = struct let _v : (Parsetree.include_kind) = # 1994 "src/ocaml/preprocess/parser_raw.mly" ( Functor ) -# 25141 "src/ocaml/preprocess/parser_raw.ml" +# 25883 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -25153,9 +25895,9 @@ module Tables = struct let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in let _endpos = _startpos in let _v : (string) = -# 5097 "src/ocaml/preprocess/parser_raw.mly" +# 5108 "src/ocaml/preprocess/parser_raw.mly" ( "" ) -# 25159 "src/ocaml/preprocess/parser_raw.ml" +# 25901 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -25185,9 +25927,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (string) = -# 5098 "src/ocaml/preprocess/parser_raw.mly" +# 5109 "src/ocaml/preprocess/parser_raw.mly" ( ";.." ) -# 25191 "src/ocaml/preprocess/parser_raw.ml" +# 25933 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -25219,7 +25961,7 @@ module Tables = struct let _v : (Parsetree.signature) = # 1578 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 25223 "src/ocaml/preprocess/parser_raw.ml" +# 25965 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -25263,9 +26005,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in let _v : (Parsetree.extension) = -# 5413 "src/ocaml/preprocess/parser_raw.mly" +# 5424 "src/ocaml/preprocess/parser_raw.mly" ( (_2, _3) ) -# 25269 "src/ocaml/preprocess/parser_raw.ml" +# 26011 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -25286,19 +26028,21 @@ module Tables = struct let _1 : ( # 1146 "src/ocaml/preprocess/parser_raw.mly" (string * Location.t * string * Location.t * string option) -# 25290 "src/ocaml/preprocess/parser_raw.ml" +# 26032 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v : (Parsetree.extension) = let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 5415 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + ( +# 5426 "src/ocaml/preprocess/parser_raw.mly" ( mk_quotedext ~loc:_sloc _1 ) -# 25301 "src/ocaml/preprocess/parser_raw.ml" - in +# 26044 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.extension)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -25319,14 +26063,16 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v : (Parsetree.jkind_annotation) = let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 4177 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + ( +# 4188 "src/ocaml/preprocess/parser_raw.mly" ( { pjkind_loc = make_loc _sloc; pjkind_desc = _1 } ) -# 25329 "src/ocaml/preprocess/parser_raw.ml" - in +# 26074 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.jkind_annotation)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -25355,9 +26101,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Parsetree.jkind_annotation) = -# 4181 "src/ocaml/preprocess/parser_raw.mly" +# 4192 "src/ocaml/preprocess/parser_raw.mly" ( _2 ) -# 25361 "src/ocaml/preprocess/parser_raw.ml" +# 26107 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -25394,7 +26140,7 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : (Parsetree.jkind_annotation_desc) = -# 4140 "src/ocaml/preprocess/parser_raw.mly" +# 4151 "src/ocaml/preprocess/parser_raw.mly" ( (* LIDENTs here are for modes *) let modes = List.map @@ -25403,7 +26149,7 @@ module Tables = struct in Mod (_1, modes) ) -# 25407 "src/ocaml/preprocess/parser_raw.ml" +# 26153 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -25416,35 +26162,42 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.semv = _4; + MenhirLib.EngineTypes.startp = _startpos__4_; + MenhirLib.EngineTypes.endp = _endpos__4_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; }; }; } = _menhir_stack in + let _4 : (Parsetree.modalities) = Obj.magic _4 in let _3 : (Parsetree.core_type) = Obj.magic _3 in let _2 : unit = Obj.magic _2 in let _1 : (Parsetree.jkind_annotation) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos__3_ in + let _endpos = _endpos__4_ in let _v : (Parsetree.jkind_annotation_desc) = -# 4148 "src/ocaml/preprocess/parser_raw.mly" - ( - With (_1, _3) +# 4159 "src/ocaml/preprocess/parser_raw.mly" + ( + With (_1, _3, _4) ) -# 25448 "src/ocaml/preprocess/parser_raw.ml" +# 26201 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -25467,11 +26220,11 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Parsetree.jkind_annotation_desc) = -# 4151 "src/ocaml/preprocess/parser_raw.mly" +# 4162 "src/ocaml/preprocess/parser_raw.mly" ( Abbreviation _1 ) -# 25475 "src/ocaml/preprocess/parser_raw.ml" +# 26228 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -25501,11 +26254,11 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos_ty_ in let _v : (Parsetree.jkind_annotation_desc) = -# 4154 "src/ocaml/preprocess/parser_raw.mly" +# 4165 "src/ocaml/preprocess/parser_raw.mly" ( Kind_of ty ) -# 25509 "src/ocaml/preprocess/parser_raw.ml" +# 26262 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -25528,11 +26281,11 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Parsetree.jkind_annotation_desc) = -# 4157 "src/ocaml/preprocess/parser_raw.mly" +# 4168 "src/ocaml/preprocess/parser_raw.mly" ( Default ) -# 25536 "src/ocaml/preprocess/parser_raw.ml" +# 26289 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -25555,11 +26308,11 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Parsetree.jkind_annotation_desc) = -# 4160 "src/ocaml/preprocess/parser_raw.mly" +# 4171 "src/ocaml/preprocess/parser_raw.mly" ( Product (List.rev _1) ) -# 25563 "src/ocaml/preprocess/parser_raw.ml" +# 26316 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -25596,11 +26349,11 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : (Parsetree.jkind_annotation_desc) = -# 4163 "src/ocaml/preprocess/parser_raw.mly" +# 4174 "src/ocaml/preprocess/parser_raw.mly" ( _2 ) -# 25604 "src/ocaml/preprocess/parser_raw.ml" +# 26357 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -25641,30 +26394,32 @@ module Tables = struct let _1_inlined1 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 25645 "src/ocaml/preprocess/parser_raw.ml" +# 26398 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_jkind_ in - let _v : (string Location.loc * Parsetree.jkind_annotation) = let abbrev = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let _v = + let abbrev = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 25659 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4185 "src/ocaml/preprocess/parser_raw.mly" +# 26413 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4196 "src/ocaml/preprocess/parser_raw.mly" ( (abbrev, jkind) ) -# 25667 "src/ocaml/preprocess/parser_raw.ml" - in +# 26421 "src/ocaml/preprocess/parser_raw.ml" + : (string Location.loc * Parsetree.jkind_annotation)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -25718,60 +26473,62 @@ module Tables = struct let _1_inlined1 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 25722 "src/ocaml/preprocess/parser_raw.ml" +# 26477 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined1 in let _1 : (Asttypes.mutable_flag * Parsetree.modality Location.loc list) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined3_ in - let _v : (Parsetree.label_declaration) = let attrs = - let _1 = _1_inlined3 in - -# 5392 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 25733 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_attrs_ = _endpos__1_inlined3_ in - let _4 = - let _1 = _1_inlined2 in - -# 4489 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let attrs = + let _1 = _1_inlined3 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 25742 "src/ocaml/preprocess/parser_raw.ml" - - in - let _2 = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in - let _1 = -# 4999 "src/ocaml/preprocess/parser_raw.mly" +# 26489 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_attrs_ = _endpos__1_inlined3_ in + let _4 = + let _1 = _1_inlined2 in + +# 4500 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 26498 "src/ocaml/preprocess/parser_raw.ml" + + in + let _2 = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in + let _1 = +# 5010 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 25750 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 26506 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 25758 "src/ocaml/preprocess/parser_raw.ml" - - in - let _startpos__2_ = _startpos__1_inlined1_ in - let _endpos = _endpos_attrs_ in - let _symbolstartpos = if _startpos__1_ != _endpos__1_ then - _startpos__1_ - else - _startpos__2_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 4353 "src/ocaml/preprocess/parser_raw.mly" +# 26514 "src/ocaml/preprocess/parser_raw.ml" + + in + let _startpos__2_ = _startpos__1_inlined1_ in + let _endpos = _endpos_attrs_ in + let _symbolstartpos = if _startpos__1_ != _endpos__1_ then + _startpos__1_ + else + _startpos__2_ in + let _sloc = (_symbolstartpos, _endpos) in + ( +# 4364 "src/ocaml/preprocess/parser_raw.mly" ( let info = symbol_info _endpos in let mut, m0 = _1 in let modalities = m0 @ m1 in Type.field _2 _4 ~mut ~modalities ~attrs ~loc:(make_loc _sloc) ~info) -# 25774 "src/ocaml/preprocess/parser_raw.ml" - in +# 26530 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.label_declaration)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -25839,63 +26596,64 @@ module Tables = struct let _1_inlined1 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 25843 "src/ocaml/preprocess/parser_raw.ml" +# 26600 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined1 in let _1 : (Asttypes.mutable_flag * Parsetree.modality Location.loc list) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined4_ in - let _v : (Parsetree.label_declaration) = let attrs1 = - let _1 = _1_inlined4 in - -# 5392 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 25854 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_attrs1_ = _endpos__1_inlined4_ in - let attrs0 = - let _1 = _1_inlined3 in - -# 5392 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 25863 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_attrs0_ = _endpos__1_inlined3_ in - let _4 = - let _1 = _1_inlined2 in - -# 4489 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let attrs1 = + let _1 = _1_inlined4 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 25872 "src/ocaml/preprocess/parser_raw.ml" - - in - let _2 = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in - let _1 = -# 4999 "src/ocaml/preprocess/parser_raw.mly" +# 26612 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_attrs1_ = _endpos__1_inlined4_ in + let attrs0 = + let _1 = _1_inlined3 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 26621 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_attrs0_ = _endpos__1_inlined3_ in + let _4 = + let _1 = _1_inlined2 in + +# 4500 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 26630 "src/ocaml/preprocess/parser_raw.ml" + + in + let _2 = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in + let _1 = +# 5010 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 25880 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 26638 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 25888 "src/ocaml/preprocess/parser_raw.ml" - - in - let _startpos__2_ = _startpos__1_inlined1_ in - let _endpos = _endpos_attrs1_ in - let _symbolstartpos = if _startpos__1_ != _endpos__1_ then - _startpos__1_ - else - _startpos__2_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 4361 "src/ocaml/preprocess/parser_raw.mly" +# 26646 "src/ocaml/preprocess/parser_raw.ml" + + in + let _startpos__2_ = _startpos__1_inlined1_ in + let _endpos = _endpos_attrs1_ in + let _symbolstartpos = if _startpos__1_ != _endpos__1_ then + _startpos__1_ + else + _startpos__2_ in + let _sloc = (_symbolstartpos, _endpos) in + ( +# 4372 "src/ocaml/preprocess/parser_raw.mly" ( let info = match rhs_info _endpos_attrs0_ with | Some _ as info_before_semi -> info_before_semi @@ -25904,8 +26662,9 @@ module Tables = struct let mut, m0 = _1 in let modalities = m0 @ m1 in Type.field _2 _4 ~mut ~modalities ~attrs:(attrs0 @ attrs1) ~loc:(make_loc _sloc) ~info) -# 25908 "src/ocaml/preprocess/parser_raw.ml" - in +# 26666 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.label_declaration)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -25927,9 +26686,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Parsetree.label_declaration list) = -# 4347 "src/ocaml/preprocess/parser_raw.mly" +# 4358 "src/ocaml/preprocess/parser_raw.mly" ( [_1] ) -# 25933 "src/ocaml/preprocess/parser_raw.ml" +# 26692 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -25952,9 +26711,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Parsetree.label_declaration list) = -# 4348 "src/ocaml/preprocess/parser_raw.mly" +# 4359 "src/ocaml/preprocess/parser_raw.mly" ( [_1] ) -# 25958 "src/ocaml/preprocess/parser_raw.ml" +# 26717 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -25984,9 +26743,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Parsetree.label_declaration list) = -# 4349 "src/ocaml/preprocess/parser_raw.mly" +# 4360 "src/ocaml/preprocess/parser_raw.mly" ( _1 :: _2 ) -# 25990 "src/ocaml/preprocess/parser_raw.ml" +# 26749 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -26007,43 +26766,45 @@ module Tables = struct let _1 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 26011 "src/ocaml/preprocess/parser_raw.ml" +# 26770 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v : (string * Parsetree.pattern * Parsetree.core_type option * Parsetree.modes) = let modes = -# 4671 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let modes = +# 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 26019 "src/ocaml/preprocess/parser_raw.ml" - in - let x = - let _1 = +# 26779 "src/ocaml/preprocess/parser_raw.ml" + in + let x = + let _1 = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 1296 "src/ocaml/preprocess/parser_raw.mly" + ( mkrhs _1 _sloc ) +# 26789 "src/ocaml/preprocess/parser_raw.ml" + + in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" - ( mkrhs _1 _sloc ) -# 26029 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 2857 "src/ocaml/preprocess/parser_raw.mly" ( (_1.Location.txt, mkpat ~loc:_sloc (Ppat_var _1)) ) -# 26038 "src/ocaml/preprocess/parser_raw.ml" - - in - +# 26798 "src/ocaml/preprocess/parser_raw.ml" + + in + ( # 2838 "src/ocaml/preprocess/parser_raw.mly" ( let lab, pat = x in lab, pat, None, modes ) -# 26046 "src/ocaml/preprocess/parser_raw.ml" - in +# 26806 "src/ocaml/preprocess/parser_raw.ml" + : (string * Parsetree.pattern * Parsetree.core_type option * Parsetree.modes)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -26070,46 +26831,48 @@ module Tables = struct let _1 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 26074 "src/ocaml/preprocess/parser_raw.ml" +# 26835 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined1_ in - let _v : (string * Parsetree.pattern * Parsetree.core_type option * Parsetree.modes) = let modes = - let _1 = _1_inlined1 in - -# 4672 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let modes = + let _1 = _1_inlined1 in + +# 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 26084 "src/ocaml/preprocess/parser_raw.ml" - - in - let x = - let _1 = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 26846 "src/ocaml/preprocess/parser_raw.ml" + in + let x = + let _1 = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 26095 "src/ocaml/preprocess/parser_raw.ml" +# 26857 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 2857 "src/ocaml/preprocess/parser_raw.mly" ( (_1.Location.txt, mkpat ~loc:_sloc (Ppat_var _1)) ) -# 26104 "src/ocaml/preprocess/parser_raw.ml" - - in - +# 26866 "src/ocaml/preprocess/parser_raw.ml" + + in + ( # 2838 "src/ocaml/preprocess/parser_raw.mly" ( let lab, pat = x in lab, pat, None, modes ) -# 26112 "src/ocaml/preprocess/parser_raw.ml" - in +# 26874 "src/ocaml/preprocess/parser_raw.ml" + : (string * Parsetree.pattern * Parsetree.core_type option * Parsetree.modes)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -26143,43 +26906,45 @@ module Tables = struct let _1 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 26147 "src/ocaml/preprocess/parser_raw.ml" +# 26910 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_cty_ in - let _v : (string * Parsetree.pattern * Parsetree.core_type option * Parsetree.modes) = let modes = -# 4688 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let modes = +# 4699 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 26155 "src/ocaml/preprocess/parser_raw.ml" - in - let x = - let _1 = +# 26919 "src/ocaml/preprocess/parser_raw.ml" + in + let x = + let _1 = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 1296 "src/ocaml/preprocess/parser_raw.mly" + ( mkrhs _1 _sloc ) +# 26929 "src/ocaml/preprocess/parser_raw.ml" + + in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" - ( mkrhs _1 _sloc ) -# 26165 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 2857 "src/ocaml/preprocess/parser_raw.mly" ( (_1.Location.txt, mkpat ~loc:_sloc (Ppat_var _1)) ) -# 26174 "src/ocaml/preprocess/parser_raw.ml" - - in - +# 26938 "src/ocaml/preprocess/parser_raw.ml" + + in + ( # 2842 "src/ocaml/preprocess/parser_raw.mly" ( let lab, pat = x in lab, pat, Some cty, modes ) -# 26182 "src/ocaml/preprocess/parser_raw.ml" - in +# 26946 "src/ocaml/preprocess/parser_raw.ml" + : (string * Parsetree.pattern * Parsetree.core_type option * Parsetree.modes)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -26220,46 +26985,48 @@ module Tables = struct let _1 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 26224 "src/ocaml/preprocess/parser_raw.ml" +# 26989 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined1_ in - let _v : (string * Parsetree.pattern * Parsetree.core_type option * Parsetree.modes) = let modes = - let _1 = _1_inlined1 in - -# 4689 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let modes = + let _1 = _1_inlined1 in + +# 4700 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 26234 "src/ocaml/preprocess/parser_raw.ml" - - in - let x = - let _1 = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 27000 "src/ocaml/preprocess/parser_raw.ml" + in + let x = + let _1 = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 26245 "src/ocaml/preprocess/parser_raw.ml" +# 27011 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 2857 "src/ocaml/preprocess/parser_raw.mly" ( (_1.Location.txt, mkpat ~loc:_sloc (Ppat_var _1)) ) -# 26254 "src/ocaml/preprocess/parser_raw.ml" - - in - +# 27020 "src/ocaml/preprocess/parser_raw.ml" + + in + ( # 2842 "src/ocaml/preprocess/parser_raw.mly" ( let lab, pat = x in lab, pat, Some cty, modes ) -# 26262 "src/ocaml/preprocess/parser_raw.ml" - in +# 27028 "src/ocaml/preprocess/parser_raw.ml" + : (string * Parsetree.pattern * Parsetree.core_type option * Parsetree.modes)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -26307,80 +27074,82 @@ module Tables = struct let _1 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 26311 "src/ocaml/preprocess/parser_raw.ml" +# 27078 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_inner_type_ in - let _v : (string * Parsetree.pattern * Parsetree.core_type option * Parsetree.modes) = let modes = -# 4688 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let modes = +# 4699 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 26319 "src/ocaml/preprocess/parser_raw.ml" - in - let cty = - let _1 = - let bound_vars = - let _1 = - let xs = -# 253 "" +# 27087 "src/ocaml/preprocess/parser_raw.ml" + in + let cty = + let _1 = + let bound_vars = + let _1 = + let xs = +# 264 "" ( List.rev xs ) -# 26328 "src/ocaml/preprocess/parser_raw.ml" - in - +# 27096 "src/ocaml/preprocess/parser_raw.ml" + in + # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 26333 "src/ocaml/preprocess/parser_raw.ml" +# 27101 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 4470 "src/ocaml/preprocess/parser_raw.mly" +# 4481 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 26339 "src/ocaml/preprocess/parser_raw.ml" +# 27107 "src/ocaml/preprocess/parser_raw.ml" + + in - in - # 2849 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 26345 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos_inner_type_, _startpos_xs_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 1333 "src/ocaml/preprocess/parser_raw.mly" - ( mktyp ~loc:_sloc _1 ) -# 26355 "src/ocaml/preprocess/parser_raw.ml" - - in - let x = - let _1 = +# 27113 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos_inner_type_, _startpos_xs_) in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in +# 1333 "src/ocaml/preprocess/parser_raw.mly" + ( mktyp ~loc:_sloc _1 ) +# 27123 "src/ocaml/preprocess/parser_raw.ml" + + in + let x = + let _1 = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 26366 "src/ocaml/preprocess/parser_raw.ml" +# 27134 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 2857 "src/ocaml/preprocess/parser_raw.mly" ( (_1.Location.txt, mkpat ~loc:_sloc (Ppat_var _1)) ) -# 26375 "src/ocaml/preprocess/parser_raw.ml" - - in - +# 27143 "src/ocaml/preprocess/parser_raw.ml" + + in + ( # 2851 "src/ocaml/preprocess/parser_raw.mly" ( let lab, pat = x in lab, pat, Some cty, modes ) -# 26383 "src/ocaml/preprocess/parser_raw.ml" - in +# 27151 "src/ocaml/preprocess/parser_raw.ml" + : (string * Parsetree.pattern * Parsetree.core_type option * Parsetree.modes)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -26435,83 +27204,85 @@ module Tables = struct let _1 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 26439 "src/ocaml/preprocess/parser_raw.ml" +# 27208 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined1_ in - let _v : (string * Parsetree.pattern * Parsetree.core_type option * Parsetree.modes) = let modes = - let _1 = _1_inlined1 in - -# 4689 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let modes = + let _1 = _1_inlined1 in + +# 4700 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 26449 "src/ocaml/preprocess/parser_raw.ml" - - in - let cty = - let _1 = - let bound_vars = - let _1 = - let xs = -# 253 "" +# 27219 "src/ocaml/preprocess/parser_raw.ml" + + in + let cty = + let _1 = + let bound_vars = + let _1 = + let xs = +# 264 "" ( List.rev xs ) -# 26459 "src/ocaml/preprocess/parser_raw.ml" - in - +# 27229 "src/ocaml/preprocess/parser_raw.ml" + in + # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 26464 "src/ocaml/preprocess/parser_raw.ml" +# 27234 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 4470 "src/ocaml/preprocess/parser_raw.mly" +# 4481 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 26470 "src/ocaml/preprocess/parser_raw.ml" +# 27240 "src/ocaml/preprocess/parser_raw.ml" + + in - in - # 2849 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 26476 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos_inner_type_, _startpos_xs_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 1333 "src/ocaml/preprocess/parser_raw.mly" - ( mktyp ~loc:_sloc _1 ) -# 26486 "src/ocaml/preprocess/parser_raw.ml" - - in - let x = - let _1 = +# 27246 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos_inner_type_, _startpos_xs_) in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in +# 1333 "src/ocaml/preprocess/parser_raw.mly" + ( mktyp ~loc:_sloc _1 ) +# 27256 "src/ocaml/preprocess/parser_raw.ml" + + in + let x = + let _1 = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 26497 "src/ocaml/preprocess/parser_raw.ml" +# 27267 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 2857 "src/ocaml/preprocess/parser_raw.mly" ( (_1.Location.txt, mkpat ~loc:_sloc (Ppat_var _1)) ) -# 26506 "src/ocaml/preprocess/parser_raw.ml" - - in - +# 27276 "src/ocaml/preprocess/parser_raw.ml" + + in + ( # 2851 "src/ocaml/preprocess/parser_raw.mly" ( let lab, pat = x in lab, pat, Some cty, modes ) -# 26514 "src/ocaml/preprocess/parser_raw.ml" - in +# 27284 "src/ocaml/preprocess/parser_raw.ml" + : (string * Parsetree.pattern * Parsetree.core_type option * Parsetree.modes)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -26533,9 +27304,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Longident.t) = -# 5129 "src/ocaml/preprocess/parser_raw.mly" +# 5140 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 26539 "src/ocaml/preprocess/parser_raw.ml" +# 27310 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -26558,9 +27329,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Parsetree.arg_label * Parsetree.expression) = -# 3304 "src/ocaml/preprocess/parser_raw.mly" +# 3315 "src/ocaml/preprocess/parser_raw.mly" ( (Nolabel, _1) ) -# 26564 "src/ocaml/preprocess/parser_raw.ml" +# 27335 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -26588,15 +27359,15 @@ module Tables = struct let _1 : ( # 1082 "src/ocaml/preprocess/parser_raw.mly" (string) -# 26592 "src/ocaml/preprocess/parser_raw.ml" +# 27363 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Parsetree.arg_label * Parsetree.expression) = -# 3306 "src/ocaml/preprocess/parser_raw.mly" +# 3317 "src/ocaml/preprocess/parser_raw.mly" ( (Labelled _1, _2) ) -# 26600 "src/ocaml/preprocess/parser_raw.ml" +# 27371 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -26623,19 +27394,21 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 26627 "src/ocaml/preprocess/parser_raw.ml" +# 27398 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_label_ in - let _v : (Parsetree.arg_label * Parsetree.expression) = let _loc_label_ = (_startpos_label_, _endpos_label_) in - -# 3308 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _loc_label_ = (_startpos_label_, _endpos_label_) in + ( +# 3319 "src/ocaml/preprocess/parser_raw.mly" ( let loc = _loc_label_ in (Labelled label, mkexpvar ~loc label) ) -# 26638 "src/ocaml/preprocess/parser_raw.ml" - in +# 27410 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.arg_label * Parsetree.expression)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -26681,21 +27454,23 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 26685 "src/ocaml/preprocess/parser_raw.ml" +# 27458 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _2 : unit = Obj.magic _2 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__5_ in - let _v : (Parsetree.arg_label * Parsetree.expression) = let _endpos = _endpos__5_ in - let _loc_label_ = (_startpos_label_, _endpos_label_) in - -# 3311 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _endpos = _endpos__5_ in + let _loc_label_ = (_startpos_label_, _endpos_label_) in + ( +# 3322 "src/ocaml/preprocess/parser_raw.mly" ( (Labelled label, mkexp_type_constraint_with_modes ~loc:(_startpos__2_, _endpos) ~modes:[] (mkexpvar ~loc:_loc_label_ label) c) ) -# 26698 "src/ocaml/preprocess/parser_raw.ml" - in +# 27472 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.arg_label * Parsetree.expression)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -26721,19 +27496,21 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 26725 "src/ocaml/preprocess/parser_raw.ml" +# 27500 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_label_ in - let _v : (Parsetree.arg_label * Parsetree.expression) = let _loc_label_ = (_startpos_label_, _endpos_label_) in - -# 3314 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _loc_label_ = (_startpos_label_, _endpos_label_) in + ( +# 3325 "src/ocaml/preprocess/parser_raw.mly" ( let loc = _loc_label_ in (Optional label, mkexpvar ~loc label) ) -# 26736 "src/ocaml/preprocess/parser_raw.ml" - in +# 27512 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.arg_label * Parsetree.expression)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -26760,15 +27537,15 @@ module Tables = struct let _1 : ( # 1116 "src/ocaml/preprocess/parser_raw.mly" (string) -# 26764 "src/ocaml/preprocess/parser_raw.ml" +# 27541 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Parsetree.arg_label * Parsetree.expression) = -# 3317 "src/ocaml/preprocess/parser_raw.mly" +# 3328 "src/ocaml/preprocess/parser_raw.mly" ( (Optional _1, _2) ) -# 26772 "src/ocaml/preprocess/parser_raw.ml" +# 27549 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -26818,29 +27595,31 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__6_ in - let _v : (Parsetree.arg_label * Parsetree.expression option * Parsetree.pattern) = let _5 = - let _1 = _1_inlined1 in - + let _v = + let _5 = + let _1 = _1_inlined1 in + # 2834 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 26827 "src/ocaml/preprocess/parser_raw.ml" - - in - let modes0 = -# 4652 "src/ocaml/preprocess/parser_raw.mly" +# 27605 "src/ocaml/preprocess/parser_raw.ml" + + in + let modes0 = +# 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 26833 "src/ocaml/preprocess/parser_raw.ml" - in - let _startpos_modes0_ = _endpos__2_ in - +# 27611 "src/ocaml/preprocess/parser_raw.ml" + in + let _startpos_modes0_ = _endpos__2_ in + ( # 2757 "src/ocaml/preprocess/parser_raw.mly" ( let lbl, pat, cty, modes = x in let loc = _startpos_modes0_, _endpos_x_ in (Optional lbl, _5, mkpat_with_modes ~loc ~pat ~cty ~modes:(modes0 @ modes)) ) -# 26843 "src/ocaml/preprocess/parser_raw.ml" - in +# 27621 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.arg_label * Parsetree.expression option * Parsetree.pattern)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -26896,37 +27675,39 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__6_ in - let _v : (Parsetree.arg_label * Parsetree.expression option * Parsetree.pattern) = let _5 = - let _1 = _1_inlined2 in - + let _v = + let _5 = + let _1 = _1_inlined2 in + # 2834 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 26905 "src/ocaml/preprocess/parser_raw.ml" - - in - let modes0 = - let _1 = _1_inlined1 in - let _1 = -# 4648 "src/ocaml/preprocess/parser_raw.mly" +# 27685 "src/ocaml/preprocess/parser_raw.ml" + + in + let modes0 = + let _1 = _1_inlined1 in + let _1 = +# 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 26913 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4653 "src/ocaml/preprocess/parser_raw.mly" +# 27693 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 26918 "src/ocaml/preprocess/parser_raw.ml" - - in - let _startpos_modes0_ = _startpos__1_inlined1_ in - +# 27698 "src/ocaml/preprocess/parser_raw.ml" + + in + let _startpos_modes0_ = _startpos__1_inlined1_ in + ( # 2757 "src/ocaml/preprocess/parser_raw.mly" ( let lbl, pat, cty, modes = x in let loc = _startpos_modes0_, _endpos_x_ in (Optional lbl, _5, mkpat_with_modes ~loc ~pat ~cty ~modes:(modes0 @ modes)) ) -# 26929 "src/ocaml/preprocess/parser_raw.ml" - in +# 27709 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.arg_label * Parsetree.expression option * Parsetree.pattern)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -26952,38 +27733,40 @@ module Tables = struct let _1_inlined1 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 26956 "src/ocaml/preprocess/parser_raw.ml" +# 27737 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined1_ in - let _v : (Parsetree.arg_label * Parsetree.expression option * Parsetree.pattern) = let _2 = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in - let _1 = + let _v = + let _2 = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in + let _1 = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 1296 "src/ocaml/preprocess/parser_raw.mly" + ( mkrhs _1 _sloc ) +# 27753 "src/ocaml/preprocess/parser_raw.ml" + + in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" - ( mkrhs _1 _sloc ) -# 26971 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 2857 "src/ocaml/preprocess/parser_raw.mly" ( (_1.Location.txt, mkpat ~loc:_sloc (Ppat_var _1)) ) -# 26980 "src/ocaml/preprocess/parser_raw.ml" - - in - +# 27762 "src/ocaml/preprocess/parser_raw.ml" + + in + ( # 2763 "src/ocaml/preprocess/parser_raw.mly" ( (Optional (fst _2), None, snd _2) ) -# 26986 "src/ocaml/preprocess/parser_raw.ml" - in +# 27768 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.arg_label * Parsetree.expression option * Parsetree.pattern)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -27031,34 +27814,36 @@ module Tables = struct let _1 : ( # 1116 "src/ocaml/preprocess/parser_raw.mly" (string) -# 27035 "src/ocaml/preprocess/parser_raw.ml" +# 27818 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__6_ in - let _v : (Parsetree.arg_label * Parsetree.expression option * Parsetree.pattern) = let _5 = - let _1 = _1_inlined1 in - + let _v = + let _5 = + let _1 = _1_inlined1 in + # 2834 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 27045 "src/ocaml/preprocess/parser_raw.ml" - - in - let modes0 = -# 4652 "src/ocaml/preprocess/parser_raw.mly" +# 27829 "src/ocaml/preprocess/parser_raw.ml" + + in + let modes0 = +# 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 27051 "src/ocaml/preprocess/parser_raw.ml" - in - let _startpos_modes0_ = _endpos__2_ in - +# 27835 "src/ocaml/preprocess/parser_raw.ml" + in + let _startpos_modes0_ = _endpos__2_ in + ( # 2765 "src/ocaml/preprocess/parser_raw.mly" ( let pat, cty, modes = x in let loc = _startpos_modes0_, _endpos_x_ in (Optional _1, _5, mkpat_with_modes ~loc ~pat ~cty ~modes:(modes0 @ modes)) ) -# 27061 "src/ocaml/preprocess/parser_raw.ml" - in +# 27845 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.arg_label * Parsetree.expression option * Parsetree.pattern)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -27113,42 +27898,44 @@ module Tables = struct let _1 : ( # 1116 "src/ocaml/preprocess/parser_raw.mly" (string) -# 27117 "src/ocaml/preprocess/parser_raw.ml" +# 27902 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__6_ in - let _v : (Parsetree.arg_label * Parsetree.expression option * Parsetree.pattern) = let _5 = - let _1 = _1_inlined2 in - + let _v = + let _5 = + let _1 = _1_inlined2 in + # 2834 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 27127 "src/ocaml/preprocess/parser_raw.ml" - - in - let modes0 = - let _1 = _1_inlined1 in - let _1 = -# 4648 "src/ocaml/preprocess/parser_raw.mly" +# 27913 "src/ocaml/preprocess/parser_raw.ml" + + in + let modes0 = + let _1 = _1_inlined1 in + let _1 = +# 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 27135 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4653 "src/ocaml/preprocess/parser_raw.mly" +# 27921 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 27140 "src/ocaml/preprocess/parser_raw.ml" - - in - let _startpos_modes0_ = _startpos__1_inlined1_ in - +# 27926 "src/ocaml/preprocess/parser_raw.ml" + + in + let _startpos_modes0_ = _startpos__1_inlined1_ in + ( # 2765 "src/ocaml/preprocess/parser_raw.mly" ( let pat, cty, modes = x in let loc = _startpos_modes0_, _endpos_x_ in (Optional _1, _5, mkpat_with_modes ~loc ~pat ~cty ~modes:(modes0 @ modes)) ) -# 27151 "src/ocaml/preprocess/parser_raw.ml" - in +# 27937 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.arg_label * Parsetree.expression option * Parsetree.pattern)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -27175,7 +27962,7 @@ module Tables = struct let _1 : ( # 1116 "src/ocaml/preprocess/parser_raw.mly" (string) -# 27179 "src/ocaml/preprocess/parser_raw.ml" +# 27966 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -27183,7 +27970,7 @@ module Tables = struct let _v : (Parsetree.arg_label * Parsetree.expression option * Parsetree.pattern) = # 2771 "src/ocaml/preprocess/parser_raw.mly" ( (Optional _1, None, _2) ) -# 27187 "src/ocaml/preprocess/parser_raw.ml" +# 27974 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -27226,21 +28013,23 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__5_ in - let _v : (Parsetree.arg_label * Parsetree.expression option * Parsetree.pattern) = let modes0 = -# 4652 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let modes0 = +# 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 27233 "src/ocaml/preprocess/parser_raw.ml" - in - let _startpos_modes0_ = _endpos__2_ in - +# 28021 "src/ocaml/preprocess/parser_raw.ml" + in + let _startpos_modes0_ = _endpos__2_ in + ( # 2773 "src/ocaml/preprocess/parser_raw.mly" ( let lbl, pat, cty, modes = x in let loc = _startpos_modes0_, _endpos_x_ in (Labelled lbl, None, mkpat_with_modes ~loc ~pat ~cty ~modes:(modes0 @ modes)) ) -# 27243 "src/ocaml/preprocess/parser_raw.ml" - in +# 28031 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.arg_label * Parsetree.expression option * Parsetree.pattern)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -27289,29 +28078,31 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__5_ in - let _v : (Parsetree.arg_label * Parsetree.expression option * Parsetree.pattern) = let modes0 = - let _1 = _1_inlined1 in - let _1 = -# 4648 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let modes0 = + let _1 = _1_inlined1 in + let _1 = +# 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 27298 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4653 "src/ocaml/preprocess/parser_raw.mly" +# 28088 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 27303 "src/ocaml/preprocess/parser_raw.ml" - - in - let _startpos_modes0_ = _startpos__1_inlined1_ in - +# 28093 "src/ocaml/preprocess/parser_raw.ml" + + in + let _startpos_modes0_ = _startpos__1_inlined1_ in + ( # 2773 "src/ocaml/preprocess/parser_raw.mly" ( let lbl, pat, cty, modes = x in let loc = _startpos_modes0_, _endpos_x_ in (Labelled lbl, None, mkpat_with_modes ~loc ~pat ~cty ~modes:(modes0 @ modes)) ) -# 27314 "src/ocaml/preprocess/parser_raw.ml" - in +# 28104 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.arg_label * Parsetree.expression option * Parsetree.pattern)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -27337,38 +28128,40 @@ module Tables = struct let _1_inlined1 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 27341 "src/ocaml/preprocess/parser_raw.ml" +# 28132 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined1_ in - let _v : (Parsetree.arg_label * Parsetree.expression option * Parsetree.pattern) = let _2 = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in - let _1 = + let _v = + let _2 = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in + let _1 = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 1296 "src/ocaml/preprocess/parser_raw.mly" + ( mkrhs _1 _sloc ) +# 28148 "src/ocaml/preprocess/parser_raw.ml" + + in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" - ( mkrhs _1 _sloc ) -# 27356 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 2857 "src/ocaml/preprocess/parser_raw.mly" ( (_1.Location.txt, mkpat ~loc:_sloc (Ppat_var _1)) ) -# 27365 "src/ocaml/preprocess/parser_raw.ml" - - in - +# 28157 "src/ocaml/preprocess/parser_raw.ml" + + in + ( # 2779 "src/ocaml/preprocess/parser_raw.mly" ( (Labelled (fst _2), None, snd _2) ) -# 27371 "src/ocaml/preprocess/parser_raw.ml" - in +# 28163 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.arg_label * Parsetree.expression option * Parsetree.pattern)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -27395,7 +28188,7 @@ module Tables = struct let _1 : ( # 1082 "src/ocaml/preprocess/parser_raw.mly" (string) -# 27399 "src/ocaml/preprocess/parser_raw.ml" +# 28192 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -27403,7 +28196,7 @@ module Tables = struct let _v : (Parsetree.arg_label * Parsetree.expression option * Parsetree.pattern) = # 2781 "src/ocaml/preprocess/parser_raw.mly" ( (Labelled _1, None, _2) ) -# 27407 "src/ocaml/preprocess/parser_raw.ml" +# 28200 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -27445,26 +28238,28 @@ module Tables = struct let _1 : ( # 1082 "src/ocaml/preprocess/parser_raw.mly" (string) -# 27449 "src/ocaml/preprocess/parser_raw.ml" +# 28242 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__5_ in - let _v : (Parsetree.arg_label * Parsetree.expression option * Parsetree.pattern) = let modes0 = -# 4652 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let modes0 = +# 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 27457 "src/ocaml/preprocess/parser_raw.ml" - in - let _startpos_modes0_ = _endpos__2_ in - +# 28251 "src/ocaml/preprocess/parser_raw.ml" + in + let _startpos_modes0_ = _endpos__2_ in + ( # 2783 "src/ocaml/preprocess/parser_raw.mly" ( let pat, cty, modes = x in let loc = _startpos_modes0_, _endpos_x_ in (Labelled _1, None, mkpat_with_modes ~loc ~pat ~cty ~modes:(modes0 @ modes)) ) -# 27467 "src/ocaml/preprocess/parser_raw.ml" - in +# 28261 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.arg_label * Parsetree.expression option * Parsetree.pattern)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -27512,34 +28307,36 @@ module Tables = struct let _1 : ( # 1082 "src/ocaml/preprocess/parser_raw.mly" (string) -# 27516 "src/ocaml/preprocess/parser_raw.ml" +# 28311 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__5_ in - let _v : (Parsetree.arg_label * Parsetree.expression option * Parsetree.pattern) = let modes0 = - let _1 = _1_inlined1 in - let _1 = -# 4648 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let modes0 = + let _1 = _1_inlined1 in + let _1 = +# 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 27526 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4653 "src/ocaml/preprocess/parser_raw.mly" +# 28322 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 27531 "src/ocaml/preprocess/parser_raw.ml" - - in - let _startpos_modes0_ = _startpos__1_inlined1_ in - +# 28327 "src/ocaml/preprocess/parser_raw.ml" + + in + let _startpos_modes0_ = _startpos__1_inlined1_ in + ( # 2783 "src/ocaml/preprocess/parser_raw.mly" ( let pat, cty, modes = x in let loc = _startpos_modes0_, _endpos_x_ in (Labelled _1, None, mkpat_with_modes ~loc ~pat ~cty ~modes:(modes0 @ modes)) ) -# 27542 "src/ocaml/preprocess/parser_raw.ml" - in +# 28338 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.arg_label * Parsetree.expression option * Parsetree.pattern)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -27587,28 +28384,30 @@ module Tables = struct let _1 : ( # 1082 "src/ocaml/preprocess/parser_raw.mly" (string) -# 27591 "src/ocaml/preprocess/parser_raw.ml" +# 28388 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__5_ in - let _v : (Parsetree.arg_label * Parsetree.expression option * Parsetree.pattern) = let modes = - let _1 = _1_inlined1 in - -# 4648 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let modes = + let _1 = _1_inlined1 in + +# 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 27601 "src/ocaml/preprocess/parser_raw.ml" - - in - let _startpos_modes_ = _startpos__1_inlined1_ in - +# 28399 "src/ocaml/preprocess/parser_raw.ml" + + in + let _startpos_modes_ = _startpos__1_inlined1_ in + ( # 2789 "src/ocaml/preprocess/parser_raw.mly" ( let loc = _startpos_modes_, _endpos_pat_ in (Labelled _1, None, mkpat_with_modes ~loc ~pat ~cty:None ~modes) ) -# 27611 "src/ocaml/preprocess/parser_raw.ml" - in +# 28409 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.arg_label * Parsetree.expression option * Parsetree.pattern)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -27632,7 +28431,7 @@ module Tables = struct let _v : (Parsetree.arg_label * Parsetree.expression option * Parsetree.pattern) = # 2794 "src/ocaml/preprocess/parser_raw.mly" ( (Nolabel, None, _1) ) -# 27636 "src/ocaml/preprocess/parser_raw.ml" +# 28435 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -27675,24 +28474,26 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in - let _v : (Parsetree.arg_label * Parsetree.expression option * Parsetree.pattern) = let modes = - let _1 = _1_inlined1 in - -# 4648 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let modes = + let _1 = _1_inlined1 in + +# 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 27684 "src/ocaml/preprocess/parser_raw.ml" - - in - let _startpos_modes_ = _startpos__1_inlined1_ in - +# 28484 "src/ocaml/preprocess/parser_raw.ml" + + in + let _startpos_modes_ = _startpos__1_inlined1_ in + ( # 2796 "src/ocaml/preprocess/parser_raw.mly" ( let pat, cty = x in let loc = _startpos_modes_, _endpos_x_ in (Nolabel, None, mkpat_with_modes ~loc ~pat ~cty ~modes) ) -# 27695 "src/ocaml/preprocess/parser_raw.ml" - in +# 28495 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.arg_label * Parsetree.expression option * Parsetree.pattern)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -27727,21 +28528,23 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in - let _v : (Parsetree.arg_label * Parsetree.expression option * Parsetree.pattern) = let modes0 = -# 4652 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let modes0 = +# 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 27734 "src/ocaml/preprocess/parser_raw.ml" - in - let _startpos_modes0_ = _endpos__1_ in - +# 28536 "src/ocaml/preprocess/parser_raw.ml" + in + let _startpos_modes0_ = _endpos__1_ in + ( # 2802 "src/ocaml/preprocess/parser_raw.mly" ( let pat, cty, modes = x in let loc = _startpos_modes0_, _endpos_x_ in (Nolabel, None, mkpat_with_modes ~loc ~pat ~cty ~modes:(modes0 @ modes)) ) -# 27744 "src/ocaml/preprocess/parser_raw.ml" - in +# 28546 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.arg_label * Parsetree.expression option * Parsetree.pattern)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -27783,29 +28586,31 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in - let _v : (Parsetree.arg_label * Parsetree.expression option * Parsetree.pattern) = let modes0 = - let _1 = _1_inlined1 in - let _1 = -# 4648 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let modes0 = + let _1 = _1_inlined1 in + let _1 = +# 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 27792 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4653 "src/ocaml/preprocess/parser_raw.mly" +# 28596 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 27797 "src/ocaml/preprocess/parser_raw.ml" - - in - let _startpos_modes0_ = _startpos__1_inlined1_ in - +# 28601 "src/ocaml/preprocess/parser_raw.ml" + + in + let _startpos_modes0_ = _startpos__1_inlined1_ in + ( # 2802 "src/ocaml/preprocess/parser_raw.mly" ( let pat, cty, modes = x in let loc = _startpos_modes0_, _endpos_x_ in (Nolabel, None, mkpat_with_modes ~loc ~pat ~cty ~modes:(modes0 @ modes)) ) -# 27808 "src/ocaml/preprocess/parser_raw.ml" - in +# 28612 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.arg_label * Parsetree.expression option * Parsetree.pattern)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -27874,65 +28679,67 @@ module Tables = struct let _1 : ( # 1082 "src/ocaml/preprocess/parser_raw.mly" (string) -# 27878 "src/ocaml/preprocess/parser_raw.ml" +# 28683 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in - let _v : (Parsetree.arg_label * Parsetree.expression option * Parsetree.pattern) = let x = - let cty = - let _1 = - let bound_vars = - let _1 = - let xs = -# 253 "" + let _v = + let x = + let cty = + let _1 = + let bound_vars = + let _1 = + let xs = +# 264 "" ( List.rev xs ) -# 27891 "src/ocaml/preprocess/parser_raw.ml" - in - +# 28697 "src/ocaml/preprocess/parser_raw.ml" + in + # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 27896 "src/ocaml/preprocess/parser_raw.ml" +# 28702 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 4470 "src/ocaml/preprocess/parser_raw.mly" +# 4481 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 27902 "src/ocaml/preprocess/parser_raw.ml" +# 28708 "src/ocaml/preprocess/parser_raw.ml" + + in - in - # 2897 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 27908 "src/ocaml/preprocess/parser_raw.ml" +# 28714 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos_inner_type_, _startpos_xs_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let (_endpos__1_, _startpos__1_) = (_endpos_inner_type_, _startpos_xs_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 27918 "src/ocaml/preprocess/parser_raw.ml" +# 28724 "src/ocaml/preprocess/parser_raw.ml" + + in - in - # 2898 "src/ocaml/preprocess/parser_raw.mly" ( pat, Some cty ) -# 27924 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos_x_, _startpos_x_) = (_endpos_inner_type_, _startpos_pat_) in - let _loc_x_ = (_startpos_x_, _endpos_x_) in - +# 28730 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos_x_, _startpos_x_) = (_endpos_inner_type_, _startpos_pat_) in + let _loc_x_ = (_startpos_x_, _endpos_x_) in + ( # 2808 "src/ocaml/preprocess/parser_raw.mly" ( let pat, cty = x in (Labelled _1, None, mkpat_with_modes ~loc:_loc_x_ ~pat ~cty ~modes:[]) ) -# 27935 "src/ocaml/preprocess/parser_raw.ml" - in +# 28741 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.arg_label * Parsetree.expression option * Parsetree.pattern)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -28008,74 +28815,76 @@ module Tables = struct let _1 : ( # 1082 "src/ocaml/preprocess/parser_raw.mly" (string) -# 28012 "src/ocaml/preprocess/parser_raw.ml" +# 28819 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__5_ in - let _v : (Parsetree.arg_label * Parsetree.expression option * Parsetree.pattern) = let x = - let cty = - let _1 = - let bound_vars = - let _1 = - let xs = -# 253 "" + let _v = + let x = + let cty = + let _1 = + let bound_vars = + let _1 = + let xs = +# 264 "" ( List.rev xs ) -# 28025 "src/ocaml/preprocess/parser_raw.ml" - in - +# 28833 "src/ocaml/preprocess/parser_raw.ml" + in + # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 28030 "src/ocaml/preprocess/parser_raw.ml" +# 28838 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 4470 "src/ocaml/preprocess/parser_raw.mly" +# 4481 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 28036 "src/ocaml/preprocess/parser_raw.ml" +# 28844 "src/ocaml/preprocess/parser_raw.ml" + + in - in - # 2897 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 28042 "src/ocaml/preprocess/parser_raw.ml" +# 28850 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos_inner_type_, _startpos_xs_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let (_endpos__1_, _startpos__1_) = (_endpos_inner_type_, _startpos_xs_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 28052 "src/ocaml/preprocess/parser_raw.ml" +# 28860 "src/ocaml/preprocess/parser_raw.ml" + + in - in - # 2898 "src/ocaml/preprocess/parser_raw.mly" ( pat, Some cty ) -# 28058 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_x_ = _endpos_inner_type_ in - let modes = - let _1 = _1_inlined1 in - -# 4648 "src/ocaml/preprocess/parser_raw.mly" +# 28866 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_x_ = _endpos_inner_type_ in + let modes = + let _1 = _1_inlined1 in + +# 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 28067 "src/ocaml/preprocess/parser_raw.ml" - - in - let _startpos_modes_ = _startpos__1_inlined1_ in - +# 28875 "src/ocaml/preprocess/parser_raw.ml" + + in + let _startpos_modes_ = _startpos__1_inlined1_ in + ( # 2813 "src/ocaml/preprocess/parser_raw.mly" ( let pat, cty = x in let loc = _startpos_modes_, _endpos_x_ in (Labelled _1, None, mkpat_with_modes ~loc ~pat ~cty ~modes) ) -# 28078 "src/ocaml/preprocess/parser_raw.ml" - in +# 28886 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.arg_label * Parsetree.expression option * Parsetree.pattern)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -28138,60 +28947,62 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in - let _v : (Parsetree.arg_label * Parsetree.expression option * Parsetree.pattern) = let x = - let cty = - let _1 = - let bound_vars = - let _1 = - let xs = -# 253 "" + let _v = + let x = + let cty = + let _1 = + let bound_vars = + let _1 = + let xs = +# 264 "" ( List.rev xs ) -# 28150 "src/ocaml/preprocess/parser_raw.ml" - in - +# 28960 "src/ocaml/preprocess/parser_raw.ml" + in + # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 28155 "src/ocaml/preprocess/parser_raw.ml" +# 28965 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 4470 "src/ocaml/preprocess/parser_raw.mly" +# 4481 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 28161 "src/ocaml/preprocess/parser_raw.ml" +# 28971 "src/ocaml/preprocess/parser_raw.ml" + + in - in - # 2897 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 28167 "src/ocaml/preprocess/parser_raw.ml" +# 28977 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos_inner_type_, _startpos_xs_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let (_endpos__1_, _startpos__1_) = (_endpos_inner_type_, _startpos_xs_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 28177 "src/ocaml/preprocess/parser_raw.ml" +# 28987 "src/ocaml/preprocess/parser_raw.ml" + + in - in - # 2898 "src/ocaml/preprocess/parser_raw.mly" ( pat, Some cty ) -# 28183 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos_x_, _startpos_x_) = (_endpos_inner_type_, _startpos_pat_) in - let _loc_x_ = (_startpos_x_, _endpos_x_) in - +# 28993 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos_x_, _startpos_x_) = (_endpos_inner_type_, _startpos_pat_) in + let _loc_x_ = (_startpos_x_, _endpos_x_) in + ( # 2819 "src/ocaml/preprocess/parser_raw.mly" ( let pat, cty = x in (Nolabel, None, mkpat_with_modes ~loc:_loc_x_ ~pat ~cty ~modes:[]) ) -# 28194 "src/ocaml/preprocess/parser_raw.ml" - in +# 29004 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.arg_label * Parsetree.expression option * Parsetree.pattern)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -28226,19 +29037,21 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined1_ in - let _v : ((string option * Parsetree.pattern) list) = let _3 = - let _1 = _1_inlined1 in - -# 3771 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _3 = + let _1 = _1_inlined1 in + +# 3782 "src/ocaml/preprocess/parser_raw.mly" ( None, _1 ) -# 28235 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 3799 "src/ocaml/preprocess/parser_raw.mly" +# 29047 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 3810 "src/ocaml/preprocess/parser_raw.mly" ( _3 :: _1 ) -# 28241 "src/ocaml/preprocess/parser_raw.ml" - in +# 29053 "src/ocaml/preprocess/parser_raw.ml" + : ((string option * Parsetree.pattern) list)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -28277,26 +29090,28 @@ module Tables = struct let _1_inlined1 : ( # 1082 "src/ocaml/preprocess/parser_raw.mly" (string) -# 28281 "src/ocaml/preprocess/parser_raw.ml" +# 29094 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in let _1 : ((string option * Parsetree.pattern) list) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__2_inlined1_ in - let _v : ((string option * Parsetree.pattern) list) = let _3 = - let (_2, _1) = (_2_inlined1, _1_inlined1) in - -# 3773 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _3 = + let (_2, _1) = (_2_inlined1, _1_inlined1) in + +# 3784 "src/ocaml/preprocess/parser_raw.mly" ( Some _1, _2 ) -# 28293 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 3799 "src/ocaml/preprocess/parser_raw.mly" +# 29107 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 3810 "src/ocaml/preprocess/parser_raw.mly" ( _3 :: _1 ) -# 28299 "src/ocaml/preprocess/parser_raw.ml" - in +# 29113 "src/ocaml/preprocess/parser_raw.ml" + : ((string option * Parsetree.pattern) list)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -28334,7 +29149,7 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 28338 "src/ocaml/preprocess/parser_raw.ml" +# 29153 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in @@ -28342,20 +29157,22 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_label_ in - let _v : ((string option * Parsetree.pattern) list) = let _3 = - let _loc_label_ = (_startpos_label_, _endpos_label_) in - -# 3775 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _3 = + let _loc_label_ = (_startpos_label_, _endpos_label_) in + +# 3786 "src/ocaml/preprocess/parser_raw.mly" ( let loc = _loc_label_ in Some label, mkpatvar ~loc label ) -# 28352 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 3799 "src/ocaml/preprocess/parser_raw.mly" +# 29168 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 3810 "src/ocaml/preprocess/parser_raw.mly" ( _3 :: _1 ) -# 28358 "src/ocaml/preprocess/parser_raw.ml" - in +# 29174 "src/ocaml/preprocess/parser_raw.ml" + : ((string option * Parsetree.pattern) list)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -28420,7 +29237,7 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 28424 "src/ocaml/preprocess/parser_raw.ml" +# 29241 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _2_inlined1 : unit = Obj.magic _2_inlined1 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in @@ -28429,24 +29246,26 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__6_ in - let _v : ((string option * Parsetree.pattern) list) = let _3 = - let _startpos__2_ = _startpos__2_inlined1_ in - let _endpos = _endpos__6_ in - let _loc_label_ = (_startpos_label_, _endpos_label_) in - -# 3778 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _3 = + let _startpos__2_ = _startpos__2_inlined1_ in + let _endpos = _endpos__6_ in + let _loc_label_ = (_startpos_label_, _endpos_label_) in + +# 3789 "src/ocaml/preprocess/parser_raw.mly" ( let lbl_loc = _loc_label_ in let pat_loc = _startpos__2_, _endpos in let pat = mkpatvar ~loc:lbl_loc label in Some label, mkpat_with_modes ~loc:pat_loc ~modes:[] ~pat ~cty:(Some cty) ) -# 28443 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 3799 "src/ocaml/preprocess/parser_raw.mly" +# 29261 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 3810 "src/ocaml/preprocess/parser_raw.mly" ( _3 :: _1 ) -# 28449 "src/ocaml/preprocess/parser_raw.ml" - in +# 29267 "src/ocaml/preprocess/parser_raw.ml" + : ((string option * Parsetree.pattern) list)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -28481,24 +29300,26 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined1_ in - let _v : ((string option * Parsetree.pattern) list) = let _3 = - let _1 = _1_inlined1 in - -# 3771 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _3 = + let _1 = _1_inlined1 in + +# 3782 "src/ocaml/preprocess/parser_raw.mly" ( None, _1 ) -# 28490 "src/ocaml/preprocess/parser_raw.ml" - - in - let _1 = -# 3785 "src/ocaml/preprocess/parser_raw.mly" +# 29310 "src/ocaml/preprocess/parser_raw.ml" + + in + let _1 = +# 3796 "src/ocaml/preprocess/parser_raw.mly" ( None, _1 ) -# 28496 "src/ocaml/preprocess/parser_raw.ml" - in - -# 3801 "src/ocaml/preprocess/parser_raw.mly" +# 29316 "src/ocaml/preprocess/parser_raw.ml" + in + ( +# 3812 "src/ocaml/preprocess/parser_raw.mly" ( [ _3; _1 ] ) -# 28501 "src/ocaml/preprocess/parser_raw.ml" - in +# 29321 "src/ocaml/preprocess/parser_raw.ml" + : ((string option * Parsetree.pattern) list)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -28537,31 +29358,33 @@ module Tables = struct let _1_inlined1 : ( # 1082 "src/ocaml/preprocess/parser_raw.mly" (string) -# 28541 "src/ocaml/preprocess/parser_raw.ml" +# 29362 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in let _1 : (Parsetree.pattern) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__2_inlined1_ in - let _v : ((string option * Parsetree.pattern) list) = let _3 = - let (_2, _1) = (_2_inlined1, _1_inlined1) in - -# 3773 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _3 = + let (_2, _1) = (_2_inlined1, _1_inlined1) in + +# 3784 "src/ocaml/preprocess/parser_raw.mly" ( Some _1, _2 ) -# 28553 "src/ocaml/preprocess/parser_raw.ml" - - in - let _1 = -# 3785 "src/ocaml/preprocess/parser_raw.mly" +# 29375 "src/ocaml/preprocess/parser_raw.ml" + + in + let _1 = +# 3796 "src/ocaml/preprocess/parser_raw.mly" ( None, _1 ) -# 28559 "src/ocaml/preprocess/parser_raw.ml" - in - -# 3801 "src/ocaml/preprocess/parser_raw.mly" +# 29381 "src/ocaml/preprocess/parser_raw.ml" + in + ( +# 3812 "src/ocaml/preprocess/parser_raw.mly" ( [ _3; _1 ] ) -# 28564 "src/ocaml/preprocess/parser_raw.ml" - in +# 29386 "src/ocaml/preprocess/parser_raw.ml" + : ((string option * Parsetree.pattern) list)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -28599,7 +29422,7 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 28603 "src/ocaml/preprocess/parser_raw.ml" +# 29426 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in @@ -28607,25 +29430,27 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_label_ in - let _v : ((string option * Parsetree.pattern) list) = let _3 = - let _loc_label_ = (_startpos_label_, _endpos_label_) in - -# 3775 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _3 = + let _loc_label_ = (_startpos_label_, _endpos_label_) in + +# 3786 "src/ocaml/preprocess/parser_raw.mly" ( let loc = _loc_label_ in Some label, mkpatvar ~loc label ) -# 28617 "src/ocaml/preprocess/parser_raw.ml" - - in - let _1 = -# 3785 "src/ocaml/preprocess/parser_raw.mly" +# 29441 "src/ocaml/preprocess/parser_raw.ml" + + in + let _1 = +# 3796 "src/ocaml/preprocess/parser_raw.mly" ( None, _1 ) -# 28623 "src/ocaml/preprocess/parser_raw.ml" - in - -# 3801 "src/ocaml/preprocess/parser_raw.mly" +# 29447 "src/ocaml/preprocess/parser_raw.ml" + in + ( +# 3812 "src/ocaml/preprocess/parser_raw.mly" ( [ _3; _1 ] ) -# 28628 "src/ocaml/preprocess/parser_raw.ml" - in +# 29452 "src/ocaml/preprocess/parser_raw.ml" + : ((string option * Parsetree.pattern) list)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -28690,7 +29515,7 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 28694 "src/ocaml/preprocess/parser_raw.ml" +# 29519 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _2_inlined1 : unit = Obj.magic _2_inlined1 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in @@ -28699,29 +29524,31 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__6_ in - let _v : ((string option * Parsetree.pattern) list) = let _3 = - let _startpos__2_ = _startpos__2_inlined1_ in - let _endpos = _endpos__6_ in - let _loc_label_ = (_startpos_label_, _endpos_label_) in - -# 3778 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _3 = + let _startpos__2_ = _startpos__2_inlined1_ in + let _endpos = _endpos__6_ in + let _loc_label_ = (_startpos_label_, _endpos_label_) in + +# 3789 "src/ocaml/preprocess/parser_raw.mly" ( let lbl_loc = _loc_label_ in let pat_loc = _startpos__2_, _endpos in let pat = mkpatvar ~loc:lbl_loc label in Some label, mkpat_with_modes ~loc:pat_loc ~modes:[] ~pat ~cty:(Some cty) ) -# 28713 "src/ocaml/preprocess/parser_raw.ml" - - in - let _1 = -# 3785 "src/ocaml/preprocess/parser_raw.mly" +# 29539 "src/ocaml/preprocess/parser_raw.ml" + + in + let _1 = +# 3796 "src/ocaml/preprocess/parser_raw.mly" ( None, _1 ) -# 28719 "src/ocaml/preprocess/parser_raw.ml" - in - -# 3801 "src/ocaml/preprocess/parser_raw.mly" +# 29545 "src/ocaml/preprocess/parser_raw.ml" + in + ( +# 3812 "src/ocaml/preprocess/parser_raw.mly" ( [ _3; _1 ] ) -# 28724 "src/ocaml/preprocess/parser_raw.ml" - in +# 29550 "src/ocaml/preprocess/parser_raw.ml" + : ((string option * Parsetree.pattern) list)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -28762,32 +29589,34 @@ module Tables = struct let _1 : ( # 1082 "src/ocaml/preprocess/parser_raw.mly" (string) -# 28766 "src/ocaml/preprocess/parser_raw.ml" +# 29593 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined1_ in - let _v : ((string option * Parsetree.pattern) list) = let _3 = - let _1 = _1_inlined1 in - -# 3771 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _3 = + let _1 = _1_inlined1 in + +# 3782 "src/ocaml/preprocess/parser_raw.mly" ( None, _1 ) -# 28776 "src/ocaml/preprocess/parser_raw.ml" - - in - let _1 = - let _2 = _2_inlined1 in - -# 3787 "src/ocaml/preprocess/parser_raw.mly" +# 29604 "src/ocaml/preprocess/parser_raw.ml" + + in + let _1 = + let _2 = _2_inlined1 in + +# 3798 "src/ocaml/preprocess/parser_raw.mly" ( Some _1, _2 ) -# 28784 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 3801 "src/ocaml/preprocess/parser_raw.mly" +# 29612 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 3812 "src/ocaml/preprocess/parser_raw.mly" ( [ _3; _1 ] ) -# 28790 "src/ocaml/preprocess/parser_raw.ml" - in +# 29618 "src/ocaml/preprocess/parser_raw.ml" + : ((string option * Parsetree.pattern) list)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -28832,39 +29661,41 @@ module Tables = struct let _1_inlined1 : ( # 1082 "src/ocaml/preprocess/parser_raw.mly" (string) -# 28836 "src/ocaml/preprocess/parser_raw.ml" +# 29665 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in let _2_inlined1 : (Parsetree.pattern) = Obj.magic _2_inlined1 in let _1 : ( # 1082 "src/ocaml/preprocess/parser_raw.mly" (string) -# 28843 "src/ocaml/preprocess/parser_raw.ml" +# 29672 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__2_inlined2_ in - let _v : ((string option * Parsetree.pattern) list) = let _3 = - let (_2, _1) = (_2_inlined2, _1_inlined1) in - -# 3773 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _3 = + let (_2, _1) = (_2_inlined2, _1_inlined1) in + +# 3784 "src/ocaml/preprocess/parser_raw.mly" ( Some _1, _2 ) -# 28853 "src/ocaml/preprocess/parser_raw.ml" - - in - let _1 = - let _2 = _2_inlined1 in - -# 3787 "src/ocaml/preprocess/parser_raw.mly" +# 29683 "src/ocaml/preprocess/parser_raw.ml" + + in + let _1 = + let _2 = _2_inlined1 in + +# 3798 "src/ocaml/preprocess/parser_raw.mly" ( Some _1, _2 ) -# 28861 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 3801 "src/ocaml/preprocess/parser_raw.mly" +# 29691 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 3812 "src/ocaml/preprocess/parser_raw.mly" ( [ _3; _1 ] ) -# 28867 "src/ocaml/preprocess/parser_raw.ml" - in +# 29697 "src/ocaml/preprocess/parser_raw.ml" + : ((string option * Parsetree.pattern) list)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -28908,7 +29739,7 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 28912 "src/ocaml/preprocess/parser_raw.ml" +# 29743 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in @@ -28916,33 +29747,35 @@ module Tables = struct let _1 : ( # 1082 "src/ocaml/preprocess/parser_raw.mly" (string) -# 28920 "src/ocaml/preprocess/parser_raw.ml" +# 29751 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_label_ in - let _v : ((string option * Parsetree.pattern) list) = let _3 = - let _loc_label_ = (_startpos_label_, _endpos_label_) in - -# 3775 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _3 = + let _loc_label_ = (_startpos_label_, _endpos_label_) in + +# 3786 "src/ocaml/preprocess/parser_raw.mly" ( let loc = _loc_label_ in Some label, mkpatvar ~loc label ) -# 28931 "src/ocaml/preprocess/parser_raw.ml" - - in - let _1 = - let _2 = _2_inlined1 in - -# 3787 "src/ocaml/preprocess/parser_raw.mly" +# 29763 "src/ocaml/preprocess/parser_raw.ml" + + in + let _1 = + let _2 = _2_inlined1 in + +# 3798 "src/ocaml/preprocess/parser_raw.mly" ( Some _1, _2 ) -# 28939 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 3801 "src/ocaml/preprocess/parser_raw.mly" +# 29771 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 3812 "src/ocaml/preprocess/parser_raw.mly" ( [ _3; _1 ] ) -# 28945 "src/ocaml/preprocess/parser_raw.ml" - in +# 29777 "src/ocaml/preprocess/parser_raw.ml" + : ((string option * Parsetree.pattern) list)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -29013,7 +29846,7 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 29017 "src/ocaml/preprocess/parser_raw.ml" +# 29850 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _2_inlined2 : unit = Obj.magic _2_inlined2 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in @@ -29022,37 +29855,39 @@ module Tables = struct let _1 : ( # 1082 "src/ocaml/preprocess/parser_raw.mly" (string) -# 29026 "src/ocaml/preprocess/parser_raw.ml" +# 29859 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__6_ in - let _v : ((string option * Parsetree.pattern) list) = let _3 = - let _startpos__2_ = _startpos__2_inlined2_ in - let _endpos = _endpos__6_ in - let _loc_label_ = (_startpos_label_, _endpos_label_) in - -# 3778 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _3 = + let _startpos__2_ = _startpos__2_inlined2_ in + let _endpos = _endpos__6_ in + let _loc_label_ = (_startpos_label_, _endpos_label_) in + +# 3789 "src/ocaml/preprocess/parser_raw.mly" ( let lbl_loc = _loc_label_ in let pat_loc = _startpos__2_, _endpos in let pat = mkpatvar ~loc:lbl_loc label in Some label, mkpat_with_modes ~loc:pat_loc ~modes:[] ~pat ~cty:(Some cty) ) -# 29041 "src/ocaml/preprocess/parser_raw.ml" - - in - let _1 = - let _2 = _2_inlined1 in - -# 3787 "src/ocaml/preprocess/parser_raw.mly" +# 29875 "src/ocaml/preprocess/parser_raw.ml" + + in + let _1 = + let _2 = _2_inlined1 in + +# 3798 "src/ocaml/preprocess/parser_raw.mly" ( Some _1, _2 ) -# 29049 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 3801 "src/ocaml/preprocess/parser_raw.mly" +# 29883 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 3812 "src/ocaml/preprocess/parser_raw.mly" ( [ _3; _1 ] ) -# 29055 "src/ocaml/preprocess/parser_raw.ml" - in +# 29889 "src/ocaml/preprocess/parser_raw.ml" + : ((string option * Parsetree.pattern) list)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -29092,34 +29927,36 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 29096 "src/ocaml/preprocess/parser_raw.ml" +# 29931 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined1_ in - let _v : ((string option * Parsetree.pattern) list) = let _3 = - let _1 = _1_inlined1 in - -# 3771 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _3 = + let _1 = _1_inlined1 in + +# 3782 "src/ocaml/preprocess/parser_raw.mly" ( None, _1 ) -# 29107 "src/ocaml/preprocess/parser_raw.ml" - - in - let _1 = - let _loc_label_ = (_startpos_label_, _endpos_label_) in - -# 3789 "src/ocaml/preprocess/parser_raw.mly" +# 29943 "src/ocaml/preprocess/parser_raw.ml" + + in + let _1 = + let _loc_label_ = (_startpos_label_, _endpos_label_) in + +# 3800 "src/ocaml/preprocess/parser_raw.mly" ( let loc = _loc_label_ in Some label, mkpatvar ~loc label ) -# 29116 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 3801 "src/ocaml/preprocess/parser_raw.mly" +# 29952 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 3812 "src/ocaml/preprocess/parser_raw.mly" ( [ _3; _1 ] ) -# 29122 "src/ocaml/preprocess/parser_raw.ml" - in +# 29958 "src/ocaml/preprocess/parser_raw.ml" + : ((string option * Parsetree.pattern) list)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -29164,40 +30001,42 @@ module Tables = struct let _1_inlined1 : ( # 1082 "src/ocaml/preprocess/parser_raw.mly" (string) -# 29168 "src/ocaml/preprocess/parser_raw.ml" +# 30005 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 29174 "src/ocaml/preprocess/parser_raw.ml" +# 30011 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__2_inlined1_ in - let _v : ((string option * Parsetree.pattern) list) = let _3 = - let (_2, _1) = (_2_inlined1, _1_inlined1) in - -# 3773 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _3 = + let (_2, _1) = (_2_inlined1, _1_inlined1) in + +# 3784 "src/ocaml/preprocess/parser_raw.mly" ( Some _1, _2 ) -# 29185 "src/ocaml/preprocess/parser_raw.ml" - - in - let _1 = - let _loc_label_ = (_startpos_label_, _endpos_label_) in - -# 3789 "src/ocaml/preprocess/parser_raw.mly" +# 30023 "src/ocaml/preprocess/parser_raw.ml" + + in + let _1 = + let _loc_label_ = (_startpos_label_, _endpos_label_) in + +# 3800 "src/ocaml/preprocess/parser_raw.mly" ( let loc = _loc_label_ in Some label, mkpatvar ~loc label ) -# 29194 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 3801 "src/ocaml/preprocess/parser_raw.mly" +# 30032 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 3812 "src/ocaml/preprocess/parser_raw.mly" ( [ _3; _1 ] ) -# 29200 "src/ocaml/preprocess/parser_raw.ml" - in +# 30038 "src/ocaml/preprocess/parser_raw.ml" + : ((string option * Parsetree.pattern) list)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -29241,43 +30080,45 @@ module Tables = struct let label_inlined1 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 29245 "src/ocaml/preprocess/parser_raw.ml" +# 30084 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label_inlined1 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 29252 "src/ocaml/preprocess/parser_raw.ml" +# 30091 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_label_inlined1_ in - let _v : ((string option * Parsetree.pattern) list) = let _3 = - let (_endpos_label_, _startpos_label_, label) = (_endpos_label_inlined1_, _startpos_label_inlined1_, label_inlined1) in - let _loc_label_ = (_startpos_label_, _endpos_label_) in - -# 3775 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _3 = + let (_endpos_label_, _startpos_label_, label) = (_endpos_label_inlined1_, _startpos_label_inlined1_, label_inlined1) in + let _loc_label_ = (_startpos_label_, _endpos_label_) in + +# 3786 "src/ocaml/preprocess/parser_raw.mly" ( let loc = _loc_label_ in Some label, mkpatvar ~loc label ) -# 29265 "src/ocaml/preprocess/parser_raw.ml" - - in - let _1 = - let _loc_label_ = (_startpos_label_, _endpos_label_) in - -# 3789 "src/ocaml/preprocess/parser_raw.mly" +# 30105 "src/ocaml/preprocess/parser_raw.ml" + + in + let _1 = + let _loc_label_ = (_startpos_label_, _endpos_label_) in + +# 3800 "src/ocaml/preprocess/parser_raw.mly" ( let loc = _loc_label_ in Some label, mkpatvar ~loc label ) -# 29274 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 3801 "src/ocaml/preprocess/parser_raw.mly" +# 30114 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 3812 "src/ocaml/preprocess/parser_raw.mly" ( [ _3; _1 ] ) -# 29280 "src/ocaml/preprocess/parser_raw.ml" - in +# 30120 "src/ocaml/preprocess/parser_raw.ml" + : ((string option * Parsetree.pattern) list)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -29348,7 +30189,7 @@ module Tables = struct let label_inlined1 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 29352 "src/ocaml/preprocess/parser_raw.ml" +# 30193 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label_inlined1 in let _2_inlined1 : unit = Obj.magic _2_inlined1 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in @@ -29356,39 +30197,41 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 29360 "src/ocaml/preprocess/parser_raw.ml" +# 30201 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__6_ in - let _v : ((string option * Parsetree.pattern) list) = let _3 = - let (_endpos_label_, _startpos_label_, _startpos__2_, label) = (_endpos_label_inlined1_, _startpos_label_inlined1_, _startpos__2_inlined1_, label_inlined1) in - let _endpos = _endpos__6_ in - let _loc_label_ = (_startpos_label_, _endpos_label_) in - -# 3778 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _3 = + let (_endpos_label_, _startpos_label_, _startpos__2_, label) = (_endpos_label_inlined1_, _startpos_label_inlined1_, _startpos__2_inlined1_, label_inlined1) in + let _endpos = _endpos__6_ in + let _loc_label_ = (_startpos_label_, _endpos_label_) in + +# 3789 "src/ocaml/preprocess/parser_raw.mly" ( let lbl_loc = _loc_label_ in let pat_loc = _startpos__2_, _endpos in let pat = mkpatvar ~loc:lbl_loc label in Some label, mkpat_with_modes ~loc:pat_loc ~modes:[] ~pat ~cty:(Some cty) ) -# 29376 "src/ocaml/preprocess/parser_raw.ml" - - in - let _1 = - let _loc_label_ = (_startpos_label_, _endpos_label_) in - -# 3789 "src/ocaml/preprocess/parser_raw.mly" +# 30218 "src/ocaml/preprocess/parser_raw.ml" + + in + let _1 = + let _loc_label_ = (_startpos_label_, _endpos_label_) in + +# 3800 "src/ocaml/preprocess/parser_raw.mly" ( let loc = _loc_label_ in Some label, mkpatvar ~loc label ) -# 29385 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 3801 "src/ocaml/preprocess/parser_raw.mly" +# 30227 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 3812 "src/ocaml/preprocess/parser_raw.mly" ( [ _3; _1 ] ) -# 29391 "src/ocaml/preprocess/parser_raw.ml" - in +# 30233 "src/ocaml/preprocess/parser_raw.ml" + : ((string option * Parsetree.pattern) list)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -29455,39 +30298,41 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 29459 "src/ocaml/preprocess/parser_raw.ml" +# 30302 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _2_inlined1 : unit = Obj.magic _2_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined1_ in - let _v : ((string option * Parsetree.pattern) list) = let _3 = - let _1 = _1_inlined1 in - -# 3771 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _3 = + let _1 = _1_inlined1 in + +# 3782 "src/ocaml/preprocess/parser_raw.mly" ( None, _1 ) -# 29471 "src/ocaml/preprocess/parser_raw.ml" - - in - let _1 = - let _startpos__2_ = _startpos__2_inlined1_ in - let _endpos = _endpos__6_ in - let _loc_label_ = (_startpos_label_, _endpos_label_) in - -# 3792 "src/ocaml/preprocess/parser_raw.mly" +# 30315 "src/ocaml/preprocess/parser_raw.ml" + + in + let _1 = + let _startpos__2_ = _startpos__2_inlined1_ in + let _endpos = _endpos__6_ in + let _loc_label_ = (_startpos_label_, _endpos_label_) in + +# 3803 "src/ocaml/preprocess/parser_raw.mly" ( let lbl_loc = _loc_label_ in let pat_loc = _startpos__2_, _endpos in let pat = mkpatvar ~loc:lbl_loc label in Some label, mkpat_with_modes ~loc:pat_loc ~modes:[] ~pat ~cty:(Some cty) ) -# 29484 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 3801 "src/ocaml/preprocess/parser_raw.mly" +# 30328 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 3812 "src/ocaml/preprocess/parser_raw.mly" ( [ _3; _1 ] ) -# 29490 "src/ocaml/preprocess/parser_raw.ml" - in +# 30334 "src/ocaml/preprocess/parser_raw.ml" + : ((string option * Parsetree.pattern) list)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -29556,7 +30401,7 @@ module Tables = struct let _1_inlined1 : ( # 1082 "src/ocaml/preprocess/parser_raw.mly" (string) -# 29560 "src/ocaml/preprocess/parser_raw.ml" +# 30405 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in let _6 : unit = Obj.magic _6 in @@ -29565,39 +30410,41 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 29569 "src/ocaml/preprocess/parser_raw.ml" +# 30414 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _2_inlined1 : unit = Obj.magic _2_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__2_inlined2_ in - let _v : ((string option * Parsetree.pattern) list) = let _3 = - let (_2, _1) = (_2_inlined2, _1_inlined1) in - -# 3773 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _3 = + let (_2, _1) = (_2_inlined2, _1_inlined1) in + +# 3784 "src/ocaml/preprocess/parser_raw.mly" ( Some _1, _2 ) -# 29581 "src/ocaml/preprocess/parser_raw.ml" - - in - let _1 = - let _startpos__2_ = _startpos__2_inlined1_ in - let _endpos = _endpos__6_ in - let _loc_label_ = (_startpos_label_, _endpos_label_) in - -# 3792 "src/ocaml/preprocess/parser_raw.mly" +# 30427 "src/ocaml/preprocess/parser_raw.ml" + + in + let _1 = + let _startpos__2_ = _startpos__2_inlined1_ in + let _endpos = _endpos__6_ in + let _loc_label_ = (_startpos_label_, _endpos_label_) in + +# 3803 "src/ocaml/preprocess/parser_raw.mly" ( let lbl_loc = _loc_label_ in let pat_loc = _startpos__2_, _endpos in let pat = mkpatvar ~loc:lbl_loc label in Some label, mkpat_with_modes ~loc:pat_loc ~modes:[] ~pat ~cty:(Some cty) ) -# 29594 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 3801 "src/ocaml/preprocess/parser_raw.mly" +# 30440 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 3812 "src/ocaml/preprocess/parser_raw.mly" ( [ _3; _1 ] ) -# 29600 "src/ocaml/preprocess/parser_raw.ml" - in +# 30446 "src/ocaml/preprocess/parser_raw.ml" + : ((string option * Parsetree.pattern) list)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -29665,7 +30512,7 @@ module Tables = struct let label_inlined1 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 29669 "src/ocaml/preprocess/parser_raw.ml" +# 30516 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label_inlined1 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in @@ -29675,41 +30522,43 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 29679 "src/ocaml/preprocess/parser_raw.ml" +# 30526 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _2_inlined1 : unit = Obj.magic _2_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_label_inlined1_ in - let _v : ((string option * Parsetree.pattern) list) = let _3 = - let (_endpos_label_, _startpos_label_, label) = (_endpos_label_inlined1_, _startpos_label_inlined1_, label_inlined1) in - let _loc_label_ = (_startpos_label_, _endpos_label_) in - -# 3775 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _3 = + let (_endpos_label_, _startpos_label_, label) = (_endpos_label_inlined1_, _startpos_label_inlined1_, label_inlined1) in + let _loc_label_ = (_startpos_label_, _endpos_label_) in + +# 3786 "src/ocaml/preprocess/parser_raw.mly" ( let loc = _loc_label_ in Some label, mkpatvar ~loc label ) -# 29693 "src/ocaml/preprocess/parser_raw.ml" - - in - let _1 = - let _startpos__2_ = _startpos__2_inlined1_ in - let _endpos = _endpos__6_ in - let _loc_label_ = (_startpos_label_, _endpos_label_) in - -# 3792 "src/ocaml/preprocess/parser_raw.mly" +# 30541 "src/ocaml/preprocess/parser_raw.ml" + + in + let _1 = + let _startpos__2_ = _startpos__2_inlined1_ in + let _endpos = _endpos__6_ in + let _loc_label_ = (_startpos_label_, _endpos_label_) in + +# 3803 "src/ocaml/preprocess/parser_raw.mly" ( let lbl_loc = _loc_label_ in let pat_loc = _startpos__2_, _endpos in let pat = mkpatvar ~loc:lbl_loc label in Some label, mkpat_with_modes ~loc:pat_loc ~modes:[] ~pat ~cty:(Some cty) ) -# 29706 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 3801 "src/ocaml/preprocess/parser_raw.mly" +# 30554 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 3812 "src/ocaml/preprocess/parser_raw.mly" ( [ _3; _1 ] ) -# 29712 "src/ocaml/preprocess/parser_raw.ml" - in +# 30560 "src/ocaml/preprocess/parser_raw.ml" + : ((string option * Parsetree.pattern) list)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -29804,7 +30653,7 @@ module Tables = struct let label_inlined1 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 29808 "src/ocaml/preprocess/parser_raw.ml" +# 30657 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label_inlined1 in let _2_inlined2 : unit = Obj.magic _2_inlined2 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in @@ -29815,44 +30664,46 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 29819 "src/ocaml/preprocess/parser_raw.ml" +# 30668 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _2_inlined1 : unit = Obj.magic _2_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__6_inlined1_ in - let _v : ((string option * Parsetree.pattern) list) = let _3 = - let (_endpos_label_, _startpos_label_, _endpos__6_, _startpos__2_, cty, label) = (_endpos_label_inlined1_, _startpos_label_inlined1_, _endpos__6_inlined1_, _startpos__2_inlined2_, cty_inlined1, label_inlined1) in - let _endpos = _endpos__6_ in - let _loc_label_ = (_startpos_label_, _endpos_label_) in - -# 3778 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _3 = + let (_endpos_label_, _startpos_label_, _endpos__6_, _startpos__2_, cty, label) = (_endpos_label_inlined1_, _startpos_label_inlined1_, _endpos__6_inlined1_, _startpos__2_inlined2_, cty_inlined1, label_inlined1) in + let _endpos = _endpos__6_ in + let _loc_label_ = (_startpos_label_, _endpos_label_) in + +# 3789 "src/ocaml/preprocess/parser_raw.mly" ( let lbl_loc = _loc_label_ in let pat_loc = _startpos__2_, _endpos in let pat = mkpatvar ~loc:lbl_loc label in Some label, mkpat_with_modes ~loc:pat_loc ~modes:[] ~pat ~cty:(Some cty) ) -# 29836 "src/ocaml/preprocess/parser_raw.ml" - - in - let _1 = - let _startpos__2_ = _startpos__2_inlined1_ in - let _endpos = _endpos__6_ in - let _loc_label_ = (_startpos_label_, _endpos_label_) in - -# 3792 "src/ocaml/preprocess/parser_raw.mly" +# 30686 "src/ocaml/preprocess/parser_raw.ml" + + in + let _1 = + let _startpos__2_ = _startpos__2_inlined1_ in + let _endpos = _endpos__6_ in + let _loc_label_ = (_startpos_label_, _endpos_label_) in + +# 3803 "src/ocaml/preprocess/parser_raw.mly" ( let lbl_loc = _loc_label_ in let pat_loc = _startpos__2_, _endpos in let pat = mkpatvar ~loc:lbl_loc label in Some label, mkpat_with_modes ~loc:pat_loc ~modes:[] ~pat ~cty:(Some cty) ) -# 29849 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 3801 "src/ocaml/preprocess/parser_raw.mly" +# 30699 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 3812 "src/ocaml/preprocess/parser_raw.mly" ( [ _3; _1 ] ) -# 29855 "src/ocaml/preprocess/parser_raw.ml" - in +# 30705 "src/ocaml/preprocess/parser_raw.ml" + : ((string option * Parsetree.pattern) list)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -29887,19 +30738,21 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined1_ in - let _v : ((string option * Parsetree.pattern) list) = let _3 = - let _1 = _1_inlined1 in - -# 3771 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _3 = + let _1 = _1_inlined1 in + +# 3782 "src/ocaml/preprocess/parser_raw.mly" ( None, _1 ) -# 29896 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 3799 "src/ocaml/preprocess/parser_raw.mly" +# 30748 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 3810 "src/ocaml/preprocess/parser_raw.mly" ( _3 :: _1 ) -# 29902 "src/ocaml/preprocess/parser_raw.ml" - in +# 30754 "src/ocaml/preprocess/parser_raw.ml" + : ((string option * Parsetree.pattern) list)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -29938,26 +30791,28 @@ module Tables = struct let _1_inlined1 : ( # 1082 "src/ocaml/preprocess/parser_raw.mly" (string) -# 29942 "src/ocaml/preprocess/parser_raw.ml" +# 30795 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in let _1 : ((string option * Parsetree.pattern) list) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__2_inlined1_ in - let _v : ((string option * Parsetree.pattern) list) = let _3 = - let (_2, _1) = (_2_inlined1, _1_inlined1) in - -# 3773 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _3 = + let (_2, _1) = (_2_inlined1, _1_inlined1) in + +# 3784 "src/ocaml/preprocess/parser_raw.mly" ( Some _1, _2 ) -# 29954 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 3799 "src/ocaml/preprocess/parser_raw.mly" +# 30808 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 3810 "src/ocaml/preprocess/parser_raw.mly" ( _3 :: _1 ) -# 29960 "src/ocaml/preprocess/parser_raw.ml" - in +# 30814 "src/ocaml/preprocess/parser_raw.ml" + : ((string option * Parsetree.pattern) list)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -29995,7 +30850,7 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 29999 "src/ocaml/preprocess/parser_raw.ml" +# 30854 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in @@ -30003,20 +30858,22 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_label_ in - let _v : ((string option * Parsetree.pattern) list) = let _3 = - let _loc_label_ = (_startpos_label_, _endpos_label_) in - -# 3775 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _3 = + let _loc_label_ = (_startpos_label_, _endpos_label_) in + +# 3786 "src/ocaml/preprocess/parser_raw.mly" ( let loc = _loc_label_ in Some label, mkpatvar ~loc label ) -# 30013 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 3799 "src/ocaml/preprocess/parser_raw.mly" +# 30869 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 3810 "src/ocaml/preprocess/parser_raw.mly" ( _3 :: _1 ) -# 30019 "src/ocaml/preprocess/parser_raw.ml" - in +# 30875 "src/ocaml/preprocess/parser_raw.ml" + : ((string option * Parsetree.pattern) list)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -30081,7 +30938,7 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 30085 "src/ocaml/preprocess/parser_raw.ml" +# 30942 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _2_inlined1 : unit = Obj.magic _2_inlined1 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in @@ -30090,24 +30947,26 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__6_ in - let _v : ((string option * Parsetree.pattern) list) = let _3 = - let _startpos__2_ = _startpos__2_inlined1_ in - let _endpos = _endpos__6_ in - let _loc_label_ = (_startpos_label_, _endpos_label_) in - -# 3778 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _3 = + let _startpos__2_ = _startpos__2_inlined1_ in + let _endpos = _endpos__6_ in + let _loc_label_ = (_startpos_label_, _endpos_label_) in + +# 3789 "src/ocaml/preprocess/parser_raw.mly" ( let lbl_loc = _loc_label_ in let pat_loc = _startpos__2_, _endpos in let pat = mkpatvar ~loc:lbl_loc label in Some label, mkpat_with_modes ~loc:pat_loc ~modes:[] ~pat ~cty:(Some cty) ) -# 30104 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 3799 "src/ocaml/preprocess/parser_raw.mly" +# 30962 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 3810 "src/ocaml/preprocess/parser_raw.mly" ( _3 :: _1 ) -# 30110 "src/ocaml/preprocess/parser_raw.ml" - in +# 30968 "src/ocaml/preprocess/parser_raw.ml" + : ((string option * Parsetree.pattern) list)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -30142,24 +31001,26 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined1_ in - let _v : ((string option * Parsetree.pattern) list) = let _3 = - let _1 = _1_inlined1 in - -# 3771 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _3 = + let _1 = _1_inlined1 in + +# 3782 "src/ocaml/preprocess/parser_raw.mly" ( None, _1 ) -# 30151 "src/ocaml/preprocess/parser_raw.ml" - - in - let _1 = -# 3785 "src/ocaml/preprocess/parser_raw.mly" +# 31011 "src/ocaml/preprocess/parser_raw.ml" + + in + let _1 = +# 3796 "src/ocaml/preprocess/parser_raw.mly" ( None, _1 ) -# 30157 "src/ocaml/preprocess/parser_raw.ml" - in - -# 3801 "src/ocaml/preprocess/parser_raw.mly" +# 31017 "src/ocaml/preprocess/parser_raw.ml" + in + ( +# 3812 "src/ocaml/preprocess/parser_raw.mly" ( [ _3; _1 ] ) -# 30162 "src/ocaml/preprocess/parser_raw.ml" - in +# 31022 "src/ocaml/preprocess/parser_raw.ml" + : ((string option * Parsetree.pattern) list)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -30198,31 +31059,33 @@ module Tables = struct let _1_inlined1 : ( # 1082 "src/ocaml/preprocess/parser_raw.mly" (string) -# 30202 "src/ocaml/preprocess/parser_raw.ml" +# 31063 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in let _1 : (Parsetree.pattern) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__2_inlined1_ in - let _v : ((string option * Parsetree.pattern) list) = let _3 = - let (_2, _1) = (_2_inlined1, _1_inlined1) in - -# 3773 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _3 = + let (_2, _1) = (_2_inlined1, _1_inlined1) in + +# 3784 "src/ocaml/preprocess/parser_raw.mly" ( Some _1, _2 ) -# 30214 "src/ocaml/preprocess/parser_raw.ml" - - in - let _1 = -# 3785 "src/ocaml/preprocess/parser_raw.mly" +# 31076 "src/ocaml/preprocess/parser_raw.ml" + + in + let _1 = +# 3796 "src/ocaml/preprocess/parser_raw.mly" ( None, _1 ) -# 30220 "src/ocaml/preprocess/parser_raw.ml" - in - -# 3801 "src/ocaml/preprocess/parser_raw.mly" +# 31082 "src/ocaml/preprocess/parser_raw.ml" + in + ( +# 3812 "src/ocaml/preprocess/parser_raw.mly" ( [ _3; _1 ] ) -# 30225 "src/ocaml/preprocess/parser_raw.ml" - in +# 31087 "src/ocaml/preprocess/parser_raw.ml" + : ((string option * Parsetree.pattern) list)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -30260,7 +31123,7 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 30264 "src/ocaml/preprocess/parser_raw.ml" +# 31127 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in @@ -30268,25 +31131,27 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_label_ in - let _v : ((string option * Parsetree.pattern) list) = let _3 = - let _loc_label_ = (_startpos_label_, _endpos_label_) in - -# 3775 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _3 = + let _loc_label_ = (_startpos_label_, _endpos_label_) in + +# 3786 "src/ocaml/preprocess/parser_raw.mly" ( let loc = _loc_label_ in Some label, mkpatvar ~loc label ) -# 30278 "src/ocaml/preprocess/parser_raw.ml" - - in - let _1 = -# 3785 "src/ocaml/preprocess/parser_raw.mly" +# 31142 "src/ocaml/preprocess/parser_raw.ml" + + in + let _1 = +# 3796 "src/ocaml/preprocess/parser_raw.mly" ( None, _1 ) -# 30284 "src/ocaml/preprocess/parser_raw.ml" - in - -# 3801 "src/ocaml/preprocess/parser_raw.mly" +# 31148 "src/ocaml/preprocess/parser_raw.ml" + in + ( +# 3812 "src/ocaml/preprocess/parser_raw.mly" ( [ _3; _1 ] ) -# 30289 "src/ocaml/preprocess/parser_raw.ml" - in +# 31153 "src/ocaml/preprocess/parser_raw.ml" + : ((string option * Parsetree.pattern) list)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -30351,7 +31216,7 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 30355 "src/ocaml/preprocess/parser_raw.ml" +# 31220 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _2_inlined1 : unit = Obj.magic _2_inlined1 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in @@ -30360,29 +31225,31 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__6_ in - let _v : ((string option * Parsetree.pattern) list) = let _3 = - let _startpos__2_ = _startpos__2_inlined1_ in - let _endpos = _endpos__6_ in - let _loc_label_ = (_startpos_label_, _endpos_label_) in - -# 3778 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _3 = + let _startpos__2_ = _startpos__2_inlined1_ in + let _endpos = _endpos__6_ in + let _loc_label_ = (_startpos_label_, _endpos_label_) in + +# 3789 "src/ocaml/preprocess/parser_raw.mly" ( let lbl_loc = _loc_label_ in let pat_loc = _startpos__2_, _endpos in let pat = mkpatvar ~loc:lbl_loc label in Some label, mkpat_with_modes ~loc:pat_loc ~modes:[] ~pat ~cty:(Some cty) ) -# 30374 "src/ocaml/preprocess/parser_raw.ml" - - in - let _1 = -# 3785 "src/ocaml/preprocess/parser_raw.mly" +# 31240 "src/ocaml/preprocess/parser_raw.ml" + + in + let _1 = +# 3796 "src/ocaml/preprocess/parser_raw.mly" ( None, _1 ) -# 30380 "src/ocaml/preprocess/parser_raw.ml" - in - -# 3801 "src/ocaml/preprocess/parser_raw.mly" +# 31246 "src/ocaml/preprocess/parser_raw.ml" + in + ( +# 3812 "src/ocaml/preprocess/parser_raw.mly" ( [ _3; _1 ] ) -# 30385 "src/ocaml/preprocess/parser_raw.ml" - in +# 31251 "src/ocaml/preprocess/parser_raw.ml" + : ((string option * Parsetree.pattern) list)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -30423,32 +31290,34 @@ module Tables = struct let _1 : ( # 1082 "src/ocaml/preprocess/parser_raw.mly" (string) -# 30427 "src/ocaml/preprocess/parser_raw.ml" +# 31294 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined1_ in - let _v : ((string option * Parsetree.pattern) list) = let _3 = - let _1 = _1_inlined1 in - -# 3771 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _3 = + let _1 = _1_inlined1 in + +# 3782 "src/ocaml/preprocess/parser_raw.mly" ( None, _1 ) -# 30437 "src/ocaml/preprocess/parser_raw.ml" - - in - let _1 = - let _2 = _2_inlined1 in - -# 3787 "src/ocaml/preprocess/parser_raw.mly" +# 31305 "src/ocaml/preprocess/parser_raw.ml" + + in + let _1 = + let _2 = _2_inlined1 in + +# 3798 "src/ocaml/preprocess/parser_raw.mly" ( Some _1, _2 ) -# 30445 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 3801 "src/ocaml/preprocess/parser_raw.mly" +# 31313 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 3812 "src/ocaml/preprocess/parser_raw.mly" ( [ _3; _1 ] ) -# 30451 "src/ocaml/preprocess/parser_raw.ml" - in +# 31319 "src/ocaml/preprocess/parser_raw.ml" + : ((string option * Parsetree.pattern) list)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -30493,39 +31362,41 @@ module Tables = struct let _1_inlined1 : ( # 1082 "src/ocaml/preprocess/parser_raw.mly" (string) -# 30497 "src/ocaml/preprocess/parser_raw.ml" +# 31366 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in let _2_inlined1 : (Parsetree.pattern) = Obj.magic _2_inlined1 in let _1 : ( # 1082 "src/ocaml/preprocess/parser_raw.mly" (string) -# 30504 "src/ocaml/preprocess/parser_raw.ml" +# 31373 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__2_inlined2_ in - let _v : ((string option * Parsetree.pattern) list) = let _3 = - let (_2, _1) = (_2_inlined2, _1_inlined1) in - -# 3773 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _3 = + let (_2, _1) = (_2_inlined2, _1_inlined1) in + +# 3784 "src/ocaml/preprocess/parser_raw.mly" ( Some _1, _2 ) -# 30514 "src/ocaml/preprocess/parser_raw.ml" - - in - let _1 = - let _2 = _2_inlined1 in - -# 3787 "src/ocaml/preprocess/parser_raw.mly" +# 31384 "src/ocaml/preprocess/parser_raw.ml" + + in + let _1 = + let _2 = _2_inlined1 in + +# 3798 "src/ocaml/preprocess/parser_raw.mly" ( Some _1, _2 ) -# 30522 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 3801 "src/ocaml/preprocess/parser_raw.mly" +# 31392 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 3812 "src/ocaml/preprocess/parser_raw.mly" ( [ _3; _1 ] ) -# 30528 "src/ocaml/preprocess/parser_raw.ml" - in +# 31398 "src/ocaml/preprocess/parser_raw.ml" + : ((string option * Parsetree.pattern) list)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -30569,7 +31440,7 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 30573 "src/ocaml/preprocess/parser_raw.ml" +# 31444 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in @@ -30577,33 +31448,35 @@ module Tables = struct let _1 : ( # 1082 "src/ocaml/preprocess/parser_raw.mly" (string) -# 30581 "src/ocaml/preprocess/parser_raw.ml" +# 31452 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_label_ in - let _v : ((string option * Parsetree.pattern) list) = let _3 = - let _loc_label_ = (_startpos_label_, _endpos_label_) in - -# 3775 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _3 = + let _loc_label_ = (_startpos_label_, _endpos_label_) in + +# 3786 "src/ocaml/preprocess/parser_raw.mly" ( let loc = _loc_label_ in Some label, mkpatvar ~loc label ) -# 30592 "src/ocaml/preprocess/parser_raw.ml" - - in - let _1 = - let _2 = _2_inlined1 in - -# 3787 "src/ocaml/preprocess/parser_raw.mly" +# 31464 "src/ocaml/preprocess/parser_raw.ml" + + in + let _1 = + let _2 = _2_inlined1 in + +# 3798 "src/ocaml/preprocess/parser_raw.mly" ( Some _1, _2 ) -# 30600 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 3801 "src/ocaml/preprocess/parser_raw.mly" +# 31472 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 3812 "src/ocaml/preprocess/parser_raw.mly" ( [ _3; _1 ] ) -# 30606 "src/ocaml/preprocess/parser_raw.ml" - in +# 31478 "src/ocaml/preprocess/parser_raw.ml" + : ((string option * Parsetree.pattern) list)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -30674,7 +31547,7 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 30678 "src/ocaml/preprocess/parser_raw.ml" +# 31551 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _2_inlined2 : unit = Obj.magic _2_inlined2 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in @@ -30683,37 +31556,39 @@ module Tables = struct let _1 : ( # 1082 "src/ocaml/preprocess/parser_raw.mly" (string) -# 30687 "src/ocaml/preprocess/parser_raw.ml" +# 31560 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__6_ in - let _v : ((string option * Parsetree.pattern) list) = let _3 = - let _startpos__2_ = _startpos__2_inlined2_ in - let _endpos = _endpos__6_ in - let _loc_label_ = (_startpos_label_, _endpos_label_) in - -# 3778 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _3 = + let _startpos__2_ = _startpos__2_inlined2_ in + let _endpos = _endpos__6_ in + let _loc_label_ = (_startpos_label_, _endpos_label_) in + +# 3789 "src/ocaml/preprocess/parser_raw.mly" ( let lbl_loc = _loc_label_ in let pat_loc = _startpos__2_, _endpos in let pat = mkpatvar ~loc:lbl_loc label in Some label, mkpat_with_modes ~loc:pat_loc ~modes:[] ~pat ~cty:(Some cty) ) -# 30702 "src/ocaml/preprocess/parser_raw.ml" - - in - let _1 = - let _2 = _2_inlined1 in - -# 3787 "src/ocaml/preprocess/parser_raw.mly" +# 31576 "src/ocaml/preprocess/parser_raw.ml" + + in + let _1 = + let _2 = _2_inlined1 in + +# 3798 "src/ocaml/preprocess/parser_raw.mly" ( Some _1, _2 ) -# 30710 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 3801 "src/ocaml/preprocess/parser_raw.mly" +# 31584 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 3812 "src/ocaml/preprocess/parser_raw.mly" ( [ _3; _1 ] ) -# 30716 "src/ocaml/preprocess/parser_raw.ml" - in +# 31590 "src/ocaml/preprocess/parser_raw.ml" + : ((string option * Parsetree.pattern) list)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -30753,34 +31628,36 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 30757 "src/ocaml/preprocess/parser_raw.ml" +# 31632 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined1_ in - let _v : ((string option * Parsetree.pattern) list) = let _3 = - let _1 = _1_inlined1 in - -# 3771 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _3 = + let _1 = _1_inlined1 in + +# 3782 "src/ocaml/preprocess/parser_raw.mly" ( None, _1 ) -# 30768 "src/ocaml/preprocess/parser_raw.ml" - - in - let _1 = - let _loc_label_ = (_startpos_label_, _endpos_label_) in - -# 3789 "src/ocaml/preprocess/parser_raw.mly" +# 31644 "src/ocaml/preprocess/parser_raw.ml" + + in + let _1 = + let _loc_label_ = (_startpos_label_, _endpos_label_) in + +# 3800 "src/ocaml/preprocess/parser_raw.mly" ( let loc = _loc_label_ in Some label, mkpatvar ~loc label ) -# 30777 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 3801 "src/ocaml/preprocess/parser_raw.mly" +# 31653 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 3812 "src/ocaml/preprocess/parser_raw.mly" ( [ _3; _1 ] ) -# 30783 "src/ocaml/preprocess/parser_raw.ml" - in +# 31659 "src/ocaml/preprocess/parser_raw.ml" + : ((string option * Parsetree.pattern) list)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -30825,40 +31702,42 @@ module Tables = struct let _1_inlined1 : ( # 1082 "src/ocaml/preprocess/parser_raw.mly" (string) -# 30829 "src/ocaml/preprocess/parser_raw.ml" +# 31706 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 30835 "src/ocaml/preprocess/parser_raw.ml" +# 31712 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__2_inlined1_ in - let _v : ((string option * Parsetree.pattern) list) = let _3 = - let (_2, _1) = (_2_inlined1, _1_inlined1) in - -# 3773 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _3 = + let (_2, _1) = (_2_inlined1, _1_inlined1) in + +# 3784 "src/ocaml/preprocess/parser_raw.mly" ( Some _1, _2 ) -# 30846 "src/ocaml/preprocess/parser_raw.ml" - - in - let _1 = - let _loc_label_ = (_startpos_label_, _endpos_label_) in - -# 3789 "src/ocaml/preprocess/parser_raw.mly" +# 31724 "src/ocaml/preprocess/parser_raw.ml" + + in + let _1 = + let _loc_label_ = (_startpos_label_, _endpos_label_) in + +# 3800 "src/ocaml/preprocess/parser_raw.mly" ( let loc = _loc_label_ in Some label, mkpatvar ~loc label ) -# 30855 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 3801 "src/ocaml/preprocess/parser_raw.mly" +# 31733 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 3812 "src/ocaml/preprocess/parser_raw.mly" ( [ _3; _1 ] ) -# 30861 "src/ocaml/preprocess/parser_raw.ml" - in +# 31739 "src/ocaml/preprocess/parser_raw.ml" + : ((string option * Parsetree.pattern) list)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -30902,43 +31781,45 @@ module Tables = struct let label_inlined1 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 30906 "src/ocaml/preprocess/parser_raw.ml" +# 31785 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label_inlined1 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 30913 "src/ocaml/preprocess/parser_raw.ml" +# 31792 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_label_inlined1_ in - let _v : ((string option * Parsetree.pattern) list) = let _3 = - let (_endpos_label_, _startpos_label_, label) = (_endpos_label_inlined1_, _startpos_label_inlined1_, label_inlined1) in - let _loc_label_ = (_startpos_label_, _endpos_label_) in - -# 3775 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _3 = + let (_endpos_label_, _startpos_label_, label) = (_endpos_label_inlined1_, _startpos_label_inlined1_, label_inlined1) in + let _loc_label_ = (_startpos_label_, _endpos_label_) in + +# 3786 "src/ocaml/preprocess/parser_raw.mly" ( let loc = _loc_label_ in Some label, mkpatvar ~loc label ) -# 30926 "src/ocaml/preprocess/parser_raw.ml" - - in - let _1 = - let _loc_label_ = (_startpos_label_, _endpos_label_) in - -# 3789 "src/ocaml/preprocess/parser_raw.mly" +# 31806 "src/ocaml/preprocess/parser_raw.ml" + + in + let _1 = + let _loc_label_ = (_startpos_label_, _endpos_label_) in + +# 3800 "src/ocaml/preprocess/parser_raw.mly" ( let loc = _loc_label_ in Some label, mkpatvar ~loc label ) -# 30935 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 3801 "src/ocaml/preprocess/parser_raw.mly" +# 31815 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 3812 "src/ocaml/preprocess/parser_raw.mly" ( [ _3; _1 ] ) -# 30941 "src/ocaml/preprocess/parser_raw.ml" - in +# 31821 "src/ocaml/preprocess/parser_raw.ml" + : ((string option * Parsetree.pattern) list)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -31009,7 +31890,7 @@ module Tables = struct let label_inlined1 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 31013 "src/ocaml/preprocess/parser_raw.ml" +# 31894 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label_inlined1 in let _2_inlined1 : unit = Obj.magic _2_inlined1 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in @@ -31017,39 +31898,41 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 31021 "src/ocaml/preprocess/parser_raw.ml" +# 31902 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__6_ in - let _v : ((string option * Parsetree.pattern) list) = let _3 = - let (_endpos_label_, _startpos_label_, _startpos__2_, label) = (_endpos_label_inlined1_, _startpos_label_inlined1_, _startpos__2_inlined1_, label_inlined1) in - let _endpos = _endpos__6_ in - let _loc_label_ = (_startpos_label_, _endpos_label_) in - -# 3778 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _3 = + let (_endpos_label_, _startpos_label_, _startpos__2_, label) = (_endpos_label_inlined1_, _startpos_label_inlined1_, _startpos__2_inlined1_, label_inlined1) in + let _endpos = _endpos__6_ in + let _loc_label_ = (_startpos_label_, _endpos_label_) in + +# 3789 "src/ocaml/preprocess/parser_raw.mly" ( let lbl_loc = _loc_label_ in let pat_loc = _startpos__2_, _endpos in let pat = mkpatvar ~loc:lbl_loc label in Some label, mkpat_with_modes ~loc:pat_loc ~modes:[] ~pat ~cty:(Some cty) ) -# 31037 "src/ocaml/preprocess/parser_raw.ml" - - in - let _1 = - let _loc_label_ = (_startpos_label_, _endpos_label_) in - -# 3789 "src/ocaml/preprocess/parser_raw.mly" +# 31919 "src/ocaml/preprocess/parser_raw.ml" + + in + let _1 = + let _loc_label_ = (_startpos_label_, _endpos_label_) in + +# 3800 "src/ocaml/preprocess/parser_raw.mly" ( let loc = _loc_label_ in Some label, mkpatvar ~loc label ) -# 31046 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 3801 "src/ocaml/preprocess/parser_raw.mly" +# 31928 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 3812 "src/ocaml/preprocess/parser_raw.mly" ( [ _3; _1 ] ) -# 31052 "src/ocaml/preprocess/parser_raw.ml" - in +# 31934 "src/ocaml/preprocess/parser_raw.ml" + : ((string option * Parsetree.pattern) list)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -31116,39 +31999,41 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 31120 "src/ocaml/preprocess/parser_raw.ml" +# 32003 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _2_inlined1 : unit = Obj.magic _2_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined1_ in - let _v : ((string option * Parsetree.pattern) list) = let _3 = - let _1 = _1_inlined1 in - -# 3771 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _3 = + let _1 = _1_inlined1 in + +# 3782 "src/ocaml/preprocess/parser_raw.mly" ( None, _1 ) -# 31132 "src/ocaml/preprocess/parser_raw.ml" - - in - let _1 = - let _startpos__2_ = _startpos__2_inlined1_ in - let _endpos = _endpos__6_ in - let _loc_label_ = (_startpos_label_, _endpos_label_) in - -# 3792 "src/ocaml/preprocess/parser_raw.mly" +# 32016 "src/ocaml/preprocess/parser_raw.ml" + + in + let _1 = + let _startpos__2_ = _startpos__2_inlined1_ in + let _endpos = _endpos__6_ in + let _loc_label_ = (_startpos_label_, _endpos_label_) in + +# 3803 "src/ocaml/preprocess/parser_raw.mly" ( let lbl_loc = _loc_label_ in let pat_loc = _startpos__2_, _endpos in let pat = mkpatvar ~loc:lbl_loc label in Some label, mkpat_with_modes ~loc:pat_loc ~modes:[] ~pat ~cty:(Some cty) ) -# 31145 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 3801 "src/ocaml/preprocess/parser_raw.mly" +# 32029 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 3812 "src/ocaml/preprocess/parser_raw.mly" ( [ _3; _1 ] ) -# 31151 "src/ocaml/preprocess/parser_raw.ml" - in +# 32035 "src/ocaml/preprocess/parser_raw.ml" + : ((string option * Parsetree.pattern) list)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -31217,7 +32102,7 @@ module Tables = struct let _1_inlined1 : ( # 1082 "src/ocaml/preprocess/parser_raw.mly" (string) -# 31221 "src/ocaml/preprocess/parser_raw.ml" +# 32106 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in let _6 : unit = Obj.magic _6 in @@ -31226,39 +32111,41 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 31230 "src/ocaml/preprocess/parser_raw.ml" +# 32115 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _2_inlined1 : unit = Obj.magic _2_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__2_inlined2_ in - let _v : ((string option * Parsetree.pattern) list) = let _3 = - let (_2, _1) = (_2_inlined2, _1_inlined1) in - -# 3773 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _3 = + let (_2, _1) = (_2_inlined2, _1_inlined1) in + +# 3784 "src/ocaml/preprocess/parser_raw.mly" ( Some _1, _2 ) -# 31242 "src/ocaml/preprocess/parser_raw.ml" - - in - let _1 = - let _startpos__2_ = _startpos__2_inlined1_ in - let _endpos = _endpos__6_ in - let _loc_label_ = (_startpos_label_, _endpos_label_) in - -# 3792 "src/ocaml/preprocess/parser_raw.mly" +# 32128 "src/ocaml/preprocess/parser_raw.ml" + + in + let _1 = + let _startpos__2_ = _startpos__2_inlined1_ in + let _endpos = _endpos__6_ in + let _loc_label_ = (_startpos_label_, _endpos_label_) in + +# 3803 "src/ocaml/preprocess/parser_raw.mly" ( let lbl_loc = _loc_label_ in let pat_loc = _startpos__2_, _endpos in let pat = mkpatvar ~loc:lbl_loc label in Some label, mkpat_with_modes ~loc:pat_loc ~modes:[] ~pat ~cty:(Some cty) ) -# 31255 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 3801 "src/ocaml/preprocess/parser_raw.mly" +# 32141 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 3812 "src/ocaml/preprocess/parser_raw.mly" ( [ _3; _1 ] ) -# 31261 "src/ocaml/preprocess/parser_raw.ml" - in +# 32147 "src/ocaml/preprocess/parser_raw.ml" + : ((string option * Parsetree.pattern) list)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -31326,7 +32213,7 @@ module Tables = struct let label_inlined1 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 31330 "src/ocaml/preprocess/parser_raw.ml" +# 32217 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label_inlined1 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in @@ -31336,41 +32223,43 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 31340 "src/ocaml/preprocess/parser_raw.ml" +# 32227 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _2_inlined1 : unit = Obj.magic _2_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_label_inlined1_ in - let _v : ((string option * Parsetree.pattern) list) = let _3 = - let (_endpos_label_, _startpos_label_, label) = (_endpos_label_inlined1_, _startpos_label_inlined1_, label_inlined1) in - let _loc_label_ = (_startpos_label_, _endpos_label_) in - -# 3775 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _3 = + let (_endpos_label_, _startpos_label_, label) = (_endpos_label_inlined1_, _startpos_label_inlined1_, label_inlined1) in + let _loc_label_ = (_startpos_label_, _endpos_label_) in + +# 3786 "src/ocaml/preprocess/parser_raw.mly" ( let loc = _loc_label_ in Some label, mkpatvar ~loc label ) -# 31354 "src/ocaml/preprocess/parser_raw.ml" - - in - let _1 = - let _startpos__2_ = _startpos__2_inlined1_ in - let _endpos = _endpos__6_ in - let _loc_label_ = (_startpos_label_, _endpos_label_) in - -# 3792 "src/ocaml/preprocess/parser_raw.mly" +# 32242 "src/ocaml/preprocess/parser_raw.ml" + + in + let _1 = + let _startpos__2_ = _startpos__2_inlined1_ in + let _endpos = _endpos__6_ in + let _loc_label_ = (_startpos_label_, _endpos_label_) in + +# 3803 "src/ocaml/preprocess/parser_raw.mly" ( let lbl_loc = _loc_label_ in let pat_loc = _startpos__2_, _endpos in let pat = mkpatvar ~loc:lbl_loc label in Some label, mkpat_with_modes ~loc:pat_loc ~modes:[] ~pat ~cty:(Some cty) ) -# 31367 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 3801 "src/ocaml/preprocess/parser_raw.mly" +# 32255 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 3812 "src/ocaml/preprocess/parser_raw.mly" ( [ _3; _1 ] ) -# 31373 "src/ocaml/preprocess/parser_raw.ml" - in +# 32261 "src/ocaml/preprocess/parser_raw.ml" + : ((string option * Parsetree.pattern) list)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -31465,7 +32354,7 @@ module Tables = struct let label_inlined1 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 31469 "src/ocaml/preprocess/parser_raw.ml" +# 32358 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label_inlined1 in let _2_inlined2 : unit = Obj.magic _2_inlined2 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in @@ -31476,44 +32365,46 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 31480 "src/ocaml/preprocess/parser_raw.ml" +# 32369 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _2_inlined1 : unit = Obj.magic _2_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__6_inlined1_ in - let _v : ((string option * Parsetree.pattern) list) = let _3 = - let (_endpos_label_, _startpos_label_, _endpos__6_, _startpos__2_, cty, label) = (_endpos_label_inlined1_, _startpos_label_inlined1_, _endpos__6_inlined1_, _startpos__2_inlined2_, cty_inlined1, label_inlined1) in - let _endpos = _endpos__6_ in - let _loc_label_ = (_startpos_label_, _endpos_label_) in - -# 3778 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _3 = + let (_endpos_label_, _startpos_label_, _endpos__6_, _startpos__2_, cty, label) = (_endpos_label_inlined1_, _startpos_label_inlined1_, _endpos__6_inlined1_, _startpos__2_inlined2_, cty_inlined1, label_inlined1) in + let _endpos = _endpos__6_ in + let _loc_label_ = (_startpos_label_, _endpos_label_) in + +# 3789 "src/ocaml/preprocess/parser_raw.mly" ( let lbl_loc = _loc_label_ in let pat_loc = _startpos__2_, _endpos in let pat = mkpatvar ~loc:lbl_loc label in Some label, mkpat_with_modes ~loc:pat_loc ~modes:[] ~pat ~cty:(Some cty) ) -# 31497 "src/ocaml/preprocess/parser_raw.ml" - - in - let _1 = - let _startpos__2_ = _startpos__2_inlined1_ in - let _endpos = _endpos__6_ in - let _loc_label_ = (_startpos_label_, _endpos_label_) in - -# 3792 "src/ocaml/preprocess/parser_raw.mly" +# 32387 "src/ocaml/preprocess/parser_raw.ml" + + in + let _1 = + let _startpos__2_ = _startpos__2_inlined1_ in + let _endpos = _endpos__6_ in + let _loc_label_ = (_startpos_label_, _endpos_label_) in + +# 3803 "src/ocaml/preprocess/parser_raw.mly" ( let lbl_loc = _loc_label_ in let pat_loc = _startpos__2_, _endpos in let pat = mkpatvar ~loc:lbl_loc label in Some label, mkpat_with_modes ~loc:pat_loc ~modes:[] ~pat ~cty:(Some cty) ) -# 31510 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 3801 "src/ocaml/preprocess/parser_raw.mly" +# 32400 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 3812 "src/ocaml/preprocess/parser_raw.mly" ( [ _3; _1 ] ) -# 31516 "src/ocaml/preprocess/parser_raw.ml" - in +# 32406 "src/ocaml/preprocess/parser_raw.ml" + : ((string option * Parsetree.pattern) list)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -31537,9 +32428,9 @@ module Tables = struct let _endpos = _endpos__1_ in let _v : (Parsetree.pattern * Parsetree.expression * Parsetree.value_constraint option * Parsetree.modes * bool) = -# 3398 "src/ocaml/preprocess/parser_raw.mly" +# 3409 "src/ocaml/preprocess/parser_raw.mly" ( let p,e,c,modes = _1 in (p,e,c,modes,false) ) -# 31543 "src/ocaml/preprocess/parser_raw.ml" +# 32434 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -31561,15 +32452,17 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v : (Parsetree.pattern * Parsetree.expression * - Parsetree.value_constraint option * Parsetree.modes * bool) = let _endpos = _endpos__1_ in - let _startpos = _startpos__1_ in - let _loc = (_startpos, _endpos) in - -# 3401 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _endpos = _endpos__1_ in + let _startpos = _startpos__1_ in + let _loc = (_startpos, _endpos) in + ( +# 3412 "src/ocaml/preprocess/parser_raw.mly" ( (mkpatvar ~loc:_loc ~attrs:[pun_attr] _1, ghexpvar ~loc:_loc ~attrs:[pun_attr] _1, None, [], true) ) -# 31572 "src/ocaml/preprocess/parser_raw.ml" - in +# 32463 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.pattern * Parsetree.expression * + Parsetree.value_constraint option * Parsetree.modes * bool)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -31597,30 +32490,32 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined1_ in - let _v : (Parsetree.pattern * Parsetree.expression * - Parsetree.value_constraint option * Parsetree.modes) = let _2 = - let _1 = _1_inlined1 in - -# 3481 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _2 = + let _1 = _1_inlined1 in + +# 3492 "src/ocaml/preprocess/parser_raw.mly" (_1 []) -# 31607 "src/ocaml/preprocess/parser_raw.ml" - - in - let _1 = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 3324 "src/ocaml/preprocess/parser_raw.mly" +# 32500 "src/ocaml/preprocess/parser_raw.ml" + + in + let _1 = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 3335 "src/ocaml/preprocess/parser_raw.mly" ( mkpatvar ~loc:_sloc _1 ) -# 31617 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 3334 "src/ocaml/preprocess/parser_raw.mly" +# 32510 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 3345 "src/ocaml/preprocess/parser_raw.mly" ( (_1, _2, None, []) ) -# 31623 "src/ocaml/preprocess/parser_raw.ml" - in +# 32516 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.pattern * Parsetree.expression * + Parsetree.value_constraint option * Parsetree.modes)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -31662,45 +32557,45 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__5_ in - let _v : (Parsetree.pattern * Parsetree.expression * - Parsetree.value_constraint option * Parsetree.modes) = let _3 = - let _1 = _1_inlined1 in - let _1 = - let _2 = -# 4688 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _3 = + let _1 = _1_inlined1 in + let _1 = + let _2 = +# 4699 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 31673 "src/ocaml/preprocess/parser_raw.ml" - in - -# 3675 "src/ocaml/preprocess/parser_raw.mly" +# 32568 "src/ocaml/preprocess/parser_raw.ml" + in + +# 3686 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 31678 "src/ocaml/preprocess/parser_raw.ml" +# 32573 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 3680 "src/ocaml/preprocess/parser_raw.mly" +# 3691 "src/ocaml/preprocess/parser_raw.mly" ( let ty, modes = _1 in Some ty, modes ) -# 31685 "src/ocaml/preprocess/parser_raw.ml" - - in - let _2 = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 3324 "src/ocaml/preprocess/parser_raw.mly" +# 32580 "src/ocaml/preprocess/parser_raw.ml" + + in + let _2 = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 3335 "src/ocaml/preprocess/parser_raw.mly" ( mkpatvar ~loc:_sloc _1 ) -# 31695 "src/ocaml/preprocess/parser_raw.ml" - - in - let modes0 = -# 4652 "src/ocaml/preprocess/parser_raw.mly" +# 32590 "src/ocaml/preprocess/parser_raw.ml" + + in + let modes0 = +# 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 31701 "src/ocaml/preprocess/parser_raw.ml" - in - -# 3338 "src/ocaml/preprocess/parser_raw.mly" +# 32596 "src/ocaml/preprocess/parser_raw.ml" + in + ( +# 3349 "src/ocaml/preprocess/parser_raw.mly" ( let v = _2 in (* PR#7344 *) let typ, modes1 = _3 in let t = @@ -31713,8 +32608,10 @@ module Tables = struct let modes = modes0 @ modes1 in (v, _5, t, modes) ) -# 31717 "src/ocaml/preprocess/parser_raw.ml" - in +# 32612 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.pattern * Parsetree.expression * + Parsetree.value_constraint option * Parsetree.modes)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -31763,48 +32660,48 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__5_ in - let _v : (Parsetree.pattern * Parsetree.expression * - Parsetree.value_constraint option * Parsetree.modes) = let _3 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _1 = - let _2 = - let _1 = _1_inlined1 in - -# 4689 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _3 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in + let _1 = + let _2 = + let _1 = _1_inlined1 in + +# 4700 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 31776 "src/ocaml/preprocess/parser_raw.ml" +# 32673 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 3675 "src/ocaml/preprocess/parser_raw.mly" +# 3686 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 31782 "src/ocaml/preprocess/parser_raw.ml" +# 32679 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 3680 "src/ocaml/preprocess/parser_raw.mly" +# 3691 "src/ocaml/preprocess/parser_raw.mly" ( let ty, modes = _1 in Some ty, modes ) -# 31789 "src/ocaml/preprocess/parser_raw.ml" - - in - let _2 = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 3324 "src/ocaml/preprocess/parser_raw.mly" +# 32686 "src/ocaml/preprocess/parser_raw.ml" + + in + let _2 = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 3335 "src/ocaml/preprocess/parser_raw.mly" ( mkpatvar ~loc:_sloc _1 ) -# 31799 "src/ocaml/preprocess/parser_raw.ml" - - in - let modes0 = -# 4652 "src/ocaml/preprocess/parser_raw.mly" +# 32696 "src/ocaml/preprocess/parser_raw.ml" + + in + let modes0 = +# 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 31805 "src/ocaml/preprocess/parser_raw.ml" - in - -# 3338 "src/ocaml/preprocess/parser_raw.mly" +# 32702 "src/ocaml/preprocess/parser_raw.ml" + in + ( +# 3349 "src/ocaml/preprocess/parser_raw.mly" ( let v = _2 in (* PR#7344 *) let typ, modes1 = _3 in let t = @@ -31817,8 +32714,10 @@ module Tables = struct let modes = modes0 @ modes1 in (v, _5, t, modes) ) -# 31821 "src/ocaml/preprocess/parser_raw.ml" - in +# 32718 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.pattern * Parsetree.expression * + Parsetree.value_constraint option * Parsetree.modes)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -31860,32 +32759,32 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__5_ in - let _v : (Parsetree.pattern * Parsetree.expression * - Parsetree.value_constraint option * Parsetree.modes) = let _3 = - let _1 = _1_inlined1 in - -# 3683 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _3 = + let _1 = _1_inlined1 in + +# 3694 "src/ocaml/preprocess/parser_raw.mly" ( None, _1 ) -# 31870 "src/ocaml/preprocess/parser_raw.ml" - - in - let _2 = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 3324 "src/ocaml/preprocess/parser_raw.mly" +# 32769 "src/ocaml/preprocess/parser_raw.ml" + + in + let _2 = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 3335 "src/ocaml/preprocess/parser_raw.mly" ( mkpatvar ~loc:_sloc _1 ) -# 31880 "src/ocaml/preprocess/parser_raw.ml" - - in - let modes0 = -# 4652 "src/ocaml/preprocess/parser_raw.mly" +# 32779 "src/ocaml/preprocess/parser_raw.ml" + + in + let modes0 = +# 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 31886 "src/ocaml/preprocess/parser_raw.ml" - in - -# 3338 "src/ocaml/preprocess/parser_raw.mly" +# 32785 "src/ocaml/preprocess/parser_raw.ml" + in + ( +# 3349 "src/ocaml/preprocess/parser_raw.mly" ( let v = _2 in (* PR#7344 *) let typ, modes1 = _3 in let t = @@ -31898,8 +32797,10 @@ module Tables = struct let modes = modes0 @ modes1 in (v, _5, t, modes) ) -# 31902 "src/ocaml/preprocess/parser_raw.ml" - in +# 32801 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.pattern * Parsetree.expression * + Parsetree.value_constraint option * Parsetree.modes)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -31948,53 +32849,53 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__5_ in - let _v : (Parsetree.pattern * Parsetree.expression * - Parsetree.value_constraint option * Parsetree.modes) = let _3 = - let _1 = _1_inlined2 in - let _1 = - let _2 = -# 4688 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _3 = + let _1 = _1_inlined2 in + let _1 = + let _2 = +# 4699 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 31959 "src/ocaml/preprocess/parser_raw.ml" - in - -# 3675 "src/ocaml/preprocess/parser_raw.mly" +# 32860 "src/ocaml/preprocess/parser_raw.ml" + in + +# 3686 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 31964 "src/ocaml/preprocess/parser_raw.ml" +# 32865 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 3680 "src/ocaml/preprocess/parser_raw.mly" +# 3691 "src/ocaml/preprocess/parser_raw.mly" ( let ty, modes = _1 in Some ty, modes ) -# 31971 "src/ocaml/preprocess/parser_raw.ml" - - in - let _2 = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 3324 "src/ocaml/preprocess/parser_raw.mly" +# 32872 "src/ocaml/preprocess/parser_raw.ml" + + in + let _2 = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 3335 "src/ocaml/preprocess/parser_raw.mly" ( mkpatvar ~loc:_sloc _1 ) -# 31982 "src/ocaml/preprocess/parser_raw.ml" - - in - let modes0 = - let _1 = -# 4648 "src/ocaml/preprocess/parser_raw.mly" +# 32883 "src/ocaml/preprocess/parser_raw.ml" + + in + let modes0 = + let _1 = +# 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 31989 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4653 "src/ocaml/preprocess/parser_raw.mly" +# 32890 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 31994 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 3338 "src/ocaml/preprocess/parser_raw.mly" +# 32895 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 3349 "src/ocaml/preprocess/parser_raw.mly" ( let v = _2 in (* PR#7344 *) let typ, modes1 = _3 in let t = @@ -32007,8 +32908,10 @@ module Tables = struct let modes = modes0 @ modes1 in (v, _5, t, modes) ) -# 32011 "src/ocaml/preprocess/parser_raw.ml" - in +# 32912 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.pattern * Parsetree.expression * + Parsetree.value_constraint option * Parsetree.modes)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -32064,56 +32967,56 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__5_ in - let _v : (Parsetree.pattern * Parsetree.expression * - Parsetree.value_constraint option * Parsetree.modes) = let _3 = - let (_1_inlined1, _1) = (_1_inlined3, _1_inlined2) in - let _1 = - let _2 = - let _1 = _1_inlined1 in - -# 4689 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _3 = + let (_1_inlined1, _1) = (_1_inlined3, _1_inlined2) in + let _1 = + let _2 = + let _1 = _1_inlined1 in + +# 4700 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 32077 "src/ocaml/preprocess/parser_raw.ml" +# 32980 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 3675 "src/ocaml/preprocess/parser_raw.mly" +# 3686 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 32083 "src/ocaml/preprocess/parser_raw.ml" +# 32986 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 3680 "src/ocaml/preprocess/parser_raw.mly" +# 3691 "src/ocaml/preprocess/parser_raw.mly" ( let ty, modes = _1 in Some ty, modes ) -# 32090 "src/ocaml/preprocess/parser_raw.ml" - - in - let _2 = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 3324 "src/ocaml/preprocess/parser_raw.mly" +# 32993 "src/ocaml/preprocess/parser_raw.ml" + + in + let _2 = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 3335 "src/ocaml/preprocess/parser_raw.mly" ( mkpatvar ~loc:_sloc _1 ) -# 32101 "src/ocaml/preprocess/parser_raw.ml" - - in - let modes0 = - let _1 = -# 4648 "src/ocaml/preprocess/parser_raw.mly" +# 33004 "src/ocaml/preprocess/parser_raw.ml" + + in + let modes0 = + let _1 = +# 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 32108 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4653 "src/ocaml/preprocess/parser_raw.mly" +# 33011 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 32113 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 3338 "src/ocaml/preprocess/parser_raw.mly" +# 33016 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 3349 "src/ocaml/preprocess/parser_raw.mly" ( let v = _2 in (* PR#7344 *) let typ, modes1 = _3 in let t = @@ -32126,8 +33029,10 @@ module Tables = struct let modes = modes0 @ modes1 in (v, _5, t, modes) ) -# 32130 "src/ocaml/preprocess/parser_raw.ml" - in +# 33033 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.pattern * Parsetree.expression * + Parsetree.value_constraint option * Parsetree.modes)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -32176,40 +33081,40 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__5_ in - let _v : (Parsetree.pattern * Parsetree.expression * - Parsetree.value_constraint option * Parsetree.modes) = let _3 = - let _1 = _1_inlined2 in - -# 3683 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _3 = + let _1 = _1_inlined2 in + +# 3694 "src/ocaml/preprocess/parser_raw.mly" ( None, _1 ) -# 32186 "src/ocaml/preprocess/parser_raw.ml" - - in - let _2 = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 3324 "src/ocaml/preprocess/parser_raw.mly" +# 33091 "src/ocaml/preprocess/parser_raw.ml" + + in + let _2 = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 3335 "src/ocaml/preprocess/parser_raw.mly" ( mkpatvar ~loc:_sloc _1 ) -# 32197 "src/ocaml/preprocess/parser_raw.ml" - - in - let modes0 = - let _1 = -# 4648 "src/ocaml/preprocess/parser_raw.mly" +# 33102 "src/ocaml/preprocess/parser_raw.ml" + + in + let modes0 = + let _1 = +# 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 32204 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4653 "src/ocaml/preprocess/parser_raw.mly" +# 33109 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 32209 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 3338 "src/ocaml/preprocess/parser_raw.mly" +# 33114 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 3349 "src/ocaml/preprocess/parser_raw.mly" ( let v = _2 in (* PR#7344 *) let typ, modes1 = _3 in let t = @@ -32222,8 +33127,10 @@ module Tables = struct let modes = modes0 @ modes1 in (v, _5, t, modes) ) -# 32226 "src/ocaml/preprocess/parser_raw.ml" - in +# 33131 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.pattern * Parsetree.expression * + Parsetree.value_constraint option * Parsetree.modes)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -32286,58 +33193,58 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__7_ in - let _v : (Parsetree.pattern * Parsetree.expression * - Parsetree.value_constraint option * Parsetree.modes) = let modes1 = -# 4688 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let modes1 = +# 4699 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 32294 "src/ocaml/preprocess/parser_raw.ml" - in - let _4 = - let _3 = _3_inlined1 in - let _1 = +# 33201 "src/ocaml/preprocess/parser_raw.ml" + in + let _4 = + let _3 = _3_inlined1 in let _1 = - let xs = -# 253 "" + let _1 = + let xs = +# 264 "" ( List.rev xs ) -# 32303 "src/ocaml/preprocess/parser_raw.ml" - in - +# 33210 "src/ocaml/preprocess/parser_raw.ml" + in + # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 32308 "src/ocaml/preprocess/parser_raw.ml" +# 33215 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 4481 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 33221 "src/ocaml/preprocess/parser_raw.ml" in -# 4470 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 32314 "src/ocaml/preprocess/parser_raw.ml" +# 4485 "src/ocaml/preprocess/parser_raw.mly" + ( (_1, _3) ) +# 33227 "src/ocaml/preprocess/parser_raw.ml" in - -# 4474 "src/ocaml/preprocess/parser_raw.mly" - ( (_1, _3) ) -# 32320 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__4_, _startpos__4_) = (_endpos__3_inlined1_, _startpos_xs_) in - let _2 = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 3324 "src/ocaml/preprocess/parser_raw.mly" + let (_endpos__4_, _startpos__4_) = (_endpos__3_inlined1_, _startpos_xs_) in + let _2 = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 3335 "src/ocaml/preprocess/parser_raw.mly" ( mkpatvar ~loc:_sloc _1 ) -# 32331 "src/ocaml/preprocess/parser_raw.ml" - - in - let modes0 = -# 4652 "src/ocaml/preprocess/parser_raw.mly" +# 33238 "src/ocaml/preprocess/parser_raw.ml" + + in + let modes0 = +# 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 32337 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc__4_ = (_startpos__4_, _endpos__4_) in - -# 3351 "src/ocaml/preprocess/parser_raw.mly" +# 33244 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc__4_ = (_startpos__4_, _endpos__4_) in + ( +# 3362 "src/ocaml/preprocess/parser_raw.mly" ( let bound_vars, inner_type = _4 in let ltyp = Ptyp_poly (bound_vars, inner_type) in let typ = ghtyp ~loc:_loc__4_ ltyp in @@ -32345,8 +33252,10 @@ module Tables = struct (_2, _7, Some (Pvc_constraint { locally_abstract_univars = []; typ }), modes) ) -# 32349 "src/ocaml/preprocess/parser_raw.ml" - in +# 33256 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.pattern * Parsetree.expression * + Parsetree.value_constraint option * Parsetree.modes)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -32416,61 +33325,61 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__7_ in - let _v : (Parsetree.pattern * Parsetree.expression * - Parsetree.value_constraint option * Parsetree.modes) = let modes1 = - let _1 = _1_inlined1 in - -# 4689 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let modes1 = + let _1 = _1_inlined1 in + +# 4700 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 32426 "src/ocaml/preprocess/parser_raw.ml" - - in - let _4 = - let _3 = _3_inlined1 in - let _1 = +# 33335 "src/ocaml/preprocess/parser_raw.ml" + + in + let _4 = + let _3 = _3_inlined1 in let _1 = - let xs = -# 253 "" + let _1 = + let xs = +# 264 "" ( List.rev xs ) -# 32436 "src/ocaml/preprocess/parser_raw.ml" - in - +# 33345 "src/ocaml/preprocess/parser_raw.ml" + in + # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 32441 "src/ocaml/preprocess/parser_raw.ml" +# 33350 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 4481 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 33356 "src/ocaml/preprocess/parser_raw.ml" in -# 4470 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 32447 "src/ocaml/preprocess/parser_raw.ml" +# 4485 "src/ocaml/preprocess/parser_raw.mly" + ( (_1, _3) ) +# 33362 "src/ocaml/preprocess/parser_raw.ml" in - -# 4474 "src/ocaml/preprocess/parser_raw.mly" - ( (_1, _3) ) -# 32453 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__4_, _startpos__4_) = (_endpos__3_inlined1_, _startpos_xs_) in - let _2 = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 3324 "src/ocaml/preprocess/parser_raw.mly" + let (_endpos__4_, _startpos__4_) = (_endpos__3_inlined1_, _startpos_xs_) in + let _2 = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 3335 "src/ocaml/preprocess/parser_raw.mly" ( mkpatvar ~loc:_sloc _1 ) -# 32464 "src/ocaml/preprocess/parser_raw.ml" - - in - let modes0 = -# 4652 "src/ocaml/preprocess/parser_raw.mly" +# 33373 "src/ocaml/preprocess/parser_raw.ml" + + in + let modes0 = +# 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 32470 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc__4_ = (_startpos__4_, _endpos__4_) in - -# 3351 "src/ocaml/preprocess/parser_raw.mly" +# 33379 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc__4_ = (_startpos__4_, _endpos__4_) in + ( +# 3362 "src/ocaml/preprocess/parser_raw.mly" ( let bound_vars, inner_type = _4 in let ltyp = Ptyp_poly (bound_vars, inner_type) in let typ = ghtyp ~loc:_loc__4_ ltyp in @@ -32478,8 +33387,10 @@ module Tables = struct (_2, _7, Some (Pvc_constraint { locally_abstract_univars = []; typ }), modes) ) -# 32482 "src/ocaml/preprocess/parser_raw.ml" - in +# 33391 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.pattern * Parsetree.expression * + Parsetree.value_constraint option * Parsetree.modes)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -32549,66 +33460,66 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__7_ in - let _v : (Parsetree.pattern * Parsetree.expression * - Parsetree.value_constraint option * Parsetree.modes) = let modes1 = -# 4688 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let modes1 = +# 4699 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 32557 "src/ocaml/preprocess/parser_raw.ml" - in - let _4 = - let _3 = _3_inlined1 in - let _1 = +# 33468 "src/ocaml/preprocess/parser_raw.ml" + in + let _4 = + let _3 = _3_inlined1 in let _1 = - let xs = -# 253 "" + let _1 = + let xs = +# 264 "" ( List.rev xs ) -# 32566 "src/ocaml/preprocess/parser_raw.ml" - in - +# 33477 "src/ocaml/preprocess/parser_raw.ml" + in + # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 32571 "src/ocaml/preprocess/parser_raw.ml" +# 33482 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 4481 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 33488 "src/ocaml/preprocess/parser_raw.ml" in -# 4470 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 32577 "src/ocaml/preprocess/parser_raw.ml" +# 4485 "src/ocaml/preprocess/parser_raw.mly" + ( (_1, _3) ) +# 33494 "src/ocaml/preprocess/parser_raw.ml" in - -# 4474 "src/ocaml/preprocess/parser_raw.mly" - ( (_1, _3) ) -# 32583 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__4_, _startpos__4_) = (_endpos__3_inlined1_, _startpos_xs_) in - let _2 = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 3324 "src/ocaml/preprocess/parser_raw.mly" + let (_endpos__4_, _startpos__4_) = (_endpos__3_inlined1_, _startpos_xs_) in + let _2 = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 3335 "src/ocaml/preprocess/parser_raw.mly" ( mkpatvar ~loc:_sloc _1 ) -# 32595 "src/ocaml/preprocess/parser_raw.ml" - - in - let modes0 = - let _1 = -# 4648 "src/ocaml/preprocess/parser_raw.mly" +# 33506 "src/ocaml/preprocess/parser_raw.ml" + + in + let modes0 = + let _1 = +# 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 32602 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4653 "src/ocaml/preprocess/parser_raw.mly" +# 33513 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 32607 "src/ocaml/preprocess/parser_raw.ml" - - in - let _loc__4_ = (_startpos__4_, _endpos__4_) in - -# 3351 "src/ocaml/preprocess/parser_raw.mly" +# 33518 "src/ocaml/preprocess/parser_raw.ml" + + in + let _loc__4_ = (_startpos__4_, _endpos__4_) in + ( +# 3362 "src/ocaml/preprocess/parser_raw.mly" ( let bound_vars, inner_type = _4 in let ltyp = Ptyp_poly (bound_vars, inner_type) in let typ = ghtyp ~loc:_loc__4_ ltyp in @@ -32616,8 +33527,10 @@ module Tables = struct (_2, _7, Some (Pvc_constraint { locally_abstract_univars = []; typ }), modes) ) -# 32620 "src/ocaml/preprocess/parser_raw.ml" - in +# 33531 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.pattern * Parsetree.expression * + Parsetree.value_constraint option * Parsetree.modes)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -32694,69 +33607,69 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__7_ in - let _v : (Parsetree.pattern * Parsetree.expression * - Parsetree.value_constraint option * Parsetree.modes) = let modes1 = - let _1 = _1_inlined2 in - -# 4689 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let modes1 = + let _1 = _1_inlined2 in + +# 4700 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 32704 "src/ocaml/preprocess/parser_raw.ml" - - in - let _4 = - let _3 = _3_inlined1 in - let _1 = +# 33617 "src/ocaml/preprocess/parser_raw.ml" + + in + let _4 = + let _3 = _3_inlined1 in let _1 = - let xs = -# 253 "" + let _1 = + let xs = +# 264 "" ( List.rev xs ) -# 32714 "src/ocaml/preprocess/parser_raw.ml" - in - +# 33627 "src/ocaml/preprocess/parser_raw.ml" + in + # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 32719 "src/ocaml/preprocess/parser_raw.ml" +# 33632 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 4481 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 33638 "src/ocaml/preprocess/parser_raw.ml" in -# 4470 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 32725 "src/ocaml/preprocess/parser_raw.ml" +# 4485 "src/ocaml/preprocess/parser_raw.mly" + ( (_1, _3) ) +# 33644 "src/ocaml/preprocess/parser_raw.ml" in - -# 4474 "src/ocaml/preprocess/parser_raw.mly" - ( (_1, _3) ) -# 32731 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__4_, _startpos__4_) = (_endpos__3_inlined1_, _startpos_xs_) in - let _2 = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 3324 "src/ocaml/preprocess/parser_raw.mly" + let (_endpos__4_, _startpos__4_) = (_endpos__3_inlined1_, _startpos_xs_) in + let _2 = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 3335 "src/ocaml/preprocess/parser_raw.mly" ( mkpatvar ~loc:_sloc _1 ) -# 32743 "src/ocaml/preprocess/parser_raw.ml" - - in - let modes0 = - let _1 = -# 4648 "src/ocaml/preprocess/parser_raw.mly" +# 33656 "src/ocaml/preprocess/parser_raw.ml" + + in + let modes0 = + let _1 = +# 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 32750 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4653 "src/ocaml/preprocess/parser_raw.mly" +# 33663 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 32755 "src/ocaml/preprocess/parser_raw.ml" - - in - let _loc__4_ = (_startpos__4_, _endpos__4_) in - -# 3351 "src/ocaml/preprocess/parser_raw.mly" +# 33668 "src/ocaml/preprocess/parser_raw.ml" + + in + let _loc__4_ = (_startpos__4_, _endpos__4_) in + ( +# 3362 "src/ocaml/preprocess/parser_raw.mly" ( let bound_vars, inner_type = _4 in let ltyp = Ptyp_poly (bound_vars, inner_type) in let typ = ghtyp ~loc:_loc__4_ ltyp in @@ -32764,8 +33677,10 @@ module Tables = struct (_2, _7, Some (Pvc_constraint { locally_abstract_univars = []; typ }), modes) ) -# 32768 "src/ocaml/preprocess/parser_raw.ml" - in +# 33681 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.pattern * Parsetree.expression * + Parsetree.value_constraint option * Parsetree.modes)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -32835,36 +33750,38 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__9_ in - let _v : (Parsetree.pattern * Parsetree.expression * - Parsetree.value_constraint option * Parsetree.modes) = let modes = -# 4688 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let modes = +# 4699 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 32843 "src/ocaml/preprocess/parser_raw.ml" - in - let _1 = - let _endpos = _endpos__1_ in +# 33758 "src/ocaml/preprocess/parser_raw.ml" + in + let _1 = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 3335 "src/ocaml/preprocess/parser_raw.mly" + ( mkpatvar ~loc:_sloc _1 ) +# 33767 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__9_ in let _symbolstartpos = _startpos__1_ in + let _loc__6_ = (_startpos__6_, _endpos__6_) in let _sloc = (_symbolstartpos, _endpos) in - -# 3324 "src/ocaml/preprocess/parser_raw.mly" - ( mkpatvar ~loc:_sloc _1 ) -# 32852 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__9_ in - let _symbolstartpos = _startpos__1_ in - let _loc__6_ = (_startpos__6_, _endpos__6_) in - let _sloc = (_symbolstartpos, _endpos) in - -# 3374 "src/ocaml/preprocess/parser_raw.mly" + ( +# 3385 "src/ocaml/preprocess/parser_raw.mly" ( let exp, poly = wrap_type_annotation ~loc:_sloc ~modes:[] ~typloc:_loc__6_ _4 _6 _9 in let loc = (_startpos__1_, _endpos__6_) in (ghpat_with_modes ~loc ~pat:_1 ~cty:(Some poly) ~modes:[], exp, None, modes) ) -# 32867 "src/ocaml/preprocess/parser_raw.ml" - in +# 33782 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.pattern * Parsetree.expression * + Parsetree.value_constraint option * Parsetree.modes)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -32941,39 +33858,41 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__9_ in - let _v : (Parsetree.pattern * Parsetree.expression * - Parsetree.value_constraint option * Parsetree.modes) = let modes = - let _1 = _1_inlined1 in - -# 4689 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let modes = + let _1 = _1_inlined1 in + +# 4700 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 32951 "src/ocaml/preprocess/parser_raw.ml" - - in - let _1 = - let _endpos = _endpos__1_ in +# 33868 "src/ocaml/preprocess/parser_raw.ml" + + in + let _1 = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 3335 "src/ocaml/preprocess/parser_raw.mly" + ( mkpatvar ~loc:_sloc _1 ) +# 33878 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__9_ in let _symbolstartpos = _startpos__1_ in + let _loc__6_ = (_startpos__6_, _endpos__6_) in let _sloc = (_symbolstartpos, _endpos) in - -# 3324 "src/ocaml/preprocess/parser_raw.mly" - ( mkpatvar ~loc:_sloc _1 ) -# 32961 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__9_ in - let _symbolstartpos = _startpos__1_ in - let _loc__6_ = (_startpos__6_, _endpos__6_) in - let _sloc = (_symbolstartpos, _endpos) in - -# 3374 "src/ocaml/preprocess/parser_raw.mly" + ( +# 3385 "src/ocaml/preprocess/parser_raw.mly" ( let exp, poly = wrap_type_annotation ~loc:_sloc ~modes:[] ~typloc:_loc__6_ _4 _6 _9 in let loc = (_startpos__1_, _endpos__6_) in (ghpat_with_modes ~loc ~pat:_1 ~cty:(Some poly) ~modes:[], exp, None, modes) ) -# 32976 "src/ocaml/preprocess/parser_raw.ml" - in +# 33893 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.pattern * Parsetree.expression * + Parsetree.value_constraint option * Parsetree.modes)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -33010,9 +33929,9 @@ module Tables = struct let _endpos = _endpos__3_ in let _v : (Parsetree.pattern * Parsetree.expression * Parsetree.value_constraint option * Parsetree.modes) = -# 3381 "src/ocaml/preprocess/parser_raw.mly" +# 3392 "src/ocaml/preprocess/parser_raw.mly" ( (_1, _3, None, []) ) -# 33016 "src/ocaml/preprocess/parser_raw.ml" +# 33935 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -33055,23 +33974,25 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in - let _v : (Parsetree.pattern * Parsetree.expression * - Parsetree.value_constraint option * Parsetree.modes) = let _2 = - let _1 = _1_inlined1 in - -# 3327 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _2 = + let _1 = _1_inlined1 in + +# 3338 "src/ocaml/preprocess/parser_raw.mly" (None, _1) -# 33065 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 3383 "src/ocaml/preprocess/parser_raw.mly" +# 33984 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 3394 "src/ocaml/preprocess/parser_raw.mly" ( let pvc, modes = _2 in (_1, _4, pvc, modes) ) -# 33074 "src/ocaml/preprocess/parser_raw.ml" - in +# 33993 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.pattern * Parsetree.expression * + Parsetree.value_constraint option * Parsetree.modes)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -33120,29 +34041,31 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in - let _v : (Parsetree.pattern * Parsetree.expression * - Parsetree.value_constraint option * Parsetree.modes) = let _2 = - let _3 = -# 4688 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _2 = + let _3 = +# 4699 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 33129 "src/ocaml/preprocess/parser_raw.ml" - in - -# 3328 "src/ocaml/preprocess/parser_raw.mly" +# 34050 "src/ocaml/preprocess/parser_raw.ml" + in + +# 3339 "src/ocaml/preprocess/parser_raw.mly" ( Some(Pvc_constraint { locally_abstract_univars=[]; typ=_2 }), _3 ) -# 33136 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 3383 "src/ocaml/preprocess/parser_raw.mly" +# 34057 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 3394 "src/ocaml/preprocess/parser_raw.mly" ( let pvc, modes = _2 in (_1, _4, pvc, modes) ) -# 33145 "src/ocaml/preprocess/parser_raw.ml" - in +# 34066 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.pattern * Parsetree.expression * + Parsetree.value_constraint option * Parsetree.modes)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -33198,33 +34121,35 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in - let _v : (Parsetree.pattern * Parsetree.expression * - Parsetree.value_constraint option * Parsetree.modes) = let _2 = - let _1_inlined1 = _1_inlined2 in - let _3 = - let _1 = _1_inlined1 in - -# 4689 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _2 = + let _1_inlined1 = _1_inlined2 in + let _3 = + let _1 = _1_inlined1 in + +# 4700 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 33210 "src/ocaml/preprocess/parser_raw.ml" +# 34133 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 3328 "src/ocaml/preprocess/parser_raw.mly" +# 3339 "src/ocaml/preprocess/parser_raw.mly" ( Some(Pvc_constraint { locally_abstract_univars=[]; typ=_2 }), _3 ) -# 33218 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 3383 "src/ocaml/preprocess/parser_raw.mly" +# 34141 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 3394 "src/ocaml/preprocess/parser_raw.mly" ( let pvc, modes = _2 in (_1, _4, pvc, modes) ) -# 33227 "src/ocaml/preprocess/parser_raw.ml" - in +# 34150 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.pattern * Parsetree.expression * + Parsetree.value_constraint option * Parsetree.modes)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -33259,30 +34184,32 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in - let _v : (Parsetree.pattern * Parsetree.expression * - Parsetree.value_constraint option * Parsetree.modes) = let _2 = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 3324 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _2 = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 3335 "src/ocaml/preprocess/parser_raw.mly" ( mkpatvar ~loc:_sloc _1 ) -# 33272 "src/ocaml/preprocess/parser_raw.ml" - - in - let modes = -# 4648 "src/ocaml/preprocess/parser_raw.mly" +# 34197 "src/ocaml/preprocess/parser_raw.ml" + + in + let modes = +# 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 33278 "src/ocaml/preprocess/parser_raw.ml" - in - -# 3388 "src/ocaml/preprocess/parser_raw.mly" +# 34203 "src/ocaml/preprocess/parser_raw.ml" + in + ( +# 3399 "src/ocaml/preprocess/parser_raw.mly" ( (_2, _3 modes, None, modes) ) -# 33285 "src/ocaml/preprocess/parser_raw.ml" - in +# 34210 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.pattern * Parsetree.expression * + Parsetree.value_constraint option * Parsetree.modes)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -33331,25 +34258,27 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__5_ in - let _v : (Parsetree.pattern * Parsetree.expression * - Parsetree.value_constraint option * Parsetree.modes) = let _2 = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 3324 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _2 = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 3335 "src/ocaml/preprocess/parser_raw.mly" ( mkpatvar ~loc:_sloc _1 ) -# 33344 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 3392 "src/ocaml/preprocess/parser_raw.mly" +# 34271 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 3403 "src/ocaml/preprocess/parser_raw.mly" ( (_2, _5 modes, None, modes) ) -# 33352 "src/ocaml/preprocess/parser_raw.ml" - in +# 34279 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.pattern * Parsetree.expression * + Parsetree.value_constraint option * Parsetree.modes)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -33406,41 +34335,43 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined2_ in - let _v : (Parser_types.let_bindings) = let _1 = - let attrs2 = - let _1 = _1_inlined2 in - -# 5388 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _1 = + let attrs2 = + let _1 = _1_inlined2 in + +# 5399 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 33416 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_attrs2_ = _endpos__1_inlined2_ in - let attrs1 = - let _1 = _1_inlined1 in - -# 5392 "src/ocaml/preprocess/parser_raw.mly" +# 34346 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_attrs2_ = _endpos__1_inlined2_ in + let attrs1 = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 33425 "src/ocaml/preprocess/parser_raw.ml" +# 34355 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos_attrs2_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos = _endpos_attrs2_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 3421 "src/ocaml/preprocess/parser_raw.mly" +# 3432 "src/ocaml/preprocess/parser_raw.mly" ( let attrs = attrs1 @ attrs2 in mklbs ext rec_flag (mklb ~loc:_sloc true body attrs) ) -# 33437 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 3411 "src/ocaml/preprocess/parser_raw.mly" +# 34367 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 3422 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 33443 "src/ocaml/preprocess/parser_raw.ml" - in +# 34373 "src/ocaml/preprocess/parser_raw.ml" + : (Parser_types.let_bindings)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -33469,9 +34400,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Parser_types.let_bindings) = -# 3412 "src/ocaml/preprocess/parser_raw.mly" +# 3423 "src/ocaml/preprocess/parser_raw.mly" ( addlb _1 _2 ) -# 33475 "src/ocaml/preprocess/parser_raw.ml" +# 34406 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -33522,46 +34453,48 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined2_ in - let _v : (Parser_types.let_bindings) = let _1 = - let attrs2 = - let _1 = _1_inlined2 in - -# 5388 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _1 = + let attrs2 = + let _1 = _1_inlined2 in + +# 5399 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 33532 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_attrs2_ = _endpos__1_inlined2_ in - let attrs1 = - let _1 = _1_inlined1 in - -# 5392 "src/ocaml/preprocess/parser_raw.mly" +# 34464 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_attrs2_ = _endpos__1_inlined2_ in + let attrs1 = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 33541 "src/ocaml/preprocess/parser_raw.ml" - - in - let ext = -# 5399 "src/ocaml/preprocess/parser_raw.mly" +# 34473 "src/ocaml/preprocess/parser_raw.ml" + + in + let ext = +# 5410 "src/ocaml/preprocess/parser_raw.mly" ( None ) -# 33547 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos_attrs2_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 3421 "src/ocaml/preprocess/parser_raw.mly" +# 34479 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos_attrs2_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 3432 "src/ocaml/preprocess/parser_raw.mly" ( let attrs = attrs1 @ attrs2 in mklbs ext rec_flag (mklb ~loc:_sloc true body attrs) ) -# 33558 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 3411 "src/ocaml/preprocess/parser_raw.mly" +# 34490 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 3422 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 33564 "src/ocaml/preprocess/parser_raw.ml" - in +# 34496 "src/ocaml/preprocess/parser_raw.ml" + : (Parser_types.let_bindings)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -33625,52 +34558,54 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined3_ in - let _v : (Parser_types.let_bindings) = let _1 = - let attrs2 = - let _1 = _1_inlined3 in - -# 5388 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _1 = + let attrs2 = + let _1 = _1_inlined3 in + +# 5399 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 33635 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_attrs2_ = _endpos__1_inlined3_ in - let attrs1 = - let _1 = _1_inlined2 in - -# 5392 "src/ocaml/preprocess/parser_raw.mly" +# 34569 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_attrs2_ = _endpos__1_inlined3_ in + let attrs1 = + let _1 = _1_inlined2 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 33644 "src/ocaml/preprocess/parser_raw.ml" - - in - let ext = - let _startpos__1_ = _startpos__1_inlined1_ in - let _endpos = _endpos__2_ in - let _startpos = _startpos__1_ in - let _loc = (_startpos, _endpos) in - -# 5401 "src/ocaml/preprocess/parser_raw.mly" +# 34578 "src/ocaml/preprocess/parser_raw.ml" + + in + let ext = + let _startpos__1_ = _startpos__1_inlined1_ in + let _endpos = _endpos__2_ in + let _startpos = _startpos__1_ in + let _loc = (_startpos, _endpos) in + +# 5412 "src/ocaml/preprocess/parser_raw.mly" ( not_expecting _loc "extension"; None ) -# 33655 "src/ocaml/preprocess/parser_raw.ml" +# 34589 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos_attrs2_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos = _endpos_attrs2_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 3421 "src/ocaml/preprocess/parser_raw.mly" +# 3432 "src/ocaml/preprocess/parser_raw.mly" ( let attrs = attrs1 @ attrs2 in mklbs ext rec_flag (mklb ~loc:_sloc true body attrs) ) -# 33667 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 3411 "src/ocaml/preprocess/parser_raw.mly" +# 34601 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 3422 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 33673 "src/ocaml/preprocess/parser_raw.ml" - in +# 34607 "src/ocaml/preprocess/parser_raw.ml" + : (Parser_types.let_bindings)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -33699,9 +34634,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Parser_types.let_bindings) = -# 3412 "src/ocaml/preprocess/parser_raw.mly" +# 3423 "src/ocaml/preprocess/parser_raw.mly" ( addlb _1 _2 ) -# 33705 "src/ocaml/preprocess/parser_raw.ml" +# 34640 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -33723,21 +34658,23 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_pat_ in let _endpos = _endpos_pat_ in - let _v : (Parsetree.pattern * Parsetree.core_type option * Parsetree.modes) = let modes = -# 4671 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let modes = +# 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 33730 "src/ocaml/preprocess/parser_raw.ml" - in - let x = +# 34666 "src/ocaml/preprocess/parser_raw.ml" + in + let x = # 2888 "src/ocaml/preprocess/parser_raw.mly" ( pat, None ) -# 33735 "src/ocaml/preprocess/parser_raw.ml" - in - +# 34671 "src/ocaml/preprocess/parser_raw.ml" + in + ( # 2861 "src/ocaml/preprocess/parser_raw.mly" ( let pat, cty = x in pat, cty, modes ) -# 33740 "src/ocaml/preprocess/parser_raw.ml" - in +# 34676 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.pattern * Parsetree.core_type option * Parsetree.modes)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -33765,21 +34702,23 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_pat_ in let _endpos = _endpos__1_ in - let _v : (Parsetree.pattern * Parsetree.core_type option * Parsetree.modes) = let modes = -# 4672 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let modes = +# 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 33772 "src/ocaml/preprocess/parser_raw.ml" - in - let x = +# 34710 "src/ocaml/preprocess/parser_raw.ml" + in + let x = # 2888 "src/ocaml/preprocess/parser_raw.mly" ( pat, None ) -# 33777 "src/ocaml/preprocess/parser_raw.ml" - in - +# 34715 "src/ocaml/preprocess/parser_raw.ml" + in + ( # 2861 "src/ocaml/preprocess/parser_raw.mly" ( let pat, cty = x in pat, cty, modes ) -# 33782 "src/ocaml/preprocess/parser_raw.ml" - in +# 34720 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.pattern * Parsetree.core_type option * Parsetree.modes)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -33814,21 +34753,23 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_pat_ in let _endpos = _endpos_cty_ in - let _v : (Parsetree.pattern * Parsetree.core_type option * Parsetree.modes) = let modes = -# 4688 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let modes = +# 4699 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 33821 "src/ocaml/preprocess/parser_raw.ml" - in - let x = +# 34761 "src/ocaml/preprocess/parser_raw.ml" + in + let x = # 2882 "src/ocaml/preprocess/parser_raw.mly" ( pat, Some cty ) -# 33826 "src/ocaml/preprocess/parser_raw.ml" - in - +# 34766 "src/ocaml/preprocess/parser_raw.ml" + in + ( # 2863 "src/ocaml/preprocess/parser_raw.mly" ( let pat, cty = x in pat, cty, modes ) -# 33831 "src/ocaml/preprocess/parser_raw.ml" - in +# 34771 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.pattern * Parsetree.core_type option * Parsetree.modes)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -33870,21 +34811,23 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_pat_ in let _endpos = _endpos__1_ in - let _v : (Parsetree.pattern * Parsetree.core_type option * Parsetree.modes) = let modes = -# 4689 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let modes = +# 4700 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 33877 "src/ocaml/preprocess/parser_raw.ml" - in - let x = +# 34819 "src/ocaml/preprocess/parser_raw.ml" + in + let x = # 2882 "src/ocaml/preprocess/parser_raw.mly" ( pat, Some cty ) -# 33882 "src/ocaml/preprocess/parser_raw.ml" - in - +# 34824 "src/ocaml/preprocess/parser_raw.ml" + in + ( # 2863 "src/ocaml/preprocess/parser_raw.mly" ( let pat, cty = x in pat, cty, modes ) -# 33887 "src/ocaml/preprocess/parser_raw.ml" - in +# 34829 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.pattern * Parsetree.core_type option * Parsetree.modes)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -33933,67 +34876,69 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_pat_ in let _endpos = _endpos_inner_type_ in - let _v : (Parsetree.pattern * Parsetree.core_type option * Parsetree.modes) = let modes = -# 4688 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let modes = +# 4699 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 33940 "src/ocaml/preprocess/parser_raw.ml" - in - let x = - let _1 = - let cty = - let _1 = - let bound_vars = - let _1 = - let xs = -# 253 "" +# 34884 "src/ocaml/preprocess/parser_raw.ml" + in + let x = + let _1 = + let cty = + let _1 = + let bound_vars = + let _1 = + let xs = +# 264 "" ( List.rev xs ) -# 33951 "src/ocaml/preprocess/parser_raw.ml" - in - +# 34895 "src/ocaml/preprocess/parser_raw.ml" + in + # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 33956 "src/ocaml/preprocess/parser_raw.ml" +# 34900 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 4470 "src/ocaml/preprocess/parser_raw.mly" +# 4481 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 33962 "src/ocaml/preprocess/parser_raw.ml" +# 34906 "src/ocaml/preprocess/parser_raw.ml" + + in - in - # 2897 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 33968 "src/ocaml/preprocess/parser_raw.ml" +# 34912 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos_inner_type_, _startpos_xs_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let (_endpos__1_, _startpos__1_) = (_endpos_inner_type_, _startpos_xs_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 33978 "src/ocaml/preprocess/parser_raw.ml" +# 34922 "src/ocaml/preprocess/parser_raw.ml" + + in - in - # 2898 "src/ocaml/preprocess/parser_raw.mly" ( pat, Some cty ) -# 33984 "src/ocaml/preprocess/parser_raw.ml" +# 34928 "src/ocaml/preprocess/parser_raw.ml" + + in - in - # 2884 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 33990 "src/ocaml/preprocess/parser_raw.ml" - - in - +# 34934 "src/ocaml/preprocess/parser_raw.ml" + + in + ( # 2863 "src/ocaml/preprocess/parser_raw.mly" ( let pat, cty = x in pat, cty, modes ) -# 33996 "src/ocaml/preprocess/parser_raw.ml" - in +# 34940 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.pattern * Parsetree.core_type option * Parsetree.modes)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -34049,67 +34994,69 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_pat_ in let _endpos = _endpos__1_ in - let _v : (Parsetree.pattern * Parsetree.core_type option * Parsetree.modes) = let modes = -# 4689 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let modes = +# 4700 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 34056 "src/ocaml/preprocess/parser_raw.ml" - in - let x = - let _1 = - let cty = - let _1 = - let bound_vars = - let _1 = - let xs = -# 253 "" +# 35002 "src/ocaml/preprocess/parser_raw.ml" + in + let x = + let _1 = + let cty = + let _1 = + let bound_vars = + let _1 = + let xs = +# 264 "" ( List.rev xs ) -# 34067 "src/ocaml/preprocess/parser_raw.ml" - in - +# 35013 "src/ocaml/preprocess/parser_raw.ml" + in + # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 34072 "src/ocaml/preprocess/parser_raw.ml" +# 35018 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 4470 "src/ocaml/preprocess/parser_raw.mly" +# 4481 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 34078 "src/ocaml/preprocess/parser_raw.ml" +# 35024 "src/ocaml/preprocess/parser_raw.ml" + + in - in - # 2897 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 34084 "src/ocaml/preprocess/parser_raw.ml" +# 35030 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos_inner_type_, _startpos_xs_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let (_endpos__1_, _startpos__1_) = (_endpos_inner_type_, _startpos_xs_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 34094 "src/ocaml/preprocess/parser_raw.ml" +# 35040 "src/ocaml/preprocess/parser_raw.ml" + + in - in - # 2898 "src/ocaml/preprocess/parser_raw.mly" ( pat, Some cty ) -# 34100 "src/ocaml/preprocess/parser_raw.ml" +# 35046 "src/ocaml/preprocess/parser_raw.ml" + + in - in - # 2884 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 34106 "src/ocaml/preprocess/parser_raw.ml" - - in - +# 35052 "src/ocaml/preprocess/parser_raw.ml" + + in + ( # 2863 "src/ocaml/preprocess/parser_raw.mly" ( let pat, cty = x in pat, cty, modes ) -# 34112 "src/ocaml/preprocess/parser_raw.ml" - in +# 35058 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.pattern * Parsetree.core_type option * Parsetree.modes)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -34147,7 +35094,7 @@ module Tables = struct let _v : (Parsetree.pattern * Parsetree.core_type option * Parsetree.modes) = # 2864 "src/ocaml/preprocess/parser_raw.mly" ( _2 ) -# 34151 "src/ocaml/preprocess/parser_raw.ml" +# 35098 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -34169,16 +35116,18 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_pat_ in let _endpos = _endpos_pat_ in - let _v : (Parsetree.pattern * Parsetree.core_type option) = let x = + let _v = + let x = # 2888 "src/ocaml/preprocess/parser_raw.mly" ( pat, None ) -# 34176 "src/ocaml/preprocess/parser_raw.ml" - in - +# 35124 "src/ocaml/preprocess/parser_raw.ml" + in + ( # 2876 "src/ocaml/preprocess/parser_raw.mly" ( x ) -# 34181 "src/ocaml/preprocess/parser_raw.ml" - in +# 35129 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.pattern * Parsetree.core_type option)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -34213,16 +35162,18 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_pat_ in let _endpos = _endpos_cty_ in - let _v : (Parsetree.pattern * Parsetree.core_type option) = let x = + let _v = + let x = # 2882 "src/ocaml/preprocess/parser_raw.mly" ( pat, Some cty ) -# 34220 "src/ocaml/preprocess/parser_raw.ml" - in - +# 35170 "src/ocaml/preprocess/parser_raw.ml" + in + ( # 2877 "src/ocaml/preprocess/parser_raw.mly" ( x ) -# 34225 "src/ocaml/preprocess/parser_raw.ml" - in +# 35175 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.pattern * Parsetree.core_type option)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -34271,62 +35222,64 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_pat_ in let _endpos = _endpos_inner_type_ in - let _v : (Parsetree.pattern * Parsetree.core_type option) = let x = - let _1 = - let cty = - let _1 = - let bound_vars = - let _1 = - let xs = -# 253 "" + let _v = + let x = + let _1 = + let cty = + let _1 = + let bound_vars = + let _1 = + let xs = +# 264 "" ( List.rev xs ) -# 34284 "src/ocaml/preprocess/parser_raw.ml" - in - +# 35236 "src/ocaml/preprocess/parser_raw.ml" + in + # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 34289 "src/ocaml/preprocess/parser_raw.ml" +# 35241 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 4470 "src/ocaml/preprocess/parser_raw.mly" +# 4481 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 34295 "src/ocaml/preprocess/parser_raw.ml" +# 35247 "src/ocaml/preprocess/parser_raw.ml" + + in - in - # 2897 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 34301 "src/ocaml/preprocess/parser_raw.ml" +# 35253 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos_inner_type_, _startpos_xs_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let (_endpos__1_, _startpos__1_) = (_endpos_inner_type_, _startpos_xs_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 34311 "src/ocaml/preprocess/parser_raw.ml" +# 35263 "src/ocaml/preprocess/parser_raw.ml" + + in - in - # 2898 "src/ocaml/preprocess/parser_raw.mly" ( pat, Some cty ) -# 34317 "src/ocaml/preprocess/parser_raw.ml" +# 35269 "src/ocaml/preprocess/parser_raw.ml" + + in - in - # 2884 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 34323 "src/ocaml/preprocess/parser_raw.ml" - - in - +# 35275 "src/ocaml/preprocess/parser_raw.ml" + + in + ( # 2877 "src/ocaml/preprocess/parser_raw.mly" ( x ) -# 34329 "src/ocaml/preprocess/parser_raw.ml" - in +# 35281 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.pattern * Parsetree.core_type option)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -34354,16 +35307,18 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_pat_ in let _endpos = _endpos_modes_ in - let _v : (Parsetree.pattern * Parsetree.core_type option * Parsetree.modes) = let x = + let _v = + let x = # 2888 "src/ocaml/preprocess/parser_raw.mly" ( pat, None ) -# 34361 "src/ocaml/preprocess/parser_raw.ml" - in - +# 35315 "src/ocaml/preprocess/parser_raw.ml" + in + ( # 2869 "src/ocaml/preprocess/parser_raw.mly" ( let pat, cty = x in pat, cty, modes ) -# 34366 "src/ocaml/preprocess/parser_raw.ml" - in +# 35320 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.pattern * Parsetree.core_type option * Parsetree.modes)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -34405,16 +35360,18 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_pat_ in let _endpos = _endpos_modes_ in - let _v : (Parsetree.pattern * Parsetree.core_type option * Parsetree.modes) = let x = + let _v = + let x = # 2882 "src/ocaml/preprocess/parser_raw.mly" ( pat, Some cty ) -# 34412 "src/ocaml/preprocess/parser_raw.ml" - in - +# 35368 "src/ocaml/preprocess/parser_raw.ml" + in + ( # 2871 "src/ocaml/preprocess/parser_raw.mly" ( let pat, cty = x in pat, cty, modes ) -# 34417 "src/ocaml/preprocess/parser_raw.ml" - in +# 35373 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.pattern * Parsetree.core_type option * Parsetree.modes)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -34470,62 +35427,64 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_pat_ in let _endpos = _endpos_modes_ in - let _v : (Parsetree.pattern * Parsetree.core_type option * Parsetree.modes) = let x = - let _1 = - let cty = - let _1 = - let bound_vars = - let _1 = - let xs = -# 253 "" + let _v = + let x = + let _1 = + let cty = + let _1 = + let bound_vars = + let _1 = + let xs = +# 264 "" ( List.rev xs ) -# 34483 "src/ocaml/preprocess/parser_raw.ml" - in - +# 35441 "src/ocaml/preprocess/parser_raw.ml" + in + # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 34488 "src/ocaml/preprocess/parser_raw.ml" +# 35446 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 4470 "src/ocaml/preprocess/parser_raw.mly" +# 4481 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 34494 "src/ocaml/preprocess/parser_raw.ml" +# 35452 "src/ocaml/preprocess/parser_raw.ml" + + in - in - # 2897 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 34500 "src/ocaml/preprocess/parser_raw.ml" +# 35458 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos_inner_type_, _startpos_xs_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let (_endpos__1_, _startpos__1_) = (_endpos_inner_type_, _startpos_xs_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 34510 "src/ocaml/preprocess/parser_raw.ml" +# 35468 "src/ocaml/preprocess/parser_raw.ml" + + in - in - # 2898 "src/ocaml/preprocess/parser_raw.mly" ( pat, Some cty ) -# 34516 "src/ocaml/preprocess/parser_raw.ml" +# 35474 "src/ocaml/preprocess/parser_raw.ml" + + in - in - # 2884 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 34522 "src/ocaml/preprocess/parser_raw.ml" - - in - +# 35480 "src/ocaml/preprocess/parser_raw.ml" + + in + ( # 2871 "src/ocaml/preprocess/parser_raw.mly" ( let pat, cty = x in pat, cty, modes ) -# 34528 "src/ocaml/preprocess/parser_raw.ml" - in +# 35486 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.pattern * Parsetree.core_type option * Parsetree.modes)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -34563,7 +35522,7 @@ module Tables = struct let _v : (Parsetree.pattern * Parsetree.core_type option * Parsetree.modes) = # 2872 "src/ocaml/preprocess/parser_raw.mly" ( _2 ) -# 34567 "src/ocaml/preprocess/parser_raw.ml" +# 35526 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -34592,29 +35551,31 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined1_ in - let _v : (Parsetree.pattern * Parsetree.expression) = let exp = - let _1 = _1_inlined1 in - -# 3481 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let exp = + let _1 = _1_inlined1 in + +# 3492 "src/ocaml/preprocess/parser_raw.mly" (_1 []) -# 34601 "src/ocaml/preprocess/parser_raw.ml" - - in - let pat = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 3324 "src/ocaml/preprocess/parser_raw.mly" +# 35561 "src/ocaml/preprocess/parser_raw.ml" + + in + let pat = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 3335 "src/ocaml/preprocess/parser_raw.mly" ( mkpatvar ~loc:_sloc _1 ) -# 34611 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 3438 "src/ocaml/preprocess/parser_raw.mly" +# 35571 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 3449 "src/ocaml/preprocess/parser_raw.mly" ( (pat, exp) ) -# 34617 "src/ocaml/preprocess/parser_raw.ml" - in +# 35577 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.pattern * Parsetree.expression)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -34635,14 +35596,16 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v : (Parsetree.pattern * Parsetree.expression) = let _endpos = _endpos__1_ in - let _startpos = _startpos__1_ in - let _loc = (_startpos, _endpos) in - -# 3441 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _endpos = _endpos__1_ in + let _startpos = _startpos__1_ in + let _loc = (_startpos, _endpos) in + ( +# 3452 "src/ocaml/preprocess/parser_raw.mly" ( (mkpatvar ~loc:_loc ~attrs:[pun_attr] _1, ghexpvar ~loc:_loc ~attrs:[pun_attr] _1) ) -# 34645 "src/ocaml/preprocess/parser_raw.ml" - in +# 35607 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.pattern * Parsetree.expression)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -34692,10 +35655,10 @@ module Tables = struct let _startpos = _startpos_pat_ in let _endpos = _endpos_exp_ in let _v : (Parsetree.pattern * Parsetree.expression) = -# 3444 "src/ocaml/preprocess/parser_raw.mly" +# 3455 "src/ocaml/preprocess/parser_raw.mly" ( let loc = (_startpos_pat_, _endpos_typ_) in (ghpat_with_modes ~loc ~pat ~cty:(Some typ) ~modes:[], exp) ) -# 34699 "src/ocaml/preprocess/parser_raw.ml" +# 35662 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -34732,9 +35695,9 @@ module Tables = struct let _startpos = _startpos_pat_ in let _endpos = _endpos_exp_ in let _v : (Parsetree.pattern * Parsetree.expression) = -# 3447 "src/ocaml/preprocess/parser_raw.mly" +# 3458 "src/ocaml/preprocess/parser_raw.mly" ( (pat, exp) ) -# 34738 "src/ocaml/preprocess/parser_raw.ml" +# 35701 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -34757,10 +35720,10 @@ module Tables = struct let _startpos = _startpos_body_ in let _endpos = _endpos_body_ in let _v : (Parsetree.pattern * Parsetree.expression * Parsetree.binding_op list) = -# 3451 "src/ocaml/preprocess/parser_raw.mly" +# 3462 "src/ocaml/preprocess/parser_raw.mly" ( let let_pat, let_exp = body in let_pat, let_exp, [] ) -# 34764 "src/ocaml/preprocess/parser_raw.ml" +# 35727 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -34794,34 +35757,36 @@ module Tables = struct let _1 : ( # 1075 "src/ocaml/preprocess/parser_raw.mly" (string) -# 34798 "src/ocaml/preprocess/parser_raw.ml" +# 35761 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let bindings : (Parsetree.pattern * Parsetree.expression * Parsetree.binding_op list) = Obj.magic bindings in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_bindings_ in let _endpos = _endpos_body_ in - let _v : (Parsetree.pattern * Parsetree.expression * Parsetree.binding_op list) = let pbop_op = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let _v = + let pbop_op = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 34811 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos_body_ in - let _symbolstartpos = _startpos_bindings_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 3454 "src/ocaml/preprocess/parser_raw.mly" +# 35775 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos_body_ in + let _symbolstartpos = _startpos_bindings_ in + let _sloc = (_symbolstartpos, _endpos) in + ( +# 3465 "src/ocaml/preprocess/parser_raw.mly" ( let let_pat, let_exp, rev_ands = bindings in let pbop_pat, pbop_exp = body in let pbop_loc = make_loc _sloc in let and_ = {pbop_op; pbop_pat; pbop_exp; pbop_loc} in let_pat, let_exp, and_ :: rev_ands ) -# 34824 "src/ocaml/preprocess/parser_raw.ml" - in +# 35788 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.pattern * Parsetree.expression * Parsetree.binding_op list)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -34836,9 +35801,9 @@ module Tables = struct let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in let _endpos = _startpos in let _v : (Parsetree.class_expr Parsetree.class_infos list) = -# 211 "" +# 216 "" ( [] ) -# 34842 "src/ocaml/preprocess/parser_raw.ml" +# 35807 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -34904,7 +35869,7 @@ module Tables = struct let _1_inlined2 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 34908 "src/ocaml/preprocess/parser_raw.ml" +# 35873 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined2 in let params : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = Obj.magic params in let virt : (Asttypes.virtual_flag) = Obj.magic virt in @@ -34913,39 +35878,40 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_xs_ in - let _v : (Parsetree.class_expr Parsetree.class_infos list) = let x = - let attrs2 = - let _1 = _1_inlined3 in - -# 5388 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let x = + let attrs2 = + let _1 = _1_inlined3 in + +# 5399 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 34923 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_attrs2_ = _endpos__1_inlined3_ in - let id = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 35889 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_attrs2_ = _endpos__1_inlined3_ in + let id = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 34935 "src/ocaml/preprocess/parser_raw.ml" - - in - let attrs1 = - let _1 = _1_inlined1 in - -# 5392 "src/ocaml/preprocess/parser_raw.mly" +# 35901 "src/ocaml/preprocess/parser_raw.ml" + + in + let attrs1 = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 34943 "src/ocaml/preprocess/parser_raw.ml" +# 35909 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos_attrs2_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos = _endpos_attrs2_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 2366 "src/ocaml/preprocess/parser_raw.mly" ( let attrs = attrs1 @ attrs2 in @@ -34954,14 +35920,15 @@ module Tables = struct let text = symbol_text _symbolstartpos in Ci.mk id body ~virt ~params ~attrs ~loc ~text ~docs ) -# 34958 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 213 "" +# 35924 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 219 "" ( x :: xs ) -# 34964 "src/ocaml/preprocess/parser_raw.ml" - in +# 35930 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.class_expr Parsetree.class_infos list)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -34976,9 +35943,9 @@ module Tables = struct let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in let _endpos = _startpos in let _v : (Parsetree.class_type Parsetree.class_infos list) = -# 211 "" +# 216 "" ( [] ) -# 34982 "src/ocaml/preprocess/parser_raw.ml" +# 35949 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -35051,7 +36018,7 @@ module Tables = struct let _1_inlined2 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 35055 "src/ocaml/preprocess/parser_raw.ml" +# 36022 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined2 in let params : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = Obj.magic params in let virt : (Asttypes.virtual_flag) = Obj.magic virt in @@ -35060,39 +36027,40 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_xs_ in - let _v : (Parsetree.class_type Parsetree.class_infos list) = let x = - let attrs2 = - let _1 = _1_inlined3 in - -# 5388 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let x = + let attrs2 = + let _1 = _1_inlined3 in + +# 5399 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 35070 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_attrs2_ = _endpos__1_inlined3_ in - let id = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 36038 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_attrs2_ = _endpos__1_inlined3_ in + let id = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 35082 "src/ocaml/preprocess/parser_raw.ml" - - in - let attrs1 = - let _1 = _1_inlined1 in - -# 5392 "src/ocaml/preprocess/parser_raw.mly" +# 36050 "src/ocaml/preprocess/parser_raw.ml" + + in + let attrs1 = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 35090 "src/ocaml/preprocess/parser_raw.ml" +# 36058 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos_attrs2_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos = _endpos_attrs2_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 2664 "src/ocaml/preprocess/parser_raw.mly" ( let attrs = attrs1 @ attrs2 in @@ -35101,14 +36069,15 @@ module Tables = struct let text = symbol_text _symbolstartpos in Ci.mk id cty ~virt ~params ~attrs ~loc ~text ~docs ) -# 35105 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 213 "" +# 36073 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 219 "" ( x :: xs ) -# 35111 "src/ocaml/preprocess/parser_raw.ml" - in +# 36079 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.class_type Parsetree.class_infos list)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -35123,9 +36092,9 @@ module Tables = struct let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in let _endpos = _startpos in let _v : (Parsetree.class_type Parsetree.class_infos list) = -# 211 "" +# 216 "" ( [] ) -# 35129 "src/ocaml/preprocess/parser_raw.ml" +# 36098 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -35198,7 +36167,7 @@ module Tables = struct let _1_inlined2 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 35202 "src/ocaml/preprocess/parser_raw.ml" +# 36171 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined2 in let params : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = Obj.magic params in let virt : (Asttypes.virtual_flag) = Obj.magic virt in @@ -35207,39 +36176,40 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_xs_ in - let _v : (Parsetree.class_type Parsetree.class_infos list) = let x = - let attrs2 = - let _1 = _1_inlined3 in - -# 5388 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let x = + let attrs2 = + let _1 = _1_inlined3 in + +# 5399 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 35217 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_attrs2_ = _endpos__1_inlined3_ in - let id = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 36187 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_attrs2_ = _endpos__1_inlined3_ in + let id = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 35229 "src/ocaml/preprocess/parser_raw.ml" - - in - let attrs1 = - let _1 = _1_inlined1 in - -# 5392 "src/ocaml/preprocess/parser_raw.mly" +# 36199 "src/ocaml/preprocess/parser_raw.ml" + + in + let attrs1 = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 35237 "src/ocaml/preprocess/parser_raw.ml" +# 36207 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos_attrs2_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos = _endpos_attrs2_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 2703 "src/ocaml/preprocess/parser_raw.mly" ( let attrs = attrs1 @ attrs2 in @@ -35248,14 +36218,15 @@ module Tables = struct let text = symbol_text _symbolstartpos in Ci.mk id csig ~virt ~params ~attrs ~loc ~text ~docs ) -# 35252 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 213 "" +# 36222 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 219 "" ( x :: xs ) -# 35258 "src/ocaml/preprocess/parser_raw.ml" - in +# 36228 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.class_type Parsetree.class_infos list)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -35270,9 +36241,9 @@ module Tables = struct let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in let _endpos = _startpos in let _v : (Parsetree.module_binding list) = -# 211 "" +# 216 "" ( [] ) -# 35276 "src/ocaml/preprocess/parser_raw.ml" +# 36247 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -35329,28 +36300,29 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_xs_ in - let _v : (Parsetree.module_binding list) = let x = - let attrs2 = - let _1 = _1_inlined2 in - -# 5388 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let x = + let attrs2 = + let _1 = _1_inlined2 in + +# 5399 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 35339 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_attrs2_ = _endpos__1_inlined2_ in - let attrs1 = - let _1 = _1_inlined1 in - -# 5392 "src/ocaml/preprocess/parser_raw.mly" +# 36311 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_attrs2_ = _endpos__1_inlined2_ in + let attrs1 = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 35348 "src/ocaml/preprocess/parser_raw.ml" +# 36320 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos_attrs2_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos = _endpos_attrs2_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1975 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in @@ -35361,14 +36333,15 @@ module Tables = struct let body = maybe_pmod_constraint modes body in Mb.mk name body ~attrs ~loc ~text ~docs ) -# 35365 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 213 "" +# 36337 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 219 "" ( x :: xs ) -# 35371 "src/ocaml/preprocess/parser_raw.ml" - in +# 36343 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.module_binding list)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -35383,9 +36356,9 @@ module Tables = struct let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in let _endpos = _startpos in let _v : (Parsetree.module_declaration list) = -# 211 "" +# 216 "" ( [] ) -# 35389 "src/ocaml/preprocess/parser_raw.ml" +# 36362 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -35456,39 +36429,40 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_xs_ in - let _v : (Parsetree.module_declaration list) = let x = - let attrs2 = - let _1 = _1_inlined3 in - -# 5388 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let x = + let attrs2 = + let _1 = _1_inlined3 in + +# 5399 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 35466 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_attrs2_ = _endpos__1_inlined3_ in - let name = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 36440 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_attrs2_ = _endpos__1_inlined3_ in + let name = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 35478 "src/ocaml/preprocess/parser_raw.ml" - - in - let attrs1 = - let _1 = _1_inlined1 in - -# 5392 "src/ocaml/preprocess/parser_raw.mly" +# 36452 "src/ocaml/preprocess/parser_raw.ml" + + in + let attrs1 = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 35486 "src/ocaml/preprocess/parser_raw.ml" +# 36460 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos_attrs2_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos = _endpos_attrs2_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 2307 "src/ocaml/preprocess/parser_raw.mly" ( let attrs = attrs1 @ attrs2 in @@ -35497,14 +36471,15 @@ module Tables = struct let text = symbol_text _symbolstartpos in Md.mk name mty ~attrs ~loc ~text ~docs ~modalities ) -# 35501 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 213 "" +# 36475 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 219 "" ( x :: xs ) -# 35507 "src/ocaml/preprocess/parser_raw.ml" - in +# 36481 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.module_declaration list)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -35519,9 +36494,9 @@ module Tables = struct let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in let _endpos = _startpos in let _v : (Parsetree.attributes) = -# 211 "" +# 216 "" ( [] ) -# 35525 "src/ocaml/preprocess/parser_raw.ml" +# 36500 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -35551,9 +36526,9 @@ module Tables = struct let _startpos = _startpos_x_ in let _endpos = _endpos_xs_ in let _v : (Parsetree.attributes) = -# 213 "" +# 219 "" ( x :: xs ) -# 35557 "src/ocaml/preprocess/parser_raw.ml" +# 36532 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -35569,9 +36544,9 @@ module Tables = struct let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in let _endpos = _startpos in let _v : (Parsetree.type_declaration list) = -# 211 "" +# 216 "" ( [] ) -# 35575 "src/ocaml/preprocess/parser_raw.ml" +# 36550 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -35645,7 +36620,7 @@ module Tables = struct let _1_inlined2 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 35649 "src/ocaml/preprocess/parser_raw.ml" +# 36624 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined2 in let params : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = Obj.magic params in let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in @@ -35653,60 +36628,61 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_xs_ in - let _v : (Parsetree.type_declaration list) = let x = - let xs = xs_inlined1 in - let attrs2 = - let _1 = _1_inlined3 in - -# 5388 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let x = + let xs = xs_inlined1 in + let attrs2 = + let _1 = _1_inlined3 in + +# 5399 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 35664 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_attrs2_ = _endpos__1_inlined3_ in - let cstrs = - let _1 = - let xs = -# 253 "" - ( List.rev xs ) -# 35673 "src/ocaml/preprocess/parser_raw.ml" - in +# 36640 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos_attrs2_ = _endpos__1_inlined3_ in + let cstrs = + let _1 = + let xs = +# 264 "" + ( List.rev xs ) +# 36649 "src/ocaml/preprocess/parser_raw.ml" + in + # 1380 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 35678 "src/ocaml/preprocess/parser_raw.ml" +# 36654 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 4087 "src/ocaml/preprocess/parser_raw.mly" +# 4098 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 35684 "src/ocaml/preprocess/parser_raw.ml" - - in - let id = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 36660 "src/ocaml/preprocess/parser_raw.ml" + + in + let id = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 35695 "src/ocaml/preprocess/parser_raw.ml" - - in - let attrs1 = - let _1 = _1_inlined1 in - -# 5392 "src/ocaml/preprocess/parser_raw.mly" +# 36671 "src/ocaml/preprocess/parser_raw.ml" + + in + let attrs1 = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 35703 "src/ocaml/preprocess/parser_raw.ml" +# 36679 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos_attrs2_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos = _endpos_attrs2_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 4075 "src/ocaml/preprocess/parser_raw.mly" +# 4086 "src/ocaml/preprocess/parser_raw.mly" ( let (kind, priv, manifest) = kind_priv_manifest in let docs = symbol_docs _sloc in @@ -35716,14 +36692,15 @@ module Tables = struct Type.mk id ~params ~cstrs ~kind ~priv ?manifest ~attrs ~loc ~docs ~text ?jkind_annotation ) -# 35720 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 213 "" +# 36696 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 219 "" ( x :: xs ) -# 35726 "src/ocaml/preprocess/parser_raw.ml" - in +# 36702 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.type_declaration list)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -35738,9 +36715,9 @@ module Tables = struct let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in let _endpos = _startpos in let _v : (Parsetree.type_declaration list) = -# 211 "" +# 216 "" ( [] ) -# 35744 "src/ocaml/preprocess/parser_raw.ml" +# 36721 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -35821,7 +36798,7 @@ module Tables = struct let _1_inlined2 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 35825 "src/ocaml/preprocess/parser_raw.ml" +# 36802 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined2 in let params : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = Obj.magic params in let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in @@ -35829,65 +36806,66 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_xs_ in - let _v : (Parsetree.type_declaration list) = let x = - let xs = xs_inlined1 in - let attrs2 = - let _1 = _1_inlined4 in - -# 5388 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let x = + let xs = xs_inlined1 in + let attrs2 = + let _1 = _1_inlined4 in + +# 5399 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 35840 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_attrs2_ = _endpos__1_inlined4_ in - let cstrs = - let _1 = - let xs = -# 253 "" - ( List.rev xs ) -# 35849 "src/ocaml/preprocess/parser_raw.ml" - in +# 36818 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos_attrs2_ = _endpos__1_inlined4_ in + let cstrs = + let _1 = + let xs = +# 264 "" + ( List.rev xs ) +# 36827 "src/ocaml/preprocess/parser_raw.ml" + in + # 1380 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 35854 "src/ocaml/preprocess/parser_raw.ml" +# 36832 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 4087 "src/ocaml/preprocess/parser_raw.mly" +# 4098 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 35860 "src/ocaml/preprocess/parser_raw.ml" - - in - let kind_priv_manifest = -# 4126 "src/ocaml/preprocess/parser_raw.mly" +# 36838 "src/ocaml/preprocess/parser_raw.ml" + + in + let kind_priv_manifest = +# 4137 "src/ocaml/preprocess/parser_raw.mly" ( _2 ) -# 35866 "src/ocaml/preprocess/parser_raw.ml" - in - let id = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 36844 "src/ocaml/preprocess/parser_raw.ml" + in + let id = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 35876 "src/ocaml/preprocess/parser_raw.ml" - - in - let attrs1 = - let _1 = _1_inlined1 in - -# 5392 "src/ocaml/preprocess/parser_raw.mly" +# 36854 "src/ocaml/preprocess/parser_raw.ml" + + in + let attrs1 = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 35884 "src/ocaml/preprocess/parser_raw.ml" +# 36862 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos_attrs2_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos = _endpos_attrs2_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 4075 "src/ocaml/preprocess/parser_raw.mly" +# 4086 "src/ocaml/preprocess/parser_raw.mly" ( let (kind, priv, manifest) = kind_priv_manifest in let docs = symbol_docs _sloc in @@ -35897,14 +36875,15 @@ module Tables = struct Type.mk id ~params ~cstrs ~kind ~priv ?manifest ~attrs ~loc ~docs ~text ?jkind_annotation ) -# 35901 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 213 "" +# 36879 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 219 "" ( x :: xs ) -# 35907 "src/ocaml/preprocess/parser_raw.ml" - in +# 36885 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.type_declaration list)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -35919,9 +36898,9 @@ module Tables = struct let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in let _endpos = _startpos in let _v : (Parsetree.attributes) = -# 211 "" +# 216 "" ( [] ) -# 35925 "src/ocaml/preprocess/parser_raw.ml" +# 36904 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -35951,9 +36930,9 @@ module Tables = struct let _startpos = _startpos_x_ in let _endpos = _endpos_xs_ in let _v : (Parsetree.attributes) = -# 213 "" +# 219 "" ( x :: xs ) -# 35957 "src/ocaml/preprocess/parser_raw.ml" +# 36936 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -35969,9 +36948,9 @@ module Tables = struct let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in let _endpos = _startpos in let _v : (Parsetree.signature_item list list) = -# 211 "" +# 216 "" ( [] ) -# 35975 "src/ocaml/preprocess/parser_raw.ml" +# 36954 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -36000,26 +36979,28 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_xs_ in - let _v : (Parsetree.signature_item list list) = let x = - let _1 = - let _startpos = _startpos__1_ in - + let _v = + let x = + let _1 = + let _startpos = _startpos__1_ in + # 1306 "src/ocaml/preprocess/parser_raw.mly" ( text_sig _startpos ) -# 36010 "src/ocaml/preprocess/parser_raw.ml" +# 36990 "src/ocaml/preprocess/parser_raw.ml" + + in - in - # 2144 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 36016 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 213 "" +# 36996 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 219 "" ( x :: xs ) -# 36022 "src/ocaml/preprocess/parser_raw.ml" - in +# 37002 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.signature_item list list)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -36047,26 +37028,28 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_xs_ in - let _v : (Parsetree.signature_item list list) = let x = - let _1 = - let _startpos = _startpos__1_ in - + let _v = + let x = + let _1 = + let _startpos = _startpos__1_ in + # 1304 "src/ocaml/preprocess/parser_raw.mly" ( text_sig _startpos @ [_1] ) -# 36057 "src/ocaml/preprocess/parser_raw.ml" +# 37039 "src/ocaml/preprocess/parser_raw.ml" + + in - in - # 2144 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 36063 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 213 "" +# 37045 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 219 "" ( x :: xs ) -# 36069 "src/ocaml/preprocess/parser_raw.ml" - in +# 37051 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.signature_item list list)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -36081,9 +37064,9 @@ module Tables = struct let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in let _endpos = _startpos in let _v : (Parsetree.structure_item list list) = -# 211 "" +# 216 "" ( [] ) -# 36087 "src/ocaml/preprocess/parser_raw.ml" +# 37070 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -36112,45 +37095,47 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_xs_ in - let _v : (Parsetree.structure_item list list) = let x = - let _1 = - let ys = - let items = + let _v = + let x = + let _1 = + let ys = + let items = # 1366 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 36122 "src/ocaml/preprocess/parser_raw.ml" - in - +# 37106 "src/ocaml/preprocess/parser_raw.ml" + in + # 1842 "src/ocaml/preprocess/parser_raw.mly" ( items ) -# 36127 "src/ocaml/preprocess/parser_raw.ml" - - in - let xs = - let _startpos = _startpos__1_ in - +# 37111 "src/ocaml/preprocess/parser_raw.ml" + + in + let xs = + let _startpos = _startpos__1_ in + # 1302 "src/ocaml/preprocess/parser_raw.mly" ( text_str _startpos ) -# 36135 "src/ocaml/preprocess/parser_raw.ml" +# 37119 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 267 "" +# 278 "" ( xs @ ys ) -# 36141 "src/ocaml/preprocess/parser_raw.ml" +# 37125 "src/ocaml/preprocess/parser_raw.ml" + + in - in - # 1858 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 36147 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 213 "" +# 37131 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 219 "" ( x :: xs ) -# 36153 "src/ocaml/preprocess/parser_raw.ml" - in +# 37137 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.structure_item list list)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -36192,80 +37177,82 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_xs_ in - let _v : (Parsetree.structure_item list list) = let x = - let _1 = - let ys = - let (_endpos__1_, _1) = (_endpos__1_inlined1_, _1_inlined1) in - let items = - let x = - let _1 = + let _v = + let x = + let _1 = + let ys = + let (_endpos__1_, _1) = (_endpos__1_inlined1_, _1_inlined1) in + let items = + let x = let _1 = - let attrs = -# 5388 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let attrs = +# 5399 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 36207 "src/ocaml/preprocess/parser_raw.ml" - in - +# 37193 "src/ocaml/preprocess/parser_raw.ml" + in + # 1849 "src/ocaml/preprocess/parser_raw.mly" ( mkstrexp e attrs ) -# 36212 "src/ocaml/preprocess/parser_raw.ml" +# 37198 "src/ocaml/preprocess/parser_raw.ml" + + in + let _startpos__1_ = _startpos_e_ in + let _startpos = _startpos__1_ in + +# 1300 "src/ocaml/preprocess/parser_raw.mly" + ( text_str _startpos @ [_1] ) +# 37206 "src/ocaml/preprocess/parser_raw.ml" in let _startpos__1_ = _startpos_e_ in + let _endpos = _endpos__1_ in let _startpos = _startpos__1_ in -# 1300 "src/ocaml/preprocess/parser_raw.mly" - ( text_str _startpos @ [_1] ) -# 36220 "src/ocaml/preprocess/parser_raw.ml" - - in - let _startpos__1_ = _startpos_e_ in - let _endpos = _endpos__1_ in - let _startpos = _startpos__1_ in - # 1319 "src/ocaml/preprocess/parser_raw.mly" ( mark_rhs_docs _startpos _endpos; _1 ) -# 36230 "src/ocaml/preprocess/parser_raw.ml" +# 37216 "src/ocaml/preprocess/parser_raw.ml" + + in - in - # 1368 "src/ocaml/preprocess/parser_raw.mly" ( x ) -# 36236 "src/ocaml/preprocess/parser_raw.ml" +# 37222 "src/ocaml/preprocess/parser_raw.ml" + + in - in - # 1842 "src/ocaml/preprocess/parser_raw.mly" ( items ) -# 36242 "src/ocaml/preprocess/parser_raw.ml" - - in - let xs = - let _startpos = _startpos__1_ in - +# 37228 "src/ocaml/preprocess/parser_raw.ml" + + in + let xs = + let _startpos = _startpos__1_ in + # 1302 "src/ocaml/preprocess/parser_raw.mly" ( text_str _startpos ) -# 36250 "src/ocaml/preprocess/parser_raw.ml" +# 37236 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 267 "" +# 278 "" ( xs @ ys ) -# 36256 "src/ocaml/preprocess/parser_raw.ml" +# 37242 "src/ocaml/preprocess/parser_raw.ml" + + in - in - # 1858 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 36262 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 213 "" +# 37248 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 219 "" ( x :: xs ) -# 36268 "src/ocaml/preprocess/parser_raw.ml" - in +# 37254 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.structure_item list list)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -36293,26 +37280,28 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_xs_ in - let _v : (Parsetree.structure_item list list) = let x = - let _1 = - let _startpos = _startpos__1_ in - + let _v = + let x = + let _1 = + let _startpos = _startpos__1_ in + # 1300 "src/ocaml/preprocess/parser_raw.mly" ( text_str _startpos @ [_1] ) -# 36303 "src/ocaml/preprocess/parser_raw.ml" +# 37291 "src/ocaml/preprocess/parser_raw.ml" + + in - in - # 1858 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 36309 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 213 "" +# 37297 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 219 "" ( x :: xs ) -# 36315 "src/ocaml/preprocess/parser_raw.ml" - in +# 37303 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.structure_item list list)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -36327,9 +37316,9 @@ module Tables = struct let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in let _endpos = _startpos in let _v : (Parsetree.class_type_field list list) = -# 211 "" +# 216 "" ( [] ) -# 36333 "src/ocaml/preprocess/parser_raw.ml" +# 37322 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -36358,19 +37347,21 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_xs_ in - let _v : (Parsetree.class_type_field list list) = let x = - let _startpos = _startpos__1_ in - + let _v = + let x = + let _startpos = _startpos__1_ in + # 1314 "src/ocaml/preprocess/parser_raw.mly" ( text_csig _startpos @ [_1] ) -# 36367 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 213 "" +# 37357 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 219 "" ( x :: xs ) -# 36373 "src/ocaml/preprocess/parser_raw.ml" - in +# 37363 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.class_type_field list list)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -36385,9 +37376,9 @@ module Tables = struct let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in let _endpos = _startpos in let _v : (Parsetree.class_field list list) = -# 211 "" +# 216 "" ( [] ) -# 36391 "src/ocaml/preprocess/parser_raw.ml" +# 37382 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -36416,19 +37407,21 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_xs_ in - let _v : (Parsetree.class_field list list) = let x = - let _startpos = _startpos__1_ in - + let _v = + let x = + let _startpos = _startpos__1_ in + # 1312 "src/ocaml/preprocess/parser_raw.mly" ( text_cstr _startpos @ [_1] ) -# 36425 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 213 "" +# 37417 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 219 "" ( x :: xs ) -# 36431 "src/ocaml/preprocess/parser_raw.ml" - in +# 37423 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.class_field list list)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -36443,9 +37436,9 @@ module Tables = struct let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in let _endpos = _startpos in let _v : (Parsetree.structure_item list list) = -# 211 "" +# 216 "" ( [] ) -# 36449 "src/ocaml/preprocess/parser_raw.ml" +# 37442 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -36474,19 +37467,21 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_xs_ in - let _v : (Parsetree.structure_item list list) = let x = - let _startpos = _startpos__1_ in - + let _v = + let x = + let _startpos = _startpos__1_ in + # 1300 "src/ocaml/preprocess/parser_raw.mly" ( text_str _startpos @ [_1] ) -# 36483 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 213 "" +# 37477 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 219 "" ( x :: xs ) -# 36489 "src/ocaml/preprocess/parser_raw.ml" - in +# 37483 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.structure_item list list)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -36501,9 +37496,9 @@ module Tables = struct let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in let _endpos = _startpos in let _v : (Parsetree.toplevel_phrase list list) = -# 211 "" +# 216 "" ( [] ) -# 36507 "src/ocaml/preprocess/parser_raw.ml" +# 37502 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -36532,37 +37527,39 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_xs_ in - let _v : (Parsetree.toplevel_phrase list list) = let x = - let _1 = - let x = - let _1 = + let _v = + let x = + let _1 = + let x = + let _1 = # 1366 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 36542 "src/ocaml/preprocess/parser_raw.ml" - in - +# 37538 "src/ocaml/preprocess/parser_raw.ml" + in + # 1618 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 36547 "src/ocaml/preprocess/parser_raw.ml" +# 37543 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 183 "" +# 188 "" ( x ) -# 36553 "src/ocaml/preprocess/parser_raw.ml" +# 37549 "src/ocaml/preprocess/parser_raw.ml" + + in - in - # 1630 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 36559 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 213 "" +# 37555 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 219 "" ( x :: xs ) -# 36565 "src/ocaml/preprocess/parser_raw.ml" - in +# 37561 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.toplevel_phrase list list)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -36604,68 +37601,70 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_xs_ in - let _v : (Parsetree.toplevel_phrase list list) = let x = - let _1 = - let x = - let _1 = _1_inlined1 in - let _1 = - let x = - let _1 = + let _v = + let x = + let _1 = + let x = + let _1 = _1_inlined1 in + let _1 = + let x = let _1 = - let attrs = -# 5388 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let attrs = +# 5399 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 36619 "src/ocaml/preprocess/parser_raw.ml" - in - +# 37617 "src/ocaml/preprocess/parser_raw.ml" + in + # 1849 "src/ocaml/preprocess/parser_raw.mly" ( mkstrexp e attrs ) -# 36624 "src/ocaml/preprocess/parser_raw.ml" +# 37622 "src/ocaml/preprocess/parser_raw.ml" + + in - in - # 1310 "src/ocaml/preprocess/parser_raw.mly" ( Ptop_def [_1] ) -# 36630 "src/ocaml/preprocess/parser_raw.ml" +# 37628 "src/ocaml/preprocess/parser_raw.ml" + + in + let _startpos__1_ = _startpos_e_ in + let _startpos = _startpos__1_ in - in - let _startpos__1_ = _startpos_e_ in - let _startpos = _startpos__1_ in - # 1308 "src/ocaml/preprocess/parser_raw.mly" ( text_def _startpos @ [_1] ) -# 36638 "src/ocaml/preprocess/parser_raw.ml" +# 37636 "src/ocaml/preprocess/parser_raw.ml" + + in - in - # 1368 "src/ocaml/preprocess/parser_raw.mly" ( x ) -# 36644 "src/ocaml/preprocess/parser_raw.ml" +# 37642 "src/ocaml/preprocess/parser_raw.ml" + + in - in - # 1618 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 36650 "src/ocaml/preprocess/parser_raw.ml" +# 37648 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 183 "" +# 188 "" ( x ) -# 36656 "src/ocaml/preprocess/parser_raw.ml" +# 37654 "src/ocaml/preprocess/parser_raw.ml" + + in - in - # 1630 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 36662 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 213 "" +# 37660 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 219 "" ( x :: xs ) -# 36668 "src/ocaml/preprocess/parser_raw.ml" - in +# 37666 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.toplevel_phrase list list)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -36693,31 +37692,33 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_xs_ in - let _v : (Parsetree.toplevel_phrase list list) = let x = - let _1 = - let _1 = + let _v = + let x = + let _1 = + let _1 = # 1310 "src/ocaml/preprocess/parser_raw.mly" ( Ptop_def [_1] ) -# 36702 "src/ocaml/preprocess/parser_raw.ml" - in - let _startpos = _startpos__1_ in - +# 37702 "src/ocaml/preprocess/parser_raw.ml" + in + let _startpos = _startpos__1_ in + # 1308 "src/ocaml/preprocess/parser_raw.mly" ( text_def _startpos @ [_1] ) -# 36708 "src/ocaml/preprocess/parser_raw.ml" +# 37708 "src/ocaml/preprocess/parser_raw.ml" + + in - in - # 1630 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 36714 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 213 "" +# 37714 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 219 "" ( x :: xs ) -# 36720 "src/ocaml/preprocess/parser_raw.ml" - in +# 37720 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.toplevel_phrase list list)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -36745,36 +37746,38 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_xs_ in - let _v : (Parsetree.toplevel_phrase list list) = let x = - let _1 = + let _v = + let x = let _1 = - let _endpos = _endpos__1_ in - let _startpos = _startpos__1_ in - + let _1 = + let _endpos = _endpos__1_ in + let _startpos = _startpos__1_ in + # 1319 "src/ocaml/preprocess/parser_raw.mly" ( mark_rhs_docs _startpos _endpos; _1 ) -# 36758 "src/ocaml/preprocess/parser_raw.ml" +# 37760 "src/ocaml/preprocess/parser_raw.ml" + + in + let _startpos = _startpos__1_ in - in - let _startpos = _startpos__1_ in - # 1308 "src/ocaml/preprocess/parser_raw.mly" ( text_def _startpos @ [_1] ) -# 36765 "src/ocaml/preprocess/parser_raw.ml" +# 37767 "src/ocaml/preprocess/parser_raw.ml" + + in - in - # 1630 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 36771 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 213 "" +# 37773 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 219 "" ( x :: xs ) -# 36777 "src/ocaml/preprocess/parser_raw.ml" - in +# 37779 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.toplevel_phrase list list)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -36809,28 +37812,29 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_opat_ in - let _v : ((Longident.t Location.loc * Parsetree.pattern) list * unit option) = let _2 = -# 124 "" + let _v = + let _2 = +# 123 "" ( None ) -# 36816 "src/ocaml/preprocess/parser_raw.ml" - in - let x = - let label = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 37820 "src/ocaml/preprocess/parser_raw.ml" + in + let x = + let label = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 36826 "src/ocaml/preprocess/parser_raw.ml" +# 37830 "src/ocaml/preprocess/parser_raw.ml" + + in + let _startpos_label_ = _startpos__1_ in + let _endpos = _endpos_opat_ in + let _symbolstartpos = _startpos_label_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _startpos_label_ = _startpos__1_ in - let _endpos = _endpos_opat_ in - let _symbolstartpos = _startpos_label_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 3956 "src/ocaml/preprocess/parser_raw.mly" +# 3967 "src/ocaml/preprocess/parser_raw.mly" ( let constraint_loc, label, pat = match opat with | None -> @@ -36844,14 +37848,15 @@ module Tables = struct in label, mkpat_with_modes ~loc:constraint_loc ~modes:[] ~pat ~cty:octy ) -# 36848 "src/ocaml/preprocess/parser_raw.ml" - - in - +# 37852 "src/ocaml/preprocess/parser_raw.ml" + + in + ( # 1555 "src/ocaml/preprocess/parser_raw.mly" ( [x], None ) -# 36854 "src/ocaml/preprocess/parser_raw.ml" - in +# 37858 "src/ocaml/preprocess/parser_raw.ml" + : ((Longident.t Location.loc * Parsetree.pattern) list * unit option)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -36893,28 +37898,29 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_x_ in - let _v : ((Longident.t Location.loc * Parsetree.pattern) list * unit option) = let _2 = + let _v = + let _2 = # 126 "" ( Some x ) -# 36900 "src/ocaml/preprocess/parser_raw.ml" - in - let x = - let label = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 37906 "src/ocaml/preprocess/parser_raw.ml" + in + let x = + let label = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 36910 "src/ocaml/preprocess/parser_raw.ml" +# 37916 "src/ocaml/preprocess/parser_raw.ml" + + in + let _startpos_label_ = _startpos__1_ in + let _endpos = _endpos_opat_ in + let _symbolstartpos = _startpos_label_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _startpos_label_ = _startpos__1_ in - let _endpos = _endpos_opat_ in - let _symbolstartpos = _startpos_label_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 3956 "src/ocaml/preprocess/parser_raw.mly" +# 3967 "src/ocaml/preprocess/parser_raw.mly" ( let constraint_loc, label, pat = match opat with | None -> @@ -36928,14 +37934,15 @@ module Tables = struct in label, mkpat_with_modes ~loc:constraint_loc ~modes:[] ~pat ~cty:octy ) -# 36932 "src/ocaml/preprocess/parser_raw.ml" - - in - +# 37938 "src/ocaml/preprocess/parser_raw.ml" + + in + ( # 1555 "src/ocaml/preprocess/parser_raw.mly" ( [x], None ) -# 36938 "src/ocaml/preprocess/parser_raw.ml" - in +# 37944 "src/ocaml/preprocess/parser_raw.ml" + : ((Longident.t Location.loc * Parsetree.pattern) list * unit option)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -36991,23 +37998,24 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in - let _v : ((Longident.t Location.loc * Parsetree.pattern) list * unit option) = let x = - let label = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let _v = + let x = + let label = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 37003 "src/ocaml/preprocess/parser_raw.ml" +# 38011 "src/ocaml/preprocess/parser_raw.ml" + + in + let _startpos_label_ = _startpos__1_ in + let _endpos = _endpos_opat_ in + let _symbolstartpos = _startpos_label_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _startpos_label_ = _startpos__1_ in - let _endpos = _endpos_opat_ in - let _symbolstartpos = _startpos_label_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 3956 "src/ocaml/preprocess/parser_raw.mly" +# 3967 "src/ocaml/preprocess/parser_raw.mly" ( let constraint_loc, label, pat = match opat with | None -> @@ -37021,14 +38029,15 @@ module Tables = struct in label, mkpat_with_modes ~loc:constraint_loc ~modes:[] ~pat ~cty:octy ) -# 37025 "src/ocaml/preprocess/parser_raw.ml" - - in - +# 38033 "src/ocaml/preprocess/parser_raw.ml" + + in + ( # 1557 "src/ocaml/preprocess/parser_raw.mly" ( [x], Some y ) -# 37031 "src/ocaml/preprocess/parser_raw.ml" - in +# 38039 "src/ocaml/preprocess/parser_raw.ml" + : ((Longident.t Location.loc * Parsetree.pattern) list * unit option)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -37077,23 +38086,24 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_tail_ in - let _v : ((Longident.t Location.loc * Parsetree.pattern) list * unit option) = let x = - let label = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let _v = + let x = + let label = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 37089 "src/ocaml/preprocess/parser_raw.ml" +# 38099 "src/ocaml/preprocess/parser_raw.ml" + + in + let _startpos_label_ = _startpos__1_ in + let _endpos = _endpos_opat_ in + let _symbolstartpos = _startpos_label_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _startpos_label_ = _startpos__1_ in - let _endpos = _endpos_opat_ in - let _symbolstartpos = _startpos_label_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 3956 "src/ocaml/preprocess/parser_raw.mly" +# 3967 "src/ocaml/preprocess/parser_raw.mly" ( let constraint_loc, label, pat = match opat with | None -> @@ -37107,15 +38117,16 @@ module Tables = struct in label, mkpat_with_modes ~loc:constraint_loc ~modes:[] ~pat ~cty:octy ) -# 37111 "src/ocaml/preprocess/parser_raw.ml" - - in - +# 38121 "src/ocaml/preprocess/parser_raw.ml" + + in + ( # 1561 "src/ocaml/preprocess/parser_raw.mly" ( let xs, y = tail in x :: xs, y ) -# 37118 "src/ocaml/preprocess/parser_raw.ml" - in +# 38128 "src/ocaml/preprocess/parser_raw.ml" + : ((Longident.t Location.loc * Parsetree.pattern) list * unit option)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -37151,9 +38162,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : (Parsetree.case) = -# 3503 "src/ocaml/preprocess/parser_raw.mly" +# 3514 "src/ocaml/preprocess/parser_raw.mly" ( Exp.case _1 (merloc _endpos__2_ _3) ) -# 37157 "src/ocaml/preprocess/parser_raw.ml" +# 38168 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -37204,9 +38215,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__5_ in let _v : (Parsetree.case) = -# 3505 "src/ocaml/preprocess/parser_raw.mly" +# 3516 "src/ocaml/preprocess/parser_raw.mly" ( Exp.case _1 ~guard:(merloc _endpos__2_ _3) (merloc _endpos__4_ _5) ) -# 37210 "src/ocaml/preprocess/parser_raw.ml" +# 38221 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -37242,13 +38253,15 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in - let _v : (Parsetree.case) = let _loc__3_ = (_startpos__3_, _endpos__3_) in - -# 3507 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _loc__3_ = (_startpos__3_, _endpos__3_) in + ( +# 3518 "src/ocaml/preprocess/parser_raw.mly" ( Exp.case _1 (merloc _endpos__2_ (Exp.unreachable ~loc:(make_loc _loc__3_) ())) ) -# 37251 "src/ocaml/preprocess/parser_raw.ml" - in +# 38263 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.case)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -37310,58 +38323,59 @@ module Tables = struct let _1 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 37314 "src/ocaml/preprocess/parser_raw.ml" +# 38327 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_tail_ in - let _v : (Parsetree.object_field list * Asttypes.closed_flag) = let head = - let _6 = - let _1 = _1_inlined3 in - -# 5392 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let head = + let _6 = + let _1 = _1_inlined3 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 37325 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__6_ = _endpos__1_inlined3_ in - let _4 = - let _1 = _1_inlined2 in - -# 5392 "src/ocaml/preprocess/parser_raw.mly" +# 38339 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__6_ = _endpos__1_inlined3_ in + let _4 = + let _1 = _1_inlined2 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 37334 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__4_ = _endpos__1_inlined2_ in - let _3 = - let _1 = _1_inlined1 in - -# 4489 "src/ocaml/preprocess/parser_raw.mly" +# 38348 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__4_ = _endpos__1_inlined2_ in + let _3 = + let _1 = _1_inlined1 in + +# 4500 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 37343 "src/ocaml/preprocess/parser_raw.ml" - - in - let _1 = - let _1 = -# 4999 "src/ocaml/preprocess/parser_raw.mly" +# 38357 "src/ocaml/preprocess/parser_raw.ml" + + in + let _1 = + let _1 = +# 5010 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 37350 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 38364 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 37358 "src/ocaml/preprocess/parser_raw.ml" +# 38372 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__6_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos = _endpos__6_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 4984 "src/ocaml/preprocess/parser_raw.mly" +# 4995 "src/ocaml/preprocess/parser_raw.mly" ( let info = match rhs_info _endpos__4_ with | Some _ as info_before_semi -> info_before_semi @@ -37369,14 +38383,15 @@ module Tables = struct in let attrs = add_info_attrs info (_4 @ _6) in Of.tag ~loc:(make_loc _sloc) ~attrs _1 _3 ) -# 37373 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4965 "src/ocaml/preprocess/parser_raw.mly" +# 38387 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4976 "src/ocaml/preprocess/parser_raw.mly" ( let (f, c) = tail in (head :: f, c) ) -# 37379 "src/ocaml/preprocess/parser_raw.ml" - in +# 38393 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.object_field list * Asttypes.closed_flag)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -37411,21 +38426,23 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_ty_ in let _endpos = _endpos_tail_ in - let _v : (Parsetree.object_field list * Asttypes.closed_flag) = let head = - let _endpos = _endpos_ty_ in - let _symbolstartpos = _startpos_ty_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 4995 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let head = + let _endpos = _endpos_ty_ in + let _symbolstartpos = _startpos_ty_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 5006 "src/ocaml/preprocess/parser_raw.mly" ( Of.inherit_ ~loc:(make_loc _sloc) ty ) -# 37422 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4965 "src/ocaml/preprocess/parser_raw.mly" +# 38438 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4976 "src/ocaml/preprocess/parser_raw.mly" ( let (f, c) = tail in (head :: f, c) ) -# 37428 "src/ocaml/preprocess/parser_raw.ml" - in +# 38444 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.object_field list * Asttypes.closed_flag)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -37480,58 +38497,59 @@ module Tables = struct let _1 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 37484 "src/ocaml/preprocess/parser_raw.ml" +# 38501 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined3_ in - let _v : (Parsetree.object_field list * Asttypes.closed_flag) = let head = - let _6 = - let _1 = _1_inlined3 in - -# 5392 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let head = + let _6 = + let _1 = _1_inlined3 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 37495 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__6_ = _endpos__1_inlined3_ in - let _4 = - let _1 = _1_inlined2 in - -# 5392 "src/ocaml/preprocess/parser_raw.mly" +# 38513 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__6_ = _endpos__1_inlined3_ in + let _4 = + let _1 = _1_inlined2 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 37504 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__4_ = _endpos__1_inlined2_ in - let _3 = - let _1 = _1_inlined1 in - -# 4489 "src/ocaml/preprocess/parser_raw.mly" +# 38522 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__4_ = _endpos__1_inlined2_ in + let _3 = + let _1 = _1_inlined1 in + +# 4500 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 37513 "src/ocaml/preprocess/parser_raw.ml" - - in - let _1 = - let _1 = -# 4999 "src/ocaml/preprocess/parser_raw.mly" +# 38531 "src/ocaml/preprocess/parser_raw.ml" + + in + let _1 = + let _1 = +# 5010 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 37520 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 38538 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 37528 "src/ocaml/preprocess/parser_raw.ml" +# 38546 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__6_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos = _endpos__6_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 4984 "src/ocaml/preprocess/parser_raw.mly" +# 4995 "src/ocaml/preprocess/parser_raw.mly" ( let info = match rhs_info _endpos__4_ with | Some _ as info_before_semi -> info_before_semi @@ -37539,14 +38557,15 @@ module Tables = struct in let attrs = add_info_attrs info (_4 @ _6) in Of.tag ~loc:(make_loc _sloc) ~attrs _1 _3 ) -# 37543 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4968 "src/ocaml/preprocess/parser_raw.mly" +# 38561 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4979 "src/ocaml/preprocess/parser_raw.mly" ( [head], Closed ) -# 37549 "src/ocaml/preprocess/parser_raw.ml" - in +# 38567 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.object_field list * Asttypes.closed_flag)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -37574,21 +38593,23 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_ty_ in let _endpos = _endpos__2_ in - let _v : (Parsetree.object_field list * Asttypes.closed_flag) = let head = - let _endpos = _endpos_ty_ in - let _symbolstartpos = _startpos_ty_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 4995 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let head = + let _endpos = _endpos_ty_ in + let _symbolstartpos = _startpos_ty_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 5006 "src/ocaml/preprocess/parser_raw.mly" ( Of.inherit_ ~loc:(make_loc _sloc) ty ) -# 37585 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4968 "src/ocaml/preprocess/parser_raw.mly" +# 38605 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4979 "src/ocaml/preprocess/parser_raw.mly" ( [head], Closed ) -# 37591 "src/ocaml/preprocess/parser_raw.ml" - in +# 38611 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.object_field list * Asttypes.closed_flag)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -37629,60 +38650,62 @@ module Tables = struct let _1 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 37633 "src/ocaml/preprocess/parser_raw.ml" +# 38654 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined2_ in - let _v : (Parsetree.object_field list * Asttypes.closed_flag) = let head = - let _4 = - let _1 = _1_inlined2 in - -# 5392 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let head = + let _4 = + let _1 = _1_inlined2 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 37644 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__4_ = _endpos__1_inlined2_ in - let _3 = - let _1 = _1_inlined1 in - -# 4489 "src/ocaml/preprocess/parser_raw.mly" +# 38666 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__4_ = _endpos__1_inlined2_ in + let _3 = + let _1 = _1_inlined1 in + +# 4500 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 37653 "src/ocaml/preprocess/parser_raw.ml" - - in - let _1 = - let _1 = -# 4999 "src/ocaml/preprocess/parser_raw.mly" +# 38675 "src/ocaml/preprocess/parser_raw.ml" + + in + let _1 = + let _1 = +# 5010 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 37660 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 38682 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 37668 "src/ocaml/preprocess/parser_raw.ml" +# 38690 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__4_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos = _endpos__4_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 4977 "src/ocaml/preprocess/parser_raw.mly" +# 4988 "src/ocaml/preprocess/parser_raw.mly" ( let info = symbol_info _endpos in let attrs = add_info_attrs info _4 in Of.tag ~loc:(make_loc _sloc) ~attrs _1 _3 ) -# 37679 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4971 "src/ocaml/preprocess/parser_raw.mly" +# 38701 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4982 "src/ocaml/preprocess/parser_raw.mly" ( [head], Closed ) -# 37685 "src/ocaml/preprocess/parser_raw.ml" - in +# 38707 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.object_field list * Asttypes.closed_flag)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -37703,21 +38726,23 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_ty_ in let _endpos = _endpos_ty_ in - let _v : (Parsetree.object_field list * Asttypes.closed_flag) = let head = - let _endpos = _endpos_ty_ in - let _symbolstartpos = _startpos_ty_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 4995 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let head = + let _endpos = _endpos_ty_ in + let _symbolstartpos = _startpos_ty_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 5006 "src/ocaml/preprocess/parser_raw.mly" ( Of.inherit_ ~loc:(make_loc _sloc) ty ) -# 37714 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4971 "src/ocaml/preprocess/parser_raw.mly" +# 38738 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4982 "src/ocaml/preprocess/parser_raw.mly" ( [head], Closed ) -# 37720 "src/ocaml/preprocess/parser_raw.ml" - in +# 38744 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.object_field list * Asttypes.closed_flag)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -37739,9 +38764,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Parsetree.object_field list * Asttypes.closed_flag) = -# 4973 "src/ocaml/preprocess/parser_raw.mly" +# 4984 "src/ocaml/preprocess/parser_raw.mly" ( [], Open ) -# 37745 "src/ocaml/preprocess/parser_raw.ml" +# 38770 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -37788,53 +38813,55 @@ module Tables = struct let _1_inlined1 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 37792 "src/ocaml/preprocess/parser_raw.ml" +# 38817 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined1 in let private_ : (Asttypes.private_flag) = Obj.magic private_ in let _1 : (Parsetree.attributes) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined2_ in - let _v : ((string Location.loc * Asttypes.private_flag * Parsetree.class_field_kind) * - Parsetree.attributes) = let ty = - let _1 = _1_inlined2 in - -# 4485 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let ty = + let _1 = _1_inlined2 in + +# 4496 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 37805 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in - let _1 = -# 4999 "src/ocaml/preprocess/parser_raw.mly" +# 38830 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in + let _1 = +# 5010 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 37813 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 38838 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 37821 "src/ocaml/preprocess/parser_raw.ml" - - in - let attrs = -# 5392 "src/ocaml/preprocess/parser_raw.mly" +# 38846 "src/ocaml/preprocess/parser_raw.ml" + + in + let attrs = +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 37827 "src/ocaml/preprocess/parser_raw.ml" - in - let _1 = -# 5290 "src/ocaml/preprocess/parser_raw.mly" +# 38852 "src/ocaml/preprocess/parser_raw.ml" + in + let _1 = +# 5301 "src/ocaml/preprocess/parser_raw.mly" ( Fresh ) -# 37832 "src/ocaml/preprocess/parser_raw.ml" - in - +# 38857 "src/ocaml/preprocess/parser_raw.ml" + in + ( # 2509 "src/ocaml/preprocess/parser_raw.mly" ( (label, private_, Cfk_virtual ty), attrs ) -# 37837 "src/ocaml/preprocess/parser_raw.ml" - in +# 38862 "src/ocaml/preprocess/parser_raw.ml" + : ((string Location.loc * Asttypes.private_flag * Parsetree.class_field_kind) * + Parsetree.attributes)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -37873,56 +38900,58 @@ module Tables = struct let _1_inlined1 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 37877 "src/ocaml/preprocess/parser_raw.ml" +# 38904 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined1 in let _3 : (Asttypes.private_flag) = Obj.magic _3 in let _1 : (Parsetree.attributes) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined2_ in - let _v : ((string Location.loc * Asttypes.private_flag * Parsetree.class_field_kind) * - Parsetree.attributes) = let _5 = - let _1 = _1_inlined2 in - -# 3481 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _5 = + let _1 = _1_inlined2 in + +# 3492 "src/ocaml/preprocess/parser_raw.mly" (_1 []) -# 37890 "src/ocaml/preprocess/parser_raw.ml" - - in - let _4 = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in - let _1 = -# 4999 "src/ocaml/preprocess/parser_raw.mly" +# 38917 "src/ocaml/preprocess/parser_raw.ml" + + in + let _4 = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in + let _1 = +# 5010 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 37898 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 38925 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 37906 "src/ocaml/preprocess/parser_raw.ml" - - in - let _2 = -# 5392 "src/ocaml/preprocess/parser_raw.mly" +# 38933 "src/ocaml/preprocess/parser_raw.ml" + + in + let _2 = +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 37912 "src/ocaml/preprocess/parser_raw.ml" - in - let _1 = -# 5293 "src/ocaml/preprocess/parser_raw.mly" +# 38939 "src/ocaml/preprocess/parser_raw.ml" + in + let _1 = +# 5304 "src/ocaml/preprocess/parser_raw.mly" ( Fresh ) -# 37917 "src/ocaml/preprocess/parser_raw.ml" - in - +# 38944 "src/ocaml/preprocess/parser_raw.ml" + in + ( # 2511 "src/ocaml/preprocess/parser_raw.mly" ( let e = _5 in let loc = Location.(e.pexp_loc.loc_start, e.pexp_loc.loc_end) in (_4, _3, Cfk_concrete (_1, ghexp ~loc (Pexp_poly (e, None)))), _2 ) -# 37925 "src/ocaml/preprocess/parser_raw.ml" - in +# 38952 "src/ocaml/preprocess/parser_raw.ml" + : ((string Location.loc * Asttypes.private_flag * Parsetree.class_field_kind) * + Parsetree.attributes)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -37967,7 +38996,7 @@ module Tables = struct let _1_inlined2 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 37971 "src/ocaml/preprocess/parser_raw.ml" +# 39000 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined2 in let _3 : (Asttypes.private_flag) = Obj.magic _3 in let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in @@ -37975,52 +39004,54 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined3_ in - let _v : ((string Location.loc * Asttypes.private_flag * Parsetree.class_field_kind) * - Parsetree.attributes) = let _5 = - let _1 = _1_inlined3 in - -# 3481 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _5 = + let _1 = _1_inlined3 in + +# 3492 "src/ocaml/preprocess/parser_raw.mly" (_1 []) -# 37985 "src/ocaml/preprocess/parser_raw.ml" - - in - let _4 = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in - let _1 = -# 4999 "src/ocaml/preprocess/parser_raw.mly" +# 39014 "src/ocaml/preprocess/parser_raw.ml" + + in + let _4 = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in + let _1 = +# 5010 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 37993 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 39022 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 38001 "src/ocaml/preprocess/parser_raw.ml" - - in - let _2 = - let _1 = _1_inlined1 in - -# 5392 "src/ocaml/preprocess/parser_raw.mly" +# 39030 "src/ocaml/preprocess/parser_raw.ml" + + in + let _2 = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 38009 "src/ocaml/preprocess/parser_raw.ml" - - in - let _1 = -# 5294 "src/ocaml/preprocess/parser_raw.mly" +# 39038 "src/ocaml/preprocess/parser_raw.ml" + + in + let _1 = +# 5305 "src/ocaml/preprocess/parser_raw.mly" ( Override ) -# 38015 "src/ocaml/preprocess/parser_raw.ml" - in - +# 39044 "src/ocaml/preprocess/parser_raw.ml" + in + ( # 2511 "src/ocaml/preprocess/parser_raw.mly" ( let e = _5 in let loc = Location.(e.pexp_loc.loc_start, e.pexp_loc.loc_end) in (_4, _3, Cfk_concrete (_1, ghexp ~loc (Pexp_poly (e, None)))), _2 ) -# 38023 "src/ocaml/preprocess/parser_raw.ml" - in +# 39052 "src/ocaml/preprocess/parser_raw.ml" + : ((string Location.loc * Asttypes.private_flag * Parsetree.class_field_kind) * + Parsetree.attributes)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -38080,57 +39111,59 @@ module Tables = struct let _1_inlined1 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 38084 "src/ocaml/preprocess/parser_raw.ml" +# 39115 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined1 in let _3 : (Asttypes.private_flag) = Obj.magic _3 in let _1 : (Parsetree.attributes) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__8_ in - let _v : ((string Location.loc * Asttypes.private_flag * Parsetree.class_field_kind) * - Parsetree.attributes) = let _6 = - let _1 = _1_inlined2 in - -# 4485 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _6 = + let _1 = _1_inlined2 in + +# 4496 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 38097 "src/ocaml/preprocess/parser_raw.ml" - - in - let _startpos__6_ = _startpos__1_inlined2_ in - let _4 = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in - let _1 = -# 4999 "src/ocaml/preprocess/parser_raw.mly" +# 39128 "src/ocaml/preprocess/parser_raw.ml" + + in + let _startpos__6_ = _startpos__1_inlined2_ in + let _4 = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in + let _1 = +# 5010 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 38106 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 39137 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 38114 "src/ocaml/preprocess/parser_raw.ml" - - in - let _2 = -# 5392 "src/ocaml/preprocess/parser_raw.mly" +# 39145 "src/ocaml/preprocess/parser_raw.ml" + + in + let _2 = +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 38120 "src/ocaml/preprocess/parser_raw.ml" - in - let _1 = -# 5293 "src/ocaml/preprocess/parser_raw.mly" +# 39151 "src/ocaml/preprocess/parser_raw.ml" + in + let _1 = +# 5304 "src/ocaml/preprocess/parser_raw.mly" ( Fresh ) -# 38125 "src/ocaml/preprocess/parser_raw.ml" - in - +# 39156 "src/ocaml/preprocess/parser_raw.ml" + in + ( # 2517 "src/ocaml/preprocess/parser_raw.mly" ( let poly_exp = let loc = (_startpos__6_, _endpos__8_) in ghexp ~loc (Pexp_poly(_8, Some _6)) in (_4, _3, Cfk_concrete (_1, poly_exp)), _2 ) -# 38133 "src/ocaml/preprocess/parser_raw.ml" - in +# 39164 "src/ocaml/preprocess/parser_raw.ml" + : ((string Location.loc * Asttypes.private_flag * Parsetree.class_field_kind) * + Parsetree.attributes)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -38196,7 +39229,7 @@ module Tables = struct let _1_inlined2 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 38200 "src/ocaml/preprocess/parser_raw.ml" +# 39233 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined2 in let _3 : (Asttypes.private_flag) = Obj.magic _3 in let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in @@ -38204,53 +39237,55 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__8_ in - let _v : ((string Location.loc * Asttypes.private_flag * Parsetree.class_field_kind) * - Parsetree.attributes) = let _6 = - let _1 = _1_inlined3 in - -# 4485 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _6 = + let _1 = _1_inlined3 in + +# 4496 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 38214 "src/ocaml/preprocess/parser_raw.ml" - - in - let _startpos__6_ = _startpos__1_inlined3_ in - let _4 = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in - let _1 = -# 4999 "src/ocaml/preprocess/parser_raw.mly" +# 39247 "src/ocaml/preprocess/parser_raw.ml" + + in + let _startpos__6_ = _startpos__1_inlined3_ in + let _4 = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in + let _1 = +# 5010 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 38223 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 39256 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 38231 "src/ocaml/preprocess/parser_raw.ml" - - in - let _2 = - let _1 = _1_inlined1 in - -# 5392 "src/ocaml/preprocess/parser_raw.mly" +# 39264 "src/ocaml/preprocess/parser_raw.ml" + + in + let _2 = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 38239 "src/ocaml/preprocess/parser_raw.ml" - - in - let _1 = -# 5294 "src/ocaml/preprocess/parser_raw.mly" +# 39272 "src/ocaml/preprocess/parser_raw.ml" + + in + let _1 = +# 5305 "src/ocaml/preprocess/parser_raw.mly" ( Override ) -# 38245 "src/ocaml/preprocess/parser_raw.ml" - in - +# 39278 "src/ocaml/preprocess/parser_raw.ml" + in + ( # 2517 "src/ocaml/preprocess/parser_raw.mly" ( let poly_exp = let loc = (_startpos__6_, _endpos__8_) in ghexp ~loc (Pexp_poly(_8, Some _6)) in (_4, _3, Cfk_concrete (_1, poly_exp)), _2 ) -# 38253 "src/ocaml/preprocess/parser_raw.ml" - in +# 39286 "src/ocaml/preprocess/parser_raw.ml" + : ((string Location.loc * Asttypes.private_flag * Parsetree.class_field_kind) * + Parsetree.attributes)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -38331,56 +39366,56 @@ module Tables = struct let _1_inlined1 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 38335 "src/ocaml/preprocess/parser_raw.ml" +# 39370 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined1 in let _3 : (Asttypes.private_flag) = Obj.magic _3 in let _1 : (Parsetree.attributes) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__11_ in - let _v : ((string Location.loc * Asttypes.private_flag * Parsetree.class_field_kind) * - Parsetree.attributes) = let _4 = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in - let _1 = -# 4999 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _4 = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in + let _1 = +# 5010 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 38348 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 39383 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 38356 "src/ocaml/preprocess/parser_raw.ml" - - in - let _startpos__4_ = _startpos__1_inlined1_ in - let _2 = -# 5392 "src/ocaml/preprocess/parser_raw.mly" +# 39391 "src/ocaml/preprocess/parser_raw.ml" + + in + let _startpos__4_ = _startpos__1_inlined1_ in + let _2 = +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 38363 "src/ocaml/preprocess/parser_raw.ml" - in - let (_endpos__2_, _startpos__2_) = (_endpos__1_, _startpos__1_) in - let _1 = -# 5293 "src/ocaml/preprocess/parser_raw.mly" +# 39398 "src/ocaml/preprocess/parser_raw.ml" + in + let (_endpos__2_, _startpos__2_) = (_endpos__1_, _startpos__1_) in + let _1 = +# 5304 "src/ocaml/preprocess/parser_raw.mly" ( Fresh ) -# 38369 "src/ocaml/preprocess/parser_raw.ml" - in - let (_endpos__1_, _startpos__1_) = (_endpos__0_, _endpos__0_) in - let _endpos = _endpos__11_ in - let _symbolstartpos = if _startpos__1_ != _endpos__1_ then - _startpos__1_ - else - if _startpos__2_ != _endpos__2_ then - _startpos__2_ +# 39404 "src/ocaml/preprocess/parser_raw.ml" + in + let (_endpos__1_, _startpos__1_) = (_endpos__0_, _endpos__0_) in + let _endpos = _endpos__11_ in + let _symbolstartpos = if _startpos__1_ != _endpos__1_ then + _startpos__1_ else - if _startpos__3_ != _endpos__3_ then - _startpos__3_ + if _startpos__2_ != _endpos__2_ then + _startpos__2_ else - _startpos__4_ in - let _sloc = (_symbolstartpos, _endpos) in - + if _startpos__3_ != _endpos__3_ then + _startpos__3_ + else + _startpos__4_ in + let _sloc = (_symbolstartpos, _endpos) in + ( # 2523 "src/ocaml/preprocess/parser_raw.mly" ( let poly_exp_loc = (_startpos__7_, _endpos__11_) in let poly_exp = @@ -38392,8 +39427,10 @@ module Tables = struct ghexp ~loc:poly_exp_loc (Pexp_poly(exp, Some poly)) in (_4, _3, Cfk_concrete (_1, poly_exp)), _2 ) -# 38396 "src/ocaml/preprocess/parser_raw.ml" - in +# 39431 "src/ocaml/preprocess/parser_raw.ml" + : ((string Location.loc * Asttypes.private_flag * Parsetree.class_field_kind) * + Parsetree.attributes)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -38480,7 +39517,7 @@ module Tables = struct let _1_inlined2 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 38484 "src/ocaml/preprocess/parser_raw.ml" +# 39521 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined2 in let _3 : (Asttypes.private_flag) = Obj.magic _3 in let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in @@ -38488,51 +39525,51 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__11_ in - let _v : ((string Location.loc * Asttypes.private_flag * Parsetree.class_field_kind) * - Parsetree.attributes) = let _4 = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in - let _1 = -# 4999 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _4 = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in + let _1 = +# 5010 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 38498 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 39535 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 38506 "src/ocaml/preprocess/parser_raw.ml" - - in - let _startpos__4_ = _startpos__1_inlined2_ in - let _2 = - let _1 = _1_inlined1 in - -# 5392 "src/ocaml/preprocess/parser_raw.mly" +# 39543 "src/ocaml/preprocess/parser_raw.ml" + + in + let _startpos__4_ = _startpos__1_inlined2_ in + let _2 = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 38515 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__2_, _startpos__2_) = (_endpos__1_inlined1_, _startpos__1_inlined1_) in - let _1 = -# 5294 "src/ocaml/preprocess/parser_raw.mly" +# 39552 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__2_, _startpos__2_) = (_endpos__1_inlined1_, _startpos__1_inlined1_) in + let _1 = +# 5305 "src/ocaml/preprocess/parser_raw.mly" ( Override ) -# 38522 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__11_ in - let _symbolstartpos = if _startpos__1_ != _endpos__1_ then - _startpos__1_ - else - if _startpos__2_ != _endpos__2_ then - _startpos__2_ +# 39559 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__11_ in + let _symbolstartpos = if _startpos__1_ != _endpos__1_ then + _startpos__1_ else - if _startpos__3_ != _endpos__3_ then - _startpos__3_ + if _startpos__2_ != _endpos__2_ then + _startpos__2_ else - _startpos__4_ in - let _sloc = (_symbolstartpos, _endpos) in - + if _startpos__3_ != _endpos__3_ then + _startpos__3_ + else + _startpos__4_ in + let _sloc = (_symbolstartpos, _endpos) in + ( # 2523 "src/ocaml/preprocess/parser_raw.mly" ( let poly_exp_loc = (_startpos__7_, _endpos__11_) in let poly_exp = @@ -38544,8 +39581,10 @@ module Tables = struct ghexp ~loc:poly_exp_loc (Pexp_poly(exp, Some poly)) in (_4, _3, Cfk_concrete (_1, poly_exp)), _2 ) -# 38548 "src/ocaml/preprocess/parser_raw.ml" - in +# 39585 "src/ocaml/preprocess/parser_raw.ml" + : ((string Location.loc * Asttypes.private_flag * Parsetree.class_field_kind) * + Parsetree.attributes)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -38565,15 +39604,15 @@ module Tables = struct let _1 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 38569 "src/ocaml/preprocess/parser_raw.ml" +# 39608 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Longident.t) = -# 5122 "src/ocaml/preprocess/parser_raw.mly" +# 5133 "src/ocaml/preprocess/parser_raw.mly" ( Lident _1 ) -# 38577 "src/ocaml/preprocess/parser_raw.ml" +# 39616 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -38606,7 +39645,7 @@ module Tables = struct let _3 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 38610 "src/ocaml/preprocess/parser_raw.ml" +# 39649 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _3 in let _2 : unit = Obj.magic _2 in let _1 : (Longident.t) = Obj.magic _1 in @@ -38614,9 +39653,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : (Longident.t) = -# 5123 "src/ocaml/preprocess/parser_raw.mly" +# 5134 "src/ocaml/preprocess/parser_raw.mly" ( Ldot(_1,_3) ) -# 38620 "src/ocaml/preprocess/parser_raw.ml" +# 39659 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -38637,15 +39676,15 @@ module Tables = struct let _1 : ( # 1155 "src/ocaml/preprocess/parser_raw.mly" (string) -# 38641 "src/ocaml/preprocess/parser_raw.ml" +# 39680 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Longident.t) = -# 5122 "src/ocaml/preprocess/parser_raw.mly" +# 5133 "src/ocaml/preprocess/parser_raw.mly" ( Lident _1 ) -# 38649 "src/ocaml/preprocess/parser_raw.ml" +# 39688 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -38678,7 +39717,7 @@ module Tables = struct let _3 : ( # 1155 "src/ocaml/preprocess/parser_raw.mly" (string) -# 38682 "src/ocaml/preprocess/parser_raw.ml" +# 39721 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _3 in let _2 : unit = Obj.magic _2 in let _1 : (Longident.t) = Obj.magic _1 in @@ -38686,9 +39725,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : (Longident.t) = -# 5123 "src/ocaml/preprocess/parser_raw.mly" +# 5134 "src/ocaml/preprocess/parser_raw.mly" ( Ldot(_1,_3) ) -# 38692 "src/ocaml/preprocess/parser_raw.ml" +# 39731 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -38710,16 +39749,18 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v : (Longident.t) = let _1 = -# 5172 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _1 = +# 5183 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 38717 "src/ocaml/preprocess/parser_raw.ml" - in - -# 5122 "src/ocaml/preprocess/parser_raw.mly" +# 39757 "src/ocaml/preprocess/parser_raw.ml" + in + ( +# 5133 "src/ocaml/preprocess/parser_raw.mly" ( Lident _1 ) -# 38722 "src/ocaml/preprocess/parser_raw.ml" - in +# 39762 "src/ocaml/preprocess/parser_raw.ml" + : (Longident.t)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -38754,23 +39795,25 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in - let _v : (Longident.t) = let _1 = - let _1 = -# 5102 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _1 = + let _1 = +# 5113 "src/ocaml/preprocess/parser_raw.mly" ( "::" ) -# 38762 "src/ocaml/preprocess/parser_raw.ml" - in - -# 5172 "src/ocaml/preprocess/parser_raw.mly" +# 39804 "src/ocaml/preprocess/parser_raw.ml" + in + +# 5183 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 38767 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 5122 "src/ocaml/preprocess/parser_raw.mly" +# 39809 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 5133 "src/ocaml/preprocess/parser_raw.mly" ( Lident _1 ) -# 38773 "src/ocaml/preprocess/parser_raw.ml" - in +# 39815 "src/ocaml/preprocess/parser_raw.ml" + : (Longident.t)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -38791,16 +39834,18 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v : (Longident.t) = let _1 = -# 5172 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _1 = +# 5183 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 38798 "src/ocaml/preprocess/parser_raw.ml" - in - -# 5122 "src/ocaml/preprocess/parser_raw.mly" +# 39842 "src/ocaml/preprocess/parser_raw.ml" + in + ( +# 5133 "src/ocaml/preprocess/parser_raw.mly" ( Lident _1 ) -# 38803 "src/ocaml/preprocess/parser_raw.ml" - in +# 39847 "src/ocaml/preprocess/parser_raw.ml" + : (Longident.t)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -38835,19 +39880,21 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined1_ in - let _v : (Longident.t) = let _3 = - let _1 = _1_inlined1 in - -# 5172 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _3 = + let _1 = _1_inlined1 in + +# 5183 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 38844 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 5123 "src/ocaml/preprocess/parser_raw.mly" +# 39890 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 5134 "src/ocaml/preprocess/parser_raw.mly" ( Ldot(_1,_3) ) -# 38850 "src/ocaml/preprocess/parser_raw.ml" - in +# 39896 "src/ocaml/preprocess/parser_raw.ml" + : (Longident.t)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -38896,23 +39943,25 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in - let _v : (Longident.t) = let _3 = - let _1 = -# 5102 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _3 = + let _1 = +# 5113 "src/ocaml/preprocess/parser_raw.mly" ( "::" ) -# 38904 "src/ocaml/preprocess/parser_raw.ml" - in - -# 5172 "src/ocaml/preprocess/parser_raw.mly" +# 39952 "src/ocaml/preprocess/parser_raw.ml" + in + +# 5183 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 38909 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 5123 "src/ocaml/preprocess/parser_raw.mly" +# 39957 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 5134 "src/ocaml/preprocess/parser_raw.mly" ( Ldot(_1,_3) ) -# 38915 "src/ocaml/preprocess/parser_raw.ml" - in +# 39963 "src/ocaml/preprocess/parser_raw.ml" + : (Longident.t)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -38947,19 +39996,21 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined1_ in - let _v : (Longident.t) = let _3 = - let _1 = _1_inlined1 in - -# 5172 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _3 = + let _1 = _1_inlined1 in + +# 5183 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 38956 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 5123 "src/ocaml/preprocess/parser_raw.mly" +# 40006 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 5134 "src/ocaml/preprocess/parser_raw.mly" ( Ldot(_1,_3) ) -# 38962 "src/ocaml/preprocess/parser_raw.ml" - in +# 40012 "src/ocaml/preprocess/parser_raw.ml" + : (Longident.t)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -38981,9 +40032,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Longident.t) = -# 5122 "src/ocaml/preprocess/parser_raw.mly" +# 5133 "src/ocaml/preprocess/parser_raw.mly" ( Lident _1 ) -# 38987 "src/ocaml/preprocess/parser_raw.ml" +# 40038 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -39020,9 +40071,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : (Longident.t) = -# 5123 "src/ocaml/preprocess/parser_raw.mly" +# 5134 "src/ocaml/preprocess/parser_raw.mly" ( Ldot(_1,_3) ) -# 39026 "src/ocaml/preprocess/parser_raw.ml" +# 40077 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -39045,9 +40096,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Longident.t) = -# 5122 "src/ocaml/preprocess/parser_raw.mly" +# 5133 "src/ocaml/preprocess/parser_raw.mly" ( Lident _1 ) -# 39051 "src/ocaml/preprocess/parser_raw.ml" +# 40102 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -39084,9 +40135,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : (Longident.t) = -# 5123 "src/ocaml/preprocess/parser_raw.mly" +# 5134 "src/ocaml/preprocess/parser_raw.mly" ( Ldot(_1,_3) ) -# 39090 "src/ocaml/preprocess/parser_raw.ml" +# 40141 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -39109,9 +40160,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Longident.t) = -# 5122 "src/ocaml/preprocess/parser_raw.mly" +# 5133 "src/ocaml/preprocess/parser_raw.mly" ( Lident _1 ) -# 39115 "src/ocaml/preprocess/parser_raw.ml" +# 40166 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -39148,9 +40199,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : (Longident.t) = -# 5123 "src/ocaml/preprocess/parser_raw.mly" +# 5134 "src/ocaml/preprocess/parser_raw.mly" ( Ldot(_1,_3) ) -# 39154 "src/ocaml/preprocess/parser_raw.ml" +# 40205 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -39171,15 +40222,15 @@ module Tables = struct let _1 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 39175 "src/ocaml/preprocess/parser_raw.ml" +# 40226 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Longident.t) = -# 5122 "src/ocaml/preprocess/parser_raw.mly" +# 5133 "src/ocaml/preprocess/parser_raw.mly" ( Lident _1 ) -# 39183 "src/ocaml/preprocess/parser_raw.ml" +# 40234 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -39212,7 +40263,7 @@ module Tables = struct let _3 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 39216 "src/ocaml/preprocess/parser_raw.ml" +# 40267 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _3 in let _2 : unit = Obj.magic _2 in let _1 : (Longident.t) = Obj.magic _1 in @@ -39220,9 +40271,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : (Longident.t) = -# 5123 "src/ocaml/preprocess/parser_raw.mly" +# 5134 "src/ocaml/preprocess/parser_raw.mly" ( Ldot(_1,_3) ) -# 39226 "src/ocaml/preprocess/parser_raw.ml" +# 40277 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -39243,15 +40294,15 @@ module Tables = struct let _1 : ( # 1155 "src/ocaml/preprocess/parser_raw.mly" (string) -# 39247 "src/ocaml/preprocess/parser_raw.ml" +# 40298 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Longident.t) = -# 5122 "src/ocaml/preprocess/parser_raw.mly" +# 5133 "src/ocaml/preprocess/parser_raw.mly" ( Lident _1 ) -# 39255 "src/ocaml/preprocess/parser_raw.ml" +# 40306 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -39284,7 +40335,7 @@ module Tables = struct let _3 : ( # 1155 "src/ocaml/preprocess/parser_raw.mly" (string) -# 39288 "src/ocaml/preprocess/parser_raw.ml" +# 40339 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _3 in let _2 : unit = Obj.magic _2 in let _1 : (Longident.t) = Obj.magic _1 in @@ -39292,9 +40343,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : (Longident.t) = -# 5123 "src/ocaml/preprocess/parser_raw.mly" +# 5134 "src/ocaml/preprocess/parser_raw.mly" ( Ldot(_1,_3) ) -# 39298 "src/ocaml/preprocess/parser_raw.ml" +# 40349 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -39317,9 +40368,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Longident.t) = -# 5122 "src/ocaml/preprocess/parser_raw.mly" +# 5133 "src/ocaml/preprocess/parser_raw.mly" ( Lident _1 ) -# 39323 "src/ocaml/preprocess/parser_raw.ml" +# 40374 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -39356,9 +40407,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : (Longident.t) = -# 5123 "src/ocaml/preprocess/parser_raw.mly" +# 5134 "src/ocaml/preprocess/parser_raw.mly" ( Ldot(_1,_3) ) -# 39362 "src/ocaml/preprocess/parser_raw.ml" +# 40413 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -39381,9 +40432,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Longident.t) = -# 5148 "src/ocaml/preprocess/parser_raw.mly" +# 5159 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 39387 "src/ocaml/preprocess/parser_raw.ml" +# 40438 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -39426,14 +40477,16 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in - let _v : (Longident.t) = let _endpos = _endpos__4_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 5150 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _endpos = _endpos__4_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + ( +# 5161 "src/ocaml/preprocess/parser_raw.mly" ( lapply ~loc:_sloc _1 _3 ) -# 39436 "src/ocaml/preprocess/parser_raw.ml" - in +# 40488 "src/ocaml/preprocess/parser_raw.ml" + : (Longident.t)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -39455,9 +40508,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Longident.t) = -# 5145 "src/ocaml/preprocess/parser_raw.mly" +# 5156 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 39461 "src/ocaml/preprocess/parser_raw.ml" +# 40514 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -39489,7 +40542,7 @@ module Tables = struct let _v : (Parsetree.module_expr) = # 1926 "src/ocaml/preprocess/parser_raw.mly" ( me ) -# 39493 "src/ocaml/preprocess/parser_raw.ml" +# 40546 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -39532,34 +40585,36 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_me_ in - let _v : (Parsetree.module_expr) = let _1 = + let _v = let _1 = - let mm = -# 4688 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let mm = +# 4699 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 39541 "src/ocaml/preprocess/parser_raw.ml" - in - +# 40595 "src/ocaml/preprocess/parser_raw.ml" + in + # 1933 "src/ocaml/preprocess/parser_raw.mly" ( Pmod_constraint(me, Some mty, mm) ) -# 39546 "src/ocaml/preprocess/parser_raw.ml" +# 40600 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__1_ = _endpos_me_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos__1_ = _endpos_me_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1339 "src/ocaml/preprocess/parser_raw.mly" ( mkmod ~loc:_sloc _1 ) -# 39556 "src/ocaml/preprocess/parser_raw.ml" - - in - +# 40610 "src/ocaml/preprocess/parser_raw.ml" + + in + ( # 1939 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 39562 "src/ocaml/preprocess/parser_raw.ml" - in +# 40616 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.module_expr)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -39608,37 +40663,39 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_me_ in - let _v : (Parsetree.module_expr) = let _1 = + let _v = let _1 = - let mm = - let _1 = _1_inlined1 in - -# 4689 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let mm = + let _1 = _1_inlined1 in + +# 4700 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 39619 "src/ocaml/preprocess/parser_raw.ml" +# 40675 "src/ocaml/preprocess/parser_raw.ml" + + in - in - # 1933 "src/ocaml/preprocess/parser_raw.mly" ( Pmod_constraint(me, Some mty, mm) ) -# 39625 "src/ocaml/preprocess/parser_raw.ml" +# 40681 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__1_ = _endpos_me_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos__1_ = _endpos_me_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1339 "src/ocaml/preprocess/parser_raw.mly" ( mkmod ~loc:_sloc _1 ) -# 39635 "src/ocaml/preprocess/parser_raw.ml" - - in - +# 40691 "src/ocaml/preprocess/parser_raw.ml" + + in + ( # 1939 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 39641 "src/ocaml/preprocess/parser_raw.ml" - in +# 40697 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.module_expr)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -39673,27 +40730,29 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_mm_ in let _endpos = _endpos_me_ in - let _v : (Parsetree.module_expr) = let _1 = - let _1 = + let _v = + let _1 = + let _1 = # 1935 "src/ocaml/preprocess/parser_raw.mly" ( Pmod_constraint(me, None, mm) ) -# 39681 "src/ocaml/preprocess/parser_raw.ml" - in - let (_endpos__1_, _startpos__1_) = (_endpos_me_, _startpos_mm_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 40739 "src/ocaml/preprocess/parser_raw.ml" + in + let (_endpos__1_, _startpos__1_) = (_endpos_me_, _startpos_mm_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1339 "src/ocaml/preprocess/parser_raw.mly" ( mkmod ~loc:_sloc _1 ) -# 39690 "src/ocaml/preprocess/parser_raw.ml" - - in - +# 40748 "src/ocaml/preprocess/parser_raw.ml" + + in + ( # 1939 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 39696 "src/ocaml/preprocess/parser_raw.ml" - in +# 40754 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.module_expr)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -39721,28 +40780,30 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_arg_and_pos_ in let _endpos = _endpos_body_ in - let _v : (Parsetree.module_expr) = let _1 = - let _1 = + let _v = + let _1 = + let _1 = # 1937 "src/ocaml/preprocess/parser_raw.mly" ( let (_, arg) = arg_and_pos in Pmod_functor(arg, body) ) -# 39730 "src/ocaml/preprocess/parser_raw.ml" - in - let (_endpos__1_, _startpos__1_) = (_endpos_body_, _startpos_arg_and_pos_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 40790 "src/ocaml/preprocess/parser_raw.ml" + in + let (_endpos__1_, _startpos__1_) = (_endpos_body_, _startpos_arg_and_pos_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1339 "src/ocaml/preprocess/parser_raw.mly" ( mkmod ~loc:_sloc _1 ) -# 39739 "src/ocaml/preprocess/parser_raw.ml" - - in - +# 40799 "src/ocaml/preprocess/parser_raw.ml" + + in + ( # 1939 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 39745 "src/ocaml/preprocess/parser_raw.ml" - in +# 40805 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.module_expr)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -39780,7 +40841,7 @@ module Tables = struct let _v : (Parsetree.module_type * Parsetree.modalities) = # 2221 "src/ocaml/preprocess/parser_raw.mly" ( mty, mm ) -# 39784 "src/ocaml/preprocess/parser_raw.ml" +# 40845 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -39809,29 +40870,31 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_arg_and_pos_ in let _endpos = _endpos_body_ in - let _v : (Parsetree.module_type * Parsetree.modalities) = let _1 = - let _1 = + let _v = + let _1 = + let _1 = # 2228 "src/ocaml/preprocess/parser_raw.mly" ( let (_, arg) = arg_and_pos in let (ret, mret) = body in Pmty_functor(arg, ret, mret) ) -# 39819 "src/ocaml/preprocess/parser_raw.ml" - in - let (_endpos__1_, _startpos__1_) = (_endpos_body_, _startpos_arg_and_pos_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 40881 "src/ocaml/preprocess/parser_raw.ml" + in + let (_endpos__1_, _startpos__1_) = (_endpos_body_, _startpos_arg_and_pos_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1341 "src/ocaml/preprocess/parser_raw.mly" ( mkmty ~loc:_sloc _1 ) -# 39828 "src/ocaml/preprocess/parser_raw.ml" - - in - +# 40890 "src/ocaml/preprocess/parser_raw.ml" + + in + ( # 2232 "src/ocaml/preprocess/parser_raw.mly" ( _1, [] ) -# 39834 "src/ocaml/preprocess/parser_raw.ml" - in +# 40896 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.module_type * Parsetree.modalities)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -39859,16 +40922,18 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_mty_ in - let _v : (Parsetree.module_type * Parsetree.modes) = let mm = -# 4688 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let mm = +# 4699 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 39866 "src/ocaml/preprocess/parser_raw.ml" - in - +# 40930 "src/ocaml/preprocess/parser_raw.ml" + in + ( # 2221 "src/ocaml/preprocess/parser_raw.mly" ( mty, mm ) -# 39871 "src/ocaml/preprocess/parser_raw.ml" - in +# 40935 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.module_type * Parsetree.modes)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -39903,19 +40968,21 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined1_ in - let _v : (Parsetree.module_type * Parsetree.modes) = let mm = - let _1 = _1_inlined1 in - -# 4689 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let mm = + let _1 = _1_inlined1 in + +# 4700 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 39912 "src/ocaml/preprocess/parser_raw.ml" - - in - +# 40978 "src/ocaml/preprocess/parser_raw.ml" + + in + ( # 2221 "src/ocaml/preprocess/parser_raw.mly" ( mty, mm ) -# 39918 "src/ocaml/preprocess/parser_raw.ml" - in +# 40984 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.module_type * Parsetree.modes)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -39943,29 +41010,31 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_arg_and_pos_ in let _endpos = _endpos_body_ in - let _v : (Parsetree.module_type * Parsetree.modes) = let _1 = - let _1 = + let _v = + let _1 = + let _1 = # 2228 "src/ocaml/preprocess/parser_raw.mly" ( let (_, arg) = arg_and_pos in let (ret, mret) = body in Pmty_functor(arg, ret, mret) ) -# 39953 "src/ocaml/preprocess/parser_raw.ml" - in - let (_endpos__1_, _startpos__1_) = (_endpos_body_, _startpos_arg_and_pos_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 41021 "src/ocaml/preprocess/parser_raw.ml" + in + let (_endpos__1_, _startpos__1_) = (_endpos_body_, _startpos_arg_and_pos_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1341 "src/ocaml/preprocess/parser_raw.mly" ( mkmty ~loc:_sloc _1 ) -# 39962 "src/ocaml/preprocess/parser_raw.ml" - - in - +# 41030 "src/ocaml/preprocess/parser_raw.ml" + + in + ( # 2232 "src/ocaml/preprocess/parser_raw.mly" ( _1, [] ) -# 39968 "src/ocaml/preprocess/parser_raw.ml" - in +# 41036 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.module_type * Parsetree.modes)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -40007,22 +41076,24 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in - let _v : (Parsetree.module_expr) = let attrs = - let _1 = _1_inlined1 in - -# 5392 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let attrs = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 40016 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__4_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 41086 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__4_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + ( # 1735 "src/ocaml/preprocess/parser_raw.mly" ( mkmod ~loc:_sloc ~attrs (Pmod_structure s) ) -# 40025 "src/ocaml/preprocess/parser_raw.ml" - in +# 41095 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.module_expr)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -40071,26 +41142,28 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_me_ in - let _v : (Parsetree.module_expr) = let attrs = - let _1 = _1_inlined1 in - -# 5392 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let attrs = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 40080 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos_me_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 41152 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos_me_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + ( # 1745 "src/ocaml/preprocess/parser_raw.mly" ( wrap_mod_attrs ~loc:_sloc attrs ( List.fold_left (fun acc (startpos, arg) -> mkmod ~loc:(startpos, _endpos) (Pmod_functor (arg, acc)) ) me args ) ) -# 40093 "src/ocaml/preprocess/parser_raw.ml" - in +# 41165 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.module_expr)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -40114,7 +41187,7 @@ module Tables = struct let _v : (Parsetree.module_expr) = # 1751 "src/ocaml/preprocess/parser_raw.mly" ( me ) -# 40118 "src/ocaml/preprocess/parser_raw.ml" +# 41191 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -40143,10 +41216,11 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_me_ in let _endpos = _endpos_attr_ in - let _v : (Parsetree.module_expr) = let _endpos = _endpos_attr_ in - let _symbolstartpos = _startpos_me_ in - let _sloc = (_symbolstartpos, _endpos) in - + let _v = + let _endpos = _endpos_attr_ in + let _symbolstartpos = _startpos_me_ in + let _sloc = (_symbolstartpos, _endpos) in + ( # 1753 "src/ocaml/preprocess/parser_raw.mly" ( match attr with | { attr_name = { txt = "jane.non_erasable.instances"; loc = _ }; @@ -40154,8 +41228,9 @@ module Tables = struct } -> mkmod ~loc:_sloc (pmod_instance me) | attr -> Mod.attr me attr ) -# 40158 "src/ocaml/preprocess/parser_raw.ml" - in +# 41232 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.module_expr)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -40176,38 +41251,40 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v : (Parsetree.module_expr) = let _1 = + let _v = let _1 = - let x = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let _1 = + let x = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 40189 "src/ocaml/preprocess/parser_raw.ml" +# 41265 "src/ocaml/preprocess/parser_raw.ml" + + in - in - # 1762 "src/ocaml/preprocess/parser_raw.mly" ( Pmod_ident x ) -# 40195 "src/ocaml/preprocess/parser_raw.ml" +# 41271 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1339 "src/ocaml/preprocess/parser_raw.mly" ( mkmod ~loc:_sloc _1 ) -# 40204 "src/ocaml/preprocess/parser_raw.ml" - - in - +# 41280 "src/ocaml/preprocess/parser_raw.ml" + + in + ( # 1777 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 40210 "src/ocaml/preprocess/parser_raw.ml" - in +# 41286 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.module_expr)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -40235,27 +41312,29 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_me1_ in let _endpos = _endpos_me2_ in - let _v : (Parsetree.module_expr) = let _1 = - let _1 = + let _v = + let _1 = + let _1 = # 1765 "src/ocaml/preprocess/parser_raw.mly" ( Pmod_apply(me1, me2) ) -# 40243 "src/ocaml/preprocess/parser_raw.ml" - in - let (_endpos__1_, _startpos__1_) = (_endpos_me2_, _startpos_me1_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 41321 "src/ocaml/preprocess/parser_raw.ml" + in + let (_endpos__1_, _startpos__1_) = (_endpos_me2_, _startpos_me1_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1339 "src/ocaml/preprocess/parser_raw.mly" ( mkmod ~loc:_sloc _1 ) -# 40252 "src/ocaml/preprocess/parser_raw.ml" - - in - +# 41330 "src/ocaml/preprocess/parser_raw.ml" + + in + ( # 1777 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 40258 "src/ocaml/preprocess/parser_raw.ml" - in +# 41336 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.module_expr)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -40290,27 +41369,29 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_me_ in let _endpos = _endpos__3_ in - let _v : (Parsetree.module_expr) = let _1 = - let _1 = + let _v = + let _1 = + let _1 = # 1768 "src/ocaml/preprocess/parser_raw.mly" ( Pmod_apply_unit me ) -# 40298 "src/ocaml/preprocess/parser_raw.ml" - in - let (_endpos__1_, _startpos__1_) = (_endpos__3_, _startpos_me_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 41378 "src/ocaml/preprocess/parser_raw.ml" + in + let (_endpos__1_, _startpos__1_) = (_endpos__3_, _startpos_me_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1339 "src/ocaml/preprocess/parser_raw.mly" ( mkmod ~loc:_sloc _1 ) -# 40307 "src/ocaml/preprocess/parser_raw.ml" - - in - +# 41387 "src/ocaml/preprocess/parser_raw.ml" + + in + ( # 1777 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 40313 "src/ocaml/preprocess/parser_raw.ml" - in +# 41393 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.module_expr)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -40331,27 +41412,29 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_ex_ in let _endpos = _endpos_ex_ in - let _v : (Parsetree.module_expr) = let _1 = - let _1 = + let _v = + let _1 = + let _1 = # 1771 "src/ocaml/preprocess/parser_raw.mly" ( Pmod_extension ex ) -# 40339 "src/ocaml/preprocess/parser_raw.ml" - in - let (_endpos__1_, _startpos__1_) = (_endpos_ex_, _startpos_ex_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 41421 "src/ocaml/preprocess/parser_raw.ml" + in + let (_endpos__1_, _startpos__1_) = (_endpos_ex_, _startpos_ex_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1339 "src/ocaml/preprocess/parser_raw.mly" ( mkmod ~loc:_sloc _1 ) -# 40348 "src/ocaml/preprocess/parser_raw.ml" - - in - +# 41430 "src/ocaml/preprocess/parser_raw.ml" + + in + ( # 1777 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 40354 "src/ocaml/preprocess/parser_raw.ml" - in +# 41436 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.module_expr)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -40372,32 +41455,34 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v : (Parsetree.module_expr) = let _1 = + let _v = let _1 = - let _endpos = _endpos__1_ in - let _startpos = _startpos__1_ in - let _loc = (_startpos, _endpos) in - + let _1 = + let _endpos = _endpos__1_ in + let _startpos = _startpos__1_ in + let _loc = (_startpos, _endpos) in + # 1774 "src/ocaml/preprocess/parser_raw.mly" ( let id = mkrhs Ast_helper.hole_txt _loc in Pmod_extension (id, PStr []) ) -# 40385 "src/ocaml/preprocess/parser_raw.ml" +# 41469 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1339 "src/ocaml/preprocess/parser_raw.mly" ( mkmod ~loc:_sloc _1 ) -# 40394 "src/ocaml/preprocess/parser_raw.ml" - - in - +# 41478 "src/ocaml/preprocess/parser_raw.ml" + + in + ( # 1777 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 40400 "src/ocaml/preprocess/parser_raw.ml" - in +# 41484 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.module_expr)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -40417,7 +41502,7 @@ module Tables = struct let x : ( # 1155 "src/ocaml/preprocess/parser_raw.mly" (string) -# 40421 "src/ocaml/preprocess/parser_raw.ml" +# 41506 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic x in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_x_ in @@ -40425,7 +41510,7 @@ module Tables = struct let _v : (string option) = # 1714 "src/ocaml/preprocess/parser_raw.mly" ( Some x ) -# 40429 "src/ocaml/preprocess/parser_raw.ml" +# 41514 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -40450,7 +41535,7 @@ module Tables = struct let _v : (string option) = # 1717 "src/ocaml/preprocess/parser_raw.mly" ( None ) -# 40454 "src/ocaml/preprocess/parser_raw.ml" +# 41539 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -40472,21 +41557,23 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v : (string option Location.loc * Parsetree.modalities) = let _1 = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let _v = + let _1 = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 40483 "src/ocaml/preprocess/parser_raw.ml" - - in - +# 41569 "src/ocaml/preprocess/parser_raw.ml" + + in + ( # 1721 "src/ocaml/preprocess/parser_raw.mly" ( _1, [] ) -# 40489 "src/ocaml/preprocess/parser_raw.ml" - in +# 41575 "src/ocaml/preprocess/parser_raw.ml" + : (string option Location.loc * Parsetree.modalities)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -40528,22 +41615,24 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in - let _v : (string option Location.loc * Parsetree.modalities) = let _2 = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let _v = + let _2 = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 40540 "src/ocaml/preprocess/parser_raw.ml" - - in - +# 41628 "src/ocaml/preprocess/parser_raw.ml" + + in + ( # 1722 "src/ocaml/preprocess/parser_raw.mly" ( _2, _3 ) -# 40546 "src/ocaml/preprocess/parser_raw.ml" - in +# 41634 "src/ocaml/preprocess/parser_raw.ml" + : (string option Location.loc * Parsetree.modalities)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -40564,21 +41653,23 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v : (Ocaml_parsing.Ast_helper.str_opt * Parsetree.modes) = let _1 = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let _v = + let _1 = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 40575 "src/ocaml/preprocess/parser_raw.ml" - - in - +# 41665 "src/ocaml/preprocess/parser_raw.ml" + + in + ( # 1721 "src/ocaml/preprocess/parser_raw.mly" ( _1, [] ) -# 40581 "src/ocaml/preprocess/parser_raw.ml" - in +# 41671 "src/ocaml/preprocess/parser_raw.ml" + : (Ocaml_parsing.Ast_helper.str_opt * Parsetree.modes)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -40620,22 +41711,24 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in - let _v : (Ocaml_parsing.Ast_helper.str_opt * Parsetree.modes) = let _2 = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let _v = + let _2 = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 40632 "src/ocaml/preprocess/parser_raw.ml" - - in - +# 41724 "src/ocaml/preprocess/parser_raw.ml" + + in + ( # 1722 "src/ocaml/preprocess/parser_raw.mly" ( _2, _3 ) -# 40638 "src/ocaml/preprocess/parser_raw.ml" - in +# 41730 "src/ocaml/preprocess/parser_raw.ml" + : (Ocaml_parsing.Ast_helper.str_opt * Parsetree.modes)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -40694,7 +41787,7 @@ module Tables = struct let _1_inlined2 : ( # 1155 "src/ocaml/preprocess/parser_raw.mly" (string) -# 40698 "src/ocaml/preprocess/parser_raw.ml" +# 41791 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined2 in let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in let ext : (string Location.loc option) = Obj.magic ext in @@ -40702,49 +41795,50 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined4_ in - let _v : (Parsetree.module_substitution * string Location.loc option) = let attrs2 = - let _1 = _1_inlined4 in - -# 5388 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let attrs2 = + let _1 = _1_inlined4 in + +# 5399 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 40711 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_attrs2_ = _endpos__1_inlined4_ in - let body = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined3_, _startpos__1_inlined3_, _1_inlined3) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 41805 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_attrs2_ = _endpos__1_inlined4_ in + let body = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined3_, _startpos__1_inlined3_, _1_inlined3) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 40723 "src/ocaml/preprocess/parser_raw.ml" - - in - let uid = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 41817 "src/ocaml/preprocess/parser_raw.ml" + + in + let uid = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 40734 "src/ocaml/preprocess/parser_raw.ml" - - in - let attrs1 = - let _1 = _1_inlined1 in - -# 5392 "src/ocaml/preprocess/parser_raw.mly" +# 41828 "src/ocaml/preprocess/parser_raw.ml" + + in + let attrs1 = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 40742 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos_attrs2_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 41836 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos_attrs2_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + ( # 2265 "src/ocaml/preprocess/parser_raw.mly" ( let attrs = attrs1 @ attrs2 in @@ -40752,8 +41846,9 @@ module Tables = struct let docs = symbol_docs _sloc in Ms.mk uid body ~attrs ~loc ~docs, ext ) -# 40756 "src/ocaml/preprocess/parser_raw.ml" - in +# 41850 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.module_substitution * string Location.loc option)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -40795,22 +41890,24 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in - let _v : (Parsetree.module_type) = let attrs = - let _1 = _1_inlined1 in - -# 5392 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let attrs = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 40804 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__4_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 41900 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__4_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + ( # 2076 "src/ocaml/preprocess/parser_raw.mly" ( mkmty ~loc:_sloc ~attrs (Pmty_signature s) ) -# 40813 "src/ocaml/preprocess/parser_raw.ml" - in +# 41909 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.module_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -40859,24 +41956,25 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_mty_ in - let _v : (Parsetree.module_type) = let mm = -# 4671 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let mm = +# 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 40866 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos_mm_ = _endpos_mty_ in - let attrs = - let _1 = _1_inlined1 in - -# 5392 "src/ocaml/preprocess/parser_raw.mly" +# 41964 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos_mm_ = _endpos_mty_ in + let attrs = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 40874 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos_mm_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 41972 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos_mm_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + ( # 2088 "src/ocaml/preprocess/parser_raw.mly" ( wrap_mty_attrs ~loc:_sloc attrs ( (* return modes go to the innermost functor arrow; @@ -40890,8 +41988,9 @@ module Tables = struct | [] -> mty | _ :: _ -> assert false ) ) -# 40894 "src/ocaml/preprocess/parser_raw.ml" - in +# 41992 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.module_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -40947,27 +42046,28 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined2_ in - let _v : (Parsetree.module_type) = let mm = - let _1 = _1_inlined2 in - -# 4672 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let mm = + let _1 = _1_inlined2 in + +# 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 40956 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_mm_ = _endpos__1_inlined2_ in - let attrs = - let _1 = _1_inlined1 in - -# 5392 "src/ocaml/preprocess/parser_raw.mly" +# 42056 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_mm_ = _endpos__1_inlined2_ in + let attrs = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 40965 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos_mm_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 42065 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos_mm_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + ( # 2088 "src/ocaml/preprocess/parser_raw.mly" ( wrap_mty_attrs ~loc:_sloc attrs ( (* return modes go to the innermost functor arrow; @@ -40981,8 +42081,9 @@ module Tables = struct | [] -> mty | _ :: _ -> assert false ) ) -# 40985 "src/ocaml/preprocess/parser_raw.ml" - in +# 42085 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.module_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -41031,22 +42132,24 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__5_ in - let _v : (Parsetree.module_type) = let _4 = - let _1 = _1_inlined1 in - -# 5392 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _4 = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 41040 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__5_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 42142 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__5_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + ( # 2101 "src/ocaml/preprocess/parser_raw.mly" ( mkmty ~loc:_sloc ~attrs:_4 (Pmty_typeof _5) ) -# 41049 "src/ocaml/preprocess/parser_raw.ml" - in +# 42151 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.module_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -41084,7 +42187,7 @@ module Tables = struct let _v : (Parsetree.module_type) = # 2103 "src/ocaml/preprocess/parser_raw.mly" ( _2 ) -# 41088 "src/ocaml/preprocess/parser_raw.ml" +# 42191 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -41116,7 +42219,7 @@ module Tables = struct let _v : (Parsetree.module_type) = # 2109 "src/ocaml/preprocess/parser_raw.mly" ( Mty.attr _1 _2 ) -# 41120 "src/ocaml/preprocess/parser_raw.ml" +# 42223 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -41138,38 +42241,40 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v : (Parsetree.module_type) = let _1 = + let _v = let _1 = let _1 = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let _1 = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 41151 "src/ocaml/preprocess/parser_raw.ml" +# 42255 "src/ocaml/preprocess/parser_raw.ml" + + in - in - # 2112 "src/ocaml/preprocess/parser_raw.mly" ( Pmty_ident _1 ) -# 41157 "src/ocaml/preprocess/parser_raw.ml" +# 42261 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1341 "src/ocaml/preprocess/parser_raw.mly" ( mkmty ~loc:_sloc _1 ) -# 41166 "src/ocaml/preprocess/parser_raw.ml" - - in - +# 42270 "src/ocaml/preprocess/parser_raw.ml" + + in + ( # 2127 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 41172 "src/ocaml/preprocess/parser_raw.ml" - in +# 42276 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.module_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -41211,34 +42316,36 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in - let _v : (Parsetree.module_type) = let _1 = + let _v = let _1 = - let _5 = -# 4671 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let _5 = +# 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 41220 "src/ocaml/preprocess/parser_raw.ml" - in - +# 42326 "src/ocaml/preprocess/parser_raw.ml" + in + # 2114 "src/ocaml/preprocess/parser_raw.mly" ( Pmty_functor(Unit, _4, _5) ) -# 41225 "src/ocaml/preprocess/parser_raw.ml" +# 42331 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__1_ = _endpos__4_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos__1_ = _endpos__4_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1341 "src/ocaml/preprocess/parser_raw.mly" ( mkmty ~loc:_sloc _1 ) -# 41235 "src/ocaml/preprocess/parser_raw.ml" - - in - +# 42341 "src/ocaml/preprocess/parser_raw.ml" + + in + ( # 2127 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 41241 "src/ocaml/preprocess/parser_raw.ml" - in +# 42347 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.module_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -41287,37 +42394,39 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined1_ in - let _v : (Parsetree.module_type) = let _1 = + let _v = let _1 = - let _5 = - let _1 = _1_inlined1 in - -# 4672 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let _5 = + let _1 = _1_inlined1 in + +# 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 41298 "src/ocaml/preprocess/parser_raw.ml" +# 42406 "src/ocaml/preprocess/parser_raw.ml" + + in - in - # 2114 "src/ocaml/preprocess/parser_raw.mly" ( Pmty_functor(Unit, _4, _5) ) -# 41304 "src/ocaml/preprocess/parser_raw.ml" +# 42412 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__1_ = _endpos__1_inlined1_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos__1_ = _endpos__1_inlined1_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1341 "src/ocaml/preprocess/parser_raw.mly" ( mkmty ~loc:_sloc _1 ) -# 41314 "src/ocaml/preprocess/parser_raw.ml" - - in - +# 42422 "src/ocaml/preprocess/parser_raw.ml" + + in + ( # 2127 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 41320 "src/ocaml/preprocess/parser_raw.ml" - in +# 42428 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.module_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -41352,39 +42461,41 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in - let _v : (Parsetree.module_type) = let _1 = + let _v = let _1 = - let m2 = -# 4671 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let m2 = +# 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 41361 "src/ocaml/preprocess/parser_raw.ml" - in - let m1 = -# 4671 "src/ocaml/preprocess/parser_raw.mly" +# 42471 "src/ocaml/preprocess/parser_raw.ml" + in + let m1 = +# 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 41366 "src/ocaml/preprocess/parser_raw.ml" - in - +# 42476 "src/ocaml/preprocess/parser_raw.ml" + in + # 2117 "src/ocaml/preprocess/parser_raw.mly" ( Pmty_functor(Named (mknoloc None, _1, m1), _4, m2) ) -# 41371 "src/ocaml/preprocess/parser_raw.ml" +# 42481 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__1_ = _endpos__4_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos__1_ = _endpos__4_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1341 "src/ocaml/preprocess/parser_raw.mly" ( mkmty ~loc:_sloc _1 ) -# 41381 "src/ocaml/preprocess/parser_raw.ml" - - in - +# 42491 "src/ocaml/preprocess/parser_raw.ml" + + in + ( # 2127 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 41387 "src/ocaml/preprocess/parser_raw.ml" - in +# 42497 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.module_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -41426,42 +42537,44 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined1_ in - let _v : (Parsetree.module_type) = let _1 = + let _v = let _1 = - let m2 = - let _1 = _1_inlined1 in - -# 4672 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let m2 = + let _1 = _1_inlined1 in + +# 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 41437 "src/ocaml/preprocess/parser_raw.ml" - - in - let m1 = -# 4671 "src/ocaml/preprocess/parser_raw.mly" +# 42549 "src/ocaml/preprocess/parser_raw.ml" + + in + let m1 = +# 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 41443 "src/ocaml/preprocess/parser_raw.ml" - in - +# 42555 "src/ocaml/preprocess/parser_raw.ml" + in + # 2117 "src/ocaml/preprocess/parser_raw.mly" ( Pmty_functor(Named (mknoloc None, _1, m1), _4, m2) ) -# 41448 "src/ocaml/preprocess/parser_raw.ml" +# 42560 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__1_ = _endpos__1_inlined1_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos__1_ = _endpos__1_inlined1_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1341 "src/ocaml/preprocess/parser_raw.mly" ( mkmty ~loc:_sloc _1 ) -# 41458 "src/ocaml/preprocess/parser_raw.ml" - - in - +# 42570 "src/ocaml/preprocess/parser_raw.ml" + + in + ( # 2127 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 41464 "src/ocaml/preprocess/parser_raw.ml" - in +# 42576 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.module_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -41503,42 +42616,44 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in - let _v : (Parsetree.module_type) = let _1 = + let _v = let _1 = - let m2 = -# 4671 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let m2 = +# 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 41512 "src/ocaml/preprocess/parser_raw.ml" - in - let m1 = - let _1 = _1_inlined1 in - -# 4672 "src/ocaml/preprocess/parser_raw.mly" +# 42626 "src/ocaml/preprocess/parser_raw.ml" + in + let m1 = + let _1 = _1_inlined1 in + +# 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 41519 "src/ocaml/preprocess/parser_raw.ml" +# 42633 "src/ocaml/preprocess/parser_raw.ml" + + in - in - # 2117 "src/ocaml/preprocess/parser_raw.mly" ( Pmty_functor(Named (mknoloc None, _1, m1), _4, m2) ) -# 41525 "src/ocaml/preprocess/parser_raw.ml" +# 42639 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__1_ = _endpos__4_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos__1_ = _endpos__4_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1341 "src/ocaml/preprocess/parser_raw.mly" ( mkmty ~loc:_sloc _1 ) -# 41535 "src/ocaml/preprocess/parser_raw.ml" - - in - +# 42649 "src/ocaml/preprocess/parser_raw.ml" + + in + ( # 2127 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 41541 "src/ocaml/preprocess/parser_raw.ml" - in +# 42655 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.module_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -41587,45 +42702,47 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined2_ in - let _v : (Parsetree.module_type) = let _1 = + let _v = let _1 = - let m2 = - let _1 = _1_inlined2 in - -# 4672 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let m2 = + let _1 = _1_inlined2 in + +# 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 41598 "src/ocaml/preprocess/parser_raw.ml" - - in - let m1 = - let _1 = _1_inlined1 in - -# 4672 "src/ocaml/preprocess/parser_raw.mly" +# 42714 "src/ocaml/preprocess/parser_raw.ml" + + in + let m1 = + let _1 = _1_inlined1 in + +# 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 41606 "src/ocaml/preprocess/parser_raw.ml" +# 42722 "src/ocaml/preprocess/parser_raw.ml" + + in - in - # 2117 "src/ocaml/preprocess/parser_raw.mly" ( Pmty_functor(Named (mknoloc None, _1, m1), _4, m2) ) -# 41612 "src/ocaml/preprocess/parser_raw.ml" +# 42728 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__1_ = _endpos__1_inlined2_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos__1_ = _endpos__1_inlined2_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1341 "src/ocaml/preprocess/parser_raw.mly" ( mkmty ~loc:_sloc _1 ) -# 41622 "src/ocaml/preprocess/parser_raw.ml" - - in - +# 42738 "src/ocaml/preprocess/parser_raw.ml" + + in + ( # 2127 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 41628 "src/ocaml/preprocess/parser_raw.ml" - in +# 42744 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.module_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -41660,41 +42777,43 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_xs_ in - let _v : (Parsetree.module_type) = let _1 = + let _v = let _1 = - let _3 = - let xs = -# 253 "" + let _1 = + let _3 = + let xs = +# 264 "" ( List.rev xs ) -# 41670 "src/ocaml/preprocess/parser_raw.ml" - in - +# 42788 "src/ocaml/preprocess/parser_raw.ml" + in + # 1450 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 41675 "src/ocaml/preprocess/parser_raw.ml" +# 42793 "src/ocaml/preprocess/parser_raw.ml" + + in - in - # 2119 "src/ocaml/preprocess/parser_raw.mly" ( Pmty_with(_1, _3) ) -# 41681 "src/ocaml/preprocess/parser_raw.ml" +# 42799 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__1_ = _endpos_xs_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos__1_ = _endpos_xs_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1341 "src/ocaml/preprocess/parser_raw.mly" ( mkmty ~loc:_sloc _1 ) -# 41691 "src/ocaml/preprocess/parser_raw.ml" - - in - +# 42809 "src/ocaml/preprocess/parser_raw.ml" + + in + ( # 2127 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 41697 "src/ocaml/preprocess/parser_raw.ml" - in +# 42815 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.module_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -41715,26 +42834,28 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v : (Parsetree.module_type) = let _1 = - let _1 = + let _v = + let _1 = + let _1 = # 2123 "src/ocaml/preprocess/parser_raw.mly" ( Pmty_extension _1 ) -# 41723 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 42843 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1341 "src/ocaml/preprocess/parser_raw.mly" ( mkmty ~loc:_sloc _1 ) -# 41731 "src/ocaml/preprocess/parser_raw.ml" - - in - +# 42851 "src/ocaml/preprocess/parser_raw.ml" + + in + ( # 2127 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 41737 "src/ocaml/preprocess/parser_raw.ml" - in +# 42857 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.module_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -41769,40 +42890,42 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined1_ in - let _v : (Parsetree.module_type) = let _1 = + let _v = let _1 = - let _3 = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let _1 = + let _3 = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 41783 "src/ocaml/preprocess/parser_raw.ml" +# 42905 "src/ocaml/preprocess/parser_raw.ml" + + in - in - # 2125 "src/ocaml/preprocess/parser_raw.mly" ( Pmty_strengthen (_1, _3) ) -# 41789 "src/ocaml/preprocess/parser_raw.ml" +# 42911 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__1_ = _endpos__1_inlined1_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos__1_ = _endpos__1_inlined1_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1341 "src/ocaml/preprocess/parser_raw.mly" ( mkmty ~loc:_sloc _1 ) -# 41799 "src/ocaml/preprocess/parser_raw.ml" - - in - +# 42921 "src/ocaml/preprocess/parser_raw.ml" + + in + ( # 2127 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 41805 "src/ocaml/preprocess/parser_raw.ml" - in +# 42927 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.module_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -41865,38 +42988,39 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined3_ in - let _v : (Parsetree.module_type_declaration * string Location.loc option) = let attrs2 = - let _1 = _1_inlined3 in - -# 5388 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let attrs2 = + let _1 = _1_inlined3 in + +# 5399 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 41874 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_attrs2_ = _endpos__1_inlined3_ in - let id = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 42998 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_attrs2_ = _endpos__1_inlined3_ in + let id = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 41886 "src/ocaml/preprocess/parser_raw.ml" - - in - let attrs1 = - let _1 = _1_inlined1 in - -# 5392 "src/ocaml/preprocess/parser_raw.mly" +# 43010 "src/ocaml/preprocess/parser_raw.ml" + + in + let attrs1 = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 41894 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos_attrs2_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 43018 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos_attrs2_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + ( # 2022 "src/ocaml/preprocess/parser_raw.mly" ( let attrs = attrs1 @ attrs2 in @@ -41904,8 +43028,9 @@ module Tables = struct let docs = symbol_docs _sloc in Mtd.mk id ?typ ~attrs ~loc ~docs, ext ) -# 41908 "src/ocaml/preprocess/parser_raw.ml" - in +# 43032 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.module_type_declaration * string Location.loc option)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -41975,38 +43100,39 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined3_ in - let _v : (Parsetree.module_type_declaration * string Location.loc option) = let attrs2 = - let _1 = _1_inlined3 in - -# 5388 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let attrs2 = + let _1 = _1_inlined3 in + +# 5399 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 41984 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_attrs2_ = _endpos__1_inlined3_ in - let id = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 43110 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_attrs2_ = _endpos__1_inlined3_ in + let id = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 41996 "src/ocaml/preprocess/parser_raw.ml" - - in - let attrs1 = - let _1 = _1_inlined1 in - -# 5392 "src/ocaml/preprocess/parser_raw.mly" +# 43122 "src/ocaml/preprocess/parser_raw.ml" + + in + let attrs1 = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 42004 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos_attrs2_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 43130 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos_attrs2_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + ( # 2325 "src/ocaml/preprocess/parser_raw.mly" ( let attrs = attrs1 @ attrs2 in @@ -42014,8 +43140,9 @@ module Tables = struct let docs = symbol_docs _sloc in Mtd.mk id ~typ ~attrs ~loc ~docs, ext ) -# 42018 "src/ocaml/preprocess/parser_raw.ml" - in +# 43144 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.module_type_declaration * string Location.loc option)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -42037,9 +43164,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Longident.t) = -# 5157 "src/ocaml/preprocess/parser_raw.mly" +# 5168 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 42043 "src/ocaml/preprocess/parser_raw.ml" +# 43170 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -42055,9 +43182,9 @@ module Tables = struct let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in let _endpos = _startpos in let _v : (Asttypes.mutable_flag) = -# 5238 "src/ocaml/preprocess/parser_raw.mly" +# 5249 "src/ocaml/preprocess/parser_raw.mly" ( Immutable ) -# 42061 "src/ocaml/preprocess/parser_raw.ml" +# 43188 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -42080,9 +43207,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Asttypes.mutable_flag) = -# 5239 "src/ocaml/preprocess/parser_raw.mly" +# 5250 "src/ocaml/preprocess/parser_raw.mly" ( Mutable ) -# 42086 "src/ocaml/preprocess/parser_raw.ml" +# 43213 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -42098,9 +43225,9 @@ module Tables = struct let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in let _endpos = _startpos in let _v : (Asttypes.mutable_flag * Parsetree.modality Location.loc list) = -# 5243 "src/ocaml/preprocess/parser_raw.mly" +# 5254 "src/ocaml/preprocess/parser_raw.mly" ( Immutable, [] ) -# 42104 "src/ocaml/preprocess/parser_raw.ml" +# 43231 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -42123,9 +43250,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Asttypes.mutable_flag * Parsetree.modality Location.loc list) = -# 5245 "src/ocaml/preprocess/parser_raw.mly" +# 5256 "src/ocaml/preprocess/parser_raw.mly" ( Mutable, [] ) -# 42129 "src/ocaml/preprocess/parser_raw.ml" +# 43256 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -42147,14 +43274,16 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v : (Asttypes.mutable_flag * Parsetree.modality Location.loc list) = let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 5247 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + ( +# 5258 "src/ocaml/preprocess/parser_raw.mly" ( Immutable, [ mkloc (Modality "global") (make_loc _sloc)] ) -# 42157 "src/ocaml/preprocess/parser_raw.ml" - in +# 43285 "src/ocaml/preprocess/parser_raw.ml" + : (Asttypes.mutable_flag * Parsetree.modality Location.loc list)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -42169,9 +43298,9 @@ module Tables = struct let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in let _endpos = _startpos in let _v : (Asttypes.mutable_flag * Asttypes.virtual_flag) = -# 5259 "src/ocaml/preprocess/parser_raw.mly" +# 5270 "src/ocaml/preprocess/parser_raw.mly" ( Immutable, Concrete ) -# 42175 "src/ocaml/preprocess/parser_raw.ml" +# 43304 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -42194,9 +43323,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Asttypes.mutable_flag * Asttypes.virtual_flag) = -# 5261 "src/ocaml/preprocess/parser_raw.mly" +# 5272 "src/ocaml/preprocess/parser_raw.mly" ( Mutable, Concrete ) -# 42200 "src/ocaml/preprocess/parser_raw.ml" +# 43329 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -42219,9 +43348,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Asttypes.mutable_flag * Asttypes.virtual_flag) = -# 5263 "src/ocaml/preprocess/parser_raw.mly" +# 5274 "src/ocaml/preprocess/parser_raw.mly" ( Immutable, Virtual ) -# 42225 "src/ocaml/preprocess/parser_raw.ml" +# 43354 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -42251,9 +43380,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Asttypes.mutable_flag * Asttypes.virtual_flag) = -# 5266 "src/ocaml/preprocess/parser_raw.mly" +# 5277 "src/ocaml/preprocess/parser_raw.mly" ( Mutable, Virtual ) -# 42257 "src/ocaml/preprocess/parser_raw.ml" +# 43386 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -42283,9 +43412,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Asttypes.mutable_flag * Asttypes.virtual_flag) = -# 5266 "src/ocaml/preprocess/parser_raw.mly" +# 5277 "src/ocaml/preprocess/parser_raw.mly" ( Mutable, Virtual ) -# 42289 "src/ocaml/preprocess/parser_raw.ml" +# 43418 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -42315,9 +43444,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (string) = -# 5209 "src/ocaml/preprocess/parser_raw.mly" +# 5220 "src/ocaml/preprocess/parser_raw.mly" ( _2 ) -# 42321 "src/ocaml/preprocess/parser_raw.ml" +# 43450 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -42338,26 +43467,28 @@ module Tables = struct let _1 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 42342 "src/ocaml/preprocess/parser_raw.ml" +# 43471 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v : (string Location.loc * Parsetree.jkind_annotation option) = let _1 = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let _v = + let _1 = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 42354 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 3693 "src/ocaml/preprocess/parser_raw.mly" +# 43484 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 3704 "src/ocaml/preprocess/parser_raw.mly" ( _1, None ) -# 42360 "src/ocaml/preprocess/parser_raw.ml" - in +# 43490 "src/ocaml/preprocess/parser_raw.ml" + : (string Location.loc * Parsetree.jkind_annotation option)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -42404,28 +43535,30 @@ module Tables = struct let _1_inlined1 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 42408 "src/ocaml/preprocess/parser_raw.ml" +# 43539 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__5_ in - let _v : (string Location.loc * Parsetree.jkind_annotation option) = let name = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let _v = + let name = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 42422 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 3695 "src/ocaml/preprocess/parser_raw.mly" +# 43554 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 3706 "src/ocaml/preprocess/parser_raw.mly" ( name, Some jkind ) -# 42428 "src/ocaml/preprocess/parser_raw.ml" - in +# 43560 "src/ocaml/preprocess/parser_raw.ml" + : (string Location.loc * Parsetree.jkind_annotation option)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -42447,9 +43580,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : ((string Location.loc * Parsetree.jkind_annotation option) list) = -# 3690 "src/ocaml/preprocess/parser_raw.mly" +# 3701 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 42453 "src/ocaml/preprocess/parser_raw.ml" +# 43586 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -42470,26 +43603,28 @@ module Tables = struct let _1 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 42474 "src/ocaml/preprocess/parser_raw.ml" +# 43607 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v : (string Location.loc list) = let x = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let _v = + let x = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 42486 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 221 "" +# 43620 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 228 "" ( [ x ] ) -# 42492 "src/ocaml/preprocess/parser_raw.ml" - in +# 43626 "src/ocaml/preprocess/parser_raw.ml" + : (string Location.loc list)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -42516,26 +43651,28 @@ module Tables = struct let _1 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 42520 "src/ocaml/preprocess/parser_raw.ml" +# 43655 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_xs_ in - let _v : (string Location.loc list) = let x = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let _v = + let x = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 42532 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 223 "" +# 43668 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 231 "" ( x :: xs ) -# 42538 "src/ocaml/preprocess/parser_raw.ml" - in +# 43674 "src/ocaml/preprocess/parser_raw.ml" + : (string Location.loc list)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -42555,26 +43692,28 @@ module Tables = struct let _1 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 42559 "src/ocaml/preprocess/parser_raw.ml" +# 43696 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v : (Parsetree.modalities) = let x = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 4695 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let x = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 4706 "src/ocaml/preprocess/parser_raw.mly" ( mkloc (Modality _1) (make_loc _sloc) ) -# 42571 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 221 "" +# 43709 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 228 "" ( [ x ] ) -# 42577 "src/ocaml/preprocess/parser_raw.ml" - in +# 43715 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.modalities)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -42601,26 +43740,28 @@ module Tables = struct let _1 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 42605 "src/ocaml/preprocess/parser_raw.ml" +# 43744 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_xs_ in - let _v : (Parsetree.modalities) = let x = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 4695 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let x = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 4706 "src/ocaml/preprocess/parser_raw.mly" ( mkloc (Modality _1) (make_loc _sloc) ) -# 42617 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 223 "" +# 43757 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 231 "" ( x :: xs ) -# 42623 "src/ocaml/preprocess/parser_raw.ml" - in +# 43763 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.modalities)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -42640,26 +43781,28 @@ module Tables = struct let _1 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 42644 "src/ocaml/preprocess/parser_raw.ml" +# 43785 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v : (Parsetree.modes) = let x = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 4658 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let x = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 4669 "src/ocaml/preprocess/parser_raw.mly" ( mkloc (Mode _1) (make_loc _sloc) ) -# 42656 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 221 "" +# 43798 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 228 "" ( [ x ] ) -# 42662 "src/ocaml/preprocess/parser_raw.ml" - in +# 43804 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.modes)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -42686,26 +43829,28 @@ module Tables = struct let _1 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 42690 "src/ocaml/preprocess/parser_raw.ml" +# 43833 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_xs_ in - let _v : (Parsetree.modes) = let x = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 4658 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let x = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 4669 "src/ocaml/preprocess/parser_raw.mly" ( mkloc (Mode _1) (make_loc _sloc) ) -# 42702 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 223 "" +# 43846 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 231 "" ( x :: xs ) -# 42708 "src/ocaml/preprocess/parser_raw.ml" - in +# 43852 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.modes)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -42726,21 +43871,23 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v : (Parsetree.modes) = let x = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 4640 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let x = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 4651 "src/ocaml/preprocess/parser_raw.mly" ( mkloc (Mode "local") (make_loc _sloc) ) -# 42737 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 221 "" +# 43883 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 228 "" ( [ x ] ) -# 42743 "src/ocaml/preprocess/parser_raw.ml" - in +# 43889 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.modes)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -42761,21 +43908,23 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v : (Parsetree.modes) = let x = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 4642 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let x = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 4653 "src/ocaml/preprocess/parser_raw.mly" ( mkloc (Mode "unique") (make_loc _sloc) ) -# 42772 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 221 "" +# 43920 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 228 "" ( [ x ] ) -# 42778 "src/ocaml/preprocess/parser_raw.ml" - in +# 43926 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.modes)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -42796,21 +43945,23 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v : (Parsetree.modes) = let x = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 4644 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let x = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 4655 "src/ocaml/preprocess/parser_raw.mly" ( mkloc (Mode "once") (make_loc _sloc) ) -# 42807 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 221 "" +# 43957 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 228 "" ( [ x ] ) -# 42813 "src/ocaml/preprocess/parser_raw.ml" - in +# 43963 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.modes)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -42838,21 +43989,23 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_xs_ in - let _v : (Parsetree.modes) = let x = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 4640 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let x = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 4651 "src/ocaml/preprocess/parser_raw.mly" ( mkloc (Mode "local") (make_loc _sloc) ) -# 42849 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 223 "" +# 44001 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 231 "" ( x :: xs ) -# 42855 "src/ocaml/preprocess/parser_raw.ml" - in +# 44007 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.modes)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -42880,21 +44033,23 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_xs_ in - let _v : (Parsetree.modes) = let x = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 4642 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let x = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 4653 "src/ocaml/preprocess/parser_raw.mly" ( mkloc (Mode "unique") (make_loc _sloc) ) -# 42891 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 223 "" +# 44045 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 231 "" ( x :: xs ) -# 42897 "src/ocaml/preprocess/parser_raw.ml" - in +# 44051 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.modes)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -42922,21 +44077,23 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_xs_ in - let _v : (Parsetree.modes) = let x = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 4644 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let x = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 4655 "src/ocaml/preprocess/parser_raw.mly" ( mkloc (Mode "once") (make_loc _sloc) ) -# 42933 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 223 "" +# 44089 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 231 "" ( x :: xs ) -# 42939 "src/ocaml/preprocess/parser_raw.ml" - in +# 44095 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.modes)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -42958,9 +44115,9 @@ module Tables = struct let _startpos = _startpos_x_ in let _endpos = _endpos_x_ in let _v : ((string Location.loc * Parsetree.jkind_annotation option) list) = -# 221 "" +# 228 "" ( [ x ] ) -# 42964 "src/ocaml/preprocess/parser_raw.ml" +# 44121 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -42990,9 +44147,9 @@ module Tables = struct let _startpos = _startpos_x_ in let _endpos = _endpos_xs_ in let _v : ((string Location.loc * Parsetree.jkind_annotation option) list) = -# 223 "" +# 231 "" ( x :: xs ) -# 42996 "src/ocaml/preprocess/parser_raw.ml" +# 44153 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -43013,21 +44170,23 @@ module Tables = struct let s : ( # 1141 "src/ocaml/preprocess/parser_raw.mly" (string * Location.t * string option) -# 43017 "src/ocaml/preprocess/parser_raw.ml" +# 44174 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic s in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_s_ in let _endpos = _endpos_s_ in - let _v : (string list) = let x = -# 5205 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let x = +# 5216 "src/ocaml/preprocess/parser_raw.mly" ( let body, _, _ = s in body ) -# 43025 "src/ocaml/preprocess/parser_raw.ml" - in - -# 221 "" +# 44183 "src/ocaml/preprocess/parser_raw.ml" + in + ( +# 228 "" ( [ x ] ) -# 43030 "src/ocaml/preprocess/parser_raw.ml" - in +# 44188 "src/ocaml/preprocess/parser_raw.ml" + : (string list)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -43054,21 +44213,23 @@ module Tables = struct let s : ( # 1141 "src/ocaml/preprocess/parser_raw.mly" (string * Location.t * string option) -# 43058 "src/ocaml/preprocess/parser_raw.ml" +# 44217 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic s in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_s_ in let _endpos = _endpos_xs_ in - let _v : (string list) = let x = -# 5205 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let x = +# 5216 "src/ocaml/preprocess/parser_raw.mly" ( let body, _, _ = s in body ) -# 43066 "src/ocaml/preprocess/parser_raw.ml" - in - -# 223 "" +# 44226 "src/ocaml/preprocess/parser_raw.ml" + in + ( +# 231 "" ( x :: xs ) -# 43071 "src/ocaml/preprocess/parser_raw.ml" - in +# 44231 "src/ocaml/preprocess/parser_raw.ml" + : (string list)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -43089,16 +44250,18 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_ty_ in let _endpos = _endpos_ty_ in - let _v : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) = let priv = -# 5234 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let priv = +# 5245 "src/ocaml/preprocess/parser_raw.mly" ( Public ) -# 43096 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4096 "src/ocaml/preprocess/parser_raw.mly" +# 44258 "src/ocaml/preprocess/parser_raw.ml" + in + ( +# 4107 "src/ocaml/preprocess/parser_raw.mly" ( (Ptype_abstract, priv, Some ty) ) -# 43101 "src/ocaml/preprocess/parser_raw.ml" - in +# 44263 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -43126,16 +44289,18 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_ty_ in - let _v : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) = let priv = -# 5235 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let priv = +# 5246 "src/ocaml/preprocess/parser_raw.mly" ( Private ) -# 43133 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4096 "src/ocaml/preprocess/parser_raw.mly" +# 44297 "src/ocaml/preprocess/parser_raw.ml" + in + ( +# 4107 "src/ocaml/preprocess/parser_raw.mly" ( (Ptype_abstract, priv, Some ty) ) -# 43138 "src/ocaml/preprocess/parser_raw.ml" - in +# 44302 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -43156,28 +44321,30 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_cs_ in let _endpos = _endpos_cs_ in - let _v : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) = let priv = -# 5234 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let priv = +# 5245 "src/ocaml/preprocess/parser_raw.mly" ( Public ) -# 43163 "src/ocaml/preprocess/parser_raw.ml" - in - let oty = - let _1 = -# 124 "" - ( None ) -# 43169 "src/ocaml/preprocess/parser_raw.ml" +# 44329 "src/ocaml/preprocess/parser_raw.ml" in - -# 4116 "src/ocaml/preprocess/parser_raw.mly" + let oty = + let _1 = +# 123 "" + ( None ) +# 44335 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4127 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 43174 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4100 "src/ocaml/preprocess/parser_raw.mly" +# 44340 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4111 "src/ocaml/preprocess/parser_raw.mly" ( (Ptype_variant cs, priv, oty) ) -# 43180 "src/ocaml/preprocess/parser_raw.ml" - in +# 44346 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -43205,28 +44372,30 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_cs_ in - let _v : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) = let priv = -# 5235 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let priv = +# 5246 "src/ocaml/preprocess/parser_raw.mly" ( Private ) -# 43212 "src/ocaml/preprocess/parser_raw.ml" - in - let oty = - let _1 = -# 124 "" - ( None ) -# 43218 "src/ocaml/preprocess/parser_raw.ml" +# 44380 "src/ocaml/preprocess/parser_raw.ml" in - -# 4116 "src/ocaml/preprocess/parser_raw.mly" + let oty = + let _1 = +# 123 "" + ( None ) +# 44386 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4127 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 43223 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4100 "src/ocaml/preprocess/parser_raw.mly" +# 44391 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4111 "src/ocaml/preprocess/parser_raw.mly" ( (Ptype_variant cs, priv, oty) ) -# 43229 "src/ocaml/preprocess/parser_raw.ml" - in +# 44397 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -43261,35 +44430,37 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_x_ in let _endpos = _endpos_cs_ in - let _v : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) = let priv = -# 5234 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let priv = +# 5245 "src/ocaml/preprocess/parser_raw.mly" ( Public ) -# 43268 "src/ocaml/preprocess/parser_raw.ml" - in - let oty = - let _1 = - let x = -# 191 "" +# 44438 "src/ocaml/preprocess/parser_raw.ml" + in + let oty = + let _1 = + let x = +# 196 "" ( x ) -# 43275 "src/ocaml/preprocess/parser_raw.ml" - in - +# 44445 "src/ocaml/preprocess/parser_raw.ml" + in + # 126 "" ( Some x ) -# 43280 "src/ocaml/preprocess/parser_raw.ml" +# 44450 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 4116 "src/ocaml/preprocess/parser_raw.mly" +# 4127 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 43286 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4100 "src/ocaml/preprocess/parser_raw.mly" +# 44456 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4111 "src/ocaml/preprocess/parser_raw.mly" ( (Ptype_variant cs, priv, oty) ) -# 43292 "src/ocaml/preprocess/parser_raw.ml" - in +# 44462 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -43331,35 +44502,37 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_x_ in let _endpos = _endpos_cs_ in - let _v : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) = let priv = -# 5235 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let priv = +# 5246 "src/ocaml/preprocess/parser_raw.mly" ( Private ) -# 43338 "src/ocaml/preprocess/parser_raw.ml" - in - let oty = - let _1 = - let x = -# 191 "" +# 44510 "src/ocaml/preprocess/parser_raw.ml" + in + let oty = + let _1 = + let x = +# 196 "" ( x ) -# 43345 "src/ocaml/preprocess/parser_raw.ml" - in - +# 44517 "src/ocaml/preprocess/parser_raw.ml" + in + # 126 "" ( Some x ) -# 43350 "src/ocaml/preprocess/parser_raw.ml" +# 44522 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 4116 "src/ocaml/preprocess/parser_raw.mly" +# 4127 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 43356 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4100 "src/ocaml/preprocess/parser_raw.mly" +# 44528 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4111 "src/ocaml/preprocess/parser_raw.mly" ( (Ptype_variant cs, priv, oty) ) -# 43362 "src/ocaml/preprocess/parser_raw.ml" - in +# 44534 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -43380,28 +44553,30 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__3_ in let _endpos = _endpos__3_ in - let _v : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) = let priv = -# 5234 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let priv = +# 5245 "src/ocaml/preprocess/parser_raw.mly" ( Public ) -# 43387 "src/ocaml/preprocess/parser_raw.ml" - in - let oty = - let _1 = -# 124 "" - ( None ) -# 43393 "src/ocaml/preprocess/parser_raw.ml" +# 44561 "src/ocaml/preprocess/parser_raw.ml" in - -# 4116 "src/ocaml/preprocess/parser_raw.mly" + let oty = + let _1 = +# 123 "" + ( None ) +# 44567 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4127 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 43398 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4104 "src/ocaml/preprocess/parser_raw.mly" +# 44572 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4115 "src/ocaml/preprocess/parser_raw.mly" ( (Ptype_open, priv, oty) ) -# 43404 "src/ocaml/preprocess/parser_raw.ml" - in +# 44578 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -43429,28 +44604,30 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in - let _v : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) = let priv = -# 5235 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let priv = +# 5246 "src/ocaml/preprocess/parser_raw.mly" ( Private ) -# 43436 "src/ocaml/preprocess/parser_raw.ml" - in - let oty = - let _1 = -# 124 "" - ( None ) -# 43442 "src/ocaml/preprocess/parser_raw.ml" +# 44612 "src/ocaml/preprocess/parser_raw.ml" in - -# 4116 "src/ocaml/preprocess/parser_raw.mly" + let oty = + let _1 = +# 123 "" + ( None ) +# 44618 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4127 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 43447 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4104 "src/ocaml/preprocess/parser_raw.mly" +# 44623 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4115 "src/ocaml/preprocess/parser_raw.mly" ( (Ptype_open, priv, oty) ) -# 43453 "src/ocaml/preprocess/parser_raw.ml" - in +# 44629 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -43485,35 +44662,37 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_x_ in let _endpos = _endpos__3_ in - let _v : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) = let priv = -# 5234 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let priv = +# 5245 "src/ocaml/preprocess/parser_raw.mly" ( Public ) -# 43492 "src/ocaml/preprocess/parser_raw.ml" - in - let oty = - let _1 = - let x = -# 191 "" +# 44670 "src/ocaml/preprocess/parser_raw.ml" + in + let oty = + let _1 = + let x = +# 196 "" ( x ) -# 43499 "src/ocaml/preprocess/parser_raw.ml" - in - +# 44677 "src/ocaml/preprocess/parser_raw.ml" + in + # 126 "" ( Some x ) -# 43504 "src/ocaml/preprocess/parser_raw.ml" +# 44682 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 4116 "src/ocaml/preprocess/parser_raw.mly" +# 4127 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 43510 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4104 "src/ocaml/preprocess/parser_raw.mly" +# 44688 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4115 "src/ocaml/preprocess/parser_raw.mly" ( (Ptype_open, priv, oty) ) -# 43516 "src/ocaml/preprocess/parser_raw.ml" - in +# 44694 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -43555,35 +44734,37 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_x_ in let _endpos = _endpos__3_ in - let _v : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) = let priv = -# 5235 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let priv = +# 5246 "src/ocaml/preprocess/parser_raw.mly" ( Private ) -# 43562 "src/ocaml/preprocess/parser_raw.ml" - in - let oty = - let _1 = - let x = -# 191 "" +# 44742 "src/ocaml/preprocess/parser_raw.ml" + in + let oty = + let _1 = + let x = +# 196 "" ( x ) -# 43569 "src/ocaml/preprocess/parser_raw.ml" - in - +# 44749 "src/ocaml/preprocess/parser_raw.ml" + in + # 126 "" ( Some x ) -# 43574 "src/ocaml/preprocess/parser_raw.ml" +# 44754 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 4116 "src/ocaml/preprocess/parser_raw.mly" +# 4127 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 43580 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4104 "src/ocaml/preprocess/parser_raw.mly" +# 44760 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4115 "src/ocaml/preprocess/parser_raw.mly" ( (Ptype_open, priv, oty) ) -# 43586 "src/ocaml/preprocess/parser_raw.ml" - in +# 44766 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -43618,28 +44799,30 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__3_ in let _endpos = _endpos__5_ in - let _v : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) = let priv = -# 5234 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let priv = +# 5245 "src/ocaml/preprocess/parser_raw.mly" ( Public ) -# 43625 "src/ocaml/preprocess/parser_raw.ml" - in - let oty = - let _1 = -# 124 "" - ( None ) -# 43631 "src/ocaml/preprocess/parser_raw.ml" +# 44807 "src/ocaml/preprocess/parser_raw.ml" in - -# 4116 "src/ocaml/preprocess/parser_raw.mly" + let oty = + let _1 = +# 123 "" + ( None ) +# 44813 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4127 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 43636 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4108 "src/ocaml/preprocess/parser_raw.mly" +# 44818 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4119 "src/ocaml/preprocess/parser_raw.mly" ( (Ptype_record ls, priv, oty) ) -# 43642 "src/ocaml/preprocess/parser_raw.ml" - in +# 44824 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -43681,28 +44864,30 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__5_ in - let _v : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) = let priv = -# 5235 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let priv = +# 5246 "src/ocaml/preprocess/parser_raw.mly" ( Private ) -# 43688 "src/ocaml/preprocess/parser_raw.ml" - in - let oty = - let _1 = -# 124 "" - ( None ) -# 43694 "src/ocaml/preprocess/parser_raw.ml" +# 44872 "src/ocaml/preprocess/parser_raw.ml" in - -# 4116 "src/ocaml/preprocess/parser_raw.mly" + let oty = + let _1 = +# 123 "" + ( None ) +# 44878 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4127 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 43699 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4108 "src/ocaml/preprocess/parser_raw.mly" +# 44883 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4119 "src/ocaml/preprocess/parser_raw.mly" ( (Ptype_record ls, priv, oty) ) -# 43705 "src/ocaml/preprocess/parser_raw.ml" - in +# 44889 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -43751,35 +44936,37 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_x_ in let _endpos = _endpos__5_ in - let _v : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) = let priv = -# 5234 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let priv = +# 5245 "src/ocaml/preprocess/parser_raw.mly" ( Public ) -# 43758 "src/ocaml/preprocess/parser_raw.ml" - in - let oty = - let _1 = - let x = -# 191 "" +# 44944 "src/ocaml/preprocess/parser_raw.ml" + in + let oty = + let _1 = + let x = +# 196 "" ( x ) -# 43765 "src/ocaml/preprocess/parser_raw.ml" - in - +# 44951 "src/ocaml/preprocess/parser_raw.ml" + in + # 126 "" ( Some x ) -# 43770 "src/ocaml/preprocess/parser_raw.ml" +# 44956 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 4116 "src/ocaml/preprocess/parser_raw.mly" +# 4127 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 43776 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4108 "src/ocaml/preprocess/parser_raw.mly" +# 44962 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4119 "src/ocaml/preprocess/parser_raw.mly" ( (Ptype_record ls, priv, oty) ) -# 43782 "src/ocaml/preprocess/parser_raw.ml" - in +# 44968 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -43835,35 +45022,37 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_x_ in let _endpos = _endpos__5_ in - let _v : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) = let priv = -# 5235 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let priv = +# 5246 "src/ocaml/preprocess/parser_raw.mly" ( Private ) -# 43842 "src/ocaml/preprocess/parser_raw.ml" - in - let oty = - let _1 = - let x = -# 191 "" +# 45030 "src/ocaml/preprocess/parser_raw.ml" + in + let oty = + let _1 = + let x = +# 196 "" ( x ) -# 43849 "src/ocaml/preprocess/parser_raw.ml" - in - +# 45037 "src/ocaml/preprocess/parser_raw.ml" + in + # 126 "" ( Some x ) -# 43854 "src/ocaml/preprocess/parser_raw.ml" +# 45042 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 4116 "src/ocaml/preprocess/parser_raw.mly" +# 4127 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 43860 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4108 "src/ocaml/preprocess/parser_raw.mly" +# 45048 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4119 "src/ocaml/preprocess/parser_raw.mly" ( (Ptype_record ls, priv, oty) ) -# 43866 "src/ocaml/preprocess/parser_raw.ml" - in +# 45054 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -43898,28 +45087,30 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__3_ in let _endpos = _endpos__5_ in - let _v : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) = let priv = -# 5234 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let priv = +# 5245 "src/ocaml/preprocess/parser_raw.mly" ( Public ) -# 43905 "src/ocaml/preprocess/parser_raw.ml" - in - let oty = - let _1 = -# 124 "" - ( None ) -# 43911 "src/ocaml/preprocess/parser_raw.ml" +# 45095 "src/ocaml/preprocess/parser_raw.ml" in - -# 4116 "src/ocaml/preprocess/parser_raw.mly" + let oty = + let _1 = +# 123 "" + ( None ) +# 45101 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4127 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 43916 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4112 "src/ocaml/preprocess/parser_raw.mly" +# 45106 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4123 "src/ocaml/preprocess/parser_raw.mly" ( (Ptype_record_unboxed_product ls, priv, oty) ) -# 43922 "src/ocaml/preprocess/parser_raw.ml" - in +# 45112 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -43961,28 +45152,30 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__5_ in - let _v : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) = let priv = -# 5235 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let priv = +# 5246 "src/ocaml/preprocess/parser_raw.mly" ( Private ) -# 43968 "src/ocaml/preprocess/parser_raw.ml" - in - let oty = - let _1 = -# 124 "" - ( None ) -# 43974 "src/ocaml/preprocess/parser_raw.ml" +# 45160 "src/ocaml/preprocess/parser_raw.ml" in - -# 4116 "src/ocaml/preprocess/parser_raw.mly" + let oty = + let _1 = +# 123 "" + ( None ) +# 45166 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4127 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 43979 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4112 "src/ocaml/preprocess/parser_raw.mly" +# 45171 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4123 "src/ocaml/preprocess/parser_raw.mly" ( (Ptype_record_unboxed_product ls, priv, oty) ) -# 43985 "src/ocaml/preprocess/parser_raw.ml" - in +# 45177 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -44031,35 +45224,37 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_x_ in let _endpos = _endpos__5_ in - let _v : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) = let priv = -# 5234 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let priv = +# 5245 "src/ocaml/preprocess/parser_raw.mly" ( Public ) -# 44038 "src/ocaml/preprocess/parser_raw.ml" - in - let oty = - let _1 = - let x = -# 191 "" +# 45232 "src/ocaml/preprocess/parser_raw.ml" + in + let oty = + let _1 = + let x = +# 196 "" ( x ) -# 44045 "src/ocaml/preprocess/parser_raw.ml" - in - +# 45239 "src/ocaml/preprocess/parser_raw.ml" + in + # 126 "" ( Some x ) -# 44050 "src/ocaml/preprocess/parser_raw.ml" +# 45244 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 4116 "src/ocaml/preprocess/parser_raw.mly" +# 4127 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 44056 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4112 "src/ocaml/preprocess/parser_raw.mly" +# 45250 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4123 "src/ocaml/preprocess/parser_raw.mly" ( (Ptype_record_unboxed_product ls, priv, oty) ) -# 44062 "src/ocaml/preprocess/parser_raw.ml" - in +# 45256 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -44115,35 +45310,37 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_x_ in let _endpos = _endpos__5_ in - let _v : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) = let priv = -# 5235 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let priv = +# 5246 "src/ocaml/preprocess/parser_raw.mly" ( Private ) -# 44122 "src/ocaml/preprocess/parser_raw.ml" - in - let oty = - let _1 = - let x = -# 191 "" +# 45318 "src/ocaml/preprocess/parser_raw.ml" + in + let oty = + let _1 = + let x = +# 196 "" ( x ) -# 44129 "src/ocaml/preprocess/parser_raw.ml" - in - +# 45325 "src/ocaml/preprocess/parser_raw.ml" + in + # 126 "" ( Some x ) -# 44134 "src/ocaml/preprocess/parser_raw.ml" +# 45330 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 4116 "src/ocaml/preprocess/parser_raw.mly" +# 4127 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 44140 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4112 "src/ocaml/preprocess/parser_raw.mly" +# 45336 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4123 "src/ocaml/preprocess/parser_raw.mly" ( (Ptype_record_unboxed_product ls, priv, oty) ) -# 44146 "src/ocaml/preprocess/parser_raw.ml" - in +# 45342 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -44178,27 +45375,29 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in - let _v : (Parsetree.core_type) = let _1 = - let _1 = -# 4841 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _1 = + let _1 = +# 4852 "src/ocaml/preprocess/parser_raw.mly" ( let (f, c) = meth_list in Ptyp_object (f, c) ) -# 44186 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos__1_ = _endpos__3_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 45384 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__3_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 44195 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4845 "src/ocaml/preprocess/parser_raw.mly" +# 45393 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4856 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 44201 "src/ocaml/preprocess/parser_raw.ml" - in +# 45399 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -44226,27 +45425,29 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in - let _v : (Parsetree.core_type) = let _1 = - let _1 = -# 4843 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _1 = + let _1 = +# 4854 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_object ([], Closed) ) -# 44234 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos__1_ = _endpos__2_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 45434 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__2_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 44243 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4845 "src/ocaml/preprocess/parser_raw.mly" +# 45443 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4856 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 44249 "src/ocaml/preprocess/parser_raw.ml" - in +# 45449 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -44295,32 +45496,33 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined2_ in - let _v : (Parsetree.module_expr Parsetree.open_infos * string Location.loc option) = let attrs2 = - let _1 = _1_inlined2 in - -# 5388 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let attrs2 = + let _1 = _1_inlined2 in + +# 5399 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 44304 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_attrs2_ = _endpos__1_inlined2_ in - let attrs1 = - let _1 = _1_inlined1 in - -# 5392 "src/ocaml/preprocess/parser_raw.mly" +# 45506 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_attrs2_ = _endpos__1_inlined2_ in + let attrs1 = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 44313 "src/ocaml/preprocess/parser_raw.ml" - - in - let override = -# 5293 "src/ocaml/preprocess/parser_raw.mly" +# 45515 "src/ocaml/preprocess/parser_raw.ml" + + in + let override = +# 5304 "src/ocaml/preprocess/parser_raw.mly" ( Fresh ) -# 44319 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos_attrs2_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 45521 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos_attrs2_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + ( # 2041 "src/ocaml/preprocess/parser_raw.mly" ( let attrs = attrs1 @ attrs2 in @@ -44328,8 +45530,9 @@ module Tables = struct let docs = symbol_docs _sloc in Opn.mk me ~override ~attrs ~loc ~docs, ext ) -# 44332 "src/ocaml/preprocess/parser_raw.ml" - in +# 45534 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.module_expr Parsetree.open_infos * string Location.loc option)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -44385,32 +45588,33 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined3_ in - let _v : (Parsetree.module_expr Parsetree.open_infos * string Location.loc option) = let attrs2 = - let _1 = _1_inlined3 in - -# 5388 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let attrs2 = + let _1 = _1_inlined3 in + +# 5399 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 44394 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_attrs2_ = _endpos__1_inlined3_ in - let attrs1 = - let _1 = _1_inlined2 in - -# 5392 "src/ocaml/preprocess/parser_raw.mly" +# 45598 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_attrs2_ = _endpos__1_inlined3_ in + let attrs1 = + let _1 = _1_inlined2 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 44403 "src/ocaml/preprocess/parser_raw.ml" - - in - let override = -# 5294 "src/ocaml/preprocess/parser_raw.mly" +# 45607 "src/ocaml/preprocess/parser_raw.ml" + + in + let override = +# 5305 "src/ocaml/preprocess/parser_raw.mly" ( Override ) -# 44409 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos_attrs2_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 45613 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos_attrs2_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + ( # 2041 "src/ocaml/preprocess/parser_raw.mly" ( let attrs = attrs1 @ attrs2 in @@ -44418,8 +45622,9 @@ module Tables = struct let docs = symbol_docs _sloc in Opn.mk me ~override ~attrs ~loc ~docs, ext ) -# 44422 "src/ocaml/preprocess/parser_raw.ml" - in +# 45626 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.module_expr Parsetree.open_infos * string Location.loc option)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -44468,43 +45673,44 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined3_ in - let _v : (Longident.t Location.loc Parsetree.open_infos * string Location.loc option) = let attrs2 = - let _1 = _1_inlined3 in - -# 5388 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let attrs2 = + let _1 = _1_inlined3 in + +# 5399 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 44477 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_attrs2_ = _endpos__1_inlined3_ in - let id = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 45683 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_attrs2_ = _endpos__1_inlined3_ in + let id = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 44489 "src/ocaml/preprocess/parser_raw.ml" - - in - let attrs1 = - let _1 = _1_inlined1 in - -# 5392 "src/ocaml/preprocess/parser_raw.mly" +# 45695 "src/ocaml/preprocess/parser_raw.ml" + + in + let attrs1 = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 44497 "src/ocaml/preprocess/parser_raw.ml" - - in - let override = -# 5293 "src/ocaml/preprocess/parser_raw.mly" +# 45703 "src/ocaml/preprocess/parser_raw.ml" + + in + let override = +# 5304 "src/ocaml/preprocess/parser_raw.mly" ( Fresh ) -# 44503 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos_attrs2_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 45709 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos_attrs2_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + ( # 2056 "src/ocaml/preprocess/parser_raw.mly" ( let attrs = attrs1 @ attrs2 in @@ -44512,8 +45718,9 @@ module Tables = struct let docs = symbol_docs _sloc in Opn.mk id ~override ~attrs ~loc ~docs, ext ) -# 44516 "src/ocaml/preprocess/parser_raw.ml" - in +# 45722 "src/ocaml/preprocess/parser_raw.ml" + : (Longident.t Location.loc Parsetree.open_infos * string Location.loc option)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -44569,43 +45776,44 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined4_ in - let _v : (Longident.t Location.loc Parsetree.open_infos * string Location.loc option) = let attrs2 = - let _1 = _1_inlined4 in - -# 5388 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let attrs2 = + let _1 = _1_inlined4 in + +# 5399 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 44578 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_attrs2_ = _endpos__1_inlined4_ in - let id = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined3_, _startpos__1_inlined3_, _1_inlined3) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 45786 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_attrs2_ = _endpos__1_inlined4_ in + let id = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined3_, _startpos__1_inlined3_, _1_inlined3) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 44590 "src/ocaml/preprocess/parser_raw.ml" - - in - let attrs1 = - let _1 = _1_inlined2 in - -# 5392 "src/ocaml/preprocess/parser_raw.mly" +# 45798 "src/ocaml/preprocess/parser_raw.ml" + + in + let attrs1 = + let _1 = _1_inlined2 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 44598 "src/ocaml/preprocess/parser_raw.ml" - - in - let override = -# 5294 "src/ocaml/preprocess/parser_raw.mly" +# 45806 "src/ocaml/preprocess/parser_raw.ml" + + in + let override = +# 5305 "src/ocaml/preprocess/parser_raw.mly" ( Override ) -# 44604 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos_attrs2_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 45812 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos_attrs2_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + ( # 2056 "src/ocaml/preprocess/parser_raw.mly" ( let attrs = attrs1 @ attrs2 in @@ -44613,8 +45821,9 @@ module Tables = struct let docs = symbol_docs _sloc in Opn.mk id ~override ~attrs ~loc ~docs, ext ) -# 44617 "src/ocaml/preprocess/parser_raw.ml" - in +# 45825 "src/ocaml/preprocess/parser_raw.ml" + : (Longident.t Location.loc Parsetree.open_infos * string Location.loc option)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -44634,15 +45843,15 @@ module Tables = struct let _1 : ( # 1124 "src/ocaml/preprocess/parser_raw.mly" (string) -# 44638 "src/ocaml/preprocess/parser_raw.ml" +# 45847 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5054 "src/ocaml/preprocess/parser_raw.mly" +# 5065 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 44646 "src/ocaml/preprocess/parser_raw.ml" +# 45855 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -44663,15 +45872,15 @@ module Tables = struct let _1 : ( # 1074 "src/ocaml/preprocess/parser_raw.mly" (string) -# 44667 "src/ocaml/preprocess/parser_raw.ml" +# 45876 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5055 "src/ocaml/preprocess/parser_raw.mly" +# 5066 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 44675 "src/ocaml/preprocess/parser_raw.ml" +# 45884 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -44692,15 +45901,15 @@ module Tables = struct let _1 : ( # 1075 "src/ocaml/preprocess/parser_raw.mly" (string) -# 44696 "src/ocaml/preprocess/parser_raw.ml" +# 45905 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5056 "src/ocaml/preprocess/parser_raw.mly" +# 5067 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 44704 "src/ocaml/preprocess/parser_raw.ml" +# 45913 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -44742,15 +45951,15 @@ module Tables = struct let _1 : ( # 1073 "src/ocaml/preprocess/parser_raw.mly" (string) -# 44746 "src/ocaml/preprocess/parser_raw.ml" +# 45955 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in let _v : (string) = -# 5057 "src/ocaml/preprocess/parser_raw.mly" +# 5068 "src/ocaml/preprocess/parser_raw.mly" ( "."^ _1 ^"(" ^ _3 ^ ")" ) -# 44754 "src/ocaml/preprocess/parser_raw.ml" +# 45963 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -44799,15 +46008,15 @@ module Tables = struct let _1 : ( # 1073 "src/ocaml/preprocess/parser_raw.mly" (string) -# 44803 "src/ocaml/preprocess/parser_raw.ml" +# 46012 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__5_ in let _v : (string) = -# 5058 "src/ocaml/preprocess/parser_raw.mly" +# 5069 "src/ocaml/preprocess/parser_raw.mly" ( "."^ _1 ^ "(" ^ _3 ^ ")<-" ) -# 44811 "src/ocaml/preprocess/parser_raw.ml" +# 46020 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -44849,15 +46058,15 @@ module Tables = struct let _1 : ( # 1073 "src/ocaml/preprocess/parser_raw.mly" (string) -# 44853 "src/ocaml/preprocess/parser_raw.ml" +# 46062 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in let _v : (string) = -# 5059 "src/ocaml/preprocess/parser_raw.mly" +# 5070 "src/ocaml/preprocess/parser_raw.mly" ( "."^ _1 ^"[" ^ _3 ^ "]" ) -# 44861 "src/ocaml/preprocess/parser_raw.ml" +# 46070 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -44906,15 +46115,15 @@ module Tables = struct let _1 : ( # 1073 "src/ocaml/preprocess/parser_raw.mly" (string) -# 44910 "src/ocaml/preprocess/parser_raw.ml" +# 46119 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__5_ in let _v : (string) = -# 5060 "src/ocaml/preprocess/parser_raw.mly" +# 5071 "src/ocaml/preprocess/parser_raw.mly" ( "."^ _1 ^ "[" ^ _3 ^ "]<-" ) -# 44918 "src/ocaml/preprocess/parser_raw.ml" +# 46127 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -44956,15 +46165,15 @@ module Tables = struct let _1 : ( # 1073 "src/ocaml/preprocess/parser_raw.mly" (string) -# 44960 "src/ocaml/preprocess/parser_raw.ml" +# 46169 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in let _v : (string) = -# 5061 "src/ocaml/preprocess/parser_raw.mly" +# 5072 "src/ocaml/preprocess/parser_raw.mly" ( "."^ _1 ^"{" ^ _3 ^ "}" ) -# 44968 "src/ocaml/preprocess/parser_raw.ml" +# 46177 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -45013,15 +46222,15 @@ module Tables = struct let _1 : ( # 1073 "src/ocaml/preprocess/parser_raw.mly" (string) -# 45017 "src/ocaml/preprocess/parser_raw.ml" +# 46226 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__5_ in let _v : (string) = -# 5062 "src/ocaml/preprocess/parser_raw.mly" +# 5073 "src/ocaml/preprocess/parser_raw.mly" ( "."^ _1 ^ "{" ^ _3 ^ "}<-" ) -# 45025 "src/ocaml/preprocess/parser_raw.ml" +# 46234 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -45042,15 +46251,15 @@ module Tables = struct let _1 : ( # 1137 "src/ocaml/preprocess/parser_raw.mly" (string) -# 45046 "src/ocaml/preprocess/parser_raw.ml" +# 46255 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5063 "src/ocaml/preprocess/parser_raw.mly" +# 5074 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 45054 "src/ocaml/preprocess/parser_raw.ml" +# 46263 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -45073,9 +46282,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5064 "src/ocaml/preprocess/parser_raw.mly" +# 5075 "src/ocaml/preprocess/parser_raw.mly" ( "!" ) -# 45079 "src/ocaml/preprocess/parser_raw.ml" +# 46288 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -45096,21 +46305,23 @@ module Tables = struct let op : ( # 1066 "src/ocaml/preprocess/parser_raw.mly" (string) -# 45100 "src/ocaml/preprocess/parser_raw.ml" +# 46309 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic op in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_op_ in let _endpos = _endpos_op_ in - let _v : (string) = let _1 = -# 5072 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _1 = +# 5083 "src/ocaml/preprocess/parser_raw.mly" ( op ) -# 45108 "src/ocaml/preprocess/parser_raw.ml" - in - -# 5065 "src/ocaml/preprocess/parser_raw.mly" +# 46318 "src/ocaml/preprocess/parser_raw.ml" + in + ( +# 5076 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 45113 "src/ocaml/preprocess/parser_raw.ml" - in +# 46323 "src/ocaml/preprocess/parser_raw.ml" + : (string)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -45131,16 +46342,18 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v : (string) = let _1 = -# 5074 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _1 = +# 5085 "src/ocaml/preprocess/parser_raw.mly" ("@") -# 45138 "src/ocaml/preprocess/parser_raw.ml" - in - -# 5065 "src/ocaml/preprocess/parser_raw.mly" +# 46350 "src/ocaml/preprocess/parser_raw.ml" + in + ( +# 5076 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 45143 "src/ocaml/preprocess/parser_raw.ml" - in +# 46355 "src/ocaml/preprocess/parser_raw.ml" + : (string)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -45161,16 +46374,18 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v : (string) = let _1 = -# 5075 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _1 = +# 5086 "src/ocaml/preprocess/parser_raw.mly" ("@@") -# 45168 "src/ocaml/preprocess/parser_raw.ml" - in - -# 5065 "src/ocaml/preprocess/parser_raw.mly" +# 46382 "src/ocaml/preprocess/parser_raw.ml" + in + ( +# 5076 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 45173 "src/ocaml/preprocess/parser_raw.ml" - in +# 46387 "src/ocaml/preprocess/parser_raw.ml" + : (string)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -45190,21 +46405,23 @@ module Tables = struct let op : ( # 1069 "src/ocaml/preprocess/parser_raw.mly" (string) -# 45194 "src/ocaml/preprocess/parser_raw.ml" +# 46409 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic op in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_op_ in let _endpos = _endpos_op_ in - let _v : (string) = let _1 = -# 5076 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _1 = +# 5087 "src/ocaml/preprocess/parser_raw.mly" ( op ) -# 45202 "src/ocaml/preprocess/parser_raw.ml" - in - -# 5065 "src/ocaml/preprocess/parser_raw.mly" +# 46418 "src/ocaml/preprocess/parser_raw.ml" + in + ( +# 5076 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 45207 "src/ocaml/preprocess/parser_raw.ml" - in +# 46423 "src/ocaml/preprocess/parser_raw.ml" + : (string)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -45224,21 +46441,23 @@ module Tables = struct let op : ( # 1070 "src/ocaml/preprocess/parser_raw.mly" (string) -# 45228 "src/ocaml/preprocess/parser_raw.ml" +# 46445 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic op in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_op_ in let _endpos = _endpos_op_ in - let _v : (string) = let _1 = -# 5077 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _1 = +# 5088 "src/ocaml/preprocess/parser_raw.mly" ( op ) -# 45236 "src/ocaml/preprocess/parser_raw.ml" - in - -# 5065 "src/ocaml/preprocess/parser_raw.mly" +# 46454 "src/ocaml/preprocess/parser_raw.ml" + in + ( +# 5076 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 45241 "src/ocaml/preprocess/parser_raw.ml" - in +# 46459 "src/ocaml/preprocess/parser_raw.ml" + : (string)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -45258,28 +46477,30 @@ module Tables = struct let op : ( # 1071 "src/ocaml/preprocess/parser_raw.mly" (string) -# 45262 "src/ocaml/preprocess/parser_raw.ml" +# 46481 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic op in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_op_ in let _endpos = _endpos_op_ in - let _v : (string) = let _1 = - let op = -# 5068 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _1 = + let op = +# 5079 "src/ocaml/preprocess/parser_raw.mly" ( op ) -# 45271 "src/ocaml/preprocess/parser_raw.ml" - in - -# 5078 "src/ocaml/preprocess/parser_raw.mly" +# 46491 "src/ocaml/preprocess/parser_raw.ml" + in + +# 5089 "src/ocaml/preprocess/parser_raw.mly" ( op ) -# 45276 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 5065 "src/ocaml/preprocess/parser_raw.mly" +# 46496 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 5076 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 45282 "src/ocaml/preprocess/parser_raw.ml" - in +# 46502 "src/ocaml/preprocess/parser_raw.ml" + : (string)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -45300,23 +46521,25 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v : (string) = let _1 = - let op = -# 5069 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _1 = + let op = +# 5080 "src/ocaml/preprocess/parser_raw.mly" ( "mod" ) -# 45308 "src/ocaml/preprocess/parser_raw.ml" - in - -# 5078 "src/ocaml/preprocess/parser_raw.mly" +# 46530 "src/ocaml/preprocess/parser_raw.ml" + in + +# 5089 "src/ocaml/preprocess/parser_raw.mly" ( op ) -# 45313 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 5065 "src/ocaml/preprocess/parser_raw.mly" +# 46535 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 5076 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 45319 "src/ocaml/preprocess/parser_raw.ml" - in +# 46541 "src/ocaml/preprocess/parser_raw.ml" + : (string)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -45336,21 +46559,23 @@ module Tables = struct let op : ( # 1072 "src/ocaml/preprocess/parser_raw.mly" (string) -# 45340 "src/ocaml/preprocess/parser_raw.ml" +# 46563 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic op in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_op_ in let _endpos = _endpos_op_ in - let _v : (string) = let _1 = -# 5079 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _1 = +# 5090 "src/ocaml/preprocess/parser_raw.mly" ( op ) -# 45348 "src/ocaml/preprocess/parser_raw.ml" - in - -# 5065 "src/ocaml/preprocess/parser_raw.mly" +# 46572 "src/ocaml/preprocess/parser_raw.ml" + in + ( +# 5076 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 45353 "src/ocaml/preprocess/parser_raw.ml" - in +# 46577 "src/ocaml/preprocess/parser_raw.ml" + : (string)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -45371,16 +46596,18 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v : (string) = let _1 = -# 5080 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _1 = +# 5091 "src/ocaml/preprocess/parser_raw.mly" ("+") -# 45378 "src/ocaml/preprocess/parser_raw.ml" - in - -# 5065 "src/ocaml/preprocess/parser_raw.mly" +# 46604 "src/ocaml/preprocess/parser_raw.ml" + in + ( +# 5076 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 45383 "src/ocaml/preprocess/parser_raw.ml" - in +# 46609 "src/ocaml/preprocess/parser_raw.ml" + : (string)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -45401,16 +46628,18 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v : (string) = let _1 = -# 5081 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _1 = +# 5092 "src/ocaml/preprocess/parser_raw.mly" ("+.") -# 45408 "src/ocaml/preprocess/parser_raw.ml" - in - -# 5065 "src/ocaml/preprocess/parser_raw.mly" +# 46636 "src/ocaml/preprocess/parser_raw.ml" + in + ( +# 5076 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 45413 "src/ocaml/preprocess/parser_raw.ml" - in +# 46641 "src/ocaml/preprocess/parser_raw.ml" + : (string)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -45431,16 +46660,18 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v : (string) = let _1 = -# 5082 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _1 = +# 5093 "src/ocaml/preprocess/parser_raw.mly" ("+=") -# 45438 "src/ocaml/preprocess/parser_raw.ml" - in - -# 5065 "src/ocaml/preprocess/parser_raw.mly" +# 46668 "src/ocaml/preprocess/parser_raw.ml" + in + ( +# 5076 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 45443 "src/ocaml/preprocess/parser_raw.ml" - in +# 46673 "src/ocaml/preprocess/parser_raw.ml" + : (string)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -45461,16 +46692,18 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v : (string) = let _1 = -# 5083 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _1 = +# 5094 "src/ocaml/preprocess/parser_raw.mly" ("-") -# 45468 "src/ocaml/preprocess/parser_raw.ml" - in - -# 5065 "src/ocaml/preprocess/parser_raw.mly" +# 46700 "src/ocaml/preprocess/parser_raw.ml" + in + ( +# 5076 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 45473 "src/ocaml/preprocess/parser_raw.ml" - in +# 46705 "src/ocaml/preprocess/parser_raw.ml" + : (string)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -45491,16 +46724,18 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v : (string) = let _1 = -# 5084 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _1 = +# 5095 "src/ocaml/preprocess/parser_raw.mly" ("-.") -# 45498 "src/ocaml/preprocess/parser_raw.ml" - in - -# 5065 "src/ocaml/preprocess/parser_raw.mly" +# 46732 "src/ocaml/preprocess/parser_raw.ml" + in + ( +# 5076 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 45503 "src/ocaml/preprocess/parser_raw.ml" - in +# 46737 "src/ocaml/preprocess/parser_raw.ml" + : (string)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -45521,16 +46756,18 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v : (string) = let _1 = -# 5085 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _1 = +# 5096 "src/ocaml/preprocess/parser_raw.mly" ("*") -# 45528 "src/ocaml/preprocess/parser_raw.ml" - in - -# 5065 "src/ocaml/preprocess/parser_raw.mly" +# 46764 "src/ocaml/preprocess/parser_raw.ml" + in + ( +# 5076 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 45533 "src/ocaml/preprocess/parser_raw.ml" - in +# 46769 "src/ocaml/preprocess/parser_raw.ml" + : (string)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -45551,16 +46788,18 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v : (string) = let _1 = -# 5086 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _1 = +# 5097 "src/ocaml/preprocess/parser_raw.mly" ("%") -# 45558 "src/ocaml/preprocess/parser_raw.ml" - in - -# 5065 "src/ocaml/preprocess/parser_raw.mly" +# 46796 "src/ocaml/preprocess/parser_raw.ml" + in + ( +# 5076 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 45563 "src/ocaml/preprocess/parser_raw.ml" - in +# 46801 "src/ocaml/preprocess/parser_raw.ml" + : (string)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -45581,16 +46820,18 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v : (string) = let _1 = -# 5087 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _1 = +# 5098 "src/ocaml/preprocess/parser_raw.mly" ("=") -# 45588 "src/ocaml/preprocess/parser_raw.ml" - in - -# 5065 "src/ocaml/preprocess/parser_raw.mly" +# 46828 "src/ocaml/preprocess/parser_raw.ml" + in + ( +# 5076 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 45593 "src/ocaml/preprocess/parser_raw.ml" - in +# 46833 "src/ocaml/preprocess/parser_raw.ml" + : (string)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -45611,16 +46852,18 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v : (string) = let _1 = -# 5088 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _1 = +# 5099 "src/ocaml/preprocess/parser_raw.mly" ("<") -# 45618 "src/ocaml/preprocess/parser_raw.ml" - in - -# 5065 "src/ocaml/preprocess/parser_raw.mly" +# 46860 "src/ocaml/preprocess/parser_raw.ml" + in + ( +# 5076 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 45623 "src/ocaml/preprocess/parser_raw.ml" - in +# 46865 "src/ocaml/preprocess/parser_raw.ml" + : (string)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -45641,16 +46884,18 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v : (string) = let _1 = -# 5089 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _1 = +# 5100 "src/ocaml/preprocess/parser_raw.mly" (">") -# 45648 "src/ocaml/preprocess/parser_raw.ml" - in - -# 5065 "src/ocaml/preprocess/parser_raw.mly" +# 46892 "src/ocaml/preprocess/parser_raw.ml" + in + ( +# 5076 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 45653 "src/ocaml/preprocess/parser_raw.ml" - in +# 46897 "src/ocaml/preprocess/parser_raw.ml" + : (string)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -45671,16 +46916,18 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v : (string) = let _1 = -# 5090 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _1 = +# 5101 "src/ocaml/preprocess/parser_raw.mly" ("or") -# 45678 "src/ocaml/preprocess/parser_raw.ml" - in - -# 5065 "src/ocaml/preprocess/parser_raw.mly" +# 46924 "src/ocaml/preprocess/parser_raw.ml" + in + ( +# 5076 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 45683 "src/ocaml/preprocess/parser_raw.ml" - in +# 46929 "src/ocaml/preprocess/parser_raw.ml" + : (string)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -45701,16 +46948,18 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v : (string) = let _1 = -# 5091 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _1 = +# 5102 "src/ocaml/preprocess/parser_raw.mly" ("||") -# 45708 "src/ocaml/preprocess/parser_raw.ml" - in - -# 5065 "src/ocaml/preprocess/parser_raw.mly" +# 46956 "src/ocaml/preprocess/parser_raw.ml" + in + ( +# 5076 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 45713 "src/ocaml/preprocess/parser_raw.ml" - in +# 46961 "src/ocaml/preprocess/parser_raw.ml" + : (string)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -45731,16 +46980,18 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v : (string) = let _1 = -# 5092 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _1 = +# 5103 "src/ocaml/preprocess/parser_raw.mly" ("&") -# 45738 "src/ocaml/preprocess/parser_raw.ml" - in - -# 5065 "src/ocaml/preprocess/parser_raw.mly" +# 46988 "src/ocaml/preprocess/parser_raw.ml" + in + ( +# 5076 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 45743 "src/ocaml/preprocess/parser_raw.ml" - in +# 46993 "src/ocaml/preprocess/parser_raw.ml" + : (string)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -45761,16 +47012,18 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v : (string) = let _1 = -# 5093 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _1 = +# 5104 "src/ocaml/preprocess/parser_raw.mly" ("&&") -# 45768 "src/ocaml/preprocess/parser_raw.ml" - in - -# 5065 "src/ocaml/preprocess/parser_raw.mly" +# 47020 "src/ocaml/preprocess/parser_raw.ml" + in + ( +# 5076 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 45773 "src/ocaml/preprocess/parser_raw.ml" - in +# 47025 "src/ocaml/preprocess/parser_raw.ml" + : (string)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -45791,16 +47044,18 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v : (string) = let _1 = -# 5094 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _1 = +# 5105 "src/ocaml/preprocess/parser_raw.mly" (":=") -# 45798 "src/ocaml/preprocess/parser_raw.ml" - in - -# 5065 "src/ocaml/preprocess/parser_raw.mly" +# 47052 "src/ocaml/preprocess/parser_raw.ml" + in + ( +# 5076 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 45803 "src/ocaml/preprocess/parser_raw.ml" - in +# 47057 "src/ocaml/preprocess/parser_raw.ml" + : (string)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -45822,9 +47077,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (bool) = -# 4950 "src/ocaml/preprocess/parser_raw.mly" +# 4961 "src/ocaml/preprocess/parser_raw.mly" ( true ) -# 45828 "src/ocaml/preprocess/parser_raw.ml" +# 47083 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -45840,9 +47095,9 @@ module Tables = struct let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in let _endpos = _startpos in let _v : (bool) = -# 4951 "src/ocaml/preprocess/parser_raw.mly" +# 4962 "src/ocaml/preprocess/parser_raw.mly" ( false ) -# 45846 "src/ocaml/preprocess/parser_raw.ml" +# 47101 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -45858,9 +47113,9 @@ module Tables = struct let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in let _endpos = _startpos in let _v : (unit option) = -# 114 "" +# 111 "" ( None ) -# 45864 "src/ocaml/preprocess/parser_raw.ml" +# 47119 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -45883,9 +47138,9 @@ module Tables = struct let _startpos = _startpos_x_ in let _endpos = _endpos_x_ in let _v : (unit option) = -# 116 "" +# 114 "" ( Some x ) -# 45889 "src/ocaml/preprocess/parser_raw.ml" +# 47144 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -45901,9 +47156,9 @@ module Tables = struct let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in let _endpos = _startpos in let _v : (unit option) = -# 114 "" +# 111 "" ( None ) -# 45907 "src/ocaml/preprocess/parser_raw.ml" +# 47162 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -45926,9 +47181,9 @@ module Tables = struct let _startpos = _startpos_x_ in let _endpos = _endpos_x_ in let _v : (unit option) = -# 116 "" +# 114 "" ( Some x ) -# 45932 "src/ocaml/preprocess/parser_raw.ml" +# 47187 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -45944,9 +47199,9 @@ module Tables = struct let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in let _endpos = _startpos in let _v : ((Parsetree.type_constraint option * Parsetree.modes) option) = -# 114 "" +# 111 "" ( None ) -# 45950 "src/ocaml/preprocess/parser_raw.ml" +# 47205 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -45968,31 +47223,33 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v : ((Parsetree.type_constraint option * Parsetree.modes) option) = let x = - let _1 = - let _2 = -# 4688 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let x = + let _1 = + let _2 = +# 4699 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 45977 "src/ocaml/preprocess/parser_raw.ml" - in - -# 3675 "src/ocaml/preprocess/parser_raw.mly" +# 47233 "src/ocaml/preprocess/parser_raw.ml" + in + +# 3686 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 45982 "src/ocaml/preprocess/parser_raw.ml" +# 47238 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 3680 "src/ocaml/preprocess/parser_raw.mly" +# 3691 "src/ocaml/preprocess/parser_raw.mly" ( let ty, modes = _1 in Some ty, modes ) -# 45989 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 116 "" +# 47245 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 114 "" ( Some x ) -# 45995 "src/ocaml/preprocess/parser_raw.ml" - in +# 47251 "src/ocaml/preprocess/parser_raw.ml" + : ((Parsetree.type_constraint option * Parsetree.modes) option)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -46020,34 +47277,36 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined1_ in - let _v : ((Parsetree.type_constraint option * Parsetree.modes) option) = let x = - let _1 = - let _2 = - let _1 = _1_inlined1 in - -# 4689 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let x = + let _1 = + let _2 = + let _1 = _1_inlined1 in + +# 4700 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 46031 "src/ocaml/preprocess/parser_raw.ml" +# 47289 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 3675 "src/ocaml/preprocess/parser_raw.mly" +# 3686 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 46037 "src/ocaml/preprocess/parser_raw.ml" +# 47295 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 3680 "src/ocaml/preprocess/parser_raw.mly" +# 3691 "src/ocaml/preprocess/parser_raw.mly" ( let ty, modes = _1 in Some ty, modes ) -# 46044 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 116 "" +# 47302 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 114 "" ( Some x ) -# 46050 "src/ocaml/preprocess/parser_raw.ml" - in +# 47308 "src/ocaml/preprocess/parser_raw.ml" + : ((Parsetree.type_constraint option * Parsetree.modes) option)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -46068,16 +47327,18 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v : ((Parsetree.type_constraint option * Parsetree.modes) option) = let x = -# 3683 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let x = +# 3694 "src/ocaml/preprocess/parser_raw.mly" ( None, _1 ) -# 46075 "src/ocaml/preprocess/parser_raw.ml" - in - -# 116 "" +# 47335 "src/ocaml/preprocess/parser_raw.ml" + in + ( +# 114 "" ( Some x ) -# 46080 "src/ocaml/preprocess/parser_raw.ml" - in +# 47340 "src/ocaml/preprocess/parser_raw.ml" + : ((Parsetree.type_constraint option * Parsetree.modes) option)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -46092,9 +47353,9 @@ module Tables = struct let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in let _endpos = _startpos in let _v : (Parsetree.jkind_annotation option) = -# 114 "" +# 111 "" ( None ) -# 46098 "src/ocaml/preprocess/parser_raw.ml" +# 47359 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -46117,9 +47378,9 @@ module Tables = struct let _startpos = _startpos_x_ in let _endpos = _endpos_x_ in let _v : (Parsetree.jkind_annotation option) = -# 116 "" +# 114 "" ( Some x ) -# 46123 "src/ocaml/preprocess/parser_raw.ml" +# 47384 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -46135,9 +47396,9 @@ module Tables = struct let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in let _endpos = _startpos in let _v : (string Location.loc option) = -# 114 "" +# 111 "" ( None ) -# 46141 "src/ocaml/preprocess/parser_raw.ml" +# 47402 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -46164,35 +47425,37 @@ module Tables = struct let _1_inlined1 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 46168 "src/ocaml/preprocess/parser_raw.ml" +# 47429 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined1_ in - let _v : (string Location.loc option) = let x = + let _v = let x = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let x = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 46183 "src/ocaml/preprocess/parser_raw.ml" +# 47445 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 183 "" +# 188 "" ( x ) -# 46189 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 116 "" +# 47451 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 114 "" ( Some x ) -# 46195 "src/ocaml/preprocess/parser_raw.ml" - in +# 47457 "src/ocaml/preprocess/parser_raw.ml" + : (string Location.loc option)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -46207,9 +47470,9 @@ module Tables = struct let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in let _endpos = _startpos in let _v : (Parsetree.core_type option) = -# 114 "" +# 111 "" ( None ) -# 46213 "src/ocaml/preprocess/parser_raw.ml" +# 47476 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -46238,16 +47501,18 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_x_ in - let _v : (Parsetree.core_type option) = let x = -# 183 "" + let _v = + let x = +# 188 "" ( x ) -# 46245 "src/ocaml/preprocess/parser_raw.ml" - in - -# 116 "" +# 47509 "src/ocaml/preprocess/parser_raw.ml" + in + ( +# 114 "" ( Some x ) -# 46250 "src/ocaml/preprocess/parser_raw.ml" - in +# 47514 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type option)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -46262,9 +47527,9 @@ module Tables = struct let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in let _endpos = _startpos in let _v : (Parsetree.expression option) = -# 114 "" +# 111 "" ( None ) -# 46268 "src/ocaml/preprocess/parser_raw.ml" +# 47533 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -46293,31 +47558,33 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined1_ in - let _v : (Parsetree.expression option) = let x = + let _v = let x = - let _1 = _1_inlined1 in - let _1 = + let x = + let _1 = _1_inlined1 in + let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 46303 "src/ocaml/preprocess/parser_raw.ml" - in - -# 2981 "src/ocaml/preprocess/parser_raw.mly" +# 47569 "src/ocaml/preprocess/parser_raw.ml" + in + +# 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 46308 "src/ocaml/preprocess/parser_raw.ml" +# 47574 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 183 "" +# 188 "" ( x ) -# 46314 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 116 "" +# 47580 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 114 "" ( Some x ) -# 46320 "src/ocaml/preprocess/parser_raw.ml" - in +# 47586 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression option)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -46366,50 +47633,51 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_xs_ in - let _v : (Parsetree.expression option) = let x = + let _v = let x = - let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in - let _1 = - let _3 = - let xs = - let xs = -# 253 "" + let x = + let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in + let _1 = + let _3 = + let xs = + let xs = +# 264 "" ( List.rev xs ) -# 46379 "src/ocaml/preprocess/parser_raw.ml" - in - +# 47647 "src/ocaml/preprocess/parser_raw.ml" + in + # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 46384 "src/ocaml/preprocess/parser_raw.ml" +# 47652 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 3499 "src/ocaml/preprocess/parser_raw.mly" +# 3510 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 46390 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__3_ = _endpos_xs_ in - let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in +# 47658 "src/ocaml/preprocess/parser_raw.ml" -# 5392 "src/ocaml/preprocess/parser_raw.mly" + in + let _endpos__3_ = _endpos_xs_ in + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in + let _2 = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 46401 "src/ocaml/preprocess/parser_raw.ml" +# 47669 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 5405 "src/ocaml/preprocess/parser_raw.mly" +# 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 46407 "src/ocaml/preprocess/parser_raw.ml" +# 47675 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 2718 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in @@ -46423,26 +47691,27 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 46427 "src/ocaml/preprocess/parser_raw.ml" +# 47695 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 2985 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 47701 "src/ocaml/preprocess/parser_raw.ml" in -# 2981 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 46433 "src/ocaml/preprocess/parser_raw.ml" +# 188 "" + ( x ) +# 47707 "src/ocaml/preprocess/parser_raw.ml" in - -# 183 "" - ( x ) -# 46439 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 116 "" + ( +# 114 "" ( Some x ) -# 46445 "src/ocaml/preprocess/parser_raw.ml" - in +# 47713 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression option)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -46457,9 +47726,9 @@ module Tables = struct let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in let _endpos = _startpos in let _v : (Parsetree.module_type option) = -# 114 "" +# 111 "" ( None ) -# 46463 "src/ocaml/preprocess/parser_raw.ml" +# 47732 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -46488,16 +47757,18 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_x_ in - let _v : (Parsetree.module_type option) = let x = -# 183 "" + let _v = + let x = +# 188 "" ( x ) -# 46495 "src/ocaml/preprocess/parser_raw.ml" - in - -# 116 "" +# 47765 "src/ocaml/preprocess/parser_raw.ml" + in + ( +# 114 "" ( Some x ) -# 46500 "src/ocaml/preprocess/parser_raw.ml" - in +# 47770 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.module_type option)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -46512,9 +47783,9 @@ module Tables = struct let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in let _endpos = _startpos in let _v : (Parsetree.pattern option) = -# 114 "" +# 111 "" ( None ) -# 46518 "src/ocaml/preprocess/parser_raw.ml" +# 47789 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -46543,16 +47814,18 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_x_ in - let _v : (Parsetree.pattern option) = let x = -# 183 "" + let _v = + let x = +# 188 "" ( x ) -# 46550 "src/ocaml/preprocess/parser_raw.ml" - in - -# 116 "" +# 47822 "src/ocaml/preprocess/parser_raw.ml" + in + ( +# 114 "" ( Some x ) -# 46555 "src/ocaml/preprocess/parser_raw.ml" - in +# 47827 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.pattern option)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -46567,9 +47840,9 @@ module Tables = struct let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in let _endpos = _startpos in let _v : (Parsetree.expression option) = -# 114 "" +# 111 "" ( None ) -# 46573 "src/ocaml/preprocess/parser_raw.ml" +# 47846 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -46598,16 +47871,18 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_x_ in - let _v : (Parsetree.expression option) = let x = -# 183 "" + let _v = + let x = +# 188 "" ( x ) -# 46605 "src/ocaml/preprocess/parser_raw.ml" - in - -# 116 "" +# 47879 "src/ocaml/preprocess/parser_raw.ml" + in + ( +# 114 "" ( Some x ) -# 46610 "src/ocaml/preprocess/parser_raw.ml" - in +# 47884 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression option)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -46622,9 +47897,9 @@ module Tables = struct let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in let _endpos = _startpos in let _v : (Parsetree.type_constraint option) = -# 114 "" +# 111 "" ( None ) -# 46628 "src/ocaml/preprocess/parser_raw.ml" +# 47903 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -46647,9 +47922,9 @@ module Tables = struct let _startpos = _startpos_x_ in let _endpos = _endpos_x_ in let _v : (Parsetree.type_constraint option) = -# 116 "" +# 114 "" ( Some x ) -# 46653 "src/ocaml/preprocess/parser_raw.ml" +# 47928 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -46665,9 +47940,9 @@ module Tables = struct let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in let _endpos = _startpos in let _v : (Parsetree.modalities) = -# 4713 "src/ocaml/preprocess/parser_raw.mly" +# 4724 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 46671 "src/ocaml/preprocess/parser_raw.ml" +# 47946 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -46696,19 +47971,21 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined1_ in - let _v : (Parsetree.modalities) = let _2 = - let _1 = _1_inlined1 in - -# 4698 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _2 = + let _1 = _1_inlined1 in + +# 4709 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 46705 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4714 "src/ocaml/preprocess/parser_raw.mly" +# 47981 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4725 "src/ocaml/preprocess/parser_raw.mly" ( _2 ) -# 46711 "src/ocaml/preprocess/parser_raw.ml" - in +# 47987 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.modalities)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -46723,9 +48000,9 @@ module Tables = struct let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in let _endpos = _startpos in let _v : (Parsetree.modalities) = -# 4707 "src/ocaml/preprocess/parser_raw.mly" +# 4718 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 46729 "src/ocaml/preprocess/parser_raw.ml" +# 48006 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -46754,19 +48031,21 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined1_ in - let _v : (Parsetree.modalities) = let _2 = - let _1 = _1_inlined1 in - -# 4698 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _2 = + let _1 = _1_inlined1 in + +# 4709 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 46763 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4708 "src/ocaml/preprocess/parser_raw.mly" +# 48041 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4719 "src/ocaml/preprocess/parser_raw.mly" ( _2 ) -# 46769 "src/ocaml/preprocess/parser_raw.ml" - in +# 48047 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.modalities)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -46794,12 +48073,13 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in - let _v : (Parsetree.function_constraint) = let _3 = -# 4688 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _3 = +# 4699 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 46801 "src/ocaml/preprocess/parser_raw.ml" - in - +# 48081 "src/ocaml/preprocess/parser_raw.ml" + in + ( # 2922 "src/ocaml/preprocess/parser_raw.mly" ( { ret_type_constraint = Some (Pconstraint _2) @@ -46807,8 +48087,9 @@ module Tables = struct ; ret_mode_annotations = _3 } ) -# 46811 "src/ocaml/preprocess/parser_raw.ml" - in +# 48091 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.function_constraint)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -46843,15 +48124,16 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined1_ in - let _v : (Parsetree.function_constraint) = let _3 = - let _1 = _1_inlined1 in - -# 4689 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _3 = + let _1 = _1_inlined1 in + +# 4700 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 46852 "src/ocaml/preprocess/parser_raw.ml" - - in - +# 48134 "src/ocaml/preprocess/parser_raw.ml" + + in + ( # 2922 "src/ocaml/preprocess/parser_raw.mly" ( { ret_type_constraint = Some (Pconstraint _2) @@ -46859,8 +48141,9 @@ module Tables = struct ; ret_mode_annotations = _3 } ) -# 46863 "src/ocaml/preprocess/parser_raw.ml" - in +# 48145 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.function_constraint)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -46889,7 +48172,7 @@ module Tables = struct ; ret_mode_annotations = _1 } ) -# 46893 "src/ocaml/preprocess/parser_raw.ml" +# 48176 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -46907,7 +48190,7 @@ module Tables = struct let _v : (Parsetree.function_constraint) = # 2934 "src/ocaml/preprocess/parser_raw.mly" ( empty_body_constraint ) -# 46911 "src/ocaml/preprocess/parser_raw.ml" +# 48194 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -46928,15 +48211,15 @@ module Tables = struct let _1 : ( # 1116 "src/ocaml/preprocess/parser_raw.mly" (string) -# 46932 "src/ocaml/preprocess/parser_raw.ml" +# 48215 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5305 "src/ocaml/preprocess/parser_raw.mly" +# 5316 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 46940 "src/ocaml/preprocess/parser_raw.ml" +# 48223 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -46970,16 +48253,16 @@ module Tables = struct let _2 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 46974 "src/ocaml/preprocess/parser_raw.ml" +# 48257 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _2 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : (string) = -# 5306 "src/ocaml/preprocess/parser_raw.mly" +# 5317 "src/ocaml/preprocess/parser_raw.mly" ( _2 ) -# 46983 "src/ocaml/preprocess/parser_raw.ml" +# 48266 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -47029,19 +48312,21 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__6_ in - let _v : (Parsetree.module_expr) = let mm = -# 4688 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let mm = +# 4699 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 47036 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__6_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 48320 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__6_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + ( # 1786 "src/ocaml/preprocess/parser_raw.mly" ( mkmod ~loc:_sloc (Pmod_constraint(me, Some mty, mm)) ) -# 47044 "src/ocaml/preprocess/parser_raw.ml" - in +# 48328 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.module_expr)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -47097,22 +48382,24 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__6_ in - let _v : (Parsetree.module_expr) = let mm = - let _1 = _1_inlined1 in - -# 4689 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let mm = + let _1 = _1_inlined1 in + +# 4700 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 47106 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__6_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 48392 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__6_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + ( # 1786 "src/ocaml/preprocess/parser_raw.mly" ( mkmod ~loc:_sloc (Pmod_constraint(me, Some mty, mm)) ) -# 47115 "src/ocaml/preprocess/parser_raw.ml" - in +# 48401 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.module_expr)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -47154,14 +48441,16 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in - let _v : (Parsetree.module_expr) = let _endpos = _endpos__4_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let _v = + let _endpos = _endpos__4_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + ( # 1788 "src/ocaml/preprocess/parser_raw.mly" ( mkmod ~loc:_sloc (Pmod_constraint(me, None, mm)) ) -# 47164 "src/ocaml/preprocess/parser_raw.ml" - in +# 48452 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.module_expr)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -47199,7 +48488,7 @@ module Tables = struct let _v : (Parsetree.module_expr) = # 1795 "src/ocaml/preprocess/parser_raw.mly" ( me (* TODO consider reloc *) ) -# 47203 "src/ocaml/preprocess/parser_raw.ml" +# 48492 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -47249,42 +48538,44 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__5_ in - let _v : (Parsetree.module_expr) = let e = - let _1 = _1_inlined2 in + let _v = let e = - let _1 = + let _1 = _1_inlined2 in + let e = + let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 47259 "src/ocaml/preprocess/parser_raw.ml" - in - -# 2981 "src/ocaml/preprocess/parser_raw.mly" +# 48549 "src/ocaml/preprocess/parser_raw.ml" + in + +# 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 47264 "src/ocaml/preprocess/parser_raw.ml" +# 48554 "src/ocaml/preprocess/parser_raw.ml" + + in - in - # 1818 "src/ocaml/preprocess/parser_raw.mly" ( e ) -# 47270 "src/ocaml/preprocess/parser_raw.ml" - - in - let attrs = - let _1 = _1_inlined1 in - -# 5392 "src/ocaml/preprocess/parser_raw.mly" +# 48560 "src/ocaml/preprocess/parser_raw.ml" + + in + let attrs = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 47278 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__5_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 48568 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__5_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + ( # 1803 "src/ocaml/preprocess/parser_raw.mly" ( mkmod ~loc:_sloc ~attrs (Pmod_unpack e) ) -# 47287 "src/ocaml/preprocess/parser_raw.ml" - in +# 48577 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.module_expr)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -47354,50 +48645,51 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__5_ in - let _v : (Parsetree.module_expr) = let e = - let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined2_, _1_inlined4, _1_inlined3) in + let _v = let e = - let _1 = - let _3 = - let xs = - let xs = -# 253 "" + let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined2_, _1_inlined4, _1_inlined3) in + let e = + let _1 = + let _3 = + let xs = + let xs = +# 264 "" ( List.rev xs ) -# 47367 "src/ocaml/preprocess/parser_raw.ml" - in - +# 48659 "src/ocaml/preprocess/parser_raw.ml" + in + # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 47372 "src/ocaml/preprocess/parser_raw.ml" +# 48664 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 3499 "src/ocaml/preprocess/parser_raw.mly" +# 3510 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 47378 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__3_ = _endpos_xs_ in - let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in +# 48670 "src/ocaml/preprocess/parser_raw.ml" -# 5392 "src/ocaml/preprocess/parser_raw.mly" + in + let _endpos__3_ = _endpos_xs_ in + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in + let _2 = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 47389 "src/ocaml/preprocess/parser_raw.ml" +# 48681 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 5405 "src/ocaml/preprocess/parser_raw.mly" +# 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 47395 "src/ocaml/preprocess/parser_raw.ml" +# 48687 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 2718 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in @@ -47411,37 +48703,38 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 47415 "src/ocaml/preprocess/parser_raw.ml" +# 48707 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 2981 "src/ocaml/preprocess/parser_raw.mly" +# 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 47421 "src/ocaml/preprocess/parser_raw.ml" +# 48713 "src/ocaml/preprocess/parser_raw.ml" + + in - in - # 1818 "src/ocaml/preprocess/parser_raw.mly" ( e ) -# 47427 "src/ocaml/preprocess/parser_raw.ml" - - in - let attrs = - let _1 = _1_inlined1 in - -# 5392 "src/ocaml/preprocess/parser_raw.mly" +# 48719 "src/ocaml/preprocess/parser_raw.ml" + + in + let attrs = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 47435 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__5_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 48727 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__5_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + ( # 1803 "src/ocaml/preprocess/parser_raw.mly" ( mkmod ~loc:_sloc ~attrs (Pmod_unpack e) ) -# 47444 "src/ocaml/preprocess/parser_raw.ml" - in +# 48736 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.module_expr)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -47504,60 +48797,62 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__5_ in - let _v : (Parsetree.module_expr) = let e = - let (_endpos__1_inlined1_, _startpos__1_inlined1_, _startpos__1_, _1_inlined1, _1) = (_endpos__1_inlined3_, _startpos__1_inlined3_, _startpos__1_inlined2_, _1_inlined3, _1_inlined2) in - let ty = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 4925 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let e = + let (_endpos__1_inlined1_, _startpos__1_inlined1_, _startpos__1_, _1_inlined1, _1) = (_endpos__1_inlined3_, _startpos__1_inlined3_, _startpos__1_inlined2_, _1_inlined3, _1_inlined2) in + let ty = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 4936 "src/ocaml/preprocess/parser_raw.mly" ( let (lid, cstrs, attrs) = package_type_of_module_type _1 in let descr = Ptyp_package (lid, cstrs) in mktyp ~loc:_sloc ~attrs descr ) -# 47520 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_ty_ = _endpos__1_inlined1_ in - let e = - let _1 = +# 48814 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_ty_ = _endpos__1_inlined1_ in + let e = + let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 47528 "src/ocaml/preprocess/parser_raw.ml" - in - -# 2981 "src/ocaml/preprocess/parser_raw.mly" +# 48822 "src/ocaml/preprocess/parser_raw.ml" + in + +# 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 47533 "src/ocaml/preprocess/parser_raw.ml" +# 48827 "src/ocaml/preprocess/parser_raw.ml" + + in + let _startpos_e_ = _startpos__1_ in + let _endpos = _endpos_ty_ in + let _startpos = _startpos_e_ in + let _loc = (_startpos, _endpos) in - in - let _startpos_e_ = _startpos__1_ in - let _endpos = _endpos_ty_ in - let _startpos = _startpos_e_ in - let _loc = (_startpos, _endpos) in - # 1820 "src/ocaml/preprocess/parser_raw.mly" ( ghexp_constraint ~loc:_loc ~exp:e ~cty:(Some ty) ~modes:[] ) -# 47543 "src/ocaml/preprocess/parser_raw.ml" - - in - let attrs = - let _1 = _1_inlined1 in - -# 5392 "src/ocaml/preprocess/parser_raw.mly" +# 48837 "src/ocaml/preprocess/parser_raw.ml" + + in + let attrs = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 47551 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__5_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 48845 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__5_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + ( # 1803 "src/ocaml/preprocess/parser_raw.mly" ( mkmod ~loc:_sloc ~attrs (Pmod_unpack e) ) -# 47560 "src/ocaml/preprocess/parser_raw.ml" - in +# 48854 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.module_expr)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -47641,64 +48936,65 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__5_ in - let _v : (Parsetree.module_expr) = let e = - let (_endpos__1_inlined3_, _startpos__1_inlined3_, _startpos__1_, _1_inlined3, _1_inlined2, _1_inlined1) = (_endpos__1_inlined5_, _startpos__1_inlined5_, _startpos__1_inlined2_, _1_inlined5, _1_inlined4, _1_inlined3) in - let ty = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined3_, _startpos__1_inlined3_, _1_inlined3) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 4925 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let e = + let (_endpos__1_inlined3_, _startpos__1_inlined3_, _startpos__1_, _1_inlined3, _1_inlined2, _1_inlined1) = (_endpos__1_inlined5_, _startpos__1_inlined5_, _startpos__1_inlined2_, _1_inlined5, _1_inlined4, _1_inlined3) in + let ty = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined3_, _startpos__1_inlined3_, _1_inlined3) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 4936 "src/ocaml/preprocess/parser_raw.mly" ( let (lid, cstrs, attrs) = package_type_of_module_type _1 in let descr = Ptyp_package (lid, cstrs) in mktyp ~loc:_sloc ~attrs descr ) -# 47657 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_ty_ = _endpos__1_inlined3_ in - let e = - let _1 = - let _3 = - let xs = - let xs = -# 253 "" +# 48953 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_ty_ = _endpos__1_inlined3_ in + let e = + let _1 = + let _3 = + let xs = + let xs = +# 264 "" ( List.rev xs ) -# 47668 "src/ocaml/preprocess/parser_raw.ml" - in - +# 48964 "src/ocaml/preprocess/parser_raw.ml" + in + # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 47673 "src/ocaml/preprocess/parser_raw.ml" +# 48969 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 3499 "src/ocaml/preprocess/parser_raw.mly" +# 3510 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 47679 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__3_ = _endpos_xs_ in - let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in +# 48975 "src/ocaml/preprocess/parser_raw.ml" -# 5392 "src/ocaml/preprocess/parser_raw.mly" + in + let _endpos__3_ = _endpos_xs_ in + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in + let _2 = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 47690 "src/ocaml/preprocess/parser_raw.ml" +# 48986 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 5405 "src/ocaml/preprocess/parser_raw.mly" +# 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 47696 "src/ocaml/preprocess/parser_raw.ml" +# 48992 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 2718 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in @@ -47712,41 +49008,42 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 47716 "src/ocaml/preprocess/parser_raw.ml" +# 49012 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 2981 "src/ocaml/preprocess/parser_raw.mly" +# 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 47722 "src/ocaml/preprocess/parser_raw.ml" +# 49018 "src/ocaml/preprocess/parser_raw.ml" + + in + let _startpos_e_ = _startpos__1_ in + let _endpos = _endpos_ty_ in + let _startpos = _startpos_e_ in + let _loc = (_startpos, _endpos) in - in - let _startpos_e_ = _startpos__1_ in - let _endpos = _endpos_ty_ in - let _startpos = _startpos_e_ in - let _loc = (_startpos, _endpos) in - # 1820 "src/ocaml/preprocess/parser_raw.mly" ( ghexp_constraint ~loc:_loc ~exp:e ~cty:(Some ty) ~modes:[] ) -# 47732 "src/ocaml/preprocess/parser_raw.ml" - - in - let attrs = - let _1 = _1_inlined1 in - -# 5392 "src/ocaml/preprocess/parser_raw.mly" +# 49028 "src/ocaml/preprocess/parser_raw.ml" + + in + let attrs = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 47740 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__5_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 49036 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__5_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + ( # 1803 "src/ocaml/preprocess/parser_raw.mly" ( mkmod ~loc:_sloc ~attrs (Pmod_unpack e) ) -# 47749 "src/ocaml/preprocess/parser_raw.ml" - in +# 49045 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.module_expr)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -47823,73 +49120,75 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__5_ in - let _v : (Parsetree.module_expr) = let e = - let (_endpos__1_inlined2_, _startpos__1_inlined2_, _endpos__1_inlined1_, _startpos__1_inlined1_, _startpos__1_, _1_inlined2, _1_inlined1, _1) = (_endpos__1_inlined4_, _startpos__1_inlined4_, _endpos__1_inlined3_, _startpos__1_inlined3_, _startpos__1_inlined2_, _1_inlined4, _1_inlined3, _1_inlined2) in - let ty2 = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 4925 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let e = + let (_endpos__1_inlined2_, _startpos__1_inlined2_, _endpos__1_inlined1_, _startpos__1_inlined1_, _startpos__1_, _1_inlined2, _1_inlined1, _1) = (_endpos__1_inlined4_, _startpos__1_inlined4_, _endpos__1_inlined3_, _startpos__1_inlined3_, _startpos__1_inlined2_, _1_inlined4, _1_inlined3, _1_inlined2) in + let ty2 = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 4936 "src/ocaml/preprocess/parser_raw.mly" ( let (lid, cstrs, attrs) = package_type_of_module_type _1 in let descr = Ptyp_package (lid, cstrs) in mktyp ~loc:_sloc ~attrs descr ) -# 47839 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_ty2_ = _endpos__1_inlined2_ in - let ty1 = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 4925 "src/ocaml/preprocess/parser_raw.mly" +# 49137 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_ty2_ = _endpos__1_inlined2_ in + let ty1 = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 4936 "src/ocaml/preprocess/parser_raw.mly" ( let (lid, cstrs, attrs) = package_type_of_module_type _1 in let descr = Ptyp_package (lid, cstrs) in mktyp ~loc:_sloc ~attrs descr ) -# 47853 "src/ocaml/preprocess/parser_raw.ml" - - in - let e = - let _1 = +# 49151 "src/ocaml/preprocess/parser_raw.ml" + + in + let e = + let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 47860 "src/ocaml/preprocess/parser_raw.ml" - in - -# 2981 "src/ocaml/preprocess/parser_raw.mly" +# 49158 "src/ocaml/preprocess/parser_raw.ml" + in + +# 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 47865 "src/ocaml/preprocess/parser_raw.ml" +# 49163 "src/ocaml/preprocess/parser_raw.ml" + + in + let _startpos_e_ = _startpos__1_ in + let _endpos = _endpos_ty2_ in + let _startpos = _startpos_e_ in + let _loc = (_startpos, _endpos) in - in - let _startpos_e_ = _startpos__1_ in - let _endpos = _endpos_ty2_ in - let _startpos = _startpos_e_ in - let _loc = (_startpos, _endpos) in - # 1822 "src/ocaml/preprocess/parser_raw.mly" ( ghexp ~loc:_loc (Pexp_coerce (e, Some ty1, ty2)) ) -# 47875 "src/ocaml/preprocess/parser_raw.ml" - - in - let attrs = - let _1 = _1_inlined1 in - -# 5392 "src/ocaml/preprocess/parser_raw.mly" +# 49173 "src/ocaml/preprocess/parser_raw.ml" + + in + let attrs = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 47883 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__5_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 49181 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__5_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + ( # 1803 "src/ocaml/preprocess/parser_raw.mly" ( mkmod ~loc:_sloc ~attrs (Pmod_unpack e) ) -# 47892 "src/ocaml/preprocess/parser_raw.ml" - in +# 49190 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.module_expr)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -47987,77 +49286,78 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__5_ in - let _v : (Parsetree.module_expr) = let e = - let (_endpos__1_inlined4_, _startpos__1_inlined4_, _endpos__1_inlined3_, _startpos__1_inlined3_, _startpos__1_, _1_inlined4, _1_inlined3, _1_inlined2, _1_inlined1) = (_endpos__1_inlined6_, _startpos__1_inlined6_, _endpos__1_inlined5_, _startpos__1_inlined5_, _startpos__1_inlined2_, _1_inlined6, _1_inlined5, _1_inlined4, _1_inlined3) in - let ty2 = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined4_, _startpos__1_inlined4_, _1_inlined4) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 4925 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let e = + let (_endpos__1_inlined4_, _startpos__1_inlined4_, _endpos__1_inlined3_, _startpos__1_inlined3_, _startpos__1_, _1_inlined4, _1_inlined3, _1_inlined2, _1_inlined1) = (_endpos__1_inlined6_, _startpos__1_inlined6_, _endpos__1_inlined5_, _startpos__1_inlined5_, _startpos__1_inlined2_, _1_inlined6, _1_inlined5, _1_inlined4, _1_inlined3) in + let ty2 = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined4_, _startpos__1_inlined4_, _1_inlined4) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 4936 "src/ocaml/preprocess/parser_raw.mly" ( let (lid, cstrs, attrs) = package_type_of_module_type _1 in let descr = Ptyp_package (lid, cstrs) in mktyp ~loc:_sloc ~attrs descr ) -# 48003 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_ty2_ = _endpos__1_inlined4_ in - let ty1 = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined3_, _startpos__1_inlined3_, _1_inlined3) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 4925 "src/ocaml/preprocess/parser_raw.mly" +# 49303 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_ty2_ = _endpos__1_inlined4_ in + let ty1 = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined3_, _startpos__1_inlined3_, _1_inlined3) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 4936 "src/ocaml/preprocess/parser_raw.mly" ( let (lid, cstrs, attrs) = package_type_of_module_type _1 in let descr = Ptyp_package (lid, cstrs) in mktyp ~loc:_sloc ~attrs descr ) -# 48017 "src/ocaml/preprocess/parser_raw.ml" - - in - let e = - let _1 = - let _3 = - let xs = - let xs = -# 253 "" +# 49317 "src/ocaml/preprocess/parser_raw.ml" + + in + let e = + let _1 = + let _3 = + let xs = + let xs = +# 264 "" ( List.rev xs ) -# 48027 "src/ocaml/preprocess/parser_raw.ml" - in - +# 49327 "src/ocaml/preprocess/parser_raw.ml" + in + # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 48032 "src/ocaml/preprocess/parser_raw.ml" +# 49332 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 3499 "src/ocaml/preprocess/parser_raw.mly" +# 3510 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 48038 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__3_ = _endpos_xs_ in - let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in +# 49338 "src/ocaml/preprocess/parser_raw.ml" -# 5392 "src/ocaml/preprocess/parser_raw.mly" + in + let _endpos__3_ = _endpos_xs_ in + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in + let _2 = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 48049 "src/ocaml/preprocess/parser_raw.ml" +# 49349 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 5405 "src/ocaml/preprocess/parser_raw.mly" +# 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 48055 "src/ocaml/preprocess/parser_raw.ml" +# 49355 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 2718 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in @@ -48071,41 +49371,42 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 48075 "src/ocaml/preprocess/parser_raw.ml" +# 49375 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 2981 "src/ocaml/preprocess/parser_raw.mly" +# 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 48081 "src/ocaml/preprocess/parser_raw.ml" +# 49381 "src/ocaml/preprocess/parser_raw.ml" + + in + let _startpos_e_ = _startpos__1_ in + let _endpos = _endpos_ty2_ in + let _startpos = _startpos_e_ in + let _loc = (_startpos, _endpos) in - in - let _startpos_e_ = _startpos__1_ in - let _endpos = _endpos_ty2_ in - let _startpos = _startpos_e_ in - let _loc = (_startpos, _endpos) in - # 1822 "src/ocaml/preprocess/parser_raw.mly" ( ghexp ~loc:_loc (Pexp_coerce (e, Some ty1, ty2)) ) -# 48091 "src/ocaml/preprocess/parser_raw.ml" - - in - let attrs = - let _1 = _1_inlined1 in - -# 5392 "src/ocaml/preprocess/parser_raw.mly" +# 49391 "src/ocaml/preprocess/parser_raw.ml" + + in + let attrs = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 48099 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__5_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 49399 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__5_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + ( # 1803 "src/ocaml/preprocess/parser_raw.mly" ( mkmod ~loc:_sloc ~attrs (Pmod_unpack e) ) -# 48108 "src/ocaml/preprocess/parser_raw.ml" - in +# 49408 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.module_expr)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -48168,60 +49469,62 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__5_ in - let _v : (Parsetree.module_expr) = let e = - let (_endpos__1_inlined1_, _startpos__1_inlined1_, _startpos__1_, _1_inlined1, _1) = (_endpos__1_inlined3_, _startpos__1_inlined3_, _startpos__1_inlined2_, _1_inlined3, _1_inlined2) in - let ty2 = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 4925 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let e = + let (_endpos__1_inlined1_, _startpos__1_inlined1_, _startpos__1_, _1_inlined1, _1) = (_endpos__1_inlined3_, _startpos__1_inlined3_, _startpos__1_inlined2_, _1_inlined3, _1_inlined2) in + let ty2 = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 4936 "src/ocaml/preprocess/parser_raw.mly" ( let (lid, cstrs, attrs) = package_type_of_module_type _1 in let descr = Ptyp_package (lid, cstrs) in mktyp ~loc:_sloc ~attrs descr ) -# 48184 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_ty2_ = _endpos__1_inlined1_ in - let e = - let _1 = +# 49486 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_ty2_ = _endpos__1_inlined1_ in + let e = + let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 48192 "src/ocaml/preprocess/parser_raw.ml" - in - -# 2981 "src/ocaml/preprocess/parser_raw.mly" +# 49494 "src/ocaml/preprocess/parser_raw.ml" + in + +# 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 48197 "src/ocaml/preprocess/parser_raw.ml" +# 49499 "src/ocaml/preprocess/parser_raw.ml" + + in + let _startpos_e_ = _startpos__1_ in + let _endpos = _endpos_ty2_ in + let _startpos = _startpos_e_ in + let _loc = (_startpos, _endpos) in - in - let _startpos_e_ = _startpos__1_ in - let _endpos = _endpos_ty2_ in - let _startpos = _startpos_e_ in - let _loc = (_startpos, _endpos) in - # 1824 "src/ocaml/preprocess/parser_raw.mly" ( ghexp ~loc:_loc (Pexp_coerce (e, None, ty2)) ) -# 48207 "src/ocaml/preprocess/parser_raw.ml" - - in - let attrs = - let _1 = _1_inlined1 in - -# 5392 "src/ocaml/preprocess/parser_raw.mly" +# 49509 "src/ocaml/preprocess/parser_raw.ml" + + in + let attrs = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 48215 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__5_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 49517 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__5_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + ( # 1803 "src/ocaml/preprocess/parser_raw.mly" ( mkmod ~loc:_sloc ~attrs (Pmod_unpack e) ) -# 48224 "src/ocaml/preprocess/parser_raw.ml" - in +# 49526 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.module_expr)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -48305,64 +49608,65 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__5_ in - let _v : (Parsetree.module_expr) = let e = - let (_endpos__1_inlined3_, _startpos__1_inlined3_, _startpos__1_, _1_inlined3, _1_inlined2, _1_inlined1) = (_endpos__1_inlined5_, _startpos__1_inlined5_, _startpos__1_inlined2_, _1_inlined5, _1_inlined4, _1_inlined3) in - let ty2 = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined3_, _startpos__1_inlined3_, _1_inlined3) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 4925 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let e = + let (_endpos__1_inlined3_, _startpos__1_inlined3_, _startpos__1_, _1_inlined3, _1_inlined2, _1_inlined1) = (_endpos__1_inlined5_, _startpos__1_inlined5_, _startpos__1_inlined2_, _1_inlined5, _1_inlined4, _1_inlined3) in + let ty2 = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined3_, _startpos__1_inlined3_, _1_inlined3) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 4936 "src/ocaml/preprocess/parser_raw.mly" ( let (lid, cstrs, attrs) = package_type_of_module_type _1 in let descr = Ptyp_package (lid, cstrs) in mktyp ~loc:_sloc ~attrs descr ) -# 48321 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_ty2_ = _endpos__1_inlined3_ in - let e = - let _1 = - let _3 = - let xs = - let xs = -# 253 "" +# 49625 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_ty2_ = _endpos__1_inlined3_ in + let e = + let _1 = + let _3 = + let xs = + let xs = +# 264 "" ( List.rev xs ) -# 48332 "src/ocaml/preprocess/parser_raw.ml" - in - +# 49636 "src/ocaml/preprocess/parser_raw.ml" + in + # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 48337 "src/ocaml/preprocess/parser_raw.ml" +# 49641 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 3499 "src/ocaml/preprocess/parser_raw.mly" +# 3510 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 48343 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__3_ = _endpos_xs_ in - let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in +# 49647 "src/ocaml/preprocess/parser_raw.ml" -# 5392 "src/ocaml/preprocess/parser_raw.mly" + in + let _endpos__3_ = _endpos_xs_ in + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in + let _2 = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 48354 "src/ocaml/preprocess/parser_raw.ml" +# 49658 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 5405 "src/ocaml/preprocess/parser_raw.mly" +# 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 48360 "src/ocaml/preprocess/parser_raw.ml" +# 49664 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 2718 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in @@ -48376,41 +49680,42 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 48380 "src/ocaml/preprocess/parser_raw.ml" +# 49684 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 2981 "src/ocaml/preprocess/parser_raw.mly" +# 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 48386 "src/ocaml/preprocess/parser_raw.ml" +# 49690 "src/ocaml/preprocess/parser_raw.ml" + + in + let _startpos_e_ = _startpos__1_ in + let _endpos = _endpos_ty2_ in + let _startpos = _startpos_e_ in + let _loc = (_startpos, _endpos) in - in - let _startpos_e_ = _startpos__1_ in - let _endpos = _endpos_ty2_ in - let _startpos = _startpos_e_ in - let _loc = (_startpos, _endpos) in - # 1824 "src/ocaml/preprocess/parser_raw.mly" ( ghexp ~loc:_loc (Pexp_coerce (e, None, ty2)) ) -# 48396 "src/ocaml/preprocess/parser_raw.ml" - - in - let attrs = - let _1 = _1_inlined1 in - -# 5392 "src/ocaml/preprocess/parser_raw.mly" +# 49700 "src/ocaml/preprocess/parser_raw.ml" + + in + let attrs = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 48404 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__5_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 49708 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__5_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + ( # 1803 "src/ocaml/preprocess/parser_raw.mly" ( mkmod ~loc:_sloc ~attrs (Pmod_unpack e) ) -# 48413 "src/ocaml/preprocess/parser_raw.ml" - in +# 49717 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.module_expr)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -48432,9 +49737,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) = -# 4201 "src/ocaml/preprocess/parser_raw.mly" +# 4212 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 48438 "src/ocaml/preprocess/parser_raw.ml" +# 49743 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -48491,38 +49796,40 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_jkind_ in - let _v : (Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) = let _2 = - let (_startpos__1_, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined2) in - let attrs = - let _1 = _1_inlined1 in - -# 5392 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _2 = + let (_startpos__1_, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined2) in + let attrs = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 48502 "src/ocaml/preprocess/parser_raw.ml" - - in - let name = -# 4222 "src/ocaml/preprocess/parser_raw.mly" +# 49808 "src/ocaml/preprocess/parser_raw.ml" + + in + let name = +# 4233 "src/ocaml/preprocess/parser_raw.mly" ( Some _2 ) -# 48508 "src/ocaml/preprocess/parser_raw.ml" - in - let _startpos_name_ = _startpos__1_ in - let _endpos = _endpos_jkind_ in - let _symbolstartpos = _startpos_name_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 4195 "src/ocaml/preprocess/parser_raw.mly" +# 49814 "src/ocaml/preprocess/parser_raw.ml" + in + let _startpos_name_ = _startpos__1_ in + let _endpos = _endpos_jkind_ in + let _symbolstartpos = _startpos_name_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 4206 "src/ocaml/preprocess/parser_raw.mly" ( match name with | None -> mktyp ~loc:_sloc ~attrs (Ptyp_any (Some jkind)) | Some name -> mktyp ~loc:_sloc ~attrs (Ptyp_var (name, Some jkind)) ) -# 48519 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4203 "src/ocaml/preprocess/parser_raw.mly" +# 49825 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4214 "src/ocaml/preprocess/parser_raw.mly" ( _2, _1 ) -# 48525 "src/ocaml/preprocess/parser_raw.ml" - in +# 49831 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity))) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -48571,38 +49878,40 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_jkind_ in - let _v : (Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) = let _2 = - let (_startpos__1_, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined2) in - let attrs = - let _1 = _1_inlined1 in - -# 5392 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _2 = + let (_startpos__1_, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined2) in + let attrs = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 48582 "src/ocaml/preprocess/parser_raw.ml" - - in - let name = -# 4224 "src/ocaml/preprocess/parser_raw.mly" +# 49890 "src/ocaml/preprocess/parser_raw.ml" + + in + let name = +# 4235 "src/ocaml/preprocess/parser_raw.mly" ( None ) -# 48588 "src/ocaml/preprocess/parser_raw.ml" - in - let _startpos_name_ = _startpos__1_ in - let _endpos = _endpos_jkind_ in - let _symbolstartpos = _startpos_name_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 4195 "src/ocaml/preprocess/parser_raw.mly" +# 49896 "src/ocaml/preprocess/parser_raw.ml" + in + let _startpos_name_ = _startpos__1_ in + let _endpos = _endpos_jkind_ in + let _symbolstartpos = _startpos_name_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 4206 "src/ocaml/preprocess/parser_raw.mly" ( match name with | None -> mktyp ~loc:_sloc ~attrs (Ptyp_any (Some jkind)) | Some name -> mktyp ~loc:_sloc ~attrs (Ptyp_var (name, Some jkind)) ) -# 48599 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4203 "src/ocaml/preprocess/parser_raw.mly" +# 49907 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4214 "src/ocaml/preprocess/parser_raw.mly" ( _2, _1 ) -# 48605 "src/ocaml/preprocess/parser_raw.ml" - in +# 49913 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity))) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -48633,7 +49942,7 @@ module Tables = struct let _v : (Longident.t) = # 1686 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 48637 "src/ocaml/preprocess/parser_raw.ml" +# 49946 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -48665,7 +49974,7 @@ module Tables = struct let _v : (Longident.t) = # 1671 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 48669 "src/ocaml/preprocess/parser_raw.ml" +# 49978 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -48697,7 +50006,7 @@ module Tables = struct let _v : (Parsetree.core_type) = # 1646 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 48701 "src/ocaml/preprocess/parser_raw.ml" +# 50010 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -48729,7 +50038,7 @@ module Tables = struct let _v : (Parsetree.expression) = # 1651 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 48733 "src/ocaml/preprocess/parser_raw.ml" +# 50042 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -48761,7 +50070,7 @@ module Tables = struct let _v : (Longident.t) = # 1676 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 48765 "src/ocaml/preprocess/parser_raw.ml" +# 50074 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -48793,7 +50102,7 @@ module Tables = struct let _v : (Longident.t) = # 1681 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 48797 "src/ocaml/preprocess/parser_raw.ml" +# 50106 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -48825,7 +50134,7 @@ module Tables = struct let _v : (Parsetree.module_expr) = # 1641 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 48829 "src/ocaml/preprocess/parser_raw.ml" +# 50138 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -48857,7 +50166,7 @@ module Tables = struct let _v : (Parsetree.module_type) = # 1636 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 48861 "src/ocaml/preprocess/parser_raw.ml" +# 50170 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -48889,7 +50198,7 @@ module Tables = struct let _v : (Longident.t) = # 1661 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 48893 "src/ocaml/preprocess/parser_raw.ml" +# 50202 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -48921,7 +50230,7 @@ module Tables = struct let _v : (Parsetree.pattern) = # 1656 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 48925 "src/ocaml/preprocess/parser_raw.ml" +# 50234 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -48953,7 +50262,7 @@ module Tables = struct let _v : (Longident.t) = # 1666 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 48957 "src/ocaml/preprocess/parser_raw.ml" +# 50266 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -48989,24 +50298,26 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in - let _v : (Parsetree.pattern) = let _1 = - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _loc__2_ = (_startpos__2_, _endpos__2_) in - let _sloc = (_symbolstartpos, _endpos) in - -# 3732 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _1 = + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _loc__2_ = (_startpos__2_, _endpos__2_) in + let _sloc = (_symbolstartpos, _endpos) in + +# 3743 "src/ocaml/preprocess/parser_raw.mly" ( mkpat_cons ~loc:_sloc _loc__2_ (ghpat ~loc:_sloc (Ppat_tuple ([None, _1;None, _3], Closed))) ) -# 49003 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 3720 "src/ocaml/preprocess/parser_raw.mly" +# 50313 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 3731 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 49009 "src/ocaml/preprocess/parser_raw.ml" - in +# 50319 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.pattern)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -49034,16 +50345,18 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in - let _v : (Parsetree.pattern) = let _1 = -# 3736 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _1 = +# 3747 "src/ocaml/preprocess/parser_raw.mly" ( Pat.attr _1 _2 ) -# 49041 "src/ocaml/preprocess/parser_raw.ml" - in - -# 3720 "src/ocaml/preprocess/parser_raw.mly" +# 50353 "src/ocaml/preprocess/parser_raw.ml" + in + ( +# 3731 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 49046 "src/ocaml/preprocess/parser_raw.ml" - in +# 50358 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.pattern)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -49064,16 +50377,18 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v : (Parsetree.pattern) = let _1 = -# 3738 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _1 = +# 3749 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 49071 "src/ocaml/preprocess/parser_raw.ml" - in - -# 3720 "src/ocaml/preprocess/parser_raw.mly" +# 50385 "src/ocaml/preprocess/parser_raw.ml" + in + ( +# 3731 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 49076 "src/ocaml/preprocess/parser_raw.ml" - in +# 50390 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.pattern)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -49108,47 +50423,49 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined1_ in - let _v : (Parsetree.pattern) = let _1 = + let _v = let _1 = let _1 = - let _3 = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let _1 = + let _3 = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 49123 "src/ocaml/preprocess/parser_raw.ml" +# 50439 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 3752 "src/ocaml/preprocess/parser_raw.mly" + ( Ppat_alias(_1, _3) ) +# 50445 "src/ocaml/preprocess/parser_raw.ml" in + let _endpos__1_ = _endpos__1_inlined1_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 3741 "src/ocaml/preprocess/parser_raw.mly" - ( Ppat_alias(_1, _3) ) -# 49129 "src/ocaml/preprocess/parser_raw.ml" +# 1331 "src/ocaml/preprocess/parser_raw.mly" + ( mkpat ~loc:_sloc _1 ) +# 50455 "src/ocaml/preprocess/parser_raw.ml" in - let _endpos__1_ = _endpos__1_inlined1_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in -# 1331 "src/ocaml/preprocess/parser_raw.mly" - ( mkpat ~loc:_sloc _1 ) -# 49139 "src/ocaml/preprocess/parser_raw.ml" +# 3761 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 50461 "src/ocaml/preprocess/parser_raw.ml" in - -# 3750 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 49145 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 3720 "src/ocaml/preprocess/parser_raw.mly" + ( +# 3731 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 49151 "src/ocaml/preprocess/parser_raw.ml" - in +# 50467 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.pattern)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -49183,34 +50500,36 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in - let _v : (Parsetree.pattern) = let _1 = + let _v = let _1 = - let _1 = -# 3747 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let _1 = +# 3758 "src/ocaml/preprocess/parser_raw.mly" ( Ppat_or(_1, _3) ) -# 49192 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos__1_ = _endpos__3_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 50510 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__3_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1331 "src/ocaml/preprocess/parser_raw.mly" ( mkpat ~loc:_sloc _1 ) -# 49201 "src/ocaml/preprocess/parser_raw.ml" +# 50519 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 3750 "src/ocaml/preprocess/parser_raw.mly" +# 3761 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 49207 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 3720 "src/ocaml/preprocess/parser_raw.mly" +# 50525 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 3731 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 49213 "src/ocaml/preprocess/parser_raw.ml" - in +# 50531 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.pattern)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -49231,23 +50550,25 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v : (Parsetree.pattern) = let _1 = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 3752 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _1 = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 3763 "src/ocaml/preprocess/parser_raw.mly" ( let closed, pats = _1 in mkpat ~loc:_sloc (Ppat_tuple (List.rev pats, closed)) ) -# 49244 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 3720 "src/ocaml/preprocess/parser_raw.mly" +# 50564 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 3731 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 49250 "src/ocaml/preprocess/parser_raw.ml" - in +# 50570 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.pattern)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -49289,30 +50610,32 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in - let _v : (Parsetree.pattern) = let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in + let _v = let _2 = - let _1 = _1_inlined1 in - -# 5392 "src/ocaml/preprocess/parser_raw.mly" + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in + let _2 = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 49300 "src/ocaml/preprocess/parser_raw.ml" +# 50622 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 5405 "src/ocaml/preprocess/parser_raw.mly" +# 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 49306 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 3722 "src/ocaml/preprocess/parser_raw.mly" +# 50628 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + ( +# 3733 "src/ocaml/preprocess/parser_raw.mly" ( mkpat_attrs ~loc:_sloc (Ppat_exception _3) _2) -# 49315 "src/ocaml/preprocess/parser_raw.ml" - in +# 50637 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.pattern)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -49334,9 +50657,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Parsetree.pattern) = -# 3816 "src/ocaml/preprocess/parser_raw.mly" +# 3827 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 49340 "src/ocaml/preprocess/parser_raw.ml" +# 50663 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -49365,39 +50688,41 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in - let _v : (Parsetree.pattern) = let _1 = + let _v = let _1 = let _1 = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let _1 = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 49378 "src/ocaml/preprocess/parser_raw.ml" +# 50702 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 3819 "src/ocaml/preprocess/parser_raw.mly" +# 3830 "src/ocaml/preprocess/parser_raw.mly" ( Ppat_construct(_1, Some ([], _2)) ) -# 49384 "src/ocaml/preprocess/parser_raw.ml" +# 50708 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__1_ = _endpos__2_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos__1_ = _endpos__2_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1331 "src/ocaml/preprocess/parser_raw.mly" ( mkpat ~loc:_sloc _1 ) -# 49394 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 3825 "src/ocaml/preprocess/parser_raw.mly" +# 50718 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 3836 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 49400 "src/ocaml/preprocess/parser_raw.ml" - in +# 50724 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.pattern)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -49453,44 +50778,46 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_pat_ in - let _v : (Parsetree.pattern) = let _1 = + let _v = let _1 = - let newtypes = -# 3321 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let newtypes = +# 3332 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 49462 "src/ocaml/preprocess/parser_raw.ml" - in - let constr = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 50788 "src/ocaml/preprocess/parser_raw.ml" + in + let constr = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 49471 "src/ocaml/preprocess/parser_raw.ml" +# 50797 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 3822 "src/ocaml/preprocess/parser_raw.mly" +# 3833 "src/ocaml/preprocess/parser_raw.mly" ( Ppat_construct(constr, Some (newtypes, pat)) ) -# 49477 "src/ocaml/preprocess/parser_raw.ml" +# 50803 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__1_ = _endpos_pat_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos__1_ = _endpos_pat_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1331 "src/ocaml/preprocess/parser_raw.mly" ( mkpat ~loc:_sloc _1 ) -# 49487 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 3825 "src/ocaml/preprocess/parser_raw.mly" +# 50813 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 3836 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 49493 "src/ocaml/preprocess/parser_raw.ml" - in +# 50819 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.pattern)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -49518,27 +50845,29 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in - let _v : (Parsetree.pattern) = let _1 = - let _1 = -# 3824 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _1 = + let _1 = +# 3835 "src/ocaml/preprocess/parser_raw.mly" ( Ppat_variant(_1, Some _2) ) -# 49526 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos__1_ = _endpos__2_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 50854 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__2_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1331 "src/ocaml/preprocess/parser_raw.mly" ( mkpat ~loc:_sloc _1 ) -# 49535 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 3825 "src/ocaml/preprocess/parser_raw.mly" +# 50863 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 3836 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 49541 "src/ocaml/preprocess/parser_raw.ml" - in +# 50869 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.pattern)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -49580,30 +50909,32 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in - let _v : (Parsetree.pattern) = let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in + let _v = let _2 = - let _1 = _1_inlined1 in - -# 5392 "src/ocaml/preprocess/parser_raw.mly" + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in + let _2 = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 49591 "src/ocaml/preprocess/parser_raw.ml" +# 50921 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 5405 "src/ocaml/preprocess/parser_raw.mly" +# 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 49597 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 3827 "src/ocaml/preprocess/parser_raw.mly" +# 50927 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + ( +# 3838 "src/ocaml/preprocess/parser_raw.mly" ( mkpat_attrs ~loc:_sloc (Ppat_lazy _3) _2) -# 49606 "src/ocaml/preprocess/parser_raw.ml" - in +# 50936 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.pattern)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -49638,24 +50969,26 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in - let _v : (Parsetree.pattern) = let _1 = - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _loc__2_ = (_startpos__2_, _endpos__2_) in - let _sloc = (_symbolstartpos, _endpos) in - -# 3732 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _1 = + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _loc__2_ = (_startpos__2_, _endpos__2_) in + let _sloc = (_symbolstartpos, _endpos) in + +# 3743 "src/ocaml/preprocess/parser_raw.mly" ( mkpat_cons ~loc:_sloc _loc__2_ (ghpat ~loc:_sloc (Ppat_tuple ([None, _1;None, _3], Closed))) ) -# 49652 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 3727 "src/ocaml/preprocess/parser_raw.mly" +# 50984 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 3738 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 49658 "src/ocaml/preprocess/parser_raw.ml" - in +# 50990 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.pattern)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -49683,16 +51016,18 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in - let _v : (Parsetree.pattern) = let _1 = -# 3736 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _1 = +# 3747 "src/ocaml/preprocess/parser_raw.mly" ( Pat.attr _1 _2 ) -# 49690 "src/ocaml/preprocess/parser_raw.ml" - in - -# 3727 "src/ocaml/preprocess/parser_raw.mly" +# 51024 "src/ocaml/preprocess/parser_raw.ml" + in + ( +# 3738 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 49695 "src/ocaml/preprocess/parser_raw.ml" - in +# 51029 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.pattern)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -49713,16 +51048,18 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v : (Parsetree.pattern) = let _1 = -# 3738 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _1 = +# 3749 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 49720 "src/ocaml/preprocess/parser_raw.ml" - in - -# 3727 "src/ocaml/preprocess/parser_raw.mly" +# 51056 "src/ocaml/preprocess/parser_raw.ml" + in + ( +# 3738 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 49725 "src/ocaml/preprocess/parser_raw.ml" - in +# 51061 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.pattern)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -49757,47 +51094,49 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined1_ in - let _v : (Parsetree.pattern) = let _1 = + let _v = let _1 = let _1 = - let _3 = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let _1 = + let _3 = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 49772 "src/ocaml/preprocess/parser_raw.ml" +# 51110 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 3752 "src/ocaml/preprocess/parser_raw.mly" + ( Ppat_alias(_1, _3) ) +# 51116 "src/ocaml/preprocess/parser_raw.ml" in + let _endpos__1_ = _endpos__1_inlined1_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 3741 "src/ocaml/preprocess/parser_raw.mly" - ( Ppat_alias(_1, _3) ) -# 49778 "src/ocaml/preprocess/parser_raw.ml" +# 1331 "src/ocaml/preprocess/parser_raw.mly" + ( mkpat ~loc:_sloc _1 ) +# 51126 "src/ocaml/preprocess/parser_raw.ml" in - let _endpos__1_ = _endpos__1_inlined1_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in -# 1331 "src/ocaml/preprocess/parser_raw.mly" - ( mkpat ~loc:_sloc _1 ) -# 49788 "src/ocaml/preprocess/parser_raw.ml" +# 3761 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 51132 "src/ocaml/preprocess/parser_raw.ml" in - -# 3750 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 49794 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 3727 "src/ocaml/preprocess/parser_raw.mly" + ( +# 3738 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 49800 "src/ocaml/preprocess/parser_raw.ml" - in +# 51138 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.pattern)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -49832,34 +51171,36 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in - let _v : (Parsetree.pattern) = let _1 = + let _v = let _1 = - let _1 = -# 3747 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let _1 = +# 3758 "src/ocaml/preprocess/parser_raw.mly" ( Ppat_or(_1, _3) ) -# 49841 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos__1_ = _endpos__3_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 51181 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__3_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1331 "src/ocaml/preprocess/parser_raw.mly" ( mkpat ~loc:_sloc _1 ) -# 49850 "src/ocaml/preprocess/parser_raw.ml" +# 51190 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 3750 "src/ocaml/preprocess/parser_raw.mly" +# 3761 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 49856 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 3727 "src/ocaml/preprocess/parser_raw.mly" +# 51196 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 3738 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 49862 "src/ocaml/preprocess/parser_raw.ml" - in +# 51202 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.pattern)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -49880,23 +51221,25 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v : (Parsetree.pattern) = let _1 = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 3752 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _1 = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 3763 "src/ocaml/preprocess/parser_raw.mly" ( let closed, pats = _1 in mkpat ~loc:_sloc (Ppat_tuple (List.rev pats, closed)) ) -# 49893 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 3727 "src/ocaml/preprocess/parser_raw.mly" +# 51235 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 3738 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 49899 "src/ocaml/preprocess/parser_raw.ml" - in +# 51241 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.pattern)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -49916,43 +51259,45 @@ module Tables = struct let _1 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 49920 "src/ocaml/preprocess/parser_raw.ml" +# 51263 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v : (Parsetree.pattern) = let _1 = + let _v = let _1 = let _1 = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let _1 = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 49934 "src/ocaml/preprocess/parser_raw.ml" +# 51278 "src/ocaml/preprocess/parser_raw.ml" + + in - in - # 2827 "src/ocaml/preprocess/parser_raw.mly" ( Ppat_var _1 ) -# 49940 "src/ocaml/preprocess/parser_raw.ml" +# 51284 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1331 "src/ocaml/preprocess/parser_raw.mly" ( mkpat ~loc:_sloc _1 ) -# 49949 "src/ocaml/preprocess/parser_raw.ml" - - in - +# 51293 "src/ocaml/preprocess/parser_raw.ml" + + in + ( # 2829 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 49955 "src/ocaml/preprocess/parser_raw.ml" - in +# 51299 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.pattern)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -49973,26 +51318,28 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v : (Parsetree.pattern) = let _1 = - let _1 = + let _v = + let _1 = + let _1 = # 2828 "src/ocaml/preprocess/parser_raw.mly" ( Ppat_any ) -# 49981 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 51327 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1331 "src/ocaml/preprocess/parser_raw.mly" ( mkpat ~loc:_sloc _1 ) -# 49989 "src/ocaml/preprocess/parser_raw.ml" - - in - +# 51335 "src/ocaml/preprocess/parser_raw.ml" + + in + ( # 2829 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 49995 "src/ocaml/preprocess/parser_raw.ml" - in +# 51341 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.pattern)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -50014,9 +51361,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Parsetree.payload) = -# 5418 "src/ocaml/preprocess/parser_raw.mly" +# 5429 "src/ocaml/preprocess/parser_raw.mly" ( PStr _1 ) -# 50020 "src/ocaml/preprocess/parser_raw.ml" +# 51367 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -50046,9 +51393,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Parsetree.payload) = -# 5419 "src/ocaml/preprocess/parser_raw.mly" +# 5430 "src/ocaml/preprocess/parser_raw.mly" ( PSig _2 ) -# 50052 "src/ocaml/preprocess/parser_raw.ml" +# 51399 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -50078,9 +51425,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Parsetree.payload) = -# 5420 "src/ocaml/preprocess/parser_raw.mly" +# 5431 "src/ocaml/preprocess/parser_raw.mly" ( PTyp _2 ) -# 50084 "src/ocaml/preprocess/parser_raw.ml" +# 51431 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -50110,9 +51457,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Parsetree.payload) = -# 5421 "src/ocaml/preprocess/parser_raw.mly" +# 5432 "src/ocaml/preprocess/parser_raw.mly" ( PPat (_2, None) ) -# 50116 "src/ocaml/preprocess/parser_raw.ml" +# 51463 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -50156,9 +51503,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in let _v : (Parsetree.payload) = -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5433 "src/ocaml/preprocess/parser_raw.mly" ( PPat (_2, Some _4) ) -# 50162 "src/ocaml/preprocess/parser_raw.ml" +# 51509 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -50181,9 +51528,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Parsetree.core_type) = -# 4478 "src/ocaml/preprocess/parser_raw.mly" +# 4489 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 50187 "src/ocaml/preprocess/parser_raw.ml" +# 51534 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -50219,42 +51566,44 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_xs_ in let _endpos = _endpos__3_ in - let _v : (Parsetree.core_type) = let _1 = + let _v = let _1 = let _1 = - let xs = -# 253 "" + let _1 = + let xs = +# 264 "" ( List.rev xs ) -# 50229 "src/ocaml/preprocess/parser_raw.ml" - in - +# 51577 "src/ocaml/preprocess/parser_raw.ml" + in + # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 50234 "src/ocaml/preprocess/parser_raw.ml" +# 51582 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 4481 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 51588 "src/ocaml/preprocess/parser_raw.ml" in -# 4470 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 50240 "src/ocaml/preprocess/parser_raw.ml" +# 4485 "src/ocaml/preprocess/parser_raw.mly" + ( (_1, _3) ) +# 51594 "src/ocaml/preprocess/parser_raw.ml" in - -# 4474 "src/ocaml/preprocess/parser_raw.mly" - ( (_1, _3) ) -# 50246 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos__3_, _startpos_xs_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 4480 "src/ocaml/preprocess/parser_raw.mly" + let (_endpos__1_, _startpos__1_) = (_endpos__3_, _startpos_xs_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + ( +# 4491 "src/ocaml/preprocess/parser_raw.mly" ( let bound_vars, inner_type = _1 in mktyp ~loc:_sloc (Ptyp_poly (bound_vars, inner_type)) ) -# 50257 "src/ocaml/preprocess/parser_raw.ml" - in +# 51605 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -50275,16 +51624,18 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v : (Parsetree.core_type) = let _1 = -# 4510 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _1 = +# 4521 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 50282 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4478 "src/ocaml/preprocess/parser_raw.mly" +# 51632 "src/ocaml/preprocess/parser_raw.ml" + in + ( +# 4489 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 50287 "src/ocaml/preprocess/parser_raw.ml" - in +# 51637 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -50319,47 +51670,49 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_xs_ in let _endpos = _endpos__1_ in - let _v : (Parsetree.core_type) = let _1 = - let _3 = -# 4510 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 50327 "src/ocaml/preprocess/parser_raw.ml" - in + let _v = let _1 = + let _3 = +# 4521 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 51679 "src/ocaml/preprocess/parser_raw.ml" + in let _1 = - let xs = -# 253 "" + let _1 = + let xs = +# 264 "" ( List.rev xs ) -# 50334 "src/ocaml/preprocess/parser_raw.ml" - in - +# 51686 "src/ocaml/preprocess/parser_raw.ml" + in + # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 50339 "src/ocaml/preprocess/parser_raw.ml" +# 51691 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 4481 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 51697 "src/ocaml/preprocess/parser_raw.ml" in -# 4470 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 50345 "src/ocaml/preprocess/parser_raw.ml" +# 4485 "src/ocaml/preprocess/parser_raw.mly" + ( (_1, _3) ) +# 51703 "src/ocaml/preprocess/parser_raw.ml" in - -# 4474 "src/ocaml/preprocess/parser_raw.mly" - ( (_1, _3) ) -# 50351 "src/ocaml/preprocess/parser_raw.ml" - - in - let _startpos__1_ = _startpos_xs_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 4480 "src/ocaml/preprocess/parser_raw.mly" + let _startpos__1_ = _startpos_xs_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + ( +# 4491 "src/ocaml/preprocess/parser_raw.mly" ( let bound_vars, inner_type = _1 in mktyp ~loc:_sloc (Ptyp_poly (bound_vars, inner_type)) ) -# 50362 "src/ocaml/preprocess/parser_raw.ml" - in +# 51714 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -50401,14 +51754,16 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in - let _v : (Parsetree.attribute) = let _endpos = _endpos__4_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 5379 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _endpos = _endpos__4_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + ( +# 5390 "src/ocaml/preprocess/parser_raw.mly" ( mk_attr ~loc:(make_loc _sloc) _2 _3 ) -# 50411 "src/ocaml/preprocess/parser_raw.ml" - in +# 51765 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.attribute)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -50492,46 +51847,48 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined3_ in - let _v : (Parsetree.value_description * string Location.loc option) = let attrs2 = - let _1 = _1_inlined3 in - -# 5388 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let attrs2 = + let _1 = _1_inlined3 in + +# 5399 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 50501 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_attrs2_ = _endpos__1_inlined3_ in - let id = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 51857 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_attrs2_ = _endpos__1_inlined3_ in + let id = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 50513 "src/ocaml/preprocess/parser_raw.ml" - - in - let attrs1 = - let _1 = _1_inlined1 in - -# 5392 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 50521 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos_attrs2_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 4002 "src/ocaml/preprocess/parser_raw.mly" +# 51869 "src/ocaml/preprocess/parser_raw.ml" + + in + let attrs1 = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 51877 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos_attrs2_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + ( +# 4013 "src/ocaml/preprocess/parser_raw.mly" ( let attrs = attrs1 @ attrs2 in let loc = make_loc _sloc in let docs = symbol_docs _sloc in Val.mk id ty ~prim ~attrs ~modalities ~loc ~docs, ext ) -# 50534 "src/ocaml/preprocess/parser_raw.ml" - in +# 51890 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.value_description * string Location.loc option)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -50545,16 +51902,18 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in let _endpos = _startpos in - let _v : (Asttypes.private_flag) = let _1 = -# 5234 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _1 = +# 5245 "src/ocaml/preprocess/parser_raw.mly" ( Public ) -# 50552 "src/ocaml/preprocess/parser_raw.ml" - in - -# 5231 "src/ocaml/preprocess/parser_raw.mly" +# 51910 "src/ocaml/preprocess/parser_raw.ml" + in + ( +# 5242 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 50557 "src/ocaml/preprocess/parser_raw.ml" - in +# 51915 "src/ocaml/preprocess/parser_raw.ml" + : (Asttypes.private_flag)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -50575,16 +51934,18 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v : (Asttypes.private_flag) = let _1 = -# 5235 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _1 = +# 5246 "src/ocaml/preprocess/parser_raw.mly" ( Private ) -# 50582 "src/ocaml/preprocess/parser_raw.ml" - in - -# 5231 "src/ocaml/preprocess/parser_raw.mly" +# 51942 "src/ocaml/preprocess/parser_raw.ml" + in + ( +# 5242 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 50587 "src/ocaml/preprocess/parser_raw.ml" - in +# 51947 "src/ocaml/preprocess/parser_raw.ml" + : (Asttypes.private_flag)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -50599,9 +51960,9 @@ module Tables = struct let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in let _endpos = _startpos in let _v : (Asttypes.private_flag * Asttypes.virtual_flag) = -# 5269 "src/ocaml/preprocess/parser_raw.mly" +# 5280 "src/ocaml/preprocess/parser_raw.mly" ( Public, Concrete ) -# 50605 "src/ocaml/preprocess/parser_raw.ml" +# 51966 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -50624,9 +51985,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Asttypes.private_flag * Asttypes.virtual_flag) = -# 5270 "src/ocaml/preprocess/parser_raw.mly" +# 5281 "src/ocaml/preprocess/parser_raw.mly" ( Private, Concrete ) -# 50630 "src/ocaml/preprocess/parser_raw.ml" +# 51991 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -50649,9 +52010,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Asttypes.private_flag * Asttypes.virtual_flag) = -# 5271 "src/ocaml/preprocess/parser_raw.mly" +# 5282 "src/ocaml/preprocess/parser_raw.mly" ( Public, Virtual ) -# 50655 "src/ocaml/preprocess/parser_raw.ml" +# 52016 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -50681,9 +52042,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Asttypes.private_flag * Asttypes.virtual_flag) = -# 5272 "src/ocaml/preprocess/parser_raw.mly" +# 5283 "src/ocaml/preprocess/parser_raw.mly" ( Private, Virtual ) -# 50687 "src/ocaml/preprocess/parser_raw.ml" +# 52048 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -50713,9 +52074,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Asttypes.private_flag * Asttypes.virtual_flag) = -# 5273 "src/ocaml/preprocess/parser_raw.mly" +# 5284 "src/ocaml/preprocess/parser_raw.mly" ( Private, Virtual ) -# 50719 "src/ocaml/preprocess/parser_raw.ml" +# 52080 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -50731,9 +52092,9 @@ module Tables = struct let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in let _endpos = _startpos in let _v : (Asttypes.rec_flag) = -# 5212 "src/ocaml/preprocess/parser_raw.mly" +# 5223 "src/ocaml/preprocess/parser_raw.mly" ( Nonrecursive ) -# 50737 "src/ocaml/preprocess/parser_raw.ml" +# 52098 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -50756,9 +52117,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Asttypes.rec_flag) = -# 5213 "src/ocaml/preprocess/parser_raw.mly" +# 5224 "src/ocaml/preprocess/parser_raw.mly" ( Recursive ) -# 50762 "src/ocaml/preprocess/parser_raw.ml" +# 52123 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -50780,17 +52141,19 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_fields_ in let _endpos = _endpos_fields_ in - let _v : (Parsetree.expression option * - (Longident.t Location.loc * Parsetree.expression) list) = let eo = -# 124 "" + let _v = + let eo = +# 123 "" ( None ) -# 50788 "src/ocaml/preprocess/parser_raw.ml" - in - -# 3628 "src/ocaml/preprocess/parser_raw.mly" +# 52149 "src/ocaml/preprocess/parser_raw.ml" + in + ( +# 3639 "src/ocaml/preprocess/parser_raw.mly" ( eo, fields ) -# 50793 "src/ocaml/preprocess/parser_raw.ml" - in +# 52154 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression option * + (Longident.t Location.loc * Parsetree.expression) list)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -50825,24 +52188,26 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_x_ in let _endpos = _endpos_fields_ in - let _v : (Parsetree.expression option * - (Longident.t Location.loc * Parsetree.expression) list) = let eo = - let x = -# 191 "" + let _v = + let eo = + let x = +# 196 "" ( x ) -# 50834 "src/ocaml/preprocess/parser_raw.ml" - in - +# 52197 "src/ocaml/preprocess/parser_raw.ml" + in + # 126 "" ( Some x ) -# 50839 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 3628 "src/ocaml/preprocess/parser_raw.mly" +# 52202 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 3639 "src/ocaml/preprocess/parser_raw.mly" ( eo, fields ) -# 50845 "src/ocaml/preprocess/parser_raw.ml" - in +# 52208 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression option * + (Longident.t Location.loc * Parsetree.expression) list)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -50878,9 +52243,9 @@ module Tables = struct let _startpos = _startpos_jkind1_ in let _endpos = _endpos_jkind2_ in let _v : (Parsetree.jkind_annotation list) = -# 4170 "src/ocaml/preprocess/parser_raw.mly" +# 4181 "src/ocaml/preprocess/parser_raw.mly" ( [jkind2; jkind1] ) -# 50884 "src/ocaml/preprocess/parser_raw.ml" +# 52249 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -50917,9 +52282,9 @@ module Tables = struct let _startpos = _startpos_jkinds_ in let _endpos = _endpos_jkind_ in let _v : (Parsetree.jkind_annotation list) = -# 4174 "src/ocaml/preprocess/parser_raw.mly" +# 4185 "src/ocaml/preprocess/parser_raw.mly" ( jkind :: jkinds ) -# 50923 "src/ocaml/preprocess/parser_raw.ml" +# 52288 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -50944,19 +52309,21 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_d_ in let _endpos = _endpos_d_ in - let _v : (Parsetree.constructor_declaration list) = let x = -# 4276 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let x = +# 4287 "src/ocaml/preprocess/parser_raw.mly" ( let cid, vars, args, res, attrs, loc, info = d in Type.constructor cid ~vars ~args ?res ~attrs ~loc ~info ) -# 50954 "src/ocaml/preprocess/parser_raw.ml" - in - +# 52320 "src/ocaml/preprocess/parser_raw.ml" + in + ( # 1528 "src/ocaml/preprocess/parser_raw.mly" ( [x] ) -# 50959 "src/ocaml/preprocess/parser_raw.ml" - in +# 52325 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.constructor_declaration list)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -50980,19 +52347,21 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_d_ in let _endpos = _endpos_d_ in - let _v : (Parsetree.constructor_declaration list) = let x = -# 4276 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let x = +# 4287 "src/ocaml/preprocess/parser_raw.mly" ( let cid, vars, args, res, attrs, loc, info = d in Type.constructor cid ~vars ~args ?res ~attrs ~loc ~info ) -# 50990 "src/ocaml/preprocess/parser_raw.ml" - in - +# 52358 "src/ocaml/preprocess/parser_raw.ml" + in + ( # 1531 "src/ocaml/preprocess/parser_raw.mly" ( [x] ) -# 50995 "src/ocaml/preprocess/parser_raw.ml" - in +# 52363 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.constructor_declaration list)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -51023,92 +52392,21 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_xs_ in let _endpos = _endpos_d_ in - let _v : (Parsetree.constructor_declaration list) = let x = -# 4276 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let x = +# 4287 "src/ocaml/preprocess/parser_raw.mly" ( let cid, vars, args, res, attrs, loc, info = d in Type.constructor cid ~vars ~args ?res ~attrs ~loc ~info ) -# 51033 "src/ocaml/preprocess/parser_raw.ml" - in - +# 52403 "src/ocaml/preprocess/parser_raw.ml" + in + ( # 1535 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 51038 "src/ocaml/preprocess/parser_raw.ml" - in - { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = Obj.repr _v; - MenhirLib.EngineTypes.startp = _startpos; - MenhirLib.EngineTypes.endp = _endpos; - MenhirLib.EngineTypes.next = _menhir_stack; - }); - (fun _menhir_env -> - let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = d; - MenhirLib.EngineTypes.startp = _startpos_d_; - MenhirLib.EngineTypes.endp = _endpos_d_; - MenhirLib.EngineTypes.next = _menhir_stack; - } = _menhir_stack in - let d : (Ocaml_parsing.Ast_helper.str * - (string Location.loc * Parsetree.jkind_annotation option) list * - Parsetree.constructor_arguments * Parsetree.core_type option * - Parsetree.attributes * Location.t * Ocaml_parsing.Docstrings.info) = Obj.magic d in - let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos_d_ in - let _endpos = _endpos_d_ in - let _v : (Parsetree.extension_constructor list) = let x = - let _1 = -# 4405 "src/ocaml/preprocess/parser_raw.mly" - ( - let name, vars, args, res, attrs, loc, info = d in - Te.decl name ~vars ~args ?res ~attrs ~loc ~info - ) -# 51070 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4399 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 51075 "src/ocaml/preprocess/parser_raw.ml" - +# 52408 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.constructor_declaration list)) in - -# 1528 "src/ocaml/preprocess/parser_raw.mly" - ( [x] ) -# 51081 "src/ocaml/preprocess/parser_raw.ml" - in - { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = Obj.repr _v; - MenhirLib.EngineTypes.startp = _startpos; - MenhirLib.EngineTypes.endp = _endpos; - MenhirLib.EngineTypes.next = _menhir_stack; - }); - (fun _menhir_env -> - let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - } = _menhir_stack in - let _1 : (Parsetree.extension_constructor) = Obj.magic _1 in - let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos__1_ in - let _endpos = _endpos__1_ in - let _v : (Parsetree.extension_constructor list) = let x = -# 4401 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 51106 "src/ocaml/preprocess/parser_raw.ml" - in - -# 1528 "src/ocaml/preprocess/parser_raw.mly" - ( [x] ) -# 51111 "src/ocaml/preprocess/parser_raw.ml" - in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -51132,26 +52430,105 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_d_ in let _endpos = _endpos_d_ in - let _v : (Parsetree.extension_constructor list) = let x = - let _1 = -# 4405 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let x = + let _1 = +# 4416 "src/ocaml/preprocess/parser_raw.mly" ( let name, vars, args, res, attrs, loc, info = d in Te.decl name ~vars ~args ?res ~attrs ~loc ~info ) -# 51143 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4399 "src/ocaml/preprocess/parser_raw.mly" +# 52442 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4410 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 51148 "src/ocaml/preprocess/parser_raw.ml" - +# 52447 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 1528 "src/ocaml/preprocess/parser_raw.mly" + ( [x] ) +# 52453 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.extension_constructor list)) in - + { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + } = _menhir_stack in + let _1 : (Parsetree.extension_constructor) = Obj.magic _1 in + let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in + let _startpos = _startpos__1_ in + let _endpos = _endpos__1_ in + let _v = + let x = +# 4412 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 52480 "src/ocaml/preprocess/parser_raw.ml" + in + ( +# 1528 "src/ocaml/preprocess/parser_raw.mly" + ( [x] ) +# 52485 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.extension_constructor list)) + in + { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = d; + MenhirLib.EngineTypes.startp = _startpos_d_; + MenhirLib.EngineTypes.endp = _endpos_d_; + MenhirLib.EngineTypes.next = _menhir_stack; + } = _menhir_stack in + let d : (Ocaml_parsing.Ast_helper.str * + (string Location.loc * Parsetree.jkind_annotation option) list * + Parsetree.constructor_arguments * Parsetree.core_type option * + Parsetree.attributes * Location.t * Ocaml_parsing.Docstrings.info) = Obj.magic d in + let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in + let _startpos = _startpos_d_ in + let _endpos = _endpos_d_ in + let _v = + let x = + let _1 = +# 4416 "src/ocaml/preprocess/parser_raw.mly" + ( + let name, vars, args, res, attrs, loc, info = d in + Te.decl name ~vars ~args ?res ~attrs ~loc ~info + ) +# 52519 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4410 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 52524 "src/ocaml/preprocess/parser_raw.ml" + + in + ( # 1531 "src/ocaml/preprocess/parser_raw.mly" ( [x] ) -# 51154 "src/ocaml/preprocess/parser_raw.ml" - in +# 52530 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.extension_constructor list)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -51172,16 +52549,18 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v : (Parsetree.extension_constructor list) = let x = -# 4401 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let x = +# 4412 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 51179 "src/ocaml/preprocess/parser_raw.ml" - in - +# 52557 "src/ocaml/preprocess/parser_raw.ml" + in + ( # 1531 "src/ocaml/preprocess/parser_raw.mly" ( [x] ) -# 51184 "src/ocaml/preprocess/parser_raw.ml" - in +# 52562 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.extension_constructor list)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -51212,26 +52591,28 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_xs_ in let _endpos = _endpos_d_ in - let _v : (Parsetree.extension_constructor list) = let x = - let _1 = -# 4405 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let x = + let _1 = +# 4416 "src/ocaml/preprocess/parser_raw.mly" ( let name, vars, args, res, attrs, loc, info = d in Te.decl name ~vars ~args ?res ~attrs ~loc ~info ) -# 51223 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4399 "src/ocaml/preprocess/parser_raw.mly" +# 52603 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4410 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 51228 "src/ocaml/preprocess/parser_raw.ml" - - in - +# 52608 "src/ocaml/preprocess/parser_raw.ml" + + in + ( # 1535 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 51234 "src/ocaml/preprocess/parser_raw.ml" - in +# 52614 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.extension_constructor list)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -51259,16 +52640,18 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_xs_ in let _endpos = _endpos__1_ in - let _v : (Parsetree.extension_constructor list) = let x = -# 4401 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let x = +# 4412 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 51266 "src/ocaml/preprocess/parser_raw.ml" - in - +# 52648 "src/ocaml/preprocess/parser_raw.ml" + in + ( # 1535 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 51271 "src/ocaml/preprocess/parser_raw.ml" - in +# 52653 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.extension_constructor list)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -51292,19 +52675,21 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_d_ in let _endpos = _endpos_d_ in - let _v : (Parsetree.extension_constructor list) = let x = -# 4405 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let x = +# 4416 "src/ocaml/preprocess/parser_raw.mly" ( let name, vars, args, res, attrs, loc, info = d in Te.decl name ~vars ~args ?res ~attrs ~loc ~info ) -# 51302 "src/ocaml/preprocess/parser_raw.ml" - in - +# 52686 "src/ocaml/preprocess/parser_raw.ml" + in + ( # 1528 "src/ocaml/preprocess/parser_raw.mly" ( [x] ) -# 51307 "src/ocaml/preprocess/parser_raw.ml" - in +# 52691 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.extension_constructor list)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -51328,19 +52713,21 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_d_ in let _endpos = _endpos_d_ in - let _v : (Parsetree.extension_constructor list) = let x = -# 4405 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let x = +# 4416 "src/ocaml/preprocess/parser_raw.mly" ( let name, vars, args, res, attrs, loc, info = d in Te.decl name ~vars ~args ?res ~attrs ~loc ~info ) -# 51338 "src/ocaml/preprocess/parser_raw.ml" - in - +# 52724 "src/ocaml/preprocess/parser_raw.ml" + in + ( # 1531 "src/ocaml/preprocess/parser_raw.mly" ( [x] ) -# 51343 "src/ocaml/preprocess/parser_raw.ml" - in +# 52729 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.extension_constructor list)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -51371,19 +52758,21 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_xs_ in let _endpos = _endpos_d_ in - let _v : (Parsetree.extension_constructor list) = let x = -# 4405 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let x = +# 4416 "src/ocaml/preprocess/parser_raw.mly" ( let name, vars, args, res, attrs, loc, info = d in Te.decl name ~vars ~args ?res ~attrs ~loc ~info ) -# 51381 "src/ocaml/preprocess/parser_raw.ml" - in - +# 52769 "src/ocaml/preprocess/parser_raw.ml" + in + ( # 1535 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 51386 "src/ocaml/preprocess/parser_raw.ml" - in +# 52774 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.extension_constructor list)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -51418,30 +52807,32 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_xs_ in let _endpos = _endpos__1_ in - let _v : ((string option * Parsetree.expression) list) = let x = - let _1 = - let _1 = + let _v = + let x = + let _1 = + let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 51427 "src/ocaml/preprocess/parser_raw.ml" - in - -# 2981 "src/ocaml/preprocess/parser_raw.mly" +# 52817 "src/ocaml/preprocess/parser_raw.ml" + in + +# 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 51432 "src/ocaml/preprocess/parser_raw.ml" +# 52822 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 3580 "src/ocaml/preprocess/parser_raw.mly" +# 3591 "src/ocaml/preprocess/parser_raw.mly" ( None, _1 ) -# 51438 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 3596 "src/ocaml/preprocess/parser_raw.mly" +# 52828 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 3607 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 51444 "src/ocaml/preprocess/parser_raw.ml" - in +# 52834 "src/ocaml/preprocess/parser_raw.ml" + : ((string option * Parsetree.expression) list)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -51497,50 +52888,51 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_xs_ in let _endpos = _endpos_xs_inlined1_ in - let _v : ((string option * Parsetree.expression) list) = let x = - let (_endpos_xs_, xs) = (_endpos_xs_inlined1_, xs_inlined1) in - let _1 = + let _v = + let x = + let (_endpos_xs_, xs) = (_endpos_xs_inlined1_, xs_inlined1) in let _1 = - let _3 = - let xs = - let xs = -# 253 "" + let _1 = + let _3 = + let xs = + let xs = +# 264 "" ( List.rev xs ) -# 51510 "src/ocaml/preprocess/parser_raw.ml" - in - +# 52902 "src/ocaml/preprocess/parser_raw.ml" + in + # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 51515 "src/ocaml/preprocess/parser_raw.ml" +# 52907 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 3499 "src/ocaml/preprocess/parser_raw.mly" +# 3510 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 51521 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__3_ = _endpos_xs_ in - let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in +# 52913 "src/ocaml/preprocess/parser_raw.ml" -# 5392 "src/ocaml/preprocess/parser_raw.mly" + in + let _endpos__3_ = _endpos_xs_ in + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in + let _2 = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 51532 "src/ocaml/preprocess/parser_raw.ml" +# 52924 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 5405 "src/ocaml/preprocess/parser_raw.mly" +# 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 51538 "src/ocaml/preprocess/parser_raw.ml" +# 52930 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 2718 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in @@ -51554,26 +52946,27 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 51558 "src/ocaml/preprocess/parser_raw.ml" +# 52950 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 2985 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 52956 "src/ocaml/preprocess/parser_raw.ml" in -# 2981 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 51564 "src/ocaml/preprocess/parser_raw.ml" +# 3591 "src/ocaml/preprocess/parser_raw.mly" + ( None, _1 ) +# 52962 "src/ocaml/preprocess/parser_raw.ml" in - -# 3580 "src/ocaml/preprocess/parser_raw.mly" - ( None, _1 ) -# 51570 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 3596 "src/ocaml/preprocess/parser_raw.mly" + ( +# 3607 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 51576 "src/ocaml/preprocess/parser_raw.ml" - in +# 52968 "src/ocaml/preprocess/parser_raw.ml" + : ((string option * Parsetree.expression) list)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -51612,26 +53005,28 @@ module Tables = struct let _1 : ( # 1082 "src/ocaml/preprocess/parser_raw.mly" (string) -# 51616 "src/ocaml/preprocess/parser_raw.ml" +# 53009 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _2 : unit = Obj.magic _2 in let xs : ((string option * Parsetree.expression) list) = Obj.magic xs in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_xs_ in let _endpos = _endpos__2_inlined1_ in - let _v : ((string option * Parsetree.expression) list) = let x = - let _2 = _2_inlined1 in - -# 3582 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let x = + let _2 = _2_inlined1 in + +# 3593 "src/ocaml/preprocess/parser_raw.mly" ( Some _1, _2 ) -# 51628 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 3596 "src/ocaml/preprocess/parser_raw.mly" +# 53022 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 3607 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 51634 "src/ocaml/preprocess/parser_raw.ml" - in +# 53028 "src/ocaml/preprocess/parser_raw.ml" + : ((string option * Parsetree.expression) list)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -51669,7 +53064,7 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 51673 "src/ocaml/preprocess/parser_raw.ml" +# 53068 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _1 : unit = Obj.magic _1 in let _2 : unit = Obj.magic _2 in @@ -51677,20 +53072,22 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_xs_ in let _endpos = _endpos_label_ in - let _v : ((string option * Parsetree.expression) list) = let x = - let _loc_label_ = (_startpos_label_, _endpos_label_) in - -# 3584 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let x = + let _loc_label_ = (_startpos_label_, _endpos_label_) in + +# 3595 "src/ocaml/preprocess/parser_raw.mly" ( let loc = _loc_label_ in Some label, mkexpvar ~loc label ) -# 51687 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 3596 "src/ocaml/preprocess/parser_raw.mly" +# 53083 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 3607 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 51693 "src/ocaml/preprocess/parser_raw.ml" - in +# 53089 "src/ocaml/preprocess/parser_raw.ml" + : ((string option * Parsetree.expression) list)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -51748,7 +53145,7 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 51752 "src/ocaml/preprocess/parser_raw.ml" +# 53149 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _2_inlined1 : unit = Obj.magic _2_inlined1 in let _1 : unit = Obj.magic _1 in @@ -51757,23 +53154,25 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_xs_ in let _endpos = _endpos__5_ in - let _v : ((string option * Parsetree.expression) list) = let x = - let _startpos__2_ = _startpos__2_inlined1_ in - let _endpos = _endpos__5_ in - let _loc_label_ = (_startpos_label_, _endpos_label_) in - -# 3587 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let x = + let _startpos__2_ = _startpos__2_inlined1_ in + let _endpos = _endpos__5_ in + let _loc_label_ = (_startpos_label_, _endpos_label_) in + +# 3598 "src/ocaml/preprocess/parser_raw.mly" ( Some label, mkexp_type_constraint_with_modes ~loc:(_startpos__2_, _endpos) ~modes:[] (mkexpvar ~loc:_loc_label_ label) c ) -# 51770 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 3596 "src/ocaml/preprocess/parser_raw.mly" +# 53168 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 3607 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 51776 "src/ocaml/preprocess/parser_raw.ml" - in +# 53174 "src/ocaml/preprocess/parser_raw.ml" + : ((string option * Parsetree.expression) list)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -51808,43 +53207,45 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined1_ in - let _v : ((string option * Parsetree.expression) list) = let x2 = - let _1 = _1_inlined1 in - let _1 = - let _1 = + let _v = + let x2 = + let _1 = _1_inlined1 in + let _1 = + let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 51818 "src/ocaml/preprocess/parser_raw.ml" - in - -# 2981 "src/ocaml/preprocess/parser_raw.mly" +# 53218 "src/ocaml/preprocess/parser_raw.ml" + in + +# 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 51823 "src/ocaml/preprocess/parser_raw.ml" +# 53223 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 3580 "src/ocaml/preprocess/parser_raw.mly" +# 3591 "src/ocaml/preprocess/parser_raw.mly" ( None, _1 ) -# 51829 "src/ocaml/preprocess/parser_raw.ml" - - in - let x1 = - let _1 = +# 53229 "src/ocaml/preprocess/parser_raw.ml" + + in + let x1 = + let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 51836 "src/ocaml/preprocess/parser_raw.ml" - in - -# 2981 "src/ocaml/preprocess/parser_raw.mly" +# 53236 "src/ocaml/preprocess/parser_raw.ml" + in + +# 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 51841 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 3601 "src/ocaml/preprocess/parser_raw.mly" +# 53241 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 3612 "src/ocaml/preprocess/parser_raw.mly" ( [ x2; None, x1 ] ) -# 51847 "src/ocaml/preprocess/parser_raw.ml" - in +# 53247 "src/ocaml/preprocess/parser_raw.ml" + : ((string option * Parsetree.expression) list)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -51900,50 +53301,51 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_xs_ in - let _v : ((string option * Parsetree.expression) list) = let x2 = - let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in - let _1 = + let _v = + let x2 = + let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in let _1 = - let _3 = - let xs = - let xs = -# 253 "" + let _1 = + let _3 = + let xs = + let xs = +# 264 "" ( List.rev xs ) -# 51913 "src/ocaml/preprocess/parser_raw.ml" - in - +# 53315 "src/ocaml/preprocess/parser_raw.ml" + in + # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 51918 "src/ocaml/preprocess/parser_raw.ml" +# 53320 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 3499 "src/ocaml/preprocess/parser_raw.mly" +# 3510 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 51924 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__3_ = _endpos_xs_ in - let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in +# 53326 "src/ocaml/preprocess/parser_raw.ml" -# 5392 "src/ocaml/preprocess/parser_raw.mly" + in + let _endpos__3_ = _endpos_xs_ in + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in + let _2 = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 51935 "src/ocaml/preprocess/parser_raw.ml" +# 53337 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 5405 "src/ocaml/preprocess/parser_raw.mly" +# 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 51941 "src/ocaml/preprocess/parser_raw.ml" +# 53343 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 2718 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in @@ -51957,38 +53359,39 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 51961 "src/ocaml/preprocess/parser_raw.ml" +# 53363 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 2985 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 53369 "src/ocaml/preprocess/parser_raw.ml" in -# 2981 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 51967 "src/ocaml/preprocess/parser_raw.ml" +# 3591 "src/ocaml/preprocess/parser_raw.mly" + ( None, _1 ) +# 53375 "src/ocaml/preprocess/parser_raw.ml" in - -# 3580 "src/ocaml/preprocess/parser_raw.mly" - ( None, _1 ) -# 51973 "src/ocaml/preprocess/parser_raw.ml" - - in - let x1 = - let _1 = + let x1 = + let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 51980 "src/ocaml/preprocess/parser_raw.ml" - in - -# 2981 "src/ocaml/preprocess/parser_raw.mly" +# 53382 "src/ocaml/preprocess/parser_raw.ml" + in + +# 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 51985 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 3601 "src/ocaml/preprocess/parser_raw.mly" +# 53387 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 3612 "src/ocaml/preprocess/parser_raw.mly" ( [ x2; None, x1 ] ) -# 51991 "src/ocaml/preprocess/parser_raw.ml" - in +# 53393 "src/ocaml/preprocess/parser_raw.ml" + : ((string option * Parsetree.expression) list)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -52027,38 +53430,40 @@ module Tables = struct let _1_inlined1 : ( # 1082 "src/ocaml/preprocess/parser_raw.mly" (string) -# 52031 "src/ocaml/preprocess/parser_raw.ml" +# 53434 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in let _1 : (Parsetree.expression) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__2_inlined1_ in - let _v : ((string option * Parsetree.expression) list) = let x2 = - let (_2, _1) = (_2_inlined1, _1_inlined1) in - -# 3582 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let x2 = + let (_2, _1) = (_2_inlined1, _1_inlined1) in + +# 3593 "src/ocaml/preprocess/parser_raw.mly" ( Some _1, _2 ) -# 52043 "src/ocaml/preprocess/parser_raw.ml" - - in - let x1 = - let _1 = +# 53447 "src/ocaml/preprocess/parser_raw.ml" + + in + let x1 = + let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 52050 "src/ocaml/preprocess/parser_raw.ml" - in - -# 2981 "src/ocaml/preprocess/parser_raw.mly" +# 53454 "src/ocaml/preprocess/parser_raw.ml" + in + +# 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 52055 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 3601 "src/ocaml/preprocess/parser_raw.mly" +# 53459 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 3612 "src/ocaml/preprocess/parser_raw.mly" ( [ x2; None, x1 ] ) -# 52061 "src/ocaml/preprocess/parser_raw.ml" - in +# 53465 "src/ocaml/preprocess/parser_raw.ml" + : ((string option * Parsetree.expression) list)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -52096,7 +53501,7 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 52100 "src/ocaml/preprocess/parser_raw.ml" +# 53505 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in @@ -52104,32 +53509,34 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_label_ in - let _v : ((string option * Parsetree.expression) list) = let x2 = - let _loc_label_ = (_startpos_label_, _endpos_label_) in - -# 3584 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let x2 = + let _loc_label_ = (_startpos_label_, _endpos_label_) in + +# 3595 "src/ocaml/preprocess/parser_raw.mly" ( let loc = _loc_label_ in Some label, mkexpvar ~loc label ) -# 52114 "src/ocaml/preprocess/parser_raw.ml" - - in - let x1 = - let _1 = +# 53520 "src/ocaml/preprocess/parser_raw.ml" + + in + let x1 = + let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 52121 "src/ocaml/preprocess/parser_raw.ml" - in - -# 2981 "src/ocaml/preprocess/parser_raw.mly" +# 53527 "src/ocaml/preprocess/parser_raw.ml" + in + +# 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 52126 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 3601 "src/ocaml/preprocess/parser_raw.mly" +# 53532 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 3612 "src/ocaml/preprocess/parser_raw.mly" ( [ x2; None, x1 ] ) -# 52132 "src/ocaml/preprocess/parser_raw.ml" - in +# 53538 "src/ocaml/preprocess/parser_raw.ml" + : ((string option * Parsetree.expression) list)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -52187,7 +53594,7 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 52191 "src/ocaml/preprocess/parser_raw.ml" +# 53598 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _2_inlined1 : unit = Obj.magic _2_inlined1 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in @@ -52196,35 +53603,37 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__5_ in - let _v : ((string option * Parsetree.expression) list) = let x2 = - let _startpos__2_ = _startpos__2_inlined1_ in - let _endpos = _endpos__5_ in - let _loc_label_ = (_startpos_label_, _endpos_label_) in - -# 3587 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let x2 = + let _startpos__2_ = _startpos__2_inlined1_ in + let _endpos = _endpos__5_ in + let _loc_label_ = (_startpos_label_, _endpos_label_) in + +# 3598 "src/ocaml/preprocess/parser_raw.mly" ( Some label, mkexp_type_constraint_with_modes ~loc:(_startpos__2_, _endpos) ~modes:[] (mkexpvar ~loc:_loc_label_ label) c ) -# 52209 "src/ocaml/preprocess/parser_raw.ml" - - in - let x1 = - let _1 = +# 53617 "src/ocaml/preprocess/parser_raw.ml" + + in + let x1 = + let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 52216 "src/ocaml/preprocess/parser_raw.ml" - in - -# 2981 "src/ocaml/preprocess/parser_raw.mly" +# 53624 "src/ocaml/preprocess/parser_raw.ml" + in + +# 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 52221 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 3601 "src/ocaml/preprocess/parser_raw.mly" +# 53629 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 3612 "src/ocaml/preprocess/parser_raw.mly" ( [ x2; None, x1 ] ) -# 52227 "src/ocaml/preprocess/parser_raw.ml" - in +# 53635 "src/ocaml/preprocess/parser_raw.ml" + : ((string option * Parsetree.expression) list)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -52280,68 +53689,69 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined3_ in - let _v : ((string option * Parsetree.expression) list) = let x2 = - let _1 = _1_inlined3 in - let _1 = - let _1 = + let _v = + let x2 = + let _1 = _1_inlined3 in + let _1 = + let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 52290 "src/ocaml/preprocess/parser_raw.ml" - in - -# 2981 "src/ocaml/preprocess/parser_raw.mly" +# 53700 "src/ocaml/preprocess/parser_raw.ml" + in + +# 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 52295 "src/ocaml/preprocess/parser_raw.ml" +# 53705 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 3580 "src/ocaml/preprocess/parser_raw.mly" +# 3591 "src/ocaml/preprocess/parser_raw.mly" ( None, _1 ) -# 52301 "src/ocaml/preprocess/parser_raw.ml" - - in - let x1 = - let _1 = - let _3 = - let xs = - let xs = -# 253 "" +# 53711 "src/ocaml/preprocess/parser_raw.ml" + + in + let x1 = + let _1 = + let _3 = + let xs = + let xs = +# 264 "" ( List.rev xs ) -# 52311 "src/ocaml/preprocess/parser_raw.ml" - in - +# 53721 "src/ocaml/preprocess/parser_raw.ml" + in + # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 52316 "src/ocaml/preprocess/parser_raw.ml" +# 53726 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 3499 "src/ocaml/preprocess/parser_raw.mly" +# 3510 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 52322 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__3_ = _endpos_xs_ in - let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in +# 53732 "src/ocaml/preprocess/parser_raw.ml" -# 5392 "src/ocaml/preprocess/parser_raw.mly" + in + let _endpos__3_ = _endpos_xs_ in + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in + let _2 = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 52333 "src/ocaml/preprocess/parser_raw.ml" +# 53743 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 5405 "src/ocaml/preprocess/parser_raw.mly" +# 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 52339 "src/ocaml/preprocess/parser_raw.ml" +# 53749 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 2718 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in @@ -52355,20 +53765,21 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 52359 "src/ocaml/preprocess/parser_raw.ml" +# 53769 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 2981 "src/ocaml/preprocess/parser_raw.mly" +# 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 52365 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 3601 "src/ocaml/preprocess/parser_raw.mly" +# 53775 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 3612 "src/ocaml/preprocess/parser_raw.mly" ( [ x2; None, x1 ] ) -# 52371 "src/ocaml/preprocess/parser_raw.ml" - in +# 53781 "src/ocaml/preprocess/parser_raw.ml" + : ((string option * Parsetree.expression) list)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -52445,50 +53856,51 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_xs_inlined1_ in - let _v : ((string option * Parsetree.expression) list) = let x2 = - let (_endpos_xs_, _startpos__1_, xs, _1_inlined2, _1_inlined1) = (_endpos_xs_inlined1_, _startpos__1_inlined3_, xs_inlined1, _1_inlined5, _1_inlined4) in - let _1 = + let _v = + let x2 = + let (_endpos_xs_, _startpos__1_, xs, _1_inlined2, _1_inlined1) = (_endpos_xs_inlined1_, _startpos__1_inlined3_, xs_inlined1, _1_inlined5, _1_inlined4) in let _1 = - let _3 = - let xs = - let xs = -# 253 "" + let _1 = + let _3 = + let xs = + let xs = +# 264 "" ( List.rev xs ) -# 52458 "src/ocaml/preprocess/parser_raw.ml" - in - +# 53870 "src/ocaml/preprocess/parser_raw.ml" + in + # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 52463 "src/ocaml/preprocess/parser_raw.ml" +# 53875 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 3499 "src/ocaml/preprocess/parser_raw.mly" +# 3510 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 52469 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__3_ = _endpos_xs_ in - let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in +# 53881 "src/ocaml/preprocess/parser_raw.ml" -# 5392 "src/ocaml/preprocess/parser_raw.mly" + in + let _endpos__3_ = _endpos_xs_ in + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in + let _2 = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 52480 "src/ocaml/preprocess/parser_raw.ml" +# 53892 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 5405 "src/ocaml/preprocess/parser_raw.mly" +# 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 52486 "src/ocaml/preprocess/parser_raw.ml" +# 53898 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 2718 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in @@ -52502,63 +53914,63 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 52506 "src/ocaml/preprocess/parser_raw.ml" +# 53918 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 2985 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 53924 "src/ocaml/preprocess/parser_raw.ml" in -# 2981 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 52512 "src/ocaml/preprocess/parser_raw.ml" +# 3591 "src/ocaml/preprocess/parser_raw.mly" + ( None, _1 ) +# 53930 "src/ocaml/preprocess/parser_raw.ml" in - -# 3580 "src/ocaml/preprocess/parser_raw.mly" - ( None, _1 ) -# 52518 "src/ocaml/preprocess/parser_raw.ml" - - in - let x1 = - let _1 = - let _3 = - let xs = - let xs = -# 253 "" + let x1 = + let _1 = + let _3 = + let xs = + let xs = +# 264 "" ( List.rev xs ) -# 52528 "src/ocaml/preprocess/parser_raw.ml" - in - +# 53940 "src/ocaml/preprocess/parser_raw.ml" + in + # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 52533 "src/ocaml/preprocess/parser_raw.ml" +# 53945 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 3499 "src/ocaml/preprocess/parser_raw.mly" +# 3510 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 52539 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__3_ = _endpos_xs_ in - let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in +# 53951 "src/ocaml/preprocess/parser_raw.ml" -# 5392 "src/ocaml/preprocess/parser_raw.mly" + in + let _endpos__3_ = _endpos_xs_ in + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in + let _2 = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 52550 "src/ocaml/preprocess/parser_raw.ml" +# 53962 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 5405 "src/ocaml/preprocess/parser_raw.mly" +# 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 52556 "src/ocaml/preprocess/parser_raw.ml" +# 53968 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 2718 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in @@ -52572,20 +53984,21 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 52576 "src/ocaml/preprocess/parser_raw.ml" +# 53988 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 2981 "src/ocaml/preprocess/parser_raw.mly" +# 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 52582 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 3601 "src/ocaml/preprocess/parser_raw.mly" +# 53994 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 3612 "src/ocaml/preprocess/parser_raw.mly" ( [ x2; None, x1 ] ) -# 52588 "src/ocaml/preprocess/parser_raw.ml" - in +# 54000 "src/ocaml/preprocess/parser_raw.ml" + : ((string option * Parsetree.expression) list)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -52642,7 +54055,7 @@ module Tables = struct let _1_inlined3 : ( # 1082 "src/ocaml/preprocess/parser_raw.mly" (string) -# 52646 "src/ocaml/preprocess/parser_raw.ml" +# 54059 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined3 in let _2 : unit = Obj.magic _2 in let xs : (Parsetree.case list) = Obj.magic xs in @@ -52652,56 +54065,57 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__2_inlined1_ in - let _v : ((string option * Parsetree.expression) list) = let x2 = - let (_2, _1) = (_2_inlined1, _1_inlined3) in - -# 3582 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let x2 = + let (_2, _1) = (_2_inlined1, _1_inlined3) in + +# 3593 "src/ocaml/preprocess/parser_raw.mly" ( Some _1, _2 ) -# 52661 "src/ocaml/preprocess/parser_raw.ml" - - in - let x1 = - let _1 = - let _3 = - let xs = - let xs = -# 253 "" +# 54075 "src/ocaml/preprocess/parser_raw.ml" + + in + let x1 = + let _1 = + let _3 = + let xs = + let xs = +# 264 "" ( List.rev xs ) -# 52671 "src/ocaml/preprocess/parser_raw.ml" - in - +# 54085 "src/ocaml/preprocess/parser_raw.ml" + in + # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 52676 "src/ocaml/preprocess/parser_raw.ml" +# 54090 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 3499 "src/ocaml/preprocess/parser_raw.mly" +# 3510 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 52682 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__3_ = _endpos_xs_ in - let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in +# 54096 "src/ocaml/preprocess/parser_raw.ml" -# 5392 "src/ocaml/preprocess/parser_raw.mly" + in + let _endpos__3_ = _endpos_xs_ in + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in + let _2 = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 52693 "src/ocaml/preprocess/parser_raw.ml" +# 54107 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 5405 "src/ocaml/preprocess/parser_raw.mly" +# 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 52699 "src/ocaml/preprocess/parser_raw.ml" +# 54113 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 2718 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in @@ -52715,20 +54129,21 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 52719 "src/ocaml/preprocess/parser_raw.ml" +# 54133 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 2981 "src/ocaml/preprocess/parser_raw.mly" +# 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 52725 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 3601 "src/ocaml/preprocess/parser_raw.mly" +# 54139 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 3612 "src/ocaml/preprocess/parser_raw.mly" ( [ x2; None, x1 ] ) -# 52731 "src/ocaml/preprocess/parser_raw.ml" - in +# 54145 "src/ocaml/preprocess/parser_raw.ml" + : ((string option * Parsetree.expression) list)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -52784,7 +54199,7 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 52788 "src/ocaml/preprocess/parser_raw.ml" +# 54203 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _1_inlined3 : unit = Obj.magic _1_inlined3 in let _2 : unit = Obj.magic _2 in @@ -52795,57 +54210,58 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_label_ in - let _v : ((string option * Parsetree.expression) list) = let x2 = - let _loc_label_ = (_startpos_label_, _endpos_label_) in - -# 3584 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let x2 = + let _loc_label_ = (_startpos_label_, _endpos_label_) in + +# 3595 "src/ocaml/preprocess/parser_raw.mly" ( let loc = _loc_label_ in Some label, mkexpvar ~loc label ) -# 52805 "src/ocaml/preprocess/parser_raw.ml" - - in - let x1 = - let _1 = - let _3 = - let xs = - let xs = -# 253 "" +# 54221 "src/ocaml/preprocess/parser_raw.ml" + + in + let x1 = + let _1 = + let _3 = + let xs = + let xs = +# 264 "" ( List.rev xs ) -# 52815 "src/ocaml/preprocess/parser_raw.ml" - in - +# 54231 "src/ocaml/preprocess/parser_raw.ml" + in + # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 52820 "src/ocaml/preprocess/parser_raw.ml" +# 54236 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 3499 "src/ocaml/preprocess/parser_raw.mly" +# 3510 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 52826 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__3_ = _endpos_xs_ in - let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in +# 54242 "src/ocaml/preprocess/parser_raw.ml" -# 5392 "src/ocaml/preprocess/parser_raw.mly" + in + let _endpos__3_ = _endpos_xs_ in + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in + let _2 = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 52837 "src/ocaml/preprocess/parser_raw.ml" +# 54253 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 5405 "src/ocaml/preprocess/parser_raw.mly" +# 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 52843 "src/ocaml/preprocess/parser_raw.ml" +# 54259 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 2718 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in @@ -52859,20 +54275,21 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 52863 "src/ocaml/preprocess/parser_raw.ml" +# 54279 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 2981 "src/ocaml/preprocess/parser_raw.mly" +# 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 52869 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 3601 "src/ocaml/preprocess/parser_raw.mly" +# 54285 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 3612 "src/ocaml/preprocess/parser_raw.mly" ( [ x2; None, x1 ] ) -# 52875 "src/ocaml/preprocess/parser_raw.ml" - in +# 54291 "src/ocaml/preprocess/parser_raw.ml" + : ((string option * Parsetree.expression) list)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -52948,7 +54365,7 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 52952 "src/ocaml/preprocess/parser_raw.ml" +# 54369 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _2_inlined1 : unit = Obj.magic _2_inlined1 in let _1_inlined3 : unit = Obj.magic _1_inlined3 in @@ -52960,60 +54377,61 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__5_ in - let _v : ((string option * Parsetree.expression) list) = let x2 = - let _startpos__2_ = _startpos__2_inlined1_ in - let _endpos = _endpos__5_ in - let _loc_label_ = (_startpos_label_, _endpos_label_) in - -# 3587 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let x2 = + let _startpos__2_ = _startpos__2_inlined1_ in + let _endpos = _endpos__5_ in + let _loc_label_ = (_startpos_label_, _endpos_label_) in + +# 3598 "src/ocaml/preprocess/parser_raw.mly" ( Some label, mkexp_type_constraint_with_modes ~loc:(_startpos__2_, _endpos) ~modes:[] (mkexpvar ~loc:_loc_label_ label) c ) -# 52973 "src/ocaml/preprocess/parser_raw.ml" - - in - let x1 = - let _1 = - let _3 = - let xs = - let xs = -# 253 "" +# 54391 "src/ocaml/preprocess/parser_raw.ml" + + in + let x1 = + let _1 = + let _3 = + let xs = + let xs = +# 264 "" ( List.rev xs ) -# 52983 "src/ocaml/preprocess/parser_raw.ml" - in - +# 54401 "src/ocaml/preprocess/parser_raw.ml" + in + # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 52988 "src/ocaml/preprocess/parser_raw.ml" +# 54406 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 3499 "src/ocaml/preprocess/parser_raw.mly" +# 3510 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 52994 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__3_ = _endpos_xs_ in - let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in +# 54412 "src/ocaml/preprocess/parser_raw.ml" -# 5392 "src/ocaml/preprocess/parser_raw.mly" + in + let _endpos__3_ = _endpos_xs_ in + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in + let _2 = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 53005 "src/ocaml/preprocess/parser_raw.ml" +# 54423 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 5405 "src/ocaml/preprocess/parser_raw.mly" +# 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 53011 "src/ocaml/preprocess/parser_raw.ml" +# 54429 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 2718 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in @@ -53027,20 +54445,21 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 53031 "src/ocaml/preprocess/parser_raw.ml" +# 54449 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 2981 "src/ocaml/preprocess/parser_raw.mly" +# 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 53037 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 3601 "src/ocaml/preprocess/parser_raw.mly" +# 54455 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 3612 "src/ocaml/preprocess/parser_raw.mly" ( [ x2; None, x1 ] ) -# 53043 "src/ocaml/preprocess/parser_raw.ml" - in +# 54461 "src/ocaml/preprocess/parser_raw.ml" + : ((string option * Parsetree.expression) list)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -53081,35 +54500,37 @@ module Tables = struct let l1 : ( # 1082 "src/ocaml/preprocess/parser_raw.mly" (string) -# 53085 "src/ocaml/preprocess/parser_raw.ml" +# 54504 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic l1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_l1_ in let _endpos = _endpos__1_ in - let _v : ((string option * Parsetree.expression) list) = let x2 = - let _1 = - let _1 = + let _v = + let x2 = + let _1 = + let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 53095 "src/ocaml/preprocess/parser_raw.ml" - in - -# 2981 "src/ocaml/preprocess/parser_raw.mly" +# 54515 "src/ocaml/preprocess/parser_raw.ml" + in + +# 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 53100 "src/ocaml/preprocess/parser_raw.ml" +# 54520 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 3580 "src/ocaml/preprocess/parser_raw.mly" +# 3591 "src/ocaml/preprocess/parser_raw.mly" ( None, _1 ) -# 53106 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 3605 "src/ocaml/preprocess/parser_raw.mly" +# 54526 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 3616 "src/ocaml/preprocess/parser_raw.mly" ( [ x2; Some l1, x1 ] ) -# 53112 "src/ocaml/preprocess/parser_raw.ml" - in +# 54532 "src/ocaml/preprocess/parser_raw.ml" + : ((string option * Parsetree.expression) list)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -53171,54 +54592,55 @@ module Tables = struct let l1 : ( # 1082 "src/ocaml/preprocess/parser_raw.mly" (string) -# 53175 "src/ocaml/preprocess/parser_raw.ml" +# 54596 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic l1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_l1_ in let _endpos = _endpos_xs_ in - let _v : ((string option * Parsetree.expression) list) = let x2 = - let _1 = + let _v = + let x2 = let _1 = - let _3 = - let xs = - let xs = -# 253 "" + let _1 = + let _3 = + let xs = + let xs = +# 264 "" ( List.rev xs ) -# 53188 "src/ocaml/preprocess/parser_raw.ml" - in - +# 54610 "src/ocaml/preprocess/parser_raw.ml" + in + # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 53193 "src/ocaml/preprocess/parser_raw.ml" +# 54615 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 3499 "src/ocaml/preprocess/parser_raw.mly" +# 3510 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 53199 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__3_ = _endpos_xs_ in - let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in +# 54621 "src/ocaml/preprocess/parser_raw.ml" -# 5392 "src/ocaml/preprocess/parser_raw.mly" + in + let _endpos__3_ = _endpos_xs_ in + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in + let _2 = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 53210 "src/ocaml/preprocess/parser_raw.ml" +# 54632 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 5405 "src/ocaml/preprocess/parser_raw.mly" +# 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 53216 "src/ocaml/preprocess/parser_raw.ml" +# 54638 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 2718 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in @@ -53232,26 +54654,27 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 53236 "src/ocaml/preprocess/parser_raw.ml" +# 54658 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 2985 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 54664 "src/ocaml/preprocess/parser_raw.ml" in -# 2981 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 53242 "src/ocaml/preprocess/parser_raw.ml" +# 3591 "src/ocaml/preprocess/parser_raw.mly" + ( None, _1 ) +# 54670 "src/ocaml/preprocess/parser_raw.ml" in - -# 3580 "src/ocaml/preprocess/parser_raw.mly" - ( None, _1 ) -# 53248 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 3605 "src/ocaml/preprocess/parser_raw.mly" + ( +# 3616 "src/ocaml/preprocess/parser_raw.mly" ( [ x2; Some l1, x1 ] ) -# 53254 "src/ocaml/preprocess/parser_raw.ml" - in +# 54676 "src/ocaml/preprocess/parser_raw.ml" + : ((string option * Parsetree.expression) list)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -53296,28 +54719,30 @@ module Tables = struct let _1 : ( # 1082 "src/ocaml/preprocess/parser_raw.mly" (string) -# 53300 "src/ocaml/preprocess/parser_raw.ml" +# 54723 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _3 : unit = Obj.magic _3 in let x1 : (Parsetree.expression) = Obj.magic x1 in let l1 : ( # 1082 "src/ocaml/preprocess/parser_raw.mly" (string) -# 53307 "src/ocaml/preprocess/parser_raw.ml" +# 54730 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic l1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_l1_ in let _endpos = _endpos__2_ in - let _v : ((string option * Parsetree.expression) list) = let x2 = -# 3582 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let x2 = +# 3593 "src/ocaml/preprocess/parser_raw.mly" ( Some _1, _2 ) -# 53315 "src/ocaml/preprocess/parser_raw.ml" - in - -# 3605 "src/ocaml/preprocess/parser_raw.mly" +# 54739 "src/ocaml/preprocess/parser_raw.ml" + in + ( +# 3616 "src/ocaml/preprocess/parser_raw.mly" ( [ x2; Some l1, x1 ] ) -# 53320 "src/ocaml/preprocess/parser_raw.ml" - in +# 54744 "src/ocaml/preprocess/parser_raw.ml" + : ((string option * Parsetree.expression) list)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -53361,7 +54786,7 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 53365 "src/ocaml/preprocess/parser_raw.ml" +# 54790 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _1 : unit = Obj.magic _1 in let _3 : unit = Obj.magic _3 in @@ -53369,25 +54794,27 @@ module Tables = struct let l1 : ( # 1082 "src/ocaml/preprocess/parser_raw.mly" (string) -# 53373 "src/ocaml/preprocess/parser_raw.ml" +# 54798 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic l1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_l1_ in let _endpos = _endpos_label_ in - let _v : ((string option * Parsetree.expression) list) = let x2 = - let _loc_label_ = (_startpos_label_, _endpos_label_) in - -# 3584 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let x2 = + let _loc_label_ = (_startpos_label_, _endpos_label_) in + +# 3595 "src/ocaml/preprocess/parser_raw.mly" ( let loc = _loc_label_ in Some label, mkexpvar ~loc label ) -# 53384 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 3605 "src/ocaml/preprocess/parser_raw.mly" +# 54810 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 3616 "src/ocaml/preprocess/parser_raw.mly" ( [ x2; Some l1, x1 ] ) -# 53390 "src/ocaml/preprocess/parser_raw.ml" - in +# 54816 "src/ocaml/preprocess/parser_raw.ml" + : ((string option * Parsetree.expression) list)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -53451,7 +54878,7 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 53455 "src/ocaml/preprocess/parser_raw.ml" +# 54882 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _2 : unit = Obj.magic _2 in let _1 : unit = Obj.magic _1 in @@ -53460,27 +54887,29 @@ module Tables = struct let l1 : ( # 1082 "src/ocaml/preprocess/parser_raw.mly" (string) -# 53464 "src/ocaml/preprocess/parser_raw.ml" +# 54891 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic l1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_l1_ in let _endpos = _endpos__5_ in - let _v : ((string option * Parsetree.expression) list) = let x2 = - let _endpos = _endpos__5_ in - let _loc_label_ = (_startpos_label_, _endpos_label_) in - -# 3587 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let x2 = + let _endpos = _endpos__5_ in + let _loc_label_ = (_startpos_label_, _endpos_label_) in + +# 3598 "src/ocaml/preprocess/parser_raw.mly" ( Some label, mkexp_type_constraint_with_modes ~loc:(_startpos__2_, _endpos) ~modes:[] (mkexpvar ~loc:_loc_label_ label) c ) -# 53477 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 3605 "src/ocaml/preprocess/parser_raw.mly" +# 54905 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 3616 "src/ocaml/preprocess/parser_raw.mly" ( [ x2; Some l1, x1 ] ) -# 53483 "src/ocaml/preprocess/parser_raw.ml" - in +# 54911 "src/ocaml/preprocess/parser_raw.ml" + : ((string option * Parsetree.expression) list)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -53520,39 +54949,41 @@ module Tables = struct let l1 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 53524 "src/ocaml/preprocess/parser_raw.ml" +# 54953 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic l1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined1_ in - let _v : ((string option * Parsetree.expression) list) = let x2 = - let _1 = _1_inlined1 in - let _1 = - let _1 = + let _v = + let x2 = + let _1 = _1_inlined1 in + let _1 = + let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 53536 "src/ocaml/preprocess/parser_raw.ml" - in - -# 2981 "src/ocaml/preprocess/parser_raw.mly" +# 54966 "src/ocaml/preprocess/parser_raw.ml" + in + +# 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 53541 "src/ocaml/preprocess/parser_raw.ml" +# 54971 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 3580 "src/ocaml/preprocess/parser_raw.mly" +# 3591 "src/ocaml/preprocess/parser_raw.mly" ( None, _1 ) -# 53547 "src/ocaml/preprocess/parser_raw.ml" - - in - let _loc_l1_ = (_startpos_l1_, _endpos_l1_) in - -# 3609 "src/ocaml/preprocess/parser_raw.mly" +# 54977 "src/ocaml/preprocess/parser_raw.ml" + + in + let _loc_l1_ = (_startpos_l1_, _endpos_l1_) in + ( +# 3620 "src/ocaml/preprocess/parser_raw.mly" ( let loc = _loc_l1_ in [ x2; Some l1, mkexpvar ~loc l1] ) -# 53555 "src/ocaml/preprocess/parser_raw.ml" - in +# 54985 "src/ocaml/preprocess/parser_raw.ml" + : ((string option * Parsetree.expression) list)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -53613,56 +55044,57 @@ module Tables = struct let l1 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 53617 "src/ocaml/preprocess/parser_raw.ml" +# 55048 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic l1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_xs_ in - let _v : ((string option * Parsetree.expression) list) = let x2 = - let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in - let _1 = + let _v = + let x2 = + let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in let _1 = - let _3 = - let xs = - let xs = -# 253 "" + let _1 = + let _3 = + let xs = + let xs = +# 264 "" ( List.rev xs ) -# 53632 "src/ocaml/preprocess/parser_raw.ml" - in - +# 55064 "src/ocaml/preprocess/parser_raw.ml" + in + # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 53637 "src/ocaml/preprocess/parser_raw.ml" +# 55069 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 3499 "src/ocaml/preprocess/parser_raw.mly" +# 3510 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 53643 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__3_ = _endpos_xs_ in - let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in +# 55075 "src/ocaml/preprocess/parser_raw.ml" -# 5392 "src/ocaml/preprocess/parser_raw.mly" + in + let _endpos__3_ = _endpos_xs_ in + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in + let _2 = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 53654 "src/ocaml/preprocess/parser_raw.ml" +# 55086 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 5405 "src/ocaml/preprocess/parser_raw.mly" +# 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 53660 "src/ocaml/preprocess/parser_raw.ml" +# 55092 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 2718 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in @@ -53676,28 +55108,29 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 53680 "src/ocaml/preprocess/parser_raw.ml" +# 55112 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 2985 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 55118 "src/ocaml/preprocess/parser_raw.ml" in -# 2981 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 53686 "src/ocaml/preprocess/parser_raw.ml" +# 3591 "src/ocaml/preprocess/parser_raw.mly" + ( None, _1 ) +# 55124 "src/ocaml/preprocess/parser_raw.ml" in - -# 3580 "src/ocaml/preprocess/parser_raw.mly" - ( None, _1 ) -# 53692 "src/ocaml/preprocess/parser_raw.ml" - - in - let _loc_l1_ = (_startpos_l1_, _endpos_l1_) in - -# 3609 "src/ocaml/preprocess/parser_raw.mly" + let _loc_l1_ = (_startpos_l1_, _endpos_l1_) in + ( +# 3620 "src/ocaml/preprocess/parser_raw.mly" ( let loc = _loc_l1_ in [ x2; Some l1, mkexpvar ~loc l1] ) -# 53700 "src/ocaml/preprocess/parser_raw.ml" - in +# 55132 "src/ocaml/preprocess/parser_raw.ml" + : ((string option * Parsetree.expression) list)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -53742,33 +55175,35 @@ module Tables = struct let _1_inlined1 : ( # 1082 "src/ocaml/preprocess/parser_raw.mly" (string) -# 53746 "src/ocaml/preprocess/parser_raw.ml" +# 55179 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined1 in let _3 : unit = Obj.magic _3 in let l1 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 53752 "src/ocaml/preprocess/parser_raw.ml" +# 55185 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic l1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in - let _v : ((string option * Parsetree.expression) list) = let x2 = - let _1 = _1_inlined1 in - -# 3582 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let x2 = + let _1 = _1_inlined1 in + +# 3593 "src/ocaml/preprocess/parser_raw.mly" ( Some _1, _2 ) -# 53763 "src/ocaml/preprocess/parser_raw.ml" - - in - let _loc_l1_ = (_startpos_l1_, _endpos_l1_) in - -# 3609 "src/ocaml/preprocess/parser_raw.mly" +# 55197 "src/ocaml/preprocess/parser_raw.ml" + + in + let _loc_l1_ = (_startpos_l1_, _endpos_l1_) in + ( +# 3620 "src/ocaml/preprocess/parser_raw.mly" ( let loc = _loc_l1_ in [ x2; Some l1, mkexpvar ~loc l1] ) -# 53771 "src/ocaml/preprocess/parser_raw.ml" - in +# 55205 "src/ocaml/preprocess/parser_raw.ml" + : ((string option * Parsetree.expression) list)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -53812,35 +55247,37 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 53816 "src/ocaml/preprocess/parser_raw.ml" +# 55251 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _3 : unit = Obj.magic _3 in let l1 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 53823 "src/ocaml/preprocess/parser_raw.ml" +# 55258 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic l1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_label_ in - let _v : ((string option * Parsetree.expression) list) = let x2 = - let _loc_label_ = (_startpos_label_, _endpos_label_) in - -# 3584 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let x2 = + let _loc_label_ = (_startpos_label_, _endpos_label_) in + +# 3595 "src/ocaml/preprocess/parser_raw.mly" ( let loc = _loc_label_ in Some label, mkexpvar ~loc label ) -# 53835 "src/ocaml/preprocess/parser_raw.ml" - - in - let _loc_l1_ = (_startpos_l1_, _endpos_l1_) in - -# 3609 "src/ocaml/preprocess/parser_raw.mly" +# 55271 "src/ocaml/preprocess/parser_raw.ml" + + in + let _loc_l1_ = (_startpos_l1_, _endpos_l1_) in + ( +# 3620 "src/ocaml/preprocess/parser_raw.mly" ( let loc = _loc_l1_ in [ x2; Some l1, mkexpvar ~loc l1] ) -# 53843 "src/ocaml/preprocess/parser_raw.ml" - in +# 55279 "src/ocaml/preprocess/parser_raw.ml" + : ((string option * Parsetree.expression) list)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -53904,7 +55341,7 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 53908 "src/ocaml/preprocess/parser_raw.ml" +# 55345 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _2 : unit = Obj.magic _2 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in @@ -53912,30 +55349,32 @@ module Tables = struct let l1 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 53916 "src/ocaml/preprocess/parser_raw.ml" +# 55353 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic l1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__5_ in - let _v : ((string option * Parsetree.expression) list) = let x2 = - let _endpos = _endpos__5_ in - let _loc_label_ = (_startpos_label_, _endpos_label_) in - -# 3587 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let x2 = + let _endpos = _endpos__5_ in + let _loc_label_ = (_startpos_label_, _endpos_label_) in + +# 3598 "src/ocaml/preprocess/parser_raw.mly" ( Some label, mkexp_type_constraint_with_modes ~loc:(_startpos__2_, _endpos) ~modes:[] (mkexpvar ~loc:_loc_label_ label) c ) -# 53930 "src/ocaml/preprocess/parser_raw.ml" - - in - let _loc_l1_ = (_startpos_l1_, _endpos_l1_) in - -# 3609 "src/ocaml/preprocess/parser_raw.mly" +# 55368 "src/ocaml/preprocess/parser_raw.ml" + + in + let _loc_l1_ = (_startpos_l1_, _endpos_l1_) in + ( +# 3620 "src/ocaml/preprocess/parser_raw.mly" ( let loc = _loc_l1_ in [ x2; Some l1, mkexpvar ~loc l1] ) -# 53938 "src/ocaml/preprocess/parser_raw.ml" - in +# 55376 "src/ocaml/preprocess/parser_raw.ml" + : ((string option * Parsetree.expression) list)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -53995,45 +55434,47 @@ module Tables = struct let l1 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 53999 "src/ocaml/preprocess/parser_raw.ml" +# 55438 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic l1 in let _2 : unit = Obj.magic _2 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined1_ in - let _v : ((string option * Parsetree.expression) list) = let x2 = - let _1 = _1_inlined1 in - let _1 = - let _1 = + let _v = + let x2 = + let _1 = _1_inlined1 in + let _1 = + let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 54012 "src/ocaml/preprocess/parser_raw.ml" - in - -# 2981 "src/ocaml/preprocess/parser_raw.mly" +# 55452 "src/ocaml/preprocess/parser_raw.ml" + in + +# 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 54017 "src/ocaml/preprocess/parser_raw.ml" +# 55457 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 3580 "src/ocaml/preprocess/parser_raw.mly" +# 3591 "src/ocaml/preprocess/parser_raw.mly" ( None, _1 ) -# 54023 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_x2_ = _endpos__1_inlined1_ in - let _endpos = _endpos_x2_ in - let _loc_l1_ = (_startpos_l1_, _endpos_l1_) in - -# 3614 "src/ocaml/preprocess/parser_raw.mly" +# 55463 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_x2_ = _endpos__1_inlined1_ in + let _endpos = _endpos_x2_ in + let _loc_l1_ = (_startpos_l1_, _endpos_l1_) in + ( +# 3625 "src/ocaml/preprocess/parser_raw.mly" ( let x1 = mkexp_type_constraint_with_modes ~loc:(_startpos__2_, _endpos) ~modes:[] (mkexpvar ~loc:_loc_l1_ l1) c in [ x2; Some l1, x1] ) -# 54036 "src/ocaml/preprocess/parser_raw.ml" - in +# 55476 "src/ocaml/preprocess/parser_raw.ml" + : ((string option * Parsetree.expression) list)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -54114,57 +55555,58 @@ module Tables = struct let l1 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 54118 "src/ocaml/preprocess/parser_raw.ml" +# 55559 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic l1 in let _2 : unit = Obj.magic _2 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_xs_ in - let _v : ((string option * Parsetree.expression) list) = let x2 = - let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in - let _1 = + let _v = + let x2 = + let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in let _1 = - let _3 = - let xs = - let xs = -# 253 "" + let _1 = + let _3 = + let xs = + let xs = +# 264 "" ( List.rev xs ) -# 54134 "src/ocaml/preprocess/parser_raw.ml" - in - +# 55576 "src/ocaml/preprocess/parser_raw.ml" + in + # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 54139 "src/ocaml/preprocess/parser_raw.ml" +# 55581 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 3499 "src/ocaml/preprocess/parser_raw.mly" +# 3510 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 54145 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__3_ = _endpos_xs_ in - let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in +# 55587 "src/ocaml/preprocess/parser_raw.ml" -# 5392 "src/ocaml/preprocess/parser_raw.mly" + in + let _endpos__3_ = _endpos_xs_ in + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in + let _2 = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 54156 "src/ocaml/preprocess/parser_raw.ml" +# 55598 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 5405 "src/ocaml/preprocess/parser_raw.mly" +# 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 54162 "src/ocaml/preprocess/parser_raw.ml" +# 55604 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 2718 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in @@ -54178,33 +55620,34 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 54182 "src/ocaml/preprocess/parser_raw.ml" +# 55624 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 2985 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 55630 "src/ocaml/preprocess/parser_raw.ml" in -# 2981 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 54188 "src/ocaml/preprocess/parser_raw.ml" +# 3591 "src/ocaml/preprocess/parser_raw.mly" + ( None, _1 ) +# 55636 "src/ocaml/preprocess/parser_raw.ml" in - -# 3580 "src/ocaml/preprocess/parser_raw.mly" - ( None, _1 ) -# 54194 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_x2_ = _endpos_xs_ in - let _endpos = _endpos_x2_ in - let _loc_l1_ = (_startpos_l1_, _endpos_l1_) in - -# 3614 "src/ocaml/preprocess/parser_raw.mly" + let _endpos_x2_ = _endpos_xs_ in + let _endpos = _endpos_x2_ in + let _loc_l1_ = (_startpos_l1_, _endpos_l1_) in + ( +# 3625 "src/ocaml/preprocess/parser_raw.mly" ( let x1 = mkexp_type_constraint_with_modes ~loc:(_startpos__2_, _endpos) ~modes:[] (mkexpvar ~loc:_loc_l1_ l1) c in [ x2; Some l1, x1] ) -# 54207 "src/ocaml/preprocess/parser_raw.ml" - in +# 55649 "src/ocaml/preprocess/parser_raw.ml" + : ((string option * Parsetree.expression) list)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -54267,7 +55710,7 @@ module Tables = struct let _1_inlined1 : ( # 1082 "src/ocaml/preprocess/parser_raw.mly" (string) -# 54271 "src/ocaml/preprocess/parser_raw.ml" +# 55714 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined1 in let _6 : unit = Obj.magic _6 in let _5 : unit = Obj.magic _5 in @@ -54275,33 +55718,35 @@ module Tables = struct let l1 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 54279 "src/ocaml/preprocess/parser_raw.ml" +# 55722 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic l1 in let _2 : unit = Obj.magic _2 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__2_inlined1_ in - let _v : ((string option * Parsetree.expression) list) = let x2 = - let (_2, _1) = (_2_inlined1, _1_inlined1) in - -# 3582 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let x2 = + let (_2, _1) = (_2_inlined1, _1_inlined1) in + +# 3593 "src/ocaml/preprocess/parser_raw.mly" ( Some _1, _2 ) -# 54291 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_x2_ = _endpos__2_inlined1_ in - let _endpos = _endpos_x2_ in - let _loc_l1_ = (_startpos_l1_, _endpos_l1_) in - -# 3614 "src/ocaml/preprocess/parser_raw.mly" +# 55735 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_x2_ = _endpos__2_inlined1_ in + let _endpos = _endpos_x2_ in + let _loc_l1_ = (_startpos_l1_, _endpos_l1_) in + ( +# 3625 "src/ocaml/preprocess/parser_raw.mly" ( let x1 = mkexp_type_constraint_with_modes ~loc:(_startpos__2_, _endpos) ~modes:[] (mkexpvar ~loc:_loc_l1_ l1) c in [ x2; Some l1, x1] ) -# 54304 "src/ocaml/preprocess/parser_raw.ml" - in +# 55748 "src/ocaml/preprocess/parser_raw.ml" + : ((string option * Parsetree.expression) list)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -54363,7 +55808,7 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 54367 "src/ocaml/preprocess/parser_raw.ml" +# 55812 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _6 : unit = Obj.magic _6 in @@ -54372,34 +55817,36 @@ module Tables = struct let l1 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 54376 "src/ocaml/preprocess/parser_raw.ml" +# 55821 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic l1 in let _2 : unit = Obj.magic _2 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_label_ in - let _v : ((string option * Parsetree.expression) list) = let x2 = - let _loc_label_ = (_startpos_label_, _endpos_label_) in - -# 3584 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let x2 = + let _loc_label_ = (_startpos_label_, _endpos_label_) in + +# 3595 "src/ocaml/preprocess/parser_raw.mly" ( let loc = _loc_label_ in Some label, mkexpvar ~loc label ) -# 54389 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_x2_ = _endpos_label_ in - let _endpos = _endpos_x2_ in - let _loc_l1_ = (_startpos_l1_, _endpos_l1_) in - -# 3614 "src/ocaml/preprocess/parser_raw.mly" +# 55835 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_x2_ = _endpos_label_ in + let _endpos = _endpos_x2_ in + let _loc_l1_ = (_startpos_l1_, _endpos_l1_) in + ( +# 3625 "src/ocaml/preprocess/parser_raw.mly" ( let x1 = mkexp_type_constraint_with_modes ~loc:(_startpos__2_, _endpos) ~modes:[] (mkexpvar ~loc:_loc_l1_ l1) c in [ x2; Some l1, x1] ) -# 54402 "src/ocaml/preprocess/parser_raw.ml" - in +# 55848 "src/ocaml/preprocess/parser_raw.ml" + : ((string option * Parsetree.expression) list)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -54481,7 +55928,7 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 54485 "src/ocaml/preprocess/parser_raw.ml" +# 55932 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _2_inlined1 : unit = Obj.magic _2_inlined1 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in @@ -54491,37 +55938,39 @@ module Tables = struct let l1 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 54495 "src/ocaml/preprocess/parser_raw.ml" +# 55942 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic l1 in let _2 : unit = Obj.magic _2 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__5_inlined1_ in - let _v : ((string option * Parsetree.expression) list) = let x2 = - let (_endpos__5_, _startpos__2_, c) = (_endpos__5_inlined1_, _startpos__2_inlined1_, c_inlined1) in - let _endpos = _endpos__5_ in - let _loc_label_ = (_startpos_label_, _endpos_label_) in - -# 3587 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let x2 = + let (_endpos__5_, _startpos__2_, c) = (_endpos__5_inlined1_, _startpos__2_inlined1_, c_inlined1) in + let _endpos = _endpos__5_ in + let _loc_label_ = (_startpos_label_, _endpos_label_) in + +# 3598 "src/ocaml/preprocess/parser_raw.mly" ( Some label, mkexp_type_constraint_with_modes ~loc:(_startpos__2_, _endpos) ~modes:[] (mkexpvar ~loc:_loc_label_ label) c ) -# 54511 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_x2_ = _endpos__5_inlined1_ in - let _endpos = _endpos_x2_ in - let _loc_l1_ = (_startpos_l1_, _endpos_l1_) in - -# 3614 "src/ocaml/preprocess/parser_raw.mly" +# 55959 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_x2_ = _endpos__5_inlined1_ in + let _endpos = _endpos_x2_ in + let _loc_l1_ = (_startpos_l1_, _endpos_l1_) in + ( +# 3625 "src/ocaml/preprocess/parser_raw.mly" ( let x1 = mkexp_type_constraint_with_modes ~loc:(_startpos__2_, _endpos) ~modes:[] (mkexpvar ~loc:_loc_l1_ l1) c in [ x2; Some l1, x1] ) -# 54524 "src/ocaml/preprocess/parser_raw.ml" - in +# 55972 "src/ocaml/preprocess/parser_raw.ml" + : ((string option * Parsetree.expression) list)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -54543,9 +55992,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Asttypes.closed_flag * (string option * Parsetree.pattern) list) = -# 3808 "src/ocaml/preprocess/parser_raw.mly" +# 3819 "src/ocaml/preprocess/parser_raw.mly" ( Closed, _1 ) -# 54549 "src/ocaml/preprocess/parser_raw.ml" +# 55998 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -54582,9 +56031,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : (Asttypes.closed_flag * (string option * Parsetree.pattern) list) = -# 3810 "src/ocaml/preprocess/parser_raw.mly" +# 3821 "src/ocaml/preprocess/parser_raw.mly" ( Open, _1 ) -# 54588 "src/ocaml/preprocess/parser_raw.ml" +# 56037 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -54620,16 +56069,18 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in - let _v : (Asttypes.closed_flag * (string option * Parsetree.pattern) list) = let _1 = -# 3785 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _1 = +# 3796 "src/ocaml/preprocess/parser_raw.mly" ( None, _1 ) -# 54627 "src/ocaml/preprocess/parser_raw.ml" - in - -# 3812 "src/ocaml/preprocess/parser_raw.mly" +# 56077 "src/ocaml/preprocess/parser_raw.ml" + in + ( +# 3823 "src/ocaml/preprocess/parser_raw.mly" ( Open, [ _1 ] ) -# 54632 "src/ocaml/preprocess/parser_raw.ml" - in +# 56082 "src/ocaml/preprocess/parser_raw.ml" + : (Asttypes.closed_flag * (string option * Parsetree.pattern) list)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -54670,24 +56121,26 @@ module Tables = struct let _1 : ( # 1082 "src/ocaml/preprocess/parser_raw.mly" (string) -# 54674 "src/ocaml/preprocess/parser_raw.ml" +# 56125 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in - let _v : (Asttypes.closed_flag * (string option * Parsetree.pattern) list) = let _1 = - let _2 = _2_inlined1 in - -# 3787 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _1 = + let _2 = _2_inlined1 in + +# 3798 "src/ocaml/preprocess/parser_raw.mly" ( Some _1, _2 ) -# 54684 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 3812 "src/ocaml/preprocess/parser_raw.mly" +# 56136 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 3823 "src/ocaml/preprocess/parser_raw.mly" ( Open, [ _1 ] ) -# 54690 "src/ocaml/preprocess/parser_raw.ml" - in +# 56142 "src/ocaml/preprocess/parser_raw.ml" + : (Asttypes.closed_flag * (string option * Parsetree.pattern) list)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -54727,26 +56180,28 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 54731 "src/ocaml/preprocess/parser_raw.ml" +# 56184 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in - let _v : (Asttypes.closed_flag * (string option * Parsetree.pattern) list) = let _1 = - let _loc_label_ = (_startpos_label_, _endpos_label_) in - -# 3789 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _1 = + let _loc_label_ = (_startpos_label_, _endpos_label_) in + +# 3800 "src/ocaml/preprocess/parser_raw.mly" ( let loc = _loc_label_ in Some label, mkpatvar ~loc label ) -# 54743 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 3812 "src/ocaml/preprocess/parser_raw.mly" +# 56197 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 3823 "src/ocaml/preprocess/parser_raw.mly" ( Open, [ _1 ] ) -# 54749 "src/ocaml/preprocess/parser_raw.ml" - in +# 56203 "src/ocaml/preprocess/parser_raw.ml" + : (Asttypes.closed_flag * (string option * Parsetree.pattern) list)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -54813,31 +56268,33 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 54817 "src/ocaml/preprocess/parser_raw.ml" +# 56272 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _2_inlined1 : unit = Obj.magic _2_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in - let _v : (Asttypes.closed_flag * (string option * Parsetree.pattern) list) = let _1 = - let _startpos__2_ = _startpos__2_inlined1_ in - let _endpos = _endpos__6_ in - let _loc_label_ = (_startpos_label_, _endpos_label_) in - -# 3792 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _1 = + let _startpos__2_ = _startpos__2_inlined1_ in + let _endpos = _endpos__6_ in + let _loc_label_ = (_startpos_label_, _endpos_label_) in + +# 3803 "src/ocaml/preprocess/parser_raw.mly" ( let lbl_loc = _loc_label_ in let pat_loc = _startpos__2_, _endpos in let pat = mkpatvar ~loc:lbl_loc label in Some label, mkpat_with_modes ~loc:pat_loc ~modes:[] ~pat ~cty:(Some cty) ) -# 54834 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 3812 "src/ocaml/preprocess/parser_raw.mly" +# 56290 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 3823 "src/ocaml/preprocess/parser_raw.mly" ( Open, [ _1 ] ) -# 54840 "src/ocaml/preprocess/parser_raw.ml" - in +# 56296 "src/ocaml/preprocess/parser_raw.ml" + : (Asttypes.closed_flag * (string option * Parsetree.pattern) list)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -54859,9 +56316,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Asttypes.closed_flag * (string option * Parsetree.pattern) list) = -# 3808 "src/ocaml/preprocess/parser_raw.mly" +# 3819 "src/ocaml/preprocess/parser_raw.mly" ( Closed, _1 ) -# 54865 "src/ocaml/preprocess/parser_raw.ml" +# 56322 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -54898,9 +56355,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : (Asttypes.closed_flag * (string option * Parsetree.pattern) list) = -# 3810 "src/ocaml/preprocess/parser_raw.mly" +# 3821 "src/ocaml/preprocess/parser_raw.mly" ( Open, _1 ) -# 54904 "src/ocaml/preprocess/parser_raw.ml" +# 56361 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -54936,16 +56393,18 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in - let _v : (Asttypes.closed_flag * (string option * Parsetree.pattern) list) = let _1 = -# 3785 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _1 = +# 3796 "src/ocaml/preprocess/parser_raw.mly" ( None, _1 ) -# 54943 "src/ocaml/preprocess/parser_raw.ml" - in - -# 3812 "src/ocaml/preprocess/parser_raw.mly" +# 56401 "src/ocaml/preprocess/parser_raw.ml" + in + ( +# 3823 "src/ocaml/preprocess/parser_raw.mly" ( Open, [ _1 ] ) -# 54948 "src/ocaml/preprocess/parser_raw.ml" - in +# 56406 "src/ocaml/preprocess/parser_raw.ml" + : (Asttypes.closed_flag * (string option * Parsetree.pattern) list)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -54986,24 +56445,26 @@ module Tables = struct let _1 : ( # 1082 "src/ocaml/preprocess/parser_raw.mly" (string) -# 54990 "src/ocaml/preprocess/parser_raw.ml" +# 56449 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in - let _v : (Asttypes.closed_flag * (string option * Parsetree.pattern) list) = let _1 = - let _2 = _2_inlined1 in - -# 3787 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _1 = + let _2 = _2_inlined1 in + +# 3798 "src/ocaml/preprocess/parser_raw.mly" ( Some _1, _2 ) -# 55000 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 3812 "src/ocaml/preprocess/parser_raw.mly" +# 56460 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 3823 "src/ocaml/preprocess/parser_raw.mly" ( Open, [ _1 ] ) -# 55006 "src/ocaml/preprocess/parser_raw.ml" - in +# 56466 "src/ocaml/preprocess/parser_raw.ml" + : (Asttypes.closed_flag * (string option * Parsetree.pattern) list)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -55043,26 +56504,28 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 55047 "src/ocaml/preprocess/parser_raw.ml" +# 56508 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in - let _v : (Asttypes.closed_flag * (string option * Parsetree.pattern) list) = let _1 = - let _loc_label_ = (_startpos_label_, _endpos_label_) in - -# 3789 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _1 = + let _loc_label_ = (_startpos_label_, _endpos_label_) in + +# 3800 "src/ocaml/preprocess/parser_raw.mly" ( let loc = _loc_label_ in Some label, mkpatvar ~loc label ) -# 55059 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 3812 "src/ocaml/preprocess/parser_raw.mly" +# 56521 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 3823 "src/ocaml/preprocess/parser_raw.mly" ( Open, [ _1 ] ) -# 55065 "src/ocaml/preprocess/parser_raw.ml" - in +# 56527 "src/ocaml/preprocess/parser_raw.ml" + : (Asttypes.closed_flag * (string option * Parsetree.pattern) list)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -55129,31 +56592,33 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 55133 "src/ocaml/preprocess/parser_raw.ml" +# 56596 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _2_inlined1 : unit = Obj.magic _2_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in - let _v : (Asttypes.closed_flag * (string option * Parsetree.pattern) list) = let _1 = - let _startpos__2_ = _startpos__2_inlined1_ in - let _endpos = _endpos__6_ in - let _loc_label_ = (_startpos_label_, _endpos_label_) in - -# 3792 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _1 = + let _startpos__2_ = _startpos__2_inlined1_ in + let _endpos = _endpos__6_ in + let _loc_label_ = (_startpos_label_, _endpos_label_) in + +# 3803 "src/ocaml/preprocess/parser_raw.mly" ( let lbl_loc = _loc_label_ in let pat_loc = _startpos__2_, _endpos in let pat = mkpatvar ~loc:lbl_loc label in Some label, mkpat_with_modes ~loc:pat_loc ~modes:[] ~pat ~cty:(Some cty) ) -# 55150 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 3812 "src/ocaml/preprocess/parser_raw.mly" +# 56614 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 3823 "src/ocaml/preprocess/parser_raw.mly" ( Open, [ _1 ] ) -# 55156 "src/ocaml/preprocess/parser_raw.ml" - in +# 56620 "src/ocaml/preprocess/parser_raw.ml" + : (Asttypes.closed_flag * (string option * Parsetree.pattern) list)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -55170,7 +56635,7 @@ module Tables = struct let _v : ((Parsetree.core_type * Parsetree.core_type * Location.t) list) = # 1374 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 55174 "src/ocaml/preprocess/parser_raw.ml" +# 56639 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -55220,29 +56685,31 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_xs_ in let _endpos = _endpos__3_ in - let _v : ((Parsetree.core_type * Parsetree.core_type * Location.t) list) = let x = + let _v = let x = - let (_startpos__1_, _1) = (_startpos__1_inlined1_, _1_inlined1) in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let x = + let (_startpos__1_, _1) = (_startpos__1_inlined1_, _1_inlined1) in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2626 "src/ocaml/preprocess/parser_raw.mly" ( _1, _3, make_loc _sloc ) -# 55233 "src/ocaml/preprocess/parser_raw.ml" +# 56699 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 183 "" +# 188 "" ( x ) -# 55239 "src/ocaml/preprocess/parser_raw.ml" - - in - +# 56705 "src/ocaml/preprocess/parser_raw.ml" + + in + ( # 1376 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 55245 "src/ocaml/preprocess/parser_raw.ml" - in +# 56711 "src/ocaml/preprocess/parser_raw.ml" + : ((Parsetree.core_type * Parsetree.core_type * Location.t) list)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -55266,7 +56733,7 @@ module Tables = struct let _v : (Parsetree.function_param list) = # 1407 "src/ocaml/preprocess/parser_raw.mly" ( List.rev x ) -# 55270 "src/ocaml/preprocess/parser_raw.ml" +# 56737 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -55298,7 +56765,7 @@ module Tables = struct let _v : (Parsetree.function_param list) = # 1409 "src/ocaml/preprocess/parser_raw.mly" ( List.rev_append x xs ) -# 55302 "src/ocaml/preprocess/parser_raw.ml" +# 56769 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -55323,7 +56790,7 @@ module Tables = struct let _v : (Parsetree.comprehension_clause list) = # 1388 "src/ocaml/preprocess/parser_raw.mly" ( [ x ] ) -# 55327 "src/ocaml/preprocess/parser_raw.ml" +# 56794 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -55355,7 +56822,7 @@ module Tables = struct let _v : (Parsetree.comprehension_clause list) = # 1390 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 55359 "src/ocaml/preprocess/parser_raw.ml" +# 56826 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -55380,7 +56847,7 @@ module Tables = struct let _v : ((Lexing.position * Parsetree.functor_parameter) list) = # 1388 "src/ocaml/preprocess/parser_raw.mly" ( [ x ] ) -# 55384 "src/ocaml/preprocess/parser_raw.ml" +# 56851 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -55412,7 +56879,7 @@ module Tables = struct let _v : ((Lexing.position * Parsetree.functor_parameter) list) = # 1390 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 55416 "src/ocaml/preprocess/parser_raw.ml" +# 56883 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -55437,7 +56904,7 @@ module Tables = struct let _v : ((Parsetree.arg_label * Parsetree.expression) list) = # 1388 "src/ocaml/preprocess/parser_raw.mly" ( [ x ] ) -# 55441 "src/ocaml/preprocess/parser_raw.ml" +# 56908 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -55469,7 +56936,7 @@ module Tables = struct let _v : ((Parsetree.arg_label * Parsetree.expression) list) = # 1390 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 55473 "src/ocaml/preprocess/parser_raw.ml" +# 56940 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -55494,7 +56961,7 @@ module Tables = struct let _v : (string list) = # 1388 "src/ocaml/preprocess/parser_raw.mly" ( [ x ] ) -# 55498 "src/ocaml/preprocess/parser_raw.ml" +# 56965 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -55526,7 +56993,7 @@ module Tables = struct let _v : (string list) = # 1390 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 55530 "src/ocaml/preprocess/parser_raw.ml" +# 56997 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -55555,29 +57022,31 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined1_ in - let _v : ((string Location.loc * Parsetree.jkind_annotation option) list) = let x = - let _2 = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let _v = + let x = + let _2 = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 55568 "src/ocaml/preprocess/parser_raw.ml" +# 57036 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 4463 "src/ocaml/preprocess/parser_raw.mly" +# 4474 "src/ocaml/preprocess/parser_raw.mly" ( (_2, None) ) -# 55574 "src/ocaml/preprocess/parser_raw.ml" - - in - +# 57042 "src/ocaml/preprocess/parser_raw.ml" + + in + ( # 1388 "src/ocaml/preprocess/parser_raw.mly" ( [ x ] ) -# 55580 "src/ocaml/preprocess/parser_raw.ml" - in +# 57048 "src/ocaml/preprocess/parser_raw.ml" + : ((string Location.loc * Parsetree.jkind_annotation option) list)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -55633,29 +57102,31 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__6_ in - let _v : ((string Location.loc * Parsetree.jkind_annotation option) list) = let x = - let tyvar = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let _v = + let x = + let tyvar = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 55646 "src/ocaml/preprocess/parser_raw.ml" +# 57116 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 4465 "src/ocaml/preprocess/parser_raw.mly" +# 4476 "src/ocaml/preprocess/parser_raw.mly" ( (tyvar, Some jkind) ) -# 55652 "src/ocaml/preprocess/parser_raw.ml" - - in - +# 57122 "src/ocaml/preprocess/parser_raw.ml" + + in + ( # 1388 "src/ocaml/preprocess/parser_raw.mly" ( [ x ] ) -# 55658 "src/ocaml/preprocess/parser_raw.ml" - in +# 57128 "src/ocaml/preprocess/parser_raw.ml" + : ((string Location.loc * Parsetree.jkind_annotation option) list)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -55690,29 +57161,31 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_xs_ in let _endpos = _endpos__1_inlined1_ in - let _v : ((string Location.loc * Parsetree.jkind_annotation option) list) = let x = - let _2 = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let _v = + let x = + let _2 = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 55703 "src/ocaml/preprocess/parser_raw.ml" +# 57175 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 4463 "src/ocaml/preprocess/parser_raw.mly" +# 4474 "src/ocaml/preprocess/parser_raw.mly" ( (_2, None) ) -# 55709 "src/ocaml/preprocess/parser_raw.ml" - - in - +# 57181 "src/ocaml/preprocess/parser_raw.ml" + + in + ( # 1390 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 55715 "src/ocaml/preprocess/parser_raw.ml" - in +# 57187 "src/ocaml/preprocess/parser_raw.ml" + : ((string Location.loc * Parsetree.jkind_annotation option) list)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -55775,29 +57248,31 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_xs_ in let _endpos = _endpos__6_ in - let _v : ((string Location.loc * Parsetree.jkind_annotation option) list) = let x = - let tyvar = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let _v = + let x = + let tyvar = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 55788 "src/ocaml/preprocess/parser_raw.ml" +# 57262 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 4465 "src/ocaml/preprocess/parser_raw.mly" +# 4476 "src/ocaml/preprocess/parser_raw.mly" ( (tyvar, Some jkind) ) -# 55794 "src/ocaml/preprocess/parser_raw.ml" - - in - +# 57268 "src/ocaml/preprocess/parser_raw.ml" + + in + ( # 1390 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 55800 "src/ocaml/preprocess/parser_raw.ml" - in +# 57274 "src/ocaml/preprocess/parser_raw.ml" + : ((string Location.loc * Parsetree.jkind_annotation option) list)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -55818,16 +57293,18 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_x_ in let _endpos = _endpos_x_ in - let _v : (Parsetree.case list) = let _1 = -# 124 "" + let _v = + let _1 = +# 123 "" ( None ) -# 55825 "src/ocaml/preprocess/parser_raw.ml" - in - +# 57301 "src/ocaml/preprocess/parser_raw.ml" + in + ( # 1499 "src/ocaml/preprocess/parser_raw.mly" ( [x] ) -# 55830 "src/ocaml/preprocess/parser_raw.ml" - in +# 57306 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.case list)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -55855,19 +57332,21 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_x_inlined1_ in let _endpos = _endpos_x_ in - let _v : (Parsetree.case list) = let _1 = - let x = x_inlined1 in - + let _v = + let _1 = + let x = x_inlined1 in + # 126 "" ( Some x ) -# 55864 "src/ocaml/preprocess/parser_raw.ml" - - in - +# 57342 "src/ocaml/preprocess/parser_raw.ml" + + in + ( # 1499 "src/ocaml/preprocess/parser_raw.mly" ( [x] ) -# 55870 "src/ocaml/preprocess/parser_raw.ml" - in +# 57348 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.case list)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -55905,7 +57384,7 @@ module Tables = struct let _v : (Parsetree.case list) = # 1503 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 55909 "src/ocaml/preprocess/parser_raw.ml" +# 57388 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -55927,23 +57406,25 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v : (Parsetree.core_type list) = let xs = - let x = -# 4510 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let xs = + let x = +# 4521 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 55935 "src/ocaml/preprocess/parser_raw.ml" - in - +# 57415 "src/ocaml/preprocess/parser_raw.ml" + in + # 1434 "src/ocaml/preprocess/parser_raw.mly" ( [ x ] ) -# 55940 "src/ocaml/preprocess/parser_raw.ml" - - in - +# 57420 "src/ocaml/preprocess/parser_raw.ml" + + in + ( # 1442 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 55946 "src/ocaml/preprocess/parser_raw.ml" - in +# 57426 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type list)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -55978,23 +57459,25 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_xs_ in let _endpos = _endpos__1_ in - let _v : (Parsetree.core_type list) = let xs = - let x = -# 4510 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let xs = + let x = +# 4521 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 55986 "src/ocaml/preprocess/parser_raw.ml" - in - +# 57468 "src/ocaml/preprocess/parser_raw.ml" + in + # 1438 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 55991 "src/ocaml/preprocess/parser_raw.ml" - - in - +# 57473 "src/ocaml/preprocess/parser_raw.ml" + + in + ( # 1442 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 55997 "src/ocaml/preprocess/parser_raw.ml" - in +# 57479 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type list)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -56015,16 +57498,18 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_x_ in let _endpos = _endpos_x_ in - let _v : (Parsetree.comprehension_clause_binding list) = let xs = + let _v = + let xs = # 1434 "src/ocaml/preprocess/parser_raw.mly" ( [ x ] ) -# 56022 "src/ocaml/preprocess/parser_raw.ml" - in - +# 57506 "src/ocaml/preprocess/parser_raw.ml" + in + ( # 1442 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 56027 "src/ocaml/preprocess/parser_raw.ml" - in +# 57511 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.comprehension_clause_binding list)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -56059,16 +57544,18 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_xs_ in let _endpos = _endpos_x_ in - let _v : (Parsetree.comprehension_clause_binding list) = let xs = + let _v = + let xs = # 1438 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 56066 "src/ocaml/preprocess/parser_raw.ml" - in - +# 57552 "src/ocaml/preprocess/parser_raw.ml" + in + ( # 1442 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 56071 "src/ocaml/preprocess/parser_raw.ml" - in +# 57557 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.comprehension_clause_binding list)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -56089,16 +57576,18 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_x_ in let _endpos = _endpos_x_ in - let _v : (Parsetree.with_constraint list) = let xs = + let _v = + let xs = # 1434 "src/ocaml/preprocess/parser_raw.mly" ( [ x ] ) -# 56096 "src/ocaml/preprocess/parser_raw.ml" - in - +# 57584 "src/ocaml/preprocess/parser_raw.ml" + in + ( # 1442 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 56101 "src/ocaml/preprocess/parser_raw.ml" - in +# 57589 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.with_constraint list)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -56133,16 +57622,18 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_xs_ in let _endpos = _endpos_x_ in - let _v : (Parsetree.with_constraint list) = let xs = + let _v = + let xs = # 1438 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 56140 "src/ocaml/preprocess/parser_raw.ml" - in - +# 57630 "src/ocaml/preprocess/parser_raw.ml" + in + ( # 1442 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 56145 "src/ocaml/preprocess/parser_raw.ml" - in +# 57635 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.with_constraint list)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -56163,16 +57654,18 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_x_ in let _endpos = _endpos_x_ in - let _v : (Parsetree.row_field list) = let xs = + let _v = + let xs = # 1434 "src/ocaml/preprocess/parser_raw.mly" ( [ x ] ) -# 56170 "src/ocaml/preprocess/parser_raw.ml" - in - +# 57662 "src/ocaml/preprocess/parser_raw.ml" + in + ( # 1442 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 56175 "src/ocaml/preprocess/parser_raw.ml" - in +# 57667 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.row_field list)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -56207,16 +57700,18 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_xs_ in let _endpos = _endpos_x_ in - let _v : (Parsetree.row_field list) = let xs = + let _v = + let xs = # 1438 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 56214 "src/ocaml/preprocess/parser_raw.ml" - in - +# 57708 "src/ocaml/preprocess/parser_raw.ml" + in + ( # 1442 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 56219 "src/ocaml/preprocess/parser_raw.ml" - in +# 57713 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.row_field list)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -56237,16 +57732,18 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_x_ in let _endpos = _endpos_x_ in - let _v : (Parsetree.core_type list) = let xs = + let _v = + let xs = # 1434 "src/ocaml/preprocess/parser_raw.mly" ( [ x ] ) -# 56244 "src/ocaml/preprocess/parser_raw.ml" - in - +# 57740 "src/ocaml/preprocess/parser_raw.ml" + in + ( # 1442 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 56249 "src/ocaml/preprocess/parser_raw.ml" - in +# 57745 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type list)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -56281,16 +57778,18 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_xs_ in let _endpos = _endpos_x_ in - let _v : (Parsetree.core_type list) = let xs = + let _v = + let xs = # 1438 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 56288 "src/ocaml/preprocess/parser_raw.ml" - in - +# 57786 "src/ocaml/preprocess/parser_raw.ml" + in + ( # 1442 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 56293 "src/ocaml/preprocess/parser_raw.ml" - in +# 57791 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type list)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -56311,16 +57810,18 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_x_ in let _endpos = _endpos_x_ in - let _v : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = let xs = + let _v = + let xs = # 1434 "src/ocaml/preprocess/parser_raw.mly" ( [ x ] ) -# 56318 "src/ocaml/preprocess/parser_raw.ml" - in - +# 57818 "src/ocaml/preprocess/parser_raw.ml" + in + ( # 1442 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 56323 "src/ocaml/preprocess/parser_raw.ml" - in +# 57823 "src/ocaml/preprocess/parser_raw.ml" + : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -56355,16 +57856,18 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_xs_ in let _endpos = _endpos_x_ in - let _v : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = let xs = + let _v = + let xs = # 1438 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 56362 "src/ocaml/preprocess/parser_raw.ml" - in - +# 57864 "src/ocaml/preprocess/parser_raw.ml" + in + ( # 1442 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 56367 "src/ocaml/preprocess/parser_raw.ml" - in +# 57869 "src/ocaml/preprocess/parser_raw.ml" + : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -56385,16 +57888,18 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_x_ in let _endpos = _endpos_x_ in - let _v : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = let xs = + let _v = + let xs = # 1434 "src/ocaml/preprocess/parser_raw.mly" ( [ x ] ) -# 56392 "src/ocaml/preprocess/parser_raw.ml" - in - +# 57896 "src/ocaml/preprocess/parser_raw.ml" + in + ( # 1442 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 56397 "src/ocaml/preprocess/parser_raw.ml" - in +# 57901 "src/ocaml/preprocess/parser_raw.ml" + : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -56429,16 +57934,18 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_xs_ in let _endpos = _endpos_x_ in - let _v : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = let xs = + let _v = + let xs = # 1438 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 56436 "src/ocaml/preprocess/parser_raw.ml" - in - +# 57942 "src/ocaml/preprocess/parser_raw.ml" + in + ( # 1442 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 56441 "src/ocaml/preprocess/parser_raw.ml" - in +# 57947 "src/ocaml/preprocess/parser_raw.ml" + : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -56466,40 +57973,42 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_cty_ in let _endpos = _endpos_m1_ in - let _v : (Parsetree.constructor_argument list) = let xs = - let x = - let gbl = -# 5250 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let xs = + let x = + let gbl = +# 5261 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 56475 "src/ocaml/preprocess/parser_raw.ml" - in - let (_endpos_gbl_, _startpos_gbl_) = (_endpos__0_, _endpos__0_) in - let _endpos = _endpos_m1_ in - let _symbolstartpos = if _startpos_gbl_ != _endpos_gbl_ then - _startpos_gbl_ - else - _startpos_cty_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 4334 "src/ocaml/preprocess/parser_raw.mly" +# 57983 "src/ocaml/preprocess/parser_raw.ml" + in + let (_endpos_gbl_, _startpos_gbl_) = (_endpos__0_, _endpos__0_) in + let _endpos = _endpos_m1_ in + let _symbolstartpos = if _startpos_gbl_ != _endpos_gbl_ then + _startpos_gbl_ + else + _startpos_cty_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 4345 "src/ocaml/preprocess/parser_raw.mly" ( let modalities = gbl @ m1 in Type.constructor_arg cty ~modalities ~loc:(make_loc _sloc) ) -# 56490 "src/ocaml/preprocess/parser_raw.ml" +# 57998 "src/ocaml/preprocess/parser_raw.ml" + + in - in - # 1434 "src/ocaml/preprocess/parser_raw.mly" ( [ x ] ) -# 56496 "src/ocaml/preprocess/parser_raw.ml" - - in - +# 58004 "src/ocaml/preprocess/parser_raw.ml" + + in + ( # 1442 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 56502 "src/ocaml/preprocess/parser_raw.ml" - in +# 58010 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.constructor_argument list)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -56534,45 +58043,47 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_m1_ in - let _v : (Parsetree.constructor_argument list) = let xs = - let x = - let gbl = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 5251 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let xs = + let x = + let gbl = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 5262 "src/ocaml/preprocess/parser_raw.mly" ( [ mkloc (Modality "global") (make_loc _sloc)] ) -# 56547 "src/ocaml/preprocess/parser_raw.ml" +# 58057 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos_gbl_, _startpos_gbl_) = (_endpos__1_, _startpos__1_) in + let _endpos = _endpos_m1_ in + let _symbolstartpos = if _startpos_gbl_ != _endpos_gbl_ then + _startpos_gbl_ + else + _startpos_cty_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let (_endpos_gbl_, _startpos_gbl_) = (_endpos__1_, _startpos__1_) in - let _endpos = _endpos_m1_ in - let _symbolstartpos = if _startpos_gbl_ != _endpos_gbl_ then - _startpos_gbl_ - else - _startpos_cty_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 4334 "src/ocaml/preprocess/parser_raw.mly" +# 4345 "src/ocaml/preprocess/parser_raw.mly" ( let modalities = gbl @ m1 in Type.constructor_arg cty ~modalities ~loc:(make_loc _sloc) ) -# 56563 "src/ocaml/preprocess/parser_raw.ml" +# 58073 "src/ocaml/preprocess/parser_raw.ml" + + in - in - # 1434 "src/ocaml/preprocess/parser_raw.mly" ( [ x ] ) -# 56569 "src/ocaml/preprocess/parser_raw.ml" - - in - +# 58079 "src/ocaml/preprocess/parser_raw.ml" + + in + ( # 1442 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 56575 "src/ocaml/preprocess/parser_raw.ml" - in +# 58085 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.constructor_argument list)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -56614,41 +58125,43 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_xs_ in let _endpos = _endpos_m1_ in - let _v : (Parsetree.constructor_argument list) = let xs = - let x = - let _endpos__0_ = _endpos__2_ in - let gbl = -# 5250 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let xs = + let x = + let _endpos__0_ = _endpos__2_ in + let gbl = +# 5261 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 56624 "src/ocaml/preprocess/parser_raw.ml" - in - let (_endpos_gbl_, _startpos_gbl_) = (_endpos__0_, _endpos__0_) in - let _endpos = _endpos_m1_ in - let _symbolstartpos = if _startpos_gbl_ != _endpos_gbl_ then - _startpos_gbl_ - else - _startpos_cty_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 4334 "src/ocaml/preprocess/parser_raw.mly" +# 58136 "src/ocaml/preprocess/parser_raw.ml" + in + let (_endpos_gbl_, _startpos_gbl_) = (_endpos__0_, _endpos__0_) in + let _endpos = _endpos_m1_ in + let _symbolstartpos = if _startpos_gbl_ != _endpos_gbl_ then + _startpos_gbl_ + else + _startpos_cty_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 4345 "src/ocaml/preprocess/parser_raw.mly" ( let modalities = gbl @ m1 in Type.constructor_arg cty ~modalities ~loc:(make_loc _sloc) ) -# 56639 "src/ocaml/preprocess/parser_raw.ml" +# 58151 "src/ocaml/preprocess/parser_raw.ml" + + in - in - # 1438 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 56645 "src/ocaml/preprocess/parser_raw.ml" - - in - +# 58157 "src/ocaml/preprocess/parser_raw.ml" + + in + ( # 1442 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 56651 "src/ocaml/preprocess/parser_raw.ml" - in +# 58163 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.constructor_argument list)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -56697,45 +58210,47 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_xs_ in let _endpos = _endpos_m1_ in - let _v : (Parsetree.constructor_argument list) = let xs = - let x = - let gbl = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 5251 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let xs = + let x = + let gbl = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 5262 "src/ocaml/preprocess/parser_raw.mly" ( [ mkloc (Modality "global") (make_loc _sloc)] ) -# 56710 "src/ocaml/preprocess/parser_raw.ml" +# 58224 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos_gbl_, _startpos_gbl_) = (_endpos__1_, _startpos__1_) in + let _endpos = _endpos_m1_ in + let _symbolstartpos = if _startpos_gbl_ != _endpos_gbl_ then + _startpos_gbl_ + else + _startpos_cty_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let (_endpos_gbl_, _startpos_gbl_) = (_endpos__1_, _startpos__1_) in - let _endpos = _endpos_m1_ in - let _symbolstartpos = if _startpos_gbl_ != _endpos_gbl_ then - _startpos_gbl_ - else - _startpos_cty_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 4334 "src/ocaml/preprocess/parser_raw.mly" +# 4345 "src/ocaml/preprocess/parser_raw.mly" ( let modalities = gbl @ m1 in Type.constructor_arg cty ~modalities ~loc:(make_loc _sloc) ) -# 56726 "src/ocaml/preprocess/parser_raw.ml" +# 58240 "src/ocaml/preprocess/parser_raw.ml" + + in - in - # 1438 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 56732 "src/ocaml/preprocess/parser_raw.ml" - - in - +# 58246 "src/ocaml/preprocess/parser_raw.ml" + + in + ( # 1442 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 56738 "src/ocaml/preprocess/parser_raw.ml" - in +# 58252 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.constructor_argument list)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -56756,23 +58271,25 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v : ((string option * Parsetree.core_type) list) = let xs = - let x = -# 4774 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let xs = + let x = +# 4785 "src/ocaml/preprocess/parser_raw.mly" ( None, _1 ) -# 56764 "src/ocaml/preprocess/parser_raw.ml" - in - +# 58280 "src/ocaml/preprocess/parser_raw.ml" + in + # 1434 "src/ocaml/preprocess/parser_raw.mly" ( [ x ] ) -# 56769 "src/ocaml/preprocess/parser_raw.ml" - - in - +# 58285 "src/ocaml/preprocess/parser_raw.ml" + + in + ( # 1442 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 56775 "src/ocaml/preprocess/parser_raw.ml" - in +# 58291 "src/ocaml/preprocess/parser_raw.ml" + : ((string option * Parsetree.core_type) list)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -56806,28 +58323,30 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 56810 "src/ocaml/preprocess/parser_raw.ml" +# 58327 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos_ty_ in - let _v : ((string option * Parsetree.core_type) list) = let xs = - let x = -# 4776 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let xs = + let x = +# 4787 "src/ocaml/preprocess/parser_raw.mly" ( Some label, ty ) -# 56819 "src/ocaml/preprocess/parser_raw.ml" - in - +# 58337 "src/ocaml/preprocess/parser_raw.ml" + in + # 1434 "src/ocaml/preprocess/parser_raw.mly" ( [ x ] ) -# 56824 "src/ocaml/preprocess/parser_raw.ml" - - in - +# 58342 "src/ocaml/preprocess/parser_raw.ml" + + in + ( # 1442 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 56830 "src/ocaml/preprocess/parser_raw.ml" - in +# 58348 "src/ocaml/preprocess/parser_raw.ml" + : ((string option * Parsetree.core_type) list)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -56862,23 +58381,25 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_xs_ in let _endpos = _endpos__1_ in - let _v : ((string option * Parsetree.core_type) list) = let xs = - let x = -# 4774 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let xs = + let x = +# 4785 "src/ocaml/preprocess/parser_raw.mly" ( None, _1 ) -# 56870 "src/ocaml/preprocess/parser_raw.ml" - in - +# 58390 "src/ocaml/preprocess/parser_raw.ml" + in + # 1438 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 56875 "src/ocaml/preprocess/parser_raw.ml" - - in - +# 58395 "src/ocaml/preprocess/parser_raw.ml" + + in + ( # 1442 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 56881 "src/ocaml/preprocess/parser_raw.ml" - in +# 58401 "src/ocaml/preprocess/parser_raw.ml" + : ((string option * Parsetree.core_type) list)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -56924,30 +58445,32 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 56928 "src/ocaml/preprocess/parser_raw.ml" +# 58449 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _2 : unit = Obj.magic _2 in let xs : ((string option * Parsetree.core_type) list) = Obj.magic xs in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_xs_ in let _endpos = _endpos_ty_ in - let _v : ((string option * Parsetree.core_type) list) = let xs = - let x = -# 4776 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let xs = + let x = +# 4787 "src/ocaml/preprocess/parser_raw.mly" ( Some label, ty ) -# 56939 "src/ocaml/preprocess/parser_raw.ml" - in - +# 58461 "src/ocaml/preprocess/parser_raw.ml" + in + # 1438 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 56944 "src/ocaml/preprocess/parser_raw.ml" - - in - +# 58466 "src/ocaml/preprocess/parser_raw.ml" + + in + ( # 1442 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 56950 "src/ocaml/preprocess/parser_raw.ml" - in +# 58472 "src/ocaml/preprocess/parser_raw.ml" + : ((string option * Parsetree.core_type) list)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -56982,16 +58505,18 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_xs_ in let _endpos = _endpos__1_ in - let _v : (Parsetree.core_type list) = let x = -# 4918 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let x = +# 4929 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 56989 "src/ocaml/preprocess/parser_raw.ml" - in - +# 58513 "src/ocaml/preprocess/parser_raw.ml" + in + ( # 1465 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 56994 "src/ocaml/preprocess/parser_raw.ml" - in +# 58518 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type list)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -57047,21 +58572,23 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_xs_ in let _endpos = _endpos_jkind_ in - let _v : (Parsetree.core_type list) = let x = - let _endpos = _endpos_jkind_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 4920 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let x = + let _endpos = _endpos_jkind_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 4931 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc (Ptyp_var (id, (Some jkind))) ) -# 57058 "src/ocaml/preprocess/parser_raw.ml" - - in - +# 58584 "src/ocaml/preprocess/parser_raw.ml" + + in + ( # 1465 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 57064 "src/ocaml/preprocess/parser_raw.ml" - in +# 58590 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type list)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -57110,21 +58637,23 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_xs_ in let _endpos = _endpos_jkind_ in - let _v : (Parsetree.core_type list) = let x = - let _endpos = _endpos_jkind_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 4922 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let x = + let _endpos = _endpos_jkind_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 4933 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc (Ptyp_any (Some jkind)) ) -# 57121 "src/ocaml/preprocess/parser_raw.ml" - - in - +# 58649 "src/ocaml/preprocess/parser_raw.ml" + + in + ( # 1465 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 57127 "src/ocaml/preprocess/parser_raw.ml" - in +# 58655 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type list)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -57159,24 +58688,26 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined1_ in - let _v : (Parsetree.core_type list) = let x2 = - let _1 = _1_inlined1 in - -# 4918 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let x2 = + let _1 = _1_inlined1 in + +# 4929 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 57168 "src/ocaml/preprocess/parser_raw.ml" - - in - let x1 = -# 4918 "src/ocaml/preprocess/parser_raw.mly" +# 58698 "src/ocaml/preprocess/parser_raw.ml" + + in + let x1 = +# 4929 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 57174 "src/ocaml/preprocess/parser_raw.ml" - in - +# 58704 "src/ocaml/preprocess/parser_raw.ml" + in + ( # 1469 "src/ocaml/preprocess/parser_raw.mly" ( [ x2; x1 ] ) -# 57179 "src/ocaml/preprocess/parser_raw.ml" - in +# 58709 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type list)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -57232,27 +58763,29 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_jkind_ in - let _v : (Parsetree.core_type list) = let x2 = - let _startpos__1_ = _startpos__1_inlined1_ in - let _endpos = _endpos_jkind_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 4920 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let x2 = + let _startpos__1_ = _startpos__1_inlined1_ in + let _endpos = _endpos_jkind_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 4931 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc (Ptyp_var (id, (Some jkind))) ) -# 57244 "src/ocaml/preprocess/parser_raw.ml" - - in - let x1 = -# 4918 "src/ocaml/preprocess/parser_raw.mly" +# 58776 "src/ocaml/preprocess/parser_raw.ml" + + in + let x1 = +# 4929 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 57250 "src/ocaml/preprocess/parser_raw.ml" - in - +# 58782 "src/ocaml/preprocess/parser_raw.ml" + in + ( # 1469 "src/ocaml/preprocess/parser_raw.mly" ( [ x2; x1 ] ) -# 57255 "src/ocaml/preprocess/parser_raw.ml" - in +# 58787 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type list)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -57301,27 +58834,29 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_jkind_ in - let _v : (Parsetree.core_type list) = let x2 = - let _startpos__1_ = _startpos__1_inlined1_ in - let _endpos = _endpos_jkind_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 4922 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let x2 = + let _startpos__1_ = _startpos__1_inlined1_ in + let _endpos = _endpos_jkind_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 4933 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc (Ptyp_any (Some jkind)) ) -# 57313 "src/ocaml/preprocess/parser_raw.ml" - - in - let x1 = -# 4918 "src/ocaml/preprocess/parser_raw.mly" +# 58847 "src/ocaml/preprocess/parser_raw.ml" + + in + let x1 = +# 4929 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 57319 "src/ocaml/preprocess/parser_raw.ml" - in - +# 58853 "src/ocaml/preprocess/parser_raw.ml" + in + ( # 1469 "src/ocaml/preprocess/parser_raw.mly" ( [ x2; x1 ] ) -# 57324 "src/ocaml/preprocess/parser_raw.ml" - in +# 58858 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type list)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -57377,29 +58912,31 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined1_ in - let _v : (Parsetree.core_type list) = let x2 = - let _1 = _1_inlined1 in - -# 4918 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let x2 = + let _1 = _1_inlined1 in + +# 4929 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 57386 "src/ocaml/preprocess/parser_raw.ml" - - in - let x1 = - let _endpos = _endpos_jkind_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 4920 "src/ocaml/preprocess/parser_raw.mly" +# 58922 "src/ocaml/preprocess/parser_raw.ml" + + in + let x1 = + let _endpos = _endpos_jkind_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 4931 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc (Ptyp_var (id, (Some jkind))) ) -# 57396 "src/ocaml/preprocess/parser_raw.ml" - - in - +# 58932 "src/ocaml/preprocess/parser_raw.ml" + + in + ( # 1469 "src/ocaml/preprocess/parser_raw.mly" ( [ x2; x1 ] ) -# 57402 "src/ocaml/preprocess/parser_raw.ml" - in +# 58938 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type list)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -57476,32 +59013,34 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_jkind_inlined1_ in - let _v : (Parsetree.core_type list) = let x2 = - let (_endpos_jkind_, _startpos__1_, jkind, id) = (_endpos_jkind_inlined1_, _startpos__1_inlined1_, jkind_inlined1, id_inlined1) in - let _endpos = _endpos_jkind_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 4920 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let x2 = + let (_endpos_jkind_, _startpos__1_, jkind, id) = (_endpos_jkind_inlined1_, _startpos__1_inlined1_, jkind_inlined1, id_inlined1) in + let _endpos = _endpos_jkind_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 4931 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc (Ptyp_var (id, (Some jkind))) ) -# 57488 "src/ocaml/preprocess/parser_raw.ml" - - in - let x1 = - let _endpos = _endpos_jkind_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 4920 "src/ocaml/preprocess/parser_raw.mly" +# 59026 "src/ocaml/preprocess/parser_raw.ml" + + in + let x1 = + let _endpos = _endpos_jkind_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 4931 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc (Ptyp_var (id, (Some jkind))) ) -# 57498 "src/ocaml/preprocess/parser_raw.ml" - - in - +# 59036 "src/ocaml/preprocess/parser_raw.ml" + + in + ( # 1469 "src/ocaml/preprocess/parser_raw.mly" ( [ x2; x1 ] ) -# 57504 "src/ocaml/preprocess/parser_raw.ml" - in +# 59042 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type list)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -57571,32 +59110,34 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_jkind_inlined1_ in - let _v : (Parsetree.core_type list) = let x2 = - let (_endpos_jkind_, _startpos__1_, jkind) = (_endpos_jkind_inlined1_, _startpos__1_inlined1_, jkind_inlined1) in - let _endpos = _endpos_jkind_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 4922 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let x2 = + let (_endpos_jkind_, _startpos__1_, jkind) = (_endpos_jkind_inlined1_, _startpos__1_inlined1_, jkind_inlined1) in + let _endpos = _endpos_jkind_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 4933 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc (Ptyp_any (Some jkind)) ) -# 57583 "src/ocaml/preprocess/parser_raw.ml" - - in - let x1 = - let _endpos = _endpos_jkind_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 4920 "src/ocaml/preprocess/parser_raw.mly" +# 59123 "src/ocaml/preprocess/parser_raw.ml" + + in + let x1 = + let _endpos = _endpos_jkind_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 4931 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc (Ptyp_var (id, (Some jkind))) ) -# 57593 "src/ocaml/preprocess/parser_raw.ml" - - in - +# 59133 "src/ocaml/preprocess/parser_raw.ml" + + in + ( # 1469 "src/ocaml/preprocess/parser_raw.mly" ( [ x2; x1 ] ) -# 57599 "src/ocaml/preprocess/parser_raw.ml" - in +# 59139 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type list)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -57645,29 +59186,31 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined1_ in - let _v : (Parsetree.core_type list) = let x2 = - let _1 = _1_inlined1 in - -# 4918 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let x2 = + let _1 = _1_inlined1 in + +# 4929 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 57654 "src/ocaml/preprocess/parser_raw.ml" - - in - let x1 = - let _endpos = _endpos_jkind_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 4922 "src/ocaml/preprocess/parser_raw.mly" +# 59196 "src/ocaml/preprocess/parser_raw.ml" + + in + let x1 = + let _endpos = _endpos_jkind_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 4933 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc (Ptyp_any (Some jkind)) ) -# 57664 "src/ocaml/preprocess/parser_raw.ml" - - in - +# 59206 "src/ocaml/preprocess/parser_raw.ml" + + in + ( # 1469 "src/ocaml/preprocess/parser_raw.mly" ( [ x2; x1 ] ) -# 57670 "src/ocaml/preprocess/parser_raw.ml" - in +# 59212 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type list)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -57737,32 +59280,34 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_jkind_inlined1_ in - let _v : (Parsetree.core_type list) = let x2 = - let (_endpos_jkind_, _startpos__1_, jkind) = (_endpos_jkind_inlined1_, _startpos__1_inlined1_, jkind_inlined1) in - let _endpos = _endpos_jkind_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 4920 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let x2 = + let (_endpos_jkind_, _startpos__1_, jkind) = (_endpos_jkind_inlined1_, _startpos__1_inlined1_, jkind_inlined1) in + let _endpos = _endpos_jkind_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 4931 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc (Ptyp_var (id, (Some jkind))) ) -# 57749 "src/ocaml/preprocess/parser_raw.ml" - - in - let x1 = - let _endpos = _endpos_jkind_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 4922 "src/ocaml/preprocess/parser_raw.mly" +# 59293 "src/ocaml/preprocess/parser_raw.ml" + + in + let x1 = + let _endpos = _endpos_jkind_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 4933 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc (Ptyp_any (Some jkind)) ) -# 57759 "src/ocaml/preprocess/parser_raw.ml" - - in - +# 59303 "src/ocaml/preprocess/parser_raw.ml" + + in + ( # 1469 "src/ocaml/preprocess/parser_raw.mly" ( [ x2; x1 ] ) -# 57765 "src/ocaml/preprocess/parser_raw.ml" - in +# 59309 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type list)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -57825,32 +59370,34 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_jkind_inlined1_ in - let _v : (Parsetree.core_type list) = let x2 = - let (_endpos_jkind_, _startpos__1_, jkind) = (_endpos_jkind_inlined1_, _startpos__1_inlined1_, jkind_inlined1) in - let _endpos = _endpos_jkind_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 4922 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let x2 = + let (_endpos_jkind_, _startpos__1_, jkind) = (_endpos_jkind_inlined1_, _startpos__1_inlined1_, jkind_inlined1) in + let _endpos = _endpos_jkind_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 4933 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc (Ptyp_any (Some jkind)) ) -# 57837 "src/ocaml/preprocess/parser_raw.ml" - - in - let x1 = - let _endpos = _endpos_jkind_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 4922 "src/ocaml/preprocess/parser_raw.mly" +# 59383 "src/ocaml/preprocess/parser_raw.ml" + + in + let x1 = + let _endpos = _endpos_jkind_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 4933 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc (Ptyp_any (Some jkind)) ) -# 57847 "src/ocaml/preprocess/parser_raw.ml" - - in - +# 59393 "src/ocaml/preprocess/parser_raw.ml" + + in + ( # 1469 "src/ocaml/preprocess/parser_raw.mly" ( [ x2; x1 ] ) -# 57853 "src/ocaml/preprocess/parser_raw.ml" - in +# 59399 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type list)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -57872,9 +59419,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Parsetree.row_field) = -# 4935 "src/ocaml/preprocess/parser_raw.mly" +# 4946 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 57878 "src/ocaml/preprocess/parser_raw.ml" +# 59425 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -57896,14 +59443,16 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v : (Parsetree.row_field) = let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 4937 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + ( +# 4948 "src/ocaml/preprocess/parser_raw.mly" ( Rf.inherit_ ~loc:(make_loc _sloc) _1 ) -# 57906 "src/ocaml/preprocess/parser_raw.ml" - in +# 59454 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.row_field)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -57924,28 +59473,30 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v : (Parsetree.expression list) = let _2 = -# 124 "" + let _v = + let _2 = +# 123 "" ( None ) -# 57931 "src/ocaml/preprocess/parser_raw.ml" - in - let x = - let _1 = +# 59481 "src/ocaml/preprocess/parser_raw.ml" + in + let x = + let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 57937 "src/ocaml/preprocess/parser_raw.ml" - in - -# 2981 "src/ocaml/preprocess/parser_raw.mly" +# 59487 "src/ocaml/preprocess/parser_raw.ml" + in + +# 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 57942 "src/ocaml/preprocess/parser_raw.ml" - - in - +# 59492 "src/ocaml/preprocess/parser_raw.ml" + + in + ( # 1486 "src/ocaml/preprocess/parser_raw.mly" ( [x] ) -# 57948 "src/ocaml/preprocess/parser_raw.ml" - in +# 59498 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression list)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -57973,28 +59524,30 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_x_ in - let _v : (Parsetree.expression list) = let _2 = + let _v = + let _2 = # 126 "" ( Some x ) -# 57980 "src/ocaml/preprocess/parser_raw.ml" - in - let x = - let _1 = +# 59532 "src/ocaml/preprocess/parser_raw.ml" + in + let x = + let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 57986 "src/ocaml/preprocess/parser_raw.ml" - in - -# 2981 "src/ocaml/preprocess/parser_raw.mly" +# 59538 "src/ocaml/preprocess/parser_raw.ml" + in + +# 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 57991 "src/ocaml/preprocess/parser_raw.ml" - - in - +# 59543 "src/ocaml/preprocess/parser_raw.ml" + + in + ( # 1486 "src/ocaml/preprocess/parser_raw.mly" ( [x] ) -# 57997 "src/ocaml/preprocess/parser_raw.ml" - in +# 59549 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression list)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -58036,53 +59589,54 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_xs_ in - let _v : (Parsetree.expression list) = let _2 = -# 124 "" + let _v = + let _2 = +# 123 "" ( None ) -# 58043 "src/ocaml/preprocess/parser_raw.ml" - in - let x = - let _1 = - let _3 = - let xs = - let xs = -# 253 "" +# 59597 "src/ocaml/preprocess/parser_raw.ml" + in + let x = + let _1 = + let _3 = + let xs = + let xs = +# 264 "" ( List.rev xs ) -# 58052 "src/ocaml/preprocess/parser_raw.ml" - in - +# 59606 "src/ocaml/preprocess/parser_raw.ml" + in + # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 58057 "src/ocaml/preprocess/parser_raw.ml" +# 59611 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 3499 "src/ocaml/preprocess/parser_raw.mly" +# 3510 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 58063 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__3_ = _endpos_xs_ in - let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in +# 59617 "src/ocaml/preprocess/parser_raw.ml" -# 5392 "src/ocaml/preprocess/parser_raw.mly" + in + let _endpos__3_ = _endpos_xs_ in + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in + let _2 = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 58074 "src/ocaml/preprocess/parser_raw.ml" +# 59628 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 5405 "src/ocaml/preprocess/parser_raw.mly" +# 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 58080 "src/ocaml/preprocess/parser_raw.ml" +# 59634 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 2718 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in @@ -58096,20 +59650,21 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 58100 "src/ocaml/preprocess/parser_raw.ml" +# 59654 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 2981 "src/ocaml/preprocess/parser_raw.mly" +# 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 58106 "src/ocaml/preprocess/parser_raw.ml" - - in - +# 59660 "src/ocaml/preprocess/parser_raw.ml" + + in + ( # 1486 "src/ocaml/preprocess/parser_raw.mly" ( [x] ) -# 58112 "src/ocaml/preprocess/parser_raw.ml" - in +# 59666 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression list)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -58158,53 +59713,54 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_x_ in - let _v : (Parsetree.expression list) = let _2 = + let _v = + let _2 = # 126 "" ( Some x ) -# 58165 "src/ocaml/preprocess/parser_raw.ml" - in - let x = - let _1 = - let _3 = - let xs = - let xs = -# 253 "" +# 59721 "src/ocaml/preprocess/parser_raw.ml" + in + let x = + let _1 = + let _3 = + let xs = + let xs = +# 264 "" ( List.rev xs ) -# 58174 "src/ocaml/preprocess/parser_raw.ml" - in - +# 59730 "src/ocaml/preprocess/parser_raw.ml" + in + # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 58179 "src/ocaml/preprocess/parser_raw.ml" +# 59735 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 3499 "src/ocaml/preprocess/parser_raw.mly" +# 3510 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 58185 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__3_ = _endpos_xs_ in - let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in +# 59741 "src/ocaml/preprocess/parser_raw.ml" -# 5392 "src/ocaml/preprocess/parser_raw.mly" + in + let _endpos__3_ = _endpos_xs_ in + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in + let _2 = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 58196 "src/ocaml/preprocess/parser_raw.ml" +# 59752 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 5405 "src/ocaml/preprocess/parser_raw.mly" +# 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 58202 "src/ocaml/preprocess/parser_raw.ml" +# 59758 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 2718 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in @@ -58218,20 +59774,21 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 58222 "src/ocaml/preprocess/parser_raw.ml" +# 59778 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 2981 "src/ocaml/preprocess/parser_raw.mly" +# 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 58228 "src/ocaml/preprocess/parser_raw.ml" - - in - +# 59784 "src/ocaml/preprocess/parser_raw.ml" + + in + ( # 1486 "src/ocaml/preprocess/parser_raw.mly" ( [x] ) -# 58234 "src/ocaml/preprocess/parser_raw.ml" - in +# 59790 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression list)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -58266,23 +59823,25 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_xs_ in - let _v : (Parsetree.expression list) = let x = - let _1 = + let _v = + let x = + let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 58274 "src/ocaml/preprocess/parser_raw.ml" - in - -# 2981 "src/ocaml/preprocess/parser_raw.mly" +# 59832 "src/ocaml/preprocess/parser_raw.ml" + in + +# 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 58279 "src/ocaml/preprocess/parser_raw.ml" - - in - +# 59837 "src/ocaml/preprocess/parser_raw.ml" + + in + ( # 1490 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 58285 "src/ocaml/preprocess/parser_raw.ml" - in +# 59843 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression list)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -58338,49 +59897,50 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_xs_ in - let _v : (Parsetree.expression list) = let x = - let (_endpos_xs_, xs) = (_endpos_xs_inlined1_, xs_inlined1) in - let _1 = - let _3 = - let xs = - let xs = -# 253 "" + let _v = + let x = + let (_endpos_xs_, xs) = (_endpos_xs_inlined1_, xs_inlined1) in + let _1 = + let _3 = + let xs = + let xs = +# 264 "" ( List.rev xs ) -# 58350 "src/ocaml/preprocess/parser_raw.ml" - in - +# 59910 "src/ocaml/preprocess/parser_raw.ml" + in + # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 58355 "src/ocaml/preprocess/parser_raw.ml" +# 59915 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 3499 "src/ocaml/preprocess/parser_raw.mly" +# 3510 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 58361 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__3_ = _endpos_xs_ in - let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in +# 59921 "src/ocaml/preprocess/parser_raw.ml" -# 5392 "src/ocaml/preprocess/parser_raw.mly" + in + let _endpos__3_ = _endpos_xs_ in + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in + let _2 = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 58372 "src/ocaml/preprocess/parser_raw.ml" +# 59932 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 5405 "src/ocaml/preprocess/parser_raw.mly" +# 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 58378 "src/ocaml/preprocess/parser_raw.ml" +# 59938 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 2718 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in @@ -58394,20 +59954,21 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 58398 "src/ocaml/preprocess/parser_raw.ml" +# 59958 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 2981 "src/ocaml/preprocess/parser_raw.mly" +# 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 58404 "src/ocaml/preprocess/parser_raw.ml" - - in - +# 59964 "src/ocaml/preprocess/parser_raw.ml" + + in + ( # 1490 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 58410 "src/ocaml/preprocess/parser_raw.ml" - in +# 59970 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression list)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -58434,34 +59995,35 @@ module Tables = struct let _1 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 58438 "src/ocaml/preprocess/parser_raw.ml" +# 59999 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_oe_ in - let _v : ((string Location.loc * Parsetree.expression) list) = let _2 = -# 124 "" + let _v = + let _2 = +# 123 "" ( None ) -# 58446 "src/ocaml/preprocess/parser_raw.ml" - in - let x = - let label = - let _1 = -# 4999 "src/ocaml/preprocess/parser_raw.mly" +# 60008 "src/ocaml/preprocess/parser_raw.ml" + in + let x = + let label = + let _1 = +# 5010 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 58453 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 60015 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 58461 "src/ocaml/preprocess/parser_raw.ml" +# 60023 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 3651 "src/ocaml/preprocess/parser_raw.mly" +# 3662 "src/ocaml/preprocess/parser_raw.mly" ( let label, e = match oe with | None -> @@ -58471,14 +60033,15 @@ module Tables = struct label, e in label, e ) -# 58475 "src/ocaml/preprocess/parser_raw.ml" - - in - +# 60037 "src/ocaml/preprocess/parser_raw.ml" + + in + ( # 1486 "src/ocaml/preprocess/parser_raw.mly" ( [x] ) -# 58481 "src/ocaml/preprocess/parser_raw.ml" - in +# 60043 "src/ocaml/preprocess/parser_raw.ml" + : ((string Location.loc * Parsetree.expression) list)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -58512,34 +60075,35 @@ module Tables = struct let _1 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 58516 "src/ocaml/preprocess/parser_raw.ml" +# 60079 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_x_ in - let _v : ((string Location.loc * Parsetree.expression) list) = let _2 = + let _v = + let _2 = # 126 "" ( Some x ) -# 58524 "src/ocaml/preprocess/parser_raw.ml" - in - let x = - let label = - let _1 = -# 4999 "src/ocaml/preprocess/parser_raw.mly" +# 60088 "src/ocaml/preprocess/parser_raw.ml" + in + let x = + let label = + let _1 = +# 5010 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 58531 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 60095 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 58539 "src/ocaml/preprocess/parser_raw.ml" +# 60103 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 3651 "src/ocaml/preprocess/parser_raw.mly" +# 3662 "src/ocaml/preprocess/parser_raw.mly" ( let label, e = match oe with | None -> @@ -58549,14 +60113,15 @@ module Tables = struct label, e in label, e ) -# 58553 "src/ocaml/preprocess/parser_raw.ml" - - in - +# 60117 "src/ocaml/preprocess/parser_raw.ml" + + in + ( # 1486 "src/ocaml/preprocess/parser_raw.mly" ( [x] ) -# 58559 "src/ocaml/preprocess/parser_raw.ml" - in +# 60123 "src/ocaml/preprocess/parser_raw.ml" + : ((string Location.loc * Parsetree.expression) list)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -58597,29 +60162,30 @@ module Tables = struct let _1 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 58601 "src/ocaml/preprocess/parser_raw.ml" +# 60166 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_xs_ in - let _v : ((string Location.loc * Parsetree.expression) list) = let x = - let label = - let _1 = -# 4999 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let x = + let label = + let _1 = +# 5010 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 58611 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 60177 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 58619 "src/ocaml/preprocess/parser_raw.ml" +# 60185 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 3651 "src/ocaml/preprocess/parser_raw.mly" +# 3662 "src/ocaml/preprocess/parser_raw.mly" ( let label, e = match oe with | None -> @@ -58629,14 +60195,15 @@ module Tables = struct label, e in label, e ) -# 58633 "src/ocaml/preprocess/parser_raw.ml" - - in - +# 60199 "src/ocaml/preprocess/parser_raw.ml" + + in + ( # 1490 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 58639 "src/ocaml/preprocess/parser_raw.ml" - in +# 60205 "src/ocaml/preprocess/parser_raw.ml" + : ((string Location.loc * Parsetree.expression) list)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -58657,16 +60224,18 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_x_ in let _endpos = _endpos_x_ in - let _v : (Parsetree.pattern list) = let _2 = -# 124 "" + let _v = + let _2 = +# 123 "" ( None ) -# 58664 "src/ocaml/preprocess/parser_raw.ml" - in - +# 60232 "src/ocaml/preprocess/parser_raw.ml" + in + ( # 1486 "src/ocaml/preprocess/parser_raw.mly" ( [x] ) -# 58669 "src/ocaml/preprocess/parser_raw.ml" - in +# 60237 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.pattern list)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -58694,19 +60263,21 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_x_ in let _endpos = _endpos_x_inlined1_ in - let _v : (Parsetree.pattern list) = let _2 = - let x = x_inlined1 in - + let _v = + let _2 = + let x = x_inlined1 in + # 126 "" ( Some x ) -# 58703 "src/ocaml/preprocess/parser_raw.ml" - - in - +# 60273 "src/ocaml/preprocess/parser_raw.ml" + + in + ( # 1486 "src/ocaml/preprocess/parser_raw.mly" ( [x] ) -# 58709 "src/ocaml/preprocess/parser_raw.ml" - in +# 60279 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.pattern list)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -58744,7 +60315,7 @@ module Tables = struct let _v : (Parsetree.pattern list) = # 1490 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 58748 "src/ocaml/preprocess/parser_raw.ml" +# 60319 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -58780,28 +60351,29 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_eo_ in - let _v : ((Longident.t Location.loc * Parsetree.expression) list) = let _2 = -# 124 "" + let _v = + let _2 = +# 123 "" ( None ) -# 58787 "src/ocaml/preprocess/parser_raw.ml" - in - let x = - let label = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 60359 "src/ocaml/preprocess/parser_raw.ml" + in + let x = + let label = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 58797 "src/ocaml/preprocess/parser_raw.ml" +# 60369 "src/ocaml/preprocess/parser_raw.ml" + + in + let _startpos_label_ = _startpos__1_ in + let _endpos = _endpos_eo_ in + let _symbolstartpos = _startpos_label_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _startpos_label_ = _startpos__1_ in - let _endpos = _endpos_eo_ in - let _symbolstartpos = _startpos_label_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 3634 "src/ocaml/preprocess/parser_raw.mly" +# 3645 "src/ocaml/preprocess/parser_raw.mly" ( let constraint_loc, label, e = match eo with | None -> @@ -58811,14 +60383,15 @@ module Tables = struct (_startpos_c_, _endpos), label, e in label, mkexp_opt_type_constraint_with_modes ~loc:constraint_loc ~modes:[] e c ) -# 58815 "src/ocaml/preprocess/parser_raw.ml" - - in - +# 60387 "src/ocaml/preprocess/parser_raw.ml" + + in + ( # 1486 "src/ocaml/preprocess/parser_raw.mly" ( [x] ) -# 58821 "src/ocaml/preprocess/parser_raw.ml" - in +# 60393 "src/ocaml/preprocess/parser_raw.ml" + : ((Longident.t Location.loc * Parsetree.expression) list)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -58860,28 +60433,29 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_x_ in - let _v : ((Longident.t Location.loc * Parsetree.expression) list) = let _2 = + let _v = + let _2 = # 126 "" ( Some x ) -# 58867 "src/ocaml/preprocess/parser_raw.ml" - in - let x = - let label = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 60441 "src/ocaml/preprocess/parser_raw.ml" + in + let x = + let label = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 58877 "src/ocaml/preprocess/parser_raw.ml" +# 60451 "src/ocaml/preprocess/parser_raw.ml" + + in + let _startpos_label_ = _startpos__1_ in + let _endpos = _endpos_eo_ in + let _symbolstartpos = _startpos_label_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _startpos_label_ = _startpos__1_ in - let _endpos = _endpos_eo_ in - let _symbolstartpos = _startpos_label_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 3634 "src/ocaml/preprocess/parser_raw.mly" +# 3645 "src/ocaml/preprocess/parser_raw.mly" ( let constraint_loc, label, e = match eo with | None -> @@ -58891,14 +60465,15 @@ module Tables = struct (_startpos_c_, _endpos), label, e in label, mkexp_opt_type_constraint_with_modes ~loc:constraint_loc ~modes:[] e c ) -# 58895 "src/ocaml/preprocess/parser_raw.ml" - - in - +# 60469 "src/ocaml/preprocess/parser_raw.ml" + + in + ( # 1486 "src/ocaml/preprocess/parser_raw.mly" ( [x] ) -# 58901 "src/ocaml/preprocess/parser_raw.ml" - in +# 60475 "src/ocaml/preprocess/parser_raw.ml" + : ((Longident.t Location.loc * Parsetree.expression) list)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -58947,23 +60522,24 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_xs_ in - let _v : ((Longident.t Location.loc * Parsetree.expression) list) = let x = - let label = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let _v = + let x = + let label = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 58959 "src/ocaml/preprocess/parser_raw.ml" +# 60535 "src/ocaml/preprocess/parser_raw.ml" + + in + let _startpos_label_ = _startpos__1_ in + let _endpos = _endpos_eo_ in + let _symbolstartpos = _startpos_label_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _startpos_label_ = _startpos__1_ in - let _endpos = _endpos_eo_ in - let _symbolstartpos = _startpos_label_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 3634 "src/ocaml/preprocess/parser_raw.mly" +# 3645 "src/ocaml/preprocess/parser_raw.mly" ( let constraint_loc, label, e = match eo with | None -> @@ -58973,14 +60549,15 @@ module Tables = struct (_startpos_c_, _endpos), label, e in label, mkexp_opt_type_constraint_with_modes ~loc:constraint_loc ~modes:[] e c ) -# 58977 "src/ocaml/preprocess/parser_raw.ml" - - in - +# 60553 "src/ocaml/preprocess/parser_raw.ml" + + in + ( # 1490 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 58983 "src/ocaml/preprocess/parser_raw.ml" - in +# 60559 "src/ocaml/preprocess/parser_raw.ml" + : ((Longident.t Location.loc * Parsetree.expression) list)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -59001,16 +60578,18 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v : (Parsetree.expression) = let _1 = + let _v = + let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 59008 "src/ocaml/preprocess/parser_raw.ml" - in - +# 60586 "src/ocaml/preprocess/parser_raw.ml" + in + ( # 2752 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 59013 "src/ocaml/preprocess/parser_raw.ml" - in +# 60591 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -59052,47 +60631,48 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_xs_ in - let _v : (Parsetree.expression) = let _1 = - let _3 = - let xs = - let xs = -# 253 "" + let _v = + let _1 = + let _3 = + let xs = + let xs = +# 264 "" ( List.rev xs ) -# 59062 "src/ocaml/preprocess/parser_raw.ml" - in - +# 60642 "src/ocaml/preprocess/parser_raw.ml" + in + # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 59067 "src/ocaml/preprocess/parser_raw.ml" +# 60647 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 3510 "src/ocaml/preprocess/parser_raw.mly" + ( xs ) +# 60653 "src/ocaml/preprocess/parser_raw.ml" in - -# 3499 "src/ocaml/preprocess/parser_raw.mly" - ( xs ) -# 59073 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__3_ = _endpos_xs_ in - let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in + let _endpos__3_ = _endpos_xs_ in let _2 = - let _1 = _1_inlined1 in - -# 5392 "src/ocaml/preprocess/parser_raw.mly" + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in + let _2 = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 59084 "src/ocaml/preprocess/parser_raw.ml" +# 60664 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 5405 "src/ocaml/preprocess/parser_raw.mly" +# 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 59090 "src/ocaml/preprocess/parser_raw.ml" +# 60670 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 2718 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in @@ -59106,14 +60686,15 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 59110 "src/ocaml/preprocess/parser_raw.ml" - - in - +# 60690 "src/ocaml/preprocess/parser_raw.ml" + + in + ( # 2752 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 59116 "src/ocaml/preprocess/parser_raw.ml" - in +# 60696 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -59177,57 +60758,59 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined4_ in - let _v : (Parsetree.type_exception * string Location.loc option) = let attrs = - let _1 = _1_inlined4 in - -# 5388 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 59186 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_attrs_ = _endpos__1_inlined4_ in - let attrs2 = - let _1 = _1_inlined3 in - -# 5392 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 59195 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_attrs2_ = _endpos__1_inlined3_ in - let id = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let _v = + let attrs = + let _1 = _1_inlined4 in + +# 5399 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 60768 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_attrs_ = _endpos__1_inlined4_ in + let attrs2 = + let _1 = _1_inlined3 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 60777 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_attrs2_ = _endpos__1_inlined3_ in + let id = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 59207 "src/ocaml/preprocess/parser_raw.ml" - - in - let attrs1 = - let _1 = _1_inlined1 in - -# 5392 "src/ocaml/preprocess/parser_raw.mly" +# 60789 "src/ocaml/preprocess/parser_raw.ml" + + in + let attrs1 = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 59215 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos_attrs_ in - let _startpos = _startpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 4306 "src/ocaml/preprocess/parser_raw.mly" +# 60797 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos_attrs_ in + let _startpos = _startpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + ( +# 4317 "src/ocaml/preprocess/parser_raw.mly" ( let vars, args, res = vars_args_res in let loc = make_loc (_startpos, _endpos_attrs2_) in let docs = symbol_docs _sloc in Te.mk_exception ~attrs (Te.decl id ~vars ~args ?res ~attrs:(attrs1 @ attrs2) ~loc ~docs) , ext ) -# 59230 "src/ocaml/preprocess/parser_raw.ml" - in +# 60812 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.type_exception * string Location.loc option)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -59255,38 +60838,40 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_xss_ in - let _v : (Parsetree.signature) = let _2 = - let _1 = -# 260 "" + let _v = + let _2 = + let _1 = +# 271 "" ( List.flatten xss ) -# 59263 "src/ocaml/preprocess/parser_raw.ml" - in - let (_endpos__1_, _startpos__1_) = (_endpos_xss_, _startpos_xss_) in - let _endpos = _endpos__1_ in - let _startpos = _startpos__1_ in - +# 60847 "src/ocaml/preprocess/parser_raw.ml" + in + let (_endpos__1_, _startpos__1_) = (_endpos_xss_, _startpos_xss_) in + let _endpos = _endpos__1_ in + let _startpos = _startpos__1_ in + # 1289 "src/ocaml/preprocess/parser_raw.mly" ( extra_sig _startpos _endpos _1 ) -# 59271 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__2_, _startpos__2_) = (_endpos_xss_, _startpos_xss_) in - let _endpos = _endpos__2_ in - let _symbolstartpos = if _startpos__1_ != _endpos__1_ then - _startpos__1_ - else - if _startpos__2_ != _endpos__2_ then - _startpos__2_ +# 60855 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__2_, _startpos__2_) = (_endpos_xss_, _startpos_xss_) in + let _endpos = _endpos__2_ in + let _symbolstartpos = if _startpos__1_ != _endpos__1_ then + _startpos__1_ else - _endpos in - let _sloc = (_symbolstartpos, _endpos) in - + if _startpos__2_ != _endpos__2_ then + _startpos__2_ + else + _endpos in + let _sloc = (_symbolstartpos, _endpos) in + ( # 2133 "src/ocaml/preprocess/parser_raw.mly" ( { psg_modalities = _1; psg_items = _2; psg_loc = make_loc _sloc; } ) -# 59289 "src/ocaml/preprocess/parser_raw.ml" - in +# 60873 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.signature)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -59314,24 +60899,26 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined1_ in - let _v : (Parsetree.signature_item) = let _2 = - let _1 = _1_inlined1 in - -# 5388 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _2 = + let _1 = _1_inlined1 in + +# 5399 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 59323 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__2_ = _endpos__1_inlined1_ in - let _endpos = _endpos__2_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 60909 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__2_ = _endpos__1_inlined1_ in + let _endpos = _endpos__2_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + ( # 2150 "src/ocaml/preprocess/parser_raw.mly" ( let docs = symbol_docs _sloc in mksig ~loc:_sloc (Psig_extension (_1, (add_docs_attrs docs _2))) ) -# 59334 "src/ocaml/preprocess/parser_raw.ml" - in +# 60920 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.signature_item)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -59352,26 +60939,28 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v : (Parsetree.signature_item) = let _1 = - let _1 = + let _v = + let _1 = + let _1 = # 2154 "src/ocaml/preprocess/parser_raw.mly" ( Psig_attribute _1 ) -# 59360 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 60948 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1337 "src/ocaml/preprocess/parser_raw.mly" ( mksig ~loc:_sloc _1 ) -# 59368 "src/ocaml/preprocess/parser_raw.ml" - - in - +# 60956 "src/ocaml/preprocess/parser_raw.ml" + + in + ( # 2160 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 59374 "src/ocaml/preprocess/parser_raw.ml" - in +# 60962 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.signature_item)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -59392,28 +60981,30 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v : (Parsetree.signature_item) = let _1 = - let _1 = + let _v = + let _1 = + let _1 = # 2156 "src/ocaml/preprocess/parser_raw.mly" ( let name, jkind = _1 in Psig_kind_abbrev (name, jkind) ) -# 59402 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 60992 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1337 "src/ocaml/preprocess/parser_raw.mly" ( mksig ~loc:_sloc _1 ) -# 59410 "src/ocaml/preprocess/parser_raw.ml" - - in - +# 61000 "src/ocaml/preprocess/parser_raw.ml" + + in + ( # 2160 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 59416 "src/ocaml/preprocess/parser_raw.ml" - in +# 61006 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.signature_item)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -59434,26 +61025,28 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v : (Parsetree.signature_item) = let _1 = - let _1 = + let _v = + let _1 = + let _1 = # 2163 "src/ocaml/preprocess/parser_raw.mly" ( psig_value _1 ) -# 59442 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 61034 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1354 "src/ocaml/preprocess/parser_raw.mly" ( wrap_mksig_ext ~loc:_sloc _1 ) -# 59450 "src/ocaml/preprocess/parser_raw.ml" - - in - +# 61042 "src/ocaml/preprocess/parser_raw.ml" + + in + ( # 2193 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 59456 "src/ocaml/preprocess/parser_raw.ml" - in +# 61048 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.signature_item)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -59474,26 +61067,28 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v : (Parsetree.signature_item) = let _1 = - let _1 = + let _v = + let _1 = + let _1 = # 2165 "src/ocaml/preprocess/parser_raw.mly" ( psig_value _1 ) -# 59482 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 61076 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1354 "src/ocaml/preprocess/parser_raw.mly" ( wrap_mksig_ext ~loc:_sloc _1 ) -# 59490 "src/ocaml/preprocess/parser_raw.ml" - - in - +# 61084 "src/ocaml/preprocess/parser_raw.ml" + + in + ( # 2193 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 59496 "src/ocaml/preprocess/parser_raw.ml" - in +# 61090 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.signature_item)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -59522,48 +61117,50 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_a_ in let _endpos = _endpos_bs_ in - let _v : (Parsetree.signature_item) = let _1 = + let _v = let _1 = let _1 = let _1 = - let _1 = + let _1 = + let _1 = # 1547 "src/ocaml/preprocess/parser_raw.mly" ( let (x, b) = a in x, b :: bs ) -# 59533 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4038 "src/ocaml/preprocess/parser_raw.mly" +# 61129 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4049 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 59538 "src/ocaml/preprocess/parser_raw.ml" +# 61134 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 4021 "src/ocaml/preprocess/parser_raw.mly" +# 4032 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 59544 "src/ocaml/preprocess/parser_raw.ml" +# 61140 "src/ocaml/preprocess/parser_raw.ml" + + in - in - # 2167 "src/ocaml/preprocess/parser_raw.mly" ( psig_type _1 ) -# 59550 "src/ocaml/preprocess/parser_raw.ml" +# 61146 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos_bs_, _startpos_a_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let (_endpos__1_, _startpos__1_) = (_endpos_bs_, _startpos_a_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1354 "src/ocaml/preprocess/parser_raw.mly" ( wrap_mksig_ext ~loc:_sloc _1 ) -# 59560 "src/ocaml/preprocess/parser_raw.ml" - - in - +# 61156 "src/ocaml/preprocess/parser_raw.ml" + + in + ( # 2193 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 59566 "src/ocaml/preprocess/parser_raw.ml" - in +# 61162 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.signature_item)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -59592,48 +61189,50 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_a_ in let _endpos = _endpos_bs_ in - let _v : (Parsetree.signature_item) = let _1 = + let _v = let _1 = let _1 = let _1 = - let _1 = + let _1 = + let _1 = # 1547 "src/ocaml/preprocess/parser_raw.mly" ( let (x, b) = a in x, b :: bs ) -# 59603 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4038 "src/ocaml/preprocess/parser_raw.mly" +# 61201 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4049 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 59608 "src/ocaml/preprocess/parser_raw.ml" +# 61206 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 4026 "src/ocaml/preprocess/parser_raw.mly" +# 4037 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 59614 "src/ocaml/preprocess/parser_raw.ml" +# 61212 "src/ocaml/preprocess/parser_raw.ml" + + in - in - # 2169 "src/ocaml/preprocess/parser_raw.mly" ( psig_typesubst _1 ) -# 59620 "src/ocaml/preprocess/parser_raw.ml" +# 61218 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos_bs_, _startpos_a_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let (_endpos__1_, _startpos__1_) = (_endpos_bs_, _startpos_a_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1354 "src/ocaml/preprocess/parser_raw.mly" ( wrap_mksig_ext ~loc:_sloc _1 ) -# 59630 "src/ocaml/preprocess/parser_raw.ml" - - in - +# 61228 "src/ocaml/preprocess/parser_raw.ml" + + in + ( # 2193 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 59636 "src/ocaml/preprocess/parser_raw.ml" - in +# 61234 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.signature_item)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -59710,87 +61309,89 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined3_ in - let _v : (Parsetree.signature_item) = let _1 = + let _v = let _1 = let _1 = let _1 = - let attrs2 = - let _1 = _1_inlined3 in - -# 5388 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let attrs2 = + let _1 = _1_inlined3 in + +# 5399 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 59723 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_attrs2_ = _endpos__1_inlined3_ in - let cs = +# 61323 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_attrs2_ = _endpos__1_inlined3_ in + let cs = # 1539 "src/ocaml/preprocess/parser_raw.mly" ( List.rev xs ) -# 59730 "src/ocaml/preprocess/parser_raw.ml" - in - let tid = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 61330 "src/ocaml/preprocess/parser_raw.ml" + in + let tid = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 59740 "src/ocaml/preprocess/parser_raw.ml" - - in - let _4 = -# 5220 "src/ocaml/preprocess/parser_raw.mly" +# 61340 "src/ocaml/preprocess/parser_raw.ml" + + in + let _4 = +# 5231 "src/ocaml/preprocess/parser_raw.mly" ( Recursive ) -# 59746 "src/ocaml/preprocess/parser_raw.ml" - in - let attrs1 = - let _1 = _1_inlined1 in - -# 5392 "src/ocaml/preprocess/parser_raw.mly" +# 61346 "src/ocaml/preprocess/parser_raw.ml" + in + let attrs1 = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 59753 "src/ocaml/preprocess/parser_raw.ml" +# 61353 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos_attrs2_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos = _endpos_attrs2_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 4392 "src/ocaml/preprocess/parser_raw.mly" +# 4403 "src/ocaml/preprocess/parser_raw.mly" ( let docs = symbol_docs _sloc in let attrs = attrs1 @ attrs2 in Te.mk tid cs ~params ~priv ~attrs ~docs, ext ) -# 59765 "src/ocaml/preprocess/parser_raw.ml" +# 61365 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 4379 "src/ocaml/preprocess/parser_raw.mly" +# 4390 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 59771 "src/ocaml/preprocess/parser_raw.ml" +# 61371 "src/ocaml/preprocess/parser_raw.ml" + + in - in - # 2171 "src/ocaml/preprocess/parser_raw.mly" ( psig_typext _1 ) -# 59777 "src/ocaml/preprocess/parser_raw.ml" +# 61377 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__1_ = _endpos__1_inlined3_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos__1_ = _endpos__1_inlined3_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1354 "src/ocaml/preprocess/parser_raw.mly" ( wrap_mksig_ext ~loc:_sloc _1 ) -# 59787 "src/ocaml/preprocess/parser_raw.ml" - - in - +# 61387 "src/ocaml/preprocess/parser_raw.ml" + + in + ( # 2193 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 59793 "src/ocaml/preprocess/parser_raw.ml" - in +# 61393 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.signature_item)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -59874,93 +61475,95 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined4_ in - let _v : (Parsetree.signature_item) = let _1 = + let _v = let _1 = let _1 = let _1 = - let attrs2 = - let _1 = _1_inlined4 in - -# 5388 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let attrs2 = + let _1 = _1_inlined4 in + +# 5399 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 59887 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_attrs2_ = _endpos__1_inlined4_ in - let cs = +# 61489 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_attrs2_ = _endpos__1_inlined4_ in + let cs = # 1539 "src/ocaml/preprocess/parser_raw.mly" ( List.rev xs ) -# 59894 "src/ocaml/preprocess/parser_raw.ml" - in - let tid = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined3_, _startpos__1_inlined3_, _1_inlined3) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 61496 "src/ocaml/preprocess/parser_raw.ml" + in + let tid = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined3_, _startpos__1_inlined3_, _1_inlined3) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 59904 "src/ocaml/preprocess/parser_raw.ml" - - in - let _4 = - let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined2_, _startpos__1_inlined2_) in - let _endpos = _endpos__1_ in - let _startpos = _startpos__1_ in - let _loc = (_startpos, _endpos) in - -# 5222 "src/ocaml/preprocess/parser_raw.mly" +# 61506 "src/ocaml/preprocess/parser_raw.ml" + + in + let _4 = + let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined2_, _startpos__1_inlined2_) in + let _endpos = _endpos__1_ in + let _startpos = _startpos__1_ in + let _loc = (_startpos, _endpos) in + +# 5233 "src/ocaml/preprocess/parser_raw.mly" ( not_expecting _loc "nonrec flag"; Recursive ) -# 59915 "src/ocaml/preprocess/parser_raw.ml" - - in - let attrs1 = - let _1 = _1_inlined1 in - -# 5392 "src/ocaml/preprocess/parser_raw.mly" +# 61517 "src/ocaml/preprocess/parser_raw.ml" + + in + let attrs1 = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 59923 "src/ocaml/preprocess/parser_raw.ml" +# 61525 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos_attrs2_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos = _endpos_attrs2_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 4392 "src/ocaml/preprocess/parser_raw.mly" +# 4403 "src/ocaml/preprocess/parser_raw.mly" ( let docs = symbol_docs _sloc in let attrs = attrs1 @ attrs2 in Te.mk tid cs ~params ~priv ~attrs ~docs, ext ) -# 59935 "src/ocaml/preprocess/parser_raw.ml" +# 61537 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 4379 "src/ocaml/preprocess/parser_raw.mly" +# 4390 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 59941 "src/ocaml/preprocess/parser_raw.ml" +# 61543 "src/ocaml/preprocess/parser_raw.ml" + + in - in - # 2171 "src/ocaml/preprocess/parser_raw.mly" ( psig_typext _1 ) -# 59947 "src/ocaml/preprocess/parser_raw.ml" +# 61549 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__1_ = _endpos__1_inlined4_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos__1_ = _endpos__1_inlined4_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1354 "src/ocaml/preprocess/parser_raw.mly" ( wrap_mksig_ext ~loc:_sloc _1 ) -# 59957 "src/ocaml/preprocess/parser_raw.ml" - - in - +# 61559 "src/ocaml/preprocess/parser_raw.ml" + + in + ( # 2193 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 59963 "src/ocaml/preprocess/parser_raw.ml" - in +# 61565 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.signature_item)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -59981,26 +61584,28 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v : (Parsetree.signature_item) = let _1 = - let _1 = + let _v = + let _1 = + let _1 = # 2173 "src/ocaml/preprocess/parser_raw.mly" ( psig_exception _1 ) -# 59989 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 61593 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1354 "src/ocaml/preprocess/parser_raw.mly" ( wrap_mksig_ext ~loc:_sloc _1 ) -# 59997 "src/ocaml/preprocess/parser_raw.ml" - - in - +# 61601 "src/ocaml/preprocess/parser_raw.ml" + + in + ( # 2193 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 60003 "src/ocaml/preprocess/parser_raw.ml" - in +# 61607 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.signature_item)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -60056,30 +61661,31 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined2_ in - let _v : (Parsetree.signature_item) = let _1 = + let _v = let _1 = let _1 = - let attrs2 = - let _1 = _1_inlined2 in - -# 5388 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let attrs2 = + let _1 = _1_inlined2 in + +# 5399 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 60068 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_attrs2_ = _endpos__1_inlined2_ in - let attrs1 = - let _1 = _1_inlined1 in - -# 5392 "src/ocaml/preprocess/parser_raw.mly" +# 61674 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_attrs2_ = _endpos__1_inlined2_ in + let attrs1 = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 60077 "src/ocaml/preprocess/parser_raw.ml" +# 61683 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos_attrs2_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos = _endpos_attrs2_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 2207 "src/ocaml/preprocess/parser_raw.mly" ( let attrs = attrs1 @ attrs2 in @@ -60090,30 +61696,31 @@ module Tables = struct let modalities = modalities' @ modalities in Md.mk name mty ~attrs ~loc ~docs ~modalities, ext ) -# 60094 "src/ocaml/preprocess/parser_raw.ml" +# 61700 "src/ocaml/preprocess/parser_raw.ml" + + in - in - # 2175 "src/ocaml/preprocess/parser_raw.mly" ( let (body, ext) = _1 in (Psig_module body, ext) ) -# 60100 "src/ocaml/preprocess/parser_raw.ml" +# 61706 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__1_ = _endpos__1_inlined2_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos__1_ = _endpos__1_inlined2_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1354 "src/ocaml/preprocess/parser_raw.mly" ( wrap_mksig_ext ~loc:_sloc _1 ) -# 60110 "src/ocaml/preprocess/parser_raw.ml" - - in - +# 61716 "src/ocaml/preprocess/parser_raw.ml" + + in + ( # 2193 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 60116 "src/ocaml/preprocess/parser_raw.ml" - in +# 61722 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.signature_item)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -60183,52 +61790,53 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined3_ in - let _v : (Parsetree.signature_item) = let _1 = + let _v = let _1 = let _1 = - let attrs2 = - let _1 = _1_inlined3 in - -# 5388 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let attrs2 = + let _1 = _1_inlined3 in + +# 5399 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 60195 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_attrs2_ = _endpos__1_inlined3_ in - let body = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in - let id = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 61803 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos_attrs2_ = _endpos__1_inlined3_ in + let body = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in + let id = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 60208 "src/ocaml/preprocess/parser_raw.ml" +# 61816 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos_id_, _startpos_id_) = (_endpos__1_, _startpos__1_) in + let _endpos = _endpos_id_ in + let _symbolstartpos = _startpos_id_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let (_endpos_id_, _startpos_id_) = (_endpos__1_, _startpos__1_) in - let _endpos = _endpos_id_ in - let _symbolstartpos = _startpos_id_ in - let _sloc = (_symbolstartpos, _endpos) in - # 2255 "src/ocaml/preprocess/parser_raw.mly" ( Mty.alias ~loc:(make_loc _sloc) id ) -# 60218 "src/ocaml/preprocess/parser_raw.ml" - - in - let attrs1 = - let _1 = _1_inlined1 in - -# 5392 "src/ocaml/preprocess/parser_raw.mly" +# 61826 "src/ocaml/preprocess/parser_raw.ml" + + in + let attrs1 = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 60226 "src/ocaml/preprocess/parser_raw.ml" +# 61834 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos_attrs2_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos = _endpos_attrs2_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 2244 "src/ocaml/preprocess/parser_raw.mly" ( let attrs = attrs1 @ attrs2 in @@ -60238,30 +61846,31 @@ module Tables = struct let modalities = modalities' @ modalities in Md.mk name body ~attrs ~modalities ~loc ~docs, ext ) -# 60242 "src/ocaml/preprocess/parser_raw.ml" +# 61850 "src/ocaml/preprocess/parser_raw.ml" + + in - in - # 2177 "src/ocaml/preprocess/parser_raw.mly" ( let (body, ext) = _1 in (Psig_module body, ext) ) -# 60248 "src/ocaml/preprocess/parser_raw.ml" +# 61856 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__1_ = _endpos__1_inlined3_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos__1_ = _endpos__1_inlined3_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1354 "src/ocaml/preprocess/parser_raw.mly" ( wrap_mksig_ext ~loc:_sloc _1 ) -# 60258 "src/ocaml/preprocess/parser_raw.ml" - - in - +# 61866 "src/ocaml/preprocess/parser_raw.ml" + + in + ( # 2193 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 60264 "src/ocaml/preprocess/parser_raw.ml" - in +# 61872 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.signature_item)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -60282,26 +61891,28 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v : (Parsetree.signature_item) = let _1 = - let _1 = + let _v = + let _1 = + let _1 = # 2179 "src/ocaml/preprocess/parser_raw.mly" ( let (body, ext) = _1 in (Psig_modsubst body, ext) ) -# 60290 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 61900 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1354 "src/ocaml/preprocess/parser_raw.mly" ( wrap_mksig_ext ~loc:_sloc _1 ) -# 60298 "src/ocaml/preprocess/parser_raw.ml" - - in - +# 61908 "src/ocaml/preprocess/parser_raw.ml" + + in + ( # 2193 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 60304 "src/ocaml/preprocess/parser_raw.ml" - in +# 61914 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.signature_item)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -60385,43 +61996,44 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_bs_ in - let _v : (Parsetree.signature_item) = let _1 = + let _v = let _1 = let _1 = let _1 = - let a = - let attrs2 = - let _1 = _1_inlined3 in - -# 5388 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let a = + let attrs2 = + let _1 = _1_inlined3 in + +# 5399 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 60399 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_attrs2_ = _endpos__1_inlined3_ in - let name = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 62011 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_attrs2_ = _endpos__1_inlined3_ in + let name = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 60411 "src/ocaml/preprocess/parser_raw.ml" - - in - let attrs1 = - let _1 = _1_inlined1 in - -# 5392 "src/ocaml/preprocess/parser_raw.mly" +# 62023 "src/ocaml/preprocess/parser_raw.ml" + + in + let attrs1 = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 60419 "src/ocaml/preprocess/parser_raw.ml" +# 62031 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos_attrs2_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos = _endpos_attrs2_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 2292 "src/ocaml/preprocess/parser_raw.mly" ( let attrs = attrs1 @ attrs2 in @@ -60429,42 +62041,43 @@ module Tables = struct let docs = symbol_docs _sloc in ext, Md.mk name mty ~attrs ~loc ~docs ~modalities ) -# 60433 "src/ocaml/preprocess/parser_raw.ml" +# 62045 "src/ocaml/preprocess/parser_raw.ml" + + in - in - # 1547 "src/ocaml/preprocess/parser_raw.mly" ( let (x, b) = a in x, b :: bs ) -# 60439 "src/ocaml/preprocess/parser_raw.ml" +# 62051 "src/ocaml/preprocess/parser_raw.ml" + + in - in - # 2280 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 60445 "src/ocaml/preprocess/parser_raw.ml" +# 62057 "src/ocaml/preprocess/parser_raw.ml" + + in - in - # 2181 "src/ocaml/preprocess/parser_raw.mly" ( let (ext, l) = _1 in (Psig_recmodule l, ext) ) -# 60451 "src/ocaml/preprocess/parser_raw.ml" +# 62063 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__1_ = _endpos_bs_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos__1_ = _endpos_bs_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1354 "src/ocaml/preprocess/parser_raw.mly" ( wrap_mksig_ext ~loc:_sloc _1 ) -# 60461 "src/ocaml/preprocess/parser_raw.ml" - - in - +# 62073 "src/ocaml/preprocess/parser_raw.ml" + + in + ( # 2193 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 60467 "src/ocaml/preprocess/parser_raw.ml" - in +# 62079 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.signature_item)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -60485,26 +62098,28 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v : (Parsetree.signature_item) = let _1 = - let _1 = + let _v = + let _1 = + let _1 = # 2183 "src/ocaml/preprocess/parser_raw.mly" ( let (body, ext) = _1 in (Psig_modtype body, ext) ) -# 60493 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 62107 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1354 "src/ocaml/preprocess/parser_raw.mly" ( wrap_mksig_ext ~loc:_sloc _1 ) -# 60501 "src/ocaml/preprocess/parser_raw.ml" - - in - +# 62115 "src/ocaml/preprocess/parser_raw.ml" + + in + ( # 2193 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 60507 "src/ocaml/preprocess/parser_raw.ml" - in +# 62121 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.signature_item)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -60525,26 +62140,28 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v : (Parsetree.signature_item) = let _1 = - let _1 = + let _v = + let _1 = + let _1 = # 2185 "src/ocaml/preprocess/parser_raw.mly" ( let (body, ext) = _1 in (Psig_modtypesubst body, ext) ) -# 60533 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 62149 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1354 "src/ocaml/preprocess/parser_raw.mly" ( wrap_mksig_ext ~loc:_sloc _1 ) -# 60541 "src/ocaml/preprocess/parser_raw.ml" - - in - +# 62157 "src/ocaml/preprocess/parser_raw.ml" + + in + ( # 2193 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 60547 "src/ocaml/preprocess/parser_raw.ml" - in +# 62163 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.signature_item)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -60565,26 +62182,28 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v : (Parsetree.signature_item) = let _1 = - let _1 = + let _v = + let _1 = + let _1 = # 2187 "src/ocaml/preprocess/parser_raw.mly" ( let (body, ext) = _1 in (Psig_open body, ext) ) -# 60573 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 62191 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1354 "src/ocaml/preprocess/parser_raw.mly" ( wrap_mksig_ext ~loc:_sloc _1 ) -# 60581 "src/ocaml/preprocess/parser_raw.ml" - - in - +# 62199 "src/ocaml/preprocess/parser_raw.ml" + + in + ( # 2193 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 60587 "src/ocaml/preprocess/parser_raw.ml" - in +# 62205 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.signature_item)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -60662,7 +62281,7 @@ module Tables = struct let _1_inlined2 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 60666 "src/ocaml/preprocess/parser_raw.ml" +# 62285 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined2 in let params : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = Obj.magic params in let virt : (Asttypes.virtual_flag) = Obj.magic virt in @@ -60672,43 +62291,44 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_bs_ in - let _v : (Parsetree.signature_item) = let _1 = + let _v = let _1 = let _1 = let _1 = - let a = - let attrs2 = - let _1 = _1_inlined3 in - -# 5388 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let a = + let attrs2 = + let _1 = _1_inlined3 in + +# 5399 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 60686 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_attrs2_ = _endpos__1_inlined3_ in - let id = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 62306 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_attrs2_ = _endpos__1_inlined3_ in + let id = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 60698 "src/ocaml/preprocess/parser_raw.ml" - - in - let attrs1 = - let _1 = _1_inlined1 in - -# 5392 "src/ocaml/preprocess/parser_raw.mly" +# 62318 "src/ocaml/preprocess/parser_raw.ml" + + in + let attrs1 = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 60706 "src/ocaml/preprocess/parser_raw.ml" +# 62326 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos_attrs2_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos = _endpos_attrs2_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 2647 "src/ocaml/preprocess/parser_raw.mly" ( let attrs = attrs1 @ attrs2 in @@ -60717,42 +62337,43 @@ module Tables = struct ext, Ci.mk id cty ~virt ~params ~attrs ~loc ~docs ) -# 60721 "src/ocaml/preprocess/parser_raw.ml" +# 62341 "src/ocaml/preprocess/parser_raw.ml" + + in - in - # 1547 "src/ocaml/preprocess/parser_raw.mly" ( let (x, b) = a in x, b :: bs ) -# 60727 "src/ocaml/preprocess/parser_raw.ml" +# 62347 "src/ocaml/preprocess/parser_raw.ml" + + in - in - # 2635 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 60733 "src/ocaml/preprocess/parser_raw.ml" +# 62353 "src/ocaml/preprocess/parser_raw.ml" + + in - in - # 2189 "src/ocaml/preprocess/parser_raw.mly" ( let (ext, l) = _1 in (Psig_class l, ext) ) -# 60739 "src/ocaml/preprocess/parser_raw.ml" +# 62359 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__1_ = _endpos_bs_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos__1_ = _endpos_bs_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1354 "src/ocaml/preprocess/parser_raw.mly" ( wrap_mksig_ext ~loc:_sloc _1 ) -# 60749 "src/ocaml/preprocess/parser_raw.ml" - - in - +# 62369 "src/ocaml/preprocess/parser_raw.ml" + + in + ( # 2193 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 60755 "src/ocaml/preprocess/parser_raw.ml" - in +# 62375 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.signature_item)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -60773,26 +62394,28 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v : (Parsetree.signature_item) = let _1 = - let _1 = + let _v = + let _1 = + let _1 = # 2191 "src/ocaml/preprocess/parser_raw.mly" ( let (ext, l) = _1 in (Psig_class_type l, ext) ) -# 60781 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 62403 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1354 "src/ocaml/preprocess/parser_raw.mly" ( wrap_mksig_ext ~loc:_sloc _1 ) -# 60789 "src/ocaml/preprocess/parser_raw.ml" - - in - +# 62411 "src/ocaml/preprocess/parser_raw.ml" + + in + ( # 2193 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 60795 "src/ocaml/preprocess/parser_raw.ml" - in +# 62417 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.signature_item)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -60848,25 +62471,26 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_kind_ in let _endpos = _endpos_modalities_ in - let _v : (Parsetree.signature_item) = let _1 = - let attrs2 = - let _1 = _1_inlined1 in - -# 5388 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _1 = + let attrs2 = + let _1 = _1_inlined1 in + +# 5399 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 60858 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_attrs2_ = _endpos__1_inlined1_ in - let attrs1 = -# 5392 "src/ocaml/preprocess/parser_raw.mly" +# 62482 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_attrs2_ = _endpos__1_inlined1_ in + let attrs1 = +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 60865 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos_attrs2_ in - let _symbolstartpos = _startpos_kind_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 62489 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos_attrs2_ in + let _symbolstartpos = _startpos_kind_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2005 "src/ocaml/preprocess/parser_raw.mly" ( let attrs = attrs1 @ attrs2 in @@ -60875,21 +62499,22 @@ module Tables = struct let incl = Incl.mk ~kind thing ~attrs ~loc ~docs in incl, ext ) -# 60879 "src/ocaml/preprocess/parser_raw.ml" - - in - let _startpos__1_ = _startpos_kind_ in - let _endpos = _endpos_modalities_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 62503 "src/ocaml/preprocess/parser_raw.ml" + + in + let _startpos__1_ = _startpos_kind_ in + let _endpos = _endpos_modalities_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + ( # 2195 "src/ocaml/preprocess/parser_raw.mly" ( let incl, ext = _1 in let item = mksig ~loc:_sloc (Psig_include (incl, modalities)) in wrap_sig_ext ~loc:_sloc item ext ) -# 60892 "src/ocaml/preprocess/parser_raw.ml" - in +# 62516 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.signature_item)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -60911,9 +62536,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Parsetree.constant) = -# 5027 "src/ocaml/preprocess/parser_raw.mly" +# 5038 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 60917 "src/ocaml/preprocess/parser_raw.ml" +# 62542 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -60936,9 +62561,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Parsetree.constant) = -# 5028 "src/ocaml/preprocess/parser_raw.mly" +# 5039 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 60942 "src/ocaml/preprocess/parser_raw.ml" +# 62567 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -60965,21 +62590,23 @@ module Tables = struct let _2 : ( # 1079 "src/ocaml/preprocess/parser_raw.mly" (string * char option) -# 60969 "src/ocaml/preprocess/parser_raw.ml" +# 62594 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _2 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in - let _v : (Parsetree.constant) = let _endpos = _endpos__2_ in - let _symbolstartpos = _startpos__1_ in - let _loc__2_ = (_startpos__2_, _endpos__2_) in - let _sloc = (_symbolstartpos, _endpos) in - -# 5029 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _endpos = _endpos__2_ in + let _symbolstartpos = _startpos__1_ in + let _loc__2_ = (_startpos__2_, _endpos__2_) in + let _sloc = (_symbolstartpos, _endpos) in + ( +# 5040 "src/ocaml/preprocess/parser_raw.mly" ( unboxed_int _sloc _loc__2_ Negative _2 ) -# 60982 "src/ocaml/preprocess/parser_raw.ml" - in +# 62608 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.constant)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -61005,16 +62632,16 @@ module Tables = struct let _2 : ( # 1052 "src/ocaml/preprocess/parser_raw.mly" (string * char option) -# 61009 "src/ocaml/preprocess/parser_raw.ml" +# 62636 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _2 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Parsetree.constant) = -# 5030 "src/ocaml/preprocess/parser_raw.mly" +# 5041 "src/ocaml/preprocess/parser_raw.mly" ( unboxed_float Negative _2 ) -# 61018 "src/ocaml/preprocess/parser_raw.ml" +# 62645 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -61041,21 +62668,23 @@ module Tables = struct let _2 : ( # 1079 "src/ocaml/preprocess/parser_raw.mly" (string * char option) -# 61045 "src/ocaml/preprocess/parser_raw.ml" +# 62672 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _2 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in - let _v : (Parsetree.constant) = let _endpos = _endpos__2_ in - let _symbolstartpos = _startpos__1_ in - let _loc__2_ = (_startpos__2_, _endpos__2_) in - let _sloc = (_symbolstartpos, _endpos) in - -# 5031 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _endpos = _endpos__2_ in + let _symbolstartpos = _startpos__1_ in + let _loc__2_ = (_startpos__2_, _endpos__2_) in + let _sloc = (_symbolstartpos, _endpos) in + ( +# 5042 "src/ocaml/preprocess/parser_raw.mly" ( unboxed_int _sloc _loc__2_ Positive _2 ) -# 61058 "src/ocaml/preprocess/parser_raw.ml" - in +# 62686 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.constant)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -61081,16 +62710,16 @@ module Tables = struct let _2 : ( # 1052 "src/ocaml/preprocess/parser_raw.mly" (string * char option) -# 61085 "src/ocaml/preprocess/parser_raw.ml" +# 62714 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _2 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Parsetree.constant) = -# 5032 "src/ocaml/preprocess/parser_raw.mly" +# 5043 "src/ocaml/preprocess/parser_raw.mly" ( unboxed_float Positive _2 ) -# 61094 "src/ocaml/preprocess/parser_raw.ml" +# 62723 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -61113,9 +62742,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Parsetree.constant) = -# 5020 "src/ocaml/preprocess/parser_raw.mly" +# 5031 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 61119 "src/ocaml/preprocess/parser_raw.ml" +# 62748 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -61142,16 +62771,16 @@ module Tables = struct let _2 : ( # 1078 "src/ocaml/preprocess/parser_raw.mly" (string * char option) -# 61146 "src/ocaml/preprocess/parser_raw.ml" +# 62775 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _2 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Parsetree.constant) = -# 5021 "src/ocaml/preprocess/parser_raw.mly" +# 5032 "src/ocaml/preprocess/parser_raw.mly" ( let (n, m) = _2 in Pconst_integer("-" ^ n, m) ) -# 61155 "src/ocaml/preprocess/parser_raw.ml" +# 62784 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -61178,16 +62807,16 @@ module Tables = struct let _2 : ( # 1051 "src/ocaml/preprocess/parser_raw.mly" (string * char option) -# 61182 "src/ocaml/preprocess/parser_raw.ml" +# 62811 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _2 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Parsetree.constant) = -# 5022 "src/ocaml/preprocess/parser_raw.mly" +# 5033 "src/ocaml/preprocess/parser_raw.mly" ( let (f, m) = _2 in Pconst_float("-" ^ f, m) ) -# 61191 "src/ocaml/preprocess/parser_raw.ml" +# 62820 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -61214,16 +62843,16 @@ module Tables = struct let _2 : ( # 1078 "src/ocaml/preprocess/parser_raw.mly" (string * char option) -# 61218 "src/ocaml/preprocess/parser_raw.ml" +# 62847 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _2 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Parsetree.constant) = -# 5023 "src/ocaml/preprocess/parser_raw.mly" +# 5034 "src/ocaml/preprocess/parser_raw.mly" ( let (n, m) = _2 in Pconst_integer (n, m) ) -# 61227 "src/ocaml/preprocess/parser_raw.ml" +# 62856 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -61250,16 +62879,16 @@ module Tables = struct let _2 : ( # 1051 "src/ocaml/preprocess/parser_raw.mly" (string * char option) -# 61254 "src/ocaml/preprocess/parser_raw.ml" +# 62883 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _2 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Parsetree.constant) = -# 5024 "src/ocaml/preprocess/parser_raw.mly" +# 5035 "src/ocaml/preprocess/parser_raw.mly" ( let (f, m) = _2 in Pconst_float(f, m) ) -# 61263 "src/ocaml/preprocess/parser_raw.ml" +# 62892 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -61295,40 +62924,42 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in - let _v : (Parsetree.pattern) = let _1 = + let _v = let _1 = - let _2 = - let _1 = _1_inlined1 in - -# 3948 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let _2 = + let _1 = _1_inlined1 in + +# 3959 "src/ocaml/preprocess/parser_raw.mly" ( let fields, closed = _1 in let closed = match closed with Some () -> Open | None -> Closed in fields, closed ) -# 61308 "src/ocaml/preprocess/parser_raw.ml" +# 62938 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 3912 "src/ocaml/preprocess/parser_raw.mly" +# 3923 "src/ocaml/preprocess/parser_raw.mly" ( let (fields, closed) = _2 in Ppat_record(fields, closed) ) -# 61315 "src/ocaml/preprocess/parser_raw.ml" +# 62945 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__1_ = _endpos__3_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos__1_ = _endpos__3_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1331 "src/ocaml/preprocess/parser_raw.mly" ( mkpat ~loc:_sloc _1 ) -# 61325 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 3938 "src/ocaml/preprocess/parser_raw.mly" +# 62955 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 3949 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 61331 "src/ocaml/preprocess/parser_raw.ml" - in +# 62961 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.pattern)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -61363,40 +62994,42 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in - let _v : (Parsetree.pattern) = let _1 = + let _v = let _1 = - let _2 = - let _1 = _1_inlined1 in - -# 3948 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let _2 = + let _1 = _1_inlined1 in + +# 3959 "src/ocaml/preprocess/parser_raw.mly" ( let fields, closed = _1 in let closed = match closed with Some () -> Open | None -> Closed in fields, closed ) -# 61376 "src/ocaml/preprocess/parser_raw.ml" +# 63008 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 3915 "src/ocaml/preprocess/parser_raw.mly" +# 3926 "src/ocaml/preprocess/parser_raw.mly" ( let (fields, closed) = _2 in Ppat_record_unboxed_product(fields, closed) ) -# 61383 "src/ocaml/preprocess/parser_raw.ml" +# 63015 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__1_ = _endpos__3_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos__1_ = _endpos__3_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1331 "src/ocaml/preprocess/parser_raw.mly" ( mkpat ~loc:_sloc _1 ) -# 61393 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 3938 "src/ocaml/preprocess/parser_raw.mly" +# 63025 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 3949 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 61399 "src/ocaml/preprocess/parser_raw.ml" - in +# 63031 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.pattern)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -61431,35 +63064,37 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in - let _v : (Parsetree.pattern) = let _1 = + let _v = let _1 = - let _2 = -# 3942 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let _2 = +# 3953 "src/ocaml/preprocess/parser_raw.mly" ( ps ) -# 61440 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc__3_ = (_startpos__3_, _endpos__3_) in - -# 3920 "src/ocaml/preprocess/parser_raw.mly" +# 63074 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc__3_ = (_startpos__3_, _endpos__3_) in + +# 3931 "src/ocaml/preprocess/parser_raw.mly" ( fst (mktailpat _loc__3_ _2) ) -# 61446 "src/ocaml/preprocess/parser_raw.ml" +# 63080 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__1_ = _endpos__3_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos__1_ = _endpos__3_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1331 "src/ocaml/preprocess/parser_raw.mly" ( mkpat ~loc:_sloc _1 ) -# 61456 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 3938 "src/ocaml/preprocess/parser_raw.mly" +# 63090 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 3949 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 61462 "src/ocaml/preprocess/parser_raw.ml" - in +# 63096 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.pattern)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -61494,52 +63129,54 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in - let _v : (Parsetree.pattern) = let _1 = + let _v = let _1 = let _1 = let _1 = - let _2 = -# 3942 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let _2 = +# 3953 "src/ocaml/preprocess/parser_raw.mly" ( ps ) -# 61505 "src/ocaml/preprocess/parser_raw.ml" - in - -# 3162 "src/ocaml/preprocess/parser_raw.mly" +# 63141 "src/ocaml/preprocess/parser_raw.ml" + in + +# 3173 "src/ocaml/preprocess/parser_raw.mly" ( Generic_array.Simple.Literal _2 ) -# 61510 "src/ocaml/preprocess/parser_raw.ml" +# 63146 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 3189 "src/ocaml/preprocess/parser_raw.mly" +# 3200 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 61516 "src/ocaml/preprocess/parser_raw.ml" +# 63152 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 3924 "src/ocaml/preprocess/parser_raw.mly" +# 3935 "src/ocaml/preprocess/parser_raw.mly" ( Generic_array.Pattern.to_ast "[|" "|]" Mutable _1 ) -# 61526 "src/ocaml/preprocess/parser_raw.ml" +# 63162 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__1_ = _endpos__3_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos__1_ = _endpos__3_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1331 "src/ocaml/preprocess/parser_raw.mly" ( mkpat ~loc:_sloc _1 ) -# 61536 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 3938 "src/ocaml/preprocess/parser_raw.mly" +# 63172 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 3949 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 61542 "src/ocaml/preprocess/parser_raw.ml" - in +# 63178 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.pattern)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -61567,45 +63204,47 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in - let _v : (Parsetree.pattern) = let _1 = + let _v = let _1 = let _1 = - let _1 = -# 3168 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let _1 = +# 3179 "src/ocaml/preprocess/parser_raw.mly" ( Generic_array.Simple.Literal [] ) -# 61577 "src/ocaml/preprocess/parser_raw.ml" - in - -# 3189 "src/ocaml/preprocess/parser_raw.mly" +# 63215 "src/ocaml/preprocess/parser_raw.ml" + in + +# 3200 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 61582 "src/ocaml/preprocess/parser_raw.ml" +# 63220 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 3924 "src/ocaml/preprocess/parser_raw.mly" +# 3935 "src/ocaml/preprocess/parser_raw.mly" ( Generic_array.Pattern.to_ast "[|" "|]" Mutable _1 ) -# 61592 "src/ocaml/preprocess/parser_raw.ml" +# 63230 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__1_ = _endpos__2_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos__1_ = _endpos__2_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1331 "src/ocaml/preprocess/parser_raw.mly" ( mkpat ~loc:_sloc _1 ) -# 61602 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 3938 "src/ocaml/preprocess/parser_raw.mly" +# 63240 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 3949 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 61608 "src/ocaml/preprocess/parser_raw.ml" - in +# 63246 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.pattern)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -61640,52 +63279,54 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in - let _v : (Parsetree.pattern) = let _1 = + let _v = let _1 = let _1 = let _1 = - let _2 = -# 3942 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let _2 = +# 3953 "src/ocaml/preprocess/parser_raw.mly" ( ps ) -# 61651 "src/ocaml/preprocess/parser_raw.ml" - in - -# 3162 "src/ocaml/preprocess/parser_raw.mly" +# 63291 "src/ocaml/preprocess/parser_raw.ml" + in + +# 3173 "src/ocaml/preprocess/parser_raw.mly" ( Generic_array.Simple.Literal _2 ) -# 61656 "src/ocaml/preprocess/parser_raw.ml" +# 63296 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 3189 "src/ocaml/preprocess/parser_raw.mly" +# 3200 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 61662 "src/ocaml/preprocess/parser_raw.ml" +# 63302 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 3930 "src/ocaml/preprocess/parser_raw.mly" +# 3941 "src/ocaml/preprocess/parser_raw.mly" ( Generic_array.Pattern.to_ast "[:" ":]" Immutable _1 ) -# 61672 "src/ocaml/preprocess/parser_raw.ml" +# 63312 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__1_ = _endpos__3_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos__1_ = _endpos__3_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1331 "src/ocaml/preprocess/parser_raw.mly" ( mkpat ~loc:_sloc _1 ) -# 61682 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 3938 "src/ocaml/preprocess/parser_raw.mly" +# 63322 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 3949 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 61688 "src/ocaml/preprocess/parser_raw.ml" - in +# 63328 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.pattern)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -61713,45 +63354,47 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in - let _v : (Parsetree.pattern) = let _1 = + let _v = let _1 = let _1 = - let _1 = -# 3168 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let _1 = +# 3179 "src/ocaml/preprocess/parser_raw.mly" ( Generic_array.Simple.Literal [] ) -# 61723 "src/ocaml/preprocess/parser_raw.ml" - in - -# 3189 "src/ocaml/preprocess/parser_raw.mly" +# 63365 "src/ocaml/preprocess/parser_raw.ml" + in + +# 3200 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 61728 "src/ocaml/preprocess/parser_raw.ml" +# 63370 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 3930 "src/ocaml/preprocess/parser_raw.mly" +# 3941 "src/ocaml/preprocess/parser_raw.mly" ( Generic_array.Pattern.to_ast "[:" ":]" Immutable _1 ) -# 61738 "src/ocaml/preprocess/parser_raw.ml" +# 63380 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__1_ = _endpos__2_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos__1_ = _endpos__2_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1331 "src/ocaml/preprocess/parser_raw.mly" ( mkpat ~loc:_sloc _1 ) -# 61748 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 3938 "src/ocaml/preprocess/parser_raw.mly" +# 63390 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 3949 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 61754 "src/ocaml/preprocess/parser_raw.ml" - in +# 63396 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.pattern)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -61786,28 +63429,30 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in - let _v : (Parsetree.pattern) = let _1 = - let _1 = -# 3936 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _1 = + let _1 = +# 3947 "src/ocaml/preprocess/parser_raw.mly" ( let (closed, fields) = _2 in Ppat_unboxed_tuple (List.rev fields, closed) ) -# 61795 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos__1_ = _endpos__3_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 63439 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__3_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1331 "src/ocaml/preprocess/parser_raw.mly" ( mkpat ~loc:_sloc _1 ) -# 61804 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 3938 "src/ocaml/preprocess/parser_raw.mly" +# 63448 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 3949 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 61810 "src/ocaml/preprocess/parser_raw.ml" - in +# 63454 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.pattern)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -61842,26 +63487,28 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in - let _v : (Parsetree.expression) = let _2 = - let _1 = _1_inlined1 in - let _1 = + let _v = + let _2 = + let _1 = _1_inlined1 in + let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 61851 "src/ocaml/preprocess/parser_raw.ml" - in - -# 2981 "src/ocaml/preprocess/parser_raw.mly" +# 63497 "src/ocaml/preprocess/parser_raw.ml" + in + +# 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 61856 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__3_ in - let _startpos = _startpos__1_ in - -# 5433 "src/ocaml/preprocess/parser_raw.mly" +# 63502 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__3_ in + let _startpos = _startpos__1_ in + ( +# 5444 "src/ocaml/preprocess/parser_raw.mly" ( Fake.Meta.code _startpos _endpos _2 ) -# 61864 "src/ocaml/preprocess/parser_raw.ml" - in +# 63510 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -61917,49 +63564,50 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in - let _v : (Parsetree.expression) = let _2 = - let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in - let _1 = - let _3 = - let xs = - let xs = -# 253 "" + let _v = + let _2 = + let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in + let _1 = + let _3 = + let xs = + let xs = +# 264 "" ( List.rev xs ) -# 61929 "src/ocaml/preprocess/parser_raw.ml" - in - +# 63577 "src/ocaml/preprocess/parser_raw.ml" + in + # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 61934 "src/ocaml/preprocess/parser_raw.ml" +# 63582 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 3499 "src/ocaml/preprocess/parser_raw.mly" +# 3510 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 61940 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__3_ = _endpos_xs_ in - let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in +# 63588 "src/ocaml/preprocess/parser_raw.ml" -# 5392 "src/ocaml/preprocess/parser_raw.mly" + in + let _endpos__3_ = _endpos_xs_ in + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in + let _2 = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 61951 "src/ocaml/preprocess/parser_raw.ml" +# 63599 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 5405 "src/ocaml/preprocess/parser_raw.mly" +# 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 61957 "src/ocaml/preprocess/parser_raw.ml" +# 63605 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 2718 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in @@ -61973,22 +63621,23 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 61977 "src/ocaml/preprocess/parser_raw.ml" +# 63625 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 2981 "src/ocaml/preprocess/parser_raw.mly" +# 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 61983 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__3_ in - let _startpos = _startpos__1_ in - -# 5433 "src/ocaml/preprocess/parser_raw.mly" +# 63631 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__3_ in + let _startpos = _startpos__1_ in + ( +# 5444 "src/ocaml/preprocess/parser_raw.mly" ( Fake.Meta.code _startpos _endpos _2 ) -# 61991 "src/ocaml/preprocess/parser_raw.ml" - in +# 63639 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -62016,13 +63665,15 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in - let _v : (Parsetree.expression) = let _endpos = _endpos__2_ in - let _startpos = _startpos__1_ in - -# 5435 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _endpos = _endpos__2_ in + let _startpos = _startpos__1_ in + ( +# 5446 "src/ocaml/preprocess/parser_raw.mly" ( Fake.Meta.uncode _startpos _endpos _2 ) -# 62025 "src/ocaml/preprocess/parser_raw.ml" - in +# 63675 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -62057,14 +63708,16 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in - let _v : (Parsetree.expression) = let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 3046 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + ( +# 3057 "src/ocaml/preprocess/parser_raw.mly" ( reloc_exp ~loc:_sloc _2 ) -# 62067 "src/ocaml/preprocess/parser_raw.ml" - in +# 63719 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -62106,28 +63759,30 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in - let _v : (Parsetree.expression) = let _3 = - let _1 = _1_inlined1 in - let _2 = -# 4688 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _3 = + let _1 = _1_inlined1 in + let _2 = +# 4699 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 62115 "src/ocaml/preprocess/parser_raw.ml" - in - -# 3675 "src/ocaml/preprocess/parser_raw.mly" +# 63769 "src/ocaml/preprocess/parser_raw.ml" + in + +# 3686 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 62120 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__4_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 3052 "src/ocaml/preprocess/parser_raw.mly" +# 63774 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__4_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + ( +# 3063 "src/ocaml/preprocess/parser_raw.mly" ( let (t, m) = _3 in mkexp_type_constraint_with_modes ~ghost:true ~loc:_sloc ~modes:m _2 t ) -# 62130 "src/ocaml/preprocess/parser_raw.ml" - in +# 63784 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -62176,31 +63831,33 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in - let _v : (Parsetree.expression) = let _3 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in - -# 4689 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _3 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in + let _2 = + let _1 = _1_inlined1 in + +# 4700 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 62187 "src/ocaml/preprocess/parser_raw.ml" +# 63843 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 3675 "src/ocaml/preprocess/parser_raw.mly" +# 3686 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 62193 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__4_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 3052 "src/ocaml/preprocess/parser_raw.mly" +# 63849 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__4_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + ( +# 3063 "src/ocaml/preprocess/parser_raw.mly" ( let (t, m) = _3 in mkexp_type_constraint_with_modes ~ghost:true ~loc:_sloc ~modes:m _2 t ) -# 62203 "src/ocaml/preprocess/parser_raw.ml" - in +# 63859 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -62249,27 +63906,29 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_array_ in let _endpos = _endpos__5_ in - let _v : (Parsetree.expression) = let _1 = - let r = -# 3054 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _1 = + let r = +# 3065 "src/ocaml/preprocess/parser_raw.mly" ( None ) -# 62257 "src/ocaml/preprocess/parser_raw.ml" - in - +# 63915 "src/ocaml/preprocess/parser_raw.ml" + in + # 2903 "src/ocaml/preprocess/parser_raw.mly" ( array, d, Paren, i, r ) -# 62262 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos__5_, _startpos_array_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 3055 "src/ocaml/preprocess/parser_raw.mly" +# 63920 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos__5_, _startpos_array_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + ( +# 3066 "src/ocaml/preprocess/parser_raw.mly" ( mk_indexop_expr builtin_indexing_operators ~loc:_sloc _1 ) -# 62272 "src/ocaml/preprocess/parser_raw.ml" - in +# 63930 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -62318,27 +63977,29 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_array_ in let _endpos = _endpos__5_ in - let _v : (Parsetree.expression) = let _1 = - let r = -# 3054 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _1 = + let r = +# 3065 "src/ocaml/preprocess/parser_raw.mly" ( None ) -# 62326 "src/ocaml/preprocess/parser_raw.ml" - in - +# 63986 "src/ocaml/preprocess/parser_raw.ml" + in + # 2905 "src/ocaml/preprocess/parser_raw.mly" ( array, d, Brace, i, r ) -# 62331 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos__5_, _startpos_array_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 3055 "src/ocaml/preprocess/parser_raw.mly" +# 63991 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos__5_, _startpos_array_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + ( +# 3066 "src/ocaml/preprocess/parser_raw.mly" ( mk_indexop_expr builtin_indexing_operators ~loc:_sloc _1 ) -# 62341 "src/ocaml/preprocess/parser_raw.ml" - in +# 64001 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -62387,27 +64048,29 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_array_ in let _endpos = _endpos__5_ in - let _v : (Parsetree.expression) = let _1 = - let r = -# 3054 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _1 = + let r = +# 3065 "src/ocaml/preprocess/parser_raw.mly" ( None ) -# 62395 "src/ocaml/preprocess/parser_raw.ml" - in - +# 64057 "src/ocaml/preprocess/parser_raw.ml" + in + # 2907 "src/ocaml/preprocess/parser_raw.mly" ( array, d, Bracket, i, r ) -# 62400 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos__5_, _startpos_array_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 3055 "src/ocaml/preprocess/parser_raw.mly" +# 64062 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos__5_, _startpos_array_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + ( +# 3066 "src/ocaml/preprocess/parser_raw.mly" ( mk_indexop_expr builtin_indexing_operators ~loc:_sloc _1 ) -# 62410 "src/ocaml/preprocess/parser_raw.ml" - in +# 64072 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -62454,50 +64117,52 @@ module Tables = struct let _2 : ( # 1073 "src/ocaml/preprocess/parser_raw.mly" (string) -# 62458 "src/ocaml/preprocess/parser_raw.ml" +# 64121 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _2 in let array : (Parsetree.expression) = Obj.magic array in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_array_ in let _endpos = _endpos__5_ in - let _v : (Parsetree.expression) = let _1 = - let r = -# 3058 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _1 = + let r = +# 3069 "src/ocaml/preprocess/parser_raw.mly" ( None ) -# 62468 "src/ocaml/preprocess/parser_raw.ml" - in - let i = -# 3663 "src/ocaml/preprocess/parser_raw.mly" +# 64132 "src/ocaml/preprocess/parser_raw.ml" + in + let i = +# 3674 "src/ocaml/preprocess/parser_raw.mly" ( es ) -# 62473 "src/ocaml/preprocess/parser_raw.ml" - in - let d = - let _1 = -# 124 "" - ( None ) -# 62479 "src/ocaml/preprocess/parser_raw.ml" +# 64137 "src/ocaml/preprocess/parser_raw.ml" in - + let d = + let _1 = +# 123 "" + ( None ) +# 64143 "src/ocaml/preprocess/parser_raw.ml" + in + # 2919 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 62484 "src/ocaml/preprocess/parser_raw.ml" +# 64148 "src/ocaml/preprocess/parser_raw.ml" + + in - in - # 2903 "src/ocaml/preprocess/parser_raw.mly" ( array, d, Paren, i, r ) -# 62490 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos__5_, _startpos_array_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 3059 "src/ocaml/preprocess/parser_raw.mly" +# 64154 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos__5_, _startpos_array_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + ( +# 3070 "src/ocaml/preprocess/parser_raw.mly" ( mk_indexop_expr user_indexing_operators ~loc:_sloc _1 ) -# 62500 "src/ocaml/preprocess/parser_raw.ml" - in +# 64164 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -62556,7 +64221,7 @@ module Tables = struct let _2 : ( # 1073 "src/ocaml/preprocess/parser_raw.mly" (string) -# 62560 "src/ocaml/preprocess/parser_raw.ml" +# 64225 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _2 in let _2_inlined1 : (Longident.t) = Obj.magic _2_inlined1 in let _1 : unit = Obj.magic _1 in @@ -62564,52 +64229,54 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_array_ in let _endpos = _endpos__5_ in - let _v : (Parsetree.expression) = let _1 = - let r = -# 3058 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _1 = + let r = +# 3069 "src/ocaml/preprocess/parser_raw.mly" ( None ) -# 62572 "src/ocaml/preprocess/parser_raw.ml" - in - let i = -# 3663 "src/ocaml/preprocess/parser_raw.mly" +# 64238 "src/ocaml/preprocess/parser_raw.ml" + in + let i = +# 3674 "src/ocaml/preprocess/parser_raw.mly" ( es ) -# 62577 "src/ocaml/preprocess/parser_raw.ml" - in - let d = - let _1 = - let _2 = _2_inlined1 in - let x = +# 64243 "src/ocaml/preprocess/parser_raw.ml" + in + let d = + let _1 = + let _2 = _2_inlined1 in + let x = # 2919 "src/ocaml/preprocess/parser_raw.mly" (_2) -# 62585 "src/ocaml/preprocess/parser_raw.ml" - in - +# 64251 "src/ocaml/preprocess/parser_raw.ml" + in + # 126 "" ( Some x ) -# 62590 "src/ocaml/preprocess/parser_raw.ml" +# 64256 "src/ocaml/preprocess/parser_raw.ml" + + in - in - # 2919 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 62596 "src/ocaml/preprocess/parser_raw.ml" +# 64262 "src/ocaml/preprocess/parser_raw.ml" + + in - in - # 2903 "src/ocaml/preprocess/parser_raw.mly" ( array, d, Paren, i, r ) -# 62602 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos__5_, _startpos_array_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 3059 "src/ocaml/preprocess/parser_raw.mly" +# 64268 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos__5_, _startpos_array_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + ( +# 3070 "src/ocaml/preprocess/parser_raw.mly" ( mk_indexop_expr user_indexing_operators ~loc:_sloc _1 ) -# 62612 "src/ocaml/preprocess/parser_raw.ml" - in +# 64278 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -62656,50 +64323,52 @@ module Tables = struct let _2 : ( # 1073 "src/ocaml/preprocess/parser_raw.mly" (string) -# 62660 "src/ocaml/preprocess/parser_raw.ml" +# 64327 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _2 in let array : (Parsetree.expression) = Obj.magic array in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_array_ in let _endpos = _endpos__5_ in - let _v : (Parsetree.expression) = let _1 = - let r = -# 3058 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _1 = + let r = +# 3069 "src/ocaml/preprocess/parser_raw.mly" ( None ) -# 62670 "src/ocaml/preprocess/parser_raw.ml" - in - let i = -# 3663 "src/ocaml/preprocess/parser_raw.mly" +# 64338 "src/ocaml/preprocess/parser_raw.ml" + in + let i = +# 3674 "src/ocaml/preprocess/parser_raw.mly" ( es ) -# 62675 "src/ocaml/preprocess/parser_raw.ml" - in - let d = - let _1 = -# 124 "" - ( None ) -# 62681 "src/ocaml/preprocess/parser_raw.ml" +# 64343 "src/ocaml/preprocess/parser_raw.ml" in - + let d = + let _1 = +# 123 "" + ( None ) +# 64349 "src/ocaml/preprocess/parser_raw.ml" + in + # 2919 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 62686 "src/ocaml/preprocess/parser_raw.ml" +# 64354 "src/ocaml/preprocess/parser_raw.ml" + + in - in - # 2905 "src/ocaml/preprocess/parser_raw.mly" ( array, d, Brace, i, r ) -# 62692 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos__5_, _startpos_array_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 3059 "src/ocaml/preprocess/parser_raw.mly" +# 64360 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos__5_, _startpos_array_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + ( +# 3070 "src/ocaml/preprocess/parser_raw.mly" ( mk_indexop_expr user_indexing_operators ~loc:_sloc _1 ) -# 62702 "src/ocaml/preprocess/parser_raw.ml" - in +# 64370 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -62758,7 +64427,7 @@ module Tables = struct let _2 : ( # 1073 "src/ocaml/preprocess/parser_raw.mly" (string) -# 62762 "src/ocaml/preprocess/parser_raw.ml" +# 64431 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _2 in let _2_inlined1 : (Longident.t) = Obj.magic _2_inlined1 in let _1 : unit = Obj.magic _1 in @@ -62766,52 +64435,54 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_array_ in let _endpos = _endpos__5_ in - let _v : (Parsetree.expression) = let _1 = - let r = -# 3058 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _1 = + let r = +# 3069 "src/ocaml/preprocess/parser_raw.mly" ( None ) -# 62774 "src/ocaml/preprocess/parser_raw.ml" - in - let i = -# 3663 "src/ocaml/preprocess/parser_raw.mly" +# 64444 "src/ocaml/preprocess/parser_raw.ml" + in + let i = +# 3674 "src/ocaml/preprocess/parser_raw.mly" ( es ) -# 62779 "src/ocaml/preprocess/parser_raw.ml" - in - let d = - let _1 = - let _2 = _2_inlined1 in - let x = +# 64449 "src/ocaml/preprocess/parser_raw.ml" + in + let d = + let _1 = + let _2 = _2_inlined1 in + let x = # 2919 "src/ocaml/preprocess/parser_raw.mly" (_2) -# 62787 "src/ocaml/preprocess/parser_raw.ml" - in - +# 64457 "src/ocaml/preprocess/parser_raw.ml" + in + # 126 "" ( Some x ) -# 62792 "src/ocaml/preprocess/parser_raw.ml" +# 64462 "src/ocaml/preprocess/parser_raw.ml" + + in - in - # 2919 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 62798 "src/ocaml/preprocess/parser_raw.ml" +# 64468 "src/ocaml/preprocess/parser_raw.ml" + + in - in - # 2905 "src/ocaml/preprocess/parser_raw.mly" ( array, d, Brace, i, r ) -# 62804 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos__5_, _startpos_array_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 3059 "src/ocaml/preprocess/parser_raw.mly" +# 64474 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos__5_, _startpos_array_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + ( +# 3070 "src/ocaml/preprocess/parser_raw.mly" ( mk_indexop_expr user_indexing_operators ~loc:_sloc _1 ) -# 62814 "src/ocaml/preprocess/parser_raw.ml" - in +# 64484 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -62858,50 +64529,52 @@ module Tables = struct let _2 : ( # 1073 "src/ocaml/preprocess/parser_raw.mly" (string) -# 62862 "src/ocaml/preprocess/parser_raw.ml" +# 64533 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _2 in let array : (Parsetree.expression) = Obj.magic array in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_array_ in let _endpos = _endpos__5_ in - let _v : (Parsetree.expression) = let _1 = - let r = -# 3058 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _1 = + let r = +# 3069 "src/ocaml/preprocess/parser_raw.mly" ( None ) -# 62872 "src/ocaml/preprocess/parser_raw.ml" - in - let i = -# 3663 "src/ocaml/preprocess/parser_raw.mly" +# 64544 "src/ocaml/preprocess/parser_raw.ml" + in + let i = +# 3674 "src/ocaml/preprocess/parser_raw.mly" ( es ) -# 62877 "src/ocaml/preprocess/parser_raw.ml" - in - let d = - let _1 = -# 124 "" - ( None ) -# 62883 "src/ocaml/preprocess/parser_raw.ml" +# 64549 "src/ocaml/preprocess/parser_raw.ml" in - + let d = + let _1 = +# 123 "" + ( None ) +# 64555 "src/ocaml/preprocess/parser_raw.ml" + in + # 2919 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 62888 "src/ocaml/preprocess/parser_raw.ml" +# 64560 "src/ocaml/preprocess/parser_raw.ml" + + in - in - # 2907 "src/ocaml/preprocess/parser_raw.mly" ( array, d, Bracket, i, r ) -# 62894 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos__5_, _startpos_array_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 3059 "src/ocaml/preprocess/parser_raw.mly" +# 64566 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos__5_, _startpos_array_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + ( +# 3070 "src/ocaml/preprocess/parser_raw.mly" ( mk_indexop_expr user_indexing_operators ~loc:_sloc _1 ) -# 62904 "src/ocaml/preprocess/parser_raw.ml" - in +# 64576 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -62960,7 +64633,7 @@ module Tables = struct let _2 : ( # 1073 "src/ocaml/preprocess/parser_raw.mly" (string) -# 62964 "src/ocaml/preprocess/parser_raw.ml" +# 64637 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _2 in let _2_inlined1 : (Longident.t) = Obj.magic _2_inlined1 in let _1 : unit = Obj.magic _1 in @@ -62968,52 +64641,54 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_array_ in let _endpos = _endpos__5_ in - let _v : (Parsetree.expression) = let _1 = - let r = -# 3058 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _1 = + let r = +# 3069 "src/ocaml/preprocess/parser_raw.mly" ( None ) -# 62976 "src/ocaml/preprocess/parser_raw.ml" - in - let i = -# 3663 "src/ocaml/preprocess/parser_raw.mly" +# 64650 "src/ocaml/preprocess/parser_raw.ml" + in + let i = +# 3674 "src/ocaml/preprocess/parser_raw.mly" ( es ) -# 62981 "src/ocaml/preprocess/parser_raw.ml" - in - let d = - let _1 = - let _2 = _2_inlined1 in - let x = +# 64655 "src/ocaml/preprocess/parser_raw.ml" + in + let d = + let _1 = + let _2 = _2_inlined1 in + let x = # 2919 "src/ocaml/preprocess/parser_raw.mly" (_2) -# 62989 "src/ocaml/preprocess/parser_raw.ml" - in - +# 64663 "src/ocaml/preprocess/parser_raw.ml" + in + # 126 "" ( Some x ) -# 62994 "src/ocaml/preprocess/parser_raw.ml" +# 64668 "src/ocaml/preprocess/parser_raw.ml" + + in - in - # 2919 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 63000 "src/ocaml/preprocess/parser_raw.ml" +# 64674 "src/ocaml/preprocess/parser_raw.ml" + + in - in - # 2907 "src/ocaml/preprocess/parser_raw.mly" ( array, d, Bracket, i, r ) -# 63006 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos__5_, _startpos_array_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 3059 "src/ocaml/preprocess/parser_raw.mly" +# 64680 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos__5_, _startpos_array_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + ( +# 3070 "src/ocaml/preprocess/parser_raw.mly" ( mk_indexop_expr user_indexing_operators ~loc:_sloc _1 ) -# 63016 "src/ocaml/preprocess/parser_raw.ml" - in +# 64690 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -63062,31 +64737,33 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__5_ in - let _v : (Parsetree.expression) = let _1 = - let attrs = - let _1 = _1_inlined1 in - -# 5392 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _1 = + let attrs = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 63072 "src/ocaml/preprocess/parser_raw.ml" +# 64748 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 3084 "src/ocaml/preprocess/parser_raw.mly" +# 3095 "src/ocaml/preprocess/parser_raw.mly" ( e.pexp_desc, (ext, attrs @ e.pexp_attributes) ) -# 63078 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 3065 "src/ocaml/preprocess/parser_raw.mly" +# 64754 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__1_ = _endpos__5_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + ( +# 3076 "src/ocaml/preprocess/parser_raw.mly" ( let desc, attrs = _1 in mkexp_attrs ~loc:_sloc desc attrs ) -# 63089 "src/ocaml/preprocess/parser_raw.ml" - in +# 64765 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -63128,42 +64805,44 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in - let _v : (Parsetree.expression) = let _1 = - let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in + let _v = + let _1 = let _2 = - let _1 = _1_inlined1 in - -# 5392 "src/ocaml/preprocess/parser_raw.mly" + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in + let _2 = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 63140 "src/ocaml/preprocess/parser_raw.ml" +# 64818 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 5416 "src/ocaml/preprocess/parser_raw.mly" + ( _1, _2 ) +# 64824 "src/ocaml/preprocess/parser_raw.ml" in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 5405 "src/ocaml/preprocess/parser_raw.mly" - ( _1, _2 ) -# 63146 "src/ocaml/preprocess/parser_raw.ml" +# 3097 "src/ocaml/preprocess/parser_raw.mly" + ( Pexp_construct (mkloc (Lident "()") (make_loc _sloc), None), _2 ) +# 64833 "src/ocaml/preprocess/parser_raw.ml" in - let _endpos = _endpos__3_ in + let _endpos__1_ = _endpos__3_ in + let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in - -# 3086 "src/ocaml/preprocess/parser_raw.mly" - ( Pexp_construct (mkloc (Lident "()") (make_loc _sloc), None), _2 ) -# 63155 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__3_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 3065 "src/ocaml/preprocess/parser_raw.mly" + ( +# 3076 "src/ocaml/preprocess/parser_raw.mly" ( let desc, attrs = _1 in mkexp_attrs ~loc:_sloc desc attrs ) -# 63166 "src/ocaml/preprocess/parser_raw.ml" - in +# 64844 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -63205,50 +64884,52 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined3_ in - let _v : (Parsetree.expression) = let _1 = - let _3 = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined3_, _startpos__1_inlined3_, _1_inlined3) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let _v = + let _1 = + let _3 = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined3_, _startpos__1_inlined3_, _1_inlined3) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 63218 "src/ocaml/preprocess/parser_raw.ml" - - in - let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in +# 64898 "src/ocaml/preprocess/parser_raw.ml" -# 5392 "src/ocaml/preprocess/parser_raw.mly" + in + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in + let _2 = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 63228 "src/ocaml/preprocess/parser_raw.ml" +# 64908 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 5416 "src/ocaml/preprocess/parser_raw.mly" + ( _1, _2 ) +# 64914 "src/ocaml/preprocess/parser_raw.ml" in -# 5405 "src/ocaml/preprocess/parser_raw.mly" - ( _1, _2 ) -# 63234 "src/ocaml/preprocess/parser_raw.ml" +# 3103 "src/ocaml/preprocess/parser_raw.mly" + ( Pexp_new(_3), _2 ) +# 64920 "src/ocaml/preprocess/parser_raw.ml" in - -# 3092 "src/ocaml/preprocess/parser_raw.mly" - ( Pexp_new(_3), _2 ) -# 63240 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__1_inlined3_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 3065 "src/ocaml/preprocess/parser_raw.mly" + let _endpos__1_ = _endpos__1_inlined3_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + ( +# 3076 "src/ocaml/preprocess/parser_raw.mly" ( let desc, attrs = _1 in mkexp_attrs ~loc:_sloc desc attrs ) -# 63251 "src/ocaml/preprocess/parser_raw.ml" - in +# 64931 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -63304,39 +64985,41 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__5_ in - let _v : (Parsetree.expression) = let _1 = - let _3 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in - -# 5392 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _1 = + let _3 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in + let _2 = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 63316 "src/ocaml/preprocess/parser_raw.ml" +# 64998 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 5416 "src/ocaml/preprocess/parser_raw.mly" + ( _1, _2 ) +# 65004 "src/ocaml/preprocess/parser_raw.ml" in -# 5405 "src/ocaml/preprocess/parser_raw.mly" - ( _1, _2 ) -# 63322 "src/ocaml/preprocess/parser_raw.ml" +# 3105 "src/ocaml/preprocess/parser_raw.mly" + ( Pexp_pack _4, _3 ) +# 65010 "src/ocaml/preprocess/parser_raw.ml" in - -# 3094 "src/ocaml/preprocess/parser_raw.mly" - ( Pexp_pack _4, _3 ) -# 63328 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 3065 "src/ocaml/preprocess/parser_raw.mly" + let _endpos__1_ = _endpos__5_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + ( +# 3076 "src/ocaml/preprocess/parser_raw.mly" ( let desc, attrs = _1 in mkexp_attrs ~loc:_sloc desc attrs ) -# 63339 "src/ocaml/preprocess/parser_raw.ml" - in +# 65021 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -63406,55 +65089,57 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__7_ in - let _v : (Parsetree.expression) = let _1 = - let _6 = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined3_, _startpos__1_inlined3_, _1_inlined3) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 4925 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _1 = + let _6 = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined3_, _startpos__1_inlined3_, _1_inlined3) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 4936 "src/ocaml/preprocess/parser_raw.mly" ( let (lid, cstrs, attrs) = package_type_of_module_type _1 in let descr = Ptyp_package (lid, cstrs) in mktyp ~loc:_sloc ~attrs descr ) -# 63421 "src/ocaml/preprocess/parser_raw.ml" - - in - let _3 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in +# 65105 "src/ocaml/preprocess/parser_raw.ml" -# 5392 "src/ocaml/preprocess/parser_raw.mly" + in + let _3 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in + let _2 = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 63431 "src/ocaml/preprocess/parser_raw.ml" +# 65115 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 5416 "src/ocaml/preprocess/parser_raw.mly" + ( _1, _2 ) +# 65121 "src/ocaml/preprocess/parser_raw.ml" in + let _endpos = _endpos__7_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 5405 "src/ocaml/preprocess/parser_raw.mly" - ( _1, _2 ) -# 63437 "src/ocaml/preprocess/parser_raw.ml" +# 3107 "src/ocaml/preprocess/parser_raw.mly" + ( Pexp_constraint (ghexp ~loc:_sloc (Pexp_pack _4), Some _6, []), _3 ) +# 65130 "src/ocaml/preprocess/parser_raw.ml" in - let _endpos = _endpos__7_ in + let _endpos__1_ = _endpos__7_ in + let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in - -# 3096 "src/ocaml/preprocess/parser_raw.mly" - ( Pexp_constraint (ghexp ~loc:_sloc (Pexp_pack _4), Some _6, []), _3 ) -# 63446 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__7_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 3065 "src/ocaml/preprocess/parser_raw.mly" + ( +# 3076 "src/ocaml/preprocess/parser_raw.mly" ( let desc, attrs = _1 in mkexp_attrs ~loc:_sloc desc attrs ) -# 63457 "src/ocaml/preprocess/parser_raw.ml" - in +# 65141 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -63510,69 +65195,71 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in - let _v : (Parsetree.expression) = let _1 = - let _3 = - let _1 = _1_inlined3 in - let _2 = - let _1 = - let _1 = -# 260 "" + let _v = + let _1 = + let _3 = + let _1 = _1_inlined3 in + let _2 = + let _1 = + let _1 = +# 271 "" ( List.flatten xss ) -# 63522 "src/ocaml/preprocess/parser_raw.ml" - in - +# 65208 "src/ocaml/preprocess/parser_raw.ml" + in + # 2461 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 63527 "src/ocaml/preprocess/parser_raw.ml" +# 65213 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos_xss_, _startpos_xss_) in + let _endpos = _endpos__1_ in + let _startpos = _startpos__1_ in - in - let (_endpos__1_, _startpos__1_) = (_endpos_xss_, _startpos_xss_) in - let _endpos = _endpos__1_ in - let _startpos = _startpos__1_ in - # 1290 "src/ocaml/preprocess/parser_raw.mly" ( extra_cstr _startpos _endpos _1 ) -# 63536 "src/ocaml/preprocess/parser_raw.ml" +# 65222 "src/ocaml/preprocess/parser_raw.ml" + + in - in - # 2449 "src/ocaml/preprocess/parser_raw.mly" ( Cstr.mk _1 _2 ) -# 63542 "src/ocaml/preprocess/parser_raw.ml" - - in - let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in +# 65228 "src/ocaml/preprocess/parser_raw.ml" -# 5392 "src/ocaml/preprocess/parser_raw.mly" + in + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in + let _2 = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 63552 "src/ocaml/preprocess/parser_raw.ml" +# 65238 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 5416 "src/ocaml/preprocess/parser_raw.mly" + ( _1, _2 ) +# 65244 "src/ocaml/preprocess/parser_raw.ml" in -# 5405 "src/ocaml/preprocess/parser_raw.mly" - ( _1, _2 ) -# 63558 "src/ocaml/preprocess/parser_raw.ml" +# 3113 "src/ocaml/preprocess/parser_raw.mly" + ( Pexp_object _3, _2 ) +# 65250 "src/ocaml/preprocess/parser_raw.ml" in - -# 3102 "src/ocaml/preprocess/parser_raw.mly" - ( Pexp_object _3, _2 ) -# 63564 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__4_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 3065 "src/ocaml/preprocess/parser_raw.mly" + let _endpos__1_ = _endpos__4_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + ( +# 3076 "src/ocaml/preprocess/parser_raw.mly" ( let desc, attrs = _1 in mkexp_attrs ~loc:_sloc desc attrs ) -# 63575 "src/ocaml/preprocess/parser_raw.ml" - in +# 65261 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -63593,38 +65280,40 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v : (Parsetree.expression) = let _1 = + let _v = let _1 = let _1 = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let _1 = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 63606 "src/ocaml/preprocess/parser_raw.ml" +# 65294 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 3199 "src/ocaml/preprocess/parser_raw.mly" +# 3210 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_ident (_1) ) -# 63612 "src/ocaml/preprocess/parser_raw.ml" +# 65300 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1329 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc _1 ) -# 63621 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 3068 "src/ocaml/preprocess/parser_raw.mly" +# 65309 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 3079 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 63627 "src/ocaml/preprocess/parser_raw.ml" - in +# 65315 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -63645,38 +65334,40 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v : (Parsetree.expression) = let _1 = + let _v = let _1 = let _1 = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let _1 = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 63658 "src/ocaml/preprocess/parser_raw.ml" +# 65348 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 3201 "src/ocaml/preprocess/parser_raw.mly" +# 3212 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_construct(_1, None) ) -# 63664 "src/ocaml/preprocess/parser_raw.ml" +# 65354 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1329 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc _1 ) -# 63673 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 3068 "src/ocaml/preprocess/parser_raw.mly" +# 65363 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 3079 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 63679 "src/ocaml/preprocess/parser_raw.ml" - in +# 65369 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -63697,26 +65388,28 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v : (Parsetree.expression) = let _1 = - let _1 = -# 3203 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _1 = + let _1 = +# 3214 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_variant(_1, None) ) -# 63705 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 65397 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1329 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc _1 ) -# 63713 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 3068 "src/ocaml/preprocess/parser_raw.mly" +# 65405 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 3079 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 63719 "src/ocaml/preprocess/parser_raw.ml" - in +# 65411 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -63743,44 +65436,46 @@ module Tables = struct let _1 : ( # 1124 "src/ocaml/preprocess/parser_raw.mly" (string) -# 63747 "src/ocaml/preprocess/parser_raw.ml" +# 65440 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in - let _v : (Parsetree.expression) = let _1 = + let _v = let _1 = let _1 = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let _1 = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1323 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 63761 "src/ocaml/preprocess/parser_raw.ml" +# 65455 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 3205 "src/ocaml/preprocess/parser_raw.mly" +# 3216 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_apply(_1, [Nolabel,_2]) ) -# 63767 "src/ocaml/preprocess/parser_raw.ml" +# 65461 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__1_ = _endpos__2_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos__1_ = _endpos__2_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1329 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc _1 ) -# 63777 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 3068 "src/ocaml/preprocess/parser_raw.mly" +# 65471 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 3079 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 63783 "src/ocaml/preprocess/parser_raw.ml" - in +# 65477 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -63808,44 +65503,46 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in - let _v : (Parsetree.expression) = let _1 = + let _v = let _1 = let _1 = - let _1 = -# 3206 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let _1 = +# 3217 "src/ocaml/preprocess/parser_raw.mly" ("!") -# 63818 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 65514 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1323 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 63826 "src/ocaml/preprocess/parser_raw.ml" +# 65522 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 3207 "src/ocaml/preprocess/parser_raw.mly" +# 3218 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_apply(_1, [Nolabel,_2]) ) -# 63832 "src/ocaml/preprocess/parser_raw.ml" +# 65528 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__1_ = _endpos__2_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos__1_ = _endpos__2_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1329 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc _1 ) -# 63842 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 3068 "src/ocaml/preprocess/parser_raw.mly" +# 65538 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 3079 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 63848 "src/ocaml/preprocess/parser_raw.ml" - in +# 65544 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -63880,34 +65577,36 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in - let _v : (Parsetree.expression) = let _1 = + let _v = let _1 = - let _2 = -# 3646 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let _2 = +# 3657 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 63889 "src/ocaml/preprocess/parser_raw.ml" - in - -# 3209 "src/ocaml/preprocess/parser_raw.mly" +# 65587 "src/ocaml/preprocess/parser_raw.ml" + in + +# 3220 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_override _2 ) -# 63894 "src/ocaml/preprocess/parser_raw.ml" +# 65592 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__1_ = _endpos__3_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos__1_ = _endpos__3_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1329 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc _1 ) -# 63904 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 3068 "src/ocaml/preprocess/parser_raw.mly" +# 65602 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 3079 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 63910 "src/ocaml/preprocess/parser_raw.ml" - in +# 65608 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -63935,27 +65634,29 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in - let _v : (Parsetree.expression) = let _1 = - let _1 = -# 3215 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _1 = + let _1 = +# 3226 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_override [] ) -# 63943 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos__1_ = _endpos__2_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 65643 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__2_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1329 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc _1 ) -# 63952 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 3068 "src/ocaml/preprocess/parser_raw.mly" +# 65652 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 3079 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 63958 "src/ocaml/preprocess/parser_raw.ml" - in +# 65658 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -63990,40 +65691,42 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined1_ in - let _v : (Parsetree.expression) = let _1 = + let _v = let _1 = - let _3 = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let _1 = + let _3 = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 64004 "src/ocaml/preprocess/parser_raw.ml" +# 65706 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 3217 "src/ocaml/preprocess/parser_raw.mly" +# 3228 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_field(_1, _3) ) -# 64010 "src/ocaml/preprocess/parser_raw.ml" +# 65712 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__1_ = _endpos__1_inlined1_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos__1_ = _endpos__1_inlined1_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1329 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc _1 ) -# 64020 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 3068 "src/ocaml/preprocess/parser_raw.mly" +# 65722 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 3079 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 64026 "src/ocaml/preprocess/parser_raw.ml" - in +# 65728 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -64058,40 +65761,42 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined1_ in - let _v : (Parsetree.expression) = let _1 = + let _v = let _1 = - let _3 = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let _1 = + let _3 = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 64072 "src/ocaml/preprocess/parser_raw.ml" +# 65776 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 3219 "src/ocaml/preprocess/parser_raw.mly" +# 3230 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_unboxed_field(_1, _3) ) -# 64078 "src/ocaml/preprocess/parser_raw.ml" +# 65782 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__1_ = _endpos__1_inlined1_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos__1_ = _endpos__1_inlined1_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1329 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc _1 ) -# 64088 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 3068 "src/ocaml/preprocess/parser_raw.mly" +# 65792 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 3079 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 64094 "src/ocaml/preprocess/parser_raw.ml" - in +# 65798 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -64140,49 +65845,51 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__5_ in - let _v : (Parsetree.expression) = let _1 = + let _v = let _1 = - let od = - let _1 = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let _1 = + let od = + let _1 = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 64154 "src/ocaml/preprocess/parser_raw.ml" +# 65860 "src/ocaml/preprocess/parser_raw.ml" + + in + let _loc__1_ = (_startpos__1_, _endpos__1_) in - in - let _loc__1_ = (_startpos__1_, _endpos__1_) in - # 2065 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _loc__1_ in let me = Mod.ident ~loc _1 in Opn.mk ~loc me ) -# 64163 "src/ocaml/preprocess/parser_raw.ml" +# 65869 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 3221 "src/ocaml/preprocess/parser_raw.mly" +# 3232 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_open(od, _4) ) -# 64169 "src/ocaml/preprocess/parser_raw.ml" +# 65875 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__1_ = _endpos__5_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos__1_ = _endpos__5_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1329 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc _1 ) -# 64179 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 3068 "src/ocaml/preprocess/parser_raw.mly" +# 65885 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 3079 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 64185 "src/ocaml/preprocess/parser_raw.ml" - in +# 65891 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -64231,59 +65938,61 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__5_ in - let _v : (Parsetree.expression) = let _1 = + let _v = let _1 = - let _4 = -# 3646 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let _4 = +# 3657 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 64240 "src/ocaml/preprocess/parser_raw.ml" - in - let od = - let _1 = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 65948 "src/ocaml/preprocess/parser_raw.ml" + in + let od = + let _1 = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 64250 "src/ocaml/preprocess/parser_raw.ml" +# 65958 "src/ocaml/preprocess/parser_raw.ml" + + in + let _loc__1_ = (_startpos__1_, _endpos__1_) in - in - let _loc__1_ = (_startpos__1_, _endpos__1_) in - # 2065 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _loc__1_ in let me = Mod.ident ~loc _1 in Opn.mk ~loc me ) -# 64259 "src/ocaml/preprocess/parser_raw.ml" +# 65967 "src/ocaml/preprocess/parser_raw.ml" + + in + let _startpos_od_ = _startpos__1_ in + let _endpos = _endpos__5_ in + let _symbolstartpos = _startpos_od_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _startpos_od_ = _startpos__1_ in - let _endpos = _endpos__5_ in - let _symbolstartpos = _startpos_od_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 3223 "src/ocaml/preprocess/parser_raw.mly" +# 3234 "src/ocaml/preprocess/parser_raw.mly" ( (* TODO: review the location of Pexp_override *) Pexp_open(od, mkexp ~loc:_sloc (Pexp_override _4)) ) -# 64270 "src/ocaml/preprocess/parser_raw.ml" +# 65978 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__1_ = _endpos__5_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos__1_ = _endpos__5_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1329 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc _1 ) -# 64280 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 3068 "src/ocaml/preprocess/parser_raw.mly" +# 65988 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 3079 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 64286 "src/ocaml/preprocess/parser_raw.ml" - in +# 65994 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -64315,57 +66024,59 @@ module Tables = struct let _1_inlined2 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 64319 "src/ocaml/preprocess/parser_raw.ml" +# 66028 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined2 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _1 : (Parsetree.expression) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined2_ in - let _v : (Parsetree.expression) = let _1 = + let _v = let _1 = - let _3 = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in - let _1 = -# 4999 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let _3 = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in + let _1 = +# 5010 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 64333 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 66043 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 64341 "src/ocaml/preprocess/parser_raw.ml" - - in - let _2 = -# 3193 "src/ocaml/preprocess/parser_raw.mly" +# 66051 "src/ocaml/preprocess/parser_raw.ml" + + in + let _2 = +# 3204 "src/ocaml/preprocess/parser_raw.mly" ( () ) -# 64347 "src/ocaml/preprocess/parser_raw.ml" - in - -# 3230 "src/ocaml/preprocess/parser_raw.mly" +# 66057 "src/ocaml/preprocess/parser_raw.ml" + in + +# 3241 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_send(_1, _3) ) -# 64352 "src/ocaml/preprocess/parser_raw.ml" +# 66062 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__1_ = _endpos__1_inlined2_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos__1_ = _endpos__1_inlined2_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1329 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc _1 ) -# 64362 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 3068 "src/ocaml/preprocess/parser_raw.mly" +# 66072 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 3079 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 64368 "src/ocaml/preprocess/parser_raw.ml" - in +# 66078 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -64397,57 +66108,59 @@ module Tables = struct let _1_inlined2 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 64401 "src/ocaml/preprocess/parser_raw.ml" +# 66112 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined2 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _1 : (Parsetree.expression) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined2_ in - let _v : (Parsetree.expression) = let _1 = + let _v = let _1 = - let _3 = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in - let _1 = -# 4999 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let _3 = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in + let _1 = +# 5010 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 64415 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 66127 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 64423 "src/ocaml/preprocess/parser_raw.ml" - - in - let _2 = -# 3194 "src/ocaml/preprocess/parser_raw.mly" +# 66135 "src/ocaml/preprocess/parser_raw.ml" + + in + let _2 = +# 3205 "src/ocaml/preprocess/parser_raw.mly" ( () ) -# 64429 "src/ocaml/preprocess/parser_raw.ml" - in - -# 3230 "src/ocaml/preprocess/parser_raw.mly" +# 66141 "src/ocaml/preprocess/parser_raw.ml" + in + +# 3241 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_send(_1, _3) ) -# 64434 "src/ocaml/preprocess/parser_raw.ml" +# 66146 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__1_ = _endpos__1_inlined2_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos__1_ = _endpos__1_inlined2_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1329 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc _1 ) -# 64444 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 3068 "src/ocaml/preprocess/parser_raw.mly" +# 66156 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 3079 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 64450 "src/ocaml/preprocess/parser_raw.ml" - in +# 66162 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -64480,46 +66193,48 @@ module Tables = struct let _1_inlined1 : ( # 1137 "src/ocaml/preprocess/parser_raw.mly" (string) -# 64484 "src/ocaml/preprocess/parser_raw.ml" +# 66197 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined1 in let _1 : (Parsetree.expression) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in - let _v : (Parsetree.expression) = let _1 = + let _v = let _1 = - let _2 = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let _1 = + let _2 = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1323 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 64500 "src/ocaml/preprocess/parser_raw.ml" +# 66214 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 3232 "src/ocaml/preprocess/parser_raw.mly" +# 3243 "src/ocaml/preprocess/parser_raw.mly" ( mkinfix _1 _2 _3 ) -# 64506 "src/ocaml/preprocess/parser_raw.ml" +# 66220 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__1_ = _endpos__3_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos__1_ = _endpos__3_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1329 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc _1 ) -# 64516 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 3068 "src/ocaml/preprocess/parser_raw.mly" +# 66230 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 3079 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 64522 "src/ocaml/preprocess/parser_raw.ml" - in +# 66236 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -64540,26 +66255,28 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v : (Parsetree.expression) = let _1 = - let _1 = -# 3234 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _1 = + let _1 = +# 3245 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_extension _1 ) -# 64548 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 66264 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1329 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc _1 ) -# 64556 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 3068 "src/ocaml/preprocess/parser_raw.mly" +# 66272 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 3079 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 64562 "src/ocaml/preprocess/parser_raw.ml" - in +# 66278 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -64580,26 +66297,28 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v : (Parsetree.expression) = let _1 = - let _1 = -# 3236 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _1 = + let _1 = +# 3247 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_hole ) -# 64588 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 66306 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1329 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc _1 ) -# 64596 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 3068 "src/ocaml/preprocess/parser_raw.mly" +# 66314 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 3079 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 64602 "src/ocaml/preprocess/parser_raw.ml" - in +# 66320 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -64641,68 +66360,70 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__2_inlined1_ in - let _v : (Parsetree.expression) = let _1 = + let _v = let _1 = - let _3 = - let (_endpos__2_, _startpos__1_) = (_endpos__2_inlined1_, _startpos__1_inlined1_) in - let _1 = -# 3237 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let _3 = + let (_endpos__2_, _startpos__1_) = (_endpos__2_inlined1_, _startpos__1_inlined1_) in + let _1 = +# 3248 "src/ocaml/preprocess/parser_raw.mly" (Lident "()") -# 64652 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos__1_ = _endpos__2_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 1296 "src/ocaml/preprocess/parser_raw.mly" - ( mkrhs _1 _sloc ) -# 64661 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__3_, _startpos__3_) = (_endpos__2_inlined1_, _startpos__1_inlined1_) in - let od = - let _1 = +# 66372 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__2_ in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 64673 "src/ocaml/preprocess/parser_raw.ml" +# 66381 "src/ocaml/preprocess/parser_raw.ml" in - let _loc__1_ = (_startpos__1_, _endpos__1_) in - + let (_endpos__3_, _startpos__3_) = (_endpos__2_inlined1_, _startpos__1_inlined1_) in + let od = + let _1 = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 1296 "src/ocaml/preprocess/parser_raw.mly" + ( mkrhs _1 _sloc ) +# 66393 "src/ocaml/preprocess/parser_raw.ml" + + in + let _loc__1_ = (_startpos__1_, _endpos__1_) in + # 2065 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _loc__1_ in let me = Mod.ident ~loc _1 in Opn.mk ~loc me ) -# 64682 "src/ocaml/preprocess/parser_raw.ml" +# 66402 "src/ocaml/preprocess/parser_raw.ml" + + in + let _loc__3_ = (_startpos__3_, _endpos__3_) in - in - let _loc__3_ = (_startpos__3_, _endpos__3_) in - -# 3238 "src/ocaml/preprocess/parser_raw.mly" +# 3249 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_open(od, mkexp ~loc:(_loc__3_) (Pexp_construct(_3, None))) ) -# 64689 "src/ocaml/preprocess/parser_raw.ml" +# 66409 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__1_ = _endpos__2_inlined1_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos__1_ = _endpos__2_inlined1_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1329 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc _1 ) -# 64699 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 3068 "src/ocaml/preprocess/parser_raw.mly" +# 66419 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 3079 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 64705 "src/ocaml/preprocess/parser_raw.ml" - in +# 66425 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -64738,28 +66459,30 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in - let _v : (Parsetree.expression) = let _1 = - let _1 = -# 3244 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _1 = + let _1 = +# 3255 "src/ocaml/preprocess/parser_raw.mly" ( let (exten, fields) = _2 in Pexp_record(fields, exten) ) -# 64747 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos__1_ = _endpos__3_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 66469 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__3_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1329 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc _1 ) -# 64756 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 3068 "src/ocaml/preprocess/parser_raw.mly" +# 66478 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 3079 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 64762 "src/ocaml/preprocess/parser_raw.ml" - in +# 66484 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -64795,28 +66518,30 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in - let _v : (Parsetree.expression) = let _1 = - let _1 = -# 3247 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _1 = + let _1 = +# 3258 "src/ocaml/preprocess/parser_raw.mly" ( let (exten, fields) = _2 in Pexp_record_unboxed_product(fields, exten) ) -# 64804 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos__1_ = _endpos__3_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 66528 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__3_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1329 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc _1 ) -# 64813 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 3068 "src/ocaml/preprocess/parser_raw.mly" +# 66537 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 3079 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 64819 "src/ocaml/preprocess/parser_raw.ml" - in +# 66543 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -64866,52 +66591,54 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__5_ in - let _v : (Parsetree.expression) = let _1 = + let _v = let _1 = - let od = - let _1 = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let _1 = + let od = + let _1 = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 64880 "src/ocaml/preprocess/parser_raw.ml" +# 66606 "src/ocaml/preprocess/parser_raw.ml" + + in + let _loc__1_ = (_startpos__1_, _endpos__1_) in - in - let _loc__1_ = (_startpos__1_, _endpos__1_) in - # 2065 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _loc__1_ in let me = Mod.ident ~loc _1 in Opn.mk ~loc me ) -# 64889 "src/ocaml/preprocess/parser_raw.ml" +# 66615 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__5_ in - in - let _endpos = _endpos__5_ in - -# 3254 "src/ocaml/preprocess/parser_raw.mly" +# 3265 "src/ocaml/preprocess/parser_raw.mly" ( let (exten, fields) = _4 in Pexp_open(od, mkexp ~loc:(_startpos__3_, _endpos) (Pexp_record(fields, exten))) ) -# 64898 "src/ocaml/preprocess/parser_raw.ml" +# 66624 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__1_ = _endpos__5_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos__1_ = _endpos__5_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1329 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc _1 ) -# 64908 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 3068 "src/ocaml/preprocess/parser_raw.mly" +# 66634 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 3079 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 64914 "src/ocaml/preprocess/parser_raw.ml" - in +# 66640 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -64946,52 +66673,54 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in - let _v : (Parsetree.expression) = let _1 = + let _v = let _1 = let _1 = let _1 = - let _2 = -# 3663 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let _2 = +# 3674 "src/ocaml/preprocess/parser_raw.mly" ( es ) -# 64957 "src/ocaml/preprocess/parser_raw.ml" - in - -# 3162 "src/ocaml/preprocess/parser_raw.mly" +# 66685 "src/ocaml/preprocess/parser_raw.ml" + in + +# 3173 "src/ocaml/preprocess/parser_raw.mly" ( Generic_array.Simple.Literal _2 ) -# 64962 "src/ocaml/preprocess/parser_raw.ml" +# 66690 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 3173 "src/ocaml/preprocess/parser_raw.mly" +# 3184 "src/ocaml/preprocess/parser_raw.mly" ( Generic_array.Expression.Simple _1 ) -# 64968 "src/ocaml/preprocess/parser_raw.ml" +# 66696 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 3262 "src/ocaml/preprocess/parser_raw.mly" +# 3273 "src/ocaml/preprocess/parser_raw.mly" ( Generic_array.Expression.to_desc "[|" "|]" Mutable _1 ) -# 64978 "src/ocaml/preprocess/parser_raw.ml" +# 66706 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__1_ = _endpos__3_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos__1_ = _endpos__3_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1329 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc _1 ) -# 64988 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 3068 "src/ocaml/preprocess/parser_raw.mly" +# 66716 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 3079 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 64994 "src/ocaml/preprocess/parser_raw.ml" - in +# 66722 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -65019,45 +66748,47 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in - let _v : (Parsetree.expression) = let _1 = + let _v = let _1 = let _1 = - let _1 = -# 3168 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let _1 = +# 3179 "src/ocaml/preprocess/parser_raw.mly" ( Generic_array.Simple.Literal [] ) -# 65029 "src/ocaml/preprocess/parser_raw.ml" - in - -# 3173 "src/ocaml/preprocess/parser_raw.mly" +# 66759 "src/ocaml/preprocess/parser_raw.ml" + in + +# 3184 "src/ocaml/preprocess/parser_raw.mly" ( Generic_array.Expression.Simple _1 ) -# 65034 "src/ocaml/preprocess/parser_raw.ml" +# 66764 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 3262 "src/ocaml/preprocess/parser_raw.mly" +# 3273 "src/ocaml/preprocess/parser_raw.mly" ( Generic_array.Expression.to_desc "[|" "|]" Mutable _1 ) -# 65044 "src/ocaml/preprocess/parser_raw.ml" +# 66774 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__1_ = _endpos__2_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos__1_ = _endpos__2_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1329 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc _1 ) -# 65054 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 3068 "src/ocaml/preprocess/parser_raw.mly" +# 66784 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 3079 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 65060 "src/ocaml/preprocess/parser_raw.ml" - in +# 66790 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -65106,67 +66837,69 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__5_ in - let _v : (Parsetree.expression) = let _1 = + let _v = let _1 = let _1 = - let _4 = -# 3663 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let _4 = +# 3674 "src/ocaml/preprocess/parser_raw.mly" ( es ) -# 65116 "src/ocaml/preprocess/parser_raw.ml" - in - let od = - let _1 = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 66848 "src/ocaml/preprocess/parser_raw.ml" + in + let od = + let _1 = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 65126 "src/ocaml/preprocess/parser_raw.ml" +# 66858 "src/ocaml/preprocess/parser_raw.ml" + + in + let _loc__1_ = (_startpos__1_, _endpos__1_) in - in - let _loc__1_ = (_startpos__1_, _endpos__1_) in - # 2065 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _loc__1_ in let me = Mod.ident ~loc _1 in Opn.mk ~loc me ) -# 65135 "src/ocaml/preprocess/parser_raw.ml" +# 66867 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__5_ in - in - let _endpos = _endpos__5_ in - -# 3175 "src/ocaml/preprocess/parser_raw.mly" +# 3186 "src/ocaml/preprocess/parser_raw.mly" ( Generic_array.Expression.Opened_literal(od, _startpos__3_, _endpos, _4) ) -# 65143 "src/ocaml/preprocess/parser_raw.ml" +# 66875 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 3262 "src/ocaml/preprocess/parser_raw.mly" +# 3273 "src/ocaml/preprocess/parser_raw.mly" ( Generic_array.Expression.to_desc "[|" "|]" Mutable _1 ) -# 65153 "src/ocaml/preprocess/parser_raw.ml" +# 66885 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__1_ = _endpos__5_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos__1_ = _endpos__5_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1329 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc _1 ) -# 65163 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 3068 "src/ocaml/preprocess/parser_raw.mly" +# 66895 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 3079 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 65169 "src/ocaml/preprocess/parser_raw.ml" - in +# 66901 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -65208,62 +66941,64 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in - let _v : (Parsetree.expression) = let _1 = + let _v = let _1 = let _1 = - let od = - let _1 = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let _1 = + let od = + let _1 = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 65223 "src/ocaml/preprocess/parser_raw.ml" +# 66957 "src/ocaml/preprocess/parser_raw.ml" + + in + let _loc__1_ = (_startpos__1_, _endpos__1_) in - in - let _loc__1_ = (_startpos__1_, _endpos__1_) in - # 2065 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _loc__1_ in let me = Mod.ident ~loc _1 in Opn.mk ~loc me ) -# 65232 "src/ocaml/preprocess/parser_raw.ml" +# 66966 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__4_ in - in - let _endpos = _endpos__4_ in - -# 3178 "src/ocaml/preprocess/parser_raw.mly" +# 3189 "src/ocaml/preprocess/parser_raw.mly" ( (* TODO: review the location of Pexp_array *) Generic_array.Expression.Opened_literal(od, _startpos__3_, _endpos, []) ) -# 65240 "src/ocaml/preprocess/parser_raw.ml" +# 66974 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 3262 "src/ocaml/preprocess/parser_raw.mly" +# 3273 "src/ocaml/preprocess/parser_raw.mly" ( Generic_array.Expression.to_desc "[|" "|]" Mutable _1 ) -# 65250 "src/ocaml/preprocess/parser_raw.ml" +# 66984 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__1_ = _endpos__4_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos__1_ = _endpos__4_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1329 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc _1 ) -# 65260 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 3068 "src/ocaml/preprocess/parser_raw.mly" +# 66994 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 3079 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 65266 "src/ocaml/preprocess/parser_raw.ml" - in +# 67000 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -65298,35 +67033,37 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in - let _v : (Parsetree.expression) = let _1 = + let _v = let _1 = - let _2 = -# 3663 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let _2 = +# 3674 "src/ocaml/preprocess/parser_raw.mly" ( es ) -# 65307 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc__3_ = (_startpos__3_, _endpos__3_) in - -# 3268 "src/ocaml/preprocess/parser_raw.mly" +# 67043 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc__3_ = (_startpos__3_, _endpos__3_) in + +# 3279 "src/ocaml/preprocess/parser_raw.mly" ( fst (mktailexp _loc__3_ _2) ) -# 65313 "src/ocaml/preprocess/parser_raw.ml" +# 67049 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__1_ = _endpos__3_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos__1_ = _endpos__3_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1329 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc _1 ) -# 65323 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 3068 "src/ocaml/preprocess/parser_raw.mly" +# 67059 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 3079 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 65329 "src/ocaml/preprocess/parser_raw.ml" - in +# 67065 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -65382,100 +67119,102 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in - let _v : (Parsetree.expression) = let _1 = + let _v = let _1 = - let _3 = - let (_startpos__1_, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined2) in - let _1 = + let _1 = + let _3 = + let (_startpos__1_, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined2) in let _1 = - let _3 = - let xs = -# 253 "" + let _1 = + let _3 = + let xs = +# 264 "" ( List.rev xs ) -# 65396 "src/ocaml/preprocess/parser_raw.ml" - in - +# 67134 "src/ocaml/preprocess/parser_raw.ml" + in + # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 65401 "src/ocaml/preprocess/parser_raw.ml" - - in - let _2 = - let _1 = _1_inlined1 in - let _1 = +# 67139 "src/ocaml/preprocess/parser_raw.ml" + + in + let _2 = + let _1 = _1_inlined1 in + let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 65409 "src/ocaml/preprocess/parser_raw.ml" - in - -# 2981 "src/ocaml/preprocess/parser_raw.mly" +# 67147 "src/ocaml/preprocess/parser_raw.ml" + in + +# 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 65414 "src/ocaml/preprocess/parser_raw.ml" +# 67152 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 3154 "src/ocaml/preprocess/parser_raw.mly" + ( { pcomp_body = _2; pcomp_clauses = _3 } ) +# 67158 "src/ocaml/preprocess/parser_raw.ml" in -# 3143 "src/ocaml/preprocess/parser_raw.mly" - ( { pcomp_body = _2; pcomp_clauses = _3 } ) -# 65420 "src/ocaml/preprocess/parser_raw.ml" +# 3159 "src/ocaml/preprocess/parser_raw.mly" + ( Pcomp_list_comprehension _1 ) +# 67164 "src/ocaml/preprocess/parser_raw.ml" in - -# 3148 "src/ocaml/preprocess/parser_raw.mly" - ( Pcomp_list_comprehension _1 ) -# 65426 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__4_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 3157 "src/ocaml/preprocess/parser_raw.mly" - ( mkexp ~loc:_sloc (Pexp_comprehension _1) ) -# 65436 "src/ocaml/preprocess/parser_raw.ml" - - in - let od = - let _1 = + let _endpos__1_ = _endpos__4_ in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in +# 3168 "src/ocaml/preprocess/parser_raw.mly" + ( mkexp ~loc:_sloc (Pexp_comprehension _1) ) +# 67174 "src/ocaml/preprocess/parser_raw.ml" + + in + let od = + let _1 = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 65447 "src/ocaml/preprocess/parser_raw.ml" +# 67185 "src/ocaml/preprocess/parser_raw.ml" + + in + let _loc__1_ = (_startpos__1_, _endpos__1_) in - in - let _loc__1_ = (_startpos__1_, _endpos__1_) in - # 2065 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _loc__1_ in let me = Mod.ident ~loc _1 in Opn.mk ~loc me ) -# 65456 "src/ocaml/preprocess/parser_raw.ml" +# 67194 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 3274 "src/ocaml/preprocess/parser_raw.mly" +# 3285 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_open(od, _3) ) -# 65462 "src/ocaml/preprocess/parser_raw.ml" +# 67200 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__1_ = _endpos__4_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos__1_ = _endpos__4_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1329 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc _1 ) -# 65472 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 3068 "src/ocaml/preprocess/parser_raw.mly" +# 67210 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 3079 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 65478 "src/ocaml/preprocess/parser_raw.ml" - in +# 67216 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -65552,68 +67291,69 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in - let _v : (Parsetree.expression) = let _1 = + let _v = let _1 = - let _3 = - let (_startpos__1_inlined1_, _startpos__1_, _1_inlined3, _1_inlined2) = (_startpos__1_inlined2_, _startpos__1_inlined1_, _1_inlined4, _1_inlined3) in - let _1 = + let _1 = + let _3 = + let (_startpos__1_inlined1_, _startpos__1_, _1_inlined3, _1_inlined2) = (_startpos__1_inlined2_, _startpos__1_inlined1_, _1_inlined4, _1_inlined3) in let _1 = - let _3 = - let xs = xs_inlined1 in - let xs = -# 253 "" + let _1 = + let _3 = + let xs = xs_inlined1 in + let xs = +# 264 "" ( List.rev xs ) -# 65567 "src/ocaml/preprocess/parser_raw.ml" - in - +# 67307 "src/ocaml/preprocess/parser_raw.ml" + in + # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 65572 "src/ocaml/preprocess/parser_raw.ml" - - in - let _2 = - let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in - let _1 = - let _3 = - let xs = - let xs = -# 253 "" +# 67312 "src/ocaml/preprocess/parser_raw.ml" + + in + let _2 = + let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in + let _1 = + let _3 = + let xs = + let xs = +# 264 "" ( List.rev xs ) -# 65583 "src/ocaml/preprocess/parser_raw.ml" - in - +# 67323 "src/ocaml/preprocess/parser_raw.ml" + in + # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 65588 "src/ocaml/preprocess/parser_raw.ml" +# 67328 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 3499 "src/ocaml/preprocess/parser_raw.mly" +# 3510 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 65594 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__3_ = _endpos_xs_ in - let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in +# 67334 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__3_ = _endpos_xs_ in let _2 = - let _1 = _1_inlined1 in + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in + let _2 = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 67345 "src/ocaml/preprocess/parser_raw.ml" + + in -# 5392 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 65605 "src/ocaml/preprocess/parser_raw.ml" +# 5416 "src/ocaml/preprocess/parser_raw.mly" + ( _1, _2 ) +# 67351 "src/ocaml/preprocess/parser_raw.ml" in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 5405 "src/ocaml/preprocess/parser_raw.mly" - ( _1, _2 ) -# 65611 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 2718 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in @@ -65627,78 +67367,79 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 65631 "src/ocaml/preprocess/parser_raw.ml" +# 67371 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 2985 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 67377 "src/ocaml/preprocess/parser_raw.ml" in -# 2981 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 65637 "src/ocaml/preprocess/parser_raw.ml" +# 3154 "src/ocaml/preprocess/parser_raw.mly" + ( { pcomp_body = _2; pcomp_clauses = _3 } ) +# 67383 "src/ocaml/preprocess/parser_raw.ml" in -# 3143 "src/ocaml/preprocess/parser_raw.mly" - ( { pcomp_body = _2; pcomp_clauses = _3 } ) -# 65643 "src/ocaml/preprocess/parser_raw.ml" +# 3159 "src/ocaml/preprocess/parser_raw.mly" + ( Pcomp_list_comprehension _1 ) +# 67389 "src/ocaml/preprocess/parser_raw.ml" in - -# 3148 "src/ocaml/preprocess/parser_raw.mly" - ( Pcomp_list_comprehension _1 ) -# 65649 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__4_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 3157 "src/ocaml/preprocess/parser_raw.mly" - ( mkexp ~loc:_sloc (Pexp_comprehension _1) ) -# 65659 "src/ocaml/preprocess/parser_raw.ml" - - in - let od = - let _1 = + let _endpos__1_ = _endpos__4_ in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in +# 3168 "src/ocaml/preprocess/parser_raw.mly" + ( mkexp ~loc:_sloc (Pexp_comprehension _1) ) +# 67399 "src/ocaml/preprocess/parser_raw.ml" + + in + let od = + let _1 = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 65670 "src/ocaml/preprocess/parser_raw.ml" +# 67410 "src/ocaml/preprocess/parser_raw.ml" + + in + let _loc__1_ = (_startpos__1_, _endpos__1_) in - in - let _loc__1_ = (_startpos__1_, _endpos__1_) in - # 2065 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _loc__1_ in let me = Mod.ident ~loc _1 in Opn.mk ~loc me ) -# 65679 "src/ocaml/preprocess/parser_raw.ml" +# 67419 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 3274 "src/ocaml/preprocess/parser_raw.mly" +# 3285 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_open(od, _3) ) -# 65685 "src/ocaml/preprocess/parser_raw.ml" +# 67425 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__1_ = _endpos__4_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos__1_ = _endpos__4_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1329 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc _1 ) -# 65695 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 3068 "src/ocaml/preprocess/parser_raw.mly" +# 67435 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 3079 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 65701 "src/ocaml/preprocess/parser_raw.ml" - in +# 67441 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -65754,100 +67495,102 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in - let _v : (Parsetree.expression) = let _1 = + let _v = let _1 = - let _3 = - let (_startpos__1_, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined2) in - let _1 = + let _1 = + let _3 = + let (_startpos__1_, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined2) in let _1 = - let _3 = - let xs = -# 253 "" + let _1 = + let _3 = + let xs = +# 264 "" ( List.rev xs ) -# 65768 "src/ocaml/preprocess/parser_raw.ml" - in - +# 67510 "src/ocaml/preprocess/parser_raw.ml" + in + # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 65773 "src/ocaml/preprocess/parser_raw.ml" - - in - let _2 = - let _1 = _1_inlined1 in - let _1 = +# 67515 "src/ocaml/preprocess/parser_raw.ml" + + in + let _2 = + let _1 = _1_inlined1 in + let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 65781 "src/ocaml/preprocess/parser_raw.ml" - in - -# 2981 "src/ocaml/preprocess/parser_raw.mly" +# 67523 "src/ocaml/preprocess/parser_raw.ml" + in + +# 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 65786 "src/ocaml/preprocess/parser_raw.ml" +# 67528 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 3154 "src/ocaml/preprocess/parser_raw.mly" + ( { pcomp_body = _2; pcomp_clauses = _3 } ) +# 67534 "src/ocaml/preprocess/parser_raw.ml" in -# 3143 "src/ocaml/preprocess/parser_raw.mly" - ( { pcomp_body = _2; pcomp_clauses = _3 } ) -# 65792 "src/ocaml/preprocess/parser_raw.ml" +# 3161 "src/ocaml/preprocess/parser_raw.mly" + ( Pcomp_array_comprehension (Mutable, _1) ) +# 67540 "src/ocaml/preprocess/parser_raw.ml" in - -# 3150 "src/ocaml/preprocess/parser_raw.mly" - ( Pcomp_array_comprehension (Mutable, _1) ) -# 65798 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__4_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 3157 "src/ocaml/preprocess/parser_raw.mly" - ( mkexp ~loc:_sloc (Pexp_comprehension _1) ) -# 65808 "src/ocaml/preprocess/parser_raw.ml" - - in - let od = - let _1 = + let _endpos__1_ = _endpos__4_ in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in +# 3168 "src/ocaml/preprocess/parser_raw.mly" + ( mkexp ~loc:_sloc (Pexp_comprehension _1) ) +# 67550 "src/ocaml/preprocess/parser_raw.ml" + + in + let od = + let _1 = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 65819 "src/ocaml/preprocess/parser_raw.ml" +# 67561 "src/ocaml/preprocess/parser_raw.ml" + + in + let _loc__1_ = (_startpos__1_, _endpos__1_) in - in - let _loc__1_ = (_startpos__1_, _endpos__1_) in - # 2065 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _loc__1_ in let me = Mod.ident ~loc _1 in Opn.mk ~loc me ) -# 65828 "src/ocaml/preprocess/parser_raw.ml" +# 67570 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 3274 "src/ocaml/preprocess/parser_raw.mly" +# 3285 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_open(od, _3) ) -# 65834 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__4_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 67576 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__1_ = _endpos__4_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1329 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc _1 ) -# 65844 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 3068 "src/ocaml/preprocess/parser_raw.mly" +# 67586 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 3079 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 65850 "src/ocaml/preprocess/parser_raw.ml" - in +# 67592 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -65924,68 +67667,69 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in - let _v : (Parsetree.expression) = let _1 = + let _v = let _1 = - let _3 = - let (_startpos__1_inlined1_, _startpos__1_, _1_inlined3, _1_inlined2) = (_startpos__1_inlined2_, _startpos__1_inlined1_, _1_inlined4, _1_inlined3) in - let _1 = + let _1 = + let _3 = + let (_startpos__1_inlined1_, _startpos__1_, _1_inlined3, _1_inlined2) = (_startpos__1_inlined2_, _startpos__1_inlined1_, _1_inlined4, _1_inlined3) in let _1 = - let _3 = - let xs = xs_inlined1 in - let xs = -# 253 "" + let _1 = + let _3 = + let xs = xs_inlined1 in + let xs = +# 264 "" ( List.rev xs ) -# 65939 "src/ocaml/preprocess/parser_raw.ml" - in - +# 67683 "src/ocaml/preprocess/parser_raw.ml" + in + # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 65944 "src/ocaml/preprocess/parser_raw.ml" - - in - let _2 = - let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in - let _1 = - let _3 = - let xs = - let xs = -# 253 "" +# 67688 "src/ocaml/preprocess/parser_raw.ml" + + in + let _2 = + let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in + let _1 = + let _3 = + let xs = + let xs = +# 264 "" ( List.rev xs ) -# 65955 "src/ocaml/preprocess/parser_raw.ml" - in - +# 67699 "src/ocaml/preprocess/parser_raw.ml" + in + # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 65960 "src/ocaml/preprocess/parser_raw.ml" +# 67704 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 3499 "src/ocaml/preprocess/parser_raw.mly" +# 3510 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 65966 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__3_ = _endpos_xs_ in - let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in +# 67710 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__3_ = _endpos_xs_ in let _2 = - let _1 = _1_inlined1 in + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in + let _2 = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 67721 "src/ocaml/preprocess/parser_raw.ml" + + in -# 5392 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 65977 "src/ocaml/preprocess/parser_raw.ml" +# 5416 "src/ocaml/preprocess/parser_raw.mly" + ( _1, _2 ) +# 67727 "src/ocaml/preprocess/parser_raw.ml" in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 5405 "src/ocaml/preprocess/parser_raw.mly" - ( _1, _2 ) -# 65983 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 2718 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in @@ -65999,78 +67743,79 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 66003 "src/ocaml/preprocess/parser_raw.ml" +# 67747 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 2985 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 67753 "src/ocaml/preprocess/parser_raw.ml" in -# 2981 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 66009 "src/ocaml/preprocess/parser_raw.ml" +# 3154 "src/ocaml/preprocess/parser_raw.mly" + ( { pcomp_body = _2; pcomp_clauses = _3 } ) +# 67759 "src/ocaml/preprocess/parser_raw.ml" in -# 3143 "src/ocaml/preprocess/parser_raw.mly" - ( { pcomp_body = _2; pcomp_clauses = _3 } ) -# 66015 "src/ocaml/preprocess/parser_raw.ml" +# 3161 "src/ocaml/preprocess/parser_raw.mly" + ( Pcomp_array_comprehension (Mutable, _1) ) +# 67765 "src/ocaml/preprocess/parser_raw.ml" in - -# 3150 "src/ocaml/preprocess/parser_raw.mly" - ( Pcomp_array_comprehension (Mutable, _1) ) -# 66021 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__4_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 3157 "src/ocaml/preprocess/parser_raw.mly" - ( mkexp ~loc:_sloc (Pexp_comprehension _1) ) -# 66031 "src/ocaml/preprocess/parser_raw.ml" - - in - let od = - let _1 = + let _endpos__1_ = _endpos__4_ in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in +# 3168 "src/ocaml/preprocess/parser_raw.mly" + ( mkexp ~loc:_sloc (Pexp_comprehension _1) ) +# 67775 "src/ocaml/preprocess/parser_raw.ml" + + in + let od = + let _1 = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 66042 "src/ocaml/preprocess/parser_raw.ml" +# 67786 "src/ocaml/preprocess/parser_raw.ml" + + in + let _loc__1_ = (_startpos__1_, _endpos__1_) in - in - let _loc__1_ = (_startpos__1_, _endpos__1_) in - # 2065 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _loc__1_ in let me = Mod.ident ~loc _1 in Opn.mk ~loc me ) -# 66051 "src/ocaml/preprocess/parser_raw.ml" +# 67795 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 3274 "src/ocaml/preprocess/parser_raw.mly" +# 3285 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_open(od, _3) ) -# 66057 "src/ocaml/preprocess/parser_raw.ml" +# 67801 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__1_ = _endpos__4_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos__1_ = _endpos__4_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1329 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc _1 ) -# 66067 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 3068 "src/ocaml/preprocess/parser_raw.mly" +# 67811 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 3079 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 66073 "src/ocaml/preprocess/parser_raw.ml" - in +# 67817 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -66126,100 +67871,102 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in - let _v : (Parsetree.expression) = let _1 = + let _v = let _1 = - let _3 = - let (_startpos__1_, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined2) in - let _1 = + let _1 = + let _3 = + let (_startpos__1_, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined2) in let _1 = - let _3 = - let xs = -# 253 "" + let _1 = + let _3 = + let xs = +# 264 "" ( List.rev xs ) -# 66140 "src/ocaml/preprocess/parser_raw.ml" - in - +# 67886 "src/ocaml/preprocess/parser_raw.ml" + in + # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 66145 "src/ocaml/preprocess/parser_raw.ml" - - in - let _2 = - let _1 = _1_inlined1 in - let _1 = +# 67891 "src/ocaml/preprocess/parser_raw.ml" + + in + let _2 = + let _1 = _1_inlined1 in + let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 66153 "src/ocaml/preprocess/parser_raw.ml" - in - -# 2981 "src/ocaml/preprocess/parser_raw.mly" +# 67899 "src/ocaml/preprocess/parser_raw.ml" + in + +# 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 66158 "src/ocaml/preprocess/parser_raw.ml" +# 67904 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 3154 "src/ocaml/preprocess/parser_raw.mly" + ( { pcomp_body = _2; pcomp_clauses = _3 } ) +# 67910 "src/ocaml/preprocess/parser_raw.ml" in -# 3143 "src/ocaml/preprocess/parser_raw.mly" - ( { pcomp_body = _2; pcomp_clauses = _3 } ) -# 66164 "src/ocaml/preprocess/parser_raw.ml" +# 3163 "src/ocaml/preprocess/parser_raw.mly" + ( Pcomp_array_comprehension (Immutable, _1) ) +# 67916 "src/ocaml/preprocess/parser_raw.ml" in - -# 3152 "src/ocaml/preprocess/parser_raw.mly" - ( Pcomp_array_comprehension (Immutable, _1) ) -# 66170 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__4_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 3157 "src/ocaml/preprocess/parser_raw.mly" - ( mkexp ~loc:_sloc (Pexp_comprehension _1) ) -# 66180 "src/ocaml/preprocess/parser_raw.ml" - - in - let od = - let _1 = + let _endpos__1_ = _endpos__4_ in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in +# 3168 "src/ocaml/preprocess/parser_raw.mly" + ( mkexp ~loc:_sloc (Pexp_comprehension _1) ) +# 67926 "src/ocaml/preprocess/parser_raw.ml" + + in + let od = + let _1 = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 66191 "src/ocaml/preprocess/parser_raw.ml" +# 67937 "src/ocaml/preprocess/parser_raw.ml" + + in + let _loc__1_ = (_startpos__1_, _endpos__1_) in - in - let _loc__1_ = (_startpos__1_, _endpos__1_) in - # 2065 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _loc__1_ in let me = Mod.ident ~loc _1 in Opn.mk ~loc me ) -# 66200 "src/ocaml/preprocess/parser_raw.ml" +# 67946 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 3274 "src/ocaml/preprocess/parser_raw.mly" +# 3285 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_open(od, _3) ) -# 66206 "src/ocaml/preprocess/parser_raw.ml" +# 67952 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__1_ = _endpos__4_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos__1_ = _endpos__4_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1329 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc _1 ) -# 66216 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 3068 "src/ocaml/preprocess/parser_raw.mly" +# 67962 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 3079 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 66222 "src/ocaml/preprocess/parser_raw.ml" - in +# 67968 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -66296,68 +68043,69 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in - let _v : (Parsetree.expression) = let _1 = + let _v = let _1 = - let _3 = - let (_startpos__1_inlined1_, _startpos__1_, _1_inlined3, _1_inlined2) = (_startpos__1_inlined2_, _startpos__1_inlined1_, _1_inlined4, _1_inlined3) in - let _1 = + let _1 = + let _3 = + let (_startpos__1_inlined1_, _startpos__1_, _1_inlined3, _1_inlined2) = (_startpos__1_inlined2_, _startpos__1_inlined1_, _1_inlined4, _1_inlined3) in let _1 = - let _3 = - let xs = xs_inlined1 in - let xs = -# 253 "" + let _1 = + let _3 = + let xs = xs_inlined1 in + let xs = +# 264 "" ( List.rev xs ) -# 66311 "src/ocaml/preprocess/parser_raw.ml" - in - +# 68059 "src/ocaml/preprocess/parser_raw.ml" + in + # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 66316 "src/ocaml/preprocess/parser_raw.ml" - - in - let _2 = - let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in - let _1 = - let _3 = - let xs = - let xs = -# 253 "" +# 68064 "src/ocaml/preprocess/parser_raw.ml" + + in + let _2 = + let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in + let _1 = + let _3 = + let xs = + let xs = +# 264 "" ( List.rev xs ) -# 66327 "src/ocaml/preprocess/parser_raw.ml" - in - +# 68075 "src/ocaml/preprocess/parser_raw.ml" + in + # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 66332 "src/ocaml/preprocess/parser_raw.ml" +# 68080 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 3499 "src/ocaml/preprocess/parser_raw.mly" +# 3510 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 66338 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__3_ = _endpos_xs_ in - let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in +# 68086 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__3_ = _endpos_xs_ in let _2 = - let _1 = _1_inlined1 in + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in + let _2 = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 68097 "src/ocaml/preprocess/parser_raw.ml" + + in -# 5392 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 66349 "src/ocaml/preprocess/parser_raw.ml" +# 5416 "src/ocaml/preprocess/parser_raw.mly" + ( _1, _2 ) +# 68103 "src/ocaml/preprocess/parser_raw.ml" in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 5405 "src/ocaml/preprocess/parser_raw.mly" - ( _1, _2 ) -# 66355 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 2718 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in @@ -66371,78 +68119,79 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 66375 "src/ocaml/preprocess/parser_raw.ml" +# 68123 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 2985 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 68129 "src/ocaml/preprocess/parser_raw.ml" in -# 2981 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 66381 "src/ocaml/preprocess/parser_raw.ml" +# 3154 "src/ocaml/preprocess/parser_raw.mly" + ( { pcomp_body = _2; pcomp_clauses = _3 } ) +# 68135 "src/ocaml/preprocess/parser_raw.ml" in -# 3143 "src/ocaml/preprocess/parser_raw.mly" - ( { pcomp_body = _2; pcomp_clauses = _3 } ) -# 66387 "src/ocaml/preprocess/parser_raw.ml" +# 3163 "src/ocaml/preprocess/parser_raw.mly" + ( Pcomp_array_comprehension (Immutable, _1) ) +# 68141 "src/ocaml/preprocess/parser_raw.ml" in - -# 3152 "src/ocaml/preprocess/parser_raw.mly" - ( Pcomp_array_comprehension (Immutable, _1) ) -# 66393 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__4_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 3157 "src/ocaml/preprocess/parser_raw.mly" - ( mkexp ~loc:_sloc (Pexp_comprehension _1) ) -# 66403 "src/ocaml/preprocess/parser_raw.ml" - - in - let od = - let _1 = + let _endpos__1_ = _endpos__4_ in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in +# 3168 "src/ocaml/preprocess/parser_raw.mly" + ( mkexp ~loc:_sloc (Pexp_comprehension _1) ) +# 68151 "src/ocaml/preprocess/parser_raw.ml" + + in + let od = + let _1 = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 66414 "src/ocaml/preprocess/parser_raw.ml" +# 68162 "src/ocaml/preprocess/parser_raw.ml" + + in + let _loc__1_ = (_startpos__1_, _endpos__1_) in - in - let _loc__1_ = (_startpos__1_, _endpos__1_) in - # 2065 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _loc__1_ in let me = Mod.ident ~loc _1 in Opn.mk ~loc me ) -# 66423 "src/ocaml/preprocess/parser_raw.ml" +# 68171 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 3274 "src/ocaml/preprocess/parser_raw.mly" +# 3285 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_open(od, _3) ) -# 66429 "src/ocaml/preprocess/parser_raw.ml" +# 68177 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__1_ = _endpos__4_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos__1_ = _endpos__4_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1329 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc _1 ) -# 66439 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 3068 "src/ocaml/preprocess/parser_raw.mly" +# 68187 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 3079 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 66445 "src/ocaml/preprocess/parser_raw.ml" - in +# 68193 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -66491,60 +68240,62 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__5_ in - let _v : (Parsetree.expression) = let _1 = + let _v = let _1 = - let _4 = -# 3663 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let _4 = +# 3674 "src/ocaml/preprocess/parser_raw.mly" ( es ) -# 66500 "src/ocaml/preprocess/parser_raw.ml" - in - let od = - let _1 = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 68250 "src/ocaml/preprocess/parser_raw.ml" + in + let od = + let _1 = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 66510 "src/ocaml/preprocess/parser_raw.ml" +# 68260 "src/ocaml/preprocess/parser_raw.ml" + + in + let _loc__1_ = (_startpos__1_, _endpos__1_) in - in - let _loc__1_ = (_startpos__1_, _endpos__1_) in - # 2065 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _loc__1_ in let me = Mod.ident ~loc _1 in Opn.mk ~loc me ) -# 66519 "src/ocaml/preprocess/parser_raw.ml" +# 68269 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__5_ in + let _loc__5_ = (_startpos__5_, _endpos__5_) in - in - let _endpos = _endpos__5_ in - let _loc__5_ = (_startpos__5_, _endpos__5_) in - -# 3276 "src/ocaml/preprocess/parser_raw.mly" +# 3287 "src/ocaml/preprocess/parser_raw.mly" ( let list_exp = (* TODO: review the location of list_exp *) let tail_exp, _tail_loc = mktailexp _loc__5_ _4 in mkexp ~loc:(_startpos__3_, _endpos) tail_exp in Pexp_open(od, list_exp) ) -# 66531 "src/ocaml/preprocess/parser_raw.ml" +# 68281 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__1_ = _endpos__5_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos__1_ = _endpos__5_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1329 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc _1 ) -# 66541 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 3068 "src/ocaml/preprocess/parser_raw.mly" +# 68291 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 3079 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 66547 "src/ocaml/preprocess/parser_raw.ml" - in +# 68297 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -66586,68 +68337,70 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__2_inlined1_ in - let _v : (Parsetree.expression) = let _1 = + let _v = let _1 = - let _3 = - let (_endpos__2_, _startpos__1_) = (_endpos__2_inlined1_, _startpos__1_inlined1_) in - let _1 = -# 3281 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let _3 = + let (_endpos__2_, _startpos__1_) = (_endpos__2_inlined1_, _startpos__1_inlined1_) in + let _1 = +# 3292 "src/ocaml/preprocess/parser_raw.mly" (Lident "[]") -# 66597 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos__1_ = _endpos__2_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 1296 "src/ocaml/preprocess/parser_raw.mly" - ( mkrhs _1 _sloc ) -# 66606 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__3_, _startpos__3_) = (_endpos__2_inlined1_, _startpos__1_inlined1_) in - let od = - let _1 = +# 68349 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__2_ in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 66618 "src/ocaml/preprocess/parser_raw.ml" +# 68358 "src/ocaml/preprocess/parser_raw.ml" in - let _loc__1_ = (_startpos__1_, _endpos__1_) in - + let (_endpos__3_, _startpos__3_) = (_endpos__2_inlined1_, _startpos__1_inlined1_) in + let od = + let _1 = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 1296 "src/ocaml/preprocess/parser_raw.mly" + ( mkrhs _1 _sloc ) +# 68370 "src/ocaml/preprocess/parser_raw.ml" + + in + let _loc__1_ = (_startpos__1_, _endpos__1_) in + # 2065 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _loc__1_ in let me = Mod.ident ~loc _1 in Opn.mk ~loc me ) -# 66627 "src/ocaml/preprocess/parser_raw.ml" +# 68379 "src/ocaml/preprocess/parser_raw.ml" + + in + let _loc__3_ = (_startpos__3_, _endpos__3_) in - in - let _loc__3_ = (_startpos__3_, _endpos__3_) in - -# 3282 "src/ocaml/preprocess/parser_raw.mly" +# 3293 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_open(od, mkexp ~loc:_loc__3_ (Pexp_construct(_3, None))) ) -# 66634 "src/ocaml/preprocess/parser_raw.ml" +# 68386 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__1_ = _endpos__2_inlined1_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos__1_ = _endpos__2_inlined1_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1329 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc _1 ) -# 66644 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 3068 "src/ocaml/preprocess/parser_raw.mly" +# 68396 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 3079 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 66650 "src/ocaml/preprocess/parser_raw.ml" - in +# 68402 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -66731,85 +68484,87 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__9_ in - let _v : (Parsetree.expression) = let _1 = + let _v = let _1 = - let _8 = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined3_, _startpos__1_inlined3_, _1_inlined3) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 4925 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let _8 = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined3_, _startpos__1_inlined3_, _1_inlined3) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 4936 "src/ocaml/preprocess/parser_raw.mly" ( let (lid, cstrs, attrs) = package_type_of_module_type _1 in let descr = Ptyp_package (lid, cstrs) in mktyp ~loc:_sloc ~attrs descr ) -# 66747 "src/ocaml/preprocess/parser_raw.ml" - - in - let _5 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in +# 68501 "src/ocaml/preprocess/parser_raw.ml" -# 5392 "src/ocaml/preprocess/parser_raw.mly" + in + let _5 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in + let _2 = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 66757 "src/ocaml/preprocess/parser_raw.ml" +# 68511 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 5405 "src/ocaml/preprocess/parser_raw.mly" +# 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 66763 "src/ocaml/preprocess/parser_raw.ml" - - in - let od = - let _1 = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 68517 "src/ocaml/preprocess/parser_raw.ml" + in + let od = + let _1 = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 66774 "src/ocaml/preprocess/parser_raw.ml" +# 68528 "src/ocaml/preprocess/parser_raw.ml" + + in + let _loc__1_ = (_startpos__1_, _endpos__1_) in - in - let _loc__1_ = (_startpos__1_, _endpos__1_) in - # 2065 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _loc__1_ in let me = Mod.ident ~loc _1 in Opn.mk ~loc me ) -# 66783 "src/ocaml/preprocess/parser_raw.ml" +# 68537 "src/ocaml/preprocess/parser_raw.ml" + + in + let _startpos_od_ = _startpos__1_ in + let _endpos = _endpos__9_ in + let _symbolstartpos = _startpos_od_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _startpos_od_ = _startpos__1_ in - let _endpos = _endpos__9_ in - let _symbolstartpos = _startpos_od_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 3290 "src/ocaml/preprocess/parser_raw.mly" +# 3301 "src/ocaml/preprocess/parser_raw.mly" ( let modexp = mkexp_attrs ~loc:(_startpos__3_, _endpos) (Pexp_constraint (ghexp ~loc:_sloc (Pexp_pack _6), Some _8, [])) _5 in Pexp_open(od, modexp) ) -# 66796 "src/ocaml/preprocess/parser_raw.ml" +# 68550 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__1_ = _endpos__9_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos__1_ = _endpos__9_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1329 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc _1 ) -# 66806 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 3068 "src/ocaml/preprocess/parser_raw.mly" +# 68560 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 3079 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 66812 "src/ocaml/preprocess/parser_raw.ml" - in +# 68566 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -66844,41 +68599,43 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in - let _v : (Parsetree.expression) = let _1 = + let _v = let _1 = - let _2 = - let xs = -# 253 "" + let _1 = + let _2 = + let xs = +# 264 "" ( List.rev xs ) -# 66854 "src/ocaml/preprocess/parser_raw.ml" - in - -# 3622 "src/ocaml/preprocess/parser_raw.mly" +# 68610 "src/ocaml/preprocess/parser_raw.ml" + in + +# 3633 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 66859 "src/ocaml/preprocess/parser_raw.ml" +# 68615 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 3300 "src/ocaml/preprocess/parser_raw.mly" +# 3311 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_unboxed_tuple _2 ) -# 66865 "src/ocaml/preprocess/parser_raw.ml" +# 68621 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__1_ = _endpos__3_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos__1_ = _endpos__3_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1329 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc _1 ) -# 66875 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 3068 "src/ocaml/preprocess/parser_raw.mly" +# 68631 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 3079 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 66881 "src/ocaml/preprocess/parser_raw.ml" - in +# 68637 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -66913,39 +68670,41 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in - let _v : (Parsetree.expression) = let _1 = + let _v = let _1 = - let _2 = -# 3663 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let _2 = +# 3674 "src/ocaml/preprocess/parser_raw.mly" ( es ) -# 66922 "src/ocaml/preprocess/parser_raw.ml" - in - -# 3162 "src/ocaml/preprocess/parser_raw.mly" +# 68680 "src/ocaml/preprocess/parser_raw.ml" + in + +# 3173 "src/ocaml/preprocess/parser_raw.mly" ( Generic_array.Simple.Literal _2 ) -# 66927 "src/ocaml/preprocess/parser_raw.ml" +# 68685 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 3173 "src/ocaml/preprocess/parser_raw.mly" +# 3184 "src/ocaml/preprocess/parser_raw.mly" ( Generic_array.Expression.Simple _1 ) -# 66933 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__3_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 3073 "src/ocaml/preprocess/parser_raw.mly" +# 68691 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__1_ = _endpos__3_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + ( +# 3084 "src/ocaml/preprocess/parser_raw.mly" ( Generic_array.Expression.to_expression "[:" ":]" ~loc:_sloc Immutable _1 ) -# 66948 "src/ocaml/preprocess/parser_raw.ml" - in +# 68706 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -66973,32 +68732,34 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in - let _v : (Parsetree.expression) = let _1 = - let _1 = -# 3168 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _1 = + let _1 = +# 3179 "src/ocaml/preprocess/parser_raw.mly" ( Generic_array.Simple.Literal [] ) -# 66981 "src/ocaml/preprocess/parser_raw.ml" - in - -# 3173 "src/ocaml/preprocess/parser_raw.mly" +# 68741 "src/ocaml/preprocess/parser_raw.ml" + in + +# 3184 "src/ocaml/preprocess/parser_raw.mly" ( Generic_array.Expression.Simple _1 ) -# 66986 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__2_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 3073 "src/ocaml/preprocess/parser_raw.mly" +# 68746 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__1_ = _endpos__2_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + ( +# 3084 "src/ocaml/preprocess/parser_raw.mly" ( Generic_array.Expression.to_expression "[:" ":]" ~loc:_sloc Immutable _1 ) -# 67001 "src/ocaml/preprocess/parser_raw.ml" - in +# 68761 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -67047,54 +68808,56 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__5_ in - let _v : (Parsetree.expression) = let _1 = - let _4 = -# 3663 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _1 = + let _4 = +# 3674 "src/ocaml/preprocess/parser_raw.mly" ( es ) -# 67055 "src/ocaml/preprocess/parser_raw.ml" - in - let od = - let _1 = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 68817 "src/ocaml/preprocess/parser_raw.ml" + in + let od = + let _1 = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 67065 "src/ocaml/preprocess/parser_raw.ml" +# 68827 "src/ocaml/preprocess/parser_raw.ml" + + in + let _loc__1_ = (_startpos__1_, _endpos__1_) in - in - let _loc__1_ = (_startpos__1_, _endpos__1_) in - # 2065 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _loc__1_ in let me = Mod.ident ~loc _1 in Opn.mk ~loc me ) -# 67074 "src/ocaml/preprocess/parser_raw.ml" +# 68836 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__5_ in - in - let _endpos = _endpos__5_ in - -# 3175 "src/ocaml/preprocess/parser_raw.mly" +# 3186 "src/ocaml/preprocess/parser_raw.mly" ( Generic_array.Expression.Opened_literal(od, _startpos__3_, _endpos, _4) ) -# 67082 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 3073 "src/ocaml/preprocess/parser_raw.mly" +# 68844 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__1_ = _endpos__5_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + ( +# 3084 "src/ocaml/preprocess/parser_raw.mly" ( Generic_array.Expression.to_expression "[:" ":]" ~loc:_sloc Immutable _1 ) -# 67097 "src/ocaml/preprocess/parser_raw.ml" - in +# 68859 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -67136,49 +68899,51 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in - let _v : (Parsetree.expression) = let _1 = - let od = - let _1 = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let _v = + let _1 = + let od = + let _1 = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 67149 "src/ocaml/preprocess/parser_raw.ml" +# 68913 "src/ocaml/preprocess/parser_raw.ml" + + in + let _loc__1_ = (_startpos__1_, _endpos__1_) in - in - let _loc__1_ = (_startpos__1_, _endpos__1_) in - # 2065 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _loc__1_ in let me = Mod.ident ~loc _1 in Opn.mk ~loc me ) -# 67158 "src/ocaml/preprocess/parser_raw.ml" +# 68922 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__4_ in - in - let _endpos = _endpos__4_ in - -# 3178 "src/ocaml/preprocess/parser_raw.mly" +# 3189 "src/ocaml/preprocess/parser_raw.mly" ( (* TODO: review the location of Pexp_array *) Generic_array.Expression.Opened_literal(od, _startpos__3_, _endpos, []) ) -# 67166 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__4_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 3073 "src/ocaml/preprocess/parser_raw.mly" +# 68930 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__1_ = _endpos__4_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + ( +# 3084 "src/ocaml/preprocess/parser_raw.mly" ( Generic_array.Expression.to_expression "[:" ":]" ~loc:_sloc Immutable _1 ) -# 67181 "src/ocaml/preprocess/parser_raw.ml" - in +# 68945 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -67199,14 +68964,16 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v : (Parsetree.expression) = let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 3079 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + ( +# 3090 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (Pexp_constant _1) ) -# 67209 "src/ocaml/preprocess/parser_raw.ml" - in +# 68975 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -67248,61 +69015,63 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in - let _v : (Parsetree.expression) = let _1 = + let _v = let _1 = let _1 = - let _3 = - let xs = -# 253 "" + let _1 = + let _3 = + let xs = +# 264 "" ( List.rev xs ) -# 67259 "src/ocaml/preprocess/parser_raw.ml" - in - +# 69027 "src/ocaml/preprocess/parser_raw.ml" + in + # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 67264 "src/ocaml/preprocess/parser_raw.ml" - - in - let _2 = - let _1 = _1_inlined1 in - let _1 = +# 69032 "src/ocaml/preprocess/parser_raw.ml" + + in + let _2 = + let _1 = _1_inlined1 in + let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 67272 "src/ocaml/preprocess/parser_raw.ml" - in - -# 2981 "src/ocaml/preprocess/parser_raw.mly" +# 69040 "src/ocaml/preprocess/parser_raw.ml" + in + +# 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 67277 "src/ocaml/preprocess/parser_raw.ml" +# 69045 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 3154 "src/ocaml/preprocess/parser_raw.mly" + ( { pcomp_body = _2; pcomp_clauses = _3 } ) +# 69051 "src/ocaml/preprocess/parser_raw.ml" in -# 3143 "src/ocaml/preprocess/parser_raw.mly" - ( { pcomp_body = _2; pcomp_clauses = _3 } ) -# 67283 "src/ocaml/preprocess/parser_raw.ml" +# 3159 "src/ocaml/preprocess/parser_raw.mly" + ( Pcomp_list_comprehension _1 ) +# 69057 "src/ocaml/preprocess/parser_raw.ml" in + let _endpos__1_ = _endpos__4_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 3148 "src/ocaml/preprocess/parser_raw.mly" - ( Pcomp_list_comprehension _1 ) -# 67289 "src/ocaml/preprocess/parser_raw.ml" +# 3168 "src/ocaml/preprocess/parser_raw.mly" + ( mkexp ~loc:_sloc (Pexp_comprehension _1) ) +# 69067 "src/ocaml/preprocess/parser_raw.ml" in - let _endpos__1_ = _endpos__4_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 3157 "src/ocaml/preprocess/parser_raw.mly" - ( mkexp ~loc:_sloc (Pexp_comprehension _1) ) -# 67299 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 3080 "src/ocaml/preprocess/parser_raw.mly" + ( +# 3091 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 67305 "src/ocaml/preprocess/parser_raw.ml" - in +# 69073 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -67365,65 +69134,66 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in - let _v : (Parsetree.expression) = let _1 = + let _v = let _1 = let _1 = - let _3 = - let xs = xs_inlined1 in - let xs = -# 253 "" + let _1 = + let _3 = + let xs = xs_inlined1 in + let xs = +# 264 "" ( List.rev xs ) -# 67377 "src/ocaml/preprocess/parser_raw.ml" - in - +# 69147 "src/ocaml/preprocess/parser_raw.ml" + in + # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 67382 "src/ocaml/preprocess/parser_raw.ml" - - in - let _2 = - let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in - let _1 = - let _3 = - let xs = - let xs = -# 253 "" +# 69152 "src/ocaml/preprocess/parser_raw.ml" + + in + let _2 = + let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in + let _1 = + let _3 = + let xs = + let xs = +# 264 "" ( List.rev xs ) -# 67393 "src/ocaml/preprocess/parser_raw.ml" - in - +# 69163 "src/ocaml/preprocess/parser_raw.ml" + in + # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 67398 "src/ocaml/preprocess/parser_raw.ml" +# 69168 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 3510 "src/ocaml/preprocess/parser_raw.mly" + ( xs ) +# 69174 "src/ocaml/preprocess/parser_raw.ml" in - -# 3499 "src/ocaml/preprocess/parser_raw.mly" - ( xs ) -# 67404 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__3_ = _endpos_xs_ in - let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in + let _endpos__3_ = _endpos_xs_ in let _2 = - let _1 = _1_inlined1 in - -# 5392 "src/ocaml/preprocess/parser_raw.mly" + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in + let _2 = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 67415 "src/ocaml/preprocess/parser_raw.ml" +# 69185 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 5405 "src/ocaml/preprocess/parser_raw.mly" +# 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 67421 "src/ocaml/preprocess/parser_raw.ml" +# 69191 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 2718 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in @@ -67437,42 +69207,43 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 67441 "src/ocaml/preprocess/parser_raw.ml" +# 69211 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 2985 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 69217 "src/ocaml/preprocess/parser_raw.ml" in -# 2981 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 67447 "src/ocaml/preprocess/parser_raw.ml" +# 3154 "src/ocaml/preprocess/parser_raw.mly" + ( { pcomp_body = _2; pcomp_clauses = _3 } ) +# 69223 "src/ocaml/preprocess/parser_raw.ml" in -# 3143 "src/ocaml/preprocess/parser_raw.mly" - ( { pcomp_body = _2; pcomp_clauses = _3 } ) -# 67453 "src/ocaml/preprocess/parser_raw.ml" +# 3159 "src/ocaml/preprocess/parser_raw.mly" + ( Pcomp_list_comprehension _1 ) +# 69229 "src/ocaml/preprocess/parser_raw.ml" in + let _endpos__1_ = _endpos__4_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 3148 "src/ocaml/preprocess/parser_raw.mly" - ( Pcomp_list_comprehension _1 ) -# 67459 "src/ocaml/preprocess/parser_raw.ml" +# 3168 "src/ocaml/preprocess/parser_raw.mly" + ( mkexp ~loc:_sloc (Pexp_comprehension _1) ) +# 69239 "src/ocaml/preprocess/parser_raw.ml" in - let _endpos__1_ = _endpos__4_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 3157 "src/ocaml/preprocess/parser_raw.mly" - ( mkexp ~loc:_sloc (Pexp_comprehension _1) ) -# 67469 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 3080 "src/ocaml/preprocess/parser_raw.mly" + ( +# 3091 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 67475 "src/ocaml/preprocess/parser_raw.ml" - in +# 69245 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -67514,61 +69285,63 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in - let _v : (Parsetree.expression) = let _1 = + let _v = let _1 = let _1 = - let _3 = - let xs = -# 253 "" + let _1 = + let _3 = + let xs = +# 264 "" ( List.rev xs ) -# 67525 "src/ocaml/preprocess/parser_raw.ml" - in - +# 69297 "src/ocaml/preprocess/parser_raw.ml" + in + # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 67530 "src/ocaml/preprocess/parser_raw.ml" - - in - let _2 = - let _1 = _1_inlined1 in - let _1 = +# 69302 "src/ocaml/preprocess/parser_raw.ml" + + in + let _2 = + let _1 = _1_inlined1 in + let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 67538 "src/ocaml/preprocess/parser_raw.ml" - in - -# 2981 "src/ocaml/preprocess/parser_raw.mly" +# 69310 "src/ocaml/preprocess/parser_raw.ml" + in + +# 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 67543 "src/ocaml/preprocess/parser_raw.ml" +# 69315 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 3154 "src/ocaml/preprocess/parser_raw.mly" + ( { pcomp_body = _2; pcomp_clauses = _3 } ) +# 69321 "src/ocaml/preprocess/parser_raw.ml" in -# 3143 "src/ocaml/preprocess/parser_raw.mly" - ( { pcomp_body = _2; pcomp_clauses = _3 } ) -# 67549 "src/ocaml/preprocess/parser_raw.ml" +# 3161 "src/ocaml/preprocess/parser_raw.mly" + ( Pcomp_array_comprehension (Mutable, _1) ) +# 69327 "src/ocaml/preprocess/parser_raw.ml" in + let _endpos__1_ = _endpos__4_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 3150 "src/ocaml/preprocess/parser_raw.mly" - ( Pcomp_array_comprehension (Mutable, _1) ) -# 67555 "src/ocaml/preprocess/parser_raw.ml" +# 3168 "src/ocaml/preprocess/parser_raw.mly" + ( mkexp ~loc:_sloc (Pexp_comprehension _1) ) +# 69337 "src/ocaml/preprocess/parser_raw.ml" in - let _endpos__1_ = _endpos__4_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 3157 "src/ocaml/preprocess/parser_raw.mly" - ( mkexp ~loc:_sloc (Pexp_comprehension _1) ) -# 67565 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 3080 "src/ocaml/preprocess/parser_raw.mly" + ( +# 3091 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 67571 "src/ocaml/preprocess/parser_raw.ml" - in +# 69343 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -67631,65 +69404,66 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in - let _v : (Parsetree.expression) = let _1 = + let _v = let _1 = let _1 = - let _3 = - let xs = xs_inlined1 in - let xs = -# 253 "" + let _1 = + let _3 = + let xs = xs_inlined1 in + let xs = +# 264 "" ( List.rev xs ) -# 67643 "src/ocaml/preprocess/parser_raw.ml" - in - +# 69417 "src/ocaml/preprocess/parser_raw.ml" + in + # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 67648 "src/ocaml/preprocess/parser_raw.ml" - - in - let _2 = - let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in - let _1 = - let _3 = - let xs = - let xs = -# 253 "" +# 69422 "src/ocaml/preprocess/parser_raw.ml" + + in + let _2 = + let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in + let _1 = + let _3 = + let xs = + let xs = +# 264 "" ( List.rev xs ) -# 67659 "src/ocaml/preprocess/parser_raw.ml" - in - +# 69433 "src/ocaml/preprocess/parser_raw.ml" + in + # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 67664 "src/ocaml/preprocess/parser_raw.ml" +# 69438 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 3499 "src/ocaml/preprocess/parser_raw.mly" +# 3510 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 67670 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__3_ = _endpos_xs_ in - let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in +# 69444 "src/ocaml/preprocess/parser_raw.ml" -# 5392 "src/ocaml/preprocess/parser_raw.mly" + in + let _endpos__3_ = _endpos_xs_ in + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in + let _2 = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 67681 "src/ocaml/preprocess/parser_raw.ml" +# 69455 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 5405 "src/ocaml/preprocess/parser_raw.mly" +# 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 67687 "src/ocaml/preprocess/parser_raw.ml" +# 69461 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 2718 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in @@ -67703,42 +69477,43 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 67707 "src/ocaml/preprocess/parser_raw.ml" +# 69481 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 2985 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 69487 "src/ocaml/preprocess/parser_raw.ml" in -# 2981 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 67713 "src/ocaml/preprocess/parser_raw.ml" +# 3154 "src/ocaml/preprocess/parser_raw.mly" + ( { pcomp_body = _2; pcomp_clauses = _3 } ) +# 69493 "src/ocaml/preprocess/parser_raw.ml" in -# 3143 "src/ocaml/preprocess/parser_raw.mly" - ( { pcomp_body = _2; pcomp_clauses = _3 } ) -# 67719 "src/ocaml/preprocess/parser_raw.ml" +# 3161 "src/ocaml/preprocess/parser_raw.mly" + ( Pcomp_array_comprehension (Mutable, _1) ) +# 69499 "src/ocaml/preprocess/parser_raw.ml" in + let _endpos__1_ = _endpos__4_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 3150 "src/ocaml/preprocess/parser_raw.mly" - ( Pcomp_array_comprehension (Mutable, _1) ) -# 67725 "src/ocaml/preprocess/parser_raw.ml" +# 3168 "src/ocaml/preprocess/parser_raw.mly" + ( mkexp ~loc:_sloc (Pexp_comprehension _1) ) +# 69509 "src/ocaml/preprocess/parser_raw.ml" in - let _endpos__1_ = _endpos__4_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 3157 "src/ocaml/preprocess/parser_raw.mly" - ( mkexp ~loc:_sloc (Pexp_comprehension _1) ) -# 67735 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 3080 "src/ocaml/preprocess/parser_raw.mly" + ( +# 3091 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 67741 "src/ocaml/preprocess/parser_raw.ml" - in +# 69515 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -67780,61 +69555,63 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in - let _v : (Parsetree.expression) = let _1 = + let _v = let _1 = let _1 = - let _3 = - let xs = -# 253 "" + let _1 = + let _3 = + let xs = +# 264 "" ( List.rev xs ) -# 67791 "src/ocaml/preprocess/parser_raw.ml" - in - +# 69567 "src/ocaml/preprocess/parser_raw.ml" + in + # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 67796 "src/ocaml/preprocess/parser_raw.ml" - - in - let _2 = - let _1 = _1_inlined1 in - let _1 = +# 69572 "src/ocaml/preprocess/parser_raw.ml" + + in + let _2 = + let _1 = _1_inlined1 in + let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 67804 "src/ocaml/preprocess/parser_raw.ml" - in - -# 2981 "src/ocaml/preprocess/parser_raw.mly" +# 69580 "src/ocaml/preprocess/parser_raw.ml" + in + +# 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 67809 "src/ocaml/preprocess/parser_raw.ml" +# 69585 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 3154 "src/ocaml/preprocess/parser_raw.mly" + ( { pcomp_body = _2; pcomp_clauses = _3 } ) +# 69591 "src/ocaml/preprocess/parser_raw.ml" in -# 3143 "src/ocaml/preprocess/parser_raw.mly" - ( { pcomp_body = _2; pcomp_clauses = _3 } ) -# 67815 "src/ocaml/preprocess/parser_raw.ml" +# 3163 "src/ocaml/preprocess/parser_raw.mly" + ( Pcomp_array_comprehension (Immutable, _1) ) +# 69597 "src/ocaml/preprocess/parser_raw.ml" in + let _endpos__1_ = _endpos__4_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 3152 "src/ocaml/preprocess/parser_raw.mly" - ( Pcomp_array_comprehension (Immutable, _1) ) -# 67821 "src/ocaml/preprocess/parser_raw.ml" +# 3168 "src/ocaml/preprocess/parser_raw.mly" + ( mkexp ~loc:_sloc (Pexp_comprehension _1) ) +# 69607 "src/ocaml/preprocess/parser_raw.ml" in - let _endpos__1_ = _endpos__4_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 3157 "src/ocaml/preprocess/parser_raw.mly" - ( mkexp ~loc:_sloc (Pexp_comprehension _1) ) -# 67831 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 3080 "src/ocaml/preprocess/parser_raw.mly" + ( +# 3091 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 67837 "src/ocaml/preprocess/parser_raw.ml" - in +# 69613 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -67897,65 +69674,66 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in - let _v : (Parsetree.expression) = let _1 = + let _v = let _1 = let _1 = - let _3 = - let xs = xs_inlined1 in - let xs = -# 253 "" + let _1 = + let _3 = + let xs = xs_inlined1 in + let xs = +# 264 "" ( List.rev xs ) -# 67909 "src/ocaml/preprocess/parser_raw.ml" - in - +# 69687 "src/ocaml/preprocess/parser_raw.ml" + in + # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 67914 "src/ocaml/preprocess/parser_raw.ml" - - in - let _2 = - let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in - let _1 = - let _3 = - let xs = - let xs = -# 253 "" +# 69692 "src/ocaml/preprocess/parser_raw.ml" + + in + let _2 = + let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in + let _1 = + let _3 = + let xs = + let xs = +# 264 "" ( List.rev xs ) -# 67925 "src/ocaml/preprocess/parser_raw.ml" - in - +# 69703 "src/ocaml/preprocess/parser_raw.ml" + in + # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 67930 "src/ocaml/preprocess/parser_raw.ml" +# 69708 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 3499 "src/ocaml/preprocess/parser_raw.mly" +# 3510 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 67936 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__3_ = _endpos_xs_ in - let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in +# 69714 "src/ocaml/preprocess/parser_raw.ml" -# 5392 "src/ocaml/preprocess/parser_raw.mly" + in + let _endpos__3_ = _endpos_xs_ in + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in + let _2 = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 67947 "src/ocaml/preprocess/parser_raw.ml" +# 69725 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 5405 "src/ocaml/preprocess/parser_raw.mly" +# 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 67953 "src/ocaml/preprocess/parser_raw.ml" +# 69731 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 2718 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in @@ -67969,42 +69747,43 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 67973 "src/ocaml/preprocess/parser_raw.ml" +# 69751 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 2985 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 69757 "src/ocaml/preprocess/parser_raw.ml" in -# 2981 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 67979 "src/ocaml/preprocess/parser_raw.ml" +# 3154 "src/ocaml/preprocess/parser_raw.mly" + ( { pcomp_body = _2; pcomp_clauses = _3 } ) +# 69763 "src/ocaml/preprocess/parser_raw.ml" in -# 3143 "src/ocaml/preprocess/parser_raw.mly" - ( { pcomp_body = _2; pcomp_clauses = _3 } ) -# 67985 "src/ocaml/preprocess/parser_raw.ml" +# 3163 "src/ocaml/preprocess/parser_raw.mly" + ( Pcomp_array_comprehension (Immutable, _1) ) +# 69769 "src/ocaml/preprocess/parser_raw.ml" in + let _endpos__1_ = _endpos__4_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 3152 "src/ocaml/preprocess/parser_raw.mly" - ( Pcomp_array_comprehension (Immutable, _1) ) -# 67991 "src/ocaml/preprocess/parser_raw.ml" +# 3168 "src/ocaml/preprocess/parser_raw.mly" + ( mkexp ~loc:_sloc (Pexp_comprehension _1) ) +# 69779 "src/ocaml/preprocess/parser_raw.ml" in - let _endpos__1_ = _endpos__4_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 3157 "src/ocaml/preprocess/parser_raw.mly" - ( mkexp ~loc:_sloc (Pexp_comprehension _1) ) -# 68001 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 3080 "src/ocaml/preprocess/parser_raw.mly" + ( +# 3091 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 68007 "src/ocaml/preprocess/parser_raw.ml" - in +# 69785 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -68025,38 +69804,40 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v : (Parsetree.pattern) = let _1 = + let _v = let _1 = let _1 = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let _1 = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 68038 "src/ocaml/preprocess/parser_raw.ml" +# 69818 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 3831 "src/ocaml/preprocess/parser_raw.mly" +# 3842 "src/ocaml/preprocess/parser_raw.mly" ( Ppat_var (_1) ) -# 68044 "src/ocaml/preprocess/parser_raw.ml" +# 69824 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1331 "src/ocaml/preprocess/parser_raw.mly" ( mkpat ~loc:_sloc _1 ) -# 68053 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 3832 "src/ocaml/preprocess/parser_raw.mly" +# 69833 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 3843 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 68059 "src/ocaml/preprocess/parser_raw.ml" - in +# 69839 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.pattern)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -68078,9 +69859,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Parsetree.pattern) = -# 3833 "src/ocaml/preprocess/parser_raw.mly" +# 3844 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 68084 "src/ocaml/preprocess/parser_raw.ml" +# 69865 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -68116,14 +69897,16 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in - let _v : (Parsetree.pattern) = let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 3838 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + ( +# 3849 "src/ocaml/preprocess/parser_raw.mly" ( reloc_pat ~loc:_sloc _2 ) -# 68126 "src/ocaml/preprocess/parser_raw.ml" - in +# 69908 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.pattern)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -68145,9 +69928,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Parsetree.pattern) = -# 3840 "src/ocaml/preprocess/parser_raw.mly" +# 3851 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 68151 "src/ocaml/preprocess/parser_raw.ml" +# 69934 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -68204,41 +69987,43 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__5_ in - let _v : (Parsetree.pattern) = let _4 = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined3_, _startpos__1_inlined3_, _1_inlined3) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let _v = + let _4 = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined3_, _startpos__1_inlined3_, _1_inlined3) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 68216 "src/ocaml/preprocess/parser_raw.ml" - - in - let _3 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in +# 70000 "src/ocaml/preprocess/parser_raw.ml" -# 5392 "src/ocaml/preprocess/parser_raw.mly" + in + let _3 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in + let _2 = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 68226 "src/ocaml/preprocess/parser_raw.ml" +# 70010 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 5405 "src/ocaml/preprocess/parser_raw.mly" +# 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 68232 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__5_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 3842 "src/ocaml/preprocess/parser_raw.mly" +# 70016 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__5_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + ( +# 3853 "src/ocaml/preprocess/parser_raw.mly" ( mkpat_attrs ~loc:_sloc (Ppat_unpack _4) _3 ) -# 68241 "src/ocaml/preprocess/parser_raw.ml" - in +# 70025 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.pattern)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -68308,58 +70093,60 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__7_ in - let _v : (Parsetree.pattern) = let _6 = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined4_, _startpos__1_inlined4_, _1_inlined4) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 4925 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _6 = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined4_, _startpos__1_inlined4_, _1_inlined4) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 4936 "src/ocaml/preprocess/parser_raw.mly" ( let (lid, cstrs, attrs) = package_type_of_module_type _1 in let descr = Ptyp_package (lid, cstrs) in mktyp ~loc:_sloc ~attrs descr ) -# 68322 "src/ocaml/preprocess/parser_raw.ml" - - in - let _4 = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined3_, _startpos__1_inlined3_, _1_inlined3) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 70108 "src/ocaml/preprocess/parser_raw.ml" + + in + let _4 = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined3_, _startpos__1_inlined3_, _1_inlined3) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 68333 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__4_, _startpos__4_) = (_endpos__1_inlined3_, _startpos__1_inlined3_) in - let _3 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in +# 70119 "src/ocaml/preprocess/parser_raw.ml" -# 5392 "src/ocaml/preprocess/parser_raw.mly" + in + let (_endpos__4_, _startpos__4_) = (_endpos__1_inlined3_, _startpos__1_inlined3_) in + let _3 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in + let _2 = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 68344 "src/ocaml/preprocess/parser_raw.ml" +# 70130 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 5405 "src/ocaml/preprocess/parser_raw.mly" +# 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 68350 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__7_ in - let _symbolstartpos = _startpos__1_ in - let _loc__4_ = (_startpos__4_, _endpos__4_) in - let _sloc = (_symbolstartpos, _endpos) in - -# 3844 "src/ocaml/preprocess/parser_raw.mly" +# 70136 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__7_ in + let _symbolstartpos = _startpos__1_ in + let _loc__4_ = (_startpos__4_, _endpos__4_) in + let _sloc = (_symbolstartpos, _endpos) in + ( +# 3855 "src/ocaml/preprocess/parser_raw.mly" ( mkpat_attrs ~loc:_sloc (Ppat_constraint(mkpat ~loc:_loc__4_ (Ppat_unpack _4), Some _6, [])) _3 ) -# 68362 "src/ocaml/preprocess/parser_raw.ml" - in +# 70148 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.pattern)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -68380,33 +70167,35 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v : (Parsetree.pattern) = let _1 = + let _v = let _1 = - let _1 = -# 3854 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let _1 = +# 3865 "src/ocaml/preprocess/parser_raw.mly" ( Ppat_any ) -# 68389 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 70177 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1331 "src/ocaml/preprocess/parser_raw.mly" ( mkpat ~loc:_sloc _1 ) -# 68397 "src/ocaml/preprocess/parser_raw.ml" +# 70185 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 3888 "src/ocaml/preprocess/parser_raw.mly" +# 3899 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 68403 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 3848 "src/ocaml/preprocess/parser_raw.mly" +# 70191 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 3859 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 68409 "src/ocaml/preprocess/parser_raw.ml" - in +# 70197 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.pattern)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -68441,34 +70230,36 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in - let _v : (Parsetree.pattern) = let _1 = + let _v = let _1 = - let _1 = -# 3856 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let _1 = +# 3867 "src/ocaml/preprocess/parser_raw.mly" ( Ppat_interval (_1, _3) ) -# 68450 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos__1_ = _endpos__3_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 70240 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__3_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1331 "src/ocaml/preprocess/parser_raw.mly" ( mkpat ~loc:_sloc _1 ) -# 68459 "src/ocaml/preprocess/parser_raw.ml" +# 70249 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 3888 "src/ocaml/preprocess/parser_raw.mly" +# 3899 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 68465 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 3848 "src/ocaml/preprocess/parser_raw.mly" +# 70255 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 3859 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 68471 "src/ocaml/preprocess/parser_raw.ml" - in +# 70261 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.pattern)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -68489,45 +70280,47 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v : (Parsetree.pattern) = let _1 = + let _v = let _1 = let _1 = let _1 = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let _1 = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 68503 "src/ocaml/preprocess/parser_raw.ml" +# 70295 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 3869 "src/ocaml/preprocess/parser_raw.mly" + ( Ppat_construct(_1, None) ) +# 70301 "src/ocaml/preprocess/parser_raw.ml" in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 3858 "src/ocaml/preprocess/parser_raw.mly" - ( Ppat_construct(_1, None) ) -# 68509 "src/ocaml/preprocess/parser_raw.ml" +# 1331 "src/ocaml/preprocess/parser_raw.mly" + ( mkpat ~loc:_sloc _1 ) +# 70310 "src/ocaml/preprocess/parser_raw.ml" in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in -# 1331 "src/ocaml/preprocess/parser_raw.mly" - ( mkpat ~loc:_sloc _1 ) -# 68518 "src/ocaml/preprocess/parser_raw.ml" +# 3899 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 70316 "src/ocaml/preprocess/parser_raw.ml" in - -# 3888 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 68524 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 3848 "src/ocaml/preprocess/parser_raw.mly" + ( +# 3859 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 68530 "src/ocaml/preprocess/parser_raw.ml" - in +# 70322 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.pattern)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -68548,33 +70341,35 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v : (Parsetree.pattern) = let _1 = + let _v = let _1 = - let _1 = -# 3860 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let _1 = +# 3871 "src/ocaml/preprocess/parser_raw.mly" ( Ppat_variant(_1, None) ) -# 68557 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 70351 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1331 "src/ocaml/preprocess/parser_raw.mly" ( mkpat ~loc:_sloc _1 ) -# 68565 "src/ocaml/preprocess/parser_raw.ml" +# 70359 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 3888 "src/ocaml/preprocess/parser_raw.mly" +# 3899 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 68571 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 3848 "src/ocaml/preprocess/parser_raw.mly" +# 70365 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 3859 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 68577 "src/ocaml/preprocess/parser_raw.ml" - in +# 70371 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.pattern)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -68602,52 +70397,54 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined1_ in - let _v : (Parsetree.pattern) = let _1 = + let _v = let _1 = let _1 = - let _2 = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let _1 = + let _2 = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 68617 "src/ocaml/preprocess/parser_raw.ml" +# 70413 "src/ocaml/preprocess/parser_raw.ml" + + in + let _1 = +# 3204 "src/ocaml/preprocess/parser_raw.mly" + ( () ) +# 70419 "src/ocaml/preprocess/parser_raw.ml" + in + +# 3873 "src/ocaml/preprocess/parser_raw.mly" + ( Ppat_type (_2) ) +# 70424 "src/ocaml/preprocess/parser_raw.ml" in - let _1 = -# 3193 "src/ocaml/preprocess/parser_raw.mly" - ( () ) -# 68623 "src/ocaml/preprocess/parser_raw.ml" - in + let _endpos__1_ = _endpos__1_inlined1_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 3862 "src/ocaml/preprocess/parser_raw.mly" - ( Ppat_type (_2) ) -# 68628 "src/ocaml/preprocess/parser_raw.ml" +# 1331 "src/ocaml/preprocess/parser_raw.mly" + ( mkpat ~loc:_sloc _1 ) +# 70434 "src/ocaml/preprocess/parser_raw.ml" in - let _endpos__1_ = _endpos__1_inlined1_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in -# 1331 "src/ocaml/preprocess/parser_raw.mly" - ( mkpat ~loc:_sloc _1 ) -# 68638 "src/ocaml/preprocess/parser_raw.ml" +# 3899 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 70440 "src/ocaml/preprocess/parser_raw.ml" in - -# 3888 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 68644 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 3848 "src/ocaml/preprocess/parser_raw.mly" + ( +# 3859 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 68650 "src/ocaml/preprocess/parser_raw.ml" - in +# 70446 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.pattern)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -68675,52 +70472,54 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined1_ in - let _v : (Parsetree.pattern) = let _1 = + let _v = let _1 = let _1 = - let _2 = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let _1 = + let _2 = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 68690 "src/ocaml/preprocess/parser_raw.ml" +# 70488 "src/ocaml/preprocess/parser_raw.ml" + + in + let _1 = +# 3205 "src/ocaml/preprocess/parser_raw.mly" + ( () ) +# 70494 "src/ocaml/preprocess/parser_raw.ml" + in + +# 3873 "src/ocaml/preprocess/parser_raw.mly" + ( Ppat_type (_2) ) +# 70499 "src/ocaml/preprocess/parser_raw.ml" in - let _1 = -# 3194 "src/ocaml/preprocess/parser_raw.mly" - ( () ) -# 68696 "src/ocaml/preprocess/parser_raw.ml" - in + let _endpos__1_ = _endpos__1_inlined1_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 3862 "src/ocaml/preprocess/parser_raw.mly" - ( Ppat_type (_2) ) -# 68701 "src/ocaml/preprocess/parser_raw.ml" +# 1331 "src/ocaml/preprocess/parser_raw.mly" + ( mkpat ~loc:_sloc _1 ) +# 70509 "src/ocaml/preprocess/parser_raw.ml" in - let _endpos__1_ = _endpos__1_inlined1_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in -# 1331 "src/ocaml/preprocess/parser_raw.mly" - ( mkpat ~loc:_sloc _1 ) -# 68711 "src/ocaml/preprocess/parser_raw.ml" +# 3899 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 70515 "src/ocaml/preprocess/parser_raw.ml" in - -# 3888 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 68717 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 3848 "src/ocaml/preprocess/parser_raw.mly" + ( +# 3859 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 68723 "src/ocaml/preprocess/parser_raw.ml" - in +# 70521 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.pattern)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -68755,46 +70554,48 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in - let _v : (Parsetree.pattern) = let _1 = + let _v = let _1 = let _1 = let _1 = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let _1 = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 68769 "src/ocaml/preprocess/parser_raw.ml" +# 70569 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 3875 "src/ocaml/preprocess/parser_raw.mly" + ( Ppat_open(_1, _3) ) +# 70575 "src/ocaml/preprocess/parser_raw.ml" in + let _endpos__1_ = _endpos__3_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 3864 "src/ocaml/preprocess/parser_raw.mly" - ( Ppat_open(_1, _3) ) -# 68775 "src/ocaml/preprocess/parser_raw.ml" +# 1331 "src/ocaml/preprocess/parser_raw.mly" + ( mkpat ~loc:_sloc _1 ) +# 70585 "src/ocaml/preprocess/parser_raw.ml" in - let _endpos__1_ = _endpos__3_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in -# 1331 "src/ocaml/preprocess/parser_raw.mly" - ( mkpat ~loc:_sloc _1 ) -# 68785 "src/ocaml/preprocess/parser_raw.ml" +# 3899 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 70591 "src/ocaml/preprocess/parser_raw.ml" in - -# 3888 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 68791 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 3848 "src/ocaml/preprocess/parser_raw.mly" + ( +# 3859 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 68797 "src/ocaml/preprocess/parser_raw.ml" - in +# 70597 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.pattern)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -68836,67 +70637,69 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__2_inlined1_ in - let _v : (Parsetree.pattern) = let _1 = + let _v = let _1 = let _1 = - let _3 = - let (_endpos__2_, _startpos__1_) = (_endpos__2_inlined1_, _startpos__1_inlined1_) in - let _1 = -# 3865 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let _3 = + let (_endpos__2_, _startpos__1_) = (_endpos__2_inlined1_, _startpos__1_inlined1_) in + let _1 = +# 3876 "src/ocaml/preprocess/parser_raw.mly" (Lident "[]") -# 68848 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos__1_ = _endpos__2_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 70650 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__2_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 68857 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__3_ = _endpos__2_inlined1_ in - let _1 = - let _endpos = _endpos__1_ in +# 70659 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__3_ = _endpos__2_inlined1_ in + let _1 = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 1296 "src/ocaml/preprocess/parser_raw.mly" + ( mkrhs _1 _sloc ) +# 70670 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" - ( mkrhs _1 _sloc ) -# 68868 "src/ocaml/preprocess/parser_raw.ml" +# 3877 "src/ocaml/preprocess/parser_raw.mly" + ( Ppat_open(_1, mkpat ~loc:_sloc (Ppat_construct(_3, None))) ) +# 70679 "src/ocaml/preprocess/parser_raw.ml" in - let _endpos = _endpos__3_ in + let _endpos__1_ = _endpos__2_inlined1_ in + let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3866 "src/ocaml/preprocess/parser_raw.mly" - ( Ppat_open(_1, mkpat ~loc:_sloc (Ppat_construct(_3, None))) ) -# 68877 "src/ocaml/preprocess/parser_raw.ml" +# 1331 "src/ocaml/preprocess/parser_raw.mly" + ( mkpat ~loc:_sloc _1 ) +# 70689 "src/ocaml/preprocess/parser_raw.ml" in - let _endpos__1_ = _endpos__2_inlined1_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in -# 1331 "src/ocaml/preprocess/parser_raw.mly" - ( mkpat ~loc:_sloc _1 ) -# 68887 "src/ocaml/preprocess/parser_raw.ml" +# 3899 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 70695 "src/ocaml/preprocess/parser_raw.ml" in - -# 3888 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 68893 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 3848 "src/ocaml/preprocess/parser_raw.mly" + ( +# 3859 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 68899 "src/ocaml/preprocess/parser_raw.ml" - in +# 70701 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.pattern)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -68938,67 +70741,208 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__2_inlined1_ in - let _v : (Parsetree.pattern) = let _1 = + let _v = let _1 = let _1 = - let _3 = - let (_endpos__2_, _startpos__1_) = (_endpos__2_inlined1_, _startpos__1_inlined1_) in - let _1 = -# 3867 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let _3 = + let (_endpos__2_, _startpos__1_) = (_endpos__2_inlined1_, _startpos__1_inlined1_) in + let _1 = +# 3878 "src/ocaml/preprocess/parser_raw.mly" (Lident "()") -# 68950 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos__1_ = _endpos__2_ in - let _endpos = _endpos__1_ in +# 70754 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__2_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 1296 "src/ocaml/preprocess/parser_raw.mly" + ( mkrhs _1 _sloc ) +# 70763 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__3_ = _endpos__2_inlined1_ in + let _1 = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 1296 "src/ocaml/preprocess/parser_raw.mly" + ( mkrhs _1 _sloc ) +# 70774 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" - ( mkrhs _1 _sloc ) -# 68959 "src/ocaml/preprocess/parser_raw.ml" +# 3879 "src/ocaml/preprocess/parser_raw.mly" + ( Ppat_open(_1, mkpat ~loc:_sloc (Ppat_construct(_3, None))) ) +# 70783 "src/ocaml/preprocess/parser_raw.ml" in - let _endpos__3_ = _endpos__2_inlined1_ in + let _endpos__1_ = _endpos__2_inlined1_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 1331 "src/ocaml/preprocess/parser_raw.mly" + ( mkpat ~loc:_sloc _1 ) +# 70793 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 3899 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 70799 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 3859 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 70805 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.pattern)) + in + { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _5; + MenhirLib.EngineTypes.startp = _startpos__5_; + MenhirLib.EngineTypes.endp = _endpos__5_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _4; + MenhirLib.EngineTypes.startp = _startpos__4_; + MenhirLib.EngineTypes.endp = _endpos__4_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; + }; + } = _menhir_stack in + let _5 : unit = Obj.magic _5 in + let _4 : (Parsetree.pattern) = Obj.magic _4 in + let _3 : unit = Obj.magic _3 in + let _2 : unit = Obj.magic _2 in + let _1 : (Longident.t) = Obj.magic _1 in + let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in + let _startpos = _startpos__1_ in + let _endpos = _endpos__5_ in + let _v = + let _1 = + let _1 = let _1 = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let _1 = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 68970 "src/ocaml/preprocess/parser_raw.ml" +# 70867 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 3881 "src/ocaml/preprocess/parser_raw.mly" + ( Ppat_open (_1, _4) ) +# 70873 "src/ocaml/preprocess/parser_raw.ml" in - let _endpos = _endpos__3_ in + let _endpos__1_ = _endpos__5_ in + let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3868 "src/ocaml/preprocess/parser_raw.mly" - ( Ppat_open(_1, mkpat ~loc:_sloc (Ppat_construct(_3, None))) ) -# 68979 "src/ocaml/preprocess/parser_raw.ml" +# 1331 "src/ocaml/preprocess/parser_raw.mly" + ( mkpat ~loc:_sloc _1 ) +# 70883 "src/ocaml/preprocess/parser_raw.ml" in - let _endpos__1_ = _endpos__2_inlined1_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 3899 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 70889 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 3859 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 70895 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.pattern)) + in + { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + } = _menhir_stack in + let _1 : (Parsetree.extension) = Obj.magic _1 in + let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in + let _startpos = _startpos__1_ in + let _endpos = _endpos__1_ in + let _v = + let _1 = + let _1 = + let _1 = +# 3898 "src/ocaml/preprocess/parser_raw.mly" + ( Ppat_extension _1 ) +# 70924 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1331 "src/ocaml/preprocess/parser_raw.mly" ( mkpat ~loc:_sloc _1 ) -# 68989 "src/ocaml/preprocess/parser_raw.ml" +# 70932 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 3888 "src/ocaml/preprocess/parser_raw.mly" +# 3899 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 68995 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 3848 "src/ocaml/preprocess/parser_raw.mly" +# 70938 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 3859 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 69001 "src/ocaml/preprocess/parser_raw.ml" - in +# 70944 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.pattern)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -69040,163 +70984,30 @@ module Tables = struct }; } = _menhir_stack in let _5 : unit = Obj.magic _5 in - let _4 : (Parsetree.pattern) = Obj.magic _4 in + let _4 : (Parsetree.core_type) = Obj.magic _4 in let _3 : unit = Obj.magic _3 in - let _2 : unit = Obj.magic _2 in - let _1 : (Longident.t) = Obj.magic _1 in + let _2 : (Parsetree.pattern) = Obj.magic _2 in + let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__5_ in - let _v : (Parsetree.pattern) = let _1 = - let _1 = - let _1 = - let _1 = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 1296 "src/ocaml/preprocess/parser_raw.mly" - ( mkrhs _1 _sloc ) -# 69061 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 3870 "src/ocaml/preprocess/parser_raw.mly" - ( Ppat_open (_1, _4) ) -# 69067 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 1331 "src/ocaml/preprocess/parser_raw.mly" - ( mkpat ~loc:_sloc _1 ) -# 69077 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 3888 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 69083 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 3848 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 69089 "src/ocaml/preprocess/parser_raw.ml" - in - { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = Obj.repr _v; - MenhirLib.EngineTypes.startp = _startpos; - MenhirLib.EngineTypes.endp = _endpos; - MenhirLib.EngineTypes.next = _menhir_stack; - }); - (fun _menhir_env -> - let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - } = _menhir_stack in - let _1 : (Parsetree.extension) = Obj.magic _1 in - let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos__1_ in - let _endpos = _endpos__1_ in - let _v : (Parsetree.pattern) = let _1 = + let _v = let _1 = - let _1 = -# 3887 "src/ocaml/preprocess/parser_raw.mly" - ( Ppat_extension _1 ) -# 69116 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in + let _endpos = _endpos__5_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1331 "src/ocaml/preprocess/parser_raw.mly" - ( mkpat ~loc:_sloc _1 ) -# 69124 "src/ocaml/preprocess/parser_raw.ml" +# 3907 "src/ocaml/preprocess/parser_raw.mly" + ( mkpat_with_modes ~loc:_sloc ~pat:_2 ~cty:(Some _4) ~modes:[] ) +# 71003 "src/ocaml/preprocess/parser_raw.ml" in - -# 3888 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 69130 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 3848 "src/ocaml/preprocess/parser_raw.mly" + ( +# 3859 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 69136 "src/ocaml/preprocess/parser_raw.ml" - in - { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = Obj.repr _v; - MenhirLib.EngineTypes.startp = _startpos; - MenhirLib.EngineTypes.endp = _endpos; - MenhirLib.EngineTypes.next = _menhir_stack; - }); - (fun _menhir_env -> - let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _5; - MenhirLib.EngineTypes.startp = _startpos__5_; - MenhirLib.EngineTypes.endp = _endpos__5_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _4; - MenhirLib.EngineTypes.startp = _startpos__4_; - MenhirLib.EngineTypes.endp = _endpos__4_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - }; - }; - } = _menhir_stack in - let _5 : unit = Obj.magic _5 in - let _4 : (Parsetree.core_type) = Obj.magic _4 in - let _3 : unit = Obj.magic _3 in - let _2 : (Parsetree.pattern) = Obj.magic _2 in - let _1 : unit = Obj.magic _1 in - let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos__1_ in - let _endpos = _endpos__5_ in - let _v : (Parsetree.pattern) = let _1 = - let _endpos = _endpos__5_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 3896 "src/ocaml/preprocess/parser_raw.mly" - ( mkpat_with_modes ~loc:_sloc ~pat:_2 ~cty:(Some _4) ~modes:[] ) -# 69193 "src/ocaml/preprocess/parser_raw.ml" - +# 71009 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.pattern)) in - -# 3848 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 69199 "src/ocaml/preprocess/parser_raw.ml" - in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -69217,14 +71028,16 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v : (Parsetree.pattern) = let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 3849 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + ( +# 3860 "src/ocaml/preprocess/parser_raw.mly" ( mkpat (Ppat_constant _1) ~loc:_sloc ) -# 69227 "src/ocaml/preprocess/parser_raw.ml" - in +# 71039 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.pattern)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -69244,15 +71057,15 @@ module Tables = struct let _1 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 69248 "src/ocaml/preprocess/parser_raw.ml" +# 71061 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5312 "src/ocaml/preprocess/parser_raw.mly" +# 5323 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 69256 "src/ocaml/preprocess/parser_raw.ml" +# 71069 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -69273,15 +71086,15 @@ module Tables = struct let _1 : ( # 1155 "src/ocaml/preprocess/parser_raw.mly" (string) -# 69277 "src/ocaml/preprocess/parser_raw.ml" +# 71090 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5313 "src/ocaml/preprocess/parser_raw.mly" +# 5324 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 69285 "src/ocaml/preprocess/parser_raw.ml" +# 71098 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -69304,9 +71117,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5314 "src/ocaml/preprocess/parser_raw.mly" +# 5325 "src/ocaml/preprocess/parser_raw.mly" ( "and" ) -# 69310 "src/ocaml/preprocess/parser_raw.ml" +# 71123 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -69329,9 +71142,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5315 "src/ocaml/preprocess/parser_raw.mly" +# 5326 "src/ocaml/preprocess/parser_raw.mly" ( "as" ) -# 69335 "src/ocaml/preprocess/parser_raw.ml" +# 71148 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -69354,9 +71167,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5316 "src/ocaml/preprocess/parser_raw.mly" +# 5327 "src/ocaml/preprocess/parser_raw.mly" ( "assert" ) -# 69360 "src/ocaml/preprocess/parser_raw.ml" +# 71173 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -69379,9 +71192,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5317 "src/ocaml/preprocess/parser_raw.mly" +# 5328 "src/ocaml/preprocess/parser_raw.mly" ( "begin" ) -# 69385 "src/ocaml/preprocess/parser_raw.ml" +# 71198 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -69404,9 +71217,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5318 "src/ocaml/preprocess/parser_raw.mly" +# 5329 "src/ocaml/preprocess/parser_raw.mly" ( "class" ) -# 69410 "src/ocaml/preprocess/parser_raw.ml" +# 71223 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -69429,9 +71242,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5319 "src/ocaml/preprocess/parser_raw.mly" +# 5330 "src/ocaml/preprocess/parser_raw.mly" ( "constraint" ) -# 69435 "src/ocaml/preprocess/parser_raw.ml" +# 71248 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -69454,9 +71267,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5320 "src/ocaml/preprocess/parser_raw.mly" +# 5331 "src/ocaml/preprocess/parser_raw.mly" ( "do" ) -# 69460 "src/ocaml/preprocess/parser_raw.ml" +# 71273 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -69479,9 +71292,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5321 "src/ocaml/preprocess/parser_raw.mly" +# 5332 "src/ocaml/preprocess/parser_raw.mly" ( "done" ) -# 69485 "src/ocaml/preprocess/parser_raw.ml" +# 71298 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -69504,9 +71317,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5322 "src/ocaml/preprocess/parser_raw.mly" +# 5333 "src/ocaml/preprocess/parser_raw.mly" ( "downto" ) -# 69510 "src/ocaml/preprocess/parser_raw.ml" +# 71323 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -69529,9 +71342,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5323 "src/ocaml/preprocess/parser_raw.mly" +# 5334 "src/ocaml/preprocess/parser_raw.mly" ( "else" ) -# 69535 "src/ocaml/preprocess/parser_raw.ml" +# 71348 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -69554,9 +71367,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5324 "src/ocaml/preprocess/parser_raw.mly" +# 5335 "src/ocaml/preprocess/parser_raw.mly" ( "end" ) -# 69560 "src/ocaml/preprocess/parser_raw.ml" +# 71373 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -69579,9 +71392,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5325 "src/ocaml/preprocess/parser_raw.mly" +# 5336 "src/ocaml/preprocess/parser_raw.mly" ( "exception" ) -# 69585 "src/ocaml/preprocess/parser_raw.ml" +# 71398 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -69604,9 +71417,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5326 "src/ocaml/preprocess/parser_raw.mly" +# 5337 "src/ocaml/preprocess/parser_raw.mly" ( "external" ) -# 69610 "src/ocaml/preprocess/parser_raw.ml" +# 71423 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -69629,9 +71442,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5327 "src/ocaml/preprocess/parser_raw.mly" +# 5338 "src/ocaml/preprocess/parser_raw.mly" ( "false" ) -# 69635 "src/ocaml/preprocess/parser_raw.ml" +# 71448 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -69654,9 +71467,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5328 "src/ocaml/preprocess/parser_raw.mly" +# 5339 "src/ocaml/preprocess/parser_raw.mly" ( "for" ) -# 69660 "src/ocaml/preprocess/parser_raw.ml" +# 71473 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -69679,9 +71492,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5329 "src/ocaml/preprocess/parser_raw.mly" +# 5340 "src/ocaml/preprocess/parser_raw.mly" ( "fun" ) -# 69685 "src/ocaml/preprocess/parser_raw.ml" +# 71498 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -69704,9 +71517,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5330 "src/ocaml/preprocess/parser_raw.mly" +# 5341 "src/ocaml/preprocess/parser_raw.mly" ( "function" ) -# 69710 "src/ocaml/preprocess/parser_raw.ml" +# 71523 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -69729,9 +71542,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5331 "src/ocaml/preprocess/parser_raw.mly" +# 5342 "src/ocaml/preprocess/parser_raw.mly" ( "functor" ) -# 69735 "src/ocaml/preprocess/parser_raw.ml" +# 71548 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -69754,9 +71567,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5332 "src/ocaml/preprocess/parser_raw.mly" +# 5343 "src/ocaml/preprocess/parser_raw.mly" ( "if" ) -# 69760 "src/ocaml/preprocess/parser_raw.ml" +# 71573 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -69779,9 +71592,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5333 "src/ocaml/preprocess/parser_raw.mly" +# 5344 "src/ocaml/preprocess/parser_raw.mly" ( "in" ) -# 69785 "src/ocaml/preprocess/parser_raw.ml" +# 71598 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -69804,9 +71617,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5334 "src/ocaml/preprocess/parser_raw.mly" +# 5345 "src/ocaml/preprocess/parser_raw.mly" ( "include" ) -# 69810 "src/ocaml/preprocess/parser_raw.ml" +# 71623 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -69829,9 +71642,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5335 "src/ocaml/preprocess/parser_raw.mly" +# 5346 "src/ocaml/preprocess/parser_raw.mly" ( "inherit" ) -# 69835 "src/ocaml/preprocess/parser_raw.ml" +# 71648 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -69854,9 +71667,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5336 "src/ocaml/preprocess/parser_raw.mly" +# 5347 "src/ocaml/preprocess/parser_raw.mly" ( "initializer" ) -# 69860 "src/ocaml/preprocess/parser_raw.ml" +# 71673 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -69879,9 +71692,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5337 "src/ocaml/preprocess/parser_raw.mly" +# 5348 "src/ocaml/preprocess/parser_raw.mly" ( "lazy" ) -# 69885 "src/ocaml/preprocess/parser_raw.ml" +# 71698 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -69904,9 +71717,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5338 "src/ocaml/preprocess/parser_raw.mly" +# 5349 "src/ocaml/preprocess/parser_raw.mly" ( "let" ) -# 69910 "src/ocaml/preprocess/parser_raw.ml" +# 71723 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -69929,9 +71742,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5339 "src/ocaml/preprocess/parser_raw.mly" +# 5350 "src/ocaml/preprocess/parser_raw.mly" ( "local_" ) -# 69935 "src/ocaml/preprocess/parser_raw.ml" +# 71748 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -69954,9 +71767,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5340 "src/ocaml/preprocess/parser_raw.mly" +# 5351 "src/ocaml/preprocess/parser_raw.mly" ( "match" ) -# 69960 "src/ocaml/preprocess/parser_raw.ml" +# 71773 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -69979,9 +71792,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5341 "src/ocaml/preprocess/parser_raw.mly" +# 5352 "src/ocaml/preprocess/parser_raw.mly" ( "method" ) -# 69985 "src/ocaml/preprocess/parser_raw.ml" +# 71798 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -70004,9 +71817,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5342 "src/ocaml/preprocess/parser_raw.mly" +# 5353 "src/ocaml/preprocess/parser_raw.mly" ( "module" ) -# 70010 "src/ocaml/preprocess/parser_raw.ml" +# 71823 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -70029,9 +71842,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5343 "src/ocaml/preprocess/parser_raw.mly" +# 5354 "src/ocaml/preprocess/parser_raw.mly" ( "mutable" ) -# 70035 "src/ocaml/preprocess/parser_raw.ml" +# 71848 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -70054,9 +71867,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5344 "src/ocaml/preprocess/parser_raw.mly" +# 5355 "src/ocaml/preprocess/parser_raw.mly" ( "new" ) -# 70060 "src/ocaml/preprocess/parser_raw.ml" +# 71873 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -70079,9 +71892,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5345 "src/ocaml/preprocess/parser_raw.mly" +# 5356 "src/ocaml/preprocess/parser_raw.mly" ( "nonrec" ) -# 70085 "src/ocaml/preprocess/parser_raw.ml" +# 71898 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -70104,9 +71917,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5346 "src/ocaml/preprocess/parser_raw.mly" +# 5357 "src/ocaml/preprocess/parser_raw.mly" ( "object" ) -# 70110 "src/ocaml/preprocess/parser_raw.ml" +# 71923 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -70129,9 +71942,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5347 "src/ocaml/preprocess/parser_raw.mly" +# 5358 "src/ocaml/preprocess/parser_raw.mly" ( "of" ) -# 70135 "src/ocaml/preprocess/parser_raw.ml" +# 71948 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -70154,9 +71967,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5348 "src/ocaml/preprocess/parser_raw.mly" +# 5359 "src/ocaml/preprocess/parser_raw.mly" ( "open" ) -# 70160 "src/ocaml/preprocess/parser_raw.ml" +# 71973 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -70179,9 +71992,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5349 "src/ocaml/preprocess/parser_raw.mly" +# 5360 "src/ocaml/preprocess/parser_raw.mly" ( "or" ) -# 70185 "src/ocaml/preprocess/parser_raw.ml" +# 71998 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -70204,9 +72017,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5350 "src/ocaml/preprocess/parser_raw.mly" +# 5361 "src/ocaml/preprocess/parser_raw.mly" ( "private" ) -# 70210 "src/ocaml/preprocess/parser_raw.ml" +# 72023 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -70229,9 +72042,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5351 "src/ocaml/preprocess/parser_raw.mly" +# 5362 "src/ocaml/preprocess/parser_raw.mly" ( "rec" ) -# 70235 "src/ocaml/preprocess/parser_raw.ml" +# 72048 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -70254,9 +72067,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5352 "src/ocaml/preprocess/parser_raw.mly" +# 5363 "src/ocaml/preprocess/parser_raw.mly" ( "sig" ) -# 70260 "src/ocaml/preprocess/parser_raw.ml" +# 72073 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -70279,9 +72092,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5353 "src/ocaml/preprocess/parser_raw.mly" +# 5364 "src/ocaml/preprocess/parser_raw.mly" ( "struct" ) -# 70285 "src/ocaml/preprocess/parser_raw.ml" +# 72098 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -70304,9 +72117,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5354 "src/ocaml/preprocess/parser_raw.mly" +# 5365 "src/ocaml/preprocess/parser_raw.mly" ( "then" ) -# 70310 "src/ocaml/preprocess/parser_raw.ml" +# 72123 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -70329,9 +72142,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5355 "src/ocaml/preprocess/parser_raw.mly" +# 5366 "src/ocaml/preprocess/parser_raw.mly" ( "to" ) -# 70335 "src/ocaml/preprocess/parser_raw.ml" +# 72148 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -70354,9 +72167,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5356 "src/ocaml/preprocess/parser_raw.mly" +# 5367 "src/ocaml/preprocess/parser_raw.mly" ( "true" ) -# 70360 "src/ocaml/preprocess/parser_raw.ml" +# 72173 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -70379,9 +72192,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5357 "src/ocaml/preprocess/parser_raw.mly" +# 5368 "src/ocaml/preprocess/parser_raw.mly" ( "try" ) -# 70385 "src/ocaml/preprocess/parser_raw.ml" +# 72198 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -70404,9 +72217,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5358 "src/ocaml/preprocess/parser_raw.mly" +# 5369 "src/ocaml/preprocess/parser_raw.mly" ( "type" ) -# 70410 "src/ocaml/preprocess/parser_raw.ml" +# 72223 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -70429,9 +72242,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5359 "src/ocaml/preprocess/parser_raw.mly" +# 5370 "src/ocaml/preprocess/parser_raw.mly" ( "val" ) -# 70435 "src/ocaml/preprocess/parser_raw.ml" +# 72248 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -70454,9 +72267,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5360 "src/ocaml/preprocess/parser_raw.mly" +# 5371 "src/ocaml/preprocess/parser_raw.mly" ( "virtual" ) -# 70460 "src/ocaml/preprocess/parser_raw.ml" +# 72273 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -70479,9 +72292,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5361 "src/ocaml/preprocess/parser_raw.mly" +# 5372 "src/ocaml/preprocess/parser_raw.mly" ( "when" ) -# 70485 "src/ocaml/preprocess/parser_raw.ml" +# 72298 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -70504,9 +72317,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5362 "src/ocaml/preprocess/parser_raw.mly" +# 5373 "src/ocaml/preprocess/parser_raw.mly" ( "while" ) -# 70510 "src/ocaml/preprocess/parser_raw.ml" +# 72323 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -70529,9 +72342,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5363 "src/ocaml/preprocess/parser_raw.mly" +# 5374 "src/ocaml/preprocess/parser_raw.mly" ( "with" ) -# 70535 "src/ocaml/preprocess/parser_raw.ml" +# 72348 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -70554,9 +72367,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Parsetree.type_exception * string Location.loc option) = -# 4283 "src/ocaml/preprocess/parser_raw.mly" +# 4294 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 70560 "src/ocaml/preprocess/parser_raw.ml" +# 72373 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -70627,65 +72440,67 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined5_ in - let _v : (Parsetree.type_exception * string Location.loc option) = let attrs = - let _1 = _1_inlined5 in - -# 5388 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let attrs = + let _1 = _1_inlined5 in + +# 5399 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 70636 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_attrs_ = _endpos__1_inlined5_ in - let attrs2 = - let _1 = _1_inlined4 in - -# 5392 "src/ocaml/preprocess/parser_raw.mly" +# 72450 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_attrs_ = _endpos__1_inlined5_ in + let attrs2 = + let _1 = _1_inlined4 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 70645 "src/ocaml/preprocess/parser_raw.ml" - - in - let lid = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined3_, _startpos__1_inlined3_, _1_inlined3) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 72459 "src/ocaml/preprocess/parser_raw.ml" + + in + let lid = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined3_, _startpos__1_inlined3_, _1_inlined3) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 70656 "src/ocaml/preprocess/parser_raw.ml" - - in - let id = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 72470 "src/ocaml/preprocess/parser_raw.ml" + + in + let id = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 70667 "src/ocaml/preprocess/parser_raw.ml" - - in - let attrs1 = - let _1 = _1_inlined1 in - -# 5392 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 70675 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos_attrs_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 4292 "src/ocaml/preprocess/parser_raw.mly" +# 72481 "src/ocaml/preprocess/parser_raw.ml" + + in + let attrs1 = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 72489 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos_attrs_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + ( +# 4303 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let docs = symbol_docs _sloc in Te.mk_exception ~attrs (Te.rebind id lid ~attrs:(attrs1 @ attrs2) ~loc ~docs) , ext ) -# 70688 "src/ocaml/preprocess/parser_raw.ml" - in +# 72502 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.type_exception * string Location.loc option)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -70714,9 +72529,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Parsetree.modes -> Parsetree.expression) = -# 3462 "src/ocaml/preprocess/parser_raw.mly" +# 3473 "src/ocaml/preprocess/parser_raw.mly" ( fun _ -> _2 ) -# 70720 "src/ocaml/preprocess/parser_raw.ml" +# 72535 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -70759,11 +72574,12 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in - let _v : (Parsetree.modes -> Parsetree.expression) = let _endpos = _endpos__4_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 3464 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _endpos = _endpos__4_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + ( +# 3475 "src/ocaml/preprocess/parser_raw.mly" ( fun mode_annotations -> let constraint_ : function_constraint = let ret_type_constraint, ret_mode_annotations = @@ -70778,8 +72594,9 @@ module Tables = struct { exp with pexp_loc = { exp.pexp_loc with loc_ghost = true } } ) -# 70782 "src/ocaml/preprocess/parser_raw.ml" - in +# 72598 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.modes -> Parsetree.expression)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -70849,116 +72666,118 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos_codomain_ in - let _v : (Parsetree.core_type) = let _1 = + let _v = let _1 = - let domain_with_modes = - let m1 = -# 4671 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let domain_with_modes = + let m1 = +# 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 70859 "src/ocaml/preprocess/parser_raw.ml" - in - let ty = - let _1 = +# 72677 "src/ocaml/preprocess/parser_raw.ml" + in + let ty = let _1 = let _1 = - let bound_vars = - let _1 = - let xs = -# 253 "" + let _1 = + let bound_vars = + let _1 = + let xs = +# 264 "" ( List.rev xs ) -# 70870 "src/ocaml/preprocess/parser_raw.ml" - in - +# 72688 "src/ocaml/preprocess/parser_raw.ml" + in + # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 70875 "src/ocaml/preprocess/parser_raw.ml" +# 72693 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 4481 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 72699 "src/ocaml/preprocess/parser_raw.ml" in -# 4470 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 70881 "src/ocaml/preprocess/parser_raw.ml" +# 4732 "src/ocaml/preprocess/parser_raw.mly" + ( Ptyp_poly (bound_vars, inner_type) ) +# 72705 "src/ocaml/preprocess/parser_raw.ml" in + let _endpos__1_ = _endpos__5_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 4721 "src/ocaml/preprocess/parser_raw.mly" - ( Ptyp_poly (bound_vars, inner_type) ) -# 70887 "src/ocaml/preprocess/parser_raw.ml" +# 1333 "src/ocaml/preprocess/parser_raw.mly" + ( mktyp ~loc:_sloc _1 ) +# 72715 "src/ocaml/preprocess/parser_raw.ml" in - let _endpos__1_ = _endpos__5_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" - ( mktyp ~loc:_sloc _1 ) -# 70897 "src/ocaml/preprocess/parser_raw.ml" +# 4734 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 72721 "src/ocaml/preprocess/parser_raw.ml" in + let _endpos__1_ = _endpos__5_ in -# 4723 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 70903 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in - # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 70910 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in - let m0 = -# 4652 "src/ocaml/preprocess/parser_raw.mly" +# 72728 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in + let m0 = +# 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 70917 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 72735 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 70926 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = - let _1 = -# 4626 "src/ocaml/preprocess/parser_raw.mly" +# 72744 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = + let _1 = +# 4637 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 70933 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4633 "src/ocaml/preprocess/parser_raw.mly" +# 72751 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 70938 "src/ocaml/preprocess/parser_raw.ml" +# 72756 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 4555 "src/ocaml/preprocess/parser_raw.mly" +# 4566 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in Ptyp_arrow(label, domain , codomain, arg_modes, []) ) -# 70945 "src/ocaml/preprocess/parser_raw.ml" +# 72763 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 70955 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4558 "src/ocaml/preprocess/parser_raw.mly" +# 72773 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4569 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 70961 "src/ocaml/preprocess/parser_raw.ml" - in +# 72779 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -71035,119 +72854,121 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos_codomain_ in - let _v : (Parsetree.core_type) = let _1 = + let _v = let _1 = - let domain_with_modes = - let m1 = - let _1 = _1_inlined1 in - -# 4672 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let domain_with_modes = + let m1 = + let _1 = _1_inlined1 in + +# 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 71047 "src/ocaml/preprocess/parser_raw.ml" - - in - let ty = - let _1 = +# 72867 "src/ocaml/preprocess/parser_raw.ml" + + in + let ty = let _1 = let _1 = - let bound_vars = - let _1 = - let xs = -# 253 "" + let _1 = + let bound_vars = + let _1 = + let xs = +# 264 "" ( List.rev xs ) -# 71059 "src/ocaml/preprocess/parser_raw.ml" - in - +# 72879 "src/ocaml/preprocess/parser_raw.ml" + in + # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 71064 "src/ocaml/preprocess/parser_raw.ml" +# 72884 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 4481 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 72890 "src/ocaml/preprocess/parser_raw.ml" in -# 4470 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 71070 "src/ocaml/preprocess/parser_raw.ml" +# 4732 "src/ocaml/preprocess/parser_raw.mly" + ( Ptyp_poly (bound_vars, inner_type) ) +# 72896 "src/ocaml/preprocess/parser_raw.ml" in + let _endpos__1_ = _endpos__5_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 4721 "src/ocaml/preprocess/parser_raw.mly" - ( Ptyp_poly (bound_vars, inner_type) ) -# 71076 "src/ocaml/preprocess/parser_raw.ml" +# 1333 "src/ocaml/preprocess/parser_raw.mly" + ( mktyp ~loc:_sloc _1 ) +# 72906 "src/ocaml/preprocess/parser_raw.ml" in - let _endpos__1_ = _endpos__5_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" - ( mktyp ~loc:_sloc _1 ) -# 71086 "src/ocaml/preprocess/parser_raw.ml" +# 4734 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 72912 "src/ocaml/preprocess/parser_raw.ml" in + let _endpos__1_ = _endpos__5_ in -# 4723 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 71092 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in - # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 71099 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in - let m0 = -# 4652 "src/ocaml/preprocess/parser_raw.mly" +# 72919 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in + let m0 = +# 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 71106 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 72926 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 71115 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = - let _1 = -# 4626 "src/ocaml/preprocess/parser_raw.mly" +# 72935 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = + let _1 = +# 4637 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 71122 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4633 "src/ocaml/preprocess/parser_raw.mly" +# 72942 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 71127 "src/ocaml/preprocess/parser_raw.ml" +# 72947 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 4555 "src/ocaml/preprocess/parser_raw.mly" +# 4566 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in Ptyp_arrow(label, domain , codomain, arg_modes, []) ) -# 71134 "src/ocaml/preprocess/parser_raw.ml" +# 72954 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 71144 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4558 "src/ocaml/preprocess/parser_raw.mly" +# 72964 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4569 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 71150 "src/ocaml/preprocess/parser_raw.ml" - in +# 72970 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -71189,76 +73010,78 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos_codomain_ in - let _v : (Parsetree.core_type) = let _1 = + let _v = let _1 = - let domain_with_modes = - let m1 = -# 4671 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let domain_with_modes = + let m1 = +# 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 71199 "src/ocaml/preprocess/parser_raw.ml" - in - let ty = - let _1 = -# 4725 "src/ocaml/preprocess/parser_raw.mly" - ( ty ) -# 71205 "src/ocaml/preprocess/parser_raw.ml" +# 73021 "src/ocaml/preprocess/parser_raw.ml" in - let _endpos__1_ = _endpos_ty_ in - + let ty = + let _1 = +# 4736 "src/ocaml/preprocess/parser_raw.mly" + ( ty ) +# 73027 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos_ty_ in + # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 71211 "src/ocaml/preprocess/parser_raw.ml" - - in - let m0 = -# 4652 "src/ocaml/preprocess/parser_raw.mly" +# 73033 "src/ocaml/preprocess/parser_raw.ml" + + in + let m0 = +# 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 71217 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 73039 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 71226 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = - let _1 = -# 4626 "src/ocaml/preprocess/parser_raw.mly" +# 73048 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = + let _1 = +# 4637 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 71233 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4633 "src/ocaml/preprocess/parser_raw.mly" +# 73055 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 71238 "src/ocaml/preprocess/parser_raw.ml" +# 73060 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 4555 "src/ocaml/preprocess/parser_raw.mly" +# 4566 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in Ptyp_arrow(label, domain , codomain, arg_modes, []) ) -# 71245 "src/ocaml/preprocess/parser_raw.ml" +# 73067 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 71255 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4558 "src/ocaml/preprocess/parser_raw.mly" +# 73077 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4569 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 71261 "src/ocaml/preprocess/parser_raw.ml" - in +# 73083 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -71307,76 +73130,78 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos_codomain_ in - let _v : (Parsetree.core_type) = let _1 = + let _v = let _1 = - let domain_with_modes = - let m1 = -# 4672 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let domain_with_modes = + let m1 = +# 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 71317 "src/ocaml/preprocess/parser_raw.ml" - in - let ty = - let _1 = -# 4725 "src/ocaml/preprocess/parser_raw.mly" - ( ty ) -# 71323 "src/ocaml/preprocess/parser_raw.ml" +# 73141 "src/ocaml/preprocess/parser_raw.ml" in - let _endpos__1_ = _endpos_ty_ in - + let ty = + let _1 = +# 4736 "src/ocaml/preprocess/parser_raw.mly" + ( ty ) +# 73147 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos_ty_ in + # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 71329 "src/ocaml/preprocess/parser_raw.ml" - - in - let m0 = -# 4652 "src/ocaml/preprocess/parser_raw.mly" +# 73153 "src/ocaml/preprocess/parser_raw.ml" + + in + let m0 = +# 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 71335 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 73159 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 71344 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = - let _1 = -# 4626 "src/ocaml/preprocess/parser_raw.mly" +# 73168 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = + let _1 = +# 4637 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 71351 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4633 "src/ocaml/preprocess/parser_raw.mly" +# 73175 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 71356 "src/ocaml/preprocess/parser_raw.ml" +# 73180 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 4555 "src/ocaml/preprocess/parser_raw.mly" +# 4566 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in Ptyp_arrow(label, domain , codomain, arg_modes, []) ) -# 71363 "src/ocaml/preprocess/parser_raw.ml" +# 73187 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 71373 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4558 "src/ocaml/preprocess/parser_raw.mly" +# 73197 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4569 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 71379 "src/ocaml/preprocess/parser_raw.ml" - in +# 73203 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -71453,124 +73278,126 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos_codomain_ in - let _v : (Parsetree.core_type) = let _1 = + let _v = let _1 = - let domain_with_modes = - let m1 = -# 4671 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let domain_with_modes = + let m1 = +# 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 71463 "src/ocaml/preprocess/parser_raw.ml" - in - let ty = - let _startpos__1_ = _startpos__1_inlined1_ in - let _1 = +# 73289 "src/ocaml/preprocess/parser_raw.ml" + in + let ty = + let _startpos__1_ = _startpos__1_inlined1_ in let _1 = let _1 = - let bound_vars = - let _1 = - let xs = -# 253 "" + let _1 = + let bound_vars = + let _1 = + let xs = +# 264 "" ( List.rev xs ) -# 71475 "src/ocaml/preprocess/parser_raw.ml" - in - +# 73301 "src/ocaml/preprocess/parser_raw.ml" + in + # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 71480 "src/ocaml/preprocess/parser_raw.ml" +# 73306 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 4481 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 73312 "src/ocaml/preprocess/parser_raw.ml" in -# 4470 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 71486 "src/ocaml/preprocess/parser_raw.ml" +# 4732 "src/ocaml/preprocess/parser_raw.mly" + ( Ptyp_poly (bound_vars, inner_type) ) +# 73318 "src/ocaml/preprocess/parser_raw.ml" in + let _endpos__1_ = _endpos__5_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 4721 "src/ocaml/preprocess/parser_raw.mly" - ( Ptyp_poly (bound_vars, inner_type) ) -# 71492 "src/ocaml/preprocess/parser_raw.ml" +# 1333 "src/ocaml/preprocess/parser_raw.mly" + ( mktyp ~loc:_sloc _1 ) +# 73328 "src/ocaml/preprocess/parser_raw.ml" in - let _endpos__1_ = _endpos__5_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" - ( mktyp ~loc:_sloc _1 ) -# 71502 "src/ocaml/preprocess/parser_raw.ml" +# 4734 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 73334 "src/ocaml/preprocess/parser_raw.ml" in + let _endpos__1_ = _endpos__5_ in -# 4723 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 71508 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in - # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 71515 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in - let m0 = - let _1 = -# 4648 "src/ocaml/preprocess/parser_raw.mly" +# 73341 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in + let m0 = + let _1 = +# 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 71523 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4653 "src/ocaml/preprocess/parser_raw.mly" +# 73349 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 71528 "src/ocaml/preprocess/parser_raw.ml" +# 73354 "src/ocaml/preprocess/parser_raw.ml" + + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 71538 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = - let _1 = -# 4626 "src/ocaml/preprocess/parser_raw.mly" +# 73364 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = + let _1 = +# 4637 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 71545 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4633 "src/ocaml/preprocess/parser_raw.mly" +# 73371 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 71550 "src/ocaml/preprocess/parser_raw.ml" +# 73376 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 4555 "src/ocaml/preprocess/parser_raw.mly" +# 4566 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in Ptyp_arrow(label, domain , codomain, arg_modes, []) ) -# 71557 "src/ocaml/preprocess/parser_raw.ml" +# 73383 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 71567 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4558 "src/ocaml/preprocess/parser_raw.mly" +# 73393 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4569 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 71573 "src/ocaml/preprocess/parser_raw.ml" - in +# 73399 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -71654,127 +73481,129 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos_codomain_ in - let _v : (Parsetree.core_type) = let _1 = + let _v = let _1 = - let domain_with_modes = - let m1 = - let _1 = _1_inlined2 in - -# 4672 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let domain_with_modes = + let m1 = + let _1 = _1_inlined2 in + +# 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 71666 "src/ocaml/preprocess/parser_raw.ml" - - in - let ty = - let _startpos__1_ = _startpos__1_inlined1_ in - let _1 = +# 73494 "src/ocaml/preprocess/parser_raw.ml" + + in + let ty = + let _startpos__1_ = _startpos__1_inlined1_ in let _1 = let _1 = - let bound_vars = - let _1 = - let xs = -# 253 "" + let _1 = + let bound_vars = + let _1 = + let xs = +# 264 "" ( List.rev xs ) -# 71679 "src/ocaml/preprocess/parser_raw.ml" - in - +# 73507 "src/ocaml/preprocess/parser_raw.ml" + in + # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 71684 "src/ocaml/preprocess/parser_raw.ml" +# 73512 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 4481 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 73518 "src/ocaml/preprocess/parser_raw.ml" in -# 4470 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 71690 "src/ocaml/preprocess/parser_raw.ml" +# 4732 "src/ocaml/preprocess/parser_raw.mly" + ( Ptyp_poly (bound_vars, inner_type) ) +# 73524 "src/ocaml/preprocess/parser_raw.ml" in + let _endpos__1_ = _endpos__5_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 4721 "src/ocaml/preprocess/parser_raw.mly" - ( Ptyp_poly (bound_vars, inner_type) ) -# 71696 "src/ocaml/preprocess/parser_raw.ml" +# 1333 "src/ocaml/preprocess/parser_raw.mly" + ( mktyp ~loc:_sloc _1 ) +# 73534 "src/ocaml/preprocess/parser_raw.ml" in - let _endpos__1_ = _endpos__5_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" - ( mktyp ~loc:_sloc _1 ) -# 71706 "src/ocaml/preprocess/parser_raw.ml" +# 4734 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 73540 "src/ocaml/preprocess/parser_raw.ml" in + let _endpos__1_ = _endpos__5_ in -# 4723 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 71712 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in - # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 71719 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in - let m0 = - let _1 = -# 4648 "src/ocaml/preprocess/parser_raw.mly" +# 73547 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in + let m0 = + let _1 = +# 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 71727 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4653 "src/ocaml/preprocess/parser_raw.mly" +# 73555 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 71732 "src/ocaml/preprocess/parser_raw.ml" +# 73560 "src/ocaml/preprocess/parser_raw.ml" + + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 71742 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = - let _1 = -# 4626 "src/ocaml/preprocess/parser_raw.mly" +# 73570 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = + let _1 = +# 4637 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 71749 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4633 "src/ocaml/preprocess/parser_raw.mly" +# 73577 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 71754 "src/ocaml/preprocess/parser_raw.ml" +# 73582 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 4555 "src/ocaml/preprocess/parser_raw.mly" +# 4566 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in Ptyp_arrow(label, domain , codomain, arg_modes, []) ) -# 71761 "src/ocaml/preprocess/parser_raw.ml" +# 73589 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 71771 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4558 "src/ocaml/preprocess/parser_raw.mly" +# 73599 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4569 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 71777 "src/ocaml/preprocess/parser_raw.ml" - in +# 73605 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -71823,83 +73652,85 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos_codomain_ in - let _v : (Parsetree.core_type) = let _1 = + let _v = let _1 = - let domain_with_modes = - let m1 = -# 4671 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let domain_with_modes = + let m1 = +# 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 71833 "src/ocaml/preprocess/parser_raw.ml" - in - let ty = - let _1 = -# 4725 "src/ocaml/preprocess/parser_raw.mly" - ( ty ) -# 71839 "src/ocaml/preprocess/parser_raw.ml" +# 73663 "src/ocaml/preprocess/parser_raw.ml" in - let _endpos__1_ = _endpos_ty_ in - + let ty = + let _1 = +# 4736 "src/ocaml/preprocess/parser_raw.mly" + ( ty ) +# 73669 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos_ty_ in + # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 71845 "src/ocaml/preprocess/parser_raw.ml" - - in - let m0 = - let _1 = -# 4648 "src/ocaml/preprocess/parser_raw.mly" +# 73675 "src/ocaml/preprocess/parser_raw.ml" + + in + let m0 = + let _1 = +# 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 71852 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4653 "src/ocaml/preprocess/parser_raw.mly" +# 73682 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 71857 "src/ocaml/preprocess/parser_raw.ml" +# 73687 "src/ocaml/preprocess/parser_raw.ml" + + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 71867 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = - let _1 = -# 4626 "src/ocaml/preprocess/parser_raw.mly" +# 73697 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = + let _1 = +# 4637 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 71874 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4633 "src/ocaml/preprocess/parser_raw.mly" +# 73704 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 71879 "src/ocaml/preprocess/parser_raw.ml" +# 73709 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 4555 "src/ocaml/preprocess/parser_raw.mly" +# 4566 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in Ptyp_arrow(label, domain , codomain, arg_modes, []) ) -# 71886 "src/ocaml/preprocess/parser_raw.ml" +# 73716 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 71896 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4558 "src/ocaml/preprocess/parser_raw.mly" +# 73726 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4569 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 71902 "src/ocaml/preprocess/parser_raw.ml" - in +# 73732 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -71955,86 +73786,88 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos_codomain_ in - let _v : (Parsetree.core_type) = let _1 = + let _v = let _1 = - let domain_with_modes = - let m1 = - let _1 = _1_inlined1 in - -# 4672 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let domain_with_modes = + let m1 = + let _1 = _1_inlined1 in + +# 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 71967 "src/ocaml/preprocess/parser_raw.ml" - - in - let ty = - let _1 = -# 4725 "src/ocaml/preprocess/parser_raw.mly" +# 73799 "src/ocaml/preprocess/parser_raw.ml" + + in + let ty = + let _1 = +# 4736 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 71974 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos__1_ = _endpos_ty_ in - +# 73806 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos_ty_ in + # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 71980 "src/ocaml/preprocess/parser_raw.ml" - - in - let m0 = - let _1 = -# 4648 "src/ocaml/preprocess/parser_raw.mly" +# 73812 "src/ocaml/preprocess/parser_raw.ml" + + in + let m0 = + let _1 = +# 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 71987 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4653 "src/ocaml/preprocess/parser_raw.mly" +# 73819 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 71992 "src/ocaml/preprocess/parser_raw.ml" +# 73824 "src/ocaml/preprocess/parser_raw.ml" + + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 72002 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = - let _1 = -# 4626 "src/ocaml/preprocess/parser_raw.mly" +# 73834 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = + let _1 = +# 4637 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 72009 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4633 "src/ocaml/preprocess/parser_raw.mly" +# 73841 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 72014 "src/ocaml/preprocess/parser_raw.ml" +# 73846 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 4555 "src/ocaml/preprocess/parser_raw.mly" +# 4566 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in Ptyp_arrow(label, domain , codomain, arg_modes, []) ) -# 72021 "src/ocaml/preprocess/parser_raw.ml" +# 73853 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 72031 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4558 "src/ocaml/preprocess/parser_raw.mly" +# 73863 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4569 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 72037 "src/ocaml/preprocess/parser_raw.ml" - in +# 73869 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -72110,121 +73943,123 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 72114 "src/ocaml/preprocess/parser_raw.ml" +# 73947 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos_codomain_ in - let _v : (Parsetree.core_type) = let _1 = + let _v = let _1 = - let domain_with_modes = - let m1 = -# 4671 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let domain_with_modes = + let m1 = +# 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 72125 "src/ocaml/preprocess/parser_raw.ml" - in - let ty = - let _1 = +# 73959 "src/ocaml/preprocess/parser_raw.ml" + in + let ty = let _1 = let _1 = - let bound_vars = - let _1 = - let xs = -# 253 "" + let _1 = + let bound_vars = + let _1 = + let xs = +# 264 "" ( List.rev xs ) -# 72136 "src/ocaml/preprocess/parser_raw.ml" - in - +# 73970 "src/ocaml/preprocess/parser_raw.ml" + in + # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 72141 "src/ocaml/preprocess/parser_raw.ml" +# 73975 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 4481 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 73981 "src/ocaml/preprocess/parser_raw.ml" in -# 4470 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 72147 "src/ocaml/preprocess/parser_raw.ml" +# 4732 "src/ocaml/preprocess/parser_raw.mly" + ( Ptyp_poly (bound_vars, inner_type) ) +# 73987 "src/ocaml/preprocess/parser_raw.ml" in + let _endpos__1_ = _endpos__5_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 4721 "src/ocaml/preprocess/parser_raw.mly" - ( Ptyp_poly (bound_vars, inner_type) ) -# 72153 "src/ocaml/preprocess/parser_raw.ml" +# 1333 "src/ocaml/preprocess/parser_raw.mly" + ( mktyp ~loc:_sloc _1 ) +# 73997 "src/ocaml/preprocess/parser_raw.ml" in - let _endpos__1_ = _endpos__5_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" - ( mktyp ~loc:_sloc _1 ) -# 72163 "src/ocaml/preprocess/parser_raw.ml" +# 4734 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 74003 "src/ocaml/preprocess/parser_raw.ml" in + let _endpos__1_ = _endpos__5_ in -# 4723 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 72169 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in - # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 72176 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in - let m0 = -# 4652 "src/ocaml/preprocess/parser_raw.mly" +# 74010 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in + let m0 = +# 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 72183 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 74017 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 72192 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = - let _1 = -# 4628 "src/ocaml/preprocess/parser_raw.mly" +# 74026 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = + let _1 = +# 4639 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 72199 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4633 "src/ocaml/preprocess/parser_raw.mly" +# 74033 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 72204 "src/ocaml/preprocess/parser_raw.ml" +# 74038 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 4555 "src/ocaml/preprocess/parser_raw.mly" +# 4566 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in Ptyp_arrow(label, domain , codomain, arg_modes, []) ) -# 72211 "src/ocaml/preprocess/parser_raw.ml" +# 74045 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 72221 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4558 "src/ocaml/preprocess/parser_raw.mly" +# 74055 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4569 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 72227 "src/ocaml/preprocess/parser_raw.ml" - in +# 74061 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -72307,124 +74142,126 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 72311 "src/ocaml/preprocess/parser_raw.ml" +# 74146 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos_codomain_ in - let _v : (Parsetree.core_type) = let _1 = + let _v = let _1 = - let domain_with_modes = - let m1 = - let _1 = _1_inlined1 in - -# 4672 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let domain_with_modes = + let m1 = + let _1 = _1_inlined1 in + +# 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 72324 "src/ocaml/preprocess/parser_raw.ml" - - in - let ty = - let _1 = +# 74160 "src/ocaml/preprocess/parser_raw.ml" + + in + let ty = let _1 = let _1 = - let bound_vars = - let _1 = - let xs = -# 253 "" + let _1 = + let bound_vars = + let _1 = + let xs = +# 264 "" ( List.rev xs ) -# 72336 "src/ocaml/preprocess/parser_raw.ml" - in - +# 74172 "src/ocaml/preprocess/parser_raw.ml" + in + # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 72341 "src/ocaml/preprocess/parser_raw.ml" +# 74177 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 4481 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 74183 "src/ocaml/preprocess/parser_raw.ml" in -# 4470 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 72347 "src/ocaml/preprocess/parser_raw.ml" +# 4732 "src/ocaml/preprocess/parser_raw.mly" + ( Ptyp_poly (bound_vars, inner_type) ) +# 74189 "src/ocaml/preprocess/parser_raw.ml" in + let _endpos__1_ = _endpos__5_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 4721 "src/ocaml/preprocess/parser_raw.mly" - ( Ptyp_poly (bound_vars, inner_type) ) -# 72353 "src/ocaml/preprocess/parser_raw.ml" +# 1333 "src/ocaml/preprocess/parser_raw.mly" + ( mktyp ~loc:_sloc _1 ) +# 74199 "src/ocaml/preprocess/parser_raw.ml" in - let _endpos__1_ = _endpos__5_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" - ( mktyp ~loc:_sloc _1 ) -# 72363 "src/ocaml/preprocess/parser_raw.ml" +# 4734 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 74205 "src/ocaml/preprocess/parser_raw.ml" in + let _endpos__1_ = _endpos__5_ in -# 4723 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 72369 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in - # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 72376 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in - let m0 = -# 4652 "src/ocaml/preprocess/parser_raw.mly" +# 74212 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in + let m0 = +# 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 72383 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 74219 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 72392 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = - let _1 = -# 4628 "src/ocaml/preprocess/parser_raw.mly" +# 74228 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = + let _1 = +# 4639 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 72399 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4633 "src/ocaml/preprocess/parser_raw.mly" +# 74235 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 72404 "src/ocaml/preprocess/parser_raw.ml" +# 74240 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 4555 "src/ocaml/preprocess/parser_raw.mly" +# 4566 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in Ptyp_arrow(label, domain , codomain, arg_modes, []) ) -# 72411 "src/ocaml/preprocess/parser_raw.ml" +# 74247 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 72421 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4558 "src/ocaml/preprocess/parser_raw.mly" +# 74257 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4569 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 72427 "src/ocaml/preprocess/parser_raw.ml" - in +# 74263 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -72472,81 +74309,83 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 72476 "src/ocaml/preprocess/parser_raw.ml" +# 74313 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos_codomain_ in - let _v : (Parsetree.core_type) = let _1 = + let _v = let _1 = - let domain_with_modes = - let m1 = -# 4671 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let domain_with_modes = + let m1 = +# 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 72487 "src/ocaml/preprocess/parser_raw.ml" - in - let ty = - let _1 = -# 4725 "src/ocaml/preprocess/parser_raw.mly" - ( ty ) -# 72493 "src/ocaml/preprocess/parser_raw.ml" +# 74325 "src/ocaml/preprocess/parser_raw.ml" in - let _endpos__1_ = _endpos_ty_ in - + let ty = + let _1 = +# 4736 "src/ocaml/preprocess/parser_raw.mly" + ( ty ) +# 74331 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos_ty_ in + # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 72499 "src/ocaml/preprocess/parser_raw.ml" - - in - let m0 = -# 4652 "src/ocaml/preprocess/parser_raw.mly" +# 74337 "src/ocaml/preprocess/parser_raw.ml" + + in + let m0 = +# 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 72505 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 74343 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 72514 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = - let _1 = -# 4628 "src/ocaml/preprocess/parser_raw.mly" +# 74352 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = + let _1 = +# 4639 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 72521 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4633 "src/ocaml/preprocess/parser_raw.mly" +# 74359 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 72526 "src/ocaml/preprocess/parser_raw.ml" +# 74364 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 4555 "src/ocaml/preprocess/parser_raw.mly" +# 4566 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in Ptyp_arrow(label, domain , codomain, arg_modes, []) ) -# 72533 "src/ocaml/preprocess/parser_raw.ml" +# 74371 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 72543 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4558 "src/ocaml/preprocess/parser_raw.mly" +# 74381 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4569 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 72549 "src/ocaml/preprocess/parser_raw.ml" - in +# 74387 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -72601,81 +74440,83 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 72605 "src/ocaml/preprocess/parser_raw.ml" +# 74444 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos_codomain_ in - let _v : (Parsetree.core_type) = let _1 = + let _v = let _1 = - let domain_with_modes = - let m1 = -# 4672 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let domain_with_modes = + let m1 = +# 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 72616 "src/ocaml/preprocess/parser_raw.ml" - in - let ty = - let _1 = -# 4725 "src/ocaml/preprocess/parser_raw.mly" - ( ty ) -# 72622 "src/ocaml/preprocess/parser_raw.ml" +# 74456 "src/ocaml/preprocess/parser_raw.ml" in - let _endpos__1_ = _endpos_ty_ in - + let ty = + let _1 = +# 4736 "src/ocaml/preprocess/parser_raw.mly" + ( ty ) +# 74462 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos_ty_ in + # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 72628 "src/ocaml/preprocess/parser_raw.ml" - - in - let m0 = -# 4652 "src/ocaml/preprocess/parser_raw.mly" +# 74468 "src/ocaml/preprocess/parser_raw.ml" + + in + let m0 = +# 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 72634 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 74474 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 72643 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = - let _1 = -# 4628 "src/ocaml/preprocess/parser_raw.mly" +# 74483 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = + let _1 = +# 4639 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 72650 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4633 "src/ocaml/preprocess/parser_raw.mly" +# 74490 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 72655 "src/ocaml/preprocess/parser_raw.ml" +# 74495 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 4555 "src/ocaml/preprocess/parser_raw.mly" +# 4566 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in Ptyp_arrow(label, domain , codomain, arg_modes, []) ) -# 72662 "src/ocaml/preprocess/parser_raw.ml" +# 74502 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 72672 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4558 "src/ocaml/preprocess/parser_raw.mly" +# 74512 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4569 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 72678 "src/ocaml/preprocess/parser_raw.ml" - in +# 74518 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -72758,129 +74599,131 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 72762 "src/ocaml/preprocess/parser_raw.ml" +# 74603 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos_codomain_ in - let _v : (Parsetree.core_type) = let _1 = + let _v = let _1 = - let domain_with_modes = - let m1 = -# 4671 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let domain_with_modes = + let m1 = +# 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 72773 "src/ocaml/preprocess/parser_raw.ml" - in - let ty = - let _startpos__1_ = _startpos__1_inlined1_ in - let _1 = +# 74615 "src/ocaml/preprocess/parser_raw.ml" + in + let ty = + let _startpos__1_ = _startpos__1_inlined1_ in let _1 = let _1 = - let bound_vars = - let _1 = - let xs = -# 253 "" + let _1 = + let bound_vars = + let _1 = + let xs = +# 264 "" ( List.rev xs ) -# 72785 "src/ocaml/preprocess/parser_raw.ml" - in - +# 74627 "src/ocaml/preprocess/parser_raw.ml" + in + # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 72790 "src/ocaml/preprocess/parser_raw.ml" +# 74632 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 4481 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 74638 "src/ocaml/preprocess/parser_raw.ml" in -# 4470 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 72796 "src/ocaml/preprocess/parser_raw.ml" +# 4732 "src/ocaml/preprocess/parser_raw.mly" + ( Ptyp_poly (bound_vars, inner_type) ) +# 74644 "src/ocaml/preprocess/parser_raw.ml" in + let _endpos__1_ = _endpos__5_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 4721 "src/ocaml/preprocess/parser_raw.mly" - ( Ptyp_poly (bound_vars, inner_type) ) -# 72802 "src/ocaml/preprocess/parser_raw.ml" +# 1333 "src/ocaml/preprocess/parser_raw.mly" + ( mktyp ~loc:_sloc _1 ) +# 74654 "src/ocaml/preprocess/parser_raw.ml" in - let _endpos__1_ = _endpos__5_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" - ( mktyp ~loc:_sloc _1 ) -# 72812 "src/ocaml/preprocess/parser_raw.ml" +# 4734 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 74660 "src/ocaml/preprocess/parser_raw.ml" in + let _endpos__1_ = _endpos__5_ in -# 4723 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 72818 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in - # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 72825 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in - let m0 = - let _1 = -# 4648 "src/ocaml/preprocess/parser_raw.mly" +# 74667 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in + let m0 = + let _1 = +# 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 72833 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4653 "src/ocaml/preprocess/parser_raw.mly" +# 74675 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 72838 "src/ocaml/preprocess/parser_raw.ml" +# 74680 "src/ocaml/preprocess/parser_raw.ml" + + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 72848 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = - let _1 = -# 4628 "src/ocaml/preprocess/parser_raw.mly" +# 74690 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = + let _1 = +# 4639 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 72855 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4633 "src/ocaml/preprocess/parser_raw.mly" +# 74697 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 72860 "src/ocaml/preprocess/parser_raw.ml" +# 74702 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 4555 "src/ocaml/preprocess/parser_raw.mly" +# 4566 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in Ptyp_arrow(label, domain , codomain, arg_modes, []) ) -# 72867 "src/ocaml/preprocess/parser_raw.ml" +# 74709 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 72877 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4558 "src/ocaml/preprocess/parser_raw.mly" +# 74719 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4569 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 72883 "src/ocaml/preprocess/parser_raw.ml" - in +# 74725 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -72970,132 +74813,134 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 72974 "src/ocaml/preprocess/parser_raw.ml" +# 74817 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos_codomain_ in - let _v : (Parsetree.core_type) = let _1 = + let _v = let _1 = - let domain_with_modes = - let m1 = - let _1 = _1_inlined2 in - -# 4672 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let domain_with_modes = + let m1 = + let _1 = _1_inlined2 in + +# 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 72987 "src/ocaml/preprocess/parser_raw.ml" - - in - let ty = - let _startpos__1_ = _startpos__1_inlined1_ in - let _1 = +# 74831 "src/ocaml/preprocess/parser_raw.ml" + + in + let ty = + let _startpos__1_ = _startpos__1_inlined1_ in let _1 = let _1 = - let bound_vars = - let _1 = - let xs = -# 253 "" + let _1 = + let bound_vars = + let _1 = + let xs = +# 264 "" ( List.rev xs ) -# 73000 "src/ocaml/preprocess/parser_raw.ml" - in - +# 74844 "src/ocaml/preprocess/parser_raw.ml" + in + # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 73005 "src/ocaml/preprocess/parser_raw.ml" +# 74849 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 4481 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 74855 "src/ocaml/preprocess/parser_raw.ml" in -# 4470 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 73011 "src/ocaml/preprocess/parser_raw.ml" +# 4732 "src/ocaml/preprocess/parser_raw.mly" + ( Ptyp_poly (bound_vars, inner_type) ) +# 74861 "src/ocaml/preprocess/parser_raw.ml" in + let _endpos__1_ = _endpos__5_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 4721 "src/ocaml/preprocess/parser_raw.mly" - ( Ptyp_poly (bound_vars, inner_type) ) -# 73017 "src/ocaml/preprocess/parser_raw.ml" +# 1333 "src/ocaml/preprocess/parser_raw.mly" + ( mktyp ~loc:_sloc _1 ) +# 74871 "src/ocaml/preprocess/parser_raw.ml" in - let _endpos__1_ = _endpos__5_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" - ( mktyp ~loc:_sloc _1 ) -# 73027 "src/ocaml/preprocess/parser_raw.ml" +# 4734 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 74877 "src/ocaml/preprocess/parser_raw.ml" in + let _endpos__1_ = _endpos__5_ in -# 4723 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 73033 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in - # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 73040 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in - let m0 = - let _1 = -# 4648 "src/ocaml/preprocess/parser_raw.mly" +# 74884 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in + let m0 = + let _1 = +# 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 73048 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4653 "src/ocaml/preprocess/parser_raw.mly" +# 74892 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 73053 "src/ocaml/preprocess/parser_raw.ml" +# 74897 "src/ocaml/preprocess/parser_raw.ml" + + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 73063 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = - let _1 = -# 4628 "src/ocaml/preprocess/parser_raw.mly" +# 74907 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = + let _1 = +# 4639 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 73070 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4633 "src/ocaml/preprocess/parser_raw.mly" +# 74914 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 73075 "src/ocaml/preprocess/parser_raw.ml" +# 74919 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 4555 "src/ocaml/preprocess/parser_raw.mly" +# 4566 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in Ptyp_arrow(label, domain , codomain, arg_modes, []) ) -# 73082 "src/ocaml/preprocess/parser_raw.ml" +# 74926 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 73092 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4558 "src/ocaml/preprocess/parser_raw.mly" +# 74936 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4569 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 73098 "src/ocaml/preprocess/parser_raw.ml" - in +# 74942 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -73150,88 +74995,90 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 73154 "src/ocaml/preprocess/parser_raw.ml" +# 74999 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos_codomain_ in - let _v : (Parsetree.core_type) = let _1 = + let _v = let _1 = - let domain_with_modes = - let m1 = -# 4671 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let domain_with_modes = + let m1 = +# 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 73165 "src/ocaml/preprocess/parser_raw.ml" - in - let ty = - let _1 = -# 4725 "src/ocaml/preprocess/parser_raw.mly" - ( ty ) -# 73171 "src/ocaml/preprocess/parser_raw.ml" +# 75011 "src/ocaml/preprocess/parser_raw.ml" in - let _endpos__1_ = _endpos_ty_ in - + let ty = + let _1 = +# 4736 "src/ocaml/preprocess/parser_raw.mly" + ( ty ) +# 75017 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos_ty_ in + # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 73177 "src/ocaml/preprocess/parser_raw.ml" - - in - let m0 = - let _1 = -# 4648 "src/ocaml/preprocess/parser_raw.mly" +# 75023 "src/ocaml/preprocess/parser_raw.ml" + + in + let m0 = + let _1 = +# 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 73184 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4653 "src/ocaml/preprocess/parser_raw.mly" +# 75030 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 73189 "src/ocaml/preprocess/parser_raw.ml" +# 75035 "src/ocaml/preprocess/parser_raw.ml" + + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 73199 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = - let _1 = -# 4628 "src/ocaml/preprocess/parser_raw.mly" +# 75045 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = + let _1 = +# 4639 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 73206 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4633 "src/ocaml/preprocess/parser_raw.mly" +# 75052 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 73211 "src/ocaml/preprocess/parser_raw.ml" +# 75057 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 4555 "src/ocaml/preprocess/parser_raw.mly" +# 4566 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in Ptyp_arrow(label, domain , codomain, arg_modes, []) ) -# 73218 "src/ocaml/preprocess/parser_raw.ml" +# 75064 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 73228 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4558 "src/ocaml/preprocess/parser_raw.mly" +# 75074 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4569 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 73234 "src/ocaml/preprocess/parser_raw.ml" - in +# 75080 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -73293,91 +75140,93 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 73297 "src/ocaml/preprocess/parser_raw.ml" +# 75144 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos_codomain_ in - let _v : (Parsetree.core_type) = let _1 = + let _v = let _1 = - let domain_with_modes = - let m1 = - let _1 = _1_inlined1 in - -# 4672 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let domain_with_modes = + let m1 = + let _1 = _1_inlined1 in + +# 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 73310 "src/ocaml/preprocess/parser_raw.ml" - - in - let ty = - let _1 = -# 4725 "src/ocaml/preprocess/parser_raw.mly" +# 75158 "src/ocaml/preprocess/parser_raw.ml" + + in + let ty = + let _1 = +# 4736 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 73317 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos__1_ = _endpos_ty_ in - +# 75165 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos_ty_ in + # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 73323 "src/ocaml/preprocess/parser_raw.ml" - - in - let m0 = - let _1 = -# 4648 "src/ocaml/preprocess/parser_raw.mly" +# 75171 "src/ocaml/preprocess/parser_raw.ml" + + in + let m0 = + let _1 = +# 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 73330 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4653 "src/ocaml/preprocess/parser_raw.mly" +# 75178 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 73335 "src/ocaml/preprocess/parser_raw.ml" +# 75183 "src/ocaml/preprocess/parser_raw.ml" + + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 73345 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = - let _1 = -# 4628 "src/ocaml/preprocess/parser_raw.mly" +# 75193 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = + let _1 = +# 4639 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 73352 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4633 "src/ocaml/preprocess/parser_raw.mly" +# 75200 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 73357 "src/ocaml/preprocess/parser_raw.ml" +# 75205 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 4555 "src/ocaml/preprocess/parser_raw.mly" +# 4566 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in Ptyp_arrow(label, domain , codomain, arg_modes, []) ) -# 73364 "src/ocaml/preprocess/parser_raw.ml" +# 75212 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 73374 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4558 "src/ocaml/preprocess/parser_raw.mly" +# 75222 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4569 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 73380 "src/ocaml/preprocess/parser_raw.ml" - in +# 75228 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -73440,109 +75289,111 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_codomain_ in - let _v : (Parsetree.core_type) = let _1 = + let _v = let _1 = - let domain_with_modes = - let m1 = -# 4671 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let domain_with_modes = + let m1 = +# 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 73450 "src/ocaml/preprocess/parser_raw.ml" - in - let ty = - let _1 = +# 75300 "src/ocaml/preprocess/parser_raw.ml" + in + let ty = let _1 = let _1 = - let bound_vars = - let _1 = - let xs = -# 253 "" + let _1 = + let bound_vars = + let _1 = + let xs = +# 264 "" ( List.rev xs ) -# 73461 "src/ocaml/preprocess/parser_raw.ml" - in - +# 75311 "src/ocaml/preprocess/parser_raw.ml" + in + # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 73466 "src/ocaml/preprocess/parser_raw.ml" +# 75316 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 4481 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 75322 "src/ocaml/preprocess/parser_raw.ml" in -# 4470 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 73472 "src/ocaml/preprocess/parser_raw.ml" +# 4732 "src/ocaml/preprocess/parser_raw.mly" + ( Ptyp_poly (bound_vars, inner_type) ) +# 75328 "src/ocaml/preprocess/parser_raw.ml" in + let _endpos__1_ = _endpos__5_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 4721 "src/ocaml/preprocess/parser_raw.mly" - ( Ptyp_poly (bound_vars, inner_type) ) -# 73478 "src/ocaml/preprocess/parser_raw.ml" +# 1333 "src/ocaml/preprocess/parser_raw.mly" + ( mktyp ~loc:_sloc _1 ) +# 75338 "src/ocaml/preprocess/parser_raw.ml" in - let _endpos__1_ = _endpos__5_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" - ( mktyp ~loc:_sloc _1 ) -# 73488 "src/ocaml/preprocess/parser_raw.ml" +# 4734 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 75344 "src/ocaml/preprocess/parser_raw.ml" in + let _endpos__1_ = _endpos__5_ in -# 4723 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 73494 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in - # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 73501 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in - let m0 = -# 4652 "src/ocaml/preprocess/parser_raw.mly" +# 75351 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in + let m0 = +# 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 73508 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 75358 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 73517 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = -# 4635 "src/ocaml/preprocess/parser_raw.mly" +# 75367 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = +# 4646 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 73523 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4555 "src/ocaml/preprocess/parser_raw.mly" +# 75373 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4566 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in Ptyp_arrow(label, domain , codomain, arg_modes, []) ) -# 73529 "src/ocaml/preprocess/parser_raw.ml" +# 75379 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__1_ = _endpos_codomain_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos__1_ = _endpos_codomain_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 73539 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4558 "src/ocaml/preprocess/parser_raw.mly" +# 75389 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4569 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 73545 "src/ocaml/preprocess/parser_raw.ml" - in +# 75395 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -73612,112 +75463,114 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_codomain_ in - let _v : (Parsetree.core_type) = let _1 = + let _v = let _1 = - let domain_with_modes = - let m1 = - let _1 = _1_inlined1 in - -# 4672 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let domain_with_modes = + let m1 = + let _1 = _1_inlined1 in + +# 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 73624 "src/ocaml/preprocess/parser_raw.ml" - - in - let ty = - let _1 = +# 75476 "src/ocaml/preprocess/parser_raw.ml" + + in + let ty = let _1 = let _1 = - let bound_vars = - let _1 = - let xs = -# 253 "" + let _1 = + let bound_vars = + let _1 = + let xs = +# 264 "" ( List.rev xs ) -# 73636 "src/ocaml/preprocess/parser_raw.ml" - in - +# 75488 "src/ocaml/preprocess/parser_raw.ml" + in + # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 73641 "src/ocaml/preprocess/parser_raw.ml" +# 75493 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 4481 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 75499 "src/ocaml/preprocess/parser_raw.ml" in -# 4470 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 73647 "src/ocaml/preprocess/parser_raw.ml" +# 4732 "src/ocaml/preprocess/parser_raw.mly" + ( Ptyp_poly (bound_vars, inner_type) ) +# 75505 "src/ocaml/preprocess/parser_raw.ml" in + let _endpos__1_ = _endpos__5_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 4721 "src/ocaml/preprocess/parser_raw.mly" - ( Ptyp_poly (bound_vars, inner_type) ) -# 73653 "src/ocaml/preprocess/parser_raw.ml" +# 1333 "src/ocaml/preprocess/parser_raw.mly" + ( mktyp ~loc:_sloc _1 ) +# 75515 "src/ocaml/preprocess/parser_raw.ml" in - let _endpos__1_ = _endpos__5_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" - ( mktyp ~loc:_sloc _1 ) -# 73663 "src/ocaml/preprocess/parser_raw.ml" +# 4734 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 75521 "src/ocaml/preprocess/parser_raw.ml" in + let _endpos__1_ = _endpos__5_ in -# 4723 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 73669 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in - # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 73676 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in - let m0 = -# 4652 "src/ocaml/preprocess/parser_raw.mly" +# 75528 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in + let m0 = +# 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 73683 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 75535 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 73692 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = -# 4635 "src/ocaml/preprocess/parser_raw.mly" +# 75544 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = +# 4646 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 73698 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4555 "src/ocaml/preprocess/parser_raw.mly" +# 75550 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4566 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in Ptyp_arrow(label, domain , codomain, arg_modes, []) ) -# 73704 "src/ocaml/preprocess/parser_raw.ml" +# 75556 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__1_ = _endpos_codomain_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos__1_ = _endpos_codomain_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 73714 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4558 "src/ocaml/preprocess/parser_raw.mly" +# 75566 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4569 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 73720 "src/ocaml/preprocess/parser_raw.ml" - in +# 75572 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -73752,69 +75605,71 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_ty_ in let _endpos = _endpos_codomain_ in - let _v : (Parsetree.core_type) = let _1 = + let _v = let _1 = - let domain_with_modes = - let m1 = -# 4671 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let domain_with_modes = + let m1 = +# 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 73762 "src/ocaml/preprocess/parser_raw.ml" - in - let ty = - let _1 = -# 4725 "src/ocaml/preprocess/parser_raw.mly" - ( ty ) -# 73768 "src/ocaml/preprocess/parser_raw.ml" +# 75616 "src/ocaml/preprocess/parser_raw.ml" in - let _endpos__1_ = _endpos_ty_ in - + let ty = + let _1 = +# 4736 "src/ocaml/preprocess/parser_raw.mly" + ( ty ) +# 75622 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos_ty_ in + # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 73774 "src/ocaml/preprocess/parser_raw.ml" - - in - let m0 = -# 4652 "src/ocaml/preprocess/parser_raw.mly" +# 75628 "src/ocaml/preprocess/parser_raw.ml" + + in + let m0 = +# 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 73780 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 75634 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 73789 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = -# 4635 "src/ocaml/preprocess/parser_raw.mly" +# 75643 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = +# 4646 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 73795 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4555 "src/ocaml/preprocess/parser_raw.mly" +# 75649 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4566 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in Ptyp_arrow(label, domain , codomain, arg_modes, []) ) -# 73801 "src/ocaml/preprocess/parser_raw.ml" +# 75655 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_ty_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_ty_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 73811 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4558 "src/ocaml/preprocess/parser_raw.mly" +# 75665 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4569 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 73817 "src/ocaml/preprocess/parser_raw.ml" - in +# 75671 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -73856,69 +75711,71 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_ty_ in let _endpos = _endpos_codomain_ in - let _v : (Parsetree.core_type) = let _1 = + let _v = let _1 = - let domain_with_modes = - let m1 = -# 4672 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let domain_with_modes = + let m1 = +# 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 73866 "src/ocaml/preprocess/parser_raw.ml" - in - let ty = - let _1 = -# 4725 "src/ocaml/preprocess/parser_raw.mly" - ( ty ) -# 73872 "src/ocaml/preprocess/parser_raw.ml" +# 75722 "src/ocaml/preprocess/parser_raw.ml" in - let _endpos__1_ = _endpos_ty_ in - + let ty = + let _1 = +# 4736 "src/ocaml/preprocess/parser_raw.mly" + ( ty ) +# 75728 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos_ty_ in + # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 73878 "src/ocaml/preprocess/parser_raw.ml" - - in - let m0 = -# 4652 "src/ocaml/preprocess/parser_raw.mly" +# 75734 "src/ocaml/preprocess/parser_raw.ml" + + in + let m0 = +# 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 73884 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 75740 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 73893 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = -# 4635 "src/ocaml/preprocess/parser_raw.mly" +# 75749 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = +# 4646 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 73899 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4555 "src/ocaml/preprocess/parser_raw.mly" +# 75755 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4566 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in Ptyp_arrow(label, domain , codomain, arg_modes, []) ) -# 73905 "src/ocaml/preprocess/parser_raw.ml" +# 75761 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_ty_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_ty_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 73915 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4558 "src/ocaml/preprocess/parser_raw.mly" +# 75771 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4569 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 73921 "src/ocaml/preprocess/parser_raw.ml" - in +# 75777 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -73988,117 +75845,119 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_codomain_ in - let _v : (Parsetree.core_type) = let _1 = + let _v = let _1 = - let domain_with_modes = - let m1 = -# 4671 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let domain_with_modes = + let m1 = +# 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 73998 "src/ocaml/preprocess/parser_raw.ml" - in - let ty = - let _startpos__1_ = _startpos__1_inlined1_ in - let _1 = +# 75856 "src/ocaml/preprocess/parser_raw.ml" + in + let ty = + let _startpos__1_ = _startpos__1_inlined1_ in let _1 = let _1 = - let bound_vars = - let _1 = - let xs = -# 253 "" + let _1 = + let bound_vars = + let _1 = + let xs = +# 264 "" ( List.rev xs ) -# 74010 "src/ocaml/preprocess/parser_raw.ml" - in - +# 75868 "src/ocaml/preprocess/parser_raw.ml" + in + # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 74015 "src/ocaml/preprocess/parser_raw.ml" +# 75873 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 4481 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 75879 "src/ocaml/preprocess/parser_raw.ml" in -# 4470 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 74021 "src/ocaml/preprocess/parser_raw.ml" +# 4732 "src/ocaml/preprocess/parser_raw.mly" + ( Ptyp_poly (bound_vars, inner_type) ) +# 75885 "src/ocaml/preprocess/parser_raw.ml" in + let _endpos__1_ = _endpos__5_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 4721 "src/ocaml/preprocess/parser_raw.mly" - ( Ptyp_poly (bound_vars, inner_type) ) -# 74027 "src/ocaml/preprocess/parser_raw.ml" +# 1333 "src/ocaml/preprocess/parser_raw.mly" + ( mktyp ~loc:_sloc _1 ) +# 75895 "src/ocaml/preprocess/parser_raw.ml" in - let _endpos__1_ = _endpos__5_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" - ( mktyp ~loc:_sloc _1 ) -# 74037 "src/ocaml/preprocess/parser_raw.ml" +# 4734 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 75901 "src/ocaml/preprocess/parser_raw.ml" in + let _endpos__1_ = _endpos__5_ in -# 4723 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 74043 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in - # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 74050 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in - let m0 = - let _1 = -# 4648 "src/ocaml/preprocess/parser_raw.mly" +# 75908 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in + let m0 = + let _1 = +# 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 74058 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4653 "src/ocaml/preprocess/parser_raw.mly" +# 75916 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 74063 "src/ocaml/preprocess/parser_raw.ml" +# 75921 "src/ocaml/preprocess/parser_raw.ml" + + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 74073 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = -# 4635 "src/ocaml/preprocess/parser_raw.mly" +# 75931 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = +# 4646 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 74079 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4555 "src/ocaml/preprocess/parser_raw.mly" +# 75937 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4566 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in Ptyp_arrow(label, domain , codomain, arg_modes, []) ) -# 74085 "src/ocaml/preprocess/parser_raw.ml" +# 75943 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__1_ = _endpos_codomain_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos__1_ = _endpos_codomain_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 74095 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4558 "src/ocaml/preprocess/parser_raw.mly" +# 75953 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4569 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 74101 "src/ocaml/preprocess/parser_raw.ml" - in +# 75959 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -74175,120 +76034,122 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_codomain_ in - let _v : (Parsetree.core_type) = let _1 = + let _v = let _1 = - let domain_with_modes = - let m1 = - let _1 = _1_inlined2 in - -# 4672 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let domain_with_modes = + let m1 = + let _1 = _1_inlined2 in + +# 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 74187 "src/ocaml/preprocess/parser_raw.ml" - - in - let ty = - let _startpos__1_ = _startpos__1_inlined1_ in - let _1 = +# 76047 "src/ocaml/preprocess/parser_raw.ml" + + in + let ty = + let _startpos__1_ = _startpos__1_inlined1_ in let _1 = let _1 = - let bound_vars = - let _1 = - let xs = -# 253 "" + let _1 = + let bound_vars = + let _1 = + let xs = +# 264 "" ( List.rev xs ) -# 74200 "src/ocaml/preprocess/parser_raw.ml" - in - +# 76060 "src/ocaml/preprocess/parser_raw.ml" + in + # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 74205 "src/ocaml/preprocess/parser_raw.ml" +# 76065 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 4481 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 76071 "src/ocaml/preprocess/parser_raw.ml" in -# 4470 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 74211 "src/ocaml/preprocess/parser_raw.ml" +# 4732 "src/ocaml/preprocess/parser_raw.mly" + ( Ptyp_poly (bound_vars, inner_type) ) +# 76077 "src/ocaml/preprocess/parser_raw.ml" in + let _endpos__1_ = _endpos__5_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 4721 "src/ocaml/preprocess/parser_raw.mly" - ( Ptyp_poly (bound_vars, inner_type) ) -# 74217 "src/ocaml/preprocess/parser_raw.ml" +# 1333 "src/ocaml/preprocess/parser_raw.mly" + ( mktyp ~loc:_sloc _1 ) +# 76087 "src/ocaml/preprocess/parser_raw.ml" in - let _endpos__1_ = _endpos__5_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" - ( mktyp ~loc:_sloc _1 ) -# 74227 "src/ocaml/preprocess/parser_raw.ml" +# 4734 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 76093 "src/ocaml/preprocess/parser_raw.ml" in + let _endpos__1_ = _endpos__5_ in -# 4723 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 74233 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in - # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 74240 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in - let m0 = - let _1 = -# 4648 "src/ocaml/preprocess/parser_raw.mly" +# 76100 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in + let m0 = + let _1 = +# 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 74248 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4653 "src/ocaml/preprocess/parser_raw.mly" +# 76108 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 74253 "src/ocaml/preprocess/parser_raw.ml" +# 76113 "src/ocaml/preprocess/parser_raw.ml" + + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 74263 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = -# 4635 "src/ocaml/preprocess/parser_raw.mly" +# 76123 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = +# 4646 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 74269 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4555 "src/ocaml/preprocess/parser_raw.mly" +# 76129 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4566 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in Ptyp_arrow(label, domain , codomain, arg_modes, []) ) -# 74275 "src/ocaml/preprocess/parser_raw.ml" +# 76135 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__1_ = _endpos_codomain_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos__1_ = _endpos_codomain_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 74285 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4558 "src/ocaml/preprocess/parser_raw.mly" +# 76145 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4569 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 74291 "src/ocaml/preprocess/parser_raw.ml" - in +# 76151 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -74330,76 +76191,78 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_codomain_ in - let _v : (Parsetree.core_type) = let _1 = + let _v = let _1 = - let domain_with_modes = - let m1 = -# 4671 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let domain_with_modes = + let m1 = +# 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 74340 "src/ocaml/preprocess/parser_raw.ml" - in - let ty = - let _1 = -# 4725 "src/ocaml/preprocess/parser_raw.mly" - ( ty ) -# 74346 "src/ocaml/preprocess/parser_raw.ml" +# 76202 "src/ocaml/preprocess/parser_raw.ml" in - let _endpos__1_ = _endpos_ty_ in - + let ty = + let _1 = +# 4736 "src/ocaml/preprocess/parser_raw.mly" + ( ty ) +# 76208 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos_ty_ in + # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 74352 "src/ocaml/preprocess/parser_raw.ml" - - in - let m0 = - let _1 = -# 4648 "src/ocaml/preprocess/parser_raw.mly" +# 76214 "src/ocaml/preprocess/parser_raw.ml" + + in + let m0 = + let _1 = +# 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 74359 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4653 "src/ocaml/preprocess/parser_raw.mly" +# 76221 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 74364 "src/ocaml/preprocess/parser_raw.ml" +# 76226 "src/ocaml/preprocess/parser_raw.ml" + + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 74374 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = -# 4635 "src/ocaml/preprocess/parser_raw.mly" +# 76236 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = +# 4646 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 74380 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4555 "src/ocaml/preprocess/parser_raw.mly" +# 76242 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4566 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in Ptyp_arrow(label, domain , codomain, arg_modes, []) ) -# 74386 "src/ocaml/preprocess/parser_raw.ml" +# 76248 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__1_ = _endpos_codomain_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos__1_ = _endpos_codomain_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 74396 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4558 "src/ocaml/preprocess/parser_raw.mly" +# 76258 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4569 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 74402 "src/ocaml/preprocess/parser_raw.ml" - in +# 76264 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -74448,79 +76311,81 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_codomain_ in - let _v : (Parsetree.core_type) = let _1 = + let _v = let _1 = - let domain_with_modes = - let m1 = - let _1 = _1_inlined1 in - -# 4672 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let domain_with_modes = + let m1 = + let _1 = _1_inlined1 in + +# 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 74460 "src/ocaml/preprocess/parser_raw.ml" - - in - let ty = - let _1 = -# 4725 "src/ocaml/preprocess/parser_raw.mly" +# 76324 "src/ocaml/preprocess/parser_raw.ml" + + in + let ty = + let _1 = +# 4736 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 74467 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos__1_ = _endpos_ty_ in - +# 76331 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos_ty_ in + # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 74473 "src/ocaml/preprocess/parser_raw.ml" - - in - let m0 = - let _1 = -# 4648 "src/ocaml/preprocess/parser_raw.mly" +# 76337 "src/ocaml/preprocess/parser_raw.ml" + + in + let m0 = + let _1 = +# 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 74480 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4653 "src/ocaml/preprocess/parser_raw.mly" +# 76344 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 74485 "src/ocaml/preprocess/parser_raw.ml" +# 76349 "src/ocaml/preprocess/parser_raw.ml" + + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 74495 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = -# 4635 "src/ocaml/preprocess/parser_raw.mly" +# 76359 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = +# 4646 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 74501 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4555 "src/ocaml/preprocess/parser_raw.mly" +# 76365 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4566 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in Ptyp_arrow(label, domain , codomain, arg_modes, []) ) -# 74507 "src/ocaml/preprocess/parser_raw.ml" +# 76371 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__1_ = _endpos_codomain_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos__1_ = _endpos_codomain_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 74517 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4558 "src/ocaml/preprocess/parser_raw.mly" +# 76381 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4569 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 74523 "src/ocaml/preprocess/parser_raw.ml" - in +# 76387 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -74590,140 +76455,142 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos_ty_ in - let _v : (Parsetree.core_type) = let _1 = + let _v = let _1 = - let codomain_with_modes = - let m1 = -# 4671 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let codomain_with_modes = + let m1 = +# 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 74600 "src/ocaml/preprocess/parser_raw.ml" - in - let m0 = -# 4652 "src/ocaml/preprocess/parser_raw.mly" +# 76466 "src/ocaml/preprocess/parser_raw.ml" + in + let m0 = +# 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 74605 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 76471 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 74614 "src/ocaml/preprocess/parser_raw.ml" - - in - let domain_with_modes = - let m1 = -# 4671 "src/ocaml/preprocess/parser_raw.mly" +# 76480 "src/ocaml/preprocess/parser_raw.ml" + + in + let domain_with_modes = + let m1 = +# 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 74621 "src/ocaml/preprocess/parser_raw.ml" - in - let ty = - let _1 = +# 76487 "src/ocaml/preprocess/parser_raw.ml" + in + let ty = let _1 = let _1 = - let bound_vars = - let _1 = - let xs = -# 253 "" + let _1 = + let bound_vars = + let _1 = + let xs = +# 264 "" ( List.rev xs ) -# 74632 "src/ocaml/preprocess/parser_raw.ml" - in - +# 76498 "src/ocaml/preprocess/parser_raw.ml" + in + # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 74637 "src/ocaml/preprocess/parser_raw.ml" +# 76503 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 4481 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 76509 "src/ocaml/preprocess/parser_raw.ml" in -# 4470 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 74643 "src/ocaml/preprocess/parser_raw.ml" +# 4732 "src/ocaml/preprocess/parser_raw.mly" + ( Ptyp_poly (bound_vars, inner_type) ) +# 76515 "src/ocaml/preprocess/parser_raw.ml" in + let _endpos__1_ = _endpos__5_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 4721 "src/ocaml/preprocess/parser_raw.mly" - ( Ptyp_poly (bound_vars, inner_type) ) -# 74649 "src/ocaml/preprocess/parser_raw.ml" +# 1333 "src/ocaml/preprocess/parser_raw.mly" + ( mktyp ~loc:_sloc _1 ) +# 76525 "src/ocaml/preprocess/parser_raw.ml" in - let _endpos__1_ = _endpos__5_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" - ( mktyp ~loc:_sloc _1 ) -# 74659 "src/ocaml/preprocess/parser_raw.ml" +# 4734 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 76531 "src/ocaml/preprocess/parser_raw.ml" in + let _endpos__1_ = _endpos__5_ in -# 4723 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 74665 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in - # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 74672 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in - let m0 = -# 4652 "src/ocaml/preprocess/parser_raw.mly" +# 76538 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in + let m0 = +# 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 74679 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 76545 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 74688 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = - let _1 = -# 4626 "src/ocaml/preprocess/parser_raw.mly" +# 76554 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = + let _1 = +# 4637 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 74695 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4633 "src/ocaml/preprocess/parser_raw.mly" +# 76561 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 74700 "src/ocaml/preprocess/parser_raw.ml" +# 76566 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 4565 "src/ocaml/preprocess/parser_raw.mly" +# 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 74710 "src/ocaml/preprocess/parser_raw.ml" +# 76576 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos_ty_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let (_endpos__1_, _startpos__1_) = (_endpos_ty_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 74720 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4571 "src/ocaml/preprocess/parser_raw.mly" +# 76586 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 74726 "src/ocaml/preprocess/parser_raw.ml" - in +# 76592 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -74800,141 +76667,143 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos__1_inlined1_ in - let _v : (Parsetree.core_type) = let _1 = + let _v = let _1 = - let codomain_with_modes = - let _1 = _1_inlined1 in - let m1 = -# 4672 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let codomain_with_modes = + let _1 = _1_inlined1 in + let m1 = +# 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 74811 "src/ocaml/preprocess/parser_raw.ml" - in - let m0 = -# 4652 "src/ocaml/preprocess/parser_raw.mly" +# 76679 "src/ocaml/preprocess/parser_raw.ml" + in + let m0 = +# 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 74816 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 76684 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 74825 "src/ocaml/preprocess/parser_raw.ml" - - in - let domain_with_modes = - let m1 = -# 4671 "src/ocaml/preprocess/parser_raw.mly" +# 76693 "src/ocaml/preprocess/parser_raw.ml" + + in + let domain_with_modes = + let m1 = +# 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 74832 "src/ocaml/preprocess/parser_raw.ml" - in - let ty = - let _1 = +# 76700 "src/ocaml/preprocess/parser_raw.ml" + in + let ty = let _1 = let _1 = - let bound_vars = - let _1 = - let xs = -# 253 "" + let _1 = + let bound_vars = + let _1 = + let xs = +# 264 "" ( List.rev xs ) -# 74843 "src/ocaml/preprocess/parser_raw.ml" - in - +# 76711 "src/ocaml/preprocess/parser_raw.ml" + in + # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 74848 "src/ocaml/preprocess/parser_raw.ml" +# 76716 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 4481 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 76722 "src/ocaml/preprocess/parser_raw.ml" in -# 4470 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 74854 "src/ocaml/preprocess/parser_raw.ml" +# 4732 "src/ocaml/preprocess/parser_raw.mly" + ( Ptyp_poly (bound_vars, inner_type) ) +# 76728 "src/ocaml/preprocess/parser_raw.ml" in + let _endpos__1_ = _endpos__5_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 4721 "src/ocaml/preprocess/parser_raw.mly" - ( Ptyp_poly (bound_vars, inner_type) ) -# 74860 "src/ocaml/preprocess/parser_raw.ml" +# 1333 "src/ocaml/preprocess/parser_raw.mly" + ( mktyp ~loc:_sloc _1 ) +# 76738 "src/ocaml/preprocess/parser_raw.ml" in - let _endpos__1_ = _endpos__5_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" - ( mktyp ~loc:_sloc _1 ) -# 74870 "src/ocaml/preprocess/parser_raw.ml" +# 4734 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 76744 "src/ocaml/preprocess/parser_raw.ml" in + let _endpos__1_ = _endpos__5_ in -# 4723 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 74876 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in - # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 74883 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in - let m0 = -# 4652 "src/ocaml/preprocess/parser_raw.mly" +# 76751 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in + let m0 = +# 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 74890 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 76758 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 74899 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = - let _1 = -# 4626 "src/ocaml/preprocess/parser_raw.mly" +# 76767 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = + let _1 = +# 4637 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 74906 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4633 "src/ocaml/preprocess/parser_raw.mly" +# 76774 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 74911 "src/ocaml/preprocess/parser_raw.ml" +# 76779 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 4565 "src/ocaml/preprocess/parser_raw.mly" +# 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 74921 "src/ocaml/preprocess/parser_raw.ml" +# 76789 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 74931 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4571 "src/ocaml/preprocess/parser_raw.mly" +# 76799 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 74937 "src/ocaml/preprocess/parser_raw.ml" - in +# 76805 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -75011,148 +76880,150 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos_ty_ in - let _v : (Parsetree.core_type) = let _1 = + let _v = let _1 = - let codomain_with_modes = - let _1 = _1_inlined1 in - let m1 = -# 4671 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let codomain_with_modes = + let _1 = _1_inlined1 in + let m1 = +# 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 75022 "src/ocaml/preprocess/parser_raw.ml" - in - let m0 = - let _1 = -# 4648 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 75028 "src/ocaml/preprocess/parser_raw.ml" +# 76892 "src/ocaml/preprocess/parser_raw.ml" in - -# 4653 "src/ocaml/preprocess/parser_raw.mly" + let m0 = + let _1 = +# 4659 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 76898 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 75033 "src/ocaml/preprocess/parser_raw.ml" +# 76903 "src/ocaml/preprocess/parser_raw.ml" + + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 75043 "src/ocaml/preprocess/parser_raw.ml" - - in - let domain_with_modes = - let m1 = -# 4671 "src/ocaml/preprocess/parser_raw.mly" +# 76913 "src/ocaml/preprocess/parser_raw.ml" + + in + let domain_with_modes = + let m1 = +# 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 75050 "src/ocaml/preprocess/parser_raw.ml" - in - let ty = - let _1 = +# 76920 "src/ocaml/preprocess/parser_raw.ml" + in + let ty = let _1 = let _1 = - let bound_vars = - let _1 = - let xs = -# 253 "" + let _1 = + let bound_vars = + let _1 = + let xs = +# 264 "" ( List.rev xs ) -# 75061 "src/ocaml/preprocess/parser_raw.ml" - in - +# 76931 "src/ocaml/preprocess/parser_raw.ml" + in + # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 75066 "src/ocaml/preprocess/parser_raw.ml" +# 76936 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 4481 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 76942 "src/ocaml/preprocess/parser_raw.ml" in -# 4470 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 75072 "src/ocaml/preprocess/parser_raw.ml" +# 4732 "src/ocaml/preprocess/parser_raw.mly" + ( Ptyp_poly (bound_vars, inner_type) ) +# 76948 "src/ocaml/preprocess/parser_raw.ml" in + let _endpos__1_ = _endpos__5_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 4721 "src/ocaml/preprocess/parser_raw.mly" - ( Ptyp_poly (bound_vars, inner_type) ) -# 75078 "src/ocaml/preprocess/parser_raw.ml" +# 1333 "src/ocaml/preprocess/parser_raw.mly" + ( mktyp ~loc:_sloc _1 ) +# 76958 "src/ocaml/preprocess/parser_raw.ml" in - let _endpos__1_ = _endpos__5_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" - ( mktyp ~loc:_sloc _1 ) -# 75088 "src/ocaml/preprocess/parser_raw.ml" +# 4734 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 76964 "src/ocaml/preprocess/parser_raw.ml" in + let _endpos__1_ = _endpos__5_ in -# 4723 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 75094 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in - # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 75101 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in - let m0 = -# 4652 "src/ocaml/preprocess/parser_raw.mly" +# 76971 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in + let m0 = +# 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 75108 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 76978 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 75117 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = - let _1 = -# 4626 "src/ocaml/preprocess/parser_raw.mly" +# 76987 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = + let _1 = +# 4637 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 75124 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4633 "src/ocaml/preprocess/parser_raw.mly" +# 76994 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 75129 "src/ocaml/preprocess/parser_raw.ml" +# 76999 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 4565 "src/ocaml/preprocess/parser_raw.mly" +# 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 75139 "src/ocaml/preprocess/parser_raw.ml" +# 77009 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos_ty_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let (_endpos__1_, _startpos__1_) = (_endpos_ty_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 75149 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4571 "src/ocaml/preprocess/parser_raw.mly" +# 77019 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 75155 "src/ocaml/preprocess/parser_raw.ml" - in +# 77025 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -75236,151 +77107,153 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos__1_inlined2_ in - let _v : (Parsetree.core_type) = let _1 = + let _v = let _1 = - let codomain_with_modes = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let m1 = - let _1 = _1_inlined1 in - -# 4672 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let codomain_with_modes = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in + let m1 = + let _1 = _1_inlined1 in + +# 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 75249 "src/ocaml/preprocess/parser_raw.ml" - - in - let m0 = - let _1 = -# 4648 "src/ocaml/preprocess/parser_raw.mly" +# 77121 "src/ocaml/preprocess/parser_raw.ml" + + in + let m0 = + let _1 = +# 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 75256 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4653 "src/ocaml/preprocess/parser_raw.mly" +# 77128 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 75261 "src/ocaml/preprocess/parser_raw.ml" +# 77133 "src/ocaml/preprocess/parser_raw.ml" + + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 75271 "src/ocaml/preprocess/parser_raw.ml" - - in - let domain_with_modes = - let m1 = -# 4671 "src/ocaml/preprocess/parser_raw.mly" +# 77143 "src/ocaml/preprocess/parser_raw.ml" + + in + let domain_with_modes = + let m1 = +# 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 75278 "src/ocaml/preprocess/parser_raw.ml" - in - let ty = - let _1 = +# 77150 "src/ocaml/preprocess/parser_raw.ml" + in + let ty = let _1 = let _1 = - let bound_vars = - let _1 = - let xs = -# 253 "" + let _1 = + let bound_vars = + let _1 = + let xs = +# 264 "" ( List.rev xs ) -# 75289 "src/ocaml/preprocess/parser_raw.ml" - in - +# 77161 "src/ocaml/preprocess/parser_raw.ml" + in + # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 75294 "src/ocaml/preprocess/parser_raw.ml" +# 77166 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 4481 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 77172 "src/ocaml/preprocess/parser_raw.ml" in -# 4470 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 75300 "src/ocaml/preprocess/parser_raw.ml" +# 4732 "src/ocaml/preprocess/parser_raw.mly" + ( Ptyp_poly (bound_vars, inner_type) ) +# 77178 "src/ocaml/preprocess/parser_raw.ml" in + let _endpos__1_ = _endpos__5_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 4721 "src/ocaml/preprocess/parser_raw.mly" - ( Ptyp_poly (bound_vars, inner_type) ) -# 75306 "src/ocaml/preprocess/parser_raw.ml" +# 1333 "src/ocaml/preprocess/parser_raw.mly" + ( mktyp ~loc:_sloc _1 ) +# 77188 "src/ocaml/preprocess/parser_raw.ml" in - let _endpos__1_ = _endpos__5_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" - ( mktyp ~loc:_sloc _1 ) -# 75316 "src/ocaml/preprocess/parser_raw.ml" +# 4734 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 77194 "src/ocaml/preprocess/parser_raw.ml" in + let _endpos__1_ = _endpos__5_ in -# 4723 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 75322 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in - # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 75329 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in - let m0 = -# 4652 "src/ocaml/preprocess/parser_raw.mly" +# 77201 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in + let m0 = +# 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 75336 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 77208 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 75345 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = - let _1 = -# 4626 "src/ocaml/preprocess/parser_raw.mly" +# 77217 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = + let _1 = +# 4637 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 75352 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4633 "src/ocaml/preprocess/parser_raw.mly" +# 77224 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 75357 "src/ocaml/preprocess/parser_raw.ml" +# 77229 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 4565 "src/ocaml/preprocess/parser_raw.mly" +# 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 75367 "src/ocaml/preprocess/parser_raw.ml" +# 77239 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined2_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined2_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 75377 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4571 "src/ocaml/preprocess/parser_raw.mly" +# 77249 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 75383 "src/ocaml/preprocess/parser_raw.ml" - in +# 77255 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -75457,143 +77330,145 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos_ty_ in - let _v : (Parsetree.core_type) = let _1 = + let _v = let _1 = - let codomain_with_modes = - let m1 = -# 4671 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let codomain_with_modes = + let m1 = +# 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 75467 "src/ocaml/preprocess/parser_raw.ml" - in - let m0 = -# 4652 "src/ocaml/preprocess/parser_raw.mly" +# 77341 "src/ocaml/preprocess/parser_raw.ml" + in + let m0 = +# 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 75472 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 77346 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 75481 "src/ocaml/preprocess/parser_raw.ml" - - in - let domain_with_modes = - let m1 = - let _1 = _1_inlined1 in - -# 4672 "src/ocaml/preprocess/parser_raw.mly" - (_1) -# 75490 "src/ocaml/preprocess/parser_raw.ml" +# 77355 "src/ocaml/preprocess/parser_raw.ml" in - let ty = - let _1 = + let domain_with_modes = + let m1 = + let _1 = _1_inlined1 in + +# 4683 "src/ocaml/preprocess/parser_raw.mly" + (_1) +# 77364 "src/ocaml/preprocess/parser_raw.ml" + + in + let ty = let _1 = let _1 = - let bound_vars = - let _1 = - let xs = -# 253 "" + let _1 = + let bound_vars = + let _1 = + let xs = +# 264 "" ( List.rev xs ) -# 75502 "src/ocaml/preprocess/parser_raw.ml" - in - +# 77376 "src/ocaml/preprocess/parser_raw.ml" + in + # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 75507 "src/ocaml/preprocess/parser_raw.ml" +# 77381 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 4481 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 77387 "src/ocaml/preprocess/parser_raw.ml" in -# 4470 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 75513 "src/ocaml/preprocess/parser_raw.ml" +# 4732 "src/ocaml/preprocess/parser_raw.mly" + ( Ptyp_poly (bound_vars, inner_type) ) +# 77393 "src/ocaml/preprocess/parser_raw.ml" in + let _endpos__1_ = _endpos__5_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 4721 "src/ocaml/preprocess/parser_raw.mly" - ( Ptyp_poly (bound_vars, inner_type) ) -# 75519 "src/ocaml/preprocess/parser_raw.ml" +# 1333 "src/ocaml/preprocess/parser_raw.mly" + ( mktyp ~loc:_sloc _1 ) +# 77403 "src/ocaml/preprocess/parser_raw.ml" in - let _endpos__1_ = _endpos__5_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" - ( mktyp ~loc:_sloc _1 ) -# 75529 "src/ocaml/preprocess/parser_raw.ml" +# 4734 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 77409 "src/ocaml/preprocess/parser_raw.ml" in + let _endpos__1_ = _endpos__5_ in -# 4723 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 75535 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in - # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 75542 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in - let m0 = -# 4652 "src/ocaml/preprocess/parser_raw.mly" +# 77416 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in + let m0 = +# 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 75549 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 77423 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 75558 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = - let _1 = -# 4626 "src/ocaml/preprocess/parser_raw.mly" +# 77432 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = + let _1 = +# 4637 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 75565 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4633 "src/ocaml/preprocess/parser_raw.mly" +# 77439 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 75570 "src/ocaml/preprocess/parser_raw.ml" +# 77444 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 4565 "src/ocaml/preprocess/parser_raw.mly" +# 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 75580 "src/ocaml/preprocess/parser_raw.ml" +# 77454 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos_ty_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let (_endpos__1_, _startpos__1_) = (_endpos_ty_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 75590 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4571 "src/ocaml/preprocess/parser_raw.mly" +# 77464 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 75596 "src/ocaml/preprocess/parser_raw.ml" - in +# 77470 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -75677,144 +77552,146 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos__1_inlined2_ in - let _v : (Parsetree.core_type) = let _1 = + let _v = let _1 = - let codomain_with_modes = - let _1 = _1_inlined2 in - let m1 = -# 4672 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let codomain_with_modes = + let _1 = _1_inlined2 in + let m1 = +# 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 75688 "src/ocaml/preprocess/parser_raw.ml" - in - let m0 = -# 4652 "src/ocaml/preprocess/parser_raw.mly" +# 77564 "src/ocaml/preprocess/parser_raw.ml" + in + let m0 = +# 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 75693 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 77569 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 75702 "src/ocaml/preprocess/parser_raw.ml" - - in - let domain_with_modes = - let m1 = - let _1 = _1_inlined1 in - -# 4672 "src/ocaml/preprocess/parser_raw.mly" - (_1) -# 75711 "src/ocaml/preprocess/parser_raw.ml" +# 77578 "src/ocaml/preprocess/parser_raw.ml" in - let ty = - let _1 = + let domain_with_modes = + let m1 = + let _1 = _1_inlined1 in + +# 4683 "src/ocaml/preprocess/parser_raw.mly" + (_1) +# 77587 "src/ocaml/preprocess/parser_raw.ml" + + in + let ty = let _1 = let _1 = - let bound_vars = - let _1 = - let xs = -# 253 "" + let _1 = + let bound_vars = + let _1 = + let xs = +# 264 "" ( List.rev xs ) -# 75723 "src/ocaml/preprocess/parser_raw.ml" - in - +# 77599 "src/ocaml/preprocess/parser_raw.ml" + in + # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 75728 "src/ocaml/preprocess/parser_raw.ml" +# 77604 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 4481 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 77610 "src/ocaml/preprocess/parser_raw.ml" in -# 4470 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 75734 "src/ocaml/preprocess/parser_raw.ml" +# 4732 "src/ocaml/preprocess/parser_raw.mly" + ( Ptyp_poly (bound_vars, inner_type) ) +# 77616 "src/ocaml/preprocess/parser_raw.ml" in + let _endpos__1_ = _endpos__5_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 4721 "src/ocaml/preprocess/parser_raw.mly" - ( Ptyp_poly (bound_vars, inner_type) ) -# 75740 "src/ocaml/preprocess/parser_raw.ml" +# 1333 "src/ocaml/preprocess/parser_raw.mly" + ( mktyp ~loc:_sloc _1 ) +# 77626 "src/ocaml/preprocess/parser_raw.ml" in - let _endpos__1_ = _endpos__5_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" - ( mktyp ~loc:_sloc _1 ) -# 75750 "src/ocaml/preprocess/parser_raw.ml" +# 4734 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 77632 "src/ocaml/preprocess/parser_raw.ml" in + let _endpos__1_ = _endpos__5_ in -# 4723 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 75756 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in - # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 75763 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in - let m0 = -# 4652 "src/ocaml/preprocess/parser_raw.mly" +# 77639 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in + let m0 = +# 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 75770 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 77646 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 75779 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = - let _1 = -# 4626 "src/ocaml/preprocess/parser_raw.mly" +# 77655 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = + let _1 = +# 4637 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 75786 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4633 "src/ocaml/preprocess/parser_raw.mly" +# 77662 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 75791 "src/ocaml/preprocess/parser_raw.ml" +# 77667 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 4565 "src/ocaml/preprocess/parser_raw.mly" +# 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 75801 "src/ocaml/preprocess/parser_raw.ml" +# 77677 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined2_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined2_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 75811 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4571 "src/ocaml/preprocess/parser_raw.mly" +# 77687 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 75817 "src/ocaml/preprocess/parser_raw.ml" - in +# 77693 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -75898,151 +77775,153 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos_ty_ in - let _v : (Parsetree.core_type) = let _1 = + let _v = let _1 = - let codomain_with_modes = - let _1 = _1_inlined2 in - let m1 = -# 4671 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let codomain_with_modes = + let _1 = _1_inlined2 in + let m1 = +# 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 75909 "src/ocaml/preprocess/parser_raw.ml" - in - let m0 = - let _1 = -# 4648 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 75915 "src/ocaml/preprocess/parser_raw.ml" +# 77787 "src/ocaml/preprocess/parser_raw.ml" in - -# 4653 "src/ocaml/preprocess/parser_raw.mly" + let m0 = + let _1 = +# 4659 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 77793 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 75920 "src/ocaml/preprocess/parser_raw.ml" +# 77798 "src/ocaml/preprocess/parser_raw.ml" + + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 75930 "src/ocaml/preprocess/parser_raw.ml" - - in - let domain_with_modes = - let m1 = - let _1 = _1_inlined1 in - -# 4672 "src/ocaml/preprocess/parser_raw.mly" - (_1) -# 75939 "src/ocaml/preprocess/parser_raw.ml" +# 77808 "src/ocaml/preprocess/parser_raw.ml" in - let ty = - let _1 = + let domain_with_modes = + let m1 = + let _1 = _1_inlined1 in + +# 4683 "src/ocaml/preprocess/parser_raw.mly" + (_1) +# 77817 "src/ocaml/preprocess/parser_raw.ml" + + in + let ty = let _1 = let _1 = - let bound_vars = - let _1 = - let xs = -# 253 "" + let _1 = + let bound_vars = + let _1 = + let xs = +# 264 "" ( List.rev xs ) -# 75951 "src/ocaml/preprocess/parser_raw.ml" - in - +# 77829 "src/ocaml/preprocess/parser_raw.ml" + in + # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 75956 "src/ocaml/preprocess/parser_raw.ml" +# 77834 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 4481 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 77840 "src/ocaml/preprocess/parser_raw.ml" in -# 4470 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 75962 "src/ocaml/preprocess/parser_raw.ml" +# 4732 "src/ocaml/preprocess/parser_raw.mly" + ( Ptyp_poly (bound_vars, inner_type) ) +# 77846 "src/ocaml/preprocess/parser_raw.ml" in + let _endpos__1_ = _endpos__5_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 4721 "src/ocaml/preprocess/parser_raw.mly" - ( Ptyp_poly (bound_vars, inner_type) ) -# 75968 "src/ocaml/preprocess/parser_raw.ml" +# 1333 "src/ocaml/preprocess/parser_raw.mly" + ( mktyp ~loc:_sloc _1 ) +# 77856 "src/ocaml/preprocess/parser_raw.ml" in - let _endpos__1_ = _endpos__5_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" - ( mktyp ~loc:_sloc _1 ) -# 75978 "src/ocaml/preprocess/parser_raw.ml" +# 4734 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 77862 "src/ocaml/preprocess/parser_raw.ml" in + let _endpos__1_ = _endpos__5_ in -# 4723 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 75984 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in - # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 75991 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in - let m0 = -# 4652 "src/ocaml/preprocess/parser_raw.mly" +# 77869 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in + let m0 = +# 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 75998 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 77876 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 76007 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = - let _1 = -# 4626 "src/ocaml/preprocess/parser_raw.mly" +# 77885 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = + let _1 = +# 4637 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 76014 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4633 "src/ocaml/preprocess/parser_raw.mly" +# 77892 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 76019 "src/ocaml/preprocess/parser_raw.ml" +# 77897 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 4565 "src/ocaml/preprocess/parser_raw.mly" +# 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 76029 "src/ocaml/preprocess/parser_raw.ml" +# 77907 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos_ty_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let (_endpos__1_, _startpos__1_) = (_endpos_ty_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 76039 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4571 "src/ocaml/preprocess/parser_raw.mly" +# 77917 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 76045 "src/ocaml/preprocess/parser_raw.ml" - in +# 77923 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -76133,154 +78012,156 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos__1_inlined3_ in - let _v : (Parsetree.core_type) = let _1 = + let _v = let _1 = - let codomain_with_modes = - let (_1_inlined1, _1) = (_1_inlined3, _1_inlined2) in - let m1 = - let _1 = _1_inlined1 in - -# 4672 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let codomain_with_modes = + let (_1_inlined1, _1) = (_1_inlined3, _1_inlined2) in + let m1 = + let _1 = _1_inlined1 in + +# 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 76146 "src/ocaml/preprocess/parser_raw.ml" - - in - let m0 = - let _1 = -# 4648 "src/ocaml/preprocess/parser_raw.mly" +# 78026 "src/ocaml/preprocess/parser_raw.ml" + + in + let m0 = + let _1 = +# 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 76153 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4653 "src/ocaml/preprocess/parser_raw.mly" +# 78033 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 76158 "src/ocaml/preprocess/parser_raw.ml" +# 78038 "src/ocaml/preprocess/parser_raw.ml" + + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 76168 "src/ocaml/preprocess/parser_raw.ml" - - in - let domain_with_modes = - let m1 = - let _1 = _1_inlined1 in - -# 4672 "src/ocaml/preprocess/parser_raw.mly" - (_1) -# 76177 "src/ocaml/preprocess/parser_raw.ml" +# 78048 "src/ocaml/preprocess/parser_raw.ml" in - let ty = - let _1 = + let domain_with_modes = + let m1 = + let _1 = _1_inlined1 in + +# 4683 "src/ocaml/preprocess/parser_raw.mly" + (_1) +# 78057 "src/ocaml/preprocess/parser_raw.ml" + + in + let ty = let _1 = let _1 = - let bound_vars = - let _1 = - let xs = -# 253 "" + let _1 = + let bound_vars = + let _1 = + let xs = +# 264 "" ( List.rev xs ) -# 76189 "src/ocaml/preprocess/parser_raw.ml" - in - +# 78069 "src/ocaml/preprocess/parser_raw.ml" + in + # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 76194 "src/ocaml/preprocess/parser_raw.ml" +# 78074 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 4481 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 78080 "src/ocaml/preprocess/parser_raw.ml" in -# 4470 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 76200 "src/ocaml/preprocess/parser_raw.ml" +# 4732 "src/ocaml/preprocess/parser_raw.mly" + ( Ptyp_poly (bound_vars, inner_type) ) +# 78086 "src/ocaml/preprocess/parser_raw.ml" in + let _endpos__1_ = _endpos__5_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 4721 "src/ocaml/preprocess/parser_raw.mly" - ( Ptyp_poly (bound_vars, inner_type) ) -# 76206 "src/ocaml/preprocess/parser_raw.ml" +# 1333 "src/ocaml/preprocess/parser_raw.mly" + ( mktyp ~loc:_sloc _1 ) +# 78096 "src/ocaml/preprocess/parser_raw.ml" in - let _endpos__1_ = _endpos__5_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" - ( mktyp ~loc:_sloc _1 ) -# 76216 "src/ocaml/preprocess/parser_raw.ml" +# 4734 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 78102 "src/ocaml/preprocess/parser_raw.ml" in + let _endpos__1_ = _endpos__5_ in -# 4723 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 76222 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in - # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 76229 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in - let m0 = -# 4652 "src/ocaml/preprocess/parser_raw.mly" +# 78109 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in + let m0 = +# 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 76236 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 78116 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 76245 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = - let _1 = -# 4626 "src/ocaml/preprocess/parser_raw.mly" +# 78125 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = + let _1 = +# 4637 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 76252 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4633 "src/ocaml/preprocess/parser_raw.mly" +# 78132 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 76257 "src/ocaml/preprocess/parser_raw.ml" +# 78137 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 4565 "src/ocaml/preprocess/parser_raw.mly" +# 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 76267 "src/ocaml/preprocess/parser_raw.ml" +# 78147 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined3_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined3_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 76277 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4571 "src/ocaml/preprocess/parser_raw.mly" +# 78157 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 76283 "src/ocaml/preprocess/parser_raw.ml" - in +# 78163 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -76322,101 +78203,103 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos_ty_inlined1_ in - let _v : (Parsetree.core_type) = let _1 = + let _v = let _1 = - let codomain_with_modes = - let (_endpos_ty_, _startpos_ty_, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1) in - let m1 = -# 4671 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let codomain_with_modes = + let (_endpos_ty_, _startpos_ty_, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1) in + let m1 = +# 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 76333 "src/ocaml/preprocess/parser_raw.ml" - in - let m0 = -# 4652 "src/ocaml/preprocess/parser_raw.mly" +# 78215 "src/ocaml/preprocess/parser_raw.ml" + in + let m0 = +# 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 76338 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 78220 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 76347 "src/ocaml/preprocess/parser_raw.ml" - - in - let domain_with_modes = - let m1 = -# 4671 "src/ocaml/preprocess/parser_raw.mly" +# 78229 "src/ocaml/preprocess/parser_raw.ml" + + in + let domain_with_modes = + let m1 = +# 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 76354 "src/ocaml/preprocess/parser_raw.ml" - in - let ty = - let _1 = -# 4725 "src/ocaml/preprocess/parser_raw.mly" - ( ty ) -# 76360 "src/ocaml/preprocess/parser_raw.ml" +# 78236 "src/ocaml/preprocess/parser_raw.ml" in - let _endpos__1_ = _endpos_ty_ in - + let ty = + let _1 = +# 4736 "src/ocaml/preprocess/parser_raw.mly" + ( ty ) +# 78242 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos_ty_ in + # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 76366 "src/ocaml/preprocess/parser_raw.ml" - - in - let m0 = -# 4652 "src/ocaml/preprocess/parser_raw.mly" +# 78248 "src/ocaml/preprocess/parser_raw.ml" + + in + let m0 = +# 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 76372 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 78254 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 76381 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = - let _1 = -# 4626 "src/ocaml/preprocess/parser_raw.mly" +# 78263 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = + let _1 = +# 4637 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 76388 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4633 "src/ocaml/preprocess/parser_raw.mly" +# 78270 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 76393 "src/ocaml/preprocess/parser_raw.ml" +# 78275 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 4565 "src/ocaml/preprocess/parser_raw.mly" +# 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 76403 "src/ocaml/preprocess/parser_raw.ml" +# 78285 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 76413 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4571 "src/ocaml/preprocess/parser_raw.mly" +# 78295 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 76419 "src/ocaml/preprocess/parser_raw.ml" - in +# 78301 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -76465,101 +78348,103 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos__1_ in - let _v : (Parsetree.core_type) = let _1 = + let _v = let _1 = - let codomain_with_modes = - let (_endpos_ty_, _startpos_ty_, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1) in - let m1 = -# 4672 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let codomain_with_modes = + let (_endpos_ty_, _startpos_ty_, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1) in + let m1 = +# 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 76476 "src/ocaml/preprocess/parser_raw.ml" - in - let m0 = -# 4652 "src/ocaml/preprocess/parser_raw.mly" +# 78360 "src/ocaml/preprocess/parser_raw.ml" + in + let m0 = +# 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 76481 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 78365 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 76490 "src/ocaml/preprocess/parser_raw.ml" - - in - let domain_with_modes = - let m1 = -# 4671 "src/ocaml/preprocess/parser_raw.mly" +# 78374 "src/ocaml/preprocess/parser_raw.ml" + + in + let domain_with_modes = + let m1 = +# 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 76497 "src/ocaml/preprocess/parser_raw.ml" - in - let ty = - let _1 = -# 4725 "src/ocaml/preprocess/parser_raw.mly" - ( ty ) -# 76503 "src/ocaml/preprocess/parser_raw.ml" +# 78381 "src/ocaml/preprocess/parser_raw.ml" in - let _endpos__1_ = _endpos_ty_ in - + let ty = + let _1 = +# 4736 "src/ocaml/preprocess/parser_raw.mly" + ( ty ) +# 78387 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos_ty_ in + # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 76509 "src/ocaml/preprocess/parser_raw.ml" - - in - let m0 = -# 4652 "src/ocaml/preprocess/parser_raw.mly" +# 78393 "src/ocaml/preprocess/parser_raw.ml" + + in + let m0 = +# 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 76515 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 78399 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 76524 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = - let _1 = -# 4626 "src/ocaml/preprocess/parser_raw.mly" +# 78408 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = + let _1 = +# 4637 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 76531 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4633 "src/ocaml/preprocess/parser_raw.mly" +# 78415 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 76536 "src/ocaml/preprocess/parser_raw.ml" +# 78420 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 4565 "src/ocaml/preprocess/parser_raw.mly" +# 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 76546 "src/ocaml/preprocess/parser_raw.ml" +# 78430 "src/ocaml/preprocess/parser_raw.ml" + + in + let _startpos__1_ = _startpos_label_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _startpos__1_ = _startpos_label_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 76556 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4571 "src/ocaml/preprocess/parser_raw.mly" +# 78440 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 76562 "src/ocaml/preprocess/parser_raw.ml" - in +# 78446 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -76608,108 +78493,110 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos_ty_inlined1_ in - let _v : (Parsetree.core_type) = let _1 = + let _v = let _1 = - let codomain_with_modes = - let (_endpos_ty_, _startpos_ty_, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1) in - let m1 = -# 4671 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let codomain_with_modes = + let (_endpos_ty_, _startpos_ty_, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1) in + let m1 = +# 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 76619 "src/ocaml/preprocess/parser_raw.ml" - in - let m0 = - let _1 = -# 4648 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 76625 "src/ocaml/preprocess/parser_raw.ml" +# 78505 "src/ocaml/preprocess/parser_raw.ml" in - -# 4653 "src/ocaml/preprocess/parser_raw.mly" + let m0 = + let _1 = +# 4659 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 78511 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 76630 "src/ocaml/preprocess/parser_raw.ml" +# 78516 "src/ocaml/preprocess/parser_raw.ml" + + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 76640 "src/ocaml/preprocess/parser_raw.ml" - - in - let domain_with_modes = - let m1 = -# 4671 "src/ocaml/preprocess/parser_raw.mly" +# 78526 "src/ocaml/preprocess/parser_raw.ml" + + in + let domain_with_modes = + let m1 = +# 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 76647 "src/ocaml/preprocess/parser_raw.ml" - in - let ty = - let _1 = -# 4725 "src/ocaml/preprocess/parser_raw.mly" - ( ty ) -# 76653 "src/ocaml/preprocess/parser_raw.ml" +# 78533 "src/ocaml/preprocess/parser_raw.ml" in - let _endpos__1_ = _endpos_ty_ in - + let ty = + let _1 = +# 4736 "src/ocaml/preprocess/parser_raw.mly" + ( ty ) +# 78539 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos_ty_ in + # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 76659 "src/ocaml/preprocess/parser_raw.ml" - - in - let m0 = -# 4652 "src/ocaml/preprocess/parser_raw.mly" +# 78545 "src/ocaml/preprocess/parser_raw.ml" + + in + let m0 = +# 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 76665 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 78551 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 76674 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = - let _1 = -# 4626 "src/ocaml/preprocess/parser_raw.mly" +# 78560 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = + let _1 = +# 4637 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 76681 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4633 "src/ocaml/preprocess/parser_raw.mly" +# 78567 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 76686 "src/ocaml/preprocess/parser_raw.ml" +# 78572 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 4565 "src/ocaml/preprocess/parser_raw.mly" +# 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 76696 "src/ocaml/preprocess/parser_raw.ml" +# 78582 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 76706 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4571 "src/ocaml/preprocess/parser_raw.mly" +# 78592 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 76712 "src/ocaml/preprocess/parser_raw.ml" - in +# 78598 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -76765,111 +78652,113 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos__1_inlined1_ in - let _v : (Parsetree.core_type) = let _1 = + let _v = let _1 = - let codomain_with_modes = - let (_endpos_ty_, _startpos_ty_, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1) in - let m1 = - let _1 = _1_inlined1 in - -# 4672 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let codomain_with_modes = + let (_endpos_ty_, _startpos_ty_, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1) in + let m1 = + let _1 = _1_inlined1 in + +# 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 76778 "src/ocaml/preprocess/parser_raw.ml" - - in - let m0 = - let _1 = -# 4648 "src/ocaml/preprocess/parser_raw.mly" +# 78666 "src/ocaml/preprocess/parser_raw.ml" + + in + let m0 = + let _1 = +# 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 76785 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4653 "src/ocaml/preprocess/parser_raw.mly" +# 78673 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 76790 "src/ocaml/preprocess/parser_raw.ml" +# 78678 "src/ocaml/preprocess/parser_raw.ml" + + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 76800 "src/ocaml/preprocess/parser_raw.ml" - - in - let domain_with_modes = - let m1 = -# 4671 "src/ocaml/preprocess/parser_raw.mly" +# 78688 "src/ocaml/preprocess/parser_raw.ml" + + in + let domain_with_modes = + let m1 = +# 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 76807 "src/ocaml/preprocess/parser_raw.ml" - in - let ty = - let _1 = -# 4725 "src/ocaml/preprocess/parser_raw.mly" - ( ty ) -# 76813 "src/ocaml/preprocess/parser_raw.ml" +# 78695 "src/ocaml/preprocess/parser_raw.ml" in - let _endpos__1_ = _endpos_ty_ in - + let ty = + let _1 = +# 4736 "src/ocaml/preprocess/parser_raw.mly" + ( ty ) +# 78701 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos_ty_ in + # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 76819 "src/ocaml/preprocess/parser_raw.ml" - - in - let m0 = -# 4652 "src/ocaml/preprocess/parser_raw.mly" +# 78707 "src/ocaml/preprocess/parser_raw.ml" + + in + let m0 = +# 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 76825 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 78713 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 76834 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = - let _1 = -# 4626 "src/ocaml/preprocess/parser_raw.mly" +# 78722 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = + let _1 = +# 4637 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 76841 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4633 "src/ocaml/preprocess/parser_raw.mly" +# 78729 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 76846 "src/ocaml/preprocess/parser_raw.ml" +# 78734 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 4565 "src/ocaml/preprocess/parser_raw.mly" +# 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 76856 "src/ocaml/preprocess/parser_raw.ml" +# 78744 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 76866 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4571 "src/ocaml/preprocess/parser_raw.mly" +# 78754 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 76872 "src/ocaml/preprocess/parser_raw.ml" - in +# 78760 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -76918,101 +78807,103 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos_ty_inlined1_ in - let _v : (Parsetree.core_type) = let _1 = + let _v = let _1 = - let codomain_with_modes = - let (_endpos_ty_, _startpos_ty_, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1) in - let m1 = -# 4671 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let codomain_with_modes = + let (_endpos_ty_, _startpos_ty_, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1) in + let m1 = +# 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 76929 "src/ocaml/preprocess/parser_raw.ml" - in - let m0 = -# 4652 "src/ocaml/preprocess/parser_raw.mly" +# 78819 "src/ocaml/preprocess/parser_raw.ml" + in + let m0 = +# 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 76934 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 78824 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 76943 "src/ocaml/preprocess/parser_raw.ml" - - in - let domain_with_modes = - let m1 = -# 4672 "src/ocaml/preprocess/parser_raw.mly" +# 78833 "src/ocaml/preprocess/parser_raw.ml" + + in + let domain_with_modes = + let m1 = +# 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 76950 "src/ocaml/preprocess/parser_raw.ml" - in - let ty = - let _1 = -# 4725 "src/ocaml/preprocess/parser_raw.mly" - ( ty ) -# 76956 "src/ocaml/preprocess/parser_raw.ml" +# 78840 "src/ocaml/preprocess/parser_raw.ml" in - let _endpos__1_ = _endpos_ty_ in - + let ty = + let _1 = +# 4736 "src/ocaml/preprocess/parser_raw.mly" + ( ty ) +# 78846 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos_ty_ in + # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 76962 "src/ocaml/preprocess/parser_raw.ml" - - in - let m0 = -# 4652 "src/ocaml/preprocess/parser_raw.mly" +# 78852 "src/ocaml/preprocess/parser_raw.ml" + + in + let m0 = +# 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 76968 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 78858 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 76977 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = - let _1 = -# 4626 "src/ocaml/preprocess/parser_raw.mly" +# 78867 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = + let _1 = +# 4637 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 76984 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4633 "src/ocaml/preprocess/parser_raw.mly" +# 78874 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 76989 "src/ocaml/preprocess/parser_raw.ml" +# 78879 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 4565 "src/ocaml/preprocess/parser_raw.mly" +# 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 76999 "src/ocaml/preprocess/parser_raw.ml" +# 78889 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 77009 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4571 "src/ocaml/preprocess/parser_raw.mly" +# 78899 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 77015 "src/ocaml/preprocess/parser_raw.ml" - in +# 78905 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -77068,101 +78959,103 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos__1_inlined1_ in - let _v : (Parsetree.core_type) = let _1 = + let _v = let _1 = - let codomain_with_modes = - let (_endpos_ty_, _startpos_ty_, _1, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, _1_inlined1, ty_inlined1) in - let m1 = -# 4672 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let codomain_with_modes = + let (_endpos_ty_, _startpos_ty_, _1, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, _1_inlined1, ty_inlined1) in + let m1 = +# 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 77079 "src/ocaml/preprocess/parser_raw.ml" - in - let m0 = -# 4652 "src/ocaml/preprocess/parser_raw.mly" +# 78971 "src/ocaml/preprocess/parser_raw.ml" + in + let m0 = +# 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 77084 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 78976 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 77093 "src/ocaml/preprocess/parser_raw.ml" - - in - let domain_with_modes = - let m1 = -# 4672 "src/ocaml/preprocess/parser_raw.mly" +# 78985 "src/ocaml/preprocess/parser_raw.ml" + + in + let domain_with_modes = + let m1 = +# 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 77100 "src/ocaml/preprocess/parser_raw.ml" - in - let ty = - let _1 = -# 4725 "src/ocaml/preprocess/parser_raw.mly" - ( ty ) -# 77106 "src/ocaml/preprocess/parser_raw.ml" +# 78992 "src/ocaml/preprocess/parser_raw.ml" in - let _endpos__1_ = _endpos_ty_ in - + let ty = + let _1 = +# 4736 "src/ocaml/preprocess/parser_raw.mly" + ( ty ) +# 78998 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos_ty_ in + # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 77112 "src/ocaml/preprocess/parser_raw.ml" - - in - let m0 = -# 4652 "src/ocaml/preprocess/parser_raw.mly" +# 79004 "src/ocaml/preprocess/parser_raw.ml" + + in + let m0 = +# 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 77118 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 79010 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 77127 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = - let _1 = -# 4626 "src/ocaml/preprocess/parser_raw.mly" +# 79019 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = + let _1 = +# 4637 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 77134 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4633 "src/ocaml/preprocess/parser_raw.mly" +# 79026 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 77139 "src/ocaml/preprocess/parser_raw.ml" +# 79031 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 4565 "src/ocaml/preprocess/parser_raw.mly" +# 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 77149 "src/ocaml/preprocess/parser_raw.ml" +# 79041 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 77159 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4571 "src/ocaml/preprocess/parser_raw.mly" +# 79051 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 77165 "src/ocaml/preprocess/parser_raw.ml" - in +# 79057 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -77218,108 +79111,110 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos_ty_inlined1_ in - let _v : (Parsetree.core_type) = let _1 = + let _v = let _1 = - let codomain_with_modes = - let (_endpos_ty_, _startpos_ty_, ty, _1) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1, _1_inlined1) in - let m1 = -# 4671 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let codomain_with_modes = + let (_endpos_ty_, _startpos_ty_, ty, _1) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1, _1_inlined1) in + let m1 = +# 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 77229 "src/ocaml/preprocess/parser_raw.ml" - in - let m0 = - let _1 = -# 4648 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 77235 "src/ocaml/preprocess/parser_raw.ml" +# 79123 "src/ocaml/preprocess/parser_raw.ml" in - -# 4653 "src/ocaml/preprocess/parser_raw.mly" + let m0 = + let _1 = +# 4659 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 79129 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 77240 "src/ocaml/preprocess/parser_raw.ml" +# 79134 "src/ocaml/preprocess/parser_raw.ml" + + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 77250 "src/ocaml/preprocess/parser_raw.ml" - - in - let domain_with_modes = - let m1 = -# 4672 "src/ocaml/preprocess/parser_raw.mly" +# 79144 "src/ocaml/preprocess/parser_raw.ml" + + in + let domain_with_modes = + let m1 = +# 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 77257 "src/ocaml/preprocess/parser_raw.ml" - in - let ty = - let _1 = -# 4725 "src/ocaml/preprocess/parser_raw.mly" - ( ty ) -# 77263 "src/ocaml/preprocess/parser_raw.ml" +# 79151 "src/ocaml/preprocess/parser_raw.ml" in - let _endpos__1_ = _endpos_ty_ in - + let ty = + let _1 = +# 4736 "src/ocaml/preprocess/parser_raw.mly" + ( ty ) +# 79157 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos_ty_ in + # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 77269 "src/ocaml/preprocess/parser_raw.ml" - - in - let m0 = -# 4652 "src/ocaml/preprocess/parser_raw.mly" +# 79163 "src/ocaml/preprocess/parser_raw.ml" + + in + let m0 = +# 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 77275 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 79169 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 77284 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = - let _1 = -# 4626 "src/ocaml/preprocess/parser_raw.mly" +# 79178 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = + let _1 = +# 4637 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 77291 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4633 "src/ocaml/preprocess/parser_raw.mly" +# 79185 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 77296 "src/ocaml/preprocess/parser_raw.ml" +# 79190 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 4565 "src/ocaml/preprocess/parser_raw.mly" +# 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 77306 "src/ocaml/preprocess/parser_raw.ml" +# 79200 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 77316 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4571 "src/ocaml/preprocess/parser_raw.mly" +# 79210 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 77322 "src/ocaml/preprocess/parser_raw.ml" - in +# 79216 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -77382,111 +79277,113 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos__1_inlined2_ in - let _v : (Parsetree.core_type) = let _1 = + let _v = let _1 = - let codomain_with_modes = - let (_endpos_ty_, _startpos_ty_, _1_inlined1, ty, _1) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, _1_inlined2, ty_inlined1, _1_inlined1) in - let m1 = - let _1 = _1_inlined1 in - -# 4672 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let codomain_with_modes = + let (_endpos_ty_, _startpos_ty_, _1_inlined1, ty, _1) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, _1_inlined2, ty_inlined1, _1_inlined1) in + let m1 = + let _1 = _1_inlined1 in + +# 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 77395 "src/ocaml/preprocess/parser_raw.ml" - - in - let m0 = - let _1 = -# 4648 "src/ocaml/preprocess/parser_raw.mly" +# 79291 "src/ocaml/preprocess/parser_raw.ml" + + in + let m0 = + let _1 = +# 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 77402 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4653 "src/ocaml/preprocess/parser_raw.mly" +# 79298 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 77407 "src/ocaml/preprocess/parser_raw.ml" +# 79303 "src/ocaml/preprocess/parser_raw.ml" + + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 77417 "src/ocaml/preprocess/parser_raw.ml" - - in - let domain_with_modes = - let m1 = -# 4672 "src/ocaml/preprocess/parser_raw.mly" +# 79313 "src/ocaml/preprocess/parser_raw.ml" + + in + let domain_with_modes = + let m1 = +# 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 77424 "src/ocaml/preprocess/parser_raw.ml" - in - let ty = - let _1 = -# 4725 "src/ocaml/preprocess/parser_raw.mly" - ( ty ) -# 77430 "src/ocaml/preprocess/parser_raw.ml" +# 79320 "src/ocaml/preprocess/parser_raw.ml" in - let _endpos__1_ = _endpos_ty_ in - + let ty = + let _1 = +# 4736 "src/ocaml/preprocess/parser_raw.mly" + ( ty ) +# 79326 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos_ty_ in + # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 77436 "src/ocaml/preprocess/parser_raw.ml" - - in - let m0 = -# 4652 "src/ocaml/preprocess/parser_raw.mly" +# 79332 "src/ocaml/preprocess/parser_raw.ml" + + in + let m0 = +# 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 77442 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 79338 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 77451 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = - let _1 = -# 4626 "src/ocaml/preprocess/parser_raw.mly" +# 79347 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = + let _1 = +# 4637 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 77458 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4633 "src/ocaml/preprocess/parser_raw.mly" +# 79354 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 77463 "src/ocaml/preprocess/parser_raw.ml" +# 79359 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 4565 "src/ocaml/preprocess/parser_raw.mly" +# 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 77473 "src/ocaml/preprocess/parser_raw.ml" +# 79369 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined2_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined2_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 77483 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4571 "src/ocaml/preprocess/parser_raw.mly" +# 79379 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 77489 "src/ocaml/preprocess/parser_raw.ml" - in +# 79385 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -77563,148 +79460,150 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos_ty_ in - let _v : (Parsetree.core_type) = let _1 = + let _v = let _1 = - let codomain_with_modes = - let m1 = -# 4671 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let codomain_with_modes = + let m1 = +# 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 77573 "src/ocaml/preprocess/parser_raw.ml" - in - let m0 = -# 4652 "src/ocaml/preprocess/parser_raw.mly" +# 79471 "src/ocaml/preprocess/parser_raw.ml" + in + let m0 = +# 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 77578 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 79476 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 77587 "src/ocaml/preprocess/parser_raw.ml" - - in - let domain_with_modes = - let m1 = -# 4671 "src/ocaml/preprocess/parser_raw.mly" +# 79485 "src/ocaml/preprocess/parser_raw.ml" + + in + let domain_with_modes = + let m1 = +# 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 77594 "src/ocaml/preprocess/parser_raw.ml" - in - let ty = - let _startpos__1_ = _startpos__1_inlined1_ in - let _1 = +# 79492 "src/ocaml/preprocess/parser_raw.ml" + in + let ty = + let _startpos__1_ = _startpos__1_inlined1_ in let _1 = let _1 = - let bound_vars = - let _1 = - let xs = -# 253 "" + let _1 = + let bound_vars = + let _1 = + let xs = +# 264 "" ( List.rev xs ) -# 77606 "src/ocaml/preprocess/parser_raw.ml" - in - +# 79504 "src/ocaml/preprocess/parser_raw.ml" + in + # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 77611 "src/ocaml/preprocess/parser_raw.ml" +# 79509 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 4481 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 79515 "src/ocaml/preprocess/parser_raw.ml" in -# 4470 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 77617 "src/ocaml/preprocess/parser_raw.ml" +# 4732 "src/ocaml/preprocess/parser_raw.mly" + ( Ptyp_poly (bound_vars, inner_type) ) +# 79521 "src/ocaml/preprocess/parser_raw.ml" in + let _endpos__1_ = _endpos__5_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 4721 "src/ocaml/preprocess/parser_raw.mly" - ( Ptyp_poly (bound_vars, inner_type) ) -# 77623 "src/ocaml/preprocess/parser_raw.ml" +# 1333 "src/ocaml/preprocess/parser_raw.mly" + ( mktyp ~loc:_sloc _1 ) +# 79531 "src/ocaml/preprocess/parser_raw.ml" in - let _endpos__1_ = _endpos__5_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" - ( mktyp ~loc:_sloc _1 ) -# 77633 "src/ocaml/preprocess/parser_raw.ml" +# 4734 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 79537 "src/ocaml/preprocess/parser_raw.ml" in + let _endpos__1_ = _endpos__5_ in -# 4723 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 77639 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in - # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 77646 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in - let m0 = - let _1 = -# 4648 "src/ocaml/preprocess/parser_raw.mly" +# 79544 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in + let m0 = + let _1 = +# 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 77654 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4653 "src/ocaml/preprocess/parser_raw.mly" +# 79552 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 77659 "src/ocaml/preprocess/parser_raw.ml" +# 79557 "src/ocaml/preprocess/parser_raw.ml" + + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 77669 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = - let _1 = -# 4626 "src/ocaml/preprocess/parser_raw.mly" +# 79567 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = + let _1 = +# 4637 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 77676 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4633 "src/ocaml/preprocess/parser_raw.mly" +# 79574 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 77681 "src/ocaml/preprocess/parser_raw.ml" +# 79579 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 4565 "src/ocaml/preprocess/parser_raw.mly" +# 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 77691 "src/ocaml/preprocess/parser_raw.ml" +# 79589 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos_ty_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let (_endpos__1_, _startpos__1_) = (_endpos_ty_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 77701 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4571 "src/ocaml/preprocess/parser_raw.mly" +# 79599 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 77707 "src/ocaml/preprocess/parser_raw.ml" - in +# 79605 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -77788,149 +79687,151 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos__1_inlined2_ in - let _v : (Parsetree.core_type) = let _1 = + let _v = let _1 = - let codomain_with_modes = - let _1 = _1_inlined2 in - let m1 = -# 4672 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let codomain_with_modes = + let _1 = _1_inlined2 in + let m1 = +# 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 77799 "src/ocaml/preprocess/parser_raw.ml" - in - let m0 = -# 4652 "src/ocaml/preprocess/parser_raw.mly" +# 79699 "src/ocaml/preprocess/parser_raw.ml" + in + let m0 = +# 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 77804 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 79704 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 77813 "src/ocaml/preprocess/parser_raw.ml" - - in - let domain_with_modes = - let m1 = -# 4671 "src/ocaml/preprocess/parser_raw.mly" +# 79713 "src/ocaml/preprocess/parser_raw.ml" + + in + let domain_with_modes = + let m1 = +# 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 77820 "src/ocaml/preprocess/parser_raw.ml" - in - let ty = - let _startpos__1_ = _startpos__1_inlined1_ in - let _1 = +# 79720 "src/ocaml/preprocess/parser_raw.ml" + in + let ty = + let _startpos__1_ = _startpos__1_inlined1_ in let _1 = let _1 = - let bound_vars = - let _1 = - let xs = -# 253 "" + let _1 = + let bound_vars = + let _1 = + let xs = +# 264 "" ( List.rev xs ) -# 77832 "src/ocaml/preprocess/parser_raw.ml" - in - +# 79732 "src/ocaml/preprocess/parser_raw.ml" + in + # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 77837 "src/ocaml/preprocess/parser_raw.ml" +# 79737 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 4481 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 79743 "src/ocaml/preprocess/parser_raw.ml" in -# 4470 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 77843 "src/ocaml/preprocess/parser_raw.ml" +# 4732 "src/ocaml/preprocess/parser_raw.mly" + ( Ptyp_poly (bound_vars, inner_type) ) +# 79749 "src/ocaml/preprocess/parser_raw.ml" in + let _endpos__1_ = _endpos__5_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 4721 "src/ocaml/preprocess/parser_raw.mly" - ( Ptyp_poly (bound_vars, inner_type) ) -# 77849 "src/ocaml/preprocess/parser_raw.ml" +# 1333 "src/ocaml/preprocess/parser_raw.mly" + ( mktyp ~loc:_sloc _1 ) +# 79759 "src/ocaml/preprocess/parser_raw.ml" in - let _endpos__1_ = _endpos__5_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" - ( mktyp ~loc:_sloc _1 ) -# 77859 "src/ocaml/preprocess/parser_raw.ml" +# 4734 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 79765 "src/ocaml/preprocess/parser_raw.ml" in + let _endpos__1_ = _endpos__5_ in -# 4723 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 77865 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in - # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 77872 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in - let m0 = - let _1 = -# 4648 "src/ocaml/preprocess/parser_raw.mly" +# 79772 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in + let m0 = + let _1 = +# 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 77880 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4653 "src/ocaml/preprocess/parser_raw.mly" +# 79780 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 77885 "src/ocaml/preprocess/parser_raw.ml" +# 79785 "src/ocaml/preprocess/parser_raw.ml" + + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 77895 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = - let _1 = -# 4626 "src/ocaml/preprocess/parser_raw.mly" +# 79795 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = + let _1 = +# 4637 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 77902 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4633 "src/ocaml/preprocess/parser_raw.mly" +# 79802 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 77907 "src/ocaml/preprocess/parser_raw.ml" +# 79807 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 4565 "src/ocaml/preprocess/parser_raw.mly" +# 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 77917 "src/ocaml/preprocess/parser_raw.ml" +# 79817 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined2_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined2_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 77927 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4571 "src/ocaml/preprocess/parser_raw.mly" +# 79827 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 77933 "src/ocaml/preprocess/parser_raw.ml" - in +# 79833 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -78014,156 +79915,158 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos_ty_ in - let _v : (Parsetree.core_type) = let _1 = + let _v = let _1 = - let codomain_with_modes = - let _1 = _1_inlined2 in - let m1 = -# 4671 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let codomain_with_modes = + let _1 = _1_inlined2 in + let m1 = +# 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 78025 "src/ocaml/preprocess/parser_raw.ml" - in - let m0 = - let _1 = -# 4648 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 78031 "src/ocaml/preprocess/parser_raw.ml" +# 79927 "src/ocaml/preprocess/parser_raw.ml" in - -# 4653 "src/ocaml/preprocess/parser_raw.mly" + let m0 = + let _1 = +# 4659 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 79933 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 78036 "src/ocaml/preprocess/parser_raw.ml" +# 79938 "src/ocaml/preprocess/parser_raw.ml" + + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 78046 "src/ocaml/preprocess/parser_raw.ml" - - in - let domain_with_modes = - let m1 = -# 4671 "src/ocaml/preprocess/parser_raw.mly" +# 79948 "src/ocaml/preprocess/parser_raw.ml" + + in + let domain_with_modes = + let m1 = +# 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 78053 "src/ocaml/preprocess/parser_raw.ml" - in - let ty = - let _startpos__1_ = _startpos__1_inlined1_ in - let _1 = +# 79955 "src/ocaml/preprocess/parser_raw.ml" + in + let ty = + let _startpos__1_ = _startpos__1_inlined1_ in let _1 = let _1 = - let bound_vars = - let _1 = - let xs = -# 253 "" + let _1 = + let bound_vars = + let _1 = + let xs = +# 264 "" ( List.rev xs ) -# 78065 "src/ocaml/preprocess/parser_raw.ml" - in - +# 79967 "src/ocaml/preprocess/parser_raw.ml" + in + # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 78070 "src/ocaml/preprocess/parser_raw.ml" +# 79972 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 4481 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 79978 "src/ocaml/preprocess/parser_raw.ml" in -# 4470 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 78076 "src/ocaml/preprocess/parser_raw.ml" +# 4732 "src/ocaml/preprocess/parser_raw.mly" + ( Ptyp_poly (bound_vars, inner_type) ) +# 79984 "src/ocaml/preprocess/parser_raw.ml" in + let _endpos__1_ = _endpos__5_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 4721 "src/ocaml/preprocess/parser_raw.mly" - ( Ptyp_poly (bound_vars, inner_type) ) -# 78082 "src/ocaml/preprocess/parser_raw.ml" +# 1333 "src/ocaml/preprocess/parser_raw.mly" + ( mktyp ~loc:_sloc _1 ) +# 79994 "src/ocaml/preprocess/parser_raw.ml" in - let _endpos__1_ = _endpos__5_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" - ( mktyp ~loc:_sloc _1 ) -# 78092 "src/ocaml/preprocess/parser_raw.ml" +# 4734 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 80000 "src/ocaml/preprocess/parser_raw.ml" in + let _endpos__1_ = _endpos__5_ in -# 4723 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 78098 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in - # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 78105 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in - let m0 = - let _1 = -# 4648 "src/ocaml/preprocess/parser_raw.mly" +# 80007 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in + let m0 = + let _1 = +# 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 78113 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4653 "src/ocaml/preprocess/parser_raw.mly" +# 80015 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 78118 "src/ocaml/preprocess/parser_raw.ml" +# 80020 "src/ocaml/preprocess/parser_raw.ml" + + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 78128 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = - let _1 = -# 4626 "src/ocaml/preprocess/parser_raw.mly" +# 80030 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = + let _1 = +# 4637 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 78135 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4633 "src/ocaml/preprocess/parser_raw.mly" +# 80037 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 78140 "src/ocaml/preprocess/parser_raw.ml" +# 80042 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 4565 "src/ocaml/preprocess/parser_raw.mly" +# 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 78150 "src/ocaml/preprocess/parser_raw.ml" +# 80052 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos_ty_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let (_endpos__1_, _startpos__1_) = (_endpos_ty_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 78160 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4571 "src/ocaml/preprocess/parser_raw.mly" +# 80062 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 78166 "src/ocaml/preprocess/parser_raw.ml" - in +# 80068 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -78254,159 +80157,161 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos__1_inlined3_ in - let _v : (Parsetree.core_type) = let _1 = + let _v = let _1 = - let codomain_with_modes = - let (_1_inlined1, _1) = (_1_inlined3, _1_inlined2) in - let m1 = - let _1 = _1_inlined1 in - -# 4672 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let codomain_with_modes = + let (_1_inlined1, _1) = (_1_inlined3, _1_inlined2) in + let m1 = + let _1 = _1_inlined1 in + +# 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 78267 "src/ocaml/preprocess/parser_raw.ml" - - in - let m0 = - let _1 = -# 4648 "src/ocaml/preprocess/parser_raw.mly" +# 80171 "src/ocaml/preprocess/parser_raw.ml" + + in + let m0 = + let _1 = +# 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 78274 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4653 "src/ocaml/preprocess/parser_raw.mly" +# 80178 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 78279 "src/ocaml/preprocess/parser_raw.ml" +# 80183 "src/ocaml/preprocess/parser_raw.ml" + + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 78289 "src/ocaml/preprocess/parser_raw.ml" - - in - let domain_with_modes = - let m1 = -# 4671 "src/ocaml/preprocess/parser_raw.mly" +# 80193 "src/ocaml/preprocess/parser_raw.ml" + + in + let domain_with_modes = + let m1 = +# 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 78296 "src/ocaml/preprocess/parser_raw.ml" - in - let ty = - let _startpos__1_ = _startpos__1_inlined1_ in - let _1 = +# 80200 "src/ocaml/preprocess/parser_raw.ml" + in + let ty = + let _startpos__1_ = _startpos__1_inlined1_ in let _1 = let _1 = - let bound_vars = - let _1 = - let xs = -# 253 "" + let _1 = + let bound_vars = + let _1 = + let xs = +# 264 "" ( List.rev xs ) -# 78308 "src/ocaml/preprocess/parser_raw.ml" - in - +# 80212 "src/ocaml/preprocess/parser_raw.ml" + in + # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 78313 "src/ocaml/preprocess/parser_raw.ml" +# 80217 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 4481 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 80223 "src/ocaml/preprocess/parser_raw.ml" in -# 4470 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 78319 "src/ocaml/preprocess/parser_raw.ml" +# 4732 "src/ocaml/preprocess/parser_raw.mly" + ( Ptyp_poly (bound_vars, inner_type) ) +# 80229 "src/ocaml/preprocess/parser_raw.ml" in + let _endpos__1_ = _endpos__5_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 4721 "src/ocaml/preprocess/parser_raw.mly" - ( Ptyp_poly (bound_vars, inner_type) ) -# 78325 "src/ocaml/preprocess/parser_raw.ml" +# 1333 "src/ocaml/preprocess/parser_raw.mly" + ( mktyp ~loc:_sloc _1 ) +# 80239 "src/ocaml/preprocess/parser_raw.ml" in - let _endpos__1_ = _endpos__5_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" - ( mktyp ~loc:_sloc _1 ) -# 78335 "src/ocaml/preprocess/parser_raw.ml" +# 4734 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 80245 "src/ocaml/preprocess/parser_raw.ml" in + let _endpos__1_ = _endpos__5_ in -# 4723 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 78341 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in - # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 78348 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in - let m0 = - let _1 = -# 4648 "src/ocaml/preprocess/parser_raw.mly" +# 80252 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in + let m0 = + let _1 = +# 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 78356 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4653 "src/ocaml/preprocess/parser_raw.mly" +# 80260 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 78361 "src/ocaml/preprocess/parser_raw.ml" +# 80265 "src/ocaml/preprocess/parser_raw.ml" + + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 78371 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = - let _1 = -# 4626 "src/ocaml/preprocess/parser_raw.mly" +# 80275 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = + let _1 = +# 4637 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 78378 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4633 "src/ocaml/preprocess/parser_raw.mly" +# 80282 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 78383 "src/ocaml/preprocess/parser_raw.ml" +# 80287 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 4565 "src/ocaml/preprocess/parser_raw.mly" +# 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 78393 "src/ocaml/preprocess/parser_raw.ml" +# 80297 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined3_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined3_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 78403 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4571 "src/ocaml/preprocess/parser_raw.mly" +# 80307 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 78409 "src/ocaml/preprocess/parser_raw.ml" - in +# 80313 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -78490,151 +80395,153 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos_ty_ in - let _v : (Parsetree.core_type) = let _1 = + let _v = let _1 = - let codomain_with_modes = - let m1 = -# 4671 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let codomain_with_modes = + let m1 = +# 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 78500 "src/ocaml/preprocess/parser_raw.ml" - in - let m0 = -# 4652 "src/ocaml/preprocess/parser_raw.mly" +# 80406 "src/ocaml/preprocess/parser_raw.ml" + in + let m0 = +# 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 78505 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 80411 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 78514 "src/ocaml/preprocess/parser_raw.ml" - - in - let domain_with_modes = - let m1 = - let _1 = _1_inlined2 in - -# 4672 "src/ocaml/preprocess/parser_raw.mly" - (_1) -# 78523 "src/ocaml/preprocess/parser_raw.ml" +# 80420 "src/ocaml/preprocess/parser_raw.ml" in - let ty = - let _startpos__1_ = _startpos__1_inlined1_ in - let _1 = + let domain_with_modes = + let m1 = + let _1 = _1_inlined2 in + +# 4683 "src/ocaml/preprocess/parser_raw.mly" + (_1) +# 80429 "src/ocaml/preprocess/parser_raw.ml" + + in + let ty = + let _startpos__1_ = _startpos__1_inlined1_ in let _1 = let _1 = - let bound_vars = - let _1 = - let xs = -# 253 "" + let _1 = + let bound_vars = + let _1 = + let xs = +# 264 "" ( List.rev xs ) -# 78536 "src/ocaml/preprocess/parser_raw.ml" - in - +# 80442 "src/ocaml/preprocess/parser_raw.ml" + in + # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 78541 "src/ocaml/preprocess/parser_raw.ml" +# 80447 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 4481 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 80453 "src/ocaml/preprocess/parser_raw.ml" in -# 4470 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 78547 "src/ocaml/preprocess/parser_raw.ml" +# 4732 "src/ocaml/preprocess/parser_raw.mly" + ( Ptyp_poly (bound_vars, inner_type) ) +# 80459 "src/ocaml/preprocess/parser_raw.ml" in + let _endpos__1_ = _endpos__5_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 4721 "src/ocaml/preprocess/parser_raw.mly" - ( Ptyp_poly (bound_vars, inner_type) ) -# 78553 "src/ocaml/preprocess/parser_raw.ml" +# 1333 "src/ocaml/preprocess/parser_raw.mly" + ( mktyp ~loc:_sloc _1 ) +# 80469 "src/ocaml/preprocess/parser_raw.ml" in - let _endpos__1_ = _endpos__5_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" - ( mktyp ~loc:_sloc _1 ) -# 78563 "src/ocaml/preprocess/parser_raw.ml" +# 4734 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 80475 "src/ocaml/preprocess/parser_raw.ml" in + let _endpos__1_ = _endpos__5_ in -# 4723 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 78569 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in - # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 78576 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in - let m0 = - let _1 = -# 4648 "src/ocaml/preprocess/parser_raw.mly" +# 80482 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in + let m0 = + let _1 = +# 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 78584 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4653 "src/ocaml/preprocess/parser_raw.mly" +# 80490 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 78589 "src/ocaml/preprocess/parser_raw.ml" +# 80495 "src/ocaml/preprocess/parser_raw.ml" + + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 78599 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = - let _1 = -# 4626 "src/ocaml/preprocess/parser_raw.mly" +# 80505 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = + let _1 = +# 4637 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 78606 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4633 "src/ocaml/preprocess/parser_raw.mly" +# 80512 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 78611 "src/ocaml/preprocess/parser_raw.ml" +# 80517 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 4565 "src/ocaml/preprocess/parser_raw.mly" +# 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 78621 "src/ocaml/preprocess/parser_raw.ml" +# 80527 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos_ty_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let (_endpos__1_, _startpos__1_) = (_endpos_ty_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 78631 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4571 "src/ocaml/preprocess/parser_raw.mly" +# 80537 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 78637 "src/ocaml/preprocess/parser_raw.ml" - in +# 80543 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -78725,152 +80632,154 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos__1_inlined3_ in - let _v : (Parsetree.core_type) = let _1 = + let _v = let _1 = - let codomain_with_modes = - let _1 = _1_inlined3 in - let m1 = -# 4672 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let codomain_with_modes = + let _1 = _1_inlined3 in + let m1 = +# 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 78736 "src/ocaml/preprocess/parser_raw.ml" - in - let m0 = -# 4652 "src/ocaml/preprocess/parser_raw.mly" +# 80644 "src/ocaml/preprocess/parser_raw.ml" + in + let m0 = +# 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 78741 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 80649 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 78750 "src/ocaml/preprocess/parser_raw.ml" - - in - let domain_with_modes = - let m1 = - let _1 = _1_inlined2 in - -# 4672 "src/ocaml/preprocess/parser_raw.mly" - (_1) -# 78759 "src/ocaml/preprocess/parser_raw.ml" +# 80658 "src/ocaml/preprocess/parser_raw.ml" in - let ty = - let _startpos__1_ = _startpos__1_inlined1_ in - let _1 = + let domain_with_modes = + let m1 = + let _1 = _1_inlined2 in + +# 4683 "src/ocaml/preprocess/parser_raw.mly" + (_1) +# 80667 "src/ocaml/preprocess/parser_raw.ml" + + in + let ty = + let _startpos__1_ = _startpos__1_inlined1_ in let _1 = let _1 = - let bound_vars = - let _1 = - let xs = -# 253 "" + let _1 = + let bound_vars = + let _1 = + let xs = +# 264 "" ( List.rev xs ) -# 78772 "src/ocaml/preprocess/parser_raw.ml" - in - +# 80680 "src/ocaml/preprocess/parser_raw.ml" + in + # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 78777 "src/ocaml/preprocess/parser_raw.ml" +# 80685 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 4481 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 80691 "src/ocaml/preprocess/parser_raw.ml" in -# 4470 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 78783 "src/ocaml/preprocess/parser_raw.ml" +# 4732 "src/ocaml/preprocess/parser_raw.mly" + ( Ptyp_poly (bound_vars, inner_type) ) +# 80697 "src/ocaml/preprocess/parser_raw.ml" in + let _endpos__1_ = _endpos__5_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 4721 "src/ocaml/preprocess/parser_raw.mly" - ( Ptyp_poly (bound_vars, inner_type) ) -# 78789 "src/ocaml/preprocess/parser_raw.ml" +# 1333 "src/ocaml/preprocess/parser_raw.mly" + ( mktyp ~loc:_sloc _1 ) +# 80707 "src/ocaml/preprocess/parser_raw.ml" in - let _endpos__1_ = _endpos__5_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" - ( mktyp ~loc:_sloc _1 ) -# 78799 "src/ocaml/preprocess/parser_raw.ml" +# 4734 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 80713 "src/ocaml/preprocess/parser_raw.ml" in + let _endpos__1_ = _endpos__5_ in -# 4723 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 78805 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in - # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 78812 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in - let m0 = - let _1 = -# 4648 "src/ocaml/preprocess/parser_raw.mly" +# 80720 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in + let m0 = + let _1 = +# 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 78820 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4653 "src/ocaml/preprocess/parser_raw.mly" +# 80728 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 78825 "src/ocaml/preprocess/parser_raw.ml" +# 80733 "src/ocaml/preprocess/parser_raw.ml" + + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 78835 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = - let _1 = -# 4626 "src/ocaml/preprocess/parser_raw.mly" +# 80743 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = + let _1 = +# 4637 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 78842 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4633 "src/ocaml/preprocess/parser_raw.mly" +# 80750 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 78847 "src/ocaml/preprocess/parser_raw.ml" +# 80755 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 4565 "src/ocaml/preprocess/parser_raw.mly" +# 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 78857 "src/ocaml/preprocess/parser_raw.ml" +# 80765 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined3_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined3_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 78867 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4571 "src/ocaml/preprocess/parser_raw.mly" +# 80775 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 78873 "src/ocaml/preprocess/parser_raw.ml" - in +# 80781 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -78961,159 +80870,161 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos_ty_ in - let _v : (Parsetree.core_type) = let _1 = + let _v = let _1 = - let codomain_with_modes = - let _1 = _1_inlined3 in - let m1 = -# 4671 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let codomain_with_modes = + let _1 = _1_inlined3 in + let m1 = +# 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 78972 "src/ocaml/preprocess/parser_raw.ml" - in - let m0 = - let _1 = -# 4648 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 78978 "src/ocaml/preprocess/parser_raw.ml" +# 80882 "src/ocaml/preprocess/parser_raw.ml" in - -# 4653 "src/ocaml/preprocess/parser_raw.mly" + let m0 = + let _1 = +# 4659 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 80888 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 78983 "src/ocaml/preprocess/parser_raw.ml" +# 80893 "src/ocaml/preprocess/parser_raw.ml" + + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 78993 "src/ocaml/preprocess/parser_raw.ml" - - in - let domain_with_modes = - let m1 = - let _1 = _1_inlined2 in - -# 4672 "src/ocaml/preprocess/parser_raw.mly" - (_1) -# 79002 "src/ocaml/preprocess/parser_raw.ml" +# 80903 "src/ocaml/preprocess/parser_raw.ml" in - let ty = - let _startpos__1_ = _startpos__1_inlined1_ in - let _1 = + let domain_with_modes = + let m1 = + let _1 = _1_inlined2 in + +# 4683 "src/ocaml/preprocess/parser_raw.mly" + (_1) +# 80912 "src/ocaml/preprocess/parser_raw.ml" + + in + let ty = + let _startpos__1_ = _startpos__1_inlined1_ in let _1 = let _1 = - let bound_vars = - let _1 = - let xs = -# 253 "" + let _1 = + let bound_vars = + let _1 = + let xs = +# 264 "" ( List.rev xs ) -# 79015 "src/ocaml/preprocess/parser_raw.ml" - in - +# 80925 "src/ocaml/preprocess/parser_raw.ml" + in + # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 79020 "src/ocaml/preprocess/parser_raw.ml" +# 80930 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 4481 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 80936 "src/ocaml/preprocess/parser_raw.ml" in -# 4470 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 79026 "src/ocaml/preprocess/parser_raw.ml" +# 4732 "src/ocaml/preprocess/parser_raw.mly" + ( Ptyp_poly (bound_vars, inner_type) ) +# 80942 "src/ocaml/preprocess/parser_raw.ml" in + let _endpos__1_ = _endpos__5_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 4721 "src/ocaml/preprocess/parser_raw.mly" - ( Ptyp_poly (bound_vars, inner_type) ) -# 79032 "src/ocaml/preprocess/parser_raw.ml" +# 1333 "src/ocaml/preprocess/parser_raw.mly" + ( mktyp ~loc:_sloc _1 ) +# 80952 "src/ocaml/preprocess/parser_raw.ml" in - let _endpos__1_ = _endpos__5_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" - ( mktyp ~loc:_sloc _1 ) -# 79042 "src/ocaml/preprocess/parser_raw.ml" +# 4734 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 80958 "src/ocaml/preprocess/parser_raw.ml" in + let _endpos__1_ = _endpos__5_ in -# 4723 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 79048 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in - # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 79055 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in - let m0 = - let _1 = -# 4648 "src/ocaml/preprocess/parser_raw.mly" +# 80965 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in + let m0 = + let _1 = +# 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 79063 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4653 "src/ocaml/preprocess/parser_raw.mly" +# 80973 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 79068 "src/ocaml/preprocess/parser_raw.ml" +# 80978 "src/ocaml/preprocess/parser_raw.ml" + + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 79078 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = - let _1 = -# 4626 "src/ocaml/preprocess/parser_raw.mly" +# 80988 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = + let _1 = +# 4637 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 79085 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4633 "src/ocaml/preprocess/parser_raw.mly" +# 80995 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 79090 "src/ocaml/preprocess/parser_raw.ml" +# 81000 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 4565 "src/ocaml/preprocess/parser_raw.mly" +# 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 79100 "src/ocaml/preprocess/parser_raw.ml" +# 81010 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos_ty_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let (_endpos__1_, _startpos__1_) = (_endpos_ty_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 79110 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4571 "src/ocaml/preprocess/parser_raw.mly" +# 81020 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 79116 "src/ocaml/preprocess/parser_raw.ml" - in +# 81026 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -79211,162 +81122,164 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos__1_inlined4_ in - let _v : (Parsetree.core_type) = let _1 = + let _v = let _1 = - let codomain_with_modes = - let (_1_inlined1, _1) = (_1_inlined4, _1_inlined3) in - let m1 = - let _1 = _1_inlined1 in - -# 4672 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let codomain_with_modes = + let (_1_inlined1, _1) = (_1_inlined4, _1_inlined3) in + let m1 = + let _1 = _1_inlined1 in + +# 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 79224 "src/ocaml/preprocess/parser_raw.ml" - - in - let m0 = - let _1 = -# 4648 "src/ocaml/preprocess/parser_raw.mly" +# 81136 "src/ocaml/preprocess/parser_raw.ml" + + in + let m0 = + let _1 = +# 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 79231 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4653 "src/ocaml/preprocess/parser_raw.mly" +# 81143 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 79236 "src/ocaml/preprocess/parser_raw.ml" +# 81148 "src/ocaml/preprocess/parser_raw.ml" + + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 79246 "src/ocaml/preprocess/parser_raw.ml" - - in - let domain_with_modes = - let m1 = - let _1 = _1_inlined2 in - -# 4672 "src/ocaml/preprocess/parser_raw.mly" - (_1) -# 79255 "src/ocaml/preprocess/parser_raw.ml" +# 81158 "src/ocaml/preprocess/parser_raw.ml" in - let ty = - let _startpos__1_ = _startpos__1_inlined1_ in - let _1 = + let domain_with_modes = + let m1 = + let _1 = _1_inlined2 in + +# 4683 "src/ocaml/preprocess/parser_raw.mly" + (_1) +# 81167 "src/ocaml/preprocess/parser_raw.ml" + + in + let ty = + let _startpos__1_ = _startpos__1_inlined1_ in let _1 = let _1 = - let bound_vars = - let _1 = - let xs = -# 253 "" + let _1 = + let bound_vars = + let _1 = + let xs = +# 264 "" ( List.rev xs ) -# 79268 "src/ocaml/preprocess/parser_raw.ml" - in - +# 81180 "src/ocaml/preprocess/parser_raw.ml" + in + # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 79273 "src/ocaml/preprocess/parser_raw.ml" +# 81185 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 4481 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 81191 "src/ocaml/preprocess/parser_raw.ml" in -# 4470 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 79279 "src/ocaml/preprocess/parser_raw.ml" +# 4732 "src/ocaml/preprocess/parser_raw.mly" + ( Ptyp_poly (bound_vars, inner_type) ) +# 81197 "src/ocaml/preprocess/parser_raw.ml" in + let _endpos__1_ = _endpos__5_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 4721 "src/ocaml/preprocess/parser_raw.mly" - ( Ptyp_poly (bound_vars, inner_type) ) -# 79285 "src/ocaml/preprocess/parser_raw.ml" +# 1333 "src/ocaml/preprocess/parser_raw.mly" + ( mktyp ~loc:_sloc _1 ) +# 81207 "src/ocaml/preprocess/parser_raw.ml" in - let _endpos__1_ = _endpos__5_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" - ( mktyp ~loc:_sloc _1 ) -# 79295 "src/ocaml/preprocess/parser_raw.ml" +# 4734 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 81213 "src/ocaml/preprocess/parser_raw.ml" in + let _endpos__1_ = _endpos__5_ in -# 4723 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 79301 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in - # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 79308 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in - let m0 = - let _1 = -# 4648 "src/ocaml/preprocess/parser_raw.mly" +# 81220 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in + let m0 = + let _1 = +# 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 79316 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4653 "src/ocaml/preprocess/parser_raw.mly" +# 81228 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 79321 "src/ocaml/preprocess/parser_raw.ml" +# 81233 "src/ocaml/preprocess/parser_raw.ml" + + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 79331 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = - let _1 = -# 4626 "src/ocaml/preprocess/parser_raw.mly" +# 81243 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = + let _1 = +# 4637 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 79338 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4633 "src/ocaml/preprocess/parser_raw.mly" +# 81250 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 79343 "src/ocaml/preprocess/parser_raw.ml" +# 81255 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 4565 "src/ocaml/preprocess/parser_raw.mly" +# 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 79353 "src/ocaml/preprocess/parser_raw.ml" +# 81265 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined4_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined4_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 79363 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4571 "src/ocaml/preprocess/parser_raw.mly" +# 81275 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 79369 "src/ocaml/preprocess/parser_raw.ml" - in +# 81281 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -79415,108 +81328,110 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos_ty_inlined1_ in - let _v : (Parsetree.core_type) = let _1 = + let _v = let _1 = - let codomain_with_modes = - let (_endpos_ty_, _startpos_ty_, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1) in - let m1 = -# 4671 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let codomain_with_modes = + let (_endpos_ty_, _startpos_ty_, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1) in + let m1 = +# 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 79426 "src/ocaml/preprocess/parser_raw.ml" - in - let m0 = -# 4652 "src/ocaml/preprocess/parser_raw.mly" +# 81340 "src/ocaml/preprocess/parser_raw.ml" + in + let m0 = +# 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 79431 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 81345 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 79440 "src/ocaml/preprocess/parser_raw.ml" - - in - let domain_with_modes = - let m1 = -# 4671 "src/ocaml/preprocess/parser_raw.mly" +# 81354 "src/ocaml/preprocess/parser_raw.ml" + + in + let domain_with_modes = + let m1 = +# 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 79447 "src/ocaml/preprocess/parser_raw.ml" - in - let ty = - let _1 = -# 4725 "src/ocaml/preprocess/parser_raw.mly" - ( ty ) -# 79453 "src/ocaml/preprocess/parser_raw.ml" +# 81361 "src/ocaml/preprocess/parser_raw.ml" in - let _endpos__1_ = _endpos_ty_ in - + let ty = + let _1 = +# 4736 "src/ocaml/preprocess/parser_raw.mly" + ( ty ) +# 81367 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos_ty_ in + # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 79459 "src/ocaml/preprocess/parser_raw.ml" - - in - let m0 = - let _1 = -# 4648 "src/ocaml/preprocess/parser_raw.mly" +# 81373 "src/ocaml/preprocess/parser_raw.ml" + + in + let m0 = + let _1 = +# 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 79466 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4653 "src/ocaml/preprocess/parser_raw.mly" +# 81380 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 79471 "src/ocaml/preprocess/parser_raw.ml" +# 81385 "src/ocaml/preprocess/parser_raw.ml" + + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 79481 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = - let _1 = -# 4626 "src/ocaml/preprocess/parser_raw.mly" +# 81395 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = + let _1 = +# 4637 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 79488 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4633 "src/ocaml/preprocess/parser_raw.mly" +# 81402 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 79493 "src/ocaml/preprocess/parser_raw.ml" +# 81407 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 4565 "src/ocaml/preprocess/parser_raw.mly" +# 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 79503 "src/ocaml/preprocess/parser_raw.ml" +# 81417 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 79513 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4571 "src/ocaml/preprocess/parser_raw.mly" +# 81427 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 79519 "src/ocaml/preprocess/parser_raw.ml" - in +# 81433 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -79572,108 +81487,110 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos__1_inlined1_ in - let _v : (Parsetree.core_type) = let _1 = + let _v = let _1 = - let codomain_with_modes = - let (_endpos_ty_, _startpos_ty_, _1, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, _1_inlined1, ty_inlined1) in - let m1 = -# 4672 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let codomain_with_modes = + let (_endpos_ty_, _startpos_ty_, _1, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, _1_inlined1, ty_inlined1) in + let m1 = +# 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 79583 "src/ocaml/preprocess/parser_raw.ml" - in - let m0 = -# 4652 "src/ocaml/preprocess/parser_raw.mly" +# 81499 "src/ocaml/preprocess/parser_raw.ml" + in + let m0 = +# 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 79588 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 81504 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 79597 "src/ocaml/preprocess/parser_raw.ml" - - in - let domain_with_modes = - let m1 = -# 4671 "src/ocaml/preprocess/parser_raw.mly" +# 81513 "src/ocaml/preprocess/parser_raw.ml" + + in + let domain_with_modes = + let m1 = +# 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 79604 "src/ocaml/preprocess/parser_raw.ml" - in - let ty = - let _1 = -# 4725 "src/ocaml/preprocess/parser_raw.mly" - ( ty ) -# 79610 "src/ocaml/preprocess/parser_raw.ml" +# 81520 "src/ocaml/preprocess/parser_raw.ml" in - let _endpos__1_ = _endpos_ty_ in - + let ty = + let _1 = +# 4736 "src/ocaml/preprocess/parser_raw.mly" + ( ty ) +# 81526 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos_ty_ in + # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 79616 "src/ocaml/preprocess/parser_raw.ml" - - in - let m0 = - let _1 = -# 4648 "src/ocaml/preprocess/parser_raw.mly" +# 81532 "src/ocaml/preprocess/parser_raw.ml" + + in + let m0 = + let _1 = +# 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 79623 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4653 "src/ocaml/preprocess/parser_raw.mly" +# 81539 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 79628 "src/ocaml/preprocess/parser_raw.ml" +# 81544 "src/ocaml/preprocess/parser_raw.ml" + + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 79638 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = - let _1 = -# 4626 "src/ocaml/preprocess/parser_raw.mly" +# 81554 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = + let _1 = +# 4637 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 79645 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4633 "src/ocaml/preprocess/parser_raw.mly" +# 81561 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 79650 "src/ocaml/preprocess/parser_raw.ml" +# 81566 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 4565 "src/ocaml/preprocess/parser_raw.mly" +# 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 79660 "src/ocaml/preprocess/parser_raw.ml" +# 81576 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 79670 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4571 "src/ocaml/preprocess/parser_raw.mly" +# 81586 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 79676 "src/ocaml/preprocess/parser_raw.ml" - in +# 81592 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -79729,115 +81646,117 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos_ty_inlined1_ in - let _v : (Parsetree.core_type) = let _1 = + let _v = let _1 = - let codomain_with_modes = - let (_endpos_ty_, _startpos_ty_, ty, _1) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1, _1_inlined1) in - let m1 = -# 4671 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let codomain_with_modes = + let (_endpos_ty_, _startpos_ty_, ty, _1) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1, _1_inlined1) in + let m1 = +# 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 79740 "src/ocaml/preprocess/parser_raw.ml" - in - let m0 = - let _1 = -# 4648 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 79746 "src/ocaml/preprocess/parser_raw.ml" +# 81658 "src/ocaml/preprocess/parser_raw.ml" in - -# 4653 "src/ocaml/preprocess/parser_raw.mly" + let m0 = + let _1 = +# 4659 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 81664 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 79751 "src/ocaml/preprocess/parser_raw.ml" +# 81669 "src/ocaml/preprocess/parser_raw.ml" + + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 79761 "src/ocaml/preprocess/parser_raw.ml" - - in - let domain_with_modes = - let m1 = -# 4671 "src/ocaml/preprocess/parser_raw.mly" +# 81679 "src/ocaml/preprocess/parser_raw.ml" + + in + let domain_with_modes = + let m1 = +# 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 79768 "src/ocaml/preprocess/parser_raw.ml" - in - let ty = - let _1 = -# 4725 "src/ocaml/preprocess/parser_raw.mly" - ( ty ) -# 79774 "src/ocaml/preprocess/parser_raw.ml" +# 81686 "src/ocaml/preprocess/parser_raw.ml" in - let _endpos__1_ = _endpos_ty_ in - + let ty = + let _1 = +# 4736 "src/ocaml/preprocess/parser_raw.mly" + ( ty ) +# 81692 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos_ty_ in + # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 79780 "src/ocaml/preprocess/parser_raw.ml" - - in - let m0 = - let _1 = -# 4648 "src/ocaml/preprocess/parser_raw.mly" +# 81698 "src/ocaml/preprocess/parser_raw.ml" + + in + let m0 = + let _1 = +# 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 79787 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4653 "src/ocaml/preprocess/parser_raw.mly" +# 81705 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 79792 "src/ocaml/preprocess/parser_raw.ml" +# 81710 "src/ocaml/preprocess/parser_raw.ml" + + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 79802 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = - let _1 = -# 4626 "src/ocaml/preprocess/parser_raw.mly" +# 81720 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = + let _1 = +# 4637 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 79809 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4633 "src/ocaml/preprocess/parser_raw.mly" +# 81727 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 79814 "src/ocaml/preprocess/parser_raw.ml" +# 81732 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 4565 "src/ocaml/preprocess/parser_raw.mly" +# 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 79824 "src/ocaml/preprocess/parser_raw.ml" +# 81742 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 79834 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4571 "src/ocaml/preprocess/parser_raw.mly" +# 81752 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 79840 "src/ocaml/preprocess/parser_raw.ml" - in +# 81758 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -79900,118 +81819,120 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos__1_inlined2_ in - let _v : (Parsetree.core_type) = let _1 = + let _v = let _1 = - let codomain_with_modes = - let (_endpos_ty_, _startpos_ty_, _1_inlined1, ty, _1) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, _1_inlined2, ty_inlined1, _1_inlined1) in - let m1 = - let _1 = _1_inlined1 in - -# 4672 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let codomain_with_modes = + let (_endpos_ty_, _startpos_ty_, _1_inlined1, ty, _1) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, _1_inlined2, ty_inlined1, _1_inlined1) in + let m1 = + let _1 = _1_inlined1 in + +# 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 79913 "src/ocaml/preprocess/parser_raw.ml" - - in - let m0 = - let _1 = -# 4648 "src/ocaml/preprocess/parser_raw.mly" +# 81833 "src/ocaml/preprocess/parser_raw.ml" + + in + let m0 = + let _1 = +# 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 79920 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4653 "src/ocaml/preprocess/parser_raw.mly" +# 81840 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 79925 "src/ocaml/preprocess/parser_raw.ml" +# 81845 "src/ocaml/preprocess/parser_raw.ml" + + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 79935 "src/ocaml/preprocess/parser_raw.ml" - - in - let domain_with_modes = - let m1 = -# 4671 "src/ocaml/preprocess/parser_raw.mly" +# 81855 "src/ocaml/preprocess/parser_raw.ml" + + in + let domain_with_modes = + let m1 = +# 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 79942 "src/ocaml/preprocess/parser_raw.ml" - in - let ty = - let _1 = -# 4725 "src/ocaml/preprocess/parser_raw.mly" - ( ty ) -# 79948 "src/ocaml/preprocess/parser_raw.ml" +# 81862 "src/ocaml/preprocess/parser_raw.ml" in - let _endpos__1_ = _endpos_ty_ in - + let ty = + let _1 = +# 4736 "src/ocaml/preprocess/parser_raw.mly" + ( ty ) +# 81868 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos_ty_ in + # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 79954 "src/ocaml/preprocess/parser_raw.ml" - - in - let m0 = - let _1 = -# 4648 "src/ocaml/preprocess/parser_raw.mly" +# 81874 "src/ocaml/preprocess/parser_raw.ml" + + in + let m0 = + let _1 = +# 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 79961 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4653 "src/ocaml/preprocess/parser_raw.mly" +# 81881 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 79966 "src/ocaml/preprocess/parser_raw.ml" +# 81886 "src/ocaml/preprocess/parser_raw.ml" + + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 79976 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = - let _1 = -# 4626 "src/ocaml/preprocess/parser_raw.mly" +# 81896 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = + let _1 = +# 4637 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 79983 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4633 "src/ocaml/preprocess/parser_raw.mly" +# 81903 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 79988 "src/ocaml/preprocess/parser_raw.ml" +# 81908 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 4565 "src/ocaml/preprocess/parser_raw.mly" +# 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 79998 "src/ocaml/preprocess/parser_raw.ml" +# 81918 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined2_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined2_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 80008 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4571 "src/ocaml/preprocess/parser_raw.mly" +# 81928 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 80014 "src/ocaml/preprocess/parser_raw.ml" - in +# 81934 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -80067,111 +81988,113 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos_ty_inlined1_ in - let _v : (Parsetree.core_type) = let _1 = + let _v = let _1 = - let codomain_with_modes = - let (_endpos_ty_, _startpos_ty_, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1) in - let m1 = -# 4671 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let codomain_with_modes = + let (_endpos_ty_, _startpos_ty_, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1) in + let m1 = +# 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 80078 "src/ocaml/preprocess/parser_raw.ml" - in - let m0 = -# 4652 "src/ocaml/preprocess/parser_raw.mly" +# 82000 "src/ocaml/preprocess/parser_raw.ml" + in + let m0 = +# 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 80083 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 82005 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 80092 "src/ocaml/preprocess/parser_raw.ml" - - in - let domain_with_modes = - let m1 = - let _1 = _1_inlined1 in - -# 4672 "src/ocaml/preprocess/parser_raw.mly" - (_1) -# 80101 "src/ocaml/preprocess/parser_raw.ml" +# 82014 "src/ocaml/preprocess/parser_raw.ml" in - let ty = - let _1 = -# 4725 "src/ocaml/preprocess/parser_raw.mly" + let domain_with_modes = + let m1 = + let _1 = _1_inlined1 in + +# 4683 "src/ocaml/preprocess/parser_raw.mly" + (_1) +# 82023 "src/ocaml/preprocess/parser_raw.ml" + + in + let ty = + let _1 = +# 4736 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 80108 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos__1_ = _endpos_ty_ in - +# 82030 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos_ty_ in + # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 80114 "src/ocaml/preprocess/parser_raw.ml" - - in - let m0 = - let _1 = -# 4648 "src/ocaml/preprocess/parser_raw.mly" +# 82036 "src/ocaml/preprocess/parser_raw.ml" + + in + let m0 = + let _1 = +# 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 80121 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4653 "src/ocaml/preprocess/parser_raw.mly" +# 82043 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 80126 "src/ocaml/preprocess/parser_raw.ml" +# 82048 "src/ocaml/preprocess/parser_raw.ml" + + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 80136 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = - let _1 = -# 4626 "src/ocaml/preprocess/parser_raw.mly" +# 82058 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = + let _1 = +# 4637 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 80143 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4633 "src/ocaml/preprocess/parser_raw.mly" +# 82065 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 80148 "src/ocaml/preprocess/parser_raw.ml" +# 82070 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 4565 "src/ocaml/preprocess/parser_raw.mly" +# 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 80158 "src/ocaml/preprocess/parser_raw.ml" +# 82080 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 80168 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4571 "src/ocaml/preprocess/parser_raw.mly" +# 82090 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 80174 "src/ocaml/preprocess/parser_raw.ml" - in +# 82096 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -80234,111 +82157,113 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos__1_inlined2_ in - let _v : (Parsetree.core_type) = let _1 = + let _v = let _1 = - let codomain_with_modes = - let (_endpos_ty_, _startpos_ty_, _1, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, _1_inlined2, ty_inlined1) in - let m1 = -# 4672 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let codomain_with_modes = + let (_endpos_ty_, _startpos_ty_, _1, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, _1_inlined2, ty_inlined1) in + let m1 = +# 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 80245 "src/ocaml/preprocess/parser_raw.ml" - in - let m0 = -# 4652 "src/ocaml/preprocess/parser_raw.mly" +# 82169 "src/ocaml/preprocess/parser_raw.ml" + in + let m0 = +# 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 80250 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 82174 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 80259 "src/ocaml/preprocess/parser_raw.ml" - - in - let domain_with_modes = - let m1 = - let _1 = _1_inlined1 in - -# 4672 "src/ocaml/preprocess/parser_raw.mly" - (_1) -# 80268 "src/ocaml/preprocess/parser_raw.ml" +# 82183 "src/ocaml/preprocess/parser_raw.ml" in - let ty = - let _1 = -# 4725 "src/ocaml/preprocess/parser_raw.mly" + let domain_with_modes = + let m1 = + let _1 = _1_inlined1 in + +# 4683 "src/ocaml/preprocess/parser_raw.mly" + (_1) +# 82192 "src/ocaml/preprocess/parser_raw.ml" + + in + let ty = + let _1 = +# 4736 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 80275 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos__1_ = _endpos_ty_ in - +# 82199 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos_ty_ in + # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 80281 "src/ocaml/preprocess/parser_raw.ml" - - in - let m0 = - let _1 = -# 4648 "src/ocaml/preprocess/parser_raw.mly" +# 82205 "src/ocaml/preprocess/parser_raw.ml" + + in + let m0 = + let _1 = +# 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 80288 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4653 "src/ocaml/preprocess/parser_raw.mly" +# 82212 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 80293 "src/ocaml/preprocess/parser_raw.ml" +# 82217 "src/ocaml/preprocess/parser_raw.ml" + + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 80303 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = - let _1 = -# 4626 "src/ocaml/preprocess/parser_raw.mly" +# 82227 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = + let _1 = +# 4637 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 80310 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4633 "src/ocaml/preprocess/parser_raw.mly" +# 82234 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 80315 "src/ocaml/preprocess/parser_raw.ml" +# 82239 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 4565 "src/ocaml/preprocess/parser_raw.mly" +# 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 80325 "src/ocaml/preprocess/parser_raw.ml" +# 82249 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined2_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined2_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 80335 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4571 "src/ocaml/preprocess/parser_raw.mly" +# 82259 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 80341 "src/ocaml/preprocess/parser_raw.ml" - in +# 82265 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -80401,118 +82326,120 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos_ty_inlined1_ in - let _v : (Parsetree.core_type) = let _1 = + let _v = let _1 = - let codomain_with_modes = - let (_endpos_ty_, _startpos_ty_, ty, _1) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1, _1_inlined2) in - let m1 = -# 4671 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let codomain_with_modes = + let (_endpos_ty_, _startpos_ty_, ty, _1) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1, _1_inlined2) in + let m1 = +# 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 80412 "src/ocaml/preprocess/parser_raw.ml" - in - let m0 = - let _1 = -# 4648 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 80418 "src/ocaml/preprocess/parser_raw.ml" +# 82338 "src/ocaml/preprocess/parser_raw.ml" in - -# 4653 "src/ocaml/preprocess/parser_raw.mly" + let m0 = + let _1 = +# 4659 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 82344 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 80423 "src/ocaml/preprocess/parser_raw.ml" +# 82349 "src/ocaml/preprocess/parser_raw.ml" + + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 80433 "src/ocaml/preprocess/parser_raw.ml" - - in - let domain_with_modes = - let m1 = - let _1 = _1_inlined1 in - -# 4672 "src/ocaml/preprocess/parser_raw.mly" - (_1) -# 80442 "src/ocaml/preprocess/parser_raw.ml" +# 82359 "src/ocaml/preprocess/parser_raw.ml" in - let ty = - let _1 = -# 4725 "src/ocaml/preprocess/parser_raw.mly" + let domain_with_modes = + let m1 = + let _1 = _1_inlined1 in + +# 4683 "src/ocaml/preprocess/parser_raw.mly" + (_1) +# 82368 "src/ocaml/preprocess/parser_raw.ml" + + in + let ty = + let _1 = +# 4736 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 80449 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos__1_ = _endpos_ty_ in - +# 82375 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos_ty_ in + # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 80455 "src/ocaml/preprocess/parser_raw.ml" - - in - let m0 = - let _1 = -# 4648 "src/ocaml/preprocess/parser_raw.mly" +# 82381 "src/ocaml/preprocess/parser_raw.ml" + + in + let m0 = + let _1 = +# 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 80462 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4653 "src/ocaml/preprocess/parser_raw.mly" +# 82388 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 80467 "src/ocaml/preprocess/parser_raw.ml" +# 82393 "src/ocaml/preprocess/parser_raw.ml" + + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 80477 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = - let _1 = -# 4626 "src/ocaml/preprocess/parser_raw.mly" +# 82403 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = + let _1 = +# 4637 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 80484 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4633 "src/ocaml/preprocess/parser_raw.mly" +# 82410 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 80489 "src/ocaml/preprocess/parser_raw.ml" +# 82415 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 4565 "src/ocaml/preprocess/parser_raw.mly" +# 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 80499 "src/ocaml/preprocess/parser_raw.ml" +# 82425 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 80509 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4571 "src/ocaml/preprocess/parser_raw.mly" +# 82435 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 80515 "src/ocaml/preprocess/parser_raw.ml" - in +# 82441 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -80582,121 +82509,123 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos__1_inlined3_ in - let _v : (Parsetree.core_type) = let _1 = + let _v = let _1 = - let codomain_with_modes = - let (_endpos_ty_, _startpos_ty_, _1_inlined1, ty, _1) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, _1_inlined3, ty_inlined1, _1_inlined2) in - let m1 = - let _1 = _1_inlined1 in - -# 4672 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let codomain_with_modes = + let (_endpos_ty_, _startpos_ty_, _1_inlined1, ty, _1) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, _1_inlined3, ty_inlined1, _1_inlined2) in + let m1 = + let _1 = _1_inlined1 in + +# 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 80595 "src/ocaml/preprocess/parser_raw.ml" - - in - let m0 = - let _1 = -# 4648 "src/ocaml/preprocess/parser_raw.mly" +# 82523 "src/ocaml/preprocess/parser_raw.ml" + + in + let m0 = + let _1 = +# 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 80602 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4653 "src/ocaml/preprocess/parser_raw.mly" +# 82530 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 80607 "src/ocaml/preprocess/parser_raw.ml" +# 82535 "src/ocaml/preprocess/parser_raw.ml" + + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 80617 "src/ocaml/preprocess/parser_raw.ml" - - in - let domain_with_modes = - let m1 = - let _1 = _1_inlined1 in - -# 4672 "src/ocaml/preprocess/parser_raw.mly" - (_1) -# 80626 "src/ocaml/preprocess/parser_raw.ml" +# 82545 "src/ocaml/preprocess/parser_raw.ml" in - let ty = - let _1 = -# 4725 "src/ocaml/preprocess/parser_raw.mly" + let domain_with_modes = + let m1 = + let _1 = _1_inlined1 in + +# 4683 "src/ocaml/preprocess/parser_raw.mly" + (_1) +# 82554 "src/ocaml/preprocess/parser_raw.ml" + + in + let ty = + let _1 = +# 4736 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 80633 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos__1_ = _endpos_ty_ in - +# 82561 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos_ty_ in + # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 80639 "src/ocaml/preprocess/parser_raw.ml" - - in - let m0 = - let _1 = -# 4648 "src/ocaml/preprocess/parser_raw.mly" +# 82567 "src/ocaml/preprocess/parser_raw.ml" + + in + let m0 = + let _1 = +# 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 80646 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4653 "src/ocaml/preprocess/parser_raw.mly" +# 82574 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 80651 "src/ocaml/preprocess/parser_raw.ml" +# 82579 "src/ocaml/preprocess/parser_raw.ml" + + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 80661 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = - let _1 = -# 4626 "src/ocaml/preprocess/parser_raw.mly" +# 82589 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = + let _1 = +# 4637 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 80668 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4633 "src/ocaml/preprocess/parser_raw.mly" +# 82596 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 80673 "src/ocaml/preprocess/parser_raw.ml" +# 82601 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 4565 "src/ocaml/preprocess/parser_raw.mly" +# 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 80683 "src/ocaml/preprocess/parser_raw.ml" +# 82611 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined3_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined3_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 80693 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4571 "src/ocaml/preprocess/parser_raw.mly" +# 82621 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 80699 "src/ocaml/preprocess/parser_raw.ml" - in +# 82627 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -80772,145 +82701,147 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 80776 "src/ocaml/preprocess/parser_raw.ml" +# 82705 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos_ty_ in - let _v : (Parsetree.core_type) = let _1 = + let _v = let _1 = - let codomain_with_modes = - let m1 = -# 4671 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let codomain_with_modes = + let m1 = +# 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 80787 "src/ocaml/preprocess/parser_raw.ml" - in - let m0 = -# 4652 "src/ocaml/preprocess/parser_raw.mly" +# 82717 "src/ocaml/preprocess/parser_raw.ml" + in + let m0 = +# 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 80792 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 82722 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 80801 "src/ocaml/preprocess/parser_raw.ml" - - in - let domain_with_modes = - let m1 = -# 4671 "src/ocaml/preprocess/parser_raw.mly" +# 82731 "src/ocaml/preprocess/parser_raw.ml" + + in + let domain_with_modes = + let m1 = +# 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 80808 "src/ocaml/preprocess/parser_raw.ml" - in - let ty = - let _1 = +# 82738 "src/ocaml/preprocess/parser_raw.ml" + in + let ty = let _1 = let _1 = - let bound_vars = - let _1 = - let xs = -# 253 "" + let _1 = + let bound_vars = + let _1 = + let xs = +# 264 "" ( List.rev xs ) -# 80819 "src/ocaml/preprocess/parser_raw.ml" - in - +# 82749 "src/ocaml/preprocess/parser_raw.ml" + in + # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 80824 "src/ocaml/preprocess/parser_raw.ml" +# 82754 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 4481 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 82760 "src/ocaml/preprocess/parser_raw.ml" in -# 4470 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 80830 "src/ocaml/preprocess/parser_raw.ml" +# 4732 "src/ocaml/preprocess/parser_raw.mly" + ( Ptyp_poly (bound_vars, inner_type) ) +# 82766 "src/ocaml/preprocess/parser_raw.ml" in + let _endpos__1_ = _endpos__5_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 4721 "src/ocaml/preprocess/parser_raw.mly" - ( Ptyp_poly (bound_vars, inner_type) ) -# 80836 "src/ocaml/preprocess/parser_raw.ml" +# 1333 "src/ocaml/preprocess/parser_raw.mly" + ( mktyp ~loc:_sloc _1 ) +# 82776 "src/ocaml/preprocess/parser_raw.ml" in - let _endpos__1_ = _endpos__5_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" - ( mktyp ~loc:_sloc _1 ) -# 80846 "src/ocaml/preprocess/parser_raw.ml" +# 4734 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 82782 "src/ocaml/preprocess/parser_raw.ml" in + let _endpos__1_ = _endpos__5_ in -# 4723 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 80852 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in - # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 80859 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in - let m0 = -# 4652 "src/ocaml/preprocess/parser_raw.mly" +# 82789 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in + let m0 = +# 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 80866 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 82796 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 80875 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = - let _1 = -# 4628 "src/ocaml/preprocess/parser_raw.mly" +# 82805 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = + let _1 = +# 4639 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 80882 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4633 "src/ocaml/preprocess/parser_raw.mly" +# 82812 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 80887 "src/ocaml/preprocess/parser_raw.ml" +# 82817 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 4565 "src/ocaml/preprocess/parser_raw.mly" +# 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 80897 "src/ocaml/preprocess/parser_raw.ml" +# 82827 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos_ty_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let (_endpos__1_, _startpos__1_) = (_endpos_ty_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 80907 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4571 "src/ocaml/preprocess/parser_raw.mly" +# 82837 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 80913 "src/ocaml/preprocess/parser_raw.ml" - in +# 82843 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -80993,146 +82924,148 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 80997 "src/ocaml/preprocess/parser_raw.ml" +# 82928 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos__1_inlined1_ in - let _v : (Parsetree.core_type) = let _1 = + let _v = let _1 = - let codomain_with_modes = - let _1 = _1_inlined1 in - let m1 = -# 4672 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let codomain_with_modes = + let _1 = _1_inlined1 in + let m1 = +# 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 81009 "src/ocaml/preprocess/parser_raw.ml" - in - let m0 = -# 4652 "src/ocaml/preprocess/parser_raw.mly" +# 82941 "src/ocaml/preprocess/parser_raw.ml" + in + let m0 = +# 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 81014 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 82946 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 81023 "src/ocaml/preprocess/parser_raw.ml" - - in - let domain_with_modes = - let m1 = -# 4671 "src/ocaml/preprocess/parser_raw.mly" +# 82955 "src/ocaml/preprocess/parser_raw.ml" + + in + let domain_with_modes = + let m1 = +# 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 81030 "src/ocaml/preprocess/parser_raw.ml" - in - let ty = - let _1 = +# 82962 "src/ocaml/preprocess/parser_raw.ml" + in + let ty = let _1 = let _1 = - let bound_vars = - let _1 = - let xs = -# 253 "" + let _1 = + let bound_vars = + let _1 = + let xs = +# 264 "" ( List.rev xs ) -# 81041 "src/ocaml/preprocess/parser_raw.ml" - in - +# 82973 "src/ocaml/preprocess/parser_raw.ml" + in + # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 81046 "src/ocaml/preprocess/parser_raw.ml" +# 82978 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 4481 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 82984 "src/ocaml/preprocess/parser_raw.ml" in -# 4470 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 81052 "src/ocaml/preprocess/parser_raw.ml" +# 4732 "src/ocaml/preprocess/parser_raw.mly" + ( Ptyp_poly (bound_vars, inner_type) ) +# 82990 "src/ocaml/preprocess/parser_raw.ml" in + let _endpos__1_ = _endpos__5_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 4721 "src/ocaml/preprocess/parser_raw.mly" - ( Ptyp_poly (bound_vars, inner_type) ) -# 81058 "src/ocaml/preprocess/parser_raw.ml" +# 1333 "src/ocaml/preprocess/parser_raw.mly" + ( mktyp ~loc:_sloc _1 ) +# 83000 "src/ocaml/preprocess/parser_raw.ml" in - let _endpos__1_ = _endpos__5_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" - ( mktyp ~loc:_sloc _1 ) -# 81068 "src/ocaml/preprocess/parser_raw.ml" +# 4734 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 83006 "src/ocaml/preprocess/parser_raw.ml" in + let _endpos__1_ = _endpos__5_ in -# 4723 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 81074 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in - # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 81081 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in - let m0 = -# 4652 "src/ocaml/preprocess/parser_raw.mly" +# 83013 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in + let m0 = +# 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 81088 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 83020 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 81097 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = - let _1 = -# 4628 "src/ocaml/preprocess/parser_raw.mly" +# 83029 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = + let _1 = +# 4639 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 81104 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4633 "src/ocaml/preprocess/parser_raw.mly" +# 83036 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 81109 "src/ocaml/preprocess/parser_raw.ml" +# 83041 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 4565 "src/ocaml/preprocess/parser_raw.mly" +# 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 81119 "src/ocaml/preprocess/parser_raw.ml" +# 83051 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 81129 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4571 "src/ocaml/preprocess/parser_raw.mly" +# 83061 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 81135 "src/ocaml/preprocess/parser_raw.ml" - in +# 83067 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -81215,153 +83148,155 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 81219 "src/ocaml/preprocess/parser_raw.ml" +# 83152 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos_ty_ in - let _v : (Parsetree.core_type) = let _1 = + let _v = let _1 = - let codomain_with_modes = - let _1 = _1_inlined1 in - let m1 = -# 4671 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let codomain_with_modes = + let _1 = _1_inlined1 in + let m1 = +# 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 81231 "src/ocaml/preprocess/parser_raw.ml" - in - let m0 = - let _1 = -# 4648 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 81237 "src/ocaml/preprocess/parser_raw.ml" +# 83165 "src/ocaml/preprocess/parser_raw.ml" in - -# 4653 "src/ocaml/preprocess/parser_raw.mly" + let m0 = + let _1 = +# 4659 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 83171 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 81242 "src/ocaml/preprocess/parser_raw.ml" +# 83176 "src/ocaml/preprocess/parser_raw.ml" + + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 81252 "src/ocaml/preprocess/parser_raw.ml" - - in - let domain_with_modes = - let m1 = -# 4671 "src/ocaml/preprocess/parser_raw.mly" +# 83186 "src/ocaml/preprocess/parser_raw.ml" + + in + let domain_with_modes = + let m1 = +# 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 81259 "src/ocaml/preprocess/parser_raw.ml" - in - let ty = - let _1 = +# 83193 "src/ocaml/preprocess/parser_raw.ml" + in + let ty = let _1 = let _1 = - let bound_vars = - let _1 = - let xs = -# 253 "" + let _1 = + let bound_vars = + let _1 = + let xs = +# 264 "" ( List.rev xs ) -# 81270 "src/ocaml/preprocess/parser_raw.ml" - in - +# 83204 "src/ocaml/preprocess/parser_raw.ml" + in + # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 81275 "src/ocaml/preprocess/parser_raw.ml" +# 83209 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 4481 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 83215 "src/ocaml/preprocess/parser_raw.ml" in -# 4470 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 81281 "src/ocaml/preprocess/parser_raw.ml" +# 4732 "src/ocaml/preprocess/parser_raw.mly" + ( Ptyp_poly (bound_vars, inner_type) ) +# 83221 "src/ocaml/preprocess/parser_raw.ml" in + let _endpos__1_ = _endpos__5_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 4721 "src/ocaml/preprocess/parser_raw.mly" - ( Ptyp_poly (bound_vars, inner_type) ) -# 81287 "src/ocaml/preprocess/parser_raw.ml" +# 1333 "src/ocaml/preprocess/parser_raw.mly" + ( mktyp ~loc:_sloc _1 ) +# 83231 "src/ocaml/preprocess/parser_raw.ml" in - let _endpos__1_ = _endpos__5_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" - ( mktyp ~loc:_sloc _1 ) -# 81297 "src/ocaml/preprocess/parser_raw.ml" +# 4734 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 83237 "src/ocaml/preprocess/parser_raw.ml" in + let _endpos__1_ = _endpos__5_ in -# 4723 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 81303 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in - # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 81310 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in - let m0 = -# 4652 "src/ocaml/preprocess/parser_raw.mly" +# 83244 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in + let m0 = +# 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 81317 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 83251 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 81326 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = - let _1 = -# 4628 "src/ocaml/preprocess/parser_raw.mly" +# 83260 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = + let _1 = +# 4639 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 81333 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4633 "src/ocaml/preprocess/parser_raw.mly" +# 83267 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 81338 "src/ocaml/preprocess/parser_raw.ml" +# 83272 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 4565 "src/ocaml/preprocess/parser_raw.mly" +# 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 81348 "src/ocaml/preprocess/parser_raw.ml" +# 83282 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos_ty_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let (_endpos__1_, _startpos__1_) = (_endpos_ty_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 81358 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4571 "src/ocaml/preprocess/parser_raw.mly" +# 83292 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 81364 "src/ocaml/preprocess/parser_raw.ml" - in +# 83298 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -81451,156 +83386,158 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 81455 "src/ocaml/preprocess/parser_raw.ml" +# 83390 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos__1_inlined2_ in - let _v : (Parsetree.core_type) = let _1 = + let _v = let _1 = - let codomain_with_modes = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let m1 = - let _1 = _1_inlined1 in - -# 4672 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let codomain_with_modes = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in + let m1 = + let _1 = _1_inlined1 in + +# 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 81469 "src/ocaml/preprocess/parser_raw.ml" - - in - let m0 = - let _1 = -# 4648 "src/ocaml/preprocess/parser_raw.mly" +# 83405 "src/ocaml/preprocess/parser_raw.ml" + + in + let m0 = + let _1 = +# 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 81476 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4653 "src/ocaml/preprocess/parser_raw.mly" +# 83412 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 81481 "src/ocaml/preprocess/parser_raw.ml" +# 83417 "src/ocaml/preprocess/parser_raw.ml" + + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 81491 "src/ocaml/preprocess/parser_raw.ml" - - in - let domain_with_modes = - let m1 = -# 4671 "src/ocaml/preprocess/parser_raw.mly" +# 83427 "src/ocaml/preprocess/parser_raw.ml" + + in + let domain_with_modes = + let m1 = +# 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 81498 "src/ocaml/preprocess/parser_raw.ml" - in - let ty = - let _1 = +# 83434 "src/ocaml/preprocess/parser_raw.ml" + in + let ty = let _1 = let _1 = - let bound_vars = - let _1 = - let xs = -# 253 "" + let _1 = + let bound_vars = + let _1 = + let xs = +# 264 "" ( List.rev xs ) -# 81509 "src/ocaml/preprocess/parser_raw.ml" - in - +# 83445 "src/ocaml/preprocess/parser_raw.ml" + in + # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 81514 "src/ocaml/preprocess/parser_raw.ml" +# 83450 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 4481 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 83456 "src/ocaml/preprocess/parser_raw.ml" in -# 4470 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 81520 "src/ocaml/preprocess/parser_raw.ml" +# 4732 "src/ocaml/preprocess/parser_raw.mly" + ( Ptyp_poly (bound_vars, inner_type) ) +# 83462 "src/ocaml/preprocess/parser_raw.ml" in + let _endpos__1_ = _endpos__5_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 4721 "src/ocaml/preprocess/parser_raw.mly" - ( Ptyp_poly (bound_vars, inner_type) ) -# 81526 "src/ocaml/preprocess/parser_raw.ml" +# 1333 "src/ocaml/preprocess/parser_raw.mly" + ( mktyp ~loc:_sloc _1 ) +# 83472 "src/ocaml/preprocess/parser_raw.ml" in - let _endpos__1_ = _endpos__5_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" - ( mktyp ~loc:_sloc _1 ) -# 81536 "src/ocaml/preprocess/parser_raw.ml" +# 4734 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 83478 "src/ocaml/preprocess/parser_raw.ml" in + let _endpos__1_ = _endpos__5_ in -# 4723 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 81542 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in - # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 81549 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in - let m0 = -# 4652 "src/ocaml/preprocess/parser_raw.mly" +# 83485 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in + let m0 = +# 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 81556 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 83492 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 81565 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = - let _1 = -# 4628 "src/ocaml/preprocess/parser_raw.mly" +# 83501 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = + let _1 = +# 4639 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 81572 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4633 "src/ocaml/preprocess/parser_raw.mly" +# 83508 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 81577 "src/ocaml/preprocess/parser_raw.ml" +# 83513 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 4565 "src/ocaml/preprocess/parser_raw.mly" +# 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 81587 "src/ocaml/preprocess/parser_raw.ml" +# 83523 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined2_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined2_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 81597 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4571 "src/ocaml/preprocess/parser_raw.mly" +# 83533 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 81603 "src/ocaml/preprocess/parser_raw.ml" - in +# 83539 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -81683,148 +83620,150 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 81687 "src/ocaml/preprocess/parser_raw.ml" +# 83624 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos_ty_ in - let _v : (Parsetree.core_type) = let _1 = + let _v = let _1 = - let codomain_with_modes = - let m1 = -# 4671 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let codomain_with_modes = + let m1 = +# 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 81698 "src/ocaml/preprocess/parser_raw.ml" - in - let m0 = -# 4652 "src/ocaml/preprocess/parser_raw.mly" +# 83636 "src/ocaml/preprocess/parser_raw.ml" + in + let m0 = +# 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 81703 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 83641 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 81712 "src/ocaml/preprocess/parser_raw.ml" - - in - let domain_with_modes = - let m1 = - let _1 = _1_inlined1 in - -# 4672 "src/ocaml/preprocess/parser_raw.mly" - (_1) -# 81721 "src/ocaml/preprocess/parser_raw.ml" +# 83650 "src/ocaml/preprocess/parser_raw.ml" in - let ty = - let _1 = + let domain_with_modes = + let m1 = + let _1 = _1_inlined1 in + +# 4683 "src/ocaml/preprocess/parser_raw.mly" + (_1) +# 83659 "src/ocaml/preprocess/parser_raw.ml" + + in + let ty = let _1 = let _1 = - let bound_vars = - let _1 = - let xs = -# 253 "" + let _1 = + let bound_vars = + let _1 = + let xs = +# 264 "" ( List.rev xs ) -# 81733 "src/ocaml/preprocess/parser_raw.ml" - in - +# 83671 "src/ocaml/preprocess/parser_raw.ml" + in + # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 81738 "src/ocaml/preprocess/parser_raw.ml" +# 83676 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 4481 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 83682 "src/ocaml/preprocess/parser_raw.ml" in -# 4470 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 81744 "src/ocaml/preprocess/parser_raw.ml" +# 4732 "src/ocaml/preprocess/parser_raw.mly" + ( Ptyp_poly (bound_vars, inner_type) ) +# 83688 "src/ocaml/preprocess/parser_raw.ml" in + let _endpos__1_ = _endpos__5_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 4721 "src/ocaml/preprocess/parser_raw.mly" - ( Ptyp_poly (bound_vars, inner_type) ) -# 81750 "src/ocaml/preprocess/parser_raw.ml" +# 1333 "src/ocaml/preprocess/parser_raw.mly" + ( mktyp ~loc:_sloc _1 ) +# 83698 "src/ocaml/preprocess/parser_raw.ml" in - let _endpos__1_ = _endpos__5_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" - ( mktyp ~loc:_sloc _1 ) -# 81760 "src/ocaml/preprocess/parser_raw.ml" +# 4734 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 83704 "src/ocaml/preprocess/parser_raw.ml" in + let _endpos__1_ = _endpos__5_ in -# 4723 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 81766 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in - # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 81773 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in - let m0 = -# 4652 "src/ocaml/preprocess/parser_raw.mly" +# 83711 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in + let m0 = +# 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 81780 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 83718 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 81789 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = - let _1 = -# 4628 "src/ocaml/preprocess/parser_raw.mly" +# 83727 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = + let _1 = +# 4639 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 81796 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4633 "src/ocaml/preprocess/parser_raw.mly" +# 83734 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 81801 "src/ocaml/preprocess/parser_raw.ml" +# 83739 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 4565 "src/ocaml/preprocess/parser_raw.mly" +# 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 81811 "src/ocaml/preprocess/parser_raw.ml" +# 83749 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos_ty_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let (_endpos__1_, _startpos__1_) = (_endpos_ty_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 81821 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4571 "src/ocaml/preprocess/parser_raw.mly" +# 83759 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 81827 "src/ocaml/preprocess/parser_raw.ml" - in +# 83765 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -81914,149 +83853,151 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 81918 "src/ocaml/preprocess/parser_raw.ml" +# 83857 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos__1_inlined2_ in - let _v : (Parsetree.core_type) = let _1 = + let _v = let _1 = - let codomain_with_modes = - let _1 = _1_inlined2 in - let m1 = -# 4672 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let codomain_with_modes = + let _1 = _1_inlined2 in + let m1 = +# 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 81930 "src/ocaml/preprocess/parser_raw.ml" - in - let m0 = -# 4652 "src/ocaml/preprocess/parser_raw.mly" +# 83870 "src/ocaml/preprocess/parser_raw.ml" + in + let m0 = +# 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 81935 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 83875 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 81944 "src/ocaml/preprocess/parser_raw.ml" - - in - let domain_with_modes = - let m1 = - let _1 = _1_inlined1 in - -# 4672 "src/ocaml/preprocess/parser_raw.mly" - (_1) -# 81953 "src/ocaml/preprocess/parser_raw.ml" +# 83884 "src/ocaml/preprocess/parser_raw.ml" in - let ty = - let _1 = + let domain_with_modes = + let m1 = + let _1 = _1_inlined1 in + +# 4683 "src/ocaml/preprocess/parser_raw.mly" + (_1) +# 83893 "src/ocaml/preprocess/parser_raw.ml" + + in + let ty = let _1 = let _1 = - let bound_vars = - let _1 = - let xs = -# 253 "" + let _1 = + let bound_vars = + let _1 = + let xs = +# 264 "" ( List.rev xs ) -# 81965 "src/ocaml/preprocess/parser_raw.ml" - in - +# 83905 "src/ocaml/preprocess/parser_raw.ml" + in + # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 81970 "src/ocaml/preprocess/parser_raw.ml" +# 83910 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 4481 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 83916 "src/ocaml/preprocess/parser_raw.ml" in -# 4470 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 81976 "src/ocaml/preprocess/parser_raw.ml" +# 4732 "src/ocaml/preprocess/parser_raw.mly" + ( Ptyp_poly (bound_vars, inner_type) ) +# 83922 "src/ocaml/preprocess/parser_raw.ml" in + let _endpos__1_ = _endpos__5_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 4721 "src/ocaml/preprocess/parser_raw.mly" - ( Ptyp_poly (bound_vars, inner_type) ) -# 81982 "src/ocaml/preprocess/parser_raw.ml" +# 1333 "src/ocaml/preprocess/parser_raw.mly" + ( mktyp ~loc:_sloc _1 ) +# 83932 "src/ocaml/preprocess/parser_raw.ml" in - let _endpos__1_ = _endpos__5_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" - ( mktyp ~loc:_sloc _1 ) -# 81992 "src/ocaml/preprocess/parser_raw.ml" +# 4734 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 83938 "src/ocaml/preprocess/parser_raw.ml" in + let _endpos__1_ = _endpos__5_ in -# 4723 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 81998 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in - # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 82005 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in - let m0 = -# 4652 "src/ocaml/preprocess/parser_raw.mly" +# 83945 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in + let m0 = +# 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 82012 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 83952 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 82021 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = - let _1 = -# 4628 "src/ocaml/preprocess/parser_raw.mly" +# 83961 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = + let _1 = +# 4639 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 82028 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4633 "src/ocaml/preprocess/parser_raw.mly" +# 83968 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 82033 "src/ocaml/preprocess/parser_raw.ml" +# 83973 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 4565 "src/ocaml/preprocess/parser_raw.mly" +# 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 82043 "src/ocaml/preprocess/parser_raw.ml" +# 83983 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined2_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined2_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 82053 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4571 "src/ocaml/preprocess/parser_raw.mly" +# 83993 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 82059 "src/ocaml/preprocess/parser_raw.ml" - in +# 83999 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -82146,156 +84087,158 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 82150 "src/ocaml/preprocess/parser_raw.ml" +# 84091 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos_ty_ in - let _v : (Parsetree.core_type) = let _1 = + let _v = let _1 = - let codomain_with_modes = - let _1 = _1_inlined2 in - let m1 = -# 4671 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let codomain_with_modes = + let _1 = _1_inlined2 in + let m1 = +# 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 82162 "src/ocaml/preprocess/parser_raw.ml" - in - let m0 = - let _1 = -# 4648 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 82168 "src/ocaml/preprocess/parser_raw.ml" +# 84104 "src/ocaml/preprocess/parser_raw.ml" in - -# 4653 "src/ocaml/preprocess/parser_raw.mly" + let m0 = + let _1 = +# 4659 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 84110 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 82173 "src/ocaml/preprocess/parser_raw.ml" +# 84115 "src/ocaml/preprocess/parser_raw.ml" + + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 82183 "src/ocaml/preprocess/parser_raw.ml" - - in - let domain_with_modes = - let m1 = - let _1 = _1_inlined1 in - -# 4672 "src/ocaml/preprocess/parser_raw.mly" - (_1) -# 82192 "src/ocaml/preprocess/parser_raw.ml" +# 84125 "src/ocaml/preprocess/parser_raw.ml" in - let ty = - let _1 = + let domain_with_modes = + let m1 = + let _1 = _1_inlined1 in + +# 4683 "src/ocaml/preprocess/parser_raw.mly" + (_1) +# 84134 "src/ocaml/preprocess/parser_raw.ml" + + in + let ty = let _1 = let _1 = - let bound_vars = - let _1 = - let xs = -# 253 "" + let _1 = + let bound_vars = + let _1 = + let xs = +# 264 "" ( List.rev xs ) -# 82204 "src/ocaml/preprocess/parser_raw.ml" - in - +# 84146 "src/ocaml/preprocess/parser_raw.ml" + in + # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 82209 "src/ocaml/preprocess/parser_raw.ml" +# 84151 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 4481 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 84157 "src/ocaml/preprocess/parser_raw.ml" in -# 4470 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 82215 "src/ocaml/preprocess/parser_raw.ml" +# 4732 "src/ocaml/preprocess/parser_raw.mly" + ( Ptyp_poly (bound_vars, inner_type) ) +# 84163 "src/ocaml/preprocess/parser_raw.ml" in + let _endpos__1_ = _endpos__5_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 4721 "src/ocaml/preprocess/parser_raw.mly" - ( Ptyp_poly (bound_vars, inner_type) ) -# 82221 "src/ocaml/preprocess/parser_raw.ml" +# 1333 "src/ocaml/preprocess/parser_raw.mly" + ( mktyp ~loc:_sloc _1 ) +# 84173 "src/ocaml/preprocess/parser_raw.ml" in - let _endpos__1_ = _endpos__5_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" - ( mktyp ~loc:_sloc _1 ) -# 82231 "src/ocaml/preprocess/parser_raw.ml" +# 4734 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 84179 "src/ocaml/preprocess/parser_raw.ml" in + let _endpos__1_ = _endpos__5_ in -# 4723 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 82237 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in - # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 82244 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in - let m0 = -# 4652 "src/ocaml/preprocess/parser_raw.mly" +# 84186 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in + let m0 = +# 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 82251 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 84193 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 82260 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = - let _1 = -# 4628 "src/ocaml/preprocess/parser_raw.mly" +# 84202 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = + let _1 = +# 4639 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 82267 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4633 "src/ocaml/preprocess/parser_raw.mly" +# 84209 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 82272 "src/ocaml/preprocess/parser_raw.ml" +# 84214 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 4565 "src/ocaml/preprocess/parser_raw.mly" +# 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 82282 "src/ocaml/preprocess/parser_raw.ml" +# 84224 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos_ty_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let (_endpos__1_, _startpos__1_) = (_endpos_ty_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 82292 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4571 "src/ocaml/preprocess/parser_raw.mly" +# 84234 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 82298 "src/ocaml/preprocess/parser_raw.ml" - in +# 84240 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -82392,159 +84335,161 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 82396 "src/ocaml/preprocess/parser_raw.ml" +# 84339 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos__1_inlined3_ in - let _v : (Parsetree.core_type) = let _1 = + let _v = let _1 = - let codomain_with_modes = - let (_1_inlined1, _1) = (_1_inlined3, _1_inlined2) in - let m1 = - let _1 = _1_inlined1 in - -# 4672 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let codomain_with_modes = + let (_1_inlined1, _1) = (_1_inlined3, _1_inlined2) in + let m1 = + let _1 = _1_inlined1 in + +# 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 82410 "src/ocaml/preprocess/parser_raw.ml" - - in - let m0 = - let _1 = -# 4648 "src/ocaml/preprocess/parser_raw.mly" +# 84354 "src/ocaml/preprocess/parser_raw.ml" + + in + let m0 = + let _1 = +# 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 82417 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4653 "src/ocaml/preprocess/parser_raw.mly" +# 84361 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 82422 "src/ocaml/preprocess/parser_raw.ml" +# 84366 "src/ocaml/preprocess/parser_raw.ml" + + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 82432 "src/ocaml/preprocess/parser_raw.ml" - - in - let domain_with_modes = - let m1 = - let _1 = _1_inlined1 in - -# 4672 "src/ocaml/preprocess/parser_raw.mly" - (_1) -# 82441 "src/ocaml/preprocess/parser_raw.ml" +# 84376 "src/ocaml/preprocess/parser_raw.ml" in - let ty = - let _1 = + let domain_with_modes = + let m1 = + let _1 = _1_inlined1 in + +# 4683 "src/ocaml/preprocess/parser_raw.mly" + (_1) +# 84385 "src/ocaml/preprocess/parser_raw.ml" + + in + let ty = let _1 = let _1 = - let bound_vars = - let _1 = - let xs = -# 253 "" + let _1 = + let bound_vars = + let _1 = + let xs = +# 264 "" ( List.rev xs ) -# 82453 "src/ocaml/preprocess/parser_raw.ml" - in - +# 84397 "src/ocaml/preprocess/parser_raw.ml" + in + # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 82458 "src/ocaml/preprocess/parser_raw.ml" +# 84402 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 4481 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 84408 "src/ocaml/preprocess/parser_raw.ml" in -# 4470 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 82464 "src/ocaml/preprocess/parser_raw.ml" +# 4732 "src/ocaml/preprocess/parser_raw.mly" + ( Ptyp_poly (bound_vars, inner_type) ) +# 84414 "src/ocaml/preprocess/parser_raw.ml" in + let _endpos__1_ = _endpos__5_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 4721 "src/ocaml/preprocess/parser_raw.mly" - ( Ptyp_poly (bound_vars, inner_type) ) -# 82470 "src/ocaml/preprocess/parser_raw.ml" +# 1333 "src/ocaml/preprocess/parser_raw.mly" + ( mktyp ~loc:_sloc _1 ) +# 84424 "src/ocaml/preprocess/parser_raw.ml" in - let _endpos__1_ = _endpos__5_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" - ( mktyp ~loc:_sloc _1 ) -# 82480 "src/ocaml/preprocess/parser_raw.ml" +# 4734 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 84430 "src/ocaml/preprocess/parser_raw.ml" in + let _endpos__1_ = _endpos__5_ in -# 4723 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 82486 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in - # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 82493 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in - let m0 = -# 4652 "src/ocaml/preprocess/parser_raw.mly" +# 84437 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in + let m0 = +# 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 82500 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 84444 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 82509 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = - let _1 = -# 4628 "src/ocaml/preprocess/parser_raw.mly" +# 84453 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = + let _1 = +# 4639 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 82516 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4633 "src/ocaml/preprocess/parser_raw.mly" +# 84460 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 82521 "src/ocaml/preprocess/parser_raw.ml" +# 84465 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 4565 "src/ocaml/preprocess/parser_raw.mly" +# 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 82531 "src/ocaml/preprocess/parser_raw.ml" +# 84475 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined3_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined3_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 82541 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4571 "src/ocaml/preprocess/parser_raw.mly" +# 84485 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 82547 "src/ocaml/preprocess/parser_raw.ml" - in +# 84491 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -82592,106 +84537,108 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 82596 "src/ocaml/preprocess/parser_raw.ml" +# 84541 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos_ty_inlined1_ in - let _v : (Parsetree.core_type) = let _1 = + let _v = let _1 = - let codomain_with_modes = - let (_endpos_ty_, _startpos_ty_, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1) in - let m1 = -# 4671 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let codomain_with_modes = + let (_endpos_ty_, _startpos_ty_, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1) in + let m1 = +# 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 82608 "src/ocaml/preprocess/parser_raw.ml" - in - let m0 = -# 4652 "src/ocaml/preprocess/parser_raw.mly" +# 84554 "src/ocaml/preprocess/parser_raw.ml" + in + let m0 = +# 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 82613 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 84559 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 82622 "src/ocaml/preprocess/parser_raw.ml" - - in - let domain_with_modes = - let m1 = -# 4671 "src/ocaml/preprocess/parser_raw.mly" +# 84568 "src/ocaml/preprocess/parser_raw.ml" + + in + let domain_with_modes = + let m1 = +# 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 82629 "src/ocaml/preprocess/parser_raw.ml" - in - let ty = - let _1 = -# 4725 "src/ocaml/preprocess/parser_raw.mly" - ( ty ) -# 82635 "src/ocaml/preprocess/parser_raw.ml" +# 84575 "src/ocaml/preprocess/parser_raw.ml" in - let _endpos__1_ = _endpos_ty_ in - + let ty = + let _1 = +# 4736 "src/ocaml/preprocess/parser_raw.mly" + ( ty ) +# 84581 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos_ty_ in + # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 82641 "src/ocaml/preprocess/parser_raw.ml" - - in - let m0 = -# 4652 "src/ocaml/preprocess/parser_raw.mly" +# 84587 "src/ocaml/preprocess/parser_raw.ml" + + in + let m0 = +# 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 82647 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 84593 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 82656 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = - let _1 = -# 4628 "src/ocaml/preprocess/parser_raw.mly" +# 84602 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = + let _1 = +# 4639 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 82663 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4633 "src/ocaml/preprocess/parser_raw.mly" +# 84609 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 82668 "src/ocaml/preprocess/parser_raw.ml" +# 84614 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 4565 "src/ocaml/preprocess/parser_raw.mly" +# 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 82678 "src/ocaml/preprocess/parser_raw.ml" +# 84624 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 82688 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4571 "src/ocaml/preprocess/parser_raw.mly" +# 84634 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 82694 "src/ocaml/preprocess/parser_raw.ml" - in +# 84640 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -82746,106 +84693,108 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 82750 "src/ocaml/preprocess/parser_raw.ml" +# 84697 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos__1_ in - let _v : (Parsetree.core_type) = let _1 = + let _v = let _1 = - let codomain_with_modes = - let (_endpos_ty_, _startpos_ty_, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1) in - let m1 = -# 4672 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let codomain_with_modes = + let (_endpos_ty_, _startpos_ty_, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1) in + let m1 = +# 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 82762 "src/ocaml/preprocess/parser_raw.ml" - in - let m0 = -# 4652 "src/ocaml/preprocess/parser_raw.mly" +# 84710 "src/ocaml/preprocess/parser_raw.ml" + in + let m0 = +# 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 82767 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 84715 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 82776 "src/ocaml/preprocess/parser_raw.ml" - - in - let domain_with_modes = - let m1 = -# 4671 "src/ocaml/preprocess/parser_raw.mly" +# 84724 "src/ocaml/preprocess/parser_raw.ml" + + in + let domain_with_modes = + let m1 = +# 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 82783 "src/ocaml/preprocess/parser_raw.ml" - in - let ty = - let _1 = -# 4725 "src/ocaml/preprocess/parser_raw.mly" - ( ty ) -# 82789 "src/ocaml/preprocess/parser_raw.ml" +# 84731 "src/ocaml/preprocess/parser_raw.ml" in - let _endpos__1_ = _endpos_ty_ in - + let ty = + let _1 = +# 4736 "src/ocaml/preprocess/parser_raw.mly" + ( ty ) +# 84737 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos_ty_ in + # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 82795 "src/ocaml/preprocess/parser_raw.ml" - - in - let m0 = -# 4652 "src/ocaml/preprocess/parser_raw.mly" +# 84743 "src/ocaml/preprocess/parser_raw.ml" + + in + let m0 = +# 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 82801 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 84749 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 82810 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = - let _1 = -# 4628 "src/ocaml/preprocess/parser_raw.mly" +# 84758 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = + let _1 = +# 4639 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 82817 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4633 "src/ocaml/preprocess/parser_raw.mly" +# 84765 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 82822 "src/ocaml/preprocess/parser_raw.ml" +# 84770 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 4565 "src/ocaml/preprocess/parser_raw.mly" +# 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 82832 "src/ocaml/preprocess/parser_raw.ml" +# 84780 "src/ocaml/preprocess/parser_raw.ml" + + in + let _startpos__1_ = _startpos_label_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _startpos__1_ = _startpos_label_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 82842 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4571 "src/ocaml/preprocess/parser_raw.mly" +# 84790 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 82848 "src/ocaml/preprocess/parser_raw.ml" - in +# 84796 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -82900,113 +84849,115 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 82904 "src/ocaml/preprocess/parser_raw.ml" +# 84853 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos_ty_inlined1_ in - let _v : (Parsetree.core_type) = let _1 = + let _v = let _1 = - let codomain_with_modes = - let (_endpos_ty_, _startpos_ty_, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1) in - let m1 = -# 4671 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let codomain_with_modes = + let (_endpos_ty_, _startpos_ty_, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1) in + let m1 = +# 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 82916 "src/ocaml/preprocess/parser_raw.ml" - in - let m0 = - let _1 = -# 4648 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 82922 "src/ocaml/preprocess/parser_raw.ml" +# 84866 "src/ocaml/preprocess/parser_raw.ml" in - -# 4653 "src/ocaml/preprocess/parser_raw.mly" + let m0 = + let _1 = +# 4659 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 84872 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 82927 "src/ocaml/preprocess/parser_raw.ml" +# 84877 "src/ocaml/preprocess/parser_raw.ml" + + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 82937 "src/ocaml/preprocess/parser_raw.ml" - - in - let domain_with_modes = - let m1 = -# 4671 "src/ocaml/preprocess/parser_raw.mly" +# 84887 "src/ocaml/preprocess/parser_raw.ml" + + in + let domain_with_modes = + let m1 = +# 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 82944 "src/ocaml/preprocess/parser_raw.ml" - in - let ty = - let _1 = -# 4725 "src/ocaml/preprocess/parser_raw.mly" - ( ty ) -# 82950 "src/ocaml/preprocess/parser_raw.ml" +# 84894 "src/ocaml/preprocess/parser_raw.ml" in - let _endpos__1_ = _endpos_ty_ in - + let ty = + let _1 = +# 4736 "src/ocaml/preprocess/parser_raw.mly" + ( ty ) +# 84900 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos_ty_ in + # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 82956 "src/ocaml/preprocess/parser_raw.ml" - - in - let m0 = -# 4652 "src/ocaml/preprocess/parser_raw.mly" +# 84906 "src/ocaml/preprocess/parser_raw.ml" + + in + let m0 = +# 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 82962 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 84912 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 82971 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = - let _1 = -# 4628 "src/ocaml/preprocess/parser_raw.mly" +# 84921 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = + let _1 = +# 4639 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 82978 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4633 "src/ocaml/preprocess/parser_raw.mly" +# 84928 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 82983 "src/ocaml/preprocess/parser_raw.ml" +# 84933 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 4565 "src/ocaml/preprocess/parser_raw.mly" +# 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 82993 "src/ocaml/preprocess/parser_raw.ml" +# 84943 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 83003 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4571 "src/ocaml/preprocess/parser_raw.mly" +# 84953 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 83009 "src/ocaml/preprocess/parser_raw.ml" - in +# 84959 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -83068,116 +85019,118 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 83072 "src/ocaml/preprocess/parser_raw.ml" +# 85023 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos__1_inlined1_ in - let _v : (Parsetree.core_type) = let _1 = + let _v = let _1 = - let codomain_with_modes = - let (_endpos_ty_, _startpos_ty_, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1) in - let m1 = - let _1 = _1_inlined1 in - -# 4672 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let codomain_with_modes = + let (_endpos_ty_, _startpos_ty_, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1) in + let m1 = + let _1 = _1_inlined1 in + +# 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 83086 "src/ocaml/preprocess/parser_raw.ml" - - in - let m0 = - let _1 = -# 4648 "src/ocaml/preprocess/parser_raw.mly" +# 85038 "src/ocaml/preprocess/parser_raw.ml" + + in + let m0 = + let _1 = +# 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 83093 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4653 "src/ocaml/preprocess/parser_raw.mly" +# 85045 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 83098 "src/ocaml/preprocess/parser_raw.ml" +# 85050 "src/ocaml/preprocess/parser_raw.ml" + + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 83108 "src/ocaml/preprocess/parser_raw.ml" - - in - let domain_with_modes = - let m1 = -# 4671 "src/ocaml/preprocess/parser_raw.mly" +# 85060 "src/ocaml/preprocess/parser_raw.ml" + + in + let domain_with_modes = + let m1 = +# 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 83115 "src/ocaml/preprocess/parser_raw.ml" - in - let ty = - let _1 = -# 4725 "src/ocaml/preprocess/parser_raw.mly" - ( ty ) -# 83121 "src/ocaml/preprocess/parser_raw.ml" +# 85067 "src/ocaml/preprocess/parser_raw.ml" in - let _endpos__1_ = _endpos_ty_ in - + let ty = + let _1 = +# 4736 "src/ocaml/preprocess/parser_raw.mly" + ( ty ) +# 85073 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos_ty_ in + # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 83127 "src/ocaml/preprocess/parser_raw.ml" - - in - let m0 = -# 4652 "src/ocaml/preprocess/parser_raw.mly" +# 85079 "src/ocaml/preprocess/parser_raw.ml" + + in + let m0 = +# 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 83133 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 85085 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 83142 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = - let _1 = -# 4628 "src/ocaml/preprocess/parser_raw.mly" +# 85094 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = + let _1 = +# 4639 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 83149 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4633 "src/ocaml/preprocess/parser_raw.mly" +# 85101 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 83154 "src/ocaml/preprocess/parser_raw.ml" +# 85106 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 4565 "src/ocaml/preprocess/parser_raw.mly" +# 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 83164 "src/ocaml/preprocess/parser_raw.ml" +# 85116 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 83174 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4571 "src/ocaml/preprocess/parser_raw.mly" +# 85126 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 83180 "src/ocaml/preprocess/parser_raw.ml" - in +# 85132 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -83232,106 +85185,108 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 83236 "src/ocaml/preprocess/parser_raw.ml" +# 85189 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos_ty_inlined1_ in - let _v : (Parsetree.core_type) = let _1 = + let _v = let _1 = - let codomain_with_modes = - let (_endpos_ty_, _startpos_ty_, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1) in - let m1 = -# 4671 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let codomain_with_modes = + let (_endpos_ty_, _startpos_ty_, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1) in + let m1 = +# 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 83248 "src/ocaml/preprocess/parser_raw.ml" - in - let m0 = -# 4652 "src/ocaml/preprocess/parser_raw.mly" +# 85202 "src/ocaml/preprocess/parser_raw.ml" + in + let m0 = +# 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 83253 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 85207 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 83262 "src/ocaml/preprocess/parser_raw.ml" - - in - let domain_with_modes = - let m1 = -# 4672 "src/ocaml/preprocess/parser_raw.mly" +# 85216 "src/ocaml/preprocess/parser_raw.ml" + + in + let domain_with_modes = + let m1 = +# 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 83269 "src/ocaml/preprocess/parser_raw.ml" - in - let ty = - let _1 = -# 4725 "src/ocaml/preprocess/parser_raw.mly" - ( ty ) -# 83275 "src/ocaml/preprocess/parser_raw.ml" +# 85223 "src/ocaml/preprocess/parser_raw.ml" in - let _endpos__1_ = _endpos_ty_ in - + let ty = + let _1 = +# 4736 "src/ocaml/preprocess/parser_raw.mly" + ( ty ) +# 85229 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos_ty_ in + # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 83281 "src/ocaml/preprocess/parser_raw.ml" - - in - let m0 = -# 4652 "src/ocaml/preprocess/parser_raw.mly" +# 85235 "src/ocaml/preprocess/parser_raw.ml" + + in + let m0 = +# 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 83287 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 85241 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 83296 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = - let _1 = -# 4628 "src/ocaml/preprocess/parser_raw.mly" +# 85250 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = + let _1 = +# 4639 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 83303 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4633 "src/ocaml/preprocess/parser_raw.mly" +# 85257 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 83308 "src/ocaml/preprocess/parser_raw.ml" +# 85262 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 4565 "src/ocaml/preprocess/parser_raw.mly" +# 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 83318 "src/ocaml/preprocess/parser_raw.ml" +# 85272 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 83328 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4571 "src/ocaml/preprocess/parser_raw.mly" +# 85282 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 83334 "src/ocaml/preprocess/parser_raw.ml" - in +# 85288 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -83393,106 +85348,108 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 83397 "src/ocaml/preprocess/parser_raw.ml" +# 85352 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos__1_inlined1_ in - let _v : (Parsetree.core_type) = let _1 = + let _v = let _1 = - let codomain_with_modes = - let (_endpos_ty_, _startpos_ty_, _1, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, _1_inlined1, ty_inlined1) in - let m1 = -# 4672 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let codomain_with_modes = + let (_endpos_ty_, _startpos_ty_, _1, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, _1_inlined1, ty_inlined1) in + let m1 = +# 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 83409 "src/ocaml/preprocess/parser_raw.ml" - in - let m0 = -# 4652 "src/ocaml/preprocess/parser_raw.mly" +# 85365 "src/ocaml/preprocess/parser_raw.ml" + in + let m0 = +# 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 83414 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 85370 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 83423 "src/ocaml/preprocess/parser_raw.ml" - - in - let domain_with_modes = - let m1 = -# 4672 "src/ocaml/preprocess/parser_raw.mly" +# 85379 "src/ocaml/preprocess/parser_raw.ml" + + in + let domain_with_modes = + let m1 = +# 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 83430 "src/ocaml/preprocess/parser_raw.ml" - in - let ty = - let _1 = -# 4725 "src/ocaml/preprocess/parser_raw.mly" - ( ty ) -# 83436 "src/ocaml/preprocess/parser_raw.ml" +# 85386 "src/ocaml/preprocess/parser_raw.ml" in - let _endpos__1_ = _endpos_ty_ in - + let ty = + let _1 = +# 4736 "src/ocaml/preprocess/parser_raw.mly" + ( ty ) +# 85392 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos_ty_ in + # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 83442 "src/ocaml/preprocess/parser_raw.ml" - - in - let m0 = -# 4652 "src/ocaml/preprocess/parser_raw.mly" +# 85398 "src/ocaml/preprocess/parser_raw.ml" + + in + let m0 = +# 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 83448 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 85404 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 83457 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = - let _1 = -# 4628 "src/ocaml/preprocess/parser_raw.mly" +# 85413 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = + let _1 = +# 4639 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 83464 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4633 "src/ocaml/preprocess/parser_raw.mly" +# 85420 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 83469 "src/ocaml/preprocess/parser_raw.ml" +# 85425 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 4565 "src/ocaml/preprocess/parser_raw.mly" +# 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 83479 "src/ocaml/preprocess/parser_raw.ml" +# 85435 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 83489 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4571 "src/ocaml/preprocess/parser_raw.mly" +# 85445 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 83495 "src/ocaml/preprocess/parser_raw.ml" - in +# 85451 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -83554,113 +85511,115 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 83558 "src/ocaml/preprocess/parser_raw.ml" +# 85515 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos_ty_inlined1_ in - let _v : (Parsetree.core_type) = let _1 = + let _v = let _1 = - let codomain_with_modes = - let (_endpos_ty_, _startpos_ty_, ty, _1) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1, _1_inlined1) in - let m1 = -# 4671 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let codomain_with_modes = + let (_endpos_ty_, _startpos_ty_, ty, _1) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1, _1_inlined1) in + let m1 = +# 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 83570 "src/ocaml/preprocess/parser_raw.ml" - in - let m0 = - let _1 = -# 4648 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 83576 "src/ocaml/preprocess/parser_raw.ml" +# 85528 "src/ocaml/preprocess/parser_raw.ml" in - -# 4653 "src/ocaml/preprocess/parser_raw.mly" + let m0 = + let _1 = +# 4659 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 85534 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 83581 "src/ocaml/preprocess/parser_raw.ml" +# 85539 "src/ocaml/preprocess/parser_raw.ml" + + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 83591 "src/ocaml/preprocess/parser_raw.ml" - - in - let domain_with_modes = - let m1 = -# 4672 "src/ocaml/preprocess/parser_raw.mly" +# 85549 "src/ocaml/preprocess/parser_raw.ml" + + in + let domain_with_modes = + let m1 = +# 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 83598 "src/ocaml/preprocess/parser_raw.ml" - in - let ty = - let _1 = -# 4725 "src/ocaml/preprocess/parser_raw.mly" - ( ty ) -# 83604 "src/ocaml/preprocess/parser_raw.ml" +# 85556 "src/ocaml/preprocess/parser_raw.ml" in - let _endpos__1_ = _endpos_ty_ in - + let ty = + let _1 = +# 4736 "src/ocaml/preprocess/parser_raw.mly" + ( ty ) +# 85562 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos_ty_ in + # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 83610 "src/ocaml/preprocess/parser_raw.ml" - - in - let m0 = -# 4652 "src/ocaml/preprocess/parser_raw.mly" +# 85568 "src/ocaml/preprocess/parser_raw.ml" + + in + let m0 = +# 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 83616 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 85574 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 83625 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = - let _1 = -# 4628 "src/ocaml/preprocess/parser_raw.mly" +# 85583 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = + let _1 = +# 4639 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 83632 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4633 "src/ocaml/preprocess/parser_raw.mly" +# 85590 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 83637 "src/ocaml/preprocess/parser_raw.ml" +# 85595 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 4565 "src/ocaml/preprocess/parser_raw.mly" +# 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 83647 "src/ocaml/preprocess/parser_raw.ml" +# 85605 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 83657 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4571 "src/ocaml/preprocess/parser_raw.mly" +# 85615 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 83663 "src/ocaml/preprocess/parser_raw.ml" - in +# 85621 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -83729,116 +85688,118 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 83733 "src/ocaml/preprocess/parser_raw.ml" +# 85692 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos__1_inlined2_ in - let _v : (Parsetree.core_type) = let _1 = + let _v = let _1 = - let codomain_with_modes = - let (_endpos_ty_, _startpos_ty_, _1_inlined1, ty, _1) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, _1_inlined2, ty_inlined1, _1_inlined1) in - let m1 = - let _1 = _1_inlined1 in - -# 4672 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let codomain_with_modes = + let (_endpos_ty_, _startpos_ty_, _1_inlined1, ty, _1) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, _1_inlined2, ty_inlined1, _1_inlined1) in + let m1 = + let _1 = _1_inlined1 in + +# 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 83747 "src/ocaml/preprocess/parser_raw.ml" - - in - let m0 = - let _1 = -# 4648 "src/ocaml/preprocess/parser_raw.mly" +# 85707 "src/ocaml/preprocess/parser_raw.ml" + + in + let m0 = + let _1 = +# 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 83754 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4653 "src/ocaml/preprocess/parser_raw.mly" +# 85714 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 83759 "src/ocaml/preprocess/parser_raw.ml" +# 85719 "src/ocaml/preprocess/parser_raw.ml" + + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 83769 "src/ocaml/preprocess/parser_raw.ml" - - in - let domain_with_modes = - let m1 = -# 4672 "src/ocaml/preprocess/parser_raw.mly" +# 85729 "src/ocaml/preprocess/parser_raw.ml" + + in + let domain_with_modes = + let m1 = +# 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 83776 "src/ocaml/preprocess/parser_raw.ml" - in - let ty = - let _1 = -# 4725 "src/ocaml/preprocess/parser_raw.mly" - ( ty ) -# 83782 "src/ocaml/preprocess/parser_raw.ml" +# 85736 "src/ocaml/preprocess/parser_raw.ml" in - let _endpos__1_ = _endpos_ty_ in - + let ty = + let _1 = +# 4736 "src/ocaml/preprocess/parser_raw.mly" + ( ty ) +# 85742 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos_ty_ in + # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 83788 "src/ocaml/preprocess/parser_raw.ml" - - in - let m0 = -# 4652 "src/ocaml/preprocess/parser_raw.mly" +# 85748 "src/ocaml/preprocess/parser_raw.ml" + + in + let m0 = +# 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 83794 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 85754 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 83803 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = - let _1 = -# 4628 "src/ocaml/preprocess/parser_raw.mly" +# 85763 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = + let _1 = +# 4639 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 83810 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4633 "src/ocaml/preprocess/parser_raw.mly" +# 85770 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 83815 "src/ocaml/preprocess/parser_raw.ml" +# 85775 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 4565 "src/ocaml/preprocess/parser_raw.mly" +# 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 83825 "src/ocaml/preprocess/parser_raw.ml" +# 85785 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined2_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined2_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 83835 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4571 "src/ocaml/preprocess/parser_raw.mly" +# 85795 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 83841 "src/ocaml/preprocess/parser_raw.ml" - in +# 85801 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -83921,153 +85882,155 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 83925 "src/ocaml/preprocess/parser_raw.ml" +# 85886 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos_ty_ in - let _v : (Parsetree.core_type) = let _1 = + let _v = let _1 = - let codomain_with_modes = - let m1 = -# 4671 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let codomain_with_modes = + let m1 = +# 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 83936 "src/ocaml/preprocess/parser_raw.ml" - in - let m0 = -# 4652 "src/ocaml/preprocess/parser_raw.mly" +# 85898 "src/ocaml/preprocess/parser_raw.ml" + in + let m0 = +# 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 83941 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 85903 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 83950 "src/ocaml/preprocess/parser_raw.ml" - - in - let domain_with_modes = - let m1 = -# 4671 "src/ocaml/preprocess/parser_raw.mly" +# 85912 "src/ocaml/preprocess/parser_raw.ml" + + in + let domain_with_modes = + let m1 = +# 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 83957 "src/ocaml/preprocess/parser_raw.ml" - in - let ty = - let _startpos__1_ = _startpos__1_inlined1_ in - let _1 = +# 85919 "src/ocaml/preprocess/parser_raw.ml" + in + let ty = + let _startpos__1_ = _startpos__1_inlined1_ in let _1 = let _1 = - let bound_vars = - let _1 = - let xs = -# 253 "" + let _1 = + let bound_vars = + let _1 = + let xs = +# 264 "" ( List.rev xs ) -# 83969 "src/ocaml/preprocess/parser_raw.ml" - in - +# 85931 "src/ocaml/preprocess/parser_raw.ml" + in + # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 83974 "src/ocaml/preprocess/parser_raw.ml" +# 85936 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 4481 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 85942 "src/ocaml/preprocess/parser_raw.ml" in -# 4470 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 83980 "src/ocaml/preprocess/parser_raw.ml" +# 4732 "src/ocaml/preprocess/parser_raw.mly" + ( Ptyp_poly (bound_vars, inner_type) ) +# 85948 "src/ocaml/preprocess/parser_raw.ml" in + let _endpos__1_ = _endpos__5_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 4721 "src/ocaml/preprocess/parser_raw.mly" - ( Ptyp_poly (bound_vars, inner_type) ) -# 83986 "src/ocaml/preprocess/parser_raw.ml" +# 1333 "src/ocaml/preprocess/parser_raw.mly" + ( mktyp ~loc:_sloc _1 ) +# 85958 "src/ocaml/preprocess/parser_raw.ml" in - let _endpos__1_ = _endpos__5_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" - ( mktyp ~loc:_sloc _1 ) -# 83996 "src/ocaml/preprocess/parser_raw.ml" +# 4734 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 85964 "src/ocaml/preprocess/parser_raw.ml" in + let _endpos__1_ = _endpos__5_ in -# 4723 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 84002 "src/ocaml/preprocess/parser_raw.ml" +# 1294 "src/ocaml/preprocess/parser_raw.mly" + ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) +# 85971 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in + let m0 = + let _1 = +# 4659 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 85979 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4664 "src/ocaml/preprocess/parser_raw.mly" + (_1) +# 85984 "src/ocaml/preprocess/parser_raw.ml" in - let _endpos__1_ = _endpos__5_ in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 1294 "src/ocaml/preprocess/parser_raw.mly" - ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 84009 "src/ocaml/preprocess/parser_raw.ml" +# 4687 "src/ocaml/preprocess/parser_raw.mly" + ( + let m = m0 @ m1 in + (ty, _loc_ty_), m + ) +# 85994 "src/ocaml/preprocess/parser_raw.ml" in - let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in - let m0 = + let label = let _1 = -# 4648 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 84017 "src/ocaml/preprocess/parser_raw.ml" +# 4639 "src/ocaml/preprocess/parser_raw.mly" + ( Labelled label ) +# 86001 "src/ocaml/preprocess/parser_raw.ml" in -# 4653 "src/ocaml/preprocess/parser_raw.mly" - (_1) -# 84022 "src/ocaml/preprocess/parser_raw.ml" +# 4644 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 86006 "src/ocaml/preprocess/parser_raw.ml" in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" - ( - let m = m0 @ m1 in - (ty, _loc_ty_), m - ) -# 84032 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = - let _1 = -# 4628 "src/ocaml/preprocess/parser_raw.mly" - ( Labelled label ) -# 84039 "src/ocaml/preprocess/parser_raw.ml" - in -# 4633 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 84044 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4565 "src/ocaml/preprocess/parser_raw.mly" +# 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 84054 "src/ocaml/preprocess/parser_raw.ml" +# 86016 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos_ty_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let (_endpos__1_, _startpos__1_) = (_endpos_ty_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 84064 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4571 "src/ocaml/preprocess/parser_raw.mly" +# 86026 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 84070 "src/ocaml/preprocess/parser_raw.ml" - in +# 86032 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -84157,154 +86120,156 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 84161 "src/ocaml/preprocess/parser_raw.ml" +# 86124 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos__1_inlined2_ in - let _v : (Parsetree.core_type) = let _1 = + let _v = let _1 = - let codomain_with_modes = - let _1 = _1_inlined2 in - let m1 = -# 4672 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let codomain_with_modes = + let _1 = _1_inlined2 in + let m1 = +# 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 84173 "src/ocaml/preprocess/parser_raw.ml" - in - let m0 = -# 4652 "src/ocaml/preprocess/parser_raw.mly" +# 86137 "src/ocaml/preprocess/parser_raw.ml" + in + let m0 = +# 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 84178 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 86142 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 84187 "src/ocaml/preprocess/parser_raw.ml" - - in - let domain_with_modes = - let m1 = -# 4671 "src/ocaml/preprocess/parser_raw.mly" +# 86151 "src/ocaml/preprocess/parser_raw.ml" + + in + let domain_with_modes = + let m1 = +# 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 84194 "src/ocaml/preprocess/parser_raw.ml" - in - let ty = - let _startpos__1_ = _startpos__1_inlined1_ in - let _1 = +# 86158 "src/ocaml/preprocess/parser_raw.ml" + in + let ty = + let _startpos__1_ = _startpos__1_inlined1_ in let _1 = let _1 = - let bound_vars = - let _1 = - let xs = -# 253 "" + let _1 = + let bound_vars = + let _1 = + let xs = +# 264 "" ( List.rev xs ) -# 84206 "src/ocaml/preprocess/parser_raw.ml" - in - +# 86170 "src/ocaml/preprocess/parser_raw.ml" + in + # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 84211 "src/ocaml/preprocess/parser_raw.ml" +# 86175 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 4481 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 86181 "src/ocaml/preprocess/parser_raw.ml" in -# 4470 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 84217 "src/ocaml/preprocess/parser_raw.ml" +# 4732 "src/ocaml/preprocess/parser_raw.mly" + ( Ptyp_poly (bound_vars, inner_type) ) +# 86187 "src/ocaml/preprocess/parser_raw.ml" in + let _endpos__1_ = _endpos__5_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 4721 "src/ocaml/preprocess/parser_raw.mly" - ( Ptyp_poly (bound_vars, inner_type) ) -# 84223 "src/ocaml/preprocess/parser_raw.ml" +# 1333 "src/ocaml/preprocess/parser_raw.mly" + ( mktyp ~loc:_sloc _1 ) +# 86197 "src/ocaml/preprocess/parser_raw.ml" in - let _endpos__1_ = _endpos__5_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" - ( mktyp ~loc:_sloc _1 ) -# 84233 "src/ocaml/preprocess/parser_raw.ml" +# 4734 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 86203 "src/ocaml/preprocess/parser_raw.ml" in + let _endpos__1_ = _endpos__5_ in -# 4723 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 84239 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in - # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 84246 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in - let m0 = - let _1 = -# 4648 "src/ocaml/preprocess/parser_raw.mly" +# 86210 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in + let m0 = + let _1 = +# 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 84254 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4653 "src/ocaml/preprocess/parser_raw.mly" +# 86218 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 84259 "src/ocaml/preprocess/parser_raw.ml" +# 86223 "src/ocaml/preprocess/parser_raw.ml" + + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 84269 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = - let _1 = -# 4628 "src/ocaml/preprocess/parser_raw.mly" +# 86233 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = + let _1 = +# 4639 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 84276 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4633 "src/ocaml/preprocess/parser_raw.mly" +# 86240 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 84281 "src/ocaml/preprocess/parser_raw.ml" +# 86245 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 4565 "src/ocaml/preprocess/parser_raw.mly" +# 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 84291 "src/ocaml/preprocess/parser_raw.ml" +# 86255 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined2_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined2_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 84301 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4571 "src/ocaml/preprocess/parser_raw.mly" +# 86265 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 84307 "src/ocaml/preprocess/parser_raw.ml" - in +# 86271 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -84394,161 +86359,163 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 84398 "src/ocaml/preprocess/parser_raw.ml" +# 86363 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos_ty_ in - let _v : (Parsetree.core_type) = let _1 = + let _v = let _1 = - let codomain_with_modes = - let _1 = _1_inlined2 in - let m1 = -# 4671 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let codomain_with_modes = + let _1 = _1_inlined2 in + let m1 = +# 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 84410 "src/ocaml/preprocess/parser_raw.ml" - in - let m0 = - let _1 = -# 4648 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 84416 "src/ocaml/preprocess/parser_raw.ml" +# 86376 "src/ocaml/preprocess/parser_raw.ml" in - -# 4653 "src/ocaml/preprocess/parser_raw.mly" + let m0 = + let _1 = +# 4659 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 86382 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 84421 "src/ocaml/preprocess/parser_raw.ml" +# 86387 "src/ocaml/preprocess/parser_raw.ml" + + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 84431 "src/ocaml/preprocess/parser_raw.ml" - - in - let domain_with_modes = - let m1 = -# 4671 "src/ocaml/preprocess/parser_raw.mly" +# 86397 "src/ocaml/preprocess/parser_raw.ml" + + in + let domain_with_modes = + let m1 = +# 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 84438 "src/ocaml/preprocess/parser_raw.ml" - in - let ty = - let _startpos__1_ = _startpos__1_inlined1_ in - let _1 = +# 86404 "src/ocaml/preprocess/parser_raw.ml" + in + let ty = + let _startpos__1_ = _startpos__1_inlined1_ in let _1 = let _1 = - let bound_vars = - let _1 = - let xs = -# 253 "" + let _1 = + let bound_vars = + let _1 = + let xs = +# 264 "" ( List.rev xs ) -# 84450 "src/ocaml/preprocess/parser_raw.ml" - in - +# 86416 "src/ocaml/preprocess/parser_raw.ml" + in + # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 84455 "src/ocaml/preprocess/parser_raw.ml" +# 86421 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 4481 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 86427 "src/ocaml/preprocess/parser_raw.ml" in -# 4470 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 84461 "src/ocaml/preprocess/parser_raw.ml" +# 4732 "src/ocaml/preprocess/parser_raw.mly" + ( Ptyp_poly (bound_vars, inner_type) ) +# 86433 "src/ocaml/preprocess/parser_raw.ml" in + let _endpos__1_ = _endpos__5_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 4721 "src/ocaml/preprocess/parser_raw.mly" - ( Ptyp_poly (bound_vars, inner_type) ) -# 84467 "src/ocaml/preprocess/parser_raw.ml" +# 1333 "src/ocaml/preprocess/parser_raw.mly" + ( mktyp ~loc:_sloc _1 ) +# 86443 "src/ocaml/preprocess/parser_raw.ml" in - let _endpos__1_ = _endpos__5_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" - ( mktyp ~loc:_sloc _1 ) -# 84477 "src/ocaml/preprocess/parser_raw.ml" +# 4734 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 86449 "src/ocaml/preprocess/parser_raw.ml" in + let _endpos__1_ = _endpos__5_ in -# 4723 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 84483 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in - # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 84490 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in - let m0 = - let _1 = -# 4648 "src/ocaml/preprocess/parser_raw.mly" +# 86456 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in + let m0 = + let _1 = +# 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 84498 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4653 "src/ocaml/preprocess/parser_raw.mly" +# 86464 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 84503 "src/ocaml/preprocess/parser_raw.ml" +# 86469 "src/ocaml/preprocess/parser_raw.ml" + + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 84513 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = - let _1 = -# 4628 "src/ocaml/preprocess/parser_raw.mly" +# 86479 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = + let _1 = +# 4639 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 84520 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4633 "src/ocaml/preprocess/parser_raw.mly" +# 86486 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 84525 "src/ocaml/preprocess/parser_raw.ml" +# 86491 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 4565 "src/ocaml/preprocess/parser_raw.mly" +# 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 84535 "src/ocaml/preprocess/parser_raw.ml" +# 86501 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos_ty_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let (_endpos__1_, _startpos__1_) = (_endpos_ty_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 84545 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4571 "src/ocaml/preprocess/parser_raw.mly" +# 86511 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 84551 "src/ocaml/preprocess/parser_raw.ml" - in +# 86517 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -84645,164 +86612,166 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 84649 "src/ocaml/preprocess/parser_raw.ml" +# 86616 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos__1_inlined3_ in - let _v : (Parsetree.core_type) = let _1 = + let _v = let _1 = - let codomain_with_modes = - let (_1_inlined1, _1) = (_1_inlined3, _1_inlined2) in - let m1 = - let _1 = _1_inlined1 in - -# 4672 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let codomain_with_modes = + let (_1_inlined1, _1) = (_1_inlined3, _1_inlined2) in + let m1 = + let _1 = _1_inlined1 in + +# 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 84663 "src/ocaml/preprocess/parser_raw.ml" - - in - let m0 = - let _1 = -# 4648 "src/ocaml/preprocess/parser_raw.mly" +# 86631 "src/ocaml/preprocess/parser_raw.ml" + + in + let m0 = + let _1 = +# 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 84670 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4653 "src/ocaml/preprocess/parser_raw.mly" +# 86638 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 84675 "src/ocaml/preprocess/parser_raw.ml" +# 86643 "src/ocaml/preprocess/parser_raw.ml" + + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 84685 "src/ocaml/preprocess/parser_raw.ml" - - in - let domain_with_modes = - let m1 = -# 4671 "src/ocaml/preprocess/parser_raw.mly" +# 86653 "src/ocaml/preprocess/parser_raw.ml" + + in + let domain_with_modes = + let m1 = +# 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 84692 "src/ocaml/preprocess/parser_raw.ml" - in - let ty = - let _startpos__1_ = _startpos__1_inlined1_ in - let _1 = +# 86660 "src/ocaml/preprocess/parser_raw.ml" + in + let ty = + let _startpos__1_ = _startpos__1_inlined1_ in let _1 = let _1 = - let bound_vars = - let _1 = - let xs = -# 253 "" + let _1 = + let bound_vars = + let _1 = + let xs = +# 264 "" ( List.rev xs ) -# 84704 "src/ocaml/preprocess/parser_raw.ml" - in - +# 86672 "src/ocaml/preprocess/parser_raw.ml" + in + # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 84709 "src/ocaml/preprocess/parser_raw.ml" +# 86677 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 4481 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 86683 "src/ocaml/preprocess/parser_raw.ml" in -# 4470 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 84715 "src/ocaml/preprocess/parser_raw.ml" +# 4732 "src/ocaml/preprocess/parser_raw.mly" + ( Ptyp_poly (bound_vars, inner_type) ) +# 86689 "src/ocaml/preprocess/parser_raw.ml" in + let _endpos__1_ = _endpos__5_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 4721 "src/ocaml/preprocess/parser_raw.mly" - ( Ptyp_poly (bound_vars, inner_type) ) -# 84721 "src/ocaml/preprocess/parser_raw.ml" +# 1333 "src/ocaml/preprocess/parser_raw.mly" + ( mktyp ~loc:_sloc _1 ) +# 86699 "src/ocaml/preprocess/parser_raw.ml" in - let _endpos__1_ = _endpos__5_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" - ( mktyp ~loc:_sloc _1 ) -# 84731 "src/ocaml/preprocess/parser_raw.ml" +# 4734 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 86705 "src/ocaml/preprocess/parser_raw.ml" in + let _endpos__1_ = _endpos__5_ in -# 4723 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 84737 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in - # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 84744 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in - let m0 = - let _1 = -# 4648 "src/ocaml/preprocess/parser_raw.mly" +# 86712 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in + let m0 = + let _1 = +# 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 84752 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4653 "src/ocaml/preprocess/parser_raw.mly" +# 86720 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 84757 "src/ocaml/preprocess/parser_raw.ml" +# 86725 "src/ocaml/preprocess/parser_raw.ml" + + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 84767 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = - let _1 = -# 4628 "src/ocaml/preprocess/parser_raw.mly" +# 86735 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = + let _1 = +# 4639 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 84774 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4633 "src/ocaml/preprocess/parser_raw.mly" +# 86742 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 84779 "src/ocaml/preprocess/parser_raw.ml" +# 86747 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 4565 "src/ocaml/preprocess/parser_raw.mly" +# 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 84789 "src/ocaml/preprocess/parser_raw.ml" +# 86757 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined3_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined3_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 84799 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4571 "src/ocaml/preprocess/parser_raw.mly" +# 86767 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 84805 "src/ocaml/preprocess/parser_raw.ml" - in +# 86773 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -84892,156 +86861,158 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 84896 "src/ocaml/preprocess/parser_raw.ml" +# 86865 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos_ty_ in - let _v : (Parsetree.core_type) = let _1 = + let _v = let _1 = - let codomain_with_modes = - let m1 = -# 4671 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let codomain_with_modes = + let m1 = +# 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 84907 "src/ocaml/preprocess/parser_raw.ml" - in - let m0 = -# 4652 "src/ocaml/preprocess/parser_raw.mly" +# 86877 "src/ocaml/preprocess/parser_raw.ml" + in + let m0 = +# 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 84912 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 86882 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 84921 "src/ocaml/preprocess/parser_raw.ml" - - in - let domain_with_modes = - let m1 = - let _1 = _1_inlined2 in - -# 4672 "src/ocaml/preprocess/parser_raw.mly" - (_1) -# 84930 "src/ocaml/preprocess/parser_raw.ml" +# 86891 "src/ocaml/preprocess/parser_raw.ml" in - let ty = - let _startpos__1_ = _startpos__1_inlined1_ in - let _1 = + let domain_with_modes = + let m1 = + let _1 = _1_inlined2 in + +# 4683 "src/ocaml/preprocess/parser_raw.mly" + (_1) +# 86900 "src/ocaml/preprocess/parser_raw.ml" + + in + let ty = + let _startpos__1_ = _startpos__1_inlined1_ in let _1 = let _1 = - let bound_vars = - let _1 = - let xs = -# 253 "" + let _1 = + let bound_vars = + let _1 = + let xs = +# 264 "" ( List.rev xs ) -# 84943 "src/ocaml/preprocess/parser_raw.ml" - in - +# 86913 "src/ocaml/preprocess/parser_raw.ml" + in + # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 84948 "src/ocaml/preprocess/parser_raw.ml" +# 86918 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 4481 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 86924 "src/ocaml/preprocess/parser_raw.ml" in -# 4470 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 84954 "src/ocaml/preprocess/parser_raw.ml" +# 4732 "src/ocaml/preprocess/parser_raw.mly" + ( Ptyp_poly (bound_vars, inner_type) ) +# 86930 "src/ocaml/preprocess/parser_raw.ml" in + let _endpos__1_ = _endpos__5_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 4721 "src/ocaml/preprocess/parser_raw.mly" - ( Ptyp_poly (bound_vars, inner_type) ) -# 84960 "src/ocaml/preprocess/parser_raw.ml" +# 1333 "src/ocaml/preprocess/parser_raw.mly" + ( mktyp ~loc:_sloc _1 ) +# 86940 "src/ocaml/preprocess/parser_raw.ml" in - let _endpos__1_ = _endpos__5_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" - ( mktyp ~loc:_sloc _1 ) -# 84970 "src/ocaml/preprocess/parser_raw.ml" +# 4734 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 86946 "src/ocaml/preprocess/parser_raw.ml" in + let _endpos__1_ = _endpos__5_ in -# 4723 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 84976 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in - # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 84983 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in - let m0 = - let _1 = -# 4648 "src/ocaml/preprocess/parser_raw.mly" +# 86953 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in + let m0 = + let _1 = +# 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 84991 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4653 "src/ocaml/preprocess/parser_raw.mly" +# 86961 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 84996 "src/ocaml/preprocess/parser_raw.ml" +# 86966 "src/ocaml/preprocess/parser_raw.ml" + + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 85006 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = - let _1 = -# 4628 "src/ocaml/preprocess/parser_raw.mly" +# 86976 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = + let _1 = +# 4639 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 85013 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4633 "src/ocaml/preprocess/parser_raw.mly" +# 86983 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 85018 "src/ocaml/preprocess/parser_raw.ml" +# 86988 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 4565 "src/ocaml/preprocess/parser_raw.mly" +# 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 85028 "src/ocaml/preprocess/parser_raw.ml" +# 86998 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos_ty_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let (_endpos__1_, _startpos__1_) = (_endpos_ty_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 85038 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4571 "src/ocaml/preprocess/parser_raw.mly" +# 87008 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 85044 "src/ocaml/preprocess/parser_raw.ml" - in +# 87014 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -85138,157 +87109,159 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 85142 "src/ocaml/preprocess/parser_raw.ml" +# 87113 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos__1_inlined3_ in - let _v : (Parsetree.core_type) = let _1 = + let _v = let _1 = - let codomain_with_modes = - let _1 = _1_inlined3 in - let m1 = -# 4672 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let codomain_with_modes = + let _1 = _1_inlined3 in + let m1 = +# 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 85154 "src/ocaml/preprocess/parser_raw.ml" - in - let m0 = -# 4652 "src/ocaml/preprocess/parser_raw.mly" +# 87126 "src/ocaml/preprocess/parser_raw.ml" + in + let m0 = +# 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 85159 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 87131 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 85168 "src/ocaml/preprocess/parser_raw.ml" - - in - let domain_with_modes = - let m1 = - let _1 = _1_inlined2 in - -# 4672 "src/ocaml/preprocess/parser_raw.mly" - (_1) -# 85177 "src/ocaml/preprocess/parser_raw.ml" +# 87140 "src/ocaml/preprocess/parser_raw.ml" in - let ty = - let _startpos__1_ = _startpos__1_inlined1_ in - let _1 = + let domain_with_modes = + let m1 = + let _1 = _1_inlined2 in + +# 4683 "src/ocaml/preprocess/parser_raw.mly" + (_1) +# 87149 "src/ocaml/preprocess/parser_raw.ml" + + in + let ty = + let _startpos__1_ = _startpos__1_inlined1_ in let _1 = let _1 = - let bound_vars = - let _1 = - let xs = -# 253 "" + let _1 = + let bound_vars = + let _1 = + let xs = +# 264 "" ( List.rev xs ) -# 85190 "src/ocaml/preprocess/parser_raw.ml" - in - +# 87162 "src/ocaml/preprocess/parser_raw.ml" + in + # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 85195 "src/ocaml/preprocess/parser_raw.ml" +# 87167 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 4481 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 87173 "src/ocaml/preprocess/parser_raw.ml" in -# 4470 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 85201 "src/ocaml/preprocess/parser_raw.ml" +# 4732 "src/ocaml/preprocess/parser_raw.mly" + ( Ptyp_poly (bound_vars, inner_type) ) +# 87179 "src/ocaml/preprocess/parser_raw.ml" in + let _endpos__1_ = _endpos__5_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 4721 "src/ocaml/preprocess/parser_raw.mly" - ( Ptyp_poly (bound_vars, inner_type) ) -# 85207 "src/ocaml/preprocess/parser_raw.ml" +# 1333 "src/ocaml/preprocess/parser_raw.mly" + ( mktyp ~loc:_sloc _1 ) +# 87189 "src/ocaml/preprocess/parser_raw.ml" in - let _endpos__1_ = _endpos__5_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" - ( mktyp ~loc:_sloc _1 ) -# 85217 "src/ocaml/preprocess/parser_raw.ml" +# 4734 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 87195 "src/ocaml/preprocess/parser_raw.ml" in + let _endpos__1_ = _endpos__5_ in -# 4723 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 85223 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in - # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 85230 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in - let m0 = - let _1 = -# 4648 "src/ocaml/preprocess/parser_raw.mly" +# 87202 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in + let m0 = + let _1 = +# 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 85238 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4653 "src/ocaml/preprocess/parser_raw.mly" +# 87210 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 85243 "src/ocaml/preprocess/parser_raw.ml" +# 87215 "src/ocaml/preprocess/parser_raw.ml" + + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 85253 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = - let _1 = -# 4628 "src/ocaml/preprocess/parser_raw.mly" +# 87225 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = + let _1 = +# 4639 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 85260 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4633 "src/ocaml/preprocess/parser_raw.mly" +# 87232 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 85265 "src/ocaml/preprocess/parser_raw.ml" +# 87237 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 4565 "src/ocaml/preprocess/parser_raw.mly" +# 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 85275 "src/ocaml/preprocess/parser_raw.ml" +# 87247 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined3_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined3_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 85285 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4571 "src/ocaml/preprocess/parser_raw.mly" +# 87257 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 85291 "src/ocaml/preprocess/parser_raw.ml" - in +# 87263 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -85385,164 +87358,166 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 85389 "src/ocaml/preprocess/parser_raw.ml" +# 87362 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos_ty_ in - let _v : (Parsetree.core_type) = let _1 = + let _v = let _1 = - let codomain_with_modes = - let _1 = _1_inlined3 in - let m1 = -# 4671 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let codomain_with_modes = + let _1 = _1_inlined3 in + let m1 = +# 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 85401 "src/ocaml/preprocess/parser_raw.ml" - in - let m0 = - let _1 = -# 4648 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 85407 "src/ocaml/preprocess/parser_raw.ml" +# 87375 "src/ocaml/preprocess/parser_raw.ml" in - -# 4653 "src/ocaml/preprocess/parser_raw.mly" + let m0 = + let _1 = +# 4659 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 87381 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 85412 "src/ocaml/preprocess/parser_raw.ml" +# 87386 "src/ocaml/preprocess/parser_raw.ml" + + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 85422 "src/ocaml/preprocess/parser_raw.ml" - - in - let domain_with_modes = - let m1 = - let _1 = _1_inlined2 in - -# 4672 "src/ocaml/preprocess/parser_raw.mly" - (_1) -# 85431 "src/ocaml/preprocess/parser_raw.ml" +# 87396 "src/ocaml/preprocess/parser_raw.ml" in - let ty = - let _startpos__1_ = _startpos__1_inlined1_ in - let _1 = + let domain_with_modes = + let m1 = + let _1 = _1_inlined2 in + +# 4683 "src/ocaml/preprocess/parser_raw.mly" + (_1) +# 87405 "src/ocaml/preprocess/parser_raw.ml" + + in + let ty = + let _startpos__1_ = _startpos__1_inlined1_ in let _1 = let _1 = - let bound_vars = - let _1 = - let xs = -# 253 "" + let _1 = + let bound_vars = + let _1 = + let xs = +# 264 "" ( List.rev xs ) -# 85444 "src/ocaml/preprocess/parser_raw.ml" - in - +# 87418 "src/ocaml/preprocess/parser_raw.ml" + in + # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 85449 "src/ocaml/preprocess/parser_raw.ml" +# 87423 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 4481 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 87429 "src/ocaml/preprocess/parser_raw.ml" in -# 4470 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 85455 "src/ocaml/preprocess/parser_raw.ml" +# 4732 "src/ocaml/preprocess/parser_raw.mly" + ( Ptyp_poly (bound_vars, inner_type) ) +# 87435 "src/ocaml/preprocess/parser_raw.ml" in + let _endpos__1_ = _endpos__5_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 4721 "src/ocaml/preprocess/parser_raw.mly" - ( Ptyp_poly (bound_vars, inner_type) ) -# 85461 "src/ocaml/preprocess/parser_raw.ml" +# 1333 "src/ocaml/preprocess/parser_raw.mly" + ( mktyp ~loc:_sloc _1 ) +# 87445 "src/ocaml/preprocess/parser_raw.ml" in - let _endpos__1_ = _endpos__5_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" - ( mktyp ~loc:_sloc _1 ) -# 85471 "src/ocaml/preprocess/parser_raw.ml" +# 4734 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 87451 "src/ocaml/preprocess/parser_raw.ml" in + let _endpos__1_ = _endpos__5_ in -# 4723 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 85477 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in - # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 85484 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in - let m0 = - let _1 = -# 4648 "src/ocaml/preprocess/parser_raw.mly" +# 87458 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in + let m0 = + let _1 = +# 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 85492 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4653 "src/ocaml/preprocess/parser_raw.mly" +# 87466 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 85497 "src/ocaml/preprocess/parser_raw.ml" +# 87471 "src/ocaml/preprocess/parser_raw.ml" + + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 85507 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = - let _1 = -# 4628 "src/ocaml/preprocess/parser_raw.mly" +# 87481 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = + let _1 = +# 4639 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 85514 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4633 "src/ocaml/preprocess/parser_raw.mly" +# 87488 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 85519 "src/ocaml/preprocess/parser_raw.ml" +# 87493 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 4565 "src/ocaml/preprocess/parser_raw.mly" +# 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 85529 "src/ocaml/preprocess/parser_raw.ml" +# 87503 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos_ty_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let (_endpos__1_, _startpos__1_) = (_endpos_ty_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 85539 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4571 "src/ocaml/preprocess/parser_raw.mly" +# 87513 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 85545 "src/ocaml/preprocess/parser_raw.ml" - in +# 87519 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -85646,167 +87621,169 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 85650 "src/ocaml/preprocess/parser_raw.ml" +# 87625 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos__1_inlined4_ in - let _v : (Parsetree.core_type) = let _1 = + let _v = let _1 = - let codomain_with_modes = - let (_1_inlined1, _1) = (_1_inlined4, _1_inlined3) in - let m1 = - let _1 = _1_inlined1 in - -# 4672 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let codomain_with_modes = + let (_1_inlined1, _1) = (_1_inlined4, _1_inlined3) in + let m1 = + let _1 = _1_inlined1 in + +# 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 85664 "src/ocaml/preprocess/parser_raw.ml" - - in - let m0 = - let _1 = -# 4648 "src/ocaml/preprocess/parser_raw.mly" +# 87640 "src/ocaml/preprocess/parser_raw.ml" + + in + let m0 = + let _1 = +# 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 85671 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4653 "src/ocaml/preprocess/parser_raw.mly" +# 87647 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 85676 "src/ocaml/preprocess/parser_raw.ml" +# 87652 "src/ocaml/preprocess/parser_raw.ml" + + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 85686 "src/ocaml/preprocess/parser_raw.ml" - - in - let domain_with_modes = - let m1 = - let _1 = _1_inlined2 in - -# 4672 "src/ocaml/preprocess/parser_raw.mly" - (_1) -# 85695 "src/ocaml/preprocess/parser_raw.ml" +# 87662 "src/ocaml/preprocess/parser_raw.ml" in - let ty = - let _startpos__1_ = _startpos__1_inlined1_ in - let _1 = + let domain_with_modes = + let m1 = + let _1 = _1_inlined2 in + +# 4683 "src/ocaml/preprocess/parser_raw.mly" + (_1) +# 87671 "src/ocaml/preprocess/parser_raw.ml" + + in + let ty = + let _startpos__1_ = _startpos__1_inlined1_ in let _1 = let _1 = - let bound_vars = - let _1 = - let xs = -# 253 "" + let _1 = + let bound_vars = + let _1 = + let xs = +# 264 "" ( List.rev xs ) -# 85708 "src/ocaml/preprocess/parser_raw.ml" - in - +# 87684 "src/ocaml/preprocess/parser_raw.ml" + in + # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 85713 "src/ocaml/preprocess/parser_raw.ml" +# 87689 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 4481 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 87695 "src/ocaml/preprocess/parser_raw.ml" in -# 4470 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 85719 "src/ocaml/preprocess/parser_raw.ml" +# 4732 "src/ocaml/preprocess/parser_raw.mly" + ( Ptyp_poly (bound_vars, inner_type) ) +# 87701 "src/ocaml/preprocess/parser_raw.ml" in + let _endpos__1_ = _endpos__5_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 4721 "src/ocaml/preprocess/parser_raw.mly" - ( Ptyp_poly (bound_vars, inner_type) ) -# 85725 "src/ocaml/preprocess/parser_raw.ml" +# 1333 "src/ocaml/preprocess/parser_raw.mly" + ( mktyp ~loc:_sloc _1 ) +# 87711 "src/ocaml/preprocess/parser_raw.ml" in - let _endpos__1_ = _endpos__5_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" - ( mktyp ~loc:_sloc _1 ) -# 85735 "src/ocaml/preprocess/parser_raw.ml" +# 4734 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 87717 "src/ocaml/preprocess/parser_raw.ml" in + let _endpos__1_ = _endpos__5_ in -# 4723 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 85741 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in - # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 85748 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in - let m0 = - let _1 = -# 4648 "src/ocaml/preprocess/parser_raw.mly" +# 87724 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in + let m0 = + let _1 = +# 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 85756 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4653 "src/ocaml/preprocess/parser_raw.mly" +# 87732 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 85761 "src/ocaml/preprocess/parser_raw.ml" +# 87737 "src/ocaml/preprocess/parser_raw.ml" + + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 85771 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = - let _1 = -# 4628 "src/ocaml/preprocess/parser_raw.mly" +# 87747 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = + let _1 = +# 4639 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 85778 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4633 "src/ocaml/preprocess/parser_raw.mly" +# 87754 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 85783 "src/ocaml/preprocess/parser_raw.ml" +# 87759 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 4565 "src/ocaml/preprocess/parser_raw.mly" +# 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 85793 "src/ocaml/preprocess/parser_raw.ml" +# 87769 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined4_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined4_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 85803 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4571 "src/ocaml/preprocess/parser_raw.mly" +# 87779 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 85809 "src/ocaml/preprocess/parser_raw.ml" - in +# 87785 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -85861,113 +87838,115 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 85865 "src/ocaml/preprocess/parser_raw.ml" +# 87842 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos_ty_inlined1_ in - let _v : (Parsetree.core_type) = let _1 = + let _v = let _1 = - let codomain_with_modes = - let (_endpos_ty_, _startpos_ty_, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1) in - let m1 = -# 4671 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let codomain_with_modes = + let (_endpos_ty_, _startpos_ty_, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1) in + let m1 = +# 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 85877 "src/ocaml/preprocess/parser_raw.ml" - in - let m0 = -# 4652 "src/ocaml/preprocess/parser_raw.mly" +# 87855 "src/ocaml/preprocess/parser_raw.ml" + in + let m0 = +# 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 85882 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 87860 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 85891 "src/ocaml/preprocess/parser_raw.ml" - - in - let domain_with_modes = - let m1 = -# 4671 "src/ocaml/preprocess/parser_raw.mly" +# 87869 "src/ocaml/preprocess/parser_raw.ml" + + in + let domain_with_modes = + let m1 = +# 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 85898 "src/ocaml/preprocess/parser_raw.ml" - in - let ty = - let _1 = -# 4725 "src/ocaml/preprocess/parser_raw.mly" - ( ty ) -# 85904 "src/ocaml/preprocess/parser_raw.ml" +# 87876 "src/ocaml/preprocess/parser_raw.ml" in - let _endpos__1_ = _endpos_ty_ in - + let ty = + let _1 = +# 4736 "src/ocaml/preprocess/parser_raw.mly" + ( ty ) +# 87882 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos_ty_ in + # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 85910 "src/ocaml/preprocess/parser_raw.ml" - - in - let m0 = - let _1 = -# 4648 "src/ocaml/preprocess/parser_raw.mly" +# 87888 "src/ocaml/preprocess/parser_raw.ml" + + in + let m0 = + let _1 = +# 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 85917 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4653 "src/ocaml/preprocess/parser_raw.mly" +# 87895 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 85922 "src/ocaml/preprocess/parser_raw.ml" +# 87900 "src/ocaml/preprocess/parser_raw.ml" + + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 85932 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = - let _1 = -# 4628 "src/ocaml/preprocess/parser_raw.mly" +# 87910 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = + let _1 = +# 4639 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 85939 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4633 "src/ocaml/preprocess/parser_raw.mly" +# 87917 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 85944 "src/ocaml/preprocess/parser_raw.ml" +# 87922 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 4565 "src/ocaml/preprocess/parser_raw.mly" +# 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 85954 "src/ocaml/preprocess/parser_raw.ml" +# 87932 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 85964 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4571 "src/ocaml/preprocess/parser_raw.mly" +# 87942 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 85970 "src/ocaml/preprocess/parser_raw.ml" - in +# 87948 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -86029,113 +88008,115 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 86033 "src/ocaml/preprocess/parser_raw.ml" +# 88012 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos__1_inlined1_ in - let _v : (Parsetree.core_type) = let _1 = + let _v = let _1 = - let codomain_with_modes = - let (_endpos_ty_, _startpos_ty_, _1, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, _1_inlined1, ty_inlined1) in - let m1 = -# 4672 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let codomain_with_modes = + let (_endpos_ty_, _startpos_ty_, _1, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, _1_inlined1, ty_inlined1) in + let m1 = +# 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 86045 "src/ocaml/preprocess/parser_raw.ml" - in - let m0 = -# 4652 "src/ocaml/preprocess/parser_raw.mly" +# 88025 "src/ocaml/preprocess/parser_raw.ml" + in + let m0 = +# 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 86050 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 88030 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 86059 "src/ocaml/preprocess/parser_raw.ml" - - in - let domain_with_modes = - let m1 = -# 4671 "src/ocaml/preprocess/parser_raw.mly" +# 88039 "src/ocaml/preprocess/parser_raw.ml" + + in + let domain_with_modes = + let m1 = +# 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 86066 "src/ocaml/preprocess/parser_raw.ml" - in - let ty = - let _1 = -# 4725 "src/ocaml/preprocess/parser_raw.mly" - ( ty ) -# 86072 "src/ocaml/preprocess/parser_raw.ml" +# 88046 "src/ocaml/preprocess/parser_raw.ml" in - let _endpos__1_ = _endpos_ty_ in - + let ty = + let _1 = +# 4736 "src/ocaml/preprocess/parser_raw.mly" + ( ty ) +# 88052 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos_ty_ in + # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 86078 "src/ocaml/preprocess/parser_raw.ml" - - in - let m0 = - let _1 = -# 4648 "src/ocaml/preprocess/parser_raw.mly" +# 88058 "src/ocaml/preprocess/parser_raw.ml" + + in + let m0 = + let _1 = +# 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 86085 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4653 "src/ocaml/preprocess/parser_raw.mly" +# 88065 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 86090 "src/ocaml/preprocess/parser_raw.ml" +# 88070 "src/ocaml/preprocess/parser_raw.ml" + + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 86100 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = - let _1 = -# 4628 "src/ocaml/preprocess/parser_raw.mly" +# 88080 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = + let _1 = +# 4639 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 86107 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4633 "src/ocaml/preprocess/parser_raw.mly" +# 88087 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 86112 "src/ocaml/preprocess/parser_raw.ml" +# 88092 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 4565 "src/ocaml/preprocess/parser_raw.mly" +# 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 86122 "src/ocaml/preprocess/parser_raw.ml" +# 88102 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 86132 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4571 "src/ocaml/preprocess/parser_raw.mly" +# 88112 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 86138 "src/ocaml/preprocess/parser_raw.ml" - in +# 88118 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -86197,120 +88178,122 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 86201 "src/ocaml/preprocess/parser_raw.ml" +# 88182 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos_ty_inlined1_ in - let _v : (Parsetree.core_type) = let _1 = + let _v = let _1 = - let codomain_with_modes = - let (_endpos_ty_, _startpos_ty_, ty, _1) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1, _1_inlined1) in - let m1 = -# 4671 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let codomain_with_modes = + let (_endpos_ty_, _startpos_ty_, ty, _1) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1, _1_inlined1) in + let m1 = +# 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 86213 "src/ocaml/preprocess/parser_raw.ml" - in - let m0 = - let _1 = -# 4648 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 86219 "src/ocaml/preprocess/parser_raw.ml" +# 88195 "src/ocaml/preprocess/parser_raw.ml" in - -# 4653 "src/ocaml/preprocess/parser_raw.mly" + let m0 = + let _1 = +# 4659 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 88201 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 86224 "src/ocaml/preprocess/parser_raw.ml" +# 88206 "src/ocaml/preprocess/parser_raw.ml" + + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 86234 "src/ocaml/preprocess/parser_raw.ml" - - in - let domain_with_modes = - let m1 = -# 4671 "src/ocaml/preprocess/parser_raw.mly" +# 88216 "src/ocaml/preprocess/parser_raw.ml" + + in + let domain_with_modes = + let m1 = +# 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 86241 "src/ocaml/preprocess/parser_raw.ml" - in - let ty = - let _1 = -# 4725 "src/ocaml/preprocess/parser_raw.mly" - ( ty ) -# 86247 "src/ocaml/preprocess/parser_raw.ml" +# 88223 "src/ocaml/preprocess/parser_raw.ml" in - let _endpos__1_ = _endpos_ty_ in - + let ty = + let _1 = +# 4736 "src/ocaml/preprocess/parser_raw.mly" + ( ty ) +# 88229 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos_ty_ in + # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 86253 "src/ocaml/preprocess/parser_raw.ml" - - in - let m0 = - let _1 = -# 4648 "src/ocaml/preprocess/parser_raw.mly" +# 88235 "src/ocaml/preprocess/parser_raw.ml" + + in + let m0 = + let _1 = +# 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 86260 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4653 "src/ocaml/preprocess/parser_raw.mly" +# 88242 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 86265 "src/ocaml/preprocess/parser_raw.ml" +# 88247 "src/ocaml/preprocess/parser_raw.ml" + + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 86275 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = - let _1 = -# 4628 "src/ocaml/preprocess/parser_raw.mly" +# 88257 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = + let _1 = +# 4639 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 86282 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4633 "src/ocaml/preprocess/parser_raw.mly" +# 88264 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 86287 "src/ocaml/preprocess/parser_raw.ml" +# 88269 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 4565 "src/ocaml/preprocess/parser_raw.mly" +# 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 86297 "src/ocaml/preprocess/parser_raw.ml" +# 88279 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 86307 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4571 "src/ocaml/preprocess/parser_raw.mly" +# 88289 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 86313 "src/ocaml/preprocess/parser_raw.ml" - in +# 88295 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -86379,123 +88362,125 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 86383 "src/ocaml/preprocess/parser_raw.ml" +# 88366 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos__1_inlined2_ in - let _v : (Parsetree.core_type) = let _1 = + let _v = let _1 = - let codomain_with_modes = - let (_endpos_ty_, _startpos_ty_, _1_inlined1, ty, _1) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, _1_inlined2, ty_inlined1, _1_inlined1) in - let m1 = - let _1 = _1_inlined1 in - -# 4672 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let codomain_with_modes = + let (_endpos_ty_, _startpos_ty_, _1_inlined1, ty, _1) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, _1_inlined2, ty_inlined1, _1_inlined1) in + let m1 = + let _1 = _1_inlined1 in + +# 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 86397 "src/ocaml/preprocess/parser_raw.ml" - - in - let m0 = - let _1 = -# 4648 "src/ocaml/preprocess/parser_raw.mly" +# 88381 "src/ocaml/preprocess/parser_raw.ml" + + in + let m0 = + let _1 = +# 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 86404 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4653 "src/ocaml/preprocess/parser_raw.mly" +# 88388 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 86409 "src/ocaml/preprocess/parser_raw.ml" +# 88393 "src/ocaml/preprocess/parser_raw.ml" + + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 86419 "src/ocaml/preprocess/parser_raw.ml" - - in - let domain_with_modes = - let m1 = -# 4671 "src/ocaml/preprocess/parser_raw.mly" +# 88403 "src/ocaml/preprocess/parser_raw.ml" + + in + let domain_with_modes = + let m1 = +# 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 86426 "src/ocaml/preprocess/parser_raw.ml" - in - let ty = - let _1 = -# 4725 "src/ocaml/preprocess/parser_raw.mly" - ( ty ) -# 86432 "src/ocaml/preprocess/parser_raw.ml" +# 88410 "src/ocaml/preprocess/parser_raw.ml" in - let _endpos__1_ = _endpos_ty_ in - + let ty = + let _1 = +# 4736 "src/ocaml/preprocess/parser_raw.mly" + ( ty ) +# 88416 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos_ty_ in + # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 86438 "src/ocaml/preprocess/parser_raw.ml" - - in - let m0 = - let _1 = -# 4648 "src/ocaml/preprocess/parser_raw.mly" +# 88422 "src/ocaml/preprocess/parser_raw.ml" + + in + let m0 = + let _1 = +# 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 86445 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4653 "src/ocaml/preprocess/parser_raw.mly" +# 88429 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 86450 "src/ocaml/preprocess/parser_raw.ml" +# 88434 "src/ocaml/preprocess/parser_raw.ml" + + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 86460 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = - let _1 = -# 4628 "src/ocaml/preprocess/parser_raw.mly" +# 88444 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = + let _1 = +# 4639 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 86467 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4633 "src/ocaml/preprocess/parser_raw.mly" +# 88451 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 86472 "src/ocaml/preprocess/parser_raw.ml" +# 88456 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 4565 "src/ocaml/preprocess/parser_raw.mly" +# 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 86482 "src/ocaml/preprocess/parser_raw.ml" +# 88466 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined2_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined2_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 86492 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4571 "src/ocaml/preprocess/parser_raw.mly" +# 88476 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 86498 "src/ocaml/preprocess/parser_raw.ml" - in +# 88482 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -86557,116 +88542,118 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 86561 "src/ocaml/preprocess/parser_raw.ml" +# 88546 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos_ty_inlined1_ in - let _v : (Parsetree.core_type) = let _1 = + let _v = let _1 = - let codomain_with_modes = - let (_endpos_ty_, _startpos_ty_, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1) in - let m1 = -# 4671 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let codomain_with_modes = + let (_endpos_ty_, _startpos_ty_, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1) in + let m1 = +# 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 86573 "src/ocaml/preprocess/parser_raw.ml" - in - let m0 = -# 4652 "src/ocaml/preprocess/parser_raw.mly" +# 88559 "src/ocaml/preprocess/parser_raw.ml" + in + let m0 = +# 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 86578 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 88564 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 86587 "src/ocaml/preprocess/parser_raw.ml" - - in - let domain_with_modes = - let m1 = - let _1 = _1_inlined1 in - -# 4672 "src/ocaml/preprocess/parser_raw.mly" - (_1) -# 86596 "src/ocaml/preprocess/parser_raw.ml" +# 88573 "src/ocaml/preprocess/parser_raw.ml" in - let ty = - let _1 = -# 4725 "src/ocaml/preprocess/parser_raw.mly" + let domain_with_modes = + let m1 = + let _1 = _1_inlined1 in + +# 4683 "src/ocaml/preprocess/parser_raw.mly" + (_1) +# 88582 "src/ocaml/preprocess/parser_raw.ml" + + in + let ty = + let _1 = +# 4736 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 86603 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos__1_ = _endpos_ty_ in - +# 88589 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos_ty_ in + # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 86609 "src/ocaml/preprocess/parser_raw.ml" - - in - let m0 = - let _1 = -# 4648 "src/ocaml/preprocess/parser_raw.mly" +# 88595 "src/ocaml/preprocess/parser_raw.ml" + + in + let m0 = + let _1 = +# 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 86616 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4653 "src/ocaml/preprocess/parser_raw.mly" +# 88602 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 86621 "src/ocaml/preprocess/parser_raw.ml" +# 88607 "src/ocaml/preprocess/parser_raw.ml" + + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 86631 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = - let _1 = -# 4628 "src/ocaml/preprocess/parser_raw.mly" +# 88617 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = + let _1 = +# 4639 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 86638 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4633 "src/ocaml/preprocess/parser_raw.mly" +# 88624 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 86643 "src/ocaml/preprocess/parser_raw.ml" +# 88629 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 4565 "src/ocaml/preprocess/parser_raw.mly" +# 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 86653 "src/ocaml/preprocess/parser_raw.ml" +# 88639 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 86663 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4571 "src/ocaml/preprocess/parser_raw.mly" +# 88649 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 86669 "src/ocaml/preprocess/parser_raw.ml" - in +# 88655 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -86735,116 +88722,118 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 86739 "src/ocaml/preprocess/parser_raw.ml" +# 88726 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos__1_inlined2_ in - let _v : (Parsetree.core_type) = let _1 = + let _v = let _1 = - let codomain_with_modes = - let (_endpos_ty_, _startpos_ty_, _1, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, _1_inlined2, ty_inlined1) in - let m1 = -# 4672 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let codomain_with_modes = + let (_endpos_ty_, _startpos_ty_, _1, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, _1_inlined2, ty_inlined1) in + let m1 = +# 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 86751 "src/ocaml/preprocess/parser_raw.ml" - in - let m0 = -# 4652 "src/ocaml/preprocess/parser_raw.mly" +# 88739 "src/ocaml/preprocess/parser_raw.ml" + in + let m0 = +# 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 86756 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 88744 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 86765 "src/ocaml/preprocess/parser_raw.ml" - - in - let domain_with_modes = - let m1 = - let _1 = _1_inlined1 in - -# 4672 "src/ocaml/preprocess/parser_raw.mly" - (_1) -# 86774 "src/ocaml/preprocess/parser_raw.ml" +# 88753 "src/ocaml/preprocess/parser_raw.ml" in - let ty = - let _1 = -# 4725 "src/ocaml/preprocess/parser_raw.mly" + let domain_with_modes = + let m1 = + let _1 = _1_inlined1 in + +# 4683 "src/ocaml/preprocess/parser_raw.mly" + (_1) +# 88762 "src/ocaml/preprocess/parser_raw.ml" + + in + let ty = + let _1 = +# 4736 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 86781 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos__1_ = _endpos_ty_ in - +# 88769 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos_ty_ in + # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 86787 "src/ocaml/preprocess/parser_raw.ml" - - in - let m0 = - let _1 = -# 4648 "src/ocaml/preprocess/parser_raw.mly" +# 88775 "src/ocaml/preprocess/parser_raw.ml" + + in + let m0 = + let _1 = +# 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 86794 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4653 "src/ocaml/preprocess/parser_raw.mly" +# 88782 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 86799 "src/ocaml/preprocess/parser_raw.ml" +# 88787 "src/ocaml/preprocess/parser_raw.ml" + + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 86809 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = - let _1 = -# 4628 "src/ocaml/preprocess/parser_raw.mly" +# 88797 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = + let _1 = +# 4639 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 86816 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4633 "src/ocaml/preprocess/parser_raw.mly" +# 88804 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 86821 "src/ocaml/preprocess/parser_raw.ml" +# 88809 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 4565 "src/ocaml/preprocess/parser_raw.mly" +# 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 86831 "src/ocaml/preprocess/parser_raw.ml" +# 88819 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined2_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined2_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 86841 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4571 "src/ocaml/preprocess/parser_raw.mly" +# 88829 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 86847 "src/ocaml/preprocess/parser_raw.ml" - in +# 88835 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -86913,123 +88902,125 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 86917 "src/ocaml/preprocess/parser_raw.ml" +# 88906 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos_ty_inlined1_ in - let _v : (Parsetree.core_type) = let _1 = + let _v = let _1 = - let codomain_with_modes = - let (_endpos_ty_, _startpos_ty_, ty, _1) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1, _1_inlined2) in - let m1 = -# 4671 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let codomain_with_modes = + let (_endpos_ty_, _startpos_ty_, ty, _1) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1, _1_inlined2) in + let m1 = +# 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 86929 "src/ocaml/preprocess/parser_raw.ml" - in - let m0 = - let _1 = -# 4648 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 86935 "src/ocaml/preprocess/parser_raw.ml" +# 88919 "src/ocaml/preprocess/parser_raw.ml" in - -# 4653 "src/ocaml/preprocess/parser_raw.mly" + let m0 = + let _1 = +# 4659 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 88925 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 86940 "src/ocaml/preprocess/parser_raw.ml" +# 88930 "src/ocaml/preprocess/parser_raw.ml" + + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 86950 "src/ocaml/preprocess/parser_raw.ml" - - in - let domain_with_modes = - let m1 = - let _1 = _1_inlined1 in - -# 4672 "src/ocaml/preprocess/parser_raw.mly" - (_1) -# 86959 "src/ocaml/preprocess/parser_raw.ml" +# 88940 "src/ocaml/preprocess/parser_raw.ml" in - let ty = - let _1 = -# 4725 "src/ocaml/preprocess/parser_raw.mly" + let domain_with_modes = + let m1 = + let _1 = _1_inlined1 in + +# 4683 "src/ocaml/preprocess/parser_raw.mly" + (_1) +# 88949 "src/ocaml/preprocess/parser_raw.ml" + + in + let ty = + let _1 = +# 4736 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 86966 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos__1_ = _endpos_ty_ in - +# 88956 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos_ty_ in + # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 86972 "src/ocaml/preprocess/parser_raw.ml" - - in - let m0 = - let _1 = -# 4648 "src/ocaml/preprocess/parser_raw.mly" +# 88962 "src/ocaml/preprocess/parser_raw.ml" + + in + let m0 = + let _1 = +# 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 86979 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4653 "src/ocaml/preprocess/parser_raw.mly" +# 88969 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 86984 "src/ocaml/preprocess/parser_raw.ml" +# 88974 "src/ocaml/preprocess/parser_raw.ml" + + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 86994 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = - let _1 = -# 4628 "src/ocaml/preprocess/parser_raw.mly" +# 88984 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = + let _1 = +# 4639 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 87001 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4633 "src/ocaml/preprocess/parser_raw.mly" +# 88991 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 87006 "src/ocaml/preprocess/parser_raw.ml" +# 88996 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 4565 "src/ocaml/preprocess/parser_raw.mly" +# 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 87016 "src/ocaml/preprocess/parser_raw.ml" +# 89006 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 87026 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4571 "src/ocaml/preprocess/parser_raw.mly" +# 89016 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 87032 "src/ocaml/preprocess/parser_raw.ml" - in +# 89022 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -87105,126 +89096,128 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 87109 "src/ocaml/preprocess/parser_raw.ml" +# 89100 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos__1_inlined3_ in - let _v : (Parsetree.core_type) = let _1 = + let _v = let _1 = - let codomain_with_modes = - let (_endpos_ty_, _startpos_ty_, _1_inlined1, ty, _1) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, _1_inlined3, ty_inlined1, _1_inlined2) in - let m1 = - let _1 = _1_inlined1 in - -# 4672 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let codomain_with_modes = + let (_endpos_ty_, _startpos_ty_, _1_inlined1, ty, _1) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, _1_inlined3, ty_inlined1, _1_inlined2) in + let m1 = + let _1 = _1_inlined1 in + +# 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 87123 "src/ocaml/preprocess/parser_raw.ml" - - in - let m0 = - let _1 = -# 4648 "src/ocaml/preprocess/parser_raw.mly" +# 89115 "src/ocaml/preprocess/parser_raw.ml" + + in + let m0 = + let _1 = +# 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 87130 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4653 "src/ocaml/preprocess/parser_raw.mly" +# 89122 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 87135 "src/ocaml/preprocess/parser_raw.ml" +# 89127 "src/ocaml/preprocess/parser_raw.ml" + + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 87145 "src/ocaml/preprocess/parser_raw.ml" - - in - let domain_with_modes = - let m1 = - let _1 = _1_inlined1 in - -# 4672 "src/ocaml/preprocess/parser_raw.mly" - (_1) -# 87154 "src/ocaml/preprocess/parser_raw.ml" +# 89137 "src/ocaml/preprocess/parser_raw.ml" in - let ty = - let _1 = -# 4725 "src/ocaml/preprocess/parser_raw.mly" + let domain_with_modes = + let m1 = + let _1 = _1_inlined1 in + +# 4683 "src/ocaml/preprocess/parser_raw.mly" + (_1) +# 89146 "src/ocaml/preprocess/parser_raw.ml" + + in + let ty = + let _1 = +# 4736 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 87161 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos__1_ = _endpos_ty_ in - +# 89153 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos_ty_ in + # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 87167 "src/ocaml/preprocess/parser_raw.ml" - - in - let m0 = - let _1 = -# 4648 "src/ocaml/preprocess/parser_raw.mly" +# 89159 "src/ocaml/preprocess/parser_raw.ml" + + in + let m0 = + let _1 = +# 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 87174 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4653 "src/ocaml/preprocess/parser_raw.mly" +# 89166 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 87179 "src/ocaml/preprocess/parser_raw.ml" +# 89171 "src/ocaml/preprocess/parser_raw.ml" + + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 87189 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = - let _1 = -# 4628 "src/ocaml/preprocess/parser_raw.mly" +# 89181 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = + let _1 = +# 4639 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 87196 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4633 "src/ocaml/preprocess/parser_raw.mly" +# 89188 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 87201 "src/ocaml/preprocess/parser_raw.ml" +# 89193 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 4565 "src/ocaml/preprocess/parser_raw.mly" +# 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 87211 "src/ocaml/preprocess/parser_raw.ml" +# 89203 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined3_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined3_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 87221 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4571 "src/ocaml/preprocess/parser_raw.mly" +# 89213 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 87227 "src/ocaml/preprocess/parser_raw.ml" - in +# 89219 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -87287,133 +89280,135 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_ty_ in - let _v : (Parsetree.core_type) = let _1 = + let _v = let _1 = - let codomain_with_modes = - let m1 = -# 4671 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let codomain_with_modes = + let m1 = +# 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 87297 "src/ocaml/preprocess/parser_raw.ml" - in - let m0 = -# 4652 "src/ocaml/preprocess/parser_raw.mly" +# 89291 "src/ocaml/preprocess/parser_raw.ml" + in + let m0 = +# 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 87302 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 89296 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 87311 "src/ocaml/preprocess/parser_raw.ml" - - in - let domain_with_modes = - let m1 = -# 4671 "src/ocaml/preprocess/parser_raw.mly" +# 89305 "src/ocaml/preprocess/parser_raw.ml" + + in + let domain_with_modes = + let m1 = +# 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 87318 "src/ocaml/preprocess/parser_raw.ml" - in - let ty = - let _1 = +# 89312 "src/ocaml/preprocess/parser_raw.ml" + in + let ty = let _1 = let _1 = - let bound_vars = - let _1 = - let xs = -# 253 "" + let _1 = + let bound_vars = + let _1 = + let xs = +# 264 "" ( List.rev xs ) -# 87329 "src/ocaml/preprocess/parser_raw.ml" - in - +# 89323 "src/ocaml/preprocess/parser_raw.ml" + in + # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 87334 "src/ocaml/preprocess/parser_raw.ml" +# 89328 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 4481 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 89334 "src/ocaml/preprocess/parser_raw.ml" in -# 4470 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 87340 "src/ocaml/preprocess/parser_raw.ml" +# 4732 "src/ocaml/preprocess/parser_raw.mly" + ( Ptyp_poly (bound_vars, inner_type) ) +# 89340 "src/ocaml/preprocess/parser_raw.ml" in + let _endpos__1_ = _endpos__5_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 4721 "src/ocaml/preprocess/parser_raw.mly" - ( Ptyp_poly (bound_vars, inner_type) ) -# 87346 "src/ocaml/preprocess/parser_raw.ml" +# 1333 "src/ocaml/preprocess/parser_raw.mly" + ( mktyp ~loc:_sloc _1 ) +# 89350 "src/ocaml/preprocess/parser_raw.ml" in - let _endpos__1_ = _endpos__5_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" - ( mktyp ~loc:_sloc _1 ) -# 87356 "src/ocaml/preprocess/parser_raw.ml" +# 4734 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 89356 "src/ocaml/preprocess/parser_raw.ml" in + let _endpos__1_ = _endpos__5_ in -# 4723 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 87362 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in - # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 87369 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in - let m0 = -# 4652 "src/ocaml/preprocess/parser_raw.mly" +# 89363 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in + let m0 = +# 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 87376 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 89370 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 87385 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = -# 4635 "src/ocaml/preprocess/parser_raw.mly" +# 89379 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = +# 4646 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 87391 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4565 "src/ocaml/preprocess/parser_raw.mly" +# 89385 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 87400 "src/ocaml/preprocess/parser_raw.ml" +# 89394 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__1_ = _endpos_ty_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos__1_ = _endpos_ty_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 87410 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4571 "src/ocaml/preprocess/parser_raw.mly" +# 89404 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 87416 "src/ocaml/preprocess/parser_raw.ml" - in +# 89410 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -87483,134 +89478,136 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined1_ in - let _v : (Parsetree.core_type) = let _1 = + let _v = let _1 = - let codomain_with_modes = - let _1 = _1_inlined1 in - let m1 = -# 4672 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let codomain_with_modes = + let _1 = _1_inlined1 in + let m1 = +# 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 87494 "src/ocaml/preprocess/parser_raw.ml" - in - let m0 = -# 4652 "src/ocaml/preprocess/parser_raw.mly" +# 89490 "src/ocaml/preprocess/parser_raw.ml" + in + let m0 = +# 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 87499 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 89495 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 87508 "src/ocaml/preprocess/parser_raw.ml" - - in - let domain_with_modes = - let m1 = -# 4671 "src/ocaml/preprocess/parser_raw.mly" +# 89504 "src/ocaml/preprocess/parser_raw.ml" + + in + let domain_with_modes = + let m1 = +# 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 87515 "src/ocaml/preprocess/parser_raw.ml" - in - let ty = - let _1 = +# 89511 "src/ocaml/preprocess/parser_raw.ml" + in + let ty = let _1 = let _1 = - let bound_vars = - let _1 = - let xs = -# 253 "" + let _1 = + let bound_vars = + let _1 = + let xs = +# 264 "" ( List.rev xs ) -# 87526 "src/ocaml/preprocess/parser_raw.ml" - in - +# 89522 "src/ocaml/preprocess/parser_raw.ml" + in + # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 87531 "src/ocaml/preprocess/parser_raw.ml" +# 89527 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 4481 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 89533 "src/ocaml/preprocess/parser_raw.ml" in -# 4470 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 87537 "src/ocaml/preprocess/parser_raw.ml" +# 4732 "src/ocaml/preprocess/parser_raw.mly" + ( Ptyp_poly (bound_vars, inner_type) ) +# 89539 "src/ocaml/preprocess/parser_raw.ml" in + let _endpos__1_ = _endpos__5_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 4721 "src/ocaml/preprocess/parser_raw.mly" - ( Ptyp_poly (bound_vars, inner_type) ) -# 87543 "src/ocaml/preprocess/parser_raw.ml" +# 1333 "src/ocaml/preprocess/parser_raw.mly" + ( mktyp ~loc:_sloc _1 ) +# 89549 "src/ocaml/preprocess/parser_raw.ml" in - let _endpos__1_ = _endpos__5_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" - ( mktyp ~loc:_sloc _1 ) -# 87553 "src/ocaml/preprocess/parser_raw.ml" +# 4734 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 89555 "src/ocaml/preprocess/parser_raw.ml" in + let _endpos__1_ = _endpos__5_ in -# 4723 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 87559 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in - # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 87566 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in - let m0 = -# 4652 "src/ocaml/preprocess/parser_raw.mly" +# 89562 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in + let m0 = +# 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 87573 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 89569 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 87582 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = -# 4635 "src/ocaml/preprocess/parser_raw.mly" +# 89578 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = +# 4646 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 87588 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4565 "src/ocaml/preprocess/parser_raw.mly" +# 89584 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 87597 "src/ocaml/preprocess/parser_raw.ml" +# 89593 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__1_ = _endpos__1_inlined1_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos__1_ = _endpos__1_inlined1_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 87607 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4571 "src/ocaml/preprocess/parser_raw.mly" +# 89603 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 87613 "src/ocaml/preprocess/parser_raw.ml" - in +# 89609 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -87680,141 +89677,143 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_ty_ in - let _v : (Parsetree.core_type) = let _1 = + let _v = let _1 = - let codomain_with_modes = - let _1 = _1_inlined1 in - let m1 = -# 4671 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let codomain_with_modes = + let _1 = _1_inlined1 in + let m1 = +# 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 87691 "src/ocaml/preprocess/parser_raw.ml" - in - let m0 = - let _1 = -# 4648 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 87697 "src/ocaml/preprocess/parser_raw.ml" +# 89689 "src/ocaml/preprocess/parser_raw.ml" in - -# 4653 "src/ocaml/preprocess/parser_raw.mly" + let m0 = + let _1 = +# 4659 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 89695 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 87702 "src/ocaml/preprocess/parser_raw.ml" +# 89700 "src/ocaml/preprocess/parser_raw.ml" + + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 87712 "src/ocaml/preprocess/parser_raw.ml" - - in - let domain_with_modes = - let m1 = -# 4671 "src/ocaml/preprocess/parser_raw.mly" +# 89710 "src/ocaml/preprocess/parser_raw.ml" + + in + let domain_with_modes = + let m1 = +# 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 87719 "src/ocaml/preprocess/parser_raw.ml" - in - let ty = - let _1 = +# 89717 "src/ocaml/preprocess/parser_raw.ml" + in + let ty = let _1 = let _1 = - let bound_vars = - let _1 = - let xs = -# 253 "" + let _1 = + let bound_vars = + let _1 = + let xs = +# 264 "" ( List.rev xs ) -# 87730 "src/ocaml/preprocess/parser_raw.ml" - in - +# 89728 "src/ocaml/preprocess/parser_raw.ml" + in + # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 87735 "src/ocaml/preprocess/parser_raw.ml" +# 89733 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 4481 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 89739 "src/ocaml/preprocess/parser_raw.ml" in -# 4470 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 87741 "src/ocaml/preprocess/parser_raw.ml" +# 4732 "src/ocaml/preprocess/parser_raw.mly" + ( Ptyp_poly (bound_vars, inner_type) ) +# 89745 "src/ocaml/preprocess/parser_raw.ml" in + let _endpos__1_ = _endpos__5_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 4721 "src/ocaml/preprocess/parser_raw.mly" - ( Ptyp_poly (bound_vars, inner_type) ) -# 87747 "src/ocaml/preprocess/parser_raw.ml" +# 1333 "src/ocaml/preprocess/parser_raw.mly" + ( mktyp ~loc:_sloc _1 ) +# 89755 "src/ocaml/preprocess/parser_raw.ml" in - let _endpos__1_ = _endpos__5_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" - ( mktyp ~loc:_sloc _1 ) -# 87757 "src/ocaml/preprocess/parser_raw.ml" +# 4734 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 89761 "src/ocaml/preprocess/parser_raw.ml" in + let _endpos__1_ = _endpos__5_ in -# 4723 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 87763 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in - # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 87770 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in - let m0 = -# 4652 "src/ocaml/preprocess/parser_raw.mly" +# 89768 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in + let m0 = +# 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 87777 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 89775 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 87786 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = -# 4635 "src/ocaml/preprocess/parser_raw.mly" +# 89784 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = +# 4646 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 87792 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4565 "src/ocaml/preprocess/parser_raw.mly" +# 89790 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 87801 "src/ocaml/preprocess/parser_raw.ml" +# 89799 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__1_ = _endpos_ty_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos__1_ = _endpos_ty_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 87811 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4571 "src/ocaml/preprocess/parser_raw.mly" +# 89809 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 87817 "src/ocaml/preprocess/parser_raw.ml" - in +# 89815 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -87891,144 +89890,146 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined2_ in - let _v : (Parsetree.core_type) = let _1 = + let _v = let _1 = - let codomain_with_modes = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let m1 = - let _1 = _1_inlined1 in - -# 4672 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let codomain_with_modes = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in + let m1 = + let _1 = _1_inlined1 in + +# 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 87904 "src/ocaml/preprocess/parser_raw.ml" - - in - let m0 = - let _1 = -# 4648 "src/ocaml/preprocess/parser_raw.mly" +# 89904 "src/ocaml/preprocess/parser_raw.ml" + + in + let m0 = + let _1 = +# 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 87911 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4653 "src/ocaml/preprocess/parser_raw.mly" +# 89911 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 87916 "src/ocaml/preprocess/parser_raw.ml" +# 89916 "src/ocaml/preprocess/parser_raw.ml" + + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 87926 "src/ocaml/preprocess/parser_raw.ml" - - in - let domain_with_modes = - let m1 = -# 4671 "src/ocaml/preprocess/parser_raw.mly" +# 89926 "src/ocaml/preprocess/parser_raw.ml" + + in + let domain_with_modes = + let m1 = +# 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 87933 "src/ocaml/preprocess/parser_raw.ml" - in - let ty = - let _1 = +# 89933 "src/ocaml/preprocess/parser_raw.ml" + in + let ty = let _1 = let _1 = - let bound_vars = - let _1 = - let xs = -# 253 "" + let _1 = + let bound_vars = + let _1 = + let xs = +# 264 "" ( List.rev xs ) -# 87944 "src/ocaml/preprocess/parser_raw.ml" - in - +# 89944 "src/ocaml/preprocess/parser_raw.ml" + in + # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 87949 "src/ocaml/preprocess/parser_raw.ml" +# 89949 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 4481 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 89955 "src/ocaml/preprocess/parser_raw.ml" in -# 4470 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 87955 "src/ocaml/preprocess/parser_raw.ml" +# 4732 "src/ocaml/preprocess/parser_raw.mly" + ( Ptyp_poly (bound_vars, inner_type) ) +# 89961 "src/ocaml/preprocess/parser_raw.ml" in + let _endpos__1_ = _endpos__5_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 4721 "src/ocaml/preprocess/parser_raw.mly" - ( Ptyp_poly (bound_vars, inner_type) ) -# 87961 "src/ocaml/preprocess/parser_raw.ml" +# 1333 "src/ocaml/preprocess/parser_raw.mly" + ( mktyp ~loc:_sloc _1 ) +# 89971 "src/ocaml/preprocess/parser_raw.ml" in - let _endpos__1_ = _endpos__5_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" - ( mktyp ~loc:_sloc _1 ) -# 87971 "src/ocaml/preprocess/parser_raw.ml" +# 4734 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 89977 "src/ocaml/preprocess/parser_raw.ml" in + let _endpos__1_ = _endpos__5_ in -# 4723 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 87977 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in - # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 87984 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in - let m0 = -# 4652 "src/ocaml/preprocess/parser_raw.mly" +# 89984 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in + let m0 = +# 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 87991 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 89991 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 88000 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = -# 4635 "src/ocaml/preprocess/parser_raw.mly" +# 90000 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = +# 4646 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 88006 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4565 "src/ocaml/preprocess/parser_raw.mly" +# 90006 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 88015 "src/ocaml/preprocess/parser_raw.ml" +# 90015 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__1_ = _endpos__1_inlined2_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos__1_ = _endpos__1_inlined2_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 88025 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4571 "src/ocaml/preprocess/parser_raw.mly" +# 90025 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 88031 "src/ocaml/preprocess/parser_raw.ml" - in +# 90031 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -88098,136 +90099,138 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_ty_ in - let _v : (Parsetree.core_type) = let _1 = + let _v = let _1 = - let codomain_with_modes = - let m1 = -# 4671 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let codomain_with_modes = + let m1 = +# 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 88108 "src/ocaml/preprocess/parser_raw.ml" - in - let m0 = -# 4652 "src/ocaml/preprocess/parser_raw.mly" +# 90110 "src/ocaml/preprocess/parser_raw.ml" + in + let m0 = +# 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 88113 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 90115 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 88122 "src/ocaml/preprocess/parser_raw.ml" - - in - let domain_with_modes = - let m1 = - let _1 = _1_inlined1 in - -# 4672 "src/ocaml/preprocess/parser_raw.mly" - (_1) -# 88131 "src/ocaml/preprocess/parser_raw.ml" +# 90124 "src/ocaml/preprocess/parser_raw.ml" in - let ty = - let _1 = + let domain_with_modes = + let m1 = + let _1 = _1_inlined1 in + +# 4683 "src/ocaml/preprocess/parser_raw.mly" + (_1) +# 90133 "src/ocaml/preprocess/parser_raw.ml" + + in + let ty = let _1 = let _1 = - let bound_vars = - let _1 = - let xs = -# 253 "" + let _1 = + let bound_vars = + let _1 = + let xs = +# 264 "" ( List.rev xs ) -# 88143 "src/ocaml/preprocess/parser_raw.ml" - in - +# 90145 "src/ocaml/preprocess/parser_raw.ml" + in + # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 88148 "src/ocaml/preprocess/parser_raw.ml" +# 90150 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 4481 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 90156 "src/ocaml/preprocess/parser_raw.ml" in -# 4470 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 88154 "src/ocaml/preprocess/parser_raw.ml" +# 4732 "src/ocaml/preprocess/parser_raw.mly" + ( Ptyp_poly (bound_vars, inner_type) ) +# 90162 "src/ocaml/preprocess/parser_raw.ml" in + let _endpos__1_ = _endpos__5_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 4721 "src/ocaml/preprocess/parser_raw.mly" - ( Ptyp_poly (bound_vars, inner_type) ) -# 88160 "src/ocaml/preprocess/parser_raw.ml" +# 1333 "src/ocaml/preprocess/parser_raw.mly" + ( mktyp ~loc:_sloc _1 ) +# 90172 "src/ocaml/preprocess/parser_raw.ml" in - let _endpos__1_ = _endpos__5_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" - ( mktyp ~loc:_sloc _1 ) -# 88170 "src/ocaml/preprocess/parser_raw.ml" +# 4734 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 90178 "src/ocaml/preprocess/parser_raw.ml" in + let _endpos__1_ = _endpos__5_ in -# 4723 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 88176 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in - # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 88183 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in - let m0 = -# 4652 "src/ocaml/preprocess/parser_raw.mly" +# 90185 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in + let m0 = +# 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 88190 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 90192 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 88199 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = -# 4635 "src/ocaml/preprocess/parser_raw.mly" +# 90201 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = +# 4646 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 88205 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4565 "src/ocaml/preprocess/parser_raw.mly" +# 90207 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 88214 "src/ocaml/preprocess/parser_raw.ml" +# 90216 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__1_ = _endpos_ty_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos__1_ = _endpos_ty_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 88224 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4571 "src/ocaml/preprocess/parser_raw.mly" +# 90226 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 88230 "src/ocaml/preprocess/parser_raw.ml" - in +# 90232 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -88304,137 +90307,139 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined2_ in - let _v : (Parsetree.core_type) = let _1 = + let _v = let _1 = - let codomain_with_modes = - let _1 = _1_inlined2 in - let m1 = -# 4672 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let codomain_with_modes = + let _1 = _1_inlined2 in + let m1 = +# 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 88315 "src/ocaml/preprocess/parser_raw.ml" - in - let m0 = -# 4652 "src/ocaml/preprocess/parser_raw.mly" +# 90319 "src/ocaml/preprocess/parser_raw.ml" + in + let m0 = +# 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 88320 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 90324 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 88329 "src/ocaml/preprocess/parser_raw.ml" - - in - let domain_with_modes = - let m1 = - let _1 = _1_inlined1 in - -# 4672 "src/ocaml/preprocess/parser_raw.mly" - (_1) -# 88338 "src/ocaml/preprocess/parser_raw.ml" +# 90333 "src/ocaml/preprocess/parser_raw.ml" in - let ty = - let _1 = + let domain_with_modes = + let m1 = + let _1 = _1_inlined1 in + +# 4683 "src/ocaml/preprocess/parser_raw.mly" + (_1) +# 90342 "src/ocaml/preprocess/parser_raw.ml" + + in + let ty = let _1 = let _1 = - let bound_vars = - let _1 = - let xs = -# 253 "" + let _1 = + let bound_vars = + let _1 = + let xs = +# 264 "" ( List.rev xs ) -# 88350 "src/ocaml/preprocess/parser_raw.ml" - in - +# 90354 "src/ocaml/preprocess/parser_raw.ml" + in + # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 88355 "src/ocaml/preprocess/parser_raw.ml" +# 90359 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 4481 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 90365 "src/ocaml/preprocess/parser_raw.ml" in -# 4470 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 88361 "src/ocaml/preprocess/parser_raw.ml" +# 4732 "src/ocaml/preprocess/parser_raw.mly" + ( Ptyp_poly (bound_vars, inner_type) ) +# 90371 "src/ocaml/preprocess/parser_raw.ml" in + let _endpos__1_ = _endpos__5_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 4721 "src/ocaml/preprocess/parser_raw.mly" - ( Ptyp_poly (bound_vars, inner_type) ) -# 88367 "src/ocaml/preprocess/parser_raw.ml" +# 1333 "src/ocaml/preprocess/parser_raw.mly" + ( mktyp ~loc:_sloc _1 ) +# 90381 "src/ocaml/preprocess/parser_raw.ml" in - let _endpos__1_ = _endpos__5_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" - ( mktyp ~loc:_sloc _1 ) -# 88377 "src/ocaml/preprocess/parser_raw.ml" +# 4734 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 90387 "src/ocaml/preprocess/parser_raw.ml" in + let _endpos__1_ = _endpos__5_ in -# 4723 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 88383 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in - # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 88390 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in - let m0 = -# 4652 "src/ocaml/preprocess/parser_raw.mly" +# 90394 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in + let m0 = +# 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 88397 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 90401 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 88406 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = -# 4635 "src/ocaml/preprocess/parser_raw.mly" +# 90410 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = +# 4646 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 88412 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4565 "src/ocaml/preprocess/parser_raw.mly" +# 90416 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 88421 "src/ocaml/preprocess/parser_raw.ml" +# 90425 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__1_ = _endpos__1_inlined2_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos__1_ = _endpos__1_inlined2_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 88431 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4571 "src/ocaml/preprocess/parser_raw.mly" +# 90435 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 88437 "src/ocaml/preprocess/parser_raw.ml" - in +# 90441 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -88511,144 +90516,146 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_ty_ in - let _v : (Parsetree.core_type) = let _1 = + let _v = let _1 = - let codomain_with_modes = - let _1 = _1_inlined2 in - let m1 = -# 4671 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let codomain_with_modes = + let _1 = _1_inlined2 in + let m1 = +# 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 88522 "src/ocaml/preprocess/parser_raw.ml" - in - let m0 = - let _1 = -# 4648 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 88528 "src/ocaml/preprocess/parser_raw.ml" +# 90528 "src/ocaml/preprocess/parser_raw.ml" in - -# 4653 "src/ocaml/preprocess/parser_raw.mly" + let m0 = + let _1 = +# 4659 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 90534 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 88533 "src/ocaml/preprocess/parser_raw.ml" +# 90539 "src/ocaml/preprocess/parser_raw.ml" + + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 88543 "src/ocaml/preprocess/parser_raw.ml" - - in - let domain_with_modes = - let m1 = - let _1 = _1_inlined1 in - -# 4672 "src/ocaml/preprocess/parser_raw.mly" - (_1) -# 88552 "src/ocaml/preprocess/parser_raw.ml" +# 90549 "src/ocaml/preprocess/parser_raw.ml" in - let ty = - let _1 = + let domain_with_modes = + let m1 = + let _1 = _1_inlined1 in + +# 4683 "src/ocaml/preprocess/parser_raw.mly" + (_1) +# 90558 "src/ocaml/preprocess/parser_raw.ml" + + in + let ty = let _1 = let _1 = - let bound_vars = - let _1 = - let xs = -# 253 "" + let _1 = + let bound_vars = + let _1 = + let xs = +# 264 "" ( List.rev xs ) -# 88564 "src/ocaml/preprocess/parser_raw.ml" - in - +# 90570 "src/ocaml/preprocess/parser_raw.ml" + in + # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 88569 "src/ocaml/preprocess/parser_raw.ml" +# 90575 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 4481 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 90581 "src/ocaml/preprocess/parser_raw.ml" in -# 4470 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 88575 "src/ocaml/preprocess/parser_raw.ml" +# 4732 "src/ocaml/preprocess/parser_raw.mly" + ( Ptyp_poly (bound_vars, inner_type) ) +# 90587 "src/ocaml/preprocess/parser_raw.ml" in + let _endpos__1_ = _endpos__5_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 4721 "src/ocaml/preprocess/parser_raw.mly" - ( Ptyp_poly (bound_vars, inner_type) ) -# 88581 "src/ocaml/preprocess/parser_raw.ml" +# 1333 "src/ocaml/preprocess/parser_raw.mly" + ( mktyp ~loc:_sloc _1 ) +# 90597 "src/ocaml/preprocess/parser_raw.ml" in - let _endpos__1_ = _endpos__5_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" - ( mktyp ~loc:_sloc _1 ) -# 88591 "src/ocaml/preprocess/parser_raw.ml" +# 4734 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 90603 "src/ocaml/preprocess/parser_raw.ml" in + let _endpos__1_ = _endpos__5_ in -# 4723 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 88597 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in - # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 88604 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in - let m0 = -# 4652 "src/ocaml/preprocess/parser_raw.mly" +# 90610 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in + let m0 = +# 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 88611 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 90617 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 88620 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = -# 4635 "src/ocaml/preprocess/parser_raw.mly" +# 90626 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = +# 4646 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 88626 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4565 "src/ocaml/preprocess/parser_raw.mly" +# 90632 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 88635 "src/ocaml/preprocess/parser_raw.ml" +# 90641 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__1_ = _endpos_ty_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos__1_ = _endpos_ty_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 88645 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4571 "src/ocaml/preprocess/parser_raw.mly" +# 90651 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 88651 "src/ocaml/preprocess/parser_raw.ml" - in +# 90657 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -88732,147 +90739,149 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined3_ in - let _v : (Parsetree.core_type) = let _1 = + let _v = let _1 = - let codomain_with_modes = - let (_1_inlined1, _1) = (_1_inlined3, _1_inlined2) in - let m1 = - let _1 = _1_inlined1 in - -# 4672 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let codomain_with_modes = + let (_1_inlined1, _1) = (_1_inlined3, _1_inlined2) in + let m1 = + let _1 = _1_inlined1 in + +# 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 88745 "src/ocaml/preprocess/parser_raw.ml" - - in - let m0 = - let _1 = -# 4648 "src/ocaml/preprocess/parser_raw.mly" +# 90753 "src/ocaml/preprocess/parser_raw.ml" + + in + let m0 = + let _1 = +# 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 88752 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4653 "src/ocaml/preprocess/parser_raw.mly" +# 90760 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 88757 "src/ocaml/preprocess/parser_raw.ml" +# 90765 "src/ocaml/preprocess/parser_raw.ml" + + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 88767 "src/ocaml/preprocess/parser_raw.ml" - - in - let domain_with_modes = - let m1 = - let _1 = _1_inlined1 in - -# 4672 "src/ocaml/preprocess/parser_raw.mly" - (_1) -# 88776 "src/ocaml/preprocess/parser_raw.ml" +# 90775 "src/ocaml/preprocess/parser_raw.ml" in - let ty = - let _1 = + let domain_with_modes = + let m1 = + let _1 = _1_inlined1 in + +# 4683 "src/ocaml/preprocess/parser_raw.mly" + (_1) +# 90784 "src/ocaml/preprocess/parser_raw.ml" + + in + let ty = let _1 = let _1 = - let bound_vars = - let _1 = - let xs = -# 253 "" + let _1 = + let bound_vars = + let _1 = + let xs = +# 264 "" ( List.rev xs ) -# 88788 "src/ocaml/preprocess/parser_raw.ml" - in - +# 90796 "src/ocaml/preprocess/parser_raw.ml" + in + # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 88793 "src/ocaml/preprocess/parser_raw.ml" +# 90801 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 4481 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 90807 "src/ocaml/preprocess/parser_raw.ml" in -# 4470 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 88799 "src/ocaml/preprocess/parser_raw.ml" +# 4732 "src/ocaml/preprocess/parser_raw.mly" + ( Ptyp_poly (bound_vars, inner_type) ) +# 90813 "src/ocaml/preprocess/parser_raw.ml" in + let _endpos__1_ = _endpos__5_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 4721 "src/ocaml/preprocess/parser_raw.mly" - ( Ptyp_poly (bound_vars, inner_type) ) -# 88805 "src/ocaml/preprocess/parser_raw.ml" +# 1333 "src/ocaml/preprocess/parser_raw.mly" + ( mktyp ~loc:_sloc _1 ) +# 90823 "src/ocaml/preprocess/parser_raw.ml" in - let _endpos__1_ = _endpos__5_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" - ( mktyp ~loc:_sloc _1 ) -# 88815 "src/ocaml/preprocess/parser_raw.ml" +# 4734 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 90829 "src/ocaml/preprocess/parser_raw.ml" in + let _endpos__1_ = _endpos__5_ in -# 4723 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 88821 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in - # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 88828 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in - let m0 = -# 4652 "src/ocaml/preprocess/parser_raw.mly" +# 90836 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in + let m0 = +# 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 88835 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 90843 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 88844 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = -# 4635 "src/ocaml/preprocess/parser_raw.mly" +# 90852 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = +# 4646 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 88850 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4565 "src/ocaml/preprocess/parser_raw.mly" +# 90858 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 88859 "src/ocaml/preprocess/parser_raw.ml" +# 90867 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__1_ = _endpos__1_inlined3_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos__1_ = _endpos__1_inlined3_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 88869 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4571 "src/ocaml/preprocess/parser_raw.mly" +# 90877 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 88875 "src/ocaml/preprocess/parser_raw.ml" - in +# 90883 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -88907,94 +90916,96 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_ty_ in let _endpos = _endpos_ty_inlined1_ in - let _v : (Parsetree.core_type) = let _1 = + let _v = let _1 = - let codomain_with_modes = - let (_endpos_ty_, _startpos_ty_, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1) in - let m1 = -# 4671 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let codomain_with_modes = + let (_endpos_ty_, _startpos_ty_, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1) in + let m1 = +# 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 88918 "src/ocaml/preprocess/parser_raw.ml" - in - let m0 = -# 4652 "src/ocaml/preprocess/parser_raw.mly" +# 90928 "src/ocaml/preprocess/parser_raw.ml" + in + let m0 = +# 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 88923 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 90933 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 88932 "src/ocaml/preprocess/parser_raw.ml" - - in - let domain_with_modes = - let m1 = -# 4671 "src/ocaml/preprocess/parser_raw.mly" +# 90942 "src/ocaml/preprocess/parser_raw.ml" + + in + let domain_with_modes = + let m1 = +# 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 88939 "src/ocaml/preprocess/parser_raw.ml" - in - let ty = - let _1 = -# 4725 "src/ocaml/preprocess/parser_raw.mly" - ( ty ) -# 88945 "src/ocaml/preprocess/parser_raw.ml" +# 90949 "src/ocaml/preprocess/parser_raw.ml" in - let _endpos__1_ = _endpos_ty_ in - + let ty = + let _1 = +# 4736 "src/ocaml/preprocess/parser_raw.mly" + ( ty ) +# 90955 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos_ty_ in + # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 88951 "src/ocaml/preprocess/parser_raw.ml" - - in - let m0 = -# 4652 "src/ocaml/preprocess/parser_raw.mly" +# 90961 "src/ocaml/preprocess/parser_raw.ml" + + in + let m0 = +# 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 88957 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 90967 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 88966 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = -# 4635 "src/ocaml/preprocess/parser_raw.mly" +# 90976 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = +# 4646 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 88972 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4565 "src/ocaml/preprocess/parser_raw.mly" +# 90982 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 88981 "src/ocaml/preprocess/parser_raw.ml" +# 90991 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_ty_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_ty_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 88991 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4571 "src/ocaml/preprocess/parser_raw.mly" +# 91001 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 88997 "src/ocaml/preprocess/parser_raw.ml" - in +# 91007 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -89036,94 +91047,96 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_ty_ in let _endpos = _endpos__1_ in - let _v : (Parsetree.core_type) = let _1 = + let _v = let _1 = - let codomain_with_modes = - let (_endpos_ty_, _startpos_ty_, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1) in - let m1 = -# 4672 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let codomain_with_modes = + let (_endpos_ty_, _startpos_ty_, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1) in + let m1 = +# 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 89047 "src/ocaml/preprocess/parser_raw.ml" - in - let m0 = -# 4652 "src/ocaml/preprocess/parser_raw.mly" +# 91059 "src/ocaml/preprocess/parser_raw.ml" + in + let m0 = +# 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 89052 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 91064 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 89061 "src/ocaml/preprocess/parser_raw.ml" - - in - let domain_with_modes = - let m1 = -# 4671 "src/ocaml/preprocess/parser_raw.mly" +# 91073 "src/ocaml/preprocess/parser_raw.ml" + + in + let domain_with_modes = + let m1 = +# 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 89068 "src/ocaml/preprocess/parser_raw.ml" - in - let ty = - let _1 = -# 4725 "src/ocaml/preprocess/parser_raw.mly" - ( ty ) -# 89074 "src/ocaml/preprocess/parser_raw.ml" +# 91080 "src/ocaml/preprocess/parser_raw.ml" in - let _endpos__1_ = _endpos_ty_ in - + let ty = + let _1 = +# 4736 "src/ocaml/preprocess/parser_raw.mly" + ( ty ) +# 91086 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos_ty_ in + # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 89080 "src/ocaml/preprocess/parser_raw.ml" - - in - let m0 = -# 4652 "src/ocaml/preprocess/parser_raw.mly" +# 91092 "src/ocaml/preprocess/parser_raw.ml" + + in + let m0 = +# 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 89086 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 91098 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 89095 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = -# 4635 "src/ocaml/preprocess/parser_raw.mly" +# 91107 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = +# 4646 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 89101 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4565 "src/ocaml/preprocess/parser_raw.mly" +# 91113 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 89110 "src/ocaml/preprocess/parser_raw.ml" +# 91122 "src/ocaml/preprocess/parser_raw.ml" + + in + let _startpos__1_ = _startpos_ty_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _startpos__1_ = _startpos_ty_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 89120 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4571 "src/ocaml/preprocess/parser_raw.mly" +# 91132 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 89126 "src/ocaml/preprocess/parser_raw.ml" - in +# 91138 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -89165,101 +91178,103 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_ty_ in let _endpos = _endpos_ty_inlined1_ in - let _v : (Parsetree.core_type) = let _1 = + let _v = let _1 = - let codomain_with_modes = - let (_endpos_ty_, _startpos_ty_, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1) in - let m1 = -# 4671 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let codomain_with_modes = + let (_endpos_ty_, _startpos_ty_, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1) in + let m1 = +# 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 89176 "src/ocaml/preprocess/parser_raw.ml" - in - let m0 = - let _1 = -# 4648 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 89182 "src/ocaml/preprocess/parser_raw.ml" +# 91190 "src/ocaml/preprocess/parser_raw.ml" in - -# 4653 "src/ocaml/preprocess/parser_raw.mly" + let m0 = + let _1 = +# 4659 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 91196 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 89187 "src/ocaml/preprocess/parser_raw.ml" +# 91201 "src/ocaml/preprocess/parser_raw.ml" + + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 89197 "src/ocaml/preprocess/parser_raw.ml" - - in - let domain_with_modes = - let m1 = -# 4671 "src/ocaml/preprocess/parser_raw.mly" +# 91211 "src/ocaml/preprocess/parser_raw.ml" + + in + let domain_with_modes = + let m1 = +# 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 89204 "src/ocaml/preprocess/parser_raw.ml" - in - let ty = - let _1 = -# 4725 "src/ocaml/preprocess/parser_raw.mly" - ( ty ) -# 89210 "src/ocaml/preprocess/parser_raw.ml" +# 91218 "src/ocaml/preprocess/parser_raw.ml" in - let _endpos__1_ = _endpos_ty_ in - + let ty = + let _1 = +# 4736 "src/ocaml/preprocess/parser_raw.mly" + ( ty ) +# 91224 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos_ty_ in + # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 89216 "src/ocaml/preprocess/parser_raw.ml" - - in - let m0 = -# 4652 "src/ocaml/preprocess/parser_raw.mly" +# 91230 "src/ocaml/preprocess/parser_raw.ml" + + in + let m0 = +# 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 89222 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 91236 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 89231 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = -# 4635 "src/ocaml/preprocess/parser_raw.mly" +# 91245 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = +# 4646 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 89237 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4565 "src/ocaml/preprocess/parser_raw.mly" +# 91251 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 89246 "src/ocaml/preprocess/parser_raw.ml" +# 91260 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_ty_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_ty_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 89256 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4571 "src/ocaml/preprocess/parser_raw.mly" +# 91270 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 89262 "src/ocaml/preprocess/parser_raw.ml" - in +# 91276 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -89308,104 +91323,106 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_ty_ in let _endpos = _endpos__1_inlined1_ in - let _v : (Parsetree.core_type) = let _1 = + let _v = let _1 = - let codomain_with_modes = - let (_endpos_ty_, _startpos_ty_, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1) in - let m1 = - let _1 = _1_inlined1 in - -# 4672 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let codomain_with_modes = + let (_endpos_ty_, _startpos_ty_, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1) in + let m1 = + let _1 = _1_inlined1 in + +# 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 89321 "src/ocaml/preprocess/parser_raw.ml" - - in - let m0 = - let _1 = -# 4648 "src/ocaml/preprocess/parser_raw.mly" +# 91337 "src/ocaml/preprocess/parser_raw.ml" + + in + let m0 = + let _1 = +# 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 89328 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4653 "src/ocaml/preprocess/parser_raw.mly" +# 91344 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 89333 "src/ocaml/preprocess/parser_raw.ml" +# 91349 "src/ocaml/preprocess/parser_raw.ml" + + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 89343 "src/ocaml/preprocess/parser_raw.ml" - - in - let domain_with_modes = - let m1 = -# 4671 "src/ocaml/preprocess/parser_raw.mly" - ( [] ) -# 89350 "src/ocaml/preprocess/parser_raw.ml" - in - let ty = - let _1 = -# 4725 "src/ocaml/preprocess/parser_raw.mly" - ( ty ) -# 89356 "src/ocaml/preprocess/parser_raw.ml" +# 91359 "src/ocaml/preprocess/parser_raw.ml" + + in + let domain_with_modes = + let m1 = +# 4682 "src/ocaml/preprocess/parser_raw.mly" + ( [] ) +# 91366 "src/ocaml/preprocess/parser_raw.ml" in - let _endpos__1_ = _endpos_ty_ in - + let ty = + let _1 = +# 4736 "src/ocaml/preprocess/parser_raw.mly" + ( ty ) +# 91372 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos_ty_ in + # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 89362 "src/ocaml/preprocess/parser_raw.ml" - - in - let m0 = -# 4652 "src/ocaml/preprocess/parser_raw.mly" +# 91378 "src/ocaml/preprocess/parser_raw.ml" + + in + let m0 = +# 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 89368 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 91384 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 89377 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = -# 4635 "src/ocaml/preprocess/parser_raw.mly" +# 91393 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = +# 4646 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 89383 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4565 "src/ocaml/preprocess/parser_raw.mly" +# 91399 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 89392 "src/ocaml/preprocess/parser_raw.ml" +# 91408 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos_ty_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos_ty_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 89402 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4571 "src/ocaml/preprocess/parser_raw.mly" +# 91418 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 89408 "src/ocaml/preprocess/parser_raw.ml" - in +# 91424 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -89447,94 +91464,96 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_ty_ in let _endpos = _endpos_ty_inlined1_ in - let _v : (Parsetree.core_type) = let _1 = + let _v = let _1 = - let codomain_with_modes = - let (_endpos_ty_, _startpos_ty_, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1) in - let m1 = -# 4671 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let codomain_with_modes = + let (_endpos_ty_, _startpos_ty_, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1) in + let m1 = +# 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 89458 "src/ocaml/preprocess/parser_raw.ml" - in - let m0 = -# 4652 "src/ocaml/preprocess/parser_raw.mly" +# 91476 "src/ocaml/preprocess/parser_raw.ml" + in + let m0 = +# 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 89463 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 91481 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 89472 "src/ocaml/preprocess/parser_raw.ml" - - in - let domain_with_modes = - let m1 = -# 4672 "src/ocaml/preprocess/parser_raw.mly" +# 91490 "src/ocaml/preprocess/parser_raw.ml" + + in + let domain_with_modes = + let m1 = +# 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 89479 "src/ocaml/preprocess/parser_raw.ml" - in - let ty = - let _1 = -# 4725 "src/ocaml/preprocess/parser_raw.mly" - ( ty ) -# 89485 "src/ocaml/preprocess/parser_raw.ml" +# 91497 "src/ocaml/preprocess/parser_raw.ml" in - let _endpos__1_ = _endpos_ty_ in - + let ty = + let _1 = +# 4736 "src/ocaml/preprocess/parser_raw.mly" + ( ty ) +# 91503 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos_ty_ in + # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 89491 "src/ocaml/preprocess/parser_raw.ml" - - in - let m0 = -# 4652 "src/ocaml/preprocess/parser_raw.mly" +# 91509 "src/ocaml/preprocess/parser_raw.ml" + + in + let m0 = +# 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 89497 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 91515 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 89506 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = -# 4635 "src/ocaml/preprocess/parser_raw.mly" +# 91524 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = +# 4646 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 89512 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4565 "src/ocaml/preprocess/parser_raw.mly" +# 91530 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 89521 "src/ocaml/preprocess/parser_raw.ml" +# 91539 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_ty_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_ty_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 89531 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4571 "src/ocaml/preprocess/parser_raw.mly" +# 91549 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 89537 "src/ocaml/preprocess/parser_raw.ml" - in +# 91555 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -89583,94 +91602,96 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_ty_ in let _endpos = _endpos__1_inlined1_ in - let _v : (Parsetree.core_type) = let _1 = + let _v = let _1 = - let codomain_with_modes = - let (_endpos_ty_, _startpos_ty_, _1, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, _1_inlined1, ty_inlined1) in - let m1 = -# 4672 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let codomain_with_modes = + let (_endpos_ty_, _startpos_ty_, _1, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, _1_inlined1, ty_inlined1) in + let m1 = +# 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 89594 "src/ocaml/preprocess/parser_raw.ml" - in - let m0 = -# 4652 "src/ocaml/preprocess/parser_raw.mly" +# 91614 "src/ocaml/preprocess/parser_raw.ml" + in + let m0 = +# 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 89599 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 91619 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 89608 "src/ocaml/preprocess/parser_raw.ml" - - in - let domain_with_modes = - let m1 = -# 4672 "src/ocaml/preprocess/parser_raw.mly" +# 91628 "src/ocaml/preprocess/parser_raw.ml" + + in + let domain_with_modes = + let m1 = +# 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 89615 "src/ocaml/preprocess/parser_raw.ml" - in - let ty = - let _1 = -# 4725 "src/ocaml/preprocess/parser_raw.mly" - ( ty ) -# 89621 "src/ocaml/preprocess/parser_raw.ml" +# 91635 "src/ocaml/preprocess/parser_raw.ml" in - let _endpos__1_ = _endpos_ty_ in - + let ty = + let _1 = +# 4736 "src/ocaml/preprocess/parser_raw.mly" + ( ty ) +# 91641 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos_ty_ in + # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 89627 "src/ocaml/preprocess/parser_raw.ml" - - in - let m0 = -# 4652 "src/ocaml/preprocess/parser_raw.mly" +# 91647 "src/ocaml/preprocess/parser_raw.ml" + + in + let m0 = +# 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 89633 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 91653 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 89642 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = -# 4635 "src/ocaml/preprocess/parser_raw.mly" +# 91662 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = +# 4646 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 89648 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4565 "src/ocaml/preprocess/parser_raw.mly" +# 91668 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 89657 "src/ocaml/preprocess/parser_raw.ml" +# 91677 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos_ty_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos_ty_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 89667 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4571 "src/ocaml/preprocess/parser_raw.mly" +# 91687 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 89673 "src/ocaml/preprocess/parser_raw.ml" - in +# 91693 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -89719,101 +91740,103 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_ty_ in let _endpos = _endpos_ty_inlined1_ in - let _v : (Parsetree.core_type) = let _1 = + let _v = let _1 = - let codomain_with_modes = - let (_endpos_ty_, _startpos_ty_, ty, _1) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1, _1_inlined1) in - let m1 = -# 4671 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let codomain_with_modes = + let (_endpos_ty_, _startpos_ty_, ty, _1) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1, _1_inlined1) in + let m1 = +# 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 89730 "src/ocaml/preprocess/parser_raw.ml" - in - let m0 = - let _1 = -# 4648 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 89736 "src/ocaml/preprocess/parser_raw.ml" +# 91752 "src/ocaml/preprocess/parser_raw.ml" in - -# 4653 "src/ocaml/preprocess/parser_raw.mly" + let m0 = + let _1 = +# 4659 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 91758 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 89741 "src/ocaml/preprocess/parser_raw.ml" +# 91763 "src/ocaml/preprocess/parser_raw.ml" + + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 89751 "src/ocaml/preprocess/parser_raw.ml" - - in - let domain_with_modes = - let m1 = -# 4672 "src/ocaml/preprocess/parser_raw.mly" +# 91773 "src/ocaml/preprocess/parser_raw.ml" + + in + let domain_with_modes = + let m1 = +# 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 89758 "src/ocaml/preprocess/parser_raw.ml" - in - let ty = - let _1 = -# 4725 "src/ocaml/preprocess/parser_raw.mly" - ( ty ) -# 89764 "src/ocaml/preprocess/parser_raw.ml" +# 91780 "src/ocaml/preprocess/parser_raw.ml" in - let _endpos__1_ = _endpos_ty_ in - + let ty = + let _1 = +# 4736 "src/ocaml/preprocess/parser_raw.mly" + ( ty ) +# 91786 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos_ty_ in + # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 89770 "src/ocaml/preprocess/parser_raw.ml" - - in - let m0 = -# 4652 "src/ocaml/preprocess/parser_raw.mly" +# 91792 "src/ocaml/preprocess/parser_raw.ml" + + in + let m0 = +# 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 89776 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 91798 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 89785 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = -# 4635 "src/ocaml/preprocess/parser_raw.mly" +# 91807 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = +# 4646 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 89791 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4565 "src/ocaml/preprocess/parser_raw.mly" +# 91813 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 89800 "src/ocaml/preprocess/parser_raw.ml" +# 91822 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_ty_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_ty_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 89810 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4571 "src/ocaml/preprocess/parser_raw.mly" +# 91832 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 89816 "src/ocaml/preprocess/parser_raw.ml" - in +# 91838 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -89869,104 +91892,106 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_ty_ in let _endpos = _endpos__1_inlined2_ in - let _v : (Parsetree.core_type) = let _1 = + let _v = let _1 = - let codomain_with_modes = - let (_endpos_ty_, _startpos_ty_, _1_inlined1, ty, _1) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, _1_inlined2, ty_inlined1, _1_inlined1) in - let m1 = - let _1 = _1_inlined1 in - -# 4672 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let codomain_with_modes = + let (_endpos_ty_, _startpos_ty_, _1_inlined1, ty, _1) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, _1_inlined2, ty_inlined1, _1_inlined1) in + let m1 = + let _1 = _1_inlined1 in + +# 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 89882 "src/ocaml/preprocess/parser_raw.ml" - - in - let m0 = - let _1 = -# 4648 "src/ocaml/preprocess/parser_raw.mly" +# 91906 "src/ocaml/preprocess/parser_raw.ml" + + in + let m0 = + let _1 = +# 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 89889 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4653 "src/ocaml/preprocess/parser_raw.mly" +# 91913 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 89894 "src/ocaml/preprocess/parser_raw.ml" +# 91918 "src/ocaml/preprocess/parser_raw.ml" + + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 89904 "src/ocaml/preprocess/parser_raw.ml" - - in - let domain_with_modes = - let m1 = -# 4672 "src/ocaml/preprocess/parser_raw.mly" +# 91928 "src/ocaml/preprocess/parser_raw.ml" + + in + let domain_with_modes = + let m1 = +# 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 89911 "src/ocaml/preprocess/parser_raw.ml" - in - let ty = - let _1 = -# 4725 "src/ocaml/preprocess/parser_raw.mly" - ( ty ) -# 89917 "src/ocaml/preprocess/parser_raw.ml" +# 91935 "src/ocaml/preprocess/parser_raw.ml" in - let _endpos__1_ = _endpos_ty_ in - + let ty = + let _1 = +# 4736 "src/ocaml/preprocess/parser_raw.mly" + ( ty ) +# 91941 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos_ty_ in + # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 89923 "src/ocaml/preprocess/parser_raw.ml" - - in - let m0 = -# 4652 "src/ocaml/preprocess/parser_raw.mly" +# 91947 "src/ocaml/preprocess/parser_raw.ml" + + in + let m0 = +# 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 89929 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 91953 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 89938 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = -# 4635 "src/ocaml/preprocess/parser_raw.mly" +# 91962 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = +# 4646 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 89944 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4565 "src/ocaml/preprocess/parser_raw.mly" +# 91968 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 89953 "src/ocaml/preprocess/parser_raw.ml" +# 91977 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined2_, _startpos_ty_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined2_, _startpos_ty_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 89963 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4571 "src/ocaml/preprocess/parser_raw.mly" +# 91987 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 89969 "src/ocaml/preprocess/parser_raw.ml" - in +# 91993 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -90036,141 +92061,143 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_ty_ in - let _v : (Parsetree.core_type) = let _1 = + let _v = let _1 = - let codomain_with_modes = - let m1 = -# 4671 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let codomain_with_modes = + let m1 = +# 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 90046 "src/ocaml/preprocess/parser_raw.ml" - in - let m0 = -# 4652 "src/ocaml/preprocess/parser_raw.mly" +# 92072 "src/ocaml/preprocess/parser_raw.ml" + in + let m0 = +# 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 90051 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 92077 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 90060 "src/ocaml/preprocess/parser_raw.ml" - - in - let domain_with_modes = - let m1 = -# 4671 "src/ocaml/preprocess/parser_raw.mly" +# 92086 "src/ocaml/preprocess/parser_raw.ml" + + in + let domain_with_modes = + let m1 = +# 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 90067 "src/ocaml/preprocess/parser_raw.ml" - in - let ty = - let _startpos__1_ = _startpos__1_inlined1_ in - let _1 = +# 92093 "src/ocaml/preprocess/parser_raw.ml" + in + let ty = + let _startpos__1_ = _startpos__1_inlined1_ in let _1 = let _1 = - let bound_vars = - let _1 = - let xs = -# 253 "" + let _1 = + let bound_vars = + let _1 = + let xs = +# 264 "" ( List.rev xs ) -# 90079 "src/ocaml/preprocess/parser_raw.ml" - in - +# 92105 "src/ocaml/preprocess/parser_raw.ml" + in + # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 90084 "src/ocaml/preprocess/parser_raw.ml" +# 92110 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 4481 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 92116 "src/ocaml/preprocess/parser_raw.ml" in -# 4470 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 90090 "src/ocaml/preprocess/parser_raw.ml" +# 4732 "src/ocaml/preprocess/parser_raw.mly" + ( Ptyp_poly (bound_vars, inner_type) ) +# 92122 "src/ocaml/preprocess/parser_raw.ml" in + let _endpos__1_ = _endpos__5_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 4721 "src/ocaml/preprocess/parser_raw.mly" - ( Ptyp_poly (bound_vars, inner_type) ) -# 90096 "src/ocaml/preprocess/parser_raw.ml" +# 1333 "src/ocaml/preprocess/parser_raw.mly" + ( mktyp ~loc:_sloc _1 ) +# 92132 "src/ocaml/preprocess/parser_raw.ml" in - let _endpos__1_ = _endpos__5_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" - ( mktyp ~loc:_sloc _1 ) -# 90106 "src/ocaml/preprocess/parser_raw.ml" +# 4734 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 92138 "src/ocaml/preprocess/parser_raw.ml" in + let _endpos__1_ = _endpos__5_ in -# 4723 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 90112 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in - # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 90119 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in - let m0 = - let _1 = -# 4648 "src/ocaml/preprocess/parser_raw.mly" +# 92145 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in + let m0 = + let _1 = +# 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 90127 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4653 "src/ocaml/preprocess/parser_raw.mly" +# 92153 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 90132 "src/ocaml/preprocess/parser_raw.ml" +# 92158 "src/ocaml/preprocess/parser_raw.ml" + + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 90142 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = -# 4635 "src/ocaml/preprocess/parser_raw.mly" +# 92168 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = +# 4646 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 90148 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4565 "src/ocaml/preprocess/parser_raw.mly" +# 92174 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 90157 "src/ocaml/preprocess/parser_raw.ml" +# 92183 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__1_ = _endpos_ty_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos__1_ = _endpos_ty_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 90167 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4571 "src/ocaml/preprocess/parser_raw.mly" +# 92193 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 90173 "src/ocaml/preprocess/parser_raw.ml" - in +# 92199 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -90247,142 +92274,144 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined2_ in - let _v : (Parsetree.core_type) = let _1 = + let _v = let _1 = - let codomain_with_modes = - let _1 = _1_inlined2 in - let m1 = -# 4672 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let codomain_with_modes = + let _1 = _1_inlined2 in + let m1 = +# 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 90258 "src/ocaml/preprocess/parser_raw.ml" - in - let m0 = -# 4652 "src/ocaml/preprocess/parser_raw.mly" +# 92286 "src/ocaml/preprocess/parser_raw.ml" + in + let m0 = +# 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 90263 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 92291 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 90272 "src/ocaml/preprocess/parser_raw.ml" - - in - let domain_with_modes = - let m1 = -# 4671 "src/ocaml/preprocess/parser_raw.mly" +# 92300 "src/ocaml/preprocess/parser_raw.ml" + + in + let domain_with_modes = + let m1 = +# 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 90279 "src/ocaml/preprocess/parser_raw.ml" - in - let ty = - let _startpos__1_ = _startpos__1_inlined1_ in - let _1 = +# 92307 "src/ocaml/preprocess/parser_raw.ml" + in + let ty = + let _startpos__1_ = _startpos__1_inlined1_ in let _1 = let _1 = - let bound_vars = - let _1 = - let xs = -# 253 "" + let _1 = + let bound_vars = + let _1 = + let xs = +# 264 "" ( List.rev xs ) -# 90291 "src/ocaml/preprocess/parser_raw.ml" - in - +# 92319 "src/ocaml/preprocess/parser_raw.ml" + in + # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 90296 "src/ocaml/preprocess/parser_raw.ml" +# 92324 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 4481 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 92330 "src/ocaml/preprocess/parser_raw.ml" in -# 4470 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 90302 "src/ocaml/preprocess/parser_raw.ml" +# 4732 "src/ocaml/preprocess/parser_raw.mly" + ( Ptyp_poly (bound_vars, inner_type) ) +# 92336 "src/ocaml/preprocess/parser_raw.ml" in + let _endpos__1_ = _endpos__5_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 4721 "src/ocaml/preprocess/parser_raw.mly" - ( Ptyp_poly (bound_vars, inner_type) ) -# 90308 "src/ocaml/preprocess/parser_raw.ml" +# 1333 "src/ocaml/preprocess/parser_raw.mly" + ( mktyp ~loc:_sloc _1 ) +# 92346 "src/ocaml/preprocess/parser_raw.ml" in - let _endpos__1_ = _endpos__5_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" - ( mktyp ~loc:_sloc _1 ) -# 90318 "src/ocaml/preprocess/parser_raw.ml" +# 4734 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 92352 "src/ocaml/preprocess/parser_raw.ml" in + let _endpos__1_ = _endpos__5_ in -# 4723 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 90324 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in - # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 90331 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in - let m0 = - let _1 = -# 4648 "src/ocaml/preprocess/parser_raw.mly" +# 92359 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in + let m0 = + let _1 = +# 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 90339 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4653 "src/ocaml/preprocess/parser_raw.mly" +# 92367 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 90344 "src/ocaml/preprocess/parser_raw.ml" +# 92372 "src/ocaml/preprocess/parser_raw.ml" + + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 90354 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = -# 4635 "src/ocaml/preprocess/parser_raw.mly" +# 92382 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = +# 4646 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 90360 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4565 "src/ocaml/preprocess/parser_raw.mly" +# 92388 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 90369 "src/ocaml/preprocess/parser_raw.ml" +# 92397 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__1_ = _endpos__1_inlined2_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos__1_ = _endpos__1_inlined2_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 90379 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4571 "src/ocaml/preprocess/parser_raw.mly" +# 92407 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 90385 "src/ocaml/preprocess/parser_raw.ml" - in +# 92413 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -90459,149 +92488,151 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_ty_ in - let _v : (Parsetree.core_type) = let _1 = + let _v = let _1 = - let codomain_with_modes = - let _1 = _1_inlined2 in - let m1 = -# 4671 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let codomain_with_modes = + let _1 = _1_inlined2 in + let m1 = +# 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 90470 "src/ocaml/preprocess/parser_raw.ml" - in - let m0 = - let _1 = -# 4648 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 90476 "src/ocaml/preprocess/parser_raw.ml" +# 92500 "src/ocaml/preprocess/parser_raw.ml" in - -# 4653 "src/ocaml/preprocess/parser_raw.mly" + let m0 = + let _1 = +# 4659 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 92506 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 90481 "src/ocaml/preprocess/parser_raw.ml" +# 92511 "src/ocaml/preprocess/parser_raw.ml" + + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 90491 "src/ocaml/preprocess/parser_raw.ml" - - in - let domain_with_modes = - let m1 = -# 4671 "src/ocaml/preprocess/parser_raw.mly" +# 92521 "src/ocaml/preprocess/parser_raw.ml" + + in + let domain_with_modes = + let m1 = +# 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 90498 "src/ocaml/preprocess/parser_raw.ml" - in - let ty = - let _startpos__1_ = _startpos__1_inlined1_ in - let _1 = +# 92528 "src/ocaml/preprocess/parser_raw.ml" + in + let ty = + let _startpos__1_ = _startpos__1_inlined1_ in let _1 = let _1 = - let bound_vars = - let _1 = - let xs = -# 253 "" + let _1 = + let bound_vars = + let _1 = + let xs = +# 264 "" ( List.rev xs ) -# 90510 "src/ocaml/preprocess/parser_raw.ml" - in - +# 92540 "src/ocaml/preprocess/parser_raw.ml" + in + # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 90515 "src/ocaml/preprocess/parser_raw.ml" +# 92545 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 4481 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 92551 "src/ocaml/preprocess/parser_raw.ml" in -# 4470 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 90521 "src/ocaml/preprocess/parser_raw.ml" +# 4732 "src/ocaml/preprocess/parser_raw.mly" + ( Ptyp_poly (bound_vars, inner_type) ) +# 92557 "src/ocaml/preprocess/parser_raw.ml" in + let _endpos__1_ = _endpos__5_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 4721 "src/ocaml/preprocess/parser_raw.mly" - ( Ptyp_poly (bound_vars, inner_type) ) -# 90527 "src/ocaml/preprocess/parser_raw.ml" +# 1333 "src/ocaml/preprocess/parser_raw.mly" + ( mktyp ~loc:_sloc _1 ) +# 92567 "src/ocaml/preprocess/parser_raw.ml" in - let _endpos__1_ = _endpos__5_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" - ( mktyp ~loc:_sloc _1 ) -# 90537 "src/ocaml/preprocess/parser_raw.ml" +# 4734 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 92573 "src/ocaml/preprocess/parser_raw.ml" in + let _endpos__1_ = _endpos__5_ in -# 4723 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 90543 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in - # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 90550 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in - let m0 = - let _1 = -# 4648 "src/ocaml/preprocess/parser_raw.mly" +# 92580 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in + let m0 = + let _1 = +# 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 90558 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4653 "src/ocaml/preprocess/parser_raw.mly" +# 92588 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 90563 "src/ocaml/preprocess/parser_raw.ml" +# 92593 "src/ocaml/preprocess/parser_raw.ml" + + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 90573 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = -# 4635 "src/ocaml/preprocess/parser_raw.mly" +# 92603 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = +# 4646 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 90579 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4565 "src/ocaml/preprocess/parser_raw.mly" +# 92609 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 90588 "src/ocaml/preprocess/parser_raw.ml" +# 92618 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__1_ = _endpos_ty_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos__1_ = _endpos_ty_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 90598 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4571 "src/ocaml/preprocess/parser_raw.mly" +# 92628 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 90604 "src/ocaml/preprocess/parser_raw.ml" - in +# 92634 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -90685,152 +92716,154 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined3_ in - let _v : (Parsetree.core_type) = let _1 = + let _v = let _1 = - let codomain_with_modes = - let (_1_inlined1, _1) = (_1_inlined3, _1_inlined2) in - let m1 = - let _1 = _1_inlined1 in - -# 4672 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let codomain_with_modes = + let (_1_inlined1, _1) = (_1_inlined3, _1_inlined2) in + let m1 = + let _1 = _1_inlined1 in + +# 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 90698 "src/ocaml/preprocess/parser_raw.ml" - - in - let m0 = - let _1 = -# 4648 "src/ocaml/preprocess/parser_raw.mly" +# 92730 "src/ocaml/preprocess/parser_raw.ml" + + in + let m0 = + let _1 = +# 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 90705 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4653 "src/ocaml/preprocess/parser_raw.mly" +# 92737 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 90710 "src/ocaml/preprocess/parser_raw.ml" +# 92742 "src/ocaml/preprocess/parser_raw.ml" + + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 90720 "src/ocaml/preprocess/parser_raw.ml" - - in - let domain_with_modes = - let m1 = -# 4671 "src/ocaml/preprocess/parser_raw.mly" +# 92752 "src/ocaml/preprocess/parser_raw.ml" + + in + let domain_with_modes = + let m1 = +# 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 90727 "src/ocaml/preprocess/parser_raw.ml" - in - let ty = - let _startpos__1_ = _startpos__1_inlined1_ in - let _1 = +# 92759 "src/ocaml/preprocess/parser_raw.ml" + in + let ty = + let _startpos__1_ = _startpos__1_inlined1_ in let _1 = let _1 = - let bound_vars = - let _1 = - let xs = -# 253 "" + let _1 = + let bound_vars = + let _1 = + let xs = +# 264 "" ( List.rev xs ) -# 90739 "src/ocaml/preprocess/parser_raw.ml" - in - +# 92771 "src/ocaml/preprocess/parser_raw.ml" + in + # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 90744 "src/ocaml/preprocess/parser_raw.ml" +# 92776 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 4481 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 92782 "src/ocaml/preprocess/parser_raw.ml" in -# 4470 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 90750 "src/ocaml/preprocess/parser_raw.ml" +# 4732 "src/ocaml/preprocess/parser_raw.mly" + ( Ptyp_poly (bound_vars, inner_type) ) +# 92788 "src/ocaml/preprocess/parser_raw.ml" in + let _endpos__1_ = _endpos__5_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 4721 "src/ocaml/preprocess/parser_raw.mly" - ( Ptyp_poly (bound_vars, inner_type) ) -# 90756 "src/ocaml/preprocess/parser_raw.ml" +# 1333 "src/ocaml/preprocess/parser_raw.mly" + ( mktyp ~loc:_sloc _1 ) +# 92798 "src/ocaml/preprocess/parser_raw.ml" in - let _endpos__1_ = _endpos__5_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" - ( mktyp ~loc:_sloc _1 ) -# 90766 "src/ocaml/preprocess/parser_raw.ml" +# 4734 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 92804 "src/ocaml/preprocess/parser_raw.ml" in + let _endpos__1_ = _endpos__5_ in -# 4723 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 90772 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in - # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 90779 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in - let m0 = - let _1 = -# 4648 "src/ocaml/preprocess/parser_raw.mly" +# 92811 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in + let m0 = + let _1 = +# 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 90787 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4653 "src/ocaml/preprocess/parser_raw.mly" +# 92819 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 90792 "src/ocaml/preprocess/parser_raw.ml" +# 92824 "src/ocaml/preprocess/parser_raw.ml" + + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 90802 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = -# 4635 "src/ocaml/preprocess/parser_raw.mly" +# 92834 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = +# 4646 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 90808 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4565 "src/ocaml/preprocess/parser_raw.mly" +# 92840 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 90817 "src/ocaml/preprocess/parser_raw.ml" +# 92849 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__1_ = _endpos__1_inlined3_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos__1_ = _endpos__1_inlined3_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 90827 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4571 "src/ocaml/preprocess/parser_raw.mly" +# 92859 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 90833 "src/ocaml/preprocess/parser_raw.ml" - in +# 92865 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -90907,144 +92940,146 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_ty_ in - let _v : (Parsetree.core_type) = let _1 = + let _v = let _1 = - let codomain_with_modes = - let m1 = -# 4671 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let codomain_with_modes = + let m1 = +# 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 90917 "src/ocaml/preprocess/parser_raw.ml" - in - let m0 = -# 4652 "src/ocaml/preprocess/parser_raw.mly" +# 92951 "src/ocaml/preprocess/parser_raw.ml" + in + let m0 = +# 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 90922 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 92956 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 90931 "src/ocaml/preprocess/parser_raw.ml" - - in - let domain_with_modes = - let m1 = - let _1 = _1_inlined2 in - -# 4672 "src/ocaml/preprocess/parser_raw.mly" - (_1) -# 90940 "src/ocaml/preprocess/parser_raw.ml" +# 92965 "src/ocaml/preprocess/parser_raw.ml" in - let ty = - let _startpos__1_ = _startpos__1_inlined1_ in - let _1 = + let domain_with_modes = + let m1 = + let _1 = _1_inlined2 in + +# 4683 "src/ocaml/preprocess/parser_raw.mly" + (_1) +# 92974 "src/ocaml/preprocess/parser_raw.ml" + + in + let ty = + let _startpos__1_ = _startpos__1_inlined1_ in let _1 = let _1 = - let bound_vars = - let _1 = - let xs = -# 253 "" + let _1 = + let bound_vars = + let _1 = + let xs = +# 264 "" ( List.rev xs ) -# 90953 "src/ocaml/preprocess/parser_raw.ml" - in - +# 92987 "src/ocaml/preprocess/parser_raw.ml" + in + # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 90958 "src/ocaml/preprocess/parser_raw.ml" +# 92992 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 4481 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 92998 "src/ocaml/preprocess/parser_raw.ml" in -# 4470 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 90964 "src/ocaml/preprocess/parser_raw.ml" +# 4732 "src/ocaml/preprocess/parser_raw.mly" + ( Ptyp_poly (bound_vars, inner_type) ) +# 93004 "src/ocaml/preprocess/parser_raw.ml" in + let _endpos__1_ = _endpos__5_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 4721 "src/ocaml/preprocess/parser_raw.mly" - ( Ptyp_poly (bound_vars, inner_type) ) -# 90970 "src/ocaml/preprocess/parser_raw.ml" +# 1333 "src/ocaml/preprocess/parser_raw.mly" + ( mktyp ~loc:_sloc _1 ) +# 93014 "src/ocaml/preprocess/parser_raw.ml" in - let _endpos__1_ = _endpos__5_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" - ( mktyp ~loc:_sloc _1 ) -# 90980 "src/ocaml/preprocess/parser_raw.ml" +# 4734 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 93020 "src/ocaml/preprocess/parser_raw.ml" in + let _endpos__1_ = _endpos__5_ in -# 4723 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 90986 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in - # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 90993 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in - let m0 = - let _1 = -# 4648 "src/ocaml/preprocess/parser_raw.mly" +# 93027 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in + let m0 = + let _1 = +# 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 91001 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4653 "src/ocaml/preprocess/parser_raw.mly" +# 93035 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 91006 "src/ocaml/preprocess/parser_raw.ml" +# 93040 "src/ocaml/preprocess/parser_raw.ml" + + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 91016 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = -# 4635 "src/ocaml/preprocess/parser_raw.mly" +# 93050 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = +# 4646 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 91022 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4565 "src/ocaml/preprocess/parser_raw.mly" +# 93056 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 91031 "src/ocaml/preprocess/parser_raw.ml" +# 93065 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__1_ = _endpos_ty_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos__1_ = _endpos_ty_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 91041 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4571 "src/ocaml/preprocess/parser_raw.mly" +# 93075 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 91047 "src/ocaml/preprocess/parser_raw.ml" - in +# 93081 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -91128,145 +93163,147 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined3_ in - let _v : (Parsetree.core_type) = let _1 = + let _v = let _1 = - let codomain_with_modes = - let _1 = _1_inlined3 in - let m1 = -# 4672 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let codomain_with_modes = + let _1 = _1_inlined3 in + let m1 = +# 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 91139 "src/ocaml/preprocess/parser_raw.ml" - in - let m0 = -# 4652 "src/ocaml/preprocess/parser_raw.mly" +# 93175 "src/ocaml/preprocess/parser_raw.ml" + in + let m0 = +# 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 91144 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 93180 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 91153 "src/ocaml/preprocess/parser_raw.ml" - - in - let domain_with_modes = - let m1 = - let _1 = _1_inlined2 in - -# 4672 "src/ocaml/preprocess/parser_raw.mly" - (_1) -# 91162 "src/ocaml/preprocess/parser_raw.ml" +# 93189 "src/ocaml/preprocess/parser_raw.ml" in - let ty = - let _startpos__1_ = _startpos__1_inlined1_ in - let _1 = + let domain_with_modes = + let m1 = + let _1 = _1_inlined2 in + +# 4683 "src/ocaml/preprocess/parser_raw.mly" + (_1) +# 93198 "src/ocaml/preprocess/parser_raw.ml" + + in + let ty = + let _startpos__1_ = _startpos__1_inlined1_ in let _1 = let _1 = - let bound_vars = - let _1 = - let xs = -# 253 "" + let _1 = + let bound_vars = + let _1 = + let xs = +# 264 "" ( List.rev xs ) -# 91175 "src/ocaml/preprocess/parser_raw.ml" - in - +# 93211 "src/ocaml/preprocess/parser_raw.ml" + in + # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 91180 "src/ocaml/preprocess/parser_raw.ml" +# 93216 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 4481 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 93222 "src/ocaml/preprocess/parser_raw.ml" in -# 4470 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 91186 "src/ocaml/preprocess/parser_raw.ml" +# 4732 "src/ocaml/preprocess/parser_raw.mly" + ( Ptyp_poly (bound_vars, inner_type) ) +# 93228 "src/ocaml/preprocess/parser_raw.ml" in + let _endpos__1_ = _endpos__5_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 4721 "src/ocaml/preprocess/parser_raw.mly" - ( Ptyp_poly (bound_vars, inner_type) ) -# 91192 "src/ocaml/preprocess/parser_raw.ml" +# 1333 "src/ocaml/preprocess/parser_raw.mly" + ( mktyp ~loc:_sloc _1 ) +# 93238 "src/ocaml/preprocess/parser_raw.ml" in - let _endpos__1_ = _endpos__5_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" - ( mktyp ~loc:_sloc _1 ) -# 91202 "src/ocaml/preprocess/parser_raw.ml" +# 4734 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 93244 "src/ocaml/preprocess/parser_raw.ml" in + let _endpos__1_ = _endpos__5_ in -# 4723 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 91208 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in - # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 91215 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in - let m0 = - let _1 = -# 4648 "src/ocaml/preprocess/parser_raw.mly" +# 93251 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in + let m0 = + let _1 = +# 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 91223 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4653 "src/ocaml/preprocess/parser_raw.mly" +# 93259 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 91228 "src/ocaml/preprocess/parser_raw.ml" +# 93264 "src/ocaml/preprocess/parser_raw.ml" + + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 91238 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = -# 4635 "src/ocaml/preprocess/parser_raw.mly" +# 93274 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = +# 4646 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 91244 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4565 "src/ocaml/preprocess/parser_raw.mly" +# 93280 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 91253 "src/ocaml/preprocess/parser_raw.ml" +# 93289 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__1_ = _endpos__1_inlined3_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos__1_ = _endpos__1_inlined3_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 91263 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4571 "src/ocaml/preprocess/parser_raw.mly" +# 93299 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 91269 "src/ocaml/preprocess/parser_raw.ml" - in +# 93305 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -91350,152 +93387,154 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_ty_ in - let _v : (Parsetree.core_type) = let _1 = + let _v = let _1 = - let codomain_with_modes = - let _1 = _1_inlined3 in - let m1 = -# 4671 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let codomain_with_modes = + let _1 = _1_inlined3 in + let m1 = +# 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 91361 "src/ocaml/preprocess/parser_raw.ml" - in - let m0 = - let _1 = -# 4648 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 91367 "src/ocaml/preprocess/parser_raw.ml" +# 93399 "src/ocaml/preprocess/parser_raw.ml" in - -# 4653 "src/ocaml/preprocess/parser_raw.mly" + let m0 = + let _1 = +# 4659 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 93405 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 91372 "src/ocaml/preprocess/parser_raw.ml" +# 93410 "src/ocaml/preprocess/parser_raw.ml" + + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 91382 "src/ocaml/preprocess/parser_raw.ml" - - in - let domain_with_modes = - let m1 = - let _1 = _1_inlined2 in - -# 4672 "src/ocaml/preprocess/parser_raw.mly" - (_1) -# 91391 "src/ocaml/preprocess/parser_raw.ml" +# 93420 "src/ocaml/preprocess/parser_raw.ml" in - let ty = - let _startpos__1_ = _startpos__1_inlined1_ in - let _1 = + let domain_with_modes = + let m1 = + let _1 = _1_inlined2 in + +# 4683 "src/ocaml/preprocess/parser_raw.mly" + (_1) +# 93429 "src/ocaml/preprocess/parser_raw.ml" + + in + let ty = + let _startpos__1_ = _startpos__1_inlined1_ in let _1 = let _1 = - let bound_vars = - let _1 = - let xs = -# 253 "" + let _1 = + let bound_vars = + let _1 = + let xs = +# 264 "" ( List.rev xs ) -# 91404 "src/ocaml/preprocess/parser_raw.ml" - in - +# 93442 "src/ocaml/preprocess/parser_raw.ml" + in + # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 91409 "src/ocaml/preprocess/parser_raw.ml" +# 93447 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 4481 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 93453 "src/ocaml/preprocess/parser_raw.ml" in -# 4470 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 91415 "src/ocaml/preprocess/parser_raw.ml" +# 4732 "src/ocaml/preprocess/parser_raw.mly" + ( Ptyp_poly (bound_vars, inner_type) ) +# 93459 "src/ocaml/preprocess/parser_raw.ml" in + let _endpos__1_ = _endpos__5_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 4721 "src/ocaml/preprocess/parser_raw.mly" - ( Ptyp_poly (bound_vars, inner_type) ) -# 91421 "src/ocaml/preprocess/parser_raw.ml" +# 1333 "src/ocaml/preprocess/parser_raw.mly" + ( mktyp ~loc:_sloc _1 ) +# 93469 "src/ocaml/preprocess/parser_raw.ml" in - let _endpos__1_ = _endpos__5_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" - ( mktyp ~loc:_sloc _1 ) -# 91431 "src/ocaml/preprocess/parser_raw.ml" +# 4734 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 93475 "src/ocaml/preprocess/parser_raw.ml" in + let _endpos__1_ = _endpos__5_ in -# 4723 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 91437 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in - # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 91444 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in - let m0 = - let _1 = -# 4648 "src/ocaml/preprocess/parser_raw.mly" +# 93482 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in + let m0 = + let _1 = +# 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 91452 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4653 "src/ocaml/preprocess/parser_raw.mly" +# 93490 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 91457 "src/ocaml/preprocess/parser_raw.ml" +# 93495 "src/ocaml/preprocess/parser_raw.ml" + + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 91467 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = -# 4635 "src/ocaml/preprocess/parser_raw.mly" +# 93505 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = +# 4646 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 91473 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4565 "src/ocaml/preprocess/parser_raw.mly" +# 93511 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 91482 "src/ocaml/preprocess/parser_raw.ml" +# 93520 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__1_ = _endpos_ty_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos__1_ = _endpos_ty_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 91492 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4571 "src/ocaml/preprocess/parser_raw.mly" +# 93530 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 91498 "src/ocaml/preprocess/parser_raw.ml" - in +# 93536 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -91586,155 +93625,157 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined4_ in - let _v : (Parsetree.core_type) = let _1 = + let _v = let _1 = - let codomain_with_modes = - let (_1_inlined1, _1) = (_1_inlined4, _1_inlined3) in - let m1 = - let _1 = _1_inlined1 in - -# 4672 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let codomain_with_modes = + let (_1_inlined1, _1) = (_1_inlined4, _1_inlined3) in + let m1 = + let _1 = _1_inlined1 in + +# 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 91599 "src/ocaml/preprocess/parser_raw.ml" - - in - let m0 = - let _1 = -# 4648 "src/ocaml/preprocess/parser_raw.mly" +# 93639 "src/ocaml/preprocess/parser_raw.ml" + + in + let m0 = + let _1 = +# 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 91606 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4653 "src/ocaml/preprocess/parser_raw.mly" +# 93646 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 91611 "src/ocaml/preprocess/parser_raw.ml" +# 93651 "src/ocaml/preprocess/parser_raw.ml" + + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 91621 "src/ocaml/preprocess/parser_raw.ml" - - in - let domain_with_modes = - let m1 = - let _1 = _1_inlined2 in - -# 4672 "src/ocaml/preprocess/parser_raw.mly" - (_1) -# 91630 "src/ocaml/preprocess/parser_raw.ml" +# 93661 "src/ocaml/preprocess/parser_raw.ml" in - let ty = - let _startpos__1_ = _startpos__1_inlined1_ in - let _1 = + let domain_with_modes = + let m1 = + let _1 = _1_inlined2 in + +# 4683 "src/ocaml/preprocess/parser_raw.mly" + (_1) +# 93670 "src/ocaml/preprocess/parser_raw.ml" + + in + let ty = + let _startpos__1_ = _startpos__1_inlined1_ in let _1 = let _1 = - let bound_vars = - let _1 = - let xs = -# 253 "" + let _1 = + let bound_vars = + let _1 = + let xs = +# 264 "" ( List.rev xs ) -# 91643 "src/ocaml/preprocess/parser_raw.ml" - in - +# 93683 "src/ocaml/preprocess/parser_raw.ml" + in + # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 91648 "src/ocaml/preprocess/parser_raw.ml" +# 93688 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 4481 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 93694 "src/ocaml/preprocess/parser_raw.ml" in -# 4470 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 91654 "src/ocaml/preprocess/parser_raw.ml" +# 4732 "src/ocaml/preprocess/parser_raw.mly" + ( Ptyp_poly (bound_vars, inner_type) ) +# 93700 "src/ocaml/preprocess/parser_raw.ml" in + let _endpos__1_ = _endpos__5_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 4721 "src/ocaml/preprocess/parser_raw.mly" - ( Ptyp_poly (bound_vars, inner_type) ) -# 91660 "src/ocaml/preprocess/parser_raw.ml" +# 1333 "src/ocaml/preprocess/parser_raw.mly" + ( mktyp ~loc:_sloc _1 ) +# 93710 "src/ocaml/preprocess/parser_raw.ml" in - let _endpos__1_ = _endpos__5_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" - ( mktyp ~loc:_sloc _1 ) -# 91670 "src/ocaml/preprocess/parser_raw.ml" +# 4734 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 93716 "src/ocaml/preprocess/parser_raw.ml" in + let _endpos__1_ = _endpos__5_ in -# 4723 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 91676 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in - # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 91683 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in - let m0 = - let _1 = -# 4648 "src/ocaml/preprocess/parser_raw.mly" +# 93723 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in + let m0 = + let _1 = +# 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 91691 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4653 "src/ocaml/preprocess/parser_raw.mly" +# 93731 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 91696 "src/ocaml/preprocess/parser_raw.ml" +# 93736 "src/ocaml/preprocess/parser_raw.ml" + + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 91706 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = -# 4635 "src/ocaml/preprocess/parser_raw.mly" +# 93746 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = +# 4646 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 91712 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4565 "src/ocaml/preprocess/parser_raw.mly" +# 93752 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 91721 "src/ocaml/preprocess/parser_raw.ml" +# 93761 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__1_ = _endpos__1_inlined4_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos__1_ = _endpos__1_inlined4_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 91731 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4571 "src/ocaml/preprocess/parser_raw.mly" +# 93771 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 91737 "src/ocaml/preprocess/parser_raw.ml" - in +# 93777 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -91776,101 +93817,103 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_ty_inlined1_ in - let _v : (Parsetree.core_type) = let _1 = + let _v = let _1 = - let codomain_with_modes = - let (_endpos_ty_, _startpos_ty_, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1) in - let m1 = -# 4671 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let codomain_with_modes = + let (_endpos_ty_, _startpos_ty_, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1) in + let m1 = +# 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 91787 "src/ocaml/preprocess/parser_raw.ml" - in - let m0 = -# 4652 "src/ocaml/preprocess/parser_raw.mly" +# 93829 "src/ocaml/preprocess/parser_raw.ml" + in + let m0 = +# 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 91792 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 93834 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 91801 "src/ocaml/preprocess/parser_raw.ml" - - in - let domain_with_modes = - let m1 = -# 4671 "src/ocaml/preprocess/parser_raw.mly" +# 93843 "src/ocaml/preprocess/parser_raw.ml" + + in + let domain_with_modes = + let m1 = +# 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 91808 "src/ocaml/preprocess/parser_raw.ml" - in - let ty = - let _1 = -# 4725 "src/ocaml/preprocess/parser_raw.mly" - ( ty ) -# 91814 "src/ocaml/preprocess/parser_raw.ml" +# 93850 "src/ocaml/preprocess/parser_raw.ml" in - let _endpos__1_ = _endpos_ty_ in - + let ty = + let _1 = +# 4736 "src/ocaml/preprocess/parser_raw.mly" + ( ty ) +# 93856 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos_ty_ in + # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 91820 "src/ocaml/preprocess/parser_raw.ml" - - in - let m0 = - let _1 = -# 4648 "src/ocaml/preprocess/parser_raw.mly" +# 93862 "src/ocaml/preprocess/parser_raw.ml" + + in + let m0 = + let _1 = +# 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 91827 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4653 "src/ocaml/preprocess/parser_raw.mly" +# 93869 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 91832 "src/ocaml/preprocess/parser_raw.ml" +# 93874 "src/ocaml/preprocess/parser_raw.ml" + + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 91842 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = -# 4635 "src/ocaml/preprocess/parser_raw.mly" +# 93884 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = +# 4646 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 91848 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4565 "src/ocaml/preprocess/parser_raw.mly" +# 93890 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 91857 "src/ocaml/preprocess/parser_raw.ml" +# 93899 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__1_ = _endpos_ty_inlined1_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos__1_ = _endpos_ty_inlined1_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 91867 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4571 "src/ocaml/preprocess/parser_raw.mly" +# 93909 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 91873 "src/ocaml/preprocess/parser_raw.ml" - in +# 93915 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -91919,101 +93962,103 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined1_ in - let _v : (Parsetree.core_type) = let _1 = + let _v = let _1 = - let codomain_with_modes = - let (_endpos_ty_, _startpos_ty_, _1, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, _1_inlined1, ty_inlined1) in - let m1 = -# 4672 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let codomain_with_modes = + let (_endpos_ty_, _startpos_ty_, _1, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, _1_inlined1, ty_inlined1) in + let m1 = +# 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 91930 "src/ocaml/preprocess/parser_raw.ml" - in - let m0 = -# 4652 "src/ocaml/preprocess/parser_raw.mly" +# 93974 "src/ocaml/preprocess/parser_raw.ml" + in + let m0 = +# 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 91935 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 93979 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 91944 "src/ocaml/preprocess/parser_raw.ml" - - in - let domain_with_modes = - let m1 = -# 4671 "src/ocaml/preprocess/parser_raw.mly" +# 93988 "src/ocaml/preprocess/parser_raw.ml" + + in + let domain_with_modes = + let m1 = +# 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 91951 "src/ocaml/preprocess/parser_raw.ml" - in - let ty = - let _1 = -# 4725 "src/ocaml/preprocess/parser_raw.mly" - ( ty ) -# 91957 "src/ocaml/preprocess/parser_raw.ml" +# 93995 "src/ocaml/preprocess/parser_raw.ml" in - let _endpos__1_ = _endpos_ty_ in - + let ty = + let _1 = +# 4736 "src/ocaml/preprocess/parser_raw.mly" + ( ty ) +# 94001 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos_ty_ in + # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 91963 "src/ocaml/preprocess/parser_raw.ml" - - in - let m0 = - let _1 = -# 4648 "src/ocaml/preprocess/parser_raw.mly" +# 94007 "src/ocaml/preprocess/parser_raw.ml" + + in + let m0 = + let _1 = +# 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 91970 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4653 "src/ocaml/preprocess/parser_raw.mly" +# 94014 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 91975 "src/ocaml/preprocess/parser_raw.ml" +# 94019 "src/ocaml/preprocess/parser_raw.ml" + + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 91985 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = -# 4635 "src/ocaml/preprocess/parser_raw.mly" +# 94029 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = +# 4646 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 91991 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4565 "src/ocaml/preprocess/parser_raw.mly" +# 94035 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 92000 "src/ocaml/preprocess/parser_raw.ml" +# 94044 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__1_ = _endpos__1_inlined1_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos__1_ = _endpos__1_inlined1_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 92010 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4571 "src/ocaml/preprocess/parser_raw.mly" +# 94054 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 92016 "src/ocaml/preprocess/parser_raw.ml" - in +# 94060 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -92062,108 +94107,110 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_ty_inlined1_ in - let _v : (Parsetree.core_type) = let _1 = + let _v = let _1 = - let codomain_with_modes = - let (_endpos_ty_, _startpos_ty_, ty, _1) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1, _1_inlined1) in - let m1 = -# 4671 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let codomain_with_modes = + let (_endpos_ty_, _startpos_ty_, ty, _1) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1, _1_inlined1) in + let m1 = +# 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 92073 "src/ocaml/preprocess/parser_raw.ml" - in - let m0 = - let _1 = -# 4648 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 92079 "src/ocaml/preprocess/parser_raw.ml" +# 94119 "src/ocaml/preprocess/parser_raw.ml" in - -# 4653 "src/ocaml/preprocess/parser_raw.mly" + let m0 = + let _1 = +# 4659 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 94125 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 92084 "src/ocaml/preprocess/parser_raw.ml" +# 94130 "src/ocaml/preprocess/parser_raw.ml" + + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 92094 "src/ocaml/preprocess/parser_raw.ml" - - in - let domain_with_modes = - let m1 = -# 4671 "src/ocaml/preprocess/parser_raw.mly" +# 94140 "src/ocaml/preprocess/parser_raw.ml" + + in + let domain_with_modes = + let m1 = +# 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 92101 "src/ocaml/preprocess/parser_raw.ml" - in - let ty = - let _1 = -# 4725 "src/ocaml/preprocess/parser_raw.mly" - ( ty ) -# 92107 "src/ocaml/preprocess/parser_raw.ml" +# 94147 "src/ocaml/preprocess/parser_raw.ml" in - let _endpos__1_ = _endpos_ty_ in - + let ty = + let _1 = +# 4736 "src/ocaml/preprocess/parser_raw.mly" + ( ty ) +# 94153 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos_ty_ in + # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 92113 "src/ocaml/preprocess/parser_raw.ml" - - in - let m0 = - let _1 = -# 4648 "src/ocaml/preprocess/parser_raw.mly" +# 94159 "src/ocaml/preprocess/parser_raw.ml" + + in + let m0 = + let _1 = +# 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 92120 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4653 "src/ocaml/preprocess/parser_raw.mly" +# 94166 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 92125 "src/ocaml/preprocess/parser_raw.ml" +# 94171 "src/ocaml/preprocess/parser_raw.ml" + + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 92135 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = -# 4635 "src/ocaml/preprocess/parser_raw.mly" +# 94181 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = +# 4646 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 92141 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4565 "src/ocaml/preprocess/parser_raw.mly" +# 94187 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 92150 "src/ocaml/preprocess/parser_raw.ml" +# 94196 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__1_ = _endpos_ty_inlined1_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos__1_ = _endpos_ty_inlined1_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 92160 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4571 "src/ocaml/preprocess/parser_raw.mly" +# 94206 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 92166 "src/ocaml/preprocess/parser_raw.ml" - in +# 94212 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -92219,111 +94266,113 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined2_ in - let _v : (Parsetree.core_type) = let _1 = + let _v = let _1 = - let codomain_with_modes = - let (_endpos_ty_, _startpos_ty_, _1_inlined1, ty, _1) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, _1_inlined2, ty_inlined1, _1_inlined1) in - let m1 = - let _1 = _1_inlined1 in - -# 4672 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let codomain_with_modes = + let (_endpos_ty_, _startpos_ty_, _1_inlined1, ty, _1) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, _1_inlined2, ty_inlined1, _1_inlined1) in + let m1 = + let _1 = _1_inlined1 in + +# 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 92232 "src/ocaml/preprocess/parser_raw.ml" - - in - let m0 = - let _1 = -# 4648 "src/ocaml/preprocess/parser_raw.mly" +# 94280 "src/ocaml/preprocess/parser_raw.ml" + + in + let m0 = + let _1 = +# 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 92239 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4653 "src/ocaml/preprocess/parser_raw.mly" +# 94287 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 92244 "src/ocaml/preprocess/parser_raw.ml" +# 94292 "src/ocaml/preprocess/parser_raw.ml" + + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 92254 "src/ocaml/preprocess/parser_raw.ml" - - in - let domain_with_modes = - let m1 = -# 4671 "src/ocaml/preprocess/parser_raw.mly" +# 94302 "src/ocaml/preprocess/parser_raw.ml" + + in + let domain_with_modes = + let m1 = +# 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 92261 "src/ocaml/preprocess/parser_raw.ml" - in - let ty = - let _1 = -# 4725 "src/ocaml/preprocess/parser_raw.mly" - ( ty ) -# 92267 "src/ocaml/preprocess/parser_raw.ml" +# 94309 "src/ocaml/preprocess/parser_raw.ml" in - let _endpos__1_ = _endpos_ty_ in - + let ty = + let _1 = +# 4736 "src/ocaml/preprocess/parser_raw.mly" + ( ty ) +# 94315 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos_ty_ in + # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 92273 "src/ocaml/preprocess/parser_raw.ml" - - in - let m0 = - let _1 = -# 4648 "src/ocaml/preprocess/parser_raw.mly" +# 94321 "src/ocaml/preprocess/parser_raw.ml" + + in + let m0 = + let _1 = +# 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 92280 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4653 "src/ocaml/preprocess/parser_raw.mly" +# 94328 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 92285 "src/ocaml/preprocess/parser_raw.ml" +# 94333 "src/ocaml/preprocess/parser_raw.ml" + + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 92295 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = -# 4635 "src/ocaml/preprocess/parser_raw.mly" +# 94343 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = +# 4646 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 92301 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4565 "src/ocaml/preprocess/parser_raw.mly" +# 94349 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 92310 "src/ocaml/preprocess/parser_raw.ml" +# 94358 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__1_ = _endpos__1_inlined2_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos__1_ = _endpos__1_inlined2_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 92320 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4571 "src/ocaml/preprocess/parser_raw.mly" +# 94368 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 92326 "src/ocaml/preprocess/parser_raw.ml" - in +# 94374 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -92372,104 +94421,106 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_ty_inlined1_ in - let _v : (Parsetree.core_type) = let _1 = + let _v = let _1 = - let codomain_with_modes = - let (_endpos_ty_, _startpos_ty_, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1) in - let m1 = -# 4671 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let codomain_with_modes = + let (_endpos_ty_, _startpos_ty_, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1) in + let m1 = +# 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 92383 "src/ocaml/preprocess/parser_raw.ml" - in - let m0 = -# 4652 "src/ocaml/preprocess/parser_raw.mly" +# 94433 "src/ocaml/preprocess/parser_raw.ml" + in + let m0 = +# 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 92388 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 94438 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 92397 "src/ocaml/preprocess/parser_raw.ml" - - in - let domain_with_modes = - let m1 = - let _1 = _1_inlined1 in - -# 4672 "src/ocaml/preprocess/parser_raw.mly" - (_1) -# 92406 "src/ocaml/preprocess/parser_raw.ml" +# 94447 "src/ocaml/preprocess/parser_raw.ml" in - let ty = - let _1 = -# 4725 "src/ocaml/preprocess/parser_raw.mly" + let domain_with_modes = + let m1 = + let _1 = _1_inlined1 in + +# 4683 "src/ocaml/preprocess/parser_raw.mly" + (_1) +# 94456 "src/ocaml/preprocess/parser_raw.ml" + + in + let ty = + let _1 = +# 4736 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 92413 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos__1_ = _endpos_ty_ in - +# 94463 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos_ty_ in + # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 92419 "src/ocaml/preprocess/parser_raw.ml" - - in - let m0 = - let _1 = -# 4648 "src/ocaml/preprocess/parser_raw.mly" +# 94469 "src/ocaml/preprocess/parser_raw.ml" + + in + let m0 = + let _1 = +# 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 92426 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4653 "src/ocaml/preprocess/parser_raw.mly" +# 94476 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 92431 "src/ocaml/preprocess/parser_raw.ml" +# 94481 "src/ocaml/preprocess/parser_raw.ml" + + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 92441 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = -# 4635 "src/ocaml/preprocess/parser_raw.mly" +# 94491 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = +# 4646 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 92447 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4565 "src/ocaml/preprocess/parser_raw.mly" +# 94497 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 92456 "src/ocaml/preprocess/parser_raw.ml" +# 94506 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__1_ = _endpos_ty_inlined1_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos__1_ = _endpos_ty_inlined1_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 92466 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4571 "src/ocaml/preprocess/parser_raw.mly" +# 94516 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 92472 "src/ocaml/preprocess/parser_raw.ml" - in +# 94522 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -92525,104 +94576,106 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined2_ in - let _v : (Parsetree.core_type) = let _1 = + let _v = let _1 = - let codomain_with_modes = - let (_endpos_ty_, _startpos_ty_, _1, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, _1_inlined2, ty_inlined1) in - let m1 = -# 4672 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let codomain_with_modes = + let (_endpos_ty_, _startpos_ty_, _1, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, _1_inlined2, ty_inlined1) in + let m1 = +# 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 92536 "src/ocaml/preprocess/parser_raw.ml" - in - let m0 = -# 4652 "src/ocaml/preprocess/parser_raw.mly" +# 94588 "src/ocaml/preprocess/parser_raw.ml" + in + let m0 = +# 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 92541 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 94593 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 92550 "src/ocaml/preprocess/parser_raw.ml" - - in - let domain_with_modes = - let m1 = - let _1 = _1_inlined1 in - -# 4672 "src/ocaml/preprocess/parser_raw.mly" - (_1) -# 92559 "src/ocaml/preprocess/parser_raw.ml" +# 94602 "src/ocaml/preprocess/parser_raw.ml" in - let ty = - let _1 = -# 4725 "src/ocaml/preprocess/parser_raw.mly" + let domain_with_modes = + let m1 = + let _1 = _1_inlined1 in + +# 4683 "src/ocaml/preprocess/parser_raw.mly" + (_1) +# 94611 "src/ocaml/preprocess/parser_raw.ml" + + in + let ty = + let _1 = +# 4736 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 92566 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos__1_ = _endpos_ty_ in - +# 94618 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos_ty_ in + # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 92572 "src/ocaml/preprocess/parser_raw.ml" - - in - let m0 = - let _1 = -# 4648 "src/ocaml/preprocess/parser_raw.mly" +# 94624 "src/ocaml/preprocess/parser_raw.ml" + + in + let m0 = + let _1 = +# 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 92579 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4653 "src/ocaml/preprocess/parser_raw.mly" +# 94631 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 92584 "src/ocaml/preprocess/parser_raw.ml" +# 94636 "src/ocaml/preprocess/parser_raw.ml" + + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 92594 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = -# 4635 "src/ocaml/preprocess/parser_raw.mly" +# 94646 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = +# 4646 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 92600 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4565 "src/ocaml/preprocess/parser_raw.mly" +# 94652 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 92609 "src/ocaml/preprocess/parser_raw.ml" +# 94661 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__1_ = _endpos__1_inlined2_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos__1_ = _endpos__1_inlined2_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 92619 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4571 "src/ocaml/preprocess/parser_raw.mly" +# 94671 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 92625 "src/ocaml/preprocess/parser_raw.ml" - in +# 94677 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -92678,111 +94731,113 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_ty_inlined1_ in - let _v : (Parsetree.core_type) = let _1 = + let _v = let _1 = - let codomain_with_modes = - let (_endpos_ty_, _startpos_ty_, ty, _1) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1, _1_inlined2) in - let m1 = -# 4671 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let codomain_with_modes = + let (_endpos_ty_, _startpos_ty_, ty, _1) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1, _1_inlined2) in + let m1 = +# 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 92689 "src/ocaml/preprocess/parser_raw.ml" - in - let m0 = - let _1 = -# 4648 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 92695 "src/ocaml/preprocess/parser_raw.ml" +# 94743 "src/ocaml/preprocess/parser_raw.ml" in - -# 4653 "src/ocaml/preprocess/parser_raw.mly" + let m0 = + let _1 = +# 4659 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 94749 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 92700 "src/ocaml/preprocess/parser_raw.ml" +# 94754 "src/ocaml/preprocess/parser_raw.ml" + + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 92710 "src/ocaml/preprocess/parser_raw.ml" - - in - let domain_with_modes = - let m1 = - let _1 = _1_inlined1 in - -# 4672 "src/ocaml/preprocess/parser_raw.mly" - (_1) -# 92719 "src/ocaml/preprocess/parser_raw.ml" +# 94764 "src/ocaml/preprocess/parser_raw.ml" in - let ty = - let _1 = -# 4725 "src/ocaml/preprocess/parser_raw.mly" + let domain_with_modes = + let m1 = + let _1 = _1_inlined1 in + +# 4683 "src/ocaml/preprocess/parser_raw.mly" + (_1) +# 94773 "src/ocaml/preprocess/parser_raw.ml" + + in + let ty = + let _1 = +# 4736 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 92726 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos__1_ = _endpos_ty_ in - +# 94780 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos_ty_ in + # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 92732 "src/ocaml/preprocess/parser_raw.ml" - - in - let m0 = - let _1 = -# 4648 "src/ocaml/preprocess/parser_raw.mly" +# 94786 "src/ocaml/preprocess/parser_raw.ml" + + in + let m0 = + let _1 = +# 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 92739 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4653 "src/ocaml/preprocess/parser_raw.mly" +# 94793 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 92744 "src/ocaml/preprocess/parser_raw.ml" +# 94798 "src/ocaml/preprocess/parser_raw.ml" + + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 92754 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = -# 4635 "src/ocaml/preprocess/parser_raw.mly" +# 94808 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = +# 4646 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 92760 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4565 "src/ocaml/preprocess/parser_raw.mly" +# 94814 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 92769 "src/ocaml/preprocess/parser_raw.ml" +# 94823 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__1_ = _endpos_ty_inlined1_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos__1_ = _endpos_ty_inlined1_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 92779 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4571 "src/ocaml/preprocess/parser_raw.mly" +# 94833 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 92785 "src/ocaml/preprocess/parser_raw.ml" - in +# 94839 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -92845,114 +94900,116 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined3_ in - let _v : (Parsetree.core_type) = let _1 = + let _v = let _1 = - let codomain_with_modes = - let (_endpos_ty_, _startpos_ty_, _1_inlined1, ty, _1) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, _1_inlined3, ty_inlined1, _1_inlined2) in - let m1 = - let _1 = _1_inlined1 in - -# 4672 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let codomain_with_modes = + let (_endpos_ty_, _startpos_ty_, _1_inlined1, ty, _1) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, _1_inlined3, ty_inlined1, _1_inlined2) in + let m1 = + let _1 = _1_inlined1 in + +# 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 92858 "src/ocaml/preprocess/parser_raw.ml" - - in - let m0 = - let _1 = -# 4648 "src/ocaml/preprocess/parser_raw.mly" +# 94914 "src/ocaml/preprocess/parser_raw.ml" + + in + let m0 = + let _1 = +# 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 92865 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4653 "src/ocaml/preprocess/parser_raw.mly" +# 94921 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 92870 "src/ocaml/preprocess/parser_raw.ml" +# 94926 "src/ocaml/preprocess/parser_raw.ml" + + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 92880 "src/ocaml/preprocess/parser_raw.ml" - - in - let domain_with_modes = - let m1 = - let _1 = _1_inlined1 in - -# 4672 "src/ocaml/preprocess/parser_raw.mly" - (_1) -# 92889 "src/ocaml/preprocess/parser_raw.ml" +# 94936 "src/ocaml/preprocess/parser_raw.ml" in - let ty = - let _1 = -# 4725 "src/ocaml/preprocess/parser_raw.mly" + let domain_with_modes = + let m1 = + let _1 = _1_inlined1 in + +# 4683 "src/ocaml/preprocess/parser_raw.mly" + (_1) +# 94945 "src/ocaml/preprocess/parser_raw.ml" + + in + let ty = + let _1 = +# 4736 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 92896 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos__1_ = _endpos_ty_ in - +# 94952 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos_ty_ in + # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 92902 "src/ocaml/preprocess/parser_raw.ml" - - in - let m0 = - let _1 = -# 4648 "src/ocaml/preprocess/parser_raw.mly" +# 94958 "src/ocaml/preprocess/parser_raw.ml" + + in + let m0 = + let _1 = +# 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 92909 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4653 "src/ocaml/preprocess/parser_raw.mly" +# 94965 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 92914 "src/ocaml/preprocess/parser_raw.ml" +# 94970 "src/ocaml/preprocess/parser_raw.ml" + + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 92924 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = -# 4635 "src/ocaml/preprocess/parser_raw.mly" +# 94980 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = +# 4646 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 92930 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4565 "src/ocaml/preprocess/parser_raw.mly" +# 94986 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 92939 "src/ocaml/preprocess/parser_raw.ml" +# 94995 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__1_ = _endpos__1_inlined3_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos__1_ = _endpos__1_inlined3_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 92949 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4571 "src/ocaml/preprocess/parser_raw.mly" +# 95005 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 92955 "src/ocaml/preprocess/parser_raw.ml" - in +# 95011 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -93014,56 +95071,57 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 93018 "src/ocaml/preprocess/parser_raw.ml" +# 95075 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos_codomain_ in - let _v : (Parsetree.core_type) = let _1 = + let _v = let _1 = - let tuple_with_modes = - let m1 = -# 4671 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let tuple_with_modes = + let m1 = +# 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 93029 "src/ocaml/preprocess/parser_raw.ml" - in - let ty = - let ltys = - let xs = -# 253 "" +# 95087 "src/ocaml/preprocess/parser_raw.ml" + in + let ty = + let ltys = + let xs = +# 264 "" ( List.rev xs ) -# 93036 "src/ocaml/preprocess/parser_raw.ml" - in - +# 95094 "src/ocaml/preprocess/parser_raw.ml" + in + # 1450 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 93041 "src/ocaml/preprocess/parser_raw.ml" +# 95099 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 4754 "src/ocaml/preprocess/parser_raw.mly" +# 4765 "src/ocaml/preprocess/parser_raw.mly" ( ty, ltys ) -# 93047 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_ty_ = _endpos_xs_ in - let m0 = -# 4652 "src/ocaml/preprocess/parser_raw.mly" +# 95105 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_ty_ = _endpos_xs_ in + let m0 = +# 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 93054 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 95112 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 93063 "src/ocaml/preprocess/parser_raw.ml" +# 95121 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 4589 "src/ocaml/preprocess/parser_raw.mly" +# 4600 "src/ocaml/preprocess/parser_raw.mly" ( let (tuple, tuple_loc), arg_modes = tuple_with_modes in let ty, ltys = tuple in @@ -93071,24 +95129,25 @@ module Tables = struct let domain = mktyp ~loc:tuple_loc (Ptyp_tuple ((None, ty) :: ltys)) in let domain = extra_rhs_core_type domain ~pos:(snd tuple_loc) in Ptyp_arrow(label, domain, codomain, arg_modes, []) ) -# 93075 "src/ocaml/preprocess/parser_raw.ml" +# 95133 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 93085 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4597 "src/ocaml/preprocess/parser_raw.mly" +# 95143 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4608 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 93091 "src/ocaml/preprocess/parser_raw.ml" - in +# 95149 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -93157,56 +95216,57 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 93161 "src/ocaml/preprocess/parser_raw.ml" +# 95220 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos_codomain_ in - let _v : (Parsetree.core_type) = let _1 = + let _v = let _1 = - let tuple_with_modes = - let m1 = -# 4672 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let tuple_with_modes = + let m1 = +# 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 93172 "src/ocaml/preprocess/parser_raw.ml" - in - let ty = - let ltys = - let xs = -# 253 "" +# 95232 "src/ocaml/preprocess/parser_raw.ml" + in + let ty = + let ltys = + let xs = +# 264 "" ( List.rev xs ) -# 93179 "src/ocaml/preprocess/parser_raw.ml" - in - +# 95239 "src/ocaml/preprocess/parser_raw.ml" + in + # 1450 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 93184 "src/ocaml/preprocess/parser_raw.ml" +# 95244 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 4754 "src/ocaml/preprocess/parser_raw.mly" +# 4765 "src/ocaml/preprocess/parser_raw.mly" ( ty, ltys ) -# 93190 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_ty_ = _endpos_xs_ in - let m0 = -# 4652 "src/ocaml/preprocess/parser_raw.mly" +# 95250 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_ty_ = _endpos_xs_ in + let m0 = +# 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 93197 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 95257 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 93206 "src/ocaml/preprocess/parser_raw.ml" +# 95266 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 4589 "src/ocaml/preprocess/parser_raw.mly" +# 4600 "src/ocaml/preprocess/parser_raw.mly" ( let (tuple, tuple_loc), arg_modes = tuple_with_modes in let ty, ltys = tuple in @@ -93214,24 +95274,25 @@ module Tables = struct let domain = mktyp ~loc:tuple_loc (Ptyp_tuple ((None, ty) :: ltys)) in let domain = extra_rhs_core_type domain ~pos:(snd tuple_loc) in Ptyp_arrow(label, domain, codomain, arg_modes, []) ) -# 93218 "src/ocaml/preprocess/parser_raw.ml" +# 95278 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 93228 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4597 "src/ocaml/preprocess/parser_raw.mly" +# 95288 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4608 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 93234 "src/ocaml/preprocess/parser_raw.ml" - in +# 95294 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -93300,63 +95361,64 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 93304 "src/ocaml/preprocess/parser_raw.ml" +# 95365 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos_codomain_ in - let _v : (Parsetree.core_type) = let _1 = + let _v = let _1 = - let tuple_with_modes = - let m1 = -# 4671 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let tuple_with_modes = + let m1 = +# 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 93315 "src/ocaml/preprocess/parser_raw.ml" - in - let ty = - let ltys = - let xs = -# 253 "" +# 95377 "src/ocaml/preprocess/parser_raw.ml" + in + let ty = + let ltys = + let xs = +# 264 "" ( List.rev xs ) -# 93322 "src/ocaml/preprocess/parser_raw.ml" - in - +# 95384 "src/ocaml/preprocess/parser_raw.ml" + in + # 1450 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 93327 "src/ocaml/preprocess/parser_raw.ml" +# 95389 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 4754 "src/ocaml/preprocess/parser_raw.mly" +# 4765 "src/ocaml/preprocess/parser_raw.mly" ( ty, ltys ) -# 93333 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_ty_ = _endpos_xs_ in - let m0 = - let _1 = -# 4648 "src/ocaml/preprocess/parser_raw.mly" +# 95395 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_ty_ = _endpos_xs_ in + let m0 = + let _1 = +# 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 93341 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4653 "src/ocaml/preprocess/parser_raw.mly" +# 95403 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 93346 "src/ocaml/preprocess/parser_raw.ml" +# 95408 "src/ocaml/preprocess/parser_raw.ml" + + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 93356 "src/ocaml/preprocess/parser_raw.ml" +# 95418 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 4589 "src/ocaml/preprocess/parser_raw.mly" +# 4600 "src/ocaml/preprocess/parser_raw.mly" ( let (tuple, tuple_loc), arg_modes = tuple_with_modes in let ty, ltys = tuple in @@ -93364,24 +95426,25 @@ module Tables = struct let domain = mktyp ~loc:tuple_loc (Ptyp_tuple ((None, ty) :: ltys)) in let domain = extra_rhs_core_type domain ~pos:(snd tuple_loc) in Ptyp_arrow(label, domain, codomain, arg_modes, []) ) -# 93368 "src/ocaml/preprocess/parser_raw.ml" +# 95430 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 93378 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4597 "src/ocaml/preprocess/parser_raw.mly" +# 95440 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4608 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 93384 "src/ocaml/preprocess/parser_raw.ml" - in +# 95446 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -93457,66 +95520,67 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 93461 "src/ocaml/preprocess/parser_raw.ml" +# 95524 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos_codomain_ in - let _v : (Parsetree.core_type) = let _1 = + let _v = let _1 = - let tuple_with_modes = - let m1 = - let _1 = _1_inlined1 in - -# 4672 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let tuple_with_modes = + let m1 = + let _1 = _1_inlined1 in + +# 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 93474 "src/ocaml/preprocess/parser_raw.ml" - - in - let ty = - let ltys = - let xs = -# 253 "" - ( List.rev xs ) -# 93482 "src/ocaml/preprocess/parser_raw.ml" - in +# 95538 "src/ocaml/preprocess/parser_raw.ml" + in + let ty = + let ltys = + let xs = +# 264 "" + ( List.rev xs ) +# 95546 "src/ocaml/preprocess/parser_raw.ml" + in + # 1450 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 93487 "src/ocaml/preprocess/parser_raw.ml" +# 95551 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 4754 "src/ocaml/preprocess/parser_raw.mly" +# 4765 "src/ocaml/preprocess/parser_raw.mly" ( ty, ltys ) -# 93493 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_ty_ = _endpos_xs_ in - let m0 = - let _1 = -# 4648 "src/ocaml/preprocess/parser_raw.mly" +# 95557 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_ty_ = _endpos_xs_ in + let m0 = + let _1 = +# 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 93501 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4653 "src/ocaml/preprocess/parser_raw.mly" +# 95565 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 93506 "src/ocaml/preprocess/parser_raw.ml" +# 95570 "src/ocaml/preprocess/parser_raw.ml" + + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 93516 "src/ocaml/preprocess/parser_raw.ml" +# 95580 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 4589 "src/ocaml/preprocess/parser_raw.mly" +# 4600 "src/ocaml/preprocess/parser_raw.mly" ( let (tuple, tuple_loc), arg_modes = tuple_with_modes in let ty, ltys = tuple in @@ -93524,24 +95588,25 @@ module Tables = struct let domain = mktyp ~loc:tuple_loc (Ptyp_tuple ((None, ty) :: ltys)) in let domain = extra_rhs_core_type domain ~pos:(snd tuple_loc) in Ptyp_arrow(label, domain, codomain, arg_modes, []) ) -# 93528 "src/ocaml/preprocess/parser_raw.ml" +# 95592 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 93538 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4597 "src/ocaml/preprocess/parser_raw.mly" +# 95602 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4608 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 93544 "src/ocaml/preprocess/parser_raw.ml" - in +# 95608 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -93603,78 +95668,79 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 93607 "src/ocaml/preprocess/parser_raw.ml" +# 95672 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos_ty_inlined1_ in - let _v : (Parsetree.core_type) = let _1 = + let _v = let _1 = - let codomain_with_modes = - let (_endpos_ty_, _startpos_ty_, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1) in - let m1 = -# 4671 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let codomain_with_modes = + let (_endpos_ty_, _startpos_ty_, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1) in + let m1 = +# 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 93619 "src/ocaml/preprocess/parser_raw.ml" - in - let m0 = -# 4652 "src/ocaml/preprocess/parser_raw.mly" +# 95685 "src/ocaml/preprocess/parser_raw.ml" + in + let m0 = +# 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 93624 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 95690 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 93633 "src/ocaml/preprocess/parser_raw.ml" - - in - let tuple_with_modes = - let m1 = -# 4671 "src/ocaml/preprocess/parser_raw.mly" +# 95699 "src/ocaml/preprocess/parser_raw.ml" + + in + let tuple_with_modes = + let m1 = +# 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 93640 "src/ocaml/preprocess/parser_raw.ml" - in - let ty = - let ltys = - let xs = -# 253 "" +# 95706 "src/ocaml/preprocess/parser_raw.ml" + in + let ty = + let ltys = + let xs = +# 264 "" ( List.rev xs ) -# 93647 "src/ocaml/preprocess/parser_raw.ml" - in - +# 95713 "src/ocaml/preprocess/parser_raw.ml" + in + # 1450 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 93652 "src/ocaml/preprocess/parser_raw.ml" +# 95718 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 4754 "src/ocaml/preprocess/parser_raw.mly" +# 4765 "src/ocaml/preprocess/parser_raw.mly" ( ty, ltys ) -# 93658 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_ty_ = _endpos_xs_ in - let m0 = -# 4652 "src/ocaml/preprocess/parser_raw.mly" +# 95724 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_ty_ = _endpos_xs_ in + let m0 = +# 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 93665 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 95731 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 93674 "src/ocaml/preprocess/parser_raw.ml" +# 95740 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 4604 "src/ocaml/preprocess/parser_raw.mly" +# 4615 "src/ocaml/preprocess/parser_raw.mly" ( let (tuple, tuple_loc), arg_modes = tuple_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in let ty, ltys = tuple in @@ -93687,24 +95753,25 @@ module Tables = struct arg_modes, ret_modes) ) -# 93691 "src/ocaml/preprocess/parser_raw.ml" +# 95757 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 93701 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4617 "src/ocaml/preprocess/parser_raw.mly" +# 95767 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4628 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 93707 "src/ocaml/preprocess/parser_raw.ml" - in +# 95773 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -93773,78 +95840,79 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 93777 "src/ocaml/preprocess/parser_raw.ml" +# 95844 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos__1_ in - let _v : (Parsetree.core_type) = let _1 = + let _v = let _1 = - let codomain_with_modes = - let (_endpos_ty_, _startpos_ty_, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1) in - let m1 = -# 4672 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let codomain_with_modes = + let (_endpos_ty_, _startpos_ty_, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1) in + let m1 = +# 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 93789 "src/ocaml/preprocess/parser_raw.ml" - in - let m0 = -# 4652 "src/ocaml/preprocess/parser_raw.mly" +# 95857 "src/ocaml/preprocess/parser_raw.ml" + in + let m0 = +# 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 93794 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 95862 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 93803 "src/ocaml/preprocess/parser_raw.ml" - - in - let tuple_with_modes = - let m1 = -# 4671 "src/ocaml/preprocess/parser_raw.mly" +# 95871 "src/ocaml/preprocess/parser_raw.ml" + + in + let tuple_with_modes = + let m1 = +# 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 93810 "src/ocaml/preprocess/parser_raw.ml" - in - let ty = - let ltys = - let xs = -# 253 "" +# 95878 "src/ocaml/preprocess/parser_raw.ml" + in + let ty = + let ltys = + let xs = +# 264 "" ( List.rev xs ) -# 93817 "src/ocaml/preprocess/parser_raw.ml" - in - +# 95885 "src/ocaml/preprocess/parser_raw.ml" + in + # 1450 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 93822 "src/ocaml/preprocess/parser_raw.ml" +# 95890 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 4754 "src/ocaml/preprocess/parser_raw.mly" +# 4765 "src/ocaml/preprocess/parser_raw.mly" ( ty, ltys ) -# 93828 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_ty_ = _endpos_xs_ in - let m0 = -# 4652 "src/ocaml/preprocess/parser_raw.mly" +# 95896 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_ty_ = _endpos_xs_ in + let m0 = +# 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 93835 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 95903 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 93844 "src/ocaml/preprocess/parser_raw.ml" +# 95912 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 4604 "src/ocaml/preprocess/parser_raw.mly" +# 4615 "src/ocaml/preprocess/parser_raw.mly" ( let (tuple, tuple_loc), arg_modes = tuple_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in let ty, ltys = tuple in @@ -93857,24 +95925,25 @@ module Tables = struct arg_modes, ret_modes) ) -# 93861 "src/ocaml/preprocess/parser_raw.ml" +# 95929 "src/ocaml/preprocess/parser_raw.ml" + + in + let _startpos__1_ = _startpos_label_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _startpos__1_ = _startpos_label_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 93871 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4617 "src/ocaml/preprocess/parser_raw.mly" +# 95939 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4628 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 93877 "src/ocaml/preprocess/parser_raw.ml" - in +# 95945 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -93943,85 +96012,86 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 93947 "src/ocaml/preprocess/parser_raw.ml" +# 96016 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos_ty_inlined1_ in - let _v : (Parsetree.core_type) = let _1 = + let _v = let _1 = - let codomain_with_modes = - let (_endpos_ty_, _startpos_ty_, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1) in - let m1 = -# 4671 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let codomain_with_modes = + let (_endpos_ty_, _startpos_ty_, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1) in + let m1 = +# 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 93959 "src/ocaml/preprocess/parser_raw.ml" - in - let m0 = - let _1 = -# 4648 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 93965 "src/ocaml/preprocess/parser_raw.ml" +# 96029 "src/ocaml/preprocess/parser_raw.ml" in - -# 4653 "src/ocaml/preprocess/parser_raw.mly" + let m0 = + let _1 = +# 4659 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 96035 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 93970 "src/ocaml/preprocess/parser_raw.ml" +# 96040 "src/ocaml/preprocess/parser_raw.ml" + + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 93980 "src/ocaml/preprocess/parser_raw.ml" - - in - let tuple_with_modes = - let m1 = -# 4671 "src/ocaml/preprocess/parser_raw.mly" +# 96050 "src/ocaml/preprocess/parser_raw.ml" + + in + let tuple_with_modes = + let m1 = +# 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 93987 "src/ocaml/preprocess/parser_raw.ml" - in - let ty = - let ltys = - let xs = -# 253 "" +# 96057 "src/ocaml/preprocess/parser_raw.ml" + in + let ty = + let ltys = + let xs = +# 264 "" ( List.rev xs ) -# 93994 "src/ocaml/preprocess/parser_raw.ml" - in - +# 96064 "src/ocaml/preprocess/parser_raw.ml" + in + # 1450 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 93999 "src/ocaml/preprocess/parser_raw.ml" +# 96069 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 4754 "src/ocaml/preprocess/parser_raw.mly" +# 4765 "src/ocaml/preprocess/parser_raw.mly" ( ty, ltys ) -# 94005 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_ty_ = _endpos_xs_ in - let m0 = -# 4652 "src/ocaml/preprocess/parser_raw.mly" +# 96075 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_ty_ = _endpos_xs_ in + let m0 = +# 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 94012 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 96082 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 94021 "src/ocaml/preprocess/parser_raw.ml" +# 96091 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 4604 "src/ocaml/preprocess/parser_raw.mly" +# 4615 "src/ocaml/preprocess/parser_raw.mly" ( let (tuple, tuple_loc), arg_modes = tuple_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in let ty, ltys = tuple in @@ -94034,24 +96104,25 @@ module Tables = struct arg_modes, ret_modes) ) -# 94038 "src/ocaml/preprocess/parser_raw.ml" +# 96108 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 94048 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4617 "src/ocaml/preprocess/parser_raw.mly" +# 96118 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4628 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 94054 "src/ocaml/preprocess/parser_raw.ml" - in +# 96124 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -94127,88 +96198,89 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 94131 "src/ocaml/preprocess/parser_raw.ml" +# 96202 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos__1_inlined1_ in - let _v : (Parsetree.core_type) = let _1 = + let _v = let _1 = - let codomain_with_modes = - let (_endpos_ty_, _startpos_ty_, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1) in - let m1 = - let _1 = _1_inlined1 in - -# 4672 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let codomain_with_modes = + let (_endpos_ty_, _startpos_ty_, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1) in + let m1 = + let _1 = _1_inlined1 in + +# 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 94145 "src/ocaml/preprocess/parser_raw.ml" - - in - let m0 = - let _1 = -# 4648 "src/ocaml/preprocess/parser_raw.mly" +# 96217 "src/ocaml/preprocess/parser_raw.ml" + + in + let m0 = + let _1 = +# 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 94152 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4653 "src/ocaml/preprocess/parser_raw.mly" +# 96224 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 94157 "src/ocaml/preprocess/parser_raw.ml" +# 96229 "src/ocaml/preprocess/parser_raw.ml" + + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 94167 "src/ocaml/preprocess/parser_raw.ml" - - in - let tuple_with_modes = - let m1 = -# 4671 "src/ocaml/preprocess/parser_raw.mly" +# 96239 "src/ocaml/preprocess/parser_raw.ml" + + in + let tuple_with_modes = + let m1 = +# 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 94174 "src/ocaml/preprocess/parser_raw.ml" - in - let ty = - let ltys = - let xs = -# 253 "" +# 96246 "src/ocaml/preprocess/parser_raw.ml" + in + let ty = + let ltys = + let xs = +# 264 "" ( List.rev xs ) -# 94181 "src/ocaml/preprocess/parser_raw.ml" - in - +# 96253 "src/ocaml/preprocess/parser_raw.ml" + in + # 1450 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 94186 "src/ocaml/preprocess/parser_raw.ml" +# 96258 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 4754 "src/ocaml/preprocess/parser_raw.mly" +# 4765 "src/ocaml/preprocess/parser_raw.mly" ( ty, ltys ) -# 94192 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_ty_ = _endpos_xs_ in - let m0 = -# 4652 "src/ocaml/preprocess/parser_raw.mly" +# 96264 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_ty_ = _endpos_xs_ in + let m0 = +# 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 94199 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 96271 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 94208 "src/ocaml/preprocess/parser_raw.ml" +# 96280 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 4604 "src/ocaml/preprocess/parser_raw.mly" +# 4615 "src/ocaml/preprocess/parser_raw.mly" ( let (tuple, tuple_loc), arg_modes = tuple_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in let ty, ltys = tuple in @@ -94221,24 +96293,25 @@ module Tables = struct arg_modes, ret_modes) ) -# 94225 "src/ocaml/preprocess/parser_raw.ml" +# 96297 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 94235 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4617 "src/ocaml/preprocess/parser_raw.mly" +# 96307 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4628 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 94241 "src/ocaml/preprocess/parser_raw.ml" - in +# 96313 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -94307,78 +96380,79 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 94311 "src/ocaml/preprocess/parser_raw.ml" +# 96384 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos_ty_inlined1_ in - let _v : (Parsetree.core_type) = let _1 = + let _v = let _1 = - let codomain_with_modes = - let (_endpos_ty_, _startpos_ty_, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1) in - let m1 = -# 4671 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let codomain_with_modes = + let (_endpos_ty_, _startpos_ty_, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1) in + let m1 = +# 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 94323 "src/ocaml/preprocess/parser_raw.ml" - in - let m0 = -# 4652 "src/ocaml/preprocess/parser_raw.mly" +# 96397 "src/ocaml/preprocess/parser_raw.ml" + in + let m0 = +# 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 94328 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 96402 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 94337 "src/ocaml/preprocess/parser_raw.ml" - - in - let tuple_with_modes = - let m1 = -# 4672 "src/ocaml/preprocess/parser_raw.mly" +# 96411 "src/ocaml/preprocess/parser_raw.ml" + + in + let tuple_with_modes = + let m1 = +# 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 94344 "src/ocaml/preprocess/parser_raw.ml" - in - let ty = - let ltys = - let xs = -# 253 "" +# 96418 "src/ocaml/preprocess/parser_raw.ml" + in + let ty = + let ltys = + let xs = +# 264 "" ( List.rev xs ) -# 94351 "src/ocaml/preprocess/parser_raw.ml" - in - +# 96425 "src/ocaml/preprocess/parser_raw.ml" + in + # 1450 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 94356 "src/ocaml/preprocess/parser_raw.ml" +# 96430 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 4754 "src/ocaml/preprocess/parser_raw.mly" +# 4765 "src/ocaml/preprocess/parser_raw.mly" ( ty, ltys ) -# 94362 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_ty_ = _endpos_xs_ in - let m0 = -# 4652 "src/ocaml/preprocess/parser_raw.mly" +# 96436 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_ty_ = _endpos_xs_ in + let m0 = +# 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 94369 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 96443 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 94378 "src/ocaml/preprocess/parser_raw.ml" +# 96452 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 4604 "src/ocaml/preprocess/parser_raw.mly" +# 4615 "src/ocaml/preprocess/parser_raw.mly" ( let (tuple, tuple_loc), arg_modes = tuple_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in let ty, ltys = tuple in @@ -94391,24 +96465,25 @@ module Tables = struct arg_modes, ret_modes) ) -# 94395 "src/ocaml/preprocess/parser_raw.ml" +# 96469 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 94405 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4617 "src/ocaml/preprocess/parser_raw.mly" +# 96479 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4628 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 94411 "src/ocaml/preprocess/parser_raw.ml" - in +# 96485 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -94484,78 +96559,79 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 94488 "src/ocaml/preprocess/parser_raw.ml" +# 96563 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos__1_inlined1_ in - let _v : (Parsetree.core_type) = let _1 = + let _v = let _1 = - let codomain_with_modes = - let (_endpos_ty_, _startpos_ty_, _1, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, _1_inlined1, ty_inlined1) in - let m1 = -# 4672 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let codomain_with_modes = + let (_endpos_ty_, _startpos_ty_, _1, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, _1_inlined1, ty_inlined1) in + let m1 = +# 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 94500 "src/ocaml/preprocess/parser_raw.ml" - in - let m0 = -# 4652 "src/ocaml/preprocess/parser_raw.mly" +# 96576 "src/ocaml/preprocess/parser_raw.ml" + in + let m0 = +# 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 94505 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 96581 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 94514 "src/ocaml/preprocess/parser_raw.ml" - - in - let tuple_with_modes = - let m1 = -# 4672 "src/ocaml/preprocess/parser_raw.mly" +# 96590 "src/ocaml/preprocess/parser_raw.ml" + + in + let tuple_with_modes = + let m1 = +# 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 94521 "src/ocaml/preprocess/parser_raw.ml" - in - let ty = - let ltys = - let xs = -# 253 "" +# 96597 "src/ocaml/preprocess/parser_raw.ml" + in + let ty = + let ltys = + let xs = +# 264 "" ( List.rev xs ) -# 94528 "src/ocaml/preprocess/parser_raw.ml" - in - +# 96604 "src/ocaml/preprocess/parser_raw.ml" + in + # 1450 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 94533 "src/ocaml/preprocess/parser_raw.ml" +# 96609 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 4754 "src/ocaml/preprocess/parser_raw.mly" +# 4765 "src/ocaml/preprocess/parser_raw.mly" ( ty, ltys ) -# 94539 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_ty_ = _endpos_xs_ in - let m0 = -# 4652 "src/ocaml/preprocess/parser_raw.mly" +# 96615 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_ty_ = _endpos_xs_ in + let m0 = +# 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 94546 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 96622 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 94555 "src/ocaml/preprocess/parser_raw.ml" +# 96631 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 4604 "src/ocaml/preprocess/parser_raw.mly" +# 4615 "src/ocaml/preprocess/parser_raw.mly" ( let (tuple, tuple_loc), arg_modes = tuple_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in let ty, ltys = tuple in @@ -94568,24 +96644,25 @@ module Tables = struct arg_modes, ret_modes) ) -# 94572 "src/ocaml/preprocess/parser_raw.ml" +# 96648 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 94582 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4617 "src/ocaml/preprocess/parser_raw.mly" +# 96658 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4628 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 94588 "src/ocaml/preprocess/parser_raw.ml" - in +# 96664 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -94661,85 +96738,86 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 94665 "src/ocaml/preprocess/parser_raw.ml" +# 96742 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos_ty_inlined1_ in - let _v : (Parsetree.core_type) = let _1 = + let _v = let _1 = - let codomain_with_modes = - let (_endpos_ty_, _startpos_ty_, ty, _1) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1, _1_inlined1) in - let m1 = -# 4671 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let codomain_with_modes = + let (_endpos_ty_, _startpos_ty_, ty, _1) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1, _1_inlined1) in + let m1 = +# 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 94677 "src/ocaml/preprocess/parser_raw.ml" - in - let m0 = - let _1 = -# 4648 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 94683 "src/ocaml/preprocess/parser_raw.ml" +# 96755 "src/ocaml/preprocess/parser_raw.ml" in - -# 4653 "src/ocaml/preprocess/parser_raw.mly" + let m0 = + let _1 = +# 4659 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 96761 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 94688 "src/ocaml/preprocess/parser_raw.ml" +# 96766 "src/ocaml/preprocess/parser_raw.ml" + + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 94698 "src/ocaml/preprocess/parser_raw.ml" - - in - let tuple_with_modes = - let m1 = -# 4672 "src/ocaml/preprocess/parser_raw.mly" +# 96776 "src/ocaml/preprocess/parser_raw.ml" + + in + let tuple_with_modes = + let m1 = +# 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 94705 "src/ocaml/preprocess/parser_raw.ml" - in - let ty = - let ltys = - let xs = -# 253 "" +# 96783 "src/ocaml/preprocess/parser_raw.ml" + in + let ty = + let ltys = + let xs = +# 264 "" ( List.rev xs ) -# 94712 "src/ocaml/preprocess/parser_raw.ml" - in - +# 96790 "src/ocaml/preprocess/parser_raw.ml" + in + # 1450 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 94717 "src/ocaml/preprocess/parser_raw.ml" +# 96795 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 4754 "src/ocaml/preprocess/parser_raw.mly" +# 4765 "src/ocaml/preprocess/parser_raw.mly" ( ty, ltys ) -# 94723 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_ty_ = _endpos_xs_ in - let m0 = -# 4652 "src/ocaml/preprocess/parser_raw.mly" +# 96801 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_ty_ = _endpos_xs_ in + let m0 = +# 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 94730 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 96808 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 94739 "src/ocaml/preprocess/parser_raw.ml" +# 96817 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 4604 "src/ocaml/preprocess/parser_raw.mly" +# 4615 "src/ocaml/preprocess/parser_raw.mly" ( let (tuple, tuple_loc), arg_modes = tuple_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in let ty, ltys = tuple in @@ -94752,24 +96830,25 @@ module Tables = struct arg_modes, ret_modes) ) -# 94756 "src/ocaml/preprocess/parser_raw.ml" +# 96834 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 94766 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4617 "src/ocaml/preprocess/parser_raw.mly" +# 96844 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4628 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 94772 "src/ocaml/preprocess/parser_raw.ml" - in +# 96850 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -94852,88 +96931,89 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 94856 "src/ocaml/preprocess/parser_raw.ml" +# 96935 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos__1_inlined2_ in - let _v : (Parsetree.core_type) = let _1 = + let _v = let _1 = - let codomain_with_modes = - let (_endpos_ty_, _startpos_ty_, _1_inlined1, ty, _1) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, _1_inlined2, ty_inlined1, _1_inlined1) in - let m1 = - let _1 = _1_inlined1 in - -# 4672 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let codomain_with_modes = + let (_endpos_ty_, _startpos_ty_, _1_inlined1, ty, _1) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, _1_inlined2, ty_inlined1, _1_inlined1) in + let m1 = + let _1 = _1_inlined1 in + +# 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 94870 "src/ocaml/preprocess/parser_raw.ml" - - in - let m0 = - let _1 = -# 4648 "src/ocaml/preprocess/parser_raw.mly" +# 96950 "src/ocaml/preprocess/parser_raw.ml" + + in + let m0 = + let _1 = +# 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 94877 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4653 "src/ocaml/preprocess/parser_raw.mly" +# 96957 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 94882 "src/ocaml/preprocess/parser_raw.ml" +# 96962 "src/ocaml/preprocess/parser_raw.ml" + + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 94892 "src/ocaml/preprocess/parser_raw.ml" - - in - let tuple_with_modes = - let m1 = -# 4672 "src/ocaml/preprocess/parser_raw.mly" +# 96972 "src/ocaml/preprocess/parser_raw.ml" + + in + let tuple_with_modes = + let m1 = +# 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 94899 "src/ocaml/preprocess/parser_raw.ml" - in - let ty = - let ltys = - let xs = -# 253 "" +# 96979 "src/ocaml/preprocess/parser_raw.ml" + in + let ty = + let ltys = + let xs = +# 264 "" ( List.rev xs ) -# 94906 "src/ocaml/preprocess/parser_raw.ml" - in - +# 96986 "src/ocaml/preprocess/parser_raw.ml" + in + # 1450 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 94911 "src/ocaml/preprocess/parser_raw.ml" +# 96991 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 4754 "src/ocaml/preprocess/parser_raw.mly" +# 4765 "src/ocaml/preprocess/parser_raw.mly" ( ty, ltys ) -# 94917 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_ty_ = _endpos_xs_ in - let m0 = -# 4652 "src/ocaml/preprocess/parser_raw.mly" +# 96997 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_ty_ = _endpos_xs_ in + let m0 = +# 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 94924 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 97004 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 94933 "src/ocaml/preprocess/parser_raw.ml" +# 97013 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 4604 "src/ocaml/preprocess/parser_raw.mly" +# 4615 "src/ocaml/preprocess/parser_raw.mly" ( let (tuple, tuple_loc), arg_modes = tuple_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in let ty, ltys = tuple in @@ -94946,24 +97026,25 @@ module Tables = struct arg_modes, ret_modes) ) -# 94950 "src/ocaml/preprocess/parser_raw.ml" +# 97030 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined2_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined2_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 94960 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4617 "src/ocaml/preprocess/parser_raw.mly" +# 97040 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4628 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 94966 "src/ocaml/preprocess/parser_raw.ml" - in +# 97046 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -95032,85 +97113,86 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 95036 "src/ocaml/preprocess/parser_raw.ml" +# 97117 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos_ty_inlined1_ in - let _v : (Parsetree.core_type) = let _1 = + let _v = let _1 = - let codomain_with_modes = - let (_endpos_ty_, _startpos_ty_, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1) in - let m1 = -# 4671 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let codomain_with_modes = + let (_endpos_ty_, _startpos_ty_, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1) in + let m1 = +# 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 95048 "src/ocaml/preprocess/parser_raw.ml" - in - let m0 = -# 4652 "src/ocaml/preprocess/parser_raw.mly" +# 97130 "src/ocaml/preprocess/parser_raw.ml" + in + let m0 = +# 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 95053 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 97135 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 95062 "src/ocaml/preprocess/parser_raw.ml" - - in - let tuple_with_modes = - let m1 = -# 4671 "src/ocaml/preprocess/parser_raw.mly" +# 97144 "src/ocaml/preprocess/parser_raw.ml" + + in + let tuple_with_modes = + let m1 = +# 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 95069 "src/ocaml/preprocess/parser_raw.ml" - in - let ty = - let ltys = - let xs = -# 253 "" +# 97151 "src/ocaml/preprocess/parser_raw.ml" + in + let ty = + let ltys = + let xs = +# 264 "" ( List.rev xs ) -# 95076 "src/ocaml/preprocess/parser_raw.ml" - in - +# 97158 "src/ocaml/preprocess/parser_raw.ml" + in + # 1450 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 95081 "src/ocaml/preprocess/parser_raw.ml" +# 97163 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 4754 "src/ocaml/preprocess/parser_raw.mly" +# 4765 "src/ocaml/preprocess/parser_raw.mly" ( ty, ltys ) -# 95087 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_ty_ = _endpos_xs_ in - let m0 = - let _1 = -# 4648 "src/ocaml/preprocess/parser_raw.mly" +# 97169 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_ty_ = _endpos_xs_ in + let m0 = + let _1 = +# 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 95095 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4653 "src/ocaml/preprocess/parser_raw.mly" +# 97177 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 95100 "src/ocaml/preprocess/parser_raw.ml" +# 97182 "src/ocaml/preprocess/parser_raw.ml" + + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 95110 "src/ocaml/preprocess/parser_raw.ml" +# 97192 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 4604 "src/ocaml/preprocess/parser_raw.mly" +# 4615 "src/ocaml/preprocess/parser_raw.mly" ( let (tuple, tuple_loc), arg_modes = tuple_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in let ty, ltys = tuple in @@ -95123,24 +97205,25 @@ module Tables = struct arg_modes, ret_modes) ) -# 95127 "src/ocaml/preprocess/parser_raw.ml" +# 97209 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 95137 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4617 "src/ocaml/preprocess/parser_raw.mly" +# 97219 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4628 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 95143 "src/ocaml/preprocess/parser_raw.ml" - in +# 97225 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -95216,85 +97299,86 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 95220 "src/ocaml/preprocess/parser_raw.ml" +# 97303 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos__1_inlined1_ in - let _v : (Parsetree.core_type) = let _1 = + let _v = let _1 = - let codomain_with_modes = - let (_endpos_ty_, _startpos_ty_, _1, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, _1_inlined1, ty_inlined1) in - let m1 = -# 4672 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let codomain_with_modes = + let (_endpos_ty_, _startpos_ty_, _1, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, _1_inlined1, ty_inlined1) in + let m1 = +# 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 95232 "src/ocaml/preprocess/parser_raw.ml" - in - let m0 = -# 4652 "src/ocaml/preprocess/parser_raw.mly" +# 97316 "src/ocaml/preprocess/parser_raw.ml" + in + let m0 = +# 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 95237 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 97321 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 95246 "src/ocaml/preprocess/parser_raw.ml" - - in - let tuple_with_modes = - let m1 = -# 4671 "src/ocaml/preprocess/parser_raw.mly" +# 97330 "src/ocaml/preprocess/parser_raw.ml" + + in + let tuple_with_modes = + let m1 = +# 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 95253 "src/ocaml/preprocess/parser_raw.ml" - in - let ty = - let ltys = - let xs = -# 253 "" +# 97337 "src/ocaml/preprocess/parser_raw.ml" + in + let ty = + let ltys = + let xs = +# 264 "" ( List.rev xs ) -# 95260 "src/ocaml/preprocess/parser_raw.ml" - in - +# 97344 "src/ocaml/preprocess/parser_raw.ml" + in + # 1450 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 95265 "src/ocaml/preprocess/parser_raw.ml" +# 97349 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 4754 "src/ocaml/preprocess/parser_raw.mly" +# 4765 "src/ocaml/preprocess/parser_raw.mly" ( ty, ltys ) -# 95271 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_ty_ = _endpos_xs_ in - let m0 = - let _1 = -# 4648 "src/ocaml/preprocess/parser_raw.mly" +# 97355 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_ty_ = _endpos_xs_ in + let m0 = + let _1 = +# 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 95279 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4653 "src/ocaml/preprocess/parser_raw.mly" +# 97363 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 95284 "src/ocaml/preprocess/parser_raw.ml" +# 97368 "src/ocaml/preprocess/parser_raw.ml" + + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 95294 "src/ocaml/preprocess/parser_raw.ml" +# 97378 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 4604 "src/ocaml/preprocess/parser_raw.mly" +# 4615 "src/ocaml/preprocess/parser_raw.mly" ( let (tuple, tuple_loc), arg_modes = tuple_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in let ty, ltys = tuple in @@ -95307,24 +97391,25 @@ module Tables = struct arg_modes, ret_modes) ) -# 95311 "src/ocaml/preprocess/parser_raw.ml" +# 97395 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 95321 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4617 "src/ocaml/preprocess/parser_raw.mly" +# 97405 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4628 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 95327 "src/ocaml/preprocess/parser_raw.ml" - in +# 97411 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -95400,92 +97485,93 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 95404 "src/ocaml/preprocess/parser_raw.ml" +# 97489 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos_ty_inlined1_ in - let _v : (Parsetree.core_type) = let _1 = + let _v = let _1 = - let codomain_with_modes = - let (_endpos_ty_, _startpos_ty_, ty, _1) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1, _1_inlined1) in - let m1 = -# 4671 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let codomain_with_modes = + let (_endpos_ty_, _startpos_ty_, ty, _1) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1, _1_inlined1) in + let m1 = +# 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 95416 "src/ocaml/preprocess/parser_raw.ml" - in - let m0 = - let _1 = -# 4648 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 95422 "src/ocaml/preprocess/parser_raw.ml" +# 97502 "src/ocaml/preprocess/parser_raw.ml" in - -# 4653 "src/ocaml/preprocess/parser_raw.mly" + let m0 = + let _1 = +# 4659 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 97508 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 95427 "src/ocaml/preprocess/parser_raw.ml" +# 97513 "src/ocaml/preprocess/parser_raw.ml" + + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 95437 "src/ocaml/preprocess/parser_raw.ml" - - in - let tuple_with_modes = - let m1 = -# 4671 "src/ocaml/preprocess/parser_raw.mly" +# 97523 "src/ocaml/preprocess/parser_raw.ml" + + in + let tuple_with_modes = + let m1 = +# 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 95444 "src/ocaml/preprocess/parser_raw.ml" - in - let ty = - let ltys = - let xs = -# 253 "" +# 97530 "src/ocaml/preprocess/parser_raw.ml" + in + let ty = + let ltys = + let xs = +# 264 "" ( List.rev xs ) -# 95451 "src/ocaml/preprocess/parser_raw.ml" - in - +# 97537 "src/ocaml/preprocess/parser_raw.ml" + in + # 1450 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 95456 "src/ocaml/preprocess/parser_raw.ml" +# 97542 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 4754 "src/ocaml/preprocess/parser_raw.mly" +# 4765 "src/ocaml/preprocess/parser_raw.mly" ( ty, ltys ) -# 95462 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_ty_ = _endpos_xs_ in - let m0 = - let _1 = -# 4648 "src/ocaml/preprocess/parser_raw.mly" +# 97548 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_ty_ = _endpos_xs_ in + let m0 = + let _1 = +# 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 95470 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4653 "src/ocaml/preprocess/parser_raw.mly" +# 97556 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 95475 "src/ocaml/preprocess/parser_raw.ml" +# 97561 "src/ocaml/preprocess/parser_raw.ml" + + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 95485 "src/ocaml/preprocess/parser_raw.ml" +# 97571 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 4604 "src/ocaml/preprocess/parser_raw.mly" +# 4615 "src/ocaml/preprocess/parser_raw.mly" ( let (tuple, tuple_loc), arg_modes = tuple_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in let ty, ltys = tuple in @@ -95498,24 +97584,25 @@ module Tables = struct arg_modes, ret_modes) ) -# 95502 "src/ocaml/preprocess/parser_raw.ml" +# 97588 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 95512 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4617 "src/ocaml/preprocess/parser_raw.mly" +# 97598 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4628 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 95518 "src/ocaml/preprocess/parser_raw.ml" - in +# 97604 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -95598,95 +97685,96 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 95602 "src/ocaml/preprocess/parser_raw.ml" +# 97689 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos__1_inlined2_ in - let _v : (Parsetree.core_type) = let _1 = + let _v = let _1 = - let codomain_with_modes = - let (_endpos_ty_, _startpos_ty_, _1_inlined1, ty, _1) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, _1_inlined2, ty_inlined1, _1_inlined1) in - let m1 = - let _1 = _1_inlined1 in - -# 4672 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let codomain_with_modes = + let (_endpos_ty_, _startpos_ty_, _1_inlined1, ty, _1) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, _1_inlined2, ty_inlined1, _1_inlined1) in + let m1 = + let _1 = _1_inlined1 in + +# 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 95616 "src/ocaml/preprocess/parser_raw.ml" - - in - let m0 = - let _1 = -# 4648 "src/ocaml/preprocess/parser_raw.mly" +# 97704 "src/ocaml/preprocess/parser_raw.ml" + + in + let m0 = + let _1 = +# 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 95623 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4653 "src/ocaml/preprocess/parser_raw.mly" +# 97711 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 95628 "src/ocaml/preprocess/parser_raw.ml" +# 97716 "src/ocaml/preprocess/parser_raw.ml" + + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 95638 "src/ocaml/preprocess/parser_raw.ml" - - in - let tuple_with_modes = - let m1 = -# 4671 "src/ocaml/preprocess/parser_raw.mly" +# 97726 "src/ocaml/preprocess/parser_raw.ml" + + in + let tuple_with_modes = + let m1 = +# 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 95645 "src/ocaml/preprocess/parser_raw.ml" - in - let ty = - let ltys = - let xs = -# 253 "" +# 97733 "src/ocaml/preprocess/parser_raw.ml" + in + let ty = + let ltys = + let xs = +# 264 "" ( List.rev xs ) -# 95652 "src/ocaml/preprocess/parser_raw.ml" - in - +# 97740 "src/ocaml/preprocess/parser_raw.ml" + in + # 1450 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 95657 "src/ocaml/preprocess/parser_raw.ml" +# 97745 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 4754 "src/ocaml/preprocess/parser_raw.mly" +# 4765 "src/ocaml/preprocess/parser_raw.mly" ( ty, ltys ) -# 95663 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_ty_ = _endpos_xs_ in - let m0 = - let _1 = -# 4648 "src/ocaml/preprocess/parser_raw.mly" +# 97751 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_ty_ = _endpos_xs_ in + let m0 = + let _1 = +# 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 95671 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4653 "src/ocaml/preprocess/parser_raw.mly" +# 97759 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 95676 "src/ocaml/preprocess/parser_raw.ml" +# 97764 "src/ocaml/preprocess/parser_raw.ml" + + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 95686 "src/ocaml/preprocess/parser_raw.ml" +# 97774 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 4604 "src/ocaml/preprocess/parser_raw.mly" +# 4615 "src/ocaml/preprocess/parser_raw.mly" ( let (tuple, tuple_loc), arg_modes = tuple_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in let ty, ltys = tuple in @@ -95699,24 +97787,25 @@ module Tables = struct arg_modes, ret_modes) ) -# 95703 "src/ocaml/preprocess/parser_raw.ml" +# 97791 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined2_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined2_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 95713 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4617 "src/ocaml/preprocess/parser_raw.mly" +# 97801 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4628 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 95719 "src/ocaml/preprocess/parser_raw.ml" - in +# 97807 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -95792,88 +97881,89 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 95796 "src/ocaml/preprocess/parser_raw.ml" +# 97885 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos_ty_inlined1_ in - let _v : (Parsetree.core_type) = let _1 = + let _v = let _1 = - let codomain_with_modes = - let (_endpos_ty_, _startpos_ty_, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1) in - let m1 = -# 4671 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let codomain_with_modes = + let (_endpos_ty_, _startpos_ty_, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1) in + let m1 = +# 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 95808 "src/ocaml/preprocess/parser_raw.ml" - in - let m0 = -# 4652 "src/ocaml/preprocess/parser_raw.mly" +# 97898 "src/ocaml/preprocess/parser_raw.ml" + in + let m0 = +# 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 95813 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 97903 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 95822 "src/ocaml/preprocess/parser_raw.ml" - - in - let tuple_with_modes = - let m1 = - let _1 = _1_inlined1 in - -# 4672 "src/ocaml/preprocess/parser_raw.mly" - (_1) -# 95831 "src/ocaml/preprocess/parser_raw.ml" +# 97912 "src/ocaml/preprocess/parser_raw.ml" in - let ty = - let ltys = - let xs = -# 253 "" - ( List.rev xs ) -# 95839 "src/ocaml/preprocess/parser_raw.ml" - in + let tuple_with_modes = + let m1 = + let _1 = _1_inlined1 in + +# 4683 "src/ocaml/preprocess/parser_raw.mly" + (_1) +# 97921 "src/ocaml/preprocess/parser_raw.ml" + in + let ty = + let ltys = + let xs = +# 264 "" + ( List.rev xs ) +# 97929 "src/ocaml/preprocess/parser_raw.ml" + in + # 1450 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 95844 "src/ocaml/preprocess/parser_raw.ml" +# 97934 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 4754 "src/ocaml/preprocess/parser_raw.mly" +# 4765 "src/ocaml/preprocess/parser_raw.mly" ( ty, ltys ) -# 95850 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_ty_ = _endpos_xs_ in - let m0 = - let _1 = -# 4648 "src/ocaml/preprocess/parser_raw.mly" +# 97940 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_ty_ = _endpos_xs_ in + let m0 = + let _1 = +# 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 95858 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4653 "src/ocaml/preprocess/parser_raw.mly" +# 97948 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 95863 "src/ocaml/preprocess/parser_raw.ml" +# 97953 "src/ocaml/preprocess/parser_raw.ml" + + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 95873 "src/ocaml/preprocess/parser_raw.ml" +# 97963 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 4604 "src/ocaml/preprocess/parser_raw.mly" +# 4615 "src/ocaml/preprocess/parser_raw.mly" ( let (tuple, tuple_loc), arg_modes = tuple_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in let ty, ltys = tuple in @@ -95886,24 +97976,25 @@ module Tables = struct arg_modes, ret_modes) ) -# 95890 "src/ocaml/preprocess/parser_raw.ml" +# 97980 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 95900 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4617 "src/ocaml/preprocess/parser_raw.mly" +# 97990 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4628 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 95906 "src/ocaml/preprocess/parser_raw.ml" - in +# 97996 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -95986,88 +98077,89 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 95990 "src/ocaml/preprocess/parser_raw.ml" +# 98081 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos__1_inlined2_ in - let _v : (Parsetree.core_type) = let _1 = + let _v = let _1 = - let codomain_with_modes = - let (_endpos_ty_, _startpos_ty_, _1, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, _1_inlined2, ty_inlined1) in - let m1 = -# 4672 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let codomain_with_modes = + let (_endpos_ty_, _startpos_ty_, _1, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, _1_inlined2, ty_inlined1) in + let m1 = +# 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 96002 "src/ocaml/preprocess/parser_raw.ml" - in - let m0 = -# 4652 "src/ocaml/preprocess/parser_raw.mly" +# 98094 "src/ocaml/preprocess/parser_raw.ml" + in + let m0 = +# 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 96007 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 98099 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 96016 "src/ocaml/preprocess/parser_raw.ml" - - in - let tuple_with_modes = - let m1 = - let _1 = _1_inlined1 in - -# 4672 "src/ocaml/preprocess/parser_raw.mly" - (_1) -# 96025 "src/ocaml/preprocess/parser_raw.ml" +# 98108 "src/ocaml/preprocess/parser_raw.ml" in - let ty = - let ltys = - let xs = -# 253 "" - ( List.rev xs ) -# 96033 "src/ocaml/preprocess/parser_raw.ml" - in + let tuple_with_modes = + let m1 = + let _1 = _1_inlined1 in + +# 4683 "src/ocaml/preprocess/parser_raw.mly" + (_1) +# 98117 "src/ocaml/preprocess/parser_raw.ml" + in + let ty = + let ltys = + let xs = +# 264 "" + ( List.rev xs ) +# 98125 "src/ocaml/preprocess/parser_raw.ml" + in + # 1450 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 96038 "src/ocaml/preprocess/parser_raw.ml" +# 98130 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 4754 "src/ocaml/preprocess/parser_raw.mly" +# 4765 "src/ocaml/preprocess/parser_raw.mly" ( ty, ltys ) -# 96044 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_ty_ = _endpos_xs_ in - let m0 = - let _1 = -# 4648 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 96052 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4653 "src/ocaml/preprocess/parser_raw.mly" +# 98136 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_ty_ = _endpos_xs_ in + let m0 = + let _1 = +# 4659 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 98144 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 96057 "src/ocaml/preprocess/parser_raw.ml" +# 98149 "src/ocaml/preprocess/parser_raw.ml" + + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 96067 "src/ocaml/preprocess/parser_raw.ml" +# 98159 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 4604 "src/ocaml/preprocess/parser_raw.mly" +# 4615 "src/ocaml/preprocess/parser_raw.mly" ( let (tuple, tuple_loc), arg_modes = tuple_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in let ty, ltys = tuple in @@ -96080,24 +98172,25 @@ module Tables = struct arg_modes, ret_modes) ) -# 96084 "src/ocaml/preprocess/parser_raw.ml" +# 98176 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined2_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined2_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 96094 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4617 "src/ocaml/preprocess/parser_raw.mly" +# 98186 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4628 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 96100 "src/ocaml/preprocess/parser_raw.ml" - in +# 98192 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -96180,95 +98273,96 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 96184 "src/ocaml/preprocess/parser_raw.ml" +# 98277 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos_ty_inlined1_ in - let _v : (Parsetree.core_type) = let _1 = + let _v = let _1 = - let codomain_with_modes = - let (_endpos_ty_, _startpos_ty_, ty, _1) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1, _1_inlined2) in - let m1 = -# 4671 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let codomain_with_modes = + let (_endpos_ty_, _startpos_ty_, ty, _1) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1, _1_inlined2) in + let m1 = +# 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 96196 "src/ocaml/preprocess/parser_raw.ml" - in - let m0 = - let _1 = -# 4648 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 96202 "src/ocaml/preprocess/parser_raw.ml" +# 98290 "src/ocaml/preprocess/parser_raw.ml" in - -# 4653 "src/ocaml/preprocess/parser_raw.mly" + let m0 = + let _1 = +# 4659 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 98296 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 96207 "src/ocaml/preprocess/parser_raw.ml" +# 98301 "src/ocaml/preprocess/parser_raw.ml" + + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 96217 "src/ocaml/preprocess/parser_raw.ml" - - in - let tuple_with_modes = - let m1 = - let _1 = _1_inlined1 in - -# 4672 "src/ocaml/preprocess/parser_raw.mly" - (_1) -# 96226 "src/ocaml/preprocess/parser_raw.ml" +# 98311 "src/ocaml/preprocess/parser_raw.ml" in - let ty = - let ltys = - let xs = -# 253 "" - ( List.rev xs ) -# 96234 "src/ocaml/preprocess/parser_raw.ml" - in + let tuple_with_modes = + let m1 = + let _1 = _1_inlined1 in + +# 4683 "src/ocaml/preprocess/parser_raw.mly" + (_1) +# 98320 "src/ocaml/preprocess/parser_raw.ml" + in + let ty = + let ltys = + let xs = +# 264 "" + ( List.rev xs ) +# 98328 "src/ocaml/preprocess/parser_raw.ml" + in + # 1450 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 96239 "src/ocaml/preprocess/parser_raw.ml" +# 98333 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 4754 "src/ocaml/preprocess/parser_raw.mly" +# 4765 "src/ocaml/preprocess/parser_raw.mly" ( ty, ltys ) -# 96245 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_ty_ = _endpos_xs_ in - let m0 = - let _1 = -# 4648 "src/ocaml/preprocess/parser_raw.mly" +# 98339 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_ty_ = _endpos_xs_ in + let m0 = + let _1 = +# 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 96253 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4653 "src/ocaml/preprocess/parser_raw.mly" +# 98347 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 96258 "src/ocaml/preprocess/parser_raw.ml" +# 98352 "src/ocaml/preprocess/parser_raw.ml" + + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 96268 "src/ocaml/preprocess/parser_raw.ml" +# 98362 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 4604 "src/ocaml/preprocess/parser_raw.mly" +# 4615 "src/ocaml/preprocess/parser_raw.mly" ( let (tuple, tuple_loc), arg_modes = tuple_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in let ty, ltys = tuple in @@ -96281,24 +98375,25 @@ module Tables = struct arg_modes, ret_modes) ) -# 96285 "src/ocaml/preprocess/parser_raw.ml" +# 98379 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 96295 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4617 "src/ocaml/preprocess/parser_raw.mly" +# 98389 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4628 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 96301 "src/ocaml/preprocess/parser_raw.ml" - in +# 98395 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -96388,98 +98483,99 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 96392 "src/ocaml/preprocess/parser_raw.ml" +# 98487 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos__1_inlined3_ in - let _v : (Parsetree.core_type) = let _1 = + let _v = let _1 = - let codomain_with_modes = - let (_endpos_ty_, _startpos_ty_, _1_inlined1, ty, _1) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, _1_inlined3, ty_inlined1, _1_inlined2) in - let m1 = - let _1 = _1_inlined1 in - -# 4672 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let codomain_with_modes = + let (_endpos_ty_, _startpos_ty_, _1_inlined1, ty, _1) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, _1_inlined3, ty_inlined1, _1_inlined2) in + let m1 = + let _1 = _1_inlined1 in + +# 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 96406 "src/ocaml/preprocess/parser_raw.ml" - - in - let m0 = - let _1 = -# 4648 "src/ocaml/preprocess/parser_raw.mly" +# 98502 "src/ocaml/preprocess/parser_raw.ml" + + in + let m0 = + let _1 = +# 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 96413 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4653 "src/ocaml/preprocess/parser_raw.mly" +# 98509 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 96418 "src/ocaml/preprocess/parser_raw.ml" +# 98514 "src/ocaml/preprocess/parser_raw.ml" + + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 96428 "src/ocaml/preprocess/parser_raw.ml" - - in - let tuple_with_modes = - let m1 = - let _1 = _1_inlined1 in - -# 4672 "src/ocaml/preprocess/parser_raw.mly" - (_1) -# 96437 "src/ocaml/preprocess/parser_raw.ml" +# 98524 "src/ocaml/preprocess/parser_raw.ml" in - let ty = - let ltys = - let xs = -# 253 "" - ( List.rev xs ) -# 96445 "src/ocaml/preprocess/parser_raw.ml" - in + let tuple_with_modes = + let m1 = + let _1 = _1_inlined1 in +# 4683 "src/ocaml/preprocess/parser_raw.mly" + (_1) +# 98533 "src/ocaml/preprocess/parser_raw.ml" + + in + let ty = + let ltys = + let xs = +# 264 "" + ( List.rev xs ) +# 98541 "src/ocaml/preprocess/parser_raw.ml" + in + # 1450 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 96450 "src/ocaml/preprocess/parser_raw.ml" +# 98546 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 4754 "src/ocaml/preprocess/parser_raw.mly" +# 4765 "src/ocaml/preprocess/parser_raw.mly" ( ty, ltys ) -# 96456 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_ty_ = _endpos_xs_ in - let m0 = - let _1 = -# 4648 "src/ocaml/preprocess/parser_raw.mly" +# 98552 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_ty_ = _endpos_xs_ in + let m0 = + let _1 = +# 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 96464 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4653 "src/ocaml/preprocess/parser_raw.mly" +# 98560 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 96469 "src/ocaml/preprocess/parser_raw.ml" +# 98565 "src/ocaml/preprocess/parser_raw.ml" + + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - -# 4676 "src/ocaml/preprocess/parser_raw.mly" +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 96479 "src/ocaml/preprocess/parser_raw.ml" +# 98575 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 4604 "src/ocaml/preprocess/parser_raw.mly" +# 4615 "src/ocaml/preprocess/parser_raw.mly" ( let (tuple, tuple_loc), arg_modes = tuple_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in let ty, ltys = tuple in @@ -96492,24 +98588,25 @@ module Tables = struct arg_modes, ret_modes) ) -# 96496 "src/ocaml/preprocess/parser_raw.ml" +# 98592 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined3_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined3_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 96506 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4617 "src/ocaml/preprocess/parser_raw.mly" +# 98602 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4628 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 96512 "src/ocaml/preprocess/parser_raw.ml" - in +# 98608 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -96557,41 +98654,43 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 96561 "src/ocaml/preprocess/parser_raw.ml" +# 98658 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos_xs_ in - let _v : (Parsetree.core_type) = let _3 = - let ltys = - let xs = -# 253 "" + let _v = + let _3 = + let ltys = + let xs = +# 264 "" ( List.rev xs ) -# 96571 "src/ocaml/preprocess/parser_raw.ml" - in - +# 98669 "src/ocaml/preprocess/parser_raw.ml" + in + # 1450 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 96576 "src/ocaml/preprocess/parser_raw.ml" +# 98674 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 4754 "src/ocaml/preprocess/parser_raw.mly" +# 4765 "src/ocaml/preprocess/parser_raw.mly" ( ty, ltys ) -# 96582 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__3_ = _endpos_xs_ in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos_label_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 4619 "src/ocaml/preprocess/parser_raw.mly" +# 98680 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__3_ = _endpos_xs_ in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos_label_ in + let _sloc = (_symbolstartpos, _endpos) in + ( +# 4630 "src/ocaml/preprocess/parser_raw.mly" ( let ty, ltys = _3 in mktyp ~loc:_sloc (Ptyp_tuple ((Some label, ty) :: ltys)) ) -# 96594 "src/ocaml/preprocess/parser_raw.ml" - in +# 98692 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -96612,45 +98711,47 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_xss_ in let _endpos = _endpos_xss_ in - let _v : (Parsetree.structure) = let _1 = + let _v = let _1 = - let ys = -# 260 "" + let _1 = + let ys = +# 271 "" ( List.flatten xss ) -# 96621 "src/ocaml/preprocess/parser_raw.ml" - in - let xs = - let items = +# 98721 "src/ocaml/preprocess/parser_raw.ml" + in + let xs = + let items = # 1366 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 96627 "src/ocaml/preprocess/parser_raw.ml" - in - +# 98727 "src/ocaml/preprocess/parser_raw.ml" + in + # 1842 "src/ocaml/preprocess/parser_raw.mly" ( items ) -# 96632 "src/ocaml/preprocess/parser_raw.ml" +# 98732 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 267 "" +# 278 "" ( xs @ ys ) -# 96638 "src/ocaml/preprocess/parser_raw.ml" +# 98738 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos_xss_, _startpos_xss_) in + let _endpos = _endpos__1_ in + let _startpos = _startpos__1_ in - in - let (_endpos__1_, _startpos__1_) = (_endpos_xss_, _startpos_xss_) in - let _endpos = _endpos__1_ in - let _startpos = _startpos__1_ in - # 1288 "src/ocaml/preprocess/parser_raw.mly" ( extra_str _startpos _endpos _1 ) -# 96647 "src/ocaml/preprocess/parser_raw.ml" - - in - +# 98747 "src/ocaml/preprocess/parser_raw.ml" + + in + ( # 1835 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 96653 "src/ocaml/preprocess/parser_raw.ml" - in +# 98753 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.structure)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -96685,79 +98786,81 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_e_ in let _endpos = _endpos_xss_ in - let _v : (Parsetree.structure) = let _1 = + let _v = let _1 = - let ys = -# 260 "" + let _1 = + let ys = +# 271 "" ( List.flatten xss ) -# 96694 "src/ocaml/preprocess/parser_raw.ml" - in - let xs = - let items = - let x = - let _1 = +# 98796 "src/ocaml/preprocess/parser_raw.ml" + in + let xs = + let items = + let x = let _1 = - let attrs = -# 5388 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let attrs = +# 5399 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 96704 "src/ocaml/preprocess/parser_raw.ml" - in - +# 98806 "src/ocaml/preprocess/parser_raw.ml" + in + # 1849 "src/ocaml/preprocess/parser_raw.mly" ( mkstrexp e attrs ) -# 96709 "src/ocaml/preprocess/parser_raw.ml" +# 98811 "src/ocaml/preprocess/parser_raw.ml" + + in + let _startpos__1_ = _startpos_e_ in + let _startpos = _startpos__1_ in + +# 1300 "src/ocaml/preprocess/parser_raw.mly" + ( text_str _startpos @ [_1] ) +# 98819 "src/ocaml/preprocess/parser_raw.ml" in let _startpos__1_ = _startpos_e_ in + let _endpos = _endpos__1_ in let _startpos = _startpos__1_ in -# 1300 "src/ocaml/preprocess/parser_raw.mly" - ( text_str _startpos @ [_1] ) -# 96717 "src/ocaml/preprocess/parser_raw.ml" - - in - let _startpos__1_ = _startpos_e_ in - let _endpos = _endpos__1_ in - let _startpos = _startpos__1_ in - # 1319 "src/ocaml/preprocess/parser_raw.mly" ( mark_rhs_docs _startpos _endpos; _1 ) -# 96727 "src/ocaml/preprocess/parser_raw.ml" +# 98829 "src/ocaml/preprocess/parser_raw.ml" + + in - in - # 1368 "src/ocaml/preprocess/parser_raw.mly" ( x ) -# 96733 "src/ocaml/preprocess/parser_raw.ml" +# 98835 "src/ocaml/preprocess/parser_raw.ml" + + in - in - # 1842 "src/ocaml/preprocess/parser_raw.mly" ( items ) -# 96739 "src/ocaml/preprocess/parser_raw.ml" +# 98841 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 267 "" +# 278 "" ( xs @ ys ) -# 96745 "src/ocaml/preprocess/parser_raw.ml" +# 98847 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos_xss_, _startpos_e_) in + let _endpos = _endpos__1_ in + let _startpos = _startpos__1_ in - in - let (_endpos__1_, _startpos__1_) = (_endpos_xss_, _startpos_e_) in - let _endpos = _endpos__1_ in - let _startpos = _startpos__1_ in - # 1288 "src/ocaml/preprocess/parser_raw.mly" ( extra_str _startpos _endpos _1 ) -# 96754 "src/ocaml/preprocess/parser_raw.ml" - - in - +# 98856 "src/ocaml/preprocess/parser_raw.ml" + + in + ( # 1835 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 96760 "src/ocaml/preprocess/parser_raw.ml" - in +# 98862 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.structure)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -96778,14 +98881,16 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v : (Parsetree.structure_item) = let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let _v = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + ( # 1864 "src/ocaml/preprocess/parser_raw.mly" ( val_of_let_bindings ~loc:_sloc _1 ) -# 96788 "src/ocaml/preprocess/parser_raw.ml" - in +# 98892 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.structure_item)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -96813,42 +98918,44 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined1_ in - let _v : (Parsetree.structure_item) = let _1 = + let _v = let _1 = - let _2 = - let _1 = _1_inlined1 in - -# 5388 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let _2 = + let _1 = _1_inlined1 in + +# 5399 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 96824 "src/ocaml/preprocess/parser_raw.ml" +# 98930 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__2_ = _endpos__1_inlined1_ in + let _endpos = _endpos__2_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos__2_ = _endpos__1_inlined1_ in - let _endpos = _endpos__2_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1867 "src/ocaml/preprocess/parser_raw.mly" ( let docs = symbol_docs _sloc in Pstr_extension (_1, add_docs_attrs docs _2) ) -# 96835 "src/ocaml/preprocess/parser_raw.ml" +# 98941 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__1_ = _endpos__1_inlined1_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos__1_ = _endpos__1_inlined1_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1335 "src/ocaml/preprocess/parser_raw.mly" ( mkstr ~loc:_sloc _1 ) -# 96845 "src/ocaml/preprocess/parser_raw.ml" - - in - +# 98951 "src/ocaml/preprocess/parser_raw.ml" + + in + ( # 1899 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 96851 "src/ocaml/preprocess/parser_raw.ml" - in +# 98957 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.structure_item)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -96869,26 +98976,28 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v : (Parsetree.structure_item) = let _1 = - let _1 = + let _v = + let _1 = + let _1 = # 1870 "src/ocaml/preprocess/parser_raw.mly" ( Pstr_attribute _1 ) -# 96877 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 98985 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1335 "src/ocaml/preprocess/parser_raw.mly" ( mkstr ~loc:_sloc _1 ) -# 96885 "src/ocaml/preprocess/parser_raw.ml" - - in - +# 98993 "src/ocaml/preprocess/parser_raw.ml" + + in + ( # 1899 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 96891 "src/ocaml/preprocess/parser_raw.ml" - in +# 98999 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.structure_item)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -96909,28 +99018,30 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v : (Parsetree.structure_item) = let _1 = - let _1 = + let _v = + let _1 = + let _1 = # 1872 "src/ocaml/preprocess/parser_raw.mly" ( let name, jkind = _1 in Pstr_kind_abbrev (name, jkind) ) -# 96919 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 99029 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1335 "src/ocaml/preprocess/parser_raw.mly" ( mkstr ~loc:_sloc _1 ) -# 96927 "src/ocaml/preprocess/parser_raw.ml" - - in - +# 99037 "src/ocaml/preprocess/parser_raw.ml" + + in + ( # 1899 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 96933 "src/ocaml/preprocess/parser_raw.ml" - in +# 99043 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.structure_item)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -96951,26 +99062,28 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v : (Parsetree.structure_item) = let _1 = - let _1 = + let _v = + let _1 = + let _1 = # 1877 "src/ocaml/preprocess/parser_raw.mly" ( pstr_primitive _1 ) -# 96959 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 99071 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1352 "src/ocaml/preprocess/parser_raw.mly" ( wrap_mkstr_ext ~loc:_sloc _1 ) -# 96967 "src/ocaml/preprocess/parser_raw.ml" - - in - +# 99079 "src/ocaml/preprocess/parser_raw.ml" + + in + ( # 1899 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 96973 "src/ocaml/preprocess/parser_raw.ml" - in +# 99085 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.structure_item)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -96991,26 +99104,28 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v : (Parsetree.structure_item) = let _1 = - let _1 = + let _v = + let _1 = + let _1 = # 1879 "src/ocaml/preprocess/parser_raw.mly" ( pstr_primitive _1 ) -# 96999 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 99113 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1352 "src/ocaml/preprocess/parser_raw.mly" ( wrap_mkstr_ext ~loc:_sloc _1 ) -# 97007 "src/ocaml/preprocess/parser_raw.ml" - - in - +# 99121 "src/ocaml/preprocess/parser_raw.ml" + + in + ( # 1899 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 97013 "src/ocaml/preprocess/parser_raw.ml" - in +# 99127 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.structure_item)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -97039,48 +99154,50 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_a_ in let _endpos = _endpos_bs_ in - let _v : (Parsetree.structure_item) = let _1 = + let _v = let _1 = let _1 = let _1 = - let _1 = + let _1 = + let _1 = # 1547 "src/ocaml/preprocess/parser_raw.mly" ( let (x, b) = a in x, b :: bs ) -# 97050 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4038 "src/ocaml/preprocess/parser_raw.mly" +# 99166 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4049 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 97055 "src/ocaml/preprocess/parser_raw.ml" +# 99171 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 4021 "src/ocaml/preprocess/parser_raw.mly" +# 4032 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 97061 "src/ocaml/preprocess/parser_raw.ml" +# 99177 "src/ocaml/preprocess/parser_raw.ml" + + in - in - # 1881 "src/ocaml/preprocess/parser_raw.mly" ( pstr_type _1 ) -# 97067 "src/ocaml/preprocess/parser_raw.ml" +# 99183 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos_bs_, _startpos_a_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let (_endpos__1_, _startpos__1_) = (_endpos_bs_, _startpos_a_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1352 "src/ocaml/preprocess/parser_raw.mly" ( wrap_mkstr_ext ~loc:_sloc _1 ) -# 97077 "src/ocaml/preprocess/parser_raw.ml" - - in - +# 99193 "src/ocaml/preprocess/parser_raw.ml" + + in + ( # 1899 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 97083 "src/ocaml/preprocess/parser_raw.ml" - in +# 99199 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.structure_item)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -97157,87 +99274,89 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined3_ in - let _v : (Parsetree.structure_item) = let _1 = + let _v = let _1 = let _1 = let _1 = - let attrs2 = - let _1 = _1_inlined3 in - -# 5388 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let attrs2 = + let _1 = _1_inlined3 in + +# 5399 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 97170 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_attrs2_ = _endpos__1_inlined3_ in - let cs = +# 99288 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_attrs2_ = _endpos__1_inlined3_ in + let cs = # 1539 "src/ocaml/preprocess/parser_raw.mly" ( List.rev xs ) -# 97177 "src/ocaml/preprocess/parser_raw.ml" - in - let tid = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 99295 "src/ocaml/preprocess/parser_raw.ml" + in + let tid = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 97187 "src/ocaml/preprocess/parser_raw.ml" - - in - let _4 = -# 5220 "src/ocaml/preprocess/parser_raw.mly" +# 99305 "src/ocaml/preprocess/parser_raw.ml" + + in + let _4 = +# 5231 "src/ocaml/preprocess/parser_raw.mly" ( Recursive ) -# 97193 "src/ocaml/preprocess/parser_raw.ml" - in - let attrs1 = - let _1 = _1_inlined1 in - -# 5392 "src/ocaml/preprocess/parser_raw.mly" +# 99311 "src/ocaml/preprocess/parser_raw.ml" + in + let attrs1 = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 97200 "src/ocaml/preprocess/parser_raw.ml" +# 99318 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos_attrs2_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos = _endpos_attrs2_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 4392 "src/ocaml/preprocess/parser_raw.mly" +# 4403 "src/ocaml/preprocess/parser_raw.mly" ( let docs = symbol_docs _sloc in let attrs = attrs1 @ attrs2 in Te.mk tid cs ~params ~priv ~attrs ~docs, ext ) -# 97212 "src/ocaml/preprocess/parser_raw.ml" +# 99330 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 4375 "src/ocaml/preprocess/parser_raw.mly" +# 4386 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 97218 "src/ocaml/preprocess/parser_raw.ml" +# 99336 "src/ocaml/preprocess/parser_raw.ml" + + in - in - # 1883 "src/ocaml/preprocess/parser_raw.mly" ( pstr_typext _1 ) -# 97224 "src/ocaml/preprocess/parser_raw.ml" +# 99342 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__1_ = _endpos__1_inlined3_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos__1_ = _endpos__1_inlined3_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1352 "src/ocaml/preprocess/parser_raw.mly" ( wrap_mkstr_ext ~loc:_sloc _1 ) -# 97234 "src/ocaml/preprocess/parser_raw.ml" - - in - +# 99352 "src/ocaml/preprocess/parser_raw.ml" + + in + ( # 1899 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 97240 "src/ocaml/preprocess/parser_raw.ml" - in +# 99358 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.structure_item)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -97321,93 +99440,95 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined4_ in - let _v : (Parsetree.structure_item) = let _1 = + let _v = let _1 = let _1 = let _1 = - let attrs2 = - let _1 = _1_inlined4 in - -# 5388 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let attrs2 = + let _1 = _1_inlined4 in + +# 5399 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 97334 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_attrs2_ = _endpos__1_inlined4_ in - let cs = +# 99454 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_attrs2_ = _endpos__1_inlined4_ in + let cs = # 1539 "src/ocaml/preprocess/parser_raw.mly" ( List.rev xs ) -# 97341 "src/ocaml/preprocess/parser_raw.ml" - in - let tid = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined3_, _startpos__1_inlined3_, _1_inlined3) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 99461 "src/ocaml/preprocess/parser_raw.ml" + in + let tid = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined3_, _startpos__1_inlined3_, _1_inlined3) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 97351 "src/ocaml/preprocess/parser_raw.ml" - - in - let _4 = - let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined2_, _startpos__1_inlined2_) in - let _endpos = _endpos__1_ in - let _startpos = _startpos__1_ in - let _loc = (_startpos, _endpos) in - -# 5222 "src/ocaml/preprocess/parser_raw.mly" +# 99471 "src/ocaml/preprocess/parser_raw.ml" + + in + let _4 = + let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined2_, _startpos__1_inlined2_) in + let _endpos = _endpos__1_ in + let _startpos = _startpos__1_ in + let _loc = (_startpos, _endpos) in + +# 5233 "src/ocaml/preprocess/parser_raw.mly" ( not_expecting _loc "nonrec flag"; Recursive ) -# 97362 "src/ocaml/preprocess/parser_raw.ml" - - in - let attrs1 = - let _1 = _1_inlined1 in - -# 5392 "src/ocaml/preprocess/parser_raw.mly" +# 99482 "src/ocaml/preprocess/parser_raw.ml" + + in + let attrs1 = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 97370 "src/ocaml/preprocess/parser_raw.ml" +# 99490 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos_attrs2_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos = _endpos_attrs2_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 4392 "src/ocaml/preprocess/parser_raw.mly" +# 4403 "src/ocaml/preprocess/parser_raw.mly" ( let docs = symbol_docs _sloc in let attrs = attrs1 @ attrs2 in Te.mk tid cs ~params ~priv ~attrs ~docs, ext ) -# 97382 "src/ocaml/preprocess/parser_raw.ml" +# 99502 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 4375 "src/ocaml/preprocess/parser_raw.mly" +# 4386 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 97388 "src/ocaml/preprocess/parser_raw.ml" +# 99508 "src/ocaml/preprocess/parser_raw.ml" + + in - in - # 1883 "src/ocaml/preprocess/parser_raw.mly" ( pstr_typext _1 ) -# 97394 "src/ocaml/preprocess/parser_raw.ml" +# 99514 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__1_ = _endpos__1_inlined4_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos__1_ = _endpos__1_inlined4_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1352 "src/ocaml/preprocess/parser_raw.mly" ( wrap_mkstr_ext ~loc:_sloc _1 ) -# 97404 "src/ocaml/preprocess/parser_raw.ml" - - in - +# 99524 "src/ocaml/preprocess/parser_raw.ml" + + in + ( # 1899 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 97410 "src/ocaml/preprocess/parser_raw.ml" - in +# 99530 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.structure_item)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -97428,26 +99549,28 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v : (Parsetree.structure_item) = let _1 = - let _1 = + let _v = + let _1 = + let _1 = # 1885 "src/ocaml/preprocess/parser_raw.mly" ( pstr_exception _1 ) -# 97436 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 99558 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1352 "src/ocaml/preprocess/parser_raw.mly" ( wrap_mkstr_ext ~loc:_sloc _1 ) -# 97444 "src/ocaml/preprocess/parser_raw.ml" - - in - +# 99566 "src/ocaml/preprocess/parser_raw.ml" + + in + ( # 1899 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 97450 "src/ocaml/preprocess/parser_raw.ml" - in +# 99572 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.structure_item)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -97503,30 +99626,31 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined2_ in - let _v : (Parsetree.structure_item) = let _1 = + let _v = let _1 = let _1 = - let attrs2 = - let _1 = _1_inlined2 in - -# 5388 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let attrs2 = + let _1 = _1_inlined2 in + +# 5399 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 97515 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_attrs2_ = _endpos__1_inlined2_ in - let attrs1 = - let _1 = _1_inlined1 in - -# 5392 "src/ocaml/preprocess/parser_raw.mly" +# 99639 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_attrs2_ = _endpos__1_inlined2_ in + let attrs1 = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 97524 "src/ocaml/preprocess/parser_raw.ml" +# 99648 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos_attrs2_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos = _endpos_attrs2_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1914 "src/ocaml/preprocess/parser_raw.mly" ( let docs = symbol_docs _sloc in let loc = make_loc _sloc in @@ -97535,30 +99659,31 @@ module Tables = struct let body = maybe_pmod_constraint modes body in let body = Mb.mk name body ~attrs ~loc ~docs in Pstr_module body, ext ) -# 97539 "src/ocaml/preprocess/parser_raw.ml" +# 99663 "src/ocaml/preprocess/parser_raw.ml" + + in - in - # 1887 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 97545 "src/ocaml/preprocess/parser_raw.ml" +# 99669 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__1_ = _endpos__1_inlined2_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos__1_ = _endpos__1_inlined2_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1352 "src/ocaml/preprocess/parser_raw.mly" ( wrap_mkstr_ext ~loc:_sloc _1 ) -# 97555 "src/ocaml/preprocess/parser_raw.ml" - - in - +# 99679 "src/ocaml/preprocess/parser_raw.ml" + + in + ( # 1899 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 97561 "src/ocaml/preprocess/parser_raw.ml" - in +# 99685 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.structure_item)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -97628,32 +99753,33 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_bs_ in - let _v : (Parsetree.structure_item) = let _1 = + let _v = let _1 = let _1 = let _1 = - let a = - let attrs2 = - let _1 = _1_inlined2 in - -# 5388 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let a = + let attrs2 = + let _1 = _1_inlined2 in + +# 5399 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 97642 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_attrs2_ = _endpos__1_inlined2_ in - let attrs1 = - let _1 = _1_inlined1 in - -# 5392 "src/ocaml/preprocess/parser_raw.mly" +# 99768 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_attrs2_ = _endpos__1_inlined2_ in + let attrs1 = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 97651 "src/ocaml/preprocess/parser_raw.ml" +# 99777 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos_attrs2_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos = _endpos_attrs2_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1957 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in @@ -97664,42 +99790,43 @@ module Tables = struct ext, Mb.mk name body ~attrs ~loc ~docs ) -# 97668 "src/ocaml/preprocess/parser_raw.ml" +# 99794 "src/ocaml/preprocess/parser_raw.ml" + + in - in - # 1547 "src/ocaml/preprocess/parser_raw.mly" ( let (x, b) = a in x, b :: bs ) -# 97674 "src/ocaml/preprocess/parser_raw.ml" +# 99800 "src/ocaml/preprocess/parser_raw.ml" + + in - in - # 1945 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 97680 "src/ocaml/preprocess/parser_raw.ml" +# 99806 "src/ocaml/preprocess/parser_raw.ml" + + in - in - # 1889 "src/ocaml/preprocess/parser_raw.mly" ( pstr_recmodule _1 ) -# 97686 "src/ocaml/preprocess/parser_raw.ml" +# 99812 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__1_ = _endpos_bs_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos__1_ = _endpos_bs_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1352 "src/ocaml/preprocess/parser_raw.mly" ( wrap_mkstr_ext ~loc:_sloc _1 ) -# 97696 "src/ocaml/preprocess/parser_raw.ml" - - in - +# 99822 "src/ocaml/preprocess/parser_raw.ml" + + in + ( # 1899 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 97702 "src/ocaml/preprocess/parser_raw.ml" - in +# 99828 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.structure_item)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -97720,26 +99847,28 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v : (Parsetree.structure_item) = let _1 = - let _1 = + let _v = + let _1 = + let _1 = # 1891 "src/ocaml/preprocess/parser_raw.mly" ( let (body, ext) = _1 in (Pstr_modtype body, ext) ) -# 97728 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 99856 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1352 "src/ocaml/preprocess/parser_raw.mly" ( wrap_mkstr_ext ~loc:_sloc _1 ) -# 97736 "src/ocaml/preprocess/parser_raw.ml" - - in - +# 99864 "src/ocaml/preprocess/parser_raw.ml" + + in + ( # 1899 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 97742 "src/ocaml/preprocess/parser_raw.ml" - in +# 99870 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.structure_item)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -97760,26 +99889,28 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v : (Parsetree.structure_item) = let _1 = - let _1 = + let _v = + let _1 = + let _1 = # 1893 "src/ocaml/preprocess/parser_raw.mly" ( let (body, ext) = _1 in (Pstr_open body, ext) ) -# 97768 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 99898 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1352 "src/ocaml/preprocess/parser_raw.mly" ( wrap_mkstr_ext ~loc:_sloc _1 ) -# 97776 "src/ocaml/preprocess/parser_raw.ml" - - in - +# 99906 "src/ocaml/preprocess/parser_raw.ml" + + in + ( # 1899 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 97782 "src/ocaml/preprocess/parser_raw.ml" - in +# 99912 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.structure_item)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -97850,7 +99981,7 @@ module Tables = struct let _1_inlined2 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 97854 "src/ocaml/preprocess/parser_raw.ml" +# 99985 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined2 in let params : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = Obj.magic params in let virt : (Asttypes.virtual_flag) = Obj.magic virt in @@ -97860,43 +99991,44 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_bs_ in - let _v : (Parsetree.structure_item) = let _1 = + let _v = let _1 = let _1 = let _1 = - let a = - let attrs2 = - let _1 = _1_inlined3 in - -# 5388 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let a = + let attrs2 = + let _1 = _1_inlined3 in + +# 5399 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 97874 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_attrs2_ = _endpos__1_inlined3_ in - let id = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 100006 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_attrs2_ = _endpos__1_inlined3_ in + let id = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 97886 "src/ocaml/preprocess/parser_raw.ml" - - in - let attrs1 = - let _1 = _1_inlined1 in - -# 5392 "src/ocaml/preprocess/parser_raw.mly" +# 100018 "src/ocaml/preprocess/parser_raw.ml" + + in + let attrs1 = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 97894 "src/ocaml/preprocess/parser_raw.ml" +# 100026 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos_attrs2_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos = _endpos_attrs2_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 2350 "src/ocaml/preprocess/parser_raw.mly" ( let attrs = attrs1 @ attrs2 in @@ -97905,42 +100037,43 @@ module Tables = struct ext, Ci.mk id body ~virt ~params ~attrs ~loc ~docs ) -# 97909 "src/ocaml/preprocess/parser_raw.ml" +# 100041 "src/ocaml/preprocess/parser_raw.ml" + + in - in - # 1547 "src/ocaml/preprocess/parser_raw.mly" ( let (x, b) = a in x, b :: bs ) -# 97915 "src/ocaml/preprocess/parser_raw.ml" +# 100047 "src/ocaml/preprocess/parser_raw.ml" + + in - in - # 2339 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 97921 "src/ocaml/preprocess/parser_raw.ml" +# 100053 "src/ocaml/preprocess/parser_raw.ml" + + in - in - # 1895 "src/ocaml/preprocess/parser_raw.mly" ( let (ext, l) = _1 in (Pstr_class l, ext) ) -# 97927 "src/ocaml/preprocess/parser_raw.ml" +# 100059 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__1_ = _endpos_bs_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos__1_ = _endpos_bs_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1352 "src/ocaml/preprocess/parser_raw.mly" ( wrap_mkstr_ext ~loc:_sloc _1 ) -# 97937 "src/ocaml/preprocess/parser_raw.ml" - - in - +# 100069 "src/ocaml/preprocess/parser_raw.ml" + + in + ( # 1899 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 97943 "src/ocaml/preprocess/parser_raw.ml" - in +# 100075 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.structure_item)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -97961,26 +100094,28 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v : (Parsetree.structure_item) = let _1 = - let _1 = + let _v = + let _1 = + let _1 = # 1897 "src/ocaml/preprocess/parser_raw.mly" ( let (ext, l) = _1 in (Pstr_class_type l, ext) ) -# 97969 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 100103 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1352 "src/ocaml/preprocess/parser_raw.mly" ( wrap_mkstr_ext ~loc:_sloc _1 ) -# 97977 "src/ocaml/preprocess/parser_raw.ml" - - in - +# 100111 "src/ocaml/preprocess/parser_raw.ml" + + in + ( # 1899 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 97983 "src/ocaml/preprocess/parser_raw.ml" - in +# 100117 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.structure_item)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -98029,25 +100164,26 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_kind_ in let _endpos = _endpos__1_inlined1_ in - let _v : (Parsetree.structure_item) = let _1 = - let attrs2 = - let _1 = _1_inlined1 in - -# 5388 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _1 = + let attrs2 = + let _1 = _1_inlined1 in + +# 5399 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 98039 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_attrs2_ = _endpos__1_inlined1_ in - let attrs1 = -# 5392 "src/ocaml/preprocess/parser_raw.mly" +# 100175 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_attrs2_ = _endpos__1_inlined1_ in + let attrs1 = +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 98046 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos_attrs2_ in - let _symbolstartpos = _startpos_kind_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 100182 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos_attrs2_ in + let _symbolstartpos = _startpos_kind_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2005 "src/ocaml/preprocess/parser_raw.mly" ( let attrs = attrs1 @ attrs2 in @@ -98056,21 +100192,22 @@ module Tables = struct let incl = Incl.mk ~kind thing ~attrs ~loc ~docs in incl, ext ) -# 98060 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos_kind_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 100196 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos_kind_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + ( # 1901 "src/ocaml/preprocess/parser_raw.mly" ( let incl, ext = _1 in let item = mkstr ~loc:_sloc (Pstr_include incl) in wrap_str_ext ~loc:_sloc item ext ) -# 98073 "src/ocaml/preprocess/parser_raw.ml" - in +# 100209 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.structure_item)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -98092,9 +100229,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5297 "src/ocaml/preprocess/parser_raw.mly" +# 5308 "src/ocaml/preprocess/parser_raw.mly" ( "-" ) -# 98098 "src/ocaml/preprocess/parser_raw.ml" +# 100235 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -98117,9 +100254,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5298 "src/ocaml/preprocess/parser_raw.mly" +# 5309 "src/ocaml/preprocess/parser_raw.mly" ( "-." ) -# 98123 "src/ocaml/preprocess/parser_raw.ml" +# 100260 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -98169,54 +100306,56 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined1_ in - let _v : (Parsetree.row_field) = let _5 = - let _1 = _1_inlined1 in - -# 5392 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _5 = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 98178 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__5_ = _endpos__1_inlined1_ in - let _4 = - let _1 = - let xs = -# 253 "" - ( List.rev xs ) -# 98187 "src/ocaml/preprocess/parser_raw.ml" - in +# 100316 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__5_ = _endpos__1_inlined1_ in + let _4 = + let _1 = + let xs = +# 264 "" + ( List.rev xs ) +# 100325 "src/ocaml/preprocess/parser_raw.ml" + in + # 1450 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 98192 "src/ocaml/preprocess/parser_raw.ml" +# 100330 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 4955 "src/ocaml/preprocess/parser_raw.mly" +# 4966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 98198 "src/ocaml/preprocess/parser_raw.ml" - - in - let _1 = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 100336 "src/ocaml/preprocess/parser_raw.ml" + + in + let _1 = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 98208 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__5_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 4941 "src/ocaml/preprocess/parser_raw.mly" +# 100346 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__5_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + ( +# 4952 "src/ocaml/preprocess/parser_raw.mly" ( let info = symbol_info _endpos in let attrs = add_info_attrs info _5 in Rf.tag ~loc:(make_loc _sloc) ~attrs _1 _3 _4 ) -# 98219 "src/ocaml/preprocess/parser_raw.ml" - in +# 100357 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.row_field)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -98244,35 +100383,37 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined1_ in - let _v : (Parsetree.row_field) = let _2 = - let _1 = _1_inlined1 in - -# 5392 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _2 = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 98253 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__2_ = _endpos__1_inlined1_ in - let _1 = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 100393 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__2_ = _endpos__1_inlined1_ in + let _1 = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 98264 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__2_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 4945 "src/ocaml/preprocess/parser_raw.mly" +# 100404 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__2_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + ( +# 4956 "src/ocaml/preprocess/parser_raw.mly" ( let info = symbol_info _endpos in let attrs = add_info_attrs info _2 in Rf.tag ~loc:(make_loc _sloc) ~attrs _1 true [] ) -# 98275 "src/ocaml/preprocess/parser_raw.ml" - in +# 100415 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.row_field)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -98300,36 +100441,38 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined1_ in - let _v : (Parsetree.toplevel_phrase) = let arg = -# 124 "" + let _v = + let arg = +# 123 "" ( None ) -# 98307 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos_arg_ = _endpos__1_inlined1_ in - let dir = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 100449 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos_arg_ = _endpos__1_inlined1_ in + let dir = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 98318 "src/ocaml/preprocess/parser_raw.ml" - - in - let _1 = -# 3193 "src/ocaml/preprocess/parser_raw.mly" +# 100460 "src/ocaml/preprocess/parser_raw.ml" + + in + let _1 = +# 3204 "src/ocaml/preprocess/parser_raw.mly" ( () ) -# 98324 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos_arg_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 5183 "src/ocaml/preprocess/parser_raw.mly" +# 100466 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos_arg_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + ( +# 5194 "src/ocaml/preprocess/parser_raw.mly" ( mk_directive ~loc:_sloc dir arg ) -# 98332 "src/ocaml/preprocess/parser_raw.ml" - in +# 100474 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.toplevel_phrase)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -98361,61 +100504,63 @@ module Tables = struct let _1_inlined2 : ( # 1141 "src/ocaml/preprocess/parser_raw.mly" (string * Location.t * string option) -# 98365 "src/ocaml/preprocess/parser_raw.ml" +# 100508 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined2 in let _1_inlined1 : (string) = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined2_ in - let _v : (Parsetree.toplevel_phrase) = let arg = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in - let x = - let _1 = -# 5187 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let arg = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in + let x = + let _1 = +# 5198 "src/ocaml/preprocess/parser_raw.mly" ( let (s, _, _) = _1 in Pdir_string s ) -# 98378 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 100522 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1357 "src/ocaml/preprocess/parser_raw.mly" ( mk_directive_arg ~loc:_sloc _1 ) -# 98386 "src/ocaml/preprocess/parser_raw.ml" +# 100530 "src/ocaml/preprocess/parser_raw.ml" + + in - in - # 126 "" ( Some x ) -# 98392 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_arg_ = _endpos__1_inlined2_ in - let dir = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 100536 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_arg_ = _endpos__1_inlined2_ in + let dir = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 98404 "src/ocaml/preprocess/parser_raw.ml" - - in - let _1 = -# 3193 "src/ocaml/preprocess/parser_raw.mly" +# 100548 "src/ocaml/preprocess/parser_raw.ml" + + in + let _1 = +# 3204 "src/ocaml/preprocess/parser_raw.mly" ( () ) -# 98410 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos_arg_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 5183 "src/ocaml/preprocess/parser_raw.mly" +# 100554 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos_arg_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + ( +# 5194 "src/ocaml/preprocess/parser_raw.mly" ( mk_directive ~loc:_sloc dir arg ) -# 98418 "src/ocaml/preprocess/parser_raw.ml" - in +# 100562 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.toplevel_phrase)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -98447,61 +100592,63 @@ module Tables = struct let _1_inlined2 : ( # 1078 "src/ocaml/preprocess/parser_raw.mly" (string * char option) -# 98451 "src/ocaml/preprocess/parser_raw.ml" +# 100596 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined2 in let _1_inlined1 : (string) = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined2_ in - let _v : (Parsetree.toplevel_phrase) = let arg = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in - let x = - let _1 = -# 5188 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let arg = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in + let x = + let _1 = +# 5199 "src/ocaml/preprocess/parser_raw.mly" ( let (n, m) = _1 in Pdir_int (n ,m) ) -# 98464 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 100610 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1357 "src/ocaml/preprocess/parser_raw.mly" ( mk_directive_arg ~loc:_sloc _1 ) -# 98472 "src/ocaml/preprocess/parser_raw.ml" +# 100618 "src/ocaml/preprocess/parser_raw.ml" + + in - in - # 126 "" ( Some x ) -# 98478 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_arg_ = _endpos__1_inlined2_ in - let dir = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 100624 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_arg_ = _endpos__1_inlined2_ in + let dir = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 98490 "src/ocaml/preprocess/parser_raw.ml" - - in - let _1 = -# 3193 "src/ocaml/preprocess/parser_raw.mly" +# 100636 "src/ocaml/preprocess/parser_raw.ml" + + in + let _1 = +# 3204 "src/ocaml/preprocess/parser_raw.mly" ( () ) -# 98496 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos_arg_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 5183 "src/ocaml/preprocess/parser_raw.mly" +# 100642 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos_arg_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + ( +# 5194 "src/ocaml/preprocess/parser_raw.mly" ( mk_directive ~loc:_sloc dir arg ) -# 98504 "src/ocaml/preprocess/parser_raw.ml" - in +# 100650 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.toplevel_phrase)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -98536,54 +100683,56 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined2_ in - let _v : (Parsetree.toplevel_phrase) = let arg = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in - let x = - let _1 = -# 5189 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let arg = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in + let x = + let _1 = +# 5200 "src/ocaml/preprocess/parser_raw.mly" ( Pdir_ident _1 ) -# 98546 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 100694 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1357 "src/ocaml/preprocess/parser_raw.mly" ( mk_directive_arg ~loc:_sloc _1 ) -# 98554 "src/ocaml/preprocess/parser_raw.ml" +# 100702 "src/ocaml/preprocess/parser_raw.ml" + + in - in - # 126 "" ( Some x ) -# 98560 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_arg_ = _endpos__1_inlined2_ in - let dir = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 100708 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_arg_ = _endpos__1_inlined2_ in + let dir = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 98572 "src/ocaml/preprocess/parser_raw.ml" - - in - let _1 = -# 3193 "src/ocaml/preprocess/parser_raw.mly" +# 100720 "src/ocaml/preprocess/parser_raw.ml" + + in + let _1 = +# 3204 "src/ocaml/preprocess/parser_raw.mly" ( () ) -# 98578 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos_arg_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 5183 "src/ocaml/preprocess/parser_raw.mly" +# 100726 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos_arg_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + ( +# 5194 "src/ocaml/preprocess/parser_raw.mly" ( mk_directive ~loc:_sloc dir arg ) -# 98586 "src/ocaml/preprocess/parser_raw.ml" - in +# 100734 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.toplevel_phrase)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -98618,54 +100767,56 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined2_ in - let _v : (Parsetree.toplevel_phrase) = let arg = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in - let x = - let _1 = -# 5190 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let arg = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in + let x = + let _1 = +# 5201 "src/ocaml/preprocess/parser_raw.mly" ( Pdir_ident _1 ) -# 98628 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 100778 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1357 "src/ocaml/preprocess/parser_raw.mly" ( mk_directive_arg ~loc:_sloc _1 ) -# 98636 "src/ocaml/preprocess/parser_raw.ml" +# 100786 "src/ocaml/preprocess/parser_raw.ml" + + in - in - # 126 "" ( Some x ) -# 98642 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_arg_ = _endpos__1_inlined2_ in - let dir = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 100792 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_arg_ = _endpos__1_inlined2_ in + let dir = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 98654 "src/ocaml/preprocess/parser_raw.ml" - - in - let _1 = -# 3193 "src/ocaml/preprocess/parser_raw.mly" +# 100804 "src/ocaml/preprocess/parser_raw.ml" + + in + let _1 = +# 3204 "src/ocaml/preprocess/parser_raw.mly" ( () ) -# 98660 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos_arg_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 5183 "src/ocaml/preprocess/parser_raw.mly" +# 100810 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos_arg_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + ( +# 5194 "src/ocaml/preprocess/parser_raw.mly" ( mk_directive ~loc:_sloc dir arg ) -# 98668 "src/ocaml/preprocess/parser_raw.ml" - in +# 100818 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.toplevel_phrase)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -98700,54 +100851,56 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined2_ in - let _v : (Parsetree.toplevel_phrase) = let arg = - let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined2_, _startpos__1_inlined2_) in - let x = - let _1 = -# 5191 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let arg = + let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined2_, _startpos__1_inlined2_) in + let x = + let _1 = +# 5202 "src/ocaml/preprocess/parser_raw.mly" ( Pdir_bool false ) -# 98710 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 100862 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1357 "src/ocaml/preprocess/parser_raw.mly" ( mk_directive_arg ~loc:_sloc _1 ) -# 98718 "src/ocaml/preprocess/parser_raw.ml" +# 100870 "src/ocaml/preprocess/parser_raw.ml" + + in - in - # 126 "" ( Some x ) -# 98724 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_arg_ = _endpos__1_inlined2_ in - let dir = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 100876 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_arg_ = _endpos__1_inlined2_ in + let dir = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 98736 "src/ocaml/preprocess/parser_raw.ml" - - in - let _1 = -# 3193 "src/ocaml/preprocess/parser_raw.mly" +# 100888 "src/ocaml/preprocess/parser_raw.ml" + + in + let _1 = +# 3204 "src/ocaml/preprocess/parser_raw.mly" ( () ) -# 98742 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos_arg_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 5183 "src/ocaml/preprocess/parser_raw.mly" +# 100894 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos_arg_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + ( +# 5194 "src/ocaml/preprocess/parser_raw.mly" ( mk_directive ~loc:_sloc dir arg ) -# 98750 "src/ocaml/preprocess/parser_raw.ml" - in +# 100902 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.toplevel_phrase)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -98782,54 +100935,56 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined2_ in - let _v : (Parsetree.toplevel_phrase) = let arg = - let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined2_, _startpos__1_inlined2_) in - let x = - let _1 = -# 5192 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let arg = + let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined2_, _startpos__1_inlined2_) in + let x = + let _1 = +# 5203 "src/ocaml/preprocess/parser_raw.mly" ( Pdir_bool true ) -# 98792 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 100946 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1357 "src/ocaml/preprocess/parser_raw.mly" ( mk_directive_arg ~loc:_sloc _1 ) -# 98800 "src/ocaml/preprocess/parser_raw.ml" +# 100954 "src/ocaml/preprocess/parser_raw.ml" + + in - in - # 126 "" ( Some x ) -# 98806 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_arg_ = _endpos__1_inlined2_ in - let dir = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 100960 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_arg_ = _endpos__1_inlined2_ in + let dir = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 98818 "src/ocaml/preprocess/parser_raw.ml" - - in - let _1 = -# 3193 "src/ocaml/preprocess/parser_raw.mly" +# 100972 "src/ocaml/preprocess/parser_raw.ml" + + in + let _1 = +# 3204 "src/ocaml/preprocess/parser_raw.mly" ( () ) -# 98824 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos_arg_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 5183 "src/ocaml/preprocess/parser_raw.mly" +# 100978 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos_arg_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + ( +# 5194 "src/ocaml/preprocess/parser_raw.mly" ( mk_directive ~loc:_sloc dir arg ) -# 98832 "src/ocaml/preprocess/parser_raw.ml" - in +# 100986 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.toplevel_phrase)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -98857,36 +101012,38 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined1_ in - let _v : (Parsetree.toplevel_phrase) = let arg = -# 124 "" + let _v = + let arg = +# 123 "" ( None ) -# 98864 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos_arg_ = _endpos__1_inlined1_ in - let dir = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 101020 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos_arg_ = _endpos__1_inlined1_ in + let dir = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 98875 "src/ocaml/preprocess/parser_raw.ml" - - in - let _1 = -# 3194 "src/ocaml/preprocess/parser_raw.mly" +# 101031 "src/ocaml/preprocess/parser_raw.ml" + + in + let _1 = +# 3205 "src/ocaml/preprocess/parser_raw.mly" ( () ) -# 98881 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos_arg_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 5183 "src/ocaml/preprocess/parser_raw.mly" +# 101037 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos_arg_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + ( +# 5194 "src/ocaml/preprocess/parser_raw.mly" ( mk_directive ~loc:_sloc dir arg ) -# 98889 "src/ocaml/preprocess/parser_raw.ml" - in +# 101045 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.toplevel_phrase)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -98918,61 +101075,63 @@ module Tables = struct let _1_inlined2 : ( # 1141 "src/ocaml/preprocess/parser_raw.mly" (string * Location.t * string option) -# 98922 "src/ocaml/preprocess/parser_raw.ml" +# 101079 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined2 in let _1_inlined1 : (string) = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined2_ in - let _v : (Parsetree.toplevel_phrase) = let arg = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in - let x = - let _1 = -# 5187 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let arg = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in + let x = + let _1 = +# 5198 "src/ocaml/preprocess/parser_raw.mly" ( let (s, _, _) = _1 in Pdir_string s ) -# 98935 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 101093 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1357 "src/ocaml/preprocess/parser_raw.mly" ( mk_directive_arg ~loc:_sloc _1 ) -# 98943 "src/ocaml/preprocess/parser_raw.ml" +# 101101 "src/ocaml/preprocess/parser_raw.ml" + + in - in - # 126 "" ( Some x ) -# 98949 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_arg_ = _endpos__1_inlined2_ in - let dir = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 101107 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_arg_ = _endpos__1_inlined2_ in + let dir = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 98961 "src/ocaml/preprocess/parser_raw.ml" - - in - let _1 = -# 3194 "src/ocaml/preprocess/parser_raw.mly" +# 101119 "src/ocaml/preprocess/parser_raw.ml" + + in + let _1 = +# 3205 "src/ocaml/preprocess/parser_raw.mly" ( () ) -# 98967 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos_arg_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 5183 "src/ocaml/preprocess/parser_raw.mly" +# 101125 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos_arg_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + ( +# 5194 "src/ocaml/preprocess/parser_raw.mly" ( mk_directive ~loc:_sloc dir arg ) -# 98975 "src/ocaml/preprocess/parser_raw.ml" - in +# 101133 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.toplevel_phrase)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -99004,61 +101163,63 @@ module Tables = struct let _1_inlined2 : ( # 1078 "src/ocaml/preprocess/parser_raw.mly" (string * char option) -# 99008 "src/ocaml/preprocess/parser_raw.ml" +# 101167 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined2 in let _1_inlined1 : (string) = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined2_ in - let _v : (Parsetree.toplevel_phrase) = let arg = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in - let x = - let _1 = -# 5188 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let arg = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in + let x = + let _1 = +# 5199 "src/ocaml/preprocess/parser_raw.mly" ( let (n, m) = _1 in Pdir_int (n ,m) ) -# 99021 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 101181 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1357 "src/ocaml/preprocess/parser_raw.mly" ( mk_directive_arg ~loc:_sloc _1 ) -# 99029 "src/ocaml/preprocess/parser_raw.ml" +# 101189 "src/ocaml/preprocess/parser_raw.ml" + + in - in - # 126 "" ( Some x ) -# 99035 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_arg_ = _endpos__1_inlined2_ in - let dir = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 101195 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_arg_ = _endpos__1_inlined2_ in + let dir = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 99047 "src/ocaml/preprocess/parser_raw.ml" - - in - let _1 = -# 3194 "src/ocaml/preprocess/parser_raw.mly" +# 101207 "src/ocaml/preprocess/parser_raw.ml" + + in + let _1 = +# 3205 "src/ocaml/preprocess/parser_raw.mly" ( () ) -# 99053 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos_arg_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 5183 "src/ocaml/preprocess/parser_raw.mly" +# 101213 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos_arg_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + ( +# 5194 "src/ocaml/preprocess/parser_raw.mly" ( mk_directive ~loc:_sloc dir arg ) -# 99061 "src/ocaml/preprocess/parser_raw.ml" - in +# 101221 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.toplevel_phrase)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -99093,54 +101254,56 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined2_ in - let _v : (Parsetree.toplevel_phrase) = let arg = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in - let x = - let _1 = -# 5189 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let arg = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in + let x = + let _1 = +# 5200 "src/ocaml/preprocess/parser_raw.mly" ( Pdir_ident _1 ) -# 99103 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 101265 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1357 "src/ocaml/preprocess/parser_raw.mly" ( mk_directive_arg ~loc:_sloc _1 ) -# 99111 "src/ocaml/preprocess/parser_raw.ml" +# 101273 "src/ocaml/preprocess/parser_raw.ml" + + in - in - # 126 "" ( Some x ) -# 99117 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_arg_ = _endpos__1_inlined2_ in - let dir = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 101279 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_arg_ = _endpos__1_inlined2_ in + let dir = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 99129 "src/ocaml/preprocess/parser_raw.ml" - - in - let _1 = -# 3194 "src/ocaml/preprocess/parser_raw.mly" +# 101291 "src/ocaml/preprocess/parser_raw.ml" + + in + let _1 = +# 3205 "src/ocaml/preprocess/parser_raw.mly" ( () ) -# 99135 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos_arg_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 5183 "src/ocaml/preprocess/parser_raw.mly" +# 101297 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos_arg_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + ( +# 5194 "src/ocaml/preprocess/parser_raw.mly" ( mk_directive ~loc:_sloc dir arg ) -# 99143 "src/ocaml/preprocess/parser_raw.ml" - in +# 101305 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.toplevel_phrase)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -99175,54 +101338,56 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined2_ in - let _v : (Parsetree.toplevel_phrase) = let arg = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in - let x = - let _1 = -# 5190 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let arg = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in + let x = + let _1 = +# 5201 "src/ocaml/preprocess/parser_raw.mly" ( Pdir_ident _1 ) -# 99185 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 101349 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1357 "src/ocaml/preprocess/parser_raw.mly" ( mk_directive_arg ~loc:_sloc _1 ) -# 99193 "src/ocaml/preprocess/parser_raw.ml" +# 101357 "src/ocaml/preprocess/parser_raw.ml" + + in - in - # 126 "" ( Some x ) -# 99199 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_arg_ = _endpos__1_inlined2_ in - let dir = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 101363 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_arg_ = _endpos__1_inlined2_ in + let dir = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 99211 "src/ocaml/preprocess/parser_raw.ml" - - in - let _1 = -# 3194 "src/ocaml/preprocess/parser_raw.mly" +# 101375 "src/ocaml/preprocess/parser_raw.ml" + + in + let _1 = +# 3205 "src/ocaml/preprocess/parser_raw.mly" ( () ) -# 99217 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos_arg_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 5183 "src/ocaml/preprocess/parser_raw.mly" +# 101381 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos_arg_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + ( +# 5194 "src/ocaml/preprocess/parser_raw.mly" ( mk_directive ~loc:_sloc dir arg ) -# 99225 "src/ocaml/preprocess/parser_raw.ml" - in +# 101389 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.toplevel_phrase)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -99257,54 +101422,56 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined2_ in - let _v : (Parsetree.toplevel_phrase) = let arg = - let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined2_, _startpos__1_inlined2_) in - let x = - let _1 = -# 5191 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let arg = + let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined2_, _startpos__1_inlined2_) in + let x = + let _1 = +# 5202 "src/ocaml/preprocess/parser_raw.mly" ( Pdir_bool false ) -# 99267 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 101433 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1357 "src/ocaml/preprocess/parser_raw.mly" ( mk_directive_arg ~loc:_sloc _1 ) -# 99275 "src/ocaml/preprocess/parser_raw.ml" +# 101441 "src/ocaml/preprocess/parser_raw.ml" + + in - in - # 126 "" ( Some x ) -# 99281 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_arg_ = _endpos__1_inlined2_ in - let dir = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 101447 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_arg_ = _endpos__1_inlined2_ in + let dir = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 99293 "src/ocaml/preprocess/parser_raw.ml" - - in - let _1 = -# 3194 "src/ocaml/preprocess/parser_raw.mly" +# 101459 "src/ocaml/preprocess/parser_raw.ml" + + in + let _1 = +# 3205 "src/ocaml/preprocess/parser_raw.mly" ( () ) -# 99299 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos_arg_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 5183 "src/ocaml/preprocess/parser_raw.mly" +# 101465 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos_arg_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + ( +# 5194 "src/ocaml/preprocess/parser_raw.mly" ( mk_directive ~loc:_sloc dir arg ) -# 99307 "src/ocaml/preprocess/parser_raw.ml" - in +# 101473 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.toplevel_phrase)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -99339,54 +101506,56 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined2_ in - let _v : (Parsetree.toplevel_phrase) = let arg = - let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined2_, _startpos__1_inlined2_) in - let x = - let _1 = -# 5192 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let arg = + let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined2_, _startpos__1_inlined2_) in + let x = + let _1 = +# 5203 "src/ocaml/preprocess/parser_raw.mly" ( Pdir_bool true ) -# 99349 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 101517 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1357 "src/ocaml/preprocess/parser_raw.mly" ( mk_directive_arg ~loc:_sloc _1 ) -# 99357 "src/ocaml/preprocess/parser_raw.ml" +# 101525 "src/ocaml/preprocess/parser_raw.ml" + + in - in - # 126 "" ( Some x ) -# 99363 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_arg_ = _endpos__1_inlined2_ in - let dir = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 101531 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_arg_ = _endpos__1_inlined2_ in + let dir = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 99375 "src/ocaml/preprocess/parser_raw.ml" - - in - let _1 = -# 3194 "src/ocaml/preprocess/parser_raw.mly" +# 101543 "src/ocaml/preprocess/parser_raw.ml" + + in + let _1 = +# 3205 "src/ocaml/preprocess/parser_raw.mly" ( () ) -# 99381 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos_arg_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 5183 "src/ocaml/preprocess/parser_raw.mly" +# 101549 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos_arg_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + ( +# 5194 "src/ocaml/preprocess/parser_raw.mly" ( mk_directive ~loc:_sloc dir arg ) -# 99389 "src/ocaml/preprocess/parser_raw.ml" - in +# 101557 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.toplevel_phrase)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -99421,42 +101590,44 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_e_ in let _endpos = _endpos__2_ in - let _v : (Parsetree.toplevel_phrase) = let _1 = + let _v = let _1 = let _1 = - let attrs = -# 5388 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let attrs = +# 5399 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 99431 "src/ocaml/preprocess/parser_raw.ml" - in - +# 101601 "src/ocaml/preprocess/parser_raw.ml" + in + # 1849 "src/ocaml/preprocess/parser_raw.mly" ( mkstrexp e attrs ) -# 99436 "src/ocaml/preprocess/parser_raw.ml" +# 101606 "src/ocaml/preprocess/parser_raw.ml" + + in + let _startpos__1_ = _startpos_e_ in + let _startpos = _startpos__1_ in + +# 1300 "src/ocaml/preprocess/parser_raw.mly" + ( text_str _startpos @ [_1] ) +# 101614 "src/ocaml/preprocess/parser_raw.ml" in let _startpos__1_ = _startpos_e_ in + let _endpos = _endpos__1_ in let _startpos = _startpos__1_ in -# 1300 "src/ocaml/preprocess/parser_raw.mly" - ( text_str _startpos @ [_1] ) -# 99444 "src/ocaml/preprocess/parser_raw.ml" - - in - let _startpos__1_ = _startpos_e_ in - let _endpos = _endpos__1_ in - let _startpos = _startpos__1_ in - # 1288 "src/ocaml/preprocess/parser_raw.mly" ( extra_str _startpos _endpos _1 ) -# 99453 "src/ocaml/preprocess/parser_raw.ml" - - in - +# 101623 "src/ocaml/preprocess/parser_raw.ml" + + in + ( # 1587 "src/ocaml/preprocess/parser_raw.mly" ( Ptop_def _1 ) -# 99459 "src/ocaml/preprocess/parser_raw.ml" - in +# 101629 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.toplevel_phrase)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -99484,26 +101655,28 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_xss_ in let _endpos = _endpos__2_ in - let _v : (Parsetree.toplevel_phrase) = let _1 = - let _1 = -# 260 "" + let _v = + let _1 = + let _1 = +# 271 "" ( List.flatten xss ) -# 99492 "src/ocaml/preprocess/parser_raw.ml" - in - let (_endpos__1_, _startpos__1_) = (_endpos_xss_, _startpos_xss_) in - let _endpos = _endpos__1_ in - let _startpos = _startpos__1_ in - +# 101664 "src/ocaml/preprocess/parser_raw.ml" + in + let (_endpos__1_, _startpos__1_) = (_endpos_xss_, _startpos_xss_) in + let _endpos = _endpos__1_ in + let _startpos = _startpos__1_ in + # 1288 "src/ocaml/preprocess/parser_raw.mly" ( extra_str _startpos _endpos _1 ) -# 99500 "src/ocaml/preprocess/parser_raw.ml" - - in - +# 101672 "src/ocaml/preprocess/parser_raw.ml" + + in + ( # 1591 "src/ocaml/preprocess/parser_raw.mly" ( Ptop_def _1 ) -# 99506 "src/ocaml/preprocess/parser_raw.ml" - in +# 101678 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.toplevel_phrase)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -99534,7 +101707,7 @@ module Tables = struct let _v : (Parsetree.toplevel_phrase) = # 1595 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 99538 "src/ocaml/preprocess/parser_raw.ml" +# 101711 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -99559,7 +101732,7 @@ module Tables = struct let _v : (Parsetree.toplevel_phrase) = # 1598 "src/ocaml/preprocess/parser_raw.mly" ( raise End_of_file ) -# 99563 "src/ocaml/preprocess/parser_raw.ml" +# 101736 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -99582,9 +101755,9 @@ module Tables = struct let _startpos = _startpos_ty_ in let _endpos = _endpos_ty_ in let _v : (Parsetree.core_type) = -# 4743 "src/ocaml/preprocess/parser_raw.mly" +# 4754 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 99588 "src/ocaml/preprocess/parser_raw.ml" +# 101761 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -99620,36 +101793,38 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_ty_ in let _endpos = _endpos_xs_ in - let _v : (Parsetree.core_type) = let _1 = - let ltys = - let xs = -# 253 "" + let _v = + let _1 = + let ltys = + let xs = +# 264 "" ( List.rev xs ) -# 99629 "src/ocaml/preprocess/parser_raw.ml" - in - +# 101803 "src/ocaml/preprocess/parser_raw.ml" + in + # 1450 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 99634 "src/ocaml/preprocess/parser_raw.ml" +# 101808 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 4754 "src/ocaml/preprocess/parser_raw.mly" +# 4765 "src/ocaml/preprocess/parser_raw.mly" ( ty, ltys ) -# 99640 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos_xs_, _startpos_ty_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 4745 "src/ocaml/preprocess/parser_raw.mly" +# 101814 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos_xs_, _startpos_ty_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + ( +# 4756 "src/ocaml/preprocess/parser_raw.mly" ( let ty, ltys = _1 in mktyp ~loc:_sloc (Ptyp_tuple ((None, ty) :: ltys)) ) -# 99652 "src/ocaml/preprocess/parser_raw.ml" - in +# 101826 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -99678,9 +101853,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Parsetree.type_constraint) = -# 3666 "src/ocaml/preprocess/parser_raw.mly" +# 3677 "src/ocaml/preprocess/parser_raw.mly" ( Pconstraint _2 ) -# 99684 "src/ocaml/preprocess/parser_raw.ml" +# 101859 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -99724,9 +101899,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in let _v : (Parsetree.type_constraint) = -# 3667 "src/ocaml/preprocess/parser_raw.mly" +# 3678 "src/ocaml/preprocess/parser_raw.mly" ( Pcoerce (Some _2, _4) ) -# 99730 "src/ocaml/preprocess/parser_raw.ml" +# 101905 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -99756,9 +101931,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Parsetree.type_constraint) = -# 3668 "src/ocaml/preprocess/parser_raw.mly" +# 3679 "src/ocaml/preprocess/parser_raw.mly" ( Pcoerce (None, _2) ) -# 99762 "src/ocaml/preprocess/parser_raw.ml" +# 101937 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -99774,9 +101949,9 @@ module Tables = struct let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in let _endpos = _startpos in let _v : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) = -# 4120 "src/ocaml/preprocess/parser_raw.mly" +# 4131 "src/ocaml/preprocess/parser_raw.mly" ( (Ptype_abstract, Public, None) ) -# 99780 "src/ocaml/preprocess/parser_raw.ml" +# 101955 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -99806,9 +101981,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) = -# 4122 "src/ocaml/preprocess/parser_raw.mly" +# 4133 "src/ocaml/preprocess/parser_raw.mly" ( _2 ) -# 99812 "src/ocaml/preprocess/parser_raw.ml" +# 101987 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -99831,9 +102006,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Longident.t) = -# 5138 "src/ocaml/preprocess/parser_raw.mly" +# 5149 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 99837 "src/ocaml/preprocess/parser_raw.ml" +# 102012 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -99876,43 +102051,45 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined2_ in - let _v : (Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) = let _3 = - let _1 = _1_inlined2 in - -# 5392 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _3 = + let _1 = _1_inlined2 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 99885 "src/ocaml/preprocess/parser_raw.ml" - - in - let _2 = - let _startpos__1_ = _startpos__1_inlined1_ in - let _1 = - let _1 = -# 4214 "src/ocaml/preprocess/parser_raw.mly" - ( Ptyp_var (tyvar, None) ) -# 99894 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos__1_ = _endpos_tyvar_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 102061 "src/ocaml/preprocess/parser_raw.ml" + in + let _2 = + let _startpos__1_ = _startpos__1_inlined1_ in + let _1 = + let _1 = +# 4225 "src/ocaml/preprocess/parser_raw.mly" + ( Ptyp_var (tyvar, None) ) +# 102070 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos_tyvar_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 99903 "src/ocaml/preprocess/parser_raw.ml" +# 102079 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 4217 "src/ocaml/preprocess/parser_raw.mly" +# 4228 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 99909 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4208 "src/ocaml/preprocess/parser_raw.mly" +# 102085 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4219 "src/ocaml/preprocess/parser_raw.mly" ( {_2 with ptyp_attributes = _3}, _1 ) -# 99915 "src/ocaml/preprocess/parser_raw.ml" - in +# 102091 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity))) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -99947,42 +102124,44 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined2_ in - let _v : (Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) = let _3 = - let _1 = _1_inlined2 in - -# 5392 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _3 = + let _1 = _1_inlined2 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 99956 "src/ocaml/preprocess/parser_raw.ml" - - in - let _2 = - let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos__1_inlined1_) in - let _1 = - let _1 = -# 4216 "src/ocaml/preprocess/parser_raw.mly" - ( Ptyp_any None ) -# 99965 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 102134 "src/ocaml/preprocess/parser_raw.ml" + in + let _2 = + let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos__1_inlined1_) in + let _1 = + let _1 = +# 4227 "src/ocaml/preprocess/parser_raw.mly" + ( Ptyp_any None ) +# 102143 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 99973 "src/ocaml/preprocess/parser_raw.ml" +# 102151 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 4217 "src/ocaml/preprocess/parser_raw.mly" +# 4228 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 99979 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4208 "src/ocaml/preprocess/parser_raw.mly" +# 102157 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4219 "src/ocaml/preprocess/parser_raw.mly" ( {_2 with ptyp_attributes = _3}, _1 ) -# 99985 "src/ocaml/preprocess/parser_raw.ml" - in +# 102163 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity))) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -99997,9 +102176,9 @@ module Tables = struct let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in let _endpos = _startpos in let _v : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = -# 4130 "src/ocaml/preprocess/parser_raw.mly" +# 4141 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 100003 "src/ocaml/preprocess/parser_raw.ml" +# 102182 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -100022,9 +102201,9 @@ module Tables = struct let _startpos = _startpos_p_ in let _endpos = _endpos_p_ in let _v : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = -# 4132 "src/ocaml/preprocess/parser_raw.mly" +# 4143 "src/ocaml/preprocess/parser_raw.mly" ( [p] ) -# 100028 "src/ocaml/preprocess/parser_raw.ml" +# 102207 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -100060,23 +102239,25 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in - let _v : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = let ps = - let xs = -# 253 "" + let _v = + let ps = + let xs = +# 264 "" ( List.rev xs ) -# 100068 "src/ocaml/preprocess/parser_raw.ml" - in - +# 102248 "src/ocaml/preprocess/parser_raw.ml" + in + # 1450 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 100073 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4136 "src/ocaml/preprocess/parser_raw.mly" +# 102253 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4147 "src/ocaml/preprocess/parser_raw.mly" ( ps ) -# 100079 "src/ocaml/preprocess/parser_raw.ml" - in +# 102259 "src/ocaml/preprocess/parser_raw.ml" + : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -100103,15 +102284,15 @@ module Tables = struct let _1 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 100107 "src/ocaml/preprocess/parser_raw.ml" +# 102288 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (string) = -# 5135 "src/ocaml/preprocess/parser_raw.mly" +# 5146 "src/ocaml/preprocess/parser_raw.mly" ( _1 ^ "#" ) -# 100115 "src/ocaml/preprocess/parser_raw.ml" +# 102296 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -100132,15 +102313,15 @@ module Tables = struct let _1 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 100136 "src/ocaml/preprocess/parser_raw.ml" +# 102317 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5132 "src/ocaml/preprocess/parser_raw.mly" +# 5143 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 100144 "src/ocaml/preprocess/parser_raw.ml" +# 102325 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -100163,9 +102344,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Longident.t) = -# 5141 "src/ocaml/preprocess/parser_raw.mly" +# 5152 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 100169 "src/ocaml/preprocess/parser_raw.ml" +# 102350 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -100181,9 +102362,9 @@ module Tables = struct let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in let _endpos = _startpos in let _v : (Asttypes.variance * Asttypes.injectivity) = -# 4228 "src/ocaml/preprocess/parser_raw.mly" +# 4239 "src/ocaml/preprocess/parser_raw.mly" ( NoVariance, NoInjectivity ) -# 100187 "src/ocaml/preprocess/parser_raw.ml" +# 102368 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -100206,9 +102387,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Asttypes.variance * Asttypes.injectivity) = -# 4229 "src/ocaml/preprocess/parser_raw.mly" +# 4240 "src/ocaml/preprocess/parser_raw.mly" ( Covariant, NoInjectivity ) -# 100212 "src/ocaml/preprocess/parser_raw.ml" +# 102393 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -100231,9 +102412,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Asttypes.variance * Asttypes.injectivity) = -# 4230 "src/ocaml/preprocess/parser_raw.mly" +# 4241 "src/ocaml/preprocess/parser_raw.mly" ( Contravariant, NoInjectivity ) -# 100237 "src/ocaml/preprocess/parser_raw.ml" +# 102418 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -100256,9 +102437,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Asttypes.variance * Asttypes.injectivity) = -# 4231 "src/ocaml/preprocess/parser_raw.mly" +# 4242 "src/ocaml/preprocess/parser_raw.mly" ( NoVariance, Injective ) -# 100262 "src/ocaml/preprocess/parser_raw.ml" +# 102443 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -100288,9 +102469,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Asttypes.variance * Asttypes.injectivity) = -# 4232 "src/ocaml/preprocess/parser_raw.mly" +# 4243 "src/ocaml/preprocess/parser_raw.mly" ( Covariant, Injective ) -# 100294 "src/ocaml/preprocess/parser_raw.ml" +# 102475 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -100320,9 +102501,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Asttypes.variance * Asttypes.injectivity) = -# 4232 "src/ocaml/preprocess/parser_raw.mly" +# 4243 "src/ocaml/preprocess/parser_raw.mly" ( Covariant, Injective ) -# 100326 "src/ocaml/preprocess/parser_raw.ml" +# 102507 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -100352,9 +102533,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Asttypes.variance * Asttypes.injectivity) = -# 4233 "src/ocaml/preprocess/parser_raw.mly" +# 4244 "src/ocaml/preprocess/parser_raw.mly" ( Contravariant, Injective ) -# 100358 "src/ocaml/preprocess/parser_raw.ml" +# 102539 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -100384,9 +102565,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Asttypes.variance * Asttypes.injectivity) = -# 4233 "src/ocaml/preprocess/parser_raw.mly" +# 4244 "src/ocaml/preprocess/parser_raw.mly" ( Contravariant, Injective ) -# 100390 "src/ocaml/preprocess/parser_raw.ml" +# 102571 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -100407,20 +102588,22 @@ module Tables = struct let _1 : ( # 1070 "src/ocaml/preprocess/parser_raw.mly" (string) -# 100411 "src/ocaml/preprocess/parser_raw.ml" +# 102592 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v : (Asttypes.variance * Asttypes.injectivity) = let _loc__1_ = (_startpos__1_, _endpos__1_) in - -# 4235 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _loc__1_ = (_startpos__1_, _endpos__1_) in + ( +# 4246 "src/ocaml/preprocess/parser_raw.mly" ( if _1 = "+!" then Covariant, Injective else if _1 = "-!" then Contravariant, Injective else (expecting _loc__1_ "type_variance"; NoVariance, NoInjectivity) ) -# 100423 "src/ocaml/preprocess/parser_raw.ml" - in +# 102605 "src/ocaml/preprocess/parser_raw.ml" + : (Asttypes.variance * Asttypes.injectivity)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -100440,20 +102623,22 @@ module Tables = struct let _1 : ( # 1124 "src/ocaml/preprocess/parser_raw.mly" (string) -# 100444 "src/ocaml/preprocess/parser_raw.ml" +# 102627 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v : (Asttypes.variance * Asttypes.injectivity) = let _loc__1_ = (_startpos__1_, _endpos__1_) in - -# 4240 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _loc__1_ = (_startpos__1_, _endpos__1_) in + ( +# 4251 "src/ocaml/preprocess/parser_raw.mly" ( if _1 = "!+" then Covariant, Injective else if _1 = "!-" then Contravariant, Injective else (expecting _loc__1_ "type_variance"; NoVariance, NoInjectivity) ) -# 100456 "src/ocaml/preprocess/parser_raw.ml" - in +# 102640 "src/ocaml/preprocess/parser_raw.ml" + : (Asttypes.variance * Asttypes.injectivity)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -100473,19 +102658,21 @@ module Tables = struct let _1 : ( # 1079 "src/ocaml/preprocess/parser_raw.mly" (string * char option) -# 100477 "src/ocaml/preprocess/parser_raw.ml" +# 102662 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v : (Parsetree.constant) = let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 5012 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + ( +# 5023 "src/ocaml/preprocess/parser_raw.mly" ( unboxed_int _sloc _sloc Positive _1 ) -# 100488 "src/ocaml/preprocess/parser_raw.ml" - in +# 102674 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.constant)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -100505,15 +102692,15 @@ module Tables = struct let _1 : ( # 1052 "src/ocaml/preprocess/parser_raw.mly" (string * char option) -# 100509 "src/ocaml/preprocess/parser_raw.ml" +# 102696 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Parsetree.constant) = -# 5013 "src/ocaml/preprocess/parser_raw.mly" +# 5024 "src/ocaml/preprocess/parser_raw.mly" ( unboxed_float Positive _1 ) -# 100517 "src/ocaml/preprocess/parser_raw.ml" +# 102704 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -100542,45 +102729,47 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_xss_ in let _endpos = _endpos__2_ in - let _v : (Parsetree.toplevel_phrase list) = let _1 = + let _v = let _1 = - let ys = -# 260 "" + let _1 = + let ys = +# 271 "" ( List.flatten xss ) -# 100551 "src/ocaml/preprocess/parser_raw.ml" - in - let xs = - let _1 = +# 102739 "src/ocaml/preprocess/parser_raw.ml" + in + let xs = + let _1 = # 1366 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 100557 "src/ocaml/preprocess/parser_raw.ml" - in - +# 102745 "src/ocaml/preprocess/parser_raw.ml" + in + # 1618 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 100562 "src/ocaml/preprocess/parser_raw.ml" +# 102750 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 267 "" +# 278 "" ( xs @ ys ) -# 100568 "src/ocaml/preprocess/parser_raw.ml" +# 102756 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos_xss_, _startpos_xss_) in + let _endpos = _endpos__1_ in + let _startpos = _startpos__1_ in - in - let (_endpos__1_, _startpos__1_) = (_endpos_xss_, _startpos_xss_) in - let _endpos = _endpos__1_ in - let _startpos = _startpos__1_ in - # 1292 "src/ocaml/preprocess/parser_raw.mly" ( extra_def _startpos _endpos _1 ) -# 100577 "src/ocaml/preprocess/parser_raw.ml" - - in - +# 102765 "src/ocaml/preprocess/parser_raw.ml" + + in + ( # 1611 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 100583 "src/ocaml/preprocess/parser_raw.ml" - in +# 102771 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.toplevel_phrase list)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -100622,75 +102811,77 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_e_ in let _endpos = _endpos__2_ in - let _v : (Parsetree.toplevel_phrase list) = let _1 = + let _v = let _1 = - let ys = -# 260 "" + let _1 = + let ys = +# 271 "" ( List.flatten xss ) -# 100631 "src/ocaml/preprocess/parser_raw.ml" - in - let xs = - let _1 = - let x = - let _1 = +# 102821 "src/ocaml/preprocess/parser_raw.ml" + in + let xs = + let _1 = + let x = let _1 = - let attrs = -# 5388 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let attrs = +# 5399 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 100641 "src/ocaml/preprocess/parser_raw.ml" - in - +# 102831 "src/ocaml/preprocess/parser_raw.ml" + in + # 1849 "src/ocaml/preprocess/parser_raw.mly" ( mkstrexp e attrs ) -# 100646 "src/ocaml/preprocess/parser_raw.ml" +# 102836 "src/ocaml/preprocess/parser_raw.ml" + + in - in - # 1310 "src/ocaml/preprocess/parser_raw.mly" ( Ptop_def [_1] ) -# 100652 "src/ocaml/preprocess/parser_raw.ml" +# 102842 "src/ocaml/preprocess/parser_raw.ml" + + in + let _startpos__1_ = _startpos_e_ in + let _startpos = _startpos__1_ in - in - let _startpos__1_ = _startpos_e_ in - let _startpos = _startpos__1_ in - # 1308 "src/ocaml/preprocess/parser_raw.mly" ( text_def _startpos @ [_1] ) -# 100660 "src/ocaml/preprocess/parser_raw.ml" +# 102850 "src/ocaml/preprocess/parser_raw.ml" + + in - in - # 1368 "src/ocaml/preprocess/parser_raw.mly" ( x ) -# 100666 "src/ocaml/preprocess/parser_raw.ml" +# 102856 "src/ocaml/preprocess/parser_raw.ml" + + in - in - # 1618 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 100672 "src/ocaml/preprocess/parser_raw.ml" +# 102862 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 267 "" +# 278 "" ( xs @ ys ) -# 100678 "src/ocaml/preprocess/parser_raw.ml" +# 102868 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos_xss_, _startpos_e_) in + let _endpos = _endpos__1_ in + let _startpos = _startpos__1_ in - in - let (_endpos__1_, _startpos__1_) = (_endpos_xss_, _startpos_e_) in - let _endpos = _endpos__1_ in - let _startpos = _startpos__1_ in - # 1292 "src/ocaml/preprocess/parser_raw.mly" ( extra_def _startpos _endpos _1 ) -# 100687 "src/ocaml/preprocess/parser_raw.ml" - - in - +# 102877 "src/ocaml/preprocess/parser_raw.ml" + + in + ( # 1611 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 100693 "src/ocaml/preprocess/parser_raw.ml" - in +# 102883 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.toplevel_phrase list)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -100726,9 +102917,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : (string) = -# 5042 "src/ocaml/preprocess/parser_raw.mly" +# 5053 "src/ocaml/preprocess/parser_raw.mly" ( _2 ) -# 100732 "src/ocaml/preprocess/parser_raw.ml" +# 102923 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -100749,15 +102940,15 @@ module Tables = struct let _1 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 100753 "src/ocaml/preprocess/parser_raw.ml" +# 102944 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5050 "src/ocaml/preprocess/parser_raw.mly" +# 5061 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 100761 "src/ocaml/preprocess/parser_raw.ml" +# 102952 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -100780,9 +102971,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5051 "src/ocaml/preprocess/parser_raw.mly" +# 5062 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 100786 "src/ocaml/preprocess/parser_raw.ml" +# 102977 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -100805,9 +102996,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Longident.t) = -# 5126 "src/ocaml/preprocess/parser_raw.mly" +# 5137 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 100811 "src/ocaml/preprocess/parser_raw.ml" +# 103002 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -100854,45 +103045,47 @@ module Tables = struct let _1_inlined1 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 100858 "src/ocaml/preprocess/parser_raw.ml" +# 103049 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined1 in let mutable_ : (Asttypes.mutable_flag) = Obj.magic mutable_ in let _1 : (Parsetree.attributes) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_ty_ in - let _v : ((string Location.loc * Asttypes.mutable_flag * Parsetree.class_field_kind) * - Parsetree.attributes) = let label = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in - let _1 = -# 4999 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let label = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in + let _1 = +# 5010 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 100871 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 103062 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 100879 "src/ocaml/preprocess/parser_raw.ml" - - in - let attrs = -# 5392 "src/ocaml/preprocess/parser_raw.mly" +# 103070 "src/ocaml/preprocess/parser_raw.ml" + + in + let attrs = +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 100885 "src/ocaml/preprocess/parser_raw.ml" - in - let _1 = -# 5290 "src/ocaml/preprocess/parser_raw.mly" +# 103076 "src/ocaml/preprocess/parser_raw.ml" + in + let _1 = +# 5301 "src/ocaml/preprocess/parser_raw.mly" ( Fresh ) -# 100890 "src/ocaml/preprocess/parser_raw.ml" - in - +# 103081 "src/ocaml/preprocess/parser_raw.ml" + in + ( # 2495 "src/ocaml/preprocess/parser_raw.mly" ( (label, mutable_, Cfk_virtual ty), attrs ) -# 100895 "src/ocaml/preprocess/parser_raw.ml" - in +# 103086 "src/ocaml/preprocess/parser_raw.ml" + : ((string Location.loc * Asttypes.mutable_flag * Parsetree.class_field_kind) * + Parsetree.attributes)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -100938,45 +103131,47 @@ module Tables = struct let _1_inlined1 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 100942 "src/ocaml/preprocess/parser_raw.ml" +# 103135 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined1 in let _3 : (Asttypes.mutable_flag) = Obj.magic _3 in let _1 : (Parsetree.attributes) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__6_ in - let _v : ((string Location.loc * Asttypes.mutable_flag * Parsetree.class_field_kind) * - Parsetree.attributes) = let _4 = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in - let _1 = -# 4999 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _4 = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in + let _1 = +# 5010 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 100955 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 103148 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 100963 "src/ocaml/preprocess/parser_raw.ml" - - in - let _2 = -# 5392 "src/ocaml/preprocess/parser_raw.mly" +# 103156 "src/ocaml/preprocess/parser_raw.ml" + + in + let _2 = +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 100969 "src/ocaml/preprocess/parser_raw.ml" - in - let _1 = -# 5293 "src/ocaml/preprocess/parser_raw.mly" +# 103162 "src/ocaml/preprocess/parser_raw.ml" + in + let _1 = +# 5304 "src/ocaml/preprocess/parser_raw.mly" ( Fresh ) -# 100974 "src/ocaml/preprocess/parser_raw.ml" - in - +# 103167 "src/ocaml/preprocess/parser_raw.ml" + in + ( # 2497 "src/ocaml/preprocess/parser_raw.mly" ( (_4, _3, Cfk_concrete (_1, _6)), _2 ) -# 100979 "src/ocaml/preprocess/parser_raw.ml" - in +# 103172 "src/ocaml/preprocess/parser_raw.ml" + : ((string Location.loc * Asttypes.mutable_flag * Parsetree.class_field_kind) * + Parsetree.attributes)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -101028,7 +103223,7 @@ module Tables = struct let _1_inlined2 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 101032 "src/ocaml/preprocess/parser_raw.ml" +# 103227 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined2 in let _3 : (Asttypes.mutable_flag) = Obj.magic _3 in let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in @@ -101036,41 +103231,43 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__6_ in - let _v : ((string Location.loc * Asttypes.mutable_flag * Parsetree.class_field_kind) * - Parsetree.attributes) = let _4 = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in - let _1 = -# 4999 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _4 = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in + let _1 = +# 5010 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 101046 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 103241 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 101054 "src/ocaml/preprocess/parser_raw.ml" - - in - let _2 = - let _1 = _1_inlined1 in - -# 5392 "src/ocaml/preprocess/parser_raw.mly" +# 103249 "src/ocaml/preprocess/parser_raw.ml" + + in + let _2 = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 101062 "src/ocaml/preprocess/parser_raw.ml" - - in - let _1 = -# 5294 "src/ocaml/preprocess/parser_raw.mly" +# 103257 "src/ocaml/preprocess/parser_raw.ml" + + in + let _1 = +# 5305 "src/ocaml/preprocess/parser_raw.mly" ( Override ) -# 101068 "src/ocaml/preprocess/parser_raw.ml" - in - +# 103263 "src/ocaml/preprocess/parser_raw.ml" + in + ( # 2497 "src/ocaml/preprocess/parser_raw.mly" ( (_4, _3, Cfk_concrete (_1, _6)), _2 ) -# 101073 "src/ocaml/preprocess/parser_raw.ml" - in +# 103268 "src/ocaml/preprocess/parser_raw.ml" + : ((string Location.loc * Asttypes.mutable_flag * Parsetree.class_field_kind) * + Parsetree.attributes)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -101123,62 +103320,64 @@ module Tables = struct let _1_inlined1 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 101127 "src/ocaml/preprocess/parser_raw.ml" +# 103324 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined1 in let _3 : (Asttypes.mutable_flag) = Obj.magic _3 in let _1 : (Parsetree.attributes) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__7_ in - let _v : ((string Location.loc * Asttypes.mutable_flag * Parsetree.class_field_kind) * - Parsetree.attributes) = let _4 = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in - let _1 = -# 4999 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _4 = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in + let _1 = +# 5010 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 101140 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 103337 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 101148 "src/ocaml/preprocess/parser_raw.ml" - - in - let _startpos__4_ = _startpos__1_inlined1_ in - let _2 = -# 5392 "src/ocaml/preprocess/parser_raw.mly" +# 103345 "src/ocaml/preprocess/parser_raw.ml" + + in + let _startpos__4_ = _startpos__1_inlined1_ in + let _2 = +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 101155 "src/ocaml/preprocess/parser_raw.ml" - in - let (_endpos__2_, _startpos__2_) = (_endpos__1_, _startpos__1_) in - let _1 = -# 5293 "src/ocaml/preprocess/parser_raw.mly" +# 103352 "src/ocaml/preprocess/parser_raw.ml" + in + let (_endpos__2_, _startpos__2_) = (_endpos__1_, _startpos__1_) in + let _1 = +# 5304 "src/ocaml/preprocess/parser_raw.mly" ( Fresh ) -# 101161 "src/ocaml/preprocess/parser_raw.ml" - in - let (_endpos__1_, _startpos__1_) = (_endpos__0_, _endpos__0_) in - let _endpos = _endpos__7_ in - let _symbolstartpos = if _startpos__1_ != _endpos__1_ then - _startpos__1_ - else - if _startpos__2_ != _endpos__2_ then - _startpos__2_ +# 103358 "src/ocaml/preprocess/parser_raw.ml" + in + let (_endpos__1_, _startpos__1_) = (_endpos__0_, _endpos__0_) in + let _endpos = _endpos__7_ in + let _symbolstartpos = if _startpos__1_ != _endpos__1_ then + _startpos__1_ else - if _startpos__3_ != _endpos__3_ then - _startpos__3_ + if _startpos__2_ != _endpos__2_ then + _startpos__2_ else - _startpos__4_ in - let _sloc = (_symbolstartpos, _endpos) in - + if _startpos__3_ != _endpos__3_ then + _startpos__3_ + else + _startpos__4_ in + let _sloc = (_symbolstartpos, _endpos) in + ( # 2500 "src/ocaml/preprocess/parser_raw.mly" ( let e = mkexp_type_constraint_with_modes ~loc:_sloc ~modes:[] _7 _5 in (_4, _3, Cfk_concrete (_1, e)), _2 ) -# 101181 "src/ocaml/preprocess/parser_raw.ml" - in +# 103378 "src/ocaml/preprocess/parser_raw.ml" + : ((string Location.loc * Asttypes.mutable_flag * Parsetree.class_field_kind) * + Parsetree.attributes)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -101237,7 +103436,7 @@ module Tables = struct let _1_inlined2 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 101241 "src/ocaml/preprocess/parser_raw.ml" +# 103440 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined2 in let _3 : (Asttypes.mutable_flag) = Obj.magic _3 in let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in @@ -101245,57 +103444,59 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__7_ in - let _v : ((string Location.loc * Asttypes.mutable_flag * Parsetree.class_field_kind) * - Parsetree.attributes) = let _4 = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in - let _1 = -# 4999 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _4 = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in + let _1 = +# 5010 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 101255 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 103454 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 101263 "src/ocaml/preprocess/parser_raw.ml" - - in - let _startpos__4_ = _startpos__1_inlined2_ in - let _2 = - let _1 = _1_inlined1 in - -# 5392 "src/ocaml/preprocess/parser_raw.mly" +# 103462 "src/ocaml/preprocess/parser_raw.ml" + + in + let _startpos__4_ = _startpos__1_inlined2_ in + let _2 = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 101272 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__2_, _startpos__2_) = (_endpos__1_inlined1_, _startpos__1_inlined1_) in - let _1 = -# 5294 "src/ocaml/preprocess/parser_raw.mly" +# 103471 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__2_, _startpos__2_) = (_endpos__1_inlined1_, _startpos__1_inlined1_) in + let _1 = +# 5305 "src/ocaml/preprocess/parser_raw.mly" ( Override ) -# 101279 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__7_ in - let _symbolstartpos = if _startpos__1_ != _endpos__1_ then - _startpos__1_ - else - if _startpos__2_ != _endpos__2_ then - _startpos__2_ +# 103478 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__7_ in + let _symbolstartpos = if _startpos__1_ != _endpos__1_ then + _startpos__1_ else - if _startpos__3_ != _endpos__3_ then - _startpos__3_ + if _startpos__2_ != _endpos__2_ then + _startpos__2_ else - _startpos__4_ in - let _sloc = (_symbolstartpos, _endpos) in - + if _startpos__3_ != _endpos__3_ then + _startpos__3_ + else + _startpos__4_ in + let _sloc = (_symbolstartpos, _endpos) in + ( # 2500 "src/ocaml/preprocess/parser_raw.mly" ( let e = mkexp_type_constraint_with_modes ~loc:_sloc ~modes:[] _7 _5 in (_4, _3, Cfk_concrete (_1, e)), _2 ) -# 101298 "src/ocaml/preprocess/parser_raw.ml" - in +# 103497 "src/ocaml/preprocess/parser_raw.ml" + : ((string Location.loc * Asttypes.mutable_flag * Parsetree.class_field_kind) * + Parsetree.attributes)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -101315,15 +103516,15 @@ module Tables = struct let _1 : ( # 1078 "src/ocaml/preprocess/parser_raw.mly" (string * char option) -# 101319 "src/ocaml/preprocess/parser_raw.ml" +# 103520 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Parsetree.constant) = -# 5005 "src/ocaml/preprocess/parser_raw.mly" +# 5016 "src/ocaml/preprocess/parser_raw.mly" ( let (n, m) = _1 in Pconst_integer (n, m) ) -# 101327 "src/ocaml/preprocess/parser_raw.ml" +# 103528 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -101344,15 +103545,15 @@ module Tables = struct let _1 : ( # 1028 "src/ocaml/preprocess/parser_raw.mly" (char) -# 101348 "src/ocaml/preprocess/parser_raw.ml" +# 103549 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Parsetree.constant) = -# 5006 "src/ocaml/preprocess/parser_raw.mly" +# 5017 "src/ocaml/preprocess/parser_raw.mly" ( Pconst_char _1 ) -# 101356 "src/ocaml/preprocess/parser_raw.ml" +# 103557 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -101373,16 +103574,16 @@ module Tables = struct let _1 : ( # 1141 "src/ocaml/preprocess/parser_raw.mly" (string * Location.t * string option) -# 101377 "src/ocaml/preprocess/parser_raw.ml" +# 103578 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Parsetree.constant) = -# 5007 "src/ocaml/preprocess/parser_raw.mly" +# 5018 "src/ocaml/preprocess/parser_raw.mly" ( let (s, strloc, d) = _1 in Pconst_string (s, strloc, d) ) -# 101386 "src/ocaml/preprocess/parser_raw.ml" +# 103587 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -101403,15 +103604,15 @@ module Tables = struct let _1 : ( # 1051 "src/ocaml/preprocess/parser_raw.mly" (string * char option) -# 101407 "src/ocaml/preprocess/parser_raw.ml" +# 103608 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Parsetree.constant) = -# 5009 "src/ocaml/preprocess/parser_raw.mly" +# 5020 "src/ocaml/preprocess/parser_raw.mly" ( let (f, m) = _1 in Pconst_float (f, m) ) -# 101415 "src/ocaml/preprocess/parser_raw.ml" +# 103616 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -101482,46 +103683,48 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined3_ in - let _v : (Parsetree.value_description * string Location.loc option) = let attrs2 = - let _1 = _1_inlined3 in - -# 5388 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let attrs2 = + let _1 = _1_inlined3 in + +# 5399 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 101491 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_attrs2_ = _endpos__1_inlined3_ in - let id = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 103693 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_attrs2_ = _endpos__1_inlined3_ in + let id = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 101503 "src/ocaml/preprocess/parser_raw.ml" - - in - let attrs1 = - let _1 = _1_inlined1 in - -# 5392 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 101511 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos_attrs2_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 3982 "src/ocaml/preprocess/parser_raw.mly" +# 103705 "src/ocaml/preprocess/parser_raw.ml" + + in + let attrs1 = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 103713 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos_attrs2_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + ( +# 3993 "src/ocaml/preprocess/parser_raw.mly" ( let attrs = attrs1 @ attrs2 in let loc = make_loc _sloc in let docs = symbol_docs _sloc in Val.mk id ty ~attrs ~modalities ~loc ~docs, ext ) -# 101524 "src/ocaml/preprocess/parser_raw.ml" - in +# 103726 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.value_description * string Location.loc option)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -101536,9 +103739,9 @@ module Tables = struct let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in let _endpos = _startpos in let _v : (Asttypes.virtual_flag) = -# 5254 "src/ocaml/preprocess/parser_raw.mly" +# 5265 "src/ocaml/preprocess/parser_raw.mly" ( Concrete ) -# 101542 "src/ocaml/preprocess/parser_raw.ml" +# 103745 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -101561,9 +103764,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Asttypes.virtual_flag) = -# 5255 "src/ocaml/preprocess/parser_raw.mly" +# 5266 "src/ocaml/preprocess/parser_raw.mly" ( Virtual ) -# 101567 "src/ocaml/preprocess/parser_raw.ml" +# 103770 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -101586,9 +103789,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Asttypes.mutable_flag) = -# 5278 "src/ocaml/preprocess/parser_raw.mly" +# 5289 "src/ocaml/preprocess/parser_raw.mly" ( Immutable ) -# 101592 "src/ocaml/preprocess/parser_raw.ml" +# 103795 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -101618,9 +103821,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Asttypes.mutable_flag) = -# 5279 "src/ocaml/preprocess/parser_raw.mly" +# 5290 "src/ocaml/preprocess/parser_raw.mly" ( Mutable ) -# 101624 "src/ocaml/preprocess/parser_raw.ml" +# 103827 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -101650,9 +103853,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Asttypes.mutable_flag) = -# 5280 "src/ocaml/preprocess/parser_raw.mly" +# 5291 "src/ocaml/preprocess/parser_raw.mly" ( Mutable ) -# 101656 "src/ocaml/preprocess/parser_raw.ml" +# 103859 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -101675,9 +103878,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Asttypes.private_flag) = -# 5285 "src/ocaml/preprocess/parser_raw.mly" +# 5296 "src/ocaml/preprocess/parser_raw.mly" ( Public ) -# 101681 "src/ocaml/preprocess/parser_raw.ml" +# 103884 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -101707,9 +103910,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Asttypes.private_flag) = -# 5286 "src/ocaml/preprocess/parser_raw.mly" +# 5297 "src/ocaml/preprocess/parser_raw.mly" ( Private ) -# 101713 "src/ocaml/preprocess/parser_raw.ml" +# 103916 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -101739,9 +103942,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Asttypes.private_flag) = -# 5287 "src/ocaml/preprocess/parser_raw.mly" +# 5298 "src/ocaml/preprocess/parser_raw.mly" ( Private ) -# 101745 "src/ocaml/preprocess/parser_raw.ml" +# 103948 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -101798,50 +104001,51 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_xs_ in - let _v : (Parsetree.with_constraint) = let _6 = - let _1 = - let xs = -# 253 "" + let _v = + let _6 = + let _1 = + let xs = +# 264 "" ( List.rev xs ) -# 101807 "src/ocaml/preprocess/parser_raw.ml" - in - +# 104011 "src/ocaml/preprocess/parser_raw.ml" + in + # 1380 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 101812 "src/ocaml/preprocess/parser_raw.ml" +# 104016 "src/ocaml/preprocess/parser_raw.ml" + + in - in - -# 4087 "src/ocaml/preprocess/parser_raw.mly" +# 4098 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 101818 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__6_ = _endpos_xs_ in - let _5 = - let _1 = _1_inlined2 in - -# 4510 "src/ocaml/preprocess/parser_raw.mly" +# 104022 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__6_ = _endpos_xs_ in + let _5 = + let _1 = _1_inlined2 in + +# 4521 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 101827 "src/ocaml/preprocess/parser_raw.ml" - - in - let _3 = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 104031 "src/ocaml/preprocess/parser_raw.ml" + + in + let _3 = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 101838 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__6_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 4425 "src/ocaml/preprocess/parser_raw.mly" +# 104042 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__6_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + ( +# 4436 "src/ocaml/preprocess/parser_raw.mly" ( let lident = loc_last _3 in Pwith_type (_3, @@ -101851,8 +104055,9 @@ module Tables = struct ~manifest:_5 ~priv:_4 ~loc:(make_loc _sloc))) ) -# 101855 "src/ocaml/preprocess/parser_raw.ml" - in +# 104059 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.with_constraint)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -101901,31 +104106,32 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined2_ in - let _v : (Parsetree.with_constraint) = let _5 = - let _1 = _1_inlined2 in - -# 4510 "src/ocaml/preprocess/parser_raw.mly" + let _v = + let _5 = + let _1 = _1_inlined2 in + +# 4521 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 101910 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__5_ = _endpos__1_inlined2_ in - let _3 = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 104116 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__5_ = _endpos__1_inlined2_ in + let _3 = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 101922 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__5_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 4438 "src/ocaml/preprocess/parser_raw.mly" +# 104128 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__5_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + ( +# 4449 "src/ocaml/preprocess/parser_raw.mly" ( let lident = loc_last _3 in Pwith_typesubst (_3, @@ -101933,8 +104139,9 @@ module Tables = struct ~params:_2 ~manifest:_5 ~loc:(make_loc _sloc))) ) -# 101937 "src/ocaml/preprocess/parser_raw.ml" - in +# 104143 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.with_constraint)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -101976,33 +104183,35 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined2_ in - let _v : (Parsetree.with_constraint) = let _4 = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let _v = + let _4 = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 101988 "src/ocaml/preprocess/parser_raw.ml" - - in - let _2 = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 104196 "src/ocaml/preprocess/parser_raw.ml" + + in + let _2 = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 101999 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4446 "src/ocaml/preprocess/parser_raw.mly" +# 104207 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4457 "src/ocaml/preprocess/parser_raw.mly" ( Pwith_module (_2, _4) ) -# 102005 "src/ocaml/preprocess/parser_raw.ml" - in +# 104213 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.with_constraint)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -102044,33 +104253,35 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined2_ in - let _v : (Parsetree.with_constraint) = let _4 = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let _v = + let _4 = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 102056 "src/ocaml/preprocess/parser_raw.ml" - - in - let _2 = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 104266 "src/ocaml/preprocess/parser_raw.ml" + + in + let _2 = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 102067 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4448 "src/ocaml/preprocess/parser_raw.mly" +# 104277 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4459 "src/ocaml/preprocess/parser_raw.mly" ( Pwith_modsubst (_2, _4) ) -# 102073 "src/ocaml/preprocess/parser_raw.ml" - in +# 104283 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.with_constraint)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -102119,22 +104330,24 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_rhs_ in - let _v : (Parsetree.with_constraint) = let l = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let _v = + let l = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 102131 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4450 "src/ocaml/preprocess/parser_raw.mly" +# 104343 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4461 "src/ocaml/preprocess/parser_raw.mly" ( Pwith_modtype (l, rhs) ) -# 102137 "src/ocaml/preprocess/parser_raw.ml" - in +# 104349 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.with_constraint)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -102183,22 +104396,24 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_rhs_ in - let _v : (Parsetree.with_constraint) = let l = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let _v = + let l = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 102195 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4452 "src/ocaml/preprocess/parser_raw.mly" +# 104409 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4463 "src/ocaml/preprocess/parser_raw.mly" ( Pwith_modtypesubst (l, rhs) ) -# 102201 "src/ocaml/preprocess/parser_raw.ml" - in +# 104415 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.with_constraint)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -102220,9 +104435,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Asttypes.private_flag) = -# 4455 "src/ocaml/preprocess/parser_raw.mly" +# 4466 "src/ocaml/preprocess/parser_raw.mly" ( Public ) -# 102226 "src/ocaml/preprocess/parser_raw.ml" +# 104441 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -102252,9 +104467,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Asttypes.private_flag) = -# 4456 "src/ocaml/preprocess/parser_raw.mly" +# 4467 "src/ocaml/preprocess/parser_raw.mly" ( Private ) -# 102258 "src/ocaml/preprocess/parser_raw.ml" +# 104473 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -102292,7 +104507,7 @@ module MenhirInterpreter = struct | T_UIDENT : ( # 1155 "src/ocaml/preprocess/parser_raw.mly" (string) -# 102296 "src/ocaml/preprocess/parser_raw.ml" +# 104511 "src/ocaml/preprocess/parser_raw.ml" ) terminal | T_TYPE : unit terminal | T_TRY : unit terminal @@ -102304,7 +104519,7 @@ module MenhirInterpreter = struct | T_STRING : ( # 1141 "src/ocaml/preprocess/parser_raw.mly" (string * Location.t * string option) -# 102308 "src/ocaml/preprocess/parser_raw.ml" +# 104523 "src/ocaml/preprocess/parser_raw.ml" ) terminal | T_STAR : unit terminal | T_STACK : unit terminal @@ -102318,12 +104533,12 @@ module MenhirInterpreter = struct | T_QUOTED_STRING_ITEM : ( # 1146 "src/ocaml/preprocess/parser_raw.mly" (string * Location.t * string * Location.t * string option) -# 102322 "src/ocaml/preprocess/parser_raw.ml" +# 104537 "src/ocaml/preprocess/parser_raw.ml" ) terminal | T_QUOTED_STRING_EXPR : ( # 1143 "src/ocaml/preprocess/parser_raw.mly" (string * Location.t * string * Location.t * string option) -# 102327 "src/ocaml/preprocess/parser_raw.ml" +# 104542 "src/ocaml/preprocess/parser_raw.ml" ) terminal | T_QUOTE : unit terminal | T_QUESTION : unit terminal @@ -102331,7 +104546,7 @@ module MenhirInterpreter = struct | T_PREFIXOP : ( # 1124 "src/ocaml/preprocess/parser_raw.mly" (string) -# 102335 "src/ocaml/preprocess/parser_raw.ml" +# 104550 "src/ocaml/preprocess/parser_raw.ml" ) terminal | T_PLUSEQ : unit terminal | T_PLUSDOT : unit terminal @@ -102342,7 +104557,7 @@ module MenhirInterpreter = struct | T_OPTLABEL : ( # 1116 "src/ocaml/preprocess/parser_raw.mly" (string) -# 102346 "src/ocaml/preprocess/parser_raw.ml" +# 104561 "src/ocaml/preprocess/parser_raw.ml" ) terminal | T_OPEN : unit terminal | T_ONCE : unit terminal @@ -102363,12 +104578,12 @@ module MenhirInterpreter = struct | T_LIDENT : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 102367 "src/ocaml/preprocess/parser_raw.ml" +# 104582 "src/ocaml/preprocess/parser_raw.ml" ) terminal | T_LETOP : ( # 1074 "src/ocaml/preprocess/parser_raw.mly" (string) -# 102372 "src/ocaml/preprocess/parser_raw.ml" +# 104587 "src/ocaml/preprocess/parser_raw.ml" ) terminal | T_LET : unit terminal | T_LESSMINUS : unit terminal @@ -102389,41 +104604,41 @@ module MenhirInterpreter = struct | T_LABEL : ( # 1082 "src/ocaml/preprocess/parser_raw.mly" (string) -# 102393 "src/ocaml/preprocess/parser_raw.ml" +# 104608 "src/ocaml/preprocess/parser_raw.ml" ) terminal | T_KIND_OF : unit terminal | T_KIND_ABBREV : unit terminal | T_INT : ( # 1078 "src/ocaml/preprocess/parser_raw.mly" (string * char option) -# 102400 "src/ocaml/preprocess/parser_raw.ml" +# 104615 "src/ocaml/preprocess/parser_raw.ml" ) terminal | T_INITIALIZER : unit terminal | T_INHERIT : unit terminal | T_INFIXOP4 : ( # 1072 "src/ocaml/preprocess/parser_raw.mly" (string) -# 102407 "src/ocaml/preprocess/parser_raw.ml" +# 104622 "src/ocaml/preprocess/parser_raw.ml" ) terminal | T_INFIXOP3 : ( # 1071 "src/ocaml/preprocess/parser_raw.mly" (string) -# 102412 "src/ocaml/preprocess/parser_raw.ml" +# 104627 "src/ocaml/preprocess/parser_raw.ml" ) terminal | T_INFIXOP2 : ( # 1070 "src/ocaml/preprocess/parser_raw.mly" (string) -# 102417 "src/ocaml/preprocess/parser_raw.ml" +# 104632 "src/ocaml/preprocess/parser_raw.ml" ) terminal | T_INFIXOP1 : ( # 1069 "src/ocaml/preprocess/parser_raw.mly" (string) -# 102422 "src/ocaml/preprocess/parser_raw.ml" +# 104637 "src/ocaml/preprocess/parser_raw.ml" ) terminal | T_INFIXOP0 : ( # 1066 "src/ocaml/preprocess/parser_raw.mly" (string) -# 102427 "src/ocaml/preprocess/parser_raw.ml" +# 104642 "src/ocaml/preprocess/parser_raw.ml" ) terminal | T_INCLUDE : unit terminal | T_IN : unit terminal @@ -102432,17 +104647,17 @@ module MenhirInterpreter = struct | T_HASH_INT : ( # 1079 "src/ocaml/preprocess/parser_raw.mly" (string * char option) -# 102436 "src/ocaml/preprocess/parser_raw.ml" +# 104651 "src/ocaml/preprocess/parser_raw.ml" ) terminal | T_HASH_FLOAT : ( # 1052 "src/ocaml/preprocess/parser_raw.mly" (string * char option) -# 102441 "src/ocaml/preprocess/parser_raw.ml" +# 104656 "src/ocaml/preprocess/parser_raw.ml" ) terminal | T_HASHOP : ( # 1137 "src/ocaml/preprocess/parser_raw.mly" (string) -# 102446 "src/ocaml/preprocess/parser_raw.ml" +# 104661 "src/ocaml/preprocess/parser_raw.ml" ) terminal | T_HASHLPAREN : unit terminal | T_HASHLBRACE : unit terminal @@ -102459,7 +104674,7 @@ module MenhirInterpreter = struct | T_FLOAT : ( # 1051 "src/ocaml/preprocess/parser_raw.mly" (string * char option) -# 102463 "src/ocaml/preprocess/parser_raw.ml" +# 104678 "src/ocaml/preprocess/parser_raw.ml" ) terminal | T_FALSE : unit terminal | T_EXTERNAL : unit terminal @@ -102475,7 +104690,7 @@ module MenhirInterpreter = struct | T_DOTOP : ( # 1073 "src/ocaml/preprocess/parser_raw.mly" (string) -# 102479 "src/ocaml/preprocess/parser_raw.ml" +# 104694 "src/ocaml/preprocess/parser_raw.ml" ) terminal | T_DOTLESS : unit terminal | T_DOTHASH : unit terminal @@ -102485,14 +104700,14 @@ module MenhirInterpreter = struct | T_DOCSTRING : ( # 1163 "src/ocaml/preprocess/parser_raw.mly" (Docstrings.docstring) -# 102489 "src/ocaml/preprocess/parser_raw.ml" +# 104704 "src/ocaml/preprocess/parser_raw.ml" ) terminal | T_DO : unit terminal | T_CONSTRAINT : unit terminal | T_COMMENT : ( # 1162 "src/ocaml/preprocess/parser_raw.mly" (string * Location.t) -# 102496 "src/ocaml/preprocess/parser_raw.ml" +# 104711 "src/ocaml/preprocess/parser_raw.ml" ) terminal | T_COMMA : unit terminal | T_COLONRBRACKET : unit terminal @@ -102504,7 +104719,7 @@ module MenhirInterpreter = struct | T_CHAR : ( # 1028 "src/ocaml/preprocess/parser_raw.mly" (char) -# 102508 "src/ocaml/preprocess/parser_raw.ml" +# 104723 "src/ocaml/preprocess/parser_raw.ml" ) terminal | T_BEGIN : unit terminal | T_BARRBRACKET : unit terminal @@ -102519,7 +104734,7 @@ module MenhirInterpreter = struct | T_ANDOP : ( # 1075 "src/ocaml/preprocess/parser_raw.mly" (string) -# 102523 "src/ocaml/preprocess/parser_raw.ml" +# 104738 "src/ocaml/preprocess/parser_raw.ml" ) terminal | T_AND : unit terminal | T_AMPERSAND : unit terminal @@ -102755,6 +104970,7 @@ module MenhirInterpreter = struct | N_fun_param_as_list : (Parsetree.function_param list) nonterminal | N_fun_expr : (Parsetree.expression) nonterminal | N_fun_body : (Parsetree.function_body) nonterminal + | N_fun_ : (Parsetree.expression) nonterminal | N_formal_class_parameters : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) nonterminal | N_floating_attribute : (Parsetree.attribute) nonterminal | N_extension_type : (Parsetree.core_type) nonterminal @@ -103116,96 +105332,98 @@ module MenhirInterpreter = struct and nonterminal = fun nt -> match nt with - | 274 -> + | 275 -> X (N N_additive) - | 273 -> + | 274 -> X (N N_alias_type) - | 272 -> + | 273 -> X (N N_and_let_binding) - | 271 -> + | 272 -> X (N N_any_longident) - | 270 -> + | 271 -> X (N N_at_modalities_expr) - | 269 -> + | 270 -> X (N N_at_mode_expr) - | 268 -> + | 269 -> X (N N_atat_mode_expr) - | 267 -> + | 268 -> X (N N_atomic_type) - | 266 -> + | 267 -> X (N N_attr_id) - | 265 -> + | 266 -> X (N N_attr_payload) - | 264 -> + | 265 -> X (N N_attribute) - | 263 -> + | 264 -> X (N N_class_expr) - | 262 -> + | 263 -> X (N N_class_field) - | 261 -> + | 262 -> X (N N_class_fun_binding) - | 260 -> + | 261 -> X (N N_class_fun_def) - | 259 -> + | 260 -> X (N N_class_longident) - | 258 -> + | 259 -> X (N N_class_self_pattern) - | 257 -> + | 258 -> X (N N_class_self_type) - | 256 -> + | 257 -> X (N N_class_sig_field) - | 255 -> + | 256 -> X (N N_class_signature) - | 254 -> + | 255 -> X (N N_class_simple_expr) - | 253 -> + | 254 -> X (N N_class_type) - | 252 -> + | 253 -> X (N N_class_type_declarations) - | 251 -> + | 252 -> X (N N_clty_longident) - | 250 -> + | 251 -> X (N N_comprehension_clause) - | 249 -> + | 250 -> X (N N_comprehension_clause_binding) - | 248 -> + | 249 -> X (N N_comprehension_iterator) - | 247 -> + | 248 -> X (N N_constant) - | 246 -> + | 247 -> X (N N_constr_extra_nonprefix_ident) - | 245 -> + | 246 -> X (N N_constr_ident) - | 244 -> + | 245 -> X (N N_constr_longident) - | 243 -> + | 244 -> X (N N_constrain_field) - | 242 -> + | 243 -> X (N N_constructor_arguments) - | 241 -> + | 242 -> X (N N_constructor_declarations) - | 240 -> + | 241 -> X (N N_core_type) - | 239 -> + | 240 -> X (N N_delimited_type) - | 238 -> + | 239 -> X (N N_delimited_type_supporting_local_open) - | 237 -> + | 238 -> X (N N_direction_flag) - | 236 -> + | 237 -> X (N N_ext) - | 235 -> + | 236 -> X (N N_extension) - | 234 -> + | 235 -> X (N N_extension_constructor_rebind_BAR_) - | 233 -> + | 234 -> X (N N_extension_constructor_rebind_epsilon_) - | 232 -> + | 233 -> X (N N_extension_type) - | 231 -> + | 232 -> X (N N_floating_attribute) - | 230 -> + | 231 -> X (N N_formal_class_parameters) + | 230 -> + X (N N_fun_) | 229 -> X (N N_fun_body) | 228 -> @@ -103640,157 +105858,152 @@ module MenhirInterpreter = struct assert false and lr0_incoming = - (16, "\000\000\000\006\000H\000\004\000\006\000\b\000\n\000\012\000\018\000\020\000\022\000\024\000\026\000\030\000 \000(\0000\000>\000L\000P\000T\000V\000X\000Z\000\\\000^\000h\000j\000n\000p\000t\000\146\000\156\000\158\000\170\000\172\000\174\000\200\000\202\000\204\000\206\000\210\000\212\000\216\000\224\000\226\000\228\000\242\000\246\000\248\001\b\001\012\001\028\001\030\001\"\000_\000\240\002\021\002\021\001\217\000\138\002\021\000\012\001\217\001o\000l\000$\000@\000B\000D\000F\000H\000L\000`\000d\000f\000r\000x\000\160\000\162\000\164\000\166\000\168\000\182\000\196\000\218\000\232\000l\000,\000\238\001\171\000.\000v\000\140\001\171\0002\000v\000\144\001\171\0004\000v\001\002\001\016\001\020\001\024\001\026\001 \001$\001&\001\005\000.\000p\0001\001\006\000\014\000R\000n\001\019\001\019\001\019\000\016\000\018\0008\000:\000\018\000p\001\177\000<\000p\001\006\000N\000l\000\016\001\006\000\016\000l\000\150\000:\001\177\000l\000:\001\177\001\006\000\175\001$\001\161\001\165\000\004\000p\000\176\001\006\000l\000^\001\217\001o\000\018\000(\001o\001\024\000p\001\023\001\023\000o\000\224\000\233\000\020\001\217\001o\000@\000F\001\020\000X\000f\001\020\000l\000\164\001\020\000F\000f\0009\000\016\001o\001\006\001\165\000`\000p\001\025\001\025\001$\001\165\001\177\002\017\001o\000:\001\177\001o\001\006\001\165\000C\000\135\000.\000\252\000\225\000\225\0009\000\016\001o\000:\001\177\001o\000A\000p\001\006\001\165\000\251\000\218\000\018\000\024\000>\000l\000.\000x\000l\000:\001\177\000|\002\021\000\014\000\016\000\018\000\022\001\217\001o\000\028\000l\000p\001\000\000~\001\018\001\001\000\128\0002\001\001\000\140\000\184\000p\001\006\000p\000\188\000p\001A\000l\001A\000.\000\240\000\018\001Q\000\240\000p\001S\001\247\000;\000=\000?\000E\001\011\001A\000\240\000l\000K\000b\000K\001\026\000p\001\021\001\021\002\027\000b\000K\002\027\000Y\000\229\000l\000Y\000\127\000.\000\188\001\247\000;\000E\001A\000\240\000=\000?\001I\001K\000\252\000\016\001\006\001\165\000:\001\177\001\006\001\165\001\019\000l\000\149\000:\001\177\000l\000:\001\177\001\006\001\165\000.\000\240\001\193\001\209\001\215\001\221\001\223\001\225\000.\000b\000K\002\027\000Y\001\019\000K\000b\000K\002\027\000Y\001\019\000K\002\027\000b\000K\002\027\000Y\001\019\000K\002\027\002\023\000$\000p\001\006\002\023\000\188\001\247\000;\000E\000\129\000$\000p\001\006\002\023\002\023\002\023\002\027\002\027\000b\000K\002\027\000Y\001\019\000K\002\027\002\017\002#\001\030\000:\001\177\000l\000\016\001\006\001\165\000.\000:\001\177\001\006\001\165\000.\001\225\000.\000\252\000\016\001\006\001\165\000:\001\177\001\006\001\165\001\225\000K\002\027\001\225\000\149\000\240\001\225\000.\000b\000K\002\027\000Y\001\019\000K\002\027\002\027\000b\000K\002\027\000Y\001\019\000K\002\027\000K\000b\000K\002\027\000Y\001\019\000K\002\027\002\027\000b\000K\002\027\000Y\001\019\000K\002\027\001\019\000l\000\149\000\240\001\225\000.\000b\000K\002\027\000Y\001\019\000K\002\027\002\027\000b\000K\002\027\000Y\001\019\000K\002\027\000K\000b\000K\002\027\000Y\001\019\000K\002\027\002\027\000b\000K\002\027\000Y\001\019\000K\002\027\001\019\000K\002\027\000Y\001\019\000K\002\027\002\027\001\225\001\221\002\023\000$\000\129\000.\002\023\000$\000\129\000.\001\018\001\022\001\177\000Q\000}\000\139\0002\001\018\000}\001\031\000T\001$\001\003\000\145\001$\002#\001o\002#\001o\001\225\000Q\0002\000}\001\018\000\139\0002\000\139\0002\000\139\0002\000\196\000\151\0002\001\031\001\031\001\225\001\006\001\225\001\000\001\225\000I\000.\000\252\000\028\000l\000p\000I\000.\000p\000\252\000\028\000l\000p\000I\000.\000p\000\"\000&\000@\000V\001\217\001o\000l\000\016\000\028\000l\000p\001\006\001\225\000.\000\252\000\028\000l\000p\001\006\001\225\000.\000p\000\252\000\028\000l\000p\001\006\001\225\000.\000p\000F\000\154\000\178\000\180\000\208\000f\000\154\000\178\000\180\000\208\000l\000F\000^\001\217\001o\000\016\000\018\0015\000.\001\006\000^\000\020\000T\001o\000\016\000 \001o\000\020\001\217\001o\000X\000A\000p\000\251\000G\000\161\000\136\002\021\000*\0006\000D\000F\000J\001\217\001o\000R\000Z\001\217\001o\000p\001?\000\240\000\018\000p\001E\001G\002\007\000d\000f\000j\001\217\001o\000l\000@\000\130\000n\000p\000v\000r\000\028\000l\000p\001\006\001\225\000.\000\252\000\028\000l\000p\001\006\001\225\000.\000p\000\252\000\028\000l\000p\001\006\001\225\000.\000p\000\130\000\132\000\140\0002\000\144\001G\001[\0004\001\149\001\006\001\225\000\247\000\218\000\146\001\217\001o\000\154\000\176\000p\000E\001A\000\240\000\178\000\180\000\184\000\148\000\186\001[\0004\000\188\000E\000\208\000\210\001\n\000+\0001\0003\0007\000a\000c\000\252\000\028\000l\000p\001\006\001\225\000.\000p\000\148\000c\000g\000i\000\238\000F\000f\000i\000k\001\031\001?\000\240\000l\000.\000\216\001\217\001o\000c\000\165\000\199\000\201\000\252\000\028\000l\000p\001\006\001\225\000.\000p\000\148\000c\001\215\001\233\001\237\000\238\000\201\001\004\000\201\001\018\000\201\001\030\0001\002\017\001\031\000\201\001\143\000\252\000\028\000l\000p\001\006\001\225\000.\000p\000\148\000c\000\238\000\201\001\233\000l\000\020\001\025\000.\000c\000f\001\004\000.\000\201\000.\001\006\001\225\000.\000\201\001\004\000.\000\201\000.\000\140\0002\000w\0002\000\201\000,\000w\000g\000\238\000\201\000\165\000.\000\201\000c\000\201\000\241\000,\000\016\000,\000\255\001[\001\014\000w\001\014\000\254\000w\000\254\000\148\000c\000\252\000\028\000l\000p\001\006\001\225\000.\000p\000\148\000c\000\238\000\163\000\197\000\252\000\028\000l\000p\001\006\001\225\000.\000p\000\148\000c\000\238\000\197\001\004\000\201\001\018\000\201\001\030\0001\002\017\000\199\001\141\000\252\000\028\000l\000p\001\006\001\225\000.\000p\000\148\000c\000\238\000\197\000\238\000\197\000\148\000c\000\238\000\197\000p\000\148\000c\0001\000\028\000l\000p\001\006\000\149\000\240\001\225\001\024\001\021\002\025\001\225\002\025\002\027\001\019\001\151\000.\001\151\000.\000p\000<\000l\001\019\001\151\000\218\000t\000P\001\020\001\217\001o\000l\000\012\001o\000\132\000\140\000\142\000p\000\218\000\144\000p\000\184\000\146\001\217\001o\000\186\000\230\000\234\000\148\001\012\001\217\001o\000\174\001\217\001o\000\202\001\217\001o\001\018\000\201\000\b\000\204\001\217\001o\000N\000\016\000l\000l\000l\000\201\001\006\000\149\000\240\001\225\002\025\001\225\002\025\002\027\001\127\000.\001\127\000.\000\201\001\006\000\149\000\240\001\225\002\025\001\225\002\025\002\027\001\019\001\131\000\239\000.\001\131\000\239\000.\000p\000\195\000l\000\020\000l\000p\001\006\001\165\000.\000p\001\006\001\165\000.\001\017\001\027\000.\001\029\000p\001\017\000\201\001\006\000\149\000\240\001\225\000.\001\019\000\201\001\006\000\149\000\240\001\225\001\225\001\127\000.\001\129\000.\001\127\000.\000\148\000l\000\201\001\006\000\149\000\240\001\225\000.\001\019\000\201\000.\001\006\000\149\000\240\001\225\000.\001\225\001\127\000.\001\127\000.\000c\000c\000\159\001\145\001\199\001\197\001\006\002\023\002\025\000\231\000b\000\202\001\217\001o\000\147\000\252\000\028\000l\000p\000I\000.\000p\000\148\001\020\000+\000/\0001\0007\000e\000\176\000p\000\182\000e\000\188\000p\000\232\000l\000\202\001\217\001o\000\147\000,\000\206\001\217\001o\000\201\000\218\000\214\001\028\001\217\001o\000e\000\236\001\149\000\240\000l\000S\000\202\001\217\001o\000\147\001\018\001Y\001Y\000e\000\028\000l\000p\000I\000.\000p\000<\000p\000N\000e\001\031\001?\000\240\000l\000.\000D\000F\000^\001\217\001o\000\200\001o\000l\000.\0015\001\006\000l\000.\000b\000\200\001o\000\155\001\191\001\189\000b\001'\001-\000\004\000\020\000A\001\149\000\218\000>\001\002\002#\000\031\002#\000\161\000\248\001\225\000\218\001\225\000C\000^\000\020\001'\000\218\001-\000b\001-\002\017\002\027\000b\001-\002\027\001A\000\240\000\018\001\177\001M\001\177\001\215\002\027\001\002\001-\001?\000\218\001A\000\240\001\002\001A\000!\000\141\001\"\000!\001A\002\027\001\191\001-\002\027\001-\000.\001-\000.\002\025\000.\001\189\000b\000\227\0017\000l\000.\0017\000.\001\006\001-\000.\002\025\000.\000\227\002\017\002\027\000.\001?\001\215\0017\001\006\001-\000.\000d\000f\000r\000c\001\006\001\225\000\218\000s\000\167\000\252\000\028\000l\000p\000I\000.\000p\000\148\000e\000\252\000\028\000l\000p\000I\000.\000p\000\148\000e\001C\001\215\001\233\001\239\000\202\001\217\001o\000\147\001\031\000e\001\135\000\172\000s\001\195\001\201\000$\000\202\001\217\001o\000\147\001\201\000B\000\202\001\217\001o\000\147\001\201\000D\000\202\001\217\001o\000\147\001\201\000F\000\202\001\217\001o\000\147\001\201\000H\000\202\001\217\001o\000\147\001\201\000L\000\202\001\217\001o\000\147\001\201\000`\000\202\001\217\001o\000\147\001\201\000d\000\202\001\217\001o\000\147\001\201\000f\000\202\001\217\001o\000\147\001\201\000x\000\202\001\217\001o\000\147\001\201\000\160\000\202\001\217\001o\000\147\001\201\000\162\000\202\001\217\001o\000\147\001\201\000\164\000\202\001\217\001o\000\147\001\201\000\166\000\202\001\217\001o\000\147\001\201\000\168\000\202\001\217\001o\000\147\001\201\000\196\000\202\001\217\001o\000\147\001\201\000\218\000\202\001\217\001o\000\147\001\201\000\252\000\028\000l\000p\000I\000.\000p\000\148\000e\000\202\001\217\001o\000\147\001\201\001\002\000\202\001\217\001o\000\147\001\201\001\004\000\202\001\217\001o\000\147\001\201\001\016\000\202\001\217\001o\000\147\001\201\001\024\000\202\001\217\001o\000\147\001\201\001\026\000\202\001\217\001o\000\147\001\201\001$\000\202\001\217\001o\000\147\001\201\001&\000\202\001\217\001o\000\147\001\201\002\017\001\233\000e\002%\000\202\001\217\001o\000\147\001\201\000,\000H\002\021\000s\000s\001\"\001o\000l\0001\002\027\000.\000\218\000s\000[\001\197\000I\002\025\000\253\000\218\001\195\001\203\002\027\001\199\0001\001\006\000\020\001\027\000\240\001\225\000\218\000s\002\025\000\218\000s\000\149\000\240\001\225\000\218\000s\002\025\000\218\000s\000I\000\218\000s\002\025\000\218\000s\000[\002\027\000\218\000s\000a\001\006\001\225\000\218\000s\002\025\000\218\000s\002\027\000\218\000s\000\197\000\218\000s\001\019\0001\001\006\000\149\000\240\001\225\000\218\000s\002\025\000\218\000s\000I\000\218\000s\002\025\000\218\000s\000[\002\027\000\218\000s\001\137\001\139\000\187\001i\001i\002!\001\201\000\202\001\217\001o\000\147\001\201\000\197\000\218\000s\001{\000\172\000s\001 \001}\001}\001\020\000s\000.\000\130\000\202\001\217\001o\000\147\000\b\000\202\001\217\001o\000\147\001\201\000\206\000\143\001\"\001o\000\014\000\201\000\172\000\202\001\217\001o\000\147\001\201\000R\000\201\000\172\000\202\001\217\001o\000\147\001\201\000n\000\201\000\172\000\202\001\217\001o\000\147\001\201\000\201\000\172\000\202\001\217\001o\000\147\001\201\000\218\000\202\001\217\001o\000\147\000\026\000\228\001\219\000\202\001\217\001o\000\147\001\201\001\201\001\219\000\202\001\217\001o\000\147\001\201\001\241\001\243\001\243\000\157\000\254\001\245\001\245\000\254\000{\000\254\001\201\000,\000{\001\201\000\157\000\254\000\132\000\202\001\217\001o\000\147\000\157\001\014\001\014\000{\001\014\001\201\000\157\001\014\000\140\0002\000\202\001\217\001o\000\147\000\157\0002\000{\0002\001\201\000\157\0002\000\142\000y\000\192\000\144\000e\000\004\000u\001\149\000I\000\237\000\245\000,\000u\000u\000\177\0004\001?\000\240\000p\0001\000\148\000e\000\232\000l\000{\000.\000v\000\202\001\217\001o\000\147\001\201\000\140\000{\0002\000v\000\202\001\217\001o\000\147\001\201\000\144\000{\0004\000v\000\202\001\217\001o\000\147\001\201\000\240\000l\000s\000.\000v\000\202\001\217\001o\000\147\001\201\000\140\000s\0002\000v\000\202\001\217\001o\000\147\001\201\000\144\000s\0004\000v\000\202\001\217\001o\000\147\001\201\001?\000\232\000l\000{\000.\000v\000\202\001\217\001o\000\147\001\201\000\140\000{\0002\000v\000\202\001\217\001o\000\147\001\201\000\144\000{\0004\000v\000\202\001\217\001o\000\147\001\201\001\149\000v\000\202\001\217\001o\000\147\001\201\000e\000\153\001\147\001\147\001\201\000s\000.\000\140\000s\0002\000\144\000s\0004\001?\000\232\000l\000{\000.\000\140\000{\0002\000\144\000{\0004\001\149\000s\000s\001\219\000s\000\246\000s\000\242\000{\000{\000.\000\140\000{\0002\000\144\000{\0004\000e\000\202\001\217\001o\000\147\001\201\001\203\002\027\000s\000b\000s\000b\000\240\000s\001Y\000\147\000s\000\030\000\202\001\217\001o\000\147\000\226\000\202\001\217\001o\000\147\001\201\001\201\000\226\000\202\001\217\001o\000\147\001\201\000\224\000s\000\224\000e\000\202\001\217\001o\000\147\000\194\001\201\000\194\000e\000\177\0004\000e\000\202\001\217\001o\000\147\000\167\000.\001\201\000\177\0004\000\202\001\217\001o\000\147\001\201\000\245\000,\000y\000\192\000y\000\192\000\202\001\217\001o\000\147\000\157\0002\000{\0002\001\201\000\157\0002\000\202\001\217\001o\000\147\000\157\001\014\001\014\000{\001\014\001\201\000\157\001\014\000\202\001\217\001o\000\147\000.\001\000\001-\000.\001\006\001-\000.\001\000\001-\000.\001\201\000.\001\000\001-\000.\001\006\001-\000.\001\000\001-\000.\0017\000\172\000s\001\217\001o\0017\000\172\000s\000^\001\217\001o\000l\0015\002\027\000.\0011\000\218\0017\001\006\001-\000\218\0017\002\025\000\218\0017\001=\000\172\000s\001\191\001=\002\027\000\218\0017\0015\000\216\001\217\001o\000\018\000l\001\004\000.\000\140\001\235\000T\000\144\000\\\000\198\001#\000p\001\006\000\149\000\240\002#\000\189\000\233\001o\000,\001o\002#\001\153\0004\001\155\001\153\001\157\000\198\002\023\000\233\000\131\000$\000\198\002\023\000\233\002\023\000\233\001\229\002\023\000\233\001\006\000l\000:\001\177\001\006\001\165\000.\000\252\000\016\001\006\001\165\000:\001\177\001\006\001\165\001\225\000\149\000\240\001\229\000b\002\023\002\023\001\229\000b\002\023\002\023\001\187\001o\000\172\000s\001\237\001\217\001o\0000\000\179\001\139\001i\000s\000\239\000.\001\151\000\239\000.\000p\000[\000\202\001\217\001o\000\147\001\201\000s\000\202\001\217\001o\000\147\000\157\000\254\000\254\000{\000\254\001\201\000\157\000\254\000e\000^\001\217\001o\0017\000.\001\006\001-\000.\000s\000.\000I\000.\002\025\000.\000s\000\004\000\147\000s\000s\000\004\000\202\001\217\001o\000\147\001\201\000P\001\020\001\217\001o\0017\001i\001\217\001o\0017\001i\000^\000\020\001\217\001o\001\177\000\218\001-\000\243\001i\001\217\001o\0000\0011\001=\001i\001\"\001o\0011\001=\001i\001s\001s\0011\001=\001i\000z\002\021\000<\000\201\000\b\000s\000\134\002\021\000\152\000p\000\218\001\165\000\170\000\200\000\212\001\217\001o\0001\001\006\000\149\000\240\001\225\000\191\000\233\000\218\000\"\001\015\001\015\001i\001\225\000\216\001\217\001o\001\235\000\218\000l\001?\000\240\000l\001\233\001o\001i\001\187\001o\001i\001\006\000o\001\225\001\b\000\020\001\217\001o\000\n\000'\000\140\000C\000\133\0002\000\252\000C\001\205\000p\000\218\000V\001o\000l\001\225\000.\002\003\000\012\001o\000\n\000\\\000\\\000\n\001!\000p\001\006\001\225\001i\000h\001o\000\n\000>\000>\000\n\000\181\000p\001\006\000\191\001i\000\158\001o\000t\000P\001\020\001o\001?\000\172\000\140\000\137\0002\001\247\000\252\001\225\001\225\001\215\001\247\001\255\002\017\001o\001?\000\172\001\255\001\255\001i\000\248\001o\001\225\000\218\001\225\001\231\001i\001c\000\224\001\167\001i\001\207\002\001\001c\001\255\001i\001\"\001o\000'\001\205\000p\000\218\001\255\001i\001u\001u\001\217\001o\000'\001\205\000p\000l\000\218\000V\001o\002\005\000\012\001\020\001o\000\\\001%\000p\000\218\000s\000I\000\218\000s\000-\001i\001o\000\n\000\\\000\\\000\n\000%\000p\001\006\001\225\001%\000p\000\218\000s\000I\000\218\000s\000h\001\020\001o\000>\000\183\000p\001\006\000\020\001\027\000\240\001\225\000\218\000s\000\191\000\218\000s\000[\001U\001i\001o\000\n\000>\000>\000\n\000#\000p\001\006\000\191\000\183\000p\001\006\000\020\001\027\000\240\001\225\000\218\000s\000\191\000\218\000s\000[\000\156\001o\000s\001i\000\158\001\020\001o\000l\000t\000H\002\021\001o\000\179\001\139\001i\000P\001\020\001o\001?\000\172\000\140\000\137\0002\002\007\000\204\001o\001\145\000b\001\133\000\172\001\215\001\253\000\153\002\007\002\015\002\017\002!\002\015\002\t\002\t\002\015\001o\001?\000\172\002\015\001o\000\179\001\139\001i\002\015\000.\001\006\000p\001\006\000K\000b\000\140\001\225\000K\000b\000\229\000K\000b\001A\000\240\000p\001\215\001\251\001\255\001\251\001\251\001\251\000.\002\015\001\030\000p\000\249\001i\001o\002\015\000\249\001i\000\248\001o\001\231\001i\001a\000\224\001\167\001i\001\207\002\r\001a\002\015\001\006\001\251\000\218\002\015\001\145\002\011\002\011\001i\001\"\001o\000'\001\205\000p\002\011\001i\001y\001y\000)\000U\000t\000]\000q\000\185\001\t\001+\001e\001\135\001\159\001\167\001i\001\173\001\217\001o\0017\001i\001\179\001\"\001o\000A\000p\000\251\000G\000\161\001i\001m\001\163\001m\001\207\001\249\000W\000s\001i\001e\000\193\001e\001\135\002\019\0002\000\193\0002\000s\001i\001e\001e\002\019\0002\001i\000E\000B\000\183\001\018\001\235\000\218\001\233\001o\001\187\001o\000\171\001i\001\185\001\213\001\183\001\185\001\211\001\213\001\235\000\218\001\233\001o\001\187\001o\000A\000p\000\251\000G\000\161\001i\000E\000B\000\183\000\171\001i\000W\000\224\0017\001-\000.\000\148\000c\000\238\000\201\000\148\000c\000\238\000\201\000p\000\201\000.\001\006\001\225\000.\002\005\001a\000\224\000e\000\148\000e\000\202\001\217\001o\000\147\001\201\000\148\000e\000\202\001\217\001o\000\147\001\201\000p\000s\000\004\000\147\000s\000\193\0002\000p\001\006\000\189\001o\000,\001o\000\238\001W\002\023\000,\001W\000\196\001W\000\196\000\149\000\240\001\225\000.\000b\000K\002\027\000Y\001\019\000K\002\027\002\027\000b\000K\002\027\000Y\001\019\000K\002\027\000\140\000\144\001\153\0004\000\186\001\153\0004\000\238\001\018\001\235\000\173\001\018\001\185\001\183\001\185\001\225\001\227\001\235\000\144\001\153\0004\000\186\001\153\0004\000\238\001\r\001\225\000\218\000>\000\144\001\153\0004\000\186\001\153\0004\000\238\001\227\000\144\001\153\0004\000\186\001\153\0004\000\238\001\227\001\227\001\002\001\r\000\161\001i\000E\000B\000\183\000\169\001i\001\185\001\183\001\185\000A\000p\000\251\001\002\001\r\000\161\001i\000E\000B\000\183\000\169\001i\000*\000P\001\020\001\217\001o\001A\001i\001\217\001o\001A\001i\000^\000\020\001\217\001o\001\177\001\002\001-\001i\001\217\001o\000\018\001\002\001A\001i\0000\0015\001\006\001-\000\233\001i\001\"\001o\0015\001\006\001-\000\233\001i\001q\001q\000l\0015\001\026\001\023\002\029\000.\0013\000\218\001?\001\026\001\023\000\235\001i\001\006\001-\000\233\001;\001i\001\191\001\006\001-\002\025\0019\001\191\0019\0015\000\216\001\217\001o\001\235\001\b\001\217\001o\000'\001\205\000p\001\006\001\251\001i\001\"\001o\000'\001\205\000p\001\006\001\251\001i\001w\001w\000)\000m\000q\000\185\001\007\001)\001+\001/\001g\001\159\001\167\001i\001\173\001\217\001o\001-\001i\000\233\001\179\001m\001\181\001\"\001o\000A\000p\000\251\001\002\001\r\000\161\001i\001k\001k\001\207\001\249\001g\001g\001-\000.\000\149\000\240\001\225\000.\000b\000K\002\027\000Y\001\019\000K\002\027\002\027\000b\000K\002\027\000Y\001\019\000K\002\027\000K\000b\000K\002\027\000Y\001\019\000K\002\027\002\027\000b\000K\002\027\000Y\001\019\000K\002\027\001\019\000l\000\149\000\240\001\225\000.\000b\000K\002\027\000Y\001\019\000K\002\027\002\027\000b\000K\002\027\000Y\001\019\000K\002\027\000K\000b\000K\002\027\000Y\001\019\000K\002\027\002\027\000b\000K\002\027\000Y\001\019\000K\002\027\002\023\000$\000\129\000b\000K\002\027\000Y\001\019\000K\002\027\002\027\000b\000K\002\027\000Y\001\019\000K\002\027\002\023\000$\000\129\000b\000K\002\027\000Y\001\019\000K\002\027\002\027\000b\000K\002\027\000Y\001\019\000K\002\027\001\225\001\165\000.\001\225\001\161\000.\001\165\001\165\000.\000\252\000\016\001\006\001\165\000:\001\177\001\006\001\165\001\225\000:\001\177\000\191\000\233\001i\002\019\0002\001o\000s\000\246\000s\000\242\000W\000\222\001\175\000\000\000o\000\222\001\169\000\000\000l\001\004\000.\0003\000\223\001A\000\240\000l\001\004\000.\0003\001\177\001O\001\177\001\237\002\031\000\222\000\000\000\221\001\233\000\222\000\000\000\219\001\225\000\222\000\000\000s\000\222\000\217\000\000\000\215\001A\000\222\000\000\000\213\001?\000\222\000\000\000\211\0017\000\222\000\000\000\209\001-\000\222\000\000\000\207\001'\000\222\000\000\000\201\000\222\000\205\000\000\000/\000\222\000\203\001?\000\240\000\000\000\176\001\177\000\024\000\"\000\154\000\210\000/\001?\000\188\001\177\000\024\000\"\000\154\000\210\000/\001?\000\222\000M\000O\000*\000U\001_\000s\001i\000*\001_\000*\000\000\000*\000O\000U\001]\001]\000s\001i\001]\001]\0005\000s\001i\001]\000\222\001]\000\222") + (16, "\000\000\000\006\000H\000\004\000\006\000\b\000\n\000\012\000\018\000\020\000\022\000\024\000\026\000\030\000 \000(\0000\000>\000L\000P\000T\000V\000X\000Z\000\\\000^\000h\000j\000n\000p\000t\000\146\000\156\000\158\000\170\000\172\000\174\000\200\000\202\000\204\000\206\000\210\000\212\000\216\000\224\000\226\000\228\000\242\000\246\000\248\001\b\001\012\001\028\001\030\001\"\000_\000\240\002\023\002\023\001\219\000\138\002\023\000\012\001\219\001o\000l\000$\000@\000B\000D\000F\000H\000L\000`\000d\000f\000r\000x\000\160\000\162\000\164\000\166\000\168\000\182\000\196\000\218\000\232\000l\000,\000\238\001\171\000.\000v\000\140\001\171\0002\000v\000\144\001\171\0004\000v\001\002\001\016\001\020\001\024\001\026\001 \001$\001&\001\005\000.\000p\0001\001\006\000\014\000R\000n\001\019\001\019\001\019\000\016\000\018\0008\000:\000\018\000p\001\177\000<\000p\001\006\000N\000l\000\016\001\006\000\016\000l\000\150\000:\001\177\000l\000:\001\177\001\006\000\175\001$\001\161\001\165\000\004\000p\000\176\001\006\000l\000^\001\219\001o\000\018\000(\001o\001\024\000p\001\023\001\023\000o\000\224\000\233\000\020\001\219\001o\000@\000F\001\020\000X\000f\001\020\000l\000\164\001\020\000F\000f\0009\000\016\001o\001\006\001\165\000`\000p\001\025\001\025\001$\001\165\001\177\002\019\001o\000:\001\177\001o\001\006\001\165\000C\000\135\000.\000\252\000\225\000\225\0009\000\016\001o\000:\001\177\001o\000A\000p\001\006\001\165\000\251\000\218\000\018\000\024\000>\000l\000.\000x\000l\000:\001\177\000|\002\023\000\014\000\016\000\018\000\022\001\219\001o\000\028\000l\000p\001\000\000~\001\018\001\001\000\128\0002\001\001\000\140\000\184\000p\001\006\000p\000\188\000p\001A\000l\001A\000.\000\240\000\018\001Q\000\240\000p\001S\001\249\000;\000=\000?\000E\001\011\001A\000\240\000l\000K\000b\000K\001\026\000p\001\021\001\021\002\029\000b\000K\002\029\000Y\000\229\000l\000Y\000\127\000.\000\188\001\249\000;\000E\001A\000\240\000=\000?\001I\001K\000\252\000\016\001\006\001\165\000:\001\177\001\006\001\165\001\019\000l\000\149\000:\001\177\000l\000:\001\177\001\006\001\165\000.\000\240\001\193\001\211\001\217\001\223\001\225\001\227\000.\000b\000K\002\029\000Y\001\019\000K\000b\000K\002\029\000Y\001\019\000K\002\029\000b\000K\002\029\000Y\001\019\000K\002\029\002\025\000$\000p\001\006\002\025\000\188\001\249\000;\000E\000\129\000$\000p\001\006\002\025\002\025\002\025\002\029\002\029\000b\000K\002\029\000Y\001\019\000K\002\029\002\019\002%\001\030\000:\001\177\000l\000\016\001\006\001\165\000.\000:\001\177\001\006\001\165\000.\001\227\000.\000\252\000\016\001\006\001\165\000:\001\177\001\006\001\165\001\227\000K\002\029\001\227\000\149\000\240\001\227\000.\000b\000K\002\029\000Y\001\019\000K\002\029\002\029\000b\000K\002\029\000Y\001\019\000K\002\029\000K\000b\000K\002\029\000Y\001\019\000K\002\029\002\029\000b\000K\002\029\000Y\001\019\000K\002\029\001\019\000l\000\149\000\240\001\227\000.\000b\000K\002\029\000Y\001\019\000K\002\029\002\029\000b\000K\002\029\000Y\001\019\000K\002\029\000K\000b\000K\002\029\000Y\001\019\000K\002\029\002\029\000b\000K\002\029\000Y\001\019\000K\002\029\001\019\000K\002\029\000Y\001\019\000K\002\029\002\029\001\227\001\223\002\025\000$\000\129\000.\002\025\000$\000\129\000.\001\018\001\022\001\177\000Q\000}\000\139\0002\001\018\000}\001\031\000T\001$\001\003\000\145\001$\002%\001o\002%\001o\001\227\000Q\0002\000}\001\018\000\139\0002\000\139\0002\000\139\0002\000\196\000\151\0002\001\031\001\031\001\227\001\006\001\227\001\000\001\227\000I\000.\000\252\000\028\000l\000p\000I\000.\000p\000\252\000\028\000l\000p\000I\000.\000p\000\"\000&\000@\000V\001\219\001o\000l\000\016\000\028\000l\000p\001\006\001\227\000.\000\252\000\028\000l\000p\001\006\001\227\000.\000p\000\252\000\028\000l\000p\001\006\001\227\000.\000p\000F\000\154\000\178\000\180\000\208\000f\000\154\000\178\000\180\000\208\000l\000F\000^\001\219\001o\000\016\000\018\0015\000.\001\006\000^\000\020\000T\001o\000\016\000 \001o\000\020\001\219\001o\000X\000A\000p\000\251\000G\000\161\000\136\002\023\000*\0006\000D\000F\000J\001\219\001o\000R\000Z\001\219\001o\000p\001?\000\240\000\018\000p\001E\001G\002\t\000d\000f\000j\001\219\001o\000l\000@\000\130\000n\000p\000v\000r\000\028\000l\000p\001\006\001\227\000.\000\252\000\028\000l\000p\001\006\001\227\000.\000p\000\252\000\028\000l\000p\001\006\001\227\000.\000p\000\130\000\132\000\140\0002\000\144\001G\001[\0004\001\149\001\006\001\227\000\247\000\218\000\146\001\219\001o\000\154\000\176\000p\000E\001A\000\240\000\178\000\180\000\184\000\148\000\186\001[\0004\000\188\000E\000\208\000\210\001\n\000+\0001\0003\0007\000a\000c\000\252\000\028\000l\000p\001\006\001\227\000.\000p\000\148\000c\000g\000i\000\238\000F\000f\000i\000k\001\031\001?\000\240\000l\000.\000\216\001\219\001o\000c\000\165\000\199\000\201\000\252\000\028\000l\000p\001\006\001\227\000.\000p\000\148\000c\001\217\001\235\001\239\000\238\000\201\001\004\000\201\001\018\000\201\001\030\0001\002\019\001\031\000\201\001\143\000\252\000\028\000l\000p\001\006\001\227\000.\000p\000\148\000c\000\238\000\201\001\235\000l\000\020\001\025\000.\000c\000f\001\004\000.\000\201\000.\001\006\001\227\000.\000\201\001\004\000.\000\201\000.\000\140\0002\000w\0002\000\201\000,\000w\000g\000\238\000\201\000\165\000.\000\201\000c\000\201\000\241\000,\000\016\000,\000\255\001[\001\014\000w\001\014\000\254\000w\000\254\000\148\000c\000\252\000\028\000l\000p\001\006\001\227\000.\000p\000\148\000c\000\238\000\163\000\197\000\252\000\028\000l\000p\001\006\001\227\000.\000p\000\148\000c\000\238\000\197\001\004\000\201\001\018\000\201\001\030\0001\002\019\000\199\001\141\000\252\000\028\000l\000p\001\006\001\227\000.\000p\000\148\000c\000\238\000\197\000\238\000\197\000\148\000c\000\238\000\197\000p\000\148\000c\0001\000\028\000l\000p\001\006\000\149\000\240\001\227\001\024\001\021\002\027\001\227\002\027\002\029\001\019\001\151\000.\001\151\000.\000p\000<\000l\001\019\001\151\000\218\000t\000P\001\020\001\219\001o\000l\000\012\001o\000\132\000\140\000\142\000p\000\218\000\144\000p\000\184\000\146\001\219\001o\000\186\000\230\000\234\000\148\001\012\001\219\001o\000\174\001\219\001o\000\202\001\219\001o\001\018\000\201\000\b\000\204\001\219\001o\000N\000\016\000l\000l\000l\000\201\001\006\000\149\000\240\001\227\002\027\001\227\002\027\002\029\001\127\000.\001\127\000.\000\201\001\006\000\149\000\240\001\227\002\027\001\227\002\027\002\029\001\019\001\131\000\239\000.\001\131\000\239\000.\000p\000\195\000l\000\020\000l\000p\001\006\001\165\000.\000p\001\006\001\165\000.\001\017\001\027\000.\001\029\000p\001\017\000\201\001\006\000\149\000\240\001\227\000.\001\019\000\201\001\006\000\149\000\240\001\227\001\227\001\127\000.\001\129\000.\001\127\000.\000\148\000l\000\201\001\006\000\149\000\240\001\227\000.\001\019\000\201\000.\001\006\000\149\000\240\001\227\000.\001\227\001\127\000.\001\127\000.\000c\000c\000\159\001\145\001\199\001\197\001\006\002\025\002\027\000\231\000b\000\202\001\219\001o\000\147\000\252\000\028\000l\000p\000I\000.\000p\000\148\001\020\000+\000/\0001\0007\000e\000\176\000p\000\182\000e\000\188\000p\000\232\000l\000\202\001\219\001o\000\147\000,\000\206\001\219\001o\000\201\000\218\000\214\001\028\001\219\001o\000e\000\236\001\149\000\240\000l\000S\000\202\001\219\001o\000\147\001\018\001Y\001Y\000e\000\028\000l\000p\000I\000.\000p\000<\000p\000N\000e\001\031\001?\000\240\000l\000.\000D\000F\000^\001\219\001o\000\200\001o\000l\000.\0015\001\006\000l\000.\000b\000\200\001o\000\155\001\191\001\189\000b\001'\001-\000\004\000\020\000A\001\149\000\218\000>\001\002\002%\000\031\002%\000\161\000\248\001\227\000\218\001\227\000C\000^\000\020\001'\000\218\001-\000b\001-\002\019\002\029\000b\001-\002\029\001A\000\240\000\018\001\177\001M\001\177\001\217\002\029\001\002\001-\001?\000\218\001A\000\240\001\002\001A\000!\000\141\001\"\000!\001A\002\029\001\191\001-\002\029\001-\000.\001-\000.\002\027\000.\001\189\000b\000\227\0017\000l\000.\0017\000.\001\006\001-\000.\002\027\000.\000\227\002\019\002\029\000.\001?\001\217\0017\001\006\001-\000.\000d\000f\000r\000c\001\006\001\227\000\218\000s\000\167\000\252\000\028\000l\000p\000I\000.\000p\000\148\000e\000\252\000\028\000l\000p\000I\000.\000p\000\148\000e\001C\001\217\001\235\001\241\000\202\001\219\001o\000\147\001\031\000e\001\135\000\172\000s\001\195\001\201\000$\000\202\001\219\001o\000\147\001\201\000B\000\202\001\219\001o\000\147\001\201\000D\000\202\001\219\001o\000\147\001\201\000F\000\202\001\219\001o\000\147\001\201\000H\000\202\001\219\001o\000\147\001\201\000L\000\202\001\219\001o\000\147\001\201\000`\000\202\001\219\001o\000\147\001\201\000d\000\202\001\219\001o\000\147\001\201\000f\000\202\001\219\001o\000\147\001\201\000x\000\202\001\219\001o\000\147\001\201\000\160\000\202\001\219\001o\000\147\001\201\000\162\000\202\001\219\001o\000\147\001\201\000\164\000\202\001\219\001o\000\147\001\201\000\166\000\202\001\219\001o\000\147\001\201\000\168\000\202\001\219\001o\000\147\001\201\000\196\000\202\001\219\001o\000\147\001\201\000\218\000\202\001\219\001o\000\147\001\201\000\252\000\028\000l\000p\000I\000.\000p\000\148\000e\000\202\001\219\001o\000\147\001\201\001\002\000\202\001\219\001o\000\147\001\201\001\004\000\202\001\219\001o\000\147\001\201\001\016\000\202\001\219\001o\000\147\001\201\001\024\000\202\001\219\001o\000\147\001\201\001\026\000\202\001\219\001o\000\147\001\201\001$\000\202\001\219\001o\000\147\001\201\001&\000\202\001\219\001o\000\147\001\201\002\019\001\205\001\235\000e\002'\000\202\001\219\001o\000\147\001\201\000,\000H\002\023\000s\000s\001\"\001o\000l\0001\002\029\000.\000\218\000s\000[\001\197\000I\002\027\000\253\000\218\001\195\001\203\002\029\001\199\0001\001\006\000\020\001\027\000\240\001\227\000\218\000s\002\027\000\218\000s\000\149\000\240\001\227\000\218\000s\002\027\000\218\000s\000I\000\218\000s\002\027\000\218\000s\000[\002\029\000\218\000s\000a\001\006\001\227\000\218\000s\002\027\000\218\000s\002\029\000\218\000s\000\197\000\218\000s\001\019\0001\001\006\000\149\000\240\001\227\000\218\000s\002\027\000\218\000s\000I\000\218\000s\002\027\000\218\000s\000[\002\029\000\218\000s\001\137\001\139\000\187\001i\001i\002#\001\201\000\202\001\219\001o\000\147\001\201\000\197\000\218\000s\001{\000\172\000s\001 \001}\001}\001\020\000s\000.\000\130\000\202\001\219\001o\000\147\000\b\000\202\001\219\001o\000\147\001\201\000\206\000\143\001\"\001o\000\014\000\201\000\172\000\202\001\219\001o\000\147\001\201\000R\000\201\000\172\000\202\001\219\001o\000\147\001\201\000n\000\201\000\172\000\202\001\219\001o\000\147\001\201\000\201\000\172\000\202\001\219\001o\000\147\001\201\000\218\000\202\001\219\001o\000\147\000\026\000\228\001\221\000\202\001\219\001o\000\147\001\201\001\201\001\221\000\202\001\219\001o\000\147\001\201\001\243\001\245\001\245\000\157\000\254\001\247\001\247\000\254\000{\000\254\001\201\000,\000{\001\201\000\157\000\254\000\132\000\202\001\219\001o\000\147\000\157\001\014\001\014\000{\001\014\001\201\000\157\001\014\000\140\0002\000\202\001\219\001o\000\147\000\157\0002\000{\0002\001\201\000\157\0002\000\142\000y\000\192\000\144\000e\000\004\000u\001\149\000I\000\237\000\245\000,\000u\000u\000\177\0004\001?\000\240\000p\0001\000\148\000e\000\232\000l\000{\000.\000v\000\202\001\219\001o\000\147\001\201\000\140\000{\0002\000v\000\202\001\219\001o\000\147\001\201\000\144\000{\0004\000v\000\202\001\219\001o\000\147\001\201\000\240\000l\000s\000.\000v\000\202\001\219\001o\000\147\001\201\000\140\000s\0002\000v\000\202\001\219\001o\000\147\001\201\000\144\000s\0004\000v\000\202\001\219\001o\000\147\001\201\001?\000\232\000l\000{\000.\000v\000\202\001\219\001o\000\147\001\201\000\140\000{\0002\000v\000\202\001\219\001o\000\147\001\201\000\144\000{\0004\000v\000\202\001\219\001o\000\147\001\201\001\149\000v\000\202\001\219\001o\000\147\001\201\000e\000\153\001\147\001\147\001\201\000s\000.\000\140\000s\0002\000\144\000s\0004\001?\000\232\000l\000{\000.\000\140\000{\0002\000\144\000{\0004\001\149\000s\000s\001\221\000s\000\246\000s\000\242\000{\000{\000.\000\140\000{\0002\000\144\000{\0004\000e\000\202\001\219\001o\000\147\001\201\001\203\002\029\000s\000b\000s\000b\000\240\000s\001Y\000\147\000s\000\030\000\202\001\219\001o\000\147\000\226\000\202\001\219\001o\000\147\001\201\001\201\000\226\000\202\001\219\001o\000\147\001\201\000\224\000s\000\224\000e\000\202\001\219\001o\000\147\000\194\001\201\000\194\000e\000\177\0004\000e\000\202\001\219\001o\000\147\000\167\000.\001\201\000\177\0004\000\202\001\219\001o\000\147\001\201\000\245\000,\000y\000\192\000y\000\192\000\202\001\219\001o\000\147\000\157\0002\000{\0002\001\201\000\157\0002\000\202\001\219\001o\000\147\000\157\001\014\001\014\000{\001\014\001\201\000\157\001\014\000\202\001\219\001o\000\147\000.\001\000\001-\000.\001\006\001-\000.\001\000\001-\000.\001\201\000.\001\000\001-\000.\001\006\001-\000.\001\000\001-\000.\0017\000\172\000s\001\219\001o\0017\000\172\000s\000^\001\219\001o\000l\0015\002\029\000.\0011\000\218\0017\001\006\001-\000\218\0017\002\027\000\218\0017\001=\000\172\000s\001\191\001=\002\029\000\218\0017\0015\000\216\001\219\001o\000\018\000l\001\004\000.\000\140\001\237\000T\000\144\000\\\000\198\001#\000p\001\006\000\149\000\240\002%\000\189\000\233\001o\000,\001o\002%\001\153\0004\001\155\001\153\001\157\000\198\002\025\000\233\000\131\000$\000\198\002\025\000\233\002\025\000\233\001\231\002\025\000\233\001\006\000l\000:\001\177\001\006\001\165\000.\000\252\000\016\001\006\001\165\000:\001\177\001\006\001\165\001\227\000\149\000\240\001\231\000b\002\025\002\025\001\231\000b\002\025\002\025\001\187\001o\000\172\000s\001\239\001\219\001o\0000\000\179\001\139\001i\000s\000\239\000.\001\151\000\239\000.\000p\000[\000\202\001\219\001o\000\147\001\201\000s\000\202\001\219\001o\000\147\000\157\000\254\000\254\000{\000\254\001\201\000\157\000\254\000e\000^\001\219\001o\0017\000.\001\006\001-\000.\000s\000.\000I\000.\002\027\000.\000s\000\004\000\147\000s\000s\000\004\000\202\001\219\001o\000\147\001\201\000P\001\020\001\219\001o\0017\001i\001\219\001o\0017\001i\000^\000\020\001\219\001o\001\177\000\218\001-\000\243\001i\001\219\001o\0000\0011\001=\001i\001\"\001o\0011\001=\001i\001s\001s\0011\001=\001i\000z\002\023\000<\000\201\000\b\000s\000\134\002\023\000\152\000p\000\218\001\165\000\170\000\200\000\212\001\219\001o\0001\001\006\000\149\000\240\001\227\000\191\000\233\000\218\000\"\001\015\001\015\001i\001\227\000\216\001\219\001o\001\237\000\218\000l\001?\000\240\000l\001\235\001o\001i\001\187\001o\001i\001\006\000o\001\227\001\b\000\020\001\219\001o\000\n\000'\000\140\000C\000\133\0002\000\252\000C\001\207\000p\000\218\000V\001o\000l\001\227\000.\002\005\000\012\001o\000\n\000\\\000\\\000\n\001!\000p\001\006\001\227\001i\000h\001o\000\n\000>\000>\000\n\000\181\000p\001\006\000\191\001i\000\158\001o\000t\000P\001\020\001o\001?\000\172\000\140\000\137\0002\001\249\000\252\001\227\001\227\001\217\001\249\002\001\002\019\001o\001?\000\172\002\001\002\001\001i\000\248\001o\001\227\000\218\001\227\001\233\001i\001c\000\224\001\167\001i\001\209\002\003\001c\002\001\001i\001\"\001o\000'\001\207\000p\000\218\002\001\001i\001u\001u\001\219\001o\000'\001\207\000p\000l\000\218\000V\001o\002\007\000\012\001\020\001o\000\\\001%\000p\000\218\000s\000I\000\218\000s\000-\001i\001o\000\n\000\\\000\\\000\n\000%\000p\001\006\001\227\001%\000p\000\218\000s\000I\000\218\000s\000h\001\020\001o\000>\000\183\000p\001\006\000\020\001\027\000\240\001\227\000\218\000s\000\191\000\218\000s\000[\001U\001i\001o\000\n\000>\000>\000\n\000#\000p\001\006\000\191\000\183\000p\001\006\000\020\001\027\000\240\001\227\000\218\000s\000\191\000\218\000s\000[\000\156\001o\000s\001i\000\158\001\020\001o\000l\000t\000H\002\023\001o\000\179\001\139\001i\000P\001\020\001o\001?\000\172\000\140\000\137\0002\002\t\000\204\001o\001\145\000b\001\133\000\172\001\217\001\255\000\153\002\t\002\017\002\019\002#\002\017\002\011\002\011\002\017\001o\001?\000\172\002\017\001o\000\179\001\139\001i\002\017\000.\001\006\000p\001\006\000K\000b\000\140\001\227\000K\000b\000\229\000K\000b\001A\000\240\000p\001\217\001\253\002\001\001\253\001\253\001\253\000.\002\017\001\030\000p\000\249\001i\001o\002\017\000\249\001i\000\248\001o\001\233\001i\001a\000\224\001\167\001i\001\209\002\015\001a\002\017\001\006\001\253\000\218\002\017\001\145\002\r\002\r\001i\001\"\001o\000'\001\207\000p\002\r\001i\001y\001y\000)\000U\000t\000]\000q\000\185\001\t\001+\001e\001\135\001\159\001\167\001i\001\173\001\219\001o\0017\001i\001\179\001\"\001o\000A\000p\000\251\000G\000\161\001i\001m\001\163\001m\001\209\001\251\000W\000s\001i\001e\000\193\001e\001\135\002\021\0002\000\193\0002\000s\001i\001e\001e\002\021\0002\001i\000E\000B\000\183\001\018\001\237\000\218\001\235\001o\001\187\001o\000\171\001i\001\185\001\215\001\183\001\185\001\213\001\215\001\237\000\218\001\235\001o\001\187\001o\000A\000p\000\251\000G\000\161\001i\000E\000B\000\183\000\171\001i\000W\000\224\0017\001-\000.\000\148\000c\000\238\000\201\000\148\000c\000\238\000\201\000p\000\201\000.\001\006\001\227\000.\002\007\001a\000\224\000\202\001\219\001o\000\147\000e\001\205\001\235\000e\000\148\000e\000\202\001\219\001o\000\147\001\201\000\148\000e\000\202\001\219\001o\000\147\001\201\000p\000s\000\004\000\147\000s\000\193\0002\000p\001\006\000\189\001o\000,\001o\000\238\001W\002\025\000,\001W\000\196\001W\000\196\000\149\000\240\001\227\000.\000b\000K\002\029\000Y\001\019\000K\002\029\002\029\000b\000K\002\029\000Y\001\019\000K\002\029\000\140\000\144\001\153\0004\000\186\001\153\0004\000\238\001\018\001\237\000\173\001\018\001\185\001\183\001\185\001\227\001\229\001\237\000\144\001\153\0004\000\186\001\153\0004\000\238\001\r\001\227\000\218\000>\000\144\001\153\0004\000\186\001\153\0004\000\238\001\229\000\144\001\153\0004\000\186\001\153\0004\000\238\001\229\001\229\001\002\001\r\000\161\001i\000E\000B\000\183\000\169\001i\001\185\001\183\001\185\000A\000p\000\251\001\002\001\r\000\161\001i\000E\000B\000\183\000\169\001i\000*\000P\001\020\001\219\001o\001A\001i\001\219\001o\001A\001i\000^\000\020\001\219\001o\001\177\001\002\001-\001i\001\219\001o\000\018\001\002\001A\001i\0000\0015\001\006\001-\000\233\001i\001\"\001o\0015\001\006\001-\000\233\001i\001q\001q\000l\0015\001\026\001\023\002\031\000.\0013\000\218\001?\001\026\001\023\000\235\001i\001\006\001-\000\233\001;\001i\001\191\001\006\001-\002\027\0019\001\191\0019\0015\000\216\001\219\001o\001\237\001\b\001\219\001o\000'\001\207\000p\001\006\001\253\001i\001\"\001o\000'\001\207\000p\001\006\001\253\001i\001w\001w\000)\000m\000q\000\185\001\007\001)\001+\001/\001g\001\159\001\167\001i\001\173\001\219\001o\001-\001i\000\233\001\179\001m\001\181\001\"\001o\000A\000p\000\251\001\002\001\r\000\161\001i\001k\001k\001\209\001\251\001g\001g\001-\000.\000\149\000\240\001\227\000.\000b\000K\002\029\000Y\001\019\000K\002\029\002\029\000b\000K\002\029\000Y\001\019\000K\002\029\000K\000b\000K\002\029\000Y\001\019\000K\002\029\002\029\000b\000K\002\029\000Y\001\019\000K\002\029\001\019\000l\000\149\000\240\001\227\000.\000b\000K\002\029\000Y\001\019\000K\002\029\002\029\000b\000K\002\029\000Y\001\019\000K\002\029\000K\000b\000K\002\029\000Y\001\019\000K\002\029\002\029\000b\000K\002\029\000Y\001\019\000K\002\029\002\025\000$\000\129\000b\000K\002\029\000Y\001\019\000K\002\029\002\029\000b\000K\002\029\000Y\001\019\000K\002\029\002\025\000$\000\129\000b\000K\002\029\000Y\001\019\000K\002\029\002\029\000b\000K\002\029\000Y\001\019\000K\002\029\001\227\000\233\001\165\000.\001\227\001\161\000.\001\165\001\165\000.\000\252\000\016\001\006\001\165\000:\001\177\001\006\001\165\001\227\000:\001\177\000\191\000\233\001i\002\021\0002\001o\000s\000\246\000s\000\242\000W\000\222\001\175\000\000\000o\000\222\001\169\000\000\000l\001\004\000.\0003\000\223\001A\000\240\000l\001\004\000.\0003\001\177\001O\001\177\001\239\002!\000\222\000\000\000\221\001\235\000\222\000\000\000\219\001\227\000\222\000\000\000s\000\222\000\217\000\000\000\215\001A\000\222\000\000\000\213\001?\000\222\000\000\000\211\0017\000\222\000\000\000\209\001-\000\222\000\000\000\207\001'\000\222\000\000\000\201\000\222\000\205\000\000\000/\000\222\000\203\001?\000\240\000\000\000\176\001\177\000\024\000\"\000\154\000\210\000/\001?\000\188\001\177\000\024\000\"\000\154\000\210\000/\001?\000\222\000M\000O\000*\000U\001_\000s\001i\000*\001_\000*\000\000\000*\000O\000U\001]\001]\000s\001i\001]\001]\0005\000s\001i\001]\000\222\001]\000\222") and rhs = - ((16, "\001\175\001\169\000\223\000\221\000\219\000\217\000\215\000\213\000\211\000\209\000\207\000\205\000\203\000M\0005\000F\000D\001\193\002#\001\030\000:\001\177\002#\001\030\000l\000:\001\177\001\006\001\165\000.\002#\001\030\000l\000\016\001\006\001\165\000.\001\"\001o\001\139\001i\001O\001\237\001\026\001\023\001\026\001\021\001\024\001\021\001\223\000E\002\023\000E\000l\000\127\000.\000E\000;\002\023\000;\000l\000\127\000.\000;\000\188\001\247\002\023\000\188\001\247\000l\000\127\000.\000\188\001\247\001A\000\240\001\221\000:\001\177\000\016\000l\000:\001\177\001\006\001\165\000.\000l\000\016\001\006\001\165\000.\000_\000_\000\240\002\021\000\193\000\138\002\021\002\019\0002\001\253\000\204\001o\002\t\001\133\000\172\002\015\000t\000P\001o\001?\000\172\002\015\000t\000P\001\020\001o\001?\000\172\002\015\002\015\002\017\001\253\000\153\001\215\000\158\001o\002\015\000\249\001i\000\158\001\020\001o\002\015\000\249\001i\000\012\000-\001i\000h\001U\001i\000\248\001o\001\231\001i\000\156\001o\000s\001i\001\167\001i\001\207\000\218\002\015\001\006\001\251\000\218\002\015\001\145\002\011\001\145\000b\002\015\001\145\002\t\001G\000l\000\201\000.\000l\000\201\001\006\001\225\000.\000l\001\225\000.\000\158\001o\001\255\001i\000\012\001o\001!\000p\001\006\001\225\001i\000h\001o\000\181\000p\001\006\000\191\001i\000\248\001o\001\231\001i\001\167\001i\001\207\001\247\000\140\000\137\0002\001\247\001\215\000V\001o\002\003\001c\000\224\001\255\002\017\000t\000P\001o\001?\000\172\001\255\000t\000P\001\020\001o\001?\000\172\001\255\000l\002\015\000.\002\007\000\140\000\137\0002\002\007\000l\002\015\001\006\001\251\000.\000V\001o\002\005\001a\000\224\001\255\000\229\000K\000b\001\251\000p\001\006\000K\000b\001\251\000K\000b\001\251\001\b\000\020\001\217\001o\000'\001\205\000p\000\218\001\255\001i\001u\001S\000\206\000\143\000\b\001\201\000\b\000\202\001\217\001o\000\147\001o\000\201\001\241\001o\000n\000\201\000\172\001\201\001o\000n\000\201\000\172\000\202\001\217\001o\000\147\001o\000\014\000\201\000\172\001\201\001o\000\014\000\201\000\172\000\202\001\217\001o\000\147\001o\000R\000\201\000\172\001\201\001o\000R\000\201\000\172\000\202\001\217\001o\000\147\000\218\001\201\001\219\001\201\000\218\001\201\001\219\000\202\001\217\001o\000\147\000\218\000\202\001\217\001o\000\147\001\219\001\201\000\218\000\202\001\217\001o\000\147\001\219\000\202\001\217\001o\000\147\000\172\001\201\000\172\000\202\001\217\001o\000\147\000+\0007\000\140\0002\000l\000.\000\210\000\024\000\018\000l\001\004\000.\001\237\001?\001?\000\240\000l\001\004\000.\000l\001\004\000.\001\237\001\225\000\218\001\225\002\023\000\233\000\198\002\023\000\233\000\131\000$\002\023\000\233\000\131\000$\000\198\002\023\000\233\000\144\001\153\0004\001\018\000\173\002#\001\225\002\017\001\011\001\209\001\221\000l\001\225\000.\000l\000^\001\217\001o\001-\000.\000\140\000Q\0002\000\140\001\018\000\139\0002\000\140\000}\001\018\000\139\0002\000\128\001\001\000\139\0002\000\128\0002\000~\001\001\000\139\0002\000~\001\001\000\139\000\196\000\151\0002\000\184\002\023\000$\000\129\000.\000\184\000p\001\006\002\023\000$\000\129\000.\000\026\000\228\000H\002\021\000|\002\021\000\193\0002\0008\001\018\001\235\000\218\001\233\001o\001\235\000\218\001\233\001o\001\215\000\134\002\021\002\019\0002\000\140\000\133\0002\000\202\001\217\001o\000\147\001\195\000e\000t\000^\001\217\001o\0011\001=\000\172\000s\000t\000\216\001\217\001o\001\235\001\187\001o\000\172\000s\000t\000P\001\217\001o\0017\000\172\000s\000t\000P\001\020\001\217\001o\0017\000\172\000s\000j\001\217\001o\000s\000\004\000\147\000\022\001\217\001o\000s\000\004\000\147\000J\001\217\001o\000s\000\004\001\201\000J\001\217\001o\000s\000\004\000\202\001\217\001o\000\147\000\174\001\217\001o\000s\000\030\001\201\000\226\001\201\000\174\001\217\001o\000s\000\030\001\201\000\226\000\202\001\217\001o\000\147\000\174\001\217\001o\000s\000\030\000\202\001\217\001o\000\147\000\226\001\201\000\174\001\217\001o\000s\000\030\000\202\001\217\001o\000\147\000\226\000\202\001\217\001o\000\147\000\174\001\217\001o\000s\000\030\001\201\000\174\001\217\001o\000s\000\030\000\202\001\217\001o\000\147\000\006\001\217\001o\000s\000\246\000s\000\242\000\206\001\217\001o\000\201\000\218\000s\001\219\000s\000\246\000s\000\242\001\028\001\217\001o\000e\000\146\001\217\001o\000e\000S\001\201\000S\000\202\001\217\001o\000\147\002%\001\201\002%\000\202\001\217\001o\000\147\000\204\001\217\001o\001\197\000\231\000b\001\203\000e\000\153\000&\000e\000\167\001\233\000e\001\031\000e\001\201\000\168\001\201\001\201\000\168\000\202\001\217\001o\000\147\001\201\001\026\001\201\001\201\001\026\000\202\001\217\001o\000\147\001\201\001\024\001\201\001\201\001\024\000\202\001\217\001o\000\147\001\201\000\166\001\201\001\201\000\166\000\202\001\217\001o\000\147\001\201\000\164\001\201\001\201\000\164\000\202\001\217\001o\000\147\001\201\000\162\001\201\001\201\000\162\000\202\001\217\001o\000\147\001\201\000`\001\201\001\201\000`\000\202\001\217\001o\000\147\001\201\000\160\001\201\001\201\000\160\000\202\001\217\001o\000\147\001\201\000F\001\201\001\201\000F\000\202\001\217\001o\000\147\001\201\000D\001\201\001\201\000D\000\202\001\217\001o\000\147\001\201\000B\001\201\001\201\000B\000\202\001\217\001o\000\147\001\201\000f\001\201\001\201\000f\000\202\001\217\001o\000\147\001\201\000d\001\201\001\201\000d\000\202\001\217\001o\000\147\001\201\000$\001\201\001\201\000$\000\202\001\217\001o\000\147\001\201\000H\001\201\001\201\000H\000\202\001\217\001o\000\147\001\201\000\218\001\201\001\201\000\218\000\202\001\217\001o\000\147\001\201\000x\001\201\001\201\000x\000\202\001\217\001o\000\147\001\201\000\196\001\201\001\201\000\196\000\202\001\217\001o\000\147\001\201\000L\001\201\001\201\000L\000\202\001\217\001o\000\147\001\201\001\016\001\201\001\201\001\016\000\202\001\217\001o\000\147\001\201\001$\001\201\001\201\001$\000\202\001\217\001o\000\147\001\201\001&\001\201\001\201\001&\000\202\001\217\001o\000\147\001\201\001\002\001\201\001\201\001\002\000\202\001\217\001o\000\147\001\135\000\172\000s\000r\001{\000\172\000s\001\201\001\004\001\201\001\201\001\004\000\202\001\217\001o\000\147\000p\000v\001\201\000p\000v\000\202\001\217\001o\000\147\000e\000\240\001\149\000v\001\201\000e\000\240\001\149\000v\000\202\001\217\001o\000\147\000e\000\240\000l\000s\000.\000v\001\201\000e\000\240\000l\000s\000.\000v\000\202\001\217\001o\000\147\000e\000\240\000\144\000s\0004\000v\001\201\000e\000\240\000\144\000s\0004\000v\000\202\001\217\001o\000\147\000e\000\240\000\140\000s\0002\000v\001\201\000e\000\240\000\140\000s\0002\000v\000\202\001\217\001o\000\147\000e\000\232\000l\000{\000.\000v\001\201\000e\000\232\000l\000{\000.\000v\000\202\001\217\001o\000\147\000e\000\240\001?\000\232\000l\000{\000.\000v\001\201\000e\000\240\001?\000\232\000l\000{\000.\000v\000\202\001\217\001o\000\147\000e\000\232\000\144\000{\0004\000v\001\201\000e\000\232\000\144\000{\0004\000v\000\202\001\217\001o\000\147\000e\000\240\001?\000\232\000\144\000{\0004\000v\001\201\000e\000\240\001?\000\232\000\144\000{\0004\000v\000\202\001\217\001o\000\147\000e\000\232\000\140\000{\0002\000v\001\201\000e\000\232\000\140\000{\0002\000v\000\202\001\217\001o\000\147\000e\000\240\001?\000\232\000\140\000{\0002\000v\001\201\000e\000\240\001?\000\232\000\140\000{\0002\000v\000\202\001\217\001o\000\147\001\201\002\017\000n\000s\000\014\000s\000R\000s\000\214\000s\000l\000\020\001\027\000.\000l\000\020\000p\001\006\001\165\000.\001\145\000\159\001\201\001\201\000,\001\201\000,\000s\001\201\000,\000H\002\021\000s\000K\000Y\000l\000.\000l\0015\001\006\001-\000.\000l\0015\001\006\001-\002\025\000.\000\155\000T\001\229\001\006\001\229\000b\002\023\001\006\000\149\000\240\001\229\000b\002\023\001\006\002\023\001\006\000\149\000\240\002\023\001\018\001\235\001\187\001o\001\235\001\187\001o\000\020\001\217\001o\000A\000p\000\251\001\002\001\r\000\161\001i\000\020\001\217\001o\000X\000A\000p\000\251\001\002\001\r\000\161\001i\000\020\001\217\001o\000A\000p\000\251\000G\000\161\001i\000\020\001\217\001o\000X\000A\000p\000\251\000G\000\161\001i\000\018\000p\000W\000\222\000\170\000\170\000\200\000,\000\238\000o\000\222\000z\002\021\000\193\0002\0006\001\161\001\006\001\165\001\165\000`\001\025\001\165\000\004\001\225\001\177\000\150\001\225\000\016\000\175\000l\001\161\000.\000\152\000p\000\218\001\165\001#\000p\001\006\000\189\000\233\001o\001#\000p\001\006\000\189\000\233\001o\000,\001o\001\157\001\155\001\155\001\153\000p\000p\002\027\000p\001\006\001\225\000p\001\006\001\225\002\025\000p\001\006\000\149\000\240\001\225\000p\001\006\000\149\000\240\001\225\002\025\001G\000e\000\148\000e\000\028\000p\000\028\000l\000p\000I\000.\000<\000p\000N\000e\000<\000l\001\151\000\239\000.\000<\000l\001\019\001\151\000\239\000.\000<\000p\000N\000l\001\131\000\239\000.\000N\000l\001\019\001\131\000\239\000.\000N\000\195\000\028\000l\001\151\000.\000\028\000l\001\019\001\151\000.\000\028\000p\000\148\000c\000\148\000l\001\127\000.\000\148\000l\001\019\001\127\000.\000\148\000l\001\019\000\201\000.\000c\000l\001\019\001\129\000.\000l\001\127\000.\000l\001\019\001\127\000.\000\148\000l\000\201\001\006\000\149\000\240\001\225\000.\000\148\000l\001\019\000\201\001\006\000\149\000\240\001\225\000.\000l\000\201\001\006\000\149\000\240\001\225\000.\001\143\000\252\000\201\001\143\000\252\000\148\000c\001\143\000\252\000\028\000p\001\143\000\252\000\028\000l\000p\001\006\001\225\000.\000\201\000\252\000\201\000\201\000\252\000\148\000c\000\201\000\252\000\028\000p\000\201\000\252\000\028\000l\000p\001\006\001\225\000.\000\148\000c\000\252\000\201\000\148\000c\000\252\000\148\000c\000\148\000c\000\252\000\028\000p\000\148\000c\000\252\000\028\000l\000p\001\006\001\225\000.\000\028\000p\000\252\000\201\000\028\000p\000\252\000\148\000c\000\028\000p\000\252\000\028\000p\000\028\000p\000\252\000\028\000l\000p\001\006\001\225\000.\000\028\000l\000p\001\006\001\225\000.\000\252\000\201\000\028\000l\000p\001\006\001\225\000.\000\252\000\148\000c\000\028\000l\000p\001\006\001\225\000.\000\252\000\028\000p\000\028\000l\000p\001\006\001\225\000.\000\252\000\028\000l\000p\001\006\001\225\000.\001\141\000\252\000\197\001\141\000\252\000\148\000c\001\141\000\252\000\028\000p\001\141\000\252\000\028\000l\000p\001\006\001\225\000.\000\197\000\252\000\197\000\197\000\252\000\148\000c\000\197\000\252\000\028\000p\000\197\000\252\000\028\000l\000p\001\006\001\225\000.\000\148\000c\000\252\000\197\000\148\000c\000\252\000\148\000c\000\148\000c\000\252\000\028\000p\000\148\000c\000\252\000\028\000l\000p\001\006\001\225\000.\000\028\000p\000\252\000\197\000\028\000p\000\252\000\148\000c\000\028\000p\000\252\000\028\000p\000\028\000p\000\252\000\028\000l\000p\001\006\001\225\000.\000\028\000l\000p\001\006\001\225\000.\000\252\000\197\000\028\000l\000p\001\006\001\225\000.\000\252\000\148\000c\000\028\000l\000p\001\006\001\225\000.\000\252\000\028\000p\000\028\000l\000p\001\006\001\225\000.\000\252\000\028\000l\000p\001\006\001\225\000.\001\137\0001\0001\000[\0001\000I\000\218\000s\0001\000I\002\025\000\218\000s\0001\002\027\000\218\000s\001\019\0001\000I\000\218\000s\001\019\0001\000I\002\025\000\218\000s\001\019\0001\002\027\000\218\000s\0001\001\006\000\149\000\240\001\225\000\218\000s\0001\001\006\000\149\000\240\001\225\002\025\000\218\000s\001\019\0001\001\006\000\149\000\240\001\225\000\218\000s\001\019\0001\001\006\000\149\000\240\001\225\002\025\000\218\000s\0001\001\006\000\020\001\027\000\240\001\225\000\218\000s\0001\001\006\000\020\001\027\000\240\001\225\002\025\000\218\000s\000\197\000\218\000s\000a\002\027\000\218\000s\000a\001\006\001\225\000\218\000s\000a\001\006\001\225\002\025\000\218\000s\001\019\0001\000[\000l\0001\002\027\000.\000[\000t\001\217\001o\000\179\001\139\001i\001\135\002!\000t\001o\000\179\001\139\001i\000t\000H\002\021\001o\000\179\001\139\001i\001\133\002!\000\201\000\201\002\027\000\201\001\006\001\225\000\201\001\006\001\225\002\025\000\201\001\006\000\149\000\240\001\225\000\201\001\006\000\149\000\240\001\225\002\025\000l\001\127\000.\000\201\000\201\001\006\001\225\000\201\001\006\000\149\000\240\001\225\000\201\002\027\000\201\001\006\001\225\002\025\000\201\001\006\000\149\000\240\001\225\002\025\000l\001\127\000.\0001\000[\0001\000c\001\006\001\225\000\218\000s\000\197\000\218\000s\001}\001{\001 \001}\001\"\001o\000'\001\205\000p\002\011\001i\001y\001\"\001o\000'\001\205\000p\001\006\001\251\001i\001w\001\"\001o\000'\001\205\000p\000\218\001\255\001i\001u\001\"\001o\0011\001=\001i\001s\001\"\001o\0015\001\006\001-\000\233\001i\001q\002\017\001o\001\"\001o\000A\000p\000\251\000G\000\161\001i\001m\001\"\001o\000A\000p\000\251\001\002\001\r\000\161\001i\001k\000\187\001i\000*\001g\000m\001g\000*\001e\000*\000s\001i\001e\000U\001e\002\001\001c\002\r\001a\000U\001_\000*\001]\000*\000s\001i\001]\000U\001]\000O\001]\001\149\000\247\000\241\001\149\000\247\000\241\000,\001\149\000\247\000\241\000,\000\016\000\255\001\149\000\247\000\241\000,\001[\000\201\000b\000s\000\201\000\b\000s\000b\000s\000\201\000b\000\240\000p\001\006\000\189\001o\000,\001o\001W\002\023\000,\001W\000p\001\006\000\189\001o\000,\001o\002\023\000,\000p\001\006\000\189\001o\002\023\000\238\001o\000#\000p\001\006\000\191\001o\000\183\000p\000[\001\020\001o\000\183\000p\000[\001o\000\183\000p\001\006\000\191\000\218\000s\001\020\001o\000\183\000p\001\006\000\191\000\218\000s\001o\000\183\000p\001\006\000\020\001\027\000\240\001\225\000\218\000s\001\020\001o\000\183\000p\001\006\000\020\001\027\000\240\001\225\000\218\000s\000p\001A\000\240\000p\000\018\001A\000\240\000\018\001\177\000l\001\004\000.\0003\001A\000\240\001\177\001A\000\240\000l\001\004\000.\001A\000\240\0003\001\177\001A\000\240\001\177\000?\001A\000\240\000?\000=\001A\000\240\000=\000p\001?\000\240\000p\000\018\001?\000\240\000\018\0001\001?\000\240\0001\001Q\001A\000l\001A\000.\001E\000\218\0017\001\006\001-\000\218\0017\001\006\001-\002\025\000\218\0017\002\027\000\218\0017\001\191\001=\001\006\001-\000\233\001\191\0019\001\006\001-\001\006\001-\002\025\001\191\0019\000 \001o\000W\000\224\000\200\001o\001\189\000b\0017\000\227\0017\002\017\001?\0017\000\227\0017\000l\000.\001\215\000\016\000\018\000\016\0015\000l\0015\002\029\000.\0015\000l\0015\002\027\000.\000^\001\217\001o\000\018\001\002\001A\001i\000(\001o\000o\000\224\000\200\001o\001\189\000b\001-\000\200\001o\001\189\000b\001-\002\027\000^\000\020\000T\001o\0017\000l\001-\000.\001-\002\017\001'\000l\000.\000b\001-\000l\000.\000b\001-\002\027\001-\000b\001-\001-\000b\001-\002\027\001-\002\027\000b\001-\001-\002\027\000b\001-\002\027\001-\000\004\000\141\001\215\001-\000\004\001A\000^\000\020\001\217\001o\001\177\000\243\001i\000^\000\020\001\217\001o\001\177\001\002\001-\001i\001M\000\\\000\\\000\198\000\\\000\n\000\\\000\n\000\n\000\\\001\022\001\177\000p\000l\000p\001\006\001\165\000.\001\017\000p\000p\001\025\000p\000p\001\023\000p\000p\001\021\000n\000\014\000R\000n\001\019\000\014\001\019\000R\001\019\001\029\001\029\001\017\000\"\000\"\001\015\001\225\000>\001\225\001\227\000>\001\227\001\225\000\218\001\227\001\225\000\218\000>\001\227\000\238\000>\000\238\001\225\000\218\000\238\001\225\000\218\000>\000\238\000\144\001\153\0004\000>\000\144\001\153\0004\001\225\000\218\000\144\001\153\0004\001\225\000\218\000>\000\144\001\153\0004\000\186\001\153\0004\000>\000\186\001\153\0004\001\225\000\218\000\186\001\153\0004\001\225\000\218\000>\000\186\001\153\0004\000x\001W\000\196\000x\000\196\000P\001\217\001o\0017\001i\000P\001\020\001\217\001o\0017\001i\000P\001\217\001o\001A\001i\000P\001\020\001\217\001o\001A\001i\000@\000r\001 \000\232\000l\001\171\000.\000\232\000l\001\171\000.\000v\000\232\000\140\001\171\0002\000\232\000\140\001\171\0002\000v\000\232\000\144\001\171\0004\000\232\000\144\001\171\0004\000v\000\182\001\020\000\168\001\026\001\024\000\166\000\164\000\162\000`\000\160\000F\000D\000B\000f\000d\000$\000H\000\218\000x\000\196\000L\001\016\001$\001&\001\002\001$\001\018\000,\000I\000I\002\025\002\027\001\163\001\030\000p\001\006\001\225\000\218\001\201\000\218\000\202\001\217\001o\000\147\000\218\001-\000\218\000\201\000\218\000s\000I\001\026\001\023\001\024\001\023\001\006\002\023\001\006\002\023\002\025\002\027\000N\000<\000p\001\006\000l\0017\001\006\001-\000.\000l\0017\001\006\001-\002\025\000.\000l\0017\002\027\000.\000l\0017\000.\000l\000\012\001o\001\201\000.\000l\000\012\001o\000\202\001\217\001o\000\147\000.\000l\000\012\001o\001\201\001\006\001-\000.\000l\000\012\001o\000\202\001\217\001o\000\147\001\006\001-\000.\000l\000\012\001o\001\201\001\006\001-\001\000\001-\000.\000l\000\012\001o\000\202\001\217\001o\000\147\001\006\001-\001\000\001-\000.\000l\000\012\001o\001\201\001\000\001-\000.\000l\000\012\001o\000\202\001\217\001o\000\147\001\000\001-\000.\000C\0009\000:\001\177\001o\001\006\001\165\0009\000\016\001o\001\006\001\165\002\031\000\222\001\233\000\222\001\225\000\222\000s\000\222\001A\000\222\001?\000\222\0017\000\222\001-\000\222\001'\000\222\000\201\000\222\000/\000\222\000\201\001\004\000\201\000\201\002\017\000\199\000\201\001\030\0001\000\201\001\018\000\201\000\165\000\216\001\217\001o\000\201\000c\001\233\000\201\001\233\000l\000\020\001\025\000.\000c\001\031\000\201\000\146\001\217\001o\000c\000\197\001\004\000\201\000\197\002\017\000\199\000\197\001\030\0001\000\197\001\018\000\201\000\163\000p\000\016\000W\001\006\000o\001\006\001\225\000<\000\201\000<\000\201\000\b\000s\001\225\000\149\000\240\001\225\002#\000\149\000\240\002#\000\136\002\021\002\019\0002\000\212\001\217\001o\0001\001\006\000\191\000\233\000\218\001\015\001i\000>\000>\000\n\000>\000\n\000\n\000>\0000\000u\000e\000\004\000u\001\165\001$\001\165\000\175\001$\001\165\001\183\001\185\000\173\001\185\001\183\001\211\001\185\001\213\000\171\001\185\000\171\001\213\001\183\001\185\000\169\001\185\000\167\000\252\001\201\000\167\000\252\000\202\001\217\001o\000\147\000\167\000\252\000\148\000e\000\167\000\252\000\028\000p\000\167\000\252\000\028\000l\000p\000I\000.\001\201\000\252\001\201\001\201\000\252\000\202\001\217\001o\000\147\001\201\000\252\000\148\000e\001\201\000\252\000\028\000p\001\201\000\252\000\028\000l\000p\000I\000.\000\202\001\217\001o\000\147\000\252\001\201\000\202\001\217\001o\000\147\000\252\000\202\001\217\001o\000\147\000\202\001\217\001o\000\147\000\252\000\148\000e\000\202\001\217\001o\000\147\000\252\000\028\000p\000\202\001\217\001o\000\147\000\252\000\028\000l\000p\000I\000.\000\148\000e\000\252\001\201\000\148\000e\000\252\000\202\001\217\001o\000\147\000\148\000e\000\252\000\148\000e\000\148\000e\000\252\000\028\000p\000\148\000e\000\252\000\028\000l\000p\000I\000.\000\028\000p\000\252\001\201\000\028\000p\000\252\000\202\001\217\001o\000\147\000\028\000p\000\252\000\148\000e\000\028\000p\000\252\000\028\000p\000\028\000p\000\252\000\028\000l\000p\000I\000.\000\028\000l\000p\000I\000.\000\252\001\201\000\028\000l\000p\000I\000.\000\252\000\202\001\217\001o\000\147\000\028\000l\000p\000I\000.\000\252\000\148\000e\000\028\000l\000p\000I\000.\000\252\000\028\000p\000\028\000l\000p\000I\000.\000\252\000\028\000l\000p\000I\000.\001\143\001\143\000\252\000\238\000\201\000\252\000\238\000\148\000c\000\252\000\238\000\028\000p\000\252\000\238\000\028\000l\000p\001\006\001\225\000.\000\252\000\238\001\141\001\141\000\252\000\238\000\197\000\252\000\238\000\148\000c\000\252\000\238\000\028\000p\000\252\000\238\000\028\000l\000p\001\006\001\225\000.\000\252\000\238\000\161\000\248\001\225\000\218\001\225\001\199\000\159\001\199\001\245\000\157\001\245\001\191\000\155\001\191\001\147\000\153\001\147\001\031\000\151\001\031\000:\001\177\000l\000:\001\177\001\006\001\165\000.\000\149\000:\001\177\000\149\000l\000:\001\177\001\006\001\165\000.\001Y\001\018\001Y\000\147\001\018\001Y\002#\000\145\001$\002#\001\243\000\143\001\"\001\243\000!\000\141\001\"\000!\000}\000\139\001\018\000}\001\225\000\137\000\252\001\225\000\225\000\135\000\252\000\225\000C\000\133\000\252\000C\002\023\000\233\000\198\002\023\000\233\000\131\000$\002\023\000\233\000\131\000$\000\198\002\023\000\233\002\023\000p\001\006\002\023\000\129\000$\002\023\000\129\000$\000p\001\006\002\023\000\127\000\252\001\225\000\127\000\252\000:\001\177\001\006\001\165\000\127\000\252\000\016\001\006\001\165\001\225\000\252\001\225\001\225\000\252\000:\001\177\001\006\001\165\001\225\000\252\000\016\001\006\001\165\000:\001\177\001\006\001\165\000\252\001\225\000:\001\177\001\006\001\165\000\252\000:\001\177\001\006\001\165\000:\001\177\001\006\001\165\000\252\000\016\001\006\001\165\000\016\001\006\001\165\000\252\001\225\000\016\001\006\001\165\000\252\000:\001\177\001\006\001\165\000\016\001\006\001\165\000\252\000\016\001\006\001\165\000Q\001\225\001\201\001\201\000,\000\202\001\217\001o\000\147\000\202\001\217\001o\000\147\000,\001\201\000,\000{\000\202\001\217\001o\000\147\000,\000{\000p\000\245\000p\000\245\000,\000p\000\245\000,\000y\000\201\000\201\000,\000\201\000,\000w\001\149\000\237\000\245\001\149\000\237\000\245\000,\001\149\000\237\000\245\000,\000u\001\195\000\202\001\217\001o\000\147\000\216\001\217\001o\001\235\001\187\001o\001i\000\233\001g\001\167\001i\001\207\001\159\000)\000\185\001\179\001m\001\181\001k\000\020\001\217\001o\000A\000E\000B\000\183\000\169\001i\000\020\001\217\001o\000X\000A\000E\000B\000\183\000\169\001i\000q\000^\001\217\001o\0013\001;\001i\000^\001\217\001o\0013\000\218\001?\000\235\001i\001/\000^\001\217\001o\0000\0015\001\006\001-\000\233\001i\001q\001+\001)\001\007\001\b\001\217\001o\000'\001\205\000p\001\006\001\251\001i\001w\001\249\001\173\001\217\001o\001-\001i\000\233\000i\0007\000f\000\178\000f\000\180\000F\000\178\000F\000\180\000+\000f\000\154\000f\000\208\000F\000\154\000F\000\208\000\144\001[\0004\000\186\001[\0004\000\140\000w\0002\000\132\000w\001\014\000\132\001\014\000\130\000w\000\254\000\130\000\254\000\184\000\165\000.\000\234\001\201\000\194\000\234\000\202\001\217\001o\000\147\000\194\000\230\000e\000l\000s\000.\000l\000s\000I\000.\000l\000s\000I\002\025\000.\000e\000\240\000l\000s\000.\000e\000\240\000\144\000s\0004\000e\000\240\000\140\000s\0002\000e\000\232\000l\000{\000.\000e\000\240\001?\000\232\000l\000{\000.\000e\000\232\000\144\000{\0004\000e\000\240\001?\000\232\000\144\000{\0004\000e\000\232\000\140\000{\0002\000e\000\240\001?\000\232\000\140\000{\0002\001\012\001\217\001o\000s\000\224\001\012\001\217\001o\000\224\000Z\001\217\001o\002\007\000l\000^\001\217\001o\0017\000.\000l\000^\001\217\001o\0017\001\006\001-\000.\000V\001\217\001o\002\005\001a\000\224\000/\001\233\001\031\000@\000e\001\020\000e\000\142\000y\000\192\000\142\000\192\000e\000\240\001\149\000e\000\236\001\149\001?\000\240\000l\000s\000.\001?\000\240\000\142\000y\000\192\000e\000\188\000p\000e\000\176\000p\000e\000\182\000e\001\215\000\016\001?\000\240\000l\000.\000\144\000\177\0004\000\186\000\177\0004\001?\000\240\000\144\000\177\0004\000\132\000{\001\014\000\132\001\014\001?\000\240\000\132\000{\001\014\001?\000\240\000\132\001\014\000\140\000{\0002\001?\000\240\000\140\001\201\000\157\0002\001?\000\240\000\140\000\202\001\217\001o\000\147\000\157\0002\001?\000\240\000\132\001\201\000\157\001\014\001?\000\240\000\132\000\202\001\217\001o\000\147\000\157\001\014\001?\000\240\000\130\001\201\000\157\000\254\001?\000\240\000\130\000\202\001\217\001o\000\147\000\157\000\254\001?\000\240\000\140\000{\0002\001?\000\240\000\140\0002\001?\000\240\000l\000^\001\217\001o\0017\001\006\001-\000.\000\184\000\167\000.\000\130\000{\000\254\000\130\000\254\001?\000\240\000\130\000{\000\254\001?\000\240\000\130\000\254\001\239\000\140\001\201\000\157\0002\000\140\000\202\001\217\001o\000\147\000\157\0002\000\132\001\201\000\157\001\014\000\132\000\202\001\217\001o\000\147\000\157\001\014\000\130\001\201\000\157\000\254\000\130\000\202\001\217\001o\000\147\000\157\000\254\0001\000a\000l\000\201\000.\000g\000l\000^\001\217\001o\0015\000.\000l\000^\001\217\001o\0015\001\006\001-\000.\000\016\000i\000\238\000i\001\233\001\031\000\188\000E\000\176\000E\001?\000\240\000g\001?\000\240\000\140\0002\001?\000\240\000l\000.\001?\000\240\000l\000\201\000.\001\215\000l\000\201\001\006\001\225\000.\000k\000p\000\018\001\"\001\030\001\028\001\012\001\b\000\248\000\246\000\242\000\228\000\226\000\224\000\216\000\212\000\210\000\206\000\204\000\202\000\200\000\174\000\172\000\170\000\158\000\156\000\146\000t\000n\000j\000h\000^\000\\\000Z\000X\000V\000T\000P\000L\000>\0000\000(\000 \000\030\000\026\000\024\000\022\000\020\000\012\000\n\000\b\000\006\000\004\000q\000\216\001\217\001o\001\235\000\218\001\233\001o\001i\000\218\000s\001\197\000\253\000\218\001\203\000\229\000l\000\149\000\240\001\225\000.\000b\000Y\000\229\000l\000\149\000\240\001\225\000.\002\027\000b\000Y\000\229\000K\000b\000Y\000\229\000K\002\027\000b\000Y\000\229\001\019\000l\000\149\000\240\001\225\000.\000b\000Y\000\229\001\019\000l\000\149\000\240\001\225\000.\002\027\000b\000Y\000\229\001\019\000K\000b\000Y\000\229\001\019\000K\002\027\000b\000Y\000p\001\006\000l\000\149\000\240\001\225\000.\000b\000Y\000p\001\006\000l\000\149\000\240\001\225\000.\002\027\000b\000Y\000p\001\006\000K\000b\000Y\000p\001\006\000K\002\027\000b\000Y\000p\001\006\001\019\000l\000\149\000\240\001\225\000.\000b\000Y\000p\001\006\001\019\000l\000\149\000\240\001\225\000.\002\027\000b\000Y\000p\001\006\001\019\000K\000b\000Y\000p\001\006\001\019\000K\002\027\000b\000Y\000l\000\149\000\240\001\225\000.\000b\000Y\000l\000\149\000\240\001\225\000.\002\027\000b\000Y\000K\000b\000Y\000K\002\027\000b\000Y\001\019\000l\000\149\000\240\001\225\000.\000b\000Y\001\019\000l\000\149\000\240\001\225\000.\002\027\000b\000Y\001\019\000K\000b\000Y\001\019\000K\002\027\000b\000Y\000\229\000l\000\149\000\240\001\225\000.\000b\000K\000\229\000l\000\149\000\240\001\225\000.\000b\000K\002\027\000\229\000l\000\149\000\240\001\225\000.\000b\001\019\000K\000\229\000l\000\149\000\240\001\225\000.\000b\001\019\000K\002\027\000\229\000l\000\149\000\240\001\225\000.\002\027\000b\000K\000\229\000l\000\149\000\240\001\225\000.\002\027\000b\000K\002\027\000\229\000l\000\149\000\240\001\225\000.\002\027\000b\001\019\000K\000\229\000l\000\149\000\240\001\225\000.\002\027\000b\001\019\000K\002\027\000\229\000K\000b\000K\000\229\000K\000b\000K\002\027\000\229\000K\000b\001\019\000K\000\229\000K\000b\001\019\000K\002\027\000\229\000K\002\027\000b\000K\000\229\000K\002\027\000b\000K\002\027\000\229\000K\002\027\000b\001\019\000K\000\229\000K\002\027\000b\001\019\000K\002\027\000\229\001\019\000l\000\149\000\240\001\225\000.\000b\000K\000\229\001\019\000l\000\149\000\240\001\225\000.\000b\000K\002\027\000\229\001\019\000l\000\149\000\240\001\225\000.\000b\001\019\000K\000\229\001\019\000l\000\149\000\240\001\225\000.\000b\001\019\000K\002\027\000\229\001\019\000l\000\149\000\240\001\225\000.\002\027\000b\000K\000\229\001\019\000l\000\149\000\240\001\225\000.\002\027\000b\000K\002\027\000\229\001\019\000l\000\149\000\240\001\225\000.\002\027\000b\001\019\000K\000\229\001\019\000l\000\149\000\240\001\225\000.\002\027\000b\001\019\000K\002\027\000\229\001\019\000K\000b\000K\000\229\001\019\000K\000b\000K\002\027\000\229\001\019\000K\000b\001\019\000K\000\229\001\019\000K\000b\001\019\000K\002\027\000\229\001\019\000K\002\027\000b\000K\000\229\001\019\000K\002\027\000b\000K\002\027\000\229\001\019\000K\002\027\000b\001\019\000K\000\229\001\019\000K\002\027\000b\001\019\000K\002\027\000p\001\006\000l\000\149\000\240\001\225\000.\000b\000K\000p\001\006\000l\000\149\000\240\001\225\000.\000b\000K\002\027\000p\001\006\000l\000\149\000\240\001\225\000.\000b\001\019\000K\000p\001\006\000l\000\149\000\240\001\225\000.\000b\001\019\000K\002\027\000p\001\006\000l\000\149\000\240\001\225\000.\002\027\000b\000K\000p\001\006\000l\000\149\000\240\001\225\000.\002\027\000b\000K\002\027\000p\001\006\000l\000\149\000\240\001\225\000.\002\027\000b\001\019\000K\000p\001\006\000l\000\149\000\240\001\225\000.\002\027\000b\001\019\000K\002\027\000p\001\006\000K\000b\000K\000p\001\006\000K\000b\000K\002\027\000p\001\006\000K\000b\001\019\000K\000p\001\006\000K\000b\001\019\000K\002\027\000p\001\006\000K\002\027\000b\000K\000p\001\006\000K\002\027\000b\000K\002\027\000p\001\006\000K\002\027\000b\001\019\000K\000p\001\006\000K\002\027\000b\001\019\000K\002\027\000p\001\006\001\019\000l\000\149\000\240\001\225\000.\000b\000K\000p\001\006\001\019\000l\000\149\000\240\001\225\000.\000b\000K\002\027\000p\001\006\001\019\000l\000\149\000\240\001\225\000.\000b\001\019\000K\000p\001\006\001\019\000l\000\149\000\240\001\225\000.\000b\001\019\000K\002\027\000p\001\006\001\019\000l\000\149\000\240\001\225\000.\002\027\000b\000K\000p\001\006\001\019\000l\000\149\000\240\001\225\000.\002\027\000b\000K\002\027\000p\001\006\001\019\000l\000\149\000\240\001\225\000.\002\027\000b\001\019\000K\000p\001\006\001\019\000l\000\149\000\240\001\225\000.\002\027\000b\001\019\000K\002\027\000p\001\006\001\019\000K\000b\000K\000p\001\006\001\019\000K\000b\000K\002\027\000p\001\006\001\019\000K\000b\001\019\000K\000p\001\006\001\019\000K\000b\001\019\000K\002\027\000p\001\006\001\019\000K\002\027\000b\000K\000p\001\006\001\019\000K\002\027\000b\000K\002\027\000p\001\006\001\019\000K\002\027\000b\001\019\000K\000p\001\006\001\019\000K\002\027\000b\001\019\000K\002\027\000l\000\149\000\240\001\225\000.\000b\000K\000l\000\149\000\240\001\225\000.\000b\000K\002\027\000l\000\149\000\240\001\225\000.\000b\001\019\000K\000l\000\149\000\240\001\225\000.\000b\001\019\000K\002\027\000l\000\149\000\240\001\225\000.\002\027\000b\000K\000l\000\149\000\240\001\225\000.\002\027\000b\000K\002\027\000l\000\149\000\240\001\225\000.\002\027\000b\001\019\000K\000l\000\149\000\240\001\225\000.\002\027\000b\001\019\000K\002\027\000K\000b\000K\000K\000b\000K\002\027\000K\000b\001\019\000K\000K\000b\001\019\000K\002\027\000K\002\027\000b\000K\000K\002\027\000b\000K\002\027\000K\002\027\000b\001\019\000K\000K\002\027\000b\001\019\000K\002\027\001\019\000l\000\149\000\240\001\225\000.\000b\000K\001\019\000l\000\149\000\240\001\225\000.\000b\000K\002\027\001\019\000l\000\149\000\240\001\225\000.\000b\001\019\000K\001\019\000l\000\149\000\240\001\225\000.\000b\001\019\000K\002\027\001\019\000l\000\149\000\240\001\225\000.\002\027\000b\000K\001\019\000l\000\149\000\240\001\225\000.\002\027\000b\000K\002\027\001\019\000l\000\149\000\240\001\225\000.\002\027\000b\001\019\000K\001\019\000l\000\149\000\240\001\225\000.\002\027\000b\001\019\000K\002\027\001\019\000K\000b\000K\001\019\000K\000b\000K\002\027\001\019\000K\000b\001\019\000K\001\019\000K\000b\001\019\000K\002\027\001\019\000K\002\027\000b\000K\001\019\000K\002\027\000b\000K\002\027\001\019\000K\002\027\000b\001\019\000K\001\019\000K\002\027\000b\001\019\000K\002\027\000p\001\006\002\023\000$\000\129\000b\000Y\000p\001\006\002\023\000$\000\129\002\027\000b\000Y\000p\001\006\001\019\002\023\000$\000\129\000b\000Y\000p\001\006\001\019\002\023\000$\000\129\002\027\000b\000Y\000p\001\006\002\023\000$\000\129\000b\000K\000p\001\006\002\023\000$\000\129\000b\000K\002\027\000p\001\006\002\023\000$\000\129\000b\001\019\000K\000p\001\006\002\023\000$\000\129\000b\001\019\000K\002\027\000p\001\006\002\023\000$\000\129\002\027\000b\000K\000p\001\006\002\023\000$\000\129\002\027\000b\000K\002\027\000p\001\006\002\023\000$\000\129\002\027\000b\001\019\000K\000p\001\006\002\023\000$\000\129\002\027\000b\001\019\000K\002\027\000p\001\006\001\019\002\023\000$\000\129\000b\000K\000p\001\006\001\019\002\023\000$\000\129\000b\000K\002\027\000p\001\006\001\019\002\023\000$\000\129\000b\001\019\000K\000p\001\006\001\019\002\023\000$\000\129\000b\001\019\000K\002\027\000p\001\006\001\019\002\023\000$\000\129\002\027\000b\000K\000p\001\006\001\019\002\023\000$\000\129\002\027\000b\000K\002\027\000p\001\006\001\019\002\023\000$\000\129\002\027\000b\001\019\000K\000p\001\006\001\019\002\023\000$\000\129\002\027\000b\001\019\000K\002\027\000p\001\006\002\023\000$\000\129\001e\000s\001i\001e\001\135\001\167\001i\001\207\001\159\000\185\000)\001\179\001m\000\020\001\217\001o\000A\000E\000B\000\183\000\171\001i\000\020\001\217\001o\000X\000A\000E\000B\000\183\000\171\001i\000]\000^\001\217\001o\0011\001=\001i\000^\001\217\001o\0000\0011\001=\001i\001s\001+\001\t\001\b\001\217\001o\000'\001\205\000p\002\011\001i\001y\001\249\001\173\001\217\001o\0017\001i\000f\000d\001\031\000T\001\003\000\145\001o\001\031\001o\000\188\001\177\000\188\001\177\000\"\000\188\001\177\000\154\000\188\001\177\000/\000\188\001\177\001?\000\188\001\177\000\210\000\188\001\177\000\024\000\176\001\177\000\176\001\177\000\"\000\176\001\177\000\154\000\176\001\177\000/\000\176\001\177\001?\000\176\001\177\000\210\000\176\001\177\000\024\000s\001i\000*\001_\000*\000O\000*\000\222\002\023\002\023\000$\000\129\001\006\001\225\001\006\001\225\001\000\001\225\001\000\001\225\000\218\001\r\001I\0009\000:\001\177\001o\0009\000\016\001o\000C\000l\000\135\000.\000p\000\176\000p\001K\000F\000f\001\020\000F\001\020\001\020\000F\000f\001\020\001\020\000f\000\164\000@\000\178\000\180\001]\000\222\000s\001i\001]\000\222\000l\001\005\000.\000p\0003\001C\001o\000%\000p\001\006\001\225\001o\001%\000p\000\218\000s\001\020\001o\001%\000p\000\218\000s\001o\001%\000p\000I\000\218\000s\001\020\001o\001%\000p\000I\000\218\000s\000\154\001\n\000\"\000\208\000\012\001\217\001o\0001\001\006\000\191\000\233\001i\000\n\000\n\000\\\000\n\000\n\000\\\000\n\000>\000\n\000\n\000>\000\020\000A\001\149\000\031\002#\000\161\000\020\000A\001\149\001\002\002#\000^\001?\000\218\001A\000^\001?\001\002\001A\000^\000\020\001'\000\218\001-\000^\000\020\001'\001\002\001-\000\218\000\218\000>"), (16, "\000\000\000\001\000\002\000\003\000\004\000\005\000\006\000\007\000\b\000\t\000\n\000\011\000\012\000\r\000\014\000\015\000\016\000\017\000\018\000\022\000\030\000%\000)\000*\000+\000-\000/\0001\0002\0003\0005\0009\000:\000<\000@\000B\000E\000J\000M\000O\000P\000V\000[\000\\\000_\000`\000d\000e\000h\000k\000q\000x\000z\000|\000}\000\130\000\136\000\139\000\142\000\146\000\150\000\152\000\153\000\155\000\159\000\161\000\164\000\166\000\167\000\170\000\175\000\175\000\178\000\178\000\182\000\189\000\196\000\200\000\202\000\203\000\204\000\208\000\209\000\214\000\216\000\222\000\229\000\232\000\233\000\237\000\242\000\247\000\248\000\252\001\001\001\004\001\015\001\016\001\018\001\020\001\025\001\028\001!\001)\001.\0016\001;\001C\001G\001N\001U\001_\001a\001f\001g\001h\001j\001l\001m\001n\001o\001r\001s\001t\001y\001|\001}\001\128\001\130\001\133\001\137\001\142\001\145\001\146\001\147\001\148\001\150\001\151\001\152\001\153\001\156\001\162\001\165\001\169\001\174\001\178\001\180\001\184\001\190\001\195\001\202\001\203\001\204\001\204\001\206\001\210\001\211\001\216\001\220\001\221\001\225\001\225\001\228\001\232\001\233\001\234\001\242\001\251\002\002\002\n\002\016\002\022\002\028\002%\002-\0028\002C\002Q\002W\002`\002g\002r\002v\002z\002|\002\129\002\131\002\136\002\143\002\145\002\147\002\148\002\150\002\152\002\155\002\161\002\164\002\170\002\173\002\179\002\182\002\188\002\191\002\197\002\200\002\206\002\209\002\215\002\218\002\224\002\227\002\233\002\236\002\242\002\245\002\251\002\254\003\004\003\007\003\r\003\016\003\022\003\025\003\031\003\"\003(\003+\0031\0034\003:\003=\003C\003F\003L\003O\003U\003X\003^\003a\003g\003j\003n\003q\003w\003z\003\128\003\133\003\141\003\148\003\158\003\165\003\175\003\182\003\192\003\199\003\209\003\218\003\230\003\237\003\247\004\000\004\012\004\019\004\029\004&\0042\0044\0046\0048\004:\004<\004@\004F\004G\004H\004I\004K\004N\004S\004T\004U\004W\004\\\004b\004c\004c\004e\004i\004o\004q\004u\004y\004|\004\134\004\145\004\154\004\164\004\165\004\166\004\168\004\169\004\171\004\171\004\173\004\175\004\179\004\180\004\181\004\183\004\186\004\189\004\190\004\192\004\193\004\194\004\197\004\201\004\207\004\215\004\216\004\217\004\219\004\220\004\222\004\225\004\229\004\234\004\240\004\241\004\242\004\244\004\246\004\251\004\253\004\255\005\004\005\n\005\012\005\017\005\023\005\025\005\029\005\"\005$\005&\005*\005/\0054\0055\0059\005<\005@\005H\005Q\005X\005[\005_\005c\005k\005n\005r\005v\005~\005\130\005\135\005\140\005\149\005\153\005\158\005\163\005\172\005\180\005\189\005\198\005\211\005\214\005\218\005\222\005\230\005\233\005\237\005\241\005\249\005\253\006\002\006\007\006\016\006\020\006\025\006\030\006'\006/\0068\006A\006N\006O\006P\006R\006V\006[\006_\006d\006j\006o\006v\006~\006\134\006\143\006\151\006\160\006\163\006\167\006\172\006\178\006\181\006\186\006\192\006\194\006\199\006\206\006\208\006\209\006\211\006\214\006\218\006\223\006\229\006\232\006\233\006\236\006\241\006\243\006\247\006\253\007\000\007\002\007\003\007\b\007\011\007\012\007\015\007\015\007\023\007\023\007 \007 \007)\007)\007/\007/\0077\0077\0079\0079\007B\007B\007L\007L\007N\007N\007P\007R\007R\007T\007X\007Z\007Z\007\\\007\\\007^\007^\007`\007`\007b\007f\007h\007j\007m\007q\007w\007|\007\127\007\132\007\135\007\142\007\145\007\151\007\153\007\157\007\158\007\159\007\164\007\168\007\173\007\180\007\188\007\198\007\209\007\210\007\213\007\214\007\217\007\218\007\221\007\222\007\225\007\230\007\233\007\234\007\237\007\238\007\241\007\242\007\245\007\246\007\249\007\250\007\253\007\254\b\001\b\002\b\006\b\007\b\t\b\r\b\018\b\021\b\023\b\026\b\028\b\030\b!\b#\b'\b,\b-\b/\b0\b2\b5\b6\b7\b8\b9\b:\b>\b?\bC\bJ\bN\bS\bY\b^\ba\bc\bd\bh\bm\bp\bt\bx\b}\b\128\b\129\b\132\b\139\b\147\b\148\b\148\b\149\b\149\b\150\b\151\b\151\b\152\b\153\b\155\b\157\b\159\b\160\b\165\b\166\b\167\b\169\b\170\b\172\b\173\b\175\b\176\b\177\b\178\b\180\b\182\b\184\b\185\b\187\b\188\b\190\b\191\b\193\b\194\b\196\b\199\b\203\b\204\b\206\b\209\b\213\b\216\b\220\b\225\b\231\b\234\b\238\b\243\b\249\b\252\b\254\t\003\t\t\t\014\t\020\t\021\t\022\t\023\t\027\t \t$\t)\t-\t2\t3\t4\t5\t6\t7\t8\t9\t:\t;\t<\t=\t>\t?\t@\tA\tB\tC\tD\tE\tF\tG\tH\tI\tJ\tK\tL\tL\tL\tM\tM\tN\tN\tO\tQ\tR\tR\tS\tS\tU\tU\tW\tW\tY\t^\t^\t`\t`\tb\tb\td\td\te\te\tg\tg\ti\tk\tn\to\to\tp\ts\tx\t~\t\130\t\133\t\138\t\146\t\153\t\163\t\172\t\184\t\191\t\201\t\202\t\208\t\213\t\215\t\217\t\219\t\221\t\223\t\225\t\227\t\229\t\231\t\233\t\235\t\238\t\240\t\241\t\244\t\247\t\248\t\252\t\253\t\255\n\005\n\007\n\011\n\014\n\016\n\017\n\020\n\023\n\024\n\025\n\026\n\027\n\029\n\031\n!\n%\n&\n)\n*\n-\n1\n;\n;\n<\n<\n=\n>\n@\nB\nB\nC\nD\nG\nJ\nM\nN\nO\nQ\nR\nS\nT\nU\nW\nY\nZ\n[\n]\n`\nf\nj\nn\nu\nx\n~\n\130\n\134\n\141\n\147\n\156\n\163\n\170\n\180\n\184\n\191\n\196\n\201\n\209\n\213\n\220\n\225\n\230\n\238\n\245\n\255\011\007\011\015\011\026\011\027\011\030\011!\011%\011)\0111\0112\0115\0118\011<\011@\011H\011H\011M\011N\011P\011Q\011S\011T\011V\011W\011Y\011Z\011\\\011^\011d\011g\011n\011o\011q\011t\011u\011x\011y\011|\011}\011\128\011\129\011\132\011\133\011\136\011\137\011\140\011\141\011\144\011\146\011\149\011\153\011\158\011\159\011\162\011\165\011\170\011\173\011\179\011\184\011\187\011\193\011\198\011\204\011\213\011\221\011\226\011\234\011\241\011\242\011\243\011\244\011\246\011\250\011\255\012\002\012\b\012\n\012\r\012\017\012\018\012\020\012\023\012\026\012\030\012#\012$\012(\012/\0121\0123\0124\0125\0126\0127\0129\012;\012D\012N\012O\012U\012]\012^\012h\012i\012j\012k\012u\012v\012|\012}\012~\012\128\012\130\012\132\012\134\012\135\012\137\012\139\012\141\012\143\012\146\012\149\012\152\012\155\012\157\012\160\012\162\012\165\012\168\012\174\012\176\012\179\012\183\012\188\012\193\012\198\012\203\012\208\012\215\012\220\012\227\012\232\012\239\012\244\012\248\012\252\r\002\r\n\r\016\r\017\r\018\r\019\r\021\r\023\r\026\r\028\r\031\r\"\r'\r,\r/\r2\r5\r6\r7\r;\r>\rA\rF\rI\rK\rP\rT\rW\r]\rf\rl\ru\r{\r\132\r\137\r\141\r\151\r\154\r\157\r\159\r\164\r\168\r\169\r\173\r\180\r\184\r\191\r\195\r\202\r\203\r\204\r\207\r\208\r\214\r\222\r\223\r\226\r\227\r\228\r\230\r\232\r\235\r\239\r\243\r\248\r\249\r\254\r\255\014\000\014\001\014\002\014\003\014\004\014\005\014\006\014\007\014\b\014\t\014\n\014\011\014\012\014\r\014\014\014\015\014\016\014\017\014\018\014\019\014\020\014\021\014\022\014\023\014\024\014\025\014\026\014\027\014\028\014\029\014\030\014\031\014 \014!\014\"\014#\014$\014%\014&\014'\014(\014)\014*\014+\014,\014-\014.\014/\0140\0141\0142\0143\0144\014<\014>\014B\014J\014S\014W\014\\\014e\014o\014t\014z\014\131\014\141\014\146\014\152\014\162\014\173\014\179\014\186\014\193\014\201\014\204\014\208\014\216\014\225\014\229\014\234\014\242\014\251\015\004\015\014\015\023\015!\015+\0156\015:\015?\015D\015J\015O\015U\015[\015b\015k\015u\015\127\015\138\015\148\015\159\015\170\015\182\015\187\015\193\015\199\015\206\015\212\015\219\015\226\015\234\015\243\015\253\016\007\016\018\016\028\016'\0162\016>\016C\016I\016O\016V\016\\\016c\016j\016r\016|\016\135\016\146\016\158\016\169\016\181\016\193\016\206\016\212\016\219\016\226\016\234\016\241\016\249\017\001\017\n\017\017\017\025\017!\017*\0172\017;\017D\017N\017Q\017U\017Y\017^\017b\017g\017l\017r\017z\017\131\017\140\017\150\017\159\017\169\017\179\017\190\017\194\017\199\017\204\017\210\017\215\017\221\017\227\017\234\017\241\017\249\018\001\018\n\018\017\018\025\018!\018*\0182\018;\018D\018N\018V\018_\018h\018r\018{\018\133\018\143\018\154\018\159\018\160\018\163\018\164\018\166\018\167\018\168\018\169\018\170\018\172\018\181\018\191\018\192\018\198\018\206\018\207\018\208\018\217\018\218\018\223\018\224\018\225\018\230\018\232\018\234\018\237\018\240\018\243\018\246\018\249\018\252\018\254\019\001\019\004\019\007\019\n\019\r\019\016\019\019\019\021\019\023\019\024\019\025\019\028\019\030\019\"\019$\019$\019&\019'\019+\019.\019.\019/\0192\0194\0195\0196\0196\0197\0198\0199\019;\019=\019?\019A\019B\019C\019D\019E\019G\019K\019N\019O\019P\019Q\019V\019[\019a\019g\019n\019o\019p\019q\019r\019z\019z\019{\019|\019~\019\128\019\129\019\131\019\133\019\139\019\144\019\148\019\152\019\157\019\162\019\163\019\165")) + ((16, "\001\175\001\169\000\223\000\221\000\219\000\217\000\215\000\213\000\211\000\209\000\207\000\205\000\203\000M\0005\000F\000D\001\193\002%\001\030\000:\001\177\002%\001\030\000l\000:\001\177\001\006\001\165\000.\002%\001\030\000l\000\016\001\006\001\165\000.\001\"\001o\001\139\001i\001O\001\239\001\026\001\023\001\026\001\021\001\024\001\021\001\225\000E\002\025\000E\000l\000\127\000.\000E\000;\002\025\000;\000l\000\127\000.\000;\000\188\001\249\002\025\000\188\001\249\000l\000\127\000.\000\188\001\249\001A\000\240\001\223\000:\001\177\000\016\000l\000:\001\177\001\006\001\165\000.\000l\000\016\001\006\001\165\000.\000_\000_\000\240\002\023\000\193\000\138\002\023\002\021\0002\001\255\000\204\001o\002\011\001\133\000\172\002\017\000t\000P\001o\001?\000\172\002\017\000t\000P\001\020\001o\001?\000\172\002\017\002\017\002\019\001\255\000\153\001\217\000\158\001o\002\017\000\249\001i\000\158\001\020\001o\002\017\000\249\001i\000\012\000-\001i\000h\001U\001i\000\248\001o\001\233\001i\000\156\001o\000s\001i\001\167\001i\001\209\000\218\002\017\001\006\001\253\000\218\002\017\001\145\002\r\001\145\000b\002\017\001\145\002\011\001G\000l\000\201\000.\000l\000\201\001\006\001\227\000.\000l\001\227\000.\000\158\001o\002\001\001i\000\012\001o\001!\000p\001\006\001\227\001i\000h\001o\000\181\000p\001\006\000\191\001i\000\248\001o\001\233\001i\001\167\001i\001\209\001\249\000\140\000\137\0002\001\249\001\217\000V\001o\002\005\001c\000\224\002\001\002\019\000t\000P\001o\001?\000\172\002\001\000t\000P\001\020\001o\001?\000\172\002\001\000l\002\017\000.\002\t\000\140\000\137\0002\002\t\000l\002\017\001\006\001\253\000.\000V\001o\002\007\001a\000\224\002\001\000\229\000K\000b\001\253\000p\001\006\000K\000b\001\253\000K\000b\001\253\001\b\000\020\001\219\001o\000'\001\207\000p\000\218\002\001\001i\001u\001S\000\206\000\143\000\b\001\201\000\b\000\202\001\219\001o\000\147\001o\000\201\001\243\001o\000n\000\201\000\172\001\201\001o\000n\000\201\000\172\000\202\001\219\001o\000\147\001o\000\014\000\201\000\172\001\201\001o\000\014\000\201\000\172\000\202\001\219\001o\000\147\001o\000R\000\201\000\172\001\201\001o\000R\000\201\000\172\000\202\001\219\001o\000\147\000\218\001\201\001\221\001\201\000\218\001\201\001\221\000\202\001\219\001o\000\147\000\218\000\202\001\219\001o\000\147\001\221\001\201\000\218\000\202\001\219\001o\000\147\001\221\000\202\001\219\001o\000\147\000\172\001\201\000\172\000\202\001\219\001o\000\147\000+\0007\000\140\0002\000l\000.\000\210\000\024\000\018\000l\001\004\000.\001\239\001?\001?\000\240\000l\001\004\000.\000l\001\004\000.\001\239\001\227\000\218\001\227\002\025\000\233\000\198\002\025\000\233\000\131\000$\002\025\000\233\000\131\000$\000\198\002\025\000\233\000\144\001\153\0004\001\018\000\173\002%\001\227\002\019\001\011\001\211\001\223\000l\001\227\000.\000l\000^\001\219\001o\001-\000.\000\140\000Q\0002\000\140\001\018\000\139\0002\000\140\000}\001\018\000\139\0002\000\128\001\001\000\139\0002\000\128\0002\000~\001\001\000\139\0002\000~\001\001\000\139\000\196\000\151\0002\000\184\002\025\000$\000\129\000.\000\184\000p\001\006\002\025\000$\000\129\000.\000\026\000\228\000H\002\023\000|\002\023\000\193\0002\0008\001\018\001\237\000\218\001\235\001o\001\237\000\218\001\235\001o\001\217\000\134\002\023\002\021\0002\000\140\000\133\0002\000\204\001\219\001o\001\197\000\231\000b\001\203\000\202\001\219\001o\000\147\001\195\000e\000t\000^\001\219\001o\0011\001=\000\172\000s\000t\000\216\001\219\001o\001\237\001\187\001o\000\172\000s\000t\000P\001\219\001o\0017\000\172\000s\000t\000P\001\020\001\219\001o\0017\000\172\000s\000j\001\219\001o\000s\000\004\000\147\000\022\001\219\001o\000s\000\004\000\147\000J\001\219\001o\000s\000\004\001\201\000J\001\219\001o\000s\000\004\000\202\001\219\001o\000\147\000\174\001\219\001o\000s\000\030\001\201\000\226\001\201\000\174\001\219\001o\000s\000\030\001\201\000\226\000\202\001\219\001o\000\147\000\174\001\219\001o\000s\000\030\000\202\001\219\001o\000\147\000\226\001\201\000\174\001\219\001o\000s\000\030\000\202\001\219\001o\000\147\000\226\000\202\001\219\001o\000\147\000\174\001\219\001o\000s\000\030\001\201\000\174\001\219\001o\000s\000\030\000\202\001\219\001o\000\147\000\006\001\219\001o\000s\000\246\000s\000\242\000\206\001\219\001o\000\201\000\218\000s\001\221\000s\000\246\000s\000\242\001\028\001\219\001o\000e\000\146\001\219\001o\000e\000S\001\201\000S\000\202\001\219\001o\000\147\002'\001\201\002'\000\202\001\219\001o\000\147\001\205\000e\000\153\000&\000e\000&\001\205\000&\000\202\001\219\001o\000\147\000\167\001\235\000e\000&\001\235\000e\001\031\000e\001\201\000\168\001\201\001\201\000\168\000\202\001\219\001o\000\147\001\201\001\026\001\201\001\201\001\026\000\202\001\219\001o\000\147\001\201\001\024\001\201\001\201\001\024\000\202\001\219\001o\000\147\001\201\000\166\001\201\001\201\000\166\000\202\001\219\001o\000\147\001\201\000\164\001\201\001\201\000\164\000\202\001\219\001o\000\147\001\201\000\162\001\201\001\201\000\162\000\202\001\219\001o\000\147\001\201\000`\001\201\001\201\000`\000\202\001\219\001o\000\147\001\201\000\160\001\201\001\201\000\160\000\202\001\219\001o\000\147\001\201\000F\001\201\001\201\000F\000\202\001\219\001o\000\147\001\201\000D\001\201\001\201\000D\000\202\001\219\001o\000\147\001\201\000B\001\201\001\201\000B\000\202\001\219\001o\000\147\001\201\000f\001\201\001\201\000f\000\202\001\219\001o\000\147\001\201\000d\001\201\001\201\000d\000\202\001\219\001o\000\147\001\201\000$\001\201\001\201\000$\000\202\001\219\001o\000\147\001\201\000H\001\201\001\201\000H\000\202\001\219\001o\000\147\001\201\000\218\001\201\001\201\000\218\000\202\001\219\001o\000\147\001\201\000x\001\201\001\201\000x\000\202\001\219\001o\000\147\001\201\000\196\001\201\001\201\000\196\000\202\001\219\001o\000\147\001\201\000L\001\201\001\201\000L\000\202\001\219\001o\000\147\001\201\001\016\001\201\001\201\001\016\000\202\001\219\001o\000\147\001\201\001$\001\201\001\201\001$\000\202\001\219\001o\000\147\001\201\001&\001\201\001\201\001&\000\202\001\219\001o\000\147\001\201\001\002\001\201\001\201\001\002\000\202\001\219\001o\000\147\001\135\000\172\000s\000r\001{\000\172\000s\001\201\001\004\001\201\001\201\001\004\000\202\001\219\001o\000\147\000p\000v\001\201\000p\000v\000\202\001\219\001o\000\147\000e\000\240\001\149\000v\001\201\000e\000\240\001\149\000v\000\202\001\219\001o\000\147\000e\000\240\000l\000s\000.\000v\001\201\000e\000\240\000l\000s\000.\000v\000\202\001\219\001o\000\147\000e\000\240\000\144\000s\0004\000v\001\201\000e\000\240\000\144\000s\0004\000v\000\202\001\219\001o\000\147\000e\000\240\000\140\000s\0002\000v\001\201\000e\000\240\000\140\000s\0002\000v\000\202\001\219\001o\000\147\000e\000\232\000l\000{\000.\000v\001\201\000e\000\232\000l\000{\000.\000v\000\202\001\219\001o\000\147\000e\000\240\001?\000\232\000l\000{\000.\000v\001\201\000e\000\240\001?\000\232\000l\000{\000.\000v\000\202\001\219\001o\000\147\000e\000\232\000\144\000{\0004\000v\001\201\000e\000\232\000\144\000{\0004\000v\000\202\001\219\001o\000\147\000e\000\240\001?\000\232\000\144\000{\0004\000v\001\201\000e\000\240\001?\000\232\000\144\000{\0004\000v\000\202\001\219\001o\000\147\000e\000\232\000\140\000{\0002\000v\001\201\000e\000\232\000\140\000{\0002\000v\000\202\001\219\001o\000\147\000e\000\240\001?\000\232\000\140\000{\0002\000v\001\201\000e\000\240\001?\000\232\000\140\000{\0002\000v\000\202\001\219\001o\000\147\001\201\002\019\000n\000s\000\014\000s\000R\000s\000\214\000s\000l\000\020\001\027\000.\000l\000\020\000p\001\006\001\165\000.\001\145\000\159\001\201\001\201\000,\001\201\000,\000s\001\201\000,\000H\002\023\000s\000K\000Y\000l\000.\000l\0015\001\006\001-\000.\000l\0015\001\006\001-\002\027\000.\000\155\000T\001\231\001\006\001\231\000b\002\025\001\006\000\149\000\240\001\231\000b\002\025\001\006\002\025\001\006\000\149\000\240\002\025\001\018\001\237\001\187\001o\001\237\001\187\001o\000\020\001\219\001o\000A\000p\000\251\001\002\001\r\000\161\001i\000\020\001\219\001o\000X\000A\000p\000\251\001\002\001\r\000\161\001i\000\020\001\219\001o\000A\000p\000\251\000G\000\161\001i\000\020\001\219\001o\000X\000A\000p\000\251\000G\000\161\001i\000\018\000p\000W\000\222\000\170\000\170\000\200\000,\000\238\000o\000\222\000z\002\023\000\193\0002\0006\001\161\001\006\001\165\001\165\000`\001\025\001\165\000\004\001\227\000\233\001\177\000\150\001\227\000\016\000\175\000l\001\161\000.\000\152\000p\000\218\001\165\001#\000p\001\006\000\189\000\233\001o\001#\000p\001\006\000\189\000\233\001o\000,\001o\001\157\001\155\001\155\001\153\000p\000p\002\029\000p\001\006\001\227\000p\001\006\001\227\002\027\000p\001\006\000\149\000\240\001\227\000p\001\006\000\149\000\240\001\227\002\027\001G\000e\000\148\000e\000\028\000p\000\028\000l\000p\000I\000.\000<\000p\000N\000e\000<\000l\001\151\000\239\000.\000<\000l\001\019\001\151\000\239\000.\000<\000p\000N\000l\001\131\000\239\000.\000N\000l\001\019\001\131\000\239\000.\000N\000\195\000\028\000l\001\151\000.\000\028\000l\001\019\001\151\000.\000\028\000p\000\148\000c\000\148\000l\001\127\000.\000\148\000l\001\019\001\127\000.\000\148\000l\001\019\000\201\000.\000c\000l\001\019\001\129\000.\000l\001\127\000.\000l\001\019\001\127\000.\000\148\000l\000\201\001\006\000\149\000\240\001\227\000.\000\148\000l\001\019\000\201\001\006\000\149\000\240\001\227\000.\000l\000\201\001\006\000\149\000\240\001\227\000.\001\143\000\252\000\201\001\143\000\252\000\148\000c\001\143\000\252\000\028\000p\001\143\000\252\000\028\000l\000p\001\006\001\227\000.\000\201\000\252\000\201\000\201\000\252\000\148\000c\000\201\000\252\000\028\000p\000\201\000\252\000\028\000l\000p\001\006\001\227\000.\000\148\000c\000\252\000\201\000\148\000c\000\252\000\148\000c\000\148\000c\000\252\000\028\000p\000\148\000c\000\252\000\028\000l\000p\001\006\001\227\000.\000\028\000p\000\252\000\201\000\028\000p\000\252\000\148\000c\000\028\000p\000\252\000\028\000p\000\028\000p\000\252\000\028\000l\000p\001\006\001\227\000.\000\028\000l\000p\001\006\001\227\000.\000\252\000\201\000\028\000l\000p\001\006\001\227\000.\000\252\000\148\000c\000\028\000l\000p\001\006\001\227\000.\000\252\000\028\000p\000\028\000l\000p\001\006\001\227\000.\000\252\000\028\000l\000p\001\006\001\227\000.\001\141\000\252\000\197\001\141\000\252\000\148\000c\001\141\000\252\000\028\000p\001\141\000\252\000\028\000l\000p\001\006\001\227\000.\000\197\000\252\000\197\000\197\000\252\000\148\000c\000\197\000\252\000\028\000p\000\197\000\252\000\028\000l\000p\001\006\001\227\000.\000\148\000c\000\252\000\197\000\148\000c\000\252\000\148\000c\000\148\000c\000\252\000\028\000p\000\148\000c\000\252\000\028\000l\000p\001\006\001\227\000.\000\028\000p\000\252\000\197\000\028\000p\000\252\000\148\000c\000\028\000p\000\252\000\028\000p\000\028\000p\000\252\000\028\000l\000p\001\006\001\227\000.\000\028\000l\000p\001\006\001\227\000.\000\252\000\197\000\028\000l\000p\001\006\001\227\000.\000\252\000\148\000c\000\028\000l\000p\001\006\001\227\000.\000\252\000\028\000p\000\028\000l\000p\001\006\001\227\000.\000\252\000\028\000l\000p\001\006\001\227\000.\001\137\0001\0001\000[\0001\000I\000\218\000s\0001\000I\002\027\000\218\000s\0001\002\029\000\218\000s\001\019\0001\000I\000\218\000s\001\019\0001\000I\002\027\000\218\000s\001\019\0001\002\029\000\218\000s\0001\001\006\000\149\000\240\001\227\000\218\000s\0001\001\006\000\149\000\240\001\227\002\027\000\218\000s\001\019\0001\001\006\000\149\000\240\001\227\000\218\000s\001\019\0001\001\006\000\149\000\240\001\227\002\027\000\218\000s\0001\001\006\000\020\001\027\000\240\001\227\000\218\000s\0001\001\006\000\020\001\027\000\240\001\227\002\027\000\218\000s\000\197\000\218\000s\000a\002\029\000\218\000s\000a\001\006\001\227\000\218\000s\000a\001\006\001\227\002\027\000\218\000s\001\019\0001\000[\000l\0001\002\029\000.\000[\000t\001\219\001o\000\179\001\139\001i\001\135\002#\000t\001o\000\179\001\139\001i\000t\000H\002\023\001o\000\179\001\139\001i\001\133\002#\000\201\000\201\002\029\000\201\001\006\001\227\000\201\001\006\001\227\002\027\000\201\001\006\000\149\000\240\001\227\000\201\001\006\000\149\000\240\001\227\002\027\000l\001\127\000.\000\201\000\201\001\006\001\227\000\201\001\006\000\149\000\240\001\227\000\201\002\029\000\201\001\006\001\227\002\027\000\201\001\006\000\149\000\240\001\227\002\027\000l\001\127\000.\0001\000[\0001\000c\001\006\001\227\000\218\000s\000\197\000\218\000s\001}\001{\001 \001}\001\"\001o\000'\001\207\000p\002\r\001i\001y\001\"\001o\000'\001\207\000p\001\006\001\253\001i\001w\001\"\001o\000'\001\207\000p\000\218\002\001\001i\001u\001\"\001o\0011\001=\001i\001s\001\"\001o\0015\001\006\001-\000\233\001i\001q\002\019\001o\001\"\001o\000A\000p\000\251\000G\000\161\001i\001m\001\"\001o\000A\000p\000\251\001\002\001\r\000\161\001i\001k\000\187\001i\000*\001g\000m\001g\000*\001e\000*\000s\001i\001e\000U\001e\002\003\001c\002\015\001a\000U\001_\000*\001]\000*\000s\001i\001]\000U\001]\000O\001]\001\149\000\247\000\241\001\149\000\247\000\241\000,\001\149\000\247\000\241\000,\000\016\000\255\001\149\000\247\000\241\000,\001[\000\201\000b\000s\000\201\000\b\000s\000b\000s\000\201\000b\000\240\000p\001\006\000\189\001o\000,\001o\001W\002\025\000,\001W\000p\001\006\000\189\001o\000,\001o\002\025\000,\000p\001\006\000\189\001o\002\025\000\238\001o\000#\000p\001\006\000\191\001o\000\183\000p\000[\001\020\001o\000\183\000p\000[\001o\000\183\000p\001\006\000\191\000\218\000s\001\020\001o\000\183\000p\001\006\000\191\000\218\000s\001o\000\183\000p\001\006\000\020\001\027\000\240\001\227\000\218\000s\001\020\001o\000\183\000p\001\006\000\020\001\027\000\240\001\227\000\218\000s\000p\001A\000\240\000p\000\018\001A\000\240\000\018\001\177\000l\001\004\000.\0003\001A\000\240\001\177\001A\000\240\000l\001\004\000.\001A\000\240\0003\001\177\001A\000\240\001\177\000?\001A\000\240\000?\000=\001A\000\240\000=\000p\001?\000\240\000p\000\018\001?\000\240\000\018\0001\001?\000\240\0001\001Q\001A\000l\001A\000.\001E\000\218\0017\001\006\001-\000\218\0017\001\006\001-\002\027\000\218\0017\002\029\000\218\0017\001\191\001=\001\006\001-\000\233\001\191\0019\001\006\001-\001\006\001-\002\027\001\191\0019\000 \001o\000W\000\224\000\200\001o\001\189\000b\0017\000\227\0017\002\019\001?\0017\000\227\0017\000l\000.\001\217\000\016\000\018\000\016\0015\000l\0015\002\031\000.\0015\000l\0015\002\029\000.\000^\001\219\001o\000\018\001\002\001A\001i\000(\001o\000o\000\224\000\200\001o\001\189\000b\001-\000\200\001o\001\189\000b\001-\002\029\000^\000\020\000T\001o\0017\000l\001-\000.\001-\002\019\001'\000l\000.\000b\001-\000l\000.\000b\001-\002\029\001-\000b\001-\001-\000b\001-\002\029\001-\002\029\000b\001-\001-\002\029\000b\001-\002\029\001-\000\004\000\141\001\217\001-\000\004\001A\000^\000\020\001\219\001o\001\177\000\243\001i\000^\000\020\001\219\001o\001\177\001\002\001-\001i\001M\000\\\000\\\000\198\000\\\000\n\000\\\000\n\000\n\000\\\001\022\001\177\000p\000l\000p\001\006\001\165\000.\001\017\000p\000p\001\025\000p\000p\001\023\000p\000p\001\021\000n\000\014\000R\000n\001\019\000\014\001\019\000R\001\019\001\029\001\029\001\017\000\"\000\"\001\015\001\227\000>\001\227\001\229\000>\001\229\001\227\000\218\001\229\001\227\000\218\000>\001\229\000\238\000>\000\238\001\227\000\218\000\238\001\227\000\218\000>\000\238\000\144\001\153\0004\000>\000\144\001\153\0004\001\227\000\218\000\144\001\153\0004\001\227\000\218\000>\000\144\001\153\0004\000\186\001\153\0004\000>\000\186\001\153\0004\001\227\000\218\000\186\001\153\0004\001\227\000\218\000>\000\186\001\153\0004\000x\001W\000\196\000x\000\196\000P\001\219\001o\0017\001i\000P\001\020\001\219\001o\0017\001i\000P\001\219\001o\001A\001i\000P\001\020\001\219\001o\001A\001i\000@\000r\001 \000\232\000l\001\171\000.\000\232\000l\001\171\000.\000v\000\232\000\140\001\171\0002\000\232\000\140\001\171\0002\000v\000\232\000\144\001\171\0004\000\232\000\144\001\171\0004\000v\000\182\001\020\000\168\001\026\001\024\000\166\000\164\000\162\000`\000\160\000F\000D\000B\000f\000d\000$\000H\000\218\000x\000\196\000L\001\016\001$\001&\001\002\001$\001\018\000,\000I\000I\002\027\002\029\001\163\001\030\000p\001\006\001\227\000\218\001\201\000\218\000\202\001\219\001o\000\147\000\218\001-\000\218\000\201\000\218\000s\000I\001\026\001\023\001\024\001\023\001\006\002\025\001\006\002\025\002\027\002\029\000N\000<\000p\001\006\000l\0017\001\006\001-\000.\000l\0017\001\006\001-\002\027\000.\000l\0017\002\029\000.\000l\0017\000.\000l\000\012\001o\001\201\000.\000l\000\012\001o\000\202\001\219\001o\000\147\000.\000l\000\012\001o\001\201\001\006\001-\000.\000l\000\012\001o\000\202\001\219\001o\000\147\001\006\001-\000.\000l\000\012\001o\001\201\001\006\001-\001\000\001-\000.\000l\000\012\001o\000\202\001\219\001o\000\147\001\006\001-\001\000\001-\000.\000l\000\012\001o\001\201\001\000\001-\000.\000l\000\012\001o\000\202\001\219\001o\000\147\001\000\001-\000.\000C\0009\000:\001\177\001o\001\006\001\165\0009\000\016\001o\001\006\001\165\002!\000\222\001\235\000\222\001\227\000\222\000s\000\222\001A\000\222\001?\000\222\0017\000\222\001-\000\222\001'\000\222\000\201\000\222\000/\000\222\000\201\001\004\000\201\000\201\002\019\000\199\000\201\001\030\0001\000\201\001\018\000\201\000\165\000\216\001\219\001o\000\201\000c\001\235\000\201\001\235\000l\000\020\001\025\000.\000c\001\031\000\201\000\146\001\219\001o\000c\000\197\001\004\000\201\000\197\002\019\000\199\000\197\001\030\0001\000\197\001\018\000\201\000\163\000p\000\016\000W\001\006\000o\001\006\001\227\000<\000\201\000<\000\201\000\b\000s\001\227\000\149\000\240\001\227\002%\000\149\000\240\002%\000\136\002\023\002\021\0002\000\212\001\219\001o\0001\001\006\000\191\000\233\000\218\001\015\001i\000>\000>\000\n\000>\000\n\000\n\000>\0000\000u\000e\000\004\000u\001\165\001$\001\165\000\175\001$\001\165\001\183\001\185\000\173\001\185\001\183\001\213\001\185\001\215\000\171\001\185\000\171\001\215\001\183\001\185\000\169\001\185\000\167\000\252\001\201\000\167\000\252\000\202\001\219\001o\000\147\000\167\000\252\000\148\000e\000\167\000\252\000\028\000p\000\167\000\252\000\028\000l\000p\000I\000.\001\201\000\252\001\201\001\201\000\252\000\202\001\219\001o\000\147\001\201\000\252\000\148\000e\001\201\000\252\000\028\000p\001\201\000\252\000\028\000l\000p\000I\000.\000\202\001\219\001o\000\147\000\252\001\201\000\202\001\219\001o\000\147\000\252\000\202\001\219\001o\000\147\000\202\001\219\001o\000\147\000\252\000\148\000e\000\202\001\219\001o\000\147\000\252\000\028\000p\000\202\001\219\001o\000\147\000\252\000\028\000l\000p\000I\000.\000\148\000e\000\252\001\201\000\148\000e\000\252\000\202\001\219\001o\000\147\000\148\000e\000\252\000\148\000e\000\148\000e\000\252\000\028\000p\000\148\000e\000\252\000\028\000l\000p\000I\000.\000\028\000p\000\252\001\201\000\028\000p\000\252\000\202\001\219\001o\000\147\000\028\000p\000\252\000\148\000e\000\028\000p\000\252\000\028\000p\000\028\000p\000\252\000\028\000l\000p\000I\000.\000\028\000l\000p\000I\000.\000\252\001\201\000\028\000l\000p\000I\000.\000\252\000\202\001\219\001o\000\147\000\028\000l\000p\000I\000.\000\252\000\148\000e\000\028\000l\000p\000I\000.\000\252\000\028\000p\000\028\000l\000p\000I\000.\000\252\000\028\000l\000p\000I\000.\001\143\001\143\000\252\000\238\000\201\000\252\000\238\000\148\000c\000\252\000\238\000\028\000p\000\252\000\238\000\028\000l\000p\001\006\001\227\000.\000\252\000\238\001\141\001\141\000\252\000\238\000\197\000\252\000\238\000\148\000c\000\252\000\238\000\028\000p\000\252\000\238\000\028\000l\000p\001\006\001\227\000.\000\252\000\238\000\161\000\248\001\227\000\218\001\227\001\199\000\159\001\199\001\247\000\157\001\247\001\191\000\155\001\191\001\147\000\153\001\147\001\031\000\151\001\031\000:\001\177\000l\000:\001\177\001\006\001\165\000.\000\149\000:\001\177\000\149\000l\000:\001\177\001\006\001\165\000.\001Y\001\018\001Y\000\147\001\018\001Y\002%\000\145\001$\002%\001\245\000\143\001\"\001\245\000!\000\141\001\"\000!\000}\000\139\001\018\000}\001\227\000\137\000\252\001\227\000\225\000\135\000\252\000\225\000C\000\133\000\252\000C\002\025\000\233\000\198\002\025\000\233\000\131\000$\002\025\000\233\000\131\000$\000\198\002\025\000\233\002\025\000p\001\006\002\025\000\129\000$\002\025\000\129\000$\000p\001\006\002\025\000\127\000\252\001\227\000\127\000\252\000:\001\177\001\006\001\165\000\127\000\252\000\016\001\006\001\165\001\227\000\252\001\227\001\227\000\252\000:\001\177\001\006\001\165\001\227\000\252\000\016\001\006\001\165\000:\001\177\001\006\001\165\000\252\001\227\000:\001\177\001\006\001\165\000\252\000:\001\177\001\006\001\165\000:\001\177\001\006\001\165\000\252\000\016\001\006\001\165\000\016\001\006\001\165\000\252\001\227\000\016\001\006\001\165\000\252\000:\001\177\001\006\001\165\000\016\001\006\001\165\000\252\000\016\001\006\001\165\000Q\001\227\001\201\001\201\000,\000\202\001\219\001o\000\147\000\202\001\219\001o\000\147\000,\001\201\000,\000{\000\202\001\219\001o\000\147\000,\000{\000p\000\245\000p\000\245\000,\000p\000\245\000,\000y\000\201\000\201\000,\000\201\000,\000w\001\149\000\237\000\245\001\149\000\237\000\245\000,\001\149\000\237\000\245\000,\000u\001\195\000\202\001\219\001o\000\147\000\216\001\219\001o\001\237\001\187\001o\001i\000\233\001g\001\167\001i\001\209\001\159\000)\000\185\001\179\001m\001\181\001k\000\020\001\219\001o\000A\000E\000B\000\183\000\169\001i\000\020\001\219\001o\000X\000A\000E\000B\000\183\000\169\001i\000q\000^\001\219\001o\0013\001;\001i\000^\001\219\001o\0013\000\218\001?\000\235\001i\001/\000^\001\219\001o\0000\0015\001\006\001-\000\233\001i\001q\001+\001)\001\007\001\b\001\219\001o\000'\001\207\000p\001\006\001\253\001i\001w\001\251\001\173\001\219\001o\001-\001i\000\233\000i\0007\000f\000\178\000f\000\180\000F\000\178\000F\000\180\000+\000f\000\154\000f\000\208\000F\000\154\000F\000\208\000\144\001[\0004\000\186\001[\0004\000\140\000w\0002\000\132\000w\001\014\000\132\001\014\000\130\000w\000\254\000\130\000\254\000\184\000\165\000.\000\234\001\201\000\194\000\234\000\202\001\219\001o\000\147\000\194\000\230\000e\000l\000s\000.\000l\000s\000I\000.\000l\000s\000I\002\027\000.\000e\000\240\000l\000s\000.\000e\000\240\000\144\000s\0004\000e\000\240\000\140\000s\0002\000e\000\232\000l\000{\000.\000e\000\240\001?\000\232\000l\000{\000.\000e\000\232\000\144\000{\0004\000e\000\240\001?\000\232\000\144\000{\0004\000e\000\232\000\140\000{\0002\000e\000\240\001?\000\232\000\140\000{\0002\001\012\001\219\001o\000s\000\224\001\012\001\219\001o\000\224\000Z\001\219\001o\002\t\000l\000^\001\219\001o\0017\000.\000l\000^\001\219\001o\0017\001\006\001-\000.\000V\001\219\001o\002\007\001a\000\224\000/\001\235\001\031\000@\000e\001\020\000e\000\142\000y\000\192\000\142\000\192\000e\000\240\001\149\000e\000\236\001\149\001?\000\240\000l\000s\000.\001?\000\240\000\142\000y\000\192\000e\000\188\000p\000e\000\176\000p\000e\000\182\000e\001\217\000\016\001?\000\240\000l\000.\000\144\000\177\0004\000\186\000\177\0004\001?\000\240\000\144\000\177\0004\000\132\000{\001\014\000\132\001\014\001?\000\240\000\132\000{\001\014\001?\000\240\000\132\001\014\000\140\000{\0002\001?\000\240\000\140\001\201\000\157\0002\001?\000\240\000\140\000\202\001\219\001o\000\147\000\157\0002\001?\000\240\000\132\001\201\000\157\001\014\001?\000\240\000\132\000\202\001\219\001o\000\147\000\157\001\014\001?\000\240\000\130\001\201\000\157\000\254\001?\000\240\000\130\000\202\001\219\001o\000\147\000\157\000\254\001?\000\240\000\140\000{\0002\001?\000\240\000\140\0002\001?\000\240\000l\000^\001\219\001o\0017\001\006\001-\000.\000\184\000\167\000.\000\130\000{\000\254\000\130\000\254\001?\000\240\000\130\000{\000\254\001?\000\240\000\130\000\254\001\241\000\140\001\201\000\157\0002\000\140\000\202\001\219\001o\000\147\000\157\0002\000\132\001\201\000\157\001\014\000\132\000\202\001\219\001o\000\147\000\157\001\014\000\130\001\201\000\157\000\254\000\130\000\202\001\219\001o\000\147\000\157\000\254\0001\000a\000l\000\201\000.\000g\000l\000^\001\219\001o\0015\000.\000l\000^\001\219\001o\0015\001\006\001-\000.\000\016\000i\000\238\000i\001\235\001\031\000\188\000E\000\176\000E\001?\000\240\000g\001?\000\240\000\140\0002\001?\000\240\000l\000.\001?\000\240\000l\000\201\000.\001\217\000l\000\201\001\006\001\227\000.\000k\000p\000\018\001\"\001\030\001\028\001\012\001\b\000\248\000\246\000\242\000\228\000\226\000\224\000\216\000\212\000\210\000\206\000\204\000\202\000\200\000\174\000\172\000\170\000\158\000\156\000\146\000t\000n\000j\000h\000^\000\\\000Z\000X\000V\000T\000P\000L\000>\0000\000(\000 \000\030\000\026\000\024\000\022\000\020\000\012\000\n\000\b\000\006\000\004\000q\000\216\001\219\001o\001\237\000\218\001\235\001o\001i\000\218\000s\001\197\000\253\000\218\001\203\000\229\000l\000\149\000\240\001\227\000.\000b\000Y\000\229\000l\000\149\000\240\001\227\000.\002\029\000b\000Y\000\229\000K\000b\000Y\000\229\000K\002\029\000b\000Y\000\229\001\019\000l\000\149\000\240\001\227\000.\000b\000Y\000\229\001\019\000l\000\149\000\240\001\227\000.\002\029\000b\000Y\000\229\001\019\000K\000b\000Y\000\229\001\019\000K\002\029\000b\000Y\000p\001\006\000l\000\149\000\240\001\227\000.\000b\000Y\000p\001\006\000l\000\149\000\240\001\227\000.\002\029\000b\000Y\000p\001\006\000K\000b\000Y\000p\001\006\000K\002\029\000b\000Y\000p\001\006\001\019\000l\000\149\000\240\001\227\000.\000b\000Y\000p\001\006\001\019\000l\000\149\000\240\001\227\000.\002\029\000b\000Y\000p\001\006\001\019\000K\000b\000Y\000p\001\006\001\019\000K\002\029\000b\000Y\000l\000\149\000\240\001\227\000.\000b\000Y\000l\000\149\000\240\001\227\000.\002\029\000b\000Y\000K\000b\000Y\000K\002\029\000b\000Y\001\019\000l\000\149\000\240\001\227\000.\000b\000Y\001\019\000l\000\149\000\240\001\227\000.\002\029\000b\000Y\001\019\000K\000b\000Y\001\019\000K\002\029\000b\000Y\000\229\000l\000\149\000\240\001\227\000.\000b\000K\000\229\000l\000\149\000\240\001\227\000.\000b\000K\002\029\000\229\000l\000\149\000\240\001\227\000.\000b\001\019\000K\000\229\000l\000\149\000\240\001\227\000.\000b\001\019\000K\002\029\000\229\000l\000\149\000\240\001\227\000.\002\029\000b\000K\000\229\000l\000\149\000\240\001\227\000.\002\029\000b\000K\002\029\000\229\000l\000\149\000\240\001\227\000.\002\029\000b\001\019\000K\000\229\000l\000\149\000\240\001\227\000.\002\029\000b\001\019\000K\002\029\000\229\000K\000b\000K\000\229\000K\000b\000K\002\029\000\229\000K\000b\001\019\000K\000\229\000K\000b\001\019\000K\002\029\000\229\000K\002\029\000b\000K\000\229\000K\002\029\000b\000K\002\029\000\229\000K\002\029\000b\001\019\000K\000\229\000K\002\029\000b\001\019\000K\002\029\000\229\001\019\000l\000\149\000\240\001\227\000.\000b\000K\000\229\001\019\000l\000\149\000\240\001\227\000.\000b\000K\002\029\000\229\001\019\000l\000\149\000\240\001\227\000.\000b\001\019\000K\000\229\001\019\000l\000\149\000\240\001\227\000.\000b\001\019\000K\002\029\000\229\001\019\000l\000\149\000\240\001\227\000.\002\029\000b\000K\000\229\001\019\000l\000\149\000\240\001\227\000.\002\029\000b\000K\002\029\000\229\001\019\000l\000\149\000\240\001\227\000.\002\029\000b\001\019\000K\000\229\001\019\000l\000\149\000\240\001\227\000.\002\029\000b\001\019\000K\002\029\000\229\001\019\000K\000b\000K\000\229\001\019\000K\000b\000K\002\029\000\229\001\019\000K\000b\001\019\000K\000\229\001\019\000K\000b\001\019\000K\002\029\000\229\001\019\000K\002\029\000b\000K\000\229\001\019\000K\002\029\000b\000K\002\029\000\229\001\019\000K\002\029\000b\001\019\000K\000\229\001\019\000K\002\029\000b\001\019\000K\002\029\000p\001\006\000l\000\149\000\240\001\227\000.\000b\000K\000p\001\006\000l\000\149\000\240\001\227\000.\000b\000K\002\029\000p\001\006\000l\000\149\000\240\001\227\000.\000b\001\019\000K\000p\001\006\000l\000\149\000\240\001\227\000.\000b\001\019\000K\002\029\000p\001\006\000l\000\149\000\240\001\227\000.\002\029\000b\000K\000p\001\006\000l\000\149\000\240\001\227\000.\002\029\000b\000K\002\029\000p\001\006\000l\000\149\000\240\001\227\000.\002\029\000b\001\019\000K\000p\001\006\000l\000\149\000\240\001\227\000.\002\029\000b\001\019\000K\002\029\000p\001\006\000K\000b\000K\000p\001\006\000K\000b\000K\002\029\000p\001\006\000K\000b\001\019\000K\000p\001\006\000K\000b\001\019\000K\002\029\000p\001\006\000K\002\029\000b\000K\000p\001\006\000K\002\029\000b\000K\002\029\000p\001\006\000K\002\029\000b\001\019\000K\000p\001\006\000K\002\029\000b\001\019\000K\002\029\000p\001\006\001\019\000l\000\149\000\240\001\227\000.\000b\000K\000p\001\006\001\019\000l\000\149\000\240\001\227\000.\000b\000K\002\029\000p\001\006\001\019\000l\000\149\000\240\001\227\000.\000b\001\019\000K\000p\001\006\001\019\000l\000\149\000\240\001\227\000.\000b\001\019\000K\002\029\000p\001\006\001\019\000l\000\149\000\240\001\227\000.\002\029\000b\000K\000p\001\006\001\019\000l\000\149\000\240\001\227\000.\002\029\000b\000K\002\029\000p\001\006\001\019\000l\000\149\000\240\001\227\000.\002\029\000b\001\019\000K\000p\001\006\001\019\000l\000\149\000\240\001\227\000.\002\029\000b\001\019\000K\002\029\000p\001\006\001\019\000K\000b\000K\000p\001\006\001\019\000K\000b\000K\002\029\000p\001\006\001\019\000K\000b\001\019\000K\000p\001\006\001\019\000K\000b\001\019\000K\002\029\000p\001\006\001\019\000K\002\029\000b\000K\000p\001\006\001\019\000K\002\029\000b\000K\002\029\000p\001\006\001\019\000K\002\029\000b\001\019\000K\000p\001\006\001\019\000K\002\029\000b\001\019\000K\002\029\000l\000\149\000\240\001\227\000.\000b\000K\000l\000\149\000\240\001\227\000.\000b\000K\002\029\000l\000\149\000\240\001\227\000.\000b\001\019\000K\000l\000\149\000\240\001\227\000.\000b\001\019\000K\002\029\000l\000\149\000\240\001\227\000.\002\029\000b\000K\000l\000\149\000\240\001\227\000.\002\029\000b\000K\002\029\000l\000\149\000\240\001\227\000.\002\029\000b\001\019\000K\000l\000\149\000\240\001\227\000.\002\029\000b\001\019\000K\002\029\000K\000b\000K\000K\000b\000K\002\029\000K\000b\001\019\000K\000K\000b\001\019\000K\002\029\000K\002\029\000b\000K\000K\002\029\000b\000K\002\029\000K\002\029\000b\001\019\000K\000K\002\029\000b\001\019\000K\002\029\001\019\000l\000\149\000\240\001\227\000.\000b\000K\001\019\000l\000\149\000\240\001\227\000.\000b\000K\002\029\001\019\000l\000\149\000\240\001\227\000.\000b\001\019\000K\001\019\000l\000\149\000\240\001\227\000.\000b\001\019\000K\002\029\001\019\000l\000\149\000\240\001\227\000.\002\029\000b\000K\001\019\000l\000\149\000\240\001\227\000.\002\029\000b\000K\002\029\001\019\000l\000\149\000\240\001\227\000.\002\029\000b\001\019\000K\001\019\000l\000\149\000\240\001\227\000.\002\029\000b\001\019\000K\002\029\001\019\000K\000b\000K\001\019\000K\000b\000K\002\029\001\019\000K\000b\001\019\000K\001\019\000K\000b\001\019\000K\002\029\001\019\000K\002\029\000b\000K\001\019\000K\002\029\000b\000K\002\029\001\019\000K\002\029\000b\001\019\000K\001\019\000K\002\029\000b\001\019\000K\002\029\000p\001\006\002\025\000$\000\129\000b\000Y\000p\001\006\002\025\000$\000\129\002\029\000b\000Y\000p\001\006\001\019\002\025\000$\000\129\000b\000Y\000p\001\006\001\019\002\025\000$\000\129\002\029\000b\000Y\000p\001\006\002\025\000$\000\129\000b\000K\000p\001\006\002\025\000$\000\129\000b\000K\002\029\000p\001\006\002\025\000$\000\129\000b\001\019\000K\000p\001\006\002\025\000$\000\129\000b\001\019\000K\002\029\000p\001\006\002\025\000$\000\129\002\029\000b\000K\000p\001\006\002\025\000$\000\129\002\029\000b\000K\002\029\000p\001\006\002\025\000$\000\129\002\029\000b\001\019\000K\000p\001\006\002\025\000$\000\129\002\029\000b\001\019\000K\002\029\000p\001\006\001\019\002\025\000$\000\129\000b\000K\000p\001\006\001\019\002\025\000$\000\129\000b\000K\002\029\000p\001\006\001\019\002\025\000$\000\129\000b\001\019\000K\000p\001\006\001\019\002\025\000$\000\129\000b\001\019\000K\002\029\000p\001\006\001\019\002\025\000$\000\129\002\029\000b\000K\000p\001\006\001\019\002\025\000$\000\129\002\029\000b\000K\002\029\000p\001\006\001\019\002\025\000$\000\129\002\029\000b\001\019\000K\000p\001\006\001\019\002\025\000$\000\129\002\029\000b\001\019\000K\002\029\000p\001\006\002\025\000$\000\129\001e\000s\001i\001e\001\135\001\167\001i\001\209\001\159\000\185\000)\001\179\001m\000\020\001\219\001o\000A\000E\000B\000\183\000\171\001i\000\020\001\219\001o\000X\000A\000E\000B\000\183\000\171\001i\000]\000^\001\219\001o\0011\001=\001i\000^\001\219\001o\0000\0011\001=\001i\001s\001+\001\t\001\b\001\219\001o\000'\001\207\000p\002\r\001i\001y\001\251\001\173\001\219\001o\0017\001i\000f\000d\001\031\000T\001\003\000\145\001o\001\031\001o\000\188\001\177\000\188\001\177\000\"\000\188\001\177\000\154\000\188\001\177\000/\000\188\001\177\001?\000\188\001\177\000\210\000\188\001\177\000\024\000\176\001\177\000\176\001\177\000\"\000\176\001\177\000\154\000\176\001\177\000/\000\176\001\177\001?\000\176\001\177\000\210\000\176\001\177\000\024\000s\001i\000*\001_\000*\000O\000*\000\222\002\025\002\025\000$\000\129\001\006\001\227\001\006\001\227\001\000\001\227\001\000\001\227\000\218\001\r\001I\0009\000:\001\177\001o\0009\000\016\001o\000C\000l\000\135\000.\000p\000\176\000p\001K\000F\000f\001\020\000F\001\020\001\020\000F\000f\001\020\001\020\000f\000\164\000@\000\178\000\180\001]\000\222\000s\001i\001]\000\222\000l\001\005\000.\000p\0003\001C\001o\000%\000p\001\006\001\227\001o\001%\000p\000\218\000s\001\020\001o\001%\000p\000\218\000s\001o\001%\000p\000I\000\218\000s\001\020\001o\001%\000p\000I\000\218\000s\000\154\001\n\000\"\000\208\000\012\001\219\001o\0001\001\006\000\191\000\233\001i\000\n\000\n\000\\\000\n\000\n\000\\\000\n\000>\000\n\000\n\000>\000\020\000A\001\149\000\031\002%\000\161\000\020\000A\001\149\001\002\002%\000^\001?\000\218\001A\000^\001?\001\002\001A\000^\000\020\001'\000\218\001-\000^\000\020\001'\001\002\001-\000\218\000\218\000>"), (16, "\000\000\000\001\000\002\000\003\000\004\000\005\000\006\000\007\000\b\000\t\000\n\000\011\000\012\000\r\000\014\000\015\000\016\000\017\000\018\000\022\000\030\000%\000)\000*\000+\000-\000/\0001\0002\0003\0005\0009\000:\000<\000@\000B\000E\000J\000M\000O\000P\000V\000[\000\\\000_\000`\000d\000e\000h\000k\000q\000x\000z\000|\000}\000\130\000\136\000\139\000\142\000\146\000\150\000\152\000\153\000\155\000\159\000\161\000\164\000\166\000\167\000\170\000\175\000\175\000\178\000\178\000\182\000\189\000\196\000\200\000\202\000\203\000\204\000\208\000\209\000\214\000\216\000\222\000\229\000\232\000\233\000\237\000\242\000\247\000\248\000\252\001\001\001\004\001\015\001\016\001\018\001\020\001\025\001\028\001!\001)\001.\0016\001;\001C\001G\001N\001U\001_\001a\001f\001g\001h\001j\001l\001m\001n\001o\001r\001s\001t\001y\001|\001}\001\128\001\130\001\133\001\137\001\142\001\145\001\146\001\147\001\148\001\150\001\151\001\152\001\153\001\156\001\162\001\165\001\169\001\174\001\178\001\180\001\184\001\190\001\195\001\202\001\203\001\204\001\204\001\206\001\210\001\211\001\216\001\220\001\221\001\225\001\225\001\228\001\235\001\239\001\240\001\241\001\249\002\002\002\t\002\017\002\023\002\029\002#\002,\0024\002?\002J\002X\002^\002g\002n\002y\002}\002\129\002\131\002\136\002\138\002\143\002\144\002\146\002\148\002\150\002\155\002\156\002\158\002\161\002\163\002\166\002\172\002\175\002\181\002\184\002\190\002\193\002\199\002\202\002\208\002\211\002\217\002\220\002\226\002\229\002\235\002\238\002\244\002\247\002\253\003\000\003\006\003\t\003\015\003\018\003\024\003\027\003!\003$\003*\003-\0033\0036\003<\003?\003E\003H\003N\003Q\003W\003Z\003`\003c\003i\003l\003r\003u\003y\003|\003\130\003\133\003\139\003\144\003\152\003\159\003\169\003\176\003\186\003\193\003\203\003\210\003\220\003\229\003\241\003\248\004\002\004\011\004\023\004\030\004(\0041\004=\004?\004A\004C\004E\004G\004K\004Q\004R\004S\004T\004V\004Y\004^\004_\004`\004b\004g\004m\004n\004n\004p\004t\004z\004|\004\128\004\132\004\135\004\145\004\156\004\165\004\175\004\176\004\177\004\179\004\180\004\182\004\182\004\184\004\186\004\190\004\191\004\192\004\194\004\197\004\201\004\202\004\204\004\205\004\206\004\209\004\213\004\219\004\227\004\228\004\229\004\231\004\232\004\234\004\237\004\241\004\246\004\252\004\253\004\254\005\000\005\002\005\007\005\t\005\011\005\016\005\022\005\024\005\029\005#\005%\005)\005.\0050\0052\0056\005;\005@\005A\005E\005H\005L\005T\005]\005d\005g\005k\005o\005w\005z\005~\005\130\005\138\005\142\005\147\005\152\005\161\005\165\005\170\005\175\005\184\005\192\005\201\005\210\005\223\005\226\005\230\005\234\005\242\005\245\005\249\005\253\006\005\006\t\006\014\006\019\006\028\006 \006%\006*\0063\006;\006D\006M\006Z\006[\006\\\006^\006b\006g\006k\006p\006v\006{\006\130\006\138\006\146\006\155\006\163\006\172\006\175\006\179\006\184\006\190\006\193\006\198\006\204\006\206\006\211\006\218\006\220\006\221\006\223\006\226\006\230\006\235\006\241\006\244\006\245\006\248\006\253\006\255\007\003\007\t\007\012\007\014\007\015\007\020\007\023\007\024\007\027\007\027\007#\007#\007,\007,\0075\0075\007;\007;\007C\007C\007E\007E\007N\007N\007X\007X\007Z\007Z\007\\\007^\007^\007`\007d\007f\007f\007h\007h\007j\007j\007l\007l\007n\007r\007t\007v\007y\007}\007\131\007\136\007\139\007\144\007\147\007\154\007\157\007\163\007\165\007\169\007\170\007\171\007\176\007\180\007\185\007\192\007\200\007\210\007\221\007\222\007\225\007\226\007\229\007\230\007\233\007\234\007\237\007\242\007\245\007\246\007\249\007\250\007\253\007\254\b\001\b\002\b\005\b\006\b\t\b\n\b\r\b\014\b\018\b\019\b\021\b\025\b\030\b!\b#\b&\b(\b*\b-\b/\b3\b8\b9\b;\b<\b>\bA\bB\bC\bD\bE\bF\bJ\bK\bO\bV\bZ\b_\be\bj\bm\bo\bp\bt\by\b|\b\128\b\132\b\137\b\140\b\141\b\144\b\151\b\159\b\160\b\160\b\161\b\161\b\162\b\163\b\163\b\164\b\165\b\167\b\169\b\171\b\172\b\177\b\178\b\179\b\181\b\182\b\184\b\185\b\187\b\188\b\189\b\190\b\192\b\194\b\196\b\197\b\199\b\200\b\202\b\203\b\205\b\206\b\208\b\211\b\215\b\216\b\218\b\221\b\225\b\228\b\232\b\237\b\243\b\246\b\250\b\255\t\005\t\b\t\n\t\015\t\021\t\026\t \t!\t\"\t#\t'\t,\t0\t5\t9\t>\t?\t@\tA\tB\tC\tD\tE\tF\tG\tH\tI\tJ\tK\tL\tM\tN\tO\tP\tQ\tR\tS\tT\tU\tV\tW\tX\tX\tX\tY\tY\tZ\tZ\t[\t]\t^\t^\t_\t_\ta\ta\tc\tc\te\tj\tj\tl\tl\tn\tn\tp\tp\tq\tq\ts\ts\tu\tw\tz\t{\t{\t|\t\127\t\132\t\138\t\142\t\145\t\150\t\158\t\165\t\175\t\184\t\196\t\203\t\213\t\214\t\220\t\225\t\227\t\229\t\231\t\233\t\235\t\237\t\239\t\241\t\243\t\245\t\247\t\250\t\252\t\253\n\000\n\003\n\004\n\b\n\t\n\011\n\017\n\019\n\023\n\026\n\028\n\029\n \n#\n$\n%\n&\n'\n)\n+\n-\n1\n2\n5\n6\n9\n=\nG\nG\nH\nH\nI\nJ\nL\nN\nN\nO\nP\nS\nV\nY\nZ\n[\n]\n^\n_\n`\na\nc\ne\nf\ng\ni\nl\nr\nv\nz\n\129\n\132\n\138\n\142\n\146\n\153\n\159\n\168\n\175\n\182\n\192\n\196\n\203\n\208\n\213\n\221\n\225\n\232\n\237\n\242\n\250\011\001\011\011\011\019\011\027\011&\011'\011*\011-\0111\0115\011=\011>\011A\011D\011H\011L\011T\011T\011Y\011Z\011\\\011]\011_\011`\011b\011c\011e\011f\011h\011j\011p\011s\011z\011{\011}\011\128\011\129\011\132\011\133\011\136\011\137\011\140\011\141\011\144\011\145\011\148\011\149\011\152\011\153\011\156\011\158\011\161\011\165\011\170\011\171\011\174\011\177\011\182\011\185\011\191\011\196\011\199\011\205\011\210\011\216\011\225\011\233\011\238\011\246\011\253\011\254\011\255\012\000\012\002\012\006\012\011\012\014\012\020\012\022\012\025\012\029\012\030\012 \012#\012&\012*\012/\0120\0124\012;\012=\012?\012@\012A\012B\012C\012E\012G\012P\012Z\012[\012a\012i\012j\012t\012u\012v\012w\012\129\012\130\012\136\012\137\012\138\012\140\012\142\012\144\012\146\012\147\012\149\012\151\012\153\012\155\012\158\012\161\012\164\012\167\012\169\012\172\012\174\012\177\012\180\012\186\012\188\012\191\012\195\012\200\012\205\012\210\012\215\012\220\012\227\012\232\012\239\012\244\012\251\r\000\r\004\r\b\r\014\r\022\r\028\r\029\r\030\r\031\r!\r#\r&\r(\r+\r.\r3\r8\r;\r>\rA\rB\rC\rG\rJ\rM\rR\rU\rW\r\\\r`\rc\ri\rr\rx\r\129\r\135\r\144\r\149\r\153\r\163\r\166\r\169\r\171\r\176\r\180\r\181\r\185\r\192\r\196\r\203\r\207\r\214\r\215\r\216\r\219\r\220\r\226\r\234\r\235\r\238\r\239\r\240\r\242\r\244\r\247\r\251\r\255\014\004\014\005\014\n\014\011\014\012\014\r\014\014\014\015\014\016\014\017\014\018\014\019\014\020\014\021\014\022\014\023\014\024\014\025\014\026\014\027\014\028\014\029\014\030\014\031\014 \014!\014\"\014#\014$\014%\014&\014'\014(\014)\014*\014+\014,\014-\014.\014/\0140\0141\0142\0143\0144\0145\0146\0147\0148\0149\014:\014;\014<\014=\014>\014?\014@\014H\014J\014N\014V\014_\014c\014h\014q\014{\014\128\014\134\014\143\014\153\014\158\014\164\014\174\014\185\014\191\014\198\014\205\014\213\014\216\014\220\014\228\014\237\014\241\014\246\014\254\015\007\015\016\015\026\015#\015-\0157\015B\015F\015K\015P\015V\015[\015a\015g\015n\015w\015\129\015\139\015\150\015\160\015\171\015\182\015\194\015\199\015\205\015\211\015\218\015\224\015\231\015\238\015\246\015\255\016\t\016\019\016\030\016(\0163\016>\016J\016O\016U\016[\016b\016h\016o\016v\016~\016\136\016\147\016\158\016\170\016\181\016\193\016\205\016\218\016\224\016\231\016\238\016\246\016\253\017\005\017\r\017\022\017\029\017%\017-\0176\017>\017G\017P\017Z\017]\017a\017e\017j\017n\017s\017x\017~\017\134\017\143\017\152\017\162\017\171\017\181\017\191\017\202\017\206\017\211\017\216\017\222\017\227\017\233\017\239\017\246\017\253\018\005\018\r\018\022\018\029\018%\018-\0186\018>\018G\018P\018Z\018b\018k\018t\018~\018\135\018\145\018\155\018\166\018\171\018\172\018\175\018\176\018\178\018\179\018\180\018\181\018\182\018\184\018\193\018\203\018\204\018\210\018\218\018\219\018\220\018\229\018\230\018\235\018\236\018\237\018\242\018\244\018\246\018\249\018\252\018\255\019\002\019\005\019\b\019\n\019\r\019\016\019\019\019\022\019\025\019\028\019\031\019!\019#\019$\019%\019(\019*\019.\0190\0190\0192\0193\0197\019:\019:\019;\019>\019@\019A\019B\019B\019C\019D\019E\019G\019I\019K\019M\019N\019O\019P\019Q\019S\019W\019Z\019[\019\\\019]\019b\019g\019m\019s\019z\019{\019|\019}\019~\019\134\019\134\019\135\019\136\019\138\019\140\019\141\019\143\019\145\019\151\019\156\019\160\019\164\019\169\019\174\019\175\019\177")) and lr0_core = - (16, "\000\000\000\001\000\002\000\003\000\004\000\005\000\006\000\007\000\b\000\t\000\n\000\011\000\012\000\r\000\014\000\015\000\016\000\017\000\018\000\019\000\020\000\021\000\022\000\023\000\024\000\025\000\026\000\027\000\028\000\029\000\030\000\031\000 \000!\000\"\000#\000$\000%\000&\000'\000(\000)\000*\000+\000,\000-\000.\000/\0000\0001\0002\0003\0004\0005\0006\0007\0008\0009\000:\000;\000<\000=\000>\000?\000@\000A\000B\000C\000D\000E\000F\000G\000H\000I\000J\000K\000L\000M\000N\000O\000P\000Q\000R\000S\000T\000U\000V\000W\000X\000Y\000Z\000[\000\\\000]\000^\000_\000`\000a\000b\000c\000d\000e\000f\000g\000h\000i\000j\000k\000l\000m\000n\000o\000p\000q\000r\000s\000t\000u\000v\000w\000x\000y\000z\000{\000|\000}\000~\000\127\000\128\000\129\000\130\000\131\000\132\000\133\000\134\000\135\000\136\000\137\000\138\000\139\000\140\000\141\000\142\000\143\000\144\000\145\000\146\000\190\011d\000\147\000\148\000\149\000\150\000\151\000\152\000\153\000\154\000\155\000\156\000\157\000\158\000\159\000\160\000\161\000\162\000\163\000\164\000\165\000\166\000\167\000\168\000\169\000\170\000\171\000\172\000\173\000\174\000\175\000\176\000\177\000\178\000\179\000\180\000\181\000\182\000\183\000\184\000\185\000\186\000\187\000\188\000\189\000\191\000\192\000\193\000\194\000\195\000\196\000\197\000\198\000\199\000\200\000\201\000\202\000\203\000\204\000\205\000\206\000\207\000\208\000\209\000\210\000\211\000\212\000\213\000\214\000\215\000\216\000\217\000\218\000\219\000\220\000\221\000\222\000\223\000\224\000\225\000\226\000\227\000\228\000\229\000\230\000\231\000\232\000\233\000\234\000\235\000\236\000\237\000\238\000\239\000\240\000\241\000\242\000\243\000\244\000\245\000\246\000\247\000\248\000\249\000\250\000\251\000\252\000\253\000\254\000\255\001\000\001\001\001\002\001\003\001\004\001\005\001\006\001\007\001\b\001\t\001\n\001\011\001\012\001\r\001\014\001\015\001\016\001\017\001\018\001\019\001\020\001\021\001\022\001\023\001\024\001\025\001\026\001\027\001\028\001\029\001\030\001\031\001 \001!\001\"\001#\001$\001%\001&\001'\001(\001)\001*\001+\001,\001-\001.\001/\0010\0011\0012\0013\0014\0015\0016\0017\0018\0019\001:\001;\001<\001=\001>\001?\001@\001A\001B\001C\001D\001E\001F\001G\001H\001I\001J\001K\001L\001M\001N\001O\001P\001Q\001R\001S\001T\001U\001V\001W\001X\001Y\001Z\001[\001\\\001]\001^\001_\001`\001a\001b\001c\001d\001e\001f\001g\001h\001i\001j\001k\001l\001m\001n\001o\001p\001q\001r\001s\001t\001u\001v\001w\001x\001y\001z\001{\001|\001}\001~\001\127\001\128\001\129\001\130\001\131\001\132\001\133\001\134\001\135\001\136\001\137\001\138\001\139\001\140\001\141\001\142\001\143\001\144\001\145\001\146\001\147\001\148\001\149\001\150\001\151\001\152\001\153\001\154\001\155\001\156\001\157\001\158\001\159\001\160\001\161\001\162\001\163\001\164\001\165\001\166\001\167\001\168\001\169\001\170\001\171\001\172\001\173\001\174\001\175\001\176\001\177\001\178\001\179\001\180\001\181\001\182\001\183\001\184\001\185\001\186\001\187\001\188\001\189\001\190\001\191\001\192\001\193\001\194\001\195\001\196\001\197\001\198\001\199\001\200\001\201\001\202\001\203\001\204\001\205\001\206\001\207\001\208\001\209\001\210\001\211\001\212\001\213\001\214\001\215\001\216\001\217\001\218\001\219\001\220\001\221\001\222\001\223\001\224\001\225\001\226\001\227\001\228\001\229\001\230\001\231\001\232\001\233\001\234\001\235\001\236\001\237\001\238\001\239\001\240\001\241\001\242\001\243\001\244\001\245\001\246\001\247\001\248\001\249\001\250\001\251\001\252\001\253\001\254\001\255\002\000\002\001\002\002\002\003\002\004\002\005\002\006\002\007\002\b\002\t\002\n\002\011\002\012\002\r\002\014\002\015\002\016\002\017\002\018\002\019\002\020\002\021\002\022\002\023\002\031\002 \002!\002\"\002#\002$\002%\002&\002'\002(\002)\002*\002+\002,\002-\002.\002/\0020\0021\0022\0023\0024\002=\002>\002?\002@\002A\002B\002C\002D\002E\002F\002G\002H\002I\002J\002K\002L\002M\002N\002O\002P\002Q\002R\002S\002T\002U\002V\002W\002X\002Y\002Z\002[\002\\\002]\002^\002_\002`\002a\002b\002c\002d\002e\002f\002g\002h\002i\002j\002k\002l\002m\002n\002o\002p\002q\002r\002s\002t\002u\002v\002w\002x\002y\002z\002{\002|\002}\002~\002\127\002\128\002\129\002\130\002\131\002\132\002\133\002\134\002\135\002\136\002\137\002\138\002\139\002\140\002\141\002\142\002\143\002\152\002\153\002\154\002\155\002\156\002\157\002\158\002\159\002\160\002\161\002\162\002\163\002\164\002\165\002\166\002\167\002\168\002\169\002\170\002\171\002\172\002\173\002\174\002\175\002\176\002\177\002\178\002\179\002\180\002\181\002\182\002\183\002\184\002\185\002\186\002\187\002\188\002\189\002\190\002\191\002\192\002\193\002\194\002\195\002\196\002\197\002\198\002\199\002\200\002\201\002\202\002\203\002\204\002\205\002\206\002\207\002\208\002\209\002\210\002\211\002\212\002\213\002\214\002\215\002\216\002\217\002\218\002\219\002\220\002\242\002\243\002\244\002\245\002\246\002\247\002\248\002\249\002\250\002\251\002\252\002\253\002\254\002\255\002\231\002\232\002\233\003\000\003\001\002\236\002\237\003\002\003\003\003\004\003\005\003\006\003\007\003\b\003\t\003\n\003\011\003\012\002\221\002\222\002\223\002\224\002\225\002\226\002\227\002\228\002\229\002\230\002\234\002\235\003\r\003\014\003\015\002\238\002\239\002\240\002\241\003\016\003\017\003\018\003\019\003\020\003\021\003\022\003\023\003\024\003\025\003\026\003\027\003\028\003\029\003\030\003\031\003 \003!\003\"\003#\003$\003%\003&\003'\003(\003)\003*\003+\003,\003-\003.\003/\003b\003c\003d\003=\003e\003K\003L\003Q\003R\003S\003T\003U\003V\003W\003X\003Y\003Z\003[\003\\\003]\003^\003_\003f\002\144\002\145\002\146\002\147\002\148\002\149\002\150\002\151\0030\0031\003`\003a\003g\003h\0032\0033\0034\0035\0036\0037\0038\0039\003:\003;\003<\003>\003i\003j\003k\003l\003m\003n\003o\003p\003q\003r\003s\003t\003u\003v\003w\003x\003y\003z\003{\003|\003}\003~\003\127\003\128\003\129\003\130\003\131\003\132\003\133\003\134\003\135\003\136\003\137\003\138\003\139\003\140\003\141\003\142\003\143\003\144\003\145\003\146\003\147\003\148\003\149\003\150\003\151\003\152\003\153\003\154\003\155\003\156\003\157\003\158\003\159\003\160\003\161\003\162\003\163\003\164\003\165\003\166\003\167\003\168\003\169\003\170\003\171\003\172\003\173\003\174\003\175\003\176\003\177\003\178\003\179\003\180\003\181\003\182\003\183\003\184\003\185\003\186\003\187\003\188\003\189\003\190\003\191\003\192\003\193\003\194\003\195\003\196\003\197\003\198\003\199\003\200\003\201\003\202\003\203\003\204\003\205\003\206\003\207\003\208\003\209\003\210\003\211\003\212\003\213\003\214\003\215\003\216\003\217\003\218\003\219\003\220\003\221\003\222\003\223\003\224\003\225\003\226\003\227\003\228\003\229\003\230\003\231\003\232\003\233\003\234\003\235\003\236\003\237\003\238\003\239\003\240\003\241\003\242\003\243\003\244\003\245\003\246\003\247\003\248\003\249\003\250\003\251\003\252\003\253\003\254\003\255\004\000\004\001\004\002\004\003\004\004\004\005\004\006\004\007\004\b\004\t\004\n\004\011\004\012\004\r\004\014\004\015\004\016\004\017\004\018\004\019\004\020\004\021\004\022\004\023\004\024\004\025\004\026\004\027\004\028\004\029\004\030\004\031\004 \004!\004P\004Q\004R\004S\004T\004U\004V\004W\004X\004Y\004Z\004[\004\\\004]\004^\004_\004`\004a\004b\004c\004d\004e\004f\004g\004h\004i\004j\004k\004l\004m\004n\004o\004p\004q\004r\004s\004t\004u\004v\004w\004x\004y\004z\004{\004|\004}\004~\004\127\004\130\004\142\004\132\004\133\004\128\004\129\004\131\004\135\004\136\004\137\004\138\004\139\004\140\004\141\004\134\004\143\004\144\004\145\004\146\004\147\004\148\004\149\004\150\004\151\004\152\004\153\004\154\004\155\004\156\004\157\004\158\004\159\004\160\004\161\004\162\004\163\004\164\004\165\004\166\004\167\004\168\004\169\004\170\004\171\004\172\004\173\004\174\004\175\004\176\004\177\004\178\004\179\004\180\004\181\004\182\004\183\004\184\004\185\004\186\004\187\004\188\004\189\004\190\004\191\004\192\004\193\004\194\004\195\004/\0040\0041\0042\0043\0044\0045\0046\0047\0048\004\"\004#\004$\004%\004(\004)\004*\004+\004,\004-\004.\004=\004>\004?\004@\004A\004D\004E\004F\004G\004H\004I\004J\004K\004L\004M\004N\004O\004&\004'\0049\004:\004;\004<\006\224\006\225\004\197\004\198\004\199\004\200\004\201\004\202\004\203\004\204\004\205\004\206\004\216\004\217\004\218\004\219\005\236\005\237\005\238\005\239\004B\004C\004\224\004\225\004\226\004\227\004\228\004\229\004\230\004\231\004\232\004\233\004\234\004\235\004\236\005#\005$\005%\005&\005'\005(\005\133\005\134\005\135\005\136\005\137\005\138\005\139\005\140\005\141\005\142\005\143\005\144\005\145\005\146\004\237\004\238\004\239\004\240\004\241\004\242\004\255\005\000\005\001\005\002\005\003\005\004\005\011\005\012\005\r\005\014\005\015\005\016\005)\005*\005+\005,\005-\005.\004\243\004\244\004\245\004\246\004\247\004\248\004\249\004\250\004\251\004\252\004\253\004\254\005\005\005\006\005\007\005\b\005\t\005\n\005\017\005\018\005\019\005\020\005\021\005\022\005\023\005\024\005\025\005\026\005\027\005\028\005\029\005\030\005\031\005 \005!\005\"\005/\0050\0051\0052\0053\0054\0055\0056\0057\0058\0059\005:\005a\005b\005c\005d\005e\005f\005m\005n\005o\005p\005q\005r\005s\005t\005u\005v\005w\005x\005;\005<\005=\005>\005?\005@\005A\005B\005C\005D\005E\005F\005G\005H\005I\005J\005K\005L\005g\005h\005i\005j\005k\005l\005y\005z\005{\005|\005}\005~\005\127\005\128\005\129\005\130\005\131\005\132\005M\005N\005O\005P\005Q\005R\005S\005T\005U\005V\005W\005X\005Y\005Z\005[\005\\\005]\005^\005_\005`\005\147\005\148\005\149\005\150\005\151\005\152\005\153\005\154\005\155\005\156\005\157\005\158\005\159\005\160\005\161\005\162\005\163\005\164\005\165\005\166\005\167\005\168\005\169\005\170\005\171\005\172\005\173\005\174\005\175\005\176\005\177\005\178\005\179\005\180\005\181\005\182\005\183\005\184\005\185\005\186\005\187\005\188\005\189\005\190\005\191\005\192\005\193\005\194\005\195\005\196\005\197\005\198\005\199\005\200\005\201\005\202\005\203\005\204\005\205\005\206\005\207\003?\003@\003A\003B\003C\003D\003E\003F\003G\003H\003I\003J\003M\003N\003O\003P\005\208\005\209\005\210\005\211\005\212\005\213\005\214\005\215\005\216\005\217\005\218\005\219\005\220\005\221\005\222\005\223\005\224\005\225\005\226\005\227\005\228\005\229\005\230\005\231\005\232\005\233\005\234\005\240\006\226\006\227\006\228\006\229\006\230\006\231\006\232\006\233\006\234\006\235\006\236\006L\006J\006K\006\237\006\238\006\239\006\240\006\241\006\242\006\243\006}\006~\006\127\006\128\006\129\006\130\006\131\006\132\006\133\006\134\006\135\006\136\006\137\006\138\006\139\006\140\006\141\006\142\006\143\006\144\006\145\006\146\006\147\006\148\006\149\006\150\006\151\006\152\006\153\006\154\006\155\006\156\006\157\006\158\006\159\006\160\006\161\006\162\006\163\006\164\006\165\006\166\006\167\006\168\006\169\006\170\006\171\006\172\006\173\006\174\006\175\006\176\006\177\006\178\006\179\006\180\006\181\006\182\006\183\006\184\006\185\006\186\006\187\006\188\006\189\006\190\006\191\006\192\006\193\006\194\006\195\006\196\006\197\006\198\006\199\006\200\006\201\006\202\006\203\006\204\006\205\006\206\006\207\006\208\006\209\006\210\006\211\006\212\006\213\006\214\006\215\006\216\006\217\006\218\006\219\006\220\006\221\006\222\006\223\006\251\006\252\006\253\006\254\006\255\007\000\007\001\007\002\007\003\006\244\006\245\0060\0061\006\246\006\247\006\248\006\249\006\250\004\196\005\241\005\242\005\243\005\244\005\245\005\246\005\247\005\248\005\249\005\250\005\251\005\252\005\253\005\254\005\255\006\000\006\001\006\002\006\003\006\004\006\005\006\006\006\007\006\b\006\t\006\n\006\011\006\012\006\r\006\014\006\015\006\016\006\017\006\018\006\019\006\020\006\021\006\022\006\023\006\024\006\025\006\026\006\027\006\028\006\029\006\030\006\031\006 \006!\006\"\006#\006$\006%\006&\006'\006(\006)\006*\006+\006,\006-\006.\006/\0062\0063\0064\0065\0066\0067\0068\0069\006:\006;\006<\006=\006>\006?\006@\006A\006B\006C\006D\006E\006F\006G\006H\006I\006M\006N\006O\006P\006Q\006R\006S\006T\006U\006V\006W\006X\006Y\006Z\006[\006\\\006]\006^\006_\006`\006a\006b\006c\006d\006e\006f\006g\006h\006i\006j\006k\006l\006m\006n\006o\006p\006q\006r\006s\006t\006u\006v\006w\006x\006y\006z\006{\006|\007\004\007\005\007\006\007\007\007\b\007\t\007\n\007\011\007\012\007\r\007\014\007\015\007\016\007\017\007\018\007\019\007\020\007\021\007\022\007\023\007\024\007\025\007\026\007\027\007\028\007\029\007\030\007\031\007 \007!\007\"\007#\007$\007%\007&\007'\007(\007)\007*\004\207\004\208\004\209\004\210\004\211\004\212\004\213\004\214\004\215\004\220\004\221\004\222\004\223\005\235\007+\007,\007-\007.\007/\0070\0071\0072\0073\0074\0075\0076\0077\0078\0079\007:\007;\007<\007=\007>\007?\007@\007A\007B\007C\007D\007E\007F\007G\007H\007I\007J\007K\007L\007M\007N\007O\007P\007Q\007R\007S\007T\007U\007V\007W\007X\007Y\007Z\007[\007\\\007]\007^\007_\007`\007a\007b\007c\007d\007e\007f\007g\007h\007i\007j\007k\007l\007m\007n\007o\007p\007q\007r\007s\007t\007u\007v\007w\007x\007y\007z\007{\007|\007}\007~\007\127\007\128\007\129\007\130\007\131\007\132\007\133\007\134\007\135\007\136\007\137\007\138\007\139\007\140\007\141\007\142\007\143\007\144\007\145\007\146\007\147\007\148\007\149\007\150\007\151\007\152\007\153\007\154\007\155\007\156\007\157\007\158\007\159\007\160\007\161\007\162\007\163\007\164\007\165\007\166\007\167\007\168\007\169\007\170\007\171\007\172\007\173\007\174\007\175\007\176\007\177\007\178\007\179\007\180\007\181\007\182\007\183\007\184\007\185\007\186\007\187\007\188\007\189\007\190\007\191\007\192\007\193\007\194\007\195\007\196\007\197\007\198\007\199\007\200\007\201\007\202\007\203\007\204\007\205\007\206\007\207\007\208\007\209\007\210\007\211\007\212\007\213\007\214\007\215\007\216\007\217\007\218\007\219\007\220\007\221\007\222\007\223\007\224\007\225\007\226\007\227\007\228\007\229\007\230\007\231\007\232\007\233\007\234\007\235\007\236\007\237\007\238\007\239\007\240\007\241\007\242\007\243\007\244\007\245\007\246\007\247\007\248\007\249\007\250\007\251\007\252\007\253\007\254\007\255\b\000\b\001\b\002\b\003\b\004\b\005\b\006\b\007\b\b\b\t\b\n\b\011\b\012\b\r\b\014\b\015\b\016\b\017\b\018\b\019\b\020\b\021\b\022\b\023\b\024\b\025\b\026\b\027\b\028\b\029\b\030\b\031\b \b!\b\"\b#\b$\b%\b&\b'\b(\b)\b*\b+\b,\b-\b.\b/\b0\b1\b2\b3\b4\b5\b6\b7\b8\b9\b:\b;\b<\b=\b>\b?\b@\bA\bB\bC\bD\bE\bF\bG\bH\bI\bJ\bK\bL\bM\bN\bO\bP\bQ\bR\bS\bT\bU\bV\bW\bX\bY\bZ\b[\b\\\b]\b^\b_\b`\ba\bb\bc\bd\be\bf\bg\bh\bi\bj\bk\bl\bm\bn\bo\bp\bq\br\bs\bt\bu\bv\bw\bx\by\bz\b{\b|\b}\b~\b\127\b\128\b\129\b\130\b\131\b\132\b\133\b\134\b\135\b\136\b\137\b\138\b\139\b\140\b\141\b\142\b\143\b\144\b\145\b\146\b\147\b\148\b\149\b\150\b\151\b\152\b\153\b\154\b\155\b\156\b\157\b\158\b\159\b\160\b\161\b\162\b\163\b\164\b\165\b\166\b\167\b\168\b\169\b\170\b\171\b\172\b\173\b\174\b\175\b\176\b\177\b\178\b\179\b\180\b\181\b\182\b\183\b\184\b\185\b\186\b\187\b\188\b\189\b\190\b\191\b\192\b\193\b\194\b\195\b\196\b\197\b\198\b\199\b\200\b\201\b\202\b\203\b\204\b\205\b\206\b\207\b\208\b\209\b\210\b\211\b\212\b\213\b\214\b\215\b\216\b\217\b\218\b\219\b\220\b\221\b\222\b\223\b\224\b\225\b\226\b\227\b\228\b\229\b\230\b\231\b\232\b\233\b\234\b\235\b\236\b\237\b\238\b\239\b\240\b\241\b\242\b\243\b\244\b\245\b\246\b\247\b\248\b\249\b\250\b\251\b\252\b\253\b\254\b\255\t\000\t\001\t\002\t\003\t\004\t\005\t\006\t\007\t\b\t\t\t\n\t\011\t\012\t\r\t\014\t\015\t\016\t\017\t\018\t\019\t\020\t\021\t\022\t\023\t\024\t\025\t\026\t\027\t\028\t\029\t\030\t\031\t \t!\t\"\t#\t$\t%\t&\t'\t(\t)\t*\t+\t,\t-\t.\t/\t0\t1\t2\t3\t4\t5\t6\t7\t8\t9\t:\t;\t<\t=\t>\t?\t@\tA\tB\tC\tD\tE\tF\tG\tH\tI\tJ\tK\tL\tM\tN\tO\tP\tQ\tR\tS\tT\tU\tV\tW\tX\tY\tZ\t[\t\\\t]\t^\t_\t`\ta\tb\tc\td\te\tf\tg\th\ti\tj\tk\tl\tm\tn\to\tp\tq\tr\ts\tt\tu\tv\tw\tx\ty\tz\t{\t|\t}\t~\t\127\t\128\t\129\t\130\t\131\t\132\t\133\t\134\t\135\t\136\t\137\t\138\t\139\t\140\t\141\t\142\t\143\t\144\t\145\t\146\t\147\t\148\t\149\t\150\t\151\t\152\t\153\t\154\t\155\t\156\t\157\t\158\t\159\t\160\t\161\t\162\t\163\t\164\t\165\t\166\t\167\t\168\t\169\t\170\t\171\t\172\t\173\t\174\t\175\t\176\t\177\t\178\t\179\t\180\t\181\t\182\t\183\t\184\t\185\t\186\t\187\t\188\t\189\t\190\t\191\t\192\t\193\t\194\t\195\t\196\t\197\t\198\t\199\t\200\t\201\t\202\t\203\t\204\t\205\t\206\t\207\t\208\t\209\t\210\t\211\t\212\t\213\t\214\t\215\t\216\t\217\t\218\t\219\t\220\t\221\t\222\t\223\t\224\t\225\t\226\t\227\t\228\t\229\t\230\t\231\t\232\t\233\t\238\t\239\t\240\t\241\t\242\0025\0026\0027\0028\0029\002:\002;\002<\t\234\t\235\t\236\t\237\t\243\t\244\t\245\t\246\t\247\t\248\t\249\t\250\t\251\n\003\n\004\n\005\n\006\n\007\n\b\n\t\n\n\002\024\002\025\002\026\002\027\002\028\002\029\002\030\t\252\t\253\t\254\t\255\n\000\n\001\n\002\n\011\n\012\n\r\n\014\n\015\n\016\n\017\n\018\n\019\n\020\n\021\n\022\n\023\n\024\n\025\n\026\n\027\n\028\n\029\n\030\n\031\n \n!\n\"\n#\n$\n%\n&\n'\n(\n)\n*\n+\n,\n-\n.\n/\n0\n1\n2\n3\n4\n5\n6\n7\n8\n9\n:\n;\n<\n=\n>\n?\n@\nA\nB\nC\nD\nE\nF\nG\nH\nI\nJ\nK\nL\nM\nN\nO\nP\nQ\nR\nS\nT\nU\nV\nW\nX\nY\nZ\n[\n\\\n]\n^\n_\n`\na\nb\nc\nd\ne\nf\ng\nh\ni\nj\nk\nl\nm\nn\no\np\nq\nr\ns\nt\nu\nv\nw\nx\ny\nz\n{\n|\n}\n~\n\127\n\128\n\129\n\130\n\131\n\132\n\133\n\134\n\135\n\136\n\137\n\138\n\139\n\140\n\141\n\142\n\143\n\144\n\145\n\146\n\147\n\148\n\149\n\150\n\151\n\152\n\153\n\154\n\155\n\156\n\157\n\158\n\159\n\160\n\161\n\162\n\163\n\164\n\165\n\166\n\167\n\168\n\169\n\170\n\171\n\172\n\173\n\174\n\175\n\176\n\177\n\178\n\179\n\180\n\181\n\182\n\183\n\184\n\185\n\186\n\187\n\188\n\189\n\190\n\191\n\192\n\193\n\194\n\195\n\196\n\197\n\198\n\199\n\200\n\201\n\202\n\203\n\204\n\205\n\206\n\207\n\208\n\209\n\210\n\211\n\212\n\213\n\214\n\215\n\216\n\217\n\218\n\219\n\220\n\221\n\222\n\223\n\224\n\225\n\226\n\227\n\228\n\229\n\230\n\231\n\232\n\233\n\234\n\235\n\236\n\237\n\238\n\239\n\240\n\241\n\242\n\243\n\244\n\245\n\246\n\247\n\248\n\249\n\250\n\251\n\252\n\253\n\254\n\255\011\000\011\001\011\002\011\003\011\004\011\005\011\006\011\007\011\b\011\t\011\n\011\011\011\012\011\r\011\014\011\015\011\016\011\017\011\018\011\019\011\020\011\021\011\022\011\023\011\024\011\025\011\026\011\027\011\028\011\029\011\030\011\031\011 \011!\011\"\011#\011$\011%\011&\011'\011(\011)\011*\011+\011,\011-\011.\011/\0110\0111\0112\0113\0114\0115\0116\0117\0118\0119\011:\011;\011<\011=\011>\011?\011@\011A\011B\011C\011D\011E\011F\011G\011H\011I\011J\011K\011L\011M\011N\011O\011P\011Q\011R\011S\011T\011U\011V\011W\011X\011Y\011Z\011[\011\\\011]\011^\011_\011`\011a\011b\011c\011e\011f\011g\011h\011i\011j\011k\011l\011m\011n\011o\011p\011q\011r\011s\011t\011u\011v\011w\011x\011y\011z\011{\011|\011}\011~\011\127\011\128\011\129\011\130\011\131\011\132\011\133\011\134\011\135\011\136\011\137\011\138\011\139\011\140\011\141\011\142\011\143\011\144\011\145\011\146\011\147\011\148\011\149\011\150\011\151\011\152\011\153\011\154\011\155\011\156\011\157\011\158\011\159\011\160\011\161\011\162\011\163\011\164\011\165\011\166\011\167\011\168\011\169\011\170\011\171\011\172\011\173\011\174\011\175\011\176\011\177\011\178\011\179\011\180\011\181\011\182\011\183\011\184\011\185\011\186\011\187\011\188\011\189\011\190\011\191\011\192\011\193\011\194\011\195\011\196\011\197\011\198\011\199\011\200\011\201\011\202\011\203\011\204\011\205\011\206\011\207\011\208\011\209\011\210\011\211\011\212\011\213\011\214\011\215\011\216\011\217\011\218\011\219\011\220\011\221\011\222\011\223\011\224\011\225\011\226\011\227\011\228\011\229\011\230\011\231\011\232\011\233\011\234\011\235\011\236\011\237\011\238\011\239\011\240") + (16, "\000\000\000\001\000\002\000\003\000\004\000\005\000\006\000\007\000\b\000\t\000\n\000\011\000\012\000\r\000\014\000\015\000\016\000\017\000\018\000\019\000\020\000\021\000\022\000\023\000\024\000\025\000\026\000\027\000\028\000\029\000\030\000\031\000 \000!\000\"\000#\000$\000%\000&\000'\000(\000)\000*\000+\000,\000-\000.\000/\0000\0001\0002\0003\0004\0005\0006\0007\0008\0009\000:\000;\000<\000=\000>\000?\000@\000A\000B\000C\000D\000E\000F\000G\000H\000I\000J\000K\000L\000M\000N\000O\000P\000Q\000R\000S\000T\000U\000V\000W\000X\000Y\000Z\000[\000\\\000]\000^\000_\000`\000a\000b\000c\000d\000e\000f\000g\000h\000i\000j\000k\000l\000m\000n\000o\000p\000q\000r\000s\000t\000u\000v\000w\000x\000y\000z\000{\000|\000}\000~\000\127\000\128\000\129\000\130\000\131\000\132\000\133\000\134\000\135\000\136\000\137\000\138\000\139\000\140\000\141\000\142\000\143\000\144\000\145\000\146\000\190\011m\000\147\000\148\000\149\000\150\000\151\000\152\000\153\000\154\000\155\000\156\000\157\000\158\000\159\000\160\000\161\000\162\000\163\000\164\000\165\000\166\000\167\000\168\000\169\000\170\000\171\000\172\000\173\000\174\000\175\000\176\000\177\000\178\000\179\000\180\000\181\000\182\000\183\000\184\000\185\000\186\000\187\000\188\000\189\000\191\000\192\000\193\000\194\000\195\000\196\000\197\000\198\000\199\000\200\000\201\000\202\000\203\000\204\000\205\000\206\000\207\000\208\000\209\000\210\000\211\000\212\000\213\000\214\000\215\000\216\000\217\000\218\000\219\000\220\000\221\000\222\000\223\000\224\000\225\000\226\000\227\000\228\000\229\000\230\000\231\000\232\000\233\000\234\000\235\000\236\000\237\000\238\000\239\000\240\000\241\000\242\000\243\000\244\000\245\000\246\000\247\000\248\000\249\000\250\000\251\000\252\000\253\000\254\000\255\001\000\001\001\001\002\001\003\001\004\001\005\001\006\001\007\001\b\001\t\001\n\001\011\001\012\001\r\001\014\001\015\001\016\001\017\001\018\001\019\001\020\001\021\001\022\001\023\001\024\001\025\001\026\001\027\001\028\001\029\001\030\001\031\001 \001!\001\"\001#\001$\001%\001&\001'\001(\001)\001*\001+\001,\001-\001.\001/\0010\0011\0012\0013\0014\0015\0016\0017\0018\0019\001:\001;\001<\001=\001>\001?\001@\001A\001B\001C\001D\001E\001F\001G\001H\001I\001J\001K\001L\001M\001N\001O\001P\001Q\001R\001S\001T\001U\001V\001W\001X\001Y\001Z\001[\001\\\001]\001^\001_\001`\001a\001b\001c\001d\001e\001f\001g\001h\001i\001j\001k\001l\001m\001n\001o\001p\001q\001r\001s\001t\001u\001v\001w\001x\001y\001z\001{\001|\001}\001~\001\127\001\128\001\129\001\130\001\131\001\132\001\133\001\134\001\135\001\136\001\137\001\138\001\139\001\140\001\141\001\142\001\143\001\144\001\145\001\146\001\147\001\148\001\149\001\150\001\151\001\152\001\153\001\154\001\155\001\156\001\157\001\158\001\159\001\160\001\161\001\162\001\163\001\164\001\165\001\166\001\167\001\168\001\169\001\170\001\171\001\172\001\173\001\174\001\175\001\176\001\177\001\178\001\179\001\180\001\181\001\182\001\183\001\184\001\185\001\186\001\187\001\188\001\189\001\190\001\191\001\192\001\193\001\194\001\195\001\196\001\197\001\198\001\199\001\200\001\201\001\202\001\203\001\204\001\205\001\206\001\207\001\208\001\209\001\210\001\211\001\212\001\213\001\214\001\215\001\216\001\217\001\218\001\219\001\220\001\221\001\222\001\223\001\224\001\225\001\226\001\227\001\228\001\229\001\230\001\231\001\232\001\233\001\234\001\235\001\236\001\237\001\238\001\239\001\240\001\241\001\242\001\243\001\244\001\245\001\246\001\247\001\248\001\249\001\250\001\251\001\252\001\253\001\254\001\255\002\000\002\001\002\002\002\003\002\004\002\005\002\006\002\007\002\b\002\t\002\n\002\011\002\012\002\r\002\014\002\015\002\016\002\017\002\018\002\019\002\020\002\021\002\022\002\023\002\031\002 \002!\002\"\002#\002$\002%\002&\002'\002(\002)\002*\002+\002,\002-\002.\002/\0020\0021\0022\0023\0024\002=\002>\002?\002@\002A\002B\002C\002D\002E\002F\002G\002H\002I\002J\002K\002L\002M\002N\002O\002P\002Q\002R\002S\002T\002U\002V\002W\002X\002Y\002Z\002[\002\\\002]\002^\002_\002`\002a\002b\002c\002d\002e\002f\002g\002h\002i\002j\002k\002l\002m\002n\002o\002p\002q\002r\002s\002t\002u\002v\002w\002x\002y\002z\002{\002|\002}\002~\002\127\002\128\002\129\002\130\002\131\002\132\002\133\002\134\002\135\002\136\002\137\002\138\002\139\002\140\002\141\002\142\002\143\002\152\002\153\002\154\002\155\002\156\002\157\002\158\002\159\002\160\002\161\002\162\002\163\002\164\002\165\002\166\002\167\002\168\002\169\002\170\002\171\002\172\002\173\002\174\002\175\002\176\002\177\002\178\002\179\002\180\002\181\002\182\002\183\002\184\002\185\002\186\002\187\002\188\002\189\002\190\002\191\002\192\002\193\002\194\002\195\002\196\002\197\002\198\002\199\002\200\002\201\002\202\002\203\002\204\002\205\002\206\002\207\002\208\002\209\002\210\002\211\002\212\002\213\002\214\002\215\002\216\002\217\002\218\002\219\002\220\002\242\002\243\002\244\002\245\002\246\002\247\002\248\002\249\002\250\002\251\002\252\002\253\002\254\002\255\002\231\002\232\002\233\003\000\003\001\002\236\002\237\003\002\003\003\003\004\003\005\003\006\003\007\003\b\003\t\003\n\003\011\003\012\002\221\002\222\002\223\002\224\002\225\002\226\002\227\002\228\002\229\002\230\002\234\002\235\003\r\003\014\003\015\002\238\002\239\002\240\002\241\003\016\003\017\003\018\003\019\003\020\003\021\003\022\003\023\003\024\003\025\003\026\003\027\003\028\003\029\003\030\003\031\003 \003!\003\"\003#\003$\003%\003&\003'\003(\003)\003*\003+\003,\003-\003.\003/\003b\003c\003d\003=\003e\003K\003L\003Q\003R\003S\003T\003U\003V\003W\003X\003Y\003Z\003[\003\\\003]\003^\003_\003f\002\144\002\145\002\146\002\147\002\148\002\149\002\150\002\151\0030\0031\003`\003a\003g\003h\0032\0033\0034\0035\0036\0037\0038\0039\003:\003;\003<\003>\003i\003j\003k\003l\003m\003n\003o\003p\003q\003r\003s\003t\003u\003v\003w\003x\003y\003z\003{\003|\003}\003~\003\127\003\128\003\129\003\130\003\131\003\132\003\133\003\134\003\135\003\136\003\137\003\138\003\139\003\140\003\141\003\142\003\143\003\144\003\145\003\146\003\147\003\148\003\149\003\150\003\151\003\152\003\153\003\154\003\155\003\156\003\157\003\158\003\159\003\160\003\161\003\162\003\163\003\164\003\165\003\166\003\167\003\168\003\169\003\170\003\171\003\172\003\173\003\174\003\175\003\176\003\177\003\178\003\179\003\180\003\181\003\182\003\183\003\184\003\185\003\186\003\187\003\188\003\189\003\190\003\191\003\192\003\193\003\194\003\195\003\196\003\197\003\198\003\199\003\200\003\201\003\202\003\203\003\204\003\205\003\206\003\207\003\208\003\209\003\210\003\211\003\212\003\213\003\214\003\215\003\216\003\217\003\218\003\219\003\220\003\221\003\222\003\223\003\224\003\225\003\226\003\227\003\228\003\229\003\230\003\231\003\232\003\233\003\234\003\235\003\236\003\237\003\238\003\239\003\240\003\241\003\242\003\243\003\244\003\245\003\246\003\247\003\248\003\249\003\250\003\251\003\252\003\253\003\254\003\255\004\000\004\001\004\002\004\003\004\004\004\005\004\006\004\007\004\b\004\t\004\n\004\011\004\012\004\r\004\014\004\015\004\016\004\017\004\018\004\019\004\020\004\021\004\022\004\023\004\024\004\025\004\026\004\027\004\028\004\029\004\030\004\031\004 \004!\004P\004Q\004R\004S\004T\004U\004V\004W\004X\004Y\004Z\004[\004\\\004]\004^\004_\004`\004a\004b\004c\004d\004e\004f\004g\004h\004i\004j\004k\004l\004m\004n\004o\004p\004q\004r\004s\004t\004u\004v\004w\004x\004y\004z\004{\004|\004}\004~\004\127\004\130\004\142\004\132\004\133\004\128\004\129\004\131\004\135\004\136\004\137\004\138\004\139\004\140\004\141\004\134\004\143\004\144\004\145\004\146\004\147\004\148\004\149\004\150\004\151\004\152\004\153\004\154\004\155\004\156\004\157\004\158\004\159\004\160\004\161\004\162\004\163\004\164\004\165\004\166\004\167\004\168\004\169\004\170\004\171\004\172\004\173\004\174\004\175\004\176\004\177\004\178\004\179\004\180\004\181\004\182\004\183\004\184\004\185\004\186\004\187\004\188\004\189\004\190\004\191\004\192\004\193\004\194\004\195\004/\0040\0041\0042\0043\0044\0045\0046\0047\0048\004\"\004#\004$\004%\004(\004)\004*\004+\004,\004-\004.\004=\004>\004?\004@\004A\004D\004E\004F\004G\004H\004I\004J\004K\004L\004M\004N\004O\004&\004'\0049\004:\004;\004<\006\225\006\226\004\197\004\198\004\199\004\200\004\201\004\202\004\203\004\204\004\205\004\206\004\216\004\217\004\218\004\219\005\237\005\238\005\239\005\240\004B\004C\004\224\004\225\004\226\004\227\004\228\004\229\004\230\004\231\004\232\004\233\004\234\004\235\004\236\005#\005$\005%\005&\005'\005(\005\133\005\134\005\135\005\136\005\137\005\138\005\139\005\140\005\141\005\142\005\143\005\144\005\145\005\146\005\147\004\237\004\238\004\239\004\240\004\241\004\242\004\255\005\000\005\001\005\002\005\003\005\004\005\011\005\012\005\r\005\014\005\015\005\016\005)\005*\005+\005,\005-\005.\004\243\004\244\004\245\004\246\004\247\004\248\004\249\004\250\004\251\004\252\004\253\004\254\005\005\005\006\005\007\005\b\005\t\005\n\005\017\005\018\005\019\005\020\005\021\005\022\005\023\005\024\005\025\005\026\005\027\005\028\005\029\005\030\005\031\005 \005!\005\"\005/\0050\0051\0052\0053\0054\0055\0056\0057\0058\0059\005:\005a\005b\005c\005d\005e\005f\005m\005n\005o\005p\005q\005r\005s\005t\005u\005v\005w\005x\005;\005<\005=\005>\005?\005@\005A\005B\005C\005D\005E\005F\005G\005H\005I\005J\005K\005L\005g\005h\005i\005j\005k\005l\005y\005z\005{\005|\005}\005~\005\127\005\128\005\129\005\130\005\131\005\132\005M\005N\005O\005P\005Q\005R\005S\005T\005U\005V\005W\005X\005Y\005Z\005[\005\\\005]\005^\005_\005`\005\148\005\149\005\150\005\151\005\152\005\153\005\154\005\155\005\156\005\157\005\158\005\159\005\160\005\161\005\162\005\163\005\164\005\165\005\166\005\167\005\168\005\169\005\170\005\171\005\172\005\173\005\174\005\175\005\176\005\177\005\178\005\179\005\180\005\181\005\182\005\183\005\184\005\185\005\186\005\187\005\188\005\189\005\190\005\191\005\192\005\193\005\194\005\195\005\196\005\197\005\198\005\199\005\200\005\201\005\202\005\203\005\204\005\205\005\206\005\207\005\208\003?\003@\003A\003B\003C\003D\003E\003F\003G\003H\003I\003J\003M\003N\003O\003P\005\209\005\210\005\211\005\212\005\213\005\214\005\215\005\216\005\217\005\218\005\219\005\220\005\221\005\222\005\223\005\224\005\225\005\226\005\227\005\228\005\229\005\230\005\231\005\232\005\233\005\234\005\235\005\241\006\227\006\228\006\229\006\230\006\231\006\232\006\233\006\234\006\235\006\236\006\237\006M\006K\006L\006\238\006\239\006\240\006\241\006\242\006\243\006\244\006~\006\127\006\128\006\129\006\130\006\131\006\132\006\133\006\134\006\135\006\136\006\137\006\138\006\139\006\140\006\141\006\142\006\143\006\144\006\145\006\146\006\147\006\148\006\149\006\150\006\151\006\152\006\153\006\154\006\155\006\156\006\157\006\158\006\159\006\160\006\161\006\162\006\163\006\164\006\165\006\166\006\167\006\168\006\169\006\170\006\171\006\172\006\173\006\174\006\175\006\176\006\177\006\178\006\179\006\180\006\181\006\182\006\183\006\184\006\185\006\186\006\187\006\188\006\189\006\190\006\191\006\192\006\193\006\194\006\195\006\196\006\197\006\198\006\199\006\200\006\201\006\202\006\203\006\204\006\205\006\206\006\207\006\208\006\209\006\210\006\211\006\212\006\213\006\214\006\215\006\216\006\217\006\218\006\219\006\220\006\221\006\222\006\223\006\224\006\252\006\253\006\254\006\255\007\000\007\001\007\002\007\003\007\004\006\245\006\246\0061\0062\006\247\006\248\006\249\006\250\006\251\004\196\005\242\005\243\005\244\005\245\005\246\005\247\005\248\005\249\005\250\005\251\005\252\005\253\005\254\005\255\006\000\006\001\006\002\006\003\006\004\006\005\006\006\006\007\006\b\006\t\006\n\006\011\006\012\006\r\006\014\006\015\006\016\006\017\006\018\006\019\006\020\006\021\006\022\006\023\006\024\006\025\006\026\006\027\006\028\006\029\006\030\006\031\006 \006!\006\"\006#\006$\006%\006&\006'\006(\006)\006*\006+\006,\006-\006.\006/\0060\0063\0064\0065\0066\0067\0068\0069\006:\006;\006<\006=\006>\006?\006@\006A\006B\006C\006D\006E\006F\006G\006H\006I\006J\006N\006O\006P\006Q\006R\006S\006T\006U\006V\006W\006X\006Y\006Z\006[\006\\\006]\006^\006_\006`\006a\006b\006c\006d\006e\006f\006g\006h\006i\006j\006k\006l\006m\006n\006o\006p\006q\006r\006s\006t\006u\006v\006w\006x\006y\006z\006{\006|\006}\007\005\007\006\007\007\007\b\007\t\007\n\007\011\007\012\007\r\007\014\007\015\007\016\007\017\007\018\007\019\007\020\007\021\007\022\007\023\007\024\007\025\007\026\007\027\007\028\007\029\007\030\007\031\007 \007!\007\"\007#\007$\007%\007&\007'\007(\007)\007*\007+\004\207\004\208\004\209\004\210\004\211\004\212\004\213\004\214\004\215\004\220\004\221\004\222\004\223\005\236\007,\007-\007.\007/\0070\0071\0072\0073\0074\0075\0076\0077\0078\0079\007:\007;\007<\007=\007>\007?\007@\007A\007B\007C\007D\007E\007F\007G\007H\007I\007J\007K\007L\007M\007N\007O\007P\007Q\007R\007S\007T\007U\007V\007W\007X\007Y\007Z\007[\007\\\007]\007^\007_\007`\007a\007b\007c\007d\007e\007f\007g\007h\007i\007j\007k\007l\007m\007n\007o\007p\007q\007r\007s\007t\007u\007v\007w\007x\007y\007z\007{\007|\007}\007~\007\127\007\128\007\129\007\130\007\131\007\132\007\133\007\134\007\135\007\136\007\137\007\138\007\139\007\140\007\141\007\142\007\143\007\144\007\145\007\146\007\147\007\148\007\149\007\150\007\151\007\152\007\153\007\154\007\155\007\156\007\157\007\158\007\159\007\160\007\161\007\162\007\163\007\164\007\165\007\166\007\167\007\168\007\169\007\170\007\171\007\172\007\173\007\174\007\175\007\176\007\177\007\178\007\179\007\180\007\181\007\182\007\183\007\184\007\185\007\186\007\187\007\188\007\189\007\190\007\191\007\192\007\193\007\194\007\195\007\196\007\197\007\198\007\199\007\200\007\201\007\202\007\203\007\204\007\205\007\206\007\207\007\208\007\209\007\210\007\211\007\212\007\213\007\214\007\215\007\216\007\217\007\218\007\219\007\220\007\221\007\222\007\223\007\224\007\225\007\226\007\227\007\228\007\229\007\230\007\231\007\232\007\233\007\234\007\235\007\236\007\237\007\238\007\239\007\240\007\241\007\242\007\243\007\244\007\245\007\246\007\247\007\248\007\249\007\250\007\251\007\252\007\253\007\254\007\255\b\000\b\001\b\002\b\003\b\004\b\005\b\006\b\007\b\b\b\t\b\n\b\011\b\012\b\r\b\014\b\015\b\016\b\017\b\018\b\019\b\020\b\021\b\022\b\023\b\024\b\025\b\026\b\027\b\028\b\029\b\030\b\031\b \b!\b\"\b#\b$\b%\b&\b'\b(\b)\b*\b+\b,\b-\b.\b/\b0\b1\b2\b3\b4\b5\b6\b7\b8\b9\b:\b;\b<\b=\b>\b?\b@\bA\bB\bC\bD\bE\bF\bG\bH\bI\bJ\bK\bL\bM\bN\bO\bP\bQ\bR\bS\bT\bU\bV\bW\bX\bY\bZ\b[\b\\\b]\b^\b_\b`\ba\bb\bc\bd\be\bf\bg\bh\bi\bj\bk\bl\bm\bn\bo\bp\bq\br\bs\bt\bu\bv\bw\bx\by\bz\b{\b|\b}\b~\b\127\b\128\b\129\b\130\b\131\b\132\b\133\b\134\b\135\b\136\b\137\b\138\b\139\b\140\b\141\b\142\b\143\b\144\b\145\b\146\b\147\b\148\b\149\b\150\b\151\b\152\b\153\b\154\b\155\b\156\b\157\b\158\b\159\b\160\b\161\b\162\b\163\b\164\b\165\b\166\b\167\b\168\b\169\b\170\b\171\b\172\b\173\b\174\b\175\b\176\b\177\b\178\b\179\b\180\b\181\b\182\b\183\b\184\b\185\b\186\b\187\b\188\b\189\b\190\b\191\b\192\b\193\b\194\b\195\b\196\b\197\b\198\b\199\b\200\b\201\b\202\b\203\b\204\b\205\b\206\b\207\b\208\b\209\b\210\b\211\b\212\b\213\b\214\b\215\b\216\b\217\b\218\b\219\b\220\b\221\b\222\b\223\b\224\b\225\b\226\b\227\b\228\b\229\b\230\b\231\b\232\b\233\b\234\b\235\b\236\b\237\b\238\b\239\b\240\b\241\b\242\b\243\b\244\b\245\b\246\b\247\b\248\b\249\b\250\b\251\b\252\b\253\b\254\b\255\t\000\t\001\t\002\t\003\t\004\t\005\t\006\t\007\t\b\t\t\t\n\t\011\t\012\t\r\t\014\t\015\t\016\t\017\t\018\t\019\t\020\t\021\t\022\t\023\t\024\t\025\t\026\t\027\t\028\t\029\t\030\t\031\t \t!\t\"\t#\t$\t%\t&\t'\t(\t)\t*\t+\t,\t-\t.\t/\t0\t1\t2\t3\t4\t5\t6\t7\t8\t9\t:\t;\t<\t=\t>\t?\t@\tA\tB\tC\tD\tE\tF\tG\tH\tI\tJ\tK\tL\tM\tN\tO\tP\tQ\tR\tS\tT\tU\tV\tW\tX\tY\tZ\t[\t\\\t]\t^\t_\t`\ta\tb\tc\td\te\tf\tg\th\ti\tj\tk\tl\tm\tn\to\tp\tq\tr\ts\tt\tu\tv\tw\tx\ty\tz\t{\t|\t}\t~\t\127\t\128\t\129\t\130\t\131\t\132\t\133\t\134\t\135\t\136\t\137\t\138\t\139\t\140\t\141\t\142\t\143\t\144\t\145\t\146\t\147\t\148\t\149\t\150\t\151\t\152\t\153\t\154\t\155\t\156\t\157\t\158\t\159\t\160\t\161\t\162\t\163\t\164\t\165\t\166\t\167\t\168\t\169\t\170\t\171\t\172\t\173\t\174\t\175\t\176\t\177\t\178\t\179\t\180\t\181\t\182\t\183\t\184\t\185\t\186\t\187\t\188\t\189\t\190\t\191\t\192\t\193\t\194\t\195\t\196\t\197\t\198\t\199\t\200\t\201\t\202\t\203\t\204\t\205\t\206\t\207\t\208\t\209\t\210\t\211\t\212\t\213\t\214\t\215\t\216\t\217\t\218\t\219\t\220\t\221\t\222\t\223\t\224\t\225\t\226\t\227\t\228\t\229\t\230\t\231\t\232\t\233\t\234\t\239\t\240\t\241\t\242\t\243\0025\0026\0027\0028\0029\002:\002;\002<\t\235\t\236\t\237\t\238\t\244\t\245\t\246\t\247\t\248\t\249\t\250\t\251\t\252\t\253\t\254\t\255\n\000\n\001\n\002\n\003\n\011\n\012\n\r\n\014\n\015\n\016\n\017\n\018\002\024\002\025\002\026\002\027\002\028\002\029\002\030\n\004\n\005\n\006\n\007\n\b\n\t\n\n\n\019\n\020\n\021\n\022\n\023\n\024\n\025\n\026\n\027\n\028\n\029\n\030\n\031\n \n!\n\"\n#\n$\n%\n&\n'\n(\n)\n*\n+\n,\n-\n.\n/\n0\n1\n2\n3\n4\n5\n6\n7\n8\n9\n:\n;\n<\n=\n>\n?\n@\nA\nB\nC\nD\nE\nF\nG\nH\nI\nJ\nK\nL\nM\nN\nO\nP\nQ\nR\nS\nT\nU\nV\nW\nX\nY\nZ\n[\n\\\n]\n^\n_\n`\na\nb\nc\nd\ne\nf\ng\nh\ni\nj\nk\nl\nm\nn\no\np\nq\nr\ns\nt\nu\nv\nw\nx\ny\nz\n{\n|\n}\n~\n\127\n\128\n\129\n\130\n\131\n\132\n\133\n\134\n\135\n\136\n\137\n\138\n\139\n\140\n\141\n\142\n\143\n\144\n\145\n\146\n\147\n\148\n\149\n\150\n\151\n\152\n\153\n\154\n\155\n\156\n\157\n\158\n\159\n\160\n\161\n\162\n\163\n\164\n\165\n\166\n\167\n\168\n\169\n\170\n\171\n\172\n\173\n\174\n\175\n\176\n\177\n\178\n\179\n\180\n\181\n\182\n\183\n\184\n\185\n\186\n\187\n\188\n\189\n\190\n\191\n\192\n\193\n\194\n\195\n\196\n\197\n\198\n\199\n\200\n\201\n\202\n\203\n\204\n\205\n\206\n\207\n\208\n\209\n\210\n\211\n\212\n\213\n\214\n\215\n\216\n\217\n\218\n\219\n\220\n\221\n\222\n\223\n\224\n\225\n\226\n\227\n\228\n\229\n\230\n\231\n\232\n\233\n\234\n\235\n\236\n\237\n\238\n\239\n\240\n\241\n\242\n\243\n\244\n\245\n\246\n\247\n\248\n\249\n\250\n\251\n\252\n\253\n\254\n\255\011\000\011\001\011\002\011\003\011\004\011\005\011\006\011\007\011\b\011\t\011\n\011\011\011\012\011\r\011\014\011\015\011\016\011\017\011\018\011\019\011\020\011\021\011\022\011\023\011\024\011\025\011\026\011\027\011\028\011\029\011\030\011\031\011 \011!\011\"\011#\011$\011%\011&\011'\011(\011)\011*\011+\011,\011-\011.\011/\0110\0111\0112\0113\0114\0115\0116\0117\0118\0119\011:\011;\011<\011=\011>\011?\011@\011A\011B\011C\011D\011E\011F\011G\011H\011I\011J\011K\011L\011M\011N\011O\011P\011Q\011R\011S\011T\011U\011V\011W\011X\011Y\011Z\011[\011\\\011]\011^\011_\011`\011a\011b\011c\011d\011e\011f\011g\011h\011i\011j\011k\011l\011n\011o\011p\011q\011r\011s\011t\011u\011v\011w\011x\011y\011z\011{\011|\011}\011~\011\127\011\128\011\129\011\130\011\131\011\132\011\133\011\134\011\135\011\136\011\137\011\138\011\139\011\140\011\141\011\142\011\143\011\144\011\145\011\146\011\147\011\148\011\149\011\150\011\151\011\152\011\153\011\154\011\155\011\156\011\157\011\158\011\159\011\160\011\161\011\162\011\163\011\164\011\165\011\166\011\167\011\168\011\169\011\170\011\171\011\172\011\173\011\174\011\175\011\176\011\177\011\178\011\179\011\180\011\181\011\182\011\183\011\184\011\185\011\186\011\187\011\188\011\189\011\190\011\191\011\192\011\193\011\194\011\195\011\196\011\197\011\198\011\199\011\200\011\201\011\202\011\203\011\204\011\205\011\206\011\207\011\208\011\209\011\210\011\211\011\212\011\213\011\214\011\215\011\216\011\217\011\218\011\219\011\220\011\221\011\222\011\223\011\224\011\225\011\226\011\227\011\228\011\229\011\230\011\231\011\232\011\233\011\234\011\235\011\236\011\237\011\238\011\239\011\240\011\241\011\242\011\243\011\244\011\245\011\246\011\247\011\248\011\249") and lr0_items = - ((32, "\000\000\000\000\000\002\204\001\000\002d\001\000\016\168\001\000\016\164\001\000\016\160\001\000\016\156\001\000\016\152\001\000\015\224\001\000\016\148\001\000\016\144\001\000\016\140\001\000\016\136\001\000\016\132\001\000\016\128\001\000\016|\001\000\016x\001\000\016t\001\000\016p\001\000\016l\001\000\016h\001\000\016d\001\000\016`\001\000\016\\\001\000\016X\001\000\016T\001\000\016P\001\000\016L\001\000\016H\001\000\015\220\001\000\016D\001\000\016@\001\000\016<\001\000\0168\001\000\0164\001\000\0160\001\000\016,\001\000\016(\001\000\016$\001\000\016 \001\000\016\028\001\000\016\024\001\000\016\020\001\000\016\016\001\000\016\012\001\000\016\b\001\000\016\004\001\000\016\000\001\000\015\252\001\000\015\248\001\000\015\244\001\000\015\240\001\000\015\236\001\000\015\232\001\000\015\228\001\000\000\172\001\000\000\168\001\000\000\172\002\000\000\172\003\000\002d\002\000\002\204\002\000\000\180\001\000\000\180\002\000\020@\001\000\020@\002\000\020@\003\000\020\012\001\000\n\020\001\000\t\180\001\000\n\b\001\000\n\004\001\000\n\000\001\000\n\024\001\000\n(\001\000\t\248\001\000\n\016\001\000\n\012\001\000\t\184\001\000\n \001\000\t\252\001\000\t\244\001\000\t\240\001\000\t\236\001\000\t\224\001\000\t\216\001\000\n$\001\000\n\028\001\000\t\212\001\000\t\208\001\000\t\204\001\000\t\200\001\000\t\196\001\000\t\192\001\000\t\196\002\000\t\192\002\000\004\184\001\000\004\184\002\000\t\196\003\000\t\192\003\000\t\196\004\000\t\192\004\000\t\196\005\000\t\204\002\000\t\200\002\000\t\204\003\000\t\200\003\000\t\204\004\000\t\200\004\000\t\204\005\000\t\212\002\000\t\208\002\000\t\212\003\000\t\208\003\000\t\212\004\000\t\208\004\000\t\212\005\000\n8\001\000\n,\001\000\t\220\001\000\t\232\001\000\t\228\001\000\t\188\001\000\n0\001\000\n4\001\000\020\012\002\000\020\012\003\000\020\016\001\000\020@\004\000\020@\005\000\t<\001\000\t0\001\000\t@\001\000\t4\001\000\t8\001\000\t,\001\000\t8\002\000\t@\002\000\t<\002\000\000\156\001\000\007\204\001\000\002l\001\000\012\240\001\000\000\152\001\000\004\160\001\000\004\164\001\000\012\240\002\000\000\152\002\000\n\204\001\000\n\204\002\000\n\204\003\000\n\200\001\000\0188\001\000\0184\001\000\0180\001\000\018,\001\000\018(\001\000\018$\001\000\018 \001\000\018\028\001\000\017\000\001\000\016\252\001\000\012\244\001\000\0020\001\000\002,\001\000\000\164\001\000\000\160\001\000\000\144\001\000\000\132\001\000\000x\001\000\r\144\001\000\r\140\001\000\r\136\001\000\000\164\002\000\000\156\001\000\r\144\002\000\r\140\002\000\r\136\002\000\000\164\003\000\004\224\001\000\004\232\001\000\004\220\001\000\000\152\001\000\000\152\002\000\0188\001\000\0184\001\000\0180\001\000\018,\001\000\018(\001\000\018$\001\000\018 \001\000\018\028\001\000\017\000\001\000\016\252\001\000\0020\001\000\002,\001\000\000\164\001\000\000\160\001\000\000\144\001\000\000\132\001\000\000x\001\000\r\132\001\000\r\128\001\000\r|\001\000\012\240\001\000\000\160\002\000\000\152\001\000\r\132\002\000\r\128\002\000\r|\002\000\012\240\002\000\000\160\003\000\000\152\002\000\r\132\003\000\r\128\003\000\r|\003\000\000\160\004\000\011\228\001\000\004\228\001\000\011\228\002\000\004\200\001\000\011\228\003\000\011\224\001\000\004\212\001\000\004\208\001\000\004\212\002\000\019\204\001\000\019\200\001\000\018\236\001\000\018\232\001\000\018\228\001\000\018\224\001\000\018\220\001\000\018\216\001\000\018\212\001\000\018\208\001\000\018\204\001\000\018\200\001\000\018\196\001\000\018\192\001\000\018\188\001\000\018\184\001\000\018\180\001\000\018\176\001\000\018\172\001\000\018\168\001\000\018\164\001\000\018\160\001\000\018\156\001\000\018\024\001\000\018\020\001\000\018\016\001\000\018\012\001\000\018\b\001\000\018\004\001\000\018\000\001\000\017\252\001\000\017\248\001\000\017\244\001\000\017\240\001\000\017\236\001\000\017\232\001\000\017\228\001\000\017\224\001\000\017\220\001\000\017\216\001\000\017\212\001\000\017\208\001\000\017\204\001\000\017\200\001\000\017\196\001\000\017\192\001\000\017\188\001\000\017\184\001\000\017\180\001\000\017\176\001\000\017\172\001\000\017\168\001\000\017\164\001\000\017\160\001\000\017\156\001\000\016\248\001\000\016\244\001\000\016\240\001\000\016\236\001\000\016\232\001\000\016\228\001\000\016\224\001\000\016\220\001\000\019\200\002\000\018\236\002\000\018\232\002\000\018\228\002\000\018\224\002\000\018\220\002\000\018\216\002\000\018\212\002\000\018\208\002\000\018\204\002\000\018\200\002\000\018\196\002\000\018\192\002\000\018\188\002\000\018\184\002\000\018\180\002\000\018\176\002\000\018\172\002\000\018\168\002\000\018\164\002\000\018\160\002\000\018\156\002\000\018\024\002\000\018\020\002\000\018\016\002\000\018\012\002\000\018\b\002\000\018\004\002\000\018\000\002\000\017\252\002\000\017\248\002\000\017\244\002\000\017\240\002\000\017\236\002\000\017\232\002\000\017\228\002\000\017\224\002\000\017\220\002\000\017\216\002\000\017\212\002\000\017\208\002\000\017\204\002\000\017\200\002\000\017\196\002\000\017\192\002\000\017\188\002\000\017\184\002\000\017\180\002\000\017\176\002\000\017\172\002\000\017\168\002\000\017\164\002\000\017\160\002\000\017\156\002\000\016\248\002\000\016\244\002\000\016\240\002\000\016\236\002\000\016\232\002\000\016\228\002\000\016\224\002\000\016\220\002\000\017\184\003\000\017\180\003\000\017\176\003\000\017\172\003\000\017\168\003\000\017\164\003\000\017\160\003\000\017\156\003\000\016\224\003\000\016\220\003\000\0020\001\000\002,\001\000\000\164\001\000\000\160\001\000\000\144\001\000\000\132\001\000\000x\001\000\0020\002\000\0020\003\000\0020\004\000\007\204\001\000\004\160\001\000\b\144\001\000\b\144\002\000\n\180\001\000\t \001\000\t\028\001\000\t \002\000\n\180\002\000\b\144\003\000\b\144\004\000\r\228\001\000\014\b\001\000\014\004\001\000\004\156\001\000\004\152\001\000\004\148\001\000\004\144\001\000\014\b\002\000\014\004\002\000\004\156\002\000\004\152\002\000\004\148\002\000\004\144\002\000\014\b\003\000\014\004\003\000\004\156\003\000\004\152\003\000\004\148\003\000\004\144\003\000\019\248\001\000\019\228\001\000\019\216\001\000\019\228\002\000\014\b\004\000\004\156\004\000\004\148\004\000\019\236\001\000\019\220\001\000\019\236\002\000\019\196\001\000\019\244\001\000\019\240\001\000\019\232\001\000\019\224\001\000\019\232\002\000\019\240\002\000\019\184\001\000\019\180\001\000\011\b\001\000\011\004\001\000\019\184\002\000\011\b\002\000\019\184\003\000\011\b\003\000\011\b\004\000\011\224\001\000\011\b\005\000\004\212\001\000\004\208\001\000\004\208\002\000\t\024\001\000\t\020\001\000\t\024\002\000\004\208\003\000\011\224\002\000\011\224\003\000\011\224\001\000\004\212\001\000\004\208\001\000\004\216\001\000\007\012\001\000\007\012\002\000\019\180\002\000\011\004\002\000\019\180\003\000\011\004\003\000\019\180\004\000\011\004\004\000\011\004\005\000\011\224\001\000\011\004\006\000\004\212\001\000\004\208\001\000\011\000\001\000\019\196\002\000\r8\001\000\019\196\003\000\r8\002\000\r8\003\000\r4\001\000\019\184\001\000\019\180\001\000\019\184\002\000\019\184\003\000\019\180\002\000\019\180\003\000\019\180\004\000\014\b\005\000\004\156\005\000\004\148\005\000\019\204\001\000\004\156\006\000\004\148\006\000\004\204\001\000\011\224\001\000\004\212\001\000\004\208\001\000\004\204\002\000\004\156\007\000\004\148\007\000\019\172\001\000\007\204\001\000\001\220\001\000\001\216\001\000\t\144\001\000\t\128\001\000\tp\001\000\t`\001\000\tX\001\000\0188\001\000\0184\001\000\0180\001\000\018,\001\000\018(\001\000\018$\001\000\018 \001\000\018\028\001\000\017\000\001\000\016\252\001\000\0020\001\000\002,\001\000\001\224\001\000\001\208\001\000\000\164\001\000\000\160\001\000\000\144\001\000\000\132\001\000\000x\001\000\001\208\002\000\t\160\001\000\t\156\001\000\0020\001\000\002,\001\000\000\164\001\000\000\160\001\000\000\144\001\000\000\132\001\000\000x\001\000\r\132\001\000\r\128\001\000\r|\001\000\000\160\002\000\000\152\001\000\r\132\002\000\r\128\002\000\r|\002\000\000\160\003\000\000\152\002\000\002h\001\000\002h\002\000\004,\001\000\015\020\001\000\b\012\001\000\002\168\001\000\002\168\002\000\002\168\003\000\012\140\001\000\012\136\001\000\012\132\001\000\012\128\001\000\012|\001\000\012x\001\000\012t\001\000\012p\001\000\012l\001\000\012h\001\000\012\140\002\000\012\136\002\000\012\132\002\000\012\128\002\000\012|\002\000\012\140\003\000\012\136\003\000\012\132\003\000\012\128\003\000\012|\003\000\019\164\001\000\002L\001\000\002H\001\000\nH\001\000\002L\002\000\002H\002\000\002D\001\000\002@\001\000\002D\002\000\002@\002\000\002<\001\000\0028\001\000\0024\001\000\002T\001\000\002P\001\000\019\204\001\000\019\200\001\000\002T\002\000\002T\003\000\019\204\001\000\019\200\001\000\000\136\001\000\007\196\001\000\b \001\000\007\208\001\000\007\200\001\000\b \002\000\b \003\000\b \001\000\007\208\001\000\b \004\000\007\208\002\000\007\208\003\000\b\028\001\000\007\208\002\000\007\200\002\000\007\200\003\000\001\128\001\000\000\136\002\000\000|\001\000\007\252\001\000\007\244\001\000\000p\001\000\002 \001\000\b \001\000\b\000\001\000\007\248\001\000\007\208\001\000\000\148\001\000\b\000\002\000\007\248\002\000\007\208\002\000\000\148\002\000\0020\001\000\002,\001\000\018X\001\000\018T\001\000\018P\001\000\018L\001\000\018H\001\000\018D\001\000\018@\001\000\018<\001\000\017\b\001\000\017\004\001\000\004X\001\000\018H\002\000\018D\002\000\018@\002\000\018<\002\000\017\004\002\000\018X\001\000\018T\001\000\018P\001\000\018L\001\000\018H\001\000\018D\001\000\018@\003\000\018@\001\000\018<\003\000\018<\001\000\017\b\001\000\017\004\001\000\000d\001\000\t(\001\000\t$\001\000\t(\002\000\000d\002\000\018X\002\000\018T\002\000\018P\002\000\018L\002\000\018@\004\000\017\b\002\000\018X\003\000\018T\003\000\018P\003\000\018L\003\000\017\b\003\000\018X\001\000\018T\001\000\018P\004\000\018P\001\000\018L\004\000\018L\001\000\018H\001\000\018D\001\000\018@\001\000\018<\001\000\017\b\001\000\017\004\001\000\018X\002\000\018T\002\000\018P\005\000\018P\002\000\018L\002\000\017\b\002\000\017\b\004\000\017\152\001\000\017\148\001\000\017\144\001\000\017\140\001\000\017\136\001\000\017\132\001\000\017\128\001\000\017|\001\000\017x\001\000\017t\001\000\017p\001\000\017l\001\000\017h\001\000\017d\001\000\017`\001\000\017\\\001\000\017X\001\000\017T\001\000\017P\001\000\017L\001\000\017H\001\000\017D\001\000\017@\001\000\017<\001\000\0178\001\000\0174\001\000\0170\001\000\017,\001\000\017(\001\000\017$\001\000\017 \001\000\017\028\001\000\016\216\001\000\016\212\001\000\016\208\001\000\016\204\001\000\016\200\001\000\016\196\001\000\016\192\001\000\016\188\001\000\0178\002\000\0174\002\000\0170\002\000\017,\002\000\017(\002\000\017$\002\000\017 \002\000\017\028\002\000\016\192\002\000\016\188\002\000\0020\001\000\002,\001\000\000\164\001\000\000\160\001\000\000\144\001\000\000\132\001\000\000x\001\000\004\\\001\000\rl\001\000\rh\001\000\rd\001\000\000\144\002\000\000\132\002\000\000x\002\000\000\144\003\000\000\132\003\000\000x\003\000\000\144\004\000\000\144\005\000\000\132\004\000\000x\004\000\b \001\000\b\000\001\000\007\248\001\000\007\208\001\000\b\000\002\000\007\248\002\000\007\208\002\000\b\000\003\000\007\248\003\000\019\176\001\000\019\208\001\000\rl\002\000\rh\002\000\rd\002\000\rl\003\000\000\156\001\000\rl\004\000\rl\005\000\011\224\001\000\004\212\001\000\004\208\001\000\rh\003\000\000\152\001\000\rh\004\000\000\152\002\000\rh\005\000\rh\006\000\011\224\001\000\004\212\001\000\004\208\001\000\018\152\001\000\018\148\001\000\018\144\001\000\018\140\001\000\018\136\001\000\018\132\001\000\018\128\001\000\018|\001\000\018x\001\000\018t\001\000\018p\001\000\018l\001\000\018h\001\000\018d\001\000\018`\001\000\018\\\001\000\017\024\001\000\017\020\001\000\017\016\001\000\017\012\001\000\018x\002\000\018t\002\000\018p\002\000\018l\002\000\018h\002\000\018d\002\000\018`\002\000\018\\\002\000\017\016\002\000\017\012\002\000\0020\001\000\002,\001\000\000\164\001\000\000\160\001\000\000\144\001\000\000\132\001\000\000x\001\000\018x\003\000\018t\003\000\018p\003\000\018l\003\000\018h\003\000\018d\003\000\018`\003\000\018\\\003\000\017\016\003\000\017\012\003\000\012\252\001\000\012\248\001\000\012\248\002\000\012\248\003\000\012\252\002\000\012\252\003\000\012\252\004\000\012\252\005\000\012\252\006\000\011\224\001\000\004\212\001\000\004\208\001\000\012\252\007\000\018x\004\000\018t\004\000\018p\004\000\018l\004\000\018h\004\000\018d\004\000\018`\004\000\018\\\004\000\017\016\004\000\017\012\004\000\000D\001\000\002$\001\000\002x\001\000\002(\001\000\000l\001\000\018x\005\000\018t\005\000\018p\005\000\018l\005\000\018h\005\000\018d\005\000\018`\005\000\018\\\005\000\017\016\005\000\017\012\005\000\002\028\001\000\018x\006\000\018t\006\000\018p\006\000\018l\006\000\018h\006\000\018d\006\000\018`\006\000\018\\\006\000\017\016\006\000\017\012\006\000\018h\007\000\018d\007\000\018`\007\000\018\\\007\000\017\012\007\000\018`\b\000\018\\\b\000\018X\001\000\018T\001\000\018P\001\000\018L\001\000\018H\001\000\018D\001\000\018@\001\000\018<\001\000\017\b\001\000\017\004\001\000\018`\t\000\018X\002\000\018T\002\000\018P\002\000\018L\002\000\017\b\002\000\017\012\b\000\018\152\001\000\018\148\001\000\018\144\001\000\018\140\001\000\018\136\001\000\018\132\001\000\018\128\001\000\018|\001\000\018x\001\000\018t\001\000\018p\001\000\018l\001\000\018h\b\000\018h\001\000\018d\b\000\018d\001\000\018`\001\000\018\\\001\000\017\024\001\000\017\020\001\000\017\016\001\000\017\012\001\000\018\152\002\000\018\148\002\000\018\144\002\000\018\140\002\000\018\136\002\000\018\132\002\000\018\128\002\000\018|\002\000\018h\t\000\018d\t\000\017\024\002\000\017\020\002\000\018\136\003\000\018\132\003\000\018\128\003\000\018|\003\000\017\020\003\000\018\128\004\000\018|\004\000\018X\001\000\018T\001\000\018P\001\000\018L\001\000\018H\001\000\018D\001\000\018@\001\000\018<\001\000\017\b\001\000\017\004\001\000\018\128\005\000\018X\002\000\018T\002\000\018P\002\000\018L\002\000\017\b\002\000\017\020\004\000\018\152\001\000\018\148\001\000\018\144\001\000\018\140\001\000\018\136\004\000\018\136\001\000\018\132\004\000\018\132\001\000\018\128\001\000\018|\001\000\018x\001\000\018t\001\000\018p\001\000\018l\001\000\018h\001\000\018d\001\000\018`\001\000\018\\\001\000\017\024\001\000\017\020\001\000\017\016\001\000\017\012\001\000\018\152\002\000\018\148\002\000\018\144\002\000\018\140\002\000\018\136\005\000\018\136\002\000\018\132\005\000\018\132\002\000\018\128\002\000\018|\002\000\017\024\002\000\017\020\002\000\018\152\003\000\018\148\003\000\018\144\003\000\018\140\003\000\018\136\006\000\017\024\003\000\018\152\004\000\018\148\004\000\018\144\004\000\018\140\004\000\017\024\004\000\018\144\005\000\018\140\005\000\018X\001\000\018T\001\000\018P\001\000\018L\001\000\018H\001\000\018D\001\000\018@\001\000\018<\001\000\017\b\001\000\017\004\001\000\018\144\006\000\018X\002\000\018T\002\000\018P\002\000\018L\002\000\017\b\002\000\017\024\005\000\018\152\005\000\018\152\001\000\018\148\005\000\018\148\001\000\018\144\001\000\018\140\001\000\018\136\001\000\018\132\001\000\018\128\001\000\018|\001\000\018x\001\000\018t\001\000\018p\001\000\018l\001\000\018h\001\000\018d\001\000\018`\001\000\018\\\001\000\017\024\001\000\017\020\001\000\017\016\001\000\017\012\001\000\018\152\006\000\018\152\002\000\018\148\006\000\018\148\002\000\018\144\002\000\018\140\002\000\018\136\002\000\018\132\002\000\018\128\002\000\018|\002\000\017\024\002\000\017\020\002\000\018\152\007\000\018\152\003\000\018\148\003\000\018\144\003\000\018\140\003\000\017\024\003\000\019\152\001\000\019\148\001\000\000\140\001\000\000\128\001\000\000t\001\000\019\152\002\000\019\204\001\000\019\200\001\000\rX\001\000\rX\002\000\rX\003\000\000\140\001\000\000\128\001\000\000t\001\000\000\140\002\000\000\140\003\000\000\128\002\000\000t\002\000\019\152\003\000\r`\001\000\r\\\001\000\r`\002\000\r\\\002\000\019\204\001\000\019\200\001\000\r`\003\000\r`\004\000\r`\005\000\000\140\001\000\000\128\001\000\000t\001\000\r\\\003\000\000\140\001\000\000\128\001\000\000t\001\000\rT\001\000\000\140\001\000\000\128\001\000\000t\001\000\018\152\003\000\018\148\003\000\018\144\003\000\018\140\003\000\018h\n\000\017\024\003\000\018x\007\000\018t\007\000\018p\007\000\018l\007\000\017\016\007\000\018x\b\000\018t\b\000\018p\b\000\018l\b\000\017\016\b\000\018p\t\000\018l\t\000\018X\001\000\018T\001\000\018P\001\000\018L\001\000\018H\001\000\018D\001\000\018@\001\000\018<\001\000\017\b\001\000\017\004\001\000\018p\n\000\018X\002\000\018T\002\000\018P\002\000\018L\002\000\017\b\002\000\017\016\t\000\018\152\001\000\018\148\001\000\018\144\001\000\018\140\001\000\018\136\001\000\018\132\001\000\018\128\001\000\018|\001\000\018x\t\000\018x\001\000\018t\t\000\018t\001\000\018p\001\000\018l\001\000\018h\001\000\018d\001\000\018`\001\000\018\\\001\000\017\024\001\000\017\020\001\000\017\016\001\000\017\012\001\000\018\152\002\000\018\148\002\000\018\144\002\000\018\140\002\000\018\136\002\000\018\132\002\000\018\128\002\000\018|\002\000\018x\n\000\018t\n\000\017\024\002\000\017\020\002\000\018\152\003\000\018\148\003\000\018\144\003\000\018\140\003\000\018x\011\000\017\024\003\000\002\028\002\000\002\024\001\000\000P\001\000\000L\001\000\000H\001\000\000P\002\000\000L\002\000\000H\002\000\000H\003\000\000H\004\000\000P\003\000\000L\003\000\000P\004\000\000P\005\000\011\224\001\000\004\212\001\000\004\208\001\000\000P\006\000\000P\007\000\000L\004\000\000L\005\000\000L\006\000\011\224\001\000\004\212\001\000\004\208\001\000\000L\007\000\000L\b\000\rx\001\000\rt\001\000\rp\001\000\002,\002\000\002\028\001\000\002,\003\000\rx\002\000\rt\002\000\rp\002\000\rx\003\000\000\156\001\000\rx\004\000\rx\005\000\011\224\001\000\004\212\001\000\004\208\001\000\rt\003\000\000\152\001\000\rt\004\000\000\152\002\000\rt\005\000\rt\006\000\011\224\001\000\004\212\001\000\004\208\001\000\rp\003\000\002\028\001\000\018\152\002\000\018\148\002\000\018\144\002\000\018\140\002\000\018\136\002\000\018\132\002\000\018\128\002\000\018|\002\000\017\024\002\000\017\020\002\000\018\152\003\000\018\148\003\000\018\144\003\000\018\140\003\000\017\024\003\000\rd\003\000\002\028\001\000\0178\003\000\0174\003\000\0170\003\000\017,\003\000\017(\003\000\017$\003\000\017 \003\000\017\028\003\000\016\192\003\000\016\188\003\000\012\252\001\000\012\248\001\000\0178\004\000\0174\004\000\0170\004\000\017,\004\000\017(\004\000\017$\004\000\017 \004\000\017\028\004\000\016\192\004\000\016\188\004\000\0178\005\000\0174\005\000\0170\005\000\017,\005\000\017(\005\000\017$\005\000\017 \005\000\017\028\005\000\016\192\005\000\016\188\005\000\002\028\001\000\0178\006\000\0174\006\000\0170\006\000\017,\006\000\017(\006\000\017$\006\000\017 \006\000\017\028\006\000\016\192\006\000\016\188\006\000\017(\007\000\017$\007\000\017 \007\000\017\028\007\000\016\188\007\000\018X\001\000\018T\001\000\018P\001\000\018L\001\000\018H\001\000\018D\001\000\018@\001\000\018<\001\000\017 \b\000\017\028\b\000\017\b\001\000\017\004\001\000\018X\002\000\018T\002\000\018P\002\000\018L\002\000\017 \t\000\017\b\002\000\016\188\b\000\018\152\001\000\018\148\001\000\018\144\001\000\018\140\001\000\018\136\001\000\018\132\001\000\018\128\001\000\018|\001\000\018x\001\000\018t\001\000\018p\001\000\018l\001\000\018h\001\000\018d\001\000\018`\001\000\018\\\001\000\017(\b\000\017$\b\000\017\024\001\000\017\020\001\000\017\016\001\000\017\012\001\000\018\152\002\000\018\148\002\000\018\144\002\000\018\140\002\000\018\136\002\000\018\132\002\000\018\128\002\000\018|\002\000\017(\t\000\017$\t\000\017\024\002\000\017\020\002\000\018\152\003\000\018\148\003\000\018\144\003\000\018\140\003\000\017(\n\000\017\024\003\000\0178\007\000\0174\007\000\0170\007\000\017,\007\000\016\192\007\000\0178\b\000\0174\b\000\0170\b\000\017,\b\000\016\192\b\000\018X\001\000\018T\001\000\018P\001\000\018L\001\000\018H\001\000\018D\001\000\018@\001\000\018<\001\000\0170\t\000\017,\t\000\017\b\001\000\017\004\001\000\018X\002\000\018T\002\000\018P\002\000\018L\002\000\0170\n\000\017\b\002\000\016\192\t\000\018\152\001\000\018\148\001\000\018\144\001\000\018\140\001\000\018\136\001\000\018\132\001\000\018\128\001\000\018|\001\000\018x\001\000\018t\001\000\018p\001\000\018l\001\000\018h\001\000\018d\001\000\018`\001\000\018\\\001\000\0178\t\000\0174\t\000\017\024\001\000\017\020\001\000\017\016\001\000\017\012\001\000\018\152\002\000\018\148\002\000\018\144\002\000\018\140\002\000\018\136\002\000\018\132\002\000\018\128\002\000\018|\002\000\0178\n\000\0174\n\000\017\024\002\000\017\020\002\000\018\152\003\000\018\148\003\000\018\144\003\000\018\140\003\000\0178\011\000\017\024\003\000\017X\002\000\017T\002\000\017P\002\000\017L\002\000\017H\002\000\017D\002\000\017@\002\000\017<\002\000\016\200\002\000\016\196\002\000\017H\003\000\017D\003\000\017@\003\000\017<\003\000\016\196\003\000\018X\001\000\018T\001\000\018P\001\000\018L\001\000\018H\001\000\018D\001\000\018@\001\000\018<\001\000\017@\004\000\017<\004\000\017\b\001\000\017\004\001\000\018X\002\000\018T\002\000\018P\002\000\018L\002\000\017@\005\000\017\b\002\000\016\196\004\000\018\152\001\000\018\148\001\000\018\144\001\000\018\140\001\000\018\136\001\000\018\132\001\000\018\128\001\000\018|\001\000\018x\001\000\018t\001\000\018p\001\000\018l\001\000\018h\001\000\018d\001\000\018`\001\000\018\\\001\000\017H\004\000\017D\004\000\017\024\001\000\017\020\001\000\017\016\001\000\017\012\001\000\018\152\002\000\018\148\002\000\018\144\002\000\018\140\002\000\018\136\002\000\018\132\002\000\018\128\002\000\018|\002\000\017H\005\000\017D\005\000\017\024\002\000\017\020\002\000\018\152\003\000\018\148\003\000\018\144\003\000\018\140\003\000\017H\006\000\017\024\003\000\017X\003\000\017T\003\000\017P\003\000\017L\003\000\016\200\003\000\017X\004\000\017T\004\000\017P\004\000\017L\004\000\016\200\004\000\018X\001\000\018T\001\000\018P\001\000\018L\001\000\018H\001\000\018D\001\000\018@\001\000\018<\001\000\017P\005\000\017L\005\000\017\b\001\000\017\004\001\000\018X\002\000\018T\002\000\018P\002\000\018L\002\000\017P\006\000\017\b\002\000\016\200\005\000\018\152\001\000\018\148\001\000\018\144\001\000\018\140\001\000\018\136\001\000\018\132\001\000\018\128\001\000\018|\001\000\018x\001\000\018t\001\000\018p\001\000\018l\001\000\018h\001\000\018d\001\000\018`\001\000\018\\\001\000\017X\005\000\017T\005\000\017\024\001\000\017\020\001\000\017\016\001\000\017\012\001\000\018\152\002\000\018\148\002\000\018\144\002\000\018\140\002\000\018\136\002\000\018\132\002\000\018\128\002\000\018|\002\000\017X\006\000\017T\006\000\017\024\002\000\017\020\002\000\018\152\003\000\018\148\003\000\018\144\003\000\018\140\003\000\017X\007\000\017\024\003\000\017\152\002\000\017\148\002\000\017\144\002\000\017\140\002\000\017\136\002\000\017\132\002\000\017\128\002\000\017|\002\000\017x\002\000\017t\002\000\017p\002\000\017l\002\000\017h\002\000\017d\002\000\017`\002\000\017\\\002\000\016\216\002\000\016\212\002\000\016\208\002\000\016\204\002\000\017x\003\000\017t\003\000\017p\003\000\017l\003\000\017h\003\000\017d\003\000\017`\003\000\017\\\003\000\016\208\003\000\016\204\003\000\0020\001\000\002,\001\000\000\164\001\000\000\160\001\000\000\144\001\000\000\132\001\000\000x\001\000\017x\004\000\017t\004\000\017p\004\000\017l\004\000\017h\004\000\017d\004\000\017`\004\000\017\\\004\000\016\208\004\000\016\204\004\000\012\252\001\000\012\248\001\000\017x\005\000\017t\005\000\017p\005\000\017l\005\000\017h\005\000\017d\005\000\017`\005\000\017\\\005\000\016\208\005\000\016\204\005\000\017x\006\000\017t\006\000\017p\006\000\017l\006\000\017h\006\000\017d\006\000\017`\006\000\017\\\006\000\016\208\006\000\016\204\006\000\002\028\001\000\017x\007\000\017t\007\000\017p\007\000\017l\007\000\017h\007\000\017d\007\000\017`\007\000\017\\\007\000\016\208\007\000\016\204\007\000\017h\b\000\017d\b\000\017`\b\000\017\\\b\000\016\204\b\000\018X\001\000\018T\001\000\018P\001\000\018L\001\000\018H\001\000\018D\001\000\018@\001\000\018<\001\000\017`\t\000\017\\\t\000\017\b\001\000\017\004\001\000\018X\002\000\018T\002\000\018P\002\000\018L\002\000\017`\n\000\017\b\002\000\016\204\t\000\018\152\001\000\018\148\001\000\018\144\001\000\018\140\001\000\018\136\001\000\018\132\001\000\018\128\001\000\018|\001\000\018x\001\000\018t\001\000\018p\001\000\018l\001\000\018h\001\000\018d\001\000\018`\001\000\018\\\001\000\017h\t\000\017d\t\000\017\024\001\000\017\020\001\000\017\016\001\000\017\012\001\000\018\152\002\000\018\148\002\000\018\144\002\000\018\140\002\000\018\136\002\000\018\132\002\000\018\128\002\000\018|\002\000\017h\n\000\017d\n\000\017\024\002\000\017\020\002\000\018\152\003\000\018\148\003\000\018\144\003\000\018\140\003\000\017h\011\000\017\024\003\000\017x\b\000\017t\b\000\017p\b\000\017l\b\000\016\208\b\000\017x\t\000\017t\t\000\017p\t\000\017l\t\000\016\208\t\000\018X\001\000\018T\001\000\018P\001\000\018L\001\000\018H\001\000\018D\001\000\018@\001\000\018<\001\000\017p\n\000\017l\n\000\017\b\001\000\017\004\001\000\018X\002\000\018T\002\000\018P\002\000\018L\002\000\017p\011\000\017\b\002\000\016\208\n\000\018\152\001\000\018\148\001\000\018\144\001\000\018\140\001\000\018\136\001\000\018\132\001\000\018\128\001\000\018|\001\000\018x\001\000\018t\001\000\018p\001\000\018l\001\000\018h\001\000\018d\001\000\018`\001\000\018\\\001\000\017x\n\000\017t\n\000\017\024\001\000\017\020\001\000\017\016\001\000\017\012\001\000\018\152\002\000\018\148\002\000\018\144\002\000\018\140\002\000\018\136\002\000\018\132\002\000\018\128\002\000\018|\002\000\017x\011\000\017t\011\000\017\024\002\000\017\020\002\000\018\152\003\000\018\148\003\000\018\144\003\000\018\140\003\000\017x\012\000\017\024\003\000\017\152\003\000\017\148\003\000\017\144\003\000\017\140\003\000\017\136\003\000\017\132\003\000\017\128\003\000\017|\003\000\016\216\003\000\016\212\003\000\017\136\004\000\017\132\004\000\017\128\004\000\017|\004\000\016\212\004\000\018X\001\000\018T\001\000\018P\001\000\018L\001\000\018H\001\000\018D\001\000\018@\001\000\018<\001\000\017\128\005\000\017|\005\000\017\b\001\000\017\004\001\000\018X\002\000\018T\002\000\018P\002\000\018L\002\000\017\128\006\000\017\b\002\000\016\212\005\000\018\152\001\000\018\148\001\000\018\144\001\000\018\140\001\000\018\136\001\000\018\132\001\000\018\128\001\000\018|\001\000\018x\001\000\018t\001\000\018p\001\000\018l\001\000\018h\001\000\018d\001\000\018`\001\000\018\\\001\000\017\136\005\000\017\132\005\000\017\024\001\000\017\020\001\000\017\016\001\000\017\012\001\000\018\152\002\000\018\148\002\000\018\144\002\000\018\140\002\000\018\136\002\000\018\132\002\000\018\128\002\000\018|\002\000\017\136\006\000\017\132\006\000\017\024\002\000\017\020\002\000\018\152\003\000\018\148\003\000\018\144\003\000\018\140\003\000\017\136\007\000\017\024\003\000\017\152\004\000\017\148\004\000\017\144\004\000\017\140\004\000\016\216\004\000\017\152\005\000\017\148\005\000\017\144\005\000\017\140\005\000\016\216\005\000\018X\001\000\018T\001\000\018P\001\000\018L\001\000\018H\001\000\018D\001\000\018@\001\000\018<\001\000\017\144\006\000\017\140\006\000\017\b\001\000\017\004\001\000\018X\002\000\018T\002\000\018P\002\000\018L\002\000\017\144\007\000\017\b\002\000\016\216\006\000\018\152\001\000\018\148\001\000\018\144\001\000\018\140\001\000\018\136\001\000\018\132\001\000\018\128\001\000\018|\001\000\018x\001\000\018t\001\000\018p\001\000\018l\001\000\018h\001\000\018d\001\000\018`\001\000\018\\\001\000\017\152\006\000\017\148\006\000\017\024\001\000\017\020\001\000\017\016\001\000\017\012\001\000\018\152\002\000\018\148\002\000\018\144\002\000\018\140\002\000\018\136\002\000\018\132\002\000\018\128\002\000\018|\002\000\017\152\007\000\017\148\007\000\017\024\002\000\017\020\002\000\018\152\003\000\018\148\003\000\018\144\003\000\018\140\003\000\017\152\b\000\017\024\003\000\018\152\001\000\018\148\001\000\018\144\001\000\018\140\001\000\018\136\001\000\018\132\001\000\018\128\001\000\018|\001\000\018x\001\000\018t\001\000\018p\001\000\018l\001\000\018h\001\000\018d\001\000\018`\001\000\018\\\001\000\018X\004\000\018T\004\000\017\024\001\000\017\020\001\000\017\016\001\000\017\012\001\000\018\152\002\000\018\148\002\000\018\144\002\000\018\140\002\000\018\136\002\000\018\132\002\000\018\128\002\000\018|\002\000\018X\005\000\018T\005\000\017\024\002\000\017\020\002\000\018\152\003\000\018\148\003\000\018\144\003\000\018\140\003\000\018X\006\000\017\024\003\000\017\004\003\000\018\152\001\000\018\148\001\000\018\144\001\000\018\140\001\000\018\136\001\000\018\132\001\000\018\128\001\000\018|\001\000\018x\001\000\018t\001\000\018p\001\000\018l\001\000\018h\001\000\018d\001\000\018`\001\000\018\\\001\000\018H\003\000\018D\003\000\017\024\001\000\017\020\001\000\017\016\001\000\017\012\001\000\018\152\002\000\018\148\002\000\018\144\002\000\018\140\002\000\018\136\002\000\018\132\002\000\018\128\002\000\018|\002\000\018H\004\000\018D\004\000\017\024\002\000\017\020\002\000\018\152\003\000\018\148\003\000\018\144\003\000\018\140\003\000\018H\005\000\017\024\003\000\018X\002\000\018T\002\000\018P\002\000\018L\002\000\017\b\002\000\002,\002\000\002\028\001\000\000\148\003\000\002T\004\000\000\140\001\000\000\128\001\000\000t\001\000\002T\005\000\r`\001\000\r\\\001\000\002T\006\000\002T\007\000\002P\002\000\000\140\001\000\000\128\001\000\000t\001\000\002P\003\000\r`\001\000\r\\\001\000\002P\004\000\002P\005\000\0028\002\000\t\004\001\000\t\004\002\000\r\148\001\000\r$\001\000\r(\001\000\0028\003\000\0028\004\000\r(\002\000\r(\003\000\019H\001\000\019D\001\000\019D\002\000\n<\001\000\019D\003\000\019D\004\000\r\016\001\000\r\016\002\000\r\016\003\000\000P\001\000\000L\001\000\000H\001\000\019D\005\000\r\012\001\000\000P\001\000\000L\001\000\000H\001\000\019H\002\000\r\152\001\000\002\028\001\000\r\148\001\000\0024\002\000\0024\003\000\002<\002\000\002<\003\000\r(\001\000\002<\004\000\002<\005\000\r(\001\000\002@\003\000\002@\004\000\r(\001\000\002L\003\000\002H\003\000\002H\004\000\002L\004\000\012\236\001\000\002L\005\000\002L\006\000\012\236\002\000\012\232\001\000\019\164\002\000\002\028\001\000\019\160\001\000\019\156\001\000\019\160\002\000\019\156\002\000\002\028\001\000\019\160\003\000\019\160\004\000\002\028\001\000\012\140\004\000\012\136\004\000\012\132\004\000\012\128\004\000\012|\004\000\012\140\005\000\012\136\005\000\012\132\005\000\012\128\005\000\012|\005\000\012\140\006\000\012\136\006\000\012\132\006\000\012\128\006\000\012|\006\000\012\140\007\000\012\140\001\000\012\136\007\000\012\136\001\000\012\132\001\000\012\128\001\000\012|\001\000\012x\001\000\012t\001\000\012p\001\000\012l\001\000\012h\001\000\012\140\b\000\012\140\002\000\012\136\002\000\012\132\002\000\012\128\002\000\012|\002\000\012\140\t\000\012\140\003\000\012\136\003\000\012\132\003\000\012\128\003\000\012|\003\000\012\140\n\000\012\140\004\000\012\136\004\000\012\132\004\000\012\128\004\000\012|\004\000\012\140\011\000\012\140\005\000\012\136\005\000\012\132\005\000\012\128\005\000\012|\005\000\012\136\b\000\012x\002\000\012t\002\000\012p\002\000\012l\002\000\012h\002\000\012x\003\000\012t\003\000\012p\003\000\012l\003\000\012h\003\000\012\140\001\000\012\136\001\000\012\132\001\000\012\128\001\000\012|\001\000\012x\004\000\012x\001\000\012t\004\000\012t\001\000\012p\001\000\012l\001\000\012h\001\000\012\140\002\000\012\136\002\000\012\132\002\000\012\128\002\000\012|\002\000\012x\005\000\012\140\003\000\012\136\003\000\012\132\003\000\012\128\003\000\012|\003\000\012x\006\000\012\140\004\000\012\136\004\000\012\132\004\000\012\128\004\000\012|\004\000\012x\007\000\012\140\005\000\012\136\005\000\012\132\005\000\012\128\005\000\012|\005\000\012x\b\000\012x\002\000\012t\005\000\012t\002\000\012p\002\000\012l\002\000\012h\002\000\0208\001\000\002\244\001\000\014\228\001\000\014\212\001\000\014\212\002\000\014\212\003\000\001\020\001\000\001\016\001\000\015\168\001\000\012\164\001\000\012\160\001\000\005\212\001\000\005\208\001\000\005\204\001\000\005\200\001\000\005\196\001\000\005\192\001\000\005\188\001\000\005\184\001\000\012\164\002\000\005\212\002\000\005\208\002\000\005\204\002\000\005\200\002\000\012\164\003\000\005\212\003\000\005\208\003\000\005\204\003\000\005\200\003\000\012\164\004\000\005\212\004\000\005\208\004\000\005\204\004\000\005\200\004\000\012\164\005\000\005\212\005\000\005\208\005\000\005\204\005\000\005\200\005\000\002\028\001\000\012\164\006\000\005\212\006\000\005\208\006\000\005\204\006\000\005\200\006\000\012\164\007\000\005\212\007\000\005\208\007\000\005\204\007\000\005\200\007\000\012\164\001\000\012\160\001\000\005\212\b\000\005\212\001\000\005\208\b\000\005\208\001\000\005\204\001\000\005\200\001\000\005\196\001\000\005\192\001\000\005\188\001\000\005\184\001\000\012\164\002\000\005\212\t\000\005\212\002\000\005\208\002\000\005\204\002\000\005\200\002\000\012\164\003\000\005\212\n\000\005\212\003\000\005\208\003\000\005\204\003\000\005\200\003\000\012\164\004\000\005\212\011\000\005\212\004\000\005\208\004\000\005\204\004\000\005\200\004\000\012\164\005\000\005\212\012\000\005\212\005\000\005\208\005\000\005\204\005\000\005\200\005\000\002\028\001\000\012\164\006\000\005\212\r\000\005\212\006\000\005\208\006\000\005\204\006\000\005\200\006\000\012\160\002\000\005\208\t\000\005\196\002\000\005\192\002\000\005\188\002\000\005\184\002\000\012\160\003\000\005\196\003\000\005\192\003\000\005\188\003\000\005\184\003\000\012\164\001\000\012\160\001\000\005\212\001\000\005\208\001\000\005\204\001\000\005\200\001\000\005\196\004\000\005\196\001\000\005\192\004\000\005\192\001\000\005\188\001\000\005\184\001\000\012\164\002\000\005\212\002\000\005\208\002\000\005\204\002\000\005\200\002\000\005\196\005\000\012\164\003\000\005\212\003\000\005\208\003\000\005\204\003\000\005\200\003\000\005\196\006\000\012\164\004\000\005\212\004\000\005\208\004\000\005\204\004\000\005\200\004\000\005\196\007\000\012\164\005\000\005\212\005\000\005\208\005\000\005\204\005\000\005\200\005\000\005\196\b\000\002\028\001\000\012\164\006\000\005\212\006\000\005\208\006\000\005\204\006\000\005\200\006\000\005\196\t\000\012\160\002\000\005\196\002\000\005\192\005\000\005\192\002\000\005\188\002\000\005\184\002\000\014`\001\000\014\\\001\000\014L\001\000\014H\001\000\014\\\002\000\014H\002\000\014L\002\000\014`\002\000\014X\001\000\014T\001\000\014D\001\000\014@\001\000\014T\002\000\014@\002\000\014D\002\000\014X\002\000\020\012\001\000\015\212\001\000\015\164\001\000\015\160\001\000\015\152\001\000\001\240\001\000\001\208\001\000\014`\001\000\014\\\001\000\014L\001\000\014H\001\000\n\000\001\000\015\164\002\000\015\160\002\000\015\164\003\000\015\160\003\000\015\164\004\000\015\160\004\000\bx\001\000\bt\001\000\015\164\005\000\015\160\005\000\015\160\006\000\015\164\006\000\b\156\001\000\b\156\002\000\b\156\003\000\b\156\004\000\bp\001\000\bP\001\000\bP\002\000\019\024\001\000\019\020\001\000\004\156\001\000\004\152\001\000\019\024\002\000\019\020\002\000\004\156\002\000\004\152\002\000\019\024\003\000\019\020\003\000\004\156\003\000\004\152\003\000\019\024\004\000\004\156\004\000\019\024\005\000\004\156\005\000\019\204\001\000\004\156\006\000\004\156\007\000\004\156\b\000\012\196\001\000\004\156\t\000\011\172\001\000\011\172\002\000\007<\001\000\0078\001\000\004\196\001\000\000@\001\000\000<\001\000\002\176\001\000\002\172\001\000\002\176\002\000\002\172\002\000\002\176\003\000\002\172\003\000\0040\001\000\014\200\001\000\014\200\002\000\014\200\003\000\b\004\001\000\b\016\001\000\b\b\001\000\b\016\002\000\b\b\002\000\b\016\003\000\b\b\003\000\b$\001\000\001\012\001\000\014\200\004\000\019@\001\000\019<\001\000\002\164\001\000\002\164\002\000\002\164\003\000\020\012\001\000\014\208\001\000\014\204\001\000\014\152\001\000\014\148\001\000\014\144\001\000\001\240\001\000\001\208\001\000\014\228\001\000\t\180\001\000\015\140\001\000\015\136\001\000\015h\001\000\015d\001\000\004(\001\000\020\016\001\000\003\208\001\000\003\204\001\000\003\208\002\000\003\204\002\000\003\192\001\000\012\188\001\000\012\184\001\000\006$\001\000\006 \001\000\006\028\001\000\006\024\001\000\006\020\001\000\006\016\001\000\006\012\001\000\006\b\001\000\012\188\002\000\006$\002\000\006 \002\000\006\028\002\000\006\024\002\000\012\188\003\000\006$\003\000\006 \003\000\006\028\003\000\006\024\003\000\012\188\004\000\006$\004\000\006 \004\000\006\028\004\000\006\024\004\000\012\188\005\000\006$\005\000\006 \005\000\006\028\005\000\006\024\005\000\002\028\001\000\012\188\006\000\006$\006\000\006 \006\000\006\028\006\000\006\024\006\000\012\188\007\000\006$\007\000\006 \007\000\006\028\007\000\006\024\007\000\012\188\001\000\012\184\001\000\006$\b\000\006$\001\000\006 \b\000\006 \001\000\006\028\001\000\006\024\001\000\006\020\001\000\006\016\001\000\006\012\001\000\006\b\001\000\012\188\002\000\006$\t\000\006$\002\000\006 \002\000\006\028\002\000\006\024\002\000\012\188\003\000\006$\n\000\006$\003\000\006 \003\000\006\028\003\000\006\024\003\000\012\188\004\000\006$\011\000\006$\004\000\006 \004\000\006\028\004\000\006\024\004\000\012\188\005\000\006$\012\000\006$\005\000\006 \005\000\006\028\005\000\006\024\005\000\002\028\001\000\012\188\006\000\006$\r\000\006$\006\000\006 \006\000\006\028\006\000\006\024\006\000\012\184\002\000\006 \t\000\006\020\002\000\006\016\002\000\006\012\002\000\006\b\002\000\012\184\003\000\006\020\003\000\006\016\003\000\006\012\003\000\006\b\003\000\012\188\001\000\012\184\001\000\006$\001\000\006 \001\000\006\028\001\000\006\024\001\000\006\020\004\000\006\020\001\000\006\016\004\000\006\016\001\000\006\012\001\000\006\b\001\000\012\188\002\000\006$\002\000\006 \002\000\006\028\002\000\006\024\002\000\006\020\005\000\012\188\003\000\006$\003\000\006 \003\000\006\028\003\000\006\024\003\000\006\020\006\000\012\188\004\000\006$\004\000\006 \004\000\006\028\004\000\006\024\004\000\006\020\007\000\012\188\005\000\006$\005\000\006 \005\000\006\028\005\000\006\024\005\000\006\020\b\000\002\028\001\000\012\188\006\000\006$\006\000\006 \006\000\006\028\006\000\006\024\006\000\006\020\t\000\012\184\002\000\006\020\002\000\006\016\005\000\006\016\002\000\006\012\002\000\006\b\002\000\014|\001\000\014x\001\000\014t\001\000\014p\001\000\014l\001\000\001\204\001\000\001\204\002\000\014d\001\000\005\028\001\000\014d\002\000\014d\003\000\007|\001\000\007x\001\000\007t\001\000\007p\001\000\nx\001\000\nx\002\000\002\028\001\000\007|\002\000\007x\002\000\007t\002\000\007p\002\000\n\148\001\000\011d\001\000\011d\002\000\011d\003\000\0200\001\000\015\188\001\000\019\204\001\000\015\188\002\000\b \001\000\b\000\001\000\007\208\001\000\b\000\002\000\007\208\002\000\019\252\001\000\020\000\001\000\014\128\001\000\012\156\001\000\005\180\001\000\005\176\001\000\005\172\001\000\005\168\001\000\014h\001\000\014h\002\000\014h\003\000\015\184\001\000\015\184\002\000\020<\001\000\001\212\001\000\0204\001\000\014P\001\000\015\144\001\000\020\020\001\000\014<\001\000\015\148\001\000\012\156\002\000\005\180\002\000\005\176\002\000\005\172\002\000\005\168\002\000\012\156\003\000\005\180\003\000\005\176\003\000\005\172\003\000\005\168\003\000\012\164\001\000\012\160\001\000\005\212\001\000\005\208\001\000\005\204\001\000\005\200\001\000\005\196\001\000\005\192\001\000\005\188\001\000\005\184\001\000\005\180\004\000\005\176\004\000\012\164\002\000\005\212\002\000\005\208\002\000\005\204\002\000\005\200\002\000\005\180\005\000\012\164\003\000\005\212\003\000\005\208\003\000\005\204\003\000\005\200\003\000\005\180\006\000\012\164\004\000\005\212\004\000\005\208\004\000\005\204\004\000\005\200\004\000\005\180\007\000\012\164\005\000\005\212\005\000\005\208\005\000\005\204\005\000\005\200\005\000\005\180\b\000\002\028\001\000\012\164\006\000\005\212\006\000\005\208\006\000\005\204\006\000\005\200\006\000\005\180\t\000\012\160\002\000\005\196\002\000\005\192\002\000\005\188\002\000\005\184\002\000\005\176\005\000\012\156\001\000\005\180\001\000\005\176\001\000\005\172\004\000\005\172\001\000\005\168\001\000\012\156\002\000\005\180\002\000\005\176\002\000\005\172\005\000\005\172\002\000\005\168\002\000\015\156\001\000\015\172\001\000\0148\001\000\015\172\002\000\014`\001\000\014\\\001\000\014X\001\000\014T\001\000\015\172\003\000\015\216\001\000\015\180\001\000\015\204\001\000\015\200\001\000\015\196\001\000\015\192\001\000\b\016\001\000\001\236\001\000\001\232\001\000\015\204\002\000\015\200\002\000\015\196\002\000\015\192\002\000\b\016\002\000\001\236\002\000\015\204\003\000\015\200\003\000\001\236\003\000\015\200\004\000\011P\001\000\011P\002\000\011P\003\000\011T\001\000\011L\001\000\011@\001\000\012\152\001\000\011P\004\000\011H\001\000\011D\001\000\011<\001\000\0118\001\000\005\164\001\000\005\160\001\000\005\156\001\000\005\152\001\000\012\152\002\000\005\164\002\000\005\160\002\000\005\156\002\000\005\152\002\000\012\164\001\000\012\160\001\000\005\212\001\000\005\208\001\000\005\204\001\000\005\200\001\000\005\196\001\000\005\192\001\000\005\188\001\000\005\184\001\000\005\164\003\000\005\160\003\000\012\164\002\000\005\212\002\000\005\208\002\000\005\204\002\000\005\200\002\000\005\164\004\000\012\164\003\000\005\212\003\000\005\208\003\000\005\204\003\000\005\200\003\000\005\164\005\000\012\164\004\000\005\212\004\000\005\208\004\000\005\204\004\000\005\200\004\000\005\164\006\000\012\164\005\000\005\212\005\000\005\208\005\000\005\204\005\000\005\200\005\000\005\164\007\000\002\028\001\000\012\164\006\000\005\212\006\000\005\208\006\000\005\204\006\000\005\200\006\000\005\164\b\000\012\160\002\000\005\196\002\000\005\192\002\000\005\188\002\000\005\184\002\000\005\160\004\000\012\156\001\000\005\180\001\000\005\176\001\000\005\172\001\000\005\168\001\000\005\156\003\000\012\156\002\000\005\180\002\000\005\176\002\000\005\172\002\000\005\168\002\000\005\156\004\000\015\208\001\000\015\176\001\000\001\244\001\000\012\152\003\000\012\152\001\000\011H\001\000\011D\001\000\011<\001\000\0118\001\000\005\164\001\000\005\160\001\000\005\156\001\000\005\152\003\000\005\152\001\000\0118\002\000\012\152\001\000\011H\001\000\011D\001\000\011<\001\000\0118\003\000\0118\001\000\005\164\001\000\005\160\001\000\005\156\001\000\005\152\001\000\011H\002\000\012\152\001\000\011H\003\000\011H\001\000\011D\001\000\011<\001\000\0118\001\000\005\164\001\000\005\160\001\000\005\156\001\000\005\152\001\000\011D\002\000\011D\003\000\011<\002\000\015\180\001\000\011`\001\000\012\152\001\000\011`\002\000\011H\001\000\011D\001\000\011<\001\000\0118\001\000\005\164\001\000\005\160\001\000\005\156\001\000\005\152\001\000\012\148\001\000\012\144\001\000\005\148\001\000\005\144\001\000\005\140\001\000\005\136\001\000\012\148\002\000\005\148\002\000\005\144\002\000\005\140\002\000\005\136\002\000\012\164\001\000\012\160\001\000\005\212\001\000\005\208\001\000\005\204\001\000\005\200\001\000\005\196\001\000\005\192\001\000\005\188\001\000\005\184\001\000\005\148\003\000\005\144\003\000\012\164\002\000\005\212\002\000\005\208\002\000\005\204\002\000\005\200\002\000\005\148\004\000\012\164\003\000\005\212\003\000\005\208\003\000\005\204\003\000\005\200\003\000\005\148\005\000\012\164\004\000\005\212\004\000\005\208\004\000\005\204\004\000\005\200\004\000\005\148\006\000\012\164\005\000\005\212\005\000\005\208\005\000\005\204\005\000\005\200\005\000\005\148\007\000\002\028\001\000\012\164\006\000\005\212\006\000\005\208\006\000\005\204\006\000\005\200\006\000\005\148\b\000\012\160\002\000\005\196\002\000\005\192\002\000\005\188\002\000\005\184\002\000\005\144\004\000\012\156\001\000\005\180\001\000\005\176\001\000\005\172\001\000\005\168\001\000\005\140\003\000\012\156\002\000\005\180\002\000\005\176\002\000\005\172\002\000\005\168\002\000\005\140\004\000\012\148\003\000\012\152\001\000\011H\001\000\011D\001\000\011<\001\000\0118\001\000\005\164\001\000\005\160\001\000\005\156\001\000\005\152\001\000\005\136\003\000\015\176\001\000\011\\\001\000\011X\001\000\020\012\001\000\015\212\001\000\015\164\001\000\015\160\001\000\015\152\001\000\011\\\002\000\001\240\001\000\001\208\001\000\011\\\003\000\011\\\004\000\011\\\005\000\011\\\006\000\014X\001\000\014T\001\000\014D\001\000\014@\001\000\n\012\001\000\001\240\002\000\001\240\003\000\015\212\002\000\015\152\002\000\012\152\001\000\011H\001\000\011D\001\000\011<\001\000\0118\001\000\005\164\001\000\005\160\001\000\005\156\001\000\005\152\001\000\015\152\003\000\015\212\003\000\015\212\004\000\002\028\001\000\015\212\005\000\012\152\001\000\011X\002\000\011H\001\000\011D\001\000\011<\001\000\0118\001\000\005\164\001\000\005\160\001\000\005\156\001\000\005\152\001\000\001\236\004\000\001\236\005\000\015\204\004\000\012\152\001\000\011H\001\000\011D\001\000\011<\001\000\0118\001\000\005\164\001\000\005\160\001\000\005\156\001\000\005\152\001\000\015\204\005\000\015\196\003\000\014l\001\000\015\196\004\000\014l\002\000\014l\003\000\r\200\001\000\r\196\001\000\r\192\001\000\012\152\001\000\011H\001\000\011D\001\000\011<\001\000\0118\001\000\005\164\001\000\005\160\001\000\005\156\001\000\005\152\001\000\r\200\002\000\r\196\002\000\r\200\003\000\015\192\003\000\012\156\004\000\012\152\001\000\011H\001\000\011D\001\000\011<\001\000\0118\001\000\005\168\004\000\005\164\001\000\005\160\001\000\005\156\001\000\005\152\001\000\014\128\002\000\011L\001\000\014\128\003\000\012\152\001\000\011H\001\000\011D\001\000\011<\001\000\0118\001\000\005\164\001\000\005\160\001\000\005\156\001\000\005\152\001\000\011d\004\000\012\152\001\000\011H\001\000\011D\001\000\011<\001\000\0118\001\000\n\148\002\000\005\164\001\000\005\160\001\000\005\156\001\000\005\152\001\000\007|\003\000\007x\003\000\007t\003\000\007p\003\000\007|\004\000\007x\004\000\007t\004\000\007x\005\000\nP\001\000\007x\006\000\007|\005\000\014t\002\000\014p\002\000\014p\003\000\014|\002\000\014x\002\000\014x\003\000\012\180\001\000\006\012\004\000\006\004\001\000\006\000\001\000\005\252\001\000\005\248\001\000\012\180\002\000\006\012\005\000\006\004\002\000\006\000\002\000\005\252\002\000\005\248\002\000\012\180\003\000\006\004\003\000\006\000\003\000\005\252\003\000\005\248\003\000\012\188\001\000\012\184\001\000\006$\001\000\006 \001\000\006\028\001\000\006\024\001\000\006\020\001\000\006\016\001\000\006\012\001\000\006\b\001\000\006\004\004\000\006\000\004\000\012\188\002\000\006$\002\000\006 \002\000\006\028\002\000\006\024\002\000\006\004\005\000\012\188\003\000\006$\003\000\006 \003\000\006\028\003\000\006\024\003\000\006\004\006\000\012\188\004\000\006$\004\000\006 \004\000\006\028\004\000\006\024\004\000\006\004\007\000\012\188\005\000\006$\005\000\006 \005\000\006\028\005\000\006\024\005\000\006\004\b\000\002\028\001\000\012\188\006\000\006$\006\000\006 \006\000\006\028\006\000\006\024\006\000\006\004\t\000\012\184\002\000\006\020\002\000\006\016\002\000\006\012\002\000\006\b\002\000\006\000\005\000\012\180\001\000\006\004\001\000\006\000\001\000\005\252\004\000\005\252\001\000\005\248\001\000\012\180\002\000\006\004\002\000\006\000\002\000\005\252\005\000\005\252\002\000\005\248\002\000\012\180\004\000\011|\001\000\012\176\001\000\011x\001\000\011t\001\000\011l\001\000\011h\001\000\005\248\004\000\005\244\001\000\005\240\001\000\005\236\001\000\005\232\001\000\012\176\002\000\005\244\002\000\005\240\002\000\005\236\002\000\005\232\002\000\012\188\001\000\012\184\001\000\006$\001\000\006 \001\000\006\028\001\000\006\024\001\000\006\020\001\000\006\016\001\000\006\012\001\000\006\b\001\000\005\244\003\000\005\240\003\000\012\188\002\000\006$\002\000\006 \002\000\006\028\002\000\006\024\002\000\005\244\004\000\012\188\003\000\006$\003\000\006 \003\000\006\028\003\000\006\024\003\000\005\244\005\000\012\188\004\000\006$\004\000\006 \004\000\006\028\004\000\006\024\004\000\005\244\006\000\012\188\005\000\006$\005\000\006 \005\000\006\028\005\000\006\024\005\000\005\244\007\000\002\028\001\000\012\188\006\000\006$\006\000\006 \006\000\006\028\006\000\006\024\006\000\005\244\b\000\012\184\002\000\006\020\002\000\006\016\002\000\006\012\002\000\006\b\002\000\005\240\004\000\012\180\001\000\006\004\001\000\006\000\001\000\005\252\001\000\005\248\001\000\005\236\003\000\012\180\002\000\006\004\002\000\006\000\002\000\005\252\002\000\005\248\002\000\005\236\004\000\012\176\003\000\012\176\001\000\011x\001\000\011t\001\000\011l\001\000\011h\001\000\005\244\001\000\005\240\001\000\005\236\001\000\005\232\003\000\005\232\001\000\011h\002\000\012\152\001\000\011h\003\000\011H\001\000\011D\001\000\011<\001\000\0118\001\000\005\164\001\000\005\160\001\000\005\156\001\000\005\152\001\000\011x\002\000\012\152\001\000\011x\003\000\011H\001\000\011D\001\000\011<\001\000\0118\001\000\005\164\001\000\005\160\001\000\005\156\001\000\005\152\001\000\011t\002\000\011t\003\000\011l\002\000\011p\001\000\012\172\001\000\012\168\001\000\005\228\001\000\005\224\001\000\005\220\001\000\005\216\001\000\012\172\002\000\005\228\002\000\005\224\002\000\005\220\002\000\005\216\002\000\012\188\001\000\012\184\001\000\006$\001\000\006 \001\000\006\028\001\000\006\024\001\000\006\020\001\000\006\016\001\000\006\012\001\000\006\b\001\000\005\228\003\000\005\224\003\000\012\188\002\000\006$\002\000\006 \002\000\006\028\002\000\006\024\002\000\005\228\004\000\012\188\003\000\006$\003\000\006 \003\000\006\028\003\000\006\024\003\000\005\228\005\000\012\188\004\000\006$\004\000\006 \004\000\006\028\004\000\006\024\004\000\005\228\006\000\012\188\005\000\006$\005\000\006 \005\000\006\028\005\000\006\024\005\000\005\228\007\000\002\028\001\000\012\188\006\000\006$\006\000\006 \006\000\006\028\006\000\006\024\006\000\005\228\b\000\012\184\002\000\006\020\002\000\006\016\002\000\006\012\002\000\006\b\002\000\005\224\004\000\012\180\001\000\006\004\001\000\006\000\001\000\005\252\001\000\005\248\001\000\005\220\003\000\012\180\002\000\006\004\002\000\006\000\002\000\005\252\002\000\005\248\002\000\005\220\004\000\012\172\003\000\012\176\001\000\011x\001\000\011t\001\000\011l\001\000\011h\001\000\005\244\001\000\005\240\001\000\005\236\001\000\005\232\001\000\005\216\003\000\012\184\004\000\012\176\001\000\011x\001\000\011t\001\000\011l\001\000\011h\001\000\006\b\004\000\005\244\001\000\005\240\001\000\005\236\001\000\005\232\001\000\012\180\001\000\006\028\b\000\006\004\001\000\006\000\001\000\005\252\001\000\005\248\001\000\012\180\002\000\006\028\t\000\006\004\002\000\006\000\002\000\005\252\002\000\005\248\002\000\012\188\b\000\012\176\001\000\011x\001\000\011t\001\000\011l\001\000\011h\001\000\006\024\b\000\005\244\001\000\005\240\001\000\005\236\001\000\005\232\001\000\012\184\002\000\006\020\002\000\006\016\002\000\006\012\002\000\006\b\002\000\012\180\001\000\006\004\001\000\006\000\001\000\005\252\001\000\005\248\001\000\012\180\002\000\006\004\002\000\006\000\002\000\005\252\002\000\005\248\002\000\015\144\001\000\006\204\001\000\006\200\001\000\005X\001\000\005T\001\000\005P\001\000\005T\002\000\005P\002\000\005\024\001\000\005\020\001\000\005\016\001\000\005\012\001\000\005\b\001\000\005\004\001\000\005\024\002\000\005\020\002\000\005\016\002\000\005\012\002\000\012\252\001\000\012\248\001\000\005\024\003\000\005\020\003\000\005\024\004\000\005\020\004\000\005\024\005\000\005\020\005\000\002\028\001\000\000h\001\000\000h\002\000\005\024\006\000\005\016\003\000\005\012\003\000\002\028\001\000\005\016\004\000\005\b\002\000\005T\003\000\005T\004\000\005T\005\000\005P\003\000\005P\004\000\005X\002\000\005@\001\000\005<\001\000\0058\001\000\005<\002\000\0058\002\000\005<\003\000\005<\004\000\n\156\001\000\006|\001\000\002\160\001\000\002\156\001\000\002\152\001\000\002\148\001\000\002\160\002\000\002\156\002\000\002\160\003\000\002\160\004\000\002\160\005\000\n\252\001\000\n\248\001\000\n\244\001\000\n\240\001\000\n\236\001\000\n\232\001\000\n\228\001\000\n\224\001\000\n\220\001\000\n\216\001\000\n\212\001\000\n\208\001\000\n\252\002\000\n\248\002\000\n\244\002\000\n\240\002\000\n\236\002\000\n\232\002\000\n\228\002\000\n\224\002\000\n\252\003\000\n\248\003\000\n\244\003\000\n\240\003\000\n\236\003\000\n\232\003\000\n\228\003\000\n\224\003\000\015\132\001\000\015\128\001\000\015,\001\000\015(\001\000\015|\001\000\015x\001\000\0158\001\000\001\204\001\000\014\240\001\000\014\236\001\000\r\188\001\000\r\184\001\000\r\180\001\000\n\132\001\000\n\128\001\000\015\028\001\000\020\016\001\000\b\004\001\000\015`\001\000\002\216\001\000\002\216\002\000\002\216\003\000\015 \001\000\014\140\001\000\014\136\001\000\014\132\001\000\012d\001\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\014\196\001\000\014\192\001\000\014\196\002\000\014\192\002\000\014\196\003\000\014\192\003\000\002\200\001\000\002\196\001\000\002\192\001\000\002\188\001\000\002\184\001\000\002\180\001\000\002\200\002\000\002\196\002\000\002\192\002\000\002\188\002\000\002\184\002\000\002\180\002\000\002\200\003\000\002\196\003\000\002\192\003\000\002\188\003\000\002\184\003\000\002\180\003\000\r\220\001\000\012P\001\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\r\220\002\000\012P\002\000\012L\002\000\012H\002\000\012D\002\000\012@\002\000\r\220\003\000\012P\003\000\012L\003\000\012H\003\000\012D\003\000\012@\003\000\r\004\001\000\012\152\001\000\011H\001\000\011D\001\000\011<\001\000\0118\001\000\007\136\001\000\007\132\001\000\007\128\001\000\005\164\001\000\005\160\001\000\005\156\001\000\005\152\001\000\007\132\002\000\002\236\001\000\002\236\002\000\002\236\003\000\005L\001\000\005H\001\000\005D\001\000\011\132\001\000\005H\002\000\005D\002\000\020\012\001\000\015\212\001\000\015\164\001\000\015\160\001\000\015\152\001\000\006\168\001\000\001\240\001\000\001\208\001\000\020\012\001\000\015\212\001\000\015\164\001\000\015\160\001\000\015\152\001\000\006\196\001\000\001\240\001\000\001\208\001\000\015\212\002\000\015\152\002\000\012\152\001\000\011H\001\000\011D\001\000\011<\001\000\0118\001\000\006\192\001\000\006\188\001\000\006\184\001\000\005\164\001\000\005\160\001\000\005\156\001\000\005\152\001\000\015\212\003\000\006\192\002\000\006\188\002\000\012\252\001\000\012\248\001\000\006\192\003\000\006\192\004\000\006\192\005\000\002\028\001\000\006\192\006\000\015\212\004\000\006\188\003\000\002\028\001\000\006\188\004\000\006\184\002\000\006\196\002\000\006\196\003\000\006\168\002\000\006\168\003\000\012\152\001\000\011H\001\000\011D\001\000\011<\001\000\0118\001\000\006\164\001\000\006\160\001\000\006\156\001\000\006\152\001\000\006\148\001\000\006\144\001\000\005\164\001\000\005\160\001\000\005\156\001\000\005\152\001\000\006\164\002\000\006\160\002\000\006\156\002\000\006\152\002\000\012\252\001\000\012\248\001\000\006\164\003\000\006\160\003\000\006\164\004\000\006\160\004\000\006\164\005\000\006\160\005\000\002\028\001\000\006\164\006\000\006\156\003\000\006\152\003\000\002\028\001\000\006\156\004\000\006\148\002\000\005H\003\000\005H\004\000\005H\005\000\005H\006\000\005D\003\000\005D\004\000\005D\005\000\011\128\001\000\005L\002\000\020\012\001\000\015\212\001\000\015\164\001\000\015\160\001\000\015\152\001\000\005\132\001\000\005x\001\000\005t\001\000\005p\001\000\004<\001\000\0048\001\000\001\240\001\000\001\208\001\000\004<\002\000\0048\002\000\t\012\001\000\t\012\002\000\t\012\003\000\011\224\001\000\t\012\004\000\004\212\001\000\004\208\001\000\t\012\005\000\t\b\001\000\004<\003\000\004<\004\000\011\224\001\000\004\212\001\000\004\208\001\000\004<\005\000\004<\006\000\t\016\001\000\0048\003\000\0048\004\000\tH\001\000\tD\001\000\t\b\001\000\tH\002\000\015\212\002\000\015\152\002\000\012\152\001\000\011H\001\000\011D\001\000\011<\001\000\0118\001\000\006\192\001\000\006\188\001\000\006\184\001\000\005\164\001\000\005\160\001\000\005\156\001\000\005\152\001\000\005\132\002\000\015\212\003\000\006\192\002\000\006\188\002\000\005\132\003\000\012\252\001\000\012\248\001\000\006\192\003\000\005\132\004\000\006\192\004\000\005\132\005\000\006\192\005\000\005\132\006\000\002\028\001\000\005\132\007\000\005x\002\000\005p\002\000\012\152\001\000\011H\001\000\011D\001\000\011<\001\000\0118\001\000\006\192\001\000\006\188\001\000\006\184\001\000\006\180\001\000\006\176\001\000\006\172\001\000\005\164\001\000\005\160\001\000\005\156\001\000\005\152\001\000\006\192\002\000\006\188\002\000\006\180\002\000\006\176\002\000\012\252\001\000\012\248\001\000\006\192\003\000\006\180\003\000\006\192\004\000\006\180\004\000\006\192\005\000\006\180\005\000\002\028\001\000\006\188\003\000\006\176\003\000\002\028\001\000\005x\003\000\005x\004\000\005p\003\000\005p\004\000\005t\002\000\005t\003\000\005\128\001\000\005|\001\000\005h\001\000\005d\001\000\005`\001\000\005\\\001\000\020\012\001\000\015\212\001\000\015\164\001\000\015\160\001\000\015\152\001\000\005\128\002\000\005|\002\000\005h\002\000\005d\002\000\005`\002\000\001\240\001\000\001\208\001\000\015\212\002\000\015\152\002\000\012\152\001\000\011H\001\000\011D\001\000\011<\001\000\0118\001\000\006\192\001\000\006\188\001\000\006\184\001\000\005\164\001\000\005\160\001\000\005\156\001\000\005\152\001\000\005|\003\000\015\212\003\000\006\192\002\000\006\188\002\000\005|\004\000\012\252\001\000\012\248\001\000\006\192\003\000\005|\005\000\006\192\004\000\005|\006\000\006\192\005\000\005|\007\000\002\028\001\000\005|\b\000\005\128\003\000\005h\003\000\005d\003\000\012\152\001\000\011H\001\000\011D\001\000\011<\001\000\0118\001\000\006\192\001\000\006\188\001\000\006\184\001\000\005\164\001\000\005\160\001\000\005\156\001\000\005\152\001\000\005\128\004\000\005h\004\000\005h\005\000\006\192\002\000\006\188\002\000\005\128\005\000\012\252\001\000\012\248\001\000\006\192\003\000\005\128\006\000\006\192\004\000\005\128\007\000\006\192\005\000\005\128\b\000\002\028\001\000\005\128\t\000\006\188\003\000\002\028\001\000\005d\004\000\005d\005\000\005`\003\000\005`\004\000\005\\\002\000\005l\001\000\012\204\001\000\004D\001\000\004@\001\000\012\204\002\000\002\236\004\000\n\188\001\000\n\184\001\000\n\188\002\000\n\184\002\000\000\140\001\000\000\128\001\000\000t\001\000\n\188\003\000\002\236\005\000\002\236\006\000\012P\001\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\002\136\001\000\012P\002\000\012L\002\000\012H\002\000\012D\002\000\012@\002\000\002\136\002\000\012P\003\000\012L\003\000\012H\003\000\012D\003\000\012@\003\000\002\136\003\000\r\b\001\000\012P\004\000\012L\004\000\012H\004\000\012D\004\000\012@\004\000\002\136\004\000\012P\005\000\012L\005\000\012H\005\000\012D\005\000\012@\005\000\012\140\001\000\012\136\001\000\012\132\001\000\012\128\001\000\012|\001\000\012x\001\000\012t\001\000\012p\001\000\012l\001\000\012h\001\000\012P\006\000\012L\006\000\012\140\002\000\012\136\002\000\012\132\002\000\012\128\002\000\012|\002\000\012P\007\000\012\140\003\000\012\136\003\000\012\132\003\000\012\128\003\000\012|\003\000\012P\b\000\012\140\004\000\012\136\004\000\012\132\004\000\012\128\004\000\012|\004\000\012P\t\000\012\140\005\000\012\136\005\000\012\132\005\000\012\128\005\000\012|\005\000\012P\n\000\012x\002\000\012t\002\000\012p\002\000\012l\002\000\012h\002\000\012L\007\000\012d\001\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012H\006\000\014\232\001\000\001\196\001\000\014\216\001\000\b\020\001\000\001\200\001\000\015\012\001\000\015\b\001\000\015\004\001\000\014\248\001\000\014\244\001\000\014\232\002\000\014\188\001\000\014\184\001\000\014\180\001\000\014\176\001\000\014\172\001\000\014\168\001\000\014\164\001\000\014\160\001\000\014\156\001\000\015\b\002\000\015\b\003\000\015\012\002\000\015\012\003\000\015\012\001\000\015\b\001\000\015\004\001\000\014\248\001\000\014\244\001\000\014\188\001\000\014\184\001\000\014\180\001\000\014\176\001\000\014\172\001\000\014\168\001\000\014\164\001\000\014\160\001\000\014\156\001\000\015\004\002\000\015\004\003\000\014\184\002\000\014\176\002\000\014\168\002\000\014\168\003\000\r\176\001\000\r\168\001\000\r\164\001\000\012P\001\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\r\176\002\000\r\168\002\000\r\164\002\000\012P\002\000\012L\002\000\012H\002\000\012D\002\000\012@\002\000\r\176\003\000\r\168\003\000\r\164\003\000\012P\003\000\012L\003\000\012H\003\000\012D\003\000\012@\003\000\r\176\004\000\r\168\004\000\r\164\004\000\r\b\001\000\012P\004\000\012L\004\000\012H\004\000\012D\004\000\012@\004\000\r\176\005\000\r\168\005\000\002\208\001\000\002\208\002\000\002\208\003\000\012\152\001\000\011H\001\000\011D\001\000\011<\001\000\0118\001\000\005\164\001\000\005\160\001\000\005\156\001\000\005\152\001\000\002\208\004\000\002\208\005\000\0044\001\000\002\212\001\000\002\212\002\000\002\212\003\000\015\012\001\000\015\b\001\000\015\004\001\000\014\248\001\000\014\244\001\000\014\188\001\000\014\184\001\000\014\180\001\000\014\176\001\000\014\172\001\000\014\168\001\000\014\164\001\000\014\160\001\000\014\156\001\000\002\212\004\000\014\248\002\000\014\248\003\000\014\244\002\000\014\188\002\000\014\180\002\000\014\172\002\000\014\164\002\000\014\160\002\000\014\156\002\000\014\156\003\000\002\224\001\000\002\220\001\000\012P\001\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\002\224\002\000\012P\002\000\012L\002\000\012H\002\000\012D\002\000\012@\002\000\002\224\003\000\012P\003\000\012L\003\000\012H\003\000\012D\003\000\012@\003\000\002\224\004\000\r\b\001\000\012P\004\000\012L\004\000\012H\004\000\012D\004\000\012@\004\000\002\224\005\000\r\b\002\000\r\b\003\000\r\000\001\000\015\012\001\000\015\b\001\000\015\004\001\000\014\248\001\000\014\244\001\000\014\188\001\000\014\184\001\000\014\180\001\000\014\176\001\000\014\172\001\000\014\168\001\000\014\164\001\000\014\160\001\000\014\156\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\003\212\001\000\002\240\001\000\002\144\001\000\005,\001\000\005(\001\000\005,\002\000\005,\003\000\005,\004\000\005,\005\000\005(\002\000\0050\001\000\0050\002\000\0054\001\000\015\012\001\000\015\b\001\000\015\004\001\000\014\248\001\000\014\244\001\000\014\188\001\000\014\184\001\000\014\180\001\000\014\176\001\000\014\172\001\000\014\168\001\000\014\164\001\000\014\160\001\000\014\156\001\000\0054\002\000\014\224\001\000\015p\001\000\015l\001\000\015\\\001\000\015X\001\000\015T\001\000\015P\001\000\015L\001\000\015H\001\000\015D\001\000\015@\001\000\015<\001\000\0154\001\000\0150\001\000\015$\001\000\015\024\001\000\015\000\001\000\014\252\001\000\b\024\001\000\b\016\001\000\001\236\001\000\001\232\001\000\015p\002\000\015l\002\000\015\\\002\000\015X\002\000\015T\002\000\015P\002\000\015L\002\000\015H\002\000\015D\002\000\015@\002\000\015<\002\000\0154\002\000\0150\002\000\015$\002\000\015\024\002\000\015\000\002\000\014\252\002\000\b\024\002\000\b\016\002\000\001\236\002\000\020\012\001\000\015\\\003\000\015\024\003\000\014\252\003\000\001\236\003\000\015\024\004\000\n\004\001\000\000@\001\000\n\000\001\000\000<\001\000\015\\\004\000\015\\\005\000\015\\\006\000\bT\001\000\bT\002\000\004h\001\000\004d\001\000\004`\001\000\004`\002\000\004h\002\000\004d\002\000\004h\003\000\004d\003\000\b\176\001\000\b\172\001\000\b\160\001\000\b\176\002\000\b\172\002\000\b\176\003\000\b\172\003\000\b\152\001\000\b\148\001\000\b\152\002\000\b\148\002\000\012\220\001\000\004l\001\000\012\220\002\000\b\152\003\000\b\148\003\000\b\152\004\000\b\148\004\000\b\168\001\000\b\204\001\000\b\196\001\000\b\192\001\000\b\188\001\000\b\184\001\000\b\180\001\000\b\164\001\000\b\152\005\000\b\148\005\000\b\204\002\000\b\196\002\000\020h\001\000\020d\001\000\020h\002\000\020d\002\000\020h\003\000\020d\003\000\020\128\001\000\020|\001\000\020\128\002\000\020h\004\000\020h\005\000\000P\001\000\000L\001\000\000H\001\000\020d\004\000\020d\005\000\000P\001\000\000L\001\000\000H\001\000\020d\006\000\012\196\001\000\012\196\002\000\012\196\003\000\002\028\001\000\012\196\004\000\012\196\005\000\002\028\001\000\019\192\001\000\020x\001\000\020t\001\000\020p\001\000\020l\001\000\020x\002\000\020t\002\000\020x\003\000\020t\003\000\020t\004\000\020t\005\000\b\204\001\000\b\196\001\000\b\192\001\000\b\188\001\000\b\184\001\000\b\180\001\000\b\164\001\000\b\184\002\000\b\180\002\000\b\204\001\000\b\196\001\000\b\192\001\000\b\188\001\000\b\184\003\000\b\184\001\000\b\180\003\000\b\180\001\000\b\164\001\000\b\164\002\000\b\192\002\000\b\188\002\000\b\184\004\000\b\192\003\000\b\188\003\000\b\204\001\000\b\196\001\000\b\192\004\000\b\192\001\000\b\188\004\000\b\188\001\000\b\184\001\000\b\180\001\000\b\164\001\000\b\192\005\000\b\192\002\000\b\188\002\000\b \001\000\007\240\001\000\007\208\001\000\007\240\002\000\007\208\002\000\007\208\003\000\004\160\001\000\007\240\003\000\b\216\001\000\007\236\001\000\b\200\001\000\b\192\002\000\b\188\002\000\020x\004\000\020x\005\000\b\204\001\000\b\196\001\000\b\192\001\000\b\188\001\000\b\184\001\000\b\180\001\000\b\164\001\000\020p\002\000\020l\002\000\b\016\001\000\020l\003\000\020l\004\000\b \001\000\007\208\001\000\b\016\002\000\020p\003\000\020p\004\000\b \001\000\007\208\001\000\r\028\001\000\r \001\000\b\196\003\000\r \002\000\r \003\000\b\204\003\000\b \001\000\007\208\001\000\b\192\002\000\b\188\002\000\b\152\006\000\012\216\001\000\b\204\001\000\b\196\001\000\b\192\001\000\b\188\001\000\b\184\001\000\b\180\001\000\b\176\004\000\b\172\004\000\b\164\001\000\b\192\002\000\b\188\002\000\b\176\005\000\b\204\001\000\b\196\001\000\b\192\001\000\b\188\001\000\b\184\001\000\b\180\001\000\b\164\001\000\b\160\002\000\b\160\003\000\b\204\001\000\b\196\001\000\b\192\001\000\b\188\001\000\b\184\001\000\b\180\001\000\b\164\001\000\004h\004\000\004d\004\000\004d\005\000\004h\005\000\004h\006\000\bT\003\000\bT\004\000\bX\001\000\bh\001\000\bd\001\000\b\\\001\000\bT\005\000\n\252\001\000\n\248\001\000\n\244\001\000\n\240\001\000\n\236\001\000\n\232\001\000\n\228\001\000\n\224\001\000\n\220\001\000\n\216\001\000\n\212\001\000\n\208\001\000\bh\002\000\bh\003\000\n\220\002\000\n\216\002\000\n\212\002\000\n\208\002\000\bh\001\000\bd\001\000\b\\\001\000\n\220\003\000\n\212\003\000\n\208\003\000\n\212\004\000\n\208\004\000\b\204\001\000\b\196\001\000\b\192\001\000\b\188\001\000\b\184\001\000\b\180\001\000\b\164\001\000\n\208\005\000\n\212\005\000\n\212\006\000\bd\002\000\b\\\002\000\n\216\003\000\n\216\004\000\b`\001\000\b\016\001\000\bl\001\000\015\\\007\000\bh\001\000\bd\001\000\b\\\001\000\015\\\b\000\015\\\t\000\b\204\001\000\b\196\001\000\b\192\001\000\b\188\001\000\b\184\001\000\b\180\001\000\b\164\001\000\015\\\n\000\019@\001\000\n\016\001\000\019<\001\000\n\012\001\000\t\184\001\000\003\192\001\000\011T\001\000\006\208\001\000\006\208\002\000\006\208\003\000\002\028\001\000\006\208\004\000\006\208\005\000\012(\001\000\012$\001\000\012 \001\000\012\028\001\000\012\024\001\000\002\248\001\000\012(\002\000\012$\002\000\012 \002\000\012\028\002\000\012\024\002\000\012\140\001\000\012\136\001\000\012\132\001\000\012\128\001\000\012|\001\000\012x\001\000\012t\001\000\012p\001\000\012l\001\000\012h\001\000\012(\003\000\012$\003\000\012\140\002\000\012\136\002\000\012\132\002\000\012\128\002\000\012|\002\000\012(\004\000\012\140\003\000\012\136\003\000\012\132\003\000\012\128\003\000\012|\003\000\012(\005\000\012\140\004\000\012\136\004\000\012\132\004\000\012\128\004\000\012|\004\000\012(\006\000\012\140\005\000\012\136\005\000\012\132\005\000\012\128\005\000\012|\005\000\012(\007\000\012x\002\000\012t\002\000\012p\002\000\012l\002\000\012h\002\000\012$\004\000\012d\001\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012 \003\000\015\012\001\000\015\b\001\000\015\004\001\000\014\248\001\000\014\244\001\000\014\188\001\000\014\184\001\000\014\180\001\000\014\176\001\000\014\172\001\000\014\168\001\000\014\164\001\000\014\160\001\000\014\156\001\000\012d\002\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012 \004\000\012d\003\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012\140\001\000\012\136\001\000\012\132\001\000\012\128\001\000\012|\001\000\012x\001\000\012t\001\000\012p\001\000\012l\001\000\012h\001\000\012d\004\000\012`\004\000\012\140\002\000\012\136\002\000\012\132\002\000\012\128\002\000\012|\002\000\012d\005\000\012\140\003\000\012\136\003\000\012\132\003\000\012\128\003\000\012|\003\000\012d\006\000\012\140\004\000\012\136\004\000\012\132\004\000\012\128\004\000\012|\004\000\012d\007\000\012\140\005\000\012\136\005\000\012\132\005\000\012\128\005\000\012|\005\000\012d\b\000\012x\002\000\012t\002\000\012p\002\000\012l\002\000\012h\002\000\012`\005\000\012d\001\000\012`\001\000\012\\\004\000\012\\\001\000\012X\001\000\012T\001\000\015\012\001\000\015\b\001\000\015\004\001\000\014\248\001\000\014\244\001\000\014\188\001\000\014\184\001\000\014\180\001\000\014\176\001\000\014\172\001\000\014\168\001\000\014\164\001\000\014\160\001\000\014\156\001\000\012d\002\000\012`\002\000\012\\\005\000\012\\\002\000\012X\002\000\012T\002\000\020\024\001\000\015\016\001\000\014\220\001\000\015t\001\000\012X\004\000\012P\001\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012X\005\000\012P\002\000\012L\002\000\012H\002\000\012D\002\000\012@\002\000\012X\006\000\012P\003\000\012L\003\000\012H\003\000\012D\003\000\012@\003\000\r\b\001\000\012X\007\000\012P\004\000\012L\004\000\012H\004\000\012D\004\000\012@\004\000\014\224\001\000\003\000\001\000\015\012\001\000\015\b\001\000\015\004\001\000\014\248\001\000\014\244\001\000\014\188\001\000\014\184\001\000\014\180\001\000\014\176\001\000\014\172\001\000\014\168\001\000\014\164\001\000\014\160\001\000\014\156\001\000\003\000\002\000\006\128\001\000\003\188\001\000\003\188\002\000\003\188\003\000\r\216\001\000\012<\001\000\0128\001\000\0124\001\000\0120\001\000\012,\001\000\004T\001\000\004P\001\000\004L\001\000\004H\001\000\004$\001\000\003\200\001\000\003\196\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\003p\002\000\003l\002\000\012P\001\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\003p\003\000\012P\002\000\012L\002\000\012H\002\000\012D\002\000\012@\002\000\003p\004\000\012P\003\000\012L\003\000\012H\003\000\012D\003\000\012@\003\000\003p\005\000\r\b\001\000\012P\004\000\012L\004\000\012H\004\000\012D\004\000\012@\004\000\003p\006\000\012<\001\000\0128\001\000\0124\001\000\0120\001\000\012,\001\000\004$\001\000\003\200\001\000\003\196\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\003\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\003X\002\000\003T\002\000\012P\001\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\003X\003\000\012P\002\000\012L\002\000\012H\002\000\012D\002\000\012@\002\000\003X\004\000\012P\003\000\012L\003\000\012H\003\000\012D\003\000\012@\003\000\003X\005\000\r\b\001\000\012P\004\000\012L\004\000\012H\004\000\012D\004\000\012@\004\000\003X\006\000\012<\001\000\0128\001\000\0124\001\000\0120\001\000\012,\001\000\004$\001\000\003\200\001\000\003\196\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\003\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\003P\002\000\003L\002\000\012P\001\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\003P\003\000\012P\002\000\012L\002\000\012H\002\000\012D\002\000\012@\002\000\003P\004\000\012P\003\000\012L\003\000\012H\003\000\012D\003\000\012@\003\000\003P\005\000\r\b\001\000\012P\004\000\012L\004\000\012H\004\000\012D\004\000\012@\004\000\003P\006\000\012<\001\000\0128\001\000\0124\001\000\0120\001\000\012,\001\000\004$\001\000\003\200\001\000\003\196\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\003\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\003H\002\000\003D\002\000\012P\001\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\003H\003\000\012P\002\000\012L\002\000\012H\002\000\012D\002\000\012@\002\000\003H\004\000\012P\003\000\012L\003\000\012H\003\000\012D\003\000\012@\003\000\003H\005\000\r\b\001\000\012P\004\000\012L\004\000\012H\004\000\012D\004\000\012@\004\000\003H\006\000\012<\001\000\0128\001\000\0124\001\000\0120\001\000\012,\001\000\004$\001\000\003\200\001\000\003\196\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\003\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\003x\002\000\003t\002\000\012P\001\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\003x\003\000\012P\002\000\012L\002\000\012H\002\000\012D\002\000\012@\002\000\003x\004\000\012P\003\000\012L\003\000\012H\003\000\012D\003\000\012@\003\000\003x\005\000\r\b\001\000\012P\004\000\012L\004\000\012H\004\000\012D\004\000\012@\004\000\003x\006\000\012<\001\000\0128\001\000\0124\001\000\0120\001\000\012,\001\000\004$\001\000\003\200\001\000\003\196\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\003\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\003\152\002\000\003\148\002\000\012P\001\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\003\152\003\000\012P\002\000\012L\002\000\012H\002\000\012D\002\000\012@\002\000\003\152\004\000\012P\003\000\012L\003\000\012H\003\000\012D\003\000\012@\003\000\003\152\005\000\r\b\001\000\012P\004\000\012L\004\000\012H\004\000\012D\004\000\012@\004\000\003\152\006\000\012<\001\000\0128\001\000\0124\001\000\0120\001\000\012,\001\000\004$\001\000\003\200\001\000\003\196\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\003\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\0038\002\000\0034\002\000\012P\001\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\0038\003\000\012P\002\000\012L\002\000\012H\002\000\012D\002\000\012@\002\000\0038\004\000\012P\003\000\012L\003\000\012H\003\000\012D\003\000\012@\003\000\0038\005\000\r\b\001\000\012P\004\000\012L\004\000\012H\004\000\012D\004\000\012@\004\000\0038\006\000\012<\001\000\0128\001\000\0124\001\000\0120\001\000\012,\001\000\004$\001\000\003\200\001\000\003\196\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\003\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\003h\002\000\003d\002\000\012P\001\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\003h\003\000\012P\002\000\012L\002\000\012H\002\000\012D\002\000\012@\002\000\003h\004\000\012P\003\000\012L\003\000\012H\003\000\012D\003\000\012@\003\000\003h\005\000\r\b\001\000\012P\004\000\012L\004\000\012H\004\000\012D\004\000\012@\004\000\003h\006\000\012<\001\000\0128\001\000\0124\001\000\0120\001\000\012,\001\000\004$\001\000\003\200\001\000\003\196\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\003\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\003`\002\000\003\\\002\000\012P\001\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\003`\003\000\012P\002\000\012L\002\000\012H\002\000\012D\002\000\012@\002\000\003`\004\000\012P\003\000\012L\003\000\012H\003\000\012D\003\000\012@\003\000\003`\005\000\r\b\001\000\012P\004\000\012L\004\000\012H\004\000\012D\004\000\012@\004\000\003`\006\000\012<\001\000\0128\001\000\0124\001\000\0120\001\000\012,\001\000\004$\001\000\003\200\001\000\003\196\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\003\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\003\136\002\000\003\132\002\000\012P\001\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\003\136\003\000\012P\002\000\012L\002\000\012H\002\000\012D\002\000\012@\002\000\003\136\004\000\012P\003\000\012L\003\000\012H\003\000\012D\003\000\012@\003\000\003\136\005\000\r\b\001\000\012P\004\000\012L\004\000\012H\004\000\012D\004\000\012@\004\000\003\136\006\000\012<\001\000\0128\001\000\0124\001\000\0120\001\000\012,\001\000\004$\001\000\003\200\001\000\003\196\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\003\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\003@\002\000\003<\002\000\012P\001\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\003@\003\000\012P\002\000\012L\002\000\012H\002\000\012D\002\000\012@\002\000\003@\004\000\012P\003\000\012L\003\000\012H\003\000\012D\003\000\012@\003\000\003@\005\000\r\b\001\000\012P\004\000\012L\004\000\012H\004\000\012D\004\000\012@\004\000\003@\006\000\012<\001\000\0128\001\000\0124\001\000\0120\001\000\012,\001\000\004$\001\000\003\200\001\000\003\196\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\003\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\0030\002\000\003,\002\000\012P\001\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\0030\003\000\012P\002\000\012L\002\000\012H\002\000\012D\002\000\012@\002\000\0030\004\000\012P\003\000\012L\003\000\012H\003\000\012D\003\000\012@\003\000\0030\005\000\r\b\001\000\012P\004\000\012L\004\000\012H\004\000\012D\004\000\012@\004\000\0030\006\000\012<\001\000\0128\001\000\0124\001\000\0120\001\000\012,\001\000\004$\001\000\003\200\001\000\003\196\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\003\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\003(\002\000\003$\002\000\012P\001\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\003(\003\000\012P\002\000\012L\002\000\012H\002\000\012D\002\000\012@\002\000\003(\004\000\012P\003\000\012L\003\000\012H\003\000\012D\003\000\012@\003\000\003(\005\000\r\b\001\000\012P\004\000\012L\004\000\012H\004\000\012D\004\000\012@\004\000\003(\006\000\012<\001\000\0128\001\000\0124\001\000\0120\001\000\012,\001\000\004$\001\000\003\200\001\000\003\196\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\003\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\003 \002\000\003\028\002\000\012P\001\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\003 \003\000\012P\002\000\012L\002\000\012H\002\000\012D\002\000\012@\002\000\003 \004\000\012P\003\000\012L\003\000\012H\003\000\012D\003\000\012@\003\000\003 \005\000\r\b\001\000\012P\004\000\012L\004\000\012H\004\000\012D\004\000\012@\004\000\003 \006\000\012<\001\000\0128\001\000\0124\001\000\0120\001\000\012,\001\000\004$\001\000\003\200\001\000\003\196\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\003\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\003\b\002\000\003\004\002\000\012P\001\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\003\b\003\000\012P\002\000\012L\002\000\012H\002\000\012D\002\000\012@\002\000\003\b\004\000\012P\003\000\012L\003\000\012H\003\000\012D\003\000\012@\003\000\003\b\005\000\r\b\001\000\012P\004\000\012L\004\000\012H\004\000\012D\004\000\012@\004\000\003\b\006\000\012<\001\000\0128\001\000\0124\001\000\0120\001\000\012,\001\000\004$\001\000\003\200\001\000\003\196\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\003\000\003\004\001\000\003\144\002\000\003\140\002\000\012P\001\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\003\144\003\000\012P\002\000\012L\002\000\012H\002\000\012D\002\000\012@\002\000\003\144\004\000\012P\003\000\012L\003\000\012H\003\000\012D\003\000\012@\003\000\003\144\005\000\r\b\001\000\012P\004\000\012L\004\000\012H\004\000\012D\004\000\012@\004\000\003\144\006\000\012<\001\000\0128\001\000\0124\001\000\0120\001\000\012,\001\000\004$\001\000\003\200\001\000\003\196\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\003\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\003\128\002\000\003|\002\000\012P\001\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\003\128\003\000\012P\002\000\012L\002\000\012H\002\000\012D\002\000\012@\002\000\003\128\004\000\012P\003\000\012L\003\000\012H\003\000\012D\003\000\012@\003\000\003\128\005\000\r\b\001\000\012P\004\000\012L\004\000\012H\004\000\012D\004\000\012@\004\000\003\128\006\000\012<\001\000\0128\001\000\0124\001\000\0120\001\000\012,\001\000\004$\001\000\003\200\001\000\003\196\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\003\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\012<\002\000\0128\002\000\0124\002\000\0120\002\000\012,\002\000\012\140\001\000\012\136\001\000\012\132\001\000\012\128\001\000\012|\001\000\012x\001\000\012t\001\000\012p\001\000\012l\001\000\012h\001\000\012<\003\000\0128\003\000\012\140\002\000\012\136\002\000\012\132\002\000\012\128\002\000\012|\002\000\012<\004\000\012\140\003\000\012\136\003\000\012\132\003\000\012\128\003\000\012|\003\000\012<\005\000\012\140\004\000\012\136\004\000\012\132\004\000\012\128\004\000\012|\004\000\012<\006\000\012\140\005\000\012\136\005\000\012\132\005\000\012\128\005\000\012|\005\000\012<\007\000\012x\002\000\012t\002\000\012p\002\000\012l\002\000\012h\002\000\0128\004\000\012d\001\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\0124\003\000\015\012\001\000\015\b\001\000\015\004\001\000\014\248\001\000\014\244\001\000\014\188\001\000\014\184\001\000\014\180\001\000\014\176\001\000\014\172\001\000\014\168\001\000\014\164\001\000\014\160\001\000\014\156\001\000\012d\002\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\0124\004\000\012P\001\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\0120\003\000\012P\002\000\012L\002\000\012H\002\000\012D\002\000\012@\002\000\0120\004\000\012P\003\000\012L\003\000\012H\003\000\012D\003\000\012@\003\000\0120\005\000\r\b\001\000\012P\004\000\012L\004\000\012H\004\000\012D\004\000\012@\004\000\0120\006\000\012<\001\000\0128\001\000\0124\001\000\0120\001\000\012,\003\000\012,\001\000\004$\001\000\003\200\001\000\003\196\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\003\184\002\000\003\180\002\000\012P\001\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\003\184\003\000\012P\002\000\012L\002\000\012H\002\000\012D\002\000\012@\002\000\003\184\004\000\012P\003\000\012L\003\000\012H\003\000\012D\003\000\012@\003\000\003\184\005\000\r\b\001\000\012P\004\000\012L\004\000\012H\004\000\012D\004\000\012@\004\000\003\184\006\000\012<\001\000\0128\001\000\0124\001\000\0120\001\000\012,\001\000\004$\001\000\003\200\001\000\003\196\001\000\003\184\001\000\003\180\003\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\003\200\002\000\003\196\002\000\012P\001\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\003\200\003\000\012P\002\000\012L\002\000\012H\002\000\012D\002\000\012@\002\000\003\200\004\000\012P\003\000\012L\003\000\012H\003\000\012D\003\000\012@\003\000\003\200\005\000\r\b\001\000\012P\004\000\012L\004\000\012H\004\000\012D\004\000\012@\004\000\003\200\006\000\012<\001\000\0128\001\000\0124\001\000\0120\001\000\012,\001\000\004$\001\000\003\200\001\000\003\196\003\000\003\196\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\003\160\002\000\003\156\002\000\012P\001\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\003\160\003\000\012P\002\000\012L\002\000\012H\002\000\012D\002\000\012@\002\000\003\160\004\000\012P\003\000\012L\003\000\012H\003\000\012D\003\000\012@\003\000\003\160\005\000\r\b\001\000\012P\004\000\012L\004\000\012H\004\000\012D\004\000\012@\004\000\003\160\006\000\012<\001\000\0128\001\000\0124\001\000\0120\001\000\012,\001\000\004$\001\000\003\200\001\000\003\196\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\003\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\003\024\002\000\003\020\002\000\012P\001\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\003\024\003\000\012P\002\000\012L\002\000\012H\002\000\012D\002\000\012@\002\000\003\024\004\000\012P\003\000\012L\003\000\012H\003\000\012D\003\000\012@\003\000\003\024\005\000\r\b\001\000\012P\004\000\012L\004\000\012H\004\000\012D\004\000\012@\004\000\003\024\006\000\012<\001\000\0128\001\000\0124\001\000\0120\001\000\012,\001\000\004$\001\000\003\200\001\000\003\196\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\003\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\003\016\002\000\003\012\002\000\012P\001\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\003\016\003\000\012P\002\000\012L\002\000\012H\002\000\012D\002\000\012@\002\000\003\016\004\000\012P\003\000\012L\003\000\012H\003\000\012D\003\000\012@\003\000\003\016\005\000\r\b\001\000\012P\004\000\012L\004\000\012H\004\000\012D\004\000\012@\004\000\003\016\006\000\012<\001\000\0128\001\000\0124\001\000\0120\001\000\012,\001\000\004$\001\000\003\200\001\000\003\196\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\003\000\003\012\001\000\003\b\001\000\003\004\001\000\003\168\002\000\003\164\002\000\012P\001\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\003\168\003\000\012P\002\000\012L\002\000\012H\002\000\012D\002\000\012@\002\000\003\168\004\000\012P\003\000\012L\003\000\012H\003\000\012D\003\000\012@\003\000\003\168\005\000\r\b\001\000\012P\004\000\012L\004\000\012H\004\000\012D\004\000\012@\004\000\003\168\006\000\012<\001\000\0128\001\000\0124\001\000\0120\001\000\012,\001\000\004$\001\000\003\200\001\000\003\196\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\003\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\003\176\002\000\003\172\002\000\012P\001\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\003\176\003\000\012P\002\000\012L\002\000\012H\002\000\012D\002\000\012@\002\000\003\176\004\000\012P\003\000\012L\003\000\012H\003\000\012D\003\000\012@\003\000\003\176\005\000\r\b\001\000\012P\004\000\012L\004\000\012H\004\000\012D\004\000\012@\004\000\003\176\006\000\012<\001\000\0128\001\000\0124\001\000\0120\001\000\012,\001\000\004$\001\000\003\200\001\000\003\196\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\003\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\004$\002\000\014\220\001\000\002\252\001\000\015\012\001\000\015\b\001\000\015\004\001\000\014\248\001\000\014\244\001\000\014\188\001\000\014\184\001\000\014\180\001\000\014\176\001\000\014\172\001\000\014\168\001\000\014\164\001\000\014\160\001\000\014\156\001\000\002\252\002\000\002\232\001\000\002\228\001\000\012P\001\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\002\232\002\000\012P\002\000\012L\002\000\012H\002\000\012D\002\000\012@\002\000\002\232\003\000\012P\003\000\012L\003\000\012H\003\000\012D\003\000\012@\003\000\002\232\004\000\r\b\001\000\012P\004\000\012L\004\000\012H\004\000\012D\004\000\012@\004\000\002\232\005\000\012<\001\000\0128\001\000\0124\001\000\0120\001\000\012,\001\000\004$\001\000\003\200\001\000\003\196\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\002\228\002\000\004T\002\000\004P\002\000\004L\002\000\004T\003\000\004T\004\000\004T\005\000\004P\003\000\000T\001\000\000T\002\000\020\012\001\000\015\212\001\000\015\164\001\000\015\160\001\000\015\152\001\000\006x\001\000\001\240\001\000\001\208\001\000\015\144\001\000\006x\002\000\006x\003\000\006x\004\000\016\180\001\000\016\180\002\000\006x\005\000\016\184\001\000\n\\\001\000\nX\001\000\n\\\002\000\016\184\002\000\016\184\003\000\002\140\001\000\016\184\004\000\n`\001\000\012\200\001\000\015\144\001\000\006`\001\000\006\\\001\000\006P\001\000\006L\001\000\006<\001\000\0068\001\000\0064\001\000\0060\001\000\006,\001\000\019\160\001\000\019\156\001\000\006`\002\000\006\\\002\000\006P\002\000\006L\002\000\006`\003\000\006\\\003\000\006`\004\000\006\\\004\000\006`\005\000\006\\\005\000\006`\006\000\006\\\006\000\002\028\001\000\006\\\007\000\006\\\b\000\006`\007\000\006`\b\000\006`\t\000\012\252\001\000\012\248\001\000\006P\003\000\006L\003\000\006P\004\000\006L\004\000\006P\005\000\006L\005\000\002\028\001\000\006L\006\000\006L\007\000\006P\006\000\006P\007\000\006P\b\000\0068\002\000\0064\002\000\0064\003\000\0064\004\000\0068\003\000\0068\004\000\0068\005\000\0060\002\000\006<\002\000\006<\003\000\006<\004\000\015\148\001\000\006p\001\000\006l\001\000\006h\001\000\006p\002\000\006l\002\000\006p\003\000\006l\003\000\002\028\001\000\006l\004\000\006l\005\000\006p\004\000\006p\005\000\006p\006\000\006h\002\000\006h\003\000\006h\004\000\012\176\001\000\011x\001\000\011t\001\000\011l\001\000\011h\001\000\006d\001\000\005\244\001\000\005\240\001\000\005\236\001\000\005\232\001\000\006d\002\000\006d\003\000\006t\001\000\006X\001\000\006T\001\000\006H\001\000\006D\001\000\006@\001\000\006t\002\000\006X\002\000\006T\002\000\006H\002\000\006D\002\000\006@\002\000\019\160\001\000\019\156\001\000\006X\003\000\006T\003\000\012\252\001\000\012\248\001\000\006X\004\000\006T\004\000\006X\005\000\006T\005\000\006X\006\000\006T\006\000\002\028\001\000\006T\007\000\006T\b\000\006X\007\000\006X\b\000\006X\t\000\006D\003\000\006@\003\000\006@\004\000\006@\005\000\006D\004\000\006D\005\000\006D\006\000\006t\003\000\006H\003\000\006H\004\000\006H\005\000\006(\001\000\000T\003\000\007$\001\000\007$\002\000\000T\004\000\006\128\002\000\012T\004\000\012<\001\000\0128\001\000\0124\001\000\0120\001\000\012,\001\000\004$\001\000\003\200\001\000\003\196\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\012P\001\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012\028\003\000\012P\002\000\012L\002\000\012H\002\000\012D\002\000\012@\002\000\012\028\004\000\012P\003\000\012L\003\000\012H\003\000\012D\003\000\012@\003\000\012\028\005\000\r\b\001\000\012P\004\000\012L\004\000\012H\004\000\012D\004\000\012@\004\000\012\028\006\000\012<\001\000\0128\001\000\0124\001\000\0120\001\000\012,\001\000\012\024\003\000\004$\001\000\003\200\001\000\003\196\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\012\176\001\000\011x\001\000\011t\001\000\011l\001\000\011h\001\000\006\212\001\000\005\244\001\000\005\240\001\000\005\236\001\000\005\232\001\000\006\212\002\000\006\212\003\000\006\220\001\000\003\192\002\000\003\192\003\000\003\192\004\000\006\220\002\000\006\220\003\000\006\216\001\000\014\232\001\000\t\220\001\000\014\252\004\000\014\252\005\000\015p\003\000\015l\003\000\015P\003\000\015L\003\000\015P\004\000\r\176\001\000\r\168\001\000\r\164\001\000\012P\001\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\015P\005\000\r\176\002\000\r\168\002\000\r\164\002\000\012P\002\000\012L\002\000\012H\002\000\012D\002\000\012@\002\000\015P\006\000\r\176\003\000\r\168\003\000\r\164\003\000\012P\003\000\012L\003\000\012H\003\000\012D\003\000\012@\003\000\015P\007\000\r\176\004\000\r\168\004\000\r\164\004\000\r\b\001\000\012P\004\000\012L\004\000\012H\004\000\012D\004\000\012@\004\000\001\140\001\000\001\136\001\000\012P\001\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\001\140\002\000\012P\002\000\012L\002\000\012H\002\000\012D\002\000\012@\002\000\001\140\003\000\012P\003\000\012L\003\000\012H\003\000\012D\003\000\012@\003\000\001\140\004\000\r\b\001\000\012P\004\000\012L\004\000\012H\004\000\012D\004\000\012@\004\000\001\140\005\000\012<\001\000\0128\001\000\0124\001\000\0120\001\000\012,\001\000\004$\001\000\003\200\001\000\003\196\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\001\136\002\000\001\132\001\000\r\024\001\000\001\132\002\000\r\024\002\000\001\168\001\000\001\164\001\000\001\160\001\000\001\156\001\000\001\152\001\000\001\148\001\000\001\144\001\000\001\160\002\000\001\156\002\000\012\152\001\000\011H\001\000\011D\001\000\011<\001\000\0118\001\000\005\164\001\000\005\160\001\000\005\156\001\000\005\152\001\000\001\160\003\000\001\156\003\000\001\160\004\000\001\156\004\000\012P\001\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\001\160\005\000\012P\002\000\012L\002\000\012H\002\000\012D\002\000\012@\002\000\001\160\006\000\012P\003\000\012L\003\000\012H\003\000\012D\003\000\012@\003\000\001\160\007\000\r\b\001\000\012P\004\000\012L\004\000\012H\004\000\012D\004\000\012@\004\000\001\160\b\000\012<\001\000\0128\001\000\0124\001\000\0120\001\000\012,\001\000\004$\001\000\003\200\001\000\003\196\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\001\156\005\000\001\168\002\000\001\164\002\000\012\152\001\000\011H\001\000\011D\001\000\011<\001\000\0118\001\000\005\164\001\000\005\160\001\000\005\156\001\000\005\152\001\000\001\168\003\000\001\164\003\000\001\168\004\000\001\164\004\000\012P\001\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\001\168\005\000\012P\002\000\012L\002\000\012H\002\000\012D\002\000\012@\002\000\001\168\006\000\012P\003\000\012L\003\000\012H\003\000\012D\003\000\012@\003\000\001\168\007\000\r\b\001\000\012P\004\000\012L\004\000\012H\004\000\012D\004\000\012@\004\000\001\168\b\000\012<\001\000\0128\001\000\0124\001\000\0120\001\000\012,\001\000\004$\001\000\003\200\001\000\003\196\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\001\164\005\000\001\152\002\000\001\148\002\000\012\152\001\000\011H\001\000\011D\001\000\011<\001\000\0118\001\000\005\164\001\000\005\160\001\000\005\156\001\000\005\152\001\000\001\152\003\000\001\148\003\000\001\152\004\000\001\148\004\000\012P\001\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\001\152\005\000\012P\002\000\012L\002\000\012H\002\000\012D\002\000\012@\002\000\001\152\006\000\012P\003\000\012L\003\000\012H\003\000\012D\003\000\012@\003\000\001\152\007\000\r\b\001\000\012P\004\000\012L\004\000\012H\004\000\012D\004\000\012@\004\000\001\152\b\000\012<\001\000\0128\001\000\0124\001\000\0120\001\000\012,\001\000\004$\001\000\003\200\001\000\003\196\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\001\148\005\000\012\152\001\000\011H\001\000\011D\001\000\011<\001\000\0118\001\000\005\164\001\000\005\160\001\000\005\156\001\000\005\152\001\000\001\144\002\000\001\192\001\000\001\188\001\000\012P\001\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\001\192\002\000\012P\002\000\012L\002\000\012H\002\000\012D\002\000\012@\002\000\001\192\003\000\012P\003\000\012L\003\000\012H\003\000\012D\003\000\012@\003\000\001\192\004\000\r\b\001\000\012P\004\000\012L\004\000\012H\004\000\012D\004\000\012@\004\000\001\192\005\000\012<\001\000\0128\001\000\0124\001\000\0120\001\000\012,\001\000\004$\001\000\003\200\001\000\003\196\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\001\188\002\000\001\184\001\000\001\180\001\000\001\176\001\000\001\172\001\000\012P\001\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\001\184\002\000\001\180\002\000\012P\002\000\012L\002\000\012H\002\000\012D\002\000\012@\002\000\001\184\003\000\001\180\003\000\012P\003\000\012L\003\000\012H\003\000\012D\003\000\012@\003\000\001\184\004\000\001\180\004\000\r\b\001\000\012P\004\000\012L\004\000\012H\004\000\012D\004\000\012@\004\000\001\184\005\000\001\180\005\000\002X\001\000\002\\\001\000\001\184\006\000\001\180\006\000\012P\001\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\001\184\007\000\012P\002\000\012L\002\000\012H\002\000\012D\002\000\012@\002\000\001\184\b\000\012P\003\000\012L\003\000\012H\003\000\012D\003\000\012@\003\000\001\184\t\000\r\b\001\000\012P\004\000\012L\004\000\012H\004\000\012D\004\000\012@\004\000\001\184\n\000\012<\001\000\0128\001\000\0124\001\000\0120\001\000\012,\001\000\004$\001\000\003\200\001\000\003\196\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\001\180\007\000\012<\001\000\0128\001\000\0124\001\000\0120\001\000\012,\001\000\004$\001\000\003\200\001\000\003\196\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\001\176\002\000\001\172\002\000\001\176\003\000\001\172\003\000\012P\001\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\001\176\004\000\012P\002\000\012L\002\000\012H\002\000\012D\002\000\012@\002\000\001\176\005\000\012P\003\000\012L\003\000\012H\003\000\012D\003\000\012@\003\000\001\176\006\000\r\b\001\000\012P\004\000\012L\004\000\012H\004\000\012D\004\000\012@\004\000\001\176\007\000\012<\001\000\0128\001\000\0124\001\000\0120\001\000\012,\001\000\004$\001\000\003\200\001\000\003\196\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\001\172\004\000\001\144\003\000\r\024\003\000\r\020\001\000\015P\b\000\012\212\001\000\015P\t\000\012\212\002\000\012\208\001\000\015p\004\000\015l\004\000\015l\005\000\015L\004\000\r\172\001\000\r\160\001\000\r\156\001\000\012<\001\000\0128\001\000\0124\001\000\0120\001\000\012,\001\000\004$\001\000\003\200\001\000\003\196\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\r\172\002\000\r\160\002\000\r\172\003\000\r\172\001\000\r\160\001\000\r\156\001\000\012<\001\000\0128\001\000\0124\001\000\0120\001\000\012,\001\000\004$\001\000\003\200\001\000\003\196\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\015L\005\000\012\212\001\000\015L\006\000\015H\003\000\015D\003\000\0154\003\000\0150\003\000\015H\004\000\r\176\001\000\r\168\001\000\r\164\001\000\012P\001\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\015H\005\000\r\176\002\000\r\168\002\000\r\164\002\000\012P\002\000\012L\002\000\012H\002\000\012D\002\000\012@\002\000\015H\006\000\r\176\003\000\r\168\003\000\r\164\003\000\012P\003\000\012L\003\000\012H\003\000\012D\003\000\012@\003\000\015H\007\000\r\176\004\000\r\168\004\000\r\164\004\000\r\b\001\000\012P\004\000\012L\004\000\012H\004\000\012D\004\000\012@\004\000\015H\b\000\012\212\001\000\015H\t\000\0154\004\000\0150\004\000\0150\005\000\015D\004\000\r\172\001\000\r\160\001\000\r\156\001\000\012<\001\000\0128\001\000\0124\001\000\0120\001\000\012,\001\000\004$\001\000\003\200\001\000\003\196\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\015D\005\000\012\212\001\000\015D\006\000\015X\003\000\015T\003\000\015@\003\000\015<\003\000\015X\004\000\015@\004\000\r\176\001\000\r\168\001\000\r\164\001\000\012P\001\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\015@\005\000\r\176\002\000\r\168\002\000\r\164\002\000\012P\002\000\012L\002\000\012H\002\000\012D\002\000\012@\002\000\015@\006\000\r\176\003\000\r\168\003\000\r\164\003\000\012P\003\000\012L\003\000\012H\003\000\012D\003\000\012@\003\000\015@\007\000\r\176\004\000\r\168\004\000\r\164\004\000\r\b\001\000\012P\004\000\012L\004\000\012H\004\000\012D\004\000\012@\004\000\015@\b\000\012\212\001\000\015@\t\000\015T\004\000\015T\005\000\015<\004\000\r\172\001\000\r\160\001\000\r\156\001\000\012<\001\000\0128\001\000\0124\001\000\0120\001\000\012,\001\000\004$\001\000\003\200\001\000\003\196\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\015<\005\000\012\212\001\000\015<\006\000\015\000\003\000\015\000\004\000\015\000\005\000\015$\003\000\015\012\001\000\015\b\001\000\015\004\001\000\014\248\001\000\014\244\001\000\014\188\001\000\014\184\001\000\014\180\001\000\014\176\001\000\014\172\001\000\014\168\001\000\014\164\001\000\014\160\001\000\014\156\001\000\011\220\001\000\011\220\002\000\011\220\003\000\r\212\001\000\r\208\001\000\r\204\001\000\n\164\001\000\r\212\002\000\r\208\002\000\r\204\002\000\r\212\003\000\r\208\003\000\r\204\003\000\r\212\004\000\r\208\004\000\r\212\005\000\011\216\001\000\015$\004\000\015$\005\000\015p\001\000\015l\001\000\015\\\001\000\015X\001\000\015T\001\000\015P\001\000\015L\001\000\015H\001\000\015D\001\000\015@\001\000\015<\001\000\0154\001\000\0150\001\000\015$\001\000\015\024\001\000\015\000\001\000\014\252\001\000\b\024\001\000\b\016\001\000\b\b\001\000\001\236\001\000\001\232\001\000\015p\002\000\015l\002\000\015\\\002\000\015X\002\000\015T\002\000\015P\002\000\015L\002\000\015H\002\000\015D\002\000\015@\002\000\015<\002\000\0154\002\000\0150\002\000\015$\002\000\015\024\002\000\015\000\002\000\014\252\002\000\b\024\002\000\b\016\002\000\b\b\002\000\001\236\002\000\020\016\001\000\b\b\003\000\b\024\003\000\005$\001\000\015\012\001\000\015\b\001\000\015\004\001\000\014\248\001\000\014\244\001\000\014\188\001\000\014\184\001\000\014\180\001\000\014\176\001\000\014\172\001\000\014\168\001\000\014\164\001\000\014\160\001\000\014\156\001\000\005$\002\000\014\184\002\000\014\176\002\000\014\168\002\000\004\024\002\000\004\020\002\000\004\b\002\000\004\004\002\000\003\248\002\000\003\244\002\000\014\168\003\000\003\248\003\000\003\244\003\000\014\168\004\000\003\248\004\000\003\244\004\000\014\168\005\000\003\248\005\000\003\244\005\000\003\248\006\000\003\244\006\000\012P\001\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\003\248\007\000\012P\002\000\012L\002\000\012H\002\000\012D\002\000\012@\002\000\003\248\b\000\012P\003\000\012L\003\000\012H\003\000\012D\003\000\012@\003\000\003\248\t\000\r\b\001\000\012P\004\000\012L\004\000\012H\004\000\012D\004\000\012@\004\000\003\248\n\000\012<\001\000\0128\001\000\0124\001\000\0120\001\000\012,\001\000\004$\001\000\003\244\007\000\003\200\001\000\003\196\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\014\184\003\000\004\024\003\000\004\020\003\000\014\184\004\000\004\024\004\000\004\020\004\000\014\184\005\000\004\024\005\000\004\020\005\000\004\024\006\000\004\020\006\000\012P\001\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\004\024\007\000\012P\002\000\012L\002\000\012H\002\000\012D\002\000\012@\002\000\004\024\b\000\012P\003\000\012L\003\000\012H\003\000\012D\003\000\012@\003\000\004\024\t\000\r\b\001\000\012P\004\000\012L\004\000\012H\004\000\012D\004\000\012@\004\000\004\024\n\000\012<\001\000\0128\001\000\0124\001\000\0120\001\000\012,\001\000\004$\001\000\004\020\007\000\003\200\001\000\003\196\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\014\176\003\000\004\b\003\000\004\004\003\000\014\176\004\000\004\b\004\000\004\004\004\000\014\176\005\000\004\b\005\000\004\004\005\000\004\b\006\000\004\004\006\000\012P\001\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\004\b\007\000\012P\002\000\012L\002\000\012H\002\000\012D\002\000\012@\002\000\004\b\b\000\012P\003\000\012L\003\000\012H\003\000\012D\003\000\012@\003\000\004\b\t\000\r\b\001\000\012P\004\000\012L\004\000\012H\004\000\012D\004\000\012@\004\000\004\b\n\000\012<\001\000\0128\001\000\0124\001\000\0120\001\000\012,\001\000\004$\001\000\004\004\007\000\003\200\001\000\003\196\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\014\244\002\000\014\188\002\000\014\180\002\000\014\172\002\000\014\164\002\000\014\160\002\000\014\156\002\000\004 \002\000\004\028\002\000\004\016\002\000\004\012\002\000\004\000\002\000\003\252\002\000\003\240\002\000\003\236\002\000\003\232\002\000\003\228\002\000\003\224\002\000\003\220\002\000\003\216\002\000\003\212\002\000\014\156\003\000\003\224\003\000\003\220\003\000\014\156\004\000\003\224\004\000\003\220\004\000\014\156\005\000\003\224\005\000\003\220\005\000\003\224\006\000\003\220\006\000\012P\001\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\003\224\007\000\012P\002\000\012L\002\000\012H\002\000\012D\002\000\012@\002\000\003\224\b\000\012P\003\000\012L\003\000\012H\003\000\012D\003\000\012@\003\000\003\224\t\000\r\b\001\000\012P\004\000\012L\004\000\012H\004\000\012D\004\000\012@\004\000\003\224\n\000\012<\001\000\0128\001\000\0124\001\000\0120\001\000\012,\001\000\004$\001\000\003\220\007\000\003\200\001\000\003\196\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\014\164\003\000\003\240\003\000\003\236\003\000\014\164\004\000\003\240\004\000\003\236\004\000\014\164\005\000\003\240\005\000\003\236\005\000\003\240\006\000\003\236\006\000\012P\001\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\003\240\007\000\012P\002\000\012L\002\000\012H\002\000\012D\002\000\012@\002\000\003\240\b\000\012P\003\000\012L\003\000\012H\003\000\012D\003\000\012@\003\000\003\240\t\000\r\b\001\000\012P\004\000\012L\004\000\012H\004\000\012D\004\000\012@\004\000\003\240\n\000\012<\001\000\0128\001\000\0124\001\000\0120\001\000\012,\001\000\004$\001\000\003\236\007\000\003\200\001\000\003\196\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\014\160\003\000\003\232\003\000\003\228\003\000\014\160\004\000\003\232\004\000\003\228\004\000\014\160\005\000\003\232\005\000\003\228\005\000\003\232\006\000\003\228\006\000\012P\001\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\003\232\007\000\012P\002\000\012L\002\000\012H\002\000\012D\002\000\012@\002\000\003\232\b\000\012P\003\000\012L\003\000\012H\003\000\012D\003\000\012@\003\000\003\232\t\000\r\b\001\000\012P\004\000\012L\004\000\012H\004\000\012D\004\000\012@\004\000\003\232\n\000\012<\001\000\0128\001\000\0124\001\000\0120\001\000\012,\001\000\004$\001\000\003\228\007\000\003\200\001\000\003\196\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\014\188\003\000\014\180\003\000\014\172\003\000\b\016\001\000\b\b\001\000\004 \003\000\004\028\003\000\004\016\003\000\004\012\003\000\004\000\003\000\003\252\003\000\014\188\004\000\014\180\004\000\014\172\004\000\004 \004\000\004\028\004\000\004\016\004\000\004\012\004\000\004\000\004\000\003\252\004\000\014\172\005\000\004\000\005\000\003\252\005\000\014\172\006\000\004\000\006\000\003\252\006\000\014\172\007\000\004\000\007\000\003\252\007\000\004\000\b\000\003\252\b\000\012P\001\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\004\000\t\000\012P\002\000\012L\002\000\012H\002\000\012D\002\000\012@\002\000\004\000\n\000\012P\003\000\012L\003\000\012H\003\000\012D\003\000\012@\003\000\004\000\011\000\r\b\001\000\012P\004\000\012L\004\000\012H\004\000\012D\004\000\012@\004\000\004\000\012\000\012<\001\000\0128\001\000\0124\001\000\0120\001\000\012,\001\000\004$\001\000\003\252\t\000\003\200\001\000\003\196\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\014\188\005\000\004 \005\000\004\028\005\000\014\188\006\000\004 \006\000\004\028\006\000\014\188\007\000\004 \007\000\004\028\007\000\004 \b\000\004\028\b\000\012P\001\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\004 \t\000\012P\002\000\012L\002\000\012H\002\000\012D\002\000\012@\002\000\004 \n\000\012P\003\000\012L\003\000\012H\003\000\012D\003\000\012@\003\000\004 \011\000\r\b\001\000\012P\004\000\012L\004\000\012H\004\000\012D\004\000\012@\004\000\004 \012\000\012<\001\000\0128\001\000\0124\001\000\0120\001\000\012,\001\000\004$\001\000\004\028\t\000\003\200\001\000\003\196\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\014\180\005\000\004\016\005\000\004\012\005\000\014\180\006\000\004\016\006\000\004\012\006\000\014\180\007\000\004\016\007\000\004\012\007\000\004\016\b\000\004\012\b\000\012P\001\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\004\016\t\000\012P\002\000\012L\002\000\012H\002\000\012D\002\000\012@\002\000\004\016\n\000\012P\003\000\012L\003\000\012H\003\000\012D\003\000\012@\003\000\004\016\011\000\r\b\001\000\012P\004\000\012L\004\000\012H\004\000\012D\004\000\012@\004\000\004\016\012\000\012<\001\000\0128\001\000\0124\001\000\0120\001\000\012,\001\000\004$\001\000\004\012\t\000\003\200\001\000\003\196\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\014\244\003\000\003\216\003\000\003\212\003\000\003\216\004\000\003\212\004\000\012P\001\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\003\216\005\000\012P\002\000\012L\002\000\012H\002\000\012D\002\000\012@\002\000\003\216\006\000\012P\003\000\012L\003\000\012H\003\000\012D\003\000\012@\003\000\003\216\007\000\r\b\001\000\012P\004\000\012L\004\000\012H\004\000\012D\004\000\012@\004\000\003\216\b\000\012<\001\000\0128\001\000\0124\001\000\0120\001\000\012,\001\000\004$\001\000\003\212\005\000\003\200\001\000\003\196\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\015\012\001\000\015\b\001\000\015\004\001\000\014\248\001\000\014\244\001\000\014\188\001\000\014\184\001\000\014\180\001\000\014\176\001\000\014\172\001\000\014\168\001\000\014\164\001\000\014\160\001\000\014\156\001\000\005 \001\000\012\228\001\000\002\240\002\000\012\228\002\000\012\224\001\000\012<\001\000\0128\001\000\0124\001\000\0120\001\000\012,\001\000\004$\001\000\003\200\001\000\003\196\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\002\220\002\000\014\156\004\000\014\156\005\000\014\164\003\000\014\164\004\000\014\164\005\000\014\160\003\000\014\160\004\000\014\160\005\000\014\188\003\000\014\180\003\000\014\172\003\000\b\016\001\000\b\b\001\000\014\188\004\000\014\180\004\000\014\172\004\000\014\172\005\000\014\172\006\000\014\172\007\000\014\188\005\000\014\188\006\000\014\188\007\000\014\180\005\000\014\180\006\000\014\180\007\000\014\244\003\000\0044\002\000\002\208\006\000\002\208\007\000\002\208\b\000\002\208\t\000\002\208\n\000\002\208\011\000\r\176\006\000\014\168\004\000\014\168\005\000\014\184\003\000\014\184\004\000\014\184\005\000\014\176\003\000\014\176\004\000\014\176\005\000\015\012\001\000\015\b\001\000\015\004\001\000\014\248\001\000\014\244\001\000\014\188\001\000\014\184\001\000\014\180\001\000\014\176\001\000\014\172\001\000\014\168\001\000\014\164\001\000\014\160\001\000\014\156\001\000\012d\002\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012H\007\000\012P\001\000\012L\001\000\012H\001\000\012D\006\000\012D\001\000\012@\001\000\012P\002\000\012L\002\000\012H\002\000\012D\007\000\012D\002\000\012@\002\000\012P\003\000\012L\003\000\012H\003\000\012D\b\000\012D\003\000\012@\003\000\r\b\001\000\012P\004\000\012L\004\000\012H\004\000\012D\t\000\012D\004\000\012@\004\000\012@\006\000\012<\001\000\0128\001\000\0124\001\000\0120\001\000\012,\001\000\004$\001\000\003\200\001\000\003\196\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\002\236\007\000\n\192\001\000\007\132\003\000\007\132\004\000\007\132\005\000\007\136\002\000\007\128\002\000\007\136\003\000\007\128\003\000\r\004\002\000\r\220\004\000\r\b\001\000\012P\004\000\012L\004\000\012H\004\000\012D\004\000\012@\004\000\002\200\004\000\002\196\004\000\002\192\004\000\002\188\004\000\002\184\004\000\002\180\004\000\002\200\005\000\002\196\005\000\002\192\005\000\002\188\005\000\002\184\005\000\002\180\005\000\012P\001\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\002\200\006\000\002\192\006\000\002\188\006\000\012P\002\000\012L\002\000\012H\002\000\012D\002\000\012@\002\000\002\200\007\000\002\192\007\000\002\188\007\000\012P\003\000\012L\003\000\012H\003\000\012D\003\000\012@\003\000\002\200\b\000\002\192\b\000\002\188\b\000\r\b\001\000\012P\004\000\012L\004\000\012H\004\000\012D\004\000\012@\004\000\002\200\t\000\002\192\t\000\002\188\t\000\002\192\n\000\002\188\n\000\012P\001\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\002\192\011\000\012P\002\000\012L\002\000\012H\002\000\012D\002\000\012@\002\000\002\192\012\000\012P\003\000\012L\003\000\012H\003\000\012D\003\000\012@\003\000\002\192\r\000\r\b\001\000\012P\004\000\012L\004\000\012H\004\000\012D\004\000\012@\004\000\002\192\014\000\012<\001\000\0128\001\000\0124\001\000\0120\001\000\012,\001\000\004$\001\000\003\200\001\000\003\196\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\002\188\011\000\012<\001\000\0128\001\000\0124\001\000\0120\001\000\012,\001\000\004$\001\000\003\200\001\000\003\196\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\002\196\006\000\002\184\006\000\002\180\006\000\002\184\007\000\002\180\007\000\012P\001\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\002\184\b\000\012P\002\000\012L\002\000\012H\002\000\012D\002\000\012@\002\000\002\184\t\000\012P\003\000\012L\003\000\012H\003\000\012D\003\000\012@\003\000\002\184\n\000\r\b\001\000\012P\004\000\012L\004\000\012H\004\000\012D\004\000\012@\004\000\002\184\011\000\012<\001\000\0128\001\000\0124\001\000\0120\001\000\012,\001\000\004$\001\000\003\200\001\000\003\196\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\002\180\b\000\014\196\004\000\014\192\004\000\014\192\005\000\015\012\001\000\015\b\001\000\015\004\001\000\014\248\001\000\014\244\001\000\014\188\001\000\014\184\001\000\014\180\001\000\014\176\001\000\014\172\001\000\014\168\001\000\014\164\001\000\014\160\001\000\014\156\001\000\012d\002\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\014\136\002\000\012P\001\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\014\136\003\000\012P\002\000\012L\002\000\012H\002\000\012D\002\000\012@\002\000\014\136\004\000\012P\003\000\012L\003\000\012H\003\000\012D\003\000\012@\003\000\014\136\005\000\r\b\001\000\012P\004\000\012L\004\000\012H\004\000\012D\004\000\012@\004\000\014\136\006\000\014\132\002\000\012<\001\000\0128\001\000\0124\001\000\0120\001\000\012,\001\000\004$\001\000\003\200\001\000\003\196\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\014\132\003\000\015\012\001\000\015\b\001\000\015\004\001\000\014\248\001\000\014\244\001\000\014\188\001\000\014\184\001\000\014\180\001\000\014\176\001\000\014\172\001\000\014\168\001\000\014\164\001\000\014\160\001\000\014\156\001\000\014\140\002\000\015 \002\000\015 \003\000\015\012\001\000\015\b\001\000\015\004\001\000\014\248\001\000\014\244\001\000\014\188\001\000\014\184\001\000\014\180\001\000\014\176\001\000\014\172\001\000\014\168\001\000\014\164\001\000\014\160\001\000\014\156\001\000\002\216\004\000\012P\001\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012P\002\000\012L\002\000\012H\002\000\012D\002\000\012@\002\000\012P\003\000\012L\003\000\012H\003\000\012D\003\000\012@\003\000\r\b\001\000\012P\004\000\012L\004\000\012H\004\000\012D\004\000\012@\004\000\015`\002\000\012(\001\000\012$\001\000\012 \001\000\012\028\001\000\012\024\001\000\002\248\001\000\015`\003\000\012<\001\000\0128\001\000\0124\001\000\0120\001\000\012,\001\000\004$\001\000\003\200\001\000\003\196\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\015\028\002\000\015\028\003\000\012P\001\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\n\132\002\000\012P\002\000\012L\002\000\012H\002\000\012D\002\000\012@\002\000\n\132\003\000\012P\003\000\012L\003\000\012H\003\000\012D\003\000\012@\003\000\n\132\004\000\r\b\001\000\012P\004\000\012L\004\000\012H\004\000\012D\004\000\012@\004\000\n\132\005\000\012<\001\000\0128\001\000\0124\001\000\0120\001\000\012,\001\000\n\128\002\000\004$\001\000\003\200\001\000\003\196\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\r\188\002\000\r\184\002\000\r\180\002\000\r\188\003\000\r\184\003\000\r\188\004\000\014\240\002\000\014\236\002\000\014\236\003\000\015|\002\000\r\176\001\000\r\168\001\000\r\164\001\000\012P\001\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\015|\003\000\r\176\002\000\r\168\002\000\r\164\002\000\012P\002\000\012L\002\000\012H\002\000\012D\002\000\012@\002\000\015|\004\000\r\176\003\000\r\168\003\000\r\164\003\000\012P\003\000\012L\003\000\012H\003\000\012D\003\000\012@\003\000\015|\005\000\r\176\004\000\r\168\004\000\r\164\004\000\r\b\001\000\012P\004\000\012L\004\000\012H\004\000\012D\004\000\012@\004\000\015|\006\000\012\212\001\000\015|\007\000\0158\002\000\0158\003\000\015x\002\000\r\172\001\000\r\160\001\000\r\156\001\000\012<\001\000\0128\001\000\0124\001\000\0120\001\000\012,\001\000\004$\001\000\003\200\001\000\003\196\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\015x\003\000\012\212\001\000\015x\004\000\015\132\002\000\r\176\001\000\r\168\001\000\r\164\001\000\012P\001\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\015\132\003\000\r\176\002\000\r\168\002\000\r\164\002\000\012P\002\000\012L\002\000\012H\002\000\012D\002\000\012@\002\000\015\132\004\000\r\176\003\000\r\168\003\000\r\164\003\000\012P\003\000\012L\003\000\012H\003\000\012D\003\000\012@\003\000\015\132\005\000\r\176\004\000\r\168\004\000\r\164\004\000\r\b\001\000\012P\004\000\012L\004\000\012H\004\000\012D\004\000\012@\004\000\015\132\006\000\012\212\001\000\015\132\007\000\015,\002\000\015(\002\000\015(\003\000\015\128\002\000\r\172\001\000\r\160\001\000\r\156\001\000\012<\001\000\0128\001\000\0124\001\000\0120\001\000\012,\001\000\004$\001\000\003\200\001\000\003\196\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\015\128\003\000\012\212\001\000\015\128\004\000\012P\001\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\n\252\004\000\n\244\004\000\n\236\004\000\n\228\004\000\012P\002\000\012L\002\000\012H\002\000\012D\002\000\012@\002\000\n\252\005\000\n\244\005\000\n\236\005\000\n\228\005\000\012P\003\000\012L\003\000\012H\003\000\012D\003\000\012@\003\000\n\252\006\000\n\244\006\000\n\236\006\000\n\228\006\000\r\b\001\000\012P\004\000\012L\004\000\012H\004\000\012D\004\000\012@\004\000\n\252\007\000\n\244\007\000\n\236\007\000\n\228\007\000\n\228\b\000\n\252\b\000\n\252\t\000\b\204\001\000\b\196\001\000\b\192\001\000\b\188\001\000\b\184\001\000\b\180\001\000\b\164\001\000\n\252\n\000\n\244\b\000\n\236\b\000\n\244\t\000\n\236\t\000\b\204\001\000\b\196\001\000\b\192\001\000\b\188\001\000\b\184\001\000\b\180\001\000\b\164\001\000\n\236\n\000\n\244\n\000\n\244\011\000\b\204\001\000\b\196\001\000\b\192\001\000\b\188\001\000\b\184\001\000\b\180\001\000\b\164\001\000\n\244\012\000\012<\001\000\0128\001\000\0124\001\000\0120\001\000\012,\001\000\n\248\004\000\n\240\004\000\n\232\004\000\n\224\004\000\004$\001\000\003\200\001\000\003\196\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\n\224\005\000\n\248\005\000\n\248\006\000\b\204\001\000\b\196\001\000\b\192\001\000\b\188\001\000\b\184\001\000\b\180\001\000\b\164\001\000\n\248\007\000\n\240\005\000\n\232\005\000\n\240\006\000\n\232\006\000\b\204\001\000\b\196\001\000\b\192\001\000\b\188\001\000\b\184\001\000\b\180\001\000\b\164\001\000\n\232\007\000\n\240\007\000\n\240\b\000\b\204\001\000\b\196\001\000\b\192\001\000\b\188\001\000\b\184\001\000\b\180\001\000\b\164\001\000\n\240\t\000\bh\001\000\bd\001\000\b\\\001\000\002\160\006\000\002\160\007\000\002\160\b\000\002\156\003\000\002\156\004\000\bh\001\000\bd\001\000\b\\\001\000\002\156\005\000\002\156\006\000\002\156\007\000\002\148\002\000\002\148\003\000\002\148\004\000\b\136\001\000\b\136\002\000\b\136\003\000\b\136\004\000\002\148\005\000\b(\001\000\bh\001\000\bd\001\000\b\\\001\000\b(\002\000\b0\001\000\b,\001\000\b\204\001\000\b\196\001\000\b\192\001\000\b\188\001\000\b\184\001\000\b\180\001\000\b\164\001\000\b0\002\000\b,\002\000\b,\003\000\bh\001\000\bd\001\000\b\\\001\000\b,\004\000\b0\003\000\b0\004\000\bh\001\000\bd\001\000\b\\\001\000\b0\005\000\002\148\006\000\002\148\007\000\002\148\b\000\b8\001\000\b8\002\000\b4\001\000\b4\002\000\bh\001\000\bd\001\000\b\\\001\000\b4\003\000\b\132\001\000\002\152\002\000\002\152\003\000\002\152\004\000\001\220\001\000\001\224\001\000\001\208\001\000\001\224\002\000\001\224\003\000\001\204\001\000\002\152\005\000\004t\001\000\002\012\001\000\b\232\001\000\b\236\001\000\004\244\001\000\004\240\001\000\004\244\002\000\004\240\002\000\004\244\003\000\004\240\003\000\012\252\001\000\012\248\001\000\011\168\001\000\011\168\002\000\011\168\003\000\000P\001\000\000L\001\000\000H\001\000\004\244\004\000\004\240\004\000\004\244\005\000\004\240\005\000\004\244\006\000\004\240\006\000\004\244\007\000\004\244\b\000\011\164\001\000\000P\001\000\000L\001\000\000H\001\000\002\012\002\000\002\012\003\000\005\000\001\000\004\252\001\000\005\000\002\000\004\248\001\000\rH\001\000\002\000\001\000\rH\002\000\002\000\002\000\000\140\001\000\000\128\001\000\000t\001\000\rH\003\000\002\000\003\000\rP\001\000\rL\001\000\002\b\001\000\002\004\001\000\rP\002\000\rL\002\000\002\b\002\000\002\004\002\000\rP\003\000\002\b\003\000\rP\004\000\002\b\004\000\000\140\001\000\000\128\001\000\000t\001\000\rP\005\000\002\b\005\000\rL\003\000\002\004\003\000\000\140\001\000\000\128\001\000\000t\001\000\rL\004\000\002\004\004\000\004t\002\000\rD\001\000\001\252\001\000\000\140\001\000\000\128\001\000\000t\001\000\rD\002\000\001\252\002\000\004\132\001\000\004\128\001\000\004|\001\000\004x\001\000\012\244\001\000\0020\001\000\002,\001\000\000\164\001\000\000\160\001\000\000\144\001\000\000\132\001\000\000x\001\000\r\132\001\000\r\128\001\000\r|\001\000\012\244\002\000\000\160\002\000\000\152\001\000\r\132\002\000\r\128\002\000\r|\002\000\012\244\003\000\000\160\003\000\000\152\002\000\r\132\003\000\r\128\003\000\r|\003\000\012\244\004\000\000\160\004\000\r\132\004\000\r\128\004\000\r|\004\000\012\244\005\000\011\224\001\000\004\212\001\000\004\208\001\000\000\160\005\000\012\244\006\000\000\160\006\000\r\132\005\000\r\128\005\000\r|\005\000\r\132\006\000\000\156\001\000\r\132\007\000\r\132\b\000\011\224\001\000\004\212\001\000\004\208\001\000\r\128\006\000\000\152\001\000\r\128\007\000\000\152\002\000\r\128\b\000\r\128\t\000\011\224\001\000\004\212\001\000\004\208\001\000\r|\006\000\002\028\001\000\012\252\001\000\012\248\001\000\004\132\002\000\004|\002\000\004\132\003\000\004|\003\000\004|\004\000\004|\005\000\004|\006\000\000\140\001\000\000\128\001\000\000t\001\000\rD\001\000\004\132\004\000\001\252\001\000\000\140\001\000\000\128\001\000\000t\001\000\004x\002\000\004x\003\000\004x\004\000\000\140\001\000\000\128\001\000\000t\001\000\rD\001\000\004\128\002\000\001\252\001\000\000\140\001\000\000\128\001\000\000t\001\000\002\152\006\000\002\152\007\000\002\152\b\000\002\152\t\000\001\228\001\000\006|\002\000\006|\003\000\011\212\001\000\006|\004\000\006|\005\000\006|\006\000\n\156\002\000\005<\005\000\005<\006\000\0058\003\000\0058\004\000\0058\005\000\005@\002\000\006\200\002\000\012P\001\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\003\208\003\000\012P\002\000\012L\002\000\012H\002\000\012D\002\000\012@\002\000\003\208\004\000\012P\003\000\012L\003\000\012H\003\000\012D\003\000\012@\003\000\003\208\005\000\r\b\001\000\012P\004\000\012L\004\000\012H\004\000\012D\004\000\012@\004\000\003\208\006\000\012<\001\000\0128\001\000\0124\001\000\0120\001\000\012,\001\000\004$\001\000\003\204\003\000\003\200\001\000\003\196\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\004(\002\000\015\140\002\000\r\176\001\000\r\168\001\000\r\164\001\000\012P\001\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\015\140\003\000\r\176\002\000\r\168\002\000\r\164\002\000\012P\002\000\012L\002\000\012H\002\000\012D\002\000\012@\002\000\015\140\004\000\r\176\003\000\r\168\003\000\r\164\003\000\012P\003\000\012L\003\000\012H\003\000\012D\003\000\012@\003\000\015\140\005\000\r\176\004\000\r\168\004\000\r\164\004\000\r\b\001\000\012P\004\000\012L\004\000\012H\004\000\012D\004\000\012@\004\000\015\140\006\000\012\212\001\000\015\140\007\000\015h\002\000\015d\002\000\015d\003\000\015\136\002\000\r\172\001\000\r\160\001\000\r\156\001\000\012<\001\000\0128\001\000\0124\001\000\0120\001\000\012,\001\000\004$\001\000\003\200\001\000\003\196\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\015\136\003\000\012\212\001\000\015\136\004\000\015\012\001\000\015\b\001\000\015\004\001\000\014\248\001\000\014\244\001\000\014\228\002\000\014\188\001\000\014\184\001\000\014\180\001\000\014\176\001\000\014\172\001\000\014\168\001\000\014\164\001\000\014\160\001\000\014\156\001\000\014\208\002\000\014\204\002\000\014\208\003\000\014\204\003\000\014\208\004\000\014\204\004\000\014\208\005\000\014\204\005\000\bh\001\000\bd\001\000\b\\\001\000\014\204\006\000\014\208\006\000\014\208\007\000\b\204\001\000\b\196\001\000\b\192\001\000\b\188\001\000\b\184\001\000\b\180\001\000\b\164\001\000\014\208\b\000\014\152\002\000\014\148\002\000\014\144\002\000\014\144\003\000\014\152\003\000\014\148\003\000\014\148\004\000\014\152\004\000\014\152\005\000\002\164\004\000\002\164\005\000\r\b\001\000\002\164\006\000\0040\002\000\002\176\004\000\002\172\004\000\002\176\005\000\002\172\005\000\012P\001\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\002\176\006\000\012P\002\000\012L\002\000\012H\002\000\012D\002\000\012@\002\000\002\176\007\000\012P\003\000\012L\003\000\012H\003\000\012D\003\000\012@\003\000\002\176\b\000\r\b\001\000\012P\004\000\012L\004\000\012H\004\000\012D\004\000\012@\004\000\002\176\t\000\012<\001\000\0128\001\000\0124\001\000\0120\001\000\012,\001\000\004$\001\000\003\200\001\000\003\196\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\002\172\006\000\t\168\001\000\t\164\001\000\t\168\002\000\t\168\003\000\t\168\004\000\t\168\005\000\bh\001\000\bd\001\000\b\\\001\000\t\168\006\000\t\164\002\000\t\164\003\000\t\164\004\000\bh\001\000\bd\001\000\b\\\001\000\t\164\005\000\019$\001\000\019 \001\000\b\208\001\000\b\208\002\000\b\208\003\000\b\208\004\000\b\208\005\000\n\140\001\000\n\140\002\000\b\204\001\000\b\196\001\000\b\192\001\000\b\188\001\000\b\184\001\000\b\180\001\000\b\164\001\000\b\208\006\000\b\208\007\000\019$\002\000\019 \002\000\019$\003\000\019 \003\000\019$\004\000\019$\005\000\019$\006\000\019$\007\000\006\252\001\000\006\252\002\000\006\252\003\000\006\252\004\000\006\252\005\000\006\252\006\000\019$\b\000\019 \004\000\019 \005\000\019 \006\000\004\192\001\000\004\192\002\000\011\152\001\000\011\148\001\000\012\152\001\000\011\152\002\000\011\148\002\000\011H\001\000\011D\001\000\011<\001\000\0118\001\000\005\164\001\000\005\160\001\000\005\156\001\000\005\152\001\000\011\152\003\000\011\152\004\000\002|\001\000\002|\002\000\004\236\001\000\004\236\002\000\004\236\003\000\011\224\001\000\004\236\004\000\004\212\001\000\004\208\001\000\004\176\001\000\004\172\001\000\004\176\002\000\011\176\001\000\011\176\002\000\011\176\003\000\011\176\004\000\011\176\005\000\012\252\001\000\012\248\001\000\011\160\001\000\011\160\002\000\011\160\003\000\002\028\001\000\011\176\006\000\011\176\007\000\011\176\b\000\tP\001\000\tL\001\000\tP\002\000\011\176\t\000\011\176\n\000\011\156\001\000\002\028\001\000\016\176\001\000\r\224\001\000\016\176\002\000\r\224\002\000\016\176\003\000\r\224\003\000\016\176\004\000\r\224\004\000\016\176\005\000\001\240\001\000\001\208\001\000\b\016\001\000\001\236\001\000\001\232\001\000\b\016\002\000\001\236\002\000\001\236\003\000\016\176\006\000\016\176\007\000\016\176\b\000\r\224\005\000\r\224\006\000\r\224\007\000\011\144\001\000\011\140\001\000\011\140\002\000\011\144\002\000\002\028\001\000\0190\001\000\001|\001\000\001|\002\000\001|\003\000\001|\004\000\020H\001\000\001|\005\000\002\132\001\000\r<\001\000\r@\001\000\002\132\002\000\002\132\003\000\r@\002\000\r@\003\000\001|\006\000\001|\007\000\001|\b\000\001H\001\000\001H\002\000\001\028\001\000\002\028\001\000\001\028\002\000\001\028\003\000\001H\003\000\001(\001\000\001(\002\000\t\000\001\000\b\248\001\000\t\000\002\000\b\252\001\000\b\244\001\000\b\252\002\000\001(\003\000\001(\004\000\001(\005\000\002\028\001\000\001(\006\000\001(\007\000\001,\001\000\001,\002\000\011\204\001\000\011\196\001\000\011\204\002\000\011\200\001\000\011\192\001\000\011\200\002\000\001,\003\000\001,\004\000\001,\005\000\001,\006\000\001,\007\000\001$\001\000\001$\002\000\001T\001\000\001P\001\000\001T\002\000\001P\002\000\001T\003\000\001T\004\000\b\016\001\000\001T\005\000\001T\006\000\001@\001\000\r0\001\000\001@\002\000\001@\003\000\001@\004\000\r0\002\000\r0\003\000\002\028\001\000\r,\001\000\002\028\001\000\001D\001\000\001<\001\000\001T\007\000\001L\001\000\001L\002\000\001P\003\000\b\016\001\000\001P\004\000\001P\005\000\001P\006\000\001L\001\000\001L\001\000\001$\003\000\001$\004\000\0010\001\000\0010\002\000\002\028\001\000\001\248\001\000\001\248\002\000\002\028\001\000\001\248\003\000\0010\003\000\0010\004\000\001H\004\000\001H\005\000\0014\001\000\0014\002\000\0018\001\000\007H\001\000\007H\002\000\001|\t\000\001L\001\000\001|\n\000\006\244\001\000\006\244\002\000\006\244\003\000\006\244\004\000\006\244\005\000\006\244\006\000\006\244\007\000\001L\001\000\006\244\b\000\006\244\t\000\001|\011\000\0190\002\000\0190\003\000\0190\004\000\0190\005\000\0190\006\000\020\012\001\000\015\212\001\000\015\164\001\000\015\160\001\000\015\152\001\000\005\132\001\000\005x\001\000\005t\001\000\005p\001\000\001\240\001\000\001\208\001\000\000\248\001\000\001h\001\000\001h\002\000\001h\003\000\000\224\001\000\020,\001\000\020$\001\000\020,\002\000\020$\002\000\b\224\001\000\020,\003\000\020$\003\000\020,\004\000\020$\004\000\020$\005\000\020$\006\000\020,\005\000\020,\006\000\020,\007\000\000\224\002\000\000\224\003\000\020(\001\000\020 \001\000\020\028\001\000\020T\001\000\020L\001\000\020T\002\000\020P\001\000\b\224\001\000\020P\002\000\020\028\002\000\020\028\003\000\020\028\004\000\020\028\005\000\002\028\001\000\020(\002\000\020 \002\000\020(\003\000\020 \003\000\020 \004\000\020 \005\000\020(\004\000\020(\005\000\020(\006\000\000\228\001\000\007\192\001\000\007\184\001\000\007\176\001\000\007\192\002\000\007\184\002\000\007\176\002\000\011\184\001\000\007\192\003\000\007\184\003\000\007\176\003\000\007\192\004\000\007\184\004\000\007\176\004\000\007\192\005\000\007\184\005\000\007\192\006\000\007\192\007\000\007\192\b\000\007\192\t\000\002\028\001\000\007\192\n\000\007\192\011\000\007\184\006\000\007\184\007\000\007\184\b\000\007\176\005\000\000\228\002\000\000\228\003\000\007\188\001\000\007\180\001\000\007\172\001\000\007\168\001\000\020`\001\000\020X\001\000\020`\002\000\020\\\001\000\011\184\001\000\020\\\002\000\007\168\002\000\007\168\003\000\007\168\004\000\007\168\005\000\007\188\002\000\007\180\002\000\007\172\002\000\007\188\003\000\007\180\003\000\007\172\003\000\007\188\004\000\007\180\004\000\007\188\005\000\007\188\006\000\007\188\007\000\007\188\b\000\002\028\001\000\007\188\t\000\007\188\n\000\007\180\005\000\007\180\006\000\007\180\007\000\007\172\004\000\000\236\001\000\000\236\002\000\000\236\003\000\000\236\004\000\000\220\001\000\000\216\001\000\000\220\002\000\000\220\003\000\001d\001\000\001X\001\000\006\136\001\000\006\132\001\000\000\200\001\000\000\196\001\000\006\136\002\000\006\136\003\000\006\136\004\000\006\136\005\000\006\136\006\000\006\136\007\000\000\200\002\000\000\196\002\000\000\200\003\000\000\200\004\000\b\016\001\000\000\200\005\000\000\200\006\000\001`\001\000\r0\001\000\001`\002\000\001`\003\000\001`\004\000\000\188\001\000\000\188\002\000\001\b\001\000\001\004\001\000\001\004\002\000\006\140\001\000\000\192\001\000\000\192\002\000\000\212\001\000\000\208\001\000\000\184\001\000\012\228\001\000\000\208\002\000\001\\\001\000\000\204\001\000\000\192\003\000\000\204\002\000\006\140\002\000\001\004\003\000\000\204\001\000\001\b\002\000\000\188\003\000\000\204\001\000\000\200\007\000\000\196\003\000\b\016\001\000\000\196\004\000\000\196\005\000\000\204\001\000\000\196\006\000\006\132\002\000\006\132\003\000\006\132\004\000\006\132\005\000\001d\002\000\001X\002\000\000\204\001\000\001X\003\000\001d\003\000\019\204\001\000\019\200\001\000\007\196\001\000\001t\001\000\001t\002\000\001t\003\000\001t\004\000\002<\001\000\0028\001\000\0024\001\000\001@\001\000\r\152\001\000\r,\001\000\002\028\001\000\001x\001\000\001x\002\000\001p\001\000\001p\002\000\001p\003\000\b \001\000\b\000\001\000\007\248\001\000\007\208\001\000\007\200\001\000\000\148\001\000\b\000\002\000\007\248\002\000\007\208\002\000\007\200\002\000\000\148\002\000\019\204\001\000\019\200\001\000\007\200\003\000\002x\001\000\001D\001\000\001p\004\000\001l\001\000\001L\001\000\001x\003\000\001t\005\000\001d\004\000\001d\005\000\000\220\004\000\000\204\001\000\np\001\000\np\002\000\000\220\005\000\000\220\006\000\000\216\002\000\000\216\003\000\000\204\001\000\000\216\004\000\000\216\005\000\000\232\001\000\000\232\002\000\000\232\003\000\000\232\004\000\001h\004\000\001h\005\000\000\240\001\000\000\240\002\000\000\244\001\000\007P\001\000\007P\002\000\000\248\002\000\000\204\001\000\000\252\001\000\000\252\002\000\000\252\003\000\000\252\004\000\000\204\001\000\001\000\001\000\001\000\002\000\0190\007\000\0190\b\000\006\228\001\000\006\228\002\000\006\228\003\000\006\228\004\000\006\228\005\000\006\228\006\000\006\228\007\000\006\228\b\000\0190\t\000\019\012\001\000\007@\001\000\006|\001\000\019\028\001\000\016\172\001\000\019\b\001\000\019,\001\000\019(\001\000\007@\002\000\018\248\001\000\006\128\001\000\019\004\001\000\018\252\001\000\018\252\002\000\0198\001\000\0198\002\000\0198\003\000\0198\004\000\bh\001\000\bd\001\000\b\\\001\000\0198\005\000\019\016\001\000\007\020\001\000\007\020\002\000\007\020\003\000\007\020\004\000\007\020\005\000\007\020\006\000\012\196\001\000\007\020\007\000\007\020\b\000\007\020\t\000\nh\001\000\019\016\002\000\019\000\001\000\0194\001\000\011\136\001\000\018\244\001\000\018\244\002\000\018\244\003\000\000\176\001\000\018\240\001\000\018\248\001\000\006\128\001\000\003\188\001\000\002|\003\000\002|\004\000\004\192\003\000\004\192\004\000\007<\002\000\007<\003\000\007<\004\000\0078\002\000\011\172\003\000\011\172\004\000\004\156\n\000\019\024\006\000\019\024\007\000\019\024\b\000\004\136\001\000\002p\001\000\004\136\002\000\002p\002\000\002p\003\000\002p\004\000\002p\005\000\004\136\003\000\004\136\004\000\019\024\t\000\012\b\001\000\012\004\001\000\019\024\n\000\012\004\002\000\012\b\002\000\011\244\001\000\011\252\001\000\011\248\001\000\012\000\001\000\004\140\001\000\002t\001\000\002t\002\000\002t\003\000\002t\004\000\004\140\002\000\004\140\003\000\019\020\004\000\004\152\004\000\019\204\001\000\004\152\005\000\004\152\006\000\004\152\007\000\012\196\001\000\004\152\b\000\004\152\t\000\019\020\005\000\019\020\006\000\019\020\007\000\019\020\b\000\012\b\001\000\012\004\001\000\019\020\t\000\bP\003\000\bP\004\000\b\156\005\000\bh\001\000\bd\001\000\b\\\001\000\015\164\007\000\b\204\001\000\b\196\001\000\b\192\001\000\b\188\001\000\b\184\001\000\b\180\001\000\b\164\001\000\015\164\b\000\012\156\001\000\005\188\004\000\005\180\001\000\005\176\001\000\005\172\001\000\005\168\001\000\012\156\002\000\005\188\005\000\005\180\002\000\005\176\002\000\005\172\002\000\005\168\002\000\012\160\004\000\012\152\001\000\011H\001\000\011D\001\000\011<\001\000\0118\001\000\005\184\004\000\005\164\001\000\005\160\001\000\005\156\001\000\005\152\001\000\012\156\001\000\005\204\b\000\005\180\001\000\005\176\001\000\005\172\001\000\005\168\001\000\012\156\002\000\005\204\t\000\005\180\002\000\005\176\002\000\005\172\002\000\005\168\002\000\012\164\b\000\012\152\001\000\011H\001\000\011D\001\000\011<\001\000\0118\001\000\005\200\b\000\005\164\001\000\005\160\001\000\005\156\001\000\005\152\001\000\012\160\002\000\005\196\002\000\005\192\002\000\005\188\002\000\005\184\002\000\012\152\001\000\011H\001\000\011D\001\000\011<\001\000\0118\001\000\005\164\001\000\005\160\001\000\005\156\001\000\005\152\001\000\001\020\002\000\001\016\002\000\001\016\003\000\001\020\003\000\002\028\001\000\001\020\004\000\001\020\005\000\014\212\004\000\014\212\005\000\014\212\006\000\015\012\001\000\015\b\001\000\015\004\001\000\014\248\001\000\014\244\001\000\014\188\001\000\014\184\001\000\014\180\001\000\014\176\001\000\014\172\001\000\014\168\001\000\014\164\001\000\014\160\001\000\014\156\001\000\002\244\002\000\012p\004\000\012d\001\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\015\012\001\000\015\b\001\000\015\004\001\000\014\248\001\000\014\244\001\000\014\188\001\000\014\184\001\000\014\180\001\000\014\176\001\000\014\172\001\000\014\168\001\000\014\164\001\000\014\160\001\000\014\156\001\000\012p\005\000\012d\002\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012l\004\000\012P\001\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012l\005\000\012P\002\000\012L\002\000\012H\002\000\012D\002\000\012@\002\000\012l\006\000\012P\003\000\012L\003\000\012H\003\000\012D\003\000\012@\003\000\r\b\001\000\012l\007\000\012P\004\000\012L\004\000\012H\004\000\012D\004\000\012@\004\000\012h\004\000\012<\001\000\0128\001\000\0124\001\000\0120\001\000\012,\001\000\004$\001\000\003\200\001\000\003\196\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\012\132\007\000\012d\001\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\015\012\001\000\015\b\001\000\015\004\001\000\014\248\001\000\014\244\001\000\014\188\001\000\014\184\001\000\014\180\001\000\014\176\001\000\014\172\001\000\014\168\001\000\014\164\001\000\014\160\001\000\014\156\001\000\012\132\b\000\012d\002\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012\128\007\000\012P\001\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012\128\b\000\012P\002\000\012L\002\000\012H\002\000\012D\002\000\012@\002\000\012\128\t\000\012P\003\000\012L\003\000\012H\003\000\012D\003\000\012@\003\000\r\b\001\000\012\128\n\000\012P\004\000\012L\004\000\012H\004\000\012D\004\000\012@\004\000\012|\007\000\012<\001\000\0128\001\000\0124\001\000\0120\001\000\012,\001\000\004$\001\000\003\200\001\000\003\196\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\012x\002\000\012t\002\000\012p\002\000\012l\002\000\012h\002\000\002\168\004\000\002\168\005\000\r\b\001\000\002\168\006\000\004,\002\000\002h\003\000\002h\004\000\019\204\001\000\019\200\001\000\007\156\001\000\007\148\001\000\007\140\001\000\007\156\002\000\007\148\002\000\007\140\002\000\007\156\003\000\007\148\003\000\007\140\003\000\007\156\004\000\007\148\004\000\007\140\004\000\007\148\005\000\007\140\005\000\007\148\006\000\007\140\006\000\007\164\001\000\007\140\007\000\007\160\001\000\007\152\001\000\007\144\001\000\000\140\001\000\000\128\001\000\000t\001\000\007\152\002\000\007\144\002\000\007\144\003\000\t\160\002\000\t\156\002\000\t\156\003\000\0188\002\000\0184\002\000\0180\002\000\018,\002\000\018(\002\000\018$\002\000\018 \002\000\018\028\002\000\017\000\002\000\016\252\002\000\012\252\001\000\012\248\001\000\0188\003\000\0184\003\000\0180\003\000\018,\003\000\018(\003\000\018$\003\000\018 \003\000\018\028\003\000\017\000\003\000\016\252\003\000\0188\004\000\0184\004\000\0180\004\000\018,\004\000\018(\004\000\018$\004\000\018 \004\000\018\028\004\000\017\000\004\000\016\252\004\000\002\028\001\000\0188\005\000\0184\005\000\0180\005\000\018,\005\000\018(\005\000\018$\005\000\018 \005\000\018\028\005\000\017\000\005\000\016\252\005\000\018(\006\000\018$\006\000\018 \006\000\018\028\006\000\016\252\006\000\018X\001\000\018T\001\000\018P\001\000\018L\001\000\018H\001\000\018D\001\000\018@\001\000\018<\001\000\018 \007\000\018\028\007\000\017\b\001\000\017\004\001\000\018X\002\000\018T\002\000\018P\002\000\018L\002\000\018 \b\000\017\b\002\000\016\252\007\000\018\152\001\000\018\148\001\000\018\144\001\000\018\140\001\000\018\136\001\000\018\132\001\000\018\128\001\000\018|\001\000\018x\001\000\018t\001\000\018p\001\000\018l\001\000\018h\001\000\018d\001\000\018`\001\000\018\\\001\000\018(\007\000\018$\007\000\017\024\001\000\017\020\001\000\017\016\001\000\017\012\001\000\018\152\002\000\018\148\002\000\018\144\002\000\018\140\002\000\018\136\002\000\018\132\002\000\018\128\002\000\018|\002\000\018(\b\000\018$\b\000\017\024\002\000\017\020\002\000\018\152\003\000\018\148\003\000\018\144\003\000\018\140\003\000\018(\t\000\017\024\003\000\0188\006\000\0184\006\000\0180\006\000\018,\006\000\017\000\006\000\0188\007\000\0184\007\000\0180\007\000\018,\007\000\017\000\007\000\018X\001\000\018T\001\000\018P\001\000\018L\001\000\018H\001\000\018D\001\000\018@\001\000\018<\001\000\0180\b\000\018,\b\000\017\b\001\000\017\004\001\000\018X\002\000\018T\002\000\018P\002\000\018L\002\000\0180\t\000\017\b\002\000\017\000\b\000\018\152\001\000\018\148\001\000\018\144\001\000\018\140\001\000\018\136\001\000\018\132\001\000\018\128\001\000\018|\001\000\018x\001\000\018t\001\000\018p\001\000\018l\001\000\018h\001\000\018d\001\000\018`\001\000\018\\\001\000\0188\b\000\0184\b\000\017\024\001\000\017\020\001\000\017\016\001\000\017\012\001\000\018\152\002\000\018\148\002\000\018\144\002\000\018\140\002\000\018\136\002\000\018\132\002\000\018\128\002\000\018|\002\000\0188\t\000\0184\t\000\017\024\002\000\017\020\002\000\018\152\003\000\018\148\003\000\018\144\003\000\018\140\003\000\0188\n\000\017\024\003\000\002<\001\000\0028\001\000\0024\001\000\001\204\001\000\t\128\002\000\t\128\003\000\t\128\004\000\t\144\002\000\t\144\003\000\t\144\004\000\tp\002\000\004\136\001\000\002\016\001\000\004\136\002\000\011\240\001\000\002\020\001\000\004\136\001\000\011\240\002\000\011\232\001\000\011\236\001\000\tX\002\000\002\028\001\000\t`\002\000\004\140\001\000\t|\001\000\t|\002\000\t|\003\000\t\140\001\000\t\140\002\000\t\140\003\000\tl\001\000\019\172\002\000\t\152\001\000\t\148\001\000\t\136\001\000\t\132\001\000\tx\001\000\tt\001\000\th\001\000\td\001\000\tT\001\000\002\028\001\000\t\152\002\000\t\148\002\000\t\136\002\000\t\132\002\000\tx\002\000\tt\002\000\th\002\000\td\002\000\t\152\003\000\t\136\003\000\tx\003\000\th\003\000\t\136\004\000\t\136\005\000\t\136\006\000\t\152\004\000\t\152\005\000\t\152\006\000\tx\004\000\th\004\000\t\132\003\000\t\132\004\000\t\132\005\000\t\148\003\000\t\148\004\000\t\148\005\000\tt\003\000\td\003\000\t\\\001\000\004\148\b\000\004\148\t\000\012\196\001\000\004\148\n\000\004\148\011\000\014\b\006\000\014\b\007\000\014\b\b\000\014\b\t\000\012\020\001\000\014\b\n\000\012\020\002\000\012\012\001\000\012\016\001\000\014\004\004\000\004\152\004\000\004\144\004\000\019\204\001\000\004\152\005\000\004\144\005\000\004\152\006\000\004\144\006\000\004\144\007\000\004\144\b\000\012\196\001\000\004\144\t\000\004\144\n\000\014\004\005\000\014\004\006\000\014\004\007\000\014\004\b\000\012\020\001\000\014\004\t\000\007,\001\000\t\176\001\000\t\172\001\000\t\176\002\000\t\176\003\000\t\176\004\000\t\176\005\000\b \001\000\007\208\001\000\t\176\006\000\t\172\002\000\t\172\003\000\t\172\004\000\b \001\000\007\208\001\000\t\172\005\000\014\028\001\000\014\020\001\000\014\016\001\000\b\212\001\000\b\208\001\000\b\140\001\000\b\212\002\000\b\208\002\000\b\212\003\000\b\208\003\000\b\212\004\000\b\208\004\000\b\212\005\000\b\208\005\000\b\212\006\000\b\212\007\000\b\204\001\000\b\196\001\000\b\192\001\000\b\188\001\000\b\184\001\000\b\180\001\000\b\164\001\000\b\212\b\000\014\028\002\000\014\020\002\000\014\016\002\000\b\140\002\000\014\028\003\000\014\020\003\000\014\016\003\000\b\140\003\000\b\140\004\000\bt\001\000\b\140\005\000\b\140\006\000\b \001\000\007\208\001\000\b\140\007\000\014\028\004\000\014\028\005\000\014\028\006\000\014\028\007\000\b\204\001\000\b\196\001\000\b\192\001\000\b\188\001\000\b\184\001\000\b\180\001\000\b\164\001\000\014\028\b\000\014\028\t\000\007\004\001\000\007\004\002\000\007\004\003\000\007\004\004\000\b\204\001\000\b\196\001\000\b\192\001\000\b\188\001\000\b\184\001\000\b\180\001\000\b\164\001\000\007\004\005\000\007\004\006\000\007\004\007\000\007\004\b\000\014\028\n\000\b\128\001\000\b\128\002\000\000`\001\000\000`\002\000\b\128\003\000\b\128\004\000\014\020\004\000\014\016\004\000\014\020\005\000\014\020\006\000\b\016\001\000\n\172\001\000\n\172\002\000\014\020\007\000\014\020\b\000\b<\001\000\b\204\001\000\b\196\001\000\b\192\001\000\b\188\001\000\b\184\001\000\b\180\001\000\b\164\001\000\b<\002\000\b<\003\000\014\016\005\000\014\016\006\000\b@\001\000\bH\001\000\bD\001\000\b\204\001\000\b\196\001\000\b\192\001\000\b\188\001\000\b\184\001\000\b\180\001\000\b\164\001\000\bH\002\000\bD\002\000\bH\003\000\b@\002\000\bL\001\000\bL\002\000\b|\001\000\r\224\001\000\r\224\002\000\r\224\003\000\r\224\004\000\014,\001\000\001|\001\000\014,\002\000\014,\003\000\014,\004\000\014,\005\000\014,\006\000\014,\007\000\014,\b\000\014,\t\000\006\236\001\000\006\236\002\000\006\236\003\000\006\236\004\000\006\236\005\000\006\236\006\000\006\236\007\000\006\236\b\000\006\236\t\000\014,\n\000\r\244\001\000\0070\001\000\014\012\001\000\r\248\001\000\014(\001\000\014$\001\000\014 \001\000\014\024\001\000\0070\002\000\r\240\001\000\r\232\001\000\r\232\002\000\0144\001\000\0144\002\000\0144\003\000\0144\004\000\b\204\001\000\b\196\001\000\b\192\001\000\b\188\001\000\b\184\001\000\b\180\001\000\b\164\001\000\0144\005\000\0144\006\000\r\252\001\000\r\252\002\000\014\000\001\000\007\028\001\000\007\028\002\000\007\028\003\000\007\028\004\000\007\028\005\000\007\028\006\000\007\028\007\000\012\196\001\000\007\028\b\000\007\028\t\000\007\028\n\000\014\000\002\000\r\236\001\000\0140\001\000\007,\002\000\r\228\002\000\b\204\001\000\b\196\001\000\b\192\001\000\b\188\001\000\b\184\001\000\b\180\001\000\b\164\001\000\0020\005\000\0020\006\000\017\184\004\000\017\180\004\000\017\176\004\000\017\172\004\000\017\168\004\000\017\164\004\000\017\160\004\000\017\156\004\000\016\224\004\000\016\220\004\000\012\252\001\000\012\248\001\000\017\184\005\000\017\180\005\000\017\176\005\000\017\172\005\000\017\168\005\000\017\164\005\000\017\160\005\000\017\156\005\000\016\224\005\000\016\220\005\000\017\184\006\000\017\180\006\000\017\176\006\000\017\172\006\000\017\168\006\000\017\164\006\000\017\160\006\000\017\156\006\000\016\224\006\000\016\220\006\000\002\028\001\000\017\184\007\000\017\180\007\000\017\176\007\000\017\172\007\000\017\168\007\000\017\164\007\000\017\160\007\000\017\156\007\000\016\224\007\000\016\220\007\000\017\168\b\000\017\164\b\000\017\160\b\000\017\156\b\000\016\220\b\000\018X\001\000\018T\001\000\018P\001\000\018L\001\000\018H\001\000\018D\001\000\018@\001\000\018<\001\000\017\160\t\000\017\156\t\000\017\b\001\000\017\004\001\000\018X\002\000\018T\002\000\018P\002\000\018L\002\000\017\160\n\000\017\b\002\000\016\220\t\000\018\152\001\000\018\148\001\000\018\144\001\000\018\140\001\000\018\136\001\000\018\132\001\000\018\128\001\000\018|\001\000\018x\001\000\018t\001\000\018p\001\000\018l\001\000\018h\001\000\018d\001\000\018`\001\000\018\\\001\000\017\168\t\000\017\164\t\000\017\024\001\000\017\020\001\000\017\016\001\000\017\012\001\000\018\152\002\000\018\148\002\000\018\144\002\000\018\140\002\000\018\136\002\000\018\132\002\000\018\128\002\000\018|\002\000\017\168\n\000\017\164\n\000\017\024\002\000\017\020\002\000\018\152\003\000\018\148\003\000\018\144\003\000\018\140\003\000\017\168\011\000\017\024\003\000\017\184\b\000\017\180\b\000\017\176\b\000\017\172\b\000\016\224\b\000\017\184\t\000\017\180\t\000\017\176\t\000\017\172\t\000\016\224\t\000\018X\001\000\018T\001\000\018P\001\000\018L\001\000\018H\001\000\018D\001\000\018@\001\000\018<\001\000\017\176\n\000\017\172\n\000\017\b\001\000\017\004\001\000\018X\002\000\018T\002\000\018P\002\000\018L\002\000\017\176\011\000\017\b\002\000\016\224\n\000\018\152\001\000\018\148\001\000\018\144\001\000\018\140\001\000\018\136\001\000\018\132\001\000\018\128\001\000\018|\001\000\018x\001\000\018t\001\000\018p\001\000\018l\001\000\018h\001\000\018d\001\000\018`\001\000\018\\\001\000\017\184\n\000\017\180\n\000\017\024\001\000\017\020\001\000\017\016\001\000\017\012\001\000\018\152\002\000\018\148\002\000\018\144\002\000\018\140\002\000\018\136\002\000\018\132\002\000\018\128\002\000\018|\002\000\017\184\011\000\017\180\011\000\017\024\002\000\017\020\002\000\018\152\003\000\018\148\003\000\018\144\003\000\018\140\003\000\017\184\012\000\017\024\003\000\017\216\003\000\017\212\003\000\017\208\003\000\017\204\003\000\017\200\003\000\017\196\003\000\017\192\003\000\017\188\003\000\016\232\003\000\016\228\003\000\017\200\004\000\017\196\004\000\017\192\004\000\017\188\004\000\016\228\004\000\018X\001\000\018T\001\000\018P\001\000\018L\001\000\018H\001\000\018D\001\000\018@\001\000\018<\001\000\017\192\005\000\017\188\005\000\017\b\001\000\017\004\001\000\018X\002\000\018T\002\000\018P\002\000\018L\002\000\017\192\006\000\017\b\002\000\016\228\005\000\018\152\001\000\018\148\001\000\018\144\001\000\018\140\001\000\018\136\001\000\018\132\001\000\018\128\001\000\018|\001\000\018x\001\000\018t\001\000\018p\001\000\018l\001\000\018h\001\000\018d\001\000\018`\001\000\018\\\001\000\017\200\005\000\017\196\005\000\017\024\001\000\017\020\001\000\017\016\001\000\017\012\001\000\018\152\002\000\018\148\002\000\018\144\002\000\018\140\002\000\018\136\002\000\018\132\002\000\018\128\002\000\018|\002\000\017\200\006\000\017\196\006\000\017\024\002\000\017\020\002\000\018\152\003\000\018\148\003\000\018\144\003\000\018\140\003\000\017\200\007\000\017\024\003\000\017\216\004\000\017\212\004\000\017\208\004\000\017\204\004\000\016\232\004\000\017\216\005\000\017\212\005\000\017\208\005\000\017\204\005\000\016\232\005\000\018X\001\000\018T\001\000\018P\001\000\018L\001\000\018H\001\000\018D\001\000\018@\001\000\018<\001\000\017\208\006\000\017\204\006\000\017\b\001\000\017\004\001\000\018X\002\000\018T\002\000\018P\002\000\018L\002\000\017\208\007\000\017\b\002\000\016\232\006\000\018\152\001\000\018\148\001\000\018\144\001\000\018\140\001\000\018\136\001\000\018\132\001\000\018\128\001\000\018|\001\000\018x\001\000\018t\001\000\018p\001\000\018l\001\000\018h\001\000\018d\001\000\018`\001\000\018\\\001\000\017\216\006\000\017\212\006\000\017\024\001\000\017\020\001\000\017\016\001\000\017\012\001\000\018\152\002\000\018\148\002\000\018\144\002\000\018\140\002\000\018\136\002\000\018\132\002\000\018\128\002\000\018|\002\000\017\216\007\000\017\212\007\000\017\024\002\000\017\020\002\000\018\152\003\000\018\148\003\000\018\144\003\000\018\140\003\000\017\216\b\000\017\024\003\000\018\232\003\000\018\228\003\000\018\224\003\000\018\220\003\000\018\216\003\000\018\212\003\000\018\208\003\000\018\204\003\000\018\168\003\000\018\164\003\000\018\024\003\000\018\020\003\000\018\016\003\000\018\012\003\000\018\b\003\000\018\004\003\000\018\000\003\000\017\252\003\000\017\248\003\000\017\244\003\000\017\240\003\000\017\236\003\000\017\232\003\000\017\228\003\000\017\224\003\000\017\220\003\000\016\248\003\000\016\244\003\000\016\240\003\000\016\236\003\000\017\248\004\000\017\244\004\000\017\240\004\000\017\236\004\000\017\232\004\000\017\228\004\000\017\224\004\000\017\220\004\000\016\240\004\000\016\236\004\000\0020\001\000\002,\001\000\000\164\001\000\000\160\001\000\000\144\001\000\000\132\001\000\000x\001\000\017\248\005\000\017\244\005\000\017\240\005\000\017\236\005\000\017\232\005\000\017\228\005\000\017\224\005\000\017\220\005\000\016\240\005\000\016\236\005\000\012\252\001\000\012\248\001\000\017\248\006\000\017\244\006\000\017\240\006\000\017\236\006\000\017\232\006\000\017\228\006\000\017\224\006\000\017\220\006\000\016\240\006\000\016\236\006\000\017\248\007\000\017\244\007\000\017\240\007\000\017\236\007\000\017\232\007\000\017\228\007\000\017\224\007\000\017\220\007\000\016\240\007\000\016\236\007\000\002\028\001\000\017\248\b\000\017\244\b\000\017\240\b\000\017\236\b\000\017\232\b\000\017\228\b\000\017\224\b\000\017\220\b\000\016\240\b\000\016\236\b\000\017\232\t\000\017\228\t\000\017\224\t\000\017\220\t\000\016\236\t\000\018X\001\000\018T\001\000\018P\001\000\018L\001\000\018H\001\000\018D\001\000\018@\001\000\018<\001\000\017\224\n\000\017\220\n\000\017\b\001\000\017\004\001\000\018X\002\000\018T\002\000\018P\002\000\018L\002\000\017\224\011\000\017\b\002\000\016\236\n\000\018\152\001\000\018\148\001\000\018\144\001\000\018\140\001\000\018\136\001\000\018\132\001\000\018\128\001\000\018|\001\000\018x\001\000\018t\001\000\018p\001\000\018l\001\000\018h\001\000\018d\001\000\018`\001\000\018\\\001\000\017\232\n\000\017\228\n\000\017\024\001\000\017\020\001\000\017\016\001\000\017\012\001\000\018\152\002\000\018\148\002\000\018\144\002\000\018\140\002\000\018\136\002\000\018\132\002\000\018\128\002\000\018|\002\000\017\232\011\000\017\228\011\000\017\024\002\000\017\020\002\000\018\152\003\000\018\148\003\000\018\144\003\000\018\140\003\000\017\232\012\000\017\024\003\000\017\248\t\000\017\244\t\000\017\240\t\000\017\236\t\000\016\240\t\000\017\248\n\000\017\244\n\000\017\240\n\000\017\236\n\000\016\240\n\000\018X\001\000\018T\001\000\018P\001\000\018L\001\000\018H\001\000\018D\001\000\018@\001\000\018<\001\000\017\240\011\000\017\236\011\000\017\b\001\000\017\004\001\000\018X\002\000\018T\002\000\018P\002\000\018L\002\000\017\240\012\000\017\b\002\000\016\240\011\000\018\152\001\000\018\148\001\000\018\144\001\000\018\140\001\000\018\136\001\000\018\132\001\000\018\128\001\000\018|\001\000\018x\001\000\018t\001\000\018p\001\000\018l\001\000\018h\001\000\018d\001\000\018`\001\000\018\\\001\000\017\248\011\000\017\244\011\000\017\024\001\000\017\020\001\000\017\016\001\000\017\012\001\000\018\152\002\000\018\148\002\000\018\144\002\000\018\140\002\000\018\136\002\000\018\132\002\000\018\128\002\000\018|\002\000\017\248\012\000\017\244\012\000\017\024\002\000\017\020\002\000\018\152\003\000\018\148\003\000\018\144\003\000\018\140\003\000\017\248\r\000\017\024\003\000\018\024\004\000\018\020\004\000\018\016\004\000\018\012\004\000\018\b\004\000\018\004\004\000\018\000\004\000\017\252\004\000\016\248\004\000\016\244\004\000\018\b\005\000\018\004\005\000\018\000\005\000\017\252\005\000\016\244\005\000\018X\001\000\018T\001\000\018P\001\000\018L\001\000\018H\001\000\018D\001\000\018@\001\000\018<\001\000\018\000\006\000\017\252\006\000\017\b\001\000\017\004\001\000\018X\002\000\018T\002\000\018P\002\000\018L\002\000\018\000\007\000\017\b\002\000\016\244\006\000\018\152\001\000\018\148\001\000\018\144\001\000\018\140\001\000\018\136\001\000\018\132\001\000\018\128\001\000\018|\001\000\018x\001\000\018t\001\000\018p\001\000\018l\001\000\018h\001\000\018d\001\000\018`\001\000\018\\\001\000\018\b\006\000\018\004\006\000\017\024\001\000\017\020\001\000\017\016\001\000\017\012\001\000\018\152\002\000\018\148\002\000\018\144\002\000\018\140\002\000\018\136\002\000\018\132\002\000\018\128\002\000\018|\002\000\018\b\007\000\018\004\007\000\017\024\002\000\017\020\002\000\018\152\003\000\018\148\003\000\018\144\003\000\018\140\003\000\018\b\b\000\017\024\003\000\018\024\005\000\018\020\005\000\018\016\005\000\018\012\005\000\016\248\005\000\018\024\006\000\018\020\006\000\018\016\006\000\018\012\006\000\016\248\006\000\018X\001\000\018T\001\000\018P\001\000\018L\001\000\018H\001\000\018D\001\000\018@\001\000\018<\001\000\018\016\007\000\018\012\007\000\017\b\001\000\017\004\001\000\018X\002\000\018T\002\000\018P\002\000\018L\002\000\018\016\b\000\017\b\002\000\016\248\007\000\018\152\001\000\018\148\001\000\018\144\001\000\018\140\001\000\018\136\001\000\018\132\001\000\018\128\001\000\018|\001\000\018x\001\000\018t\001\000\018p\001\000\018l\001\000\018h\001\000\018d\001\000\018`\001\000\018\\\001\000\018\024\007\000\018\020\007\000\017\024\001\000\017\020\001\000\017\016\001\000\017\012\001\000\018\152\002\000\018\148\002\000\018\144\002\000\018\140\002\000\018\136\002\000\018\132\002\000\018\128\002\000\018|\002\000\018\024\b\000\018\020\b\000\017\024\002\000\017\020\002\000\018\152\003\000\018\148\003\000\018\144\003\000\018\140\003\000\018\024\t\000\017\024\003\000\019\152\001\000\019\148\001\000\018\232\004\000\018\228\004\000\018\224\004\000\018\220\004\000\018\216\004\000\018\212\004\000\018\208\004\000\018\204\004\000\018\168\004\000\018\164\004\000\000\140\001\000\000\128\001\000\000t\001\000\019\152\002\000\018\232\005\000\018\228\005\000\018\224\005\000\018\220\005\000\018\216\005\000\018\212\005\000\018\208\005\000\018\204\005\000\018\168\005\000\018\164\005\000\019\152\003\000\018\232\006\000\018\228\006\000\018\224\006\000\018\220\006\000\018\216\006\000\018\212\006\000\018\208\006\000\018\204\006\000\018\168\006\000\018\164\006\000\r`\001\000\r\\\001\000\018\216\007\000\018\212\007\000\018\208\007\000\018\204\007\000\018\164\007\000\018\208\b\000\018\204\b\000\018X\001\000\018T\001\000\018P\001\000\018L\001\000\018H\001\000\018D\001\000\018@\001\000\018<\001\000\017\b\001\000\017\004\001\000\018\208\t\000\018X\002\000\018T\002\000\018P\002\000\018L\002\000\017\b\002\000\018\164\b\000\018\216\b\000\018\212\b\000\018\152\001\000\018\148\001\000\018\144\001\000\018\140\001\000\018\136\001\000\018\132\001\000\018\128\001\000\018|\001\000\018x\001\000\018t\001\000\018p\001\000\018l\001\000\018h\001\000\018d\001\000\018`\001\000\018\\\001\000\017\024\001\000\017\020\001\000\017\016\001\000\017\012\001\000\018\216\t\000\018\212\t\000\018\152\002\000\018\148\002\000\018\144\002\000\018\140\002\000\018\136\002\000\018\132\002\000\018\128\002\000\018|\002\000\017\024\002\000\017\020\002\000\018\216\n\000\018\152\003\000\018\148\003\000\018\144\003\000\018\140\003\000\017\024\003\000\018\232\007\000\018\228\007\000\018\224\007\000\018\220\007\000\018\168\007\000\018\232\b\000\018\228\b\000\018\224\b\000\018\220\b\000\018\168\b\000\018\224\t\000\018\220\t\000\018X\001\000\018T\001\000\018P\001\000\018L\001\000\018H\001\000\018D\001\000\018@\001\000\018<\001\000\017\b\001\000\017\004\001\000\018\224\n\000\018X\002\000\018T\002\000\018P\002\000\018L\002\000\017\b\002\000\018\168\t\000\018\232\t\000\018\228\t\000\018\152\001\000\018\148\001\000\018\144\001\000\018\140\001\000\018\136\001\000\018\132\001\000\018\128\001\000\018|\001\000\018x\001\000\018t\001\000\018p\001\000\018l\001\000\018h\001\000\018d\001\000\018`\001\000\018\\\001\000\017\024\001\000\017\020\001\000\017\016\001\000\017\012\001\000\018\232\n\000\018\228\n\000\018\152\002\000\018\148\002\000\018\144\002\000\018\140\002\000\018\136\002\000\018\132\002\000\018\128\002\000\018|\002\000\017\024\002\000\017\020\002\000\018\232\011\000\018\152\003\000\018\148\003\000\018\144\003\000\018\140\003\000\017\024\003\000\019\152\001\000\019\148\001\000\018\236\003\000\018\200\003\000\018\196\003\000\018\192\003\000\018\188\003\000\018\184\003\000\018\180\003\000\018\176\003\000\018\172\003\000\018\160\003\000\018\156\003\000\000\140\001\000\000\128\001\000\000t\001\000\019\152\002\000\018\236\004\000\018\200\004\000\018\196\004\000\018\192\004\000\018\188\004\000\018\184\004\000\018\180\004\000\018\176\004\000\018\172\004\000\018\160\004\000\018\156\004\000\019\152\003\000\018\236\005\000\018\200\005\000\018\196\005\000\018\192\005\000\018\188\005\000\018\184\005\000\018\180\005\000\018\176\005\000\018\172\005\000\018\160\005\000\018\156\005\000\r`\001\000\r\\\001\000\018\184\006\000\018\180\006\000\018\176\006\000\018\172\006\000\018\156\006\000\018\176\007\000\018\172\007\000\018X\001\000\018T\001\000\018P\001\000\018L\001\000\018H\001\000\018D\001\000\018@\001\000\018<\001\000\017\b\001\000\017\004\001\000\018\176\b\000\018X\002\000\018T\002\000\018P\002\000\018L\002\000\017\b\002\000\018\156\007\000\018\184\007\000\018\180\007\000\018\152\001\000\018\148\001\000\018\144\001\000\018\140\001\000\018\136\001\000\018\132\001\000\018\128\001\000\018|\001\000\018x\001\000\018t\001\000\018p\001\000\018l\001\000\018h\001\000\018d\001\000\018`\001\000\018\\\001\000\017\024\001\000\017\020\001\000\017\016\001\000\017\012\001\000\018\184\b\000\018\180\b\000\018\152\002\000\018\148\002\000\018\144\002\000\018\140\002\000\018\136\002\000\018\132\002\000\018\128\002\000\018|\002\000\017\024\002\000\017\020\002\000\018\184\t\000\018\152\003\000\018\148\003\000\018\144\003\000\018\140\003\000\017\024\003\000\018\200\006\000\018\196\006\000\018\192\006\000\018\188\006\000\018\160\006\000\018\200\007\000\018\196\007\000\018\192\007\000\018\188\007\000\018\160\007\000\018\192\b\000\018\188\b\000\018X\001\000\018T\001\000\018P\001\000\018L\001\000\018H\001\000\018D\001\000\018@\001\000\018<\001\000\017\b\001\000\017\004\001\000\018\192\t\000\018X\002\000\018T\002\000\018P\002\000\018L\002\000\017\b\002\000\018\160\b\000\018\200\b\000\018\196\b\000\018\152\001\000\018\148\001\000\018\144\001\000\018\140\001\000\018\136\001\000\018\132\001\000\018\128\001\000\018|\001\000\018x\001\000\018t\001\000\018p\001\000\018l\001\000\018h\001\000\018d\001\000\018`\001\000\018\\\001\000\017\024\001\000\017\020\001\000\017\016\001\000\017\012\001\000\018\200\t\000\018\196\t\000\018\152\002\000\018\148\002\000\018\144\002\000\018\140\002\000\018\136\002\000\018\132\002\000\018\128\002\000\018|\002\000\017\024\002\000\017\020\002\000\018\200\n\000\018\152\003\000\018\148\003\000\018\144\003\000\018\140\003\000\017\024\003\000\004\212\003\000\002\028\001\000\r\132\004\000\r\128\004\000\r|\004\000\011\224\001\000\004\212\001\000\004\208\001\000\000\160\005\000\000\160\006\000\004\220\002\000\002\028\001\000\004\232\002\000\004\200\001\000\004\232\003\000\011\224\001\000\004\212\001\000\004\208\001\000\r\144\003\000\r\140\003\000\r\136\003\000\011\224\001\000\004\212\001\000\004\208\001\000\000\164\004\000\000\164\005\000\r\144\004\000\r\140\004\000\r\136\004\000\r\144\005\000\000\156\001\000\r\144\006\000\r\144\007\000\011\224\001\000\004\212\001\000\004\208\001\000\r\140\005\000\000\152\001\000\r\140\006\000\000\152\002\000\r\140\007\000\r\140\b\000\011\224\001\000\004\212\001\000\004\208\001\000\r\136\005\000\002\028\001\000\r\132\001\000\r\128\001\000\r|\001\000\012\244\002\000\012\240\001\000\000\160\002\000\000\152\001\000\r\132\002\000\r\128\002\000\r|\002\000\012\244\003\000\012\240\002\000\000\160\003\000\000\152\002\000\020@\006\000\020@\007\000\020@\b\000\000\180\003\000\000\180\004\000\002\204\003\000\002\204\004\000\002\204\005\000\002\204\006\000\002\204\007\000\004\168\001\000\004\168\002\000\000\000\001\000\000\004\000\000\004\188\001\000\004\188\002\000\000\004\001\000\000\b\000\000\020\012\001\000\007\216\001\000\001\208\001\000\007\216\002\000\007\216\003\000\007\220\001\000\000\b\001\000\b \001\000\007\232\001\000\007\228\001\000\007\224\001\000\007\208\001\000\007\232\002\000\007\228\002\000\007\224\002\000\007\208\002\000\020\012\001\000\007\228\003\000\007\228\004\000\007\228\005\000\007\232\003\000\007\224\003\000\000X\001\000\007\212\001\000\000\\\001\000\011\012\001\000\011\012\002\000\000\012\000\000\000\012\001\000\011\016\001\000\011\016\002\000\000\016\000\000\000\016\001\000\011\020\001\000\002\028\001\000\011\020\002\000\000\020\000\000\011\024\001\000\011\024\002\000\000\020\001\000\000\024\000\000\000\024\001\000\011\028\001\000\b \001\000\007\208\001\000\011\028\002\000\000\028\000\000\000\028\001\000\011 \001\000\b\016\001\000\011 \002\000\000 \000\000\000 \001\000\011$\001\000\bh\001\000\bd\001\000\b\\\001\000\011$\002\000\000$\000\000\000$\001\000\011(\001\000\b\204\001\000\b\196\001\000\b\192\001\000\b\188\001\000\b\184\001\000\b\180\001\000\b\164\001\000\011(\002\000\000(\000\000\000(\001\000\011,\001\000\011,\002\000\000,\000\000\012\152\001\000\011H\001\000\011D\001\000\011<\001\000\0118\001\000\0110\001\000\005\164\001\000\005\160\001\000\005\156\001\000\005\152\001\000\0110\002\000\000,\001\000\0000\000\000\0114\001\000\0114\002\000\0000\001\000\b\024\001\000\b\016\001\000\b\024\002\000\b\016\002\000\0004\000\000\019\128\001\000\019|\001\000\019x\001\000\019t\001\000\019p\001\000\019l\001\000\019h\001\000\019\128\002\000\019|\002\000\019x\002\000\019t\002\000\019p\002\000\019l\002\000\019h\002\000\019\128\003\000\019l\003\000\019p\003\000\019|\003\000\019t\003\000\019x\003\000\b\024\001\000\b\016\001\000\019d\001\000\019`\001\000\019\\\001\000\019X\001\000\019T\001\000\019P\001\000\019L\001\000\019d\002\000\019`\002\000\019\\\002\000\019X\002\000\019T\002\000\019P\002\000\019L\002\000\019d\003\000\019P\003\000\019T\003\000\019`\003\000\019X\003\000\019\\\003\000\b\024\001\000\b\016\001\000\019\144\001\000\0004\001\000\019\140\001\000\019\140\002\000\007X\001\000\007X\002\000\019\132\001\000\019\132\002\000\019\132\003\000\019\136\001\000\019\136\002\000\0008\000\000\007d\001\000\007`\001\000\007l\001\000\007h\001\000\007h\002\000\007l\002\000\007d\002\000\007d\003\000\007d\004\000\007`\002\000\0008\001\000\020\b\001\000\020\b\002\000\020\b\003\000\020\b\004\000\020\004\001\000\020\004\002"), (16, "\000\000\000\001\000\002\000\003\000\004\000\005\000\006\000\007\000\b\000\t\000\n\000\011\000\012\000\r\000\014\000\015\000\016\000\017\000\018\000\019\000\020\000\021\000\022\000\023\000\024\000\025\000\026\000\027\000\028\000\029\000\030\000\031\000 \000!\000\"\000#\000$\000%\000&\000'\000(\000)\000*\000+\000,\000-\000.\000/\0000\0001\0002\0003\0004\0005\0006\0007\0009\000:\000;\000<\000=\000>\000?\000@\000A\000B\000C\000D\000E\000F\000G\000H\000I\000J\000K\000L\000M\000N\000O\000P\000Q\000R\000S\000T\000U\000V\000W\000]\000_\000`\000a\000c\000e\000f\000h\000j\000l\000m\000o\000q\000s\000t\000u\000v\000w\000x\000y\000z\000{\000|\000}\000~\000\127\000\128\000\129\000\131\000\133\000\135\000\136\000\137\000\138\000\139\000\140\000\141\000\143\000\144\000\145\000\147\000\148\000\149\000\150\000\151\000\169\000\174\000\178\000\179\000\180\000\181\000\182\000\183\000\200\000\206\000\212\000\216\000\218\000\219\000\220\000\224\000\225\001 \001!\001^\001o\001p\001q\001r\001t\001u\001v\001w\001y\001z\001{\001|\001}\001~\001\132\001\138\001\144\001\145\001\147\001\148\001\151\001\153\001\154\001\155\001\156\001\159\001\160\001\161\001\165\001\167\001\169\001\170\001\174\001\175\001\177\001\178\001\179\001\180\001\184\001\185\001\186\001\187\001\189\001\191\001\193\001\194\001\198\001\199\001\201\001\202\001\203\001\204\001\205\001\207\001\208\001\209\001\210\001\211\001\212\001\215\001\218\001\219\001\223\001\225\001\226\001\228\001\229\001\234\001\253\001\254\002\000\002\007\002\012\002\017\002\018\002\019\002\020\002\021\002\022\002\023\002\024\002\025\002#\002(\002-\002.\0020\0021\0023\0025\0026\0027\002:\002<\002?\002@\002B\002C\002D\002G\002H\002K\002L\002M\002N\002O\002Q\002R\002S\002T\002U\002V\002W\002X\002Y\002^\002b\002d\002o\002t\002\128\002\129\002\131\002\132\002\133\002\139\002\144\002\156\002\162\002\163\002\203\002\220\002\221\002\227\002\230\002\231\002\232\002\233\002\234\002\238\002\241\002\242\002\243\002\244\002\245\002\248\002\250\002\251\002\255\003\001\003\003\003\004\003\b\003\028\003-\0039\003:\003;\003<\003=\003>\003?\003C\003D\003N\003O\003P\003Q\003R\003S\003^\003h\003m\003y\003\127\003\128\003\150\003\162\003\167\003\179\003\185\003\186\003\208\003\220\003\226\003\231\003\243\003\249\003\250\004\016\004\028\004\"\004'\004(\004+\004,\0040\0041\0042\0043\0044\0047\0049\004<\004=\004A\004E\004I\004O\004T\004Y\004e\004k\004l\004\130\004\142\004\148\004\149\004\153\004\156\004\157\004\158\004\160\004\161\004\162\004\166\004\167\004\168\004\169\004\170\004\174\004\175\004\180\004\181\004\184\004\186\004\187\004\191\004\193\004\195\004\196\004\200\004\202\004\212\004\217\004\219\004\231\004\241\004\252\005\006\005\011\005\023\005\029\005\030\0054\005@\005F\005K\005P\005\\\005b\005c\005y\005\133\005\139\005\149\005\154\005\166\005\172\005\173\005\195\005\207\005\213\005\218\005\223\005\235\005\241\005\242\006\b\006\020\006\026\006.\006?\006K\006U\006`\006j\006o\006{\006\129\006\130\006\152\006\164\006\170\006\175\006\180\006\192\006\198\006\199\006\221\006\233\006\239\006\249\006\254\007\n\007\016\007\017\007'\0073\0079\007>\007C\007O\007U\007V\007l\007x\007~\007\148\007\160\007\166\007\167\007\189\007\201\007\207\007\212\007\214\007\215\007\219\007\220\007\223\007\224\007\228\007\229\007\232\007\233\007\234\007\235\007\236\007\237\007\238\007\240\007\241\007\242\007\243\007\245\007\246\007\247\007\248\007\250\007\251\007\255\b\000\b\004\b\005\b\007\b\t\b\n\b\011\b\012\b\014\b\015\b\017\b\018\b\021\b\022\b\023\b\025\b\026\b\027\b\028\b\030\b \b#\b$\b&\b+\b0\b5\bA\bG\bM\bS\bY\b_\bd\bp\bv\b|\b\130\b\136\b\142\b\143\b\144\b\145\b\146\b\147\b\148\b\150\b\151\b\161\b\166\b\171\b\176\b\182\b\187\b\192\b\204\b\210\b\216\b\222\b\229\b\235\b\241\b\246\t\002\t\b\t\014\t\020\t\027\t!\t'\t+\t,\t-\t.\t/\t3\t4\t5\t6\t7\t>\tC\tE\tG\tI\tJ\tK\tM\tN\tO\tP\tQ\tR\tS\tT\tU\tV\tZ\t^\tb\td\tf\th\ti\tj\tl\tm\tn\tp\tq\tr\ts\tu\tw\ty\tz\t{\t|\t}\t~\t\128\t\130\t\131\t\132\t\133\t\134\t\135\t\136\t\137\t\138\t\139\t\140\t\148\t\150\t\154\t\155\t\158\t\160\t\161\t\171\t\176\t\181\t\186\t\192\t\197\t\202\t\214\t\220\t\226\t\232\t\239\t\245\t\251\n\000\n\012\n\018\n\024\n\030\n%\n+\n1\n3\n5\n7\n8\n9\n:\n;\n<\n@\nA\nC\nG\nH\nI\nJ\nK\nL\nM\nN\nO\nR\nT\nU\nV\nW\n\\\n]\n^\n_\n`\na\nb\nc\nd\ne\nf\ng\nh\ni\nn\ns\n\127\n\133\n\139\n\145\n\152\n\158\n\164\n\170\n\176\n\177\n\179\n\180\n\182\n\184\n\185\n\186\n\187\n\194\n\200\n\203\n\204\n\205\n\206\n\207\n\208\n\209\n\210\n\220\n\225\n\237\n\243\n\249\n\255\011\006\011\012\011\018\011\024\011\030\011\031\011 \011!\011\"\011,\011-\0117\0118\011B\011C\011D\011E\011G\011Q\011W\011\\\011h\011n\011t\011z\011\129\011\135\011\141\011\147\011\153\011\154\011\164\011\167\011\175\011\176\011\177\011\178\011\179\011\184\011\185\011\186\011\197\011\198\011\199\011\201\011\202\011\212\011\213\011\214\011\224\011\225\011\227\011\228\011\229\011\230\011\242\011\244\011\245\011\246\011\247\012\001\012\003\012\004\012\r\012\014\012\024\012\028\012\031\012 \012!\012\"\012#\012$\012%\012&\012'\012(\012)\012/\0125\012:\012F\012L\012R\012X\012_\012e\012k\012q\012w\012x\012y\012\131\012\136\012\148\012\154\012\160\012\166\012\173\012\179\012\185\012\191\012\197\012\198\012\208\012\209\012\219\012\220\012\230\012\231\012\232\012\233\012\234\012\240\012\245\r\001\r\007\r\r\r\019\r\026\r \r&\r,\r2\r3\r=\r>\rH\rN\rT\rU\r_\rd\ri\rn\rq\rt\rv\r|\r\128\r\132\r\134\r\137\r\138\r\139\r\140\r\143\r\144\r\145\r\146\r\147\r\148\r\149\r\150\r\151\r\154\r\156\r\157\r\158\r\159\r\164\r\166\r\167\r\168\r\169\r\181\r\189\r\197\r\201\r\205\r\207\r\210\r\212\r\213\r\215\r\216\r\217\r\218\r\219\r\220\r\221\r\223\r\228\r\230\r\232\r\234\r\240\r\246\r\252\014\002\014\b\014\014\014\015\014\027\014\028\014\029\014\030\014\031\014\"\014#\014%\014-\0145\014C\014F\014I\014J\014L\014M\014P\014Q\014R\014S\014T\014U\014V\014e\014i\014m\014o\014r\014s\014v\014w\014x\014y\014z\014{\014|\014}\014~\014\127\014\128\014\129\014\142\014\144\014\145\014\146\014\147\014\151\014\152\014\154\014\155\014\159\014\160\014\161\014\162\014\163\014\165\014\166\014\167\014\182\014\186\014\190\014\192\014\195\014\196\014\198\014\213\014\217\014\221\014\223\014\226\014\229\014\230\014\231\014\232\014\233\014\234\014\235\014\241\014\253\015\012\015\016\015\020\015\022\015\025\015\026\015\029\015+\015,\015/\0153\0155\0158\0159\015;\015<\015=\015>\015?\015@\015A\015C\015D\015E\015F\015H\015M\015N\015O\015P\015V\015\\\015b\015i\015n\015z\015\128\015\134\015\140\015\146\015\152\015\158\015\159\015\160\015\161\015\162\015\163\015\178\015\179\015\180\015\181\015\196\015\197\015\198\015\201\015\202\015\210\015\218\015\226\015\235\015\237\015\238\015\239\015\240\015\250\015\251\015\252\015\253\015\254\015\255\016\014\016\015\016\016\016\023\016\024\016\026\016 \016&\016,\0163\0164\0165\0166\016Z\016\\\016]\016^\016_\016`\016a\016b\016c\016d\016s\016t\016\137\016\157\016\162\016\163\016\165\016\167\016\168\016\169\016\170\016\171\016\172\016\175\016\176\016\178\016\180\016\183\016\185\016\187\016\189\016\191\016\193\016\194\016\196\016\198\016\199\016\208\016\210\016\212\016\214\016\216\016\218\016\219\016\220\016\224\016\225\016\229\016\231\016\232\016\234\016\235\016\237\016\238\016\242\016\244\016\246\016\247\016\255\017\001\017\n\017\011\017\014\017\016\017\025\017\028\017\031\017!\017#\017$\017%\017&\017'\017)\017*\0172\0175\0176\0179\017:\017;\017>\017?\017A\017B\017C\017F\017I\017J\017S\017V\017^\017_\017h\017i\017j\017k\017l\017m\017n\017r\017\127\017\128\017\135\017\136\017\138\017\147\017\148\017\149\017\150\017\151\017\152\017\153\017\154\017\156\017\157\017\161\017\162\017\170\017\171\017\173\017\175\017\177\017\179\017\180\017\182\017\183\017\184\017\190\017\195\017\207\017\213\017\219\017\225\017\231\017\237\017\243\018\007\018\012\018\024\018\030\018$\018*\0180\0186\018<\018P\018Q\018R\018S\018T\018Z\018`\018f\018m\018o\018~\018\128\018\129\018\130\018\131\018\189\018\191\018\197\018\203\018\209\018\216\019\015\019\017\019\023\019\029\019#\019*\019a\019c\019i\019o\019u\019|\019\179\019\181\019\187\019\193\019\199\019\206\020\005\020\007\020\r\020\019\020\025\020 \020W\020Y\020_\020e\020k\020r\020\169\020\171\020\177\020\183\020\189\020\196\020\251\020\253\021\003\021\t\021\015\021\022\021M\021O\021U\021[\021a\021h\021\159\021\161\021\167\021\173\021\179\021\186\021\241\021\243\021\249\021\255\022\005\022\012\022C\022E\022K\022Q\022W\022^\022\149\022\151\022\157\022\163\022\169\022\176\022\231\022\233\022\239\022\245\022\251\023\002\0239\023;\023A\023G\023M\023T\023\139\023\141\023\147\023\153\023\159\023\166\023\221\023\223\023\229\023\235\023\241\023\248\024/\0244\024@\024F\024L\024R\024X\024^\024d\024x\024~\024\132\024\138\024\145\024\200\024\202\024\208\024\214\024\220\024\227\025\026\025\028\025\"\025(\025.\0255\025l\025n\025t\025z\025\128\025\135\025\190\025\192\025\198\025\204\025\210\025\217\026\016\026\018\026\024\026\030\026$\026+\026b\026d\026j\026p\026v\026}\026\180\026\182\026\188\026\194\026\200\026\207\027\006\027\007\027\t\027\024\027\026\027 \027&\027,\0273\027j\027m\027n\027o\027p\027q\027r\027s\027{\027}\027~\027\127\027\128\027\129\027\130\027\131\027\133\027\134\027\135\027\136\027\137\027\138\027\139\027\140\027\150\027\156\027\158\027\160\027\162\027\165\027\166\027\167\027\168\027\169\027\170\027\174\027\176\027\179\027\180\027\181\027\182\027\183\027\184\027\186\027\187\027\188\027\189\027\190\027\191\027\192\027\193\027\194\027\195\027\199\027\201\027\204\027\205\027\206\027\207\027\208\027\209\027\210\027\211\027\212\027\222\027\223\027\224\027\230\027\236\027\240\027\244\027\246\027\249\027\250\027\251\027\252\027\253\027\254\028\000\028\001\028\002\028\003\028\004\028\005\028\006\028\007\028\b\028\t\028\n\028\011\028\012\028\r\028\014\028\015\028F\028L\028R\028X\028_\028\150\028\160\028\161\028\162\028\164\028\165\028\166\028\167\028\168\028\169\028\171\028\172\028\173\028\177\028\186\028\195\028\204\028\214\028\216\028\222\028\228\028\234\028\241\029(\029)\029+\029,\0293\0295\029@\029B\029H\029N\029T\029[\029\146\029\148\029\159\029\161\029\167\029\173\029\179\029\186\029\241\029\243\029\254\030\000\030\006\030\012\030\018\030\025\030P\030Z\030\\\030b\030h\030n\030u\030\172\030\176\030\183\030\190\030\197\030\205\030\206\030\207\030\209\030\215\030\221\030\227\030\234\031!\031Y\031[\031a\031g\031m\031t\031\171\031\172\031\173\031\174\031\176\031\177\031\178\031\179\031\180\031\181\031\182\031\240\031\242\031\243 , . / 3 < E N X Z [ \\ ] ^ \152 \154 \155 \159 \160 \169 \178 \187 \197 \199 \200 \201 \202!\004!\006!\007!\b!\t!\n!\011!\026!\027!\028!\031! !#!&!(!)!*!+!,!B!W!Y!Z![!j!s!v!y!|!~!\132!\138!\144!\151!\206!\209!\212!\215!\217!\223!\229!\235!\242\")\",\"/\"2\"4\":\"@\"F\"M\"\132\"\153\"\156\"\159\"\162\"\164\"\170\"\176\"\182\"\189\"\244\"\247\"\250\"\253\"\255#\005#\011#\017#\024#O#R#U#X#Z#`#f#l#s#\170#\181#\190#\193#\196#\199#\201#\207#\213#\219#\226$\025$\028$\031$\"$$$*$0$6$=$t$w$z$}$\127$\133$\139$\145$\152$\207$\210$\212$\218$\224$\230$\237%$%3%5%6%7%n%o%p%q%r%s%t%u%v%{%~%\127%\128%\129%\130%\131%\132%\133%\134%\135%\136%\137%\138%\139%\140%\141%\142%\143%\144%\145%\146%\147%\148%\149%\150%\151%\152%\172%\178%\184%\190%\197%\252%\253%\254%\255&\000&\001&\003&\004&\005&\006&\r&\019&\025&!&)&1&:&<&B&H&N&U&\140&\197&\199&\205&\211&\217&\224'\023'\024'\025'\026'-'3'9'?'F'G'~'\127'\142'\143'\144'\159'\164'\169'\174'\180'\187'\188'\242'\243'\244'\250(\000(\006(\r(D(G(I(J(K(L(M(V(_(h(r(t(u(v(w(\177(\179(\180(\189(\198(\207(\217(\219(\220(\221(\222(\223)\025)\027)\028)%).)7)A)B)C)K)L)N)W)X)Y)a)b)\156)\157)\158)\166)\167)\169)\178)\179)\180)\188)\189)\193)\194)\195)\196)\197)\201)\202)\203)\204)\205)\206)\207)\208)\209)\210)\211)\212)\216)\218)\227)\228)\232)\233)\234)\238)\239)\240)\241)\242)\243)\244)\245)\249)\250)\251)\252)\253)\254*\000*\001*\002*\003*\004*\005*\006*\007*\b*\n*\012*\014*\017*\018*\022*\024*\026*\028*\029*\030*\"*#*$*&*'*(***/*1*5*9*;*@*B*G*I*J*O*Q*U*]*c*i*n*v*x*{*}*~*\130*\132*\134*\135*\139*\141*\145*\147*\148*\149*\153*\159*\160*\161*\165*\171*\172*\173*\174*\175*\176*\177*\178*\179*\180*\181*\182*\183*\184*\185*\186*\187*\188*\189*\190*\196*\202*\208*\215+\014+\015+\024+!+*+4+6+7+8+9+:+t+v+w+\134+\136+\138+\140+\145+\146+\147+\155+\156+\159+\160+\162+\163+\164+\165+\166+\167+\169+\170+\172+\174+\180+\186+\192+\199+\254,\000,\001,\002,\003,\007,\b,\t,\n,\014,\015,\018,\019,\020,\021,\022,\023,\031, ,!,#,%,&,',(,),*,+,,,-,.,/,0,1,2,3,4,5,7,B,C,D,E,F,G,H,I,M,O,P,Q,R,S,T,U,X,Y,[,\\,],^,`,a,b,c,e,g,i,k,m,n,p,s,u,v,w,x,y,z,{,|,~,\127,\129,\131,\132,\133,\134,\135,\136,\137,\138,\140,\141,\142,\143,\144,\145,\146,\147,\148,\149,\151,\152,\153,\154,\155,\157,\158,\160,\161,\162,\163,\164,\166,\167,\168,\169,\171,\172,\174,\175,\176,\177,\178,\179,\180,\181,\182,\184,\186,\187,\188,\190,\191,\192,\194,\195,\196,\197,\199,\201,\202,\203,\205,\206,\207,\209,\210,\212,\214,\215,\216,\217,\219,\220,\222,\223,\224,\225,\226,\227,\228,\229,\230,\231,\233,\234,\235,\236,\237,\238,\239,\240,\242,\243,\244,\245,\246,\247,\248,\249,\250-\005-\006-\007-\b-\t-\n-\012-\014-\015-\017-\019-\020-\021-\022-\023-\024-\025-\026-\029-\031- -\"-#-$-%-&-(-*-,---.-/-0-1-2-5-8-9-<-?-A-B-C-D-F-G-H-I-J-K-L-M-N-R-T-U-W-X-Y-Z-[-\\-_-b-d-e-f-g-i-j-k-l-m-n-o-p-q-r-s-u-v-w-y-}-~-\127-\128-\129-\130-\131-\133-\134-\135-\137-\138-\139-\141-\142-\143-\144-\145-\147-\148-\150-\151-\152-\154-\156-\157-\159-\160-\161-\163-\164-\165-\167-\168-\170-\171-\173-\174-\175-\176-\177-\180-\181-\182-\186-\187-\188-\189-\193-\196-\197-\198-\199-\200-\201-\207-\212-\215-\217-\218-\220-\221-\222-\223-\224-\226-\227-\228-\229-\230-\231-\233-\234-\235-\236-\237-\238-\239-\240-\241-\242-\243-\244-\245-\246-\248-\249-\250-\251-\253-\254-\255.\000.\001.\002.\003.\004.\005.\006.\007.\b.\t.\n.\011.\012.\r.\014.\015.\016.\017.\018.\019.\021.\022.\023.\024.\025.\026.\027.\031. .!.\".#.$.%.&.'.).*.+.,.-.../.0.1.2.3.4.5.8.9.:.;.<.=.>.?.@.A.B.C.D.E.F.H.J.K.L.M.N.O.R.S.T.U.V.W.X.Y.[.\\.].^._.`.b.d.e.f.h.i.j.k.l.o.p.q.r.v.~.\127.\133.\139.\140.\150.\156.\162.\163.\173.\178.\189.\190.\191.\193.\194.\195.\196.\197.\212.\218.\238.\244.\250/\000/\007/>/D/X/^/d/j/q/\168/\173/\174/\175/\177/\178/\179/\180/\185/\188/\191/\194/\196/\198/\199/\200/\206/\208/\209/\210/\211/\212/\224/\234/\245/\2550\0040\0160\0220\0230-090?0D0I0U0[0\\0r0~0\1320\1360\1370\1380\1390\1400\1410\1420\1430\1450\1460\1480\1490\1500\1510\1520\1540\1550\1560\1570\1580\1590\1600\1610\1620\1630\1640\1740\1820\1860\1870\1880\1890\1900\1910\1920\1930\1940\1950\1960\1970\1980\1990\2000\2010\2020\2030\2040\2050\2070\2080\2090\2100\2110\2130\2140\2150\2160\2170\2200\2230\2250\2260\2270\2290\2300\2310\2320\2330\2350\2360\2370\2390\2400\2410\2420\2450\2460\2470\2480\2510\2521\0021\0041\0061\b1\n1\0111\0191\0201\0241\0281\0301\0311\"1#1$1%1&1.1/10111213141<1=1>1?1@1A1B1C1D1E1F1H1I1K1L1M1N1O1P1X1Y1Z1[1\\1^1g1h1i1j1k1l1m1n1o1p1r1s1t1u1v1w1x1y1z1{1|1}1~1\1271\1281\1291\1301\1311\1321\1331\1341\1351\1361\1371\1381\1391\1401\1411\1421\1431\1441\1451\1461\1471\1551\1561\1571\1581\1591\1601\1611\1621\1631\1641\1651\1661\1671\1691\1701\1711\1721\1731\1741\1751\1761\1841\1851\1971\2071\2181\2281\2331\2451\2511\2522\0182\0302$2)2.2:2@2A2W2c2i2s2x2\1322\1382\1392\1612\1732\1792\1842\1892\2012\2072\2082\2302\2422\2483\0223'333=3H3R3W3c3i3j3\1283\1403\1463\1513\1563\1683\1743\1753\1973\2093\2153\2253\2303\2423\2483\2494\0154\0274!4&4+474=4>4T4`4f4u4\1284\1414\1464\1584\1644\1654\1874\1994\2054\2104\2154\2274\2334\2345\0005\0125\0185\"5.5<5A5M5S5T5j5v5|5\1295\1345\1465\1525\1535\1755\1875\1935\1955\2025\2035\2055\2075\2085\2115\2185\2195\2225\2245\2255\2295\2315\2335\2345\2385\2405\2475\2545\2556\0006\0016\0026\0036\0046\0056\0066\0076\b6\t6\n6\0116\0126\r6\0146\0156\0166\0196\0206\0216\0226\0236\0286 6\"6#6$6%6&6'6(6)6*6+6,6-6.6/6061636465666768696:6=6>6?6@6B6C6D6E6I6J6K6L6T6U6V6W6X6Y6Z6d6e6f6g6h6i6j6l6n6o6v6}6~6\1276\1286\1296\1306\1336\1406\1476\1486\1496\1506\1516\1526\1556\1566\1576\1586\1596\1606\1616\1626\1636\1646\1656\1666\1676\1696\1706\1716\1726\1736\1746\1756\1766\1776\1786\1796\1806\1816\1826\1836\184")) + ((32, "\000\000\000\000\000\002\208\001\000\002d\001\000\016\184\001\000\016\180\001\000\016\176\001\000\016\172\001\000\016\168\001\000\015\240\001\000\016\164\001\000\016\160\001\000\016\156\001\000\016\152\001\000\016\148\001\000\016\144\001\000\016\140\001\000\016\136\001\000\016\132\001\000\016\128\001\000\016|\001\000\016x\001\000\016t\001\000\016p\001\000\016l\001\000\016h\001\000\016d\001\000\016`\001\000\016\\\001\000\016X\001\000\015\236\001\000\016T\001\000\016P\001\000\016L\001\000\016H\001\000\016D\001\000\016@\001\000\016<\001\000\0168\001\000\0164\001\000\0160\001\000\016,\001\000\016(\001\000\016$\001\000\016 \001\000\016\028\001\000\016\024\001\000\016\020\001\000\016\016\001\000\016\012\001\000\016\b\001\000\016\004\001\000\016\000\001\000\015\252\001\000\015\248\001\000\015\244\001\000\000\172\001\000\000\168\001\000\000\172\002\000\000\172\003\000\002d\002\000\002\208\002\000\000\180\001\000\000\180\002\000\020P\001\000\020P\002\000\020P\003\000\020\028\001\000\n$\001\000\t\196\001\000\n\024\001\000\n\020\001\000\n\016\001\000\n(\001\000\n8\001\000\n\b\001\000\n \001\000\n\028\001\000\t\200\001\000\n0\001\000\n\012\001\000\n\004\001\000\n\000\001\000\t\252\001\000\t\240\001\000\t\232\001\000\n4\001\000\n,\001\000\t\228\001\000\t\224\001\000\t\220\001\000\t\216\001\000\t\212\001\000\t\208\001\000\t\212\002\000\t\208\002\000\004\200\001\000\004\200\002\000\t\212\003\000\t\208\003\000\t\212\004\000\t\208\004\000\t\212\005\000\t\220\002\000\t\216\002\000\t\220\003\000\t\216\003\000\t\220\004\000\t\216\004\000\t\220\005\000\t\228\002\000\t\224\002\000\t\228\003\000\t\224\003\000\t\228\004\000\t\224\004\000\t\228\005\000\nH\001\000\n<\001\000\t\236\001\000\t\248\001\000\t\244\001\000\t\204\001\000\n@\001\000\nD\001\000\020\028\002\000\020\028\003\000\020 \001\000\020P\004\000\020P\005\000\tL\001\000\t@\001\000\tP\001\000\tD\001\000\tH\001\000\t<\001\000\tH\002\000\tP\002\000\tL\002\000\000\156\001\000\007\220\001\000\002l\001\000\r\000\001\000\000\152\001\000\004\176\001\000\004\180\001\000\r\000\002\000\000\152\002\000\n\220\001\000\n\220\002\000\n\220\003\000\n\216\001\000\018H\001\000\018D\001\000\018@\001\000\018<\001\000\0188\001\000\0184\001\000\0180\001\000\018,\001\000\017\016\001\000\017\012\001\000\r\004\001\000\0020\001\000\002,\001\000\000\164\001\000\000\160\001\000\000\144\001\000\000\132\001\000\000x\001\000\r\160\001\000\r\156\001\000\r\152\001\000\000\164\002\000\000\156\001\000\r\160\002\000\r\156\002\000\r\152\002\000\000\164\003\000\004\240\001\000\004\248\001\000\004\236\001\000\000\152\001\000\000\152\002\000\018H\001\000\018D\001\000\018@\001\000\018<\001\000\0188\001\000\0184\001\000\0180\001\000\018,\001\000\017\016\001\000\017\012\001\000\0020\001\000\002,\001\000\000\164\001\000\000\160\001\000\000\144\001\000\000\132\001\000\000x\001\000\r\148\001\000\r\144\001\000\r\140\001\000\r\000\001\000\000\160\002\000\000\152\001\000\r\148\002\000\r\144\002\000\r\140\002\000\r\000\002\000\000\160\003\000\000\152\002\000\r\148\003\000\r\144\003\000\r\140\003\000\000\160\004\000\011\244\001\000\004\244\001\000\011\244\002\000\004\216\001\000\011\244\003\000\011\240\001\000\004\228\001\000\004\224\001\000\004\228\002\000\019\220\001\000\019\216\001\000\018\252\001\000\018\248\001\000\018\244\001\000\018\240\001\000\018\236\001\000\018\232\001\000\018\228\001\000\018\224\001\000\018\220\001\000\018\216\001\000\018\212\001\000\018\208\001\000\018\204\001\000\018\200\001\000\018\196\001\000\018\192\001\000\018\188\001\000\018\184\001\000\018\180\001\000\018\176\001\000\018\172\001\000\018(\001\000\018$\001\000\018 \001\000\018\028\001\000\018\024\001\000\018\020\001\000\018\016\001\000\018\012\001\000\018\b\001\000\018\004\001\000\018\000\001\000\017\252\001\000\017\248\001\000\017\244\001\000\017\240\001\000\017\236\001\000\017\232\001\000\017\228\001\000\017\224\001\000\017\220\001\000\017\216\001\000\017\212\001\000\017\208\001\000\017\204\001\000\017\200\001\000\017\196\001\000\017\192\001\000\017\188\001\000\017\184\001\000\017\180\001\000\017\176\001\000\017\172\001\000\017\b\001\000\017\004\001\000\017\000\001\000\016\252\001\000\016\248\001\000\016\244\001\000\016\240\001\000\016\236\001\000\019\216\002\000\018\252\002\000\018\248\002\000\018\244\002\000\018\240\002\000\018\236\002\000\018\232\002\000\018\228\002\000\018\224\002\000\018\220\002\000\018\216\002\000\018\212\002\000\018\208\002\000\018\204\002\000\018\200\002\000\018\196\002\000\018\192\002\000\018\188\002\000\018\184\002\000\018\180\002\000\018\176\002\000\018\172\002\000\018(\002\000\018$\002\000\018 \002\000\018\028\002\000\018\024\002\000\018\020\002\000\018\016\002\000\018\012\002\000\018\b\002\000\018\004\002\000\018\000\002\000\017\252\002\000\017\248\002\000\017\244\002\000\017\240\002\000\017\236\002\000\017\232\002\000\017\228\002\000\017\224\002\000\017\220\002\000\017\216\002\000\017\212\002\000\017\208\002\000\017\204\002\000\017\200\002\000\017\196\002\000\017\192\002\000\017\188\002\000\017\184\002\000\017\180\002\000\017\176\002\000\017\172\002\000\017\b\002\000\017\004\002\000\017\000\002\000\016\252\002\000\016\248\002\000\016\244\002\000\016\240\002\000\016\236\002\000\017\200\003\000\017\196\003\000\017\192\003\000\017\188\003\000\017\184\003\000\017\180\003\000\017\176\003\000\017\172\003\000\016\240\003\000\016\236\003\000\0020\001\000\002,\001\000\000\164\001\000\000\160\001\000\000\144\001\000\000\132\001\000\000x\001\000\0020\002\000\0020\003\000\0020\004\000\007\220\001\000\004\176\001\000\b\160\001\000\b\160\002\000\n\196\001\000\t0\001\000\t,\001\000\t0\002\000\n\196\002\000\b\160\003\000\b\160\004\000\r\244\001\000\014\024\001\000\014\020\001\000\004\172\001\000\004\168\001\000\004\164\001\000\004\160\001\000\014\024\002\000\014\020\002\000\004\172\002\000\004\168\002\000\004\164\002\000\004\160\002\000\014\024\003\000\014\020\003\000\004\172\003\000\004\168\003\000\004\164\003\000\004\160\003\000\020\b\001\000\019\244\001\000\019\232\001\000\019\244\002\000\014\024\004\000\004\172\004\000\004\164\004\000\019\252\001\000\019\236\001\000\019\252\002\000\019\212\001\000\020\004\001\000\020\000\001\000\019\248\001\000\019\240\001\000\019\248\002\000\020\000\002\000\019\200\001\000\019\196\001\000\011\024\001\000\011\020\001\000\019\200\002\000\011\024\002\000\019\200\003\000\011\024\003\000\011\024\004\000\011\240\001\000\011\024\005\000\004\228\001\000\004\224\001\000\004\224\002\000\t(\001\000\t$\001\000\t(\002\000\004\224\003\000\011\240\002\000\011\240\003\000\011\240\001\000\004\228\001\000\004\224\001\000\004\232\001\000\007\028\001\000\007\028\002\000\019\196\002\000\011\020\002\000\019\196\003\000\011\020\003\000\019\196\004\000\011\020\004\000\011\020\005\000\011\240\001\000\011\020\006\000\004\228\001\000\004\224\001\000\011\016\001\000\019\212\002\000\rH\001\000\019\212\003\000\rH\002\000\rH\003\000\rD\001\000\019\200\001\000\019\196\001\000\019\200\002\000\019\200\003\000\019\196\002\000\019\196\003\000\019\196\004\000\014\024\005\000\004\172\005\000\004\164\005\000\019\220\001\000\004\172\006\000\004\164\006\000\004\220\001\000\011\240\001\000\004\228\001\000\004\224\001\000\004\220\002\000\004\172\007\000\004\164\007\000\019\188\001\000\007\220\001\000\001\220\001\000\001\216\001\000\t\160\001\000\t\144\001\000\t\128\001\000\tp\001\000\th\001\000\018H\001\000\018D\001\000\018@\001\000\018<\001\000\0188\001\000\0184\001\000\0180\001\000\018,\001\000\017\016\001\000\017\012\001\000\0020\001\000\002,\001\000\001\224\001\000\001\208\001\000\000\164\001\000\000\160\001\000\000\144\001\000\000\132\001\000\000x\001\000\001\208\002\000\t\176\001\000\t\172\001\000\0020\001\000\002,\001\000\000\164\001\000\000\160\001\000\000\144\001\000\000\132\001\000\000x\001\000\r\148\001\000\r\144\001\000\r\140\001\000\000\160\002\000\000\152\001\000\r\148\002\000\r\144\002\000\r\140\002\000\000\160\003\000\000\152\002\000\002h\001\000\002h\002\000\004<\001\000\015$\001\000\b\028\001\000\002\172\001\000\002\172\002\000\002\172\003\000\012\156\001\000\012\152\001\000\012\148\001\000\012\144\001\000\012\140\001\000\012\136\001\000\012\132\001\000\012\128\001\000\012|\001\000\012x\001\000\012\156\002\000\012\152\002\000\012\148\002\000\012\144\002\000\012\140\002\000\012\156\003\000\012\152\003\000\012\148\003\000\012\144\003\000\012\140\003\000\019\180\001\000\002L\001\000\002H\001\000\nX\001\000\002L\002\000\002H\002\000\002D\001\000\002@\001\000\002D\002\000\002@\002\000\002<\001\000\0028\001\000\0024\001\000\002T\001\000\002P\001\000\019\220\001\000\019\216\001\000\002T\002\000\002T\003\000\019\220\001\000\019\216\001\000\000\136\001\000\007\212\001\000\b0\001\000\007\224\001\000\007\216\001\000\b0\002\000\b0\003\000\b0\001\000\007\224\001\000\b0\004\000\007\224\002\000\007\224\003\000\b,\001\000\007\224\002\000\007\216\002\000\007\216\003\000\001\128\001\000\000\136\002\000\000|\001\000\b\012\001\000\b\004\001\000\000p\001\000\002 \001\000\b0\001\000\b\016\001\000\b\b\001\000\007\224\001\000\000\148\001\000\b\016\002\000\b\b\002\000\007\224\002\000\000\148\002\000\0020\001\000\002,\001\000\018h\001\000\018d\001\000\018`\001\000\018\\\001\000\018X\001\000\018T\001\000\018P\001\000\018L\001\000\017\024\001\000\017\020\001\000\004h\001\000\018X\002\000\018T\002\000\018P\002\000\018L\002\000\017\020\002\000\018h\001\000\018d\001\000\018`\001\000\018\\\001\000\018X\001\000\018T\001\000\018P\003\000\018P\001\000\018L\003\000\018L\001\000\017\024\001\000\017\020\001\000\000d\001\000\t8\001\000\t4\001\000\t8\002\000\000d\002\000\018h\002\000\018d\002\000\018`\002\000\018\\\002\000\018P\004\000\017\024\002\000\018h\003\000\018d\003\000\018`\003\000\018\\\003\000\017\024\003\000\018h\001\000\018d\001\000\018`\004\000\018`\001\000\018\\\004\000\018\\\001\000\018X\001\000\018T\001\000\018P\001\000\018L\001\000\017\024\001\000\017\020\001\000\018h\002\000\018d\002\000\018`\005\000\018`\002\000\018\\\002\000\017\024\002\000\017\024\004\000\017\168\001\000\017\164\001\000\017\160\001\000\017\156\001\000\017\152\001\000\017\148\001\000\017\144\001\000\017\140\001\000\017\136\001\000\017\132\001\000\017\128\001\000\017|\001\000\017x\001\000\017t\001\000\017p\001\000\017l\001\000\017h\001\000\017d\001\000\017`\001\000\017\\\001\000\017X\001\000\017T\001\000\017P\001\000\017L\001\000\017H\001\000\017D\001\000\017@\001\000\017<\001\000\0178\001\000\0174\001\000\0170\001\000\017,\001\000\016\232\001\000\016\228\001\000\016\224\001\000\016\220\001\000\016\216\001\000\016\212\001\000\016\208\001\000\016\204\001\000\017H\002\000\017D\002\000\017@\002\000\017<\002\000\0178\002\000\0174\002\000\0170\002\000\017,\002\000\016\208\002\000\016\204\002\000\0020\001\000\002,\001\000\000\164\001\000\000\160\001\000\000\144\001\000\000\132\001\000\000x\001\000\004l\001\000\r|\001\000\rx\001\000\rt\001\000\000\144\002\000\000\132\002\000\000x\002\000\000\144\003\000\000\132\003\000\000x\003\000\000\144\004\000\000\144\005\000\000\132\004\000\000x\004\000\b0\001\000\b\016\001\000\b\b\001\000\007\224\001\000\b\016\002\000\b\b\002\000\007\224\002\000\b\016\003\000\b\b\003\000\019\192\001\000\019\224\001\000\r|\002\000\rx\002\000\rt\002\000\r|\003\000\000\156\001\000\r|\004\000\r|\005\000\011\240\001\000\004\228\001\000\004\224\001\000\rx\003\000\000\152\001\000\rx\004\000\000\152\002\000\rx\005\000\rx\006\000\011\240\001\000\004\228\001\000\004\224\001\000\018\168\001\000\018\164\001\000\018\160\001\000\018\156\001\000\018\152\001\000\018\148\001\000\018\144\001\000\018\140\001\000\018\136\001\000\018\132\001\000\018\128\001\000\018|\001\000\018x\001\000\018t\001\000\018p\001\000\018l\001\000\017(\001\000\017$\001\000\017 \001\000\017\028\001\000\018\136\002\000\018\132\002\000\018\128\002\000\018|\002\000\018x\002\000\018t\002\000\018p\002\000\018l\002\000\017 \002\000\017\028\002\000\0020\001\000\002,\001\000\000\164\001\000\000\160\001\000\000\144\001\000\000\132\001\000\000x\001\000\018\136\003\000\018\132\003\000\018\128\003\000\018|\003\000\018x\003\000\018t\003\000\018p\003\000\018l\003\000\017 \003\000\017\028\003\000\r\012\001\000\r\b\001\000\r\b\002\000\r\b\003\000\r\012\002\000\r\012\003\000\r\012\004\000\r\012\005\000\r\012\006\000\011\240\001\000\004\228\001\000\004\224\001\000\r\012\007\000\018\136\004\000\018\132\004\000\018\128\004\000\018|\004\000\018x\004\000\018t\004\000\018p\004\000\018l\004\000\017 \004\000\017\028\004\000\000D\001\000\002$\001\000\002x\001\000\002(\001\000\000l\001\000\018\136\005\000\018\132\005\000\018\128\005\000\018|\005\000\018x\005\000\018t\005\000\018p\005\000\018l\005\000\017 \005\000\017\028\005\000\002\028\001\000\018\136\006\000\018\132\006\000\018\128\006\000\018|\006\000\018x\006\000\018t\006\000\018p\006\000\018l\006\000\017 \006\000\017\028\006\000\018x\007\000\018t\007\000\018p\007\000\018l\007\000\017\028\007\000\018p\b\000\018l\b\000\018h\001\000\018d\001\000\018`\001\000\018\\\001\000\018X\001\000\018T\001\000\018P\001\000\018L\001\000\017\024\001\000\017\020\001\000\018p\t\000\018h\002\000\018d\002\000\018`\002\000\018\\\002\000\017\024\002\000\017\028\b\000\018\168\001\000\018\164\001\000\018\160\001\000\018\156\001\000\018\152\001\000\018\148\001\000\018\144\001\000\018\140\001\000\018\136\001\000\018\132\001\000\018\128\001\000\018|\001\000\018x\b\000\018x\001\000\018t\b\000\018t\001\000\018p\001\000\018l\001\000\017(\001\000\017$\001\000\017 \001\000\017\028\001\000\018\168\002\000\018\164\002\000\018\160\002\000\018\156\002\000\018\152\002\000\018\148\002\000\018\144\002\000\018\140\002\000\018x\t\000\018t\t\000\017(\002\000\017$\002\000\018\152\003\000\018\148\003\000\018\144\003\000\018\140\003\000\017$\003\000\018\144\004\000\018\140\004\000\018h\001\000\018d\001\000\018`\001\000\018\\\001\000\018X\001\000\018T\001\000\018P\001\000\018L\001\000\017\024\001\000\017\020\001\000\018\144\005\000\018h\002\000\018d\002\000\018`\002\000\018\\\002\000\017\024\002\000\017$\004\000\018\168\001\000\018\164\001\000\018\160\001\000\018\156\001\000\018\152\004\000\018\152\001\000\018\148\004\000\018\148\001\000\018\144\001\000\018\140\001\000\018\136\001\000\018\132\001\000\018\128\001\000\018|\001\000\018x\001\000\018t\001\000\018p\001\000\018l\001\000\017(\001\000\017$\001\000\017 \001\000\017\028\001\000\018\168\002\000\018\164\002\000\018\160\002\000\018\156\002\000\018\152\005\000\018\152\002\000\018\148\005\000\018\148\002\000\018\144\002\000\018\140\002\000\017(\002\000\017$\002\000\018\168\003\000\018\164\003\000\018\160\003\000\018\156\003\000\018\152\006\000\017(\003\000\018\168\004\000\018\164\004\000\018\160\004\000\018\156\004\000\017(\004\000\018\160\005\000\018\156\005\000\018h\001\000\018d\001\000\018`\001\000\018\\\001\000\018X\001\000\018T\001\000\018P\001\000\018L\001\000\017\024\001\000\017\020\001\000\018\160\006\000\018h\002\000\018d\002\000\018`\002\000\018\\\002\000\017\024\002\000\017(\005\000\018\168\005\000\018\168\001\000\018\164\005\000\018\164\001\000\018\160\001\000\018\156\001\000\018\152\001\000\018\148\001\000\018\144\001\000\018\140\001\000\018\136\001\000\018\132\001\000\018\128\001\000\018|\001\000\018x\001\000\018t\001\000\018p\001\000\018l\001\000\017(\001\000\017$\001\000\017 \001\000\017\028\001\000\018\168\006\000\018\168\002\000\018\164\006\000\018\164\002\000\018\160\002\000\018\156\002\000\018\152\002\000\018\148\002\000\018\144\002\000\018\140\002\000\017(\002\000\017$\002\000\018\168\007\000\018\168\003\000\018\164\003\000\018\160\003\000\018\156\003\000\017(\003\000\019\168\001\000\019\164\001\000\000\140\001\000\000\128\001\000\000t\001\000\019\168\002\000\019\220\001\000\019\216\001\000\rh\001\000\rh\002\000\rh\003\000\000\140\001\000\000\128\001\000\000t\001\000\000\140\002\000\000\140\003\000\000\128\002\000\000t\002\000\019\168\003\000\rp\001\000\rl\001\000\rp\002\000\rl\002\000\019\220\001\000\019\216\001\000\rp\003\000\rp\004\000\rp\005\000\000\140\001\000\000\128\001\000\000t\001\000\rl\003\000\000\140\001\000\000\128\001\000\000t\001\000\rd\001\000\000\140\001\000\000\128\001\000\000t\001\000\018\168\003\000\018\164\003\000\018\160\003\000\018\156\003\000\018x\n\000\017(\003\000\018\136\007\000\018\132\007\000\018\128\007\000\018|\007\000\017 \007\000\018\136\b\000\018\132\b\000\018\128\b\000\018|\b\000\017 \b\000\018\128\t\000\018|\t\000\018h\001\000\018d\001\000\018`\001\000\018\\\001\000\018X\001\000\018T\001\000\018P\001\000\018L\001\000\017\024\001\000\017\020\001\000\018\128\n\000\018h\002\000\018d\002\000\018`\002\000\018\\\002\000\017\024\002\000\017 \t\000\018\168\001\000\018\164\001\000\018\160\001\000\018\156\001\000\018\152\001\000\018\148\001\000\018\144\001\000\018\140\001\000\018\136\t\000\018\136\001\000\018\132\t\000\018\132\001\000\018\128\001\000\018|\001\000\018x\001\000\018t\001\000\018p\001\000\018l\001\000\017(\001\000\017$\001\000\017 \001\000\017\028\001\000\018\168\002\000\018\164\002\000\018\160\002\000\018\156\002\000\018\152\002\000\018\148\002\000\018\144\002\000\018\140\002\000\018\136\n\000\018\132\n\000\017(\002\000\017$\002\000\018\168\003\000\018\164\003\000\018\160\003\000\018\156\003\000\018\136\011\000\017(\003\000\002\028\002\000\002\024\001\000\000P\001\000\000L\001\000\000H\001\000\000P\002\000\000L\002\000\000H\002\000\000H\003\000\000H\004\000\000P\003\000\000L\003\000\000P\004\000\000P\005\000\011\240\001\000\004\228\001\000\004\224\001\000\000P\006\000\000P\007\000\000L\004\000\000L\005\000\000L\006\000\011\240\001\000\004\228\001\000\004\224\001\000\000L\007\000\000L\b\000\r\136\001\000\r\132\001\000\r\128\001\000\002,\002\000\002\028\001\000\002,\003\000\r\136\002\000\r\132\002\000\r\128\002\000\r\136\003\000\000\156\001\000\r\136\004\000\r\136\005\000\011\240\001\000\004\228\001\000\004\224\001\000\r\132\003\000\000\152\001\000\r\132\004\000\000\152\002\000\r\132\005\000\r\132\006\000\011\240\001\000\004\228\001\000\004\224\001\000\r\128\003\000\002\028\001\000\018\168\002\000\018\164\002\000\018\160\002\000\018\156\002\000\018\152\002\000\018\148\002\000\018\144\002\000\018\140\002\000\017(\002\000\017$\002\000\018\168\003\000\018\164\003\000\018\160\003\000\018\156\003\000\017(\003\000\rt\003\000\002\028\001\000\017H\003\000\017D\003\000\017@\003\000\017<\003\000\0178\003\000\0174\003\000\0170\003\000\017,\003\000\016\208\003\000\016\204\003\000\r\012\001\000\r\b\001\000\017H\004\000\017D\004\000\017@\004\000\017<\004\000\0178\004\000\0174\004\000\0170\004\000\017,\004\000\016\208\004\000\016\204\004\000\017H\005\000\017D\005\000\017@\005\000\017<\005\000\0178\005\000\0174\005\000\0170\005\000\017,\005\000\016\208\005\000\016\204\005\000\002\028\001\000\017H\006\000\017D\006\000\017@\006\000\017<\006\000\0178\006\000\0174\006\000\0170\006\000\017,\006\000\016\208\006\000\016\204\006\000\0178\007\000\0174\007\000\0170\007\000\017,\007\000\016\204\007\000\018h\001\000\018d\001\000\018`\001\000\018\\\001\000\018X\001\000\018T\001\000\018P\001\000\018L\001\000\0170\b\000\017,\b\000\017\024\001\000\017\020\001\000\018h\002\000\018d\002\000\018`\002\000\018\\\002\000\0170\t\000\017\024\002\000\016\204\b\000\018\168\001\000\018\164\001\000\018\160\001\000\018\156\001\000\018\152\001\000\018\148\001\000\018\144\001\000\018\140\001\000\018\136\001\000\018\132\001\000\018\128\001\000\018|\001\000\018x\001\000\018t\001\000\018p\001\000\018l\001\000\0178\b\000\0174\b\000\017(\001\000\017$\001\000\017 \001\000\017\028\001\000\018\168\002\000\018\164\002\000\018\160\002\000\018\156\002\000\018\152\002\000\018\148\002\000\018\144\002\000\018\140\002\000\0178\t\000\0174\t\000\017(\002\000\017$\002\000\018\168\003\000\018\164\003\000\018\160\003\000\018\156\003\000\0178\n\000\017(\003\000\017H\007\000\017D\007\000\017@\007\000\017<\007\000\016\208\007\000\017H\b\000\017D\b\000\017@\b\000\017<\b\000\016\208\b\000\018h\001\000\018d\001\000\018`\001\000\018\\\001\000\018X\001\000\018T\001\000\018P\001\000\018L\001\000\017@\t\000\017<\t\000\017\024\001\000\017\020\001\000\018h\002\000\018d\002\000\018`\002\000\018\\\002\000\017@\n\000\017\024\002\000\016\208\t\000\018\168\001\000\018\164\001\000\018\160\001\000\018\156\001\000\018\152\001\000\018\148\001\000\018\144\001\000\018\140\001\000\018\136\001\000\018\132\001\000\018\128\001\000\018|\001\000\018x\001\000\018t\001\000\018p\001\000\018l\001\000\017H\t\000\017D\t\000\017(\001\000\017$\001\000\017 \001\000\017\028\001\000\018\168\002\000\018\164\002\000\018\160\002\000\018\156\002\000\018\152\002\000\018\148\002\000\018\144\002\000\018\140\002\000\017H\n\000\017D\n\000\017(\002\000\017$\002\000\018\168\003\000\018\164\003\000\018\160\003\000\018\156\003\000\017H\011\000\017(\003\000\017h\002\000\017d\002\000\017`\002\000\017\\\002\000\017X\002\000\017T\002\000\017P\002\000\017L\002\000\016\216\002\000\016\212\002\000\017X\003\000\017T\003\000\017P\003\000\017L\003\000\016\212\003\000\018h\001\000\018d\001\000\018`\001\000\018\\\001\000\018X\001\000\018T\001\000\018P\001\000\018L\001\000\017P\004\000\017L\004\000\017\024\001\000\017\020\001\000\018h\002\000\018d\002\000\018`\002\000\018\\\002\000\017P\005\000\017\024\002\000\016\212\004\000\018\168\001\000\018\164\001\000\018\160\001\000\018\156\001\000\018\152\001\000\018\148\001\000\018\144\001\000\018\140\001\000\018\136\001\000\018\132\001\000\018\128\001\000\018|\001\000\018x\001\000\018t\001\000\018p\001\000\018l\001\000\017X\004\000\017T\004\000\017(\001\000\017$\001\000\017 \001\000\017\028\001\000\018\168\002\000\018\164\002\000\018\160\002\000\018\156\002\000\018\152\002\000\018\148\002\000\018\144\002\000\018\140\002\000\017X\005\000\017T\005\000\017(\002\000\017$\002\000\018\168\003\000\018\164\003\000\018\160\003\000\018\156\003\000\017X\006\000\017(\003\000\017h\003\000\017d\003\000\017`\003\000\017\\\003\000\016\216\003\000\017h\004\000\017d\004\000\017`\004\000\017\\\004\000\016\216\004\000\018h\001\000\018d\001\000\018`\001\000\018\\\001\000\018X\001\000\018T\001\000\018P\001\000\018L\001\000\017`\005\000\017\\\005\000\017\024\001\000\017\020\001\000\018h\002\000\018d\002\000\018`\002\000\018\\\002\000\017`\006\000\017\024\002\000\016\216\005\000\018\168\001\000\018\164\001\000\018\160\001\000\018\156\001\000\018\152\001\000\018\148\001\000\018\144\001\000\018\140\001\000\018\136\001\000\018\132\001\000\018\128\001\000\018|\001\000\018x\001\000\018t\001\000\018p\001\000\018l\001\000\017h\005\000\017d\005\000\017(\001\000\017$\001\000\017 \001\000\017\028\001\000\018\168\002\000\018\164\002\000\018\160\002\000\018\156\002\000\018\152\002\000\018\148\002\000\018\144\002\000\018\140\002\000\017h\006\000\017d\006\000\017(\002\000\017$\002\000\018\168\003\000\018\164\003\000\018\160\003\000\018\156\003\000\017h\007\000\017(\003\000\017\168\002\000\017\164\002\000\017\160\002\000\017\156\002\000\017\152\002\000\017\148\002\000\017\144\002\000\017\140\002\000\017\136\002\000\017\132\002\000\017\128\002\000\017|\002\000\017x\002\000\017t\002\000\017p\002\000\017l\002\000\016\232\002\000\016\228\002\000\016\224\002\000\016\220\002\000\017\136\003\000\017\132\003\000\017\128\003\000\017|\003\000\017x\003\000\017t\003\000\017p\003\000\017l\003\000\016\224\003\000\016\220\003\000\0020\001\000\002,\001\000\000\164\001\000\000\160\001\000\000\144\001\000\000\132\001\000\000x\001\000\017\136\004\000\017\132\004\000\017\128\004\000\017|\004\000\017x\004\000\017t\004\000\017p\004\000\017l\004\000\016\224\004\000\016\220\004\000\r\012\001\000\r\b\001\000\017\136\005\000\017\132\005\000\017\128\005\000\017|\005\000\017x\005\000\017t\005\000\017p\005\000\017l\005\000\016\224\005\000\016\220\005\000\017\136\006\000\017\132\006\000\017\128\006\000\017|\006\000\017x\006\000\017t\006\000\017p\006\000\017l\006\000\016\224\006\000\016\220\006\000\002\028\001\000\017\136\007\000\017\132\007\000\017\128\007\000\017|\007\000\017x\007\000\017t\007\000\017p\007\000\017l\007\000\016\224\007\000\016\220\007\000\017x\b\000\017t\b\000\017p\b\000\017l\b\000\016\220\b\000\018h\001\000\018d\001\000\018`\001\000\018\\\001\000\018X\001\000\018T\001\000\018P\001\000\018L\001\000\017p\t\000\017l\t\000\017\024\001\000\017\020\001\000\018h\002\000\018d\002\000\018`\002\000\018\\\002\000\017p\n\000\017\024\002\000\016\220\t\000\018\168\001\000\018\164\001\000\018\160\001\000\018\156\001\000\018\152\001\000\018\148\001\000\018\144\001\000\018\140\001\000\018\136\001\000\018\132\001\000\018\128\001\000\018|\001\000\018x\001\000\018t\001\000\018p\001\000\018l\001\000\017x\t\000\017t\t\000\017(\001\000\017$\001\000\017 \001\000\017\028\001\000\018\168\002\000\018\164\002\000\018\160\002\000\018\156\002\000\018\152\002\000\018\148\002\000\018\144\002\000\018\140\002\000\017x\n\000\017t\n\000\017(\002\000\017$\002\000\018\168\003\000\018\164\003\000\018\160\003\000\018\156\003\000\017x\011\000\017(\003\000\017\136\b\000\017\132\b\000\017\128\b\000\017|\b\000\016\224\b\000\017\136\t\000\017\132\t\000\017\128\t\000\017|\t\000\016\224\t\000\018h\001\000\018d\001\000\018`\001\000\018\\\001\000\018X\001\000\018T\001\000\018P\001\000\018L\001\000\017\128\n\000\017|\n\000\017\024\001\000\017\020\001\000\018h\002\000\018d\002\000\018`\002\000\018\\\002\000\017\128\011\000\017\024\002\000\016\224\n\000\018\168\001\000\018\164\001\000\018\160\001\000\018\156\001\000\018\152\001\000\018\148\001\000\018\144\001\000\018\140\001\000\018\136\001\000\018\132\001\000\018\128\001\000\018|\001\000\018x\001\000\018t\001\000\018p\001\000\018l\001\000\017\136\n\000\017\132\n\000\017(\001\000\017$\001\000\017 \001\000\017\028\001\000\018\168\002\000\018\164\002\000\018\160\002\000\018\156\002\000\018\152\002\000\018\148\002\000\018\144\002\000\018\140\002\000\017\136\011\000\017\132\011\000\017(\002\000\017$\002\000\018\168\003\000\018\164\003\000\018\160\003\000\018\156\003\000\017\136\012\000\017(\003\000\017\168\003\000\017\164\003\000\017\160\003\000\017\156\003\000\017\152\003\000\017\148\003\000\017\144\003\000\017\140\003\000\016\232\003\000\016\228\003\000\017\152\004\000\017\148\004\000\017\144\004\000\017\140\004\000\016\228\004\000\018h\001\000\018d\001\000\018`\001\000\018\\\001\000\018X\001\000\018T\001\000\018P\001\000\018L\001\000\017\144\005\000\017\140\005\000\017\024\001\000\017\020\001\000\018h\002\000\018d\002\000\018`\002\000\018\\\002\000\017\144\006\000\017\024\002\000\016\228\005\000\018\168\001\000\018\164\001\000\018\160\001\000\018\156\001\000\018\152\001\000\018\148\001\000\018\144\001\000\018\140\001\000\018\136\001\000\018\132\001\000\018\128\001\000\018|\001\000\018x\001\000\018t\001\000\018p\001\000\018l\001\000\017\152\005\000\017\148\005\000\017(\001\000\017$\001\000\017 \001\000\017\028\001\000\018\168\002\000\018\164\002\000\018\160\002\000\018\156\002\000\018\152\002\000\018\148\002\000\018\144\002\000\018\140\002\000\017\152\006\000\017\148\006\000\017(\002\000\017$\002\000\018\168\003\000\018\164\003\000\018\160\003\000\018\156\003\000\017\152\007\000\017(\003\000\017\168\004\000\017\164\004\000\017\160\004\000\017\156\004\000\016\232\004\000\017\168\005\000\017\164\005\000\017\160\005\000\017\156\005\000\016\232\005\000\018h\001\000\018d\001\000\018`\001\000\018\\\001\000\018X\001\000\018T\001\000\018P\001\000\018L\001\000\017\160\006\000\017\156\006\000\017\024\001\000\017\020\001\000\018h\002\000\018d\002\000\018`\002\000\018\\\002\000\017\160\007\000\017\024\002\000\016\232\006\000\018\168\001\000\018\164\001\000\018\160\001\000\018\156\001\000\018\152\001\000\018\148\001\000\018\144\001\000\018\140\001\000\018\136\001\000\018\132\001\000\018\128\001\000\018|\001\000\018x\001\000\018t\001\000\018p\001\000\018l\001\000\017\168\006\000\017\164\006\000\017(\001\000\017$\001\000\017 \001\000\017\028\001\000\018\168\002\000\018\164\002\000\018\160\002\000\018\156\002\000\018\152\002\000\018\148\002\000\018\144\002\000\018\140\002\000\017\168\007\000\017\164\007\000\017(\002\000\017$\002\000\018\168\003\000\018\164\003\000\018\160\003\000\018\156\003\000\017\168\b\000\017(\003\000\018\168\001\000\018\164\001\000\018\160\001\000\018\156\001\000\018\152\001\000\018\148\001\000\018\144\001\000\018\140\001\000\018\136\001\000\018\132\001\000\018\128\001\000\018|\001\000\018x\001\000\018t\001\000\018p\001\000\018l\001\000\018h\004\000\018d\004\000\017(\001\000\017$\001\000\017 \001\000\017\028\001\000\018\168\002\000\018\164\002\000\018\160\002\000\018\156\002\000\018\152\002\000\018\148\002\000\018\144\002\000\018\140\002\000\018h\005\000\018d\005\000\017(\002\000\017$\002\000\018\168\003\000\018\164\003\000\018\160\003\000\018\156\003\000\018h\006\000\017(\003\000\017\020\003\000\018\168\001\000\018\164\001\000\018\160\001\000\018\156\001\000\018\152\001\000\018\148\001\000\018\144\001\000\018\140\001\000\018\136\001\000\018\132\001\000\018\128\001\000\018|\001\000\018x\001\000\018t\001\000\018p\001\000\018l\001\000\018X\003\000\018T\003\000\017(\001\000\017$\001\000\017 \001\000\017\028\001\000\018\168\002\000\018\164\002\000\018\160\002\000\018\156\002\000\018\152\002\000\018\148\002\000\018\144\002\000\018\140\002\000\018X\004\000\018T\004\000\017(\002\000\017$\002\000\018\168\003\000\018\164\003\000\018\160\003\000\018\156\003\000\018X\005\000\017(\003\000\018h\002\000\018d\002\000\018`\002\000\018\\\002\000\017\024\002\000\002,\002\000\002\028\001\000\000\148\003\000\002T\004\000\000\140\001\000\000\128\001\000\000t\001\000\002T\005\000\rp\001\000\rl\001\000\002T\006\000\002T\007\000\002P\002\000\000\140\001\000\000\128\001\000\000t\001\000\002P\003\000\rp\001\000\rl\001\000\002P\004\000\002P\005\000\0028\002\000\t\020\001\000\t\020\002\000\r\164\001\000\r4\001\000\r8\001\000\0028\003\000\0028\004\000\r8\002\000\r8\003\000\019X\001\000\019T\001\000\019T\002\000\nL\001\000\019T\003\000\019T\004\000\r \001\000\r \002\000\r \003\000\000P\001\000\000L\001\000\000H\001\000\019T\005\000\r\028\001\000\000P\001\000\000L\001\000\000H\001\000\019X\002\000\r\168\001\000\002\028\001\000\r\164\001\000\0024\002\000\0024\003\000\002<\002\000\002<\003\000\r8\001\000\002<\004\000\002<\005\000\r8\001\000\002@\003\000\002@\004\000\r8\001\000\002L\003\000\002H\003\000\002H\004\000\002L\004\000\012\252\001\000\002L\005\000\002L\006\000\012\252\002\000\012\248\001\000\019\180\002\000\002\028\001\000\019\176\001\000\019\172\001\000\019\176\002\000\019\172\002\000\002\028\001\000\019\176\003\000\019\176\004\000\002\028\001\000\012\156\004\000\012\152\004\000\012\148\004\000\012\144\004\000\012\140\004\000\012\156\005\000\012\152\005\000\012\148\005\000\012\144\005\000\012\140\005\000\012\156\006\000\012\152\006\000\012\148\006\000\012\144\006\000\012\140\006\000\012\156\007\000\012\156\001\000\012\152\007\000\012\152\001\000\012\148\001\000\012\144\001\000\012\140\001\000\012\136\001\000\012\132\001\000\012\128\001\000\012|\001\000\012x\001\000\012\156\b\000\012\156\002\000\012\152\002\000\012\148\002\000\012\144\002\000\012\140\002\000\012\156\t\000\012\156\003\000\012\152\003\000\012\148\003\000\012\144\003\000\012\140\003\000\012\156\n\000\012\156\004\000\012\152\004\000\012\148\004\000\012\144\004\000\012\140\004\000\012\156\011\000\012\156\005\000\012\152\005\000\012\148\005\000\012\144\005\000\012\140\005\000\012\152\b\000\012\136\002\000\012\132\002\000\012\128\002\000\012|\002\000\012x\002\000\012\136\003\000\012\132\003\000\012\128\003\000\012|\003\000\012x\003\000\012\156\001\000\012\152\001\000\012\148\001\000\012\144\001\000\012\140\001\000\012\136\004\000\012\136\001\000\012\132\004\000\012\132\001\000\012\128\001\000\012|\001\000\012x\001\000\012\156\002\000\012\152\002\000\012\148\002\000\012\144\002\000\012\140\002\000\012\136\005\000\012\156\003\000\012\152\003\000\012\148\003\000\012\144\003\000\012\140\003\000\012\136\006\000\012\156\004\000\012\152\004\000\012\148\004\000\012\144\004\000\012\140\004\000\012\136\007\000\012\156\005\000\012\152\005\000\012\148\005\000\012\144\005\000\012\140\005\000\012\136\b\000\012\136\002\000\012\132\005\000\012\132\002\000\012\128\002\000\012|\002\000\012x\002\000\020H\001\000\003\012\001\000\003\000\001\000\002\252\001\000\002\248\001\000\014\244\001\000\014\228\001\000\014\228\002\000\014\228\003\000\001\020\001\000\001\016\001\000\015\184\001\000\012\180\001\000\012\176\001\000\005\228\001\000\005\224\001\000\005\220\001\000\005\216\001\000\005\212\001\000\005\208\001\000\005\204\001\000\005\200\001\000\012\180\002\000\005\228\002\000\005\224\002\000\005\220\002\000\005\216\002\000\012\180\003\000\005\228\003\000\005\224\003\000\005\220\003\000\005\216\003\000\012\180\004\000\005\228\004\000\005\224\004\000\005\220\004\000\005\216\004\000\012\180\005\000\005\228\005\000\005\224\005\000\005\220\005\000\005\216\005\000\002\028\001\000\012\180\006\000\005\228\006\000\005\224\006\000\005\220\006\000\005\216\006\000\012\180\007\000\005\228\007\000\005\224\007\000\005\220\007\000\005\216\007\000\012\180\001\000\012\176\001\000\005\228\b\000\005\228\001\000\005\224\b\000\005\224\001\000\005\220\001\000\005\216\001\000\005\212\001\000\005\208\001\000\005\204\001\000\005\200\001\000\012\180\002\000\005\228\t\000\005\228\002\000\005\224\002\000\005\220\002\000\005\216\002\000\012\180\003\000\005\228\n\000\005\228\003\000\005\224\003\000\005\220\003\000\005\216\003\000\012\180\004\000\005\228\011\000\005\228\004\000\005\224\004\000\005\220\004\000\005\216\004\000\012\180\005\000\005\228\012\000\005\228\005\000\005\224\005\000\005\220\005\000\005\216\005\000\002\028\001\000\012\180\006\000\005\228\r\000\005\228\006\000\005\224\006\000\005\220\006\000\005\216\006\000\012\176\002\000\005\224\t\000\005\212\002\000\005\208\002\000\005\204\002\000\005\200\002\000\012\176\003\000\005\212\003\000\005\208\003\000\005\204\003\000\005\200\003\000\012\180\001\000\012\176\001\000\005\228\001\000\005\224\001\000\005\220\001\000\005\216\001\000\005\212\004\000\005\212\001\000\005\208\004\000\005\208\001\000\005\204\001\000\005\200\001\000\012\180\002\000\005\228\002\000\005\224\002\000\005\220\002\000\005\216\002\000\005\212\005\000\012\180\003\000\005\228\003\000\005\224\003\000\005\220\003\000\005\216\003\000\005\212\006\000\012\180\004\000\005\228\004\000\005\224\004\000\005\220\004\000\005\216\004\000\005\212\007\000\012\180\005\000\005\228\005\000\005\224\005\000\005\220\005\000\005\216\005\000\005\212\b\000\002\028\001\000\012\180\006\000\005\228\006\000\005\224\006\000\005\220\006\000\005\216\006\000\005\212\t\000\012\176\002\000\005\212\002\000\005\208\005\000\005\208\002\000\005\204\002\000\005\200\002\000\014p\001\000\014l\001\000\014\\\001\000\014X\001\000\014l\002\000\014X\002\000\014\\\002\000\014p\002\000\014h\001\000\014d\001\000\014T\001\000\014P\001\000\014d\002\000\014P\002\000\014T\002\000\014h\002\000\020\028\001\000\015\228\001\000\015\180\001\000\015\176\001\000\015\168\001\000\001\240\001\000\001\208\001\000\014p\001\000\014l\001\000\014\\\001\000\014X\001\000\n\016\001\000\015\180\002\000\015\176\002\000\015\180\003\000\015\176\003\000\015\180\004\000\015\176\004\000\b\136\001\000\b\132\001\000\015\180\005\000\015\176\005\000\015\176\006\000\015\180\006\000\b\172\001\000\b\172\002\000\b\172\003\000\b\172\004\000\b\128\001\000\b`\001\000\b`\002\000\019(\001\000\019$\001\000\004\172\001\000\004\168\001\000\019(\002\000\019$\002\000\004\172\002\000\004\168\002\000\019(\003\000\019$\003\000\004\172\003\000\004\168\003\000\019(\004\000\004\172\004\000\019(\005\000\004\172\005\000\019\220\001\000\004\172\006\000\004\172\007\000\004\172\b\000\012\212\001\000\004\172\t\000\011\188\001\000\011\188\002\000\007L\001\000\007H\001\000\004\212\001\000\000@\001\000\000<\001\000\002\180\001\000\002\176\001\000\002\180\002\000\002\176\002\000\002\180\003\000\002\176\003\000\004@\001\000\014\216\001\000\014\216\002\000\014\216\003\000\b\020\001\000\b \001\000\b\024\001\000\b \002\000\b\024\002\000\b \003\000\b\024\003\000\b4\001\000\001\012\001\000\014\216\004\000\019P\001\000\019L\001\000\002\168\001\000\002\168\002\000\002\168\003\000\020\028\001\000\014\224\001\000\014\220\001\000\014\168\001\000\014\164\001\000\014\160\001\000\001\240\001\000\001\208\001\000\014\244\001\000\t\196\001\000\015\156\001\000\015\152\001\000\015x\001\000\015t\001\000\0048\001\000\020 \001\000\003\224\001\000\003\220\001\000\003\224\002\000\003\220\002\000\003\208\001\000\012\204\001\000\012\200\001\000\0064\001\000\0060\001\000\006,\001\000\006(\001\000\006$\001\000\006 \001\000\006\028\001\000\006\024\001\000\012\204\002\000\0064\002\000\0060\002\000\006,\002\000\006(\002\000\012\204\003\000\0064\003\000\0060\003\000\006,\003\000\006(\003\000\012\204\004\000\0064\004\000\0060\004\000\006,\004\000\006(\004\000\012\204\005\000\0064\005\000\0060\005\000\006,\005\000\006(\005\000\002\028\001\000\012\204\006\000\0064\006\000\0060\006\000\006,\006\000\006(\006\000\012\204\007\000\0064\007\000\0060\007\000\006,\007\000\006(\007\000\012\204\001\000\012\200\001\000\0064\b\000\0064\001\000\0060\b\000\0060\001\000\006,\001\000\006(\001\000\006$\001\000\006 \001\000\006\028\001\000\006\024\001\000\012\204\002\000\0064\t\000\0064\002\000\0060\002\000\006,\002\000\006(\002\000\012\204\003\000\0064\n\000\0064\003\000\0060\003\000\006,\003\000\006(\003\000\012\204\004\000\0064\011\000\0064\004\000\0060\004\000\006,\004\000\006(\004\000\012\204\005\000\0064\012\000\0064\005\000\0060\005\000\006,\005\000\006(\005\000\002\028\001\000\012\204\006\000\0064\r\000\0064\006\000\0060\006\000\006,\006\000\006(\006\000\012\200\002\000\0060\t\000\006$\002\000\006 \002\000\006\028\002\000\006\024\002\000\012\200\003\000\006$\003\000\006 \003\000\006\028\003\000\006\024\003\000\012\204\001\000\012\200\001\000\0064\001\000\0060\001\000\006,\001\000\006(\001\000\006$\004\000\006$\001\000\006 \004\000\006 \001\000\006\028\001\000\006\024\001\000\012\204\002\000\0064\002\000\0060\002\000\006,\002\000\006(\002\000\006$\005\000\012\204\003\000\0064\003\000\0060\003\000\006,\003\000\006(\003\000\006$\006\000\012\204\004\000\0064\004\000\0060\004\000\006,\004\000\006(\004\000\006$\007\000\012\204\005\000\0064\005\000\0060\005\000\006,\005\000\006(\005\000\006$\b\000\002\028\001\000\012\204\006\000\0064\006\000\0060\006\000\006,\006\000\006(\006\000\006$\t\000\012\200\002\000\006$\002\000\006 \005\000\006 \002\000\006\028\002\000\006\024\002\000\014\140\001\000\014\136\001\000\014\132\001\000\014\128\001\000\014|\001\000\001\204\001\000\001\204\002\000\014t\001\000\005,\001\000\014t\002\000\014t\003\000\007\140\001\000\007\136\001\000\007\132\001\000\007\128\001\000\n\136\001\000\n\136\002\000\002\028\001\000\007\140\002\000\007\136\002\000\007\132\002\000\007\128\002\000\n\164\001\000\011t\001\000\011t\002\000\011t\003\000\020@\001\000\015\204\001\000\019\220\001\000\015\204\002\000\b0\001\000\b\016\001\000\007\224\001\000\b\016\002\000\007\224\002\000\020\012\001\000\020\016\001\000\014\144\001\000\012\172\001\000\005\196\001\000\005\192\001\000\005\188\001\000\005\184\001\000\014x\001\000\014x\002\000\014x\003\000\015\200\001\000\015\200\002\000\020L\001\000\001\212\001\000\020D\001\000\014`\001\000\015\160\001\000\020$\001\000\014L\001\000\015\164\001\000\012\172\002\000\005\196\002\000\005\192\002\000\005\188\002\000\005\184\002\000\012\172\003\000\005\196\003\000\005\192\003\000\005\188\003\000\005\184\003\000\012\180\001\000\012\176\001\000\005\228\001\000\005\224\001\000\005\220\001\000\005\216\001\000\005\212\001\000\005\208\001\000\005\204\001\000\005\200\001\000\005\196\004\000\005\192\004\000\012\180\002\000\005\228\002\000\005\224\002\000\005\220\002\000\005\216\002\000\005\196\005\000\012\180\003\000\005\228\003\000\005\224\003\000\005\220\003\000\005\216\003\000\005\196\006\000\012\180\004\000\005\228\004\000\005\224\004\000\005\220\004\000\005\216\004\000\005\196\007\000\012\180\005\000\005\228\005\000\005\224\005\000\005\220\005\000\005\216\005\000\005\196\b\000\002\028\001\000\012\180\006\000\005\228\006\000\005\224\006\000\005\220\006\000\005\216\006\000\005\196\t\000\012\176\002\000\005\212\002\000\005\208\002\000\005\204\002\000\005\200\002\000\005\192\005\000\012\172\001\000\005\196\001\000\005\192\001\000\005\188\004\000\005\188\001\000\005\184\001\000\012\172\002\000\005\196\002\000\005\192\002\000\005\188\005\000\005\188\002\000\005\184\002\000\015\172\001\000\015\188\001\000\014H\001\000\015\188\002\000\014p\001\000\014l\001\000\014h\001\000\014d\001\000\015\188\003\000\015\232\001\000\015\196\001\000\015\220\001\000\015\216\001\000\015\212\001\000\015\208\001\000\b \001\000\001\236\001\000\001\232\001\000\015\220\002\000\015\216\002\000\015\212\002\000\015\208\002\000\b \002\000\001\236\002\000\015\220\003\000\015\216\003\000\001\236\003\000\015\216\004\000\011`\001\000\011`\002\000\011`\003\000\011d\001\000\011\\\001\000\011P\001\000\012\168\001\000\011`\004\000\011X\001\000\011T\001\000\011L\001\000\011H\001\000\005\180\001\000\005\176\001\000\005\172\001\000\005\168\001\000\012\168\002\000\005\180\002\000\005\176\002\000\005\172\002\000\005\168\002\000\012\180\001\000\012\176\001\000\005\228\001\000\005\224\001\000\005\220\001\000\005\216\001\000\005\212\001\000\005\208\001\000\005\204\001\000\005\200\001\000\005\180\003\000\005\176\003\000\012\180\002\000\005\228\002\000\005\224\002\000\005\220\002\000\005\216\002\000\005\180\004\000\012\180\003\000\005\228\003\000\005\224\003\000\005\220\003\000\005\216\003\000\005\180\005\000\012\180\004\000\005\228\004\000\005\224\004\000\005\220\004\000\005\216\004\000\005\180\006\000\012\180\005\000\005\228\005\000\005\224\005\000\005\220\005\000\005\216\005\000\005\180\007\000\002\028\001\000\012\180\006\000\005\228\006\000\005\224\006\000\005\220\006\000\005\216\006\000\005\180\b\000\012\176\002\000\005\212\002\000\005\208\002\000\005\204\002\000\005\200\002\000\005\176\004\000\012\172\001\000\005\196\001\000\005\192\001\000\005\188\001\000\005\184\001\000\005\172\003\000\012\172\002\000\005\196\002\000\005\192\002\000\005\188\002\000\005\184\002\000\005\172\004\000\015\224\001\000\015\192\001\000\001\244\001\000\012\168\003\000\012\168\001\000\011X\001\000\011T\001\000\011L\001\000\011H\001\000\005\180\001\000\005\176\001\000\005\172\001\000\005\168\003\000\005\168\001\000\011H\002\000\012\168\001\000\011X\001\000\011T\001\000\011L\001\000\011H\003\000\011H\001\000\005\180\001\000\005\176\001\000\005\172\001\000\005\168\001\000\011X\002\000\012\168\001\000\011X\003\000\011X\001\000\011T\001\000\011L\001\000\011H\001\000\005\180\001\000\005\176\001\000\005\172\001\000\005\168\001\000\011T\002\000\011T\003\000\011L\002\000\015\196\001\000\011p\001\000\012\168\001\000\011p\002\000\011X\001\000\011T\001\000\011L\001\000\011H\001\000\005\180\001\000\005\176\001\000\005\172\001\000\005\168\001\000\012\164\001\000\012\160\001\000\005\164\001\000\005\160\001\000\005\156\001\000\005\152\001\000\012\164\002\000\005\164\002\000\005\160\002\000\005\156\002\000\005\152\002\000\012\180\001\000\012\176\001\000\005\228\001\000\005\224\001\000\005\220\001\000\005\216\001\000\005\212\001\000\005\208\001\000\005\204\001\000\005\200\001\000\005\164\003\000\005\160\003\000\012\180\002\000\005\228\002\000\005\224\002\000\005\220\002\000\005\216\002\000\005\164\004\000\012\180\003\000\005\228\003\000\005\224\003\000\005\220\003\000\005\216\003\000\005\164\005\000\012\180\004\000\005\228\004\000\005\224\004\000\005\220\004\000\005\216\004\000\005\164\006\000\012\180\005\000\005\228\005\000\005\224\005\000\005\220\005\000\005\216\005\000\005\164\007\000\002\028\001\000\012\180\006\000\005\228\006\000\005\224\006\000\005\220\006\000\005\216\006\000\005\164\b\000\012\176\002\000\005\212\002\000\005\208\002\000\005\204\002\000\005\200\002\000\005\160\004\000\012\172\001\000\005\196\001\000\005\192\001\000\005\188\001\000\005\184\001\000\005\156\003\000\012\172\002\000\005\196\002\000\005\192\002\000\005\188\002\000\005\184\002\000\005\156\004\000\012\164\003\000\012\168\001\000\011X\001\000\011T\001\000\011L\001\000\011H\001\000\005\180\001\000\005\176\001\000\005\172\001\000\005\168\001\000\005\152\003\000\015\192\001\000\011l\001\000\011h\001\000\020\028\001\000\015\228\001\000\015\180\001\000\015\176\001\000\015\168\001\000\011l\002\000\001\240\001\000\001\208\001\000\011l\003\000\011l\004\000\011l\005\000\011l\006\000\014h\001\000\014d\001\000\014T\001\000\014P\001\000\n\028\001\000\001\240\002\000\001\240\003\000\015\228\002\000\015\168\002\000\012\168\001\000\011X\001\000\011T\001\000\011L\001\000\011H\001\000\005\180\001\000\005\176\001\000\005\172\001\000\005\168\001\000\015\168\003\000\015\228\003\000\015\228\004\000\002\028\001\000\015\228\005\000\012\168\001\000\011h\002\000\011X\001\000\011T\001\000\011L\001\000\011H\001\000\005\180\001\000\005\176\001\000\005\172\001\000\005\168\001\000\001\236\004\000\001\236\005\000\015\220\004\000\012\168\001\000\011X\001\000\011T\001\000\011L\001\000\011H\001\000\005\180\001\000\005\176\001\000\005\172\001\000\005\168\001\000\015\220\005\000\015\212\003\000\014|\001\000\015\212\004\000\014|\002\000\014|\003\000\r\216\001\000\r\212\001\000\r\208\001\000\012\168\001\000\011X\001\000\011T\001\000\011L\001\000\011H\001\000\005\180\001\000\005\176\001\000\005\172\001\000\005\168\001\000\r\216\002\000\r\212\002\000\r\216\003\000\015\208\003\000\012\172\004\000\012\168\001\000\011X\001\000\011T\001\000\011L\001\000\011H\001\000\005\184\004\000\005\180\001\000\005\176\001\000\005\172\001\000\005\168\001\000\014\144\002\000\011\\\001\000\014\144\003\000\012\168\001\000\011X\001\000\011T\001\000\011L\001\000\011H\001\000\005\180\001\000\005\176\001\000\005\172\001\000\005\168\001\000\011t\004\000\012\168\001\000\011X\001\000\011T\001\000\011L\001\000\011H\001\000\n\164\002\000\005\180\001\000\005\176\001\000\005\172\001\000\005\168\001\000\007\140\003\000\007\136\003\000\007\132\003\000\007\128\003\000\007\140\004\000\007\136\004\000\007\132\004\000\007\136\005\000\n`\001\000\007\136\006\000\007\140\005\000\014\132\002\000\014\128\002\000\014\128\003\000\014\140\002\000\014\136\002\000\014\136\003\000\012\196\001\000\006\028\004\000\006\020\001\000\006\016\001\000\006\012\001\000\006\b\001\000\012\196\002\000\006\028\005\000\006\020\002\000\006\016\002\000\006\012\002\000\006\b\002\000\012\196\003\000\006\020\003\000\006\016\003\000\006\012\003\000\006\b\003\000\012\204\001\000\012\200\001\000\0064\001\000\0060\001\000\006,\001\000\006(\001\000\006$\001\000\006 \001\000\006\028\001\000\006\024\001\000\006\020\004\000\006\016\004\000\012\204\002\000\0064\002\000\0060\002\000\006,\002\000\006(\002\000\006\020\005\000\012\204\003\000\0064\003\000\0060\003\000\006,\003\000\006(\003\000\006\020\006\000\012\204\004\000\0064\004\000\0060\004\000\006,\004\000\006(\004\000\006\020\007\000\012\204\005\000\0064\005\000\0060\005\000\006,\005\000\006(\005\000\006\020\b\000\002\028\001\000\012\204\006\000\0064\006\000\0060\006\000\006,\006\000\006(\006\000\006\020\t\000\012\200\002\000\006$\002\000\006 \002\000\006\028\002\000\006\024\002\000\006\016\005\000\012\196\001\000\006\020\001\000\006\016\001\000\006\012\004\000\006\012\001\000\006\b\001\000\012\196\002\000\006\020\002\000\006\016\002\000\006\012\005\000\006\012\002\000\006\b\002\000\012\196\004\000\011\140\001\000\012\192\001\000\011\136\001\000\011\132\001\000\011|\001\000\011x\001\000\006\b\004\000\006\004\001\000\006\000\001\000\005\252\001\000\005\248\001\000\012\192\002\000\006\004\002\000\006\000\002\000\005\252\002\000\005\248\002\000\012\204\001\000\012\200\001\000\0064\001\000\0060\001\000\006,\001\000\006(\001\000\006$\001\000\006 \001\000\006\028\001\000\006\024\001\000\006\004\003\000\006\000\003\000\012\204\002\000\0064\002\000\0060\002\000\006,\002\000\006(\002\000\006\004\004\000\012\204\003\000\0064\003\000\0060\003\000\006,\003\000\006(\003\000\006\004\005\000\012\204\004\000\0064\004\000\0060\004\000\006,\004\000\006(\004\000\006\004\006\000\012\204\005\000\0064\005\000\0060\005\000\006,\005\000\006(\005\000\006\004\007\000\002\028\001\000\012\204\006\000\0064\006\000\0060\006\000\006,\006\000\006(\006\000\006\004\b\000\012\200\002\000\006$\002\000\006 \002\000\006\028\002\000\006\024\002\000\006\000\004\000\012\196\001\000\006\020\001\000\006\016\001\000\006\012\001\000\006\b\001\000\005\252\003\000\012\196\002\000\006\020\002\000\006\016\002\000\006\012\002\000\006\b\002\000\005\252\004\000\012\192\003\000\012\192\001\000\011\136\001\000\011\132\001\000\011|\001\000\011x\001\000\006\004\001\000\006\000\001\000\005\252\001\000\005\248\003\000\005\248\001\000\011x\002\000\012\168\001\000\011x\003\000\011X\001\000\011T\001\000\011L\001\000\011H\001\000\005\180\001\000\005\176\001\000\005\172\001\000\005\168\001\000\011\136\002\000\012\168\001\000\011\136\003\000\011X\001\000\011T\001\000\011L\001\000\011H\001\000\005\180\001\000\005\176\001\000\005\172\001\000\005\168\001\000\011\132\002\000\011\132\003\000\011|\002\000\011\128\001\000\012\188\001\000\012\184\001\000\005\244\001\000\005\240\001\000\005\236\001\000\005\232\001\000\012\188\002\000\005\244\002\000\005\240\002\000\005\236\002\000\005\232\002\000\012\204\001\000\012\200\001\000\0064\001\000\0060\001\000\006,\001\000\006(\001\000\006$\001\000\006 \001\000\006\028\001\000\006\024\001\000\005\244\003\000\005\240\003\000\012\204\002\000\0064\002\000\0060\002\000\006,\002\000\006(\002\000\005\244\004\000\012\204\003\000\0064\003\000\0060\003\000\006,\003\000\006(\003\000\005\244\005\000\012\204\004\000\0064\004\000\0060\004\000\006,\004\000\006(\004\000\005\244\006\000\012\204\005\000\0064\005\000\0060\005\000\006,\005\000\006(\005\000\005\244\007\000\002\028\001\000\012\204\006\000\0064\006\000\0060\006\000\006,\006\000\006(\006\000\005\244\b\000\012\200\002\000\006$\002\000\006 \002\000\006\028\002\000\006\024\002\000\005\240\004\000\012\196\001\000\006\020\001\000\006\016\001\000\006\012\001\000\006\b\001\000\005\236\003\000\012\196\002\000\006\020\002\000\006\016\002\000\006\012\002\000\006\b\002\000\005\236\004\000\012\188\003\000\012\192\001\000\011\136\001\000\011\132\001\000\011|\001\000\011x\001\000\006\004\001\000\006\000\001\000\005\252\001\000\005\248\001\000\005\232\003\000\012\200\004\000\012\192\001\000\011\136\001\000\011\132\001\000\011|\001\000\011x\001\000\006\024\004\000\006\004\001\000\006\000\001\000\005\252\001\000\005\248\001\000\012\196\001\000\006,\b\000\006\020\001\000\006\016\001\000\006\012\001\000\006\b\001\000\012\196\002\000\006,\t\000\006\020\002\000\006\016\002\000\006\012\002\000\006\b\002\000\012\204\b\000\012\192\001\000\011\136\001\000\011\132\001\000\011|\001\000\011x\001\000\006(\b\000\006\004\001\000\006\000\001\000\005\252\001\000\005\248\001\000\012\200\002\000\006$\002\000\006 \002\000\006\028\002\000\006\024\002\000\012\196\001\000\006\020\001\000\006\016\001\000\006\012\001\000\006\b\001\000\012\196\002\000\006\020\002\000\006\016\002\000\006\012\002\000\006\b\002\000\015\160\001\000\006\220\001\000\006\216\001\000\005h\001\000\005d\001\000\005`\001\000\005d\002\000\005`\002\000\005(\001\000\005$\001\000\005 \001\000\005\028\001\000\005\024\001\000\005\020\001\000\005(\002\000\005$\002\000\005 \002\000\005\028\002\000\r\012\001\000\r\b\001\000\005(\003\000\005$\003\000\005(\004\000\005$\004\000\005(\005\000\005$\005\000\002\028\001\000\000h\001\000\000h\002\000\005(\006\000\005 \003\000\005\028\003\000\002\028\001\000\005 \004\000\005\024\002\000\005d\003\000\005d\004\000\005d\005\000\005`\003\000\005`\004\000\005h\002\000\005P\001\000\005L\001\000\005H\001\000\005L\002\000\005H\002\000\005L\003\000\005L\004\000\n\172\001\000\006\140\001\000\002\164\001\000\002\160\001\000\002\156\001\000\002\152\001\000\002\164\002\000\002\160\002\000\002\164\003\000\002\164\004\000\002\164\005\000\011\012\001\000\011\b\001\000\011\004\001\000\011\000\001\000\n\252\001\000\n\248\001\000\n\244\001\000\n\240\001\000\n\236\001\000\n\232\001\000\n\228\001\000\n\224\001\000\011\012\002\000\011\b\002\000\011\004\002\000\011\000\002\000\n\252\002\000\n\248\002\000\n\244\002\000\n\240\002\000\011\012\003\000\011\b\003\000\011\004\003\000\011\000\003\000\n\252\003\000\n\248\003\000\n\244\003\000\n\240\003\000\015\148\001\000\015\144\001\000\015<\001\000\0158\001\000\015\140\001\000\015\136\001\000\015H\001\000\001\204\001\000\015\000\001\000\014\252\001\000\r\204\001\000\r\200\001\000\r\196\001\000\n\148\001\000\n\144\001\000\015,\001\000\020 \001\000\b\020\001\000\015p\001\000\002\220\001\000\002\220\002\000\002\220\003\000\0150\001\000\014\156\001\000\014\152\001\000\014\148\001\000\012t\001\000\012p\001\000\012l\001\000\012h\001\000\012d\001\000\014\212\001\000\014\208\001\000\014\212\002\000\014\208\002\000\014\212\003\000\014\208\003\000\002\204\001\000\002\200\001\000\002\196\001\000\002\192\001\000\002\188\001\000\002\184\001\000\002\204\002\000\002\200\002\000\002\196\002\000\002\192\002\000\002\188\002\000\002\184\002\000\002\204\003\000\002\200\003\000\002\196\003\000\002\192\003\000\002\188\003\000\002\184\003\000\r\236\001\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\r\236\002\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\r\236\003\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\r\020\001\000\012\168\001\000\011X\001\000\011T\001\000\011L\001\000\011H\001\000\007\152\001\000\007\148\001\000\007\144\001\000\005\180\001\000\005\176\001\000\005\172\001\000\005\168\001\000\007\148\002\000\002\136\001\000\002\136\002\000\002\136\003\000\005\\\001\000\005X\001\000\005T\001\000\011\148\001\000\005X\002\000\005T\002\000\020\028\001\000\015\228\001\000\015\180\001\000\015\176\001\000\015\168\001\000\006\184\001\000\001\240\001\000\001\208\001\000\020\028\001\000\015\228\001\000\015\180\001\000\015\176\001\000\015\168\001\000\006\212\001\000\001\240\001\000\001\208\001\000\015\228\002\000\015\168\002\000\012\168\001\000\011X\001\000\011T\001\000\011L\001\000\011H\001\000\006\208\001\000\006\204\001\000\006\200\001\000\005\180\001\000\005\176\001\000\005\172\001\000\005\168\001\000\015\228\003\000\006\208\002\000\006\204\002\000\r\012\001\000\r\b\001\000\006\208\003\000\006\208\004\000\006\208\005\000\002\028\001\000\006\208\006\000\015\228\004\000\006\204\003\000\002\028\001\000\006\204\004\000\006\200\002\000\006\212\002\000\006\212\003\000\006\184\002\000\006\184\003\000\012\168\001\000\011X\001\000\011T\001\000\011L\001\000\011H\001\000\006\180\001\000\006\176\001\000\006\172\001\000\006\168\001\000\006\164\001\000\006\160\001\000\005\180\001\000\005\176\001\000\005\172\001\000\005\168\001\000\006\180\002\000\006\176\002\000\006\172\002\000\006\168\002\000\r\012\001\000\r\b\001\000\006\180\003\000\006\176\003\000\006\180\004\000\006\176\004\000\006\180\005\000\006\176\005\000\002\028\001\000\006\180\006\000\006\172\003\000\006\168\003\000\002\028\001\000\006\172\004\000\006\164\002\000\005X\003\000\005X\004\000\005X\005\000\005X\006\000\005T\003\000\005T\004\000\005T\005\000\011\144\001\000\005\\\002\000\020\028\001\000\015\228\001\000\015\180\001\000\015\176\001\000\015\168\001\000\005\148\001\000\005\136\001\000\005\132\001\000\005\128\001\000\004L\001\000\004H\001\000\001\240\001\000\001\208\001\000\004L\002\000\004H\002\000\t\028\001\000\t\028\002\000\t\028\003\000\011\240\001\000\t\028\004\000\004\228\001\000\004\224\001\000\t\028\005\000\t\024\001\000\004L\003\000\004L\004\000\011\240\001\000\004\228\001\000\004\224\001\000\004L\005\000\004L\006\000\t \001\000\004H\003\000\004H\004\000\tX\001\000\tT\001\000\t\024\001\000\tX\002\000\015\228\002\000\015\168\002\000\012\168\001\000\011X\001\000\011T\001\000\011L\001\000\011H\001\000\006\208\001\000\006\204\001\000\006\200\001\000\005\180\001\000\005\176\001\000\005\172\001\000\005\168\001\000\005\148\002\000\015\228\003\000\006\208\002\000\006\204\002\000\005\148\003\000\r\012\001\000\r\b\001\000\006\208\003\000\005\148\004\000\006\208\004\000\005\148\005\000\006\208\005\000\005\148\006\000\002\028\001\000\005\148\007\000\005\136\002\000\005\128\002\000\012\168\001\000\011X\001\000\011T\001\000\011L\001\000\011H\001\000\006\208\001\000\006\204\001\000\006\200\001\000\006\196\001\000\006\192\001\000\006\188\001\000\005\180\001\000\005\176\001\000\005\172\001\000\005\168\001\000\006\208\002\000\006\204\002\000\006\196\002\000\006\192\002\000\r\012\001\000\r\b\001\000\006\208\003\000\006\196\003\000\006\208\004\000\006\196\004\000\006\208\005\000\006\196\005\000\002\028\001\000\006\204\003\000\006\192\003\000\002\028\001\000\005\136\003\000\005\136\004\000\005\128\003\000\005\128\004\000\005\132\002\000\005\132\003\000\005\144\001\000\005\140\001\000\005x\001\000\005t\001\000\005p\001\000\005l\001\000\020\028\001\000\015\228\001\000\015\180\001\000\015\176\001\000\015\168\001\000\005\144\002\000\005\140\002\000\005x\002\000\005t\002\000\005p\002\000\001\240\001\000\001\208\001\000\015\228\002\000\015\168\002\000\012\168\001\000\011X\001\000\011T\001\000\011L\001\000\011H\001\000\006\208\001\000\006\204\001\000\006\200\001\000\005\180\001\000\005\176\001\000\005\172\001\000\005\168\001\000\005\140\003\000\015\228\003\000\006\208\002\000\006\204\002\000\005\140\004\000\r\012\001\000\r\b\001\000\006\208\003\000\005\140\005\000\006\208\004\000\005\140\006\000\006\208\005\000\005\140\007\000\002\028\001\000\005\140\b\000\005\144\003\000\005x\003\000\005t\003\000\012\168\001\000\011X\001\000\011T\001\000\011L\001\000\011H\001\000\006\208\001\000\006\204\001\000\006\200\001\000\005\180\001\000\005\176\001\000\005\172\001\000\005\168\001\000\005\144\004\000\005x\004\000\005x\005\000\006\208\002\000\006\204\002\000\005\144\005\000\r\012\001\000\r\b\001\000\006\208\003\000\005\144\006\000\006\208\004\000\005\144\007\000\006\208\005\000\005\144\b\000\002\028\001\000\005\144\t\000\006\204\003\000\002\028\001\000\005t\004\000\005t\005\000\005p\003\000\005p\004\000\005l\002\000\005|\001\000\012\220\001\000\004T\001\000\004P\001\000\012\220\002\000\002\136\004\000\n\204\001\000\n\200\001\000\n\204\002\000\n\200\002\000\000\140\001\000\000\128\001\000\000t\001\000\n\204\003\000\002\136\005\000\002\136\006\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\002\140\001\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\002\140\002\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\002\140\003\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\002\140\004\000\012`\005\000\012\\\005\000\012X\005\000\012T\005\000\012P\005\000\012\156\001\000\012\152\001\000\012\148\001\000\012\144\001\000\012\140\001\000\012\136\001\000\012\132\001\000\012\128\001\000\012|\001\000\012x\001\000\012`\006\000\012\\\006\000\012\156\002\000\012\152\002\000\012\148\002\000\012\144\002\000\012\140\002\000\012`\007\000\012\156\003\000\012\152\003\000\012\148\003\000\012\144\003\000\012\140\003\000\012`\b\000\012\156\004\000\012\152\004\000\012\148\004\000\012\144\004\000\012\140\004\000\012`\t\000\012\156\005\000\012\152\005\000\012\148\005\000\012\144\005\000\012\140\005\000\012`\n\000\012\136\002\000\012\132\002\000\012\128\002\000\012|\002\000\012x\002\000\012\\\007\000\012t\001\000\012p\001\000\012l\001\000\012h\001\000\012d\001\000\012X\006\000\014\248\001\000\001\196\001\000\014\232\001\000\b$\001\000\001\200\001\000\015\028\001\000\015\024\001\000\015\020\001\000\015\b\001\000\015\004\001\000\014\248\002\000\014\204\001\000\014\200\001\000\014\196\001\000\014\192\001\000\014\188\001\000\014\184\001\000\014\180\001\000\014\176\001\000\014\172\001\000\015\024\002\000\015\024\003\000\015\028\002\000\015\028\003\000\015\028\001\000\015\024\001\000\015\020\001\000\015\b\001\000\015\004\001\000\014\204\001\000\014\200\001\000\014\196\001\000\014\192\001\000\014\188\001\000\014\184\001\000\014\180\001\000\014\176\001\000\014\172\001\000\015\020\002\000\015\020\003\000\014\200\002\000\014\192\002\000\014\184\002\000\014\184\003\000\r\192\001\000\r\184\001\000\r\180\001\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\r\192\002\000\r\184\002\000\r\180\002\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\r\192\003\000\r\184\003\000\r\180\003\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\r\192\004\000\r\184\004\000\r\180\004\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\r\192\005\000\r\184\005\000\002\212\001\000\002\212\002\000\002\212\003\000\012\168\001\000\011X\001\000\011T\001\000\011L\001\000\011H\001\000\005\180\001\000\005\176\001\000\005\172\001\000\005\168\001\000\002\212\004\000\002\212\005\000\004D\001\000\002\216\001\000\002\216\002\000\002\216\003\000\015\028\001\000\015\024\001\000\015\020\001\000\015\b\001\000\015\004\001\000\014\204\001\000\014\200\001\000\014\196\001\000\014\192\001\000\014\188\001\000\014\184\001\000\014\180\001\000\014\176\001\000\014\172\001\000\002\216\004\000\015\b\002\000\015\b\003\000\015\004\002\000\014\204\002\000\014\196\002\000\014\188\002\000\014\180\002\000\014\176\002\000\014\172\002\000\014\172\003\000\002\228\001\000\002\224\001\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\002\228\002\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\002\228\003\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\002\228\004\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\002\228\005\000\r\024\002\000\r\024\003\000\r\016\001\000\015\028\001\000\015\024\001\000\015\020\001\000\015\b\001\000\015\004\001\000\014\204\001\000\014\200\001\000\014\196\001\000\014\192\001\000\014\188\001\000\014\184\001\000\014\180\001\000\014\176\001\000\014\172\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\002\244\001\000\002\148\001\000\005<\001\000\0058\001\000\005<\002\000\005<\003\000\005<\004\000\005<\005\000\0058\002\000\005@\001\000\005@\002\000\005D\001\000\015\028\001\000\015\024\001\000\015\020\001\000\015\b\001\000\015\004\001\000\014\204\001\000\014\200\001\000\014\196\001\000\014\192\001\000\014\188\001\000\014\184\001\000\014\180\001\000\014\176\001\000\014\172\001\000\005D\002\000\014\240\001\000\015\128\001\000\015|\001\000\015l\001\000\015h\001\000\015d\001\000\015`\001\000\015\\\001\000\015X\001\000\015T\001\000\015P\001\000\015L\001\000\015D\001\000\015@\001\000\0154\001\000\015(\001\000\015\016\001\000\015\012\001\000\b(\001\000\b \001\000\001\236\001\000\001\232\001\000\015\128\002\000\015|\002\000\015l\002\000\015h\002\000\015d\002\000\015`\002\000\015\\\002\000\015X\002\000\015T\002\000\015P\002\000\015L\002\000\015D\002\000\015@\002\000\0154\002\000\015(\002\000\015\016\002\000\015\012\002\000\b(\002\000\b \002\000\001\236\002\000\020\028\001\000\015l\003\000\015(\003\000\015\012\003\000\001\236\003\000\015(\004\000\n\020\001\000\000@\001\000\n\016\001\000\000<\001\000\015l\004\000\015l\005\000\015l\006\000\bd\001\000\bd\002\000\004x\001\000\004t\001\000\004p\001\000\004p\002\000\004x\002\000\004t\002\000\004x\003\000\004t\003\000\b\192\001\000\b\188\001\000\b\176\001\000\b\192\002\000\b\188\002\000\b\192\003\000\b\188\003\000\b\168\001\000\b\164\001\000\b\168\002\000\b\164\002\000\012\236\001\000\004|\001\000\012\236\002\000\b\168\003\000\b\164\003\000\b\168\004\000\b\164\004\000\b\184\001\000\b\220\001\000\b\212\001\000\b\208\001\000\b\204\001\000\b\200\001\000\b\196\001\000\b\180\001\000\b\168\005\000\b\164\005\000\b\220\002\000\b\212\002\000\020x\001\000\020t\001\000\020x\002\000\020t\002\000\020x\003\000\020t\003\000\020\144\001\000\020\140\001\000\020\144\002\000\020x\004\000\020x\005\000\000P\001\000\000L\001\000\000H\001\000\020t\004\000\020t\005\000\000P\001\000\000L\001\000\000H\001\000\020t\006\000\012\212\001\000\012\212\002\000\012\212\003\000\002\028\001\000\012\212\004\000\012\212\005\000\002\028\001\000\019\208\001\000\020\136\001\000\020\132\001\000\020\128\001\000\020|\001\000\020\136\002\000\020\132\002\000\020\136\003\000\020\132\003\000\020\132\004\000\020\132\005\000\b\220\001\000\b\212\001\000\b\208\001\000\b\204\001\000\b\200\001\000\b\196\001\000\b\180\001\000\b\200\002\000\b\196\002\000\b\220\001\000\b\212\001\000\b\208\001\000\b\204\001\000\b\200\003\000\b\200\001\000\b\196\003\000\b\196\001\000\b\180\001\000\b\180\002\000\b\208\002\000\b\204\002\000\b\200\004\000\b\208\003\000\b\204\003\000\b\220\001\000\b\212\001\000\b\208\004\000\b\208\001\000\b\204\004\000\b\204\001\000\b\200\001\000\b\196\001\000\b\180\001\000\b\208\005\000\b\208\002\000\b\204\002\000\b0\001\000\b\000\001\000\007\224\001\000\b\000\002\000\007\224\002\000\007\224\003\000\004\176\001\000\b\000\003\000\b\232\001\000\007\252\001\000\b\216\001\000\b\208\002\000\b\204\002\000\020\136\004\000\020\136\005\000\b\220\001\000\b\212\001\000\b\208\001\000\b\204\001\000\b\200\001\000\b\196\001\000\b\180\001\000\020\128\002\000\020|\002\000\b \001\000\020|\003\000\020|\004\000\b0\001\000\007\224\001\000\b \002\000\020\128\003\000\020\128\004\000\b0\001\000\007\224\001\000\r,\001\000\r0\001\000\b\212\003\000\r0\002\000\r0\003\000\b\220\003\000\b0\001\000\007\224\001\000\b\208\002\000\b\204\002\000\b\168\006\000\012\232\001\000\b\220\001\000\b\212\001\000\b\208\001\000\b\204\001\000\b\200\001\000\b\196\001\000\b\192\004\000\b\188\004\000\b\180\001\000\b\208\002\000\b\204\002\000\b\192\005\000\b\220\001\000\b\212\001\000\b\208\001\000\b\204\001\000\b\200\001\000\b\196\001\000\b\180\001\000\b\176\002\000\b\176\003\000\b\220\001\000\b\212\001\000\b\208\001\000\b\204\001\000\b\200\001\000\b\196\001\000\b\180\001\000\004x\004\000\004t\004\000\004t\005\000\004x\005\000\004x\006\000\bd\003\000\bd\004\000\bh\001\000\bx\001\000\bt\001\000\bl\001\000\bd\005\000\011\012\001\000\011\b\001\000\011\004\001\000\011\000\001\000\n\252\001\000\n\248\001\000\n\244\001\000\n\240\001\000\n\236\001\000\n\232\001\000\n\228\001\000\n\224\001\000\bx\002\000\bx\003\000\n\236\002\000\n\232\002\000\n\228\002\000\n\224\002\000\bx\001\000\bt\001\000\bl\001\000\n\236\003\000\n\228\003\000\n\224\003\000\n\228\004\000\n\224\004\000\b\220\001\000\b\212\001\000\b\208\001\000\b\204\001\000\b\200\001\000\b\196\001\000\b\180\001\000\n\224\005\000\n\228\005\000\n\228\006\000\bt\002\000\bl\002\000\n\232\003\000\n\232\004\000\bp\001\000\b \001\000\b|\001\000\015l\007\000\bx\001\000\bt\001\000\bl\001\000\015l\b\000\015l\t\000\b\220\001\000\b\212\001\000\b\208\001\000\b\204\001\000\b\200\001\000\b\196\001\000\b\180\001\000\015l\n\000\019P\001\000\n \001\000\019L\001\000\n\028\001\000\t\200\001\000\003\208\001\000\011d\001\000\006\224\001\000\006\224\002\000\006\224\003\000\002\028\001\000\006\224\004\000\006\224\005\000\0128\001\000\0124\001\000\0120\001\000\012,\001\000\012(\001\000\003\004\001\000\0128\002\000\0124\002\000\0120\002\000\012,\002\000\012(\002\000\012\156\001\000\012\152\001\000\012\148\001\000\012\144\001\000\012\140\001\000\012\136\001\000\012\132\001\000\012\128\001\000\012|\001\000\012x\001\000\0128\003\000\0124\003\000\012\156\002\000\012\152\002\000\012\148\002\000\012\144\002\000\012\140\002\000\0128\004\000\012\156\003\000\012\152\003\000\012\148\003\000\012\144\003\000\012\140\003\000\0128\005\000\012\156\004\000\012\152\004\000\012\148\004\000\012\144\004\000\012\140\004\000\0128\006\000\012\156\005\000\012\152\005\000\012\148\005\000\012\144\005\000\012\140\005\000\0128\007\000\012\136\002\000\012\132\002\000\012\128\002\000\012|\002\000\012x\002\000\0124\004\000\012t\001\000\012p\001\000\012l\001\000\012h\001\000\012d\001\000\0120\003\000\015\028\001\000\015\024\001\000\015\020\001\000\015\b\001\000\015\004\001\000\014\204\001\000\014\200\001\000\014\196\001\000\014\192\001\000\014\188\001\000\014\184\001\000\014\180\001\000\014\176\001\000\014\172\001\000\012t\002\000\012p\002\000\012l\002\000\012h\002\000\012d\002\000\0120\004\000\012t\003\000\012p\003\000\012l\003\000\012h\003\000\012d\003\000\012\156\001\000\012\152\001\000\012\148\001\000\012\144\001\000\012\140\001\000\012\136\001\000\012\132\001\000\012\128\001\000\012|\001\000\012x\001\000\012t\004\000\012p\004\000\012\156\002\000\012\152\002\000\012\148\002\000\012\144\002\000\012\140\002\000\012t\005\000\012\156\003\000\012\152\003\000\012\148\003\000\012\144\003\000\012\140\003\000\012t\006\000\012\156\004\000\012\152\004\000\012\148\004\000\012\144\004\000\012\140\004\000\012t\007\000\012\156\005\000\012\152\005\000\012\148\005\000\012\144\005\000\012\140\005\000\012t\b\000\012\136\002\000\012\132\002\000\012\128\002\000\012|\002\000\012x\002\000\012p\005\000\012t\001\000\012p\001\000\012l\004\000\012l\001\000\012h\001\000\012d\001\000\015\028\001\000\015\024\001\000\015\020\001\000\015\b\001\000\015\004\001\000\014\204\001\000\014\200\001\000\014\196\001\000\014\192\001\000\014\188\001\000\014\184\001\000\014\180\001\000\014\176\001\000\014\172\001\000\012t\002\000\012p\002\000\012l\005\000\012l\002\000\012h\002\000\012d\002\000\020(\001\000\015 \001\000\014\236\001\000\015\132\001\000\012h\004\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\012h\005\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\012h\006\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\r\024\001\000\012h\007\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\014\240\001\000\003\016\001\000\015\028\001\000\015\024\001\000\015\020\001\000\015\b\001\000\015\004\001\000\014\204\001\000\014\200\001\000\014\196\001\000\014\192\001\000\014\188\001\000\014\184\001\000\014\180\001\000\014\176\001\000\014\172\001\000\003\016\002\000\006\144\001\000\003\204\001\000\003\204\002\000\003\204\003\000\r\232\001\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\004d\001\000\004`\001\000\004\\\001\000\004X\001\000\0044\001\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\128\002\000\003|\002\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\003\128\003\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\003\128\004\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\003\128\005\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\003\128\006\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\003\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003h\002\000\003d\002\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\003h\003\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\003h\004\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\003h\005\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\003h\006\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\003\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003`\002\000\003\\\002\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\003`\003\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\003`\004\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\003`\005\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\003`\006\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\003\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003X\002\000\003T\002\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\003X\003\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\003X\004\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\003X\005\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\003X\006\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\003\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\136\002\000\003\132\002\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\003\136\003\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\003\136\004\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\003\136\005\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\003\136\006\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\003\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\168\002\000\003\164\002\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\003\168\003\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\003\168\004\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\003\168\005\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\003\168\006\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\003\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003H\002\000\003D\002\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\003H\003\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\003H\004\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\003H\005\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\003H\006\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\003\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003x\002\000\003t\002\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\003x\003\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\003x\004\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\003x\005\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\003x\006\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\003\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003p\002\000\003l\002\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\003p\003\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\003p\004\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\003p\005\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\003p\006\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\003\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\152\002\000\003\148\002\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\003\152\003\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\003\152\004\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\003\152\005\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\003\152\006\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\003\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003P\002\000\003L\002\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\003P\003\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\003P\004\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\003P\005\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\003P\006\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\003\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003@\002\000\003<\002\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\003@\003\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\003@\004\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\003@\005\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\003@\006\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\003\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\0038\002\000\0034\002\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\0038\003\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\0038\004\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\0038\005\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\0038\006\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\003\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\0030\002\000\003,\002\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\0030\003\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\0030\004\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\0030\005\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\0030\006\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\003\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\024\002\000\003\020\002\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\003\024\003\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\003\024\004\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\003\024\005\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\003\024\006\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\003\000\003\020\001\000\003\160\002\000\003\156\002\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\003\160\003\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\003\160\004\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\003\160\005\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\003\160\006\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\003\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\144\002\000\003\140\002\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\003\144\003\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\003\144\004\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\003\144\005\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\003\144\006\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\003\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\012L\002\000\012H\002\000\012D\002\000\012@\002\000\012<\002\000\012\156\001\000\012\152\001\000\012\148\001\000\012\144\001\000\012\140\001\000\012\136\001\000\012\132\001\000\012\128\001\000\012|\001\000\012x\001\000\012L\003\000\012H\003\000\012\156\002\000\012\152\002\000\012\148\002\000\012\144\002\000\012\140\002\000\012L\004\000\012\156\003\000\012\152\003\000\012\148\003\000\012\144\003\000\012\140\003\000\012L\005\000\012\156\004\000\012\152\004\000\012\148\004\000\012\144\004\000\012\140\004\000\012L\006\000\012\156\005\000\012\152\005\000\012\148\005\000\012\144\005\000\012\140\005\000\012L\007\000\012\136\002\000\012\132\002\000\012\128\002\000\012|\002\000\012x\002\000\012H\004\000\012t\001\000\012p\001\000\012l\001\000\012h\001\000\012d\001\000\012D\003\000\015\028\001\000\015\024\001\000\015\020\001\000\015\b\001\000\015\004\001\000\014\204\001\000\014\200\001\000\014\196\001\000\014\192\001\000\014\188\001\000\014\184\001\000\014\180\001\000\014\176\001\000\014\172\001\000\012t\002\000\012p\002\000\012l\002\000\012h\002\000\012d\002\000\012D\004\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\012@\003\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\012@\004\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\012@\005\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\012@\006\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\003\000\012<\001\000\0044\001\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\200\002\000\003\196\002\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\003\200\003\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\003\200\004\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\003\200\005\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\003\200\006\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\003\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\216\002\000\003\212\002\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\003\216\003\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\003\216\004\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\003\216\005\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\003\216\006\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\003\216\001\000\003\212\003\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\176\002\000\003\172\002\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\003\176\003\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\003\176\004\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\003\176\005\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\003\176\006\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\003\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003(\002\000\003$\002\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\003(\003\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\003(\004\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\003(\005\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\003(\006\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\003\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003 \002\000\003\028\002\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\003 \003\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\003 \004\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\003 \005\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\003 \006\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\003\000\003\028\001\000\003\024\001\000\003\020\001\000\003\184\002\000\003\180\002\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\003\184\003\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\003\184\004\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\003\184\005\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\003\184\006\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\003\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\192\002\000\003\188\002\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\003\192\003\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\003\192\004\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\003\192\005\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\003\192\006\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\003\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\0044\002\000\002\240\001\000\014\236\001\000\003\b\001\000\015\028\001\000\015\024\001\000\015\020\001\000\015\b\001\000\015\004\001\000\014\204\001\000\014\200\001\000\014\196\001\000\014\192\001\000\014\188\001\000\014\184\001\000\014\180\001\000\014\176\001\000\014\172\001\000\003\b\002\000\002\236\001\000\002\232\001\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\002\236\002\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\002\236\003\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\002\236\004\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\002\236\005\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\002\232\002\000\004d\002\000\004`\002\000\004\\\002\000\004d\003\000\004d\004\000\004d\005\000\004`\003\000\000T\001\000\000T\002\000\020\028\001\000\015\228\001\000\015\180\001\000\015\176\001\000\015\168\001\000\006\136\001\000\001\240\001\000\001\208\001\000\015\160\001\000\006\136\002\000\006\136\003\000\006\136\004\000\016\196\001\000\016\196\002\000\006\136\005\000\016\200\001\000\nl\001\000\nh\001\000\nl\002\000\016\200\002\000\016\200\003\000\002\144\001\000\016\200\004\000\np\001\000\012\216\001\000\015\160\001\000\006p\001\000\006l\001\000\006`\001\000\006\\\001\000\006L\001\000\006H\001\000\006D\001\000\006@\001\000\006<\001\000\019\176\001\000\019\172\001\000\006p\002\000\006l\002\000\006`\002\000\006\\\002\000\006p\003\000\006l\003\000\006p\004\000\006l\004\000\006p\005\000\006l\005\000\006p\006\000\006l\006\000\002\028\001\000\006l\007\000\006l\b\000\006p\007\000\006p\b\000\006p\t\000\r\012\001\000\r\b\001\000\006`\003\000\006\\\003\000\006`\004\000\006\\\004\000\006`\005\000\006\\\005\000\002\028\001\000\006\\\006\000\006\\\007\000\006`\006\000\006`\007\000\006`\b\000\006H\002\000\006D\002\000\006D\003\000\006D\004\000\006H\003\000\006H\004\000\006H\005\000\006@\002\000\006L\002\000\006L\003\000\006L\004\000\015\164\001\000\006\128\001\000\006|\001\000\006x\001\000\006\128\002\000\006|\002\000\006\128\003\000\006|\003\000\002\028\001\000\006|\004\000\006|\005\000\006\128\004\000\006\128\005\000\006\128\006\000\006x\002\000\006x\003\000\006x\004\000\012\192\001\000\011\136\001\000\011\132\001\000\011|\001\000\011x\001\000\006t\001\000\006\004\001\000\006\000\001\000\005\252\001\000\005\248\001\000\006t\002\000\006t\003\000\006\132\001\000\006h\001\000\006d\001\000\006X\001\000\006T\001\000\006P\001\000\006\132\002\000\006h\002\000\006d\002\000\006X\002\000\006T\002\000\006P\002\000\019\176\001\000\019\172\001\000\006h\003\000\006d\003\000\r\012\001\000\r\b\001\000\006h\004\000\006d\004\000\006h\005\000\006d\005\000\006h\006\000\006d\006\000\002\028\001\000\006d\007\000\006d\b\000\006h\007\000\006h\b\000\006h\t\000\006T\003\000\006P\003\000\006P\004\000\006P\005\000\006T\004\000\006T\005\000\006T\006\000\006\132\003\000\006X\003\000\006X\004\000\006X\005\000\0068\001\000\000T\003\000\0074\001\000\0074\002\000\000T\004\000\006\144\002\000\012d\004\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\012,\003\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\012,\004\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\012,\005\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\012,\006\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\012(\003\000\0044\001\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\012\192\001\000\011\136\001\000\011\132\001\000\011|\001\000\011x\001\000\006\228\001\000\006\004\001\000\006\000\001\000\005\252\001\000\005\248\001\000\006\228\002\000\006\228\003\000\006\236\001\000\003\208\002\000\003\208\003\000\003\208\004\000\006\236\002\000\006\236\003\000\006\232\001\000\014\248\001\000\t\236\001\000\015\012\004\000\015\012\005\000\015\128\003\000\015|\003\000\015`\003\000\015\\\003\000\015`\004\000\r\192\001\000\r\184\001\000\r\180\001\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\015`\005\000\r\192\002\000\r\184\002\000\r\180\002\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\015`\006\000\r\192\003\000\r\184\003\000\r\180\003\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\015`\007\000\r\192\004\000\r\184\004\000\r\180\004\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\001\140\001\000\001\136\001\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\001\140\002\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\001\140\003\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\001\140\004\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\001\140\005\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\001\136\002\000\001\132\001\000\r(\001\000\001\132\002\000\r(\002\000\001\168\001\000\001\164\001\000\001\160\001\000\001\156\001\000\001\152\001\000\001\148\001\000\001\144\001\000\001\160\002\000\001\156\002\000\012\168\001\000\011X\001\000\011T\001\000\011L\001\000\011H\001\000\005\180\001\000\005\176\001\000\005\172\001\000\005\168\001\000\001\160\003\000\001\156\003\000\001\160\004\000\001\156\004\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\001\160\005\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\001\160\006\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\001\160\007\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\001\160\b\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\001\156\005\000\001\168\002\000\001\164\002\000\012\168\001\000\011X\001\000\011T\001\000\011L\001\000\011H\001\000\005\180\001\000\005\176\001\000\005\172\001\000\005\168\001\000\001\168\003\000\001\164\003\000\001\168\004\000\001\164\004\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\001\168\005\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\001\168\006\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\001\168\007\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\001\168\b\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\001\164\005\000\001\152\002\000\001\148\002\000\012\168\001\000\011X\001\000\011T\001\000\011L\001\000\011H\001\000\005\180\001\000\005\176\001\000\005\172\001\000\005\168\001\000\001\152\003\000\001\148\003\000\001\152\004\000\001\148\004\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\001\152\005\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\001\152\006\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\001\152\007\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\001\152\b\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\001\148\005\000\012\168\001\000\011X\001\000\011T\001\000\011L\001\000\011H\001\000\005\180\001\000\005\176\001\000\005\172\001\000\005\168\001\000\001\144\002\000\001\192\001\000\001\188\001\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\001\192\002\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\001\192\003\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\001\192\004\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\001\192\005\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\001\188\002\000\001\184\001\000\001\180\001\000\001\176\001\000\001\172\001\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\001\184\002\000\001\180\002\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\001\184\003\000\001\180\003\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\001\184\004\000\001\180\004\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\001\184\005\000\001\180\005\000\002X\001\000\002\\\001\000\001\184\006\000\001\180\006\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\001\184\007\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\001\184\b\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\001\184\t\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\001\184\n\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\001\180\007\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\001\176\002\000\001\172\002\000\001\176\003\000\001\172\003\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\001\176\004\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\001\176\005\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\001\176\006\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\001\176\007\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\001\172\004\000\001\144\003\000\r(\003\000\r$\001\000\015`\b\000\012\228\001\000\015`\t\000\012\228\002\000\012\224\001\000\015\128\004\000\015|\004\000\015|\005\000\015\\\004\000\r\188\001\000\r\176\001\000\r\172\001\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\r\188\002\000\r\176\002\000\r\188\003\000\r\188\001\000\r\176\001\000\r\172\001\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\015\\\005\000\012\228\001\000\015\\\006\000\015X\003\000\015T\003\000\015D\003\000\015@\003\000\015X\004\000\r\192\001\000\r\184\001\000\r\180\001\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\015X\005\000\r\192\002\000\r\184\002\000\r\180\002\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\015X\006\000\r\192\003\000\r\184\003\000\r\180\003\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\015X\007\000\r\192\004\000\r\184\004\000\r\180\004\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\015X\b\000\012\228\001\000\015X\t\000\015D\004\000\015@\004\000\015@\005\000\015T\004\000\r\188\001\000\r\176\001\000\r\172\001\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\015T\005\000\012\228\001\000\015T\006\000\015h\003\000\015d\003\000\015P\003\000\015L\003\000\015h\004\000\015P\004\000\r\192\001\000\r\184\001\000\r\180\001\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\015P\005\000\r\192\002\000\r\184\002\000\r\180\002\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\015P\006\000\r\192\003\000\r\184\003\000\r\180\003\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\015P\007\000\r\192\004\000\r\184\004\000\r\180\004\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\015P\b\000\012\228\001\000\015P\t\000\015d\004\000\015d\005\000\015L\004\000\r\188\001\000\r\176\001\000\r\172\001\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\015L\005\000\012\228\001\000\015L\006\000\015\016\003\000\015\016\004\000\015\016\005\000\0154\003\000\015\028\001\000\015\024\001\000\015\020\001\000\015\b\001\000\015\004\001\000\014\204\001\000\014\200\001\000\014\196\001\000\014\192\001\000\014\188\001\000\014\184\001\000\014\180\001\000\014\176\001\000\014\172\001\000\011\236\001\000\011\236\002\000\011\236\003\000\r\228\001\000\r\224\001\000\r\220\001\000\n\180\001\000\r\228\002\000\r\224\002\000\r\220\002\000\r\228\003\000\r\224\003\000\r\220\003\000\r\228\004\000\r\224\004\000\r\228\005\000\011\232\001\000\0154\004\000\0154\005\000\015\128\001\000\015|\001\000\015l\001\000\015h\001\000\015d\001\000\015`\001\000\015\\\001\000\015X\001\000\015T\001\000\015P\001\000\015L\001\000\015D\001\000\015@\001\000\0154\001\000\015(\001\000\015\016\001\000\015\012\001\000\b(\001\000\b \001\000\b\024\001\000\001\236\001\000\001\232\001\000\015\128\002\000\015|\002\000\015l\002\000\015h\002\000\015d\002\000\015`\002\000\015\\\002\000\015X\002\000\015T\002\000\015P\002\000\015L\002\000\015D\002\000\015@\002\000\0154\002\000\015(\002\000\015\016\002\000\015\012\002\000\b(\002\000\b \002\000\b\024\002\000\001\236\002\000\020 \001\000\b\024\003\000\b(\003\000\0054\001\000\015\028\001\000\015\024\001\000\015\020\001\000\015\b\001\000\015\004\001\000\014\204\001\000\014\200\001\000\014\196\001\000\014\192\001\000\014\188\001\000\014\184\001\000\014\180\001\000\014\176\001\000\014\172\001\000\0054\002\000\014\200\002\000\014\192\002\000\014\184\002\000\004(\002\000\004$\002\000\004\024\002\000\004\020\002\000\004\b\002\000\004\004\002\000\014\184\003\000\004\b\003\000\004\004\003\000\014\184\004\000\004\b\004\000\004\004\004\000\014\184\005\000\004\b\005\000\004\004\005\000\004\b\006\000\004\004\006\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\004\b\007\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\004\b\b\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\004\b\t\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\004\b\n\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\004\004\007\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\014\200\003\000\004(\003\000\004$\003\000\014\200\004\000\004(\004\000\004$\004\000\014\200\005\000\004(\005\000\004$\005\000\004(\006\000\004$\006\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\004(\007\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\004(\b\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\004(\t\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\004(\n\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\004$\007\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\014\192\003\000\004\024\003\000\004\020\003\000\014\192\004\000\004\024\004\000\004\020\004\000\014\192\005\000\004\024\005\000\004\020\005\000\004\024\006\000\004\020\006\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\004\024\007\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\004\024\b\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\004\024\t\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\004\024\n\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\004\020\007\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\015\004\002\000\014\204\002\000\014\196\002\000\014\188\002\000\014\180\002\000\014\176\002\000\014\172\002\000\0040\002\000\004,\002\000\004 \002\000\004\028\002\000\004\016\002\000\004\012\002\000\004\000\002\000\003\252\002\000\003\248\002\000\003\244\002\000\003\240\002\000\003\236\002\000\003\232\002\000\003\228\002\000\014\172\003\000\003\240\003\000\003\236\003\000\014\172\004\000\003\240\004\000\003\236\004\000\014\172\005\000\003\240\005\000\003\236\005\000\003\240\006\000\003\236\006\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\003\240\007\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\003\240\b\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\003\240\t\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\003\240\n\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\003\236\007\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\014\180\003\000\004\000\003\000\003\252\003\000\014\180\004\000\004\000\004\000\003\252\004\000\014\180\005\000\004\000\005\000\003\252\005\000\004\000\006\000\003\252\006\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\004\000\007\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\004\000\b\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\004\000\t\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\004\000\n\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\003\252\007\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\014\176\003\000\003\248\003\000\003\244\003\000\014\176\004\000\003\248\004\000\003\244\004\000\014\176\005\000\003\248\005\000\003\244\005\000\003\248\006\000\003\244\006\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\003\248\007\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\003\248\b\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\003\248\t\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\003\248\n\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\003\244\007\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\014\204\003\000\014\196\003\000\014\188\003\000\b \001\000\b\024\001\000\0040\003\000\004,\003\000\004 \003\000\004\028\003\000\004\016\003\000\004\012\003\000\014\204\004\000\014\196\004\000\014\188\004\000\0040\004\000\004,\004\000\004 \004\000\004\028\004\000\004\016\004\000\004\012\004\000\014\188\005\000\004\016\005\000\004\012\005\000\014\188\006\000\004\016\006\000\004\012\006\000\014\188\007\000\004\016\007\000\004\012\007\000\004\016\b\000\004\012\b\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\004\016\t\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\004\016\n\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\004\016\011\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\004\016\012\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\004\012\t\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\014\204\005\000\0040\005\000\004,\005\000\014\204\006\000\0040\006\000\004,\006\000\014\204\007\000\0040\007\000\004,\007\000\0040\b\000\004,\b\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\0040\t\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\0040\n\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\0040\011\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\0040\012\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\004,\t\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\014\196\005\000\004 \005\000\004\028\005\000\014\196\006\000\004 \006\000\004\028\006\000\014\196\007\000\004 \007\000\004\028\007\000\004 \b\000\004\028\b\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\004 \t\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\004 \n\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\004 \011\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\004 \012\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\004\028\t\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\015\004\003\000\003\232\003\000\003\228\003\000\003\232\004\000\003\228\004\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\003\232\005\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\003\232\006\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\003\232\007\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\003\232\b\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\003\228\005\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\015\028\001\000\015\024\001\000\015\020\001\000\015\b\001\000\015\004\001\000\014\204\001\000\014\200\001\000\014\196\001\000\014\192\001\000\014\188\001\000\014\184\001\000\014\180\001\000\014\176\001\000\014\172\001\000\0050\001\000\012\244\001\000\002\244\002\000\012\244\002\000\012\240\001\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\002\224\002\000\014\172\004\000\014\172\005\000\014\180\003\000\014\180\004\000\014\180\005\000\014\176\003\000\014\176\004\000\014\176\005\000\014\204\003\000\014\196\003\000\014\188\003\000\b \001\000\b\024\001\000\014\204\004\000\014\196\004\000\014\188\004\000\014\188\005\000\014\188\006\000\014\188\007\000\014\204\005\000\014\204\006\000\014\204\007\000\014\196\005\000\014\196\006\000\014\196\007\000\015\004\003\000\004D\002\000\002\212\006\000\002\212\007\000\002\212\b\000\002\212\t\000\002\212\n\000\002\212\011\000\r\192\006\000\014\184\004\000\014\184\005\000\014\200\003\000\014\200\004\000\014\200\005\000\014\192\003\000\014\192\004\000\014\192\005\000\015\028\001\000\015\024\001\000\015\020\001\000\015\b\001\000\015\004\001\000\014\204\001\000\014\200\001\000\014\196\001\000\014\192\001\000\014\188\001\000\014\184\001\000\014\180\001\000\014\176\001\000\014\172\001\000\012t\002\000\012p\002\000\012l\002\000\012h\002\000\012d\002\000\012X\007\000\012`\001\000\012\\\001\000\012X\001\000\012T\006\000\012T\001\000\012P\001\000\012`\002\000\012\\\002\000\012X\002\000\012T\007\000\012T\002\000\012P\002\000\012`\003\000\012\\\003\000\012X\003\000\012T\b\000\012T\003\000\012P\003\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\t\000\012T\004\000\012P\004\000\012P\006\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\002\136\007\000\n\208\001\000\007\148\003\000\007\148\004\000\007\148\005\000\007\152\002\000\007\144\002\000\007\152\003\000\007\144\003\000\r\020\002\000\r\236\004\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\002\204\004\000\002\200\004\000\002\196\004\000\002\192\004\000\002\188\004\000\002\184\004\000\002\204\005\000\002\200\005\000\002\196\005\000\002\192\005\000\002\188\005\000\002\184\005\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\002\204\006\000\002\196\006\000\002\192\006\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\002\204\007\000\002\196\007\000\002\192\007\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\002\204\b\000\002\196\b\000\002\192\b\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\002\204\t\000\002\196\t\000\002\192\t\000\002\196\n\000\002\192\n\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\002\196\011\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\002\196\012\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\002\196\r\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\002\196\014\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\002\192\011\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\002\200\006\000\002\188\006\000\002\184\006\000\002\188\007\000\002\184\007\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\002\188\b\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\002\188\t\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\002\188\n\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\002\188\011\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\002\184\b\000\014\212\004\000\014\208\004\000\014\208\005\000\015\028\001\000\015\024\001\000\015\020\001\000\015\b\001\000\015\004\001\000\014\204\001\000\014\200\001\000\014\196\001\000\014\192\001\000\014\188\001\000\014\184\001\000\014\180\001\000\014\176\001\000\014\172\001\000\012t\002\000\012p\002\000\012l\002\000\012h\002\000\012d\002\000\014\152\002\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\014\152\003\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\014\152\004\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\014\152\005\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\014\152\006\000\014\148\002\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\014\148\003\000\015\028\001\000\015\024\001\000\015\020\001\000\015\b\001\000\015\004\001\000\014\204\001\000\014\200\001\000\014\196\001\000\014\192\001\000\014\188\001\000\014\184\001\000\014\180\001\000\014\176\001\000\014\172\001\000\014\156\002\000\0150\002\000\0150\003\000\015\028\001\000\015\024\001\000\015\020\001\000\015\b\001\000\015\004\001\000\014\204\001\000\014\200\001\000\014\196\001\000\014\192\001\000\014\188\001\000\014\184\001\000\014\180\001\000\014\176\001\000\014\172\001\000\002\220\004\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\015p\002\000\0128\001\000\0124\001\000\0120\001\000\012,\001\000\012(\001\000\003\004\001\000\015p\003\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\015,\002\000\015,\003\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\n\148\002\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\n\148\003\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\n\148\004\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\n\148\005\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\n\144\002\000\0044\001\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\r\204\002\000\r\200\002\000\r\196\002\000\r\204\003\000\r\200\003\000\r\204\004\000\015\000\002\000\014\252\002\000\014\252\003\000\015\140\002\000\r\192\001\000\r\184\001\000\r\180\001\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\015\140\003\000\r\192\002\000\r\184\002\000\r\180\002\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\015\140\004\000\r\192\003\000\r\184\003\000\r\180\003\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\015\140\005\000\r\192\004\000\r\184\004\000\r\180\004\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\015\140\006\000\012\228\001\000\015\140\007\000\015H\002\000\015H\003\000\015\136\002\000\r\188\001\000\r\176\001\000\r\172\001\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\015\136\003\000\012\228\001\000\015\136\004\000\015\148\002\000\r\192\001\000\r\184\001\000\r\180\001\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\015\148\003\000\r\192\002\000\r\184\002\000\r\180\002\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\015\148\004\000\r\192\003\000\r\184\003\000\r\180\003\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\015\148\005\000\r\192\004\000\r\184\004\000\r\180\004\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\015\148\006\000\012\228\001\000\015\148\007\000\015<\002\000\0158\002\000\0158\003\000\015\144\002\000\r\188\001\000\r\176\001\000\r\172\001\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\015\144\003\000\012\228\001\000\015\144\004\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\011\012\004\000\011\004\004\000\n\252\004\000\n\244\004\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\011\012\005\000\011\004\005\000\n\252\005\000\n\244\005\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\011\012\006\000\011\004\006\000\n\252\006\000\n\244\006\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\011\012\007\000\011\004\007\000\n\252\007\000\n\244\007\000\n\244\b\000\011\012\b\000\011\012\t\000\b\220\001\000\b\212\001\000\b\208\001\000\b\204\001\000\b\200\001\000\b\196\001\000\b\180\001\000\011\012\n\000\011\004\b\000\n\252\b\000\011\004\t\000\n\252\t\000\b\220\001\000\b\212\001\000\b\208\001\000\b\204\001\000\b\200\001\000\b\196\001\000\b\180\001\000\n\252\n\000\011\004\n\000\011\004\011\000\b\220\001\000\b\212\001\000\b\208\001\000\b\204\001\000\b\200\001\000\b\196\001\000\b\180\001\000\011\004\012\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\011\b\004\000\011\000\004\000\n\248\004\000\n\240\004\000\0044\001\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\n\240\005\000\011\b\005\000\011\b\006\000\b\220\001\000\b\212\001\000\b\208\001\000\b\204\001\000\b\200\001\000\b\196\001\000\b\180\001\000\011\b\007\000\011\000\005\000\n\248\005\000\011\000\006\000\n\248\006\000\b\220\001\000\b\212\001\000\b\208\001\000\b\204\001\000\b\200\001\000\b\196\001\000\b\180\001\000\n\248\007\000\011\000\007\000\011\000\b\000\b\220\001\000\b\212\001\000\b\208\001\000\b\204\001\000\b\200\001\000\b\196\001\000\b\180\001\000\011\000\t\000\bx\001\000\bt\001\000\bl\001\000\002\164\006\000\002\164\007\000\002\164\b\000\002\160\003\000\002\160\004\000\bx\001\000\bt\001\000\bl\001\000\002\160\005\000\002\160\006\000\002\160\007\000\002\152\002\000\002\152\003\000\002\152\004\000\b\152\001\000\b\152\002\000\b\152\003\000\b\152\004\000\002\152\005\000\b8\001\000\bx\001\000\bt\001\000\bl\001\000\b8\002\000\b@\001\000\b<\001\000\b\220\001\000\b\212\001\000\b\208\001\000\b\204\001\000\b\200\001\000\b\196\001\000\b\180\001\000\b@\002\000\b<\002\000\b<\003\000\bx\001\000\bt\001\000\bl\001\000\b<\004\000\b@\003\000\b@\004\000\bx\001\000\bt\001\000\bl\001\000\b@\005\000\002\152\006\000\002\152\007\000\002\152\b\000\bH\001\000\bH\002\000\bD\001\000\bD\002\000\bx\001\000\bt\001\000\bl\001\000\bD\003\000\b\148\001\000\002\156\002\000\002\156\003\000\002\156\004\000\001\220\001\000\001\224\001\000\001\208\001\000\001\224\002\000\001\224\003\000\001\204\001\000\002\156\005\000\004\132\001\000\002\012\001\000\b\248\001\000\b\252\001\000\005\004\001\000\005\000\001\000\005\004\002\000\005\000\002\000\005\004\003\000\005\000\003\000\r\012\001\000\r\b\001\000\011\184\001\000\011\184\002\000\011\184\003\000\000P\001\000\000L\001\000\000H\001\000\005\004\004\000\005\000\004\000\005\004\005\000\005\000\005\000\005\004\006\000\005\000\006\000\005\004\007\000\005\004\b\000\011\180\001\000\000P\001\000\000L\001\000\000H\001\000\002\012\002\000\002\012\003\000\005\016\001\000\005\012\001\000\005\016\002\000\005\b\001\000\rX\001\000\002\000\001\000\rX\002\000\002\000\002\000\000\140\001\000\000\128\001\000\000t\001\000\rX\003\000\002\000\003\000\r`\001\000\r\\\001\000\002\b\001\000\002\004\001\000\r`\002\000\r\\\002\000\002\b\002\000\002\004\002\000\r`\003\000\002\b\003\000\r`\004\000\002\b\004\000\000\140\001\000\000\128\001\000\000t\001\000\r`\005\000\002\b\005\000\r\\\003\000\002\004\003\000\000\140\001\000\000\128\001\000\000t\001\000\r\\\004\000\002\004\004\000\004\132\002\000\rT\001\000\001\252\001\000\000\140\001\000\000\128\001\000\000t\001\000\rT\002\000\001\252\002\000\004\148\001\000\004\144\001\000\004\140\001\000\004\136\001\000\r\004\001\000\0020\001\000\002,\001\000\000\164\001\000\000\160\001\000\000\144\001\000\000\132\001\000\000x\001\000\r\148\001\000\r\144\001\000\r\140\001\000\r\004\002\000\000\160\002\000\000\152\001\000\r\148\002\000\r\144\002\000\r\140\002\000\r\004\003\000\000\160\003\000\000\152\002\000\r\148\003\000\r\144\003\000\r\140\003\000\r\004\004\000\000\160\004\000\r\148\004\000\r\144\004\000\r\140\004\000\r\004\005\000\011\240\001\000\004\228\001\000\004\224\001\000\000\160\005\000\r\004\006\000\000\160\006\000\r\148\005\000\r\144\005\000\r\140\005\000\r\148\006\000\000\156\001\000\r\148\007\000\r\148\b\000\011\240\001\000\004\228\001\000\004\224\001\000\r\144\006\000\000\152\001\000\r\144\007\000\000\152\002\000\r\144\b\000\r\144\t\000\011\240\001\000\004\228\001\000\004\224\001\000\r\140\006\000\002\028\001\000\r\012\001\000\r\b\001\000\004\148\002\000\004\140\002\000\004\148\003\000\004\140\003\000\004\140\004\000\004\140\005\000\004\140\006\000\000\140\001\000\000\128\001\000\000t\001\000\rT\001\000\004\148\004\000\001\252\001\000\000\140\001\000\000\128\001\000\000t\001\000\004\136\002\000\004\136\003\000\004\136\004\000\000\140\001\000\000\128\001\000\000t\001\000\rT\001\000\004\144\002\000\001\252\001\000\000\140\001\000\000\128\001\000\000t\001\000\002\156\006\000\002\156\007\000\002\156\b\000\002\156\t\000\001\228\001\000\006\140\002\000\006\140\003\000\011\228\001\000\006\140\004\000\006\140\005\000\006\140\006\000\n\172\002\000\005L\005\000\005L\006\000\005H\003\000\005H\004\000\005H\005\000\005P\002\000\006\216\002\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\003\224\003\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\003\224\004\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\003\224\005\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\003\224\006\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\003\220\003\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\0048\002\000\015\156\002\000\r\192\001\000\r\184\001\000\r\180\001\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\015\156\003\000\r\192\002\000\r\184\002\000\r\180\002\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\015\156\004\000\r\192\003\000\r\184\003\000\r\180\003\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\015\156\005\000\r\192\004\000\r\184\004\000\r\180\004\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\015\156\006\000\012\228\001\000\015\156\007\000\015x\002\000\015t\002\000\015t\003\000\015\152\002\000\r\188\001\000\r\176\001\000\r\172\001\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\015\152\003\000\012\228\001\000\015\152\004\000\015\028\001\000\015\024\001\000\015\020\001\000\015\b\001\000\015\004\001\000\014\244\002\000\014\204\001\000\014\200\001\000\014\196\001\000\014\192\001\000\014\188\001\000\014\184\001\000\014\180\001\000\014\176\001\000\014\172\001\000\014\224\002\000\014\220\002\000\014\224\003\000\014\220\003\000\014\224\004\000\014\220\004\000\014\224\005\000\014\220\005\000\bx\001\000\bt\001\000\bl\001\000\014\220\006\000\014\224\006\000\014\224\007\000\b\220\001\000\b\212\001\000\b\208\001\000\b\204\001\000\b\200\001\000\b\196\001\000\b\180\001\000\014\224\b\000\014\168\002\000\014\164\002\000\014\160\002\000\014\160\003\000\014\168\003\000\014\164\003\000\014\164\004\000\014\168\004\000\014\168\005\000\002\168\004\000\002\168\005\000\r\024\001\000\002\168\006\000\004@\002\000\002\180\004\000\002\176\004\000\002\180\005\000\002\176\005\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\002\180\006\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\002\180\007\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\002\180\b\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\002\180\t\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\002\176\006\000\t\184\001\000\t\180\001\000\t\184\002\000\t\184\003\000\t\184\004\000\t\184\005\000\bx\001\000\bt\001\000\bl\001\000\t\184\006\000\t\180\002\000\t\180\003\000\t\180\004\000\bx\001\000\bt\001\000\bl\001\000\t\180\005\000\0194\001\000\0190\001\000\b\224\001\000\b\224\002\000\b\224\003\000\b\224\004\000\b\224\005\000\n\156\001\000\n\156\002\000\b\220\001\000\b\212\001\000\b\208\001\000\b\204\001\000\b\200\001\000\b\196\001\000\b\180\001\000\b\224\006\000\b\224\007\000\0194\002\000\0190\002\000\0194\003\000\0190\003\000\0194\004\000\0194\005\000\0194\006\000\0194\007\000\007\012\001\000\007\012\002\000\007\012\003\000\007\012\004\000\007\012\005\000\007\012\006\000\0194\b\000\0190\004\000\0190\005\000\0190\006\000\004\208\001\000\004\208\002\000\011\168\001\000\011\164\001\000\012\168\001\000\011\168\002\000\011\164\002\000\011X\001\000\011T\001\000\011L\001\000\011H\001\000\005\180\001\000\005\176\001\000\005\172\001\000\005\168\001\000\011\168\003\000\011\168\004\000\002|\001\000\002|\002\000\004\252\001\000\004\252\002\000\004\252\003\000\011\240\001\000\004\252\004\000\004\228\001\000\004\224\001\000\004\192\001\000\004\188\001\000\004\192\002\000\011\192\001\000\011\192\002\000\011\192\003\000\011\192\004\000\011\192\005\000\r\012\001\000\r\b\001\000\011\176\001\000\011\176\002\000\011\176\003\000\002\028\001\000\011\192\006\000\011\192\007\000\011\192\b\000\t`\001\000\t\\\001\000\t`\002\000\011\192\t\000\011\192\n\000\011\172\001\000\002\028\001\000\016\192\001\000\r\240\001\000\016\192\002\000\r\240\002\000\016\192\003\000\r\240\003\000\016\192\004\000\r\240\004\000\016\192\005\000\001\240\001\000\001\208\001\000\b \001\000\001\236\001\000\001\232\001\000\b \002\000\001\236\002\000\001\236\003\000\016\192\006\000\016\192\007\000\016\192\b\000\r\240\005\000\r\240\006\000\r\240\007\000\011\160\001\000\011\156\001\000\011\156\002\000\011\160\002\000\002\028\001\000\019@\001\000\001|\001\000\001|\002\000\001|\003\000\001|\004\000\020X\001\000\001|\005\000\002\132\001\000\rL\001\000\rP\001\000\002\132\002\000\002\132\003\000\rP\002\000\rP\003\000\001|\006\000\001|\007\000\001|\b\000\001H\001\000\001H\002\000\001\028\001\000\002\028\001\000\001\028\002\000\001\028\003\000\001H\003\000\001(\001\000\001(\002\000\t\016\001\000\t\b\001\000\t\016\002\000\t\012\001\000\t\004\001\000\t\012\002\000\001(\003\000\001(\004\000\001(\005\000\002\028\001\000\001(\006\000\001(\007\000\001,\001\000\001,\002\000\011\220\001\000\011\212\001\000\011\220\002\000\011\216\001\000\011\208\001\000\011\216\002\000\001,\003\000\001,\004\000\001,\005\000\001,\006\000\001,\007\000\001$\001\000\001$\002\000\001T\001\000\001P\001\000\001T\002\000\001P\002\000\001T\003\000\001T\004\000\b \001\000\001T\005\000\001T\006\000\001@\001\000\r@\001\000\001@\002\000\001@\003\000\001@\004\000\r@\002\000\r@\003\000\002\028\001\000\r<\001\000\002\028\001\000\001D\001\000\001<\001\000\001T\007\000\001L\001\000\001L\002\000\001P\003\000\b \001\000\001P\004\000\001P\005\000\001P\006\000\001L\001\000\001L\001\000\001$\003\000\001$\004\000\0010\001\000\0010\002\000\002\028\001\000\001\248\001\000\001\248\002\000\002\028\001\000\001\248\003\000\0010\003\000\0010\004\000\001H\004\000\001H\005\000\0014\001\000\0014\002\000\0018\001\000\007X\001\000\007X\002\000\001|\t\000\001L\001\000\001|\n\000\007\004\001\000\007\004\002\000\007\004\003\000\007\004\004\000\007\004\005\000\007\004\006\000\007\004\007\000\001L\001\000\007\004\b\000\007\004\t\000\001|\011\000\019@\002\000\019@\003\000\019@\004\000\019@\005\000\019@\006\000\020\028\001\000\015\228\001\000\015\180\001\000\015\176\001\000\015\168\001\000\005\148\001\000\005\136\001\000\005\132\001\000\005\128\001\000\001\240\001\000\001\208\001\000\000\248\001\000\001h\001\000\001h\002\000\001h\003\000\000\224\001\000\020<\001\000\0204\001\000\020<\002\000\0204\002\000\b\240\001\000\020<\003\000\0204\003\000\020<\004\000\0204\004\000\0204\005\000\0204\006\000\020<\005\000\020<\006\000\020<\007\000\000\224\002\000\000\224\003\000\0208\001\000\0200\001\000\020,\001\000\020d\001\000\020\\\001\000\020d\002\000\020`\001\000\b\240\001\000\020`\002\000\020,\002\000\020,\003\000\020,\004\000\020,\005\000\002\028\001\000\0208\002\000\0200\002\000\0208\003\000\0200\003\000\0200\004\000\0200\005\000\0208\004\000\0208\005\000\0208\006\000\000\228\001\000\007\208\001\000\007\200\001\000\007\192\001\000\007\208\002\000\007\200\002\000\007\192\002\000\011\200\001\000\007\208\003\000\007\200\003\000\007\192\003\000\007\208\004\000\007\200\004\000\007\192\004\000\007\208\005\000\007\200\005\000\007\208\006\000\007\208\007\000\007\208\b\000\007\208\t\000\002\028\001\000\007\208\n\000\007\208\011\000\007\200\006\000\007\200\007\000\007\200\b\000\007\192\005\000\000\228\002\000\000\228\003\000\007\204\001\000\007\196\001\000\007\188\001\000\007\184\001\000\020p\001\000\020h\001\000\020p\002\000\020l\001\000\011\200\001\000\020l\002\000\007\184\002\000\007\184\003\000\007\184\004\000\007\184\005\000\007\204\002\000\007\196\002\000\007\188\002\000\007\204\003\000\007\196\003\000\007\188\003\000\007\204\004\000\007\196\004\000\007\204\005\000\007\204\006\000\007\204\007\000\007\204\b\000\002\028\001\000\007\204\t\000\007\204\n\000\007\196\005\000\007\196\006\000\007\196\007\000\007\188\004\000\000\236\001\000\000\236\002\000\000\236\003\000\000\236\004\000\000\220\001\000\000\216\001\000\000\220\002\000\000\220\003\000\001d\001\000\001X\001\000\006\152\001\000\006\148\001\000\000\200\001\000\000\196\001\000\006\152\002\000\006\152\003\000\006\152\004\000\006\152\005\000\006\152\006\000\006\152\007\000\000\200\002\000\000\196\002\000\000\200\003\000\000\200\004\000\b \001\000\000\200\005\000\000\200\006\000\001`\001\000\r@\001\000\001`\002\000\001`\003\000\001`\004\000\000\188\001\000\000\188\002\000\001\b\001\000\001\004\001\000\001\004\002\000\006\156\001\000\000\192\001\000\000\192\002\000\000\212\001\000\000\208\001\000\000\184\001\000\012\244\001\000\000\208\002\000\001\\\001\000\000\204\001\000\000\192\003\000\000\204\002\000\006\156\002\000\001\004\003\000\000\204\001\000\001\b\002\000\000\188\003\000\000\204\001\000\000\200\007\000\000\196\003\000\b \001\000\000\196\004\000\000\196\005\000\000\204\001\000\000\196\006\000\006\148\002\000\006\148\003\000\006\148\004\000\006\148\005\000\001d\002\000\001X\002\000\000\204\001\000\001X\003\000\001d\003\000\019\220\001\000\019\216\001\000\007\212\001\000\001t\001\000\001t\002\000\001t\003\000\001t\004\000\002<\001\000\0028\001\000\0024\001\000\001@\001\000\r\168\001\000\r<\001\000\002\028\001\000\001x\001\000\001x\002\000\001p\001\000\001p\002\000\001p\003\000\b0\001\000\b\016\001\000\b\b\001\000\007\224\001\000\007\216\001\000\000\148\001\000\b\016\002\000\b\b\002\000\007\224\002\000\007\216\002\000\000\148\002\000\019\220\001\000\019\216\001\000\007\216\003\000\002x\001\000\001D\001\000\001p\004\000\001l\001\000\001L\001\000\001x\003\000\001t\005\000\001d\004\000\001d\005\000\000\220\004\000\000\204\001\000\n\128\001\000\n\128\002\000\000\220\005\000\000\220\006\000\000\216\002\000\000\216\003\000\000\204\001\000\000\216\004\000\000\216\005\000\000\232\001\000\000\232\002\000\000\232\003\000\000\232\004\000\001h\004\000\001h\005\000\000\240\001\000\000\240\002\000\000\244\001\000\007`\001\000\007`\002\000\000\248\002\000\000\204\001\000\000\252\001\000\000\252\002\000\000\252\003\000\000\252\004\000\000\204\001\000\001\000\001\000\001\000\002\000\019@\007\000\019@\b\000\006\244\001\000\006\244\002\000\006\244\003\000\006\244\004\000\006\244\005\000\006\244\006\000\006\244\007\000\006\244\b\000\019@\t\000\019\028\001\000\007P\001\000\006\140\001\000\019,\001\000\016\188\001\000\019\024\001\000\019<\001\000\0198\001\000\007P\002\000\019\b\001\000\006\144\001\000\019\020\001\000\019\012\001\000\019\012\002\000\019H\001\000\019H\002\000\019H\003\000\019H\004\000\bx\001\000\bt\001\000\bl\001\000\019H\005\000\019 \001\000\007$\001\000\007$\002\000\007$\003\000\007$\004\000\007$\005\000\007$\006\000\012\212\001\000\007$\007\000\007$\b\000\007$\t\000\nx\001\000\019 \002\000\019\016\001\000\019D\001\000\011\152\001\000\019\004\001\000\019\004\002\000\019\004\003\000\000\176\001\000\019\000\001\000\019\b\001\000\006\144\001\000\003\204\001\000\002|\003\000\002|\004\000\004\208\003\000\004\208\004\000\007L\002\000\007L\003\000\007L\004\000\007H\002\000\011\188\003\000\011\188\004\000\004\172\n\000\019(\006\000\019(\007\000\019(\b\000\004\152\001\000\002p\001\000\004\152\002\000\002p\002\000\002p\003\000\002p\004\000\002p\005\000\004\152\003\000\004\152\004\000\019(\t\000\012\024\001\000\012\020\001\000\019(\n\000\012\020\002\000\012\024\002\000\012\004\001\000\012\012\001\000\012\b\001\000\012\016\001\000\004\156\001\000\002t\001\000\002t\002\000\002t\003\000\002t\004\000\004\156\002\000\004\156\003\000\019$\004\000\004\168\004\000\019\220\001\000\004\168\005\000\004\168\006\000\004\168\007\000\012\212\001\000\004\168\b\000\004\168\t\000\019$\005\000\019$\006\000\019$\007\000\019$\b\000\012\024\001\000\012\020\001\000\019$\t\000\b`\003\000\b`\004\000\b\172\005\000\bx\001\000\bt\001\000\bl\001\000\015\180\007\000\b\220\001\000\b\212\001\000\b\208\001\000\b\204\001\000\b\200\001\000\b\196\001\000\b\180\001\000\015\180\b\000\012\172\001\000\005\204\004\000\005\196\001\000\005\192\001\000\005\188\001\000\005\184\001\000\012\172\002\000\005\204\005\000\005\196\002\000\005\192\002\000\005\188\002\000\005\184\002\000\012\176\004\000\012\168\001\000\011X\001\000\011T\001\000\011L\001\000\011H\001\000\005\200\004\000\005\180\001\000\005\176\001\000\005\172\001\000\005\168\001\000\012\172\001\000\005\220\b\000\005\196\001\000\005\192\001\000\005\188\001\000\005\184\001\000\012\172\002\000\005\220\t\000\005\196\002\000\005\192\002\000\005\188\002\000\005\184\002\000\012\180\b\000\012\168\001\000\011X\001\000\011T\001\000\011L\001\000\011H\001\000\005\216\b\000\005\180\001\000\005\176\001\000\005\172\001\000\005\168\001\000\012\176\002\000\005\212\002\000\005\208\002\000\005\204\002\000\005\200\002\000\012\168\001\000\011X\001\000\011T\001\000\011L\001\000\011H\001\000\005\180\001\000\005\176\001\000\005\172\001\000\005\168\001\000\001\020\002\000\001\016\002\000\001\016\003\000\001\020\003\000\002\028\001\000\001\020\004\000\001\020\005\000\014\228\004\000\014\228\005\000\014\228\006\000\003\000\002\000\003\000\003\000\003\000\004\000\r\024\001\000\003\000\005\000\015\028\001\000\015\024\001\000\015\020\001\000\015\b\001\000\015\004\001\000\014\204\001\000\014\200\001\000\014\196\001\000\014\192\001\000\014\188\001\000\014\184\001\000\014\180\001\000\014\176\001\000\014\172\001\000\002\248\002\000\002\252\002\000\014\236\001\000\003\012\002\000\015\028\001\000\015\024\001\000\015\020\001\000\015\b\001\000\015\004\001\000\014\204\001\000\014\200\001\000\014\196\001\000\014\192\001\000\014\188\001\000\014\184\001\000\014\180\001\000\014\176\001\000\014\172\001\000\003\012\003\000\012\128\004\000\012t\001\000\012p\001\000\012l\001\000\012h\001\000\012d\001\000\015\028\001\000\015\024\001\000\015\020\001\000\015\b\001\000\015\004\001\000\014\204\001\000\014\200\001\000\014\196\001\000\014\192\001\000\014\188\001\000\014\184\001\000\014\180\001\000\014\176\001\000\014\172\001\000\012\128\005\000\012t\002\000\012p\002\000\012l\002\000\012h\002\000\012d\002\000\012|\004\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\012|\005\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\012|\006\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\r\024\001\000\012|\007\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\012x\004\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\012\148\007\000\012t\001\000\012p\001\000\012l\001\000\012h\001\000\012d\001\000\015\028\001\000\015\024\001\000\015\020\001\000\015\b\001\000\015\004\001\000\014\204\001\000\014\200\001\000\014\196\001\000\014\192\001\000\014\188\001\000\014\184\001\000\014\180\001\000\014\176\001\000\014\172\001\000\012\148\b\000\012t\002\000\012p\002\000\012l\002\000\012h\002\000\012d\002\000\012\144\007\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\012\144\b\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\012\144\t\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\r\024\001\000\012\144\n\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\012\140\007\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\012\136\002\000\012\132\002\000\012\128\002\000\012|\002\000\012x\002\000\002\172\004\000\002\172\005\000\r\024\001\000\002\172\006\000\004<\002\000\002h\003\000\002h\004\000\019\220\001\000\019\216\001\000\007\172\001\000\007\164\001\000\007\156\001\000\007\172\002\000\007\164\002\000\007\156\002\000\007\172\003\000\007\164\003\000\007\156\003\000\007\172\004\000\007\164\004\000\007\156\004\000\007\164\005\000\007\156\005\000\007\164\006\000\007\156\006\000\007\180\001\000\007\156\007\000\007\176\001\000\007\168\001\000\007\160\001\000\000\140\001\000\000\128\001\000\000t\001\000\007\168\002\000\007\160\002\000\007\160\003\000\t\176\002\000\t\172\002\000\t\172\003\000\018H\002\000\018D\002\000\018@\002\000\018<\002\000\0188\002\000\0184\002\000\0180\002\000\018,\002\000\017\016\002\000\017\012\002\000\r\012\001\000\r\b\001\000\018H\003\000\018D\003\000\018@\003\000\018<\003\000\0188\003\000\0184\003\000\0180\003\000\018,\003\000\017\016\003\000\017\012\003\000\018H\004\000\018D\004\000\018@\004\000\018<\004\000\0188\004\000\0184\004\000\0180\004\000\018,\004\000\017\016\004\000\017\012\004\000\002\028\001\000\018H\005\000\018D\005\000\018@\005\000\018<\005\000\0188\005\000\0184\005\000\0180\005\000\018,\005\000\017\016\005\000\017\012\005\000\0188\006\000\0184\006\000\0180\006\000\018,\006\000\017\012\006\000\018h\001\000\018d\001\000\018`\001\000\018\\\001\000\018X\001\000\018T\001\000\018P\001\000\018L\001\000\0180\007\000\018,\007\000\017\024\001\000\017\020\001\000\018h\002\000\018d\002\000\018`\002\000\018\\\002\000\0180\b\000\017\024\002\000\017\012\007\000\018\168\001\000\018\164\001\000\018\160\001\000\018\156\001\000\018\152\001\000\018\148\001\000\018\144\001\000\018\140\001\000\018\136\001\000\018\132\001\000\018\128\001\000\018|\001\000\018x\001\000\018t\001\000\018p\001\000\018l\001\000\0188\007\000\0184\007\000\017(\001\000\017$\001\000\017 \001\000\017\028\001\000\018\168\002\000\018\164\002\000\018\160\002\000\018\156\002\000\018\152\002\000\018\148\002\000\018\144\002\000\018\140\002\000\0188\b\000\0184\b\000\017(\002\000\017$\002\000\018\168\003\000\018\164\003\000\018\160\003\000\018\156\003\000\0188\t\000\017(\003\000\018H\006\000\018D\006\000\018@\006\000\018<\006\000\017\016\006\000\018H\007\000\018D\007\000\018@\007\000\018<\007\000\017\016\007\000\018h\001\000\018d\001\000\018`\001\000\018\\\001\000\018X\001\000\018T\001\000\018P\001\000\018L\001\000\018@\b\000\018<\b\000\017\024\001\000\017\020\001\000\018h\002\000\018d\002\000\018`\002\000\018\\\002\000\018@\t\000\017\024\002\000\017\016\b\000\018\168\001\000\018\164\001\000\018\160\001\000\018\156\001\000\018\152\001\000\018\148\001\000\018\144\001\000\018\140\001\000\018\136\001\000\018\132\001\000\018\128\001\000\018|\001\000\018x\001\000\018t\001\000\018p\001\000\018l\001\000\018H\b\000\018D\b\000\017(\001\000\017$\001\000\017 \001\000\017\028\001\000\018\168\002\000\018\164\002\000\018\160\002\000\018\156\002\000\018\152\002\000\018\148\002\000\018\144\002\000\018\140\002\000\018H\t\000\018D\t\000\017(\002\000\017$\002\000\018\168\003\000\018\164\003\000\018\160\003\000\018\156\003\000\018H\n\000\017(\003\000\002<\001\000\0028\001\000\0024\001\000\001\204\001\000\t\144\002\000\t\144\003\000\t\144\004\000\t\160\002\000\t\160\003\000\t\160\004\000\t\128\002\000\004\152\001\000\002\016\001\000\004\152\002\000\012\000\001\000\002\020\001\000\004\152\001\000\012\000\002\000\011\248\001\000\011\252\001\000\th\002\000\002\028\001\000\tp\002\000\004\156\001\000\t\140\001\000\t\140\002\000\t\140\003\000\t\156\001\000\t\156\002\000\t\156\003\000\t|\001\000\019\188\002\000\t\168\001\000\t\164\001\000\t\152\001\000\t\148\001\000\t\136\001\000\t\132\001\000\tx\001\000\tt\001\000\td\001\000\002\028\001\000\t\168\002\000\t\164\002\000\t\152\002\000\t\148\002\000\t\136\002\000\t\132\002\000\tx\002\000\tt\002\000\t\168\003\000\t\152\003\000\t\136\003\000\tx\003\000\t\152\004\000\t\152\005\000\t\152\006\000\t\168\004\000\t\168\005\000\t\168\006\000\t\136\004\000\tx\004\000\t\148\003\000\t\148\004\000\t\148\005\000\t\164\003\000\t\164\004\000\t\164\005\000\t\132\003\000\tt\003\000\tl\001\000\004\164\b\000\004\164\t\000\012\212\001\000\004\164\n\000\004\164\011\000\014\024\006\000\014\024\007\000\014\024\b\000\014\024\t\000\012$\001\000\014\024\n\000\012$\002\000\012\028\001\000\012 \001\000\014\020\004\000\004\168\004\000\004\160\004\000\019\220\001\000\004\168\005\000\004\160\005\000\004\168\006\000\004\160\006\000\004\160\007\000\004\160\b\000\012\212\001\000\004\160\t\000\004\160\n\000\014\020\005\000\014\020\006\000\014\020\007\000\014\020\b\000\012$\001\000\014\020\t\000\007<\001\000\t\192\001\000\t\188\001\000\t\192\002\000\t\192\003\000\t\192\004\000\t\192\005\000\b0\001\000\007\224\001\000\t\192\006\000\t\188\002\000\t\188\003\000\t\188\004\000\b0\001\000\007\224\001\000\t\188\005\000\014,\001\000\014$\001\000\014 \001\000\b\228\001\000\b\224\001\000\b\156\001\000\b\228\002\000\b\224\002\000\b\228\003\000\b\224\003\000\b\228\004\000\b\224\004\000\b\228\005\000\b\224\005\000\b\228\006\000\b\228\007\000\b\220\001\000\b\212\001\000\b\208\001\000\b\204\001\000\b\200\001\000\b\196\001\000\b\180\001\000\b\228\b\000\014,\002\000\014$\002\000\014 \002\000\b\156\002\000\014,\003\000\014$\003\000\014 \003\000\b\156\003\000\b\156\004\000\b\132\001\000\b\156\005\000\b\156\006\000\b0\001\000\007\224\001\000\b\156\007\000\014,\004\000\014,\005\000\014,\006\000\014,\007\000\b\220\001\000\b\212\001\000\b\208\001\000\b\204\001\000\b\200\001\000\b\196\001\000\b\180\001\000\014,\b\000\014,\t\000\007\020\001\000\007\020\002\000\007\020\003\000\007\020\004\000\b\220\001\000\b\212\001\000\b\208\001\000\b\204\001\000\b\200\001\000\b\196\001\000\b\180\001\000\007\020\005\000\007\020\006\000\007\020\007\000\007\020\b\000\014,\n\000\b\144\001\000\b\144\002\000\000`\001\000\000`\002\000\b\144\003\000\b\144\004\000\014$\004\000\014 \004\000\014$\005\000\014$\006\000\b \001\000\n\188\001\000\n\188\002\000\014$\007\000\014$\b\000\bL\001\000\b\220\001\000\b\212\001\000\b\208\001\000\b\204\001\000\b\200\001\000\b\196\001\000\b\180\001\000\bL\002\000\bL\003\000\014 \005\000\014 \006\000\bP\001\000\bX\001\000\bT\001\000\b\220\001\000\b\212\001\000\b\208\001\000\b\204\001\000\b\200\001\000\b\196\001\000\b\180\001\000\bX\002\000\bT\002\000\bX\003\000\bP\002\000\b\\\001\000\b\\\002\000\b\140\001\000\r\240\001\000\r\240\002\000\r\240\003\000\r\240\004\000\014<\001\000\001|\001\000\014<\002\000\014<\003\000\014<\004\000\014<\005\000\014<\006\000\014<\007\000\014<\b\000\014<\t\000\006\252\001\000\006\252\002\000\006\252\003\000\006\252\004\000\006\252\005\000\006\252\006\000\006\252\007\000\006\252\b\000\006\252\t\000\014<\n\000\014\004\001\000\007@\001\000\014\028\001\000\014\b\001\000\0148\001\000\0144\001\000\0140\001\000\014(\001\000\007@\002\000\014\000\001\000\r\248\001\000\r\248\002\000\014D\001\000\014D\002\000\014D\003\000\014D\004\000\b\220\001\000\b\212\001\000\b\208\001\000\b\204\001\000\b\200\001\000\b\196\001\000\b\180\001\000\014D\005\000\014D\006\000\014\012\001\000\014\012\002\000\014\016\001\000\007,\001\000\007,\002\000\007,\003\000\007,\004\000\007,\005\000\007,\006\000\007,\007\000\012\212\001\000\007,\b\000\007,\t\000\007,\n\000\014\016\002\000\r\252\001\000\014@\001\000\007<\002\000\r\244\002\000\b\220\001\000\b\212\001\000\b\208\001\000\b\204\001\000\b\200\001\000\b\196\001\000\b\180\001\000\0020\005\000\0020\006\000\017\200\004\000\017\196\004\000\017\192\004\000\017\188\004\000\017\184\004\000\017\180\004\000\017\176\004\000\017\172\004\000\016\240\004\000\016\236\004\000\r\012\001\000\r\b\001\000\017\200\005\000\017\196\005\000\017\192\005\000\017\188\005\000\017\184\005\000\017\180\005\000\017\176\005\000\017\172\005\000\016\240\005\000\016\236\005\000\017\200\006\000\017\196\006\000\017\192\006\000\017\188\006\000\017\184\006\000\017\180\006\000\017\176\006\000\017\172\006\000\016\240\006\000\016\236\006\000\002\028\001\000\017\200\007\000\017\196\007\000\017\192\007\000\017\188\007\000\017\184\007\000\017\180\007\000\017\176\007\000\017\172\007\000\016\240\007\000\016\236\007\000\017\184\b\000\017\180\b\000\017\176\b\000\017\172\b\000\016\236\b\000\018h\001\000\018d\001\000\018`\001\000\018\\\001\000\018X\001\000\018T\001\000\018P\001\000\018L\001\000\017\176\t\000\017\172\t\000\017\024\001\000\017\020\001\000\018h\002\000\018d\002\000\018`\002\000\018\\\002\000\017\176\n\000\017\024\002\000\016\236\t\000\018\168\001\000\018\164\001\000\018\160\001\000\018\156\001\000\018\152\001\000\018\148\001\000\018\144\001\000\018\140\001\000\018\136\001\000\018\132\001\000\018\128\001\000\018|\001\000\018x\001\000\018t\001\000\018p\001\000\018l\001\000\017\184\t\000\017\180\t\000\017(\001\000\017$\001\000\017 \001\000\017\028\001\000\018\168\002\000\018\164\002\000\018\160\002\000\018\156\002\000\018\152\002\000\018\148\002\000\018\144\002\000\018\140\002\000\017\184\n\000\017\180\n\000\017(\002\000\017$\002\000\018\168\003\000\018\164\003\000\018\160\003\000\018\156\003\000\017\184\011\000\017(\003\000\017\200\b\000\017\196\b\000\017\192\b\000\017\188\b\000\016\240\b\000\017\200\t\000\017\196\t\000\017\192\t\000\017\188\t\000\016\240\t\000\018h\001\000\018d\001\000\018`\001\000\018\\\001\000\018X\001\000\018T\001\000\018P\001\000\018L\001\000\017\192\n\000\017\188\n\000\017\024\001\000\017\020\001\000\018h\002\000\018d\002\000\018`\002\000\018\\\002\000\017\192\011\000\017\024\002\000\016\240\n\000\018\168\001\000\018\164\001\000\018\160\001\000\018\156\001\000\018\152\001\000\018\148\001\000\018\144\001\000\018\140\001\000\018\136\001\000\018\132\001\000\018\128\001\000\018|\001\000\018x\001\000\018t\001\000\018p\001\000\018l\001\000\017\200\n\000\017\196\n\000\017(\001\000\017$\001\000\017 \001\000\017\028\001\000\018\168\002\000\018\164\002\000\018\160\002\000\018\156\002\000\018\152\002\000\018\148\002\000\018\144\002\000\018\140\002\000\017\200\011\000\017\196\011\000\017(\002\000\017$\002\000\018\168\003\000\018\164\003\000\018\160\003\000\018\156\003\000\017\200\012\000\017(\003\000\017\232\003\000\017\228\003\000\017\224\003\000\017\220\003\000\017\216\003\000\017\212\003\000\017\208\003\000\017\204\003\000\016\248\003\000\016\244\003\000\017\216\004\000\017\212\004\000\017\208\004\000\017\204\004\000\016\244\004\000\018h\001\000\018d\001\000\018`\001\000\018\\\001\000\018X\001\000\018T\001\000\018P\001\000\018L\001\000\017\208\005\000\017\204\005\000\017\024\001\000\017\020\001\000\018h\002\000\018d\002\000\018`\002\000\018\\\002\000\017\208\006\000\017\024\002\000\016\244\005\000\018\168\001\000\018\164\001\000\018\160\001\000\018\156\001\000\018\152\001\000\018\148\001\000\018\144\001\000\018\140\001\000\018\136\001\000\018\132\001\000\018\128\001\000\018|\001\000\018x\001\000\018t\001\000\018p\001\000\018l\001\000\017\216\005\000\017\212\005\000\017(\001\000\017$\001\000\017 \001\000\017\028\001\000\018\168\002\000\018\164\002\000\018\160\002\000\018\156\002\000\018\152\002\000\018\148\002\000\018\144\002\000\018\140\002\000\017\216\006\000\017\212\006\000\017(\002\000\017$\002\000\018\168\003\000\018\164\003\000\018\160\003\000\018\156\003\000\017\216\007\000\017(\003\000\017\232\004\000\017\228\004\000\017\224\004\000\017\220\004\000\016\248\004\000\017\232\005\000\017\228\005\000\017\224\005\000\017\220\005\000\016\248\005\000\018h\001\000\018d\001\000\018`\001\000\018\\\001\000\018X\001\000\018T\001\000\018P\001\000\018L\001\000\017\224\006\000\017\220\006\000\017\024\001\000\017\020\001\000\018h\002\000\018d\002\000\018`\002\000\018\\\002\000\017\224\007\000\017\024\002\000\016\248\006\000\018\168\001\000\018\164\001\000\018\160\001\000\018\156\001\000\018\152\001\000\018\148\001\000\018\144\001\000\018\140\001\000\018\136\001\000\018\132\001\000\018\128\001\000\018|\001\000\018x\001\000\018t\001\000\018p\001\000\018l\001\000\017\232\006\000\017\228\006\000\017(\001\000\017$\001\000\017 \001\000\017\028\001\000\018\168\002\000\018\164\002\000\018\160\002\000\018\156\002\000\018\152\002\000\018\148\002\000\018\144\002\000\018\140\002\000\017\232\007\000\017\228\007\000\017(\002\000\017$\002\000\018\168\003\000\018\164\003\000\018\160\003\000\018\156\003\000\017\232\b\000\017(\003\000\018\248\003\000\018\244\003\000\018\240\003\000\018\236\003\000\018\232\003\000\018\228\003\000\018\224\003\000\018\220\003\000\018\184\003\000\018\180\003\000\018(\003\000\018$\003\000\018 \003\000\018\028\003\000\018\024\003\000\018\020\003\000\018\016\003\000\018\012\003\000\018\b\003\000\018\004\003\000\018\000\003\000\017\252\003\000\017\248\003\000\017\244\003\000\017\240\003\000\017\236\003\000\017\b\003\000\017\004\003\000\017\000\003\000\016\252\003\000\018\b\004\000\018\004\004\000\018\000\004\000\017\252\004\000\017\248\004\000\017\244\004\000\017\240\004\000\017\236\004\000\017\000\004\000\016\252\004\000\0020\001\000\002,\001\000\000\164\001\000\000\160\001\000\000\144\001\000\000\132\001\000\000x\001\000\018\b\005\000\018\004\005\000\018\000\005\000\017\252\005\000\017\248\005\000\017\244\005\000\017\240\005\000\017\236\005\000\017\000\005\000\016\252\005\000\r\012\001\000\r\b\001\000\018\b\006\000\018\004\006\000\018\000\006\000\017\252\006\000\017\248\006\000\017\244\006\000\017\240\006\000\017\236\006\000\017\000\006\000\016\252\006\000\018\b\007\000\018\004\007\000\018\000\007\000\017\252\007\000\017\248\007\000\017\244\007\000\017\240\007\000\017\236\007\000\017\000\007\000\016\252\007\000\002\028\001\000\018\b\b\000\018\004\b\000\018\000\b\000\017\252\b\000\017\248\b\000\017\244\b\000\017\240\b\000\017\236\b\000\017\000\b\000\016\252\b\000\017\248\t\000\017\244\t\000\017\240\t\000\017\236\t\000\016\252\t\000\018h\001\000\018d\001\000\018`\001\000\018\\\001\000\018X\001\000\018T\001\000\018P\001\000\018L\001\000\017\240\n\000\017\236\n\000\017\024\001\000\017\020\001\000\018h\002\000\018d\002\000\018`\002\000\018\\\002\000\017\240\011\000\017\024\002\000\016\252\n\000\018\168\001\000\018\164\001\000\018\160\001\000\018\156\001\000\018\152\001\000\018\148\001\000\018\144\001\000\018\140\001\000\018\136\001\000\018\132\001\000\018\128\001\000\018|\001\000\018x\001\000\018t\001\000\018p\001\000\018l\001\000\017\248\n\000\017\244\n\000\017(\001\000\017$\001\000\017 \001\000\017\028\001\000\018\168\002\000\018\164\002\000\018\160\002\000\018\156\002\000\018\152\002\000\018\148\002\000\018\144\002\000\018\140\002\000\017\248\011\000\017\244\011\000\017(\002\000\017$\002\000\018\168\003\000\018\164\003\000\018\160\003\000\018\156\003\000\017\248\012\000\017(\003\000\018\b\t\000\018\004\t\000\018\000\t\000\017\252\t\000\017\000\t\000\018\b\n\000\018\004\n\000\018\000\n\000\017\252\n\000\017\000\n\000\018h\001\000\018d\001\000\018`\001\000\018\\\001\000\018X\001\000\018T\001\000\018P\001\000\018L\001\000\018\000\011\000\017\252\011\000\017\024\001\000\017\020\001\000\018h\002\000\018d\002\000\018`\002\000\018\\\002\000\018\000\012\000\017\024\002\000\017\000\011\000\018\168\001\000\018\164\001\000\018\160\001\000\018\156\001\000\018\152\001\000\018\148\001\000\018\144\001\000\018\140\001\000\018\136\001\000\018\132\001\000\018\128\001\000\018|\001\000\018x\001\000\018t\001\000\018p\001\000\018l\001\000\018\b\011\000\018\004\011\000\017(\001\000\017$\001\000\017 \001\000\017\028\001\000\018\168\002\000\018\164\002\000\018\160\002\000\018\156\002\000\018\152\002\000\018\148\002\000\018\144\002\000\018\140\002\000\018\b\012\000\018\004\012\000\017(\002\000\017$\002\000\018\168\003\000\018\164\003\000\018\160\003\000\018\156\003\000\018\b\r\000\017(\003\000\018(\004\000\018$\004\000\018 \004\000\018\028\004\000\018\024\004\000\018\020\004\000\018\016\004\000\018\012\004\000\017\b\004\000\017\004\004\000\018\024\005\000\018\020\005\000\018\016\005\000\018\012\005\000\017\004\005\000\018h\001\000\018d\001\000\018`\001\000\018\\\001\000\018X\001\000\018T\001\000\018P\001\000\018L\001\000\018\016\006\000\018\012\006\000\017\024\001\000\017\020\001\000\018h\002\000\018d\002\000\018`\002\000\018\\\002\000\018\016\007\000\017\024\002\000\017\004\006\000\018\168\001\000\018\164\001\000\018\160\001\000\018\156\001\000\018\152\001\000\018\148\001\000\018\144\001\000\018\140\001\000\018\136\001\000\018\132\001\000\018\128\001\000\018|\001\000\018x\001\000\018t\001\000\018p\001\000\018l\001\000\018\024\006\000\018\020\006\000\017(\001\000\017$\001\000\017 \001\000\017\028\001\000\018\168\002\000\018\164\002\000\018\160\002\000\018\156\002\000\018\152\002\000\018\148\002\000\018\144\002\000\018\140\002\000\018\024\007\000\018\020\007\000\017(\002\000\017$\002\000\018\168\003\000\018\164\003\000\018\160\003\000\018\156\003\000\018\024\b\000\017(\003\000\018(\005\000\018$\005\000\018 \005\000\018\028\005\000\017\b\005\000\018(\006\000\018$\006\000\018 \006\000\018\028\006\000\017\b\006\000\018h\001\000\018d\001\000\018`\001\000\018\\\001\000\018X\001\000\018T\001\000\018P\001\000\018L\001\000\018 \007\000\018\028\007\000\017\024\001\000\017\020\001\000\018h\002\000\018d\002\000\018`\002\000\018\\\002\000\018 \b\000\017\024\002\000\017\b\007\000\018\168\001\000\018\164\001\000\018\160\001\000\018\156\001\000\018\152\001\000\018\148\001\000\018\144\001\000\018\140\001\000\018\136\001\000\018\132\001\000\018\128\001\000\018|\001\000\018x\001\000\018t\001\000\018p\001\000\018l\001\000\018(\007\000\018$\007\000\017(\001\000\017$\001\000\017 \001\000\017\028\001\000\018\168\002\000\018\164\002\000\018\160\002\000\018\156\002\000\018\152\002\000\018\148\002\000\018\144\002\000\018\140\002\000\018(\b\000\018$\b\000\017(\002\000\017$\002\000\018\168\003\000\018\164\003\000\018\160\003\000\018\156\003\000\018(\t\000\017(\003\000\019\168\001\000\019\164\001\000\018\248\004\000\018\244\004\000\018\240\004\000\018\236\004\000\018\232\004\000\018\228\004\000\018\224\004\000\018\220\004\000\018\184\004\000\018\180\004\000\000\140\001\000\000\128\001\000\000t\001\000\019\168\002\000\018\248\005\000\018\244\005\000\018\240\005\000\018\236\005\000\018\232\005\000\018\228\005\000\018\224\005\000\018\220\005\000\018\184\005\000\018\180\005\000\019\168\003\000\018\248\006\000\018\244\006\000\018\240\006\000\018\236\006\000\018\232\006\000\018\228\006\000\018\224\006\000\018\220\006\000\018\184\006\000\018\180\006\000\rp\001\000\rl\001\000\018\232\007\000\018\228\007\000\018\224\007\000\018\220\007\000\018\180\007\000\018\224\b\000\018\220\b\000\018h\001\000\018d\001\000\018`\001\000\018\\\001\000\018X\001\000\018T\001\000\018P\001\000\018L\001\000\017\024\001\000\017\020\001\000\018\224\t\000\018h\002\000\018d\002\000\018`\002\000\018\\\002\000\017\024\002\000\018\180\b\000\018\232\b\000\018\228\b\000\018\168\001\000\018\164\001\000\018\160\001\000\018\156\001\000\018\152\001\000\018\148\001\000\018\144\001\000\018\140\001\000\018\136\001\000\018\132\001\000\018\128\001\000\018|\001\000\018x\001\000\018t\001\000\018p\001\000\018l\001\000\017(\001\000\017$\001\000\017 \001\000\017\028\001\000\018\232\t\000\018\228\t\000\018\168\002\000\018\164\002\000\018\160\002\000\018\156\002\000\018\152\002\000\018\148\002\000\018\144\002\000\018\140\002\000\017(\002\000\017$\002\000\018\232\n\000\018\168\003\000\018\164\003\000\018\160\003\000\018\156\003\000\017(\003\000\018\248\007\000\018\244\007\000\018\240\007\000\018\236\007\000\018\184\007\000\018\248\b\000\018\244\b\000\018\240\b\000\018\236\b\000\018\184\b\000\018\240\t\000\018\236\t\000\018h\001\000\018d\001\000\018`\001\000\018\\\001\000\018X\001\000\018T\001\000\018P\001\000\018L\001\000\017\024\001\000\017\020\001\000\018\240\n\000\018h\002\000\018d\002\000\018`\002\000\018\\\002\000\017\024\002\000\018\184\t\000\018\248\t\000\018\244\t\000\018\168\001\000\018\164\001\000\018\160\001\000\018\156\001\000\018\152\001\000\018\148\001\000\018\144\001\000\018\140\001\000\018\136\001\000\018\132\001\000\018\128\001\000\018|\001\000\018x\001\000\018t\001\000\018p\001\000\018l\001\000\017(\001\000\017$\001\000\017 \001\000\017\028\001\000\018\248\n\000\018\244\n\000\018\168\002\000\018\164\002\000\018\160\002\000\018\156\002\000\018\152\002\000\018\148\002\000\018\144\002\000\018\140\002\000\017(\002\000\017$\002\000\018\248\011\000\018\168\003\000\018\164\003\000\018\160\003\000\018\156\003\000\017(\003\000\019\168\001\000\019\164\001\000\018\252\003\000\018\216\003\000\018\212\003\000\018\208\003\000\018\204\003\000\018\200\003\000\018\196\003\000\018\192\003\000\018\188\003\000\018\176\003\000\018\172\003\000\000\140\001\000\000\128\001\000\000t\001\000\019\168\002\000\018\252\004\000\018\216\004\000\018\212\004\000\018\208\004\000\018\204\004\000\018\200\004\000\018\196\004\000\018\192\004\000\018\188\004\000\018\176\004\000\018\172\004\000\019\168\003\000\018\252\005\000\018\216\005\000\018\212\005\000\018\208\005\000\018\204\005\000\018\200\005\000\018\196\005\000\018\192\005\000\018\188\005\000\018\176\005\000\018\172\005\000\rp\001\000\rl\001\000\018\200\006\000\018\196\006\000\018\192\006\000\018\188\006\000\018\172\006\000\018\192\007\000\018\188\007\000\018h\001\000\018d\001\000\018`\001\000\018\\\001\000\018X\001\000\018T\001\000\018P\001\000\018L\001\000\017\024\001\000\017\020\001\000\018\192\b\000\018h\002\000\018d\002\000\018`\002\000\018\\\002\000\017\024\002\000\018\172\007\000\018\200\007\000\018\196\007\000\018\168\001\000\018\164\001\000\018\160\001\000\018\156\001\000\018\152\001\000\018\148\001\000\018\144\001\000\018\140\001\000\018\136\001\000\018\132\001\000\018\128\001\000\018|\001\000\018x\001\000\018t\001\000\018p\001\000\018l\001\000\017(\001\000\017$\001\000\017 \001\000\017\028\001\000\018\200\b\000\018\196\b\000\018\168\002\000\018\164\002\000\018\160\002\000\018\156\002\000\018\152\002\000\018\148\002\000\018\144\002\000\018\140\002\000\017(\002\000\017$\002\000\018\200\t\000\018\168\003\000\018\164\003\000\018\160\003\000\018\156\003\000\017(\003\000\018\216\006\000\018\212\006\000\018\208\006\000\018\204\006\000\018\176\006\000\018\216\007\000\018\212\007\000\018\208\007\000\018\204\007\000\018\176\007\000\018\208\b\000\018\204\b\000\018h\001\000\018d\001\000\018`\001\000\018\\\001\000\018X\001\000\018T\001\000\018P\001\000\018L\001\000\017\024\001\000\017\020\001\000\018\208\t\000\018h\002\000\018d\002\000\018`\002\000\018\\\002\000\017\024\002\000\018\176\b\000\018\216\b\000\018\212\b\000\018\168\001\000\018\164\001\000\018\160\001\000\018\156\001\000\018\152\001\000\018\148\001\000\018\144\001\000\018\140\001\000\018\136\001\000\018\132\001\000\018\128\001\000\018|\001\000\018x\001\000\018t\001\000\018p\001\000\018l\001\000\017(\001\000\017$\001\000\017 \001\000\017\028\001\000\018\216\t\000\018\212\t\000\018\168\002\000\018\164\002\000\018\160\002\000\018\156\002\000\018\152\002\000\018\148\002\000\018\144\002\000\018\140\002\000\017(\002\000\017$\002\000\018\216\n\000\018\168\003\000\018\164\003\000\018\160\003\000\018\156\003\000\017(\003\000\004\228\003\000\002\028\001\000\004\228\004\000\r\148\004\000\r\144\004\000\r\140\004\000\011\240\001\000\004\228\001\000\004\224\001\000\000\160\005\000\000\160\006\000\004\236\002\000\002\028\001\000\004\248\002\000\004\216\001\000\004\248\003\000\011\240\001\000\004\228\001\000\004\224\001\000\r\160\003\000\r\156\003\000\r\152\003\000\011\240\001\000\004\228\001\000\004\224\001\000\000\164\004\000\000\164\005\000\r\160\004\000\r\156\004\000\r\152\004\000\r\160\005\000\000\156\001\000\r\160\006\000\r\160\007\000\011\240\001\000\004\228\001\000\004\224\001\000\r\156\005\000\000\152\001\000\r\156\006\000\000\152\002\000\r\156\007\000\r\156\b\000\011\240\001\000\004\228\001\000\004\224\001\000\r\152\005\000\002\028\001\000\r\148\001\000\r\144\001\000\r\140\001\000\r\004\002\000\r\000\001\000\000\160\002\000\000\152\001\000\r\148\002\000\r\144\002\000\r\140\002\000\r\004\003\000\r\000\002\000\000\160\003\000\000\152\002\000\020P\006\000\020P\007\000\020P\b\000\000\180\003\000\000\180\004\000\002\208\003\000\002\208\004\000\002\208\005\000\002\208\006\000\002\208\007\000\004\184\001\000\004\184\002\000\000\000\001\000\000\004\000\000\004\204\001\000\004\204\002\000\000\004\001\000\000\b\000\000\020\028\001\000\007\232\001\000\001\208\001\000\007\232\002\000\007\232\003\000\007\236\001\000\000\b\001\000\b0\001\000\007\248\001\000\007\244\001\000\007\240\001\000\007\224\001\000\007\248\002\000\007\244\002\000\007\240\002\000\007\224\002\000\020\028\001\000\007\244\003\000\007\244\004\000\007\244\005\000\007\248\003\000\007\240\003\000\000X\001\000\007\228\001\000\000\\\001\000\011\028\001\000\011\028\002\000\000\012\000\000\000\012\001\000\011 \001\000\011 \002\000\000\016\000\000\000\016\001\000\011$\001\000\002\028\001\000\011$\002\000\000\020\000\000\011(\001\000\011(\002\000\000\020\001\000\000\024\000\000\000\024\001\000\011,\001\000\b0\001\000\007\224\001\000\011,\002\000\000\028\000\000\000\028\001\000\0110\001\000\b \001\000\0110\002\000\000 \000\000\000 \001\000\0114\001\000\bx\001\000\bt\001\000\bl\001\000\0114\002\000\000$\000\000\000$\001\000\0118\001\000\b\220\001\000\b\212\001\000\b\208\001\000\b\204\001\000\b\200\001\000\b\196\001\000\b\180\001\000\0118\002\000\000(\000\000\000(\001\000\011<\001\000\011<\002\000\000,\000\000\012\168\001\000\011X\001\000\011T\001\000\011L\001\000\011H\001\000\011@\001\000\005\180\001\000\005\176\001\000\005\172\001\000\005\168\001\000\011@\002\000\000,\001\000\0000\000\000\011D\001\000\011D\002\000\0000\001\000\b(\001\000\b \001\000\b(\002\000\b \002\000\0004\000\000\019\144\001\000\019\140\001\000\019\136\001\000\019\132\001\000\019\128\001\000\019|\001\000\019x\001\000\019\144\002\000\019\140\002\000\019\136\002\000\019\132\002\000\019\128\002\000\019|\002\000\019x\002\000\019\144\003\000\019|\003\000\019\128\003\000\019\140\003\000\019\132\003\000\019\136\003\000\b(\001\000\b \001\000\019t\001\000\019p\001\000\019l\001\000\019h\001\000\019d\001\000\019`\001\000\019\\\001\000\019t\002\000\019p\002\000\019l\002\000\019h\002\000\019d\002\000\019`\002\000\019\\\002\000\019t\003\000\019`\003\000\019d\003\000\019p\003\000\019h\003\000\019l\003\000\b(\001\000\b \001\000\019\160\001\000\0004\001\000\019\156\001\000\019\156\002\000\007h\001\000\007h\002\000\019\148\001\000\019\148\002\000\019\148\003\000\019\152\001\000\019\152\002\000\0008\000\000\007t\001\000\007p\001\000\007|\001\000\007x\001\000\007x\002\000\007|\002\000\007t\002\000\007t\003\000\007t\004\000\007p\002\000\0008\001\000\020\024\001\000\020\024\002\000\020\024\003\000\020\024\004\000\020\020\001\000\020\020\002"), (16, "\000\000\000\001\000\002\000\003\000\004\000\005\000\006\000\007\000\b\000\t\000\n\000\011\000\012\000\r\000\014\000\015\000\016\000\017\000\018\000\019\000\020\000\021\000\022\000\023\000\024\000\025\000\026\000\027\000\028\000\029\000\030\000\031\000 \000!\000\"\000#\000$\000%\000&\000'\000(\000)\000*\000+\000,\000-\000.\000/\0000\0001\0002\0003\0004\0005\0006\0007\0009\000:\000;\000<\000=\000>\000?\000@\000A\000B\000C\000D\000E\000F\000G\000H\000I\000J\000K\000L\000M\000N\000O\000P\000Q\000R\000S\000T\000U\000V\000W\000]\000_\000`\000a\000c\000e\000f\000h\000j\000l\000m\000o\000q\000s\000t\000u\000v\000w\000x\000y\000z\000{\000|\000}\000~\000\127\000\128\000\129\000\131\000\133\000\135\000\136\000\137\000\138\000\139\000\140\000\141\000\143\000\144\000\145\000\147\000\148\000\149\000\150\000\151\000\169\000\174\000\178\000\179\000\180\000\181\000\182\000\183\000\200\000\206\000\212\000\216\000\218\000\219\000\220\000\224\000\225\001 \001!\001^\001o\001p\001q\001r\001t\001u\001v\001w\001y\001z\001{\001|\001}\001~\001\132\001\138\001\144\001\145\001\147\001\148\001\151\001\153\001\154\001\155\001\156\001\159\001\160\001\161\001\165\001\167\001\169\001\170\001\174\001\175\001\177\001\178\001\179\001\180\001\184\001\185\001\186\001\187\001\189\001\191\001\193\001\194\001\198\001\199\001\201\001\202\001\203\001\204\001\205\001\207\001\208\001\209\001\210\001\211\001\212\001\215\001\218\001\219\001\223\001\225\001\226\001\228\001\229\001\234\001\253\001\254\002\000\002\007\002\012\002\017\002\018\002\019\002\020\002\021\002\022\002\023\002\024\002\025\002#\002(\002-\002.\0020\0021\0023\0025\0026\0027\002:\002<\002?\002@\002B\002C\002D\002G\002H\002K\002L\002M\002N\002O\002Q\002R\002S\002T\002U\002V\002W\002X\002Y\002^\002b\002d\002o\002t\002\128\002\129\002\131\002\132\002\133\002\139\002\144\002\156\002\162\002\163\002\203\002\220\002\221\002\227\002\230\002\231\002\232\002\233\002\234\002\238\002\241\002\242\002\243\002\244\002\245\002\248\002\250\002\251\002\255\003\001\003\003\003\004\003\b\003\028\003-\0039\003:\003;\003<\003=\003>\003?\003C\003D\003N\003O\003P\003Q\003R\003S\003^\003h\003m\003y\003\127\003\128\003\150\003\162\003\167\003\179\003\185\003\186\003\208\003\220\003\226\003\231\003\243\003\249\003\250\004\016\004\028\004\"\004'\004(\004+\004,\0040\0041\0042\0043\0044\0047\0049\004<\004=\004A\004E\004I\004O\004T\004Y\004e\004k\004l\004\130\004\142\004\148\004\149\004\153\004\156\004\157\004\158\004\160\004\161\004\162\004\166\004\167\004\168\004\169\004\170\004\174\004\175\004\180\004\181\004\184\004\186\004\187\004\191\004\193\004\195\004\196\004\200\004\202\004\212\004\217\004\219\004\231\004\241\004\252\005\006\005\011\005\023\005\029\005\030\0054\005@\005F\005K\005P\005\\\005b\005c\005y\005\133\005\139\005\149\005\154\005\166\005\172\005\173\005\195\005\207\005\213\005\218\005\223\005\235\005\241\005\242\006\b\006\020\006\026\006.\006?\006K\006U\006`\006j\006o\006{\006\129\006\130\006\152\006\164\006\170\006\175\006\180\006\192\006\198\006\199\006\221\006\233\006\239\006\249\006\254\007\n\007\016\007\017\007'\0073\0079\007>\007C\007O\007U\007V\007l\007x\007~\007\148\007\160\007\166\007\167\007\189\007\201\007\207\007\212\007\214\007\215\007\219\007\220\007\223\007\224\007\228\007\229\007\232\007\233\007\234\007\235\007\236\007\237\007\238\007\240\007\241\007\242\007\243\007\245\007\246\007\247\007\248\007\250\007\251\007\255\b\000\b\004\b\005\b\007\b\t\b\n\b\011\b\012\b\014\b\015\b\017\b\018\b\021\b\022\b\023\b\025\b\026\b\027\b\028\b\030\b \b#\b$\b&\b+\b0\b5\bA\bG\bM\bS\bY\b_\bd\bp\bv\b|\b\130\b\136\b\142\b\143\b\147\b\148\b\149\b\150\b\151\b\153\b\154\b\164\b\169\b\174\b\179\b\185\b\190\b\195\b\207\b\213\b\219\b\225\b\232\b\238\b\244\b\249\t\005\t\011\t\017\t\023\t\030\t$\t*\t.\t/\t0\t1\t2\t6\t7\t8\t9\t:\tA\tF\tH\tJ\tL\tM\tN\tP\tQ\tR\tS\tT\tU\tV\tW\tX\tY\t]\ta\te\tg\ti\tk\tl\tm\to\tp\tq\ts\tt\tu\tv\tx\tz\t|\t}\t~\t\127\t\128\t\129\t\131\t\133\t\134\t\135\t\136\t\137\t\138\t\139\t\140\t\141\t\142\t\143\t\151\t\153\t\157\t\158\t\161\t\163\t\164\t\174\t\179\t\184\t\189\t\195\t\200\t\205\t\217\t\223\t\229\t\235\t\242\t\248\t\254\n\003\n\015\n\021\n\027\n!\n(\n.\n4\n6\n8\n:\n;\n<\n=\n>\n?\nC\nD\nF\nJ\nK\nL\nM\nN\nO\nP\nQ\nR\nU\nW\nX\nY\nZ\n_\n`\na\nb\nc\nd\ne\nf\ng\nh\ni\nj\nk\nl\nq\nv\n\130\n\136\n\142\n\148\n\155\n\161\n\167\n\173\n\179\n\180\n\182\n\183\n\185\n\187\n\188\n\189\n\190\n\197\n\203\n\206\n\207\n\208\n\209\n\210\n\211\n\212\n\213\n\223\n\228\n\240\n\246\n\252\011\002\011\t\011\015\011\021\011\027\011!\011\"\011#\011$\011%\011/\0110\011:\011;\011E\011F\011G\011H\011J\011T\011Z\011_\011k\011q\011w\011}\011\132\011\138\011\144\011\150\011\156\011\157\011\167\011\170\011\178\011\179\011\180\011\181\011\182\011\187\011\188\011\189\011\200\011\201\011\202\011\204\011\205\011\215\011\216\011\217\011\227\011\228\011\230\011\231\011\232\011\233\011\245\011\247\011\248\011\249\011\250\012\004\012\006\012\007\012\016\012\017\012\027\012\031\012\"\012#\012$\012%\012&\012'\012(\012)\012*\012+\012,\0122\0128\012=\012I\012O\012U\012[\012b\012h\012n\012t\012z\012{\012|\012\134\012\139\012\151\012\157\012\163\012\169\012\176\012\182\012\188\012\194\012\200\012\201\012\211\012\212\012\222\012\223\012\233\012\234\012\235\012\236\012\237\012\243\012\248\r\004\r\n\r\016\r\022\r\029\r#\r)\r/\r5\r6\r@\rA\rK\rQ\rW\rX\rb\rg\rl\rq\rt\rw\ry\r\127\r\131\r\135\r\137\r\140\r\141\r\142\r\143\r\146\r\147\r\148\r\149\r\150\r\151\r\152\r\153\r\154\r\157\r\159\r\160\r\161\r\162\r\167\r\169\r\170\r\171\r\172\r\184\r\192\r\200\r\204\r\208\r\210\r\213\r\215\r\216\r\218\r\219\r\220\r\221\r\222\r\223\r\224\r\226\r\231\r\233\r\235\r\237\r\243\r\249\r\255\014\005\014\011\014\017\014\018\014\030\014\031\014 \014!\014\"\014%\014&\014(\0140\0148\014F\014I\014L\014M\014O\014P\014S\014T\014U\014V\014W\014X\014Y\014h\014l\014p\014r\014u\014v\014y\014z\014{\014|\014}\014~\014\127\014\128\014\129\014\130\014\131\014\132\014\145\014\147\014\148\014\149\014\150\014\154\014\155\014\157\014\158\014\162\014\163\014\164\014\165\014\166\014\168\014\169\014\170\014\185\014\189\014\193\014\195\014\198\014\199\014\201\014\216\014\220\014\224\014\226\014\229\014\232\014\233\014\234\014\235\014\236\014\237\014\238\014\244\015\000\015\015\015\019\015\023\015\025\015\028\015\029\015 \015.\015/\0152\0156\0158\015;\015<\015>\015?\015@\015A\015B\015C\015D\015F\015G\015H\015I\015K\015P\015Q\015R\015S\015Y\015_\015e\015l\015q\015}\015\131\015\137\015\143\015\149\015\155\015\161\015\162\015\163\015\164\015\165\015\166\015\181\015\182\015\183\015\184\015\199\015\200\015\201\015\204\015\205\015\213\015\221\015\229\015\238\015\240\015\241\015\242\015\243\015\253\015\254\015\255\016\000\016\001\016\002\016\017\016\018\016\019\016\026\016\027\016\029\016#\016)\016/\0166\0167\0168\0169\016]\016_\016`\016a\016b\016c\016d\016e\016f\016g\016v\016w\016\140\016\160\016\165\016\166\016\168\016\170\016\171\016\172\016\173\016\174\016\175\016\178\016\179\016\181\016\183\016\186\016\188\016\190\016\192\016\194\016\196\016\197\016\199\016\201\016\202\016\211\016\213\016\215\016\217\016\219\016\221\016\222\016\223\016\227\016\228\016\232\016\234\016\235\016\237\016\238\016\240\016\241\016\245\016\247\016\249\016\250\017\002\017\004\017\r\017\014\017\017\017\019\017\028\017\031\017\"\017$\017&\017'\017(\017)\017*\017,\017-\0175\0178\0179\017<\017=\017>\017A\017B\017D\017E\017F\017I\017L\017M\017V\017Y\017a\017b\017k\017l\017m\017n\017o\017p\017q\017u\017\130\017\131\017\138\017\139\017\141\017\150\017\151\017\152\017\153\017\154\017\155\017\156\017\157\017\159\017\160\017\164\017\165\017\173\017\174\017\176\017\178\017\180\017\182\017\183\017\185\017\186\017\187\017\193\017\198\017\210\017\216\017\222\017\228\017\234\017\240\017\246\018\n\018\015\018\027\018!\018'\018-\0183\0189\018?\018S\018T\018U\018V\018W\018]\018c\018i\018p\018r\018\129\018\131\018\132\018\133\018\134\018\192\018\194\018\200\018\206\018\212\018\219\019\018\019\020\019\026\019 \019&\019-\019d\019f\019l\019r\019x\019\127\019\182\019\184\019\190\019\196\019\202\019\209\020\b\020\n\020\016\020\022\020\028\020#\020Z\020\\\020b\020h\020n\020u\020\172\020\174\020\180\020\186\020\192\020\199\020\254\021\000\021\006\021\012\021\018\021\025\021P\021R\021X\021^\021d\021k\021\162\021\164\021\170\021\176\021\182\021\189\021\244\021\246\021\252\022\002\022\b\022\015\022F\022H\022N\022T\022Z\022a\022\152\022\154\022\160\022\166\022\172\022\179\022\234\022\236\022\242\022\248\022\254\023\005\023<\023>\023D\023J\023P\023W\023\142\023\144\023\150\023\156\023\162\023\169\023\224\023\226\023\232\023\238\023\244\023\251\0242\0247\024C\024I\024O\024U\024[\024a\024g\024{\024\129\024\135\024\141\024\148\024\203\024\205\024\211\024\217\024\223\024\230\025\029\025\031\025%\025+\0251\0258\025o\025q\025w\025}\025\131\025\138\025\193\025\195\025\201\025\207\025\213\025\220\026\019\026\021\026\027\026!\026'\026.\026e\026g\026m\026s\026y\026\128\026\183\026\185\026\191\026\197\026\203\026\210\027\t\027\n\027\011\027\r\027\028\027\030\027$\027*\0270\0277\027n\027q\027r\027s\027t\027u\027v\027w\027\127\027\129\027\130\027\131\027\132\027\133\027\134\027\135\027\137\027\138\027\139\027\140\027\141\027\142\027\143\027\144\027\154\027\160\027\162\027\164\027\166\027\169\027\170\027\171\027\172\027\173\027\174\027\178\027\180\027\183\027\184\027\185\027\186\027\187\027\188\027\190\027\191\027\192\027\193\027\194\027\195\027\196\027\197\027\198\027\199\027\203\027\205\027\208\027\209\027\210\027\211\027\212\027\213\027\214\027\215\027\216\027\226\027\227\027\228\027\234\027\240\027\244\027\248\027\250\027\253\027\254\027\255\028\000\028\001\028\002\028\004\028\005\028\006\028\007\028\b\028\t\028\n\028\011\028\012\028\r\028\014\028\015\028\016\028\017\028\018\028\019\028J\028P\028V\028\\\028c\028\154\028\164\028\165\028\166\028\168\028\169\028\170\028\171\028\172\028\173\028\175\028\176\028\177\028\181\028\190\028\199\028\208\028\218\028\220\028\226\028\232\028\238\028\245\029,\029-\029/\0290\0297\0299\029D\029F\029L\029R\029X\029_\029\150\029\152\029\163\029\165\029\171\029\177\029\183\029\190\029\245\029\247\030\002\030\004\030\n\030\016\030\022\030\029\030T\030^\030`\030f\030l\030r\030y\030\176\030\180\030\187\030\194\030\201\030\209\030\210\030\211\030\213\030\219\030\225\030\231\030\238\031%\031]\031_\031e\031k\031q\031x\031\175\031\176\031\177\031\178\031\180\031\181\031\182\031\183\031\184\031\185\031\186\031\244\031\246\031\247 0 2 3 7 @ I R \\ ^ _ ` a b \156 \158 \159 \163 \164 \173 \182 \191 \201 \203 \204 \205 \206!\b!\n!\011!\012!\r!\014!\015!\030!\031! !#!$!'!*!,!-!.!/!0!F![!]!^!_!n!w!z!}!\128!\130!\136!\142!\148!\155!\210!\213!\216!\219!\221!\227!\233!\239!\246\"-\"0\"3\"6\"8\">\"D\"J\"Q\"\136\"\157\"\160\"\163\"\166\"\168\"\174\"\180\"\186\"\193\"\248\"\251\"\254#\001#\003#\t#\015#\021#\028#S#V#Y#\\#^#d#j#p#w#\174#\185#\194#\197#\200#\203#\205#\211#\217#\223#\230$\029$ $#$&$($.$4$:$A$x${$~$\129$\131$\137$\143$\149$\156$\211$\214$\216$\222$\228$\234$\241%(%7%9%:%;%r%s%t%u%v%w%x%y%z%\127%\130%\131%\132%\133%\134%\135%\136%\137%\138%\139%\140%\141%\142%\143%\144%\145%\146%\147%\148%\149%\150%\151%\152%\153%\154%\155%\156%\176%\182%\188%\194%\201&\000&\001&\002&\003&\004&\005&\007&\b&\t&\n&\017&\023&\029&%&-&5&>&@&F&L&R&Y&\144&\201&\203&\209&\215&\221&\228'\027'\028'\029'\030'1'7'='C'J'K'\130'\131'\146'\147'\148'\163'\168'\173'\178'\184'\191'\192'\246'\247'\248'\254(\004(\n(\017(H(K(M(N(O(P(Q(Z(c(l(v(x(y(z({(\181(\183(\184(\193(\202(\211(\221(\223(\224(\225(\226(\227)\029)\031) )))2);)E)F)G)O)P)R)[)\\)])e)f)\160)\161)\162)\170)\171)\173)\182)\183)\184)\192)\193)\197)\198)\199)\200)\201)\205)\206)\207)\208)\209)\210)\211)\212)\213)\214)\215)\216)\220)\222)\231)\232)\236)\237)\238)\242)\243)\244)\245)\246)\247)\248)\249)\253)\254)\255*\000*\001*\002*\004*\005*\006*\007*\b*\t*\n*\011*\012*\014*\016*\018*\021*\022*\026*\028*\030* *!*\"*&*'*(***+*,*.*3*5*9*=*?*D*F*K*M*N*S*U*Y*a*g*m*r*z*|*\127*\129*\130*\134*\136*\138*\139*\143*\145*\149*\151*\152*\153*\157*\163*\164*\165*\169*\175*\176*\177*\178*\179*\180*\181*\182*\183*\184*\185*\186*\187*\188*\189*\190*\191*\192*\193*\194*\200*\206*\212*\219+\018+\019+\028+%+.+8+:+;+<+=+>+x+z+{+\138+\140+\142+\144+\149+\150+\151+\159+\160+\163+\164+\166+\167+\168+\169+\170+\171+\173+\174+\176+\178+\184+\190+\196+\203,\002,\004,\005,\006,\007,\011,\012,\r,\014,\018,\019,\022,\023,\024,\025,\026,\027,#,$,%,',),*,+,,,-,.,/,0,1,2,3,4,5,6,7,8,9,;,F,G,H,I,J,K,L,M,Q,S,T,U,V,W,X,Y,\\,],_,`,a,b,d,e,f,g,i,k,m,o,q,r,t,w,y,z,{,|,},~,\127,\128,\130,\131,\133,\135,\136,\137,\138,\139,\140,\141,\142,\144,\145,\146,\147,\148,\149,\150,\151,\152,\153,\155,\156,\157,\158,\159,\161,\162,\164,\165,\166,\167,\168,\170,\171,\172,\173,\175,\176,\178,\179,\180,\181,\182,\183,\184,\185,\186,\188,\190,\191,\192,\194,\195,\196,\198,\199,\200,\201,\203,\205,\206,\207,\209,\210,\211,\213,\214,\216,\218,\219,\220,\221,\223,\224,\226,\227,\228,\229,\230,\231,\232,\233,\234,\235,\237,\238,\239,\240,\241,\242,\243,\244,\246,\247,\248,\249,\250,\251,\252,\253,\254-\t-\n-\011-\012-\r-\014-\016-\018-\019-\021-\023-\024-\025-\026-\027-\028-\029-\030-!-#-$-&-'-(-)-*-,-.-0-1-2-3-4-5-6-9-<-=-@-C-E-F-G-H-J-K-L-M-N-O-P-Q-R-V-X-Y-[-\\-]-^-_-`-c-f-h-i-j-k-m-n-o-p-q-r-s-t-u-v-w-y-z-{-}-\129-\130-\131-\132-\133-\134-\135-\137-\138-\139-\141-\142-\143-\145-\146-\147-\148-\149-\151-\152-\154-\155-\156-\158-\160-\161-\163-\164-\165-\167-\168-\169-\171-\172-\174-\175-\177-\178-\179-\180-\181-\184-\185-\186-\190-\191-\192-\193-\197-\200-\201-\202-\203-\204-\205-\211-\216-\219-\221-\222-\224-\225-\226-\227-\228-\230-\231-\232-\233-\234-\235-\237-\238-\239-\240-\241-\242-\243-\244-\245-\246-\247-\248-\249-\250-\252-\253-\254-\255.\001.\002.\003.\004.\005.\006.\007.\b.\t.\n.\011.\012.\r.\014.\015.\016.\017.\018.\019.\020.\021.\022.\023.\025.\026.\027.\028.\029.\030.\031.#.$.%.&.'.(.).*.+.-.../.0.1.2.3.4.5.6.7.8.9.<.=.>.?.@.A.B.C.D.E.F.G.H.I.J.L.N.O.P.Q.R.S.V.W.X.Y.Z.[.\\.]._.`.a.b.c.d.f.h.i.j.l.m.n.o.p.s.t.u.v.z.\130.\131.\137.\143.\144.\154.\160.\166.\167.\177.\182.\193.\194.\195.\197.\198.\199.\200.\201.\202.\203.\204.\206.\221.\222.\224.\239.\245/\t/\015/\021/\027/\"/Y/_/s/y/\127/\133/\140/\195/\200/\201/\202/\204/\205/\206/\207/\212/\215/\218/\221/\223/\225/\226/\227/\233/\235/\236/\237/\238/\239/\2510\0050\0160\0260\0310+01020H0T0Z0_0d0p0v0w0\1410\1530\1590\1630\1640\1650\1660\1670\1680\1690\1700\1720\1730\1750\1760\1770\1780\1790\1810\1820\1830\1840\1850\1860\1870\1880\1890\1900\1910\2010\2090\2130\2140\2150\2160\2170\2180\2190\2200\2210\2220\2230\2240\2250\2260\2270\2280\2290\2300\2310\2320\2340\2350\2360\2370\2380\2400\2410\2420\2430\2440\2470\2500\2520\2530\2541\0001\0011\0021\0031\0041\0061\0071\b1\n1\0111\0121\r1\0161\0171\0181\0191\0221\0231\0291\0311!1#1%1&1.1/1317191:1=1>1?1@1A1I1J1K1L1M1N1O1W1X1Y1Z1[1\\1]1^1_1`1a1c1d1f1g1h1i1j1k1s1t1u1v1w1y1\1301\1311\1321\1331\1341\1351\1361\1371\1381\1391\1411\1421\1431\1441\1451\1461\1471\1481\1491\1501\1511\1521\1531\1541\1551\1561\1571\1581\1591\1601\1611\1621\1631\1641\1651\1661\1671\1681\1691\1701\1711\1721\1731\1741\1821\1831\1841\1851\1861\1871\1881\1891\1901\1911\1921\1931\1941\1961\1971\1981\1991\2001\2011\2021\2031\2111\2121\2241\2341\2451\2552\0042\0162\0222\0232-292?2D2I2U2[2\\2r2~2\1322\1422\1472\1592\1652\1662\1882\2002\2062\2112\2162\2282\2342\2353\0013\r3\019313B3N3X3c3m3r3~3\1323\1333\1553\1673\1733\1783\1833\1953\2013\2023\2243\2363\2423\2524\0014\r4\0194\0204*464<4A4F4R4X4Y4o4{4\1294\1444\1554\1684\1734\1854\1914\1924\2144\2264\2324\2374\2424\2545\0045\0055\0275'5-5=5I5W5\\5h5n5o5\1335\1455\1515\1565\1615\1735\1795\1805\2025\2145\2205\2225\2235\2305\2315\2335\2355\2365\2395\2465\2475\2505\2525\2536\0016\0036\0056\0066\n6\0126\0196\0266\0276\0286\0296\0306\0316 6!6\"6#6$6%6&6'6(6)6*6+6,6/60616263686<6>6?6@6A6B6C6D6E6F6G6H6I6J6K6L6M6O6P6Q6R6S6T6U6V6Y6Z6[6\\6^6_6`6a6e6f6g6h6p6q6r6s6t6u6v6\1286\1296\1306\1316\1326\1336\1346\1366\1386\1396\1466\1536\1546\1556\1566\1576\1586\1616\1686\1756\1766\1776\1786\1796\1806\1836\1846\1856\1866\1876\1886\1896\1906\1916\1926\1936\1946\1956\1976\1986\1996\2006\2016\2026\2036\2046\2056\2066\2076\2086\2096\2106\2116\212")) and nullable = - "\000\000\016\b\144\016\001\000\000\000\128p\128\000\031\255\192\000\224\000\000\003\255\248\000\000\004\004\002\b\000\000`@\000" + "\000\000\016\b\144\016\001\000\000\000\128p\128\000\031\255\192\000\224\000\000\003\255\248\000\000\004\004\001\004\000\0000 \000" and first = - (147, "'\244\1681i\170o\204\231\216\011\220\015\242(\000\028d\004\254\149\006-5M\249\156\251\001{\129\254E\000\003\140\128\002\000\000\000\000\000\020\000\000\000\000\000\000\000\000\000\000\000\000\202@\b\016\000\018\130b\228\000\238\000\200\000\000\004\016\000\b\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\001\000 \000\004\n\b\000\000\000\000 \000\000\000\000\000\000`@\004\000\000\001\001\000\000\000\000\004\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004v\148\002-\021\r\248\152\249\000[\001\244\005\000\001\140\128\014\000\000p\n\000\028\\\016\000\000P\000\000\000\000\000\000\000H\000\000\000\000\002\000\002\000\000\000\000@\000\000\000\000\000\t\000\000\000\000\000P\000@\000\000\000\b\000\000\000\000\000\b\128\016@\002\004\000\016@ \016\000\000\164\000\000 \t\253*\012Zj\155\2439\246\002\182\003\252\138\000\007\025\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000@\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\016\000\000\002\000\000\000\016\000\002\000\000\000\000\001\000@\002\000\000\000\000\000\000\000\000\016\000\004\000\000\000\000\000(\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\159\210\160\197\166\169\1913\159`/p?\200\160\000q\144\000\000\000\000\000\000\000\000\000\000\000`\000\000\000\000\000\000\000\000\000\000\018\000\002\000\000\000\004\000\000\000\000\000\000\004\000\001\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\001\000\000\t \000$\000\000\000@\000\000\000\000\000\000@\000 \000\001$\000\004\000\000\000\b\000\000\000\000\000\000\b\000\002\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\000\000\003\000\0000\000\000\n.\b\000\000(\000\000\000\000\000\000\t\253*\012Zj\155\2439\246\002\247\003\252\138\000\007\025\000\000\000\000\000\000\000\000\000\000\000\b \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\012\000\000\000\000\000\000\000\000\000\000\000\000\017\000\000\128\004\b\001 \128@ \000\001@\000\000@\000\019\250T\024\180\2137\230s\236\005l\007\248\020\000\0142\0008\000\001\192(\000qp@\000\001@\000\000\000\000\000\000\003)\000(D\000J\t\138\144\003\184\003\016\000\000\016@\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\003\231\216\136\016+\240\218\000\0040p\000\246\142\005\128\1604\001\144\128\016 \000$\004\197\b\001\220\001\128\000\000\b \0002\016\002\004\000\004\160\152\161\000;\1280\000\000\001\004\000\006B\000D\000\160\020\019\028 \003`\006\000\160\0001\128\000\000\000\000\000\000\000\000b\128\000\012\000\000\000\000\000\000\000\000\b\000\002\000\002\000\000\000\128\000\000\016\000\000\000\128\000\000\001\000\000@\000@\000\000\016\001\128\002\000\000\000\016\000\001\016\000\b\000@\128\002\b\004\002\000\000\020\000\000\004\000\000\"\000A\000\b\016\000A\000\128@\000\002\128\000\000\128\128\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\004v\148\002-\021\r\248\152\249\000[\001\244\005\000\001\140\128\002\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\202@\b\016\000\018\130b\228\000\238\000\200\000\000\004\016\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000Gi@\"\209P\223\137\143\144\005\176\031@P\000\024\200\000\224\000\007\000\160\001\197\193\000\000\005\000\000\000\000\000\b\000\028\000\000\224\020\0008\184 \000\000\160\000\000\000\000\000\000\001\128\000\024\000\000\005\023\004\000\000\020\000\000\000\000\000\000\0000\000\003\000\000\000\162\224\128\000\002\132\000\000\000\000\000\000\004\000\000$\128\000\128\000\000\001\000\000\000\000\000\000\001\000\000\128\000\004\144\000\016\000\000\000 \000\000\000\000\000\000 \0008\000\001\192(\000qp@\000\001@\000\000\000\000\000\000\007\000\0008\005\000\014.\b\000\000(\000\000\000\000\000@\000\016\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\028\164\000\129\004\0018&n@\014\224\012\128\000\000A\000\003\128\000\028\002\128\007\023\004\000\000\020\000\000\000\000\000\000\0002\144\002\004\000\004\160\152\185\000;\1282\000\000\001\020\000\000\000\000 \000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\025H\001P\"\128PLt\128\r\128\024\002\128\000\198\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\012\164\000\161\016\001(&*@\014\224\012\000\000\000A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\0002\144\002\004\000\004\160\152\185\000;\1280\000\000\001\004\000\006R\000@\128\000\148\019\023 \007p\006@\000\000 \128\017\218P\b\180T7\226c\228\001l\007\208\020\000\0062\000\t\000\000\000\000\000@\000@\000\000\000\b\000\000\000\b\000\001 \000\000\000\000\b\000\b\000\000\000\001\000\000\000\001\000\000$\000\000\000\000\001\000\001\000\000\000\000 \000\000\000 \000\012\000\000\000\000\000(\000\001\000\000\000\000\000\000\000\000\000\001\144\128\017\000(\005\004\199\b\000\216\001\128(\000\012`\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\224\000\007\000\160\001\197\193\000\000\005\000\000\000\000\000\000\000\028\000\000\224\020\0008\184 \000\000\160\000\000\000\000\000\000'\244\1685i\170o\204\231\216\n\216\015\240(\000\192V\192\127\145@\000\227 \000\128\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000H\000\000\000\000\002\000\002\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\003\128\000\028\002\128\007\023\004\000\000\020\000\000\000\000\000\000\004v\148\002-\021\r\248\152\249\000[\001\244\005\000\001\140\128\006R\000P\136\000\148\019\021 \007p\006\000\000\000 \128\000\202@\n\017\000\018\130b\164\000\238\000\192\000\000\004\016\002;J\001\022\138\134\252L|\128-\128\250\002\128\000\198@Gi@\"\209P\223\137\143\144\005\176\031@P\000\024\200\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\018\000\000\000\000\000\128\000\128\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\b\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\001\000\193\000\000\004\000\000\000\000\000\000\000\000\000\000\128\000\000 \184 \000\000\128\000\000\000\000\000\000\003\128\000\028\002\128\007\023\004\000\000\020\000\000\000\000\000\000\000\018\000\000\000\000\000\128\000\128\000\000\000\016\000\000\000\016\000\006\000\000`\000\000\020\\\020\000\000P\128\000\000\000\000\000\001\192\000\014\001@\003\139\130\000\000\n\000\000\000\000\000\000\000\t\000\000\000\000\000@\000@\000\000\000\b\000\000\000\000\000\001 \000\000\000\000\b\000\b\000\000\000\001\000\000\000\000\000\000\004\000\000\000\000\001\000\001\000\000\000\000 \000\000\000\000\000\000\004\000\000\000\000\000\000\000@\006\000\b\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\004\000\000\b\000\000\000\000\000r\144\002\004\016\004\224\153\185\000;\1282\000\000\001\004\000@\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000@\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\003\000\0008\004@\n\174\b\000\000(\000\000\000\000\000\000\000 \000\000\000\b\001@\001\000\000\000\000\000\000\000\000\000\000\004\000\000\128\001\000\n \000\000\000\000\000\000\000\000\000\004\000\000 \000\000\016\b \002\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\025H\001B \002PLT\128\029\192\024\000\000\000\130\000\003)\000(D\000J\t\138\144\003\184\003\016\000\000P@\001\000\000\b\000\000\004\002\b\001\128\000\000\000\000\004\000\000\000\004\000\000\128\001\000* \000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\004\254\149\006\1735M\249\156\251\001[\001\254\005\000\007\140\129\243\236D\b\021\248m\000\002\0248\000{G\002\192P\026\000\192\000\012\000\000\002\139\130\000\000\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\004\128\000\000\000\000(\000 \000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128p\000\003\128P\000\226\224\128\000\002\128\000\000\000\000\000\000\000\000\000\001\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000") + (147, "'\244\1681i\170o\204\231\216\011\220\015\242(\000\028d\004\254\149\006-5M\249\156\251\001{\129\254E\000\003\140\128\002\000\000\000\000\000\020\000\000\000\000\000\000\000\000\000\000\000\000\202@\b\016\000\018\130b\228\000\238\000\200\000\000\004\016\000\b\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\001\000 \000\004\n\b\000\000\000\000 \000\000\000\000\000\000`@\004\000\000\001\001\000\000\000\000\004\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004v\148\002-\021\r\248\152\249\000[\001\244\005\000\001\140\128\014\000\000p\n\000\028\\\016\000\000P\000\000\000\000\000\000\000H\000\000\000\000\002\000\002\000\000\000\000@\000\000\000\000\000\t\000\000\000\000\000P\000@\000\000\000\b\000\000\000\000\000\b\128\016@\002\004\000\016@ \016\000\000\164\000\000 \t\253*\012Zj\155\2439\246\002\182\003\252\138\000\007\025\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000@\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\016\000\000\002\000\000\000\016\000\002\000\000\000\000\001\000@\002\000\000\000\000\000\000\000\000\016\000\004\000\000\000\000\000(\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\159\210\160\197\166\169\1913\159`/p?\200\160\000q\144\000\000\000\000\000\000\000\000\000\000\000`\000\000\000\000\000\000\000\000\000\000\018\000\002\000\000\000\004\000\000\000\000\000\000\004\000\001\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\001\000\000\t \000$\000\000\000@\000\000\000\000\000\000@\000 \000\001$\000\004\000\000\000\b\000\000\000\000\000\000\b\000\002\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\000\000\003\000\0000\000\000\n.\b\000\000(\000\000\000\000\000\000\t\253*\012Zj\155\2439\246\002\247\003\252\138\000\007\025\000\000\000\000\000\000\000\000\000\000\000\b \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\012\000\000\000\000\000\000\000\000\000\000\000\000\017\000\000\128\004\b\001 \128@ \000\001@\000\000@\000\019\250T\024\180\2137\230s\236\005l\007\248\020\000\0142\0008\000\001\192(\000qp@\000\001@\000\000\000\000\000\000\003)\000(D\000J\t\138\144\003\184\003\016\000\000\016@\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\003\231\216\136\016+\240\218\000\0040p\000\246\142\005\128\1604\001\144\128\016 \000$\004\197\b\001\220\001\128\000\000\b \0002\016\002\004\000\004\160\152\161\000;\1280\000\000\001\004\000\006B\000D\000\160\020\019\028 \003`\006\000\160\0001\128\000\000\000\000\000\000\000\000b\128\000\012\000\000\000\000\000\000\000\000\b\000\002\000\002\000\000\000\128\000\000\016\000\000\000\128\000\000\001\000\000@\000@\000\000\016\001\128\002\000\000\000\016\000\001\016\000\b\000@\128\002\b\004\002\000\000\020\000\000\004\000\000\"\000A\000\b\016\000A\000\128@\000\002\128\000\000\128\128\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\004v\148\002-\021\r\248\152\249\000[\001\244\005\000\001\140\128\002\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\202@\b\016\000\018\130b\228\000\238\000\200\000\000\004\016\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000Gi@\"\209P\223\137\143\144\005\176\031@P\000\024\200\000\224\000\007\000\160\001\197\193\000\000\005\000\000\000\000\000\b\000\028\000\000\224\020\0008\184 \000\000\160\000\000\000\000\000\000\001\128\000\024\000\000\005\023\004\000\000\020\000\000\000\000\000\000\0000\000\003\000\000\000\162\224\128\000\002\132\000\000\000\000\000\000\004\000\000$\128\000\128\000\000\001\000\000\000\000\000\000\001\000\000\128\000\004\144\000\016\000\000\000 \000\000\000\000\000\000 \0008\000\001\192(\000qp@\000\001@\000\000\000\000\000\000\007\000\0008\005\000\014.\b\000\000(\000\000\000\000\000@\000\016\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\028\164\000\129\004\0018&n@\014\224\012\128\000\000A\000\003\128\000\028\002\128\007\023\004\000\000\020\000\000\000\000\000\000\0002\144\002\004\000\004\160\152\185\000;\1282\000\000\001\020\000\000\000\000 \000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\025H\001P\"\128PLt\128\r\128\024\002\128\000\198\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\012\164\000\161\016\001(&*@\014\224\012\000\000\000A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\0002\144\002\004\000\004\160\152\185\000;\1280\000\000\001\004\000\006R\000@\128\000\148\019\023 \007p\006@\000\000 \128\017\218P\b\180T7\226c\228\001l\007\208\020\000\0062\000\t\000\000\000\000\000@\000@\000\000\000\b\000\000\000\b\000\001 \000\000\000\000\b\000\b\000\000\000\001\000\000\000\001\000\000$\000\000\000\000\001\000\001\000\000\000\000 \000\000\000 \000\012\000\000\000\000\000(\000\001\000\000\000\000\000\000\000\000\000\001\144\128\017\000(\005\004\199\b\000\216\001\128(\000\012`\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\224\000\007\000\160\001\197\193\000\000\005\000\000\000\000\000\000\000\028\000\000\224\020\0008\184 \000\000\160\000\000\000\000\000\000'\244\1685i\170o\204\231\216\n\216\015\240(\000\192V\192\127\145@\000\227 \000\128\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000H\000\000\000\000\002\000\002\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\003\128\000\028\002\128\007\023\004\000\000\020\000\000\000\000\000\000\004v\148\002-\021\r\248\152\249\000[\001\244\005\000\001\140\128\006R\000P\136\000\148\019\021 \007p\006\000\000\000 \128\000\202@\n\017\000\018\130b\164\000\238\000\192\000\000\004\016\002;J\001\022\138\134\252L|\128-\128\250\002\128\000\198@Gi@\"\209P\223\137\143\144\005\176\031@P\000\024\200\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\002@\000\000\000\000\016\000\016\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\001\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000 \024 \000\000\128\000\000\000\000\000\000\000\000\000\016\000\000\004\023\004\000\000\016\000\000\000\000\000\000\000p\000\003\128P\000\226\224\128\000\002\128\000\000\000\000\000\000\002@\000\000\000\000\016\000\016\000\000\000\002\000\000\000\002\000\000\192\000\012\000\000\002\139\130\128\000\n\016\000\000\000\000\000\0008\000\001\192(\000qp@\000\001@\000\000\000\000\000\000\001 \000\000\000\000\b\000\b\000\000\000\001\000\000\000\000\000\000$\000\000\000\000\001\000\001\000\000\000\000 \000\000\000\000\000\000\128\000\000\000\000 \000 \000\000\000\004\000\000\000\000\000\000\000\128\000\000\000\000\000\000\b\000\192\001\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\128\000\001\000\000\000\000\000\014R\000@\130\000\156\0197 \007p\006@\000\000 \128\b\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\b\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000`\000\007\000\136\001U\193\000\000\005\000\000\000\000\000\000\000\004\000\000\000\001\000(\000 \000\000\000\000\000\000\000\000\000\000\128\000\016\000 \001D\004\000\000\000\000\000\000\000\000\000\000\128\000\004\000\000\002\001\004\000@\000\000\000\000\002\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\003)\000(D\000J\t\138\144\003\184\003\000\000\000\016@\000e \005\b\128\tA1R\000w\000b\000\000\n\b\000 \000\001\000\000\000\128A\0000\000\000\000\000\000\128\000\000\000\128\000\016\000 \005D\004\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\159\210\160\213\166\169\1913\159`+`?\192\160\000\241\144>}\136\129\002\191\r\160\000C\007\000\015h\224X\n\003@\024\000\001\128\000\000Qp@\000\001@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\144\000\000\000\000\005\000\004\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\014\000\000p\n\000\028\\\016\000\000P\000\000\000\000\000\000\000\000\000\0000\000\000\000\000\000\000\000\000\000\000\000\000\000\000") end) (ET) (TI) end let use_file = - fun lexer lexbuf -> - (Obj.magic (MenhirInterpreter.entry `Legacy 3040 lexer lexbuf) : (Parsetree.toplevel_phrase list)) + fun lexer lexbuf : (Parsetree.toplevel_phrase list) -> + Obj.magic (MenhirInterpreter.entry `Legacy 3049 lexer lexbuf) and toplevel_phrase = - fun lexer lexbuf -> - (Obj.magic (MenhirInterpreter.entry `Legacy 3012 lexer lexbuf) : (Parsetree.toplevel_phrase)) + fun lexer lexbuf : (Parsetree.toplevel_phrase) -> + Obj.magic (MenhirInterpreter.entry `Legacy 3021 lexer lexbuf) and parse_val_longident = - fun lexer lexbuf -> - (Obj.magic (MenhirInterpreter.entry `Legacy 3006 lexer lexbuf) : (Longident.t)) + fun lexer lexbuf : (Longident.t) -> + Obj.magic (MenhirInterpreter.entry `Legacy 3015 lexer lexbuf) and parse_pattern = - fun lexer lexbuf -> - (Obj.magic (MenhirInterpreter.entry `Legacy 3002 lexer lexbuf) : (Parsetree.pattern)) + fun lexer lexbuf : (Parsetree.pattern) -> + Obj.magic (MenhirInterpreter.entry `Legacy 3011 lexer lexbuf) and parse_mty_longident = - fun lexer lexbuf -> - (Obj.magic (MenhirInterpreter.entry `Legacy 2998 lexer lexbuf) : (Longident.t)) + fun lexer lexbuf : (Longident.t) -> + Obj.magic (MenhirInterpreter.entry `Legacy 3007 lexer lexbuf) and parse_module_type = - fun lexer lexbuf -> - (Obj.magic (MenhirInterpreter.entry `Legacy 2994 lexer lexbuf) : (Parsetree.module_type)) + fun lexer lexbuf : (Parsetree.module_type) -> + Obj.magic (MenhirInterpreter.entry `Legacy 3003 lexer lexbuf) and parse_module_expr = - fun lexer lexbuf -> - (Obj.magic (MenhirInterpreter.entry `Legacy 2990 lexer lexbuf) : (Parsetree.module_expr)) + fun lexer lexbuf : (Parsetree.module_expr) -> + Obj.magic (MenhirInterpreter.entry `Legacy 2999 lexer lexbuf) and parse_mod_longident = - fun lexer lexbuf -> - (Obj.magic (MenhirInterpreter.entry `Legacy 2986 lexer lexbuf) : (Longident.t)) + fun lexer lexbuf : (Longident.t) -> + Obj.magic (MenhirInterpreter.entry `Legacy 2995 lexer lexbuf) and parse_mod_ext_longident = - fun lexer lexbuf -> - (Obj.magic (MenhirInterpreter.entry `Legacy 2982 lexer lexbuf) : (Longident.t)) + fun lexer lexbuf : (Longident.t) -> + Obj.magic (MenhirInterpreter.entry `Legacy 2991 lexer lexbuf) and parse_expression = - fun lexer lexbuf -> - (Obj.magic (MenhirInterpreter.entry `Legacy 2978 lexer lexbuf) : (Parsetree.expression)) + fun lexer lexbuf : (Parsetree.expression) -> + Obj.magic (MenhirInterpreter.entry `Legacy 2987 lexer lexbuf) and parse_core_type = - fun lexer lexbuf -> - (Obj.magic (MenhirInterpreter.entry `Legacy 2974 lexer lexbuf) : (Parsetree.core_type)) + fun lexer lexbuf : (Parsetree.core_type) -> + Obj.magic (MenhirInterpreter.entry `Legacy 2983 lexer lexbuf) and parse_constr_longident = - fun lexer lexbuf -> - (Obj.magic (MenhirInterpreter.entry `Legacy 2970 lexer lexbuf) : (Longident.t)) + fun lexer lexbuf : (Longident.t) -> + Obj.magic (MenhirInterpreter.entry `Legacy 2979 lexer lexbuf) and parse_any_longident = - fun lexer lexbuf -> - (Obj.magic (MenhirInterpreter.entry `Legacy 2952 lexer lexbuf) : (Longident.t)) + fun lexer lexbuf : (Longident.t) -> + Obj.magic (MenhirInterpreter.entry `Legacy 2961 lexer lexbuf) and interface = - fun lexer lexbuf -> - (Obj.magic (MenhirInterpreter.entry `Legacy 2948 lexer lexbuf) : (Parsetree.signature)) + fun lexer lexbuf : (Parsetree.signature) -> + Obj.magic (MenhirInterpreter.entry `Legacy 2957 lexer lexbuf) and implementation = - fun lexer lexbuf -> - (Obj.magic (MenhirInterpreter.entry `Legacy 0 lexer lexbuf) : (Parsetree.structure)) + fun lexer lexbuf : (Parsetree.structure) -> + Obj.magic (MenhirInterpreter.entry `Legacy 0 lexer lexbuf) module Incremental = struct let use_file = - fun initial_position -> - (Obj.magic (MenhirInterpreter.start 3040 initial_position) : (Parsetree.toplevel_phrase list) MenhirInterpreter.checkpoint) + fun initial_position : (Parsetree.toplevel_phrase list) MenhirInterpreter.checkpoint -> + Obj.magic (MenhirInterpreter.start 3049 initial_position) and toplevel_phrase = - fun initial_position -> - (Obj.magic (MenhirInterpreter.start 3012 initial_position) : (Parsetree.toplevel_phrase) MenhirInterpreter.checkpoint) + fun initial_position : (Parsetree.toplevel_phrase) MenhirInterpreter.checkpoint -> + Obj.magic (MenhirInterpreter.start 3021 initial_position) and parse_val_longident = - fun initial_position -> - (Obj.magic (MenhirInterpreter.start 3006 initial_position) : (Longident.t) MenhirInterpreter.checkpoint) + fun initial_position : (Longident.t) MenhirInterpreter.checkpoint -> + Obj.magic (MenhirInterpreter.start 3015 initial_position) and parse_pattern = - fun initial_position -> - (Obj.magic (MenhirInterpreter.start 3002 initial_position) : (Parsetree.pattern) MenhirInterpreter.checkpoint) + fun initial_position : (Parsetree.pattern) MenhirInterpreter.checkpoint -> + Obj.magic (MenhirInterpreter.start 3011 initial_position) and parse_mty_longident = - fun initial_position -> - (Obj.magic (MenhirInterpreter.start 2998 initial_position) : (Longident.t) MenhirInterpreter.checkpoint) + fun initial_position : (Longident.t) MenhirInterpreter.checkpoint -> + Obj.magic (MenhirInterpreter.start 3007 initial_position) and parse_module_type = - fun initial_position -> - (Obj.magic (MenhirInterpreter.start 2994 initial_position) : (Parsetree.module_type) MenhirInterpreter.checkpoint) + fun initial_position : (Parsetree.module_type) MenhirInterpreter.checkpoint -> + Obj.magic (MenhirInterpreter.start 3003 initial_position) and parse_module_expr = - fun initial_position -> - (Obj.magic (MenhirInterpreter.start 2990 initial_position) : (Parsetree.module_expr) MenhirInterpreter.checkpoint) + fun initial_position : (Parsetree.module_expr) MenhirInterpreter.checkpoint -> + Obj.magic (MenhirInterpreter.start 2999 initial_position) and parse_mod_longident = - fun initial_position -> - (Obj.magic (MenhirInterpreter.start 2986 initial_position) : (Longident.t) MenhirInterpreter.checkpoint) + fun initial_position : (Longident.t) MenhirInterpreter.checkpoint -> + Obj.magic (MenhirInterpreter.start 2995 initial_position) and parse_mod_ext_longident = - fun initial_position -> - (Obj.magic (MenhirInterpreter.start 2982 initial_position) : (Longident.t) MenhirInterpreter.checkpoint) + fun initial_position : (Longident.t) MenhirInterpreter.checkpoint -> + Obj.magic (MenhirInterpreter.start 2991 initial_position) and parse_expression = - fun initial_position -> - (Obj.magic (MenhirInterpreter.start 2978 initial_position) : (Parsetree.expression) MenhirInterpreter.checkpoint) + fun initial_position : (Parsetree.expression) MenhirInterpreter.checkpoint -> + Obj.magic (MenhirInterpreter.start 2987 initial_position) and parse_core_type = - fun initial_position -> - (Obj.magic (MenhirInterpreter.start 2974 initial_position) : (Parsetree.core_type) MenhirInterpreter.checkpoint) + fun initial_position : (Parsetree.core_type) MenhirInterpreter.checkpoint -> + Obj.magic (MenhirInterpreter.start 2983 initial_position) and parse_constr_longident = - fun initial_position -> - (Obj.magic (MenhirInterpreter.start 2970 initial_position) : (Longident.t) MenhirInterpreter.checkpoint) + fun initial_position : (Longident.t) MenhirInterpreter.checkpoint -> + Obj.magic (MenhirInterpreter.start 2979 initial_position) and parse_any_longident = - fun initial_position -> - (Obj.magic (MenhirInterpreter.start 2952 initial_position) : (Longident.t) MenhirInterpreter.checkpoint) + fun initial_position : (Longident.t) MenhirInterpreter.checkpoint -> + Obj.magic (MenhirInterpreter.start 2961 initial_position) and interface = - fun initial_position -> - (Obj.magic (MenhirInterpreter.start 2948 initial_position) : (Parsetree.signature) MenhirInterpreter.checkpoint) + fun initial_position : (Parsetree.signature) MenhirInterpreter.checkpoint -> + Obj.magic (MenhirInterpreter.start 2957 initial_position) and implementation = - fun initial_position -> - (Obj.magic (MenhirInterpreter.start 0 initial_position) : (Parsetree.structure) MenhirInterpreter.checkpoint) + fun initial_position : (Parsetree.structure) MenhirInterpreter.checkpoint -> + Obj.magic (MenhirInterpreter.start 0 initial_position) end -# 5438 "src/ocaml/preprocess/parser_raw.mly" - - -# 103792 "src/ocaml/preprocess/parser_raw.ml" - -# 269 "" +# 5449 "src/ocaml/preprocess/parser_raw.mly" -# 103797 "src/ocaml/preprocess/parser_raw.ml" +# 106010 "src/ocaml/preprocess/parser_raw.ml" diff --git a/src/ocaml/preprocess/parser_raw.mli b/src/ocaml/preprocess/parser_raw.mli index dbb728936..7f30a0b73 100644 --- a/src/ocaml/preprocess/parser_raw.mli +++ b/src/ocaml/preprocess/parser_raw.mli @@ -575,6 +575,7 @@ module MenhirInterpreter : sig | N_fun_param_as_list : (Parsetree.function_param list) nonterminal | N_fun_expr : (Parsetree.expression) nonterminal | N_fun_body : (Parsetree.function_body) nonterminal + | N_fun_ : (Parsetree.expression) nonterminal | N_formal_class_parameters : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) nonterminal | N_floating_attribute : (Parsetree.attribute) nonterminal | N_extension_type : (Parsetree.core_type) nonterminal diff --git a/src/ocaml/preprocess/parser_recover.ml b/src/ocaml/preprocess/parser_recover.ml index 5df32e977..78cc2309a 100644 --- a/src/ocaml/preprocess/parser_recover.ml +++ b/src/ocaml/preprocess/parser_recover.ml @@ -21,7 +21,7 @@ module Default = struct psg_modalities = []; psg_items = []; psg_loc = !default_loc; - } + } in Mty.signature ~loc:!default_loc desc @@ -388,6 +388,7 @@ module Default = struct | MenhirInterpreter.N MenhirInterpreter.N_fun_param_as_list -> raise Not_found | MenhirInterpreter.N MenhirInterpreter.N_fun_expr -> default_expr () | MenhirInterpreter.N MenhirInterpreter.N_fun_body -> raise Not_found + | MenhirInterpreter.N MenhirInterpreter.N_fun_ -> raise Not_found | MenhirInterpreter.N MenhirInterpreter.N_formal_class_parameters -> raise Not_found | MenhirInterpreter.N MenhirInterpreter.N_floating_attribute -> raise Not_found | MenhirInterpreter.N MenhirInterpreter.N_extension_type -> raise Not_found @@ -451,7 +452,7 @@ type decision = | Select of (int -> action list) let depth = - [|0;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;2;3;2;2;1;2;1;2;3;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;2;1;2;3;4;5;2;3;4;5;2;3;4;5;1;1;1;1;1;1;1;1;2;3;1;4;5;1;1;1;2;2;2;1;1;1;1;1;1;2;1;2;3;1;1;2;3;1;1;1;1;2;1;2;3;4;1;2;1;3;1;5;2;1;2;2;3;2;3;4;1;1;2;1;1;2;2;3;4;1;1;2;3;1;1;2;4;1;2;1;1;1;2;2;1;2;3;4;5;2;1;2;3;2;3;1;2;2;3;4;5;6;1;2;3;2;3;1;1;2;3;2;3;4;5;6;1;2;7;1;1;1;1;1;2;1;1;2;3;1;2;1;1;1;1;2;3;1;2;3;1;1;1;2;1;2;2;1;1;2;3;1;1;1;1;2;3;4;2;3;1;2;3;1;2;1;1;1;1;1;1;2;1;1;2;3;1;1;2;2;4;3;4;5;4;1;2;1;2;3;4;5;4;4;1;2;3;3;1;1;2;3;4;5;3;4;5;6;1;2;3;2;3;2;3;4;5;6;7;4;1;1;1;1;1;5;6;7;8;9;8;8;9;3;4;5;4;4;5;6;4;5;6;5;5;6;7;1;2;1;2;3;2;3;2;2;3;2;3;4;5;3;1;10;7;8;9;10;9;9;10;11;2;1;2;3;4;3;4;5;6;7;4;5;6;7;8;2;3;2;3;4;5;3;4;5;6;3;2;3;3;3;4;5;6;7;8;9;8;8;9;10;7;8;9;10;9;9;10;11;2;3;4;5;4;4;5;6;3;4;5;6;5;5;6;7;2;3;4;5;6;7;8;9;10;9;9;10;11;8;9;10;11;10;10;11;12;3;4;5;6;5;5;6;7;4;5;6;7;6;6;7;8;4;5;6;3;3;4;5;2;2;3;4;5;6;7;2;3;4;5;2;1;2;1;1;3;4;2;3;1;2;1;3;4;2;3;5;1;2;1;2;3;2;3;4;5;3;4;3;4;4;5;6;2;1;2;1;2;3;4;4;5;6;7;8;9;10;11;8;1;1;1;1;2;3;1;1;1;2;3;4;5;6;7;8;9;10;11;12;13;9;1;2;2;2;2;1;2;2;2;2;1;1;2;3;4;1;1;5;6;6;1;2;3;4;1;1;2;1;2;3;4;5;6;7;8;9;1;2;1;1;1;1;1;2;3;1;1;2;3;1;1;2;3;3;1;1;4;1;1;1;2;3;1;1;1;1;1;2;1;1;2;3;4;5;6;7;8;9;10;11;12;13;9;1;1;1;2;1;1;2;3;1;1;2;2;1;1;2;3;1;1;1;2;1;2;1;1;1;1;1;2;3;1;2;1;1;1;1;1;1;1;1;2;3;4;5;6;7;8;9;5;4;5;1;1;2;1;1;3;1;1;1;2;3;4;1;2;3;1;1;1;4;2;1;2;1;2;3;4;5;6;7;8;4;3;4;1;1;1;3;3;2;3;1;2;3;4;5;6;1;2;3;2;3;2;3;4;5;6;7;8;4;3;4;3;3;3;4;5;2;3;2;3;2;4;5;4;5;3;4;2;3;1;2;3;3;4;4;2;3;1;4;2;3;4;5;1;6;5;2;2;3;2;2;3;8;9;8;1;8;2;3;2;1;1;2;3;4;5;6;7;8;4;3;4;3;3;2;3;4;5;6;7;8;9;5;4;5;4;4;1;2;3;4;5;6;7;8;9;5;4;5;4;4;1;1;2;1;2;3;4;5;1;2;6;3;4;2;3;4;5;3;4;2;1;2;3;4;1;1;2;3;4;5;1;2;3;1;1;1;1;1;1;1;1;1;2;3;1;1;1;1;1;2;3;1;2;3;1;2;3;1;1;2;1;2;3;1;1;2;1;1;2;3;3;4;5;6;4;4;2;2;3;2;3;1;2;3;4;5;6;3;4;2;3;4;5;6;3;4;5;1;2;1;2;1;2;3;4;5;3;4;5;6;1;3;4;1;1;2;2;3;4;5;6;7;2;1;2;3;4;5;3;3;4;3;4;2;3;1;2;3;4;5;6;7;8;3;4;5;5;6;7;8;9;3;4;5;3;4;2;1;1;1;2;4;1;2;3;5;6;1;2;3;4;5;6;7;8;9;10;7;6;1;1;1;1;1;2;1;1;2;3;4;1;1;4;5;6;1;2;1;2;2;3;1;2;3;1;2;1;2;3;4;1;5;2;1;2;3;1;2;4;5;4;5;6;2;3;4;5;1;1;2;3;4;5;2;2;3;4;2;3;4;1;2;3;3;1;1;1;5;4;5;2;3;4;2;3;4;1;3;2;3;3;6;1;4;5;2;3;4;5;5;6;3;4;1;5;2;3;2;3;3;4;5;5;6;2;2;3;4;1;1;7;8;9;10;1;1;1;1;2;3;4;1;2;3;4;5;1;1;2;3;4;2;3;2;3;2;3;1;2;3;4;5;1;2;3;4;5;1;1;1;2;3;4;5;2;1;2;1;2;2;3;2;3;2;3;4;5;1;2;3;4;5;6;7;4;3;4;1;1;1;1;3;4;5;6;2;3;1;2;1;2;3;1;1;2;3;4;5;6;3;2;3;4;5;6;3;2;1;2;1;2;3;4;5;2;2;3;4;5;3;2;3;4;5;6;3;2;3;4;5;6;3;2;3;4;5;6;3;2;3;4;5;6;3;2;3;4;5;6;3;2;3;4;5;6;3;2;3;4;5;6;3;2;3;4;5;6;3;2;3;4;5;6;3;2;3;4;5;6;3;2;3;4;5;6;3;2;3;4;5;6;3;2;3;4;5;6;3;2;3;4;5;6;3;2;3;4;5;6;3;2;3;4;5;6;3;2;3;4;5;6;3;2;3;4;5;6;3;2;3;4;5;6;3;2;3;4;5;6;3;2;3;4;5;6;3;2;3;4;5;6;7;4;3;4;3;4;5;6;3;2;3;4;5;6;3;1;2;1;2;3;4;1;2;5;1;1;2;2;3;1;4;1;1;1;2;3;4;5;6;7;8;7;8;9;3;4;5;6;7;6;7;8;2;3;4;3;4;5;2;2;3;4;1;2;3;4;5;4;5;6;2;3;4;1;2;3;2;3;4;5;6;7;8;4;3;4;3;3;2;3;2;3;1;2;3;4;5;6;7;8;7;8;9;3;4;5;4;5;6;3;3;4;5;1;3;1;2;4;2;3;3;4;5;3;4;5;3;4;5;6;7;1;2;3;5;6;7;5;6;7;3;1;2;2;3;4;5;6;7;8;9;10;7;3;4;5;6;7;8;9;10;7;3;4;5;6;7;8;9;10;7;2;3;4;5;6;7;8;9;10;7;3;4;5;6;7;8;9;10;7;3;4;5;6;7;8;9;10;7;3;4;5;6;7;8;9;10;11;12;9;5;6;7;8;9;10;11;12;9;5;6;7;8;9;10;11;12;9;3;4;5;6;7;8;5;1;2;2;1;2;6;4;5;3;4;5;3;4;5;2;6;1;1;7;8;9;10;11;5;1;2;3;2;3;4;2;3;1;1;4;5;3;4;5;6;7;1;2;3;4;5;2;1;2;2;1;2;3;4;5;6;7;8;5;2;3;4;5;6;7;8;5;2;3;4;5;6;7;8;5;2;1;2;3;4;5;2;1;2;3;4;5;6;7;8;9;10;7;2;3;4;5;6;7;4;3;3;1;8;9;2;1;4;4;5;4;5;6;3;4;5;6;7;8;9;4;4;5;4;5;6;3;4;4;5;6;7;8;9;4;5;4;5;6;3;4;5;3;1;2;3;1;1;2;3;4;5;1;4;5;1;2;3;3;7;6;7;8;9;6;7;1;3;4;5;2;3;3;2;4;4;5;6;7;8;9;10;11;12;13;14;11;6;7;8;9;10;11;8;4;4;5;2;3;4;5;6;7;8;5;4;5;4;5;6;7;4;2;3;4;5;6;2;3;2;2;3;4;1;2;3;4;2;3;1;2;3;2;3;4;5;2;2;3;4;2;2;3;2;3;4;5;6;7;2;3;2;3;4;2;3;4;5;6;7;2;2;3;2;3;4;4;5;6;7;8;8;9;10;8;9;10;10;11;12;4;5;5;6;7;5;6;7;7;8;9;6;7;8;3;4;5;6;7;2;3;4;1;2;3;4;5;1;2;1;2;3;4;3;4;5;6;7;8;1;2;1;2;3;1;2;3;4;1;1;2;3;1;5;1;1;1;1;1;2;3;1;2;3;4;5;6;7;8;1;2;3;1;2;1;1;2;3;1;2;3;4;5;3;4;2;1;2;1;1;2;3;4;5;6;5;6;7;8;6;7;8;9;6;2;3;4;5;6;4;2;3;4;2;6;7;8;9;1;2;3;1;4;5;6;2;5;6;3;4;5;2;2;3;4;5;6;3;2;2;3;4;5;6;7;2;2;3;2;3;4;2;2;3;4;5;6;6;7;8;2;3;3;4;4;5;4;5;6;2;4;5;6;7;8;9;6;1;2;3;4;5;6;2;3;4;5;1;2;3;4;5;1;2;6;7;2;3;4;5;6;7;1;2;3;4;5;6;8;4;5;6;1;2;1;2;3;4;1;2;1;2;3;4;1;2;1;2;3;4;5;1;2;3;6;7;8;1;2;9;10;1;1;2;3;4;5;1;1;2;3;6;7;8;5;6;7;1;2;2;1;2;3;4;1;5;1;1;2;3;2;3;6;7;8;1;2;1;2;3;3;1;2;1;2;1;2;3;4;5;6;7;1;2;1;2;1;2;3;4;5;6;7;1;2;1;2;3;4;5;6;1;2;3;4;2;3;1;1;1;7;2;3;4;5;6;3;4;1;2;1;2;3;3;4;4;5;1;2;1;1;2;9;10;1;2;3;4;5;6;7;8;9;11;2;3;4;5;6;1;1;1;2;3;1;1;2;1;3;4;5;6;5;6;7;2;3;1;1;2;1;2;2;3;4;5;2;3;4;5;4;5;6;1;1;2;1;3;4;5;6;7;8;9;10;11;6;7;8;5;2;3;1;1;2;1;2;2;3;4;5;2;3;4;5;6;7;8;9;10;5;6;7;4;1;2;3;4;1;2;3;1;1;2;3;4;5;6;7;2;3;4;5;6;1;2;3;4;1;2;1;2;1;2;1;1;2;1;3;2;2;3;2;3;7;3;4;5;6;2;3;4;5;2;3;3;1;2;3;4;1;1;1;2;1;2;3;1;2;3;1;4;1;3;5;4;5;4;1;2;5;6;2;3;4;5;1;2;3;4;4;5;1;2;1;1;2;2;1;2;3;4;1;2;7;8;1;2;3;4;5;6;7;8;9;1;1;1;1;1;1;1;1;2;1;1;1;2;1;2;3;4;5;1;1;2;3;4;5;6;7;8;9;1;2;1;1;1;1;2;3;1;1;1;3;4;3;4;2;3;4;2;3;4;10;6;7;8;1;2;3;4;5;3;4;9;10;2;2;1;1;1;1;1;2;3;4;2;3;4;5;6;7;8;9;5;6;7;8;9;3;4;5;7;8;8;9;8;8;2;3;4;5;6;7;8;9;5;4;5;4;4;2;3;3;4;5;4;5;6;2;7;8;7;8;9;10;7;2;3;4;5;6;7;8;5;4;5;4;5;6;7;4;4;5;6;2;3;4;1;2;3;4;5;6;1;7;1;2;3;2;2;3;2;3;4;5;6;7;8;7;7;8;9;6;7;8;9;8;8;9;10;1;2;3;4;2;3;4;2;1;2;1;1;2;1;1;2;2;1;1;2;3;1;2;3;1;2;1;2;3;4;5;6;4;5;6;4;4;3;4;5;3;4;5;3;3;1;8;9;10;11;6;7;8;9;10;2;1;1;4;5;6;7;8;9;10;5;6;7;8;9;1;1;2;3;4;5;6;2;3;4;5;1;2;3;4;5;6;7;8;2;3;4;5;6;7;4;5;6;7;8;9;1;2;3;4;5;6;7;8;10;1;2;1;2;3;4;4;5;6;1;2;7;8;1;2;3;5;6;1;1;2;3;2;1;2;1;1;2;3;4;1;2;3;4;5;6;7;8;9;1;2;3;4;5;6;7;8;9;10;1;1;1;1;1;1;1;1;2;1;1;2;1;2;3;4;5;6;1;2;1;1;2;3;4;5;6;7;8;9;10;2;1;1;2;2;5;6;4;5;6;7;8;9;10;9;9;10;11;8;9;10;11;10;10;11;12;3;4;5;6;5;5;6;7;4;5;6;7;6;6;7;8;3;4;5;6;7;8;9;10;11;10;10;11;12;9;10;11;12;11;11;12;13;4;5;6;7;6;6;7;8;5;6;7;8;7;7;8;9;4;5;6;7;8;9;8;8;9;10;7;8;9;10;9;9;10;11;3;4;5;6;7;8;7;7;8;9;6;7;8;9;8;8;9;10;3;6;2;2;3;1;4;5;4;5;6;7;5;6;7;8;5;2;3;6;7;8;3;4;3;4;5;6;7;1;2;1;0;1;2;1;0;1;2;3;1;1;1;2;3;4;5;3;3;1;1;1;1;2;0;1;1;2;0;1;1;2;0;1;2;1;0;1;1;2;0;1;1;2;0;1;1;2;0;1;1;2;0;1;1;2;0;1;2;1;0;1;2;1;1;2;0;1;2;3;3;3;3;3;3;1;2;3;3;3;3;3;3;1;1;1;2;1;2;1;2;3;1;2;0;1;1;1;2;2;2;3;4;2;1;1;2;3;4;1;2;|] + [|0;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;2;3;2;2;1;2;1;2;3;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;2;1;2;3;4;5;2;3;4;5;2;3;4;5;1;1;1;1;1;1;1;1;2;3;1;4;5;1;1;1;2;2;2;1;1;1;1;1;1;2;1;2;3;1;1;2;3;1;1;1;1;2;1;2;3;4;1;2;1;3;1;5;2;1;2;2;3;2;3;4;1;1;2;1;1;2;2;3;4;1;1;2;3;1;1;2;4;1;2;1;1;1;2;2;1;2;3;4;5;2;1;2;3;2;3;1;2;2;3;4;5;6;1;2;3;2;3;1;1;2;3;2;3;4;5;6;1;2;7;1;1;1;1;1;2;1;1;2;3;1;2;1;1;1;1;2;3;1;2;3;1;1;1;2;1;2;2;1;1;2;3;1;1;1;1;2;3;4;2;3;1;2;3;1;2;1;1;1;1;1;1;2;1;1;2;3;1;1;2;2;4;3;4;5;4;1;2;1;2;3;4;5;4;4;1;2;3;3;1;1;2;3;4;5;3;4;5;6;1;2;3;2;3;2;3;4;5;6;7;4;1;1;1;1;1;5;6;7;8;9;8;8;9;3;4;5;4;4;5;6;4;5;6;5;5;6;7;1;2;1;2;3;2;3;2;2;3;2;3;4;5;3;1;10;7;8;9;10;9;9;10;11;2;1;2;3;4;3;4;5;6;7;4;5;6;7;8;2;3;2;3;4;5;3;4;5;6;3;2;3;3;3;4;5;6;7;8;9;8;8;9;10;7;8;9;10;9;9;10;11;2;3;4;5;4;4;5;6;3;4;5;6;5;5;6;7;2;3;4;5;6;7;8;9;10;9;9;10;11;8;9;10;11;10;10;11;12;3;4;5;6;5;5;6;7;4;5;6;7;6;6;7;8;4;5;6;3;3;4;5;2;2;3;4;5;6;7;2;3;4;5;2;1;2;1;1;3;4;2;3;1;2;1;3;4;2;3;5;1;2;1;2;3;2;3;4;5;3;4;3;4;4;5;6;2;1;2;1;2;3;4;4;5;6;7;8;9;10;11;8;1;1;1;1;2;3;1;1;1;2;3;4;5;6;7;8;9;10;11;12;13;9;1;2;2;2;2;1;2;2;2;2;1;1;2;3;4;1;1;5;6;6;1;2;3;4;1;1;2;1;2;3;4;5;6;7;8;9;1;2;1;1;1;1;1;2;3;1;1;2;3;1;1;2;3;3;1;1;4;1;1;1;2;3;1;1;1;1;1;2;1;1;2;3;4;5;6;7;8;9;10;11;12;13;9;1;1;1;2;1;1;2;3;1;1;2;2;1;1;2;3;1;1;1;2;1;2;1;1;1;1;1;2;3;1;2;1;1;1;1;1;1;1;1;2;3;4;5;6;7;8;9;5;4;5;1;1;2;1;1;3;1;1;1;2;3;4;1;2;3;1;1;1;4;2;1;2;1;2;3;4;5;6;7;8;4;3;4;1;1;1;3;3;2;3;1;2;3;4;5;6;1;2;3;2;3;2;3;4;5;6;7;8;4;3;4;3;3;3;4;5;2;3;2;3;2;4;5;4;5;3;4;2;3;1;2;3;3;4;4;2;3;1;4;2;3;4;5;1;6;5;2;2;3;2;2;3;8;9;8;1;8;2;3;2;1;1;2;3;4;5;6;7;8;4;3;4;3;3;2;3;4;5;6;7;8;9;5;4;5;4;4;1;2;3;4;5;6;7;8;9;5;4;5;4;4;1;1;2;1;2;3;4;5;1;2;6;3;4;2;3;4;5;3;4;2;1;2;3;4;1;1;2;3;4;5;1;2;3;1;1;1;1;1;1;1;1;1;2;3;1;1;1;1;1;2;3;1;2;3;1;2;3;1;1;2;1;2;3;1;1;2;1;1;2;3;3;4;5;6;4;4;2;2;3;2;3;1;2;3;4;5;6;3;4;2;3;4;5;6;3;4;5;1;2;1;2;1;2;3;4;5;3;4;5;6;1;3;4;1;1;2;2;3;4;5;6;7;2;1;2;3;4;5;3;3;4;3;4;2;3;1;2;3;4;5;6;7;8;3;4;5;5;6;7;8;9;3;4;5;3;4;2;1;1;1;2;4;1;2;3;5;6;1;2;3;4;5;6;7;8;9;10;7;6;1;1;1;1;1;2;1;1;2;3;4;1;1;4;5;6;1;2;1;2;2;3;1;2;3;1;2;1;2;3;4;1;5;2;1;2;3;1;2;4;5;4;5;6;2;3;4;5;1;1;2;3;4;5;2;2;3;4;2;3;4;1;2;3;3;1;1;1;5;4;5;2;3;4;2;3;4;1;3;2;3;3;6;1;4;5;2;3;4;5;5;6;3;4;1;5;2;3;2;3;3;4;5;5;6;2;2;3;4;1;1;7;8;9;10;1;1;1;1;2;3;4;1;2;3;4;5;1;1;2;3;4;2;3;2;3;2;3;1;2;3;4;5;1;2;3;4;5;1;1;1;2;3;4;5;2;1;2;1;2;2;3;2;3;2;3;4;5;1;2;3;4;5;6;7;4;3;4;1;1;1;1;3;4;5;6;2;3;1;2;1;2;3;1;1;2;3;4;5;6;3;2;3;4;5;6;3;2;1;1;2;1;2;3;4;5;2;2;3;4;5;3;2;3;4;5;6;3;2;3;4;5;6;3;2;3;4;5;6;3;2;3;4;5;6;3;2;3;4;5;6;3;2;3;4;5;6;3;2;3;4;5;6;3;2;3;4;5;6;3;2;3;4;5;6;3;2;3;4;5;6;3;2;3;4;5;6;3;2;3;4;5;6;3;2;3;4;5;6;3;2;3;4;5;6;3;2;3;4;5;6;3;2;3;4;5;6;3;2;3;4;5;6;3;2;3;4;5;6;3;2;3;4;5;6;3;2;3;4;5;6;3;2;3;4;5;6;3;2;3;4;5;6;7;4;3;4;3;4;5;6;3;2;3;4;5;6;3;1;2;1;2;3;4;1;2;5;1;1;2;2;3;1;4;1;1;1;2;3;4;5;6;7;8;7;8;9;3;4;5;6;7;6;7;8;2;3;4;3;4;5;2;2;3;4;1;2;3;4;5;4;5;6;2;3;4;1;2;3;2;3;4;5;6;7;8;4;3;4;3;3;2;3;2;3;1;2;3;4;5;6;7;8;7;8;9;3;4;5;4;5;6;3;3;4;5;1;3;1;2;4;2;3;3;4;5;3;4;5;3;4;5;6;7;1;2;3;5;6;7;5;6;7;3;1;2;2;3;4;5;6;7;8;9;10;7;3;4;5;6;7;8;9;10;7;3;4;5;6;7;8;9;10;7;2;3;4;5;6;7;8;9;10;7;3;4;5;6;7;8;9;10;7;3;4;5;6;7;8;9;10;7;3;4;5;6;7;8;9;10;11;12;9;5;6;7;8;9;10;11;12;9;5;6;7;8;9;10;11;12;9;3;4;5;6;7;8;5;1;2;2;1;2;6;4;5;3;4;5;3;4;5;2;6;1;1;7;8;9;10;11;5;1;2;3;2;3;4;2;3;1;1;4;5;3;4;5;6;7;1;2;3;4;5;2;1;2;2;1;2;3;4;5;6;7;8;5;2;3;4;5;6;7;8;5;2;3;4;5;6;7;8;5;2;1;2;3;4;5;2;1;2;3;4;5;6;7;8;9;10;7;2;3;4;5;6;7;4;3;3;1;8;9;2;1;4;4;5;4;5;6;3;4;5;6;7;8;9;4;4;5;4;5;6;3;4;4;5;6;7;8;9;4;5;4;5;6;3;4;5;3;1;2;3;1;1;2;3;4;5;1;4;5;1;2;3;3;7;6;7;8;9;6;7;1;3;4;5;2;3;3;2;4;4;5;6;7;8;9;10;11;12;13;14;11;6;7;8;9;10;11;8;4;4;5;2;3;4;5;6;7;8;5;4;5;4;5;6;7;4;2;3;4;5;6;2;3;2;2;3;4;1;2;3;4;2;3;1;2;3;2;3;4;5;2;2;3;4;2;2;3;2;3;4;5;6;7;2;3;2;3;4;2;3;4;5;6;7;2;2;3;2;3;4;4;5;6;7;8;8;9;10;8;9;10;10;11;12;4;5;5;6;7;5;6;7;7;8;9;6;7;8;3;4;5;6;7;2;3;4;1;2;3;4;5;1;2;1;2;3;4;3;4;5;6;7;8;1;2;1;2;3;1;2;3;4;1;1;2;3;1;5;1;1;1;1;1;2;3;1;2;3;4;5;6;7;8;1;2;3;1;2;1;1;2;3;1;2;3;4;5;3;4;2;1;2;1;1;2;3;4;5;6;5;6;7;8;6;7;8;9;6;2;3;4;5;6;4;2;3;4;2;6;7;8;9;1;2;3;1;4;5;6;2;5;6;3;4;5;2;2;3;4;5;6;3;2;2;3;4;5;6;7;2;2;3;2;3;4;2;2;3;4;5;6;6;7;8;2;3;3;4;4;5;4;5;6;2;4;5;6;7;8;9;6;1;2;3;4;5;6;2;3;4;5;1;2;3;4;5;1;2;6;7;2;3;4;5;6;7;1;2;3;4;5;6;8;4;5;6;1;2;1;2;3;4;1;2;1;2;3;4;1;2;1;2;3;4;5;1;2;3;6;7;8;1;2;9;10;1;1;2;3;4;5;1;1;2;3;6;7;8;5;6;7;1;2;2;1;2;3;4;1;5;1;1;2;3;2;3;6;7;8;1;2;1;2;3;3;1;2;1;2;1;2;3;4;5;6;7;1;2;1;2;1;2;3;4;5;6;7;1;2;1;2;3;4;5;6;1;2;3;4;2;3;1;1;1;7;2;3;4;5;6;3;4;1;2;1;2;3;3;4;4;5;1;2;1;1;2;9;10;1;2;3;4;5;6;7;8;9;11;2;3;4;5;6;1;1;1;2;3;1;1;2;1;3;4;5;6;5;6;7;2;3;1;1;2;1;2;2;3;4;5;2;3;4;5;4;5;6;1;1;2;1;3;4;5;6;7;8;9;10;11;6;7;8;5;2;3;1;1;2;1;2;2;3;4;5;2;3;4;5;6;7;8;9;10;5;6;7;4;1;2;3;4;1;2;3;1;1;2;3;4;5;6;7;2;3;4;5;6;1;2;3;4;1;2;1;2;1;2;1;1;2;1;3;2;2;3;2;3;7;3;4;5;6;2;3;4;5;2;3;3;1;2;3;4;1;1;1;2;1;2;3;1;2;3;1;4;1;3;5;4;5;4;1;2;5;6;2;3;4;5;1;2;3;4;4;5;1;2;1;1;2;2;1;2;3;4;1;2;7;8;1;2;3;4;5;6;7;8;9;1;1;1;1;1;1;1;1;2;1;1;1;2;1;2;3;4;5;1;1;2;3;4;5;6;7;8;9;1;2;1;1;1;1;2;3;1;1;1;3;4;3;4;2;3;4;2;3;4;10;6;7;8;1;2;3;4;5;3;4;9;10;2;2;1;1;1;1;1;2;3;4;2;3;4;5;6;7;8;9;5;6;7;8;9;3;4;5;7;8;8;9;8;8;2;3;4;5;6;7;8;9;5;4;5;4;4;2;3;3;4;5;4;5;6;2;3;4;5;2;2;2;3;7;8;7;8;9;10;7;2;3;4;5;6;7;8;5;4;5;4;5;6;7;4;4;5;6;2;3;4;1;2;3;4;5;6;1;7;1;2;3;2;2;3;2;3;4;5;6;7;8;7;7;8;9;6;7;8;9;8;8;9;10;1;2;3;4;2;3;4;2;1;2;1;1;2;1;1;2;2;1;1;2;3;1;2;3;1;2;1;2;3;4;5;6;4;5;6;4;4;3;4;5;3;4;5;3;3;1;8;9;10;11;6;7;8;9;10;2;1;1;4;5;6;7;8;9;10;5;6;7;8;9;1;1;2;3;4;5;6;2;3;4;5;1;2;3;4;5;6;7;8;2;3;4;5;6;7;4;5;6;7;8;9;1;2;3;4;5;6;7;8;10;1;2;1;2;3;4;4;5;6;1;2;7;8;1;2;3;5;6;1;1;2;3;2;1;2;1;1;2;3;4;1;2;3;4;5;6;7;8;9;1;2;3;4;5;6;7;8;9;10;1;1;1;1;1;1;1;1;2;1;1;2;1;2;3;4;5;6;1;2;1;1;2;3;4;5;6;7;8;9;10;2;1;1;2;2;5;6;4;5;6;7;8;9;10;9;9;10;11;8;9;10;11;10;10;11;12;3;4;5;6;5;5;6;7;4;5;6;7;6;6;7;8;3;4;5;6;7;8;9;10;11;10;10;11;12;9;10;11;12;11;11;12;13;4;5;6;7;6;6;7;8;5;6;7;8;7;7;8;9;4;5;6;7;8;9;8;8;9;10;7;8;9;10;9;9;10;11;3;4;5;6;7;8;7;7;8;9;6;7;8;9;8;8;9;10;3;4;6;2;2;3;1;4;5;4;5;6;7;5;6;7;8;5;2;3;6;7;8;3;4;3;4;5;6;7;1;2;1;0;1;2;1;0;1;2;3;1;1;1;2;3;4;5;3;3;1;1;1;1;2;0;1;1;2;0;1;1;2;0;1;2;1;0;1;1;2;0;1;1;2;0;1;1;2;0;1;1;2;0;1;1;2;0;1;2;1;0;1;2;1;1;2;0;1;2;3;3;3;3;3;3;1;2;3;3;3;3;3;3;1;1;1;2;1;2;1;2;3;1;2;0;1;1;1;2;2;2;3;4;2;1;1;2;3;4;1;2;|] let can_pop (type a) : a terminal -> bool = function | T_WITH -> true @@ -578,86 +579,86 @@ let can_pop (type a) : a terminal -> bool = function | _ -> false let recover = - let r0 = [R 274] in + let r0 = [R 278] in let r1 = S (N N_fun_expr) :: r0 in - let r2 = [R 886] in + let r2 = [R 890] in let r3 = Sub (r1) :: r2 in - let r4 = [R 179] in + let r4 = [R 180] in let r5 = S (T T_DONE) :: r4 in let r6 = Sub (r3) :: r5 in let r7 = S (T T_DO) :: r6 in let r8 = Sub (r3) :: r7 in - let r9 = R 450 :: r8 in - let r10 = [R 1017] in + let r9 = R 454 :: r8 in + let r10 = [R 1021] in let r11 = S (T T_AND) :: r10 in let r12 = [R 42] in let r13 = Sub (r11) :: r12 in let r14 = [R 153] in let r15 = [R 43] in - let r16 = [R 738] in + let r16 = [R 742] in let r17 = S (N N_structure) :: r16 in let r18 = [R 44] in let r19 = Sub (r17) :: r18 in let r20 = [R 45] in let r21 = S (T T_RBRACKET) :: r20 in let r22 = Sub (r19) :: r21 in - let r23 = [R 1284] in + let r23 = [R 1288] in let r24 = S (T T_LIDENT) :: r23 in let r25 = [R 39] in let r26 = S (T T_UNDERSCORE) :: r25 in - let r27 = [R 1253] in + let r27 = [R 1257] in let r28 = Sub (r26) :: r27 in - let r29 = [R 278] in + let r29 = [R 282] in let r30 = Sub (r28) :: r29 in let r31 = [R 17] in let r32 = Sub (r30) :: r31 in let r33 = [R 134] in let r34 = Sub (r32) :: r33 in - let r35 = [R 743] in + let r35 = [R 747] in let r36 = Sub (r34) :: r35 in - let r37 = [R 1296] in - let r38 = R 456 :: r37 in - let r39 = R 684 :: r38 in + let r37 = [R 1300] in + let r38 = R 460 :: r37 in + let r39 = R 688 :: r38 in let r40 = Sub (r36) :: r39 in let r41 = S (T T_COLON) :: r40 in let r42 = Sub (r24) :: r41 in - let r43 = R 450 :: r42 in - let r44 = [R 653] in + let r43 = R 454 :: r42 in + let r44 = [R 657] in let r45 = S (T T_AMPERAMPER) :: r44 in - let r46 = [R 1283] in + let r46 = [R 1287] in let r47 = S (T T_RPAREN) :: r46 in let r48 = Sub (r45) :: r47 in - let r49 = [R 624] in + let r49 = [R 628] in let r50 = S (T T_RPAREN) :: r49 in - let r51 = R 301 :: r50 in - let r52 = [R 302] in - let r53 = [R 626] in + let r51 = R 305 :: r50 in + let r52 = [R 306] in + let r53 = [R 630] in let r54 = S (T T_RBRACKET) :: r53 in - let r55 = [R 628] in + let r55 = [R 632] in let r56 = S (T T_RBRACE) :: r55 in - let r57 = [R 499] in + let r57 = [R 503] in let r58 = [R 155] in - let r59 = [R 297] in + let r59 = [R 301] in let r60 = S (T T_LIDENT) :: r59 in - let r61 = [R 828] in + let r61 = [R 832] in let r62 = Sub (r60) :: r61 in let r63 = [R 38] in let r64 = Sub (r60) :: r63 in - let r65 = [R 691] in + let r65 = [R 695] in let r66 = S (T T_COLON) :: r65 in let r67 = S (T T_QUOTE) :: r62 in - let r68 = [R 1159] in + let r68 = [R 1163] in let r69 = Sub (r28) :: r68 in let r70 = S (T T_MINUSGREATER) :: r69 in let r71 = S (T T_RPAREN) :: r70 in let r72 = Sub (r34) :: r71 in let r73 = S (T T_DOT) :: r72 in let r74 = Sub (r67) :: r73 in - let r75 = [R 312] in + let r75 = [R 316] in let r76 = S (T T_UNDERSCORE) :: r75 in - let r77 = [R 306] in + let r77 = [R 310] in let r78 = Sub (r76) :: r77 in - let r79 = [R 829] in + let r79 = [R 833] in let r80 = S (T T_RPAREN) :: r79 in let r81 = Sub (r78) :: r80 in let r82 = S (T T_COLON) :: r81 in @@ -666,1799 +667,1799 @@ let recover = let r85 = S (T T_RPAREN) :: r84 in let r86 = Sub (r78) :: r85 in let r87 = S (T T_COLON) :: r86 in - let r88 = [R 314] in + let r88 = [R 318] in let r89 = S (T T_RPAREN) :: r88 in - let r90 = [R 311] in + let r90 = [R 315] in let r91 = [R 140] in let r92 = S (T T_RPAREN) :: r91 in let r93 = S (N N_module_type) :: r92 in - let r94 = R 450 :: r93 in + let r94 = R 454 :: r93 in let r95 = R 152 :: r94 in let r96 = [R 40] in let r97 = S (T T_RPAREN) :: r96 in let r98 = Sub (r78) :: r97 in let r99 = S (T T_COLON) :: r98 in let r100 = Sub (r60) :: r99 in - let r101 = [R 761] in - let r102 = [R 309] in - let r103 = [R 1267] in - let r104 = [R 853] in - let r105 = Sub (r26) :: r104 in - let r106 = [R 1211] in - let r107 = Sub (r105) :: r106 in - let r108 = S (T T_STAR) :: r107 in - let r109 = Sub (r26) :: r108 in - let r110 = [R 889] in - let r111 = R 458 :: r110 in - let r112 = R 684 :: r111 in - let r113 = [R 548] in - let r114 = S (T T_END) :: r113 in - let r115 = Sub (r112) :: r114 in - let r116 = [R 583] in - let r117 = S (T T_LIDENT) :: r116 in - let r118 = [R 685] in - let r119 = S (T T_LIDENT) :: r103 in - let r120 = [R 511] in - let r121 = Sub (r119) :: r120 in - let r122 = [R 1260] in - let r123 = Sub (r121) :: r122 in - let r124 = [R 117] in - let r125 = S (T T_FALSE) :: r124 in - let r126 = [R 121] in - let r127 = Sub (r125) :: r126 in - let r128 = [R 291] in - let r129 = R 450 :: r128 in - let r130 = R 284 :: r129 in - let r131 = Sub (r127) :: r130 in - let r132 = [R 771] in - let r133 = Sub (r131) :: r132 in - let r134 = [R 897] in - let r135 = R 456 :: r134 in - let r136 = Sub (r133) :: r135 in - let r137 = R 749 :: r136 in - let r138 = S (T T_PLUSEQ) :: r137 in - let r139 = Sub (r123) :: r138 in - let r140 = R 1263 :: r139 in - let r141 = R 450 :: r140 in - let r142 = [R 898] in - let r143 = R 456 :: r142 in - let r144 = Sub (r133) :: r143 in - let r145 = R 749 :: r144 in - let r146 = S (T T_PLUSEQ) :: r145 in - let r147 = Sub (r123) :: r146 in - let r148 = [R 1262] in - let r149 = R 450 :: r148 in - let r150 = S (T T_UNDERSCORE) :: r149 in - let r151 = R 1269 :: r150 in - let r152 = [R 704] in - let r153 = Sub (r151) :: r152 in - let r154 = [R 845] in - let r155 = Sub (r153) :: r154 in - let r156 = [R 1265] in - let r157 = S (T T_RPAREN) :: r156 in - let r158 = [R 706] in - let r159 = [R 581] in - let r160 = S (T T_LIDENT) :: r159 in - let r161 = [R 308] in - let r162 = [R 760] in - let r163 = Sub (r78) :: r162 in - let r164 = [R 451] in - let r165 = [R 1261] in - let r166 = R 450 :: r165 in - let r167 = Sub (r60) :: r166 in - let r168 = [R 705] in - let r169 = [R 846] in - let r170 = [R 307] in - let r171 = [R 295] in - let r172 = R 456 :: r171 in - let r173 = R 816 :: r172 in - let r174 = R 1258 :: r173 in - let r175 = [R 603] in - let r176 = S (T T_DOTDOT) :: r175 in - let r177 = [R 1259] in - let r178 = [R 604] in - let r179 = [R 120] in - let r180 = S (T T_RPAREN) :: r179 in - let r181 = [R 116] in - let r182 = [R 616] in - let r183 = [R 154] in - let r184 = S (T T_RBRACKET) :: r183 in - let r185 = Sub (r17) :: r184 in - let r186 = [R 267] in - let r187 = [R 965] in - let r188 = [R 515] in - let r189 = [R 480] in - let r190 = Sub (r3) :: r189 in - let r191 = S (T T_MINUSGREATER) :: r190 in - let r192 = S (N N_pattern) :: r191 in - let r193 = [R 832] in - let r194 = Sub (r192) :: r193 in - let r195 = [R 170] in - let r196 = Sub (r194) :: r195 in - let r197 = S (T T_WITH) :: r196 in - let r198 = Sub (r3) :: r197 in - let r199 = R 450 :: r198 in - let r200 = [R 794] in - let r201 = S (N N_fun_expr) :: r200 in - let r202 = S (T T_COMMA) :: r201 in - let r203 = [R 1255] in - let r204 = Sub (r34) :: r203 in - let r205 = S (T T_COLON) :: r204 in - let r206 = [R 799] in - let r207 = S (N N_fun_expr) :: r206 in - let r208 = S (T T_COMMA) :: r207 in - let r209 = S (T T_RPAREN) :: r208 in - let r210 = Sub (r205) :: r209 in - let r211 = [R 1257] in - let r212 = [R 870] in - let r213 = Sub (r34) :: r212 in - let r214 = [R 841] in - let r215 = Sub (r213) :: r214 in - let r216 = [R 146] in - let r217 = S (T T_RBRACKET) :: r216 in - let r218 = Sub (r215) :: r217 in - let r219 = [R 145] in - let r220 = S (T T_RBRACKET) :: r219 in - let r221 = [R 144] in - let r222 = S (T T_RBRACKET) :: r221 in - let r223 = [R 577] in - let r224 = Sub (r60) :: r223 in - let r225 = S (T T_BACKQUOTE) :: r224 in - let r226 = [R 1234] in - let r227 = R 450 :: r226 in - let r228 = Sub (r225) :: r227 in - let r229 = [R 141] in - let r230 = S (T T_RBRACKET) :: r229 in - let r231 = [R 148] in - let r232 = S (T T_RPAREN) :: r231 in - let r233 = Sub (r105) :: r232 in - let r234 = S (T T_STAR) :: r233 in - let r235 = [R 149] in - let r236 = S (T T_RPAREN) :: r235 in - let r237 = Sub (r105) :: r236 in - let r238 = S (T T_STAR) :: r237 in - let r239 = Sub (r26) :: r238 in - let r240 = [R 497] in - let r241 = S (T T_LIDENT) :: r240 in - let r242 = [R 96] in - let r243 = Sub (r241) :: r242 in - let r244 = [R 34] in - let r245 = [R 498] in - let r246 = S (T T_LIDENT) :: r245 in - let r247 = S (T T_DOT) :: r246 in - let r248 = S (T T_UIDENT) :: r57 in - let r249 = [R 519] in - let r250 = Sub (r248) :: r249 in - let r251 = [R 520] in - let r252 = S (T T_RPAREN) :: r251 in - let r253 = [R 500] in - let r254 = S (T T_UIDENT) :: r253 in - let r255 = S (T T_DOT) :: r254 in - let r256 = S (T T_LBRACKETGREATER) :: r220 in - let r257 = [R 37] in - let r258 = Sub (r256) :: r257 in - let r259 = [R 1167] in - let r260 = [R 585] in - let r261 = S (T T_LIDENT) :: r260 in - let r262 = [R 25] in - let r263 = Sub (r261) :: r262 in - let r264 = [R 1171] in - let r265 = Sub (r28) :: r264 in - let r266 = [R 1103] in - let r267 = Sub (r28) :: r266 in - let r268 = S (T T_MINUSGREATER) :: r267 in - let r269 = [R 30] in - let r270 = Sub (r123) :: r269 in - let r271 = [R 36] in - let r272 = [R 512] in - let r273 = Sub (r119) :: r272 in - let r274 = S (T T_DOT) :: r273 in - let r275 = [R 859] in - let r276 = Sub (r78) :: r275 in - let r277 = S (T T_COLON) :: r276 in - let r278 = [R 858] in - let r279 = Sub (r78) :: r278 in - let r280 = S (T T_COLON) :: r279 in - let r281 = [R 1183] in - let r282 = Sub (r28) :: r281 in - let r283 = S (T T_MINUSGREATER) :: r282 in - let r284 = [R 1175] in - let r285 = Sub (r28) :: r284 in - let r286 = S (T T_MINUSGREATER) :: r285 in - let r287 = S (T T_RPAREN) :: r286 in - let r288 = Sub (r34) :: r287 in - let r289 = [R 830] in - let r290 = [R 831] in - let r291 = S (T T_RPAREN) :: r290 in - let r292 = Sub (r78) :: r291 in - let r293 = S (T T_COLON) :: r292 in - let r294 = Sub (r60) :: r293 in - let r295 = [R 1177] in - let r296 = [R 1185] in - let r297 = [R 1187] in - let r298 = Sub (r28) :: r297 in - let r299 = [R 1189] in - let r300 = [R 1254] in - let r301 = [R 854] in - let r302 = Sub (r26) :: r301 in - let r303 = [R 35] in - let r304 = [R 855] in - let r305 = [R 856] in - let r306 = Sub (r26) :: r305 in - let r307 = [R 1179] in - let r308 = Sub (r28) :: r307 in - let r309 = [R 1181] in - let r310 = [R 18] in - let r311 = Sub (r60) :: r310 in - let r312 = [R 20] in - let r313 = S (T T_RPAREN) :: r312 in - let r314 = Sub (r78) :: r313 in - let r315 = S (T T_COLON) :: r314 in - let r316 = [R 19] in - let r317 = S (T T_RPAREN) :: r316 in - let r318 = Sub (r78) :: r317 in - let r319 = S (T T_COLON) :: r318 in - let r320 = [R 139] in - let r321 = [R 862] in - let r322 = Sub (r78) :: r321 in - let r323 = S (T T_COLON) :: r322 in - let r324 = [R 861] in - let r325 = Sub (r78) :: r324 in - let r326 = S (T T_COLON) :: r325 in - let r327 = [R 1095] in - let r328 = Sub (r28) :: r327 in - let r329 = S (T T_MINUSGREATER) :: r328 in - let r330 = S (T T_RPAREN) :: r329 in - let r331 = Sub (r34) :: r330 in - let r332 = [R 1097] in - let r333 = [R 1099] in - let r334 = Sub (r28) :: r333 in - let r335 = [R 1101] in + let r101 = [R 765] in + let r102 = [R 313] in + let r103 = R 688 :: r102 in + let r104 = [R 1271] in + let r105 = [R 857] in + let r106 = Sub (r26) :: r105 in + let r107 = [R 1215] in + let r108 = Sub (r106) :: r107 in + let r109 = S (T T_STAR) :: r108 in + let r110 = Sub (r26) :: r109 in + let r111 = [R 893] in + let r112 = R 462 :: r111 in + let r113 = R 688 :: r112 in + let r114 = [R 552] in + let r115 = S (T T_END) :: r114 in + let r116 = Sub (r113) :: r115 in + let r117 = [R 587] in + let r118 = S (T T_LIDENT) :: r117 in + let r119 = [R 689] in + let r120 = S (T T_LIDENT) :: r104 in + let r121 = [R 515] in + let r122 = Sub (r120) :: r121 in + let r123 = [R 1264] in + let r124 = Sub (r122) :: r123 in + let r125 = [R 117] in + let r126 = S (T T_FALSE) :: r125 in + let r127 = [R 121] in + let r128 = Sub (r126) :: r127 in + let r129 = [R 295] in + let r130 = R 454 :: r129 in + let r131 = R 288 :: r130 in + let r132 = Sub (r128) :: r131 in + let r133 = [R 775] in + let r134 = Sub (r132) :: r133 in + let r135 = [R 901] in + let r136 = R 460 :: r135 in + let r137 = Sub (r134) :: r136 in + let r138 = R 753 :: r137 in + let r139 = S (T T_PLUSEQ) :: r138 in + let r140 = Sub (r124) :: r139 in + let r141 = R 1267 :: r140 in + let r142 = R 454 :: r141 in + let r143 = [R 902] in + let r144 = R 460 :: r143 in + let r145 = Sub (r134) :: r144 in + let r146 = R 753 :: r145 in + let r147 = S (T T_PLUSEQ) :: r146 in + let r148 = Sub (r124) :: r147 in + let r149 = [R 1266] in + let r150 = R 454 :: r149 in + let r151 = S (T T_UNDERSCORE) :: r150 in + let r152 = R 1273 :: r151 in + let r153 = [R 708] in + let r154 = Sub (r152) :: r153 in + let r155 = [R 849] in + let r156 = Sub (r154) :: r155 in + let r157 = [R 1269] in + let r158 = S (T T_RPAREN) :: r157 in + let r159 = [R 710] in + let r160 = [R 585] in + let r161 = S (T T_LIDENT) :: r160 in + let r162 = [R 312] in + let r163 = [R 764] in + let r164 = Sub (r78) :: r163 in + let r165 = [R 455] in + let r166 = [R 1265] in + let r167 = R 454 :: r166 in + let r168 = Sub (r60) :: r167 in + let r169 = [R 709] in + let r170 = [R 850] in + let r171 = [R 311] in + let r172 = [R 299] in + let r173 = R 460 :: r172 in + let r174 = R 820 :: r173 in + let r175 = R 1262 :: r174 in + let r176 = [R 607] in + let r177 = S (T T_DOTDOT) :: r176 in + let r178 = [R 1263] in + let r179 = [R 608] in + let r180 = [R 120] in + let r181 = S (T T_RPAREN) :: r180 in + let r182 = [R 116] in + let r183 = [R 620] in + let r184 = [R 154] in + let r185 = S (T T_RBRACKET) :: r184 in + let r186 = Sub (r17) :: r185 in + let r187 = [R 271] in + let r188 = [R 969] in + let r189 = [R 519] in + let r190 = [R 484] in + let r191 = Sub (r3) :: r190 in + let r192 = S (T T_MINUSGREATER) :: r191 in + let r193 = S (N N_pattern) :: r192 in + let r194 = [R 836] in + let r195 = Sub (r193) :: r194 in + let r196 = [R 171] in + let r197 = Sub (r195) :: r196 in + let r198 = S (T T_WITH) :: r197 in + let r199 = Sub (r3) :: r198 in + let r200 = R 454 :: r199 in + let r201 = [R 798] in + let r202 = S (N N_fun_expr) :: r201 in + let r203 = S (T T_COMMA) :: r202 in + let r204 = [R 1259] in + let r205 = Sub (r34) :: r204 in + let r206 = S (T T_COLON) :: r205 in + let r207 = [R 803] in + let r208 = S (N N_fun_expr) :: r207 in + let r209 = S (T T_COMMA) :: r208 in + let r210 = S (T T_RPAREN) :: r209 in + let r211 = Sub (r206) :: r210 in + let r212 = [R 1261] in + let r213 = [R 874] in + let r214 = Sub (r34) :: r213 in + let r215 = [R 845] in + let r216 = Sub (r214) :: r215 in + let r217 = [R 146] in + let r218 = S (T T_RBRACKET) :: r217 in + let r219 = Sub (r216) :: r218 in + let r220 = [R 145] in + let r221 = S (T T_RBRACKET) :: r220 in + let r222 = [R 144] in + let r223 = S (T T_RBRACKET) :: r222 in + let r224 = [R 581] in + let r225 = Sub (r60) :: r224 in + let r226 = S (T T_BACKQUOTE) :: r225 in + let r227 = [R 1238] in + let r228 = R 454 :: r227 in + let r229 = Sub (r226) :: r228 in + let r230 = [R 141] in + let r231 = S (T T_RBRACKET) :: r230 in + let r232 = [R 148] in + let r233 = S (T T_RPAREN) :: r232 in + let r234 = Sub (r106) :: r233 in + let r235 = S (T T_STAR) :: r234 in + let r236 = [R 149] in + let r237 = S (T T_RPAREN) :: r236 in + let r238 = Sub (r106) :: r237 in + let r239 = S (T T_STAR) :: r238 in + let r240 = Sub (r26) :: r239 in + let r241 = [R 501] in + let r242 = S (T T_LIDENT) :: r241 in + let r243 = [R 96] in + let r244 = Sub (r242) :: r243 in + let r245 = [R 34] in + let r246 = [R 502] in + let r247 = S (T T_LIDENT) :: r246 in + let r248 = S (T T_DOT) :: r247 in + let r249 = S (T T_UIDENT) :: r57 in + let r250 = [R 523] in + let r251 = Sub (r249) :: r250 in + let r252 = [R 524] in + let r253 = S (T T_RPAREN) :: r252 in + let r254 = [R 504] in + let r255 = S (T T_UIDENT) :: r254 in + let r256 = S (T T_DOT) :: r255 in + let r257 = S (T T_LBRACKETGREATER) :: r221 in + let r258 = [R 37] in + let r259 = Sub (r257) :: r258 in + let r260 = [R 1171] in + let r261 = [R 589] in + let r262 = S (T T_LIDENT) :: r261 in + let r263 = [R 25] in + let r264 = Sub (r262) :: r263 in + let r265 = [R 1175] in + let r266 = Sub (r28) :: r265 in + let r267 = [R 1107] in + let r268 = Sub (r28) :: r267 in + let r269 = S (T T_MINUSGREATER) :: r268 in + let r270 = [R 30] in + let r271 = Sub (r124) :: r270 in + let r272 = [R 36] in + let r273 = [R 516] in + let r274 = Sub (r120) :: r273 in + let r275 = S (T T_DOT) :: r274 in + let r276 = [R 863] in + let r277 = Sub (r78) :: r276 in + let r278 = S (T T_COLON) :: r277 in + let r279 = [R 862] in + let r280 = Sub (r78) :: r279 in + let r281 = S (T T_COLON) :: r280 in + let r282 = [R 1187] in + let r283 = Sub (r28) :: r282 in + let r284 = S (T T_MINUSGREATER) :: r283 in + let r285 = [R 1179] in + let r286 = Sub (r28) :: r285 in + let r287 = S (T T_MINUSGREATER) :: r286 in + let r288 = S (T T_RPAREN) :: r287 in + let r289 = Sub (r34) :: r288 in + let r290 = [R 834] in + let r291 = [R 835] in + let r292 = S (T T_RPAREN) :: r291 in + let r293 = Sub (r78) :: r292 in + let r294 = S (T T_COLON) :: r293 in + let r295 = Sub (r60) :: r294 in + let r296 = [R 1181] in + let r297 = [R 1189] in + let r298 = [R 1191] in + let r299 = Sub (r28) :: r298 in + let r300 = [R 1193] in + let r301 = [R 1258] in + let r302 = [R 858] in + let r303 = Sub (r26) :: r302 in + let r304 = [R 35] in + let r305 = [R 859] in + let r306 = [R 860] in + let r307 = Sub (r26) :: r306 in + let r308 = [R 1183] in + let r309 = Sub (r28) :: r308 in + let r310 = [R 1185] in + let r311 = [R 18] in + let r312 = Sub (r60) :: r311 in + let r313 = [R 20] in + let r314 = S (T T_RPAREN) :: r313 in + let r315 = Sub (r78) :: r314 in + let r316 = S (T T_COLON) :: r315 in + let r317 = [R 19] in + let r318 = S (T T_RPAREN) :: r317 in + let r319 = Sub (r78) :: r318 in + let r320 = S (T T_COLON) :: r319 in + let r321 = [R 139] in + let r322 = [R 866] in + let r323 = Sub (r78) :: r322 in + let r324 = S (T T_COLON) :: r323 in + let r325 = [R 865] in + let r326 = Sub (r78) :: r325 in + let r327 = S (T T_COLON) :: r326 in + let r328 = [R 1099] in + let r329 = Sub (r28) :: r328 in + let r330 = S (T T_MINUSGREATER) :: r329 in + let r331 = S (T T_RPAREN) :: r330 in + let r332 = Sub (r34) :: r331 in + let r333 = [R 1101] in + let r334 = [R 1103] in + let r335 = Sub (r28) :: r334 in let r336 = [R 1105] in - let r337 = [R 1107] in - let r338 = Sub (r28) :: r337 in - let r339 = [R 1109] in - let r340 = [R 1119] in - let r341 = Sub (r28) :: r340 in - let r342 = S (T T_MINUSGREATER) :: r341 in - let r343 = [R 1111] in - let r344 = Sub (r28) :: r343 in - let r345 = S (T T_MINUSGREATER) :: r344 in - let r346 = S (T T_RPAREN) :: r345 in - let r347 = Sub (r34) :: r346 in - let r348 = [R 1113] in - let r349 = [R 1115] in - let r350 = Sub (r28) :: r349 in - let r351 = [R 1117] in + let r337 = [R 1109] in + let r338 = [R 1111] in + let r339 = Sub (r28) :: r338 in + let r340 = [R 1113] in + let r341 = [R 1123] in + let r342 = Sub (r28) :: r341 in + let r343 = S (T T_MINUSGREATER) :: r342 in + let r344 = [R 1115] in + let r345 = Sub (r28) :: r344 in + let r346 = S (T T_MINUSGREATER) :: r345 in + let r347 = S (T T_RPAREN) :: r346 in + let r348 = Sub (r34) :: r347 in + let r349 = [R 1117] in + let r350 = [R 1119] in + let r351 = Sub (r28) :: r350 in let r352 = [R 1121] in - let r353 = [R 1123] in - let r354 = Sub (r28) :: r353 in - let r355 = [R 1125] in - let r356 = [R 1173] in - let r357 = [R 1169] in - let r358 = [R 142] in - let r359 = S (T T_RBRACKET) :: r358 in - let r360 = [R 842] in - let r361 = [R 835] in - let r362 = Sub (r32) :: r361 in - let r363 = [R 1233] in - let r364 = R 450 :: r363 in - let r365 = Sub (r362) :: r364 in - let r366 = [R 836] in - let r367 = [R 143] in - let r368 = S (T T_RBRACKET) :: r367 in - let r369 = Sub (r215) :: r368 in - let r370 = [R 826] in - let r371 = Sub (r225) :: r370 in - let r372 = [R 147] in - let r373 = S (T T_RBRACKET) :: r372 in - let r374 = [R 1256] in - let r375 = [R 802] in - let r376 = [R 803] in - let r377 = S (T T_RPAREN) :: r376 in - let r378 = Sub (r205) :: r377 in - let r379 = S (T T_UNDERSCORE) :: r187 in - let r380 = [R 189] in - let r381 = [R 953] in - let r382 = [R 949] in - let r383 = S (T T_END) :: r382 in - let r384 = R 467 :: r383 in - let r385 = R 70 :: r384 in - let r386 = R 450 :: r385 in - let r387 = [R 68] in - let r388 = S (T T_RPAREN) :: r387 in - let r389 = [R 1002] in - let r390 = [R 808] in - let r391 = S (T T_DOTDOT) :: r390 in - let r392 = S (T T_COMMA) :: r391 in - let r393 = [R 809] in - let r394 = S (T T_DOTDOT) :: r393 in - let r395 = S (T T_COMMA) :: r394 in - let r396 = S (T T_RPAREN) :: r395 in - let r397 = Sub (r34) :: r396 in - let r398 = S (T T_COLON) :: r397 in - let r399 = [R 372] in - let r400 = [R 373] in - let r401 = S (T T_RPAREN) :: r400 in - let r402 = Sub (r34) :: r401 in - let r403 = S (T T_COLON) :: r402 in - let r404 = [R 919] in - let r405 = [R 917] in - let r406 = [R 998] in - let r407 = S (T T_RPAREN) :: r406 in - let r408 = S (N N_pattern) :: r407 in - let r409 = [R 542] in - let r410 = S (T T_UNDERSCORE) :: r409 in - let r411 = [R 1000] in - let r412 = S (T T_RPAREN) :: r411 in - let r413 = Sub (r410) :: r412 in - let r414 = R 450 :: r413 in - let r415 = [R 1001] in - let r416 = S (T T_RPAREN) :: r415 in - let r417 = [R 551] in - let r418 = S (N N_module_expr) :: r417 in - let r419 = R 450 :: r418 in - let r420 = S (T T_OF) :: r419 in - let r421 = [R 532] in - let r422 = S (T T_END) :: r421 in - let r423 = S (N N_structure) :: r422 in - let r424 = [R 765] in - let r425 = Sub (r131) :: r424 in - let r426 = [R 1221] in - let r427 = R 456 :: r426 in - let r428 = Sub (r425) :: r427 in - let r429 = R 749 :: r428 in - let r430 = S (T T_PLUSEQ) :: r429 in - let r431 = Sub (r123) :: r430 in - let r432 = R 1263 :: r431 in - let r433 = R 450 :: r432 in - let r434 = [R 294] in - let r435 = R 456 :: r434 in - let r436 = R 816 :: r435 in - let r437 = R 1258 :: r436 in - let r438 = R 665 :: r437 in - let r439 = S (T T_LIDENT) :: r438 in - let r440 = R 1263 :: r439 in - let r441 = R 450 :: r440 in - let r442 = [R 1222] in - let r443 = R 456 :: r442 in - let r444 = Sub (r425) :: r443 in - let r445 = R 749 :: r444 in - let r446 = S (T T_PLUSEQ) :: r445 in - let r447 = Sub (r123) :: r446 in - let r448 = R 665 :: r174 in - let r449 = S (T T_LIDENT) :: r448 in - let r450 = [R 747] in - let r451 = S (T T_RBRACKET) :: r450 in - let r452 = Sub (r19) :: r451 in - let r453 = [R 462] in - let r454 = [R 171] in - let r455 = S (N N_fun_expr) :: r454 in - let r456 = S (T T_WITH) :: r455 in - let r457 = Sub (r3) :: r456 in - let r458 = R 450 :: r457 in - let r459 = [R 268] in - let r460 = [R 513] in - let r461 = S (T T_LIDENT) :: r460 in - let r462 = [R 67] in - let r463 = Sub (r461) :: r462 in - let r464 = [R 946] in - let r465 = Sub (r463) :: r464 in - let r466 = R 450 :: r465 in - let r467 = [R 514] in - let r468 = S (T T_LIDENT) :: r467 in - let r469 = [R 516] in - let r470 = [R 521] in - let r471 = [R 169] in - let r472 = Sub (r194) :: r471 in - let r473 = S (T T_WITH) :: r472 in - let r474 = Sub (r3) :: r473 in - let r475 = R 450 :: r474 in - let r476 = [R 932] in - let r477 = S (T T_RPAREN) :: r476 in - let r478 = [R 986] in - let r479 = [R 266] in - let r480 = [R 243] in - let r481 = [R 435] in - let r482 = Sub (r24) :: r481 in - let r483 = [R 438] in - let r484 = Sub (r482) :: r483 in - let r485 = [R 240] in - let r486 = Sub (r3) :: r485 in - let r487 = S (T T_IN) :: r486 in - let r488 = [R 814] in - let r489 = S (T T_DOTDOT) :: r488 in - let r490 = S (T T_COMMA) :: r489 in - let r491 = [R 815] in + let r353 = [R 1125] in + let r354 = [R 1127] in + let r355 = Sub (r28) :: r354 in + let r356 = [R 1129] in + let r357 = [R 1177] in + let r358 = [R 1173] in + let r359 = [R 142] in + let r360 = S (T T_RBRACKET) :: r359 in + let r361 = [R 846] in + let r362 = [R 839] in + let r363 = Sub (r32) :: r362 in + let r364 = [R 1237] in + let r365 = R 454 :: r364 in + let r366 = Sub (r363) :: r365 in + let r367 = [R 840] in + let r368 = [R 143] in + let r369 = S (T T_RBRACKET) :: r368 in + let r370 = Sub (r216) :: r369 in + let r371 = [R 830] in + let r372 = Sub (r226) :: r371 in + let r373 = [R 147] in + let r374 = S (T T_RBRACKET) :: r373 in + let r375 = [R 1260] in + let r376 = [R 806] in + let r377 = [R 807] in + let r378 = S (T T_RPAREN) :: r377 in + let r379 = Sub (r206) :: r378 in + let r380 = S (T T_UNDERSCORE) :: r188 in + let r381 = [R 190] in + let r382 = [R 957] in + let r383 = [R 953] in + let r384 = S (T T_END) :: r383 in + let r385 = R 471 :: r384 in + let r386 = R 70 :: r385 in + let r387 = R 454 :: r386 in + let r388 = [R 68] in + let r389 = S (T T_RPAREN) :: r388 in + let r390 = [R 1006] in + let r391 = [R 812] in + let r392 = S (T T_DOTDOT) :: r391 in + let r393 = S (T T_COMMA) :: r392 in + let r394 = [R 813] in + let r395 = S (T T_DOTDOT) :: r394 in + let r396 = S (T T_COMMA) :: r395 in + let r397 = S (T T_RPAREN) :: r396 in + let r398 = Sub (r34) :: r397 in + let r399 = S (T T_COLON) :: r398 in + let r400 = [R 376] in + let r401 = [R 377] in + let r402 = S (T T_RPAREN) :: r401 in + let r403 = Sub (r34) :: r402 in + let r404 = S (T T_COLON) :: r403 in + let r405 = [R 923] in + let r406 = [R 921] in + let r407 = [R 1002] in + let r408 = S (T T_RPAREN) :: r407 in + let r409 = S (N N_pattern) :: r408 in + let r410 = [R 546] in + let r411 = S (T T_UNDERSCORE) :: r410 in + let r412 = [R 1004] in + let r413 = S (T T_RPAREN) :: r412 in + let r414 = Sub (r411) :: r413 in + let r415 = R 454 :: r414 in + let r416 = [R 1005] in + let r417 = S (T T_RPAREN) :: r416 in + let r418 = [R 555] in + let r419 = S (N N_module_expr) :: r418 in + let r420 = R 454 :: r419 in + let r421 = S (T T_OF) :: r420 in + let r422 = [R 536] in + let r423 = S (T T_END) :: r422 in + let r424 = S (N N_structure) :: r423 in + let r425 = [R 769] in + let r426 = Sub (r132) :: r425 in + let r427 = [R 1225] in + let r428 = R 460 :: r427 in + let r429 = Sub (r426) :: r428 in + let r430 = R 753 :: r429 in + let r431 = S (T T_PLUSEQ) :: r430 in + let r432 = Sub (r124) :: r431 in + let r433 = R 1267 :: r432 in + let r434 = R 454 :: r433 in + let r435 = [R 298] in + let r436 = R 460 :: r435 in + let r437 = R 820 :: r436 in + let r438 = R 1262 :: r437 in + let r439 = R 669 :: r438 in + let r440 = S (T T_LIDENT) :: r439 in + let r441 = R 1267 :: r440 in + let r442 = R 454 :: r441 in + let r443 = [R 1226] in + let r444 = R 460 :: r443 in + let r445 = Sub (r426) :: r444 in + let r446 = R 753 :: r445 in + let r447 = S (T T_PLUSEQ) :: r446 in + let r448 = Sub (r124) :: r447 in + let r449 = R 669 :: r175 in + let r450 = S (T T_LIDENT) :: r449 in + let r451 = [R 751] in + let r452 = S (T T_RBRACKET) :: r451 in + let r453 = Sub (r19) :: r452 in + let r454 = [R 466] in + let r455 = [R 172] in + let r456 = S (N N_fun_expr) :: r455 in + let r457 = S (T T_WITH) :: r456 in + let r458 = Sub (r3) :: r457 in + let r459 = R 454 :: r458 in + let r460 = [R 272] in + let r461 = [R 517] in + let r462 = S (T T_LIDENT) :: r461 in + let r463 = [R 67] in + let r464 = Sub (r462) :: r463 in + let r465 = [R 950] in + let r466 = Sub (r464) :: r465 in + let r467 = R 454 :: r466 in + let r468 = [R 518] in + let r469 = S (T T_LIDENT) :: r468 in + let r470 = [R 520] in + let r471 = [R 525] in + let r472 = [R 170] in + let r473 = Sub (r195) :: r472 in + let r474 = S (T T_WITH) :: r473 in + let r475 = Sub (r3) :: r474 in + let r476 = R 454 :: r475 in + let r477 = [R 936] in + let r478 = S (T T_RPAREN) :: r477 in + let r479 = [R 124] in + let r480 = S (T T_RPAREN) :: r479 in + let r481 = [R 990] in + let r482 = [R 270] in + let r483 = [R 247] in + let r484 = [R 439] in + let r485 = Sub (r24) :: r484 in + let r486 = [R 442] in + let r487 = Sub (r485) :: r486 in + let r488 = [R 244] in + let r489 = Sub (r3) :: r488 in + let r490 = S (T T_IN) :: r489 in + let r491 = [R 818] in let r492 = S (T T_DOTDOT) :: r491 in let r493 = S (T T_COMMA) :: r492 in - let r494 = S (T T_RPAREN) :: r493 in - let r495 = Sub (r34) :: r494 in - let r496 = S (T T_COLON) :: r495 in - let r497 = [R 392] in - let r498 = [R 393] in - let r499 = S (T T_RPAREN) :: r498 in - let r500 = Sub (r34) :: r499 in - let r501 = S (T T_COLON) :: r500 in - let r502 = [R 927] in - let r503 = [R 925] in - let r504 = [R 115] in - let r505 = [R 880] in - let r506 = S (N N_pattern) :: r505 in - let r507 = [R 923] in - let r508 = S (T T_RBRACKET) :: r507 in - let r509 = [R 327] in - let r510 = Sub (r461) :: r509 in - let r511 = [R 476] in - let r512 = R 676 :: r511 in - let r513 = R 669 :: r512 in - let r514 = Sub (r510) :: r513 in - let r515 = [R 921] in - let r516 = S (T T_RBRACE) :: r515 in - let r517 = [R 670] in - let r518 = [R 677] in - let r519 = S (T T_UNDERSCORE) :: r389 in - let r520 = [R 997] in - let r521 = Sub (r519) :: r520 in - let r522 = [R 729] in - let r523 = Sub (r521) :: r522 in - let r524 = R 450 :: r523 in - let r525 = [R 1292] in - let r526 = [R 1007] in - let r527 = [R 806] in - let r528 = S (T T_DOTDOT) :: r527 in - let r529 = S (T T_COMMA) :: r528 in - let r530 = S (N N_pattern) :: r529 in - let r531 = [R 928] in - let r532 = S (T T_RPAREN) :: r531 in - let r533 = [R 807] in - let r534 = S (T T_DOTDOT) :: r533 in - let r535 = S (T T_COMMA) :: r534 in - let r536 = [R 922] in - let r537 = S (T T_RBRACE) :: r536 in - let r538 = [R 1006] in - let r539 = [R 916] in - let r540 = [R 364] in - let r541 = [R 365] in - let r542 = S (T T_RPAREN) :: r541 in - let r543 = Sub (r34) :: r542 in - let r544 = S (T T_COLON) :: r543 in - let r545 = [R 363] in - let r546 = S (T T_INT) :: r525 in - let r547 = Sub (r546) :: r539 in - let r548 = [R 1003] in - let r549 = Sub (r547) :: r548 in - let r550 = [R 1009] in - let r551 = S (T T_RBRACKET) :: r550 in - let r552 = S (T T_LBRACKET) :: r551 in - let r553 = [R 1010] in - let r554 = [R 724] in - let r555 = S (N N_pattern) :: r554 in - let r556 = R 450 :: r555 in + let r494 = [R 819] in + let r495 = S (T T_DOTDOT) :: r494 in + let r496 = S (T T_COMMA) :: r495 in + let r497 = S (T T_RPAREN) :: r496 in + let r498 = Sub (r34) :: r497 in + let r499 = S (T T_COLON) :: r498 in + let r500 = [R 396] in + let r501 = [R 397] in + let r502 = S (T T_RPAREN) :: r501 in + let r503 = Sub (r34) :: r502 in + let r504 = S (T T_COLON) :: r503 in + let r505 = [R 931] in + let r506 = [R 929] in + let r507 = [R 115] in + let r508 = [R 884] in + let r509 = S (N N_pattern) :: r508 in + let r510 = [R 927] in + let r511 = S (T T_RBRACKET) :: r510 in + let r512 = [R 331] in + let r513 = Sub (r462) :: r512 in + let r514 = [R 480] in + let r515 = R 680 :: r514 in + let r516 = R 673 :: r515 in + let r517 = Sub (r513) :: r516 in + let r518 = [R 925] in + let r519 = S (T T_RBRACE) :: r518 in + let r520 = [R 674] in + let r521 = [R 681] in + let r522 = S (T T_UNDERSCORE) :: r390 in + let r523 = [R 1001] in + let r524 = Sub (r522) :: r523 in + let r525 = [R 733] in + let r526 = Sub (r524) :: r525 in + let r527 = R 454 :: r526 in + let r528 = [R 1296] in + let r529 = [R 1011] in + let r530 = [R 810] in + let r531 = S (T T_DOTDOT) :: r530 in + let r532 = S (T T_COMMA) :: r531 in + let r533 = S (N N_pattern) :: r532 in + let r534 = [R 932] in + let r535 = S (T T_RPAREN) :: r534 in + let r536 = [R 811] in + let r537 = S (T T_DOTDOT) :: r536 in + let r538 = S (T T_COMMA) :: r537 in + let r539 = [R 926] in + let r540 = S (T T_RBRACE) :: r539 in + let r541 = [R 1010] in + let r542 = [R 920] in + let r543 = [R 368] in + let r544 = [R 369] in + let r545 = S (T T_RPAREN) :: r544 in + let r546 = Sub (r34) :: r545 in + let r547 = S (T T_COLON) :: r546 in + let r548 = [R 367] in + let r549 = S (T T_INT) :: r528 in + let r550 = Sub (r549) :: r542 in + let r551 = [R 1007] in + let r552 = Sub (r550) :: r551 in + let r553 = [R 1013] in + let r554 = S (T T_RBRACKET) :: r553 in + let r555 = S (T T_LBRACKET) :: r554 in + let r556 = [R 1014] in let r557 = [R 728] in - let r558 = [R 805] in - let r559 = [R 356] in - let r560 = [R 357] in - let r561 = S (T T_RPAREN) :: r560 in - let r562 = Sub (r34) :: r561 in - let r563 = S (T T_COLON) :: r562 in - let r564 = [R 355] in - let r565 = [R 125] in - let r566 = [R 718] in - let r567 = [R 726] in - let r568 = [R 727] in - let r569 = Sub (r521) :: r568 in - let r570 = S (T T_RPAREN) :: r569 in - let r571 = [R 124] in - let r572 = S (T T_RPAREN) :: r571 in - let r573 = [R 360] in - let r574 = [R 361] in - let r575 = S (T T_RPAREN) :: r574 in - let r576 = Sub (r34) :: r575 in - let r577 = S (T T_COLON) :: r576 in - let r578 = [R 359] in - let r579 = [R 1013] in - let r580 = S (T T_RPAREN) :: r579 in - let r581 = Sub (r34) :: r580 in - let r582 = [R 722] in - let r583 = [R 721] in - let r584 = [R 123] in - let r585 = S (T T_RPAREN) :: r584 in - let r586 = [R 1011] in - let r587 = [R 478] in - let r588 = [R 924] in - let r589 = [R 926] in - let r590 = [R 391] in - let r591 = [R 730] in - let r592 = [R 811] in - let r593 = [R 376] in - let r594 = [R 377] in - let r595 = S (T T_RPAREN) :: r594 in - let r596 = Sub (r34) :: r595 in - let r597 = S (T T_COLON) :: r596 in - let r598 = [R 375] in - let r599 = [R 388] in - let r600 = [R 389] in - let r601 = S (T T_RPAREN) :: r600 in - let r602 = Sub (r34) :: r601 in - let r603 = S (T T_COLON) :: r602 in - let r604 = [R 387] in - let r605 = [R 813] in - let r606 = S (T T_DOTDOT) :: r605 in - let r607 = S (T T_COMMA) :: r606 in - let r608 = [R 384] in - let r609 = [R 385] in - let r610 = S (T T_RPAREN) :: r609 in - let r611 = Sub (r34) :: r610 in - let r612 = S (T T_COLON) :: r611 in - let r613 = [R 383] in - let r614 = [R 342] in - let r615 = [R 321] in - let r616 = S (T T_LIDENT) :: r615 in - let r617 = [R 340] in - let r618 = S (T T_RPAREN) :: r617 in - let r619 = [R 323] in - let r620 = [R 325] in - let r621 = Sub (r34) :: r620 in - let r622 = [R 26] in - let r623 = Sub (r261) :: r622 in - let r624 = [R 341] in - let r625 = S (T T_RPAREN) :: r624 in - let r626 = [R 336] in - let r627 = [R 334] in - let r628 = S (T T_RPAREN) :: r627 in - let r629 = R 678 :: r628 in - let r630 = [R 335] in - let r631 = S (T T_RPAREN) :: r630 in - let r632 = R 678 :: r631 in - let r633 = [R 679] in - let r634 = [R 167] in - let r635 = Sub (r3) :: r634 in - let r636 = S (T T_IN) :: r635 in - let r637 = S (N N_module_expr) :: r636 in - let r638 = R 450 :: r637 in - let r639 = R 152 :: r638 in - let r640 = [R 395] in - let r641 = Sub (r24) :: r640 in - let r642 = [R 415] in - let r643 = R 456 :: r642 in - let r644 = Sub (r641) :: r643 in - let r645 = R 756 :: r644 in - let r646 = R 450 :: r645 in - let r647 = R 152 :: r646 in - let r648 = [R 168] in - let r649 = Sub (r3) :: r648 in - let r650 = S (T T_IN) :: r649 in - let r651 = S (N N_module_expr) :: r650 in - let r652 = R 450 :: r651 in - let r653 = [R 695] in - let r654 = S (T T_RPAREN) :: r653 in - let r655 = [R 696] in - let r656 = S (T T_RPAREN) :: r655 in - let r657 = S (N N_fun_expr) :: r656 in - let r658 = [R 971] in - let r659 = [R 871] in - let r660 = S (N N_fun_expr) :: r659 in - let r661 = [R 974] in - let r662 = S (T T_RBRACKET) :: r661 in - let r663 = [R 956] in - let r664 = [R 877] in - let r665 = R 671 :: r664 in - let r666 = [R 672] in - let r667 = [R 883] in - let r668 = R 671 :: r667 in - let r669 = R 680 :: r668 in - let r670 = Sub (r510) :: r669 in - let r671 = [R 758] in - let r672 = Sub (r670) :: r671 in - let r673 = [R 967] in - let r674 = S (T T_RBRACE) :: r673 in - let r675 = [R 779] in - let r676 = S (N N_fun_expr) :: r675 in - let r677 = S (T T_COMMA) :: r676 in - let r678 = S (N N_fun_expr) :: r677 in - let r679 = [R 984] in - let r680 = S (T T_RPAREN) :: r679 in - let r681 = [R 182] in - let r682 = Sub (r379) :: r681 in - let r683 = R 450 :: r682 in - let r684 = [R 968] in - let r685 = S (T T_RBRACE) :: r684 in - let r686 = [R 931] in - let r687 = [R 929] in - let r688 = S (T T_GREATERDOT) :: r687 in - let r689 = [R 789] in - let r690 = S (N N_fun_expr) :: r689 in - let r691 = S (T T_COMMA) :: r690 in - let r692 = [R 945] in - let r693 = S (T T_END) :: r692 in - let r694 = R 450 :: r693 in - let r695 = [R 177] in - let r696 = S (N N_fun_expr) :: r695 in - let r697 = S (T T_THEN) :: r696 in - let r698 = Sub (r3) :: r697 in - let r699 = R 450 :: r698 in - let r700 = [R 887] in - let r701 = Sub (r194) :: r700 in - let r702 = R 450 :: r701 in - let r703 = [R 833] in - let r704 = [R 481] in - let r705 = Sub (r3) :: r704 in - let r706 = S (T T_MINUSGREATER) :: r705 in - let r707 = [R 347] in - let r708 = Sub (r521) :: r707 in - let r709 = [R 272] in - let r710 = Sub (r708) :: r709 in - let r711 = [R 818] in - let r712 = Sub (r710) :: r711 in - let r713 = [R 273] in - let r714 = Sub (r712) :: r713 in - let r715 = [R 163] in - let r716 = Sub (r1) :: r715 in - let r717 = [R 187] in - let r718 = Sub (r716) :: r717 in - let r719 = S (T T_MINUSGREATER) :: r718 in - let r720 = R 689 :: r719 in - let r721 = Sub (r714) :: r720 in - let r722 = R 450 :: r721 in - let r723 = [R 737] in - let r724 = S (T T_UNDERSCORE) :: r723 in - let r725 = [R 339] in - let r726 = [R 337] in - let r727 = S (T T_RPAREN) :: r726 in - let r728 = R 678 :: r727 in - let r729 = S (T T_ATAT) :: r623 in - let r730 = [R 432] in - let r731 = Sub (r729) :: r730 in - let r732 = Sub (r34) :: r731 in - let r733 = [R 431] in - let r734 = [R 433] in - let r735 = [R 426] in - let r736 = [R 422] in - let r737 = [R 424] in - let r738 = Sub (r34) :: r737 in - let r739 = [R 338] in - let r740 = S (T T_RPAREN) :: r739 in - let r741 = R 678 :: r740 in - let r742 = [R 578] in - let r743 = S (T T_LIDENT) :: r742 in - let r744 = [R 593] in - let r745 = Sub (r743) :: r744 in - let r746 = [R 580] in - let r747 = Sub (r745) :: r746 in - let r748 = [R 270] in - let r749 = S (T T_RPAREN) :: r748 in - let r750 = [R 579] in - let r751 = S (T T_RPAREN) :: r750 in - let r752 = Sub (r78) :: r751 in - let r753 = S (T T_COLON) :: r752 in - let r754 = [R 271] in - let r755 = S (T T_RPAREN) :: r754 in - let r756 = [R 353] in - let r757 = S (T T_RPAREN) :: r756 in - let r758 = Sub (r34) :: r757 in - let r759 = [R 427] in - let r760 = S (N N_pattern) :: r759 in - let r761 = [R 348] in - let r762 = S (T T_RPAREN) :: r761 in - let r763 = [R 428] in - let r764 = [R 429] in - let r765 = Sub (r34) :: r764 in - let r766 = [R 350] in - let r767 = [R 349] in - let r768 = [R 343] in - let r769 = [R 351] in - let r770 = S (T T_RPAREN) :: r769 in - let r771 = Sub (r34) :: r770 in - let r772 = [R 346] in - let r773 = S (T T_RPAREN) :: r772 in - let r774 = Sub (r729) :: r733 in - let r775 = [R 352] in - let r776 = S (T T_RPAREN) :: r775 in - let r777 = Sub (r34) :: r776 in - let r778 = [R 345] in - let r779 = [R 344] in - let r780 = [R 686] in - let r781 = [R 162] in - let r782 = Sub (r194) :: r781 in - let r783 = R 450 :: r782 in - let r784 = [R 784] in - let r785 = S (N N_fun_expr) :: r784 in - let r786 = [R 787] in - let r787 = [R 788] in - let r788 = S (T T_RPAREN) :: r787 in - let r789 = Sub (r205) :: r788 in - let r790 = [R 786] in - let r791 = [R 954] in - let r792 = [R 966] in - let r793 = S (T T_RPAREN) :: r792 in - let r794 = S (T T_LPAREN) :: r793 in - let r795 = S (T T_DOT) :: r794 in - let r796 = [R 983] in - let r797 = S (T T_RPAREN) :: r796 in - let r798 = S (N N_module_type) :: r797 in - let r799 = S (T T_COLON) :: r798 in - let r800 = S (N N_module_expr) :: r799 in - let r801 = R 450 :: r800 in - let r802 = [R 533] in - let r803 = S (N N_module_expr) :: r802 in - let r804 = S (T T_MINUSGREATER) :: r803 in - let r805 = S (N N_functor_args) :: r804 in - let r806 = [R 280] in - let r807 = [R 281] in - let r808 = S (T T_RPAREN) :: r807 in - let r809 = S (N N_module_type) :: r808 in - let r810 = [R 552] in - let r811 = S (T T_RPAREN) :: r810 in - let r812 = [R 555] in - let r813 = S (N N_module_type) :: r812 in - let r814 = [R 549] in - let r815 = S (N N_module_type) :: r814 in - let r816 = S (T T_MINUSGREATER) :: r815 in - let r817 = S (N N_functor_args) :: r816 in - let r818 = [R 563] in - let r819 = [R 1306] in - let r820 = Sub (r32) :: r819 in - let r821 = S (T T_COLONEQUAL) :: r820 in - let r822 = Sub (r510) :: r821 in - let r823 = [R 1305] in - let r824 = R 816 :: r823 in - let r825 = [R 817] in - let r826 = Sub (r34) :: r825 in - let r827 = S (T T_EQUAL) :: r826 in - let r828 = [R 507] in - let r829 = Sub (r60) :: r828 in - let r830 = [R 566] in - let r831 = Sub (r829) :: r830 in - let r832 = [R 1309] in - let r833 = S (N N_module_type) :: r832 in - let r834 = S (T T_EQUAL) :: r833 in - let r835 = Sub (r831) :: r834 in - let r836 = S (T T_TYPE) :: r835 in - let r837 = [R 559] in - let r838 = S (N N_module_type) :: r837 in - let r839 = [R 557] in - let r840 = [R 508] in - let r841 = Sub (r60) :: r840 in - let r842 = [R 1310] in - let r843 = [R 1307] in - let r844 = Sub (r250) :: r843 in - let r845 = S (T T_UIDENT) :: r469 in - let r846 = [R 1308] in - let r847 = S (T T_MODULE) :: r836 in - let r848 = [R 840] in - let r849 = [R 282] in - let r850 = [R 538] in - let r851 = [R 692] in - let r852 = S (T T_RPAREN) :: r851 in - let r853 = [R 693] in - let r854 = [R 694] in - let r855 = [R 436] in - let r856 = Sub (r3) :: r855 in - let r857 = S (T T_EQUAL) :: r856 in - let r858 = [R 151] in - let r859 = S (T T_DOWNTO) :: r858 in - let r860 = [R 180] in - let r861 = S (T T_DONE) :: r860 in - let r862 = Sub (r3) :: r861 in - let r863 = S (T T_DO) :: r862 in - let r864 = Sub (r3) :: r863 in - let r865 = Sub (r859) :: r864 in - let r866 = Sub (r3) :: r865 in - let r867 = S (T T_EQUAL) :: r866 in - let r868 = S (N N_pattern) :: r867 in - let r869 = R 450 :: r868 in - let r870 = [R 269] in - let r871 = [R 181] in - let r872 = Sub (r379) :: r871 in - let r873 = R 450 :: r872 in - let r874 = [R 962] in - let r875 = [R 963] in - let r876 = [R 938] in - let r877 = S (T T_RPAREN) :: r876 in - let r878 = Sub (r660) :: r877 in - let r879 = S (T T_LPAREN) :: r878 in - let r880 = [R 873] in - let r881 = Sub (r194) :: r880 in - let r882 = R 450 :: r881 in - let r883 = R 152 :: r882 in - let r884 = [R 183] in + let r558 = S (N N_pattern) :: r557 in + let r559 = R 454 :: r558 in + let r560 = [R 732] in + let r561 = [R 809] in + let r562 = [R 360] in + let r563 = [R 361] in + let r564 = S (T T_RPAREN) :: r563 in + let r565 = Sub (r34) :: r564 in + let r566 = S (T T_COLON) :: r565 in + let r567 = [R 359] in + let r568 = [R 125] in + let r569 = [R 722] in + let r570 = [R 730] in + let r571 = [R 731] in + let r572 = Sub (r524) :: r571 in + let r573 = S (T T_RPAREN) :: r572 in + let r574 = [R 364] in + let r575 = [R 365] in + let r576 = S (T T_RPAREN) :: r575 in + let r577 = Sub (r34) :: r576 in + let r578 = S (T T_COLON) :: r577 in + let r579 = [R 363] in + let r580 = [R 1017] in + let r581 = S (T T_RPAREN) :: r580 in + let r582 = Sub (r34) :: r581 in + let r583 = [R 726] in + let r584 = [R 725] in + let r585 = [R 123] in + let r586 = S (T T_RPAREN) :: r585 in + let r587 = [R 1015] in + let r588 = [R 482] in + let r589 = [R 928] in + let r590 = [R 930] in + let r591 = [R 395] in + let r592 = [R 734] in + let r593 = [R 815] in + let r594 = [R 380] in + let r595 = [R 381] in + let r596 = S (T T_RPAREN) :: r595 in + let r597 = Sub (r34) :: r596 in + let r598 = S (T T_COLON) :: r597 in + let r599 = [R 379] in + let r600 = [R 392] in + let r601 = [R 393] in + let r602 = S (T T_RPAREN) :: r601 in + let r603 = Sub (r34) :: r602 in + let r604 = S (T T_COLON) :: r603 in + let r605 = [R 391] in + let r606 = [R 817] in + let r607 = S (T T_DOTDOT) :: r606 in + let r608 = S (T T_COMMA) :: r607 in + let r609 = [R 388] in + let r610 = [R 389] in + let r611 = S (T T_RPAREN) :: r610 in + let r612 = Sub (r34) :: r611 in + let r613 = S (T T_COLON) :: r612 in + let r614 = [R 387] in + let r615 = [R 346] in + let r616 = [R 325] in + let r617 = S (T T_LIDENT) :: r616 in + let r618 = [R 344] in + let r619 = S (T T_RPAREN) :: r618 in + let r620 = [R 327] in + let r621 = [R 329] in + let r622 = Sub (r34) :: r621 in + let r623 = [R 26] in + let r624 = Sub (r262) :: r623 in + let r625 = [R 345] in + let r626 = S (T T_RPAREN) :: r625 in + let r627 = [R 340] in + let r628 = [R 338] in + let r629 = S (T T_RPAREN) :: r628 in + let r630 = R 682 :: r629 in + let r631 = [R 339] in + let r632 = S (T T_RPAREN) :: r631 in + let r633 = R 682 :: r632 in + let r634 = [R 683] in + let r635 = [R 168] in + let r636 = Sub (r3) :: r635 in + let r637 = S (T T_IN) :: r636 in + let r638 = S (N N_module_expr) :: r637 in + let r639 = R 454 :: r638 in + let r640 = R 152 :: r639 in + let r641 = [R 399] in + let r642 = Sub (r24) :: r641 in + let r643 = [R 419] in + let r644 = R 460 :: r643 in + let r645 = Sub (r642) :: r644 in + let r646 = R 760 :: r645 in + let r647 = R 454 :: r646 in + let r648 = R 152 :: r647 in + let r649 = [R 169] in + let r650 = Sub (r3) :: r649 in + let r651 = S (T T_IN) :: r650 in + let r652 = S (N N_module_expr) :: r651 in + let r653 = R 454 :: r652 in + let r654 = [R 699] in + let r655 = S (T T_RPAREN) :: r654 in + let r656 = [R 700] in + let r657 = S (T T_RPAREN) :: r656 in + let r658 = S (N N_fun_expr) :: r657 in + let r659 = [R 975] in + let r660 = [R 875] in + let r661 = S (N N_fun_expr) :: r660 in + let r662 = [R 978] in + let r663 = S (T T_RBRACKET) :: r662 in + let r664 = [R 960] in + let r665 = [R 881] in + let r666 = R 675 :: r665 in + let r667 = [R 676] in + let r668 = [R 887] in + let r669 = R 675 :: r668 in + let r670 = R 684 :: r669 in + let r671 = Sub (r513) :: r670 in + let r672 = [R 762] in + let r673 = Sub (r671) :: r672 in + let r674 = [R 971] in + let r675 = S (T T_RBRACE) :: r674 in + let r676 = [R 783] in + let r677 = S (N N_fun_expr) :: r676 in + let r678 = S (T T_COMMA) :: r677 in + let r679 = S (N N_fun_expr) :: r678 in + let r680 = [R 988] in + let r681 = S (T T_RPAREN) :: r680 in + let r682 = [R 183] in + let r683 = Sub (r380) :: r682 in + let r684 = R 454 :: r683 in + let r685 = [R 972] in + let r686 = S (T T_RBRACE) :: r685 in + let r687 = [R 935] in + let r688 = [R 933] in + let r689 = S (T T_GREATERDOT) :: r688 in + let r690 = [R 793] in + let r691 = S (N N_fun_expr) :: r690 in + let r692 = S (T T_COMMA) :: r691 in + let r693 = [R 949] in + let r694 = S (T T_END) :: r693 in + let r695 = R 454 :: r694 in + let r696 = [R 178] in + let r697 = S (N N_fun_expr) :: r696 in + let r698 = S (T T_THEN) :: r697 in + let r699 = Sub (r3) :: r698 in + let r700 = R 454 :: r699 in + let r701 = [R 891] in + let r702 = Sub (r195) :: r701 in + let r703 = R 454 :: r702 in + let r704 = [R 837] in + let r705 = [R 485] in + let r706 = Sub (r3) :: r705 in + let r707 = S (T T_MINUSGREATER) :: r706 in + let r708 = [R 351] in + let r709 = Sub (r524) :: r708 in + let r710 = [R 276] in + let r711 = Sub (r709) :: r710 in + let r712 = [R 822] in + let r713 = Sub (r711) :: r712 in + let r714 = [R 277] in + let r715 = Sub (r713) :: r714 in + let r716 = [R 164] in + let r717 = Sub (r1) :: r716 in + let r718 = [R 162] in + let r719 = Sub (r717) :: r718 in + let r720 = S (T T_MINUSGREATER) :: r719 in + let r721 = R 693 :: r720 in + let r722 = Sub (r715) :: r721 in + let r723 = R 454 :: r722 in + let r724 = [R 741] in + let r725 = S (T T_UNDERSCORE) :: r724 in + let r726 = [R 343] in + let r727 = [R 341] in + let r728 = S (T T_RPAREN) :: r727 in + let r729 = R 682 :: r728 in + let r730 = S (T T_ATAT) :: r624 in + let r731 = [R 436] in + let r732 = Sub (r730) :: r731 in + let r733 = Sub (r34) :: r732 in + let r734 = [R 435] in + let r735 = [R 437] in + let r736 = [R 430] in + let r737 = [R 426] in + let r738 = [R 428] in + let r739 = Sub (r34) :: r738 in + let r740 = [R 342] in + let r741 = S (T T_RPAREN) :: r740 in + let r742 = R 682 :: r741 in + let r743 = [R 582] in + let r744 = S (T T_LIDENT) :: r743 in + let r745 = [R 597] in + let r746 = Sub (r744) :: r745 in + let r747 = [R 584] in + let r748 = Sub (r746) :: r747 in + let r749 = [R 274] in + let r750 = S (T T_RPAREN) :: r749 in + let r751 = [R 583] in + let r752 = S (T T_RPAREN) :: r751 in + let r753 = Sub (r78) :: r752 in + let r754 = S (T T_COLON) :: r753 in + let r755 = [R 275] in + let r756 = S (T T_RPAREN) :: r755 in + let r757 = [R 357] in + let r758 = S (T T_RPAREN) :: r757 in + let r759 = Sub (r34) :: r758 in + let r760 = [R 431] in + let r761 = S (N N_pattern) :: r760 in + let r762 = [R 352] in + let r763 = S (T T_RPAREN) :: r762 in + let r764 = [R 432] in + let r765 = [R 433] in + let r766 = Sub (r34) :: r765 in + let r767 = [R 354] in + let r768 = [R 353] in + let r769 = [R 347] in + let r770 = [R 355] in + let r771 = S (T T_RPAREN) :: r770 in + let r772 = Sub (r34) :: r771 in + let r773 = [R 350] in + let r774 = S (T T_RPAREN) :: r773 in + let r775 = Sub (r730) :: r734 in + let r776 = [R 356] in + let r777 = S (T T_RPAREN) :: r776 in + let r778 = Sub (r34) :: r777 in + let r779 = [R 349] in + let r780 = [R 348] in + let r781 = [R 690] in + let r782 = [R 163] in + let r783 = Sub (r195) :: r782 in + let r784 = R 454 :: r783 in + let r785 = [R 788] in + let r786 = S (N N_fun_expr) :: r785 in + let r787 = [R 791] in + let r788 = [R 792] in + let r789 = S (T T_RPAREN) :: r788 in + let r790 = Sub (r206) :: r789 in + let r791 = [R 790] in + let r792 = [R 958] in + let r793 = [R 970] in + let r794 = S (T T_RPAREN) :: r793 in + let r795 = S (T T_LPAREN) :: r794 in + let r796 = S (T T_DOT) :: r795 in + let r797 = [R 987] in + let r798 = S (T T_RPAREN) :: r797 in + let r799 = S (N N_module_type) :: r798 in + let r800 = S (T T_COLON) :: r799 in + let r801 = S (N N_module_expr) :: r800 in + let r802 = R 454 :: r801 in + let r803 = [R 537] in + let r804 = S (N N_module_expr) :: r803 in + let r805 = S (T T_MINUSGREATER) :: r804 in + let r806 = S (N N_functor_args) :: r805 in + let r807 = [R 284] in + let r808 = [R 285] in + let r809 = S (T T_RPAREN) :: r808 in + let r810 = S (N N_module_type) :: r809 in + let r811 = [R 556] in + let r812 = S (T T_RPAREN) :: r811 in + let r813 = [R 559] in + let r814 = S (N N_module_type) :: r813 in + let r815 = [R 553] in + let r816 = S (N N_module_type) :: r815 in + let r817 = S (T T_MINUSGREATER) :: r816 in + let r818 = S (N N_functor_args) :: r817 in + let r819 = [R 567] in + let r820 = [R 1310] in + let r821 = Sub (r32) :: r820 in + let r822 = S (T T_COLONEQUAL) :: r821 in + let r823 = Sub (r513) :: r822 in + let r824 = [R 1309] in + let r825 = R 820 :: r824 in + let r826 = [R 821] in + let r827 = Sub (r34) :: r826 in + let r828 = S (T T_EQUAL) :: r827 in + let r829 = [R 511] in + let r830 = Sub (r60) :: r829 in + let r831 = [R 570] in + let r832 = Sub (r830) :: r831 in + let r833 = [R 1313] in + let r834 = S (N N_module_type) :: r833 in + let r835 = S (T T_EQUAL) :: r834 in + let r836 = Sub (r832) :: r835 in + let r837 = S (T T_TYPE) :: r836 in + let r838 = [R 563] in + let r839 = S (N N_module_type) :: r838 in + let r840 = [R 561] in + let r841 = [R 512] in + let r842 = Sub (r60) :: r841 in + let r843 = [R 1314] in + let r844 = [R 1311] in + let r845 = Sub (r251) :: r844 in + let r846 = S (T T_UIDENT) :: r470 in + let r847 = [R 1312] in + let r848 = S (T T_MODULE) :: r837 in + let r849 = [R 844] in + let r850 = [R 286] in + let r851 = [R 542] in + let r852 = [R 696] in + let r853 = S (T T_RPAREN) :: r852 in + let r854 = [R 697] in + let r855 = [R 698] in + let r856 = [R 440] in + let r857 = Sub (r3) :: r856 in + let r858 = S (T T_EQUAL) :: r857 in + let r859 = [R 151] in + let r860 = S (T T_DOWNTO) :: r859 in + let r861 = [R 181] in + let r862 = S (T T_DONE) :: r861 in + let r863 = Sub (r3) :: r862 in + let r864 = S (T T_DO) :: r863 in + let r865 = Sub (r3) :: r864 in + let r866 = Sub (r860) :: r865 in + let r867 = Sub (r3) :: r866 in + let r868 = S (T T_EQUAL) :: r867 in + let r869 = S (N N_pattern) :: r868 in + let r870 = R 454 :: r869 in + let r871 = [R 273] in + let r872 = [R 182] in + let r873 = Sub (r380) :: r872 in + let r874 = R 454 :: r873 in + let r875 = [R 966] in + let r876 = [R 967] in + let r877 = [R 942] in + let r878 = S (T T_RPAREN) :: r877 in + let r879 = Sub (r661) :: r878 in + let r880 = S (T T_LPAREN) :: r879 in + let r881 = [R 877] in + let r882 = Sub (r195) :: r881 in + let r883 = R 454 :: r882 in + let r884 = R 152 :: r883 in let r885 = [R 184] in - let r886 = Sub (r194) :: r885 in - let r887 = R 450 :: r886 in - let r888 = [R 330] in - let r889 = [R 331] in - let r890 = S (T T_RPAREN) :: r889 in - let r891 = Sub (r205) :: r890 in - let r892 = [R 332] in - let r893 = [R 333] in - let r894 = [R 961] in - let r895 = [R 958] in - let r896 = [R 935] in - let r897 = S (T T_RPAREN) :: r896 in - let r898 = Sub (r3) :: r897 in - let r899 = S (T T_LPAREN) :: r898 in - let r900 = [R 774] in - let r901 = [R 777] in - let r902 = [R 778] in - let r903 = S (T T_RPAREN) :: r902 in - let r904 = Sub (r205) :: r903 in - let r905 = [R 776] in - let r906 = [R 775] in - let r907 = Sub (r194) :: r906 in - let r908 = R 450 :: r907 in - let r909 = [R 834] in - let r910 = [R 239] in - let r911 = Sub (r3) :: r910 in - let r912 = [R 219] in - let r913 = [R 220] in - let r914 = Sub (r194) :: r913 in - let r915 = R 450 :: r914 in - let r916 = [R 207] in - let r917 = [R 208] in - let r918 = Sub (r194) :: r917 in - let r919 = R 450 :: r918 in - let r920 = [R 185] in + let r886 = [R 185] in + let r887 = Sub (r195) :: r886 in + let r888 = R 454 :: r887 in + let r889 = [R 334] in + let r890 = [R 335] in + let r891 = S (T T_RPAREN) :: r890 in + let r892 = Sub (r206) :: r891 in + let r893 = [R 336] in + let r894 = [R 337] in + let r895 = [R 965] in + let r896 = [R 962] in + let r897 = [R 939] in + let r898 = S (T T_RPAREN) :: r897 in + let r899 = Sub (r3) :: r898 in + let r900 = S (T T_LPAREN) :: r899 in + let r901 = [R 778] in + let r902 = [R 781] in + let r903 = [R 782] in + let r904 = S (T T_RPAREN) :: r903 in + let r905 = Sub (r206) :: r904 in + let r906 = [R 780] in + let r907 = [R 779] in + let r908 = Sub (r195) :: r907 in + let r909 = R 454 :: r908 in + let r910 = [R 838] in + let r911 = [R 243] in + let r912 = Sub (r3) :: r911 in + let r913 = [R 223] in + let r914 = [R 224] in + let r915 = Sub (r195) :: r914 in + let r916 = R 454 :: r915 in + let r917 = [R 211] in + let r918 = [R 212] in + let r919 = Sub (r195) :: r918 in + let r920 = R 454 :: r919 in let r921 = [R 186] in - let r922 = Sub (r194) :: r921 in - let r923 = R 450 :: r922 in - let r924 = [R 277] in - let r925 = Sub (r3) :: r924 in - let r926 = [R 213] in - let r927 = [R 214] in - let r928 = Sub (r194) :: r927 in - let r929 = R 450 :: r928 in - let r930 = [R 221] in - let r931 = [R 222] in - let r932 = Sub (r194) :: r931 in - let r933 = R 450 :: r932 in - let r934 = [R 205] in - let r935 = [R 206] in - let r936 = Sub (r194) :: r935 in - let r937 = R 450 :: r936 in - let r938 = [R 203] in - let r939 = [R 204] in - let r940 = Sub (r194) :: r939 in - let r941 = R 450 :: r940 in - let r942 = [R 211] in - let r943 = [R 212] in - let r944 = Sub (r194) :: r943 in - let r945 = R 450 :: r944 in - let r946 = [R 209] in - let r947 = [R 210] in - let r948 = Sub (r194) :: r947 in - let r949 = R 450 :: r948 in - let r950 = [R 229] in - let r951 = [R 230] in - let r952 = Sub (r194) :: r951 in - let r953 = R 450 :: r952 in - let r954 = [R 217] in - let r955 = [R 218] in - let r956 = Sub (r194) :: r955 in - let r957 = R 450 :: r956 in - let r958 = [R 215] in - let r959 = [R 216] in - let r960 = Sub (r194) :: r959 in - let r961 = R 450 :: r960 in - let r962 = [R 225] in - let r963 = [R 226] in - let r964 = Sub (r194) :: r963 in - let r965 = R 450 :: r964 in - let r966 = [R 201] in - let r967 = [R 202] in - let r968 = Sub (r194) :: r967 in - let r969 = R 450 :: r968 in - let r970 = [R 199] in - let r971 = [R 200] in - let r972 = Sub (r194) :: r971 in - let r973 = R 450 :: r972 in - let r974 = [R 241] in - let r975 = [R 242] in - let r976 = Sub (r194) :: r975 in - let r977 = R 450 :: r976 in - let r978 = [R 197] in - let r979 = [R 198] in - let r980 = Sub (r194) :: r979 in - let r981 = R 450 :: r980 in - let r982 = [R 195] in - let r983 = [R 196] in - let r984 = Sub (r194) :: r983 in - let r985 = R 450 :: r984 in - let r986 = [R 193] in - let r987 = [R 194] in - let r988 = Sub (r194) :: r987 in - let r989 = R 450 :: r988 in - let r990 = [R 227] in - let r991 = [R 228] in - let r992 = Sub (r194) :: r991 in - let r993 = R 450 :: r992 in - let r994 = [R 223] in - let r995 = [R 224] in - let r996 = Sub (r194) :: r995 in - let r997 = R 450 :: r996 in - let r998 = [R 231] in - let r999 = [R 232] in - let r1000 = Sub (r194) :: r999 in - let r1001 = R 450 :: r1000 in - let r1002 = [R 233] in - let r1003 = [R 234] in - let r1004 = Sub (r194) :: r1003 in - let r1005 = R 450 :: r1004 in - let r1006 = [R 235] in - let r1007 = [R 236] in - let r1008 = Sub (r194) :: r1007 in - let r1009 = R 450 :: r1008 in - let r1010 = [R 782] in - let r1011 = [R 783] in - let r1012 = S (T T_RPAREN) :: r1011 in - let r1013 = Sub (r205) :: r1012 in - let r1014 = [R 781] in - let r1015 = [R 780] in - let r1016 = Sub (r194) :: r1015 in - let r1017 = R 450 :: r1016 in - let r1018 = [R 237] in - let r1019 = [R 238] in - let r1020 = Sub (r194) :: r1019 in - let r1021 = R 450 :: r1020 in - let r1022 = [R 21] in - let r1023 = R 456 :: r1022 in - let r1024 = Sub (r641) :: r1023 in - let r1025 = [R 1069] in - let r1026 = Sub (r3) :: r1025 in - let r1027 = S (T T_EQUAL) :: r1026 in - let r1028 = [R 414] in - let r1029 = Sub (r1027) :: r1028 in - let r1030 = [R 1070] in - let r1031 = Sub (r716) :: r1030 in - let r1032 = S (T T_EQUAL) :: r1031 in - let r1033 = [R 407] in - let r1034 = Sub (r3) :: r1033 in - let r1035 = S (T T_EQUAL) :: r1034 in - let r1036 = Sub (r34) :: r1035 in - let r1037 = S (T T_DOT) :: r1036 in - let r1038 = [R 408] in - let r1039 = Sub (r3) :: r1038 in - let r1040 = [R 403] in - let r1041 = Sub (r3) :: r1040 in - let r1042 = S (T T_EQUAL) :: r1041 in - let r1043 = Sub (r34) :: r1042 in - let r1044 = [R 404] in - let r1045 = Sub (r3) :: r1044 in - let r1046 = [R 397] in - let r1047 = Sub (r3) :: r1046 in - let r1048 = [R 398] in - let r1049 = Sub (r3) :: r1048 in - let r1050 = [R 399] in - let r1051 = Sub (r3) :: r1050 in - let r1052 = [R 411] in - let r1053 = Sub (r3) :: r1052 in - let r1054 = S (T T_EQUAL) :: r1053 in - let r1055 = [R 412] in - let r1056 = Sub (r3) :: r1055 in - let r1057 = [R 410] in - let r1058 = Sub (r3) :: r1057 in - let r1059 = [R 409] in - let r1060 = Sub (r3) :: r1059 in - let r1061 = [R 812] in - let r1062 = [R 380] in - let r1063 = [R 381] in - let r1064 = S (T T_RPAREN) :: r1063 in - let r1065 = Sub (r34) :: r1064 in - let r1066 = S (T T_COLON) :: r1065 in - let r1067 = [R 379] in - let r1068 = [R 734] in - let r1069 = [R 733] in - let r1070 = [R 413] in - let r1071 = Sub (r1027) :: r1070 in - let r1072 = [R 405] in - let r1073 = Sub (r3) :: r1072 in - let r1074 = S (T T_EQUAL) :: r1073 in - let r1075 = Sub (r34) :: r1074 in - let r1076 = [R 406] in - let r1077 = Sub (r3) :: r1076 in - let r1078 = [R 400] in - let r1079 = Sub (r3) :: r1078 in - let r1080 = [R 401] in - let r1081 = Sub (r3) :: r1080 in - let r1082 = [R 402] in - let r1083 = Sub (r3) :: r1082 in - let r1084 = [R 457] in - let r1085 = [R 937] in - let r1086 = S (T T_RBRACKET) :: r1085 in - let r1087 = Sub (r3) :: r1086 in - let r1088 = [R 936] in - let r1089 = S (T T_RBRACE) :: r1088 in - let r1090 = Sub (r3) :: r1089 in - let r1091 = [R 939] in - let r1092 = S (T T_RPAREN) :: r1091 in - let r1093 = Sub (r660) :: r1092 in - let r1094 = S (T T_LPAREN) :: r1093 in - let r1095 = [R 943] in - let r1096 = S (T T_RBRACKET) :: r1095 in - let r1097 = Sub (r660) :: r1096 in - let r1098 = [R 941] in - let r1099 = S (T T_RBRACE) :: r1098 in - let r1100 = Sub (r660) :: r1099 in - let r1101 = [R 329] in - let r1102 = [R 253] in - let r1103 = [R 254] in - let r1104 = Sub (r194) :: r1103 in - let r1105 = R 450 :: r1104 in - let r1106 = [R 942] in - let r1107 = S (T T_RBRACKET) :: r1106 in - let r1108 = Sub (r660) :: r1107 in - let r1109 = [R 261] in - let r1110 = [R 262] in - let r1111 = Sub (r194) :: r1110 in - let r1112 = R 450 :: r1111 in - let r1113 = [R 940] in - let r1114 = S (T T_RBRACE) :: r1113 in - let r1115 = Sub (r660) :: r1114 in - let r1116 = [R 257] in - let r1117 = [R 258] in - let r1118 = Sub (r194) :: r1117 in - let r1119 = R 450 :: r1118 in - let r1120 = [R 247] in - let r1121 = [R 248] in - let r1122 = Sub (r194) :: r1121 in - let r1123 = R 450 :: r1122 in - let r1124 = [R 251] in - let r1125 = [R 252] in - let r1126 = Sub (r194) :: r1125 in - let r1127 = R 450 :: r1126 in - let r1128 = [R 249] in - let r1129 = [R 250] in - let r1130 = Sub (r194) :: r1129 in - let r1131 = R 450 :: r1130 in - let r1132 = [R 255] in - let r1133 = [R 256] in - let r1134 = Sub (r194) :: r1133 in - let r1135 = R 450 :: r1134 in - let r1136 = [R 263] in - let r1137 = [R 264] in - let r1138 = Sub (r194) :: r1137 in - let r1139 = R 450 :: r1138 in - let r1140 = [R 259] in - let r1141 = [R 260] in - let r1142 = Sub (r194) :: r1141 in - let r1143 = R 450 :: r1142 in - let r1144 = [R 245] in - let r1145 = [R 246] in - let r1146 = Sub (r194) :: r1145 in - let r1147 = R 450 :: r1146 in - let r1148 = [R 437] in - let r1149 = Sub (r3) :: r1148 in - let r1150 = [R 439] in - let r1151 = [R 959] in - let r1152 = [R 988] in - let r1153 = [R 98] in - let r1154 = [R 99] in - let r1155 = Sub (r194) :: r1154 in - let r1156 = R 450 :: r1155 in - let r1157 = [R 111] in - let r1158 = S (N N_fun_expr) :: r1157 in - let r1159 = S (T T_IN) :: r1158 in - let r1160 = [R 100] in - let r1161 = Sub (r1159) :: r1160 in - let r1162 = S (N N_pattern) :: r1161 in - let r1163 = R 450 :: r1162 in - let r1164 = [R 837] in - let r1165 = Sub (r1163) :: r1164 in - let r1166 = [R 97] in - let r1167 = [R 838] in - let r1168 = [R 103] in - let r1169 = S (N N_fun_expr) :: r1168 in - let r1170 = S (T T_IN) :: r1169 in - let r1171 = [R 104] in - let r1172 = Sub (r194) :: r1171 in - let r1173 = R 450 :: r1172 in - let r1174 = [R 105] in - let r1175 = S (N N_fun_expr) :: r1174 in - let r1176 = S (T T_IN) :: r1175 in - let r1177 = [R 106] in - let r1178 = Sub (r194) :: r1177 in - let r1179 = R 450 :: r1178 in - let r1180 = [R 101] in - let r1181 = S (N N_fun_expr) :: r1180 in - let r1182 = S (T T_IN) :: r1181 in - let r1183 = [R 102] in - let r1184 = Sub (r194) :: r1183 in - let r1185 = R 450 :: r1184 in - let r1186 = [R 112] in - let r1187 = Sub (r194) :: r1186 in - let r1188 = R 450 :: r1187 in - let r1189 = [R 107] in - let r1190 = S (N N_fun_expr) :: r1189 in - let r1191 = Sub (r859) :: r1190 in - let r1192 = [R 109] in - let r1193 = S (N N_fun_expr) :: r1192 in - let r1194 = Sub (r859) :: r1193 in - let r1195 = Sub (r194) :: r1194 in - let r1196 = R 450 :: r1195 in - let r1197 = [R 110] in - let r1198 = Sub (r194) :: r1197 in - let r1199 = R 450 :: r1198 in - let r1200 = [R 108] in - let r1201 = Sub (r194) :: r1200 in - let r1202 = R 450 :: r1201 in - let r1203 = [R 980] in - let r1204 = [R 987] in - let r1205 = [R 979] in - let r1206 = [R 973] in - let r1207 = [R 978] in - let r1208 = [R 972] in - let r1209 = [R 977] in - let r1210 = [R 982] in - let r1211 = [R 976] in - let r1212 = [R 981] in - let r1213 = [R 975] in - let r1214 = S (T T_LIDENT) :: r665 in - let r1215 = [R 960] in - let r1216 = S (T T_GREATERRBRACE) :: r1215 in - let r1217 = [R 969] in - let r1218 = S (T T_RBRACE) :: r1217 in - let r1219 = [R 759] in - let r1220 = Sub (r670) :: r1219 in - let r1221 = [R 785] in - let r1222 = Sub (r194) :: r1221 in - let r1223 = R 450 :: r1222 in - let r1224 = [R 178] in - let r1225 = Sub (r194) :: r1224 in - let r1226 = R 450 :: r1225 in - let r1227 = [R 175] in + let r922 = [R 187] in + let r923 = Sub (r195) :: r922 in + let r924 = R 454 :: r923 in + let r925 = [R 281] in + let r926 = Sub (r3) :: r925 in + let r927 = [R 217] in + let r928 = [R 218] in + let r929 = Sub (r195) :: r928 in + let r930 = R 454 :: r929 in + let r931 = [R 225] in + let r932 = [R 226] in + let r933 = Sub (r195) :: r932 in + let r934 = R 454 :: r933 in + let r935 = [R 209] in + let r936 = [R 210] in + let r937 = Sub (r195) :: r936 in + let r938 = R 454 :: r937 in + let r939 = [R 207] in + let r940 = [R 208] in + let r941 = Sub (r195) :: r940 in + let r942 = R 454 :: r941 in + let r943 = [R 215] in + let r944 = [R 216] in + let r945 = Sub (r195) :: r944 in + let r946 = R 454 :: r945 in + let r947 = [R 213] in + let r948 = [R 214] in + let r949 = Sub (r195) :: r948 in + let r950 = R 454 :: r949 in + let r951 = [R 233] in + let r952 = [R 234] in + let r953 = Sub (r195) :: r952 in + let r954 = R 454 :: r953 in + let r955 = [R 221] in + let r956 = [R 222] in + let r957 = Sub (r195) :: r956 in + let r958 = R 454 :: r957 in + let r959 = [R 219] in + let r960 = [R 220] in + let r961 = Sub (r195) :: r960 in + let r962 = R 454 :: r961 in + let r963 = [R 229] in + let r964 = [R 230] in + let r965 = Sub (r195) :: r964 in + let r966 = R 454 :: r965 in + let r967 = [R 205] in + let r968 = [R 206] in + let r969 = Sub (r195) :: r968 in + let r970 = R 454 :: r969 in + let r971 = [R 203] in + let r972 = [R 204] in + let r973 = Sub (r195) :: r972 in + let r974 = R 454 :: r973 in + let r975 = [R 245] in + let r976 = [R 246] in + let r977 = Sub (r195) :: r976 in + let r978 = R 454 :: r977 in + let r979 = [R 201] in + let r980 = [R 202] in + let r981 = Sub (r195) :: r980 in + let r982 = R 454 :: r981 in + let r983 = [R 199] in + let r984 = [R 200] in + let r985 = Sub (r195) :: r984 in + let r986 = R 454 :: r985 in + let r987 = [R 197] in + let r988 = [R 198] in + let r989 = Sub (r195) :: r988 in + let r990 = R 454 :: r989 in + let r991 = [R 231] in + let r992 = [R 232] in + let r993 = Sub (r195) :: r992 in + let r994 = R 454 :: r993 in + let r995 = [R 227] in + let r996 = [R 228] in + let r997 = Sub (r195) :: r996 in + let r998 = R 454 :: r997 in + let r999 = [R 235] in + let r1000 = [R 236] in + let r1001 = Sub (r195) :: r1000 in + let r1002 = R 454 :: r1001 in + let r1003 = [R 237] in + let r1004 = [R 238] in + let r1005 = Sub (r195) :: r1004 in + let r1006 = R 454 :: r1005 in + let r1007 = [R 239] in + let r1008 = [R 240] in + let r1009 = Sub (r195) :: r1008 in + let r1010 = R 454 :: r1009 in + let r1011 = [R 786] in + let r1012 = [R 787] in + let r1013 = S (T T_RPAREN) :: r1012 in + let r1014 = Sub (r206) :: r1013 in + let r1015 = [R 785] in + let r1016 = [R 784] in + let r1017 = Sub (r195) :: r1016 in + let r1018 = R 454 :: r1017 in + let r1019 = [R 241] in + let r1020 = [R 242] in + let r1021 = Sub (r195) :: r1020 in + let r1022 = R 454 :: r1021 in + let r1023 = [R 21] in + let r1024 = R 460 :: r1023 in + let r1025 = Sub (r642) :: r1024 in + let r1026 = [R 1073] in + let r1027 = Sub (r3) :: r1026 in + let r1028 = S (T T_EQUAL) :: r1027 in + let r1029 = [R 418] in + let r1030 = Sub (r1028) :: r1029 in + let r1031 = [R 1074] in + let r1032 = Sub (r717) :: r1031 in + let r1033 = S (T T_EQUAL) :: r1032 in + let r1034 = [R 411] in + let r1035 = Sub (r3) :: r1034 in + let r1036 = S (T T_EQUAL) :: r1035 in + let r1037 = Sub (r34) :: r1036 in + let r1038 = S (T T_DOT) :: r1037 in + let r1039 = [R 412] in + let r1040 = Sub (r3) :: r1039 in + let r1041 = [R 407] in + let r1042 = Sub (r3) :: r1041 in + let r1043 = S (T T_EQUAL) :: r1042 in + let r1044 = Sub (r34) :: r1043 in + let r1045 = [R 408] in + let r1046 = Sub (r3) :: r1045 in + let r1047 = [R 401] in + let r1048 = Sub (r3) :: r1047 in + let r1049 = [R 402] in + let r1050 = Sub (r3) :: r1049 in + let r1051 = [R 403] in + let r1052 = Sub (r3) :: r1051 in + let r1053 = [R 415] in + let r1054 = Sub (r3) :: r1053 in + let r1055 = S (T T_EQUAL) :: r1054 in + let r1056 = [R 416] in + let r1057 = Sub (r3) :: r1056 in + let r1058 = [R 414] in + let r1059 = Sub (r3) :: r1058 in + let r1060 = [R 413] in + let r1061 = Sub (r3) :: r1060 in + let r1062 = [R 816] in + let r1063 = [R 384] in + let r1064 = [R 385] in + let r1065 = S (T T_RPAREN) :: r1064 in + let r1066 = Sub (r34) :: r1065 in + let r1067 = S (T T_COLON) :: r1066 in + let r1068 = [R 383] in + let r1069 = [R 738] in + let r1070 = [R 737] in + let r1071 = [R 417] in + let r1072 = Sub (r1028) :: r1071 in + let r1073 = [R 409] in + let r1074 = Sub (r3) :: r1073 in + let r1075 = S (T T_EQUAL) :: r1074 in + let r1076 = Sub (r34) :: r1075 in + let r1077 = [R 410] in + let r1078 = Sub (r3) :: r1077 in + let r1079 = [R 404] in + let r1080 = Sub (r3) :: r1079 in + let r1081 = [R 405] in + let r1082 = Sub (r3) :: r1081 in + let r1083 = [R 406] in + let r1084 = Sub (r3) :: r1083 in + let r1085 = [R 461] in + let r1086 = [R 941] in + let r1087 = S (T T_RBRACKET) :: r1086 in + let r1088 = Sub (r3) :: r1087 in + let r1089 = [R 940] in + let r1090 = S (T T_RBRACE) :: r1089 in + let r1091 = Sub (r3) :: r1090 in + let r1092 = [R 943] in + let r1093 = S (T T_RPAREN) :: r1092 in + let r1094 = Sub (r661) :: r1093 in + let r1095 = S (T T_LPAREN) :: r1094 in + let r1096 = [R 947] in + let r1097 = S (T T_RBRACKET) :: r1096 in + let r1098 = Sub (r661) :: r1097 in + let r1099 = [R 945] in + let r1100 = S (T T_RBRACE) :: r1099 in + let r1101 = Sub (r661) :: r1100 in + let r1102 = [R 333] in + let r1103 = [R 257] in + let r1104 = [R 258] in + let r1105 = Sub (r195) :: r1104 in + let r1106 = R 454 :: r1105 in + let r1107 = [R 946] in + let r1108 = S (T T_RBRACKET) :: r1107 in + let r1109 = Sub (r661) :: r1108 in + let r1110 = [R 265] in + let r1111 = [R 266] in + let r1112 = Sub (r195) :: r1111 in + let r1113 = R 454 :: r1112 in + let r1114 = [R 944] in + let r1115 = S (T T_RBRACE) :: r1114 in + let r1116 = Sub (r661) :: r1115 in + let r1117 = [R 261] in + let r1118 = [R 262] in + let r1119 = Sub (r195) :: r1118 in + let r1120 = R 454 :: r1119 in + let r1121 = [R 251] in + let r1122 = [R 252] in + let r1123 = Sub (r195) :: r1122 in + let r1124 = R 454 :: r1123 in + let r1125 = [R 255] in + let r1126 = [R 256] in + let r1127 = Sub (r195) :: r1126 in + let r1128 = R 454 :: r1127 in + let r1129 = [R 253] in + let r1130 = [R 254] in + let r1131 = Sub (r195) :: r1130 in + let r1132 = R 454 :: r1131 in + let r1133 = [R 259] in + let r1134 = [R 260] in + let r1135 = Sub (r195) :: r1134 in + let r1136 = R 454 :: r1135 in + let r1137 = [R 267] in + let r1138 = [R 268] in + let r1139 = Sub (r195) :: r1138 in + let r1140 = R 454 :: r1139 in + let r1141 = [R 263] in + let r1142 = [R 264] in + let r1143 = Sub (r195) :: r1142 in + let r1144 = R 454 :: r1143 in + let r1145 = [R 249] in + let r1146 = [R 250] in + let r1147 = Sub (r195) :: r1146 in + let r1148 = R 454 :: r1147 in + let r1149 = [R 441] in + let r1150 = Sub (r3) :: r1149 in + let r1151 = [R 443] in + let r1152 = [R 963] in + let r1153 = [R 992] in + let r1154 = [R 98] in + let r1155 = [R 99] in + let r1156 = Sub (r195) :: r1155 in + let r1157 = R 454 :: r1156 in + let r1158 = [R 111] in + let r1159 = S (N N_fun_expr) :: r1158 in + let r1160 = S (T T_IN) :: r1159 in + let r1161 = [R 100] in + let r1162 = Sub (r1160) :: r1161 in + let r1163 = S (N N_pattern) :: r1162 in + let r1164 = R 454 :: r1163 in + let r1165 = [R 841] in + let r1166 = Sub (r1164) :: r1165 in + let r1167 = [R 97] in + let r1168 = [R 842] in + let r1169 = [R 103] in + let r1170 = S (N N_fun_expr) :: r1169 in + let r1171 = S (T T_IN) :: r1170 in + let r1172 = [R 104] in + let r1173 = Sub (r195) :: r1172 in + let r1174 = R 454 :: r1173 in + let r1175 = [R 105] in + let r1176 = S (N N_fun_expr) :: r1175 in + let r1177 = S (T T_IN) :: r1176 in + let r1178 = [R 106] in + let r1179 = Sub (r195) :: r1178 in + let r1180 = R 454 :: r1179 in + let r1181 = [R 101] in + let r1182 = S (N N_fun_expr) :: r1181 in + let r1183 = S (T T_IN) :: r1182 in + let r1184 = [R 102] in + let r1185 = Sub (r195) :: r1184 in + let r1186 = R 454 :: r1185 in + let r1187 = [R 112] in + let r1188 = Sub (r195) :: r1187 in + let r1189 = R 454 :: r1188 in + let r1190 = [R 107] in + let r1191 = S (N N_fun_expr) :: r1190 in + let r1192 = Sub (r860) :: r1191 in + let r1193 = [R 109] in + let r1194 = S (N N_fun_expr) :: r1193 in + let r1195 = Sub (r860) :: r1194 in + let r1196 = Sub (r195) :: r1195 in + let r1197 = R 454 :: r1196 in + let r1198 = [R 110] in + let r1199 = Sub (r195) :: r1198 in + let r1200 = R 454 :: r1199 in + let r1201 = [R 108] in + let r1202 = Sub (r195) :: r1201 in + let r1203 = R 454 :: r1202 in + let r1204 = [R 984] in + let r1205 = [R 991] in + let r1206 = [R 983] in + let r1207 = [R 977] in + let r1208 = [R 982] in + let r1209 = [R 976] in + let r1210 = [R 981] in + let r1211 = [R 986] in + let r1212 = [R 980] in + let r1213 = [R 985] in + let r1214 = [R 979] in + let r1215 = S (T T_LIDENT) :: r666 in + let r1216 = [R 964] in + let r1217 = S (T T_GREATERRBRACE) :: r1216 in + let r1218 = [R 973] in + let r1219 = S (T T_RBRACE) :: r1218 in + let r1220 = [R 763] in + let r1221 = Sub (r671) :: r1220 in + let r1222 = [R 789] in + let r1223 = Sub (r195) :: r1222 in + let r1224 = R 454 :: r1223 in + let r1225 = [R 179] in + let r1226 = Sub (r195) :: r1225 in + let r1227 = R 454 :: r1226 in let r1228 = [R 176] in - let r1229 = Sub (r194) :: r1228 in - let r1230 = R 450 :: r1229 in - let r1231 = [R 173] in + let r1229 = [R 177] in + let r1230 = Sub (r195) :: r1229 in + let r1231 = R 454 :: r1230 in let r1232 = [R 174] in - let r1233 = Sub (r194) :: r1232 in - let r1234 = R 450 :: r1233 in - let r1235 = [R 944] in - let r1236 = [R 792] in - let r1237 = [R 793] in - let r1238 = S (T T_RPAREN) :: r1237 in - let r1239 = Sub (r205) :: r1238 in - let r1240 = [R 791] in - let r1241 = [R 790] in - let r1242 = Sub (r194) :: r1241 in - let r1243 = R 450 :: r1242 in - let r1244 = [R 930] in - let r1245 = S (T T_GREATERDOT) :: r1244 in - let r1246 = Sub (r194) :: r1245 in - let r1247 = R 450 :: r1246 in - let r1248 = S (T T_COMMA) :: r785 in - let r1249 = Sub (r194) :: r1248 in - let r1250 = R 450 :: r1249 in - let r1251 = [R 673] in - let r1252 = Sub (r194) :: r1251 in - let r1253 = R 450 :: r1252 in - let r1254 = [R 955] in - let r1255 = [R 991] in - let r1256 = [R 990] in - let r1257 = [R 993] in - let r1258 = [R 970] in - let r1259 = [R 992] in - let r1260 = [R 697] in - let r1261 = S (T T_RPAREN) :: r1260 in - let r1262 = Sub (r194) :: r1261 in - let r1263 = R 450 :: r1262 in - let r1264 = [R 703] in - let r1265 = S (T T_RPAREN) :: r1264 in - let r1266 = [R 699] in - let r1267 = S (T T_RPAREN) :: r1266 in - let r1268 = [R 701] in - let r1269 = S (T T_RPAREN) :: r1268 in - let r1270 = [R 702] in - let r1271 = S (T T_RPAREN) :: r1270 in - let r1272 = [R 698] in - let r1273 = S (T T_RPAREN) :: r1272 in - let r1274 = [R 700] in - let r1275 = S (T T_RPAREN) :: r1274 in - let r1276 = [R 545] in - let r1277 = Sub (r410) :: r1276 in - let r1278 = [R 522] in - let r1279 = S (N N_module_expr) :: r1278 in - let r1280 = S (T T_EQUAL) :: r1279 in - let r1281 = [R 165] in - let r1282 = Sub (r3) :: r1281 in - let r1283 = S (T T_IN) :: r1282 in - let r1284 = Sub (r1280) :: r1283 in - let r1285 = Sub (r1277) :: r1284 in - let r1286 = R 450 :: r1285 in - let r1287 = S (T T_AT) :: r263 in - let r1288 = [R 546] in - let r1289 = S (T T_RPAREN) :: r1288 in - let r1290 = Sub (r1287) :: r1289 in - let r1291 = [R 523] in - let r1292 = S (N N_module_expr) :: r1291 in - let r1293 = S (T T_EQUAL) :: r1292 in - let r1294 = [R 524] in - let r1295 = S (N N_module_expr) :: r1294 in - let r1296 = [R 526] in - let r1297 = [R 525] in - let r1298 = S (N N_module_expr) :: r1297 in - let r1299 = [R 166] in - let r1300 = Sub (r3) :: r1299 in - let r1301 = S (T T_IN) :: r1300 in - let r1302 = R 450 :: r1301 in - let r1303 = R 284 :: r1302 in - let r1304 = Sub (r127) :: r1303 in - let r1305 = R 450 :: r1304 in - let r1306 = [R 127] in - let r1307 = R 684 :: r1306 in - let r1308 = Sub (r26) :: r1307 in - let r1309 = [R 285] in - let r1310 = [R 745] in - let r1311 = Sub (r32) :: r1310 in - let r1312 = [R 316] in - let r1313 = R 450 :: r1312 in - let r1314 = R 684 :: r1313 in - let r1315 = Sub (r1311) :: r1314 in - let r1316 = S (T T_COLON) :: r1315 in - let r1317 = S (T T_LIDENT) :: r1316 in - let r1318 = R 569 :: r1317 in - let r1319 = [R 318] in - let r1320 = Sub (r1318) :: r1319 in - let r1321 = [R 131] in - let r1322 = S (T T_RBRACE) :: r1321 in - let r1323 = [R 317] in - let r1324 = R 450 :: r1323 in - let r1325 = S (T T_SEMI) :: r1324 in - let r1326 = R 450 :: r1325 in - let r1327 = R 684 :: r1326 in - let r1328 = Sub (r1311) :: r1327 in - let r1329 = S (T T_COLON) :: r1328 in - let r1330 = [R 746] in - let r1331 = Sub (r32) :: r1330 in - let r1332 = [R 128] in - let r1333 = R 684 :: r1332 in - let r1334 = [R 129] in - let r1335 = R 684 :: r1334 in - let r1336 = Sub (r26) :: r1335 in - let r1337 = [R 130] in - let r1338 = R 684 :: r1337 in - let r1339 = [R 288] in - let r1340 = [R 865] in - let r1341 = Sub (r78) :: r1340 in - let r1342 = S (T T_COLON) :: r1341 in - let r1343 = [R 864] in - let r1344 = Sub (r78) :: r1343 in - let r1345 = S (T T_COLON) :: r1344 in - let r1346 = [R 289] in - let r1347 = Sub (r26) :: r1346 in - let r1348 = [R 287] in - let r1349 = Sub (r26) :: r1348 in - let r1350 = [R 286] in - let r1351 = Sub (r26) :: r1350 in - let r1352 = [R 244] in - let r1353 = Sub (r194) :: r1352 in - let r1354 = R 450 :: r1353 in - let r1355 = [R 995] in - let r1356 = [R 985] in - let r1357 = [R 994] in - let r1358 = [R 947] in - let r1359 = S (T T_RPAREN) :: r1358 in - let r1360 = S (N N_module_expr) :: r1359 in - let r1361 = R 450 :: r1360 in - let r1362 = [R 948] in - let r1363 = S (T T_RPAREN) :: r1362 in - let r1364 = [R 933] in - let r1365 = [R 934] in - let r1366 = [R 172] in - let r1367 = Sub (r194) :: r1366 in - let r1368 = R 450 :: r1367 in - let r1369 = [R 617] in - let r1370 = R 456 :: r1369 in - let r1371 = S (N N_module_expr) :: r1370 in - let r1372 = R 450 :: r1371 in - let r1373 = [R 618] in - let r1374 = R 456 :: r1373 in - let r1375 = S (N N_module_expr) :: r1374 in - let r1376 = R 450 :: r1375 in - let r1377 = [R 1224] in - let r1378 = R 456 :: r1377 in - let r1379 = Sub (r1280) :: r1378 in - let r1380 = Sub (r1277) :: r1379 in - let r1381 = R 450 :: r1380 in - let r1382 = [R 564] in - let r1383 = R 456 :: r1382 in - let r1384 = R 674 :: r1383 in - let r1385 = Sub (r60) :: r1384 in - let r1386 = R 450 :: r1385 in - let r1387 = [R 675] in - let r1388 = [R 1225] in - let r1389 = R 446 :: r1388 in - let r1390 = R 456 :: r1389 in - let r1391 = Sub (r1280) :: r1390 in - let r1392 = [R 447] in - let r1393 = R 446 :: r1392 in - let r1394 = R 456 :: r1393 in - let r1395 = Sub (r1280) :: r1394 in - let r1396 = Sub (r1277) :: r1395 in - let r1397 = [R 304] in - let r1398 = S (T T_RBRACKET) :: r1397 in - let r1399 = Sub (r17) :: r1398 in - let r1400 = [R 741] in - let r1401 = [R 742] in - let r1402 = [R 159] in - let r1403 = S (T T_RBRACKET) :: r1402 in - let r1404 = Sub (r19) :: r1403 in - let r1405 = [R 315] in - let r1406 = Sub (r78) :: r1405 in - let r1407 = S (T T_EQUAL) :: r1406 in - let r1408 = [R 595] in - let r1409 = S (T T_STRING) :: r1408 in - let r1410 = [R 748] in - let r1411 = R 456 :: r1410 in - let r1412 = Sub (r1409) :: r1411 in - let r1413 = S (T T_EQUAL) :: r1412 in - let r1414 = R 684 :: r1413 in - let r1415 = Sub (r36) :: r1414 in - let r1416 = S (T T_COLON) :: r1415 in - let r1417 = Sub (r24) :: r1416 in - let r1418 = R 450 :: r1417 in - let r1419 = [R 744] in - let r1420 = Sub (r34) :: r1419 in - let r1421 = Sub (r125) :: r565 in - let r1422 = [R 1068] in - let r1423 = R 456 :: r1422 in - let r1424 = R 450 :: r1423 in - let r1425 = Sub (r1421) :: r1424 in - let r1426 = S (T T_EQUAL) :: r1425 in - let r1427 = Sub (r127) :: r1426 in - let r1428 = R 450 :: r1427 in - let r1429 = [R 888] in - let r1430 = R 456 :: r1429 in - let r1431 = R 450 :: r1430 in - let r1432 = R 284 :: r1431 in - let r1433 = Sub (r127) :: r1432 in - let r1434 = R 450 :: r1433 in - let r1435 = R 152 :: r1434 in - let r1436 = S (T T_COLONCOLON) :: r585 in - let r1437 = [R 739] in - let r1438 = S (T T_QUOTED_STRING_EXPR) :: r58 in - let r1439 = [R 53] in - let r1440 = Sub (r1438) :: r1439 in - let r1441 = [R 62] in - let r1442 = Sub (r1440) :: r1441 in - let r1443 = S (T T_EQUAL) :: r1442 in - let r1444 = [R 1228] in - let r1445 = R 440 :: r1444 in - let r1446 = R 456 :: r1445 in - let r1447 = Sub (r1443) :: r1446 in - let r1448 = S (T T_LIDENT) :: r1447 in - let r1449 = R 160 :: r1448 in - let r1450 = R 1297 :: r1449 in - let r1451 = R 450 :: r1450 in - let r1452 = [R 81] in - let r1453 = Sub (r1438) :: r1452 in - let r1454 = [R 95] in - let r1455 = R 444 :: r1454 in - let r1456 = R 456 :: r1455 in - let r1457 = Sub (r1453) :: r1456 in - let r1458 = S (T T_EQUAL) :: r1457 in - let r1459 = S (T T_LIDENT) :: r1458 in - let r1460 = R 160 :: r1459 in - let r1461 = R 1297 :: r1460 in - let r1462 = R 450 :: r1461 in - let r1463 = [R 847] in - let r1464 = Sub (r151) :: r1463 in - let r1465 = [R 161] in - let r1466 = S (T T_RBRACKET) :: r1465 in - let r1467 = [R 848] in - let r1468 = [R 82] in - let r1469 = S (T T_END) :: r1468 in - let r1470 = R 465 :: r1469 in - let r1471 = R 72 :: r1470 in - let r1472 = [R 71] in - let r1473 = S (T T_RPAREN) :: r1472 in - let r1474 = [R 74] in - let r1475 = R 456 :: r1474 in - let r1476 = Sub (r34) :: r1475 in - let r1477 = S (T T_COLON) :: r1476 in - let r1478 = S (T T_LIDENT) :: r1477 in - let r1479 = R 572 :: r1478 in - let r1480 = [R 75] in - let r1481 = R 456 :: r1480 in - let r1482 = Sub (r36) :: r1481 in - let r1483 = S (T T_COLON) :: r1482 in - let r1484 = S (T T_LIDENT) :: r1483 in - let r1485 = R 751 :: r1484 in - let r1486 = [R 73] in - let r1487 = R 456 :: r1486 in - let r1488 = Sub (r1453) :: r1487 in - let r1489 = S (T T_UIDENT) :: r188 in - let r1490 = Sub (r1489) :: r470 in - let r1491 = [R 84] in - let r1492 = Sub (r1453) :: r1491 in - let r1493 = S (T T_IN) :: r1492 in - let r1494 = Sub (r1490) :: r1493 in - let r1495 = R 450 :: r1494 in - let r1496 = [R 85] in - let r1497 = Sub (r1453) :: r1496 in - let r1498 = S (T T_IN) :: r1497 in - let r1499 = Sub (r1490) :: r1498 in - let r1500 = [R 843] in - let r1501 = Sub (r34) :: r1500 in - let r1502 = [R 80] in - let r1503 = Sub (r243) :: r1502 in - let r1504 = S (T T_RBRACKET) :: r1503 in - let r1505 = Sub (r1501) :: r1504 in - let r1506 = [R 844] in - let r1507 = [R 126] in - let r1508 = Sub (r34) :: r1507 in - let r1509 = S (T T_EQUAL) :: r1508 in - let r1510 = Sub (r34) :: r1509 in - let r1511 = [R 76] in - let r1512 = R 456 :: r1511 in - let r1513 = Sub (r1510) :: r1512 in - let r1514 = [R 77] in - let r1515 = [R 466] in - let r1516 = [R 445] in - let r1517 = R 444 :: r1516 in - let r1518 = R 456 :: r1517 in - let r1519 = Sub (r1453) :: r1518 in - let r1520 = S (T T_EQUAL) :: r1519 in - let r1521 = S (T T_LIDENT) :: r1520 in - let r1522 = R 160 :: r1521 in - let r1523 = R 1297 :: r1522 in - let r1524 = [R 90] in - let r1525 = S (T T_END) :: r1524 in - let r1526 = R 467 :: r1525 in - let r1527 = R 70 :: r1526 in - let r1528 = [R 1288] in - let r1529 = Sub (r3) :: r1528 in - let r1530 = S (T T_EQUAL) :: r1529 in - let r1531 = S (T T_LIDENT) :: r1530 in - let r1532 = R 567 :: r1531 in - let r1533 = R 450 :: r1532 in - let r1534 = [R 56] in - let r1535 = R 456 :: r1534 in - let r1536 = [R 1289] in - let r1537 = Sub (r3) :: r1536 in - let r1538 = S (T T_EQUAL) :: r1537 in - let r1539 = S (T T_LIDENT) :: r1538 in - let r1540 = R 567 :: r1539 in - let r1541 = [R 1291] in - let r1542 = Sub (r3) :: r1541 in - let r1543 = [R 1287] in - let r1544 = Sub (r34) :: r1543 in - let r1545 = S (T T_COLON) :: r1544 in - let r1546 = [R 1290] in - let r1547 = Sub (r3) :: r1546 in - let r1548 = [R 491] in - let r1549 = Sub (r1027) :: r1548 in - let r1550 = S (T T_LIDENT) :: r1549 in - let r1551 = R 749 :: r1550 in - let r1552 = R 450 :: r1551 in - let r1553 = [R 57] in - let r1554 = R 456 :: r1553 in - let r1555 = [R 492] in - let r1556 = Sub (r1027) :: r1555 in - let r1557 = S (T T_LIDENT) :: r1556 in - let r1558 = R 749 :: r1557 in - let r1559 = [R 494] in - let r1560 = Sub (r3) :: r1559 in - let r1561 = S (T T_EQUAL) :: r1560 in - let r1562 = [R 496] in - let r1563 = Sub (r3) :: r1562 in - let r1564 = S (T T_EQUAL) :: r1563 in - let r1565 = Sub (r34) :: r1564 in - let r1566 = S (T T_DOT) :: r1565 in - let r1567 = [R 490] in - let r1568 = Sub (r36) :: r1567 in - let r1569 = S (T T_COLON) :: r1568 in - let r1570 = [R 493] in - let r1571 = Sub (r3) :: r1570 in - let r1572 = S (T T_EQUAL) :: r1571 in - let r1573 = [R 495] in - let r1574 = Sub (r3) :: r1573 in - let r1575 = S (T T_EQUAL) :: r1574 in - let r1576 = Sub (r34) :: r1575 in - let r1577 = S (T T_DOT) :: r1576 in - let r1578 = [R 59] in - let r1579 = R 456 :: r1578 in - let r1580 = Sub (r3) :: r1579 in - let r1581 = [R 54] in - let r1582 = R 456 :: r1581 in - let r1583 = R 667 :: r1582 in - let r1584 = Sub (r1440) :: r1583 in - let r1585 = [R 55] in - let r1586 = R 456 :: r1585 in - let r1587 = R 667 :: r1586 in - let r1588 = Sub (r1440) :: r1587 in - let r1589 = [R 86] in - let r1590 = S (T T_RPAREN) :: r1589 in - let r1591 = [R 49] in - let r1592 = Sub (r1440) :: r1591 in - let r1593 = S (T T_IN) :: r1592 in - let r1594 = Sub (r1490) :: r1593 in - let r1595 = R 450 :: r1594 in - let r1596 = [R 418] in - let r1597 = R 456 :: r1596 in - let r1598 = Sub (r641) :: r1597 in - let r1599 = R 756 :: r1598 in - let r1600 = R 450 :: r1599 in - let r1601 = [R 50] in - let r1602 = Sub (r1440) :: r1601 in - let r1603 = S (T T_IN) :: r1602 in - let r1604 = Sub (r1490) :: r1603 in - let r1605 = [R 88] in - let r1606 = Sub (r463) :: r1605 in - let r1607 = S (T T_RBRACKET) :: r1606 in - let r1608 = [R 65] in - let r1609 = Sub (r1440) :: r1608 in - let r1610 = S (T T_MINUSGREATER) :: r1609 in - let r1611 = Sub (r708) :: r1610 in - let r1612 = [R 47] in - let r1613 = Sub (r1611) :: r1612 in - let r1614 = [R 48] in - let r1615 = Sub (r1440) :: r1614 in - let r1616 = [R 417] in - let r1617 = R 456 :: r1616 in - let r1618 = Sub (r641) :: r1617 in - let r1619 = [R 91] in - let r1620 = Sub (r1453) :: r1619 in - let r1621 = [R 89] in - let r1622 = S (T T_RPAREN) :: r1621 in - let r1623 = [R 93] in - let r1624 = Sub (r1620) :: r1623 in - let r1625 = S (T T_MINUSGREATER) :: r1624 in - let r1626 = Sub (r28) :: r1625 in - let r1627 = [R 94] in - let r1628 = Sub (r1620) :: r1627 in - let r1629 = [R 92] in - let r1630 = Sub (r1620) :: r1629 in - let r1631 = S (T T_MINUSGREATER) :: r1630 in - let r1632 = [R 668] in - let r1633 = [R 58] in - let r1634 = R 456 :: r1633 in - let r1635 = Sub (r1510) :: r1634 in - let r1636 = [R 60] in - let r1637 = [R 468] in - let r1638 = [R 63] in - let r1639 = Sub (r1440) :: r1638 in - let r1640 = S (T T_EQUAL) :: r1639 in - let r1641 = [R 64] in - let r1642 = [R 441] in - let r1643 = R 440 :: r1642 in - let r1644 = R 456 :: r1643 in - let r1645 = Sub (r1443) :: r1644 in - let r1646 = S (T T_LIDENT) :: r1645 in - let r1647 = R 160 :: r1646 in - let r1648 = R 1297 :: r1647 in - let r1649 = [R 464] in - let r1650 = [R 1215] in - let r1651 = [R 1230] in - let r1652 = R 456 :: r1651 in - let r1653 = S (N N_module_expr) :: r1652 in - let r1654 = R 450 :: r1653 in - let r1655 = [R 1220] in - let r1656 = [R 453] in - let r1657 = R 452 :: r1656 in + let r1233 = [R 175] in + let r1234 = Sub (r195) :: r1233 in + let r1235 = R 454 :: r1234 in + let r1236 = [R 948] in + let r1237 = [R 796] in + let r1238 = [R 797] in + let r1239 = S (T T_RPAREN) :: r1238 in + let r1240 = Sub (r206) :: r1239 in + let r1241 = [R 795] in + let r1242 = [R 794] in + let r1243 = Sub (r195) :: r1242 in + let r1244 = R 454 :: r1243 in + let r1245 = [R 934] in + let r1246 = S (T T_GREATERDOT) :: r1245 in + let r1247 = Sub (r195) :: r1246 in + let r1248 = R 454 :: r1247 in + let r1249 = S (T T_COMMA) :: r786 in + let r1250 = Sub (r195) :: r1249 in + let r1251 = R 454 :: r1250 in + let r1252 = [R 677] in + let r1253 = Sub (r195) :: r1252 in + let r1254 = R 454 :: r1253 in + let r1255 = [R 959] in + let r1256 = [R 995] in + let r1257 = [R 994] in + let r1258 = [R 997] in + let r1259 = [R 974] in + let r1260 = [R 996] in + let r1261 = [R 701] in + let r1262 = S (T T_RPAREN) :: r1261 in + let r1263 = Sub (r195) :: r1262 in + let r1264 = R 454 :: r1263 in + let r1265 = [R 707] in + let r1266 = S (T T_RPAREN) :: r1265 in + let r1267 = [R 703] in + let r1268 = S (T T_RPAREN) :: r1267 in + let r1269 = [R 705] in + let r1270 = S (T T_RPAREN) :: r1269 in + let r1271 = [R 706] in + let r1272 = S (T T_RPAREN) :: r1271 in + let r1273 = [R 702] in + let r1274 = S (T T_RPAREN) :: r1273 in + let r1275 = [R 704] in + let r1276 = S (T T_RPAREN) :: r1275 in + let r1277 = [R 549] in + let r1278 = Sub (r411) :: r1277 in + let r1279 = [R 526] in + let r1280 = S (N N_module_expr) :: r1279 in + let r1281 = S (T T_EQUAL) :: r1280 in + let r1282 = [R 166] in + let r1283 = Sub (r3) :: r1282 in + let r1284 = S (T T_IN) :: r1283 in + let r1285 = Sub (r1281) :: r1284 in + let r1286 = Sub (r1278) :: r1285 in + let r1287 = R 454 :: r1286 in + let r1288 = S (T T_AT) :: r264 in + let r1289 = [R 550] in + let r1290 = S (T T_RPAREN) :: r1289 in + let r1291 = Sub (r1288) :: r1290 in + let r1292 = [R 527] in + let r1293 = S (N N_module_expr) :: r1292 in + let r1294 = S (T T_EQUAL) :: r1293 in + let r1295 = [R 528] in + let r1296 = S (N N_module_expr) :: r1295 in + let r1297 = [R 530] in + let r1298 = [R 529] in + let r1299 = S (N N_module_expr) :: r1298 in + let r1300 = [R 167] in + let r1301 = Sub (r3) :: r1300 in + let r1302 = S (T T_IN) :: r1301 in + let r1303 = R 454 :: r1302 in + let r1304 = R 288 :: r1303 in + let r1305 = Sub (r128) :: r1304 in + let r1306 = R 454 :: r1305 in + let r1307 = [R 127] in + let r1308 = R 688 :: r1307 in + let r1309 = Sub (r26) :: r1308 in + let r1310 = [R 289] in + let r1311 = [R 749] in + let r1312 = Sub (r32) :: r1311 in + let r1313 = [R 320] in + let r1314 = R 454 :: r1313 in + let r1315 = R 688 :: r1314 in + let r1316 = Sub (r1312) :: r1315 in + let r1317 = S (T T_COLON) :: r1316 in + let r1318 = S (T T_LIDENT) :: r1317 in + let r1319 = R 573 :: r1318 in + let r1320 = [R 322] in + let r1321 = Sub (r1319) :: r1320 in + let r1322 = [R 131] in + let r1323 = S (T T_RBRACE) :: r1322 in + let r1324 = [R 321] in + let r1325 = R 454 :: r1324 in + let r1326 = S (T T_SEMI) :: r1325 in + let r1327 = R 454 :: r1326 in + let r1328 = R 688 :: r1327 in + let r1329 = Sub (r1312) :: r1328 in + let r1330 = S (T T_COLON) :: r1329 in + let r1331 = [R 750] in + let r1332 = Sub (r32) :: r1331 in + let r1333 = [R 128] in + let r1334 = R 688 :: r1333 in + let r1335 = [R 129] in + let r1336 = R 688 :: r1335 in + let r1337 = Sub (r26) :: r1336 in + let r1338 = [R 130] in + let r1339 = R 688 :: r1338 in + let r1340 = [R 292] in + let r1341 = [R 869] in + let r1342 = Sub (r78) :: r1341 in + let r1343 = S (T T_COLON) :: r1342 in + let r1344 = [R 868] in + let r1345 = Sub (r78) :: r1344 in + let r1346 = S (T T_COLON) :: r1345 in + let r1347 = [R 293] in + let r1348 = Sub (r26) :: r1347 in + let r1349 = [R 291] in + let r1350 = Sub (r26) :: r1349 in + let r1351 = [R 290] in + let r1352 = Sub (r26) :: r1351 in + let r1353 = [R 248] in + let r1354 = Sub (r195) :: r1353 in + let r1355 = R 454 :: r1354 in + let r1356 = [R 999] in + let r1357 = [R 989] in + let r1358 = [R 998] in + let r1359 = [R 951] in + let r1360 = S (T T_RPAREN) :: r1359 in + let r1361 = S (N N_module_expr) :: r1360 in + let r1362 = R 454 :: r1361 in + let r1363 = [R 952] in + let r1364 = S (T T_RPAREN) :: r1363 in + let r1365 = [R 937] in + let r1366 = [R 938] in + let r1367 = [R 173] in + let r1368 = Sub (r195) :: r1367 in + let r1369 = R 454 :: r1368 in + let r1370 = [R 621] in + let r1371 = R 460 :: r1370 in + let r1372 = S (N N_module_expr) :: r1371 in + let r1373 = R 454 :: r1372 in + let r1374 = [R 622] in + let r1375 = R 460 :: r1374 in + let r1376 = S (N N_module_expr) :: r1375 in + let r1377 = R 454 :: r1376 in + let r1378 = [R 1228] in + let r1379 = R 460 :: r1378 in + let r1380 = Sub (r1281) :: r1379 in + let r1381 = Sub (r1278) :: r1380 in + let r1382 = R 454 :: r1381 in + let r1383 = [R 568] in + let r1384 = R 460 :: r1383 in + let r1385 = R 678 :: r1384 in + let r1386 = Sub (r60) :: r1385 in + let r1387 = R 454 :: r1386 in + let r1388 = [R 679] in + let r1389 = [R 1229] in + let r1390 = R 450 :: r1389 in + let r1391 = R 460 :: r1390 in + let r1392 = Sub (r1281) :: r1391 in + let r1393 = [R 451] in + let r1394 = R 450 :: r1393 in + let r1395 = R 460 :: r1394 in + let r1396 = Sub (r1281) :: r1395 in + let r1397 = Sub (r1278) :: r1396 in + let r1398 = [R 308] in + let r1399 = S (T T_RBRACKET) :: r1398 in + let r1400 = Sub (r17) :: r1399 in + let r1401 = [R 745] in + let r1402 = [R 746] in + let r1403 = [R 159] in + let r1404 = S (T T_RBRACKET) :: r1403 in + let r1405 = Sub (r19) :: r1404 in + let r1406 = [R 319] in + let r1407 = Sub (r78) :: r1406 in + let r1408 = S (T T_EQUAL) :: r1407 in + let r1409 = [R 599] in + let r1410 = S (T T_STRING) :: r1409 in + let r1411 = [R 752] in + let r1412 = R 460 :: r1411 in + let r1413 = Sub (r1410) :: r1412 in + let r1414 = S (T T_EQUAL) :: r1413 in + let r1415 = R 688 :: r1414 in + let r1416 = Sub (r36) :: r1415 in + let r1417 = S (T T_COLON) :: r1416 in + let r1418 = Sub (r24) :: r1417 in + let r1419 = R 454 :: r1418 in + let r1420 = [R 748] in + let r1421 = Sub (r34) :: r1420 in + let r1422 = Sub (r126) :: r568 in + let r1423 = [R 1072] in + let r1424 = R 460 :: r1423 in + let r1425 = R 454 :: r1424 in + let r1426 = Sub (r1422) :: r1425 in + let r1427 = S (T T_EQUAL) :: r1426 in + let r1428 = Sub (r128) :: r1427 in + let r1429 = R 454 :: r1428 in + let r1430 = [R 892] in + let r1431 = R 460 :: r1430 in + let r1432 = R 454 :: r1431 in + let r1433 = R 288 :: r1432 in + let r1434 = Sub (r128) :: r1433 in + let r1435 = R 454 :: r1434 in + let r1436 = R 152 :: r1435 in + let r1437 = S (T T_COLONCOLON) :: r586 in + let r1438 = [R 743] in + let r1439 = S (T T_QUOTED_STRING_EXPR) :: r58 in + let r1440 = [R 53] in + let r1441 = Sub (r1439) :: r1440 in + let r1442 = [R 62] in + let r1443 = Sub (r1441) :: r1442 in + let r1444 = S (T T_EQUAL) :: r1443 in + let r1445 = [R 1232] in + let r1446 = R 444 :: r1445 in + let r1447 = R 460 :: r1446 in + let r1448 = Sub (r1444) :: r1447 in + let r1449 = S (T T_LIDENT) :: r1448 in + let r1450 = R 160 :: r1449 in + let r1451 = R 1301 :: r1450 in + let r1452 = R 454 :: r1451 in + let r1453 = [R 81] in + let r1454 = Sub (r1439) :: r1453 in + let r1455 = [R 95] in + let r1456 = R 448 :: r1455 in + let r1457 = R 460 :: r1456 in + let r1458 = Sub (r1454) :: r1457 in + let r1459 = S (T T_EQUAL) :: r1458 in + let r1460 = S (T T_LIDENT) :: r1459 in + let r1461 = R 160 :: r1460 in + let r1462 = R 1301 :: r1461 in + let r1463 = R 454 :: r1462 in + let r1464 = [R 851] in + let r1465 = Sub (r152) :: r1464 in + let r1466 = [R 161] in + let r1467 = S (T T_RBRACKET) :: r1466 in + let r1468 = [R 852] in + let r1469 = [R 82] in + let r1470 = S (T T_END) :: r1469 in + let r1471 = R 469 :: r1470 in + let r1472 = R 72 :: r1471 in + let r1473 = [R 71] in + let r1474 = S (T T_RPAREN) :: r1473 in + let r1475 = [R 74] in + let r1476 = R 460 :: r1475 in + let r1477 = Sub (r34) :: r1476 in + let r1478 = S (T T_COLON) :: r1477 in + let r1479 = S (T T_LIDENT) :: r1478 in + let r1480 = R 576 :: r1479 in + let r1481 = [R 75] in + let r1482 = R 460 :: r1481 in + let r1483 = Sub (r36) :: r1482 in + let r1484 = S (T T_COLON) :: r1483 in + let r1485 = S (T T_LIDENT) :: r1484 in + let r1486 = R 755 :: r1485 in + let r1487 = [R 73] in + let r1488 = R 460 :: r1487 in + let r1489 = Sub (r1454) :: r1488 in + let r1490 = S (T T_UIDENT) :: r189 in + let r1491 = Sub (r1490) :: r471 in + let r1492 = [R 84] in + let r1493 = Sub (r1454) :: r1492 in + let r1494 = S (T T_IN) :: r1493 in + let r1495 = Sub (r1491) :: r1494 in + let r1496 = R 454 :: r1495 in + let r1497 = [R 85] in + let r1498 = Sub (r1454) :: r1497 in + let r1499 = S (T T_IN) :: r1498 in + let r1500 = Sub (r1491) :: r1499 in + let r1501 = [R 847] in + let r1502 = Sub (r34) :: r1501 in + let r1503 = [R 80] in + let r1504 = Sub (r244) :: r1503 in + let r1505 = S (T T_RBRACKET) :: r1504 in + let r1506 = Sub (r1502) :: r1505 in + let r1507 = [R 848] in + let r1508 = [R 126] in + let r1509 = Sub (r34) :: r1508 in + let r1510 = S (T T_EQUAL) :: r1509 in + let r1511 = Sub (r34) :: r1510 in + let r1512 = [R 76] in + let r1513 = R 460 :: r1512 in + let r1514 = Sub (r1511) :: r1513 in + let r1515 = [R 77] in + let r1516 = [R 470] in + let r1517 = [R 449] in + let r1518 = R 448 :: r1517 in + let r1519 = R 460 :: r1518 in + let r1520 = Sub (r1454) :: r1519 in + let r1521 = S (T T_EQUAL) :: r1520 in + let r1522 = S (T T_LIDENT) :: r1521 in + let r1523 = R 160 :: r1522 in + let r1524 = R 1301 :: r1523 in + let r1525 = [R 90] in + let r1526 = S (T T_END) :: r1525 in + let r1527 = R 471 :: r1526 in + let r1528 = R 70 :: r1527 in + let r1529 = [R 1292] in + let r1530 = Sub (r3) :: r1529 in + let r1531 = S (T T_EQUAL) :: r1530 in + let r1532 = S (T T_LIDENT) :: r1531 in + let r1533 = R 571 :: r1532 in + let r1534 = R 454 :: r1533 in + let r1535 = [R 56] in + let r1536 = R 460 :: r1535 in + let r1537 = [R 1293] in + let r1538 = Sub (r3) :: r1537 in + let r1539 = S (T T_EQUAL) :: r1538 in + let r1540 = S (T T_LIDENT) :: r1539 in + let r1541 = R 571 :: r1540 in + let r1542 = [R 1295] in + let r1543 = Sub (r3) :: r1542 in + let r1544 = [R 1291] in + let r1545 = Sub (r34) :: r1544 in + let r1546 = S (T T_COLON) :: r1545 in + let r1547 = [R 1294] in + let r1548 = Sub (r3) :: r1547 in + let r1549 = [R 495] in + let r1550 = Sub (r1028) :: r1549 in + let r1551 = S (T T_LIDENT) :: r1550 in + let r1552 = R 753 :: r1551 in + let r1553 = R 454 :: r1552 in + let r1554 = [R 57] in + let r1555 = R 460 :: r1554 in + let r1556 = [R 496] in + let r1557 = Sub (r1028) :: r1556 in + let r1558 = S (T T_LIDENT) :: r1557 in + let r1559 = R 753 :: r1558 in + let r1560 = [R 498] in + let r1561 = Sub (r3) :: r1560 in + let r1562 = S (T T_EQUAL) :: r1561 in + let r1563 = [R 500] in + let r1564 = Sub (r3) :: r1563 in + let r1565 = S (T T_EQUAL) :: r1564 in + let r1566 = Sub (r34) :: r1565 in + let r1567 = S (T T_DOT) :: r1566 in + let r1568 = [R 494] in + let r1569 = Sub (r36) :: r1568 in + let r1570 = S (T T_COLON) :: r1569 in + let r1571 = [R 497] in + let r1572 = Sub (r3) :: r1571 in + let r1573 = S (T T_EQUAL) :: r1572 in + let r1574 = [R 499] in + let r1575 = Sub (r3) :: r1574 in + let r1576 = S (T T_EQUAL) :: r1575 in + let r1577 = Sub (r34) :: r1576 in + let r1578 = S (T T_DOT) :: r1577 in + let r1579 = [R 59] in + let r1580 = R 460 :: r1579 in + let r1581 = Sub (r3) :: r1580 in + let r1582 = [R 54] in + let r1583 = R 460 :: r1582 in + let r1584 = R 671 :: r1583 in + let r1585 = Sub (r1441) :: r1584 in + let r1586 = [R 55] in + let r1587 = R 460 :: r1586 in + let r1588 = R 671 :: r1587 in + let r1589 = Sub (r1441) :: r1588 in + let r1590 = [R 86] in + let r1591 = S (T T_RPAREN) :: r1590 in + let r1592 = [R 49] in + let r1593 = Sub (r1441) :: r1592 in + let r1594 = S (T T_IN) :: r1593 in + let r1595 = Sub (r1491) :: r1594 in + let r1596 = R 454 :: r1595 in + let r1597 = [R 422] in + let r1598 = R 460 :: r1597 in + let r1599 = Sub (r642) :: r1598 in + let r1600 = R 760 :: r1599 in + let r1601 = R 454 :: r1600 in + let r1602 = [R 50] in + let r1603 = Sub (r1441) :: r1602 in + let r1604 = S (T T_IN) :: r1603 in + let r1605 = Sub (r1491) :: r1604 in + let r1606 = [R 88] in + let r1607 = Sub (r464) :: r1606 in + let r1608 = S (T T_RBRACKET) :: r1607 in + let r1609 = [R 65] in + let r1610 = Sub (r1441) :: r1609 in + let r1611 = S (T T_MINUSGREATER) :: r1610 in + let r1612 = Sub (r709) :: r1611 in + let r1613 = [R 47] in + let r1614 = Sub (r1612) :: r1613 in + let r1615 = [R 48] in + let r1616 = Sub (r1441) :: r1615 in + let r1617 = [R 421] in + let r1618 = R 460 :: r1617 in + let r1619 = Sub (r642) :: r1618 in + let r1620 = [R 91] in + let r1621 = Sub (r1454) :: r1620 in + let r1622 = [R 89] in + let r1623 = S (T T_RPAREN) :: r1622 in + let r1624 = [R 93] in + let r1625 = Sub (r1621) :: r1624 in + let r1626 = S (T T_MINUSGREATER) :: r1625 in + let r1627 = Sub (r28) :: r1626 in + let r1628 = [R 94] in + let r1629 = Sub (r1621) :: r1628 in + let r1630 = [R 92] in + let r1631 = Sub (r1621) :: r1630 in + let r1632 = S (T T_MINUSGREATER) :: r1631 in + let r1633 = [R 672] in + let r1634 = [R 58] in + let r1635 = R 460 :: r1634 in + let r1636 = Sub (r1511) :: r1635 in + let r1637 = [R 60] in + let r1638 = [R 472] in + let r1639 = [R 63] in + let r1640 = Sub (r1441) :: r1639 in + let r1641 = S (T T_EQUAL) :: r1640 in + let r1642 = [R 64] in + let r1643 = [R 445] in + let r1644 = R 444 :: r1643 in + let r1645 = R 460 :: r1644 in + let r1646 = Sub (r1444) :: r1645 in + let r1647 = S (T T_LIDENT) :: r1646 in + let r1648 = R 160 :: r1647 in + let r1649 = R 1301 :: r1648 in + let r1650 = [R 468] in + let r1651 = [R 1219] in + let r1652 = [R 1234] in + let r1653 = R 460 :: r1652 in + let r1654 = S (N N_module_expr) :: r1653 in + let r1655 = R 454 :: r1654 in + let r1656 = [R 1224] in + let r1657 = [R 457] in let r1658 = R 456 :: r1657 in - let r1659 = R 816 :: r1658 in - let r1660 = R 1258 :: r1659 in - let r1661 = R 665 :: r1660 in - let r1662 = S (T T_LIDENT) :: r1661 in - let r1663 = R 1263 :: r1662 in - let r1664 = [R 1213] in - let r1665 = R 461 :: r1664 in - let r1666 = [R 463] in - let r1667 = R 461 :: r1666 in - let r1668 = [R 290] in - let r1669 = R 450 :: r1668 in - let r1670 = R 284 :: r1669 in - let r1671 = Sub (r127) :: r1670 in - let r1672 = [R 156] in - let r1673 = R 450 :: r1672 in - let r1674 = [R 157] in - let r1675 = R 450 :: r1674 in - let r1676 = [R 371] in - let r1677 = [R 368] in - let r1678 = [R 369] in - let r1679 = S (T T_RPAREN) :: r1678 in - let r1680 = Sub (r34) :: r1679 in - let r1681 = S (T T_COLON) :: r1680 in - let r1682 = [R 367] in - let r1683 = [R 69] in - let r1684 = S (T T_RPAREN) :: r1683 in - let r1685 = [R 801] in - let r1686 = [R 800] in - let r1687 = Sub (r194) :: r1686 in - let r1688 = R 450 :: r1687 in - let r1689 = [R 797] in - let r1690 = [R 798] in - let r1691 = S (T T_RPAREN) :: r1690 in - let r1692 = Sub (r205) :: r1691 in - let r1693 = [R 796] in - let r1694 = [R 795] in - let r1695 = Sub (r194) :: r1694 in - let r1696 = R 450 :: r1695 in - let r1697 = [R 487] in - let r1698 = R 450 :: r1697 in - let r1699 = Sub (r1311) :: r1698 in - let r1700 = [R 485] in - let r1701 = [R 615] in - let r1702 = [R 1161] in - let r1703 = [R 1163] in - let r1704 = Sub (r28) :: r1703 in - let r1705 = [R 1165] in - let r1706 = [R 608] in - let r1707 = S (T T_RBRACE) :: r1706 in - let r1708 = [R 612] in - let r1709 = S (T T_RBRACE) :: r1708 in - let r1710 = [R 607] in + let r1659 = R 460 :: r1658 in + let r1660 = R 820 :: r1659 in + let r1661 = R 1262 :: r1660 in + let r1662 = R 669 :: r1661 in + let r1663 = S (T T_LIDENT) :: r1662 in + let r1664 = R 1267 :: r1663 in + let r1665 = [R 1217] in + let r1666 = R 465 :: r1665 in + let r1667 = [R 467] in + let r1668 = R 465 :: r1667 in + let r1669 = [R 294] in + let r1670 = R 454 :: r1669 in + let r1671 = R 288 :: r1670 in + let r1672 = Sub (r128) :: r1671 in + let r1673 = [R 156] in + let r1674 = R 454 :: r1673 in + let r1675 = [R 157] in + let r1676 = R 454 :: r1675 in + let r1677 = [R 375] in + let r1678 = [R 372] in + let r1679 = [R 373] in + let r1680 = S (T T_RPAREN) :: r1679 in + let r1681 = Sub (r34) :: r1680 in + let r1682 = S (T T_COLON) :: r1681 in + let r1683 = [R 371] in + let r1684 = [R 69] in + let r1685 = S (T T_RPAREN) :: r1684 in + let r1686 = [R 192] in + let r1687 = Sub (r195) :: r1686 in + let r1688 = R 454 :: r1687 in + let r1689 = [R 805] in + let r1690 = [R 804] in + let r1691 = Sub (r195) :: r1690 in + let r1692 = R 454 :: r1691 in + let r1693 = [R 801] in + let r1694 = [R 802] in + let r1695 = S (T T_RPAREN) :: r1694 in + let r1696 = Sub (r206) :: r1695 in + let r1697 = [R 800] in + let r1698 = [R 799] in + let r1699 = Sub (r195) :: r1698 in + let r1700 = R 454 :: r1699 in + let r1701 = [R 491] in + let r1702 = R 454 :: r1701 in + let r1703 = Sub (r1312) :: r1702 in + let r1704 = [R 489] in + let r1705 = [R 619] in + let r1706 = [R 1165] in + let r1707 = [R 1167] in + let r1708 = Sub (r28) :: r1707 in + let r1709 = [R 1169] in + let r1710 = [R 612] in let r1711 = S (T T_RBRACE) :: r1710 in - let r1712 = [R 611] in + let r1712 = [R 616] in let r1713 = S (T T_RBRACE) :: r1712 in - let r1714 = [R 605] in - let r1715 = [R 606] in - let r1716 = [R 610] in + let r1714 = [R 611] in + let r1715 = S (T T_RBRACE) :: r1714 in + let r1716 = [R 615] in let r1717 = S (T T_RBRACE) :: r1716 in - let r1718 = [R 614] in - let r1719 = S (T T_RBRACE) :: r1718 in - let r1720 = [R 609] in + let r1718 = [R 609] in + let r1719 = [R 610] in + let r1720 = [R 614] in let r1721 = S (T T_RBRACE) :: r1720 in - let r1722 = [R 613] in + let r1722 = [R 618] in let r1723 = S (T T_RBRACE) :: r1722 in - let r1724 = [R 293] in - let r1725 = R 456 :: r1724 in - let r1726 = R 816 :: r1725 in - let r1727 = [R 292] in - let r1728 = R 456 :: r1727 in - let r1729 = R 816 :: r1728 in - let r1730 = [R 459] in - let r1731 = [R 619] in - let r1732 = R 456 :: r1731 in - let r1733 = Sub (r250) :: r1732 in - let r1734 = R 450 :: r1733 in - let r1735 = [R 620] in - let r1736 = R 456 :: r1735 in - let r1737 = Sub (r250) :: r1736 in - let r1738 = R 450 :: r1737 in - let r1739 = [R 543] in - let r1740 = Sub (r410) :: r1739 in - let r1741 = [R 527] in - let r1742 = R 684 :: r1741 in - let r1743 = S (N N_module_type) :: r1742 in - let r1744 = S (T T_COLON) :: r1743 in - let r1745 = [R 900] in - let r1746 = R 456 :: r1745 in - let r1747 = Sub (r1744) :: r1746 in - let r1748 = Sub (r1740) :: r1747 in - let r1749 = R 450 :: r1748 in - let r1750 = [R 565] in - let r1751 = R 456 :: r1750 in - let r1752 = S (N N_module_type) :: r1751 in - let r1753 = S (T T_COLONEQUAL) :: r1752 in - let r1754 = Sub (r60) :: r1753 in - let r1755 = R 450 :: r1754 in - let r1756 = [R 547] in - let r1757 = R 456 :: r1756 in - let r1758 = [R 903] in - let r1759 = R 448 :: r1758 in - let r1760 = R 456 :: r1759 in - let r1761 = R 684 :: r1760 in - let r1762 = S (N N_module_type) :: r1761 in - let r1763 = S (T T_COLON) :: r1762 in - let r1764 = [R 449] in - let r1765 = R 448 :: r1764 in - let r1766 = R 456 :: r1765 in - let r1767 = R 684 :: r1766 in - let r1768 = S (N N_module_type) :: r1767 in - let r1769 = S (T T_COLON) :: r1768 in - let r1770 = Sub (r410) :: r1769 in - let r1771 = [R 24] in - let r1772 = Sub (r117) :: r1771 in - let r1773 = S (T T_AT) :: r1772 in - let r1774 = [R 544] in - let r1775 = S (T T_RPAREN) :: r1774 in - let r1776 = Sub (r1773) :: r1775 in - let r1777 = [R 901] in - let r1778 = R 456 :: r1777 in - let r1779 = R 682 :: r1778 in - let r1780 = [R 683] in - let r1781 = [R 529] in - let r1782 = S (N N_module_type) :: r1781 in - let r1783 = S (T T_COLON) :: r1782 in - let r1784 = [R 528] in - let r1785 = [R 531] in - let r1786 = [R 907] in - let r1787 = R 442 :: r1786 in - let r1788 = R 456 :: r1787 in - let r1789 = Sub (r1620) :: r1788 in - let r1790 = S (T T_COLON) :: r1789 in - let r1791 = S (T T_LIDENT) :: r1790 in - let r1792 = R 160 :: r1791 in - let r1793 = R 1297 :: r1792 in - let r1794 = R 450 :: r1793 in - let r1795 = [R 443] in - let r1796 = R 442 :: r1795 in - let r1797 = R 456 :: r1796 in - let r1798 = Sub (r1620) :: r1797 in - let r1799 = S (T T_COLON) :: r1798 in - let r1800 = S (T T_LIDENT) :: r1799 in - let r1801 = R 160 :: r1800 in - let r1802 = R 1297 :: r1801 in - let r1803 = [R 460] in - let r1804 = [R 890] in - let r1805 = [R 909] in - let r1806 = R 684 :: r1805 in - let r1807 = R 456 :: r1806 in - let r1808 = S (N N_module_type) :: r1807 in - let r1809 = R 450 :: r1808 in - let r1810 = [R 895] in - let r1811 = [R 896] in - let r1812 = [R 455] in + let r1724 = [R 613] in + let r1725 = S (T T_RBRACE) :: r1724 in + let r1726 = [R 617] in + let r1727 = S (T T_RBRACE) :: r1726 in + let r1728 = [R 297] in + let r1729 = R 460 :: r1728 in + let r1730 = R 820 :: r1729 in + let r1731 = [R 296] in + let r1732 = R 460 :: r1731 in + let r1733 = R 820 :: r1732 in + let r1734 = [R 463] in + let r1735 = [R 623] in + let r1736 = R 460 :: r1735 in + let r1737 = Sub (r251) :: r1736 in + let r1738 = R 454 :: r1737 in + let r1739 = [R 624] in + let r1740 = R 460 :: r1739 in + let r1741 = Sub (r251) :: r1740 in + let r1742 = R 454 :: r1741 in + let r1743 = [R 547] in + let r1744 = Sub (r411) :: r1743 in + let r1745 = [R 531] in + let r1746 = R 688 :: r1745 in + let r1747 = S (N N_module_type) :: r1746 in + let r1748 = S (T T_COLON) :: r1747 in + let r1749 = [R 904] in + let r1750 = R 460 :: r1749 in + let r1751 = Sub (r1748) :: r1750 in + let r1752 = Sub (r1744) :: r1751 in + let r1753 = R 454 :: r1752 in + let r1754 = [R 569] in + let r1755 = R 460 :: r1754 in + let r1756 = S (N N_module_type) :: r1755 in + let r1757 = S (T T_COLONEQUAL) :: r1756 in + let r1758 = Sub (r60) :: r1757 in + let r1759 = R 454 :: r1758 in + let r1760 = [R 551] in + let r1761 = R 460 :: r1760 in + let r1762 = [R 907] in + let r1763 = R 452 :: r1762 in + let r1764 = R 460 :: r1763 in + let r1765 = R 688 :: r1764 in + let r1766 = S (N N_module_type) :: r1765 in + let r1767 = S (T T_COLON) :: r1766 in + let r1768 = [R 453] in + let r1769 = R 452 :: r1768 in + let r1770 = R 460 :: r1769 in + let r1771 = R 688 :: r1770 in + let r1772 = S (N N_module_type) :: r1771 in + let r1773 = S (T T_COLON) :: r1772 in + let r1774 = Sub (r411) :: r1773 in + let r1775 = [R 24] in + let r1776 = Sub (r118) :: r1775 in + let r1777 = S (T T_AT) :: r1776 in + let r1778 = [R 548] in + let r1779 = S (T T_RPAREN) :: r1778 in + let r1780 = Sub (r1777) :: r1779 in + let r1781 = [R 905] in + let r1782 = R 460 :: r1781 in + let r1783 = R 686 :: r1782 in + let r1784 = [R 687] in + let r1785 = [R 533] in + let r1786 = S (N N_module_type) :: r1785 in + let r1787 = S (T T_COLON) :: r1786 in + let r1788 = [R 532] in + let r1789 = [R 535] in + let r1790 = [R 911] in + let r1791 = R 446 :: r1790 in + let r1792 = R 460 :: r1791 in + let r1793 = Sub (r1621) :: r1792 in + let r1794 = S (T T_COLON) :: r1793 in + let r1795 = S (T T_LIDENT) :: r1794 in + let r1796 = R 160 :: r1795 in + let r1797 = R 1301 :: r1796 in + let r1798 = R 454 :: r1797 in + let r1799 = [R 447] in + let r1800 = R 446 :: r1799 in + let r1801 = R 460 :: r1800 in + let r1802 = Sub (r1621) :: r1801 in + let r1803 = S (T T_COLON) :: r1802 in + let r1804 = S (T T_LIDENT) :: r1803 in + let r1805 = R 160 :: r1804 in + let r1806 = R 1301 :: r1805 in + let r1807 = [R 464] in + let r1808 = [R 894] in + let r1809 = [R 913] in + let r1810 = R 688 :: r1809 in + let r1811 = R 460 :: r1810 in + let r1812 = S (N N_module_type) :: r1811 in let r1813 = R 454 :: r1812 in - let r1814 = R 456 :: r1813 in - let r1815 = R 816 :: r1814 in - let r1816 = Sub (r176) :: r1815 in - let r1817 = S (T T_COLONEQUAL) :: r1816 in - let r1818 = R 665 :: r1817 in - let r1819 = S (T T_LIDENT) :: r1818 in - let r1820 = R 1263 :: r1819 in - let r1821 = [R 1127] in - let r1822 = Sub (r28) :: r1821 in - let r1823 = S (T T_MINUSGREATER) :: r1822 in - let r1824 = S (T T_RPAREN) :: r1823 in - let r1825 = Sub (r34) :: r1824 in - let r1826 = [R 1129] in - let r1827 = [R 1131] in - let r1828 = Sub (r28) :: r1827 in - let r1829 = [R 1133] in - let r1830 = [R 1135] in - let r1831 = Sub (r28) :: r1830 in - let r1832 = [R 1137] in - let r1833 = [R 1139] in - let r1834 = Sub (r28) :: r1833 in - let r1835 = [R 1141] in - let r1836 = [R 1151] in - let r1837 = Sub (r28) :: r1836 in - let r1838 = S (T T_MINUSGREATER) :: r1837 in - let r1839 = [R 1143] in - let r1840 = Sub (r28) :: r1839 in - let r1841 = S (T T_MINUSGREATER) :: r1840 in - let r1842 = S (T T_RPAREN) :: r1841 in - let r1843 = Sub (r34) :: r1842 in - let r1844 = [R 1145] in - let r1845 = [R 1147] in - let r1846 = Sub (r28) :: r1845 in - let r1847 = [R 1149] in - let r1848 = [R 1153] in - let r1849 = [R 1155] in + let r1814 = [R 899] in + let r1815 = [R 900] in + let r1816 = [R 459] in + let r1817 = R 458 :: r1816 in + let r1818 = R 460 :: r1817 in + let r1819 = R 820 :: r1818 in + let r1820 = Sub (r177) :: r1819 in + let r1821 = S (T T_COLONEQUAL) :: r1820 in + let r1822 = R 669 :: r1821 in + let r1823 = S (T T_LIDENT) :: r1822 in + let r1824 = R 1267 :: r1823 in + let r1825 = [R 1131] in + let r1826 = Sub (r28) :: r1825 in + let r1827 = S (T T_MINUSGREATER) :: r1826 in + let r1828 = S (T T_RPAREN) :: r1827 in + let r1829 = Sub (r34) :: r1828 in + let r1830 = [R 1133] in + let r1831 = [R 1135] in + let r1832 = Sub (r28) :: r1831 in + let r1833 = [R 1137] in + let r1834 = [R 1139] in + let r1835 = Sub (r28) :: r1834 in + let r1836 = [R 1141] in + let r1837 = [R 1143] in + let r1838 = Sub (r28) :: r1837 in + let r1839 = [R 1145] in + let r1840 = [R 1155] in + let r1841 = Sub (r28) :: r1840 in + let r1842 = S (T T_MINUSGREATER) :: r1841 in + let r1843 = [R 1147] in + let r1844 = Sub (r28) :: r1843 in + let r1845 = S (T T_MINUSGREATER) :: r1844 in + let r1846 = S (T T_RPAREN) :: r1845 in + let r1847 = Sub (r34) :: r1846 in + let r1848 = [R 1149] in + let r1849 = [R 1151] in let r1850 = Sub (r28) :: r1849 in - let r1851 = [R 1157] in - let r1852 = [R 1203] in - let r1853 = Sub (r28) :: r1852 in - let r1854 = S (T T_MINUSGREATER) :: r1853 in - let r1855 = [R 1205] in + let r1851 = [R 1153] in + let r1852 = [R 1157] in + let r1853 = [R 1159] in + let r1854 = Sub (r28) :: r1853 in + let r1855 = [R 1161] in let r1856 = [R 1207] in let r1857 = Sub (r28) :: r1856 in - let r1858 = [R 1209] in - let r1859 = [R 1195] in - let r1860 = [R 1197] in - let r1861 = [R 1199] in - let r1862 = Sub (r28) :: r1861 in - let r1863 = [R 1201] in - let r1864 = [R 868] in - let r1865 = Sub (r78) :: r1864 in - let r1866 = S (T T_COLON) :: r1865 in - let r1867 = [R 867] in - let r1868 = Sub (r78) :: r1867 in - let r1869 = S (T T_COLON) :: r1868 in - let r1870 = [R 298] in - let r1871 = [R 303] in - let r1872 = [R 502] in - let r1873 = [R 505] in - let r1874 = S (T T_RPAREN) :: r1873 in - let r1875 = S (T T_COLONCOLON) :: r1874 in - let r1876 = S (T T_LPAREN) :: r1875 in - let r1877 = [R 707] in - let r1878 = [R 708] in - let r1879 = [R 709] in - let r1880 = [R 710] in + let r1858 = S (T T_MINUSGREATER) :: r1857 in + let r1859 = [R 1209] in + let r1860 = [R 1211] in + let r1861 = Sub (r28) :: r1860 in + let r1862 = [R 1213] in + let r1863 = [R 1199] in + let r1864 = [R 1201] in + let r1865 = [R 1203] in + let r1866 = Sub (r28) :: r1865 in + let r1867 = [R 1205] in + let r1868 = [R 872] in + let r1869 = Sub (r78) :: r1868 in + let r1870 = S (T T_COLON) :: r1869 in + let r1871 = [R 871] in + let r1872 = Sub (r78) :: r1871 in + let r1873 = S (T T_COLON) :: r1872 in + let r1874 = [R 302] in + let r1875 = [R 307] in + let r1876 = [R 506] in + let r1877 = [R 509] in + let r1878 = S (T T_RPAREN) :: r1877 in + let r1879 = S (T T_COLONCOLON) :: r1878 in + let r1880 = S (T T_LPAREN) :: r1879 in let r1881 = [R 711] in let r1882 = [R 712] in let r1883 = [R 713] in @@ -2466,1153 +2467,1161 @@ let recover = let r1885 = [R 715] in let r1886 = [R 716] in let r1887 = [R 717] in - let r1888 = [R 1242] in - let r1889 = [R 1235] in - let r1890 = [R 1251] in - let r1891 = [R 470] in - let r1892 = [R 1249] in - let r1893 = S (T T_SEMISEMI) :: r1892 in - let r1894 = [R 1250] in - let r1895 = [R 472] in - let r1896 = [R 475] in - let r1897 = [R 474] in - let r1898 = [R 473] in - let r1899 = R 471 :: r1898 in - let r1900 = [R 1282] in - let r1901 = S (T T_EOF) :: r1900 in - let r1902 = R 471 :: r1901 in - let r1903 = [R 1281] in + let r1888 = [R 718] in + let r1889 = [R 719] in + let r1890 = [R 720] in + let r1891 = [R 721] in + let r1892 = [R 1246] in + let r1893 = [R 1239] in + let r1894 = [R 1255] in + let r1895 = [R 474] in + let r1896 = [R 1253] in + let r1897 = S (T T_SEMISEMI) :: r1896 in + let r1898 = [R 1254] in + let r1899 = [R 476] in + let r1900 = [R 479] in + let r1901 = [R 478] in + let r1902 = [R 477] in + let r1903 = R 475 :: r1902 in + let r1904 = [R 1286] in + let r1905 = S (T T_EOF) :: r1904 in + let r1906 = R 475 :: r1905 in + let r1907 = [R 1285] in function - | 0 | 2948 | 2952 | 2970 | 2974 | 2978 | 2982 | 2986 | 2990 | 2994 | 2998 | 3002 | 3006 | 3012 | 3040 -> Nothing - | 2947 -> One ([R 0]) - | 2951 -> One ([R 1]) - | 2957 -> One ([R 2]) - | 2971 -> One ([R 3]) - | 2975 -> One ([R 4]) - | 2981 -> One ([R 5]) - | 2983 -> One ([R 6]) - | 2987 -> One ([R 7]) - | 2991 -> One ([R 8]) - | 2995 -> One ([R 9]) - | 2999 -> One ([R 10]) - | 3005 -> One ([R 11]) - | 3009 -> One ([R 12]) - | 3030 -> One ([R 13]) - | 3050 -> One ([R 14]) + | 0 | 2957 | 2961 | 2979 | 2983 | 2987 | 2991 | 2995 | 2999 | 3003 | 3007 | 3011 | 3015 | 3021 | 3049 -> Nothing + | 2956 -> One ([R 0]) + | 2960 -> One ([R 1]) + | 2966 -> One ([R 2]) + | 2980 -> One ([R 3]) + | 2984 -> One ([R 4]) + | 2990 -> One ([R 5]) + | 2992 -> One ([R 6]) + | 2996 -> One ([R 7]) + | 3000 -> One ([R 8]) + | 3004 -> One ([R 9]) + | 3008 -> One ([R 10]) + | 3014 -> One ([R 11]) + | 3018 -> One ([R 12]) + | 3039 -> One ([R 13]) + | 3059 -> One ([R 14]) | 600 -> One ([R 15]) | 599 -> One ([R 16]) - | 2965 -> One ([R 22]) - | 2967 -> One ([R 23]) + | 2974 -> One ([R 22]) + | 2976 -> One ([R 23]) | 321 -> One ([R 27]) | 265 -> One ([R 28]) | 352 -> One ([R 29]) | 262 -> One ([R 31]) | 351 -> One ([R 32]) | 289 -> One ([R 33]) - | 2354 -> One ([R 46]) - | 2358 -> One ([R 51]) - | 2355 -> One ([R 52]) - | 2413 -> One ([R 61]) - | 2361 -> One ([R 66]) - | 2228 -> One ([R 78]) - | 2208 -> One ([R 79]) - | 2210 -> One ([R 83]) - | 2356 -> One ([R 87]) + | 2355 -> One ([R 46]) + | 2359 -> One ([R 51]) + | 2356 -> One ([R 52]) + | 2414 -> One ([R 61]) + | 2362 -> One ([R 66]) + | 2229 -> One ([R 78]) + | 2209 -> One ([R 79]) + | 2211 -> One ([R 83]) + | 2357 -> One ([R 87]) | 1023 -> One ([R 113]) | 1026 -> One ([R 114]) | 218 -> One ([R 118]) - | 217 | 1937 -> One ([R 119]) - | 2137 -> One ([R 122]) - | 2619 -> One ([R 132]) - | 2621 -> One ([R 133]) + | 217 | 1938 -> One ([R 119]) + | 2138 -> One ([R 122]) + | 2627 -> One ([R 132]) + | 2629 -> One ([R 133]) | 369 -> One ([R 135]) | 266 -> One ([R 136]) | 318 -> One ([R 137]) | 320 -> One ([R 138]) - | 1625 -> One ([R 150]) + | 1626 -> One ([R 150]) | 1 -> One (R 152 :: r9) | 62 -> One (R 152 :: r43) - | 167 -> One (R 152 :: r141) - | 231 -> One (R 152 :: r199) - | 540 -> One (R 152 :: r386) - | 571 -> One (R 152 :: r414) - | 601 -> One (R 152 :: r458) - | 605 -> One (R 152 :: r466) - | 618 -> One (R 152 :: r475) - | 655 -> One (R 152 :: r524) - | 704 -> One (R 152 :: r556) - | 870 -> One (R 152 :: r652) - | 884 -> One (R 152 :: r683) - | 891 -> One (R 152 :: r694) - | 894 -> One (R 152 :: r699) - | 897 -> One (R 152 :: r702) - | 903 -> One (R 152 :: r722) - | 1010 -> One (R 152 :: r783) - | 1035 -> One (R 152 :: r801) - | 1144 -> One (R 152 :: r869) - | 1150 -> One (R 152 :: r873) - | 1166 -> One (R 152 :: r887) - | 1204 -> One (R 152 :: r908) - | 1218 -> One (R 152 :: r915) - | 1224 -> One (R 152 :: r919) - | 1233 -> One (R 152 :: r923) - | 1244 -> One (R 152 :: r929) - | 1250 -> One (R 152 :: r933) - | 1256 -> One (R 152 :: r937) - | 1262 -> One (R 152 :: r941) - | 1268 -> One (R 152 :: r945) - | 1274 -> One (R 152 :: r949) - | 1280 -> One (R 152 :: r953) - | 1286 -> One (R 152 :: r957) - | 1292 -> One (R 152 :: r961) - | 1298 -> One (R 152 :: r965) - | 1304 -> One (R 152 :: r969) - | 1310 -> One (R 152 :: r973) - | 1316 -> One (R 152 :: r977) - | 1322 -> One (R 152 :: r981) - | 1328 -> One (R 152 :: r985) - | 1334 -> One (R 152 :: r989) - | 1340 -> One (R 152 :: r993) - | 1346 -> One (R 152 :: r997) - | 1352 -> One (R 152 :: r1001) - | 1358 -> One (R 152 :: r1005) - | 1364 -> One (R 152 :: r1009) - | 1378 -> One (R 152 :: r1017) - | 1384 -> One (R 152 :: r1021) - | 1522 -> One (R 152 :: r1105) - | 1531 -> One (R 152 :: r1112) - | 1540 -> One (R 152 :: r1119) - | 1550 -> One (R 152 :: r1123) - | 1559 -> One (R 152 :: r1127) - | 1568 -> One (R 152 :: r1131) - | 1579 -> One (R 152 :: r1135) - | 1588 -> One (R 152 :: r1139) - | 1597 -> One (R 152 :: r1143) - | 1604 -> One (R 152 :: r1147) - | 1651 -> One (R 152 :: r1156) - | 1663 -> One (R 152 :: r1173) - | 1671 -> One (R 152 :: r1179) - | 1679 -> One (R 152 :: r1185) - | 1686 -> One (R 152 :: r1188) - | 1692 -> One (R 152 :: r1196) - | 1697 -> One (R 152 :: r1199) - | 1704 -> One (R 152 :: r1202) - | 1769 -> One (R 152 :: r1223) - | 1786 -> One (R 152 :: r1226) - | 1791 -> One (R 152 :: r1230) - | 1798 -> One (R 152 :: r1234) - | 1816 -> One (R 152 :: r1243) - | 1821 -> One (R 152 :: r1247) - | 1832 -> One (R 152 :: r1250) - | 1841 -> One (R 152 :: r1253) - | 1875 -> One (R 152 :: r1263) - | 1908 -> One (R 152 :: r1286) - | 1934 -> One (R 152 :: r1305) - | 2022 -> One (R 152 :: r1354) - | 2041 -> One (R 152 :: r1361) - | 2061 -> One (R 152 :: r1368) - | 2066 -> One (R 152 :: r1372) - | 2067 -> One (R 152 :: r1376) - | 2076 -> One (R 152 :: r1381) - | 2077 -> One (R 152 :: r1386) - | 2115 -> One (R 152 :: r1418) - | 2149 -> One (R 152 :: r1451) - | 2150 -> One (R 152 :: r1462) - | 2447 -> One (R 152 :: r1654) - | 2552 -> One (R 152 :: r1688) - | 2567 -> One (R 152 :: r1696) - | 2682 -> One (R 152 :: r1734) - | 2683 -> One (R 152 :: r1738) - | 2692 -> One (R 152 :: r1749) - | 2693 -> One (R 152 :: r1755) - | 2751 -> One (R 152 :: r1794) - | 2782 -> One (R 152 :: r1809) + | 167 -> One (R 152 :: r142) + | 231 -> One (R 152 :: r200) + | 540 -> One (R 152 :: r387) + | 571 -> One (R 152 :: r415) + | 601 -> One (R 152 :: r459) + | 605 -> One (R 152 :: r467) + | 618 -> One (R 152 :: r476) + | 655 -> One (R 152 :: r527) + | 704 -> One (R 152 :: r559) + | 870 -> One (R 152 :: r653) + | 884 -> One (R 152 :: r684) + | 891 -> One (R 152 :: r695) + | 894 -> One (R 152 :: r700) + | 897 -> One (R 152 :: r703) + | 903 -> One (R 152 :: r723) + | 1010 -> One (R 152 :: r784) + | 1035 -> One (R 152 :: r802) + | 1144 -> One (R 152 :: r870) + | 1150 -> One (R 152 :: r874) + | 1166 -> One (R 152 :: r888) + | 1204 -> One (R 152 :: r909) + | 1218 -> One (R 152 :: r916) + | 1224 -> One (R 152 :: r920) + | 1234 -> One (R 152 :: r924) + | 1245 -> One (R 152 :: r930) + | 1251 -> One (R 152 :: r934) + | 1257 -> One (R 152 :: r938) + | 1263 -> One (R 152 :: r942) + | 1269 -> One (R 152 :: r946) + | 1275 -> One (R 152 :: r950) + | 1281 -> One (R 152 :: r954) + | 1287 -> One (R 152 :: r958) + | 1293 -> One (R 152 :: r962) + | 1299 -> One (R 152 :: r966) + | 1305 -> One (R 152 :: r970) + | 1311 -> One (R 152 :: r974) + | 1317 -> One (R 152 :: r978) + | 1323 -> One (R 152 :: r982) + | 1329 -> One (R 152 :: r986) + | 1335 -> One (R 152 :: r990) + | 1341 -> One (R 152 :: r994) + | 1347 -> One (R 152 :: r998) + | 1353 -> One (R 152 :: r1002) + | 1359 -> One (R 152 :: r1006) + | 1365 -> One (R 152 :: r1010) + | 1379 -> One (R 152 :: r1018) + | 1385 -> One (R 152 :: r1022) + | 1523 -> One (R 152 :: r1106) + | 1532 -> One (R 152 :: r1113) + | 1541 -> One (R 152 :: r1120) + | 1551 -> One (R 152 :: r1124) + | 1560 -> One (R 152 :: r1128) + | 1569 -> One (R 152 :: r1132) + | 1580 -> One (R 152 :: r1136) + | 1589 -> One (R 152 :: r1140) + | 1598 -> One (R 152 :: r1144) + | 1605 -> One (R 152 :: r1148) + | 1652 -> One (R 152 :: r1157) + | 1664 -> One (R 152 :: r1174) + | 1672 -> One (R 152 :: r1180) + | 1680 -> One (R 152 :: r1186) + | 1687 -> One (R 152 :: r1189) + | 1693 -> One (R 152 :: r1197) + | 1698 -> One (R 152 :: r1200) + | 1705 -> One (R 152 :: r1203) + | 1770 -> One (R 152 :: r1224) + | 1787 -> One (R 152 :: r1227) + | 1792 -> One (R 152 :: r1231) + | 1799 -> One (R 152 :: r1235) + | 1817 -> One (R 152 :: r1244) + | 1822 -> One (R 152 :: r1248) + | 1833 -> One (R 152 :: r1251) + | 1842 -> One (R 152 :: r1254) + | 1876 -> One (R 152 :: r1264) + | 1909 -> One (R 152 :: r1287) + | 1935 -> One (R 152 :: r1306) + | 2023 -> One (R 152 :: r1355) + | 2042 -> One (R 152 :: r1362) + | 2062 -> One (R 152 :: r1369) + | 2067 -> One (R 152 :: r1373) + | 2068 -> One (R 152 :: r1377) + | 2077 -> One (R 152 :: r1382) + | 2078 -> One (R 152 :: r1387) + | 2116 -> One (R 152 :: r1419) + | 2150 -> One (R 152 :: r1452) + | 2151 -> One (R 152 :: r1463) + | 2448 -> One (R 152 :: r1655) + | 2550 -> One (R 152 :: r1688) + | 2560 -> One (R 152 :: r1692) + | 2575 -> One (R 152 :: r1700) + | 2690 -> One (R 152 :: r1738) + | 2691 -> One (R 152 :: r1742) + | 2700 -> One (R 152 :: r1753) + | 2701 -> One (R 152 :: r1759) + | 2759 -> One (R 152 :: r1798) + | 2790 -> One (R 152 :: r1813) | 319 -> One ([R 158]) - | 1171 -> One ([R 164]) - | 1610 -> One ([R 188]) - | 1190 -> One ([R 190]) - | 1231 -> One ([R 191]) - | 1211 -> One ([R 192]) - | 1229 -> One ([R 265]) - | 1238 -> One ([R 275]) - | 1242 -> One ([R 276]) - | 284 -> One ([R 279]) - | 1049 -> One ([R 283]) - | 124 -> One ([R 296]) - | 2113 -> One ([R 299]) - | 2114 -> One ([R 300]) - | 93 -> One (R 301 :: r54) - | 97 -> One (R 301 :: r56) - | 598 -> One ([R 305]) - | 147 -> One ([R 310]) - | 143 -> One ([R 313]) - | 1961 -> One ([R 319]) - | 1962 -> One ([R 320]) - | 856 -> One ([R 322]) - | 855 -> One ([R 324]) - | 853 -> One ([R 326]) - | 1609 -> One ([R 328]) - | 729 -> One ([R 354]) - | 754 -> One ([R 358]) - | 776 -> One ([R 362]) - | 2540 -> One ([R 366]) - | 2527 -> One ([R 370]) - | 815 -> One ([R 374]) - | 1461 -> One ([R 378]) - | 842 -> One ([R 382]) - | 828 -> One ([R 386]) - | 798 -> One ([R 390]) - | 1487 -> One ([R 394]) - | 1432 -> One ([R 396]) - | 1492 -> One ([R 416]) - | 2359 -> One ([R 419]) - | 924 -> One ([R 420]) - | 932 -> One ([R 421]) - | 931 -> One ([R 423]) - | 929 -> One ([R 425]) - | 919 -> One ([R 430]) - | 2021 -> One ([R 434]) - | 158 -> One (R 450 :: r115) - | 192 -> One (R 450 :: r164) - | 584 -> One (R 450 :: r423) - | 874 -> One (R 450 :: r657) - | 1038 -> One (R 450 :: r805) - | 1047 -> One (R 450 :: r817) - | 1389 -> One (R 450 :: r1024) - | 2091 -> One (R 450 :: r1396) - | 2164 -> One (R 450 :: r1471) - | 2170 -> One (R 450 :: r1479) - | 2181 -> One (R 450 :: r1485) - | 2192 -> One (R 450 :: r1488) - | 2196 -> One (R 450 :: r1499) - | 2217 -> One (R 450 :: r1513) - | 2233 -> One (R 450 :: r1523) - | 2250 -> One (R 450 :: r1527) - | 2254 -> One (R 450 :: r1540) - | 2283 -> One (R 450 :: r1558) - | 2323 -> One (R 450 :: r1580) - | 2327 -> One (R 450 :: r1584) - | 2328 -> One (R 450 :: r1588) - | 2339 -> One (R 450 :: r1604) - | 2347 -> One (R 450 :: r1613) - | 2405 -> One (R 450 :: r1635) - | 2425 -> One (R 450 :: r1648) - | 2453 -> One (R 450 :: r1663) - | 2582 -> One (R 450 :: r1700) - | 2712 -> One (R 450 :: r1770) - | 2760 -> One (R 450 :: r1802) - | 2791 -> One (R 450 :: r1820) - | 2452 -> One (R 452 :: r1655) - | 2788 -> One (R 452 :: r1810) - | 2790 -> One (R 454 :: r1811) - | 1489 -> One (R 456 :: r1084) - | 2226 -> One (R 456 :: r1514) - | 2411 -> One (R 456 :: r1636) - | 2445 -> One (R 456 :: r1650) - | 2467 -> One (R 456 :: r1665) - | 2477 -> One (R 456 :: r1667) - | 2780 -> One (R 456 :: r1804) - | 3035 -> One (R 456 :: r1893) - | 3046 -> One (R 456 :: r1899) - | 3051 -> One (R 456 :: r1902) - | 2681 -> One (R 458 :: r1730) - | 2771 -> One (R 458 :: r1803) - | 597 -> One (R 461 :: r453) - | 2435 -> One (R 461 :: r1649) - | 2229 -> One (R 465 :: r1515) - | 2414 -> One (R 467 :: r1637) - | 3033 -> One (R 469 :: r1891) - | 3041 -> One (R 471 :: r1895) - | 3042 -> One (R 471 :: r1896) - | 3043 -> One (R 471 :: r1897) - | 783 -> One ([R 477]) - | 787 -> One ([R 479]) - | 1780 -> One ([R 482]) - | 2585 -> One ([R 483]) - | 2588 -> One ([R 484]) - | 2587 -> One ([R 486]) - | 2586 -> One ([R 488]) - | 2584 -> One ([R 489]) - | 2966 -> One ([R 501]) - | 2956 -> One ([R 503]) - | 2964 -> One ([R 504]) - | 2963 -> One ([R 506]) - | 264 -> One ([R 509]) - | 294 -> One ([R 510]) - | 1025 -> One ([R 517]) - | 1767 -> One ([R 518]) - | 2742 -> One ([R 530]) - | 1116 -> One ([R 534]) - | 1128 -> One ([R 535]) - | 1131 -> One ([R 536]) - | 1127 -> One ([R 537]) - | 1132 -> One ([R 539]) - | 583 -> One ([R 540]) - | 575 | 2702 -> One ([R 541]) - | 1104 -> One ([R 550]) - | 1076 -> One ([R 553]) - | 1053 -> One ([R 554]) - | 1107 -> One ([R 556]) - | 1082 -> One ([R 558]) - | 1090 -> One ([R 560]) - | 1100 -> One ([R 561]) - | 1089 -> One ([R 562]) - | 2256 | 2269 -> One ([R 568]) - | 1945 -> One ([R 570]) - | 1946 -> One ([R 571]) - | 2174 -> One ([R 573]) - | 2172 -> One ([R 574]) - | 2175 -> One ([R 575]) - | 2173 -> One ([R 576]) - | 188 -> One ([R 582]) - | 162 -> One ([R 584]) - | 275 -> One ([R 586]) - | 116 -> One ([R 587]) - | 114 -> One ([R 588]) - | 115 -> One ([R 589]) - | 117 -> One ([R 590]) - | 119 -> One ([R 591]) - | 118 -> One ([R 592]) - | 958 -> One ([R 594]) - | 2127 -> One ([R 596]) - | 2637 -> One ([R 597]) - | 2626 -> One ([R 598]) - | 2656 -> One ([R 599]) - | 2627 -> One ([R 600]) - | 2655 -> One ([R 601]) - | 2647 -> One ([R 602]) - | 67 | 622 -> One ([R 621]) - | 76 | 1139 -> One ([R 622]) - | 106 -> One ([R 623]) - | 92 -> One ([R 625]) - | 96 -> One ([R 627]) - | 100 -> One ([R 629]) - | 83 -> One ([R 630]) - | 103 | 1642 -> One ([R 631]) - | 82 -> One ([R 632]) - | 105 -> One ([R 633]) - | 104 -> One ([R 634]) - | 81 -> One ([R 635]) - | 80 -> One ([R 636]) - | 79 -> One ([R 637]) - | 73 -> One ([R 638]) - | 78 -> One ([R 639]) - | 70 | 570 | 1034 -> One ([R 640]) - | 69 | 1033 -> One ([R 641]) - | 68 -> One ([R 642]) - | 75 | 738 | 1138 -> One ([R 643]) - | 74 | 1137 -> One ([R 644]) - | 66 -> One ([R 645]) - | 71 -> One ([R 646]) - | 85 -> One ([R 647]) - | 77 -> One ([R 648]) - | 84 -> One ([R 649]) - | 72 -> One ([R 650]) - | 102 -> One ([R 651]) - | 107 -> One ([R 652]) - | 101 -> One ([R 654]) - | 499 -> One ([R 655]) - | 498 -> One (R 656 :: r365) - | 238 -> One (R 657 :: r218) - | 239 -> One ([R 658]) - | 784 -> One (R 659 :: r587) - | 785 -> One ([R 660]) - | 1398 -> One (R 661 :: r1032) - | 1399 -> One ([R 662]) - | 1400 -> One ([R 663]) - | 1405 -> One ([R 664]) - | 2462 -> One ([R 666]) - | 1756 -> One ([R 681]) - | 1007 -> One ([R 687]) - | 1775 -> One ([R 688]) - | 130 -> One ([R 690]) - | 711 -> One ([R 719]) - | 709 -> One ([R 720]) - | 708 -> One ([R 723]) - | 707 | 1140 -> One ([R 725]) - | 801 -> One ([R 731]) - | 802 -> One ([R 732]) - | 797 -> One ([R 735]) - | 940 -> One ([R 736]) - | 2148 -> One ([R 740]) - | 2285 | 2304 -> One ([R 750]) - | 2185 -> One ([R 752]) - | 2183 -> One ([R 753]) - | 2186 -> One ([R 754]) - | 2184 -> One ([R 755]) - | 2368 -> One (R 756 :: r1618) - | 2010 -> One ([R 757]) - | 2624 -> One ([R 762]) - | 2625 -> One ([R 763]) - | 2623 -> One ([R 764]) - | 2500 -> One ([R 766]) - | 2499 -> One ([R 767]) - | 2501 -> One ([R 768]) - | 2496 -> One ([R 769]) - | 2497 -> One ([R 770]) - | 2668 -> One ([R 772]) - | 2666 -> One ([R 773]) - | 714 -> One ([R 804]) - | 803 -> One ([R 810]) - | 1003 -> One ([R 819]) - | 1715 -> One ([R 820]) - | 1714 -> One ([R 821]) - | 1105 -> One ([R 822]) - | 1050 -> One ([R 823]) - | 1612 -> One ([R 824]) - | 1611 -> One ([R 825]) - | 521 -> One ([R 827]) - | 1099 -> One ([R 839]) - | 397 -> One ([R 857]) - | 394 -> One ([R 860]) - | 1992 -> One ([R 863]) - | 2932 -> One ([R 866]) - | 491 -> One ([R 869]) - | 1506 -> One ([R 872]) - | 1164 -> One ([R 874]) - | 1507 -> One ([R 875]) - | 1614 -> One ([R 876]) - | 1847 -> One ([R 878]) - | 1848 -> One ([R 879]) - | 772 -> One ([R 881]) - | 773 -> One ([R 882]) - | 1759 -> One ([R 884]) - | 1760 -> One ([R 885]) - | 2802 -> One ([R 891]) - | 2779 -> One ([R 892]) - | 2770 -> One ([R 893]) - | 2773 -> One ([R 894]) - | 2772 -> One ([R 899]) - | 2777 -> One ([R 902]) - | 2776 -> One ([R 904]) - | 2775 -> One ([R 905]) - | 2774 -> One ([R 906]) - | 2803 -> One ([R 908]) - | 679 -> One ([R 911]) - | 566 -> One ([R 912]) - | 567 -> One ([R 913]) - | 561 -> One ([R 914]) - | 562 -> One ([R 915]) - | 568 -> One ([R 918]) - | 563 -> One ([R 920]) - | 1024 -> One ([R 950]) - | 1202 | 1230 -> One ([R 951]) - | 1028 | 1210 -> One ([R 952]) - | 1514 | 1602 -> One ([R 957]) - | 1201 -> One ([R 964]) - | 1203 -> One ([R 989]) - | 677 | 1392 -> One ([R 996]) - | 692 -> One ([R 999]) - | 726 -> One ([R 1004]) - | 699 -> One ([R 1005]) - | 774 -> One ([R 1008]) - | 725 -> One ([R 1012]) - | 698 -> One ([R 1014]) - | 29 -> One ([R 1015]) - | 8 -> One ([R 1016]) - | 53 -> One ([R 1018]) - | 52 -> One ([R 1019]) - | 51 -> One ([R 1020]) - | 50 -> One ([R 1021]) - | 49 -> One ([R 1022]) - | 48 -> One ([R 1023]) - | 47 -> One ([R 1024]) - | 46 -> One ([R 1025]) - | 45 -> One ([R 1026]) - | 44 -> One ([R 1027]) - | 43 -> One ([R 1028]) - | 42 -> One ([R 1029]) - | 41 -> One ([R 1030]) - | 40 -> One ([R 1031]) - | 39 -> One ([R 1032]) - | 38 -> One ([R 1033]) - | 37 -> One ([R 1034]) - | 36 -> One ([R 1035]) - | 35 -> One ([R 1036]) - | 34 -> One ([R 1037]) - | 33 -> One ([R 1038]) - | 32 -> One ([R 1039]) - | 31 -> One ([R 1040]) - | 30 -> One ([R 1041]) - | 28 -> One ([R 1042]) - | 27 -> One ([R 1043]) - | 26 -> One ([R 1044]) - | 25 -> One ([R 1045]) - | 24 -> One ([R 1046]) - | 23 -> One ([R 1047]) - | 22 -> One ([R 1048]) - | 21 -> One ([R 1049]) - | 20 -> One ([R 1050]) - | 19 -> One ([R 1051]) - | 18 -> One ([R 1052]) - | 17 -> One ([R 1053]) - | 16 -> One ([R 1054]) - | 15 -> One ([R 1055]) - | 14 -> One ([R 1056]) - | 13 -> One ([R 1057]) - | 12 -> One ([R 1058]) - | 11 -> One ([R 1059]) - | 10 -> One ([R 1060]) - | 9 -> One ([R 1061]) - | 7 -> One ([R 1062]) - | 6 -> One ([R 1063]) - | 5 -> One ([R 1064]) - | 4 -> One ([R 1065]) - | 3 -> One ([R 1066]) - | 2438 -> One ([R 1067]) - | 405 -> One ([R 1071]) - | 413 -> One ([R 1072]) - | 421 -> One ([R 1073]) - | 429 -> One ([R 1074]) - | 442 -> One ([R 1075]) - | 450 -> One ([R 1076]) - | 458 -> One ([R 1077]) - | 466 -> One ([R 1078]) - | 2815 -> One ([R 1079]) - | 2823 -> One ([R 1080]) - | 2831 -> One ([R 1081]) - | 2839 -> One ([R 1082]) - | 2852 -> One ([R 1083]) - | 2860 -> One ([R 1084]) - | 2868 -> One ([R 1085]) - | 2876 -> One ([R 1086]) - | 2599 -> One ([R 1087]) - | 2607 -> One ([R 1088]) - | 473 -> One ([R 1089]) - | 281 -> One ([R 1090]) - | 327 -> One ([R 1091]) - | 365 -> One ([R 1092]) - | 333 -> One ([R 1093]) - | 340 -> One ([R 1094]) - | 404 -> One ([R 1096]) - | 408 -> One ([R 1098]) - | 412 -> One ([R 1100]) - | 416 -> One ([R 1102]) - | 420 -> One ([R 1104]) - | 424 -> One ([R 1106]) - | 428 -> One ([R 1108]) - | 432 -> One ([R 1110]) - | 441 -> One ([R 1112]) - | 445 -> One ([R 1114]) - | 449 -> One ([R 1116]) - | 453 -> One ([R 1118]) - | 457 -> One ([R 1120]) - | 461 -> One ([R 1122]) - | 465 -> One ([R 1124]) - | 469 -> One ([R 1126]) - | 2814 -> One ([R 1128]) - | 2818 -> One ([R 1130]) + | 1171 -> One ([R 165]) + | 1230 -> One ([R 188]) + | 1611 -> One ([R 189]) + | 2555 -> One ([R 191]) + | 1190 -> One ([R 193]) + | 1232 -> One ([R 194]) + | 2557 -> One ([R 195]) + | 1211 -> One ([R 196]) + | 1229 -> One ([R 269]) + | 1239 -> One ([R 279]) + | 1243 -> One ([R 280]) + | 284 -> One ([R 283]) + | 1049 -> One ([R 287]) + | 124 -> One ([R 300]) + | 2114 -> One ([R 303]) + | 2115 -> One ([R 304]) + | 93 -> One (R 305 :: r54) + | 97 -> One (R 305 :: r56) + | 598 -> One ([R 309]) + | 147 -> One ([R 314]) + | 143 -> One ([R 317]) + | 1962 -> One ([R 323]) + | 1963 -> One ([R 324]) + | 856 -> One ([R 326]) + | 855 -> One ([R 328]) + | 853 -> One ([R 330]) + | 1610 -> One ([R 332]) + | 729 -> One ([R 358]) + | 754 -> One ([R 362]) + | 776 -> One ([R 366]) + | 2541 -> One ([R 370]) + | 2528 -> One ([R 374]) + | 815 -> One ([R 378]) + | 1462 -> One ([R 382]) + | 842 -> One ([R 386]) + | 828 -> One ([R 390]) + | 798 -> One ([R 394]) + | 1488 -> One ([R 398]) + | 1433 -> One ([R 400]) + | 1493 -> One ([R 420]) + | 2360 -> One ([R 423]) + | 924 -> One ([R 424]) + | 932 -> One ([R 425]) + | 931 -> One ([R 427]) + | 929 -> One ([R 429]) + | 919 -> One ([R 434]) + | 2022 -> One ([R 438]) + | 158 -> One (R 454 :: r116) + | 192 -> One (R 454 :: r165) + | 584 -> One (R 454 :: r424) + | 874 -> One (R 454 :: r658) + | 1038 -> One (R 454 :: r806) + | 1047 -> One (R 454 :: r818) + | 1390 -> One (R 454 :: r1025) + | 2092 -> One (R 454 :: r1397) + | 2165 -> One (R 454 :: r1472) + | 2171 -> One (R 454 :: r1480) + | 2182 -> One (R 454 :: r1486) + | 2193 -> One (R 454 :: r1489) + | 2197 -> One (R 454 :: r1500) + | 2218 -> One (R 454 :: r1514) + | 2234 -> One (R 454 :: r1524) + | 2251 -> One (R 454 :: r1528) + | 2255 -> One (R 454 :: r1541) + | 2284 -> One (R 454 :: r1559) + | 2324 -> One (R 454 :: r1581) + | 2328 -> One (R 454 :: r1585) + | 2329 -> One (R 454 :: r1589) + | 2340 -> One (R 454 :: r1605) + | 2348 -> One (R 454 :: r1614) + | 2406 -> One (R 454 :: r1636) + | 2426 -> One (R 454 :: r1649) + | 2454 -> One (R 454 :: r1664) + | 2590 -> One (R 454 :: r1704) + | 2720 -> One (R 454 :: r1774) + | 2768 -> One (R 454 :: r1806) + | 2799 -> One (R 454 :: r1824) + | 2453 -> One (R 456 :: r1656) + | 2796 -> One (R 456 :: r1814) + | 2798 -> One (R 458 :: r1815) + | 1490 -> One (R 460 :: r1085) + | 2227 -> One (R 460 :: r1515) + | 2412 -> One (R 460 :: r1637) + | 2446 -> One (R 460 :: r1651) + | 2468 -> One (R 460 :: r1666) + | 2478 -> One (R 460 :: r1668) + | 2788 -> One (R 460 :: r1808) + | 3044 -> One (R 460 :: r1897) + | 3055 -> One (R 460 :: r1903) + | 3060 -> One (R 460 :: r1906) + | 2689 -> One (R 462 :: r1734) + | 2779 -> One (R 462 :: r1807) + | 597 -> One (R 465 :: r454) + | 2436 -> One (R 465 :: r1650) + | 2230 -> One (R 469 :: r1516) + | 2415 -> One (R 471 :: r1638) + | 3042 -> One (R 473 :: r1895) + | 3050 -> One (R 475 :: r1899) + | 3051 -> One (R 475 :: r1900) + | 3052 -> One (R 475 :: r1901) + | 783 -> One ([R 481]) + | 787 -> One ([R 483]) + | 1781 -> One ([R 486]) + | 2593 -> One ([R 487]) + | 2596 -> One ([R 488]) + | 2595 -> One ([R 490]) + | 2594 -> One ([R 492]) + | 2592 -> One ([R 493]) + | 2975 -> One ([R 505]) + | 2965 -> One ([R 507]) + | 2973 -> One ([R 508]) + | 2972 -> One ([R 510]) + | 264 -> One ([R 513]) + | 294 -> One ([R 514]) + | 1025 -> One ([R 521]) + | 1768 -> One ([R 522]) + | 2750 -> One ([R 534]) + | 1116 -> One ([R 538]) + | 1128 -> One ([R 539]) + | 1131 -> One ([R 540]) + | 1127 -> One ([R 541]) + | 1132 -> One ([R 543]) + | 583 -> One ([R 544]) + | 575 | 2710 -> One ([R 545]) + | 1104 -> One ([R 554]) + | 1076 -> One ([R 557]) + | 1053 -> One ([R 558]) + | 1107 -> One ([R 560]) + | 1082 -> One ([R 562]) + | 1090 -> One ([R 564]) + | 1100 -> One ([R 565]) + | 1089 -> One ([R 566]) + | 2257 | 2270 -> One ([R 572]) + | 1946 -> One ([R 574]) + | 1947 -> One ([R 575]) + | 2175 -> One ([R 577]) + | 2173 -> One ([R 578]) + | 2176 -> One ([R 579]) + | 2174 -> One ([R 580]) + | 188 -> One ([R 586]) + | 162 -> One ([R 588]) + | 275 -> One ([R 590]) + | 116 -> One ([R 591]) + | 114 -> One ([R 592]) + | 115 -> One ([R 593]) + | 117 -> One ([R 594]) + | 119 -> One ([R 595]) + | 118 -> One ([R 596]) + | 958 -> One ([R 598]) + | 2128 -> One ([R 600]) + | 2645 -> One ([R 601]) + | 2634 -> One ([R 602]) + | 2664 -> One ([R 603]) + | 2635 -> One ([R 604]) + | 2663 -> One ([R 605]) + | 2655 -> One ([R 606]) + | 67 | 622 -> One ([R 625]) + | 76 | 1139 -> One ([R 626]) + | 106 -> One ([R 627]) + | 92 -> One ([R 629]) + | 96 -> One ([R 631]) + | 100 -> One ([R 633]) + | 83 -> One ([R 634]) + | 103 | 1643 -> One ([R 635]) + | 82 -> One ([R 636]) + | 105 -> One ([R 637]) + | 104 -> One ([R 638]) + | 81 -> One ([R 639]) + | 80 -> One ([R 640]) + | 79 -> One ([R 641]) + | 73 -> One ([R 642]) + | 78 -> One ([R 643]) + | 70 | 570 | 1034 -> One ([R 644]) + | 69 | 1033 -> One ([R 645]) + | 68 -> One ([R 646]) + | 75 | 738 | 1138 -> One ([R 647]) + | 74 | 1137 -> One ([R 648]) + | 66 -> One ([R 649]) + | 71 -> One ([R 650]) + | 85 -> One ([R 651]) + | 77 -> One ([R 652]) + | 84 -> One ([R 653]) + | 72 -> One ([R 654]) + | 102 -> One ([R 655]) + | 107 -> One ([R 656]) + | 101 -> One ([R 658]) + | 499 -> One ([R 659]) + | 498 -> One (R 660 :: r366) + | 238 -> One (R 661 :: r219) + | 239 -> One ([R 662]) + | 784 -> One (R 663 :: r588) + | 785 -> One ([R 664]) + | 1399 -> One (R 665 :: r1033) + | 1400 -> One ([R 666]) + | 1401 -> One ([R 667]) + | 1406 -> One ([R 668]) + | 2463 -> One ([R 670]) + | 1757 -> One ([R 685]) + | 1007 -> One ([R 691]) + | 1776 -> One ([R 692]) + | 130 -> One ([R 694]) + | 711 -> One ([R 723]) + | 709 -> One ([R 724]) + | 708 -> One ([R 727]) + | 707 | 1140 -> One ([R 729]) + | 801 -> One ([R 735]) + | 802 -> One ([R 736]) + | 797 -> One ([R 739]) + | 940 -> One ([R 740]) + | 2149 -> One ([R 744]) + | 2286 | 2305 -> One ([R 754]) + | 2186 -> One ([R 756]) + | 2184 -> One ([R 757]) + | 2187 -> One ([R 758]) + | 2185 -> One ([R 759]) + | 2369 -> One (R 760 :: r1619) + | 2011 -> One ([R 761]) + | 2632 -> One ([R 766]) + | 2633 -> One ([R 767]) + | 2631 -> One ([R 768]) + | 2501 -> One ([R 770]) + | 2500 -> One ([R 771]) + | 2502 -> One ([R 772]) + | 2497 -> One ([R 773]) + | 2498 -> One ([R 774]) + | 2676 -> One ([R 776]) + | 2674 -> One ([R 777]) + | 714 -> One ([R 808]) + | 803 -> One ([R 814]) + | 1003 -> One ([R 823]) + | 1716 -> One ([R 824]) + | 1715 -> One ([R 825]) + | 1105 -> One ([R 826]) + | 1050 -> One ([R 827]) + | 1613 -> One ([R 828]) + | 1612 -> One ([R 829]) + | 521 -> One ([R 831]) + | 1099 -> One ([R 843]) + | 397 -> One ([R 861]) + | 394 -> One ([R 864]) + | 1993 -> One ([R 867]) + | 2941 -> One ([R 870]) + | 491 -> One ([R 873]) + | 1507 -> One ([R 876]) + | 1164 -> One ([R 878]) + | 1508 -> One ([R 879]) + | 1615 -> One ([R 880]) + | 1848 -> One ([R 882]) + | 1849 -> One ([R 883]) + | 772 -> One ([R 885]) + | 773 -> One ([R 886]) + | 1760 -> One ([R 888]) + | 1761 -> One ([R 889]) + | 2810 -> One ([R 895]) + | 2787 -> One ([R 896]) + | 2778 -> One ([R 897]) + | 2781 -> One ([R 898]) + | 2780 -> One ([R 903]) + | 2785 -> One ([R 906]) + | 2784 -> One ([R 908]) + | 2783 -> One ([R 909]) + | 2782 -> One ([R 910]) + | 2811 -> One ([R 912]) + | 679 -> One ([R 915]) + | 566 -> One ([R 916]) + | 567 -> One ([R 917]) + | 561 -> One ([R 918]) + | 562 -> One ([R 919]) + | 568 -> One ([R 922]) + | 563 -> One ([R 924]) + | 1024 -> One ([R 954]) + | 1202 | 1231 | 2556 -> One ([R 955]) + | 1028 | 1210 -> One ([R 956]) + | 1515 | 1603 -> One ([R 961]) + | 1201 -> One ([R 968]) + | 1203 -> One ([R 993]) + | 677 | 1393 -> One ([R 1000]) + | 692 -> One ([R 1003]) + | 726 -> One ([R 1008]) + | 699 -> One ([R 1009]) + | 774 -> One ([R 1012]) + | 725 -> One ([R 1016]) + | 698 -> One ([R 1018]) + | 29 -> One ([R 1019]) + | 8 -> One ([R 1020]) + | 53 -> One ([R 1022]) + | 52 -> One ([R 1023]) + | 51 -> One ([R 1024]) + | 50 -> One ([R 1025]) + | 49 -> One ([R 1026]) + | 48 -> One ([R 1027]) + | 47 -> One ([R 1028]) + | 46 -> One ([R 1029]) + | 45 -> One ([R 1030]) + | 44 -> One ([R 1031]) + | 43 -> One ([R 1032]) + | 42 -> One ([R 1033]) + | 41 -> One ([R 1034]) + | 40 -> One ([R 1035]) + | 39 -> One ([R 1036]) + | 38 -> One ([R 1037]) + | 37 -> One ([R 1038]) + | 36 -> One ([R 1039]) + | 35 -> One ([R 1040]) + | 34 -> One ([R 1041]) + | 33 -> One ([R 1042]) + | 32 -> One ([R 1043]) + | 31 -> One ([R 1044]) + | 30 -> One ([R 1045]) + | 28 -> One ([R 1046]) + | 27 -> One ([R 1047]) + | 26 -> One ([R 1048]) + | 25 -> One ([R 1049]) + | 24 -> One ([R 1050]) + | 23 -> One ([R 1051]) + | 22 -> One ([R 1052]) + | 21 -> One ([R 1053]) + | 20 -> One ([R 1054]) + | 19 -> One ([R 1055]) + | 18 -> One ([R 1056]) + | 17 -> One ([R 1057]) + | 16 -> One ([R 1058]) + | 15 -> One ([R 1059]) + | 14 -> One ([R 1060]) + | 13 -> One ([R 1061]) + | 12 -> One ([R 1062]) + | 11 -> One ([R 1063]) + | 10 -> One ([R 1064]) + | 9 -> One ([R 1065]) + | 7 -> One ([R 1066]) + | 6 -> One ([R 1067]) + | 5 -> One ([R 1068]) + | 4 -> One ([R 1069]) + | 3 -> One ([R 1070]) + | 2439 -> One ([R 1071]) + | 405 -> One ([R 1075]) + | 413 -> One ([R 1076]) + | 421 -> One ([R 1077]) + | 429 -> One ([R 1078]) + | 442 -> One ([R 1079]) + | 450 -> One ([R 1080]) + | 458 -> One ([R 1081]) + | 466 -> One ([R 1082]) + | 2823 -> One ([R 1083]) + | 2831 -> One ([R 1084]) + | 2839 -> One ([R 1085]) + | 2847 -> One ([R 1086]) + | 2860 -> One ([R 1087]) + | 2868 -> One ([R 1088]) + | 2876 -> One ([R 1089]) + | 2884 -> One ([R 1090]) + | 2607 -> One ([R 1091]) + | 2615 -> One ([R 1092]) + | 473 -> One ([R 1093]) + | 281 -> One ([R 1094]) + | 327 -> One ([R 1095]) + | 365 -> One ([R 1096]) + | 333 -> One ([R 1097]) + | 340 -> One ([R 1098]) + | 404 -> One ([R 1100]) + | 408 -> One ([R 1102]) + | 412 -> One ([R 1104]) + | 416 -> One ([R 1106]) + | 420 -> One ([R 1108]) + | 424 -> One ([R 1110]) + | 428 -> One ([R 1112]) + | 432 -> One ([R 1114]) + | 441 -> One ([R 1116]) + | 445 -> One ([R 1118]) + | 449 -> One ([R 1120]) + | 453 -> One ([R 1122]) + | 457 -> One ([R 1124]) + | 461 -> One ([R 1126]) + | 465 -> One ([R 1128]) + | 469 -> One ([R 1130]) | 2822 -> One ([R 1132]) | 2826 -> One ([R 1134]) | 2830 -> One ([R 1136]) | 2834 -> One ([R 1138]) | 2838 -> One ([R 1140]) | 2842 -> One ([R 1142]) - | 2851 -> One ([R 1144]) - | 2855 -> One ([R 1146]) + | 2846 -> One ([R 1144]) + | 2850 -> One ([R 1146]) | 2859 -> One ([R 1148]) | 2863 -> One ([R 1150]) | 2867 -> One ([R 1152]) | 2871 -> One ([R 1154]) | 2875 -> One ([R 1156]) | 2879 -> One ([R 1158]) - | 2598 -> One ([R 1160]) - | 2602 -> One ([R 1162]) + | 2883 -> One ([R 1160]) + | 2887 -> One ([R 1162]) | 2606 -> One ([R 1164]) | 2610 -> One ([R 1166]) - | 277 -> One ([R 1168]) - | 476 -> One ([R 1170]) - | 280 -> One ([R 1172]) - | 472 -> One ([R 1174]) - | 326 -> One ([R 1176]) - | 360 -> One ([R 1178]) - | 364 -> One ([R 1180]) - | 368 -> One ([R 1182]) - | 332 -> One ([R 1184]) - | 336 -> One ([R 1186]) - | 339 -> One ([R 1188]) - | 343 -> One ([R 1190]) - | 2904 -> One ([R 1191]) - | 2912 -> One ([R 1192]) - | 2886 -> One ([R 1193]) - | 2894 -> One ([R 1194]) - | 2903 -> One ([R 1196]) - | 2907 -> One ([R 1198]) + | 2614 -> One ([R 1168]) + | 2618 -> One ([R 1170]) + | 277 -> One ([R 1172]) + | 476 -> One ([R 1174]) + | 280 -> One ([R 1176]) + | 472 -> One ([R 1178]) + | 326 -> One ([R 1180]) + | 360 -> One ([R 1182]) + | 364 -> One ([R 1184]) + | 368 -> One ([R 1186]) + | 332 -> One ([R 1188]) + | 336 -> One ([R 1190]) + | 339 -> One ([R 1192]) + | 343 -> One ([R 1194]) + | 2912 -> One ([R 1195]) + | 2920 -> One ([R 1196]) + | 2894 -> One ([R 1197]) + | 2902 -> One ([R 1198]) | 2911 -> One ([R 1200]) | 2915 -> One ([R 1202]) - | 2885 -> One ([R 1204]) - | 2889 -> One ([R 1206]) + | 2919 -> One ([R 1204]) + | 2923 -> One ([R 1206]) | 2893 -> One ([R 1208]) | 2897 -> One ([R 1210]) - | 2471 -> One ([R 1212]) - | 2443 | 2472 -> One ([R 1214]) - | 2464 -> One ([R 1216]) - | 2444 -> One ([R 1217]) - | 2439 -> One ([R 1218]) - | 2434 -> One ([R 1219]) - | 2437 -> One ([R 1223]) - | 2441 -> One ([R 1226]) - | 2440 -> One ([R 1227]) - | 2465 -> One ([R 1229]) - | 617 -> One ([R 1231]) - | 616 -> One ([R 1232]) - | 3024 -> One ([R 1236]) - | 3025 -> One ([R 1237]) - | 3027 -> One ([R 1238]) - | 3028 -> One ([R 1239]) - | 3026 -> One ([R 1240]) - | 3023 -> One ([R 1241]) - | 3016 -> One ([R 1243]) - | 3017 -> One ([R 1244]) - | 3019 -> One ([R 1245]) - | 3020 -> One ([R 1246]) - | 3018 -> One ([R 1247]) - | 3015 -> One ([R 1248]) - | 3029 -> One ([R 1252]) - | 173 -> One (R 1263 :: r147) - | 1056 -> One (R 1263 :: r822) - | 1070 -> One ([R 1264]) - | 151 -> One ([R 1266]) - | 296 -> One ([R 1268]) - | 171 -> One ([R 1270]) - | 174 -> One ([R 1271]) - | 178 -> One ([R 1272]) - | 172 -> One ([R 1273]) - | 179 -> One ([R 1274]) - | 175 -> One ([R 1275]) - | 180 -> One ([R 1276]) - | 177 -> One ([R 1277]) - | 170 -> One ([R 1278]) - | 664 -> One ([R 1279]) - | 665 -> One ([R 1280]) - | 678 -> One ([R 1285]) - | 1200 -> One ([R 1286]) - | 675 -> One ([R 1293]) - | 537 -> One ([R 1294]) - | 673 -> One ([R 1295]) - | 2153 -> One ([R 1298]) - | 2267 -> One ([R 1299]) - | 2270 -> One ([R 1300]) - | 2268 -> One ([R 1301]) - | 2302 -> One ([R 1302]) - | 2305 -> One ([R 1303]) - | 2303 -> One ([R 1304]) - | 1059 -> One ([R 1311]) - | 1060 -> One ([R 1312]) - | 1752 -> One (S (T T_WITH) :: r1220) - | 153 | 223 | 283 | 306 | 434 | 1978 | 2844 -> One (S (T T_UNDERSCORE) :: r87) - | 297 -> One (S (T T_UNDERSCORE) :: r277) - | 374 -> One (S (T T_UNDERSCORE) :: r315) - | 386 -> One (S (T T_UNDERSCORE) :: r323) - | 1984 -> One (S (T T_UNDERSCORE) :: r1342) - | 2924 -> One (S (T T_UNDERSCORE) :: r1866) - | 579 -> One (S (T T_TYPE) :: r420) - | 1967 -> One (S (T T_STAR) :: r1336) - | 3031 -> One (S (T T_SEMISEMI) :: r1890) - | 3038 -> One (S (T T_SEMISEMI) :: r1894) - | 2953 -> One (S (T T_RPAREN) :: r181) - | 285 -> One (S (T T_RPAREN) :: r270) - | 384 | 478 -> One (S (T T_RPAREN) :: r320) - | 702 -> One (S (T T_RPAREN) :: r553) - | 765 -> One (S (T T_RPAREN) :: r586) - | 920 -> One (S (T T_RPAREN) :: r734) - | 922 -> One (S (T T_RPAREN) :: r735) - | 972 -> One (S (T T_RPAREN) :: r766) - | 976 -> One (S (T T_RPAREN) :: r767) - | 995 -> One (S (T T_RPAREN) :: r778) - | 997 -> One (S (T T_RPAREN) :: r779) - | 1040 -> One (S (T T_RPAREN) :: r806) - | 1112 -> One (S (T T_RPAREN) :: r849) - | 1118 -> One (S (T T_RPAREN) :: r850) - | 1125 -> One (S (T T_RPAREN) :: r853) - | 1129 -> One (S (T T_RPAREN) :: r854) - | 1393 -> One (S (T T_RPAREN) :: r1029) - | 1643 -> One (S (T T_RPAREN) :: r1151) - | 2051 -> One (S (T T_RPAREN) :: r1364) - | 2053 -> One (S (T T_RPAREN) :: r1365) - | 2954 -> One (S (T T_RPAREN) :: r1872) - | 1941 | 2611 -> One (S (T T_RBRACKET) :: r504) - | 1735 -> One (S (T T_RBRACKET) :: r1210) - | 1741 -> One (S (T T_RBRACKET) :: r1211) - | 1743 -> One (S (T T_RBRACKET) :: r1212) - | 1746 -> One (S (T T_RBRACKET) :: r1213) - | 1856 -> One (S (T T_RBRACKET) :: r1255) - | 1861 -> One (S (T T_RBRACKET) :: r1256) - | 310 -> One (S (T T_QUOTE) :: r294) - | 371 -> One (S (T T_QUOTE) :: r311) - | 2194 -> One (S (T T_OPEN) :: r1495) - | 2331 -> One (S (T T_OPEN) :: r1595) + | 2901 -> One ([R 1212]) + | 2905 -> One ([R 1214]) + | 2472 -> One ([R 1216]) + | 2444 | 2473 -> One ([R 1218]) + | 2465 -> One ([R 1220]) + | 2445 -> One ([R 1221]) + | 2440 -> One ([R 1222]) + | 2435 -> One ([R 1223]) + | 2438 -> One ([R 1227]) + | 2442 -> One ([R 1230]) + | 2441 -> One ([R 1231]) + | 2466 -> One ([R 1233]) + | 617 -> One ([R 1235]) + | 616 -> One ([R 1236]) + | 3033 -> One ([R 1240]) + | 3034 -> One ([R 1241]) + | 3036 -> One ([R 1242]) + | 3037 -> One ([R 1243]) + | 3035 -> One ([R 1244]) + | 3032 -> One ([R 1245]) + | 3025 -> One ([R 1247]) + | 3026 -> One ([R 1248]) + | 3028 -> One ([R 1249]) + | 3029 -> One ([R 1250]) + | 3027 -> One ([R 1251]) + | 3024 -> One ([R 1252]) + | 3038 -> One ([R 1256]) + | 173 -> One (R 1267 :: r148) + | 1056 -> One (R 1267 :: r823) + | 1070 -> One ([R 1268]) + | 151 -> One ([R 1270]) + | 296 -> One ([R 1272]) + | 171 -> One ([R 1274]) + | 174 -> One ([R 1275]) + | 178 -> One ([R 1276]) + | 172 -> One ([R 1277]) + | 179 -> One ([R 1278]) + | 175 -> One ([R 1279]) + | 180 -> One ([R 1280]) + | 177 -> One ([R 1281]) + | 170 -> One ([R 1282]) + | 664 -> One ([R 1283]) + | 665 -> One ([R 1284]) + | 678 -> One ([R 1289]) + | 1200 -> One ([R 1290]) + | 675 -> One ([R 1297]) + | 537 -> One ([R 1298]) + | 673 -> One ([R 1299]) + | 2154 -> One ([R 1302]) + | 2268 -> One ([R 1303]) + | 2271 -> One ([R 1304]) + | 2269 -> One ([R 1305]) + | 2303 -> One ([R 1306]) + | 2306 -> One ([R 1307]) + | 2304 -> One ([R 1308]) + | 1059 -> One ([R 1315]) + | 1060 -> One ([R 1316]) + | 1753 -> One (S (T T_WITH) :: r1221) + | 153 | 223 | 283 | 306 | 434 | 1979 | 2852 -> One (S (T T_UNDERSCORE) :: r87) + | 297 -> One (S (T T_UNDERSCORE) :: r278) + | 374 -> One (S (T T_UNDERSCORE) :: r316) + | 386 -> One (S (T T_UNDERSCORE) :: r324) + | 1985 -> One (S (T T_UNDERSCORE) :: r1343) + | 2933 -> One (S (T T_UNDERSCORE) :: r1870) + | 579 -> One (S (T T_TYPE) :: r421) + | 1968 -> One (S (T T_STAR) :: r1337) + | 3040 -> One (S (T T_SEMISEMI) :: r1894) + | 3047 -> One (S (T T_SEMISEMI) :: r1898) + | 2962 -> One (S (T T_RPAREN) :: r182) + | 285 -> One (S (T T_RPAREN) :: r271) + | 384 | 478 -> One (S (T T_RPAREN) :: r321) + | 702 -> One (S (T T_RPAREN) :: r556) + | 765 -> One (S (T T_RPAREN) :: r587) + | 920 -> One (S (T T_RPAREN) :: r735) + | 922 -> One (S (T T_RPAREN) :: r736) + | 972 -> One (S (T T_RPAREN) :: r767) + | 976 -> One (S (T T_RPAREN) :: r768) + | 995 -> One (S (T T_RPAREN) :: r779) + | 997 -> One (S (T T_RPAREN) :: r780) + | 1040 -> One (S (T T_RPAREN) :: r807) + | 1112 -> One (S (T T_RPAREN) :: r850) + | 1118 -> One (S (T T_RPAREN) :: r851) + | 1125 -> One (S (T T_RPAREN) :: r854) + | 1129 -> One (S (T T_RPAREN) :: r855) + | 1394 -> One (S (T T_RPAREN) :: r1030) + | 1644 -> One (S (T T_RPAREN) :: r1152) + | 2052 -> One (S (T T_RPAREN) :: r1365) + | 2054 -> One (S (T T_RPAREN) :: r1366) + | 2963 -> One (S (T T_RPAREN) :: r1876) + | 1942 | 2619 -> One (S (T T_RBRACKET) :: r507) + | 1736 -> One (S (T T_RBRACKET) :: r1211) + | 1742 -> One (S (T T_RBRACKET) :: r1212) + | 1744 -> One (S (T T_RBRACKET) :: r1213) + | 1747 -> One (S (T T_RBRACKET) :: r1214) + | 1857 -> One (S (T T_RBRACKET) :: r1256) + | 1862 -> One (S (T T_RBRACKET) :: r1257) + | 310 -> One (S (T T_QUOTE) :: r295) + | 371 -> One (S (T T_QUOTE) :: r312) + | 2195 -> One (S (T T_OPEN) :: r1496) + | 2332 -> One (S (T T_OPEN) :: r1596) | 269 -> One (S (T T_MODULE) :: r95) - | 477 -> One (S (T T_MINUSGREATER) :: r265) - | 396 -> One (S (T T_MINUSGREATER) :: r298) - | 361 -> One (S (T T_MINUSGREATER) :: r308) - | 409 -> One (S (T T_MINUSGREATER) :: r334) - | 425 -> One (S (T T_MINUSGREATER) :: r338) - | 446 -> One (S (T T_MINUSGREATER) :: r350) - | 462 -> One (S (T T_MINUSGREATER) :: r354) - | 1045 -> One (S (T T_MINUSGREATER) :: r813) - | 1077 -> One (S (T T_MINUSGREATER) :: r838) - | 1995 -> One (S (T T_MINUSGREATER) :: r1349) - | 1999 -> One (S (T T_MINUSGREATER) :: r1351) - | 2381 -> One (S (T T_MINUSGREATER) :: r1628) - | 2603 -> One (S (T T_MINUSGREATER) :: r1704) - | 2819 -> One (S (T T_MINUSGREATER) :: r1828) - | 2827 -> One (S (T T_MINUSGREATER) :: r1831) - | 2835 -> One (S (T T_MINUSGREATER) :: r1834) - | 2856 -> One (S (T T_MINUSGREATER) :: r1846) - | 2872 -> One (S (T T_MINUSGREATER) :: r1850) - | 2890 -> One (S (T T_MINUSGREATER) :: r1857) - | 2908 -> One (S (T T_MINUSGREATER) :: r1862) + | 477 -> One (S (T T_MINUSGREATER) :: r266) + | 396 -> One (S (T T_MINUSGREATER) :: r299) + | 361 -> One (S (T T_MINUSGREATER) :: r309) + | 409 -> One (S (T T_MINUSGREATER) :: r335) + | 425 -> One (S (T T_MINUSGREATER) :: r339) + | 446 -> One (S (T T_MINUSGREATER) :: r351) + | 462 -> One (S (T T_MINUSGREATER) :: r355) + | 1045 -> One (S (T T_MINUSGREATER) :: r814) + | 1077 -> One (S (T T_MINUSGREATER) :: r839) + | 1996 -> One (S (T T_MINUSGREATER) :: r1350) + | 2000 -> One (S (T T_MINUSGREATER) :: r1352) + | 2382 -> One (S (T T_MINUSGREATER) :: r1629) + | 2611 -> One (S (T T_MINUSGREATER) :: r1708) + | 2827 -> One (S (T T_MINUSGREATER) :: r1832) + | 2835 -> One (S (T T_MINUSGREATER) :: r1835) + | 2843 -> One (S (T T_MINUSGREATER) :: r1838) + | 2864 -> One (S (T T_MINUSGREATER) :: r1850) + | 2880 -> One (S (T T_MINUSGREATER) :: r1854) + | 2898 -> One (S (T T_MINUSGREATER) :: r1861) + | 2916 -> One (S (T T_MINUSGREATER) :: r1866) | 86 -> One (S (T T_LPAREN) :: r51) | 127 -> One (S (T T_LIDENT) :: r66) - | 234 -> One (S (T T_LIDENT) :: r202) - | 235 -> One (S (T T_LIDENT) :: r210) - | 531 -> One (S (T T_LIDENT) :: r375) - | 532 -> One (S (T T_LIDENT) :: r378) - | 545 -> One (S (T T_LIDENT) :: r392) - | 546 -> One (S (T T_LIDENT) :: r398) - | 552 -> One (S (T T_LIDENT) :: r399) - | 553 -> One (S (T T_LIDENT) :: r403) - | 628 -> One (S (T T_LIDENT) :: r490) - | 629 -> One (S (T T_LIDENT) :: r496) - | 635 -> One (S (T T_LIDENT) :: r497) - | 636 -> One (S (T T_LIDENT) :: r501) - | 683 -> One (S (T T_LIDENT) :: r540) - | 684 -> One (S (T T_LIDENT) :: r544) - | 716 -> One (S (T T_LIDENT) :: r559) - | 717 -> One (S (T T_LIDENT) :: r563) - | 744 -> One (S (T T_LIDENT) :: r573) - | 745 -> One (S (T T_LIDENT) :: r577) - | 805 -> One (S (T T_LIDENT) :: r593) - | 806 -> One (S (T T_LIDENT) :: r597) - | 818 -> One (S (T T_LIDENT) :: r599) - | 819 -> One (S (T T_LIDENT) :: r603) - | 832 -> One (S (T T_LIDENT) :: r608) - | 833 -> One (S (T T_LIDENT) :: r612) - | 844 -> One (S (T T_LIDENT) :: r614) - | 863 -> One (S (T T_LIDENT) :: r626) - | 944 -> One (S (T T_LIDENT) :: r753) - | 1015 -> One (S (T T_LIDENT) :: r786) - | 1016 -> One (S (T T_LIDENT) :: r789) - | 1154 -> One (S (T T_LIDENT) :: r874) - | 1172 -> One (S (T T_LIDENT) :: r888) - | 1173 -> One (S (T T_LIDENT) :: r891) - | 1178 -> One (S (T T_LIDENT) :: r892) - | 1182 -> One (S (T T_LIDENT) :: r894) - | 1192 -> One (S (T T_LIDENT) :: r901) - | 1193 -> One (S (T T_LIDENT) :: r904) - | 1370 -> One (S (T T_LIDENT) :: r1010) - | 1371 -> One (S (T T_LIDENT) :: r1013) - | 1451 -> One (S (T T_LIDENT) :: r1062) - | 1452 -> One (S (T T_LIDENT) :: r1066) - | 1808 -> One (S (T T_LIDENT) :: r1236) - | 1809 -> One (S (T T_LIDENT) :: r1239) - | 1947 -> One (S (T T_LIDENT) :: r1329) - | 2109 -> One (S (T T_LIDENT) :: r1407) - | 2271 -> One (S (T T_LIDENT) :: r1545) - | 2306 -> One (S (T T_LIDENT) :: r1569) - | 2397 -> One (S (T T_LIDENT) :: r1632) - | 2530 -> One (S (T T_LIDENT) :: r1677) - | 2531 -> One (S (T T_LIDENT) :: r1681) - | 2559 -> One (S (T T_LIDENT) :: r1689) - | 2560 -> One (S (T T_LIDENT) :: r1692) - | 559 | 695 -> One (S (T T_INT) :: r404) - | 564 | 696 -> One (S (T T_INT) :: r405) - | 1212 -> One (S (T T_IN) :: r911) - | 2351 -> One (S (T T_IN) :: r1615) - | 878 -> One (S (T T_GREATERRBRACE) :: r663) - | 1850 -> One (S (T T_GREATERRBRACE) :: r1254) - | 222 -> One (S (T T_GREATER) :: r182) - | 2590 -> One (S (T T_GREATER) :: r1701) - | 1093 -> One (S (T T_EQUAL) :: r844) - | 1415 -> One (S (T T_EQUAL) :: r1039) - | 1423 -> One (S (T T_EQUAL) :: r1045) - | 1426 -> One (S (T T_EQUAL) :: r1047) - | 1429 -> One (S (T T_EQUAL) :: r1049) - | 1433 -> One (S (T T_EQUAL) :: r1051) - | 1441 -> One (S (T T_EQUAL) :: r1056) - | 1444 -> One (S (T T_EQUAL) :: r1058) - | 1447 -> One (S (T T_EQUAL) :: r1060) - | 1474 -> One (S (T T_EQUAL) :: r1077) - | 1477 -> One (S (T T_EQUAL) :: r1079) - | 1480 -> One (S (T T_EQUAL) :: r1081) - | 1484 -> One (S (T T_EQUAL) :: r1083) - | 1633 -> One (S (T T_EQUAL) :: r1149) - | 1922 -> One (S (T T_EQUAL) :: r1295) - | 1930 -> One (S (T T_EQUAL) :: r1298) - | 2261 -> One (S (T T_EQUAL) :: r1542) - | 2279 -> One (S (T T_EQUAL) :: r1547) - | 2945 -> One (S (T T_EOF) :: r1870) - | 2949 -> One (S (T T_EOF) :: r1871) - | 2968 -> One (S (T T_EOF) :: r1877) - | 2972 -> One (S (T T_EOF) :: r1878) - | 2976 -> One (S (T T_EOF) :: r1879) - | 2979 -> One (S (T T_EOF) :: r1880) - | 2984 -> One (S (T T_EOF) :: r1881) - | 2988 -> One (S (T T_EOF) :: r1882) - | 2992 -> One (S (T T_EOF) :: r1883) - | 2996 -> One (S (T T_EOF) :: r1884) - | 3000 -> One (S (T T_EOF) :: r1885) - | 3003 -> One (S (T T_EOF) :: r1886) - | 3007 -> One (S (T T_EOF) :: r1887) - | 3055 -> One (S (T T_EOF) :: r1903) - | 1804 -> One (S (T T_END) :: r1235) + | 234 -> One (S (T T_LIDENT) :: r203) + | 235 -> One (S (T T_LIDENT) :: r211) + | 531 -> One (S (T T_LIDENT) :: r376) + | 532 -> One (S (T T_LIDENT) :: r379) + | 545 -> One (S (T T_LIDENT) :: r393) + | 546 -> One (S (T T_LIDENT) :: r399) + | 552 -> One (S (T T_LIDENT) :: r400) + | 553 -> One (S (T T_LIDENT) :: r404) + | 628 -> One (S (T T_LIDENT) :: r493) + | 629 -> One (S (T T_LIDENT) :: r499) + | 635 -> One (S (T T_LIDENT) :: r500) + | 636 -> One (S (T T_LIDENT) :: r504) + | 683 -> One (S (T T_LIDENT) :: r543) + | 684 -> One (S (T T_LIDENT) :: r547) + | 716 -> One (S (T T_LIDENT) :: r562) + | 717 -> One (S (T T_LIDENT) :: r566) + | 744 -> One (S (T T_LIDENT) :: r574) + | 745 -> One (S (T T_LIDENT) :: r578) + | 805 -> One (S (T T_LIDENT) :: r594) + | 806 -> One (S (T T_LIDENT) :: r598) + | 818 -> One (S (T T_LIDENT) :: r600) + | 819 -> One (S (T T_LIDENT) :: r604) + | 832 -> One (S (T T_LIDENT) :: r609) + | 833 -> One (S (T T_LIDENT) :: r613) + | 844 -> One (S (T T_LIDENT) :: r615) + | 863 -> One (S (T T_LIDENT) :: r627) + | 944 -> One (S (T T_LIDENT) :: r754) + | 1015 -> One (S (T T_LIDENT) :: r787) + | 1016 -> One (S (T T_LIDENT) :: r790) + | 1154 -> One (S (T T_LIDENT) :: r875) + | 1172 -> One (S (T T_LIDENT) :: r889) + | 1173 -> One (S (T T_LIDENT) :: r892) + | 1178 -> One (S (T T_LIDENT) :: r893) + | 1182 -> One (S (T T_LIDENT) :: r895) + | 1192 -> One (S (T T_LIDENT) :: r902) + | 1193 -> One (S (T T_LIDENT) :: r905) + | 1371 -> One (S (T T_LIDENT) :: r1011) + | 1372 -> One (S (T T_LIDENT) :: r1014) + | 1452 -> One (S (T T_LIDENT) :: r1063) + | 1453 -> One (S (T T_LIDENT) :: r1067) + | 1809 -> One (S (T T_LIDENT) :: r1237) + | 1810 -> One (S (T T_LIDENT) :: r1240) + | 1948 -> One (S (T T_LIDENT) :: r1330) + | 2110 -> One (S (T T_LIDENT) :: r1408) + | 2272 -> One (S (T T_LIDENT) :: r1546) + | 2307 -> One (S (T T_LIDENT) :: r1570) + | 2398 -> One (S (T T_LIDENT) :: r1633) + | 2531 -> One (S (T T_LIDENT) :: r1678) + | 2532 -> One (S (T T_LIDENT) :: r1682) + | 2567 -> One (S (T T_LIDENT) :: r1693) + | 2568 -> One (S (T T_LIDENT) :: r1696) + | 559 | 695 -> One (S (T T_INT) :: r405) + | 564 | 696 -> One (S (T T_INT) :: r406) + | 1212 -> One (S (T T_IN) :: r912) + | 2352 -> One (S (T T_IN) :: r1616) + | 878 -> One (S (T T_GREATERRBRACE) :: r664) + | 1851 -> One (S (T T_GREATERRBRACE) :: r1255) + | 222 -> One (S (T T_GREATER) :: r183) + | 2598 -> One (S (T T_GREATER) :: r1705) + | 1093 -> One (S (T T_EQUAL) :: r845) + | 1416 -> One (S (T T_EQUAL) :: r1040) + | 1424 -> One (S (T T_EQUAL) :: r1046) + | 1427 -> One (S (T T_EQUAL) :: r1048) + | 1430 -> One (S (T T_EQUAL) :: r1050) + | 1434 -> One (S (T T_EQUAL) :: r1052) + | 1442 -> One (S (T T_EQUAL) :: r1057) + | 1445 -> One (S (T T_EQUAL) :: r1059) + | 1448 -> One (S (T T_EQUAL) :: r1061) + | 1475 -> One (S (T T_EQUAL) :: r1078) + | 1478 -> One (S (T T_EQUAL) :: r1080) + | 1481 -> One (S (T T_EQUAL) :: r1082) + | 1485 -> One (S (T T_EQUAL) :: r1084) + | 1634 -> One (S (T T_EQUAL) :: r1150) + | 1923 -> One (S (T T_EQUAL) :: r1296) + | 1931 -> One (S (T T_EQUAL) :: r1299) + | 2262 -> One (S (T T_EQUAL) :: r1543) + | 2280 -> One (S (T T_EQUAL) :: r1548) + | 2954 -> One (S (T T_EOF) :: r1874) + | 2958 -> One (S (T T_EOF) :: r1875) + | 2977 -> One (S (T T_EOF) :: r1881) + | 2981 -> One (S (T T_EOF) :: r1882) + | 2985 -> One (S (T T_EOF) :: r1883) + | 2988 -> One (S (T T_EOF) :: r1884) + | 2993 -> One (S (T T_EOF) :: r1885) + | 2997 -> One (S (T T_EOF) :: r1886) + | 3001 -> One (S (T T_EOF) :: r1887) + | 3005 -> One (S (T T_EOF) :: r1888) + | 3009 -> One (S (T T_EOF) :: r1889) + | 3012 -> One (S (T T_EOF) :: r1890) + | 3016 -> One (S (T T_EOF) :: r1891) + | 3064 -> One (S (T T_EOF) :: r1907) + | 1805 -> One (S (T T_END) :: r1236) | 88 -> One (S (T T_DOTDOT) :: r52) - | 219 -> One (S (T T_DOTDOT) :: r178) - | 715 -> One (S (T T_DOTDOT) :: r558) - | 804 -> One (S (T T_DOTDOT) :: r592) - | 1450 -> One (S (T T_DOTDOT) :: r1061) - | 2638 -> One (S (T T_DOTDOT) :: r1714) - | 2639 -> One (S (T T_DOTDOT) :: r1715) - | 307 -> One (S (T T_DOT) :: r288) - | 398 -> One (S (T T_DOT) :: r331) - | 435 -> One (S (T T_DOT) :: r347) - | 609 | 1500 | 1573 -> One (S (T T_DOT) :: r468) - | 848 -> One (S (T T_DOT) :: r621) - | 913 -> One (S (T T_DOT) :: r732) - | 926 -> One (S (T T_DOT) :: r738) - | 961 -> One (S (T T_DOT) :: r758) - | 968 -> One (S (T T_DOT) :: r765) - | 982 -> One (S (T T_DOT) :: r771) - | 990 -> One (S (T T_DOT) :: r777) - | 3010 -> One (S (T T_DOT) :: r845) - | 1418 -> One (S (T T_DOT) :: r1043) - | 1469 -> One (S (T T_DOT) :: r1075) - | 1950 -> One (S (T T_DOT) :: r1331) - | 1993 -> One (S (T T_DOT) :: r1347) - | 2120 -> One (S (T T_DOT) :: r1420) - | 2808 -> One (S (T T_DOT) :: r1825) - | 2845 -> One (S (T T_DOT) :: r1843) - | 2958 -> One (S (T T_DOT) :: r1876) - | 623 -> One (S (T T_COLONRBRACKET) :: r478) - | 642 -> One (S (T T_COLONRBRACKET) :: r502) - | 792 -> One (S (T T_COLONRBRACKET) :: r589) - | 1645 -> One (S (T T_COLONRBRACKET) :: r1152) - | 1712 -> One (S (T T_COLONRBRACKET) :: r1203) - | 1717 -> One (S (T T_COLONRBRACKET) :: r1204) - | 1720 -> One (S (T T_COLONRBRACKET) :: r1205) - | 2032 -> One (S (T T_COLONRBRACKET) :: r1355) - | 2035 -> One (S (T T_COLONRBRACKET) :: r1356) - | 2038 -> One (S (T T_COLONRBRACKET) :: r1357) - | 220 | 1938 -> One (S (T T_COLONCOLON) :: r180) - | 246 -> One (S (T T_COLON) :: r239) - | 346 -> One (S (T T_COLON) :: r302) - | 355 -> One (S (T T_COLON) :: r306) - | 1042 -> One (S (T T_COLON) :: r809) - | 2375 -> One (S (T T_COLON) :: r1626) - | 2578 -> One (S (T T_COLON) :: r1699) - | 643 -> One (S (T T_BARRBRACKET) :: r503) - | 789 -> One (S (T T_BARRBRACKET) :: r588) - | 876 -> One (S (T T_BARRBRACKET) :: r658) - | 1722 -> One (S (T T_BARRBRACKET) :: r1206) - | 1727 -> One (S (T T_BARRBRACKET) :: r1207) - | 1730 -> One (S (T T_BARRBRACKET) :: r1208) - | 1733 -> One (S (T T_BARRBRACKET) :: r1209) - | 1867 -> One (S (T T_BARRBRACKET) :: r1257) - | 1870 -> One (S (T T_BARRBRACKET) :: r1258) - | 1873 -> One (S (T T_BARRBRACKET) :: r1259) - | 510 -> One (S (T T_BAR) :: r369) - | 2921 -> One (S (T T_AMPERSAND) :: r163) - | 543 -> One (S (N N_pattern) :: r388) - | 654 -> One (S (N N_pattern) :: r518) - | 730 -> One (S (N N_pattern) :: r566) - | 758 -> One (S (N N_pattern) :: r582) - | 799 -> One (S (N N_pattern) :: r591) - | 986 -> One (S (N N_pattern) :: r773) - | 1462 -> One (S (N N_pattern) :: r1068) - | 1660 -> One (S (N N_pattern) :: r1170) - | 1668 -> One (S (N N_pattern) :: r1176) - | 1676 -> One (S (N N_pattern) :: r1182) - | 2103 -> One (S (N N_pattern) :: r1400) - | 578 -> One (S (N N_module_type) :: r416) - | 1044 -> One (S (N N_module_type) :: r811) - | 1080 -> One (S (N N_module_type) :: r839) - | 1091 -> One (S (N N_module_type) :: r842) - | 1122 -> One (S (N N_module_type) :: r852) - | 1880 -> One (S (N N_module_type) :: r1265) - | 1883 -> One (S (N N_module_type) :: r1267) - | 1886 -> One (S (N N_module_type) :: r1269) - | 1891 -> One (S (N N_module_type) :: r1271) - | 1894 -> One (S (N N_module_type) :: r1273) - | 1897 -> One (S (N N_module_type) :: r1275) - | 1918 -> One (S (N N_module_type) :: r1293) - | 2046 -> One (S (N N_module_type) :: r1363) - | 2081 -> One (S (N N_module_type) :: r1387) - | 873 -> One (S (N N_module_expr) :: r654) - | 908 -> One (S (N N_let_pattern) :: r728) - | 933 -> One (S (N N_let_pattern) :: r741) - | 626 -> One (S (N N_fun_expr) :: r480) - | 880 -> One (S (N N_fun_expr) :: r666) - | 889 -> One (S (N N_fun_expr) :: r688) - | 1165 -> One (S (N N_fun_expr) :: r884) - | 1191 -> One (S (N N_fun_expr) :: r900) - | 1217 -> One (S (N N_fun_expr) :: r912) - | 1223 -> One (S (N N_fun_expr) :: r916) - | 1232 -> One (S (N N_fun_expr) :: r920) - | 1243 -> One (S (N N_fun_expr) :: r926) - | 1249 -> One (S (N N_fun_expr) :: r930) - | 1255 -> One (S (N N_fun_expr) :: r934) - | 1261 -> One (S (N N_fun_expr) :: r938) - | 1267 -> One (S (N N_fun_expr) :: r942) - | 1273 -> One (S (N N_fun_expr) :: r946) - | 1279 -> One (S (N N_fun_expr) :: r950) - | 1285 -> One (S (N N_fun_expr) :: r954) - | 1291 -> One (S (N N_fun_expr) :: r958) - | 1297 -> One (S (N N_fun_expr) :: r962) - | 1303 -> One (S (N N_fun_expr) :: r966) - | 1309 -> One (S (N N_fun_expr) :: r970) - | 1315 -> One (S (N N_fun_expr) :: r974) - | 1321 -> One (S (N N_fun_expr) :: r978) - | 1327 -> One (S (N N_fun_expr) :: r982) - | 1333 -> One (S (N N_fun_expr) :: r986) - | 1339 -> One (S (N N_fun_expr) :: r990) - | 1345 -> One (S (N N_fun_expr) :: r994) - | 1351 -> One (S (N N_fun_expr) :: r998) - | 1357 -> One (S (N N_fun_expr) :: r1002) - | 1363 -> One (S (N N_fun_expr) :: r1006) - | 1383 -> One (S (N N_fun_expr) :: r1018) - | 1521 -> One (S (N N_fun_expr) :: r1102) - | 1530 -> One (S (N N_fun_expr) :: r1109) - | 1539 -> One (S (N N_fun_expr) :: r1116) - | 1549 -> One (S (N N_fun_expr) :: r1120) - | 1558 -> One (S (N N_fun_expr) :: r1124) - | 1567 -> One (S (N N_fun_expr) :: r1128) - | 1578 -> One (S (N N_fun_expr) :: r1132) - | 1587 -> One (S (N N_fun_expr) :: r1136) - | 1596 -> One (S (N N_fun_expr) :: r1140) - | 1603 -> One (S (N N_fun_expr) :: r1144) - | 1650 -> One (S (N N_fun_expr) :: r1153) - | 1691 -> One (S (N N_fun_expr) :: r1191) - | 1790 -> One (S (N N_fun_expr) :: r1227) - | 1797 -> One (S (N N_fun_expr) :: r1231) - | 228 -> One (Sub (r3) :: r186) - | 604 -> One (Sub (r3) :: r459) - | 624 -> One (Sub (r3) :: r479) - | 867 -> One (Sub (r3) :: r633) - | 902 -> One (Sub (r3) :: r706) - | 1149 -> One (Sub (r3) :: r870) - | 2105 -> One (Sub (r3) :: r1401) + | 219 -> One (S (T T_DOTDOT) :: r179) + | 715 -> One (S (T T_DOTDOT) :: r561) + | 804 -> One (S (T T_DOTDOT) :: r593) + | 1451 -> One (S (T T_DOTDOT) :: r1062) + | 2646 -> One (S (T T_DOTDOT) :: r1718) + | 2647 -> One (S (T T_DOTDOT) :: r1719) + | 307 -> One (S (T T_DOT) :: r289) + | 398 -> One (S (T T_DOT) :: r332) + | 435 -> One (S (T T_DOT) :: r348) + | 609 | 1501 | 1574 -> One (S (T T_DOT) :: r469) + | 848 -> One (S (T T_DOT) :: r622) + | 913 -> One (S (T T_DOT) :: r733) + | 926 -> One (S (T T_DOT) :: r739) + | 961 -> One (S (T T_DOT) :: r759) + | 968 -> One (S (T T_DOT) :: r766) + | 982 -> One (S (T T_DOT) :: r772) + | 990 -> One (S (T T_DOT) :: r778) + | 3019 -> One (S (T T_DOT) :: r846) + | 1419 -> One (S (T T_DOT) :: r1044) + | 1470 -> One (S (T T_DOT) :: r1076) + | 1951 -> One (S (T T_DOT) :: r1332) + | 1994 -> One (S (T T_DOT) :: r1348) + | 2121 -> One (S (T T_DOT) :: r1421) + | 2816 -> One (S (T T_DOT) :: r1829) + | 2853 -> One (S (T T_DOT) :: r1847) + | 2967 -> One (S (T T_DOT) :: r1880) + | 623 -> One (S (T T_COLONRBRACKET) :: r481) + | 642 -> One (S (T T_COLONRBRACKET) :: r505) + | 792 -> One (S (T T_COLONRBRACKET) :: r590) + | 1646 -> One (S (T T_COLONRBRACKET) :: r1153) + | 1713 -> One (S (T T_COLONRBRACKET) :: r1204) + | 1718 -> One (S (T T_COLONRBRACKET) :: r1205) + | 1721 -> One (S (T T_COLONRBRACKET) :: r1206) + | 2033 -> One (S (T T_COLONRBRACKET) :: r1356) + | 2036 -> One (S (T T_COLONRBRACKET) :: r1357) + | 2039 -> One (S (T T_COLONRBRACKET) :: r1358) + | 220 | 1939 -> One (S (T T_COLONCOLON) :: r181) + | 246 -> One (S (T T_COLON) :: r240) + | 346 -> One (S (T T_COLON) :: r303) + | 355 -> One (S (T T_COLON) :: r307) + | 1042 -> One (S (T T_COLON) :: r810) + | 2376 -> One (S (T T_COLON) :: r1627) + | 2586 -> One (S (T T_COLON) :: r1703) + | 643 -> One (S (T T_BARRBRACKET) :: r506) + | 789 -> One (S (T T_BARRBRACKET) :: r589) + | 876 -> One (S (T T_BARRBRACKET) :: r659) + | 1723 -> One (S (T T_BARRBRACKET) :: r1207) + | 1728 -> One (S (T T_BARRBRACKET) :: r1208) + | 1731 -> One (S (T T_BARRBRACKET) :: r1209) + | 1734 -> One (S (T T_BARRBRACKET) :: r1210) + | 1868 -> One (S (T T_BARRBRACKET) :: r1258) + | 1871 -> One (S (T T_BARRBRACKET) :: r1259) + | 1874 -> One (S (T T_BARRBRACKET) :: r1260) + | 510 -> One (S (T T_BAR) :: r370) + | 2930 -> One (S (T T_AMPERSAND) :: r164) + | 543 -> One (S (N N_pattern) :: r389) + | 654 -> One (S (N N_pattern) :: r521) + | 730 -> One (S (N N_pattern) :: r569) + | 758 -> One (S (N N_pattern) :: r583) + | 799 -> One (S (N N_pattern) :: r592) + | 986 -> One (S (N N_pattern) :: r774) + | 1463 -> One (S (N N_pattern) :: r1069) + | 1661 -> One (S (N N_pattern) :: r1171) + | 1669 -> One (S (N N_pattern) :: r1177) + | 1677 -> One (S (N N_pattern) :: r1183) + | 2104 -> One (S (N N_pattern) :: r1401) + | 578 -> One (S (N N_module_type) :: r417) + | 1044 -> One (S (N N_module_type) :: r812) + | 1080 -> One (S (N N_module_type) :: r840) + | 1091 -> One (S (N N_module_type) :: r843) + | 1122 -> One (S (N N_module_type) :: r853) + | 1881 -> One (S (N N_module_type) :: r1266) + | 1884 -> One (S (N N_module_type) :: r1268) + | 1887 -> One (S (N N_module_type) :: r1270) + | 1892 -> One (S (N N_module_type) :: r1272) + | 1895 -> One (S (N N_module_type) :: r1274) + | 1898 -> One (S (N N_module_type) :: r1276) + | 1919 -> One (S (N N_module_type) :: r1294) + | 2047 -> One (S (N N_module_type) :: r1364) + | 2082 -> One (S (N N_module_type) :: r1388) + | 873 -> One (S (N N_module_expr) :: r655) + | 908 -> One (S (N N_let_pattern) :: r729) + | 933 -> One (S (N N_let_pattern) :: r742) + | 626 -> One (S (N N_fun_expr) :: r483) + | 880 -> One (S (N N_fun_expr) :: r667) + | 889 -> One (S (N N_fun_expr) :: r689) + | 1165 -> One (S (N N_fun_expr) :: r885) + | 1191 -> One (S (N N_fun_expr) :: r901) + | 1217 -> One (S (N N_fun_expr) :: r913) + | 1223 -> One (S (N N_fun_expr) :: r917) + | 1233 -> One (S (N N_fun_expr) :: r921) + | 1244 -> One (S (N N_fun_expr) :: r927) + | 1250 -> One (S (N N_fun_expr) :: r931) + | 1256 -> One (S (N N_fun_expr) :: r935) + | 1262 -> One (S (N N_fun_expr) :: r939) + | 1268 -> One (S (N N_fun_expr) :: r943) + | 1274 -> One (S (N N_fun_expr) :: r947) + | 1280 -> One (S (N N_fun_expr) :: r951) + | 1286 -> One (S (N N_fun_expr) :: r955) + | 1292 -> One (S (N N_fun_expr) :: r959) + | 1298 -> One (S (N N_fun_expr) :: r963) + | 1304 -> One (S (N N_fun_expr) :: r967) + | 1310 -> One (S (N N_fun_expr) :: r971) + | 1316 -> One (S (N N_fun_expr) :: r975) + | 1322 -> One (S (N N_fun_expr) :: r979) + | 1328 -> One (S (N N_fun_expr) :: r983) + | 1334 -> One (S (N N_fun_expr) :: r987) + | 1340 -> One (S (N N_fun_expr) :: r991) + | 1346 -> One (S (N N_fun_expr) :: r995) + | 1352 -> One (S (N N_fun_expr) :: r999) + | 1358 -> One (S (N N_fun_expr) :: r1003) + | 1364 -> One (S (N N_fun_expr) :: r1007) + | 1384 -> One (S (N N_fun_expr) :: r1019) + | 1522 -> One (S (N N_fun_expr) :: r1103) + | 1531 -> One (S (N N_fun_expr) :: r1110) + | 1540 -> One (S (N N_fun_expr) :: r1117) + | 1550 -> One (S (N N_fun_expr) :: r1121) + | 1559 -> One (S (N N_fun_expr) :: r1125) + | 1568 -> One (S (N N_fun_expr) :: r1129) + | 1579 -> One (S (N N_fun_expr) :: r1133) + | 1588 -> One (S (N N_fun_expr) :: r1137) + | 1597 -> One (S (N N_fun_expr) :: r1141) + | 1604 -> One (S (N N_fun_expr) :: r1145) + | 1651 -> One (S (N N_fun_expr) :: r1154) + | 1692 -> One (S (N N_fun_expr) :: r1192) + | 1791 -> One (S (N N_fun_expr) :: r1228) + | 1798 -> One (S (N N_fun_expr) :: r1232) + | 228 -> One (Sub (r3) :: r187) + | 604 -> One (Sub (r3) :: r460) + | 624 -> One (Sub (r3) :: r482) + | 867 -> One (Sub (r3) :: r634) + | 902 -> One (Sub (r3) :: r707) + | 1149 -> One (Sub (r3) :: r871) + | 2106 -> One (Sub (r3) :: r1402) | 2 -> One (Sub (r13) :: r14) | 56 -> One (Sub (r13) :: r15) | 60 -> One (Sub (r13) :: r22) - | 226 -> One (Sub (r13) :: r185) - | 595 -> One (Sub (r13) :: r452) - | 1239 -> One (Sub (r13) :: r925) - | 2101 -> One (Sub (r13) :: r1399) - | 2107 -> One (Sub (r13) :: r1404) - | 2332 -> One (Sub (r13) :: r1600) - | 760 -> One (Sub (r24) :: r583) - | 1464 -> One (Sub (r24) :: r1069) - | 1466 -> One (Sub (r24) :: r1071) - | 245 -> One (Sub (r26) :: r234) - | 354 -> One (Sub (r26) :: r304) - | 1005 -> One (Sub (r26) :: r780) - | 1964 -> One (Sub (r26) :: r1333) - | 1969 -> One (Sub (r26) :: r1338) - | 1977 -> One (Sub (r26) :: r1339) - | 271 -> One (Sub (r28) :: r259) - | 282 -> One (Sub (r28) :: r268) - | 305 -> One (Sub (r28) :: r283) - | 328 -> One (Sub (r28) :: r295) - | 334 -> One (Sub (r28) :: r296) - | 341 -> One (Sub (r28) :: r299) - | 366 -> One (Sub (r28) :: r309) - | 406 -> One (Sub (r28) :: r332) - | 414 -> One (Sub (r28) :: r335) - | 422 -> One (Sub (r28) :: r336) - | 430 -> One (Sub (r28) :: r339) - | 433 -> One (Sub (r28) :: r342) - | 443 -> One (Sub (r28) :: r348) - | 451 -> One (Sub (r28) :: r351) - | 459 -> One (Sub (r28) :: r352) - | 467 -> One (Sub (r28) :: r355) - | 470 -> One (Sub (r28) :: r356) - | 474 -> One (Sub (r28) :: r357) - | 2383 -> One (Sub (r28) :: r1631) - | 2600 -> One (Sub (r28) :: r1702) - | 2608 -> One (Sub (r28) :: r1705) - | 2816 -> One (Sub (r28) :: r1826) - | 2824 -> One (Sub (r28) :: r1829) - | 2832 -> One (Sub (r28) :: r1832) - | 2840 -> One (Sub (r28) :: r1835) - | 2843 -> One (Sub (r28) :: r1838) - | 2853 -> One (Sub (r28) :: r1844) - | 2861 -> One (Sub (r28) :: r1847) - | 2869 -> One (Sub (r28) :: r1848) - | 2877 -> One (Sub (r28) :: r1851) - | 2887 -> One (Sub (r28) :: r1855) - | 2895 -> One (Sub (r28) :: r1858) - | 2901 -> One (Sub (r28) :: r1859) - | 2905 -> One (Sub (r28) :: r1860) - | 2913 -> One (Sub (r28) :: r1863) - | 502 -> One (Sub (r32) :: r366) - | 1063 -> One (Sub (r32) :: r824) + | 226 -> One (Sub (r13) :: r186) + | 595 -> One (Sub (r13) :: r453) + | 1240 -> One (Sub (r13) :: r926) + | 2102 -> One (Sub (r13) :: r1400) + | 2108 -> One (Sub (r13) :: r1405) + | 2333 -> One (Sub (r13) :: r1601) + | 760 -> One (Sub (r24) :: r584) + | 1465 -> One (Sub (r24) :: r1070) + | 1467 -> One (Sub (r24) :: r1072) + | 245 -> One (Sub (r26) :: r235) + | 354 -> One (Sub (r26) :: r305) + | 1005 -> One (Sub (r26) :: r781) + | 1965 -> One (Sub (r26) :: r1334) + | 1970 -> One (Sub (r26) :: r1339) + | 1978 -> One (Sub (r26) :: r1340) + | 271 -> One (Sub (r28) :: r260) + | 282 -> One (Sub (r28) :: r269) + | 305 -> One (Sub (r28) :: r284) + | 328 -> One (Sub (r28) :: r296) + | 334 -> One (Sub (r28) :: r297) + | 341 -> One (Sub (r28) :: r300) + | 366 -> One (Sub (r28) :: r310) + | 406 -> One (Sub (r28) :: r333) + | 414 -> One (Sub (r28) :: r336) + | 422 -> One (Sub (r28) :: r337) + | 430 -> One (Sub (r28) :: r340) + | 433 -> One (Sub (r28) :: r343) + | 443 -> One (Sub (r28) :: r349) + | 451 -> One (Sub (r28) :: r352) + | 459 -> One (Sub (r28) :: r353) + | 467 -> One (Sub (r28) :: r356) + | 470 -> One (Sub (r28) :: r357) + | 474 -> One (Sub (r28) :: r358) + | 2384 -> One (Sub (r28) :: r1632) + | 2608 -> One (Sub (r28) :: r1706) + | 2616 -> One (Sub (r28) :: r1709) + | 2824 -> One (Sub (r28) :: r1830) + | 2832 -> One (Sub (r28) :: r1833) + | 2840 -> One (Sub (r28) :: r1836) + | 2848 -> One (Sub (r28) :: r1839) + | 2851 -> One (Sub (r28) :: r1842) + | 2861 -> One (Sub (r28) :: r1848) + | 2869 -> One (Sub (r28) :: r1851) + | 2877 -> One (Sub (r28) :: r1852) + | 2885 -> One (Sub (r28) :: r1855) + | 2895 -> One (Sub (r28) :: r1859) + | 2903 -> One (Sub (r28) :: r1862) + | 2909 -> One (Sub (r28) :: r1863) + | 2913 -> One (Sub (r28) :: r1864) + | 2921 -> One (Sub (r28) :: r1867) + | 502 -> One (Sub (r32) :: r367) + | 1063 -> One (Sub (r32) :: r825) | 136 -> One (Sub (r34) :: r90) - | 149 -> One (Sub (r34) :: r102) - | 237 -> One (Sub (r34) :: r211) - | 526 -> One (Sub (r34) :: r374) - | 651 -> One (Sub (r34) :: r517) - | 847 -> One (Sub (r34) :: r619) - | 925 -> One (Sub (r34) :: r736) - | 967 -> One (Sub (r34) :: r763) - | 989 -> One (Sub (r34) :: r774) - | 1066 -> One (Sub (r34) :: r827) - | 1141 -> One (Sub (r34) :: r857) - | 1437 -> One (Sub (r34) :: r1054) - | 2166 -> One (Sub (r34) :: r1473) - | 2204 -> One (Sub (r34) :: r1506) - | 2543 -> One (Sub (r34) :: r1684) - | 2288 -> One (Sub (r36) :: r1561) - | 2312 -> One (Sub (r36) :: r1572) - | 301 -> One (Sub (r60) :: r280) - | 308 -> One (Sub (r60) :: r289) - | 379 -> One (Sub (r60) :: r319) - | 390 -> One (Sub (r60) :: r326) - | 1988 -> One (Sub (r60) :: r1345) - | 2928 -> One (Sub (r60) :: r1869) - | 3013 -> One (Sub (r60) :: r1888) - | 3021 -> One (Sub (r60) :: r1889) + | 149 -> One (Sub (r34) :: r103) + | 237 -> One (Sub (r34) :: r212) + | 526 -> One (Sub (r34) :: r375) + | 651 -> One (Sub (r34) :: r520) + | 847 -> One (Sub (r34) :: r620) + | 925 -> One (Sub (r34) :: r737) + | 967 -> One (Sub (r34) :: r764) + | 989 -> One (Sub (r34) :: r775) + | 1066 -> One (Sub (r34) :: r828) + | 1141 -> One (Sub (r34) :: r858) + | 1438 -> One (Sub (r34) :: r1055) + | 2167 -> One (Sub (r34) :: r1474) + | 2205 -> One (Sub (r34) :: r1507) + | 2544 -> One (Sub (r34) :: r1685) + | 2289 -> One (Sub (r36) :: r1562) + | 2313 -> One (Sub (r36) :: r1573) + | 301 -> One (Sub (r60) :: r281) + | 308 -> One (Sub (r60) :: r290) + | 379 -> One (Sub (r60) :: r320) + | 390 -> One (Sub (r60) :: r327) + | 1989 -> One (Sub (r60) :: r1346) + | 2937 -> One (Sub (r60) :: r1873) + | 3022 -> One (Sub (r60) :: r1892) + | 3030 -> One (Sub (r60) :: r1893) | 135 -> One (Sub (r76) :: r89) | 144 -> One (Sub (r78) :: r101) - | 184 -> One (Sub (r78) :: r158) - | 197 -> One (Sub (r78) :: r168) - | 213 -> One (Sub (r78) :: r170) - | 950 -> One (Sub (r78) :: r755) - | 345 -> One (Sub (r105) :: r300) - | 2881 -> One (Sub (r105) :: r1854) - | 2146 -> One (Sub (r112) :: r1437) - | 160 -> One (Sub (r117) :: r118) - | 2730 -> One (Sub (r117) :: r1780) - | 659 -> One (Sub (r123) :: r526) - | 671 -> One (Sub (r123) :: r538) - | 2159 -> One (Sub (r151) :: r1467) - | 202 -> One (Sub (r153) :: r169) - | 176 -> One (Sub (r155) :: r157) - | 186 -> One (Sub (r160) :: r161) - | 734 -> One (Sub (r160) :: r570) - | 216 -> One (Sub (r176) :: r177) - | 2657 -> One (Sub (r176) :: r1726) - | 2672 -> One (Sub (r176) :: r1729) - | 900 -> One (Sub (r192) :: r703) - | 1208 -> One (Sub (r192) :: r909) - | 495 -> One (Sub (r213) :: r360) - | 243 -> One (Sub (r215) :: r222) - | 488 -> One (Sub (r215) :: r359) - | 244 -> One (Sub (r228) :: r230) - | 249 -> One (Sub (r243) :: r244) - | 287 -> One (Sub (r243) :: r271) - | 349 -> One (Sub (r243) :: r303) - | 252 -> One (Sub (r250) :: r252) - | 1055 -> One (Sub (r250) :: r818) - | 1097 -> One (Sub (r250) :: r846) - | 2703 -> One (Sub (r250) :: r1757) - | 518 -> One (Sub (r371) :: r373) - | 538 -> One (Sub (r379) :: r380) - | 539 -> One (Sub (r379) :: r381) - | 888 -> One (Sub (r379) :: r686) - | 890 -> One (Sub (r379) :: r691) - | 1021 -> One (Sub (r379) :: r790) - | 1022 -> One (Sub (r379) :: r791) - | 1156 -> One (Sub (r379) :: r875) - | 1180 -> One (Sub (r379) :: r893) - | 1198 -> One (Sub (r379) :: r905) - | 1376 -> One (Sub (r379) :: r1014) - | 1515 -> One (Sub (r379) :: r1101) - | 1814 -> One (Sub (r379) :: r1240) - | 2550 -> One (Sub (r379) :: r1685) - | 2565 -> One (Sub (r379) :: r1693) - | 1911 -> One (Sub (r410) :: r1290) - | 2706 -> One (Sub (r410) :: r1763) - | 2721 -> One (Sub (r410) :: r1776) - | 1639 -> One (Sub (r482) :: r1150) - | 627 -> One (Sub (r484) :: r487) - | 1184 -> One (Sub (r510) :: r895) - | 646 -> One (Sub (r514) :: r516) - | 668 -> One (Sub (r514) :: r537) - | 667 -> One (Sub (r521) :: r535) - | 690 -> One (Sub (r521) :: r545) - | 723 -> One (Sub (r521) :: r564) - | 751 -> One (Sub (r521) :: r578) - | 794 -> One (Sub (r521) :: r590) - | 812 -> One (Sub (r521) :: r598) - | 825 -> One (Sub (r521) :: r604) - | 829 -> One (Sub (r521) :: r607) - | 839 -> One (Sub (r521) :: r613) - | 978 -> One (Sub (r521) :: r768) - | 1458 -> One (Sub (r521) :: r1067) - | 2524 -> One (Sub (r521) :: r1676) - | 2537 -> One (Sub (r521) :: r1682) - | 666 -> One (Sub (r530) :: r532) - | 845 -> One (Sub (r616) :: r618) - | 857 -> One (Sub (r616) :: r625) - | 864 -> One (Sub (r616) :: r629) - | 865 -> One (Sub (r616) :: r632) - | 881 -> One (Sub (r672) :: r674) - | 887 -> One (Sub (r672) :: r685) - | 1751 -> One (Sub (r672) :: r1218) - | 883 -> One (Sub (r678) :: r680) - | 906 -> One (Sub (r724) :: r725) - | 943 -> One (Sub (r747) :: r749) - | 1409 -> One (Sub (r747) :: r1037) - | 2289 -> One (Sub (r747) :: r1566) - | 2313 -> One (Sub (r747) :: r1577) - | 965 -> One (Sub (r760) :: r762) - | 1101 -> One (Sub (r847) :: r848) - | 1658 -> One (Sub (r1163) :: r1167) - | 1656 -> One (Sub (r1165) :: r1166) - | 1748 -> One (Sub (r1214) :: r1216) - | 2087 -> One (Sub (r1277) :: r1391) - | 1928 -> One (Sub (r1280) :: r1296) - | 1943 -> One (Sub (r1308) :: r1309) - | 1944 -> One (Sub (r1320) :: r1322) - | 2612 -> One (Sub (r1320) :: r1707) - | 2615 -> One (Sub (r1320) :: r1709) - | 2629 -> One (Sub (r1320) :: r1711) - | 2632 -> One (Sub (r1320) :: r1713) - | 2640 -> One (Sub (r1320) :: r1717) - | 2643 -> One (Sub (r1320) :: r1719) - | 2648 -> One (Sub (r1320) :: r1721) - | 2651 -> One (Sub (r1320) :: r1723) - | 2489 -> One (Sub (r1421) :: r1673) - | 2503 -> One (Sub (r1421) :: r1675) - | 2330 -> One (Sub (r1440) :: r1590) - | 2421 -> One (Sub (r1443) :: r1641) - | 2155 -> One (Sub (r1464) :: r1466) - | 2728 -> One (Sub (r1490) :: r1779) - | 2343 -> One (Sub (r1501) :: r1607) - | 2253 -> One (Sub (r1533) :: r1535) - | 2282 -> One (Sub (r1552) :: r1554) - | 2374 -> One (Sub (r1620) :: r1622) - | 2417 -> One (Sub (r1620) :: r1640) - | 2739 -> One (Sub (r1783) :: r1784) - | 2744 -> One (Sub (r1783) :: r1785) + | 184 -> One (Sub (r78) :: r159) + | 197 -> One (Sub (r78) :: r169) + | 213 -> One (Sub (r78) :: r171) + | 950 -> One (Sub (r78) :: r756) + | 345 -> One (Sub (r106) :: r301) + | 2889 -> One (Sub (r106) :: r1858) + | 2147 -> One (Sub (r113) :: r1438) + | 160 -> One (Sub (r118) :: r119) + | 2738 -> One (Sub (r118) :: r1784) + | 659 -> One (Sub (r124) :: r529) + | 671 -> One (Sub (r124) :: r541) + | 2160 -> One (Sub (r152) :: r1468) + | 202 -> One (Sub (r154) :: r170) + | 176 -> One (Sub (r156) :: r158) + | 186 -> One (Sub (r161) :: r162) + | 734 -> One (Sub (r161) :: r573) + | 216 -> One (Sub (r177) :: r178) + | 2665 -> One (Sub (r177) :: r1730) + | 2680 -> One (Sub (r177) :: r1733) + | 900 -> One (Sub (r193) :: r704) + | 1208 -> One (Sub (r193) :: r910) + | 495 -> One (Sub (r214) :: r361) + | 243 -> One (Sub (r216) :: r223) + | 488 -> One (Sub (r216) :: r360) + | 244 -> One (Sub (r229) :: r231) + | 249 -> One (Sub (r244) :: r245) + | 287 -> One (Sub (r244) :: r272) + | 349 -> One (Sub (r244) :: r304) + | 252 -> One (Sub (r251) :: r253) + | 1055 -> One (Sub (r251) :: r819) + | 1097 -> One (Sub (r251) :: r847) + | 2711 -> One (Sub (r251) :: r1761) + | 518 -> One (Sub (r372) :: r374) + | 538 -> One (Sub (r380) :: r381) + | 539 -> One (Sub (r380) :: r382) + | 888 -> One (Sub (r380) :: r687) + | 890 -> One (Sub (r380) :: r692) + | 1021 -> One (Sub (r380) :: r791) + | 1022 -> One (Sub (r380) :: r792) + | 1156 -> One (Sub (r380) :: r876) + | 1180 -> One (Sub (r380) :: r894) + | 1198 -> One (Sub (r380) :: r906) + | 1377 -> One (Sub (r380) :: r1015) + | 1516 -> One (Sub (r380) :: r1102) + | 1815 -> One (Sub (r380) :: r1241) + | 2558 -> One (Sub (r380) :: r1689) + | 2573 -> One (Sub (r380) :: r1697) + | 1912 -> One (Sub (r411) :: r1291) + | 2714 -> One (Sub (r411) :: r1767) + | 2729 -> One (Sub (r411) :: r1780) + | 1640 -> One (Sub (r485) :: r1151) + | 627 -> One (Sub (r487) :: r490) + | 1184 -> One (Sub (r513) :: r896) + | 646 -> One (Sub (r517) :: r519) + | 668 -> One (Sub (r517) :: r540) + | 667 -> One (Sub (r524) :: r538) + | 690 -> One (Sub (r524) :: r548) + | 723 -> One (Sub (r524) :: r567) + | 751 -> One (Sub (r524) :: r579) + | 794 -> One (Sub (r524) :: r591) + | 812 -> One (Sub (r524) :: r599) + | 825 -> One (Sub (r524) :: r605) + | 829 -> One (Sub (r524) :: r608) + | 839 -> One (Sub (r524) :: r614) + | 978 -> One (Sub (r524) :: r769) + | 1459 -> One (Sub (r524) :: r1068) + | 2525 -> One (Sub (r524) :: r1677) + | 2538 -> One (Sub (r524) :: r1683) + | 666 -> One (Sub (r533) :: r535) + | 845 -> One (Sub (r617) :: r619) + | 857 -> One (Sub (r617) :: r626) + | 864 -> One (Sub (r617) :: r630) + | 865 -> One (Sub (r617) :: r633) + | 881 -> One (Sub (r673) :: r675) + | 887 -> One (Sub (r673) :: r686) + | 1752 -> One (Sub (r673) :: r1219) + | 883 -> One (Sub (r679) :: r681) + | 906 -> One (Sub (r725) :: r726) + | 943 -> One (Sub (r748) :: r750) + | 1410 -> One (Sub (r748) :: r1038) + | 2290 -> One (Sub (r748) :: r1567) + | 2314 -> One (Sub (r748) :: r1578) + | 965 -> One (Sub (r761) :: r763) + | 1101 -> One (Sub (r848) :: r849) + | 1659 -> One (Sub (r1164) :: r1168) + | 1657 -> One (Sub (r1166) :: r1167) + | 1749 -> One (Sub (r1215) :: r1217) + | 2088 -> One (Sub (r1278) :: r1392) + | 1929 -> One (Sub (r1281) :: r1297) + | 1944 -> One (Sub (r1309) :: r1310) + | 1945 -> One (Sub (r1321) :: r1323) + | 2620 -> One (Sub (r1321) :: r1711) + | 2623 -> One (Sub (r1321) :: r1713) + | 2637 -> One (Sub (r1321) :: r1715) + | 2640 -> One (Sub (r1321) :: r1717) + | 2648 -> One (Sub (r1321) :: r1721) + | 2651 -> One (Sub (r1321) :: r1723) + | 2656 -> One (Sub (r1321) :: r1725) + | 2659 -> One (Sub (r1321) :: r1727) + | 2490 -> One (Sub (r1422) :: r1674) + | 2504 -> One (Sub (r1422) :: r1676) + | 2331 -> One (Sub (r1441) :: r1591) + | 2422 -> One (Sub (r1444) :: r1642) + | 2156 -> One (Sub (r1465) :: r1467) + | 2736 -> One (Sub (r1491) :: r1783) + | 2344 -> One (Sub (r1502) :: r1608) + | 2254 -> One (Sub (r1534) :: r1536) + | 2283 -> One (Sub (r1553) :: r1555) + | 2375 -> One (Sub (r1621) :: r1623) + | 2418 -> One (Sub (r1621) :: r1641) + | 2747 -> One (Sub (r1787) :: r1788) + | 2752 -> One (Sub (r1787) :: r1789) | 1216 -> One (r0) | 1215 -> One (r2) - | 2944 -> One (r4) - | 2943 -> One (r5) - | 2942 -> One (r6) - | 2941 -> One (r7) - | 2940 -> One (r8) + | 2953 -> One (r4) + | 2952 -> One (r5) + | 2951 -> One (r6) + | 2950 -> One (r7) + | 2949 -> One (r8) | 59 -> One (r9) | 54 -> One (r10) | 55 -> One (r12) | 58 -> One (r14) | 57 -> One (r15) - | 2466 -> One (r16) - | 2470 -> One (r18) - | 2939 -> One (r20) - | 2938 -> One (r21) + | 2467 -> One (r16) + | 2471 -> One (r18) + | 2948 -> One (r20) + | 2947 -> One (r21) | 61 -> One (r22) - | 111 | 625 | 882 | 1766 -> One (r23) + | 111 | 625 | 882 | 1767 -> One (r23) | 120 -> One (r25) - | 344 | 2880 -> One (r27) + | 344 | 2888 -> One (r27) | 270 -> One (r29) | 317 -> One (r31) | 370 -> One (r33) - | 2130 -> One (r35) - | 2937 -> One (r37) - | 2936 -> One (r38) - | 2935 -> One (r39) + | 2131 -> One (r35) + | 2946 -> One (r37) + | 2945 -> One (r38) + | 2944 -> One (r39) | 113 -> One (r40) | 112 -> One (r41) | 64 -> One (r42) @@ -3620,7 +3629,7 @@ let recover = | 108 -> One (r44) | 110 -> One (r46) | 109 -> One (r47) - | 65 | 1391 -> One (r48) + | 65 | 1392 -> One (r48) | 91 -> One (r49) | 90 -> One (r50) | 87 -> One (r51) @@ -3636,1838 +3645,1843 @@ let recover = | 137 -> One (r64) | 129 -> One (r65) | 128 -> One (r66) - | 2597 -> One (r68) - | 2596 -> One (r69) - | 2595 -> One (r70) - | 2594 -> One (r71) - | 2593 -> One (r72) - | 2592 -> One (r73) + | 2605 -> One (r68) + | 2604 -> One (r69) + | 2603 -> One (r70) + | 2602 -> One (r71) + | 2601 -> One (r72) + | 2600 -> One (r73) | 134 -> One (r75) | 145 -> One (r77) - | 2923 -> One (r84) - | 2922 -> One (r85) + | 2932 -> One (r84) + | 2931 -> One (r85) | 133 -> One (r86) | 132 -> One (r87) - | 2920 -> One (r88) - | 2919 -> One (r89) - | 2918 -> One (r90) - | 2807 -> One (r91) - | 2806 -> One (r92) + | 2929 -> One (r88) + | 2928 -> One (r89) + | 2927 -> One (r90) + | 2815 -> One (r91) + | 2814 -> One (r92) | 156 -> One (r93) | 155 -> One (r94) | 154 -> One (r95) - | 2917 -> One (r96) + | 2926 -> One (r96) | 148 -> One (r97) | 142 -> One (r98) - | 225 | 1980 -> One (r99) - | 224 | 1979 -> One (r100) + | 225 | 1981 -> One (r99) + | 224 | 1980 -> One (r100) | 146 -> One (r101) - | 2916 -> One (r102) - | 212 | 248 | 660 | 2670 -> One (r103) - | 359 -> One (r104) - | 2900 -> One (r106) - | 2899 -> One (r107) - | 2898 -> One (r108) - | 152 -> One (r109) - | 2805 -> One (r110) - | 166 -> One (r111) - | 165 -> One (r113) - | 164 -> One (r114) - | 159 -> One (r115) - | 161 -> One (r116) - | 163 -> One (r118) - | 263 -> One (r120) - | 295 -> One (r122) - | 674 -> One (r124) - | 2007 -> One (r126) - | 2507 -> One (r128) - | 2506 -> One (r129) - | 2502 | 2628 -> One (r130) - | 2667 -> One (r132) - | 2680 -> One (r134) - | 2679 -> One (r135) - | 2678 -> One (r136) - | 2677 -> One (r137) - | 2676 -> One (r138) - | 2669 -> One (r139) - | 169 -> One (r140) - | 168 -> One (r141) - | 2665 -> One (r142) - | 2664 -> One (r143) - | 2663 -> One (r144) - | 2662 -> One (r145) - | 2661 -> One (r146) - | 211 -> One (r147) - | 183 | 207 -> One (r148) - | 182 | 206 -> One (r149) - | 181 | 205 -> One (r150) - | 199 -> One (r152) - | 204 -> One (r154) - | 201 -> One (r156) - | 200 -> One (r157) - | 185 -> One (r158) - | 187 -> One (r159) - | 189 -> One (r161) - | 191 -> One (r162) - | 190 -> One (r163) - | 193 -> One (r164) - | 196 | 210 -> One (r165) - | 195 | 209 -> One (r166) - | 194 | 208 -> One (r167) - | 198 -> One (r168) - | 203 -> One (r169) - | 214 -> One (r170) - | 2483 -> One (r171) - | 594 -> One (r172) - | 593 -> One (r173) - | 215 | 592 -> One (r174) - | 2635 -> One (r175) - | 2636 -> One (r177) - | 2618 -> One (r178) - | 1940 -> One (r179) - | 1939 -> One (r180) - | 221 -> One (r181) - | 2589 -> One (r182) - | 2577 -> One (r183) - | 2576 -> One (r184) - | 227 -> One (r185) - | 2575 -> One (r186) - | 229 -> One (r187) - | 230 -> One (r188) - | 1781 -> One (r189) - | 1779 -> One (r190) - | 901 -> One (r191) - | 1170 -> One (r193) - | 2574 -> One (r195) - | 2573 -> One (r196) - | 2572 -> One (r197) - | 233 -> One (r198) - | 232 -> One (r199) - | 2571 -> One (r200) - | 2558 -> One (r201) - | 2557 -> One (r202) - | 525 -> One (r203) - | 524 | 1408 | 1468 -> One (r204) - | 2556 -> One (r206) - | 530 -> One (r207) - | 529 -> One (r208) - | 528 -> One (r209) - | 236 -> One (r210) - | 523 -> One (r211) - | 507 -> One (r212) - | 492 -> One (r214) - | 517 -> One (r216) - | 516 -> One (r217) - | 240 -> One (r218) - | 242 -> One (r219) - | 241 -> One (r220) - | 515 -> One (r221) - | 514 -> One (r222) - | 490 -> One (r223) - | 489 -> One (r224) - | 506 -> One (r226) - | 497 -> One (r227) - | 509 -> One (r229) - | 508 -> One (r230) - | 487 -> One (r231) - | 486 -> One (r232) - | 485 -> One (r233) - | 484 -> One (r234) - | 483 -> One (r235) - | 482 -> One (r236) - | 481 -> One (r237) - | 480 -> One (r238) - | 247 -> One (r239) - | 250 -> One (r240) - | 260 -> One (r242) - | 261 -> One (r244) - | 259 | 2388 -> One (r245) - | 258 | 2387 -> One (r246) - | 251 | 2386 -> One (r247) - | 257 -> One (r249) - | 254 -> One (r251) - | 253 -> One (r252) - | 256 -> One (r253) - | 255 -> One (r254) - | 479 -> One (r257) - | 272 -> One (r259) - | 274 -> One (r260) - | 276 -> One (r262) - | 273 -> One (r263) - | 279 -> One (r264) - | 278 -> One (r265) - | 419 -> One (r266) - | 418 -> One (r267) - | 417 -> One (r268) - | 290 -> One (r269) - | 286 -> One (r270) - | 288 -> One (r271) - | 293 -> One (r272) - | 292 | 663 -> One (r273) - | 291 | 662 -> One (r274) - | 300 -> One (r275) - | 299 -> One (r276) - | 298 -> One (r277) - | 304 -> One (r278) - | 303 -> One (r279) - | 302 -> One (r280) - | 331 -> One (r281) - | 330 -> One (r282) - | 395 -> One (r283) - | 325 -> One (r284) - | 324 -> One (r285) - | 323 -> One (r286) - | 322 -> One (r287) - | 316 -> One (r288) - | 309 -> One (r289) - | 315 -> One (r290) - | 314 -> One (r291) - | 313 -> One (r292) - | 312 -> One (r293) - | 311 -> One (r294) - | 329 -> One (r295) - | 335 -> One (r296) - | 338 -> One (r297) - | 337 -> One (r298) - | 342 -> One (r299) - | 353 -> One (r300) - | 348 -> One (r301) - | 347 -> One (r302) - | 350 -> One (r303) - | 358 -> One (r304) - | 357 -> One (r305) - | 356 -> One (r306) - | 363 -> One (r307) - | 362 -> One (r308) - | 367 -> One (r309) - | 373 -> One (r310) - | 372 -> One (r311) - | 378 -> One (r312) - | 377 -> One (r313) - | 376 -> One (r314) - | 375 -> One (r315) - | 383 -> One (r316) - | 382 -> One (r317) - | 381 -> One (r318) - | 380 -> One (r319) - | 385 -> One (r320) - | 389 -> One (r321) - | 388 -> One (r322) - | 387 -> One (r323) - | 393 -> One (r324) - | 392 -> One (r325) - | 391 -> One (r326) - | 403 -> One (r327) - | 402 -> One (r328) - | 401 -> One (r329) - | 400 -> One (r330) - | 399 -> One (r331) - | 407 -> One (r332) - | 411 -> One (r333) - | 410 -> One (r334) - | 415 -> One (r335) - | 423 -> One (r336) - | 427 -> One (r337) - | 426 -> One (r338) - | 431 -> One (r339) - | 456 -> One (r340) - | 455 -> One (r341) - | 454 -> One (r342) - | 440 -> One (r343) - | 439 -> One (r344) - | 438 -> One (r345) - | 437 -> One (r346) - | 436 -> One (r347) - | 444 -> One (r348) - | 448 -> One (r349) - | 447 -> One (r350) - | 452 -> One (r351) - | 460 -> One (r352) - | 464 -> One (r353) - | 463 -> One (r354) - | 468 -> One (r355) - | 471 -> One (r356) - | 475 -> One (r357) - | 494 -> One (r358) - | 493 -> One (r359) - | 496 -> One (r360) - | 505 -> One (r361) - | 504 -> One (r363) - | 501 -> One (r364) - | 500 -> One (r365) - | 503 -> One (r366) - | 513 -> One (r367) - | 512 -> One (r368) - | 511 -> One (r369) - | 522 -> One (r370) - | 520 -> One (r372) - | 519 -> One (r373) - | 527 -> One (r374) - | 536 -> One (r375) - | 535 -> One (r376) - | 534 -> One (r377) - | 533 -> One (r378) - | 2549 -> One (r380) - | 2040 -> One (r381) - | 2548 -> One (r382) - | 2547 -> One (r383) - | 2546 -> One (r384) - | 542 -> One (r385) - | 541 -> One (r386) - | 2542 -> One (r387) - | 2541 -> One (r388) - | 544 -> One (r389) - | 2539 -> One (r390) - | 2529 -> One (r391) - | 2528 -> One (r392) - | 2526 -> One (r393) - | 551 -> One (r394) - | 550 -> One (r395) - | 549 -> One (r396) - | 548 -> One (r397) - | 547 -> One (r398) - | 558 -> One (r399) - | 557 -> One (r400) - | 556 -> One (r401) - | 555 -> One (r402) - | 554 -> One (r403) - | 560 -> One (r404) - | 565 -> One (r405) - | 742 -> One (r406) - | 741 | 911 | 959 | 980 -> One (r407) - | 733 | 909 | 910 | 942 | 979 | 2248 -> One (r408) - | 574 -> One (r409) - | 577 -> One (r411) - | 576 -> One (r412) - | 573 -> One (r413) - | 572 -> One (r414) - | 2523 -> One (r415) - | 2522 -> One (r416) - | 2521 -> One (r417) - | 582 -> One (r418) - | 581 -> One (r419) - | 580 -> One (r420) - | 2520 -> One (r421) - | 2519 -> One (r422) - | 585 -> One (r423) - | 2498 -> One (r424) - | 2518 -> One (r426) - | 2517 -> One (r427) - | 2516 -> One (r428) - | 2515 -> One (r429) - | 2514 -> One (r430) - | 2513 -> One (r434) - | 2512 -> One (r435) - | 2511 -> One (r436) - | 2510 | 2671 -> One (r437) - | 2495 -> One (r442) - | 2494 -> One (r443) - | 2486 -> One (r444) - | 2485 -> One (r445) - | 2484 -> One (r446) - | 2482 -> One (r450) - | 2481 -> One (r451) - | 596 -> One (r452) - | 2480 -> One (r453) - | 2065 -> One (r454) - | 2060 -> One (r455) - | 2059 -> One (r456) - | 603 -> One (r457) - | 602 -> One (r458) - | 2058 -> One (r459) - | 608 -> One (r460) - | 614 -> One (r462) - | 615 -> One (r464) - | 607 -> One (r465) - | 606 -> One (r466) - | 612 -> One (r467) - | 610 -> One (r468) - | 611 -> One (r469) - | 613 -> One (r470) - | 2057 -> One (r471) - | 2056 -> One (r472) - | 2055 -> One (r473) - | 620 -> One (r474) - | 619 -> One (r475) - | 2050 -> One (r476) - | 2049 -> One (r477) - | 2034 -> One (r478) - | 2027 -> One (r479) - | 2026 -> One (r480) - | 843 -> One (r481) - | 1641 -> One (r483) - | 1638 -> One (r485) - | 1637 -> One (r486) - | 1636 -> One (r487) - | 827 -> One (r488) - | 817 -> One (r489) - | 816 -> One (r490) - | 796 -> One (r491) - | 634 -> One (r492) - | 633 -> One (r493) - | 632 -> One (r494) - | 631 -> One (r495) - | 630 -> One (r496) - | 641 -> One (r497) - | 640 -> One (r498) - | 639 -> One (r499) - | 638 -> One (r500) - | 637 -> One (r501) - | 791 -> One (r502) - | 788 -> One (r503) - | 645 -> One (r504) - | 771 -> One (r505) - | 770 -> One (r507) - | 769 -> One (r508) - | 647 -> One (r509) - | 782 -> One (r511) - | 653 -> One (r512) - | 650 -> One (r513) - | 649 -> One (r515) - | 648 -> One (r516) - | 652 -> One (r517) - | 781 -> One (r518) - | 680 | 1436 -> One (r520) - | 780 -> One (r522) - | 657 -> One (r523) - | 656 -> One (r524) - | 658 -> One (r525) - | 661 -> One (r526) - | 753 -> One (r527) - | 743 -> One (r528) - | 779 -> One (r529) - | 778 -> One (r531) - | 777 -> One (r532) - | 775 -> One (r533) - | 682 -> One (r534) - | 681 -> One (r535) - | 670 -> One (r536) - | 669 -> One (r537) - | 672 -> One (r538) - | 676 -> One (r539) - | 689 -> One (r540) - | 688 -> One (r541) - | 687 -> One (r542) - | 686 -> One (r543) - | 685 -> One (r544) - | 691 -> One (r545) - | 697 -> One (r548) - | 694 -> One (r549) - | 768 -> One (r550) - | 767 -> One (r551) - | 701 -> One (r552) - | 703 -> One (r553) - | 710 -> One (r554) - | 706 -> One (r555) - | 705 -> One (r556) - | 713 -> One (r557) - | 728 -> One (r558) - | 722 -> One (r559) - | 721 -> One (r560) - | 720 -> One (r561) - | 719 -> One (r562) - | 718 -> One (r563) - | 724 -> One (r564) - | 727 -> One (r565) - | 731 -> One (r566) - | 762 -> One (r567) - | 737 -> One (r568) - | 736 -> One (r569) - | 735 -> One (r570) - | 740 -> One (r571) - | 739 -> One (r572) - | 750 -> One (r573) - | 749 -> One (r574) - | 748 -> One (r575) - | 747 -> One (r576) - | 746 -> One (r577) - | 752 -> One (r578) - | 757 -> One (r579) - | 756 | 917 -> One (r580) - | 755 | 912 | 960 | 981 -> One (r581) - | 759 -> One (r582) - | 761 -> One (r583) - | 764 -> One (r584) - | 763 -> One (r585) - | 766 -> One (r586) - | 786 -> One (r587) - | 790 -> One (r588) - | 793 -> One (r589) - | 795 -> One (r590) - | 800 -> One (r591) - | 814 -> One (r592) - | 811 -> One (r593) - | 810 -> One (r594) - | 809 -> One (r595) - | 808 -> One (r596) - | 807 -> One (r597) - | 813 -> One (r598) - | 824 -> One (r599) - | 823 -> One (r600) - | 822 -> One (r601) - | 821 -> One (r602) - | 820 -> One (r603) - | 826 -> One (r604) - | 841 -> One (r605) - | 831 -> One (r606) - | 830 -> One (r607) - | 838 -> One (r608) - | 837 -> One (r609) - | 836 -> One (r610) - | 835 -> One (r611) - | 834 -> One (r612) - | 840 -> One (r613) - | 862 -> One (r614) - | 846 -> One (r615) - | 861 -> One (r617) - | 860 -> One (r618) - | 854 -> One (r619) - | 850 -> One (r620) - | 849 -> One (r621) - | 852 -> One (r622) - | 851 -> One (r623) - | 859 -> One (r624) - | 858 -> One (r625) - | 2020 -> One (r626) - | 2019 -> One (r627) - | 2018 -> One (r628) - | 2017 -> One (r629) - | 2016 -> One (r630) - | 2015 -> One (r631) - | 866 -> One (r632) - | 2014 -> One (r633) - | 1907 -> One (r634) - | 1906 -> One (r635) - | 1905 -> One (r636) - | 1904 -> One (r637) - | 1903 -> One (r638) - | 869 -> One (r639) - | 1407 -> One (r640) - | 2013 -> One (r642) - | 2012 -> One (r643) - | 2011 -> One (r644) - | 2009 -> One (r645) - | 2008 -> One (r646) - | 2436 -> One (r647) - | 1902 -> One (r648) - | 1901 -> One (r649) - | 1900 -> One (r650) - | 872 -> One (r651) - | 871 -> One (r652) - | 1121 -> One (r653) - | 1120 -> One (r654) - | 1890 -> One (r655) - | 1889 -> One (r656) - | 875 -> One (r657) - | 1869 -> One (r658) - | 1505 | 1719 | 1732 | 1745 | 1860 | 1872 | 2037 -> One (r659) - | 1859 -> One (r661) - | 1858 -> One (r662) - | 1849 -> One (r663) - | 1846 -> One (r664) - | 879 -> One (r665) - | 1845 -> One (r666) - | 1758 -> One (r667) - | 1757 -> One (r668) - | 1755 -> One (r669) - | 1761 -> One (r671) - | 1840 -> One (r673) - | 1839 -> One (r674) - | 1382 -> One (r675) - | 1369 -> One (r676) - | 1838 -> One (r677) - | 1837 -> One (r679) - | 1836 -> One (r680) - | 1831 -> One (r681) - | 886 -> One (r682) - | 885 -> One (r683) - | 1830 -> One (r684) - | 1829 -> One (r685) - | 1828 -> One (r686) - | 1827 -> One (r687) - | 1826 -> One (r688) - | 1820 -> One (r689) - | 1807 -> One (r690) - | 1806 -> One (r691) - | 1803 -> One (r692) - | 893 -> One (r693) - | 892 -> One (r694) - | 1796 -> One (r695) - | 1785 -> One (r696) - | 1784 -> One (r697) - | 896 -> One (r698) - | 895 -> One (r699) - | 1783 -> One (r700) - | 899 -> One (r701) - | 898 -> One (r702) - | 1782 -> One (r703) - | 1778 -> One (r704) - | 1777 -> One (r705) - | 1776 -> One (r706) - | 1000 -> One (r707) - | 1002 -> One (r709) - | 1406 -> One (r711) - | 1001 -> One (r713) - | 1403 -> One (r715) - | 1774 -> One (r717) - | 1009 -> One (r718) - | 1008 -> One (r719) - | 1004 -> One (r720) - | 905 -> One (r721) - | 904 -> One (r722) - | 907 -> One (r723) - | 941 -> One (r725) - | 939 -> One (r726) - | 938 -> One (r727) - | 937 -> One (r728) - | 916 -> One (r730) - | 915 -> One (r731) - | 914 -> One (r732) - | 918 -> One (r733) - | 921 -> One (r734) - | 923 -> One (r735) - | 930 -> One (r736) - | 928 -> One (r737) - | 927 -> One (r738) - | 936 -> One (r739) - | 935 -> One (r740) - | 934 -> One (r741) - | 949 | 957 -> One (r742) - | 956 -> One (r744) - | 953 -> One (r746) - | 955 -> One (r748) - | 954 -> One (r749) - | 948 -> One (r750) - | 947 -> One (r751) - | 946 -> One (r752) - | 945 -> One (r753) - | 952 -> One (r754) - | 951 -> One (r755) - | 964 -> One (r756) - | 963 -> One (r757) - | 962 -> One (r758) - | 966 -> One (r759) - | 975 -> One (r761) - | 974 -> One (r762) - | 971 -> One (r763) - | 970 -> One (r764) - | 969 -> One (r765) - | 973 -> One (r766) - | 977 -> One (r767) - | 999 -> One (r768) - | 985 -> One (r769) - | 984 -> One (r770) - | 983 -> One (r771) - | 988 -> One (r772) - | 987 -> One (r773) - | 994 -> One (r774) - | 993 -> One (r775) - | 992 -> One (r776) - | 991 -> One (r777) - | 996 -> One (r778) - | 998 -> One (r779) - | 1006 -> One (r780) - | 1013 -> One (r781) - | 1012 -> One (r782) - | 1011 -> One (r783) - | 1773 -> One (r784) - | 1014 -> One (r785) - | 1020 -> One (r786) - | 1019 -> One (r787) - | 1018 -> One (r788) - | 1017 -> One (r789) - | 1768 -> One (r790) - | 1027 -> One (r791) - | 1032 -> One (r792) - | 1031 -> One (r793) - | 1030 | 1765 -> One (r794) - | 1764 -> One (r795) - | 1136 -> One (r796) - | 1135 -> One (r797) - | 1134 -> One (r798) - | 1133 -> One (r799) - | 1037 -> One (r800) - | 1036 -> One (r801) - | 1117 -> One (r802) - | 1115 -> One (r803) - | 1114 -> One (r804) - | 1039 -> One (r805) - | 1041 -> One (r806) - | 1111 -> One (r807) - | 1110 -> One (r808) - | 1043 -> One (r809) - | 1109 -> One (r810) - | 1108 -> One (r811) - | 1106 -> One (r812) - | 1046 -> One (r813) - | 1054 -> One (r814) - | 1052 -> One (r815) - | 1051 -> One (r816) - | 1048 -> One (r817) - | 1103 -> One (r818) - | 1062 -> One (r819) - | 1061 -> One (r820) - | 1058 -> One (r821) - | 1057 -> One (r822) - | 1065 -> One (r823) - | 1064 -> One (r824) - | 1069 -> One (r825) - | 1068 -> One (r826) - | 1067 -> One (r827) - | 1088 -> One (r828) - | 1087 -> One (r830) - | 1075 -> One (r832) - | 1074 -> One (r833) - | 1073 -> One (r834) - | 1072 -> One (r835) - | 1071 -> One (r836) - | 1079 -> One (r837) - | 1078 -> One (r838) - | 1081 -> One (r839) - | 1086 -> One (r840) - | 1092 -> One (r842) - | 1095 -> One (r843) - | 1094 -> One (r844) - | 1096 | 3011 -> One (r845) - | 1098 -> One (r846) - | 1102 -> One (r848) - | 1113 -> One (r849) - | 1119 -> One (r850) - | 1124 -> One (r851) - | 1123 -> One (r852) - | 1126 -> One (r853) - | 1130 -> One (r854) - | 1632 -> One (r855) - | 1143 -> One (r856) - | 1142 -> One (r857) - | 1626 -> One (r858) - | 1631 -> One (r860) - | 1630 -> One (r861) - | 1629 -> One (r862) - | 1628 -> One (r863) - | 1627 -> One (r864) - | 1624 -> One (r865) - | 1148 -> One (r866) - | 1147 -> One (r867) - | 1146 -> One (r868) - | 1145 -> One (r869) - | 1623 -> One (r870) - | 1153 -> One (r871) - | 1152 -> One (r872) - | 1151 -> One (r873) - | 1155 -> One (r874) - | 1157 -> One (r875) - | 1520 | 1616 -> One (r876) - | 1519 | 1615 -> One (r877) - | 1159 | 1518 -> One (r878) - | 1158 | 1517 -> One (r879) - | 1163 | 1649 | 1726 | 1740 | 1855 | 1866 | 2031 -> One (r880) - | 1162 | 1648 | 1725 | 1739 | 1854 | 1865 | 2030 -> One (r881) - | 1161 | 1647 | 1724 | 1738 | 1853 | 1864 | 2029 -> One (r882) - | 1160 | 1646 | 1723 | 1737 | 1852 | 1863 | 2028 -> One (r883) - | 1613 -> One (r884) - | 1169 -> One (r885) - | 1168 -> One (r886) - | 1167 -> One (r887) - | 1177 -> One (r888) - | 1176 -> One (r889) - | 1175 -> One (r890) - | 1174 -> One (r891) - | 1179 -> One (r892) - | 1181 -> One (r893) - | 1183 -> One (r894) - | 1185 -> One (r895) - | 1189 | 1548 -> One (r896) - | 1188 | 1547 -> One (r897) - | 1187 | 1546 -> One (r898) - | 1186 | 1545 -> One (r899) - | 1493 -> One (r900) - | 1197 -> One (r901) - | 1196 -> One (r902) - | 1195 -> One (r903) - | 1194 -> One (r904) - | 1199 -> One (r905) - | 1207 -> One (r906) - | 1206 -> One (r907) - | 1205 -> One (r908) - | 1209 -> One (r909) - | 1214 -> One (r910) - | 1213 -> One (r911) - | 1222 -> One (r912) - | 1221 -> One (r913) - | 1220 -> One (r914) - | 1219 -> One (r915) - | 1228 -> One (r916) - | 1227 -> One (r917) - | 1226 -> One (r918) - | 1225 -> One (r919) - | 1237 -> One (r920) - | 1236 -> One (r921) - | 1235 -> One (r922) - | 1234 -> One (r923) - | 1241 -> One (r924) - | 1240 -> One (r925) - | 1248 -> One (r926) - | 1247 -> One (r927) - | 1246 -> One (r928) - | 1245 -> One (r929) - | 1254 -> One (r930) - | 1253 -> One (r931) - | 1252 -> One (r932) - | 1251 -> One (r933) - | 1260 -> One (r934) - | 1259 -> One (r935) - | 1258 -> One (r936) - | 1257 -> One (r937) - | 1266 -> One (r938) - | 1265 -> One (r939) - | 1264 -> One (r940) - | 1263 -> One (r941) - | 1272 -> One (r942) - | 1271 -> One (r943) - | 1270 -> One (r944) - | 1269 -> One (r945) - | 1278 -> One (r946) - | 1277 -> One (r947) - | 1276 -> One (r948) - | 1275 -> One (r949) - | 1284 -> One (r950) - | 1283 -> One (r951) - | 1282 -> One (r952) - | 1281 -> One (r953) - | 1290 -> One (r954) - | 1289 -> One (r955) - | 1288 -> One (r956) - | 1287 -> One (r957) - | 1296 -> One (r958) - | 1295 -> One (r959) - | 1294 -> One (r960) - | 1293 -> One (r961) - | 1302 -> One (r962) - | 1301 -> One (r963) - | 1300 -> One (r964) - | 1299 -> One (r965) - | 1308 -> One (r966) - | 1307 -> One (r967) - | 1306 -> One (r968) - | 1305 -> One (r969) - | 1314 -> One (r970) - | 1313 -> One (r971) - | 1312 -> One (r972) - | 1311 -> One (r973) - | 1320 -> One (r974) - | 1319 -> One (r975) - | 1318 -> One (r976) - | 1317 -> One (r977) - | 1326 -> One (r978) - | 1325 -> One (r979) - | 1324 -> One (r980) - | 1323 -> One (r981) - | 1332 -> One (r982) - | 1331 -> One (r983) - | 1330 -> One (r984) - | 1329 -> One (r985) - | 1338 -> One (r986) - | 1337 -> One (r987) - | 1336 -> One (r988) - | 1335 -> One (r989) - | 1344 -> One (r990) - | 1343 -> One (r991) - | 1342 -> One (r992) - | 1341 -> One (r993) - | 1350 -> One (r994) - | 1349 -> One (r995) - | 1348 -> One (r996) - | 1347 -> One (r997) - | 1356 -> One (r998) - | 1355 -> One (r999) - | 1354 -> One (r1000) - | 1353 -> One (r1001) - | 1362 -> One (r1002) - | 1361 -> One (r1003) - | 1360 -> One (r1004) - | 1359 -> One (r1005) - | 1368 -> One (r1006) - | 1367 -> One (r1007) - | 1366 -> One (r1008) - | 1365 -> One (r1009) - | 1375 -> One (r1010) - | 1374 -> One (r1011) - | 1373 -> One (r1012) - | 1372 -> One (r1013) - | 1377 -> One (r1014) - | 1381 -> One (r1015) - | 1380 -> One (r1016) - | 1379 -> One (r1017) - | 1388 -> One (r1018) - | 1387 -> One (r1019) - | 1386 -> One (r1020) - | 1385 -> One (r1021) - | 1491 -> One (r1022) - | 1488 -> One (r1023) - | 1390 -> One (r1024) - | 1396 -> One (r1025) - | 1395 -> One (r1026) - | 1397 -> One (r1028) - | 1394 -> One (r1029) - | 1404 -> One (r1030) - | 1402 -> One (r1031) - | 1401 -> One (r1032) - | 1414 -> One (r1033) - | 1413 -> One (r1034) - | 1412 -> One (r1035) - | 1411 -> One (r1036) - | 1410 -> One (r1037) - | 1417 -> One (r1038) - | 1416 -> One (r1039) - | 1422 -> One (r1040) - | 1421 -> One (r1041) - | 1420 -> One (r1042) - | 1419 -> One (r1043) - | 1425 -> One (r1044) - | 1424 -> One (r1045) - | 1428 -> One (r1046) - | 1427 -> One (r1047) - | 1431 -> One (r1048) - | 1430 -> One (r1049) - | 1435 -> One (r1050) - | 1434 -> One (r1051) - | 1440 -> One (r1052) - | 1439 -> One (r1053) - | 1438 -> One (r1054) - | 1443 -> One (r1055) - | 1442 -> One (r1056) - | 1446 -> One (r1057) - | 1445 -> One (r1058) - | 1449 -> One (r1059) - | 1448 -> One (r1060) - | 1460 -> One (r1061) - | 1457 -> One (r1062) - | 1456 -> One (r1063) - | 1455 -> One (r1064) - | 1454 -> One (r1065) - | 1453 -> One (r1066) - | 1459 -> One (r1067) - | 1463 -> One (r1068) - | 1465 -> One (r1069) - | 1483 -> One (r1070) - | 1467 -> One (r1071) - | 1473 -> One (r1072) - | 1472 -> One (r1073) - | 1471 -> One (r1074) - | 1470 -> One (r1075) - | 1476 -> One (r1076) - | 1475 -> One (r1077) - | 1479 -> One (r1078) - | 1478 -> One (r1079) - | 1482 -> One (r1080) - | 1481 -> One (r1081) - | 1486 -> One (r1082) - | 1485 -> One (r1083) - | 1490 -> One (r1084) - | 1496 | 1557 -> One (r1085) - | 1495 | 1556 -> One (r1086) - | 1494 | 1555 -> One (r1087) - | 1499 | 1566 -> One (r1088) - | 1498 | 1565 -> One (r1089) - | 1497 | 1564 -> One (r1090) - | 1504 | 1577 -> One (r1091) - | 1503 | 1576 -> One (r1092) - | 1502 | 1575 -> One (r1093) - | 1501 | 1574 -> One (r1094) - | 1510 | 1586 -> One (r1095) - | 1509 | 1585 -> One (r1096) - | 1508 | 1584 -> One (r1097) - | 1513 | 1595 -> One (r1098) - | 1512 | 1594 -> One (r1099) - | 1511 | 1593 -> One (r1100) - | 1516 -> One (r1101) - | 1526 -> One (r1102) - | 1525 -> One (r1103) - | 1524 -> One (r1104) - | 1523 -> One (r1105) - | 1529 | 1619 -> One (r1106) - | 1528 | 1618 -> One (r1107) - | 1527 | 1617 -> One (r1108) - | 1535 -> One (r1109) - | 1534 -> One (r1110) - | 1533 -> One (r1111) - | 1532 -> One (r1112) - | 1538 | 1622 -> One (r1113) - | 1537 | 1621 -> One (r1114) - | 1536 | 1620 -> One (r1115) - | 1544 -> One (r1116) - | 1543 -> One (r1117) - | 1542 -> One (r1118) - | 1541 -> One (r1119) - | 1554 -> One (r1120) - | 1553 -> One (r1121) - | 1552 -> One (r1122) - | 1551 -> One (r1123) - | 1563 -> One (r1124) - | 1562 -> One (r1125) - | 1561 -> One (r1126) - | 1560 -> One (r1127) - | 1572 -> One (r1128) - | 1571 -> One (r1129) - | 1570 -> One (r1130) - | 1569 -> One (r1131) - | 1583 -> One (r1132) - | 1582 -> One (r1133) - | 1581 -> One (r1134) - | 1580 -> One (r1135) - | 1592 -> One (r1136) - | 1591 -> One (r1137) - | 1590 -> One (r1138) - | 1589 -> One (r1139) - | 1601 -> One (r1140) - | 1600 -> One (r1141) - | 1599 -> One (r1142) - | 1598 -> One (r1143) - | 1608 -> One (r1144) - | 1607 -> One (r1145) - | 1606 -> One (r1146) - | 1605 -> One (r1147) - | 1635 -> One (r1148) - | 1634 -> One (r1149) - | 1640 -> One (r1150) - | 1644 -> One (r1151) - | 1716 -> One (r1152) - | 1655 -> One (r1153) - | 1654 -> One (r1154) - | 1653 -> One (r1155) - | 1652 -> One (r1156) - | 1690 -> One (r1157) - | 1685 -> One (r1158) - | 1709 -> One (r1160) - | 1684 -> One (r1161) - | 1659 -> One (r1162) - | 1711 -> One (r1164) - | 1657 -> One (r1166) - | 1710 -> One (r1167) - | 1667 -> One (r1168) - | 1662 -> One (r1169) - | 1661 -> One (r1170) - | 1666 -> One (r1171) - | 1665 -> One (r1172) - | 1664 -> One (r1173) - | 1675 -> One (r1174) - | 1670 -> One (r1175) - | 1669 -> One (r1176) - | 1674 -> One (r1177) - | 1673 -> One (r1178) - | 1672 -> One (r1179) - | 1683 -> One (r1180) - | 1678 -> One (r1181) - | 1677 -> One (r1182) - | 1682 -> One (r1183) - | 1681 -> One (r1184) - | 1680 -> One (r1185) - | 1689 -> One (r1186) - | 1688 -> One (r1187) - | 1687 -> One (r1188) - | 1708 -> One (r1189) - | 1703 -> One (r1190) - | 1702 -> One (r1191) - | 1701 -> One (r1192) - | 1696 -> One (r1193) - | 1695 -> One (r1194) - | 1694 -> One (r1195) - | 1693 -> One (r1196) - | 1700 -> One (r1197) - | 1699 -> One (r1198) - | 1698 -> One (r1199) - | 1707 -> One (r1200) - | 1706 -> One (r1201) - | 1705 -> One (r1202) - | 1713 -> One (r1203) - | 1718 -> One (r1204) - | 1721 -> One (r1205) - | 1729 -> One (r1206) - | 1728 -> One (r1207) - | 1731 -> One (r1208) - | 1734 -> One (r1209) - | 1736 -> One (r1210) - | 1742 -> One (r1211) - | 1744 -> One (r1212) - | 1747 -> One (r1213) - | 1750 -> One (r1215) - | 1749 -> One (r1216) - | 1763 -> One (r1217) - | 1762 -> One (r1218) - | 1754 -> One (r1219) - | 1753 -> One (r1220) - | 1772 -> One (r1221) - | 1771 -> One (r1222) - | 1770 -> One (r1223) - | 1789 -> One (r1224) - | 1788 -> One (r1225) - | 1787 -> One (r1226) - | 1795 -> One (r1227) - | 1794 -> One (r1228) - | 1793 -> One (r1229) - | 1792 -> One (r1230) - | 1802 -> One (r1231) - | 1801 -> One (r1232) - | 1800 -> One (r1233) - | 1799 -> One (r1234) - | 1805 -> One (r1235) - | 1813 -> One (r1236) - | 1812 -> One (r1237) - | 1811 -> One (r1238) - | 1810 -> One (r1239) - | 1815 -> One (r1240) - | 1819 -> One (r1241) - | 1818 -> One (r1242) - | 1817 -> One (r1243) - | 1825 -> One (r1244) - | 1824 -> One (r1245) - | 1823 -> One (r1246) - | 1822 -> One (r1247) - | 1835 -> One (r1248) - | 1834 -> One (r1249) - | 1833 -> One (r1250) - | 1844 -> One (r1251) - | 1843 -> One (r1252) - | 1842 -> One (r1253) - | 1851 -> One (r1254) - | 1857 -> One (r1255) - | 1862 -> One (r1256) - | 1868 -> One (r1257) - | 1871 -> One (r1258) - | 1874 -> One (r1259) - | 1879 -> One (r1260) - | 1878 -> One (r1261) - | 1877 -> One (r1262) - | 1876 -> One (r1263) - | 1882 -> One (r1264) - | 1881 -> One (r1265) - | 1885 -> One (r1266) - | 1884 -> One (r1267) - | 1888 -> One (r1268) - | 1887 -> One (r1269) - | 1893 -> One (r1270) - | 1892 -> One (r1271) - | 1896 -> One (r1272) - | 1895 -> One (r1273) - | 1899 -> One (r1274) - | 1898 -> One (r1275) - | 1933 -> One (r1276) - | 1917 -> One (r1278) - | 1916 -> One (r1279) - | 1927 -> One (r1281) - | 1926 -> One (r1282) - | 1925 -> One (r1283) - | 1915 -> One (r1284) - | 1910 -> One (r1285) - | 1909 -> One (r1286) - | 1914 -> One (r1288) - | 1913 -> One (r1289) - | 1912 -> One (r1290) - | 1921 -> One (r1291) - | 1920 -> One (r1292) - | 1919 -> One (r1293) - | 1924 -> One (r1294) - | 1923 -> One (r1295) - | 1929 -> One (r1296) - | 1932 -> One (r1297) - | 1931 -> One (r1298) - | 2006 -> One (r1299) - | 2005 -> One (r1300) - | 2004 -> One (r1301) - | 2003 -> One (r1302) - | 1942 -> One (r1303) - | 1936 -> One (r1304) - | 1935 -> One (r1305) - | 1976 -> One (r1306) - | 1975 -> One (r1307) - | 1974 -> One (r1309) - | 1958 -> One (r1310) - | 1963 -> One (r1319) - | 1960 -> One (r1321) - | 1959 -> One (r1322) - | 1957 -> One (r1323) - | 1956 -> One (r1324) - | 1955 -> One (r1325) - | 1954 -> One (r1326) - | 1953 -> One (r1327) - | 1949 -> One (r1328) - | 1948 -> One (r1329) - | 1952 -> One (r1330) - | 1951 -> One (r1331) - | 1966 -> One (r1332) - | 1965 -> One (r1333) - | 1973 -> One (r1334) - | 1972 -> One (r1335) - | 1968 -> One (r1336) - | 1971 -> One (r1337) - | 1970 -> One (r1338) - | 2002 -> One (r1339) - | 1987 -> One (r1340) - | 1986 -> One (r1341) - | 1985 -> One (r1342) - | 1991 -> One (r1343) - | 1990 -> One (r1344) - | 1989 -> One (r1345) - | 1998 -> One (r1346) - | 1994 -> One (r1347) - | 1997 -> One (r1348) - | 1996 -> One (r1349) - | 2001 -> One (r1350) - | 2000 -> One (r1351) - | 2025 -> One (r1352) - | 2024 -> One (r1353) - | 2023 -> One (r1354) - | 2033 -> One (r1355) - | 2036 -> One (r1356) - | 2039 -> One (r1357) - | 2045 -> One (r1358) - | 2044 -> One (r1359) - | 2043 -> One (r1360) - | 2042 -> One (r1361) - | 2048 -> One (r1362) - | 2047 -> One (r1363) - | 2052 -> One (r1364) - | 2054 -> One (r1365) - | 2064 -> One (r1366) - | 2063 -> One (r1367) - | 2062 -> One (r1368) - | 2075 -> One (r1369) - | 2074 -> One (r1370) - | 2073 -> One (r1371) - | 2072 -> One (r1372) - | 2071 -> One (r1373) - | 2070 -> One (r1374) - | 2069 -> One (r1375) - | 2068 -> One (r1376) - | 2100 -> One (r1377) - | 2099 -> One (r1378) - | 2098 -> One (r1379) - | 2086 -> One (r1380) - | 2085 -> One (r1381) - | 2084 -> One (r1382) - | 2083 -> One (r1383) - | 2080 -> One (r1384) - | 2079 -> One (r1385) - | 2078 -> One (r1386) - | 2082 -> One (r1387) - | 2097 -> One (r1388) - | 2090 -> One (r1389) - | 2089 -> One (r1390) - | 2088 -> One (r1391) - | 2096 -> One (r1392) - | 2095 -> One (r1393) - | 2094 -> One (r1394) - | 2093 -> One (r1395) - | 2092 -> One (r1396) - | 2476 -> One (r1397) - | 2475 -> One (r1398) - | 2102 -> One (r1399) - | 2104 -> One (r1400) - | 2106 -> One (r1401) - | 2474 -> One (r1402) - | 2473 -> One (r1403) - | 2108 -> One (r1404) - | 2112 -> One (r1405) - | 2111 -> One (r1406) - | 2110 -> One (r1407) - | 2126 -> One (r1408) - | 2129 -> One (r1410) - | 2128 -> One (r1411) - | 2125 -> One (r1412) - | 2124 -> One (r1413) - | 2123 -> One (r1414) - | 2119 -> One (r1415) - | 2118 -> One (r1416) - | 2117 -> One (r1417) - | 2116 -> One (r1418) - | 2122 -> One (r1419) - | 2121 -> One (r1420) - | 2142 -> One (r1422) - | 2141 -> One (r1423) - | 2140 -> One (r1424) - | 2135 -> One (r1425) - | 2145 -> One (r1429) - | 2144 -> One (r1430) - | 2143 -> One (r1431) - | 2750 -> One (r1432) - | 2749 -> One (r1433) - | 2748 -> One (r1434) - | 2747 -> One (r1435) - | 2139 -> One (r1436) - | 2147 -> One (r1437) - | 2353 -> One (r1439) - | 2416 -> One (r1441) - | 2249 -> One (r1442) - | 2433 -> One (r1444) - | 2424 -> One (r1445) - | 2423 -> One (r1446) - | 2247 -> One (r1447) - | 2246 -> One (r1448) - | 2245 -> One (r1449) - | 2244 -> One (r1450) - | 2243 -> One (r1451) - | 2207 | 2389 -> One (r1452) - | 2242 -> One (r1454) - | 2232 -> One (r1455) - | 2231 -> One (r1456) - | 2163 -> One (r1457) - | 2162 -> One (r1458) - | 2161 -> One (r1459) - | 2154 -> One (r1460) - | 2152 -> One (r1461) - | 2151 -> One (r1462) - | 2156 -> One (r1463) - | 2158 -> One (r1465) - | 2157 -> One (r1466) - | 2160 -> One (r1467) - | 2225 -> One (r1468) - | 2224 -> One (r1469) - | 2169 -> One (r1470) - | 2165 -> One (r1471) - | 2168 -> One (r1472) - | 2167 -> One (r1473) - | 2180 -> One (r1474) - | 2179 -> One (r1475) - | 2178 -> One (r1476) - | 2177 -> One (r1477) - | 2176 -> One (r1478) - | 2171 -> One (r1479) - | 2191 -> One (r1480) - | 2190 -> One (r1481) - | 2189 -> One (r1482) - | 2188 -> One (r1483) - | 2187 -> One (r1484) - | 2182 -> One (r1485) - | 2216 -> One (r1486) - | 2215 -> One (r1487) - | 2193 -> One (r1488) - | 2214 -> One (r1491) - | 2213 -> One (r1492) - | 2212 -> One (r1493) - | 2211 -> One (r1494) - | 2195 -> One (r1495) - | 2209 -> One (r1496) - | 2199 -> One (r1497) - | 2198 -> One (r1498) - | 2197 -> One (r1499) - | 2206 | 2380 -> One (r1500) - | 2203 -> One (r1502) - | 2202 -> One (r1503) - | 2201 -> One (r1504) - | 2200 | 2379 -> One (r1505) - | 2205 -> One (r1506) - | 2221 -> One (r1507) - | 2220 -> One (r1508) - | 2219 -> One (r1509) - | 2223 -> One (r1511) - | 2222 -> One (r1512) - | 2218 -> One (r1513) - | 2227 -> One (r1514) - | 2230 -> One (r1515) - | 2241 -> One (r1516) - | 2240 -> One (r1517) - | 2239 -> One (r1518) - | 2238 -> One (r1519) - | 2237 -> One (r1520) - | 2236 -> One (r1521) - | 2235 -> One (r1522) - | 2234 -> One (r1523) - | 2410 -> One (r1524) - | 2409 -> One (r1525) - | 2252 -> One (r1526) - | 2251 -> One (r1527) - | 2278 -> One (r1528) - | 2277 -> One (r1529) - | 2276 -> One (r1530) - | 2275 -> One (r1531) - | 2266 -> One (r1532) - | 2265 -> One (r1534) - | 2264 -> One (r1535) - | 2260 -> One (r1536) - | 2259 -> One (r1537) - | 2258 -> One (r1538) - | 2257 -> One (r1539) - | 2255 -> One (r1540) - | 2263 -> One (r1541) - | 2262 -> One (r1542) - | 2274 -> One (r1543) - | 2273 -> One (r1544) - | 2272 -> One (r1545) - | 2281 -> One (r1546) - | 2280 -> One (r1547) - | 2322 -> One (r1548) - | 2311 -> One (r1549) - | 2310 -> One (r1550) - | 2301 -> One (r1551) - | 2300 -> One (r1553) - | 2299 -> One (r1554) - | 2298 -> One (r1555) - | 2287 -> One (r1556) - | 2286 -> One (r1557) - | 2284 -> One (r1558) - | 2297 -> One (r1559) - | 2296 -> One (r1560) - | 2295 -> One (r1561) - | 2294 -> One (r1562) - | 2293 -> One (r1563) - | 2292 -> One (r1564) - | 2291 -> One (r1565) - | 2290 -> One (r1566) - | 2309 -> One (r1567) - | 2308 -> One (r1568) - | 2307 -> One (r1569) - | 2321 -> One (r1570) - | 2320 -> One (r1571) - | 2319 -> One (r1572) - | 2318 -> One (r1573) - | 2317 -> One (r1574) - | 2316 -> One (r1575) - | 2315 -> One (r1576) - | 2314 -> One (r1577) - | 2326 -> One (r1578) - | 2325 -> One (r1579) - | 2324 -> One (r1580) - | 2404 -> One (r1581) - | 2403 -> One (r1582) - | 2402 -> One (r1583) - | 2401 -> One (r1584) - | 2400 -> One (r1585) - | 2399 -> One (r1586) - | 2396 -> One (r1587) - | 2329 -> One (r1588) - | 2373 -> One (r1589) - | 2372 -> One (r1590) - | 2367 -> One (r1591) - | 2366 -> One (r1592) - | 2365 -> One (r1593) - | 2364 -> One (r1594) - | 2338 -> One (r1595) - | 2337 -> One (r1596) - | 2336 -> One (r1597) - | 2335 -> One (r1598) - | 2334 -> One (r1599) - | 2333 -> One (r1600) - | 2363 -> One (r1601) - | 2342 -> One (r1602) - | 2341 -> One (r1603) - | 2340 -> One (r1604) - | 2346 -> One (r1605) - | 2345 -> One (r1606) - | 2344 -> One (r1607) - | 2360 -> One (r1608) - | 2350 -> One (r1609) - | 2349 -> One (r1610) - | 2362 -> One (r1612) - | 2348 -> One (r1613) - | 2357 -> One (r1614) - | 2352 -> One (r1615) - | 2371 -> One (r1616) - | 2370 -> One (r1617) - | 2369 -> One (r1618) - | 2391 -> One (r1619) - | 2395 -> One (r1621) - | 2394 -> One (r1622) - | 2393 -> One (r1623) - | 2378 -> One (r1624) - | 2377 -> One (r1625) - | 2376 -> One (r1626) - | 2392 -> One (r1627) - | 2382 -> One (r1628) - | 2390 -> One (r1629) - | 2385 -> One (r1630) - | 2384 -> One (r1631) - | 2398 -> One (r1632) - | 2408 -> One (r1633) - | 2407 -> One (r1634) - | 2406 -> One (r1635) - | 2412 -> One (r1636) - | 2415 -> One (r1637) - | 2420 -> One (r1638) - | 2419 -> One (r1639) - | 2418 -> One (r1640) - | 2422 -> One (r1641) - | 2432 -> One (r1642) - | 2431 -> One (r1643) - | 2430 -> One (r1644) - | 2429 -> One (r1645) - | 2428 -> One (r1646) - | 2427 -> One (r1647) - | 2426 -> One (r1648) - | 2442 -> One (r1649) - | 2446 -> One (r1650) - | 2451 -> One (r1651) - | 2450 -> One (r1652) - | 2449 -> One (r1653) - | 2448 -> One (r1654) - | 2463 -> One (r1655) - | 2461 -> One (r1656) - | 2460 -> One (r1657) - | 2459 -> One (r1658) - | 2458 -> One (r1659) - | 2457 -> One (r1660) - | 2456 -> One (r1661) - | 2455 -> One (r1662) - | 2454 -> One (r1663) - | 2469 -> One (r1664) - | 2468 -> One (r1665) - | 2479 -> One (r1666) - | 2478 -> One (r1667) - | 2493 -> One (r1668) - | 2492 -> One (r1669) - | 2488 | 2620 -> One (r1670) - | 2487 | 2622 -> One (r1671) - | 2491 -> One (r1672) - | 2490 -> One (r1673) - | 2505 -> One (r1674) - | 2504 -> One (r1675) - | 2525 -> One (r1676) - | 2536 -> One (r1677) - | 2535 -> One (r1678) - | 2534 -> One (r1679) - | 2533 -> One (r1680) - | 2532 -> One (r1681) - | 2538 -> One (r1682) - | 2545 -> One (r1683) - | 2544 -> One (r1684) - | 2551 -> One (r1685) - | 2555 -> One (r1686) - | 2554 -> One (r1687) - | 2553 -> One (r1688) - | 2564 -> One (r1689) + | 2925 -> One (r102) + | 2924 -> One (r103) + | 212 | 248 | 660 | 2678 -> One (r104) + | 359 -> One (r105) + | 2908 -> One (r107) + | 2907 -> One (r108) + | 2906 -> One (r109) + | 152 -> One (r110) + | 2813 -> One (r111) + | 166 -> One (r112) + | 165 -> One (r114) + | 164 -> One (r115) + | 159 -> One (r116) + | 161 -> One (r117) + | 163 -> One (r119) + | 263 -> One (r121) + | 295 -> One (r123) + | 674 -> One (r125) + | 2008 -> One (r127) + | 2508 -> One (r129) + | 2507 -> One (r130) + | 2503 | 2636 -> One (r131) + | 2675 -> One (r133) + | 2688 -> One (r135) + | 2687 -> One (r136) + | 2686 -> One (r137) + | 2685 -> One (r138) + | 2684 -> One (r139) + | 2677 -> One (r140) + | 169 -> One (r141) + | 168 -> One (r142) + | 2673 -> One (r143) + | 2672 -> One (r144) + | 2671 -> One (r145) + | 2670 -> One (r146) + | 2669 -> One (r147) + | 211 -> One (r148) + | 183 | 207 -> One (r149) + | 182 | 206 -> One (r150) + | 181 | 205 -> One (r151) + | 199 -> One (r153) + | 204 -> One (r155) + | 201 -> One (r157) + | 200 -> One (r158) + | 185 -> One (r159) + | 187 -> One (r160) + | 189 -> One (r162) + | 191 -> One (r163) + | 190 -> One (r164) + | 193 -> One (r165) + | 196 | 210 -> One (r166) + | 195 | 209 -> One (r167) + | 194 | 208 -> One (r168) + | 198 -> One (r169) + | 203 -> One (r170) + | 214 -> One (r171) + | 2484 -> One (r172) + | 594 -> One (r173) + | 593 -> One (r174) + | 215 | 592 -> One (r175) + | 2643 -> One (r176) + | 2644 -> One (r178) + | 2626 -> One (r179) + | 1941 -> One (r180) + | 1940 -> One (r181) + | 221 -> One (r182) + | 2597 -> One (r183) + | 2585 -> One (r184) + | 2584 -> One (r185) + | 227 -> One (r186) + | 2583 -> One (r187) + | 229 -> One (r188) + | 230 -> One (r189) + | 1782 -> One (r190) + | 1780 -> One (r191) + | 901 -> One (r192) + | 1170 -> One (r194) + | 2582 -> One (r196) + | 2581 -> One (r197) + | 2580 -> One (r198) + | 233 -> One (r199) + | 232 -> One (r200) + | 2579 -> One (r201) + | 2566 -> One (r202) + | 2565 -> One (r203) + | 525 -> One (r204) + | 524 | 1409 | 1469 -> One (r205) + | 2564 -> One (r207) + | 530 -> One (r208) + | 529 -> One (r209) + | 528 -> One (r210) + | 236 -> One (r211) + | 523 -> One (r212) + | 507 -> One (r213) + | 492 -> One (r215) + | 517 -> One (r217) + | 516 -> One (r218) + | 240 -> One (r219) + | 242 -> One (r220) + | 241 -> One (r221) + | 515 -> One (r222) + | 514 -> One (r223) + | 490 -> One (r224) + | 489 -> One (r225) + | 506 -> One (r227) + | 497 -> One (r228) + | 509 -> One (r230) + | 508 -> One (r231) + | 487 -> One (r232) + | 486 -> One (r233) + | 485 -> One (r234) + | 484 -> One (r235) + | 483 -> One (r236) + | 482 -> One (r237) + | 481 -> One (r238) + | 480 -> One (r239) + | 247 -> One (r240) + | 250 -> One (r241) + | 260 -> One (r243) + | 261 -> One (r245) + | 259 | 2389 -> One (r246) + | 258 | 2388 -> One (r247) + | 251 | 2387 -> One (r248) + | 257 -> One (r250) + | 254 -> One (r252) + | 253 -> One (r253) + | 256 -> One (r254) + | 255 -> One (r255) + | 479 -> One (r258) + | 272 -> One (r260) + | 274 -> One (r261) + | 276 -> One (r263) + | 273 -> One (r264) + | 279 -> One (r265) + | 278 -> One (r266) + | 419 -> One (r267) + | 418 -> One (r268) + | 417 -> One (r269) + | 290 -> One (r270) + | 286 -> One (r271) + | 288 -> One (r272) + | 293 -> One (r273) + | 292 | 663 -> One (r274) + | 291 | 662 -> One (r275) + | 300 -> One (r276) + | 299 -> One (r277) + | 298 -> One (r278) + | 304 -> One (r279) + | 303 -> One (r280) + | 302 -> One (r281) + | 331 -> One (r282) + | 330 -> One (r283) + | 395 -> One (r284) + | 325 -> One (r285) + | 324 -> One (r286) + | 323 -> One (r287) + | 322 -> One (r288) + | 316 -> One (r289) + | 309 -> One (r290) + | 315 -> One (r291) + | 314 -> One (r292) + | 313 -> One (r293) + | 312 -> One (r294) + | 311 -> One (r295) + | 329 -> One (r296) + | 335 -> One (r297) + | 338 -> One (r298) + | 337 -> One (r299) + | 342 -> One (r300) + | 353 -> One (r301) + | 348 -> One (r302) + | 347 -> One (r303) + | 350 -> One (r304) + | 358 -> One (r305) + | 357 -> One (r306) + | 356 -> One (r307) + | 363 -> One (r308) + | 362 -> One (r309) + | 367 -> One (r310) + | 373 -> One (r311) + | 372 -> One (r312) + | 378 -> One (r313) + | 377 -> One (r314) + | 376 -> One (r315) + | 375 -> One (r316) + | 383 -> One (r317) + | 382 -> One (r318) + | 381 -> One (r319) + | 380 -> One (r320) + | 385 -> One (r321) + | 389 -> One (r322) + | 388 -> One (r323) + | 387 -> One (r324) + | 393 -> One (r325) + | 392 -> One (r326) + | 391 -> One (r327) + | 403 -> One (r328) + | 402 -> One (r329) + | 401 -> One (r330) + | 400 -> One (r331) + | 399 -> One (r332) + | 407 -> One (r333) + | 411 -> One (r334) + | 410 -> One (r335) + | 415 -> One (r336) + | 423 -> One (r337) + | 427 -> One (r338) + | 426 -> One (r339) + | 431 -> One (r340) + | 456 -> One (r341) + | 455 -> One (r342) + | 454 -> One (r343) + | 440 -> One (r344) + | 439 -> One (r345) + | 438 -> One (r346) + | 437 -> One (r347) + | 436 -> One (r348) + | 444 -> One (r349) + | 448 -> One (r350) + | 447 -> One (r351) + | 452 -> One (r352) + | 460 -> One (r353) + | 464 -> One (r354) + | 463 -> One (r355) + | 468 -> One (r356) + | 471 -> One (r357) + | 475 -> One (r358) + | 494 -> One (r359) + | 493 -> One (r360) + | 496 -> One (r361) + | 505 -> One (r362) + | 504 -> One (r364) + | 501 -> One (r365) + | 500 -> One (r366) + | 503 -> One (r367) + | 513 -> One (r368) + | 512 -> One (r369) + | 511 -> One (r370) + | 522 -> One (r371) + | 520 -> One (r373) + | 519 -> One (r374) + | 527 -> One (r375) + | 536 -> One (r376) + | 535 -> One (r377) + | 534 -> One (r378) + | 533 -> One (r379) + | 2554 -> One (r381) + | 2041 -> One (r382) + | 2549 -> One (r383) + | 2548 -> One (r384) + | 2547 -> One (r385) + | 542 -> One (r386) + | 541 -> One (r387) + | 2543 -> One (r388) + | 2542 -> One (r389) + | 544 -> One (r390) + | 2540 -> One (r391) + | 2530 -> One (r392) + | 2529 -> One (r393) + | 2527 -> One (r394) + | 551 -> One (r395) + | 550 -> One (r396) + | 549 -> One (r397) + | 548 -> One (r398) + | 547 -> One (r399) + | 558 -> One (r400) + | 557 -> One (r401) + | 556 -> One (r402) + | 555 -> One (r403) + | 554 -> One (r404) + | 560 -> One (r405) + | 565 -> One (r406) + | 742 -> One (r407) + | 741 | 911 | 959 | 980 -> One (r408) + | 733 | 909 | 910 | 942 | 979 | 2249 -> One (r409) + | 574 -> One (r410) + | 577 -> One (r412) + | 576 -> One (r413) + | 573 -> One (r414) + | 572 -> One (r415) + | 2524 -> One (r416) + | 2523 -> One (r417) + | 2522 -> One (r418) + | 582 -> One (r419) + | 581 -> One (r420) + | 580 -> One (r421) + | 2521 -> One (r422) + | 2520 -> One (r423) + | 585 -> One (r424) + | 2499 -> One (r425) + | 2519 -> One (r427) + | 2518 -> One (r428) + | 2517 -> One (r429) + | 2516 -> One (r430) + | 2515 -> One (r431) + | 2514 -> One (r435) + | 2513 -> One (r436) + | 2512 -> One (r437) + | 2511 | 2679 -> One (r438) + | 2496 -> One (r443) + | 2495 -> One (r444) + | 2487 -> One (r445) + | 2486 -> One (r446) + | 2485 -> One (r447) + | 2483 -> One (r451) + | 2482 -> One (r452) + | 596 -> One (r453) + | 2481 -> One (r454) + | 2066 -> One (r455) + | 2061 -> One (r456) + | 2060 -> One (r457) + | 603 -> One (r458) + | 602 -> One (r459) + | 2059 -> One (r460) + | 608 -> One (r461) + | 614 -> One (r463) + | 615 -> One (r465) + | 607 -> One (r466) + | 606 -> One (r467) + | 612 -> One (r468) + | 610 -> One (r469) + | 611 -> One (r470) + | 613 -> One (r471) + | 2058 -> One (r472) + | 2057 -> One (r473) + | 2056 -> One (r474) + | 620 -> One (r475) + | 619 -> One (r476) + | 2051 -> One (r477) + | 2050 -> One (r478) + | 740 -> One (r479) + | 739 -> One (r480) + | 2035 -> One (r481) + | 2028 -> One (r482) + | 2027 -> One (r483) + | 843 -> One (r484) + | 1642 -> One (r486) + | 1639 -> One (r488) + | 1638 -> One (r489) + | 1637 -> One (r490) + | 827 -> One (r491) + | 817 -> One (r492) + | 816 -> One (r493) + | 796 -> One (r494) + | 634 -> One (r495) + | 633 -> One (r496) + | 632 -> One (r497) + | 631 -> One (r498) + | 630 -> One (r499) + | 641 -> One (r500) + | 640 -> One (r501) + | 639 -> One (r502) + | 638 -> One (r503) + | 637 -> One (r504) + | 791 -> One (r505) + | 788 -> One (r506) + | 645 -> One (r507) + | 771 -> One (r508) + | 770 -> One (r510) + | 769 -> One (r511) + | 647 -> One (r512) + | 782 -> One (r514) + | 653 -> One (r515) + | 650 -> One (r516) + | 649 -> One (r518) + | 648 -> One (r519) + | 652 -> One (r520) + | 781 -> One (r521) + | 680 | 1437 -> One (r523) + | 780 -> One (r525) + | 657 -> One (r526) + | 656 -> One (r527) + | 658 -> One (r528) + | 661 -> One (r529) + | 753 -> One (r530) + | 743 -> One (r531) + | 779 -> One (r532) + | 778 -> One (r534) + | 777 -> One (r535) + | 775 -> One (r536) + | 682 -> One (r537) + | 681 -> One (r538) + | 670 -> One (r539) + | 669 -> One (r540) + | 672 -> One (r541) + | 676 -> One (r542) + | 689 -> One (r543) + | 688 -> One (r544) + | 687 -> One (r545) + | 686 -> One (r546) + | 685 -> One (r547) + | 691 -> One (r548) + | 697 -> One (r551) + | 694 -> One (r552) + | 768 -> One (r553) + | 767 -> One (r554) + | 701 -> One (r555) + | 703 -> One (r556) + | 710 -> One (r557) + | 706 -> One (r558) + | 705 -> One (r559) + | 713 -> One (r560) + | 728 -> One (r561) + | 722 -> One (r562) + | 721 -> One (r563) + | 720 -> One (r564) + | 719 -> One (r565) + | 718 -> One (r566) + | 724 -> One (r567) + | 727 -> One (r568) + | 731 -> One (r569) + | 762 -> One (r570) + | 737 -> One (r571) + | 736 -> One (r572) + | 735 -> One (r573) + | 750 -> One (r574) + | 749 -> One (r575) + | 748 -> One (r576) + | 747 -> One (r577) + | 746 -> One (r578) + | 752 -> One (r579) + | 757 -> One (r580) + | 756 | 917 -> One (r581) + | 755 | 912 | 960 | 981 -> One (r582) + | 759 -> One (r583) + | 761 -> One (r584) + | 764 -> One (r585) + | 763 -> One (r586) + | 766 -> One (r587) + | 786 -> One (r588) + | 790 -> One (r589) + | 793 -> One (r590) + | 795 -> One (r591) + | 800 -> One (r592) + | 814 -> One (r593) + | 811 -> One (r594) + | 810 -> One (r595) + | 809 -> One (r596) + | 808 -> One (r597) + | 807 -> One (r598) + | 813 -> One (r599) + | 824 -> One (r600) + | 823 -> One (r601) + | 822 -> One (r602) + | 821 -> One (r603) + | 820 -> One (r604) + | 826 -> One (r605) + | 841 -> One (r606) + | 831 -> One (r607) + | 830 -> One (r608) + | 838 -> One (r609) + | 837 -> One (r610) + | 836 -> One (r611) + | 835 -> One (r612) + | 834 -> One (r613) + | 840 -> One (r614) + | 862 -> One (r615) + | 846 -> One (r616) + | 861 -> One (r618) + | 860 -> One (r619) + | 854 -> One (r620) + | 850 -> One (r621) + | 849 -> One (r622) + | 852 -> One (r623) + | 851 -> One (r624) + | 859 -> One (r625) + | 858 -> One (r626) + | 2021 -> One (r627) + | 2020 -> One (r628) + | 2019 -> One (r629) + | 2018 -> One (r630) + | 2017 -> One (r631) + | 2016 -> One (r632) + | 866 -> One (r633) + | 2015 -> One (r634) + | 1908 -> One (r635) + | 1907 -> One (r636) + | 1906 -> One (r637) + | 1905 -> One (r638) + | 1904 -> One (r639) + | 869 -> One (r640) + | 1408 -> One (r641) + | 2014 -> One (r643) + | 2013 -> One (r644) + | 2012 -> One (r645) + | 2010 -> One (r646) + | 2009 -> One (r647) + | 2437 -> One (r648) + | 1903 -> One (r649) + | 1902 -> One (r650) + | 1901 -> One (r651) + | 872 -> One (r652) + | 871 -> One (r653) + | 1121 -> One (r654) + | 1120 -> One (r655) + | 1891 -> One (r656) + | 1890 -> One (r657) + | 875 -> One (r658) + | 1870 -> One (r659) + | 1506 | 1720 | 1733 | 1746 | 1861 | 1873 | 2038 -> One (r660) + | 1860 -> One (r662) + | 1859 -> One (r663) + | 1850 -> One (r664) + | 1847 -> One (r665) + | 879 -> One (r666) + | 1846 -> One (r667) + | 1759 -> One (r668) + | 1758 -> One (r669) + | 1756 -> One (r670) + | 1762 -> One (r672) + | 1841 -> One (r674) + | 1840 -> One (r675) + | 1383 -> One (r676) + | 1370 -> One (r677) + | 1839 -> One (r678) + | 1838 -> One (r680) + | 1837 -> One (r681) + | 1832 -> One (r682) + | 886 -> One (r683) + | 885 -> One (r684) + | 1831 -> One (r685) + | 1830 -> One (r686) + | 1829 -> One (r687) + | 1828 -> One (r688) + | 1827 -> One (r689) + | 1821 -> One (r690) + | 1808 -> One (r691) + | 1807 -> One (r692) + | 1804 -> One (r693) + | 893 -> One (r694) + | 892 -> One (r695) + | 1797 -> One (r696) + | 1786 -> One (r697) + | 1785 -> One (r698) + | 896 -> One (r699) + | 895 -> One (r700) + | 1784 -> One (r701) + | 899 -> One (r702) + | 898 -> One (r703) + | 1783 -> One (r704) + | 1779 -> One (r705) + | 1778 -> One (r706) + | 1777 -> One (r707) + | 1000 -> One (r708) + | 1002 -> One (r710) + | 1407 -> One (r712) + | 1001 -> One (r714) + | 1404 -> One (r716) + | 1775 -> One (r718) + | 1009 -> One (r719) + | 1008 -> One (r720) + | 1004 -> One (r721) + | 905 -> One (r722) + | 904 -> One (r723) + | 907 -> One (r724) + | 941 -> One (r726) + | 939 -> One (r727) + | 938 -> One (r728) + | 937 -> One (r729) + | 916 -> One (r731) + | 915 -> One (r732) + | 914 -> One (r733) + | 918 -> One (r734) + | 921 -> One (r735) + | 923 -> One (r736) + | 930 -> One (r737) + | 928 -> One (r738) + | 927 -> One (r739) + | 936 -> One (r740) + | 935 -> One (r741) + | 934 -> One (r742) + | 949 | 957 -> One (r743) + | 956 -> One (r745) + | 953 -> One (r747) + | 955 -> One (r749) + | 954 -> One (r750) + | 948 -> One (r751) + | 947 -> One (r752) + | 946 -> One (r753) + | 945 -> One (r754) + | 952 -> One (r755) + | 951 -> One (r756) + | 964 -> One (r757) + | 963 -> One (r758) + | 962 -> One (r759) + | 966 -> One (r760) + | 975 -> One (r762) + | 974 -> One (r763) + | 971 -> One (r764) + | 970 -> One (r765) + | 969 -> One (r766) + | 973 -> One (r767) + | 977 -> One (r768) + | 999 -> One (r769) + | 985 -> One (r770) + | 984 -> One (r771) + | 983 -> One (r772) + | 988 -> One (r773) + | 987 -> One (r774) + | 994 -> One (r775) + | 993 -> One (r776) + | 992 -> One (r777) + | 991 -> One (r778) + | 996 -> One (r779) + | 998 -> One (r780) + | 1006 -> One (r781) + | 1013 -> One (r782) + | 1012 -> One (r783) + | 1011 -> One (r784) + | 1774 -> One (r785) + | 1014 -> One (r786) + | 1020 -> One (r787) + | 1019 -> One (r788) + | 1018 -> One (r789) + | 1017 -> One (r790) + | 1769 -> One (r791) + | 1027 -> One (r792) + | 1032 -> One (r793) + | 1031 -> One (r794) + | 1030 | 1766 -> One (r795) + | 1765 -> One (r796) + | 1136 -> One (r797) + | 1135 -> One (r798) + | 1134 -> One (r799) + | 1133 -> One (r800) + | 1037 -> One (r801) + | 1036 -> One (r802) + | 1117 -> One (r803) + | 1115 -> One (r804) + | 1114 -> One (r805) + | 1039 -> One (r806) + | 1041 -> One (r807) + | 1111 -> One (r808) + | 1110 -> One (r809) + | 1043 -> One (r810) + | 1109 -> One (r811) + | 1108 -> One (r812) + | 1106 -> One (r813) + | 1046 -> One (r814) + | 1054 -> One (r815) + | 1052 -> One (r816) + | 1051 -> One (r817) + | 1048 -> One (r818) + | 1103 -> One (r819) + | 1062 -> One (r820) + | 1061 -> One (r821) + | 1058 -> One (r822) + | 1057 -> One (r823) + | 1065 -> One (r824) + | 1064 -> One (r825) + | 1069 -> One (r826) + | 1068 -> One (r827) + | 1067 -> One (r828) + | 1088 -> One (r829) + | 1087 -> One (r831) + | 1075 -> One (r833) + | 1074 -> One (r834) + | 1073 -> One (r835) + | 1072 -> One (r836) + | 1071 -> One (r837) + | 1079 -> One (r838) + | 1078 -> One (r839) + | 1081 -> One (r840) + | 1086 -> One (r841) + | 1092 -> One (r843) + | 1095 -> One (r844) + | 1094 -> One (r845) + | 1096 | 3020 -> One (r846) + | 1098 -> One (r847) + | 1102 -> One (r849) + | 1113 -> One (r850) + | 1119 -> One (r851) + | 1124 -> One (r852) + | 1123 -> One (r853) + | 1126 -> One (r854) + | 1130 -> One (r855) + | 1633 -> One (r856) + | 1143 -> One (r857) + | 1142 -> One (r858) + | 1627 -> One (r859) + | 1632 -> One (r861) + | 1631 -> One (r862) + | 1630 -> One (r863) + | 1629 -> One (r864) + | 1628 -> One (r865) + | 1625 -> One (r866) + | 1148 -> One (r867) + | 1147 -> One (r868) + | 1146 -> One (r869) + | 1145 -> One (r870) + | 1624 -> One (r871) + | 1153 -> One (r872) + | 1152 -> One (r873) + | 1151 -> One (r874) + | 1155 -> One (r875) + | 1157 -> One (r876) + | 1521 | 1617 -> One (r877) + | 1520 | 1616 -> One (r878) + | 1159 | 1519 -> One (r879) + | 1158 | 1518 -> One (r880) + | 1163 | 1650 | 1727 | 1741 | 1856 | 1867 | 2032 -> One (r881) + | 1162 | 1649 | 1726 | 1740 | 1855 | 1866 | 2031 -> One (r882) + | 1161 | 1648 | 1725 | 1739 | 1854 | 1865 | 2030 -> One (r883) + | 1160 | 1647 | 1724 | 1738 | 1853 | 1864 | 2029 -> One (r884) + | 1614 -> One (r885) + | 1169 -> One (r886) + | 1168 -> One (r887) + | 1167 -> One (r888) + | 1177 -> One (r889) + | 1176 -> One (r890) + | 1175 -> One (r891) + | 1174 -> One (r892) + | 1179 -> One (r893) + | 1181 -> One (r894) + | 1183 -> One (r895) + | 1185 -> One (r896) + | 1189 | 1549 -> One (r897) + | 1188 | 1548 -> One (r898) + | 1187 | 1547 -> One (r899) + | 1186 | 1546 -> One (r900) + | 1494 -> One (r901) + | 1197 -> One (r902) + | 1196 -> One (r903) + | 1195 -> One (r904) + | 1194 -> One (r905) + | 1199 -> One (r906) + | 1207 -> One (r907) + | 1206 -> One (r908) + | 1205 -> One (r909) + | 1209 -> One (r910) + | 1214 -> One (r911) + | 1213 -> One (r912) + | 1222 -> One (r913) + | 1221 -> One (r914) + | 1220 -> One (r915) + | 1219 -> One (r916) + | 1228 -> One (r917) + | 1227 -> One (r918) + | 1226 -> One (r919) + | 1225 -> One (r920) + | 1238 -> One (r921) + | 1237 -> One (r922) + | 1236 -> One (r923) + | 1235 -> One (r924) + | 1242 -> One (r925) + | 1241 -> One (r926) + | 1249 -> One (r927) + | 1248 -> One (r928) + | 1247 -> One (r929) + | 1246 -> One (r930) + | 1255 -> One (r931) + | 1254 -> One (r932) + | 1253 -> One (r933) + | 1252 -> One (r934) + | 1261 -> One (r935) + | 1260 -> One (r936) + | 1259 -> One (r937) + | 1258 -> One (r938) + | 1267 -> One (r939) + | 1266 -> One (r940) + | 1265 -> One (r941) + | 1264 -> One (r942) + | 1273 -> One (r943) + | 1272 -> One (r944) + | 1271 -> One (r945) + | 1270 -> One (r946) + | 1279 -> One (r947) + | 1278 -> One (r948) + | 1277 -> One (r949) + | 1276 -> One (r950) + | 1285 -> One (r951) + | 1284 -> One (r952) + | 1283 -> One (r953) + | 1282 -> One (r954) + | 1291 -> One (r955) + | 1290 -> One (r956) + | 1289 -> One (r957) + | 1288 -> One (r958) + | 1297 -> One (r959) + | 1296 -> One (r960) + | 1295 -> One (r961) + | 1294 -> One (r962) + | 1303 -> One (r963) + | 1302 -> One (r964) + | 1301 -> One (r965) + | 1300 -> One (r966) + | 1309 -> One (r967) + | 1308 -> One (r968) + | 1307 -> One (r969) + | 1306 -> One (r970) + | 1315 -> One (r971) + | 1314 -> One (r972) + | 1313 -> One (r973) + | 1312 -> One (r974) + | 1321 -> One (r975) + | 1320 -> One (r976) + | 1319 -> One (r977) + | 1318 -> One (r978) + | 1327 -> One (r979) + | 1326 -> One (r980) + | 1325 -> One (r981) + | 1324 -> One (r982) + | 1333 -> One (r983) + | 1332 -> One (r984) + | 1331 -> One (r985) + | 1330 -> One (r986) + | 1339 -> One (r987) + | 1338 -> One (r988) + | 1337 -> One (r989) + | 1336 -> One (r990) + | 1345 -> One (r991) + | 1344 -> One (r992) + | 1343 -> One (r993) + | 1342 -> One (r994) + | 1351 -> One (r995) + | 1350 -> One (r996) + | 1349 -> One (r997) + | 1348 -> One (r998) + | 1357 -> One (r999) + | 1356 -> One (r1000) + | 1355 -> One (r1001) + | 1354 -> One (r1002) + | 1363 -> One (r1003) + | 1362 -> One (r1004) + | 1361 -> One (r1005) + | 1360 -> One (r1006) + | 1369 -> One (r1007) + | 1368 -> One (r1008) + | 1367 -> One (r1009) + | 1366 -> One (r1010) + | 1376 -> One (r1011) + | 1375 -> One (r1012) + | 1374 -> One (r1013) + | 1373 -> One (r1014) + | 1378 -> One (r1015) + | 1382 -> One (r1016) + | 1381 -> One (r1017) + | 1380 -> One (r1018) + | 1389 -> One (r1019) + | 1388 -> One (r1020) + | 1387 -> One (r1021) + | 1386 -> One (r1022) + | 1492 -> One (r1023) + | 1489 -> One (r1024) + | 1391 -> One (r1025) + | 1397 -> One (r1026) + | 1396 -> One (r1027) + | 1398 -> One (r1029) + | 1395 -> One (r1030) + | 1405 -> One (r1031) + | 1403 -> One (r1032) + | 1402 -> One (r1033) + | 1415 -> One (r1034) + | 1414 -> One (r1035) + | 1413 -> One (r1036) + | 1412 -> One (r1037) + | 1411 -> One (r1038) + | 1418 -> One (r1039) + | 1417 -> One (r1040) + | 1423 -> One (r1041) + | 1422 -> One (r1042) + | 1421 -> One (r1043) + | 1420 -> One (r1044) + | 1426 -> One (r1045) + | 1425 -> One (r1046) + | 1429 -> One (r1047) + | 1428 -> One (r1048) + | 1432 -> One (r1049) + | 1431 -> One (r1050) + | 1436 -> One (r1051) + | 1435 -> One (r1052) + | 1441 -> One (r1053) + | 1440 -> One (r1054) + | 1439 -> One (r1055) + | 1444 -> One (r1056) + | 1443 -> One (r1057) + | 1447 -> One (r1058) + | 1446 -> One (r1059) + | 1450 -> One (r1060) + | 1449 -> One (r1061) + | 1461 -> One (r1062) + | 1458 -> One (r1063) + | 1457 -> One (r1064) + | 1456 -> One (r1065) + | 1455 -> One (r1066) + | 1454 -> One (r1067) + | 1460 -> One (r1068) + | 1464 -> One (r1069) + | 1466 -> One (r1070) + | 1484 -> One (r1071) + | 1468 -> One (r1072) + | 1474 -> One (r1073) + | 1473 -> One (r1074) + | 1472 -> One (r1075) + | 1471 -> One (r1076) + | 1477 -> One (r1077) + | 1476 -> One (r1078) + | 1480 -> One (r1079) + | 1479 -> One (r1080) + | 1483 -> One (r1081) + | 1482 -> One (r1082) + | 1487 -> One (r1083) + | 1486 -> One (r1084) + | 1491 -> One (r1085) + | 1497 | 1558 -> One (r1086) + | 1496 | 1557 -> One (r1087) + | 1495 | 1556 -> One (r1088) + | 1500 | 1567 -> One (r1089) + | 1499 | 1566 -> One (r1090) + | 1498 | 1565 -> One (r1091) + | 1505 | 1578 -> One (r1092) + | 1504 | 1577 -> One (r1093) + | 1503 | 1576 -> One (r1094) + | 1502 | 1575 -> One (r1095) + | 1511 | 1587 -> One (r1096) + | 1510 | 1586 -> One (r1097) + | 1509 | 1585 -> One (r1098) + | 1514 | 1596 -> One (r1099) + | 1513 | 1595 -> One (r1100) + | 1512 | 1594 -> One (r1101) + | 1517 -> One (r1102) + | 1527 -> One (r1103) + | 1526 -> One (r1104) + | 1525 -> One (r1105) + | 1524 -> One (r1106) + | 1530 | 1620 -> One (r1107) + | 1529 | 1619 -> One (r1108) + | 1528 | 1618 -> One (r1109) + | 1536 -> One (r1110) + | 1535 -> One (r1111) + | 1534 -> One (r1112) + | 1533 -> One (r1113) + | 1539 | 1623 -> One (r1114) + | 1538 | 1622 -> One (r1115) + | 1537 | 1621 -> One (r1116) + | 1545 -> One (r1117) + | 1544 -> One (r1118) + | 1543 -> One (r1119) + | 1542 -> One (r1120) + | 1555 -> One (r1121) + | 1554 -> One (r1122) + | 1553 -> One (r1123) + | 1552 -> One (r1124) + | 1564 -> One (r1125) + | 1563 -> One (r1126) + | 1562 -> One (r1127) + | 1561 -> One (r1128) + | 1573 -> One (r1129) + | 1572 -> One (r1130) + | 1571 -> One (r1131) + | 1570 -> One (r1132) + | 1584 -> One (r1133) + | 1583 -> One (r1134) + | 1582 -> One (r1135) + | 1581 -> One (r1136) + | 1593 -> One (r1137) + | 1592 -> One (r1138) + | 1591 -> One (r1139) + | 1590 -> One (r1140) + | 1602 -> One (r1141) + | 1601 -> One (r1142) + | 1600 -> One (r1143) + | 1599 -> One (r1144) + | 1609 -> One (r1145) + | 1608 -> One (r1146) + | 1607 -> One (r1147) + | 1606 -> One (r1148) + | 1636 -> One (r1149) + | 1635 -> One (r1150) + | 1641 -> One (r1151) + | 1645 -> One (r1152) + | 1717 -> One (r1153) + | 1656 -> One (r1154) + | 1655 -> One (r1155) + | 1654 -> One (r1156) + | 1653 -> One (r1157) + | 1691 -> One (r1158) + | 1686 -> One (r1159) + | 1710 -> One (r1161) + | 1685 -> One (r1162) + | 1660 -> One (r1163) + | 1712 -> One (r1165) + | 1658 -> One (r1167) + | 1711 -> One (r1168) + | 1668 -> One (r1169) + | 1663 -> One (r1170) + | 1662 -> One (r1171) + | 1667 -> One (r1172) + | 1666 -> One (r1173) + | 1665 -> One (r1174) + | 1676 -> One (r1175) + | 1671 -> One (r1176) + | 1670 -> One (r1177) + | 1675 -> One (r1178) + | 1674 -> One (r1179) + | 1673 -> One (r1180) + | 1684 -> One (r1181) + | 1679 -> One (r1182) + | 1678 -> One (r1183) + | 1683 -> One (r1184) + | 1682 -> One (r1185) + | 1681 -> One (r1186) + | 1690 -> One (r1187) + | 1689 -> One (r1188) + | 1688 -> One (r1189) + | 1709 -> One (r1190) + | 1704 -> One (r1191) + | 1703 -> One (r1192) + | 1702 -> One (r1193) + | 1697 -> One (r1194) + | 1696 -> One (r1195) + | 1695 -> One (r1196) + | 1694 -> One (r1197) + | 1701 -> One (r1198) + | 1700 -> One (r1199) + | 1699 -> One (r1200) + | 1708 -> One (r1201) + | 1707 -> One (r1202) + | 1706 -> One (r1203) + | 1714 -> One (r1204) + | 1719 -> One (r1205) + | 1722 -> One (r1206) + | 1730 -> One (r1207) + | 1729 -> One (r1208) + | 1732 -> One (r1209) + | 1735 -> One (r1210) + | 1737 -> One (r1211) + | 1743 -> One (r1212) + | 1745 -> One (r1213) + | 1748 -> One (r1214) + | 1751 -> One (r1216) + | 1750 -> One (r1217) + | 1764 -> One (r1218) + | 1763 -> One (r1219) + | 1755 -> One (r1220) + | 1754 -> One (r1221) + | 1773 -> One (r1222) + | 1772 -> One (r1223) + | 1771 -> One (r1224) + | 1790 -> One (r1225) + | 1789 -> One (r1226) + | 1788 -> One (r1227) + | 1796 -> One (r1228) + | 1795 -> One (r1229) + | 1794 -> One (r1230) + | 1793 -> One (r1231) + | 1803 -> One (r1232) + | 1802 -> One (r1233) + | 1801 -> One (r1234) + | 1800 -> One (r1235) + | 1806 -> One (r1236) + | 1814 -> One (r1237) + | 1813 -> One (r1238) + | 1812 -> One (r1239) + | 1811 -> One (r1240) + | 1816 -> One (r1241) + | 1820 -> One (r1242) + | 1819 -> One (r1243) + | 1818 -> One (r1244) + | 1826 -> One (r1245) + | 1825 -> One (r1246) + | 1824 -> One (r1247) + | 1823 -> One (r1248) + | 1836 -> One (r1249) + | 1835 -> One (r1250) + | 1834 -> One (r1251) + | 1845 -> One (r1252) + | 1844 -> One (r1253) + | 1843 -> One (r1254) + | 1852 -> One (r1255) + | 1858 -> One (r1256) + | 1863 -> One (r1257) + | 1869 -> One (r1258) + | 1872 -> One (r1259) + | 1875 -> One (r1260) + | 1880 -> One (r1261) + | 1879 -> One (r1262) + | 1878 -> One (r1263) + | 1877 -> One (r1264) + | 1883 -> One (r1265) + | 1882 -> One (r1266) + | 1886 -> One (r1267) + | 1885 -> One (r1268) + | 1889 -> One (r1269) + | 1888 -> One (r1270) + | 1894 -> One (r1271) + | 1893 -> One (r1272) + | 1897 -> One (r1273) + | 1896 -> One (r1274) + | 1900 -> One (r1275) + | 1899 -> One (r1276) + | 1934 -> One (r1277) + | 1918 -> One (r1279) + | 1917 -> One (r1280) + | 1928 -> One (r1282) + | 1927 -> One (r1283) + | 1926 -> One (r1284) + | 1916 -> One (r1285) + | 1911 -> One (r1286) + | 1910 -> One (r1287) + | 1915 -> One (r1289) + | 1914 -> One (r1290) + | 1913 -> One (r1291) + | 1922 -> One (r1292) + | 1921 -> One (r1293) + | 1920 -> One (r1294) + | 1925 -> One (r1295) + | 1924 -> One (r1296) + | 1930 -> One (r1297) + | 1933 -> One (r1298) + | 1932 -> One (r1299) + | 2007 -> One (r1300) + | 2006 -> One (r1301) + | 2005 -> One (r1302) + | 2004 -> One (r1303) + | 1943 -> One (r1304) + | 1937 -> One (r1305) + | 1936 -> One (r1306) + | 1977 -> One (r1307) + | 1976 -> One (r1308) + | 1975 -> One (r1310) + | 1959 -> One (r1311) + | 1964 -> One (r1320) + | 1961 -> One (r1322) + | 1960 -> One (r1323) + | 1958 -> One (r1324) + | 1957 -> One (r1325) + | 1956 -> One (r1326) + | 1955 -> One (r1327) + | 1954 -> One (r1328) + | 1950 -> One (r1329) + | 1949 -> One (r1330) + | 1953 -> One (r1331) + | 1952 -> One (r1332) + | 1967 -> One (r1333) + | 1966 -> One (r1334) + | 1974 -> One (r1335) + | 1973 -> One (r1336) + | 1969 -> One (r1337) + | 1972 -> One (r1338) + | 1971 -> One (r1339) + | 2003 -> One (r1340) + | 1988 -> One (r1341) + | 1987 -> One (r1342) + | 1986 -> One (r1343) + | 1992 -> One (r1344) + | 1991 -> One (r1345) + | 1990 -> One (r1346) + | 1999 -> One (r1347) + | 1995 -> One (r1348) + | 1998 -> One (r1349) + | 1997 -> One (r1350) + | 2002 -> One (r1351) + | 2001 -> One (r1352) + | 2026 -> One (r1353) + | 2025 -> One (r1354) + | 2024 -> One (r1355) + | 2034 -> One (r1356) + | 2037 -> One (r1357) + | 2040 -> One (r1358) + | 2046 -> One (r1359) + | 2045 -> One (r1360) + | 2044 -> One (r1361) + | 2043 -> One (r1362) + | 2049 -> One (r1363) + | 2048 -> One (r1364) + | 2053 -> One (r1365) + | 2055 -> One (r1366) + | 2065 -> One (r1367) + | 2064 -> One (r1368) + | 2063 -> One (r1369) + | 2076 -> One (r1370) + | 2075 -> One (r1371) + | 2074 -> One (r1372) + | 2073 -> One (r1373) + | 2072 -> One (r1374) + | 2071 -> One (r1375) + | 2070 -> One (r1376) + | 2069 -> One (r1377) + | 2101 -> One (r1378) + | 2100 -> One (r1379) + | 2099 -> One (r1380) + | 2087 -> One (r1381) + | 2086 -> One (r1382) + | 2085 -> One (r1383) + | 2084 -> One (r1384) + | 2081 -> One (r1385) + | 2080 -> One (r1386) + | 2079 -> One (r1387) + | 2083 -> One (r1388) + | 2098 -> One (r1389) + | 2091 -> One (r1390) + | 2090 -> One (r1391) + | 2089 -> One (r1392) + | 2097 -> One (r1393) + | 2096 -> One (r1394) + | 2095 -> One (r1395) + | 2094 -> One (r1396) + | 2093 -> One (r1397) + | 2477 -> One (r1398) + | 2476 -> One (r1399) + | 2103 -> One (r1400) + | 2105 -> One (r1401) + | 2107 -> One (r1402) + | 2475 -> One (r1403) + | 2474 -> One (r1404) + | 2109 -> One (r1405) + | 2113 -> One (r1406) + | 2112 -> One (r1407) + | 2111 -> One (r1408) + | 2127 -> One (r1409) + | 2130 -> One (r1411) + | 2129 -> One (r1412) + | 2126 -> One (r1413) + | 2125 -> One (r1414) + | 2124 -> One (r1415) + | 2120 -> One (r1416) + | 2119 -> One (r1417) + | 2118 -> One (r1418) + | 2117 -> One (r1419) + | 2123 -> One (r1420) + | 2122 -> One (r1421) + | 2143 -> One (r1423) + | 2142 -> One (r1424) + | 2141 -> One (r1425) + | 2136 -> One (r1426) + | 2146 -> One (r1430) + | 2145 -> One (r1431) + | 2144 -> One (r1432) + | 2758 -> One (r1433) + | 2757 -> One (r1434) + | 2756 -> One (r1435) + | 2755 -> One (r1436) + | 2140 -> One (r1437) + | 2148 -> One (r1438) + | 2354 -> One (r1440) + | 2417 -> One (r1442) + | 2250 -> One (r1443) + | 2434 -> One (r1445) + | 2425 -> One (r1446) + | 2424 -> One (r1447) + | 2248 -> One (r1448) + | 2247 -> One (r1449) + | 2246 -> One (r1450) + | 2245 -> One (r1451) + | 2244 -> One (r1452) + | 2208 | 2390 -> One (r1453) + | 2243 -> One (r1455) + | 2233 -> One (r1456) + | 2232 -> One (r1457) + | 2164 -> One (r1458) + | 2163 -> One (r1459) + | 2162 -> One (r1460) + | 2155 -> One (r1461) + | 2153 -> One (r1462) + | 2152 -> One (r1463) + | 2157 -> One (r1464) + | 2159 -> One (r1466) + | 2158 -> One (r1467) + | 2161 -> One (r1468) + | 2226 -> One (r1469) + | 2225 -> One (r1470) + | 2170 -> One (r1471) + | 2166 -> One (r1472) + | 2169 -> One (r1473) + | 2168 -> One (r1474) + | 2181 -> One (r1475) + | 2180 -> One (r1476) + | 2179 -> One (r1477) + | 2178 -> One (r1478) + | 2177 -> One (r1479) + | 2172 -> One (r1480) + | 2192 -> One (r1481) + | 2191 -> One (r1482) + | 2190 -> One (r1483) + | 2189 -> One (r1484) + | 2188 -> One (r1485) + | 2183 -> One (r1486) + | 2217 -> One (r1487) + | 2216 -> One (r1488) + | 2194 -> One (r1489) + | 2215 -> One (r1492) + | 2214 -> One (r1493) + | 2213 -> One (r1494) + | 2212 -> One (r1495) + | 2196 -> One (r1496) + | 2210 -> One (r1497) + | 2200 -> One (r1498) + | 2199 -> One (r1499) + | 2198 -> One (r1500) + | 2207 | 2381 -> One (r1501) + | 2204 -> One (r1503) + | 2203 -> One (r1504) + | 2202 -> One (r1505) + | 2201 | 2380 -> One (r1506) + | 2206 -> One (r1507) + | 2222 -> One (r1508) + | 2221 -> One (r1509) + | 2220 -> One (r1510) + | 2224 -> One (r1512) + | 2223 -> One (r1513) + | 2219 -> One (r1514) + | 2228 -> One (r1515) + | 2231 -> One (r1516) + | 2242 -> One (r1517) + | 2241 -> One (r1518) + | 2240 -> One (r1519) + | 2239 -> One (r1520) + | 2238 -> One (r1521) + | 2237 -> One (r1522) + | 2236 -> One (r1523) + | 2235 -> One (r1524) + | 2411 -> One (r1525) + | 2410 -> One (r1526) + | 2253 -> One (r1527) + | 2252 -> One (r1528) + | 2279 -> One (r1529) + | 2278 -> One (r1530) + | 2277 -> One (r1531) + | 2276 -> One (r1532) + | 2267 -> One (r1533) + | 2266 -> One (r1535) + | 2265 -> One (r1536) + | 2261 -> One (r1537) + | 2260 -> One (r1538) + | 2259 -> One (r1539) + | 2258 -> One (r1540) + | 2256 -> One (r1541) + | 2264 -> One (r1542) + | 2263 -> One (r1543) + | 2275 -> One (r1544) + | 2274 -> One (r1545) + | 2273 -> One (r1546) + | 2282 -> One (r1547) + | 2281 -> One (r1548) + | 2323 -> One (r1549) + | 2312 -> One (r1550) + | 2311 -> One (r1551) + | 2302 -> One (r1552) + | 2301 -> One (r1554) + | 2300 -> One (r1555) + | 2299 -> One (r1556) + | 2288 -> One (r1557) + | 2287 -> One (r1558) + | 2285 -> One (r1559) + | 2298 -> One (r1560) + | 2297 -> One (r1561) + | 2296 -> One (r1562) + | 2295 -> One (r1563) + | 2294 -> One (r1564) + | 2293 -> One (r1565) + | 2292 -> One (r1566) + | 2291 -> One (r1567) + | 2310 -> One (r1568) + | 2309 -> One (r1569) + | 2308 -> One (r1570) + | 2322 -> One (r1571) + | 2321 -> One (r1572) + | 2320 -> One (r1573) + | 2319 -> One (r1574) + | 2318 -> One (r1575) + | 2317 -> One (r1576) + | 2316 -> One (r1577) + | 2315 -> One (r1578) + | 2327 -> One (r1579) + | 2326 -> One (r1580) + | 2325 -> One (r1581) + | 2405 -> One (r1582) + | 2404 -> One (r1583) + | 2403 -> One (r1584) + | 2402 -> One (r1585) + | 2401 -> One (r1586) + | 2400 -> One (r1587) + | 2397 -> One (r1588) + | 2330 -> One (r1589) + | 2374 -> One (r1590) + | 2373 -> One (r1591) + | 2368 -> One (r1592) + | 2367 -> One (r1593) + | 2366 -> One (r1594) + | 2365 -> One (r1595) + | 2339 -> One (r1596) + | 2338 -> One (r1597) + | 2337 -> One (r1598) + | 2336 -> One (r1599) + | 2335 -> One (r1600) + | 2334 -> One (r1601) + | 2364 -> One (r1602) + | 2343 -> One (r1603) + | 2342 -> One (r1604) + | 2341 -> One (r1605) + | 2347 -> One (r1606) + | 2346 -> One (r1607) + | 2345 -> One (r1608) + | 2361 -> One (r1609) + | 2351 -> One (r1610) + | 2350 -> One (r1611) + | 2363 -> One (r1613) + | 2349 -> One (r1614) + | 2358 -> One (r1615) + | 2353 -> One (r1616) + | 2372 -> One (r1617) + | 2371 -> One (r1618) + | 2370 -> One (r1619) + | 2392 -> One (r1620) + | 2396 -> One (r1622) + | 2395 -> One (r1623) + | 2394 -> One (r1624) + | 2379 -> One (r1625) + | 2378 -> One (r1626) + | 2377 -> One (r1627) + | 2393 -> One (r1628) + | 2383 -> One (r1629) + | 2391 -> One (r1630) + | 2386 -> One (r1631) + | 2385 -> One (r1632) + | 2399 -> One (r1633) + | 2409 -> One (r1634) + | 2408 -> One (r1635) + | 2407 -> One (r1636) + | 2413 -> One (r1637) + | 2416 -> One (r1638) + | 2421 -> One (r1639) + | 2420 -> One (r1640) + | 2419 -> One (r1641) + | 2423 -> One (r1642) + | 2433 -> One (r1643) + | 2432 -> One (r1644) + | 2431 -> One (r1645) + | 2430 -> One (r1646) + | 2429 -> One (r1647) + | 2428 -> One (r1648) + | 2427 -> One (r1649) + | 2443 -> One (r1650) + | 2447 -> One (r1651) + | 2452 -> One (r1652) + | 2451 -> One (r1653) + | 2450 -> One (r1654) + | 2449 -> One (r1655) + | 2464 -> One (r1656) + | 2462 -> One (r1657) + | 2461 -> One (r1658) + | 2460 -> One (r1659) + | 2459 -> One (r1660) + | 2458 -> One (r1661) + | 2457 -> One (r1662) + | 2456 -> One (r1663) + | 2455 -> One (r1664) + | 2470 -> One (r1665) + | 2469 -> One (r1666) + | 2480 -> One (r1667) + | 2479 -> One (r1668) + | 2494 -> One (r1669) + | 2493 -> One (r1670) + | 2489 | 2628 -> One (r1671) + | 2488 | 2630 -> One (r1672) + | 2492 -> One (r1673) + | 2491 -> One (r1674) + | 2506 -> One (r1675) + | 2505 -> One (r1676) + | 2526 -> One (r1677) + | 2537 -> One (r1678) + | 2536 -> One (r1679) + | 2535 -> One (r1680) + | 2534 -> One (r1681) + | 2533 -> One (r1682) + | 2539 -> One (r1683) + | 2546 -> One (r1684) + | 2545 -> One (r1685) + | 2553 -> One (r1686) + | 2552 -> One (r1687) + | 2551 -> One (r1688) + | 2559 -> One (r1689) | 2563 -> One (r1690) | 2562 -> One (r1691) | 2561 -> One (r1692) - | 2566 -> One (r1693) - | 2570 -> One (r1694) - | 2569 -> One (r1695) - | 2568 -> One (r1696) - | 2581 -> One (r1697) - | 2580 -> One (r1698) - | 2579 -> One (r1699) - | 2583 -> One (r1700) - | 2591 -> One (r1701) - | 2601 -> One (r1702) - | 2605 -> One (r1703) - | 2604 -> One (r1704) - | 2609 -> One (r1705) - | 2614 -> One (r1706) + | 2572 -> One (r1693) + | 2571 -> One (r1694) + | 2570 -> One (r1695) + | 2569 -> One (r1696) + | 2574 -> One (r1697) + | 2578 -> One (r1698) + | 2577 -> One (r1699) + | 2576 -> One (r1700) + | 2589 -> One (r1701) + | 2588 -> One (r1702) + | 2587 -> One (r1703) + | 2591 -> One (r1704) + | 2599 -> One (r1705) + | 2609 -> One (r1706) | 2613 -> One (r1707) - | 2617 -> One (r1708) - | 2616 -> One (r1709) - | 2631 -> One (r1710) - | 2630 -> One (r1711) - | 2634 -> One (r1712) - | 2633 -> One (r1713) - | 2654 -> One (r1714) - | 2646 -> One (r1715) + | 2612 -> One (r1708) + | 2617 -> One (r1709) + | 2622 -> One (r1710) + | 2621 -> One (r1711) + | 2625 -> One (r1712) + | 2624 -> One (r1713) + | 2639 -> One (r1714) + | 2638 -> One (r1715) | 2642 -> One (r1716) | 2641 -> One (r1717) - | 2645 -> One (r1718) - | 2644 -> One (r1719) + | 2662 -> One (r1718) + | 2654 -> One (r1719) | 2650 -> One (r1720) | 2649 -> One (r1721) | 2653 -> One (r1722) | 2652 -> One (r1723) - | 2660 -> One (r1724) - | 2659 -> One (r1725) - | 2658 -> One (r1726) - | 2675 -> One (r1727) - | 2674 -> One (r1728) - | 2673 -> One (r1729) - | 2804 -> One (r1730) - | 2691 -> One (r1731) - | 2690 -> One (r1732) - | 2689 -> One (r1733) - | 2688 -> One (r1734) - | 2687 -> One (r1735) - | 2686 -> One (r1736) - | 2685 -> One (r1737) - | 2684 -> One (r1738) - | 2746 -> One (r1739) - | 2736 -> One (r1741) - | 2735 -> One (r1742) - | 2734 -> One (r1743) - | 2738 -> One (r1745) - | 2737 -> One (r1746) - | 2727 -> One (r1747) - | 2701 -> One (r1748) - | 2700 -> One (r1749) - | 2699 -> One (r1750) - | 2698 -> One (r1751) - | 2697 -> One (r1752) - | 2696 -> One (r1753) - | 2695 -> One (r1754) - | 2694 -> One (r1755) + | 2658 -> One (r1724) + | 2657 -> One (r1725) + | 2661 -> One (r1726) + | 2660 -> One (r1727) + | 2668 -> One (r1728) + | 2667 -> One (r1729) + | 2666 -> One (r1730) + | 2683 -> One (r1731) + | 2682 -> One (r1732) + | 2681 -> One (r1733) + | 2812 -> One (r1734) + | 2699 -> One (r1735) + | 2698 -> One (r1736) + | 2697 -> One (r1737) + | 2696 -> One (r1738) + | 2695 -> One (r1739) + | 2694 -> One (r1740) + | 2693 -> One (r1741) + | 2692 -> One (r1742) + | 2754 -> One (r1743) + | 2744 -> One (r1745) + | 2743 -> One (r1746) + | 2742 -> One (r1747) + | 2746 -> One (r1749) + | 2745 -> One (r1750) + | 2735 -> One (r1751) + | 2709 -> One (r1752) + | 2708 -> One (r1753) + | 2707 -> One (r1754) + | 2706 -> One (r1755) | 2705 -> One (r1756) | 2704 -> One (r1757) - | 2720 -> One (r1758) - | 2711 -> One (r1759) - | 2710 -> One (r1760) - | 2709 -> One (r1761) - | 2708 -> One (r1762) - | 2707 -> One (r1763) - | 2719 -> One (r1764) - | 2718 -> One (r1765) - | 2717 -> One (r1766) - | 2716 -> One (r1767) - | 2715 -> One (r1768) - | 2714 -> One (r1769) - | 2713 -> One (r1770) + | 2703 -> One (r1758) + | 2702 -> One (r1759) + | 2713 -> One (r1760) + | 2712 -> One (r1761) + | 2728 -> One (r1762) + | 2719 -> One (r1763) + | 2718 -> One (r1764) + | 2717 -> One (r1765) + | 2716 -> One (r1766) + | 2715 -> One (r1767) + | 2727 -> One (r1768) + | 2726 -> One (r1769) + | 2725 -> One (r1770) | 2724 -> One (r1771) | 2723 -> One (r1772) - | 2726 -> One (r1774) - | 2725 -> One (r1775) - | 2722 -> One (r1776) - | 2733 -> One (r1777) - | 2732 -> One (r1778) - | 2729 -> One (r1779) - | 2731 -> One (r1780) + | 2722 -> One (r1773) + | 2721 -> One (r1774) + | 2732 -> One (r1775) + | 2731 -> One (r1776) + | 2734 -> One (r1778) + | 2733 -> One (r1779) + | 2730 -> One (r1780) | 2741 -> One (r1781) | 2740 -> One (r1782) - | 2743 -> One (r1784) - | 2745 -> One (r1785) - | 2769 -> One (r1786) - | 2759 -> One (r1787) - | 2758 -> One (r1788) - | 2757 -> One (r1789) - | 2756 -> One (r1790) - | 2755 -> One (r1791) - | 2754 -> One (r1792) - | 2753 -> One (r1793) - | 2752 -> One (r1794) - | 2768 -> One (r1795) - | 2767 -> One (r1796) - | 2766 -> One (r1797) - | 2765 -> One (r1798) - | 2764 -> One (r1799) - | 2763 -> One (r1800) - | 2762 -> One (r1801) - | 2761 -> One (r1802) - | 2778 -> One (r1803) - | 2781 -> One (r1804) - | 2787 -> One (r1805) - | 2786 -> One (r1806) - | 2785 -> One (r1807) - | 2784 -> One (r1808) - | 2783 -> One (r1809) - | 2789 -> One (r1810) - | 2801 -> One (r1811) - | 2800 -> One (r1812) - | 2799 -> One (r1813) - | 2798 -> One (r1814) - | 2797 -> One (r1815) - | 2796 -> One (r1816) - | 2795 -> One (r1817) - | 2794 -> One (r1818) - | 2793 -> One (r1819) - | 2792 -> One (r1820) - | 2813 -> One (r1821) - | 2812 -> One (r1822) - | 2811 -> One (r1823) - | 2810 -> One (r1824) - | 2809 -> One (r1825) - | 2817 -> One (r1826) - | 2821 -> One (r1827) - | 2820 -> One (r1828) - | 2825 -> One (r1829) - | 2829 -> One (r1830) - | 2828 -> One (r1831) - | 2833 -> One (r1832) - | 2837 -> One (r1833) - | 2836 -> One (r1834) - | 2841 -> One (r1835) - | 2866 -> One (r1836) - | 2865 -> One (r1837) - | 2864 -> One (r1838) - | 2850 -> One (r1839) - | 2849 -> One (r1840) - | 2848 -> One (r1841) - | 2847 -> One (r1842) - | 2846 -> One (r1843) - | 2854 -> One (r1844) - | 2858 -> One (r1845) - | 2857 -> One (r1846) - | 2862 -> One (r1847) - | 2870 -> One (r1848) - | 2874 -> One (r1849) - | 2873 -> One (r1850) - | 2878 -> One (r1851) - | 2884 -> One (r1852) - | 2883 -> One (r1853) - | 2882 -> One (r1854) - | 2888 -> One (r1855) + | 2737 -> One (r1783) + | 2739 -> One (r1784) + | 2749 -> One (r1785) + | 2748 -> One (r1786) + | 2751 -> One (r1788) + | 2753 -> One (r1789) + | 2777 -> One (r1790) + | 2767 -> One (r1791) + | 2766 -> One (r1792) + | 2765 -> One (r1793) + | 2764 -> One (r1794) + | 2763 -> One (r1795) + | 2762 -> One (r1796) + | 2761 -> One (r1797) + | 2760 -> One (r1798) + | 2776 -> One (r1799) + | 2775 -> One (r1800) + | 2774 -> One (r1801) + | 2773 -> One (r1802) + | 2772 -> One (r1803) + | 2771 -> One (r1804) + | 2770 -> One (r1805) + | 2769 -> One (r1806) + | 2786 -> One (r1807) + | 2789 -> One (r1808) + | 2795 -> One (r1809) + | 2794 -> One (r1810) + | 2793 -> One (r1811) + | 2792 -> One (r1812) + | 2791 -> One (r1813) + | 2797 -> One (r1814) + | 2809 -> One (r1815) + | 2808 -> One (r1816) + | 2807 -> One (r1817) + | 2806 -> One (r1818) + | 2805 -> One (r1819) + | 2804 -> One (r1820) + | 2803 -> One (r1821) + | 2802 -> One (r1822) + | 2801 -> One (r1823) + | 2800 -> One (r1824) + | 2821 -> One (r1825) + | 2820 -> One (r1826) + | 2819 -> One (r1827) + | 2818 -> One (r1828) + | 2817 -> One (r1829) + | 2825 -> One (r1830) + | 2829 -> One (r1831) + | 2828 -> One (r1832) + | 2833 -> One (r1833) + | 2837 -> One (r1834) + | 2836 -> One (r1835) + | 2841 -> One (r1836) + | 2845 -> One (r1837) + | 2844 -> One (r1838) + | 2849 -> One (r1839) + | 2874 -> One (r1840) + | 2873 -> One (r1841) + | 2872 -> One (r1842) + | 2858 -> One (r1843) + | 2857 -> One (r1844) + | 2856 -> One (r1845) + | 2855 -> One (r1846) + | 2854 -> One (r1847) + | 2862 -> One (r1848) + | 2866 -> One (r1849) + | 2865 -> One (r1850) + | 2870 -> One (r1851) + | 2878 -> One (r1852) + | 2882 -> One (r1853) + | 2881 -> One (r1854) + | 2886 -> One (r1855) | 2892 -> One (r1856) | 2891 -> One (r1857) - | 2896 -> One (r1858) - | 2902 -> One (r1859) - | 2906 -> One (r1860) - | 2910 -> One (r1861) - | 2909 -> One (r1862) - | 2914 -> One (r1863) - | 2927 -> One (r1864) - | 2926 -> One (r1865) - | 2925 -> One (r1866) - | 2931 -> One (r1867) - | 2930 -> One (r1868) - | 2929 -> One (r1869) - | 2946 -> One (r1870) - | 2950 -> One (r1871) - | 2955 -> One (r1872) - | 2962 -> One (r1873) - | 2961 -> One (r1874) - | 2960 -> One (r1875) - | 2959 -> One (r1876) - | 2969 -> One (r1877) - | 2973 -> One (r1878) - | 2977 -> One (r1879) - | 2980 -> One (r1880) - | 2985 -> One (r1881) - | 2989 -> One (r1882) - | 2993 -> One (r1883) - | 2997 -> One (r1884) - | 3001 -> One (r1885) - | 3004 -> One (r1886) - | 3008 -> One (r1887) - | 3014 -> One (r1888) - | 3022 -> One (r1889) - | 3032 -> One (r1890) - | 3034 -> One (r1891) - | 3037 -> One (r1892) - | 3036 -> One (r1893) - | 3039 -> One (r1894) - | 3049 -> One (r1895) - | 3045 -> One (r1896) - | 3044 -> One (r1897) + | 2890 -> One (r1858) + | 2896 -> One (r1859) + | 2900 -> One (r1860) + | 2899 -> One (r1861) + | 2904 -> One (r1862) + | 2910 -> One (r1863) + | 2914 -> One (r1864) + | 2918 -> One (r1865) + | 2917 -> One (r1866) + | 2922 -> One (r1867) + | 2936 -> One (r1868) + | 2935 -> One (r1869) + | 2934 -> One (r1870) + | 2940 -> One (r1871) + | 2939 -> One (r1872) + | 2938 -> One (r1873) + | 2955 -> One (r1874) + | 2959 -> One (r1875) + | 2964 -> One (r1876) + | 2971 -> One (r1877) + | 2970 -> One (r1878) + | 2969 -> One (r1879) + | 2968 -> One (r1880) + | 2978 -> One (r1881) + | 2982 -> One (r1882) + | 2986 -> One (r1883) + | 2989 -> One (r1884) + | 2994 -> One (r1885) + | 2998 -> One (r1886) + | 3002 -> One (r1887) + | 3006 -> One (r1888) + | 3010 -> One (r1889) + | 3013 -> One (r1890) + | 3017 -> One (r1891) + | 3023 -> One (r1892) + | 3031 -> One (r1893) + | 3041 -> One (r1894) + | 3043 -> One (r1895) + | 3046 -> One (r1896) + | 3045 -> One (r1897) | 3048 -> One (r1898) - | 3047 -> One (r1899) + | 3058 -> One (r1899) | 3054 -> One (r1900) | 3053 -> One (r1901) - | 3052 -> One (r1902) + | 3057 -> One (r1902) | 3056 -> One (r1903) + | 3063 -> One (r1904) + | 3062 -> One (r1905) + | 3061 -> One (r1906) + | 3065 -> One (r1907) | 700 -> Select (function | -1 -> [R 122] - | _ -> S (T T_DOT) :: r552) + | _ -> S (T T_DOT) :: r555) | 1029 -> Select (function - | -1 -> [R 122] - | _ -> r795) + | -1 | 538 -> [R 122] + | _ -> r796) | 586 -> Select (function - | -1 -> R 152 :: r441 - | _ -> R 152 :: r433) - | 2131 -> Select (function - | -1 -> r1435 - | _ -> R 152 :: r1428) + | -1 -> R 152 :: r442 + | _ -> R 152 :: r434) + | 2132 -> Select (function + | -1 -> r1436 + | _ -> R 152 :: r1429) | 1085 -> Select (function - | -1 -> r253 - | _ -> [R 296]) + | -1 -> r254 + | _ -> [R 300]) | 693 -> Select (function - | -1 -> [R 910] - | _ -> S (T T_DOTDOT) :: r549) + | -1 -> [R 914] + | _ -> S (T T_DOTDOT) :: r552) | 732 -> Select (function - | -1 -> [R 1004] - | _ -> S (N N_pattern) :: r567) + | -1 -> [R 1008] + | _ -> S (N N_pattern) :: r570) | 712 -> Select (function - | -1 -> [R 1005] - | _ -> S (N N_pattern) :: r557) + | -1 -> [R 1009] + | _ -> S (N N_pattern) :: r560) | 589 -> Select (function - | -1 -> R 1263 :: r449 - | _ -> R 1263 :: r447) + | -1 -> R 1267 :: r450 + | _ -> R 1267 :: r448) | 139 -> Select (function - | 271 | 278 | 324 | 330 | 337 | 362 | 402 | 410 | 418 | 426 | 439 | 447 | 455 | 463 | 2596 | 2604 | 2812 | 2820 | 2828 | 2836 | 2849 | 2857 | 2865 | 2873 | 2883 | 2891 | 2901 | 2909 -> S (T T_UNDERSCORE) :: r87 + | 271 | 278 | 324 | 330 | 337 | 362 | 402 | 410 | 418 | 426 | 439 | 447 | 455 | 463 | 2604 | 2612 | 2820 | 2828 | 2836 | 2844 | 2857 | 2865 | 2873 | 2881 | 2891 | 2899 | 2909 | 2917 -> S (T T_UNDERSCORE) :: r87 | -1 -> S (T T_MODULE) :: r95 | _ -> r74) - | 2136 -> Select (function - | -1 -> S (T T_RPAREN) :: r181 - | _ -> S (T T_COLONCOLON) :: r572) | 621 -> Select (function - | -1 -> S (T T_RPAREN) :: r181 - | _ -> Sub (r3) :: r477) + | -1 -> S (T T_RPAREN) :: r182 + | 538 -> S (T T_COLONCOLON) :: r480 + | _ -> Sub (r3) :: r478) + | 2137 -> Select (function + | -1 -> S (T T_RPAREN) :: r182 + | _ -> S (T T_COLONCOLON) :: r480) | 569 -> Select (function - | 627 | 1139 | 1639 -> r48 - | -1 -> S (T T_RPAREN) :: r181 - | _ -> r408) + | 627 | 1139 | 1640 -> r48 + | -1 -> S (T T_RPAREN) :: r182 + | _ -> r409) | 644 -> Select (function - | -1 -> S (T T_RBRACKET) :: r504 - | _ -> Sub (r506) :: r508) + | -1 -> S (T T_RBRACKET) :: r507 + | _ -> Sub (r509) :: r511) | 877 -> Select (function - | -1 -> S (T T_RBRACKET) :: r504 - | _ -> Sub (r660) :: r662) + | -1 -> S (T T_RBRACKET) :: r507 + | _ -> Sub (r661) :: r663) | 131 -> Select (function - | 153 | 283 | 306 | 434 | 912 | 1408 | 1468 | 2844 -> r74 + | 153 | 283 | 306 | 434 | 912 | 1409 | 1469 | 2852 -> r74 | _ -> S (T T_QUOTE) :: r83) | 868 -> Select (function - | 61 | 227 | 585 | 596 | 2102 | 2108 -> r647 - | _ -> S (T T_OPEN) :: r639) - | 2138 -> Select (function - | -1 -> r845 - | _ -> S (T T_LPAREN) :: r1436) + | 61 | 227 | 585 | 596 | 2103 | 2109 -> r648 + | _ -> S (T T_OPEN) :: r640) + | 2139 -> Select (function + | -1 -> r846 + | _ -> S (T T_LPAREN) :: r1437) | 267 -> Select (function - | -1 -> r255 - | _ -> S (T T_DOT) :: r258) + | -1 -> r256 + | _ -> S (T T_DOT) :: r259) | 1083 -> Select (function - | -1 -> r255 - | _ -> S (T T_DOT) :: r841) + | -1 -> r256 + | _ -> S (T T_DOT) :: r842) | 150 -> Select (function - | -1 | 271 | 278 | 324 | 330 | 337 | 362 | 402 | 410 | 418 | 426 | 439 | 447 | 455 | 463 | 2596 | 2604 | 2812 | 2820 | 2828 | 2836 | 2849 | 2857 | 2865 | 2873 | 2883 | 2891 | 2901 | 2909 -> r103 - | _ -> S (T T_COLON) :: r109) + | -1 | 271 | 278 | 324 | 330 | 337 | 362 | 402 | 410 | 418 | 426 | 439 | 447 | 455 | 463 | 2604 | 2612 | 2820 | 2828 | 2836 | 2844 | 2857 | 2865 | 2873 | 2881 | 2891 | 2899 | 2909 | 2917 -> r104 + | _ -> S (T T_COLON) :: r110) | 126 -> Select (function - | 847 | 912 | 925 | 960 | 967 | 981 | 1408 | 1468 | 1977 -> r63 + | 847 | 912 | 925 | 960 | 967 | 981 | 1409 | 1469 | 1978 -> r63 | _ -> r61) | 141 -> Select (function - | -1 | 152 | 271 | 278 | 282 | 305 | 324 | 328 | 330 | 334 | 337 | 341 | 362 | 366 | 402 | 406 | 410 | 414 | 418 | 422 | 426 | 430 | 433 | 439 | 443 | 447 | 451 | 455 | 459 | 463 | 467 | 470 | 474 | 2596 | 2600 | 2604 | 2608 | 2812 | 2816 | 2820 | 2824 | 2828 | 2832 | 2836 | 2840 | 2843 | 2849 | 2853 | 2857 | 2861 | 2865 | 2869 | 2873 | 2877 | 2883 | 2887 | 2891 | 2895 | 2901 | 2905 | 2909 | 2913 -> r99 + | -1 | 152 | 271 | 278 | 282 | 305 | 324 | 328 | 330 | 334 | 337 | 341 | 362 | 366 | 402 | 406 | 410 | 414 | 418 | 422 | 426 | 430 | 433 | 439 | 443 | 447 | 451 | 455 | 459 | 463 | 467 | 470 | 474 | 2604 | 2608 | 2612 | 2616 | 2820 | 2824 | 2828 | 2832 | 2836 | 2840 | 2844 | 2848 | 2851 | 2857 | 2861 | 2865 | 2869 | 2873 | 2877 | 2881 | 2885 | 2891 | 2895 | 2899 | 2903 | 2909 | 2913 | 2917 | 2921 -> r99 | _ -> r61) - | 2934 -> Select (function - | 153 | 283 | 306 | 434 | 912 | 1408 | 1468 | 2844 -> r61 + | 2943 -> Select (function + | 153 | 283 | 306 | 434 | 912 | 1409 | 1469 | 2852 -> r61 | _ -> r82) | 123 -> Select (function - | 847 | 912 | 925 | 960 | 967 | 981 | 1408 | 1468 | 1977 -> r64 + | 847 | 912 | 925 | 960 | 967 | 981 | 1409 | 1469 | 1978 -> r64 | _ -> r62) | 140 -> Select (function - | -1 | 152 | 271 | 278 | 282 | 305 | 324 | 328 | 330 | 334 | 337 | 341 | 362 | 366 | 402 | 406 | 410 | 414 | 418 | 422 | 426 | 430 | 433 | 439 | 443 | 447 | 451 | 455 | 459 | 463 | 467 | 470 | 474 | 2596 | 2600 | 2604 | 2608 | 2812 | 2816 | 2820 | 2824 | 2828 | 2832 | 2836 | 2840 | 2843 | 2849 | 2853 | 2857 | 2861 | 2865 | 2869 | 2873 | 2877 | 2883 | 2887 | 2891 | 2895 | 2901 | 2905 | 2909 | 2913 -> r100 + | -1 | 152 | 271 | 278 | 282 | 305 | 324 | 328 | 330 | 334 | 337 | 341 | 362 | 366 | 402 | 406 | 410 | 414 | 418 | 422 | 426 | 430 | 433 | 439 | 443 | 447 | 451 | 455 | 459 | 463 | 467 | 470 | 474 | 2604 | 2608 | 2612 | 2616 | 2820 | 2824 | 2828 | 2832 | 2836 | 2840 | 2844 | 2848 | 2851 | 2857 | 2861 | 2865 | 2869 | 2873 | 2877 | 2881 | 2885 | 2891 | 2895 | 2899 | 2903 | 2909 | 2913 | 2917 | 2921 -> r100 | _ -> r62) - | 2933 -> Select (function - | 153 | 283 | 306 | 434 | 912 | 1408 | 1468 | 2844 -> r62 + | 2942 -> Select (function + | 153 | 283 | 306 | 434 | 912 | 1409 | 1469 | 2852 -> r62 | _ -> r83) - | 1983 -> Select (function - | 113 | 989 | 1949 | 2119 | 2189 | 2288 | 2308 | 2312 | 2579 -> r79 + | 1984 -> Select (function + | 113 | 989 | 1950 | 2120 | 2190 | 2289 | 2309 | 2313 | 2587 -> r79 | _ -> r96) - | 1982 -> Select (function - | 113 | 989 | 1949 | 2119 | 2189 | 2288 | 2308 | 2312 | 2579 -> r80 + | 1983 -> Select (function + | 113 | 989 | 1950 | 2120 | 2190 | 2289 | 2309 | 2313 | 2587 -> r80 | _ -> r97) - | 1981 -> Select (function - | 113 | 989 | 1949 | 2119 | 2189 | 2288 | 2308 | 2312 | 2579 -> r81 + | 1982 -> Select (function + | 113 | 989 | 1950 | 2120 | 2190 | 2289 | 2309 | 2313 | 2587 -> r81 | _ -> r98) - | 2509 -> Select (function - | -1 -> r438 - | _ -> r103) + | 2510 -> Select (function + | -1 -> r439 + | _ -> r104) | 591 -> Select (function - | -1 -> r448 - | _ -> r103) + | -1 -> r449 + | _ -> r104) | 268 -> Select (function - | -1 -> r254 - | _ -> r258) + | -1 -> r255 + | _ -> r259) | 1084 -> Select (function - | -1 -> r254 - | _ -> r841) - | 2508 -> Select (function - | -1 -> r439 - | _ -> r431) - | 588 -> Select (function + | -1 -> r255 + | _ -> r842) + | 2509 -> Select (function | -1 -> r440 | _ -> r432) - | 587 -> Select (function + | 588 -> Select (function | -1 -> r441 | _ -> r433) + | 587 -> Select (function + | -1 -> r442 + | _ -> r434) | 590 -> Select (function - | -1 -> r449 - | _ -> r447) - | 2134 -> Select (function - | -1 -> r1432 - | _ -> r1426) - | 2133 -> Select (function + | -1 -> r450 + | _ -> r448) + | 2135 -> Select (function | -1 -> r1433 | _ -> r1427) - | 2132 -> Select (function + | 2134 -> Select (function | -1 -> r1434 | _ -> r1428) + | 2133 -> Select (function + | -1 -> r1435 + | _ -> r1429) | _ -> raise Not_found diff --git a/src/ocaml/typing/includecore.ml b/src/ocaml/typing/includecore.ml index d02b4ee15..9cc0b77b5 100644 --- a/src/ocaml/typing/includecore.ml +++ b/src/ocaml/typing/includecore.ml @@ -1407,7 +1407,7 @@ let type_declarations ?(equality = false) ~loc env ~mark name mark usage cstrs1; if equality then mark Env.Exported cstrs2 end; - Misc.Stdlib.Option.first_some + Misc_stdlib.Option.first_some (Variant_diffing.compare_with_representation ~loc env decl1.type_params decl2.type_params @@ -1418,13 +1418,13 @@ let type_declarations ?(equality = false) ~loc env ~mark name (fun () -> compare_unsafe_mode_crossing umc1 umc2) end | (Type_record(labels1,rep1,umc1), Type_record(labels2,rep2,umc2)) -> begin - Misc.Stdlib.Option.first_some + Misc_stdlib.Option.first_some (mark_and_compare_records Legacy labels1 rep1 labels2 rep2) (fun () -> compare_unsafe_mode_crossing umc1 umc2) end | (Type_record_unboxed_product(labels1,rep1,umc1), Type_record_unboxed_product(labels2,rep2,umc2)) -> begin - Misc.Stdlib.Option.first_some + Misc_stdlib.Option.first_some (mark_and_compare_records Unboxed_product labels1 rep1 labels2 rep2) (fun () -> compare_unsafe_mode_crossing umc1 umc2) end diff --git a/src/ocaml/typing/jkind.ml b/src/ocaml/typing/jkind.ml index 139913410..7be9adee6 100644 --- a/src/ocaml/typing/jkind.ml +++ b/src/ocaml/typing/jkind.ml @@ -564,7 +564,7 @@ module Mod_bounds = struct let (module Bound_ops) = Axis.get axis in Bound_ops.less_or_equal) } - ~combine:Misc.Le_result.combine + ~combine:Le_result.combine let equal = Fold2.f @@ -1458,7 +1458,7 @@ module Jkind_desc = struct Mod_bounds.t * (l2 * r2) with_bounds * Fuel_status.t = function (* early cutoff *) | _ - when Misc.Le_result.is_le + when Le_result.is_le (Mod_bounds.less_or_equal Mod_bounds.max bounds_so_far) -> (* CR layouts v2.8: we can do better by early-terminating on a per-axis basis *) bounds_so_far, No_with_bounds, Sufficient_fuel @@ -1560,7 +1560,7 @@ module Jkind_desc = struct in let layout = Layout.sub lay1 lay2 in let bounds = Mod_bounds.less_or_equal bounds1 bounds2 in - Misc.Le_result.combine layout bounds + Le_result.combine layout bounds let intersection { layout = lay1; mod_bounds = mod_bounds1; with_bounds = with_bounds1 } @@ -2692,7 +2692,7 @@ let sub_jkind_l ~type_equal ~jkind_of_type ?(allow_any_crossing = false) sub (* This function implements the "SUB" judgement from kind-inference.md. *) let open Misc.Stdlib.Monad.Result.Syntax in let require_le le_result = - match Misc.Le_result.is_le le_result with + match Le_result.is_le le_result with | true -> Ok () | false -> (* When we report an error, we want to show the best-normalized version of sub, but diff --git a/src/ocaml/typing/jkind.mli b/src/ocaml/typing/jkind.mli index 0fdfa1f49..d1176fca9 100644 --- a/src/ocaml/typing/jkind.mli +++ b/src/ocaml/typing/jkind.mli @@ -97,7 +97,7 @@ module Layout : sig val of_const : Const.t -> Sort.t t - val sub : Sort.t t -> Sort.t t -> Misc.Le_result.t + val sub : Sort.t t -> Sort.t t -> Misc_stdlib.Le_result.t end (** A Jkind.t is a full description of the runtime representation of values diff --git a/src/ocaml/typing/jkind_axis.mli b/src/ocaml/typing/jkind_axis.mli index d05c74adc..9c1ef1619 100644 --- a/src/ocaml/typing/jkind_axis.mli +++ b/src/ocaml/typing/jkind_axis.mli @@ -188,9 +188,9 @@ module Axis_collection : sig type t = unit t_poly end - module Indexed_gen (T : Misc.T2) : S_poly with type ('a, 'b) u := ('a, 'b) T.t + module Indexed_gen (T : Misc_stdlib.T2) : S_poly with type ('a, 'b) u := ('a, 'b) T.t - module Indexed (T : Misc.T1) : S_mono with type ('a, 'b) u := 'a T.t + module Indexed (T : Misc_stdlib.T1) : S_mono with type ('a, 'b) u := 'a T.t module Identity : S_mono with type ('a, 'b) u := 'a diff --git a/src/ocaml/typing/mode_intf.mli b/src/ocaml/typing/mode_intf.mli index d1b54bb64..73b6a762c 100644 --- a/src/ocaml/typing/mode_intf.mli +++ b/src/ocaml/typing/mode_intf.mli @@ -299,7 +299,7 @@ module type S = sig val print : Format.formatter -> ('p, 'r) t -> unit - val eq : ('p, 'r0) t -> ('p, 'r1) t -> ('r0, 'r1) Misc.eq option + val eq : ('p, 'r0) t -> ('p, 'r1) t -> ('r0, 'r1) Misc_stdlib.eq option end module type Mode := sig diff --git a/src/ocaml/typing/oprint.ml b/src/ocaml/typing/oprint.ml index fd3bdc63a..dab7e4ce0 100644 --- a/src/ocaml/typing/oprint.ml +++ b/src/ocaml/typing/oprint.ml @@ -642,7 +642,7 @@ and print_out_jkind_const ppf ojkind = | Ojkind_const_default -> fprintf ppf "_" | Ojkind_const_abbreviation abbrev -> fprintf ppf "%s" abbrev | Ojkind_const_mod (base, modes) -> - Misc.pp_parens_if nested (fun ppf (base, modes) -> + Misc_stdlib.pp_parens_if nested (fun ppf (base, modes) -> fprintf ppf "%a mod @[%a@]" (pp_element ~nested:true) base (pp_print_list ~pp_sep:(fun ppf () -> fprintf ppf "@ ") @@ -651,7 +651,7 @@ and print_out_jkind_const ppf ojkind = ) ppf (base, modes) | Ojkind_const_product ts -> let pp_sep ppf () = Format.fprintf ppf "@ & " in - Misc.pp_nested_list ~nested ~pp_element ~pp_sep ppf ts + Misc_stdlib.pp_nested_list ~nested ~pp_element ~pp_sep ppf ts | Ojkind_const_with _ -> failwith "XXX unreachable (stripped off earlier)" | Ojkind_const_kind_of _ -> failwith "XXX unimplemented jkind syntax"); @@ -677,7 +677,7 @@ and print_out_jkind ppf ojkind = | Ojkind_const jkind -> print_out_jkind_const ppf jkind | Ojkind_product ts -> let pp_sep ppf () = Format.fprintf ppf "@ & " in - Misc.pp_nested_list ~nested ~pp_element ~pp_sep ppf ts + Misc_stdlib.pp_nested_list ~nested ~pp_element ~pp_sep ppf ts in pp_element ~nested:false ppf ojkind diff --git a/src/ocaml/typing/typedecl.ml b/src/ocaml/typing/typedecl.ml index 4006177cf..f9d1885bf 100644 --- a/src/ocaml/typing/typedecl.ml +++ b/src/ocaml/typing/typedecl.ml @@ -2471,10 +2471,10 @@ let normalize_decl_jkinds env shapes decls = let env = List.fold_right2 (fun (id, _, _, decl) shape env -> - add_type ~check:true ~shape id decl env) + add_type ~long_path:false ~check:true ~shape id decl env) decls shapes env in - Misc.Stdlib.List.fold_left_map2 + Misc_stdlib.List.fold_left_map2 (fun env (id, original_jkind, allow_any_crossing, decl) shape -> let normalized_jkind = Jkind.normalize @@ -2486,7 +2486,7 @@ let normalize_decl_jkinds env shapes decls = (* Add the decl with the normalized kind back to the environment, so that later kinds don't have to normalize this kind if they mention this type in their with-bounds *) - let env = add_type ~check:false ~shape:shape id decl env in + let env = add_type ~long_path:false ~check:false ~shape:shape id decl env in if normalized_jkind != original_jkind then begin (* If the jkind has changed, check that it is a subjkind of the original jkind that we computed, either from a user-written annotation or as a dummy jkind. diff --git a/src/ocaml/typing/typemod.ml b/src/ocaml/typing/typemod.ml index f5640af65..b966ec388 100644 --- a/src/ocaml/typing/typemod.ml +++ b/src/ocaml/typing/typemod.ml @@ -2662,7 +2662,7 @@ and type_module_maybe_hold_locks ~alias sttn funct_body anchor env smod = mod_env = env; mod_attributes = Msupport.flush_saved_types () @ smod.pmod_attributes; mod_loc = smod.pmod_loc }, - Shape.dummy_mod + Shape.dummy_mod, Env.locks_empty and type_module_aux ~alias sttn funct_body anchor env smod = match smod.pmod_desc with @@ -2804,7 +2804,7 @@ and type_module_aux ~alias sttn funct_body anchor env smod = mod_env = env; mod_attributes = smod.pmod_attributes; mod_loc = smod.pmod_loc }, - Shape.dummy_mod + Shape.dummy_mod, Env.locks_empty | Pmod_extension ext -> raise (Error_forward (Builtin_attributes.error_of_extension ext)) | Pmod_instance glob -> diff --git a/src/ocaml/typing/types.ml b/src/ocaml/typing/types.ml index ec72a906c..57fe18bd2 100644 --- a/src/ocaml/typing/types.ml +++ b/src/ocaml/typing/types.ml @@ -29,7 +29,7 @@ let is_mutable = function (* Type expressions for the core language *) module Jkind_mod_bounds = - Jkind_axis.Axis_collection.Indexed (Misc.Stdlib.Monad.Identity) + Jkind_axis.Axis_collection.Indexed (Misc_stdlib.Monad.Identity) module With_bounds_type_info = struct type t = {relevant_axes : Jkind_axis.Axis_set.t } [@@unboxed] diff --git a/src/ocaml/typing/types.mli b/src/ocaml/typing/types.mli index 4804cdf8a..bf15c7604 100644 --- a/src/ocaml/typing/types.mli +++ b/src/ocaml/typing/types.mli @@ -70,7 +70,7 @@ val is_mutable : mutability -> bool (** The mod-bounds of a jkind *) module Jkind_mod_bounds : - module type of Jkind_axis.Axis_collection.Indexed (Misc.Stdlib.Monad.Identity) + module type of Jkind_axis.Axis_collection.Indexed (Misc_stdlib.Monad.Identity) (** Information tracked about an individual type within the with-bounds for a jkind *) module With_bounds_type_info : sig diff --git a/src/ocaml/utils/clflags.ml b/src/ocaml/utils/clflags.ml index a75b5af47..8154acdbd 100644 --- a/src/ocaml/utils/clflags.ml +++ b/src/ocaml/utils/clflags.ml @@ -19,8 +19,8 @@ let open_modules = ref [] let parameters = ref ([] : string list) let as_parameter = ref false let as_argument_for = ref None -let zero_alloc_check = ref Zero_alloc_annotations.Check_default -let zero_alloc_check_assert_all = ref false +let zero_alloc_check = ref Zero_alloc_annotations.Check.Check_default +let zero_alloc_assert = ref Zero_alloc_annotations.Assert.Assert_default let infer_with_bounds = ref false let annotations = ref false diff --git a/src/ocaml/utils/clflags.mli b/src/ocaml/utils/clflags.mli index bdb4c6fe0..e8a45ba74 100644 --- a/src/ocaml/utils/clflags.mli +++ b/src/ocaml/utils/clflags.mli @@ -25,8 +25,8 @@ val open_modules : string list ref val parameters : string list ref val as_parameter : bool ref val as_argument_for : string option ref -val zero_alloc_check : Zero_alloc_annotations.t ref -val zero_alloc_check_assert_all : bool ref +val zero_alloc_check : Zero_alloc_annotations.Check.t ref +val zero_alloc_assert : Zero_alloc_annotations.Assert.t ref val infer_with_bounds : bool ref (** {1 Dummy values} diff --git a/src/ocaml/utils/misc_stdlib.ml b/src/ocaml/utils/misc_stdlib.ml index b5156f8ac..303ed0f67 100644 --- a/src/ocaml/utils/misc_stdlib.ml +++ b/src/ocaml/utils/misc_stdlib.ml @@ -96,6 +96,17 @@ module List = struct ~left_only:(fun () a -> left_only a) ~right_only:(fun () b -> right_only b) ~both:(fun () a b -> both a b) + + let fold_left_map2 f accu l1 l2 = + let rec aux f accu res l1 l2 = + match l1, l2 with + | [], [] -> accu, List.rev res + | a1 :: l1, a2 :: l2 -> + let accu', r = f accu a1 a2 in + aux f accu' (r :: res) l1 l2 + | _, _ -> invalid_arg "fold_left_map2" + in + aux f accu [] l1 l2 end module Option = struct @@ -277,13 +288,6 @@ module Int = struct end module Monad = struct - module type Basic = sig - type 'a t - - val bind : 'a t -> ('a -> 'b t) -> 'b t - val return : 'a -> 'a t - end - module type Basic2 = sig type ('a, 'e) t @@ -292,61 +296,49 @@ module Monad = struct val return : 'a -> ('a, _) t end - module type S = sig + module type Basic = sig type 'a t - - val bind : 'a t -> ('a -> 'b t) -> 'b t - val (>>=) : 'a t -> ('a -> 'b t) -> 'b t - val return : 'a -> 'a t - val map : ('a -> 'b) -> 'a t -> 'b t - val join : 'a t t -> 'a t - val ignore_m : 'a t -> unit t - val all : 'a t list -> 'a list t - val all_unit : unit t list -> unit t + include Basic2 with type ('a, _) t := 'a t end module type S2 = sig type ('a, 'e) t val bind : ('a, 'e) t -> ('a -> ('b, 'e) t) -> ('b, 'e) t + val (>>=) : ('a, 'e) t -> ('a -> ('b, 'e) t) -> ('b, 'e) t val return : 'a -> ('a, _) t val map : ('a -> 'b) -> ('a, 'e) t -> ('b, 'e) t val join : (('a, 'e) t, 'e) t -> ('a, 'e) t + val both : ('a, 'e) t -> ('b, 'e) t -> ('a * 'b, 'e) t val ignore_m : (_, 'e) t -> (unit, 'e) t val all : ('a, 'e) t list -> ('a list, 'e) t val all_unit : (unit, 'e) t list -> (unit, 'e) t - end - - module Make (X : Basic) = struct - include X - - let ( >>= ) t f = bind t f - - let map f ma = ma >>= fun a -> return (f a) - - let join t = t >>= fun t' -> t' - let ignore_m t = map (fun _ -> ()) t - let all = - let rec loop vs = function - | [] -> return (List.rev vs) - | t :: ts -> t >>= fun v -> loop (v :: vs) ts - in - fun ts -> loop [] ts + module Syntax : sig + val (let+) : ('a, 'e) t -> ('a -> 'b) -> ('b, 'e) t + val (and+) : ('a, 'e) t -> ('b, 'e) t -> ('a * 'b, 'e) t + val (let*) : ('a, 'e) t -> ('a -> ('b, 'e) t) -> ('b, 'e) t + val (and*) : ('a, 'e) t -> ('b, 'e) t -> ('a * 'b, 'e) t + end + end - let rec all_unit = function - | [] -> return () - | t :: ts -> t >>= fun () -> all_unit ts + module type S = sig + type 'a t + include S2 with type ('a, _) t := 'a t end - module Make2 (X : Basic2) = struct + module[@inline] Make2 (X : Basic2) = struct include X + let[@inline] ( >>= ) t f = bind t f + let map f m = bind m (fun a -> return (f a)) let join m = bind m Fun.id + let both t1 t2 = t1 >>= fun t1 -> t2 >>= fun t2 -> return (t1, t2) + let ignore_m m = bind m (fun _ -> return ()) let all ms = @@ -359,8 +351,30 @@ module Monad = struct let rec all_unit = function | [] -> return () | m :: ms -> bind m (fun _ -> all_unit ms) + + module Syntax = struct + let[@inline] (let+) t f = map f t + let[@inline] (and+) a b = both a b + let[@inline] (let*) t f = bind t f + let[@inline] (and*) a b = (and+) a b + end + end + + module[@inline] Make (X : Basic) = struct + include Make2(struct + include X + type ('a, _) t = 'a X.t + end) + + type nonrec 'a t = 'a X.t end + module Identity = Make(struct + type 'a t = 'a + let[@inline] bind x f = f x + let[@inline] return x = x + end) + module Option = Make(struct include Stdlib.Option let return = some @@ -409,3 +423,7 @@ type (_, _) eq = Refl : ('a, 'a) eq module type T1 = sig type 'a t end + +module type T2 = sig + type ('a, 'b) t +end diff --git a/src/ocaml/utils/misc_stdlib.mli b/src/ocaml/utils/misc_stdlib.mli index ca4ab4a42..9febc1e9e 100644 --- a/src/ocaml/utils/misc_stdlib.mli +++ b/src/ocaml/utils/misc_stdlib.mli @@ -59,6 +59,15 @@ module List : sig -> 'a list -> 'b list -> unit + + val fold_left_map2 + : ('acc -> 'a -> 'b -> 'acc * 'r) + -> 'acc + -> 'a list + -> 'b list + -> 'acc * 'r list + (** [fold_left_map2] is a combination of [fold_left2] and [map2] that threads an + accumulator through calls to [f]. *) end module Option : sig @@ -139,11 +148,16 @@ module Int : sig end module Monad : sig - module type Basic = sig - type 'a t + module type Basic2 = sig + (** Multi parameter monad. The second parameter gets unified across all + the computation. This is used to encode monads working on a multi + parameter data structure like ([('a,'b) result]). *) + + type ('a, 'e) t + + val bind : ('a, 'e) t -> ('a -> ('b, 'e) t) -> ('b, 'e) t - val bind : 'a t -> ('a -> 'b t) -> 'b t - val return : 'a -> 'a t + val return : 'a -> ('a, _) t (** The following identities ought to hold (for some value of =): @@ -154,60 +168,58 @@ module Monad : sig Note: [>>=] is the infix notation for [bind]) *) end - module type Basic2 = sig - (** Multi parameter monad. The second parameter gets unified across all - the computation. This is used to encode monads working on a multi - parameter data structure like ([('a,'b) result]). *) + module type Basic = sig + type 'a t + include Basic2 with type ('a, _) t := 'a t + end + module type S2 = sig type ('a, 'e) t val bind : ('a, 'e) t -> ('a -> ('b, 'e) t) -> ('b, 'e) t - val return : 'a -> ('a, _) t - end - - module type S = sig - type 'a t - - val bind : 'a t -> ('a -> 'b t) -> 'b t - (** [>>=] is a synonym for [bind] *) - val (>>=) : 'a t -> ('a -> 'b t) -> 'b t + val (>>=) : ('a, 'e) t -> ('a -> ('b, 'e) t) -> ('b, 'e) t (** [return v] returns the (trivial) computation that returns v. *) - val return : 'a -> 'a t + val return : 'a -> ('a, _) t - val map : ('a -> 'b) -> 'a t -> 'b t + val map : ('a -> 'b) -> ('a, 'e) t -> ('b, 'e) t (** [join t] is [t >>= (fun t' -> t')]. *) - val join : 'a t t -> 'a t + val join : (('a, 'e) t, 'e) t -> ('a, 'e) t + + val both : ('a, 'e) t -> ('b, 'e) t -> ('a * 'b, 'e) t (** [ignore_m t] is [map (fun _ -> ()) t]. *) - val ignore_m : 'a t -> unit t + val ignore_m : (_, 'e) t -> (unit, 'e) t - val all : 'a t list -> 'a list t + val all : ('a, 'e) t list -> ('a list, 'e) t (** Like [all], but ensures that every monadic value in the list produces a unit value, all of which are discarded rather than being collected into a list. *) - val all_unit : unit t list -> unit t - end + val all_unit : (unit, 'e) t list -> (unit, 'e) t - module type S2 = sig - type ('a, 'e) t + (** As described at https://ocaml.org/manual/latest/bindingops.html *) + module Syntax : sig + val (let+) : ('a, 'e) t -> ('a -> 'b) -> ('b, 'e) t + val (and+) : ('a, 'e) t -> ('b, 'e) t -> ('a * 'b, 'e) t + val (let*) : ('a, 'e) t -> ('a -> ('b, 'e) t) -> ('b, 'e) t + val (and*) : ('a, 'e) t -> ('b, 'e) t -> ('a * 'b, 'e) t + end + end - val bind : ('a, 'e) t -> ('a -> ('b, 'e) t) -> ('b, 'e) t - val return : 'a -> ('a, _) t - val map : ('a -> 'b) -> ('a, 'e) t -> ('b, 'e) t - val join : (('a, 'e) t, 'e) t -> ('a, 'e) t - val ignore_m : (_, 'e) t -> (unit, 'e) t - val all : ('a, 'e) t list -> ('a list, 'e) t - val all_unit : (unit, 'e) t list -> (unit, 'e) t + module type S = sig + type 'a t + include S2 with type ('a, _) t := 'a t end + module Make (X : Basic) : S with type 'a t = 'a X.t module Make2 (X : Basic2) : S2 with type ('a, 'e) t = ('a, 'e) X.t + module Identity : S with type 'a t = 'a module Option : S with type 'a t = 'a option module Result : S2 with type ('a, 'e) t = ('a, 'e) result end @@ -242,3 +254,7 @@ type (_, _) eq = Refl : ('a, 'a) eq module type T1 = sig type 'a t end + +module type T2 = sig + type ('a, 'b) t +end diff --git a/src/sherlodoc/type_parser.ml b/src/sherlodoc/type_parser.ml index 143dbf5f6..0151dd0f1 100644 --- a/src/sherlodoc/type_parser.ml +++ b/src/sherlodoc/type_parser.ml @@ -3,18 +3,22 @@ module MenhirBasics = struct exception Error + let _eRR = + fun _s -> + raise Error + type token = | WORD of ( # 4 "src/sherlodoc/type_parser.mly" (string) -# 11 "src/sherlodoc/type_parser.ml" +# 15 "src/sherlodoc/type_parser.ml" ) | WILDCARD | STAR | POLY of ( # 5 "src/sherlodoc/type_parser.mly" (string) -# 18 "src/sherlodoc/type_parser.ml" +# 22 "src/sherlodoc/type_parser.ml" ) | PARENS_OPEN | PARENS_CLOSE @@ -26,516 +30,543 @@ end include MenhirBasics -let _eRR = - MenhirBasics.Error - -type _menhir_env = { - _menhir_lexer: Lexing.lexbuf -> token; - _menhir_lexbuf: Lexing.lexbuf; - _menhir_token: token; - mutable _menhir_error: bool -} - -and _menhir_state = - | MenhirState19 - | MenhirState13 - | MenhirState11 - | MenhirState7 - | MenhirState6 - | MenhirState4 - | MenhirState0 - -let rec _menhir_goto_list1_typ_COMMA_ : _menhir_env -> 'ttv_tail -> _menhir_state -> (Type_parsed.t list) -> 'ttv_return = - fun _menhir_env _menhir_stack _menhir_s _v -> - let _menhir_stack = (_menhir_stack, _menhir_s, _v) in - match _menhir_s with - | MenhirState19 -> - let _menhir_stack = Obj.magic _menhir_stack in - let _menhir_stack = Obj.magic _menhir_stack in - let ((_menhir_stack, _menhir_s, (x : (Type_parsed.t))), _, (xs : (Type_parsed.t list))) = _menhir_stack in - let _v : (Type_parsed.t list) = -# 50 "src/sherlodoc/type_parser.mly" - ( x::xs ) -# 60 "src/sherlodoc/type_parser.ml" - in - _menhir_goto_list1_typ_COMMA_ _menhir_env _menhir_stack _menhir_s _v - | MenhirState4 -> - let _menhir_stack = Obj.magic _menhir_stack in - assert (not _menhir_env._menhir_error); - let _tok = _menhir_env._menhir_token in - (match _tok with - | PARENS_CLOSE -> - let _menhir_stack = Obj.magic _menhir_stack in - let _menhir_env = _menhir_discard _menhir_env in - let _menhir_stack = Obj.magic _menhir_stack in - let ((_menhir_stack, _menhir_s), _, (ts : (Type_parsed.t list))) = _menhir_stack in - let _v : (Type_parsed.t list) = -# 44 "src/sherlodoc/type_parser.mly" - ( ts ) -# 76 "src/sherlodoc/type_parser.ml" - in - _menhir_goto_typs _menhir_env _menhir_stack _menhir_s _v - | _ -> - assert (not _menhir_env._menhir_error); - _menhir_env._menhir_error <- true; - let _menhir_stack = Obj.magic _menhir_stack in - let (_menhir_stack, _menhir_s, _) = _menhir_stack in - _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) _menhir_s) - | _ -> - _menhir_fail () - -and _menhir_goto_list_WORD_ : _menhir_env -> 'ttv_tail -> _menhir_state -> (string list) -> 'ttv_return = - fun _menhir_env _menhir_stack _menhir_s _v -> - match _menhir_s with - | MenhirState7 -> - let _menhir_stack = Obj.magic _menhir_stack in - let _menhir_stack = Obj.magic _menhir_stack in - let (xs : (string list)) = _v in - let (_menhir_stack, _menhir_s, (x : ( +type ('s, 'r) _menhir_state = + | MenhirState00 : ('s, _menhir_box_main) _menhir_state + (** State 00. + Stack shape : . + Start symbol: main. *) + + | MenhirState04 : (('s, _menhir_box_main) _menhir_cell1_PARENS_OPEN, _menhir_box_main) _menhir_state + (** State 04. + Stack shape : PARENS_OPEN. + Start symbol: main. *) + + | MenhirState06 : (('s, _menhir_box_main) _menhir_cell1_typs _menhir_cell0_WORD, _menhir_box_main) _menhir_state + (** State 06. + Stack shape : typs WORD. + Start symbol: main. *) + + | MenhirState07 : (('s, _menhir_box_main) _menhir_cell1_WORD, _menhir_box_main) _menhir_state + (** State 07. + Stack shape : WORD. + Start symbol: main. *) + + | MenhirState11 : (('s, _menhir_box_main) _menhir_cell1_typ2, _menhir_box_main) _menhir_state + (** State 11. + Stack shape : typ2. + Start symbol: main. *) + + | MenhirState13 : (('s, _menhir_box_main) _menhir_cell1_typ1, _menhir_box_main) _menhir_state + (** State 13. + Stack shape : typ1. + Start symbol: main. *) + + | MenhirState19 : (('s, _menhir_box_main) _menhir_cell1_typ, _menhir_box_main) _menhir_state + (** State 19. + Stack shape : typ. + Start symbol: main. *) + + +and ('s, 'r) _menhir_cell1_typ = + | MenhirCell1_typ of 's * ('s, 'r) _menhir_state * (Type_parsed.t) + +and ('s, 'r) _menhir_cell1_typ1 = + | MenhirCell1_typ1 of 's * ('s, 'r) _menhir_state * (Type_parsed.t) + +and ('s, 'r) _menhir_cell1_typ2 = + | MenhirCell1_typ2 of 's * ('s, 'r) _menhir_state * (Type_parsed.t) + +and ('s, 'r) _menhir_cell1_typs = + | MenhirCell1_typs of 's * ('s, 'r) _menhir_state * (Type_parsed.t list) + +and ('s, 'r) _menhir_cell1_PARENS_OPEN = + | MenhirCell1_PARENS_OPEN of 's * ('s, 'r) _menhir_state + +and ('s, 'r) _menhir_cell1_WORD = + | MenhirCell1_WORD of 's * ('s, 'r) _menhir_state * ( # 4 "src/sherlodoc/type_parser.mly" (string) -# 98 "src/sherlodoc/type_parser.ml" - ))) = _menhir_stack in - let _v : (string list) = -# 213 "" - ( x :: xs ) -# 103 "src/sherlodoc/type_parser.ml" - in - _menhir_goto_list_WORD_ _menhir_env _menhir_stack _menhir_s _v - | MenhirState6 -> - let _menhir_stack = Obj.magic _menhir_stack in - let _menhir_stack = Obj.magic _menhir_stack in - let (ws : (string list)) = _v in - let ((_menhir_stack, _menhir_s, (ts : (Type_parsed.t list))), (w : ( +# 90 "src/sherlodoc/type_parser.ml" +) + +and 's _menhir_cell0_WORD = + | MenhirCell0_WORD of 's * ( # 4 "src/sherlodoc/type_parser.mly" (string) -# 113 "src/sherlodoc/type_parser.ml" - ))) = _menhir_stack in - let _v : (Type_parsed.t) = -# 29 "src/sherlodoc/type_parser.mly" - ( - List.fold_left ( fun acc w -> - Type_parsed.Tycon (w, [acc])) (Type_parsed.Tycon (w, ts)) ws - ) -# 121 "src/sherlodoc/type_parser.ml" - in - _menhir_goto_typ1 _menhir_env _menhir_stack _menhir_s _v - | _ -> - _menhir_fail () +# 97 "src/sherlodoc/type_parser.ml" +) + +and _menhir_box_main = + | MenhirBox_main of (Type_parsed.t) [@@unboxed] -and _menhir_fail : unit -> 'a = +let _menhir_action_01 = fun () -> - Printf.fprintf stderr "Internal failure -- please contact the parser generator's developers.\n%!"; - assert false + ( +# 216 "" + ( [] ) +# 108 "src/sherlodoc/type_parser.ml" + : (string list)) -and _menhir_goto_typ : _menhir_env -> 'ttv_tail -> _menhir_state -> (Type_parsed.t) -> 'ttv_return = - fun _menhir_env _menhir_stack _menhir_s _v -> - let _menhir_stack = (_menhir_stack, _menhir_s, _v) in - match _menhir_s with - | MenhirState11 -> - let _menhir_stack = Obj.magic _menhir_stack in - let _menhir_stack = Obj.magic _menhir_stack in - let ((_menhir_stack, _menhir_s, (a : (Type_parsed.t))), _, (b : (Type_parsed.t))) = _menhir_stack in - let _v : (Type_parsed.t) = -# 18 "src/sherlodoc/type_parser.mly" - ( Type_parsed.Arrow (a, b) ) -# 143 "src/sherlodoc/type_parser.ml" - in - _menhir_goto_typ _menhir_env _menhir_stack _menhir_s _v - | MenhirState19 | MenhirState4 -> - let _menhir_stack = Obj.magic _menhir_stack in - assert (not _menhir_env._menhir_error); - let _tok = _menhir_env._menhir_token in - (match _tok with - | COMMA -> - let _menhir_stack = Obj.magic _menhir_stack in - let _menhir_env = _menhir_discard _menhir_env in - let _tok = _menhir_env._menhir_token in - (match _tok with - | PARENS_OPEN -> - _menhir_run4 _menhir_env (Obj.magic _menhir_stack) MenhirState19 - | POLY _v -> - _menhir_run3 _menhir_env (Obj.magic _menhir_stack) MenhirState19 _v - | WILDCARD -> - _menhir_run2 _menhir_env (Obj.magic _menhir_stack) MenhirState19 - | WORD _v -> - _menhir_run1 _menhir_env (Obj.magic _menhir_stack) MenhirState19 _v - | ARROW | COMMA | PARENS_CLOSE | STAR -> - _menhir_reduce13 _menhir_env (Obj.magic _menhir_stack) MenhirState19 - | _ -> - assert (not _menhir_env._menhir_error); - _menhir_env._menhir_error <- true; - _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) MenhirState19) - | PARENS_CLOSE -> - let _menhir_stack = Obj.magic _menhir_stack in - let (_menhir_stack, _menhir_s, (x : (Type_parsed.t))) = _menhir_stack in - let _v : (Type_parsed.t list) = +let _menhir_action_02 = + fun x xs -> + ( +# 219 "" + ( x :: xs ) +# 116 "src/sherlodoc/type_parser.ml" + : (string list)) + +let _menhir_action_03 = + fun x -> + ( # 49 "src/sherlodoc/type_parser.mly" ( [x] ) -# 176 "src/sherlodoc/type_parser.ml" - in - _menhir_goto_list1_typ_COMMA_ _menhir_env _menhir_stack _menhir_s _v - | _ -> - assert (not _menhir_env._menhir_error); - _menhir_env._menhir_error <- true; - let _menhir_stack = Obj.magic _menhir_stack in - let (_menhir_stack, _menhir_s, _) = _menhir_stack in - _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) _menhir_s) - | MenhirState0 -> - let _menhir_stack = Obj.magic _menhir_stack in - assert (not _menhir_env._menhir_error); - let _tok = _menhir_env._menhir_token in - (match _tok with - | EOF -> - let _menhir_stack = Obj.magic _menhir_stack in - let _menhir_stack = Obj.magic _menhir_stack in - let (_menhir_stack, _menhir_s, (t : (Type_parsed.t))) = _menhir_stack in - let _v : (Type_parsed.t) = -# 13 "src/sherlodoc/type_parser.mly" - ( t ) -# 197 "src/sherlodoc/type_parser.ml" - in - let _menhir_stack = Obj.magic _menhir_stack in - let _menhir_stack = Obj.magic _menhir_stack in - let (_1 : (Type_parsed.t)) = _v in - Obj.magic _1 - | _ -> - assert (not _menhir_env._menhir_error); - _menhir_env._menhir_error <- true; - let _menhir_stack = Obj.magic _menhir_stack in - let (_menhir_stack, _menhir_s, _) = _menhir_stack in - _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) _menhir_s) - | _ -> - _menhir_fail () - -and _menhir_reduce1 : _menhir_env -> 'ttv_tail -> _menhir_state -> 'ttv_return = - fun _menhir_env _menhir_stack _menhir_s -> - let _v : (string list) = -# 211 "" - ( [] ) -# 217 "src/sherlodoc/type_parser.ml" - in - _menhir_goto_list_WORD_ _menhir_env _menhir_stack _menhir_s _v +# 124 "src/sherlodoc/type_parser.ml" + : (Type_parsed.t list)) -and _menhir_run7 : _menhir_env -> 'ttv_tail -> _menhir_state -> ( -# 4 "src/sherlodoc/type_parser.mly" - (string) -# 224 "src/sherlodoc/type_parser.ml" -) -> 'ttv_return = - fun _menhir_env _menhir_stack _menhir_s _v -> - let _menhir_stack = (_menhir_stack, _menhir_s, _v) in - let _menhir_env = _menhir_discard _menhir_env in - let _tok = _menhir_env._menhir_token in - match _tok with - | WORD _v -> - _menhir_run7 _menhir_env (Obj.magic _menhir_stack) MenhirState7 _v - | ARROW | COMMA | EOF | PARENS_CLOSE | STAR -> - _menhir_reduce1 _menhir_env (Obj.magic _menhir_stack) MenhirState7 - | _ -> - assert (not _menhir_env._menhir_error); - _menhir_env._menhir_error <- true; - _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) MenhirState7 - -and _menhir_goto_list1_typ1_STAR_ : _menhir_env -> 'ttv_tail -> _menhir_state -> (Type_parsed.t list) -> 'ttv_return = - fun _menhir_env _menhir_stack _menhir_s _v -> - match _menhir_s with - | MenhirState13 -> - let _menhir_stack = Obj.magic _menhir_stack in - let _menhir_stack = Obj.magic _menhir_stack in - let (xs : (Type_parsed.t list)) = _v in - let (_menhir_stack, _menhir_s, (x : (Type_parsed.t))) = _menhir_stack in - let _v : (Type_parsed.t list) = +let _menhir_action_04 = + fun x xs -> + ( # 50 "src/sherlodoc/type_parser.mly" ( x::xs ) -# 251 "src/sherlodoc/type_parser.ml" - in - _menhir_goto_list1_typ1_STAR_ _menhir_env _menhir_stack _menhir_s _v - | MenhirState0 | MenhirState4 | MenhirState19 | MenhirState11 -> - let _menhir_stack = Obj.magic _menhir_stack in - let _menhir_stack = Obj.magic _menhir_stack in - let (xs : (Type_parsed.t list)) = _v in - let _v : (Type_parsed.t) = -# 22 "src/sherlodoc/type_parser.mly" - ( Type_parsed.tuple xs ) -# 261 "src/sherlodoc/type_parser.ml" - in - let _menhir_stack = (_menhir_stack, _menhir_s, _v) in - let _menhir_stack = Obj.magic _menhir_stack in - assert (not _menhir_env._menhir_error); - let _tok = _menhir_env._menhir_token in - (match _tok with - | ARROW -> - let _menhir_stack = Obj.magic _menhir_stack in - let _menhir_env = _menhir_discard _menhir_env in - let _tok = _menhir_env._menhir_token in - (match _tok with - | PARENS_OPEN -> - _menhir_run4 _menhir_env (Obj.magic _menhir_stack) MenhirState11 - | POLY _v -> - _menhir_run3 _menhir_env (Obj.magic _menhir_stack) MenhirState11 _v - | WILDCARD -> - _menhir_run2 _menhir_env (Obj.magic _menhir_stack) MenhirState11 - | WORD _v -> - _menhir_run1 _menhir_env (Obj.magic _menhir_stack) MenhirState11 _v - | ARROW | COMMA | EOF | PARENS_CLOSE | STAR -> - _menhir_reduce13 _menhir_env (Obj.magic _menhir_stack) MenhirState11) - | COMMA | EOF | PARENS_CLOSE -> - let _menhir_stack = Obj.magic _menhir_stack in - let (_menhir_stack, _menhir_s, (t : (Type_parsed.t))) = _menhir_stack in - let _v : (Type_parsed.t) = -# 17 "src/sherlodoc/type_parser.mly" - ( t ) -# 289 "src/sherlodoc/type_parser.ml" - in - _menhir_goto_typ _menhir_env _menhir_stack _menhir_s _v - | _ -> - assert (not _menhir_env._menhir_error); - _menhir_env._menhir_error <- true; - let _menhir_stack = Obj.magic _menhir_stack in - let (_menhir_stack, _menhir_s, _) = _menhir_stack in - _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) _menhir_s) - | _ -> - _menhir_fail () - -and _menhir_goto_typs : _menhir_env -> 'ttv_tail -> _menhir_state -> (Type_parsed.t list) -> 'ttv_return = - fun _menhir_env _menhir_stack _menhir_s _v -> - let _menhir_stack = (_menhir_stack, _menhir_s, _v) in - let _menhir_stack = Obj.magic _menhir_stack in - assert (not _menhir_env._menhir_error); - let _tok = _menhir_env._menhir_token in - match _tok with - | WORD _v -> - let _menhir_stack = Obj.magic _menhir_stack in - let _menhir_stack = (_menhir_stack, _v) in - let _menhir_env = _menhir_discard _menhir_env in - let _tok = _menhir_env._menhir_token in - (match _tok with - | WORD _v -> - _menhir_run7 _menhir_env (Obj.magic _menhir_stack) MenhirState6 _v - | ARROW | COMMA | EOF | PARENS_CLOSE | STAR -> - _menhir_reduce1 _menhir_env (Obj.magic _menhir_stack) MenhirState6 - | _ -> - assert (not _menhir_env._menhir_error); - _menhir_env._menhir_error <- true; - _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) MenhirState6) - | ARROW | COMMA | EOF | PARENS_CLOSE | STAR -> - let _menhir_stack = Obj.magic _menhir_stack in - let (_menhir_stack, _menhir_s, (ts : (Type_parsed.t list))) = _menhir_stack in - let _v : (Type_parsed.t) = -# 27 "src/sherlodoc/type_parser.mly" - ( Type_parsed.tuple ts ) -# 328 "src/sherlodoc/type_parser.ml" - in - _menhir_goto_typ1 _menhir_env _menhir_stack _menhir_s _v - | _ -> - assert (not _menhir_env._menhir_error); - _menhir_env._menhir_error <- true; - let _menhir_stack = Obj.magic _menhir_stack in - let (_menhir_stack, _menhir_s, _) = _menhir_stack in - _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) _menhir_s - -and _menhir_goto_typ1 : _menhir_env -> 'ttv_tail -> _menhir_state -> (Type_parsed.t) -> 'ttv_return = - fun _menhir_env _menhir_stack _menhir_s _v -> - let _menhir_stack = (_menhir_stack, _menhir_s, _v) in - let _menhir_stack = Obj.magic _menhir_stack in - assert (not _menhir_env._menhir_error); - let _tok = _menhir_env._menhir_token in - match _tok with - | STAR -> - let _menhir_stack = Obj.magic _menhir_stack in - let _menhir_env = _menhir_discard _menhir_env in - let _tok = _menhir_env._menhir_token in - (match _tok with - | PARENS_OPEN -> - _menhir_run4 _menhir_env (Obj.magic _menhir_stack) MenhirState13 - | POLY _v -> - _menhir_run3 _menhir_env (Obj.magic _menhir_stack) MenhirState13 _v - | WILDCARD -> - _menhir_run2 _menhir_env (Obj.magic _menhir_stack) MenhirState13 - | WORD _v -> - _menhir_run1 _menhir_env (Obj.magic _menhir_stack) MenhirState13 _v - | ARROW | COMMA | EOF | PARENS_CLOSE | STAR -> - _menhir_reduce13 _menhir_env (Obj.magic _menhir_stack) MenhirState13) - | ARROW | COMMA | EOF | PARENS_CLOSE -> - let _menhir_stack = Obj.magic _menhir_stack in - let (_menhir_stack, _menhir_s, (x : (Type_parsed.t))) = _menhir_stack in - let _v : (Type_parsed.t list) = +# 132 "src/sherlodoc/type_parser.ml" + : (Type_parsed.t list)) + +let _menhir_action_05 = + fun x -> + ( # 49 "src/sherlodoc/type_parser.mly" ( [x] ) -# 366 "src/sherlodoc/type_parser.ml" - in - _menhir_goto_list1_typ1_STAR_ _menhir_env _menhir_stack _menhir_s _v - | _ -> - assert (not _menhir_env._menhir_error); - _menhir_env._menhir_error <- true; - let _menhir_stack = Obj.magic _menhir_stack in - let (_menhir_stack, _menhir_s, _) = _menhir_stack in - _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) _menhir_s - -and _menhir_goto_typ0 : _menhir_env -> 'ttv_tail -> _menhir_state -> (Type_parsed.t) -> 'ttv_return = - fun _menhir_env _menhir_stack _menhir_s _v -> - let _menhir_stack = Obj.magic _menhir_stack in - let _menhir_stack = Obj.magic _menhir_stack in - let (t : (Type_parsed.t)) = _v in - let _v : (Type_parsed.t list) = -# 43 "src/sherlodoc/type_parser.mly" - ( [t] ) -# 384 "src/sherlodoc/type_parser.ml" - in - _menhir_goto_typs _menhir_env _menhir_stack _menhir_s _v - -and _menhir_errorcase : _menhir_env -> 'ttv_tail -> _menhir_state -> 'ttv_return = - fun _menhir_env _menhir_stack _menhir_s -> - match _menhir_s with - | MenhirState19 -> - let _menhir_stack = Obj.magic _menhir_stack in - let (_menhir_stack, _menhir_s, _) = _menhir_stack in - _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) _menhir_s - | MenhirState13 -> - let _menhir_stack = Obj.magic _menhir_stack in - let (_menhir_stack, _menhir_s, _) = _menhir_stack in - _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) _menhir_s - | MenhirState11 -> - let _menhir_stack = Obj.magic _menhir_stack in - let (_menhir_stack, _menhir_s, _) = _menhir_stack in - _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) _menhir_s - | MenhirState7 -> - let _menhir_stack = Obj.magic _menhir_stack in - let (_menhir_stack, _menhir_s, _) = _menhir_stack in - _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) _menhir_s - | MenhirState6 -> - let _menhir_stack = Obj.magic _menhir_stack in - let ((_menhir_stack, _menhir_s, _), _) = _menhir_stack in - _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) _menhir_s - | MenhirState4 -> - let _menhir_stack = Obj.magic _menhir_stack in - let (_menhir_stack, _menhir_s) = _menhir_stack in - _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) _menhir_s - | MenhirState0 -> - let _menhir_stack = Obj.magic _menhir_stack in - raise _eRR - -and _menhir_reduce13 : _menhir_env -> 'ttv_tail -> _menhir_state -> 'ttv_return = - fun _menhir_env _menhir_stack _menhir_s -> - let _v : (Type_parsed.t) = -# 26 "src/sherlodoc/type_parser.mly" - ( Type_parsed.Wildcard ) -# 424 "src/sherlodoc/type_parser.ml" - in - _menhir_goto_typ1 _menhir_env _menhir_stack _menhir_s _v +# 140 "src/sherlodoc/type_parser.ml" + : (Type_parsed.t list)) -and _menhir_run1 : _menhir_env -> 'ttv_tail -> _menhir_state -> ( -# 4 "src/sherlodoc/type_parser.mly" - (string) -# 431 "src/sherlodoc/type_parser.ml" -) -> 'ttv_return = - fun _menhir_env _menhir_stack _menhir_s _v -> - let _menhir_env = _menhir_discard _menhir_env in - let _menhir_stack = Obj.magic _menhir_stack in - let (w : ( -# 4 "src/sherlodoc/type_parser.mly" - (string) -# 439 "src/sherlodoc/type_parser.ml" - )) = _v in - let _v : (Type_parsed.t) = -# 38 "src/sherlodoc/type_parser.mly" - ( Type_parsed.Tycon (w, []) ) -# 444 "src/sherlodoc/type_parser.ml" - in - _menhir_goto_typ0 _menhir_env _menhir_stack _menhir_s _v - -and _menhir_run2 : _menhir_env -> 'ttv_tail -> _menhir_state -> 'ttv_return = - fun _menhir_env _menhir_stack _menhir_s -> - let _menhir_env = _menhir_discard _menhir_env in - let _menhir_stack = Obj.magic _menhir_stack in - let _v : (Type_parsed.t) = +let _menhir_action_06 = + fun x xs -> + ( +# 50 "src/sherlodoc/type_parser.mly" + ( x::xs ) +# 148 "src/sherlodoc/type_parser.ml" + : (Type_parsed.t list)) + +let _menhir_action_07 = + fun t -> + ( +# 13 "src/sherlodoc/type_parser.mly" + ( t ) +# 156 "src/sherlodoc/type_parser.ml" + : (Type_parsed.t)) + +let _menhir_action_08 = + fun t -> + ( +# 17 "src/sherlodoc/type_parser.mly" + ( t ) +# 164 "src/sherlodoc/type_parser.ml" + : (Type_parsed.t)) + +let _menhir_action_09 = + fun a b -> + ( +# 18 "src/sherlodoc/type_parser.mly" + ( Type_parsed.Arrow (a, b) ) +# 172 "src/sherlodoc/type_parser.ml" + : (Type_parsed.t)) + +let _menhir_action_10 = + fun () -> + ( # 36 "src/sherlodoc/type_parser.mly" ( Type_parsed.Wildcard ) -# 455 "src/sherlodoc/type_parser.ml" - in - _menhir_goto_typ0 _menhir_env _menhir_stack _menhir_s _v +# 180 "src/sherlodoc/type_parser.ml" + : (Type_parsed.t)) -and _menhir_run3 : _menhir_env -> 'ttv_tail -> _menhir_state -> ( -# 5 "src/sherlodoc/type_parser.mly" - (string) -# 462 "src/sherlodoc/type_parser.ml" -) -> 'ttv_return = - fun _menhir_env _menhir_stack _menhir_s _v -> - let _menhir_env = _menhir_discard _menhir_env in - let _menhir_stack = Obj.magic _menhir_stack in - let (w : ( -# 5 "src/sherlodoc/type_parser.mly" - (string) -# 470 "src/sherlodoc/type_parser.ml" - )) = _v in - let _v : (Type_parsed.t) = +let _menhir_action_11 = + fun w -> + ( # 37 "src/sherlodoc/type_parser.mly" ( Type_parsed.Tyvar w ) -# 475 "src/sherlodoc/type_parser.ml" - in - _menhir_goto_typ0 _menhir_env _menhir_stack _menhir_s _v - -and _menhir_run4 : _menhir_env -> 'ttv_tail -> _menhir_state -> 'ttv_return = - fun _menhir_env _menhir_stack _menhir_s -> - let _menhir_stack = (_menhir_stack, _menhir_s) in - let _menhir_env = _menhir_discard _menhir_env in - let _tok = _menhir_env._menhir_token in - match _tok with - | PARENS_OPEN -> - _menhir_run4 _menhir_env (Obj.magic _menhir_stack) MenhirState4 - | POLY _v -> - _menhir_run3 _menhir_env (Obj.magic _menhir_stack) MenhirState4 _v - | WILDCARD -> - _menhir_run2 _menhir_env (Obj.magic _menhir_stack) MenhirState4 - | WORD _v -> - _menhir_run1 _menhir_env (Obj.magic _menhir_stack) MenhirState4 _v - | ARROW | COMMA | PARENS_CLOSE | STAR -> - _menhir_reduce13 _menhir_env (Obj.magic _menhir_stack) MenhirState4 - | _ -> - assert (not _menhir_env._menhir_error); - _menhir_env._menhir_error <- true; - _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) MenhirState4 - -and _menhir_discard : _menhir_env -> _menhir_env = - fun _menhir_env -> - let lexer = _menhir_env._menhir_lexer in - let lexbuf = _menhir_env._menhir_lexbuf in - let _tok = lexer lexbuf in - { - _menhir_lexer = lexer; - _menhir_lexbuf = lexbuf; - _menhir_token = _tok; - _menhir_error = false; - } - -and main : (Lexing.lexbuf -> token) -> Lexing.lexbuf -> (Type_parsed.t) = - fun lexer lexbuf -> - let _menhir_env = { - _menhir_lexer = lexer; - _menhir_lexbuf = lexbuf; - _menhir_token = Obj.magic (); - _menhir_error = false; - } in - Obj.magic (let _menhir_stack = ((), _menhir_env._menhir_lexbuf.Lexing.lex_curr_p) in - let _menhir_env = _menhir_discard _menhir_env in - let _tok = _menhir_env._menhir_token in +# 188 "src/sherlodoc/type_parser.ml" + : (Type_parsed.t)) + +let _menhir_action_12 = + fun w -> + ( +# 38 "src/sherlodoc/type_parser.mly" + ( Type_parsed.Tycon (w, []) ) +# 196 "src/sherlodoc/type_parser.ml" + : (Type_parsed.t)) + +let _menhir_action_13 = + fun () -> + ( +# 26 "src/sherlodoc/type_parser.mly" + ( Type_parsed.Wildcard ) +# 204 "src/sherlodoc/type_parser.ml" + : (Type_parsed.t)) + +let _menhir_action_14 = + fun ts -> + ( +# 27 "src/sherlodoc/type_parser.mly" + ( Type_parsed.tuple ts ) +# 212 "src/sherlodoc/type_parser.ml" + : (Type_parsed.t)) + +let _menhir_action_15 = + fun ts w ws -> + ( +# 29 "src/sherlodoc/type_parser.mly" + ( + List.fold_left ( fun acc w -> + Type_parsed.Tycon (w, [acc])) (Type_parsed.Tycon (w, ts)) ws + ) +# 223 "src/sherlodoc/type_parser.ml" + : (Type_parsed.t)) + +let _menhir_action_16 = + fun xs -> + ( +# 22 "src/sherlodoc/type_parser.mly" + ( Type_parsed.tuple xs ) +# 231 "src/sherlodoc/type_parser.ml" + : (Type_parsed.t)) + +let _menhir_action_17 = + fun t -> + ( +# 43 "src/sherlodoc/type_parser.mly" + ( [t] ) +# 239 "src/sherlodoc/type_parser.ml" + : (Type_parsed.t list)) + +let _menhir_action_18 = + fun ts -> + ( +# 44 "src/sherlodoc/type_parser.mly" + ( ts ) +# 247 "src/sherlodoc/type_parser.ml" + : (Type_parsed.t list)) + +let _menhir_print_token : token -> string = + fun _tok -> match _tok with + | ARROW -> + "ARROW" + | COMMA -> + "COMMA" + | EOF -> + "EOF" + | PARENS_CLOSE -> + "PARENS_CLOSE" | PARENS_OPEN -> - _menhir_run4 _menhir_env (Obj.magic _menhir_stack) MenhirState0 - | POLY _v -> - _menhir_run3 _menhir_env (Obj.magic _menhir_stack) MenhirState0 _v + "PARENS_OPEN" + | POLY _ -> + "POLY" + | STAR -> + "STAR" | WILDCARD -> - _menhir_run2 _menhir_env (Obj.magic _menhir_stack) MenhirState0 - | WORD _v -> - _menhir_run1 _menhir_env (Obj.magic _menhir_stack) MenhirState0 _v - | ARROW | EOF | STAR -> - _menhir_reduce13 _menhir_env (Obj.magic _menhir_stack) MenhirState0 - | _ -> - assert (not _menhir_env._menhir_error); - _menhir_env._menhir_error <- true; - _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) MenhirState0) - -# 269 "" + "WILDCARD" + | WORD _ -> + "WORD" + +let _menhir_fail : unit -> 'a = + fun () -> + Printf.eprintf "Internal failure -- please contact the parser generator's developers.\n%!"; + assert false + +include struct + + [@@@ocaml.warning "-4-37"] + + let _menhir_run_23 : type ttv_stack. ttv_stack -> _ -> _ -> _menhir_box_main = + fun _menhir_stack _v _tok -> + match (_tok : MenhirBasics.token) with + | EOF -> + let t = _v in + let _v = _menhir_action_07 t in + MenhirBox_main _v + | _ -> + _eRR () + + let rec _menhir_run_01 : type ttv_stack. ttv_stack -> _ -> _ -> _ -> (ttv_stack, _menhir_box_main) _menhir_state -> _menhir_box_main = + fun _menhir_stack _menhir_lexbuf _menhir_lexer _v _menhir_s -> + let _tok = _menhir_lexer _menhir_lexbuf in + let w = _v in + let _v = _menhir_action_12 w in + _menhir_goto_typ0 _menhir_stack _menhir_lexbuf _menhir_lexer _v _menhir_s _tok + + and _menhir_goto_typ0 : type ttv_stack. ttv_stack -> _ -> _ -> _ -> (ttv_stack, _menhir_box_main) _menhir_state -> _ -> _menhir_box_main = + fun _menhir_stack _menhir_lexbuf _menhir_lexer _v _menhir_s _tok -> + let t = _v in + let _v = _menhir_action_17 t in + _menhir_goto_typs _menhir_stack _menhir_lexbuf _menhir_lexer _v _menhir_s _tok + + and _menhir_goto_typs : type ttv_stack. ttv_stack -> _ -> _ -> _ -> (ttv_stack, _menhir_box_main) _menhir_state -> _ -> _menhir_box_main = + fun _menhir_stack _menhir_lexbuf _menhir_lexer _v _menhir_s _tok -> + match (_tok : MenhirBasics.token) with + | WORD _v_0 -> + let _menhir_stack = MenhirCell1_typs (_menhir_stack, _menhir_s, _v) in + let _menhir_stack = MenhirCell0_WORD (_menhir_stack, _v_0) in + let _tok = _menhir_lexer _menhir_lexbuf in + (match (_tok : MenhirBasics.token) with + | WORD _v_1 -> + _menhir_run_07 _menhir_stack _menhir_lexbuf _menhir_lexer _v_1 MenhirState06 + | ARROW | COMMA | EOF | PARENS_CLOSE | STAR -> + let _v_2 = _menhir_action_01 () in + _menhir_run_09 _menhir_stack _menhir_lexbuf _menhir_lexer _v_2 _tok + | _ -> + _eRR ()) + | ARROW | COMMA | EOF | PARENS_CLOSE | STAR -> + let ts = _v in + let _v = _menhir_action_14 ts in + _menhir_goto_typ1 _menhir_stack _menhir_lexbuf _menhir_lexer _v _menhir_s _tok + | _ -> + _eRR () + + and _menhir_run_07 : type ttv_stack. ttv_stack -> _ -> _ -> _ -> (ttv_stack, _menhir_box_main) _menhir_state -> _menhir_box_main = + fun _menhir_stack _menhir_lexbuf _menhir_lexer _v _menhir_s -> + let _menhir_stack = MenhirCell1_WORD (_menhir_stack, _menhir_s, _v) in + let _tok = _menhir_lexer _menhir_lexbuf in + match (_tok : MenhirBasics.token) with + | WORD _v_0 -> + _menhir_run_07 _menhir_stack _menhir_lexbuf _menhir_lexer _v_0 MenhirState07 + | ARROW | COMMA | EOF | PARENS_CLOSE | STAR -> + let _v_1 = _menhir_action_01 () in + _menhir_run_08 _menhir_stack _menhir_lexbuf _menhir_lexer _v_1 _tok + | _ -> + _eRR () + and _menhir_run_08 : type ttv_stack. (ttv_stack, _menhir_box_main) _menhir_cell1_WORD -> _ -> _ -> _ -> _ -> _menhir_box_main = + fun _menhir_stack _menhir_lexbuf _menhir_lexer _v _tok -> + let MenhirCell1_WORD (_menhir_stack, _menhir_s, x) = _menhir_stack in + let xs = _v in + let _v = _menhir_action_02 x xs in + _menhir_goto_list_WORD_ _menhir_stack _menhir_lexbuf _menhir_lexer _v _menhir_s _tok + + and _menhir_goto_list_WORD_ : type ttv_stack. ttv_stack -> _ -> _ -> _ -> (ttv_stack, _menhir_box_main) _menhir_state -> _ -> _menhir_box_main = + fun _menhir_stack _menhir_lexbuf _menhir_lexer _v _menhir_s _tok -> + match _menhir_s with + | MenhirState06 -> + _menhir_run_09 _menhir_stack _menhir_lexbuf _menhir_lexer _v _tok + | MenhirState07 -> + _menhir_run_08 _menhir_stack _menhir_lexbuf _menhir_lexer _v _tok + | _ -> + _menhir_fail () + + and _menhir_run_09 : type ttv_stack. (ttv_stack, _menhir_box_main) _menhir_cell1_typs _menhir_cell0_WORD -> _ -> _ -> _ -> _ -> _menhir_box_main = + fun _menhir_stack _menhir_lexbuf _menhir_lexer _v _tok -> + let MenhirCell0_WORD (_menhir_stack, w) = _menhir_stack in + let MenhirCell1_typs (_menhir_stack, _menhir_s, ts) = _menhir_stack in + let ws = _v in + let _v = _menhir_action_15 ts w ws in + _menhir_goto_typ1 _menhir_stack _menhir_lexbuf _menhir_lexer _v _menhir_s _tok + + and _menhir_goto_typ1 : type ttv_stack. ttv_stack -> _ -> _ -> _ -> (ttv_stack, _menhir_box_main) _menhir_state -> _ -> _menhir_box_main = + fun _menhir_stack _menhir_lexbuf _menhir_lexer _v _menhir_s _tok -> + match (_tok : MenhirBasics.token) with + | STAR -> + let _menhir_stack = MenhirCell1_typ1 (_menhir_stack, _menhir_s, _v) in + let _menhir_s = MenhirState13 in + let _tok = _menhir_lexer _menhir_lexbuf in + (match (_tok : MenhirBasics.token) with + | WORD _v -> + _menhir_run_01 _menhir_stack _menhir_lexbuf _menhir_lexer _v _menhir_s + | WILDCARD -> + _menhir_run_02 _menhir_stack _menhir_lexbuf _menhir_lexer _menhir_s + | POLY _v -> + _menhir_run_03 _menhir_stack _menhir_lexbuf _menhir_lexer _v _menhir_s + | PARENS_OPEN -> + _menhir_run_04 _menhir_stack _menhir_lexbuf _menhir_lexer _menhir_s + | ARROW | COMMA | EOF | PARENS_CLOSE | STAR -> + _menhir_reduce_13 _menhir_stack _menhir_lexbuf _menhir_lexer _menhir_s _tok) + | ARROW | COMMA | EOF | PARENS_CLOSE -> + let x = _v in + let _v = _menhir_action_05 x in + _menhir_goto_list1_typ1_STAR_ _menhir_stack _menhir_lexbuf _menhir_lexer _v _menhir_s _tok + | _ -> + _menhir_fail () + + and _menhir_run_02 : type ttv_stack. ttv_stack -> _ -> _ -> (ttv_stack, _menhir_box_main) _menhir_state -> _menhir_box_main = + fun _menhir_stack _menhir_lexbuf _menhir_lexer _menhir_s -> + let _tok = _menhir_lexer _menhir_lexbuf in + let _v = _menhir_action_10 () in + _menhir_goto_typ0 _menhir_stack _menhir_lexbuf _menhir_lexer _v _menhir_s _tok + + and _menhir_run_03 : type ttv_stack. ttv_stack -> _ -> _ -> _ -> (ttv_stack, _menhir_box_main) _menhir_state -> _menhir_box_main = + fun _menhir_stack _menhir_lexbuf _menhir_lexer _v _menhir_s -> + let _tok = _menhir_lexer _menhir_lexbuf in + let w = _v in + let _v = _menhir_action_11 w in + _menhir_goto_typ0 _menhir_stack _menhir_lexbuf _menhir_lexer _v _menhir_s _tok + + and _menhir_run_04 : type ttv_stack. ttv_stack -> _ -> _ -> (ttv_stack, _menhir_box_main) _menhir_state -> _menhir_box_main = + fun _menhir_stack _menhir_lexbuf _menhir_lexer _menhir_s -> + let _menhir_stack = MenhirCell1_PARENS_OPEN (_menhir_stack, _menhir_s) in + let _menhir_s = MenhirState04 in + let _tok = _menhir_lexer _menhir_lexbuf in + match (_tok : MenhirBasics.token) with + | WORD _v -> + _menhir_run_01 _menhir_stack _menhir_lexbuf _menhir_lexer _v _menhir_s + | WILDCARD -> + _menhir_run_02 _menhir_stack _menhir_lexbuf _menhir_lexer _menhir_s + | POLY _v -> + _menhir_run_03 _menhir_stack _menhir_lexbuf _menhir_lexer _v _menhir_s + | PARENS_OPEN -> + _menhir_run_04 _menhir_stack _menhir_lexbuf _menhir_lexer _menhir_s + | ARROW | COMMA | PARENS_CLOSE | STAR -> + _menhir_reduce_13 _menhir_stack _menhir_lexbuf _menhir_lexer _menhir_s _tok + | _ -> + _eRR () + + and _menhir_reduce_13 : type ttv_stack. ttv_stack -> _ -> _ -> (ttv_stack, _menhir_box_main) _menhir_state -> _ -> _menhir_box_main = + fun _menhir_stack _menhir_lexbuf _menhir_lexer _menhir_s _tok -> + let _v = _menhir_action_13 () in + _menhir_goto_typ1 _menhir_stack _menhir_lexbuf _menhir_lexer _v _menhir_s _tok + + and _menhir_goto_list1_typ1_STAR_ : type ttv_stack. ttv_stack -> _ -> _ -> _ -> (ttv_stack, _menhir_box_main) _menhir_state -> _ -> _menhir_box_main = + fun _menhir_stack _menhir_lexbuf _menhir_lexer _v _menhir_s _tok -> + match _menhir_s with + | MenhirState00 -> + _menhir_run_17 _menhir_stack _menhir_lexbuf _menhir_lexer _v _menhir_s _tok + | MenhirState04 -> + _menhir_run_17 _menhir_stack _menhir_lexbuf _menhir_lexer _v _menhir_s _tok + | MenhirState19 -> + _menhir_run_17 _menhir_stack _menhir_lexbuf _menhir_lexer _v _menhir_s _tok + | MenhirState11 -> + _menhir_run_17 _menhir_stack _menhir_lexbuf _menhir_lexer _v _menhir_s _tok + | MenhirState13 -> + _menhir_run_15 _menhir_stack _menhir_lexbuf _menhir_lexer _v _tok + | _ -> + _menhir_fail () + + and _menhir_run_17 : type ttv_stack. ttv_stack -> _ -> _ -> _ -> (ttv_stack, _menhir_box_main) _menhir_state -> _ -> _menhir_box_main = + fun _menhir_stack _menhir_lexbuf _menhir_lexer _v _menhir_s _tok -> + let xs = _v in + let _v = _menhir_action_16 xs in + match (_tok : MenhirBasics.token) with + | ARROW -> + let _menhir_stack = MenhirCell1_typ2 (_menhir_stack, _menhir_s, _v) in + let _menhir_s = MenhirState11 in + let _tok = _menhir_lexer _menhir_lexbuf in + (match (_tok : MenhirBasics.token) with + | WORD _v -> + _menhir_run_01 _menhir_stack _menhir_lexbuf _menhir_lexer _v _menhir_s + | WILDCARD -> + _menhir_run_02 _menhir_stack _menhir_lexbuf _menhir_lexer _menhir_s + | POLY _v -> + _menhir_run_03 _menhir_stack _menhir_lexbuf _menhir_lexer _v _menhir_s + | PARENS_OPEN -> + _menhir_run_04 _menhir_stack _menhir_lexbuf _menhir_lexer _menhir_s + | ARROW | COMMA | EOF | PARENS_CLOSE | STAR -> + _menhir_reduce_13 _menhir_stack _menhir_lexbuf _menhir_lexer _menhir_s _tok) + | COMMA | EOF | PARENS_CLOSE -> + let t = _v in + let _v = _menhir_action_08 t in + _menhir_goto_typ _menhir_stack _menhir_lexbuf _menhir_lexer _v _menhir_s _tok + | _ -> + _menhir_fail () + + and _menhir_goto_typ : type ttv_stack. ttv_stack -> _ -> _ -> _ -> (ttv_stack, _menhir_box_main) _menhir_state -> _ -> _menhir_box_main = + fun _menhir_stack _menhir_lexbuf _menhir_lexer _v _menhir_s _tok -> + match _menhir_s with + | MenhirState00 -> + _menhir_run_23 _menhir_stack _v _tok + | MenhirState19 -> + _menhir_run_18 _menhir_stack _menhir_lexbuf _menhir_lexer _v _menhir_s _tok + | MenhirState04 -> + _menhir_run_18 _menhir_stack _menhir_lexbuf _menhir_lexer _v _menhir_s _tok + | MenhirState11 -> + _menhir_run_16 _menhir_stack _menhir_lexbuf _menhir_lexer _v _tok + | _ -> + _menhir_fail () + + and _menhir_run_18 : type ttv_stack. ttv_stack -> _ -> _ -> _ -> (ttv_stack, _menhir_box_main) _menhir_state -> _ -> _menhir_box_main = + fun _menhir_stack _menhir_lexbuf _menhir_lexer _v _menhir_s _tok -> + match (_tok : MenhirBasics.token) with + | COMMA -> + let _menhir_stack = MenhirCell1_typ (_menhir_stack, _menhir_s, _v) in + let _menhir_s = MenhirState19 in + let _tok = _menhir_lexer _menhir_lexbuf in + (match (_tok : MenhirBasics.token) with + | WORD _v -> + _menhir_run_01 _menhir_stack _menhir_lexbuf _menhir_lexer _v _menhir_s + | WILDCARD -> + _menhir_run_02 _menhir_stack _menhir_lexbuf _menhir_lexer _menhir_s + | POLY _v -> + _menhir_run_03 _menhir_stack _menhir_lexbuf _menhir_lexer _v _menhir_s + | PARENS_OPEN -> + _menhir_run_04 _menhir_stack _menhir_lexbuf _menhir_lexer _menhir_s + | ARROW | COMMA | PARENS_CLOSE | STAR -> + _menhir_reduce_13 _menhir_stack _menhir_lexbuf _menhir_lexer _menhir_s _tok + | _ -> + _eRR ()) + | PARENS_CLOSE -> + let x = _v in + let _v = _menhir_action_03 x in + _menhir_goto_list1_typ_COMMA_ _menhir_stack _menhir_lexbuf _menhir_lexer _v _menhir_s + | _ -> + _eRR () + + and _menhir_goto_list1_typ_COMMA_ : type ttv_stack. ttv_stack -> _ -> _ -> _ -> (ttv_stack, _menhir_box_main) _menhir_state -> _menhir_box_main = + fun _menhir_stack _menhir_lexbuf _menhir_lexer _v _menhir_s -> + match _menhir_s with + | MenhirState04 -> + _menhir_run_21 _menhir_stack _menhir_lexbuf _menhir_lexer _v + | MenhirState19 -> + _menhir_run_20 _menhir_stack _menhir_lexbuf _menhir_lexer _v + | _ -> + _menhir_fail () + + and _menhir_run_21 : type ttv_stack. (ttv_stack, _menhir_box_main) _menhir_cell1_PARENS_OPEN -> _ -> _ -> _ -> _menhir_box_main = + fun _menhir_stack _menhir_lexbuf _menhir_lexer _v -> + let _tok = _menhir_lexer _menhir_lexbuf in + let MenhirCell1_PARENS_OPEN (_menhir_stack, _menhir_s) = _menhir_stack in + let ts = _v in + let _v = _menhir_action_18 ts in + _menhir_goto_typs _menhir_stack _menhir_lexbuf _menhir_lexer _v _menhir_s _tok + + and _menhir_run_20 : type ttv_stack. (ttv_stack, _menhir_box_main) _menhir_cell1_typ -> _ -> _ -> _ -> _menhir_box_main = + fun _menhir_stack _menhir_lexbuf _menhir_lexer _v -> + let MenhirCell1_typ (_menhir_stack, _menhir_s, x) = _menhir_stack in + let xs = _v in + let _v = _menhir_action_04 x xs in + _menhir_goto_list1_typ_COMMA_ _menhir_stack _menhir_lexbuf _menhir_lexer _v _menhir_s + + and _menhir_run_16 : type ttv_stack. (ttv_stack, _menhir_box_main) _menhir_cell1_typ2 -> _ -> _ -> _ -> _ -> _menhir_box_main = + fun _menhir_stack _menhir_lexbuf _menhir_lexer _v _tok -> + let MenhirCell1_typ2 (_menhir_stack, _menhir_s, a) = _menhir_stack in + let b = _v in + let _v = _menhir_action_09 a b in + _menhir_goto_typ _menhir_stack _menhir_lexbuf _menhir_lexer _v _menhir_s _tok + + and _menhir_run_15 : type ttv_stack. (ttv_stack, _menhir_box_main) _menhir_cell1_typ1 -> _ -> _ -> _ -> _ -> _menhir_box_main = + fun _menhir_stack _menhir_lexbuf _menhir_lexer _v _tok -> + let MenhirCell1_typ1 (_menhir_stack, _menhir_s, x) = _menhir_stack in + let xs = _v in + let _v = _menhir_action_06 x xs in + _menhir_goto_list1_typ1_STAR_ _menhir_stack _menhir_lexbuf _menhir_lexer _v _menhir_s _tok + + let _menhir_run_00 : type ttv_stack. ttv_stack -> _ -> _ -> _menhir_box_main = + fun _menhir_stack _menhir_lexbuf _menhir_lexer -> + let _menhir_s = MenhirState00 in + let _tok = _menhir_lexer _menhir_lexbuf in + match (_tok : MenhirBasics.token) with + | WORD _v -> + _menhir_run_01 _menhir_stack _menhir_lexbuf _menhir_lexer _v _menhir_s + | WILDCARD -> + _menhir_run_02 _menhir_stack _menhir_lexbuf _menhir_lexer _menhir_s + | POLY _v -> + _menhir_run_03 _menhir_stack _menhir_lexbuf _menhir_lexer _v _menhir_s + | PARENS_OPEN -> + _menhir_run_04 _menhir_stack _menhir_lexbuf _menhir_lexer _menhir_s + | ARROW | EOF | STAR -> + _menhir_reduce_13 _menhir_stack _menhir_lexbuf _menhir_lexer _menhir_s _tok + | _ -> + _eRR () + +end -# 542 "src/sherlodoc/type_parser.ml" +let main = + fun _menhir_lexer _menhir_lexbuf -> + let _menhir_stack = () in + let MenhirBox_main v = _menhir_run_00 _menhir_stack _menhir_lexbuf _menhir_lexer in + v From e7416da38a5e74dd3a1654a0292260883377521f Mon Sep 17 00:00:00 2001 From: Richard Eisenberg Date: Tue, 11 Feb 2025 17:28:06 -0500 Subject: [PATCH 06/25] Promote new test output (after checking it all) --- tests/test-dirs/function-recovery.t | 32 ++--- tests/test-dirs/hidden-deps/dash-h.t | 2 +- tests/test-dirs/occurrences/issue1404.t | 2 +- .../occurrences/project-wide/pwo-basic.t | 2 +- .../occurrences/project-wide/pwo-relative.t | 2 +- tests/test-dirs/search/search-by-type.t/run.t | 40 +++--- .../server-tests/typer-cache/stamps.t/run.t | 20 +-- tests/test-dirs/type-enclosing/types.t/run.t | 4 +- .../test-dirs/type-enclosing/underscore-ids.t | 16 +-- tests/test-dirs/type-expr.t/run.t | 136 +++++++++--------- tests/test-dirs/typing-recovery.t | 70 ++++----- 11 files changed, 166 insertions(+), 160 deletions(-) diff --git a/tests/test-dirs/function-recovery.t b/tests/test-dirs/function-recovery.t index 8822562a0..364b09098 100644 --- a/tests/test-dirs/function-recovery.t +++ b/tests/test-dirs/function-recovery.t @@ -10,7 +10,7 @@ "value": "[ structure_item (test.ml[1,0+0]..test.ml[3,104+28]) Tstr_module - ERROR_locate_from_inside_function_literal_used_as_non_function/277 + ERROR_locate_from_inside_function_literal_used_as_non_function/281 module_expr (test.ml[1,0+72]..test.ml[3,104+28]) Tmod_structure [ @@ -19,8 +19,8 @@ [ pattern (test.ml[2,79+6]..test.ml[2,79+13]) - Tpat_var \"problem/275\" - value_mode meet(local,once,nonportable,yielding)(modevar#0[global,many,portable,unyielding .. global,many,nonportable,unyielding]);join(aliased,contended)(modevar#1[aliased,uncontended .. unique,uncontended]) + Tpat_var \"problem/279\" + value_mode meet(local,once,nonportable,yielding)(modevar#0[global,many,portable,unyielding .. global,many,nonportable,unyielding]);join(aliased,contended)(modevar#1[aliased,contended .. unique,uncontended]) expression (test.ml[2,79+16]..test.ml[2,79+24]) Texp_variant \"Problem\" None @@ -35,7 +35,7 @@ None expression (test.ml[3,104+11]..test.ml[3,104+28]) Texp_function - alloc_mode id(modevar#d[global,many,portable,unyielding .. local,once,nonportable,yielding]);id(modevar#e[aliased,contended .. unique,uncontended]) + alloc_mode id(modevar#f[global,many,portable,unyielding .. local,once,nonportable,yielding]);id(modevar#10[aliased,contended .. unique,uncontended]) [] Tfunction_body expression (test.ml[3,104+11]..test.ml[3,104+28]) @@ -48,7 +48,7 @@ expression (_none_[0,0+-1]..[0,0+-1]) ghost Pexp_constant PConst_int (1,None) ] - Texp_ident \"*type-error*/276\" + Texp_ident \"*type-error*/280\" ] ] ] @@ -68,8 +68,8 @@ [ pattern (type.ml[1,0+4]..type.ml[1,0+5]) - Tpat_var \"f/275\" - value_mode meet(local,once,nonportable,yielding)(modevar#0[global,many,portable,unyielding .. global,many,nonportable,unyielding]);join(aliased,contended)(modevar#1[aliased,uncontended .. unique,uncontended]) + Tpat_var \"f/279\" + value_mode meet(local,once,nonportable,yielding)(modevar#0[global,many,portable,unyielding .. global,many,nonportable,unyielding]);join(aliased,contended)(modevar#1[aliased,contended .. unique,uncontended]) expression (type.ml[1,0+8]..type.ml[1,0+61]) extra Texp_newtype t @@ -85,10 +85,10 @@ Ttyp_constr \"list/11!\" [ core_type (type.ml[1,0+28]..type.ml[1,0+29]) - Ttyp_constr \"t/277\" + Ttyp_constr \"t/281\" [] ] - Tpat_var \"foo/278\" + Tpat_var \"foo/282\" value_mode map_comonadic(local_to_regional)(modevar#4[global,many,portable,unyielding .. local,once,nonportable,yielding]);join(aliased,contended)(modevar#5[aliased,contended .. unique,uncontended]) ] Tfunction_body @@ -100,7 +100,7 @@ extra Tpat_extra_constraint core_type (type.ml[1,0+48]..type.ml[1,0+49]) - Ttyp_constr \"t/277\" + Ttyp_constr \"t/281\" [] Tpat_any expression (type.ml[1,0+53]..type.ml[1,0+55]) @@ -113,7 +113,7 @@ expression (_none_[0,0+-1]..[0,0+-1]) ghost Pexp_constant PConst_int (1,None) ] - Texp_ident \"*type-error*/279\" + Texp_ident \"*type-error*/283\" ] expression (type.ml[1,0+59]..type.ml[1,0+61]) attribute \"merlin.loc\" @@ -192,8 +192,8 @@ "ghost": false, "attrs": [], "kind": "pattern (test.ml[1,0+4]..test.ml[1,0+5]) - Tpat_var \"f/275\" - value_mode meet(local,once,nonportable,yielding)(modevar#0[global,many,portable,unyielding .. global,many,nonportable,unyielding]);join(aliased,contended)(modevar#1[aliased,uncontended .. unique,uncontended]) + Tpat_var \"f/279\" + value_mode meet(local,once,nonportable,yielding)(modevar#0[global,many,portable,unyielding .. global,many,nonportable,unyielding]);join(aliased,contended)(modevar#1[aliased,contended .. unique,uncontended]) ", "children": [] }, @@ -224,7 +224,7 @@ "ghost": false, "attrs": [], "kind": "pattern (test.ml[1,0+6]..test.ml[1,0+9]) - Tpat_var \"x/277\" + Tpat_var \"x/281\" value_mode map_comonadic(local_to_regional)(modevar#4[global,many,portable,unyielding .. local,once,nonportable,yielding]);join(aliased,contended)(modevar#5[aliased,contended .. unique,uncontended]) ", "children": [] @@ -455,7 +455,7 @@ Tpat_construct \"Some\" [ pattern (test.ml[4,57+9]..test.ml[4,57+12]) - Tpat_var \"_aa/278\" + Tpat_var \"_aa/282\" value_mode global,many,portable,unyielding;unique,uncontended ] None @@ -474,7 +474,7 @@ "ghost": false, "attrs": [], "kind": "pattern (test.ml[4,57+9]..test.ml[4,57+12]) - Tpat_var \"_aa/278\" + Tpat_var \"_aa/282\" value_mode global,many,portable,unyielding;unique,uncontended ", "children": [] diff --git a/tests/test-dirs/hidden-deps/dash-h.t b/tests/test-dirs/hidden-deps/dash-h.t index 8f2cdc76c..fe1a6cac2 100644 --- a/tests/test-dirs/hidden-deps/dash-h.t +++ b/tests/test-dirs/hidden-deps/dash-h.t @@ -90,7 +90,7 @@ the type) "line": 4, "col": 12 }, - "type": "sig type t = int val x : int type s = Baz end", + "type": "sig type t = int val x : int @@ portable type s = Baz end", "tail": "no" }, { diff --git a/tests/test-dirs/occurrences/issue1404.t b/tests/test-dirs/occurrences/issue1404.t index ba6eebe9a..ed088f70e 100644 --- a/tests/test-dirs/occurrences/issue1404.t +++ b/tests/test-dirs/occurrences/issue1404.t @@ -83,7 +83,7 @@ locate position 2:1 returns the definition of [(+)] { "file": "lib/ocaml/stdlib.mli", "pos": { - "line": 339, + "line": 341, "col": 9 } } diff --git a/tests/test-dirs/occurrences/project-wide/pwo-basic.t b/tests/test-dirs/occurrences/project-wide/pwo-basic.t index cfa4893e7..0f3f8c5b9 100644 --- a/tests/test-dirs/occurrences/project-wide/pwo-basic.t +++ b/tests/test-dirs/occurrences/project-wide/pwo-basic.t @@ -16,7 +16,7 @@ "foo": File "lib.ml", line 1, characters 4-7; "foo": File "lib.ml", line 2, characters 22-25; "Lib.foo": File "main.ml", line 1, characters 22-29 - uid: Stdlib.312; locs: + uid: Stdlib.313; locs: "print_string": File "lib.ml", line 2, characters 9-21; "print_string": File "main.ml", line 1, characters 9-21 }, 0 approx shapes: {}, and shapes for CUS . diff --git a/tests/test-dirs/occurrences/project-wide/pwo-relative.t b/tests/test-dirs/occurrences/project-wide/pwo-relative.t index 5be3372de..8b88c7fa8 100644 --- a/tests/test-dirs/occurrences/project-wide/pwo-relative.t +++ b/tests/test-dirs/occurrences/project-wide/pwo-relative.t @@ -30,7 +30,7 @@ Build indices "Foo.bar": File "./main/main.ml", line 1, characters 8-15; "Foo.bar": File "./main/main.ml", line 2, characters 22-29 uid: Main.0; locs: "x": File "./main/main.ml", line 1, characters 4-5 - uid: Stdlib.312; locs: + uid: Stdlib.313; locs: "print_string": File "./lib/foo.ml", line 2, characters 9-21; "print_string": File "./main/main.ml", line 2, characters 9-21 }, 0 approx shapes: {}, and shapes for CUS . diff --git a/tests/test-dirs/search/search-by-type.t/run.t b/tests/test-dirs/search/search-by-type.t/run.t index 798bf62a8..f8a02d2c6 100644 --- a/tests/test-dirs/search/search-by-type.t/run.t +++ b/tests/test-dirs/search/search-by-type.t/run.t @@ -136,11 +136,11 @@ { "file": "hashtbl.mli", "start": { - "line": 119, + "line": 121, "col": 0 }, "end": { - "line": 119, + "line": 121, "col": 40 }, "name": "Hashtbl.add", @@ -152,11 +152,11 @@ { "file": "hashtbl.mli", "start": { - "line": 154, + "line": 156, "col": 0 }, "end": { - "line": 154, + "line": 156, "col": 44 }, "name": "Hashtbl.replace", @@ -168,11 +168,11 @@ { "file": "hashtbl.mli", "start": { - "line": 304, + "line": 306, "col": 0 }, "end": { - "line": 304, + "line": 306, "col": 50 }, "name": "Hashtbl.add_seq", @@ -184,11 +184,11 @@ { "file": "hashtbl.mli", "start": { - "line": 308, + "line": 310, "col": 0 }, "end": { - "line": 308, + "line": 310, "col": 54 }, "name": "Hashtbl.replace_seq", @@ -200,11 +200,11 @@ { "file": "stdlib/either.mli", "start": { - "line": 86, + "line": 88, "col": 0 }, "end": { - "line": 87, + "line": 89, "col": 73 }, "name": "Either.map", @@ -218,11 +218,11 @@ { "file": "moreLabels.mli", "start": { - "line": 138, + "line": 140, "col": 2 }, "end": { - "line": 138, + "line": 140, "col": 51 }, "name": "MoreLabels.Hashtbl.add", @@ -234,11 +234,11 @@ { "file": "moreLabels.mli", "start": { - "line": 323, + "line": 325, "col": 2 }, "end": { - "line": 323, + "line": 325, "col": 52 }, "name": "MoreLabels.Hashtbl.add_seq", @@ -250,11 +250,11 @@ { "file": "moreLabels.mli", "start": { - "line": 173, + "line": 175, "col": 2 }, "end": { - "line": 173, + "line": 175, "col": 55 }, "name": "MoreLabels.Hashtbl.replace", @@ -266,11 +266,11 @@ { "file": "moreLabels.mli", "start": { - "line": 327, + "line": 329, "col": 2 }, "end": { - "line": 327, + "line": 329, "col": 56 }, "name": "MoreLabels.Hashtbl.replace_seq", @@ -282,11 +282,11 @@ { "file": "ephemeron.mli", "start": { - "line": 206, + "line": 218, "col": 2 }, "end": { - "line": 206, + "line": 218, "col": 55 }, "name": "Ephemeron.K2.query", diff --git a/tests/test-dirs/server-tests/typer-cache/stamps.t/run.t b/tests/test-dirs/server-tests/typer-cache/stamps.t/run.t index 96f7f744a..30313e4a4 100644 --- a/tests/test-dirs/server-tests/typer-cache/stamps.t/run.t +++ b/tests/test-dirs/server-tests/typer-cache/stamps.t/run.t @@ -8,31 +8,31 @@ buffers, and different runs for the same buffer: $ echo "let f x = x" | \ > $MERLIN server dump -what browse -filename test.ml | \ > sed 's:\\n:\n:g' | grep Tpat_var - Tpat_var \"f/275\" - Tpat_var \"x/277\" + Tpat_var \"f/279\" + Tpat_var \"x/281\" $ echo "let f x = let () = () in x" | \ > $MERLIN server dump -what browse -filename test.ml | \ > sed 's:\\n:\n:g' | grep Tpat_var - Tpat_var \"f/278\" - Tpat_var \"x/280\" + Tpat_var \"f/282\" + Tpat_var \"x/284\" $ echo "let f x = x" | \ > $MERLIN server dump -what browse -filename other_test.ml | \ > sed 's:\\n:\n:g' | grep Tpat_var - Tpat_var \"f/275\" - Tpat_var \"x/277\" + Tpat_var \"f/279\" + Tpat_var \"x/281\" $ echo "let f x = let () = () in x" | \ > $MERLIN server dump -what browse -filename test.ml | \ > sed 's:\\n:\n:g' | grep Tpat_var - Tpat_var \"f/278\" - Tpat_var \"x/280\" + Tpat_var \"f/282\" + Tpat_var \"x/284\" $ echo "let f x = x" | \ > $MERLIN server dump -what browse -filename test.ml | \ > sed 's:\\n:\n:g' | grep Tpat_var - Tpat_var \"f/281\" - Tpat_var \"x/283\" + Tpat_var \"f/285\" + Tpat_var \"x/287\" $ $MERLIN server stop-server diff --git a/tests/test-dirs/type-enclosing/types.t/run.t b/tests/test-dirs/type-enclosing/types.t/run.t index 4a71cbdb5..dbe9b3fa3 100644 --- a/tests/test-dirs/type-enclosing/types.t/run.t +++ b/tests/test-dirs/type-enclosing/types.t/run.t @@ -113,7 +113,7 @@ FIXME: A type with a type param shouldn't equal itself - aliasing a list type } ] -Same result regardless of verbosity: +Print inferred kind of a type with higher verbosity $ $MERLIN single type-enclosing -short-paths -position 11:9 -verbosity 1 \ > -filename ./types.ml < ./types.ml | jq ".value" @@ -127,7 +127,7 @@ Same result regardless of verbosity: "line": 11, "col": 19 }, - "type": "type 'a l = 'a l", + "type": "type 'a l : immutable_data = 'a l", "tail": "no" } ] diff --git a/tests/test-dirs/type-enclosing/underscore-ids.t b/tests/test-dirs/type-enclosing/underscore-ids.t index f05e7fb46..eadc57784 100644 --- a/tests/test-dirs/type-enclosing/underscore-ids.t +++ b/tests/test-dirs/type-enclosing/underscore-ids.t @@ -371,8 +371,8 @@ We try several places in the identifier to check the result stability [ pattern (under.ml[1,0+4]..under.ml[1,0+6]) - Tpat_var \"aa/275\" - value_mode meet(local,once,nonportable,yielding)(modevar#0[global,many,portable,unyielding .. global,many,nonportable,unyielding]);join(aliased,contended)(modevar#1[aliased,uncontended .. unique,uncontended]) + Tpat_var \"aa/279\" + value_mode meet(local,once,nonportable,yielding)(modevar#0[global,many,portable,unyielding .. global,many,nonportable,unyielding]);join(aliased,contended)(modevar#1[aliased,contended .. unique,uncontended]) expression (under.ml[1,0+9]..under.ml[1,0+12]) Texp_constant Const_float 4.2 ] @@ -381,17 +381,17 @@ We try several places in the identifier to check the result stability [ pattern (under.ml[2,13+4]..under.ml[2,13+5]) - Tpat_var \"f/276\" - value_mode meet(local,once,nonportable,yielding)(modevar#3[global,many,portable,unyielding .. global,many,nonportable,unyielding]);join(aliased,contended)(modevar#4[aliased,uncontended .. unique,uncontended]) + Tpat_var \"f/280\" + value_mode meet(local,once,nonportable,yielding)(modevar#5[global,many,portable,unyielding .. global,many,nonportable,unyielding]);join(aliased,contended)(modevar#6[aliased,contended .. unique,uncontended]) expression (under.ml[2,13+6]..under.ml[5,70+17]) ghost Texp_function - alloc_mode map_comonadic(regional_to_global)(modevar#5[global,many,portable,unyielding .. global,many,nonportable,unyielding]);id(modevar#6[aliased,contended .. unique,uncontended]) + alloc_mode map_comonadic(regional_to_global)(modevar#7[global,many,portable,unyielding .. global,many,nonportable,unyielding]);id(modevar#8[aliased,contended .. unique,uncontended]) [ Nolabel Param_pat pattern (under.ml[2,13+6]..under.ml[2,13+9]) - Tpat_var \"x/278\" - value_mode map_comonadic(local_to_regional)(modevar#7[global,many,portable,unyielding .. local,once,nonportable,yielding]);join(aliased,contended)(modevar#8[aliased,contended .. unique,uncontended]) + Tpat_var \"x/282\" + value_mode map_comonadic(local_to_regional)(modevar#9[global,many,portable,unyielding .. local,once,nonportable,yielding]);join(aliased,contended)(modevar#a[aliased,contended .. unique,uncontended]) ] Tfunction_body expression (under.ml[2,13+18]..under.ml[5,70+17]) @@ -404,7 +404,7 @@ We try several places in the identifier to check the result stability expression (_none_[0,0+-1]..[0,0+-1]) ghost Pexp_constant PConst_int (1,None) ] - Texp_ident \"*type-error*/281\" + Texp_ident \"*type-error*/285\" ] ] diff --git a/tests/test-dirs/type-expr.t/run.t b/tests/test-dirs/type-expr.t/run.t index 4be6e42ec..8ea528668 100644 --- a/tests/test-dirs/type-expr.t/run.t +++ b/tests/test-dirs/type-expr.t/run.t @@ -75,75 +75,81 @@ "class": "return", "value": "sig type 'a t = 'a list = [] | (::) of 'a * 'a list - val length : 'a list -> int - val compare_lengths : 'a list -> 'b list -> int - val compare_length_with : 'a list -> int -> int - val is_empty : 'a list -> bool - val cons : 'a -> 'a list -> 'a list - val hd : 'a list -> 'a - val tl : 'a list -> 'a list - val nth : 'a list -> int -> 'a - val nth_opt : 'a list -> int -> 'a option - val rev : 'a list -> 'a list - val init : int -> (int -> 'a) -> 'a list - val append : 'a list -> 'a list -> 'a list - val rev_append : 'a list -> 'a list -> 'a list - val concat : 'a list list -> 'a list - val flatten : 'a list list -> 'a list - val equal : ('a -> 'a -> bool) -> 'a list -> 'a list -> bool - val compare : ('a -> 'a -> int) -> 'a list -> 'a list -> int - val iter : ('a -> unit) -> 'a list -> unit - val iteri : (int -> 'a -> unit) -> 'a list -> unit - val map : ('a -> 'b) -> 'a list -> 'b list - val mapi : (int -> 'a -> 'b) -> 'a list -> 'b list - val rev_map : ('a -> 'b) -> 'a list -> 'b list - val filter_map : ('a -> 'b option) -> 'a list -> 'b list - val concat_map : ('a -> 'b list) -> 'a list -> 'b list + val length : 'a list -> int @@ portable + val compare_lengths : 'a list -> 'b list -> int @@ portable + val compare_length_with : 'a list -> int -> int @@ portable + val is_empty : 'a list -> bool @@ portable + val cons : 'a -> 'a list -> 'a list @@ portable + val hd : 'a list -> 'a @@ portable + val tl : 'a list -> 'a list @@ portable + val nth : 'a list -> int -> 'a @@ portable + val nth_opt : 'a list -> int -> 'a option @@ portable + val rev : 'a list -> 'a list @@ portable + val init : int -> (int -> 'a) -> 'a list @@ portable + val append : 'a list -> 'a list -> 'a list @@ portable + val rev_append : 'a list -> 'a list -> 'a list @@ portable + val concat : 'a list list -> 'a list @@ portable + val flatten : 'a list list -> 'a list @@ portable + val equal : ('a -> 'a -> bool) -> 'a list -> 'a list -> bool @@ portable + val compare : ('a -> 'a -> int) -> 'a list -> 'a list -> int @@ portable + val iter : ('a -> unit) -> 'a list -> unit @@ portable + val iteri : (int -> 'a -> unit) -> 'a list -> unit @@ portable + val map : ('a -> 'b) -> 'a list -> 'b list @@ portable + val mapi : (int -> 'a -> 'b) -> 'a list -> 'b list @@ portable + val rev_map : ('a -> 'b) -> 'a list -> 'b list @@ portable + val filter_map : ('a -> 'b option) -> 'a list -> 'b list @@ portable + val concat_map : ('a -> 'b list) -> 'a list -> 'b list @@ portable val fold_left_map : - ('acc -> 'a -> 'acc * 'b) -> 'acc -> 'a list -> 'acc * 'b list - val fold_left : ('acc -> 'a -> 'acc) -> 'acc -> 'a list -> 'acc - val fold_right : ('a -> 'acc -> 'acc) -> 'a list -> 'acc -> 'acc - val iter2 : ('a -> 'b -> unit) -> 'a list -> 'b list -> unit - val map2 : ('a -> 'b -> 'c) -> 'a list -> 'b list -> 'c list - val rev_map2 : ('a -> 'b -> 'c) -> 'a list -> 'b list -> 'c list + ('acc -> 'a -> 'acc * 'b) -> 'acc -> 'a list -> 'acc * 'b list @@ + portable + val fold_left : ('acc -> 'a -> 'acc) -> 'acc -> 'a list -> 'acc @@ portable + val fold_right : ('a -> 'acc -> 'acc) -> 'a list -> 'acc -> 'acc @@ + portable + val iter2 : ('a -> 'b -> unit) -> 'a list -> 'b list -> unit @@ portable + val map2 : ('a -> 'b -> 'c) -> 'a list -> 'b list -> 'c list @@ portable + val rev_map2 : ('a -> 'b -> 'c) -> 'a list -> 'b list -> 'c list @@ + portable val fold_left2 : - ('acc -> 'a -> 'b -> 'acc) -> 'acc -> 'a list -> 'b list -> 'acc + ('acc -> 'a -> 'b -> 'acc) -> 'acc -> 'a list -> 'b list -> 'acc @@ + portable val fold_right2 : - ('a -> 'b -> 'acc -> 'acc) -> 'a list -> 'b list -> 'acc -> 'acc - val for_all : ('a -> bool) -> 'a list -> bool - val exists : ('a -> bool) -> 'a list -> bool - val for_all2 : ('a -> 'b -> bool) -> 'a list -> 'b list -> bool - val exists2 : ('a -> 'b -> bool) -> 'a list -> 'b list -> bool - val mem : 'a -> 'a list -> bool - val memq : 'a -> 'a list -> bool - val find : ('a -> bool) -> 'a list -> 'a - val find_opt : ('a -> bool) -> 'a list -> 'a option - val find_index : ('a -> bool) -> 'a list -> int option - val find_map : ('a -> 'b option) -> 'a list -> 'b option - val find_mapi : (int -> 'a -> 'b option) -> 'a list -> 'b option - val filter : ('a -> bool) -> 'a list -> 'a list - val find_all : ('a -> bool) -> 'a list -> 'a list - val filteri : (int -> 'a -> bool) -> 'a list -> 'a list - val partition : ('a -> bool) -> 'a list -> 'a list * 'a list + ('a -> 'b -> 'acc -> 'acc) -> 'a list -> 'b list -> 'acc -> 'acc @@ + portable + val for_all : ('a -> bool) -> 'a list -> bool @@ portable + val exists : ('a -> bool) -> 'a list -> bool @@ portable + val for_all2 : ('a -> 'b -> bool) -> 'a list -> 'b list -> bool @@ portable + val exists2 : ('a -> 'b -> bool) -> 'a list -> 'b list -> bool @@ portable + val mem : 'a -> 'a list -> bool @@ portable + val memq : 'a -> 'a list -> bool @@ portable + val find : ('a -> bool) -> 'a list -> 'a @@ portable + val find_opt : ('a -> bool) -> 'a list -> 'a option @@ portable + val find_index : ('a -> bool) -> 'a list -> int option @@ portable + val find_map : ('a -> 'b option) -> 'a list -> 'b option @@ portable + val find_mapi : (int -> 'a -> 'b option) -> 'a list -> 'b option @@ + portable + val filter : ('a -> bool) -> 'a list -> 'a list @@ portable + val find_all : ('a -> bool) -> 'a list -> 'a list @@ portable + val filteri : (int -> 'a -> bool) -> 'a list -> 'a list @@ portable + val partition : ('a -> bool) -> 'a list -> 'a list * 'a list @@ portable val partition_map : - ('a -> ('b, 'c) Either.t) -> 'a list -> 'b list * 'c list - val assoc : 'a -> ('a * 'b) list -> 'b - val assoc_opt : 'a -> ('a * 'b) list -> 'b option - val assq : 'a -> ('a * 'b) list -> 'b - val assq_opt : 'a -> ('a * 'b) list -> 'b option - val mem_assoc : 'a -> ('a * 'b) list -> bool - val mem_assq : 'a -> ('a * 'b) list -> bool - val remove_assoc : 'a -> ('a * 'b) list -> ('a * 'b) list - val remove_assq : 'a -> ('a * 'b) list -> ('a * 'b) list - val split : ('a * 'b) list -> 'a list * 'b list - val combine : 'a list -> 'b list -> ('a * 'b) list - val sort : ('a -> 'a -> int) -> 'a list -> 'a list - val stable_sort : ('a -> 'a -> int) -> 'a list -> 'a list - val fast_sort : ('a -> 'a -> int) -> 'a list -> 'a list - val sort_uniq : ('a -> 'a -> int) -> 'a list -> 'a list - val merge : ('a -> 'a -> int) -> 'a list -> 'a list -> 'a list - val to_seq : 'a list -> 'a Seq.t - val of_seq : 'a Seq.t -> 'a list + ('a -> ('b, 'c) Either.t) -> 'a list -> 'b list * 'c list @@ portable + val assoc : 'a -> ('a * 'b) list -> 'b @@ portable + val assoc_opt : 'a -> ('a * 'b) list -> 'b option @@ portable + val assq : 'a -> ('a * 'b) list -> 'b @@ portable + val assq_opt : 'a -> ('a * 'b) list -> 'b option @@ portable + val mem_assoc : 'a -> ('a * 'b) list -> bool @@ portable + val mem_assq : 'a -> ('a * 'b) list -> bool @@ portable + val remove_assoc : 'a -> ('a * 'b) list -> ('a * 'b) list @@ portable + val remove_assq : 'a -> ('a * 'b) list -> ('a * 'b) list @@ portable + val split : ('a * 'b) list -> 'a list * 'b list @@ portable + val combine : 'a list -> 'b list -> ('a * 'b) list @@ portable + val sort : ('a -> 'a -> int) -> 'a list -> 'a list @@ portable + val stable_sort : ('a -> 'a -> int) -> 'a list -> 'a list @@ portable + val fast_sort : ('a -> 'a -> int) -> 'a list -> 'a list @@ portable + val sort_uniq : ('a -> 'a -> int) -> 'a list -> 'a list @@ portable + val merge : ('a -> 'a -> int) -> 'a list -> 'a list -> 'a list @@ portable + val to_seq : 'a list -> 'a Seq.t @@ portable + val of_seq : 'a Seq.t -> 'a list @@ portable end", "notifications": [] } diff --git a/tests/test-dirs/typing-recovery.t b/tests/test-dirs/typing-recovery.t index 3f6dbc149..8451ea653 100644 --- a/tests/test-dirs/typing-recovery.t +++ b/tests/test-dirs/typing-recovery.t @@ -67,7 +67,7 @@ structure_item (test.ml[1,0+0]..test.ml[1,0+14]) Tstr_type Rec [ - type_declaration t/275 (test.ml[1,0+0]..test.ml[1,0+14]) + type_declaration t/279 (test.ml[1,0+0]..test.ml[1,0+14]) ptype_params = [] ptype_cstrs = @@ -76,11 +76,11 @@ Ttype_variant [ (test.ml[1,0+9]..test.ml[1,0+10]) - A/276 + A/280 [] None (test.ml[1,0+11]..test.ml[1,0+14]) - B/277 + B/281 [] None ] @@ -93,8 +93,8 @@ [ pattern (test.ml[2,15+4]..test.ml[2,15+5]) - Tpat_var \"f/278\" - value_mode meet(local,once,nonportable,yielding)(modevar#0[global,many,portable,unyielding .. global,many,nonportable,unyielding]);join(aliased,contended)(modevar#1[aliased,uncontended .. unique,uncontended]) + Tpat_var \"f/282\" + value_mode meet(local,once,nonportable,yielding)(modevar#0[global,many,portable,unyielding .. global,many,nonportable,unyielding]);join(aliased,contended)(modevar#1[aliased,contended .. unique,uncontended]) expression (test.ml[2,15+6]..test.ml[6,69+12]) ghost Texp_function alloc_mode map_comonadic(regional_to_global)(modevar#2[global,many,portable,unyielding .. global,many,nonportable,unyielding]);id(modevar#3[aliased,contended .. unique,uncontended]) @@ -105,16 +105,16 @@ extra Tpat_extra_constraint core_type (test.ml[2,15+11]..test.ml[2,15+12]) - Ttyp_constr \"t/275\" + Ttyp_constr \"t/279\" [] - Tpat_var \"x/280\" + Tpat_var \"x/284\" value_mode global,many,portable,unyielding;unique,uncontended ] Tfunction_body expression (test.ml[3,31+2]..test.ml[6,69+12]) Texp_match expression (test.ml[3,31+8]..test.ml[3,31+9]) - Texp_ident \"x/280\" + Texp_ident \"x/284\" value [ @@ -148,7 +148,7 @@ ] attribute \"merlin.loc\" [] - Texp_ident \"*type-error*/281\" + Texp_ident \"*type-error*/285\" pattern (test.ml[6,69+4]..test.ml[6,69+5]) Tpat_value @@ -168,7 +168,7 @@ ] attribute \"merlin.loc\" [] - Texp_ident \"*type-error*/282\" + Texp_ident \"*type-error*/286\" ] ] ] @@ -227,7 +227,7 @@ structure_item (test2.ml[1,0+0]..test2.ml[1,0+14]) Tstr_type Rec [ - type_declaration t/275 (test2.ml[1,0+0]..test2.ml[1,0+14]) + type_declaration t/279 (test2.ml[1,0+0]..test2.ml[1,0+14]) ptype_params = [] ptype_cstrs = @@ -236,11 +236,11 @@ Ttype_variant [ (test2.ml[1,0+9]..test2.ml[1,0+10]) - A/276 + A/280 [] None (test2.ml[1,0+11]..test2.ml[1,0+14]) - B/277 + B/281 [] None ] @@ -253,8 +253,8 @@ [ pattern (test2.ml[2,15+4]..test2.ml[2,15+5]) - Tpat_var \"f/278\" - value_mode meet(local,once,nonportable,yielding)(modevar#0[global,many,portable,unyielding .. global,many,nonportable,unyielding]);join(aliased,contended)(modevar#1[aliased,uncontended .. unique,uncontended]) + Tpat_var \"f/282\" + value_mode meet(local,once,nonportable,yielding)(modevar#0[global,many,portable,unyielding .. global,many,nonportable,unyielding]);join(aliased,contended)(modevar#1[aliased,contended .. unique,uncontended]) expression (test2.ml[2,15+6]..test2.ml[2,15+24]) ghost Texp_function alloc_mode map_comonadic(regional_to_global)(modevar#2[global,many,portable,unyielding .. global,many,nonportable,unyielding]);id(modevar#3[aliased,contended .. unique,uncontended]) @@ -267,7 +267,7 @@ extra Tpat_extra_constraint core_type (test2.ml[2,15+11]..test2.ml[2,15+12]) - Ttyp_constr \"t/275\" + Ttyp_constr \"t/279\" [] Tpat_any ] @@ -287,7 +287,7 @@ core_type (test2.ml[2,15+16]..test2.ml[2,15+19]) Ttyp_constr \"int/1!\" [] - Texp_ident \"*type-error*/280\" + Texp_ident \"*type-error*/284\" ] ] @@ -336,14 +336,14 @@ First a simple case: "value": "[ signature_item (test.mli[1,0+0]..test.mli[1,0+14]) Tsig_value - value_description foo1/275 (test.mli[1,0+0]..test.mli[1,0+14]) + value_description foo1/279 (test.mli[1,0+0]..test.mli[1,0+14]) core_type (test.mli[1,0+11]..test.mli[1,0+14]) Ttyp_constr \"int/1!\" [] [] signature_item (test.mli[3,16+0]..test.mli[3,16+21]) Tsig_value - value_description foo2/276 (test.mli[3,16+0]..test.mli[3,16+21]) + value_description foo2/280 (test.mli[3,16+0]..test.mli[3,16+21]) core_type (test.mli[3,16+11]..test.mli[3,16+21]) Ttyp_tuple [ @@ -359,7 +359,7 @@ First a simple case: [] signature_item (test.mli[5,39+0]..test.mli[5,39+21]) Tsig_value - value_description foo3/277 (test.mli[5,39+0]..test.mli[5,39+21]) + value_description foo3/281 (test.mli[5,39+0]..test.mli[5,39+21]) core_type (test.mli[5,39+11]..test.mli[5,39+21]) Ttyp_tuple [ @@ -425,38 +425,38 @@ And now, with an error deep in a submodule: "value": "[ signature_item (test2.mli[1,0+0]..test2.mli[1,0+14]) Tsig_value - value_description foo1/275 (test2.mli[1,0+0]..test2.mli[1,0+14]) + value_description foo1/279 (test2.mli[1,0+0]..test2.mli[1,0+14]) core_type (test2.mli[1,0+11]..test2.mli[1,0+14]) Ttyp_constr \"int/1!\" [] [] signature_item (test2.mli[3,16+0]..test2.mli[10,149+3]) - Tsig_module \"M/281\" + Tsig_module \"M/285\" module_type (test2.mli[3,16+11]..test2.mli[10,149+3]) Tmty_signature [ signature_item (test2.mli[4,31+2]..test2.mli[4,31+17]) Tsig_value - value_description foo21/276 (test2.mli[4,31+2]..test2.mli[4,31+17]) + value_description foo21/280 (test2.mli[4,31+2]..test2.mli[4,31+17]) core_type (test2.mli[4,31+14]..test2.mli[4,31+17]) Ttyp_constr \"int/1!\" [] [] signature_item (test2.mli[5,49+2]..test2.mli[9,143+5]) - Tsig_module \"N/280\" + Tsig_module \"N/284\" module_type (test2.mli[5,49+13]..test2.mli[9,143+5]) Tmty_signature [ signature_item (test2.mli[6,66+4]..test2.mli[6,66+20]) Tsig_value - value_description foo211/277 (test2.mli[6,66+4]..test2.mli[6,66+20]) + value_description foo211/281 (test2.mli[6,66+4]..test2.mli[6,66+20]) core_type (test2.mli[6,66+17]..test2.mli[6,66+20]) Ttyp_constr \"int/1!\" [] [] signature_item (test2.mli[7,87+4]..test2.mli[7,87+27]) Tsig_value - value_description foo212/278 (test2.mli[7,87+4]..test2.mli[7,87+27]) + value_description foo212/282 (test2.mli[7,87+4]..test2.mli[7,87+27]) core_type (test2.mli[7,87+17]..test2.mli[7,87+27]) Ttyp_tuple [ @@ -472,7 +472,7 @@ And now, with an error deep in a submodule: [] signature_item (test2.mli[8,115+4]..test2.mli[8,115+27]) Tsig_value - value_description foo213/279 (test2.mli[8,115+4]..test2.mli[8,115+27]) + value_description foo213/283 (test2.mli[8,115+4]..test2.mli[8,115+27]) core_type (test2.mli[8,115+17]..test2.mli[8,115+27]) Ttyp_tuple [ @@ -490,7 +490,7 @@ And now, with an error deep in a submodule: ] signature_item (test2.mli[12,154+0]..test2.mli[12,154+21]) Tsig_value - value_description foo3/282 (test2.mli[12,154+0]..test2.mli[12,154+21]) + value_description foo3/286 (test2.mli[12,154+0]..test2.mli[12,154+21]) core_type (test2.mli[12,154+11]..test2.mli[12,154+21]) Ttyp_tuple [ @@ -560,7 +560,7 @@ make sure we also handle that correctly in structures: core_type (test_ct.ml[1,0+11]..test_ct.ml[1,0+14]) Ttyp_constr \"int/1!\" [] - Tpat_var \"foo1/275\" + Tpat_var \"foo1/279\" value_mode global,many,portable,unyielding;unique,uncontended expression (test_ct.ml[1,0+17]..test_ct.ml[1,0+18]) extra @@ -591,8 +591,8 @@ make sure we also handle that correctly in structures: Ttyp_var _ None ] - Tpat_var \"foo2/276\" - value_mode meet(local,once,nonportable,yielding)(modevar#3[global,many,portable,unyielding .. global,many,nonportable,unyielding]);join(aliased,contended)(modevar#4[aliased,uncontended .. unique,uncontended]) + Tpat_var \"foo2/280\" + value_mode meet(local,once,nonportable,yielding)(modevar#5[global,many,portable,unyielding .. global,many,nonportable,unyielding]);join(aliased,contended)(modevar#6[aliased,contended .. unique,uncontended]) expression (test_ct.ml[3,20+24]..test_ct.ml[3,20+28]) extra Texp_mode @@ -611,7 +611,7 @@ make sure we also handle that correctly in structures: None ] Texp_tuple - alloc_mode meet(local,once,nonportable,yielding,map_comonadic(regional_to_global)(modevar#3[global,many,portable,unyielding .. global,many,nonportable,unyielding]));unique,uncontended + alloc_mode meet(local,once,nonportable,yielding,map_comonadic(regional_to_global)(modevar#5[global,many,portable,unyielding .. global,many,nonportable,unyielding]));unique,uncontended [ Label: None expression (test_ct.ml[3,20+24]..test_ct.ml[3,20+25]) @@ -640,8 +640,8 @@ make sure we also handle that correctly in structures: Ttyp_constr \"int/1!\" [] ] - Tpat_var \"foo3/277\" - value_mode meet(local,once,nonportable,yielding)(modevar#6[global,many,portable,unyielding .. global,many,nonportable,unyielding]);join(aliased,contended)(modevar#7[aliased,uncontended .. unique,uncontended]) + Tpat_var \"foo3/281\" + value_mode meet(local,once,nonportable,yielding)(modevar#a[global,many,portable,unyielding .. global,many,nonportable,unyielding]);join(aliased,contended)(modevar#b[aliased,contended .. unique,uncontended]) expression (test_ct.ml[5,50+23]..test_ct.ml[5,50+27]) extra Texp_mode @@ -660,7 +660,7 @@ make sure we also handle that correctly in structures: [] ] Texp_tuple - alloc_mode meet(local,once,nonportable,yielding,map_comonadic(regional_to_global)(modevar#6[global,many,portable,unyielding .. global,many,nonportable,unyielding]));unique,uncontended + alloc_mode meet(local,once,nonportable,yielding,map_comonadic(regional_to_global)(modevar#a[global,many,portable,unyielding .. global,many,nonportable,unyielding]));unique,uncontended [ Label: None expression (test_ct.ml[5,50+23]..test_ct.ml[5,50+24]) From 0a05d698227fc5211a928f29341079524a49e8cd Mon Sep 17 00:00:00 2001 From: Richard Eisenberg Date: Tue, 11 Feb 2025 17:28:18 -0500 Subject: [PATCH 07/25] Update test to new reality --- tests/test-dirs/mode-recovery.t | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/test-dirs/mode-recovery.t b/tests/test-dirs/mode-recovery.t index 6a36b4cb8..660ab8036 100644 --- a/tests/test-dirs/mode-recovery.t +++ b/tests/test-dirs/mode-recovery.t @@ -66,9 +66,9 @@ We can locate the value that was used incorrectly Error from closure lock $ cat > closure2.ml < let y = ref () + > let y = ref 5 > let foo x = - > let _ = y in + > y := !y + 1; > x > ;; > let (f @ portable) x = From dab3856138ceb3238692fc8bae199182e34a067a Mon Sep 17 00:00:00 2001 From: Richard Eisenberg Date: Thu, 13 Feb 2025 11:04:47 -0500 Subject: [PATCH 08/25] Update magic numbers --- src/ocaml/typing/magic_numbers.ml | 1 + src/ocaml/utils/config.ml | 12 ++++++------ 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/src/ocaml/typing/magic_numbers.ml b/src/ocaml/typing/magic_numbers.ml index 5cb744d88..e795b68b2 100644 --- a/src/ocaml/typing/magic_numbers.ml +++ b/src/ocaml/typing/magic_numbers.ml @@ -61,6 +61,7 @@ module Cmi = struct | "Caml1999I553" -> Some "5.2.0minus-3" | "Caml1999I554" -> Some "5.2.0minus-4" | "Caml1999I555" -> Some "5.2.0minus-5" + | "Caml1999I556" -> Some "5.2.0minus-6" | _ -> None let () = assert (to_version_opt Config.cmi_magic_number <> None) diff --git a/src/ocaml/utils/config.ml b/src/ocaml/utils/config.ml index fcf42271f..beb2187cb 100644 --- a/src/ocaml/utils/config.ml +++ b/src/ocaml/utils/config.ml @@ -31,13 +31,13 @@ let version = Sys.ocaml_version (* When bumping this number, be sure to also update ../typing/magic_numbers.ml *) -let cmi_magic_number = "Caml1999I555" +let cmi_magic_number = "Caml1999I556" -let ast_impl_magic_number = "Caml1999M555" -let ast_intf_magic_number = "Caml1999N555" -let cmt_magic_number = "Caml1999T555" -let cms_magic_number = "Caml1999S555" -let index_magic_number = "Merl2023I555" +let ast_impl_magic_number = "Caml1999M556" +let ast_intf_magic_number = "Caml1999N556" +let cmt_magic_number = "Caml1999T556" +let cms_magic_number = "Caml1999S556" +let index_magic_number = "Merl2023I556" let interface_suffix = ref ".mli" From 7069f054852e9311ef311ec2e7861891c808fc74 Mon Sep 17 00:00:00 2001 From: Richard Eisenberg Date: Thu, 13 Feb 2025 11:55:28 -0500 Subject: [PATCH 09/25] Import ocaml sources for ocaml-flambda/flambda-backend@6a83bbad9dd --- upstream/ocaml_flambda/base-rev.txt | 2 +- .../ocaml_flambda/file_formats/cmi_format.ml | 4 +- .../ocaml_flambda/file_formats/cmi_format.mli | 2 +- upstream/ocaml_flambda/typing/cmt2annot.ml | 2 +- upstream/ocaml_flambda/typing/ctype.ml | 64 ++- upstream/ocaml_flambda/typing/ctype.mli | 3 +- upstream/ocaml_flambda/typing/env.ml | 170 +++--- upstream/ocaml_flambda/typing/env.mli | 23 +- .../ocaml_flambda/typing/global_module.ml | 94 ++- .../ocaml_flambda/typing/global_module.mli | 37 ++ upstream/ocaml_flambda/typing/includecore.ml | 67 ++- upstream/ocaml_flambda/typing/includecore.mli | 20 +- upstream/ocaml_flambda/typing/includemod.ml | 58 +- upstream/ocaml_flambda/typing/jkind.ml | 537 +++++++++++------- upstream/ocaml_flambda/typing/jkind.mli | 71 ++- upstream/ocaml_flambda/typing/jkind_axis.ml | 2 + upstream/ocaml_flambda/typing/jkind_axis.mli | 2 + upstream/ocaml_flambda/typing/mode.ml | 443 +++++++++------ upstream/ocaml_flambda/typing/mode_intf.mli | 30 +- upstream/ocaml_flambda/typing/mtype.ml | 5 +- upstream/ocaml_flambda/typing/mtype.mli | 2 + upstream/ocaml_flambda/typing/oprint.ml | 7 +- upstream/ocaml_flambda/typing/outcometree.mli | 3 +- upstream/ocaml_flambda/typing/parmatch.ml | 22 +- upstream/ocaml_flambda/typing/patterns.ml | 12 +- upstream/ocaml_flambda/typing/patterns.mli | 3 +- .../ocaml_flambda/typing/persistent_env.ml | 290 +++++++--- .../ocaml_flambda/typing/persistent_env.mli | 21 +- upstream/ocaml_flambda/typing/printpat.ml | 2 +- upstream/ocaml_flambda/typing/printtyped.ml | 2 +- .../typing/signature_with_global_bindings.ml | 6 +- .../typing/signature_with_global_bindings.mli | 2 +- .../ocaml_flambda/typing/tast_iterator.ml | 2 +- upstream/ocaml_flambda/typing/tast_mapper.ml | 4 +- upstream/ocaml_flambda/typing/typecore.ml | 62 +- upstream/ocaml_flambda/typing/typedecl.ml | 13 +- upstream/ocaml_flambda/typing/typedtree.ml | 22 +- upstream/ocaml_flambda/typing/typedtree.mli | 1 + upstream/ocaml_flambda/typing/typemod.ml | 169 +++--- upstream/ocaml_flambda/typing/typeopt.ml | 2 +- upstream/ocaml_flambda/typing/types.ml | 13 +- upstream/ocaml_flambda/typing/types.mli | 6 +- .../typing/uniqueness_analysis.ml | 2 +- upstream/ocaml_flambda/typing/untypeast.ml | 8 +- .../ocaml_flambda/typing/value_rec_check.ml | 2 +- upstream/ocaml_flambda/utils/misc.mli | 14 + 46 files changed, 1563 insertions(+), 765 deletions(-) diff --git a/upstream/ocaml_flambda/base-rev.txt b/upstream/ocaml_flambda/base-rev.txt index 171be65df..4e31a8089 100644 --- a/upstream/ocaml_flambda/base-rev.txt +++ b/upstream/ocaml_flambda/base-rev.txt @@ -1 +1 @@ -4eb95cdd48f3f2f6193e59c53e4640a008a7fd13 +6a83bbad9dd6c86ea5019a84258b04c81aa34a38 diff --git a/upstream/ocaml_flambda/file_formats/cmi_format.ml b/upstream/ocaml_flambda/file_formats/cmi_format.ml index 929ce526a..9bf67d51a 100644 --- a/upstream/ocaml_flambda/file_formats/cmi_format.ml +++ b/upstream/ocaml_flambda/file_formats/cmi_format.ml @@ -63,7 +63,7 @@ type flags = pers_flags list type header = { header_name : Compilation_unit.Name.t; header_kind : kind; - header_globals : Global_module.t array; + header_globals : Global_module.With_precision.t array; header_sign : Serialized.signature; header_params : Global_module.t list; } @@ -71,7 +71,7 @@ type header = { type 'sg cmi_infos_generic = { cmi_name : Compilation_unit.Name.t; cmi_kind : kind; - cmi_globals : Global_module.t array; + cmi_globals : Global_module.With_precision.t array; cmi_sign : 'sg; cmi_params : Global_module.t list; cmi_crcs : crcs; diff --git a/upstream/ocaml_flambda/file_formats/cmi_format.mli b/upstream/ocaml_flambda/file_formats/cmi_format.mli index c5de4ad82..a70b82797 100644 --- a/upstream/ocaml_flambda/file_formats/cmi_format.mli +++ b/upstream/ocaml_flambda/file_formats/cmi_format.mli @@ -32,7 +32,7 @@ type kind = type 'sg cmi_infos_generic = { cmi_name : Compilation_unit.Name.t; cmi_kind : kind; - cmi_globals : Global_module.t array; + cmi_globals : Global_module.With_precision.t array; cmi_sign : 'sg; cmi_params : Global_module.t list; (* CR lmaurer: Should be [Parameter_name.t list] *) cmi_crcs : Import_info.t array; diff --git a/upstream/ocaml_flambda/typing/cmt2annot.ml b/upstream/ocaml_flambda/typing/cmt2annot.ml index bbf1b1a01..0dd7cd5d4 100644 --- a/upstream/ocaml_flambda/typing/cmt2annot.ml +++ b/upstream/ocaml_flambda/typing/cmt2annot.ml @@ -23,7 +23,7 @@ let variables_iterator scope = let super = default_iterator in let pat sub (type k) (p : k general_pattern) = begin match p.pat_desc with - | Tpat_var (id, _, _, _) | Tpat_alias (_, id, _, _, _) -> + | Tpat_var (id, _, _, _) | Tpat_alias (_, id, _, _, _, _) -> Stypes.record (Stypes.An_ident (p.pat_loc, Ident.name id, Annot.Idef scope)) diff --git a/upstream/ocaml_flambda/typing/ctype.ml b/upstream/ocaml_flambda/typing/ctype.ml index 5b30bf885..3d233697c 100644 --- a/upstream/ocaml_flambda/typing/ctype.ml +++ b/upstream/ocaml_flambda/typing/ctype.ml @@ -2320,7 +2320,9 @@ let constrain_type_jkind ~fixed env ty jkind = (* Just succeed if we're comparing against [any] *) if Jkind.is_max jkind then Ok () else if fuel < 0 then - Error (Jkind.Violation.of_ (Not_a_subjkind (ty's_jkind, jkind))) + Error ( + Jkind.Violation.of_ ( + Not_a_subjkind (ty's_jkind, jkind, [Constrain_ran_out_of_fuel]))) else match get_desc ty with (* The [ty's_jkind] we get here is an **r** jkind, necessary for @@ -2361,7 +2363,7 @@ let constrain_type_jkind ~fixed env ty jkind = Jkind.sub_or_intersect ~type_equal ~jkind_of_type ty's_jkind jkind with | Sub -> Ok () - | Disjoint -> + | Disjoint sub_failure_reasons -> (* Reporting that [ty's_jkind] must be a subjkind of [jkind] is not always right. Suppose we had [type ('a : word) t = 'a] and we were checking ['a t] against [value]. Then it would be enough for [word] @@ -2370,8 +2372,10 @@ let constrain_type_jkind ~fixed env ty jkind = arbitrary amounts of expansion and looking through [@@unboxed] types. So we don't, settling for the slightly worse error message. *) - Error (Jkind.Violation.of_ (Not_a_subjkind (ty's_jkind, jkind))) - | Has_intersection -> + Error (Jkind.Violation.of_ + (Not_a_subjkind (ty's_jkind, jkind, Nonempty_list.to_list sub_failure_reasons))) + | Has_intersection sub_failure_reasons -> + let sub_failure_reasons = Nonempty_list.to_list sub_failure_reasons in let product ~fuel tys = let num_components = List.length tys in let recur ty's_jkinds jkinds = @@ -2381,7 +2385,8 @@ let constrain_type_jkind ~fixed env ty jkind = in if List.for_all Result.is_ok results then Ok () - else Error (Jkind.Violation.of_ (Not_a_subjkind (ty's_jkind, jkind))) + else Error (Jkind.Violation.of_ + (Not_a_subjkind (ty's_jkind, jkind, sub_failure_reasons))) in begin match Jkind.decompose_product ty's_jkind, Jkind.decompose_product jkind with @@ -2399,7 +2404,8 @@ let constrain_type_jkind ~fixed env ty jkind = (* Products don't line up. This is only possible if [ty] was given a jkind annotation of the wrong product arity. *) - Error (Jkind.Violation.of_ (Not_a_subjkind (ty's_jkind, jkind))) + Error (Jkind.Violation.of_ + (Not_a_subjkind (ty's_jkind, jkind, sub_failure_reasons))) end in match get_desc ty with @@ -2411,10 +2417,10 @@ let constrain_type_jkind ~fixed env ty jkind = else begin match unbox_once env ty with | Missing path -> Error (Jkind.Violation.of_ ~missing_cmi:path - (Not_a_subjkind (ty's_jkind, jkind))) + (Not_a_subjkind (ty's_jkind, jkind, sub_failure_reasons))) | Final_result -> Error - (Jkind.Violation.of_ (Not_a_subjkind (ty's_jkind, jkind))) + (Jkind.Violation.of_ (Not_a_subjkind (ty's_jkind, jkind, sub_failure_reasons))) | Stepped ty -> loop ~fuel:(fuel - 1) ~expanded:false ty (estimate_type_jkind env ty) jkind @@ -2428,7 +2434,8 @@ let constrain_type_jkind ~fixed env ty jkind = need to expand many types shallowly, and that's fine. *) product ~fuel (List.map snd ltys) | _ -> - Error (Jkind.Violation.of_ (Not_a_subjkind (ty's_jkind, jkind))) + Error (Jkind.Violation.of_ + (Not_a_subjkind (ty's_jkind, jkind, sub_failure_reasons))) in loop ~fuel:100 ~expanded:false ty (estimate_type_jkind env ty) jkind @@ -2518,7 +2525,7 @@ let check_and_update_generalized_ty_jkind ?name ~loc env ty = might turn out later to be value. This is the conservative choice. *) let jkind_of_type = type_jkind_purely_if_principal env in let ext = Jkind.get_externality_upper_bound ~jkind_of_type jkind in - Jkind.Externality.le ext External64 && + Jkind_axis.Externality.le ext External64 && match Jkind.get_layout jkind with | Some (Base Value) | None -> true | _ -> false @@ -3286,11 +3293,10 @@ and mcomp_unsafe_mode_crossing umc1 umc2 = | None, None -> () | Some _, None -> raise Incompatible | None, Some _ -> raise Incompatible - | Some ({ modal_upper_bounds = mub1 }), - Some ({ modal_upper_bounds = mub2 }) -> - if (Mode.Alloc.Const.le mub1 mub2 && Mode.Alloc.Const.le mub2 mub1) - then () - else raise Incompatible + | Some umc1, Some umc2 -> + if equal_unsafe_mode_crossing umc1 umc2 + then () + else raise Incompatible and mcomp_type_decl type_pairs env p1 p2 tl1 tl2 = try @@ -4863,14 +4869,21 @@ let relevant_pairs pairs v = (* This is very similar to Typecore.mode_cross_left_value. Any bugs here are likely bugs there, too. *) let mode_cross_left_alloc env ty mode = - let mode = - if not (is_principal ty) then mode else + if not (is_principal ty) then Alloc.disallow_right mode else begin let jkind = type_jkind_purely env ty in let jkind_of_type = type_jkind_purely_if_principal env in let upper_bounds = Jkind.get_modal_upper_bounds ~jkind_of_type jkind in - Alloc.meet_const upper_bounds mode - in - mode |> Alloc.disallow_right + let upper_bounds = + Alloc.Const.merge + { comonadic = upper_bounds; monadic = Alloc.Monadic.Const.max } + in + let lower_bounds = Jkind.get_modal_lower_bounds ~jkind_of_type jkind in + let lower_bounds = + Alloc.Const.merge + { comonadic = Alloc.Comonadic.Const.min; monadic = lower_bounds } + in + Alloc.subtract lower_bounds (Alloc.meet_const upper_bounds mode) + end (* This is very similar to Typecore.expect_mode_cross. Any bugs here are likely bugs there, too. *) @@ -4879,7 +4892,16 @@ let mode_cross_right env ty mode = let jkind = type_jkind_purely env ty in let jkind_of_type = type_jkind_purely_if_principal env in let upper_bounds = Jkind.get_modal_upper_bounds ~jkind_of_type jkind in - Alloc.imply upper_bounds mode + let upper_bounds = + Alloc.Const.merge + { comonadic = upper_bounds; monadic = Alloc.Monadic.Const.max } + in + let lower_bounds = Jkind.get_modal_lower_bounds ~jkind_of_type jkind in + let lower_bounds = + Alloc.Const.merge + { comonadic = Alloc.Comonadic.Const.min; monadic = lower_bounds } + in + Alloc.imply upper_bounds (Alloc.join_const lower_bounds mode) let submode_with_cross env ~is_ret ty l r = let r' = mode_cross_right env ty r in diff --git a/upstream/ocaml_flambda/typing/ctype.mli b/upstream/ocaml_flambda/typing/ctype.mli index fa309af33..197bc4632 100644 --- a/upstream/ocaml_flambda/typing/ctype.mli +++ b/upstream/ocaml_flambda/typing/ctype.mli @@ -645,7 +645,8 @@ val constrain_type_jkind : (* Check whether a type's externality's upper bound is less than some target. Potentially cheaper than just calling [type_jkind], because this can stop expansion once it succeeds. *) -val check_type_externality : Env.t -> type_expr -> Jkind.Externality.t -> bool +val check_type_externality : + Env.t -> type_expr -> Jkind_axis.Externality.t -> bool (* This function should get called after a type is generalized. diff --git a/upstream/ocaml_flambda/typing/env.ml b/upstream/ocaml_flambda/typing/env.ml index 8af75235c..f81fc6f8b 100644 --- a/upstream/ocaml_flambda/typing/env.ml +++ b/upstream/ocaml_flambda/typing/env.ml @@ -341,6 +341,8 @@ type lock = type locks = lock list +type held_locks = locks * Longident.t * Location.t + let locks_empty = [] let locks_is_empty l = l = locks_empty @@ -749,8 +751,6 @@ and cltype_data = { cltda_declaration : class_type_declaration; cltda_shape : Shape.t } -let mda_mode = Mode.Value.legacy |> Mode.Value.disallow_right - let clda_mode = Mode.Value.legacy |> Mode.Value.disallow_right let cm_mode = Mode.Value.legacy |> Mode.Value.disallow_right @@ -965,14 +965,14 @@ let check_functor_application = (* to be filled by Includemod *) ref ((fun ~errors:_ ~loc:_ ~lid_whole_app:_ ~f0_path:_ ~args:_ - ~arg_path:_ ~arg_mty:_ ~arg_mode:_ ~param_mty:_ + ~arg_path:_ ~arg_mty:_ ~param_mty:_ _env -> assert false) : errors:bool -> loc:Location.t -> lid_whole_app:Longident.t -> - f0_path:Path.t -> args:(Path.t * Types.module_type * Mode.Value.l) list -> - arg_path:Path.t -> arg_mty:module_type -> arg_mode:Mode.Value.l -> - param_mty:module_type -> t -> unit) + f0_path:Path.t -> args:(Path.t * Types.module_type) list -> + arg_path:Path.t -> arg_mty:module_type -> param_mty:module_type -> + t -> unit) let scrape_alias = (* to be filled with Mtype.scrape_alias *) @@ -1151,12 +1151,11 @@ let runtime_parameter_bindings () = let parameters () = Persistent_env.parameters !persistent_env -let read_pers_mod modname cmi ~add_binding = - Persistent_env.read !persistent_env read_sign_of_cmi modname cmi - ~add_binding +let read_pers_mod modname cmi = + Persistent_env.read !persistent_env modname cmi -let find_pers_mod name = - Persistent_env.find !persistent_env read_sign_of_cmi name +let find_pers_mod name ~allow_excess_args = + Persistent_env.find !persistent_env read_sign_of_cmi name ~allow_excess_args let check_pers_mod ~loc name = Persistent_env.check !persistent_env read_sign_of_cmi ~loc name @@ -1239,12 +1238,12 @@ let modtype_of_functor_appl fcomp p1 p2 = let check_functor_appl ~errors ~loc ~lid_whole_app ~f0_path ~args ~f_comp - ~arg_path ~arg_mty ~arg_mode ~param_mty + ~arg_path ~arg_mty ~param_mty env = if not (Hashtbl.mem f_comp.fcomp_cache arg_path) then !check_functor_application ~errors ~loc ~lid_whole_app ~f0_path ~args - ~arg_path ~arg_mty ~arg_mode ~param_mty + ~arg_path ~arg_mty ~param_mty env (* Lookup by identifier *) @@ -1255,7 +1254,24 @@ let find_ident_module id env = | Mod_unbound _ -> raise Not_found | Mod_persistent -> match Ident.to_global id with - | Some global_name -> find_pers_mod ~allow_hidden:true global_name + | Some global_name -> + let allow_excess_args = + (* This may be a global that arose by substituting instance + arguments into an overapproximated instance name, so we have to + allow it to have more arguments than expected. For example, if + [foo.ml] is compiled with [-parameter P] and says + [module Alias = M], we assume that [m.ml] was (or will be) + compiled with [-parameter P] as well, sa [foo.cmi] will record + [M{P}] as an approximate elaboration of [M]. Then if [bar.ml] + refers to [Foo[P:Int]], we substitute in [Foo]'s signature and + get [module Alias = M[P:Int]] whether or not [M] takes [P].) *) + (* CR-someday lmaurer: This does mean that the original alias may + have had too many arguments and we'll never have checked them. + One solution would be to remember somewhere what the user + actually typed in addition to the approximation. *) + true + in + find_pers_mod ~allow_hidden:true ~allow_excess_args global_name | None -> Misc.fatal_errorf "Not global: %a" Ident.print id let rec find_module_components path env = @@ -1505,6 +1521,7 @@ let global_of_instance_compilation_unit cu = (* We could just convert the global name ourselves by filling in empty lists of hidden arguments, but this doubles as a typecheck of the instance. *) Persistent_env.global_of_global_name !persistent_env global_name ~check:true + ~allow_excess_args:false in let rec check (global : Global_module.t) = match global.hidden_args with @@ -1647,6 +1664,31 @@ and expand_modtype_path env path = | Some (Mty_ident path) -> normalize_modtype_path env path | _ | exception Not_found -> path +let normalize_instance_names_in_ident ident = + if Ident.is_instance ident then + let modname = Ident.to_global_exn ident in + let modname2 = + Persistent_env.normalize_global_name !persistent_env modname + in + if modname == modname2 then ident else Ident.create_global modname2 + else + ident + +let rec normalize_instance_names_in_module_path path = + match path with + | Pident i -> + let i2 = normalize_instance_names_in_ident i in + if i == i2 then path else Pident i2 + | Pdot (p, s) -> + let p2 = normalize_instance_names_in_module_path p in + if p == p2 then path else Pdot (p2, s) + | Pextra_ty (p, extra) -> + let p2 = normalize_instance_names_in_module_path p in + if p == p2 then path else Pextra_ty (p2, extra) + | Papply (p, a) -> + let p2 = normalize_instance_names_in_module_path p in + if p == p2 then path else Papply (p2, a) + let find_module_lazy path env = find_module_lazy ~alias:false path env @@ -2724,8 +2766,8 @@ let enter_unbound_module name reason env = summary = Env_module_unbound(env.summary, name, reason) } (* Read a signature from a file *) -let read_signature modname cmi ~add_binding = - let mty = read_pers_mod modname cmi ~add_binding in +let read_signature modname cmi = + let mty = read_pers_mod modname cmi in Subst.Lazy.force_signature mty let register_parameter modname = @@ -2996,7 +3038,7 @@ let lookup_global_name_module_no_locks check_pers_mod ~allow_hidden:false ~loc name; path, (() : a) | Load -> begin - match find_pers_mod ~allow_hidden:false name with + match find_pers_mod ~allow_hidden:false name ~allow_excess_args:false with | mda -> use_module ~use ~loc path mda; path, (mda : a) @@ -3228,7 +3270,8 @@ let rec lookup_module_components ~errors ~use ~loc lid env = let f_path, f_comp, arg = lookup_apply ~errors ~use ~loc lid env in let comps = !components_of_functor_appl' ~loc ~f_path ~f_comp ~arg env in - Papply (f_path, arg), [], comps + (* [Lapply] is for [F(M).t] so nothing is closed over. *) + Papply (f_path, arg), locks_empty, comps and lookup_structure_components ~errors ~use ~loc ?(reason = Project) lid env = let path, locks, comps = lookup_module_components ~errors ~use ~loc lid env in @@ -3261,43 +3304,44 @@ and lookup_all_args ~errors ~use ~loc lid0 env = | Lident _ | Ldot _ as f_lid -> (f_lid, args) | Lapply (f_lid, arg_lid) -> - let arg_path, arg_md, arg_vmode = - lookup_module ~errors ~use ~lock:false ~loc arg_lid env - in - loop_lid_arg ((f_lid,arg_path,arg_md.md_type,arg_vmode)::args) f_lid + (* [Lapply] only appears in e.g. [F(M).t], which does not incur functor + application at runtime and thus both the functor and the arguments are not closed + over. Therefore, they all remains at legacy mode which don't need to be tracked. + *) + let arg_path, arg_md, _ = lookup_module ~errors ~use ~loc arg_lid env in + loop_lid_arg ((f_lid,arg_path,arg_md.md_type)::args) f_lid in loop_lid_arg [] lid0 and lookup_apply ~errors ~use ~loc lid0 env = let f0_lid, args0 = lookup_all_args ~errors ~use ~loc lid0 env in - let args_for_errors = List.map (fun (_,p,mty,vmode) -> (p,mty,vmode.mode)) args0 in + let args_for_errors = List.map (fun (_,p,mty) -> (p,mty)) args0 in let f0_path, _, f0_comp = lookup_module_components ~errors ~use ~loc f0_lid env in - let check_one_apply ~errors ~loc ~f_lid ~f_comp ~arg_path ~arg_mty ~arg_mode - env = + let check_one_apply ~errors ~loc ~f_lid ~f_comp ~arg_path ~arg_mty env = let f_comp, param_mty = get_functor_components ~errors ~loc f_lid env f_comp in check_functor_appl ~errors ~loc ~lid_whole_app:lid0 ~f0_path ~args:args_for_errors ~f_comp - ~arg_path ~arg_mty ~arg_mode:arg_mode.mode ~param_mty + ~arg_path ~arg_mty ~param_mty env; arg_path, f_comp in let rec check_apply ~path:f_path ~comp:f_comp = function | [] -> invalid_arg "Env.lookup_apply: empty argument list" - | [ f_lid, arg_path, arg_mty, arg_mode ] -> + | [ f_lid, arg_path, arg_mty ] -> let arg_path, comps = check_one_apply ~errors ~loc ~f_lid ~f_comp - ~arg_path ~arg_mty ~arg_mode env + ~arg_path ~arg_mty env in f_path, comps, arg_path - | (f_lid, arg_path, arg_mty, arg_mode) :: args -> + | (f_lid, arg_path, arg_mty) :: args -> let arg_path, f_comp = check_one_apply ~errors ~loc ~f_lid ~f_comp - ~arg_path ~arg_mty ~arg_mode env + ~arg_path ~arg_mty env in let comp = !components_of_functor_appl' ~loc ~f_path ~f_comp ~arg:arg_path env @@ -3307,29 +3351,21 @@ and lookup_apply ~errors ~use ~loc lid0 env = in check_apply ~path:f0_path ~comp:f0_comp args0 -and lookup_module ~errors ~use ~lock ~loc lid env = - let path, locks, md = - match lid with - | Lident s -> - let path, locks, data = lookup_ident_module Load ~errors ~use ~loc s env in - let md = Subst.Lazy.force_module_decl data.mda_declaration in - path, locks, md - | Ldot(l, s) -> - let path, locks, data = lookup_dot_module ~errors ~use ~loc l s env in - let md = Subst.Lazy.force_module_decl data.mda_declaration in - path, locks, md - | Lapply _ as lid -> - let path_f, comp_f, path_arg = lookup_apply ~errors ~use ~loc lid env in - let md = md (modtype_of_functor_appl comp_f path_f path_arg) in - Papply(path_f, path_arg), [], md - in - let vmode = - if lock then - walk_locks ~errors ~loc ~env ~item:Module ~lid mda_mode None locks - else - mode_default mda_mode - in - path, md, vmode +and lookup_module ~errors ~use ~loc lid env = + match lid with + | Lident s -> + let path, locks, data = lookup_ident_module Load ~errors ~use ~loc s env in + let md = Subst.Lazy.force_module_decl data.mda_declaration in + path, md, locks + | Ldot(l, s) -> + let path, locks, data = lookup_dot_module ~errors ~use ~loc l s env in + let md = Subst.Lazy.force_module_decl data.mda_declaration in + path, md, locks + | Lapply _ as lid -> + let path_f, comp_f, path_arg = lookup_apply ~errors ~use ~loc lid env in + let md = md (modtype_of_functor_appl comp_f path_f path_arg) in + (* [Lapply] is for [F(M).t] so nothing is closed over. *) + Papply(path_f, path_arg), md, locks_empty and lookup_dot_module ~errors ~use ~loc l s env = let p, locks, comps = lookup_structure_components ~errors ~use ~loc l env in @@ -3479,7 +3515,7 @@ let add_components slot root env0 comps locks = let open_signature_by_path path env0 = let comps = find_structure_components path env0 in - add_components None path env0 comps [] + add_components None path env0 comps locks_empty let open_signature ~errors ~loc slot lid env0 = let (root, locks, comps) = @@ -3600,7 +3636,8 @@ let lookup_module_path ~errors ~use ~loc ~load lid env = path, locks | Lapply _ as lid -> let path_f, _comp_f, path_arg = lookup_apply ~errors ~use ~loc lid env in - Papply(path_f, path_arg), [] + (* [Lapply] is for [F(M).t] so nothing is closed over. *) + Papply(path_f, path_arg), locks_empty let lookup_module_instance_path ~errors ~use ~loc ~load name env = (* The locks are whatever locks we would find if we went through @@ -3741,9 +3778,7 @@ let lookup_all_constructors_from_type ~use ~loc usage ty_path env = let find_module_by_name lid env = let loc = Location.(in_file !input_name) in - let path, desc, _ = - lookup_module ~errors:false ~use:false ~lock:false ~loc lid env - in + let path, desc, _ = lookup_module ~errors:false ~use:false ~loc lid env in path, desc let find_value_by_name lid env = @@ -3795,7 +3830,7 @@ let find_cltype_index id env = find_index_tbl id env.cltypes (* Ordinary lookup functions *) -let walk_locks ~loc ~env ~item ~lid mode ty locks = +let walk_locks ~env ~item mode ty (locks, lid, loc) = walk_locks ~errors:true ~loc ~env ~item ~lid mode ty locks let lookup_module_path ?(use=true) ~loc ~load lid env = @@ -3804,9 +3839,8 @@ let lookup_module_path ?(use=true) ~loc ~load lid env = let lookup_module_instance_path ?(use=true) ~loc ~load lid env = lookup_module_instance_path ~errors:true ~use ~loc ~load lid env -let lookup_module ?(use=true) ?(lock=use) ~loc lid env = - let path, desc, vmode = lookup_module ~errors:true ~use ~lock ~loc lid env in - path, desc, vmode.mode +let lookup_module ?(use=true) ~loc lid env = + lookup_module ~errors:true ~use ~loc lid env let lookup_value ?(use=true) ~loc lid env = lookup_value ~errors:true ~use ~loc lid env @@ -3883,10 +3917,10 @@ let bound_module name env = if Current_unit_name.is name then false else begin match - find_pers_mod ~allow_hidden:false + find_pers_mod ~allow_hidden:false ~allow_excess_args:false (Global_module.Name.create_no_args name) with - | _ -> true + | (_ : module_data) -> true | exception Not_found -> false end @@ -4231,8 +4265,12 @@ let sharedness_hint ppf : shared_context -> _ = function let print_lock_item ppf (item, lid) = match item with - | Module -> fprintf ppf "Modules are" - | Class -> fprintf ppf "Classes are" + | Module -> + fprintf ppf "%a is a module, and modules are always" + (Style.as_inline_code !print_longident) lid + | Class -> + fprintf ppf "%a is a class, and classes are always" + (Style.as_inline_code !print_longident) lid | Value -> fprintf ppf "The value %a is" (Style.as_inline_code !print_longident) lid diff --git a/upstream/ocaml_flambda/typing/env.mli b/upstream/ocaml_flambda/typing/env.mli index 5d32c0267..a87a5f0fb 100644 --- a/upstream/ocaml_flambda/typing/env.mli +++ b/upstream/ocaml_flambda/typing/env.mli @@ -143,6 +143,10 @@ val normalize_value_path: Location.t option -> t -> Path.t -> Path.t val normalize_modtype_path: t -> Path.t -> Path.t (* Normalize a module type path *) +val normalize_instance_names_in_module_path: Path.t -> Path.t +(* Normalize the instance names appearing in a module path by removing + excess arguments arising from transparent aliases *) + val reset_required_globals: unit -> unit val get_required_globals: unit -> Compilation_unit.t list val add_required_global: Path.t -> t -> unit @@ -206,6 +210,11 @@ type shared_context = type locks +type held_locks = locks * Longident.t * Location.t +(** Sometimes we get the locks for something, but either want to walk them later, or +walk them for something else. The [Longident.t] and [Location.t] are only for error +messages, and point to the variable for which we actually want to walk the locks. *) + val locks_empty : locks val locks_is_empty : locks -> bool @@ -272,8 +281,8 @@ type actual_mode = { locks and constrains [mode] and [ty]. Return the access mode of the value allowed by the locks. [ty] is optional as the function works on modules and classes as well, for which [ty] should be [None]. *) -val walk_locks : loc:Location.t -> env:t -> item:lock_item -> lid:Longident.t -> - Mode.Value.l -> type_expr option -> locks -> actual_mode +val walk_locks : env:t -> item:lock_item -> Mode.Value.l -> type_expr option -> + held_locks -> actual_mode val lookup_value: ?use:bool -> loc:Location.t -> Longident.t -> t -> @@ -282,8 +291,8 @@ val lookup_type: ?use:bool -> loc:Location.t -> Longident.t -> t -> Path.t * type_declaration val lookup_module: - ?use:bool -> ?lock:bool -> loc:Location.t -> Longident.t -> t -> - Path.t * module_declaration * Mode.Value.l + ?use:bool -> loc:Location.t -> Longident.t -> t -> + Path.t * module_declaration * locks val lookup_modtype: ?use:bool -> loc:Location.t -> Longident.t -> t -> Path.t * modtype_declaration @@ -513,7 +522,7 @@ val get_unit_name: unit -> Compilation_unit.t option (* Read, save a signature to/from a file. *) val read_signature: - Global_module.Name.t -> Unit_info.Artifact.t -> add_binding:bool + Global_module.Name.t -> Unit_info.Artifact.t -> signature (* Arguments: module name, file name, [add_binding] flag. Results: signature. If [add_binding] is true, creates an entry for @@ -607,8 +616,8 @@ val set_type_used_callback: val check_functor_application: (errors:bool -> loc:Location.t -> lid_whole_app:Longident.t -> - f0_path:Path.t -> args:(Path.t * Types.module_type * Mode.Value.l) list -> - arg_path:Path.t -> arg_mty:Types.module_type -> arg_mode:Mode.Value.l -> + f0_path:Path.t -> args:(Path.t * Types.module_type) list -> + arg_path:Path.t -> arg_mty:Types.module_type -> param_mty:Types.module_type -> t -> unit) ref (* Forward declaration to break mutual recursion with Typemod. *) diff --git a/upstream/ocaml_flambda/typing/global_module.ml b/upstream/ocaml_flambda/typing/global_module.ml index 9c9b98fe3..3dafe27d8 100644 --- a/upstream/ocaml_flambda/typing/global_module.ml +++ b/upstream/ocaml_flambda/typing/global_module.ml @@ -13,11 +13,12 @@ module Argument = struct } let compare cmp_param cmp_value - { param = param1; value = value1 } - { param = param2; value = value2 } = - match cmp_param param1 param2 with - | 0 -> cmp_value value1 value2 - | c -> c + ({ param = param1; value = value1 } as t1) + ({ param = param2; value = value2 } as t2) = + if t1 == t2 then 0 else + match cmp_param param1 param2 with + | 0 -> cmp_value value1 value2 + | c -> c end let check_uniqueness_of_sorted l ~cmp = @@ -307,3 +308,86 @@ let has_arguments t = match t with | { head = _; visible_args = []; hidden_args = [] } -> false | _ -> true + +module Precision = struct + type t = Exact | Approximate + + let print ppf = function + | Exact -> Format.fprintf ppf "exact" + | Approximate -> Format.fprintf ppf "approx" + + let output = Misc.output_of_print print + + let equal t1 t2 = + match t1, t2 with + | Exact, Exact + | Approximate, Approximate -> true + | (Exact | Approximate), _ -> false +end + +module With_precision = struct + type nonrec t = t * Precision.t + + let print ppf (t, prec) = + match (prec : Precision.t) with + | Exact -> print ppf t + | Approximate -> Format.fprintf ppf "@[%a@ (approx)@]" print t + + let output = Misc.output_of_print print + + exception Inconsistent + + let meet_atom equal atom1 atom2 = + if not (equal atom1 atom2) then raise Inconsistent + + let meet_approximate glob1 glob2 = + (* Compute the meet, assuming the visible parts are equal *) + let rec meet glob1 glob2 = + let visible_args_rev = + Misc.Stdlib.List.merge_fold glob1.visible_args glob2.visible_args + ~cmp:compare_arg_name + ~init:[] + ~left_only:(fun _ _ -> raise Inconsistent) + ~right_only:(fun _ _ -> raise Inconsistent) + ~both:(fun acc_rev arg1 arg2 -> meet_args arg1 arg2 :: acc_rev) + in + let hidden_args_rev = + (* Keep only the hidden arguments that appear in both lists *) + Misc.Stdlib.List.merge_fold glob1.hidden_args glob2.hidden_args + ~cmp:compare_arg_name + ~init:[] + ~left_only:(fun acc_rev _ -> acc_rev) + ~right_only:(fun acc_rev _ -> acc_rev) + ~both:(fun acc_rev arg1 arg2 -> meet_args arg1 arg2 :: acc_rev) + in + meet_atom String.equal glob1.head glob2.head; + let visible_args = List.rev visible_args_rev in + let hidden_args = List.rev hidden_args_rev in + create_exn glob1.head visible_args ~hidden_args + and meet_args (arg1 : _ Argument.t) (arg2 : _ Argument.t) = + meet_atom Name.equal arg1.param arg2.param; + let value = meet arg1.value arg2.value in + ({ param = arg1.param; value } : _ Argument.t) + in + meet glob1 glob2 + + let meet (t1 : t) (t2 : t) : t = + match t1, t2 with + | (glob1, Approximate), (glob2, Approximate) -> + (meet_approximate glob1 glob2, Approximate) + | (glob1, Exact), (glob2, Exact) -> + begin match equal glob1 glob2 with + | true -> t1 + | false -> raise Inconsistent + end + | ((exact, Exact) as t_exact), (approx, Approximate) + | (approx, Approximate), ((exact, Exact) as t_exact) -> + let exact' = meet_approximate exact approx in + begin match equal exact exact' with + | true -> t_exact + | false -> raise Inconsistent + end + + let equal (t1, prec1) (t2, prec2) = + equal t1 t2 && Precision.equal prec1 prec2 +end diff --git a/upstream/ocaml_flambda/typing/global_module.mli b/upstream/ocaml_flambda/typing/global_module.mli index 9a1d0cbd7..567271b6b 100644 --- a/upstream/ocaml_flambda/typing/global_module.mli +++ b/upstream/ocaml_flambda/typing/global_module.mli @@ -122,3 +122,40 @@ val is_complete : t -> bool (** Returns [true] if this name has at least one argument (either hidden or visible). *) val has_arguments : t -> bool + +module Precision : sig + (** Whether a global's elaborated form is known exactly. For example, given + the elaborated form [Foo{Bar; Baz}], if we never loaded foo.cmi then + we don't actually know whether [Foo] takes [Bar] or [Baz]. *) + type t = + | Exact (** The base module takes exactly the arguments being passed. *) + | Approximate + (** The base module takes some subset of the arguments being passed + (possibly all of them). *) + + val print : Format.formatter -> t -> unit + + val output : out_channel -> t -> unit +end + +module With_precision : sig + type nonrec t = t * Precision.t + + val equal : t -> t -> bool + + exception Inconsistent + + (** Given two elaborated forms of the same name and their precision, reconcile + them. In any case, if the visible parts of the globals disagree, raise + [Inconsistent] (because they don't in fact elaborate the same [Name.t]). + For the hidden parts, we treat an exact [t] as requiring equality and an + approximate [t] as specifying an upper bound. Thus exact vs. exact checks + for equality, exact vs. approximate checks the upper bound, and + approximate vs. approximate takes the least upper bound (that is, the + intersection). *) + val meet : t -> t -> t + + val print : Format.formatter -> t -> unit + + val output : out_channel -> t -> unit +end diff --git a/upstream/ocaml_flambda/typing/includecore.ml b/upstream/ocaml_flambda/typing/includecore.ml index d02b4ee15..5ffbcbb1c 100644 --- a/upstream/ocaml_flambda/typing/includecore.ml +++ b/upstream/ocaml_flambda/typing/includecore.ml @@ -49,7 +49,7 @@ exception Dont_match of value_mismatch type mmodes = | All - | Legacy + | Legacy of Env.held_locks option (** Mode cross a right mode *) (* This is very similar to Ctype.mode_cross_right. Any bugs here are likely bugs @@ -57,14 +57,45 @@ type mmodes = let right_mode_cross_jkind env jkind mode = let jkind_of_type = Ctype.type_jkind_purely_if_principal env in let upper_bounds = Jkind.get_modal_upper_bounds ~jkind_of_type jkind in + let upper_bounds = + Alloc.Const.merge + { comonadic = upper_bounds; monadic = Alloc.Monadic.Const.max } + in let upper_bounds = Const.alloc_as_value upper_bounds in - Value.imply upper_bounds mode + let lower_bounds = Jkind.get_modal_lower_bounds ~jkind_of_type jkind in + let lower_bounds = + Alloc.Const.merge + { comonadic = Alloc.Comonadic.Const.min; monadic = lower_bounds } + in + let lower_bounds = Const.alloc_as_value lower_bounds in + Value.imply upper_bounds (Value.join_const lower_bounds mode) let right_mode_cross env ty mode = if not (Ctype.is_principal ty) then mode else let jkind = Ctype.type_jkind_purely env ty in right_mode_cross_jkind env jkind mode +let left_mode_cross_jkind env jkind mode = + let jkind_of_type = Ctype.type_jkind_purely_if_principal env in + let upper_bounds = Jkind.get_modal_upper_bounds ~jkind_of_type jkind in + let upper_bounds = + Alloc.Const.merge + { comonadic = upper_bounds; monadic = Alloc.Monadic.Const.max } + in + let upper_bounds = Const.alloc_as_value upper_bounds in + let lower_bounds = Jkind.get_modal_lower_bounds ~jkind_of_type jkind in + let lower_bounds = + Alloc.Const.merge + { comonadic = Alloc.Comonadic.Const.min; monadic = lower_bounds } + in + let lower_bounds = Const.alloc_as_value lower_bounds in + Value.subtract lower_bounds (Value.meet_const upper_bounds mode) + +let left_mode_cross env ty mode= + if not (Ctype.is_principal ty) then mode else + let jkind = Ctype.type_jkind_purely env ty in + left_mode_cross_jkind env jkind mode + let native_repr_args nra1 nra2 = let rec loop i nra1 nra2 = match nra1, nra2 with @@ -128,17 +159,27 @@ let value_descriptions ~loc env name | Ok () -> () | Error e -> raise (Dont_match (Modality e)) end; - | Legacy when (vd1.val_modalities == vd2.val_modalities) -> + | Legacy close_over_coercion -> + match Mode.Modality.Value.to_const_opt vd2.val_modalities with (* [wrap_constraint_with_shape] invokes inclusion check with identical inferred modalities, which we need to workaround. *) - () - | Legacy -> + | None -> () + | Some val2_modalities -> let mmode1, mmode2 = Mode.Value.(disallow_right legacy), Mode.Value.(disallow_left legacy) in let mode1 = Mode.Modality.Value.apply vd1.val_modalities mmode1 in - let mode2 = - Mode.Modality.Value.(Const.apply (to_const_exn vd2.val_modalities) mmode2) + let mode2 = Mode.Modality.Value.(Const.apply val2_modalities mmode2) in + let mode1 = + match close_over_coercion with + | Some held_locks -> + (* Cross modes according to RHS type as it tends to be by the user. *) + let mode1 = left_mode_cross env vd2.val_type mode1 in + let mode1 = + Env.walk_locks ~env ~item:Value mode1 (Some vd1.val_type) held_locks + in + mode1.mode + | None -> mode1 in let mode2 = right_mode_cross env vd2.val_type mode2 in begin match Mode.Value.submode mode1 mode2 with @@ -667,11 +708,10 @@ let compare_unsafe_mode_crossing umc1 umc2 = | None, None -> None | Some _, None -> Some (Unsafe_mode_crossing (Mode_crossing_only_on First)) | None, Some _ -> Some (Unsafe_mode_crossing (Mode_crossing_only_on Second)) - | Some ({ modal_upper_bounds = mub1 }), - Some ({ modal_upper_bounds = mub2 }) -> - if (Mode.Alloc.Const.le mub1 mub2 && Mode.Alloc.Const.le mub2 mub1) - then None - else Some (Unsafe_mode_crossing Mode_crossing_not_equal) + | Some umc1, Some umc2 -> + if equal_unsafe_mode_crossing umc1 umc2 + then None + else Some (Unsafe_mode_crossing Mode_crossing_not_equal) module Record_diffing = struct @@ -1445,7 +1485,8 @@ let type_declarations ?(equality = false) ~loc env ~mark name Some (Parameter_jkind (ty, Jkind.Violation.of_ (Not_a_subjkind (Jkind.disallow_right original_jkind, - Jkind.disallow_left inferred_jkind)))) + Jkind.disallow_left inferred_jkind, + [])))) | All_good -> let abstr = Btype.type_kind_is_abstract decl2 && decl2.type_manifest = None in let need_variance = diff --git a/upstream/ocaml_flambda/typing/includecore.mli b/upstream/ocaml_flambda/typing/includecore.mli index 65636c51b..941e4f1a8 100644 --- a/upstream/ocaml_flambda/typing/includecore.mli +++ b/upstream/ocaml_flambda/typing/includecore.mli @@ -131,8 +131,24 @@ type mmodes = | All (** Check module inclusion [M1 : MT1 @ m1 <= M2 : MT2 @ m2] for all [m1 <= m2]. *) - | Legacy - (** Check module inclusion [M1 : MT1 @ legacy <= M2 : MT2 @ legacy]. *) + | Legacy of Env.held_locks option + (** Check module inclusion [M1 : MT1 @ legacy <= M2 : MT2 @ legacy]. + If [M1] is a [Pmod_ident] and the current inclusion check is for its + coercion into [M2], we treat all surroudning functions as not closing over + [M1], but closing over components in [M1] required by [MT2]. Therefore, the + locks for [M1] are held, to be walked by each of the components + individually. + + This is potentially unsafe as it doesn't reflect the real runtime behavior, + for at least two reasons: + - The corecion might turn out to be [coercion_none], in which case no + coercion happens, and the functions will be closing over the original module. + - Even if the coercion happens, the functions will be closing over the + original module and projecting needed values out of it. + + The above concern can be resolved by the "ergonomics" discussion in + [typecore.type_ident]. + *) val value_descriptions: loc:Location.t -> Env.t -> string -> diff --git a/upstream/ocaml_flambda/typing/includemod.ml b/upstream/ocaml_flambda/typing/includemod.ml index 37a82bc79..447b27f51 100644 --- a/upstream/ocaml_flambda/typing/includemod.ml +++ b/upstream/ocaml_flambda/typing/includemod.ml @@ -27,7 +27,7 @@ type pos = type modes = Includecore.mmodes = | All - | Legacy + | Legacy of Env.held_locks option module Error = struct @@ -140,6 +140,17 @@ let mark_positive = function i.e. that x1 is the type of an implementation that fulfills the specification x2. If not, Error is raised with a backtrace of the error. *) +let walk_locks ~env ~item = function + | All | Legacy None -> () + | Legacy (Some held_locks) -> + ignore (Env.walk_locks ~env ~item Mode.Value.(legacy |> disallow_right) + None held_locks) + +let append_ldot s = function + | (All | Legacy None) as t -> t + | Legacy (Some (locks, lid, loc)) -> + Legacy (Some (locks, Ldot (lid, s), loc)) + (* Inclusion between value descriptions *) let value_descriptions ~loc env ~mark subst id ~mmodes vd1 vd2 = @@ -530,6 +541,22 @@ and try_modtypes ~in_eq ~loc env ~mark subst ~modes mty1 mty2 orig_shape = in match mty1, mty2 with | _ when shallow_modtypes env subst mty1 mty2 -> + begin match modes with + | Legacy (Some (locks, _, _)) when not (Env.locks_is_empty locks) -> + (* If the coercion being checked is closed over, we close over individual values + in the module, instead of the whole module. *) + let mty1 = Mtype.reduce_alias_lazy env mty1 in + let mty2 = Subst.Lazy.modtype Keep subst mty2 |> Mtype.reduce_alias_lazy env in + begin match mty1, mty2 with + | Some mty1, Some mty2 -> + (* Only for the side-effects of walking locks *) + ignore (try_modtypes ~in_eq ~loc env ~mark subst ~modes mty1 mty2 orig_shape) + | _, _ -> + walk_locks ~env ~item:Module modes + end + | _ -> + walk_locks ~env ~item:Module modes + end; Ok (Tcoerce_none, orig_shape) | (Mty_alias p1, _) when not (is_alias mty2) -> begin @@ -560,6 +587,7 @@ and try_modtypes ~in_eq ~loc env ~mark subst ~modes mty1 mty2 orig_shape = end | Mty_functor (param1, res1), Mty_functor (param2, res2) -> + walk_locks ~env ~item:Module modes; let cc_arg, env, subst = functor_param ~in_eq ~loc env ~mark:(negate_mark mark) subst param1 param2 @@ -579,7 +607,8 @@ and try_modtypes ~in_eq ~loc env ~mark subst ~modes mty1 mty2 orig_shape = var, Shape.app orig_shape ~arg:shape_var in let cc_res = - modtypes ~in_eq ~loc env ~mark subst res1 res2 res_shape ~modes:Legacy + modtypes ~in_eq ~loc env ~mark subst res1 res2 res_shape + ~modes:(Legacy None) in begin match cc_arg, cc_res with | Ok Tcoerce_none, Ok (Tcoerce_none, final_res_shape) -> @@ -677,8 +706,8 @@ and functor_param ~in_eq ~loc env ~mark subst param1 param2 = let arg2' = Subst.Lazy.modtype Keep subst arg2 in let cc_arg = match - modtypes ~in_eq ~loc env ~mark Subst.identity ~modes:Legacy arg2' arg1 - Shape.dummy_mod + modtypes ~in_eq ~loc env ~mark Subst.identity arg2' arg1 + Shape.dummy_mod ~modes:(Legacy None) with | Ok (cc, _) -> Ok cc | Error err -> Error (Error.Mismatch err) @@ -785,6 +814,7 @@ and signature_components : let id, item, shape_map, present_at_runtime = match sigi1, sigi2 with | Sig_value(id1, valdecl1, _) ,Sig_value(_id2, valdecl2, _) -> + let mmodes = append_ldot (Ident.name id1) mmodes in let item = value_descriptions ~loc env ~mark subst id1 ~mmodes (Subst.Lazy.force_value_description valdecl1) @@ -817,6 +847,7 @@ and signature_components : id1, item, shape_map, true | Sig_module(id1, pres1, mty1, _, _), Sig_module(_, pres2, mty2, _, _) -> begin + let mmodes = append_ldot (Ident.name id1) mmodes in let orig_shape = Shape.(proj orig_shape (Item.module_ id1)) in @@ -858,6 +889,7 @@ and signature_components : let item = mark_error_as_unrecoverable item in id1, item, shape_map, false | Sig_class(id1, decl1, _, _), Sig_class(_id2, decl2, _, _) -> + walk_locks ~env ~item:Class (append_ldot (Ident.name id1) mmodes); let item = class_declarations env subst decl1 decl2 in @@ -984,7 +1016,7 @@ let include_functor_signatures ~loc env ~mark subst sig1 sig2 mod_shape = let _, _, comps1 = build_component_table (fun _pos name -> name) sig1 in let paired, unpaired, subst = pair_components subst comps1 sig2 in let d = signature_components ~in_eq:false ~loc ~mark env subst mod_shape - Shape.Map.empty ~mmodes:Legacy + Shape.Map.empty ~mmodes:(Legacy None) (List.rev paired) in let open Sign_diff in @@ -1009,10 +1041,10 @@ let signatures ~in_eq ~loc env ~mark subst sig1 sig2 mod_shape = let sig2 = Subst.Lazy.of_signature sig2 in signatures ~in_eq ~loc env ~mark subst sig1 sig2 mod_shape -let modtypes ~in_eq ~loc env ~mark subst mty1 mty2 shape = +let modtypes ~in_eq ~loc env ~mark subst ~modes mty1 mty2 shape = let mty1 = Subst.Lazy.of_modtype mty1 in let mty2 = Subst.Lazy.of_modtype mty2 in - modtypes ~in_eq ~loc env ~mark subst mty1 mty2 shape + modtypes ~in_eq ~loc env ~mark subst ~modes mty1 mty2 shape let strengthened_modtypes ~in_eq ~loc ~aliasable env ~mark subst mty1 path1 mty2 shape = @@ -1039,7 +1071,7 @@ exception Apply_error of { let check_modtype_inclusion_raw ~loc env mty1 path1 mty2 = let aliasable = can_alias env path1 in strengthened_modtypes ~in_eq:false ~loc ~aliasable env ~mark:Mark_both - Subst.identity ~modes:Legacy mty1 path1 mty2 Shape.dummy_mod + Subst.identity ~modes:(Legacy None) mty1 path1 mty2 Shape.dummy_mod |> Result.map fst let check_modtype_inclusion ~loc env mty1 path1 mty2 = @@ -1049,13 +1081,12 @@ let check_modtype_inclusion ~loc env mty1 path1 mty2 = let check_functor_application_in_path ~errors ~loc ~lid_whole_app ~f0_path ~args - ~arg_path ~arg_mty ~arg_mode ~param_mty env = - Mode.Value.submode_exn arg_mode Mode.Value.legacy; + ~arg_path ~arg_mty ~param_mty env = match check_modtype_inclusion_raw ~loc env arg_mty arg_path param_mty with | Ok _ -> () | Error _errs -> if errors then - let prepare_arg (arg_path, arg_mty, _arg_mode) = + let prepare_arg (arg_path, arg_mty) = let aliasable = can_alias env arg_path in let smd = Mtype.strengthen ~aliasable arg_mty arg_path in (Error.Named arg_path, smd) @@ -1078,7 +1109,7 @@ let compunit0 ~comparison env ~mark impl_name impl_sig intf_name intf_sig unit_shape = match signatures ~in_eq:false ~loc:(Location.in_file impl_name) env ~mark - Subst.identity ~modes:Legacy impl_sig intf_sig unit_shape + Subst.identity ~modes:(Legacy None) impl_sig intf_sig unit_shape with Result.Error reasons -> let diff = Error.diff impl_name intf_name reasons in let cdiff = @@ -1294,7 +1325,8 @@ module Functor_app_diff = struct | ( Anonymous | Named _ | Empty_struct ), Named (_, param) -> match modtypes ~in_eq:false ~loc state.env ~mark:Mark_neither - state.subst ~modes:Legacy arg_mty param Shape.dummy_mod + state.subst ~modes:(Legacy None) arg_mty param + Shape.dummy_mod with | Error mty -> Result.Error (Error.Mismatch mty) | Ok (cc, _) -> Ok cc diff --git a/upstream/ocaml_flambda/typing/jkind.ml b/upstream/ocaml_flambda/typing/jkind.ml index a7a905cc1..4d46c87e0 100644 --- a/upstream/ocaml_flambda/typing/jkind.ml +++ b/upstream/ocaml_flambda/typing/jkind.ml @@ -19,6 +19,8 @@ open Types [@@@warning "+9"] +module Nonempty_list = Misc.Nonempty_list + (* A *sort* is the information the middle/back ends need to be able to compile a manipulation (storing, passing, etc) of a runtime value. *) module Sort = struct @@ -33,6 +35,40 @@ end type sort = Sort.t +module Sub_failure_reason = struct + type t = + | Axis_disagreement of Axis.packed + | Layout_disagreement + | Constrain_ran_out_of_fuel +end + +module Sub_result = struct + type t = + | Equal + | Less + | Not_le of Sub_failure_reason.t Nonempty_list.t + + let of_le_result ~failure_reason (le_result : Misc.Le_result.t) = + match le_result with + | Less -> Less + | Equal -> Equal + | Not_le -> Not_le (failure_reason ()) + + let combine sr1 sr2 = + match sr1, sr2 with + | Equal, Equal -> Equal + | Equal, Less | Less, Equal | Less, Less -> Less + | Not_le reasons1, Not_le reasons2 -> + Not_le Nonempty_list.(reasons1 @ reasons2) + | Not_le reasons, _ | _, Not_le reasons -> Not_le reasons + + let require_le = function + | Less | Equal -> Ok () + | Not_le reason -> Error reason + + let is_le t = require_le t |> Result.is_ok +end + (* A *layout* of a type describes the way values of that type are stored at runtime, including details like width, register convention, calling convention, etc. A layout may be *representable* or *unrepresentable*. The @@ -228,32 +264,36 @@ module Layout = struct | Any, Any -> true | (Any | Sort _ | Product _), _ -> false - let rec sub t1 t2 : Misc.Le_result.t = - match t1, t2 with - | Any, Any -> Equal - | _, Any -> Less - | Any, _ -> Not_le - | Sort s1, Sort s2 -> if Sort.equate s1 s2 then Equal else Not_le - | Product ts1, Product ts2 -> - if List.compare_lengths ts1 ts2 = 0 - then Misc.Le_result.combine_list (List.map2 sub ts1 ts2) - else Not_le - | Product ts1, Sort s2 -> ( - (* This case could use [to_product_sort] because every component will need - to end up less than a sort (so, no [any]), but it seems easier to keep - this case lined up with the inverse case, which definitely cannot use - [to_product_sort]. *) - match Sort.decompose_into_product s2 (List.length ts1) with - | None -> Not_le - | Some ss2 -> - Misc.Le_result.combine_list - (List.map2 (fun t1 s2 -> sub t1 (Sort s2)) ts1 ss2)) - | Sort s1, Product ts2 -> ( - match Sort.decompose_into_product s1 (List.length ts2) with - | None -> Not_le - | Some ss1 -> - Misc.Le_result.combine_list - (List.map2 (fun s1 t2 -> sub (Sort s1) t2) ss1 ts2)) + let sub t1 t2 = + let rec sub t1 t2 : Misc.Le_result.t = + match t1, t2 with + | Any, Any -> Equal + | _, Any -> Less + | Any, _ -> Not_le + | Sort s1, Sort s2 -> if Sort.equate s1 s2 then Equal else Not_le + | Product ts1, Product ts2 -> + if List.compare_lengths ts1 ts2 = 0 + then Misc.Le_result.combine_list (List.map2 sub ts1 ts2) + else Not_le + | Product ts1, Sort s2 -> ( + (* This case could use [to_product_sort] because every component will need + to end up less than a sort (so, no [any]), but it seems easier to keep + this case lined up with the inverse case, which definitely cannot use + [to_product_sort]. *) + match Sort.decompose_into_product s2 (List.length ts1) with + | None -> Not_le + | Some ss2 -> + Misc.Le_result.combine_list + (List.map2 (fun t1 s2 -> sub t1 (Sort s2)) ts1 ss2)) + | Sort s1, Product ts2 -> ( + match Sort.decompose_into_product s1 (List.length ts2) with + | None -> Not_le + | Some ss1 -> + Misc.Le_result.combine_list + (List.map2 (fun s1 t2 -> sub (Sort s1) t2) ss1 ts2)) + in + Sub_result.of_le_result (sub t1 t2) ~failure_reason:(fun () -> + [Layout_disagreement]) let rec intersection t1 t2 = (* pre-condition to [products]: [ts1] and [ts2] have the same length *) @@ -340,7 +380,106 @@ end let raise ~loc err = raise (Error.User_error (loc, err)) (******************************) -(*** Bounds, specialized to the real [type_expr] ***) + +module Mod_bounds = struct + include Types.Jkind_mod_bounds + + let debug_print ppf + { locality; + linearity; + uniqueness; + portability; + contention; + yielding; + externality; + nullability + } = + Format.fprintf ppf + "@[{ locality = %a;@ linearity = %a;@ uniqueness = %a;@ portability = \ + %a;@ contention = %a;@ yielding = %a;@ externality = %a;@ nullability = \ + %a }@]" + Mode.Locality.Const.print locality Mode.Linearity.Const.print linearity + Mode.Uniqueness.Const.print uniqueness Mode.Portability.Const.print + portability Mode.Contention.Const.print contention + Mode.Yielding.Const.print yielding Externality.print externality + Nullability.print nullability + + let min = + Create.f + { f = + (fun (type axis) ~(axis : axis Axis.t) -> + let (module Bound_ops) = Axis.get axis in + Bound_ops.min) + } + + let max = + Create.f + { f = + (fun (type axis) ~(axis : axis Axis.t) -> + let (module Bound_ops) = Axis.get axis in + Bound_ops.max) + } + + let simple ~locality ~linearity ~uniqueness ~portability ~contention ~yielding + ~externality ~nullability = + { locality; + linearity; + uniqueness; + portability; + contention; + yielding; + externality; + nullability + } + + let join = + Map2.f + { f = + (fun (type axis) ~(axis : axis Axis.t) -> + let (module Bound_ops) = Axis.get axis in + Bound_ops.join) + } + + let meet = + Map2.f + { f = + (fun (type axis) ~(axis : axis Axis.t) -> + let (module Bound_ops) = Axis.get axis in + Bound_ops.meet) + } + + let less_or_equal = + Fold2.f + { f = + (fun (type axis) ~(axis : axis Axis.t) b1 b2 -> + let (module Bound_ops) = Axis.get axis in + Sub_result.of_le_result (Bound_ops.less_or_equal b1 b2) + ~failure_reason:(fun () -> [Axis_disagreement (Pack axis)])) + } + ~combine:Sub_result.combine + + let equal = + Fold2.f + { f = + (fun (type axis) ~(axis : axis Axis.t) -> + let (module Bound_ops) = Axis.get axis in + Bound_ops.equal) + } + ~combine:( && ) + + (** Get all axes that are set to max *) + let get_max_axes t = + Axis_set.create ~f:(fun ~axis:(Pack axis) -> + let (module Axis_ops) = Axis.get axis in + let bound = get ~axis t in + Axis_ops.le Axis_ops.max bound) + + let for_arrow = + simple ~linearity:Linearity.Const.max ~locality:Locality.Const.max + ~uniqueness:Uniqueness.Const_op.min ~portability:Portability.Const.max + ~contention:Contention.Const_op.min ~yielding:Yielding.Const.max + ~externality:Externality.max ~nullability:Nullability.Non_null +end module With_bounds = struct type 'd t = 'd Types.with_bounds constraint 'd = 'l * 'r @@ -354,6 +493,24 @@ module With_bounds = struct let join { relevant_axes = axes1 } { relevant_axes = axes2 } = { relevant_axes = Axis_set.union axes1 axes2 } + + let axes_ignored_by_modalities ~mod_bounds + ~type_info:{ relevant_axes = explicit_relevant_axes } = + (* Axes that are max are implicitly relevant. ie, including or excluding an + axis from the set of relevant axes is semantically equivalent if the mod- + bound on that axis is max. + + Note that this mostly matters because we mark axes as /not/ explicitly relevant + on types when the axis is max, for performance reasons - but we don't want to + print constant modalities for those axes! + *) + let implicit_relevant_axes = Mod_bounds.get_max_axes mod_bounds in + let relevant_axes = + Axis_set.union explicit_relevant_axes implicit_relevant_axes + in + let irrelevant_axes = Axis_set.complement relevant_axes in + (* nullability is always implicitly irrelevant since it isn't deep *) + Axis_set.remove irrelevant_axes (Nonmodal Nullability) end let to_best_eff_map = function @@ -484,105 +641,6 @@ module With_bounds = struct | With_bounds tys -> With_bounds (add_bound type_expr { relevant_axes } tys) end -module Mod_bounds = struct - include Types.Jkind_mod_bounds - - let debug_print ppf - { locality; - linearity; - uniqueness; - portability; - contention; - yielding; - externality; - nullability - } = - Format.fprintf ppf - "@[{ locality = %a;@ linearity = %a;@ uniqueness = %a;@ portability = \ - %a;@ contention = %a;@ yielding = %a;@ externality = %a;@ nullability = \ - %a }@]" - Mode.Locality.Const.print locality Mode.Linearity.Const.print linearity - Mode.Uniqueness.Const.print uniqueness Mode.Portability.Const.print - portability Mode.Contention.Const.print contention - Mode.Yielding.Const.print yielding Externality.print externality - Nullability.print nullability - - let min = - Create.f - { f = - (fun (type axis) ~(axis : axis Axis.t) -> - let (module Bound_ops) = Axis.get axis in - Bound_ops.min) - } - - let max = - Create.f - { f = - (fun (type axis) ~(axis : axis Axis.t) -> - let (module Bound_ops) = Axis.get axis in - Bound_ops.max) - } - - let simple ~locality ~linearity ~uniqueness ~portability ~contention ~yielding - ~externality ~nullability = - { locality; - linearity; - uniqueness; - portability; - contention; - yielding; - externality; - nullability - } - - let join = - Map2.f - { f = - (fun (type axis) ~(axis : axis Axis.t) -> - let (module Bound_ops) = Axis.get axis in - Bound_ops.join) - } - - let meet = - Map2.f - { f = - (fun (type axis) ~(axis : axis Axis.t) -> - let (module Bound_ops) = Axis.get axis in - Bound_ops.meet) - } - - let less_or_equal = - Fold2.f - { f = - (fun (type axis) ~(axis : axis Axis.t) -> - let (module Bound_ops) = Axis.get axis in - Bound_ops.less_or_equal) - } - ~combine:Misc.Le_result.combine - - let equal = - Fold2.f - { f = - (fun (type axis) ~(axis : axis Axis.t) -> - let (module Bound_ops) = Axis.get axis in - Bound_ops.equal) - } - ~combine:( && ) - - (** Get all axes that are set to max *) - let get_max_axes t = - Axis_set.create ~f:(fun ~axis:(Pack axis) -> - let (module Axis_ops) = Axis.get axis in - let bound = get ~axis t in - Axis_ops.le Axis_ops.max bound) - - let for_arrow = - simple ~linearity:Linearity.Const.max ~locality:Locality.Const.max - ~uniqueness:Uniqueness.Const.min ~portability:Portability.Const.max - ~contention:Contention.Const.min ~yielding:Yielding.Const.max - ~externality:Externality.max ~nullability:Nullability.Non_null -end - module Layout_and_axes = struct module Allow_disallow = Allowance.Magic_allow_disallow (struct type (_, 'layout, 'd) sided = ('layout, 'd) layout_and_axes @@ -761,6 +819,8 @@ let outcometree_of_modalities_new = ref (fun _ _ _ -> assert false) let set_outcometree_of_modalities_new p = outcometree_of_modalities_new := p +let should_print_with_bounds () = Language_extension.(is_at_least Layouts Alpha) + module Const = struct type 'd t = (Layout.Const.t, 'd) Types.layout_and_axes @@ -831,11 +891,11 @@ module Const = struct { jkind = { layout = Base Value; mod_bounds = - Mod_bounds.simple ~linearity:Linearity.Const.min - ~contention:Contention.Const.min - ~portability:Portability.Const.min - ~uniqueness:Uniqueness.Const.max ~locality:Locality.Const.max - ~yielding:Yielding.Const.min ~externality:Externality.max + Mod_bounds.simple ~locality:Locality.Const.max + ~linearity:Linearity.Const.min + ~portability:Portability.Const.min ~yielding:Yielding.Const.min + ~uniqueness:Uniqueness.Const_op.max + ~contention:Contention.Const_op.min ~externality:Externality.max ~nullability:Nullability.Non_null; with_bounds = No_with_bounds }; @@ -846,11 +906,11 @@ module Const = struct { jkind = { layout = Base Value; mod_bounds = - Mod_bounds.simple ~linearity:Linearity.Const.min - ~contention:Contention.Const.max - ~portability:Portability.Const.min - ~uniqueness:Uniqueness.Const.max ~locality:Locality.Const.max - ~yielding:Yielding.Const.min ~externality:Externality.max + Mod_bounds.simple ~locality:Locality.Const.max + ~linearity:Linearity.Const.min + ~portability:Portability.Const.min ~yielding:Yielding.Const.min + ~contention:Contention.Const_op.max + ~uniqueness:Uniqueness.Const_op.max ~externality:Externality.max ~nullability:Nullability.Non_null; with_bounds = No_with_bounds }; @@ -1015,9 +1075,8 @@ module Const = struct | Some acc, `Valid (Some mode) -> Some (mode :: acc)) (Some []) - let modality_from_relevant_axes relevant_axes = - (* The modality is id along relevant axes and constant along irrelevant axes. *) - let irrelevant_axes = Axis_set.complement relevant_axes in + let modality_to_ignore_axes axes_to_ignore = + (* The modality is constant along axes to ignore and id along others *) List.fold_left (fun acc (Axis.Pack axis) -> match axis with @@ -1038,7 +1097,7 @@ module Const = struct (* TODO: don't know how to print *) acc) Modality.Value.Const.id - (Axis_set.to_list irrelevant_axes) + (Axis_set.to_list axes_to_ignore) (** Write [actual] in terms of [base] *) let convert_with_base ~(base : Builtin.t) (actual : _ t) = @@ -1050,11 +1109,15 @@ module Const = struct in let printable_with_bounds = List.map - (fun (type_expr, ({ relevant_axes } : With_bounds_type_info.t)) -> + (fun (type_expr, type_info) -> + let axes_ignored_by_modalities = + With_bounds.Type_info.axes_ignored_by_modalities + ~mod_bounds:actual.mod_bounds ~type_info + in ( !outcometree_of_type_scheme type_expr, !outcometree_of_modalities_new Types.Immutable [] - (modality_from_relevant_axes relevant_axes) )) + (modality_to_ignore_axes axes_ignored_by_modalities) )) (With_bounds.to_list actual.with_bounds) in match matching_layouts, modal_bounds with @@ -1076,7 +1139,7 @@ module Const = struct let convert jkind = let jkind = - if Language_extension.(is_at_least Layouts Alpha) + if should_print_with_bounds () then jkind else { jkind with with_bounds = No_with_bounds } in @@ -1137,7 +1200,7 @@ module Const = struct | { base; modal_bounds = _ :: _ as modal_bounds; printable_with_bounds } -> ( Outcometree.Ojkind_const_mod - (Ojkind_const_abbreviation base, modal_bounds), + (Some (Ojkind_const_abbreviation base), modal_bounds), printable_with_bounds ) | { base; modal_bounds = []; printable_with_bounds } -> Outcometree.Ojkind_const_abbreviation base, printable_with_bounds @@ -1452,7 +1515,7 @@ module Jkind_desc = struct Mod_bounds.t * (l2 * r2) with_bounds * Fuel_status.t = function (* early cutoff *) | _ - when Misc.Le_result.is_le + when Sub_result.is_le (Mod_bounds.less_or_equal Mod_bounds.max bounds_so_far) -> (* CR layouts v2.8: we can do better by early-terminating on a per-axis basis *) bounds_so_far, No_with_bounds, Sufficient_fuel @@ -1554,7 +1617,7 @@ module Jkind_desc = struct in let layout = Layout.sub lay1 lay2 in let bounds = Mod_bounds.less_or_equal bounds1 bounds2 in - Misc.Le_result.combine layout bounds + Sub_result.combine layout bounds let intersection { layout = lay1; mod_bounds = mod_bounds1; with_bounds = with_bounds1 } @@ -1954,21 +2017,15 @@ let for_arrow = |> mark_best let for_object = - let ({ linearity; - areality = locality; - uniqueness; - portability; - contention; - yielding - } - : Mode.Alloc.Const.t) = - (* The crossing of objects are based on the fact that they are - produced/defined/allocated at legacy, which applies to only the - comonadic axes. *) - Alloc.Const.merge - { comonadic = Alloc.Comonadic.Const.legacy; - monadic = Alloc.Monadic.Const.max - } + (* The crossing of objects are based on the fact that they are + produced/defined/allocated at legacy, which applies to only the + comonadic axes. *) + let ({ linearity; areality = locality; portability; yielding } + : Mode.Alloc.Comonadic.Const.t) = + Alloc.Comonadic.Const.legacy + in + let ({ contention; uniqueness } : Mode.Alloc.Monadic.Const_op.t) = + Alloc.Monadic.Const_op.max in fresh_jkind { layout = Sort (Base Value); @@ -2025,7 +2082,7 @@ let get_layout jk : Layout.Const.t option = Layout.get_const jk.jkind.layout let extract_layout jk = jk.jkind.layout let get_modal_upper_bounds (type l r) ~jkind_of_type (jk : (l * r) jkind) : - Alloc.Const.t = + Alloc.Comonadic.Const.t = let ( ({ layout = _; mod_bounds; with_bounds = No_with_bounds } : Allowance.right_only jkind_desc), _ ) = @@ -2034,12 +2091,22 @@ let get_modal_upper_bounds (type l r) ~jkind_of_type (jk : (l * r) jkind) : let get axis = Mod_bounds.get mod_bounds ~axis in { areality = get (Modal (Comonadic Areality)); linearity = get (Modal (Comonadic Linearity)); - uniqueness = get (Modal (Monadic Uniqueness)); portability = get (Modal (Comonadic Portability)); - contention = get (Modal (Monadic Contention)); yielding = get (Modal (Comonadic Yielding)) } +let get_modal_lower_bounds (type l r) ~jkind_of_type (jk : (l * r) jkind) : + Alloc.Monadic.Const.t = + let ( ({ layout = _; mod_bounds; with_bounds = No_with_bounds } : + Allowance.right_only jkind_desc), + _ ) = + Jkind_desc.normalize ~mode:Ignore_best ~jkind_of_type jk.jkind + in + let get axis = Mod_bounds.get mod_bounds ~axis in + { uniqueness = get (Modal (Monadic Uniqueness)); + contention = get (Modal (Monadic Contention)) + } + let get_externality_upper_bound ~jkind_of_type jk = let ( ({ layout = _; mod_bounds; with_bounds = No_with_bounds } : Allowance.right_only jkind_desc), @@ -2440,9 +2507,12 @@ let format_history ~intro ppf t = module Violation = struct open Format + module Sub_failure_reason = Sub_failure_reason type violation = - | Not_a_subjkind : (allowed * 'r1) jkind * ('l * 'r2) jkind -> violation + | Not_a_subjkind : + (allowed * 'r1) jkind * ('l * 'r2) jkind * Sub_failure_reason.t list + -> violation | No_intersection : 'd jkind * ('l * allowed) jkind -> violation type nonrec t = @@ -2464,11 +2534,89 @@ module Violation = struct | Mode | Layout + let report_reason ppf violation = + (* Print out per-axis information about why the error occurred. This only happens + when modalities are printed because the errors are simple enough when there are no + modalities that it makes the error unnecessarily noisy. + *) + match violation with + | Not_a_subjkind (sub, super, reasons) -> ( + if should_print_with_bounds () + then + let disagreeing_axes = + (* Collect all the axes that disagree into a set. If none disagree, then it + is [None] *) + List.fold_left + (fun disagreeing_axes_so_far reason -> + match + (reason : Sub_failure_reason.t), disagreeing_axes_so_far + with + | Axis_disagreement (Pack axis), Some disagreeing_axes_so_far -> + Some (Axis_set.add disagreeing_axes_so_far axis) + | Axis_disagreement (Pack axis), None -> + Some (Axis_set.singleton axis) + | (Layout_disagreement | Constrain_ran_out_of_fuel), _ -> + disagreeing_axes_so_far) + None reasons + in + let has_modalities = + let jkind_has_modalities jkind = + List.exists + (fun (_, type_info) -> + let axes_ignored_by_modalities = + With_bounds.Type_info.axes_ignored_by_modalities + ~mod_bounds:jkind.jkind.mod_bounds ~type_info + in + not (Axis_set.is_empty axes_ignored_by_modalities)) + (With_bounds.to_list jkind.jkind.with_bounds) + in + jkind_has_modalities sub || jkind_has_modalities super + in + match disagreeing_axes, has_modalities with + | None, _ | _, false -> () + | Some disagreeing_axes, true -> + (* CR: @\n is discouraged by the documentation, but @;@; seems to emit one newline + and then one space rather than two newlines *) + fprintf ppf "@\n@\nThe first mode-crosses less than the second along:"; + Axis_set.to_list disagreeing_axes + |> List.iter (fun (Pack axis : Axis.packed) -> + let pp_bound ppf jkind = + let mod_bound = Mod_bounds.get ~axis jkind.mod_bounds in + let (module Axis_ops) = Axis.get axis in + let with_bounds = + match Axis_ops.(le max mod_bound) with + | true -> + (* If the mod_bound is max, then no with-bounds are relevant *) + [] + | false -> + With_bounds.to_list jkind.with_bounds + |> List.filter_map + (fun + (ty, ({ relevant_axes } : With_bounds_type_info.t)) + -> + match Axis_set.mem relevant_axes axis with + | true -> Some (!outcometree_of_type_scheme ty) + | false -> None) + in + let ojkind = + List.fold_left + (fun acc with_bound -> + Outcometree.Ojkind_const_with (acc, with_bound, [])) + (Outcometree.Ojkind_const_mod + (None, [Format.asprintf "%a" Axis_ops.print mod_bound])) + with_bounds + in + !Oprint.out_jkind_const ppf ojkind + in + fprintf ppf "@; @[%s:@ %a ≰@ %a@]" (Axis.name axis) + pp_bound sub.jkind pp_bound super.jkind)) + | No_intersection _ -> () + let report_general preamble pp_former former ppf t = let mismatch_type = match t.violation with - | Not_a_subjkind (k1, k2) -> - if Misc.Le_result.is_le (Layout.sub k1.jkind.layout k2.jkind.layout) + | Not_a_subjkind (k1, k2, _) -> + if Sub_result.is_le (Layout.sub k1.jkind.layout k2.jkind.layout) then Mode else Layout | No_intersection _ -> Layout @@ -2494,7 +2642,7 @@ module Violation = struct in let Pack_jkind k1, Pack_jkind k2, fmt_k1, fmt_k2, missing_cmi_option = match t with - | { violation = Not_a_subjkind (k1, k2); missing_cmi } -> ( + | { violation = Not_a_subjkind (k1, k2, _); missing_cmi } -> ( let missing_cmi = match missing_cmi with | None -> ( @@ -2551,7 +2699,8 @@ module Violation = struct else fprintf ppf "@[%s%a has %t,@ which %t.@]" preamble pp_former former fmt_k1 fmt_k2; - report_missing_cmi ppf missing_cmi_option + report_missing_cmi ppf missing_cmi_option; + report_reason ppf t.violation let pp_t ppf x = fprintf ppf "%t" x @@ -2601,7 +2750,7 @@ let combine_histories ~type_equal ~jkind_of_type reason (Pack_jkind k1) let choose_subjkind_history k_a history_a k_b history_b = match Jkind_desc.sub ~type_equal ~jkind_of_type k_a k_b with | Less -> history_a - | Not_le -> + | Not_le _ -> (* CR layouts: this will be wrong if we ever have a non-trivial meet in the kind lattice -- which is now! So this is actually wrong. *) history_b @@ -2659,43 +2808,47 @@ let map_type_expr f t = { t with jkind = Jkind_desc.map_type_expr f t.jkind } let check_sub ~jkind_of_type sub super = Jkind_desc.sub ~jkind_of_type sub.jkind super.jkind +let sub_with_reason ~type_equal ~jkind_of_type sub super = + Sub_result.require_le (check_sub ~type_equal ~jkind_of_type sub super) + let sub ~type_equal ~jkind_of_type sub super = - Misc.Le_result.is_le (check_sub ~type_equal ~jkind_of_type sub super) + Result.is_ok (sub_with_reason ~type_equal ~jkind_of_type sub super) type sub_or_intersect = | Sub - | Disjoint - | Has_intersection + | Disjoint of Violation.Sub_failure_reason.t Nonempty_list.t + | Has_intersection of Violation.Sub_failure_reason.t Nonempty_list.t let sub_or_intersect ~type_equal ~jkind_of_type t1 t2 = - if sub ~type_equal ~jkind_of_type t1 t2 - then Sub - else if has_intersection t1 t2 - then Has_intersection - else Disjoint + match sub_with_reason ~type_equal ~jkind_of_type t1 t2 with + | Ok () -> Sub + | Error reason -> + if has_intersection t1 t2 then Has_intersection reason else Disjoint reason let sub_or_error ~type_equal ~jkind_of_type t1 t2 = match sub_or_intersect ~type_equal ~jkind_of_type t1 t2 with | Sub -> Ok () - | _ -> Error (Violation.of_ (Not_a_subjkind (t1, t2))) + | Disjoint reason | Has_intersection reason -> + Error + (Violation.of_ (Not_a_subjkind (t1, t2, Nonempty_list.to_list reason))) let sub_jkind_l ~type_equal ~jkind_of_type ?(allow_any_crossing = false) sub super = (* This function implements the "SUB" judgement from kind-inference.md. *) let open Misc.Stdlib.Monad.Result.Syntax in - let require_le le_result = - match Misc.Le_result.is_le le_result with - | true -> Ok () - | false -> - (* When we report an error, we want to show the best-normalized version of sub, but - the original super. When this check fails, it is usually the case that the super - was written by the user and the sub was inferred. Thus, we should display the - user-written jkind, but simplify the inferred one, since the inferred one is - probably overly complex. *) - (* CR layouts v2.8: It would be useful report to the user why this - violation occurred, specifically which axes the violation is along. *) - let best_sub = normalize ~mode:Require_best ~jkind_of_type sub in - Error (Violation.of_ (Not_a_subjkind (best_sub, super))) + let require_le sub_result = + Sub_result.require_le sub_result + |> Result.map_error (fun reasons -> + (* When we report an error, we want to show the best-normalized version of sub, but + the original super. When this check fails, it is usually the case that the super + was written by the user and the sub was inferred. Thus, we should display the + user-written jkind, but simplify the inferred one, since the inferred one is + probably overly complex. *) + (* CR layouts v2.8: It would be useful report to the user why this + violation occurred, specifically which axes the violation is along. *) + let best_sub = normalize ~mode:Require_best ~jkind_of_type sub in + Violation.of_ + (Not_a_subjkind (best_sub, super, Nonempty_list.to_list reasons))) in let* () = (* Validate layouts *) diff --git a/upstream/ocaml_flambda/typing/jkind.mli b/upstream/ocaml_flambda/typing/jkind.mli index 0fdfa1f49..5ef9e9a05 100644 --- a/upstream/ocaml_flambda/typing/jkind.mli +++ b/upstream/ocaml_flambda/typing/jkind.mli @@ -40,25 +40,6 @@ open Allowance This will eventually be incorporated into the mode solver, but it is defined here because we do not yet track externalities on expressions, just in jkinds. *) -(* CR externals: Move to mode.ml. But see - https://github.com/goldfirere/flambda-backend/commit/d802597fbdaaa850e1ed9209a1305c5dcdf71e17 - first, which was reisenberg's attempt to do so. *) -module Externality : sig - type t = Jkind_axis.Externality.t = - | External (* not managed by the garbage collector *) - | External64 (* not managed by the garbage collector on 64-bit systems *) - | Internal (* managed by the garbage collector *) - - include module type of Jkind_axis.Externality with type t := t -end - -module Nullability : sig - type t = Jkind_axis.Nullability.t = - | Non_null (* proven to not have NULL values *) - | Maybe_null (* may have NULL values *) - - include module type of Jkind_axis.Nullability with type t := t -end module Sort : sig include @@ -77,6 +58,31 @@ end type sort = Sort.t +module Sub_failure_reason : sig + type t = + | Axis_disagreement of Jkind_axis.Axis.packed + | Layout_disagreement + | Constrain_ran_out_of_fuel +end + +module Sub_result : sig + type t = + | Equal + | Less + | Not_le of Sub_failure_reason.t Misc.Nonempty_list.t + + val of_le_result : + failure_reason:(unit -> Sub_failure_reason.t Misc.Nonempty_list.t) -> + Misc.Le_result.t -> + t + + val combine : t -> t -> t + + val require_le : t -> (unit, Sub_failure_reason.t Misc.Nonempty_list.t) result + + val is_le : t -> bool +end + (* The layout of a type describes its memory layout. A layout is either the indeterminate [Any] or a sort, which is a concrete memory layout. *) module Layout : sig @@ -97,7 +103,7 @@ module Layout : sig val of_const : Const.t -> Sort.t t - val sub : Sort.t t -> Sort.t t -> Misc.Le_result.t + val sub : Sort.t t -> Sort.t t -> Sub_result.t end (** A Jkind.t is a full description of the runtime representation of values @@ -153,7 +159,9 @@ module Violation : sig in [sub_jkind_l]. There is no downside to this, as the printing machinery works over l-jkinds. *) | Not_a_subjkind : - (allowed * 'r1) Types.jkind * ('l * 'r2) Types.jkind + (allowed * 'r1) Types.jkind + * ('l * 'r2) Types.jkind + * Sub_failure_reason.t list -> violation | No_intersection : 'd Types.jkind * ('l * allowed) Types.jkind -> violation @@ -503,22 +511,28 @@ val get_layout : 'd Types.jkind -> Layout.Const.t option (** Gets the layout of a jkind, without looking through sort variables. *) val extract_layout : 'd Types.jkind -> Sort.t Layout.t -(** Gets the maximum modes for types of this jkind. *) +(** Gets the maximum comonadic modes for types of this jkind. *) val get_modal_upper_bounds : jkind_of_type:(Types.type_expr -> Types.jkind_l option) -> 'd Types.jkind -> - Mode.Alloc.Const.t + Mode.Alloc.Comonadic.Const.t + +(** Gets the minimum monadic modes for types of this jkind. *) +val get_modal_lower_bounds : + jkind_of_type:(Types.type_expr -> Types.jkind_l option) -> + 'd Types.jkind -> + Mode.Alloc.Monadic.Const.t (** Gets the maximum mode on the externality axis for types of this jkind. *) val get_externality_upper_bound : jkind_of_type:(Types.type_expr -> Types.jkind_l option) -> 'd Types.jkind -> - Externality.t + Jkind_axis.Externality.t (** Computes a jkind that is the same as the input but with an updated maximum mode for the externality axis *) val set_externality_upper_bound : - Types.jkind_r -> Externality.t -> Types.jkind_r + Types.jkind_r -> Jkind_axis.Externality.t -> Types.jkind_r (** Sets the layout in a jkind. *) val set_layout : 'd Types.jkind -> Sort.t Layout.t -> 'd Types.jkind @@ -627,8 +641,11 @@ val sub : type sub_or_intersect = | Sub (** The first jkind is a subjkind of the second. *) - | Disjoint (** The two jkinds have no common ground. *) - | Has_intersection (** The two jkinds have an intersection: try harder. *) + | Disjoint of Sub_failure_reason.t Misc.Nonempty_list.t + (** The two jkinds have no common ground. *) + | Has_intersection of Sub_failure_reason.t Misc.Nonempty_list.t + (** The first jkind is not a subjkind of the second, but the two jkinds have an + intersection: try harder. *) (** [sub_or_intersect t1 t2] does a subtype check, returning a [sub_or_intersect]; see comments there for more info. *) diff --git a/upstream/ocaml_flambda/typing/jkind_axis.ml b/upstream/ocaml_flambda/typing/jkind_axis.ml index 35df1cd63..1a3542180 100644 --- a/upstream/ocaml_flambda/typing/jkind_axis.ml +++ b/upstream/ocaml_flambda/typing/jkind_axis.ml @@ -416,6 +416,8 @@ module Axis_set = struct let add t axis = Axis_collection.set ~axis t true + let singleton axis = add empty axis + let remove t axis = Axis_collection.set ~axis t false let mem t axis = Axis_collection.get ~axis t diff --git a/upstream/ocaml_flambda/typing/jkind_axis.mli b/upstream/ocaml_flambda/typing/jkind_axis.mli index a4ce3e9ba..f3084622e 100644 --- a/upstream/ocaml_flambda/typing/jkind_axis.mli +++ b/upstream/ocaml_flambda/typing/jkind_axis.mli @@ -215,6 +215,8 @@ module Axis_set : sig val empty : t + val singleton : _ Axis.t -> t + val is_empty : t -> bool val add : t -> _ Axis.t -> t diff --git a/upstream/ocaml_flambda/typing/mode.ml b/upstream/ocaml_flambda/typing/mode.ml index 0bb7bf9fe..24be03f62 100644 --- a/upstream/ocaml_flambda/typing/mode.ml +++ b/upstream/ocaml_flambda/typing/mode.ml @@ -352,76 +352,142 @@ module Lattices = struct end) end - type monadic = Uniqueness.t * Contention.t + type monadic = + { uniqueness : Uniqueness.t; + contention : Contention.t + } module Monadic = struct type t = monadic - let min = Uniqueness.min, Contention.min - - let max = Uniqueness.max, Contention.max - - let legacy = Uniqueness.legacy, Contention.legacy - - let le (a0, a1) (b0, b1) = Uniqueness.le a0 b0 && Contention.le a1 b1 + let min = + let uniqueness = Uniqueness.min in + let contention = Contention.min in + { uniqueness; contention } - let join (a0, a1) (b0, b1) = Uniqueness.join a0 b0, Contention.join a1 b1 - - let meet (a0, a1) (b0, b1) = Uniqueness.meet a0 b0, Contention.meet a1 b1 - - let print ppf (a0, a1) = - Format.fprintf ppf "%a,%a" Uniqueness.print a0 Contention.print a1 + let max = + let uniqueness = Uniqueness.max in + let contention = Contention.max in + { uniqueness; contention } - let imply (a0, a1) (b0, b1) = Uniqueness.imply a0 b0, Contention.imply a1 b1 + let legacy = + let uniqueness = Uniqueness.legacy in + let contention = Contention.legacy in + { uniqueness; contention } + + let le m1 m2 = + let { uniqueness = uniqueness1; contention = contention1 } = m1 in + let { uniqueness = uniqueness2; contention = contention2 } = m2 in + Uniqueness.le uniqueness1 uniqueness2 + && Contention.le contention1 contention2 + + let join m1 m2 = + let uniqueness = Uniqueness.join m1.uniqueness m2.uniqueness in + let contention = Contention.join m1.contention m2.contention in + { uniqueness; contention } + + let meet m1 m2 = + let uniqueness = Uniqueness.meet m1.uniqueness m2.uniqueness in + let contention = Contention.meet m1.contention m2.contention in + { uniqueness; contention } + + let imply m1 m2 = + let uniqueness = Uniqueness.imply m1.uniqueness m2.uniqueness in + let contention = Contention.imply m1.contention m2.contention in + { uniqueness; contention } + + let subtract m1 m2 = + let uniqueness = Uniqueness.subtract m1.uniqueness m2.uniqueness in + let contention = Contention.subtract m1.contention m2.contention in + { uniqueness; contention } - let subtract (a0, a1) (b0, b1) = - Uniqueness.subtract a0 b0, Contention.subtract a1 b1 + let print ppf m = + Format.fprintf ppf "%a,%a" Uniqueness.print m.uniqueness Contention.print + m.contention end type 'areality comonadic_with = - 'areality * Linearity.t * Portability.t * Yielding.t + { areality : 'areality; + linearity : Linearity.t; + portability : Portability.t; + yielding : Yielding.t + } module Comonadic_with (Areality : Areality) = struct type t = Areality.t comonadic_with - let min = Areality.min, Linearity.min, Portability.min, Yielding.min + let min = + let areality = Areality.min in + let linearity = Linearity.min in + let portability = Portability.min in + let yielding = Yielding.min in + { areality; linearity; portability; yielding } - let max = Areality.max, Linearity.max, Portability.max, Yielding.max + let max = + let areality = Areality.max in + let linearity = Linearity.max in + let portability = Portability.max in + let yielding = Yielding.max in + { areality; linearity; portability; yielding } let legacy = - Areality.legacy, Linearity.legacy, Portability.legacy, Yielding.legacy - - let le (a0, a1, a2, a3) (b0, b1, b2, b3) = - Areality.le a0 b0 && Linearity.le a1 b1 && Portability.le a2 b2 - && Yielding.le a3 b3 - - let join (a0, a1, a2, a3) (b0, b1, b2, b3) = - ( Areality.join a0 b0, - Linearity.join a1 b1, - Portability.join a2 b2, - Yielding.join a3 b3 ) - - let meet (a0, a1, a2, a3) (b0, b1, b2, b3) = - ( Areality.meet a0 b0, - Linearity.meet a1 b1, - Portability.meet a2 b2, - Yielding.meet a3 b3 ) - - let imply (a0, a1, a2, a3) (b0, b1, b2, b3) = - ( Areality.imply a0 b0, - Linearity.imply a1 b1, - Portability.imply a2 b2, - Yielding.imply a3 b3 ) - - let subtract (a0, a1, a2, a3) (b0, b1, b2, b3) = - ( Areality.subtract a0 b0, - Linearity.subtract a1 b1, - Portability.subtract a2 b2, - Yielding.subtract a3 b3 ) - - let print ppf (a0, a1, a2, a3) = - Format.fprintf ppf "%a,%a,%a,%a" Areality.print a0 Linearity.print a1 - Portability.print a2 Yielding.print a3 + let areality = Areality.legacy in + let linearity = Linearity.legacy in + let portability = Portability.legacy in + let yielding = Yielding.legacy in + { areality; linearity; portability; yielding } + + let le m1 m2 = + let { areality = areality1; + linearity = linearity1; + portability = portability1; + yielding = yielding1 + } = + m1 + in + let { areality = areality2; + linearity = linearity2; + portability = portability2; + yielding = yielding2 + } = + m2 + in + Areality.le areality1 areality2 + && Linearity.le linearity1 linearity2 + && Portability.le portability1 portability2 + && Yielding.le yielding1 yielding2 + + let join m1 m2 = + let areality = Areality.join m1.areality m2.areality in + let linearity = Linearity.join m1.linearity m2.linearity in + let portability = Portability.join m1.portability m2.portability in + let yielding = Yielding.join m1.yielding m2.yielding in + { areality; linearity; portability; yielding } + + let meet m1 m2 = + let areality = Areality.meet m1.areality m2.areality in + let linearity = Linearity.meet m1.linearity m2.linearity in + let portability = Portability.meet m1.portability m2.portability in + let yielding = Yielding.meet m1.yielding m2.yielding in + { areality; linearity; portability; yielding } + + let imply m1 m2 = + let areality = Areality.imply m1.areality m2.areality in + let linearity = Linearity.imply m1.linearity m2.linearity in + let portability = Portability.imply m1.portability m2.portability in + let yielding = Yielding.imply m1.yielding m2.yielding in + { areality; linearity; portability; yielding } + + let subtract m1 m2 = + let areality = Areality.subtract m1.areality m2.areality in + let linearity = Linearity.subtract m1.linearity m2.linearity in + let portability = Portability.subtract m1.portability m2.portability in + let yielding = Yielding.subtract m1.yielding m2.yielding in + { areality; linearity; portability; yielding } + + let print ppf m = + Format.fprintf ppf "%a,%a,%a,%a" Areality.print m.areality Linearity.print + m.linearity Portability.print m.portability Yielding.print m.yielding end [@@inline] @@ -630,23 +696,23 @@ module Lattices_mono = struct let proj : type p r. (p, r) t -> p -> r = fun ax t -> - match ax, t with - | Areality, (a, _, _, _) -> a - | Linearity, (_, lin, _, _) -> lin - | Portability, (_, _, s, _) -> s - | Yielding, (_, _, _, yld) -> yld - | Uniqueness, (uni, _) -> uni - | Contention, (_, con) -> con + match ax with + | Areality -> t.areality + | Linearity -> t.linearity + | Portability -> t.portability + | Yielding -> t.yielding + | Uniqueness -> t.uniqueness + | Contention -> t.contention let update : type p r. (p, r) t -> r -> p -> p = fun ax r t -> - match ax, t with - | Areality, (_, lin, portable, yld) -> r, lin, portable, yld - | Linearity, (area, _, portable, yld) -> area, r, portable, yld - | Portability, (area, lin, _, yld) -> area, lin, r, yld - | Yielding, (area, lin, portable, _) -> area, lin, portable, r - | Uniqueness, (_, con) -> r, con - | Contention, (uni, _) -> uni, r + match ax with + | Areality -> { t with areality = r } + | Linearity -> { t with linearity = r } + | Portability -> { t with portability = r } + | Yielding -> { t with yielding = r } + | Uniqueness -> { t with uniqueness = r } + | Contention -> { t with contention = r } end type ('a, 'b, 'd) morph = @@ -799,7 +865,7 @@ module Lattices_mono = struct end) let set_areality : type a0 a1. a1 -> a0 comonadic_with -> a1 comonadic_with = - fun r (_, lin, portable, yld) -> r, lin, portable, yld + fun r t -> { t with areality = r } let proj_obj : type t r. (t, r) Axis.t -> t obj -> r obj = fun ax obj -> @@ -984,42 +1050,36 @@ module Lattices_mono = struct let monadic_to_comonadic_min : type a. a comonadic_with obj -> Monadic_op.t -> a comonadic_with = - fun obj (uniqueness, contention) -> - match obj with - | Comonadic_with_locality -> - ( Locality.min, - unique_to_linear uniqueness, - contended_to_portable contention, - Yielding.min ) - | Comonadic_with_regionality -> - ( Regionality.min, - unique_to_linear uniqueness, - contended_to_portable contention, - Yielding.min ) + fun obj m -> + let areality : a = + match obj with + | Comonadic_with_locality -> Locality.min + | Comonadic_with_regionality -> Regionality.min + in + let linearity = unique_to_linear m.uniqueness in + let portability = contended_to_portable m.contention in + let yielding = Yielding.min in + { areality; linearity; portability; yielding } let comonadic_to_monadic : type a. a comonadic_with obj -> a comonadic_with -> Monadic_op.t = - fun obj (_, linearity, portability, _) -> - match obj with - | Comonadic_with_locality -> - linear_to_unique linearity, portable_to_contended portability - | Comonadic_with_regionality -> - linear_to_unique linearity, portable_to_contended portability + fun _ m -> + let uniqueness = linear_to_unique m.linearity in + let contention = portable_to_contended m.portability in + { uniqueness; contention } let monadic_to_comonadic_max : type a. a comonadic_with obj -> Monadic_op.t -> a comonadic_with = - fun obj (uniqueness, contention) -> - match obj with - | Comonadic_with_locality -> - ( Locality.max, - unique_to_linear uniqueness, - contended_to_portable contention, - Yielding.max ) - | Comonadic_with_regionality -> - ( Regionality.max, - unique_to_linear uniqueness, - contended_to_portable contention, - Yielding.max ) + fun obj m -> + let areality : a = + match obj with + | Comonadic_with_locality -> Locality.max + | Comonadic_with_regionality -> Regionality.max + in + let linearity = unique_to_linear m.uniqueness in + let portability = contended_to_portable m.contention in + let yielding = Yielding.max in + { areality; linearity; portability; yielding } let rec apply : type a b d. b obj -> (a, b, d) morph -> a -> b = fun dst f a -> @@ -1280,9 +1340,17 @@ end module C = Lattices_mono module S = Solvers_polarized (C) -type monadic = C.monadic +type monadic = C.monadic = + { uniqueness : C.Uniqueness.t; + contention : C.Contention.t + } -type 'a comonadic_with = 'a C.comonadic_with +type 'a comonadic_with = 'a C.comonadic_with = + { areality : 'a; + linearity : C.Linearity.t; + portability : C.Portability.t; + yielding : C.Yielding.t + } module Axis = C.Axis @@ -1515,6 +1583,7 @@ end module Uniqueness = struct module Const = C.Uniqueness + module Const_op = C.Uniqueness_op module Obj = struct type const = Const.t @@ -1538,6 +1607,7 @@ end module Contention = struct module Const = C.Contention + module Const_op = C.Contention_op module Obj = struct type const = Const.t @@ -1605,9 +1675,7 @@ module Comonadic_with (Areality : Areality) = struct type equate_error = equate_step * error - open Obj - - let proj_obj ax = C.proj_obj ax obj + let proj_obj ax = C.proj_obj ax Obj.obj module Const = struct include C.Comonadic_with (Areality.Const) @@ -1626,7 +1694,7 @@ module Comonadic_with (Areality : Areality) = struct let obj = proj_obj ax in C.max obj - let max_with ax c = Axis.update ax c (C.max obj) + let max_with ax c = Axis.update ax c (C.max Obj.obj) let print_axis ax ppf a = let obj = proj_obj ax in @@ -1641,48 +1709,74 @@ module Comonadic_with (Areality : Areality) = struct | Yielding -> (module Yielding.Const) end - let proj ax m = Solver.via_monotone (proj_obj ax) (Proj (Obj.obj, ax)) m + let proj ax m = Obj.Solver.via_monotone (proj_obj ax) (Proj (Obj.obj, ax)) m - let meet_const c m = Solver.via_monotone obj (Meet_with c) m + let meet_const c m = Obj.Solver.via_monotone Obj.obj (Meet_with c) m - let join_const c m = Solver.via_monotone obj (Join_with c) m + let join_const c m = Obj.Solver.via_monotone Obj.obj (Join_with c) m let min_with ax m = - Solver.via_monotone Obj.obj (Min_with ax) (Solver.disallow_right m) + Obj.Solver.via_monotone Obj.obj (Min_with ax) (Obj.Solver.disallow_right m) let max_with ax m = - Solver.via_monotone Obj.obj (Max_with ax) (Solver.disallow_left m) + Obj.Solver.via_monotone Obj.obj (Max_with ax) (Obj.Solver.disallow_left m) let join_with ax c m = join_const (C.min_with Obj.obj ax c) m let meet_with ax c m = meet_const (C.max_with Obj.obj ax c) m - let zap_to_legacy m = + let zap_to_legacy m : Const.t = let areality = proj Areality m |> Areality.zap_to_legacy in let linearity = proj Linearity m |> Linearity.zap_to_legacy in let portability = proj Portability m |> Portability.zap_to_legacy in let yielding = proj Yielding m |> Yielding.zap_to_legacy in - areality, linearity, portability, yielding + { areality; linearity; portability; yielding } - let imply c m = Solver.via_monotone obj (Imply c) (Solver.disallow_left m) + let imply c m = + Obj.Solver.via_monotone Obj.obj (Imply c) (Obj.Solver.disallow_left m) + + let subtract c m = + Obj.Solver.via_monotone Obj.obj (Subtract c) (Obj.Solver.disallow_right m) let legacy = of_const Const.legacy - let axis_of_error - { left = area0, lin0, port0, yld0; right = area1, lin1, port1, yld1 } : - error = - if Areality.Const.le area0 area1 + let axis_of_error (err : Obj.const Solver.error) : error = + let { left = + { areality = areality1; + linearity = linearity1; + portability = portability1; + yielding = yielding1 + }; + right = + { areality = areality2; + linearity = linearity2; + portability = portability2; + yielding = yielding2 + } + } = + err + in + if Areality.Const.le areality1 areality2 then - if Linearity.Const.le lin0 lin1 + if Linearity.Const.le linearity1 linearity2 then - if Portability.Const.le port0 port1 + if Portability.Const.le portability1 portability2 then - if Yielding.Const.le yld0 yld1 + if Yielding.Const.le yielding1 yielding2 then assert false - else Error (Yielding, { left = yld0; right = yld1 }) - else Error (Portability, { left = port0; right = port1 }) - else Error (Linearity, { left = lin0; right = lin1 }) - else Error (Areality, { left = area0; right = area1 }) + else + Error + ( Yielding, + { left = err.left.yielding; right = err.right.yielding } ) + else + Error + ( Portability, + { left = err.left.portability; right = err.right.portability } ) + else + Error + (Linearity, { left = err.left.linearity; right = err.right.linearity }) + else + Error (Areality, { left = err.left.areality; right = err.right.areality }) (* overriding to report the offending axis *) let submode_log m0 m1 ~log : _ result = @@ -1714,9 +1808,7 @@ module Monadic = struct type equate_error = equate_step * error - open Obj - - let proj_obj ax = C.proj_obj ax obj + let proj_obj ax = C.proj_obj ax Obj.obj module Const = struct include C.Monadic @@ -1724,7 +1816,7 @@ module Monadic = struct (* CR zqian: The flipping logic leaking to here is bad. Refactoring needed. *) (* Monadic fragment is flipped, so are the following definitions. *) - let min_with ax c = Axis.update ax c (C.max obj) + let min_with ax c = Axis.update ax c (C.max Obj.obj) let min_axis ax = let obj = proj_obj ax in @@ -1741,46 +1833,63 @@ module Monadic = struct let lattice_of_axis (type a) (axis : (t, a) Axis.t) : (module Lattice with type t = a) = match axis with - | Uniqueness -> (module Uniqueness.Const) - | Contention -> (module Contention.Const) + | Uniqueness -> (module Uniqueness.Const_op) + | Contention -> (module Contention.Const_op) end - let proj ax m = Solver.via_monotone (proj_obj ax) (Proj (Obj.obj, ax)) m + module Const_op = C.Monadic_op + + let proj ax m = Obj.Solver.via_monotone (proj_obj ax) (Proj (Obj.obj, ax)) m (* The monadic fragment is inverted. Most of the inversion logic is taken care by [Solver_polarized], but some remain, such as the [Min_with] below which is inverted from [Max_with]. *) - let meet_const c m = Solver.via_monotone obj (Join_with c) m + let meet_const c m = Obj.Solver.via_monotone Obj.obj (Join_with c) m - let join_const c m = Solver.via_monotone obj (Meet_with c) m + let join_const c m = Obj.Solver.via_monotone Obj.obj (Meet_with c) m let max_with ax m = - Solver.via_monotone Obj.obj (Min_with ax) (Solver.disallow_left m) + Obj.Solver.via_monotone Obj.obj (Min_with ax) (Obj.Solver.disallow_left m) let min_with ax m = - Solver.via_monotone Obj.obj (Max_with ax) (Solver.disallow_right m) + Obj.Solver.via_monotone Obj.obj (Max_with ax) (Obj.Solver.disallow_right m) let join_with ax c m = join_const (C.max_with Obj.obj ax c) m let meet_with ax c m = meet_const (C.min_with Obj.obj ax c) m - let imply c m = Solver.via_monotone obj (Subtract c) (Solver.disallow_left m) + let imply c m = + Obj.Solver.via_monotone Obj.obj (Subtract c) (Obj.Solver.disallow_left m) - let zap_to_legacy m = + let subtract c m = + Obj.Solver.via_monotone Obj.obj (Imply c) (Obj.Solver.disallow_right m) + + let zap_to_legacy m : Const.t = let uniqueness = proj Uniqueness m |> Uniqueness.zap_to_legacy in let contention = proj Contention m |> Contention.zap_to_legacy in - uniqueness, contention + { uniqueness; contention } let legacy = of_const Const.legacy - let axis_of_error { left = uni0, con0; right = uni1, con1 } : error = - if Uniqueness.Const.le uni0 uni1 + let axis_of_error (err : Obj.const Solver.error) : error = + let { left = { uniqueness = uniqueness1; contention = contention1 }; + right = { uniqueness = uniqueness2; contention = contention2 } + } = + err + in + if Uniqueness.Const.le uniqueness1 uniqueness2 then - if Contention.Const.le con0 con1 + if Contention.Const.le contention1 contention2 then assert false - else Error (Contention, { left = con0; right = con1 }) - else Error (Uniqueness, { left = uni0; right = uni1 }) + else + Error + ( Contention, + { left = err.left.contention; right = err.right.contention } ) + else + Error + ( Uniqueness, + { left = err.left.uniqueness; right = err.right.uniqueness } ) (* overriding to report the offending axis *) let submode_log m0 m1 ~log : _ result = @@ -1853,15 +1962,19 @@ module Value_with (Areality : Areality) = struct } let split - { areality; linearity; portability; uniqueness; contention; yielding } = - let monadic = uniqueness, contention in - let comonadic = areality, linearity, portability, yielding in + { areality; linearity; portability; yielding; uniqueness; contention } = + let monadic : Monadic.Const.t = { uniqueness; contention } in + let comonadic : Comonadic.Const.t = + { areality; linearity; portability; yielding } + in { comonadic; monadic } let merge { comonadic; monadic } = - let areality, linearity, portability, yielding = comonadic in - let uniqueness, contention = monadic in - { areality; linearity; portability; uniqueness; contention; yielding } + let ({ areality; linearity; portability; yielding } : Comonadic.Const.t) = + comonadic + in + let ({ uniqueness; contention } : Monadic.Const.t) = monadic in + { areality; linearity; portability; yielding; uniqueness; contention } let print ?verbose () ppf { monadic; comonadic } = Format.fprintf ppf "%a;%a" @@ -2230,6 +2343,18 @@ module Value_with (Areality : Areality) = struct let monadic = Monadic.imply c.monadic monadic in { monadic; comonadic } + let join_const c { comonadic; monadic } = + let c = split c in + let comonadic = Comonadic.join_const c.comonadic comonadic in + let monadic = Monadic.join_const c.monadic monadic in + { monadic; comonadic } + + let subtract c { comonadic; monadic } = + let c = split c in + let comonadic = Comonadic.subtract c.comonadic comonadic in + let monadic = Monadic.subtract c.monadic monadic in + { monadic; comonadic } + let zap_to_ceil { comonadic; monadic } = let monadic = Monadic.zap_to_ceil monadic in let comonadic = Comonadic.zap_to_ceil comonadic in @@ -2493,10 +2618,7 @@ module Modality = struct let zap_to_id = zap_to_floor - let to_const_exn = function - | Const c -> c - | Undefined | Diff _ -> - Misc.fatal_error "Got infered modality but constant modality expected." + let to_const_opt = function Const c -> Some c | Undefined | Diff _ -> None let of_const c = Const c @@ -2645,10 +2767,9 @@ module Modality = struct let c = Mode.Const.imply mm m in Const.Meet_const c - let to_const_exn = function - | Const c -> c - | Undefined | Exactly _ -> - Misc.fatal_error "Got inferred modality but expected constant modality." + let to_const_opt = function + | Const c -> Some c + | Undefined | Exactly _ -> None let of_const c = Const c end @@ -2761,11 +2882,13 @@ module Modality = struct let monadic = Monadic.zap_to_floor monadic in { monadic; comonadic } - let to_const_exn t = + let to_const_opt t = let { monadic; comonadic } = t in - let comonadic = Comonadic.to_const_exn comonadic in - let monadic = Monadic.to_const_exn monadic in - { monadic; comonadic } + Option.bind (Comonadic.to_const_opt comonadic) (fun comonadic -> + Option.bind (Monadic.to_const_opt monadic) (fun monadic -> + Some { monadic; comonadic })) + + let to_const_exn t = t |> to_const_opt |> Option.get let of_const { monadic; comonadic } = let comonadic = Comonadic.of_const comonadic in diff --git a/upstream/ocaml_flambda/typing/mode_intf.mli b/upstream/ocaml_flambda/typing/mode_intf.mli index d1b54bb64..34f5445c7 100644 --- a/upstream/ocaml_flambda/typing/mode_intf.mli +++ b/upstream/ocaml_flambda/typing/mode_intf.mli @@ -229,6 +229,8 @@ module type S = sig include Lattice with type t := t end + module Const_op : Lattice with type t = Const.t + type error = Const.t Solver.error include @@ -254,6 +256,8 @@ module type S = sig include Lattice with type t := t end + module Const_op : Lattice with type t = Const.t + type error = Const.t Solver.error include @@ -281,10 +285,17 @@ module type S = sig and type 'd t = (Const.t, 'd) mode_comonadic end - type 'a comonadic_with = private - 'a * Linearity.Const.t * Portability.Const.t * Yielding.Const.t + type 'a comonadic_with = + { areality : 'a; + linearity : Linearity.Const.t; + portability : Portability.Const.t; + yielding : Yielding.Const.t + } - type monadic = private Uniqueness.Const.t * Contention.Const.t + type monadic = + { uniqueness : Uniqueness.Const.t; + contention : Contention.Const.t + } module Axis : sig (** ('p, 'r) t represents a projection from a product of type ['p] to an @@ -314,9 +325,11 @@ module type S = sig val min_axis : (t, 'a) Axis.t -> 'a end + module Const_op : Lattice with type t = monadic + include Common with module Const := Const - val imply : Const.t -> ('l * 'r) t -> (disallowed * 'r) t + val join_const : Const.t -> ('l * 'r) t -> ('l * 'r) t end module Comonadic : sig @@ -353,6 +366,8 @@ module type S = sig val print_axis : Format.formatter -> ('m, 'a, 'd) axis -> unit + (** Gets the normal lattice for comonadic axes and the "op"ped lattice for + monadic ones. *) val lattice_of_axis : ('m, 'a, 'd) axis -> (module Lattice with type t = 'a) val all_axes : ('l * 'r) axis_packed list @@ -454,6 +469,10 @@ module type S = sig val imply : Const.t -> ('l * 'r) t -> (disallowed * 'r) t + val join_const : Const.t -> ('l * 'r) t -> ('l * 'r) t + + val subtract : Const.t -> ('l * 'r) t -> ('l * disallowed) t + (* The following two are about the scenario where we partially apply a function [A -> B -> C] to [A] and get back [B -> C]. The mode of the three are constrained. *) @@ -649,6 +668,9 @@ module type S = sig (** Asserts the given modality is a const modality, and returns it. *) val to_const_exn : t -> Const.t + (** Checks if the given modality is a const modality *) + val to_const_opt : t -> Const.t option + (** Inject a constant modality. *) val of_const : Const.t -> t diff --git a/upstream/ocaml_flambda/typing/mtype.ml b/upstream/ocaml_flambda/typing/mtype.ml index 750c5c9c4..d997b97ba 100644 --- a/upstream/ocaml_flambda/typing/mtype.ml +++ b/upstream/ocaml_flambda/typing/mtype.ml @@ -165,7 +165,8 @@ let rec reduce_lazy ~aliases env mty = | Mty_alias path when aliases -> begin try let mty = (Env.find_module_lazy path env).md_type in - let mty = strengthen_lazy ~aliasable:true mty path in + let normal_path = Env.normalize_instance_names_in_module_path path in + let mty = strengthen_lazy ~aliasable:true mty normal_path in Some mty with Not_found -> (*Location.prerr_warning Location.none @@ -189,6 +190,8 @@ let rec scrape_lazy ~aliases env mty = | Some mty -> scrape_lazy ~aliases env mty | None -> mty +let reduce_alias_lazy env mty = reduce_lazy ~aliases:true env mty + let reduce_lazy env mty = reduce_lazy ~aliases:false env mty let reduce env mty = diff --git a/upstream/ocaml_flambda/typing/mtype.mli b/upstream/ocaml_flambda/typing/mtype.mli index cd095995c..f2c5d426b 100644 --- a/upstream/ocaml_flambda/typing/mtype.mli +++ b/upstream/ocaml_flambda/typing/mtype.mli @@ -27,6 +27,8 @@ val scrape_alias: Env.t -> module_type -> module_type or abstract module type ident. *) val reduce_lazy: Env.t -> Subst.Lazy.module_type -> Subst.Lazy.module_type option +val reduce_alias_lazy: + Env.t -> Subst.Lazy.module_type -> Subst.Lazy.module_type option val reduce: Env.t -> module_type -> module_type option (* Expand one toplevel module abbreviation. Return None if no expansion is possible. *) diff --git a/upstream/ocaml_flambda/typing/oprint.ml b/upstream/ocaml_flambda/typing/oprint.ml index 70e1cd6dc..c8ec4c9df 100644 --- a/upstream/ocaml_flambda/typing/oprint.ml +++ b/upstream/ocaml_flambda/typing/oprint.ml @@ -642,8 +642,13 @@ and print_out_jkind_const ppf ojkind = | Ojkind_const_default -> fprintf ppf "_" | Ojkind_const_abbreviation abbrev -> fprintf ppf "%s" abbrev | Ojkind_const_mod (base, modes) -> + let pp_base ppf base = + match base with + | Some base -> fprintf ppf "%a " (pp_element ~nested:true) base + | None -> () + in Misc.pp_parens_if nested (fun ppf (base, modes) -> - fprintf ppf "%a mod @[%a@]" (pp_element ~nested:true) base + fprintf ppf "%amod @[%a@]" pp_base base (pp_print_list ~pp_sep:(fun ppf () -> fprintf ppf "@ ") (fun ppf -> fprintf ppf "%s")) diff --git a/upstream/ocaml_flambda/typing/outcometree.mli b/upstream/ocaml_flambda/typing/outcometree.mli index c0a3b18cb..d2045b25f 100644 --- a/upstream/ocaml_flambda/typing/outcometree.mli +++ b/upstream/ocaml_flambda/typing/outcometree.mli @@ -104,7 +104,8 @@ type out_ret_mode = type out_jkind_const = | Ojkind_const_default | Ojkind_const_abbreviation of string - | Ojkind_const_mod of out_jkind_const * string list + (** The base of [Ojkind_const_mod] is optional to enable printing individual axes *) + | Ojkind_const_mod of out_jkind_const option * string list | Ojkind_const_with of out_jkind_const * out_type * out_modality_new list | Ojkind_const_kind_of of out_type | Ojkind_const_product of out_jkind_const list diff --git a/upstream/ocaml_flambda/typing/parmatch.ml b/upstream/ocaml_flambda/typing/parmatch.ml index 9b07bd878..c7f6dde2f 100644 --- a/upstream/ocaml_flambda/typing/parmatch.ml +++ b/upstream/ocaml_flambda/typing/parmatch.ml @@ -335,8 +335,8 @@ module Compat | ((Tpat_any|Tpat_var _),_) | (_,(Tpat_any|Tpat_var _)) -> true (* Structural induction *) - | Tpat_alias (p,_,_,_,_),_ -> compat p q - | _,Tpat_alias (q,_,_,_,_) -> compat p q + | Tpat_alias (p,_,_,_,_,_),_ -> compat p q + | _,Tpat_alias (q,_,_,_,_,_) -> compat p q | Tpat_or (p1,p2,_),_ -> (compat p1 q || compat p2 q) | _,Tpat_or (q1,q2,_) -> @@ -1216,7 +1216,7 @@ let build_other ext env = let rec has_instance p = match p.pat_desc with | Tpat_variant (l,_,r) when is_absent l r -> false | Tpat_any | Tpat_var _ | Tpat_constant _ | Tpat_variant (_,None,_) -> true - | Tpat_alias (p,_,_,_,_) | Tpat_variant (_,Some p,_) -> has_instance p + | Tpat_alias (p,_,_,_,_,_) | Tpat_variant (_,Some p,_) -> has_instance p | Tpat_or (p1,p2,_) -> has_instance p1 || has_instance p2 | Tpat_construct (_,_,ps, _) | Tpat_array (_, _, ps) -> has_instances ps @@ -1676,7 +1676,7 @@ let is_var_column rs = (* Standard or-args for left-to-right matching *) let rec or_args p = match p.pat_desc with | Tpat_or (p1,p2,_) -> p1,p2 -| Tpat_alias (p,_,_,_,_) -> or_args p +| Tpat_alias (p,_,_,_,_,_) -> or_args p | _ -> assert false (* Just remove current column *) @@ -1856,8 +1856,8 @@ and every_both pss qs q1 q2 = let rec le_pat p q = match (p.pat_desc, q.pat_desc) with | (Tpat_var _|Tpat_any),_ -> true - | Tpat_alias(p,_,_,_,_), _ -> le_pat p q - | _, Tpat_alias(q,_,_,_,_) -> le_pat p q + | Tpat_alias(p,_,_,_,_,_), _ -> le_pat p q + | _, Tpat_alias(q,_,_,_,_,_) -> le_pat p q | Tpat_constant(c1), Tpat_constant(c2) -> const_compare c1 c2 = 0 | Tpat_construct(_,c1,ps,_), Tpat_construct(_,c2,qs,_) -> Types.equal_tag c1.cstr_tag c2.cstr_tag && le_pats ps qs @@ -1917,8 +1917,8 @@ let get_mins le ps = *) let rec lub p q = match p.pat_desc,q.pat_desc with -| Tpat_alias (p,_,_,_,_),_ -> lub p q -| _,Tpat_alias (q,_,_,_,_) -> lub p q +| Tpat_alias (p,_,_,_,_,_),_ -> lub p q +| _,Tpat_alias (q,_,_,_,_,_) -> lub p q | (Tpat_any|Tpat_var _),_ -> q | _,(Tpat_any|Tpat_var _) -> p | Tpat_or (p1,p2,_),_ -> orlub p1 p2 q @@ -2150,7 +2150,7 @@ let rec collect_paths_from_pat r p = match p.pat_desc with List.fold_left (fun r (_, _, p) -> collect_paths_from_pat r p) r lps -| Tpat_variant (_, Some p, _) | Tpat_alias (p,_,_,_,_) -> +| Tpat_variant (_, Some p, _) | Tpat_alias (p,_,_,_,_,_) -> collect_paths_from_pat r p | Tpat_or (p1,p2,_) -> collect_paths_from_pat (collect_paths_from_pat r p1) p2 @@ -2290,7 +2290,7 @@ let inactive ~partial pat = List.for_all (fun (_,p,_) -> loop p) ps | Tpat_construct (_, _, ps, _) | Tpat_array (Immutable, _, ps) -> List.for_all (fun p -> loop p) ps - | Tpat_alias (p,_,_,_,_) | Tpat_variant (_, Some p, _) -> + | Tpat_alias (p,_,_,_,_,_) | Tpat_variant (_, Some p, _) -> loop p | Tpat_record (ldps,_) -> List.for_all @@ -2419,7 +2419,7 @@ type amb_row = { row : pattern list ; varsets : Ident.Set.t list; } let simplify_head_amb_pat head_bound_variables varsets ~add_column p ps k = let rec simpl head_bound_variables varsets p ps k = match (Patterns.General.view p).pat_desc with - | `Alias (p,x,_,_,_) -> + | `Alias (p,x,_,_,_,_) -> simpl (Ident.Set.add x head_bound_variables) varsets p ps k | `Var (x, _, _, _) -> simpl (Ident.Set.add x head_bound_variables) varsets Patterns.omega ps k diff --git a/upstream/ocaml_flambda/typing/patterns.ml b/upstream/ocaml_flambda/typing/patterns.ml index b383829b0..9de5270c6 100644 --- a/upstream/ocaml_flambda/typing/patterns.ml +++ b/upstream/ocaml_flambda/typing/patterns.ml @@ -85,7 +85,8 @@ module General = struct type view = [ | Half_simple.view | `Var of Ident.t * string loc * Uid.t * Mode.Value.l - | `Alias of pattern * Ident.t * string loc * Uid.t * Mode.Value.l + | `Alias of pattern * Ident.t * string loc + * Uid.t * Mode.Value.l * Types.type_expr ] type pattern = view pattern_data @@ -94,8 +95,8 @@ module General = struct `Any | Tpat_var (id, str, uid, mode) -> `Var (id, str, uid, mode) - | Tpat_alias (p, id, str, uid, mode) -> - `Alias (p, id, str, uid, mode) + | Tpat_alias (p, id, str, uid, mode, ty) -> + `Alias (p, id, str, uid, mode, ty) | Tpat_constant cst -> `Constant cst | Tpat_tuple ps -> @@ -120,7 +121,8 @@ module General = struct let erase_desc = function | `Any -> Tpat_any | `Var (id, str, uid, mode) -> Tpat_var (id, str, uid, mode) - | `Alias (p, id, str, uid, mode) -> Tpat_alias (p, id, str, uid, mode) + | `Alias (p, id, str, uid, mode, ty) -> + Tpat_alias (p, id, str, uid, mode, ty) | `Constant cst -> Tpat_constant cst | `Tuple ps -> Tpat_tuple ps | `Unboxed_tuple ps -> Tpat_unboxed_tuple ps @@ -141,7 +143,7 @@ module General = struct let rec strip_vars (p : pattern) : Half_simple.pattern = match p.pat_desc with - | `Alias (p, _, _, _, _) -> strip_vars (view p) + | `Alias (p, _, _, _, _, _) -> strip_vars (view p) | `Var _ -> { p with pat_desc = `Any } | #Half_simple.view as view -> { p with pat_desc = view } end diff --git a/upstream/ocaml_flambda/typing/patterns.mli b/upstream/ocaml_flambda/typing/patterns.mli index 59f632110..52708b237 100644 --- a/upstream/ocaml_flambda/typing/patterns.mli +++ b/upstream/ocaml_flambda/typing/patterns.mli @@ -69,7 +69,8 @@ module General : sig type view = [ | Half_simple.view | `Var of Ident.t * string loc * Uid.t * Mode.Value.l - | `Alias of pattern * Ident.t * string loc * Uid.t * Mode.Value.l + | `Alias of pattern * Ident.t * string loc * Uid.t + * Mode.Value.l * Types.type_expr ] type pattern = view pattern_data diff --git a/upstream/ocaml_flambda/typing/persistent_env.ml b/upstream/ocaml_flambda/typing/persistent_env.ml index 271f8121e..512371238 100644 --- a/upstream/ocaml_flambda/typing/persistent_env.ml +++ b/upstream/ocaml_flambda/typing/persistent_env.ml @@ -56,13 +56,6 @@ type error = expected : Global_module.Name.t; actual : Global_module.Name.t; } - | Inconsistent_global_name_resolution of { - name: Global_module.Name.t; - old_global : Global_module.t; - new_global : Global_module.t; - first_mentioned_by : Global_module.Name.t; - now_mentioned_by : Global_module.Name.t; - } | Unbound_module_as_argument_value of { instance: Global_module.Name.t; value: Global_module.Name.t; @@ -92,9 +85,15 @@ type can_load_cmis = | Can_load_cmis | Cannot_load_cmis of Lazy_backtrack.log +(* Whether a global name was first encountered in this module or by importing + from somewhere else *) +type global_name_mentioned_by = + | Current + | Other of Global_module.Name.t + type global_name_info = { - gn_global : Global_module.t; - gn_mentioned_by : Global_module.Name.t; (* For error reporting *) + gn_global : Global_module.With_precision.t; + gn_mentioned_by : global_name_mentioned_by; (* For error reporting *) } (* Data relating directly to a .cmi - does not depend on arguments *) @@ -140,6 +139,7 @@ type binding = type 'a pers_struct_info = { ps_name_info: pers_name; ps_binding: binding; + ps_canonical : bool; ps_val : 'a; } @@ -297,7 +297,8 @@ let without_cmis penv f x = res let fold {persistent_structures; _} f x = - Hashtbl.fold (fun name ps x -> f name ps.ps_val x) + Hashtbl.fold + (fun name ps x -> if ps.ps_canonical then f name ps.ps_val x else x) persistent_structures x (* Reading persistent structures from .cmi files *) @@ -401,22 +402,75 @@ let find_import ~allow_hidden penv ~check modname = add_import penv modname; acknowledge_import penv ~check modname psig -let remember_global { globals; _ } global ~mentioned_by = - if Global_module.has_arguments global then - let global_name = Global_module.to_name global in - match Hashtbl.find globals global_name with - | exception Not_found -> - Hashtbl.add globals global_name - { gn_global = global; gn_mentioned_by = mentioned_by } - | { gn_global = old_global; gn_mentioned_by = first_mentioned_by } -> - if not (Global_module.equal old_global global) then - error (Inconsistent_global_name_resolution { - name = global_name; - old_global; - new_global = global; - first_mentioned_by; - now_mentioned_by = mentioned_by; - }) +let remember_global { globals; _ } global ~precision ~mentioned_by = + let global_name = Global_module.to_name global in + match Hashtbl.find globals global_name with + | exception Not_found -> + Hashtbl.add globals global_name + { gn_global = (global, precision); + gn_mentioned_by = mentioned_by; + } + | { gn_global = old_global; + gn_mentioned_by = first_mentioned_by } -> + let new_global = global, precision in + match + Global_module.With_precision.meet old_global new_global + with + | updated_global -> + if not (old_global == updated_global) then + Hashtbl.replace globals global_name + { gn_global = updated_global; + gn_mentioned_by = first_mentioned_by } + | exception Global_module.With_precision.Inconsistent -> + let pp_mentioned_by ppf = function + | Current -> + Format.fprintf ppf "this compilation unit" + | Other modname -> + Style.as_inline_code Global_module.Name.print ppf modname + in + Misc.fatal_errorf + "@[The name %a@ was bound to %a@ by %a@ \ + but it is instead bound to %a@ by %a.@]" + (Style.as_inline_code Global_module.Name.print) global_name + (Style.as_inline_code Global_module.With_precision.print) old_global + pp_mentioned_by first_mentioned_by + (Style.as_inline_code Global_module.With_precision.print) new_global + pp_mentioned_by mentioned_by + +let rec approximate_global_by_name penv global_name = + let { param_imports; _ } = penv in + (* We're not looking up this global's .cmi, so we can't know its parameters + exactly. Therefore we don't know what the hidden arguments in the + elaborated [Global_module.t] should be. However, we know that each hidden + argument is (a) not a visible argument and (b) a parameter of the importing + module (subset rule). Therefore it is a sound overapproximation to take as + a hidden argument each known parameter that isn't the name of a visible + argument. *) + let ({ head; args = visible_args } : Global_module.Name.t) = global_name in + let params_not_being_passed, visible_args = + List.fold_left_map + (fun params ({ param; value } : _ Global_module.Argument.t) -> + let params = Param_set.remove param params in + let value = approximate_global_by_name penv value in + let arg : _ Global_module.Argument.t = { param; value } in + params, arg) + !param_imports + visible_args + in + let arg_of_param (param : Global_module.Name.t) : Global_module.t = + (* CR-someday Really should just have a separate Parameter_name.t type *) + (* Assume the parameter has no arguments because it can't have any *) + Global_module.create_exn param.head [] ~hidden_args:[] + in + let hidden_args = + Param_set.elements params_not_being_passed + |> List.map + (fun param -> + ({ param; value = arg_of_param param } : _ Global_module.Argument.t)) + in + let global = Global_module.create_exn head visible_args ~hidden_args in + remember_global penv global ~precision:Approximate ~mentioned_by:Current; + global let current_unit_is_aux name ~allow_args = match CU.get_current () with @@ -467,18 +521,23 @@ let check_for_unset_parameters penv global = })) global.Global_module.hidden_args -let rec global_of_global_name penv ~check name = +let rec global_of_global_name penv ~check name ~allow_excess_args = + let load () = + let pn = + find_pers_name ~allow_hidden:true penv ~check name ~allow_excess_args + in + pn.pn_global + in match Hashtbl.find penv.globals name with - | { gn_global; _ } -> gn_global - | exception Not_found -> - let pn = find_pers_name ~allow_hidden:true penv check name in - pn.pn_global + | { gn_global = (global, Exact); _ } -> global + | { gn_global = (_, Approximate); _ } -> load () + | exception Not_found -> load () -and compute_global penv modname ~params check = +and compute_global penv modname ~params ~check ~allow_excess_args = let arg_global_by_param_name = List.map (fun ({ param = name; value } : Global_module.Name.argument) -> - match global_of_global_name penv ~check value with + match global_of_global_name penv ~check value ~allow_excess_args with | value -> name, value | exception Not_found -> error @@ -518,18 +577,23 @@ and compute_global penv modname ~params check = ()) ~right_only: (fun (param, value) -> - (* Argument with no parameter: not fine *) - raise - (Error (Imported_module_has_no_such_parameter { - imported = CU.Name.of_head_of_global_name modname; - valid_parameters = params |> List.map Global_module.to_name; - parameter = param; - value = value |> Global_module.to_name; - }))) + (* Argument with no parameter: fine only if allowed by flag *) + if not allow_excess_args then + raise + (Error (Imported_module_has_no_such_parameter { + imported = CU.Name.of_head_of_global_name modname; + valid_parameters = + params |> List.map Global_module.to_name; + parameter = param; + value = value |> Global_module.to_name; + }))) ~both: (fun (param_name, expected_type_global) (_arg_name, arg_value_global) -> let arg_value = arg_value_global |> Global_module.to_name in - let pn = find_pers_name ~allow_hidden:true penv check arg_value in + let pn = + find_pers_name ~allow_hidden:true penv ~check arg_value + ~allow_excess_args + in let actual_type = match pn.pn_arg_for with | None -> @@ -539,7 +603,7 @@ and compute_global penv modname ~params check = | Some ty -> ty in let actual_type_global = - global_of_global_name penv ~check actual_type + global_of_global_name ~allow_excess_args penv ~check actual_type in if not (Global_module.equal expected_type_global actual_type_global) then begin @@ -577,17 +641,47 @@ and compute_global penv modname ~params check = let global, _changed = Global_module.subst global_without_args subst in global -and acknowledge_pers_name penv check global_name import = +and acknowledge_pers_name penv check global_name import ~allow_excess_args = + let {persistent_names; _} = penv in let params = import.imp_params in - let arg_for = import.imp_arg_for in - let sign = import.imp_raw_sign in - let global = compute_global penv global_name ~params check in + let global = + compute_global penv global_name ~params ~check ~allow_excess_args + in + (* Check whether this global is already known. Possible if there are excess + arguments (or there were in a previous call) since then more than one + [global_name] will map to the same [global]. *) + let canonical_global_name = + (* The minimal form of the global name, without any excess arguments *) + Global_module.to_name global + in + let pn = + match Hashtbl.find_opt persistent_names canonical_global_name with + | Some pn -> + pn + | None -> + acknowledge_new_pers_name penv check canonical_global_name global import + in + if not (Global_module.Name.equal global_name canonical_global_name) then + (* Just remember that both names point here. Note that we don't call + [remember_global], since it will already have been called by + [acknowledge_new_pers_name] (either just now or earlier). This is + annoying in the case that there were _visible_ excess arguments, since + the approximation will just stay in [penv.globals], but it doesn't do + any damage and at some point it will be substituted away. *) + (* CR-someday lmaurer: Modify [remember_global] so that it can remember + multiple global names mapped to the same global. Only likely to be + relevant if there are _a lot_ of bound globals. *) + Hashtbl.add persistent_names global_name pn; + pn +and acknowledge_new_pers_name penv check global_name global import = (* This checks only [global] itself without recursing into argument values. That's fine, however, since those argument values will have come from recursive calls to [global_of_global_name] and therefore have passed through here already. *) check_for_unset_parameters penv global; let {persistent_names; _} = penv in + let arg_for = import.imp_arg_for in + let sign = import.imp_raw_sign in let sign = let bindings = List.map @@ -599,8 +693,9 @@ and acknowledge_pers_name penv check global_name import = Signature_with_global_bindings.subst sign bindings in Array.iter - (fun bound_global -> - remember_global penv bound_global ~mentioned_by:global_name) + (fun (bound_global, precision) -> + remember_global penv bound_global ~precision + ~mentioned_by:(Other global_name)) sign.bound_globals; let pn = { pn_import = import; pn_global = global; @@ -609,23 +704,30 @@ and acknowledge_pers_name penv check global_name import = } in if check then check_consistency penv import; Hashtbl.add persistent_names global_name pn; - remember_global penv global ~mentioned_by:global_name; + remember_global penv global ~precision:Exact ~mentioned_by:Current; pn -and find_pers_name ~allow_hidden penv check name = +and find_pers_name ~allow_hidden penv ~check name ~allow_excess_args = let {persistent_names; _} = penv in match Hashtbl.find persistent_names name with | pn -> pn | exception Not_found -> let unit_name = CU.Name.of_head_of_global_name name in let import = find_import ~allow_hidden penv ~check unit_name in - acknowledge_pers_name penv check name import + acknowledge_pers_name penv check name import ~allow_excess_args let read_pers_name penv check name filename = let unit_name = CU.Name.of_head_of_global_name name in let import = read_import penv ~check unit_name filename in acknowledge_pers_name penv check name import +let normalize_global_name penv modname = + let new_modname = + global_of_global_name penv modname ~check:true ~allow_excess_args:true + |> Global_module.to_name + in + if Global_module.Name.equal modname new_modname then modname else new_modname + let need_local_ident penv (global : Global_module.t) = (* There are three equivalent ways to phrase the question we're asking here: @@ -710,7 +812,7 @@ type 'a sig_reader = (* Add a persistent structure to the hash table and bind it in the [Env]. Checks that OCaml source is allowed to refer to this module. *) -let acknowledge_pers_struct penv modname pers_name val_of_pers_sig = +let acknowledge_new_pers_struct penv modname pers_name val_of_pers_sig = let {persistent_structures; _} = penv in let import = pers_name.pn_import in let global = pers_name.pn_global in @@ -756,25 +858,43 @@ let acknowledge_pers_struct penv modname pers_name val_of_pers_sig = { ps_name_info = pers_name; ps_binding = binding; ps_val = pm; + ps_canonical = true; } in Hashtbl.add persistent_structures modname ps; ps -let read_pers_struct penv val_of_pers_sig check modname cmi ~add_binding = - let pers_name = read_pers_name penv check modname cmi in - if add_binding then - ignore - (acknowledge_pers_struct penv modname pers_name val_of_pers_sig - : _ pers_struct_info); +let acknowledge_pers_struct penv modname pers_name val_of_pers_sig = + (* This is the same dance that [acknowledge_pers_name] does. See comments + there. *) + let {persistent_structures; _} = penv in + let canonical_modname = Global_module.to_name pers_name.pn_global in + let ps = + match Hashtbl.find_opt persistent_structures canonical_modname with + | Some ps -> ps + | None -> + acknowledge_new_pers_struct penv canonical_modname pers_name + val_of_pers_sig + in + if not (Global_module.Name.equal modname canonical_modname) then + Hashtbl.add persistent_structures modname { ps with ps_canonical = false }; + ps + +let read_pers_struct penv check modname cmi = + let pers_name = + read_pers_name penv check modname cmi ~allow_excess_args:false + in pers_name.pn_sign -let find_pers_struct ~allow_hidden penv val_of_pers_sig check name = +let find_pers_struct + ~allow_hidden penv val_of_pers_sig ~check name ~allow_excess_args = let {persistent_structures; _} = penv in match Hashtbl.find persistent_structures name with | ps -> check_visibility ~allow_hidden ps.ps_name_info.pn_import; ps | exception Not_found -> - let pers_name = find_pers_name ~allow_hidden penv check name in + let pers_name = + find_pers_name ~allow_hidden penv ~check name ~allow_excess_args + in acknowledge_pers_struct penv name pers_name val_of_pers_sig let describe_prefix ppf prefix = @@ -788,7 +908,8 @@ module Style = Misc.Style let check_pers_struct ~allow_hidden penv f ~loc name = let name_as_string = CU.Name.to_string (CU.Name.of_head_of_global_name name) in try - ignore (find_pers_struct ~allow_hidden penv f false name) + ignore (find_pers_struct ~allow_hidden penv f ~check:false name + ~allow_excess_args:true) with | Not_found -> let warn = Warnings.No_cmi_file(name_as_string, None) in @@ -825,17 +946,17 @@ let check_pers_struct ~allow_hidden penv f ~loc name = | Imported_module_has_no_such_parameter _ -> assert false | Not_compiled_as_argument _ -> assert false | Argument_type_mismatch _ -> assert false - | Inconsistent_global_name_resolution _ -> assert false | Unbound_module_as_argument_value _ -> assert false in let warn = Warnings.No_cmi_file(name_as_string, Some msg) in Location.prerr_warning loc warn -let read penv f modname a ~add_binding = - read_pers_struct penv f true modname a ~add_binding +let read penv modname a = + read_pers_struct penv true modname a -let find ~allow_hidden penv f name = - (find_pers_struct ~allow_hidden penv f true name).ps_val +let find ~allow_hidden penv f name ~allow_excess_args = + (find_pers_struct ~allow_hidden ~allow_excess_args penv f ~check:true + name).ps_val let check ~allow_hidden penv f ~loc name = let {persistent_structures; _} = penv in @@ -844,6 +965,12 @@ let check ~allow_hidden penv f ~loc name = whether the check succeeds, to help make builds more deterministic. *) add_import penv (name |> CU.Name.of_head_of_global_name); + let _ : Global_module.t = + (* Record an overapproximation of the elaborated form of this name so that + substitution will work when the signature we're compiling is imported + later *) + approximate_global_by_name penv name + in if (Warnings.is_active (Warnings.No_cmi_file("", None))) then !add_delayed_check_forward (fun () -> check_pers_struct ~allow_hidden penv f ~loc name) @@ -893,7 +1020,12 @@ let runtime_parameter_bindings {persistent_structures; _} = (fun ps -> match ps.ps_binding with | Runtime_parameter local_ident -> - Some (ps.ps_name_info.pn_global, local_ident) + if ps.ps_canonical then + Some (ps.ps_name_info.pn_global, local_ident) + else + (* This is a forward from a non-canonical name, not an entry we + need to keep *) + None | Constant _ -> None) |> List.of_seq @@ -922,15 +1054,23 @@ let make_cmi penv modname kind sign alerts = let params = (* Needs to be consistent with [Translmod] *) parameters penv - |> List.map (global_of_global_name penv ~check:true) + |> List.map (global_of_global_name penv ~check:true ~allow_excess_args:false) in (* Need to calculate [params] before these since [global_of_global_name] has side effects *) let crcs = imports penv in let globals = Hashtbl.to_seq_values penv.globals + |> Seq.filter_map + (fun { gn_global; _ } -> + let global, _precision = gn_global in + if Global_module.is_complete global then + (* The globals we need to remember here are the ones that are + relevant for substitution. A complete global is precisely one + for which no further substitutions can apply. *) + None + else Some gn_global) |> Array.of_seq - |> Array.map (fun ({ gn_global; _ }) -> gn_global) in { cmi_name = modname; @@ -1078,16 +1218,6 @@ let report_error ppf = (Style.as_inline_code Global_module.Name.print) actual (Style.as_inline_code Location.print_filename) filename Global_module.Name.print expected - | Inconsistent_global_name_resolution - { name; old_global; new_global; first_mentioned_by; now_mentioned_by } -> - fprintf ppf - "@[The name %a@ was bound to %a@ by %a@ \ - but it is instead bound to %a@ by %a.@]" - (Style.as_inline_code Global_module.Name.print) name - (Style.as_inline_code Global_module.print) old_global - (Style.as_inline_code Global_module.Name.print) first_mentioned_by - (Style.as_inline_code Global_module.print) new_global - (Style.as_inline_code Global_module.Name.print) now_mentioned_by | Unbound_module_as_argument_value { instance; value } -> fprintf ppf "@[Unbound module %a@ in instance %a@]" diff --git a/upstream/ocaml_flambda/typing/persistent_env.mli b/upstream/ocaml_flambda/typing/persistent_env.mli index f76a69c12..f6bf59c1a 100644 --- a/upstream/ocaml_flambda/typing/persistent_env.mli +++ b/upstream/ocaml_flambda/typing/persistent_env.mli @@ -53,13 +53,6 @@ type error = expected : Global_module.Name.t; actual : Global_module.Name.t; } - | Inconsistent_global_name_resolution of - { name : Global_module.Name.t; - old_global : Global_module.t; - new_global : Global_module.t; - first_mentioned_by : Global_module.Name.t; - now_mentioned_by : Global_module.Name.t; - } | Unbound_module_as_argument_value of { instance : Global_module.Name.t; value : Global_module.Name.t; } @@ -110,15 +103,10 @@ type 'a sig_reader = -> flags:Cmi_format.pers_flags list -> 'a -(* If [add_binding] is false, reads the signature from the .cmi but does not - bind the module name in the environment. *) -(* CR-someday lmaurer: [add_binding] is apparently always false, including in the - [-instantiate] branch. We should remove this parameter. *) -val read : 'a t -> 'a sig_reader - -> Global_module.Name.t -> Unit_info.Artifact.t -> add_binding:bool +val read : 'a t -> Global_module.Name.t -> Unit_info.Artifact.t -> Subst.Lazy.signature val find : allow_hidden:bool -> 'a t -> 'a sig_reader - -> Global_module.Name.t -> 'a + -> Global_module.Name.t -> allow_excess_args:bool -> 'a val find_in_cache : 'a t -> Global_module.Name.t -> 'a option @@ -155,8 +143,13 @@ val implemented_parameter : 'a t val global_of_global_name : 'a t -> check:bool -> Global_module.Name.t + -> allow_excess_args:bool -> Global_module.t +(* [normalize_global_name penv g] returns [g] with any excess arguments removed, + loading any .cmi files necessary to do so. *) +val normalize_global_name : 'a t -> Global_module.Name.t -> Global_module.Name.t + val make_cmi : 'a t -> Compilation_unit.Name.t -> Cmi_format.kind diff --git a/upstream/ocaml_flambda/typing/printpat.ml b/upstream/ocaml_flambda/typing/printpat.ml index 2bd783d52..5bbaa8387 100644 --- a/upstream/ocaml_flambda/typing/printpat.ml +++ b/upstream/ocaml_flambda/typing/printpat.ml @@ -114,7 +114,7 @@ let rec pretty_val : type k . _ -> k general_pattern -> _ = fun ppf v -> fprintf ppf "@[[%c %a %c]@]" punct (pretty_vals " ;") vs punct | Tpat_lazy v -> fprintf ppf "@[<2>lazy@ %a@]" pretty_arg v - | Tpat_alias (v, x, _, _, _) -> + | Tpat_alias (v, x, _, _, _, _) -> fprintf ppf "@[(%a@ as %a)@]" pretty_val v Ident.print x | Tpat_value v -> fprintf ppf "%a" pretty_val (v :> pattern) diff --git a/upstream/ocaml_flambda/typing/printtyped.ml b/upstream/ocaml_flambda/typing/printtyped.ml index 5dc8b08d9..589f65e85 100644 --- a/upstream/ocaml_flambda/typing/printtyped.ml +++ b/upstream/ocaml_flambda/typing/printtyped.ml @@ -327,7 +327,7 @@ and pattern : type k . _ -> _ -> k general_pattern -> unit = fun i ppf x -> | Tpat_var (s,_,_,m) -> line i ppf "Tpat_var \"%a\"\n" fmt_ident s; value_mode i ppf m - | Tpat_alias (p, s,_,_,m) -> + | Tpat_alias (p, s,_,_,m,_) -> line i ppf "Tpat_alias \"%a\"\n" fmt_ident s; value_mode i ppf m; pattern i ppf p; diff --git a/upstream/ocaml_flambda/typing/signature_with_global_bindings.ml b/upstream/ocaml_flambda/typing/signature_with_global_bindings.ml index b596ec139..a93ee0559 100644 --- a/upstream/ocaml_flambda/typing/signature_with_global_bindings.ml +++ b/upstream/ocaml_flambda/typing/signature_with_global_bindings.ml @@ -2,7 +2,7 @@ type t = { sign : Subst.Lazy.signature; - bound_globals : Global_module.t array; + bound_globals : Global_module.With_precision.t array; } let read_from_cmi (cmi : Cmi_format.cmi_infos_lazy) = @@ -29,7 +29,7 @@ let subst t (args : (Global_module.Name.t * Global_module.t) list) = let arg_subst = Global_module.Name.Map.of_list args in (* Take a bound global, substitute arguments into it, then return the updated global while also adding it to the term-level substitution *) - let add_and_update_binding subst bound_global = + let add_and_update_binding subst (bound_global, prec) = let name = Global_module.to_name bound_global in if Global_module.Name.Map.mem name arg_subst then (* This shouldn't happen: only globals with hidden arguments should be @@ -58,7 +58,7 @@ let subst t (args : (Global_module.Name.t * Global_module.t) list) = completely-applied global *) None else - Some value + Some (value, prec) in subst, new_bound_global end diff --git a/upstream/ocaml_flambda/typing/signature_with_global_bindings.mli b/upstream/ocaml_flambda/typing/signature_with_global_bindings.mli index 27494c9bd..bf5d76efa 100644 --- a/upstream/ocaml_flambda/typing/signature_with_global_bindings.mli +++ b/upstream/ocaml_flambda/typing/signature_with_global_bindings.mli @@ -14,7 +14,7 @@ represented explicitly. *) type t = private { sign : Subst.Lazy.signature; - bound_globals : Global_module.t array; + bound_globals : Global_module.With_precision.t array; } val read_from_cmi : Cmi_format.cmi_infos_lazy -> t diff --git a/upstream/ocaml_flambda/typing/tast_iterator.ml b/upstream/ocaml_flambda/typing/tast_iterator.ml index bb57abd02..91e41d81e 100644 --- a/upstream/ocaml_flambda/typing/tast_iterator.ml +++ b/upstream/ocaml_flambda/typing/tast_iterator.ml @@ -270,7 +270,7 @@ let pat | Tpat_record_unboxed_product (l, _) -> List.iter (fun (lid, _, i) -> iter_loc sub lid; sub.pat sub i) l | Tpat_array (_, _, l) -> List.iter (sub.pat sub) l - | Tpat_alias (p, _, s, _, _) -> sub.pat sub p; iter_loc sub s + | Tpat_alias (p, _, s, _, _, _) -> sub.pat sub p; iter_loc sub s | Tpat_lazy p -> sub.pat sub p | Tpat_value p -> sub.pat sub (p :> pattern) | Tpat_exception p -> sub.pat sub p diff --git a/upstream/ocaml_flambda/typing/tast_mapper.ml b/upstream/ocaml_flambda/typing/tast_mapper.ml index 8aa39ce36..b4ce2f61b 100644 --- a/upstream/ocaml_flambda/typing/tast_mapper.ml +++ b/upstream/ocaml_flambda/typing/tast_mapper.ml @@ -319,8 +319,8 @@ let pat Tpat_record_unboxed_product (List.map (tuple3 (map_loc sub) id (sub.pat sub)) l, closed) | Tpat_array (am, arg_sort, l) -> Tpat_array (am, arg_sort, List.map (sub.pat sub) l) - | Tpat_alias (p, id, s, uid, m) -> - Tpat_alias (sub.pat sub p, id, map_loc sub s, uid, m) + | Tpat_alias (p, id, s, uid, m, ty) -> + Tpat_alias (sub.pat sub p, id, map_loc sub s, uid, m, ty) | Tpat_lazy p -> Tpat_lazy (sub.pat sub p) | Tpat_value p -> (as_computation_pattern (sub.pat sub (p :> pattern))).pat_desc diff --git a/upstream/ocaml_flambda/typing/typecore.ml b/upstream/ocaml_flambda/typing/typecore.ml index 6a6870b85..59df0069e 100644 --- a/upstream/ocaml_flambda/typing/typecore.ml +++ b/upstream/ocaml_flambda/typing/typecore.ml @@ -934,15 +934,25 @@ let has_poly_constraint spat = (* This is very similar to Ctype.mode_cross_left_alloc. Any bugs here are likely bugs there, too. *) let mode_cross_left_value env ty mode = - let mode = - if not (is_principal ty) then mode else + if not (is_principal ty) then + Value.disallow_right mode + else begin let jkind = type_jkind_purely env ty in let jkind_of_type = type_jkind_purely_if_principal env in let upper_bounds = Jkind.get_modal_upper_bounds ~jkind_of_type jkind in + let upper_bounds = + Alloc.Const.merge + { comonadic = upper_bounds; monadic = Alloc.Monadic.Const.max } + in let upper_bounds = Const.alloc_as_value upper_bounds in - Value.meet_const upper_bounds mode - in - mode |> Value.disallow_right + let lower_bounds = Jkind.get_modal_lower_bounds ~jkind_of_type jkind in + let lower_bounds = + Alloc.Const.merge + { comonadic = Alloc.Comonadic.Const.min; monadic = lower_bounds } + in + let lower_bounds = Const.alloc_as_value lower_bounds in + Value.subtract lower_bounds (Value.meet_const upper_bounds mode) + end let actual_mode_cross_left env ty (actual_mode : Env.actual_mode) : Env.actual_mode = @@ -958,9 +968,9 @@ let alloc_mode_cross_to_max_min env ty { monadic; comonadic } = let jkind = type_jkind_purely env ty in let jkind_of_type = type_jkind_purely_if_principal env in let upper_bounds = Jkind.get_modal_upper_bounds ~jkind_of_type jkind in - let upper_bounds = Alloc.Const.split upper_bounds in - let comonadic = Alloc.Comonadic.meet_const upper_bounds.comonadic comonadic in - let monadic = Alloc.Monadic.imply upper_bounds.monadic monadic in + let comonadic = Alloc.Comonadic.meet_const upper_bounds comonadic in + let lower_bounds = Jkind.get_modal_lower_bounds ~jkind_of_type jkind in + let monadic = Alloc.Monadic.join_const lower_bounds monadic in { monadic; comonadic } (** Mode cross a right mode *) @@ -969,8 +979,22 @@ let alloc_mode_cross_to_max_min env ty { monadic; comonadic } = let expect_mode_cross_jkind env jkind (expected_mode : expected_mode) = let jkind_of_type = type_jkind_purely_if_principal env in let upper_bounds = Jkind.get_modal_upper_bounds ~jkind_of_type jkind in + let upper_bounds = + Alloc.Const.merge + { comonadic = upper_bounds; monadic = Alloc.Monadic.Const.max } + in let upper_bounds = Const.alloc_as_value upper_bounds in - mode_morph (Value.imply upper_bounds) expected_mode + let lower_bounds = Jkind.get_modal_lower_bounds ~jkind_of_type jkind in + let lower_bounds = + Alloc.Const.merge + { comonadic = Alloc.Comonadic.Const.min; monadic = lower_bounds } + in + let lower_bounds = Const.alloc_as_value lower_bounds in + mode_morph + (fun m -> + Value.imply upper_bounds + (Value.join_const lower_bounds m)) + expected_mode let expect_mode_cross env ty (expected_mode : expected_mode) = if not (is_principal ty) then expected_mode else @@ -1449,7 +1473,7 @@ and build_as_type_aux (env : Env.t) p ~mode = ty, mode in match p.pat_desc with - Tpat_alias(p1,_, _, _, _) -> build_as_type_and_mode env p1 ~mode + Tpat_alias(p1,_, _, _, _, _) -> build_as_type_and_mode env p1 ~mode | Tpat_tuple pl -> let labeled_tyl = List.map (fun (label, p) -> label, build_as_type env p) pl in @@ -2860,7 +2884,7 @@ and type_pat_aux enter_variable ~is_as_variable:true tps name.loc name mode ty_var sp.ppat_attributes in - rvp { pat_desc = Tpat_alias(q, id, name, uid, mode); + rvp { pat_desc = Tpat_alias(q, id, name, uid, mode, ty_var); pat_loc = loc; pat_extra=[]; pat_type = q.pat_type; pat_attributes = sp.ppat_attributes; @@ -3509,7 +3533,7 @@ let rec check_counter_example_pat in check_rec ~info:(decrease 5) tp expected_ty k end - | Tpat_alias (p, _, _, _, _) -> check_rec ~info p expected_ty k + | Tpat_alias (p, _, _, _, _, _) -> check_rec ~info p expected_ty k | Tpat_constant cst -> let cst = constant_or_raise !!penv loc (Untypeast.constant cst) in k @@ solve_expected (mp (Tpat_constant cst) ~pat_type:(type_constant cst)) @@ -4868,7 +4892,7 @@ let rec name_pattern default = function | p :: rem -> match p.pat_desc with Tpat_var (id, _, _, _) -> id - | Tpat_alias(_, id, _, _, _) -> id + | Tpat_alias(_, id, _, _, _, _) -> id | _ -> name_pattern default rem let name_cases default lst = @@ -6810,6 +6834,12 @@ and type_expect_ | Texp_lazy _ -> unsupported Lazy | Texp_object _ -> unsupported Object | Texp_pack _ -> unsupported Module + | Texp_apply({ exp_desc = Texp_ident(_, _, {val_kind = Val_prim _}, _, _)}, + _, _, _, _) + (* [stack_ (prim foo)] will be checked by [transl_primitive_application]. *) + (* CR zqian: Move/Copy [Lambda.primitive_may_allocate] to [typing], then we can + check primitive allocation here, and also improve the logic in [type_ident]. *) + -> () | _ -> raise (Error (exp.exp_loc, env, Not_allocation)) end; @@ -7063,8 +7093,8 @@ and type_ident env ?(recarg=Rejected) lid = *) (* CR modes: codify the above per-axis argument. *) let actual_mode = - Env.walk_locks ~loc:lid.loc ~env ~item:Value ~lid:lid.txt mode - (Some desc.val_type) locks + Env.walk_locks ~env ~item:Value mode (Some desc.val_type) + (locks, lid.txt, lid.loc) in (* We need to cross again, because the monadic fragment might have been weakened by the locks. Ideally, the first crossing only deals with comonadic, @@ -9187,7 +9217,7 @@ and type_let ?check ?check_strict ?(force_toplevel = false) let pat_name = match p.pat_desc with Tpat_var (id, _, _, _) -> Some id - | Tpat_alias(_, id, _, _, _) -> Some id + | Tpat_alias(_, id, _, _, _, _) -> Some id | _ -> None in Ctype.check_and_update_generalized_ty_jkind ?name:pat_name ~loc:exp.exp_loc env exp.exp_type diff --git a/upstream/ocaml_flambda/typing/typedecl.ml b/upstream/ocaml_flambda/typing/typedecl.ml index eb08466c8..2640b1ba8 100644 --- a/upstream/ocaml_flambda/typing/typedecl.ml +++ b/upstream/ocaml_flambda/typing/typedecl.ml @@ -1102,7 +1102,8 @@ let rec check_constraints_rec env loc visited ty = let violation = Jkind.Violation.of_ (Not_a_subjkind (Jkind.disallow_right original_jkind, - Jkind.disallow_left inferred_jkind)) + Jkind.disallow_left inferred_jkind, + [])) in raise (Error(loc, Jkind_mismatch_due_to_bad_inference (ty, violation, Check_constraints))) @@ -1892,12 +1893,14 @@ let update_decl_jkind env id decl = match Jkind.Layout.sub new_decl.type_jkind.jkind.layout decl.type_jkind.jkind.layout with - | Not_le -> + | Not_le reason -> raise (Error ( decl.type_loc, Jkind_mismatch_of_path ( Pident id, - Jkind.Violation.of_ (Not_a_subjkind (new_decl.type_jkind, decl.type_jkind))))) + Jkind.Violation.of_ ( + Not_a_subjkind ( + new_decl.type_jkind, decl.type_jkind, Nonempty_list.to_list reason))))) | Less | Equal -> new_decl let update_decls_jkind_reason env decls = @@ -2525,7 +2528,9 @@ let normalize_decl_jkinds env shapes decls = in let umc = Some { modal_upper_bounds = - Jkind.get_modal_upper_bounds ~jkind_of_type type_jkind } + Jkind.get_modal_upper_bounds ~jkind_of_type type_jkind; + modal_lower_bounds = + Jkind.get_modal_lower_bounds ~jkind_of_type type_jkind } in let type_kind = match decl.type_kind with diff --git a/upstream/ocaml_flambda/typing/typedtree.ml b/upstream/ocaml_flambda/typing/typedtree.ml index 4b1427226..d6a3c05bb 100644 --- a/upstream/ocaml_flambda/typing/typedtree.ml +++ b/upstream/ocaml_flambda/typing/typedtree.ml @@ -149,7 +149,8 @@ and 'k pattern_desc = | Tpat_any : value pattern_desc | Tpat_var : Ident.t * string loc * Uid.t * Mode.Value.l -> value pattern_desc | Tpat_alias : - value general_pattern * Ident.t * string loc * Uid.t * Mode.Value.l -> value pattern_desc + value general_pattern * Ident.t * string loc * Uid.t * Mode.Value.l + * Types.type_expr -> value pattern_desc | Tpat_constant : constant -> value pattern_desc | Tpat_tuple : (string option * value general_pattern) list -> value pattern_desc | Tpat_unboxed_tuple : @@ -978,7 +979,7 @@ type pattern_action = let shallow_iter_pattern_desc : type k . pattern_action -> k pattern_desc -> unit = fun f -> function - | Tpat_alias(p, _, _, _, _) -> f.f p + | Tpat_alias(p, _, _, _, _, _) -> f.f p | Tpat_tuple patl -> List.iter (fun (_, p) -> f.f p) patl | Tpat_unboxed_tuple patl -> List.iter (fun (_, p, _) -> f.f p) patl | Tpat_construct(_, _, patl, _) -> List.iter f.f patl @@ -1001,8 +1002,8 @@ type pattern_transformation = let shallow_map_pattern_desc : type k . pattern_transformation -> k pattern_desc -> k pattern_desc = fun f d -> match d with - | Tpat_alias (p1, id, s, uid, m) -> - Tpat_alias (f.f p1, id, s, uid, m) + | Tpat_alias (p1, id, s, uid, m, ty) -> + Tpat_alias (f.f p1, id, s, uid, m, ty) | Tpat_tuple pats -> Tpat_tuple (List.map (fun (label, pat) -> label, f.f pat) pats) | Tpat_unboxed_tuple pats -> @@ -1071,9 +1072,9 @@ let rec iter_bound_idents match pat.pat_desc with | Tpat_var (id, s, uid, _mode) -> f (id,s,pat.pat_type, uid) - | Tpat_alias(p, id, s, uid, _mode) -> + | Tpat_alias(p, id, s, uid, _mode, ty) -> iter_bound_idents f p; - f (id,s,pat.pat_type, uid) + f (id, s, ty, uid) | Tpat_or(p1, _, _) -> (* Invariant : both arguments bind the same variables *) iter_bound_idents f p1 @@ -1112,9 +1113,9 @@ let iter_pattern_full ~of_sort ~of_const_sort ~both_sides_of_or f sort pat = (* Cases where we push the sort inwards: *) | Tpat_var (id, s, uid, mode) -> f id s pat.pat_type uid mode sort - | Tpat_alias(p, id, s, uid, mode) -> + | Tpat_alias(p, id, s, uid, mode, ty) -> loop f sort p; - f id s pat.pat_type uid mode sort + f id s ty uid mode sort | Tpat_or (p1, p2, _) -> if both_sides_of_or then (loop f sort p1; loop f sort p2) else loop f sort p1 @@ -1252,10 +1253,11 @@ let rec alpha_pat {p with pat_desc = try Tpat_var (alpha_var env id, s, uid, mode) with | Not_found -> Tpat_any} - | Tpat_alias (p1, id, s, uid, mode) -> + | Tpat_alias (p1, id, s, uid, mode, ty) -> let new_p = alpha_pat env p1 in begin try - {p with pat_desc = Tpat_alias (new_p, alpha_var env id, s, uid, mode)} + {p with pat_desc = + Tpat_alias (new_p, alpha_var env id, s, uid, mode, ty)} with | Not_found -> new_p end diff --git a/upstream/ocaml_flambda/typing/typedtree.mli b/upstream/ocaml_flambda/typing/typedtree.mli index 1b51ff29b..075d3d533 100644 --- a/upstream/ocaml_flambda/typing/typedtree.mli +++ b/upstream/ocaml_flambda/typing/typedtree.mli @@ -161,6 +161,7 @@ and 'k pattern_desc = (** x *) | Tpat_alias : value general_pattern * Ident.t * string loc * Uid.t * Mode.Value.l + * Types.type_expr -> value pattern_desc (** P as a *) | Tpat_constant : constant -> value pattern_desc diff --git a/upstream/ocaml_flambda/typing/typemod.ml b/upstream/ocaml_flambda/typing/typemod.ml index 834748d29..a8fbe7de0 100644 --- a/upstream/ocaml_flambda/typing/typemod.ml +++ b/upstream/ocaml_flambda/typing/typemod.ml @@ -803,8 +803,8 @@ let merge_constraint initial_env loc sg lid constr = in let md'' = { md' with md_type = mty } in let newmd = Mtype.strengthen_decl ~aliasable:false md'' path in - ignore(Includemod.modtypes ~mark:Mark_both ~loc sig_env ~modes:Legacy - newmd.md_type md.md_type); + ignore(Includemod.modtypes ~mark:Mark_both ~loc sig_env + ~modes:(Legacy None) newmd.md_type md.md_type); return ~replace_by:(Some(Sig_module(id, pres, newmd, rs, priv))) (Pident id, lid, Some (Twith_module (path, lid'))) @@ -814,7 +814,7 @@ let merge_constraint initial_env loc sg lid constr = let aliasable = not (Env.is_functor_arg path sig_env) in ignore (Includemod.strengthened_module_decl ~loc ~mark:Mark_both - ~aliasable sig_env ~mmodes:Legacy md' path md); + ~aliasable sig_env ~mmodes:(Legacy None) md' path md); real_ids := [Pident id]; return ~replace_by:None (Pident id, lid, Some (Twith_modsubst (path, lid'))) @@ -1699,7 +1699,7 @@ and transl_modtype_aux env smty = let aliasable = not (Env.is_functor_arg path env) in try ignore - (Includemod.modtypes ~loc env ~modes:Legacy + (Includemod.modtypes ~loc env ~modes:(Legacy None) ~mark:Includemod.Mark_both md.md_type tmty.mty_type); mkmty (Tmty_strengthen (tmty, path, mod_id)) @@ -1717,10 +1717,10 @@ and transl_with ~loc env remove_aliases (rev_tcstrs,sg) constr = | Pwith_type (l,decl) ->l , With_type decl | Pwith_typesubst (l,decl) ->l , With_typesubst decl | Pwith_module (l,l') -> - let path, md, _ = Env.lookup_module ~lock:false ~loc l'.txt env in + let path, md, _ = Env.lookup_module ~loc l'.txt env in l , With_module {lid=l';path;md; remove_aliases} | Pwith_modsubst (l,l') -> - let path, md', _ = Env.lookup_module ~lock:false ~loc l'.txt env in + let path, md', _ = Env.lookup_module ~loc l'.txt env in l , With_modsubst (l',path,md') | Pwith_modtype (l,smty) -> let mty = transl_modtype env smty in @@ -1913,8 +1913,7 @@ and transl_signature env {psg_items; psg_modalities; psg_loc} = | Psig_modsubst pms -> let scope = Ctype.create_scope () in let path, md, _ = - Env.lookup_module ~loc:pms.pms_manifest.loc ~lock:false - pms.pms_manifest.txt env + Env.lookup_module ~loc:pms.pms_manifest.loc pms.pms_manifest.txt env in let aliasable = not (Env.is_functor_arg path env) in let md = @@ -2396,7 +2395,7 @@ let check_recmodule_inclusion env bindings = try Includemod.modtypes_with_shape ~shape ~loc:modl.mod_loc ~mark:Mark_both - env ~modes:Legacy mty_actual' mty_decl' + env ~modes:(Legacy None) mty_actual' mty_decl' with Includemod.Error msg -> raise(Error(modl.mod_loc, env, Not_included msg)) in let modl' = @@ -2492,13 +2491,13 @@ let package_subtype env p1 fl1 p2 fl2 = let () = Ctype.package_subtype := package_subtype -let wrap_constraint_package env mark arg mty explicit = +let wrap_constraint_package env mark arg held_locks mty explicit = let mark = if mark then Includemod.Mark_both else Includemod.Mark_neither in let mty1 = Subst.modtype Keep Subst.identity arg.mod_type in let mty2 = Subst.modtype Keep Subst.identity mty in let coercion = try - Includemod.modtypes ~loc:arg.mod_loc env ~mark ~modes:Legacy mty1 mty2 + Includemod.modtypes ~loc:arg.mod_loc env ~mark ~modes:(Legacy held_locks) mty1 mty2 with Includemod.Error msg -> raise(Error(arg.mod_loc, env, Not_included msg)) in { mod_desc = Tmod_constraint(arg, mty, explicit, coercion); @@ -2507,13 +2506,13 @@ let wrap_constraint_package env mark arg mty explicit = mod_attributes = []; mod_loc = arg.mod_loc } -let wrap_constraint_with_shape env mark arg mty +let wrap_constraint_with_shape env mark arg held_locks mty shape explicit = let mark = if mark then Includemod.Mark_both else Includemod.Mark_neither in let coercion, shape = try Includemod.modtypes_with_shape ~shape ~loc:arg.mod_loc env ~mark - ~modes:Legacy arg.mod_type mty + ~modes:(Legacy held_locks) arg.mod_type mty with Includemod.Error msg -> raise(Error(arg.mod_loc, env, Not_included msg)) in { mod_desc = Tmod_constraint(arg, mty, explicit, coercion); @@ -2529,6 +2528,7 @@ let wrap_constraint_with_shape env mark arg mty type argument_summary = { is_syntactic_unit: bool; arg: Typedtree.module_expr; + held_locks: Env.held_locks option; path: Path.t option; shape: Shape.t } @@ -2588,41 +2588,24 @@ let maybe_infer_modalities ~loc ~env ~md_mode ~mode = Mode.Modality.Value.id end -type alias = - | No : alias - (** The module is in a context that doesn't treat aliases specially. *) - | Yes_hold_locks : alias - (** The module is in a context that treat alias specially. If it is indeed an - alias, the caller will hold the locks in the alias, and walk them when - later the alias is used for its content. *) - | Yes_walk_locks : alias - (** The module is in a context that treat alias specially. However, the caller - doesn't want to hold the locks, and therefore the locks must be eagerly - walked. *) - -let is_alias = function - | No -> false - | Yes_walk_locks | Yes_hold_locks -> true - -let rec type_module ?(alias=false) sttn funct_body anchor env smod = - let alias = if alias then Yes_walk_locks else No in - let md, shape, locks = - type_module_maybe_hold_locks ~alias sttn funct_body anchor env smod +let rec type_module ?alias sttn funct_body anchor env smod = + let md, shape, held_locks = + type_module_maybe_hold_locks ?alias ~hold_locks:false sttn funct_body anchor env smod in - assert (Env.locks_is_empty locks); + assert (Option.is_none held_locks); md, shape -and type_module_maybe_hold_locks ~alias sttn funct_body anchor env smod = +and type_module_maybe_hold_locks ?(alias=false) ~hold_locks sttn funct_body anchor env smod = Builtin_attributes.warning_scope smod.pmod_attributes - (fun () -> type_module_aux ~alias sttn funct_body anchor env smod) + (fun () -> type_module_aux ~alias ~hold_locks sttn funct_body anchor env smod) -and type_module_aux ~alias sttn funct_body anchor env smod = +and type_module_aux ~alias ~hold_locks sttn funct_body anchor env smod = match smod.pmod_desc with Pmod_ident lid -> let path, locks = - Env.lookup_module_path ~load:(not @@ is_alias alias) ~loc:smod.pmod_loc lid.txt env + Env.lookup_module_path ~load:(not alias) ~loc:smod.pmod_loc lid.txt env in - type_module_path_aux ~alias sttn env path locks lid smod + type_module_path_aux ~alias ~hold_locks sttn env path locks lid smod | Pmod_structure sstr -> let (str, sg, names, shape, _finalenv) = type_structure funct_body anchor env sstr in @@ -2636,11 +2619,13 @@ and type_module_aux ~alias sttn funct_body anchor env smod = let sg' = Signature_names.simplify _finalenv names sg in let md, shape = if List.length sg' = List.length sg then md, shape else - wrap_constraint_with_shape env false md + wrap_constraint_with_shape env false md None (Mty_signature sg') shape Tmodtype_implicit in - md, shape, Env.locks_empty + md, shape, None | Pmod_functor(arg_opt, sbody) -> + let newenv = Env.add_escape_lock Module env in + let newenv = Env.add_share_lock Module newenv in let t_arg, ty_arg, newenv, funct_shape_param, funct_body = match arg_opt with | Unit -> @@ -2664,41 +2649,39 @@ and type_module_aux ~alias sttn funct_body anchor env smod = let id = Ident.create_scoped ~scope name in let shape = Shape.var md_uid id in let newenv = Env.add_module_declaration - ~shape ~arg:true ~check:true id Mp_present arg_md env + ~shape ~arg:true ~check:true id Mp_present arg_md newenv in Some id, newenv, id in Named (id, param, mty), Types.Named (id, mty.mty_type), newenv, var, true in - let newenv = Env.add_escape_lock Module newenv in - let newenv = Env.add_share_lock Module newenv in let body, body_shape = type_module true funct_body None newenv sbody in { mod_desc = Tmod_functor(t_arg, body); mod_type = Mty_functor(ty_arg, body.mod_type); mod_env = env; mod_attributes = smod.pmod_attributes; mod_loc = smod.pmod_loc }, - Shape.abs funct_shape_param body_shape, Env.locks_empty + Shape.abs funct_shape_param body_shape, None | Pmod_apply _ | Pmod_apply_unit _ -> let md, shape = type_application smod.pmod_loc sttn funct_body env smod in - md, shape, Env.locks_empty + md, shape, None | Pmod_constraint(sarg, smty, smode) -> check_no_modal_modules ~env smode; let smty = Option.get smty in - let arg, arg_shape, locks = - type_module_maybe_hold_locks ~alias true funct_body anchor env sarg + let arg, arg_shape, held_locks = + type_module_maybe_hold_locks ~alias ~hold_locks:true true funct_body anchor env sarg in let mty = transl_modtype env smty in let md, final_shape = - wrap_constraint_with_shape env true arg mty.mty_type arg_shape + wrap_constraint_with_shape env true arg held_locks mty.mty_type arg_shape (Tmodtype_explicit mty) in { md with mod_loc = smod.pmod_loc; mod_attributes = smod.pmod_attributes; }, - final_shape, locks + final_shape, None | Pmod_unpack sexp -> let exp = Ctype.with_local_level_if_principal @@ -2731,14 +2714,14 @@ and type_module_aux ~alias sttn funct_body anchor env smod = mod_env = env; mod_attributes = smod.pmod_attributes; mod_loc = smod.pmod_loc }, - Shape.leaf_for_unpack, Env.locks_empty + Shape.leaf_for_unpack, None | Pmod_extension ext -> raise (Error_forward (Builtin_attributes.error_of_extension ext)) | Pmod_instance glob -> Language_extension.assert_enabled ~loc:smod.pmod_loc Instances (); let glob = instance_name ~loc:smod.pmod_loc env glob in let path, locks = - Env.lookup_module_instance_path ~load:(not @@ is_alias alias) ~loc:smod.pmod_loc + Env.lookup_module_instance_path ~load:(not alias) ~loc:smod.pmod_loc glob env in let lid = @@ -2748,21 +2731,20 @@ and type_module_aux ~alias sttn funct_body anchor env smod = in Location.(mkloc (Lident name) (ghostify smod.pmod_loc)) in - type_module_path_aux ~alias sttn env path locks lid smod - -and type_module_path_aux ~alias sttn env path locks (lid : _ loc) smod = - let locks = - match alias with - | Yes_hold_locks -> locks - | No | Yes_walk_locks -> - let vmode = - Env.walk_locks ~loc:lid.loc ~env ~item:Module ~lid:lid.txt - Mode.Value.(legacy |> disallow_right) None locks - in - Mode.Value.submode_exn vmode.mode Mode.Value.legacy; - Env.locks_empty + type_module_path_aux ~alias ~hold_locks sttn env path locks lid smod + +and type_module_path_aux ~alias ~hold_locks sttn env path locks (lid : _ loc) smod = + let held_locks = + let held_locks = (locks, lid.txt, lid.loc) in + if hold_locks then Some held_locks + else + let vmode = + Env.walk_locks ~env ~item:Module Mode.Value.(legacy |> disallow_right) + None held_locks + in + Mode.Value.submode_exn vmode.mode Mode.Value.legacy; + None in - let alias = is_alias alias in let md = { mod_desc = Tmod_ident (path, lid); mod_type = Mty_alias path; mod_env = env; @@ -2794,13 +2776,16 @@ and type_module_path_aux ~alias sttn env path locks (lid : _ loc) smod = { md with mod_type = mty } end in - md, shape, locks + md, shape, held_locks and type_application loc strengthen funct_body env smod = let rec extract_application funct_body env sargs smod = match smod.pmod_desc with | Pmod_apply(f, sarg) -> - let arg, shape = type_module true funct_body None env sarg in + let arg, shape, held_locks = + type_module_maybe_hold_locks ~hold_locks:true true funct_body None env + sarg + in let summary = { loc = smod.pmod_loc; attributes = smod.pmod_attributes; @@ -2808,6 +2793,7 @@ and type_application loc strengthen funct_body env smod = arg = Some { is_syntactic_unit = sarg.pmod_desc = Pmod_structure []; arg; + held_locks; path = path_of_module arg; shape; } @@ -2875,11 +2861,11 @@ and type_one_application ~ctx:(apply_loc,sfunct,md_f,args) begin match app_view with | { arg = None; _ } -> apply_error () | { loc = app_loc; attributes = app_attributes; - arg = Some { shape = arg_shape; path = arg_path; arg } } -> + arg = Some { shape = arg_shape; path = arg_path; arg; held_locks } } -> let coercion = try Includemod.modtypes ~loc:arg.mod_loc ~mark:Mark_both env arg.mod_type mty_param - ~modes:Legacy + ~modes:(Legacy held_locks) with Includemod.Error _ -> apply_error () in let mty_appl = @@ -2911,7 +2897,7 @@ and type_one_application ~ctx:(apply_loc,sfunct,md_f,args) begin match Includemod.modtypes ~loc:app_loc ~mark:Mark_neither env mty_res nondep_mty - ~modes:Legacy + ~modes:(Legacy None) with | Tcoerce_none -> () | _ -> @@ -3492,9 +3478,20 @@ let type_toplevel_phrase env sig_acc s = Typecore.optimise_allocations (); (str, sg, to_remove_from_sg, shape, env) -let type_module_alias = - type_module_maybe_hold_locks ~alias:Yes_hold_locks true false None +let type_module_alias env smod = + let md, shape, held_locks = + type_module_maybe_hold_locks ~alias:true ~hold_locks:true true false + None env smod + in + let locks = + match held_locks with + | None -> Env.locks_empty + | Some (locks, _, _) -> locks + in + md, shape, locks + let type_module = type_module true false None +let type_module_maybe_hold_locks = type_module_maybe_hold_locks true false None let type_structure = type_structure false None (* Normalize types in a signature *) @@ -3520,9 +3517,7 @@ let type_module_type_of env smod = let tmty = match smod.pmod_desc with | Pmod_ident lid -> (* turn off strengthening in this case *) - let path, md, _ = - Env.lookup_module ~lock:false ~loc:smod.pmod_loc lid.txt env - in + let path, md, _ = Env.lookup_module ~loc:smod.pmod_loc lid.txt env in { mod_desc = Tmod_ident (path, lid); mod_type = md.md_type; mod_env = env; @@ -3585,13 +3580,15 @@ let type_package env m p fl = (* Same as Pexp_letmodule *) (* remember original level *) let outer_scope = Ctype.get_current_level () in - let modl, scope = + let modl, scope, held_locks = Typetexp.TyVarEnv.with_local_scope begin fun () -> (* type the module and create a scope in a raised level *) Ctype.with_local_level begin fun () -> - let modl, _mod_shape = type_module env m in + let modl, _mod_shape, held_locks = + type_module_maybe_hold_locks ~hold_locks:true env m + in let scope = Ctype.create_scope () in - modl, scope + modl, scope, held_locks end end in @@ -3647,7 +3644,9 @@ let type_package env m p fl = with Ctype.Unify _ -> raise (Error(modl.mod_loc, env, Scoping_pack (n,ty)))) fl'; - let modl = wrap_constraint_package env true modl mty Tmodtype_implicit in + let modl = + wrap_constraint_package env true modl held_locks mty Tmodtype_implicit + in modl, fl' (* Fill in the forward declarations *) @@ -3722,8 +3721,7 @@ let check_argument_type_if_given env sourcefile actual_sig arg_module_opt = raise(Error(Location.none, Env.empty, Cannot_find_argument_type arg_module)) in let arg_cmi = Unit_info.Artifact.from_filename arg_filename in - let arg_sig = - Env.read_signature arg_module arg_cmi ~add_binding:false in + let arg_sig = Env.read_signature arg_module arg_cmi in if not (Env.is_parameter_unit arg_module) then raise (Error (Location.none, env, Argument_for_non_parameter (arg_module, arg_filename))); @@ -3819,9 +3817,7 @@ let type_implementation target modulename initial_env ast = let global_name = Compilation_unit.to_global_name_without_prefix modulename in - let dclsig = - Env.read_signature global_name compiled_intf_file ~add_binding:false - in + let dclsig = Env.read_signature global_name compiled_intf_file in if Env.is_parameter_unit global_name then error (Cannot_implement_parameter (cu_name, source_intf)); let arg_type_from_cmi = Env.implemented_parameter global_name in @@ -4008,7 +4004,6 @@ let package_units initial_env objfiles target_cmi modulename = let artifact = Unit_info.Artifact.from_filename f in let sg = Env.read_signature global_name (Unit_info.companion_cmi artifact) - ~add_binding:false in if Unit_info.is_cmi artifact && not(Mtype.no_code_needed_sig (Lazy.force Env.initial) sg) @@ -4038,7 +4033,7 @@ let package_units initial_env objfiles target_cmi modulename = Interface_not_compiled mli)) end; let name = Compilation_unit.to_global_name_without_prefix modulename in - let dclsig = Env.read_signature name target_cmi ~add_binding:false in + let dclsig = Env.read_signature name target_cmi in let cc, _shape = Includemod.compunit initial_env ~mark:Mark_both "(obtained by packing)" sg mli dclsig shape diff --git a/upstream/ocaml_flambda/typing/typeopt.ml b/upstream/ocaml_flambda/typing/typeopt.ml index 689de7a08..1b4fb26b4 100644 --- a/upstream/ocaml_flambda/typing/typeopt.ml +++ b/upstream/ocaml_flambda/typing/typeopt.ml @@ -88,7 +88,7 @@ let is_base_type env ty base_ty_path = | _ -> false let is_always_gc_ignorable env ty = - let ext : Jkind.Externality.t = + let ext : Jkind_axis.Externality.t = (* We check that we're compiling to (64-bit) native code before counting External64 types as gc_ignorable, because bytecode is intended to be platform independent. *) diff --git a/upstream/ocaml_flambda/typing/types.ml b/upstream/ocaml_flambda/typing/types.ml index 7a0124614..751c7d203 100644 --- a/upstream/ocaml_flambda/typing/types.ml +++ b/upstream/ocaml_flambda/typing/types.ml @@ -318,7 +318,8 @@ and type_decl_kind = (label_declaration, label_declaration, constructor_declaration) type_kind and unsafe_mode_crossing = - { modal_upper_bounds : Mode.Alloc.Const.t } + { modal_upper_bounds : Mode.Alloc.Comonadic.Const.t; + modal_lower_bounds : Mode.Alloc.Monadic.Const.t } and ('lbl, 'lbl_flat, 'cstr) type_kind = Type_abstract of type_origin @@ -870,6 +871,16 @@ let flat_element_to_lowercase_string = function | Vec128 -> "vec128" | Word -> "word" +let equal_unsafe_mode_crossing umc1 umc2 = + let { modal_upper_bounds = mub1; + modal_lower_bounds = mlb1 } = umc1 in + let { modal_upper_bounds = mub2; + modal_lower_bounds = mlb2 } = umc2 in + Mode.Alloc.Comonadic.Const.le mub1 mub2 + && Mode.Alloc.Comonadic.Const.le mub2 mub1 + && Mode.Alloc.Monadic.Const.le mlb1 mlb2 + && Mode.Alloc.Monadic.Const.le mlb2 mlb1 + (**** Definitions for backtracking ****) type change = diff --git a/upstream/ocaml_flambda/typing/types.mli b/upstream/ocaml_flambda/typing/types.mli index c07a1a569..50d1fcd63 100644 --- a/upstream/ocaml_flambda/typing/types.mli +++ b/upstream/ocaml_flambda/typing/types.mli @@ -640,7 +640,8 @@ type type_declaration = and type_decl_kind = (label_declaration, label_declaration, constructor_declaration) type_kind and unsafe_mode_crossing = - { modal_upper_bounds : Mode.Alloc.Const.t } + { modal_upper_bounds : Mode.Alloc.Comonadic.Const.t; + modal_lower_bounds : Mode.Alloc.Monadic.Const.t } and ('lbl, 'lbl_flat, 'cstr) type_kind = Type_abstract of type_origin @@ -1059,6 +1060,9 @@ val compare_flat_element : flat_element -> flat_element -> int val flat_element_to_string : flat_element -> string val flat_element_to_lowercase_string : flat_element -> string +val equal_unsafe_mode_crossing : + unsafe_mode_crossing -> unsafe_mode_crossing -> bool + (**** Utilities for backtracking ****) type snapshot diff --git a/upstream/ocaml_flambda/typing/uniqueness_analysis.ml b/upstream/ocaml_flambda/typing/uniqueness_analysis.ml index 26ba92da0..892fced40 100644 --- a/upstream/ocaml_flambda/typing/uniqueness_analysis.ml +++ b/upstream/ocaml_flambda/typing/uniqueness_analysis.ml @@ -1932,7 +1932,7 @@ and pattern_match_single pat paths : Ienv.Extension.t * UF.t = Ienv.Extension.disjunct ext0 ext1, UF.choose uf0 uf1 | Tpat_any -> Ienv.Extension.empty, UF.unused | Tpat_var (id, _, _, _) -> Ienv.Extension.singleton id paths, UF.unused - | Tpat_alias (pat', id, _, _, _) -> + | Tpat_alias (pat', id, _, _, _, _) -> let ext0 = Ienv.Extension.singleton id paths in let ext1, uf = pattern_match_single pat' paths in Ienv.Extension.conjunct ext0 ext1, uf diff --git a/upstream/ocaml_flambda/typing/untypeast.ml b/upstream/ocaml_flambda/typing/untypeast.ml index 007813a7d..f32b49c6f 100644 --- a/upstream/ocaml_flambda/typing/untypeast.ml +++ b/upstream/ocaml_flambda/typing/untypeast.ml @@ -351,11 +351,11 @@ let pattern : type k . _ -> k T.general_pattern -> _ = fun sub pat -> The compiler transforms (x:t) into (_ as x : t). This avoids transforming a warning 27 into a 26. *) - | Tpat_alias ({pat_desc = Tpat_any; pat_loc}, _id, name, _uid, _mode) + | Tpat_alias ({pat_desc = Tpat_any; pat_loc}, _id, name, _uid, _mode, _ty) when pat_loc = pat.pat_loc -> Ppat_var name - | Tpat_alias (pat, _id, name, _uid, _mode) -> + | Tpat_alias (pat, _id, name, _uid, _mode, _ty) -> Ppat_alias (sub.pat sub pat, name) | Tpat_constant cst -> Ppat_constant (constant cst) | Tpat_tuple list -> @@ -1006,7 +1006,7 @@ let core_type sub ct = let class_structure sub cs = let rec remove_self = function - | { pat_desc = Tpat_alias (p, id, _s, _uid, _mode) } + | { pat_desc = Tpat_alias (p, id, _s, _uid, _mode, _ty) } when string_is_prefix "selfpat-" (Ident.name id) -> remove_self p | p -> p @@ -1036,7 +1036,7 @@ let object_field sub {of_loc; of_desc; of_attributes;} = Of.mk ~loc ~attrs desc and is_self_pat = function - | { pat_desc = Tpat_alias(_pat, id, _, _uid, _mode) } -> + | { pat_desc = Tpat_alias(_pat, id, _, _uid, _mode, _ty) } -> string_is_prefix "self-" (Ident.name id) | _ -> false diff --git a/upstream/ocaml_flambda/typing/value_rec_check.ml b/upstream/ocaml_flambda/typing/value_rec_check.ml index bb09b38b6..c9fab2ec7 100644 --- a/upstream/ocaml_flambda/typing/value_rec_check.ml +++ b/upstream/ocaml_flambda/typing/value_rec_check.ml @@ -1457,7 +1457,7 @@ and is_destructuring_pattern : type k . k general_pattern -> bool = fun pat -> match pat.pat_desc with | Tpat_any -> false | Tpat_var (_, _, _, _) -> false - | Tpat_alias (pat, _, _, _, _) -> is_destructuring_pattern pat + | Tpat_alias (pat, _, _, _, _, _) -> is_destructuring_pattern pat | Tpat_constant _ -> true | Tpat_tuple _ -> true | Tpat_unboxed_tuple _ -> true diff --git a/upstream/ocaml_flambda/utils/misc.mli b/upstream/ocaml_flambda/utils/misc.mli index 3f5fae917..b385957ab 100644 --- a/upstream/ocaml_flambda/utils/misc.mli +++ b/upstream/ocaml_flambda/utils/misc.mli @@ -220,6 +220,20 @@ module Stdlib : sig that appear only in the left list, [right_only] on those elements that appear only in the right list, and [both] on those elements that appear in both. *) + + val merge_fold + : cmp:('a -> 'b -> int) + -> left_only:('acc -> 'a -> 'acc) + -> right_only:('acc -> 'b -> 'acc) + -> both:('acc -> 'a -> 'b -> 'acc) + -> init:'acc + -> 'a t + -> 'b t + -> 'acc + (** Folds over two sorted lists, calling [left_only] on those elements + that appear only in the left list, [right_only] on those elements + that appear only in the right list, and [both] on those elements that + appear in both. *) end (** {2 Extensions to the Option module} *) From ecfdd0102f5a01039361e1f0651df45cf78309d6 Mon Sep 17 00:00:00 2001 From: Richard Eisenberg Date: Thu, 13 Feb 2025 11:56:44 -0500 Subject: [PATCH 10/25] Commit conflicts --- src/ocaml/typing/cmi_format.ml | 4 +- src/ocaml/typing/cmi_format.mli | 2 +- src/ocaml/typing/ctype.ml | 64 +- src/ocaml/typing/ctype.mli | 3 +- src/ocaml/typing/env.ml | 186 ++++-- src/ocaml/typing/env.mli | 23 +- src/ocaml/typing/global_module.ml | 94 ++- src/ocaml/typing/global_module.mli | 37 ++ src/ocaml/typing/includecore.ml | 67 ++- src/ocaml/typing/includecore.mli | 20 +- src/ocaml/typing/includemod.ml | 58 +- src/ocaml/typing/jkind.ml | 565 ++++++++++++++++-- src/ocaml/typing/jkind.mli | 75 ++- src/ocaml/typing/jkind_axis.ml | 2 + src/ocaml/typing/jkind_axis.mli | 2 + src/ocaml/typing/mode.ml | 443 +++++++++----- src/ocaml/typing/mode_intf.mli | 30 +- src/ocaml/typing/mtype.ml | 5 +- src/ocaml/typing/mtype.mli | 2 + src/ocaml/typing/oprint.ml | 13 + src/ocaml/typing/outcometree.mli | 3 +- src/ocaml/typing/parmatch.ml | 22 +- src/ocaml/typing/patterns.ml | 12 +- src/ocaml/typing/patterns.mli | 3 +- src/ocaml/typing/persistent_env.ml | 324 ++++++++-- src/ocaml/typing/persistent_env.mli | 29 +- src/ocaml/typing/printpat.ml | 2 +- src/ocaml/typing/printtyped.ml | 2 +- .../typing/signature_with_global_bindings.ml | 6 +- .../typing/signature_with_global_bindings.mli | 2 +- src/ocaml/typing/tast_iterator.ml | 2 +- src/ocaml/typing/tast_mapper.ml | 8 + src/ocaml/typing/typecore.ml | 62 +- src/ocaml/typing/typedecl.ml | 13 +- src/ocaml/typing/typedtree.ml | 28 +- src/ocaml/typing/typedtree.mli | 1 + src/ocaml/typing/typemod.ml | 239 +++++--- src/ocaml/typing/typeopt.ml | 2 +- src/ocaml/typing/types.ml | 13 +- src/ocaml/typing/types.mli | 6 +- src/ocaml/typing/uniqueness_analysis.ml | 2 +- src/ocaml/typing/untypeast.ml | 8 +- src/ocaml/typing/value_rec_check.ml | 2 +- 43 files changed, 1908 insertions(+), 578 deletions(-) diff --git a/src/ocaml/typing/cmi_format.ml b/src/ocaml/typing/cmi_format.ml index 293bd28d9..96292626f 100644 --- a/src/ocaml/typing/cmi_format.ml +++ b/src/ocaml/typing/cmi_format.ml @@ -56,7 +56,7 @@ type flags = pers_flags list type header = { header_name : Compilation_unit.Name.t; header_kind : kind; - header_globals : Global_module.t array; + header_globals : Global_module.With_precision.t array; header_sign : Serialized.signature; header_params : Global_module.t list; } @@ -64,7 +64,7 @@ type header = { type 'sg cmi_infos_generic = { cmi_name : Compilation_unit.Name.t; cmi_kind : kind; - cmi_globals : Global_module.t array; + cmi_globals : Global_module.With_precision.t array; cmi_sign : 'sg; cmi_params : Global_module.t list; cmi_crcs : crcs; diff --git a/src/ocaml/typing/cmi_format.mli b/src/ocaml/typing/cmi_format.mli index e4b47f971..f3f69ed4d 100644 --- a/src/ocaml/typing/cmi_format.mli +++ b/src/ocaml/typing/cmi_format.mli @@ -32,7 +32,7 @@ type kind = type 'sg cmi_infos_generic = { cmi_name : Compilation_unit.Name.t; cmi_kind : kind; - cmi_globals : Global_module.t array; + cmi_globals : Global_module.With_precision.t array; cmi_sign : 'sg; cmi_params : Global_module.t list; (* CR lmaurer: Should be [Parameter_name.t list] *) cmi_crcs : Import_info.t array; diff --git a/src/ocaml/typing/ctype.ml b/src/ocaml/typing/ctype.ml index 5478c0de3..44033c3a6 100644 --- a/src/ocaml/typing/ctype.ml +++ b/src/ocaml/typing/ctype.ml @@ -2347,7 +2347,9 @@ let constrain_type_jkind ~fixed env ty jkind = (* Just succeed if we're comparing against [any] *) if Jkind.is_max jkind then Ok () else if fuel < 0 then - Error (Jkind.Violation.of_ (Not_a_subjkind (ty's_jkind, jkind))) + Error ( + Jkind.Violation.of_ ( + Not_a_subjkind (ty's_jkind, jkind, [Constrain_ran_out_of_fuel]))) else match get_desc ty with (* The [ty's_jkind] we get here is an **r** jkind, necessary for @@ -2388,7 +2390,7 @@ let constrain_type_jkind ~fixed env ty jkind = Jkind.sub_or_intersect ~type_equal ~jkind_of_type ty's_jkind jkind with | Sub -> Ok () - | Disjoint -> + | Disjoint sub_failure_reasons -> (* Reporting that [ty's_jkind] must be a subjkind of [jkind] is not always right. Suppose we had [type ('a : word) t = 'a] and we were checking ['a t] against [value]. Then it would be enough for [word] @@ -2397,8 +2399,10 @@ let constrain_type_jkind ~fixed env ty jkind = arbitrary amounts of expansion and looking through [@@unboxed] types. So we don't, settling for the slightly worse error message. *) - Error (Jkind.Violation.of_ (Not_a_subjkind (ty's_jkind, jkind))) - | Has_intersection -> + Error (Jkind.Violation.of_ + (Not_a_subjkind (ty's_jkind, jkind, Nonempty_list.to_list sub_failure_reasons))) + | Has_intersection sub_failure_reasons -> + let sub_failure_reasons = Nonempty_list.to_list sub_failure_reasons in let product ~fuel tys = let num_components = List.length tys in let recur ty's_jkinds jkinds = @@ -2408,7 +2412,8 @@ let constrain_type_jkind ~fixed env ty jkind = in if List.for_all Result.is_ok results then Ok () - else Error (Jkind.Violation.of_ (Not_a_subjkind (ty's_jkind, jkind))) + else Error (Jkind.Violation.of_ + (Not_a_subjkind (ty's_jkind, jkind, sub_failure_reasons))) in begin match Jkind.decompose_product ty's_jkind, Jkind.decompose_product jkind with @@ -2426,7 +2431,8 @@ let constrain_type_jkind ~fixed env ty jkind = (* Products don't line up. This is only possible if [ty] was given a jkind annotation of the wrong product arity. *) - Error (Jkind.Violation.of_ (Not_a_subjkind (ty's_jkind, jkind))) + Error (Jkind.Violation.of_ + (Not_a_subjkind (ty's_jkind, jkind, sub_failure_reasons))) end in match get_desc ty with @@ -2438,10 +2444,10 @@ let constrain_type_jkind ~fixed env ty jkind = else begin match unbox_once env ty with | Missing path -> Error (Jkind.Violation.of_ ~missing_cmi:path - (Not_a_subjkind (ty's_jkind, jkind))) + (Not_a_subjkind (ty's_jkind, jkind, sub_failure_reasons))) | Final_result -> Error - (Jkind.Violation.of_ (Not_a_subjkind (ty's_jkind, jkind))) + (Jkind.Violation.of_ (Not_a_subjkind (ty's_jkind, jkind, sub_failure_reasons))) | Stepped ty -> loop ~fuel:(fuel - 1) ~expanded:false ty (estimate_type_jkind env ty) jkind @@ -2455,7 +2461,8 @@ let constrain_type_jkind ~fixed env ty jkind = need to expand many types shallowly, and that's fine. *) product ~fuel (List.map snd ltys) | _ -> - Error (Jkind.Violation.of_ (Not_a_subjkind (ty's_jkind, jkind))) + Error (Jkind.Violation.of_ + (Not_a_subjkind (ty's_jkind, jkind, sub_failure_reasons))) in loop ~fuel:100 ~expanded:false ty (estimate_type_jkind env ty) jkind @@ -2545,7 +2552,7 @@ let check_and_update_generalized_ty_jkind ?name ~loc env ty = might turn out later to be value. This is the conservative choice. *) let jkind_of_type = type_jkind_purely_if_principal env in let ext = Jkind.get_externality_upper_bound ~jkind_of_type jkind in - Jkind.Externality.le ext External64 && + Jkind_axis.Externality.le ext External64 && match Jkind.get_layout jkind with | Some (Base Value) | None -> true | _ -> false @@ -3313,11 +3320,10 @@ and mcomp_unsafe_mode_crossing umc1 umc2 = | None, None -> () | Some _, None -> raise Incompatible | None, Some _ -> raise Incompatible - | Some ({ modal_upper_bounds = mub1 }), - Some ({ modal_upper_bounds = mub2 }) -> - if (Mode.Alloc.Const.le mub1 mub2 && Mode.Alloc.Const.le mub2 mub1) - then () - else raise Incompatible + | Some umc1, Some umc2 -> + if equal_unsafe_mode_crossing umc1 umc2 + then () + else raise Incompatible and mcomp_type_decl type_pairs env p1 p2 tl1 tl2 = try @@ -4890,14 +4896,21 @@ let relevant_pairs pairs v = (* This is very similar to Typecore.mode_cross_left_value. Any bugs here are likely bugs there, too. *) let mode_cross_left_alloc env ty mode = - let mode = - if not (is_principal ty) then mode else + if not (is_principal ty) then Alloc.disallow_right mode else begin let jkind = type_jkind_purely env ty in let jkind_of_type = type_jkind_purely_if_principal env in let upper_bounds = Jkind.get_modal_upper_bounds ~jkind_of_type jkind in - Alloc.meet_const upper_bounds mode - in - mode |> Alloc.disallow_right + let upper_bounds = + Alloc.Const.merge + { comonadic = upper_bounds; monadic = Alloc.Monadic.Const.max } + in + let lower_bounds = Jkind.get_modal_lower_bounds ~jkind_of_type jkind in + let lower_bounds = + Alloc.Const.merge + { comonadic = Alloc.Comonadic.Const.min; monadic = lower_bounds } + in + Alloc.subtract lower_bounds (Alloc.meet_const upper_bounds mode) + end (* This is very similar to Typecore.expect_mode_cross. Any bugs here are likely bugs there, too. *) @@ -4906,7 +4919,16 @@ let mode_cross_right env ty mode = let jkind = type_jkind_purely env ty in let jkind_of_type = type_jkind_purely_if_principal env in let upper_bounds = Jkind.get_modal_upper_bounds ~jkind_of_type jkind in - Alloc.imply upper_bounds mode + let upper_bounds = + Alloc.Const.merge + { comonadic = upper_bounds; monadic = Alloc.Monadic.Const.max } + in + let lower_bounds = Jkind.get_modal_lower_bounds ~jkind_of_type jkind in + let lower_bounds = + Alloc.Const.merge + { comonadic = Alloc.Comonadic.Const.min; monadic = lower_bounds } + in + Alloc.imply upper_bounds (Alloc.join_const lower_bounds mode) let submode_with_cross env ~is_ret ty l r = let r' = mode_cross_right env ty r in diff --git a/src/ocaml/typing/ctype.mli b/src/ocaml/typing/ctype.mli index 2d23dd6d1..c36855809 100644 --- a/src/ocaml/typing/ctype.mli +++ b/src/ocaml/typing/ctype.mli @@ -650,7 +650,8 @@ val constrain_type_jkind : (* Check whether a type's externality's upper bound is less than some target. Potentially cheaper than just calling [type_jkind], because this can stop expansion once it succeeds. *) -val check_type_externality : Env.t -> type_expr -> Jkind.Externality.t -> bool +val check_type_externality : + Env.t -> type_expr -> Jkind_axis.Externality.t -> bool (* This function should get called after a type is generalized. diff --git a/src/ocaml/typing/env.ml b/src/ocaml/typing/env.ml index 4878fc6d8..d2960d969 100644 --- a/src/ocaml/typing/env.ml +++ b/src/ocaml/typing/env.ml @@ -354,6 +354,8 @@ type lock = type locks = lock list +type held_locks = locks * Longident.t * Location.t + let locks_empty = [] let locks_is_empty l = l = locks_empty @@ -801,8 +803,6 @@ and short_paths_addition = | Module_type_open of Path.t * modtype_declaration NameMap.t | Module_open of Path.t * module_data NameMap.t -let mda_mode = Mode.Value.legacy |> Mode.Value.disallow_right - let clda_mode = Mode.Value.legacy |> Mode.Value.disallow_right let cm_mode = Mode.Value.legacy |> Mode.Value.disallow_right @@ -1019,14 +1019,14 @@ let check_functor_application = (* to be filled by Includemod *) ref ((fun ~errors:_ ~loc:_ ~lid_whole_app:_ ~f0_path:_ ~args:_ - ~arg_path:_ ~arg_mty:_ ~arg_mode:_ ~param_mty:_ + ~arg_path:_ ~arg_mty:_ ~param_mty:_ _env -> assert false) : errors:bool -> loc:Location.t -> lid_whole_app:Longident.t -> - f0_path:Path.t -> args:(Path.t * Types.module_type * Mode.Value.l) list -> - arg_path:Path.t -> arg_mty:module_type -> arg_mode:Mode.Value.l -> - param_mty:module_type -> t -> unit) + f0_path:Path.t -> args:(Path.t * Types.module_type) list -> + arg_path:Path.t -> arg_mty:module_type -> param_mty:module_type -> + t -> unit) let scrape_alias = (* to be filled with Mtype.scrape_alias *) @@ -1220,13 +1220,30 @@ let runtime_parameter_bindings () = let parameters () = Persistent_env.parameters !persistent_env +<<<<<<< janestreet/merlin-jst:rae/with-kinds-roll let read_pers_mod modname cmi ~add_binding = Persistent_env.read !persistent_env read_sign_of_cmi short_paths_components modname cmi ~add_binding - +||||||| ocaml-flambda/flambda-backend:4eb95cdd48f3f2f6193e59c53e4640a008a7fd13 +let read_pers_mod modname cmi ~add_binding = + Persistent_env.read !persistent_env read_sign_of_cmi modname cmi + ~add_binding +======= +let read_pers_mod modname cmi = + Persistent_env.read !persistent_env modname cmi +>>>>>>> ocaml-flambda/flambda-backend:5.2.0minus-6 + +<<<<<<< janestreet/merlin-jst:rae/with-kinds-roll let find_pers_mod name = Persistent_env.find !persistent_env read_sign_of_cmi short_paths_components name +||||||| ocaml-flambda/flambda-backend:4eb95cdd48f3f2f6193e59c53e4640a008a7fd13 +let find_pers_mod name = + Persistent_env.find !persistent_env read_sign_of_cmi name +======= +let find_pers_mod name ~allow_excess_args = + Persistent_env.find !persistent_env read_sign_of_cmi name ~allow_excess_args +>>>>>>> ocaml-flambda/flambda-backend:5.2.0minus-6 let check_pers_mod ~loc name = Persistent_env.check !persistent_env @@ -1310,12 +1327,12 @@ let modtype_of_functor_appl fcomp p1 p2 = let check_functor_appl ~errors ~loc ~lid_whole_app ~f0_path ~args ~f_comp - ~arg_path ~arg_mty ~arg_mode ~param_mty + ~arg_path ~arg_mty ~param_mty env = if not (stamped_mem f_comp.fcomp_cache arg_path) then !check_functor_application ~errors ~loc ~lid_whole_app ~f0_path ~args - ~arg_path ~arg_mty ~arg_mode ~param_mty + ~arg_path ~arg_mty ~param_mty env (* Lookup by identifier *) @@ -1326,7 +1343,24 @@ let find_ident_module id env = | Mod_unbound _ -> raise Not_found | Mod_persistent -> match Ident.to_global id with - | Some global_name -> find_pers_mod ~allow_hidden:true global_name + | Some global_name -> + let allow_excess_args = + (* This may be a global that arose by substituting instance + arguments into an overapproximated instance name, so we have to + allow it to have more arguments than expected. For example, if + [foo.ml] is compiled with [-parameter P] and says + [module Alias = M], we assume that [m.ml] was (or will be) + compiled with [-parameter P] as well, sa [foo.cmi] will record + [M{P}] as an approximate elaboration of [M]. Then if [bar.ml] + refers to [Foo[P:Int]], we substitute in [Foo]'s signature and + get [module Alias = M[P:Int]] whether or not [M] takes [P].) *) + (* CR-someday lmaurer: This does mean that the original alias may + have had too many arguments and we'll never have checked them. + One solution would be to remember somewhere what the user + actually typed in addition to the approximation. *) + true + in + find_pers_mod ~allow_hidden:true ~allow_excess_args global_name | None -> Misc.fatal_errorf "Not global: %a" Ident.print id let rec find_module_components path env = @@ -1576,6 +1610,7 @@ let global_of_instance_compilation_unit cu = (* We could just convert the global name ourselves by filling in empty lists of hidden arguments, but this doubles as a typecheck of the instance. *) Persistent_env.global_of_global_name !persistent_env global_name ~check:true + ~allow_excess_args:false in let rec check (global : Global_module.t) = match global.hidden_args with @@ -1718,6 +1753,31 @@ and expand_modtype_path env path = | Some (Mty_ident path) -> normalize_modtype_path env path | _ | exception Not_found -> path +let normalize_instance_names_in_ident ident = + if Ident.is_instance ident then + let modname = Ident.to_global_exn ident in + let modname2 = + Persistent_env.normalize_global_name !persistent_env modname + in + if modname == modname2 then ident else Ident.create_global modname2 + else + ident + +let rec normalize_instance_names_in_module_path path = + match path with + | Pident i -> + let i2 = normalize_instance_names_in_ident i in + if i == i2 then path else Pident i2 + | Pdot (p, s) -> + let p2 = normalize_instance_names_in_module_path p in + if p == p2 then path else Pdot (p2, s) + | Pextra_ty (p, extra) -> + let p2 = normalize_instance_names_in_module_path p in + if p == p2 then path else Pextra_ty (p2, extra) + | Papply (p, a) -> + let p2 = normalize_instance_names_in_module_path p in + if p == p2 then path else Papply (p2, a) + let find_module_lazy path env = find_module_lazy ~alias:false path env @@ -2858,8 +2918,8 @@ let enter_unbound_module name reason env = summary = Env_module_unbound(env.summary, name, reason) } (* Read a signature from a file *) -let read_signature modname cmi ~add_binding = - let mty = read_pers_mod modname cmi ~add_binding in +let read_signature modname cmi = + let mty = read_pers_mod modname cmi in Subst.Lazy.force_signature mty let register_parameter modname = @@ -3135,7 +3195,7 @@ let lookup_global_name_module_no_locks check_pers_mod ~allow_hidden:false ~loc name; path, (() : a) | Load -> begin - match find_pers_mod ~allow_hidden:false name with + match find_pers_mod ~allow_hidden:false name ~allow_excess_args:false with | mda -> use_module ~use ~loc path mda; path, (mda : a) @@ -3370,7 +3430,8 @@ let rec lookup_module_components ~errors ~use ~loc lid env = let f_path, f_comp, arg = lookup_apply ~errors ~use ~loc lid env in let comps = !components_of_functor_appl' ~loc ~f_path ~f_comp ~arg env in - Papply (f_path, arg), [], comps + (* [Lapply] is for [F(M).t] so nothing is closed over. *) + Papply (f_path, arg), locks_empty, comps and lookup_structure_components ~errors ~use ~loc ?(reason = Project) lid env = let path, locks, comps = lookup_module_components ~errors ~use ~loc lid env in @@ -3403,43 +3464,44 @@ and lookup_all_args ~errors ~use ~loc lid0 env = | Lident _ | Ldot _ as f_lid -> (f_lid, args) | Lapply (f_lid, arg_lid) -> - let arg_path, arg_md, arg_vmode = - lookup_module ~errors ~use ~lock:false ~loc arg_lid env - in - loop_lid_arg ((f_lid,arg_path,arg_md.md_type,arg_vmode)::args) f_lid + (* [Lapply] only appears in e.g. [F(M).t], which does not incur functor + application at runtime and thus both the functor and the arguments are not closed + over. Therefore, they all remains at legacy mode which don't need to be tracked. + *) + let arg_path, arg_md, _ = lookup_module ~errors ~use ~loc arg_lid env in + loop_lid_arg ((f_lid,arg_path,arg_md.md_type)::args) f_lid in loop_lid_arg [] lid0 and lookup_apply ~errors ~use ~loc lid0 env = let f0_lid, args0 = lookup_all_args ~errors ~use ~loc lid0 env in - let args_for_errors = List.map (fun (_,p,mty,vmode) -> (p,mty,vmode.mode)) args0 in + let args_for_errors = List.map (fun (_,p,mty) -> (p,mty)) args0 in let f0_path, _, f0_comp = lookup_module_components ~errors ~use ~loc f0_lid env in - let check_one_apply ~errors ~loc ~f_lid ~f_comp ~arg_path ~arg_mty ~arg_mode - env = + let check_one_apply ~errors ~loc ~f_lid ~f_comp ~arg_path ~arg_mty env = let f_comp, param_mty = get_functor_components ~errors ~loc f_lid env f_comp in check_functor_appl ~errors ~loc ~lid_whole_app:lid0 ~f0_path ~args:args_for_errors ~f_comp - ~arg_path ~arg_mty ~arg_mode:arg_mode.mode ~param_mty + ~arg_path ~arg_mty ~param_mty env; arg_path, f_comp in let rec check_apply ~path:f_path ~comp:f_comp = function | [] -> invalid_arg "Env.lookup_apply: empty argument list" - | [ f_lid, arg_path, arg_mty, arg_mode ] -> + | [ f_lid, arg_path, arg_mty ] -> let arg_path, comps = check_one_apply ~errors ~loc ~f_lid ~f_comp - ~arg_path ~arg_mty ~arg_mode env + ~arg_path ~arg_mty env in f_path, comps, arg_path - | (f_lid, arg_path, arg_mty, arg_mode) :: args -> + | (f_lid, arg_path, arg_mty) :: args -> let arg_path, f_comp = check_one_apply ~errors ~loc ~f_lid ~f_comp - ~arg_path ~arg_mty ~arg_mode env + ~arg_path ~arg_mty env in let comp = !components_of_functor_appl' ~loc ~f_path ~f_comp ~arg:arg_path env @@ -3449,29 +3511,21 @@ and lookup_apply ~errors ~use ~loc lid0 env = in check_apply ~path:f0_path ~comp:f0_comp args0 -and lookup_module ~errors ~use ~lock ~loc lid env = - let path, locks, md = - match lid with - | Lident s -> - let path, locks, data = lookup_ident_module Load ~errors ~use ~loc s env in - let md = Subst.Lazy.force_module_decl data.mda_declaration in - path, locks, md - | Ldot(l, s) -> - let path, locks, data = lookup_dot_module ~errors ~use ~loc l s env in - let md = Subst.Lazy.force_module_decl data.mda_declaration in - path, locks, md - | Lapply _ as lid -> - let path_f, comp_f, path_arg = lookup_apply ~errors ~use ~loc lid env in - let md = md (modtype_of_functor_appl comp_f path_f path_arg) in - Papply(path_f, path_arg), [], md - in - let vmode = - if lock then - walk_locks ~errors ~loc ~env ~item:Module ~lid mda_mode None locks - else - mode_default mda_mode - in - path, md, vmode +and lookup_module ~errors ~use ~loc lid env = + match lid with + | Lident s -> + let path, locks, data = lookup_ident_module Load ~errors ~use ~loc s env in + let md = Subst.Lazy.force_module_decl data.mda_declaration in + path, md, locks + | Ldot(l, s) -> + let path, locks, data = lookup_dot_module ~errors ~use ~loc l s env in + let md = Subst.Lazy.force_module_decl data.mda_declaration in + path, md, locks + | Lapply _ as lid -> + let path_f, comp_f, path_arg = lookup_apply ~errors ~use ~loc lid env in + let md = md (modtype_of_functor_appl comp_f path_f path_arg) in + (* [Lapply] is for [F(M).t] so nothing is closed over. *) + Papply(path_f, path_arg), md, locks_empty and lookup_dot_module ~errors ~use ~loc l s env = let p, locks, comps = lookup_structure_components ~errors ~use ~loc l env in @@ -3646,7 +3700,7 @@ let add_components slot root env0 comps locks = let open_signature_by_path path env0 = let comps = find_structure_components path env0 in - add_components None path env0 comps [] + add_components None path env0 comps locks_empty let open_signature ~errors ~loc slot lid env0 = let (root, locks, comps) = @@ -3767,7 +3821,8 @@ let lookup_module_path ~errors ~use ~loc ~load lid env = path, locks | Lapply _ as lid -> let path_f, _comp_f, path_arg = lookup_apply ~errors ~use ~loc lid env in - Papply(path_f, path_arg), [] + (* [Lapply] is for [F(M).t] so nothing is closed over. *) + Papply(path_f, path_arg), locks_empty let lookup_module_instance_path ~errors ~use ~loc ~load name env = (* The locks are whatever locks we would find if we went through @@ -3908,9 +3963,7 @@ let lookup_all_constructors_from_type ~use ~loc usage ty_path env = let find_module_by_name lid env = let loc = Location.(in_file !input_name) in - let path, desc, _ = - lookup_module ~errors:false ~use:false ~lock:false ~loc lid env - in + let path, desc, _ = lookup_module ~errors:false ~use:false ~loc lid env in path, desc let find_value_by_name lid env = @@ -3962,7 +4015,7 @@ let find_cltype_index id env = find_index_tbl id env.cltypes (* Ordinary lookup functions *) -let walk_locks ~loc ~env ~item ~lid mode ty locks = +let walk_locks ~env ~item mode ty (locks, lid, loc) = walk_locks ~errors:true ~loc ~env ~item ~lid mode ty locks let lookup_module_path ?(use=true) ~loc ~load lid env = @@ -3971,9 +4024,8 @@ let lookup_module_path ?(use=true) ~loc ~load lid env = let lookup_module_instance_path ?(use=true) ~loc ~load lid env = lookup_module_instance_path ~errors:true ~use ~loc ~load lid env -let lookup_module ?(use=true) ?(lock=use) ~loc lid env = - let path, desc, vmode = lookup_module ~errors:true ~use ~lock ~loc lid env in - path, desc, vmode.mode +let lookup_module ?(use=true) ~loc lid env = + lookup_module ~errors:true ~use ~loc lid env let lookup_value ?(use=true) ~loc lid env = lookup_value ~errors:true ~use ~loc lid env @@ -4050,10 +4102,10 @@ let bound_module name env = if Current_unit_name.is name then false else begin match - find_pers_mod ~allow_hidden:false + find_pers_mod ~allow_hidden:false ~allow_excess_args:false (Global_module.Name.create_no_args name) with - | _ -> true + | (_ : module_data) -> true | exception Not_found -> false end @@ -4397,9 +4449,23 @@ let sharedness_hint ppf : shared_context -> _ = function because it is defined outside of the probe.@]" let print_lock_item ppf (item, lid) = +<<<<<<< janestreet/merlin-jst:rae/with-kinds-roll match (item : lock_item) with | Module -> fprintf ppf "Modules are" | Class -> fprintf ppf "Classes are" +||||||| ocaml-flambda/flambda-backend:4eb95cdd48f3f2f6193e59c53e4640a008a7fd13 + match item with + | Module -> fprintf ppf "Modules are" + | Class -> fprintf ppf "Classes are" +======= + match item with + | Module -> + fprintf ppf "%a is a module, and modules are always" + (Style.as_inline_code !print_longident) lid + | Class -> + fprintf ppf "%a is a class, and classes are always" + (Style.as_inline_code !print_longident) lid +>>>>>>> ocaml-flambda/flambda-backend:5.2.0minus-6 | Value -> fprintf ppf "The value %a is" (Style.as_inline_code !print_longident) lid diff --git a/src/ocaml/typing/env.mli b/src/ocaml/typing/env.mli index bb40f7571..918f8007e 100644 --- a/src/ocaml/typing/env.mli +++ b/src/ocaml/typing/env.mli @@ -141,6 +141,10 @@ val normalize_value_path: Location.t option -> t -> Path.t -> Path.t val normalize_modtype_path: t -> Path.t -> Path.t (* Normalize a module type path *) +val normalize_instance_names_in_module_path: Path.t -> Path.t +(* Normalize the instance names appearing in a module path by removing + excess arguments arising from transparent aliases *) + val reset_required_globals: unit -> unit val get_required_globals: unit -> Compilation_unit.t list val add_required_global: Path.t -> t -> unit @@ -204,6 +208,11 @@ type shared_context = type locks +type held_locks = locks * Longident.t * Location.t +(** Sometimes we get the locks for something, but either want to walk them later, or +walk them for something else. The [Longident.t] and [Location.t] are only for error +messages, and point to the variable for which we actually want to walk the locks. *) + val locks_empty : locks val locks_is_empty : locks -> bool @@ -270,8 +279,8 @@ type actual_mode = { locks and constrains [mode] and [ty]. Return the access mode of the value allowed by the locks. [ty] is optional as the function works on modules and classes as well, for which [ty] should be [None]. *) -val walk_locks : loc:Location.t -> env:t -> item:lock_item -> lid:Longident.t -> - Mode.Value.l -> type_expr option -> locks -> actual_mode +val walk_locks : env:t -> item:lock_item -> Mode.Value.l -> type_expr option -> + held_locks -> actual_mode val lookup_value: ?use:bool -> loc:Location.t -> Longident.t -> t -> @@ -280,8 +289,8 @@ val lookup_type: ?use:bool -> loc:Location.t -> Longident.t -> t -> Path.t * type_declaration val lookup_module: - ?use:bool -> ?lock:bool -> loc:Location.t -> Longident.t -> t -> - Path.t * module_declaration * Mode.Value.l + ?use:bool -> loc:Location.t -> Longident.t -> t -> + Path.t * module_declaration * locks val lookup_modtype: ?use:bool -> loc:Location.t -> Longident.t -> t -> Path.t * modtype_declaration @@ -511,7 +520,7 @@ val get_unit_name: unit -> Compilation_unit.t option (* Read, save a signature to/from a file. *) val read_signature: - Global_module.Name.t -> Unit_info.Artifact.t -> add_binding:bool + Global_module.Name.t -> Unit_info.Artifact.t -> signature (* Arguments: module name, file name, [add_binding] flag. Results: signature. If [add_binding] is true, creates an entry for @@ -611,8 +620,8 @@ val set_type_used_callback: val check_functor_application: (errors:bool -> loc:Location.t -> lid_whole_app:Longident.t -> - f0_path:Path.t -> args:(Path.t * Types.module_type * Mode.Value.l) list -> - arg_path:Path.t -> arg_mty:Types.module_type -> arg_mode:Mode.Value.l -> + f0_path:Path.t -> args:(Path.t * Types.module_type) list -> + arg_path:Path.t -> arg_mty:Types.module_type -> param_mty:Types.module_type -> t -> unit) ref (* Forward declaration to break mutual recursion with Typemod. *) diff --git a/src/ocaml/typing/global_module.ml b/src/ocaml/typing/global_module.ml index 6644b788c..c68f6fdaa 100644 --- a/src/ocaml/typing/global_module.ml +++ b/src/ocaml/typing/global_module.ml @@ -13,11 +13,12 @@ module Argument = struct } let compare cmp_param cmp_value - { param = param1; value = value1 } - { param = param2; value = value2 } = - match cmp_param param1 param2 with - | 0 -> cmp_value value1 value2 - | c -> c + ({ param = param1; value = value1 } as t1) + ({ param = param2; value = value2 } as t2) = + if t1 == t2 then 0 else + match cmp_param param1 param2 with + | 0 -> cmp_value value1 value2 + | c -> c end let check_uniqueness_of_sorted l ~cmp = @@ -307,3 +308,86 @@ let has_arguments t = match t with | { head = _; visible_args = []; hidden_args = [] } -> false | _ -> true + +module Precision = struct + type t = Exact | Approximate + + let print ppf = function + | Exact -> Format.fprintf ppf "exact" + | Approximate -> Format.fprintf ppf "approx" + + let output = Misc.output_of_print print + + let equal t1 t2 = + match t1, t2 with + | Exact, Exact + | Approximate, Approximate -> true + | (Exact | Approximate), _ -> false +end + +module With_precision = struct + type nonrec t = t * Precision.t + + let print ppf (t, prec) = + match (prec : Precision.t) with + | Exact -> print ppf t + | Approximate -> Format.fprintf ppf "@[%a@ (approx)@]" print t + + let output = Misc.output_of_print print + + exception Inconsistent + + let meet_atom equal atom1 atom2 = + if not (equal atom1 atom2) then raise Inconsistent + + let meet_approximate glob1 glob2 = + (* Compute the meet, assuming the visible parts are equal *) + let rec meet glob1 glob2 = + let visible_args_rev = + Misc.Stdlib.List.merge_fold glob1.visible_args glob2.visible_args + ~cmp:compare_arg_name + ~init:[] + ~left_only:(fun _ _ -> raise Inconsistent) + ~right_only:(fun _ _ -> raise Inconsistent) + ~both:(fun acc_rev arg1 arg2 -> meet_args arg1 arg2 :: acc_rev) + in + let hidden_args_rev = + (* Keep only the hidden arguments that appear in both lists *) + Misc.Stdlib.List.merge_fold glob1.hidden_args glob2.hidden_args + ~cmp:compare_arg_name + ~init:[] + ~left_only:(fun acc_rev _ -> acc_rev) + ~right_only:(fun acc_rev _ -> acc_rev) + ~both:(fun acc_rev arg1 arg2 -> meet_args arg1 arg2 :: acc_rev) + in + meet_atom String.equal glob1.head glob2.head; + let visible_args = List.rev visible_args_rev in + let hidden_args = List.rev hidden_args_rev in + create_exn glob1.head visible_args ~hidden_args + and meet_args (arg1 : _ Argument.t) (arg2 : _ Argument.t) = + meet_atom Name.equal arg1.param arg2.param; + let value = meet arg1.value arg2.value in + ({ param = arg1.param; value } : _ Argument.t) + in + meet glob1 glob2 + + let meet (t1 : t) (t2 : t) : t = + match t1, t2 with + | (glob1, Approximate), (glob2, Approximate) -> + (meet_approximate glob1 glob2, Approximate) + | (glob1, Exact), (glob2, Exact) -> + begin match equal glob1 glob2 with + | true -> t1 + | false -> raise Inconsistent + end + | ((exact, Exact) as t_exact), (approx, Approximate) + | (approx, Approximate), ((exact, Exact) as t_exact) -> + let exact' = meet_approximate exact approx in + begin match equal exact exact' with + | true -> t_exact + | false -> raise Inconsistent + end + + let equal (t1, prec1) (t2, prec2) = + equal t1 t2 && Precision.equal prec1 prec2 +end diff --git a/src/ocaml/typing/global_module.mli b/src/ocaml/typing/global_module.mli index 9a1d0cbd7..567271b6b 100644 --- a/src/ocaml/typing/global_module.mli +++ b/src/ocaml/typing/global_module.mli @@ -122,3 +122,40 @@ val is_complete : t -> bool (** Returns [true] if this name has at least one argument (either hidden or visible). *) val has_arguments : t -> bool + +module Precision : sig + (** Whether a global's elaborated form is known exactly. For example, given + the elaborated form [Foo{Bar; Baz}], if we never loaded foo.cmi then + we don't actually know whether [Foo] takes [Bar] or [Baz]. *) + type t = + | Exact (** The base module takes exactly the arguments being passed. *) + | Approximate + (** The base module takes some subset of the arguments being passed + (possibly all of them). *) + + val print : Format.formatter -> t -> unit + + val output : out_channel -> t -> unit +end + +module With_precision : sig + type nonrec t = t * Precision.t + + val equal : t -> t -> bool + + exception Inconsistent + + (** Given two elaborated forms of the same name and their precision, reconcile + them. In any case, if the visible parts of the globals disagree, raise + [Inconsistent] (because they don't in fact elaborate the same [Name.t]). + For the hidden parts, we treat an exact [t] as requiring equality and an + approximate [t] as specifying an upper bound. Thus exact vs. exact checks + for equality, exact vs. approximate checks the upper bound, and + approximate vs. approximate takes the least upper bound (that is, the + intersection). *) + val meet : t -> t -> t + + val print : Format.formatter -> t -> unit + + val output : out_channel -> t -> unit +end diff --git a/src/ocaml/typing/includecore.ml b/src/ocaml/typing/includecore.ml index 9cc0b77b5..fc93df7bf 100644 --- a/src/ocaml/typing/includecore.ml +++ b/src/ocaml/typing/includecore.ml @@ -49,7 +49,7 @@ exception Dont_match of value_mismatch type mmodes = | All - | Legacy + | Legacy of Env.held_locks option (** Mode cross a right mode *) (* This is very similar to Ctype.mode_cross_right. Any bugs here are likely bugs @@ -57,14 +57,45 @@ type mmodes = let right_mode_cross_jkind env jkind mode = let jkind_of_type = Ctype.type_jkind_purely_if_principal env in let upper_bounds = Jkind.get_modal_upper_bounds ~jkind_of_type jkind in + let upper_bounds = + Alloc.Const.merge + { comonadic = upper_bounds; monadic = Alloc.Monadic.Const.max } + in let upper_bounds = Const.alloc_as_value upper_bounds in - Value.imply upper_bounds mode + let lower_bounds = Jkind.get_modal_lower_bounds ~jkind_of_type jkind in + let lower_bounds = + Alloc.Const.merge + { comonadic = Alloc.Comonadic.Const.min; monadic = lower_bounds } + in + let lower_bounds = Const.alloc_as_value lower_bounds in + Value.imply upper_bounds (Value.join_const lower_bounds mode) let right_mode_cross env ty mode = if not (Ctype.is_principal ty) then mode else let jkind = Ctype.type_jkind_purely env ty in right_mode_cross_jkind env jkind mode +let left_mode_cross_jkind env jkind mode = + let jkind_of_type = Ctype.type_jkind_purely_if_principal env in + let upper_bounds = Jkind.get_modal_upper_bounds ~jkind_of_type jkind in + let upper_bounds = + Alloc.Const.merge + { comonadic = upper_bounds; monadic = Alloc.Monadic.Const.max } + in + let upper_bounds = Const.alloc_as_value upper_bounds in + let lower_bounds = Jkind.get_modal_lower_bounds ~jkind_of_type jkind in + let lower_bounds = + Alloc.Const.merge + { comonadic = Alloc.Comonadic.Const.min; monadic = lower_bounds } + in + let lower_bounds = Const.alloc_as_value lower_bounds in + Value.subtract lower_bounds (Value.meet_const upper_bounds mode) + +let left_mode_cross env ty mode= + if not (Ctype.is_principal ty) then mode else + let jkind = Ctype.type_jkind_purely env ty in + left_mode_cross_jkind env jkind mode + let native_repr_args nra1 nra2 = let rec loop i nra1 nra2 = match nra1, nra2 with @@ -128,17 +159,27 @@ let value_descriptions ~loc env name | Ok () -> () | Error e -> raise (Dont_match (Modality e)) end; - | Legacy when (vd1.val_modalities == vd2.val_modalities) -> + | Legacy close_over_coercion -> + match Mode.Modality.Value.to_const_opt vd2.val_modalities with (* [wrap_constraint_with_shape] invokes inclusion check with identical inferred modalities, which we need to workaround. *) - () - | Legacy -> + | None -> () + | Some val2_modalities -> let mmode1, mmode2 = Mode.Value.(disallow_right legacy), Mode.Value.(disallow_left legacy) in let mode1 = Mode.Modality.Value.apply vd1.val_modalities mmode1 in - let mode2 = - Mode.Modality.Value.(Const.apply (to_const_exn vd2.val_modalities) mmode2) + let mode2 = Mode.Modality.Value.(Const.apply val2_modalities mmode2) in + let mode1 = + match close_over_coercion with + | Some held_locks -> + (* Cross modes according to RHS type as it tends to be by the user. *) + let mode1 = left_mode_cross env vd2.val_type mode1 in + let mode1 = + Env.walk_locks ~env ~item:Value mode1 (Some vd1.val_type) held_locks + in + mode1.mode + | None -> mode1 in let mode2 = right_mode_cross env vd2.val_type mode2 in begin match Mode.Value.submode mode1 mode2 with @@ -667,11 +708,10 @@ let compare_unsafe_mode_crossing umc1 umc2 = | None, None -> None | Some _, None -> Some (Unsafe_mode_crossing (Mode_crossing_only_on First)) | None, Some _ -> Some (Unsafe_mode_crossing (Mode_crossing_only_on Second)) - | Some ({ modal_upper_bounds = mub1 }), - Some ({ modal_upper_bounds = mub2 }) -> - if (Mode.Alloc.Const.le mub1 mub2 && Mode.Alloc.Const.le mub2 mub1) - then None - else Some (Unsafe_mode_crossing Mode_crossing_not_equal) + | Some umc1, Some umc2 -> + if equal_unsafe_mode_crossing umc1 umc2 + then None + else Some (Unsafe_mode_crossing Mode_crossing_not_equal) module Record_diffing = struct @@ -1445,7 +1485,8 @@ let type_declarations ?(equality = false) ~loc env ~mark name Some (Parameter_jkind (ty, Jkind.Violation.of_ (Not_a_subjkind (Jkind.disallow_right original_jkind, - Jkind.disallow_left inferred_jkind)))) + Jkind.disallow_left inferred_jkind, + [])))) | All_good -> let abstr = Btype.type_kind_is_abstract decl2 && decl2.type_manifest = None in let need_variance = diff --git a/src/ocaml/typing/includecore.mli b/src/ocaml/typing/includecore.mli index 65636c51b..941e4f1a8 100644 --- a/src/ocaml/typing/includecore.mli +++ b/src/ocaml/typing/includecore.mli @@ -131,8 +131,24 @@ type mmodes = | All (** Check module inclusion [M1 : MT1 @ m1 <= M2 : MT2 @ m2] for all [m1 <= m2]. *) - | Legacy - (** Check module inclusion [M1 : MT1 @ legacy <= M2 : MT2 @ legacy]. *) + | Legacy of Env.held_locks option + (** Check module inclusion [M1 : MT1 @ legacy <= M2 : MT2 @ legacy]. + If [M1] is a [Pmod_ident] and the current inclusion check is for its + coercion into [M2], we treat all surroudning functions as not closing over + [M1], but closing over components in [M1] required by [MT2]. Therefore, the + locks for [M1] are held, to be walked by each of the components + individually. + + This is potentially unsafe as it doesn't reflect the real runtime behavior, + for at least two reasons: + - The corecion might turn out to be [coercion_none], in which case no + coercion happens, and the functions will be closing over the original module. + - Even if the coercion happens, the functions will be closing over the + original module and projecting needed values out of it. + + The above concern can be resolved by the "ergonomics" discussion in + [typecore.type_ident]. + *) val value_descriptions: loc:Location.t -> Env.t -> string -> diff --git a/src/ocaml/typing/includemod.ml b/src/ocaml/typing/includemod.ml index e3c3107c0..5cabf9693 100644 --- a/src/ocaml/typing/includemod.ml +++ b/src/ocaml/typing/includemod.ml @@ -27,7 +27,7 @@ type pos = type modes = Includecore.mmodes = | All - | Legacy + | Legacy of Env.held_locks option module Error = struct @@ -140,6 +140,17 @@ let mark_positive = function i.e. that x1 is the type of an implementation that fulfills the specification x2. If not, Error is raised with a backtrace of the error. *) +let walk_locks ~env ~item = function + | All | Legacy None -> () + | Legacy (Some held_locks) -> + ignore (Env.walk_locks ~env ~item Mode.Value.(legacy |> disallow_right) + None held_locks) + +let append_ldot s = function + | (All | Legacy None) as t -> t + | Legacy (Some (locks, lid, loc)) -> + Legacy (Some (locks, Ldot (lid, s), loc)) + (* Inclusion between value descriptions *) let value_descriptions ~loc env ~mark subst id ~mmodes vd1 vd2 = @@ -530,6 +541,22 @@ and try_modtypes ~in_eq ~loc env ~mark subst ~modes mty1 mty2 orig_shape = in match mty1, mty2 with | _ when shallow_modtypes env subst mty1 mty2 -> + begin match modes with + | Legacy (Some (locks, _, _)) when not (Env.locks_is_empty locks) -> + (* If the coercion being checked is closed over, we close over individual values + in the module, instead of the whole module. *) + let mty1 = Mtype.reduce_alias_lazy env mty1 in + let mty2 = Subst.Lazy.modtype Keep subst mty2 |> Mtype.reduce_alias_lazy env in + begin match mty1, mty2 with + | Some mty1, Some mty2 -> + (* Only for the side-effects of walking locks *) + ignore (try_modtypes ~in_eq ~loc env ~mark subst ~modes mty1 mty2 orig_shape) + | _, _ -> + walk_locks ~env ~item:Module modes + end + | _ -> + walk_locks ~env ~item:Module modes + end; Ok (Tcoerce_none, orig_shape) | (Mty_alias p1, _) when not (is_alias mty2) -> begin @@ -561,6 +588,7 @@ and try_modtypes ~in_eq ~loc env ~mark subst ~modes mty1 mty2 orig_shape = end | Mty_functor (param1, res1), Mty_functor (param2, res2) -> + walk_locks ~env ~item:Module modes; let cc_arg, env, subst = functor_param ~in_eq ~loc env ~mark:(negate_mark mark) subst param1 param2 @@ -580,7 +608,8 @@ and try_modtypes ~in_eq ~loc env ~mark subst ~modes mty1 mty2 orig_shape = var, Shape.app orig_shape ~arg:shape_var in let cc_res = - modtypes ~in_eq ~loc env ~mark subst res1 res2 res_shape ~modes:Legacy + modtypes ~in_eq ~loc env ~mark subst res1 res2 res_shape + ~modes:(Legacy None) in begin match cc_arg, cc_res with | Ok Tcoerce_none, Ok (Tcoerce_none, final_res_shape) -> @@ -679,8 +708,8 @@ and functor_param ~in_eq ~loc env ~mark subst param1 param2 = let arg2' = Subst.Lazy.modtype Keep subst arg2 in let cc_arg = match - modtypes ~in_eq ~loc env ~mark Subst.identity ~modes:Legacy arg2' arg1 - Shape.dummy_mod + modtypes ~in_eq ~loc env ~mark Subst.identity arg2' arg1 + Shape.dummy_mod ~modes:(Legacy None) with | Ok (cc, _) -> Ok cc | Error err -> Error (Error.Mismatch err) @@ -787,6 +816,7 @@ and signature_components : let id, item, shape_map, present_at_runtime = match sigi1, sigi2 with | Sig_value(id1, valdecl1, _) ,Sig_value(_id2, valdecl2, _) -> + let mmodes = append_ldot (Ident.name id1) mmodes in let item = value_descriptions ~loc env ~mark subst id1 ~mmodes (Subst.Lazy.force_value_description valdecl1) @@ -819,6 +849,7 @@ and signature_components : id1, item, shape_map, true | Sig_module(id1, pres1, mty1, _, _), Sig_module(_, pres2, mty2, _, _) -> begin + let mmodes = append_ldot (Ident.name id1) mmodes in let orig_shape = Shape.(proj orig_shape (Item.module_ id1)) in @@ -860,6 +891,7 @@ and signature_components : let item = mark_error_as_unrecoverable item in id1, item, shape_map, false | Sig_class(id1, decl1, _, _), Sig_class(_id2, decl2, _, _) -> + walk_locks ~env ~item:Class (append_ldot (Ident.name id1) mmodes); let item = class_declarations env subst decl1 decl2 in @@ -986,7 +1018,7 @@ let include_functor_signatures ~loc env ~mark subst sig1 sig2 mod_shape = let _, _, comps1 = build_component_table (fun _pos name -> name) sig1 in let paired, unpaired, subst = pair_components subst comps1 sig2 in let d = signature_components ~in_eq:false ~loc ~mark env subst mod_shape - Shape.Map.empty ~mmodes:Legacy + Shape.Map.empty ~mmodes:(Legacy None) (List.rev paired) in let open Sign_diff in @@ -1011,10 +1043,10 @@ let signatures ~in_eq ~loc env ~mark subst sig1 sig2 mod_shape = let sig2 = Subst.Lazy.of_signature sig2 in signatures ~in_eq ~loc env ~mark subst sig1 sig2 mod_shape -let modtypes ~in_eq ~loc env ~mark subst mty1 mty2 shape = +let modtypes ~in_eq ~loc env ~mark subst ~modes mty1 mty2 shape = let mty1 = Subst.Lazy.of_modtype mty1 in let mty2 = Subst.Lazy.of_modtype mty2 in - modtypes ~in_eq ~loc env ~mark subst mty1 mty2 shape + modtypes ~in_eq ~loc env ~mark subst ~modes mty1 mty2 shape let strengthened_modtypes ~in_eq ~loc ~aliasable env ~mark subst mty1 path1 mty2 shape = @@ -1041,7 +1073,7 @@ exception Apply_error of { let check_modtype_inclusion_raw ~loc env mty1 path1 mty2 = let aliasable = can_alias env path1 in strengthened_modtypes ~in_eq:false ~loc ~aliasable env ~mark:Mark_both - Subst.identity ~modes:Legacy mty1 path1 mty2 Shape.dummy_mod + Subst.identity ~modes:(Legacy None) mty1 path1 mty2 Shape.dummy_mod |> Result.map fst let check_modtype_inclusion ~loc env mty1 path1 mty2 = @@ -1051,13 +1083,12 @@ let check_modtype_inclusion ~loc env mty1 path1 mty2 = let check_functor_application_in_path ~errors ~loc ~lid_whole_app ~f0_path ~args - ~arg_path ~arg_mty ~arg_mode ~param_mty env = - Mode.Value.submode_exn arg_mode Mode.Value.legacy; + ~arg_path ~arg_mty ~param_mty env = match check_modtype_inclusion_raw ~loc env arg_mty arg_path param_mty with | Ok _ -> () | Error _errs -> if errors then - let prepare_arg (arg_path, arg_mty, _arg_mode) = + let prepare_arg (arg_path, arg_mty) = let aliasable = can_alias env arg_path in let smd = Mtype.strengthen ~aliasable arg_mty arg_path in (Error.Named arg_path, smd) @@ -1080,7 +1111,7 @@ let compunit0 ~comparison env ~mark impl_name impl_sig intf_name intf_sig unit_shape = match signatures ~in_eq:false ~loc:(Location.in_file impl_name) env ~mark - Subst.identity ~modes:Legacy impl_sig intf_sig unit_shape + Subst.identity ~modes:(Legacy None) impl_sig intf_sig unit_shape with Result.Error reasons -> let diff = Error.diff impl_name intf_name reasons in let cdiff = @@ -1296,7 +1327,8 @@ module Functor_app_diff = struct | ( Anonymous | Named _ | Empty_struct ), Named (_, param) -> match modtypes ~in_eq:false ~loc state.env ~mark:Mark_neither - state.subst ~modes:Legacy arg_mty param Shape.dummy_mod + state.subst ~modes:(Legacy None) arg_mty param + Shape.dummy_mod with | Error mty -> Result.Error (Error.Mismatch mty) | Ok (cc, _) -> Ok cc diff --git a/src/ocaml/typing/jkind.ml b/src/ocaml/typing/jkind.ml index 7be9adee6..6bc4a4e9b 100644 --- a/src/ocaml/typing/jkind.ml +++ b/src/ocaml/typing/jkind.ml @@ -25,6 +25,8 @@ end [@@@warning "+9"] +module Nonempty_list = Misc.Nonempty_list + (* A *sort* is the information the middle/back ends need to be able to compile a manipulation (storing, passing, etc) of a runtime value. *) module Sort = struct @@ -39,6 +41,40 @@ end type sort = Sort.t +module Sub_failure_reason = struct + type t = + | Axis_disagreement of Axis.packed + | Layout_disagreement + | Constrain_ran_out_of_fuel +end + +module Sub_result = struct + type t = + | Equal + | Less + | Not_le of Sub_failure_reason.t Nonempty_list.t + + let of_le_result ~failure_reason (le_result : Misc.Le_result.t) = + match le_result with + | Less -> Less + | Equal -> Equal + | Not_le -> Not_le (failure_reason ()) + + let combine sr1 sr2 = + match sr1, sr2 with + | Equal, Equal -> Equal + | Equal, Less | Less, Equal | Less, Less -> Less + | Not_le reasons1, Not_le reasons2 -> + Not_le Nonempty_list.(reasons1 @ reasons2) + | Not_le reasons, _ | _, Not_le reasons -> Not_le reasons + + let require_le = function + | Less | Equal -> Ok () + | Not_le reason -> Error reason + + let is_le t = require_le t |> Result.is_ok +end + (* A *layout* of a type describes the way values of that type are stored at runtime, including details like width, register convention, calling convention, etc. A layout may be *representable* or *unrepresentable*. The @@ -234,6 +270,7 @@ module Layout = struct | Any, Any -> true | (Any | Sort _ | Product _), _ -> false +<<<<<<< janestreet/merlin-jst:rae/with-kinds-roll let rec sub t1 t2 : Le_result.t = match t1, t2 with | Any, Any -> Equal @@ -260,6 +297,65 @@ module Layout = struct | Some ss1 -> Misc_stdlib.Le_result.combine_list (List.map2 (fun s1 t2 -> sub (Sort s1) t2) ss1 ts2)) +||||||| ocaml-flambda/flambda-backend:4eb95cdd48f3f2f6193e59c53e4640a008a7fd13 + let rec sub t1 t2 : Misc.Le_result.t = + match t1, t2 with + | Any, Any -> Equal + | _, Any -> Less + | Any, _ -> Not_le + | Sort s1, Sort s2 -> if Sort.equate s1 s2 then Equal else Not_le + | Product ts1, Product ts2 -> + if List.compare_lengths ts1 ts2 = 0 + then Misc.Le_result.combine_list (List.map2 sub ts1 ts2) + else Not_le + | Product ts1, Sort s2 -> ( + (* This case could use [to_product_sort] because every component will need + to end up less than a sort (so, no [any]), but it seems easier to keep + this case lined up with the inverse case, which definitely cannot use + [to_product_sort]. *) + match Sort.decompose_into_product s2 (List.length ts1) with + | None -> Not_le + | Some ss2 -> + Misc.Le_result.combine_list + (List.map2 (fun t1 s2 -> sub t1 (Sort s2)) ts1 ss2)) + | Sort s1, Product ts2 -> ( + match Sort.decompose_into_product s1 (List.length ts2) with + | None -> Not_le + | Some ss1 -> + Misc.Le_result.combine_list + (List.map2 (fun s1 t2 -> sub (Sort s1) t2) ss1 ts2)) +======= + let sub t1 t2 = + let rec sub t1 t2 : Misc.Le_result.t = + match t1, t2 with + | Any, Any -> Equal + | _, Any -> Less + | Any, _ -> Not_le + | Sort s1, Sort s2 -> if Sort.equate s1 s2 then Equal else Not_le + | Product ts1, Product ts2 -> + if List.compare_lengths ts1 ts2 = 0 + then Misc.Le_result.combine_list (List.map2 sub ts1 ts2) + else Not_le + | Product ts1, Sort s2 -> ( + (* This case could use [to_product_sort] because every component will need + to end up less than a sort (so, no [any]), but it seems easier to keep + this case lined up with the inverse case, which definitely cannot use + [to_product_sort]. *) + match Sort.decompose_into_product s2 (List.length ts1) with + | None -> Not_le + | Some ss2 -> + Misc.Le_result.combine_list + (List.map2 (fun t1 s2 -> sub t1 (Sort s2)) ts1 ss2)) + | Sort s1, Product ts2 -> ( + match Sort.decompose_into_product s1 (List.length ts2) with + | None -> Not_le + | Some ss1 -> + Misc.Le_result.combine_list + (List.map2 (fun s1 t2 -> sub (Sort s1) t2) ss1 ts2)) + in + Sub_result.of_le_result (sub t1 t2) ~failure_reason:(fun () -> + [Layout_disagreement]) +>>>>>>> ocaml-flambda/flambda-backend:5.2.0minus-6 let rec intersection t1 t2 = (* pre-condition to [products]: [ts1] and [ts2] have the same length *) @@ -346,7 +442,106 @@ end let raise ~loc err = raise (Error.User_error (loc, err)) (******************************) -(*** Bounds, specialized to the real [type_expr] ***) + +module Mod_bounds = struct + include Types.Jkind_mod_bounds + + let debug_print ppf + { locality; + linearity; + uniqueness; + portability; + contention; + yielding; + externality; + nullability + } = + Format.fprintf ppf + "@[{ locality = %a;@ linearity = %a;@ uniqueness = %a;@ portability = \ + %a;@ contention = %a;@ yielding = %a;@ externality = %a;@ nullability = \ + %a }@]" + Mode.Locality.Const.print locality Mode.Linearity.Const.print linearity + Mode.Uniqueness.Const.print uniqueness Mode.Portability.Const.print + portability Mode.Contention.Const.print contention + Mode.Yielding.Const.print yielding Externality.print externality + Nullability.print nullability + + let min = + Create.f + { f = + (fun (type axis) ~(axis : axis Axis.t) -> + let (module Bound_ops) = Axis.get axis in + Bound_ops.min) + } + + let max = + Create.f + { f = + (fun (type axis) ~(axis : axis Axis.t) -> + let (module Bound_ops) = Axis.get axis in + Bound_ops.max) + } + + let simple ~locality ~linearity ~uniqueness ~portability ~contention ~yielding + ~externality ~nullability = + { locality; + linearity; + uniqueness; + portability; + contention; + yielding; + externality; + nullability + } + + let join = + Map2.f + { f = + (fun (type axis) ~(axis : axis Axis.t) -> + let (module Bound_ops) = Axis.get axis in + Bound_ops.join) + } + + let meet = + Map2.f + { f = + (fun (type axis) ~(axis : axis Axis.t) -> + let (module Bound_ops) = Axis.get axis in + Bound_ops.meet) + } + + let less_or_equal = + Fold2.f + { f = + (fun (type axis) ~(axis : axis Axis.t) b1 b2 -> + let (module Bound_ops) = Axis.get axis in + Sub_result.of_le_result (Bound_ops.less_or_equal b1 b2) + ~failure_reason:(fun () -> [Axis_disagreement (Pack axis)])) + } + ~combine:Sub_result.combine + + let equal = + Fold2.f + { f = + (fun (type axis) ~(axis : axis Axis.t) -> + let (module Bound_ops) = Axis.get axis in + Bound_ops.equal) + } + ~combine:( && ) + + (** Get all axes that are set to max *) + let get_max_axes t = + Axis_set.create ~f:(fun ~axis:(Pack axis) -> + let (module Axis_ops) = Axis.get axis in + let bound = get ~axis t in + Axis_ops.le Axis_ops.max bound) + + let for_arrow = + simple ~linearity:Linearity.Const.max ~locality:Locality.Const.max + ~uniqueness:Uniqueness.Const_op.min ~portability:Portability.Const.max + ~contention:Contention.Const_op.min ~yielding:Yielding.Const.max + ~externality:Externality.max ~nullability:Nullability.Non_null +end module With_bounds = struct type 'd t = 'd Types.with_bounds constraint 'd = 'l * 'r @@ -360,6 +555,24 @@ module With_bounds = struct let join { relevant_axes = axes1 } { relevant_axes = axes2 } = { relevant_axes = Axis_set.union axes1 axes2 } + + let axes_ignored_by_modalities ~mod_bounds + ~type_info:{ relevant_axes = explicit_relevant_axes } = + (* Axes that are max are implicitly relevant. ie, including or excluding an + axis from the set of relevant axes is semantically equivalent if the mod- + bound on that axis is max. + + Note that this mostly matters because we mark axes as /not/ explicitly relevant + on types when the axis is max, for performance reasons - but we don't want to + print constant modalities for those axes! + *) + let implicit_relevant_axes = Mod_bounds.get_max_axes mod_bounds in + let relevant_axes = + Axis_set.union explicit_relevant_axes implicit_relevant_axes + in + let irrelevant_axes = Axis_set.complement relevant_axes in + (* nullability is always implicitly irrelevant since it isn't deep *) + Axis_set.remove irrelevant_axes (Nonmodal Nullability) end let to_best_eff_map = function @@ -490,6 +703,7 @@ module With_bounds = struct | With_bounds tys -> With_bounds (add_bound type_expr { relevant_axes } tys) end +<<<<<<< janestreet/merlin-jst:rae/with-kinds-roll module Mod_bounds = struct include Types.Jkind_mod_bounds @@ -589,6 +803,108 @@ module Mod_bounds = struct ~externality:Externality.max ~nullability:Nullability.Non_null end +||||||| ocaml-flambda/flambda-backend:4eb95cdd48f3f2f6193e59c53e4640a008a7fd13 +module Mod_bounds = struct + include Types.Jkind_mod_bounds + + let debug_print ppf + { locality; + linearity; + uniqueness; + portability; + contention; + yielding; + externality; + nullability + } = + Format.fprintf ppf + "@[{ locality = %a;@ linearity = %a;@ uniqueness = %a;@ portability = \ + %a;@ contention = %a;@ yielding = %a;@ externality = %a;@ nullability = \ + %a }@]" + Mode.Locality.Const.print locality Mode.Linearity.Const.print linearity + Mode.Uniqueness.Const.print uniqueness Mode.Portability.Const.print + portability Mode.Contention.Const.print contention + Mode.Yielding.Const.print yielding Externality.print externality + Nullability.print nullability + + let min = + Create.f + { f = + (fun (type axis) ~(axis : axis Axis.t) -> + let (module Bound_ops) = Axis.get axis in + Bound_ops.min) + } + + let max = + Create.f + { f = + (fun (type axis) ~(axis : axis Axis.t) -> + let (module Bound_ops) = Axis.get axis in + Bound_ops.max) + } + + let simple ~locality ~linearity ~uniqueness ~portability ~contention ~yielding + ~externality ~nullability = + { locality; + linearity; + uniqueness; + portability; + contention; + yielding; + externality; + nullability + } + + let join = + Map2.f + { f = + (fun (type axis) ~(axis : axis Axis.t) -> + let (module Bound_ops) = Axis.get axis in + Bound_ops.join) + } + + let meet = + Map2.f + { f = + (fun (type axis) ~(axis : axis Axis.t) -> + let (module Bound_ops) = Axis.get axis in + Bound_ops.meet) + } + + let less_or_equal = + Fold2.f + { f = + (fun (type axis) ~(axis : axis Axis.t) -> + let (module Bound_ops) = Axis.get axis in + Bound_ops.less_or_equal) + } + ~combine:Misc.Le_result.combine + + let equal = + Fold2.f + { f = + (fun (type axis) ~(axis : axis Axis.t) -> + let (module Bound_ops) = Axis.get axis in + Bound_ops.equal) + } + ~combine:( && ) + + (** Get all axes that are set to max *) + let get_max_axes t = + Axis_set.create ~f:(fun ~axis:(Pack axis) -> + let (module Axis_ops) = Axis.get axis in + let bound = get ~axis t in + Axis_ops.le Axis_ops.max bound) + + let for_arrow = + simple ~linearity:Linearity.Const.max ~locality:Locality.Const.max + ~uniqueness:Uniqueness.Const.min ~portability:Portability.Const.max + ~contention:Contention.Const.min ~yielding:Yielding.Const.max + ~externality:Externality.max ~nullability:Nullability.Non_null +end + +======= +>>>>>>> ocaml-flambda/flambda-backend:5.2.0minus-6 module Layout_and_axes = struct module Allow_disallow = Allowance.Magic_allow_disallow (struct type (_, 'layout, 'd) sided = ('layout, 'd) layout_and_axes @@ -767,6 +1083,8 @@ let outcometree_of_modalities_new = ref (fun _ _ _ -> assert false) let set_outcometree_of_modalities_new p = outcometree_of_modalities_new := p +let should_print_with_bounds () = Language_extension.(is_at_least Layouts Alpha) + module Const = struct type 'd t = (Layout.Const.t, 'd) Types.layout_and_axes @@ -837,11 +1155,11 @@ module Const = struct { jkind = { layout = Base Value; mod_bounds = - Mod_bounds.simple ~linearity:Linearity.Const.min - ~contention:Contention.Const.min - ~portability:Portability.Const.min - ~uniqueness:Uniqueness.Const.max ~locality:Locality.Const.max - ~yielding:Yielding.Const.min ~externality:Externality.max + Mod_bounds.simple ~locality:Locality.Const.max + ~linearity:Linearity.Const.min + ~portability:Portability.Const.min ~yielding:Yielding.Const.min + ~uniqueness:Uniqueness.Const_op.max + ~contention:Contention.Const_op.min ~externality:Externality.max ~nullability:Nullability.Non_null; with_bounds = No_with_bounds }; @@ -852,11 +1170,11 @@ module Const = struct { jkind = { layout = Base Value; mod_bounds = - Mod_bounds.simple ~linearity:Linearity.Const.min - ~contention:Contention.Const.max - ~portability:Portability.Const.min - ~uniqueness:Uniqueness.Const.max ~locality:Locality.Const.max - ~yielding:Yielding.Const.min ~externality:Externality.max + Mod_bounds.simple ~locality:Locality.Const.max + ~linearity:Linearity.Const.min + ~portability:Portability.Const.min ~yielding:Yielding.Const.min + ~contention:Contention.Const_op.max + ~uniqueness:Uniqueness.Const_op.max ~externality:Externality.max ~nullability:Nullability.Non_null; with_bounds = No_with_bounds }; @@ -1021,9 +1339,8 @@ module Const = struct | Some acc, `Valid (Some mode) -> Some (mode :: acc)) (Some []) - let modality_from_relevant_axes relevant_axes = - (* The modality is id along relevant axes and constant along irrelevant axes. *) - let irrelevant_axes = Axis_set.complement relevant_axes in + let modality_to_ignore_axes axes_to_ignore = + (* The modality is constant along axes to ignore and id along others *) List.fold_left (fun acc (Axis.Pack axis) -> match axis with @@ -1044,7 +1361,7 @@ module Const = struct (* TODO: don't know how to print *) acc) Modality.Value.Const.id - (Axis_set.to_list irrelevant_axes) + (Axis_set.to_list axes_to_ignore) (** Write [actual] in terms of [base] *) let convert_with_base ~(base : Builtin.t) (actual : _ t) = @@ -1056,11 +1373,15 @@ module Const = struct in let printable_with_bounds = List.map - (fun (type_expr, ({ relevant_axes } : With_bounds_type_info.t)) -> + (fun (type_expr, type_info) -> + let axes_ignored_by_modalities = + With_bounds.Type_info.axes_ignored_by_modalities + ~mod_bounds:actual.mod_bounds ~type_info + in ( !outcometree_of_type_scheme type_expr, !outcometree_of_modalities_new Types.Immutable [] - (modality_from_relevant_axes relevant_axes) )) + (modality_to_ignore_axes axes_ignored_by_modalities) )) (With_bounds.to_list actual.with_bounds) in match matching_layouts, modal_bounds with @@ -1082,7 +1403,7 @@ module Const = struct let convert jkind = let jkind = - if Language_extension.(is_at_least Layouts Alpha) + if should_print_with_bounds () then jkind else { jkind with with_bounds = No_with_bounds } in @@ -1143,7 +1464,7 @@ module Const = struct | { base; modal_bounds = _ :: _ as modal_bounds; printable_with_bounds } -> ( Outcometree.Ojkind_const_mod - (Ojkind_const_abbreviation base, modal_bounds), + (Some (Ojkind_const_abbreviation base), modal_bounds), printable_with_bounds ) | { base; modal_bounds = []; printable_with_bounds } -> Outcometree.Ojkind_const_abbreviation base, printable_with_bounds @@ -1458,7 +1779,13 @@ module Jkind_desc = struct Mod_bounds.t * (l2 * r2) with_bounds * Fuel_status.t = function (* early cutoff *) | _ +<<<<<<< janestreet/merlin-jst:rae/with-kinds-roll when Le_result.is_le +||||||| ocaml-flambda/flambda-backend:4eb95cdd48f3f2f6193e59c53e4640a008a7fd13 + when Misc.Le_result.is_le +======= + when Sub_result.is_le +>>>>>>> ocaml-flambda/flambda-backend:5.2.0minus-6 (Mod_bounds.less_or_equal Mod_bounds.max bounds_so_far) -> (* CR layouts v2.8: we can do better by early-terminating on a per-axis basis *) bounds_so_far, No_with_bounds, Sufficient_fuel @@ -1560,7 +1887,13 @@ module Jkind_desc = struct in let layout = Layout.sub lay1 lay2 in let bounds = Mod_bounds.less_or_equal bounds1 bounds2 in +<<<<<<< janestreet/merlin-jst:rae/with-kinds-roll Le_result.combine layout bounds +||||||| ocaml-flambda/flambda-backend:4eb95cdd48f3f2f6193e59c53e4640a008a7fd13 + Misc.Le_result.combine layout bounds +======= + Sub_result.combine layout bounds +>>>>>>> ocaml-flambda/flambda-backend:5.2.0minus-6 let intersection { layout = lay1; mod_bounds = mod_bounds1; with_bounds = with_bounds1 } @@ -1960,21 +2293,15 @@ let for_arrow = |> mark_best let for_object = - let ({ linearity; - areality = locality; - uniqueness; - portability; - contention; - yielding - } - : Mode.Alloc.Const.t) = - (* The crossing of objects are based on the fact that they are - produced/defined/allocated at legacy, which applies to only the - comonadic axes. *) - Alloc.Const.merge - { comonadic = Alloc.Comonadic.Const.legacy; - monadic = Alloc.Monadic.Const.max - } + (* The crossing of objects are based on the fact that they are + produced/defined/allocated at legacy, which applies to only the + comonadic axes. *) + let ({ linearity; areality = locality; portability; yielding } + : Mode.Alloc.Comonadic.Const.t) = + Alloc.Comonadic.Const.legacy + in + let ({ contention; uniqueness } : Mode.Alloc.Monadic.Const_op.t) = + Alloc.Monadic.Const_op.max in fresh_jkind { layout = Sort (Base Value); @@ -2031,7 +2358,7 @@ let get_layout jk : Layout.Const.t option = Layout.get_const jk.jkind.layout let extract_layout jk = jk.jkind.layout let get_modal_upper_bounds (type l r) ~jkind_of_type (jk : (l * r) jkind) : - Alloc.Const.t = + Alloc.Comonadic.Const.t = let ( ({ layout = _; mod_bounds; with_bounds = No_with_bounds } : Allowance.right_only jkind_desc), _ ) = @@ -2040,12 +2367,22 @@ let get_modal_upper_bounds (type l r) ~jkind_of_type (jk : (l * r) jkind) : let get axis = Mod_bounds.get mod_bounds ~axis in { areality = get (Modal (Comonadic Areality)); linearity = get (Modal (Comonadic Linearity)); - uniqueness = get (Modal (Monadic Uniqueness)); portability = get (Modal (Comonadic Portability)); - contention = get (Modal (Monadic Contention)); yielding = get (Modal (Comonadic Yielding)) } +let get_modal_lower_bounds (type l r) ~jkind_of_type (jk : (l * r) jkind) : + Alloc.Monadic.Const.t = + let ( ({ layout = _; mod_bounds; with_bounds = No_with_bounds } : + Allowance.right_only jkind_desc), + _ ) = + Jkind_desc.normalize ~mode:Ignore_best ~jkind_of_type jk.jkind + in + let get axis = Mod_bounds.get mod_bounds ~axis in + { uniqueness = get (Modal (Monadic Uniqueness)); + contention = get (Modal (Monadic Contention)) + } + let get_externality_upper_bound ~jkind_of_type jk = let ( ({ layout = _; mod_bounds; with_bounds = No_with_bounds } : Allowance.right_only jkind_desc), @@ -2448,9 +2785,12 @@ let format_history ~intro ppf t = module Violation = struct open Format + module Sub_failure_reason = Sub_failure_reason type violation = - | Not_a_subjkind : (allowed * 'r1) jkind * ('l * 'r2) jkind -> violation + | Not_a_subjkind : + (allowed * 'r1) jkind * ('l * 'r2) jkind * Sub_failure_reason.t list + -> violation | No_intersection : 'd jkind * ('l * allowed) jkind -> violation type nonrec t = @@ -2472,11 +2812,97 @@ module Violation = struct | Mode | Layout + let report_reason ppf violation = + (* Print out per-axis information about why the error occurred. This only happens + when modalities are printed because the errors are simple enough when there are no + modalities that it makes the error unnecessarily noisy. + *) + match violation with + | Not_a_subjkind (sub, super, reasons) -> ( + if should_print_with_bounds () + then + let disagreeing_axes = + (* Collect all the axes that disagree into a set. If none disagree, then it + is [None] *) + List.fold_left + (fun disagreeing_axes_so_far reason -> + match + (reason : Sub_failure_reason.t), disagreeing_axes_so_far + with + | Axis_disagreement (Pack axis), Some disagreeing_axes_so_far -> + Some (Axis_set.add disagreeing_axes_so_far axis) + | Axis_disagreement (Pack axis), None -> + Some (Axis_set.singleton axis) + | (Layout_disagreement | Constrain_ran_out_of_fuel), _ -> + disagreeing_axes_so_far) + None reasons + in + let has_modalities = + let jkind_has_modalities jkind = + List.exists + (fun (_, type_info) -> + let axes_ignored_by_modalities = + With_bounds.Type_info.axes_ignored_by_modalities + ~mod_bounds:jkind.jkind.mod_bounds ~type_info + in + not (Axis_set.is_empty axes_ignored_by_modalities)) + (With_bounds.to_list jkind.jkind.with_bounds) + in + jkind_has_modalities sub || jkind_has_modalities super + in + match disagreeing_axes, has_modalities with + | None, _ | _, false -> () + | Some disagreeing_axes, true -> + (* CR: @\n is discouraged by the documentation, but @;@; seems to emit one newline + and then one space rather than two newlines *) + fprintf ppf "@\n@\nThe first mode-crosses less than the second along:"; + Axis_set.to_list disagreeing_axes + |> List.iter (fun (Pack axis : Axis.packed) -> + let pp_bound ppf jkind = + let mod_bound = Mod_bounds.get ~axis jkind.mod_bounds in + let (module Axis_ops) = Axis.get axis in + let with_bounds = + match Axis_ops.(le max mod_bound) with + | true -> + (* If the mod_bound is max, then no with-bounds are relevant *) + [] + | false -> + With_bounds.to_list jkind.with_bounds + |> List.filter_map + (fun + (ty, ({ relevant_axes } : With_bounds_type_info.t)) + -> + match Axis_set.mem relevant_axes axis with + | true -> Some (!outcometree_of_type_scheme ty) + | false -> None) + in + let ojkind = + List.fold_left + (fun acc with_bound -> + Outcometree.Ojkind_const_with (acc, with_bound, [])) + (Outcometree.Ojkind_const_mod + (None, [Format.asprintf "%a" Axis_ops.print mod_bound])) + with_bounds + in + !Oprint.out_jkind_const ppf ojkind + in + fprintf ppf "@; @[%s:@ %a ≰@ %a@]" (Axis.name axis) + pp_bound sub.jkind pp_bound super.jkind)) + | No_intersection _ -> () + let report_general preamble pp_former former ppf t = let mismatch_type = match t.violation with +<<<<<<< janestreet/merlin-jst:rae/with-kinds-roll | Not_a_subjkind (k1, k2) -> if Le_result.is_le (Layout.sub k1.jkind.layout k2.jkind.layout) +||||||| ocaml-flambda/flambda-backend:4eb95cdd48f3f2f6193e59c53e4640a008a7fd13 + | Not_a_subjkind (k1, k2) -> + if Misc.Le_result.is_le (Layout.sub k1.jkind.layout k2.jkind.layout) +======= + | Not_a_subjkind (k1, k2, _) -> + if Sub_result.is_le (Layout.sub k1.jkind.layout k2.jkind.layout) +>>>>>>> ocaml-flambda/flambda-backend:5.2.0minus-6 then Mode else Layout | No_intersection _ -> Layout @@ -2502,7 +2928,7 @@ module Violation = struct in let Pack_jkind k1, Pack_jkind k2, fmt_k1, fmt_k2, missing_cmi_option = match t with - | { violation = Not_a_subjkind (k1, k2); missing_cmi } -> ( + | { violation = Not_a_subjkind (k1, k2, _); missing_cmi } -> ( let missing_cmi = match missing_cmi with | None -> ( @@ -2559,7 +2985,8 @@ module Violation = struct else fprintf ppf "@[%s%a has %t,@ which %t.@]" preamble pp_former former fmt_k1 fmt_k2; - report_missing_cmi ppf missing_cmi_option + report_missing_cmi ppf missing_cmi_option; + report_reason ppf t.violation let pp_t ppf x = fprintf ppf "%t" x @@ -2609,7 +3036,7 @@ let combine_histories ~type_equal ~jkind_of_type reason (Pack_jkind k1) let choose_subjkind_history k_a history_a k_b history_b = match Jkind_desc.sub ~type_equal ~jkind_of_type k_a k_b with | Less -> history_a - | Not_le -> + | Not_le _ -> (* CR layouts: this will be wrong if we ever have a non-trivial meet in the kind lattice -- which is now! So this is actually wrong. *) history_b @@ -2667,30 +3094,41 @@ let map_type_expr f t = { t with jkind = Jkind_desc.map_type_expr f t.jkind } let check_sub ~jkind_of_type sub super = Jkind_desc.sub ~jkind_of_type sub.jkind super.jkind +let sub_with_reason ~type_equal ~jkind_of_type sub super = + Sub_result.require_le (check_sub ~type_equal ~jkind_of_type sub super) + let sub ~type_equal ~jkind_of_type sub super = +<<<<<<< janestreet/merlin-jst:rae/with-kinds-roll Le_result.is_le (check_sub ~type_equal ~jkind_of_type sub super) +||||||| ocaml-flambda/flambda-backend:4eb95cdd48f3f2f6193e59c53e4640a008a7fd13 + Misc.Le_result.is_le (check_sub ~type_equal ~jkind_of_type sub super) +======= + Result.is_ok (sub_with_reason ~type_equal ~jkind_of_type sub super) +>>>>>>> ocaml-flambda/flambda-backend:5.2.0minus-6 type sub_or_intersect = | Sub - | Disjoint - | Has_intersection + | Disjoint of Violation.Sub_failure_reason.t Nonempty_list.t + | Has_intersection of Violation.Sub_failure_reason.t Nonempty_list.t let sub_or_intersect ~type_equal ~jkind_of_type t1 t2 = - if sub ~type_equal ~jkind_of_type t1 t2 - then Sub - else if has_intersection t1 t2 - then Has_intersection - else Disjoint + match sub_with_reason ~type_equal ~jkind_of_type t1 t2 with + | Ok () -> Sub + | Error reason -> + if has_intersection t1 t2 then Has_intersection reason else Disjoint reason let sub_or_error ~type_equal ~jkind_of_type t1 t2 = match sub_or_intersect ~type_equal ~jkind_of_type t1 t2 with | Sub -> Ok () - | _ -> Error (Violation.of_ (Not_a_subjkind (t1, t2))) + | Disjoint reason | Has_intersection reason -> + Error + (Violation.of_ (Not_a_subjkind (t1, t2, Nonempty_list.to_list reason))) let sub_jkind_l ~type_equal ~jkind_of_type ?(allow_any_crossing = false) sub super = (* This function implements the "SUB" judgement from kind-inference.md. *) let open Misc.Stdlib.Monad.Result.Syntax in +<<<<<<< janestreet/merlin-jst:rae/with-kinds-roll let require_le le_result = match Le_result.is_le le_result with | true -> Ok () @@ -2704,6 +3142,35 @@ let sub_jkind_l ~type_equal ~jkind_of_type ?(allow_any_crossing = false) sub violation occurred, specifically which axes the violation is along. *) let best_sub = normalize ~mode:Require_best ~jkind_of_type sub in Error (Violation.of_ (Not_a_subjkind (best_sub, super))) +||||||| ocaml-flambda/flambda-backend:4eb95cdd48f3f2f6193e59c53e4640a008a7fd13 + let require_le le_result = + match Misc.Le_result.is_le le_result with + | true -> Ok () + | false -> + (* When we report an error, we want to show the best-normalized version of sub, but + the original super. When this check fails, it is usually the case that the super + was written by the user and the sub was inferred. Thus, we should display the + user-written jkind, but simplify the inferred one, since the inferred one is + probably overly complex. *) + (* CR layouts v2.8: It would be useful report to the user why this + violation occurred, specifically which axes the violation is along. *) + let best_sub = normalize ~mode:Require_best ~jkind_of_type sub in + Error (Violation.of_ (Not_a_subjkind (best_sub, super))) +======= + let require_le sub_result = + Sub_result.require_le sub_result + |> Result.map_error (fun reasons -> + (* When we report an error, we want to show the best-normalized version of sub, but + the original super. When this check fails, it is usually the case that the super + was written by the user and the sub was inferred. Thus, we should display the + user-written jkind, but simplify the inferred one, since the inferred one is + probably overly complex. *) + (* CR layouts v2.8: It would be useful report to the user why this + violation occurred, specifically which axes the violation is along. *) + let best_sub = normalize ~mode:Require_best ~jkind_of_type sub in + Violation.of_ + (Not_a_subjkind (best_sub, super, Nonempty_list.to_list reasons))) +>>>>>>> ocaml-flambda/flambda-backend:5.2.0minus-6 in let* () = (* Validate layouts *) diff --git a/src/ocaml/typing/jkind.mli b/src/ocaml/typing/jkind.mli index d1176fca9..076388c6c 100644 --- a/src/ocaml/typing/jkind.mli +++ b/src/ocaml/typing/jkind.mli @@ -40,25 +40,6 @@ open Allowance This will eventually be incorporated into the mode solver, but it is defined here because we do not yet track externalities on expressions, just in jkinds. *) -(* CR externals: Move to mode.ml. But see - https://github.com/goldfirere/flambda-backend/commit/d802597fbdaaa850e1ed9209a1305c5dcdf71e17 - first, which was reisenberg's attempt to do so. *) -module Externality : sig - type t = Jkind_axis.Externality.t = - | External (* not managed by the garbage collector *) - | External64 (* not managed by the garbage collector on 64-bit systems *) - | Internal (* managed by the garbage collector *) - - include module type of Jkind_axis.Externality with type t := t -end - -module Nullability : sig - type t = Jkind_axis.Nullability.t = - | Non_null (* proven to not have NULL values *) - | Maybe_null (* may have NULL values *) - - include module type of Jkind_axis.Nullability with type t := t -end module Sort : sig include @@ -77,6 +58,31 @@ end type sort = Sort.t +module Sub_failure_reason : sig + type t = + | Axis_disagreement of Jkind_axis.Axis.packed + | Layout_disagreement + | Constrain_ran_out_of_fuel +end + +module Sub_result : sig + type t = + | Equal + | Less + | Not_le of Sub_failure_reason.t Misc.Nonempty_list.t + + val of_le_result : + failure_reason:(unit -> Sub_failure_reason.t Misc.Nonempty_list.t) -> + Misc.Le_result.t -> + t + + val combine : t -> t -> t + + val require_le : t -> (unit, Sub_failure_reason.t Misc.Nonempty_list.t) result + + val is_le : t -> bool +end + (* The layout of a type describes its memory layout. A layout is either the indeterminate [Any] or a sort, which is a concrete memory layout. *) module Layout : sig @@ -97,7 +103,13 @@ module Layout : sig val of_const : Const.t -> Sort.t t +<<<<<<< janestreet/merlin-jst:rae/with-kinds-roll val sub : Sort.t t -> Sort.t t -> Misc_stdlib.Le_result.t +||||||| ocaml-flambda/flambda-backend:4eb95cdd48f3f2f6193e59c53e4640a008a7fd13 + val sub : Sort.t t -> Sort.t t -> Misc.Le_result.t +======= + val sub : Sort.t t -> Sort.t t -> Sub_result.t +>>>>>>> ocaml-flambda/flambda-backend:5.2.0minus-6 end (** A Jkind.t is a full description of the runtime representation of values @@ -153,7 +165,9 @@ module Violation : sig in [sub_jkind_l]. There is no downside to this, as the printing machinery works over l-jkinds. *) | Not_a_subjkind : - (allowed * 'r1) Types.jkind * ('l * 'r2) Types.jkind + (allowed * 'r1) Types.jkind + * ('l * 'r2) Types.jkind + * Sub_failure_reason.t list -> violation | No_intersection : 'd Types.jkind * ('l * allowed) Types.jkind -> violation @@ -503,22 +517,28 @@ val get_layout : 'd Types.jkind -> Layout.Const.t option (** Gets the layout of a jkind, without looking through sort variables. *) val extract_layout : 'd Types.jkind -> Sort.t Layout.t -(** Gets the maximum modes for types of this jkind. *) +(** Gets the maximum comonadic modes for types of this jkind. *) val get_modal_upper_bounds : jkind_of_type:(Types.type_expr -> Types.jkind_l option) -> 'd Types.jkind -> - Mode.Alloc.Const.t + Mode.Alloc.Comonadic.Const.t + +(** Gets the minimum monadic modes for types of this jkind. *) +val get_modal_lower_bounds : + jkind_of_type:(Types.type_expr -> Types.jkind_l option) -> + 'd Types.jkind -> + Mode.Alloc.Monadic.Const.t (** Gets the maximum mode on the externality axis for types of this jkind. *) val get_externality_upper_bound : jkind_of_type:(Types.type_expr -> Types.jkind_l option) -> 'd Types.jkind -> - Externality.t + Jkind_axis.Externality.t (** Computes a jkind that is the same as the input but with an updated maximum mode for the externality axis *) val set_externality_upper_bound : - Types.jkind_r -> Externality.t -> Types.jkind_r + Types.jkind_r -> Jkind_axis.Externality.t -> Types.jkind_r (** Sets the layout in a jkind. *) val set_layout : 'd Types.jkind -> Sort.t Layout.t -> 'd Types.jkind @@ -627,8 +647,11 @@ val sub : type sub_or_intersect = | Sub (** The first jkind is a subjkind of the second. *) - | Disjoint (** The two jkinds have no common ground. *) - | Has_intersection (** The two jkinds have an intersection: try harder. *) + | Disjoint of Sub_failure_reason.t Misc.Nonempty_list.t + (** The two jkinds have no common ground. *) + | Has_intersection of Sub_failure_reason.t Misc.Nonempty_list.t + (** The first jkind is not a subjkind of the second, but the two jkinds have an + intersection: try harder. *) (** [sub_or_intersect t1 t2] does a subtype check, returning a [sub_or_intersect]; see comments there for more info. *) diff --git a/src/ocaml/typing/jkind_axis.ml b/src/ocaml/typing/jkind_axis.ml index 6be17c741..e25728db4 100644 --- a/src/ocaml/typing/jkind_axis.ml +++ b/src/ocaml/typing/jkind_axis.ml @@ -422,6 +422,8 @@ module Axis_set = struct let add t axis = Axis_collection.set ~axis t true + let singleton axis = add empty axis + let remove t axis = Axis_collection.set ~axis t false let mem t axis = Axis_collection.get ~axis t diff --git a/src/ocaml/typing/jkind_axis.mli b/src/ocaml/typing/jkind_axis.mli index 9c1ef1619..6b3205953 100644 --- a/src/ocaml/typing/jkind_axis.mli +++ b/src/ocaml/typing/jkind_axis.mli @@ -215,6 +215,8 @@ module Axis_set : sig val empty : t + val singleton : _ Axis.t -> t + val is_empty : t -> bool val add : t -> _ Axis.t -> t diff --git a/src/ocaml/typing/mode.ml b/src/ocaml/typing/mode.ml index 4ea0c934f..507ad557a 100644 --- a/src/ocaml/typing/mode.ml +++ b/src/ocaml/typing/mode.ml @@ -357,76 +357,142 @@ module Lattices = struct end) end - type monadic = Uniqueness.t * Contention.t + type monadic = + { uniqueness : Uniqueness.t; + contention : Contention.t + } module Monadic = struct type t = monadic - let min = Uniqueness.min, Contention.min - - let max = Uniqueness.max, Contention.max - - let legacy = Uniqueness.legacy, Contention.legacy - - let le (a0, a1) (b0, b1) = Uniqueness.le a0 b0 && Contention.le a1 b1 + let min = + let uniqueness = Uniqueness.min in + let contention = Contention.min in + { uniqueness; contention } - let join (a0, a1) (b0, b1) = Uniqueness.join a0 b0, Contention.join a1 b1 - - let meet (a0, a1) (b0, b1) = Uniqueness.meet a0 b0, Contention.meet a1 b1 - - let print ppf (a0, a1) = - Format.fprintf ppf "%a,%a" Uniqueness.print a0 Contention.print a1 + let max = + let uniqueness = Uniqueness.max in + let contention = Contention.max in + { uniqueness; contention } - let imply (a0, a1) (b0, b1) = Uniqueness.imply a0 b0, Contention.imply a1 b1 + let legacy = + let uniqueness = Uniqueness.legacy in + let contention = Contention.legacy in + { uniqueness; contention } + + let le m1 m2 = + let { uniqueness = uniqueness1; contention = contention1 } = m1 in + let { uniqueness = uniqueness2; contention = contention2 } = m2 in + Uniqueness.le uniqueness1 uniqueness2 + && Contention.le contention1 contention2 + + let join m1 m2 = + let uniqueness = Uniqueness.join m1.uniqueness m2.uniqueness in + let contention = Contention.join m1.contention m2.contention in + { uniqueness; contention } + + let meet m1 m2 = + let uniqueness = Uniqueness.meet m1.uniqueness m2.uniqueness in + let contention = Contention.meet m1.contention m2.contention in + { uniqueness; contention } + + let imply m1 m2 = + let uniqueness = Uniqueness.imply m1.uniqueness m2.uniqueness in + let contention = Contention.imply m1.contention m2.contention in + { uniqueness; contention } + + let subtract m1 m2 = + let uniqueness = Uniqueness.subtract m1.uniqueness m2.uniqueness in + let contention = Contention.subtract m1.contention m2.contention in + { uniqueness; contention } - let subtract (a0, a1) (b0, b1) = - Uniqueness.subtract a0 b0, Contention.subtract a1 b1 + let print ppf m = + Format.fprintf ppf "%a,%a" Uniqueness.print m.uniqueness Contention.print + m.contention end type 'areality comonadic_with = - 'areality * Linearity.t * Portability.t * Yielding.t + { areality : 'areality; + linearity : Linearity.t; + portability : Portability.t; + yielding : Yielding.t + } module Comonadic_with (Areality : Areality) = struct type t = Areality.t comonadic_with - let min = Areality.min, Linearity.min, Portability.min, Yielding.min + let min = + let areality = Areality.min in + let linearity = Linearity.min in + let portability = Portability.min in + let yielding = Yielding.min in + { areality; linearity; portability; yielding } - let max = Areality.max, Linearity.max, Portability.max, Yielding.max + let max = + let areality = Areality.max in + let linearity = Linearity.max in + let portability = Portability.max in + let yielding = Yielding.max in + { areality; linearity; portability; yielding } let legacy = - Areality.legacy, Linearity.legacy, Portability.legacy, Yielding.legacy - - let le (a0, a1, a2, a3) (b0, b1, b2, b3) = - Areality.le a0 b0 && Linearity.le a1 b1 && Portability.le a2 b2 - && Yielding.le a3 b3 - - let join (a0, a1, a2, a3) (b0, b1, b2, b3) = - ( Areality.join a0 b0, - Linearity.join a1 b1, - Portability.join a2 b2, - Yielding.join a3 b3 ) - - let meet (a0, a1, a2, a3) (b0, b1, b2, b3) = - ( Areality.meet a0 b0, - Linearity.meet a1 b1, - Portability.meet a2 b2, - Yielding.meet a3 b3 ) - - let imply (a0, a1, a2, a3) (b0, b1, b2, b3) = - ( Areality.imply a0 b0, - Linearity.imply a1 b1, - Portability.imply a2 b2, - Yielding.imply a3 b3 ) - - let subtract (a0, a1, a2, a3) (b0, b1, b2, b3) = - ( Areality.subtract a0 b0, - Linearity.subtract a1 b1, - Portability.subtract a2 b2, - Yielding.subtract a3 b3 ) - - let print ppf (a0, a1, a2, a3) = - Format.fprintf ppf "%a,%a,%a,%a" Areality.print a0 Linearity.print a1 - Portability.print a2 Yielding.print a3 + let areality = Areality.legacy in + let linearity = Linearity.legacy in + let portability = Portability.legacy in + let yielding = Yielding.legacy in + { areality; linearity; portability; yielding } + + let le m1 m2 = + let { areality = areality1; + linearity = linearity1; + portability = portability1; + yielding = yielding1 + } = + m1 + in + let { areality = areality2; + linearity = linearity2; + portability = portability2; + yielding = yielding2 + } = + m2 + in + Areality.le areality1 areality2 + && Linearity.le linearity1 linearity2 + && Portability.le portability1 portability2 + && Yielding.le yielding1 yielding2 + + let join m1 m2 = + let areality = Areality.join m1.areality m2.areality in + let linearity = Linearity.join m1.linearity m2.linearity in + let portability = Portability.join m1.portability m2.portability in + let yielding = Yielding.join m1.yielding m2.yielding in + { areality; linearity; portability; yielding } + + let meet m1 m2 = + let areality = Areality.meet m1.areality m2.areality in + let linearity = Linearity.meet m1.linearity m2.linearity in + let portability = Portability.meet m1.portability m2.portability in + let yielding = Yielding.meet m1.yielding m2.yielding in + { areality; linearity; portability; yielding } + + let imply m1 m2 = + let areality = Areality.imply m1.areality m2.areality in + let linearity = Linearity.imply m1.linearity m2.linearity in + let portability = Portability.imply m1.portability m2.portability in + let yielding = Yielding.imply m1.yielding m2.yielding in + { areality; linearity; portability; yielding } + + let subtract m1 m2 = + let areality = Areality.subtract m1.areality m2.areality in + let linearity = Linearity.subtract m1.linearity m2.linearity in + let portability = Portability.subtract m1.portability m2.portability in + let yielding = Yielding.subtract m1.yielding m2.yielding in + { areality; linearity; portability; yielding } + + let print ppf m = + Format.fprintf ppf "%a,%a,%a,%a" Areality.print m.areality Linearity.print + m.linearity Portability.print m.portability Yielding.print m.yielding end [@@inline] @@ -635,23 +701,23 @@ module Lattices_mono = struct let proj : type p r. (p, r) t -> p -> r = fun ax t -> - match ax, t with - | Areality, (a, _, _, _) -> a - | Linearity, (_, lin, _, _) -> lin - | Portability, (_, _, s, _) -> s - | Yielding, (_, _, _, yld) -> yld - | Uniqueness, (uni, _) -> uni - | Contention, (_, con) -> con + match ax with + | Areality -> t.areality + | Linearity -> t.linearity + | Portability -> t.portability + | Yielding -> t.yielding + | Uniqueness -> t.uniqueness + | Contention -> t.contention let update : type p r. (p, r) t -> r -> p -> p = fun ax r t -> - match ax, t with - | Areality, (_, lin, portable, yld) -> r, lin, portable, yld - | Linearity, (area, _, portable, yld) -> area, r, portable, yld - | Portability, (area, lin, _, yld) -> area, lin, r, yld - | Yielding, (area, lin, portable, _) -> area, lin, portable, r - | Uniqueness, (_, con) -> r, con - | Contention, (uni, _) -> uni, r + match ax with + | Areality -> { t with areality = r } + | Linearity -> { t with linearity = r } + | Portability -> { t with portability = r } + | Yielding -> { t with yielding = r } + | Uniqueness -> { t with uniqueness = r } + | Contention -> { t with contention = r } end type ('a, 'b, 'd) morph = @@ -804,7 +870,7 @@ module Lattices_mono = struct end) let set_areality : type a0 a1. a1 -> a0 comonadic_with -> a1 comonadic_with = - fun r (_, lin, portable, yld) -> r, lin, portable, yld + fun r t -> { t with areality = r } let proj_obj : type t r. (t, r) Axis.t -> t obj -> r obj = fun ax obj -> @@ -989,42 +1055,36 @@ module Lattices_mono = struct let monadic_to_comonadic_min : type a. a comonadic_with obj -> Monadic_op.t -> a comonadic_with = - fun obj (uniqueness, contention) -> - match obj with - | Comonadic_with_locality -> - ( Locality.min, - unique_to_linear uniqueness, - contended_to_portable contention, - Yielding.min ) - | Comonadic_with_regionality -> - ( Regionality.min, - unique_to_linear uniqueness, - contended_to_portable contention, - Yielding.min ) + fun obj m -> + let areality : a = + match obj with + | Comonadic_with_locality -> Locality.min + | Comonadic_with_regionality -> Regionality.min + in + let linearity = unique_to_linear m.uniqueness in + let portability = contended_to_portable m.contention in + let yielding = Yielding.min in + { areality; linearity; portability; yielding } let comonadic_to_monadic : type a. a comonadic_with obj -> a comonadic_with -> Monadic_op.t = - fun obj (_, linearity, portability, _) -> - match obj with - | Comonadic_with_locality -> - linear_to_unique linearity, portable_to_contended portability - | Comonadic_with_regionality -> - linear_to_unique linearity, portable_to_contended portability + fun _ m -> + let uniqueness = linear_to_unique m.linearity in + let contention = portable_to_contended m.portability in + { uniqueness; contention } let monadic_to_comonadic_max : type a. a comonadic_with obj -> Monadic_op.t -> a comonadic_with = - fun obj (uniqueness, contention) -> - match obj with - | Comonadic_with_locality -> - ( Locality.max, - unique_to_linear uniqueness, - contended_to_portable contention, - Yielding.max ) - | Comonadic_with_regionality -> - ( Regionality.max, - unique_to_linear uniqueness, - contended_to_portable contention, - Yielding.max ) + fun obj m -> + let areality : a = + match obj with + | Comonadic_with_locality -> Locality.max + | Comonadic_with_regionality -> Regionality.max + in + let linearity = unique_to_linear m.uniqueness in + let portability = contended_to_portable m.contention in + let yielding = Yielding.max in + { areality; linearity; portability; yielding } let rec apply : type a b d. b obj -> (a, b, d) morph -> a -> b = fun dst f a -> @@ -1285,9 +1345,17 @@ end module C = Lattices_mono module S = Solvers_polarized (C) -type monadic = C.monadic +type monadic = C.monadic = + { uniqueness : C.Uniqueness.t; + contention : C.Contention.t + } -type 'a comonadic_with = 'a C.comonadic_with +type 'a comonadic_with = 'a C.comonadic_with = + { areality : 'a; + linearity : C.Linearity.t; + portability : C.Portability.t; + yielding : C.Yielding.t + } module Axis = C.Axis @@ -1520,6 +1588,7 @@ end module Uniqueness = struct module Const = C.Uniqueness + module Const_op = C.Uniqueness_op module Obj = struct type const = Const.t @@ -1543,6 +1612,7 @@ end module Contention = struct module Const = C.Contention + module Const_op = C.Contention_op module Obj = struct type const = Const.t @@ -1610,9 +1680,7 @@ module Comonadic_with (Areality : Areality) = struct type equate_error = equate_step * error - open Obj - - let proj_obj ax = C.proj_obj ax obj + let proj_obj ax = C.proj_obj ax Obj.obj module Const = struct include C.Comonadic_with (Areality.Const) @@ -1631,7 +1699,7 @@ module Comonadic_with (Areality : Areality) = struct let obj = proj_obj ax in C.max obj - let max_with ax c = Axis.update ax c (C.max obj) + let max_with ax c = Axis.update ax c (C.max Obj.obj) let print_axis ax ppf a = let obj = proj_obj ax in @@ -1646,48 +1714,74 @@ module Comonadic_with (Areality : Areality) = struct | Yielding -> (module Yielding.Const) end - let proj ax m = Solver.via_monotone (proj_obj ax) (Proj (Obj.obj, ax)) m + let proj ax m = Obj.Solver.via_monotone (proj_obj ax) (Proj (Obj.obj, ax)) m - let meet_const c m = Solver.via_monotone obj (Meet_with c) m + let meet_const c m = Obj.Solver.via_monotone Obj.obj (Meet_with c) m - let join_const c m = Solver.via_monotone obj (Join_with c) m + let join_const c m = Obj.Solver.via_monotone Obj.obj (Join_with c) m let min_with ax m = - Solver.via_monotone Obj.obj (Min_with ax) (Solver.disallow_right m) + Obj.Solver.via_monotone Obj.obj (Min_with ax) (Obj.Solver.disallow_right m) let max_with ax m = - Solver.via_monotone Obj.obj (Max_with ax) (Solver.disallow_left m) + Obj.Solver.via_monotone Obj.obj (Max_with ax) (Obj.Solver.disallow_left m) let join_with ax c m = join_const (C.min_with Obj.obj ax c) m let meet_with ax c m = meet_const (C.max_with Obj.obj ax c) m - let zap_to_legacy m = + let zap_to_legacy m : Const.t = let areality = proj Areality m |> Areality.zap_to_legacy in let linearity = proj Linearity m |> Linearity.zap_to_legacy in let portability = proj Portability m |> Portability.zap_to_legacy in let yielding = proj Yielding m |> Yielding.zap_to_legacy in - areality, linearity, portability, yielding + { areality; linearity; portability; yielding } - let imply c m = Solver.via_monotone obj (Imply c) (Solver.disallow_left m) + let imply c m = + Obj.Solver.via_monotone Obj.obj (Imply c) (Obj.Solver.disallow_left m) + + let subtract c m = + Obj.Solver.via_monotone Obj.obj (Subtract c) (Obj.Solver.disallow_right m) let legacy = of_const Const.legacy - let axis_of_error - { left = area0, lin0, port0, yld0; right = area1, lin1, port1, yld1 } : - error = - if Areality.Const.le area0 area1 + let axis_of_error (err : Obj.const Solver.error) : error = + let { left = + { areality = areality1; + linearity = linearity1; + portability = portability1; + yielding = yielding1 + }; + right = + { areality = areality2; + linearity = linearity2; + portability = portability2; + yielding = yielding2 + } + } = + err + in + if Areality.Const.le areality1 areality2 then - if Linearity.Const.le lin0 lin1 + if Linearity.Const.le linearity1 linearity2 then - if Portability.Const.le port0 port1 + if Portability.Const.le portability1 portability2 then - if Yielding.Const.le yld0 yld1 + if Yielding.Const.le yielding1 yielding2 then assert false - else Error (Yielding, { left = yld0; right = yld1 }) - else Error (Portability, { left = port0; right = port1 }) - else Error (Linearity, { left = lin0; right = lin1 }) - else Error (Areality, { left = area0; right = area1 }) + else + Error + ( Yielding, + { left = err.left.yielding; right = err.right.yielding } ) + else + Error + ( Portability, + { left = err.left.portability; right = err.right.portability } ) + else + Error + (Linearity, { left = err.left.linearity; right = err.right.linearity }) + else + Error (Areality, { left = err.left.areality; right = err.right.areality }) (* overriding to report the offending axis *) let submode_log m0 m1 ~log : _ result = @@ -1719,9 +1813,7 @@ module Monadic = struct type equate_error = equate_step * error - open Obj - - let proj_obj ax = C.proj_obj ax obj + let proj_obj ax = C.proj_obj ax Obj.obj module Const = struct include C.Monadic @@ -1729,7 +1821,7 @@ module Monadic = struct (* CR zqian: The flipping logic leaking to here is bad. Refactoring needed. *) (* Monadic fragment is flipped, so are the following definitions. *) - let min_with ax c = Axis.update ax c (C.max obj) + let min_with ax c = Axis.update ax c (C.max Obj.obj) let min_axis ax = let obj = proj_obj ax in @@ -1746,46 +1838,63 @@ module Monadic = struct let lattice_of_axis (type a) (axis : (t, a) Axis.t) : (module Lattice with type t = a) = match axis with - | Uniqueness -> (module Uniqueness.Const) - | Contention -> (module Contention.Const) + | Uniqueness -> (module Uniqueness.Const_op) + | Contention -> (module Contention.Const_op) end - let proj ax m = Solver.via_monotone (proj_obj ax) (Proj (Obj.obj, ax)) m + module Const_op = C.Monadic_op + + let proj ax m = Obj.Solver.via_monotone (proj_obj ax) (Proj (Obj.obj, ax)) m (* The monadic fragment is inverted. Most of the inversion logic is taken care by [Solver_polarized], but some remain, such as the [Min_with] below which is inverted from [Max_with]. *) - let meet_const c m = Solver.via_monotone obj (Join_with c) m + let meet_const c m = Obj.Solver.via_monotone Obj.obj (Join_with c) m - let join_const c m = Solver.via_monotone obj (Meet_with c) m + let join_const c m = Obj.Solver.via_monotone Obj.obj (Meet_with c) m let max_with ax m = - Solver.via_monotone Obj.obj (Min_with ax) (Solver.disallow_left m) + Obj.Solver.via_monotone Obj.obj (Min_with ax) (Obj.Solver.disallow_left m) let min_with ax m = - Solver.via_monotone Obj.obj (Max_with ax) (Solver.disallow_right m) + Obj.Solver.via_monotone Obj.obj (Max_with ax) (Obj.Solver.disallow_right m) let join_with ax c m = join_const (C.max_with Obj.obj ax c) m let meet_with ax c m = meet_const (C.min_with Obj.obj ax c) m - let imply c m = Solver.via_monotone obj (Subtract c) (Solver.disallow_left m) + let imply c m = + Obj.Solver.via_monotone Obj.obj (Subtract c) (Obj.Solver.disallow_left m) - let zap_to_legacy m = + let subtract c m = + Obj.Solver.via_monotone Obj.obj (Imply c) (Obj.Solver.disallow_right m) + + let zap_to_legacy m : Const.t = let uniqueness = proj Uniqueness m |> Uniqueness.zap_to_legacy in let contention = proj Contention m |> Contention.zap_to_legacy in - uniqueness, contention + { uniqueness; contention } let legacy = of_const Const.legacy - let axis_of_error { left = uni0, con0; right = uni1, con1 } : error = - if Uniqueness.Const.le uni0 uni1 + let axis_of_error (err : Obj.const Solver.error) : error = + let { left = { uniqueness = uniqueness1; contention = contention1 }; + right = { uniqueness = uniqueness2; contention = contention2 } + } = + err + in + if Uniqueness.Const.le uniqueness1 uniqueness2 then - if Contention.Const.le con0 con1 + if Contention.Const.le contention1 contention2 then assert false - else Error (Contention, { left = con0; right = con1 }) - else Error (Uniqueness, { left = uni0; right = uni1 }) + else + Error + ( Contention, + { left = err.left.contention; right = err.right.contention } ) + else + Error + ( Uniqueness, + { left = err.left.uniqueness; right = err.right.uniqueness } ) (* overriding to report the offending axis *) let submode_log m0 m1 ~log : _ result = @@ -1858,15 +1967,19 @@ module Value_with (Areality : Areality) = struct } let split - { areality; linearity; portability; uniqueness; contention; yielding } = - let monadic = uniqueness, contention in - let comonadic = areality, linearity, portability, yielding in + { areality; linearity; portability; yielding; uniqueness; contention } = + let monadic : Monadic.Const.t = { uniqueness; contention } in + let comonadic : Comonadic.Const.t = + { areality; linearity; portability; yielding } + in { comonadic; monadic } let merge { comonadic; monadic } = - let areality, linearity, portability, yielding = comonadic in - let uniqueness, contention = monadic in - { areality; linearity; portability; uniqueness; contention; yielding } + let ({ areality; linearity; portability; yielding } : Comonadic.Const.t) = + comonadic + in + let ({ uniqueness; contention } : Monadic.Const.t) = monadic in + { areality; linearity; portability; yielding; uniqueness; contention } let print ?verbose () ppf { monadic; comonadic } = Format.fprintf ppf "%a;%a" @@ -2235,6 +2348,18 @@ module Value_with (Areality : Areality) = struct let monadic = Monadic.imply c.monadic monadic in { monadic; comonadic } + let join_const c { comonadic; monadic } = + let c = split c in + let comonadic = Comonadic.join_const c.comonadic comonadic in + let monadic = Monadic.join_const c.monadic monadic in + { monadic; comonadic } + + let subtract c { comonadic; monadic } = + let c = split c in + let comonadic = Comonadic.subtract c.comonadic comonadic in + let monadic = Monadic.subtract c.monadic monadic in + { monadic; comonadic } + let zap_to_ceil { comonadic; monadic } = let monadic = Monadic.zap_to_ceil monadic in let comonadic = Comonadic.zap_to_ceil comonadic in @@ -2498,10 +2623,7 @@ module Modality = struct let zap_to_id = zap_to_floor - let to_const_exn = function - | Const c -> c - | Undefined | Diff _ -> - Misc.fatal_error "Got infered modality but constant modality expected." + let to_const_opt = function Const c -> Some c | Undefined | Diff _ -> None let of_const c = Const c @@ -2650,10 +2772,9 @@ module Modality = struct let c = Mode.Const.imply mm m in Const.Meet_const c - let to_const_exn = function - | Const c -> c - | Undefined | Exactly _ -> - Misc.fatal_error "Got inferred modality but expected constant modality." + let to_const_opt = function + | Const c -> Some c + | Undefined | Exactly _ -> None let of_const c = Const c end @@ -2766,11 +2887,13 @@ module Modality = struct let monadic = Monadic.zap_to_floor monadic in { monadic; comonadic } - let to_const_exn t = + let to_const_opt t = let { monadic; comonadic } = t in - let comonadic = Comonadic.to_const_exn comonadic in - let monadic = Monadic.to_const_exn monadic in - { monadic; comonadic } + Option.bind (Comonadic.to_const_opt comonadic) (fun comonadic -> + Option.bind (Monadic.to_const_opt monadic) (fun monadic -> + Some { monadic; comonadic })) + + let to_const_exn t = t |> to_const_opt |> Option.get let of_const { monadic; comonadic } = let comonadic = Comonadic.of_const comonadic in diff --git a/src/ocaml/typing/mode_intf.mli b/src/ocaml/typing/mode_intf.mli index 73b6a762c..9a21eb09a 100644 --- a/src/ocaml/typing/mode_intf.mli +++ b/src/ocaml/typing/mode_intf.mli @@ -229,6 +229,8 @@ module type S = sig include Lattice with type t := t end + module Const_op : Lattice with type t = Const.t + type error = Const.t Solver.error include @@ -254,6 +256,8 @@ module type S = sig include Lattice with type t := t end + module Const_op : Lattice with type t = Const.t + type error = Const.t Solver.error include @@ -281,10 +285,17 @@ module type S = sig and type 'd t = (Const.t, 'd) mode_comonadic end - type 'a comonadic_with = private - 'a * Linearity.Const.t * Portability.Const.t * Yielding.Const.t + type 'a comonadic_with = + { areality : 'a; + linearity : Linearity.Const.t; + portability : Portability.Const.t; + yielding : Yielding.Const.t + } - type monadic = private Uniqueness.Const.t * Contention.Const.t + type monadic = + { uniqueness : Uniqueness.Const.t; + contention : Contention.Const.t + } module Axis : sig (** ('p, 'r) t represents a projection from a product of type ['p] to an @@ -314,9 +325,11 @@ module type S = sig val min_axis : (t, 'a) Axis.t -> 'a end + module Const_op : Lattice with type t = monadic + include Common with module Const := Const - val imply : Const.t -> ('l * 'r) t -> (disallowed * 'r) t + val join_const : Const.t -> ('l * 'r) t -> ('l * 'r) t end module Comonadic : sig @@ -353,6 +366,8 @@ module type S = sig val print_axis : Format.formatter -> ('m, 'a, 'd) axis -> unit + (** Gets the normal lattice for comonadic axes and the "op"ped lattice for + monadic ones. *) val lattice_of_axis : ('m, 'a, 'd) axis -> (module Lattice with type t = 'a) val all_axes : ('l * 'r) axis_packed list @@ -454,6 +469,10 @@ module type S = sig val imply : Const.t -> ('l * 'r) t -> (disallowed * 'r) t + val join_const : Const.t -> ('l * 'r) t -> ('l * 'r) t + + val subtract : Const.t -> ('l * 'r) t -> ('l * disallowed) t + (* The following two are about the scenario where we partially apply a function [A -> B -> C] to [A] and get back [B -> C]. The mode of the three are constrained. *) @@ -649,6 +668,9 @@ module type S = sig (** Asserts the given modality is a const modality, and returns it. *) val to_const_exn : t -> Const.t + (** Checks if the given modality is a const modality *) + val to_const_opt : t -> Const.t option + (** Inject a constant modality. *) val of_const : Const.t -> t diff --git a/src/ocaml/typing/mtype.ml b/src/ocaml/typing/mtype.ml index 556077533..811744a6b 100644 --- a/src/ocaml/typing/mtype.ml +++ b/src/ocaml/typing/mtype.ml @@ -165,7 +165,8 @@ let rec reduce_lazy ~aliases env mty = | Mty_alias path when aliases -> begin try let mty = (Env.find_module_lazy path env).md_type in - let mty = strengthen_lazy ~aliasable:true mty path in + let normal_path = Env.normalize_instance_names_in_module_path path in + let mty = strengthen_lazy ~aliasable:true mty normal_path in Some mty with Not_found -> (*Location.prerr_warning Location.none @@ -189,6 +190,8 @@ let rec scrape_lazy ~aliases env mty = | Some mty -> scrape_lazy ~aliases env mty | None -> mty +let reduce_alias_lazy env mty = reduce_lazy ~aliases:true env mty + let reduce_lazy env mty = reduce_lazy ~aliases:false env mty let reduce env mty = diff --git a/src/ocaml/typing/mtype.mli b/src/ocaml/typing/mtype.mli index cd095995c..f2c5d426b 100644 --- a/src/ocaml/typing/mtype.mli +++ b/src/ocaml/typing/mtype.mli @@ -27,6 +27,8 @@ val scrape_alias: Env.t -> module_type -> module_type or abstract module type ident. *) val reduce_lazy: Env.t -> Subst.Lazy.module_type -> Subst.Lazy.module_type option +val reduce_alias_lazy: + Env.t -> Subst.Lazy.module_type -> Subst.Lazy.module_type option val reduce: Env.t -> module_type -> module_type option (* Expand one toplevel module abbreviation. Return None if no expansion is possible. *) diff --git a/src/ocaml/typing/oprint.ml b/src/ocaml/typing/oprint.ml index dab7e4ce0..9628be755 100644 --- a/src/ocaml/typing/oprint.ml +++ b/src/ocaml/typing/oprint.ml @@ -642,8 +642,21 @@ and print_out_jkind_const ppf ojkind = | Ojkind_const_default -> fprintf ppf "_" | Ojkind_const_abbreviation abbrev -> fprintf ppf "%s" abbrev | Ojkind_const_mod (base, modes) -> +<<<<<<< janestreet/merlin-jst:rae/with-kinds-roll Misc_stdlib.pp_parens_if nested (fun ppf (base, modes) -> fprintf ppf "%a mod @[%a@]" (pp_element ~nested:true) base +||||||| ocaml-flambda/flambda-backend:4eb95cdd48f3f2f6193e59c53e4640a008a7fd13 + Misc.pp_parens_if nested (fun ppf (base, modes) -> + fprintf ppf "%a mod @[%a@]" (pp_element ~nested:true) base +======= + let pp_base ppf base = + match base with + | Some base -> fprintf ppf "%a " (pp_element ~nested:true) base + | None -> () + in + Misc.pp_parens_if nested (fun ppf (base, modes) -> + fprintf ppf "%amod @[%a@]" pp_base base +>>>>>>> ocaml-flambda/flambda-backend:5.2.0minus-6 (pp_print_list ~pp_sep:(fun ppf () -> fprintf ppf "@ ") (fun ppf -> fprintf ppf "%s")) diff --git a/src/ocaml/typing/outcometree.mli b/src/ocaml/typing/outcometree.mli index a07b5004d..e4f27e276 100644 --- a/src/ocaml/typing/outcometree.mli +++ b/src/ocaml/typing/outcometree.mli @@ -105,7 +105,8 @@ type out_ret_mode = type out_jkind_const = | Ojkind_const_default | Ojkind_const_abbreviation of string - | Ojkind_const_mod of out_jkind_const * string list + (** The base of [Ojkind_const_mod] is optional to enable printing individual axes *) + | Ojkind_const_mod of out_jkind_const option * string list | Ojkind_const_with of out_jkind_const * out_type * out_modality_new list | Ojkind_const_kind_of of out_type | Ojkind_const_product of out_jkind_const list diff --git a/src/ocaml/typing/parmatch.ml b/src/ocaml/typing/parmatch.ml index 8c4137a92..9f64c75bd 100644 --- a/src/ocaml/typing/parmatch.ml +++ b/src/ocaml/typing/parmatch.ml @@ -335,8 +335,8 @@ module Compat | ((Tpat_any|Tpat_var _),_) | (_,(Tpat_any|Tpat_var _)) -> true (* Structural induction *) - | Tpat_alias (p,_,_,_,_),_ -> compat p q - | _,Tpat_alias (q,_,_,_,_) -> compat p q + | Tpat_alias (p,_,_,_,_,_),_ -> compat p q + | _,Tpat_alias (q,_,_,_,_,_) -> compat p q | Tpat_or (p1,p2,_),_ -> (compat p1 q || compat p2 q) | _,Tpat_or (q1,q2,_) -> @@ -1216,7 +1216,7 @@ let build_other ext env = let rec has_instance p = match p.pat_desc with | Tpat_variant (l,_,r) when is_absent l r -> false | Tpat_any | Tpat_var _ | Tpat_constant _ | Tpat_variant (_,None,_) -> true - | Tpat_alias (p,_,_,_,_) | Tpat_variant (_,Some p,_) -> has_instance p + | Tpat_alias (p,_,_,_,_,_) | Tpat_variant (_,Some p,_) -> has_instance p | Tpat_or (p1,p2,_) -> has_instance p1 || has_instance p2 | Tpat_construct (_,_,ps, _) | Tpat_array (_, _, ps) -> has_instances ps @@ -1676,7 +1676,7 @@ let is_var_column rs = (* Standard or-args for left-to-right matching *) let rec or_args p = match p.pat_desc with | Tpat_or (p1,p2,_) -> p1,p2 -| Tpat_alias (p,_,_,_,_) -> or_args p +| Tpat_alias (p,_,_,_,_,_) -> or_args p | _ -> assert false (* Just remove current column *) @@ -1856,8 +1856,8 @@ and every_both pss qs q1 q2 = let rec le_pat p q = match (p.pat_desc, q.pat_desc) with | (Tpat_var _|Tpat_any),_ -> true - | Tpat_alias(p,_,_,_,_), _ -> le_pat p q - | _, Tpat_alias(q,_,_,_,_) -> le_pat p q + | Tpat_alias(p,_,_,_,_,_), _ -> le_pat p q + | _, Tpat_alias(q,_,_,_,_,_) -> le_pat p q | Tpat_constant(c1), Tpat_constant(c2) -> const_compare c1 c2 = 0 | Tpat_construct(_,c1,ps,_), Tpat_construct(_,c2,qs,_) -> Types.equal_tag c1.cstr_tag c2.cstr_tag && le_pats ps qs @@ -1917,8 +1917,8 @@ let get_mins le ps = *) let rec lub p q = match p.pat_desc,q.pat_desc with -| Tpat_alias (p,_,_,_,_),_ -> lub p q -| _,Tpat_alias (q,_,_,_,_) -> lub p q +| Tpat_alias (p,_,_,_,_,_),_ -> lub p q +| _,Tpat_alias (q,_,_,_,_,_) -> lub p q | (Tpat_any|Tpat_var _),_ -> q | _,(Tpat_any|Tpat_var _) -> p | Tpat_or (p1,p2,_),_ -> orlub p1 p2 q @@ -2150,7 +2150,7 @@ let rec collect_paths_from_pat r p = match p.pat_desc with List.fold_left (fun r (_, _, p) -> collect_paths_from_pat r p) r lps -| Tpat_variant (_, Some p, _) | Tpat_alias (p,_,_,_,_) -> +| Tpat_variant (_, Some p, _) | Tpat_alias (p,_,_,_,_,_) -> collect_paths_from_pat r p | Tpat_or (p1,p2,_) -> collect_paths_from_pat (collect_paths_from_pat r p1) p2 @@ -2290,7 +2290,7 @@ let inactive ~partial pat = List.for_all (fun (_,p,_) -> loop p) ps | Tpat_construct (_, _, ps, _) | Tpat_array (Immutable, _, ps) -> List.for_all (fun p -> loop p) ps - | Tpat_alias (p,_,_,_,_) | Tpat_variant (_, Some p, _) -> + | Tpat_alias (p,_,_,_,_,_) | Tpat_variant (_, Some p, _) -> loop p | Tpat_record (ldps,_) -> List.for_all @@ -2419,7 +2419,7 @@ type amb_row = { row : pattern list ; varsets : Ident.Set.t list; } let simplify_head_amb_pat head_bound_variables varsets ~add_column p ps k = let rec simpl head_bound_variables varsets p ps k = match (Patterns.General.view p).pat_desc with - | `Alias (p,x,_,_,_) -> + | `Alias (p,x,_,_,_,_) -> simpl (Ident.Set.add x head_bound_variables) varsets p ps k | `Var (x, _, _, _) -> simpl (Ident.Set.add x head_bound_variables) varsets Patterns.omega ps k diff --git a/src/ocaml/typing/patterns.ml b/src/ocaml/typing/patterns.ml index b383829b0..9de5270c6 100644 --- a/src/ocaml/typing/patterns.ml +++ b/src/ocaml/typing/patterns.ml @@ -85,7 +85,8 @@ module General = struct type view = [ | Half_simple.view | `Var of Ident.t * string loc * Uid.t * Mode.Value.l - | `Alias of pattern * Ident.t * string loc * Uid.t * Mode.Value.l + | `Alias of pattern * Ident.t * string loc + * Uid.t * Mode.Value.l * Types.type_expr ] type pattern = view pattern_data @@ -94,8 +95,8 @@ module General = struct `Any | Tpat_var (id, str, uid, mode) -> `Var (id, str, uid, mode) - | Tpat_alias (p, id, str, uid, mode) -> - `Alias (p, id, str, uid, mode) + | Tpat_alias (p, id, str, uid, mode, ty) -> + `Alias (p, id, str, uid, mode, ty) | Tpat_constant cst -> `Constant cst | Tpat_tuple ps -> @@ -120,7 +121,8 @@ module General = struct let erase_desc = function | `Any -> Tpat_any | `Var (id, str, uid, mode) -> Tpat_var (id, str, uid, mode) - | `Alias (p, id, str, uid, mode) -> Tpat_alias (p, id, str, uid, mode) + | `Alias (p, id, str, uid, mode, ty) -> + Tpat_alias (p, id, str, uid, mode, ty) | `Constant cst -> Tpat_constant cst | `Tuple ps -> Tpat_tuple ps | `Unboxed_tuple ps -> Tpat_unboxed_tuple ps @@ -141,7 +143,7 @@ module General = struct let rec strip_vars (p : pattern) : Half_simple.pattern = match p.pat_desc with - | `Alias (p, _, _, _, _) -> strip_vars (view p) + | `Alias (p, _, _, _, _, _) -> strip_vars (view p) | `Var _ -> { p with pat_desc = `Any } | #Half_simple.view as view -> { p with pat_desc = view } end diff --git a/src/ocaml/typing/patterns.mli b/src/ocaml/typing/patterns.mli index 59f632110..52708b237 100644 --- a/src/ocaml/typing/patterns.mli +++ b/src/ocaml/typing/patterns.mli @@ -69,7 +69,8 @@ module General : sig type view = [ | Half_simple.view | `Var of Ident.t * string loc * Uid.t * Mode.Value.l - | `Alias of pattern * Ident.t * string loc * Uid.t * Mode.Value.l + | `Alias of pattern * Ident.t * string loc * Uid.t + * Mode.Value.l * Types.type_expr ] type pattern = view pattern_data diff --git a/src/ocaml/typing/persistent_env.ml b/src/ocaml/typing/persistent_env.ml index 6e8679308..828c37d34 100644 --- a/src/ocaml/typing/persistent_env.ml +++ b/src/ocaml/typing/persistent_env.ml @@ -56,13 +56,6 @@ type error = expected : Global_module.Name.t; actual : Global_module.Name.t; } - | Inconsistent_global_name_resolution of { - name: Global_module.Name.t; - old_global : Global_module.t; - new_global : Global_module.t; - first_mentioned_by : Global_module.Name.t; - now_mentioned_by : Global_module.Name.t; - } | Unbound_module_as_argument_value of { instance: Global_module.Name.t; value: Global_module.Name.t; @@ -94,9 +87,15 @@ type can_load_cmis = | Can_load_cmis | Cannot_load_cmis of Lazy_backtrack.log +(* Whether a global name was first encountered in this module or by importing + from somewhere else *) +type global_name_mentioned_by = + | Current + | Other of Global_module.Name.t + type global_name_info = { - gn_global : Global_module.t; - gn_mentioned_by : Global_module.Name.t; (* For error reporting *) + gn_global : Global_module.With_precision.t; + gn_mentioned_by : global_name_mentioned_by; (* For error reporting *) } (* Data relating directly to a .cmi - does not depend on arguments *) @@ -142,6 +141,7 @@ type binding = type 'a pers_struct_info = { ps_name_info: pers_name; ps_binding: binding; + ps_canonical : bool; ps_val : 'a; } @@ -305,7 +305,8 @@ let without_cmis penv f x = res let fold {persistent_structures; _} f x = - Hashtbl.fold (fun name ps x -> f name ps.ps_val x) + Hashtbl.fold + (fun name ps x -> if ps.ps_canonical then f name ps.ps_val x else x) persistent_structures x let register_pers_for_short_paths penv modname ps components = @@ -449,22 +450,75 @@ let find_import ~allow_hidden penv ~check modname = add_import penv modname; acknowledge_import penv ~check modname psig -let remember_global { globals; _ } global ~mentioned_by = - if Global_module.has_arguments global then - let global_name = Global_module.to_name global in - match Hashtbl.find globals global_name with - | exception Not_found -> - Hashtbl.add globals global_name - { gn_global = global; gn_mentioned_by = mentioned_by } - | { gn_global = old_global; gn_mentioned_by = first_mentioned_by } -> - if not (Global_module.equal old_global global) then - error (Inconsistent_global_name_resolution { - name = global_name; - old_global; - new_global = global; - first_mentioned_by; - now_mentioned_by = mentioned_by; - }) +let remember_global { globals; _ } global ~precision ~mentioned_by = + let global_name = Global_module.to_name global in + match Hashtbl.find globals global_name with + | exception Not_found -> + Hashtbl.add globals global_name + { gn_global = (global, precision); + gn_mentioned_by = mentioned_by; + } + | { gn_global = old_global; + gn_mentioned_by = first_mentioned_by } -> + let new_global = global, precision in + match + Global_module.With_precision.meet old_global new_global + with + | updated_global -> + if not (old_global == updated_global) then + Hashtbl.replace globals global_name + { gn_global = updated_global; + gn_mentioned_by = first_mentioned_by } + | exception Global_module.With_precision.Inconsistent -> + let pp_mentioned_by ppf = function + | Current -> + Format.fprintf ppf "this compilation unit" + | Other modname -> + Style.as_inline_code Global_module.Name.print ppf modname + in + Misc.fatal_errorf + "@[The name %a@ was bound to %a@ by %a@ \ + but it is instead bound to %a@ by %a.@]" + (Style.as_inline_code Global_module.Name.print) global_name + (Style.as_inline_code Global_module.With_precision.print) old_global + pp_mentioned_by first_mentioned_by + (Style.as_inline_code Global_module.With_precision.print) new_global + pp_mentioned_by mentioned_by + +let rec approximate_global_by_name penv global_name = + let { param_imports; _ } = penv in + (* We're not looking up this global's .cmi, so we can't know its parameters + exactly. Therefore we don't know what the hidden arguments in the + elaborated [Global_module.t] should be. However, we know that each hidden + argument is (a) not a visible argument and (b) a parameter of the importing + module (subset rule). Therefore it is a sound overapproximation to take as + a hidden argument each known parameter that isn't the name of a visible + argument. *) + let ({ head; args = visible_args } : Global_module.Name.t) = global_name in + let params_not_being_passed, visible_args = + List.fold_left_map + (fun params ({ param; value } : _ Global_module.Argument.t) -> + let params = Param_set.remove param params in + let value = approximate_global_by_name penv value in + let arg : _ Global_module.Argument.t = { param; value } in + params, arg) + !param_imports + visible_args + in + let arg_of_param (param : Global_module.Name.t) : Global_module.t = + (* CR-someday Really should just have a separate Parameter_name.t type *) + (* Assume the parameter has no arguments because it can't have any *) + Global_module.create_exn param.head [] ~hidden_args:[] + in + let hidden_args = + Param_set.elements params_not_being_passed + |> List.map + (fun param -> + ({ param; value = arg_of_param param } : _ Global_module.Argument.t)) + in + let global = Global_module.create_exn head visible_args ~hidden_args in + remember_global penv global ~precision:Approximate ~mentioned_by:Current; + global let current_unit_is_aux name ~allow_args = match CU.get_current () with @@ -515,18 +569,23 @@ let check_for_unset_parameters penv global = })) global.Global_module.hidden_args -let rec global_of_global_name penv ~check name = +let rec global_of_global_name penv ~check name ~allow_excess_args = + let load () = + let pn = + find_pers_name ~allow_hidden:true penv ~check name ~allow_excess_args + in + pn.pn_global + in match Hashtbl.find penv.globals name with - | { gn_global; _ } -> gn_global - | exception Not_found -> - let pn = find_pers_name ~allow_hidden:true penv check name in - pn.pn_global + | { gn_global = (global, Exact); _ } -> global + | { gn_global = (_, Approximate); _ } -> load () + | exception Not_found -> load () -and compute_global penv modname ~params check = +and compute_global penv modname ~params ~check ~allow_excess_args = let arg_global_by_param_name = List.map (fun ({ param = name; value } : Global_module.Name.argument) -> - match global_of_global_name penv ~check value with + match global_of_global_name penv ~check value ~allow_excess_args with | value -> name, value | exception Not_found -> error @@ -566,18 +625,23 @@ and compute_global penv modname ~params check = ()) ~right_only: (fun (param, value) -> - (* Argument with no parameter: not fine *) - raise - (Error (Imported_module_has_no_such_parameter { - imported = CU.Name.of_head_of_global_name modname; - valid_parameters = params |> List.map Global_module.to_name; - parameter = param; - value = value |> Global_module.to_name; - }))) + (* Argument with no parameter: fine only if allowed by flag *) + if not allow_excess_args then + raise + (Error (Imported_module_has_no_such_parameter { + imported = CU.Name.of_head_of_global_name modname; + valid_parameters = + params |> List.map Global_module.to_name; + parameter = param; + value = value |> Global_module.to_name; + }))) ~both: (fun (param_name, expected_type_global) (_arg_name, arg_value_global) -> let arg_value = arg_value_global |> Global_module.to_name in - let pn = find_pers_name ~allow_hidden:true penv check arg_value in + let pn = + find_pers_name ~allow_hidden:true penv ~check arg_value + ~allow_excess_args + in let actual_type = match pn.pn_arg_for with | None -> @@ -587,7 +651,7 @@ and compute_global penv modname ~params check = | Some ty -> ty in let actual_type_global = - global_of_global_name penv ~check actual_type + global_of_global_name ~allow_excess_args penv ~check actual_type in if not (Global_module.equal expected_type_global actual_type_global) then begin @@ -625,17 +689,47 @@ and compute_global penv modname ~params check = let global, _changed = Global_module.subst global_without_args subst in global -and acknowledge_pers_name penv check global_name import = +and acknowledge_pers_name penv check global_name import ~allow_excess_args = + let {persistent_names; _} = penv in let params = import.imp_params in - let arg_for = import.imp_arg_for in - let sign = import.imp_raw_sign in - let global = compute_global penv global_name ~params check in + let global = + compute_global penv global_name ~params ~check ~allow_excess_args + in + (* Check whether this global is already known. Possible if there are excess + arguments (or there were in a previous call) since then more than one + [global_name] will map to the same [global]. *) + let canonical_global_name = + (* The minimal form of the global name, without any excess arguments *) + Global_module.to_name global + in + let pn = + match Hashtbl.find_opt persistent_names canonical_global_name with + | Some pn -> + pn + | None -> + acknowledge_new_pers_name penv check canonical_global_name global import + in + if not (Global_module.Name.equal global_name canonical_global_name) then + (* Just remember that both names point here. Note that we don't call + [remember_global], since it will already have been called by + [acknowledge_new_pers_name] (either just now or earlier). This is + annoying in the case that there were _visible_ excess arguments, since + the approximation will just stay in [penv.globals], but it doesn't do + any damage and at some point it will be substituted away. *) + (* CR-someday lmaurer: Modify [remember_global] so that it can remember + multiple global names mapped to the same global. Only likely to be + relevant if there are _a lot_ of bound globals. *) + Hashtbl.add persistent_names global_name pn; + pn +and acknowledge_new_pers_name penv check global_name global import = (* This checks only [global] itself without recursing into argument values. That's fine, however, since those argument values will have come from recursive calls to [global_of_global_name] and therefore have passed through here already. *) check_for_unset_parameters penv global; let {persistent_names; _} = penv in + let arg_for = import.imp_arg_for in + let sign = import.imp_raw_sign in let sign = let bindings = List.map @@ -647,8 +741,9 @@ and acknowledge_pers_name penv check global_name import = Signature_with_global_bindings.subst sign bindings in Array.iter - (fun bound_global -> - remember_global penv bound_global ~mentioned_by:global_name) + (fun (bound_global, precision) -> + remember_global penv bound_global ~precision + ~mentioned_by:(Other global_name)) sign.bound_globals; let pn = { pn_import = import; pn_global = global; @@ -657,23 +752,30 @@ and acknowledge_pers_name penv check global_name import = } in if check then check_consistency penv import; Hashtbl.add persistent_names global_name pn; - remember_global penv global ~mentioned_by:global_name; + remember_global penv global ~precision:Exact ~mentioned_by:Current; pn -and find_pers_name ~allow_hidden penv check name = +and find_pers_name ~allow_hidden penv ~check name ~allow_excess_args = let {persistent_names; _} = penv in match Hashtbl.find persistent_names name with | pn -> pn | exception Not_found -> let unit_name = CU.Name.of_head_of_global_name name in let import = find_import ~allow_hidden penv ~check unit_name in - acknowledge_pers_name penv check name import + acknowledge_pers_name penv check name import ~allow_excess_args let read_pers_name penv check name filename = let unit_name = CU.Name.of_head_of_global_name name in let import = read_import penv ~check unit_name filename in acknowledge_pers_name penv check name import +let normalize_global_name penv modname = + let new_modname = + global_of_global_name penv modname ~check:true ~allow_excess_args:true + |> Global_module.to_name + in + if Global_module.Name.equal modname new_modname then modname else new_modname + let need_local_ident penv (global : Global_module.t) = (* There are three equivalent ways to phrase the question we're asking here: @@ -758,7 +860,13 @@ type 'a sig_reader = (* Add a persistent structure to the hash table and bind it in the [Env]. Checks that OCaml source is allowed to refer to this module. *) +<<<<<<< janestreet/merlin-jst:rae/with-kinds-roll let acknowledge_pers_struct penv short_path_comps modname pers_name val_of_pers_sig = +||||||| ocaml-flambda/flambda-backend:4eb95cdd48f3f2f6193e59c53e4640a008a7fd13 +let acknowledge_pers_struct penv modname pers_name val_of_pers_sig = +======= +let acknowledge_new_pers_struct penv modname pers_name val_of_pers_sig = +>>>>>>> ocaml-flambda/flambda-backend:5.2.0minus-6 let {persistent_structures; _} = penv in let import = pers_name.pn_import in let global = pers_name.pn_global in @@ -804,27 +912,75 @@ let acknowledge_pers_struct penv short_path_comps modname pers_name val_of_pers_ { ps_name_info = pers_name; ps_binding = binding; ps_val = pm; + ps_canonical = true; } in Hashtbl.add persistent_structures modname ps; register_pers_for_short_paths penv modname ps (short_path_comps modname pm); ps +<<<<<<< janestreet/merlin-jst:rae/with-kinds-roll let read_pers_struct penv val_of_pers_sig short_path_comps check modname cmi ~add_binding = let pers_name = read_pers_name penv check modname cmi in if add_binding then ignore (acknowledge_pers_struct penv short_path_comps modname pers_name val_of_pers_sig : _ pers_struct_info); +||||||| ocaml-flambda/flambda-backend:4eb95cdd48f3f2f6193e59c53e4640a008a7fd13 +let read_pers_struct penv val_of_pers_sig check modname cmi ~add_binding = + let pers_name = read_pers_name penv check modname cmi in + if add_binding then + ignore + (acknowledge_pers_struct penv modname pers_name val_of_pers_sig + : _ pers_struct_info); +======= +let acknowledge_pers_struct penv modname pers_name val_of_pers_sig = + (* This is the same dance that [acknowledge_pers_name] does. See comments + there. *) + let {persistent_structures; _} = penv in + let canonical_modname = Global_module.to_name pers_name.pn_global in + let ps = + match Hashtbl.find_opt persistent_structures canonical_modname with + | Some ps -> ps + | None -> + acknowledge_new_pers_struct penv canonical_modname pers_name + val_of_pers_sig + in + if not (Global_module.Name.equal modname canonical_modname) then + Hashtbl.add persistent_structures modname { ps with ps_canonical = false }; + ps + +let read_pers_struct penv check modname cmi = + let pers_name = + read_pers_name penv check modname cmi ~allow_excess_args:false + in +>>>>>>> ocaml-flambda/flambda-backend:5.2.0minus-6 pers_name.pn_sign +<<<<<<< janestreet/merlin-jst:rae/with-kinds-roll let find_pers_struct ~allow_hidden penv val_of_pers_sig short_path_comps check name = +||||||| ocaml-flambda/flambda-backend:4eb95cdd48f3f2f6193e59c53e4640a008a7fd13 +let find_pers_struct ~allow_hidden penv val_of_pers_sig check name = +======= +let find_pers_struct + ~allow_hidden penv val_of_pers_sig ~check name ~allow_excess_args = +>>>>>>> ocaml-flambda/flambda-backend:5.2.0minus-6 let {persistent_structures; _} = penv in match Hashtbl.find persistent_structures name with | ps -> check_visibility ~allow_hidden ps.ps_name_info.pn_import; ps | exception Not_found -> +<<<<<<< janestreet/merlin-jst:rae/with-kinds-roll let pers_name = find_pers_name ~allow_hidden penv check name in acknowledge_pers_struct penv short_path_comps name pers_name val_of_pers_sig +||||||| ocaml-flambda/flambda-backend:4eb95cdd48f3f2f6193e59c53e4640a008a7fd13 + let pers_name = find_pers_name ~allow_hidden penv check name in + acknowledge_pers_struct penv name pers_name val_of_pers_sig +======= + let pers_name = + find_pers_name ~allow_hidden penv ~check name ~allow_excess_args + in + acknowledge_pers_struct penv name pers_name val_of_pers_sig +>>>>>>> ocaml-flambda/flambda-backend:5.2.0minus-6 let describe_prefix ppf prefix = if CU.Prefix.is_empty prefix then @@ -837,7 +993,14 @@ module Style = Misc.Style let check_pers_struct ~allow_hidden penv f1 f2 ~loc name = let name_as_string = CU.Name.to_string (CU.Name.of_head_of_global_name name) in try +<<<<<<< janestreet/merlin-jst:rae/with-kinds-roll ignore (find_pers_struct ~allow_hidden penv f1 f2 false name) +||||||| ocaml-flambda/flambda-backend:4eb95cdd48f3f2f6193e59c53e4640a008a7fd13 + ignore (find_pers_struct ~allow_hidden penv f false name) +======= + ignore (find_pers_struct ~allow_hidden penv f ~check:false name + ~allow_excess_args:true) +>>>>>>> ocaml-flambda/flambda-backend:5.2.0minus-6 with | Not_found -> let warn = Warnings.No_cmi_file(name_as_string, None) in @@ -874,12 +1037,32 @@ let check_pers_struct ~allow_hidden penv f1 f2 ~loc name = | Imported_module_has_no_such_parameter _ -> assert false | Not_compiled_as_argument _ -> assert false | Argument_type_mismatch _ -> assert false - | Inconsistent_global_name_resolution _ -> assert false | Unbound_module_as_argument_value _ -> assert false in let warn = Warnings.No_cmi_file(name_as_string, Some msg) in Location.prerr_warning loc warn +<<<<<<< janestreet/merlin-jst:rae/with-kinds-roll +||||||| ocaml-flambda/flambda-backend:4eb95cdd48f3f2f6193e59c53e4640a008a7fd13 +let read penv f modname a ~add_binding = + read_pers_struct penv f true modname a ~add_binding + +let find ~allow_hidden penv f name = + (find_pers_struct ~allow_hidden penv f true name).ps_val + +let check ~allow_hidden penv f ~loc name = + let {persistent_structures; _} = penv in +======= +let read penv modname a = + read_pers_struct penv true modname a + +let find ~allow_hidden penv f name ~allow_excess_args = + (find_pers_struct ~allow_hidden ~allow_excess_args penv f ~check:true + name).ps_val + +let check ~allow_hidden penv f ~loc name = + let {persistent_structures; _} = penv in +>>>>>>> ocaml-flambda/flambda-backend:5.2.0minus-6 let read penv f1 f2 modname a ~add_binding = read_pers_struct penv f1 f2 true modname a ~add_binding @@ -893,6 +1076,12 @@ let check ~allow_hidden penv f1 f2 ~loc name = whether the check succeeds, to help make builds more deterministic. *) add_import penv (name |> CU.Name.of_head_of_global_name); + let _ : Global_module.t = + (* Record an overapproximation of the elaborated form of this name so that + substitution will work when the signature we're compiling is imported + later *) + approximate_global_by_name penv name + in if (Warnings.is_active (Warnings.No_cmi_file("", None))) then !add_delayed_check_forward (fun () -> check_pers_struct ~allow_hidden penv f1 f2 ~loc name) @@ -942,7 +1131,12 @@ let runtime_parameter_bindings {persistent_structures; _} = (fun ps -> match ps.ps_binding with | Runtime_parameter local_ident -> - Some (ps.ps_name_info.pn_global, local_ident) + if ps.ps_canonical then + Some (ps.ps_name_info.pn_global, local_ident) + else + (* This is a forward from a non-canonical name, not an entry we + need to keep *) + None | Constant _ -> None) |> List.of_seq @@ -971,15 +1165,23 @@ let make_cmi penv modname kind sign alerts = let params = (* Needs to be consistent with [Translmod] *) parameters penv - |> List.map (global_of_global_name penv ~check:true) + |> List.map (global_of_global_name penv ~check:true ~allow_excess_args:false) in (* Need to calculate [params] before these since [global_of_global_name] has side effects *) let crcs = imports penv in let globals = Hashtbl.to_seq_values penv.globals + |> Seq.filter_map + (fun { gn_global; _ } -> + let global, _precision = gn_global in + if Global_module.is_complete global then + (* The globals we need to remember here are the ones that are + relevant for substitution. A complete global is precisely one + for which no further substitutions can apply. *) + None + else Some gn_global) |> Array.of_seq - |> Array.map (fun ({ gn_global; _ }) -> gn_global) in { cmi_name = modname; @@ -1127,16 +1329,6 @@ let report_error ppf = (Style.as_inline_code Global_module.Name.print) actual (Style.as_inline_code Location.print_filename) filename Global_module.Name.print expected - | Inconsistent_global_name_resolution - { name; old_global; new_global; first_mentioned_by; now_mentioned_by } -> - fprintf ppf - "@[The name %a@ was bound to %a@ by %a@ \ - but it is instead bound to %a@ by %a.@]" - (Style.as_inline_code Global_module.Name.print) name - (Style.as_inline_code Global_module.print) old_global - (Style.as_inline_code Global_module.Name.print) first_mentioned_by - (Style.as_inline_code Global_module.print) new_global - (Style.as_inline_code Global_module.Name.print) now_mentioned_by | Unbound_module_as_argument_value { instance; value } -> fprintf ppf "@[Unbound module %a@ in instance %a@]" diff --git a/src/ocaml/typing/persistent_env.mli b/src/ocaml/typing/persistent_env.mli index ae8548496..be1d8b35e 100644 --- a/src/ocaml/typing/persistent_env.mli +++ b/src/ocaml/typing/persistent_env.mli @@ -53,13 +53,6 @@ type error = expected : Global_module.Name.t; actual : Global_module.Name.t; } - | Inconsistent_global_name_resolution of - { name : Global_module.Name.t; - old_global : Global_module.t; - new_global : Global_module.t; - first_mentioned_by : Global_module.Name.t; - now_mentioned_by : Global_module.Name.t; - } | Unbound_module_as_argument_value of { instance : Global_module.Name.t; value : Global_module.Name.t; } @@ -111,6 +104,7 @@ type 'a sig_reader = -> flags:Cmi_format.pers_flags list -> 'a +<<<<<<< janestreet/merlin-jst:rae/with-kinds-roll (* If [add_binding] is false, reads the signature from the .cmi but does not bind the module name in the environment. *) (* CR-someday lmaurer: [add_binding] is apparently always false, including in the @@ -118,10 +112,26 @@ type 'a sig_reader = val read : 'a t -> 'a sig_reader -> (Global_module.Name.t -> 'a -> Short_paths.Desc.Module.components Lazy.t) -> Global_module.Name.t -> Unit_info.Artifact.t -> add_binding:bool +||||||| ocaml-flambda/flambda-backend:4eb95cdd48f3f2f6193e59c53e4640a008a7fd13 +(* If [add_binding] is false, reads the signature from the .cmi but does not + bind the module name in the environment. *) +(* CR-someday lmaurer: [add_binding] is apparently always false, including in the + [-instantiate] branch. We should remove this parameter. *) +val read : 'a t -> 'a sig_reader + -> Global_module.Name.t -> Unit_info.Artifact.t -> add_binding:bool +======= +val read : 'a t -> Global_module.Name.t -> Unit_info.Artifact.t +>>>>>>> ocaml-flambda/flambda-backend:5.2.0minus-6 -> Subst.Lazy.signature val find : allow_hidden:bool -> 'a t -> 'a sig_reader +<<<<<<< janestreet/merlin-jst:rae/with-kinds-roll -> (Global_module.Name.t -> 'a -> Short_paths.Desc.Module.components Lazy.t) -> Global_module.Name.t -> 'a +||||||| ocaml-flambda/flambda-backend:4eb95cdd48f3f2f6193e59c53e4640a008a7fd13 + -> Global_module.Name.t -> 'a +======= + -> Global_module.Name.t -> allow_excess_args:bool -> 'a +>>>>>>> ocaml-flambda/flambda-backend:5.2.0minus-6 val find_in_cache : 'a t -> Global_module.Name.t -> 'a option @@ -159,8 +169,13 @@ val implemented_parameter : 'a t val global_of_global_name : 'a t -> check:bool -> Global_module.Name.t + -> allow_excess_args:bool -> Global_module.t +(* [normalize_global_name penv g] returns [g] with any excess arguments removed, + loading any .cmi files necessary to do so. *) +val normalize_global_name : 'a t -> Global_module.Name.t -> Global_module.Name.t + val make_cmi : 'a t -> Compilation_unit.Name.t -> Cmi_format.kind diff --git a/src/ocaml/typing/printpat.ml b/src/ocaml/typing/printpat.ml index 95f469be9..d74c7d715 100644 --- a/src/ocaml/typing/printpat.ml +++ b/src/ocaml/typing/printpat.ml @@ -114,7 +114,7 @@ let rec pretty_val : type k . _ -> k general_pattern -> _ = fun ppf v -> fprintf ppf "@[[%c %a %c]@]" punct (pretty_vals " ;") vs punct | Tpat_lazy v -> fprintf ppf "@[<2>lazy@ %a@]" pretty_arg v - | Tpat_alias (v, x, _, _, _) -> + | Tpat_alias (v, x, _, _, _, _) -> fprintf ppf "@[(%a@ as %a)@]" pretty_val v Ident.print x | Tpat_value v -> fprintf ppf "%a" pretty_val (v :> pattern) diff --git a/src/ocaml/typing/printtyped.ml b/src/ocaml/typing/printtyped.ml index 53bd67f76..1ddb99419 100644 --- a/src/ocaml/typing/printtyped.ml +++ b/src/ocaml/typing/printtyped.ml @@ -332,7 +332,7 @@ and pattern : type k . _ -> _ -> k general_pattern -> unit = fun i ppf x -> | Tpat_var (s,_,_,m) -> line i ppf "Tpat_var \"%a\"\n" fmt_ident s; value_mode i ppf m - | Tpat_alias (p, s,_,_,m) -> + | Tpat_alias (p, s,_,_,m,_) -> line i ppf "Tpat_alias \"%a\"\n" fmt_ident s; value_mode i ppf m; pattern i ppf p; diff --git a/src/ocaml/typing/signature_with_global_bindings.ml b/src/ocaml/typing/signature_with_global_bindings.ml index b596ec139..a93ee0559 100644 --- a/src/ocaml/typing/signature_with_global_bindings.ml +++ b/src/ocaml/typing/signature_with_global_bindings.ml @@ -2,7 +2,7 @@ type t = { sign : Subst.Lazy.signature; - bound_globals : Global_module.t array; + bound_globals : Global_module.With_precision.t array; } let read_from_cmi (cmi : Cmi_format.cmi_infos_lazy) = @@ -29,7 +29,7 @@ let subst t (args : (Global_module.Name.t * Global_module.t) list) = let arg_subst = Global_module.Name.Map.of_list args in (* Take a bound global, substitute arguments into it, then return the updated global while also adding it to the term-level substitution *) - let add_and_update_binding subst bound_global = + let add_and_update_binding subst (bound_global, prec) = let name = Global_module.to_name bound_global in if Global_module.Name.Map.mem name arg_subst then (* This shouldn't happen: only globals with hidden arguments should be @@ -58,7 +58,7 @@ let subst t (args : (Global_module.Name.t * Global_module.t) list) = completely-applied global *) None else - Some value + Some (value, prec) in subst, new_bound_global end diff --git a/src/ocaml/typing/signature_with_global_bindings.mli b/src/ocaml/typing/signature_with_global_bindings.mli index 27494c9bd..bf5d76efa 100644 --- a/src/ocaml/typing/signature_with_global_bindings.mli +++ b/src/ocaml/typing/signature_with_global_bindings.mli @@ -14,7 +14,7 @@ represented explicitly. *) type t = private { sign : Subst.Lazy.signature; - bound_globals : Global_module.t array; + bound_globals : Global_module.With_precision.t array; } val read_from_cmi : Cmi_format.cmi_infos_lazy -> t diff --git a/src/ocaml/typing/tast_iterator.ml b/src/ocaml/typing/tast_iterator.ml index 62997b401..f2d611a8f 100644 --- a/src/ocaml/typing/tast_iterator.ml +++ b/src/ocaml/typing/tast_iterator.ml @@ -278,7 +278,7 @@ let pat | Tpat_record_unboxed_product (l, _) -> List.iter (fun (lid, _, i) -> iter_loc sub lid; sub.pat sub i) l | Tpat_array (_, _, l) -> List.iter (sub.pat sub) l - | Tpat_alias (p, _, s, _, _) -> sub.pat sub p; iter_loc sub s + | Tpat_alias (p, _, s, _, _, _) -> sub.pat sub p; iter_loc sub s | Tpat_lazy p -> sub.pat sub p | Tpat_value p -> sub.pat sub (p :> pattern) | Tpat_exception p -> sub.pat sub p diff --git a/src/ocaml/typing/tast_mapper.ml b/src/ocaml/typing/tast_mapper.ml index 0daa97419..25984552a 100644 --- a/src/ocaml/typing/tast_mapper.ml +++ b/src/ocaml/typing/tast_mapper.ml @@ -319,8 +319,16 @@ let pat Tpat_record_unboxed_product (List.map (tuple3 (map_loc sub) id (sub.pat sub)) l, closed) | Tpat_array (am, arg_sort, l) -> Tpat_array (am, arg_sort, List.map (sub.pat sub) l) +<<<<<<< janestreet/merlin-jst:rae/with-kinds-roll | Tpat_alias (p, id, s, uid, m) -> Tpat_alias (sub.pat sub p, id, map_loc sub s, uid, m) +||||||| ocaml-flambda/flambda-backend:4eb95cdd48f3f2f6193e59c53e4640a008a7fd13 + | Tpat_alias (p, id, s, uid, m) -> + Tpat_alias (sub.pat sub p, id, map_loc sub s, uid, m) +======= + | Tpat_alias (p, id, s, uid, m, ty) -> + Tpat_alias (sub.pat sub p, id, map_loc sub s, uid, m, ty) +>>>>>>> ocaml-flambda/flambda-backend:5.2.0minus-6 | Tpat_lazy p -> Tpat_lazy (sub.pat sub p) | Tpat_value p -> (as_computation_pattern (sub.pat sub (p :> pattern))).pat_desc diff --git a/src/ocaml/typing/typecore.ml b/src/ocaml/typing/typecore.ml index 558b2e696..7ea7a571e 100644 --- a/src/ocaml/typing/typecore.ml +++ b/src/ocaml/typing/typecore.ml @@ -1043,15 +1043,25 @@ let has_poly_constraint spat = (* This is very similar to Ctype.mode_cross_left_alloc. Any bugs here are likely bugs there, too. *) let mode_cross_left_value env ty mode = - let mode = - if not (is_principal ty) then mode else + if not (is_principal ty) then + Value.disallow_right mode + else begin let jkind = type_jkind_purely env ty in let jkind_of_type = type_jkind_purely_if_principal env in let upper_bounds = Jkind.get_modal_upper_bounds ~jkind_of_type jkind in + let upper_bounds = + Alloc.Const.merge + { comonadic = upper_bounds; monadic = Alloc.Monadic.Const.max } + in let upper_bounds = Const.alloc_as_value upper_bounds in - Value.meet_const upper_bounds mode - in - mode |> Value.disallow_right + let lower_bounds = Jkind.get_modal_lower_bounds ~jkind_of_type jkind in + let lower_bounds = + Alloc.Const.merge + { comonadic = Alloc.Comonadic.Const.min; monadic = lower_bounds } + in + let lower_bounds = Const.alloc_as_value lower_bounds in + Value.subtract lower_bounds (Value.meet_const upper_bounds mode) + end let actual_mode_cross_left env ty (actual_mode : Env.actual_mode) : Env.actual_mode = @@ -1067,9 +1077,9 @@ let alloc_mode_cross_to_max_min env ty { monadic; comonadic } = let jkind = type_jkind_purely env ty in let jkind_of_type = type_jkind_purely_if_principal env in let upper_bounds = Jkind.get_modal_upper_bounds ~jkind_of_type jkind in - let upper_bounds = Alloc.Const.split upper_bounds in - let comonadic = Alloc.Comonadic.meet_const upper_bounds.comonadic comonadic in - let monadic = Alloc.Monadic.imply upper_bounds.monadic monadic in + let comonadic = Alloc.Comonadic.meet_const upper_bounds comonadic in + let lower_bounds = Jkind.get_modal_lower_bounds ~jkind_of_type jkind in + let monadic = Alloc.Monadic.join_const lower_bounds monadic in { monadic; comonadic } (** Mode cross a right mode *) @@ -1078,8 +1088,22 @@ let alloc_mode_cross_to_max_min env ty { monadic; comonadic } = let expect_mode_cross_jkind env jkind (expected_mode : expected_mode) = let jkind_of_type = type_jkind_purely_if_principal env in let upper_bounds = Jkind.get_modal_upper_bounds ~jkind_of_type jkind in + let upper_bounds = + Alloc.Const.merge + { comonadic = upper_bounds; monadic = Alloc.Monadic.Const.max } + in let upper_bounds = Const.alloc_as_value upper_bounds in - mode_morph (Value.imply upper_bounds) expected_mode + let lower_bounds = Jkind.get_modal_lower_bounds ~jkind_of_type jkind in + let lower_bounds = + Alloc.Const.merge + { comonadic = Alloc.Comonadic.Const.min; monadic = lower_bounds } + in + let lower_bounds = Const.alloc_as_value lower_bounds in + mode_morph + (fun m -> + Value.imply upper_bounds + (Value.join_const lower_bounds m)) + expected_mode let expect_mode_cross env ty (expected_mode : expected_mode) = if not (is_principal ty) then expected_mode else @@ -1559,7 +1583,7 @@ and build_as_type_aux (env : Env.t) p ~mode = ty, mode in match p.pat_desc with - Tpat_alias(p1,_, _, _, _) -> build_as_type_and_mode env p1 ~mode + Tpat_alias(p1,_, _, _, _, _) -> build_as_type_and_mode env p1 ~mode | Tpat_tuple pl -> let labeled_tyl = List.map (fun (label, p) -> label, build_as_type env p) pl in @@ -2995,7 +3019,7 @@ and type_pat_aux enter_variable ~is_as_variable:true tps name.loc name mode ty_var sp.ppat_attributes in - rvp { pat_desc = Tpat_alias(q, id, name, uid, mode); + rvp { pat_desc = Tpat_alias(q, id, name, uid, mode, ty_var); pat_loc = loc; pat_extra=[]; pat_type = q.pat_type; pat_attributes = sp.ppat_attributes; @@ -3646,7 +3670,7 @@ let rec check_counter_example_pat in check_rec ~info:(decrease 5) tp expected_ty k end - | Tpat_alias (p, _, _, _, _) -> check_rec ~info p expected_ty k + | Tpat_alias (p, _, _, _, _, _) -> check_rec ~info p expected_ty k | Tpat_constant cst -> let cst = constant_or_raise !!penv loc (Untypeast.constant cst) in k @@ solve_expected (mp (Tpat_constant cst) ~pat_type:(type_constant cst)) @@ -5017,7 +5041,7 @@ let rec name_pattern default = function | p :: rem -> match p.pat_desc with Tpat_var (id, _, _, _) -> id - | Tpat_alias(_, id, _, _, _) -> id + | Tpat_alias(_, id, _, _, _, _) -> id | _ -> name_pattern default rem let name_cases default lst = @@ -7049,6 +7073,12 @@ and type_expect_ | Texp_lazy _ -> unsupported Lazy | Texp_object _ -> unsupported Object | Texp_pack _ -> unsupported Module + | Texp_apply({ exp_desc = Texp_ident(_, _, {val_kind = Val_prim _}, _, _)}, + _, _, _, _) + (* [stack_ (prim foo)] will be checked by [transl_primitive_application]. *) + (* CR zqian: Move/Copy [Lambda.primitive_may_allocate] to [typing], then we can + check primitive allocation here, and also improve the logic in [type_ident]. *) + -> () | _ -> raise (error (exp.exp_loc, env, Not_allocation)) end; @@ -7307,8 +7337,8 @@ and type_ident env ?(recarg=Rejected) lid = *) (* CR modes: codify the above per-axis argument. *) let actual_mode = - Env.walk_locks ~loc:lid.loc ~env ~item:Value ~lid:lid.txt mode - (Some desc.val_type) locks + Env.walk_locks ~env ~item:Value mode (Some desc.val_type) + (locks, lid.txt, lid.loc) in (* We need to cross again, because the monadic fragment might have been weakened by the locks. Ideally, the first crossing only deals with comonadic, @@ -9602,7 +9632,7 @@ and type_let ?check ?check_strict ?(force_toplevel = false) let pat_name = match p.pat_desc with Tpat_var (id, _, _, _) -> Some id - | Tpat_alias(_, id, _, _, _) -> Some id + | Tpat_alias(_, id, _, _, _, _) -> Some id | _ -> None in Ctype.check_and_update_generalized_ty_jkind ?name:pat_name ~loc:exp.exp_loc env exp.exp_type diff --git a/src/ocaml/typing/typedecl.ml b/src/ocaml/typing/typedecl.ml index f9d1885bf..68de668ed 100644 --- a/src/ocaml/typing/typedecl.ml +++ b/src/ocaml/typing/typedecl.ml @@ -1105,7 +1105,8 @@ let rec check_constraints_rec env loc visited ty = let violation = Jkind.Violation.of_ (Not_a_subjkind (Jkind.disallow_right original_jkind, - Jkind.disallow_left inferred_jkind)) + Jkind.disallow_left inferred_jkind, + [])) in raise (Error(loc, Jkind_mismatch_due_to_bad_inference (ty, violation, Check_constraints))) @@ -1895,12 +1896,14 @@ let update_decl_jkind env id decl = match Jkind.Layout.sub new_decl.type_jkind.jkind.layout decl.type_jkind.jkind.layout with - | Not_le -> + | Not_le reason -> raise (Error ( decl.type_loc, Jkind_mismatch_of_path ( Pident id, - Jkind.Violation.of_ (Not_a_subjkind (new_decl.type_jkind, decl.type_jkind))))) + Jkind.Violation.of_ ( + Not_a_subjkind ( + new_decl.type_jkind, decl.type_jkind, Nonempty_list.to_list reason))))) | Less | Equal -> new_decl let update_decls_jkind_reason env decls = @@ -2527,7 +2530,9 @@ let normalize_decl_jkinds env shapes decls = in let umc = Some { modal_upper_bounds = - Jkind.get_modal_upper_bounds ~jkind_of_type type_jkind } + Jkind.get_modal_upper_bounds ~jkind_of_type type_jkind; + modal_lower_bounds = + Jkind.get_modal_lower_bounds ~jkind_of_type type_jkind } in let type_kind = match decl.type_kind with diff --git a/src/ocaml/typing/typedtree.ml b/src/ocaml/typing/typedtree.ml index 89bb6bffc..206414359 100644 --- a/src/ocaml/typing/typedtree.ml +++ b/src/ocaml/typing/typedtree.ml @@ -149,7 +149,8 @@ and 'k pattern_desc = | Tpat_any : value pattern_desc | Tpat_var : Ident.t * string loc * Uid.t * Mode.Value.l -> value pattern_desc | Tpat_alias : - value general_pattern * Ident.t * string loc * Uid.t * Mode.Value.l -> value pattern_desc + value general_pattern * Ident.t * string loc * Uid.t * Mode.Value.l + * Types.type_expr -> value pattern_desc | Tpat_constant : constant -> value pattern_desc | Tpat_tuple : (string option * value general_pattern) list -> value pattern_desc | Tpat_unboxed_tuple : @@ -980,7 +981,7 @@ type pattern_action = let shallow_iter_pattern_desc : type k . pattern_action -> k pattern_desc -> unit = fun f -> function - | Tpat_alias(p, _, _, _, _) -> f.f p + | Tpat_alias(p, _, _, _, _, _) -> f.f p | Tpat_tuple patl -> List.iter (fun (_, p) -> f.f p) patl | Tpat_unboxed_tuple patl -> List.iter (fun (_, p, _) -> f.f p) patl | Tpat_construct(_, _, patl, _) -> List.iter f.f patl @@ -1003,8 +1004,8 @@ type pattern_transformation = let shallow_map_pattern_desc : type k . pattern_transformation -> k pattern_desc -> k pattern_desc = fun f d -> match d with - | Tpat_alias (p1, id, s, uid, m) -> - Tpat_alias (f.f p1, id, s, uid, m) + | Tpat_alias (p1, id, s, uid, m, ty) -> + Tpat_alias (f.f p1, id, s, uid, m, ty) | Tpat_tuple pats -> Tpat_tuple (List.map (fun (label, pat) -> label, f.f pat) pats) | Tpat_unboxed_tuple pats -> @@ -1073,9 +1074,9 @@ let rec iter_bound_idents match pat.pat_desc with | Tpat_var (id, s, uid, _mode) -> f (id,s,pat.pat_type, uid) - | Tpat_alias(p, id, s, uid, _mode) -> + | Tpat_alias(p, id, s, uid, _mode, ty) -> iter_bound_idents f p; - f (id,s,pat.pat_type, uid) + f (id, s, ty, uid) | Tpat_or(p1, _, _) -> (* Invariant : both arguments bind the same variables *) iter_bound_idents f p1 @@ -1114,9 +1115,9 @@ let iter_pattern_full ~of_sort ~of_const_sort ~both_sides_of_or f sort pat = (* Cases where we push the sort inwards: *) | Tpat_var (id, s, uid, mode) -> f id s pat.pat_type uid mode sort - | Tpat_alias(p, id, s, uid, mode) -> + | Tpat_alias(p, id, s, uid, mode, ty) -> loop f sort p; - f id s pat.pat_type uid mode sort + f id s ty uid mode sort | Tpat_or (p1, p2, _) -> if both_sides_of_or then (loop f sort p1; loop f sort p2) else loop f sort p1 @@ -1254,10 +1255,19 @@ let rec alpha_pat {p with pat_desc = try Tpat_var (alpha_var env id, s, uid, mode) with | Not_found -> Tpat_any} +<<<<<<< janestreet/merlin-jst:rae/with-kinds-roll | Tpat_alias (p1, id, s, uid, mode) -> let new_p : k general_pattern = alpha_pat env p1 in +||||||| ocaml-flambda/flambda-backend:4eb95cdd48f3f2f6193e59c53e4640a008a7fd13 + | Tpat_alias (p1, id, s, uid, mode) -> + let new_p = alpha_pat env p1 in +======= + | Tpat_alias (p1, id, s, uid, mode, ty) -> + let new_p = alpha_pat env p1 in +>>>>>>> ocaml-flambda/flambda-backend:5.2.0minus-6 begin try - {p with pat_desc = Tpat_alias (new_p, alpha_var env id, s, uid, mode)} + {p with pat_desc = + Tpat_alias (new_p, alpha_var env id, s, uid, mode, ty)} with | Not_found -> new_p end diff --git a/src/ocaml/typing/typedtree.mli b/src/ocaml/typing/typedtree.mli index d7c306a48..e30bac690 100644 --- a/src/ocaml/typing/typedtree.mli +++ b/src/ocaml/typing/typedtree.mli @@ -161,6 +161,7 @@ and 'k pattern_desc = (** x *) | Tpat_alias : value general_pattern * Ident.t * string loc * Uid.t * Mode.Value.l + * Types.type_expr -> value pattern_desc (** P as a *) | Tpat_constant : constant -> value pattern_desc diff --git a/src/ocaml/typing/typemod.ml b/src/ocaml/typing/typemod.ml index b966ec388..29e635d1f 100644 --- a/src/ocaml/typing/typemod.ml +++ b/src/ocaml/typing/typemod.ml @@ -813,8 +813,8 @@ let merge_constraint initial_env loc sg lid constr = in let md'' = { md' with md_type = mty } in let newmd = Mtype.strengthen_decl ~aliasable:false md'' path in - ignore(Includemod.modtypes ~mark:Mark_both ~loc sig_env ~modes:Legacy - newmd.md_type md.md_type); + ignore(Includemod.modtypes ~mark:Mark_both ~loc sig_env + ~modes:(Legacy None) newmd.md_type md.md_type); return ~replace_by:(Some(Sig_module(id, pres, newmd, rs, priv))) (Pident id, lid, Some (Twith_module (path, lid'))) @@ -824,7 +824,7 @@ let merge_constraint initial_env loc sg lid constr = let aliasable = not (Env.is_functor_arg path sig_env) in ignore (Includemod.strengthened_module_decl ~loc ~mark:Mark_both - ~aliasable sig_env ~mmodes:Legacy md' path md); + ~aliasable sig_env ~mmodes:(Legacy None) md' path md); real_ids := [Pident id]; return ~replace_by:None (Pident id, lid, Some (Twith_modsubst (path, lid'))) @@ -1709,7 +1709,7 @@ and transl_modtype_aux env smty = let aliasable = not (Env.is_functor_arg path env) in try ignore - (Includemod.modtypes ~loc env ~modes:Legacy + (Includemod.modtypes ~loc env ~modes:(Legacy None) ~mark:Includemod.Mark_both md.md_type tmty.mty_type); mkmty (Tmty_strengthen (tmty, path, mod_id)) @@ -1727,10 +1727,10 @@ and transl_with ~loc env remove_aliases (rev_tcstrs,sg) constr = | Pwith_type (l,decl) ->l , With_type decl | Pwith_typesubst (l,decl) ->l , With_typesubst decl | Pwith_module (l,l') -> - let path, md, _ = Env.lookup_module ~lock:false ~loc l'.txt env in + let path, md, _ = Env.lookup_module ~loc l'.txt env in l , With_module {lid=l';path;md; remove_aliases} | Pwith_modsubst (l,l') -> - let path, md', _ = Env.lookup_module ~lock:false ~loc l'.txt env in + let path, md', _ = Env.lookup_module ~loc l'.txt env in l , With_modsubst (l',path,md') | Pwith_modtype (l,smty) -> let mty = transl_modtype env smty in @@ -1936,8 +1936,7 @@ and transl_signature ?(keep_warnings = false) env sig_acc {psg_items; psg_modali | Psig_modsubst pms -> let scope = Ctype.create_scope () in let path, md, _ = - Env.lookup_module ~loc:pms.pms_manifest.loc ~lock:false - pms.pms_manifest.txt env + Env.lookup_module ~loc:pms.pms_manifest.loc pms.pms_manifest.txt env in let aliasable = not (Env.is_functor_arg path env) in let md = @@ -2420,7 +2419,7 @@ let check_recmodule_inclusion env bindings = try Includemod.modtypes_with_shape ~shape ~loc:modl.mod_loc ~mark:Mark_both - env ~modes:Legacy mty_actual' mty_decl' + env ~modes:(Legacy None) mty_actual' mty_decl' with Includemod.Error msg -> Msupport.raise_error(Error(modl.mod_loc, env, Not_included msg)); Tcoerce_none, shape @@ -2519,13 +2518,13 @@ let package_subtype env p1 fl1 p2 fl2 = let () = Ctype.package_subtype := package_subtype -let wrap_constraint_package env mark arg mty explicit = +let wrap_constraint_package env mark arg held_locks mty explicit = let mark = if mark then Includemod.Mark_both else Includemod.Mark_neither in let mty1 = Subst.modtype Keep Subst.identity arg.mod_type in let mty2 = Subst.modtype Keep Subst.identity mty in let coercion = try - Includemod.modtypes ~loc:arg.mod_loc env ~mark ~modes:Legacy mty1 mty2 + Includemod.modtypes ~loc:arg.mod_loc env ~mark ~modes:(Legacy held_locks) mty1 mty2 with Includemod.Error msg -> Msupport.raise_error(Error(arg.mod_loc, env, Not_included msg)); Tcoerce_none @@ -2536,13 +2535,13 @@ let wrap_constraint_package env mark arg mty explicit = mod_attributes = []; mod_loc = arg.mod_loc } -let wrap_constraint_with_shape env mark arg mty +let wrap_constraint_with_shape env mark arg held_locks mty shape explicit = let mark = if mark then Includemod.Mark_both else Includemod.Mark_neither in let coercion, shape = try Includemod.modtypes_with_shape ~shape ~loc:arg.mod_loc env ~mark - ~modes:Legacy arg.mod_type mty + ~modes:(Legacy held_locks) arg.mod_type mty with Includemod.Error msg -> Msupport.raise_error(Error(arg.mod_loc, env, Not_included msg)); Tcoerce_none, Shape.dummy_mod @@ -2560,6 +2559,7 @@ let wrap_constraint_with_shape env mark arg mty type argument_summary = { is_syntactic_unit: bool; arg: Typedtree.module_expr; + held_locks: Env.held_locks option; path: Path.t option; shape: Shape.t } @@ -2619,30 +2619,45 @@ let maybe_infer_modalities ~loc ~env ~md_mode ~mode = Mode.Modality.Value.id end -type alias = - | No : alias - (** The module is in a context that doesn't treat aliases specially. *) - | Yes_hold_locks : alias - (** The module is in a context that treat alias specially. If it is indeed an - alias, the caller will hold the locks in the alias, and walk them when - later the alias is used for its content. *) - | Yes_walk_locks : alias - (** The module is in a context that treat alias specially. However, the caller - doesn't want to hold the locks, and therefore the locks must be eagerly - walked. *) - -let is_alias = function - | No -> false - | Yes_walk_locks | Yes_hold_locks -> true - -let rec type_module ?(alias=false) sttn funct_body anchor env smod = - let alias = if alias then Yes_walk_locks else No in - let md, shape, locks = - type_module_maybe_hold_locks ~alias sttn funct_body anchor env smod +let rec type_module ?alias sttn funct_body anchor env smod = + let md, shape, held_locks = + type_module_maybe_hold_locks ?alias ~hold_locks:false sttn funct_body anchor env smod in - assert (Env.locks_is_empty locks); + assert (Option.is_none held_locks); md, shape +<<<<<<< janestreet/merlin-jst:rae/with-kinds-roll +||||||| ocaml-flambda/flambda-backend:4eb95cdd48f3f2f6193e59c53e4640a008a7fd13 +and type_module_maybe_hold_locks ~alias sttn funct_body anchor env smod = + Builtin_attributes.warning_scope smod.pmod_attributes + (fun () -> type_module_aux ~alias sttn funct_body anchor env smod) + +and type_module_aux ~alias sttn funct_body anchor env smod = + match smod.pmod_desc with + Pmod_ident lid -> + let path, locks = + Env.lookup_module_path ~load:(not @@ is_alias alias) ~loc:smod.pmod_loc lid.txt env + in + type_module_path_aux ~alias sttn env path locks lid smod + | Pmod_structure sstr -> + let (str, sg, names, shape, _finalenv) = + type_structure funct_body anchor env sstr in +======= +and type_module_maybe_hold_locks ?(alias=false) ~hold_locks sttn funct_body anchor env smod = + Builtin_attributes.warning_scope smod.pmod_attributes + (fun () -> type_module_aux ~alias ~hold_locks sttn funct_body anchor env smod) + +and type_module_aux ~alias ~hold_locks sttn funct_body anchor env smod = + match smod.pmod_desc with + Pmod_ident lid -> + let path, locks = + Env.lookup_module_path ~load:(not alias) ~loc:smod.pmod_loc lid.txt env + in + type_module_path_aux ~alias ~hold_locks sttn env path locks lid smod + | Pmod_structure sstr -> + let (str, sg, names, shape, _finalenv) = + type_structure funct_body anchor env sstr in +>>>>>>> ocaml-flambda/flambda-backend:5.2.0minus-6 and type_module_maybe_hold_locks ~alias sttn funct_body anchor env smod = (* Merlin: when we start typing a module we don't want to include potential saved_items from its parent. We backup them before starting and restore them @@ -2684,11 +2699,13 @@ and type_module_aux ~alias sttn funct_body anchor env smod = let sg' = Signature_names.simplify _finalenv names sg in let md, shape = if List.length sg' = List.length sg then md, shape else - wrap_constraint_with_shape env false md + wrap_constraint_with_shape env false md None (Mty_signature sg') shape Tmodtype_implicit in - md, shape, Env.locks_empty + md, shape, None | Pmod_functor(arg_opt, sbody) -> + let newenv = Env.add_escape_lock Module env in + let newenv = Env.add_share_lock Module newenv in let t_arg, ty_arg, newenv, funct_shape_param, funct_body = match arg_opt with | Unit -> @@ -2712,31 +2729,59 @@ and type_module_aux ~alias sttn funct_body anchor env smod = let id = Ident.create_scoped ~scope name in let shape = Shape.var md_uid id in let newenv = Env.add_module_declaration - ~shape ~arg:true ~check:true id Mp_present arg_md env + ~shape ~arg:true ~check:true id Mp_present arg_md newenv in Some id, newenv, id in Named (id, param, mty), Types.Named (id, mty.mty_type), newenv, var, true in - let newenv = Env.add_escape_lock Module newenv in - let newenv = Env.add_share_lock Module newenv in let body, body_shape = type_module true funct_body None newenv sbody in { mod_desc = Tmod_functor(t_arg, body); mod_type = Mty_functor(ty_arg, body.mod_type); mod_env = env; mod_attributes = smod.pmod_attributes; mod_loc = smod.pmod_loc }, - Shape.abs funct_shape_param body_shape, Env.locks_empty + Shape.abs funct_shape_param body_shape, None | Pmod_apply _ | Pmod_apply_unit _ -> let md, shape = type_application smod.pmod_loc sttn funct_body env smod in - md, shape, Env.locks_empty + md, shape, None | Pmod_constraint(sarg, smty, smode) -> check_no_modal_modules ~env smode; let smty = Option.get smty in - let arg, arg_shape, locks = - type_module_maybe_hold_locks ~alias true funct_body anchor env sarg + let arg, arg_shape, held_locks = + type_module_maybe_hold_locks ~alias ~hold_locks:true true funct_body anchor env sarg + in +<<<<<<< janestreet/merlin-jst:rae/with-kinds-roll +||||||| ocaml-flambda/flambda-backend:4eb95cdd48f3f2f6193e59c53e4640a008a7fd13 + let mty = transl_modtype env smty in + let md, final_shape = + wrap_constraint_with_shape env true arg mty.mty_type arg_shape + (Tmodtype_explicit mty) + in + { md with + mod_loc = smod.pmod_loc; + mod_attributes = smod.pmod_attributes; + }, + final_shape, locks + | Pmod_unpack sexp -> + let exp = + Ctype.with_local_level_if_principal +======= + let mty = transl_modtype env smty in + let md, final_shape = + wrap_constraint_with_shape env true arg held_locks mty.mty_type arg_shape + (Tmodtype_explicit mty) in + { md with + mod_loc = smod.pmod_loc; + mod_attributes = smod.pmod_attributes; + }, + final_shape, None + | Pmod_unpack sexp -> + let exp = + Ctype.with_local_level_if_principal +>>>>>>> ocaml-flambda/flambda-backend:5.2.0minus-6 begin try let mty = transl_modtype env smty in let md, final_shape = @@ -2797,6 +2842,7 @@ and type_module_aux ~alias sttn funct_body anchor env smod = mod_env = env; mod_attributes = smod.pmod_attributes; mod_loc = smod.pmod_loc }, +<<<<<<< janestreet/merlin-jst:rae/with-kinds-roll Shape.leaf_for_unpack, Env.locks_empty | Pmod_extension ({ txt; _ }, _) when txt = Ast_helper.hole_txt -> { mod_desc = Tmod_typed_hole; @@ -2805,13 +2851,18 @@ and type_module_aux ~alias sttn funct_body anchor env smod = mod_attributes = smod.pmod_attributes; mod_loc = smod.pmod_loc }, Shape.dummy_mod, Env.locks_empty +||||||| ocaml-flambda/flambda-backend:4eb95cdd48f3f2f6193e59c53e4640a008a7fd13 + Shape.leaf_for_unpack, Env.locks_empty +======= + Shape.leaf_for_unpack, None +>>>>>>> ocaml-flambda/flambda-backend:5.2.0minus-6 | Pmod_extension ext -> raise (Error_forward (Builtin_attributes.error_of_extension ext)) | Pmod_instance glob -> Language_extension.assert_enabled ~loc:smod.pmod_loc Instances (); let glob = instance_name ~loc:smod.pmod_loc env glob in let path, locks = - Env.lookup_module_instance_path ~load:(not @@ is_alias alias) ~loc:smod.pmod_loc + Env.lookup_module_instance_path ~load:(not alias) ~loc:smod.pmod_loc glob env in let lid = @@ -2821,21 +2872,20 @@ and type_module_aux ~alias sttn funct_body anchor env smod = in Location.(mkloc (Lident name) (ghostify smod.pmod_loc)) in - type_module_path_aux ~alias sttn env path locks lid smod - -and type_module_path_aux ~alias sttn env path locks (lid : _ loc) smod = - let locks = - match alias with - | Yes_hold_locks -> locks - | No | Yes_walk_locks -> - let vmode = - Env.walk_locks ~loc:lid.loc ~env ~item:Module ~lid:lid.txt - Mode.Value.(legacy |> disallow_right) None locks - in - Mode.Value.submode_exn vmode.mode Mode.Value.legacy; - Env.locks_empty + type_module_path_aux ~alias ~hold_locks sttn env path locks lid smod + +and type_module_path_aux ~alias ~hold_locks sttn env path locks (lid : _ loc) smod = + let held_locks = + let held_locks = (locks, lid.txt, lid.loc) in + if hold_locks then Some held_locks + else + let vmode = + Env.walk_locks ~env ~item:Module Mode.Value.(legacy |> disallow_right) + None held_locks + in + Mode.Value.submode_exn vmode.mode Mode.Value.legacy; + None in - let alias = is_alias alias in let md = { mod_desc = Tmod_ident (path, lid); mod_type = Mty_alias path; mod_env = env; @@ -2867,13 +2917,24 @@ and type_module_path_aux ~alias sttn env path locks (lid : _ loc) smod = { md with mod_type = mty } end in - md, shape, locks + md, shape, held_locks and type_application loc strengthen funct_body env smod = let rec extract_application funct_body env sargs smod = match smod.pmod_desc with +<<<<<<< janestreet/merlin-jst:rae/with-kinds-roll | Pmod_apply (f, sarg) -> let arg, shape = type_module true funct_body None env sarg in +||||||| ocaml-flambda/flambda-backend:4eb95cdd48f3f2f6193e59c53e4640a008a7fd13 + | Pmod_apply(f, sarg) -> + let arg, shape = type_module true funct_body None env sarg in +======= + | Pmod_apply(f, sarg) -> + let arg, shape, held_locks = + type_module_maybe_hold_locks ~hold_locks:true true funct_body None env + sarg + in +>>>>>>> ocaml-flambda/flambda-backend:5.2.0minus-6 let summary = { loc = smod.pmod_loc; attributes = smod.pmod_attributes; @@ -2881,6 +2942,7 @@ and type_application loc strengthen funct_body env smod = arg = Some { is_syntactic_unit = sarg.pmod_desc = Pmod_structure []; arg; + held_locks; path = path_of_module arg; shape; } @@ -2955,14 +3017,22 @@ and type_one_application ~ctx:(apply_loc,sfunct,md_f,args) mod_loc = app_loc }, funct_shape | { loc = app_loc; attributes = app_attributes; - arg = Some { shape = arg_shape; path = arg_path; arg } } -> + arg = Some { shape = arg_shape; path = arg_path; arg; held_locks } } -> let coercion = try Includemod.modtypes ~loc:arg.mod_loc ~mark:Mark_both env arg.mod_type mty_param +<<<<<<< janestreet/merlin-jst:rae/with-kinds-roll ~modes:Legacy with Includemod.Error _ -> Msupport.raise_error (apply_error ()); Tcoerce_none +||||||| ocaml-flambda/flambda-backend:4eb95cdd48f3f2f6193e59c53e4640a008a7fd13 + ~modes:Legacy + with Includemod.Error _ -> apply_error () +======= + ~modes:(Legacy held_locks) + with Includemod.Error _ -> apply_error () +>>>>>>> ocaml-flambda/flambda-backend:5.2.0minus-6 in let mty_appl = match arg_path with @@ -2997,7 +3067,7 @@ and type_one_application ~ctx:(apply_loc,sfunct,md_f,args) begin match Includemod.modtypes ~loc:app_loc ~mark:Mark_neither env mty_res nondep_mty - ~modes:Legacy + ~modes:(Legacy None) with | Tcoerce_none -> () | _ -> @@ -3593,9 +3663,26 @@ let type_toplevel_phrase env sig_acc s = Typecore.optimise_allocations (); (str, sg, (* to_remove_from_sg, *) shape, env) -let type_module_alias = - type_module_maybe_hold_locks ~alias:Yes_hold_locks true false None +let type_module_alias env smod = + let md, shape, held_locks = + type_module_maybe_hold_locks ~alias:true ~hold_locks:true true false + None env smod + in + let locks = + match held_locks with + | None -> Env.locks_empty + | Some (locks, _, _) -> locks + in + md, shape, locks + let type_module = type_module true false None +<<<<<<< janestreet/merlin-jst:rae/with-kinds-roll +||||||| ocaml-flambda/flambda-backend:4eb95cdd48f3f2f6193e59c53e4640a008a7fd13 +let type_structure = type_structure false None +======= +let type_module_maybe_hold_locks = type_module_maybe_hold_locks true false None +let type_structure = type_structure false None +>>>>>>> ocaml-flambda/flambda-backend:5.2.0minus-6 let merlin_type_structure env sig_acc str = let (str, sg, _sg_names, _shape, env) = @@ -3630,9 +3717,7 @@ let type_module_type_of env smod = let tmty = match smod.pmod_desc with | Pmod_ident lid -> (* turn off strengthening in this case *) - let path, md, _ = - Env.lookup_module ~lock:false ~loc:smod.pmod_loc lid.txt env - in + let path, md, _ = Env.lookup_module ~loc:smod.pmod_loc lid.txt env in { mod_desc = Tmod_ident (path, lid); mod_type = md.md_type; mod_env = env; @@ -3695,13 +3780,15 @@ let type_package env m p fl = (* Same as Pexp_letmodule *) (* remember original level *) let outer_scope = Ctype.get_current_level () in - let modl, scope = + let modl, scope, held_locks = Typetexp.TyVarEnv.with_local_scope begin fun () -> (* type the module and create a scope in a raised level *) Ctype.with_local_level begin fun () -> - let modl, _mod_shape = type_module env m in + let modl, _mod_shape, held_locks = + type_module_maybe_hold_locks ~hold_locks:true env m + in let scope = Ctype.create_scope () in - modl, scope + modl, scope, held_locks end end in @@ -3757,7 +3844,9 @@ let type_package env m p fl = with Ctype.Unify _ -> raise (Error(modl.mod_loc, env, Scoping_pack (n,ty)))) fl'; - let modl = wrap_constraint_package env true modl mty Tmodtype_implicit in + let modl = + wrap_constraint_package env true modl held_locks mty Tmodtype_implicit + in modl, fl' (* Fill in the forward declarations *) @@ -3833,8 +3922,7 @@ let check_argument_type_if_given env sourcefile actual_sig arg_module_opt = raise(Error(Location.none, Env.empty, Cannot_find_argument_type arg_module)) in let arg_cmi = Unit_info.Artifact.from_filename arg_filename in - let arg_sig = - Env.read_signature arg_module arg_cmi ~add_binding:false in + let arg_sig = Env.read_signature arg_module arg_cmi in if not (Env.is_parameter_unit arg_module) then raise (Error (Location.none, env, Argument_for_non_parameter (arg_module, arg_filename))); @@ -3928,9 +4016,7 @@ let type_implementation target modulename initial_env ast = let global_name = Compilation_unit.to_global_name_without_prefix modulename in - let dclsig = - Env.read_signature global_name compiled_intf_file ~add_binding:false - in + let dclsig = Env.read_signature global_name compiled_intf_file in if Env.is_parameter_unit global_name then error (Cannot_implement_parameter (cu_name, source_intf)); let arg_type_from_cmi = Env.implemented_parameter global_name in @@ -4111,7 +4197,6 @@ let package_units initial_env objfiles target_cmi modulename = let artifact = Unit_info.Artifact.from_filename f in let sg = Env.read_signature global_name (Unit_info.companion_cmi artifact) - ~add_binding:false in if Unit_info.is_cmi artifact && not(Mtype.no_code_needed_sig (Lazy.force Env.initial) sg) @@ -4141,7 +4226,7 @@ let package_units initial_env objfiles target_cmi modulename = Interface_not_compiled mli)) end; let name = Compilation_unit.to_global_name_without_prefix modulename in - let dclsig = Env.read_signature name target_cmi ~add_binding:false in + let dclsig = Env.read_signature name target_cmi in let cc, _shape = Includemod.compunit initial_env ~mark:Mark_both "(obtained by packing)" sg mli dclsig shape diff --git a/src/ocaml/typing/typeopt.ml b/src/ocaml/typing/typeopt.ml index 8fbfc9bfc..c658a6159 100644 --- a/src/ocaml/typing/typeopt.ml +++ b/src/ocaml/typing/typeopt.ml @@ -71,7 +71,7 @@ let is_base_type env ty base_ty_path = | _ -> false let is_always_gc_ignorable env ty = - let ext : Jkind.Externality.t = + let ext : Jkind_axis.Externality.t = (* We check that we're compiling to (64-bit) native code before counting External64 types as gc_ignorable, because bytecode is intended to be platform independent. *) diff --git a/src/ocaml/typing/types.ml b/src/ocaml/typing/types.ml index 57fe18bd2..1c42915d3 100644 --- a/src/ocaml/typing/types.ml +++ b/src/ocaml/typing/types.ml @@ -317,7 +317,8 @@ and type_decl_kind = (label_declaration, label_declaration, constructor_declaration) type_kind and unsafe_mode_crossing = - { modal_upper_bounds : Mode.Alloc.Const.t } + { modal_upper_bounds : Mode.Alloc.Comonadic.Const.t; + modal_lower_bounds : Mode.Alloc.Monadic.Const.t } and ('lbl, 'lbl_flat, 'cstr) type_kind = Type_abstract of type_origin @@ -885,6 +886,16 @@ let flat_element_to_lowercase_string = function | Vec128 -> "vec128" | Word -> "word" +let equal_unsafe_mode_crossing umc1 umc2 = + let { modal_upper_bounds = mub1; + modal_lower_bounds = mlb1 } = umc1 in + let { modal_upper_bounds = mub2; + modal_lower_bounds = mlb2 } = umc2 in + Mode.Alloc.Comonadic.Const.le mub1 mub2 + && Mode.Alloc.Comonadic.Const.le mub2 mub1 + && Mode.Alloc.Monadic.Const.le mlb1 mlb2 + && Mode.Alloc.Monadic.Const.le mlb2 mlb1 + (**** Definitions for backtracking ****) type change = diff --git a/src/ocaml/typing/types.mli b/src/ocaml/typing/types.mli index bf15c7604..ab6529f61 100644 --- a/src/ocaml/typing/types.mli +++ b/src/ocaml/typing/types.mli @@ -640,7 +640,8 @@ type type_declaration = and type_decl_kind = (label_declaration, label_declaration, constructor_declaration) type_kind and unsafe_mode_crossing = - { modal_upper_bounds : Mode.Alloc.Const.t } + { modal_upper_bounds : Mode.Alloc.Comonadic.Const.t; + modal_lower_bounds : Mode.Alloc.Monadic.Const.t } and ('lbl, 'lbl_flat, 'cstr) type_kind = Type_abstract of type_origin @@ -1060,6 +1061,9 @@ val compare_flat_element : flat_element -> flat_element -> int val flat_element_to_string : flat_element -> string val flat_element_to_lowercase_string : flat_element -> string +val equal_unsafe_mode_crossing : + unsafe_mode_crossing -> unsafe_mode_crossing -> bool + (**** Utilities for backtracking ****) type snapshot diff --git a/src/ocaml/typing/uniqueness_analysis.ml b/src/ocaml/typing/uniqueness_analysis.ml index ea09aff23..b3678df80 100644 --- a/src/ocaml/typing/uniqueness_analysis.ml +++ b/src/ocaml/typing/uniqueness_analysis.ml @@ -1932,7 +1932,7 @@ and pattern_match_single pat paths : Ienv.Extension.t * UF.t = Ienv.Extension.disjunct ext0 ext1, UF.choose uf0 uf1 | Tpat_any -> Ienv.Extension.empty, UF.unused | Tpat_var (id, _, _, _) -> Ienv.Extension.singleton id paths, UF.unused - | Tpat_alias (pat', id, _, _, _) -> + | Tpat_alias (pat', id, _, _, _, _) -> let ext0 = Ienv.Extension.singleton id paths in let ext1, uf = pattern_match_single pat' paths in Ienv.Extension.conjunct ext0 ext1, uf diff --git a/src/ocaml/typing/untypeast.ml b/src/ocaml/typing/untypeast.ml index dee3f401e..2496c6c1f 100644 --- a/src/ocaml/typing/untypeast.ml +++ b/src/ocaml/typing/untypeast.ml @@ -351,11 +351,11 @@ let pattern : type k . _ -> k T.general_pattern -> _ = fun sub pat -> The compiler transforms (x:t) into (_ as x : t). This avoids transforming a warning 27 into a 26. *) - | Tpat_alias ({pat_desc = Tpat_any; pat_loc}, _id, name, _uid, _mode) + | Tpat_alias ({pat_desc = Tpat_any; pat_loc}, _id, name, _uid, _mode, _ty) when pat_loc = pat.pat_loc -> Ppat_var name - | Tpat_alias (pat, _id, name, _uid, _mode) -> + | Tpat_alias (pat, _id, name, _uid, _mode, _ty) -> Ppat_alias (sub.pat sub pat, name) | Tpat_constant cst -> Ppat_constant (constant cst) | Tpat_tuple list -> @@ -1010,7 +1010,7 @@ let core_type sub ct = let class_structure sub cs = let rec remove_self = function - | { pat_desc = Tpat_alias (p, id, _s, _uid, _mode) } + | { pat_desc = Tpat_alias (p, id, _s, _uid, _mode, _ty) } when string_is_prefix "selfpat-" (Ident.name id) -> remove_self p | p -> p @@ -1040,7 +1040,7 @@ let object_field sub {of_loc; of_desc; of_attributes;} = Of.mk ~loc ~attrs desc and is_self_pat = function - | { pat_desc = Tpat_alias(_pat, id, _, _uid, _mode) } -> + | { pat_desc = Tpat_alias(_pat, id, _, _uid, _mode, _ty) } -> string_is_prefix "self-" (Ident.name id) | _ -> false diff --git a/src/ocaml/typing/value_rec_check.ml b/src/ocaml/typing/value_rec_check.ml index f3f27e7e9..a8468353c 100644 --- a/src/ocaml/typing/value_rec_check.ml +++ b/src/ocaml/typing/value_rec_check.ml @@ -1461,7 +1461,7 @@ and is_destructuring_pattern : type k . k general_pattern -> bool = fun pat -> match pat.pat_desc with | Tpat_any -> false | Tpat_var (_, _, _, _) -> false - | Tpat_alias (pat, _, _, _, _) -> is_destructuring_pattern pat + | Tpat_alias (pat, _, _, _, _, _) -> is_destructuring_pattern pat | Tpat_constant _ -> true | Tpat_tuple _ -> true | Tpat_unboxed_tuple _ -> true From 8dc5f913a6fff44df57002b064bc5d33abaf3b23 Mon Sep 17 00:00:00 2001 From: Richard Eisenberg Date: Thu, 13 Feb 2025 15:03:38 -0500 Subject: [PATCH 11/25] Resolve conflicts --- src/ocaml/typing/env.ml | 34 +-- src/ocaml/typing/jkind.ml | 324 +--------------------------- src/ocaml/typing/jkind.mli | 6 - src/ocaml/typing/oprint.ml | 10 +- src/ocaml/typing/persistent_env.ml | 78 +------ src/ocaml/typing/persistent_env.mli | 26 +-- src/ocaml/typing/tast_mapper.ml | 8 - src/ocaml/typing/typedtree.ml | 10 +- src/ocaml/typing/typemod.ml | 110 +--------- 9 files changed, 31 insertions(+), 575 deletions(-) diff --git a/src/ocaml/typing/env.ml b/src/ocaml/typing/env.ml index d2960d969..80a6f167c 100644 --- a/src/ocaml/typing/env.ml +++ b/src/ocaml/typing/env.ml @@ -1220,30 +1220,12 @@ let runtime_parameter_bindings () = let parameters () = Persistent_env.parameters !persistent_env -<<<<<<< janestreet/merlin-jst:rae/with-kinds-roll -let read_pers_mod modname cmi ~add_binding = - Persistent_env.read !persistent_env read_sign_of_cmi short_paths_components - modname cmi ~add_binding -||||||| ocaml-flambda/flambda-backend:4eb95cdd48f3f2f6193e59c53e4640a008a7fd13 -let read_pers_mod modname cmi ~add_binding = - Persistent_env.read !persistent_env read_sign_of_cmi modname cmi - ~add_binding -======= let read_pers_mod modname cmi = - Persistent_env.read !persistent_env modname cmi ->>>>>>> ocaml-flambda/flambda-backend:5.2.0minus-6 + Persistent_env.read !persistent_env short_paths_components modname cmi -<<<<<<< janestreet/merlin-jst:rae/with-kinds-roll -let find_pers_mod name = - Persistent_env.find !persistent_env - read_sign_of_cmi short_paths_components name -||||||| ocaml-flambda/flambda-backend:4eb95cdd48f3f2f6193e59c53e4640a008a7fd13 -let find_pers_mod name = - Persistent_env.find !persistent_env read_sign_of_cmi name -======= let find_pers_mod name ~allow_excess_args = - Persistent_env.find !persistent_env read_sign_of_cmi name ~allow_excess_args ->>>>>>> ocaml-flambda/flambda-backend:5.2.0minus-6 + Persistent_env.find !persistent_env + read_sign_of_cmi short_paths_components name ~allow_excess_args let check_pers_mod ~loc name = Persistent_env.check !persistent_env @@ -4449,23 +4431,13 @@ let sharedness_hint ppf : shared_context -> _ = function because it is defined outside of the probe.@]" let print_lock_item ppf (item, lid) = -<<<<<<< janestreet/merlin-jst:rae/with-kinds-roll match (item : lock_item) with - | Module -> fprintf ppf "Modules are" - | Class -> fprintf ppf "Classes are" -||||||| ocaml-flambda/flambda-backend:4eb95cdd48f3f2f6193e59c53e4640a008a7fd13 - match item with - | Module -> fprintf ppf "Modules are" - | Class -> fprintf ppf "Classes are" -======= - match item with | Module -> fprintf ppf "%a is a module, and modules are always" (Style.as_inline_code !print_longident) lid | Class -> fprintf ppf "%a is a class, and classes are always" (Style.as_inline_code !print_longident) lid ->>>>>>> ocaml-flambda/flambda-backend:5.2.0minus-6 | Value -> fprintf ppf "The value %a is" (Style.as_inline_code !print_longident) lid diff --git a/src/ocaml/typing/jkind.ml b/src/ocaml/typing/jkind.ml index 6bc4a4e9b..46d6fe190 100644 --- a/src/ocaml/typing/jkind.ml +++ b/src/ocaml/typing/jkind.ml @@ -54,7 +54,7 @@ module Sub_result = struct | Less | Not_le of Sub_failure_reason.t Nonempty_list.t - let of_le_result ~failure_reason (le_result : Misc.Le_result.t) = + let of_le_result ~failure_reason (le_result : Le_result.t) = match le_result with | Less -> Less | Equal -> Equal @@ -270,63 +270,8 @@ module Layout = struct | Any, Any -> true | (Any | Sort _ | Product _), _ -> false -<<<<<<< janestreet/merlin-jst:rae/with-kinds-roll - let rec sub t1 t2 : Le_result.t = - match t1, t2 with - | Any, Any -> Equal - | _, Any -> Less - | Any, _ -> Not_le - | Sort s1, Sort s2 -> if Sort.equate s1 s2 then Equal else Not_le - | Product ts1, Product ts2 -> - if List.compare_lengths ts1 ts2 = 0 - then Le_result.combine_list (List.map2 sub ts1 ts2) - else Not_le - | Product ts1, Sort s2 -> ( - (* This case could use [to_product_sort] because every component will need - to end up less than a sort (so, no [any]), but it seems easier to keep - this case lined up with the inverse case, which definitely cannot use - [to_product_sort]. *) - match Sort.decompose_into_product s2 (List.length ts1) with - | None -> Not_le - | Some ss2 -> - Misc_stdlib.Le_result.combine_list - (List.map2 (fun t1 s2 -> sub t1 (Sort s2)) ts1 ss2)) - | Sort s1, Product ts2 -> ( - match Sort.decompose_into_product s1 (List.length ts2) with - | None -> Not_le - | Some ss1 -> - Misc_stdlib.Le_result.combine_list - (List.map2 (fun s1 t2 -> sub (Sort s1) t2) ss1 ts2)) -||||||| ocaml-flambda/flambda-backend:4eb95cdd48f3f2f6193e59c53e4640a008a7fd13 - let rec sub t1 t2 : Misc.Le_result.t = - match t1, t2 with - | Any, Any -> Equal - | _, Any -> Less - | Any, _ -> Not_le - | Sort s1, Sort s2 -> if Sort.equate s1 s2 then Equal else Not_le - | Product ts1, Product ts2 -> - if List.compare_lengths ts1 ts2 = 0 - then Misc.Le_result.combine_list (List.map2 sub ts1 ts2) - else Not_le - | Product ts1, Sort s2 -> ( - (* This case could use [to_product_sort] because every component will need - to end up less than a sort (so, no [any]), but it seems easier to keep - this case lined up with the inverse case, which definitely cannot use - [to_product_sort]. *) - match Sort.decompose_into_product s2 (List.length ts1) with - | None -> Not_le - | Some ss2 -> - Misc.Le_result.combine_list - (List.map2 (fun t1 s2 -> sub t1 (Sort s2)) ts1 ss2)) - | Sort s1, Product ts2 -> ( - match Sort.decompose_into_product s1 (List.length ts2) with - | None -> Not_le - | Some ss1 -> - Misc.Le_result.combine_list - (List.map2 (fun s1 t2 -> sub (Sort s1) t2) ss1 ts2)) -======= let sub t1 t2 = - let rec sub t1 t2 : Misc.Le_result.t = + let rec sub t1 t2 : Le_result.t = match t1, t2 with | Any, Any -> Equal | _, Any -> Less @@ -334,7 +279,7 @@ module Layout = struct | Sort s1, Sort s2 -> if Sort.equate s1 s2 then Equal else Not_le | Product ts1, Product ts2 -> if List.compare_lengths ts1 ts2 = 0 - then Misc.Le_result.combine_list (List.map2 sub ts1 ts2) + then Le_result.combine_list (List.map2 sub ts1 ts2) else Not_le | Product ts1, Sort s2 -> ( (* This case could use [to_product_sort] because every component will need @@ -344,18 +289,17 @@ module Layout = struct match Sort.decompose_into_product s2 (List.length ts1) with | None -> Not_le | Some ss2 -> - Misc.Le_result.combine_list + Le_result.combine_list (List.map2 (fun t1 s2 -> sub t1 (Sort s2)) ts1 ss2)) | Sort s1, Product ts2 -> ( match Sort.decompose_into_product s1 (List.length ts2) with | None -> Not_le | Some ss1 -> - Misc.Le_result.combine_list + Le_result.combine_list (List.map2 (fun s1 t2 -> sub (Sort s1) t2) ss1 ts2)) in Sub_result.of_le_result (sub t1 t2) ~failure_reason:(fun () -> [Layout_disagreement]) ->>>>>>> ocaml-flambda/flambda-backend:5.2.0minus-6 let rec intersection t1 t2 = (* pre-condition to [products]: [ts1] and [ts2] have the same length *) @@ -703,208 +647,6 @@ module With_bounds = struct | With_bounds tys -> With_bounds (add_bound type_expr { relevant_axes } tys) end -<<<<<<< janestreet/merlin-jst:rae/with-kinds-roll -module Mod_bounds = struct - include Types.Jkind_mod_bounds - - let debug_print ppf - { locality; - linearity; - uniqueness; - portability; - contention; - yielding; - externality; - nullability - } = - Format.fprintf ppf - "@[{ locality = %a;@ linearity = %a;@ uniqueness = %a;@ portability = \ - %a;@ contention = %a;@ yielding = %a;@ externality = %a;@ nullability = \ - %a }@]" - Mode.Locality.Const.print locality Mode.Linearity.Const.print linearity - Mode.Uniqueness.Const.print uniqueness Mode.Portability.Const.print - portability Mode.Contention.Const.print contention - Mode.Yielding.Const.print yielding Externality.print externality - Nullability.print nullability - - let min = - Create.f - { f = - (fun (type axis) ~(axis : axis Axis.t) -> - let (module Bound_ops) = Axis.get axis in - Bound_ops.min) - } - - let max = - Create.f - { f = - (fun (type axis) ~(axis : axis Axis.t) -> - let (module Bound_ops) = Axis.get axis in - Bound_ops.max) - } - - let simple ~locality ~linearity ~uniqueness ~portability ~contention ~yielding - ~externality ~nullability = - { locality; - linearity; - uniqueness; - portability; - contention; - yielding; - externality; - nullability - } - - let join = - Map2.f - { f = - (fun (type axis) ~(axis : axis Axis.t) -> - let (module Bound_ops) = Axis.get axis in - Bound_ops.join) - } - - let meet = - Map2.f - { f = - (fun (type axis) ~(axis : axis Axis.t) -> - let (module Bound_ops) = Axis.get axis in - Bound_ops.meet) - } - - let less_or_equal = - Fold2.f - { f = - (fun (type axis) ~(axis : axis Axis.t) -> - let (module Bound_ops) = Axis.get axis in - Bound_ops.less_or_equal) - } - ~combine:Le_result.combine - - let equal = - Fold2.f - { f = - (fun (type axis) ~(axis : axis Axis.t) -> - let (module Bound_ops) = Axis.get axis in - Bound_ops.equal) - } - ~combine:( && ) - - (** Get all axes that are set to max *) - let get_max_axes t = - Axis_set.create ~f:(fun ~axis:(Pack axis) -> - let (module Axis_ops) = Axis.get axis in - let bound = get ~axis t in - Axis_ops.le Axis_ops.max bound) - - let for_arrow = - simple ~linearity:Linearity.Const.max ~locality:Locality.Const.max - ~uniqueness:Uniqueness.Const.min ~portability:Portability.Const.max - ~contention:Contention.Const.min ~yielding:Yielding.Const.max - ~externality:Externality.max ~nullability:Nullability.Non_null -end - -||||||| ocaml-flambda/flambda-backend:4eb95cdd48f3f2f6193e59c53e4640a008a7fd13 -module Mod_bounds = struct - include Types.Jkind_mod_bounds - - let debug_print ppf - { locality; - linearity; - uniqueness; - portability; - contention; - yielding; - externality; - nullability - } = - Format.fprintf ppf - "@[{ locality = %a;@ linearity = %a;@ uniqueness = %a;@ portability = \ - %a;@ contention = %a;@ yielding = %a;@ externality = %a;@ nullability = \ - %a }@]" - Mode.Locality.Const.print locality Mode.Linearity.Const.print linearity - Mode.Uniqueness.Const.print uniqueness Mode.Portability.Const.print - portability Mode.Contention.Const.print contention - Mode.Yielding.Const.print yielding Externality.print externality - Nullability.print nullability - - let min = - Create.f - { f = - (fun (type axis) ~(axis : axis Axis.t) -> - let (module Bound_ops) = Axis.get axis in - Bound_ops.min) - } - - let max = - Create.f - { f = - (fun (type axis) ~(axis : axis Axis.t) -> - let (module Bound_ops) = Axis.get axis in - Bound_ops.max) - } - - let simple ~locality ~linearity ~uniqueness ~portability ~contention ~yielding - ~externality ~nullability = - { locality; - linearity; - uniqueness; - portability; - contention; - yielding; - externality; - nullability - } - - let join = - Map2.f - { f = - (fun (type axis) ~(axis : axis Axis.t) -> - let (module Bound_ops) = Axis.get axis in - Bound_ops.join) - } - - let meet = - Map2.f - { f = - (fun (type axis) ~(axis : axis Axis.t) -> - let (module Bound_ops) = Axis.get axis in - Bound_ops.meet) - } - - let less_or_equal = - Fold2.f - { f = - (fun (type axis) ~(axis : axis Axis.t) -> - let (module Bound_ops) = Axis.get axis in - Bound_ops.less_or_equal) - } - ~combine:Misc.Le_result.combine - - let equal = - Fold2.f - { f = - (fun (type axis) ~(axis : axis Axis.t) -> - let (module Bound_ops) = Axis.get axis in - Bound_ops.equal) - } - ~combine:( && ) - - (** Get all axes that are set to max *) - let get_max_axes t = - Axis_set.create ~f:(fun ~axis:(Pack axis) -> - let (module Axis_ops) = Axis.get axis in - let bound = get ~axis t in - Axis_ops.le Axis_ops.max bound) - - let for_arrow = - simple ~linearity:Linearity.Const.max ~locality:Locality.Const.max - ~uniqueness:Uniqueness.Const.min ~portability:Portability.Const.max - ~contention:Contention.Const.min ~yielding:Yielding.Const.max - ~externality:Externality.max ~nullability:Nullability.Non_null -end - -======= ->>>>>>> ocaml-flambda/flambda-backend:5.2.0minus-6 module Layout_and_axes = struct module Allow_disallow = Allowance.Magic_allow_disallow (struct type (_, 'layout, 'd) sided = ('layout, 'd) layout_and_axes @@ -1779,13 +1521,7 @@ module Jkind_desc = struct Mod_bounds.t * (l2 * r2) with_bounds * Fuel_status.t = function (* early cutoff *) | _ -<<<<<<< janestreet/merlin-jst:rae/with-kinds-roll - when Le_result.is_le -||||||| ocaml-flambda/flambda-backend:4eb95cdd48f3f2f6193e59c53e4640a008a7fd13 - when Misc.Le_result.is_le -======= when Sub_result.is_le ->>>>>>> ocaml-flambda/flambda-backend:5.2.0minus-6 (Mod_bounds.less_or_equal Mod_bounds.max bounds_so_far) -> (* CR layouts v2.8: we can do better by early-terminating on a per-axis basis *) bounds_so_far, No_with_bounds, Sufficient_fuel @@ -1887,13 +1623,7 @@ module Jkind_desc = struct in let layout = Layout.sub lay1 lay2 in let bounds = Mod_bounds.less_or_equal bounds1 bounds2 in -<<<<<<< janestreet/merlin-jst:rae/with-kinds-roll - Le_result.combine layout bounds -||||||| ocaml-flambda/flambda-backend:4eb95cdd48f3f2f6193e59c53e4640a008a7fd13 - Misc.Le_result.combine layout bounds -======= Sub_result.combine layout bounds ->>>>>>> ocaml-flambda/flambda-backend:5.2.0minus-6 let intersection { layout = lay1; mod_bounds = mod_bounds1; with_bounds = with_bounds1 } @@ -2893,16 +2623,8 @@ module Violation = struct let report_general preamble pp_former former ppf t = let mismatch_type = match t.violation with -<<<<<<< janestreet/merlin-jst:rae/with-kinds-roll - | Not_a_subjkind (k1, k2) -> - if Le_result.is_le (Layout.sub k1.jkind.layout k2.jkind.layout) -||||||| ocaml-flambda/flambda-backend:4eb95cdd48f3f2f6193e59c53e4640a008a7fd13 - | Not_a_subjkind (k1, k2) -> - if Misc.Le_result.is_le (Layout.sub k1.jkind.layout k2.jkind.layout) -======= | Not_a_subjkind (k1, k2, _) -> if Sub_result.is_le (Layout.sub k1.jkind.layout k2.jkind.layout) ->>>>>>> ocaml-flambda/flambda-backend:5.2.0minus-6 then Mode else Layout | No_intersection _ -> Layout @@ -3098,13 +2820,7 @@ let sub_with_reason ~type_equal ~jkind_of_type sub super = Sub_result.require_le (check_sub ~type_equal ~jkind_of_type sub super) let sub ~type_equal ~jkind_of_type sub super = -<<<<<<< janestreet/merlin-jst:rae/with-kinds-roll - Le_result.is_le (check_sub ~type_equal ~jkind_of_type sub super) -||||||| ocaml-flambda/flambda-backend:4eb95cdd48f3f2f6193e59c53e4640a008a7fd13 - Misc.Le_result.is_le (check_sub ~type_equal ~jkind_of_type sub super) -======= Result.is_ok (sub_with_reason ~type_equal ~jkind_of_type sub super) ->>>>>>> ocaml-flambda/flambda-backend:5.2.0minus-6 type sub_or_intersect = | Sub @@ -3128,35 +2844,6 @@ let sub_jkind_l ~type_equal ~jkind_of_type ?(allow_any_crossing = false) sub super = (* This function implements the "SUB" judgement from kind-inference.md. *) let open Misc.Stdlib.Monad.Result.Syntax in -<<<<<<< janestreet/merlin-jst:rae/with-kinds-roll - let require_le le_result = - match Le_result.is_le le_result with - | true -> Ok () - | false -> - (* When we report an error, we want to show the best-normalized version of sub, but - the original super. When this check fails, it is usually the case that the super - was written by the user and the sub was inferred. Thus, we should display the - user-written jkind, but simplify the inferred one, since the inferred one is - probably overly complex. *) - (* CR layouts v2.8: It would be useful report to the user why this - violation occurred, specifically which axes the violation is along. *) - let best_sub = normalize ~mode:Require_best ~jkind_of_type sub in - Error (Violation.of_ (Not_a_subjkind (best_sub, super))) -||||||| ocaml-flambda/flambda-backend:4eb95cdd48f3f2f6193e59c53e4640a008a7fd13 - let require_le le_result = - match Misc.Le_result.is_le le_result with - | true -> Ok () - | false -> - (* When we report an error, we want to show the best-normalized version of sub, but - the original super. When this check fails, it is usually the case that the super - was written by the user and the sub was inferred. Thus, we should display the - user-written jkind, but simplify the inferred one, since the inferred one is - probably overly complex. *) - (* CR layouts v2.8: It would be useful report to the user why this - violation occurred, specifically which axes the violation is along. *) - let best_sub = normalize ~mode:Require_best ~jkind_of_type sub in - Error (Violation.of_ (Not_a_subjkind (best_sub, super))) -======= let require_le sub_result = Sub_result.require_le sub_result |> Result.map_error (fun reasons -> @@ -3170,7 +2857,6 @@ let sub_jkind_l ~type_equal ~jkind_of_type ?(allow_any_crossing = false) sub let best_sub = normalize ~mode:Require_best ~jkind_of_type sub in Violation.of_ (Not_a_subjkind (best_sub, super, Nonempty_list.to_list reasons))) ->>>>>>> ocaml-flambda/flambda-backend:5.2.0minus-6 in let* () = (* Validate layouts *) diff --git a/src/ocaml/typing/jkind.mli b/src/ocaml/typing/jkind.mli index 076388c6c..5ef9e9a05 100644 --- a/src/ocaml/typing/jkind.mli +++ b/src/ocaml/typing/jkind.mli @@ -103,13 +103,7 @@ module Layout : sig val of_const : Const.t -> Sort.t t -<<<<<<< janestreet/merlin-jst:rae/with-kinds-roll - val sub : Sort.t t -> Sort.t t -> Misc_stdlib.Le_result.t -||||||| ocaml-flambda/flambda-backend:4eb95cdd48f3f2f6193e59c53e4640a008a7fd13 - val sub : Sort.t t -> Sort.t t -> Misc.Le_result.t -======= val sub : Sort.t t -> Sort.t t -> Sub_result.t ->>>>>>> ocaml-flambda/flambda-backend:5.2.0minus-6 end (** A Jkind.t is a full description of the runtime representation of values diff --git a/src/ocaml/typing/oprint.ml b/src/ocaml/typing/oprint.ml index 9628be755..823d787c9 100644 --- a/src/ocaml/typing/oprint.ml +++ b/src/ocaml/typing/oprint.ml @@ -642,21 +642,13 @@ and print_out_jkind_const ppf ojkind = | Ojkind_const_default -> fprintf ppf "_" | Ojkind_const_abbreviation abbrev -> fprintf ppf "%s" abbrev | Ojkind_const_mod (base, modes) -> -<<<<<<< janestreet/merlin-jst:rae/with-kinds-roll - Misc_stdlib.pp_parens_if nested (fun ppf (base, modes) -> - fprintf ppf "%a mod @[%a@]" (pp_element ~nested:true) base -||||||| ocaml-flambda/flambda-backend:4eb95cdd48f3f2f6193e59c53e4640a008a7fd13 - Misc.pp_parens_if nested (fun ppf (base, modes) -> - fprintf ppf "%a mod @[%a@]" (pp_element ~nested:true) base -======= let pp_base ppf base = match base with | Some base -> fprintf ppf "%a " (pp_element ~nested:true) base | None -> () in - Misc.pp_parens_if nested (fun ppf (base, modes) -> + Misc_stdlib.pp_parens_if nested (fun ppf (base, modes) -> fprintf ppf "%amod @[%a@]" pp_base base ->>>>>>> ocaml-flambda/flambda-backend:5.2.0minus-6 (pp_print_list ~pp_sep:(fun ppf () -> fprintf ppf "@ ") (fun ppf -> fprintf ppf "%s")) diff --git a/src/ocaml/typing/persistent_env.ml b/src/ocaml/typing/persistent_env.ml index 828c37d34..fd0a81837 100644 --- a/src/ocaml/typing/persistent_env.ml +++ b/src/ocaml/typing/persistent_env.ml @@ -860,13 +860,7 @@ type 'a sig_reader = (* Add a persistent structure to the hash table and bind it in the [Env]. Checks that OCaml source is allowed to refer to this module. *) -<<<<<<< janestreet/merlin-jst:rae/with-kinds-roll -let acknowledge_pers_struct penv short_path_comps modname pers_name val_of_pers_sig = -||||||| ocaml-flambda/flambda-backend:4eb95cdd48f3f2f6193e59c53e4640a008a7fd13 -let acknowledge_pers_struct penv modname pers_name val_of_pers_sig = -======= -let acknowledge_new_pers_struct penv modname pers_name val_of_pers_sig = ->>>>>>> ocaml-flambda/flambda-backend:5.2.0minus-6 +let acknowledge_new_pers_struct penv short_path_comps modname pers_name val_of_pers_sig = let {persistent_structures; _} = penv in let import = pers_name.pn_import in let global = pers_name.pn_global in @@ -919,22 +913,7 @@ let acknowledge_new_pers_struct penv modname pers_name val_of_pers_sig = register_pers_for_short_paths penv modname ps (short_path_comps modname pm); ps -<<<<<<< janestreet/merlin-jst:rae/with-kinds-roll -let read_pers_struct penv val_of_pers_sig short_path_comps check modname cmi ~add_binding = - let pers_name = read_pers_name penv check modname cmi in - if add_binding then - ignore - (acknowledge_pers_struct penv short_path_comps modname pers_name val_of_pers_sig - : _ pers_struct_info); -||||||| ocaml-flambda/flambda-backend:4eb95cdd48f3f2f6193e59c53e4640a008a7fd13 -let read_pers_struct penv val_of_pers_sig check modname cmi ~add_binding = - let pers_name = read_pers_name penv check modname cmi in - if add_binding then - ignore - (acknowledge_pers_struct penv modname pers_name val_of_pers_sig - : _ pers_struct_info); -======= -let acknowledge_pers_struct penv modname pers_name val_of_pers_sig = +let acknowledge_pers_struct penv modname pers_name val_of_pers_sig short_path_comps = (* This is the same dance that [acknowledge_pers_name] does. See comments there. *) let {persistent_structures; _} = penv in @@ -943,7 +922,7 @@ let acknowledge_pers_struct penv modname pers_name val_of_pers_sig = match Hashtbl.find_opt persistent_structures canonical_modname with | Some ps -> ps | None -> - acknowledge_new_pers_struct penv canonical_modname pers_name + acknowledge_new_pers_struct penv short_path_comps canonical_modname pers_name val_of_pers_sig in if not (Global_module.Name.equal modname canonical_modname) then @@ -954,33 +933,18 @@ let read_pers_struct penv check modname cmi = let pers_name = read_pers_name penv check modname cmi ~allow_excess_args:false in ->>>>>>> ocaml-flambda/flambda-backend:5.2.0minus-6 pers_name.pn_sign -<<<<<<< janestreet/merlin-jst:rae/with-kinds-roll -let find_pers_struct ~allow_hidden penv val_of_pers_sig short_path_comps check name = -||||||| ocaml-flambda/flambda-backend:4eb95cdd48f3f2f6193e59c53e4640a008a7fd13 -let find_pers_struct ~allow_hidden penv val_of_pers_sig check name = -======= let find_pers_struct - ~allow_hidden penv val_of_pers_sig ~check name ~allow_excess_args = ->>>>>>> ocaml-flambda/flambda-backend:5.2.0minus-6 + ~allow_hidden penv val_of_pers_sig short_path_comps ~check name ~allow_excess_args = let {persistent_structures; _} = penv in match Hashtbl.find persistent_structures name with | ps -> check_visibility ~allow_hidden ps.ps_name_info.pn_import; ps | exception Not_found -> -<<<<<<< janestreet/merlin-jst:rae/with-kinds-roll - let pers_name = find_pers_name ~allow_hidden penv check name in - acknowledge_pers_struct penv short_path_comps name pers_name val_of_pers_sig -||||||| ocaml-flambda/flambda-backend:4eb95cdd48f3f2f6193e59c53e4640a008a7fd13 - let pers_name = find_pers_name ~allow_hidden penv check name in - acknowledge_pers_struct penv name pers_name val_of_pers_sig -======= let pers_name = find_pers_name ~allow_hidden penv ~check name ~allow_excess_args in - acknowledge_pers_struct penv name pers_name val_of_pers_sig ->>>>>>> ocaml-flambda/flambda-backend:5.2.0minus-6 + acknowledge_pers_struct penv short_path_comps name pers_name val_of_pers_sig let describe_prefix ppf prefix = if CU.Prefix.is_empty prefix then @@ -993,14 +957,8 @@ module Style = Misc.Style let check_pers_struct ~allow_hidden penv f1 f2 ~loc name = let name_as_string = CU.Name.to_string (CU.Name.of_head_of_global_name name) in try -<<<<<<< janestreet/merlin-jst:rae/with-kinds-roll - ignore (find_pers_struct ~allow_hidden penv f1 f2 false name) -||||||| ocaml-flambda/flambda-backend:4eb95cdd48f3f2f6193e59c53e4640a008a7fd13 - ignore (find_pers_struct ~allow_hidden penv f false name) -======= - ignore (find_pers_struct ~allow_hidden penv f ~check:false name + ignore (find_pers_struct ~allow_hidden penv f1 f2 ~check:false name ~allow_excess_args:true) ->>>>>>> ocaml-flambda/flambda-backend:5.2.0minus-6 with | Not_found -> let warn = Warnings.No_cmi_file(name_as_string, None) in @@ -1042,33 +1000,13 @@ let check_pers_struct ~allow_hidden penv f1 f2 ~loc name = let warn = Warnings.No_cmi_file(name_as_string, Some msg) in Location.prerr_warning loc warn -<<<<<<< janestreet/merlin-jst:rae/with-kinds-roll -||||||| ocaml-flambda/flambda-backend:4eb95cdd48f3f2f6193e59c53e4640a008a7fd13 -let read penv f modname a ~add_binding = - read_pers_struct penv f true modname a ~add_binding - -let find ~allow_hidden penv f name = - (find_pers_struct ~allow_hidden penv f true name).ps_val - -let check ~allow_hidden penv f ~loc name = - let {persistent_structures; _} = penv in -======= let read penv modname a = read_pers_struct penv true modname a -let find ~allow_hidden penv f name ~allow_excess_args = - (find_pers_struct ~allow_hidden ~allow_excess_args penv f ~check:true +let find ~allow_hidden penv f1 f2 name ~allow_excess_args = + (find_pers_struct ~allow_hidden ~allow_excess_args penv f1 f2 ~check:true name).ps_val -let check ~allow_hidden penv f ~loc name = - let {persistent_structures; _} = penv in ->>>>>>> ocaml-flambda/flambda-backend:5.2.0minus-6 -let read penv f1 f2 modname a ~add_binding = - read_pers_struct penv f1 f2 true modname a ~add_binding - -let find ~allow_hidden penv f1 f2 name = - (find_pers_struct ~allow_hidden penv f1 f2 true name).ps_val - let check ~allow_hidden penv f1 f2 ~loc name = let {persistent_structures; _} = penv in if not (Hashtbl.mem persistent_structures name) then begin diff --git a/src/ocaml/typing/persistent_env.mli b/src/ocaml/typing/persistent_env.mli index be1d8b35e..2b80c09da 100644 --- a/src/ocaml/typing/persistent_env.mli +++ b/src/ocaml/typing/persistent_env.mli @@ -104,34 +104,14 @@ type 'a sig_reader = -> flags:Cmi_format.pers_flags list -> 'a -<<<<<<< janestreet/merlin-jst:rae/with-kinds-roll -(* If [add_binding] is false, reads the signature from the .cmi but does not - bind the module name in the environment. *) -(* CR-someday lmaurer: [add_binding] is apparently always false, including in the - [-instantiate] branch. We should remove this parameter. *) -val read : 'a t -> 'a sig_reader +val read : 'a t -> (Global_module.Name.t -> 'a -> Short_paths.Desc.Module.components Lazy.t) - -> Global_module.Name.t -> Unit_info.Artifact.t -> add_binding:bool -||||||| ocaml-flambda/flambda-backend:4eb95cdd48f3f2f6193e59c53e4640a008a7fd13 -(* If [add_binding] is false, reads the signature from the .cmi but does not - bind the module name in the environment. *) -(* CR-someday lmaurer: [add_binding] is apparently always false, including in the - [-instantiate] branch. We should remove this parameter. *) -val read : 'a t -> 'a sig_reader - -> Global_module.Name.t -> Unit_info.Artifact.t -> add_binding:bool -======= -val read : 'a t -> Global_module.Name.t -> Unit_info.Artifact.t ->>>>>>> ocaml-flambda/flambda-backend:5.2.0minus-6 + -> Global_module.Name.t -> Unit_info.Artifact.t -> Subst.Lazy.signature + val find : allow_hidden:bool -> 'a t -> 'a sig_reader -<<<<<<< janestreet/merlin-jst:rae/with-kinds-roll -> (Global_module.Name.t -> 'a -> Short_paths.Desc.Module.components Lazy.t) - -> Global_module.Name.t -> 'a -||||||| ocaml-flambda/flambda-backend:4eb95cdd48f3f2f6193e59c53e4640a008a7fd13 - -> Global_module.Name.t -> 'a -======= -> Global_module.Name.t -> allow_excess_args:bool -> 'a ->>>>>>> ocaml-flambda/flambda-backend:5.2.0minus-6 val find_in_cache : 'a t -> Global_module.Name.t -> 'a option diff --git a/src/ocaml/typing/tast_mapper.ml b/src/ocaml/typing/tast_mapper.ml index 25984552a..b6a35662b 100644 --- a/src/ocaml/typing/tast_mapper.ml +++ b/src/ocaml/typing/tast_mapper.ml @@ -319,16 +319,8 @@ let pat Tpat_record_unboxed_product (List.map (tuple3 (map_loc sub) id (sub.pat sub)) l, closed) | Tpat_array (am, arg_sort, l) -> Tpat_array (am, arg_sort, List.map (sub.pat sub) l) -<<<<<<< janestreet/merlin-jst:rae/with-kinds-roll - | Tpat_alias (p, id, s, uid, m) -> - Tpat_alias (sub.pat sub p, id, map_loc sub s, uid, m) -||||||| ocaml-flambda/flambda-backend:4eb95cdd48f3f2f6193e59c53e4640a008a7fd13 - | Tpat_alias (p, id, s, uid, m) -> - Tpat_alias (sub.pat sub p, id, map_loc sub s, uid, m) -======= | Tpat_alias (p, id, s, uid, m, ty) -> Tpat_alias (sub.pat sub p, id, map_loc sub s, uid, m, ty) ->>>>>>> ocaml-flambda/flambda-backend:5.2.0minus-6 | Tpat_lazy p -> Tpat_lazy (sub.pat sub p) | Tpat_value p -> (as_computation_pattern (sub.pat sub (p :> pattern))).pat_desc diff --git a/src/ocaml/typing/typedtree.ml b/src/ocaml/typing/typedtree.ml index 206414359..bbd600ea8 100644 --- a/src/ocaml/typing/typedtree.ml +++ b/src/ocaml/typing/typedtree.ml @@ -1255,16 +1255,8 @@ let rec alpha_pat {p with pat_desc = try Tpat_var (alpha_var env id, s, uid, mode) with | Not_found -> Tpat_any} -<<<<<<< janestreet/merlin-jst:rae/with-kinds-roll - | Tpat_alias (p1, id, s, uid, mode) -> - let new_p : k general_pattern = alpha_pat env p1 in -||||||| ocaml-flambda/flambda-backend:4eb95cdd48f3f2f6193e59c53e4640a008a7fd13 - | Tpat_alias (p1, id, s, uid, mode) -> - let new_p = alpha_pat env p1 in -======= | Tpat_alias (p1, id, s, uid, mode, ty) -> - let new_p = alpha_pat env p1 in ->>>>>>> ocaml-flambda/flambda-backend:5.2.0minus-6 + let new_p : k general_pattern = alpha_pat env p1 in begin try {p with pat_desc = Tpat_alias (new_p, alpha_var env id, s, uid, mode, ty)} diff --git a/src/ocaml/typing/typemod.ml b/src/ocaml/typing/typemod.ml index 29e635d1f..0ecffdbbb 100644 --- a/src/ocaml/typing/typemod.ml +++ b/src/ocaml/typing/typemod.ml @@ -2626,46 +2626,14 @@ let rec type_module ?alias sttn funct_body anchor env smod = assert (Option.is_none held_locks); md, shape -<<<<<<< janestreet/merlin-jst:rae/with-kinds-roll -||||||| ocaml-flambda/flambda-backend:4eb95cdd48f3f2f6193e59c53e4640a008a7fd13 -and type_module_maybe_hold_locks ~alias sttn funct_body anchor env smod = - Builtin_attributes.warning_scope smod.pmod_attributes - (fun () -> type_module_aux ~alias sttn funct_body anchor env smod) - -and type_module_aux ~alias sttn funct_body anchor env smod = - match smod.pmod_desc with - Pmod_ident lid -> - let path, locks = - Env.lookup_module_path ~load:(not @@ is_alias alias) ~loc:smod.pmod_loc lid.txt env - in - type_module_path_aux ~alias sttn env path locks lid smod - | Pmod_structure sstr -> - let (str, sg, names, shape, _finalenv) = - type_structure funct_body anchor env sstr in -======= -and type_module_maybe_hold_locks ?(alias=false) ~hold_locks sttn funct_body anchor env smod = - Builtin_attributes.warning_scope smod.pmod_attributes - (fun () -> type_module_aux ~alias ~hold_locks sttn funct_body anchor env smod) - -and type_module_aux ~alias ~hold_locks sttn funct_body anchor env smod = - match smod.pmod_desc with - Pmod_ident lid -> - let path, locks = - Env.lookup_module_path ~load:(not alias) ~loc:smod.pmod_loc lid.txt env - in - type_module_path_aux ~alias ~hold_locks sttn env path locks lid smod - | Pmod_structure sstr -> - let (str, sg, names, shape, _finalenv) = - type_structure funct_body anchor env sstr in ->>>>>>> ocaml-flambda/flambda-backend:5.2.0minus-6 -and type_module_maybe_hold_locks ~alias sttn funct_body anchor env smod = +and type_module_maybe_hold_locks ?(alias=false) ~hold_locks sttn funct_body anchor env smod = (* Merlin: when we start typing a module we don't want to include potential saved_items from its parent. We backup them before starting and restore them when finished. *) Msupport.with_saved_types @@ fun () -> try Builtin_attributes.warning_scope smod.pmod_attributes - (fun () -> type_module_aux ~alias sttn funct_body anchor env smod) + (fun () -> type_module_aux ~alias ~hold_locks sttn funct_body anchor env smod) with exn -> Msupport.raise_error exn; { mod_desc = Tmod_structure { @@ -2679,13 +2647,13 @@ and type_module_maybe_hold_locks ~alias sttn funct_body anchor env smod = mod_loc = smod.pmod_loc }, Shape.dummy_mod, Env.locks_empty -and type_module_aux ~alias sttn funct_body anchor env smod = +and type_module_aux ~alias ~hold_locks sttn funct_body anchor env smod = match smod.pmod_desc with Pmod_ident lid -> let path, locks = - Env.lookup_module_path ~load:(not @@ is_alias alias) ~loc:smod.pmod_loc lid.txt env + Env.lookup_module_path ~load:(not alias) ~loc:smod.pmod_loc lid.txt env in - type_module_path_aux ~alias sttn env path locks lid smod + type_module_path_aux ~alias ~hold_locks sttn env path locks lid smod | Pmod_structure sstr -> let (str, sg, names, shape, _finalenv) = type_structure funct_body anchor env [] sstr in @@ -2752,47 +2720,17 @@ and type_module_aux ~alias sttn funct_body anchor env smod = let arg, arg_shape, held_locks = type_module_maybe_hold_locks ~alias ~hold_locks:true true funct_body anchor env sarg in -<<<<<<< janestreet/merlin-jst:rae/with-kinds-roll -||||||| ocaml-flambda/flambda-backend:4eb95cdd48f3f2f6193e59c53e4640a008a7fd13 - let mty = transl_modtype env smty in - let md, final_shape = - wrap_constraint_with_shape env true arg mty.mty_type arg_shape - (Tmodtype_explicit mty) - in - { md with - mod_loc = smod.pmod_loc; - mod_attributes = smod.pmod_attributes; - }, - final_shape, locks - | Pmod_unpack sexp -> - let exp = - Ctype.with_local_level_if_principal -======= - let mty = transl_modtype env smty in - let md, final_shape = - wrap_constraint_with_shape env true arg held_locks mty.mty_type arg_shape - (Tmodtype_explicit mty) - in - { md with - mod_loc = smod.pmod_loc; - mod_attributes = smod.pmod_attributes; - }, - final_shape, None - | Pmod_unpack sexp -> - let exp = - Ctype.with_local_level_if_principal ->>>>>>> ocaml-flambda/flambda-backend:5.2.0minus-6 begin try let mty = transl_modtype env smty in let md, final_shape = - wrap_constraint_with_shape env true arg mty.mty_type arg_shape + wrap_constraint_with_shape env true arg held_locks mty.mty_type arg_shape (Tmodtype_explicit mty) in { md with mod_loc = smod.pmod_loc; mod_attributes = smod.pmod_attributes; }, - final_shape, locks + final_shape, None with exn -> (* [merlin] For better Construct error messages we need to keep holes in the recovered typedtree *) @@ -2842,20 +2780,14 @@ and type_module_aux ~alias sttn funct_body anchor env smod = mod_env = env; mod_attributes = smod.pmod_attributes; mod_loc = smod.pmod_loc }, -<<<<<<< janestreet/merlin-jst:rae/with-kinds-roll - Shape.leaf_for_unpack, Env.locks_empty + Shape.leaf_for_unpack, None | Pmod_extension ({ txt; _ }, _) when txt = Ast_helper.hole_txt -> { mod_desc = Tmod_typed_hole; mod_type = Mty_for_hole; mod_env = env; mod_attributes = smod.pmod_attributes; mod_loc = smod.pmod_loc }, - Shape.dummy_mod, Env.locks_empty -||||||| ocaml-flambda/flambda-backend:4eb95cdd48f3f2f6193e59c53e4640a008a7fd13 - Shape.leaf_for_unpack, Env.locks_empty -======= - Shape.leaf_for_unpack, None ->>>>>>> ocaml-flambda/flambda-backend:5.2.0minus-6 + Shape.dummy_mod, None | Pmod_extension ext -> raise (Error_forward (Builtin_attributes.error_of_extension ext)) | Pmod_instance glob -> @@ -2922,19 +2854,11 @@ and type_module_path_aux ~alias ~hold_locks sttn env path locks (lid : _ loc) sm and type_application loc strengthen funct_body env smod = let rec extract_application funct_body env sargs smod = match smod.pmod_desc with -<<<<<<< janestreet/merlin-jst:rae/with-kinds-roll | Pmod_apply (f, sarg) -> - let arg, shape = type_module true funct_body None env sarg in -||||||| ocaml-flambda/flambda-backend:4eb95cdd48f3f2f6193e59c53e4640a008a7fd13 - | Pmod_apply(f, sarg) -> - let arg, shape = type_module true funct_body None env sarg in -======= - | Pmod_apply(f, sarg) -> let arg, shape, held_locks = type_module_maybe_hold_locks ~hold_locks:true true funct_body None env sarg in ->>>>>>> ocaml-flambda/flambda-backend:5.2.0minus-6 let summary = { loc = smod.pmod_loc; attributes = smod.pmod_attributes; @@ -3021,18 +2945,10 @@ and type_one_application ~ctx:(apply_loc,sfunct,md_f,args) let coercion = try Includemod.modtypes ~loc:arg.mod_loc ~mark:Mark_both env arg.mod_type mty_param -<<<<<<< janestreet/merlin-jst:rae/with-kinds-roll - ~modes:Legacy + ~modes:(Legacy held_locks) with Includemod.Error _ -> Msupport.raise_error (apply_error ()); Tcoerce_none -||||||| ocaml-flambda/flambda-backend:4eb95cdd48f3f2f6193e59c53e4640a008a7fd13 - ~modes:Legacy - with Includemod.Error _ -> apply_error () -======= - ~modes:(Legacy held_locks) - with Includemod.Error _ -> apply_error () ->>>>>>> ocaml-flambda/flambda-backend:5.2.0minus-6 in let mty_appl = match arg_path with @@ -3676,13 +3592,7 @@ let type_module_alias env smod = md, shape, locks let type_module = type_module true false None -<<<<<<< janestreet/merlin-jst:rae/with-kinds-roll -||||||| ocaml-flambda/flambda-backend:4eb95cdd48f3f2f6193e59c53e4640a008a7fd13 -let type_structure = type_structure false None -======= let type_module_maybe_hold_locks = type_module_maybe_hold_locks true false None -let type_structure = type_structure false None ->>>>>>> ocaml-flambda/flambda-backend:5.2.0minus-6 let merlin_type_structure env sig_acc str = let (str, sg, _sg_names, _shape, env) = From 485b8194a2f11975a364290b7c8be313e372b01d Mon Sep 17 00:00:00 2001 From: Richard Eisenberg Date: Thu, 13 Feb 2025 15:27:23 -0500 Subject: [PATCH 12/25] Fix compilation problems --- src/analysis/context.ml | 2 +- src/analysis/destruct.ml | 18 +++++------ src/analysis/occurrences.ml | 2 +- src/analysis/typedtree_utils.ml | 4 +-- src/ocaml/merlin_specific/browse_raw.ml | 4 +-- src/ocaml/typing/ctype.ml | 2 ++ src/ocaml/typing/env.ml | 2 +- src/ocaml/typing/global_module.ml | 4 +-- src/ocaml/typing/jkind.ml | 2 +- src/ocaml/typing/jkind.mli | 12 +++---- src/ocaml/typing/persistent_env.ml | 8 ++--- src/ocaml/typing/persistent_env.mli | 1 - src/ocaml/typing/typedecl.ml | 2 +- src/ocaml/typing/typemod.ml | 4 +-- src/ocaml/utils/misc_stdlib.ml | 42 ++++++++++++++++++------- src/ocaml/utils/misc_stdlib.mli | 32 +++++++++++++++++++ 16 files changed, 96 insertions(+), 45 deletions(-) diff --git a/src/analysis/context.ml b/src/analysis/context.ml index a0fa4aafe..966f441b7 100644 --- a/src/analysis/context.ml +++ b/src/analysis/context.ml @@ -98,7 +98,7 @@ let inspect_pattern (type a) ~cursor ~lid (p : a Typedtree.general_pattern) = match p.pat_desc with | Tpat_any when Longident.last lid = "_" -> None | Tpat_var (_, str_loc, _, _) when Longident.last lid = str_loc.txt -> None - | Tpat_alias (_, _, str_loc, _, _) when Longident.last lid = str_loc.txt -> + | Tpat_alias (_, _, str_loc, _, _, _) when Longident.last lid = str_loc.txt -> (* Assumption: if [Browse.enclosing] stopped on this node and not on the subpattern, then it must mean that the cursor is on the alias. *) None diff --git a/src/analysis/destruct.ml b/src/analysis/destruct.ml index 4eb3e984f..0902f0db3 100644 --- a/src/analysis/destruct.ml +++ b/src/analysis/destruct.ml @@ -339,7 +339,7 @@ let rec destructible patt = let open Typedtree in match patt.pat_desc with | Tpat_any | Tpat_var _ -> true - | Tpat_alias (p, _, _, _, _) -> destructible p + | Tpat_alias (p, _, _, _, _, _) -> destructible p | _ -> false let is_package ty = @@ -369,8 +369,8 @@ let rec subst_patt initial ~by patt = let open Typedtree in match patt.pat_desc with | Tpat_any | Tpat_var _ | Tpat_constant _ -> patt - | Tpat_alias (p, x, y, uid, m) -> - { patt with pat_desc = Tpat_alias (f p, x, y, uid, m) } + | Tpat_alias (p, x, y, uid, m, ty) -> + { patt with pat_desc = Tpat_alias (f p, x, y, uid, m, ty) } | Tpat_tuple lst -> { patt with pat_desc = Tpat_tuple (List.map lst ~f:(fun (lbl, p) -> (lbl, f p))) @@ -408,8 +408,8 @@ let rec rm_sub patt sub = let open Typedtree in match patt.pat_desc with | Tpat_any | Tpat_var _ | Tpat_constant _ -> patt - | Tpat_alias (p, x, y, uid, m) -> - { patt with pat_desc = Tpat_alias (f p, x, y, uid, m) } + | Tpat_alias (p, x, y, uid, m, ty) -> + { patt with pat_desc = Tpat_alias (f p, x, y, uid, m, ty) } | Tpat_tuple lst -> { patt with pat_desc = Tpat_tuple (List.map lst ~f:(fun (lbl, p) -> (lbl, f p))) @@ -473,8 +473,8 @@ let rec qualify_constructors ~unmangling_tables f pat = in let pat_desc = match pat.pat_desc with - | Tpat_alias (p, id, loc, uid, m) -> - Tpat_alias (qualify_constructors f p, id, loc, uid, m) + | Tpat_alias (p, id, loc, uid, m, ty) -> + Tpat_alias (qualify_constructors f p, id, loc, uid, m, ty) | Tpat_tuple ps -> Tpat_tuple (List.map ps ~f:(fun (lbl, p) -> (lbl, qualify_constructors f p))) @@ -532,7 +532,7 @@ let find_branch patterns sub = match patt.pat_desc with | Tpat_any | Tpat_var _ | Tpat_constant _ | Tpat_variant (_, None, _) -> false - | Tpat_alias (p, _, _, _, _) | Tpat_variant (_, Some p, _) | Tpat_lazy p + | Tpat_alias (p, _, _, _, _, _) | Tpat_variant (_, Some p, _) | Tpat_lazy p -> is_sub_patt p ~sub | Tpat_tuple lst -> List.exists lst ~f:(fun (_lbl, p) -> is_sub_patt ~sub p) @@ -615,7 +615,7 @@ module Conv = struct mkpat (Ppat_var nm) | Tpat_any | Tpat_var _ -> mkpat Ppat_any | Tpat_constant c -> mkpat (Ppat_constant (Untypeast.constant c)) - | Tpat_alias (p, _, _, _, _) -> loop p + | Tpat_alias (p, _, _, _, _, _) -> loop p | Tpat_tuple lst -> let lst = List.map ~f:(fun (lbl, p) -> (lbl, loop p)) lst in mkpat (Ppat_tuple (lst, Closed)) diff --git a/src/analysis/occurrences.ml b/src/analysis/occurrences.ml index 19e67546a..a93356cfa 100644 --- a/src/analysis/occurrences.ml +++ b/src/analysis/occurrences.ml @@ -60,7 +60,7 @@ let uid_and_loc_of_node env node = let md = Env.find_module (Pident ident) env in Some (md.md_uid, mb_name.loc) | Pattern - { pat_desc = Tpat_var (_, name, uid, _) | Tpat_alias (_, _, name, uid, _); + { pat_desc = Tpat_var (_, name, uid, _) | Tpat_alias (_, _, name, uid, _, _); _ } -> Some (uid, name.loc) | Type_declaration { typ_type; typ_name; _ } -> diff --git a/src/analysis/typedtree_utils.ml b/src/analysis/typedtree_utils.ml index d7f798d46..dfdd8ca10 100644 --- a/src/analysis/typedtree_utils.ml +++ b/src/analysis/typedtree_utils.ml @@ -27,7 +27,7 @@ let let_bound_vars bindings = match value_binding.Typedtree.vb_pat.pat_desc with | Tpat_var (id, loc, _, _) -> Some (id, loc) | Typedtree.Tpat_any - | Typedtree.Tpat_alias (_, _, _, _, _) + | Typedtree.Tpat_alias (_, _, _, _, _, _) | Typedtree.Tpat_constant _ | Typedtree.Tpat_tuple _ | Typedtree.Tpat_unboxed_tuple _ @@ -70,6 +70,6 @@ let pat_var_id_and_loc = function | _ -> None let pat_alias_pat_id_and_loc = function - | Typedtree.{ pat_desc = Tpat_alias (pat, id, loc, _, _); _ } -> + | Typedtree.{ pat_desc = Tpat_alias (pat, id, loc, _, _, _); _ } -> Some (pat, id, loc) | _ -> None diff --git a/src/ocaml/merlin_specific/browse_raw.ml b/src/ocaml/merlin_specific/browse_raw.ml index afafc1544..8fade047b 100644 --- a/src/ocaml/merlin_specific/browse_raw.ml +++ b/src/ocaml/merlin_specific/browse_raw.ml @@ -342,7 +342,7 @@ let of_pattern_desc (type k) (desc : k pattern_desc) = match desc with | Tpat_any | Tpat_var _ | Tpat_constant _ | Tpat_variant (_, None, _) -> id_fold - | Tpat_alias (p, _, _, _, _) + | Tpat_alias (p, _, _, _, _, _) | Tpat_variant (_, Some p, _) | Tpat_lazy p | Tpat_exception p -> of_pattern p @@ -793,7 +793,7 @@ let pattern_paths (type k) { Typedtree.pat_desc; pat_extra; _ } = fake_path lid_loc cstr_res cstr_name | Tpat_var (id, { Location.loc; txt }, _, _) -> [ (mkloc (Path.Pident id) loc, Some (Longident.Lident txt)) ] - | Tpat_alias (_, id, loc, _, _) -> + | Tpat_alias (_, id, loc, _, _, _) -> [ (reloc (Path.Pident id) loc, Some (Longident.Lident loc.txt)) ] | _ -> [] in diff --git a/src/ocaml/typing/ctype.ml b/src/ocaml/typing/ctype.ml index 44033c3a6..7ea1c1168 100644 --- a/src/ocaml/typing/ctype.ml +++ b/src/ocaml/typing/ctype.ml @@ -23,6 +23,8 @@ open Errortrace open Mode open Local_store +module Nonempty_list = Misc_stdlib.Nonempty_list + (* Type manipulation after type inference ====================================== diff --git a/src/ocaml/typing/env.ml b/src/ocaml/typing/env.ml index 80a6f167c..9ca1f9f15 100644 --- a/src/ocaml/typing/env.ml +++ b/src/ocaml/typing/env.ml @@ -1221,7 +1221,7 @@ let runtime_parameter_bindings () = let parameters () = Persistent_env.parameters !persistent_env let read_pers_mod modname cmi = - Persistent_env.read !persistent_env short_paths_components modname cmi + Persistent_env.read !persistent_env modname cmi let find_pers_mod name ~allow_excess_args = Persistent_env.find !persistent_env diff --git a/src/ocaml/typing/global_module.ml b/src/ocaml/typing/global_module.ml index c68f6fdaa..db5b4a247 100644 --- a/src/ocaml/typing/global_module.ml +++ b/src/ocaml/typing/global_module.ml @@ -344,7 +344,7 @@ module With_precision = struct (* Compute the meet, assuming the visible parts are equal *) let rec meet glob1 glob2 = let visible_args_rev = - Misc.Stdlib.List.merge_fold glob1.visible_args glob2.visible_args + Misc_stdlib.List.merge_fold glob1.visible_args glob2.visible_args ~cmp:compare_arg_name ~init:[] ~left_only:(fun _ _ -> raise Inconsistent) @@ -353,7 +353,7 @@ module With_precision = struct in let hidden_args_rev = (* Keep only the hidden arguments that appear in both lists *) - Misc.Stdlib.List.merge_fold glob1.hidden_args glob2.hidden_args + Misc_stdlib.List.merge_fold glob1.hidden_args glob2.hidden_args ~cmp:compare_arg_name ~init:[] ~left_only:(fun acc_rev _ -> acc_rev) diff --git a/src/ocaml/typing/jkind.ml b/src/ocaml/typing/jkind.ml index 46d6fe190..4a3e3146c 100644 --- a/src/ocaml/typing/jkind.ml +++ b/src/ocaml/typing/jkind.ml @@ -25,7 +25,7 @@ end [@@@warning "+9"] -module Nonempty_list = Misc.Nonempty_list +module Nonempty_list = Misc_stdlib.Nonempty_list (* A *sort* is the information the middle/back ends need to be able to compile a manipulation (storing, passing, etc) of a runtime value. *) diff --git a/src/ocaml/typing/jkind.mli b/src/ocaml/typing/jkind.mli index 5ef9e9a05..07f18d165 100644 --- a/src/ocaml/typing/jkind.mli +++ b/src/ocaml/typing/jkind.mli @@ -69,16 +69,16 @@ module Sub_result : sig type t = | Equal | Less - | Not_le of Sub_failure_reason.t Misc.Nonempty_list.t + | Not_le of Sub_failure_reason.t Misc_stdlib.Nonempty_list.t val of_le_result : - failure_reason:(unit -> Sub_failure_reason.t Misc.Nonempty_list.t) -> - Misc.Le_result.t -> + failure_reason:(unit -> Sub_failure_reason.t Misc_stdlib.Nonempty_list.t) -> + Misc_stdlib.Le_result.t -> t val combine : t -> t -> t - val require_le : t -> (unit, Sub_failure_reason.t Misc.Nonempty_list.t) result + val require_le : t -> (unit, Sub_failure_reason.t Misc_stdlib.Nonempty_list.t) result val is_le : t -> bool end @@ -641,9 +641,9 @@ val sub : type sub_or_intersect = | Sub (** The first jkind is a subjkind of the second. *) - | Disjoint of Sub_failure_reason.t Misc.Nonempty_list.t + | Disjoint of Sub_failure_reason.t Misc_stdlib.Nonempty_list.t (** The two jkinds have no common ground. *) - | Has_intersection of Sub_failure_reason.t Misc.Nonempty_list.t + | Has_intersection of Sub_failure_reason.t Misc_stdlib.Nonempty_list.t (** The first jkind is not a subjkind of the second, but the two jkinds have an intersection: try harder. *) diff --git a/src/ocaml/typing/persistent_env.ml b/src/ocaml/typing/persistent_env.ml index fd0a81837..57d016a11 100644 --- a/src/ocaml/typing/persistent_env.ml +++ b/src/ocaml/typing/persistent_env.ml @@ -860,7 +860,7 @@ type 'a sig_reader = (* Add a persistent structure to the hash table and bind it in the [Env]. Checks that OCaml source is allowed to refer to this module. *) -let acknowledge_new_pers_struct penv short_path_comps modname pers_name val_of_pers_sig = +let acknowledge_new_pers_struct penv modname pers_name val_of_pers_sig short_path_comps = let {persistent_structures; _} = penv in let import = pers_name.pn_import in let global = pers_name.pn_global in @@ -922,8 +922,8 @@ let acknowledge_pers_struct penv modname pers_name val_of_pers_sig short_path_co match Hashtbl.find_opt persistent_structures canonical_modname with | Some ps -> ps | None -> - acknowledge_new_pers_struct penv short_path_comps canonical_modname pers_name - val_of_pers_sig + acknowledge_new_pers_struct penv canonical_modname pers_name + val_of_pers_sig short_path_comps in if not (Global_module.Name.equal modname canonical_modname) then Hashtbl.add persistent_structures modname { ps with ps_canonical = false }; @@ -944,7 +944,7 @@ let find_pers_struct let pers_name = find_pers_name ~allow_hidden penv ~check name ~allow_excess_args in - acknowledge_pers_struct penv short_path_comps name pers_name val_of_pers_sig + acknowledge_pers_struct penv name pers_name val_of_pers_sig short_path_comps let describe_prefix ppf prefix = if CU.Prefix.is_empty prefix then diff --git a/src/ocaml/typing/persistent_env.mli b/src/ocaml/typing/persistent_env.mli index 2b80c09da..9fa172ac3 100644 --- a/src/ocaml/typing/persistent_env.mli +++ b/src/ocaml/typing/persistent_env.mli @@ -105,7 +105,6 @@ type 'a sig_reader = -> 'a val read : 'a t - -> (Global_module.Name.t -> 'a -> Short_paths.Desc.Module.components Lazy.t) -> Global_module.Name.t -> Unit_info.Artifact.t -> Subst.Lazy.signature diff --git a/src/ocaml/typing/typedecl.ml b/src/ocaml/typing/typedecl.ml index 68de668ed..0bc4409f9 100644 --- a/src/ocaml/typing/typedecl.ml +++ b/src/ocaml/typing/typedecl.ml @@ -1903,7 +1903,7 @@ let update_decl_jkind env id decl = Pident id, Jkind.Violation.of_ ( Not_a_subjkind ( - new_decl.type_jkind, decl.type_jkind, Nonempty_list.to_list reason))))) + new_decl.type_jkind, decl.type_jkind, Misc_stdlib.Nonempty_list.to_list reason))))) | Less | Equal -> new_decl let update_decls_jkind_reason env decls = diff --git a/src/ocaml/typing/typemod.ml b/src/ocaml/typing/typemod.ml index 0ecffdbbb..aed994c1f 100644 --- a/src/ocaml/typing/typemod.ml +++ b/src/ocaml/typing/typemod.ml @@ -2645,7 +2645,7 @@ and type_module_maybe_hold_locks ?(alias=false) ~hold_locks sttn funct_body anch mod_env = env; mod_attributes = Msupport.flush_saved_types () @ smod.pmod_attributes; mod_loc = smod.pmod_loc }, - Shape.dummy_mod, Env.locks_empty + Shape.dummy_mod, None and type_module_aux ~alias ~hold_locks sttn funct_body anchor env smod = match smod.pmod_desc with @@ -2744,7 +2744,7 @@ and type_module_aux ~alias ~hold_locks sttn funct_body anchor env smod = mod_env = env; mod_attributes = sarg.pmod_attributes; }, - Shape.dummy_mod, locks + Shape.dummy_mod, None | _ -> raise exn end | Pmod_unpack sexp -> diff --git a/src/ocaml/utils/misc_stdlib.ml b/src/ocaml/utils/misc_stdlib.ml index 303ed0f67..a34599ec8 100644 --- a/src/ocaml/utils/misc_stdlib.ml +++ b/src/ocaml/utils/misc_stdlib.ml @@ -77,18 +77,18 @@ module List = struct | Error _ as e -> e let [@inline] merge_fold ~cmp ~left_only ~right_only ~both ~init t1 t2 = - let rec loop acc t1 t2 = - match t1, t2 with - | [], [] -> acc - | a :: t1', [] -> loop (left_only acc a) t1' [] - | [], b :: t2' -> loop (right_only acc b) [] t2' - | a :: t1', b :: t2' -> - match cmp a b with - | 0 -> loop (both acc a b) t1' t2' - | c when c < 0 -> loop (left_only acc a) t1' t2 - | _ -> loop (right_only acc b) t1 t2' - in - loop init t1 t2 + let rec loop acc t1 t2 = + match t1, t2 with + | [], [] -> acc + | a :: t1', [] -> loop (left_only acc a) t1' [] + | [], b :: t2' -> loop (right_only acc b) [] t2' + | a :: t1', b :: t2' -> + match cmp a b with + | 0 -> loop (both acc a b) t1' t2' + | c when c < 0 -> loop (left_only acc a) t1' t2 + | _ -> loop (right_only acc b) t1 t2' + in + loop init t1 t2 let [@inline] merge_iter ~cmp ~left_only ~right_only ~both t1 t2 = merge_fold t1 t2 ~cmp @@ -427,3 +427,21 @@ end module type T2 = sig type ('a, 'b) t end + +module Nonempty_list = struct + type nonrec 'a t = ( :: ) of 'a * 'a list + + let to_list (x :: xs) : _ list = x :: xs + + let of_list_opt : _ list -> _ t option = function + | [] -> None + | (x :: xs)-> Some (x :: xs) + + let map f (x :: xs) = f x :: List.map f xs + + let pp_print ?pp_sep f ppf t = + Format.pp_print_list ?pp_sep f ppf (to_list t) + + let (@) (x :: xs) (y :: ys) = + x :: List.(xs @ (y :: ys)) +end diff --git a/src/ocaml/utils/misc_stdlib.mli b/src/ocaml/utils/misc_stdlib.mli index 9febc1e9e..07f123886 100644 --- a/src/ocaml/utils/misc_stdlib.mli +++ b/src/ocaml/utils/misc_stdlib.mli @@ -60,6 +60,20 @@ module List : sig -> 'b list -> unit + val merge_fold + : cmp:('a -> 'b -> int) + -> left_only:('acc -> 'a -> 'acc) + -> right_only:('acc -> 'b -> 'acc) + -> both:('acc -> 'a -> 'b -> 'acc) + -> init:'acc + -> 'a list + -> 'b list + -> 'acc + (** Folds over two sorted lists, calling [left_only] on those elements + that appear only in the left list, [right_only] on those elements + that appear only in the right list, and [both] on those elements that + appear in both. *) + val fold_left_map2 : ('acc -> 'a -> 'b -> 'acc * 'r) -> 'acc @@ -258,3 +272,21 @@ end module type T2 = sig type ('a, 'b) t end + +(** Non-empty lists *) +module Nonempty_list : sig + type nonrec 'a t = ( :: ) of 'a * 'a list + + val to_list : 'a t -> 'a list + val of_list_opt : 'a list -> 'a t option + val map : ('a -> 'b) -> 'a t -> 'b t + + val pp_print : + ?pp_sep:(Format.formatter -> unit -> unit) -> + (Format.formatter -> 'a -> unit) -> + Format.formatter -> + 'a t -> + unit + + val (@) : 'a t -> 'a t -> 'a t +end From 8ed74c0d3baf6063eac6567c08085a54dda1132d Mon Sep 17 00:00:00 2001 From: Richard Eisenberg Date: Thu, 13 Feb 2025 15:29:33 -0500 Subject: [PATCH 13/25] Accept new version numbers in test --- tests/test-dirs/version.t | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/tests/test-dirs/version.t b/tests/test-dirs/version.t index 7f3be6ebe..ae5d3e815 100644 --- a/tests/test-dirs/version.t +++ b/tests/test-dirs/version.t @@ -1,21 +1,21 @@ $ $MERLIN single version | revert-newlines | jq .value.magicNumbers { - "cmi_magic_number": "Caml1999I555", - "ast_intf_magic_number": "Caml1999N555", - "ast_impl_magic_number": "Caml1999M555", - "cmt_magic_number": "Caml1999T555", - "cms_magic_number": "Caml1999S555", - "index_magic_number": "Merl2023I555" + "cmi_magic_number": "Caml1999I556", + "ast_intf_magic_number": "Caml1999N556", + "ast_impl_magic_number": "Caml1999M556", + "cmt_magic_number": "Caml1999T556", + "cms_magic_number": "Caml1999S556", + "index_magic_number": "Merl2023I556" } $ ocaml-index magic-numbers | jq { - "cmi_magic_number": "Caml1999I555", - "ast_intf_magic_number": "Caml1999N555", - "ast_impl_magic_number": "Caml1999M555", - "cmt_magic_number": "Caml1999T555", - "cms_magic_number": "Caml1999S555", - "index_magic_number": "Merl2023I555" + "cmi_magic_number": "Caml1999I556", + "ast_intf_magic_number": "Caml1999N556", + "ast_impl_magic_number": "Caml1999M556", + "cmt_magic_number": "Caml1999T556", + "cms_magic_number": "Caml1999S556", + "index_magic_number": "Merl2023I556" } Verify there is no difference between Merlin and Ocaml-index From 80a208556efacc186727c47a69dd3a28c6dc1e4c Mon Sep 17 00:00:00 2001 From: Richard Eisenberg Date: Thu, 13 Feb 2025 15:43:39 -0500 Subject: [PATCH 14/25] Account for new flags --- src/kernel/mconfig.ml | 27 +++++++++++++++++++-------- src/kernel/mconfig.mli | 3 ++- 2 files changed, 21 insertions(+), 9 deletions(-) diff --git a/src/kernel/mconfig.ml b/src/kernel/mconfig.ml index b2fecfb7e..d37afa0c4 100644 --- a/src/kernel/mconfig.ml +++ b/src/kernel/mconfig.ml @@ -27,7 +27,8 @@ type ocaml = as_parameter : bool; as_argument_for : string option; zero_alloc_check : Zero_alloc_annotations.Check.t; - allow_illegal_crossing : bool + zero_alloc_assert : Zero_alloc_annotations.Assert.t; + infer_with_bounds : bool } let dump_warnings st = @@ -57,7 +58,9 @@ let dump_ocaml x = ("parameters", `List (List.map ~f:Json.string x.parameters)); ("as_parameter", `Bool x.as_parameter); ( "zero_alloc_check", - `String (Zero_alloc_annotations.Check.to_string x.zero_alloc_check) ) + `String (Zero_alloc_annotations.Check.to_string x.zero_alloc_check) ); + ("zero_alloc_assert", + `String (Zero_alloc_annotations.Assert.to_string x.zero_alloc_assert) ) ] (** Some paths can be resolved relative to a current working directory *) @@ -452,7 +455,6 @@ let ocaml_ignored_flags = "-drawflambda"; "-drawlambda"; "-dreload"; - "-dscheduling"; "-dsel"; "-dsource"; "-dspill"; @@ -652,6 +654,7 @@ let ocaml_ignored_parametrized_flags = "-o"; "-rounds"; "-runtime-variant"; + "-ocamlrunparam"; "-unbox-closures-factor"; "-use-prims"; "-use_runtime"; @@ -834,10 +837,17 @@ let ocaml_flags = failwith ("Invalid value for -zero-alloc-check: " ^ zero_alloc_str)), " Check that annotated functions do not allocate and do not have \ indirect calls. " ^ Zero_alloc_annotations.Check.doc ); - ( "-allow-illegal-crossing", - Marg.unit (fun ocaml -> { ocaml with allow_illegal_crossing = true }), - "Type declarations will not be checked along the portability or \ - contention axes" ) + ( "-zero-alloc-assert", + Marg.param "string" (fun zero_alloc_str ocaml -> + match Zero_alloc_annotations.Assert.of_string zero_alloc_str with + | Some zero_alloc_assert -> { ocaml with zero_alloc_assert } + | None -> + failwith ("Invalid value for -zero-alloc-assert: " ^ zero_alloc_str)), + " Add zero_alloc annotations to all functions. " ^ + Zero_alloc_annotations.Assert.doc ); + ( "-infer-with-bounds", + Marg.unit (fun ocaml -> { ocaml with infer_with_bounds = true }), + "Infer with-bounds on kinds for type declarations. May impact performance." ) ] (** {1 Main configuration} *) @@ -866,7 +876,8 @@ let initial = as_parameter = false; as_argument_for = None; zero_alloc_check = Zero_alloc_annotations.Check.Check_default; - allow_illegal_crossing = false + zero_alloc_assert = Zero_alloc_annotations.Assert.Assert_default; + infer_with_bounds = false }; merlin = { build_path = []; diff --git a/src/kernel/mconfig.mli b/src/kernel/mconfig.mli index df763eeac..6ba810cb8 100644 --- a/src/kernel/mconfig.mli +++ b/src/kernel/mconfig.mli @@ -25,7 +25,8 @@ type ocaml = as_parameter : bool; as_argument_for : string option; zero_alloc_check : Zero_alloc_annotations.Check.t; - allow_illegal_crossing : bool + zero_alloc_assert : Zero_alloc_annotations.Assert.t; + infer_with_bounds : bool } val dump_ocaml : ocaml -> json From f38ea9294647b2b6ce9bd6aa5e30ef5c10843de2 Mon Sep 17 00:00:00 2001 From: Chris Casinghino Date: Fri, 14 Feb 2025 13:38:17 +0000 Subject: [PATCH 15/25] format --- src/analysis/destruct.ml | 5 +++-- src/analysis/occurrences.ml | 3 ++- src/kernel/mconfig.ml | 11 ++++++----- 3 files changed, 11 insertions(+), 8 deletions(-) diff --git a/src/analysis/destruct.ml b/src/analysis/destruct.ml index 0902f0db3..78699e308 100644 --- a/src/analysis/destruct.ml +++ b/src/analysis/destruct.ml @@ -532,8 +532,9 @@ let find_branch patterns sub = match patt.pat_desc with | Tpat_any | Tpat_var _ | Tpat_constant _ | Tpat_variant (_, None, _) -> false - | Tpat_alias (p, _, _, _, _, _) | Tpat_variant (_, Some p, _) | Tpat_lazy p - -> is_sub_patt p ~sub + | Tpat_alias (p, _, _, _, _, _) + | Tpat_variant (_, Some p, _) + | Tpat_lazy p -> is_sub_patt p ~sub | Tpat_tuple lst -> List.exists lst ~f:(fun (_lbl, p) -> is_sub_patt ~sub p) | Tpat_unboxed_tuple lst -> diff --git a/src/analysis/occurrences.ml b/src/analysis/occurrences.ml index a93356cfa..169e066a9 100644 --- a/src/analysis/occurrences.ml +++ b/src/analysis/occurrences.ml @@ -60,7 +60,8 @@ let uid_and_loc_of_node env node = let md = Env.find_module (Pident ident) env in Some (md.md_uid, mb_name.loc) | Pattern - { pat_desc = Tpat_var (_, name, uid, _) | Tpat_alias (_, _, name, uid, _, _); + { pat_desc = + Tpat_var (_, name, uid, _) | Tpat_alias (_, _, name, uid, _, _); _ } -> Some (uid, name.loc) | Type_declaration { typ_type; typ_name; _ } -> diff --git a/src/kernel/mconfig.ml b/src/kernel/mconfig.ml index d37afa0c4..cc8cffbc9 100644 --- a/src/kernel/mconfig.ml +++ b/src/kernel/mconfig.ml @@ -59,7 +59,7 @@ let dump_ocaml x = ("as_parameter", `Bool x.as_parameter); ( "zero_alloc_check", `String (Zero_alloc_annotations.Check.to_string x.zero_alloc_check) ); - ("zero_alloc_assert", + ( "zero_alloc_assert", `String (Zero_alloc_annotations.Assert.to_string x.zero_alloc_assert) ) ] @@ -839,15 +839,16 @@ let ocaml_flags = indirect calls. " ^ Zero_alloc_annotations.Check.doc ); ( "-zero-alloc-assert", Marg.param "string" (fun zero_alloc_str ocaml -> - match Zero_alloc_annotations.Assert.of_string zero_alloc_str with + match Zero_alloc_annotations.Assert.of_string zero_alloc_str with | Some zero_alloc_assert -> { ocaml with zero_alloc_assert } | None -> failwith ("Invalid value for -zero-alloc-assert: " ^ zero_alloc_str)), - " Add zero_alloc annotations to all functions. " ^ - Zero_alloc_annotations.Assert.doc ); + " Add zero_alloc annotations to all functions. " + ^ Zero_alloc_annotations.Assert.doc ); ( "-infer-with-bounds", Marg.unit (fun ocaml -> { ocaml with infer_with_bounds = true }), - "Infer with-bounds on kinds for type declarations. May impact performance." ) + "Infer with-bounds on kinds for type declarations. May impact \ + performance." ) ] (** {1 Main configuration} *) From b12bf35abefea404fdb007f22fbf1d0b46ad92b4 Mon Sep 17 00:00:00 2001 From: Liam Stevenson Date: Mon, 17 Feb 2025 12:53:53 -0500 Subject: [PATCH 16/25] Make module paths in jkind match the compiler --- src/ocaml/typing/jkind.ml | 25 +++++++++++++------------ src/ocaml/typing/jkind_axis.ml | 24 ++++++++++++------------ src/ocaml/typing/jkind_types.ml | 3 ++- 3 files changed, 27 insertions(+), 25 deletions(-) diff --git a/src/ocaml/typing/jkind.ml b/src/ocaml/typing/jkind.ml index 4a3e3146c..7b8e7348d 100644 --- a/src/ocaml/typing/jkind.ml +++ b/src/ocaml/typing/jkind.ml @@ -17,10 +17,11 @@ open Jkind_types open Jkind_axis open Types -module Le_result = Misc_stdlib.Le_result +(* Merlin-specific: change some module paths to match the compiler *) module Misc = struct include Misc module Stdlib = Misc_stdlib + include Misc_stdlib end [@@@warning "+9"] @@ -54,7 +55,7 @@ module Sub_result = struct | Less | Not_le of Sub_failure_reason.t Nonempty_list.t - let of_le_result ~failure_reason (le_result : Le_result.t) = + let of_le_result ~failure_reason (le_result : Misc.Le_result.t) = match le_result with | Less -> Less | Equal -> Equal @@ -140,7 +141,7 @@ module Layout = struct | Product ts -> Option.map (fun x -> Sort.Const.Product x) - (Misc_stdlib.List.map_option get_sort ts) + (Misc.Stdlib.List.map_option get_sort ts) let of_sort s = let rec of_sort : Sort.t -> _ = function @@ -215,7 +216,7 @@ module Layout = struct and to_product_sort ts = Option.map (fun x -> Sort.Product x) - (Misc_stdlib.List.map_option to_sort ts) + (Misc.Stdlib.List.map_option to_sort ts) let rec get : Sort.t t -> Sort.Flat.t t = let rec flatten_sort : Sort.t -> Sort.Flat.t t = function @@ -271,7 +272,7 @@ module Layout = struct | (Any | Sort _ | Product _), _ -> false let sub t1 t2 = - let rec sub t1 t2 : Le_result.t = + let rec sub t1 t2 : Misc.Le_result.t = match t1, t2 with | Any, Any -> Equal | _, Any -> Less @@ -279,7 +280,7 @@ module Layout = struct | Sort s1, Sort s2 -> if Sort.equate s1 s2 then Equal else Not_le | Product ts1, Product ts2 -> if List.compare_lengths ts1 ts2 = 0 - then Le_result.combine_list (List.map2 sub ts1 ts2) + then Misc.Le_result.combine_list (List.map2 sub ts1 ts2) else Not_le | Product ts1, Sort s2 -> ( (* This case could use [to_product_sort] because every component will need @@ -289,13 +290,13 @@ module Layout = struct match Sort.decompose_into_product s2 (List.length ts1) with | None -> Not_le | Some ss2 -> - Le_result.combine_list + Misc.Le_result.combine_list (List.map2 (fun t1 s2 -> sub t1 (Sort s2)) ts1 ss2)) | Sort s1, Product ts2 -> ( match Sort.decompose_into_product s1 (List.length ts2) with | None -> Not_le | Some ss1 -> - Le_result.combine_list + Misc.Le_result.combine_list (List.map2 (fun s1 t2 -> sub (Sort s1) t2) ss1 ts2)) in Sub_result.of_le_result (sub t1 t2) ~failure_reason:(fun () -> @@ -336,7 +337,7 @@ module Layout = struct | Sort s -> Sort.format ppf s | Product ts -> let pp_sep ppf () = Format.fprintf ppf " & " in - Misc_stdlib.pp_nested_list ~nested ~pp_element ~pp_sep ppf ts + Misc.pp_nested_list ~nested ~pp_element ~pp_sep ppf ts in pp_element ~nested:false ppf layout end @@ -1357,7 +1358,7 @@ module Desc = struct [Const.format] works better for atomic layouts, not products. *) | Product lays -> let pp_sep ppf () = fprintf ppf "@ & " in - Misc_stdlib.pp_nested_list ~nested ~pp_element:format_desc ~pp_sep ppf + Misc.pp_nested_list ~nested ~pp_element:format_desc ~pp_sep ppf (List.map (fun layout -> { desc with layout }) lays) | _ -> ( match get_const desc with @@ -2178,7 +2179,7 @@ end = struct let missing_cmi_hint ppf type_path = let root_module_name p = p |> Path.head |> Ident.name in let delete_trailing_double_underscore s = - if Misc.String.ends_with ~suffix:"__" s + if Misc.Stdlib.String.ends_with ~suffix:"__" s then String.sub s 0 (String.length s - 2) else s in @@ -3007,7 +3008,7 @@ module Debug_printers = struct | Type_declaration p -> fprintf ppf "Type_declaration %a" Path.print p | Type_parameter (p, var) -> fprintf ppf "Type_parameter (%a, %a)" Path.print p - (Misc_stdlib.Option.print Misc_stdlib.String.print) + (Misc.Stdlib.Option.print Misc.Stdlib.String.print) var | Newtype_declaration name -> fprintf ppf "Newtype_declaration %s" name | Constructor_type_parameter (cstr, name) -> diff --git a/src/ocaml/typing/jkind_axis.ml b/src/ocaml/typing/jkind_axis.ml index e25728db4..2d33d0148 100644 --- a/src/ocaml/typing/jkind_axis.ml +++ b/src/ocaml/typing/jkind_axis.ml @@ -12,10 +12,10 @@ (* *) (**************************************************************************) -(* Merlin-specific: Change the module path of Misc_stdlib.Le_result to Misc.Le_result to - match the compiler *) +(* Merlin-specific: change some module paths to match the compiler *) module Misc = struct - module Le_result = Misc_stdlib.Le_result + module Stdlib = Misc_stdlib + include Misc_stdlib end module type Axis_ops = sig @@ -179,7 +179,7 @@ module Axis = struct end module Axis_collection = struct - module Indexed_gen (T : Misc_stdlib.T2) = struct + module Indexed_gen (T : Misc.T2) = struct type 'a t_poly = { locality : (Mode.Locality.Const.t, 'a) T.t; linearity : (Mode.Linearity.Const.t, 'a) T.t; @@ -218,7 +218,7 @@ module Axis_collection = struct (* Since we don't have polymorphic parameters, use a record to pass the polymorphic function *) module Create = struct - module Monadic (M : Misc_stdlib.Monad.S) = struct + module Monadic (M : Misc.Stdlib.Monad.S) = struct type 'a f = { f : 'axis. axis:'axis Axis.t -> ('axis, 'a) T.t M.t } [@@unboxed] @@ -245,7 +245,7 @@ module Axis_collection = struct end [@@inline] - module Monadic_identity = Monadic (Misc_stdlib.Monad.Identity) + module Monadic_identity = Monadic (Misc.Stdlib.Monad.Identity) type 'a f = 'a Monadic_identity.f @@ -253,7 +253,7 @@ module Axis_collection = struct end module Map = struct - module Monadic (M : Misc_stdlib.Monad.S) = struct + module Monadic (M : Misc.Stdlib.Monad.S) = struct type ('a, 'b) f = { f : 'axis. axis:'axis Axis.t -> ('axis, 'a) T.t -> ('axis, 'b) T.t M.t @@ -267,7 +267,7 @@ module Axis_collection = struct end [@@inline] - module Monadic_identity = Monadic (Misc_stdlib.Monad.Identity) + module Monadic_identity = Monadic (Misc.Stdlib.Monad.Identity) type ('a, 'b) f = ('a, 'b) Monadic_identity.f @@ -299,7 +299,7 @@ module Axis_collection = struct end module Map2 = struct - module Monadic (M : Misc_stdlib.Monad.S) = struct + module Monadic (M : Misc.Stdlib.Monad.S) = struct type ('a, 'b, 'c) f = { f : 'axis. @@ -319,7 +319,7 @@ module Axis_collection = struct end [@@inline] - module Monadic_identity = Monadic (Misc_stdlib.Monad.Identity) + module Monadic_identity = Monadic (Misc.Stdlib.Monad.Identity) type ('a, 'b, 'c) f = ('a, 'b, 'c) Monadic_identity.f @@ -388,7 +388,7 @@ module Axis_collection = struct end end - module Indexed (T : Misc_stdlib.T1) = struct + module Indexed (T : Misc.T1) = struct include Indexed_gen (struct type ('a, 'b) t = 'a T.t end) @@ -396,7 +396,7 @@ module Axis_collection = struct type nonrec t = unit t end - module Identity = Indexed (Misc_stdlib.Monad.Identity) + module Identity = Indexed (Misc.Stdlib.Monad.Identity) include Indexed_gen (struct type ('a, 'b) t = 'b diff --git a/src/ocaml/typing/jkind_types.ml b/src/ocaml/typing/jkind_types.ml index ca0f01a93..9a64e8d70 100644 --- a/src/ocaml/typing/jkind_types.ml +++ b/src/ocaml/typing/jkind_types.ml @@ -16,6 +16,7 @@ module Misc = struct let fatal_error = Misc.fatal_error include Misc_stdlib + module Stdlib = Misc_stdlib end module Sort = struct @@ -301,7 +302,7 @@ module Sort = struct | Product cs -> Option.map (fun x -> Product x) - (Misc.List.map_option of_const cs) + (Misc.Stdlib.List.map_option of_const cs) end module Const = struct From 7e04014de0486c396877e2b3b04b5a27efb474d9 Mon Sep 17 00:00:00 2001 From: Liam Stevenson Date: Mon, 17 Feb 2025 12:55:14 -0500 Subject: [PATCH 17/25] Fix formatting --- src/ocaml/typing/typemod.ml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ocaml/typing/typemod.ml b/src/ocaml/typing/typemod.ml index aed994c1f..94e5bc3e2 100644 --- a/src/ocaml/typing/typemod.ml +++ b/src/ocaml/typing/typemod.ml @@ -2854,7 +2854,7 @@ and type_module_path_aux ~alias ~hold_locks sttn env path locks (lid : _ loc) sm and type_application loc strengthen funct_body env smod = let rec extract_application funct_body env sargs smod = match smod.pmod_desc with - | Pmod_apply (f, sarg) -> + | Pmod_apply(f, sarg) -> let arg, shape, held_locks = type_module_maybe_hold_locks ~hold_locks:true true funct_body None env sarg From 0c4f005352f108b94fbe03705a3ed41972077754 Mon Sep 17 00:00:00 2001 From: Liam Stevenson Date: Mon, 17 Feb 2025 13:54:15 -0500 Subject: [PATCH 18/25] Promote generated files --- src/ocaml/preprocess/menhirLib.ml | 412 +- src/ocaml/preprocess/menhirLib.mli | 316 +- src/ocaml/preprocess/parser_raw.ml | 61116 +++++++++++++-------------- src/sherlodoc/type_parser.ml | 1011 +- 4 files changed, 30432 insertions(+), 32423 deletions(-) diff --git a/src/ocaml/preprocess/menhirLib.ml b/src/ocaml/preprocess/menhirLib.ml index ee7f581f2..753d5e7c3 100644 --- a/src/ocaml/preprocess/menhirLib.ml +++ b/src/ocaml/preprocess/menhirLib.ml @@ -1,11 +1,14 @@ module General = struct (******************************************************************************) (* *) -(* Menhir *) +(* Menhir *) (* *) -(* Copyright Inria. All rights reserved. This file is distributed under *) -(* the terms of the GNU Library General Public License version 2, with a *) -(* special exception on linking, as described in the file LICENSE. *) +(* François Pottier, Inria Paris *) +(* Yann Régis-Gianas, PPS, Université Paris Diderot *) +(* *) +(* Copyright Inria. All rights reserved. This file is distributed under the *) +(* terms of the GNU Library General Public License version 2, with a *) +(* special exception on linking, as described in the file LICENSE. *) (* *) (******************************************************************************) @@ -86,11 +89,14 @@ end module Convert = struct (******************************************************************************) (* *) -(* Menhir *) +(* Menhir *) +(* *) +(* François Pottier, Inria Paris *) +(* Yann Régis-Gianas, PPS, Université Paris Diderot *) (* *) -(* Copyright Inria. All rights reserved. This file is distributed under *) -(* the terms of the GNU Library General Public License version 2, with a *) -(* special exception on linking, as described in the file LICENSE. *) +(* Copyright Inria. All rights reserved. This file is distributed under the *) +(* terms of the GNU Library General Public License version 2, with a *) +(* special exception on linking, as described in the file LICENSE. *) (* *) (******************************************************************************) @@ -206,11 +212,14 @@ end module IncrementalEngine = struct (******************************************************************************) (* *) -(* Menhir *) +(* Menhir *) +(* *) +(* François Pottier, Inria Paris *) +(* Yann Régis-Gianas, PPS, Université Paris Diderot *) (* *) -(* Copyright Inria. All rights reserved. This file is distributed under *) -(* the terms of the GNU Library General Public License version 2, with a *) -(* special exception on linking, as described in the file LICENSE. *) +(* Copyright Inria. All rights reserved. This file is distributed under the *) +(* terms of the GNU Library General Public License version 2, with a *) +(* special exception on linking, as described in the file LICENSE. *) (* *) (******************************************************************************) @@ -291,12 +300,12 @@ module type INCREMENTAL_ENGINE = sig 'a checkpoint (* [resume] allows the user to resume the parser after it has suspended - itself with a checkpoint of the form [Shifting _], [AboutToReduce _], or - [HandlingError _]. [resume] expects the old checkpoint and produces a + itself with a checkpoint of the form [AboutToReduce (env, prod)] or + [HandlingError env]. [resume] expects the old checkpoint and produces a new checkpoint. It does not raise any exception. *) (* The optional argument [strategy] influences the manner in which [resume] - deals with checkpoints of the form [HandlingError _]. Its default value + deals with checkpoints of the form [ErrorHandling _]. Its default value is [`Legacy]. It can be briefly described as follows: - If the [error] token is used only to report errors (that is, if the @@ -692,11 +701,14 @@ end module EngineTypes = struct (******************************************************************************) (* *) -(* Menhir *) +(* Menhir *) (* *) -(* Copyright Inria. All rights reserved. This file is distributed under *) -(* the terms of the GNU Library General Public License version 2, with a *) -(* special exception on linking, as described in the file LICENSE. *) +(* François Pottier, Inria Paris *) +(* Yann Régis-Gianas, PPS, Université Paris Diderot *) +(* *) +(* Copyright Inria. All rights reserved. This file is distributed under the *) +(* terms of the GNU Library General Public License version 2, with a *) +(* special exception on linking, as described in the file LICENSE. *) (* *) (******************************************************************************) @@ -777,53 +789,6 @@ type ('state, 'semantic_value, 'token) env = { (* --------------------------------------------------------------------------- *) -(* A number of logging hooks are used to (optionally) emit logging messages. *) - -(* The comments indicate the conventional messages that correspond - to these hooks in the code-based back-end; see [CodeBackend]. *) - -module type LOG = sig - - type state - type terminal - type production - - (* State %d: *) - - val state: state -> unit - - (* Shifting () to state *) - - val shift: terminal -> state -> unit - - (* Reducing a production should be logged either as a reduction - event (for regular productions) or as an acceptance event (for - start productions). *) - - (* Reducing production / Accepting *) - - val reduce_or_accept: production -> unit - - (* Lookahead token is now (-) *) - - val lookahead_token: terminal -> Lexing.position -> Lexing.position -> unit - - (* Initiating error handling *) - - val initiating_error_handling: unit -> unit - - (* Resuming error handling *) - - val resuming_error_handling: unit -> unit - - (* Handling error in state *) - - val handling_error: state -> unit - -end - -(* --------------------------------------------------------------------------- *) - (* This signature describes the parameters that must be supplied to the LR engine. *) @@ -945,16 +910,6 @@ module type TABLE = sig ('env -> 'answer) -> 'env -> 'answer - (**[maybe_shift_t s t] determines whether there exists a transition out of - the state [s], labeled with the terminal symbol [t], to some state - [s']. If so, it returns [Some s']. Otherwise, it returns [None]. *) - val maybe_shift_t : state -> terminal -> state option - - (**[may_reduce_prod s t prod] determines whether in the state [s], with - lookahead symbol [t], the automaton reduces production [prod]. This test - accounts for the possible existence of a default reduction. *) - val may_reduce_prod : state -> terminal -> production -> bool - (* This is the automaton's goto table. This table maps a pair of a state and a nonterminal symbol to a new state. By extension, it also maps a pair of a state and a production to a new state. *) @@ -970,11 +925,6 @@ module type TABLE = sig val goto_prod: state -> production -> state val maybe_goto_nt: state -> nonterminal -> state option - (* [lhs prod] returns the left-hand side of production [prod], - a nonterminal symbol. *) - - val lhs: production -> nonterminal - (* [is_start prod] tells whether the production [prod] is a start production. *) val is_start: production -> bool @@ -1015,17 +965,51 @@ module type TABLE = sig val may_reduce: state -> production -> bool + (* The LR engine requires a number of hooks, which are used for logging. *) + + (* The comments below indicate the conventional messages that correspond + to these hooks in the code-based back-end; see [CodeBackend]. *) + (* If the flag [log] is false, then the logging functions are not called. If it is [true], then they are called. *) val log : bool - (* The logging hooks required by the LR engine. *) + module Log : sig - module Log : LOG - with type state := state - and type terminal := terminal - and type production := production + (* State %d: *) + + val state: state -> unit + + (* Shifting () to state *) + + val shift: terminal -> state -> unit + + (* Reducing a production should be logged either as a reduction + event (for regular productions) or as an acceptance event (for + start productions). *) + + (* Reducing production / Accepting *) + + val reduce_or_accept: production -> unit + + (* Lookahead token is now (-) *) + + val lookahead_token: terminal -> Lexing.position -> Lexing.position -> unit + + (* Initiating error handling *) + + val initiating_error_handling: unit -> unit + + (* Resuming error handling *) + + val resuming_error_handling: unit -> unit + + (* Handling error in state *) + + val handling_error: state -> unit + + end end @@ -1118,11 +1102,14 @@ end module Engine = struct (******************************************************************************) (* *) -(* Menhir *) +(* Menhir *) (* *) -(* Copyright Inria. All rights reserved. This file is distributed under *) -(* the terms of the GNU Library General Public License version 2, with a *) -(* special exception on linking, as described in the file LICENSE. *) +(* François Pottier, Inria Paris *) +(* Yann Régis-Gianas, PPS, Université Paris Diderot *) +(* *) +(* Copyright Inria. All rights reserved. This file is distributed under the *) +(* terms of the GNU Library General Public License version 2, with a *) +(* special exception on linking, as described in the file LICENSE. *) (* *) (******************************************************************************) @@ -1269,7 +1256,8 @@ module Make (T : TABLE) = struct (* The following recursive group of functions are tail recursive, produce a checkpoint of type [semantic_value checkpoint], and cannot raise an - exception. *) + exception. A semantic action can raise [Error], but this exception is + immediately caught within [reduce]. *) let rec run env please_discard : semantic_value checkpoint = @@ -1425,22 +1413,33 @@ module Make (T : TABLE) = struct (* Invoke the semantic action. The semantic action is responsible for truncating the stack and pushing a new cell onto the stack, which - contains a new semantic value. The semantic action returns a new stack, + contains a new semantic value. It can raise [Error]. *) + + (* If the semantic action terminates normally, it returns a new stack, which becomes the current stack. *) - let stack = T.semantic_action prod env in + (* If the semantic action raises [Error], we catch it and initiate error + handling. *) + + (* This [match/with/exception] construct requires OCaml 4.02. *) - (* By our convention, the semantic action has produced an updated - stack. The state now found in the top stack cell is the return - state. *) + match T.semantic_action prod env with + | stack -> - (* Perform a goto transition. The target state is determined - by consulting the goto table at the return state and at - production [prod]. *) + (* By our convention, the semantic action has produced an updated + stack. The state now found in the top stack cell is the return + state. *) - let current = T.goto_prod stack.state prod in - let env = { env with stack; current } in - run env false + (* Perform a goto transition. The target state is determined + by consulting the goto table at the return state and at + production [prod]. *) + + let current = T.goto_prod stack.state prod in + let env = { env with stack; current } in + run env false + + | exception Error -> + initiate env and accept env prod = (* Log an accept event. *) @@ -1619,10 +1618,10 @@ module Make (T : TABLE) = struct checkpoint of the form [InputNeeded env]. It checks that [checkpoint] is indeed of this form, and invokes [discard]. *) - (* [resume checkpoint] is invoked by the user in response to a checkpoint - of the form [Shifting _], [AboutToReduce _], or [HandlingError env]. It - checks that [checkpoint] is indeed of this form, and invokes [reduce] - or [error], as appropriate. *) + (* [resume checkpoint] is invoked by the user in response to a checkpoint of + the form [AboutToReduce (env, prod)] or [HandlingError env]. It checks + that [checkpoint] is indeed of this form, and invokes [reduce] or + [error], as appropriate. *) (* In reality, [offer] and [resume] accept an argument of type [semantic_value checkpoint] and produce a checkpoint of the same type. @@ -2064,11 +2063,14 @@ end module ErrorReports = struct (******************************************************************************) (* *) -(* Menhir *) +(* Menhir *) +(* *) +(* François Pottier, Inria Paris *) +(* Yann Régis-Gianas, PPS, Université Paris Diderot *) (* *) -(* Copyright Inria. All rights reserved. This file is distributed under *) -(* the terms of the GNU Library General Public License version 2, with a *) -(* special exception on linking, as described in the file LICENSE. *) +(* Copyright Inria. All rights reserved. This file is distributed under the *) +(* terms of the GNU Library General Public License version 2, with a *) +(* special exception on linking, as described in the file LICENSE. *) (* *) (******************************************************************************) @@ -2227,11 +2229,14 @@ end module LexerUtil = struct (******************************************************************************) (* *) -(* Menhir *) +(* Menhir *) (* *) -(* Copyright Inria. All rights reserved. This file is distributed under *) -(* the terms of the GNU Library General Public License version 2, with a *) -(* special exception on linking, as described in the file LICENSE. *) +(* François Pottier, Inria Paris *) +(* Yann Régis-Gianas, PPS, Université Paris Diderot *) +(* *) +(* Copyright Inria. All rights reserved. This file is distributed under the *) +(* terms of the GNU Library General Public License version 2, with a *) +(* special exception on linking, as described in the file LICENSE. *) (* *) (******************************************************************************) @@ -2275,40 +2280,18 @@ let range ((pos1, pos2) as range) = sprintf "File \"%s\", line %d, characters %d-%d:\n" file line char1 char2 (* use [char1 + 1] and [char2 + 1] if *not* using Caml mode *) - -let tabulate (type a) (is_eof : a -> bool) (lexer : unit -> a) : unit -> a = - (* Read tokens from the lexer until we hit an EOF token. *) - let rec read tokens = - let token = lexer() in - let tokens = token :: tokens in - if is_eof token then - (* Once done, reverse the list and convert it to an array. *) - tokens |> List.rev |> Array.of_list - else - read tokens - in - (* We now have an array of tokens. *) - let tokens = read [] in - (* Define a pseudo-lexer that reads from this array. *) - let i = ref 0 in - let lexer () = - (* If this assertion is violated, then the parser is trying to read - past an EOF token. This should not happen. *) - assert (!i < Array.length tokens); - let token = Array.unsafe_get tokens !i in - i := !i + 1; - token - in - lexer end module Printers = struct (******************************************************************************) (* *) -(* Menhir *) +(* Menhir *) (* *) -(* Copyright Inria. All rights reserved. This file is distributed under *) -(* the terms of the GNU Library General Public License version 2, with a *) -(* special exception on linking, as described in the file LICENSE. *) +(* François Pottier, Inria Paris *) +(* Yann Régis-Gianas, PPS, Université Paris Diderot *) +(* *) +(* Copyright Inria. All rights reserved. This file is distributed under the *) +(* terms of the GNU Library General Public License version 2, with a *) +(* special exception on linking, as described in the file LICENSE. *) (* *) (******************************************************************************) @@ -2424,11 +2407,14 @@ end module InfiniteArray = struct (******************************************************************************) (* *) -(* Menhir *) +(* Menhir *) +(* *) +(* François Pottier, Inria Paris *) +(* Yann Régis-Gianas, PPS, Université Paris Diderot *) (* *) -(* Copyright Inria. All rights reserved. This file is distributed under *) -(* the terms of the GNU Library General Public License version 2, with a *) -(* special exception on linking, as described in the file LICENSE. *) +(* Copyright Inria. All rights reserved. This file is distributed under the *) +(* terms of the GNU Library General Public License version 2, with a *) +(* special exception on linking, as described in the file LICENSE. *) (* *) (******************************************************************************) @@ -2486,11 +2472,14 @@ end module PackedIntArray = struct (******************************************************************************) (* *) -(* Menhir *) +(* Menhir *) +(* *) +(* François Pottier, Inria Paris *) +(* Yann Régis-Gianas, PPS, Université Paris Diderot *) (* *) -(* Copyright Inria. All rights reserved. This file is distributed under *) -(* the terms of the GNU Library General Public License version 2, with a *) -(* special exception on linking, as described in the file LICENSE. *) +(* Copyright Inria. All rights reserved. This file is distributed under the *) +(* terms of the GNU Library General Public License version 2, with a *) +(* special exception on linking, as described in the file LICENSE. *) (* *) (******************************************************************************) @@ -2692,11 +2681,14 @@ end module RowDisplacement = struct (******************************************************************************) (* *) -(* Menhir *) +(* Menhir *) (* *) -(* Copyright Inria. All rights reserved. This file is distributed under *) -(* the terms of the GNU Library General Public License version 2, with a *) -(* special exception on linking, as described in the file LICENSE. *) +(* François Pottier, Inria Paris *) +(* Yann Régis-Gianas, PPS, Université Paris Diderot *) +(* *) +(* Copyright Inria. All rights reserved. This file is distributed under the *) +(* terms of the GNU Library General Public License version 2, with a *) +(* special exception on linking, as described in the file LICENSE. *) (* *) (******************************************************************************) @@ -2949,11 +2941,14 @@ end module LinearizedArray = struct (******************************************************************************) (* *) -(* Menhir *) +(* Menhir *) +(* *) +(* François Pottier, Inria Paris *) +(* Yann Régis-Gianas, PPS, Université Paris Diderot *) (* *) -(* Copyright Inria. All rights reserved. This file is distributed under *) -(* the terms of the GNU Library General Public License version 2, with a *) -(* special exception on linking, as described in the file LICENSE. *) +(* Copyright Inria. All rights reserved. This file is distributed under the *) +(* terms of the GNU Library General Public License version 2, with a *) +(* special exception on linking, as described in the file LICENSE. *) (* *) (******************************************************************************) @@ -3028,11 +3023,14 @@ end module TableFormat = struct (******************************************************************************) (* *) -(* Menhir *) +(* Menhir *) (* *) -(* Copyright Inria. All rights reserved. This file is distributed under *) -(* the terms of the GNU Library General Public License version 2, with a *) -(* special exception on linking, as described in the file LICENSE. *) +(* François Pottier, Inria Paris *) +(* Yann Régis-Gianas, PPS, Université Paris Diderot *) +(* *) +(* Copyright Inria. All rights reserved. This file is distributed under the *) +(* terms of the GNU Library General Public License version 2, with a *) +(* special exception on linking, as described in the file LICENSE. *) (* *) (******************************************************************************) @@ -3164,11 +3162,14 @@ end module InspectionTableFormat = struct (******************************************************************************) (* *) -(* Menhir *) +(* Menhir *) +(* *) +(* François Pottier, Inria Paris *) +(* Yann Régis-Gianas, PPS, Université Paris Diderot *) (* *) -(* Copyright Inria. All rights reserved. This file is distributed under *) -(* the terms of the GNU Library General Public License version 2, with a *) -(* special exception on linking, as described in the file LICENSE. *) +(* Copyright Inria. All rights reserved. This file is distributed under the *) +(* terms of the GNU Library General Public License version 2, with a *) +(* special exception on linking, as described in the file LICENSE. *) (* *) (******************************************************************************) @@ -3237,11 +3238,14 @@ end module InspectionTableInterpreter = struct (******************************************************************************) (* *) -(* Menhir *) +(* Menhir *) +(* *) +(* François Pottier, Inria Paris *) +(* Yann Régis-Gianas, PPS, Université Paris Diderot *) (* *) -(* Copyright Inria. All rights reserved. This file is distributed under *) -(* the terms of the GNU Library General Public License version 2, with a *) -(* special exception on linking, as described in the file LICENSE. *) +(* Copyright Inria. All rights reserved. This file is distributed under the *) +(* terms of the GNU Library General Public License version 2, with a *) +(* special exception on linking, as described in the file LICENSE. *) (* *) (******************************************************************************) @@ -3545,11 +3549,14 @@ end module TableInterpreter = struct (******************************************************************************) (* *) -(* Menhir *) +(* Menhir *) (* *) -(* Copyright Inria. All rights reserved. This file is distributed under *) -(* the terms of the GNU Library General Public License version 2, with a *) -(* special exception on linking, as described in the file LICENSE. *) +(* François Pottier, Inria Paris *) +(* Yann Régis-Gianas, PPS, Université Paris Diderot *) +(* *) +(* Copyright Inria. All rights reserved. This file is distributed under the *) +(* terms of the GNU Library General Public License version 2, with a *) +(* special exception on linking, as described in the file LICENSE. *) (* *) (******************************************************************************) @@ -3623,12 +3630,9 @@ module MakeEngineTable (T : TableFormat.TABLES) = struct let default_reduction state defred nodefred env = let code = PackedIntArray.get T.default_reduction state in if code = 0 then - (* no default reduction *) nodefred env else - (* default reduction *) - let prod = code - 1 in - defred env prod + defred env (code - 1) let is_start prod = prod < T.start @@ -3662,59 +3666,13 @@ module MakeEngineTable (T : TableFormat.TABLES) = struct assert (c = 0); fail env - let maybe_shift_t state terminal = - match PackedIntArray.unflatten1 T.error state terminal with - | 1 -> - let action = unmarshal2 T.action state terminal in - let opcode = action land 0b11 in - if opcode >= 0b10 then - (* 0b10 : shift/discard *) - (* 0b11 : shift/nodiscard *) - let state' = action lsr 2 in - Some state' - else - (* 0b01 : reduce *) - (* 0b00 : cannot happen *) - None - | c -> - assert (c = 0); - None - - let may_reduce_prod state terminal prod = - let code = PackedIntArray.get T.default_reduction state in - if code = 0 then - (* no default reduction *) - match PackedIntArray.unflatten1 T.error state terminal with - | 1 -> - let action = unmarshal2 T.action state terminal in - let opcode = action land 0b11 in - if opcode >= 0b10 then - (* 0b10 : shift/discard *) - (* 0b11 : shift/nodiscard *) - false - else - (* 0b01 : reduce *) - (* 0b00 : cannot happen *) - let prod' = action lsr 2 in - prod = prod' - | c -> - assert (c = 0); - false - else - (* default reduction *) - let prod' = code - 1 in - prod = prod' - let goto_nt state nt = let code = unmarshal2 T.goto state nt in (* code = 1 + state *) code - 1 - let[@inline] lhs prod = - PackedIntArray.get T.lhs prod - let goto_prod state prod = - goto_nt state (lhs prod) + goto_nt state (PackedIntArray.get T.lhs prod) let maybe_goto_nt state nt = let code = unmarshal2 T.goto state nt in @@ -3834,5 +3792,5 @@ module MakeEngineTable (T : TableFormat.TABLES) = struct end end module StaticVersion = struct -let require_20231231 = () +let require_20210419 = () end diff --git a/src/ocaml/preprocess/menhirLib.mli b/src/ocaml/preprocess/menhirLib.mli index 2156459dc..9d19a7ca6 100644 --- a/src/ocaml/preprocess/menhirLib.mli +++ b/src/ocaml/preprocess/menhirLib.mli @@ -1,11 +1,14 @@ module General : sig (******************************************************************************) (* *) -(* Menhir *) +(* Menhir *) (* *) -(* Copyright Inria. All rights reserved. This file is distributed under *) -(* the terms of the GNU Library General Public License version 2, with a *) -(* special exception on linking, as described in the file LICENSE. *) +(* François Pottier, Inria Paris *) +(* Yann Régis-Gianas, PPS, Université Paris Diderot *) +(* *) +(* Copyright Inria. All rights reserved. This file is distributed under the *) +(* terms of the GNU Library General Public License version 2, with a *) +(* special exception on linking, as described in the file LICENSE. *) (* *) (******************************************************************************) @@ -62,11 +65,14 @@ end module Convert : sig (******************************************************************************) (* *) -(* Menhir *) +(* Menhir *) +(* *) +(* François Pottier, Inria Paris *) +(* Yann Régis-Gianas, PPS, Université Paris Diderot *) (* *) -(* Copyright Inria. All rights reserved. This file is distributed under *) -(* the terms of the GNU Library General Public License version 2, with a *) -(* special exception on linking, as described in the file LICENSE. *) +(* Copyright Inria. All rights reserved. This file is distributed under the *) +(* terms of the GNU Library General Public License version 2, with a *) +(* special exception on linking, as described in the file LICENSE. *) (* *) (******************************************************************************) @@ -138,11 +144,14 @@ end module IncrementalEngine : sig (******************************************************************************) (* *) -(* Menhir *) +(* Menhir *) +(* *) +(* François Pottier, Inria Paris *) +(* Yann Régis-Gianas, PPS, Université Paris Diderot *) (* *) -(* Copyright Inria. All rights reserved. This file is distributed under *) -(* the terms of the GNU Library General Public License version 2, with a *) -(* special exception on linking, as described in the file LICENSE. *) +(* Copyright Inria. All rights reserved. This file is distributed under the *) +(* terms of the GNU Library General Public License version 2, with a *) +(* special exception on linking, as described in the file LICENSE. *) (* *) (******************************************************************************) @@ -223,12 +232,12 @@ module type INCREMENTAL_ENGINE = sig 'a checkpoint (* [resume] allows the user to resume the parser after it has suspended - itself with a checkpoint of the form [Shifting _], [AboutToReduce _], or - [HandlingError _]. [resume] expects the old checkpoint and produces a + itself with a checkpoint of the form [AboutToReduce (env, prod)] or + [HandlingError env]. [resume] expects the old checkpoint and produces a new checkpoint. It does not raise any exception. *) (* The optional argument [strategy] influences the manner in which [resume] - deals with checkpoints of the form [HandlingError _]. Its default value + deals with checkpoints of the form [ErrorHandling _]. Its default value is [`Legacy]. It can be briefly described as follows: - If the [error] token is used only to report errors (that is, if the @@ -624,11 +633,14 @@ end module EngineTypes : sig (******************************************************************************) (* *) -(* Menhir *) +(* Menhir *) (* *) -(* Copyright Inria. All rights reserved. This file is distributed under *) -(* the terms of the GNU Library General Public License version 2, with a *) -(* special exception on linking, as described in the file LICENSE. *) +(* François Pottier, Inria Paris *) +(* Yann Régis-Gianas, PPS, Université Paris Diderot *) +(* *) +(* Copyright Inria. All rights reserved. This file is distributed under the *) +(* terms of the GNU Library General Public License version 2, with a *) +(* special exception on linking, as described in the file LICENSE. *) (* *) (******************************************************************************) @@ -709,53 +721,6 @@ type ('state, 'semantic_value, 'token) env = { (* --------------------------------------------------------------------------- *) -(* A number of logging hooks are used to (optionally) emit logging messages. *) - -(* The comments indicate the conventional messages that correspond - to these hooks in the code-based back-end; see [CodeBackend]. *) - -module type LOG = sig - - type state - type terminal - type production - - (* State %d: *) - - val state: state -> unit - - (* Shifting () to state *) - - val shift: terminal -> state -> unit - - (* Reducing a production should be logged either as a reduction - event (for regular productions) or as an acceptance event (for - start productions). *) - - (* Reducing production / Accepting *) - - val reduce_or_accept: production -> unit - - (* Lookahead token is now (-) *) - - val lookahead_token: terminal -> Lexing.position -> Lexing.position -> unit - - (* Initiating error handling *) - - val initiating_error_handling: unit -> unit - - (* Resuming error handling *) - - val resuming_error_handling: unit -> unit - - (* Handling error in state *) - - val handling_error: state -> unit - -end - -(* --------------------------------------------------------------------------- *) - (* This signature describes the parameters that must be supplied to the LR engine. *) @@ -877,16 +842,6 @@ module type TABLE = sig ('env -> 'answer) -> 'env -> 'answer - (**[maybe_shift_t s t] determines whether there exists a transition out of - the state [s], labeled with the terminal symbol [t], to some state - [s']. If so, it returns [Some s']. Otherwise, it returns [None]. *) - val maybe_shift_t : state -> terminal -> state option - - (**[may_reduce_prod s t prod] determines whether in the state [s], with - lookahead symbol [t], the automaton reduces production [prod]. This test - accounts for the possible existence of a default reduction. *) - val may_reduce_prod : state -> terminal -> production -> bool - (* This is the automaton's goto table. This table maps a pair of a state and a nonterminal symbol to a new state. By extension, it also maps a pair of a state and a production to a new state. *) @@ -902,11 +857,6 @@ module type TABLE = sig val goto_prod: state -> production -> state val maybe_goto_nt: state -> nonterminal -> state option - (* [lhs prod] returns the left-hand side of production [prod], - a nonterminal symbol. *) - - val lhs: production -> nonterminal - (* [is_start prod] tells whether the production [prod] is a start production. *) val is_start: production -> bool @@ -947,17 +897,51 @@ module type TABLE = sig val may_reduce: state -> production -> bool + (* The LR engine requires a number of hooks, which are used for logging. *) + + (* The comments below indicate the conventional messages that correspond + to these hooks in the code-based back-end; see [CodeBackend]. *) + (* If the flag [log] is false, then the logging functions are not called. If it is [true], then they are called. *) val log : bool - (* The logging hooks required by the LR engine. *) + module Log : sig - module Log : LOG - with type state := state - and type terminal := terminal - and type production := production + (* State %d: *) + + val state: state -> unit + + (* Shifting () to state *) + + val shift: terminal -> state -> unit + + (* Reducing a production should be logged either as a reduction + event (for regular productions) or as an acceptance event (for + start productions). *) + + (* Reducing production / Accepting *) + + val reduce_or_accept: production -> unit + + (* Lookahead token is now (-) *) + + val lookahead_token: terminal -> Lexing.position -> Lexing.position -> unit + + (* Initiating error handling *) + + val initiating_error_handling: unit -> unit + + (* Resuming error handling *) + + val resuming_error_handling: unit -> unit + + (* Handling error in state *) + + val handling_error: state -> unit + + end end @@ -1050,11 +1034,14 @@ end module Engine : sig (******************************************************************************) (* *) -(* Menhir *) +(* Menhir *) (* *) -(* Copyright Inria. All rights reserved. This file is distributed under *) -(* the terms of the GNU Library General Public License version 2, with a *) -(* special exception on linking, as described in the file LICENSE. *) +(* François Pottier, Inria Paris *) +(* Yann Régis-Gianas, PPS, Université Paris Diderot *) +(* *) +(* Copyright Inria. All rights reserved. This file is distributed under the *) +(* terms of the GNU Library General Public License version 2, with a *) +(* special exception on linking, as described in the file LICENSE. *) (* *) (******************************************************************************) @@ -1080,11 +1067,14 @@ end module ErrorReports : sig (******************************************************************************) (* *) -(* Menhir *) +(* Menhir *) +(* *) +(* François Pottier, Inria Paris *) +(* Yann Régis-Gianas, PPS, Université Paris Diderot *) (* *) -(* Copyright Inria. All rights reserved. This file is distributed under *) -(* the terms of the GNU Library General Public License version 2, with a *) -(* special exception on linking, as described in the file LICENSE. *) +(* Copyright Inria. All rights reserved. This file is distributed under the *) +(* terms of the GNU Library General Public License version 2, with a *) +(* special exception on linking, as described in the file LICENSE. *) (* *) (******************************************************************************) @@ -1157,61 +1147,57 @@ end module LexerUtil : sig (******************************************************************************) (* *) -(* Menhir *) +(* Menhir *) +(* *) +(* François Pottier, Inria Paris *) +(* Yann Régis-Gianas, PPS, Université Paris Diderot *) (* *) -(* Copyright Inria. All rights reserved. This file is distributed under *) -(* the terms of the GNU Library General Public License version 2, with a *) -(* special exception on linking, as described in the file LICENSE. *) +(* Copyright Inria. All rights reserved. This file is distributed under the *) +(* terms of the GNU Library General Public License version 2, with a *) +(* special exception on linking, as described in the file LICENSE. *) (* *) (******************************************************************************) open Lexing -(**[init filename lexbuf] initializes the lexing buffer [lexbuf] so +(* [init filename lexbuf] initializes the lexing buffer [lexbuf] so that the positions that are subsequently read from it refer to the file [filename]. It returns [lexbuf]. *) + val init: string -> lexbuf -> lexbuf -(**[read filename] reads the entire contents of the file [filename] and +(* [read filename] reads the entire contents of the file [filename] and returns a pair of this content (a string) and a lexing buffer that has been initialized, based on this string. *) + val read: string -> string * lexbuf -(**[newline lexbuf] increments the line counter stored within [lexbuf]. It +(* [newline lexbuf] increments the line counter stored within [lexbuf]. It should be invoked by the lexer itself every time a newline character is consumed. This allows maintaining a current the line number in [lexbuf]. *) + val newline: lexbuf -> unit -(**[range (startpos, endpos)] prints a textual description of the range +(* [range (startpos, endpos)] prints a textual description of the range delimited by the start and end positions [startpos] and [endpos]. This description is one line long and ends in a newline character. This description mentions the file name, the line number, and a range of characters on this line. The line number is correct only if [newline] has been correctly used, as described dabove. *) -val range: position * position -> string -(**[tabulate is_eof lexer] tabulates the lexer [lexer]: that is, it - immediately runs this lexer all the way until an EOF token is found, stores - the tokens in an array in memory, and returns a new lexer which (when - invoked) reads tokens from this array. The function [lexer] is not allowed - to raise an exception, and must produce a finite stream of tokens: that is, - after a finite number of invocations, it must return a token that is - identified by the function [is_eof] as an EOF token. - - Both the existing lexer [lexer] and the new lexer returned by [tabulate - is_eof lexer] are functions of type [unit -> 'a], where the type ['a] is - likely to be instantiated with a triple of a token and two positions, as - per the revised lexer API described in the module {!Convert}. *) -val tabulate: ('a -> bool) -> (unit -> 'a) -> (unit -> 'a) +val range: position * position -> string end module Printers : sig (******************************************************************************) (* *) -(* Menhir *) +(* Menhir *) +(* *) +(* François Pottier, Inria Paris *) +(* Yann Régis-Gianas, PPS, Université Paris Diderot *) (* *) -(* Copyright Inria. All rights reserved. This file is distributed under *) -(* the terms of the GNU Library General Public License version 2, with a *) -(* special exception on linking, as described in the file LICENSE. *) +(* Copyright Inria. All rights reserved. This file is distributed under the *) +(* terms of the GNU Library General Public License version 2, with a *) +(* special exception on linking, as described in the file LICENSE. *) (* *) (******************************************************************************) @@ -1282,11 +1268,14 @@ end module InfiniteArray : sig (******************************************************************************) (* *) -(* Menhir *) +(* Menhir *) (* *) -(* Copyright Inria. All rights reserved. This file is distributed under *) -(* the terms of the GNU Library General Public License version 2, with a *) -(* special exception on linking, as described in the file LICENSE. *) +(* François Pottier, Inria Paris *) +(* Yann Régis-Gianas, PPS, Université Paris Diderot *) +(* *) +(* Copyright Inria. All rights reserved. This file is distributed under the *) +(* terms of the GNU Library General Public License version 2, with a *) +(* special exception on linking, as described in the file LICENSE. *) (* *) (******************************************************************************) @@ -1317,11 +1306,14 @@ end module PackedIntArray : sig (******************************************************************************) (* *) -(* Menhir *) +(* Menhir *) +(* *) +(* François Pottier, Inria Paris *) +(* Yann Régis-Gianas, PPS, Université Paris Diderot *) (* *) -(* Copyright Inria. All rights reserved. This file is distributed under *) -(* the terms of the GNU Library General Public License version 2, with a *) -(* special exception on linking, as described in the file LICENSE. *) +(* Copyright Inria. All rights reserved. This file is distributed under the *) +(* terms of the GNU Library General Public License version 2, with a *) +(* special exception on linking, as described in the file LICENSE. *) (* *) (******************************************************************************) @@ -1373,11 +1365,14 @@ end module RowDisplacement : sig (******************************************************************************) (* *) -(* Menhir *) +(* Menhir *) (* *) -(* Copyright Inria. All rights reserved. This file is distributed under *) -(* the terms of the GNU Library General Public License version 2, with a *) -(* special exception on linking, as described in the file LICENSE. *) +(* François Pottier, Inria Paris *) +(* Yann Régis-Gianas, PPS, Université Paris Diderot *) +(* *) +(* Copyright Inria. All rights reserved. This file is distributed under the *) +(* terms of the GNU Library General Public License version 2, with a *) +(* special exception on linking, as described in the file LICENSE. *) (* *) (******************************************************************************) @@ -1434,11 +1429,14 @@ end module LinearizedArray : sig (******************************************************************************) (* *) -(* Menhir *) +(* Menhir *) +(* *) +(* François Pottier, Inria Paris *) +(* Yann Régis-Gianas, PPS, Université Paris Diderot *) (* *) -(* Copyright Inria. All rights reserved. This file is distributed under *) -(* the terms of the GNU Library General Public License version 2, with a *) -(* special exception on linking, as described in the file LICENSE. *) +(* Copyright Inria. All rights reserved. This file is distributed under the *) +(* terms of the GNU Library General Public License version 2, with a *) +(* special exception on linking, as described in the file LICENSE. *) (* *) (******************************************************************************) @@ -1505,11 +1503,14 @@ end module TableFormat : sig (******************************************************************************) (* *) -(* Menhir *) +(* Menhir *) (* *) -(* Copyright Inria. All rights reserved. This file is distributed under *) -(* the terms of the GNU Library General Public License version 2, with a *) -(* special exception on linking, as described in the file LICENSE. *) +(* François Pottier, Inria Paris *) +(* Yann Régis-Gianas, PPS, Université Paris Diderot *) +(* *) +(* Copyright Inria. All rights reserved. This file is distributed under the *) +(* terms of the GNU Library General Public License version 2, with a *) +(* special exception on linking, as described in the file LICENSE. *) (* *) (******************************************************************************) @@ -1641,11 +1642,14 @@ end module InspectionTableFormat : sig (******************************************************************************) (* *) -(* Menhir *) +(* Menhir *) +(* *) +(* François Pottier, Inria Paris *) +(* Yann Régis-Gianas, PPS, Université Paris Diderot *) (* *) -(* Copyright Inria. All rights reserved. This file is distributed under *) -(* the terms of the GNU Library General Public License version 2, with a *) -(* special exception on linking, as described in the file LICENSE. *) +(* Copyright Inria. All rights reserved. This file is distributed under the *) +(* terms of the GNU Library General Public License version 2, with a *) +(* special exception on linking, as described in the file LICENSE. *) (* *) (******************************************************************************) @@ -1714,11 +1718,14 @@ end module InspectionTableInterpreter : sig (******************************************************************************) (* *) -(* Menhir *) +(* Menhir *) (* *) -(* Copyright Inria. All rights reserved. This file is distributed under *) -(* the terms of the GNU Library General Public License version 2, with a *) -(* special exception on linking, as described in the file LICENSE. *) +(* François Pottier, Inria Paris *) +(* Yann Régis-Gianas, PPS, Université Paris Diderot *) +(* *) +(* Copyright Inria. All rights reserved. This file is distributed under the *) +(* terms of the GNU Library General Public License version 2, with a *) +(* special exception on linking, as described in the file LICENSE. *) (* *) (******************************************************************************) @@ -1763,11 +1770,14 @@ end module TableInterpreter : sig (******************************************************************************) (* *) -(* Menhir *) +(* Menhir *) +(* *) +(* François Pottier, Inria Paris *) +(* Yann Régis-Gianas, PPS, Université Paris Diderot *) (* *) -(* Copyright Inria. All rights reserved. This file is distributed under *) -(* the terms of the GNU Library General Public License version 2, with a *) -(* special exception on linking, as described in the file LICENSE. *) +(* Copyright Inria. All rights reserved. This file is distributed under the *) +(* terms of the GNU Library General Public License version 2, with a *) +(* special exception on linking, as described in the file LICENSE. *) (* *) (******************************************************************************) @@ -1793,5 +1803,5 @@ module MakeEngineTable and type nonterminal = int end module StaticVersion : sig -val require_20231231: unit +val require_20210419: unit end diff --git a/src/ocaml/preprocess/parser_raw.ml b/src/ocaml/preprocess/parser_raw.ml index 313ce59ae..950fb54d1 100644 --- a/src/ocaml/preprocess/parser_raw.ml +++ b/src/ocaml/preprocess/parser_raw.ml @@ -2,16 +2,12 @@ (* This generated code requires the following version of MenhirLib: *) let () = - MenhirLib.StaticVersion.require_20231231 + MenhirLib.StaticVersion.require_20210419 module MenhirBasics = struct exception Error - let _eRR = - fun _s -> - raise Error - type token = | WITH | WHILE @@ -23,7 +19,7 @@ module MenhirBasics = struct | UIDENT of ( # 1155 "src/ocaml/preprocess/parser_raw.mly" (string) -# 27 "src/ocaml/preprocess/parser_raw.ml" +# 23 "src/ocaml/preprocess/parser_raw.ml" ) | TYPE | TRY @@ -35,7 +31,7 @@ module MenhirBasics = struct | STRING of ( # 1141 "src/ocaml/preprocess/parser_raw.mly" (string * Location.t * string option) -# 39 "src/ocaml/preprocess/parser_raw.ml" +# 35 "src/ocaml/preprocess/parser_raw.ml" ) | STAR | STACK @@ -49,12 +45,12 @@ module MenhirBasics = struct | QUOTED_STRING_ITEM of ( # 1146 "src/ocaml/preprocess/parser_raw.mly" (string * Location.t * string * Location.t * string option) -# 53 "src/ocaml/preprocess/parser_raw.ml" +# 49 "src/ocaml/preprocess/parser_raw.ml" ) | QUOTED_STRING_EXPR of ( # 1143 "src/ocaml/preprocess/parser_raw.mly" (string * Location.t * string * Location.t * string option) -# 58 "src/ocaml/preprocess/parser_raw.ml" +# 54 "src/ocaml/preprocess/parser_raw.ml" ) | QUOTE | QUESTION @@ -62,7 +58,7 @@ module MenhirBasics = struct | PREFIXOP of ( # 1124 "src/ocaml/preprocess/parser_raw.mly" (string) -# 66 "src/ocaml/preprocess/parser_raw.ml" +# 62 "src/ocaml/preprocess/parser_raw.ml" ) | PLUSEQ | PLUSDOT @@ -73,7 +69,7 @@ module MenhirBasics = struct | OPTLABEL of ( # 1116 "src/ocaml/preprocess/parser_raw.mly" (string) -# 77 "src/ocaml/preprocess/parser_raw.ml" +# 73 "src/ocaml/preprocess/parser_raw.ml" ) | OPEN | ONCE @@ -94,12 +90,12 @@ module MenhirBasics = struct | LIDENT of ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 98 "src/ocaml/preprocess/parser_raw.ml" +# 94 "src/ocaml/preprocess/parser_raw.ml" ) | LETOP of ( # 1074 "src/ocaml/preprocess/parser_raw.mly" (string) -# 103 "src/ocaml/preprocess/parser_raw.ml" +# 99 "src/ocaml/preprocess/parser_raw.ml" ) | LET | LESSMINUS @@ -120,41 +116,41 @@ module MenhirBasics = struct | LABEL of ( # 1082 "src/ocaml/preprocess/parser_raw.mly" (string) -# 124 "src/ocaml/preprocess/parser_raw.ml" +# 120 "src/ocaml/preprocess/parser_raw.ml" ) | KIND_OF | KIND_ABBREV | INT of ( # 1078 "src/ocaml/preprocess/parser_raw.mly" (string * char option) -# 131 "src/ocaml/preprocess/parser_raw.ml" +# 127 "src/ocaml/preprocess/parser_raw.ml" ) | INITIALIZER | INHERIT | INFIXOP4 of ( # 1072 "src/ocaml/preprocess/parser_raw.mly" (string) -# 138 "src/ocaml/preprocess/parser_raw.ml" +# 134 "src/ocaml/preprocess/parser_raw.ml" ) | INFIXOP3 of ( # 1071 "src/ocaml/preprocess/parser_raw.mly" (string) -# 143 "src/ocaml/preprocess/parser_raw.ml" +# 139 "src/ocaml/preprocess/parser_raw.ml" ) | INFIXOP2 of ( # 1070 "src/ocaml/preprocess/parser_raw.mly" (string) -# 148 "src/ocaml/preprocess/parser_raw.ml" +# 144 "src/ocaml/preprocess/parser_raw.ml" ) | INFIXOP1 of ( # 1069 "src/ocaml/preprocess/parser_raw.mly" (string) -# 153 "src/ocaml/preprocess/parser_raw.ml" +# 149 "src/ocaml/preprocess/parser_raw.ml" ) | INFIXOP0 of ( # 1066 "src/ocaml/preprocess/parser_raw.mly" (string) -# 158 "src/ocaml/preprocess/parser_raw.ml" +# 154 "src/ocaml/preprocess/parser_raw.ml" ) | INCLUDE | IN @@ -163,17 +159,17 @@ module MenhirBasics = struct | HASH_INT of ( # 1079 "src/ocaml/preprocess/parser_raw.mly" (string * char option) -# 167 "src/ocaml/preprocess/parser_raw.ml" +# 163 "src/ocaml/preprocess/parser_raw.ml" ) | HASH_FLOAT of ( # 1052 "src/ocaml/preprocess/parser_raw.mly" (string * char option) -# 172 "src/ocaml/preprocess/parser_raw.ml" +# 168 "src/ocaml/preprocess/parser_raw.ml" ) | HASHOP of ( # 1137 "src/ocaml/preprocess/parser_raw.mly" (string) -# 177 "src/ocaml/preprocess/parser_raw.ml" +# 173 "src/ocaml/preprocess/parser_raw.ml" ) | HASHLPAREN | HASHLBRACE @@ -190,7 +186,7 @@ module MenhirBasics = struct | FLOAT of ( # 1051 "src/ocaml/preprocess/parser_raw.mly" (string * char option) -# 194 "src/ocaml/preprocess/parser_raw.ml" +# 190 "src/ocaml/preprocess/parser_raw.ml" ) | FALSE | EXTERNAL @@ -206,7 +202,7 @@ module MenhirBasics = struct | DOTOP of ( # 1073 "src/ocaml/preprocess/parser_raw.mly" (string) -# 210 "src/ocaml/preprocess/parser_raw.ml" +# 206 "src/ocaml/preprocess/parser_raw.ml" ) | DOTLESS | DOTHASH @@ -216,14 +212,14 @@ module MenhirBasics = struct | DOCSTRING of ( # 1163 "src/ocaml/preprocess/parser_raw.mly" (Docstrings.docstring) -# 220 "src/ocaml/preprocess/parser_raw.ml" +# 216 "src/ocaml/preprocess/parser_raw.ml" ) | DO | CONSTRAINT | COMMENT of ( # 1162 "src/ocaml/preprocess/parser_raw.mly" (string * Location.t) -# 227 "src/ocaml/preprocess/parser_raw.ml" +# 223 "src/ocaml/preprocess/parser_raw.ml" ) | COMMA | COLONRBRACKET @@ -235,7 +231,7 @@ module MenhirBasics = struct | CHAR of ( # 1028 "src/ocaml/preprocess/parser_raw.mly" (char) -# 239 "src/ocaml/preprocess/parser_raw.ml" +# 235 "src/ocaml/preprocess/parser_raw.ml" ) | BEGIN | BARRBRACKET @@ -250,7 +246,7 @@ module MenhirBasics = struct | ANDOP of ( # 1075 "src/ocaml/preprocess/parser_raw.mly" (string) -# 254 "src/ocaml/preprocess/parser_raw.ml" +# 250 "src/ocaml/preprocess/parser_raw.ml" ) | AND | AMPERSAND @@ -260,6 +256,9 @@ end include MenhirBasics +let _eRR = + MenhirBasics.Error + # 25 "src/ocaml/preprocess/parser_raw.mly" @@ -1198,7 +1197,7 @@ let merloc startpos ?endpos x = { x with pexp_attributes = attr :: x.pexp_attributes } -# 1202 "src/ocaml/preprocess/parser_raw.ml" +# 1201 "src/ocaml/preprocess/parser_raw.ml" module Tables = struct @@ -1835,7 +1834,7 @@ module Tables = struct let _v : (string) = # 5312 "src/ocaml/preprocess/parser_raw.mly" ( "+" ) -# 1839 "src/ocaml/preprocess/parser_raw.ml" +# 1838 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -1860,7 +1859,7 @@ module Tables = struct let _v : (string) = # 5313 "src/ocaml/preprocess/parser_raw.mly" ( "+." ) -# 1864 "src/ocaml/preprocess/parser_raw.ml" +# 1863 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -1885,7 +1884,7 @@ module Tables = struct let _v : (Parsetree.core_type) = # 4530 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 1889 "src/ocaml/preprocess/parser_raw.ml" +# 1888 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -1928,41 +1927,39 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_ty_ in let _endpos = _endpos__1_ in - let _v = + let _v : (Parsetree.core_type) = let _1 = let _1 = - let _1 = - let tyvar = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let tyvar = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 1942 "src/ocaml/preprocess/parser_raw.ml" - - in +# 1940 "src/ocaml/preprocess/parser_raw.ml" + in + # 4533 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_alias(ty, Some tyvar, None) ) -# 1948 "src/ocaml/preprocess/parser_raw.ml" - - in - let _startpos__1_ = _startpos_ty_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 1946 "src/ocaml/preprocess/parser_raw.ml" + in + let _startpos__1_ = _startpos_ty_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 1958 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 1956 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4535 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 1964 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type)) - in +# 1962 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -2032,34 +2029,32 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_aliased_type_ in let _endpos = _endpos__7_ in - let _v = - let name = - let (_endpos__2_, _2) = (_endpos__2_inlined1_, _2_inlined1) in - let _1 = + let _v : (Parsetree.core_type) = let name = + let (_endpos__2_, _2) = (_endpos__2_inlined1_, _2_inlined1) in + let _1 = # 4233 "src/ocaml/preprocess/parser_raw.mly" ( Some _2 ) -# 2042 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos__1_ = _endpos__2_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 2038 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__2_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 2051 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__7_ in - let _symbolstartpos = _startpos_aliased_type_ in - let _sloc = (_symbolstartpos, _endpos) in - ( +# 2047 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__7_ in + let _symbolstartpos = _startpos_aliased_type_ in + let _sloc = (_symbolstartpos, _endpos) in + # 4542 "src/ocaml/preprocess/parser_raw.mly" ( let name = Option.map (fun x -> mkloc x name.loc) name.txt in mktyp ~loc:_sloc (Ptyp_alias (aliased_type, name, Some jkind)) ) -# 2061 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type)) - in +# 2057 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -2122,32 +2117,30 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_aliased_type_ in let _endpos = _endpos__7_ in - let _v = - let name = - let _1 = + let _v : (Parsetree.core_type) = let name = + let _1 = # 4235 "src/ocaml/preprocess/parser_raw.mly" ( None ) -# 2131 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 2125 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 2139 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__7_ in - let _symbolstartpos = _startpos_aliased_type_ in - let _sloc = (_symbolstartpos, _endpos) in - ( +# 2133 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__7_ in + let _symbolstartpos = _startpos_aliased_type_ in + let _sloc = (_symbolstartpos, _endpos) in + # 4542 "src/ocaml/preprocess/parser_raw.mly" ( let name = Option.map (fun x -> mkloc x name.loc) name.txt in mktyp ~loc:_sloc (Ptyp_alias (aliased_type, name, Some jkind)) ) -# 2149 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type)) - in +# 2143 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -2190,36 +2183,34 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined2_ in - let _v = - let attrs2 = - let _1 = _1_inlined2 in - + let _v : (Parser_types.let_binding) = let attrs2 = + let _1 = _1_inlined2 in + # 5399 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 2200 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_attrs2_ = _endpos__1_inlined2_ in - let attrs1 = - let _1 = _1_inlined1 in - +# 2192 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_attrs2_ = _endpos__1_inlined2_ in + let attrs1 = + let _1 = _1_inlined1 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 2209 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos_attrs2_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - ( +# 2201 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos_attrs2_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 3442 "src/ocaml/preprocess/parser_raw.mly" ( let attrs = attrs1 @ attrs2 in mklb ~loc:_sloc false body attrs ) -# 2221 "src/ocaml/preprocess/parser_raw.ml" - : (Parser_types.let_binding)) - in +# 2213 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -2243,7 +2234,7 @@ module Tables = struct let _v : (Longident.t) = # 5184 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 2247 "src/ocaml/preprocess/parser_raw.ml" +# 2238 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -2268,7 +2259,7 @@ module Tables = struct let _v : (Longident.t) = # 5185 "src/ocaml/preprocess/parser_raw.mly" ( Lident _1 ) -# 2272 "src/ocaml/preprocess/parser_raw.ml" +# 2263 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -2297,21 +2288,19 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined1_ in - let _v = - let _2 = - let _1 = _1_inlined1 in - + let _v : (Parsetree.modalities) = let _2 = + let _1 = _1_inlined1 in + # 4709 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 2307 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 2297 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4712 "src/ocaml/preprocess/parser_raw.mly" (_2) -# 2313 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.modalities)) - in +# 2303 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -2339,21 +2328,19 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined1_ in - let _v = - let _2 = - let _1 = _1_inlined1 in - + let _v : (Parsetree.modes) = let _2 = + let _1 = _1_inlined1 in + # 4673 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 2349 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 2337 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4677 "src/ocaml/preprocess/parser_raw.mly" (_2) -# 2355 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.modes)) - in +# 2343 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -2381,21 +2368,19 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined1_ in - let _v = - let _2 = - let _1 = _1_inlined1 in - + let _v : (Parsetree.modes) = let _2 = + let _1 = _1_inlined1 in + # 4673 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 2391 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 2377 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4694 "src/ocaml/preprocess/parser_raw.mly" (_2) -# 2397 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.modes)) - in +# 2383 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -2419,7 +2404,7 @@ module Tables = struct let _v : (Parsetree.core_type) = # 4876 "src/ocaml/preprocess/parser_raw.mly" ( type_ ) -# 2423 "src/ocaml/preprocess/parser_raw.ml" +# 2408 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -2441,45 +2426,43 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v = + let _v : (Parsetree.core_type) = let _1 = let _1 = - let _1 = - let tid = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let tid = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 2455 "src/ocaml/preprocess/parser_raw.ml" - - in - let tys = +# 2439 "src/ocaml/preprocess/parser_raw.ml" + + in + let tys = # 4916 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 2461 "src/ocaml/preprocess/parser_raw.ml" - in - +# 2445 "src/ocaml/preprocess/parser_raw.ml" + in + # 4880 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_constr (tid, tys) ) -# 2466 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 2450 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 2475 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 2459 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4897 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 2481 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type)) - in +# 2465 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -2507,46 +2490,44 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_ty_ in let _endpos = _endpos__1_ in - let _v = + let _v : (Parsetree.core_type) = let _1 = let _1 = - let _1 = - let tid = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let tid = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 2521 "src/ocaml/preprocess/parser_raw.ml" - - in - let tys = +# 2503 "src/ocaml/preprocess/parser_raw.ml" + + in + let tys = # 4918 "src/ocaml/preprocess/parser_raw.mly" ( [ ty ] ) -# 2527 "src/ocaml/preprocess/parser_raw.ml" - in - +# 2509 "src/ocaml/preprocess/parser_raw.ml" + in + # 4880 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_constr (tid, tys) ) -# 2532 "src/ocaml/preprocess/parser_raw.ml" - - in - let _startpos__1_ = _startpos_ty_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 2514 "src/ocaml/preprocess/parser_raw.ml" + in + let _startpos__1_ = _startpos_ty_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 2542 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 2524 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4897 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 2548 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type)) - in +# 2530 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -2588,61 +2569,59 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined1_ in - let _v = + let _v : (Parsetree.core_type) = let _1 = let _1 = - let _1 = - let tid = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let tid = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 2603 "src/ocaml/preprocess/parser_raw.ml" - - in +# 2583 "src/ocaml/preprocess/parser_raw.ml" + + in + let tys = let tys = - let tys = - let xs = -# 264 "" + let xs = +# 253 "" ( List.rev xs ) -# 2611 "src/ocaml/preprocess/parser_raw.ml" - in - +# 2591 "src/ocaml/preprocess/parser_raw.ml" + in + # 1478 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 2616 "src/ocaml/preprocess/parser_raw.ml" - - in +# 2596 "src/ocaml/preprocess/parser_raw.ml" + in + # 4922 "src/ocaml/preprocess/parser_raw.mly" ( tys ) -# 2622 "src/ocaml/preprocess/parser_raw.ml" - - in +# 2602 "src/ocaml/preprocess/parser_raw.ml" + in + # 4880 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_constr (tid, tys) ) -# 2628 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__1_inlined1_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 2608 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__1_inlined1_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 2638 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 2618 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4897 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 2644 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type)) - in +# 2624 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -2663,47 +2642,45 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v = + let _v : (Parsetree.core_type) = let _1 = let _1 = - let _1 = - let tid = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let tid = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 2677 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos_tid_, _startpos_tid_) = (_endpos__1_, _startpos__1_) in - let tys = +# 2655 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos_tid_, _startpos_tid_) = (_endpos__1_, _startpos__1_) in + let tys = # 4916 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 2684 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_tid_ = (_startpos_tid_, _endpos_tid_) in - +# 2662 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_tid_ = (_startpos_tid_, _endpos_tid_) in + # 4883 "src/ocaml/preprocess/parser_raw.mly" ( unboxed_type _loc_tid_ tid.txt tys ) -# 2690 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 2668 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 2699 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 2677 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4897 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 2705 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type)) - in +# 2683 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -2731,48 +2708,46 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_ty_ in let _endpos = _endpos__1_ in - let _v = + let _v : (Parsetree.core_type) = let _1 = let _1 = - let _1 = - let tid = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let tid = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 2745 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos_tid_, _startpos_tid_) = (_endpos__1_, _startpos__1_) in - let tys = +# 2721 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos_tid_, _startpos_tid_) = (_endpos__1_, _startpos__1_) in + let tys = # 4918 "src/ocaml/preprocess/parser_raw.mly" ( [ ty ] ) -# 2752 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_tid_ = (_startpos_tid_, _endpos_tid_) in - +# 2728 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_tid_ = (_startpos_tid_, _endpos_tid_) in + # 4883 "src/ocaml/preprocess/parser_raw.mly" ( unboxed_type _loc_tid_ tid.txt tys ) -# 2758 "src/ocaml/preprocess/parser_raw.ml" - - in - let _startpos__1_ = _startpos_ty_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 2734 "src/ocaml/preprocess/parser_raw.ml" + in + let _startpos__1_ = _startpos_ty_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 2768 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 2744 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4897 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 2774 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type)) - in +# 2750 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -2814,63 +2789,61 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined1_ in - let _v = + let _v : (Parsetree.core_type) = let _1 = let _1 = - let _1 = - let tid = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let tid = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 2829 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos_tid_, _startpos_tid_) = (_endpos__1_inlined1_, _startpos__1_inlined1_) in +# 2803 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos_tid_, _startpos_tid_) = (_endpos__1_inlined1_, _startpos__1_inlined1_) in + let tys = let tys = - let tys = - let xs = -# 264 "" + let xs = +# 253 "" ( List.rev xs ) -# 2838 "src/ocaml/preprocess/parser_raw.ml" - in - +# 2812 "src/ocaml/preprocess/parser_raw.ml" + in + # 1478 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 2843 "src/ocaml/preprocess/parser_raw.ml" - - in +# 2817 "src/ocaml/preprocess/parser_raw.ml" + in + # 4922 "src/ocaml/preprocess/parser_raw.mly" ( tys ) -# 2849 "src/ocaml/preprocess/parser_raw.ml" - - in - let _loc_tid_ = (_startpos_tid_, _endpos_tid_) in +# 2823 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_tid_ = (_startpos_tid_, _endpos_tid_) in + # 4883 "src/ocaml/preprocess/parser_raw.mly" ( unboxed_type _loc_tid_ tid.txt tys ) -# 2856 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__1_inlined1_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 2830 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__1_inlined1_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 2866 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 2840 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4897 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 2872 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type)) - in +# 2846 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -2898,46 +2871,44 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__2_ in let _endpos = _endpos__1_ in - let _v = + let _v : (Parsetree.core_type) = let _1 = let _1 = - let _1 = - let cid = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let cid = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 2912 "src/ocaml/preprocess/parser_raw.ml" - - in - let tys = +# 2884 "src/ocaml/preprocess/parser_raw.ml" + + in + let tys = # 4916 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 2918 "src/ocaml/preprocess/parser_raw.ml" - in - +# 2890 "src/ocaml/preprocess/parser_raw.ml" + in + # 4887 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_class (cid, tys) ) -# 2923 "src/ocaml/preprocess/parser_raw.ml" - - in - let _startpos__1_ = _startpos__2_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 2895 "src/ocaml/preprocess/parser_raw.ml" + in + let _startpos__1_ = _startpos__2_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 2933 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 2905 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4897 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 2939 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type)) - in +# 2911 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -2972,46 +2943,44 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_ty_ in let _endpos = _endpos__1_ in - let _v = + let _v : (Parsetree.core_type) = let _1 = let _1 = - let _1 = - let cid = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let cid = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 2986 "src/ocaml/preprocess/parser_raw.ml" - - in - let tys = +# 2956 "src/ocaml/preprocess/parser_raw.ml" + + in + let tys = # 4918 "src/ocaml/preprocess/parser_raw.mly" ( [ ty ] ) -# 2992 "src/ocaml/preprocess/parser_raw.ml" - in - +# 2962 "src/ocaml/preprocess/parser_raw.ml" + in + # 4887 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_class (cid, tys) ) -# 2997 "src/ocaml/preprocess/parser_raw.ml" - - in - let _startpos__1_ = _startpos_ty_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 2967 "src/ocaml/preprocess/parser_raw.ml" + in + let _startpos__1_ = _startpos_ty_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 3007 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 2977 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4897 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 3013 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type)) - in +# 2983 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -3060,61 +3029,59 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined1_ in - let _v = + let _v : (Parsetree.core_type) = let _1 = let _1 = - let _1 = - let cid = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let cid = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 3075 "src/ocaml/preprocess/parser_raw.ml" - - in +# 3043 "src/ocaml/preprocess/parser_raw.ml" + + in + let tys = let tys = - let tys = - let xs = -# 264 "" + let xs = +# 253 "" ( List.rev xs ) -# 3083 "src/ocaml/preprocess/parser_raw.ml" - in - +# 3051 "src/ocaml/preprocess/parser_raw.ml" + in + # 1478 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 3088 "src/ocaml/preprocess/parser_raw.ml" - - in +# 3056 "src/ocaml/preprocess/parser_raw.ml" + in + # 4922 "src/ocaml/preprocess/parser_raw.mly" ( tys ) -# 3094 "src/ocaml/preprocess/parser_raw.ml" - - in +# 3062 "src/ocaml/preprocess/parser_raw.ml" + in + # 4887 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_class (cid, tys) ) -# 3100 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__1_inlined1_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 3068 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__1_inlined1_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 3110 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 3078 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4897 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 3116 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type)) - in +# 3084 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -3149,41 +3116,39 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_type__ in - let _v = + let _v : (Parsetree.core_type) = let _1 = let _1 = - let _1 = - let mod_ident = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let mod_ident = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 3163 "src/ocaml/preprocess/parser_raw.ml" - - in +# 3129 "src/ocaml/preprocess/parser_raw.ml" + in + # 4891 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_open (mod_ident, type_) ) -# 3169 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos_type__ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 3135 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos_type__ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 3179 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 3145 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4897 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 3185 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type)) - in +# 3151 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -3211,29 +3176,27 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_ident_ in - let _v = - let _1 = - let _1 = + let _v : (Parsetree.core_type) = let _1 = + let _1 = # 4893 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_var (ident, None) ) -# 3220 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos__1_ = _endpos_ident_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 3184 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos_ident_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 3229 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 3193 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4897 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 3235 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type)) - in +# 3199 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -3254,28 +3217,26 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v = - let _1 = - let _1 = + let _v : (Parsetree.core_type) = let _1 = + let _1 = # 4895 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_any None ) -# 3263 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 3225 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 3271 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 3233 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4897 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 3277 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type)) - in +# 3239 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -3331,16 +3292,14 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__6_ in - let _v = - let _endpos = _endpos__6_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - ( + let _v : (Parsetree.core_type) = let _endpos = _endpos__6_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 4899 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc (Ptyp_var (name, Some jkind)) ) -# 3342 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type)) - in +# 3302 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -3389,16 +3348,14 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__5_ in - let _v = - let _endpos = _endpos__5_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - ( + let _v : (Parsetree.core_type) = let _endpos = _endpos__5_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 4901 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc (Ptyp_any (Some jkind)) ) -# 3400 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type)) - in +# 3358 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -3419,28 +3376,26 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v = - let _1 = - let _1 = + let _v : (string Location.loc) = let _1 = + let _1 = # 5380 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 3428 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 3384 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1326 "src/ocaml/preprocess/parser_raw.mly" ( mkloc _1 (make_loc _sloc) ) -# 3436 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 3392 "src/ocaml/preprocess/parser_raw.ml" + + in + # 5382 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 3442 "src/ocaml/preprocess/parser_raw.ml" - : (string Location.loc)) - in +# 3398 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -3475,29 +3430,27 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in - let _v = - let _1 = - let _1 = + let _v : (string Location.loc) = let _1 = + let _1 = # 5381 "src/ocaml/preprocess/parser_raw.mly" ( _1 ^ "." ^ _3.txt ) -# 3484 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos__1_ = _endpos__3_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 3438 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__3_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1326 "src/ocaml/preprocess/parser_raw.mly" ( mkloc _1 (make_loc _sloc) ) -# 3493 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 3447 "src/ocaml/preprocess/parser_raw.ml" + + in + # 5382 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 3499 "src/ocaml/preprocess/parser_raw.ml" - : (string Location.loc)) - in +# 3453 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -3523,7 +3476,7 @@ module Tables = struct ( Builtin_attributes.mark_payload_attrs_used _1; _1 ) -# 3527 "src/ocaml/preprocess/parser_raw.ml" +# 3480 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -3566,16 +3519,14 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in - let _v = - let _endpos = _endpos__4_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - ( + let _v : (Parsetree.attribute) = let _endpos = _endpos__4_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 5386 "src/ocaml/preprocess/parser_raw.mly" ( mk_attr ~loc:(make_loc _sloc) _2 _3 ) -# 3577 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.attribute)) - in +# 3529 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -3599,7 +3550,7 @@ module Tables = struct let _v : (Parsetree.class_expr) = # 2397 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 3603 "src/ocaml/preprocess/parser_raw.ml" +# 3554 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -3635,24 +3586,22 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in - let _v = - let _2 = - let _1 = _1_inlined1 in - + let _v : (Parsetree.class_expr) = let _2 = + let _1 = _1_inlined1 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 3645 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - ( +# 3595 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2399 "src/ocaml/preprocess/parser_raw.mly" ( wrap_class_attrs ~loc:_sloc _3 _2 ) -# 3654 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.class_expr)) - in +# 3604 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -3687,16 +3636,14 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in - let _v = - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - ( + let _v : (Parsetree.class_expr) = let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2401 "src/ocaml/preprocess/parser_raw.mly" ( class_of_let_bindings ~loc:_sloc _1 _3 ) -# 3698 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.class_expr)) - in +# 3646 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -3752,43 +3699,41 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__7_ in - let _v = - let _5 = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let _v : (Parsetree.class_expr) = let _5 = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 3765 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__5_ = _endpos__1_inlined2_ in - let _4 = - let _1 = _1_inlined1 in - +# 3711 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__5_ = _endpos__1_inlined2_ in + let _4 = + let _1 = _1_inlined1 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 3774 "src/ocaml/preprocess/parser_raw.ml" - - in - let _3 = +# 3720 "src/ocaml/preprocess/parser_raw.ml" + + in + let _3 = # 5304 "src/ocaml/preprocess/parser_raw.mly" ( Fresh ) -# 3780 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__7_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - ( +# 3726 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__7_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2403 "src/ocaml/preprocess/parser_raw.mly" ( let loc = (_startpos__2_, _endpos__5_) in let od = Opn.mk ~override:_3 ~loc:(make_loc loc) _5 in mkclass ~loc:_sloc ~attrs:_4 (Pcl_open(od, _7)) ) -# 3790 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.class_expr)) - in +# 3736 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -3851,43 +3796,41 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__7_ in - let _v = - let _5 = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined3_, _startpos__1_inlined3_, _1_inlined3) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let _v : (Parsetree.class_expr) = let _5 = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined3_, _startpos__1_inlined3_, _1_inlined3) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 3864 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__5_ = _endpos__1_inlined3_ in - let _4 = - let _1 = _1_inlined2 in - +# 3808 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__5_ = _endpos__1_inlined3_ in + let _4 = + let _1 = _1_inlined2 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 3873 "src/ocaml/preprocess/parser_raw.ml" - - in - let _3 = +# 3817 "src/ocaml/preprocess/parser_raw.ml" + + in + let _3 = # 5305 "src/ocaml/preprocess/parser_raw.mly" ( Override ) -# 3879 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__7_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - ( +# 3823 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__7_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2403 "src/ocaml/preprocess/parser_raw.mly" ( let loc = (_startpos__2_, _endpos__5_) in let od = Opn.mk ~override:_3 ~loc:(make_loc loc) _5 in mkclass ~loc:_sloc ~attrs:_4 (Pcl_open(od, _7)) ) -# 3889 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.class_expr)) - in +# 3833 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -3918,7 +3861,7 @@ module Tables = struct let _v : (Parsetree.class_expr) = # 2407 "src/ocaml/preprocess/parser_raw.mly" ( Cl.attr _1 _2 ) -# 3922 "src/ocaml/preprocess/parser_raw.ml" +# 3865 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -3947,43 +3890,41 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_xs_ in - let _v = + let _v : (Parsetree.class_expr) = let _1 = let _1 = - let _1 = - let _2 = - let xs = -# 264 "" + let _2 = + let xs = +# 253 "" ( List.rev xs ) -# 3958 "src/ocaml/preprocess/parser_raw.ml" - in - +# 3900 "src/ocaml/preprocess/parser_raw.ml" + in + # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 3963 "src/ocaml/preprocess/parser_raw.ml" - - in +# 3905 "src/ocaml/preprocess/parser_raw.ml" + in + # 2410 "src/ocaml/preprocess/parser_raw.mly" ( Pcl_apply(_1, _2) ) -# 3969 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos_xs_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 3911 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos_xs_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1349 "src/ocaml/preprocess/parser_raw.mly" ( mkclass ~loc:_sloc _1 ) -# 3979 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 3921 "src/ocaml/preprocess/parser_raw.ml" + + in + # 2413 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 3985 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.class_expr)) - in +# 3927 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -4004,28 +3945,26 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v = - let _1 = - let _1 = + let _v : (Parsetree.class_expr) = let _1 = + let _1 = # 2412 "src/ocaml/preprocess/parser_raw.mly" ( Pcl_extension _1 ) -# 4013 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 3953 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1349 "src/ocaml/preprocess/parser_raw.mly" ( mkclass ~loc:_sloc _1 ) -# 4021 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 3961 "src/ocaml/preprocess/parser_raw.ml" + + in + # 2413 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 4027 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.class_expr)) - in +# 3967 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -4074,39 +4013,37 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined2_ in - let _v = - let _6 = - let _1 = _1_inlined2 in - + let _v : (Parsetree.class_field) = let _6 = + let _1 = _1_inlined2 in + # 5399 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 4084 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__6_ = _endpos__1_inlined2_ in - let _3 = - let _1 = _1_inlined1 in - +# 4022 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__6_ = _endpos__1_inlined2_ in + let _3 = + let _1 = _1_inlined1 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 4093 "src/ocaml/preprocess/parser_raw.ml" - - in - let _2 = +# 4031 "src/ocaml/preprocess/parser_raw.ml" + + in + let _2 = # 5304 "src/ocaml/preprocess/parser_raw.mly" ( Fresh ) -# 4099 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__6_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - ( +# 4037 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__6_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2467 "src/ocaml/preprocess/parser_raw.mly" ( let docs = symbol_docs _sloc in mkcf ~loc:_sloc (Pcf_inherit (_2, _4, self)) ~attrs:(_3@_6) ~docs ) -# 4108 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.class_field)) - in +# 4046 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -4162,95 +4099,91 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined3_ in - let _v = - let _6 = - let _1 = _1_inlined3 in - + let _v : (Parsetree.class_field) = let _6 = + let _1 = _1_inlined3 in + # 5399 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 4172 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__6_ = _endpos__1_inlined3_ in - let _3 = - let _1 = _1_inlined2 in - +# 4108 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__6_ = _endpos__1_inlined3_ in + let _3 = + let _1 = _1_inlined2 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 4181 "src/ocaml/preprocess/parser_raw.ml" - - in - let _2 = +# 4117 "src/ocaml/preprocess/parser_raw.ml" + + in + let _2 = # 5305 "src/ocaml/preprocess/parser_raw.mly" ( Override ) -# 4187 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__6_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - ( +# 4123 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__6_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2467 "src/ocaml/preprocess/parser_raw.mly" ( let docs = symbol_docs _sloc in mkcf ~loc:_sloc (Pcf_inherit (_2, _4, self)) ~attrs:(_3@_6) ~docs ) -# 4196 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.class_field)) - in - { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = Obj.repr _v; - MenhirLib.EngineTypes.startp = _startpos; - MenhirLib.EngineTypes.endp = _endpos; - MenhirLib.EngineTypes.next = _menhir_stack; - }); - (fun _menhir_env -> - let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined1; - MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - } = _menhir_stack in - let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in - let _2 : ((string Location.loc * Asttypes.mutable_flag * Parsetree.class_field_kind) * - Parsetree.attributes) = Obj.magic _2 in - let _1 : unit = Obj.magic _1 in - let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos__1_ in - let _endpos = _endpos__1_inlined1_ in - let _v = - let _3 = - let _1 = _1_inlined1 in - -# 5399 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 4240 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__3_ = _endpos__1_inlined1_ in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - ( -# 2470 "src/ocaml/preprocess/parser_raw.mly" - ( let v, attrs = _2 in - let docs = symbol_docs _sloc in - mkcf ~loc:_sloc (Pcf_val v) ~attrs:(attrs@_3) ~docs ) -# 4252 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.class_field)) +# 4132 "src/ocaml/preprocess/parser_raw.ml" + in + { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _1_inlined1; + MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + } = _menhir_stack in + let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in + let _2 : ((string Location.loc * Asttypes.mutable_flag * Parsetree.class_field_kind) * + Parsetree.attributes) = Obj.magic _2 in + let _1 : unit = Obj.magic _1 in + let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in + let _startpos = _startpos__1_ in + let _endpos = _endpos__1_inlined1_ in + let _v : (Parsetree.class_field) = let _3 = + let _1 = _1_inlined1 in + +# 5399 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 4174 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__3_ = _endpos__1_inlined1_ in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 2470 "src/ocaml/preprocess/parser_raw.mly" + ( let v, attrs = _2 in + let docs = symbol_docs _sloc in + mkcf ~loc:_sloc (Pcf_val v) ~attrs:(attrs@_3) ~docs ) +# 4186 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -4286,27 +4219,25 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined1_ in - let _v = - let _3 = - let _1 = _1_inlined1 in - + let _v : (Parsetree.class_field) = let _3 = + let _1 = _1_inlined1 in + # 5399 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 4296 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__3_ = _endpos__1_inlined1_ in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - ( +# 4228 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__3_ = _endpos__1_inlined1_ in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2474 "src/ocaml/preprocess/parser_raw.mly" ( let meth, attrs = _2 in let docs = symbol_docs _sloc in mkcf ~loc:_sloc (Pcf_method meth) ~attrs:(attrs@_3) ~docs ) -# 4308 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.class_field)) - in +# 4240 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -4348,34 +4279,32 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined2_ in - let _v = - let _4 = - let _1 = _1_inlined2 in - + let _v : (Parsetree.class_field) = let _4 = + let _1 = _1_inlined2 in + # 5399 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 4358 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__4_ = _endpos__1_inlined2_ in - let _2 = - let _1 = _1_inlined1 in - +# 4288 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__4_ = _endpos__1_inlined2_ in + let _2 = + let _1 = _1_inlined1 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 4367 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__4_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - ( +# 4297 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__4_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2478 "src/ocaml/preprocess/parser_raw.mly" ( let docs = symbol_docs _sloc in mkcf ~loc:_sloc (Pcf_constraint _3) ~attrs:(_2@_4) ~docs ) -# 4377 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.class_field)) - in +# 4307 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -4417,34 +4346,32 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined2_ in - let _v = - let _4 = - let _1 = _1_inlined2 in - + let _v : (Parsetree.class_field) = let _4 = + let _1 = _1_inlined2 in + # 5399 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 4427 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__4_ = _endpos__1_inlined2_ in - let _2 = - let _1 = _1_inlined1 in - +# 4355 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__4_ = _endpos__1_inlined2_ in + let _2 = + let _1 = _1_inlined1 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 4436 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__4_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - ( +# 4364 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__4_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2481 "src/ocaml/preprocess/parser_raw.mly" ( let docs = symbol_docs _sloc in mkcf ~loc:_sloc (Pcf_initializer _3) ~attrs:(_2@_4) ~docs ) -# 4446 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.class_field)) - in +# 4374 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -4472,26 +4399,24 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined1_ in - let _v = - let _2 = - let _1 = _1_inlined1 in - + let _v : (Parsetree.class_field) = let _2 = + let _1 = _1_inlined1 in + # 5399 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 4482 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__2_ = _endpos__1_inlined1_ in - let _endpos = _endpos__2_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - ( +# 4408 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__2_ = _endpos__1_inlined1_ in + let _endpos = _endpos__2_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2484 "src/ocaml/preprocess/parser_raw.mly" ( let docs = symbol_docs _sloc in mkcf ~loc:_sloc (Pcf_extension _1) ~attrs:_2 ~docs ) -# 4493 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.class_field)) - in +# 4419 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -4512,28 +4437,26 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v = - let _1 = - let _1 = + let _v : (Parsetree.class_field) = let _1 = + let _1 = # 2487 "src/ocaml/preprocess/parser_raw.mly" ( Pcf_attribute _1 ) -# 4521 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 4445 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1347 "src/ocaml/preprocess/parser_raw.mly" ( mkcf ~loc:_sloc _1 ) -# 4529 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 4453 "src/ocaml/preprocess/parser_raw.ml" + + in + # 2488 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 4535 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.class_field)) - in +# 4459 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -4564,7 +4487,7 @@ module Tables = struct let _v : (Parsetree.class_expr) = # 2377 "src/ocaml/preprocess/parser_raw.mly" ( _2 ) -# 4568 "src/ocaml/preprocess/parser_raw.ml" +# 4491 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -4607,29 +4530,27 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in - let _v = - let _1 = - let _1 = + let _v : (Parsetree.class_expr) = let _1 = + let _1 = # 2380 "src/ocaml/preprocess/parser_raw.mly" ( Pcl_constraint(_4, _2) ) -# 4616 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos__1_ = _endpos__4_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 4538 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__4_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1349 "src/ocaml/preprocess/parser_raw.mly" ( mkclass ~loc:_sloc _1 ) -# 4625 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 4547 "src/ocaml/preprocess/parser_raw.ml" + + in + # 2383 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 4631 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.class_expr)) - in +# 4553 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -4657,29 +4578,27 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in - let _v = - let _1 = - let _1 = + let _v : (Parsetree.class_expr) = let _1 = + let _1 = # 2382 "src/ocaml/preprocess/parser_raw.mly" ( let (l,o,p) = _1 in Pcl_fun(l, o, p, _2) ) -# 4666 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos__1_ = _endpos__2_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 4586 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__2_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1349 "src/ocaml/preprocess/parser_raw.mly" ( mkclass ~loc:_sloc _1 ) -# 4675 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 4595 "src/ocaml/preprocess/parser_raw.ml" + + in + # 2383 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 4681 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.class_expr)) - in +# 4601 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -4714,29 +4633,27 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_e_ in - let _v = - let _1 = - let _1 = + let _v : (Parsetree.class_expr) = let _1 = + let _1 = # 2444 "src/ocaml/preprocess/parser_raw.mly" ( let (l,o,p) = _1 in Pcl_fun(l, o, p, e) ) -# 4723 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos__1_ = _endpos_e_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 4641 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos_e_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1349 "src/ocaml/preprocess/parser_raw.mly" ( mkclass ~loc:_sloc _1 ) -# 4732 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 4650 "src/ocaml/preprocess/parser_raw.ml" + + in + # 2445 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 4738 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.class_expr)) - in +# 4656 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -4764,29 +4681,27 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_e_ in - let _v = - let _1 = - let _1 = + let _v : (Parsetree.class_expr) = let _1 = + let _1 = # 2444 "src/ocaml/preprocess/parser_raw.mly" ( let (l,o,p) = _1 in Pcl_fun(l, o, p, e) ) -# 4773 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos__1_ = _endpos_e_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 4689 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos_e_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1349 "src/ocaml/preprocess/parser_raw.mly" ( mkclass ~loc:_sloc _1 ) -# 4782 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 4698 "src/ocaml/preprocess/parser_raw.ml" + + in + # 2445 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 4788 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.class_expr)) - in +# 4704 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -4810,7 +4725,7 @@ module Tables = struct let _v : (Longident.t) = # 5174 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 4814 "src/ocaml/preprocess/parser_raw.ml" +# 4729 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -4846,16 +4761,14 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in - let _v = - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - ( + let _v : (Parsetree.pattern) = let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2453 "src/ocaml/preprocess/parser_raw.mly" ( reloc_pat ~loc:_sloc _2 ) -# 4857 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.pattern)) - in +# 4771 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -4904,16 +4817,14 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__5_ in - let _v = - let _endpos = _endpos__5_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - ( + let _v : (Parsetree.pattern) = let _endpos = _endpos__5_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2455 "src/ocaml/preprocess/parser_raw.mly" ( mkpat_with_modes ~loc:_sloc ~pat:_2 ~cty:(Some _4) ~modes:[] ) -# 4915 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.pattern)) - in +# 4827 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -4927,16 +4838,14 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in let _endpos = _startpos in - let _v = - let _endpos = _endpos__0_ in - let _symbolstartpos = _endpos in - let _sloc = (_symbolstartpos, _endpos) in - ( + let _v : (Parsetree.pattern) = let _endpos = _endpos__0_ in + let _symbolstartpos = _endpos in + let _sloc = (_symbolstartpos, _endpos) in + # 2457 "src/ocaml/preprocess/parser_raw.mly" ( ghpat ~loc:_sloc Ppat_any ) -# 4938 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.pattern)) - in +# 4848 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -4974,7 +4883,7 @@ module Tables = struct let _v : (Parsetree.core_type) = # 2584 "src/ocaml/preprocess/parser_raw.mly" ( _2 ) -# 4978 "src/ocaml/preprocess/parser_raw.ml" +# 4887 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -4989,29 +4898,27 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in let _endpos = _startpos in - let _v = - let _1 = - let _1 = + let _v : (Parsetree.core_type) = let _1 = + let _1 = # 2585 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_any None ) -# 4998 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos__1_ = _endpos__0_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _endpos in - let _sloc = (_symbolstartpos, _endpos) in - +# 4906 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__0_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _endpos in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 5007 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 4915 "src/ocaml/preprocess/parser_raw.ml" + + in + # 2586 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 5013 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type)) - in +# 4921 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -5053,34 +4960,32 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined2_ in - let _v = - let _4 = - let _1 = _1_inlined2 in - + let _v : (Parsetree.class_type_field) = let _4 = + let _1 = _1_inlined2 in + # 5399 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 5063 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__4_ = _endpos__1_inlined2_ in - let _2 = - let _1 = _1_inlined1 in - +# 4969 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__4_ = _endpos__1_inlined2_ in + let _2 = + let _1 = _1_inlined1 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 5072 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__4_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - ( +# 4978 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__4_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2594 "src/ocaml/preprocess/parser_raw.mly" ( let docs = symbol_docs _sloc in mkctf ~loc:_sloc (Pctf_inherit _3) ~attrs:(_2@_4) ~docs ) -# 5082 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.class_type_field)) - in +# 4988 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -5139,7 +5044,7 @@ module Tables = struct let _1_inlined2 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 5143 "src/ocaml/preprocess/parser_raw.ml" +# 5048 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined2 in let flags : (Asttypes.mutable_flag * Asttypes.virtual_flag) = Obj.magic flags in let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in @@ -5147,60 +5052,58 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined3_ in - let _v = - let _4 = - let _1 = _1_inlined3 in - + let _v : (Parsetree.class_type_field) = let _4 = + let _1 = _1_inlined3 in + # 5399 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 5157 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__4_ = _endpos__1_inlined3_ in - let _3 = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in - let label = - let _1 = +# 5061 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__4_ = _endpos__1_inlined3_ in + let _3 = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in + let label = + let _1 = # 5010 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 5167 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 5071 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 5175 "src/ocaml/preprocess/parser_raw.ml" - - in +# 5079 "src/ocaml/preprocess/parser_raw.ml" + in + # 2619 "src/ocaml/preprocess/parser_raw.mly" ( let mut, virt = flags in label, mut, virt, ty ) -# 5184 "src/ocaml/preprocess/parser_raw.ml" - - in - let _2 = - let _1 = _1_inlined1 in - +# 5088 "src/ocaml/preprocess/parser_raw.ml" + + in + let _2 = + let _1 = _1_inlined1 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 5192 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__4_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - ( +# 5096 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__4_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2597 "src/ocaml/preprocess/parser_raw.mly" ( let docs = symbol_docs _sloc in mkctf ~loc:_sloc (Pctf_val _3) ~attrs:(_2@_4) ~docs ) -# 5202 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.class_type_field)) - in +# 5106 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -5259,7 +5162,7 @@ module Tables = struct let _1_inlined2 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 5263 "src/ocaml/preprocess/parser_raw.ml" +# 5166 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined2 in let _3 : (Asttypes.private_flag * Asttypes.virtual_flag) = Obj.magic _3 in let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in @@ -5267,59 +5170,57 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined4_ in - let _v = - let _7 = - let _1 = _1_inlined4 in - + let _v : (Parsetree.class_type_field) = let _7 = + let _1 = _1_inlined4 in + # 5399 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 5277 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__7_ = _endpos__1_inlined4_ in - let _6 = - let _1 = _1_inlined3 in - +# 5179 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__7_ = _endpos__1_inlined4_ in + let _6 = + let _1 = _1_inlined3 in + # 4496 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 5286 "src/ocaml/preprocess/parser_raw.ml" - - in - let _4 = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in - let _1 = +# 5188 "src/ocaml/preprocess/parser_raw.ml" + + in + let _4 = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in + let _1 = # 5010 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 5294 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 5196 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 5302 "src/ocaml/preprocess/parser_raw.ml" - - in - let _2 = - let _1 = _1_inlined1 in - +# 5204 "src/ocaml/preprocess/parser_raw.ml" + + in + let _2 = + let _1 = _1_inlined1 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 5310 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__7_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - ( +# 5212 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__7_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2601 "src/ocaml/preprocess/parser_raw.mly" ( let (p, v) = _3 in let docs = symbol_docs _sloc in mkctf ~loc:_sloc (Pctf_method (_4, p, v, _6)) ~attrs:(_2@_7) ~docs ) -# 5321 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.class_type_field)) - in +# 5223 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -5361,34 +5262,32 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined2_ in - let _v = - let _4 = - let _1 = _1_inlined2 in - + let _v : (Parsetree.class_type_field) = let _4 = + let _1 = _1_inlined2 in + # 5399 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 5371 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__4_ = _endpos__1_inlined2_ in - let _2 = - let _1 = _1_inlined1 in - +# 5271 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__4_ = _endpos__1_inlined2_ in + let _2 = + let _1 = _1_inlined1 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 5380 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__4_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - ( +# 5280 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__4_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2605 "src/ocaml/preprocess/parser_raw.mly" ( let docs = symbol_docs _sloc in mkctf ~loc:_sloc (Pctf_constraint _3) ~attrs:(_2@_4) ~docs ) -# 5390 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.class_type_field)) - in +# 5290 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -5416,26 +5315,24 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined1_ in - let _v = - let _2 = - let _1 = _1_inlined1 in - + let _v : (Parsetree.class_type_field) = let _2 = + let _1 = _1_inlined1 in + # 5399 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 5426 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__2_ = _endpos__1_inlined1_ in - let _endpos = _endpos__2_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - ( +# 5324 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__2_ = _endpos__1_inlined1_ in + let _endpos = _endpos__2_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2608 "src/ocaml/preprocess/parser_raw.mly" ( let docs = symbol_docs _sloc in mkctf ~loc:_sloc (Pctf_extension _1) ~attrs:_2 ~docs ) -# 5437 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.class_type_field)) - in +# 5335 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -5456,28 +5353,26 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v = - let _1 = - let _1 = + let _v : (Parsetree.class_type_field) = let _1 = + let _1 = # 2611 "src/ocaml/preprocess/parser_raw.mly" ( Pctf_attribute _1 ) -# 5465 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 5361 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1345 "src/ocaml/preprocess/parser_raw.mly" ( mkctf ~loc:_sloc _1 ) -# 5473 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 5369 "src/ocaml/preprocess/parser_raw.ml" + + in + # 2612 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 5479 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.class_type_field)) - in +# 5375 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -5498,52 +5393,50 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v = + let _v : (Parsetree.class_type) = let _1 = let _1 = - let _1 = - let cid = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let cid = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 5512 "src/ocaml/preprocess/parser_raw.ml" - - in - let tys = - let tys = +# 5406 "src/ocaml/preprocess/parser_raw.ml" + + in + let tys = + let tys = # 2570 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 5519 "src/ocaml/preprocess/parser_raw.ml" - in - +# 5413 "src/ocaml/preprocess/parser_raw.ml" + in + # 2576 "src/ocaml/preprocess/parser_raw.mly" ( tys ) -# 5524 "src/ocaml/preprocess/parser_raw.ml" - - in +# 5418 "src/ocaml/preprocess/parser_raw.ml" + in + # 2551 "src/ocaml/preprocess/parser_raw.mly" ( Pcty_constr (cid, tys) ) -# 5530 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 5424 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1343 "src/ocaml/preprocess/parser_raw.mly" ( mkcty ~loc:_sloc _1 ) -# 5539 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 5433 "src/ocaml/preprocess/parser_raw.ml" + + in + # 2554 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 5545 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.class_type)) - in +# 5439 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -5585,68 +5478,66 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined1_ in - let _v = + let _v : (Parsetree.class_type) = let _1 = let _1 = - let _1 = - let cid = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let cid = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 5600 "src/ocaml/preprocess/parser_raw.ml" - - in +# 5492 "src/ocaml/preprocess/parser_raw.ml" + + in + let tys = let tys = - let tys = - let params = - let xs = -# 264 "" + let params = + let xs = +# 253 "" ( List.rev xs ) -# 5609 "src/ocaml/preprocess/parser_raw.ml" - in - +# 5501 "src/ocaml/preprocess/parser_raw.ml" + in + # 1450 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 5614 "src/ocaml/preprocess/parser_raw.ml" - - in +# 5506 "src/ocaml/preprocess/parser_raw.ml" + in + # 2572 "src/ocaml/preprocess/parser_raw.mly" ( params ) -# 5620 "src/ocaml/preprocess/parser_raw.ml" - - in +# 5512 "src/ocaml/preprocess/parser_raw.ml" + in + # 2576 "src/ocaml/preprocess/parser_raw.mly" ( tys ) -# 5626 "src/ocaml/preprocess/parser_raw.ml" - - in +# 5518 "src/ocaml/preprocess/parser_raw.ml" + in + # 2551 "src/ocaml/preprocess/parser_raw.mly" ( Pcty_constr (cid, tys) ) -# 5632 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__1_inlined1_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 5524 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__1_inlined1_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1343 "src/ocaml/preprocess/parser_raw.mly" ( mkcty ~loc:_sloc _1 ) -# 5642 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 5534 "src/ocaml/preprocess/parser_raw.ml" + + in + # 2554 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 5648 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.class_type)) - in +# 5540 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -5667,28 +5558,26 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v = - let _1 = - let _1 = + let _v : (Parsetree.class_type) = let _1 = + let _1 = # 2553 "src/ocaml/preprocess/parser_raw.mly" ( Pcty_extension _1 ) -# 5676 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 5566 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1343 "src/ocaml/preprocess/parser_raw.mly" ( mkcty ~loc:_sloc _1 ) -# 5684 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 5574 "src/ocaml/preprocess/parser_raw.ml" + + in + # 2554 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 5690 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.class_type)) - in +# 5580 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -5737,54 +5626,52 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in - let _v = - let _3 = - let _1 = _1_inlined2 in - let _2 = - let _1 = - let _1 = -# 271 "" + let _v : (Parsetree.class_type) = let _3 = + let _1 = _1_inlined2 in + let _2 = + let _1 = + let _1 = +# 260 "" ( List.flatten xss ) -# 5749 "src/ocaml/preprocess/parser_raw.ml" - in - +# 5637 "src/ocaml/preprocess/parser_raw.ml" + in + # 2590 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 5754 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos_xss_, _startpos_xss_) in - let _endpos = _endpos__1_ in - let _startpos = _startpos__1_ in +# 5642 "src/ocaml/preprocess/parser_raw.ml" + in + let (_endpos__1_, _startpos__1_) = (_endpos_xss_, _startpos_xss_) in + let _endpos = _endpos__1_ in + let _startpos = _startpos__1_ in + # 1291 "src/ocaml/preprocess/parser_raw.mly" ( extra_csig _startpos _endpos _1 ) -# 5763 "src/ocaml/preprocess/parser_raw.ml" - - in +# 5651 "src/ocaml/preprocess/parser_raw.ml" + in + # 2580 "src/ocaml/preprocess/parser_raw.mly" ( Csig.mk _1 _2 ) -# 5769 "src/ocaml/preprocess/parser_raw.ml" - - in - let _2 = - let _1 = _1_inlined1 in - +# 5657 "src/ocaml/preprocess/parser_raw.ml" + + in + let _2 = + let _1 = _1_inlined1 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 5777 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__4_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - ( +# 5665 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__4_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2556 "src/ocaml/preprocess/parser_raw.mly" ( mkcty ~loc:_sloc ~attrs:_2 (Pcty_signature _3) ) -# 5786 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.class_type)) - in +# 5674 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -5815,7 +5702,7 @@ module Tables = struct let _v : (Parsetree.class_type) = # 2562 "src/ocaml/preprocess/parser_raw.mly" ( Cty.attr _1 _2 ) -# 5819 "src/ocaml/preprocess/parser_raw.ml" +# 5706 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -5872,43 +5759,41 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__7_ in - let _v = - let _5 = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let _v : (Parsetree.class_type) = let _5 = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 5885 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__5_ = _endpos__1_inlined2_ in - let _4 = - let _1 = _1_inlined1 in - +# 5771 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__5_ = _endpos__1_inlined2_ in + let _4 = + let _1 = _1_inlined1 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 5894 "src/ocaml/preprocess/parser_raw.ml" - - in - let _3 = +# 5780 "src/ocaml/preprocess/parser_raw.ml" + + in + let _3 = # 5304 "src/ocaml/preprocess/parser_raw.mly" ( Fresh ) -# 5900 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__7_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - ( +# 5786 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__7_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2564 "src/ocaml/preprocess/parser_raw.mly" ( let loc = (_startpos__2_, _endpos__5_) in let od = Opn.mk ~override:_3 ~loc:(make_loc loc) _5 in mkcty ~loc:_sloc ~attrs:_4 (Pcty_open(od, _7)) ) -# 5910 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.class_type)) - in +# 5796 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -5971,43 +5856,41 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__7_ in - let _v = - let _5 = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined3_, _startpos__1_inlined3_, _1_inlined3) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let _v : (Parsetree.class_type) = let _5 = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined3_, _startpos__1_inlined3_, _1_inlined3) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 5984 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__5_ = _endpos__1_inlined3_ in - let _4 = - let _1 = _1_inlined2 in - +# 5868 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__5_ = _endpos__1_inlined3_ in + let _4 = + let _1 = _1_inlined2 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 5993 "src/ocaml/preprocess/parser_raw.ml" - - in - let _3 = +# 5877 "src/ocaml/preprocess/parser_raw.ml" + + in + let _3 = # 5305 "src/ocaml/preprocess/parser_raw.mly" ( Override ) -# 5999 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__7_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - ( +# 5883 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__7_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2564 "src/ocaml/preprocess/parser_raw.mly" ( let loc = (_startpos__2_, _endpos__5_) in let od = Opn.mk ~override:_3 ~loc:(make_loc loc) _5 in mkcty ~loc:_sloc ~attrs:_4 (Pcty_open(od, _7)) ) -# 6009 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.class_type)) - in +# 5893 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -6045,7 +5928,7 @@ module Tables = struct let _v : (Parsetree.class_expr) = # 2417 "src/ocaml/preprocess/parser_raw.mly" ( _2 ) -# 6049 "src/ocaml/preprocess/parser_raw.ml" +# 5932 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -6067,52 +5950,50 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v = + let _v : (Parsetree.class_expr) = let _1 = let _1 = - let _1 = - let cid = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let cid = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 6081 "src/ocaml/preprocess/parser_raw.ml" - - in - let tys = - let tys = +# 5963 "src/ocaml/preprocess/parser_raw.ml" + + in + let tys = + let tys = # 2570 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 6088 "src/ocaml/preprocess/parser_raw.ml" - in - +# 5970 "src/ocaml/preprocess/parser_raw.ml" + in + # 2576 "src/ocaml/preprocess/parser_raw.mly" ( tys ) -# 6093 "src/ocaml/preprocess/parser_raw.ml" - - in +# 5975 "src/ocaml/preprocess/parser_raw.ml" + in + # 2424 "src/ocaml/preprocess/parser_raw.mly" ( Pcl_constr(cid, tys) ) -# 6099 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 5981 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1349 "src/ocaml/preprocess/parser_raw.mly" ( mkclass ~loc:_sloc _1 ) -# 6108 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 5990 "src/ocaml/preprocess/parser_raw.ml" + + in + # 2435 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 6114 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.class_expr)) - in +# 5996 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -6154,68 +6035,66 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined1_ in - let _v = + let _v : (Parsetree.class_expr) = let _1 = let _1 = - let _1 = - let cid = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let cid = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 6169 "src/ocaml/preprocess/parser_raw.ml" - - in +# 6049 "src/ocaml/preprocess/parser_raw.ml" + + in + let tys = let tys = - let tys = - let params = - let xs = -# 264 "" + let params = + let xs = +# 253 "" ( List.rev xs ) -# 6178 "src/ocaml/preprocess/parser_raw.ml" - in - +# 6058 "src/ocaml/preprocess/parser_raw.ml" + in + # 1450 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 6183 "src/ocaml/preprocess/parser_raw.ml" - - in +# 6063 "src/ocaml/preprocess/parser_raw.ml" + in + # 2572 "src/ocaml/preprocess/parser_raw.mly" ( params ) -# 6189 "src/ocaml/preprocess/parser_raw.ml" - - in +# 6069 "src/ocaml/preprocess/parser_raw.ml" + in + # 2576 "src/ocaml/preprocess/parser_raw.mly" ( tys ) -# 6195 "src/ocaml/preprocess/parser_raw.ml" - - in +# 6075 "src/ocaml/preprocess/parser_raw.ml" + in + # 2424 "src/ocaml/preprocess/parser_raw.mly" ( Pcl_constr(cid, tys) ) -# 6201 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__1_inlined1_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 6081 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__1_inlined1_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1349 "src/ocaml/preprocess/parser_raw.mly" ( mkclass ~loc:_sloc _1 ) -# 6211 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 6091 "src/ocaml/preprocess/parser_raw.ml" + + in + # 2435 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 6217 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.class_expr)) - in +# 6097 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -6264,29 +6143,27 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__5_ in - let _v = - let _1 = - let _1 = + let _v : (Parsetree.class_expr) = let _1 = + let _1 = # 2430 "src/ocaml/preprocess/parser_raw.mly" ( Pcl_constraint(_2, _4) ) -# 6273 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos__1_ = _endpos__5_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 6151 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__5_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1349 "src/ocaml/preprocess/parser_raw.mly" ( mkclass ~loc:_sloc _1 ) -# 6282 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 6160 "src/ocaml/preprocess/parser_raw.ml" + + in + # 2435 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 6288 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.class_expr)) - in +# 6166 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -6335,54 +6212,52 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in - let _v = - let _3 = - let _1 = _1_inlined2 in - let _2 = - let _1 = - let _1 = -# 271 "" + let _v : (Parsetree.class_expr) = let _3 = + let _1 = _1_inlined2 in + let _2 = + let _1 = + let _1 = +# 260 "" ( List.flatten xss ) -# 6347 "src/ocaml/preprocess/parser_raw.ml" - in - +# 6223 "src/ocaml/preprocess/parser_raw.ml" + in + # 2461 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 6352 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos_xss_, _startpos_xss_) in - let _endpos = _endpos__1_ in - let _startpos = _startpos__1_ in +# 6228 "src/ocaml/preprocess/parser_raw.ml" + in + let (_endpos__1_, _startpos__1_) = (_endpos_xss_, _startpos_xss_) in + let _endpos = _endpos__1_ in + let _startpos = _startpos__1_ in + # 1290 "src/ocaml/preprocess/parser_raw.mly" ( extra_cstr _startpos _endpos _1 ) -# 6361 "src/ocaml/preprocess/parser_raw.ml" - - in +# 6237 "src/ocaml/preprocess/parser_raw.ml" + in + # 2449 "src/ocaml/preprocess/parser_raw.mly" ( Cstr.mk _1 _2 ) -# 6367 "src/ocaml/preprocess/parser_raw.ml" - - in - let _2 = - let _1 = _1_inlined1 in - +# 6243 "src/ocaml/preprocess/parser_raw.ml" + + in + let _2 = + let _1 = _1_inlined1 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 6375 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__4_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - ( +# 6251 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__4_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2437 "src/ocaml/preprocess/parser_raw.mly" ( mkclass ~loc:_sloc ~attrs:_2 (Pcl_structure _3) ) -# 6384 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.class_expr)) - in +# 6260 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -6406,7 +6281,7 @@ module Tables = struct let _v : (Parsetree.class_type) = # 2539 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 6410 "src/ocaml/preprocess/parser_raw.ml" +# 6285 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -6449,43 +6324,41 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos_codomain_ in - let _v = + let _v : (Parsetree.class_type) = let _1 = let _1 = - let _1 = - let label = - let _1 = + let label = + let _1 = # 4637 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 6460 "src/ocaml/preprocess/parser_raw.ml" - in - +# 6334 "src/ocaml/preprocess/parser_raw.ml" + in + # 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 6465 "src/ocaml/preprocess/parser_raw.ml" - - in +# 6339 "src/ocaml/preprocess/parser_raw.ml" + in + # 2545 "src/ocaml/preprocess/parser_raw.mly" ( Pcty_arrow(label, domain, codomain) ) -# 6471 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 6345 "src/ocaml/preprocess/parser_raw.ml" + in + let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1343 "src/ocaml/preprocess/parser_raw.mly" ( mkcty ~loc:_sloc _1 ) -# 6481 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 6355 "src/ocaml/preprocess/parser_raw.ml" + + in + # 2546 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 6487 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.class_type)) - in +# 6361 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -6533,48 +6406,46 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 6537 "src/ocaml/preprocess/parser_raw.ml" +# 6410 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos_codomain_ in - let _v = + let _v : (Parsetree.class_type) = let _1 = let _1 = - let _1 = - let label = - let _1 = + let label = + let _1 = # 4639 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 6549 "src/ocaml/preprocess/parser_raw.ml" - in - +# 6421 "src/ocaml/preprocess/parser_raw.ml" + in + # 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 6554 "src/ocaml/preprocess/parser_raw.ml" - - in +# 6426 "src/ocaml/preprocess/parser_raw.ml" + in + # 2545 "src/ocaml/preprocess/parser_raw.mly" ( Pcty_arrow(label, domain, codomain) ) -# 6560 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 6432 "src/ocaml/preprocess/parser_raw.ml" + in + let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1343 "src/ocaml/preprocess/parser_raw.mly" ( mkcty ~loc:_sloc _1 ) -# 6570 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 6442 "src/ocaml/preprocess/parser_raw.ml" + + in + # 2546 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 6576 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.class_type)) - in +# 6448 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -6609,36 +6480,34 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_domain_ in let _endpos = _endpos_codomain_ in - let _v = + let _v : (Parsetree.class_type) = let _1 = let _1 = - let _1 = - let label = + let label = # 4646 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 6619 "src/ocaml/preprocess/parser_raw.ml" - in - +# 6489 "src/ocaml/preprocess/parser_raw.ml" + in + # 2545 "src/ocaml/preprocess/parser_raw.mly" ( Pcty_arrow(label, domain, codomain) ) -# 6624 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_domain_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 6494 "src/ocaml/preprocess/parser_raw.ml" + in + let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_domain_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1343 "src/ocaml/preprocess/parser_raw.mly" ( mkcty ~loc:_sloc _1 ) -# 6634 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 6504 "src/ocaml/preprocess/parser_raw.ml" + + in + # 2546 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 6640 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.class_type)) - in +# 6510 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -6722,7 +6591,7 @@ module Tables = struct let _1_inlined2 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 6726 "src/ocaml/preprocess/parser_raw.ml" +# 6595 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined2 in let params : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = Obj.magic params in let virt : (Asttypes.virtual_flag) = Obj.magic virt in @@ -6733,41 +6602,40 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_bs_ in - let _v = - let _1 = - let a = - let attrs2 = - let _1 = _1_inlined3 in - + let _v : (string Location.loc option * Parsetree.class_type_declaration list) = let _1 = + let a = + let attrs2 = + let _1 = _1_inlined3 in + # 5399 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 6745 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_attrs2_ = _endpos__1_inlined3_ in - let id = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 6613 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_attrs2_ = _endpos__1_inlined3_ in + let id = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 6757 "src/ocaml/preprocess/parser_raw.ml" - - in - let attrs1 = - let _1 = _1_inlined1 in - +# 6625 "src/ocaml/preprocess/parser_raw.ml" + + in + let attrs1 = + let _1 = _1_inlined1 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 6765 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos_attrs2_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 6633 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos_attrs2_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2686 "src/ocaml/preprocess/parser_raw.mly" ( let attrs = attrs1 @ attrs2 in @@ -6776,21 +6644,20 @@ module Tables = struct ext, Ci.mk id csig ~virt ~params ~attrs ~loc ~docs ) -# 6780 "src/ocaml/preprocess/parser_raw.ml" - - in +# 6648 "src/ocaml/preprocess/parser_raw.ml" + in + # 1547 "src/ocaml/preprocess/parser_raw.mly" ( let (x, b) = a in x, b :: bs ) -# 6786 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 6654 "src/ocaml/preprocess/parser_raw.ml" + + in + # 2674 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 6792 "src/ocaml/preprocess/parser_raw.ml" - : (string Location.loc option * Parsetree.class_type_declaration list)) - in +# 6660 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -6814,7 +6681,7 @@ module Tables = struct let _v : (Longident.t) = # 5171 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 6818 "src/ocaml/preprocess/parser_raw.ml" +# 6685 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -6843,25 +6710,23 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_xs_ in - let _v = - let _2 = - let xs = -# 264 "" + let _v : (Parsetree.comprehension_clause) = let _2 = + let xs = +# 253 "" ( List.rev xs ) -# 6852 "src/ocaml/preprocess/parser_raw.ml" - in - +# 6718 "src/ocaml/preprocess/parser_raw.ml" + in + # 1450 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 6857 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 6723 "src/ocaml/preprocess/parser_raw.ml" + + in + # 3148 "src/ocaml/preprocess/parser_raw.mly" ( Pcomp_for _2 ) -# 6863 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.comprehension_clause)) - in +# 6729 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -6889,26 +6754,24 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined1_ in - let _v = - let _2 = - let _1 = _1_inlined1 in - let _1 = + let _v : (Parsetree.comprehension_clause) = let _2 = + let _1 = _1_inlined1 in + let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 6899 "src/ocaml/preprocess/parser_raw.ml" - in - +# 6763 "src/ocaml/preprocess/parser_raw.ml" + in + # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 6904 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 6768 "src/ocaml/preprocess/parser_raw.ml" + + in + # 3150 "src/ocaml/preprocess/parser_raw.mly" ( Pcomp_when _2 ) -# 6910 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.comprehension_clause)) - in +# 6774 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -6957,50 +6820,49 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_xs_ in - let _v = - let _2 = - let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in - let _1 = - let _3 = - let xs = - let xs = -# 264 "" + let _v : (Parsetree.comprehension_clause) = let _2 = + let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in + let _1 = + let _3 = + let xs = + let xs = +# 253 "" ( List.rev xs ) -# 6970 "src/ocaml/preprocess/parser_raw.ml" - in - +# 6832 "src/ocaml/preprocess/parser_raw.ml" + in + # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 6975 "src/ocaml/preprocess/parser_raw.ml" - - in +# 6837 "src/ocaml/preprocess/parser_raw.ml" + in + # 3510 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 6981 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__3_ = _endpos_xs_ in +# 6843 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__3_ = _endpos_xs_ in + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in - + let _1 = _1_inlined1 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 6992 "src/ocaml/preprocess/parser_raw.ml" - - in +# 6854 "src/ocaml/preprocess/parser_raw.ml" + in + # 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 6998 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 6860 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2718 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in @@ -7014,21 +6876,20 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 7018 "src/ocaml/preprocess/parser_raw.ml" - - in +# 6880 "src/ocaml/preprocess/parser_raw.ml" + in + # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 7024 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 6886 "src/ocaml/preprocess/parser_raw.ml" + + in + # 3150 "src/ocaml/preprocess/parser_raw.mly" ( Pcomp_when _2 ) -# 7030 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.comprehension_clause)) - in +# 6892 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -7063,18 +6924,16 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in - let _v = - let _1 = + let _v : (Parsetree.comprehension_clause_binding) = let _1 = # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 7071 "src/ocaml/preprocess/parser_raw.ml" - in - ( +# 6931 "src/ocaml/preprocess/parser_raw.ml" + in + # 3129 "src/ocaml/preprocess/parser_raw.mly" ( { pcomp_cb_pattern = _2 ; pcomp_cb_iterator = _3 ; pcomp_cb_attributes = _1 } ) -# 7076 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.comprehension_clause_binding)) - in +# 6936 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -7123,45 +6982,44 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined2_ in - let _v = - let _5 = - let _1 = _1_inlined2 in - let _1 = + let _v : (Parsetree.comprehension_clause_binding) = let _5 = + let _1 = _1_inlined2 in + let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 7133 "src/ocaml/preprocess/parser_raw.ml" - in - +# 6991 "src/ocaml/preprocess/parser_raw.ml" + in + # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 7138 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__5_ = _endpos__1_inlined2_ in - let _2 = - let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos__1_inlined1_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 6996 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__5_ = _endpos__1_inlined2_ in + let _2 = + let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos__1_inlined1_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 4651 "src/ocaml/preprocess/parser_raw.mly" ( mkloc (Mode "local") (make_loc _sloc) ) -# 7150 "src/ocaml/preprocess/parser_raw.ml" - - in - let _startpos__2_ = _startpos__1_inlined1_ in - let _1 = +# 7008 "src/ocaml/preprocess/parser_raw.ml" + + in + let _startpos__2_ = _startpos__1_inlined1_ in + let _1 = # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 7157 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__5_ in - let _symbolstartpos = if _startpos__1_ != _endpos__1_ then - _startpos__1_ - else - _startpos__2_ in - let _sloc = (_symbolstartpos, _endpos) in - ( +# 7015 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__5_ in + let _symbolstartpos = if _startpos__1_ != _endpos__1_ then + _startpos__1_ + else + _startpos__2_ in + let _sloc = (_symbolstartpos, _endpos) in + # 3136 "src/ocaml/preprocess/parser_raw.mly" ( let expr = mkexp_constraint ~loc:_sloc ~exp:_5 ~cty:None ~modes:[_2] @@ -7171,9 +7029,8 @@ module Tables = struct ; pcomp_cb_attributes = _1 } ) -# 7175 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.comprehension_clause_binding)) - in +# 7033 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -7243,50 +7100,49 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_xs_ in - let _v = - let _5 = - let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined2_, _1_inlined4, _1_inlined3) in - let _1 = - let _3 = - let xs = - let xs = -# 264 "" + let _v : (Parsetree.comprehension_clause_binding) = let _5 = + let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined2_, _1_inlined4, _1_inlined3) in + let _1 = + let _3 = + let xs = + let xs = +# 253 "" ( List.rev xs ) -# 7256 "src/ocaml/preprocess/parser_raw.ml" - in - +# 7112 "src/ocaml/preprocess/parser_raw.ml" + in + # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 7261 "src/ocaml/preprocess/parser_raw.ml" - - in +# 7117 "src/ocaml/preprocess/parser_raw.ml" + in + # 3510 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 7267 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__3_ = _endpos_xs_ in +# 7123 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__3_ = _endpos_xs_ in + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in - + let _1 = _1_inlined1 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 7278 "src/ocaml/preprocess/parser_raw.ml" - - in +# 7134 "src/ocaml/preprocess/parser_raw.ml" + in + # 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 7284 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 7140 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2718 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in @@ -7300,40 +7156,40 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 7304 "src/ocaml/preprocess/parser_raw.ml" - - in +# 7160 "src/ocaml/preprocess/parser_raw.ml" + in + # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 7310 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__5_ = _endpos_xs_ in - let _2 = - let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos__1_inlined1_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 7166 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__5_ = _endpos_xs_ in + let _2 = + let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos__1_inlined1_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 4651 "src/ocaml/preprocess/parser_raw.mly" ( mkloc (Mode "local") (make_loc _sloc) ) -# 7322 "src/ocaml/preprocess/parser_raw.ml" - - in - let _startpos__2_ = _startpos__1_inlined1_ in - let _1 = +# 7178 "src/ocaml/preprocess/parser_raw.ml" + + in + let _startpos__2_ = _startpos__1_inlined1_ in + let _1 = # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 7329 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__5_ in - let _symbolstartpos = if _startpos__1_ != _endpos__1_ then - _startpos__1_ - else - _startpos__2_ in - let _sloc = (_symbolstartpos, _endpos) in - ( +# 7185 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__5_ in + let _symbolstartpos = if _startpos__1_ != _endpos__1_ then + _startpos__1_ + else + _startpos__2_ in + let _sloc = (_symbolstartpos, _endpos) in + # 3136 "src/ocaml/preprocess/parser_raw.mly" ( let expr = mkexp_constraint ~loc:_sloc ~exp:_5 ~cty:None ~modes:[_2] @@ -7343,9 +7199,8 @@ module Tables = struct ; pcomp_cb_attributes = _1 } ) -# 7347 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.comprehension_clause_binding)) - in +# 7203 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -7394,45 +7249,44 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined2_ in - let _v = - let _5 = - let _1 = _1_inlined2 in - let _1 = + let _v : (Parsetree.comprehension_clause_binding) = let _5 = + let _1 = _1_inlined2 in + let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 7404 "src/ocaml/preprocess/parser_raw.ml" - in - +# 7258 "src/ocaml/preprocess/parser_raw.ml" + in + # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 7409 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__5_ = _endpos__1_inlined2_ in - let _2 = - let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos__1_inlined1_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 7263 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__5_ = _endpos__1_inlined2_ in + let _2 = + let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos__1_inlined1_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 4653 "src/ocaml/preprocess/parser_raw.mly" ( mkloc (Mode "unique") (make_loc _sloc) ) -# 7421 "src/ocaml/preprocess/parser_raw.ml" - - in - let _startpos__2_ = _startpos__1_inlined1_ in - let _1 = +# 7275 "src/ocaml/preprocess/parser_raw.ml" + + in + let _startpos__2_ = _startpos__1_inlined1_ in + let _1 = # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 7428 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__5_ in - let _symbolstartpos = if _startpos__1_ != _endpos__1_ then - _startpos__1_ - else - _startpos__2_ in - let _sloc = (_symbolstartpos, _endpos) in - ( +# 7282 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__5_ in + let _symbolstartpos = if _startpos__1_ != _endpos__1_ then + _startpos__1_ + else + _startpos__2_ in + let _sloc = (_symbolstartpos, _endpos) in + # 3136 "src/ocaml/preprocess/parser_raw.mly" ( let expr = mkexp_constraint ~loc:_sloc ~exp:_5 ~cty:None ~modes:[_2] @@ -7442,9 +7296,8 @@ module Tables = struct ; pcomp_cb_attributes = _1 } ) -# 7446 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.comprehension_clause_binding)) - in +# 7300 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -7514,50 +7367,49 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_xs_ in - let _v = - let _5 = - let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined2_, _1_inlined4, _1_inlined3) in - let _1 = - let _3 = - let xs = - let xs = -# 264 "" + let _v : (Parsetree.comprehension_clause_binding) = let _5 = + let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined2_, _1_inlined4, _1_inlined3) in + let _1 = + let _3 = + let xs = + let xs = +# 253 "" ( List.rev xs ) -# 7527 "src/ocaml/preprocess/parser_raw.ml" - in - +# 7379 "src/ocaml/preprocess/parser_raw.ml" + in + # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 7532 "src/ocaml/preprocess/parser_raw.ml" - - in +# 7384 "src/ocaml/preprocess/parser_raw.ml" + in + # 3510 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 7538 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__3_ = _endpos_xs_ in +# 7390 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__3_ = _endpos_xs_ in + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in - + let _1 = _1_inlined1 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 7549 "src/ocaml/preprocess/parser_raw.ml" - - in +# 7401 "src/ocaml/preprocess/parser_raw.ml" + in + # 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 7555 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 7407 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2718 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in @@ -7571,40 +7423,40 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 7575 "src/ocaml/preprocess/parser_raw.ml" - - in +# 7427 "src/ocaml/preprocess/parser_raw.ml" + in + # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 7581 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__5_ = _endpos_xs_ in - let _2 = - let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos__1_inlined1_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 7433 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__5_ = _endpos_xs_ in + let _2 = + let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos__1_inlined1_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 4653 "src/ocaml/preprocess/parser_raw.mly" ( mkloc (Mode "unique") (make_loc _sloc) ) -# 7593 "src/ocaml/preprocess/parser_raw.ml" - - in - let _startpos__2_ = _startpos__1_inlined1_ in - let _1 = +# 7445 "src/ocaml/preprocess/parser_raw.ml" + + in + let _startpos__2_ = _startpos__1_inlined1_ in + let _1 = # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 7600 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__5_ in - let _symbolstartpos = if _startpos__1_ != _endpos__1_ then - _startpos__1_ - else - _startpos__2_ in - let _sloc = (_symbolstartpos, _endpos) in - ( +# 7452 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__5_ in + let _symbolstartpos = if _startpos__1_ != _endpos__1_ then + _startpos__1_ + else + _startpos__2_ in + let _sloc = (_symbolstartpos, _endpos) in + # 3136 "src/ocaml/preprocess/parser_raw.mly" ( let expr = mkexp_constraint ~loc:_sloc ~exp:_5 ~cty:None ~modes:[_2] @@ -7614,9 +7466,8 @@ module Tables = struct ; pcomp_cb_attributes = _1 } ) -# 7618 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.comprehension_clause_binding)) - in +# 7470 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -7665,45 +7516,44 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined2_ in - let _v = - let _5 = - let _1 = _1_inlined2 in - let _1 = + let _v : (Parsetree.comprehension_clause_binding) = let _5 = + let _1 = _1_inlined2 in + let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 7675 "src/ocaml/preprocess/parser_raw.ml" - in - +# 7525 "src/ocaml/preprocess/parser_raw.ml" + in + # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 7680 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__5_ = _endpos__1_inlined2_ in - let _2 = - let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos__1_inlined1_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 7530 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__5_ = _endpos__1_inlined2_ in + let _2 = + let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos__1_inlined1_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 4655 "src/ocaml/preprocess/parser_raw.mly" ( mkloc (Mode "once") (make_loc _sloc) ) -# 7692 "src/ocaml/preprocess/parser_raw.ml" - - in - let _startpos__2_ = _startpos__1_inlined1_ in - let _1 = +# 7542 "src/ocaml/preprocess/parser_raw.ml" + + in + let _startpos__2_ = _startpos__1_inlined1_ in + let _1 = # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 7699 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__5_ in - let _symbolstartpos = if _startpos__1_ != _endpos__1_ then - _startpos__1_ - else - _startpos__2_ in - let _sloc = (_symbolstartpos, _endpos) in - ( +# 7549 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__5_ in + let _symbolstartpos = if _startpos__1_ != _endpos__1_ then + _startpos__1_ + else + _startpos__2_ in + let _sloc = (_symbolstartpos, _endpos) in + # 3136 "src/ocaml/preprocess/parser_raw.mly" ( let expr = mkexp_constraint ~loc:_sloc ~exp:_5 ~cty:None ~modes:[_2] @@ -7713,9 +7563,8 @@ module Tables = struct ; pcomp_cb_attributes = _1 } ) -# 7717 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.comprehension_clause_binding)) - in +# 7567 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -7785,50 +7634,49 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_xs_ in - let _v = - let _5 = - let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined2_, _1_inlined4, _1_inlined3) in - let _1 = - let _3 = - let xs = - let xs = -# 264 "" + let _v : (Parsetree.comprehension_clause_binding) = let _5 = + let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined2_, _1_inlined4, _1_inlined3) in + let _1 = + let _3 = + let xs = + let xs = +# 253 "" ( List.rev xs ) -# 7798 "src/ocaml/preprocess/parser_raw.ml" - in - +# 7646 "src/ocaml/preprocess/parser_raw.ml" + in + # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 7803 "src/ocaml/preprocess/parser_raw.ml" - - in +# 7651 "src/ocaml/preprocess/parser_raw.ml" + in + # 3510 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 7809 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__3_ = _endpos_xs_ in +# 7657 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__3_ = _endpos_xs_ in + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in - + let _1 = _1_inlined1 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 7820 "src/ocaml/preprocess/parser_raw.ml" - - in +# 7668 "src/ocaml/preprocess/parser_raw.ml" + in + # 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 7826 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 7674 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2718 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in @@ -7842,40 +7690,40 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 7846 "src/ocaml/preprocess/parser_raw.ml" - - in +# 7694 "src/ocaml/preprocess/parser_raw.ml" + in + # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 7852 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__5_ = _endpos_xs_ in - let _2 = - let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos__1_inlined1_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 7700 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__5_ = _endpos_xs_ in + let _2 = + let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos__1_inlined1_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 4655 "src/ocaml/preprocess/parser_raw.mly" ( mkloc (Mode "once") (make_loc _sloc) ) -# 7864 "src/ocaml/preprocess/parser_raw.ml" - - in - let _startpos__2_ = _startpos__1_inlined1_ in - let _1 = +# 7712 "src/ocaml/preprocess/parser_raw.ml" + + in + let _startpos__2_ = _startpos__1_inlined1_ in + let _1 = # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 7871 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__5_ in - let _symbolstartpos = if _startpos__1_ != _endpos__1_ then - _startpos__1_ - else - _startpos__2_ in - let _sloc = (_symbolstartpos, _endpos) in - ( +# 7719 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__5_ in + let _symbolstartpos = if _startpos__1_ != _endpos__1_ then + _startpos__1_ + else + _startpos__2_ in + let _sloc = (_symbolstartpos, _endpos) in + # 3136 "src/ocaml/preprocess/parser_raw.mly" ( let expr = mkexp_constraint ~loc:_sloc ~exp:_5 ~cty:None ~modes:[_2] @@ -7885,9 +7733,8 @@ module Tables = struct ; pcomp_cb_attributes = _1 } ) -# 7889 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.comprehension_clause_binding)) - in +# 7737 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -7929,39 +7776,37 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined2_ in - let _v = - let _4 = - let _1 = _1_inlined2 in - let _1 = + let _v : (Parsetree.comprehension_iterator) = let _4 = + let _1 = _1_inlined2 in + let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 7939 "src/ocaml/preprocess/parser_raw.ml" - in - +# 7785 "src/ocaml/preprocess/parser_raw.ml" + in + # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 7944 "src/ocaml/preprocess/parser_raw.ml" - - in - let _2 = - let _1 = _1_inlined1 in - let _1 = +# 7790 "src/ocaml/preprocess/parser_raw.ml" + + in + let _2 = + let _1 = _1_inlined1 in + let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 7952 "src/ocaml/preprocess/parser_raw.ml" - in - +# 7798 "src/ocaml/preprocess/parser_raw.ml" + in + # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 7957 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 7803 "src/ocaml/preprocess/parser_raw.ml" + + in + # 3122 "src/ocaml/preprocess/parser_raw.mly" ( Pcomp_range { start = _2 ; stop = _4 ; direction = _3 } ) -# 7963 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.comprehension_iterator)) - in +# 7809 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -8024,50 +7869,49 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_xs_ in - let _v = - let _4 = - let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined2_, _1_inlined4, _1_inlined3) in - let _1 = - let _3 = - let xs = - let xs = -# 264 "" + let _v : (Parsetree.comprehension_iterator) = let _4 = + let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined2_, _1_inlined4, _1_inlined3) in + let _1 = + let _3 = + let xs = + let xs = +# 253 "" ( List.rev xs ) -# 8037 "src/ocaml/preprocess/parser_raw.ml" - in - +# 7881 "src/ocaml/preprocess/parser_raw.ml" + in + # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 8042 "src/ocaml/preprocess/parser_raw.ml" - - in +# 7886 "src/ocaml/preprocess/parser_raw.ml" + in + # 3510 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 8048 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__3_ = _endpos_xs_ in +# 7892 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__3_ = _endpos_xs_ in + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in - + let _1 = _1_inlined1 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 8059 "src/ocaml/preprocess/parser_raw.ml" - - in +# 7903 "src/ocaml/preprocess/parser_raw.ml" + in + # 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 8065 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 7909 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2718 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in @@ -8081,34 +7925,33 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 8085 "src/ocaml/preprocess/parser_raw.ml" - - in +# 7929 "src/ocaml/preprocess/parser_raw.ml" + in + # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 8091 "src/ocaml/preprocess/parser_raw.ml" - - in - let _2 = - let _1 = _1_inlined1 in - let _1 = +# 7935 "src/ocaml/preprocess/parser_raw.ml" + + in + let _2 = + let _1 = _1_inlined1 in + let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 8099 "src/ocaml/preprocess/parser_raw.ml" - in - +# 7943 "src/ocaml/preprocess/parser_raw.ml" + in + # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 8104 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 7948 "src/ocaml/preprocess/parser_raw.ml" + + in + # 3122 "src/ocaml/preprocess/parser_raw.mly" ( Pcomp_range { start = _2 ; stop = _4 ; direction = _3 } ) -# 8110 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.comprehension_iterator)) - in +# 7954 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -8171,63 +8014,62 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined4_ in - let _v = - let _4 = - let _1 = _1_inlined4 in - let _1 = + let _v : (Parsetree.comprehension_iterator) = let _4 = + let _1 = _1_inlined4 in + let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 8181 "src/ocaml/preprocess/parser_raw.ml" - in - +# 8023 "src/ocaml/preprocess/parser_raw.ml" + in + # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 8186 "src/ocaml/preprocess/parser_raw.ml" - - in - let _2 = - let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in - let _1 = - let _3 = - let xs = - let xs = -# 264 "" +# 8028 "src/ocaml/preprocess/parser_raw.ml" + + in + let _2 = + let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in + let _1 = + let _3 = + let xs = + let xs = +# 253 "" ( List.rev xs ) -# 8197 "src/ocaml/preprocess/parser_raw.ml" - in - +# 8039 "src/ocaml/preprocess/parser_raw.ml" + in + # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 8202 "src/ocaml/preprocess/parser_raw.ml" - - in +# 8044 "src/ocaml/preprocess/parser_raw.ml" + in + # 3510 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 8208 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__3_ = _endpos_xs_ in +# 8050 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__3_ = _endpos_xs_ in + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in - + let _1 = _1_inlined1 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 8219 "src/ocaml/preprocess/parser_raw.ml" - - in +# 8061 "src/ocaml/preprocess/parser_raw.ml" + in + # 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 8225 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 8067 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2718 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in @@ -8241,21 +8083,20 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 8245 "src/ocaml/preprocess/parser_raw.ml" - - in +# 8087 "src/ocaml/preprocess/parser_raw.ml" + in + # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 8251 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 8093 "src/ocaml/preprocess/parser_raw.ml" + + in + # 3122 "src/ocaml/preprocess/parser_raw.mly" ( Pcomp_range { start = _2 ; stop = _4 ; direction = _3 } ) -# 8257 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.comprehension_iterator)) - in +# 8099 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -8339,50 +8180,49 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_xs_inlined1_ in - let _v = - let _4 = - let (_endpos_xs_, _startpos__1_, xs, _1_inlined2, _1_inlined1) = (_endpos_xs_inlined1_, _startpos__1_inlined4_, xs_inlined1, _1_inlined6, _1_inlined5) in - let _1 = - let _3 = - let xs = - let xs = -# 264 "" + let _v : (Parsetree.comprehension_iterator) = let _4 = + let (_endpos_xs_, _startpos__1_, xs, _1_inlined2, _1_inlined1) = (_endpos_xs_inlined1_, _startpos__1_inlined4_, xs_inlined1, _1_inlined6, _1_inlined5) in + let _1 = + let _3 = + let xs = + let xs = +# 253 "" ( List.rev xs ) -# 8352 "src/ocaml/preprocess/parser_raw.ml" - in - +# 8192 "src/ocaml/preprocess/parser_raw.ml" + in + # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 8357 "src/ocaml/preprocess/parser_raw.ml" - - in +# 8197 "src/ocaml/preprocess/parser_raw.ml" + in + # 3510 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 8363 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__3_ = _endpos_xs_ in +# 8203 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__3_ = _endpos_xs_ in + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in - + let _1 = _1_inlined1 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 8374 "src/ocaml/preprocess/parser_raw.ml" - - in +# 8214 "src/ocaml/preprocess/parser_raw.ml" + in + # 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 8380 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 8220 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2718 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in @@ -8396,58 +8236,58 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 8400 "src/ocaml/preprocess/parser_raw.ml" - - in +# 8240 "src/ocaml/preprocess/parser_raw.ml" + in + # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 8406 "src/ocaml/preprocess/parser_raw.ml" - - in - let _2 = - let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in - let _1 = - let _3 = - let xs = - let xs = -# 264 "" +# 8246 "src/ocaml/preprocess/parser_raw.ml" + + in + let _2 = + let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in + let _1 = + let _3 = + let xs = + let xs = +# 253 "" ( List.rev xs ) -# 8417 "src/ocaml/preprocess/parser_raw.ml" - in - +# 8257 "src/ocaml/preprocess/parser_raw.ml" + in + # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 8422 "src/ocaml/preprocess/parser_raw.ml" - - in +# 8262 "src/ocaml/preprocess/parser_raw.ml" + in + # 3510 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 8428 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__3_ = _endpos_xs_ in +# 8268 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__3_ = _endpos_xs_ in + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in - + let _1 = _1_inlined1 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 8439 "src/ocaml/preprocess/parser_raw.ml" - - in +# 8279 "src/ocaml/preprocess/parser_raw.ml" + in + # 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 8445 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 8285 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2718 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in @@ -8461,21 +8301,20 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 8465 "src/ocaml/preprocess/parser_raw.ml" - - in +# 8305 "src/ocaml/preprocess/parser_raw.ml" + in + # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 8471 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 8311 "src/ocaml/preprocess/parser_raw.ml" + + in + # 3122 "src/ocaml/preprocess/parser_raw.mly" ( Pcomp_range { start = _2 ; stop = _4 ; direction = _3 } ) -# 8477 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.comprehension_iterator)) - in +# 8317 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -8503,26 +8342,24 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined1_ in - let _v = - let _2 = - let _1 = _1_inlined1 in - let _1 = + let _v : (Parsetree.comprehension_iterator) = let _2 = + let _1 = _1_inlined1 in + let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 8513 "src/ocaml/preprocess/parser_raw.ml" - in - +# 8351 "src/ocaml/preprocess/parser_raw.ml" + in + # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 8518 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 8356 "src/ocaml/preprocess/parser_raw.ml" + + in + # 3124 "src/ocaml/preprocess/parser_raw.mly" ( Pcomp_in _2 ) -# 8524 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.comprehension_iterator)) - in +# 8362 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -8571,50 +8408,49 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_xs_ in - let _v = - let _2 = - let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in - let _1 = - let _3 = - let xs = - let xs = -# 264 "" + let _v : (Parsetree.comprehension_iterator) = let _2 = + let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in + let _1 = + let _3 = + let xs = + let xs = +# 253 "" ( List.rev xs ) -# 8584 "src/ocaml/preprocess/parser_raw.ml" - in - +# 8420 "src/ocaml/preprocess/parser_raw.ml" + in + # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 8589 "src/ocaml/preprocess/parser_raw.ml" - - in +# 8425 "src/ocaml/preprocess/parser_raw.ml" + in + # 3510 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 8595 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__3_ = _endpos_xs_ in +# 8431 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__3_ = _endpos_xs_ in + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in - + let _1 = _1_inlined1 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 8606 "src/ocaml/preprocess/parser_raw.ml" - - in +# 8442 "src/ocaml/preprocess/parser_raw.ml" + in + # 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 8612 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 8448 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2718 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in @@ -8628,21 +8464,20 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 8632 "src/ocaml/preprocess/parser_raw.ml" - - in +# 8468 "src/ocaml/preprocess/parser_raw.ml" + in + # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 8638 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 8474 "src/ocaml/preprocess/parser_raw.ml" + + in + # 3124 "src/ocaml/preprocess/parser_raw.mly" ( Pcomp_in _2 ) -# 8644 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.comprehension_iterator)) - in +# 8480 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -8666,7 +8501,7 @@ module Tables = struct let _v : (Parsetree.constant) = # 5027 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 8670 "src/ocaml/preprocess/parser_raw.ml" +# 8505 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -8691,7 +8526,7 @@ module Tables = struct let _v : (Parsetree.constant) = # 5028 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 8695 "src/ocaml/preprocess/parser_raw.ml" +# 8530 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -8723,7 +8558,7 @@ module Tables = struct let _v : (string) = # 5116 "src/ocaml/preprocess/parser_raw.mly" ( "[]" ) -# 8727 "src/ocaml/preprocess/parser_raw.ml" +# 8562 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -8755,7 +8590,7 @@ module Tables = struct let _v : (string) = # 5117 "src/ocaml/preprocess/parser_raw.mly" ( "()" ) -# 8759 "src/ocaml/preprocess/parser_raw.ml" +# 8594 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -8780,7 +8615,7 @@ module Tables = struct let _v : (string) = # 5118 "src/ocaml/preprocess/parser_raw.mly" ( "false" ) -# 8784 "src/ocaml/preprocess/parser_raw.ml" +# 8619 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -8805,7 +8640,7 @@ module Tables = struct let _v : (string) = # 5119 "src/ocaml/preprocess/parser_raw.mly" ( "true" ) -# 8809 "src/ocaml/preprocess/parser_raw.ml" +# 8644 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -8826,7 +8661,7 @@ module Tables = struct let _1 : ( # 1155 "src/ocaml/preprocess/parser_raw.mly" (string) -# 8830 "src/ocaml/preprocess/parser_raw.ml" +# 8665 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -8834,7 +8669,7 @@ module Tables = struct let _v : (string) = # 5122 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 8838 "src/ocaml/preprocess/parser_raw.ml" +# 8673 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -8870,18 +8705,16 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in - let _v = - let _1 = + let _v : (string) = let _1 = # 5113 "src/ocaml/preprocess/parser_raw.mly" ( "::" ) -# 8878 "src/ocaml/preprocess/parser_raw.ml" - in - ( +# 8712 "src/ocaml/preprocess/parser_raw.ml" + in + # 5123 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 8883 "src/ocaml/preprocess/parser_raw.ml" - : (string)) - in +# 8717 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -8905,7 +8738,7 @@ module Tables = struct let _v : (string) = # 5124 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 8909 "src/ocaml/preprocess/parser_raw.ml" +# 8742 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -8930,7 +8763,7 @@ module Tables = struct let _v : (Longident.t) = # 5127 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 8934 "src/ocaml/preprocess/parser_raw.ml" +# 8767 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -8980,18 +8813,16 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in - let _v = - let _3 = + let _v : (Longident.t) = let _3 = # 5113 "src/ocaml/preprocess/parser_raw.mly" ( "::" ) -# 8988 "src/ocaml/preprocess/parser_raw.ml" - in - ( +# 8820 "src/ocaml/preprocess/parser_raw.ml" + in + # 5128 "src/ocaml/preprocess/parser_raw.mly" ( Ldot(_1,_3) ) -# 8993 "src/ocaml/preprocess/parser_raw.ml" - : (Longident.t)) - in +# 8825 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -9026,18 +8857,16 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in - let _v = - let _1 = + let _v : (Longident.t) = let _1 = # 5113 "src/ocaml/preprocess/parser_raw.mly" ( "::" ) -# 9034 "src/ocaml/preprocess/parser_raw.ml" - in - ( +# 8864 "src/ocaml/preprocess/parser_raw.ml" + in + # 5129 "src/ocaml/preprocess/parser_raw.mly" ( Lident _1 ) -# 9039 "src/ocaml/preprocess/parser_raw.ml" - : (Longident.t)) - in +# 8869 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -9061,7 +8890,7 @@ module Tables = struct let _v : (Longident.t) = # 5130 "src/ocaml/preprocess/parser_raw.mly" ( Lident _1 ) -# 9065 "src/ocaml/preprocess/parser_raw.ml" +# 8894 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -9100,7 +8929,7 @@ module Tables = struct let _v : (Parsetree.core_type * Parsetree.core_type) = # 2630 "src/ocaml/preprocess/parser_raw.mly" ( _1, _3 ) -# 9104 "src/ocaml/preprocess/parser_raw.ml" +# 8933 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -9129,56 +8958,54 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_cty_ in let _endpos = _endpos_m1_ in - let _v = - let tys = + let _v : (Parsetree.constructor_arguments) = let tys = + let xs = let xs = - let xs = - let x = - let gbl = + let x = + let gbl = # 5261 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 9141 "src/ocaml/preprocess/parser_raw.ml" - in - let (_endpos_gbl_, _startpos_gbl_) = (_endpos__0_, _endpos__0_) in - let _endpos = _endpos_m1_ in - let _symbolstartpos = if _startpos_gbl_ != _endpos_gbl_ then - _startpos_gbl_ - else - _startpos_cty_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 8969 "src/ocaml/preprocess/parser_raw.ml" + in + let (_endpos_gbl_, _startpos_gbl_) = (_endpos__0_, _endpos__0_) in + let _endpos = _endpos_m1_ in + let _symbolstartpos = if _startpos_gbl_ != _endpos_gbl_ then + _startpos_gbl_ + else + _startpos_cty_ in + let _sloc = (_symbolstartpos, _endpos) in + # 4345 "src/ocaml/preprocess/parser_raw.mly" ( let modalities = gbl @ m1 in Type.constructor_arg cty ~modalities ~loc:(make_loc _sloc) ) -# 9156 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 1434 "src/ocaml/preprocess/parser_raw.mly" - ( [ x ] ) -# 9162 "src/ocaml/preprocess/parser_raw.ml" +# 8984 "src/ocaml/preprocess/parser_raw.ml" in -# 264 "" - ( List.rev xs ) -# 9168 "src/ocaml/preprocess/parser_raw.ml" +# 1434 "src/ocaml/preprocess/parser_raw.mly" + ( [ x ] ) +# 8990 "src/ocaml/preprocess/parser_raw.ml" in -# 1454 "src/ocaml/preprocess/parser_raw.mly" - ( xs ) -# 9174 "src/ocaml/preprocess/parser_raw.ml" +# 253 "" + ( List.rev xs ) +# 8996 "src/ocaml/preprocess/parser_raw.ml" in - ( + +# 1454 "src/ocaml/preprocess/parser_raw.mly" + ( xs ) +# 9002 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4353 "src/ocaml/preprocess/parser_raw.mly" ( Pcstr_tuple tys ) -# 9180 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.constructor_arguments)) - in +# 9008 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -9213,61 +9040,59 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_m1_ in - let _v = - let tys = + let _v : (Parsetree.constructor_arguments) = let tys = + let xs = let xs = - let xs = - let x = - let gbl = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let x = + let gbl = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 5262 "src/ocaml/preprocess/parser_raw.mly" ( [ mkloc (Modality "global") (make_loc _sloc)] ) -# 9229 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos_gbl_, _startpos_gbl_) = (_endpos__1_, _startpos__1_) in - let _endpos = _endpos_m1_ in - let _symbolstartpos = if _startpos_gbl_ != _endpos_gbl_ then - _startpos_gbl_ - else - _startpos_cty_ in - let _sloc = (_symbolstartpos, _endpos) in +# 9055 "src/ocaml/preprocess/parser_raw.ml" + in + let (_endpos_gbl_, _startpos_gbl_) = (_endpos__1_, _startpos__1_) in + let _endpos = _endpos_m1_ in + let _symbolstartpos = if _startpos_gbl_ != _endpos_gbl_ then + _startpos_gbl_ + else + _startpos_cty_ in + let _sloc = (_symbolstartpos, _endpos) in + # 4345 "src/ocaml/preprocess/parser_raw.mly" ( let modalities = gbl @ m1 in Type.constructor_arg cty ~modalities ~loc:(make_loc _sloc) ) -# 9245 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 1434 "src/ocaml/preprocess/parser_raw.mly" - ( [ x ] ) -# 9251 "src/ocaml/preprocess/parser_raw.ml" +# 9071 "src/ocaml/preprocess/parser_raw.ml" in -# 264 "" - ( List.rev xs ) -# 9257 "src/ocaml/preprocess/parser_raw.ml" +# 1434 "src/ocaml/preprocess/parser_raw.mly" + ( [ x ] ) +# 9077 "src/ocaml/preprocess/parser_raw.ml" in -# 1454 "src/ocaml/preprocess/parser_raw.mly" - ( xs ) -# 9263 "src/ocaml/preprocess/parser_raw.ml" +# 253 "" + ( List.rev xs ) +# 9083 "src/ocaml/preprocess/parser_raw.ml" in - ( + +# 1454 "src/ocaml/preprocess/parser_raw.mly" + ( xs ) +# 9089 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4353 "src/ocaml/preprocess/parser_raw.mly" ( Pcstr_tuple tys ) -# 9269 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.constructor_arguments)) - in +# 9095 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -9309,57 +9134,55 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_xs_ in let _endpos = _endpos_m1_ in - let _v = - let tys = + let _v : (Parsetree.constructor_arguments) = let tys = + let xs = let xs = - let xs = - let x = - let _endpos__0_ = _endpos__2_ in - let gbl = + let x = + let _endpos__0_ = _endpos__2_ in + let gbl = # 5261 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 9322 "src/ocaml/preprocess/parser_raw.ml" - in - let (_endpos_gbl_, _startpos_gbl_) = (_endpos__0_, _endpos__0_) in - let _endpos = _endpos_m1_ in - let _symbolstartpos = if _startpos_gbl_ != _endpos_gbl_ then - _startpos_gbl_ - else - _startpos_cty_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 9146 "src/ocaml/preprocess/parser_raw.ml" + in + let (_endpos_gbl_, _startpos_gbl_) = (_endpos__0_, _endpos__0_) in + let _endpos = _endpos_m1_ in + let _symbolstartpos = if _startpos_gbl_ != _endpos_gbl_ then + _startpos_gbl_ + else + _startpos_cty_ in + let _sloc = (_symbolstartpos, _endpos) in + # 4345 "src/ocaml/preprocess/parser_raw.mly" ( let modalities = gbl @ m1 in Type.constructor_arg cty ~modalities ~loc:(make_loc _sloc) ) -# 9337 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 1438 "src/ocaml/preprocess/parser_raw.mly" - ( x :: xs ) -# 9343 "src/ocaml/preprocess/parser_raw.ml" +# 9161 "src/ocaml/preprocess/parser_raw.ml" in -# 264 "" - ( List.rev xs ) -# 9349 "src/ocaml/preprocess/parser_raw.ml" +# 1438 "src/ocaml/preprocess/parser_raw.mly" + ( x :: xs ) +# 9167 "src/ocaml/preprocess/parser_raw.ml" in -# 1454 "src/ocaml/preprocess/parser_raw.mly" - ( xs ) -# 9355 "src/ocaml/preprocess/parser_raw.ml" +# 253 "" + ( List.rev xs ) +# 9173 "src/ocaml/preprocess/parser_raw.ml" in - ( + +# 1454 "src/ocaml/preprocess/parser_raw.mly" + ( xs ) +# 9179 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4353 "src/ocaml/preprocess/parser_raw.mly" ( Pcstr_tuple tys ) -# 9361 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.constructor_arguments)) - in +# 9185 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -9408,61 +9231,59 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_xs_ in let _endpos = _endpos_m1_ in - let _v = - let tys = + let _v : (Parsetree.constructor_arguments) = let tys = + let xs = let xs = - let xs = - let x = - let gbl = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let x = + let gbl = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 5262 "src/ocaml/preprocess/parser_raw.mly" ( [ mkloc (Modality "global") (make_loc _sloc)] ) -# 9424 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos_gbl_, _startpos_gbl_) = (_endpos__1_, _startpos__1_) in - let _endpos = _endpos_m1_ in - let _symbolstartpos = if _startpos_gbl_ != _endpos_gbl_ then - _startpos_gbl_ - else - _startpos_cty_ in - let _sloc = (_symbolstartpos, _endpos) in +# 9246 "src/ocaml/preprocess/parser_raw.ml" + in + let (_endpos_gbl_, _startpos_gbl_) = (_endpos__1_, _startpos__1_) in + let _endpos = _endpos_m1_ in + let _symbolstartpos = if _startpos_gbl_ != _endpos_gbl_ then + _startpos_gbl_ + else + _startpos_cty_ in + let _sloc = (_symbolstartpos, _endpos) in + # 4345 "src/ocaml/preprocess/parser_raw.mly" ( let modalities = gbl @ m1 in Type.constructor_arg cty ~modalities ~loc:(make_loc _sloc) ) -# 9440 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 1438 "src/ocaml/preprocess/parser_raw.mly" - ( x :: xs ) -# 9446 "src/ocaml/preprocess/parser_raw.ml" +# 9262 "src/ocaml/preprocess/parser_raw.ml" in -# 264 "" - ( List.rev xs ) -# 9452 "src/ocaml/preprocess/parser_raw.ml" +# 1438 "src/ocaml/preprocess/parser_raw.mly" + ( x :: xs ) +# 9268 "src/ocaml/preprocess/parser_raw.ml" in -# 1454 "src/ocaml/preprocess/parser_raw.mly" - ( xs ) -# 9458 "src/ocaml/preprocess/parser_raw.ml" +# 253 "" + ( List.rev xs ) +# 9274 "src/ocaml/preprocess/parser_raw.ml" in - ( + +# 1454 "src/ocaml/preprocess/parser_raw.mly" + ( xs ) +# 9280 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4353 "src/ocaml/preprocess/parser_raw.mly" ( Pcstr_tuple tys ) -# 9464 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.constructor_arguments)) - in +# 9286 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -9500,7 +9321,7 @@ module Tables = struct let _v : (Parsetree.constructor_arguments) = # 4355 "src/ocaml/preprocess/parser_raw.mly" ( Pcstr_record _2 ) -# 9504 "src/ocaml/preprocess/parser_raw.ml" +# 9325 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -9525,7 +9346,7 @@ module Tables = struct let _v : (Parsetree.constructor_declaration list) = # 4262 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 9529 "src/ocaml/preprocess/parser_raw.ml" +# 9350 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -9547,18 +9368,16 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_xs_ in let _endpos = _endpos_xs_ in - let _v = - let cs = + let _v : (Parsetree.constructor_declaration list) = let cs = # 1539 "src/ocaml/preprocess/parser_raw.mly" ( List.rev xs ) -# 9555 "src/ocaml/preprocess/parser_raw.ml" - in - ( +# 9375 "src/ocaml/preprocess/parser_raw.ml" + in + # 4264 "src/ocaml/preprocess/parser_raw.mly" ( cs ) -# 9560 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.constructor_declaration list)) - in +# 9380 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -9579,18 +9398,16 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v = - let _1 = + let _v : (Parsetree.core_type) = let _1 = # 4521 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 9587 "src/ocaml/preprocess/parser_raw.ml" - in - ( +# 9405 "src/ocaml/preprocess/parser_raw.ml" + in + # 4511 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 9592 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type)) - in +# 9410 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -9621,7 +9438,7 @@ module Tables = struct let _v : (Parsetree.core_type) = # 4513 "src/ocaml/preprocess/parser_raw.mly" ( Typ.attr _1 _2 ) -# 9625 "src/ocaml/preprocess/parser_raw.ml" +# 9442 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -9646,7 +9463,7 @@ module Tables = struct let _v : (Parsetree.core_type) = # 4871 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 9650 "src/ocaml/preprocess/parser_raw.ml" +# 9467 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -9671,7 +9488,7 @@ module Tables = struct let _v : (Parsetree.core_type) = # 4871 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 9675 "src/ocaml/preprocess/parser_raw.ml" +# 9492 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -9696,7 +9513,7 @@ module Tables = struct let _v : (Parsetree.core_type) = # 4871 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 9700 "src/ocaml/preprocess/parser_raw.ml" +# 9517 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -9735,7 +9552,7 @@ module Tables = struct let _v : (Parsetree.core_type) = # 4822 "src/ocaml/preprocess/parser_raw.mly" ( type_ ) -# 9739 "src/ocaml/preprocess/parser_raw.ml" +# 9556 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -9792,45 +9609,43 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__5_ in - let _v = - let package_type = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined3_, _startpos__1_inlined3_, _1_inlined3) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let _v : (Parsetree.core_type) = let package_type = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined3_, _startpos__1_inlined3_, _1_inlined3) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 4936 "src/ocaml/preprocess/parser_raw.mly" ( let (lid, cstrs, attrs) = package_type_of_module_type _1 in let descr = Ptyp_package (lid, cstrs) in mktyp ~loc:_sloc ~attrs descr ) -# 9807 "src/ocaml/preprocess/parser_raw.ml" +# 9623 "src/ocaml/preprocess/parser_raw.ml" + + in + let attrs = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in + let _2 = + let _1 = _1_inlined1 in - in - let attrs = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in - # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 9817 "src/ocaml/preprocess/parser_raw.ml" - - in +# 9633 "src/ocaml/preprocess/parser_raw.ml" + in + # 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 9823 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__5_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - ( +# 9639 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__5_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 4824 "src/ocaml/preprocess/parser_raw.mly" ( wrap_typ_attrs ~loc:_sloc (reloc_typ ~loc:_sloc package_type) attrs ) -# 9832 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type)) - in +# 9648 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -9865,29 +9680,200 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in - let _v = - let _1 = - let _1 = + let _v : (Parsetree.core_type) = let _1 = + let _1 = # 4827 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_variant([ field ], Closed, None) ) -# 9874 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos__1_ = _endpos__3_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 9688 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__3_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 9883 "src/ocaml/preprocess/parser_raw.ml" +# 9697 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 4846 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 9703 "src/ocaml/preprocess/parser_raw.ml" + in + { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _4; + MenhirLib.EngineTypes.startp = _startpos__4_; + MenhirLib.EngineTypes.endp = _endpos__4_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = xs; + MenhirLib.EngineTypes.startp = _startpos_xs_; + MenhirLib.EngineTypes.endp = _endpos_xs_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; + } = _menhir_stack in + let _4 : unit = Obj.magic _4 in + let xs : (Parsetree.row_field list) = Obj.magic xs in + let _2 : unit = Obj.magic _2 in + let _1 : unit = Obj.magic _1 in + let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in + let _startpos = _startpos__1_ in + let _endpos = _endpos__4_ in + let _v : (Parsetree.core_type) = let _1 = + let _1 = + let fields = + let _1 = + let xs = +# 253 "" + ( List.rev xs ) +# 9753 "src/ocaml/preprocess/parser_raw.ml" + in + +# 1450 "src/ocaml/preprocess/parser_raw.mly" + ( xs ) +# 9758 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 4942 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 9764 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 4829 "src/ocaml/preprocess/parser_raw.mly" + ( Ptyp_variant(fields, Closed, None) ) +# 9770 "src/ocaml/preprocess/parser_raw.ml" in - ( + let _endpos__1_ = _endpos__4_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 1333 "src/ocaml/preprocess/parser_raw.mly" + ( mktyp ~loc:_sloc _1 ) +# 9780 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4846 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 9889 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type)) +# 9786 "src/ocaml/preprocess/parser_raw.ml" + in + { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _5; + MenhirLib.EngineTypes.startp = _startpos__5_; + MenhirLib.EngineTypes.endp = _endpos__5_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = xs; + MenhirLib.EngineTypes.startp = _startpos_xs_; + MenhirLib.EngineTypes.endp = _endpos_xs_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = field; + MenhirLib.EngineTypes.startp = _startpos_field_; + MenhirLib.EngineTypes.endp = _endpos_field_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; + }; + } = _menhir_stack in + let _5 : unit = Obj.magic _5 in + let xs : (Parsetree.row_field list) = Obj.magic xs in + let _3 : unit = Obj.magic _3 in + let field : (Parsetree.row_field) = Obj.magic field in + let _1 : unit = Obj.magic _1 in + let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in + let _startpos = _startpos__1_ in + let _endpos = _endpos__5_ in + let _v : (Parsetree.core_type) = let _1 = + let _1 = + let fields = + let _1 = + let xs = +# 253 "" + ( List.rev xs ) +# 9843 "src/ocaml/preprocess/parser_raw.ml" + in + +# 1450 "src/ocaml/preprocess/parser_raw.mly" + ( xs ) +# 9848 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 4942 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 9854 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 4831 "src/ocaml/preprocess/parser_raw.mly" + ( Ptyp_variant(field :: fields, Closed, None) ) +# 9860 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__1_ = _endpos__5_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 1333 "src/ocaml/preprocess/parser_raw.mly" + ( mktyp ~loc:_sloc _1 ) +# 9870 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4846 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 9876 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -9924,232 +9910,53 @@ module Tables = struct } = _menhir_stack in let _4 : unit = Obj.magic _4 in let xs : (Parsetree.row_field list) = Obj.magic xs in - let _2 : unit = Obj.magic _2 in + let _2 : (unit option) = Obj.magic _2 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in - let _v = + let _v : (Parsetree.core_type) = let _1 = let _1 = - let _1 = - let fields = - let _1 = - let xs = -# 264 "" + let fields = + let _1 = + let xs = +# 253 "" ( List.rev xs ) -# 9941 "src/ocaml/preprocess/parser_raw.ml" - in - +# 9926 "src/ocaml/preprocess/parser_raw.ml" + in + # 1450 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 9946 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4942 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 9952 "src/ocaml/preprocess/parser_raw.ml" +# 9931 "src/ocaml/preprocess/parser_raw.ml" in -# 4829 "src/ocaml/preprocess/parser_raw.mly" - ( Ptyp_variant(fields, Closed, None) ) -# 9958 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__4_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 1333 "src/ocaml/preprocess/parser_raw.mly" - ( mktyp ~loc:_sloc _1 ) -# 9968 "src/ocaml/preprocess/parser_raw.ml" - - in - ( -# 4846 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 9974 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type)) - in - { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = Obj.repr _v; - MenhirLib.EngineTypes.startp = _startpos; - MenhirLib.EngineTypes.endp = _endpos; - MenhirLib.EngineTypes.next = _menhir_stack; - }); - (fun _menhir_env -> - let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _5; - MenhirLib.EngineTypes.startp = _startpos__5_; - MenhirLib.EngineTypes.endp = _endpos__5_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = xs; - MenhirLib.EngineTypes.startp = _startpos_xs_; - MenhirLib.EngineTypes.endp = _endpos_xs_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = field; - MenhirLib.EngineTypes.startp = _startpos_field_; - MenhirLib.EngineTypes.endp = _endpos_field_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - }; - }; - } = _menhir_stack in - let _5 : unit = Obj.magic _5 in - let xs : (Parsetree.row_field list) = Obj.magic xs in - let _3 : unit = Obj.magic _3 in - let field : (Parsetree.row_field) = Obj.magic field in - let _1 : unit = Obj.magic _1 in - let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos__1_ in - let _endpos = _endpos__5_ in - let _v = - let _1 = - let _1 = - let fields = - let _1 = - let xs = -# 264 "" - ( List.rev xs ) -# 10033 "src/ocaml/preprocess/parser_raw.ml" - in - -# 1450 "src/ocaml/preprocess/parser_raw.mly" - ( xs ) -# 10038 "src/ocaml/preprocess/parser_raw.ml" - - in - # 4942 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 10044 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4831 "src/ocaml/preprocess/parser_raw.mly" - ( Ptyp_variant(field :: fields, Closed, None) ) -# 10050 "src/ocaml/preprocess/parser_raw.ml" +# 9937 "src/ocaml/preprocess/parser_raw.ml" in - let _endpos__1_ = _endpos__5_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 1333 "src/ocaml/preprocess/parser_raw.mly" - ( mktyp ~loc:_sloc _1 ) -# 10060 "src/ocaml/preprocess/parser_raw.ml" - in - ( -# 4846 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 10066 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type)) - in - { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = Obj.repr _v; - MenhirLib.EngineTypes.startp = _startpos; - MenhirLib.EngineTypes.endp = _endpos; - MenhirLib.EngineTypes.next = _menhir_stack; - }); - (fun _menhir_env -> - let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _4; - MenhirLib.EngineTypes.startp = _startpos__4_; - MenhirLib.EngineTypes.endp = _endpos__4_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = xs; - MenhirLib.EngineTypes.startp = _startpos_xs_; - MenhirLib.EngineTypes.endp = _endpos_xs_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - }; - } = _menhir_stack in - let _4 : unit = Obj.magic _4 in - let xs : (Parsetree.row_field list) = Obj.magic xs in - let _2 : (unit option) = Obj.magic _2 in - let _1 : unit = Obj.magic _1 in - let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos__1_ in - let _endpos = _endpos__4_ in - let _v = - let _1 = - let _1 = - let fields = - let _1 = - let xs = -# 264 "" - ( List.rev xs ) -# 10118 "src/ocaml/preprocess/parser_raw.ml" - in - -# 1450 "src/ocaml/preprocess/parser_raw.mly" - ( xs ) -# 10123 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4942 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 10129 "src/ocaml/preprocess/parser_raw.ml" - - in - # 4833 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_variant(fields, Open, None) ) -# 10135 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__4_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 9943 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__4_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 10145 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 9953 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4846 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 10151 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type)) - in +# 9959 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -10177,29 +9984,27 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in - let _v = - let _1 = - let _1 = + let _v : (Parsetree.core_type) = let _1 = + let _1 = # 4835 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_variant([], Open, None) ) -# 10186 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos__1_ = _endpos__2_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 9992 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__2_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 10195 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 10001 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4846 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 10201 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type)) - in +# 10007 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -10241,50 +10046,48 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in - let _v = + let _v : (Parsetree.core_type) = let _1 = let _1 = - let _1 = - let fields = - let _1 = - let xs = -# 264 "" + let fields = + let _1 = + let xs = +# 253 "" ( List.rev xs ) -# 10253 "src/ocaml/preprocess/parser_raw.ml" - in - +# 10057 "src/ocaml/preprocess/parser_raw.ml" + in + # 1450 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 10258 "src/ocaml/preprocess/parser_raw.ml" - - in +# 10062 "src/ocaml/preprocess/parser_raw.ml" + in + # 4942 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 10264 "src/ocaml/preprocess/parser_raw.ml" - - in +# 10068 "src/ocaml/preprocess/parser_raw.ml" + in + # 4837 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_variant(fields, Closed, Some []) ) -# 10270 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__4_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 10074 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__4_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 10280 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 10084 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4846 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 10286 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type)) - in +# 10090 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -10340,70 +10143,68 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__6_ in - let _v = + let _v : (Parsetree.core_type) = let _1 = let _1 = - let _1 = - let tags = - let xs = xs_inlined1 in - let _1 = - let xs = -# 264 "" + let tags = + let xs = xs_inlined1 in + let _1 = + let xs = +# 253 "" ( List.rev xs ) -# 10353 "src/ocaml/preprocess/parser_raw.ml" - in - +# 10155 "src/ocaml/preprocess/parser_raw.ml" + in + # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 10358 "src/ocaml/preprocess/parser_raw.ml" - - in +# 10160 "src/ocaml/preprocess/parser_raw.ml" + in + # 4970 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 10364 "src/ocaml/preprocess/parser_raw.ml" - - in - let fields = - let _1 = - let xs = -# 264 "" +# 10166 "src/ocaml/preprocess/parser_raw.ml" + + in + let fields = + let _1 = + let xs = +# 253 "" ( List.rev xs ) -# 10372 "src/ocaml/preprocess/parser_raw.ml" - in - +# 10174 "src/ocaml/preprocess/parser_raw.ml" + in + # 1450 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 10377 "src/ocaml/preprocess/parser_raw.ml" - - in +# 10179 "src/ocaml/preprocess/parser_raw.ml" + in + # 4942 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 10383 "src/ocaml/preprocess/parser_raw.ml" - - in +# 10185 "src/ocaml/preprocess/parser_raw.ml" + in + # 4842 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_variant(fields, Closed, Some tags) ) -# 10389 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__6_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 10191 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__6_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 10399 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 10201 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4846 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 10405 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type)) - in +# 10207 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -10452,50 +10253,48 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in - let _v = + let _v : (Parsetree.core_type) = let _1 = let _1 = - let _1 = - let _2 = - let ltys = - let xs = -# 264 "" + let _2 = + let ltys = + let xs = +# 253 "" ( List.rev xs ) -# 10464 "src/ocaml/preprocess/parser_raw.ml" - in - +# 10264 "src/ocaml/preprocess/parser_raw.ml" + in + # 1450 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 10469 "src/ocaml/preprocess/parser_raw.ml" - - in +# 10269 "src/ocaml/preprocess/parser_raw.ml" + in + # 4775 "src/ocaml/preprocess/parser_raw.mly" ( (None, ty1) :: ltys ) -# 10475 "src/ocaml/preprocess/parser_raw.ml" - - in +# 10275 "src/ocaml/preprocess/parser_raw.ml" + in + # 4844 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_unboxed_tuple _2 ) -# 10481 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__3_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 10281 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__3_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 10491 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 10291 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4846 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 10497 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type)) - in +# 10297 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -10556,56 +10355,54 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 10560 "src/ocaml/preprocess/parser_raw.ml" +# 10359 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in - let _v = + let _v : (Parsetree.core_type) = let _1 = let _1 = - let _1 = - let _2 = - let ltys = - let xs = -# 264 "" + let _2 = + let ltys = + let xs = +# 253 "" ( List.rev xs ) -# 10574 "src/ocaml/preprocess/parser_raw.ml" - in - +# 10372 "src/ocaml/preprocess/parser_raw.ml" + in + # 1450 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 10579 "src/ocaml/preprocess/parser_raw.ml" - - in +# 10377 "src/ocaml/preprocess/parser_raw.ml" + in + # 4781 "src/ocaml/preprocess/parser_raw.mly" ( (Some label, ty1) :: ltys ) -# 10585 "src/ocaml/preprocess/parser_raw.ml" - - in +# 10383 "src/ocaml/preprocess/parser_raw.ml" + in + # 4844 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_unboxed_tuple _2 ) -# 10591 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__3_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 10389 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__3_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 10601 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 10399 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4846 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 10607 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type)) - in +# 10405 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -10629,7 +10426,7 @@ module Tables = struct let _v : (Asttypes.direction_flag) = # 5237 "src/ocaml/preprocess/parser_raw.mly" ( Upto ) -# 10633 "src/ocaml/preprocess/parser_raw.ml" +# 10430 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -10654,7 +10451,7 @@ module Tables = struct let _v : (Asttypes.direction_flag) = # 5238 "src/ocaml/preprocess/parser_raw.mly" ( Downto ) -# 10658 "src/ocaml/preprocess/parser_raw.ml" +# 10455 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -10672,7 +10469,7 @@ module Tables = struct let _v : (string Location.loc option) = # 5406 "src/ocaml/preprocess/parser_raw.mly" ( None ) -# 10676 "src/ocaml/preprocess/parser_raw.ml" +# 10473 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -10704,7 +10501,7 @@ module Tables = struct let _v : (string Location.loc option) = # 5407 "src/ocaml/preprocess/parser_raw.mly" ( Some _2 ) -# 10708 "src/ocaml/preprocess/parser_raw.ml" +# 10505 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -10750,7 +10547,7 @@ module Tables = struct let _v : (Parsetree.extension) = # 5419 "src/ocaml/preprocess/parser_raw.mly" ( (_2, _3) ) -# 10754 "src/ocaml/preprocess/parser_raw.ml" +# 10551 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -10771,21 +10568,19 @@ module Tables = struct let _1 : ( # 1143 "src/ocaml/preprocess/parser_raw.mly" (string * Location.t * string * Location.t * string option) -# 10775 "src/ocaml/preprocess/parser_raw.ml" +# 10572 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - ( + let _v : (Parsetree.extension) = let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 5421 "src/ocaml/preprocess/parser_raw.mly" ( mk_quotedext ~loc:_sloc _1 ) -# 10787 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.extension)) - in +# 10583 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -10834,48 +10629,46 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined3_ in - let _v = - let attrs = - let _1 = _1_inlined3 in - + let _v : (Parsetree.extension_constructor) = let attrs = + let _1 = _1_inlined3 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 10844 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_attrs_ = _endpos__1_inlined3_ in - let lid = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 1296 "src/ocaml/preprocess/parser_raw.mly" - ( mkrhs _1 _sloc ) -# 10856 "src/ocaml/preprocess/parser_raw.ml" - - in - let cid = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 10638 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_attrs_ = _endpos__1_inlined3_ in + let lid = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 10867 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos_attrs_ in +# 10650 "src/ocaml/preprocess/parser_raw.ml" + + in + let cid = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in + let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in - ( + +# 1296 "src/ocaml/preprocess/parser_raw.mly" + ( mkrhs _1 _sloc ) +# 10661 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos_attrs_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 4427 "src/ocaml/preprocess/parser_raw.mly" ( let info = symbol_info _endpos in Te.rebind cid lid ~attrs ~loc:(make_loc _sloc) ~info ) -# 10877 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.extension_constructor)) - in +# 10671 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -10917,53 +10710,51 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined2_ in - let _v = - let attrs = - let _1 = _1_inlined2 in - + let _v : (Parsetree.extension_constructor) = let attrs = + let _1 = _1_inlined2 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 10927 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_attrs_ = _endpos__1_inlined2_ in - let lid = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 10719 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_attrs_ = _endpos__1_inlined2_ in + let lid = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 10939 "src/ocaml/preprocess/parser_raw.ml" - - in - let cid = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 10731 "src/ocaml/preprocess/parser_raw.ml" + + in + let cid = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 10949 "src/ocaml/preprocess/parser_raw.ml" - - in - let _startpos_cid_ = _startpos__1_ in - let _1 = +# 10741 "src/ocaml/preprocess/parser_raw.ml" + + in + let _startpos_cid_ = _startpos__1_ in + let _1 = # 5211 "src/ocaml/preprocess/parser_raw.mly" ( () ) -# 10956 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos_attrs_ in - let _symbolstartpos = _startpos_cid_ in - let _sloc = (_symbolstartpos, _endpos) in - ( +# 10748 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos_attrs_ in + let _symbolstartpos = _startpos_cid_ in + let _sloc = (_symbolstartpos, _endpos) in + # 4427 "src/ocaml/preprocess/parser_raw.mly" ( let info = symbol_info _endpos in Te.rebind cid lid ~attrs ~loc:(make_loc _sloc) ~info ) -# 10965 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.extension_constructor)) - in +# 10757 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -10984,29 +10775,27 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_ext_ in let _endpos = _endpos_ext_ in - let _v = - let _1 = - let _1 = + let _v : (Parsetree.core_type) = let _1 = + let _1 = # 4862 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_extension ext ) -# 10993 "src/ocaml/preprocess/parser_raw.ml" - in - let (_endpos__1_, _startpos__1_) = (_endpos_ext_, _startpos_ext_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 10783 "src/ocaml/preprocess/parser_raw.ml" + in + let (_endpos__1_, _startpos__1_) = (_endpos_ext_, _startpos_ext_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 11002 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 10792 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4864 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 11008 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type)) - in +# 10798 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -11048,17 +10837,15 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in - let _v = - let _endpos = _endpos__4_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - ( + let _v : (Parsetree.attribute) = let _endpos = _endpos__4_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 5394 "src/ocaml/preprocess/parser_raw.mly" ( mark_symbol_docs _sloc; mk_attr ~loc:(make_loc _sloc) _2 _3 ) -# 11060 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.attribute)) - in +# 10848 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -11072,18 +10859,16 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in let _endpos = _startpos in - let _v = - let params = + let _v : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = let params = # 2570 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 11080 "src/ocaml/preprocess/parser_raw.ml" - in - ( +# 10866 "src/ocaml/preprocess/parser_raw.ml" + in + # 2388 "src/ocaml/preprocess/parser_raw.mly" ( params ) -# 11085 "src/ocaml/preprocess/parser_raw.ml" - : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list)) - in +# 10871 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -11118,32 +10903,30 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in - let _v = + let _v : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = let params = let params = - let params = - let xs = -# 264 "" + let xs = +# 253 "" ( List.rev xs ) -# 11128 "src/ocaml/preprocess/parser_raw.ml" - in - +# 10912 "src/ocaml/preprocess/parser_raw.ml" + in + # 1450 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 11133 "src/ocaml/preprocess/parser_raw.ml" - - in +# 10917 "src/ocaml/preprocess/parser_raw.ml" + in + # 2572 "src/ocaml/preprocess/parser_raw.mly" ( params ) -# 11139 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 10923 "src/ocaml/preprocess/parser_raw.ml" + + in + # 2388 "src/ocaml/preprocess/parser_raw.mly" ( params ) -# 11145 "src/ocaml/preprocess/parser_raw.ml" - : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list)) - in +# 10929 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -11206,32 +10989,30 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__6_ in - let _v = + let _v : (Parsetree.expression) = let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in - + let _1 = _1_inlined1 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 11218 "src/ocaml/preprocess/parser_raw.ml" - - in +# 11000 "src/ocaml/preprocess/parser_raw.ml" + in + # 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 11224 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__6_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - ( +# 11006 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__6_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2940 "src/ocaml/preprocess/parser_raw.mly" ( mkfunction _3 body_constraint _6 ~loc:_sloc ~attrs:_2 ) -# 11233 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression)) - in +# 11015 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -11273,47 +11054,46 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_xs_ in - let _v = - let _3 = - let xs = - let xs = -# 264 "" + let _v : (Parsetree.function_body) = let _3 = + let xs = + let xs = +# 253 "" ( List.rev xs ) -# 11283 "src/ocaml/preprocess/parser_raw.ml" - in - +# 11063 "src/ocaml/preprocess/parser_raw.ml" + in + # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 11288 "src/ocaml/preprocess/parser_raw.ml" - - in +# 11068 "src/ocaml/preprocess/parser_raw.ml" + in + # 3510 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 11294 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__3_ = _endpos_xs_ in +# 11074 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__3_ = _endpos_xs_ in + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in - + let _1 = _1_inlined1 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 11305 "src/ocaml/preprocess/parser_raw.ml" - - in +# 11085 "src/ocaml/preprocess/parser_raw.ml" + in + # 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 11311 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - ( +# 11091 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 3496 "src/ocaml/preprocess/parser_raw.mly" ( let ext, attrs = _2 in match ext with @@ -11324,9 +11104,8 @@ module Tables = struct let function_ = mkfunction [] empty_body_constraint cases ~loc:_sloc ~attrs:_2 in Pfunction_body function_ ) -# 11328 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.function_body)) - in +# 11108 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -11350,7 +11129,7 @@ module Tables = struct let _v : (Parsetree.function_body) = # 3506 "src/ocaml/preprocess/parser_raw.mly" ( Pfunction_body _1 ) -# 11354 "src/ocaml/preprocess/parser_raw.ml" +# 11133 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -11375,7 +11154,7 @@ module Tables = struct let _v : (Parsetree.expression) = # 2944 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 11379 "src/ocaml/preprocess/parser_raw.ml" +# 11158 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -11446,44 +11225,42 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__7_ in - let _v = - let _1 = - let _3 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in - + let _v : (Parsetree.expression) = let _1 = + let _3 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in + let _2 = + let _1 = _1_inlined1 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 11459 "src/ocaml/preprocess/parser_raw.ml" - - in +# 11237 "src/ocaml/preprocess/parser_raw.ml" + in + # 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 11465 "src/ocaml/preprocess/parser_raw.ml" - - in +# 11243 "src/ocaml/preprocess/parser_raw.ml" + in + # 2989 "src/ocaml/preprocess/parser_raw.mly" ( let name, modes = _4 in let body = maybe_pmod_constraint modes _5 in Pexp_letmodule(name, body, (merloc _endpos__6_ _7)), _3 ) -# 11474 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__7_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - ( +# 11252 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__1_ = _endpos__7_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2946 "src/ocaml/preprocess/parser_raw.mly" ( let desc, attrs = _1 in mkexp_attrs ~loc:_sloc desc attrs ) -# 11485 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression)) - in +# 11263 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -11561,72 +11338,70 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__6_ in - let _v = - let _1 = - let _4 = - let (_endpos__1_inlined1_, _endpos__1_, _startpos__1_, _1_inlined1, _2, _1) = (_endpos__1_inlined4_, _endpos__1_inlined3_, _startpos__1_inlined3_, _1_inlined4, _2_inlined1, _1_inlined3) in - let _3 = - let _1 = _1_inlined1 in - + let _v : (Parsetree.expression) = let _1 = + let _4 = + let (_endpos__1_inlined1_, _endpos__1_, _startpos__1_, _1_inlined1, _2, _1) = (_endpos__1_inlined4_, _endpos__1_inlined3_, _startpos__1_inlined3_, _1_inlined4, _2_inlined1, _1_inlined3) in + let _3 = + let _1 = _1_inlined1 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 11574 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__3_ = _endpos__1_inlined1_ in - let _1 = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 1296 "src/ocaml/preprocess/parser_raw.mly" - ( mkrhs _1 _sloc ) -# 11585 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__3_ in +# 11350 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__3_ = _endpos__1_inlined1_ in + let _1 = + let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in +# 1296 "src/ocaml/preprocess/parser_raw.mly" + ( mkrhs _1 _sloc ) +# 11361 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 4326 "src/ocaml/preprocess/parser_raw.mly" ( let vars, args, res = _2 in Te.decl _1 ~vars ~args ?res ~attrs:_3 ~loc:(make_loc _sloc) ) -# 11595 "src/ocaml/preprocess/parser_raw.ml" +# 11371 "src/ocaml/preprocess/parser_raw.ml" + + in + let _3 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in + let _2 = + let _1 = _1_inlined1 in - in - let _3 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in - # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 11605 "src/ocaml/preprocess/parser_raw.ml" - - in +# 11381 "src/ocaml/preprocess/parser_raw.ml" + in + # 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 11611 "src/ocaml/preprocess/parser_raw.ml" - - in +# 11387 "src/ocaml/preprocess/parser_raw.ml" + in + # 2994 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_letexception(_4, _6), _3 ) -# 11617 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__6_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - ( +# 11393 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__1_ = _endpos__6_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2946 "src/ocaml/preprocess/parser_raw.mly" ( let desc, attrs = _1 in mkexp_attrs ~loc:_sloc desc attrs ) -# 11628 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression)) - in +# 11404 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -11689,48 +11464,46 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__7_ in - let _v = - let _1 = - let _4 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in - + let _v : (Parsetree.expression) = let _1 = + let _4 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in + let _2 = + let _1 = _1_inlined1 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 11702 "src/ocaml/preprocess/parser_raw.ml" - - in +# 11476 "src/ocaml/preprocess/parser_raw.ml" + in + # 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 11708 "src/ocaml/preprocess/parser_raw.ml" - - in - let _3 = +# 11482 "src/ocaml/preprocess/parser_raw.ml" + + in + let _3 = # 5304 "src/ocaml/preprocess/parser_raw.mly" ( Fresh ) -# 11714 "src/ocaml/preprocess/parser_raw.ml" - in - +# 11488 "src/ocaml/preprocess/parser_raw.ml" + in + # 2996 "src/ocaml/preprocess/parser_raw.mly" ( let open_loc = make_loc (_startpos__2_, _endpos__5_) in let od = Opn.mk _5 ~override:_3 ~loc:open_loc in Pexp_open(od, (merloc _endpos__6_ _7)), _4 ) -# 11721 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__7_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - ( +# 11495 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__1_ = _endpos__7_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2946 "src/ocaml/preprocess/parser_raw.mly" ( let desc, attrs = _1 in mkexp_attrs ~loc:_sloc desc attrs ) -# 11732 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression)) - in +# 11506 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -11800,48 +11573,153 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__7_ in - let _v = - let _1 = - let _4 = - let (_1_inlined1, _1) = (_1_inlined3, _1_inlined2) in - let _2 = - let _1 = _1_inlined1 in - + let _v : (Parsetree.expression) = let _1 = + let _4 = + let (_1_inlined1, _1) = (_1_inlined3, _1_inlined2) in + let _2 = + let _1 = _1_inlined1 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 11813 "src/ocaml/preprocess/parser_raw.ml" - - in +# 11585 "src/ocaml/preprocess/parser_raw.ml" + in + # 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 11819 "src/ocaml/preprocess/parser_raw.ml" - - in - let _3 = +# 11591 "src/ocaml/preprocess/parser_raw.ml" + + in + let _3 = # 5305 "src/ocaml/preprocess/parser_raw.mly" ( Override ) -# 11825 "src/ocaml/preprocess/parser_raw.ml" - in - +# 11597 "src/ocaml/preprocess/parser_raw.ml" + in + # 2996 "src/ocaml/preprocess/parser_raw.mly" ( let open_loc = make_loc (_startpos__2_, _endpos__5_) in let od = Opn.mk _5 ~override:_3 ~loc:open_loc in Pexp_open(od, (merloc _endpos__6_ _7)), _4 ) -# 11832 "src/ocaml/preprocess/parser_raw.ml" +# 11604 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__1_ = _endpos__7_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 2946 "src/ocaml/preprocess/parser_raw.mly" + ( let desc, attrs = _1 in + mkexp_attrs ~loc:_sloc desc attrs ) +# 11615 "src/ocaml/preprocess/parser_raw.ml" + in + { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = xs; + MenhirLib.EngineTypes.startp = _startpos_xs_; + MenhirLib.EngineTypes.endp = _endpos_xs_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _4; + MenhirLib.EngineTypes.startp = _startpos__4_; + MenhirLib.EngineTypes.endp = _endpos__4_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _1_inlined2; + MenhirLib.EngineTypes.startp = _startpos__1_inlined2_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _1_inlined1; + MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; + }; + }; + } = _menhir_stack in + let xs : (Parsetree.case list) = Obj.magic xs in + let _4 : unit = Obj.magic _4 in + let _3 : (Parsetree.expression) = Obj.magic _3 in + let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in + let _1_inlined1 : (string Location.loc option) = Obj.magic _1_inlined1 in + let _1 : unit = Obj.magic _1 in + let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in + let _startpos = _startpos__1_ in + let _endpos = _endpos_xs_ in + let _v : (Parsetree.expression) = let _1 = + let _5 = + let xs = + let xs = +# 253 "" + ( List.rev xs ) +# 11678 "src/ocaml/preprocess/parser_raw.ml" + in + +# 1511 "src/ocaml/preprocess/parser_raw.mly" + ( xs ) +# 11683 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 3510 "src/ocaml/preprocess/parser_raw.mly" + ( xs ) +# 11689 "src/ocaml/preprocess/parser_raw.ml" in - let _endpos__1_ = _endpos__7_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - ( + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in + let _2 = + let _1 = _1_inlined1 in + +# 5403 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 11699 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 5416 "src/ocaml/preprocess/parser_raw.mly" + ( _1, _2 ) +# 11705 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 3000 "src/ocaml/preprocess/parser_raw.mly" + ( Pexp_match(_3, _5), _2 ) +# 11711 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__1_ = _endpos_xs_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2946 "src/ocaml/preprocess/parser_raw.mly" ( let desc, attrs = _1 in mkexp_attrs ~loc:_sloc desc attrs ) -# 11843 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression)) - in +# 11722 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -11897,169 +11775,58 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_xs_ in - let _v = - let _1 = - let _5 = - let xs = - let xs = -# 264 "" + let _v : (Parsetree.expression) = let _1 = + let _5 = + let xs = + let xs = +# 253 "" ( List.rev xs ) -# 11908 "src/ocaml/preprocess/parser_raw.ml" - in - -# 1511 "src/ocaml/preprocess/parser_raw.mly" - ( xs ) -# 11913 "src/ocaml/preprocess/parser_raw.ml" - - in +# 11785 "src/ocaml/preprocess/parser_raw.ml" + in -# 3510 "src/ocaml/preprocess/parser_raw.mly" +# 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 11919 "src/ocaml/preprocess/parser_raw.ml" - - in - let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in - -# 5403 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 11929 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 5416 "src/ocaml/preprocess/parser_raw.mly" - ( _1, _2 ) -# 11935 "src/ocaml/preprocess/parser_raw.ml" +# 11790 "src/ocaml/preprocess/parser_raw.ml" in -# 3000 "src/ocaml/preprocess/parser_raw.mly" - ( Pexp_match(_3, _5), _2 ) -# 11941 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos_xs_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - ( -# 2946 "src/ocaml/preprocess/parser_raw.mly" - ( let desc, attrs = _1 in - mkexp_attrs ~loc:_sloc desc attrs ) -# 11952 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression)) - in - { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = Obj.repr _v; - MenhirLib.EngineTypes.startp = _startpos; - MenhirLib.EngineTypes.endp = _endpos; - MenhirLib.EngineTypes.next = _menhir_stack; - }); - (fun _menhir_env -> - let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = xs; - MenhirLib.EngineTypes.startp = _startpos_xs_; - MenhirLib.EngineTypes.endp = _endpos_xs_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _4; - MenhirLib.EngineTypes.startp = _startpos__4_; - MenhirLib.EngineTypes.endp = _endpos__4_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined2; - MenhirLib.EngineTypes.startp = _startpos__1_inlined2_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined1; - MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - }; - }; - }; - } = _menhir_stack in - let xs : (Parsetree.case list) = Obj.magic xs in - let _4 : unit = Obj.magic _4 in - let _3 : (Parsetree.expression) = Obj.magic _3 in - let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in - let _1_inlined1 : (string Location.loc option) = Obj.magic _1_inlined1 in - let _1 : unit = Obj.magic _1 in - let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos__1_ in - let _endpos = _endpos_xs_ in - let _v = - let _1 = - let _5 = - let xs = - let xs = -# 264 "" - ( List.rev xs ) -# 12017 "src/ocaml/preprocess/parser_raw.ml" - in - -# 1511 "src/ocaml/preprocess/parser_raw.mly" - ( xs ) -# 12022 "src/ocaml/preprocess/parser_raw.ml" - - in - # 3510 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 12028 "src/ocaml/preprocess/parser_raw.ml" - - in +# 11796 "src/ocaml/preprocess/parser_raw.ml" + + in + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in - + let _1 = _1_inlined1 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 12038 "src/ocaml/preprocess/parser_raw.ml" - - in +# 11806 "src/ocaml/preprocess/parser_raw.ml" + in + # 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 12044 "src/ocaml/preprocess/parser_raw.ml" - - in +# 11812 "src/ocaml/preprocess/parser_raw.ml" + in + # 3002 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_try(_3, _5), _2 ) -# 12050 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos_xs_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - ( +# 11818 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__1_ = _endpos_xs_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2946 "src/ocaml/preprocess/parser_raw.mly" ( let desc, attrs = _1 in mkexp_attrs ~loc:_sloc desc attrs ) -# 12061 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression)) - in +# 11829 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -12115,54 +11882,52 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined3_ in - let _v = - let _1 = - let _5 = - let _1 = _1_inlined3 in - let _1 = + let _v : (Parsetree.expression) = let _1 = + let _5 = + let _1 = _1_inlined3 in + let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 12126 "src/ocaml/preprocess/parser_raw.ml" - in - +# 11892 "src/ocaml/preprocess/parser_raw.ml" + in + # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 12131 "src/ocaml/preprocess/parser_raw.ml" - - in +# 11897 "src/ocaml/preprocess/parser_raw.ml" + + in + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in - + let _1 = _1_inlined1 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 12141 "src/ocaml/preprocess/parser_raw.ml" - - in +# 11907 "src/ocaml/preprocess/parser_raw.ml" + in + # 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 12147 "src/ocaml/preprocess/parser_raw.ml" - - in +# 11913 "src/ocaml/preprocess/parser_raw.ml" + in + # 3008 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_overwrite(_3, (merloc _endpos__4_ _5)), _2 ) -# 12153 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__1_inlined3_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - ( +# 11919 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__1_ = _endpos__1_inlined3_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2946 "src/ocaml/preprocess/parser_raw.mly" ( let desc, attrs = _1 in mkexp_attrs ~loc:_sloc desc attrs ) -# 12164 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression)) - in +# 11930 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -12239,51 +12004,50 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_xs_ in - let _v = - let _1 = - let _5 = - let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined3_, _1_inlined5, _1_inlined4) in - let _1 = - let _3 = - let xs = - let xs = -# 264 "" + let _v : (Parsetree.expression) = let _1 = + let _5 = + let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined3_, _1_inlined5, _1_inlined4) in + let _1 = + let _3 = + let xs = + let xs = +# 253 "" ( List.rev xs ) -# 12253 "src/ocaml/preprocess/parser_raw.ml" - in - +# 12017 "src/ocaml/preprocess/parser_raw.ml" + in + # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 12258 "src/ocaml/preprocess/parser_raw.ml" - - in +# 12022 "src/ocaml/preprocess/parser_raw.ml" + in + # 3510 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 12264 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__3_ = _endpos_xs_ in +# 12028 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__3_ = _endpos_xs_ in + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in - + let _1 = _1_inlined1 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 12275 "src/ocaml/preprocess/parser_raw.ml" - - in +# 12039 "src/ocaml/preprocess/parser_raw.ml" + in + # 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 12281 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 12045 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2718 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in @@ -12297,48 +12061,47 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 12301 "src/ocaml/preprocess/parser_raw.ml" - - in +# 12065 "src/ocaml/preprocess/parser_raw.ml" + in + # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 12307 "src/ocaml/preprocess/parser_raw.ml" - - in +# 12071 "src/ocaml/preprocess/parser_raw.ml" + + in + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in - + let _1 = _1_inlined1 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 12317 "src/ocaml/preprocess/parser_raw.ml" - - in +# 12081 "src/ocaml/preprocess/parser_raw.ml" + in + # 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 12323 "src/ocaml/preprocess/parser_raw.ml" - - in +# 12087 "src/ocaml/preprocess/parser_raw.ml" + in + # 3008 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_overwrite(_3, (merloc _endpos__4_ _5)), _2 ) -# 12329 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos_xs_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - ( +# 12093 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__1_ = _endpos_xs_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2946 "src/ocaml/preprocess/parser_raw.mly" ( let desc, attrs = _1 in mkexp_attrs ~loc:_sloc desc attrs ) -# 12340 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression)) - in +# 12104 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -12408,67 +12171,65 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined4_ in - let _v = - let _1 = - let _7 = - let _1 = _1_inlined4 in - let _1 = + let _v : (Parsetree.expression) = let _1 = + let _7 = + let _1 = _1_inlined4 in + let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 12419 "src/ocaml/preprocess/parser_raw.ml" - in - +# 12181 "src/ocaml/preprocess/parser_raw.ml" + in + # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 12424 "src/ocaml/preprocess/parser_raw.ml" - - in - let _5 = - let _1 = _1_inlined3 in - let _1 = +# 12186 "src/ocaml/preprocess/parser_raw.ml" + + in + let _5 = + let _1 = _1_inlined3 in + let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 12432 "src/ocaml/preprocess/parser_raw.ml" - in - +# 12194 "src/ocaml/preprocess/parser_raw.ml" + in + # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 12437 "src/ocaml/preprocess/parser_raw.ml" - - in +# 12199 "src/ocaml/preprocess/parser_raw.ml" + + in + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in - + let _1 = _1_inlined1 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 12447 "src/ocaml/preprocess/parser_raw.ml" - - in +# 12209 "src/ocaml/preprocess/parser_raw.ml" + in + # 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 12453 "src/ocaml/preprocess/parser_raw.ml" - - in +# 12215 "src/ocaml/preprocess/parser_raw.ml" + in + # 3010 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_ifthenelse(_3, (merloc _endpos__4_ _5), Some (merloc _endpos__6_ _7)), _2 ) -# 12459 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__1_inlined4_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - ( +# 12221 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__1_ = _endpos__1_inlined4_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2946 "src/ocaml/preprocess/parser_raw.mly" ( let desc, attrs = _1 in mkexp_attrs ~loc:_sloc desc attrs ) -# 12470 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression)) - in +# 12232 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -12559,51 +12320,50 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_xs_ in - let _v = - let _1 = - let _7 = - let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined4_, _1_inlined6, _1_inlined5) in - let _1 = - let _3 = - let xs = - let xs = -# 264 "" + let _v : (Parsetree.expression) = let _1 = + let _7 = + let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined4_, _1_inlined6, _1_inlined5) in + let _1 = + let _3 = + let xs = + let xs = +# 253 "" ( List.rev xs ) -# 12573 "src/ocaml/preprocess/parser_raw.ml" - in - +# 12333 "src/ocaml/preprocess/parser_raw.ml" + in + # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 12578 "src/ocaml/preprocess/parser_raw.ml" - - in +# 12338 "src/ocaml/preprocess/parser_raw.ml" + in + # 3510 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 12584 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__3_ = _endpos_xs_ in +# 12344 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__3_ = _endpos_xs_ in + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in - + let _1 = _1_inlined1 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 12595 "src/ocaml/preprocess/parser_raw.ml" - - in +# 12355 "src/ocaml/preprocess/parser_raw.ml" + in + # 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 12601 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 12361 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2718 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in @@ -12617,61 +12377,60 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 12621 "src/ocaml/preprocess/parser_raw.ml" - - in +# 12381 "src/ocaml/preprocess/parser_raw.ml" + in + # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 12627 "src/ocaml/preprocess/parser_raw.ml" - - in - let _5 = - let _1 = _1_inlined3 in - let _1 = +# 12387 "src/ocaml/preprocess/parser_raw.ml" + + in + let _5 = + let _1 = _1_inlined3 in + let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 12635 "src/ocaml/preprocess/parser_raw.ml" - in - +# 12395 "src/ocaml/preprocess/parser_raw.ml" + in + # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 12640 "src/ocaml/preprocess/parser_raw.ml" - - in +# 12400 "src/ocaml/preprocess/parser_raw.ml" + + in + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in - + let _1 = _1_inlined1 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 12650 "src/ocaml/preprocess/parser_raw.ml" - - in +# 12410 "src/ocaml/preprocess/parser_raw.ml" + in + # 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 12656 "src/ocaml/preprocess/parser_raw.ml" - - in +# 12416 "src/ocaml/preprocess/parser_raw.ml" + in + # 3010 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_ifthenelse(_3, (merloc _endpos__4_ _5), Some (merloc _endpos__6_ _7)), _2 ) -# 12662 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos_xs_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - ( +# 12422 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__1_ = _endpos_xs_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2946 "src/ocaml/preprocess/parser_raw.mly" ( let desc, attrs = _1 in mkexp_attrs ~loc:_sloc desc attrs ) -# 12673 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression)) - in +# 12433 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -12762,64 +12521,63 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined6_ in - let _v = - let _1 = - let _7 = - let _1 = _1_inlined6 in - let _1 = + let _v : (Parsetree.expression) = let _1 = + let _7 = + let _1 = _1_inlined6 in + let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 12773 "src/ocaml/preprocess/parser_raw.ml" - in - +# 12531 "src/ocaml/preprocess/parser_raw.ml" + in + # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 12778 "src/ocaml/preprocess/parser_raw.ml" - - in - let _5 = - let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined3_, _1_inlined5, _1_inlined4) in - let _1 = - let _3 = - let xs = - let xs = -# 264 "" +# 12536 "src/ocaml/preprocess/parser_raw.ml" + + in + let _5 = + let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined3_, _1_inlined5, _1_inlined4) in + let _1 = + let _3 = + let xs = + let xs = +# 253 "" ( List.rev xs ) -# 12789 "src/ocaml/preprocess/parser_raw.ml" - in - +# 12547 "src/ocaml/preprocess/parser_raw.ml" + in + # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 12794 "src/ocaml/preprocess/parser_raw.ml" - - in +# 12552 "src/ocaml/preprocess/parser_raw.ml" + in + # 3510 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 12800 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__3_ = _endpos_xs_ in +# 12558 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__3_ = _endpos_xs_ in + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in - + let _1 = _1_inlined1 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 12811 "src/ocaml/preprocess/parser_raw.ml" - - in +# 12569 "src/ocaml/preprocess/parser_raw.ml" + in + # 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 12817 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 12575 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2718 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in @@ -12833,48 +12591,47 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 12837 "src/ocaml/preprocess/parser_raw.ml" - - in +# 12595 "src/ocaml/preprocess/parser_raw.ml" + in + # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 12843 "src/ocaml/preprocess/parser_raw.ml" - - in +# 12601 "src/ocaml/preprocess/parser_raw.ml" + + in + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in - + let _1 = _1_inlined1 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 12853 "src/ocaml/preprocess/parser_raw.ml" - - in +# 12611 "src/ocaml/preprocess/parser_raw.ml" + in + # 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 12859 "src/ocaml/preprocess/parser_raw.ml" - - in +# 12617 "src/ocaml/preprocess/parser_raw.ml" + in + # 3010 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_ifthenelse(_3, (merloc _endpos__4_ _5), Some (merloc _endpos__6_ _7)), _2 ) -# 12865 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__1_inlined6_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - ( +# 12623 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__1_ = _endpos__1_inlined6_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2946 "src/ocaml/preprocess/parser_raw.mly" ( let desc, attrs = _1 in mkexp_attrs ~loc:_sloc desc attrs ) -# 12876 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression)) - in +# 12634 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -12986,51 +12743,50 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_xs_inlined1_ in - let _v = - let _1 = - let _7 = - let (_endpos_xs_, _startpos__1_, xs, _1_inlined2, _1_inlined1) = (_endpos_xs_inlined1_, _startpos__1_inlined6_, xs_inlined1, _1_inlined8, _1_inlined7) in - let _1 = - let _3 = - let xs = - let xs = -# 264 "" + let _v : (Parsetree.expression) = let _1 = + let _7 = + let (_endpos_xs_, _startpos__1_, xs, _1_inlined2, _1_inlined1) = (_endpos_xs_inlined1_, _startpos__1_inlined6_, xs_inlined1, _1_inlined8, _1_inlined7) in + let _1 = + let _3 = + let xs = + let xs = +# 253 "" ( List.rev xs ) -# 13000 "src/ocaml/preprocess/parser_raw.ml" - in - +# 12756 "src/ocaml/preprocess/parser_raw.ml" + in + # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 13005 "src/ocaml/preprocess/parser_raw.ml" - - in +# 12761 "src/ocaml/preprocess/parser_raw.ml" + in + # 3510 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 13011 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__3_ = _endpos_xs_ in +# 12767 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__3_ = _endpos_xs_ in + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in - + let _1 = _1_inlined1 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 13022 "src/ocaml/preprocess/parser_raw.ml" - - in +# 12778 "src/ocaml/preprocess/parser_raw.ml" + in + # 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 13028 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 12784 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2718 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in @@ -13044,58 +12800,58 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 13048 "src/ocaml/preprocess/parser_raw.ml" - - in +# 12804 "src/ocaml/preprocess/parser_raw.ml" + in + # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 13054 "src/ocaml/preprocess/parser_raw.ml" - - in - let _5 = - let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined3_, _1_inlined5, _1_inlined4) in - let _1 = - let _3 = - let xs = - let xs = -# 264 "" +# 12810 "src/ocaml/preprocess/parser_raw.ml" + + in + let _5 = + let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined3_, _1_inlined5, _1_inlined4) in + let _1 = + let _3 = + let xs = + let xs = +# 253 "" ( List.rev xs ) -# 13065 "src/ocaml/preprocess/parser_raw.ml" - in - +# 12821 "src/ocaml/preprocess/parser_raw.ml" + in + # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 13070 "src/ocaml/preprocess/parser_raw.ml" - - in +# 12826 "src/ocaml/preprocess/parser_raw.ml" + in + # 3510 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 13076 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__3_ = _endpos_xs_ in +# 12832 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__3_ = _endpos_xs_ in + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in - + let _1 = _1_inlined1 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 13087 "src/ocaml/preprocess/parser_raw.ml" - - in +# 12843 "src/ocaml/preprocess/parser_raw.ml" + in + # 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 13093 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 12849 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2718 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in @@ -13109,48 +12865,47 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 13113 "src/ocaml/preprocess/parser_raw.ml" - - in +# 12869 "src/ocaml/preprocess/parser_raw.ml" + in + # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 13119 "src/ocaml/preprocess/parser_raw.ml" - - in +# 12875 "src/ocaml/preprocess/parser_raw.ml" + + in + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in - + let _1 = _1_inlined1 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 13129 "src/ocaml/preprocess/parser_raw.ml" - - in +# 12885 "src/ocaml/preprocess/parser_raw.ml" + in + # 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 13135 "src/ocaml/preprocess/parser_raw.ml" - - in +# 12891 "src/ocaml/preprocess/parser_raw.ml" + in + # 3010 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_ifthenelse(_3, (merloc _endpos__4_ _5), Some (merloc _endpos__6_ _7)), _2 ) -# 13141 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos_xs_inlined1_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - ( +# 12897 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__1_ = _endpos_xs_inlined1_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2946 "src/ocaml/preprocess/parser_raw.mly" ( let desc, attrs = _1 in mkexp_attrs ~loc:_sloc desc attrs ) -# 13152 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression)) - in +# 12908 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -13206,54 +12961,52 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined3_ in - let _v = - let _1 = - let _5 = - let _1 = _1_inlined3 in - let _1 = + let _v : (Parsetree.expression) = let _1 = + let _5 = + let _1 = _1_inlined3 in + let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 13217 "src/ocaml/preprocess/parser_raw.ml" - in - +# 12971 "src/ocaml/preprocess/parser_raw.ml" + in + # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 13222 "src/ocaml/preprocess/parser_raw.ml" - - in +# 12976 "src/ocaml/preprocess/parser_raw.ml" + + in + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in - + let _1 = _1_inlined1 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 13232 "src/ocaml/preprocess/parser_raw.ml" - - in +# 12986 "src/ocaml/preprocess/parser_raw.ml" + in + # 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 13238 "src/ocaml/preprocess/parser_raw.ml" - - in +# 12992 "src/ocaml/preprocess/parser_raw.ml" + in + # 3012 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_ifthenelse(_3, (merloc _endpos__4_ _5), None), _2 ) -# 13244 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__1_inlined3_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - ( +# 12998 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__1_ = _endpos__1_inlined3_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2946 "src/ocaml/preprocess/parser_raw.mly" ( let desc, attrs = _1 in mkexp_attrs ~loc:_sloc desc attrs ) -# 13255 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression)) - in +# 13009 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -13330,51 +13083,50 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_xs_ in - let _v = - let _1 = - let _5 = - let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined3_, _1_inlined5, _1_inlined4) in - let _1 = - let _3 = - let xs = - let xs = -# 264 "" + let _v : (Parsetree.expression) = let _1 = + let _5 = + let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined3_, _1_inlined5, _1_inlined4) in + let _1 = + let _3 = + let xs = + let xs = +# 253 "" ( List.rev xs ) -# 13344 "src/ocaml/preprocess/parser_raw.ml" - in - +# 13096 "src/ocaml/preprocess/parser_raw.ml" + in + # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 13349 "src/ocaml/preprocess/parser_raw.ml" - - in +# 13101 "src/ocaml/preprocess/parser_raw.ml" + in + # 3510 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 13355 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__3_ = _endpos_xs_ in +# 13107 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__3_ = _endpos_xs_ in + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in - + let _1 = _1_inlined1 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 13366 "src/ocaml/preprocess/parser_raw.ml" - - in +# 13118 "src/ocaml/preprocess/parser_raw.ml" + in + # 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 13372 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 13124 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2718 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in @@ -13388,48 +13140,47 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 13392 "src/ocaml/preprocess/parser_raw.ml" - - in +# 13144 "src/ocaml/preprocess/parser_raw.ml" + in + # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 13398 "src/ocaml/preprocess/parser_raw.ml" - - in +# 13150 "src/ocaml/preprocess/parser_raw.ml" + + in + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in - + let _1 = _1_inlined1 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 13408 "src/ocaml/preprocess/parser_raw.ml" - - in +# 13160 "src/ocaml/preprocess/parser_raw.ml" + in + # 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 13414 "src/ocaml/preprocess/parser_raw.ml" - - in +# 13166 "src/ocaml/preprocess/parser_raw.ml" + in + # 3012 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_ifthenelse(_3, (merloc _endpos__4_ _5), None), _2 ) -# 13420 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos_xs_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - ( +# 13172 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__1_ = _endpos_xs_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2946 "src/ocaml/preprocess/parser_raw.mly" ( let desc, attrs = _1 in mkexp_attrs ~loc:_sloc desc attrs ) -# 13431 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression)) - in +# 13183 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -13492,41 +13243,39 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__6_ in - let _v = - let _1 = + let _v : (Parsetree.expression) = let _1 = + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in - + let _1 = _1_inlined1 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 13505 "src/ocaml/preprocess/parser_raw.ml" - - in +# 13255 "src/ocaml/preprocess/parser_raw.ml" + in + # 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 13511 "src/ocaml/preprocess/parser_raw.ml" - - in +# 13261 "src/ocaml/preprocess/parser_raw.ml" + in + # 3014 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_while(_3, (merloc _endpos__4_ _5)), _2 ) -# 13517 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__6_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - ( +# 13267 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__1_ = _endpos__6_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2946 "src/ocaml/preprocess/parser_raw.mly" ( let desc, attrs = _1 in mkexp_attrs ~loc:_sloc desc attrs ) -# 13528 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression)) - in +# 13278 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -13617,41 +13366,39 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__10_ in - let _v = - let _1 = + let _v : (Parsetree.expression) = let _1 = + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in - + let _1 = _1_inlined1 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 13630 "src/ocaml/preprocess/parser_raw.ml" - - in +# 13378 "src/ocaml/preprocess/parser_raw.ml" + in + # 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 13636 "src/ocaml/preprocess/parser_raw.ml" - - in +# 13384 "src/ocaml/preprocess/parser_raw.ml" + in + # 3021 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_for(_3, (merloc _endpos__4_ _5), (merloc _endpos__6_ _7), _6, (merloc _endpos__8_ _9)), _2 ) -# 13642 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__10_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - ( +# 13390 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__1_ = _endpos__10_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2946 "src/ocaml/preprocess/parser_raw.mly" ( let desc, attrs = _1 in mkexp_attrs ~loc:_sloc desc attrs ) -# 13653 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression)) - in +# 13401 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -13693,41 +13440,39 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in - let _v = - let _1 = + let _v : (Parsetree.expression) = let _1 = + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in - + let _1 = _1_inlined1 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 13706 "src/ocaml/preprocess/parser_raw.ml" - - in +# 13452 "src/ocaml/preprocess/parser_raw.ml" + in + # 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 13712 "src/ocaml/preprocess/parser_raw.ml" - - in +# 13458 "src/ocaml/preprocess/parser_raw.ml" + in + # 3023 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_assert _3, _2 ) -# 13718 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__3_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - ( +# 13464 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__1_ = _endpos__3_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2946 "src/ocaml/preprocess/parser_raw.mly" ( let desc, attrs = _1 in mkexp_attrs ~loc:_sloc desc attrs ) -# 13729 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression)) - in +# 13475 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -13769,41 +13514,39 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in - let _v = - let _1 = + let _v : (Parsetree.expression) = let _1 = + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in - + let _1 = _1_inlined1 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 13782 "src/ocaml/preprocess/parser_raw.ml" - - in +# 13526 "src/ocaml/preprocess/parser_raw.ml" + in + # 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 13788 "src/ocaml/preprocess/parser_raw.ml" - - in +# 13532 "src/ocaml/preprocess/parser_raw.ml" + in + # 3025 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_lazy _3, _2 ) -# 13794 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__3_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - ( +# 13538 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__1_ = _endpos__3_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2946 "src/ocaml/preprocess/parser_raw.mly" ( let desc, attrs = _1 in mkexp_attrs ~loc:_sloc desc attrs ) -# 13805 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression)) - in +# 13549 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -13831,40 +13574,38 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined1_ in - let _v = - let _1 = - let _2 = - let _1 = _1_inlined1 in - let _1 = + let _v : (Parsetree.expression) = let _1 = + let _2 = + let _1 = _1_inlined1 in + let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 13842 "src/ocaml/preprocess/parser_raw.ml" - in - +# 13584 "src/ocaml/preprocess/parser_raw.ml" + in + # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 13847 "src/ocaml/preprocess/parser_raw.ml" - - in - let _loc__1_ = (_startpos__1_, _endpos__1_) in +# 13589 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc__1_ = (_startpos__1_, _endpos__1_) in + # 3027 "src/ocaml/preprocess/parser_raw.mly" ( let desc, attrs = mkuminus ~oploc:_loc__1_ _1 _2 in desc, (None, attrs) ) -# 13855 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__1_inlined1_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - ( +# 13597 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__1_ = _endpos__1_inlined1_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2946 "src/ocaml/preprocess/parser_raw.mly" ( let desc, attrs = _1 in mkexp_attrs ~loc:_sloc desc attrs ) -# 13866 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression)) - in +# 13608 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -13913,51 +13654,50 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_xs_ in - let _v = - let _1 = - let _2 = - let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in - let _1 = - let _3 = - let xs = - let xs = -# 264 "" + let _v : (Parsetree.expression) = let _1 = + let _2 = + let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in + let _1 = + let _3 = + let xs = + let xs = +# 253 "" ( List.rev xs ) -# 13927 "src/ocaml/preprocess/parser_raw.ml" - in - +# 13667 "src/ocaml/preprocess/parser_raw.ml" + in + # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 13932 "src/ocaml/preprocess/parser_raw.ml" - - in +# 13672 "src/ocaml/preprocess/parser_raw.ml" + in + # 3510 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 13938 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__3_ = _endpos_xs_ in +# 13678 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__3_ = _endpos_xs_ in + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in - + let _1 = _1_inlined1 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 13949 "src/ocaml/preprocess/parser_raw.ml" - - in +# 13689 "src/ocaml/preprocess/parser_raw.ml" + in + # 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 13955 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 13695 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2718 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in @@ -13971,34 +13711,33 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 13975 "src/ocaml/preprocess/parser_raw.ml" - - in +# 13715 "src/ocaml/preprocess/parser_raw.ml" + in + # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 13981 "src/ocaml/preprocess/parser_raw.ml" - - in - let _loc__1_ = (_startpos__1_, _endpos__1_) in +# 13721 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc__1_ = (_startpos__1_, _endpos__1_) in + # 3027 "src/ocaml/preprocess/parser_raw.mly" ( let desc, attrs = mkuminus ~oploc:_loc__1_ _1 _2 in desc, (None, attrs) ) -# 13989 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos_xs_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - ( +# 13729 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__1_ = _endpos_xs_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2946 "src/ocaml/preprocess/parser_raw.mly" ( let desc, attrs = _1 in mkexp_attrs ~loc:_sloc desc attrs ) -# 14000 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression)) - in +# 13740 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -14026,40 +13765,38 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined1_ in - let _v = - let _1 = - let _2 = - let _1 = _1_inlined1 in - let _1 = + let _v : (Parsetree.expression) = let _1 = + let _2 = + let _1 = _1_inlined1 in + let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 14037 "src/ocaml/preprocess/parser_raw.ml" - in - +# 13775 "src/ocaml/preprocess/parser_raw.ml" + in + # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 14042 "src/ocaml/preprocess/parser_raw.ml" - - in - let _loc__1_ = (_startpos__1_, _endpos__1_) in +# 13780 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc__1_ = (_startpos__1_, _endpos__1_) in + # 3030 "src/ocaml/preprocess/parser_raw.mly" ( let desc, attrs = mkuplus ~oploc:_loc__1_ _1 _2 in desc, (None, attrs) ) -# 14050 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__1_inlined1_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - ( +# 13788 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__1_ = _endpos__1_inlined1_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2946 "src/ocaml/preprocess/parser_raw.mly" ( let desc, attrs = _1 in mkexp_attrs ~loc:_sloc desc attrs ) -# 14061 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression)) - in +# 13799 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -14108,51 +13845,50 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_xs_ in - let _v = - let _1 = - let _2 = - let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in - let _1 = - let _3 = - let xs = - let xs = -# 264 "" + let _v : (Parsetree.expression) = let _1 = + let _2 = + let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in + let _1 = + let _3 = + let xs = + let xs = +# 253 "" ( List.rev xs ) -# 14122 "src/ocaml/preprocess/parser_raw.ml" - in - +# 13858 "src/ocaml/preprocess/parser_raw.ml" + in + # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 14127 "src/ocaml/preprocess/parser_raw.ml" - - in +# 13863 "src/ocaml/preprocess/parser_raw.ml" + in + # 3510 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 14133 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__3_ = _endpos_xs_ in +# 13869 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__3_ = _endpos_xs_ in + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in - + let _1 = _1_inlined1 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 14144 "src/ocaml/preprocess/parser_raw.ml" - - in +# 13880 "src/ocaml/preprocess/parser_raw.ml" + in + # 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 14150 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 13886 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2718 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in @@ -14166,34 +13902,33 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 14170 "src/ocaml/preprocess/parser_raw.ml" - - in +# 13906 "src/ocaml/preprocess/parser_raw.ml" + in + # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 14176 "src/ocaml/preprocess/parser_raw.ml" - - in - let _loc__1_ = (_startpos__1_, _endpos__1_) in +# 13912 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc__1_ = (_startpos__1_, _endpos__1_) in + # 3030 "src/ocaml/preprocess/parser_raw.mly" ( let desc, attrs = mkuplus ~oploc:_loc__1_ _1 _2 in desc, (None, attrs) ) -# 14184 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos_xs_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - ( +# 13920 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__1_ = _endpos_xs_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2946 "src/ocaml/preprocess/parser_raw.mly" ( let desc, attrs = _1 in mkexp_attrs ~loc:_sloc desc attrs ) -# 14195 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression)) - in +# 13931 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -14217,7 +13952,7 @@ module Tables = struct let _v : (Parsetree.expression) = # 2949 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 14221 "src/ocaml/preprocess/parser_raw.ml" +# 13956 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -14246,36 +13981,34 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_xs_ in - let _v = - let _1 = - let _2 = - let xs = -# 264 "" + let _v : (Parsetree.expression) = let _1 = + let _2 = + let xs = +# 253 "" ( List.rev xs ) -# 14256 "src/ocaml/preprocess/parser_raw.ml" - in - +# 13990 "src/ocaml/preprocess/parser_raw.ml" + in + # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 14261 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__2_ = _endpos_xs_ in - let _endpos = _endpos__2_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 13995 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__2_ = _endpos_xs_ in + let _endpos = _endpos__2_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 3035 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (Pexp_apply(_1, _2)) ) -# 14271 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 14005 "src/ocaml/preprocess/parser_raw.ml" + + in + # 2951 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 14277 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression)) - in +# 14011 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -14303,23 +14036,21 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in - let _v = - let _1 = - let _endpos = _endpos__2_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let _v : (Parsetree.expression) = let _1 = + let _endpos = _endpos__2_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 3037 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (Pexp_stack _2) ) -# 14315 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 14047 "src/ocaml/preprocess/parser_raw.ml" + + in + # 2951 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 14321 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression)) - in +# 14053 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -14347,32 +14078,30 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined1_ in - let _v = - let _1 = - let _2 = - let _1 = _1_inlined1 in - + let _v : (Parsetree.expression) = let _1 = + let _2 = + let _1 = _1_inlined1 in + # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 14358 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__2_ = _endpos__1_inlined1_ in - let _endpos = _endpos__2_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 14088 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__2_ = _endpos__1_inlined1_ in + let _endpos = _endpos__2_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 3039 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (Pexp_stack _2) ) -# 14368 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 14098 "src/ocaml/preprocess/parser_raw.ml" + + in + # 2951 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 14374 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression)) - in +# 14104 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -14421,50 +14150,49 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_xs_ in - let _v = - let _1 = - let _2 = - let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in - let _3 = - let xs = - let xs = -# 264 "" + let _v : (Parsetree.expression) = let _1 = + let _2 = + let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in + let _3 = + let xs = + let xs = +# 253 "" ( List.rev xs ) -# 14434 "src/ocaml/preprocess/parser_raw.ml" - in - +# 14162 "src/ocaml/preprocess/parser_raw.ml" + in + # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 14439 "src/ocaml/preprocess/parser_raw.ml" - - in +# 14167 "src/ocaml/preprocess/parser_raw.ml" + in + # 3510 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 14445 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__3_ = _endpos_xs_ in +# 14173 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__3_ = _endpos_xs_ in + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in - + let _1 = _1_inlined1 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 14456 "src/ocaml/preprocess/parser_raw.ml" - - in +# 14184 "src/ocaml/preprocess/parser_raw.ml" + in + # 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 14462 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 14190 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2718 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in @@ -14478,25 +14206,24 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 14482 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__2_ = _endpos_xs_ in - let _endpos = _endpos__2_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 14210 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__2_ = _endpos_xs_ in + let _endpos = _endpos__2_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 3039 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (Pexp_stack _2) ) -# 14492 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 14220 "src/ocaml/preprocess/parser_raw.ml" + + in + # 2951 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 14498 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression)) - in +# 14226 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -14517,36 +14244,34 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_xs_ in let _endpos = _endpos_xs_ in - let _v = + let _v : (Parsetree.expression) = let _1 = let _1 = - let _1 = - let xs = -# 264 "" + let xs = +# 253 "" ( List.rev xs ) -# 14527 "src/ocaml/preprocess/parser_raw.ml" - in - +# 14253 "src/ocaml/preprocess/parser_raw.ml" + in + # 3633 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 14532 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos_xs_, _startpos_xs_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 14258 "src/ocaml/preprocess/parser_raw.ml" + in + let (_endpos__1_, _startpos__1_) = (_endpos_xs_, _startpos_xs_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 3041 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (Pexp_tuple _1) ) -# 14542 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 14268 "src/ocaml/preprocess/parser_raw.ml" + + in + # 2951 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 14548 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression)) - in +# 14274 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -14574,40 +14299,38 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in - let _v = + let _v : (Parsetree.expression) = let _1 = let _1 = let _1 = - let _1 = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 1296 "src/ocaml/preprocess/parser_raw.mly" - ( mkrhs _1 _sloc ) -# 14588 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__2_ in + let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3053 "src/ocaml/preprocess/parser_raw.mly" - ( mkexp ~loc:_sloc (Pexp_construct(_1, Some _2)) ) -# 14597 "src/ocaml/preprocess/parser_raw.ml" +# 1296 "src/ocaml/preprocess/parser_raw.mly" + ( mkrhs _1 _sloc ) +# 14312 "src/ocaml/preprocess/parser_raw.ml" in + let _endpos = _endpos__2_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 3042 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 14603 "src/ocaml/preprocess/parser_raw.ml" +# 3053 "src/ocaml/preprocess/parser_raw.mly" + ( mkexp ~loc:_sloc (Pexp_construct(_1, Some _2)) ) +# 14321 "src/ocaml/preprocess/parser_raw.ml" in - ( + +# 3042 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 14327 "src/ocaml/preprocess/parser_raw.ml" + + in + # 2951 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 14609 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression)) - in +# 14333 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -14642,44 +14365,42 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in - let _v = - let _1 = - let _2 = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in - let _1 = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 1296 "src/ocaml/preprocess/parser_raw.mly" - ( mkrhs _1 _sloc ) -# 14657 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__2_ in + let _v : (Parsetree.expression) = let _1 = + let _2 = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in + let _1 = + let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3053 "src/ocaml/preprocess/parser_raw.mly" - ( mkexp ~loc:_sloc (Pexp_construct(_1, Some _2)) ) -# 14666 "src/ocaml/preprocess/parser_raw.ml" +# 1296 "src/ocaml/preprocess/parser_raw.mly" + ( mkrhs _1 _sloc ) +# 14379 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__2_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3044 "src/ocaml/preprocess/parser_raw.mly" - ( mkexp ~loc:_sloc (Pexp_stack _2) ) -# 14675 "src/ocaml/preprocess/parser_raw.ml" +# 3053 "src/ocaml/preprocess/parser_raw.mly" + ( mkexp ~loc:_sloc (Pexp_construct(_1, Some _2)) ) +# 14388 "src/ocaml/preprocess/parser_raw.ml" in - ( + let _endpos = _endpos__2_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 3044 "src/ocaml/preprocess/parser_raw.mly" + ( mkexp ~loc:_sloc (Pexp_stack _2) ) +# 14397 "src/ocaml/preprocess/parser_raw.ml" + + in + # 2951 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 14681 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression)) - in +# 14403 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -14707,23 +14428,21 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in - let _v = - let _1 = - let _endpos = _endpos__2_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let _v : (Parsetree.expression) = let _1 = + let _endpos = _endpos__2_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 3046 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (Pexp_variant(_1, Some _2)) ) -# 14719 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 14439 "src/ocaml/preprocess/parser_raw.ml" + + in + # 2951 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 14725 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression)) - in +# 14445 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -14756,58 +14475,56 @@ module Tables = struct let op : ( # 1066 "src/ocaml/preprocess/parser_raw.mly" (string) -# 14760 "src/ocaml/preprocess/parser_raw.ml" +# 14479 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic op in let e1 : (Parsetree.expression) = Obj.magic e1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_e1_ in let _endpos = _endpos__1_ in - let _v = - let _1 = - let e2 = - let _1 = + let _v : (Parsetree.expression) = let _1 = + let e2 = + let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 14772 "src/ocaml/preprocess/parser_raw.ml" - in - +# 14490 "src/ocaml/preprocess/parser_raw.ml" + in + # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 14777 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_e2_ = _endpos__1_ in - let op = - let _1 = +# 14495 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_e2_ = _endpos__1_ in + let op = + let _1 = # 5083 "src/ocaml/preprocess/parser_raw.mly" ( op ) -# 14785 "src/ocaml/preprocess/parser_raw.ml" - in - let (_endpos__1_, _startpos__1_) = (_endpos_op_, _startpos_op_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 14503 "src/ocaml/preprocess/parser_raw.ml" + in + let (_endpos__1_, _startpos__1_) = (_endpos_op_, _startpos_op_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1323 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 14794 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos_e2_ in - let _symbolstartpos = _startpos_e1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 14512 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos_e2_ in + let _symbolstartpos = _startpos_e1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 3048 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 14803 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 14521 "src/ocaml/preprocess/parser_raw.ml" + + in + # 2951 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 14809 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression)) - in +# 14527 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -14861,56 +14578,55 @@ module Tables = struct let op : ( # 1066 "src/ocaml/preprocess/parser_raw.mly" (string) -# 14865 "src/ocaml/preprocess/parser_raw.ml" +# 14582 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic op in let e1 : (Parsetree.expression) = Obj.magic e1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_e1_ in let _endpos = _endpos_xs_ in - let _v = - let _1 = - let e2 = - let _1 = - let _3 = - let xs = - let xs = -# 264 "" + let _v : (Parsetree.expression) = let _1 = + let e2 = + let _1 = + let _3 = + let xs = + let xs = +# 253 "" ( List.rev xs ) -# 14880 "src/ocaml/preprocess/parser_raw.ml" - in - +# 14596 "src/ocaml/preprocess/parser_raw.ml" + in + # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 14885 "src/ocaml/preprocess/parser_raw.ml" - - in +# 14601 "src/ocaml/preprocess/parser_raw.ml" + in + # 3510 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 14891 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__3_ = _endpos_xs_ in +# 14607 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__3_ = _endpos_xs_ in + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in - + let _1 = _1_inlined1 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 14902 "src/ocaml/preprocess/parser_raw.ml" - - in +# 14618 "src/ocaml/preprocess/parser_raw.ml" + in + # 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 14908 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 14624 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2718 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in @@ -14924,47 +14640,46 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 14928 "src/ocaml/preprocess/parser_raw.ml" - - in +# 14644 "src/ocaml/preprocess/parser_raw.ml" + in + # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 14934 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_e2_ = _endpos_xs_ in - let op = - let _1 = +# 14650 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_e2_ = _endpos_xs_ in + let op = + let _1 = # 5083 "src/ocaml/preprocess/parser_raw.mly" ( op ) -# 14942 "src/ocaml/preprocess/parser_raw.ml" - in - let (_endpos__1_, _startpos__1_) = (_endpos_op_, _startpos_op_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 14658 "src/ocaml/preprocess/parser_raw.ml" + in + let (_endpos__1_, _startpos__1_) = (_endpos_op_, _startpos_op_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1323 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 14951 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos_e2_ in - let _symbolstartpos = _startpos_e1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 14667 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos_e2_ in + let _symbolstartpos = _startpos_e1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 3048 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 14960 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 14676 "src/ocaml/preprocess/parser_raw.ml" + + in + # 2951 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 14966 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression)) - in +# 14682 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -14999,52 +14714,50 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_e1_ in let _endpos = _endpos__1_inlined1_ in - let _v = - let _1 = - let e2 = - let _1 = _1_inlined1 in - let _1 = + let _v : (Parsetree.expression) = let _1 = + let e2 = + let _1 = _1_inlined1 in + let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 15010 "src/ocaml/preprocess/parser_raw.ml" - in - +# 14724 "src/ocaml/preprocess/parser_raw.ml" + in + # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 15015 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_e2_ = _endpos__1_inlined1_ in - let op = - let _1 = +# 14729 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_e2_ = _endpos__1_inlined1_ in + let op = + let _1 = # 5085 "src/ocaml/preprocess/parser_raw.mly" ("@") -# 15023 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 14737 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1323 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 15031 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos_e2_ in - let _symbolstartpos = _startpos_e1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 14745 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos_e2_ in + let _symbolstartpos = _startpos_e1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 3048 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 15040 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 14754 "src/ocaml/preprocess/parser_raw.ml" + + in + # 2951 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 15046 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression)) - in +# 14760 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -15100,51 +14813,50 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_e1_ in let _endpos = _endpos_xs_ in - let _v = - let _1 = - let e2 = - let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in - let _1 = - let _3 = - let xs = - let xs = -# 264 "" + let _v : (Parsetree.expression) = let _1 = + let e2 = + let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in + let _1 = + let _3 = + let xs = + let xs = +# 253 "" ( List.rev xs ) -# 15114 "src/ocaml/preprocess/parser_raw.ml" - in - +# 14826 "src/ocaml/preprocess/parser_raw.ml" + in + # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 15119 "src/ocaml/preprocess/parser_raw.ml" - - in +# 14831 "src/ocaml/preprocess/parser_raw.ml" + in + # 3510 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 15125 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__3_ = _endpos_xs_ in +# 14837 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__3_ = _endpos_xs_ in + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in - + let _1 = _1_inlined1 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 15136 "src/ocaml/preprocess/parser_raw.ml" - - in +# 14848 "src/ocaml/preprocess/parser_raw.ml" + in + # 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 15142 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 14854 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2718 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in @@ -15158,46 +14870,45 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 15162 "src/ocaml/preprocess/parser_raw.ml" - - in +# 14874 "src/ocaml/preprocess/parser_raw.ml" + in + # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 15168 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_e2_ = _endpos_xs_ in - let op = - let _1 = +# 14880 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_e2_ = _endpos_xs_ in + let op = + let _1 = # 5085 "src/ocaml/preprocess/parser_raw.mly" ("@") -# 15176 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 14888 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1323 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 15184 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos_e2_ in - let _symbolstartpos = _startpos_e1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 14896 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos_e2_ in + let _symbolstartpos = _startpos_e1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 3048 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 15193 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 14905 "src/ocaml/preprocess/parser_raw.ml" + + in + # 2951 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 15199 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression)) - in +# 14911 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -15232,52 +14943,50 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_e1_ in let _endpos = _endpos__1_inlined1_ in - let _v = - let _1 = - let e2 = - let _1 = _1_inlined1 in - let _1 = + let _v : (Parsetree.expression) = let _1 = + let e2 = + let _1 = _1_inlined1 in + let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 15243 "src/ocaml/preprocess/parser_raw.ml" - in - +# 14953 "src/ocaml/preprocess/parser_raw.ml" + in + # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 15248 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_e2_ = _endpos__1_inlined1_ in - let op = - let _1 = +# 14958 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_e2_ = _endpos__1_inlined1_ in + let op = + let _1 = # 5086 "src/ocaml/preprocess/parser_raw.mly" ("@@") -# 15256 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 14966 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1323 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 15264 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos_e2_ in - let _symbolstartpos = _startpos_e1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 14974 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos_e2_ in + let _symbolstartpos = _startpos_e1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 3048 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 15273 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 14983 "src/ocaml/preprocess/parser_raw.ml" + + in + # 2951 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 15279 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression)) - in +# 14989 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -15333,51 +15042,50 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_e1_ in let _endpos = _endpos_xs_ in - let _v = - let _1 = - let e2 = - let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in - let _1 = - let _3 = - let xs = - let xs = -# 264 "" + let _v : (Parsetree.expression) = let _1 = + let e2 = + let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in + let _1 = + let _3 = + let xs = + let xs = +# 253 "" ( List.rev xs ) -# 15347 "src/ocaml/preprocess/parser_raw.ml" - in - +# 15055 "src/ocaml/preprocess/parser_raw.ml" + in + # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 15352 "src/ocaml/preprocess/parser_raw.ml" - - in +# 15060 "src/ocaml/preprocess/parser_raw.ml" + in + # 3510 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 15358 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__3_ = _endpos_xs_ in +# 15066 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__3_ = _endpos_xs_ in + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in - + let _1 = _1_inlined1 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 15369 "src/ocaml/preprocess/parser_raw.ml" - - in +# 15077 "src/ocaml/preprocess/parser_raw.ml" + in + # 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 15375 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 15083 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2718 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in @@ -15391,46 +15099,45 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 15395 "src/ocaml/preprocess/parser_raw.ml" - - in +# 15103 "src/ocaml/preprocess/parser_raw.ml" + in + # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 15401 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_e2_ = _endpos_xs_ in - let op = - let _1 = +# 15109 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_e2_ = _endpos_xs_ in + let op = + let _1 = # 5086 "src/ocaml/preprocess/parser_raw.mly" ("@@") -# 15409 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 15117 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1323 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 15417 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos_e2_ in - let _symbolstartpos = _startpos_e1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 15125 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos_e2_ in + let _symbolstartpos = _startpos_e1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 3048 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 15426 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 15134 "src/ocaml/preprocess/parser_raw.ml" + + in + # 2951 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 15432 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression)) - in +# 15140 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -15463,58 +15170,56 @@ module Tables = struct let op : ( # 1069 "src/ocaml/preprocess/parser_raw.mly" (string) -# 15467 "src/ocaml/preprocess/parser_raw.ml" +# 15174 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic op in let e1 : (Parsetree.expression) = Obj.magic e1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_e1_ in let _endpos = _endpos__1_ in - let _v = - let _1 = - let e2 = - let _1 = + let _v : (Parsetree.expression) = let _1 = + let e2 = + let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 15479 "src/ocaml/preprocess/parser_raw.ml" - in - +# 15185 "src/ocaml/preprocess/parser_raw.ml" + in + # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 15484 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_e2_ = _endpos__1_ in - let op = - let _1 = +# 15190 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_e2_ = _endpos__1_ in + let op = + let _1 = # 5087 "src/ocaml/preprocess/parser_raw.mly" ( op ) -# 15492 "src/ocaml/preprocess/parser_raw.ml" - in - let (_endpos__1_, _startpos__1_) = (_endpos_op_, _startpos_op_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 15198 "src/ocaml/preprocess/parser_raw.ml" + in + let (_endpos__1_, _startpos__1_) = (_endpos_op_, _startpos_op_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1323 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 15501 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos_e2_ in - let _symbolstartpos = _startpos_e1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 15207 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos_e2_ in + let _symbolstartpos = _startpos_e1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 3048 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 15510 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 15216 "src/ocaml/preprocess/parser_raw.ml" + + in + # 2951 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 15516 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression)) - in +# 15222 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -15568,56 +15273,55 @@ module Tables = struct let op : ( # 1069 "src/ocaml/preprocess/parser_raw.mly" (string) -# 15572 "src/ocaml/preprocess/parser_raw.ml" +# 15277 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic op in let e1 : (Parsetree.expression) = Obj.magic e1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_e1_ in let _endpos = _endpos_xs_ in - let _v = - let _1 = - let e2 = - let _1 = - let _3 = - let xs = - let xs = -# 264 "" + let _v : (Parsetree.expression) = let _1 = + let e2 = + let _1 = + let _3 = + let xs = + let xs = +# 253 "" ( List.rev xs ) -# 15587 "src/ocaml/preprocess/parser_raw.ml" - in - +# 15291 "src/ocaml/preprocess/parser_raw.ml" + in + # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 15592 "src/ocaml/preprocess/parser_raw.ml" - - in +# 15296 "src/ocaml/preprocess/parser_raw.ml" + in + # 3510 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 15598 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__3_ = _endpos_xs_ in +# 15302 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__3_ = _endpos_xs_ in + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in - + let _1 = _1_inlined1 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 15609 "src/ocaml/preprocess/parser_raw.ml" - - in +# 15313 "src/ocaml/preprocess/parser_raw.ml" + in + # 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 15615 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 15319 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2718 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in @@ -15631,47 +15335,46 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 15635 "src/ocaml/preprocess/parser_raw.ml" - - in +# 15339 "src/ocaml/preprocess/parser_raw.ml" + in + # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 15641 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_e2_ = _endpos_xs_ in - let op = - let _1 = +# 15345 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_e2_ = _endpos_xs_ in + let op = + let _1 = # 5087 "src/ocaml/preprocess/parser_raw.mly" ( op ) -# 15649 "src/ocaml/preprocess/parser_raw.ml" - in - let (_endpos__1_, _startpos__1_) = (_endpos_op_, _startpos_op_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 15353 "src/ocaml/preprocess/parser_raw.ml" + in + let (_endpos__1_, _startpos__1_) = (_endpos_op_, _startpos_op_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1323 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 15658 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos_e2_ in - let _symbolstartpos = _startpos_e1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 15362 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos_e2_ in + let _symbolstartpos = _startpos_e1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 3048 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 15667 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 15371 "src/ocaml/preprocess/parser_raw.ml" + + in + # 2951 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 15673 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression)) - in +# 15377 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -15704,58 +15407,56 @@ module Tables = struct let op : ( # 1070 "src/ocaml/preprocess/parser_raw.mly" (string) -# 15708 "src/ocaml/preprocess/parser_raw.ml" +# 15411 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic op in let e1 : (Parsetree.expression) = Obj.magic e1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_e1_ in let _endpos = _endpos__1_ in - let _v = - let _1 = - let e2 = - let _1 = + let _v : (Parsetree.expression) = let _1 = + let e2 = + let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 15720 "src/ocaml/preprocess/parser_raw.ml" - in - +# 15422 "src/ocaml/preprocess/parser_raw.ml" + in + # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 15725 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_e2_ = _endpos__1_ in - let op = - let _1 = +# 15427 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_e2_ = _endpos__1_ in + let op = + let _1 = # 5088 "src/ocaml/preprocess/parser_raw.mly" ( op ) -# 15733 "src/ocaml/preprocess/parser_raw.ml" - in - let (_endpos__1_, _startpos__1_) = (_endpos_op_, _startpos_op_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 15435 "src/ocaml/preprocess/parser_raw.ml" + in + let (_endpos__1_, _startpos__1_) = (_endpos_op_, _startpos_op_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1323 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 15742 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos_e2_ in - let _symbolstartpos = _startpos_e1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 15444 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos_e2_ in + let _symbolstartpos = _startpos_e1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 3048 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 15751 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 15453 "src/ocaml/preprocess/parser_raw.ml" + + in + # 2951 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 15757 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression)) - in +# 15459 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -15809,56 +15510,55 @@ module Tables = struct let op : ( # 1070 "src/ocaml/preprocess/parser_raw.mly" (string) -# 15813 "src/ocaml/preprocess/parser_raw.ml" +# 15514 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic op in let e1 : (Parsetree.expression) = Obj.magic e1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_e1_ in let _endpos = _endpos_xs_ in - let _v = - let _1 = - let e2 = - let _1 = - let _3 = - let xs = - let xs = -# 264 "" + let _v : (Parsetree.expression) = let _1 = + let e2 = + let _1 = + let _3 = + let xs = + let xs = +# 253 "" ( List.rev xs ) -# 15828 "src/ocaml/preprocess/parser_raw.ml" - in - +# 15528 "src/ocaml/preprocess/parser_raw.ml" + in + # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 15833 "src/ocaml/preprocess/parser_raw.ml" - - in +# 15533 "src/ocaml/preprocess/parser_raw.ml" + in + # 3510 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 15839 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__3_ = _endpos_xs_ in +# 15539 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__3_ = _endpos_xs_ in + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in - + let _1 = _1_inlined1 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 15850 "src/ocaml/preprocess/parser_raw.ml" - - in +# 15550 "src/ocaml/preprocess/parser_raw.ml" + in + # 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 15856 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 15556 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2718 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in @@ -15872,47 +15572,46 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 15876 "src/ocaml/preprocess/parser_raw.ml" - - in +# 15576 "src/ocaml/preprocess/parser_raw.ml" + in + # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 15882 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_e2_ = _endpos_xs_ in - let op = - let _1 = +# 15582 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_e2_ = _endpos_xs_ in + let op = + let _1 = # 5088 "src/ocaml/preprocess/parser_raw.mly" ( op ) -# 15890 "src/ocaml/preprocess/parser_raw.ml" - in - let (_endpos__1_, _startpos__1_) = (_endpos_op_, _startpos_op_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 15590 "src/ocaml/preprocess/parser_raw.ml" + in + let (_endpos__1_, _startpos__1_) = (_endpos_op_, _startpos_op_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1323 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 15899 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos_e2_ in - let _symbolstartpos = _startpos_e1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 15599 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos_e2_ in + let _symbolstartpos = _startpos_e1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 3048 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 15908 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 15608 "src/ocaml/preprocess/parser_raw.ml" + + in + # 2951 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 15914 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression)) - in +# 15614 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -15945,65 +15644,63 @@ module Tables = struct let op : ( # 1071 "src/ocaml/preprocess/parser_raw.mly" (string) -# 15949 "src/ocaml/preprocess/parser_raw.ml" +# 15648 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic op in let e1 : (Parsetree.expression) = Obj.magic e1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_e1_ in let _endpos = _endpos__1_ in - let _v = - let _1 = - let e2 = - let _1 = + let _v : (Parsetree.expression) = let _1 = + let e2 = + let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 15961 "src/ocaml/preprocess/parser_raw.ml" - in - +# 15659 "src/ocaml/preprocess/parser_raw.ml" + in + # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 15966 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_e2_ = _endpos__1_ in - let op = - let _1 = - let op = +# 15664 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_e2_ = _endpos__1_ in + let op = + let _1 = + let op = # 5079 "src/ocaml/preprocess/parser_raw.mly" ( op ) -# 15975 "src/ocaml/preprocess/parser_raw.ml" - in - +# 15673 "src/ocaml/preprocess/parser_raw.ml" + in + # 5089 "src/ocaml/preprocess/parser_raw.mly" ( op ) -# 15980 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos_op_, _startpos_op_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 1323 "src/ocaml/preprocess/parser_raw.mly" - ( mkoperator ~loc:_sloc _1 ) -# 15990 "src/ocaml/preprocess/parser_raw.ml" +# 15678 "src/ocaml/preprocess/parser_raw.ml" in - let _endpos = _endpos_e2_ in - let _symbolstartpos = _startpos_e1_ in + let (_endpos__1_, _startpos__1_) = (_endpos_op_, _startpos_op_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3048 "src/ocaml/preprocess/parser_raw.mly" - ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 15999 "src/ocaml/preprocess/parser_raw.ml" +# 1323 "src/ocaml/preprocess/parser_raw.mly" + ( mkoperator ~loc:_sloc _1 ) +# 15688 "src/ocaml/preprocess/parser_raw.ml" in - ( + let _endpos = _endpos_e2_ in + let _symbolstartpos = _startpos_e1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 3048 "src/ocaml/preprocess/parser_raw.mly" + ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) +# 15697 "src/ocaml/preprocess/parser_raw.ml" + + in + # 2951 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 16005 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression)) - in +# 15703 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -16057,56 +15754,55 @@ module Tables = struct let op : ( # 1071 "src/ocaml/preprocess/parser_raw.mly" (string) -# 16061 "src/ocaml/preprocess/parser_raw.ml" +# 15758 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic op in let e1 : (Parsetree.expression) = Obj.magic e1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_e1_ in let _endpos = _endpos_xs_ in - let _v = - let _1 = - let e2 = - let _1 = - let _3 = - let xs = - let xs = -# 264 "" + let _v : (Parsetree.expression) = let _1 = + let e2 = + let _1 = + let _3 = + let xs = + let xs = +# 253 "" ( List.rev xs ) -# 16076 "src/ocaml/preprocess/parser_raw.ml" - in - +# 15772 "src/ocaml/preprocess/parser_raw.ml" + in + # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 16081 "src/ocaml/preprocess/parser_raw.ml" - - in +# 15777 "src/ocaml/preprocess/parser_raw.ml" + in + # 3510 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 16087 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__3_ = _endpos_xs_ in - let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in - +# 15783 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__3_ = _endpos_xs_ in + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in + let _2 = + let _1 = _1_inlined1 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 16098 "src/ocaml/preprocess/parser_raw.ml" - - in +# 15794 "src/ocaml/preprocess/parser_raw.ml" + in + # 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 16104 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 15800 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2718 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in @@ -16120,54 +15816,53 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 16124 "src/ocaml/preprocess/parser_raw.ml" - - in +# 15820 "src/ocaml/preprocess/parser_raw.ml" + in + # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 16130 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_e2_ = _endpos_xs_ in - let op = - let _1 = - let op = +# 15826 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_e2_ = _endpos_xs_ in + let op = + let _1 = + let op = # 5079 "src/ocaml/preprocess/parser_raw.mly" ( op ) -# 16139 "src/ocaml/preprocess/parser_raw.ml" - in - +# 15835 "src/ocaml/preprocess/parser_raw.ml" + in + # 5089 "src/ocaml/preprocess/parser_raw.mly" ( op ) -# 16144 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos_op_, _startpos_op_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 1323 "src/ocaml/preprocess/parser_raw.mly" - ( mkoperator ~loc:_sloc _1 ) -# 16154 "src/ocaml/preprocess/parser_raw.ml" +# 15840 "src/ocaml/preprocess/parser_raw.ml" in - let _endpos = _endpos_e2_ in - let _symbolstartpos = _startpos_e1_ in + let (_endpos__1_, _startpos__1_) = (_endpos_op_, _startpos_op_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3048 "src/ocaml/preprocess/parser_raw.mly" - ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 16163 "src/ocaml/preprocess/parser_raw.ml" +# 1323 "src/ocaml/preprocess/parser_raw.mly" + ( mkoperator ~loc:_sloc _1 ) +# 15850 "src/ocaml/preprocess/parser_raw.ml" in - ( + let _endpos = _endpos_e2_ in + let _symbolstartpos = _startpos_e1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 3048 "src/ocaml/preprocess/parser_raw.mly" + ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) +# 15859 "src/ocaml/preprocess/parser_raw.ml" + + in + # 2951 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 16169 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression)) - in +# 15865 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -16202,59 +15897,57 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_e1_ in let _endpos = _endpos__1_inlined1_ in - let _v = - let _1 = - let e2 = - let _1 = _1_inlined1 in - let _1 = + let _v : (Parsetree.expression) = let _1 = + let e2 = + let _1 = _1_inlined1 in + let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 16213 "src/ocaml/preprocess/parser_raw.ml" - in - +# 15907 "src/ocaml/preprocess/parser_raw.ml" + in + # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 16218 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_e2_ = _endpos__1_inlined1_ in - let op = - let _1 = - let op = +# 15912 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_e2_ = _endpos__1_inlined1_ in + let op = + let _1 = + let op = # 5080 "src/ocaml/preprocess/parser_raw.mly" ( "mod" ) -# 16227 "src/ocaml/preprocess/parser_raw.ml" - in - +# 15921 "src/ocaml/preprocess/parser_raw.ml" + in + # 5089 "src/ocaml/preprocess/parser_raw.mly" ( op ) -# 16232 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 1323 "src/ocaml/preprocess/parser_raw.mly" - ( mkoperator ~loc:_sloc _1 ) -# 16241 "src/ocaml/preprocess/parser_raw.ml" +# 15926 "src/ocaml/preprocess/parser_raw.ml" in - let _endpos = _endpos_e2_ in - let _symbolstartpos = _startpos_e1_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3048 "src/ocaml/preprocess/parser_raw.mly" - ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 16250 "src/ocaml/preprocess/parser_raw.ml" +# 1323 "src/ocaml/preprocess/parser_raw.mly" + ( mkoperator ~loc:_sloc _1 ) +# 15935 "src/ocaml/preprocess/parser_raw.ml" in - ( + let _endpos = _endpos_e2_ in + let _symbolstartpos = _startpos_e1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 3048 "src/ocaml/preprocess/parser_raw.mly" + ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) +# 15944 "src/ocaml/preprocess/parser_raw.ml" + + in + # 2951 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 16256 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression)) - in +# 15950 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -16310,51 +16003,50 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_e1_ in let _endpos = _endpos_xs_ in - let _v = - let _1 = - let e2 = - let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in - let _1 = - let _3 = - let xs = - let xs = -# 264 "" + let _v : (Parsetree.expression) = let _1 = + let e2 = + let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in + let _1 = + let _3 = + let xs = + let xs = +# 253 "" ( List.rev xs ) -# 16324 "src/ocaml/preprocess/parser_raw.ml" - in - +# 16016 "src/ocaml/preprocess/parser_raw.ml" + in + # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 16329 "src/ocaml/preprocess/parser_raw.ml" - - in +# 16021 "src/ocaml/preprocess/parser_raw.ml" + in + # 3510 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 16335 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__3_ = _endpos_xs_ in +# 16027 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__3_ = _endpos_xs_ in + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in - + let _1 = _1_inlined1 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 16346 "src/ocaml/preprocess/parser_raw.ml" - - in +# 16038 "src/ocaml/preprocess/parser_raw.ml" + in + # 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 16352 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 16044 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2718 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in @@ -16368,53 +16060,52 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 16372 "src/ocaml/preprocess/parser_raw.ml" - - in +# 16064 "src/ocaml/preprocess/parser_raw.ml" + in + # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 16378 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_e2_ = _endpos_xs_ in - let op = - let _1 = - let op = +# 16070 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_e2_ = _endpos_xs_ in + let op = + let _1 = + let op = # 5080 "src/ocaml/preprocess/parser_raw.mly" ( "mod" ) -# 16387 "src/ocaml/preprocess/parser_raw.ml" - in - +# 16079 "src/ocaml/preprocess/parser_raw.ml" + in + # 5089 "src/ocaml/preprocess/parser_raw.mly" ( op ) -# 16392 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 1323 "src/ocaml/preprocess/parser_raw.mly" - ( mkoperator ~loc:_sloc _1 ) -# 16401 "src/ocaml/preprocess/parser_raw.ml" +# 16084 "src/ocaml/preprocess/parser_raw.ml" in - let _endpos = _endpos_e2_ in - let _symbolstartpos = _startpos_e1_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3048 "src/ocaml/preprocess/parser_raw.mly" - ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 16410 "src/ocaml/preprocess/parser_raw.ml" +# 1323 "src/ocaml/preprocess/parser_raw.mly" + ( mkoperator ~loc:_sloc _1 ) +# 16093 "src/ocaml/preprocess/parser_raw.ml" in - ( + let _endpos = _endpos_e2_ in + let _symbolstartpos = _startpos_e1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 3048 "src/ocaml/preprocess/parser_raw.mly" + ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) +# 16102 "src/ocaml/preprocess/parser_raw.ml" + + in + # 2951 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 16416 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression)) - in +# 16108 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -16447,58 +16138,56 @@ module Tables = struct let op : ( # 1072 "src/ocaml/preprocess/parser_raw.mly" (string) -# 16451 "src/ocaml/preprocess/parser_raw.ml" +# 16142 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic op in let e1 : (Parsetree.expression) = Obj.magic e1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_e1_ in let _endpos = _endpos__1_ in - let _v = - let _1 = - let e2 = - let _1 = + let _v : (Parsetree.expression) = let _1 = + let e2 = + let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 16463 "src/ocaml/preprocess/parser_raw.ml" - in - +# 16153 "src/ocaml/preprocess/parser_raw.ml" + in + # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 16468 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_e2_ = _endpos__1_ in - let op = - let _1 = +# 16158 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_e2_ = _endpos__1_ in + let op = + let _1 = # 5090 "src/ocaml/preprocess/parser_raw.mly" ( op ) -# 16476 "src/ocaml/preprocess/parser_raw.ml" - in - let (_endpos__1_, _startpos__1_) = (_endpos_op_, _startpos_op_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 16166 "src/ocaml/preprocess/parser_raw.ml" + in + let (_endpos__1_, _startpos__1_) = (_endpos_op_, _startpos_op_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1323 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 16485 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos_e2_ in - let _symbolstartpos = _startpos_e1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 16175 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos_e2_ in + let _symbolstartpos = _startpos_e1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 3048 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 16494 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 16184 "src/ocaml/preprocess/parser_raw.ml" + + in + # 2951 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 16500 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression)) - in +# 16190 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -16552,56 +16241,55 @@ module Tables = struct let op : ( # 1072 "src/ocaml/preprocess/parser_raw.mly" (string) -# 16556 "src/ocaml/preprocess/parser_raw.ml" +# 16245 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic op in let e1 : (Parsetree.expression) = Obj.magic e1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_e1_ in let _endpos = _endpos_xs_ in - let _v = - let _1 = - let e2 = - let _1 = - let _3 = - let xs = - let xs = -# 264 "" + let _v : (Parsetree.expression) = let _1 = + let e2 = + let _1 = + let _3 = + let xs = + let xs = +# 253 "" ( List.rev xs ) -# 16571 "src/ocaml/preprocess/parser_raw.ml" - in - +# 16259 "src/ocaml/preprocess/parser_raw.ml" + in + # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 16576 "src/ocaml/preprocess/parser_raw.ml" - - in +# 16264 "src/ocaml/preprocess/parser_raw.ml" + in + # 3510 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 16582 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__3_ = _endpos_xs_ in +# 16270 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__3_ = _endpos_xs_ in + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in - + let _1 = _1_inlined1 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 16593 "src/ocaml/preprocess/parser_raw.ml" - - in +# 16281 "src/ocaml/preprocess/parser_raw.ml" + in + # 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 16599 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 16287 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2718 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in @@ -16615,47 +16303,46 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 16619 "src/ocaml/preprocess/parser_raw.ml" - - in +# 16307 "src/ocaml/preprocess/parser_raw.ml" + in + # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 16625 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_e2_ = _endpos_xs_ in - let op = - let _1 = +# 16313 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_e2_ = _endpos_xs_ in + let op = + let _1 = # 5090 "src/ocaml/preprocess/parser_raw.mly" ( op ) -# 16633 "src/ocaml/preprocess/parser_raw.ml" - in - let (_endpos__1_, _startpos__1_) = (_endpos_op_, _startpos_op_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 16321 "src/ocaml/preprocess/parser_raw.ml" + in + let (_endpos__1_, _startpos__1_) = (_endpos_op_, _startpos_op_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1323 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 16642 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos_e2_ in - let _symbolstartpos = _startpos_e1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 16330 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos_e2_ in + let _symbolstartpos = _startpos_e1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 3048 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 16651 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 16339 "src/ocaml/preprocess/parser_raw.ml" + + in + # 2951 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 16657 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression)) - in +# 16345 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -16690,52 +16377,50 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_e1_ in let _endpos = _endpos__1_inlined1_ in - let _v = - let _1 = - let e2 = - let _1 = _1_inlined1 in - let _1 = + let _v : (Parsetree.expression) = let _1 = + let e2 = + let _1 = _1_inlined1 in + let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 16701 "src/ocaml/preprocess/parser_raw.ml" - in - +# 16387 "src/ocaml/preprocess/parser_raw.ml" + in + # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 16706 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_e2_ = _endpos__1_inlined1_ in - let op = - let _1 = +# 16392 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_e2_ = _endpos__1_inlined1_ in + let op = + let _1 = # 5091 "src/ocaml/preprocess/parser_raw.mly" ("+") -# 16714 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 16400 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1323 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 16722 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos_e2_ in - let _symbolstartpos = _startpos_e1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 16408 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos_e2_ in + let _symbolstartpos = _startpos_e1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 3048 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 16731 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 16417 "src/ocaml/preprocess/parser_raw.ml" + + in + # 2951 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 16737 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression)) - in +# 16423 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -16791,51 +16476,50 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_e1_ in let _endpos = _endpos_xs_ in - let _v = - let _1 = - let e2 = - let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in - let _1 = - let _3 = - let xs = - let xs = -# 264 "" + let _v : (Parsetree.expression) = let _1 = + let e2 = + let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in + let _1 = + let _3 = + let xs = + let xs = +# 253 "" ( List.rev xs ) -# 16805 "src/ocaml/preprocess/parser_raw.ml" - in - +# 16489 "src/ocaml/preprocess/parser_raw.ml" + in + # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 16810 "src/ocaml/preprocess/parser_raw.ml" - - in +# 16494 "src/ocaml/preprocess/parser_raw.ml" + in + # 3510 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 16816 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__3_ = _endpos_xs_ in +# 16500 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__3_ = _endpos_xs_ in + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in - + let _1 = _1_inlined1 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 16827 "src/ocaml/preprocess/parser_raw.ml" - - in +# 16511 "src/ocaml/preprocess/parser_raw.ml" + in + # 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 16833 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 16517 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2718 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in @@ -16849,46 +16533,45 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 16853 "src/ocaml/preprocess/parser_raw.ml" - - in +# 16537 "src/ocaml/preprocess/parser_raw.ml" + in + # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 16859 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_e2_ = _endpos_xs_ in - let op = - let _1 = +# 16543 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_e2_ = _endpos_xs_ in + let op = + let _1 = # 5091 "src/ocaml/preprocess/parser_raw.mly" ("+") -# 16867 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 16551 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1323 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 16875 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos_e2_ in - let _symbolstartpos = _startpos_e1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 16559 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos_e2_ in + let _symbolstartpos = _startpos_e1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 3048 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 16884 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 16568 "src/ocaml/preprocess/parser_raw.ml" + + in + # 2951 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 16890 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression)) - in +# 16574 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -16923,52 +16606,50 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_e1_ in let _endpos = _endpos__1_inlined1_ in - let _v = - let _1 = - let e2 = - let _1 = _1_inlined1 in - let _1 = + let _v : (Parsetree.expression) = let _1 = + let e2 = + let _1 = _1_inlined1 in + let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 16934 "src/ocaml/preprocess/parser_raw.ml" - in - +# 16616 "src/ocaml/preprocess/parser_raw.ml" + in + # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 16939 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_e2_ = _endpos__1_inlined1_ in - let op = - let _1 = +# 16621 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_e2_ = _endpos__1_inlined1_ in + let op = + let _1 = # 5092 "src/ocaml/preprocess/parser_raw.mly" ("+.") -# 16947 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 16629 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1323 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 16955 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos_e2_ in - let _symbolstartpos = _startpos_e1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 16637 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos_e2_ in + let _symbolstartpos = _startpos_e1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 3048 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 16964 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 16646 "src/ocaml/preprocess/parser_raw.ml" + + in + # 2951 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 16970 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression)) - in +# 16652 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -17024,51 +16705,50 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_e1_ in let _endpos = _endpos_xs_ in - let _v = - let _1 = - let e2 = - let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in - let _1 = - let _3 = - let xs = - let xs = -# 264 "" + let _v : (Parsetree.expression) = let _1 = + let e2 = + let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in + let _1 = + let _3 = + let xs = + let xs = +# 253 "" ( List.rev xs ) -# 17038 "src/ocaml/preprocess/parser_raw.ml" - in - +# 16718 "src/ocaml/preprocess/parser_raw.ml" + in + # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 17043 "src/ocaml/preprocess/parser_raw.ml" - - in +# 16723 "src/ocaml/preprocess/parser_raw.ml" + in + # 3510 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 17049 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__3_ = _endpos_xs_ in +# 16729 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__3_ = _endpos_xs_ in + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in - + let _1 = _1_inlined1 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 17060 "src/ocaml/preprocess/parser_raw.ml" - - in +# 16740 "src/ocaml/preprocess/parser_raw.ml" + in + # 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 17066 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 16746 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2718 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in @@ -17082,46 +16762,45 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 17086 "src/ocaml/preprocess/parser_raw.ml" - - in +# 16766 "src/ocaml/preprocess/parser_raw.ml" + in + # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 17092 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_e2_ = _endpos_xs_ in - let op = - let _1 = +# 16772 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_e2_ = _endpos_xs_ in + let op = + let _1 = # 5092 "src/ocaml/preprocess/parser_raw.mly" ("+.") -# 17100 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 16780 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1323 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 17108 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos_e2_ in - let _symbolstartpos = _startpos_e1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 16788 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos_e2_ in + let _symbolstartpos = _startpos_e1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 3048 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 17117 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 16797 "src/ocaml/preprocess/parser_raw.ml" + + in + # 2951 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 17123 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression)) - in +# 16803 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -17156,52 +16835,50 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_e1_ in let _endpos = _endpos__1_inlined1_ in - let _v = - let _1 = - let e2 = - let _1 = _1_inlined1 in - let _1 = + let _v : (Parsetree.expression) = let _1 = + let e2 = + let _1 = _1_inlined1 in + let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 17167 "src/ocaml/preprocess/parser_raw.ml" - in - +# 16845 "src/ocaml/preprocess/parser_raw.ml" + in + # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 17172 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_e2_ = _endpos__1_inlined1_ in - let op = - let _1 = +# 16850 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_e2_ = _endpos__1_inlined1_ in + let op = + let _1 = # 5093 "src/ocaml/preprocess/parser_raw.mly" ("+=") -# 17180 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 16858 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1323 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 17188 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos_e2_ in - let _symbolstartpos = _startpos_e1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 16866 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos_e2_ in + let _symbolstartpos = _startpos_e1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 3048 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 17197 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 16875 "src/ocaml/preprocess/parser_raw.ml" + + in + # 2951 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 17203 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression)) - in +# 16881 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -17257,51 +16934,50 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_e1_ in let _endpos = _endpos_xs_ in - let _v = - let _1 = - let e2 = - let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in - let _1 = - let _3 = - let xs = - let xs = -# 264 "" + let _v : (Parsetree.expression) = let _1 = + let e2 = + let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in + let _1 = + let _3 = + let xs = + let xs = +# 253 "" ( List.rev xs ) -# 17271 "src/ocaml/preprocess/parser_raw.ml" - in - +# 16947 "src/ocaml/preprocess/parser_raw.ml" + in + # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 17276 "src/ocaml/preprocess/parser_raw.ml" - - in +# 16952 "src/ocaml/preprocess/parser_raw.ml" + in + # 3510 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 17282 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__3_ = _endpos_xs_ in +# 16958 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__3_ = _endpos_xs_ in + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in - + let _1 = _1_inlined1 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 17293 "src/ocaml/preprocess/parser_raw.ml" - - in +# 16969 "src/ocaml/preprocess/parser_raw.ml" + in + # 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 17299 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 16975 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2718 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in @@ -17315,46 +16991,45 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 17319 "src/ocaml/preprocess/parser_raw.ml" - - in +# 16995 "src/ocaml/preprocess/parser_raw.ml" + in + # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 17325 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_e2_ = _endpos_xs_ in - let op = - let _1 = +# 17001 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_e2_ = _endpos_xs_ in + let op = + let _1 = # 5093 "src/ocaml/preprocess/parser_raw.mly" ("+=") -# 17333 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 17009 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1323 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 17341 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos_e2_ in - let _symbolstartpos = _startpos_e1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 17017 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos_e2_ in + let _symbolstartpos = _startpos_e1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 3048 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 17350 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 17026 "src/ocaml/preprocess/parser_raw.ml" + + in + # 2951 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 17356 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression)) - in +# 17032 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -17389,52 +17064,50 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_e1_ in let _endpos = _endpos__1_inlined1_ in - let _v = - let _1 = - let e2 = - let _1 = _1_inlined1 in - let _1 = + let _v : (Parsetree.expression) = let _1 = + let e2 = + let _1 = _1_inlined1 in + let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 17400 "src/ocaml/preprocess/parser_raw.ml" - in - +# 17074 "src/ocaml/preprocess/parser_raw.ml" + in + # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 17405 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_e2_ = _endpos__1_inlined1_ in - let op = - let _1 = +# 17079 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_e2_ = _endpos__1_inlined1_ in + let op = + let _1 = # 5094 "src/ocaml/preprocess/parser_raw.mly" ("-") -# 17413 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 17087 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1323 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 17421 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos_e2_ in - let _symbolstartpos = _startpos_e1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 17095 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos_e2_ in + let _symbolstartpos = _startpos_e1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 3048 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 17430 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 17104 "src/ocaml/preprocess/parser_raw.ml" + + in + # 2951 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 17436 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression)) - in +# 17110 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -17490,51 +17163,50 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_e1_ in let _endpos = _endpos_xs_ in - let _v = - let _1 = - let e2 = - let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in - let _1 = - let _3 = - let xs = - let xs = -# 264 "" + let _v : (Parsetree.expression) = let _1 = + let e2 = + let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in + let _1 = + let _3 = + let xs = + let xs = +# 253 "" ( List.rev xs ) -# 17504 "src/ocaml/preprocess/parser_raw.ml" - in - +# 17176 "src/ocaml/preprocess/parser_raw.ml" + in + # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 17509 "src/ocaml/preprocess/parser_raw.ml" - - in +# 17181 "src/ocaml/preprocess/parser_raw.ml" + in + # 3510 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 17515 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__3_ = _endpos_xs_ in +# 17187 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__3_ = _endpos_xs_ in + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in - + let _1 = _1_inlined1 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 17526 "src/ocaml/preprocess/parser_raw.ml" - - in +# 17198 "src/ocaml/preprocess/parser_raw.ml" + in + # 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 17532 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 17204 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2718 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in @@ -17548,46 +17220,45 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 17552 "src/ocaml/preprocess/parser_raw.ml" - - in +# 17224 "src/ocaml/preprocess/parser_raw.ml" + in + # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 17558 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_e2_ = _endpos_xs_ in - let op = - let _1 = +# 17230 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_e2_ = _endpos_xs_ in + let op = + let _1 = # 5094 "src/ocaml/preprocess/parser_raw.mly" ("-") -# 17566 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 17238 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1323 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 17574 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos_e2_ in - let _symbolstartpos = _startpos_e1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 17246 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos_e2_ in + let _symbolstartpos = _startpos_e1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 3048 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 17583 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 17255 "src/ocaml/preprocess/parser_raw.ml" + + in + # 2951 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 17589 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression)) - in +# 17261 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -17622,52 +17293,50 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_e1_ in let _endpos = _endpos__1_inlined1_ in - let _v = - let _1 = - let e2 = - let _1 = _1_inlined1 in - let _1 = + let _v : (Parsetree.expression) = let _1 = + let e2 = + let _1 = _1_inlined1 in + let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 17633 "src/ocaml/preprocess/parser_raw.ml" - in - +# 17303 "src/ocaml/preprocess/parser_raw.ml" + in + # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 17638 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_e2_ = _endpos__1_inlined1_ in - let op = - let _1 = +# 17308 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_e2_ = _endpos__1_inlined1_ in + let op = + let _1 = # 5095 "src/ocaml/preprocess/parser_raw.mly" ("-.") -# 17646 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 17316 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1323 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 17654 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos_e2_ in - let _symbolstartpos = _startpos_e1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 17324 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos_e2_ in + let _symbolstartpos = _startpos_e1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 3048 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 17663 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 17333 "src/ocaml/preprocess/parser_raw.ml" + + in + # 2951 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 17669 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression)) - in +# 17339 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -17723,51 +17392,50 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_e1_ in let _endpos = _endpos_xs_ in - let _v = - let _1 = - let e2 = - let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in - let _1 = - let _3 = - let xs = - let xs = -# 264 "" + let _v : (Parsetree.expression) = let _1 = + let e2 = + let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in + let _1 = + let _3 = + let xs = + let xs = +# 253 "" ( List.rev xs ) -# 17737 "src/ocaml/preprocess/parser_raw.ml" - in - +# 17405 "src/ocaml/preprocess/parser_raw.ml" + in + # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 17742 "src/ocaml/preprocess/parser_raw.ml" - - in +# 17410 "src/ocaml/preprocess/parser_raw.ml" + in + # 3510 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 17748 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__3_ = _endpos_xs_ in +# 17416 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__3_ = _endpos_xs_ in + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in - + let _1 = _1_inlined1 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 17759 "src/ocaml/preprocess/parser_raw.ml" - - in +# 17427 "src/ocaml/preprocess/parser_raw.ml" + in + # 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 17765 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 17433 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2718 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in @@ -17781,46 +17449,45 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 17785 "src/ocaml/preprocess/parser_raw.ml" - - in +# 17453 "src/ocaml/preprocess/parser_raw.ml" + in + # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 17791 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_e2_ = _endpos_xs_ in - let op = - let _1 = +# 17459 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_e2_ = _endpos_xs_ in + let op = + let _1 = # 5095 "src/ocaml/preprocess/parser_raw.mly" ("-.") -# 17799 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 17467 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1323 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 17807 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos_e2_ in - let _symbolstartpos = _startpos_e1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 17475 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos_e2_ in + let _symbolstartpos = _startpos_e1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 3048 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 17816 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 17484 "src/ocaml/preprocess/parser_raw.ml" + + in + # 2951 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 17822 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression)) - in +# 17490 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -17855,52 +17522,50 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_e1_ in let _endpos = _endpos__1_inlined1_ in - let _v = - let _1 = - let e2 = - let _1 = _1_inlined1 in - let _1 = + let _v : (Parsetree.expression) = let _1 = + let e2 = + let _1 = _1_inlined1 in + let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 17866 "src/ocaml/preprocess/parser_raw.ml" - in - +# 17532 "src/ocaml/preprocess/parser_raw.ml" + in + # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 17871 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_e2_ = _endpos__1_inlined1_ in - let op = - let _1 = +# 17537 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_e2_ = _endpos__1_inlined1_ in + let op = + let _1 = # 5096 "src/ocaml/preprocess/parser_raw.mly" ("*") -# 17879 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 17545 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1323 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 17887 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos_e2_ in - let _symbolstartpos = _startpos_e1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 17553 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos_e2_ in + let _symbolstartpos = _startpos_e1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 3048 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 17896 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 17562 "src/ocaml/preprocess/parser_raw.ml" + + in + # 2951 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 17902 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression)) - in +# 17568 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -17956,51 +17621,50 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_e1_ in let _endpos = _endpos_xs_ in - let _v = - let _1 = - let e2 = - let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in - let _1 = - let _3 = - let xs = - let xs = -# 264 "" + let _v : (Parsetree.expression) = let _1 = + let e2 = + let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in + let _1 = + let _3 = + let xs = + let xs = +# 253 "" ( List.rev xs ) -# 17970 "src/ocaml/preprocess/parser_raw.ml" - in - +# 17634 "src/ocaml/preprocess/parser_raw.ml" + in + # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 17975 "src/ocaml/preprocess/parser_raw.ml" - - in +# 17639 "src/ocaml/preprocess/parser_raw.ml" + in + # 3510 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 17981 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__3_ = _endpos_xs_ in +# 17645 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__3_ = _endpos_xs_ in + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in - + let _1 = _1_inlined1 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 17992 "src/ocaml/preprocess/parser_raw.ml" - - in +# 17656 "src/ocaml/preprocess/parser_raw.ml" + in + # 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 17998 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 17662 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2718 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in @@ -18014,46 +17678,45 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 18018 "src/ocaml/preprocess/parser_raw.ml" - - in +# 17682 "src/ocaml/preprocess/parser_raw.ml" + in + # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 18024 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_e2_ = _endpos_xs_ in - let op = - let _1 = +# 17688 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_e2_ = _endpos_xs_ in + let op = + let _1 = # 5096 "src/ocaml/preprocess/parser_raw.mly" ("*") -# 18032 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 17696 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1323 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 18040 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos_e2_ in - let _symbolstartpos = _startpos_e1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 17704 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos_e2_ in + let _symbolstartpos = _startpos_e1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 3048 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 18049 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 17713 "src/ocaml/preprocess/parser_raw.ml" + + in + # 2951 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 18055 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression)) - in +# 17719 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -18088,52 +17751,50 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_e1_ in let _endpos = _endpos__1_inlined1_ in - let _v = - let _1 = - let e2 = - let _1 = _1_inlined1 in - let _1 = + let _v : (Parsetree.expression) = let _1 = + let e2 = + let _1 = _1_inlined1 in + let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 18099 "src/ocaml/preprocess/parser_raw.ml" - in - +# 17761 "src/ocaml/preprocess/parser_raw.ml" + in + # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 18104 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_e2_ = _endpos__1_inlined1_ in - let op = - let _1 = +# 17766 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_e2_ = _endpos__1_inlined1_ in + let op = + let _1 = # 5097 "src/ocaml/preprocess/parser_raw.mly" ("%") -# 18112 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 17774 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1323 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 18120 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos_e2_ in - let _symbolstartpos = _startpos_e1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 17782 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos_e2_ in + let _symbolstartpos = _startpos_e1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 3048 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 18129 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 17791 "src/ocaml/preprocess/parser_raw.ml" + + in + # 2951 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 18135 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression)) - in +# 17797 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -18189,51 +17850,50 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_e1_ in let _endpos = _endpos_xs_ in - let _v = - let _1 = - let e2 = - let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in - let _1 = - let _3 = - let xs = - let xs = -# 264 "" + let _v : (Parsetree.expression) = let _1 = + let e2 = + let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in + let _1 = + let _3 = + let xs = + let xs = +# 253 "" ( List.rev xs ) -# 18203 "src/ocaml/preprocess/parser_raw.ml" - in - +# 17863 "src/ocaml/preprocess/parser_raw.ml" + in + # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 18208 "src/ocaml/preprocess/parser_raw.ml" - - in +# 17868 "src/ocaml/preprocess/parser_raw.ml" + in + # 3510 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 18214 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__3_ = _endpos_xs_ in +# 17874 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__3_ = _endpos_xs_ in + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in - + let _1 = _1_inlined1 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 18225 "src/ocaml/preprocess/parser_raw.ml" - - in +# 17885 "src/ocaml/preprocess/parser_raw.ml" + in + # 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 18231 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 17891 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2718 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in @@ -18247,46 +17907,45 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 18251 "src/ocaml/preprocess/parser_raw.ml" - - in +# 17911 "src/ocaml/preprocess/parser_raw.ml" + in + # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 18257 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_e2_ = _endpos_xs_ in - let op = - let _1 = +# 17917 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_e2_ = _endpos_xs_ in + let op = + let _1 = # 5097 "src/ocaml/preprocess/parser_raw.mly" ("%") -# 18265 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 17925 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1323 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 18273 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos_e2_ in - let _symbolstartpos = _startpos_e1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 17933 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos_e2_ in + let _symbolstartpos = _startpos_e1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 3048 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 18282 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 17942 "src/ocaml/preprocess/parser_raw.ml" + + in + # 2951 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 18288 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression)) - in +# 17948 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -18321,52 +17980,50 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_e1_ in let _endpos = _endpos__1_inlined1_ in - let _v = - let _1 = - let e2 = - let _1 = _1_inlined1 in - let _1 = + let _v : (Parsetree.expression) = let _1 = + let e2 = + let _1 = _1_inlined1 in + let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 18332 "src/ocaml/preprocess/parser_raw.ml" - in - +# 17990 "src/ocaml/preprocess/parser_raw.ml" + in + # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 18337 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_e2_ = _endpos__1_inlined1_ in - let op = - let _1 = +# 17995 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_e2_ = _endpos__1_inlined1_ in + let op = + let _1 = # 5098 "src/ocaml/preprocess/parser_raw.mly" ("=") -# 18345 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 18003 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1323 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 18353 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos_e2_ in - let _symbolstartpos = _startpos_e1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 18011 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos_e2_ in + let _symbolstartpos = _startpos_e1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 3048 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 18362 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 18020 "src/ocaml/preprocess/parser_raw.ml" + + in + # 2951 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 18368 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression)) - in +# 18026 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -18422,51 +18079,50 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_e1_ in let _endpos = _endpos_xs_ in - let _v = - let _1 = - let e2 = - let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in - let _1 = - let _3 = - let xs = - let xs = -# 264 "" + let _v : (Parsetree.expression) = let _1 = + let e2 = + let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in + let _1 = + let _3 = + let xs = + let xs = +# 253 "" ( List.rev xs ) -# 18436 "src/ocaml/preprocess/parser_raw.ml" - in - +# 18092 "src/ocaml/preprocess/parser_raw.ml" + in + # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 18441 "src/ocaml/preprocess/parser_raw.ml" - - in +# 18097 "src/ocaml/preprocess/parser_raw.ml" + in + # 3510 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 18447 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__3_ = _endpos_xs_ in +# 18103 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__3_ = _endpos_xs_ in + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in - + let _1 = _1_inlined1 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 18458 "src/ocaml/preprocess/parser_raw.ml" - - in +# 18114 "src/ocaml/preprocess/parser_raw.ml" + in + # 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 18464 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 18120 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2718 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in @@ -18480,46 +18136,45 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 18484 "src/ocaml/preprocess/parser_raw.ml" - - in +# 18140 "src/ocaml/preprocess/parser_raw.ml" + in + # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 18490 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_e2_ = _endpos_xs_ in - let op = - let _1 = +# 18146 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_e2_ = _endpos_xs_ in + let op = + let _1 = # 5098 "src/ocaml/preprocess/parser_raw.mly" ("=") -# 18498 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 18154 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1323 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 18506 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos_e2_ in - let _symbolstartpos = _startpos_e1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 18162 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos_e2_ in + let _symbolstartpos = _startpos_e1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 3048 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 18515 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 18171 "src/ocaml/preprocess/parser_raw.ml" + + in + # 2951 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 18521 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression)) - in +# 18177 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -18554,52 +18209,50 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_e1_ in let _endpos = _endpos__1_inlined1_ in - let _v = - let _1 = - let e2 = - let _1 = _1_inlined1 in - let _1 = + let _v : (Parsetree.expression) = let _1 = + let e2 = + let _1 = _1_inlined1 in + let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 18565 "src/ocaml/preprocess/parser_raw.ml" - in - +# 18219 "src/ocaml/preprocess/parser_raw.ml" + in + # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 18570 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_e2_ = _endpos__1_inlined1_ in - let op = - let _1 = +# 18224 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_e2_ = _endpos__1_inlined1_ in + let op = + let _1 = # 5099 "src/ocaml/preprocess/parser_raw.mly" ("<") -# 18578 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 18232 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1323 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 18586 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos_e2_ in - let _symbolstartpos = _startpos_e1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 18240 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos_e2_ in + let _symbolstartpos = _startpos_e1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 3048 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 18595 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 18249 "src/ocaml/preprocess/parser_raw.ml" + + in + # 2951 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 18601 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression)) - in +# 18255 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -18655,51 +18308,50 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_e1_ in let _endpos = _endpos_xs_ in - let _v = - let _1 = - let e2 = - let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in - let _1 = - let _3 = - let xs = - let xs = -# 264 "" + let _v : (Parsetree.expression) = let _1 = + let e2 = + let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in + let _1 = + let _3 = + let xs = + let xs = +# 253 "" ( List.rev xs ) -# 18669 "src/ocaml/preprocess/parser_raw.ml" - in - +# 18321 "src/ocaml/preprocess/parser_raw.ml" + in + # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 18674 "src/ocaml/preprocess/parser_raw.ml" - - in +# 18326 "src/ocaml/preprocess/parser_raw.ml" + in + # 3510 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 18680 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__3_ = _endpos_xs_ in +# 18332 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__3_ = _endpos_xs_ in + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in - + let _1 = _1_inlined1 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 18691 "src/ocaml/preprocess/parser_raw.ml" - - in +# 18343 "src/ocaml/preprocess/parser_raw.ml" + in + # 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 18697 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 18349 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2718 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in @@ -18713,46 +18365,45 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 18717 "src/ocaml/preprocess/parser_raw.ml" - - in +# 18369 "src/ocaml/preprocess/parser_raw.ml" + in + # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 18723 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_e2_ = _endpos_xs_ in - let op = - let _1 = +# 18375 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_e2_ = _endpos_xs_ in + let op = + let _1 = # 5099 "src/ocaml/preprocess/parser_raw.mly" ("<") -# 18731 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 18383 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1323 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 18739 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos_e2_ in - let _symbolstartpos = _startpos_e1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 18391 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos_e2_ in + let _symbolstartpos = _startpos_e1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 3048 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 18748 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 18400 "src/ocaml/preprocess/parser_raw.ml" + + in + # 2951 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 18754 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression)) - in +# 18406 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -18787,52 +18438,50 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_e1_ in let _endpos = _endpos__1_inlined1_ in - let _v = - let _1 = - let e2 = - let _1 = _1_inlined1 in - let _1 = + let _v : (Parsetree.expression) = let _1 = + let e2 = + let _1 = _1_inlined1 in + let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 18798 "src/ocaml/preprocess/parser_raw.ml" - in - +# 18448 "src/ocaml/preprocess/parser_raw.ml" + in + # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 18803 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_e2_ = _endpos__1_inlined1_ in - let op = - let _1 = +# 18453 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_e2_ = _endpos__1_inlined1_ in + let op = + let _1 = # 5100 "src/ocaml/preprocess/parser_raw.mly" (">") -# 18811 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 18461 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1323 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 18819 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos_e2_ in - let _symbolstartpos = _startpos_e1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 18469 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos_e2_ in + let _symbolstartpos = _startpos_e1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 3048 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 18828 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 18478 "src/ocaml/preprocess/parser_raw.ml" + + in + # 2951 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 18834 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression)) - in +# 18484 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -18888,51 +18537,50 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_e1_ in let _endpos = _endpos_xs_ in - let _v = - let _1 = - let e2 = - let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in - let _1 = - let _3 = - let xs = - let xs = -# 264 "" + let _v : (Parsetree.expression) = let _1 = + let e2 = + let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in + let _1 = + let _3 = + let xs = + let xs = +# 253 "" ( List.rev xs ) -# 18902 "src/ocaml/preprocess/parser_raw.ml" - in - +# 18550 "src/ocaml/preprocess/parser_raw.ml" + in + # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 18907 "src/ocaml/preprocess/parser_raw.ml" - - in +# 18555 "src/ocaml/preprocess/parser_raw.ml" + in + # 3510 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 18913 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__3_ = _endpos_xs_ in +# 18561 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__3_ = _endpos_xs_ in + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in - + let _1 = _1_inlined1 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 18924 "src/ocaml/preprocess/parser_raw.ml" - - in +# 18572 "src/ocaml/preprocess/parser_raw.ml" + in + # 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 18930 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 18578 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2718 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in @@ -18946,46 +18594,45 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 18950 "src/ocaml/preprocess/parser_raw.ml" - - in +# 18598 "src/ocaml/preprocess/parser_raw.ml" + in + # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 18956 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_e2_ = _endpos_xs_ in - let op = - let _1 = +# 18604 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_e2_ = _endpos_xs_ in + let op = + let _1 = # 5100 "src/ocaml/preprocess/parser_raw.mly" (">") -# 18964 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 18612 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1323 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 18972 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos_e2_ in - let _symbolstartpos = _startpos_e1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 18620 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos_e2_ in + let _symbolstartpos = _startpos_e1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 3048 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 18981 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 18629 "src/ocaml/preprocess/parser_raw.ml" + + in + # 2951 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 18987 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression)) - in +# 18635 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -19020,52 +18667,50 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_e1_ in let _endpos = _endpos__1_inlined1_ in - let _v = - let _1 = - let e2 = - let _1 = _1_inlined1 in - let _1 = + let _v : (Parsetree.expression) = let _1 = + let e2 = + let _1 = _1_inlined1 in + let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 19031 "src/ocaml/preprocess/parser_raw.ml" - in - +# 18677 "src/ocaml/preprocess/parser_raw.ml" + in + # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 19036 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_e2_ = _endpos__1_inlined1_ in - let op = - let _1 = +# 18682 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_e2_ = _endpos__1_inlined1_ in + let op = + let _1 = # 5101 "src/ocaml/preprocess/parser_raw.mly" ("or") -# 19044 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 18690 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1323 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 19052 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos_e2_ in - let _symbolstartpos = _startpos_e1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 18698 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos_e2_ in + let _symbolstartpos = _startpos_e1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 3048 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 19061 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 18707 "src/ocaml/preprocess/parser_raw.ml" + + in + # 2951 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 19067 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression)) - in +# 18713 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -19121,51 +18766,50 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_e1_ in let _endpos = _endpos_xs_ in - let _v = - let _1 = - let e2 = - let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in - let _1 = - let _3 = - let xs = - let xs = -# 264 "" + let _v : (Parsetree.expression) = let _1 = + let e2 = + let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in + let _1 = + let _3 = + let xs = + let xs = +# 253 "" ( List.rev xs ) -# 19135 "src/ocaml/preprocess/parser_raw.ml" - in - +# 18779 "src/ocaml/preprocess/parser_raw.ml" + in + # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 19140 "src/ocaml/preprocess/parser_raw.ml" - - in +# 18784 "src/ocaml/preprocess/parser_raw.ml" + in + # 3510 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 19146 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__3_ = _endpos_xs_ in +# 18790 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__3_ = _endpos_xs_ in + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in - + let _1 = _1_inlined1 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 19157 "src/ocaml/preprocess/parser_raw.ml" - - in +# 18801 "src/ocaml/preprocess/parser_raw.ml" + in + # 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 19163 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 18807 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2718 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in @@ -19179,46 +18823,45 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 19183 "src/ocaml/preprocess/parser_raw.ml" - - in +# 18827 "src/ocaml/preprocess/parser_raw.ml" + in + # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 19189 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_e2_ = _endpos_xs_ in - let op = - let _1 = +# 18833 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_e2_ = _endpos_xs_ in + let op = + let _1 = # 5101 "src/ocaml/preprocess/parser_raw.mly" ("or") -# 19197 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 18841 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1323 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 19205 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos_e2_ in - let _symbolstartpos = _startpos_e1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 18849 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos_e2_ in + let _symbolstartpos = _startpos_e1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 3048 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 19214 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 18858 "src/ocaml/preprocess/parser_raw.ml" + + in + # 2951 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 19220 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression)) - in +# 18864 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -19253,52 +18896,50 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_e1_ in let _endpos = _endpos__1_inlined1_ in - let _v = - let _1 = - let e2 = - let _1 = _1_inlined1 in - let _1 = + let _v : (Parsetree.expression) = let _1 = + let e2 = + let _1 = _1_inlined1 in + let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 19264 "src/ocaml/preprocess/parser_raw.ml" - in - +# 18906 "src/ocaml/preprocess/parser_raw.ml" + in + # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 19269 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_e2_ = _endpos__1_inlined1_ in - let op = - let _1 = +# 18911 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_e2_ = _endpos__1_inlined1_ in + let op = + let _1 = # 5102 "src/ocaml/preprocess/parser_raw.mly" ("||") -# 19277 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 18919 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1323 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 19285 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos_e2_ in - let _symbolstartpos = _startpos_e1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 18927 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos_e2_ in + let _symbolstartpos = _startpos_e1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 3048 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 19294 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 18936 "src/ocaml/preprocess/parser_raw.ml" + + in + # 2951 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 19300 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression)) - in +# 18942 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -19354,51 +18995,50 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_e1_ in let _endpos = _endpos_xs_ in - let _v = - let _1 = - let e2 = - let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in - let _1 = - let _3 = - let xs = - let xs = -# 264 "" + let _v : (Parsetree.expression) = let _1 = + let e2 = + let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in + let _1 = + let _3 = + let xs = + let xs = +# 253 "" ( List.rev xs ) -# 19368 "src/ocaml/preprocess/parser_raw.ml" - in - +# 19008 "src/ocaml/preprocess/parser_raw.ml" + in + # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 19373 "src/ocaml/preprocess/parser_raw.ml" - - in +# 19013 "src/ocaml/preprocess/parser_raw.ml" + in + # 3510 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 19379 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__3_ = _endpos_xs_ in +# 19019 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__3_ = _endpos_xs_ in + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in - + let _1 = _1_inlined1 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 19390 "src/ocaml/preprocess/parser_raw.ml" - - in +# 19030 "src/ocaml/preprocess/parser_raw.ml" + in + # 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 19396 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 19036 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2718 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in @@ -19412,46 +19052,45 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 19416 "src/ocaml/preprocess/parser_raw.ml" - - in +# 19056 "src/ocaml/preprocess/parser_raw.ml" + in + # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 19422 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_e2_ = _endpos_xs_ in - let op = - let _1 = +# 19062 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_e2_ = _endpos_xs_ in + let op = + let _1 = # 5102 "src/ocaml/preprocess/parser_raw.mly" ("||") -# 19430 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 19070 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1323 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 19438 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos_e2_ in - let _symbolstartpos = _startpos_e1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 19078 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos_e2_ in + let _symbolstartpos = _startpos_e1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 3048 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 19447 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 19087 "src/ocaml/preprocess/parser_raw.ml" + + in + # 2951 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 19453 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression)) - in +# 19093 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -19486,52 +19125,50 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_e1_ in let _endpos = _endpos__1_inlined1_ in - let _v = - let _1 = - let e2 = - let _1 = _1_inlined1 in - let _1 = + let _v : (Parsetree.expression) = let _1 = + let e2 = + let _1 = _1_inlined1 in + let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 19497 "src/ocaml/preprocess/parser_raw.ml" - in - +# 19135 "src/ocaml/preprocess/parser_raw.ml" + in + # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 19502 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_e2_ = _endpos__1_inlined1_ in - let op = - let _1 = +# 19140 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_e2_ = _endpos__1_inlined1_ in + let op = + let _1 = # 5103 "src/ocaml/preprocess/parser_raw.mly" ("&") -# 19510 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 19148 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1323 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 19518 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos_e2_ in - let _symbolstartpos = _startpos_e1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 19156 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos_e2_ in + let _symbolstartpos = _startpos_e1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 3048 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 19527 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 19165 "src/ocaml/preprocess/parser_raw.ml" + + in + # 2951 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 19533 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression)) - in +# 19171 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -19587,51 +19224,50 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_e1_ in let _endpos = _endpos_xs_ in - let _v = - let _1 = - let e2 = - let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in - let _1 = - let _3 = - let xs = - let xs = -# 264 "" + let _v : (Parsetree.expression) = let _1 = + let e2 = + let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in + let _1 = + let _3 = + let xs = + let xs = +# 253 "" ( List.rev xs ) -# 19601 "src/ocaml/preprocess/parser_raw.ml" - in - +# 19237 "src/ocaml/preprocess/parser_raw.ml" + in + # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 19606 "src/ocaml/preprocess/parser_raw.ml" - - in +# 19242 "src/ocaml/preprocess/parser_raw.ml" + in + # 3510 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 19612 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__3_ = _endpos_xs_ in +# 19248 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__3_ = _endpos_xs_ in + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in - + let _1 = _1_inlined1 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 19623 "src/ocaml/preprocess/parser_raw.ml" - - in +# 19259 "src/ocaml/preprocess/parser_raw.ml" + in + # 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 19629 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 19265 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2718 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in @@ -19645,46 +19281,45 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 19649 "src/ocaml/preprocess/parser_raw.ml" - - in +# 19285 "src/ocaml/preprocess/parser_raw.ml" + in + # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 19655 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_e2_ = _endpos_xs_ in - let op = - let _1 = +# 19291 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_e2_ = _endpos_xs_ in + let op = + let _1 = # 5103 "src/ocaml/preprocess/parser_raw.mly" ("&") -# 19663 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 19299 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1323 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 19671 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos_e2_ in - let _symbolstartpos = _startpos_e1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 19307 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos_e2_ in + let _symbolstartpos = _startpos_e1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 3048 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 19680 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 19316 "src/ocaml/preprocess/parser_raw.ml" + + in + # 2951 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 19686 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression)) - in +# 19322 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -19719,52 +19354,50 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_e1_ in let _endpos = _endpos__1_inlined1_ in - let _v = - let _1 = - let e2 = - let _1 = _1_inlined1 in - let _1 = + let _v : (Parsetree.expression) = let _1 = + let e2 = + let _1 = _1_inlined1 in + let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 19730 "src/ocaml/preprocess/parser_raw.ml" - in - +# 19364 "src/ocaml/preprocess/parser_raw.ml" + in + # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 19735 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_e2_ = _endpos__1_inlined1_ in - let op = - let _1 = +# 19369 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_e2_ = _endpos__1_inlined1_ in + let op = + let _1 = # 5104 "src/ocaml/preprocess/parser_raw.mly" ("&&") -# 19743 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 19377 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1323 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 19751 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos_e2_ in - let _symbolstartpos = _startpos_e1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 19385 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos_e2_ in + let _symbolstartpos = _startpos_e1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 3048 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 19760 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 19394 "src/ocaml/preprocess/parser_raw.ml" + + in + # 2951 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 19766 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression)) - in +# 19400 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -19820,51 +19453,50 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_e1_ in let _endpos = _endpos_xs_ in - let _v = - let _1 = - let e2 = - let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in - let _1 = - let _3 = - let xs = - let xs = -# 264 "" + let _v : (Parsetree.expression) = let _1 = + let e2 = + let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in + let _1 = + let _3 = + let xs = + let xs = +# 253 "" ( List.rev xs ) -# 19834 "src/ocaml/preprocess/parser_raw.ml" - in - +# 19466 "src/ocaml/preprocess/parser_raw.ml" + in + # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 19839 "src/ocaml/preprocess/parser_raw.ml" - - in +# 19471 "src/ocaml/preprocess/parser_raw.ml" + in + # 3510 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 19845 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__3_ = _endpos_xs_ in +# 19477 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__3_ = _endpos_xs_ in + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in - + let _1 = _1_inlined1 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 19856 "src/ocaml/preprocess/parser_raw.ml" - - in +# 19488 "src/ocaml/preprocess/parser_raw.ml" + in + # 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 19862 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 19494 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2718 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in @@ -19878,46 +19510,45 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 19882 "src/ocaml/preprocess/parser_raw.ml" - - in +# 19514 "src/ocaml/preprocess/parser_raw.ml" + in + # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 19888 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_e2_ = _endpos_xs_ in - let op = - let _1 = +# 19520 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_e2_ = _endpos_xs_ in + let op = + let _1 = # 5104 "src/ocaml/preprocess/parser_raw.mly" ("&&") -# 19896 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 19528 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1323 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 19904 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos_e2_ in - let _symbolstartpos = _startpos_e1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 19536 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos_e2_ in + let _symbolstartpos = _startpos_e1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 3048 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 19913 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 19545 "src/ocaml/preprocess/parser_raw.ml" + + in + # 2951 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 19919 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression)) - in +# 19551 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -19952,52 +19583,50 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_e1_ in let _endpos = _endpos__1_inlined1_ in - let _v = - let _1 = - let e2 = - let _1 = _1_inlined1 in - let _1 = + let _v : (Parsetree.expression) = let _1 = + let e2 = + let _1 = _1_inlined1 in + let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 19963 "src/ocaml/preprocess/parser_raw.ml" - in - +# 19593 "src/ocaml/preprocess/parser_raw.ml" + in + # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 19968 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_e2_ = _endpos__1_inlined1_ in - let op = - let _1 = +# 19598 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_e2_ = _endpos__1_inlined1_ in + let op = + let _1 = # 5105 "src/ocaml/preprocess/parser_raw.mly" (":=") -# 19976 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 19606 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1323 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 19984 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos_e2_ in - let _symbolstartpos = _startpos_e1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 19614 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos_e2_ in + let _symbolstartpos = _startpos_e1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 3048 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 19993 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 19623 "src/ocaml/preprocess/parser_raw.ml" + + in + # 2951 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 19999 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression)) - in +# 19629 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -20053,51 +19682,50 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_e1_ in let _endpos = _endpos_xs_ in - let _v = - let _1 = - let e2 = - let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in - let _1 = - let _3 = - let xs = - let xs = -# 264 "" + let _v : (Parsetree.expression) = let _1 = + let e2 = + let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in + let _1 = + let _3 = + let xs = + let xs = +# 253 "" ( List.rev xs ) -# 20067 "src/ocaml/preprocess/parser_raw.ml" - in - +# 19695 "src/ocaml/preprocess/parser_raw.ml" + in + # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 20072 "src/ocaml/preprocess/parser_raw.ml" - - in +# 19700 "src/ocaml/preprocess/parser_raw.ml" + in + # 3510 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 20078 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__3_ = _endpos_xs_ in +# 19706 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__3_ = _endpos_xs_ in + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in - + let _1 = _1_inlined1 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 20089 "src/ocaml/preprocess/parser_raw.ml" - - in +# 19717 "src/ocaml/preprocess/parser_raw.ml" + in + # 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 20095 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 19723 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2718 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in @@ -20111,46 +19739,45 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 20115 "src/ocaml/preprocess/parser_raw.ml" - - in +# 19743 "src/ocaml/preprocess/parser_raw.ml" + in + # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 20121 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_e2_ = _endpos_xs_ in - let op = - let _1 = +# 19749 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_e2_ = _endpos_xs_ in + let op = + let _1 = # 5105 "src/ocaml/preprocess/parser_raw.mly" (":=") -# 20129 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 19757 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1323 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 20137 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos_e2_ in - let _symbolstartpos = _startpos_e1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 19765 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos_e2_ in + let _symbolstartpos = _startpos_e1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 3048 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 20146 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 19774 "src/ocaml/preprocess/parser_raw.ml" + + in + # 2951 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 20152 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression)) - in +# 19780 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -20185,16 +19812,14 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in - let _v = - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - ( + let _v : (Parsetree.expression) = let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2953 "src/ocaml/preprocess/parser_raw.mly" ( expr_of_let_bindings ~loc:_sloc _1 (merloc _endpos__2_ _3) ) -# 20196 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression)) - in +# 19822 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -20235,36 +19860,34 @@ module Tables = struct let _1 : ( # 1074 "src/ocaml/preprocess/parser_raw.mly" (string) -# 20239 "src/ocaml/preprocess/parser_raw.ml" +# 19864 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_body_ in - let _v = - let pbop_op = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let _v : (Parsetree.expression) = let pbop_op = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 20252 "src/ocaml/preprocess/parser_raw.ml" - - in - let _startpos_pbop_op_ = _startpos__1_ in - let _endpos = _endpos_body_ in - let _symbolstartpos = _startpos_pbop_op_ in - let _sloc = (_symbolstartpos, _endpos) in - ( +# 19876 "src/ocaml/preprocess/parser_raw.ml" + + in + let _startpos_pbop_op_ = _startpos__1_ in + let _endpos = _endpos_body_ in + let _symbolstartpos = _startpos_pbop_op_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2955 "src/ocaml/preprocess/parser_raw.mly" ( let (pbop_pat, pbop_exp, rev_ands) = bindings in let ands = List.rev rev_ands in let pbop_loc = make_loc _sloc in let let_ = {pbop_op; pbop_pat; pbop_exp; pbop_loc} in mkexp ~loc:_sloc (Pexp_letop{ let_; ands; body}) ) -# 20266 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression)) - in +# 19890 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -20299,32 +19922,30 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined1_ in - let _v = - let _3 = - let _1 = _1_inlined1 in - let _1 = + let _v : (Parsetree.expression) = let _3 = + let _1 = _1_inlined1 in + let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 20309 "src/ocaml/preprocess/parser_raw.ml" - in - +# 19931 "src/ocaml/preprocess/parser_raw.ml" + in + # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 20314 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__3_ = _endpos__1_inlined1_ in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _loc__2_ = (_startpos__2_, _endpos__2_) in - let _sloc = (_symbolstartpos, _endpos) in - ( +# 19936 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__3_ = _endpos__1_inlined1_ in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _loc__2_ = (_startpos__2_, _endpos__2_) in + let _sloc = (_symbolstartpos, _endpos) in + # 2961 "src/ocaml/preprocess/parser_raw.mly" ( mkexp_cons ~loc:_sloc _loc__2_ (ghexp ~loc:_sloc (Pexp_tuple[None, _1; None, (merloc _endpos__2_ _3)])) ) -# 20326 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression)) - in +# 19948 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -20380,50 +20001,49 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_xs_ in - let _v = - let _3 = - let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in - let _1 = - let _3 = - let xs = - let xs = -# 264 "" + let _v : (Parsetree.expression) = let _3 = + let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in + let _1 = + let _3 = + let xs = + let xs = +# 253 "" ( List.rev xs ) -# 20393 "src/ocaml/preprocess/parser_raw.ml" - in - +# 20013 "src/ocaml/preprocess/parser_raw.ml" + in + # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 20398 "src/ocaml/preprocess/parser_raw.ml" - - in +# 20018 "src/ocaml/preprocess/parser_raw.ml" + in + # 3510 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 20404 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__3_ = _endpos_xs_ in +# 20024 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__3_ = _endpos_xs_ in + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in - + let _1 = _1_inlined1 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 20415 "src/ocaml/preprocess/parser_raw.ml" - - in +# 20035 "src/ocaml/preprocess/parser_raw.ml" + in + # 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 20421 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 20041 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2718 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in @@ -20437,27 +20057,26 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 20441 "src/ocaml/preprocess/parser_raw.ml" - - in +# 20061 "src/ocaml/preprocess/parser_raw.ml" + in + # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 20447 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__3_ = _endpos_xs_ in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _loc__2_ = (_startpos__2_, _endpos__2_) in - let _sloc = (_symbolstartpos, _endpos) in - ( +# 20067 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__3_ = _endpos_xs_ in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _loc__2_ = (_startpos__2_, _endpos__2_) in + let _sloc = (_symbolstartpos, _endpos) in + # 2961 "src/ocaml/preprocess/parser_raw.mly" ( mkexp_cons ~loc:_sloc _loc__2_ (ghexp ~loc:_sloc (Pexp_tuple[None, _1; None, (merloc _endpos__2_ _3)])) ) -# 20459 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression)) - in +# 20079 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -20491,50 +20110,48 @@ module Tables = struct let _1 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 20495 "src/ocaml/preprocess/parser_raw.ml" +# 20114 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined1_ in - let _v = - let _3 = - let _1 = _1_inlined1 in - let _1 = + let _v : (Parsetree.expression) = let _3 = + let _1 = _1_inlined1 in + let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 20506 "src/ocaml/preprocess/parser_raw.ml" - in - +# 20124 "src/ocaml/preprocess/parser_raw.ml" + in + # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 20511 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__3_ = _endpos__1_inlined1_ in - let _1 = - let _1 = +# 20129 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__3_ = _endpos__1_inlined1_ in + let _1 = + let _1 = # 5010 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 20519 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 1296 "src/ocaml/preprocess/parser_raw.mly" - ( mkrhs _1 _sloc ) -# 20527 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__3_ in +# 20137 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in - ( + +# 1296 "src/ocaml/preprocess/parser_raw.mly" + ( mkrhs _1 _sloc ) +# 20145 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2964 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (Pexp_setinstvar(_1, _3)) ) -# 20536 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression)) - in +# 20154 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -20589,55 +20206,54 @@ module Tables = struct let _1 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 20593 "src/ocaml/preprocess/parser_raw.ml" +# 20210 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_xs_ in - let _v = - let _3 = - let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in - let _1 = - let _3 = - let xs = - let xs = -# 264 "" + let _v : (Parsetree.expression) = let _3 = + let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in + let _1 = + let _3 = + let xs = + let xs = +# 253 "" ( List.rev xs ) -# 20607 "src/ocaml/preprocess/parser_raw.ml" - in - +# 20223 "src/ocaml/preprocess/parser_raw.ml" + in + # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 20612 "src/ocaml/preprocess/parser_raw.ml" - - in +# 20228 "src/ocaml/preprocess/parser_raw.ml" + in + # 3510 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 20618 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__3_ = _endpos_xs_ in +# 20234 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__3_ = _endpos_xs_ in + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in - + let _1 = _1_inlined1 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 20629 "src/ocaml/preprocess/parser_raw.ml" - - in +# 20245 "src/ocaml/preprocess/parser_raw.ml" + in + # 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 20635 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 20251 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2718 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in @@ -20651,40 +20267,39 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 20655 "src/ocaml/preprocess/parser_raw.ml" - - in +# 20271 "src/ocaml/preprocess/parser_raw.ml" + in + # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 20661 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__3_ = _endpos_xs_ in - let _1 = - let _1 = +# 20277 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__3_ = _endpos_xs_ in + let _1 = + let _1 = # 5010 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 20669 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 1296 "src/ocaml/preprocess/parser_raw.mly" - ( mkrhs _1 _sloc ) -# 20677 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__3_ in +# 20285 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in - ( + +# 1296 "src/ocaml/preprocess/parser_raw.mly" + ( mkrhs _1 _sloc ) +# 20293 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2964 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (Pexp_setinstvar(_1, _3)) ) -# 20686 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression)) - in +# 20302 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -20733,41 +20348,39 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined2_ in - let _v = - let _5 = - let _1 = _1_inlined2 in - let _1 = + let _v : (Parsetree.expression) = let _5 = + let _1 = _1_inlined2 in + let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 20743 "src/ocaml/preprocess/parser_raw.ml" - in - +# 20357 "src/ocaml/preprocess/parser_raw.ml" + in + # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 20748 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__5_ = _endpos__1_inlined2_ in - let _3 = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 1296 "src/ocaml/preprocess/parser_raw.mly" - ( mkrhs _1 _sloc ) -# 20760 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__5_ in +# 20362 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__5_ = _endpos__1_inlined2_ in + let _3 = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in + let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in - ( + +# 1296 "src/ocaml/preprocess/parser_raw.mly" + ( mkrhs _1 _sloc ) +# 20374 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__5_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2966 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (Pexp_setfield(_1, _3, _5)) ) -# 20769 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression)) - in +# 20383 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -20837,50 +20450,49 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_xs_ in - let _v = - let _5 = - let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined2_, _1_inlined4, _1_inlined3) in - let _1 = - let _3 = - let xs = - let xs = -# 264 "" + let _v : (Parsetree.expression) = let _5 = + let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined2_, _1_inlined4, _1_inlined3) in + let _1 = + let _3 = + let xs = + let xs = +# 253 "" ( List.rev xs ) -# 20850 "src/ocaml/preprocess/parser_raw.ml" - in - +# 20462 "src/ocaml/preprocess/parser_raw.ml" + in + # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 20855 "src/ocaml/preprocess/parser_raw.ml" - - in +# 20467 "src/ocaml/preprocess/parser_raw.ml" + in + # 3510 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 20861 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__3_ = _endpos_xs_ in +# 20473 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__3_ = _endpos_xs_ in + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in - + let _1 = _1_inlined1 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 20872 "src/ocaml/preprocess/parser_raw.ml" - - in +# 20484 "src/ocaml/preprocess/parser_raw.ml" + in + # 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 20878 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 20490 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2718 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in @@ -20894,36 +20506,35 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 20898 "src/ocaml/preprocess/parser_raw.ml" - - in +# 20510 "src/ocaml/preprocess/parser_raw.ml" + in + # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 20904 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__5_ = _endpos_xs_ in - let _3 = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 1296 "src/ocaml/preprocess/parser_raw.mly" - ( mkrhs _1 _sloc ) -# 20916 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__5_ in +# 20516 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__5_ = _endpos_xs_ in + let _3 = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in + let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in - ( + +# 1296 "src/ocaml/preprocess/parser_raw.mly" + ( mkrhs _1 _sloc ) +# 20528 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__5_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2966 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (Pexp_setfield(_1, _3, _5)) ) -# 20925 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression)) - in +# 20537 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -20986,44 +20597,42 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_array_ in let _endpos = _endpos__1_inlined1_ in - let _v = - let _1 = - let r = - let v = - let _1 = _1_inlined1 in - let _1 = + let _v : (Parsetree.expression) = let _1 = + let r = + let v = + let _1 = _1_inlined1 in + let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 20998 "src/ocaml/preprocess/parser_raw.ml" - in - +# 20608 "src/ocaml/preprocess/parser_raw.ml" + in + # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 21003 "src/ocaml/preprocess/parser_raw.ml" - - in +# 20613 "src/ocaml/preprocess/parser_raw.ml" + in + # 2967 "src/ocaml/preprocess/parser_raw.mly" (Some v) -# 21009 "src/ocaml/preprocess/parser_raw.ml" - - in +# 20619 "src/ocaml/preprocess/parser_raw.ml" + in + # 2903 "src/ocaml/preprocess/parser_raw.mly" ( array, d, Paren, i, r ) -# 21015 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos_array_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - ( +# 20625 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos_array_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2968 "src/ocaml/preprocess/parser_raw.mly" ( mk_indexop_expr builtin_indexing_operators ~loc:_sloc _1 ) -# 21025 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression)) - in +# 20635 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -21107,52 +20716,51 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_array_ in let _endpos = _endpos_xs_ in - let _v = - let _1 = - let r = - let v = - let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in - let _1 = - let _3 = - let xs = - let xs = -# 264 "" + let _v : (Parsetree.expression) = let _1 = + let r = + let v = + let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in + let _1 = + let _3 = + let xs = + let xs = +# 253 "" ( List.rev xs ) -# 21122 "src/ocaml/preprocess/parser_raw.ml" - in - +# 20730 "src/ocaml/preprocess/parser_raw.ml" + in + # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 21127 "src/ocaml/preprocess/parser_raw.ml" - - in +# 20735 "src/ocaml/preprocess/parser_raw.ml" + in + # 3510 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 21133 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__3_ = _endpos_xs_ in +# 20741 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__3_ = _endpos_xs_ in + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in - + let _1 = _1_inlined1 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 21144 "src/ocaml/preprocess/parser_raw.ml" - - in +# 20752 "src/ocaml/preprocess/parser_raw.ml" + in + # 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 21150 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 20758 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2718 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in @@ -21166,37 +20774,36 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 21170 "src/ocaml/preprocess/parser_raw.ml" - - in +# 20778 "src/ocaml/preprocess/parser_raw.ml" + in + # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 21176 "src/ocaml/preprocess/parser_raw.ml" - - in +# 20784 "src/ocaml/preprocess/parser_raw.ml" + in + # 2967 "src/ocaml/preprocess/parser_raw.mly" (Some v) -# 21182 "src/ocaml/preprocess/parser_raw.ml" - - in +# 20790 "src/ocaml/preprocess/parser_raw.ml" + in + # 2903 "src/ocaml/preprocess/parser_raw.mly" ( array, d, Paren, i, r ) -# 21188 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos_xs_, _startpos_array_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - ( +# 20796 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos_xs_, _startpos_array_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2968 "src/ocaml/preprocess/parser_raw.mly" ( mk_indexop_expr builtin_indexing_operators ~loc:_sloc _1 ) -# 21198 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression)) - in +# 20806 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -21259,44 +20866,42 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_array_ in let _endpos = _endpos__1_inlined1_ in - let _v = - let _1 = - let r = - let v = - let _1 = _1_inlined1 in - let _1 = + let _v : (Parsetree.expression) = let _1 = + let r = + let v = + let _1 = _1_inlined1 in + let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 21271 "src/ocaml/preprocess/parser_raw.ml" - in - +# 20877 "src/ocaml/preprocess/parser_raw.ml" + in + # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 21276 "src/ocaml/preprocess/parser_raw.ml" - - in +# 20882 "src/ocaml/preprocess/parser_raw.ml" + in + # 2967 "src/ocaml/preprocess/parser_raw.mly" (Some v) -# 21282 "src/ocaml/preprocess/parser_raw.ml" - - in +# 20888 "src/ocaml/preprocess/parser_raw.ml" + in + # 2905 "src/ocaml/preprocess/parser_raw.mly" ( array, d, Brace, i, r ) -# 21288 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos_array_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - ( +# 20894 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos_array_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2968 "src/ocaml/preprocess/parser_raw.mly" ( mk_indexop_expr builtin_indexing_operators ~loc:_sloc _1 ) -# 21298 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression)) - in +# 20904 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -21380,52 +20985,51 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_array_ in let _endpos = _endpos_xs_ in - let _v = - let _1 = - let r = - let v = - let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in - let _1 = - let _3 = - let xs = - let xs = -# 264 "" + let _v : (Parsetree.expression) = let _1 = + let r = + let v = + let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in + let _1 = + let _3 = + let xs = + let xs = +# 253 "" ( List.rev xs ) -# 21395 "src/ocaml/preprocess/parser_raw.ml" - in - +# 20999 "src/ocaml/preprocess/parser_raw.ml" + in + # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 21400 "src/ocaml/preprocess/parser_raw.ml" - - in +# 21004 "src/ocaml/preprocess/parser_raw.ml" + in + # 3510 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 21406 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__3_ = _endpos_xs_ in +# 21010 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__3_ = _endpos_xs_ in + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in - + let _1 = _1_inlined1 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 21417 "src/ocaml/preprocess/parser_raw.ml" - - in +# 21021 "src/ocaml/preprocess/parser_raw.ml" + in + # 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 21423 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 21027 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2718 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in @@ -21439,37 +21043,36 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 21443 "src/ocaml/preprocess/parser_raw.ml" - - in +# 21047 "src/ocaml/preprocess/parser_raw.ml" + in + # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 21449 "src/ocaml/preprocess/parser_raw.ml" - - in +# 21053 "src/ocaml/preprocess/parser_raw.ml" + in + # 2967 "src/ocaml/preprocess/parser_raw.mly" (Some v) -# 21455 "src/ocaml/preprocess/parser_raw.ml" - - in +# 21059 "src/ocaml/preprocess/parser_raw.ml" + in + # 2905 "src/ocaml/preprocess/parser_raw.mly" ( array, d, Brace, i, r ) -# 21461 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos_xs_, _startpos_array_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - ( +# 21065 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos_xs_, _startpos_array_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2968 "src/ocaml/preprocess/parser_raw.mly" ( mk_indexop_expr builtin_indexing_operators ~loc:_sloc _1 ) -# 21471 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression)) - in +# 21075 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -21532,44 +21135,42 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_array_ in let _endpos = _endpos__1_inlined1_ in - let _v = - let _1 = - let r = - let v = - let _1 = _1_inlined1 in - let _1 = + let _v : (Parsetree.expression) = let _1 = + let r = + let v = + let _1 = _1_inlined1 in + let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 21544 "src/ocaml/preprocess/parser_raw.ml" - in - +# 21146 "src/ocaml/preprocess/parser_raw.ml" + in + # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 21549 "src/ocaml/preprocess/parser_raw.ml" - - in +# 21151 "src/ocaml/preprocess/parser_raw.ml" + in + # 2967 "src/ocaml/preprocess/parser_raw.mly" (Some v) -# 21555 "src/ocaml/preprocess/parser_raw.ml" - - in +# 21157 "src/ocaml/preprocess/parser_raw.ml" + in + # 2907 "src/ocaml/preprocess/parser_raw.mly" ( array, d, Bracket, i, r ) -# 21561 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos_array_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - ( +# 21163 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos_array_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2968 "src/ocaml/preprocess/parser_raw.mly" ( mk_indexop_expr builtin_indexing_operators ~loc:_sloc _1 ) -# 21571 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression)) - in +# 21173 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -21653,52 +21254,51 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_array_ in let _endpos = _endpos_xs_ in - let _v = - let _1 = - let r = - let v = - let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in - let _1 = - let _3 = - let xs = - let xs = -# 264 "" + let _v : (Parsetree.expression) = let _1 = + let r = + let v = + let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in + let _1 = + let _3 = + let xs = + let xs = +# 253 "" ( List.rev xs ) -# 21668 "src/ocaml/preprocess/parser_raw.ml" - in - +# 21268 "src/ocaml/preprocess/parser_raw.ml" + in + # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 21673 "src/ocaml/preprocess/parser_raw.ml" - - in +# 21273 "src/ocaml/preprocess/parser_raw.ml" + in + # 3510 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 21679 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__3_ = _endpos_xs_ in +# 21279 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__3_ = _endpos_xs_ in + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in - + let _1 = _1_inlined1 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 21690 "src/ocaml/preprocess/parser_raw.ml" - - in +# 21290 "src/ocaml/preprocess/parser_raw.ml" + in + # 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 21696 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 21296 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2718 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in @@ -21712,37 +21312,36 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 21716 "src/ocaml/preprocess/parser_raw.ml" - - in +# 21316 "src/ocaml/preprocess/parser_raw.ml" + in + # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 21722 "src/ocaml/preprocess/parser_raw.ml" - - in +# 21322 "src/ocaml/preprocess/parser_raw.ml" + in + # 2967 "src/ocaml/preprocess/parser_raw.mly" (Some v) -# 21728 "src/ocaml/preprocess/parser_raw.ml" - - in +# 21328 "src/ocaml/preprocess/parser_raw.ml" + in + # 2907 "src/ocaml/preprocess/parser_raw.mly" ( array, d, Bracket, i, r ) -# 21734 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos_xs_, _startpos_array_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - ( +# 21334 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos_xs_, _startpos_array_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2968 "src/ocaml/preprocess/parser_raw.mly" ( mk_indexop_expr builtin_indexing_operators ~loc:_sloc _1 ) -# 21744 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression)) - in +# 21344 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -21803,67 +21402,65 @@ module Tables = struct let _2 : ( # 1073 "src/ocaml/preprocess/parser_raw.mly" (string) -# 21807 "src/ocaml/preprocess/parser_raw.ml" +# 21406 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _2 in let array : (Parsetree.expression) = Obj.magic array in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_array_ in let _endpos = _endpos__1_inlined1_ in - let _v = - let _1 = - let r = - let v = - let _1 = _1_inlined1 in - let _1 = + let _v : (Parsetree.expression) = let _1 = + let r = + let v = + let _1 = _1_inlined1 in + let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 21821 "src/ocaml/preprocess/parser_raw.ml" - in - +# 21419 "src/ocaml/preprocess/parser_raw.ml" + in + # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 21826 "src/ocaml/preprocess/parser_raw.ml" - - in +# 21424 "src/ocaml/preprocess/parser_raw.ml" + in + # 2969 "src/ocaml/preprocess/parser_raw.mly" (Some v) -# 21832 "src/ocaml/preprocess/parser_raw.ml" - - in - let i = +# 21430 "src/ocaml/preprocess/parser_raw.ml" + + in + let i = # 3674 "src/ocaml/preprocess/parser_raw.mly" ( es ) -# 21838 "src/ocaml/preprocess/parser_raw.ml" - in - let d = - let _1 = -# 123 "" +# 21436 "src/ocaml/preprocess/parser_raw.ml" + in + let d = + let _1 = +# 124 "" ( None ) -# 21844 "src/ocaml/preprocess/parser_raw.ml" - in - +# 21442 "src/ocaml/preprocess/parser_raw.ml" + in + # 2919 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 21849 "src/ocaml/preprocess/parser_raw.ml" - - in +# 21447 "src/ocaml/preprocess/parser_raw.ml" + in + # 2903 "src/ocaml/preprocess/parser_raw.mly" ( array, d, Paren, i, r ) -# 21855 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos_array_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - ( +# 21453 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos_array_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2970 "src/ocaml/preprocess/parser_raw.mly" ( mk_indexop_expr user_indexing_operators ~loc:_sloc _1 ) -# 21865 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression)) - in +# 21463 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -21945,58 +21542,57 @@ module Tables = struct let _2 : ( # 1073 "src/ocaml/preprocess/parser_raw.mly" (string) -# 21949 "src/ocaml/preprocess/parser_raw.ml" +# 21546 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _2 in let array : (Parsetree.expression) = Obj.magic array in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_array_ in let _endpos = _endpos_xs_ in - let _v = - let _1 = - let r = - let v = - let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in - let _1 = - let _3 = - let xs = - let xs = -# 264 "" + let _v : (Parsetree.expression) = let _1 = + let r = + let v = + let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in + let _1 = + let _3 = + let xs = + let xs = +# 253 "" ( List.rev xs ) -# 21966 "src/ocaml/preprocess/parser_raw.ml" - in - +# 21562 "src/ocaml/preprocess/parser_raw.ml" + in + # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 21971 "src/ocaml/preprocess/parser_raw.ml" - - in +# 21567 "src/ocaml/preprocess/parser_raw.ml" + in + # 3510 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 21977 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__3_ = _endpos_xs_ in +# 21573 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__3_ = _endpos_xs_ in + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in - + let _1 = _1_inlined1 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 21988 "src/ocaml/preprocess/parser_raw.ml" - - in +# 21584 "src/ocaml/preprocess/parser_raw.ml" + in + # 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 21994 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 21590 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2718 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in @@ -22010,54 +21606,53 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 22014 "src/ocaml/preprocess/parser_raw.ml" - - in +# 21610 "src/ocaml/preprocess/parser_raw.ml" + in + # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 22020 "src/ocaml/preprocess/parser_raw.ml" - - in +# 21616 "src/ocaml/preprocess/parser_raw.ml" + in + # 2969 "src/ocaml/preprocess/parser_raw.mly" (Some v) -# 22026 "src/ocaml/preprocess/parser_raw.ml" - - in - let i = +# 21622 "src/ocaml/preprocess/parser_raw.ml" + + in + let i = # 3674 "src/ocaml/preprocess/parser_raw.mly" ( es ) -# 22032 "src/ocaml/preprocess/parser_raw.ml" - in - let d = - let _1 = -# 123 "" +# 21628 "src/ocaml/preprocess/parser_raw.ml" + in + let d = + let _1 = +# 124 "" ( None ) -# 22038 "src/ocaml/preprocess/parser_raw.ml" - in - +# 21634 "src/ocaml/preprocess/parser_raw.ml" + in + # 2919 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 22043 "src/ocaml/preprocess/parser_raw.ml" - - in +# 21639 "src/ocaml/preprocess/parser_raw.ml" + in + # 2903 "src/ocaml/preprocess/parser_raw.mly" ( array, d, Paren, i, r ) -# 22049 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos_xs_, _startpos_array_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - ( +# 21645 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos_xs_, _startpos_array_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2970 "src/ocaml/preprocess/parser_raw.mly" ( mk_indexop_expr user_indexing_operators ~loc:_sloc _1 ) -# 22059 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression)) - in +# 21655 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -22130,7 +21725,7 @@ module Tables = struct let _2 : ( # 1073 "src/ocaml/preprocess/parser_raw.mly" (string) -# 22134 "src/ocaml/preprocess/parser_raw.ml" +# 21729 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _2 in let _2_inlined1 : (Longident.t) = Obj.magic _2_inlined1 in let _1 : unit = Obj.magic _1 in @@ -22138,70 +21733,68 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_array_ in let _endpos = _endpos__1_inlined2_ in - let _v = - let _1 = - let r = - let _1_inlined1 = _1_inlined2 in - let v = - let _1 = _1_inlined1 in - let _1 = + let _v : (Parsetree.expression) = let _1 = + let r = + let _1_inlined1 = _1_inlined2 in + let v = + let _1 = _1_inlined1 in + let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 22151 "src/ocaml/preprocess/parser_raw.ml" - in - +# 21745 "src/ocaml/preprocess/parser_raw.ml" + in + # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 22156 "src/ocaml/preprocess/parser_raw.ml" - - in +# 21750 "src/ocaml/preprocess/parser_raw.ml" + in + # 2969 "src/ocaml/preprocess/parser_raw.mly" (Some v) -# 22162 "src/ocaml/preprocess/parser_raw.ml" - - in - let i = +# 21756 "src/ocaml/preprocess/parser_raw.ml" + + in + let i = # 3674 "src/ocaml/preprocess/parser_raw.mly" ( es ) -# 22168 "src/ocaml/preprocess/parser_raw.ml" - in - let d = - let _1 = - let _2 = _2_inlined1 in - let x = +# 21762 "src/ocaml/preprocess/parser_raw.ml" + in + let d = + let _1 = + let _2 = _2_inlined1 in + let x = # 2919 "src/ocaml/preprocess/parser_raw.mly" (_2) -# 22176 "src/ocaml/preprocess/parser_raw.ml" - in - +# 21770 "src/ocaml/preprocess/parser_raw.ml" + in + # 126 "" ( Some x ) -# 22181 "src/ocaml/preprocess/parser_raw.ml" - - in +# 21775 "src/ocaml/preprocess/parser_raw.ml" + in + # 2919 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 22187 "src/ocaml/preprocess/parser_raw.ml" - - in +# 21781 "src/ocaml/preprocess/parser_raw.ml" + in + # 2903 "src/ocaml/preprocess/parser_raw.mly" ( array, d, Paren, i, r ) -# 22193 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined2_, _startpos_array_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - ( +# 21787 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined2_, _startpos_array_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2970 "src/ocaml/preprocess/parser_raw.mly" ( mk_indexop_expr user_indexing_operators ~loc:_sloc _1 ) -# 22203 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression)) - in +# 21797 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -22295,7 +21888,7 @@ module Tables = struct let _2 : ( # 1073 "src/ocaml/preprocess/parser_raw.mly" (string) -# 22299 "src/ocaml/preprocess/parser_raw.ml" +# 21892 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _2 in let _2_inlined1 : (Longident.t) = Obj.magic _2_inlined1 in let _1 : unit = Obj.magic _1 in @@ -22303,53 +21896,52 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_array_ in let _endpos = _endpos_xs_ in - let _v = - let _1 = - let r = - let (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) = (_startpos__1_inlined2_, _1_inlined4, _1_inlined3) in - let v = - let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in - let _1 = - let _3 = - let xs = - let xs = -# 264 "" + let _v : (Parsetree.expression) = let _1 = + let r = + let (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) = (_startpos__1_inlined2_, _1_inlined4, _1_inlined3) in + let v = + let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in + let _1 = + let _3 = + let xs = + let xs = +# 253 "" ( List.rev xs ) -# 22319 "src/ocaml/preprocess/parser_raw.ml" - in - +# 21911 "src/ocaml/preprocess/parser_raw.ml" + in + # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 22324 "src/ocaml/preprocess/parser_raw.ml" - - in +# 21916 "src/ocaml/preprocess/parser_raw.ml" + in + # 3510 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 22330 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__3_ = _endpos_xs_ in +# 21922 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__3_ = _endpos_xs_ in + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in - + let _1 = _1_inlined1 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 22341 "src/ocaml/preprocess/parser_raw.ml" - - in +# 21933 "src/ocaml/preprocess/parser_raw.ml" + in + # 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 22347 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 21939 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2718 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in @@ -22363,62 +21955,61 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 22367 "src/ocaml/preprocess/parser_raw.ml" - - in +# 21959 "src/ocaml/preprocess/parser_raw.ml" + in + # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 22373 "src/ocaml/preprocess/parser_raw.ml" - - in +# 21965 "src/ocaml/preprocess/parser_raw.ml" + in + # 2969 "src/ocaml/preprocess/parser_raw.mly" (Some v) -# 22379 "src/ocaml/preprocess/parser_raw.ml" - - in - let i = +# 21971 "src/ocaml/preprocess/parser_raw.ml" + + in + let i = # 3674 "src/ocaml/preprocess/parser_raw.mly" ( es ) -# 22385 "src/ocaml/preprocess/parser_raw.ml" - in - let d = - let _1 = - let _2 = _2_inlined1 in - let x = +# 21977 "src/ocaml/preprocess/parser_raw.ml" + in + let d = + let _1 = + let _2 = _2_inlined1 in + let x = # 2919 "src/ocaml/preprocess/parser_raw.mly" (_2) -# 22393 "src/ocaml/preprocess/parser_raw.ml" - in - +# 21985 "src/ocaml/preprocess/parser_raw.ml" + in + # 126 "" ( Some x ) -# 22398 "src/ocaml/preprocess/parser_raw.ml" - - in +# 21990 "src/ocaml/preprocess/parser_raw.ml" + in + # 2919 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 22404 "src/ocaml/preprocess/parser_raw.ml" - - in +# 21996 "src/ocaml/preprocess/parser_raw.ml" + in + # 2903 "src/ocaml/preprocess/parser_raw.mly" ( array, d, Paren, i, r ) -# 22410 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos_xs_, _startpos_array_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - ( +# 22002 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos_xs_, _startpos_array_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2970 "src/ocaml/preprocess/parser_raw.mly" ( mk_indexop_expr user_indexing_operators ~loc:_sloc _1 ) -# 22420 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression)) - in +# 22012 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -22479,67 +22070,65 @@ module Tables = struct let _2 : ( # 1073 "src/ocaml/preprocess/parser_raw.mly" (string) -# 22483 "src/ocaml/preprocess/parser_raw.ml" +# 22074 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _2 in let array : (Parsetree.expression) = Obj.magic array in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_array_ in let _endpos = _endpos__1_inlined1_ in - let _v = - let _1 = - let r = - let v = - let _1 = _1_inlined1 in - let _1 = + let _v : (Parsetree.expression) = let _1 = + let r = + let v = + let _1 = _1_inlined1 in + let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 22497 "src/ocaml/preprocess/parser_raw.ml" - in - +# 22087 "src/ocaml/preprocess/parser_raw.ml" + in + # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 22502 "src/ocaml/preprocess/parser_raw.ml" - - in +# 22092 "src/ocaml/preprocess/parser_raw.ml" + in + # 2969 "src/ocaml/preprocess/parser_raw.mly" (Some v) -# 22508 "src/ocaml/preprocess/parser_raw.ml" - - in - let i = +# 22098 "src/ocaml/preprocess/parser_raw.ml" + + in + let i = # 3674 "src/ocaml/preprocess/parser_raw.mly" ( es ) -# 22514 "src/ocaml/preprocess/parser_raw.ml" - in - let d = - let _1 = -# 123 "" +# 22104 "src/ocaml/preprocess/parser_raw.ml" + in + let d = + let _1 = +# 124 "" ( None ) -# 22520 "src/ocaml/preprocess/parser_raw.ml" - in - +# 22110 "src/ocaml/preprocess/parser_raw.ml" + in + # 2919 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 22525 "src/ocaml/preprocess/parser_raw.ml" - - in +# 22115 "src/ocaml/preprocess/parser_raw.ml" + in + # 2905 "src/ocaml/preprocess/parser_raw.mly" ( array, d, Brace, i, r ) -# 22531 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos_array_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - ( +# 22121 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos_array_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2970 "src/ocaml/preprocess/parser_raw.mly" ( mk_indexop_expr user_indexing_operators ~loc:_sloc _1 ) -# 22541 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression)) - in +# 22131 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -22621,58 +22210,57 @@ module Tables = struct let _2 : ( # 1073 "src/ocaml/preprocess/parser_raw.mly" (string) -# 22625 "src/ocaml/preprocess/parser_raw.ml" +# 22214 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _2 in let array : (Parsetree.expression) = Obj.magic array in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_array_ in let _endpos = _endpos_xs_ in - let _v = - let _1 = - let r = - let v = - let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in - let _1 = - let _3 = - let xs = - let xs = -# 264 "" + let _v : (Parsetree.expression) = let _1 = + let r = + let v = + let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in + let _1 = + let _3 = + let xs = + let xs = +# 253 "" ( List.rev xs ) -# 22642 "src/ocaml/preprocess/parser_raw.ml" - in - +# 22230 "src/ocaml/preprocess/parser_raw.ml" + in + # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 22647 "src/ocaml/preprocess/parser_raw.ml" - - in +# 22235 "src/ocaml/preprocess/parser_raw.ml" + in + # 3510 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 22653 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__3_ = _endpos_xs_ in +# 22241 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__3_ = _endpos_xs_ in + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in - + let _1 = _1_inlined1 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 22664 "src/ocaml/preprocess/parser_raw.ml" - - in +# 22252 "src/ocaml/preprocess/parser_raw.ml" + in + # 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 22670 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 22258 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2718 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in @@ -22686,54 +22274,53 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 22690 "src/ocaml/preprocess/parser_raw.ml" - - in +# 22278 "src/ocaml/preprocess/parser_raw.ml" + in + # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 22696 "src/ocaml/preprocess/parser_raw.ml" - - in +# 22284 "src/ocaml/preprocess/parser_raw.ml" + in + # 2969 "src/ocaml/preprocess/parser_raw.mly" (Some v) -# 22702 "src/ocaml/preprocess/parser_raw.ml" - - in - let i = +# 22290 "src/ocaml/preprocess/parser_raw.ml" + + in + let i = # 3674 "src/ocaml/preprocess/parser_raw.mly" ( es ) -# 22708 "src/ocaml/preprocess/parser_raw.ml" - in - let d = - let _1 = -# 123 "" +# 22296 "src/ocaml/preprocess/parser_raw.ml" + in + let d = + let _1 = +# 124 "" ( None ) -# 22714 "src/ocaml/preprocess/parser_raw.ml" - in - +# 22302 "src/ocaml/preprocess/parser_raw.ml" + in + # 2919 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 22719 "src/ocaml/preprocess/parser_raw.ml" - - in +# 22307 "src/ocaml/preprocess/parser_raw.ml" + in + # 2905 "src/ocaml/preprocess/parser_raw.mly" ( array, d, Brace, i, r ) -# 22725 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos_xs_, _startpos_array_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - ( +# 22313 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos_xs_, _startpos_array_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2970 "src/ocaml/preprocess/parser_raw.mly" ( mk_indexop_expr user_indexing_operators ~loc:_sloc _1 ) -# 22735 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression)) - in +# 22323 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -22806,7 +22393,7 @@ module Tables = struct let _2 : ( # 1073 "src/ocaml/preprocess/parser_raw.mly" (string) -# 22810 "src/ocaml/preprocess/parser_raw.ml" +# 22397 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _2 in let _2_inlined1 : (Longident.t) = Obj.magic _2_inlined1 in let _1 : unit = Obj.magic _1 in @@ -22814,70 +22401,68 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_array_ in let _endpos = _endpos__1_inlined2_ in - let _v = - let _1 = - let r = - let _1_inlined1 = _1_inlined2 in - let v = - let _1 = _1_inlined1 in - let _1 = + let _v : (Parsetree.expression) = let _1 = + let r = + let _1_inlined1 = _1_inlined2 in + let v = + let _1 = _1_inlined1 in + let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 22827 "src/ocaml/preprocess/parser_raw.ml" - in - +# 22413 "src/ocaml/preprocess/parser_raw.ml" + in + # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 22832 "src/ocaml/preprocess/parser_raw.ml" - - in +# 22418 "src/ocaml/preprocess/parser_raw.ml" + in + # 2969 "src/ocaml/preprocess/parser_raw.mly" (Some v) -# 22838 "src/ocaml/preprocess/parser_raw.ml" - - in - let i = +# 22424 "src/ocaml/preprocess/parser_raw.ml" + + in + let i = # 3674 "src/ocaml/preprocess/parser_raw.mly" ( es ) -# 22844 "src/ocaml/preprocess/parser_raw.ml" - in - let d = - let _1 = - let _2 = _2_inlined1 in - let x = +# 22430 "src/ocaml/preprocess/parser_raw.ml" + in + let d = + let _1 = + let _2 = _2_inlined1 in + let x = # 2919 "src/ocaml/preprocess/parser_raw.mly" (_2) -# 22852 "src/ocaml/preprocess/parser_raw.ml" - in - +# 22438 "src/ocaml/preprocess/parser_raw.ml" + in + # 126 "" ( Some x ) -# 22857 "src/ocaml/preprocess/parser_raw.ml" - - in +# 22443 "src/ocaml/preprocess/parser_raw.ml" + in + # 2919 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 22863 "src/ocaml/preprocess/parser_raw.ml" - - in +# 22449 "src/ocaml/preprocess/parser_raw.ml" + in + # 2905 "src/ocaml/preprocess/parser_raw.mly" ( array, d, Brace, i, r ) -# 22869 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined2_, _startpos_array_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - ( +# 22455 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined2_, _startpos_array_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2970 "src/ocaml/preprocess/parser_raw.mly" ( mk_indexop_expr user_indexing_operators ~loc:_sloc _1 ) -# 22879 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression)) - in +# 22465 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -22971,7 +22556,7 @@ module Tables = struct let _2 : ( # 1073 "src/ocaml/preprocess/parser_raw.mly" (string) -# 22975 "src/ocaml/preprocess/parser_raw.ml" +# 22560 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _2 in let _2_inlined1 : (Longident.t) = Obj.magic _2_inlined1 in let _1 : unit = Obj.magic _1 in @@ -22979,53 +22564,52 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_array_ in let _endpos = _endpos_xs_ in - let _v = - let _1 = - let r = - let (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) = (_startpos__1_inlined2_, _1_inlined4, _1_inlined3) in - let v = - let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in - let _1 = - let _3 = - let xs = - let xs = -# 264 "" + let _v : (Parsetree.expression) = let _1 = + let r = + let (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) = (_startpos__1_inlined2_, _1_inlined4, _1_inlined3) in + let v = + let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in + let _1 = + let _3 = + let xs = + let xs = +# 253 "" ( List.rev xs ) -# 22995 "src/ocaml/preprocess/parser_raw.ml" - in - +# 22579 "src/ocaml/preprocess/parser_raw.ml" + in + # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 23000 "src/ocaml/preprocess/parser_raw.ml" - - in +# 22584 "src/ocaml/preprocess/parser_raw.ml" + in + # 3510 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 23006 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__3_ = _endpos_xs_ in +# 22590 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__3_ = _endpos_xs_ in + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in - + let _1 = _1_inlined1 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 23017 "src/ocaml/preprocess/parser_raw.ml" - - in +# 22601 "src/ocaml/preprocess/parser_raw.ml" + in + # 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 23023 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 22607 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2718 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in @@ -23039,62 +22623,61 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 23043 "src/ocaml/preprocess/parser_raw.ml" - - in +# 22627 "src/ocaml/preprocess/parser_raw.ml" + in + # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 23049 "src/ocaml/preprocess/parser_raw.ml" - - in +# 22633 "src/ocaml/preprocess/parser_raw.ml" + in + # 2969 "src/ocaml/preprocess/parser_raw.mly" (Some v) -# 23055 "src/ocaml/preprocess/parser_raw.ml" - - in - let i = +# 22639 "src/ocaml/preprocess/parser_raw.ml" + + in + let i = # 3674 "src/ocaml/preprocess/parser_raw.mly" ( es ) -# 23061 "src/ocaml/preprocess/parser_raw.ml" - in - let d = - let _1 = - let _2 = _2_inlined1 in - let x = +# 22645 "src/ocaml/preprocess/parser_raw.ml" + in + let d = + let _1 = + let _2 = _2_inlined1 in + let x = # 2919 "src/ocaml/preprocess/parser_raw.mly" (_2) -# 23069 "src/ocaml/preprocess/parser_raw.ml" - in - +# 22653 "src/ocaml/preprocess/parser_raw.ml" + in + # 126 "" ( Some x ) -# 23074 "src/ocaml/preprocess/parser_raw.ml" - - in +# 22658 "src/ocaml/preprocess/parser_raw.ml" + in + # 2919 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 23080 "src/ocaml/preprocess/parser_raw.ml" - - in +# 22664 "src/ocaml/preprocess/parser_raw.ml" + in + # 2905 "src/ocaml/preprocess/parser_raw.mly" ( array, d, Brace, i, r ) -# 23086 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos_xs_, _startpos_array_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - ( +# 22670 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos_xs_, _startpos_array_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2970 "src/ocaml/preprocess/parser_raw.mly" ( mk_indexop_expr user_indexing_operators ~loc:_sloc _1 ) -# 23096 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression)) - in +# 22680 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -23155,67 +22738,65 @@ module Tables = struct let _2 : ( # 1073 "src/ocaml/preprocess/parser_raw.mly" (string) -# 23159 "src/ocaml/preprocess/parser_raw.ml" +# 22742 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _2 in let array : (Parsetree.expression) = Obj.magic array in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_array_ in let _endpos = _endpos__1_inlined1_ in - let _v = - let _1 = - let r = - let v = - let _1 = _1_inlined1 in - let _1 = + let _v : (Parsetree.expression) = let _1 = + let r = + let v = + let _1 = _1_inlined1 in + let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 23173 "src/ocaml/preprocess/parser_raw.ml" - in - +# 22755 "src/ocaml/preprocess/parser_raw.ml" + in + # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 23178 "src/ocaml/preprocess/parser_raw.ml" - - in +# 22760 "src/ocaml/preprocess/parser_raw.ml" + in + # 2969 "src/ocaml/preprocess/parser_raw.mly" (Some v) -# 23184 "src/ocaml/preprocess/parser_raw.ml" - - in - let i = +# 22766 "src/ocaml/preprocess/parser_raw.ml" + + in + let i = # 3674 "src/ocaml/preprocess/parser_raw.mly" ( es ) -# 23190 "src/ocaml/preprocess/parser_raw.ml" - in - let d = - let _1 = -# 123 "" +# 22772 "src/ocaml/preprocess/parser_raw.ml" + in + let d = + let _1 = +# 124 "" ( None ) -# 23196 "src/ocaml/preprocess/parser_raw.ml" - in - +# 22778 "src/ocaml/preprocess/parser_raw.ml" + in + # 2919 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 23201 "src/ocaml/preprocess/parser_raw.ml" - - in +# 22783 "src/ocaml/preprocess/parser_raw.ml" + in + # 2907 "src/ocaml/preprocess/parser_raw.mly" ( array, d, Bracket, i, r ) -# 23207 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos_array_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - ( +# 22789 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos_array_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2970 "src/ocaml/preprocess/parser_raw.mly" ( mk_indexop_expr user_indexing_operators ~loc:_sloc _1 ) -# 23217 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression)) - in +# 22799 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -23297,58 +22878,57 @@ module Tables = struct let _2 : ( # 1073 "src/ocaml/preprocess/parser_raw.mly" (string) -# 23301 "src/ocaml/preprocess/parser_raw.ml" +# 22882 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _2 in let array : (Parsetree.expression) = Obj.magic array in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_array_ in let _endpos = _endpos_xs_ in - let _v = - let _1 = - let r = - let v = - let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in - let _1 = - let _3 = - let xs = - let xs = -# 264 "" + let _v : (Parsetree.expression) = let _1 = + let r = + let v = + let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in + let _1 = + let _3 = + let xs = + let xs = +# 253 "" ( List.rev xs ) -# 23318 "src/ocaml/preprocess/parser_raw.ml" - in - +# 22898 "src/ocaml/preprocess/parser_raw.ml" + in + # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 23323 "src/ocaml/preprocess/parser_raw.ml" - - in +# 22903 "src/ocaml/preprocess/parser_raw.ml" + in + # 3510 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 23329 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__3_ = _endpos_xs_ in +# 22909 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__3_ = _endpos_xs_ in + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in - + let _1 = _1_inlined1 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 23340 "src/ocaml/preprocess/parser_raw.ml" - - in +# 22920 "src/ocaml/preprocess/parser_raw.ml" + in + # 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 23346 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 22926 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2718 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in @@ -23362,54 +22942,53 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 23366 "src/ocaml/preprocess/parser_raw.ml" - - in +# 22946 "src/ocaml/preprocess/parser_raw.ml" + in + # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 23372 "src/ocaml/preprocess/parser_raw.ml" - - in +# 22952 "src/ocaml/preprocess/parser_raw.ml" + in + # 2969 "src/ocaml/preprocess/parser_raw.mly" (Some v) -# 23378 "src/ocaml/preprocess/parser_raw.ml" - - in - let i = +# 22958 "src/ocaml/preprocess/parser_raw.ml" + + in + let i = # 3674 "src/ocaml/preprocess/parser_raw.mly" ( es ) -# 23384 "src/ocaml/preprocess/parser_raw.ml" - in - let d = - let _1 = -# 123 "" +# 22964 "src/ocaml/preprocess/parser_raw.ml" + in + let d = + let _1 = +# 124 "" ( None ) -# 23390 "src/ocaml/preprocess/parser_raw.ml" - in - +# 22970 "src/ocaml/preprocess/parser_raw.ml" + in + # 2919 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 23395 "src/ocaml/preprocess/parser_raw.ml" - - in +# 22975 "src/ocaml/preprocess/parser_raw.ml" + in + # 2907 "src/ocaml/preprocess/parser_raw.mly" ( array, d, Bracket, i, r ) -# 23401 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos_xs_, _startpos_array_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - ( +# 22981 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos_xs_, _startpos_array_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2970 "src/ocaml/preprocess/parser_raw.mly" ( mk_indexop_expr user_indexing_operators ~loc:_sloc _1 ) -# 23411 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression)) - in +# 22991 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -23482,7 +23061,7 @@ module Tables = struct let _2 : ( # 1073 "src/ocaml/preprocess/parser_raw.mly" (string) -# 23486 "src/ocaml/preprocess/parser_raw.ml" +# 23065 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _2 in let _2_inlined1 : (Longident.t) = Obj.magic _2_inlined1 in let _1 : unit = Obj.magic _1 in @@ -23490,70 +23069,68 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_array_ in let _endpos = _endpos__1_inlined2_ in - let _v = - let _1 = - let r = - let _1_inlined1 = _1_inlined2 in - let v = - let _1 = _1_inlined1 in - let _1 = + let _v : (Parsetree.expression) = let _1 = + let r = + let _1_inlined1 = _1_inlined2 in + let v = + let _1 = _1_inlined1 in + let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 23503 "src/ocaml/preprocess/parser_raw.ml" - in - +# 23081 "src/ocaml/preprocess/parser_raw.ml" + in + # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 23508 "src/ocaml/preprocess/parser_raw.ml" - - in +# 23086 "src/ocaml/preprocess/parser_raw.ml" + in + # 2969 "src/ocaml/preprocess/parser_raw.mly" (Some v) -# 23514 "src/ocaml/preprocess/parser_raw.ml" - - in - let i = +# 23092 "src/ocaml/preprocess/parser_raw.ml" + + in + let i = # 3674 "src/ocaml/preprocess/parser_raw.mly" ( es ) -# 23520 "src/ocaml/preprocess/parser_raw.ml" - in - let d = - let _1 = - let _2 = _2_inlined1 in - let x = +# 23098 "src/ocaml/preprocess/parser_raw.ml" + in + let d = + let _1 = + let _2 = _2_inlined1 in + let x = # 2919 "src/ocaml/preprocess/parser_raw.mly" (_2) -# 23528 "src/ocaml/preprocess/parser_raw.ml" - in - +# 23106 "src/ocaml/preprocess/parser_raw.ml" + in + # 126 "" ( Some x ) -# 23533 "src/ocaml/preprocess/parser_raw.ml" - - in +# 23111 "src/ocaml/preprocess/parser_raw.ml" + in + # 2919 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 23539 "src/ocaml/preprocess/parser_raw.ml" - - in +# 23117 "src/ocaml/preprocess/parser_raw.ml" + in + # 2907 "src/ocaml/preprocess/parser_raw.mly" ( array, d, Bracket, i, r ) -# 23545 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined2_, _startpos_array_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - ( +# 23123 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined2_, _startpos_array_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2970 "src/ocaml/preprocess/parser_raw.mly" ( mk_indexop_expr user_indexing_operators ~loc:_sloc _1 ) -# 23555 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression)) - in +# 23133 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -23647,7 +23224,7 @@ module Tables = struct let _2 : ( # 1073 "src/ocaml/preprocess/parser_raw.mly" (string) -# 23651 "src/ocaml/preprocess/parser_raw.ml" +# 23228 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _2 in let _2_inlined1 : (Longident.t) = Obj.magic _2_inlined1 in let _1 : unit = Obj.magic _1 in @@ -23655,53 +23232,52 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_array_ in let _endpos = _endpos_xs_ in - let _v = - let _1 = - let r = - let (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) = (_startpos__1_inlined2_, _1_inlined4, _1_inlined3) in - let v = - let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in - let _1 = - let _3 = - let xs = - let xs = -# 264 "" + let _v : (Parsetree.expression) = let _1 = + let r = + let (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) = (_startpos__1_inlined2_, _1_inlined4, _1_inlined3) in + let v = + let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in + let _1 = + let _3 = + let xs = + let xs = +# 253 "" ( List.rev xs ) -# 23671 "src/ocaml/preprocess/parser_raw.ml" - in - +# 23247 "src/ocaml/preprocess/parser_raw.ml" + in + # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 23676 "src/ocaml/preprocess/parser_raw.ml" - - in +# 23252 "src/ocaml/preprocess/parser_raw.ml" + in + # 3510 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 23682 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__3_ = _endpos_xs_ in +# 23258 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__3_ = _endpos_xs_ in + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in - + let _1 = _1_inlined1 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 23693 "src/ocaml/preprocess/parser_raw.ml" - - in +# 23269 "src/ocaml/preprocess/parser_raw.ml" + in + # 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 23699 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 23275 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2718 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in @@ -23715,62 +23291,61 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 23719 "src/ocaml/preprocess/parser_raw.ml" - - in +# 23295 "src/ocaml/preprocess/parser_raw.ml" + in + # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 23725 "src/ocaml/preprocess/parser_raw.ml" - - in +# 23301 "src/ocaml/preprocess/parser_raw.ml" + in + # 2969 "src/ocaml/preprocess/parser_raw.mly" (Some v) -# 23731 "src/ocaml/preprocess/parser_raw.ml" - - in - let i = +# 23307 "src/ocaml/preprocess/parser_raw.ml" + + in + let i = # 3674 "src/ocaml/preprocess/parser_raw.mly" ( es ) -# 23737 "src/ocaml/preprocess/parser_raw.ml" - in - let d = - let _1 = - let _2 = _2_inlined1 in - let x = +# 23313 "src/ocaml/preprocess/parser_raw.ml" + in + let d = + let _1 = + let _2 = _2_inlined1 in + let x = # 2919 "src/ocaml/preprocess/parser_raw.mly" (_2) -# 23745 "src/ocaml/preprocess/parser_raw.ml" - in - +# 23321 "src/ocaml/preprocess/parser_raw.ml" + in + # 126 "" ( Some x ) -# 23750 "src/ocaml/preprocess/parser_raw.ml" - - in +# 23326 "src/ocaml/preprocess/parser_raw.ml" + in + # 2919 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 23756 "src/ocaml/preprocess/parser_raw.ml" - - in +# 23332 "src/ocaml/preprocess/parser_raw.ml" + in + # 2907 "src/ocaml/preprocess/parser_raw.mly" ( array, d, Bracket, i, r ) -# 23762 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos_xs_, _startpos_array_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - ( +# 23338 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos_xs_, _startpos_array_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2970 "src/ocaml/preprocess/parser_raw.mly" ( mk_indexop_expr user_indexing_operators ~loc:_sloc _1 ) -# 23772 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression)) - in +# 23348 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -23801,7 +23376,7 @@ module Tables = struct let _v : (Parsetree.expression) = # 2972 "src/ocaml/preprocess/parser_raw.mly" ( Exp.attr _1 _2 ) -# 23805 "src/ocaml/preprocess/parser_raw.ml" +# 23380 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -23830,27 +23405,25 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_exp_ in - let _v = - let mode = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let _v : (Parsetree.expression) = let mode = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 4651 "src/ocaml/preprocess/parser_raw.mly" ( mkloc (Mode "local") (make_loc _sloc) ) -# 23842 "src/ocaml/preprocess/parser_raw.ml" - - in - let _startpos_mode_ = _startpos__1_ in - let _endpos = _endpos_exp_ in - let _symbolstartpos = _startpos_mode_ in - let _sloc = (_symbolstartpos, _endpos) in - ( +# 23416 "src/ocaml/preprocess/parser_raw.ml" + + in + let _startpos_mode_ = _startpos__1_ in + let _endpos = _endpos_exp_ in + let _symbolstartpos = _startpos_mode_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2980 "src/ocaml/preprocess/parser_raw.mly" ( mkexp_constraint ~loc:_sloc ~exp ~cty:None ~modes:[mode] ) -# 23852 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression)) - in +# 23426 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -23878,27 +23451,25 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_exp_ in - let _v = - let mode = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let _v : (Parsetree.expression) = let mode = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 4653 "src/ocaml/preprocess/parser_raw.mly" ( mkloc (Mode "unique") (make_loc _sloc) ) -# 23890 "src/ocaml/preprocess/parser_raw.ml" - - in - let _startpos_mode_ = _startpos__1_ in - let _endpos = _endpos_exp_ in - let _symbolstartpos = _startpos_mode_ in - let _sloc = (_symbolstartpos, _endpos) in - ( +# 23462 "src/ocaml/preprocess/parser_raw.ml" + + in + let _startpos_mode_ = _startpos__1_ in + let _endpos = _endpos_exp_ in + let _symbolstartpos = _startpos_mode_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2980 "src/ocaml/preprocess/parser_raw.mly" ( mkexp_constraint ~loc:_sloc ~exp ~cty:None ~modes:[mode] ) -# 23900 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression)) - in +# 23472 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -23926,27 +23497,25 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_exp_ in - let _v = - let mode = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let _v : (Parsetree.expression) = let mode = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 4655 "src/ocaml/preprocess/parser_raw.mly" ( mkloc (Mode "once") (make_loc _sloc) ) -# 23938 "src/ocaml/preprocess/parser_raw.ml" - - in - let _startpos_mode_ = _startpos__1_ in - let _endpos = _endpos_exp_ in - let _symbolstartpos = _startpos_mode_ in - let _sloc = (_symbolstartpos, _endpos) in - ( +# 23508 "src/ocaml/preprocess/parser_raw.ml" + + in + let _startpos_mode_ = _startpos__1_ in + let _endpos = _endpos_exp_ in + let _symbolstartpos = _startpos_mode_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2980 "src/ocaml/preprocess/parser_raw.mly" ( mkexp_constraint ~loc:_sloc ~exp ~cty:None ~modes:[mode] ) -# 23948 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression)) - in +# 23518 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -23974,17 +23543,15 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in - let _v = - let _endpos = _endpos__2_ in - let _symbolstartpos = _startpos__1_ in - let _loc__1_ = (_startpos__1_, _endpos__1_) in - let _sloc = (_symbolstartpos, _endpos) in - ( + let _v : (Parsetree.expression) = let _endpos = _endpos__2_ in + let _symbolstartpos = _startpos__1_ in + let _loc__1_ = (_startpos__1_, _endpos__1_) in + let _sloc = (_symbolstartpos, _endpos) in + # 2982 "src/ocaml/preprocess/parser_raw.mly" ( mkexp_exclave ~loc:_sloc ~kwd_loc:(_loc__1_) _2 ) -# 23986 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression)) - in +# 23554 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -24026,11 +23593,10 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in - let _v = - let _endpos = _endpos__4_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - ( + let _v : (Parsetree.function_param list) = let _endpos = _endpos__4_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 3524 "src/ocaml/preprocess/parser_raw.mly" ( (* We desugar (type a b c) to (type a) (type b) (type c). If we do this desugaring, the loc for each parameter is a ghost. @@ -24047,9 +23613,8 @@ module Tables = struct }) ty_params ) -# 24051 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.function_param list)) - in +# 23617 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -24102,38 +23667,36 @@ module Tables = struct let _1_inlined1 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 24106 "src/ocaml/preprocess/parser_raw.ml" +# 23671 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__6_ in - let _v = - let _3 = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 1296 "src/ocaml/preprocess/parser_raw.mly" - ( mkrhs _1 _sloc ) -# 24122 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__6_ in + let _v : (Parsetree.function_param list) = let _3 = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in + let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in - ( + +# 1296 "src/ocaml/preprocess/parser_raw.mly" + ( mkrhs _1 _sloc ) +# 23686 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__6_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 3540 "src/ocaml/preprocess/parser_raw.mly" ( [ { pparam_loc = make_loc _sloc; pparam_desc = Pparam_newtype (_3, Some _5) } ] ) -# 24135 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.function_param list)) - in +# 23699 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -24154,11 +23717,10 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - ( + let _v : (Parsetree.function_param list) = let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 3546 "src/ocaml/preprocess/parser_raw.mly" ( let a, b, c = _1 in [ { pparam_loc = make_loc _sloc; @@ -24166,9 +23728,8 @@ module Tables = struct } ] ) -# 24170 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.function_param list)) - in +# 23732 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -24189,25 +23750,23 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_xs_ in let _endpos = _endpos_xs_ in - let _v = - let _1 = - let xs = -# 264 "" + let _v : (Parsetree.function_param list) = let _1 = + let xs = +# 253 "" ( List.rev xs ) -# 24198 "src/ocaml/preprocess/parser_raw.ml" - in - +# 23758 "src/ocaml/preprocess/parser_raw.ml" + in + # 1418 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 24203 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 23763 "src/ocaml/preprocess/parser_raw.ml" + + in + # 3554 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 24209 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.function_param list)) - in +# 23769 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -24231,7 +23790,7 @@ module Tables = struct let _v : (Parsetree.expression) = # 2741 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 24235 "src/ocaml/preprocess/parser_raw.ml" +# 23794 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -24263,7 +23822,7 @@ module Tables = struct let _v : (Parsetree.expression) = # 2742 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 24267 "src/ocaml/preprocess/parser_raw.ml" +# 23826 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -24299,29 +23858,27 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in - let _v = - let _1 = - let _1 = + let _v : (Parsetree.expression) = let _1 = + let _1 = # 2744 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_sequence(_1, _3) ) -# 24308 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos__1_ = _endpos__3_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 23866 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__3_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1329 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc _1 ) -# 24317 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 23875 "src/ocaml/preprocess/parser_raw.ml" + + in + # 2745 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 24323 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression)) - in +# 23881 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -24370,42 +23927,40 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__5_ in - let _v = - let _endpos = _endpos__5_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - ( + let _v : (Parsetree.expression) = let _endpos = _endpos__5_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2747 "src/ocaml/preprocess/parser_raw.mly" ( let seq = mkexp ~loc:_sloc (Pexp_sequence (_1, _5)) in let payload = PStr [mkstrexp seq []] in mkexp ~loc:_sloc (Pexp_extension (_4, payload)) ) -# 24383 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression)) - in - { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = Obj.repr _v; - MenhirLib.EngineTypes.startp = _startpos; - MenhirLib.EngineTypes.endp = _endpos; - MenhirLib.EngineTypes.next = _menhir_stack; - }); - (fun _menhir_env -> - let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = ty; - MenhirLib.EngineTypes.startp = _startpos_ty_; - MenhirLib.EngineTypes.endp = _endpos_ty_; - MenhirLib.EngineTypes.next = _menhir_stack; - } = _menhir_stack in - let ty : (Parsetree.core_type) = Obj.magic ty in - let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos_ty_ in - let _endpos = _endpos_ty_ in - let _v : (Parsetree.core_type) = -# 4555 "src/ocaml/preprocess/parser_raw.mly" - ( ty ) -# 24409 "src/ocaml/preprocess/parser_raw.ml" +# 23939 "src/ocaml/preprocess/parser_raw.ml" + in + { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = ty; + MenhirLib.EngineTypes.startp = _startpos_ty_; + MenhirLib.EngineTypes.endp = _endpos_ty_; + MenhirLib.EngineTypes.next = _menhir_stack; + } = _menhir_stack in + let ty : (Parsetree.core_type) = Obj.magic ty in + let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in + let _startpos = _startpos_ty_ in + let _endpos = _endpos_ty_ in + let _v : (Parsetree.core_type) = +# 4555 "src/ocaml/preprocess/parser_raw.mly" + ( ty ) +# 23964 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -24430,7 +23985,7 @@ module Tables = struct let _v : (Parsetree.core_type) = # 4557 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 24434 "src/ocaml/preprocess/parser_raw.ml" +# 23989 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -24459,14 +24014,12 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in - let _v = - let _startpos = _startpos__1_ in - ( + let _v : (Lexing.position * Parsetree.functor_parameter) = let _startpos = _startpos__1_ in + # 1705 "src/ocaml/preprocess/parser_raw.mly" ( _startpos, Unit ) -# 24468 "src/ocaml/preprocess/parser_raw.ml" - : (Lexing.position * Parsetree.functor_parameter)) - in +# 24022 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -24515,30 +24068,28 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__6_ in - let _v = - let mm = + let _v : (Lexing.position * Parsetree.functor_parameter) = let mm = # 4699 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 24523 "src/ocaml/preprocess/parser_raw.ml" - in - let x = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 24075 "src/ocaml/preprocess/parser_raw.ml" + in + let x = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 24533 "src/ocaml/preprocess/parser_raw.ml" - - in - let _startpos = _startpos__1_ in - ( +# 24085 "src/ocaml/preprocess/parser_raw.ml" + + in + let _startpos = _startpos__1_ in + # 1708 "src/ocaml/preprocess/parser_raw.mly" ( _startpos, Named (x, mty, mm) ) -# 24540 "src/ocaml/preprocess/parser_raw.ml" - : (Lexing.position * Parsetree.functor_parameter)) - in +# 24092 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -24594,33 +24145,31 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__6_ in - let _v = - let mm = - let _1 = _1_inlined2 in - + let _v : (Lexing.position * Parsetree.functor_parameter) = let mm = + let _1 = _1_inlined2 in + # 4700 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 24604 "src/ocaml/preprocess/parser_raw.ml" - - in - let x = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 24154 "src/ocaml/preprocess/parser_raw.ml" + + in + let x = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 24615 "src/ocaml/preprocess/parser_raw.ml" - - in - let _startpos = _startpos__1_ in - ( +# 24165 "src/ocaml/preprocess/parser_raw.ml" + + in + let _startpos = _startpos__1_ in + # 1708 "src/ocaml/preprocess/parser_raw.mly" ( _startpos, Named (x, mty, mm) ) -# 24622 "src/ocaml/preprocess/parser_raw.ml" - : (Lexing.position * Parsetree.functor_parameter)) - in +# 24172 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -24644,7 +24193,7 @@ module Tables = struct let _v : ((Lexing.position * Parsetree.functor_parameter) list) = # 1697 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 24648 "src/ocaml/preprocess/parser_raw.ml" +# 24197 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -24663,7 +24212,7 @@ module Tables = struct Parsetree.constructor_arguments * Parsetree.core_type option) = # 4331 "src/ocaml/preprocess/parser_raw.mly" ( ([],Pcstr_tuple [],None) ) -# 24667 "src/ocaml/preprocess/parser_raw.ml" +# 24216 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -24696,7 +24245,7 @@ module Tables = struct Parsetree.constructor_arguments * Parsetree.core_type option) = # 4332 "src/ocaml/preprocess/parser_raw.mly" ( ([],_2,None) ) -# 24700 "src/ocaml/preprocess/parser_raw.ml" +# 24249 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -24743,7 +24292,7 @@ module Tables = struct Parsetree.constructor_arguments * Parsetree.core_type option) = # 4334 "src/ocaml/preprocess/parser_raw.mly" ( ([],_2,Some _4) ) -# 24747 "src/ocaml/preprocess/parser_raw.ml" +# 24296 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -24800,33 +24349,31 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__6_ in - let _v = - let _2 = - let _1 = - let xs = -# 264 "" + let _v : ((string Location.loc * Parsetree.jkind_annotation option) list * + Parsetree.constructor_arguments * Parsetree.core_type option) = let _2 = + let _1 = + let xs = +# 253 "" ( List.rev xs ) -# 24810 "src/ocaml/preprocess/parser_raw.ml" - in - +# 24359 "src/ocaml/preprocess/parser_raw.ml" + in + # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 24815 "src/ocaml/preprocess/parser_raw.ml" - - in +# 24364 "src/ocaml/preprocess/parser_raw.ml" + in + # 4481 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 24821 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 24370 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4337 "src/ocaml/preprocess/parser_raw.mly" ( (_2,_4,Some _6) ) -# 24827 "src/ocaml/preprocess/parser_raw.ml" - : ((string Location.loc * Parsetree.jkind_annotation option) list * - Parsetree.constructor_arguments * Parsetree.core_type option)) - in +# 24376 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -24858,7 +24405,7 @@ module Tables = struct Parsetree.constructor_arguments * Parsetree.core_type option) = # 4339 "src/ocaml/preprocess/parser_raw.mly" ( ([],Pcstr_tuple [],Some _2) ) -# 24862 "src/ocaml/preprocess/parser_raw.ml" +# 24409 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -24901,33 +24448,31 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in - let _v = - let _2 = - let _1 = - let xs = -# 264 "" + let _v : ((string Location.loc * Parsetree.jkind_annotation option) list * + Parsetree.constructor_arguments * Parsetree.core_type option) = let _2 = + let _1 = + let xs = +# 253 "" ( List.rev xs ) -# 24911 "src/ocaml/preprocess/parser_raw.ml" - in - +# 24458 "src/ocaml/preprocess/parser_raw.ml" + in + # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 24916 "src/ocaml/preprocess/parser_raw.ml" - - in +# 24463 "src/ocaml/preprocess/parser_raw.ml" + in + # 4481 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 24922 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 24469 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4341 "src/ocaml/preprocess/parser_raw.mly" ( (_2,Pcstr_tuple [],Some _4) ) -# 24928 "src/ocaml/preprocess/parser_raw.ml" - : ((string Location.loc * Parsetree.jkind_annotation option) list * - Parsetree.constructor_arguments * Parsetree.core_type option)) - in +# 24475 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -24970,31 +24515,33 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined2_ in - let _v = - let attrs = - let _1 = _1_inlined2 in - + let _v : (Ocaml_parsing.Ast_helper.str * + (string Location.loc * Parsetree.jkind_annotation option) list * + Parsetree.constructor_arguments * Parsetree.core_type option * + Parsetree.attributes * Location.t * Ocaml_parsing.Docstrings.info) = let attrs = + let _1 = _1_inlined2 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 24980 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_attrs_ = _endpos__1_inlined2_ in - let cid = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 1296 "src/ocaml/preprocess/parser_raw.mly" - ( mkrhs _1 _sloc ) -# 24992 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos_attrs_ in +# 24527 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_attrs_ = _endpos__1_inlined2_ in + let cid = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in + let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in - ( + +# 1296 "src/ocaml/preprocess/parser_raw.mly" + ( mkrhs _1 _sloc ) +# 24539 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos_attrs_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 4278 "src/ocaml/preprocess/parser_raw.mly" ( let vars, args, res = vars_args_res in @@ -25002,12 +24549,8 @@ module Tables = struct let loc = make_loc _sloc in cid, vars, args, res, attrs, loc, info ) -# 25006 "src/ocaml/preprocess/parser_raw.ml" - : (Ocaml_parsing.Ast_helper.str * - (string Location.loc * Parsetree.jkind_annotation option) list * - Parsetree.constructor_arguments * Parsetree.core_type option * - Parsetree.attributes * Location.t * Ocaml_parsing.Docstrings.info)) - in +# 24553 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -25043,36 +24586,38 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined1_ in - let _v = - let attrs = - let _1 = _1_inlined1 in - + let _v : (Ocaml_parsing.Ast_helper.str * + (string Location.loc * Parsetree.jkind_annotation option) list * + Parsetree.constructor_arguments * Parsetree.core_type option * + Parsetree.attributes * Location.t * Ocaml_parsing.Docstrings.info) = let attrs = + let _1 = _1_inlined1 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 25053 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_attrs_ = _endpos__1_inlined1_ in - let cid = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 24598 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_attrs_ = _endpos__1_inlined1_ in + let cid = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 25064 "src/ocaml/preprocess/parser_raw.ml" - - in - let _startpos_cid_ = _startpos__1_ in - let _1 = +# 24609 "src/ocaml/preprocess/parser_raw.ml" + + in + let _startpos_cid_ = _startpos__1_ in + let _1 = # 5211 "src/ocaml/preprocess/parser_raw.mly" ( () ) -# 25071 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos_attrs_ in - let _symbolstartpos = _startpos_cid_ in - let _sloc = (_symbolstartpos, _endpos) in - ( +# 24616 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos_attrs_ in + let _symbolstartpos = _startpos_cid_ in + let _sloc = (_symbolstartpos, _endpos) in + # 4278 "src/ocaml/preprocess/parser_raw.mly" ( let vars, args, res = vars_args_res in @@ -25080,12 +24625,8 @@ module Tables = struct let loc = make_loc _sloc in cid, vars, args, res, attrs, loc, info ) -# 25084 "src/ocaml/preprocess/parser_raw.ml" - : (Ocaml_parsing.Ast_helper.str * - (string Location.loc * Parsetree.jkind_annotation option) list * - Parsetree.constructor_arguments * Parsetree.core_type option * - Parsetree.attributes * Location.t * Ocaml_parsing.Docstrings.info)) - in +# 24629 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -25164,7 +24705,7 @@ module Tables = struct let _1_inlined2 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 25168 "src/ocaml/preprocess/parser_raw.ml" +# 24709 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined2 in let params : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = Obj.magic params in let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in @@ -25173,68 +24714,68 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined4_ in - let _v = - let attrs2 = - let _1 = _1_inlined4 in - + let _v : ((Asttypes.rec_flag * string Location.loc option) * + Parsetree.type_declaration) = let attrs2 = + let _1 = _1_inlined4 in + # 5399 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 25183 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_attrs2_ = _endpos__1_inlined4_ in - let cstrs = - let _1 = - let xs = -# 264 "" +# 24724 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_attrs2_ = _endpos__1_inlined4_ in + let cstrs = + let _1 = + let xs = +# 253 "" ( List.rev xs ) -# 25192 "src/ocaml/preprocess/parser_raw.ml" - in - +# 24733 "src/ocaml/preprocess/parser_raw.ml" + in + # 1380 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 25197 "src/ocaml/preprocess/parser_raw.ml" - - in +# 24738 "src/ocaml/preprocess/parser_raw.ml" + in + # 4098 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 25203 "src/ocaml/preprocess/parser_raw.ml" - - in - let kind_priv_manifest = +# 24744 "src/ocaml/preprocess/parser_raw.ml" + + in + let kind_priv_manifest = # 4137 "src/ocaml/preprocess/parser_raw.mly" ( _2 ) -# 25209 "src/ocaml/preprocess/parser_raw.ml" - in - let id = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 24750 "src/ocaml/preprocess/parser_raw.ml" + in + let id = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 25219 "src/ocaml/preprocess/parser_raw.ml" - - in - let flag = +# 24760 "src/ocaml/preprocess/parser_raw.ml" + + in + let flag = # 5231 "src/ocaml/preprocess/parser_raw.mly" ( Recursive ) -# 25225 "src/ocaml/preprocess/parser_raw.ml" - in - let attrs1 = - let _1 = _1_inlined1 in - +# 24766 "src/ocaml/preprocess/parser_raw.ml" + in + let attrs1 = + let _1 = _1_inlined1 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 25232 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos_attrs2_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - ( +# 24773 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos_attrs2_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 4067 "src/ocaml/preprocess/parser_raw.mly" ( let (kind, priv, manifest) = kind_priv_manifest in @@ -25245,10 +24786,8 @@ module Tables = struct Type.mk id ~params ~cstrs ~kind ~priv ?manifest ~attrs ~loc ~docs ?jkind_annotation ) -# 25249 "src/ocaml/preprocess/parser_raw.ml" - : ((Asttypes.rec_flag * string Location.loc option) * - Parsetree.type_declaration)) - in +# 24790 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -25333,7 +24872,7 @@ module Tables = struct let _1_inlined3 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 25337 "src/ocaml/preprocess/parser_raw.ml" +# 24876 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined3 in let params : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = Obj.magic params in let _1_inlined2 : unit = Obj.magic _1_inlined2 in @@ -25343,74 +24882,74 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined5_ in - let _v = - let attrs2 = - let _1 = _1_inlined5 in - + let _v : ((Asttypes.rec_flag * string Location.loc option) * + Parsetree.type_declaration) = let attrs2 = + let _1 = _1_inlined5 in + # 5399 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 25353 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_attrs2_ = _endpos__1_inlined5_ in - let cstrs = - let _1 = - let xs = -# 264 "" +# 24892 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_attrs2_ = _endpos__1_inlined5_ in + let cstrs = + let _1 = + let xs = +# 253 "" ( List.rev xs ) -# 25362 "src/ocaml/preprocess/parser_raw.ml" - in - +# 24901 "src/ocaml/preprocess/parser_raw.ml" + in + # 1380 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 25367 "src/ocaml/preprocess/parser_raw.ml" - - in +# 24906 "src/ocaml/preprocess/parser_raw.ml" + in + # 4098 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 25373 "src/ocaml/preprocess/parser_raw.ml" - - in - let kind_priv_manifest = +# 24912 "src/ocaml/preprocess/parser_raw.ml" + + in + let kind_priv_manifest = # 4137 "src/ocaml/preprocess/parser_raw.mly" ( _2 ) -# 25379 "src/ocaml/preprocess/parser_raw.ml" - in - let id = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined3_, _startpos__1_inlined3_, _1_inlined3) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 24918 "src/ocaml/preprocess/parser_raw.ml" + in + let id = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined3_, _startpos__1_inlined3_, _1_inlined3) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 25389 "src/ocaml/preprocess/parser_raw.ml" - - in - let flag = - let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined2_, _startpos__1_inlined2_) in - let _endpos = _endpos__1_ in - let _startpos = _startpos__1_ in - let _loc = (_startpos, _endpos) in - +# 24928 "src/ocaml/preprocess/parser_raw.ml" + + in + let flag = + let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined2_, _startpos__1_inlined2_) in + let _endpos = _endpos__1_ in + let _startpos = _startpos__1_ in + let _loc = (_startpos, _endpos) in + # 5233 "src/ocaml/preprocess/parser_raw.mly" ( not_expecting _loc "nonrec flag"; Recursive ) -# 25400 "src/ocaml/preprocess/parser_raw.ml" - - in - let attrs1 = - let _1 = _1_inlined1 in - +# 24939 "src/ocaml/preprocess/parser_raw.ml" + + in + let attrs1 = + let _1 = _1_inlined1 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 25408 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos_attrs2_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - ( +# 24947 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos_attrs2_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 4067 "src/ocaml/preprocess/parser_raw.mly" ( let (kind, priv, manifest) = kind_priv_manifest in @@ -25421,10 +24960,8 @@ module Tables = struct Type.mk id ~params ~cstrs ~kind ~priv ?manifest ~attrs ~loc ~docs ?jkind_annotation ) -# 25425 "src/ocaml/preprocess/parser_raw.ml" - : ((Asttypes.rec_flag * string Location.loc option) * - Parsetree.type_declaration)) - in +# 24964 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -25496,7 +25033,7 @@ module Tables = struct let _1_inlined2 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 25500 "src/ocaml/preprocess/parser_raw.ml" +# 25037 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined2 in let params : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = Obj.magic params in let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in @@ -25505,63 +25042,63 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined3_ in - let _v = - let attrs2 = - let _1 = _1_inlined3 in - + let _v : ((Asttypes.rec_flag * string Location.loc option) * + Parsetree.type_declaration) = let attrs2 = + let _1 = _1_inlined3 in + # 5399 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 25515 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_attrs2_ = _endpos__1_inlined3_ in - let cstrs = - let _1 = - let xs = -# 264 "" +# 25052 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_attrs2_ = _endpos__1_inlined3_ in + let cstrs = + let _1 = + let xs = +# 253 "" ( List.rev xs ) -# 25524 "src/ocaml/preprocess/parser_raw.ml" - in - +# 25061 "src/ocaml/preprocess/parser_raw.ml" + in + # 1380 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 25529 "src/ocaml/preprocess/parser_raw.ml" - - in +# 25066 "src/ocaml/preprocess/parser_raw.ml" + in + # 4098 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 25535 "src/ocaml/preprocess/parser_raw.ml" - - in - let id = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 25072 "src/ocaml/preprocess/parser_raw.ml" + + in + let id = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 25546 "src/ocaml/preprocess/parser_raw.ml" - - in - let flag = +# 25083 "src/ocaml/preprocess/parser_raw.ml" + + in + let flag = # 5227 "src/ocaml/preprocess/parser_raw.mly" ( Recursive ) -# 25552 "src/ocaml/preprocess/parser_raw.ml" - in - let attrs1 = - let _1 = _1_inlined1 in - +# 25089 "src/ocaml/preprocess/parser_raw.ml" + in + let attrs1 = + let _1 = _1_inlined1 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 25559 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos_attrs2_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - ( +# 25096 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos_attrs2_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 4067 "src/ocaml/preprocess/parser_raw.mly" ( let (kind, priv, manifest) = kind_priv_manifest in @@ -25572,10 +25109,8 @@ module Tables = struct Type.mk id ~params ~cstrs ~kind ~priv ?manifest ~attrs ~loc ~docs ?jkind_annotation ) -# 25576 "src/ocaml/preprocess/parser_raw.ml" - : ((Asttypes.rec_flag * string Location.loc option) * - Parsetree.type_declaration)) - in +# 25113 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -25653,7 +25188,7 @@ module Tables = struct let _1_inlined3 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 25657 "src/ocaml/preprocess/parser_raw.ml" +# 25192 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined3 in let params : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = Obj.magic params in let _1_inlined2 : unit = Obj.magic _1_inlined2 in @@ -25663,63 +25198,63 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined4_ in - let _v = - let attrs2 = - let _1 = _1_inlined4 in - + let _v : ((Asttypes.rec_flag * string Location.loc option) * + Parsetree.type_declaration) = let attrs2 = + let _1 = _1_inlined4 in + # 5399 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 25673 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_attrs2_ = _endpos__1_inlined4_ in - let cstrs = - let _1 = - let xs = -# 264 "" +# 25208 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_attrs2_ = _endpos__1_inlined4_ in + let cstrs = + let _1 = + let xs = +# 253 "" ( List.rev xs ) -# 25682 "src/ocaml/preprocess/parser_raw.ml" - in - +# 25217 "src/ocaml/preprocess/parser_raw.ml" + in + # 1380 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 25687 "src/ocaml/preprocess/parser_raw.ml" - - in +# 25222 "src/ocaml/preprocess/parser_raw.ml" + in + # 4098 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 25693 "src/ocaml/preprocess/parser_raw.ml" - - in - let id = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined3_, _startpos__1_inlined3_, _1_inlined3) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 25228 "src/ocaml/preprocess/parser_raw.ml" + + in + let id = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined3_, _startpos__1_inlined3_, _1_inlined3) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 25704 "src/ocaml/preprocess/parser_raw.ml" - - in - let flag = +# 25239 "src/ocaml/preprocess/parser_raw.ml" + + in + let flag = # 5228 "src/ocaml/preprocess/parser_raw.mly" ( Nonrecursive ) -# 25710 "src/ocaml/preprocess/parser_raw.ml" - in - let attrs1 = - let _1 = _1_inlined1 in - +# 25245 "src/ocaml/preprocess/parser_raw.ml" + in + let attrs1 = + let _1 = _1_inlined1 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 25717 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos_attrs2_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - ( +# 25252 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos_attrs2_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 4067 "src/ocaml/preprocess/parser_raw.mly" ( let (kind, priv, manifest) = kind_priv_manifest in @@ -25730,10 +25265,8 @@ module Tables = struct Type.mk id ~params ~cstrs ~kind ~priv ?manifest ~attrs ~loc ~docs ?jkind_annotation ) -# 25734 "src/ocaml/preprocess/parser_raw.ml" - : ((Asttypes.rec_flag * string Location.loc option) * - Parsetree.type_declaration)) - in +# 25269 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -25753,7 +25286,7 @@ module Tables = struct let _1 : ( # 1155 "src/ocaml/preprocess/parser_raw.mly" (string) -# 25757 "src/ocaml/preprocess/parser_raw.ml" +# 25290 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -25761,7 +25294,7 @@ module Tables = struct let _v : (string) = # 5049 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 25765 "src/ocaml/preprocess/parser_raw.ml" +# 25298 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -25782,7 +25315,7 @@ module Tables = struct let _1 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 25786 "src/ocaml/preprocess/parser_raw.ml" +# 25319 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -25790,7 +25323,7 @@ module Tables = struct let _v : (string) = # 5050 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 25794 "src/ocaml/preprocess/parser_raw.ml" +# 25327 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -25822,7 +25355,7 @@ module Tables = struct let _v : (Parsetree.structure) = # 1571 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 25826 "src/ocaml/preprocess/parser_raw.ml" +# 25359 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -25847,7 +25380,7 @@ module Tables = struct let _v : (Parsetree.include_kind) = # 1992 "src/ocaml/preprocess/parser_raw.mly" ( Structure ) -# 25851 "src/ocaml/preprocess/parser_raw.ml" +# 25384 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -25879,7 +25412,7 @@ module Tables = struct let _v : (Parsetree.include_kind) = # 1994 "src/ocaml/preprocess/parser_raw.mly" ( Functor ) -# 25883 "src/ocaml/preprocess/parser_raw.ml" +# 25416 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -25897,7 +25430,7 @@ module Tables = struct let _v : (string) = # 5108 "src/ocaml/preprocess/parser_raw.mly" ( "" ) -# 25901 "src/ocaml/preprocess/parser_raw.ml" +# 25434 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -25929,7 +25462,7 @@ module Tables = struct let _v : (string) = # 5109 "src/ocaml/preprocess/parser_raw.mly" ( ";.." ) -# 25933 "src/ocaml/preprocess/parser_raw.ml" +# 25466 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -25961,7 +25494,7 @@ module Tables = struct let _v : (Parsetree.signature) = # 1578 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 25965 "src/ocaml/preprocess/parser_raw.ml" +# 25498 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -26007,7 +25540,7 @@ module Tables = struct let _v : (Parsetree.extension) = # 5424 "src/ocaml/preprocess/parser_raw.mly" ( (_2, _3) ) -# 26011 "src/ocaml/preprocess/parser_raw.ml" +# 25544 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -26028,21 +25561,19 @@ module Tables = struct let _1 : ( # 1146 "src/ocaml/preprocess/parser_raw.mly" (string * Location.t * string * Location.t * string option) -# 26032 "src/ocaml/preprocess/parser_raw.ml" +# 25565 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - ( + let _v : (Parsetree.extension) = let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 5426 "src/ocaml/preprocess/parser_raw.mly" ( mk_quotedext ~loc:_sloc _1 ) -# 26044 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.extension)) - in +# 25576 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -26063,16 +25594,14 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - ( + let _v : (Parsetree.jkind_annotation) = let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 4188 "src/ocaml/preprocess/parser_raw.mly" ( { pjkind_loc = make_loc _sloc; pjkind_desc = _1 } ) -# 26074 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.jkind_annotation)) - in +# 25604 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -26103,7 +25632,7 @@ module Tables = struct let _v : (Parsetree.jkind_annotation) = # 4192 "src/ocaml/preprocess/parser_raw.mly" ( _2 ) -# 26107 "src/ocaml/preprocess/parser_raw.ml" +# 25636 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -26149,7 +25678,7 @@ module Tables = struct in Mod (_1, modes) ) -# 26153 "src/ocaml/preprocess/parser_raw.ml" +# 25682 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -26197,7 +25726,7 @@ module Tables = struct ( With (_1, _3, _4) ) -# 26201 "src/ocaml/preprocess/parser_raw.ml" +# 25730 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -26224,7 +25753,7 @@ module Tables = struct ( Abbreviation _1 ) -# 26228 "src/ocaml/preprocess/parser_raw.ml" +# 25757 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -26258,7 +25787,7 @@ module Tables = struct ( Kind_of ty ) -# 26262 "src/ocaml/preprocess/parser_raw.ml" +# 25791 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -26285,7 +25814,7 @@ module Tables = struct ( Default ) -# 26289 "src/ocaml/preprocess/parser_raw.ml" +# 25818 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -26312,7 +25841,7 @@ module Tables = struct ( Product (List.rev _1) ) -# 26316 "src/ocaml/preprocess/parser_raw.ml" +# 25845 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -26353,7 +25882,7 @@ module Tables = struct ( _2 ) -# 26357 "src/ocaml/preprocess/parser_raw.ml" +# 25886 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -26394,32 +25923,30 @@ module Tables = struct let _1_inlined1 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 26398 "src/ocaml/preprocess/parser_raw.ml" +# 25927 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_jkind_ in - let _v = - let abbrev = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let _v : (string Location.loc * Parsetree.jkind_annotation) = let abbrev = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 26413 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 25941 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4196 "src/ocaml/preprocess/parser_raw.mly" ( (abbrev, jkind) ) -# 26421 "src/ocaml/preprocess/parser_raw.ml" - : (string Location.loc * Parsetree.jkind_annotation)) - in +# 25949 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -26473,62 +26000,60 @@ module Tables = struct let _1_inlined1 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 26477 "src/ocaml/preprocess/parser_raw.ml" +# 26004 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined1 in let _1 : (Asttypes.mutable_flag * Parsetree.modality Location.loc list) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined3_ in - let _v = - let attrs = - let _1 = _1_inlined3 in - + let _v : (Parsetree.label_declaration) = let attrs = + let _1 = _1_inlined3 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 26489 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_attrs_ = _endpos__1_inlined3_ in - let _4 = - let _1 = _1_inlined2 in - +# 26015 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_attrs_ = _endpos__1_inlined3_ in + let _4 = + let _1 = _1_inlined2 in + # 4500 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 26498 "src/ocaml/preprocess/parser_raw.ml" - - in - let _2 = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in - let _1 = +# 26024 "src/ocaml/preprocess/parser_raw.ml" + + in + let _2 = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in + let _1 = # 5010 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 26506 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 26032 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 26514 "src/ocaml/preprocess/parser_raw.ml" - - in - let _startpos__2_ = _startpos__1_inlined1_ in - let _endpos = _endpos_attrs_ in - let _symbolstartpos = if _startpos__1_ != _endpos__1_ then - _startpos__1_ - else - _startpos__2_ in - let _sloc = (_symbolstartpos, _endpos) in - ( +# 26040 "src/ocaml/preprocess/parser_raw.ml" + + in + let _startpos__2_ = _startpos__1_inlined1_ in + let _endpos = _endpos_attrs_ in + let _symbolstartpos = if _startpos__1_ != _endpos__1_ then + _startpos__1_ + else + _startpos__2_ in + let _sloc = (_symbolstartpos, _endpos) in + # 4364 "src/ocaml/preprocess/parser_raw.mly" ( let info = symbol_info _endpos in let mut, m0 = _1 in let modalities = m0 @ m1 in Type.field _2 _4 ~mut ~modalities ~attrs ~loc:(make_loc _sloc) ~info) -# 26530 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.label_declaration)) - in +# 26056 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -26596,63 +26121,62 @@ module Tables = struct let _1_inlined1 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 26600 "src/ocaml/preprocess/parser_raw.ml" +# 26125 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined1 in let _1 : (Asttypes.mutable_flag * Parsetree.modality Location.loc list) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined4_ in - let _v = - let attrs1 = - let _1 = _1_inlined4 in - + let _v : (Parsetree.label_declaration) = let attrs1 = + let _1 = _1_inlined4 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 26612 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_attrs1_ = _endpos__1_inlined4_ in - let attrs0 = - let _1 = _1_inlined3 in - +# 26136 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_attrs1_ = _endpos__1_inlined4_ in + let attrs0 = + let _1 = _1_inlined3 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 26621 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_attrs0_ = _endpos__1_inlined3_ in - let _4 = - let _1 = _1_inlined2 in - +# 26145 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_attrs0_ = _endpos__1_inlined3_ in + let _4 = + let _1 = _1_inlined2 in + # 4500 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 26630 "src/ocaml/preprocess/parser_raw.ml" - - in - let _2 = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in - let _1 = +# 26154 "src/ocaml/preprocess/parser_raw.ml" + + in + let _2 = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in + let _1 = # 5010 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 26638 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 26162 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 26646 "src/ocaml/preprocess/parser_raw.ml" - - in - let _startpos__2_ = _startpos__1_inlined1_ in - let _endpos = _endpos_attrs1_ in - let _symbolstartpos = if _startpos__1_ != _endpos__1_ then - _startpos__1_ - else - _startpos__2_ in - let _sloc = (_symbolstartpos, _endpos) in - ( +# 26170 "src/ocaml/preprocess/parser_raw.ml" + + in + let _startpos__2_ = _startpos__1_inlined1_ in + let _endpos = _endpos_attrs1_ in + let _symbolstartpos = if _startpos__1_ != _endpos__1_ then + _startpos__1_ + else + _startpos__2_ in + let _sloc = (_symbolstartpos, _endpos) in + # 4372 "src/ocaml/preprocess/parser_raw.mly" ( let info = match rhs_info _endpos_attrs0_ with @@ -26662,9 +26186,8 @@ module Tables = struct let mut, m0 = _1 in let modalities = m0 @ m1 in Type.field _2 _4 ~mut ~modalities ~attrs:(attrs0 @ attrs1) ~loc:(make_loc _sloc) ~info) -# 26666 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.label_declaration)) - in +# 26190 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -26688,7 +26211,7 @@ module Tables = struct let _v : (Parsetree.label_declaration list) = # 4358 "src/ocaml/preprocess/parser_raw.mly" ( [_1] ) -# 26692 "src/ocaml/preprocess/parser_raw.ml" +# 26215 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -26713,7 +26236,7 @@ module Tables = struct let _v : (Parsetree.label_declaration list) = # 4359 "src/ocaml/preprocess/parser_raw.mly" ( [_1] ) -# 26717 "src/ocaml/preprocess/parser_raw.ml" +# 26240 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -26745,7 +26268,7 @@ module Tables = struct let _v : (Parsetree.label_declaration list) = # 4360 "src/ocaml/preprocess/parser_raw.mly" ( _1 :: _2 ) -# 26749 "src/ocaml/preprocess/parser_raw.ml" +# 26272 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -26766,45 +26289,43 @@ module Tables = struct let _1 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 26770 "src/ocaml/preprocess/parser_raw.ml" +# 26293 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v = - let modes = + let _v : (string * Parsetree.pattern * Parsetree.core_type option * Parsetree.modes) = let modes = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 26779 "src/ocaml/preprocess/parser_raw.ml" - in - let x = - let _1 = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 1296 "src/ocaml/preprocess/parser_raw.mly" - ( mkrhs _1 _sloc ) -# 26789 "src/ocaml/preprocess/parser_raw.ml" - - in +# 26301 "src/ocaml/preprocess/parser_raw.ml" + in + let x = + let _1 = let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2857 "src/ocaml/preprocess/parser_raw.mly" - ( (_1.Location.txt, mkpat ~loc:_sloc (Ppat_var _1)) ) -# 26798 "src/ocaml/preprocess/parser_raw.ml" +# 1296 "src/ocaml/preprocess/parser_raw.mly" + ( mkrhs _1 _sloc ) +# 26311 "src/ocaml/preprocess/parser_raw.ml" in - ( + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 2857 "src/ocaml/preprocess/parser_raw.mly" + ( (_1.Location.txt, mkpat ~loc:_sloc (Ppat_var _1)) ) +# 26320 "src/ocaml/preprocess/parser_raw.ml" + + in + # 2838 "src/ocaml/preprocess/parser_raw.mly" ( let lab, pat = x in lab, pat, None, modes ) -# 26806 "src/ocaml/preprocess/parser_raw.ml" - : (string * Parsetree.pattern * Parsetree.core_type option * Parsetree.modes)) - in +# 26328 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -26831,48 +26352,46 @@ module Tables = struct let _1 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 26835 "src/ocaml/preprocess/parser_raw.ml" +# 26356 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined1_ in - let _v = - let modes = - let _1 = _1_inlined1 in - + let _v : (string * Parsetree.pattern * Parsetree.core_type option * Parsetree.modes) = let modes = + let _1 = _1_inlined1 in + # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 26846 "src/ocaml/preprocess/parser_raw.ml" - - in - let x = - let _1 = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 1296 "src/ocaml/preprocess/parser_raw.mly" - ( mkrhs _1 _sloc ) -# 26857 "src/ocaml/preprocess/parser_raw.ml" - - in +# 26366 "src/ocaml/preprocess/parser_raw.ml" + + in + let x = + let _1 = let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2857 "src/ocaml/preprocess/parser_raw.mly" - ( (_1.Location.txt, mkpat ~loc:_sloc (Ppat_var _1)) ) -# 26866 "src/ocaml/preprocess/parser_raw.ml" +# 1296 "src/ocaml/preprocess/parser_raw.mly" + ( mkrhs _1 _sloc ) +# 26377 "src/ocaml/preprocess/parser_raw.ml" in - ( + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 2857 "src/ocaml/preprocess/parser_raw.mly" + ( (_1.Location.txt, mkpat ~loc:_sloc (Ppat_var _1)) ) +# 26386 "src/ocaml/preprocess/parser_raw.ml" + + in + # 2838 "src/ocaml/preprocess/parser_raw.mly" ( let lab, pat = x in lab, pat, None, modes ) -# 26874 "src/ocaml/preprocess/parser_raw.ml" - : (string * Parsetree.pattern * Parsetree.core_type option * Parsetree.modes)) - in +# 26394 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -26906,45 +26425,43 @@ module Tables = struct let _1 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 26910 "src/ocaml/preprocess/parser_raw.ml" +# 26429 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_cty_ in - let _v = - let modes = + let _v : (string * Parsetree.pattern * Parsetree.core_type option * Parsetree.modes) = let modes = # 4699 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 26919 "src/ocaml/preprocess/parser_raw.ml" - in - let x = - let _1 = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 1296 "src/ocaml/preprocess/parser_raw.mly" - ( mkrhs _1 _sloc ) -# 26929 "src/ocaml/preprocess/parser_raw.ml" - - in +# 26437 "src/ocaml/preprocess/parser_raw.ml" + in + let x = + let _1 = let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2857 "src/ocaml/preprocess/parser_raw.mly" - ( (_1.Location.txt, mkpat ~loc:_sloc (Ppat_var _1)) ) -# 26938 "src/ocaml/preprocess/parser_raw.ml" +# 1296 "src/ocaml/preprocess/parser_raw.mly" + ( mkrhs _1 _sloc ) +# 26447 "src/ocaml/preprocess/parser_raw.ml" in - ( + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 2857 "src/ocaml/preprocess/parser_raw.mly" + ( (_1.Location.txt, mkpat ~loc:_sloc (Ppat_var _1)) ) +# 26456 "src/ocaml/preprocess/parser_raw.ml" + + in + # 2842 "src/ocaml/preprocess/parser_raw.mly" ( let lab, pat = x in lab, pat, Some cty, modes ) -# 26946 "src/ocaml/preprocess/parser_raw.ml" - : (string * Parsetree.pattern * Parsetree.core_type option * Parsetree.modes)) - in +# 26464 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -26985,48 +26502,46 @@ module Tables = struct let _1 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 26989 "src/ocaml/preprocess/parser_raw.ml" +# 26506 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined1_ in - let _v = - let modes = - let _1 = _1_inlined1 in - + let _v : (string * Parsetree.pattern * Parsetree.core_type option * Parsetree.modes) = let modes = + let _1 = _1_inlined1 in + # 4700 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 27000 "src/ocaml/preprocess/parser_raw.ml" - - in - let x = - let _1 = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 1296 "src/ocaml/preprocess/parser_raw.mly" - ( mkrhs _1 _sloc ) -# 27011 "src/ocaml/preprocess/parser_raw.ml" - - in +# 26516 "src/ocaml/preprocess/parser_raw.ml" + + in + let x = + let _1 = let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2857 "src/ocaml/preprocess/parser_raw.mly" - ( (_1.Location.txt, mkpat ~loc:_sloc (Ppat_var _1)) ) -# 27020 "src/ocaml/preprocess/parser_raw.ml" +# 1296 "src/ocaml/preprocess/parser_raw.mly" + ( mkrhs _1 _sloc ) +# 26527 "src/ocaml/preprocess/parser_raw.ml" in - ( + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 2857 "src/ocaml/preprocess/parser_raw.mly" + ( (_1.Location.txt, mkpat ~loc:_sloc (Ppat_var _1)) ) +# 26536 "src/ocaml/preprocess/parser_raw.ml" + + in + # 2842 "src/ocaml/preprocess/parser_raw.mly" ( let lab, pat = x in lab, pat, Some cty, modes ) -# 27028 "src/ocaml/preprocess/parser_raw.ml" - : (string * Parsetree.pattern * Parsetree.core_type option * Parsetree.modes)) - in +# 26544 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -27074,82 +26589,80 @@ module Tables = struct let _1 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 27078 "src/ocaml/preprocess/parser_raw.ml" +# 26593 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_inner_type_ in - let _v = - let modes = + let _v : (string * Parsetree.pattern * Parsetree.core_type option * Parsetree.modes) = let modes = # 4699 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 27087 "src/ocaml/preprocess/parser_raw.ml" - in - let cty = - let _1 = - let bound_vars = - let _1 = - let xs = -# 264 "" +# 26601 "src/ocaml/preprocess/parser_raw.ml" + in + let cty = + let _1 = + let bound_vars = + let _1 = + let xs = +# 253 "" ( List.rev xs ) -# 27096 "src/ocaml/preprocess/parser_raw.ml" - in - +# 26610 "src/ocaml/preprocess/parser_raw.ml" + in + # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 27101 "src/ocaml/preprocess/parser_raw.ml" - - in +# 26615 "src/ocaml/preprocess/parser_raw.ml" + in + # 4481 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 27107 "src/ocaml/preprocess/parser_raw.ml" - - in +# 26621 "src/ocaml/preprocess/parser_raw.ml" + in + # 2849 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 27113 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos_inner_type_, _startpos_xs_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 26627 "src/ocaml/preprocess/parser_raw.ml" + in + let (_endpos__1_, _startpos__1_) = (_endpos_inner_type_, _startpos_xs_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 27123 "src/ocaml/preprocess/parser_raw.ml" - - in - let x = - let _1 = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 1296 "src/ocaml/preprocess/parser_raw.mly" - ( mkrhs _1 _sloc ) -# 27134 "src/ocaml/preprocess/parser_raw.ml" - - in +# 26637 "src/ocaml/preprocess/parser_raw.ml" + + in + let x = + let _1 = let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2857 "src/ocaml/preprocess/parser_raw.mly" - ( (_1.Location.txt, mkpat ~loc:_sloc (Ppat_var _1)) ) -# 27143 "src/ocaml/preprocess/parser_raw.ml" +# 1296 "src/ocaml/preprocess/parser_raw.mly" + ( mkrhs _1 _sloc ) +# 26648 "src/ocaml/preprocess/parser_raw.ml" in - ( + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 2857 "src/ocaml/preprocess/parser_raw.mly" + ( (_1.Location.txt, mkpat ~loc:_sloc (Ppat_var _1)) ) +# 26657 "src/ocaml/preprocess/parser_raw.ml" + + in + # 2851 "src/ocaml/preprocess/parser_raw.mly" ( let lab, pat = x in lab, pat, Some cty, modes ) -# 27151 "src/ocaml/preprocess/parser_raw.ml" - : (string * Parsetree.pattern * Parsetree.core_type option * Parsetree.modes)) - in +# 26665 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -27204,85 +26717,83 @@ module Tables = struct let _1 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 27208 "src/ocaml/preprocess/parser_raw.ml" +# 26721 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined1_ in - let _v = - let modes = - let _1 = _1_inlined1 in - + let _v : (string * Parsetree.pattern * Parsetree.core_type option * Parsetree.modes) = let modes = + let _1 = _1_inlined1 in + # 4700 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 27219 "src/ocaml/preprocess/parser_raw.ml" - - in - let cty = - let _1 = - let bound_vars = - let _1 = - let xs = -# 264 "" +# 26731 "src/ocaml/preprocess/parser_raw.ml" + + in + let cty = + let _1 = + let bound_vars = + let _1 = + let xs = +# 253 "" ( List.rev xs ) -# 27229 "src/ocaml/preprocess/parser_raw.ml" - in - +# 26741 "src/ocaml/preprocess/parser_raw.ml" + in + # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 27234 "src/ocaml/preprocess/parser_raw.ml" - - in +# 26746 "src/ocaml/preprocess/parser_raw.ml" + in + # 4481 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 27240 "src/ocaml/preprocess/parser_raw.ml" - - in +# 26752 "src/ocaml/preprocess/parser_raw.ml" + in + # 2849 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 27246 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos_inner_type_, _startpos_xs_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 26758 "src/ocaml/preprocess/parser_raw.ml" + in + let (_endpos__1_, _startpos__1_) = (_endpos_inner_type_, _startpos_xs_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 27256 "src/ocaml/preprocess/parser_raw.ml" - - in - let x = - let _1 = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 1296 "src/ocaml/preprocess/parser_raw.mly" - ( mkrhs _1 _sloc ) -# 27267 "src/ocaml/preprocess/parser_raw.ml" - - in +# 26768 "src/ocaml/preprocess/parser_raw.ml" + + in + let x = + let _1 = let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2857 "src/ocaml/preprocess/parser_raw.mly" - ( (_1.Location.txt, mkpat ~loc:_sloc (Ppat_var _1)) ) -# 27276 "src/ocaml/preprocess/parser_raw.ml" +# 1296 "src/ocaml/preprocess/parser_raw.mly" + ( mkrhs _1 _sloc ) +# 26779 "src/ocaml/preprocess/parser_raw.ml" in - ( + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 2857 "src/ocaml/preprocess/parser_raw.mly" + ( (_1.Location.txt, mkpat ~loc:_sloc (Ppat_var _1)) ) +# 26788 "src/ocaml/preprocess/parser_raw.ml" + + in + # 2851 "src/ocaml/preprocess/parser_raw.mly" ( let lab, pat = x in lab, pat, Some cty, modes ) -# 27284 "src/ocaml/preprocess/parser_raw.ml" - : (string * Parsetree.pattern * Parsetree.core_type option * Parsetree.modes)) - in +# 26796 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -27306,7 +26817,7 @@ module Tables = struct let _v : (Longident.t) = # 5140 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 27310 "src/ocaml/preprocess/parser_raw.ml" +# 26821 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -27331,7 +26842,7 @@ module Tables = struct let _v : (Parsetree.arg_label * Parsetree.expression) = # 3315 "src/ocaml/preprocess/parser_raw.mly" ( (Nolabel, _1) ) -# 27335 "src/ocaml/preprocess/parser_raw.ml" +# 26846 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -27359,7 +26870,7 @@ module Tables = struct let _1 : ( # 1082 "src/ocaml/preprocess/parser_raw.mly" (string) -# 27363 "src/ocaml/preprocess/parser_raw.ml" +# 26874 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -27367,7 +26878,7 @@ module Tables = struct let _v : (Parsetree.arg_label * Parsetree.expression) = # 3317 "src/ocaml/preprocess/parser_raw.mly" ( (Labelled _1, _2) ) -# 27371 "src/ocaml/preprocess/parser_raw.ml" +# 26882 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -27394,21 +26905,19 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 27398 "src/ocaml/preprocess/parser_raw.ml" +# 26909 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_label_ in - let _v = - let _loc_label_ = (_startpos_label_, _endpos_label_) in - ( + let _v : (Parsetree.arg_label * Parsetree.expression) = let _loc_label_ = (_startpos_label_, _endpos_label_) in + # 3319 "src/ocaml/preprocess/parser_raw.mly" ( let loc = _loc_label_ in (Labelled label, mkexpvar ~loc label) ) -# 27410 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.arg_label * Parsetree.expression)) - in +# 26920 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -27454,23 +26963,21 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 27458 "src/ocaml/preprocess/parser_raw.ml" +# 26967 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _2 : unit = Obj.magic _2 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__5_ in - let _v = - let _endpos = _endpos__5_ in - let _loc_label_ = (_startpos_label_, _endpos_label_) in - ( + let _v : (Parsetree.arg_label * Parsetree.expression) = let _endpos = _endpos__5_ in + let _loc_label_ = (_startpos_label_, _endpos_label_) in + # 3322 "src/ocaml/preprocess/parser_raw.mly" ( (Labelled label, mkexp_type_constraint_with_modes ~loc:(_startpos__2_, _endpos) ~modes:[] (mkexpvar ~loc:_loc_label_ label) c) ) -# 27472 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.arg_label * Parsetree.expression)) - in +# 26980 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -27496,21 +27003,19 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 27500 "src/ocaml/preprocess/parser_raw.ml" +# 27007 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_label_ in - let _v = - let _loc_label_ = (_startpos_label_, _endpos_label_) in - ( + let _v : (Parsetree.arg_label * Parsetree.expression) = let _loc_label_ = (_startpos_label_, _endpos_label_) in + # 3325 "src/ocaml/preprocess/parser_raw.mly" ( let loc = _loc_label_ in (Optional label, mkexpvar ~loc label) ) -# 27512 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.arg_label * Parsetree.expression)) - in +# 27018 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -27537,7 +27042,7 @@ module Tables = struct let _1 : ( # 1116 "src/ocaml/preprocess/parser_raw.mly" (string) -# 27541 "src/ocaml/preprocess/parser_raw.ml" +# 27046 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -27545,7 +27050,7 @@ module Tables = struct let _v : (Parsetree.arg_label * Parsetree.expression) = # 3328 "src/ocaml/preprocess/parser_raw.mly" ( (Optional _1, _2) ) -# 27549 "src/ocaml/preprocess/parser_raw.ml" +# 27054 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -27595,31 +27100,29 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__6_ in - let _v = - let _5 = - let _1 = _1_inlined1 in - + let _v : (Parsetree.arg_label * Parsetree.expression option * Parsetree.pattern) = let _5 = + let _1 = _1_inlined1 in + # 2834 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 27605 "src/ocaml/preprocess/parser_raw.ml" - - in - let modes0 = +# 27109 "src/ocaml/preprocess/parser_raw.ml" + + in + let modes0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 27611 "src/ocaml/preprocess/parser_raw.ml" - in - let _startpos_modes0_ = _endpos__2_ in - ( +# 27115 "src/ocaml/preprocess/parser_raw.ml" + in + let _startpos_modes0_ = _endpos__2_ in + # 2757 "src/ocaml/preprocess/parser_raw.mly" ( let lbl, pat, cty, modes = x in let loc = _startpos_modes0_, _endpos_x_ in (Optional lbl, _5, mkpat_with_modes ~loc ~pat ~cty ~modes:(modes0 @ modes)) ) -# 27621 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.arg_label * Parsetree.expression option * Parsetree.pattern)) - in +# 27125 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -27675,39 +27178,37 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__6_ in - let _v = - let _5 = - let _1 = _1_inlined2 in - + let _v : (Parsetree.arg_label * Parsetree.expression option * Parsetree.pattern) = let _5 = + let _1 = _1_inlined2 in + # 2834 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 27685 "src/ocaml/preprocess/parser_raw.ml" - - in - let modes0 = - let _1 = _1_inlined1 in - let _1 = +# 27187 "src/ocaml/preprocess/parser_raw.ml" + + in + let modes0 = + let _1 = _1_inlined1 in + let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 27693 "src/ocaml/preprocess/parser_raw.ml" - in - +# 27195 "src/ocaml/preprocess/parser_raw.ml" + in + # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 27698 "src/ocaml/preprocess/parser_raw.ml" - - in - let _startpos_modes0_ = _startpos__1_inlined1_ in - ( +# 27200 "src/ocaml/preprocess/parser_raw.ml" + + in + let _startpos_modes0_ = _startpos__1_inlined1_ in + # 2757 "src/ocaml/preprocess/parser_raw.mly" ( let lbl, pat, cty, modes = x in let loc = _startpos_modes0_, _endpos_x_ in (Optional lbl, _5, mkpat_with_modes ~loc ~pat ~cty ~modes:(modes0 @ modes)) ) -# 27709 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.arg_label * Parsetree.expression option * Parsetree.pattern)) - in +# 27211 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -27733,40 +27234,38 @@ module Tables = struct let _1_inlined1 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 27737 "src/ocaml/preprocess/parser_raw.ml" +# 27238 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined1_ in - let _v = - let _2 = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in - let _1 = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 1296 "src/ocaml/preprocess/parser_raw.mly" - ( mkrhs _1 _sloc ) -# 27753 "src/ocaml/preprocess/parser_raw.ml" - - in + let _v : (Parsetree.arg_label * Parsetree.expression option * Parsetree.pattern) = let _2 = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in + let _1 = let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2857 "src/ocaml/preprocess/parser_raw.mly" - ( (_1.Location.txt, mkpat ~loc:_sloc (Ppat_var _1)) ) -# 27762 "src/ocaml/preprocess/parser_raw.ml" +# 1296 "src/ocaml/preprocess/parser_raw.mly" + ( mkrhs _1 _sloc ) +# 27253 "src/ocaml/preprocess/parser_raw.ml" in - ( + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 2857 "src/ocaml/preprocess/parser_raw.mly" + ( (_1.Location.txt, mkpat ~loc:_sloc (Ppat_var _1)) ) +# 27262 "src/ocaml/preprocess/parser_raw.ml" + + in + # 2763 "src/ocaml/preprocess/parser_raw.mly" ( (Optional (fst _2), None, snd _2) ) -# 27768 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.arg_label * Parsetree.expression option * Parsetree.pattern)) - in +# 27268 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -27814,36 +27313,34 @@ module Tables = struct let _1 : ( # 1116 "src/ocaml/preprocess/parser_raw.mly" (string) -# 27818 "src/ocaml/preprocess/parser_raw.ml" +# 27317 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__6_ in - let _v = - let _5 = - let _1 = _1_inlined1 in - + let _v : (Parsetree.arg_label * Parsetree.expression option * Parsetree.pattern) = let _5 = + let _1 = _1_inlined1 in + # 2834 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 27829 "src/ocaml/preprocess/parser_raw.ml" - - in - let modes0 = +# 27327 "src/ocaml/preprocess/parser_raw.ml" + + in + let modes0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 27835 "src/ocaml/preprocess/parser_raw.ml" - in - let _startpos_modes0_ = _endpos__2_ in - ( +# 27333 "src/ocaml/preprocess/parser_raw.ml" + in + let _startpos_modes0_ = _endpos__2_ in + # 2765 "src/ocaml/preprocess/parser_raw.mly" ( let pat, cty, modes = x in let loc = _startpos_modes0_, _endpos_x_ in (Optional _1, _5, mkpat_with_modes ~loc ~pat ~cty ~modes:(modes0 @ modes)) ) -# 27845 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.arg_label * Parsetree.expression option * Parsetree.pattern)) - in +# 27343 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -27898,44 +27395,42 @@ module Tables = struct let _1 : ( # 1116 "src/ocaml/preprocess/parser_raw.mly" (string) -# 27902 "src/ocaml/preprocess/parser_raw.ml" +# 27399 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__6_ in - let _v = - let _5 = - let _1 = _1_inlined2 in - + let _v : (Parsetree.arg_label * Parsetree.expression option * Parsetree.pattern) = let _5 = + let _1 = _1_inlined2 in + # 2834 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 27913 "src/ocaml/preprocess/parser_raw.ml" - - in - let modes0 = - let _1 = _1_inlined1 in - let _1 = +# 27409 "src/ocaml/preprocess/parser_raw.ml" + + in + let modes0 = + let _1 = _1_inlined1 in + let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 27921 "src/ocaml/preprocess/parser_raw.ml" - in - +# 27417 "src/ocaml/preprocess/parser_raw.ml" + in + # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 27926 "src/ocaml/preprocess/parser_raw.ml" - - in - let _startpos_modes0_ = _startpos__1_inlined1_ in - ( +# 27422 "src/ocaml/preprocess/parser_raw.ml" + + in + let _startpos_modes0_ = _startpos__1_inlined1_ in + # 2765 "src/ocaml/preprocess/parser_raw.mly" ( let pat, cty, modes = x in let loc = _startpos_modes0_, _endpos_x_ in (Optional _1, _5, mkpat_with_modes ~loc ~pat ~cty ~modes:(modes0 @ modes)) ) -# 27937 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.arg_label * Parsetree.expression option * Parsetree.pattern)) - in +# 27433 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -27962,7 +27457,7 @@ module Tables = struct let _1 : ( # 1116 "src/ocaml/preprocess/parser_raw.mly" (string) -# 27966 "src/ocaml/preprocess/parser_raw.ml" +# 27461 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -27970,7 +27465,7 @@ module Tables = struct let _v : (Parsetree.arg_label * Parsetree.expression option * Parsetree.pattern) = # 2771 "src/ocaml/preprocess/parser_raw.mly" ( (Optional _1, None, _2) ) -# 27974 "src/ocaml/preprocess/parser_raw.ml" +# 27469 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -28013,23 +27508,21 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__5_ in - let _v = - let modes0 = + let _v : (Parsetree.arg_label * Parsetree.expression option * Parsetree.pattern) = let modes0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 28021 "src/ocaml/preprocess/parser_raw.ml" - in - let _startpos_modes0_ = _endpos__2_ in - ( +# 27515 "src/ocaml/preprocess/parser_raw.ml" + in + let _startpos_modes0_ = _endpos__2_ in + # 2773 "src/ocaml/preprocess/parser_raw.mly" ( let lbl, pat, cty, modes = x in let loc = _startpos_modes0_, _endpos_x_ in (Labelled lbl, None, mkpat_with_modes ~loc ~pat ~cty ~modes:(modes0 @ modes)) ) -# 28031 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.arg_label * Parsetree.expression option * Parsetree.pattern)) - in +# 27525 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -28078,31 +27571,29 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__5_ in - let _v = - let modes0 = - let _1 = _1_inlined1 in - let _1 = + let _v : (Parsetree.arg_label * Parsetree.expression option * Parsetree.pattern) = let modes0 = + let _1 = _1_inlined1 in + let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 28088 "src/ocaml/preprocess/parser_raw.ml" - in - +# 27580 "src/ocaml/preprocess/parser_raw.ml" + in + # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 28093 "src/ocaml/preprocess/parser_raw.ml" - - in - let _startpos_modes0_ = _startpos__1_inlined1_ in - ( +# 27585 "src/ocaml/preprocess/parser_raw.ml" + + in + let _startpos_modes0_ = _startpos__1_inlined1_ in + # 2773 "src/ocaml/preprocess/parser_raw.mly" ( let lbl, pat, cty, modes = x in let loc = _startpos_modes0_, _endpos_x_ in (Labelled lbl, None, mkpat_with_modes ~loc ~pat ~cty ~modes:(modes0 @ modes)) ) -# 28104 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.arg_label * Parsetree.expression option * Parsetree.pattern)) - in +# 27596 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -28128,40 +27619,38 @@ module Tables = struct let _1_inlined1 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 28132 "src/ocaml/preprocess/parser_raw.ml" +# 27623 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined1_ in - let _v = - let _2 = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in - let _1 = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 1296 "src/ocaml/preprocess/parser_raw.mly" - ( mkrhs _1 _sloc ) -# 28148 "src/ocaml/preprocess/parser_raw.ml" - - in + let _v : (Parsetree.arg_label * Parsetree.expression option * Parsetree.pattern) = let _2 = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in + let _1 = let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2857 "src/ocaml/preprocess/parser_raw.mly" - ( (_1.Location.txt, mkpat ~loc:_sloc (Ppat_var _1)) ) -# 28157 "src/ocaml/preprocess/parser_raw.ml" +# 1296 "src/ocaml/preprocess/parser_raw.mly" + ( mkrhs _1 _sloc ) +# 27638 "src/ocaml/preprocess/parser_raw.ml" in - ( + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 2857 "src/ocaml/preprocess/parser_raw.mly" + ( (_1.Location.txt, mkpat ~loc:_sloc (Ppat_var _1)) ) +# 27647 "src/ocaml/preprocess/parser_raw.ml" + + in + # 2779 "src/ocaml/preprocess/parser_raw.mly" ( (Labelled (fst _2), None, snd _2) ) -# 28163 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.arg_label * Parsetree.expression option * Parsetree.pattern)) - in +# 27653 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -28188,7 +27677,7 @@ module Tables = struct let _1 : ( # 1082 "src/ocaml/preprocess/parser_raw.mly" (string) -# 28192 "src/ocaml/preprocess/parser_raw.ml" +# 27681 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -28196,7 +27685,7 @@ module Tables = struct let _v : (Parsetree.arg_label * Parsetree.expression option * Parsetree.pattern) = # 2781 "src/ocaml/preprocess/parser_raw.mly" ( (Labelled _1, None, _2) ) -# 28200 "src/ocaml/preprocess/parser_raw.ml" +# 27689 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -28238,28 +27727,26 @@ module Tables = struct let _1 : ( # 1082 "src/ocaml/preprocess/parser_raw.mly" (string) -# 28242 "src/ocaml/preprocess/parser_raw.ml" +# 27731 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__5_ in - let _v = - let modes0 = + let _v : (Parsetree.arg_label * Parsetree.expression option * Parsetree.pattern) = let modes0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 28251 "src/ocaml/preprocess/parser_raw.ml" - in - let _startpos_modes0_ = _endpos__2_ in - ( +# 27739 "src/ocaml/preprocess/parser_raw.ml" + in + let _startpos_modes0_ = _endpos__2_ in + # 2783 "src/ocaml/preprocess/parser_raw.mly" ( let pat, cty, modes = x in let loc = _startpos_modes0_, _endpos_x_ in (Labelled _1, None, mkpat_with_modes ~loc ~pat ~cty ~modes:(modes0 @ modes)) ) -# 28261 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.arg_label * Parsetree.expression option * Parsetree.pattern)) - in +# 27749 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -28307,36 +27794,34 @@ module Tables = struct let _1 : ( # 1082 "src/ocaml/preprocess/parser_raw.mly" (string) -# 28311 "src/ocaml/preprocess/parser_raw.ml" +# 27798 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__5_ in - let _v = - let modes0 = - let _1 = _1_inlined1 in - let _1 = + let _v : (Parsetree.arg_label * Parsetree.expression option * Parsetree.pattern) = let modes0 = + let _1 = _1_inlined1 in + let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 28322 "src/ocaml/preprocess/parser_raw.ml" - in - +# 27808 "src/ocaml/preprocess/parser_raw.ml" + in + # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 28327 "src/ocaml/preprocess/parser_raw.ml" - - in - let _startpos_modes0_ = _startpos__1_inlined1_ in - ( +# 27813 "src/ocaml/preprocess/parser_raw.ml" + + in + let _startpos_modes0_ = _startpos__1_inlined1_ in + # 2783 "src/ocaml/preprocess/parser_raw.mly" ( let pat, cty, modes = x in let loc = _startpos_modes0_, _endpos_x_ in (Labelled _1, None, mkpat_with_modes ~loc ~pat ~cty ~modes:(modes0 @ modes)) ) -# 28338 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.arg_label * Parsetree.expression option * Parsetree.pattern)) - in +# 27824 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -28384,30 +27869,28 @@ module Tables = struct let _1 : ( # 1082 "src/ocaml/preprocess/parser_raw.mly" (string) -# 28388 "src/ocaml/preprocess/parser_raw.ml" +# 27873 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__5_ in - let _v = - let modes = - let _1 = _1_inlined1 in - + let _v : (Parsetree.arg_label * Parsetree.expression option * Parsetree.pattern) = let modes = + let _1 = _1_inlined1 in + # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 28399 "src/ocaml/preprocess/parser_raw.ml" - - in - let _startpos_modes_ = _startpos__1_inlined1_ in - ( +# 27883 "src/ocaml/preprocess/parser_raw.ml" + + in + let _startpos_modes_ = _startpos__1_inlined1_ in + # 2789 "src/ocaml/preprocess/parser_raw.mly" ( let loc = _startpos_modes_, _endpos_pat_ in (Labelled _1, None, mkpat_with_modes ~loc ~pat ~cty:None ~modes) ) -# 28409 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.arg_label * Parsetree.expression option * Parsetree.pattern)) - in +# 27893 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -28431,7 +27914,7 @@ module Tables = struct let _v : (Parsetree.arg_label * Parsetree.expression option * Parsetree.pattern) = # 2794 "src/ocaml/preprocess/parser_raw.mly" ( (Nolabel, None, _1) ) -# 28435 "src/ocaml/preprocess/parser_raw.ml" +# 27918 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -28474,26 +27957,24 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in - let _v = - let modes = - let _1 = _1_inlined1 in - + let _v : (Parsetree.arg_label * Parsetree.expression option * Parsetree.pattern) = let modes = + let _1 = _1_inlined1 in + # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 28484 "src/ocaml/preprocess/parser_raw.ml" - - in - let _startpos_modes_ = _startpos__1_inlined1_ in - ( +# 27966 "src/ocaml/preprocess/parser_raw.ml" + + in + let _startpos_modes_ = _startpos__1_inlined1_ in + # 2796 "src/ocaml/preprocess/parser_raw.mly" ( let pat, cty = x in let loc = _startpos_modes_, _endpos_x_ in (Nolabel, None, mkpat_with_modes ~loc ~pat ~cty ~modes) ) -# 28495 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.arg_label * Parsetree.expression option * Parsetree.pattern)) - in +# 27977 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -28528,23 +28009,21 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in - let _v = - let modes0 = + let _v : (Parsetree.arg_label * Parsetree.expression option * Parsetree.pattern) = let modes0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 28536 "src/ocaml/preprocess/parser_raw.ml" - in - let _startpos_modes0_ = _endpos__1_ in - ( +# 28016 "src/ocaml/preprocess/parser_raw.ml" + in + let _startpos_modes0_ = _endpos__1_ in + # 2802 "src/ocaml/preprocess/parser_raw.mly" ( let pat, cty, modes = x in let loc = _startpos_modes0_, _endpos_x_ in (Nolabel, None, mkpat_with_modes ~loc ~pat ~cty ~modes:(modes0 @ modes)) ) -# 28546 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.arg_label * Parsetree.expression option * Parsetree.pattern)) - in +# 28026 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -28586,31 +28065,29 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in - let _v = - let modes0 = - let _1 = _1_inlined1 in - let _1 = + let _v : (Parsetree.arg_label * Parsetree.expression option * Parsetree.pattern) = let modes0 = + let _1 = _1_inlined1 in + let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 28596 "src/ocaml/preprocess/parser_raw.ml" - in - +# 28074 "src/ocaml/preprocess/parser_raw.ml" + in + # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 28601 "src/ocaml/preprocess/parser_raw.ml" - - in - let _startpos_modes0_ = _startpos__1_inlined1_ in - ( +# 28079 "src/ocaml/preprocess/parser_raw.ml" + + in + let _startpos_modes0_ = _startpos__1_inlined1_ in + # 2802 "src/ocaml/preprocess/parser_raw.mly" ( let pat, cty, modes = x in let loc = _startpos_modes0_, _endpos_x_ in (Nolabel, None, mkpat_with_modes ~loc ~pat ~cty ~modes:(modes0 @ modes)) ) -# 28612 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.arg_label * Parsetree.expression option * Parsetree.pattern)) - in +# 28090 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -28679,67 +28156,65 @@ module Tables = struct let _1 : ( # 1082 "src/ocaml/preprocess/parser_raw.mly" (string) -# 28683 "src/ocaml/preprocess/parser_raw.ml" +# 28160 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in - let _v = - let x = - let cty = - let _1 = - let bound_vars = - let _1 = - let xs = -# 264 "" + let _v : (Parsetree.arg_label * Parsetree.expression option * Parsetree.pattern) = let x = + let cty = + let _1 = + let bound_vars = + let _1 = + let xs = +# 253 "" ( List.rev xs ) -# 28697 "src/ocaml/preprocess/parser_raw.ml" - in - +# 28173 "src/ocaml/preprocess/parser_raw.ml" + in + # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 28702 "src/ocaml/preprocess/parser_raw.ml" - - in +# 28178 "src/ocaml/preprocess/parser_raw.ml" + in + # 4481 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 28708 "src/ocaml/preprocess/parser_raw.ml" - - in +# 28184 "src/ocaml/preprocess/parser_raw.ml" + in + # 2897 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 28714 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos_inner_type_, _startpos_xs_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 28190 "src/ocaml/preprocess/parser_raw.ml" + in + let (_endpos__1_, _startpos__1_) = (_endpos_inner_type_, _startpos_xs_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 28724 "src/ocaml/preprocess/parser_raw.ml" - - in +# 28200 "src/ocaml/preprocess/parser_raw.ml" + in + # 2898 "src/ocaml/preprocess/parser_raw.mly" ( pat, Some cty ) -# 28730 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos_x_, _startpos_x_) = (_endpos_inner_type_, _startpos_pat_) in - let _loc_x_ = (_startpos_x_, _endpos_x_) in - ( +# 28206 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos_x_, _startpos_x_) = (_endpos_inner_type_, _startpos_pat_) in + let _loc_x_ = (_startpos_x_, _endpos_x_) in + # 2808 "src/ocaml/preprocess/parser_raw.mly" ( let pat, cty = x in (Labelled _1, None, mkpat_with_modes ~loc:_loc_x_ ~pat ~cty ~modes:[]) ) -# 28741 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.arg_label * Parsetree.expression option * Parsetree.pattern)) - in +# 28217 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -28815,76 +28290,74 @@ module Tables = struct let _1 : ( # 1082 "src/ocaml/preprocess/parser_raw.mly" (string) -# 28819 "src/ocaml/preprocess/parser_raw.ml" +# 28294 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__5_ in - let _v = - let x = - let cty = - let _1 = - let bound_vars = - let _1 = - let xs = -# 264 "" + let _v : (Parsetree.arg_label * Parsetree.expression option * Parsetree.pattern) = let x = + let cty = + let _1 = + let bound_vars = + let _1 = + let xs = +# 253 "" ( List.rev xs ) -# 28833 "src/ocaml/preprocess/parser_raw.ml" - in - +# 28307 "src/ocaml/preprocess/parser_raw.ml" + in + # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 28838 "src/ocaml/preprocess/parser_raw.ml" - - in +# 28312 "src/ocaml/preprocess/parser_raw.ml" + in + # 4481 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 28844 "src/ocaml/preprocess/parser_raw.ml" - - in +# 28318 "src/ocaml/preprocess/parser_raw.ml" + in + # 2897 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 28850 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos_inner_type_, _startpos_xs_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 28324 "src/ocaml/preprocess/parser_raw.ml" + in + let (_endpos__1_, _startpos__1_) = (_endpos_inner_type_, _startpos_xs_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 28860 "src/ocaml/preprocess/parser_raw.ml" - - in +# 28334 "src/ocaml/preprocess/parser_raw.ml" + in + # 2898 "src/ocaml/preprocess/parser_raw.mly" ( pat, Some cty ) -# 28866 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_x_ = _endpos_inner_type_ in - let modes = - let _1 = _1_inlined1 in - +# 28340 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_x_ = _endpos_inner_type_ in + let modes = + let _1 = _1_inlined1 in + # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 28875 "src/ocaml/preprocess/parser_raw.ml" - - in - let _startpos_modes_ = _startpos__1_inlined1_ in - ( +# 28349 "src/ocaml/preprocess/parser_raw.ml" + + in + let _startpos_modes_ = _startpos__1_inlined1_ in + # 2813 "src/ocaml/preprocess/parser_raw.mly" ( let pat, cty = x in let loc = _startpos_modes_, _endpos_x_ in (Labelled _1, None, mkpat_with_modes ~loc ~pat ~cty ~modes) ) -# 28886 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.arg_label * Parsetree.expression option * Parsetree.pattern)) - in +# 28360 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -28947,62 +28420,60 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in - let _v = - let x = - let cty = - let _1 = - let bound_vars = - let _1 = - let xs = -# 264 "" + let _v : (Parsetree.arg_label * Parsetree.expression option * Parsetree.pattern) = let x = + let cty = + let _1 = + let bound_vars = + let _1 = + let xs = +# 253 "" ( List.rev xs ) -# 28960 "src/ocaml/preprocess/parser_raw.ml" - in - +# 28432 "src/ocaml/preprocess/parser_raw.ml" + in + # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 28965 "src/ocaml/preprocess/parser_raw.ml" - - in +# 28437 "src/ocaml/preprocess/parser_raw.ml" + in + # 4481 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 28971 "src/ocaml/preprocess/parser_raw.ml" - - in +# 28443 "src/ocaml/preprocess/parser_raw.ml" + in + # 2897 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 28977 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos_inner_type_, _startpos_xs_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 28449 "src/ocaml/preprocess/parser_raw.ml" + in + let (_endpos__1_, _startpos__1_) = (_endpos_inner_type_, _startpos_xs_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 28987 "src/ocaml/preprocess/parser_raw.ml" - - in +# 28459 "src/ocaml/preprocess/parser_raw.ml" + in + # 2898 "src/ocaml/preprocess/parser_raw.mly" ( pat, Some cty ) -# 28993 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos_x_, _startpos_x_) = (_endpos_inner_type_, _startpos_pat_) in - let _loc_x_ = (_startpos_x_, _endpos_x_) in - ( +# 28465 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos_x_, _startpos_x_) = (_endpos_inner_type_, _startpos_pat_) in + let _loc_x_ = (_startpos_x_, _endpos_x_) in + # 2819 "src/ocaml/preprocess/parser_raw.mly" ( let pat, cty = x in (Nolabel, None, mkpat_with_modes ~loc:_loc_x_ ~pat ~cty ~modes:[]) ) -# 29004 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.arg_label * Parsetree.expression option * Parsetree.pattern)) - in +# 28476 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -29037,21 +28508,19 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined1_ in - let _v = - let _3 = - let _1 = _1_inlined1 in - + let _v : ((string option * Parsetree.pattern) list) = let _3 = + let _1 = _1_inlined1 in + # 3782 "src/ocaml/preprocess/parser_raw.mly" ( None, _1 ) -# 29047 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 28517 "src/ocaml/preprocess/parser_raw.ml" + + in + # 3810 "src/ocaml/preprocess/parser_raw.mly" ( _3 :: _1 ) -# 29053 "src/ocaml/preprocess/parser_raw.ml" - : ((string option * Parsetree.pattern) list)) - in +# 28523 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -29090,28 +28559,26 @@ module Tables = struct let _1_inlined1 : ( # 1082 "src/ocaml/preprocess/parser_raw.mly" (string) -# 29094 "src/ocaml/preprocess/parser_raw.ml" +# 28563 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in let _1 : ((string option * Parsetree.pattern) list) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__2_inlined1_ in - let _v = - let _3 = - let (_2, _1) = (_2_inlined1, _1_inlined1) in - + let _v : ((string option * Parsetree.pattern) list) = let _3 = + let (_2, _1) = (_2_inlined1, _1_inlined1) in + # 3784 "src/ocaml/preprocess/parser_raw.mly" ( Some _1, _2 ) -# 29107 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 28575 "src/ocaml/preprocess/parser_raw.ml" + + in + # 3810 "src/ocaml/preprocess/parser_raw.mly" ( _3 :: _1 ) -# 29113 "src/ocaml/preprocess/parser_raw.ml" - : ((string option * Parsetree.pattern) list)) - in +# 28581 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -29149,7 +28616,7 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 29153 "src/ocaml/preprocess/parser_raw.ml" +# 28620 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in @@ -29157,22 +28624,20 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_label_ in - let _v = - let _3 = - let _loc_label_ = (_startpos_label_, _endpos_label_) in - + let _v : ((string option * Parsetree.pattern) list) = let _3 = + let _loc_label_ = (_startpos_label_, _endpos_label_) in + # 3786 "src/ocaml/preprocess/parser_raw.mly" ( let loc = _loc_label_ in Some label, mkpatvar ~loc label ) -# 29168 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 28634 "src/ocaml/preprocess/parser_raw.ml" + + in + # 3810 "src/ocaml/preprocess/parser_raw.mly" ( _3 :: _1 ) -# 29174 "src/ocaml/preprocess/parser_raw.ml" - : ((string option * Parsetree.pattern) list)) - in +# 28640 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -29237,7 +28702,7 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 29241 "src/ocaml/preprocess/parser_raw.ml" +# 28706 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _2_inlined1 : unit = Obj.magic _2_inlined1 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in @@ -29246,26 +28711,24 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__6_ in - let _v = - let _3 = - let _startpos__2_ = _startpos__2_inlined1_ in - let _endpos = _endpos__6_ in - let _loc_label_ = (_startpos_label_, _endpos_label_) in - + let _v : ((string option * Parsetree.pattern) list) = let _3 = + let _startpos__2_ = _startpos__2_inlined1_ in + let _endpos = _endpos__6_ in + let _loc_label_ = (_startpos_label_, _endpos_label_) in + # 3789 "src/ocaml/preprocess/parser_raw.mly" ( let lbl_loc = _loc_label_ in let pat_loc = _startpos__2_, _endpos in let pat = mkpatvar ~loc:lbl_loc label in Some label, mkpat_with_modes ~loc:pat_loc ~modes:[] ~pat ~cty:(Some cty) ) -# 29261 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 28725 "src/ocaml/preprocess/parser_raw.ml" + + in + # 3810 "src/ocaml/preprocess/parser_raw.mly" ( _3 :: _1 ) -# 29267 "src/ocaml/preprocess/parser_raw.ml" - : ((string option * Parsetree.pattern) list)) - in +# 28731 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -29300,26 +28763,24 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined1_ in - let _v = - let _3 = - let _1 = _1_inlined1 in - + let _v : ((string option * Parsetree.pattern) list) = let _3 = + let _1 = _1_inlined1 in + # 3782 "src/ocaml/preprocess/parser_raw.mly" ( None, _1 ) -# 29310 "src/ocaml/preprocess/parser_raw.ml" - - in - let _1 = +# 28772 "src/ocaml/preprocess/parser_raw.ml" + + in + let _1 = # 3796 "src/ocaml/preprocess/parser_raw.mly" ( None, _1 ) -# 29316 "src/ocaml/preprocess/parser_raw.ml" - in - ( +# 28778 "src/ocaml/preprocess/parser_raw.ml" + in + # 3812 "src/ocaml/preprocess/parser_raw.mly" ( [ _3; _1 ] ) -# 29321 "src/ocaml/preprocess/parser_raw.ml" - : ((string option * Parsetree.pattern) list)) - in +# 28783 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -29358,33 +28819,31 @@ module Tables = struct let _1_inlined1 : ( # 1082 "src/ocaml/preprocess/parser_raw.mly" (string) -# 29362 "src/ocaml/preprocess/parser_raw.ml" +# 28823 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in let _1 : (Parsetree.pattern) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__2_inlined1_ in - let _v = - let _3 = - let (_2, _1) = (_2_inlined1, _1_inlined1) in - + let _v : ((string option * Parsetree.pattern) list) = let _3 = + let (_2, _1) = (_2_inlined1, _1_inlined1) in + # 3784 "src/ocaml/preprocess/parser_raw.mly" ( Some _1, _2 ) -# 29375 "src/ocaml/preprocess/parser_raw.ml" - - in - let _1 = +# 28835 "src/ocaml/preprocess/parser_raw.ml" + + in + let _1 = # 3796 "src/ocaml/preprocess/parser_raw.mly" ( None, _1 ) -# 29381 "src/ocaml/preprocess/parser_raw.ml" - in - ( +# 28841 "src/ocaml/preprocess/parser_raw.ml" + in + # 3812 "src/ocaml/preprocess/parser_raw.mly" ( [ _3; _1 ] ) -# 29386 "src/ocaml/preprocess/parser_raw.ml" - : ((string option * Parsetree.pattern) list)) - in +# 28846 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -29422,7 +28881,7 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 29426 "src/ocaml/preprocess/parser_raw.ml" +# 28885 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in @@ -29430,27 +28889,25 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_label_ in - let _v = - let _3 = - let _loc_label_ = (_startpos_label_, _endpos_label_) in - + let _v : ((string option * Parsetree.pattern) list) = let _3 = + let _loc_label_ = (_startpos_label_, _endpos_label_) in + # 3786 "src/ocaml/preprocess/parser_raw.mly" ( let loc = _loc_label_ in Some label, mkpatvar ~loc label ) -# 29441 "src/ocaml/preprocess/parser_raw.ml" - - in - let _1 = +# 28899 "src/ocaml/preprocess/parser_raw.ml" + + in + let _1 = # 3796 "src/ocaml/preprocess/parser_raw.mly" ( None, _1 ) -# 29447 "src/ocaml/preprocess/parser_raw.ml" - in - ( +# 28905 "src/ocaml/preprocess/parser_raw.ml" + in + # 3812 "src/ocaml/preprocess/parser_raw.mly" ( [ _3; _1 ] ) -# 29452 "src/ocaml/preprocess/parser_raw.ml" - : ((string option * Parsetree.pattern) list)) - in +# 28910 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -29515,7 +28972,7 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 29519 "src/ocaml/preprocess/parser_raw.ml" +# 28976 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _2_inlined1 : unit = Obj.magic _2_inlined1 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in @@ -29524,31 +28981,29 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__6_ in - let _v = - let _3 = - let _startpos__2_ = _startpos__2_inlined1_ in - let _endpos = _endpos__6_ in - let _loc_label_ = (_startpos_label_, _endpos_label_) in - + let _v : ((string option * Parsetree.pattern) list) = let _3 = + let _startpos__2_ = _startpos__2_inlined1_ in + let _endpos = _endpos__6_ in + let _loc_label_ = (_startpos_label_, _endpos_label_) in + # 3789 "src/ocaml/preprocess/parser_raw.mly" ( let lbl_loc = _loc_label_ in let pat_loc = _startpos__2_, _endpos in let pat = mkpatvar ~loc:lbl_loc label in Some label, mkpat_with_modes ~loc:pat_loc ~modes:[] ~pat ~cty:(Some cty) ) -# 29539 "src/ocaml/preprocess/parser_raw.ml" - - in - let _1 = +# 28995 "src/ocaml/preprocess/parser_raw.ml" + + in + let _1 = # 3796 "src/ocaml/preprocess/parser_raw.mly" ( None, _1 ) -# 29545 "src/ocaml/preprocess/parser_raw.ml" - in - ( +# 29001 "src/ocaml/preprocess/parser_raw.ml" + in + # 3812 "src/ocaml/preprocess/parser_raw.mly" ( [ _3; _1 ] ) -# 29550 "src/ocaml/preprocess/parser_raw.ml" - : ((string option * Parsetree.pattern) list)) - in +# 29006 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -29589,34 +29044,32 @@ module Tables = struct let _1 : ( # 1082 "src/ocaml/preprocess/parser_raw.mly" (string) -# 29593 "src/ocaml/preprocess/parser_raw.ml" +# 29048 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined1_ in - let _v = - let _3 = - let _1 = _1_inlined1 in - + let _v : ((string option * Parsetree.pattern) list) = let _3 = + let _1 = _1_inlined1 in + # 3782 "src/ocaml/preprocess/parser_raw.mly" ( None, _1 ) -# 29604 "src/ocaml/preprocess/parser_raw.ml" - - in - let _1 = - let _2 = _2_inlined1 in - +# 29058 "src/ocaml/preprocess/parser_raw.ml" + + in + let _1 = + let _2 = _2_inlined1 in + # 3798 "src/ocaml/preprocess/parser_raw.mly" ( Some _1, _2 ) -# 29612 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 29066 "src/ocaml/preprocess/parser_raw.ml" + + in + # 3812 "src/ocaml/preprocess/parser_raw.mly" ( [ _3; _1 ] ) -# 29618 "src/ocaml/preprocess/parser_raw.ml" - : ((string option * Parsetree.pattern) list)) - in +# 29072 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -29661,41 +29114,39 @@ module Tables = struct let _1_inlined1 : ( # 1082 "src/ocaml/preprocess/parser_raw.mly" (string) -# 29665 "src/ocaml/preprocess/parser_raw.ml" +# 29118 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in let _2_inlined1 : (Parsetree.pattern) = Obj.magic _2_inlined1 in let _1 : ( # 1082 "src/ocaml/preprocess/parser_raw.mly" (string) -# 29672 "src/ocaml/preprocess/parser_raw.ml" +# 29125 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__2_inlined2_ in - let _v = - let _3 = - let (_2, _1) = (_2_inlined2, _1_inlined1) in - + let _v : ((string option * Parsetree.pattern) list) = let _3 = + let (_2, _1) = (_2_inlined2, _1_inlined1) in + # 3784 "src/ocaml/preprocess/parser_raw.mly" ( Some _1, _2 ) -# 29683 "src/ocaml/preprocess/parser_raw.ml" - - in - let _1 = - let _2 = _2_inlined1 in - +# 29135 "src/ocaml/preprocess/parser_raw.ml" + + in + let _1 = + let _2 = _2_inlined1 in + # 3798 "src/ocaml/preprocess/parser_raw.mly" ( Some _1, _2 ) -# 29691 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 29143 "src/ocaml/preprocess/parser_raw.ml" + + in + # 3812 "src/ocaml/preprocess/parser_raw.mly" ( [ _3; _1 ] ) -# 29697 "src/ocaml/preprocess/parser_raw.ml" - : ((string option * Parsetree.pattern) list)) - in +# 29149 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -29739,7 +29190,7 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 29743 "src/ocaml/preprocess/parser_raw.ml" +# 29194 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in @@ -29747,35 +29198,33 @@ module Tables = struct let _1 : ( # 1082 "src/ocaml/preprocess/parser_raw.mly" (string) -# 29751 "src/ocaml/preprocess/parser_raw.ml" +# 29202 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_label_ in - let _v = - let _3 = - let _loc_label_ = (_startpos_label_, _endpos_label_) in - + let _v : ((string option * Parsetree.pattern) list) = let _3 = + let _loc_label_ = (_startpos_label_, _endpos_label_) in + # 3786 "src/ocaml/preprocess/parser_raw.mly" ( let loc = _loc_label_ in Some label, mkpatvar ~loc label ) -# 29763 "src/ocaml/preprocess/parser_raw.ml" - - in - let _1 = - let _2 = _2_inlined1 in - +# 29213 "src/ocaml/preprocess/parser_raw.ml" + + in + let _1 = + let _2 = _2_inlined1 in + # 3798 "src/ocaml/preprocess/parser_raw.mly" ( Some _1, _2 ) -# 29771 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 29221 "src/ocaml/preprocess/parser_raw.ml" + + in + # 3812 "src/ocaml/preprocess/parser_raw.mly" ( [ _3; _1 ] ) -# 29777 "src/ocaml/preprocess/parser_raw.ml" - : ((string option * Parsetree.pattern) list)) - in +# 29227 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -29846,7 +29295,7 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 29850 "src/ocaml/preprocess/parser_raw.ml" +# 29299 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _2_inlined2 : unit = Obj.magic _2_inlined2 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in @@ -29855,39 +29304,37 @@ module Tables = struct let _1 : ( # 1082 "src/ocaml/preprocess/parser_raw.mly" (string) -# 29859 "src/ocaml/preprocess/parser_raw.ml" +# 29308 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__6_ in - let _v = - let _3 = - let _startpos__2_ = _startpos__2_inlined2_ in - let _endpos = _endpos__6_ in - let _loc_label_ = (_startpos_label_, _endpos_label_) in - + let _v : ((string option * Parsetree.pattern) list) = let _3 = + let _startpos__2_ = _startpos__2_inlined2_ in + let _endpos = _endpos__6_ in + let _loc_label_ = (_startpos_label_, _endpos_label_) in + # 3789 "src/ocaml/preprocess/parser_raw.mly" ( let lbl_loc = _loc_label_ in let pat_loc = _startpos__2_, _endpos in let pat = mkpatvar ~loc:lbl_loc label in Some label, mkpat_with_modes ~loc:pat_loc ~modes:[] ~pat ~cty:(Some cty) ) -# 29875 "src/ocaml/preprocess/parser_raw.ml" - - in - let _1 = - let _2 = _2_inlined1 in - +# 29323 "src/ocaml/preprocess/parser_raw.ml" + + in + let _1 = + let _2 = _2_inlined1 in + # 3798 "src/ocaml/preprocess/parser_raw.mly" ( Some _1, _2 ) -# 29883 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 29331 "src/ocaml/preprocess/parser_raw.ml" + + in + # 3812 "src/ocaml/preprocess/parser_raw.mly" ( [ _3; _1 ] ) -# 29889 "src/ocaml/preprocess/parser_raw.ml" - : ((string option * Parsetree.pattern) list)) - in +# 29337 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -29927,36 +29374,34 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 29931 "src/ocaml/preprocess/parser_raw.ml" +# 29378 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined1_ in - let _v = - let _3 = - let _1 = _1_inlined1 in - + let _v : ((string option * Parsetree.pattern) list) = let _3 = + let _1 = _1_inlined1 in + # 3782 "src/ocaml/preprocess/parser_raw.mly" ( None, _1 ) -# 29943 "src/ocaml/preprocess/parser_raw.ml" - - in - let _1 = - let _loc_label_ = (_startpos_label_, _endpos_label_) in - +# 29389 "src/ocaml/preprocess/parser_raw.ml" + + in + let _1 = + let _loc_label_ = (_startpos_label_, _endpos_label_) in + # 3800 "src/ocaml/preprocess/parser_raw.mly" ( let loc = _loc_label_ in Some label, mkpatvar ~loc label ) -# 29952 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 29398 "src/ocaml/preprocess/parser_raw.ml" + + in + # 3812 "src/ocaml/preprocess/parser_raw.mly" ( [ _3; _1 ] ) -# 29958 "src/ocaml/preprocess/parser_raw.ml" - : ((string option * Parsetree.pattern) list)) - in +# 29404 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -30001,42 +29446,40 @@ module Tables = struct let _1_inlined1 : ( # 1082 "src/ocaml/preprocess/parser_raw.mly" (string) -# 30005 "src/ocaml/preprocess/parser_raw.ml" +# 29450 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 30011 "src/ocaml/preprocess/parser_raw.ml" +# 29456 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__2_inlined1_ in - let _v = - let _3 = - let (_2, _1) = (_2_inlined1, _1_inlined1) in - + let _v : ((string option * Parsetree.pattern) list) = let _3 = + let (_2, _1) = (_2_inlined1, _1_inlined1) in + # 3784 "src/ocaml/preprocess/parser_raw.mly" ( Some _1, _2 ) -# 30023 "src/ocaml/preprocess/parser_raw.ml" - - in - let _1 = - let _loc_label_ = (_startpos_label_, _endpos_label_) in - +# 29467 "src/ocaml/preprocess/parser_raw.ml" + + in + let _1 = + let _loc_label_ = (_startpos_label_, _endpos_label_) in + # 3800 "src/ocaml/preprocess/parser_raw.mly" ( let loc = _loc_label_ in Some label, mkpatvar ~loc label ) -# 30032 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 29476 "src/ocaml/preprocess/parser_raw.ml" + + in + # 3812 "src/ocaml/preprocess/parser_raw.mly" ( [ _3; _1 ] ) -# 30038 "src/ocaml/preprocess/parser_raw.ml" - : ((string option * Parsetree.pattern) list)) - in +# 29482 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -30080,45 +29523,43 @@ module Tables = struct let label_inlined1 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 30084 "src/ocaml/preprocess/parser_raw.ml" +# 29527 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label_inlined1 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 30091 "src/ocaml/preprocess/parser_raw.ml" +# 29534 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_label_inlined1_ in - let _v = - let _3 = - let (_endpos_label_, _startpos_label_, label) = (_endpos_label_inlined1_, _startpos_label_inlined1_, label_inlined1) in - let _loc_label_ = (_startpos_label_, _endpos_label_) in - + let _v : ((string option * Parsetree.pattern) list) = let _3 = + let (_endpos_label_, _startpos_label_, label) = (_endpos_label_inlined1_, _startpos_label_inlined1_, label_inlined1) in + let _loc_label_ = (_startpos_label_, _endpos_label_) in + # 3786 "src/ocaml/preprocess/parser_raw.mly" ( let loc = _loc_label_ in Some label, mkpatvar ~loc label ) -# 30105 "src/ocaml/preprocess/parser_raw.ml" - - in - let _1 = - let _loc_label_ = (_startpos_label_, _endpos_label_) in - +# 29547 "src/ocaml/preprocess/parser_raw.ml" + + in + let _1 = + let _loc_label_ = (_startpos_label_, _endpos_label_) in + # 3800 "src/ocaml/preprocess/parser_raw.mly" ( let loc = _loc_label_ in Some label, mkpatvar ~loc label ) -# 30114 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 29556 "src/ocaml/preprocess/parser_raw.ml" + + in + # 3812 "src/ocaml/preprocess/parser_raw.mly" ( [ _3; _1 ] ) -# 30120 "src/ocaml/preprocess/parser_raw.ml" - : ((string option * Parsetree.pattern) list)) - in +# 29562 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -30189,7 +29630,7 @@ module Tables = struct let label_inlined1 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 30193 "src/ocaml/preprocess/parser_raw.ml" +# 29634 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label_inlined1 in let _2_inlined1 : unit = Obj.magic _2_inlined1 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in @@ -30197,41 +29638,39 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 30201 "src/ocaml/preprocess/parser_raw.ml" +# 29642 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__6_ in - let _v = - let _3 = - let (_endpos_label_, _startpos_label_, _startpos__2_, label) = (_endpos_label_inlined1_, _startpos_label_inlined1_, _startpos__2_inlined1_, label_inlined1) in - let _endpos = _endpos__6_ in - let _loc_label_ = (_startpos_label_, _endpos_label_) in - + let _v : ((string option * Parsetree.pattern) list) = let _3 = + let (_endpos_label_, _startpos_label_, _startpos__2_, label) = (_endpos_label_inlined1_, _startpos_label_inlined1_, _startpos__2_inlined1_, label_inlined1) in + let _endpos = _endpos__6_ in + let _loc_label_ = (_startpos_label_, _endpos_label_) in + # 3789 "src/ocaml/preprocess/parser_raw.mly" ( let lbl_loc = _loc_label_ in let pat_loc = _startpos__2_, _endpos in let pat = mkpatvar ~loc:lbl_loc label in Some label, mkpat_with_modes ~loc:pat_loc ~modes:[] ~pat ~cty:(Some cty) ) -# 30218 "src/ocaml/preprocess/parser_raw.ml" - - in - let _1 = - let _loc_label_ = (_startpos_label_, _endpos_label_) in - +# 29658 "src/ocaml/preprocess/parser_raw.ml" + + in + let _1 = + let _loc_label_ = (_startpos_label_, _endpos_label_) in + # 3800 "src/ocaml/preprocess/parser_raw.mly" ( let loc = _loc_label_ in Some label, mkpatvar ~loc label ) -# 30227 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 29667 "src/ocaml/preprocess/parser_raw.ml" + + in + # 3812 "src/ocaml/preprocess/parser_raw.mly" ( [ _3; _1 ] ) -# 30233 "src/ocaml/preprocess/parser_raw.ml" - : ((string option * Parsetree.pattern) list)) - in +# 29673 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -30298,41 +29737,39 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 30302 "src/ocaml/preprocess/parser_raw.ml" +# 29741 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _2_inlined1 : unit = Obj.magic _2_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined1_ in - let _v = - let _3 = - let _1 = _1_inlined1 in - + let _v : ((string option * Parsetree.pattern) list) = let _3 = + let _1 = _1_inlined1 in + # 3782 "src/ocaml/preprocess/parser_raw.mly" ( None, _1 ) -# 30315 "src/ocaml/preprocess/parser_raw.ml" - - in - let _1 = - let _startpos__2_ = _startpos__2_inlined1_ in - let _endpos = _endpos__6_ in - let _loc_label_ = (_startpos_label_, _endpos_label_) in - +# 29753 "src/ocaml/preprocess/parser_raw.ml" + + in + let _1 = + let _startpos__2_ = _startpos__2_inlined1_ in + let _endpos = _endpos__6_ in + let _loc_label_ = (_startpos_label_, _endpos_label_) in + # 3803 "src/ocaml/preprocess/parser_raw.mly" ( let lbl_loc = _loc_label_ in let pat_loc = _startpos__2_, _endpos in let pat = mkpatvar ~loc:lbl_loc label in Some label, mkpat_with_modes ~loc:pat_loc ~modes:[] ~pat ~cty:(Some cty) ) -# 30328 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 29766 "src/ocaml/preprocess/parser_raw.ml" + + in + # 3812 "src/ocaml/preprocess/parser_raw.mly" ( [ _3; _1 ] ) -# 30334 "src/ocaml/preprocess/parser_raw.ml" - : ((string option * Parsetree.pattern) list)) - in +# 29772 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -30401,7 +29838,7 @@ module Tables = struct let _1_inlined1 : ( # 1082 "src/ocaml/preprocess/parser_raw.mly" (string) -# 30405 "src/ocaml/preprocess/parser_raw.ml" +# 29842 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in let _6 : unit = Obj.magic _6 in @@ -30410,41 +29847,39 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 30414 "src/ocaml/preprocess/parser_raw.ml" +# 29851 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _2_inlined1 : unit = Obj.magic _2_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__2_inlined2_ in - let _v = - let _3 = - let (_2, _1) = (_2_inlined2, _1_inlined1) in - + let _v : ((string option * Parsetree.pattern) list) = let _3 = + let (_2, _1) = (_2_inlined2, _1_inlined1) in + # 3784 "src/ocaml/preprocess/parser_raw.mly" ( Some _1, _2 ) -# 30427 "src/ocaml/preprocess/parser_raw.ml" - - in - let _1 = - let _startpos__2_ = _startpos__2_inlined1_ in - let _endpos = _endpos__6_ in - let _loc_label_ = (_startpos_label_, _endpos_label_) in - +# 29863 "src/ocaml/preprocess/parser_raw.ml" + + in + let _1 = + let _startpos__2_ = _startpos__2_inlined1_ in + let _endpos = _endpos__6_ in + let _loc_label_ = (_startpos_label_, _endpos_label_) in + # 3803 "src/ocaml/preprocess/parser_raw.mly" ( let lbl_loc = _loc_label_ in let pat_loc = _startpos__2_, _endpos in let pat = mkpatvar ~loc:lbl_loc label in Some label, mkpat_with_modes ~loc:pat_loc ~modes:[] ~pat ~cty:(Some cty) ) -# 30440 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 29876 "src/ocaml/preprocess/parser_raw.ml" + + in + # 3812 "src/ocaml/preprocess/parser_raw.mly" ( [ _3; _1 ] ) -# 30446 "src/ocaml/preprocess/parser_raw.ml" - : ((string option * Parsetree.pattern) list)) - in +# 29882 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -30512,7 +29947,7 @@ module Tables = struct let label_inlined1 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 30516 "src/ocaml/preprocess/parser_raw.ml" +# 29951 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label_inlined1 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in @@ -30522,43 +29957,41 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 30526 "src/ocaml/preprocess/parser_raw.ml" +# 29961 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _2_inlined1 : unit = Obj.magic _2_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_label_inlined1_ in - let _v = - let _3 = - let (_endpos_label_, _startpos_label_, label) = (_endpos_label_inlined1_, _startpos_label_inlined1_, label_inlined1) in - let _loc_label_ = (_startpos_label_, _endpos_label_) in - + let _v : ((string option * Parsetree.pattern) list) = let _3 = + let (_endpos_label_, _startpos_label_, label) = (_endpos_label_inlined1_, _startpos_label_inlined1_, label_inlined1) in + let _loc_label_ = (_startpos_label_, _endpos_label_) in + # 3786 "src/ocaml/preprocess/parser_raw.mly" ( let loc = _loc_label_ in Some label, mkpatvar ~loc label ) -# 30541 "src/ocaml/preprocess/parser_raw.ml" - - in - let _1 = - let _startpos__2_ = _startpos__2_inlined1_ in - let _endpos = _endpos__6_ in - let _loc_label_ = (_startpos_label_, _endpos_label_) in - +# 29975 "src/ocaml/preprocess/parser_raw.ml" + + in + let _1 = + let _startpos__2_ = _startpos__2_inlined1_ in + let _endpos = _endpos__6_ in + let _loc_label_ = (_startpos_label_, _endpos_label_) in + # 3803 "src/ocaml/preprocess/parser_raw.mly" ( let lbl_loc = _loc_label_ in let pat_loc = _startpos__2_, _endpos in let pat = mkpatvar ~loc:lbl_loc label in Some label, mkpat_with_modes ~loc:pat_loc ~modes:[] ~pat ~cty:(Some cty) ) -# 30554 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 29988 "src/ocaml/preprocess/parser_raw.ml" + + in + # 3812 "src/ocaml/preprocess/parser_raw.mly" ( [ _3; _1 ] ) -# 30560 "src/ocaml/preprocess/parser_raw.ml" - : ((string option * Parsetree.pattern) list)) - in +# 29994 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -30653,7 +30086,7 @@ module Tables = struct let label_inlined1 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 30657 "src/ocaml/preprocess/parser_raw.ml" +# 30090 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label_inlined1 in let _2_inlined2 : unit = Obj.magic _2_inlined2 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in @@ -30664,46 +30097,44 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 30668 "src/ocaml/preprocess/parser_raw.ml" +# 30101 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _2_inlined1 : unit = Obj.magic _2_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__6_inlined1_ in - let _v = - let _3 = - let (_endpos_label_, _startpos_label_, _endpos__6_, _startpos__2_, cty, label) = (_endpos_label_inlined1_, _startpos_label_inlined1_, _endpos__6_inlined1_, _startpos__2_inlined2_, cty_inlined1, label_inlined1) in - let _endpos = _endpos__6_ in - let _loc_label_ = (_startpos_label_, _endpos_label_) in - + let _v : ((string option * Parsetree.pattern) list) = let _3 = + let (_endpos_label_, _startpos_label_, _endpos__6_, _startpos__2_, cty, label) = (_endpos_label_inlined1_, _startpos_label_inlined1_, _endpos__6_inlined1_, _startpos__2_inlined2_, cty_inlined1, label_inlined1) in + let _endpos = _endpos__6_ in + let _loc_label_ = (_startpos_label_, _endpos_label_) in + # 3789 "src/ocaml/preprocess/parser_raw.mly" ( let lbl_loc = _loc_label_ in let pat_loc = _startpos__2_, _endpos in let pat = mkpatvar ~loc:lbl_loc label in Some label, mkpat_with_modes ~loc:pat_loc ~modes:[] ~pat ~cty:(Some cty) ) -# 30686 "src/ocaml/preprocess/parser_raw.ml" - - in - let _1 = - let _startpos__2_ = _startpos__2_inlined1_ in - let _endpos = _endpos__6_ in - let _loc_label_ = (_startpos_label_, _endpos_label_) in - +# 30118 "src/ocaml/preprocess/parser_raw.ml" + + in + let _1 = + let _startpos__2_ = _startpos__2_inlined1_ in + let _endpos = _endpos__6_ in + let _loc_label_ = (_startpos_label_, _endpos_label_) in + # 3803 "src/ocaml/preprocess/parser_raw.mly" ( let lbl_loc = _loc_label_ in let pat_loc = _startpos__2_, _endpos in let pat = mkpatvar ~loc:lbl_loc label in Some label, mkpat_with_modes ~loc:pat_loc ~modes:[] ~pat ~cty:(Some cty) ) -# 30699 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 30131 "src/ocaml/preprocess/parser_raw.ml" + + in + # 3812 "src/ocaml/preprocess/parser_raw.mly" ( [ _3; _1 ] ) -# 30705 "src/ocaml/preprocess/parser_raw.ml" - : ((string option * Parsetree.pattern) list)) - in +# 30137 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -30738,21 +30169,19 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined1_ in - let _v = - let _3 = - let _1 = _1_inlined1 in - + let _v : ((string option * Parsetree.pattern) list) = let _3 = + let _1 = _1_inlined1 in + # 3782 "src/ocaml/preprocess/parser_raw.mly" ( None, _1 ) -# 30748 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 30178 "src/ocaml/preprocess/parser_raw.ml" + + in + # 3810 "src/ocaml/preprocess/parser_raw.mly" ( _3 :: _1 ) -# 30754 "src/ocaml/preprocess/parser_raw.ml" - : ((string option * Parsetree.pattern) list)) - in +# 30184 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -30791,28 +30220,26 @@ module Tables = struct let _1_inlined1 : ( # 1082 "src/ocaml/preprocess/parser_raw.mly" (string) -# 30795 "src/ocaml/preprocess/parser_raw.ml" +# 30224 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in let _1 : ((string option * Parsetree.pattern) list) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__2_inlined1_ in - let _v = - let _3 = - let (_2, _1) = (_2_inlined1, _1_inlined1) in - + let _v : ((string option * Parsetree.pattern) list) = let _3 = + let (_2, _1) = (_2_inlined1, _1_inlined1) in + # 3784 "src/ocaml/preprocess/parser_raw.mly" ( Some _1, _2 ) -# 30808 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 30236 "src/ocaml/preprocess/parser_raw.ml" + + in + # 3810 "src/ocaml/preprocess/parser_raw.mly" ( _3 :: _1 ) -# 30814 "src/ocaml/preprocess/parser_raw.ml" - : ((string option * Parsetree.pattern) list)) - in +# 30242 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -30850,7 +30277,7 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 30854 "src/ocaml/preprocess/parser_raw.ml" +# 30281 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in @@ -30858,22 +30285,20 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_label_ in - let _v = - let _3 = - let _loc_label_ = (_startpos_label_, _endpos_label_) in - + let _v : ((string option * Parsetree.pattern) list) = let _3 = + let _loc_label_ = (_startpos_label_, _endpos_label_) in + # 3786 "src/ocaml/preprocess/parser_raw.mly" ( let loc = _loc_label_ in Some label, mkpatvar ~loc label ) -# 30869 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 30295 "src/ocaml/preprocess/parser_raw.ml" + + in + # 3810 "src/ocaml/preprocess/parser_raw.mly" ( _3 :: _1 ) -# 30875 "src/ocaml/preprocess/parser_raw.ml" - : ((string option * Parsetree.pattern) list)) - in +# 30301 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -30938,7 +30363,7 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 30942 "src/ocaml/preprocess/parser_raw.ml" +# 30367 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _2_inlined1 : unit = Obj.magic _2_inlined1 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in @@ -30947,26 +30372,24 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__6_ in - let _v = - let _3 = - let _startpos__2_ = _startpos__2_inlined1_ in - let _endpos = _endpos__6_ in - let _loc_label_ = (_startpos_label_, _endpos_label_) in - + let _v : ((string option * Parsetree.pattern) list) = let _3 = + let _startpos__2_ = _startpos__2_inlined1_ in + let _endpos = _endpos__6_ in + let _loc_label_ = (_startpos_label_, _endpos_label_) in + # 3789 "src/ocaml/preprocess/parser_raw.mly" ( let lbl_loc = _loc_label_ in let pat_loc = _startpos__2_, _endpos in let pat = mkpatvar ~loc:lbl_loc label in Some label, mkpat_with_modes ~loc:pat_loc ~modes:[] ~pat ~cty:(Some cty) ) -# 30962 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 30386 "src/ocaml/preprocess/parser_raw.ml" + + in + # 3810 "src/ocaml/preprocess/parser_raw.mly" ( _3 :: _1 ) -# 30968 "src/ocaml/preprocess/parser_raw.ml" - : ((string option * Parsetree.pattern) list)) - in +# 30392 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -31001,26 +30424,24 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined1_ in - let _v = - let _3 = - let _1 = _1_inlined1 in - + let _v : ((string option * Parsetree.pattern) list) = let _3 = + let _1 = _1_inlined1 in + # 3782 "src/ocaml/preprocess/parser_raw.mly" ( None, _1 ) -# 31011 "src/ocaml/preprocess/parser_raw.ml" - - in - let _1 = +# 30433 "src/ocaml/preprocess/parser_raw.ml" + + in + let _1 = # 3796 "src/ocaml/preprocess/parser_raw.mly" ( None, _1 ) -# 31017 "src/ocaml/preprocess/parser_raw.ml" - in - ( +# 30439 "src/ocaml/preprocess/parser_raw.ml" + in + # 3812 "src/ocaml/preprocess/parser_raw.mly" ( [ _3; _1 ] ) -# 31022 "src/ocaml/preprocess/parser_raw.ml" - : ((string option * Parsetree.pattern) list)) - in +# 30444 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -31059,33 +30480,31 @@ module Tables = struct let _1_inlined1 : ( # 1082 "src/ocaml/preprocess/parser_raw.mly" (string) -# 31063 "src/ocaml/preprocess/parser_raw.ml" +# 30484 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in let _1 : (Parsetree.pattern) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__2_inlined1_ in - let _v = - let _3 = - let (_2, _1) = (_2_inlined1, _1_inlined1) in - + let _v : ((string option * Parsetree.pattern) list) = let _3 = + let (_2, _1) = (_2_inlined1, _1_inlined1) in + # 3784 "src/ocaml/preprocess/parser_raw.mly" ( Some _1, _2 ) -# 31076 "src/ocaml/preprocess/parser_raw.ml" - - in - let _1 = +# 30496 "src/ocaml/preprocess/parser_raw.ml" + + in + let _1 = # 3796 "src/ocaml/preprocess/parser_raw.mly" ( None, _1 ) -# 31082 "src/ocaml/preprocess/parser_raw.ml" - in - ( +# 30502 "src/ocaml/preprocess/parser_raw.ml" + in + # 3812 "src/ocaml/preprocess/parser_raw.mly" ( [ _3; _1 ] ) -# 31087 "src/ocaml/preprocess/parser_raw.ml" - : ((string option * Parsetree.pattern) list)) - in +# 30507 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -31123,7 +30542,7 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 31127 "src/ocaml/preprocess/parser_raw.ml" +# 30546 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in @@ -31131,27 +30550,25 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_label_ in - let _v = - let _3 = - let _loc_label_ = (_startpos_label_, _endpos_label_) in - + let _v : ((string option * Parsetree.pattern) list) = let _3 = + let _loc_label_ = (_startpos_label_, _endpos_label_) in + # 3786 "src/ocaml/preprocess/parser_raw.mly" ( let loc = _loc_label_ in Some label, mkpatvar ~loc label ) -# 31142 "src/ocaml/preprocess/parser_raw.ml" - - in - let _1 = +# 30560 "src/ocaml/preprocess/parser_raw.ml" + + in + let _1 = # 3796 "src/ocaml/preprocess/parser_raw.mly" ( None, _1 ) -# 31148 "src/ocaml/preprocess/parser_raw.ml" - in - ( +# 30566 "src/ocaml/preprocess/parser_raw.ml" + in + # 3812 "src/ocaml/preprocess/parser_raw.mly" ( [ _3; _1 ] ) -# 31153 "src/ocaml/preprocess/parser_raw.ml" - : ((string option * Parsetree.pattern) list)) - in +# 30571 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -31216,7 +30633,7 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 31220 "src/ocaml/preprocess/parser_raw.ml" +# 30637 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _2_inlined1 : unit = Obj.magic _2_inlined1 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in @@ -31225,31 +30642,29 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__6_ in - let _v = - let _3 = - let _startpos__2_ = _startpos__2_inlined1_ in - let _endpos = _endpos__6_ in - let _loc_label_ = (_startpos_label_, _endpos_label_) in - + let _v : ((string option * Parsetree.pattern) list) = let _3 = + let _startpos__2_ = _startpos__2_inlined1_ in + let _endpos = _endpos__6_ in + let _loc_label_ = (_startpos_label_, _endpos_label_) in + # 3789 "src/ocaml/preprocess/parser_raw.mly" ( let lbl_loc = _loc_label_ in let pat_loc = _startpos__2_, _endpos in let pat = mkpatvar ~loc:lbl_loc label in Some label, mkpat_with_modes ~loc:pat_loc ~modes:[] ~pat ~cty:(Some cty) ) -# 31240 "src/ocaml/preprocess/parser_raw.ml" - - in - let _1 = +# 30656 "src/ocaml/preprocess/parser_raw.ml" + + in + let _1 = # 3796 "src/ocaml/preprocess/parser_raw.mly" ( None, _1 ) -# 31246 "src/ocaml/preprocess/parser_raw.ml" - in - ( +# 30662 "src/ocaml/preprocess/parser_raw.ml" + in + # 3812 "src/ocaml/preprocess/parser_raw.mly" ( [ _3; _1 ] ) -# 31251 "src/ocaml/preprocess/parser_raw.ml" - : ((string option * Parsetree.pattern) list)) - in +# 30667 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -31290,34 +30705,32 @@ module Tables = struct let _1 : ( # 1082 "src/ocaml/preprocess/parser_raw.mly" (string) -# 31294 "src/ocaml/preprocess/parser_raw.ml" +# 30709 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined1_ in - let _v = - let _3 = - let _1 = _1_inlined1 in - + let _v : ((string option * Parsetree.pattern) list) = let _3 = + let _1 = _1_inlined1 in + # 3782 "src/ocaml/preprocess/parser_raw.mly" ( None, _1 ) -# 31305 "src/ocaml/preprocess/parser_raw.ml" - - in - let _1 = - let _2 = _2_inlined1 in - +# 30719 "src/ocaml/preprocess/parser_raw.ml" + + in + let _1 = + let _2 = _2_inlined1 in + # 3798 "src/ocaml/preprocess/parser_raw.mly" ( Some _1, _2 ) -# 31313 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 30727 "src/ocaml/preprocess/parser_raw.ml" + + in + # 3812 "src/ocaml/preprocess/parser_raw.mly" ( [ _3; _1 ] ) -# 31319 "src/ocaml/preprocess/parser_raw.ml" - : ((string option * Parsetree.pattern) list)) - in +# 30733 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -31362,41 +30775,39 @@ module Tables = struct let _1_inlined1 : ( # 1082 "src/ocaml/preprocess/parser_raw.mly" (string) -# 31366 "src/ocaml/preprocess/parser_raw.ml" +# 30779 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in let _2_inlined1 : (Parsetree.pattern) = Obj.magic _2_inlined1 in let _1 : ( # 1082 "src/ocaml/preprocess/parser_raw.mly" (string) -# 31373 "src/ocaml/preprocess/parser_raw.ml" +# 30786 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__2_inlined2_ in - let _v = - let _3 = - let (_2, _1) = (_2_inlined2, _1_inlined1) in - + let _v : ((string option * Parsetree.pattern) list) = let _3 = + let (_2, _1) = (_2_inlined2, _1_inlined1) in + # 3784 "src/ocaml/preprocess/parser_raw.mly" ( Some _1, _2 ) -# 31384 "src/ocaml/preprocess/parser_raw.ml" - - in - let _1 = - let _2 = _2_inlined1 in - +# 30796 "src/ocaml/preprocess/parser_raw.ml" + + in + let _1 = + let _2 = _2_inlined1 in + # 3798 "src/ocaml/preprocess/parser_raw.mly" ( Some _1, _2 ) -# 31392 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 30804 "src/ocaml/preprocess/parser_raw.ml" + + in + # 3812 "src/ocaml/preprocess/parser_raw.mly" ( [ _3; _1 ] ) -# 31398 "src/ocaml/preprocess/parser_raw.ml" - : ((string option * Parsetree.pattern) list)) - in +# 30810 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -31440,7 +30851,7 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 31444 "src/ocaml/preprocess/parser_raw.ml" +# 30855 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in @@ -31448,35 +30859,33 @@ module Tables = struct let _1 : ( # 1082 "src/ocaml/preprocess/parser_raw.mly" (string) -# 31452 "src/ocaml/preprocess/parser_raw.ml" +# 30863 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_label_ in - let _v = - let _3 = - let _loc_label_ = (_startpos_label_, _endpos_label_) in - + let _v : ((string option * Parsetree.pattern) list) = let _3 = + let _loc_label_ = (_startpos_label_, _endpos_label_) in + # 3786 "src/ocaml/preprocess/parser_raw.mly" ( let loc = _loc_label_ in Some label, mkpatvar ~loc label ) -# 31464 "src/ocaml/preprocess/parser_raw.ml" - - in - let _1 = - let _2 = _2_inlined1 in - +# 30874 "src/ocaml/preprocess/parser_raw.ml" + + in + let _1 = + let _2 = _2_inlined1 in + # 3798 "src/ocaml/preprocess/parser_raw.mly" ( Some _1, _2 ) -# 31472 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 30882 "src/ocaml/preprocess/parser_raw.ml" + + in + # 3812 "src/ocaml/preprocess/parser_raw.mly" ( [ _3; _1 ] ) -# 31478 "src/ocaml/preprocess/parser_raw.ml" - : ((string option * Parsetree.pattern) list)) - in +# 30888 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -31547,7 +30956,7 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 31551 "src/ocaml/preprocess/parser_raw.ml" +# 30960 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _2_inlined2 : unit = Obj.magic _2_inlined2 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in @@ -31556,39 +30965,37 @@ module Tables = struct let _1 : ( # 1082 "src/ocaml/preprocess/parser_raw.mly" (string) -# 31560 "src/ocaml/preprocess/parser_raw.ml" +# 30969 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__6_ in - let _v = - let _3 = - let _startpos__2_ = _startpos__2_inlined2_ in - let _endpos = _endpos__6_ in - let _loc_label_ = (_startpos_label_, _endpos_label_) in - + let _v : ((string option * Parsetree.pattern) list) = let _3 = + let _startpos__2_ = _startpos__2_inlined2_ in + let _endpos = _endpos__6_ in + let _loc_label_ = (_startpos_label_, _endpos_label_) in + # 3789 "src/ocaml/preprocess/parser_raw.mly" ( let lbl_loc = _loc_label_ in let pat_loc = _startpos__2_, _endpos in let pat = mkpatvar ~loc:lbl_loc label in Some label, mkpat_with_modes ~loc:pat_loc ~modes:[] ~pat ~cty:(Some cty) ) -# 31576 "src/ocaml/preprocess/parser_raw.ml" - - in - let _1 = - let _2 = _2_inlined1 in - +# 30984 "src/ocaml/preprocess/parser_raw.ml" + + in + let _1 = + let _2 = _2_inlined1 in + # 3798 "src/ocaml/preprocess/parser_raw.mly" ( Some _1, _2 ) -# 31584 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 30992 "src/ocaml/preprocess/parser_raw.ml" + + in + # 3812 "src/ocaml/preprocess/parser_raw.mly" ( [ _3; _1 ] ) -# 31590 "src/ocaml/preprocess/parser_raw.ml" - : ((string option * Parsetree.pattern) list)) - in +# 30998 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -31628,36 +31035,34 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 31632 "src/ocaml/preprocess/parser_raw.ml" +# 31039 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined1_ in - let _v = - let _3 = - let _1 = _1_inlined1 in - + let _v : ((string option * Parsetree.pattern) list) = let _3 = + let _1 = _1_inlined1 in + # 3782 "src/ocaml/preprocess/parser_raw.mly" ( None, _1 ) -# 31644 "src/ocaml/preprocess/parser_raw.ml" - - in - let _1 = - let _loc_label_ = (_startpos_label_, _endpos_label_) in - +# 31050 "src/ocaml/preprocess/parser_raw.ml" + + in + let _1 = + let _loc_label_ = (_startpos_label_, _endpos_label_) in + # 3800 "src/ocaml/preprocess/parser_raw.mly" ( let loc = _loc_label_ in Some label, mkpatvar ~loc label ) -# 31653 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 31059 "src/ocaml/preprocess/parser_raw.ml" + + in + # 3812 "src/ocaml/preprocess/parser_raw.mly" ( [ _3; _1 ] ) -# 31659 "src/ocaml/preprocess/parser_raw.ml" - : ((string option * Parsetree.pattern) list)) - in +# 31065 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -31702,42 +31107,40 @@ module Tables = struct let _1_inlined1 : ( # 1082 "src/ocaml/preprocess/parser_raw.mly" (string) -# 31706 "src/ocaml/preprocess/parser_raw.ml" +# 31111 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 31712 "src/ocaml/preprocess/parser_raw.ml" +# 31117 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__2_inlined1_ in - let _v = - let _3 = - let (_2, _1) = (_2_inlined1, _1_inlined1) in - + let _v : ((string option * Parsetree.pattern) list) = let _3 = + let (_2, _1) = (_2_inlined1, _1_inlined1) in + # 3784 "src/ocaml/preprocess/parser_raw.mly" ( Some _1, _2 ) -# 31724 "src/ocaml/preprocess/parser_raw.ml" - - in - let _1 = - let _loc_label_ = (_startpos_label_, _endpos_label_) in - +# 31128 "src/ocaml/preprocess/parser_raw.ml" + + in + let _1 = + let _loc_label_ = (_startpos_label_, _endpos_label_) in + # 3800 "src/ocaml/preprocess/parser_raw.mly" ( let loc = _loc_label_ in Some label, mkpatvar ~loc label ) -# 31733 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 31137 "src/ocaml/preprocess/parser_raw.ml" + + in + # 3812 "src/ocaml/preprocess/parser_raw.mly" ( [ _3; _1 ] ) -# 31739 "src/ocaml/preprocess/parser_raw.ml" - : ((string option * Parsetree.pattern) list)) - in +# 31143 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -31781,45 +31184,43 @@ module Tables = struct let label_inlined1 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 31785 "src/ocaml/preprocess/parser_raw.ml" +# 31188 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label_inlined1 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 31792 "src/ocaml/preprocess/parser_raw.ml" +# 31195 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_label_inlined1_ in - let _v = - let _3 = - let (_endpos_label_, _startpos_label_, label) = (_endpos_label_inlined1_, _startpos_label_inlined1_, label_inlined1) in - let _loc_label_ = (_startpos_label_, _endpos_label_) in - + let _v : ((string option * Parsetree.pattern) list) = let _3 = + let (_endpos_label_, _startpos_label_, label) = (_endpos_label_inlined1_, _startpos_label_inlined1_, label_inlined1) in + let _loc_label_ = (_startpos_label_, _endpos_label_) in + # 3786 "src/ocaml/preprocess/parser_raw.mly" ( let loc = _loc_label_ in Some label, mkpatvar ~loc label ) -# 31806 "src/ocaml/preprocess/parser_raw.ml" - - in - let _1 = - let _loc_label_ = (_startpos_label_, _endpos_label_) in - +# 31208 "src/ocaml/preprocess/parser_raw.ml" + + in + let _1 = + let _loc_label_ = (_startpos_label_, _endpos_label_) in + # 3800 "src/ocaml/preprocess/parser_raw.mly" ( let loc = _loc_label_ in Some label, mkpatvar ~loc label ) -# 31815 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 31217 "src/ocaml/preprocess/parser_raw.ml" + + in + # 3812 "src/ocaml/preprocess/parser_raw.mly" ( [ _3; _1 ] ) -# 31821 "src/ocaml/preprocess/parser_raw.ml" - : ((string option * Parsetree.pattern) list)) - in +# 31223 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -31890,7 +31291,7 @@ module Tables = struct let label_inlined1 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 31894 "src/ocaml/preprocess/parser_raw.ml" +# 31295 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label_inlined1 in let _2_inlined1 : unit = Obj.magic _2_inlined1 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in @@ -31898,41 +31299,39 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 31902 "src/ocaml/preprocess/parser_raw.ml" +# 31303 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__6_ in - let _v = - let _3 = - let (_endpos_label_, _startpos_label_, _startpos__2_, label) = (_endpos_label_inlined1_, _startpos_label_inlined1_, _startpos__2_inlined1_, label_inlined1) in - let _endpos = _endpos__6_ in - let _loc_label_ = (_startpos_label_, _endpos_label_) in - + let _v : ((string option * Parsetree.pattern) list) = let _3 = + let (_endpos_label_, _startpos_label_, _startpos__2_, label) = (_endpos_label_inlined1_, _startpos_label_inlined1_, _startpos__2_inlined1_, label_inlined1) in + let _endpos = _endpos__6_ in + let _loc_label_ = (_startpos_label_, _endpos_label_) in + # 3789 "src/ocaml/preprocess/parser_raw.mly" ( let lbl_loc = _loc_label_ in let pat_loc = _startpos__2_, _endpos in let pat = mkpatvar ~loc:lbl_loc label in Some label, mkpat_with_modes ~loc:pat_loc ~modes:[] ~pat ~cty:(Some cty) ) -# 31919 "src/ocaml/preprocess/parser_raw.ml" - - in - let _1 = - let _loc_label_ = (_startpos_label_, _endpos_label_) in - +# 31319 "src/ocaml/preprocess/parser_raw.ml" + + in + let _1 = + let _loc_label_ = (_startpos_label_, _endpos_label_) in + # 3800 "src/ocaml/preprocess/parser_raw.mly" ( let loc = _loc_label_ in Some label, mkpatvar ~loc label ) -# 31928 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 31328 "src/ocaml/preprocess/parser_raw.ml" + + in + # 3812 "src/ocaml/preprocess/parser_raw.mly" ( [ _3; _1 ] ) -# 31934 "src/ocaml/preprocess/parser_raw.ml" - : ((string option * Parsetree.pattern) list)) - in +# 31334 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -31999,41 +31398,39 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 32003 "src/ocaml/preprocess/parser_raw.ml" +# 31402 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _2_inlined1 : unit = Obj.magic _2_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined1_ in - let _v = - let _3 = - let _1 = _1_inlined1 in - + let _v : ((string option * Parsetree.pattern) list) = let _3 = + let _1 = _1_inlined1 in + # 3782 "src/ocaml/preprocess/parser_raw.mly" ( None, _1 ) -# 32016 "src/ocaml/preprocess/parser_raw.ml" - - in - let _1 = - let _startpos__2_ = _startpos__2_inlined1_ in - let _endpos = _endpos__6_ in - let _loc_label_ = (_startpos_label_, _endpos_label_) in - +# 31414 "src/ocaml/preprocess/parser_raw.ml" + + in + let _1 = + let _startpos__2_ = _startpos__2_inlined1_ in + let _endpos = _endpos__6_ in + let _loc_label_ = (_startpos_label_, _endpos_label_) in + # 3803 "src/ocaml/preprocess/parser_raw.mly" ( let lbl_loc = _loc_label_ in let pat_loc = _startpos__2_, _endpos in let pat = mkpatvar ~loc:lbl_loc label in Some label, mkpat_with_modes ~loc:pat_loc ~modes:[] ~pat ~cty:(Some cty) ) -# 32029 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 31427 "src/ocaml/preprocess/parser_raw.ml" + + in + # 3812 "src/ocaml/preprocess/parser_raw.mly" ( [ _3; _1 ] ) -# 32035 "src/ocaml/preprocess/parser_raw.ml" - : ((string option * Parsetree.pattern) list)) - in +# 31433 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -32102,7 +31499,7 @@ module Tables = struct let _1_inlined1 : ( # 1082 "src/ocaml/preprocess/parser_raw.mly" (string) -# 32106 "src/ocaml/preprocess/parser_raw.ml" +# 31503 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in let _6 : unit = Obj.magic _6 in @@ -32111,41 +31508,39 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 32115 "src/ocaml/preprocess/parser_raw.ml" +# 31512 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _2_inlined1 : unit = Obj.magic _2_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__2_inlined2_ in - let _v = - let _3 = - let (_2, _1) = (_2_inlined2, _1_inlined1) in - + let _v : ((string option * Parsetree.pattern) list) = let _3 = + let (_2, _1) = (_2_inlined2, _1_inlined1) in + # 3784 "src/ocaml/preprocess/parser_raw.mly" ( Some _1, _2 ) -# 32128 "src/ocaml/preprocess/parser_raw.ml" - - in - let _1 = - let _startpos__2_ = _startpos__2_inlined1_ in - let _endpos = _endpos__6_ in - let _loc_label_ = (_startpos_label_, _endpos_label_) in - +# 31524 "src/ocaml/preprocess/parser_raw.ml" + + in + let _1 = + let _startpos__2_ = _startpos__2_inlined1_ in + let _endpos = _endpos__6_ in + let _loc_label_ = (_startpos_label_, _endpos_label_) in + # 3803 "src/ocaml/preprocess/parser_raw.mly" ( let lbl_loc = _loc_label_ in let pat_loc = _startpos__2_, _endpos in let pat = mkpatvar ~loc:lbl_loc label in Some label, mkpat_with_modes ~loc:pat_loc ~modes:[] ~pat ~cty:(Some cty) ) -# 32141 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 31537 "src/ocaml/preprocess/parser_raw.ml" + + in + # 3812 "src/ocaml/preprocess/parser_raw.mly" ( [ _3; _1 ] ) -# 32147 "src/ocaml/preprocess/parser_raw.ml" - : ((string option * Parsetree.pattern) list)) - in +# 31543 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -32213,7 +31608,7 @@ module Tables = struct let label_inlined1 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 32217 "src/ocaml/preprocess/parser_raw.ml" +# 31612 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label_inlined1 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in @@ -32223,43 +31618,41 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 32227 "src/ocaml/preprocess/parser_raw.ml" +# 31622 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _2_inlined1 : unit = Obj.magic _2_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_label_inlined1_ in - let _v = - let _3 = - let (_endpos_label_, _startpos_label_, label) = (_endpos_label_inlined1_, _startpos_label_inlined1_, label_inlined1) in - let _loc_label_ = (_startpos_label_, _endpos_label_) in - + let _v : ((string option * Parsetree.pattern) list) = let _3 = + let (_endpos_label_, _startpos_label_, label) = (_endpos_label_inlined1_, _startpos_label_inlined1_, label_inlined1) in + let _loc_label_ = (_startpos_label_, _endpos_label_) in + # 3786 "src/ocaml/preprocess/parser_raw.mly" ( let loc = _loc_label_ in Some label, mkpatvar ~loc label ) -# 32242 "src/ocaml/preprocess/parser_raw.ml" - - in - let _1 = - let _startpos__2_ = _startpos__2_inlined1_ in - let _endpos = _endpos__6_ in - let _loc_label_ = (_startpos_label_, _endpos_label_) in - +# 31636 "src/ocaml/preprocess/parser_raw.ml" + + in + let _1 = + let _startpos__2_ = _startpos__2_inlined1_ in + let _endpos = _endpos__6_ in + let _loc_label_ = (_startpos_label_, _endpos_label_) in + # 3803 "src/ocaml/preprocess/parser_raw.mly" ( let lbl_loc = _loc_label_ in let pat_loc = _startpos__2_, _endpos in let pat = mkpatvar ~loc:lbl_loc label in Some label, mkpat_with_modes ~loc:pat_loc ~modes:[] ~pat ~cty:(Some cty) ) -# 32255 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 31649 "src/ocaml/preprocess/parser_raw.ml" + + in + # 3812 "src/ocaml/preprocess/parser_raw.mly" ( [ _3; _1 ] ) -# 32261 "src/ocaml/preprocess/parser_raw.ml" - : ((string option * Parsetree.pattern) list)) - in +# 31655 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -32354,7 +31747,7 @@ module Tables = struct let label_inlined1 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 32358 "src/ocaml/preprocess/parser_raw.ml" +# 31751 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label_inlined1 in let _2_inlined2 : unit = Obj.magic _2_inlined2 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in @@ -32365,46 +31758,44 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 32369 "src/ocaml/preprocess/parser_raw.ml" +# 31762 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _2_inlined1 : unit = Obj.magic _2_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__6_inlined1_ in - let _v = - let _3 = - let (_endpos_label_, _startpos_label_, _endpos__6_, _startpos__2_, cty, label) = (_endpos_label_inlined1_, _startpos_label_inlined1_, _endpos__6_inlined1_, _startpos__2_inlined2_, cty_inlined1, label_inlined1) in - let _endpos = _endpos__6_ in - let _loc_label_ = (_startpos_label_, _endpos_label_) in - + let _v : ((string option * Parsetree.pattern) list) = let _3 = + let (_endpos_label_, _startpos_label_, _endpos__6_, _startpos__2_, cty, label) = (_endpos_label_inlined1_, _startpos_label_inlined1_, _endpos__6_inlined1_, _startpos__2_inlined2_, cty_inlined1, label_inlined1) in + let _endpos = _endpos__6_ in + let _loc_label_ = (_startpos_label_, _endpos_label_) in + # 3789 "src/ocaml/preprocess/parser_raw.mly" ( let lbl_loc = _loc_label_ in let pat_loc = _startpos__2_, _endpos in let pat = mkpatvar ~loc:lbl_loc label in Some label, mkpat_with_modes ~loc:pat_loc ~modes:[] ~pat ~cty:(Some cty) ) -# 32387 "src/ocaml/preprocess/parser_raw.ml" - - in - let _1 = - let _startpos__2_ = _startpos__2_inlined1_ in - let _endpos = _endpos__6_ in - let _loc_label_ = (_startpos_label_, _endpos_label_) in - +# 31779 "src/ocaml/preprocess/parser_raw.ml" + + in + let _1 = + let _startpos__2_ = _startpos__2_inlined1_ in + let _endpos = _endpos__6_ in + let _loc_label_ = (_startpos_label_, _endpos_label_) in + # 3803 "src/ocaml/preprocess/parser_raw.mly" ( let lbl_loc = _loc_label_ in let pat_loc = _startpos__2_, _endpos in let pat = mkpatvar ~loc:lbl_loc label in Some label, mkpat_with_modes ~loc:pat_loc ~modes:[] ~pat ~cty:(Some cty) ) -# 32400 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 31792 "src/ocaml/preprocess/parser_raw.ml" + + in + # 3812 "src/ocaml/preprocess/parser_raw.mly" ( [ _3; _1 ] ) -# 32406 "src/ocaml/preprocess/parser_raw.ml" - : ((string option * Parsetree.pattern) list)) - in +# 31798 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -32430,7 +31821,7 @@ module Tables = struct Parsetree.value_constraint option * Parsetree.modes * bool) = # 3409 "src/ocaml/preprocess/parser_raw.mly" ( let p,e,c,modes = _1 in (p,e,c,modes,false) ) -# 32434 "src/ocaml/preprocess/parser_raw.ml" +# 31825 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -32452,17 +31843,15 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v = - let _endpos = _endpos__1_ in - let _startpos = _startpos__1_ in - let _loc = (_startpos, _endpos) in - ( + let _v : (Parsetree.pattern * Parsetree.expression * + Parsetree.value_constraint option * Parsetree.modes * bool) = let _endpos = _endpos__1_ in + let _startpos = _startpos__1_ in + let _loc = (_startpos, _endpos) in + # 3412 "src/ocaml/preprocess/parser_raw.mly" ( (mkpatvar ~loc:_loc ~attrs:[pun_attr] _1, ghexpvar ~loc:_loc ~attrs:[pun_attr] _1, None, [], true) ) -# 32463 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.pattern * Parsetree.expression * - Parsetree.value_constraint option * Parsetree.modes * bool)) - in +# 31854 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -32490,32 +31879,30 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined1_ in - let _v = - let _2 = - let _1 = _1_inlined1 in - + let _v : (Parsetree.pattern * Parsetree.expression * + Parsetree.value_constraint option * Parsetree.modes) = let _2 = + let _1 = _1_inlined1 in + # 3492 "src/ocaml/preprocess/parser_raw.mly" (_1 []) -# 32500 "src/ocaml/preprocess/parser_raw.ml" - - in - let _1 = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 31889 "src/ocaml/preprocess/parser_raw.ml" + + in + let _1 = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 3335 "src/ocaml/preprocess/parser_raw.mly" ( mkpatvar ~loc:_sloc _1 ) -# 32510 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 31899 "src/ocaml/preprocess/parser_raw.ml" + + in + # 3345 "src/ocaml/preprocess/parser_raw.mly" ( (_1, _2, None, []) ) -# 32516 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.pattern * Parsetree.expression * - Parsetree.value_constraint option * Parsetree.modes)) - in +# 31905 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -32557,44 +31944,44 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__5_ in - let _v = - let _3 = - let _1 = _1_inlined1 in - let _1 = - let _2 = + let _v : (Parsetree.pattern * Parsetree.expression * + Parsetree.value_constraint option * Parsetree.modes) = let _3 = + let _1 = _1_inlined1 in + let _1 = + let _2 = # 4699 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 32568 "src/ocaml/preprocess/parser_raw.ml" - in - +# 31955 "src/ocaml/preprocess/parser_raw.ml" + in + # 3686 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 32573 "src/ocaml/preprocess/parser_raw.ml" - - in +# 31960 "src/ocaml/preprocess/parser_raw.ml" + in + # 3691 "src/ocaml/preprocess/parser_raw.mly" ( let ty, modes = _1 in Some ty, modes ) -# 32580 "src/ocaml/preprocess/parser_raw.ml" - - in - let _2 = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 31967 "src/ocaml/preprocess/parser_raw.ml" + + in + let _2 = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 3335 "src/ocaml/preprocess/parser_raw.mly" ( mkpatvar ~loc:_sloc _1 ) -# 32590 "src/ocaml/preprocess/parser_raw.ml" - - in - let modes0 = +# 31977 "src/ocaml/preprocess/parser_raw.ml" + + in + let modes0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 32596 "src/ocaml/preprocess/parser_raw.ml" - in - ( +# 31983 "src/ocaml/preprocess/parser_raw.ml" + in + # 3349 "src/ocaml/preprocess/parser_raw.mly" ( let v = _2 in (* PR#7344 *) let typ, modes1 = _3 in @@ -32608,10 +31995,8 @@ module Tables = struct let modes = modes0 @ modes1 in (v, _5, t, modes) ) -# 32612 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.pattern * Parsetree.expression * - Parsetree.value_constraint option * Parsetree.modes)) - in +# 31999 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -32660,47 +32045,47 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__5_ in - let _v = - let _3 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _1 = - let _2 = - let _1 = _1_inlined1 in - + let _v : (Parsetree.pattern * Parsetree.expression * + Parsetree.value_constraint option * Parsetree.modes) = let _3 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in + let _1 = + let _2 = + let _1 = _1_inlined1 in + # 4700 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 32673 "src/ocaml/preprocess/parser_raw.ml" - - in +# 32058 "src/ocaml/preprocess/parser_raw.ml" + in + # 3686 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 32679 "src/ocaml/preprocess/parser_raw.ml" - - in +# 32064 "src/ocaml/preprocess/parser_raw.ml" + in + # 3691 "src/ocaml/preprocess/parser_raw.mly" ( let ty, modes = _1 in Some ty, modes ) -# 32686 "src/ocaml/preprocess/parser_raw.ml" - - in - let _2 = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 32071 "src/ocaml/preprocess/parser_raw.ml" + + in + let _2 = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 3335 "src/ocaml/preprocess/parser_raw.mly" ( mkpatvar ~loc:_sloc _1 ) -# 32696 "src/ocaml/preprocess/parser_raw.ml" - - in - let modes0 = +# 32081 "src/ocaml/preprocess/parser_raw.ml" + + in + let modes0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 32702 "src/ocaml/preprocess/parser_raw.ml" - in - ( +# 32087 "src/ocaml/preprocess/parser_raw.ml" + in + # 3349 "src/ocaml/preprocess/parser_raw.mly" ( let v = _2 in (* PR#7344 *) let typ, modes1 = _3 in @@ -32714,10 +32099,8 @@ module Tables = struct let modes = modes0 @ modes1 in (v, _5, t, modes) ) -# 32718 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.pattern * Parsetree.expression * - Parsetree.value_constraint option * Parsetree.modes)) - in +# 32103 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -32759,31 +32142,31 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__5_ in - let _v = - let _3 = - let _1 = _1_inlined1 in - + let _v : (Parsetree.pattern * Parsetree.expression * + Parsetree.value_constraint option * Parsetree.modes) = let _3 = + let _1 = _1_inlined1 in + # 3694 "src/ocaml/preprocess/parser_raw.mly" ( None, _1 ) -# 32769 "src/ocaml/preprocess/parser_raw.ml" - - in - let _2 = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 32152 "src/ocaml/preprocess/parser_raw.ml" + + in + let _2 = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 3335 "src/ocaml/preprocess/parser_raw.mly" ( mkpatvar ~loc:_sloc _1 ) -# 32779 "src/ocaml/preprocess/parser_raw.ml" - - in - let modes0 = +# 32162 "src/ocaml/preprocess/parser_raw.ml" + + in + let modes0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 32785 "src/ocaml/preprocess/parser_raw.ml" - in - ( +# 32168 "src/ocaml/preprocess/parser_raw.ml" + in + # 3349 "src/ocaml/preprocess/parser_raw.mly" ( let v = _2 in (* PR#7344 *) let typ, modes1 = _3 in @@ -32797,10 +32180,8 @@ module Tables = struct let modes = modes0 @ modes1 in (v, _5, t, modes) ) -# 32801 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.pattern * Parsetree.expression * - Parsetree.value_constraint option * Parsetree.modes)) - in +# 32184 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -32849,52 +32230,52 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__5_ in - let _v = - let _3 = - let _1 = _1_inlined2 in - let _1 = - let _2 = + let _v : (Parsetree.pattern * Parsetree.expression * + Parsetree.value_constraint option * Parsetree.modes) = let _3 = + let _1 = _1_inlined2 in + let _1 = + let _2 = # 4699 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 32860 "src/ocaml/preprocess/parser_raw.ml" - in - +# 32241 "src/ocaml/preprocess/parser_raw.ml" + in + # 3686 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 32865 "src/ocaml/preprocess/parser_raw.ml" - - in +# 32246 "src/ocaml/preprocess/parser_raw.ml" + in + # 3691 "src/ocaml/preprocess/parser_raw.mly" ( let ty, modes = _1 in Some ty, modes ) -# 32872 "src/ocaml/preprocess/parser_raw.ml" - - in - let _2 = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 32253 "src/ocaml/preprocess/parser_raw.ml" + + in + let _2 = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 3335 "src/ocaml/preprocess/parser_raw.mly" ( mkpatvar ~loc:_sloc _1 ) -# 32883 "src/ocaml/preprocess/parser_raw.ml" - - in - let modes0 = - let _1 = +# 32264 "src/ocaml/preprocess/parser_raw.ml" + + in + let modes0 = + let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 32890 "src/ocaml/preprocess/parser_raw.ml" - in - +# 32271 "src/ocaml/preprocess/parser_raw.ml" + in + # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 32895 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 32276 "src/ocaml/preprocess/parser_raw.ml" + + in + # 3349 "src/ocaml/preprocess/parser_raw.mly" ( let v = _2 in (* PR#7344 *) let typ, modes1 = _3 in @@ -32908,10 +32289,8 @@ module Tables = struct let modes = modes0 @ modes1 in (v, _5, t, modes) ) -# 32912 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.pattern * Parsetree.expression * - Parsetree.value_constraint option * Parsetree.modes)) - in +# 32293 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -32967,55 +32346,55 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__5_ in - let _v = - let _3 = - let (_1_inlined1, _1) = (_1_inlined3, _1_inlined2) in - let _1 = - let _2 = - let _1 = _1_inlined1 in - + let _v : (Parsetree.pattern * Parsetree.expression * + Parsetree.value_constraint option * Parsetree.modes) = let _3 = + let (_1_inlined1, _1) = (_1_inlined3, _1_inlined2) in + let _1 = + let _2 = + let _1 = _1_inlined1 in + # 4700 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 32980 "src/ocaml/preprocess/parser_raw.ml" - - in +# 32359 "src/ocaml/preprocess/parser_raw.ml" + in + # 3686 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 32986 "src/ocaml/preprocess/parser_raw.ml" - - in +# 32365 "src/ocaml/preprocess/parser_raw.ml" + in + # 3691 "src/ocaml/preprocess/parser_raw.mly" ( let ty, modes = _1 in Some ty, modes ) -# 32993 "src/ocaml/preprocess/parser_raw.ml" - - in - let _2 = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 32372 "src/ocaml/preprocess/parser_raw.ml" + + in + let _2 = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 3335 "src/ocaml/preprocess/parser_raw.mly" ( mkpatvar ~loc:_sloc _1 ) -# 33004 "src/ocaml/preprocess/parser_raw.ml" - - in - let modes0 = - let _1 = +# 32383 "src/ocaml/preprocess/parser_raw.ml" + + in + let modes0 = + let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 33011 "src/ocaml/preprocess/parser_raw.ml" - in - +# 32390 "src/ocaml/preprocess/parser_raw.ml" + in + # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 33016 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 32395 "src/ocaml/preprocess/parser_raw.ml" + + in + # 3349 "src/ocaml/preprocess/parser_raw.mly" ( let v = _2 in (* PR#7344 *) let typ, modes1 = _3 in @@ -33029,10 +32408,8 @@ module Tables = struct let modes = modes0 @ modes1 in (v, _5, t, modes) ) -# 33033 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.pattern * Parsetree.expression * - Parsetree.value_constraint option * Parsetree.modes)) - in +# 32412 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -33081,39 +32458,39 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__5_ in - let _v = - let _3 = - let _1 = _1_inlined2 in - + let _v : (Parsetree.pattern * Parsetree.expression * + Parsetree.value_constraint option * Parsetree.modes) = let _3 = + let _1 = _1_inlined2 in + # 3694 "src/ocaml/preprocess/parser_raw.mly" ( None, _1 ) -# 33091 "src/ocaml/preprocess/parser_raw.ml" - - in - let _2 = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 32468 "src/ocaml/preprocess/parser_raw.ml" + + in + let _2 = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 3335 "src/ocaml/preprocess/parser_raw.mly" ( mkpatvar ~loc:_sloc _1 ) -# 33102 "src/ocaml/preprocess/parser_raw.ml" - - in - let modes0 = - let _1 = +# 32479 "src/ocaml/preprocess/parser_raw.ml" + + in + let modes0 = + let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 33109 "src/ocaml/preprocess/parser_raw.ml" - in - +# 32486 "src/ocaml/preprocess/parser_raw.ml" + in + # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 33114 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 32491 "src/ocaml/preprocess/parser_raw.ml" + + in + # 3349 "src/ocaml/preprocess/parser_raw.mly" ( let v = _2 in (* PR#7344 *) let typ, modes1 = _3 in @@ -33127,10 +32504,8 @@ module Tables = struct let modes = modes0 @ modes1 in (v, _5, t, modes) ) -# 33131 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.pattern * Parsetree.expression * - Parsetree.value_constraint option * Parsetree.modes)) - in +# 32508 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -33193,57 +32568,57 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__7_ in - let _v = - let modes1 = + let _v : (Parsetree.pattern * Parsetree.expression * + Parsetree.value_constraint option * Parsetree.modes) = let modes1 = # 4699 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 33201 "src/ocaml/preprocess/parser_raw.ml" - in - let _4 = - let _3 = _3_inlined1 in +# 32576 "src/ocaml/preprocess/parser_raw.ml" + in + let _4 = + let _3 = _3_inlined1 in + let _1 = let _1 = - let _1 = - let xs = -# 264 "" + let xs = +# 253 "" ( List.rev xs ) -# 33210 "src/ocaml/preprocess/parser_raw.ml" - in - +# 32585 "src/ocaml/preprocess/parser_raw.ml" + in + # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 33215 "src/ocaml/preprocess/parser_raw.ml" - - in +# 32590 "src/ocaml/preprocess/parser_raw.ml" + in + # 4481 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 33221 "src/ocaml/preprocess/parser_raw.ml" - - in +# 32596 "src/ocaml/preprocess/parser_raw.ml" + in + # 4485 "src/ocaml/preprocess/parser_raw.mly" ( (_1, _3) ) -# 33227 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__4_, _startpos__4_) = (_endpos__3_inlined1_, _startpos_xs_) in - let _2 = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 32602 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__4_, _startpos__4_) = (_endpos__3_inlined1_, _startpos_xs_) in + let _2 = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 3335 "src/ocaml/preprocess/parser_raw.mly" ( mkpatvar ~loc:_sloc _1 ) -# 33238 "src/ocaml/preprocess/parser_raw.ml" - - in - let modes0 = +# 32613 "src/ocaml/preprocess/parser_raw.ml" + + in + let modes0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 33244 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc__4_ = (_startpos__4_, _endpos__4_) in - ( +# 32619 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc__4_ = (_startpos__4_, _endpos__4_) in + # 3362 "src/ocaml/preprocess/parser_raw.mly" ( let bound_vars, inner_type = _4 in let ltyp = Ptyp_poly (bound_vars, inner_type) in @@ -33252,10 +32627,8 @@ module Tables = struct (_2, _7, Some (Pvc_constraint { locally_abstract_univars = []; typ }), modes) ) -# 33256 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.pattern * Parsetree.expression * - Parsetree.value_constraint option * Parsetree.modes)) - in +# 32631 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -33325,60 +32698,60 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__7_ in - let _v = - let modes1 = - let _1 = _1_inlined1 in - + let _v : (Parsetree.pattern * Parsetree.expression * + Parsetree.value_constraint option * Parsetree.modes) = let modes1 = + let _1 = _1_inlined1 in + # 4700 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 33335 "src/ocaml/preprocess/parser_raw.ml" - - in - let _4 = - let _3 = _3_inlined1 in +# 32708 "src/ocaml/preprocess/parser_raw.ml" + + in + let _4 = + let _3 = _3_inlined1 in + let _1 = let _1 = - let _1 = - let xs = -# 264 "" + let xs = +# 253 "" ( List.rev xs ) -# 33345 "src/ocaml/preprocess/parser_raw.ml" - in - +# 32718 "src/ocaml/preprocess/parser_raw.ml" + in + # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 33350 "src/ocaml/preprocess/parser_raw.ml" - - in +# 32723 "src/ocaml/preprocess/parser_raw.ml" + in + # 4481 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 33356 "src/ocaml/preprocess/parser_raw.ml" - - in +# 32729 "src/ocaml/preprocess/parser_raw.ml" + in + # 4485 "src/ocaml/preprocess/parser_raw.mly" ( (_1, _3) ) -# 33362 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__4_, _startpos__4_) = (_endpos__3_inlined1_, _startpos_xs_) in - let _2 = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 32735 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__4_, _startpos__4_) = (_endpos__3_inlined1_, _startpos_xs_) in + let _2 = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 3335 "src/ocaml/preprocess/parser_raw.mly" ( mkpatvar ~loc:_sloc _1 ) -# 33373 "src/ocaml/preprocess/parser_raw.ml" - - in - let modes0 = +# 32746 "src/ocaml/preprocess/parser_raw.ml" + + in + let modes0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 33379 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc__4_ = (_startpos__4_, _endpos__4_) in - ( +# 32752 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc__4_ = (_startpos__4_, _endpos__4_) in + # 3362 "src/ocaml/preprocess/parser_raw.mly" ( let bound_vars, inner_type = _4 in let ltyp = Ptyp_poly (bound_vars, inner_type) in @@ -33387,10 +32760,8 @@ module Tables = struct (_2, _7, Some (Pvc_constraint { locally_abstract_univars = []; typ }), modes) ) -# 33391 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.pattern * Parsetree.expression * - Parsetree.value_constraint option * Parsetree.modes)) - in +# 32764 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -33460,65 +32831,65 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__7_ in - let _v = - let modes1 = + let _v : (Parsetree.pattern * Parsetree.expression * + Parsetree.value_constraint option * Parsetree.modes) = let modes1 = # 4699 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 33468 "src/ocaml/preprocess/parser_raw.ml" - in - let _4 = - let _3 = _3_inlined1 in +# 32839 "src/ocaml/preprocess/parser_raw.ml" + in + let _4 = + let _3 = _3_inlined1 in + let _1 = let _1 = - let _1 = - let xs = -# 264 "" + let xs = +# 253 "" ( List.rev xs ) -# 33477 "src/ocaml/preprocess/parser_raw.ml" - in - +# 32848 "src/ocaml/preprocess/parser_raw.ml" + in + # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 33482 "src/ocaml/preprocess/parser_raw.ml" - - in +# 32853 "src/ocaml/preprocess/parser_raw.ml" + in + # 4481 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 33488 "src/ocaml/preprocess/parser_raw.ml" - - in +# 32859 "src/ocaml/preprocess/parser_raw.ml" + in + # 4485 "src/ocaml/preprocess/parser_raw.mly" ( (_1, _3) ) -# 33494 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__4_, _startpos__4_) = (_endpos__3_inlined1_, _startpos_xs_) in - let _2 = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 32865 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__4_, _startpos__4_) = (_endpos__3_inlined1_, _startpos_xs_) in + let _2 = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 3335 "src/ocaml/preprocess/parser_raw.mly" ( mkpatvar ~loc:_sloc _1 ) -# 33506 "src/ocaml/preprocess/parser_raw.ml" - - in - let modes0 = - let _1 = +# 32877 "src/ocaml/preprocess/parser_raw.ml" + + in + let modes0 = + let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 33513 "src/ocaml/preprocess/parser_raw.ml" - in - +# 32884 "src/ocaml/preprocess/parser_raw.ml" + in + # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 33518 "src/ocaml/preprocess/parser_raw.ml" - - in - let _loc__4_ = (_startpos__4_, _endpos__4_) in - ( +# 32889 "src/ocaml/preprocess/parser_raw.ml" + + in + let _loc__4_ = (_startpos__4_, _endpos__4_) in + # 3362 "src/ocaml/preprocess/parser_raw.mly" ( let bound_vars, inner_type = _4 in let ltyp = Ptyp_poly (bound_vars, inner_type) in @@ -33527,10 +32898,8 @@ module Tables = struct (_2, _7, Some (Pvc_constraint { locally_abstract_univars = []; typ }), modes) ) -# 33531 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.pattern * Parsetree.expression * - Parsetree.value_constraint option * Parsetree.modes)) - in +# 32902 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -33607,68 +32976,68 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__7_ in - let _v = - let modes1 = - let _1 = _1_inlined2 in - + let _v : (Parsetree.pattern * Parsetree.expression * + Parsetree.value_constraint option * Parsetree.modes) = let modes1 = + let _1 = _1_inlined2 in + # 4700 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 33617 "src/ocaml/preprocess/parser_raw.ml" - - in - let _4 = - let _3 = _3_inlined1 in +# 32986 "src/ocaml/preprocess/parser_raw.ml" + + in + let _4 = + let _3 = _3_inlined1 in + let _1 = let _1 = - let _1 = - let xs = -# 264 "" + let xs = +# 253 "" ( List.rev xs ) -# 33627 "src/ocaml/preprocess/parser_raw.ml" - in - +# 32996 "src/ocaml/preprocess/parser_raw.ml" + in + # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 33632 "src/ocaml/preprocess/parser_raw.ml" - - in +# 33001 "src/ocaml/preprocess/parser_raw.ml" + in + # 4481 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 33638 "src/ocaml/preprocess/parser_raw.ml" - - in +# 33007 "src/ocaml/preprocess/parser_raw.ml" + in + # 4485 "src/ocaml/preprocess/parser_raw.mly" ( (_1, _3) ) -# 33644 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__4_, _startpos__4_) = (_endpos__3_inlined1_, _startpos_xs_) in - let _2 = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 33013 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__4_, _startpos__4_) = (_endpos__3_inlined1_, _startpos_xs_) in + let _2 = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 3335 "src/ocaml/preprocess/parser_raw.mly" ( mkpatvar ~loc:_sloc _1 ) -# 33656 "src/ocaml/preprocess/parser_raw.ml" - - in - let modes0 = - let _1 = +# 33025 "src/ocaml/preprocess/parser_raw.ml" + + in + let modes0 = + let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 33663 "src/ocaml/preprocess/parser_raw.ml" - in - +# 33032 "src/ocaml/preprocess/parser_raw.ml" + in + # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 33668 "src/ocaml/preprocess/parser_raw.ml" - - in - let _loc__4_ = (_startpos__4_, _endpos__4_) in - ( +# 33037 "src/ocaml/preprocess/parser_raw.ml" + + in + let _loc__4_ = (_startpos__4_, _endpos__4_) in + # 3362 "src/ocaml/preprocess/parser_raw.mly" ( let bound_vars, inner_type = _4 in let ltyp = Ptyp_poly (bound_vars, inner_type) in @@ -33677,10 +33046,8 @@ module Tables = struct (_2, _7, Some (Pvc_constraint { locally_abstract_univars = []; typ }), modes) ) -# 33681 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.pattern * Parsetree.expression * - Parsetree.value_constraint option * Parsetree.modes)) - in +# 33050 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -33750,27 +33117,27 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__9_ in - let _v = - let modes = + let _v : (Parsetree.pattern * Parsetree.expression * + Parsetree.value_constraint option * Parsetree.modes) = let modes = # 4699 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 33758 "src/ocaml/preprocess/parser_raw.ml" - in - let _1 = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 3335 "src/ocaml/preprocess/parser_raw.mly" - ( mkpatvar ~loc:_sloc _1 ) -# 33767 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__9_ in +# 33125 "src/ocaml/preprocess/parser_raw.ml" + in + let _1 = + let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in - let _loc__6_ = (_startpos__6_, _endpos__6_) in let _sloc = (_symbolstartpos, _endpos) in - ( + +# 3335 "src/ocaml/preprocess/parser_raw.mly" + ( mkpatvar ~loc:_sloc _1 ) +# 33134 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__9_ in + let _symbolstartpos = _startpos__1_ in + let _loc__6_ = (_startpos__6_, _endpos__6_) in + let _sloc = (_symbolstartpos, _endpos) in + # 3385 "src/ocaml/preprocess/parser_raw.mly" ( let exp, poly = wrap_type_annotation ~loc:_sloc ~modes:[] ~typloc:_loc__6_ _4 _6 _9 @@ -33778,10 +33145,8 @@ module Tables = struct let loc = (_startpos__1_, _endpos__6_) in (ghpat_with_modes ~loc ~pat:_1 ~cty:(Some poly) ~modes:[], exp, None, modes) ) -# 33782 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.pattern * Parsetree.expression * - Parsetree.value_constraint option * Parsetree.modes)) - in +# 33149 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -33858,30 +33223,30 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__9_ in - let _v = - let modes = - let _1 = _1_inlined1 in - + let _v : (Parsetree.pattern * Parsetree.expression * + Parsetree.value_constraint option * Parsetree.modes) = let modes = + let _1 = _1_inlined1 in + # 4700 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 33868 "src/ocaml/preprocess/parser_raw.ml" - - in - let _1 = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 3335 "src/ocaml/preprocess/parser_raw.mly" - ( mkpatvar ~loc:_sloc _1 ) -# 33878 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__9_ in +# 33233 "src/ocaml/preprocess/parser_raw.ml" + + in + let _1 = + let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in - let _loc__6_ = (_startpos__6_, _endpos__6_) in let _sloc = (_symbolstartpos, _endpos) in - ( + +# 3335 "src/ocaml/preprocess/parser_raw.mly" + ( mkpatvar ~loc:_sloc _1 ) +# 33243 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__9_ in + let _symbolstartpos = _startpos__1_ in + let _loc__6_ = (_startpos__6_, _endpos__6_) in + let _sloc = (_symbolstartpos, _endpos) in + # 3385 "src/ocaml/preprocess/parser_raw.mly" ( let exp, poly = wrap_type_annotation ~loc:_sloc ~modes:[] ~typloc:_loc__6_ _4 _6 _9 @@ -33889,10 +33254,8 @@ module Tables = struct let loc = (_startpos__1_, _endpos__6_) in (ghpat_with_modes ~loc ~pat:_1 ~cty:(Some poly) ~modes:[], exp, None, modes) ) -# 33893 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.pattern * Parsetree.expression * - Parsetree.value_constraint option * Parsetree.modes)) - in +# 33258 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -33931,7 +33294,7 @@ module Tables = struct Parsetree.value_constraint option * Parsetree.modes) = # 3392 "src/ocaml/preprocess/parser_raw.mly" ( (_1, _3, None, []) ) -# 33935 "src/ocaml/preprocess/parser_raw.ml" +# 33298 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -33974,25 +33337,23 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in - let _v = - let _2 = - let _1 = _1_inlined1 in - + let _v : (Parsetree.pattern * Parsetree.expression * + Parsetree.value_constraint option * Parsetree.modes) = let _2 = + let _1 = _1_inlined1 in + # 3338 "src/ocaml/preprocess/parser_raw.mly" (None, _1) -# 33984 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 33347 "src/ocaml/preprocess/parser_raw.ml" + + in + # 3394 "src/ocaml/preprocess/parser_raw.mly" ( let pvc, modes = _2 in (_1, _4, pvc, modes) ) -# 33993 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.pattern * Parsetree.expression * - Parsetree.value_constraint option * Parsetree.modes)) - in +# 33356 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -34041,31 +33402,29 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in - let _v = - let _2 = - let _3 = + let _v : (Parsetree.pattern * Parsetree.expression * + Parsetree.value_constraint option * Parsetree.modes) = let _2 = + let _3 = # 4699 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 34050 "src/ocaml/preprocess/parser_raw.ml" - in - +# 33411 "src/ocaml/preprocess/parser_raw.ml" + in + # 3339 "src/ocaml/preprocess/parser_raw.mly" ( Some(Pvc_constraint { locally_abstract_univars=[]; typ=_2 }), _3 ) -# 34057 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 33418 "src/ocaml/preprocess/parser_raw.ml" + + in + # 3394 "src/ocaml/preprocess/parser_raw.mly" ( let pvc, modes = _2 in (_1, _4, pvc, modes) ) -# 34066 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.pattern * Parsetree.expression * - Parsetree.value_constraint option * Parsetree.modes)) - in +# 33427 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -34121,35 +33480,33 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in - let _v = - let _2 = - let _1_inlined1 = _1_inlined2 in - let _3 = - let _1 = _1_inlined1 in - + let _v : (Parsetree.pattern * Parsetree.expression * + Parsetree.value_constraint option * Parsetree.modes) = let _2 = + let _1_inlined1 = _1_inlined2 in + let _3 = + let _1 = _1_inlined1 in + # 4700 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 34133 "src/ocaml/preprocess/parser_raw.ml" - - in +# 33492 "src/ocaml/preprocess/parser_raw.ml" + in + # 3339 "src/ocaml/preprocess/parser_raw.mly" ( Some(Pvc_constraint { locally_abstract_univars=[]; typ=_2 }), _3 ) -# 34141 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 33500 "src/ocaml/preprocess/parser_raw.ml" + + in + # 3394 "src/ocaml/preprocess/parser_raw.mly" ( let pvc, modes = _2 in (_1, _4, pvc, modes) ) -# 34150 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.pattern * Parsetree.expression * - Parsetree.value_constraint option * Parsetree.modes)) - in +# 33509 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -34184,32 +33541,30 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in - let _v = - let _2 = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let _v : (Parsetree.pattern * Parsetree.expression * + Parsetree.value_constraint option * Parsetree.modes) = let _2 = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 3335 "src/ocaml/preprocess/parser_raw.mly" ( mkpatvar ~loc:_sloc _1 ) -# 34197 "src/ocaml/preprocess/parser_raw.ml" - - in - let modes = +# 33554 "src/ocaml/preprocess/parser_raw.ml" + + in + let modes = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 34203 "src/ocaml/preprocess/parser_raw.ml" - in - ( +# 33560 "src/ocaml/preprocess/parser_raw.ml" + in + # 3399 "src/ocaml/preprocess/parser_raw.mly" ( (_2, _3 modes, None, modes) ) -# 34210 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.pattern * Parsetree.expression * - Parsetree.value_constraint option * Parsetree.modes)) - in +# 33567 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -34258,27 +33613,25 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__5_ in - let _v = - let _2 = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let _v : (Parsetree.pattern * Parsetree.expression * + Parsetree.value_constraint option * Parsetree.modes) = let _2 = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 3335 "src/ocaml/preprocess/parser_raw.mly" ( mkpatvar ~loc:_sloc _1 ) -# 34271 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 33626 "src/ocaml/preprocess/parser_raw.ml" + + in + # 3403 "src/ocaml/preprocess/parser_raw.mly" ( (_2, _5 modes, None, modes) ) -# 34279 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.pattern * Parsetree.expression * - Parsetree.value_constraint option * Parsetree.modes)) - in +# 33634 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -34335,43 +33688,41 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined2_ in - let _v = - let _1 = - let attrs2 = - let _1 = _1_inlined2 in - + let _v : (Parser_types.let_bindings) = let _1 = + let attrs2 = + let _1 = _1_inlined2 in + # 5399 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 34346 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_attrs2_ = _endpos__1_inlined2_ in - let attrs1 = - let _1 = _1_inlined1 in - +# 33698 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_attrs2_ = _endpos__1_inlined2_ in + let attrs1 = + let _1 = _1_inlined1 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 34355 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos_attrs2_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 33707 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos_attrs2_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 3432 "src/ocaml/preprocess/parser_raw.mly" ( let attrs = attrs1 @ attrs2 in mklbs ext rec_flag (mklb ~loc:_sloc true body attrs) ) -# 34367 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 33719 "src/ocaml/preprocess/parser_raw.ml" + + in + # 3422 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 34373 "src/ocaml/preprocess/parser_raw.ml" - : (Parser_types.let_bindings)) - in +# 33725 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -34402,7 +33753,7 @@ module Tables = struct let _v : (Parser_types.let_bindings) = # 3423 "src/ocaml/preprocess/parser_raw.mly" ( addlb _1 _2 ) -# 34406 "src/ocaml/preprocess/parser_raw.ml" +# 33757 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -34453,48 +33804,46 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined2_ in - let _v = - let _1 = - let attrs2 = - let _1 = _1_inlined2 in - + let _v : (Parser_types.let_bindings) = let _1 = + let attrs2 = + let _1 = _1_inlined2 in + # 5399 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 34464 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_attrs2_ = _endpos__1_inlined2_ in - let attrs1 = - let _1 = _1_inlined1 in - +# 33814 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_attrs2_ = _endpos__1_inlined2_ in + let attrs1 = + let _1 = _1_inlined1 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 34473 "src/ocaml/preprocess/parser_raw.ml" - - in - let ext = +# 33823 "src/ocaml/preprocess/parser_raw.ml" + + in + let ext = # 5410 "src/ocaml/preprocess/parser_raw.mly" ( None ) -# 34479 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos_attrs2_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 33829 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos_attrs2_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 3432 "src/ocaml/preprocess/parser_raw.mly" ( let attrs = attrs1 @ attrs2 in mklbs ext rec_flag (mklb ~loc:_sloc true body attrs) ) -# 34490 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 33840 "src/ocaml/preprocess/parser_raw.ml" + + in + # 3422 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 34496 "src/ocaml/preprocess/parser_raw.ml" - : (Parser_types.let_bindings)) - in +# 33846 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -34558,54 +33907,52 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined3_ in - let _v = - let _1 = - let attrs2 = - let _1 = _1_inlined3 in - + let _v : (Parser_types.let_bindings) = let _1 = + let attrs2 = + let _1 = _1_inlined3 in + # 5399 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 34569 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_attrs2_ = _endpos__1_inlined3_ in - let attrs1 = - let _1 = _1_inlined2 in - +# 33917 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_attrs2_ = _endpos__1_inlined3_ in + let attrs1 = + let _1 = _1_inlined2 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 34578 "src/ocaml/preprocess/parser_raw.ml" - - in - let ext = - let _startpos__1_ = _startpos__1_inlined1_ in - let _endpos = _endpos__2_ in - let _startpos = _startpos__1_ in - let _loc = (_startpos, _endpos) in - +# 33926 "src/ocaml/preprocess/parser_raw.ml" + + in + let ext = + let _startpos__1_ = _startpos__1_inlined1_ in + let _endpos = _endpos__2_ in + let _startpos = _startpos__1_ in + let _loc = (_startpos, _endpos) in + # 5412 "src/ocaml/preprocess/parser_raw.mly" ( not_expecting _loc "extension"; None ) -# 34589 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos_attrs2_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 33937 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos_attrs2_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 3432 "src/ocaml/preprocess/parser_raw.mly" ( let attrs = attrs1 @ attrs2 in mklbs ext rec_flag (mklb ~loc:_sloc true body attrs) ) -# 34601 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 33949 "src/ocaml/preprocess/parser_raw.ml" + + in + # 3422 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 34607 "src/ocaml/preprocess/parser_raw.ml" - : (Parser_types.let_bindings)) - in +# 33955 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -34636,7 +33983,7 @@ module Tables = struct let _v : (Parser_types.let_bindings) = # 3423 "src/ocaml/preprocess/parser_raw.mly" ( addlb _1 _2 ) -# 34640 "src/ocaml/preprocess/parser_raw.ml" +# 33987 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -34658,23 +34005,21 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_pat_ in let _endpos = _endpos_pat_ in - let _v = - let modes = + let _v : (Parsetree.pattern * Parsetree.core_type option * Parsetree.modes) = let modes = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 34666 "src/ocaml/preprocess/parser_raw.ml" - in - let x = +# 34012 "src/ocaml/preprocess/parser_raw.ml" + in + let x = # 2888 "src/ocaml/preprocess/parser_raw.mly" ( pat, None ) -# 34671 "src/ocaml/preprocess/parser_raw.ml" - in - ( +# 34017 "src/ocaml/preprocess/parser_raw.ml" + in + # 2861 "src/ocaml/preprocess/parser_raw.mly" ( let pat, cty = x in pat, cty, modes ) -# 34676 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.pattern * Parsetree.core_type option * Parsetree.modes)) - in +# 34022 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -34702,23 +34047,21 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_pat_ in let _endpos = _endpos__1_ in - let _v = - let modes = + let _v : (Parsetree.pattern * Parsetree.core_type option * Parsetree.modes) = let modes = # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 34710 "src/ocaml/preprocess/parser_raw.ml" - in - let x = +# 34054 "src/ocaml/preprocess/parser_raw.ml" + in + let x = # 2888 "src/ocaml/preprocess/parser_raw.mly" ( pat, None ) -# 34715 "src/ocaml/preprocess/parser_raw.ml" - in - ( +# 34059 "src/ocaml/preprocess/parser_raw.ml" + in + # 2861 "src/ocaml/preprocess/parser_raw.mly" ( let pat, cty = x in pat, cty, modes ) -# 34720 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.pattern * Parsetree.core_type option * Parsetree.modes)) - in +# 34064 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -34753,23 +34096,21 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_pat_ in let _endpos = _endpos_cty_ in - let _v = - let modes = + let _v : (Parsetree.pattern * Parsetree.core_type option * Parsetree.modes) = let modes = # 4699 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 34761 "src/ocaml/preprocess/parser_raw.ml" - in - let x = +# 34103 "src/ocaml/preprocess/parser_raw.ml" + in + let x = # 2882 "src/ocaml/preprocess/parser_raw.mly" ( pat, Some cty ) -# 34766 "src/ocaml/preprocess/parser_raw.ml" - in - ( +# 34108 "src/ocaml/preprocess/parser_raw.ml" + in + # 2863 "src/ocaml/preprocess/parser_raw.mly" ( let pat, cty = x in pat, cty, modes ) -# 34771 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.pattern * Parsetree.core_type option * Parsetree.modes)) - in +# 34113 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -34811,23 +34152,21 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_pat_ in let _endpos = _endpos__1_ in - let _v = - let modes = + let _v : (Parsetree.pattern * Parsetree.core_type option * Parsetree.modes) = let modes = # 4700 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 34819 "src/ocaml/preprocess/parser_raw.ml" - in - let x = +# 34159 "src/ocaml/preprocess/parser_raw.ml" + in + let x = # 2882 "src/ocaml/preprocess/parser_raw.mly" ( pat, Some cty ) -# 34824 "src/ocaml/preprocess/parser_raw.ml" - in - ( +# 34164 "src/ocaml/preprocess/parser_raw.ml" + in + # 2863 "src/ocaml/preprocess/parser_raw.mly" ( let pat, cty = x in pat, cty, modes ) -# 34829 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.pattern * Parsetree.core_type option * Parsetree.modes)) - in +# 34169 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -34876,69 +34215,67 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_pat_ in let _endpos = _endpos_inner_type_ in - let _v = - let modes = + let _v : (Parsetree.pattern * Parsetree.core_type option * Parsetree.modes) = let modes = # 4699 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 34884 "src/ocaml/preprocess/parser_raw.ml" - in - let x = - let _1 = - let cty = - let _1 = - let bound_vars = - let _1 = - let xs = -# 264 "" +# 34222 "src/ocaml/preprocess/parser_raw.ml" + in + let x = + let _1 = + let cty = + let _1 = + let bound_vars = + let _1 = + let xs = +# 253 "" ( List.rev xs ) -# 34895 "src/ocaml/preprocess/parser_raw.ml" - in - +# 34233 "src/ocaml/preprocess/parser_raw.ml" + in + # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 34900 "src/ocaml/preprocess/parser_raw.ml" - - in +# 34238 "src/ocaml/preprocess/parser_raw.ml" + in + # 4481 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 34906 "src/ocaml/preprocess/parser_raw.ml" - - in +# 34244 "src/ocaml/preprocess/parser_raw.ml" + in + # 2897 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 34912 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos_inner_type_, _startpos_xs_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 34250 "src/ocaml/preprocess/parser_raw.ml" + in + let (_endpos__1_, _startpos__1_) = (_endpos_inner_type_, _startpos_xs_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 34922 "src/ocaml/preprocess/parser_raw.ml" - - in +# 34260 "src/ocaml/preprocess/parser_raw.ml" + in + # 2898 "src/ocaml/preprocess/parser_raw.mly" ( pat, Some cty ) -# 34928 "src/ocaml/preprocess/parser_raw.ml" - - in +# 34266 "src/ocaml/preprocess/parser_raw.ml" + in + # 2884 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 34934 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 34272 "src/ocaml/preprocess/parser_raw.ml" + + in + # 2863 "src/ocaml/preprocess/parser_raw.mly" ( let pat, cty = x in pat, cty, modes ) -# 34940 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.pattern * Parsetree.core_type option * Parsetree.modes)) - in +# 34278 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -34994,69 +34331,67 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_pat_ in let _endpos = _endpos__1_ in - let _v = - let modes = + let _v : (Parsetree.pattern * Parsetree.core_type option * Parsetree.modes) = let modes = # 4700 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 35002 "src/ocaml/preprocess/parser_raw.ml" - in - let x = - let _1 = - let cty = - let _1 = - let bound_vars = - let _1 = - let xs = -# 264 "" +# 34338 "src/ocaml/preprocess/parser_raw.ml" + in + let x = + let _1 = + let cty = + let _1 = + let bound_vars = + let _1 = + let xs = +# 253 "" ( List.rev xs ) -# 35013 "src/ocaml/preprocess/parser_raw.ml" - in - +# 34349 "src/ocaml/preprocess/parser_raw.ml" + in + # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 35018 "src/ocaml/preprocess/parser_raw.ml" - - in +# 34354 "src/ocaml/preprocess/parser_raw.ml" + in + # 4481 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 35024 "src/ocaml/preprocess/parser_raw.ml" - - in +# 34360 "src/ocaml/preprocess/parser_raw.ml" + in + # 2897 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 35030 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos_inner_type_, _startpos_xs_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 34366 "src/ocaml/preprocess/parser_raw.ml" + in + let (_endpos__1_, _startpos__1_) = (_endpos_inner_type_, _startpos_xs_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 35040 "src/ocaml/preprocess/parser_raw.ml" - - in +# 34376 "src/ocaml/preprocess/parser_raw.ml" + in + # 2898 "src/ocaml/preprocess/parser_raw.mly" ( pat, Some cty ) -# 35046 "src/ocaml/preprocess/parser_raw.ml" - - in +# 34382 "src/ocaml/preprocess/parser_raw.ml" + in + # 2884 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 35052 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 34388 "src/ocaml/preprocess/parser_raw.ml" + + in + # 2863 "src/ocaml/preprocess/parser_raw.mly" ( let pat, cty = x in pat, cty, modes ) -# 35058 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.pattern * Parsetree.core_type option * Parsetree.modes)) - in +# 34394 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -35094,7 +34429,7 @@ module Tables = struct let _v : (Parsetree.pattern * Parsetree.core_type option * Parsetree.modes) = # 2864 "src/ocaml/preprocess/parser_raw.mly" ( _2 ) -# 35098 "src/ocaml/preprocess/parser_raw.ml" +# 34433 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -35116,18 +34451,16 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_pat_ in let _endpos = _endpos_pat_ in - let _v = - let x = + let _v : (Parsetree.pattern * Parsetree.core_type option) = let x = # 2888 "src/ocaml/preprocess/parser_raw.mly" ( pat, None ) -# 35124 "src/ocaml/preprocess/parser_raw.ml" - in - ( +# 34458 "src/ocaml/preprocess/parser_raw.ml" + in + # 2876 "src/ocaml/preprocess/parser_raw.mly" ( x ) -# 35129 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.pattern * Parsetree.core_type option)) - in +# 34463 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -35162,18 +34495,16 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_pat_ in let _endpos = _endpos_cty_ in - let _v = - let x = + let _v : (Parsetree.pattern * Parsetree.core_type option) = let x = # 2882 "src/ocaml/preprocess/parser_raw.mly" ( pat, Some cty ) -# 35170 "src/ocaml/preprocess/parser_raw.ml" - in - ( +# 34502 "src/ocaml/preprocess/parser_raw.ml" + in + # 2877 "src/ocaml/preprocess/parser_raw.mly" ( x ) -# 35175 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.pattern * Parsetree.core_type option)) - in +# 34507 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -35222,64 +34553,62 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_pat_ in let _endpos = _endpos_inner_type_ in - let _v = - let x = - let _1 = - let cty = - let _1 = - let bound_vars = - let _1 = - let xs = -# 264 "" + let _v : (Parsetree.pattern * Parsetree.core_type option) = let x = + let _1 = + let cty = + let _1 = + let bound_vars = + let _1 = + let xs = +# 253 "" ( List.rev xs ) -# 35236 "src/ocaml/preprocess/parser_raw.ml" - in - +# 34566 "src/ocaml/preprocess/parser_raw.ml" + in + # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 35241 "src/ocaml/preprocess/parser_raw.ml" - - in +# 34571 "src/ocaml/preprocess/parser_raw.ml" + in + # 4481 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 35247 "src/ocaml/preprocess/parser_raw.ml" - - in +# 34577 "src/ocaml/preprocess/parser_raw.ml" + in + # 2897 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 35253 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos_inner_type_, _startpos_xs_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 34583 "src/ocaml/preprocess/parser_raw.ml" + in + let (_endpos__1_, _startpos__1_) = (_endpos_inner_type_, _startpos_xs_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 35263 "src/ocaml/preprocess/parser_raw.ml" - - in +# 34593 "src/ocaml/preprocess/parser_raw.ml" + in + # 2898 "src/ocaml/preprocess/parser_raw.mly" ( pat, Some cty ) -# 35269 "src/ocaml/preprocess/parser_raw.ml" - - in +# 34599 "src/ocaml/preprocess/parser_raw.ml" + in + # 2884 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 35275 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 34605 "src/ocaml/preprocess/parser_raw.ml" + + in + # 2877 "src/ocaml/preprocess/parser_raw.mly" ( x ) -# 35281 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.pattern * Parsetree.core_type option)) - in +# 34611 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -35307,18 +34636,16 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_pat_ in let _endpos = _endpos_modes_ in - let _v = - let x = + let _v : (Parsetree.pattern * Parsetree.core_type option * Parsetree.modes) = let x = # 2888 "src/ocaml/preprocess/parser_raw.mly" ( pat, None ) -# 35315 "src/ocaml/preprocess/parser_raw.ml" - in - ( +# 34643 "src/ocaml/preprocess/parser_raw.ml" + in + # 2869 "src/ocaml/preprocess/parser_raw.mly" ( let pat, cty = x in pat, cty, modes ) -# 35320 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.pattern * Parsetree.core_type option * Parsetree.modes)) - in +# 34648 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -35360,18 +34687,16 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_pat_ in let _endpos = _endpos_modes_ in - let _v = - let x = + let _v : (Parsetree.pattern * Parsetree.core_type option * Parsetree.modes) = let x = # 2882 "src/ocaml/preprocess/parser_raw.mly" ( pat, Some cty ) -# 35368 "src/ocaml/preprocess/parser_raw.ml" - in - ( +# 34694 "src/ocaml/preprocess/parser_raw.ml" + in + # 2871 "src/ocaml/preprocess/parser_raw.mly" ( let pat, cty = x in pat, cty, modes ) -# 35373 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.pattern * Parsetree.core_type option * Parsetree.modes)) - in +# 34699 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -35427,64 +34752,62 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_pat_ in let _endpos = _endpos_modes_ in - let _v = - let x = - let _1 = - let cty = - let _1 = - let bound_vars = - let _1 = - let xs = -# 264 "" + let _v : (Parsetree.pattern * Parsetree.core_type option * Parsetree.modes) = let x = + let _1 = + let cty = + let _1 = + let bound_vars = + let _1 = + let xs = +# 253 "" ( List.rev xs ) -# 35441 "src/ocaml/preprocess/parser_raw.ml" - in - +# 34765 "src/ocaml/preprocess/parser_raw.ml" + in + # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 35446 "src/ocaml/preprocess/parser_raw.ml" - - in +# 34770 "src/ocaml/preprocess/parser_raw.ml" + in + # 4481 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 35452 "src/ocaml/preprocess/parser_raw.ml" - - in +# 34776 "src/ocaml/preprocess/parser_raw.ml" + in + # 2897 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 35458 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos_inner_type_, _startpos_xs_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 34782 "src/ocaml/preprocess/parser_raw.ml" + in + let (_endpos__1_, _startpos__1_) = (_endpos_inner_type_, _startpos_xs_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 35468 "src/ocaml/preprocess/parser_raw.ml" - - in +# 34792 "src/ocaml/preprocess/parser_raw.ml" + in + # 2898 "src/ocaml/preprocess/parser_raw.mly" ( pat, Some cty ) -# 35474 "src/ocaml/preprocess/parser_raw.ml" - - in +# 34798 "src/ocaml/preprocess/parser_raw.ml" + in + # 2884 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 35480 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 34804 "src/ocaml/preprocess/parser_raw.ml" + + in + # 2871 "src/ocaml/preprocess/parser_raw.mly" ( let pat, cty = x in pat, cty, modes ) -# 35486 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.pattern * Parsetree.core_type option * Parsetree.modes)) - in +# 34810 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -35522,7 +34845,7 @@ module Tables = struct let _v : (Parsetree.pattern * Parsetree.core_type option * Parsetree.modes) = # 2872 "src/ocaml/preprocess/parser_raw.mly" ( _2 ) -# 35526 "src/ocaml/preprocess/parser_raw.ml" +# 34849 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -35551,31 +34874,29 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined1_ in - let _v = - let exp = - let _1 = _1_inlined1 in - + let _v : (Parsetree.pattern * Parsetree.expression) = let exp = + let _1 = _1_inlined1 in + # 3492 "src/ocaml/preprocess/parser_raw.mly" (_1 []) -# 35561 "src/ocaml/preprocess/parser_raw.ml" - - in - let pat = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 34883 "src/ocaml/preprocess/parser_raw.ml" + + in + let pat = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 3335 "src/ocaml/preprocess/parser_raw.mly" ( mkpatvar ~loc:_sloc _1 ) -# 35571 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 34893 "src/ocaml/preprocess/parser_raw.ml" + + in + # 3449 "src/ocaml/preprocess/parser_raw.mly" ( (pat, exp) ) -# 35577 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.pattern * Parsetree.expression)) - in +# 34899 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -35596,16 +34917,14 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v = - let _endpos = _endpos__1_ in - let _startpos = _startpos__1_ in - let _loc = (_startpos, _endpos) in - ( + let _v : (Parsetree.pattern * Parsetree.expression) = let _endpos = _endpos__1_ in + let _startpos = _startpos__1_ in + let _loc = (_startpos, _endpos) in + # 3452 "src/ocaml/preprocess/parser_raw.mly" ( (mkpatvar ~loc:_loc ~attrs:[pun_attr] _1, ghexpvar ~loc:_loc ~attrs:[pun_attr] _1) ) -# 35607 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.pattern * Parsetree.expression)) - in +# 34927 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -35658,7 +34977,7 @@ module Tables = struct # 3455 "src/ocaml/preprocess/parser_raw.mly" ( let loc = (_startpos_pat_, _endpos_typ_) in (ghpat_with_modes ~loc ~pat ~cty:(Some typ) ~modes:[], exp) ) -# 35662 "src/ocaml/preprocess/parser_raw.ml" +# 34981 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -35697,7 +35016,7 @@ module Tables = struct let _v : (Parsetree.pattern * Parsetree.expression) = # 3458 "src/ocaml/preprocess/parser_raw.mly" ( (pat, exp) ) -# 35701 "src/ocaml/preprocess/parser_raw.ml" +# 35020 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -35723,7 +35042,7 @@ module Tables = struct # 3462 "src/ocaml/preprocess/parser_raw.mly" ( let let_pat, let_exp = body in let_pat, let_exp, [] ) -# 35727 "src/ocaml/preprocess/parser_raw.ml" +# 35046 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -35757,36 +35076,34 @@ module Tables = struct let _1 : ( # 1075 "src/ocaml/preprocess/parser_raw.mly" (string) -# 35761 "src/ocaml/preprocess/parser_raw.ml" +# 35080 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let bindings : (Parsetree.pattern * Parsetree.expression * Parsetree.binding_op list) = Obj.magic bindings in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_bindings_ in let _endpos = _endpos_body_ in - let _v = - let pbop_op = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let _v : (Parsetree.pattern * Parsetree.expression * Parsetree.binding_op list) = let pbop_op = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 35775 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos_body_ in - let _symbolstartpos = _startpos_bindings_ in - let _sloc = (_symbolstartpos, _endpos) in - ( +# 35093 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos_body_ in + let _symbolstartpos = _startpos_bindings_ in + let _sloc = (_symbolstartpos, _endpos) in + # 3465 "src/ocaml/preprocess/parser_raw.mly" ( let let_pat, let_exp, rev_ands = bindings in let pbop_pat, pbop_exp = body in let pbop_loc = make_loc _sloc in let and_ = {pbop_op; pbop_pat; pbop_exp; pbop_loc} in let_pat, let_exp, and_ :: rev_ands ) -# 35788 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.pattern * Parsetree.expression * Parsetree.binding_op list)) - in +# 35106 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -35801,9 +35118,9 @@ module Tables = struct let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in let _endpos = _startpos in let _v : (Parsetree.class_expr Parsetree.class_infos list) = -# 216 "" +# 211 "" ( [] ) -# 35807 "src/ocaml/preprocess/parser_raw.ml" +# 35124 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -35869,7 +35186,7 @@ module Tables = struct let _1_inlined2 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 35873 "src/ocaml/preprocess/parser_raw.ml" +# 35190 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined2 in let params : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = Obj.magic params in let virt : (Asttypes.virtual_flag) = Obj.magic virt in @@ -35878,40 +35195,39 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_xs_ in - let _v = - let x = - let attrs2 = - let _1 = _1_inlined3 in - + let _v : (Parsetree.class_expr Parsetree.class_infos list) = let x = + let attrs2 = + let _1 = _1_inlined3 in + # 5399 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 35889 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_attrs2_ = _endpos__1_inlined3_ in - let id = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 35205 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_attrs2_ = _endpos__1_inlined3_ in + let id = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 35901 "src/ocaml/preprocess/parser_raw.ml" - - in - let attrs1 = - let _1 = _1_inlined1 in - +# 35217 "src/ocaml/preprocess/parser_raw.ml" + + in + let attrs1 = + let _1 = _1_inlined1 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 35909 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos_attrs2_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 35225 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos_attrs2_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2366 "src/ocaml/preprocess/parser_raw.mly" ( let attrs = attrs1 @ attrs2 in @@ -35920,15 +35236,14 @@ module Tables = struct let text = symbol_text _symbolstartpos in Ci.mk id body ~virt ~params ~attrs ~loc ~text ~docs ) -# 35924 "src/ocaml/preprocess/parser_raw.ml" - - in - ( -# 219 "" - ( x :: xs ) -# 35930 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.class_expr Parsetree.class_infos list)) +# 35240 "src/ocaml/preprocess/parser_raw.ml" + in + +# 213 "" + ( x :: xs ) +# 35246 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -35943,9 +35258,9 @@ module Tables = struct let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in let _endpos = _startpos in let _v : (Parsetree.class_type Parsetree.class_infos list) = -# 216 "" +# 211 "" ( [] ) -# 35949 "src/ocaml/preprocess/parser_raw.ml" +# 35264 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -36018,7 +35333,7 @@ module Tables = struct let _1_inlined2 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 36022 "src/ocaml/preprocess/parser_raw.ml" +# 35337 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined2 in let params : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = Obj.magic params in let virt : (Asttypes.virtual_flag) = Obj.magic virt in @@ -36027,40 +35342,39 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_xs_ in - let _v = - let x = - let attrs2 = - let _1 = _1_inlined3 in - + let _v : (Parsetree.class_type Parsetree.class_infos list) = let x = + let attrs2 = + let _1 = _1_inlined3 in + # 5399 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 36038 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_attrs2_ = _endpos__1_inlined3_ in - let id = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 35352 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_attrs2_ = _endpos__1_inlined3_ in + let id = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 36050 "src/ocaml/preprocess/parser_raw.ml" - - in - let attrs1 = - let _1 = _1_inlined1 in - +# 35364 "src/ocaml/preprocess/parser_raw.ml" + + in + let attrs1 = + let _1 = _1_inlined1 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 36058 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos_attrs2_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 35372 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos_attrs2_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2664 "src/ocaml/preprocess/parser_raw.mly" ( let attrs = attrs1 @ attrs2 in @@ -36069,15 +35383,14 @@ module Tables = struct let text = symbol_text _symbolstartpos in Ci.mk id cty ~virt ~params ~attrs ~loc ~text ~docs ) -# 36073 "src/ocaml/preprocess/parser_raw.ml" - - in - ( -# 219 "" - ( x :: xs ) -# 36079 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.class_type Parsetree.class_infos list)) +# 35387 "src/ocaml/preprocess/parser_raw.ml" + in + +# 213 "" + ( x :: xs ) +# 35393 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -36092,9 +35405,9 @@ module Tables = struct let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in let _endpos = _startpos in let _v : (Parsetree.class_type Parsetree.class_infos list) = -# 216 "" +# 211 "" ( [] ) -# 36098 "src/ocaml/preprocess/parser_raw.ml" +# 35411 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -36167,7 +35480,7 @@ module Tables = struct let _1_inlined2 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 36171 "src/ocaml/preprocess/parser_raw.ml" +# 35484 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined2 in let params : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = Obj.magic params in let virt : (Asttypes.virtual_flag) = Obj.magic virt in @@ -36176,40 +35489,39 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_xs_ in - let _v = - let x = - let attrs2 = - let _1 = _1_inlined3 in - + let _v : (Parsetree.class_type Parsetree.class_infos list) = let x = + let attrs2 = + let _1 = _1_inlined3 in + # 5399 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 36187 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_attrs2_ = _endpos__1_inlined3_ in - let id = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 35499 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_attrs2_ = _endpos__1_inlined3_ in + let id = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 36199 "src/ocaml/preprocess/parser_raw.ml" - - in - let attrs1 = - let _1 = _1_inlined1 in - +# 35511 "src/ocaml/preprocess/parser_raw.ml" + + in + let attrs1 = + let _1 = _1_inlined1 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 36207 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos_attrs2_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 35519 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos_attrs2_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2703 "src/ocaml/preprocess/parser_raw.mly" ( let attrs = attrs1 @ attrs2 in @@ -36218,15 +35530,14 @@ module Tables = struct let text = symbol_text _symbolstartpos in Ci.mk id csig ~virt ~params ~attrs ~loc ~text ~docs ) -# 36222 "src/ocaml/preprocess/parser_raw.ml" - - in - ( -# 219 "" - ( x :: xs ) -# 36228 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.class_type Parsetree.class_infos list)) +# 35534 "src/ocaml/preprocess/parser_raw.ml" + in + +# 213 "" + ( x :: xs ) +# 35540 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -36241,9 +35552,9 @@ module Tables = struct let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in let _endpos = _startpos in let _v : (Parsetree.module_binding list) = -# 216 "" +# 211 "" ( [] ) -# 36247 "src/ocaml/preprocess/parser_raw.ml" +# 35558 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -36300,29 +35611,28 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_xs_ in - let _v = - let x = - let attrs2 = - let _1 = _1_inlined2 in - + let _v : (Parsetree.module_binding list) = let x = + let attrs2 = + let _1 = _1_inlined2 in + # 5399 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 36311 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_attrs2_ = _endpos__1_inlined2_ in - let attrs1 = - let _1 = _1_inlined1 in - +# 35621 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_attrs2_ = _endpos__1_inlined2_ in + let attrs1 = + let _1 = _1_inlined1 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 36320 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos_attrs2_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 35630 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos_attrs2_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1975 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in @@ -36333,15 +35643,14 @@ module Tables = struct let body = maybe_pmod_constraint modes body in Mb.mk name body ~attrs ~loc ~text ~docs ) -# 36337 "src/ocaml/preprocess/parser_raw.ml" - - in - ( -# 219 "" - ( x :: xs ) -# 36343 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.module_binding list)) +# 35647 "src/ocaml/preprocess/parser_raw.ml" + in + +# 213 "" + ( x :: xs ) +# 35653 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -36356,9 +35665,9 @@ module Tables = struct let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in let _endpos = _startpos in let _v : (Parsetree.module_declaration list) = -# 216 "" +# 211 "" ( [] ) -# 36362 "src/ocaml/preprocess/parser_raw.ml" +# 35671 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -36429,40 +35738,39 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_xs_ in - let _v = - let x = - let attrs2 = - let _1 = _1_inlined3 in - + let _v : (Parsetree.module_declaration list) = let x = + let attrs2 = + let _1 = _1_inlined3 in + # 5399 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 36440 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_attrs2_ = _endpos__1_inlined3_ in - let name = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 35748 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_attrs2_ = _endpos__1_inlined3_ in + let name = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 36452 "src/ocaml/preprocess/parser_raw.ml" - - in - let attrs1 = - let _1 = _1_inlined1 in - +# 35760 "src/ocaml/preprocess/parser_raw.ml" + + in + let attrs1 = + let _1 = _1_inlined1 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 36460 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos_attrs2_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 35768 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos_attrs2_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2307 "src/ocaml/preprocess/parser_raw.mly" ( let attrs = attrs1 @ attrs2 in @@ -36471,15 +35779,14 @@ module Tables = struct let text = symbol_text _symbolstartpos in Md.mk name mty ~attrs ~loc ~text ~docs ~modalities ) -# 36475 "src/ocaml/preprocess/parser_raw.ml" - - in - ( -# 219 "" - ( x :: xs ) -# 36481 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.module_declaration list)) +# 35783 "src/ocaml/preprocess/parser_raw.ml" + in + +# 213 "" + ( x :: xs ) +# 35789 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -36494,9 +35801,9 @@ module Tables = struct let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in let _endpos = _startpos in let _v : (Parsetree.attributes) = -# 216 "" +# 211 "" ( [] ) -# 36500 "src/ocaml/preprocess/parser_raw.ml" +# 35807 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -36526,9 +35833,9 @@ module Tables = struct let _startpos = _startpos_x_ in let _endpos = _endpos_xs_ in let _v : (Parsetree.attributes) = -# 219 "" +# 213 "" ( x :: xs ) -# 36532 "src/ocaml/preprocess/parser_raw.ml" +# 35839 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -36544,9 +35851,9 @@ module Tables = struct let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in let _endpos = _startpos in let _v : (Parsetree.type_declaration list) = -# 216 "" +# 211 "" ( [] ) -# 36550 "src/ocaml/preprocess/parser_raw.ml" +# 35857 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -36620,7 +35927,7 @@ module Tables = struct let _1_inlined2 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 36624 "src/ocaml/preprocess/parser_raw.ml" +# 35931 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined2 in let params : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = Obj.magic params in let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in @@ -36628,60 +35935,59 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_xs_ in - let _v = - let x = - let xs = xs_inlined1 in - let attrs2 = - let _1 = _1_inlined3 in - + let _v : (Parsetree.type_declaration list) = let x = + let xs = xs_inlined1 in + let attrs2 = + let _1 = _1_inlined3 in + # 5399 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 36640 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_attrs2_ = _endpos__1_inlined3_ in - let cstrs = - let _1 = - let xs = -# 264 "" +# 35946 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_attrs2_ = _endpos__1_inlined3_ in + let cstrs = + let _1 = + let xs = +# 253 "" ( List.rev xs ) -# 36649 "src/ocaml/preprocess/parser_raw.ml" - in - +# 35955 "src/ocaml/preprocess/parser_raw.ml" + in + # 1380 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 36654 "src/ocaml/preprocess/parser_raw.ml" - - in +# 35960 "src/ocaml/preprocess/parser_raw.ml" + in + # 4098 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 36660 "src/ocaml/preprocess/parser_raw.ml" - - in - let id = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 35966 "src/ocaml/preprocess/parser_raw.ml" + + in + let id = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 36671 "src/ocaml/preprocess/parser_raw.ml" - - in - let attrs1 = - let _1 = _1_inlined1 in - +# 35977 "src/ocaml/preprocess/parser_raw.ml" + + in + let attrs1 = + let _1 = _1_inlined1 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 36679 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos_attrs2_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 35985 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos_attrs2_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 4086 "src/ocaml/preprocess/parser_raw.mly" ( let (kind, priv, manifest) = kind_priv_manifest in @@ -36692,15 +35998,14 @@ module Tables = struct Type.mk id ~params ~cstrs ~kind ~priv ?manifest ~attrs ~loc ~docs ~text ?jkind_annotation ) -# 36696 "src/ocaml/preprocess/parser_raw.ml" - - in - ( -# 219 "" - ( x :: xs ) -# 36702 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.type_declaration list)) +# 36002 "src/ocaml/preprocess/parser_raw.ml" + in + +# 213 "" + ( x :: xs ) +# 36008 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -36715,9 +36020,9 @@ module Tables = struct let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in let _endpos = _startpos in let _v : (Parsetree.type_declaration list) = -# 216 "" +# 211 "" ( [] ) -# 36721 "src/ocaml/preprocess/parser_raw.ml" +# 36026 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -36798,7 +36103,7 @@ module Tables = struct let _1_inlined2 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 36802 "src/ocaml/preprocess/parser_raw.ml" +# 36107 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined2 in let params : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = Obj.magic params in let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in @@ -36806,65 +36111,64 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_xs_ in - let _v = - let x = - let xs = xs_inlined1 in - let attrs2 = - let _1 = _1_inlined4 in - + let _v : (Parsetree.type_declaration list) = let x = + let xs = xs_inlined1 in + let attrs2 = + let _1 = _1_inlined4 in + # 5399 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 36818 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_attrs2_ = _endpos__1_inlined4_ in - let cstrs = - let _1 = - let xs = -# 264 "" +# 36122 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_attrs2_ = _endpos__1_inlined4_ in + let cstrs = + let _1 = + let xs = +# 253 "" ( List.rev xs ) -# 36827 "src/ocaml/preprocess/parser_raw.ml" - in - +# 36131 "src/ocaml/preprocess/parser_raw.ml" + in + # 1380 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 36832 "src/ocaml/preprocess/parser_raw.ml" - - in +# 36136 "src/ocaml/preprocess/parser_raw.ml" + in + # 4098 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 36838 "src/ocaml/preprocess/parser_raw.ml" - - in - let kind_priv_manifest = +# 36142 "src/ocaml/preprocess/parser_raw.ml" + + in + let kind_priv_manifest = # 4137 "src/ocaml/preprocess/parser_raw.mly" ( _2 ) -# 36844 "src/ocaml/preprocess/parser_raw.ml" - in - let id = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 36148 "src/ocaml/preprocess/parser_raw.ml" + in + let id = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 36854 "src/ocaml/preprocess/parser_raw.ml" - - in - let attrs1 = - let _1 = _1_inlined1 in - +# 36158 "src/ocaml/preprocess/parser_raw.ml" + + in + let attrs1 = + let _1 = _1_inlined1 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 36862 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos_attrs2_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 36166 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos_attrs2_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 4086 "src/ocaml/preprocess/parser_raw.mly" ( let (kind, priv, manifest) = kind_priv_manifest in @@ -36875,15 +36179,14 @@ module Tables = struct Type.mk id ~params ~cstrs ~kind ~priv ?manifest ~attrs ~loc ~docs ~text ?jkind_annotation ) -# 36879 "src/ocaml/preprocess/parser_raw.ml" - - in - ( -# 219 "" - ( x :: xs ) -# 36885 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.type_declaration list)) +# 36183 "src/ocaml/preprocess/parser_raw.ml" + in + +# 213 "" + ( x :: xs ) +# 36189 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -36898,9 +36201,9 @@ module Tables = struct let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in let _endpos = _startpos in let _v : (Parsetree.attributes) = -# 216 "" +# 211 "" ( [] ) -# 36904 "src/ocaml/preprocess/parser_raw.ml" +# 36207 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -36930,9 +36233,9 @@ module Tables = struct let _startpos = _startpos_x_ in let _endpos = _endpos_xs_ in let _v : (Parsetree.attributes) = -# 219 "" +# 213 "" ( x :: xs ) -# 36936 "src/ocaml/preprocess/parser_raw.ml" +# 36239 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -36948,9 +36251,9 @@ module Tables = struct let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in let _endpos = _startpos in let _v : (Parsetree.signature_item list list) = -# 216 "" +# 211 "" ( [] ) -# 36954 "src/ocaml/preprocess/parser_raw.ml" +# 36257 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -36979,28 +36282,26 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_xs_ in - let _v = - let x = - let _1 = - let _startpos = _startpos__1_ in - + let _v : (Parsetree.signature_item list list) = let x = + let _1 = + let _startpos = _startpos__1_ in + # 1306 "src/ocaml/preprocess/parser_raw.mly" ( text_sig _startpos ) -# 36990 "src/ocaml/preprocess/parser_raw.ml" - - in +# 36292 "src/ocaml/preprocess/parser_raw.ml" + in + # 2144 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 36996 "src/ocaml/preprocess/parser_raw.ml" - - in - ( -# 219 "" - ( x :: xs ) -# 37002 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.signature_item list list)) +# 36298 "src/ocaml/preprocess/parser_raw.ml" + in + +# 213 "" + ( x :: xs ) +# 36304 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -37028,28 +36329,26 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_xs_ in - let _v = - let x = - let _1 = - let _startpos = _startpos__1_ in - + let _v : (Parsetree.signature_item list list) = let x = + let _1 = + let _startpos = _startpos__1_ in + # 1304 "src/ocaml/preprocess/parser_raw.mly" ( text_sig _startpos @ [_1] ) -# 37039 "src/ocaml/preprocess/parser_raw.ml" - - in +# 36339 "src/ocaml/preprocess/parser_raw.ml" + in + # 2144 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 37045 "src/ocaml/preprocess/parser_raw.ml" - - in - ( -# 219 "" - ( x :: xs ) -# 37051 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.signature_item list list)) +# 36345 "src/ocaml/preprocess/parser_raw.ml" + in + +# 213 "" + ( x :: xs ) +# 36351 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -37064,9 +36363,9 @@ module Tables = struct let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in let _endpos = _startpos in let _v : (Parsetree.structure_item list list) = -# 216 "" +# 211 "" ( [] ) -# 37070 "src/ocaml/preprocess/parser_raw.ml" +# 36369 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -37095,47 +36394,45 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_xs_ in - let _v = - let x = - let _1 = - let ys = - let items = + let _v : (Parsetree.structure_item list list) = let x = + let _1 = + let ys = + let items = # 1366 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 37106 "src/ocaml/preprocess/parser_raw.ml" - in - +# 36404 "src/ocaml/preprocess/parser_raw.ml" + in + # 1842 "src/ocaml/preprocess/parser_raw.mly" ( items ) -# 37111 "src/ocaml/preprocess/parser_raw.ml" - - in - let xs = - let _startpos = _startpos__1_ in - +# 36409 "src/ocaml/preprocess/parser_raw.ml" + + in + let xs = + let _startpos = _startpos__1_ in + # 1302 "src/ocaml/preprocess/parser_raw.mly" ( text_str _startpos ) -# 37119 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 278 "" - ( xs @ ys ) -# 37125 "src/ocaml/preprocess/parser_raw.ml" +# 36417 "src/ocaml/preprocess/parser_raw.ml" in -# 1858 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 37131 "src/ocaml/preprocess/parser_raw.ml" +# 267 "" + ( xs @ ys ) +# 36423 "src/ocaml/preprocess/parser_raw.ml" in - ( -# 219 "" - ( x :: xs ) -# 37137 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.structure_item list list)) + +# 1858 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 36429 "src/ocaml/preprocess/parser_raw.ml" + in + +# 213 "" + ( x :: xs ) +# 36435 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -37177,82 +36474,80 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_xs_ in - let _v = - let x = - let _1 = - let ys = - let (_endpos__1_, _1) = (_endpos__1_inlined1_, _1_inlined1) in - let items = - let x = + let _v : (Parsetree.structure_item list list) = let x = + let _1 = + let ys = + let (_endpos__1_, _1) = (_endpos__1_inlined1_, _1_inlined1) in + let items = + let x = + let _1 = let _1 = - let _1 = - let attrs = + let attrs = # 5399 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 37193 "src/ocaml/preprocess/parser_raw.ml" - in - +# 36489 "src/ocaml/preprocess/parser_raw.ml" + in + # 1849 "src/ocaml/preprocess/parser_raw.mly" ( mkstrexp e attrs ) -# 37198 "src/ocaml/preprocess/parser_raw.ml" - - in - let _startpos__1_ = _startpos_e_ in - let _startpos = _startpos__1_ in - -# 1300 "src/ocaml/preprocess/parser_raw.mly" - ( text_str _startpos @ [_1] ) -# 37206 "src/ocaml/preprocess/parser_raw.ml" +# 36494 "src/ocaml/preprocess/parser_raw.ml" in let _startpos__1_ = _startpos_e_ in - let _endpos = _endpos__1_ in let _startpos = _startpos__1_ in +# 1300 "src/ocaml/preprocess/parser_raw.mly" + ( text_str _startpos @ [_1] ) +# 36502 "src/ocaml/preprocess/parser_raw.ml" + + in + let _startpos__1_ = _startpos_e_ in + let _endpos = _endpos__1_ in + let _startpos = _startpos__1_ in + # 1319 "src/ocaml/preprocess/parser_raw.mly" ( mark_rhs_docs _startpos _endpos; _1 ) -# 37216 "src/ocaml/preprocess/parser_raw.ml" - - in +# 36512 "src/ocaml/preprocess/parser_raw.ml" + in + # 1368 "src/ocaml/preprocess/parser_raw.mly" ( x ) -# 37222 "src/ocaml/preprocess/parser_raw.ml" - - in +# 36518 "src/ocaml/preprocess/parser_raw.ml" + in + # 1842 "src/ocaml/preprocess/parser_raw.mly" ( items ) -# 37228 "src/ocaml/preprocess/parser_raw.ml" - - in - let xs = - let _startpos = _startpos__1_ in - +# 36524 "src/ocaml/preprocess/parser_raw.ml" + + in + let xs = + let _startpos = _startpos__1_ in + # 1302 "src/ocaml/preprocess/parser_raw.mly" ( text_str _startpos ) -# 37236 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 278 "" - ( xs @ ys ) -# 37242 "src/ocaml/preprocess/parser_raw.ml" +# 36532 "src/ocaml/preprocess/parser_raw.ml" in -# 1858 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 37248 "src/ocaml/preprocess/parser_raw.ml" +# 267 "" + ( xs @ ys ) +# 36538 "src/ocaml/preprocess/parser_raw.ml" in - ( -# 219 "" - ( x :: xs ) -# 37254 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.structure_item list list)) + +# 1858 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 36544 "src/ocaml/preprocess/parser_raw.ml" + in + +# 213 "" + ( x :: xs ) +# 36550 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -37280,28 +36575,26 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_xs_ in - let _v = - let x = - let _1 = - let _startpos = _startpos__1_ in - + let _v : (Parsetree.structure_item list list) = let x = + let _1 = + let _startpos = _startpos__1_ in + # 1300 "src/ocaml/preprocess/parser_raw.mly" ( text_str _startpos @ [_1] ) -# 37291 "src/ocaml/preprocess/parser_raw.ml" - - in +# 36585 "src/ocaml/preprocess/parser_raw.ml" + in + # 1858 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 37297 "src/ocaml/preprocess/parser_raw.ml" - - in - ( -# 219 "" - ( x :: xs ) -# 37303 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.structure_item list list)) +# 36591 "src/ocaml/preprocess/parser_raw.ml" + in + +# 213 "" + ( x :: xs ) +# 36597 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -37316,9 +36609,9 @@ module Tables = struct let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in let _endpos = _startpos in let _v : (Parsetree.class_type_field list list) = -# 216 "" +# 211 "" ( [] ) -# 37322 "src/ocaml/preprocess/parser_raw.ml" +# 36615 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -37347,21 +36640,19 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_xs_ in - let _v = - let x = - let _startpos = _startpos__1_ in - + let _v : (Parsetree.class_type_field list list) = let x = + let _startpos = _startpos__1_ in + # 1314 "src/ocaml/preprocess/parser_raw.mly" ( text_csig _startpos @ [_1] ) -# 37357 "src/ocaml/preprocess/parser_raw.ml" - - in - ( -# 219 "" - ( x :: xs ) -# 37363 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.class_type_field list list)) +# 36649 "src/ocaml/preprocess/parser_raw.ml" + in + +# 213 "" + ( x :: xs ) +# 36655 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -37376,9 +36667,9 @@ module Tables = struct let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in let _endpos = _startpos in let _v : (Parsetree.class_field list list) = -# 216 "" +# 211 "" ( [] ) -# 37382 "src/ocaml/preprocess/parser_raw.ml" +# 36673 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -37407,21 +36698,19 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_xs_ in - let _v = - let x = - let _startpos = _startpos__1_ in - + let _v : (Parsetree.class_field list list) = let x = + let _startpos = _startpos__1_ in + # 1312 "src/ocaml/preprocess/parser_raw.mly" ( text_cstr _startpos @ [_1] ) -# 37417 "src/ocaml/preprocess/parser_raw.ml" - - in - ( -# 219 "" - ( x :: xs ) -# 37423 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.class_field list list)) +# 36707 "src/ocaml/preprocess/parser_raw.ml" + in + +# 213 "" + ( x :: xs ) +# 36713 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -37436,9 +36725,9 @@ module Tables = struct let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in let _endpos = _startpos in let _v : (Parsetree.structure_item list list) = -# 216 "" +# 211 "" ( [] ) -# 37442 "src/ocaml/preprocess/parser_raw.ml" +# 36731 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -37467,21 +36756,19 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_xs_ in - let _v = - let x = - let _startpos = _startpos__1_ in - + let _v : (Parsetree.structure_item list list) = let x = + let _startpos = _startpos__1_ in + # 1300 "src/ocaml/preprocess/parser_raw.mly" ( text_str _startpos @ [_1] ) -# 37477 "src/ocaml/preprocess/parser_raw.ml" - - in - ( -# 219 "" - ( x :: xs ) -# 37483 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.structure_item list list)) +# 36765 "src/ocaml/preprocess/parser_raw.ml" + in + +# 213 "" + ( x :: xs ) +# 36771 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -37496,9 +36783,9 @@ module Tables = struct let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in let _endpos = _startpos in let _v : (Parsetree.toplevel_phrase list list) = -# 216 "" +# 211 "" ( [] ) -# 37502 "src/ocaml/preprocess/parser_raw.ml" +# 36789 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -37527,39 +36814,37 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_xs_ in - let _v = - let x = - let _1 = - let x = - let _1 = + let _v : (Parsetree.toplevel_phrase list list) = let x = + let _1 = + let x = + let _1 = # 1366 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 37538 "src/ocaml/preprocess/parser_raw.ml" - in - +# 36824 "src/ocaml/preprocess/parser_raw.ml" + in + # 1618 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 37543 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 188 "" - ( x ) -# 37549 "src/ocaml/preprocess/parser_raw.ml" +# 36829 "src/ocaml/preprocess/parser_raw.ml" in -# 1630 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 37555 "src/ocaml/preprocess/parser_raw.ml" +# 183 "" + ( x ) +# 36835 "src/ocaml/preprocess/parser_raw.ml" in - ( -# 219 "" - ( x :: xs ) -# 37561 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.toplevel_phrase list list)) + +# 1630 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 36841 "src/ocaml/preprocess/parser_raw.ml" + in + +# 213 "" + ( x :: xs ) +# 36847 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -37601,70 +36886,68 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_xs_ in - let _v = - let x = - let _1 = - let x = - let _1 = _1_inlined1 in - let _1 = - let x = + let _v : (Parsetree.toplevel_phrase list list) = let x = + let _1 = + let x = + let _1 = _1_inlined1 in + let _1 = + let x = + let _1 = let _1 = - let _1 = - let attrs = + let attrs = # 5399 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 37617 "src/ocaml/preprocess/parser_raw.ml" - in - +# 36901 "src/ocaml/preprocess/parser_raw.ml" + in + # 1849 "src/ocaml/preprocess/parser_raw.mly" ( mkstrexp e attrs ) -# 37622 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 1310 "src/ocaml/preprocess/parser_raw.mly" - ( Ptop_def [_1] ) -# 37628 "src/ocaml/preprocess/parser_raw.ml" +# 36906 "src/ocaml/preprocess/parser_raw.ml" in - let _startpos__1_ = _startpos_e_ in - let _startpos = _startpos__1_ in -# 1308 "src/ocaml/preprocess/parser_raw.mly" - ( text_def _startpos @ [_1] ) -# 37636 "src/ocaml/preprocess/parser_raw.ml" +# 1310 "src/ocaml/preprocess/parser_raw.mly" + ( Ptop_def [_1] ) +# 36912 "src/ocaml/preprocess/parser_raw.ml" in + let _startpos__1_ = _startpos_e_ in + let _startpos = _startpos__1_ in -# 1368 "src/ocaml/preprocess/parser_raw.mly" - ( x ) -# 37642 "src/ocaml/preprocess/parser_raw.ml" +# 1308 "src/ocaml/preprocess/parser_raw.mly" + ( text_def _startpos @ [_1] ) +# 36920 "src/ocaml/preprocess/parser_raw.ml" in -# 1618 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 37648 "src/ocaml/preprocess/parser_raw.ml" +# 1368 "src/ocaml/preprocess/parser_raw.mly" + ( x ) +# 36926 "src/ocaml/preprocess/parser_raw.ml" in -# 188 "" - ( x ) -# 37654 "src/ocaml/preprocess/parser_raw.ml" +# 1618 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 36932 "src/ocaml/preprocess/parser_raw.ml" in -# 1630 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 37660 "src/ocaml/preprocess/parser_raw.ml" +# 183 "" + ( x ) +# 36938 "src/ocaml/preprocess/parser_raw.ml" in - ( -# 219 "" - ( x :: xs ) -# 37666 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.toplevel_phrase list list)) + +# 1630 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 36944 "src/ocaml/preprocess/parser_raw.ml" + in + +# 213 "" + ( x :: xs ) +# 36950 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -37692,33 +36975,31 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_xs_ in - let _v = - let x = - let _1 = - let _1 = + let _v : (Parsetree.toplevel_phrase list list) = let x = + let _1 = + let _1 = # 1310 "src/ocaml/preprocess/parser_raw.mly" ( Ptop_def [_1] ) -# 37702 "src/ocaml/preprocess/parser_raw.ml" - in - let _startpos = _startpos__1_ in - +# 36984 "src/ocaml/preprocess/parser_raw.ml" + in + let _startpos = _startpos__1_ in + # 1308 "src/ocaml/preprocess/parser_raw.mly" ( text_def _startpos @ [_1] ) -# 37708 "src/ocaml/preprocess/parser_raw.ml" - - in +# 36990 "src/ocaml/preprocess/parser_raw.ml" + in + # 1630 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 37714 "src/ocaml/preprocess/parser_raw.ml" - - in - ( -# 219 "" - ( x :: xs ) -# 37720 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.toplevel_phrase list list)) +# 36996 "src/ocaml/preprocess/parser_raw.ml" + in + +# 213 "" + ( x :: xs ) +# 37002 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -37746,38 +37027,36 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_xs_ in - let _v = - let x = + let _v : (Parsetree.toplevel_phrase list list) = let x = + let _1 = let _1 = - let _1 = - let _endpos = _endpos__1_ in - let _startpos = _startpos__1_ in - + let _endpos = _endpos__1_ in + let _startpos = _startpos__1_ in + # 1319 "src/ocaml/preprocess/parser_raw.mly" ( mark_rhs_docs _startpos _endpos; _1 ) -# 37760 "src/ocaml/preprocess/parser_raw.ml" - - in - let _startpos = _startpos__1_ in +# 37040 "src/ocaml/preprocess/parser_raw.ml" + in + let _startpos = _startpos__1_ in + # 1308 "src/ocaml/preprocess/parser_raw.mly" ( text_def _startpos @ [_1] ) -# 37767 "src/ocaml/preprocess/parser_raw.ml" - - in +# 37047 "src/ocaml/preprocess/parser_raw.ml" + in + # 1630 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 37773 "src/ocaml/preprocess/parser_raw.ml" - - in - ( -# 219 "" - ( x :: xs ) -# 37779 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.toplevel_phrase list list)) +# 37053 "src/ocaml/preprocess/parser_raw.ml" + in + +# 213 "" + ( x :: xs ) +# 37059 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -37812,28 +37091,27 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_opat_ in - let _v = - let _2 = -# 123 "" + let _v : ((Longident.t Location.loc * Parsetree.pattern) list * unit option) = let _2 = +# 124 "" ( None ) -# 37820 "src/ocaml/preprocess/parser_raw.ml" - in - let x = - let label = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 37098 "src/ocaml/preprocess/parser_raw.ml" + in + let x = + let label = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 37830 "src/ocaml/preprocess/parser_raw.ml" - - in - let _startpos_label_ = _startpos__1_ in - let _endpos = _endpos_opat_ in - let _symbolstartpos = _startpos_label_ in - let _sloc = (_symbolstartpos, _endpos) in +# 37108 "src/ocaml/preprocess/parser_raw.ml" + in + let _startpos_label_ = _startpos__1_ in + let _endpos = _endpos_opat_ in + let _symbolstartpos = _startpos_label_ in + let _sloc = (_symbolstartpos, _endpos) in + # 3967 "src/ocaml/preprocess/parser_raw.mly" ( let constraint_loc, label, pat = match opat with @@ -37848,15 +37126,14 @@ module Tables = struct in label, mkpat_with_modes ~loc:constraint_loc ~modes:[] ~pat ~cty:octy ) -# 37852 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 37130 "src/ocaml/preprocess/parser_raw.ml" + + in + # 1555 "src/ocaml/preprocess/parser_raw.mly" ( [x], None ) -# 37858 "src/ocaml/preprocess/parser_raw.ml" - : ((Longident.t Location.loc * Parsetree.pattern) list * unit option)) - in +# 37136 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -37898,28 +37175,27 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_x_ in - let _v = - let _2 = + let _v : ((Longident.t Location.loc * Parsetree.pattern) list * unit option) = let _2 = # 126 "" ( Some x ) -# 37906 "src/ocaml/preprocess/parser_raw.ml" - in - let x = - let label = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 37182 "src/ocaml/preprocess/parser_raw.ml" + in + let x = + let label = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 37916 "src/ocaml/preprocess/parser_raw.ml" - - in - let _startpos_label_ = _startpos__1_ in - let _endpos = _endpos_opat_ in - let _symbolstartpos = _startpos_label_ in - let _sloc = (_symbolstartpos, _endpos) in +# 37192 "src/ocaml/preprocess/parser_raw.ml" + in + let _startpos_label_ = _startpos__1_ in + let _endpos = _endpos_opat_ in + let _symbolstartpos = _startpos_label_ in + let _sloc = (_symbolstartpos, _endpos) in + # 3967 "src/ocaml/preprocess/parser_raw.mly" ( let constraint_loc, label, pat = match opat with @@ -37934,15 +37210,14 @@ module Tables = struct in label, mkpat_with_modes ~loc:constraint_loc ~modes:[] ~pat ~cty:octy ) -# 37938 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 37214 "src/ocaml/preprocess/parser_raw.ml" + + in + # 1555 "src/ocaml/preprocess/parser_raw.mly" ( [x], None ) -# 37944 "src/ocaml/preprocess/parser_raw.ml" - : ((Longident.t Location.loc * Parsetree.pattern) list * unit option)) - in +# 37220 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -37998,23 +37273,22 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in - let _v = - let x = - let label = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let _v : ((Longident.t Location.loc * Parsetree.pattern) list * unit option) = let x = + let label = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 38011 "src/ocaml/preprocess/parser_raw.ml" - - in - let _startpos_label_ = _startpos__1_ in - let _endpos = _endpos_opat_ in - let _symbolstartpos = _startpos_label_ in - let _sloc = (_symbolstartpos, _endpos) in +# 37285 "src/ocaml/preprocess/parser_raw.ml" + in + let _startpos_label_ = _startpos__1_ in + let _endpos = _endpos_opat_ in + let _symbolstartpos = _startpos_label_ in + let _sloc = (_symbolstartpos, _endpos) in + # 3967 "src/ocaml/preprocess/parser_raw.mly" ( let constraint_loc, label, pat = match opat with @@ -38029,15 +37303,14 @@ module Tables = struct in label, mkpat_with_modes ~loc:constraint_loc ~modes:[] ~pat ~cty:octy ) -# 38033 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 37307 "src/ocaml/preprocess/parser_raw.ml" + + in + # 1557 "src/ocaml/preprocess/parser_raw.mly" ( [x], Some y ) -# 38039 "src/ocaml/preprocess/parser_raw.ml" - : ((Longident.t Location.loc * Parsetree.pattern) list * unit option)) - in +# 37313 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -38086,23 +37359,22 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_tail_ in - let _v = - let x = - let label = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let _v : ((Longident.t Location.loc * Parsetree.pattern) list * unit option) = let x = + let label = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 38099 "src/ocaml/preprocess/parser_raw.ml" - - in - let _startpos_label_ = _startpos__1_ in - let _endpos = _endpos_opat_ in - let _symbolstartpos = _startpos_label_ in - let _sloc = (_symbolstartpos, _endpos) in +# 37371 "src/ocaml/preprocess/parser_raw.ml" + in + let _startpos_label_ = _startpos__1_ in + let _endpos = _endpos_opat_ in + let _symbolstartpos = _startpos_label_ in + let _sloc = (_symbolstartpos, _endpos) in + # 3967 "src/ocaml/preprocess/parser_raw.mly" ( let constraint_loc, label, pat = match opat with @@ -38117,16 +37389,15 @@ module Tables = struct in label, mkpat_with_modes ~loc:constraint_loc ~modes:[] ~pat ~cty:octy ) -# 38121 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 37393 "src/ocaml/preprocess/parser_raw.ml" + + in + # 1561 "src/ocaml/preprocess/parser_raw.mly" ( let xs, y = tail in x :: xs, y ) -# 38128 "src/ocaml/preprocess/parser_raw.ml" - : ((Longident.t Location.loc * Parsetree.pattern) list * unit option)) - in +# 37400 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -38164,7 +37435,7 @@ module Tables = struct let _v : (Parsetree.case) = # 3514 "src/ocaml/preprocess/parser_raw.mly" ( Exp.case _1 (merloc _endpos__2_ _3) ) -# 38168 "src/ocaml/preprocess/parser_raw.ml" +# 37439 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -38217,7 +37488,7 @@ module Tables = struct let _v : (Parsetree.case) = # 3516 "src/ocaml/preprocess/parser_raw.mly" ( Exp.case _1 ~guard:(merloc _endpos__2_ _3) (merloc _endpos__4_ _5) ) -# 38221 "src/ocaml/preprocess/parser_raw.ml" +# 37492 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -38253,15 +37524,13 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in - let _v = - let _loc__3_ = (_startpos__3_, _endpos__3_) in - ( + let _v : (Parsetree.case) = let _loc__3_ = (_startpos__3_, _endpos__3_) in + # 3518 "src/ocaml/preprocess/parser_raw.mly" ( Exp.case _1 (merloc _endpos__2_ (Exp.unreachable ~loc:(make_loc _loc__3_) ())) ) -# 38263 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.case)) - in +# 37533 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -38323,58 +37592,57 @@ module Tables = struct let _1 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 38327 "src/ocaml/preprocess/parser_raw.ml" +# 37596 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_tail_ in - let _v = - let head = - let _6 = - let _1 = _1_inlined3 in - + let _v : (Parsetree.object_field list * Asttypes.closed_flag) = let head = + let _6 = + let _1 = _1_inlined3 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 38339 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__6_ = _endpos__1_inlined3_ in - let _4 = - let _1 = _1_inlined2 in - +# 37607 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__6_ = _endpos__1_inlined3_ in + let _4 = + let _1 = _1_inlined2 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 38348 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__4_ = _endpos__1_inlined2_ in - let _3 = - let _1 = _1_inlined1 in - +# 37616 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__4_ = _endpos__1_inlined2_ in + let _3 = + let _1 = _1_inlined1 in + # 4500 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 38357 "src/ocaml/preprocess/parser_raw.ml" - - in - let _1 = - let _1 = +# 37625 "src/ocaml/preprocess/parser_raw.ml" + + in + let _1 = + let _1 = # 5010 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 38364 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 1296 "src/ocaml/preprocess/parser_raw.mly" - ( mkrhs _1 _sloc ) -# 38372 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__6_ in +# 37632 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in +# 1296 "src/ocaml/preprocess/parser_raw.mly" + ( mkrhs _1 _sloc ) +# 37640 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__6_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 4995 "src/ocaml/preprocess/parser_raw.mly" ( let info = match rhs_info _endpos__4_ with @@ -38383,15 +37651,14 @@ module Tables = struct in let attrs = add_info_attrs info (_4 @ _6) in Of.tag ~loc:(make_loc _sloc) ~attrs _1 _3 ) -# 38387 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 37655 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4976 "src/ocaml/preprocess/parser_raw.mly" ( let (f, c) = tail in (head :: f, c) ) -# 38393 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.object_field list * Asttypes.closed_flag)) - in +# 37661 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -38426,23 +37693,21 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_ty_ in let _endpos = _endpos_tail_ in - let _v = - let head = - let _endpos = _endpos_ty_ in - let _symbolstartpos = _startpos_ty_ in - let _sloc = (_symbolstartpos, _endpos) in - + let _v : (Parsetree.object_field list * Asttypes.closed_flag) = let head = + let _endpos = _endpos_ty_ in + let _symbolstartpos = _startpos_ty_ in + let _sloc = (_symbolstartpos, _endpos) in + # 5006 "src/ocaml/preprocess/parser_raw.mly" ( Of.inherit_ ~loc:(make_loc _sloc) ty ) -# 38438 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 37704 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4976 "src/ocaml/preprocess/parser_raw.mly" ( let (f, c) = tail in (head :: f, c) ) -# 38444 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.object_field list * Asttypes.closed_flag)) - in +# 37710 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -38497,58 +37762,57 @@ module Tables = struct let _1 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 38501 "src/ocaml/preprocess/parser_raw.ml" +# 37766 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined3_ in - let _v = - let head = - let _6 = - let _1 = _1_inlined3 in - + let _v : (Parsetree.object_field list * Asttypes.closed_flag) = let head = + let _6 = + let _1 = _1_inlined3 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 38513 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__6_ = _endpos__1_inlined3_ in - let _4 = - let _1 = _1_inlined2 in - +# 37777 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__6_ = _endpos__1_inlined3_ in + let _4 = + let _1 = _1_inlined2 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 38522 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__4_ = _endpos__1_inlined2_ in - let _3 = - let _1 = _1_inlined1 in - +# 37786 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__4_ = _endpos__1_inlined2_ in + let _3 = + let _1 = _1_inlined1 in + # 4500 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 38531 "src/ocaml/preprocess/parser_raw.ml" - - in - let _1 = - let _1 = +# 37795 "src/ocaml/preprocess/parser_raw.ml" + + in + let _1 = + let _1 = # 5010 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 38538 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 1296 "src/ocaml/preprocess/parser_raw.mly" - ( mkrhs _1 _sloc ) -# 38546 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__6_ in +# 37802 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in +# 1296 "src/ocaml/preprocess/parser_raw.mly" + ( mkrhs _1 _sloc ) +# 37810 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__6_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 4995 "src/ocaml/preprocess/parser_raw.mly" ( let info = match rhs_info _endpos__4_ with @@ -38557,15 +37821,14 @@ module Tables = struct in let attrs = add_info_attrs info (_4 @ _6) in Of.tag ~loc:(make_loc _sloc) ~attrs _1 _3 ) -# 38561 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 37825 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4979 "src/ocaml/preprocess/parser_raw.mly" ( [head], Closed ) -# 38567 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.object_field list * Asttypes.closed_flag)) - in +# 37831 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -38593,23 +37856,21 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_ty_ in let _endpos = _endpos__2_ in - let _v = - let head = - let _endpos = _endpos_ty_ in - let _symbolstartpos = _startpos_ty_ in - let _sloc = (_symbolstartpos, _endpos) in - + let _v : (Parsetree.object_field list * Asttypes.closed_flag) = let head = + let _endpos = _endpos_ty_ in + let _symbolstartpos = _startpos_ty_ in + let _sloc = (_symbolstartpos, _endpos) in + # 5006 "src/ocaml/preprocess/parser_raw.mly" ( Of.inherit_ ~loc:(make_loc _sloc) ty ) -# 38605 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 37867 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4979 "src/ocaml/preprocess/parser_raw.mly" ( [head], Closed ) -# 38611 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.object_field list * Asttypes.closed_flag)) - in +# 37873 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -38650,62 +37911,60 @@ module Tables = struct let _1 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 38654 "src/ocaml/preprocess/parser_raw.ml" +# 37915 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined2_ in - let _v = - let head = - let _4 = - let _1 = _1_inlined2 in - + let _v : (Parsetree.object_field list * Asttypes.closed_flag) = let head = + let _4 = + let _1 = _1_inlined2 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 38666 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__4_ = _endpos__1_inlined2_ in - let _3 = - let _1 = _1_inlined1 in - +# 37926 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__4_ = _endpos__1_inlined2_ in + let _3 = + let _1 = _1_inlined1 in + # 4500 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 38675 "src/ocaml/preprocess/parser_raw.ml" - - in - let _1 = - let _1 = +# 37935 "src/ocaml/preprocess/parser_raw.ml" + + in + let _1 = + let _1 = # 5010 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 38682 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 1296 "src/ocaml/preprocess/parser_raw.mly" - ( mkrhs _1 _sloc ) -# 38690 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__4_ in +# 37942 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in +# 1296 "src/ocaml/preprocess/parser_raw.mly" + ( mkrhs _1 _sloc ) +# 37950 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__4_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 4988 "src/ocaml/preprocess/parser_raw.mly" ( let info = symbol_info _endpos in let attrs = add_info_attrs info _4 in Of.tag ~loc:(make_loc _sloc) ~attrs _1 _3 ) -# 38701 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 37961 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4982 "src/ocaml/preprocess/parser_raw.mly" ( [head], Closed ) -# 38707 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.object_field list * Asttypes.closed_flag)) - in +# 37967 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -38726,23 +37985,21 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_ty_ in let _endpos = _endpos_ty_ in - let _v = - let head = - let _endpos = _endpos_ty_ in - let _symbolstartpos = _startpos_ty_ in - let _sloc = (_symbolstartpos, _endpos) in - + let _v : (Parsetree.object_field list * Asttypes.closed_flag) = let head = + let _endpos = _endpos_ty_ in + let _symbolstartpos = _startpos_ty_ in + let _sloc = (_symbolstartpos, _endpos) in + # 5006 "src/ocaml/preprocess/parser_raw.mly" ( Of.inherit_ ~loc:(make_loc _sloc) ty ) -# 38738 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 37996 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4982 "src/ocaml/preprocess/parser_raw.mly" ( [head], Closed ) -# 38744 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.object_field list * Asttypes.closed_flag)) - in +# 38002 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -38766,7 +38023,7 @@ module Tables = struct let _v : (Parsetree.object_field list * Asttypes.closed_flag) = # 4984 "src/ocaml/preprocess/parser_raw.mly" ( [], Open ) -# 38770 "src/ocaml/preprocess/parser_raw.ml" +# 38027 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -38813,55 +38070,53 @@ module Tables = struct let _1_inlined1 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 38817 "src/ocaml/preprocess/parser_raw.ml" +# 38074 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined1 in let private_ : (Asttypes.private_flag) = Obj.magic private_ in let _1 : (Parsetree.attributes) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined2_ in - let _v = - let ty = - let _1 = _1_inlined2 in - + let _v : ((string Location.loc * Asttypes.private_flag * Parsetree.class_field_kind) * + Parsetree.attributes) = let ty = + let _1 = _1_inlined2 in + # 4496 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 38830 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in - let _1 = +# 38087 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in + let _1 = # 5010 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 38838 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 38095 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 38846 "src/ocaml/preprocess/parser_raw.ml" - - in - let attrs = +# 38103 "src/ocaml/preprocess/parser_raw.ml" + + in + let attrs = # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 38852 "src/ocaml/preprocess/parser_raw.ml" - in - let _1 = +# 38109 "src/ocaml/preprocess/parser_raw.ml" + in + let _1 = # 5301 "src/ocaml/preprocess/parser_raw.mly" ( Fresh ) -# 38857 "src/ocaml/preprocess/parser_raw.ml" - in - ( +# 38114 "src/ocaml/preprocess/parser_raw.ml" + in + # 2509 "src/ocaml/preprocess/parser_raw.mly" ( (label, private_, Cfk_virtual ty), attrs ) -# 38862 "src/ocaml/preprocess/parser_raw.ml" - : ((string Location.loc * Asttypes.private_flag * Parsetree.class_field_kind) * - Parsetree.attributes)) - in +# 38119 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -38900,58 +38155,56 @@ module Tables = struct let _1_inlined1 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 38904 "src/ocaml/preprocess/parser_raw.ml" +# 38159 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined1 in let _3 : (Asttypes.private_flag) = Obj.magic _3 in let _1 : (Parsetree.attributes) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined2_ in - let _v = - let _5 = - let _1 = _1_inlined2 in - + let _v : ((string Location.loc * Asttypes.private_flag * Parsetree.class_field_kind) * + Parsetree.attributes) = let _5 = + let _1 = _1_inlined2 in + # 3492 "src/ocaml/preprocess/parser_raw.mly" (_1 []) -# 38917 "src/ocaml/preprocess/parser_raw.ml" - - in - let _4 = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in - let _1 = +# 38172 "src/ocaml/preprocess/parser_raw.ml" + + in + let _4 = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in + let _1 = # 5010 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 38925 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 38180 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 38933 "src/ocaml/preprocess/parser_raw.ml" - - in - let _2 = +# 38188 "src/ocaml/preprocess/parser_raw.ml" + + in + let _2 = # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 38939 "src/ocaml/preprocess/parser_raw.ml" - in - let _1 = +# 38194 "src/ocaml/preprocess/parser_raw.ml" + in + let _1 = # 5304 "src/ocaml/preprocess/parser_raw.mly" ( Fresh ) -# 38944 "src/ocaml/preprocess/parser_raw.ml" - in - ( +# 38199 "src/ocaml/preprocess/parser_raw.ml" + in + # 2511 "src/ocaml/preprocess/parser_raw.mly" ( let e = _5 in let loc = Location.(e.pexp_loc.loc_start, e.pexp_loc.loc_end) in (_4, _3, Cfk_concrete (_1, ghexp ~loc (Pexp_poly (e, None)))), _2 ) -# 38952 "src/ocaml/preprocess/parser_raw.ml" - : ((string Location.loc * Asttypes.private_flag * Parsetree.class_field_kind) * - Parsetree.attributes)) - in +# 38207 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -38996,7 +38249,7 @@ module Tables = struct let _1_inlined2 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 39000 "src/ocaml/preprocess/parser_raw.ml" +# 38253 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined2 in let _3 : (Asttypes.private_flag) = Obj.magic _3 in let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in @@ -39004,54 +38257,52 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined3_ in - let _v = - let _5 = - let _1 = _1_inlined3 in - + let _v : ((string Location.loc * Asttypes.private_flag * Parsetree.class_field_kind) * + Parsetree.attributes) = let _5 = + let _1 = _1_inlined3 in + # 3492 "src/ocaml/preprocess/parser_raw.mly" (_1 []) -# 39014 "src/ocaml/preprocess/parser_raw.ml" - - in - let _4 = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in - let _1 = +# 38267 "src/ocaml/preprocess/parser_raw.ml" + + in + let _4 = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in + let _1 = # 5010 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 39022 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 38275 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 39030 "src/ocaml/preprocess/parser_raw.ml" - - in - let _2 = - let _1 = _1_inlined1 in - +# 38283 "src/ocaml/preprocess/parser_raw.ml" + + in + let _2 = + let _1 = _1_inlined1 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 39038 "src/ocaml/preprocess/parser_raw.ml" - - in - let _1 = +# 38291 "src/ocaml/preprocess/parser_raw.ml" + + in + let _1 = # 5305 "src/ocaml/preprocess/parser_raw.mly" ( Override ) -# 39044 "src/ocaml/preprocess/parser_raw.ml" - in - ( +# 38297 "src/ocaml/preprocess/parser_raw.ml" + in + # 2511 "src/ocaml/preprocess/parser_raw.mly" ( let e = _5 in let loc = Location.(e.pexp_loc.loc_start, e.pexp_loc.loc_end) in (_4, _3, Cfk_concrete (_1, ghexp ~loc (Pexp_poly (e, None)))), _2 ) -# 39052 "src/ocaml/preprocess/parser_raw.ml" - : ((string Location.loc * Asttypes.private_flag * Parsetree.class_field_kind) * - Parsetree.attributes)) - in +# 38305 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -39111,59 +38362,57 @@ module Tables = struct let _1_inlined1 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 39115 "src/ocaml/preprocess/parser_raw.ml" +# 38366 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined1 in let _3 : (Asttypes.private_flag) = Obj.magic _3 in let _1 : (Parsetree.attributes) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__8_ in - let _v = - let _6 = - let _1 = _1_inlined2 in - + let _v : ((string Location.loc * Asttypes.private_flag * Parsetree.class_field_kind) * + Parsetree.attributes) = let _6 = + let _1 = _1_inlined2 in + # 4496 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 39128 "src/ocaml/preprocess/parser_raw.ml" - - in - let _startpos__6_ = _startpos__1_inlined2_ in - let _4 = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in - let _1 = +# 38379 "src/ocaml/preprocess/parser_raw.ml" + + in + let _startpos__6_ = _startpos__1_inlined2_ in + let _4 = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in + let _1 = # 5010 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 39137 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 38388 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 39145 "src/ocaml/preprocess/parser_raw.ml" - - in - let _2 = +# 38396 "src/ocaml/preprocess/parser_raw.ml" + + in + let _2 = # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 39151 "src/ocaml/preprocess/parser_raw.ml" - in - let _1 = +# 38402 "src/ocaml/preprocess/parser_raw.ml" + in + let _1 = # 5304 "src/ocaml/preprocess/parser_raw.mly" ( Fresh ) -# 39156 "src/ocaml/preprocess/parser_raw.ml" - in - ( +# 38407 "src/ocaml/preprocess/parser_raw.ml" + in + # 2517 "src/ocaml/preprocess/parser_raw.mly" ( let poly_exp = let loc = (_startpos__6_, _endpos__8_) in ghexp ~loc (Pexp_poly(_8, Some _6)) in (_4, _3, Cfk_concrete (_1, poly_exp)), _2 ) -# 39164 "src/ocaml/preprocess/parser_raw.ml" - : ((string Location.loc * Asttypes.private_flag * Parsetree.class_field_kind) * - Parsetree.attributes)) - in +# 38415 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -39229,7 +38478,7 @@ module Tables = struct let _1_inlined2 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 39233 "src/ocaml/preprocess/parser_raw.ml" +# 38482 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined2 in let _3 : (Asttypes.private_flag) = Obj.magic _3 in let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in @@ -39237,55 +38486,53 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__8_ in - let _v = - let _6 = - let _1 = _1_inlined3 in - + let _v : ((string Location.loc * Asttypes.private_flag * Parsetree.class_field_kind) * + Parsetree.attributes) = let _6 = + let _1 = _1_inlined3 in + # 4496 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 39247 "src/ocaml/preprocess/parser_raw.ml" - - in - let _startpos__6_ = _startpos__1_inlined3_ in - let _4 = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in - let _1 = +# 38496 "src/ocaml/preprocess/parser_raw.ml" + + in + let _startpos__6_ = _startpos__1_inlined3_ in + let _4 = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in + let _1 = # 5010 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 39256 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 38505 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 39264 "src/ocaml/preprocess/parser_raw.ml" - - in - let _2 = - let _1 = _1_inlined1 in - +# 38513 "src/ocaml/preprocess/parser_raw.ml" + + in + let _2 = + let _1 = _1_inlined1 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 39272 "src/ocaml/preprocess/parser_raw.ml" - - in - let _1 = +# 38521 "src/ocaml/preprocess/parser_raw.ml" + + in + let _1 = # 5305 "src/ocaml/preprocess/parser_raw.mly" ( Override ) -# 39278 "src/ocaml/preprocess/parser_raw.ml" - in - ( +# 38527 "src/ocaml/preprocess/parser_raw.ml" + in + # 2517 "src/ocaml/preprocess/parser_raw.mly" ( let poly_exp = let loc = (_startpos__6_, _endpos__8_) in ghexp ~loc (Pexp_poly(_8, Some _6)) in (_4, _3, Cfk_concrete (_1, poly_exp)), _2 ) -# 39286 "src/ocaml/preprocess/parser_raw.ml" - : ((string Location.loc * Asttypes.private_flag * Parsetree.class_field_kind) * - Parsetree.attributes)) - in +# 38535 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -39366,56 +38613,56 @@ module Tables = struct let _1_inlined1 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 39370 "src/ocaml/preprocess/parser_raw.ml" +# 38617 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined1 in let _3 : (Asttypes.private_flag) = Obj.magic _3 in let _1 : (Parsetree.attributes) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__11_ in - let _v = - let _4 = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in - let _1 = + let _v : ((string Location.loc * Asttypes.private_flag * Parsetree.class_field_kind) * + Parsetree.attributes) = let _4 = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in + let _1 = # 5010 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 39383 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 38630 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 39391 "src/ocaml/preprocess/parser_raw.ml" - - in - let _startpos__4_ = _startpos__1_inlined1_ in - let _2 = +# 38638 "src/ocaml/preprocess/parser_raw.ml" + + in + let _startpos__4_ = _startpos__1_inlined1_ in + let _2 = # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 39398 "src/ocaml/preprocess/parser_raw.ml" - in - let (_endpos__2_, _startpos__2_) = (_endpos__1_, _startpos__1_) in - let _1 = +# 38645 "src/ocaml/preprocess/parser_raw.ml" + in + let (_endpos__2_, _startpos__2_) = (_endpos__1_, _startpos__1_) in + let _1 = # 5304 "src/ocaml/preprocess/parser_raw.mly" ( Fresh ) -# 39404 "src/ocaml/preprocess/parser_raw.ml" - in - let (_endpos__1_, _startpos__1_) = (_endpos__0_, _endpos__0_) in - let _endpos = _endpos__11_ in - let _symbolstartpos = if _startpos__1_ != _endpos__1_ then - _startpos__1_ +# 38651 "src/ocaml/preprocess/parser_raw.ml" + in + let (_endpos__1_, _startpos__1_) = (_endpos__0_, _endpos__0_) in + let _endpos = _endpos__11_ in + let _symbolstartpos = if _startpos__1_ != _endpos__1_ then + _startpos__1_ + else + if _startpos__2_ != _endpos__2_ then + _startpos__2_ else - if _startpos__2_ != _endpos__2_ then - _startpos__2_ + if _startpos__3_ != _endpos__3_ then + _startpos__3_ else - if _startpos__3_ != _endpos__3_ then - _startpos__3_ - else - _startpos__4_ in - let _sloc = (_symbolstartpos, _endpos) in - ( + _startpos__4_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2523 "src/ocaml/preprocess/parser_raw.mly" ( let poly_exp_loc = (_startpos__7_, _endpos__11_) in let poly_exp = @@ -39427,10 +38674,8 @@ module Tables = struct ghexp ~loc:poly_exp_loc (Pexp_poly(exp, Some poly)) in (_4, _3, Cfk_concrete (_1, poly_exp)), _2 ) -# 39431 "src/ocaml/preprocess/parser_raw.ml" - : ((string Location.loc * Asttypes.private_flag * Parsetree.class_field_kind) * - Parsetree.attributes)) - in +# 38678 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -39517,7 +38762,7 @@ module Tables = struct let _1_inlined2 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 39521 "src/ocaml/preprocess/parser_raw.ml" +# 38766 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined2 in let _3 : (Asttypes.private_flag) = Obj.magic _3 in let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in @@ -39525,51 +38770,51 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__11_ in - let _v = - let _4 = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in - let _1 = + let _v : ((string Location.loc * Asttypes.private_flag * Parsetree.class_field_kind) * + Parsetree.attributes) = let _4 = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in + let _1 = # 5010 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 39535 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 38780 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 39543 "src/ocaml/preprocess/parser_raw.ml" - - in - let _startpos__4_ = _startpos__1_inlined2_ in - let _2 = - let _1 = _1_inlined1 in - +# 38788 "src/ocaml/preprocess/parser_raw.ml" + + in + let _startpos__4_ = _startpos__1_inlined2_ in + let _2 = + let _1 = _1_inlined1 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 39552 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__2_, _startpos__2_) = (_endpos__1_inlined1_, _startpos__1_inlined1_) in - let _1 = +# 38797 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__2_, _startpos__2_) = (_endpos__1_inlined1_, _startpos__1_inlined1_) in + let _1 = # 5305 "src/ocaml/preprocess/parser_raw.mly" ( Override ) -# 39559 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__11_ in - let _symbolstartpos = if _startpos__1_ != _endpos__1_ then - _startpos__1_ +# 38804 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__11_ in + let _symbolstartpos = if _startpos__1_ != _endpos__1_ then + _startpos__1_ + else + if _startpos__2_ != _endpos__2_ then + _startpos__2_ else - if _startpos__2_ != _endpos__2_ then - _startpos__2_ + if _startpos__3_ != _endpos__3_ then + _startpos__3_ else - if _startpos__3_ != _endpos__3_ then - _startpos__3_ - else - _startpos__4_ in - let _sloc = (_symbolstartpos, _endpos) in - ( + _startpos__4_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2523 "src/ocaml/preprocess/parser_raw.mly" ( let poly_exp_loc = (_startpos__7_, _endpos__11_) in let poly_exp = @@ -39581,10 +38826,8 @@ module Tables = struct ghexp ~loc:poly_exp_loc (Pexp_poly(exp, Some poly)) in (_4, _3, Cfk_concrete (_1, poly_exp)), _2 ) -# 39585 "src/ocaml/preprocess/parser_raw.ml" - : ((string Location.loc * Asttypes.private_flag * Parsetree.class_field_kind) * - Parsetree.attributes)) - in +# 38830 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -39604,7 +38847,7 @@ module Tables = struct let _1 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 39608 "src/ocaml/preprocess/parser_raw.ml" +# 38851 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -39612,7 +38855,7 @@ module Tables = struct let _v : (Longident.t) = # 5133 "src/ocaml/preprocess/parser_raw.mly" ( Lident _1 ) -# 39616 "src/ocaml/preprocess/parser_raw.ml" +# 38859 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -39645,7 +38888,7 @@ module Tables = struct let _3 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 39649 "src/ocaml/preprocess/parser_raw.ml" +# 38892 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _3 in let _2 : unit = Obj.magic _2 in let _1 : (Longident.t) = Obj.magic _1 in @@ -39655,7 +38898,7 @@ module Tables = struct let _v : (Longident.t) = # 5134 "src/ocaml/preprocess/parser_raw.mly" ( Ldot(_1,_3) ) -# 39659 "src/ocaml/preprocess/parser_raw.ml" +# 38902 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -39676,7 +38919,7 @@ module Tables = struct let _1 : ( # 1155 "src/ocaml/preprocess/parser_raw.mly" (string) -# 39680 "src/ocaml/preprocess/parser_raw.ml" +# 38923 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -39684,7 +38927,7 @@ module Tables = struct let _v : (Longident.t) = # 5133 "src/ocaml/preprocess/parser_raw.mly" ( Lident _1 ) -# 39688 "src/ocaml/preprocess/parser_raw.ml" +# 38931 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -39717,7 +38960,7 @@ module Tables = struct let _3 : ( # 1155 "src/ocaml/preprocess/parser_raw.mly" (string) -# 39721 "src/ocaml/preprocess/parser_raw.ml" +# 38964 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _3 in let _2 : unit = Obj.magic _2 in let _1 : (Longident.t) = Obj.magic _1 in @@ -39727,7 +38970,7 @@ module Tables = struct let _v : (Longident.t) = # 5134 "src/ocaml/preprocess/parser_raw.mly" ( Ldot(_1,_3) ) -# 39731 "src/ocaml/preprocess/parser_raw.ml" +# 38974 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -39749,18 +38992,16 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v = - let _1 = + let _v : (Longident.t) = let _1 = # 5183 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 39757 "src/ocaml/preprocess/parser_raw.ml" - in - ( +# 38999 "src/ocaml/preprocess/parser_raw.ml" + in + # 5133 "src/ocaml/preprocess/parser_raw.mly" ( Lident _1 ) -# 39762 "src/ocaml/preprocess/parser_raw.ml" - : (Longident.t)) - in +# 39004 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -39795,25 +39036,23 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in - let _v = - let _1 = - let _1 = + let _v : (Longident.t) = let _1 = + let _1 = # 5113 "src/ocaml/preprocess/parser_raw.mly" ( "::" ) -# 39804 "src/ocaml/preprocess/parser_raw.ml" - in - +# 39044 "src/ocaml/preprocess/parser_raw.ml" + in + # 5183 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 39809 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 39049 "src/ocaml/preprocess/parser_raw.ml" + + in + # 5133 "src/ocaml/preprocess/parser_raw.mly" ( Lident _1 ) -# 39815 "src/ocaml/preprocess/parser_raw.ml" - : (Longident.t)) - in +# 39055 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -39834,18 +39073,16 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v = - let _1 = + let _v : (Longident.t) = let _1 = # 5183 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 39842 "src/ocaml/preprocess/parser_raw.ml" - in - ( +# 39080 "src/ocaml/preprocess/parser_raw.ml" + in + # 5133 "src/ocaml/preprocess/parser_raw.mly" ( Lident _1 ) -# 39847 "src/ocaml/preprocess/parser_raw.ml" - : (Longident.t)) - in +# 39085 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -39880,21 +39117,19 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined1_ in - let _v = - let _3 = - let _1 = _1_inlined1 in - + let _v : (Longident.t) = let _3 = + let _1 = _1_inlined1 in + # 5183 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 39890 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 39126 "src/ocaml/preprocess/parser_raw.ml" + + in + # 5134 "src/ocaml/preprocess/parser_raw.mly" ( Ldot(_1,_3) ) -# 39896 "src/ocaml/preprocess/parser_raw.ml" - : (Longident.t)) - in +# 39132 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -39943,25 +39178,23 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in - let _v = - let _3 = - let _1 = + let _v : (Longident.t) = let _3 = + let _1 = # 5113 "src/ocaml/preprocess/parser_raw.mly" ( "::" ) -# 39952 "src/ocaml/preprocess/parser_raw.ml" - in - +# 39186 "src/ocaml/preprocess/parser_raw.ml" + in + # 5183 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 39957 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 39191 "src/ocaml/preprocess/parser_raw.ml" + + in + # 5134 "src/ocaml/preprocess/parser_raw.mly" ( Ldot(_1,_3) ) -# 39963 "src/ocaml/preprocess/parser_raw.ml" - : (Longident.t)) - in +# 39197 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -39996,21 +39229,19 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined1_ in - let _v = - let _3 = - let _1 = _1_inlined1 in - + let _v : (Longident.t) = let _3 = + let _1 = _1_inlined1 in + # 5183 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 40006 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 39238 "src/ocaml/preprocess/parser_raw.ml" + + in + # 5134 "src/ocaml/preprocess/parser_raw.mly" ( Ldot(_1,_3) ) -# 40012 "src/ocaml/preprocess/parser_raw.ml" - : (Longident.t)) - in +# 39244 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -40034,7 +39265,7 @@ module Tables = struct let _v : (Longident.t) = # 5133 "src/ocaml/preprocess/parser_raw.mly" ( Lident _1 ) -# 40038 "src/ocaml/preprocess/parser_raw.ml" +# 39269 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -40073,7 +39304,7 @@ module Tables = struct let _v : (Longident.t) = # 5134 "src/ocaml/preprocess/parser_raw.mly" ( Ldot(_1,_3) ) -# 40077 "src/ocaml/preprocess/parser_raw.ml" +# 39308 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -40098,7 +39329,7 @@ module Tables = struct let _v : (Longident.t) = # 5133 "src/ocaml/preprocess/parser_raw.mly" ( Lident _1 ) -# 40102 "src/ocaml/preprocess/parser_raw.ml" +# 39333 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -40137,7 +39368,7 @@ module Tables = struct let _v : (Longident.t) = # 5134 "src/ocaml/preprocess/parser_raw.mly" ( Ldot(_1,_3) ) -# 40141 "src/ocaml/preprocess/parser_raw.ml" +# 39372 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -40162,7 +39393,7 @@ module Tables = struct let _v : (Longident.t) = # 5133 "src/ocaml/preprocess/parser_raw.mly" ( Lident _1 ) -# 40166 "src/ocaml/preprocess/parser_raw.ml" +# 39397 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -40201,7 +39432,7 @@ module Tables = struct let _v : (Longident.t) = # 5134 "src/ocaml/preprocess/parser_raw.mly" ( Ldot(_1,_3) ) -# 40205 "src/ocaml/preprocess/parser_raw.ml" +# 39436 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -40222,7 +39453,7 @@ module Tables = struct let _1 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 40226 "src/ocaml/preprocess/parser_raw.ml" +# 39457 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -40230,7 +39461,7 @@ module Tables = struct let _v : (Longident.t) = # 5133 "src/ocaml/preprocess/parser_raw.mly" ( Lident _1 ) -# 40234 "src/ocaml/preprocess/parser_raw.ml" +# 39465 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -40263,7 +39494,7 @@ module Tables = struct let _3 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 40267 "src/ocaml/preprocess/parser_raw.ml" +# 39498 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _3 in let _2 : unit = Obj.magic _2 in let _1 : (Longident.t) = Obj.magic _1 in @@ -40273,7 +39504,7 @@ module Tables = struct let _v : (Longident.t) = # 5134 "src/ocaml/preprocess/parser_raw.mly" ( Ldot(_1,_3) ) -# 40277 "src/ocaml/preprocess/parser_raw.ml" +# 39508 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -40294,7 +39525,7 @@ module Tables = struct let _1 : ( # 1155 "src/ocaml/preprocess/parser_raw.mly" (string) -# 40298 "src/ocaml/preprocess/parser_raw.ml" +# 39529 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -40302,7 +39533,7 @@ module Tables = struct let _v : (Longident.t) = # 5133 "src/ocaml/preprocess/parser_raw.mly" ( Lident _1 ) -# 40306 "src/ocaml/preprocess/parser_raw.ml" +# 39537 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -40335,7 +39566,7 @@ module Tables = struct let _3 : ( # 1155 "src/ocaml/preprocess/parser_raw.mly" (string) -# 40339 "src/ocaml/preprocess/parser_raw.ml" +# 39570 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _3 in let _2 : unit = Obj.magic _2 in let _1 : (Longident.t) = Obj.magic _1 in @@ -40345,7 +39576,7 @@ module Tables = struct let _v : (Longident.t) = # 5134 "src/ocaml/preprocess/parser_raw.mly" ( Ldot(_1,_3) ) -# 40349 "src/ocaml/preprocess/parser_raw.ml" +# 39580 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -40370,7 +39601,7 @@ module Tables = struct let _v : (Longident.t) = # 5133 "src/ocaml/preprocess/parser_raw.mly" ( Lident _1 ) -# 40374 "src/ocaml/preprocess/parser_raw.ml" +# 39605 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -40409,7 +39640,7 @@ module Tables = struct let _v : (Longident.t) = # 5134 "src/ocaml/preprocess/parser_raw.mly" ( Ldot(_1,_3) ) -# 40413 "src/ocaml/preprocess/parser_raw.ml" +# 39644 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -40434,7 +39665,7 @@ module Tables = struct let _v : (Longident.t) = # 5159 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 40438 "src/ocaml/preprocess/parser_raw.ml" +# 39669 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -40477,16 +39708,14 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in - let _v = - let _endpos = _endpos__4_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - ( + let _v : (Longident.t) = let _endpos = _endpos__4_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 5161 "src/ocaml/preprocess/parser_raw.mly" ( lapply ~loc:_sloc _1 _3 ) -# 40488 "src/ocaml/preprocess/parser_raw.ml" - : (Longident.t)) - in +# 39718 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -40510,7 +39739,7 @@ module Tables = struct let _v : (Longident.t) = # 5156 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 40514 "src/ocaml/preprocess/parser_raw.ml" +# 39743 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -40542,7 +39771,7 @@ module Tables = struct let _v : (Parsetree.module_expr) = # 1926 "src/ocaml/preprocess/parser_raw.mly" ( me ) -# 40546 "src/ocaml/preprocess/parser_raw.ml" +# 39775 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -40585,36 +39814,34 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_me_ in - let _v = + let _v : (Parsetree.module_expr) = let _1 = let _1 = - let _1 = - let mm = + let mm = # 4699 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 40595 "src/ocaml/preprocess/parser_raw.ml" - in - +# 39823 "src/ocaml/preprocess/parser_raw.ml" + in + # 1933 "src/ocaml/preprocess/parser_raw.mly" ( Pmod_constraint(me, Some mty, mm) ) -# 40600 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos_me_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 39828 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos_me_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1339 "src/ocaml/preprocess/parser_raw.mly" ( mkmod ~loc:_sloc _1 ) -# 40610 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 39838 "src/ocaml/preprocess/parser_raw.ml" + + in + # 1939 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 40616 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.module_expr)) - in +# 39844 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -40663,39 +39890,37 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_me_ in - let _v = + let _v : (Parsetree.module_expr) = let _1 = let _1 = - let _1 = - let mm = - let _1 = _1_inlined1 in - + let mm = + let _1 = _1_inlined1 in + # 4700 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 40675 "src/ocaml/preprocess/parser_raw.ml" - - in +# 39901 "src/ocaml/preprocess/parser_raw.ml" + in + # 1933 "src/ocaml/preprocess/parser_raw.mly" ( Pmod_constraint(me, Some mty, mm) ) -# 40681 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos_me_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 39907 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos_me_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1339 "src/ocaml/preprocess/parser_raw.mly" ( mkmod ~loc:_sloc _1 ) -# 40691 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 39917 "src/ocaml/preprocess/parser_raw.ml" + + in + # 1939 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 40697 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.module_expr)) - in +# 39923 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -40730,29 +39955,27 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_mm_ in let _endpos = _endpos_me_ in - let _v = - let _1 = - let _1 = + let _v : (Parsetree.module_expr) = let _1 = + let _1 = # 1935 "src/ocaml/preprocess/parser_raw.mly" ( Pmod_constraint(me, None, mm) ) -# 40739 "src/ocaml/preprocess/parser_raw.ml" - in - let (_endpos__1_, _startpos__1_) = (_endpos_me_, _startpos_mm_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 39963 "src/ocaml/preprocess/parser_raw.ml" + in + let (_endpos__1_, _startpos__1_) = (_endpos_me_, _startpos_mm_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1339 "src/ocaml/preprocess/parser_raw.mly" ( mkmod ~loc:_sloc _1 ) -# 40748 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 39972 "src/ocaml/preprocess/parser_raw.ml" + + in + # 1939 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 40754 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.module_expr)) - in +# 39978 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -40780,30 +40003,28 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_arg_and_pos_ in let _endpos = _endpos_body_ in - let _v = - let _1 = - let _1 = + let _v : (Parsetree.module_expr) = let _1 = + let _1 = # 1937 "src/ocaml/preprocess/parser_raw.mly" ( let (_, arg) = arg_and_pos in Pmod_functor(arg, body) ) -# 40790 "src/ocaml/preprocess/parser_raw.ml" - in - let (_endpos__1_, _startpos__1_) = (_endpos_body_, _startpos_arg_and_pos_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 40012 "src/ocaml/preprocess/parser_raw.ml" + in + let (_endpos__1_, _startpos__1_) = (_endpos_body_, _startpos_arg_and_pos_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1339 "src/ocaml/preprocess/parser_raw.mly" ( mkmod ~loc:_sloc _1 ) -# 40799 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 40021 "src/ocaml/preprocess/parser_raw.ml" + + in + # 1939 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 40805 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.module_expr)) - in +# 40027 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -40841,7 +40062,7 @@ module Tables = struct let _v : (Parsetree.module_type * Parsetree.modalities) = # 2221 "src/ocaml/preprocess/parser_raw.mly" ( mty, mm ) -# 40845 "src/ocaml/preprocess/parser_raw.ml" +# 40066 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -40870,31 +40091,29 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_arg_and_pos_ in let _endpos = _endpos_body_ in - let _v = - let _1 = - let _1 = + let _v : (Parsetree.module_type * Parsetree.modalities) = let _1 = + let _1 = # 2228 "src/ocaml/preprocess/parser_raw.mly" ( let (_, arg) = arg_and_pos in let (ret, mret) = body in Pmty_functor(arg, ret, mret) ) -# 40881 "src/ocaml/preprocess/parser_raw.ml" - in - let (_endpos__1_, _startpos__1_) = (_endpos_body_, _startpos_arg_and_pos_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 40101 "src/ocaml/preprocess/parser_raw.ml" + in + let (_endpos__1_, _startpos__1_) = (_endpos_body_, _startpos_arg_and_pos_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1341 "src/ocaml/preprocess/parser_raw.mly" ( mkmty ~loc:_sloc _1 ) -# 40890 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 40110 "src/ocaml/preprocess/parser_raw.ml" + + in + # 2232 "src/ocaml/preprocess/parser_raw.mly" ( _1, [] ) -# 40896 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.module_type * Parsetree.modalities)) - in +# 40116 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -40922,18 +40141,16 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_mty_ in - let _v = - let mm = + let _v : (Parsetree.module_type * Parsetree.modes) = let mm = # 4699 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 40930 "src/ocaml/preprocess/parser_raw.ml" - in - ( +# 40148 "src/ocaml/preprocess/parser_raw.ml" + in + # 2221 "src/ocaml/preprocess/parser_raw.mly" ( mty, mm ) -# 40935 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.module_type * Parsetree.modes)) - in +# 40153 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -40968,21 +40185,19 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined1_ in - let _v = - let mm = - let _1 = _1_inlined1 in - + let _v : (Parsetree.module_type * Parsetree.modes) = let mm = + let _1 = _1_inlined1 in + # 4700 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 40978 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 40194 "src/ocaml/preprocess/parser_raw.ml" + + in + # 2221 "src/ocaml/preprocess/parser_raw.mly" ( mty, mm ) -# 40984 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.module_type * Parsetree.modes)) - in +# 40200 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -41010,31 +40225,29 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_arg_and_pos_ in let _endpos = _endpos_body_ in - let _v = - let _1 = - let _1 = + let _v : (Parsetree.module_type * Parsetree.modes) = let _1 = + let _1 = # 2228 "src/ocaml/preprocess/parser_raw.mly" ( let (_, arg) = arg_and_pos in let (ret, mret) = body in Pmty_functor(arg, ret, mret) ) -# 41021 "src/ocaml/preprocess/parser_raw.ml" - in - let (_endpos__1_, _startpos__1_) = (_endpos_body_, _startpos_arg_and_pos_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 40235 "src/ocaml/preprocess/parser_raw.ml" + in + let (_endpos__1_, _startpos__1_) = (_endpos_body_, _startpos_arg_and_pos_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1341 "src/ocaml/preprocess/parser_raw.mly" ( mkmty ~loc:_sloc _1 ) -# 41030 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 40244 "src/ocaml/preprocess/parser_raw.ml" + + in + # 2232 "src/ocaml/preprocess/parser_raw.mly" ( _1, [] ) -# 41036 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.module_type * Parsetree.modes)) - in +# 40250 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -41076,24 +40289,22 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in - let _v = - let attrs = - let _1 = _1_inlined1 in - + let _v : (Parsetree.module_expr) = let attrs = + let _1 = _1_inlined1 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 41086 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__4_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - ( +# 40298 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__4_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1735 "src/ocaml/preprocess/parser_raw.mly" ( mkmod ~loc:_sloc ~attrs (Pmod_structure s) ) -# 41095 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.module_expr)) - in +# 40307 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -41142,28 +40353,26 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_me_ in - let _v = - let attrs = - let _1 = _1_inlined1 in - + let _v : (Parsetree.module_expr) = let attrs = + let _1 = _1_inlined1 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 41152 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos_me_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - ( +# 40362 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos_me_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1745 "src/ocaml/preprocess/parser_raw.mly" ( wrap_mod_attrs ~loc:_sloc attrs ( List.fold_left (fun acc (startpos, arg) -> mkmod ~loc:(startpos, _endpos) (Pmod_functor (arg, acc)) ) me args ) ) -# 41165 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.module_expr)) - in +# 40375 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -41187,7 +40396,7 @@ module Tables = struct let _v : (Parsetree.module_expr) = # 1751 "src/ocaml/preprocess/parser_raw.mly" ( me ) -# 41191 "src/ocaml/preprocess/parser_raw.ml" +# 40400 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -41216,11 +40425,10 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_me_ in let _endpos = _endpos_attr_ in - let _v = - let _endpos = _endpos_attr_ in - let _symbolstartpos = _startpos_me_ in - let _sloc = (_symbolstartpos, _endpos) in - ( + let _v : (Parsetree.module_expr) = let _endpos = _endpos_attr_ in + let _symbolstartpos = _startpos_me_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1753 "src/ocaml/preprocess/parser_raw.mly" ( match attr with | { attr_name = { txt = "jane.non_erasable.instances"; loc = _ }; @@ -41228,9 +40436,8 @@ module Tables = struct } -> mkmod ~loc:_sloc (pmod_instance me) | attr -> Mod.attr me attr ) -# 41232 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.module_expr)) - in +# 40440 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -41251,40 +40458,38 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v = + let _v : (Parsetree.module_expr) = let _1 = let _1 = - let _1 = - let x = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let x = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 41265 "src/ocaml/preprocess/parser_raw.ml" - - in +# 40471 "src/ocaml/preprocess/parser_raw.ml" + in + # 1762 "src/ocaml/preprocess/parser_raw.mly" ( Pmod_ident x ) -# 41271 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 40477 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1339 "src/ocaml/preprocess/parser_raw.mly" ( mkmod ~loc:_sloc _1 ) -# 41280 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 40486 "src/ocaml/preprocess/parser_raw.ml" + + in + # 1777 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 41286 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.module_expr)) - in +# 40492 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -41312,29 +40517,27 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_me1_ in let _endpos = _endpos_me2_ in - let _v = - let _1 = - let _1 = + let _v : (Parsetree.module_expr) = let _1 = + let _1 = # 1765 "src/ocaml/preprocess/parser_raw.mly" ( Pmod_apply(me1, me2) ) -# 41321 "src/ocaml/preprocess/parser_raw.ml" - in - let (_endpos__1_, _startpos__1_) = (_endpos_me2_, _startpos_me1_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 40525 "src/ocaml/preprocess/parser_raw.ml" + in + let (_endpos__1_, _startpos__1_) = (_endpos_me2_, _startpos_me1_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1339 "src/ocaml/preprocess/parser_raw.mly" ( mkmod ~loc:_sloc _1 ) -# 41330 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 40534 "src/ocaml/preprocess/parser_raw.ml" + + in + # 1777 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 41336 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.module_expr)) - in +# 40540 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -41369,29 +40572,27 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_me_ in let _endpos = _endpos__3_ in - let _v = - let _1 = - let _1 = + let _v : (Parsetree.module_expr) = let _1 = + let _1 = # 1768 "src/ocaml/preprocess/parser_raw.mly" ( Pmod_apply_unit me ) -# 41378 "src/ocaml/preprocess/parser_raw.ml" - in - let (_endpos__1_, _startpos__1_) = (_endpos__3_, _startpos_me_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 40580 "src/ocaml/preprocess/parser_raw.ml" + in + let (_endpos__1_, _startpos__1_) = (_endpos__3_, _startpos_me_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1339 "src/ocaml/preprocess/parser_raw.mly" ( mkmod ~loc:_sloc _1 ) -# 41387 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 40589 "src/ocaml/preprocess/parser_raw.ml" + + in + # 1777 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 41393 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.module_expr)) - in +# 40595 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -41412,29 +40613,27 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_ex_ in let _endpos = _endpos_ex_ in - let _v = - let _1 = - let _1 = + let _v : (Parsetree.module_expr) = let _1 = + let _1 = # 1771 "src/ocaml/preprocess/parser_raw.mly" ( Pmod_extension ex ) -# 41421 "src/ocaml/preprocess/parser_raw.ml" - in - let (_endpos__1_, _startpos__1_) = (_endpos_ex_, _startpos_ex_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 40621 "src/ocaml/preprocess/parser_raw.ml" + in + let (_endpos__1_, _startpos__1_) = (_endpos_ex_, _startpos_ex_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1339 "src/ocaml/preprocess/parser_raw.mly" ( mkmod ~loc:_sloc _1 ) -# 41430 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 40630 "src/ocaml/preprocess/parser_raw.ml" + + in + # 1777 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 41436 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.module_expr)) - in +# 40636 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -41455,34 +40654,32 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v = + let _v : (Parsetree.module_expr) = let _1 = let _1 = - let _1 = - let _endpos = _endpos__1_ in - let _startpos = _startpos__1_ in - let _loc = (_startpos, _endpos) in - + let _endpos = _endpos__1_ in + let _startpos = _startpos__1_ in + let _loc = (_startpos, _endpos) in + # 1774 "src/ocaml/preprocess/parser_raw.mly" ( let id = mkrhs Ast_helper.hole_txt _loc in Pmod_extension (id, PStr []) ) -# 41469 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 40667 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1339 "src/ocaml/preprocess/parser_raw.mly" ( mkmod ~loc:_sloc _1 ) -# 41478 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 40676 "src/ocaml/preprocess/parser_raw.ml" + + in + # 1777 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 41484 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.module_expr)) - in +# 40682 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -41502,7 +40699,7 @@ module Tables = struct let x : ( # 1155 "src/ocaml/preprocess/parser_raw.mly" (string) -# 41506 "src/ocaml/preprocess/parser_raw.ml" +# 40703 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic x in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_x_ in @@ -41510,7 +40707,7 @@ module Tables = struct let _v : (string option) = # 1714 "src/ocaml/preprocess/parser_raw.mly" ( Some x ) -# 41514 "src/ocaml/preprocess/parser_raw.ml" +# 40711 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -41535,7 +40732,99 @@ module Tables = struct let _v : (string option) = # 1717 "src/ocaml/preprocess/parser_raw.mly" ( None ) -# 41539 "src/ocaml/preprocess/parser_raw.ml" +# 40736 "src/ocaml/preprocess/parser_raw.ml" + in + { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + } = _menhir_stack in + let _1 : (string option) = Obj.magic _1 in + let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in + let _startpos = _startpos__1_ in + let _endpos = _endpos__1_ in + let _v : (string option Location.loc * Parsetree.modalities) = let _1 = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 1296 "src/ocaml/preprocess/parser_raw.mly" + ( mkrhs _1 _sloc ) +# 40765 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 1721 "src/ocaml/preprocess/parser_raw.mly" + ( _1, [] ) +# 40771 "src/ocaml/preprocess/parser_raw.ml" + in + { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _4; + MenhirLib.EngineTypes.startp = _startpos__4_; + MenhirLib.EngineTypes.endp = _endpos__4_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _1_inlined1; + MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; + } = _menhir_stack in + let _4 : unit = Obj.magic _4 in + let _3 : (Parsetree.modalities) = Obj.magic _3 in + let _1_inlined1 : (string option) = Obj.magic _1_inlined1 in + let _1 : unit = Obj.magic _1 in + let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in + let _startpos = _startpos__1_ in + let _endpos = _endpos__4_ in + let _v : (string option Location.loc * Parsetree.modalities) = let _2 = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 1296 "src/ocaml/preprocess/parser_raw.mly" + ( mkrhs _1 _sloc ) +# 40822 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 1722 "src/ocaml/preprocess/parser_raw.mly" + ( _2, _3 ) +# 40828 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -41557,119 +40846,21 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v = - let _1 = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 1296 "src/ocaml/preprocess/parser_raw.mly" - ( mkrhs _1 _sloc ) -# 41569 "src/ocaml/preprocess/parser_raw.ml" - - in - ( -# 1721 "src/ocaml/preprocess/parser_raw.mly" - ( _1, [] ) -# 41575 "src/ocaml/preprocess/parser_raw.ml" - : (string option Location.loc * Parsetree.modalities)) - in - { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = Obj.repr _v; - MenhirLib.EngineTypes.startp = _startpos; - MenhirLib.EngineTypes.endp = _endpos; - MenhirLib.EngineTypes.next = _menhir_stack; - }); - (fun _menhir_env -> - let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _4; - MenhirLib.EngineTypes.startp = _startpos__4_; - MenhirLib.EngineTypes.endp = _endpos__4_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined1; - MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - }; - } = _menhir_stack in - let _4 : unit = Obj.magic _4 in - let _3 : (Parsetree.modalities) = Obj.magic _3 in - let _1_inlined1 : (string option) = Obj.magic _1_inlined1 in - let _1 : unit = Obj.magic _1 in - let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos__1_ in - let _endpos = _endpos__4_ in - let _v = - let _2 = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let _v : (Ocaml_parsing.Ast_helper.str_opt * Parsetree.modes) = let _1 = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 41628 "src/ocaml/preprocess/parser_raw.ml" - - in - ( -# 1722 "src/ocaml/preprocess/parser_raw.mly" - ( _2, _3 ) -# 41634 "src/ocaml/preprocess/parser_raw.ml" - : (string option Location.loc * Parsetree.modalities)) +# 40857 "src/ocaml/preprocess/parser_raw.ml" + in - { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = Obj.repr _v; - MenhirLib.EngineTypes.startp = _startpos; - MenhirLib.EngineTypes.endp = _endpos; - MenhirLib.EngineTypes.next = _menhir_stack; - }); - (fun _menhir_env -> - let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - } = _menhir_stack in - let _1 : (string option) = Obj.magic _1 in - let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos__1_ in - let _endpos = _endpos__1_ in - let _v = - let _1 = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 1296 "src/ocaml/preprocess/parser_raw.mly" - ( mkrhs _1 _sloc ) -# 41665 "src/ocaml/preprocess/parser_raw.ml" - - in - ( + # 1721 "src/ocaml/preprocess/parser_raw.mly" ( _1, [] ) -# 41671 "src/ocaml/preprocess/parser_raw.ml" - : (Ocaml_parsing.Ast_helper.str_opt * Parsetree.modes)) - in +# 40863 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -41711,24 +40902,22 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in - let _v = - let _2 = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let _v : (Ocaml_parsing.Ast_helper.str_opt * Parsetree.modes) = let _2 = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 41724 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 40914 "src/ocaml/preprocess/parser_raw.ml" + + in + # 1722 "src/ocaml/preprocess/parser_raw.mly" ( _2, _3 ) -# 41730 "src/ocaml/preprocess/parser_raw.ml" - : (Ocaml_parsing.Ast_helper.str_opt * Parsetree.modes)) - in +# 40920 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -41787,7 +40976,7 @@ module Tables = struct let _1_inlined2 : ( # 1155 "src/ocaml/preprocess/parser_raw.mly" (string) -# 41791 "src/ocaml/preprocess/parser_raw.ml" +# 40980 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined2 in let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in let ext : (string Location.loc option) = Obj.magic ext in @@ -41795,50 +40984,49 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined4_ in - let _v = - let attrs2 = - let _1 = _1_inlined4 in - + let _v : (Parsetree.module_substitution * string Location.loc option) = let attrs2 = + let _1 = _1_inlined4 in + # 5399 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 41805 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_attrs2_ = _endpos__1_inlined4_ in - let body = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined3_, _startpos__1_inlined3_, _1_inlined3) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 40993 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_attrs2_ = _endpos__1_inlined4_ in + let body = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined3_, _startpos__1_inlined3_, _1_inlined3) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 41817 "src/ocaml/preprocess/parser_raw.ml" - - in - let uid = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 41005 "src/ocaml/preprocess/parser_raw.ml" + + in + let uid = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 41828 "src/ocaml/preprocess/parser_raw.ml" - - in - let attrs1 = - let _1 = _1_inlined1 in - +# 41016 "src/ocaml/preprocess/parser_raw.ml" + + in + let attrs1 = + let _1 = _1_inlined1 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 41836 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos_attrs2_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - ( +# 41024 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos_attrs2_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2265 "src/ocaml/preprocess/parser_raw.mly" ( let attrs = attrs1 @ attrs2 in @@ -41846,9 +41034,8 @@ module Tables = struct let docs = symbol_docs _sloc in Ms.mk uid body ~attrs ~loc ~docs, ext ) -# 41850 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.module_substitution * string Location.loc option)) - in +# 41038 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -41890,24 +41077,22 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in - let _v = - let attrs = - let _1 = _1_inlined1 in - + let _v : (Parsetree.module_type) = let attrs = + let _1 = _1_inlined1 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 41900 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__4_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - ( +# 41086 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__4_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2076 "src/ocaml/preprocess/parser_raw.mly" ( mkmty ~loc:_sloc ~attrs (Pmty_signature s) ) -# 41909 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.module_type)) - in +# 41095 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -41956,25 +41141,24 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_mty_ in - let _v = - let mm = + let _v : (Parsetree.module_type) = let mm = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 41964 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos_mm_ = _endpos_mty_ in - let attrs = - let _1 = _1_inlined1 in - +# 41148 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos_mm_ = _endpos_mty_ in + let attrs = + let _1 = _1_inlined1 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 41972 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos_mm_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - ( +# 41156 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos_mm_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2088 "src/ocaml/preprocess/parser_raw.mly" ( wrap_mty_attrs ~loc:_sloc attrs ( (* return modes go to the innermost functor arrow; @@ -41988,9 +41172,8 @@ module Tables = struct | [] -> mty | _ :: _ -> assert false ) ) -# 41992 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.module_type)) - in +# 41176 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -42046,28 +41229,27 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined2_ in - let _v = - let mm = - let _1 = _1_inlined2 in - + let _v : (Parsetree.module_type) = let mm = + let _1 = _1_inlined2 in + # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 42056 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_mm_ = _endpos__1_inlined2_ in - let attrs = - let _1 = _1_inlined1 in - +# 41238 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_mm_ = _endpos__1_inlined2_ in + let attrs = + let _1 = _1_inlined1 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 42065 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos_mm_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - ( +# 41247 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos_mm_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2088 "src/ocaml/preprocess/parser_raw.mly" ( wrap_mty_attrs ~loc:_sloc attrs ( (* return modes go to the innermost functor arrow; @@ -42081,9 +41263,8 @@ module Tables = struct | [] -> mty | _ :: _ -> assert false ) ) -# 42085 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.module_type)) - in +# 41267 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -42132,24 +41313,22 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__5_ in - let _v = - let _4 = - let _1 = _1_inlined1 in - + let _v : (Parsetree.module_type) = let _4 = + let _1 = _1_inlined1 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 42142 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__5_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - ( +# 41322 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__5_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2101 "src/ocaml/preprocess/parser_raw.mly" ( mkmty ~loc:_sloc ~attrs:_4 (Pmty_typeof _5) ) -# 42151 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.module_type)) - in +# 41331 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -42187,7 +41366,7 @@ module Tables = struct let _v : (Parsetree.module_type) = # 2103 "src/ocaml/preprocess/parser_raw.mly" ( _2 ) -# 42191 "src/ocaml/preprocess/parser_raw.ml" +# 41370 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -42219,7 +41398,7 @@ module Tables = struct let _v : (Parsetree.module_type) = # 2109 "src/ocaml/preprocess/parser_raw.mly" ( Mty.attr _1 _2 ) -# 42223 "src/ocaml/preprocess/parser_raw.ml" +# 41402 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -42241,40 +41420,38 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v = + let _v : (Parsetree.module_type) = let _1 = let _1 = let _1 = - let _1 = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 42255 "src/ocaml/preprocess/parser_raw.ml" - - in +# 41433 "src/ocaml/preprocess/parser_raw.ml" + in + # 2112 "src/ocaml/preprocess/parser_raw.mly" ( Pmty_ident _1 ) -# 42261 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 41439 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1341 "src/ocaml/preprocess/parser_raw.mly" ( mkmty ~loc:_sloc _1 ) -# 42270 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 41448 "src/ocaml/preprocess/parser_raw.ml" + + in + # 2127 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 42276 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.module_type)) - in +# 41454 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -42316,36 +41493,34 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in - let _v = + let _v : (Parsetree.module_type) = let _1 = let _1 = - let _1 = - let _5 = + let _5 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 42326 "src/ocaml/preprocess/parser_raw.ml" - in - +# 41502 "src/ocaml/preprocess/parser_raw.ml" + in + # 2114 "src/ocaml/preprocess/parser_raw.mly" ( Pmty_functor(Unit, _4, _5) ) -# 42331 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__4_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 41507 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__4_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1341 "src/ocaml/preprocess/parser_raw.mly" ( mkmty ~loc:_sloc _1 ) -# 42341 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 41517 "src/ocaml/preprocess/parser_raw.ml" + + in + # 2127 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 42347 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.module_type)) - in +# 41523 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -42394,39 +41569,37 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined1_ in - let _v = + let _v : (Parsetree.module_type) = let _1 = let _1 = - let _1 = - let _5 = - let _1 = _1_inlined1 in - + let _5 = + let _1 = _1_inlined1 in + # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 42406 "src/ocaml/preprocess/parser_raw.ml" - - in +# 41580 "src/ocaml/preprocess/parser_raw.ml" + in + # 2114 "src/ocaml/preprocess/parser_raw.mly" ( Pmty_functor(Unit, _4, _5) ) -# 42412 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__1_inlined1_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 41586 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__1_inlined1_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1341 "src/ocaml/preprocess/parser_raw.mly" ( mkmty ~loc:_sloc _1 ) -# 42422 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 41596 "src/ocaml/preprocess/parser_raw.ml" + + in + # 2127 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 42428 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.module_type)) - in +# 41602 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -42461,41 +41634,39 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in - let _v = + let _v : (Parsetree.module_type) = let _1 = let _1 = - let _1 = - let m2 = + let m2 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 42471 "src/ocaml/preprocess/parser_raw.ml" - in - let m1 = +# 41643 "src/ocaml/preprocess/parser_raw.ml" + in + let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 42476 "src/ocaml/preprocess/parser_raw.ml" - in - +# 41648 "src/ocaml/preprocess/parser_raw.ml" + in + # 2117 "src/ocaml/preprocess/parser_raw.mly" ( Pmty_functor(Named (mknoloc None, _1, m1), _4, m2) ) -# 42481 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__4_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 41653 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__4_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1341 "src/ocaml/preprocess/parser_raw.mly" ( mkmty ~loc:_sloc _1 ) -# 42491 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 41663 "src/ocaml/preprocess/parser_raw.ml" + + in + # 2127 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 42497 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.module_type)) - in +# 41669 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -42537,44 +41708,42 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined1_ in - let _v = + let _v : (Parsetree.module_type) = let _1 = let _1 = - let _1 = - let m2 = - let _1 = _1_inlined1 in - + let m2 = + let _1 = _1_inlined1 in + # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 42549 "src/ocaml/preprocess/parser_raw.ml" - - in - let m1 = +# 41719 "src/ocaml/preprocess/parser_raw.ml" + + in + let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 42555 "src/ocaml/preprocess/parser_raw.ml" - in - +# 41725 "src/ocaml/preprocess/parser_raw.ml" + in + # 2117 "src/ocaml/preprocess/parser_raw.mly" ( Pmty_functor(Named (mknoloc None, _1, m1), _4, m2) ) -# 42560 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__1_inlined1_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 41730 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__1_inlined1_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1341 "src/ocaml/preprocess/parser_raw.mly" ( mkmty ~loc:_sloc _1 ) -# 42570 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 41740 "src/ocaml/preprocess/parser_raw.ml" + + in + # 2127 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 42576 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.module_type)) - in +# 41746 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -42616,44 +41785,42 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in - let _v = + let _v : (Parsetree.module_type) = let _1 = let _1 = - let _1 = - let m2 = + let m2 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 42626 "src/ocaml/preprocess/parser_raw.ml" - in - let m1 = - let _1 = _1_inlined1 in - +# 41794 "src/ocaml/preprocess/parser_raw.ml" + in + let m1 = + let _1 = _1_inlined1 in + # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 42633 "src/ocaml/preprocess/parser_raw.ml" - - in +# 41801 "src/ocaml/preprocess/parser_raw.ml" + in + # 2117 "src/ocaml/preprocess/parser_raw.mly" ( Pmty_functor(Named (mknoloc None, _1, m1), _4, m2) ) -# 42639 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__4_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 41807 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__4_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1341 "src/ocaml/preprocess/parser_raw.mly" ( mkmty ~loc:_sloc _1 ) -# 42649 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 41817 "src/ocaml/preprocess/parser_raw.ml" + + in + # 2127 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 42655 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.module_type)) - in +# 41823 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -42702,47 +41869,45 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined2_ in - let _v = + let _v : (Parsetree.module_type) = let _1 = let _1 = - let _1 = - let m2 = - let _1 = _1_inlined2 in - + let m2 = + let _1 = _1_inlined2 in + # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 42714 "src/ocaml/preprocess/parser_raw.ml" - - in - let m1 = - let _1 = _1_inlined1 in - +# 41880 "src/ocaml/preprocess/parser_raw.ml" + + in + let m1 = + let _1 = _1_inlined1 in + # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 42722 "src/ocaml/preprocess/parser_raw.ml" - - in +# 41888 "src/ocaml/preprocess/parser_raw.ml" + in + # 2117 "src/ocaml/preprocess/parser_raw.mly" ( Pmty_functor(Named (mknoloc None, _1, m1), _4, m2) ) -# 42728 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__1_inlined2_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 41894 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__1_inlined2_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1341 "src/ocaml/preprocess/parser_raw.mly" ( mkmty ~loc:_sloc _1 ) -# 42738 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 41904 "src/ocaml/preprocess/parser_raw.ml" + + in + # 2127 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 42744 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.module_type)) - in +# 41910 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -42777,43 +41942,41 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_xs_ in - let _v = + let _v : (Parsetree.module_type) = let _1 = let _1 = - let _1 = - let _3 = - let xs = -# 264 "" + let _3 = + let xs = +# 253 "" ( List.rev xs ) -# 42788 "src/ocaml/preprocess/parser_raw.ml" - in - +# 41952 "src/ocaml/preprocess/parser_raw.ml" + in + # 1450 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 42793 "src/ocaml/preprocess/parser_raw.ml" - - in +# 41957 "src/ocaml/preprocess/parser_raw.ml" + in + # 2119 "src/ocaml/preprocess/parser_raw.mly" ( Pmty_with(_1, _3) ) -# 42799 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos_xs_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 41963 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos_xs_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1341 "src/ocaml/preprocess/parser_raw.mly" ( mkmty ~loc:_sloc _1 ) -# 42809 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 41973 "src/ocaml/preprocess/parser_raw.ml" + + in + # 2127 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 42815 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.module_type)) - in +# 41979 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -42834,28 +41997,26 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v = - let _1 = - let _1 = + let _v : (Parsetree.module_type) = let _1 = + let _1 = # 2123 "src/ocaml/preprocess/parser_raw.mly" ( Pmty_extension _1 ) -# 42843 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 42005 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1341 "src/ocaml/preprocess/parser_raw.mly" ( mkmty ~loc:_sloc _1 ) -# 42851 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 42013 "src/ocaml/preprocess/parser_raw.ml" + + in + # 2127 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 42857 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.module_type)) - in +# 42019 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -42890,42 +42051,40 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined1_ in - let _v = + let _v : (Parsetree.module_type) = let _1 = let _1 = - let _1 = - let _3 = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let _3 = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 42905 "src/ocaml/preprocess/parser_raw.ml" - - in +# 42065 "src/ocaml/preprocess/parser_raw.ml" + in + # 2125 "src/ocaml/preprocess/parser_raw.mly" ( Pmty_strengthen (_1, _3) ) -# 42911 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__1_inlined1_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 42071 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__1_inlined1_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1341 "src/ocaml/preprocess/parser_raw.mly" ( mkmty ~loc:_sloc _1 ) -# 42921 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 42081 "src/ocaml/preprocess/parser_raw.ml" + + in + # 2127 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 42927 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.module_type)) - in +# 42087 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -42988,39 +42147,38 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined3_ in - let _v = - let attrs2 = - let _1 = _1_inlined3 in - + let _v : (Parsetree.module_type_declaration * string Location.loc option) = let attrs2 = + let _1 = _1_inlined3 in + # 5399 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 42998 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_attrs2_ = _endpos__1_inlined3_ in - let id = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 42156 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_attrs2_ = _endpos__1_inlined3_ in + let id = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 43010 "src/ocaml/preprocess/parser_raw.ml" - - in - let attrs1 = - let _1 = _1_inlined1 in - +# 42168 "src/ocaml/preprocess/parser_raw.ml" + + in + let attrs1 = + let _1 = _1_inlined1 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 43018 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos_attrs2_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - ( +# 42176 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos_attrs2_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2022 "src/ocaml/preprocess/parser_raw.mly" ( let attrs = attrs1 @ attrs2 in @@ -43028,9 +42186,8 @@ module Tables = struct let docs = symbol_docs _sloc in Mtd.mk id ?typ ~attrs ~loc ~docs, ext ) -# 43032 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.module_type_declaration * string Location.loc option)) - in +# 42190 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -43100,39 +42257,38 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined3_ in - let _v = - let attrs2 = - let _1 = _1_inlined3 in - + let _v : (Parsetree.module_type_declaration * string Location.loc option) = let attrs2 = + let _1 = _1_inlined3 in + # 5399 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 43110 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_attrs2_ = _endpos__1_inlined3_ in - let id = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 42266 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_attrs2_ = _endpos__1_inlined3_ in + let id = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 43122 "src/ocaml/preprocess/parser_raw.ml" - - in - let attrs1 = - let _1 = _1_inlined1 in - +# 42278 "src/ocaml/preprocess/parser_raw.ml" + + in + let attrs1 = + let _1 = _1_inlined1 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 43130 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos_attrs2_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - ( +# 42286 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos_attrs2_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2325 "src/ocaml/preprocess/parser_raw.mly" ( let attrs = attrs1 @ attrs2 in @@ -43140,9 +42296,8 @@ module Tables = struct let docs = symbol_docs _sloc in Mtd.mk id ~typ ~attrs ~loc ~docs, ext ) -# 43144 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.module_type_declaration * string Location.loc option)) - in +# 42300 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -43166,7 +42321,7 @@ module Tables = struct let _v : (Longident.t) = # 5168 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 43170 "src/ocaml/preprocess/parser_raw.ml" +# 42325 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -43184,7 +42339,7 @@ module Tables = struct let _v : (Asttypes.mutable_flag) = # 5249 "src/ocaml/preprocess/parser_raw.mly" ( Immutable ) -# 43188 "src/ocaml/preprocess/parser_raw.ml" +# 42343 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -43209,7 +42364,7 @@ module Tables = struct let _v : (Asttypes.mutable_flag) = # 5250 "src/ocaml/preprocess/parser_raw.mly" ( Mutable ) -# 43213 "src/ocaml/preprocess/parser_raw.ml" +# 42368 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -43227,7 +42382,7 @@ module Tables = struct let _v : (Asttypes.mutable_flag * Parsetree.modality Location.loc list) = # 5254 "src/ocaml/preprocess/parser_raw.mly" ( Immutable, [] ) -# 43231 "src/ocaml/preprocess/parser_raw.ml" +# 42386 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -43252,7 +42407,7 @@ module Tables = struct let _v : (Asttypes.mutable_flag * Parsetree.modality Location.loc list) = # 5256 "src/ocaml/preprocess/parser_raw.mly" ( Mutable, [] ) -# 43256 "src/ocaml/preprocess/parser_raw.ml" +# 42411 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -43274,16 +42429,14 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - ( + let _v : (Asttypes.mutable_flag * Parsetree.modality Location.loc list) = let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 5258 "src/ocaml/preprocess/parser_raw.mly" ( Immutable, [ mkloc (Modality "global") (make_loc _sloc)] ) -# 43285 "src/ocaml/preprocess/parser_raw.ml" - : (Asttypes.mutable_flag * Parsetree.modality Location.loc list)) - in +# 42439 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -43300,7 +42453,7 @@ module Tables = struct let _v : (Asttypes.mutable_flag * Asttypes.virtual_flag) = # 5270 "src/ocaml/preprocess/parser_raw.mly" ( Immutable, Concrete ) -# 43304 "src/ocaml/preprocess/parser_raw.ml" +# 42457 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -43325,7 +42478,7 @@ module Tables = struct let _v : (Asttypes.mutable_flag * Asttypes.virtual_flag) = # 5272 "src/ocaml/preprocess/parser_raw.mly" ( Mutable, Concrete ) -# 43329 "src/ocaml/preprocess/parser_raw.ml" +# 42482 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -43350,7 +42503,7 @@ module Tables = struct let _v : (Asttypes.mutable_flag * Asttypes.virtual_flag) = # 5274 "src/ocaml/preprocess/parser_raw.mly" ( Immutable, Virtual ) -# 43354 "src/ocaml/preprocess/parser_raw.ml" +# 42507 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -43382,7 +42535,7 @@ module Tables = struct let _v : (Asttypes.mutable_flag * Asttypes.virtual_flag) = # 5277 "src/ocaml/preprocess/parser_raw.mly" ( Mutable, Virtual ) -# 43386 "src/ocaml/preprocess/parser_raw.ml" +# 42539 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -43414,7 +42567,7 @@ module Tables = struct let _v : (Asttypes.mutable_flag * Asttypes.virtual_flag) = # 5277 "src/ocaml/preprocess/parser_raw.mly" ( Mutable, Virtual ) -# 43418 "src/ocaml/preprocess/parser_raw.ml" +# 42571 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -43446,7 +42599,7 @@ module Tables = struct let _v : (string) = # 5220 "src/ocaml/preprocess/parser_raw.mly" ( _2 ) -# 43450 "src/ocaml/preprocess/parser_raw.ml" +# 42603 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -43467,28 +42620,26 @@ module Tables = struct let _1 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 43471 "src/ocaml/preprocess/parser_raw.ml" +# 42624 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v = - let _1 = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let _v : (string Location.loc * Parsetree.jkind_annotation option) = let _1 = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 43484 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 42636 "src/ocaml/preprocess/parser_raw.ml" + + in + # 3704 "src/ocaml/preprocess/parser_raw.mly" ( _1, None ) -# 43490 "src/ocaml/preprocess/parser_raw.ml" - : (string Location.loc * Parsetree.jkind_annotation option)) - in +# 42642 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -43535,30 +42686,28 @@ module Tables = struct let _1_inlined1 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 43539 "src/ocaml/preprocess/parser_raw.ml" +# 42690 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__5_ in - let _v = - let name = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let _v : (string Location.loc * Parsetree.jkind_annotation option) = let name = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 43554 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 42704 "src/ocaml/preprocess/parser_raw.ml" + + in + # 3706 "src/ocaml/preprocess/parser_raw.mly" ( name, Some jkind ) -# 43560 "src/ocaml/preprocess/parser_raw.ml" - : (string Location.loc * Parsetree.jkind_annotation option)) - in +# 42710 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -43582,7 +42731,7 @@ module Tables = struct let _v : ((string Location.loc * Parsetree.jkind_annotation option) list) = # 3701 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 43586 "src/ocaml/preprocess/parser_raw.ml" +# 42735 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -43603,28 +42752,26 @@ module Tables = struct let _1 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 43607 "src/ocaml/preprocess/parser_raw.ml" +# 42756 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v = - let x = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let _v : (string Location.loc list) = let x = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 43620 "src/ocaml/preprocess/parser_raw.ml" - - in - ( -# 228 "" - ( [ x ] ) -# 43626 "src/ocaml/preprocess/parser_raw.ml" - : (string Location.loc list)) +# 42768 "src/ocaml/preprocess/parser_raw.ml" + in + +# 221 "" + ( [ x ] ) +# 42774 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -43651,28 +42798,26 @@ module Tables = struct let _1 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 43655 "src/ocaml/preprocess/parser_raw.ml" +# 42802 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_xs_ in - let _v = - let x = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let _v : (string Location.loc list) = let x = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 43668 "src/ocaml/preprocess/parser_raw.ml" - - in - ( -# 231 "" - ( x :: xs ) -# 43674 "src/ocaml/preprocess/parser_raw.ml" - : (string Location.loc list)) +# 42814 "src/ocaml/preprocess/parser_raw.ml" + in + +# 223 "" + ( x :: xs ) +# 42820 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -43692,28 +42837,26 @@ module Tables = struct let _1 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 43696 "src/ocaml/preprocess/parser_raw.ml" +# 42841 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v = - let x = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let _v : (Parsetree.modalities) = let x = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 4706 "src/ocaml/preprocess/parser_raw.mly" ( mkloc (Modality _1) (make_loc _sloc) ) -# 43709 "src/ocaml/preprocess/parser_raw.ml" - - in - ( -# 228 "" - ( [ x ] ) -# 43715 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.modalities)) +# 42853 "src/ocaml/preprocess/parser_raw.ml" + in + +# 221 "" + ( [ x ] ) +# 42859 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -43740,28 +42883,26 @@ module Tables = struct let _1 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 43744 "src/ocaml/preprocess/parser_raw.ml" +# 42887 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_xs_ in - let _v = - let x = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let _v : (Parsetree.modalities) = let x = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 4706 "src/ocaml/preprocess/parser_raw.mly" ( mkloc (Modality _1) (make_loc _sloc) ) -# 43757 "src/ocaml/preprocess/parser_raw.ml" - - in - ( -# 231 "" - ( x :: xs ) -# 43763 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.modalities)) +# 42899 "src/ocaml/preprocess/parser_raw.ml" + in + +# 223 "" + ( x :: xs ) +# 42905 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -43781,28 +42922,26 @@ module Tables = struct let _1 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 43785 "src/ocaml/preprocess/parser_raw.ml" +# 42926 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v = - let x = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let _v : (Parsetree.modes) = let x = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 4669 "src/ocaml/preprocess/parser_raw.mly" ( mkloc (Mode _1) (make_loc _sloc) ) -# 43798 "src/ocaml/preprocess/parser_raw.ml" - - in - ( -# 228 "" - ( [ x ] ) -# 43804 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.modes)) +# 42938 "src/ocaml/preprocess/parser_raw.ml" + in + +# 221 "" + ( [ x ] ) +# 42944 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -43829,28 +42968,26 @@ module Tables = struct let _1 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 43833 "src/ocaml/preprocess/parser_raw.ml" +# 42972 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_xs_ in - let _v = - let x = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let _v : (Parsetree.modes) = let x = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 4669 "src/ocaml/preprocess/parser_raw.mly" ( mkloc (Mode _1) (make_loc _sloc) ) -# 43846 "src/ocaml/preprocess/parser_raw.ml" - - in - ( -# 231 "" - ( x :: xs ) -# 43852 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.modes)) +# 42984 "src/ocaml/preprocess/parser_raw.ml" + in + +# 223 "" + ( x :: xs ) +# 42990 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -43871,23 +43008,21 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v = - let x = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let _v : (Parsetree.modes) = let x = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 4651 "src/ocaml/preprocess/parser_raw.mly" ( mkloc (Mode "local") (make_loc _sloc) ) -# 43883 "src/ocaml/preprocess/parser_raw.ml" - - in - ( -# 228 "" - ( [ x ] ) -# 43889 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.modes)) +# 43019 "src/ocaml/preprocess/parser_raw.ml" + in + +# 221 "" + ( [ x ] ) +# 43025 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -43908,23 +43043,21 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v = - let x = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let _v : (Parsetree.modes) = let x = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 4653 "src/ocaml/preprocess/parser_raw.mly" ( mkloc (Mode "unique") (make_loc _sloc) ) -# 43920 "src/ocaml/preprocess/parser_raw.ml" - - in - ( -# 228 "" - ( [ x ] ) -# 43926 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.modes)) +# 43054 "src/ocaml/preprocess/parser_raw.ml" + in + +# 221 "" + ( [ x ] ) +# 43060 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -43945,23 +43078,21 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v = - let x = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let _v : (Parsetree.modes) = let x = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 4655 "src/ocaml/preprocess/parser_raw.mly" ( mkloc (Mode "once") (make_loc _sloc) ) -# 43957 "src/ocaml/preprocess/parser_raw.ml" - - in - ( -# 228 "" - ( [ x ] ) -# 43963 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.modes)) +# 43089 "src/ocaml/preprocess/parser_raw.ml" + in + +# 221 "" + ( [ x ] ) +# 43095 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -43989,23 +43120,21 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_xs_ in - let _v = - let x = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let _v : (Parsetree.modes) = let x = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 4651 "src/ocaml/preprocess/parser_raw.mly" ( mkloc (Mode "local") (make_loc _sloc) ) -# 44001 "src/ocaml/preprocess/parser_raw.ml" - - in - ( -# 231 "" - ( x :: xs ) -# 44007 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.modes)) +# 43131 "src/ocaml/preprocess/parser_raw.ml" + in + +# 223 "" + ( x :: xs ) +# 43137 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -44033,23 +43162,21 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_xs_ in - let _v = - let x = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let _v : (Parsetree.modes) = let x = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 4653 "src/ocaml/preprocess/parser_raw.mly" ( mkloc (Mode "unique") (make_loc _sloc) ) -# 44045 "src/ocaml/preprocess/parser_raw.ml" - - in - ( -# 231 "" - ( x :: xs ) -# 44051 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.modes)) +# 43173 "src/ocaml/preprocess/parser_raw.ml" + in + +# 223 "" + ( x :: xs ) +# 43179 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -44077,23 +43204,21 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_xs_ in - let _v = - let x = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let _v : (Parsetree.modes) = let x = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 4655 "src/ocaml/preprocess/parser_raw.mly" ( mkloc (Mode "once") (make_loc _sloc) ) -# 44089 "src/ocaml/preprocess/parser_raw.ml" - - in - ( -# 231 "" - ( x :: xs ) -# 44095 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.modes)) +# 43215 "src/ocaml/preprocess/parser_raw.ml" + in + +# 223 "" + ( x :: xs ) +# 43221 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -44115,9 +43240,9 @@ module Tables = struct let _startpos = _startpos_x_ in let _endpos = _endpos_x_ in let _v : ((string Location.loc * Parsetree.jkind_annotation option) list) = -# 228 "" +# 221 "" ( [ x ] ) -# 44121 "src/ocaml/preprocess/parser_raw.ml" +# 43246 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -44147,9 +43272,9 @@ module Tables = struct let _startpos = _startpos_x_ in let _endpos = _endpos_xs_ in let _v : ((string Location.loc * Parsetree.jkind_annotation option) list) = -# 231 "" +# 223 "" ( x :: xs ) -# 44153 "src/ocaml/preprocess/parser_raw.ml" +# 43278 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -44170,23 +43295,21 @@ module Tables = struct let s : ( # 1141 "src/ocaml/preprocess/parser_raw.mly" (string * Location.t * string option) -# 44174 "src/ocaml/preprocess/parser_raw.ml" +# 43299 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic s in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_s_ in let _endpos = _endpos_s_ in - let _v = - let x = + let _v : (string list) = let x = # 5216 "src/ocaml/preprocess/parser_raw.mly" ( let body, _, _ = s in body ) -# 44183 "src/ocaml/preprocess/parser_raw.ml" - in - ( -# 228 "" +# 43307 "src/ocaml/preprocess/parser_raw.ml" + in + +# 221 "" ( [ x ] ) -# 44188 "src/ocaml/preprocess/parser_raw.ml" - : (string list)) - in +# 43312 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -44213,23 +43336,21 @@ module Tables = struct let s : ( # 1141 "src/ocaml/preprocess/parser_raw.mly" (string * Location.t * string option) -# 44217 "src/ocaml/preprocess/parser_raw.ml" +# 43340 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic s in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_s_ in let _endpos = _endpos_xs_ in - let _v = - let x = + let _v : (string list) = let x = # 5216 "src/ocaml/preprocess/parser_raw.mly" ( let body, _, _ = s in body ) -# 44226 "src/ocaml/preprocess/parser_raw.ml" - in - ( -# 231 "" +# 43348 "src/ocaml/preprocess/parser_raw.ml" + in + +# 223 "" ( x :: xs ) -# 44231 "src/ocaml/preprocess/parser_raw.ml" - : (string list)) - in +# 43353 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -44250,18 +43371,16 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_ty_ in let _endpos = _endpos_ty_ in - let _v = - let priv = + let _v : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) = let priv = # 5245 "src/ocaml/preprocess/parser_raw.mly" ( Public ) -# 44258 "src/ocaml/preprocess/parser_raw.ml" - in - ( +# 43378 "src/ocaml/preprocess/parser_raw.ml" + in + # 4107 "src/ocaml/preprocess/parser_raw.mly" ( (Ptype_abstract, priv, Some ty) ) -# 44263 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option)) - in +# 43383 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -44289,18 +43408,16 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_ty_ in - let _v = - let priv = + let _v : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) = let priv = # 5246 "src/ocaml/preprocess/parser_raw.mly" ( Private ) -# 44297 "src/ocaml/preprocess/parser_raw.ml" - in - ( +# 43415 "src/ocaml/preprocess/parser_raw.ml" + in + # 4107 "src/ocaml/preprocess/parser_raw.mly" ( (Ptype_abstract, priv, Some ty) ) -# 44302 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option)) - in +# 43420 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -44321,30 +43438,28 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_cs_ in let _endpos = _endpos_cs_ in - let _v = - let priv = + let _v : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) = let priv = # 5245 "src/ocaml/preprocess/parser_raw.mly" ( Public ) -# 44329 "src/ocaml/preprocess/parser_raw.ml" - in - let oty = - let _1 = -# 123 "" +# 43445 "src/ocaml/preprocess/parser_raw.ml" + in + let oty = + let _1 = +# 124 "" ( None ) -# 44335 "src/ocaml/preprocess/parser_raw.ml" - in - +# 43451 "src/ocaml/preprocess/parser_raw.ml" + in + # 4127 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 44340 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 43456 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4111 "src/ocaml/preprocess/parser_raw.mly" ( (Ptype_variant cs, priv, oty) ) -# 44346 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option)) - in +# 43462 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -44372,30 +43487,28 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_cs_ in - let _v = - let priv = + let _v : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) = let priv = # 5246 "src/ocaml/preprocess/parser_raw.mly" ( Private ) -# 44380 "src/ocaml/preprocess/parser_raw.ml" - in - let oty = - let _1 = -# 123 "" +# 43494 "src/ocaml/preprocess/parser_raw.ml" + in + let oty = + let _1 = +# 124 "" ( None ) -# 44386 "src/ocaml/preprocess/parser_raw.ml" - in - +# 43500 "src/ocaml/preprocess/parser_raw.ml" + in + # 4127 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 44391 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 43505 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4111 "src/ocaml/preprocess/parser_raw.mly" ( (Ptype_variant cs, priv, oty) ) -# 44397 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option)) - in +# 43511 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -44430,37 +43543,35 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_x_ in let _endpos = _endpos_cs_ in - let _v = - let priv = + let _v : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) = let priv = # 5245 "src/ocaml/preprocess/parser_raw.mly" ( Public ) -# 44438 "src/ocaml/preprocess/parser_raw.ml" - in - let oty = - let _1 = - let x = -# 196 "" +# 43550 "src/ocaml/preprocess/parser_raw.ml" + in + let oty = + let _1 = + let x = +# 191 "" ( x ) -# 44445 "src/ocaml/preprocess/parser_raw.ml" - in - +# 43557 "src/ocaml/preprocess/parser_raw.ml" + in + # 126 "" ( Some x ) -# 44450 "src/ocaml/preprocess/parser_raw.ml" - - in +# 43562 "src/ocaml/preprocess/parser_raw.ml" + in + # 4127 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 44456 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 43568 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4111 "src/ocaml/preprocess/parser_raw.mly" ( (Ptype_variant cs, priv, oty) ) -# 44462 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option)) - in +# 43574 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -44502,37 +43613,35 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_x_ in let _endpos = _endpos_cs_ in - let _v = - let priv = + let _v : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) = let priv = # 5246 "src/ocaml/preprocess/parser_raw.mly" ( Private ) -# 44510 "src/ocaml/preprocess/parser_raw.ml" - in - let oty = - let _1 = - let x = -# 196 "" +# 43620 "src/ocaml/preprocess/parser_raw.ml" + in + let oty = + let _1 = + let x = +# 191 "" ( x ) -# 44517 "src/ocaml/preprocess/parser_raw.ml" - in - +# 43627 "src/ocaml/preprocess/parser_raw.ml" + in + # 126 "" ( Some x ) -# 44522 "src/ocaml/preprocess/parser_raw.ml" - - in +# 43632 "src/ocaml/preprocess/parser_raw.ml" + in + # 4127 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 44528 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 43638 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4111 "src/ocaml/preprocess/parser_raw.mly" ( (Ptype_variant cs, priv, oty) ) -# 44534 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option)) - in +# 43644 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -44553,30 +43662,28 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__3_ in let _endpos = _endpos__3_ in - let _v = - let priv = + let _v : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) = let priv = # 5245 "src/ocaml/preprocess/parser_raw.mly" ( Public ) -# 44561 "src/ocaml/preprocess/parser_raw.ml" - in - let oty = - let _1 = -# 123 "" +# 43669 "src/ocaml/preprocess/parser_raw.ml" + in + let oty = + let _1 = +# 124 "" ( None ) -# 44567 "src/ocaml/preprocess/parser_raw.ml" - in - +# 43675 "src/ocaml/preprocess/parser_raw.ml" + in + # 4127 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 44572 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 43680 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4115 "src/ocaml/preprocess/parser_raw.mly" ( (Ptype_open, priv, oty) ) -# 44578 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option)) - in +# 43686 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -44604,30 +43711,28 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in - let _v = - let priv = + let _v : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) = let priv = # 5246 "src/ocaml/preprocess/parser_raw.mly" ( Private ) -# 44612 "src/ocaml/preprocess/parser_raw.ml" - in - let oty = - let _1 = -# 123 "" +# 43718 "src/ocaml/preprocess/parser_raw.ml" + in + let oty = + let _1 = +# 124 "" ( None ) -# 44618 "src/ocaml/preprocess/parser_raw.ml" - in - +# 43724 "src/ocaml/preprocess/parser_raw.ml" + in + # 4127 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 44623 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 43729 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4115 "src/ocaml/preprocess/parser_raw.mly" ( (Ptype_open, priv, oty) ) -# 44629 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option)) - in +# 43735 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -44662,37 +43767,35 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_x_ in let _endpos = _endpos__3_ in - let _v = - let priv = + let _v : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) = let priv = # 5245 "src/ocaml/preprocess/parser_raw.mly" ( Public ) -# 44670 "src/ocaml/preprocess/parser_raw.ml" - in - let oty = - let _1 = - let x = -# 196 "" +# 43774 "src/ocaml/preprocess/parser_raw.ml" + in + let oty = + let _1 = + let x = +# 191 "" ( x ) -# 44677 "src/ocaml/preprocess/parser_raw.ml" - in - +# 43781 "src/ocaml/preprocess/parser_raw.ml" + in + # 126 "" ( Some x ) -# 44682 "src/ocaml/preprocess/parser_raw.ml" - - in +# 43786 "src/ocaml/preprocess/parser_raw.ml" + in + # 4127 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 44688 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 43792 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4115 "src/ocaml/preprocess/parser_raw.mly" ( (Ptype_open, priv, oty) ) -# 44694 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option)) - in +# 43798 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -44734,37 +43837,35 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_x_ in let _endpos = _endpos__3_ in - let _v = - let priv = + let _v : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) = let priv = # 5246 "src/ocaml/preprocess/parser_raw.mly" ( Private ) -# 44742 "src/ocaml/preprocess/parser_raw.ml" - in - let oty = - let _1 = - let x = -# 196 "" +# 43844 "src/ocaml/preprocess/parser_raw.ml" + in + let oty = + let _1 = + let x = +# 191 "" ( x ) -# 44749 "src/ocaml/preprocess/parser_raw.ml" - in - +# 43851 "src/ocaml/preprocess/parser_raw.ml" + in + # 126 "" ( Some x ) -# 44754 "src/ocaml/preprocess/parser_raw.ml" - - in +# 43856 "src/ocaml/preprocess/parser_raw.ml" + in + # 4127 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 44760 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 43862 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4115 "src/ocaml/preprocess/parser_raw.mly" ( (Ptype_open, priv, oty) ) -# 44766 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option)) - in +# 43868 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -44799,30 +43900,28 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__3_ in let _endpos = _endpos__5_ in - let _v = - let priv = + let _v : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) = let priv = # 5245 "src/ocaml/preprocess/parser_raw.mly" ( Public ) -# 44807 "src/ocaml/preprocess/parser_raw.ml" - in - let oty = - let _1 = -# 123 "" +# 43907 "src/ocaml/preprocess/parser_raw.ml" + in + let oty = + let _1 = +# 124 "" ( None ) -# 44813 "src/ocaml/preprocess/parser_raw.ml" - in - +# 43913 "src/ocaml/preprocess/parser_raw.ml" + in + # 4127 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 44818 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 43918 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4119 "src/ocaml/preprocess/parser_raw.mly" ( (Ptype_record ls, priv, oty) ) -# 44824 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option)) - in +# 43924 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -44864,30 +43963,28 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__5_ in - let _v = - let priv = + let _v : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) = let priv = # 5246 "src/ocaml/preprocess/parser_raw.mly" ( Private ) -# 44872 "src/ocaml/preprocess/parser_raw.ml" - in - let oty = - let _1 = -# 123 "" +# 43970 "src/ocaml/preprocess/parser_raw.ml" + in + let oty = + let _1 = +# 124 "" ( None ) -# 44878 "src/ocaml/preprocess/parser_raw.ml" - in - +# 43976 "src/ocaml/preprocess/parser_raw.ml" + in + # 4127 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 44883 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 43981 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4119 "src/ocaml/preprocess/parser_raw.mly" ( (Ptype_record ls, priv, oty) ) -# 44889 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option)) - in +# 43987 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -44936,37 +44033,35 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_x_ in let _endpos = _endpos__5_ in - let _v = - let priv = + let _v : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) = let priv = # 5245 "src/ocaml/preprocess/parser_raw.mly" ( Public ) -# 44944 "src/ocaml/preprocess/parser_raw.ml" - in - let oty = - let _1 = - let x = -# 196 "" +# 44040 "src/ocaml/preprocess/parser_raw.ml" + in + let oty = + let _1 = + let x = +# 191 "" ( x ) -# 44951 "src/ocaml/preprocess/parser_raw.ml" - in - +# 44047 "src/ocaml/preprocess/parser_raw.ml" + in + # 126 "" ( Some x ) -# 44956 "src/ocaml/preprocess/parser_raw.ml" - - in +# 44052 "src/ocaml/preprocess/parser_raw.ml" + in + # 4127 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 44962 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 44058 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4119 "src/ocaml/preprocess/parser_raw.mly" ( (Ptype_record ls, priv, oty) ) -# 44968 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option)) - in +# 44064 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -45022,37 +44117,35 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_x_ in let _endpos = _endpos__5_ in - let _v = - let priv = + let _v : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) = let priv = # 5246 "src/ocaml/preprocess/parser_raw.mly" ( Private ) -# 45030 "src/ocaml/preprocess/parser_raw.ml" - in - let oty = - let _1 = - let x = -# 196 "" +# 44124 "src/ocaml/preprocess/parser_raw.ml" + in + let oty = + let _1 = + let x = +# 191 "" ( x ) -# 45037 "src/ocaml/preprocess/parser_raw.ml" - in - +# 44131 "src/ocaml/preprocess/parser_raw.ml" + in + # 126 "" ( Some x ) -# 45042 "src/ocaml/preprocess/parser_raw.ml" - - in +# 44136 "src/ocaml/preprocess/parser_raw.ml" + in + # 4127 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 45048 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 44142 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4119 "src/ocaml/preprocess/parser_raw.mly" ( (Ptype_record ls, priv, oty) ) -# 45054 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option)) - in +# 44148 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -45087,30 +44180,28 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__3_ in let _endpos = _endpos__5_ in - let _v = - let priv = + let _v : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) = let priv = # 5245 "src/ocaml/preprocess/parser_raw.mly" ( Public ) -# 45095 "src/ocaml/preprocess/parser_raw.ml" - in - let oty = - let _1 = -# 123 "" +# 44187 "src/ocaml/preprocess/parser_raw.ml" + in + let oty = + let _1 = +# 124 "" ( None ) -# 45101 "src/ocaml/preprocess/parser_raw.ml" - in - +# 44193 "src/ocaml/preprocess/parser_raw.ml" + in + # 4127 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 45106 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 44198 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4123 "src/ocaml/preprocess/parser_raw.mly" ( (Ptype_record_unboxed_product ls, priv, oty) ) -# 45112 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option)) - in +# 44204 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -45152,30 +44243,28 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__5_ in - let _v = - let priv = + let _v : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) = let priv = # 5246 "src/ocaml/preprocess/parser_raw.mly" ( Private ) -# 45160 "src/ocaml/preprocess/parser_raw.ml" - in - let oty = - let _1 = -# 123 "" +# 44250 "src/ocaml/preprocess/parser_raw.ml" + in + let oty = + let _1 = +# 124 "" ( None ) -# 45166 "src/ocaml/preprocess/parser_raw.ml" - in - +# 44256 "src/ocaml/preprocess/parser_raw.ml" + in + # 4127 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 45171 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 44261 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4123 "src/ocaml/preprocess/parser_raw.mly" ( (Ptype_record_unboxed_product ls, priv, oty) ) -# 45177 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option)) - in +# 44267 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -45224,37 +44313,35 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_x_ in let _endpos = _endpos__5_ in - let _v = - let priv = + let _v : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) = let priv = # 5245 "src/ocaml/preprocess/parser_raw.mly" ( Public ) -# 45232 "src/ocaml/preprocess/parser_raw.ml" - in - let oty = - let _1 = - let x = -# 196 "" +# 44320 "src/ocaml/preprocess/parser_raw.ml" + in + let oty = + let _1 = + let x = +# 191 "" ( x ) -# 45239 "src/ocaml/preprocess/parser_raw.ml" - in - +# 44327 "src/ocaml/preprocess/parser_raw.ml" + in + # 126 "" ( Some x ) -# 45244 "src/ocaml/preprocess/parser_raw.ml" - - in +# 44332 "src/ocaml/preprocess/parser_raw.ml" + in + # 4127 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 45250 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 44338 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4123 "src/ocaml/preprocess/parser_raw.mly" ( (Ptype_record_unboxed_product ls, priv, oty) ) -# 45256 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option)) - in +# 44344 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -45310,37 +44397,35 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_x_ in let _endpos = _endpos__5_ in - let _v = - let priv = + let _v : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) = let priv = # 5246 "src/ocaml/preprocess/parser_raw.mly" ( Private ) -# 45318 "src/ocaml/preprocess/parser_raw.ml" - in - let oty = - let _1 = - let x = -# 196 "" +# 44404 "src/ocaml/preprocess/parser_raw.ml" + in + let oty = + let _1 = + let x = +# 191 "" ( x ) -# 45325 "src/ocaml/preprocess/parser_raw.ml" - in - +# 44411 "src/ocaml/preprocess/parser_raw.ml" + in + # 126 "" ( Some x ) -# 45330 "src/ocaml/preprocess/parser_raw.ml" - - in +# 44416 "src/ocaml/preprocess/parser_raw.ml" + in + # 4127 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 45336 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 44422 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4123 "src/ocaml/preprocess/parser_raw.mly" ( (Ptype_record_unboxed_product ls, priv, oty) ) -# 45342 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option)) - in +# 44428 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -45375,29 +44460,27 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in - let _v = - let _1 = - let _1 = + let _v : (Parsetree.core_type) = let _1 = + let _1 = # 4852 "src/ocaml/preprocess/parser_raw.mly" ( let (f, c) = meth_list in Ptyp_object (f, c) ) -# 45384 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos__1_ = _endpos__3_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 44468 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__3_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 45393 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 44477 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4856 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 45399 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type)) - in +# 44483 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -45425,29 +44508,27 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in - let _v = - let _1 = - let _1 = + let _v : (Parsetree.core_type) = let _1 = + let _1 = # 4854 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_object ([], Closed) ) -# 45434 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos__1_ = _endpos__2_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 44516 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__2_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 45443 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 44525 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4856 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 45449 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type)) - in +# 44531 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -45496,33 +44577,32 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined2_ in - let _v = - let attrs2 = - let _1 = _1_inlined2 in - + let _v : (Parsetree.module_expr Parsetree.open_infos * string Location.loc option) = let attrs2 = + let _1 = _1_inlined2 in + # 5399 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 45506 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_attrs2_ = _endpos__1_inlined2_ in - let attrs1 = - let _1 = _1_inlined1 in - +# 44586 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_attrs2_ = _endpos__1_inlined2_ in + let attrs1 = + let _1 = _1_inlined1 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 45515 "src/ocaml/preprocess/parser_raw.ml" - - in - let override = +# 44595 "src/ocaml/preprocess/parser_raw.ml" + + in + let override = # 5304 "src/ocaml/preprocess/parser_raw.mly" ( Fresh ) -# 45521 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos_attrs2_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - ( +# 44601 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos_attrs2_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2041 "src/ocaml/preprocess/parser_raw.mly" ( let attrs = attrs1 @ attrs2 in @@ -45530,9 +44610,8 @@ module Tables = struct let docs = symbol_docs _sloc in Opn.mk me ~override ~attrs ~loc ~docs, ext ) -# 45534 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.module_expr Parsetree.open_infos * string Location.loc option)) - in +# 44614 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -45588,33 +44667,32 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined3_ in - let _v = - let attrs2 = - let _1 = _1_inlined3 in - + let _v : (Parsetree.module_expr Parsetree.open_infos * string Location.loc option) = let attrs2 = + let _1 = _1_inlined3 in + # 5399 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 45598 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_attrs2_ = _endpos__1_inlined3_ in - let attrs1 = - let _1 = _1_inlined2 in - +# 44676 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_attrs2_ = _endpos__1_inlined3_ in + let attrs1 = + let _1 = _1_inlined2 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 45607 "src/ocaml/preprocess/parser_raw.ml" - - in - let override = +# 44685 "src/ocaml/preprocess/parser_raw.ml" + + in + let override = # 5305 "src/ocaml/preprocess/parser_raw.mly" ( Override ) -# 45613 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos_attrs2_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - ( +# 44691 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos_attrs2_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2041 "src/ocaml/preprocess/parser_raw.mly" ( let attrs = attrs1 @ attrs2 in @@ -45622,9 +44700,8 @@ module Tables = struct let docs = symbol_docs _sloc in Opn.mk me ~override ~attrs ~loc ~docs, ext ) -# 45626 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.module_expr Parsetree.open_infos * string Location.loc option)) - in +# 44704 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -45673,44 +44750,43 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined3_ in - let _v = - let attrs2 = - let _1 = _1_inlined3 in - + let _v : (Longident.t Location.loc Parsetree.open_infos * string Location.loc option) = let attrs2 = + let _1 = _1_inlined3 in + # 5399 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 45683 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_attrs2_ = _endpos__1_inlined3_ in - let id = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 44759 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_attrs2_ = _endpos__1_inlined3_ in + let id = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 45695 "src/ocaml/preprocess/parser_raw.ml" - - in - let attrs1 = - let _1 = _1_inlined1 in - +# 44771 "src/ocaml/preprocess/parser_raw.ml" + + in + let attrs1 = + let _1 = _1_inlined1 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 45703 "src/ocaml/preprocess/parser_raw.ml" - - in - let override = +# 44779 "src/ocaml/preprocess/parser_raw.ml" + + in + let override = # 5304 "src/ocaml/preprocess/parser_raw.mly" ( Fresh ) -# 45709 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos_attrs2_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - ( +# 44785 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos_attrs2_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2056 "src/ocaml/preprocess/parser_raw.mly" ( let attrs = attrs1 @ attrs2 in @@ -45718,9 +44794,8 @@ module Tables = struct let docs = symbol_docs _sloc in Opn.mk id ~override ~attrs ~loc ~docs, ext ) -# 45722 "src/ocaml/preprocess/parser_raw.ml" - : (Longident.t Location.loc Parsetree.open_infos * string Location.loc option)) - in +# 44798 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -45776,44 +44851,43 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined4_ in - let _v = - let attrs2 = - let _1 = _1_inlined4 in - + let _v : (Longident.t Location.loc Parsetree.open_infos * string Location.loc option) = let attrs2 = + let _1 = _1_inlined4 in + # 5399 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 45786 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_attrs2_ = _endpos__1_inlined4_ in - let id = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined3_, _startpos__1_inlined3_, _1_inlined3) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 44860 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_attrs2_ = _endpos__1_inlined4_ in + let id = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined3_, _startpos__1_inlined3_, _1_inlined3) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 45798 "src/ocaml/preprocess/parser_raw.ml" - - in - let attrs1 = - let _1 = _1_inlined2 in - +# 44872 "src/ocaml/preprocess/parser_raw.ml" + + in + let attrs1 = + let _1 = _1_inlined2 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 45806 "src/ocaml/preprocess/parser_raw.ml" - - in - let override = +# 44880 "src/ocaml/preprocess/parser_raw.ml" + + in + let override = # 5305 "src/ocaml/preprocess/parser_raw.mly" ( Override ) -# 45812 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos_attrs2_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - ( +# 44886 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos_attrs2_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2056 "src/ocaml/preprocess/parser_raw.mly" ( let attrs = attrs1 @ attrs2 in @@ -45821,9 +44895,8 @@ module Tables = struct let docs = symbol_docs _sloc in Opn.mk id ~override ~attrs ~loc ~docs, ext ) -# 45825 "src/ocaml/preprocess/parser_raw.ml" - : (Longident.t Location.loc Parsetree.open_infos * string Location.loc option)) - in +# 44899 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -45843,7 +44916,7 @@ module Tables = struct let _1 : ( # 1124 "src/ocaml/preprocess/parser_raw.mly" (string) -# 45847 "src/ocaml/preprocess/parser_raw.ml" +# 44920 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -45851,7 +44924,7 @@ module Tables = struct let _v : (string) = # 5065 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 45855 "src/ocaml/preprocess/parser_raw.ml" +# 44928 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -45872,7 +44945,7 @@ module Tables = struct let _1 : ( # 1074 "src/ocaml/preprocess/parser_raw.mly" (string) -# 45876 "src/ocaml/preprocess/parser_raw.ml" +# 44949 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -45880,7 +44953,7 @@ module Tables = struct let _v : (string) = # 5066 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 45884 "src/ocaml/preprocess/parser_raw.ml" +# 44957 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -45901,7 +44974,7 @@ module Tables = struct let _1 : ( # 1075 "src/ocaml/preprocess/parser_raw.mly" (string) -# 45905 "src/ocaml/preprocess/parser_raw.ml" +# 44978 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -45909,7 +44982,7 @@ module Tables = struct let _v : (string) = # 5067 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 45913 "src/ocaml/preprocess/parser_raw.ml" +# 44986 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -45951,7 +45024,7 @@ module Tables = struct let _1 : ( # 1073 "src/ocaml/preprocess/parser_raw.mly" (string) -# 45955 "src/ocaml/preprocess/parser_raw.ml" +# 45028 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -45959,7 +45032,7 @@ module Tables = struct let _v : (string) = # 5068 "src/ocaml/preprocess/parser_raw.mly" ( "."^ _1 ^"(" ^ _3 ^ ")" ) -# 45963 "src/ocaml/preprocess/parser_raw.ml" +# 45036 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -46008,7 +45081,7 @@ module Tables = struct let _1 : ( # 1073 "src/ocaml/preprocess/parser_raw.mly" (string) -# 46012 "src/ocaml/preprocess/parser_raw.ml" +# 45085 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -46016,7 +45089,7 @@ module Tables = struct let _v : (string) = # 5069 "src/ocaml/preprocess/parser_raw.mly" ( "."^ _1 ^ "(" ^ _3 ^ ")<-" ) -# 46020 "src/ocaml/preprocess/parser_raw.ml" +# 45093 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -46058,7 +45131,7 @@ module Tables = struct let _1 : ( # 1073 "src/ocaml/preprocess/parser_raw.mly" (string) -# 46062 "src/ocaml/preprocess/parser_raw.ml" +# 45135 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -46066,7 +45139,7 @@ module Tables = struct let _v : (string) = # 5070 "src/ocaml/preprocess/parser_raw.mly" ( "."^ _1 ^"[" ^ _3 ^ "]" ) -# 46070 "src/ocaml/preprocess/parser_raw.ml" +# 45143 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -46115,7 +45188,7 @@ module Tables = struct let _1 : ( # 1073 "src/ocaml/preprocess/parser_raw.mly" (string) -# 46119 "src/ocaml/preprocess/parser_raw.ml" +# 45192 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -46123,7 +45196,7 @@ module Tables = struct let _v : (string) = # 5071 "src/ocaml/preprocess/parser_raw.mly" ( "."^ _1 ^ "[" ^ _3 ^ "]<-" ) -# 46127 "src/ocaml/preprocess/parser_raw.ml" +# 45200 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -46165,7 +45238,7 @@ module Tables = struct let _1 : ( # 1073 "src/ocaml/preprocess/parser_raw.mly" (string) -# 46169 "src/ocaml/preprocess/parser_raw.ml" +# 45242 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -46173,7 +45246,7 @@ module Tables = struct let _v : (string) = # 5072 "src/ocaml/preprocess/parser_raw.mly" ( "."^ _1 ^"{" ^ _3 ^ "}" ) -# 46177 "src/ocaml/preprocess/parser_raw.ml" +# 45250 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -46222,7 +45295,7 @@ module Tables = struct let _1 : ( # 1073 "src/ocaml/preprocess/parser_raw.mly" (string) -# 46226 "src/ocaml/preprocess/parser_raw.ml" +# 45299 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -46230,7 +45303,7 @@ module Tables = struct let _v : (string) = # 5073 "src/ocaml/preprocess/parser_raw.mly" ( "."^ _1 ^ "{" ^ _3 ^ "}<-" ) -# 46234 "src/ocaml/preprocess/parser_raw.ml" +# 45307 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -46251,7 +45324,7 @@ module Tables = struct let _1 : ( # 1137 "src/ocaml/preprocess/parser_raw.mly" (string) -# 46255 "src/ocaml/preprocess/parser_raw.ml" +# 45328 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -46259,7 +45332,7 @@ module Tables = struct let _v : (string) = # 5074 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 46263 "src/ocaml/preprocess/parser_raw.ml" +# 45336 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -46284,7 +45357,7 @@ module Tables = struct let _v : (string) = # 5075 "src/ocaml/preprocess/parser_raw.mly" ( "!" ) -# 46288 "src/ocaml/preprocess/parser_raw.ml" +# 45361 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -46305,23 +45378,21 @@ module Tables = struct let op : ( # 1066 "src/ocaml/preprocess/parser_raw.mly" (string) -# 46309 "src/ocaml/preprocess/parser_raw.ml" +# 45382 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic op in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_op_ in let _endpos = _endpos_op_ in - let _v = - let _1 = + let _v : (string) = let _1 = # 5083 "src/ocaml/preprocess/parser_raw.mly" ( op ) -# 46318 "src/ocaml/preprocess/parser_raw.ml" - in - ( +# 45390 "src/ocaml/preprocess/parser_raw.ml" + in + # 5076 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 46323 "src/ocaml/preprocess/parser_raw.ml" - : (string)) - in +# 45395 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -46342,18 +45413,16 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v = - let _1 = + let _v : (string) = let _1 = # 5085 "src/ocaml/preprocess/parser_raw.mly" ("@") -# 46350 "src/ocaml/preprocess/parser_raw.ml" - in - ( +# 45420 "src/ocaml/preprocess/parser_raw.ml" + in + # 5076 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 46355 "src/ocaml/preprocess/parser_raw.ml" - : (string)) - in +# 45425 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -46374,18 +45443,16 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v = - let _1 = + let _v : (string) = let _1 = # 5086 "src/ocaml/preprocess/parser_raw.mly" ("@@") -# 46382 "src/ocaml/preprocess/parser_raw.ml" - in - ( +# 45450 "src/ocaml/preprocess/parser_raw.ml" + in + # 5076 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 46387 "src/ocaml/preprocess/parser_raw.ml" - : (string)) - in +# 45455 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -46405,23 +45472,21 @@ module Tables = struct let op : ( # 1069 "src/ocaml/preprocess/parser_raw.mly" (string) -# 46409 "src/ocaml/preprocess/parser_raw.ml" +# 45476 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic op in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_op_ in let _endpos = _endpos_op_ in - let _v = - let _1 = + let _v : (string) = let _1 = # 5087 "src/ocaml/preprocess/parser_raw.mly" ( op ) -# 46418 "src/ocaml/preprocess/parser_raw.ml" - in - ( +# 45484 "src/ocaml/preprocess/parser_raw.ml" + in + # 5076 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 46423 "src/ocaml/preprocess/parser_raw.ml" - : (string)) - in +# 45489 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -46441,23 +45506,21 @@ module Tables = struct let op : ( # 1070 "src/ocaml/preprocess/parser_raw.mly" (string) -# 46445 "src/ocaml/preprocess/parser_raw.ml" +# 45510 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic op in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_op_ in let _endpos = _endpos_op_ in - let _v = - let _1 = + let _v : (string) = let _1 = # 5088 "src/ocaml/preprocess/parser_raw.mly" ( op ) -# 46454 "src/ocaml/preprocess/parser_raw.ml" - in - ( +# 45518 "src/ocaml/preprocess/parser_raw.ml" + in + # 5076 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 46459 "src/ocaml/preprocess/parser_raw.ml" - : (string)) - in +# 45523 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -46477,30 +45540,28 @@ module Tables = struct let op : ( # 1071 "src/ocaml/preprocess/parser_raw.mly" (string) -# 46481 "src/ocaml/preprocess/parser_raw.ml" +# 45544 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic op in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_op_ in let _endpos = _endpos_op_ in - let _v = - let _1 = - let op = + let _v : (string) = let _1 = + let op = # 5079 "src/ocaml/preprocess/parser_raw.mly" ( op ) -# 46491 "src/ocaml/preprocess/parser_raw.ml" - in - +# 45553 "src/ocaml/preprocess/parser_raw.ml" + in + # 5089 "src/ocaml/preprocess/parser_raw.mly" ( op ) -# 46496 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 45558 "src/ocaml/preprocess/parser_raw.ml" + + in + # 5076 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 46502 "src/ocaml/preprocess/parser_raw.ml" - : (string)) - in +# 45564 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -46521,25 +45582,23 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v = - let _1 = - let op = + let _v : (string) = let _1 = + let op = # 5080 "src/ocaml/preprocess/parser_raw.mly" ( "mod" ) -# 46530 "src/ocaml/preprocess/parser_raw.ml" - in - +# 45590 "src/ocaml/preprocess/parser_raw.ml" + in + # 5089 "src/ocaml/preprocess/parser_raw.mly" ( op ) -# 46535 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 45595 "src/ocaml/preprocess/parser_raw.ml" + + in + # 5076 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 46541 "src/ocaml/preprocess/parser_raw.ml" - : (string)) - in +# 45601 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -46559,23 +45618,21 @@ module Tables = struct let op : ( # 1072 "src/ocaml/preprocess/parser_raw.mly" (string) -# 46563 "src/ocaml/preprocess/parser_raw.ml" +# 45622 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic op in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_op_ in let _endpos = _endpos_op_ in - let _v = - let _1 = + let _v : (string) = let _1 = # 5090 "src/ocaml/preprocess/parser_raw.mly" ( op ) -# 46572 "src/ocaml/preprocess/parser_raw.ml" - in - ( +# 45630 "src/ocaml/preprocess/parser_raw.ml" + in + # 5076 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 46577 "src/ocaml/preprocess/parser_raw.ml" - : (string)) - in +# 45635 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -46596,18 +45653,16 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v = - let _1 = + let _v : (string) = let _1 = # 5091 "src/ocaml/preprocess/parser_raw.mly" ("+") -# 46604 "src/ocaml/preprocess/parser_raw.ml" - in - ( +# 45660 "src/ocaml/preprocess/parser_raw.ml" + in + # 5076 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 46609 "src/ocaml/preprocess/parser_raw.ml" - : (string)) - in +# 45665 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -46628,18 +45683,16 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v = - let _1 = + let _v : (string) = let _1 = # 5092 "src/ocaml/preprocess/parser_raw.mly" ("+.") -# 46636 "src/ocaml/preprocess/parser_raw.ml" - in - ( +# 45690 "src/ocaml/preprocess/parser_raw.ml" + in + # 5076 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 46641 "src/ocaml/preprocess/parser_raw.ml" - : (string)) - in +# 45695 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -46660,18 +45713,16 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v = - let _1 = + let _v : (string) = let _1 = # 5093 "src/ocaml/preprocess/parser_raw.mly" ("+=") -# 46668 "src/ocaml/preprocess/parser_raw.ml" - in - ( +# 45720 "src/ocaml/preprocess/parser_raw.ml" + in + # 5076 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 46673 "src/ocaml/preprocess/parser_raw.ml" - : (string)) - in +# 45725 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -46692,18 +45743,16 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v = - let _1 = + let _v : (string) = let _1 = # 5094 "src/ocaml/preprocess/parser_raw.mly" ("-") -# 46700 "src/ocaml/preprocess/parser_raw.ml" - in - ( +# 45750 "src/ocaml/preprocess/parser_raw.ml" + in + # 5076 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 46705 "src/ocaml/preprocess/parser_raw.ml" - : (string)) - in +# 45755 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -46724,18 +45773,16 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v = - let _1 = + let _v : (string) = let _1 = # 5095 "src/ocaml/preprocess/parser_raw.mly" ("-.") -# 46732 "src/ocaml/preprocess/parser_raw.ml" - in - ( +# 45780 "src/ocaml/preprocess/parser_raw.ml" + in + # 5076 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 46737 "src/ocaml/preprocess/parser_raw.ml" - : (string)) - in +# 45785 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -46756,18 +45803,16 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v = - let _1 = + let _v : (string) = let _1 = # 5096 "src/ocaml/preprocess/parser_raw.mly" ("*") -# 46764 "src/ocaml/preprocess/parser_raw.ml" - in - ( +# 45810 "src/ocaml/preprocess/parser_raw.ml" + in + # 5076 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 46769 "src/ocaml/preprocess/parser_raw.ml" - : (string)) - in +# 45815 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -46788,18 +45833,16 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v = - let _1 = + let _v : (string) = let _1 = # 5097 "src/ocaml/preprocess/parser_raw.mly" ("%") -# 46796 "src/ocaml/preprocess/parser_raw.ml" - in - ( +# 45840 "src/ocaml/preprocess/parser_raw.ml" + in + # 5076 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 46801 "src/ocaml/preprocess/parser_raw.ml" - : (string)) - in +# 45845 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -46820,18 +45863,16 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v = - let _1 = + let _v : (string) = let _1 = # 5098 "src/ocaml/preprocess/parser_raw.mly" ("=") -# 46828 "src/ocaml/preprocess/parser_raw.ml" - in - ( +# 45870 "src/ocaml/preprocess/parser_raw.ml" + in + # 5076 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 46833 "src/ocaml/preprocess/parser_raw.ml" - : (string)) - in +# 45875 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -46852,18 +45893,16 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v = - let _1 = + let _v : (string) = let _1 = # 5099 "src/ocaml/preprocess/parser_raw.mly" ("<") -# 46860 "src/ocaml/preprocess/parser_raw.ml" - in - ( +# 45900 "src/ocaml/preprocess/parser_raw.ml" + in + # 5076 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 46865 "src/ocaml/preprocess/parser_raw.ml" - : (string)) - in +# 45905 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -46884,18 +45923,16 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v = - let _1 = + let _v : (string) = let _1 = # 5100 "src/ocaml/preprocess/parser_raw.mly" (">") -# 46892 "src/ocaml/preprocess/parser_raw.ml" - in - ( +# 45930 "src/ocaml/preprocess/parser_raw.ml" + in + # 5076 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 46897 "src/ocaml/preprocess/parser_raw.ml" - : (string)) - in +# 45935 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -46916,18 +45953,16 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v = - let _1 = + let _v : (string) = let _1 = # 5101 "src/ocaml/preprocess/parser_raw.mly" ("or") -# 46924 "src/ocaml/preprocess/parser_raw.ml" - in - ( +# 45960 "src/ocaml/preprocess/parser_raw.ml" + in + # 5076 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 46929 "src/ocaml/preprocess/parser_raw.ml" - : (string)) - in +# 45965 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -46948,18 +45983,16 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v = - let _1 = + let _v : (string) = let _1 = # 5102 "src/ocaml/preprocess/parser_raw.mly" ("||") -# 46956 "src/ocaml/preprocess/parser_raw.ml" - in - ( +# 45990 "src/ocaml/preprocess/parser_raw.ml" + in + # 5076 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 46961 "src/ocaml/preprocess/parser_raw.ml" - : (string)) - in +# 45995 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -46980,18 +46013,16 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v = - let _1 = + let _v : (string) = let _1 = # 5103 "src/ocaml/preprocess/parser_raw.mly" ("&") -# 46988 "src/ocaml/preprocess/parser_raw.ml" - in - ( +# 46020 "src/ocaml/preprocess/parser_raw.ml" + in + # 5076 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 46993 "src/ocaml/preprocess/parser_raw.ml" - : (string)) - in +# 46025 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -47012,18 +46043,16 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v = - let _1 = + let _v : (string) = let _1 = # 5104 "src/ocaml/preprocess/parser_raw.mly" ("&&") -# 47020 "src/ocaml/preprocess/parser_raw.ml" - in - ( +# 46050 "src/ocaml/preprocess/parser_raw.ml" + in + # 5076 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 47025 "src/ocaml/preprocess/parser_raw.ml" - : (string)) - in +# 46055 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -47044,18 +46073,16 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v = - let _1 = + let _v : (string) = let _1 = # 5105 "src/ocaml/preprocess/parser_raw.mly" (":=") -# 47052 "src/ocaml/preprocess/parser_raw.ml" - in - ( +# 46080 "src/ocaml/preprocess/parser_raw.ml" + in + # 5076 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 47057 "src/ocaml/preprocess/parser_raw.ml" - : (string)) - in +# 46085 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -47079,7 +46106,7 @@ module Tables = struct let _v : (bool) = # 4961 "src/ocaml/preprocess/parser_raw.mly" ( true ) -# 47083 "src/ocaml/preprocess/parser_raw.ml" +# 46110 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -47097,7 +46124,7 @@ module Tables = struct let _v : (bool) = # 4962 "src/ocaml/preprocess/parser_raw.mly" ( false ) -# 47101 "src/ocaml/preprocess/parser_raw.ml" +# 46128 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -47113,9 +46140,9 @@ module Tables = struct let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in let _endpos = _startpos in let _v : (unit option) = -# 111 "" +# 114 "" ( None ) -# 47119 "src/ocaml/preprocess/parser_raw.ml" +# 46146 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -47138,9 +46165,9 @@ module Tables = struct let _startpos = _startpos_x_ in let _endpos = _endpos_x_ in let _v : (unit option) = -# 114 "" +# 116 "" ( Some x ) -# 47144 "src/ocaml/preprocess/parser_raw.ml" +# 46171 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -47156,9 +46183,9 @@ module Tables = struct let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in let _endpos = _startpos in let _v : (unit option) = -# 111 "" +# 114 "" ( None ) -# 47162 "src/ocaml/preprocess/parser_raw.ml" +# 46189 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -47181,9 +46208,9 @@ module Tables = struct let _startpos = _startpos_x_ in let _endpos = _endpos_x_ in let _v : (unit option) = -# 114 "" +# 116 "" ( Some x ) -# 47187 "src/ocaml/preprocess/parser_raw.ml" +# 46214 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -47199,9 +46226,9 @@ module Tables = struct let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in let _endpos = _startpos in let _v : ((Parsetree.type_constraint option * Parsetree.modes) option) = -# 111 "" +# 114 "" ( None ) -# 47205 "src/ocaml/preprocess/parser_raw.ml" +# 46232 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -47223,33 +46250,31 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v = - let x = - let _1 = - let _2 = + let _v : ((Parsetree.type_constraint option * Parsetree.modes) option) = let x = + let _1 = + let _2 = # 4699 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 47233 "src/ocaml/preprocess/parser_raw.ml" - in - +# 46259 "src/ocaml/preprocess/parser_raw.ml" + in + # 3686 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 47238 "src/ocaml/preprocess/parser_raw.ml" - - in +# 46264 "src/ocaml/preprocess/parser_raw.ml" + in + # 3691 "src/ocaml/preprocess/parser_raw.mly" ( let ty, modes = _1 in Some ty, modes ) -# 47245 "src/ocaml/preprocess/parser_raw.ml" - - in - ( -# 114 "" - ( Some x ) -# 47251 "src/ocaml/preprocess/parser_raw.ml" - : ((Parsetree.type_constraint option * Parsetree.modes) option)) +# 46271 "src/ocaml/preprocess/parser_raw.ml" + in + +# 116 "" + ( Some x ) +# 46277 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -47277,36 +46302,34 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined1_ in - let _v = - let x = - let _1 = - let _2 = - let _1 = _1_inlined1 in - + let _v : ((Parsetree.type_constraint option * Parsetree.modes) option) = let x = + let _1 = + let _2 = + let _1 = _1_inlined1 in + # 4700 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 47289 "src/ocaml/preprocess/parser_raw.ml" - - in +# 46313 "src/ocaml/preprocess/parser_raw.ml" + in + # 3686 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 47295 "src/ocaml/preprocess/parser_raw.ml" - - in +# 46319 "src/ocaml/preprocess/parser_raw.ml" + in + # 3691 "src/ocaml/preprocess/parser_raw.mly" ( let ty, modes = _1 in Some ty, modes ) -# 47302 "src/ocaml/preprocess/parser_raw.ml" - - in - ( -# 114 "" - ( Some x ) -# 47308 "src/ocaml/preprocess/parser_raw.ml" - : ((Parsetree.type_constraint option * Parsetree.modes) option)) +# 46326 "src/ocaml/preprocess/parser_raw.ml" + in + +# 116 "" + ( Some x ) +# 46332 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -47327,18 +46350,16 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v = - let x = + let _v : ((Parsetree.type_constraint option * Parsetree.modes) option) = let x = # 3694 "src/ocaml/preprocess/parser_raw.mly" ( None, _1 ) -# 47335 "src/ocaml/preprocess/parser_raw.ml" - in - ( -# 114 "" +# 46357 "src/ocaml/preprocess/parser_raw.ml" + in + +# 116 "" ( Some x ) -# 47340 "src/ocaml/preprocess/parser_raw.ml" - : ((Parsetree.type_constraint option * Parsetree.modes) option)) - in +# 46362 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -47353,9 +46374,9 @@ module Tables = struct let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in let _endpos = _startpos in let _v : (Parsetree.jkind_annotation option) = -# 111 "" +# 114 "" ( None ) -# 47359 "src/ocaml/preprocess/parser_raw.ml" +# 46380 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -47378,9 +46399,9 @@ module Tables = struct let _startpos = _startpos_x_ in let _endpos = _endpos_x_ in let _v : (Parsetree.jkind_annotation option) = -# 114 "" +# 116 "" ( Some x ) -# 47384 "src/ocaml/preprocess/parser_raw.ml" +# 46405 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -47396,9 +46417,9 @@ module Tables = struct let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in let _endpos = _startpos in let _v : (string Location.loc option) = -# 111 "" +# 114 "" ( None ) -# 47402 "src/ocaml/preprocess/parser_raw.ml" +# 46423 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -47425,37 +46446,35 @@ module Tables = struct let _1_inlined1 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 47429 "src/ocaml/preprocess/parser_raw.ml" +# 46450 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined1_ in - let _v = + let _v : (string Location.loc option) = let x = let x = - let x = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 47445 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 188 "" - ( x ) -# 47451 "src/ocaml/preprocess/parser_raw.ml" +# 46465 "src/ocaml/preprocess/parser_raw.ml" in - ( -# 114 "" - ( Some x ) -# 47457 "src/ocaml/preprocess/parser_raw.ml" - : (string Location.loc option)) + +# 183 "" + ( x ) +# 46471 "src/ocaml/preprocess/parser_raw.ml" + in + +# 116 "" + ( Some x ) +# 46477 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -47470,9 +46489,9 @@ module Tables = struct let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in let _endpos = _startpos in let _v : (Parsetree.core_type option) = -# 111 "" +# 114 "" ( None ) -# 47476 "src/ocaml/preprocess/parser_raw.ml" +# 46495 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -47501,18 +46520,16 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_x_ in - let _v = - let x = -# 188 "" + let _v : (Parsetree.core_type option) = let x = +# 183 "" ( x ) -# 47509 "src/ocaml/preprocess/parser_raw.ml" - in - ( -# 114 "" +# 46527 "src/ocaml/preprocess/parser_raw.ml" + in + +# 116 "" ( Some x ) -# 47514 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type option)) - in +# 46532 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -47527,9 +46544,9 @@ module Tables = struct let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in let _endpos = _startpos in let _v : (Parsetree.expression option) = -# 111 "" +# 114 "" ( None ) -# 47533 "src/ocaml/preprocess/parser_raw.ml" +# 46550 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -47558,33 +46575,31 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined1_ in - let _v = + let _v : (Parsetree.expression option) = let x = let x = - let x = - let _1 = _1_inlined1 in - let _1 = + let _1 = _1_inlined1 in + let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 47569 "src/ocaml/preprocess/parser_raw.ml" - in - +# 46585 "src/ocaml/preprocess/parser_raw.ml" + in + # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 47574 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 188 "" - ( x ) -# 47580 "src/ocaml/preprocess/parser_raw.ml" +# 46590 "src/ocaml/preprocess/parser_raw.ml" in - ( -# 114 "" - ( Some x ) -# 47586 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression option)) + +# 183 "" + ( x ) +# 46596 "src/ocaml/preprocess/parser_raw.ml" + in + +# 116 "" + ( Some x ) +# 46602 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -47633,51 +46648,50 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_xs_ in - let _v = + let _v : (Parsetree.expression option) = let x = let x = - let x = - let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in - let _1 = - let _3 = - let xs = - let xs = -# 264 "" + let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in + let _1 = + let _3 = + let xs = + let xs = +# 253 "" ( List.rev xs ) -# 47647 "src/ocaml/preprocess/parser_raw.ml" - in - +# 46661 "src/ocaml/preprocess/parser_raw.ml" + in + # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 47652 "src/ocaml/preprocess/parser_raw.ml" - - in +# 46666 "src/ocaml/preprocess/parser_raw.ml" + in + # 3510 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 47658 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__3_ = _endpos_xs_ in +# 46672 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__3_ = _endpos_xs_ in + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in - + let _1 = _1_inlined1 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 47669 "src/ocaml/preprocess/parser_raw.ml" - - in +# 46683 "src/ocaml/preprocess/parser_raw.ml" + in + # 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 47675 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 46689 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2718 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in @@ -47691,27 +46705,26 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 47695 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 2985 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 47701 "src/ocaml/preprocess/parser_raw.ml" +# 46709 "src/ocaml/preprocess/parser_raw.ml" in -# 188 "" - ( x ) -# 47707 "src/ocaml/preprocess/parser_raw.ml" +# 2985 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 46715 "src/ocaml/preprocess/parser_raw.ml" in - ( -# 114 "" - ( Some x ) -# 47713 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression option)) + +# 183 "" + ( x ) +# 46721 "src/ocaml/preprocess/parser_raw.ml" + in + +# 116 "" + ( Some x ) +# 46727 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -47726,9 +46739,9 @@ module Tables = struct let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in let _endpos = _startpos in let _v : (Parsetree.module_type option) = -# 111 "" +# 114 "" ( None ) -# 47732 "src/ocaml/preprocess/parser_raw.ml" +# 46745 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -47757,18 +46770,16 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_x_ in - let _v = - let x = -# 188 "" + let _v : (Parsetree.module_type option) = let x = +# 183 "" ( x ) -# 47765 "src/ocaml/preprocess/parser_raw.ml" - in - ( -# 114 "" +# 46777 "src/ocaml/preprocess/parser_raw.ml" + in + +# 116 "" ( Some x ) -# 47770 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.module_type option)) - in +# 46782 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -47783,9 +46794,9 @@ module Tables = struct let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in let _endpos = _startpos in let _v : (Parsetree.pattern option) = -# 111 "" +# 114 "" ( None ) -# 47789 "src/ocaml/preprocess/parser_raw.ml" +# 46800 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -47814,18 +46825,16 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_x_ in - let _v = - let x = -# 188 "" + let _v : (Parsetree.pattern option) = let x = +# 183 "" ( x ) -# 47822 "src/ocaml/preprocess/parser_raw.ml" - in - ( -# 114 "" +# 46832 "src/ocaml/preprocess/parser_raw.ml" + in + +# 116 "" ( Some x ) -# 47827 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.pattern option)) - in +# 46837 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -47840,9 +46849,9 @@ module Tables = struct let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in let _endpos = _startpos in let _v : (Parsetree.expression option) = -# 111 "" +# 114 "" ( None ) -# 47846 "src/ocaml/preprocess/parser_raw.ml" +# 46855 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -47871,18 +46880,16 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_x_ in - let _v = - let x = -# 188 "" + let _v : (Parsetree.expression option) = let x = +# 183 "" ( x ) -# 47879 "src/ocaml/preprocess/parser_raw.ml" - in - ( -# 114 "" +# 46887 "src/ocaml/preprocess/parser_raw.ml" + in + +# 116 "" ( Some x ) -# 47884 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression option)) - in +# 46892 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -47897,9 +46904,9 @@ module Tables = struct let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in let _endpos = _startpos in let _v : (Parsetree.type_constraint option) = -# 111 "" +# 114 "" ( None ) -# 47903 "src/ocaml/preprocess/parser_raw.ml" +# 46910 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -47922,9 +46929,9 @@ module Tables = struct let _startpos = _startpos_x_ in let _endpos = _endpos_x_ in let _v : (Parsetree.type_constraint option) = -# 114 "" +# 116 "" ( Some x ) -# 47928 "src/ocaml/preprocess/parser_raw.ml" +# 46935 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -47942,7 +46949,7 @@ module Tables = struct let _v : (Parsetree.modalities) = # 4724 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 47946 "src/ocaml/preprocess/parser_raw.ml" +# 46953 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -47971,21 +46978,19 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined1_ in - let _v = - let _2 = - let _1 = _1_inlined1 in - + let _v : (Parsetree.modalities) = let _2 = + let _1 = _1_inlined1 in + # 4709 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 47981 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 46987 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4725 "src/ocaml/preprocess/parser_raw.mly" ( _2 ) -# 47987 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.modalities)) - in +# 46993 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -48002,7 +47007,7 @@ module Tables = struct let _v : (Parsetree.modalities) = # 4718 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 48006 "src/ocaml/preprocess/parser_raw.ml" +# 47011 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -48031,21 +47036,19 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined1_ in - let _v = - let _2 = - let _1 = _1_inlined1 in - + let _v : (Parsetree.modalities) = let _2 = + let _1 = _1_inlined1 in + # 4709 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 48041 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 47045 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4719 "src/ocaml/preprocess/parser_raw.mly" ( _2 ) -# 48047 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.modalities)) - in +# 47051 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -48073,13 +47076,12 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in - let _v = - let _3 = + let _v : (Parsetree.function_constraint) = let _3 = # 4699 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 48081 "src/ocaml/preprocess/parser_raw.ml" - in - ( +# 47083 "src/ocaml/preprocess/parser_raw.ml" + in + # 2922 "src/ocaml/preprocess/parser_raw.mly" ( { ret_type_constraint = Some (Pconstraint _2) @@ -48087,9 +47089,8 @@ module Tables = struct ; ret_mode_annotations = _3 } ) -# 48091 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.function_constraint)) - in +# 47093 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -48124,16 +47125,15 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined1_ in - let _v = - let _3 = - let _1 = _1_inlined1 in - + let _v : (Parsetree.function_constraint) = let _3 = + let _1 = _1_inlined1 in + # 4700 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 48134 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 47134 "src/ocaml/preprocess/parser_raw.ml" + + in + # 2922 "src/ocaml/preprocess/parser_raw.mly" ( { ret_type_constraint = Some (Pconstraint _2) @@ -48141,9 +47141,8 @@ module Tables = struct ; ret_mode_annotations = _3 } ) -# 48145 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.function_constraint)) - in +# 47145 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -48172,7 +47171,7 @@ module Tables = struct ; ret_mode_annotations = _1 } ) -# 48176 "src/ocaml/preprocess/parser_raw.ml" +# 47175 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -48190,7 +47189,7 @@ module Tables = struct let _v : (Parsetree.function_constraint) = # 2934 "src/ocaml/preprocess/parser_raw.mly" ( empty_body_constraint ) -# 48194 "src/ocaml/preprocess/parser_raw.ml" +# 47193 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -48211,7 +47210,7 @@ module Tables = struct let _1 : ( # 1116 "src/ocaml/preprocess/parser_raw.mly" (string) -# 48215 "src/ocaml/preprocess/parser_raw.ml" +# 47214 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -48219,7 +47218,7 @@ module Tables = struct let _v : (string) = # 5316 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 48223 "src/ocaml/preprocess/parser_raw.ml" +# 47222 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -48253,7 +47252,7 @@ module Tables = struct let _2 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 48257 "src/ocaml/preprocess/parser_raw.ml" +# 47256 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _2 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -48262,7 +47261,7 @@ module Tables = struct let _v : (string) = # 5317 "src/ocaml/preprocess/parser_raw.mly" ( _2 ) -# 48266 "src/ocaml/preprocess/parser_raw.ml" +# 47265 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -48312,21 +47311,19 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__6_ in - let _v = - let mm = + let _v : (Parsetree.module_expr) = let mm = # 4699 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 48320 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__6_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - ( +# 47318 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__6_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1786 "src/ocaml/preprocess/parser_raw.mly" ( mkmod ~loc:_sloc (Pmod_constraint(me, Some mty, mm)) ) -# 48328 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.module_expr)) - in +# 47326 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -48382,24 +47379,22 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__6_ in - let _v = - let mm = - let _1 = _1_inlined1 in - + let _v : (Parsetree.module_expr) = let mm = + let _1 = _1_inlined1 in + # 4700 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 48392 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__6_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - ( +# 47388 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__6_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1786 "src/ocaml/preprocess/parser_raw.mly" ( mkmod ~loc:_sloc (Pmod_constraint(me, Some mty, mm)) ) -# 48401 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.module_expr)) - in +# 47397 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -48441,16 +47436,14 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in - let _v = - let _endpos = _endpos__4_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - ( + let _v : (Parsetree.module_expr) = let _endpos = _endpos__4_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1788 "src/ocaml/preprocess/parser_raw.mly" ( mkmod ~loc:_sloc (Pmod_constraint(me, None, mm)) ) -# 48452 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.module_expr)) - in +# 47446 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -48488,7 +47481,7 @@ module Tables = struct let _v : (Parsetree.module_expr) = # 1795 "src/ocaml/preprocess/parser_raw.mly" ( me (* TODO consider reloc *) ) -# 48492 "src/ocaml/preprocess/parser_raw.ml" +# 47485 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -48538,44 +47531,42 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__5_ in - let _v = + let _v : (Parsetree.module_expr) = let e = + let _1 = _1_inlined2 in let e = - let _1 = _1_inlined2 in - let e = - let _1 = + let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 48549 "src/ocaml/preprocess/parser_raw.ml" - in - +# 47541 "src/ocaml/preprocess/parser_raw.ml" + in + # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 48554 "src/ocaml/preprocess/parser_raw.ml" - - in +# 47546 "src/ocaml/preprocess/parser_raw.ml" + in + # 1818 "src/ocaml/preprocess/parser_raw.mly" ( e ) -# 48560 "src/ocaml/preprocess/parser_raw.ml" - - in - let attrs = - let _1 = _1_inlined1 in - +# 47552 "src/ocaml/preprocess/parser_raw.ml" + + in + let attrs = + let _1 = _1_inlined1 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 48568 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__5_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - ( +# 47560 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__5_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1803 "src/ocaml/preprocess/parser_raw.mly" ( mkmod ~loc:_sloc ~attrs (Pmod_unpack e) ) -# 48577 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.module_expr)) - in +# 47569 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -48645,51 +47636,50 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__5_ in - let _v = + let _v : (Parsetree.module_expr) = let e = + let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined2_, _1_inlined4, _1_inlined3) in let e = - let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined2_, _1_inlined4, _1_inlined3) in - let e = - let _1 = - let _3 = - let xs = - let xs = -# 264 "" + let _1 = + let _3 = + let xs = + let xs = +# 253 "" ( List.rev xs ) -# 48659 "src/ocaml/preprocess/parser_raw.ml" - in - +# 47649 "src/ocaml/preprocess/parser_raw.ml" + in + # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 48664 "src/ocaml/preprocess/parser_raw.ml" - - in +# 47654 "src/ocaml/preprocess/parser_raw.ml" + in + # 3510 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 48670 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__3_ = _endpos_xs_ in +# 47660 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__3_ = _endpos_xs_ in + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in - + let _1 = _1_inlined1 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 48681 "src/ocaml/preprocess/parser_raw.ml" - - in +# 47671 "src/ocaml/preprocess/parser_raw.ml" + in + # 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 48687 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 47677 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2718 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in @@ -48703,38 +47693,37 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 48707 "src/ocaml/preprocess/parser_raw.ml" - - in +# 47697 "src/ocaml/preprocess/parser_raw.ml" + in + # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 48713 "src/ocaml/preprocess/parser_raw.ml" - - in +# 47703 "src/ocaml/preprocess/parser_raw.ml" + in + # 1818 "src/ocaml/preprocess/parser_raw.mly" ( e ) -# 48719 "src/ocaml/preprocess/parser_raw.ml" - - in - let attrs = - let _1 = _1_inlined1 in - +# 47709 "src/ocaml/preprocess/parser_raw.ml" + + in + let attrs = + let _1 = _1_inlined1 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 48727 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__5_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - ( +# 47717 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__5_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1803 "src/ocaml/preprocess/parser_raw.mly" ( mkmod ~loc:_sloc ~attrs (Pmod_unpack e) ) -# 48736 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.module_expr)) - in +# 47726 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -48797,62 +47786,60 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__5_ in - let _v = - let e = - let (_endpos__1_inlined1_, _startpos__1_inlined1_, _startpos__1_, _1_inlined1, _1) = (_endpos__1_inlined3_, _startpos__1_inlined3_, _startpos__1_inlined2_, _1_inlined3, _1_inlined2) in - let ty = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let _v : (Parsetree.module_expr) = let e = + let (_endpos__1_inlined1_, _startpos__1_inlined1_, _startpos__1_, _1_inlined1, _1) = (_endpos__1_inlined3_, _startpos__1_inlined3_, _startpos__1_inlined2_, _1_inlined3, _1_inlined2) in + let ty = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 4936 "src/ocaml/preprocess/parser_raw.mly" ( let (lid, cstrs, attrs) = package_type_of_module_type _1 in let descr = Ptyp_package (lid, cstrs) in mktyp ~loc:_sloc ~attrs descr ) -# 48814 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_ty_ = _endpos__1_inlined1_ in - let e = - let _1 = +# 47802 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_ty_ = _endpos__1_inlined1_ in + let e = + let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 48822 "src/ocaml/preprocess/parser_raw.ml" - in - +# 47810 "src/ocaml/preprocess/parser_raw.ml" + in + # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 48827 "src/ocaml/preprocess/parser_raw.ml" - - in - let _startpos_e_ = _startpos__1_ in - let _endpos = _endpos_ty_ in - let _startpos = _startpos_e_ in - let _loc = (_startpos, _endpos) in +# 47815 "src/ocaml/preprocess/parser_raw.ml" + in + let _startpos_e_ = _startpos__1_ in + let _endpos = _endpos_ty_ in + let _startpos = _startpos_e_ in + let _loc = (_startpos, _endpos) in + # 1820 "src/ocaml/preprocess/parser_raw.mly" ( ghexp_constraint ~loc:_loc ~exp:e ~cty:(Some ty) ~modes:[] ) -# 48837 "src/ocaml/preprocess/parser_raw.ml" - - in - let attrs = - let _1 = _1_inlined1 in - +# 47825 "src/ocaml/preprocess/parser_raw.ml" + + in + let attrs = + let _1 = _1_inlined1 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 48845 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__5_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - ( +# 47833 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__5_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1803 "src/ocaml/preprocess/parser_raw.mly" ( mkmod ~loc:_sloc ~attrs (Pmod_unpack e) ) -# 48854 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.module_expr)) - in +# 47842 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -48936,65 +47923,64 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__5_ in - let _v = - let e = - let (_endpos__1_inlined3_, _startpos__1_inlined3_, _startpos__1_, _1_inlined3, _1_inlined2, _1_inlined1) = (_endpos__1_inlined5_, _startpos__1_inlined5_, _startpos__1_inlined2_, _1_inlined5, _1_inlined4, _1_inlined3) in - let ty = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined3_, _startpos__1_inlined3_, _1_inlined3) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let _v : (Parsetree.module_expr) = let e = + let (_endpos__1_inlined3_, _startpos__1_inlined3_, _startpos__1_, _1_inlined3, _1_inlined2, _1_inlined1) = (_endpos__1_inlined5_, _startpos__1_inlined5_, _startpos__1_inlined2_, _1_inlined5, _1_inlined4, _1_inlined3) in + let ty = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined3_, _startpos__1_inlined3_, _1_inlined3) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 4936 "src/ocaml/preprocess/parser_raw.mly" ( let (lid, cstrs, attrs) = package_type_of_module_type _1 in let descr = Ptyp_package (lid, cstrs) in mktyp ~loc:_sloc ~attrs descr ) -# 48953 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_ty_ = _endpos__1_inlined3_ in - let e = - let _1 = - let _3 = - let xs = - let xs = -# 264 "" +# 47939 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_ty_ = _endpos__1_inlined3_ in + let e = + let _1 = + let _3 = + let xs = + let xs = +# 253 "" ( List.rev xs ) -# 48964 "src/ocaml/preprocess/parser_raw.ml" - in - +# 47950 "src/ocaml/preprocess/parser_raw.ml" + in + # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 48969 "src/ocaml/preprocess/parser_raw.ml" - - in +# 47955 "src/ocaml/preprocess/parser_raw.ml" + in + # 3510 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 48975 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__3_ = _endpos_xs_ in +# 47961 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__3_ = _endpos_xs_ in + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in - + let _1 = _1_inlined1 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 48986 "src/ocaml/preprocess/parser_raw.ml" - - in +# 47972 "src/ocaml/preprocess/parser_raw.ml" + in + # 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 48992 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 47978 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2718 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in @@ -49008,42 +47994,41 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 49012 "src/ocaml/preprocess/parser_raw.ml" - - in +# 47998 "src/ocaml/preprocess/parser_raw.ml" + in + # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 49018 "src/ocaml/preprocess/parser_raw.ml" - - in - let _startpos_e_ = _startpos__1_ in - let _endpos = _endpos_ty_ in - let _startpos = _startpos_e_ in - let _loc = (_startpos, _endpos) in +# 48004 "src/ocaml/preprocess/parser_raw.ml" + in + let _startpos_e_ = _startpos__1_ in + let _endpos = _endpos_ty_ in + let _startpos = _startpos_e_ in + let _loc = (_startpos, _endpos) in + # 1820 "src/ocaml/preprocess/parser_raw.mly" ( ghexp_constraint ~loc:_loc ~exp:e ~cty:(Some ty) ~modes:[] ) -# 49028 "src/ocaml/preprocess/parser_raw.ml" - - in - let attrs = - let _1 = _1_inlined1 in - +# 48014 "src/ocaml/preprocess/parser_raw.ml" + + in + let attrs = + let _1 = _1_inlined1 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 49036 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__5_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - ( +# 48022 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__5_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1803 "src/ocaml/preprocess/parser_raw.mly" ( mkmod ~loc:_sloc ~attrs (Pmod_unpack e) ) -# 49045 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.module_expr)) - in +# 48031 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -49120,75 +48105,73 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__5_ in - let _v = - let e = - let (_endpos__1_inlined2_, _startpos__1_inlined2_, _endpos__1_inlined1_, _startpos__1_inlined1_, _startpos__1_, _1_inlined2, _1_inlined1, _1) = (_endpos__1_inlined4_, _startpos__1_inlined4_, _endpos__1_inlined3_, _startpos__1_inlined3_, _startpos__1_inlined2_, _1_inlined4, _1_inlined3, _1_inlined2) in - let ty2 = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let _v : (Parsetree.module_expr) = let e = + let (_endpos__1_inlined2_, _startpos__1_inlined2_, _endpos__1_inlined1_, _startpos__1_inlined1_, _startpos__1_, _1_inlined2, _1_inlined1, _1) = (_endpos__1_inlined4_, _startpos__1_inlined4_, _endpos__1_inlined3_, _startpos__1_inlined3_, _startpos__1_inlined2_, _1_inlined4, _1_inlined3, _1_inlined2) in + let ty2 = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 4936 "src/ocaml/preprocess/parser_raw.mly" ( let (lid, cstrs, attrs) = package_type_of_module_type _1 in let descr = Ptyp_package (lid, cstrs) in mktyp ~loc:_sloc ~attrs descr ) -# 49137 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_ty2_ = _endpos__1_inlined2_ in - let ty1 = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 48121 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_ty2_ = _endpos__1_inlined2_ in + let ty1 = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 4936 "src/ocaml/preprocess/parser_raw.mly" ( let (lid, cstrs, attrs) = package_type_of_module_type _1 in let descr = Ptyp_package (lid, cstrs) in mktyp ~loc:_sloc ~attrs descr ) -# 49151 "src/ocaml/preprocess/parser_raw.ml" - - in - let e = - let _1 = +# 48135 "src/ocaml/preprocess/parser_raw.ml" + + in + let e = + let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 49158 "src/ocaml/preprocess/parser_raw.ml" - in - +# 48142 "src/ocaml/preprocess/parser_raw.ml" + in + # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 49163 "src/ocaml/preprocess/parser_raw.ml" - - in - let _startpos_e_ = _startpos__1_ in - let _endpos = _endpos_ty2_ in - let _startpos = _startpos_e_ in - let _loc = (_startpos, _endpos) in +# 48147 "src/ocaml/preprocess/parser_raw.ml" + in + let _startpos_e_ = _startpos__1_ in + let _endpos = _endpos_ty2_ in + let _startpos = _startpos_e_ in + let _loc = (_startpos, _endpos) in + # 1822 "src/ocaml/preprocess/parser_raw.mly" ( ghexp ~loc:_loc (Pexp_coerce (e, Some ty1, ty2)) ) -# 49173 "src/ocaml/preprocess/parser_raw.ml" - - in - let attrs = - let _1 = _1_inlined1 in - +# 48157 "src/ocaml/preprocess/parser_raw.ml" + + in + let attrs = + let _1 = _1_inlined1 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 49181 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__5_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - ( +# 48165 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__5_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1803 "src/ocaml/preprocess/parser_raw.mly" ( mkmod ~loc:_sloc ~attrs (Pmod_unpack e) ) -# 49190 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.module_expr)) - in +# 48174 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -49286,78 +48269,77 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__5_ in - let _v = - let e = - let (_endpos__1_inlined4_, _startpos__1_inlined4_, _endpos__1_inlined3_, _startpos__1_inlined3_, _startpos__1_, _1_inlined4, _1_inlined3, _1_inlined2, _1_inlined1) = (_endpos__1_inlined6_, _startpos__1_inlined6_, _endpos__1_inlined5_, _startpos__1_inlined5_, _startpos__1_inlined2_, _1_inlined6, _1_inlined5, _1_inlined4, _1_inlined3) in - let ty2 = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined4_, _startpos__1_inlined4_, _1_inlined4) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let _v : (Parsetree.module_expr) = let e = + let (_endpos__1_inlined4_, _startpos__1_inlined4_, _endpos__1_inlined3_, _startpos__1_inlined3_, _startpos__1_, _1_inlined4, _1_inlined3, _1_inlined2, _1_inlined1) = (_endpos__1_inlined6_, _startpos__1_inlined6_, _endpos__1_inlined5_, _startpos__1_inlined5_, _startpos__1_inlined2_, _1_inlined6, _1_inlined5, _1_inlined4, _1_inlined3) in + let ty2 = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined4_, _startpos__1_inlined4_, _1_inlined4) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 4936 "src/ocaml/preprocess/parser_raw.mly" ( let (lid, cstrs, attrs) = package_type_of_module_type _1 in let descr = Ptyp_package (lid, cstrs) in mktyp ~loc:_sloc ~attrs descr ) -# 49303 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_ty2_ = _endpos__1_inlined4_ in - let ty1 = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined3_, _startpos__1_inlined3_, _1_inlined3) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 48285 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_ty2_ = _endpos__1_inlined4_ in + let ty1 = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined3_, _startpos__1_inlined3_, _1_inlined3) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 4936 "src/ocaml/preprocess/parser_raw.mly" ( let (lid, cstrs, attrs) = package_type_of_module_type _1 in let descr = Ptyp_package (lid, cstrs) in mktyp ~loc:_sloc ~attrs descr ) -# 49317 "src/ocaml/preprocess/parser_raw.ml" - - in - let e = - let _1 = - let _3 = - let xs = - let xs = -# 264 "" +# 48299 "src/ocaml/preprocess/parser_raw.ml" + + in + let e = + let _1 = + let _3 = + let xs = + let xs = +# 253 "" ( List.rev xs ) -# 49327 "src/ocaml/preprocess/parser_raw.ml" - in - +# 48309 "src/ocaml/preprocess/parser_raw.ml" + in + # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 49332 "src/ocaml/preprocess/parser_raw.ml" - - in +# 48314 "src/ocaml/preprocess/parser_raw.ml" + in + # 3510 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 49338 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__3_ = _endpos_xs_ in +# 48320 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__3_ = _endpos_xs_ in + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in - + let _1 = _1_inlined1 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 49349 "src/ocaml/preprocess/parser_raw.ml" - - in +# 48331 "src/ocaml/preprocess/parser_raw.ml" + in + # 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 49355 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 48337 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2718 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in @@ -49371,42 +48353,41 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 49375 "src/ocaml/preprocess/parser_raw.ml" - - in +# 48357 "src/ocaml/preprocess/parser_raw.ml" + in + # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 49381 "src/ocaml/preprocess/parser_raw.ml" - - in - let _startpos_e_ = _startpos__1_ in - let _endpos = _endpos_ty2_ in - let _startpos = _startpos_e_ in - let _loc = (_startpos, _endpos) in +# 48363 "src/ocaml/preprocess/parser_raw.ml" + in + let _startpos_e_ = _startpos__1_ in + let _endpos = _endpos_ty2_ in + let _startpos = _startpos_e_ in + let _loc = (_startpos, _endpos) in + # 1822 "src/ocaml/preprocess/parser_raw.mly" ( ghexp ~loc:_loc (Pexp_coerce (e, Some ty1, ty2)) ) -# 49391 "src/ocaml/preprocess/parser_raw.ml" - - in - let attrs = - let _1 = _1_inlined1 in - +# 48373 "src/ocaml/preprocess/parser_raw.ml" + + in + let attrs = + let _1 = _1_inlined1 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 49399 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__5_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - ( +# 48381 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__5_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1803 "src/ocaml/preprocess/parser_raw.mly" ( mkmod ~loc:_sloc ~attrs (Pmod_unpack e) ) -# 49408 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.module_expr)) - in +# 48390 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -49469,62 +48450,60 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__5_ in - let _v = - let e = - let (_endpos__1_inlined1_, _startpos__1_inlined1_, _startpos__1_, _1_inlined1, _1) = (_endpos__1_inlined3_, _startpos__1_inlined3_, _startpos__1_inlined2_, _1_inlined3, _1_inlined2) in - let ty2 = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let _v : (Parsetree.module_expr) = let e = + let (_endpos__1_inlined1_, _startpos__1_inlined1_, _startpos__1_, _1_inlined1, _1) = (_endpos__1_inlined3_, _startpos__1_inlined3_, _startpos__1_inlined2_, _1_inlined3, _1_inlined2) in + let ty2 = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 4936 "src/ocaml/preprocess/parser_raw.mly" ( let (lid, cstrs, attrs) = package_type_of_module_type _1 in let descr = Ptyp_package (lid, cstrs) in mktyp ~loc:_sloc ~attrs descr ) -# 49486 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_ty2_ = _endpos__1_inlined1_ in - let e = - let _1 = +# 48466 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_ty2_ = _endpos__1_inlined1_ in + let e = + let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 49494 "src/ocaml/preprocess/parser_raw.ml" - in - +# 48474 "src/ocaml/preprocess/parser_raw.ml" + in + # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 49499 "src/ocaml/preprocess/parser_raw.ml" - - in - let _startpos_e_ = _startpos__1_ in - let _endpos = _endpos_ty2_ in - let _startpos = _startpos_e_ in - let _loc = (_startpos, _endpos) in +# 48479 "src/ocaml/preprocess/parser_raw.ml" + in + let _startpos_e_ = _startpos__1_ in + let _endpos = _endpos_ty2_ in + let _startpos = _startpos_e_ in + let _loc = (_startpos, _endpos) in + # 1824 "src/ocaml/preprocess/parser_raw.mly" ( ghexp ~loc:_loc (Pexp_coerce (e, None, ty2)) ) -# 49509 "src/ocaml/preprocess/parser_raw.ml" - - in - let attrs = - let _1 = _1_inlined1 in - +# 48489 "src/ocaml/preprocess/parser_raw.ml" + + in + let attrs = + let _1 = _1_inlined1 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 49517 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__5_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - ( +# 48497 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__5_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1803 "src/ocaml/preprocess/parser_raw.mly" ( mkmod ~loc:_sloc ~attrs (Pmod_unpack e) ) -# 49526 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.module_expr)) - in +# 48506 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -49608,65 +48587,64 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__5_ in - let _v = - let e = - let (_endpos__1_inlined3_, _startpos__1_inlined3_, _startpos__1_, _1_inlined3, _1_inlined2, _1_inlined1) = (_endpos__1_inlined5_, _startpos__1_inlined5_, _startpos__1_inlined2_, _1_inlined5, _1_inlined4, _1_inlined3) in - let ty2 = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined3_, _startpos__1_inlined3_, _1_inlined3) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let _v : (Parsetree.module_expr) = let e = + let (_endpos__1_inlined3_, _startpos__1_inlined3_, _startpos__1_, _1_inlined3, _1_inlined2, _1_inlined1) = (_endpos__1_inlined5_, _startpos__1_inlined5_, _startpos__1_inlined2_, _1_inlined5, _1_inlined4, _1_inlined3) in + let ty2 = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined3_, _startpos__1_inlined3_, _1_inlined3) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 4936 "src/ocaml/preprocess/parser_raw.mly" ( let (lid, cstrs, attrs) = package_type_of_module_type _1 in let descr = Ptyp_package (lid, cstrs) in mktyp ~loc:_sloc ~attrs descr ) -# 49625 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_ty2_ = _endpos__1_inlined3_ in - let e = - let _1 = - let _3 = - let xs = - let xs = -# 264 "" +# 48603 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_ty2_ = _endpos__1_inlined3_ in + let e = + let _1 = + let _3 = + let xs = + let xs = +# 253 "" ( List.rev xs ) -# 49636 "src/ocaml/preprocess/parser_raw.ml" - in - +# 48614 "src/ocaml/preprocess/parser_raw.ml" + in + # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 49641 "src/ocaml/preprocess/parser_raw.ml" - - in +# 48619 "src/ocaml/preprocess/parser_raw.ml" + in + # 3510 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 49647 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__3_ = _endpos_xs_ in +# 48625 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__3_ = _endpos_xs_ in + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in - + let _1 = _1_inlined1 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 49658 "src/ocaml/preprocess/parser_raw.ml" - - in +# 48636 "src/ocaml/preprocess/parser_raw.ml" + in + # 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 49664 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 48642 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2718 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in @@ -49680,42 +48658,41 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 49684 "src/ocaml/preprocess/parser_raw.ml" - - in +# 48662 "src/ocaml/preprocess/parser_raw.ml" + in + # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 49690 "src/ocaml/preprocess/parser_raw.ml" - - in - let _startpos_e_ = _startpos__1_ in - let _endpos = _endpos_ty2_ in - let _startpos = _startpos_e_ in - let _loc = (_startpos, _endpos) in +# 48668 "src/ocaml/preprocess/parser_raw.ml" + in + let _startpos_e_ = _startpos__1_ in + let _endpos = _endpos_ty2_ in + let _startpos = _startpos_e_ in + let _loc = (_startpos, _endpos) in + # 1824 "src/ocaml/preprocess/parser_raw.mly" ( ghexp ~loc:_loc (Pexp_coerce (e, None, ty2)) ) -# 49700 "src/ocaml/preprocess/parser_raw.ml" - - in - let attrs = - let _1 = _1_inlined1 in - +# 48678 "src/ocaml/preprocess/parser_raw.ml" + + in + let attrs = + let _1 = _1_inlined1 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 49708 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__5_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - ( +# 48686 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__5_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1803 "src/ocaml/preprocess/parser_raw.mly" ( mkmod ~loc:_sloc ~attrs (Pmod_unpack e) ) -# 49717 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.module_expr)) - in +# 48695 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -49739,7 +48716,7 @@ module Tables = struct let _v : (Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) = # 4212 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 49743 "src/ocaml/preprocess/parser_raw.ml" +# 48720 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -49796,40 +48773,38 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_jkind_ in - let _v = - let _2 = - let (_startpos__1_, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined2) in - let attrs = - let _1 = _1_inlined1 in - + let _v : (Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) = let _2 = + let (_startpos__1_, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined2) in + let attrs = + let _1 = _1_inlined1 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 49808 "src/ocaml/preprocess/parser_raw.ml" - - in - let name = +# 48784 "src/ocaml/preprocess/parser_raw.ml" + + in + let name = # 4233 "src/ocaml/preprocess/parser_raw.mly" ( Some _2 ) -# 49814 "src/ocaml/preprocess/parser_raw.ml" - in - let _startpos_name_ = _startpos__1_ in - let _endpos = _endpos_jkind_ in - let _symbolstartpos = _startpos_name_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 48790 "src/ocaml/preprocess/parser_raw.ml" + in + let _startpos_name_ = _startpos__1_ in + let _endpos = _endpos_jkind_ in + let _symbolstartpos = _startpos_name_ in + let _sloc = (_symbolstartpos, _endpos) in + # 4206 "src/ocaml/preprocess/parser_raw.mly" ( match name with | None -> mktyp ~loc:_sloc ~attrs (Ptyp_any (Some jkind)) | Some name -> mktyp ~loc:_sloc ~attrs (Ptyp_var (name, Some jkind)) ) -# 49825 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 48801 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4214 "src/ocaml/preprocess/parser_raw.mly" ( _2, _1 ) -# 49831 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity))) - in +# 48807 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -49878,40 +48853,38 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_jkind_ in - let _v = - let _2 = - let (_startpos__1_, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined2) in - let attrs = - let _1 = _1_inlined1 in - + let _v : (Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) = let _2 = + let (_startpos__1_, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined2) in + let attrs = + let _1 = _1_inlined1 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 49890 "src/ocaml/preprocess/parser_raw.ml" - - in - let name = +# 48864 "src/ocaml/preprocess/parser_raw.ml" + + in + let name = # 4235 "src/ocaml/preprocess/parser_raw.mly" ( None ) -# 49896 "src/ocaml/preprocess/parser_raw.ml" - in - let _startpos_name_ = _startpos__1_ in - let _endpos = _endpos_jkind_ in - let _symbolstartpos = _startpos_name_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 48870 "src/ocaml/preprocess/parser_raw.ml" + in + let _startpos_name_ = _startpos__1_ in + let _endpos = _endpos_jkind_ in + let _symbolstartpos = _startpos_name_ in + let _sloc = (_symbolstartpos, _endpos) in + # 4206 "src/ocaml/preprocess/parser_raw.mly" ( match name with | None -> mktyp ~loc:_sloc ~attrs (Ptyp_any (Some jkind)) | Some name -> mktyp ~loc:_sloc ~attrs (Ptyp_var (name, Some jkind)) ) -# 49907 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 48881 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4214 "src/ocaml/preprocess/parser_raw.mly" ( _2, _1 ) -# 49913 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity))) - in +# 48887 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -49942,7 +48915,7 @@ module Tables = struct let _v : (Longident.t) = # 1686 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 49946 "src/ocaml/preprocess/parser_raw.ml" +# 48919 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -49974,7 +48947,7 @@ module Tables = struct let _v : (Longident.t) = # 1671 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 49978 "src/ocaml/preprocess/parser_raw.ml" +# 48951 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -50006,7 +48979,7 @@ module Tables = struct let _v : (Parsetree.core_type) = # 1646 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 50010 "src/ocaml/preprocess/parser_raw.ml" +# 48983 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -50038,7 +49011,7 @@ module Tables = struct let _v : (Parsetree.expression) = # 1651 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 50042 "src/ocaml/preprocess/parser_raw.ml" +# 49015 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -50070,7 +49043,7 @@ module Tables = struct let _v : (Longident.t) = # 1676 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 50074 "src/ocaml/preprocess/parser_raw.ml" +# 49047 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -50102,7 +49075,7 @@ module Tables = struct let _v : (Longident.t) = # 1681 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 50106 "src/ocaml/preprocess/parser_raw.ml" +# 49079 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -50134,7 +49107,7 @@ module Tables = struct let _v : (Parsetree.module_expr) = # 1641 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 50138 "src/ocaml/preprocess/parser_raw.ml" +# 49111 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -50166,7 +49139,7 @@ module Tables = struct let _v : (Parsetree.module_type) = # 1636 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 50170 "src/ocaml/preprocess/parser_raw.ml" +# 49143 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -50198,7 +49171,7 @@ module Tables = struct let _v : (Longident.t) = # 1661 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 50202 "src/ocaml/preprocess/parser_raw.ml" +# 49175 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -50230,7 +49203,7 @@ module Tables = struct let _v : (Parsetree.pattern) = # 1656 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 50234 "src/ocaml/preprocess/parser_raw.ml" +# 49207 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -50262,7 +49235,7 @@ module Tables = struct let _v : (Longident.t) = # 1666 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 50266 "src/ocaml/preprocess/parser_raw.ml" +# 49239 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -50298,26 +49271,24 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in - let _v = - let _1 = - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _loc__2_ = (_startpos__2_, _endpos__2_) in - let _sloc = (_symbolstartpos, _endpos) in - + let _v : (Parsetree.pattern) = let _1 = + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _loc__2_ = (_startpos__2_, _endpos__2_) in + let _sloc = (_symbolstartpos, _endpos) in + # 3743 "src/ocaml/preprocess/parser_raw.mly" ( mkpat_cons ~loc:_sloc _loc__2_ (ghpat ~loc:_sloc (Ppat_tuple ([None, _1;None, _3], Closed))) ) -# 50313 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 49285 "src/ocaml/preprocess/parser_raw.ml" + + in + # 3731 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 50319 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.pattern)) - in +# 49291 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -50345,18 +49316,16 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in - let _v = - let _1 = + let _v : (Parsetree.pattern) = let _1 = # 3747 "src/ocaml/preprocess/parser_raw.mly" ( Pat.attr _1 _2 ) -# 50353 "src/ocaml/preprocess/parser_raw.ml" - in - ( +# 49323 "src/ocaml/preprocess/parser_raw.ml" + in + # 3731 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 50358 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.pattern)) - in +# 49328 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -50377,18 +49346,16 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v = - let _1 = + let _v : (Parsetree.pattern) = let _1 = # 3749 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 50385 "src/ocaml/preprocess/parser_raw.ml" - in - ( +# 49353 "src/ocaml/preprocess/parser_raw.ml" + in + # 3731 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 50390 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.pattern)) - in +# 49358 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -50423,49 +49390,47 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined1_ in - let _v = + let _v : (Parsetree.pattern) = let _1 = let _1 = let _1 = - let _1 = - let _3 = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let _3 = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 50439 "src/ocaml/preprocess/parser_raw.ml" - - in +# 49405 "src/ocaml/preprocess/parser_raw.ml" + in + # 3752 "src/ocaml/preprocess/parser_raw.mly" ( Ppat_alias(_1, _3) ) -# 50445 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__1_inlined1_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 49411 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__1_inlined1_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1331 "src/ocaml/preprocess/parser_raw.mly" ( mkpat ~loc:_sloc _1 ) -# 50455 "src/ocaml/preprocess/parser_raw.ml" - - in +# 49421 "src/ocaml/preprocess/parser_raw.ml" + in + # 3761 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 50461 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 49427 "src/ocaml/preprocess/parser_raw.ml" + + in + # 3731 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 50467 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.pattern)) - in +# 49433 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -50500,36 +49465,34 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in - let _v = + let _v : (Parsetree.pattern) = let _1 = let _1 = - let _1 = - let _1 = + let _1 = # 3758 "src/ocaml/preprocess/parser_raw.mly" ( Ppat_or(_1, _3) ) -# 50510 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos__1_ = _endpos__3_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 49474 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__3_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1331 "src/ocaml/preprocess/parser_raw.mly" ( mkpat ~loc:_sloc _1 ) -# 50519 "src/ocaml/preprocess/parser_raw.ml" - - in +# 49483 "src/ocaml/preprocess/parser_raw.ml" + in + # 3761 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 50525 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 49489 "src/ocaml/preprocess/parser_raw.ml" + + in + # 3731 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 50531 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.pattern)) - in +# 49495 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -50550,25 +49513,23 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v = - let _1 = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let _v : (Parsetree.pattern) = let _1 = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 3763 "src/ocaml/preprocess/parser_raw.mly" ( let closed, pats = _1 in mkpat ~loc:_sloc (Ppat_tuple (List.rev pats, closed)) ) -# 50564 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 49526 "src/ocaml/preprocess/parser_raw.ml" + + in + # 3731 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 50570 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.pattern)) - in +# 49532 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -50610,32 +49571,30 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in - let _v = + let _v : (Parsetree.pattern) = let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in - + let _1 = _1_inlined1 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 50622 "src/ocaml/preprocess/parser_raw.ml" - - in +# 49582 "src/ocaml/preprocess/parser_raw.ml" + in + # 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 50628 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - ( +# 49588 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 3733 "src/ocaml/preprocess/parser_raw.mly" ( mkpat_attrs ~loc:_sloc (Ppat_exception _3) _2) -# 50637 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.pattern)) - in +# 49597 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -50659,7 +49618,7 @@ module Tables = struct let _v : (Parsetree.pattern) = # 3827 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 50663 "src/ocaml/preprocess/parser_raw.ml" +# 49622 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -50688,41 +49647,39 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in - let _v = + let _v : (Parsetree.pattern) = let _1 = let _1 = let _1 = - let _1 = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 50702 "src/ocaml/preprocess/parser_raw.ml" - - in +# 49660 "src/ocaml/preprocess/parser_raw.ml" + in + # 3830 "src/ocaml/preprocess/parser_raw.mly" ( Ppat_construct(_1, Some ([], _2)) ) -# 50708 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__2_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 49666 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__2_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1331 "src/ocaml/preprocess/parser_raw.mly" ( mkpat ~loc:_sloc _1 ) -# 50718 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 49676 "src/ocaml/preprocess/parser_raw.ml" + + in + # 3836 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 50724 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.pattern)) - in +# 49682 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -50778,46 +49735,44 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_pat_ in - let _v = + let _v : (Parsetree.pattern) = let _1 = let _1 = - let _1 = - let newtypes = + let newtypes = # 3332 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 50788 "src/ocaml/preprocess/parser_raw.ml" - in - let constr = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 49744 "src/ocaml/preprocess/parser_raw.ml" + in + let constr = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 50797 "src/ocaml/preprocess/parser_raw.ml" - - in +# 49753 "src/ocaml/preprocess/parser_raw.ml" + in + # 3833 "src/ocaml/preprocess/parser_raw.mly" ( Ppat_construct(constr, Some (newtypes, pat)) ) -# 50803 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos_pat_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 49759 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos_pat_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1331 "src/ocaml/preprocess/parser_raw.mly" ( mkpat ~loc:_sloc _1 ) -# 50813 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 49769 "src/ocaml/preprocess/parser_raw.ml" + + in + # 3836 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 50819 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.pattern)) - in +# 49775 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -50845,29 +49800,27 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in - let _v = - let _1 = - let _1 = + let _v : (Parsetree.pattern) = let _1 = + let _1 = # 3835 "src/ocaml/preprocess/parser_raw.mly" ( Ppat_variant(_1, Some _2) ) -# 50854 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos__1_ = _endpos__2_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 49808 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__2_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1331 "src/ocaml/preprocess/parser_raw.mly" ( mkpat ~loc:_sloc _1 ) -# 50863 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 49817 "src/ocaml/preprocess/parser_raw.ml" + + in + # 3836 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 50869 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.pattern)) - in +# 49823 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -50909,32 +49862,30 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in - let _v = + let _v : (Parsetree.pattern) = let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in - + let _1 = _1_inlined1 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 50921 "src/ocaml/preprocess/parser_raw.ml" - - in +# 49873 "src/ocaml/preprocess/parser_raw.ml" + in + # 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 50927 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - ( +# 49879 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 3838 "src/ocaml/preprocess/parser_raw.mly" ( mkpat_attrs ~loc:_sloc (Ppat_lazy _3) _2) -# 50936 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.pattern)) - in +# 49888 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -50969,26 +49920,24 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in - let _v = - let _1 = - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _loc__2_ = (_startpos__2_, _endpos__2_) in - let _sloc = (_symbolstartpos, _endpos) in - + let _v : (Parsetree.pattern) = let _1 = + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _loc__2_ = (_startpos__2_, _endpos__2_) in + let _sloc = (_symbolstartpos, _endpos) in + # 3743 "src/ocaml/preprocess/parser_raw.mly" ( mkpat_cons ~loc:_sloc _loc__2_ (ghpat ~loc:_sloc (Ppat_tuple ([None, _1;None, _3], Closed))) ) -# 50984 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 49934 "src/ocaml/preprocess/parser_raw.ml" + + in + # 3738 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 50990 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.pattern)) - in +# 49940 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -51016,18 +49965,16 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in - let _v = - let _1 = + let _v : (Parsetree.pattern) = let _1 = # 3747 "src/ocaml/preprocess/parser_raw.mly" ( Pat.attr _1 _2 ) -# 51024 "src/ocaml/preprocess/parser_raw.ml" - in - ( +# 49972 "src/ocaml/preprocess/parser_raw.ml" + in + # 3738 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 51029 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.pattern)) - in +# 49977 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -51048,18 +49995,16 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v = - let _1 = + let _v : (Parsetree.pattern) = let _1 = # 3749 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 51056 "src/ocaml/preprocess/parser_raw.ml" - in - ( +# 50002 "src/ocaml/preprocess/parser_raw.ml" + in + # 3738 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 51061 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.pattern)) - in +# 50007 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -51094,49 +50039,47 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined1_ in - let _v = + let _v : (Parsetree.pattern) = let _1 = let _1 = let _1 = - let _1 = - let _3 = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let _3 = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 51110 "src/ocaml/preprocess/parser_raw.ml" - - in +# 50054 "src/ocaml/preprocess/parser_raw.ml" + in + # 3752 "src/ocaml/preprocess/parser_raw.mly" ( Ppat_alias(_1, _3) ) -# 51116 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__1_inlined1_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 50060 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__1_inlined1_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1331 "src/ocaml/preprocess/parser_raw.mly" ( mkpat ~loc:_sloc _1 ) -# 51126 "src/ocaml/preprocess/parser_raw.ml" - - in +# 50070 "src/ocaml/preprocess/parser_raw.ml" + in + # 3761 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 51132 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 50076 "src/ocaml/preprocess/parser_raw.ml" + + in + # 3738 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 51138 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.pattern)) - in +# 50082 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -51171,36 +50114,34 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in - let _v = + let _v : (Parsetree.pattern) = let _1 = let _1 = - let _1 = - let _1 = + let _1 = # 3758 "src/ocaml/preprocess/parser_raw.mly" ( Ppat_or(_1, _3) ) -# 51181 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos__1_ = _endpos__3_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 50123 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__3_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1331 "src/ocaml/preprocess/parser_raw.mly" ( mkpat ~loc:_sloc _1 ) -# 51190 "src/ocaml/preprocess/parser_raw.ml" - - in +# 50132 "src/ocaml/preprocess/parser_raw.ml" + in + # 3761 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 51196 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 50138 "src/ocaml/preprocess/parser_raw.ml" + + in + # 3738 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 51202 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.pattern)) - in +# 50144 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -51221,25 +50162,23 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v = - let _1 = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let _v : (Parsetree.pattern) = let _1 = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 3763 "src/ocaml/preprocess/parser_raw.mly" ( let closed, pats = _1 in mkpat ~loc:_sloc (Ppat_tuple (List.rev pats, closed)) ) -# 51235 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 50175 "src/ocaml/preprocess/parser_raw.ml" + + in + # 3738 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 51241 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.pattern)) - in +# 50181 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -51259,45 +50198,43 @@ module Tables = struct let _1 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 51263 "src/ocaml/preprocess/parser_raw.ml" +# 50202 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v = + let _v : (Parsetree.pattern) = let _1 = let _1 = let _1 = - let _1 = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 51278 "src/ocaml/preprocess/parser_raw.ml" - - in +# 50216 "src/ocaml/preprocess/parser_raw.ml" + in + # 2827 "src/ocaml/preprocess/parser_raw.mly" ( Ppat_var _1 ) -# 51284 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 50222 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1331 "src/ocaml/preprocess/parser_raw.mly" ( mkpat ~loc:_sloc _1 ) -# 51293 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 50231 "src/ocaml/preprocess/parser_raw.ml" + + in + # 2829 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 51299 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.pattern)) - in +# 50237 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -51318,28 +50255,26 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v = - let _1 = - let _1 = + let _v : (Parsetree.pattern) = let _1 = + let _1 = # 2828 "src/ocaml/preprocess/parser_raw.mly" ( Ppat_any ) -# 51327 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 50263 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1331 "src/ocaml/preprocess/parser_raw.mly" ( mkpat ~loc:_sloc _1 ) -# 51335 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 50271 "src/ocaml/preprocess/parser_raw.ml" + + in + # 2829 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 51341 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.pattern)) - in +# 50277 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -51363,7 +50298,7 @@ module Tables = struct let _v : (Parsetree.payload) = # 5429 "src/ocaml/preprocess/parser_raw.mly" ( PStr _1 ) -# 51367 "src/ocaml/preprocess/parser_raw.ml" +# 50302 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -51395,7 +50330,7 @@ module Tables = struct let _v : (Parsetree.payload) = # 5430 "src/ocaml/preprocess/parser_raw.mly" ( PSig _2 ) -# 51399 "src/ocaml/preprocess/parser_raw.ml" +# 50334 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -51427,7 +50362,7 @@ module Tables = struct let _v : (Parsetree.payload) = # 5431 "src/ocaml/preprocess/parser_raw.mly" ( PTyp _2 ) -# 51431 "src/ocaml/preprocess/parser_raw.ml" +# 50366 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -51459,7 +50394,7 @@ module Tables = struct let _v : (Parsetree.payload) = # 5432 "src/ocaml/preprocess/parser_raw.mly" ( PPat (_2, None) ) -# 51463 "src/ocaml/preprocess/parser_raw.ml" +# 50398 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -51505,7 +50440,7 @@ module Tables = struct let _v : (Parsetree.payload) = # 5433 "src/ocaml/preprocess/parser_raw.mly" ( PPat (_2, Some _4) ) -# 51509 "src/ocaml/preprocess/parser_raw.ml" +# 50444 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -51530,7 +50465,7 @@ module Tables = struct let _v : (Parsetree.core_type) = # 4489 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 51534 "src/ocaml/preprocess/parser_raw.ml" +# 50469 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -51566,44 +50501,42 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_xs_ in let _endpos = _endpos__3_ in - let _v = + let _v : (Parsetree.core_type) = let _1 = let _1 = let _1 = - let _1 = - let xs = -# 264 "" + let xs = +# 253 "" ( List.rev xs ) -# 51577 "src/ocaml/preprocess/parser_raw.ml" - in - +# 50511 "src/ocaml/preprocess/parser_raw.ml" + in + # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 51582 "src/ocaml/preprocess/parser_raw.ml" - - in +# 50516 "src/ocaml/preprocess/parser_raw.ml" + in + # 4481 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 51588 "src/ocaml/preprocess/parser_raw.ml" - - in +# 50522 "src/ocaml/preprocess/parser_raw.ml" + in + # 4485 "src/ocaml/preprocess/parser_raw.mly" ( (_1, _3) ) -# 51594 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos__3_, _startpos_xs_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - ( +# 50528 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos__3_, _startpos_xs_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 4491 "src/ocaml/preprocess/parser_raw.mly" ( let bound_vars, inner_type = _1 in mktyp ~loc:_sloc (Ptyp_poly (bound_vars, inner_type)) ) -# 51605 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type)) - in +# 50539 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -51624,18 +50557,16 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v = - let _1 = + let _v : (Parsetree.core_type) = let _1 = # 4521 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 51632 "src/ocaml/preprocess/parser_raw.ml" - in - ( +# 50564 "src/ocaml/preprocess/parser_raw.ml" + in + # 4489 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 51637 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type)) - in +# 50569 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -51670,49 +50601,47 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_xs_ in let _endpos = _endpos__1_ in - let _v = - let _1 = - let _3 = + let _v : (Parsetree.core_type) = let _1 = + let _3 = # 4521 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 51679 "src/ocaml/preprocess/parser_raw.ml" - in +# 50609 "src/ocaml/preprocess/parser_raw.ml" + in + let _1 = let _1 = - let _1 = - let xs = -# 264 "" + let xs = +# 253 "" ( List.rev xs ) -# 51686 "src/ocaml/preprocess/parser_raw.ml" - in - +# 50616 "src/ocaml/preprocess/parser_raw.ml" + in + # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 51691 "src/ocaml/preprocess/parser_raw.ml" - - in +# 50621 "src/ocaml/preprocess/parser_raw.ml" + in + # 4481 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 51697 "src/ocaml/preprocess/parser_raw.ml" - - in +# 50627 "src/ocaml/preprocess/parser_raw.ml" + in + # 4485 "src/ocaml/preprocess/parser_raw.mly" ( (_1, _3) ) -# 51703 "src/ocaml/preprocess/parser_raw.ml" - - in - let _startpos__1_ = _startpos_xs_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - ( +# 50633 "src/ocaml/preprocess/parser_raw.ml" + + in + let _startpos__1_ = _startpos_xs_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 4491 "src/ocaml/preprocess/parser_raw.mly" ( let bound_vars, inner_type = _1 in mktyp ~loc:_sloc (Ptyp_poly (bound_vars, inner_type)) ) -# 51714 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type)) - in +# 50644 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -51754,16 +50683,14 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in - let _v = - let _endpos = _endpos__4_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - ( + let _v : (Parsetree.attribute) = let _endpos = _endpos__4_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 5390 "src/ocaml/preprocess/parser_raw.mly" ( mk_attr ~loc:(make_loc _sloc) _2 _3 ) -# 51765 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.attribute)) - in +# 50693 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -51847,48 +50774,46 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined3_ in - let _v = - let attrs2 = - let _1 = _1_inlined3 in - + let _v : (Parsetree.value_description * string Location.loc option) = let attrs2 = + let _1 = _1_inlined3 in + # 5399 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 51857 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_attrs2_ = _endpos__1_inlined3_ in - let id = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 50783 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_attrs2_ = _endpos__1_inlined3_ in + let id = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 51869 "src/ocaml/preprocess/parser_raw.ml" - - in - let attrs1 = - let _1 = _1_inlined1 in - +# 50795 "src/ocaml/preprocess/parser_raw.ml" + + in + let attrs1 = + let _1 = _1_inlined1 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 51877 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos_attrs2_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - ( +# 50803 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos_attrs2_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 4013 "src/ocaml/preprocess/parser_raw.mly" ( let attrs = attrs1 @ attrs2 in let loc = make_loc _sloc in let docs = symbol_docs _sloc in Val.mk id ty ~prim ~attrs ~modalities ~loc ~docs, ext ) -# 51890 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.value_description * string Location.loc option)) - in +# 50816 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -51902,18 +50827,16 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in let _endpos = _startpos in - let _v = - let _1 = + let _v : (Asttypes.private_flag) = let _1 = # 5245 "src/ocaml/preprocess/parser_raw.mly" ( Public ) -# 51910 "src/ocaml/preprocess/parser_raw.ml" - in - ( +# 50834 "src/ocaml/preprocess/parser_raw.ml" + in + # 5242 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 51915 "src/ocaml/preprocess/parser_raw.ml" - : (Asttypes.private_flag)) - in +# 50839 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -51934,18 +50857,16 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v = - let _1 = + let _v : (Asttypes.private_flag) = let _1 = # 5246 "src/ocaml/preprocess/parser_raw.mly" ( Private ) -# 51942 "src/ocaml/preprocess/parser_raw.ml" - in - ( +# 50864 "src/ocaml/preprocess/parser_raw.ml" + in + # 5242 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 51947 "src/ocaml/preprocess/parser_raw.ml" - : (Asttypes.private_flag)) - in +# 50869 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -51962,7 +50883,7 @@ module Tables = struct let _v : (Asttypes.private_flag * Asttypes.virtual_flag) = # 5280 "src/ocaml/preprocess/parser_raw.mly" ( Public, Concrete ) -# 51966 "src/ocaml/preprocess/parser_raw.ml" +# 50887 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -51987,7 +50908,7 @@ module Tables = struct let _v : (Asttypes.private_flag * Asttypes.virtual_flag) = # 5281 "src/ocaml/preprocess/parser_raw.mly" ( Private, Concrete ) -# 51991 "src/ocaml/preprocess/parser_raw.ml" +# 50912 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -52012,7 +50933,7 @@ module Tables = struct let _v : (Asttypes.private_flag * Asttypes.virtual_flag) = # 5282 "src/ocaml/preprocess/parser_raw.mly" ( Public, Virtual ) -# 52016 "src/ocaml/preprocess/parser_raw.ml" +# 50937 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -52044,7 +50965,7 @@ module Tables = struct let _v : (Asttypes.private_flag * Asttypes.virtual_flag) = # 5283 "src/ocaml/preprocess/parser_raw.mly" ( Private, Virtual ) -# 52048 "src/ocaml/preprocess/parser_raw.ml" +# 50969 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -52076,7 +50997,7 @@ module Tables = struct let _v : (Asttypes.private_flag * Asttypes.virtual_flag) = # 5284 "src/ocaml/preprocess/parser_raw.mly" ( Private, Virtual ) -# 52080 "src/ocaml/preprocess/parser_raw.ml" +# 51001 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -52094,7 +51015,7 @@ module Tables = struct let _v : (Asttypes.rec_flag) = # 5223 "src/ocaml/preprocess/parser_raw.mly" ( Nonrecursive ) -# 52098 "src/ocaml/preprocess/parser_raw.ml" +# 51019 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -52119,7 +51040,7 @@ module Tables = struct let _v : (Asttypes.rec_flag) = # 5224 "src/ocaml/preprocess/parser_raw.mly" ( Recursive ) -# 52123 "src/ocaml/preprocess/parser_raw.ml" +# 51044 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -52141,19 +51062,17 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_fields_ in let _endpos = _endpos_fields_ in - let _v = - let eo = -# 123 "" + let _v : (Parsetree.expression option * + (Longident.t Location.loc * Parsetree.expression) list) = let eo = +# 124 "" ( None ) -# 52149 "src/ocaml/preprocess/parser_raw.ml" - in - ( +# 51070 "src/ocaml/preprocess/parser_raw.ml" + in + # 3639 "src/ocaml/preprocess/parser_raw.mly" ( eo, fields ) -# 52154 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression option * - (Longident.t Location.loc * Parsetree.expression) list)) - in +# 51075 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -52188,26 +51107,24 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_x_ in let _endpos = _endpos_fields_ in - let _v = - let eo = - let x = -# 196 "" + let _v : (Parsetree.expression option * + (Longident.t Location.loc * Parsetree.expression) list) = let eo = + let x = +# 191 "" ( x ) -# 52197 "src/ocaml/preprocess/parser_raw.ml" - in - +# 51116 "src/ocaml/preprocess/parser_raw.ml" + in + # 126 "" ( Some x ) -# 52202 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 51121 "src/ocaml/preprocess/parser_raw.ml" + + in + # 3639 "src/ocaml/preprocess/parser_raw.mly" ( eo, fields ) -# 52208 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression option * - (Longident.t Location.loc * Parsetree.expression) list)) - in +# 51127 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -52245,7 +51162,7 @@ module Tables = struct let _v : (Parsetree.jkind_annotation list) = # 4181 "src/ocaml/preprocess/parser_raw.mly" ( [jkind2; jkind1] ) -# 52249 "src/ocaml/preprocess/parser_raw.ml" +# 51166 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -52284,7 +51201,7 @@ module Tables = struct let _v : (Parsetree.jkind_annotation list) = # 4185 "src/ocaml/preprocess/parser_raw.mly" ( jkind :: jkinds ) -# 52288 "src/ocaml/preprocess/parser_raw.ml" +# 51205 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -52309,21 +51226,19 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_d_ in let _endpos = _endpos_d_ in - let _v = - let x = + let _v : (Parsetree.constructor_declaration list) = let x = # 4287 "src/ocaml/preprocess/parser_raw.mly" ( let cid, vars, args, res, attrs, loc, info = d in Type.constructor cid ~vars ~args ?res ~attrs ~loc ~info ) -# 52320 "src/ocaml/preprocess/parser_raw.ml" - in - ( +# 51236 "src/ocaml/preprocess/parser_raw.ml" + in + # 1528 "src/ocaml/preprocess/parser_raw.mly" ( [x] ) -# 52325 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.constructor_declaration list)) - in +# 51241 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -52347,21 +51262,19 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_d_ in let _endpos = _endpos_d_ in - let _v = - let x = + let _v : (Parsetree.constructor_declaration list) = let x = # 4287 "src/ocaml/preprocess/parser_raw.mly" ( let cid, vars, args, res, attrs, loc, info = d in Type.constructor cid ~vars ~args ?res ~attrs ~loc ~info ) -# 52358 "src/ocaml/preprocess/parser_raw.ml" - in - ( +# 51272 "src/ocaml/preprocess/parser_raw.ml" + in + # 1531 "src/ocaml/preprocess/parser_raw.mly" ( [x] ) -# 52363 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.constructor_declaration list)) - in +# 51277 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -52392,21 +51305,19 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_xs_ in let _endpos = _endpos_d_ in - let _v = - let x = + let _v : (Parsetree.constructor_declaration list) = let x = # 4287 "src/ocaml/preprocess/parser_raw.mly" ( let cid, vars, args, res, attrs, loc, info = d in Type.constructor cid ~vars ~args ?res ~attrs ~loc ~info ) -# 52403 "src/ocaml/preprocess/parser_raw.ml" - in - ( +# 51315 "src/ocaml/preprocess/parser_raw.ml" + in + # 1535 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 52408 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.constructor_declaration list)) - in +# 51320 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -52430,28 +51341,26 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_d_ in let _endpos = _endpos_d_ in - let _v = - let x = - let _1 = + let _v : (Parsetree.extension_constructor list) = let x = + let _1 = # 4416 "src/ocaml/preprocess/parser_raw.mly" ( let name, vars, args, res, attrs, loc, info = d in Te.decl name ~vars ~args ?res ~attrs ~loc ~info ) -# 52442 "src/ocaml/preprocess/parser_raw.ml" - in - +# 51352 "src/ocaml/preprocess/parser_raw.ml" + in + # 4410 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 52447 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 51357 "src/ocaml/preprocess/parser_raw.ml" + + in + # 1528 "src/ocaml/preprocess/parser_raw.mly" ( [x] ) -# 52453 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.extension_constructor list)) - in +# 51363 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -52472,18 +51381,16 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v = - let x = + let _v : (Parsetree.extension_constructor list) = let x = # 4412 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 52480 "src/ocaml/preprocess/parser_raw.ml" - in - ( +# 51388 "src/ocaml/preprocess/parser_raw.ml" + in + # 1528 "src/ocaml/preprocess/parser_raw.mly" ( [x] ) -# 52485 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.extension_constructor list)) - in +# 51393 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -52507,28 +51414,26 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_d_ in let _endpos = _endpos_d_ in - let _v = - let x = - let _1 = + let _v : (Parsetree.extension_constructor list) = let x = + let _1 = # 4416 "src/ocaml/preprocess/parser_raw.mly" ( let name, vars, args, res, attrs, loc, info = d in Te.decl name ~vars ~args ?res ~attrs ~loc ~info ) -# 52519 "src/ocaml/preprocess/parser_raw.ml" - in - +# 51425 "src/ocaml/preprocess/parser_raw.ml" + in + # 4410 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 52524 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 51430 "src/ocaml/preprocess/parser_raw.ml" + + in + # 1531 "src/ocaml/preprocess/parser_raw.mly" ( [x] ) -# 52530 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.extension_constructor list)) - in +# 51436 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -52549,18 +51454,16 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v = - let x = + let _v : (Parsetree.extension_constructor list) = let x = # 4412 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 52557 "src/ocaml/preprocess/parser_raw.ml" - in - ( +# 51461 "src/ocaml/preprocess/parser_raw.ml" + in + # 1531 "src/ocaml/preprocess/parser_raw.mly" ( [x] ) -# 52562 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.extension_constructor list)) - in +# 51466 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -52591,28 +51494,26 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_xs_ in let _endpos = _endpos_d_ in - let _v = - let x = - let _1 = + let _v : (Parsetree.extension_constructor list) = let x = + let _1 = # 4416 "src/ocaml/preprocess/parser_raw.mly" ( let name, vars, args, res, attrs, loc, info = d in Te.decl name ~vars ~args ?res ~attrs ~loc ~info ) -# 52603 "src/ocaml/preprocess/parser_raw.ml" - in - +# 51505 "src/ocaml/preprocess/parser_raw.ml" + in + # 4410 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 52608 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 51510 "src/ocaml/preprocess/parser_raw.ml" + + in + # 1535 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 52614 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.extension_constructor list)) - in +# 51516 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -52640,18 +51541,16 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_xs_ in let _endpos = _endpos__1_ in - let _v = - let x = + let _v : (Parsetree.extension_constructor list) = let x = # 4412 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 52648 "src/ocaml/preprocess/parser_raw.ml" - in - ( +# 51548 "src/ocaml/preprocess/parser_raw.ml" + in + # 1535 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 52653 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.extension_constructor list)) - in +# 51553 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -52675,21 +51574,19 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_d_ in let _endpos = _endpos_d_ in - let _v = - let x = + let _v : (Parsetree.extension_constructor list) = let x = # 4416 "src/ocaml/preprocess/parser_raw.mly" ( let name, vars, args, res, attrs, loc, info = d in Te.decl name ~vars ~args ?res ~attrs ~loc ~info ) -# 52686 "src/ocaml/preprocess/parser_raw.ml" - in - ( +# 51584 "src/ocaml/preprocess/parser_raw.ml" + in + # 1528 "src/ocaml/preprocess/parser_raw.mly" ( [x] ) -# 52691 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.extension_constructor list)) - in +# 51589 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -52713,21 +51610,19 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_d_ in let _endpos = _endpos_d_ in - let _v = - let x = + let _v : (Parsetree.extension_constructor list) = let x = # 4416 "src/ocaml/preprocess/parser_raw.mly" ( let name, vars, args, res, attrs, loc, info = d in Te.decl name ~vars ~args ?res ~attrs ~loc ~info ) -# 52724 "src/ocaml/preprocess/parser_raw.ml" - in - ( +# 51620 "src/ocaml/preprocess/parser_raw.ml" + in + # 1531 "src/ocaml/preprocess/parser_raw.mly" ( [x] ) -# 52729 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.extension_constructor list)) - in +# 51625 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -52758,21 +51653,19 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_xs_ in let _endpos = _endpos_d_ in - let _v = - let x = + let _v : (Parsetree.extension_constructor list) = let x = # 4416 "src/ocaml/preprocess/parser_raw.mly" ( let name, vars, args, res, attrs, loc, info = d in Te.decl name ~vars ~args ?res ~attrs ~loc ~info ) -# 52769 "src/ocaml/preprocess/parser_raw.ml" - in - ( +# 51663 "src/ocaml/preprocess/parser_raw.ml" + in + # 1535 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 52774 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.extension_constructor list)) - in +# 51668 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -52807,32 +51700,30 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_xs_ in let _endpos = _endpos__1_ in - let _v = - let x = - let _1 = - let _1 = + let _v : ((string option * Parsetree.expression) list) = let x = + let _1 = + let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 52817 "src/ocaml/preprocess/parser_raw.ml" - in - +# 51709 "src/ocaml/preprocess/parser_raw.ml" + in + # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 52822 "src/ocaml/preprocess/parser_raw.ml" - - in +# 51714 "src/ocaml/preprocess/parser_raw.ml" + in + # 3591 "src/ocaml/preprocess/parser_raw.mly" ( None, _1 ) -# 52828 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 51720 "src/ocaml/preprocess/parser_raw.ml" + + in + # 3607 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 52834 "src/ocaml/preprocess/parser_raw.ml" - : ((string option * Parsetree.expression) list)) - in +# 51726 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -52888,51 +51779,50 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_xs_ in let _endpos = _endpos_xs_inlined1_ in - let _v = - let x = - let (_endpos_xs_, xs) = (_endpos_xs_inlined1_, xs_inlined1) in + let _v : ((string option * Parsetree.expression) list) = let x = + let (_endpos_xs_, xs) = (_endpos_xs_inlined1_, xs_inlined1) in + let _1 = let _1 = - let _1 = - let _3 = - let xs = - let xs = -# 264 "" + let _3 = + let xs = + let xs = +# 253 "" ( List.rev xs ) -# 52902 "src/ocaml/preprocess/parser_raw.ml" - in - +# 51792 "src/ocaml/preprocess/parser_raw.ml" + in + # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 52907 "src/ocaml/preprocess/parser_raw.ml" - - in +# 51797 "src/ocaml/preprocess/parser_raw.ml" + in + # 3510 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 52913 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__3_ = _endpos_xs_ in +# 51803 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__3_ = _endpos_xs_ in + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in - + let _1 = _1_inlined1 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 52924 "src/ocaml/preprocess/parser_raw.ml" - - in +# 51814 "src/ocaml/preprocess/parser_raw.ml" + in + # 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 52930 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 51820 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2718 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in @@ -52946,27 +51836,26 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 52950 "src/ocaml/preprocess/parser_raw.ml" - - in +# 51840 "src/ocaml/preprocess/parser_raw.ml" + in + # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 52956 "src/ocaml/preprocess/parser_raw.ml" - - in +# 51846 "src/ocaml/preprocess/parser_raw.ml" + in + # 3591 "src/ocaml/preprocess/parser_raw.mly" ( None, _1 ) -# 52962 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 51852 "src/ocaml/preprocess/parser_raw.ml" + + in + # 3607 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 52968 "src/ocaml/preprocess/parser_raw.ml" - : ((string option * Parsetree.expression) list)) - in +# 51858 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -53005,28 +51894,26 @@ module Tables = struct let _1 : ( # 1082 "src/ocaml/preprocess/parser_raw.mly" (string) -# 53009 "src/ocaml/preprocess/parser_raw.ml" +# 51898 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _2 : unit = Obj.magic _2 in let xs : ((string option * Parsetree.expression) list) = Obj.magic xs in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_xs_ in let _endpos = _endpos__2_inlined1_ in - let _v = - let x = - let _2 = _2_inlined1 in - + let _v : ((string option * Parsetree.expression) list) = let x = + let _2 = _2_inlined1 in + # 3593 "src/ocaml/preprocess/parser_raw.mly" ( Some _1, _2 ) -# 53022 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 51910 "src/ocaml/preprocess/parser_raw.ml" + + in + # 3607 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 53028 "src/ocaml/preprocess/parser_raw.ml" - : ((string option * Parsetree.expression) list)) - in +# 51916 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -53064,7 +51951,7 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 53068 "src/ocaml/preprocess/parser_raw.ml" +# 51955 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _1 : unit = Obj.magic _1 in let _2 : unit = Obj.magic _2 in @@ -53072,22 +51959,20 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_xs_ in let _endpos = _endpos_label_ in - let _v = - let x = - let _loc_label_ = (_startpos_label_, _endpos_label_) in - + let _v : ((string option * Parsetree.expression) list) = let x = + let _loc_label_ = (_startpos_label_, _endpos_label_) in + # 3595 "src/ocaml/preprocess/parser_raw.mly" ( let loc = _loc_label_ in Some label, mkexpvar ~loc label ) -# 53083 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 51969 "src/ocaml/preprocess/parser_raw.ml" + + in + # 3607 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 53089 "src/ocaml/preprocess/parser_raw.ml" - : ((string option * Parsetree.expression) list)) - in +# 51975 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -53145,7 +52030,7 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 53149 "src/ocaml/preprocess/parser_raw.ml" +# 52034 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _2_inlined1 : unit = Obj.magic _2_inlined1 in let _1 : unit = Obj.magic _1 in @@ -53154,25 +52039,23 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_xs_ in let _endpos = _endpos__5_ in - let _v = - let x = - let _startpos__2_ = _startpos__2_inlined1_ in - let _endpos = _endpos__5_ in - let _loc_label_ = (_startpos_label_, _endpos_label_) in - + let _v : ((string option * Parsetree.expression) list) = let x = + let _startpos__2_ = _startpos__2_inlined1_ in + let _endpos = _endpos__5_ in + let _loc_label_ = (_startpos_label_, _endpos_label_) in + # 3598 "src/ocaml/preprocess/parser_raw.mly" ( Some label, mkexp_type_constraint_with_modes ~loc:(_startpos__2_, _endpos) ~modes:[] (mkexpvar ~loc:_loc_label_ label) c ) -# 53168 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 52052 "src/ocaml/preprocess/parser_raw.ml" + + in + # 3607 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 53174 "src/ocaml/preprocess/parser_raw.ml" - : ((string option * Parsetree.expression) list)) - in +# 52058 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -53207,45 +52090,43 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined1_ in - let _v = - let x2 = - let _1 = _1_inlined1 in - let _1 = - let _1 = + let _v : ((string option * Parsetree.expression) list) = let x2 = + let _1 = _1_inlined1 in + let _1 = + let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 53218 "src/ocaml/preprocess/parser_raw.ml" - in - +# 52100 "src/ocaml/preprocess/parser_raw.ml" + in + # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 53223 "src/ocaml/preprocess/parser_raw.ml" - - in +# 52105 "src/ocaml/preprocess/parser_raw.ml" + in + # 3591 "src/ocaml/preprocess/parser_raw.mly" ( None, _1 ) -# 53229 "src/ocaml/preprocess/parser_raw.ml" - - in - let x1 = - let _1 = +# 52111 "src/ocaml/preprocess/parser_raw.ml" + + in + let x1 = + let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 53236 "src/ocaml/preprocess/parser_raw.ml" - in - +# 52118 "src/ocaml/preprocess/parser_raw.ml" + in + # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 53241 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 52123 "src/ocaml/preprocess/parser_raw.ml" + + in + # 3612 "src/ocaml/preprocess/parser_raw.mly" ( [ x2; None, x1 ] ) -# 53247 "src/ocaml/preprocess/parser_raw.ml" - : ((string option * Parsetree.expression) list)) - in +# 52129 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -53301,51 +52182,50 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_xs_ in - let _v = - let x2 = - let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in + let _v : ((string option * Parsetree.expression) list) = let x2 = + let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in + let _1 = let _1 = - let _1 = - let _3 = - let xs = - let xs = -# 264 "" + let _3 = + let xs = + let xs = +# 253 "" ( List.rev xs ) -# 53315 "src/ocaml/preprocess/parser_raw.ml" - in - +# 52195 "src/ocaml/preprocess/parser_raw.ml" + in + # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 53320 "src/ocaml/preprocess/parser_raw.ml" - - in +# 52200 "src/ocaml/preprocess/parser_raw.ml" + in + # 3510 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 53326 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__3_ = _endpos_xs_ in +# 52206 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__3_ = _endpos_xs_ in + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in - + let _1 = _1_inlined1 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 53337 "src/ocaml/preprocess/parser_raw.ml" - - in +# 52217 "src/ocaml/preprocess/parser_raw.ml" + in + # 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 53343 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 52223 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2718 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in @@ -53359,39 +52239,38 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 53363 "src/ocaml/preprocess/parser_raw.ml" - - in +# 52243 "src/ocaml/preprocess/parser_raw.ml" + in + # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 53369 "src/ocaml/preprocess/parser_raw.ml" - - in +# 52249 "src/ocaml/preprocess/parser_raw.ml" + in + # 3591 "src/ocaml/preprocess/parser_raw.mly" ( None, _1 ) -# 53375 "src/ocaml/preprocess/parser_raw.ml" - - in - let x1 = - let _1 = +# 52255 "src/ocaml/preprocess/parser_raw.ml" + + in + let x1 = + let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 53382 "src/ocaml/preprocess/parser_raw.ml" - in - +# 52262 "src/ocaml/preprocess/parser_raw.ml" + in + # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 53387 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 52267 "src/ocaml/preprocess/parser_raw.ml" + + in + # 3612 "src/ocaml/preprocess/parser_raw.mly" ( [ x2; None, x1 ] ) -# 53393 "src/ocaml/preprocess/parser_raw.ml" - : ((string option * Parsetree.expression) list)) - in +# 52273 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -53430,40 +52309,38 @@ module Tables = struct let _1_inlined1 : ( # 1082 "src/ocaml/preprocess/parser_raw.mly" (string) -# 53434 "src/ocaml/preprocess/parser_raw.ml" +# 52313 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in let _1 : (Parsetree.expression) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__2_inlined1_ in - let _v = - let x2 = - let (_2, _1) = (_2_inlined1, _1_inlined1) in - + let _v : ((string option * Parsetree.expression) list) = let x2 = + let (_2, _1) = (_2_inlined1, _1_inlined1) in + # 3593 "src/ocaml/preprocess/parser_raw.mly" ( Some _1, _2 ) -# 53447 "src/ocaml/preprocess/parser_raw.ml" - - in - let x1 = - let _1 = +# 52325 "src/ocaml/preprocess/parser_raw.ml" + + in + let x1 = + let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 53454 "src/ocaml/preprocess/parser_raw.ml" - in - +# 52332 "src/ocaml/preprocess/parser_raw.ml" + in + # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 53459 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 52337 "src/ocaml/preprocess/parser_raw.ml" + + in + # 3612 "src/ocaml/preprocess/parser_raw.mly" ( [ x2; None, x1 ] ) -# 53465 "src/ocaml/preprocess/parser_raw.ml" - : ((string option * Parsetree.expression) list)) - in +# 52343 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -53501,7 +52378,7 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 53505 "src/ocaml/preprocess/parser_raw.ml" +# 52382 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in @@ -53509,34 +52386,32 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_label_ in - let _v = - let x2 = - let _loc_label_ = (_startpos_label_, _endpos_label_) in - + let _v : ((string option * Parsetree.expression) list) = let x2 = + let _loc_label_ = (_startpos_label_, _endpos_label_) in + # 3595 "src/ocaml/preprocess/parser_raw.mly" ( let loc = _loc_label_ in Some label, mkexpvar ~loc label ) -# 53520 "src/ocaml/preprocess/parser_raw.ml" - - in - let x1 = - let _1 = +# 52396 "src/ocaml/preprocess/parser_raw.ml" + + in + let x1 = + let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 53527 "src/ocaml/preprocess/parser_raw.ml" - in - +# 52403 "src/ocaml/preprocess/parser_raw.ml" + in + # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 53532 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 52408 "src/ocaml/preprocess/parser_raw.ml" + + in + # 3612 "src/ocaml/preprocess/parser_raw.mly" ( [ x2; None, x1 ] ) -# 53538 "src/ocaml/preprocess/parser_raw.ml" - : ((string option * Parsetree.expression) list)) - in +# 52414 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -53594,7 +52469,7 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 53598 "src/ocaml/preprocess/parser_raw.ml" +# 52473 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _2_inlined1 : unit = Obj.magic _2_inlined1 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in @@ -53603,37 +52478,35 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__5_ in - let _v = - let x2 = - let _startpos__2_ = _startpos__2_inlined1_ in - let _endpos = _endpos__5_ in - let _loc_label_ = (_startpos_label_, _endpos_label_) in - + let _v : ((string option * Parsetree.expression) list) = let x2 = + let _startpos__2_ = _startpos__2_inlined1_ in + let _endpos = _endpos__5_ in + let _loc_label_ = (_startpos_label_, _endpos_label_) in + # 3598 "src/ocaml/preprocess/parser_raw.mly" ( Some label, mkexp_type_constraint_with_modes ~loc:(_startpos__2_, _endpos) ~modes:[] (mkexpvar ~loc:_loc_label_ label) c ) -# 53617 "src/ocaml/preprocess/parser_raw.ml" - - in - let x1 = - let _1 = +# 52491 "src/ocaml/preprocess/parser_raw.ml" + + in + let x1 = + let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 53624 "src/ocaml/preprocess/parser_raw.ml" - in - +# 52498 "src/ocaml/preprocess/parser_raw.ml" + in + # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 53629 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 52503 "src/ocaml/preprocess/parser_raw.ml" + + in + # 3612 "src/ocaml/preprocess/parser_raw.mly" ( [ x2; None, x1 ] ) -# 53635 "src/ocaml/preprocess/parser_raw.ml" - : ((string option * Parsetree.expression) list)) - in +# 52509 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -53689,69 +52562,68 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined3_ in - let _v = - let x2 = - let _1 = _1_inlined3 in - let _1 = - let _1 = + let _v : ((string option * Parsetree.expression) list) = let x2 = + let _1 = _1_inlined3 in + let _1 = + let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 53700 "src/ocaml/preprocess/parser_raw.ml" - in - +# 52572 "src/ocaml/preprocess/parser_raw.ml" + in + # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 53705 "src/ocaml/preprocess/parser_raw.ml" - - in +# 52577 "src/ocaml/preprocess/parser_raw.ml" + in + # 3591 "src/ocaml/preprocess/parser_raw.mly" ( None, _1 ) -# 53711 "src/ocaml/preprocess/parser_raw.ml" - - in - let x1 = - let _1 = - let _3 = - let xs = - let xs = -# 264 "" +# 52583 "src/ocaml/preprocess/parser_raw.ml" + + in + let x1 = + let _1 = + let _3 = + let xs = + let xs = +# 253 "" ( List.rev xs ) -# 53721 "src/ocaml/preprocess/parser_raw.ml" - in - +# 52593 "src/ocaml/preprocess/parser_raw.ml" + in + # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 53726 "src/ocaml/preprocess/parser_raw.ml" - - in +# 52598 "src/ocaml/preprocess/parser_raw.ml" + in + # 3510 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 53732 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__3_ = _endpos_xs_ in +# 52604 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__3_ = _endpos_xs_ in + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in - + let _1 = _1_inlined1 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 53743 "src/ocaml/preprocess/parser_raw.ml" - - in +# 52615 "src/ocaml/preprocess/parser_raw.ml" + in + # 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 53749 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 52621 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2718 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in @@ -53765,21 +52637,20 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 53769 "src/ocaml/preprocess/parser_raw.ml" - - in +# 52641 "src/ocaml/preprocess/parser_raw.ml" + in + # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 53775 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 52647 "src/ocaml/preprocess/parser_raw.ml" + + in + # 3612 "src/ocaml/preprocess/parser_raw.mly" ( [ x2; None, x1 ] ) -# 53781 "src/ocaml/preprocess/parser_raw.ml" - : ((string option * Parsetree.expression) list)) - in +# 52653 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -53856,51 +52727,50 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_xs_inlined1_ in - let _v = - let x2 = - let (_endpos_xs_, _startpos__1_, xs, _1_inlined2, _1_inlined1) = (_endpos_xs_inlined1_, _startpos__1_inlined3_, xs_inlined1, _1_inlined5, _1_inlined4) in + let _v : ((string option * Parsetree.expression) list) = let x2 = + let (_endpos_xs_, _startpos__1_, xs, _1_inlined2, _1_inlined1) = (_endpos_xs_inlined1_, _startpos__1_inlined3_, xs_inlined1, _1_inlined5, _1_inlined4) in + let _1 = let _1 = - let _1 = - let _3 = - let xs = - let xs = -# 264 "" + let _3 = + let xs = + let xs = +# 253 "" ( List.rev xs ) -# 53870 "src/ocaml/preprocess/parser_raw.ml" - in - +# 52740 "src/ocaml/preprocess/parser_raw.ml" + in + # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 53875 "src/ocaml/preprocess/parser_raw.ml" - - in +# 52745 "src/ocaml/preprocess/parser_raw.ml" + in + # 3510 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 53881 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__3_ = _endpos_xs_ in +# 52751 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__3_ = _endpos_xs_ in + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in - + let _1 = _1_inlined1 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 53892 "src/ocaml/preprocess/parser_raw.ml" - - in +# 52762 "src/ocaml/preprocess/parser_raw.ml" + in + # 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 53898 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 52768 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2718 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in @@ -53914,63 +52784,63 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 53918 "src/ocaml/preprocess/parser_raw.ml" - - in +# 52788 "src/ocaml/preprocess/parser_raw.ml" + in + # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 53924 "src/ocaml/preprocess/parser_raw.ml" - - in +# 52794 "src/ocaml/preprocess/parser_raw.ml" + in + # 3591 "src/ocaml/preprocess/parser_raw.mly" ( None, _1 ) -# 53930 "src/ocaml/preprocess/parser_raw.ml" - - in - let x1 = - let _1 = - let _3 = - let xs = - let xs = -# 264 "" +# 52800 "src/ocaml/preprocess/parser_raw.ml" + + in + let x1 = + let _1 = + let _3 = + let xs = + let xs = +# 253 "" ( List.rev xs ) -# 53940 "src/ocaml/preprocess/parser_raw.ml" - in - +# 52810 "src/ocaml/preprocess/parser_raw.ml" + in + # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 53945 "src/ocaml/preprocess/parser_raw.ml" - - in +# 52815 "src/ocaml/preprocess/parser_raw.ml" + in + # 3510 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 53951 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__3_ = _endpos_xs_ in +# 52821 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__3_ = _endpos_xs_ in + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in - + let _1 = _1_inlined1 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 53962 "src/ocaml/preprocess/parser_raw.ml" - - in +# 52832 "src/ocaml/preprocess/parser_raw.ml" + in + # 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 53968 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 52838 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2718 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in @@ -53984,21 +52854,20 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 53988 "src/ocaml/preprocess/parser_raw.ml" - - in +# 52858 "src/ocaml/preprocess/parser_raw.ml" + in + # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 53994 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 52864 "src/ocaml/preprocess/parser_raw.ml" + + in + # 3612 "src/ocaml/preprocess/parser_raw.mly" ( [ x2; None, x1 ] ) -# 54000 "src/ocaml/preprocess/parser_raw.ml" - : ((string option * Parsetree.expression) list)) - in +# 52870 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -54055,7 +52924,7 @@ module Tables = struct let _1_inlined3 : ( # 1082 "src/ocaml/preprocess/parser_raw.mly" (string) -# 54059 "src/ocaml/preprocess/parser_raw.ml" +# 52928 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined3 in let _2 : unit = Obj.magic _2 in let xs : (Parsetree.case list) = Obj.magic xs in @@ -54065,57 +52934,56 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__2_inlined1_ in - let _v = - let x2 = - let (_2, _1) = (_2_inlined1, _1_inlined3) in - + let _v : ((string option * Parsetree.expression) list) = let x2 = + let (_2, _1) = (_2_inlined1, _1_inlined3) in + # 3593 "src/ocaml/preprocess/parser_raw.mly" ( Some _1, _2 ) -# 54075 "src/ocaml/preprocess/parser_raw.ml" - - in - let x1 = - let _1 = - let _3 = - let xs = - let xs = -# 264 "" +# 52943 "src/ocaml/preprocess/parser_raw.ml" + + in + let x1 = + let _1 = + let _3 = + let xs = + let xs = +# 253 "" ( List.rev xs ) -# 54085 "src/ocaml/preprocess/parser_raw.ml" - in - +# 52953 "src/ocaml/preprocess/parser_raw.ml" + in + # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 54090 "src/ocaml/preprocess/parser_raw.ml" - - in +# 52958 "src/ocaml/preprocess/parser_raw.ml" + in + # 3510 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 54096 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__3_ = _endpos_xs_ in +# 52964 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__3_ = _endpos_xs_ in + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in - + let _1 = _1_inlined1 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 54107 "src/ocaml/preprocess/parser_raw.ml" - - in +# 52975 "src/ocaml/preprocess/parser_raw.ml" + in + # 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 54113 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 52981 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2718 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in @@ -54129,21 +52997,20 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 54133 "src/ocaml/preprocess/parser_raw.ml" - - in +# 53001 "src/ocaml/preprocess/parser_raw.ml" + in + # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 54139 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 53007 "src/ocaml/preprocess/parser_raw.ml" + + in + # 3612 "src/ocaml/preprocess/parser_raw.mly" ( [ x2; None, x1 ] ) -# 54145 "src/ocaml/preprocess/parser_raw.ml" - : ((string option * Parsetree.expression) list)) - in +# 53013 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -54199,7 +53066,7 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 54203 "src/ocaml/preprocess/parser_raw.ml" +# 53070 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _1_inlined3 : unit = Obj.magic _1_inlined3 in let _2 : unit = Obj.magic _2 in @@ -54210,58 +53077,57 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_label_ in - let _v = - let x2 = - let _loc_label_ = (_startpos_label_, _endpos_label_) in - + let _v : ((string option * Parsetree.expression) list) = let x2 = + let _loc_label_ = (_startpos_label_, _endpos_label_) in + # 3595 "src/ocaml/preprocess/parser_raw.mly" ( let loc = _loc_label_ in Some label, mkexpvar ~loc label ) -# 54221 "src/ocaml/preprocess/parser_raw.ml" - - in - let x1 = - let _1 = - let _3 = - let xs = - let xs = -# 264 "" +# 53087 "src/ocaml/preprocess/parser_raw.ml" + + in + let x1 = + let _1 = + let _3 = + let xs = + let xs = +# 253 "" ( List.rev xs ) -# 54231 "src/ocaml/preprocess/parser_raw.ml" - in - +# 53097 "src/ocaml/preprocess/parser_raw.ml" + in + # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 54236 "src/ocaml/preprocess/parser_raw.ml" - - in +# 53102 "src/ocaml/preprocess/parser_raw.ml" + in + # 3510 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 54242 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__3_ = _endpos_xs_ in +# 53108 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__3_ = _endpos_xs_ in + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in - + let _1 = _1_inlined1 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 54253 "src/ocaml/preprocess/parser_raw.ml" - - in +# 53119 "src/ocaml/preprocess/parser_raw.ml" + in + # 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 54259 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 53125 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2718 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in @@ -54275,21 +53141,20 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 54279 "src/ocaml/preprocess/parser_raw.ml" - - in +# 53145 "src/ocaml/preprocess/parser_raw.ml" + in + # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 54285 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 53151 "src/ocaml/preprocess/parser_raw.ml" + + in + # 3612 "src/ocaml/preprocess/parser_raw.mly" ( [ x2; None, x1 ] ) -# 54291 "src/ocaml/preprocess/parser_raw.ml" - : ((string option * Parsetree.expression) list)) - in +# 53157 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -54365,7 +53230,7 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 54369 "src/ocaml/preprocess/parser_raw.ml" +# 53234 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _2_inlined1 : unit = Obj.magic _2_inlined1 in let _1_inlined3 : unit = Obj.magic _1_inlined3 in @@ -54377,61 +53242,60 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__5_ in - let _v = - let x2 = - let _startpos__2_ = _startpos__2_inlined1_ in - let _endpos = _endpos__5_ in - let _loc_label_ = (_startpos_label_, _endpos_label_) in - + let _v : ((string option * Parsetree.expression) list) = let x2 = + let _startpos__2_ = _startpos__2_inlined1_ in + let _endpos = _endpos__5_ in + let _loc_label_ = (_startpos_label_, _endpos_label_) in + # 3598 "src/ocaml/preprocess/parser_raw.mly" ( Some label, mkexp_type_constraint_with_modes ~loc:(_startpos__2_, _endpos) ~modes:[] (mkexpvar ~loc:_loc_label_ label) c ) -# 54391 "src/ocaml/preprocess/parser_raw.ml" - - in - let x1 = - let _1 = - let _3 = - let xs = - let xs = -# 264 "" +# 53255 "src/ocaml/preprocess/parser_raw.ml" + + in + let x1 = + let _1 = + let _3 = + let xs = + let xs = +# 253 "" ( List.rev xs ) -# 54401 "src/ocaml/preprocess/parser_raw.ml" - in - +# 53265 "src/ocaml/preprocess/parser_raw.ml" + in + # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 54406 "src/ocaml/preprocess/parser_raw.ml" - - in +# 53270 "src/ocaml/preprocess/parser_raw.ml" + in + # 3510 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 54412 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__3_ = _endpos_xs_ in +# 53276 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__3_ = _endpos_xs_ in + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in - + let _1 = _1_inlined1 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 54423 "src/ocaml/preprocess/parser_raw.ml" - - in +# 53287 "src/ocaml/preprocess/parser_raw.ml" + in + # 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 54429 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 53293 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2718 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in @@ -54445,21 +53309,20 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 54449 "src/ocaml/preprocess/parser_raw.ml" - - in +# 53313 "src/ocaml/preprocess/parser_raw.ml" + in + # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 54455 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 53319 "src/ocaml/preprocess/parser_raw.ml" + + in + # 3612 "src/ocaml/preprocess/parser_raw.mly" ( [ x2; None, x1 ] ) -# 54461 "src/ocaml/preprocess/parser_raw.ml" - : ((string option * Parsetree.expression) list)) - in +# 53325 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -54500,37 +53363,35 @@ module Tables = struct let l1 : ( # 1082 "src/ocaml/preprocess/parser_raw.mly" (string) -# 54504 "src/ocaml/preprocess/parser_raw.ml" +# 53367 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic l1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_l1_ in let _endpos = _endpos__1_ in - let _v = - let x2 = - let _1 = - let _1 = + let _v : ((string option * Parsetree.expression) list) = let x2 = + let _1 = + let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 54515 "src/ocaml/preprocess/parser_raw.ml" - in - +# 53377 "src/ocaml/preprocess/parser_raw.ml" + in + # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 54520 "src/ocaml/preprocess/parser_raw.ml" - - in +# 53382 "src/ocaml/preprocess/parser_raw.ml" + in + # 3591 "src/ocaml/preprocess/parser_raw.mly" ( None, _1 ) -# 54526 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 53388 "src/ocaml/preprocess/parser_raw.ml" + + in + # 3616 "src/ocaml/preprocess/parser_raw.mly" ( [ x2; Some l1, x1 ] ) -# 54532 "src/ocaml/preprocess/parser_raw.ml" - : ((string option * Parsetree.expression) list)) - in +# 53394 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -54592,55 +53453,54 @@ module Tables = struct let l1 : ( # 1082 "src/ocaml/preprocess/parser_raw.mly" (string) -# 54596 "src/ocaml/preprocess/parser_raw.ml" +# 53457 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic l1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_l1_ in let _endpos = _endpos_xs_ in - let _v = - let x2 = + let _v : ((string option * Parsetree.expression) list) = let x2 = + let _1 = let _1 = - let _1 = - let _3 = - let xs = - let xs = -# 264 "" + let _3 = + let xs = + let xs = +# 253 "" ( List.rev xs ) -# 54610 "src/ocaml/preprocess/parser_raw.ml" - in - +# 53470 "src/ocaml/preprocess/parser_raw.ml" + in + # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 54615 "src/ocaml/preprocess/parser_raw.ml" - - in +# 53475 "src/ocaml/preprocess/parser_raw.ml" + in + # 3510 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 54621 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__3_ = _endpos_xs_ in +# 53481 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__3_ = _endpos_xs_ in + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in - + let _1 = _1_inlined1 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 54632 "src/ocaml/preprocess/parser_raw.ml" - - in +# 53492 "src/ocaml/preprocess/parser_raw.ml" + in + # 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 54638 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 53498 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2718 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in @@ -54654,27 +53514,26 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 54658 "src/ocaml/preprocess/parser_raw.ml" - - in +# 53518 "src/ocaml/preprocess/parser_raw.ml" + in + # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 54664 "src/ocaml/preprocess/parser_raw.ml" - - in +# 53524 "src/ocaml/preprocess/parser_raw.ml" + in + # 3591 "src/ocaml/preprocess/parser_raw.mly" ( None, _1 ) -# 54670 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 53530 "src/ocaml/preprocess/parser_raw.ml" + + in + # 3616 "src/ocaml/preprocess/parser_raw.mly" ( [ x2; Some l1, x1 ] ) -# 54676 "src/ocaml/preprocess/parser_raw.ml" - : ((string option * Parsetree.expression) list)) - in +# 53536 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -54719,30 +53578,28 @@ module Tables = struct let _1 : ( # 1082 "src/ocaml/preprocess/parser_raw.mly" (string) -# 54723 "src/ocaml/preprocess/parser_raw.ml" +# 53582 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _3 : unit = Obj.magic _3 in let x1 : (Parsetree.expression) = Obj.magic x1 in let l1 : ( # 1082 "src/ocaml/preprocess/parser_raw.mly" (string) -# 54730 "src/ocaml/preprocess/parser_raw.ml" +# 53589 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic l1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_l1_ in let _endpos = _endpos__2_ in - let _v = - let x2 = + let _v : ((string option * Parsetree.expression) list) = let x2 = # 3593 "src/ocaml/preprocess/parser_raw.mly" ( Some _1, _2 ) -# 54739 "src/ocaml/preprocess/parser_raw.ml" - in - ( +# 53597 "src/ocaml/preprocess/parser_raw.ml" + in + # 3616 "src/ocaml/preprocess/parser_raw.mly" ( [ x2; Some l1, x1 ] ) -# 54744 "src/ocaml/preprocess/parser_raw.ml" - : ((string option * Parsetree.expression) list)) - in +# 53602 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -54786,7 +53643,7 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 54790 "src/ocaml/preprocess/parser_raw.ml" +# 53647 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _1 : unit = Obj.magic _1 in let _3 : unit = Obj.magic _3 in @@ -54794,27 +53651,25 @@ module Tables = struct let l1 : ( # 1082 "src/ocaml/preprocess/parser_raw.mly" (string) -# 54798 "src/ocaml/preprocess/parser_raw.ml" +# 53655 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic l1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_l1_ in let _endpos = _endpos_label_ in - let _v = - let x2 = - let _loc_label_ = (_startpos_label_, _endpos_label_) in - + let _v : ((string option * Parsetree.expression) list) = let x2 = + let _loc_label_ = (_startpos_label_, _endpos_label_) in + # 3595 "src/ocaml/preprocess/parser_raw.mly" ( let loc = _loc_label_ in Some label, mkexpvar ~loc label ) -# 54810 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 53666 "src/ocaml/preprocess/parser_raw.ml" + + in + # 3616 "src/ocaml/preprocess/parser_raw.mly" ( [ x2; Some l1, x1 ] ) -# 54816 "src/ocaml/preprocess/parser_raw.ml" - : ((string option * Parsetree.expression) list)) - in +# 53672 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -54878,7 +53733,7 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 54882 "src/ocaml/preprocess/parser_raw.ml" +# 53737 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _2 : unit = Obj.magic _2 in let _1 : unit = Obj.magic _1 in @@ -54887,29 +53742,27 @@ module Tables = struct let l1 : ( # 1082 "src/ocaml/preprocess/parser_raw.mly" (string) -# 54891 "src/ocaml/preprocess/parser_raw.ml" +# 53746 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic l1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_l1_ in let _endpos = _endpos__5_ in - let _v = - let x2 = - let _endpos = _endpos__5_ in - let _loc_label_ = (_startpos_label_, _endpos_label_) in - + let _v : ((string option * Parsetree.expression) list) = let x2 = + let _endpos = _endpos__5_ in + let _loc_label_ = (_startpos_label_, _endpos_label_) in + # 3598 "src/ocaml/preprocess/parser_raw.mly" ( Some label, mkexp_type_constraint_with_modes ~loc:(_startpos__2_, _endpos) ~modes:[] (mkexpvar ~loc:_loc_label_ label) c ) -# 54905 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 53759 "src/ocaml/preprocess/parser_raw.ml" + + in + # 3616 "src/ocaml/preprocess/parser_raw.mly" ( [ x2; Some l1, x1 ] ) -# 54911 "src/ocaml/preprocess/parser_raw.ml" - : ((string option * Parsetree.expression) list)) - in +# 53765 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -54949,41 +53802,39 @@ module Tables = struct let l1 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 54953 "src/ocaml/preprocess/parser_raw.ml" +# 53806 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic l1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined1_ in - let _v = - let x2 = - let _1 = _1_inlined1 in - let _1 = - let _1 = + let _v : ((string option * Parsetree.expression) list) = let x2 = + let _1 = _1_inlined1 in + let _1 = + let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 54966 "src/ocaml/preprocess/parser_raw.ml" - in - +# 53818 "src/ocaml/preprocess/parser_raw.ml" + in + # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 54971 "src/ocaml/preprocess/parser_raw.ml" - - in +# 53823 "src/ocaml/preprocess/parser_raw.ml" + in + # 3591 "src/ocaml/preprocess/parser_raw.mly" ( None, _1 ) -# 54977 "src/ocaml/preprocess/parser_raw.ml" - - in - let _loc_l1_ = (_startpos_l1_, _endpos_l1_) in - ( +# 53829 "src/ocaml/preprocess/parser_raw.ml" + + in + let _loc_l1_ = (_startpos_l1_, _endpos_l1_) in + # 3620 "src/ocaml/preprocess/parser_raw.mly" ( let loc = _loc_l1_ in [ x2; Some l1, mkexpvar ~loc l1] ) -# 54985 "src/ocaml/preprocess/parser_raw.ml" - : ((string option * Parsetree.expression) list)) - in +# 53837 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -55044,57 +53895,56 @@ module Tables = struct let l1 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 55048 "src/ocaml/preprocess/parser_raw.ml" +# 53899 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic l1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_xs_ in - let _v = - let x2 = - let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in + let _v : ((string option * Parsetree.expression) list) = let x2 = + let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in + let _1 = let _1 = - let _1 = - let _3 = - let xs = - let xs = -# 264 "" + let _3 = + let xs = + let xs = +# 253 "" ( List.rev xs ) -# 55064 "src/ocaml/preprocess/parser_raw.ml" - in - +# 53914 "src/ocaml/preprocess/parser_raw.ml" + in + # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 55069 "src/ocaml/preprocess/parser_raw.ml" - - in +# 53919 "src/ocaml/preprocess/parser_raw.ml" + in + # 3510 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 55075 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__3_ = _endpos_xs_ in +# 53925 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__3_ = _endpos_xs_ in + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in - + let _1 = _1_inlined1 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 55086 "src/ocaml/preprocess/parser_raw.ml" - - in +# 53936 "src/ocaml/preprocess/parser_raw.ml" + in + # 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 55092 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 53942 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2718 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in @@ -55108,29 +53958,28 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 55112 "src/ocaml/preprocess/parser_raw.ml" - - in +# 53962 "src/ocaml/preprocess/parser_raw.ml" + in + # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 55118 "src/ocaml/preprocess/parser_raw.ml" - - in +# 53968 "src/ocaml/preprocess/parser_raw.ml" + in + # 3591 "src/ocaml/preprocess/parser_raw.mly" ( None, _1 ) -# 55124 "src/ocaml/preprocess/parser_raw.ml" - - in - let _loc_l1_ = (_startpos_l1_, _endpos_l1_) in - ( +# 53974 "src/ocaml/preprocess/parser_raw.ml" + + in + let _loc_l1_ = (_startpos_l1_, _endpos_l1_) in + # 3620 "src/ocaml/preprocess/parser_raw.mly" ( let loc = _loc_l1_ in [ x2; Some l1, mkexpvar ~loc l1] ) -# 55132 "src/ocaml/preprocess/parser_raw.ml" - : ((string option * Parsetree.expression) list)) - in +# 53982 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -55175,35 +54024,33 @@ module Tables = struct let _1_inlined1 : ( # 1082 "src/ocaml/preprocess/parser_raw.mly" (string) -# 55179 "src/ocaml/preprocess/parser_raw.ml" +# 54028 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined1 in let _3 : unit = Obj.magic _3 in let l1 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 55185 "src/ocaml/preprocess/parser_raw.ml" +# 54034 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic l1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in - let _v = - let x2 = - let _1 = _1_inlined1 in - + let _v : ((string option * Parsetree.expression) list) = let x2 = + let _1 = _1_inlined1 in + # 3593 "src/ocaml/preprocess/parser_raw.mly" ( Some _1, _2 ) -# 55197 "src/ocaml/preprocess/parser_raw.ml" - - in - let _loc_l1_ = (_startpos_l1_, _endpos_l1_) in - ( +# 54045 "src/ocaml/preprocess/parser_raw.ml" + + in + let _loc_l1_ = (_startpos_l1_, _endpos_l1_) in + # 3620 "src/ocaml/preprocess/parser_raw.mly" ( let loc = _loc_l1_ in [ x2; Some l1, mkexpvar ~loc l1] ) -# 55205 "src/ocaml/preprocess/parser_raw.ml" - : ((string option * Parsetree.expression) list)) - in +# 54053 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -55247,37 +54094,35 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 55251 "src/ocaml/preprocess/parser_raw.ml" +# 54098 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _3 : unit = Obj.magic _3 in let l1 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 55258 "src/ocaml/preprocess/parser_raw.ml" +# 54105 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic l1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_label_ in - let _v = - let x2 = - let _loc_label_ = (_startpos_label_, _endpos_label_) in - + let _v : ((string option * Parsetree.expression) list) = let x2 = + let _loc_label_ = (_startpos_label_, _endpos_label_) in + # 3595 "src/ocaml/preprocess/parser_raw.mly" ( let loc = _loc_label_ in Some label, mkexpvar ~loc label ) -# 55271 "src/ocaml/preprocess/parser_raw.ml" - - in - let _loc_l1_ = (_startpos_l1_, _endpos_l1_) in - ( +# 54117 "src/ocaml/preprocess/parser_raw.ml" + + in + let _loc_l1_ = (_startpos_l1_, _endpos_l1_) in + # 3620 "src/ocaml/preprocess/parser_raw.mly" ( let loc = _loc_l1_ in [ x2; Some l1, mkexpvar ~loc l1] ) -# 55279 "src/ocaml/preprocess/parser_raw.ml" - : ((string option * Parsetree.expression) list)) - in +# 54125 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -55341,7 +54186,7 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 55345 "src/ocaml/preprocess/parser_raw.ml" +# 54190 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _2 : unit = Obj.magic _2 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in @@ -55349,32 +54194,30 @@ module Tables = struct let l1 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 55353 "src/ocaml/preprocess/parser_raw.ml" +# 54198 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic l1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__5_ in - let _v = - let x2 = - let _endpos = _endpos__5_ in - let _loc_label_ = (_startpos_label_, _endpos_label_) in - + let _v : ((string option * Parsetree.expression) list) = let x2 = + let _endpos = _endpos__5_ in + let _loc_label_ = (_startpos_label_, _endpos_label_) in + # 3598 "src/ocaml/preprocess/parser_raw.mly" ( Some label, mkexp_type_constraint_with_modes ~loc:(_startpos__2_, _endpos) ~modes:[] (mkexpvar ~loc:_loc_label_ label) c ) -# 55368 "src/ocaml/preprocess/parser_raw.ml" - - in - let _loc_l1_ = (_startpos_l1_, _endpos_l1_) in - ( +# 54212 "src/ocaml/preprocess/parser_raw.ml" + + in + let _loc_l1_ = (_startpos_l1_, _endpos_l1_) in + # 3620 "src/ocaml/preprocess/parser_raw.mly" ( let loc = _loc_l1_ in [ x2; Some l1, mkexpvar ~loc l1] ) -# 55376 "src/ocaml/preprocess/parser_raw.ml" - : ((string option * Parsetree.expression) list)) - in +# 54220 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -55434,47 +54277,45 @@ module Tables = struct let l1 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 55438 "src/ocaml/preprocess/parser_raw.ml" +# 54281 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic l1 in let _2 : unit = Obj.magic _2 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined1_ in - let _v = - let x2 = - let _1 = _1_inlined1 in - let _1 = - let _1 = + let _v : ((string option * Parsetree.expression) list) = let x2 = + let _1 = _1_inlined1 in + let _1 = + let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 55452 "src/ocaml/preprocess/parser_raw.ml" - in - +# 54294 "src/ocaml/preprocess/parser_raw.ml" + in + # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 55457 "src/ocaml/preprocess/parser_raw.ml" - - in +# 54299 "src/ocaml/preprocess/parser_raw.ml" + in + # 3591 "src/ocaml/preprocess/parser_raw.mly" ( None, _1 ) -# 55463 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_x2_ = _endpos__1_inlined1_ in - let _endpos = _endpos_x2_ in - let _loc_l1_ = (_startpos_l1_, _endpos_l1_) in - ( +# 54305 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_x2_ = _endpos__1_inlined1_ in + let _endpos = _endpos_x2_ in + let _loc_l1_ = (_startpos_l1_, _endpos_l1_) in + # 3625 "src/ocaml/preprocess/parser_raw.mly" ( let x1 = mkexp_type_constraint_with_modes ~loc:(_startpos__2_, _endpos) ~modes:[] (mkexpvar ~loc:_loc_l1_ l1) c in [ x2; Some l1, x1] ) -# 55476 "src/ocaml/preprocess/parser_raw.ml" - : ((string option * Parsetree.expression) list)) - in +# 54318 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -55555,58 +54396,57 @@ module Tables = struct let l1 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 55559 "src/ocaml/preprocess/parser_raw.ml" +# 54400 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic l1 in let _2 : unit = Obj.magic _2 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_xs_ in - let _v = - let x2 = - let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in + let _v : ((string option * Parsetree.expression) list) = let x2 = + let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in + let _1 = let _1 = - let _1 = - let _3 = - let xs = - let xs = -# 264 "" + let _3 = + let xs = + let xs = +# 253 "" ( List.rev xs ) -# 55576 "src/ocaml/preprocess/parser_raw.ml" - in - +# 54416 "src/ocaml/preprocess/parser_raw.ml" + in + # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 55581 "src/ocaml/preprocess/parser_raw.ml" - - in +# 54421 "src/ocaml/preprocess/parser_raw.ml" + in + # 3510 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 55587 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__3_ = _endpos_xs_ in +# 54427 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__3_ = _endpos_xs_ in + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in - + let _1 = _1_inlined1 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 55598 "src/ocaml/preprocess/parser_raw.ml" - - in +# 54438 "src/ocaml/preprocess/parser_raw.ml" + in + # 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 55604 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 54444 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2718 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in @@ -55620,34 +54460,33 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 55624 "src/ocaml/preprocess/parser_raw.ml" - - in +# 54464 "src/ocaml/preprocess/parser_raw.ml" + in + # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 55630 "src/ocaml/preprocess/parser_raw.ml" - - in +# 54470 "src/ocaml/preprocess/parser_raw.ml" + in + # 3591 "src/ocaml/preprocess/parser_raw.mly" ( None, _1 ) -# 55636 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_x2_ = _endpos_xs_ in - let _endpos = _endpos_x2_ in - let _loc_l1_ = (_startpos_l1_, _endpos_l1_) in - ( +# 54476 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_x2_ = _endpos_xs_ in + let _endpos = _endpos_x2_ in + let _loc_l1_ = (_startpos_l1_, _endpos_l1_) in + # 3625 "src/ocaml/preprocess/parser_raw.mly" ( let x1 = mkexp_type_constraint_with_modes ~loc:(_startpos__2_, _endpos) ~modes:[] (mkexpvar ~loc:_loc_l1_ l1) c in [ x2; Some l1, x1] ) -# 55649 "src/ocaml/preprocess/parser_raw.ml" - : ((string option * Parsetree.expression) list)) - in +# 54489 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -55710,7 +54549,7 @@ module Tables = struct let _1_inlined1 : ( # 1082 "src/ocaml/preprocess/parser_raw.mly" (string) -# 55714 "src/ocaml/preprocess/parser_raw.ml" +# 54553 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined1 in let _6 : unit = Obj.magic _6 in let _5 : unit = Obj.magic _5 in @@ -55718,35 +54557,33 @@ module Tables = struct let l1 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 55722 "src/ocaml/preprocess/parser_raw.ml" +# 54561 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic l1 in let _2 : unit = Obj.magic _2 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__2_inlined1_ in - let _v = - let x2 = - let (_2, _1) = (_2_inlined1, _1_inlined1) in - + let _v : ((string option * Parsetree.expression) list) = let x2 = + let (_2, _1) = (_2_inlined1, _1_inlined1) in + # 3593 "src/ocaml/preprocess/parser_raw.mly" ( Some _1, _2 ) -# 55735 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_x2_ = _endpos__2_inlined1_ in - let _endpos = _endpos_x2_ in - let _loc_l1_ = (_startpos_l1_, _endpos_l1_) in - ( +# 54573 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_x2_ = _endpos__2_inlined1_ in + let _endpos = _endpos_x2_ in + let _loc_l1_ = (_startpos_l1_, _endpos_l1_) in + # 3625 "src/ocaml/preprocess/parser_raw.mly" ( let x1 = mkexp_type_constraint_with_modes ~loc:(_startpos__2_, _endpos) ~modes:[] (mkexpvar ~loc:_loc_l1_ l1) c in [ x2; Some l1, x1] ) -# 55748 "src/ocaml/preprocess/parser_raw.ml" - : ((string option * Parsetree.expression) list)) - in +# 54586 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -55808,7 +54645,7 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 55812 "src/ocaml/preprocess/parser_raw.ml" +# 54649 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _6 : unit = Obj.magic _6 in @@ -55817,36 +54654,34 @@ module Tables = struct let l1 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 55821 "src/ocaml/preprocess/parser_raw.ml" +# 54658 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic l1 in let _2 : unit = Obj.magic _2 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_label_ in - let _v = - let x2 = - let _loc_label_ = (_startpos_label_, _endpos_label_) in - + let _v : ((string option * Parsetree.expression) list) = let x2 = + let _loc_label_ = (_startpos_label_, _endpos_label_) in + # 3595 "src/ocaml/preprocess/parser_raw.mly" ( let loc = _loc_label_ in Some label, mkexpvar ~loc label ) -# 55835 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_x2_ = _endpos_label_ in - let _endpos = _endpos_x2_ in - let _loc_l1_ = (_startpos_l1_, _endpos_l1_) in - ( +# 54671 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_x2_ = _endpos_label_ in + let _endpos = _endpos_x2_ in + let _loc_l1_ = (_startpos_l1_, _endpos_l1_) in + # 3625 "src/ocaml/preprocess/parser_raw.mly" ( let x1 = mkexp_type_constraint_with_modes ~loc:(_startpos__2_, _endpos) ~modes:[] (mkexpvar ~loc:_loc_l1_ l1) c in [ x2; Some l1, x1] ) -# 55848 "src/ocaml/preprocess/parser_raw.ml" - : ((string option * Parsetree.expression) list)) - in +# 54684 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -55928,7 +54763,7 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 55932 "src/ocaml/preprocess/parser_raw.ml" +# 54767 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _2_inlined1 : unit = Obj.magic _2_inlined1 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in @@ -55938,39 +54773,37 @@ module Tables = struct let l1 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 55942 "src/ocaml/preprocess/parser_raw.ml" +# 54777 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic l1 in let _2 : unit = Obj.magic _2 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__5_inlined1_ in - let _v = - let x2 = - let (_endpos__5_, _startpos__2_, c) = (_endpos__5_inlined1_, _startpos__2_inlined1_, c_inlined1) in - let _endpos = _endpos__5_ in - let _loc_label_ = (_startpos_label_, _endpos_label_) in - + let _v : ((string option * Parsetree.expression) list) = let x2 = + let (_endpos__5_, _startpos__2_, c) = (_endpos__5_inlined1_, _startpos__2_inlined1_, c_inlined1) in + let _endpos = _endpos__5_ in + let _loc_label_ = (_startpos_label_, _endpos_label_) in + # 3598 "src/ocaml/preprocess/parser_raw.mly" ( Some label, mkexp_type_constraint_with_modes ~loc:(_startpos__2_, _endpos) ~modes:[] (mkexpvar ~loc:_loc_label_ label) c ) -# 55959 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_x2_ = _endpos__5_inlined1_ in - let _endpos = _endpos_x2_ in - let _loc_l1_ = (_startpos_l1_, _endpos_l1_) in - ( +# 54793 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_x2_ = _endpos__5_inlined1_ in + let _endpos = _endpos_x2_ in + let _loc_l1_ = (_startpos_l1_, _endpos_l1_) in + # 3625 "src/ocaml/preprocess/parser_raw.mly" ( let x1 = mkexp_type_constraint_with_modes ~loc:(_startpos__2_, _endpos) ~modes:[] (mkexpvar ~loc:_loc_l1_ l1) c in [ x2; Some l1, x1] ) -# 55972 "src/ocaml/preprocess/parser_raw.ml" - : ((string option * Parsetree.expression) list)) - in +# 54806 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -55994,7 +54827,7 @@ module Tables = struct let _v : (Asttypes.closed_flag * (string option * Parsetree.pattern) list) = # 3819 "src/ocaml/preprocess/parser_raw.mly" ( Closed, _1 ) -# 55998 "src/ocaml/preprocess/parser_raw.ml" +# 54831 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -56033,7 +54866,7 @@ module Tables = struct let _v : (Asttypes.closed_flag * (string option * Parsetree.pattern) list) = # 3821 "src/ocaml/preprocess/parser_raw.mly" ( Open, _1 ) -# 56037 "src/ocaml/preprocess/parser_raw.ml" +# 54870 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -56069,18 +54902,16 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in - let _v = - let _1 = + let _v : (Asttypes.closed_flag * (string option * Parsetree.pattern) list) = let _1 = # 3796 "src/ocaml/preprocess/parser_raw.mly" ( None, _1 ) -# 56077 "src/ocaml/preprocess/parser_raw.ml" - in - ( +# 54909 "src/ocaml/preprocess/parser_raw.ml" + in + # 3823 "src/ocaml/preprocess/parser_raw.mly" ( Open, [ _1 ] ) -# 56082 "src/ocaml/preprocess/parser_raw.ml" - : (Asttypes.closed_flag * (string option * Parsetree.pattern) list)) - in +# 54914 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -56121,26 +54952,24 @@ module Tables = struct let _1 : ( # 1082 "src/ocaml/preprocess/parser_raw.mly" (string) -# 56125 "src/ocaml/preprocess/parser_raw.ml" +# 54956 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in - let _v = - let _1 = - let _2 = _2_inlined1 in - + let _v : (Asttypes.closed_flag * (string option * Parsetree.pattern) list) = let _1 = + let _2 = _2_inlined1 in + # 3798 "src/ocaml/preprocess/parser_raw.mly" ( Some _1, _2 ) -# 56136 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 54966 "src/ocaml/preprocess/parser_raw.ml" + + in + # 3823 "src/ocaml/preprocess/parser_raw.mly" ( Open, [ _1 ] ) -# 56142 "src/ocaml/preprocess/parser_raw.ml" - : (Asttypes.closed_flag * (string option * Parsetree.pattern) list)) - in +# 54972 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -56180,28 +55009,26 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 56184 "src/ocaml/preprocess/parser_raw.ml" +# 55013 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in - let _v = - let _1 = - let _loc_label_ = (_startpos_label_, _endpos_label_) in - + let _v : (Asttypes.closed_flag * (string option * Parsetree.pattern) list) = let _1 = + let _loc_label_ = (_startpos_label_, _endpos_label_) in + # 3800 "src/ocaml/preprocess/parser_raw.mly" ( let loc = _loc_label_ in Some label, mkpatvar ~loc label ) -# 56197 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 55025 "src/ocaml/preprocess/parser_raw.ml" + + in + # 3823 "src/ocaml/preprocess/parser_raw.mly" ( Open, [ _1 ] ) -# 56203 "src/ocaml/preprocess/parser_raw.ml" - : (Asttypes.closed_flag * (string option * Parsetree.pattern) list)) - in +# 55031 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -56268,33 +55095,31 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 56272 "src/ocaml/preprocess/parser_raw.ml" +# 55099 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _2_inlined1 : unit = Obj.magic _2_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in - let _v = - let _1 = - let _startpos__2_ = _startpos__2_inlined1_ in - let _endpos = _endpos__6_ in - let _loc_label_ = (_startpos_label_, _endpos_label_) in - + let _v : (Asttypes.closed_flag * (string option * Parsetree.pattern) list) = let _1 = + let _startpos__2_ = _startpos__2_inlined1_ in + let _endpos = _endpos__6_ in + let _loc_label_ = (_startpos_label_, _endpos_label_) in + # 3803 "src/ocaml/preprocess/parser_raw.mly" ( let lbl_loc = _loc_label_ in let pat_loc = _startpos__2_, _endpos in let pat = mkpatvar ~loc:lbl_loc label in Some label, mkpat_with_modes ~loc:pat_loc ~modes:[] ~pat ~cty:(Some cty) ) -# 56290 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 55116 "src/ocaml/preprocess/parser_raw.ml" + + in + # 3823 "src/ocaml/preprocess/parser_raw.mly" ( Open, [ _1 ] ) -# 56296 "src/ocaml/preprocess/parser_raw.ml" - : (Asttypes.closed_flag * (string option * Parsetree.pattern) list)) - in +# 55122 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -56318,7 +55143,7 @@ module Tables = struct let _v : (Asttypes.closed_flag * (string option * Parsetree.pattern) list) = # 3819 "src/ocaml/preprocess/parser_raw.mly" ( Closed, _1 ) -# 56322 "src/ocaml/preprocess/parser_raw.ml" +# 55147 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -56357,7 +55182,7 @@ module Tables = struct let _v : (Asttypes.closed_flag * (string option * Parsetree.pattern) list) = # 3821 "src/ocaml/preprocess/parser_raw.mly" ( Open, _1 ) -# 56361 "src/ocaml/preprocess/parser_raw.ml" +# 55186 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -56393,18 +55218,16 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in - let _v = - let _1 = + let _v : (Asttypes.closed_flag * (string option * Parsetree.pattern) list) = let _1 = # 3796 "src/ocaml/preprocess/parser_raw.mly" ( None, _1 ) -# 56401 "src/ocaml/preprocess/parser_raw.ml" - in - ( +# 55225 "src/ocaml/preprocess/parser_raw.ml" + in + # 3823 "src/ocaml/preprocess/parser_raw.mly" ( Open, [ _1 ] ) -# 56406 "src/ocaml/preprocess/parser_raw.ml" - : (Asttypes.closed_flag * (string option * Parsetree.pattern) list)) - in +# 55230 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -56445,26 +55268,24 @@ module Tables = struct let _1 : ( # 1082 "src/ocaml/preprocess/parser_raw.mly" (string) -# 56449 "src/ocaml/preprocess/parser_raw.ml" +# 55272 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in - let _v = - let _1 = - let _2 = _2_inlined1 in - + let _v : (Asttypes.closed_flag * (string option * Parsetree.pattern) list) = let _1 = + let _2 = _2_inlined1 in + # 3798 "src/ocaml/preprocess/parser_raw.mly" ( Some _1, _2 ) -# 56460 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 55282 "src/ocaml/preprocess/parser_raw.ml" + + in + # 3823 "src/ocaml/preprocess/parser_raw.mly" ( Open, [ _1 ] ) -# 56466 "src/ocaml/preprocess/parser_raw.ml" - : (Asttypes.closed_flag * (string option * Parsetree.pattern) list)) - in +# 55288 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -56504,28 +55325,26 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 56508 "src/ocaml/preprocess/parser_raw.ml" +# 55329 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in - let _v = - let _1 = - let _loc_label_ = (_startpos_label_, _endpos_label_) in - + let _v : (Asttypes.closed_flag * (string option * Parsetree.pattern) list) = let _1 = + let _loc_label_ = (_startpos_label_, _endpos_label_) in + # 3800 "src/ocaml/preprocess/parser_raw.mly" ( let loc = _loc_label_ in Some label, mkpatvar ~loc label ) -# 56521 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 55341 "src/ocaml/preprocess/parser_raw.ml" + + in + # 3823 "src/ocaml/preprocess/parser_raw.mly" ( Open, [ _1 ] ) -# 56527 "src/ocaml/preprocess/parser_raw.ml" - : (Asttypes.closed_flag * (string option * Parsetree.pattern) list)) - in +# 55347 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -56592,33 +55411,31 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 56596 "src/ocaml/preprocess/parser_raw.ml" +# 55415 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _2_inlined1 : unit = Obj.magic _2_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in - let _v = - let _1 = - let _startpos__2_ = _startpos__2_inlined1_ in - let _endpos = _endpos__6_ in - let _loc_label_ = (_startpos_label_, _endpos_label_) in - + let _v : (Asttypes.closed_flag * (string option * Parsetree.pattern) list) = let _1 = + let _startpos__2_ = _startpos__2_inlined1_ in + let _endpos = _endpos__6_ in + let _loc_label_ = (_startpos_label_, _endpos_label_) in + # 3803 "src/ocaml/preprocess/parser_raw.mly" ( let lbl_loc = _loc_label_ in let pat_loc = _startpos__2_, _endpos in let pat = mkpatvar ~loc:lbl_loc label in Some label, mkpat_with_modes ~loc:pat_loc ~modes:[] ~pat ~cty:(Some cty) ) -# 56614 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 55432 "src/ocaml/preprocess/parser_raw.ml" + + in + # 3823 "src/ocaml/preprocess/parser_raw.mly" ( Open, [ _1 ] ) -# 56620 "src/ocaml/preprocess/parser_raw.ml" - : (Asttypes.closed_flag * (string option * Parsetree.pattern) list)) - in +# 55438 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -56635,7 +55452,7 @@ module Tables = struct let _v : ((Parsetree.core_type * Parsetree.core_type * Location.t) list) = # 1374 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 56639 "src/ocaml/preprocess/parser_raw.ml" +# 55456 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -56685,31 +55502,29 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_xs_ in let _endpos = _endpos__3_ in - let _v = + let _v : ((Parsetree.core_type * Parsetree.core_type * Location.t) list) = let x = let x = - let x = - let (_startpos__1_, _1) = (_startpos__1_inlined1_, _1_inlined1) in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let (_startpos__1_, _1) = (_startpos__1_inlined1_, _1_inlined1) in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2626 "src/ocaml/preprocess/parser_raw.mly" ( _1, _3, make_loc _sloc ) -# 56699 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 188 "" - ( x ) -# 56705 "src/ocaml/preprocess/parser_raw.ml" +# 55515 "src/ocaml/preprocess/parser_raw.ml" in - ( + +# 183 "" + ( x ) +# 55521 "src/ocaml/preprocess/parser_raw.ml" + + in + # 1376 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 56711 "src/ocaml/preprocess/parser_raw.ml" - : ((Parsetree.core_type * Parsetree.core_type * Location.t) list)) - in +# 55527 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -56733,7 +55548,7 @@ module Tables = struct let _v : (Parsetree.function_param list) = # 1407 "src/ocaml/preprocess/parser_raw.mly" ( List.rev x ) -# 56737 "src/ocaml/preprocess/parser_raw.ml" +# 55552 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -56765,7 +55580,7 @@ module Tables = struct let _v : (Parsetree.function_param list) = # 1409 "src/ocaml/preprocess/parser_raw.mly" ( List.rev_append x xs ) -# 56769 "src/ocaml/preprocess/parser_raw.ml" +# 55584 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -56790,7 +55605,7 @@ module Tables = struct let _v : (Parsetree.comprehension_clause list) = # 1388 "src/ocaml/preprocess/parser_raw.mly" ( [ x ] ) -# 56794 "src/ocaml/preprocess/parser_raw.ml" +# 55609 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -56822,7 +55637,7 @@ module Tables = struct let _v : (Parsetree.comprehension_clause list) = # 1390 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 56826 "src/ocaml/preprocess/parser_raw.ml" +# 55641 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -56847,7 +55662,7 @@ module Tables = struct let _v : ((Lexing.position * Parsetree.functor_parameter) list) = # 1388 "src/ocaml/preprocess/parser_raw.mly" ( [ x ] ) -# 56851 "src/ocaml/preprocess/parser_raw.ml" +# 55666 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -56879,7 +55694,7 @@ module Tables = struct let _v : ((Lexing.position * Parsetree.functor_parameter) list) = # 1390 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 56883 "src/ocaml/preprocess/parser_raw.ml" +# 55698 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -56904,7 +55719,7 @@ module Tables = struct let _v : ((Parsetree.arg_label * Parsetree.expression) list) = # 1388 "src/ocaml/preprocess/parser_raw.mly" ( [ x ] ) -# 56908 "src/ocaml/preprocess/parser_raw.ml" +# 55723 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -56936,7 +55751,7 @@ module Tables = struct let _v : ((Parsetree.arg_label * Parsetree.expression) list) = # 1390 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 56940 "src/ocaml/preprocess/parser_raw.ml" +# 55755 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -56961,7 +55776,7 @@ module Tables = struct let _v : (string list) = # 1388 "src/ocaml/preprocess/parser_raw.mly" ( [ x ] ) -# 56965 "src/ocaml/preprocess/parser_raw.ml" +# 55780 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -56993,7 +55808,7 @@ module Tables = struct let _v : (string list) = # 1390 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 56997 "src/ocaml/preprocess/parser_raw.ml" +# 55812 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -57022,31 +55837,29 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined1_ in - let _v = - let x = - let _2 = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let _v : ((string Location.loc * Parsetree.jkind_annotation option) list) = let x = + let _2 = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 57036 "src/ocaml/preprocess/parser_raw.ml" - - in +# 55850 "src/ocaml/preprocess/parser_raw.ml" + in + # 4474 "src/ocaml/preprocess/parser_raw.mly" ( (_2, None) ) -# 57042 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 55856 "src/ocaml/preprocess/parser_raw.ml" + + in + # 1388 "src/ocaml/preprocess/parser_raw.mly" ( [ x ] ) -# 57048 "src/ocaml/preprocess/parser_raw.ml" - : ((string Location.loc * Parsetree.jkind_annotation option) list)) - in +# 55862 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -57102,31 +55915,29 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__6_ in - let _v = - let x = - let tyvar = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let _v : ((string Location.loc * Parsetree.jkind_annotation option) list) = let x = + let tyvar = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 57116 "src/ocaml/preprocess/parser_raw.ml" - - in +# 55928 "src/ocaml/preprocess/parser_raw.ml" + in + # 4476 "src/ocaml/preprocess/parser_raw.mly" ( (tyvar, Some jkind) ) -# 57122 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 55934 "src/ocaml/preprocess/parser_raw.ml" + + in + # 1388 "src/ocaml/preprocess/parser_raw.mly" ( [ x ] ) -# 57128 "src/ocaml/preprocess/parser_raw.ml" - : ((string Location.loc * Parsetree.jkind_annotation option) list)) - in +# 55940 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -57161,31 +55972,29 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_xs_ in let _endpos = _endpos__1_inlined1_ in - let _v = - let x = - let _2 = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let _v : ((string Location.loc * Parsetree.jkind_annotation option) list) = let x = + let _2 = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 57175 "src/ocaml/preprocess/parser_raw.ml" - - in +# 55985 "src/ocaml/preprocess/parser_raw.ml" + in + # 4474 "src/ocaml/preprocess/parser_raw.mly" ( (_2, None) ) -# 57181 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 55991 "src/ocaml/preprocess/parser_raw.ml" + + in + # 1390 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 57187 "src/ocaml/preprocess/parser_raw.ml" - : ((string Location.loc * Parsetree.jkind_annotation option) list)) - in +# 55997 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -57248,31 +56057,29 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_xs_ in let _endpos = _endpos__6_ in - let _v = - let x = - let tyvar = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let _v : ((string Location.loc * Parsetree.jkind_annotation option) list) = let x = + let tyvar = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 57262 "src/ocaml/preprocess/parser_raw.ml" - - in +# 56070 "src/ocaml/preprocess/parser_raw.ml" + in + # 4476 "src/ocaml/preprocess/parser_raw.mly" ( (tyvar, Some jkind) ) -# 57268 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 56076 "src/ocaml/preprocess/parser_raw.ml" + + in + # 1390 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 57274 "src/ocaml/preprocess/parser_raw.ml" - : ((string Location.loc * Parsetree.jkind_annotation option) list)) - in +# 56082 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -57293,18 +56100,16 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_x_ in let _endpos = _endpos_x_ in - let _v = - let _1 = -# 123 "" + let _v : (Parsetree.case list) = let _1 = +# 124 "" ( None ) -# 57301 "src/ocaml/preprocess/parser_raw.ml" - in - ( +# 56107 "src/ocaml/preprocess/parser_raw.ml" + in + # 1499 "src/ocaml/preprocess/parser_raw.mly" ( [x] ) -# 57306 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.case list)) - in +# 56112 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -57332,21 +56137,19 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_x_inlined1_ in let _endpos = _endpos_x_ in - let _v = - let _1 = - let x = x_inlined1 in - + let _v : (Parsetree.case list) = let _1 = + let x = x_inlined1 in + # 126 "" ( Some x ) -# 57342 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 56146 "src/ocaml/preprocess/parser_raw.ml" + + in + # 1499 "src/ocaml/preprocess/parser_raw.mly" ( [x] ) -# 57348 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.case list)) - in +# 56152 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -57384,7 +56187,7 @@ module Tables = struct let _v : (Parsetree.case list) = # 1503 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 57388 "src/ocaml/preprocess/parser_raw.ml" +# 56191 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -57406,25 +56209,23 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v = - let xs = - let x = + let _v : (Parsetree.core_type list) = let xs = + let x = # 4521 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 57415 "src/ocaml/preprocess/parser_raw.ml" - in - +# 56217 "src/ocaml/preprocess/parser_raw.ml" + in + # 1434 "src/ocaml/preprocess/parser_raw.mly" ( [ x ] ) -# 57420 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 56222 "src/ocaml/preprocess/parser_raw.ml" + + in + # 1442 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 57426 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type list)) - in +# 56228 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -57459,25 +56260,23 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_xs_ in let _endpos = _endpos__1_ in - let _v = - let xs = - let x = + let _v : (Parsetree.core_type list) = let xs = + let x = # 4521 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 57468 "src/ocaml/preprocess/parser_raw.ml" - in - +# 56268 "src/ocaml/preprocess/parser_raw.ml" + in + # 1438 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 57473 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 56273 "src/ocaml/preprocess/parser_raw.ml" + + in + # 1442 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 57479 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type list)) - in +# 56279 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -57498,18 +56297,16 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_x_ in let _endpos = _endpos_x_ in - let _v = - let xs = + let _v : (Parsetree.comprehension_clause_binding list) = let xs = # 1434 "src/ocaml/preprocess/parser_raw.mly" ( [ x ] ) -# 57506 "src/ocaml/preprocess/parser_raw.ml" - in - ( +# 56304 "src/ocaml/preprocess/parser_raw.ml" + in + # 1442 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 57511 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.comprehension_clause_binding list)) - in +# 56309 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -57544,18 +56341,16 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_xs_ in let _endpos = _endpos_x_ in - let _v = - let xs = + let _v : (Parsetree.comprehension_clause_binding list) = let xs = # 1438 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 57552 "src/ocaml/preprocess/parser_raw.ml" - in - ( +# 56348 "src/ocaml/preprocess/parser_raw.ml" + in + # 1442 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 57557 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.comprehension_clause_binding list)) - in +# 56353 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -57576,18 +56371,16 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_x_ in let _endpos = _endpos_x_ in - let _v = - let xs = + let _v : (Parsetree.with_constraint list) = let xs = # 1434 "src/ocaml/preprocess/parser_raw.mly" ( [ x ] ) -# 57584 "src/ocaml/preprocess/parser_raw.ml" - in - ( +# 56378 "src/ocaml/preprocess/parser_raw.ml" + in + # 1442 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 57589 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.with_constraint list)) - in +# 56383 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -57622,18 +56415,16 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_xs_ in let _endpos = _endpos_x_ in - let _v = - let xs = + let _v : (Parsetree.with_constraint list) = let xs = # 1438 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 57630 "src/ocaml/preprocess/parser_raw.ml" - in - ( +# 56422 "src/ocaml/preprocess/parser_raw.ml" + in + # 1442 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 57635 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.with_constraint list)) - in +# 56427 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -57654,18 +56445,16 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_x_ in let _endpos = _endpos_x_ in - let _v = - let xs = + let _v : (Parsetree.row_field list) = let xs = # 1434 "src/ocaml/preprocess/parser_raw.mly" ( [ x ] ) -# 57662 "src/ocaml/preprocess/parser_raw.ml" - in - ( +# 56452 "src/ocaml/preprocess/parser_raw.ml" + in + # 1442 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 57667 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.row_field list)) - in +# 56457 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -57700,18 +56489,16 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_xs_ in let _endpos = _endpos_x_ in - let _v = - let xs = + let _v : (Parsetree.row_field list) = let xs = # 1438 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 57708 "src/ocaml/preprocess/parser_raw.ml" - in - ( +# 56496 "src/ocaml/preprocess/parser_raw.ml" + in + # 1442 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 57713 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.row_field list)) - in +# 56501 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -57732,18 +56519,16 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_x_ in let _endpos = _endpos_x_ in - let _v = - let xs = + let _v : (Parsetree.core_type list) = let xs = # 1434 "src/ocaml/preprocess/parser_raw.mly" ( [ x ] ) -# 57740 "src/ocaml/preprocess/parser_raw.ml" - in - ( +# 56526 "src/ocaml/preprocess/parser_raw.ml" + in + # 1442 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 57745 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type list)) - in +# 56531 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -57778,18 +56563,16 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_xs_ in let _endpos = _endpos_x_ in - let _v = - let xs = + let _v : (Parsetree.core_type list) = let xs = # 1438 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 57786 "src/ocaml/preprocess/parser_raw.ml" - in - ( +# 56570 "src/ocaml/preprocess/parser_raw.ml" + in + # 1442 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 57791 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type list)) - in +# 56575 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -57810,18 +56593,16 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_x_ in let _endpos = _endpos_x_ in - let _v = - let xs = + let _v : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = let xs = # 1434 "src/ocaml/preprocess/parser_raw.mly" ( [ x ] ) -# 57818 "src/ocaml/preprocess/parser_raw.ml" - in - ( +# 56600 "src/ocaml/preprocess/parser_raw.ml" + in + # 1442 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 57823 "src/ocaml/preprocess/parser_raw.ml" - : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list)) - in +# 56605 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -57856,18 +56637,16 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_xs_ in let _endpos = _endpos_x_ in - let _v = - let xs = + let _v : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = let xs = # 1438 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 57864 "src/ocaml/preprocess/parser_raw.ml" - in - ( +# 56644 "src/ocaml/preprocess/parser_raw.ml" + in + # 1442 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 57869 "src/ocaml/preprocess/parser_raw.ml" - : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list)) - in +# 56649 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -57888,18 +56667,16 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_x_ in let _endpos = _endpos_x_ in - let _v = - let xs = + let _v : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = let xs = # 1434 "src/ocaml/preprocess/parser_raw.mly" ( [ x ] ) -# 57896 "src/ocaml/preprocess/parser_raw.ml" - in - ( +# 56674 "src/ocaml/preprocess/parser_raw.ml" + in + # 1442 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 57901 "src/ocaml/preprocess/parser_raw.ml" - : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list)) - in +# 56679 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -57934,18 +56711,16 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_xs_ in let _endpos = _endpos_x_ in - let _v = - let xs = + let _v : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = let xs = # 1438 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 57942 "src/ocaml/preprocess/parser_raw.ml" - in - ( +# 56718 "src/ocaml/preprocess/parser_raw.ml" + in + # 1442 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 57947 "src/ocaml/preprocess/parser_raw.ml" - : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list)) - in +# 56723 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -57973,42 +56748,40 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_cty_ in let _endpos = _endpos_m1_ in - let _v = - let xs = - let x = - let gbl = + let _v : (Parsetree.constructor_argument list) = let xs = + let x = + let gbl = # 5261 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 57983 "src/ocaml/preprocess/parser_raw.ml" - in - let (_endpos_gbl_, _startpos_gbl_) = (_endpos__0_, _endpos__0_) in - let _endpos = _endpos_m1_ in - let _symbolstartpos = if _startpos_gbl_ != _endpos_gbl_ then - _startpos_gbl_ - else - _startpos_cty_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 56757 "src/ocaml/preprocess/parser_raw.ml" + in + let (_endpos_gbl_, _startpos_gbl_) = (_endpos__0_, _endpos__0_) in + let _endpos = _endpos_m1_ in + let _symbolstartpos = if _startpos_gbl_ != _endpos_gbl_ then + _startpos_gbl_ + else + _startpos_cty_ in + let _sloc = (_symbolstartpos, _endpos) in + # 4345 "src/ocaml/preprocess/parser_raw.mly" ( let modalities = gbl @ m1 in Type.constructor_arg cty ~modalities ~loc:(make_loc _sloc) ) -# 57998 "src/ocaml/preprocess/parser_raw.ml" - - in +# 56772 "src/ocaml/preprocess/parser_raw.ml" + in + # 1434 "src/ocaml/preprocess/parser_raw.mly" ( [ x ] ) -# 58004 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 56778 "src/ocaml/preprocess/parser_raw.ml" + + in + # 1442 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 58010 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.constructor_argument list)) - in +# 56784 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -58043,47 +56816,45 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_m1_ in - let _v = - let xs = - let x = - let gbl = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let _v : (Parsetree.constructor_argument list) = let xs = + let x = + let gbl = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 5262 "src/ocaml/preprocess/parser_raw.mly" ( [ mkloc (Modality "global") (make_loc _sloc)] ) -# 58057 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos_gbl_, _startpos_gbl_) = (_endpos__1_, _startpos__1_) in - let _endpos = _endpos_m1_ in - let _symbolstartpos = if _startpos_gbl_ != _endpos_gbl_ then - _startpos_gbl_ - else - _startpos_cty_ in - let _sloc = (_symbolstartpos, _endpos) in +# 56829 "src/ocaml/preprocess/parser_raw.ml" + in + let (_endpos_gbl_, _startpos_gbl_) = (_endpos__1_, _startpos__1_) in + let _endpos = _endpos_m1_ in + let _symbolstartpos = if _startpos_gbl_ != _endpos_gbl_ then + _startpos_gbl_ + else + _startpos_cty_ in + let _sloc = (_symbolstartpos, _endpos) in + # 4345 "src/ocaml/preprocess/parser_raw.mly" ( let modalities = gbl @ m1 in Type.constructor_arg cty ~modalities ~loc:(make_loc _sloc) ) -# 58073 "src/ocaml/preprocess/parser_raw.ml" - - in +# 56845 "src/ocaml/preprocess/parser_raw.ml" + in + # 1434 "src/ocaml/preprocess/parser_raw.mly" ( [ x ] ) -# 58079 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 56851 "src/ocaml/preprocess/parser_raw.ml" + + in + # 1442 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 58085 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.constructor_argument list)) - in +# 56857 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -58125,43 +56896,41 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_xs_ in let _endpos = _endpos_m1_ in - let _v = - let xs = - let x = - let _endpos__0_ = _endpos__2_ in - let gbl = + let _v : (Parsetree.constructor_argument list) = let xs = + let x = + let _endpos__0_ = _endpos__2_ in + let gbl = # 5261 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 58136 "src/ocaml/preprocess/parser_raw.ml" - in - let (_endpos_gbl_, _startpos_gbl_) = (_endpos__0_, _endpos__0_) in - let _endpos = _endpos_m1_ in - let _symbolstartpos = if _startpos_gbl_ != _endpos_gbl_ then - _startpos_gbl_ - else - _startpos_cty_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 56906 "src/ocaml/preprocess/parser_raw.ml" + in + let (_endpos_gbl_, _startpos_gbl_) = (_endpos__0_, _endpos__0_) in + let _endpos = _endpos_m1_ in + let _symbolstartpos = if _startpos_gbl_ != _endpos_gbl_ then + _startpos_gbl_ + else + _startpos_cty_ in + let _sloc = (_symbolstartpos, _endpos) in + # 4345 "src/ocaml/preprocess/parser_raw.mly" ( let modalities = gbl @ m1 in Type.constructor_arg cty ~modalities ~loc:(make_loc _sloc) ) -# 58151 "src/ocaml/preprocess/parser_raw.ml" - - in +# 56921 "src/ocaml/preprocess/parser_raw.ml" + in + # 1438 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 58157 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 56927 "src/ocaml/preprocess/parser_raw.ml" + + in + # 1442 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 58163 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.constructor_argument list)) - in +# 56933 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -58210,47 +56979,45 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_xs_ in let _endpos = _endpos_m1_ in - let _v = - let xs = - let x = - let gbl = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let _v : (Parsetree.constructor_argument list) = let xs = + let x = + let gbl = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 5262 "src/ocaml/preprocess/parser_raw.mly" ( [ mkloc (Modality "global") (make_loc _sloc)] ) -# 58224 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos_gbl_, _startpos_gbl_) = (_endpos__1_, _startpos__1_) in - let _endpos = _endpos_m1_ in - let _symbolstartpos = if _startpos_gbl_ != _endpos_gbl_ then - _startpos_gbl_ - else - _startpos_cty_ in - let _sloc = (_symbolstartpos, _endpos) in +# 56992 "src/ocaml/preprocess/parser_raw.ml" + in + let (_endpos_gbl_, _startpos_gbl_) = (_endpos__1_, _startpos__1_) in + let _endpos = _endpos_m1_ in + let _symbolstartpos = if _startpos_gbl_ != _endpos_gbl_ then + _startpos_gbl_ + else + _startpos_cty_ in + let _sloc = (_symbolstartpos, _endpos) in + # 4345 "src/ocaml/preprocess/parser_raw.mly" ( let modalities = gbl @ m1 in Type.constructor_arg cty ~modalities ~loc:(make_loc _sloc) ) -# 58240 "src/ocaml/preprocess/parser_raw.ml" - - in +# 57008 "src/ocaml/preprocess/parser_raw.ml" + in + # 1438 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 58246 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 57014 "src/ocaml/preprocess/parser_raw.ml" + + in + # 1442 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 58252 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.constructor_argument list)) - in +# 57020 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -58271,25 +57038,23 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v = - let xs = - let x = + let _v : ((string option * Parsetree.core_type) list) = let xs = + let x = # 4785 "src/ocaml/preprocess/parser_raw.mly" ( None, _1 ) -# 58280 "src/ocaml/preprocess/parser_raw.ml" - in - +# 57046 "src/ocaml/preprocess/parser_raw.ml" + in + # 1434 "src/ocaml/preprocess/parser_raw.mly" ( [ x ] ) -# 58285 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 57051 "src/ocaml/preprocess/parser_raw.ml" + + in + # 1442 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 58291 "src/ocaml/preprocess/parser_raw.ml" - : ((string option * Parsetree.core_type) list)) - in +# 57057 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -58323,30 +57088,28 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 58327 "src/ocaml/preprocess/parser_raw.ml" +# 57092 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos_ty_ in - let _v = - let xs = - let x = + let _v : ((string option * Parsetree.core_type) list) = let xs = + let x = # 4787 "src/ocaml/preprocess/parser_raw.mly" ( Some label, ty ) -# 58337 "src/ocaml/preprocess/parser_raw.ml" - in - +# 57101 "src/ocaml/preprocess/parser_raw.ml" + in + # 1434 "src/ocaml/preprocess/parser_raw.mly" ( [ x ] ) -# 58342 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 57106 "src/ocaml/preprocess/parser_raw.ml" + + in + # 1442 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 58348 "src/ocaml/preprocess/parser_raw.ml" - : ((string option * Parsetree.core_type) list)) - in +# 57112 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -58381,25 +57144,23 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_xs_ in let _endpos = _endpos__1_ in - let _v = - let xs = - let x = + let _v : ((string option * Parsetree.core_type) list) = let xs = + let x = # 4785 "src/ocaml/preprocess/parser_raw.mly" ( None, _1 ) -# 58390 "src/ocaml/preprocess/parser_raw.ml" - in - +# 57152 "src/ocaml/preprocess/parser_raw.ml" + in + # 1438 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 58395 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 57157 "src/ocaml/preprocess/parser_raw.ml" + + in + # 1442 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 58401 "src/ocaml/preprocess/parser_raw.ml" - : ((string option * Parsetree.core_type) list)) - in +# 57163 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -58445,32 +57206,30 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 58449 "src/ocaml/preprocess/parser_raw.ml" +# 57210 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _2 : unit = Obj.magic _2 in let xs : ((string option * Parsetree.core_type) list) = Obj.magic xs in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_xs_ in let _endpos = _endpos_ty_ in - let _v = - let xs = - let x = + let _v : ((string option * Parsetree.core_type) list) = let xs = + let x = # 4787 "src/ocaml/preprocess/parser_raw.mly" ( Some label, ty ) -# 58461 "src/ocaml/preprocess/parser_raw.ml" - in - +# 57221 "src/ocaml/preprocess/parser_raw.ml" + in + # 1438 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 58466 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 57226 "src/ocaml/preprocess/parser_raw.ml" + + in + # 1442 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 58472 "src/ocaml/preprocess/parser_raw.ml" - : ((string option * Parsetree.core_type) list)) - in +# 57232 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -58505,18 +57264,16 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_xs_ in let _endpos = _endpos__1_ in - let _v = - let x = + let _v : (Parsetree.core_type list) = let x = # 4929 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 58513 "src/ocaml/preprocess/parser_raw.ml" - in - ( +# 57271 "src/ocaml/preprocess/parser_raw.ml" + in + # 1465 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 58518 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type list)) - in +# 57276 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -58572,23 +57329,21 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_xs_ in let _endpos = _endpos_jkind_ in - let _v = - let x = - let _endpos = _endpos_jkind_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let _v : (Parsetree.core_type list) = let x = + let _endpos = _endpos_jkind_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 4931 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc (Ptyp_var (id, (Some jkind))) ) -# 58584 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 57340 "src/ocaml/preprocess/parser_raw.ml" + + in + # 1465 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 58590 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type list)) - in +# 57346 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -58637,23 +57392,21 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_xs_ in let _endpos = _endpos_jkind_ in - let _v = - let x = - let _endpos = _endpos_jkind_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let _v : (Parsetree.core_type list) = let x = + let _endpos = _endpos_jkind_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 4933 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc (Ptyp_any (Some jkind)) ) -# 58649 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 57403 "src/ocaml/preprocess/parser_raw.ml" + + in + # 1465 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 58655 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type list)) - in +# 57409 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -58688,26 +57441,24 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined1_ in - let _v = - let x2 = - let _1 = _1_inlined1 in - + let _v : (Parsetree.core_type list) = let x2 = + let _1 = _1_inlined1 in + # 4929 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 58698 "src/ocaml/preprocess/parser_raw.ml" - - in - let x1 = +# 57450 "src/ocaml/preprocess/parser_raw.ml" + + in + let x1 = # 4929 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 58704 "src/ocaml/preprocess/parser_raw.ml" - in - ( +# 57456 "src/ocaml/preprocess/parser_raw.ml" + in + # 1469 "src/ocaml/preprocess/parser_raw.mly" ( [ x2; x1 ] ) -# 58709 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type list)) - in +# 57461 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -58763,29 +57514,27 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_jkind_ in - let _v = - let x2 = - let _startpos__1_ = _startpos__1_inlined1_ in - let _endpos = _endpos_jkind_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let _v : (Parsetree.core_type list) = let x2 = + let _startpos__1_ = _startpos__1_inlined1_ in + let _endpos = _endpos_jkind_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 4931 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc (Ptyp_var (id, (Some jkind))) ) -# 58776 "src/ocaml/preprocess/parser_raw.ml" - - in - let x1 = +# 57526 "src/ocaml/preprocess/parser_raw.ml" + + in + let x1 = # 4929 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 58782 "src/ocaml/preprocess/parser_raw.ml" - in - ( +# 57532 "src/ocaml/preprocess/parser_raw.ml" + in + # 1469 "src/ocaml/preprocess/parser_raw.mly" ( [ x2; x1 ] ) -# 58787 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type list)) - in +# 57537 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -58834,29 +57583,27 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_jkind_ in - let _v = - let x2 = - let _startpos__1_ = _startpos__1_inlined1_ in - let _endpos = _endpos_jkind_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let _v : (Parsetree.core_type list) = let x2 = + let _startpos__1_ = _startpos__1_inlined1_ in + let _endpos = _endpos_jkind_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 4933 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc (Ptyp_any (Some jkind)) ) -# 58847 "src/ocaml/preprocess/parser_raw.ml" - - in - let x1 = +# 57595 "src/ocaml/preprocess/parser_raw.ml" + + in + let x1 = # 4929 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 58853 "src/ocaml/preprocess/parser_raw.ml" - in - ( +# 57601 "src/ocaml/preprocess/parser_raw.ml" + in + # 1469 "src/ocaml/preprocess/parser_raw.mly" ( [ x2; x1 ] ) -# 58858 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type list)) - in +# 57606 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -58912,31 +57659,29 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined1_ in - let _v = - let x2 = - let _1 = _1_inlined1 in - + let _v : (Parsetree.core_type list) = let x2 = + let _1 = _1_inlined1 in + # 4929 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 58922 "src/ocaml/preprocess/parser_raw.ml" - - in - let x1 = - let _endpos = _endpos_jkind_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 57668 "src/ocaml/preprocess/parser_raw.ml" + + in + let x1 = + let _endpos = _endpos_jkind_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 4931 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc (Ptyp_var (id, (Some jkind))) ) -# 58932 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 57678 "src/ocaml/preprocess/parser_raw.ml" + + in + # 1469 "src/ocaml/preprocess/parser_raw.mly" ( [ x2; x1 ] ) -# 58938 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type list)) - in +# 57684 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -59013,34 +57758,32 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_jkind_inlined1_ in - let _v = - let x2 = - let (_endpos_jkind_, _startpos__1_, jkind, id) = (_endpos_jkind_inlined1_, _startpos__1_inlined1_, jkind_inlined1, id_inlined1) in - let _endpos = _endpos_jkind_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let _v : (Parsetree.core_type list) = let x2 = + let (_endpos_jkind_, _startpos__1_, jkind, id) = (_endpos_jkind_inlined1_, _startpos__1_inlined1_, jkind_inlined1, id_inlined1) in + let _endpos = _endpos_jkind_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 4931 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc (Ptyp_var (id, (Some jkind))) ) -# 59026 "src/ocaml/preprocess/parser_raw.ml" - - in - let x1 = - let _endpos = _endpos_jkind_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 57770 "src/ocaml/preprocess/parser_raw.ml" + + in + let x1 = + let _endpos = _endpos_jkind_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 4931 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc (Ptyp_var (id, (Some jkind))) ) -# 59036 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 57780 "src/ocaml/preprocess/parser_raw.ml" + + in + # 1469 "src/ocaml/preprocess/parser_raw.mly" ( [ x2; x1 ] ) -# 59042 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type list)) - in +# 57786 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -59110,34 +57853,32 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_jkind_inlined1_ in - let _v = - let x2 = - let (_endpos_jkind_, _startpos__1_, jkind) = (_endpos_jkind_inlined1_, _startpos__1_inlined1_, jkind_inlined1) in - let _endpos = _endpos_jkind_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let _v : (Parsetree.core_type list) = let x2 = + let (_endpos_jkind_, _startpos__1_, jkind) = (_endpos_jkind_inlined1_, _startpos__1_inlined1_, jkind_inlined1) in + let _endpos = _endpos_jkind_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 4933 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc (Ptyp_any (Some jkind)) ) -# 59123 "src/ocaml/preprocess/parser_raw.ml" - - in - let x1 = - let _endpos = _endpos_jkind_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 57865 "src/ocaml/preprocess/parser_raw.ml" + + in + let x1 = + let _endpos = _endpos_jkind_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 4931 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc (Ptyp_var (id, (Some jkind))) ) -# 59133 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 57875 "src/ocaml/preprocess/parser_raw.ml" + + in + # 1469 "src/ocaml/preprocess/parser_raw.mly" ( [ x2; x1 ] ) -# 59139 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type list)) - in +# 57881 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -59186,31 +57927,29 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined1_ in - let _v = - let x2 = - let _1 = _1_inlined1 in - + let _v : (Parsetree.core_type list) = let x2 = + let _1 = _1_inlined1 in + # 4929 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 59196 "src/ocaml/preprocess/parser_raw.ml" - - in - let x1 = - let _endpos = _endpos_jkind_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 57936 "src/ocaml/preprocess/parser_raw.ml" + + in + let x1 = + let _endpos = _endpos_jkind_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 4933 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc (Ptyp_any (Some jkind)) ) -# 59206 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 57946 "src/ocaml/preprocess/parser_raw.ml" + + in + # 1469 "src/ocaml/preprocess/parser_raw.mly" ( [ x2; x1 ] ) -# 59212 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type list)) - in +# 57952 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -59280,34 +58019,32 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_jkind_inlined1_ in - let _v = - let x2 = - let (_endpos_jkind_, _startpos__1_, jkind) = (_endpos_jkind_inlined1_, _startpos__1_inlined1_, jkind_inlined1) in - let _endpos = _endpos_jkind_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let _v : (Parsetree.core_type list) = let x2 = + let (_endpos_jkind_, _startpos__1_, jkind) = (_endpos_jkind_inlined1_, _startpos__1_inlined1_, jkind_inlined1) in + let _endpos = _endpos_jkind_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 4931 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc (Ptyp_var (id, (Some jkind))) ) -# 59293 "src/ocaml/preprocess/parser_raw.ml" - - in - let x1 = - let _endpos = _endpos_jkind_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 58031 "src/ocaml/preprocess/parser_raw.ml" + + in + let x1 = + let _endpos = _endpos_jkind_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 4933 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc (Ptyp_any (Some jkind)) ) -# 59303 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 58041 "src/ocaml/preprocess/parser_raw.ml" + + in + # 1469 "src/ocaml/preprocess/parser_raw.mly" ( [ x2; x1 ] ) -# 59309 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type list)) - in +# 58047 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -59370,34 +58107,32 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_jkind_inlined1_ in - let _v = - let x2 = - let (_endpos_jkind_, _startpos__1_, jkind) = (_endpos_jkind_inlined1_, _startpos__1_inlined1_, jkind_inlined1) in - let _endpos = _endpos_jkind_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let _v : (Parsetree.core_type list) = let x2 = + let (_endpos_jkind_, _startpos__1_, jkind) = (_endpos_jkind_inlined1_, _startpos__1_inlined1_, jkind_inlined1) in + let _endpos = _endpos_jkind_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 4933 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc (Ptyp_any (Some jkind)) ) -# 59383 "src/ocaml/preprocess/parser_raw.ml" - - in - let x1 = - let _endpos = _endpos_jkind_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 58119 "src/ocaml/preprocess/parser_raw.ml" + + in + let x1 = + let _endpos = _endpos_jkind_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 4933 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc (Ptyp_any (Some jkind)) ) -# 59393 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 58129 "src/ocaml/preprocess/parser_raw.ml" + + in + # 1469 "src/ocaml/preprocess/parser_raw.mly" ( [ x2; x1 ] ) -# 59399 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type list)) - in +# 58135 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -59421,7 +58156,7 @@ module Tables = struct let _v : (Parsetree.row_field) = # 4946 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 59425 "src/ocaml/preprocess/parser_raw.ml" +# 58160 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -59443,16 +58178,14 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - ( + let _v : (Parsetree.row_field) = let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 4948 "src/ocaml/preprocess/parser_raw.mly" ( Rf.inherit_ ~loc:(make_loc _sloc) _1 ) -# 59454 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.row_field)) - in +# 58188 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -59473,30 +58206,28 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v = - let _2 = -# 123 "" + let _v : (Parsetree.expression list) = let _2 = +# 124 "" ( None ) -# 59481 "src/ocaml/preprocess/parser_raw.ml" - in - let x = - let _1 = +# 58213 "src/ocaml/preprocess/parser_raw.ml" + in + let x = + let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 59487 "src/ocaml/preprocess/parser_raw.ml" - in - +# 58219 "src/ocaml/preprocess/parser_raw.ml" + in + # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 59492 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 58224 "src/ocaml/preprocess/parser_raw.ml" + + in + # 1486 "src/ocaml/preprocess/parser_raw.mly" ( [x] ) -# 59498 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression list)) - in +# 58230 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -59524,30 +58255,28 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_x_ in - let _v = - let _2 = + let _v : (Parsetree.expression list) = let _2 = # 126 "" ( Some x ) -# 59532 "src/ocaml/preprocess/parser_raw.ml" - in - let x = - let _1 = +# 58262 "src/ocaml/preprocess/parser_raw.ml" + in + let x = + let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 59538 "src/ocaml/preprocess/parser_raw.ml" - in - +# 58268 "src/ocaml/preprocess/parser_raw.ml" + in + # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 59543 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 58273 "src/ocaml/preprocess/parser_raw.ml" + + in + # 1486 "src/ocaml/preprocess/parser_raw.mly" ( [x] ) -# 59549 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression list)) - in +# 58279 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -59589,54 +58318,53 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_xs_ in - let _v = - let _2 = -# 123 "" + let _v : (Parsetree.expression list) = let _2 = +# 124 "" ( None ) -# 59597 "src/ocaml/preprocess/parser_raw.ml" - in - let x = - let _1 = - let _3 = - let xs = - let xs = -# 264 "" +# 58325 "src/ocaml/preprocess/parser_raw.ml" + in + let x = + let _1 = + let _3 = + let xs = + let xs = +# 253 "" ( List.rev xs ) -# 59606 "src/ocaml/preprocess/parser_raw.ml" - in - +# 58334 "src/ocaml/preprocess/parser_raw.ml" + in + # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 59611 "src/ocaml/preprocess/parser_raw.ml" - - in +# 58339 "src/ocaml/preprocess/parser_raw.ml" + in + # 3510 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 59617 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__3_ = _endpos_xs_ in +# 58345 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__3_ = _endpos_xs_ in + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in - + let _1 = _1_inlined1 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 59628 "src/ocaml/preprocess/parser_raw.ml" - - in +# 58356 "src/ocaml/preprocess/parser_raw.ml" + in + # 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 59634 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 58362 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2718 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in @@ -59650,21 +58378,20 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 59654 "src/ocaml/preprocess/parser_raw.ml" - - in +# 58382 "src/ocaml/preprocess/parser_raw.ml" + in + # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 59660 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 58388 "src/ocaml/preprocess/parser_raw.ml" + + in + # 1486 "src/ocaml/preprocess/parser_raw.mly" ( [x] ) -# 59666 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression list)) - in +# 58394 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -59713,54 +58440,53 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_x_ in - let _v = - let _2 = + let _v : (Parsetree.expression list) = let _2 = # 126 "" ( Some x ) -# 59721 "src/ocaml/preprocess/parser_raw.ml" - in - let x = - let _1 = - let _3 = - let xs = - let xs = -# 264 "" +# 58447 "src/ocaml/preprocess/parser_raw.ml" + in + let x = + let _1 = + let _3 = + let xs = + let xs = +# 253 "" ( List.rev xs ) -# 59730 "src/ocaml/preprocess/parser_raw.ml" - in - +# 58456 "src/ocaml/preprocess/parser_raw.ml" + in + # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 59735 "src/ocaml/preprocess/parser_raw.ml" - - in +# 58461 "src/ocaml/preprocess/parser_raw.ml" + in + # 3510 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 59741 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__3_ = _endpos_xs_ in +# 58467 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__3_ = _endpos_xs_ in + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in - + let _1 = _1_inlined1 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 59752 "src/ocaml/preprocess/parser_raw.ml" - - in +# 58478 "src/ocaml/preprocess/parser_raw.ml" + in + # 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 59758 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 58484 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2718 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in @@ -59774,21 +58500,20 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 59778 "src/ocaml/preprocess/parser_raw.ml" - - in +# 58504 "src/ocaml/preprocess/parser_raw.ml" + in + # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 59784 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 58510 "src/ocaml/preprocess/parser_raw.ml" + + in + # 1486 "src/ocaml/preprocess/parser_raw.mly" ( [x] ) -# 59790 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression list)) - in +# 58516 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -59823,25 +58548,23 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_xs_ in - let _v = - let x = - let _1 = + let _v : (Parsetree.expression list) = let x = + let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 59832 "src/ocaml/preprocess/parser_raw.ml" - in - +# 58556 "src/ocaml/preprocess/parser_raw.ml" + in + # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 59837 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 58561 "src/ocaml/preprocess/parser_raw.ml" + + in + # 1490 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 59843 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression list)) - in +# 58567 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -59897,50 +58620,49 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_xs_ in - let _v = - let x = - let (_endpos_xs_, xs) = (_endpos_xs_inlined1_, xs_inlined1) in - let _1 = - let _3 = - let xs = - let xs = -# 264 "" + let _v : (Parsetree.expression list) = let x = + let (_endpos_xs_, xs) = (_endpos_xs_inlined1_, xs_inlined1) in + let _1 = + let _3 = + let xs = + let xs = +# 253 "" ( List.rev xs ) -# 59910 "src/ocaml/preprocess/parser_raw.ml" - in - +# 58632 "src/ocaml/preprocess/parser_raw.ml" + in + # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 59915 "src/ocaml/preprocess/parser_raw.ml" - - in +# 58637 "src/ocaml/preprocess/parser_raw.ml" + in + # 3510 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 59921 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__3_ = _endpos_xs_ in +# 58643 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__3_ = _endpos_xs_ in + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in - + let _1 = _1_inlined1 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 59932 "src/ocaml/preprocess/parser_raw.ml" - - in +# 58654 "src/ocaml/preprocess/parser_raw.ml" + in + # 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 59938 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 58660 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2718 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in @@ -59954,21 +58676,20 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 59958 "src/ocaml/preprocess/parser_raw.ml" - - in +# 58680 "src/ocaml/preprocess/parser_raw.ml" + in + # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 59964 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 58686 "src/ocaml/preprocess/parser_raw.ml" + + in + # 1490 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 59970 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression list)) - in +# 58692 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -59995,34 +58716,33 @@ module Tables = struct let _1 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 59999 "src/ocaml/preprocess/parser_raw.ml" +# 58720 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_oe_ in - let _v = - let _2 = -# 123 "" + let _v : ((string Location.loc * Parsetree.expression) list) = let _2 = +# 124 "" ( None ) -# 60008 "src/ocaml/preprocess/parser_raw.ml" - in - let x = - let label = - let _1 = +# 58728 "src/ocaml/preprocess/parser_raw.ml" + in + let x = + let label = + let _1 = # 5010 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 60015 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 58735 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 60023 "src/ocaml/preprocess/parser_raw.ml" - - in +# 58743 "src/ocaml/preprocess/parser_raw.ml" + in + # 3662 "src/ocaml/preprocess/parser_raw.mly" ( let label, e = match oe with @@ -60033,15 +58753,14 @@ module Tables = struct label, e in label, e ) -# 60037 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 58757 "src/ocaml/preprocess/parser_raw.ml" + + in + # 1486 "src/ocaml/preprocess/parser_raw.mly" ( [x] ) -# 60043 "src/ocaml/preprocess/parser_raw.ml" - : ((string Location.loc * Parsetree.expression) list)) - in +# 58763 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -60075,34 +58794,33 @@ module Tables = struct let _1 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 60079 "src/ocaml/preprocess/parser_raw.ml" +# 58798 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_x_ in - let _v = - let _2 = + let _v : ((string Location.loc * Parsetree.expression) list) = let _2 = # 126 "" ( Some x ) -# 60088 "src/ocaml/preprocess/parser_raw.ml" - in - let x = - let label = - let _1 = +# 58806 "src/ocaml/preprocess/parser_raw.ml" + in + let x = + let label = + let _1 = # 5010 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 60095 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 58813 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 60103 "src/ocaml/preprocess/parser_raw.ml" - - in +# 58821 "src/ocaml/preprocess/parser_raw.ml" + in + # 3662 "src/ocaml/preprocess/parser_raw.mly" ( let label, e = match oe with @@ -60113,15 +58831,14 @@ module Tables = struct label, e in label, e ) -# 60117 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 58835 "src/ocaml/preprocess/parser_raw.ml" + + in + # 1486 "src/ocaml/preprocess/parser_raw.mly" ( [x] ) -# 60123 "src/ocaml/preprocess/parser_raw.ml" - : ((string Location.loc * Parsetree.expression) list)) - in +# 58841 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -60162,29 +58879,28 @@ module Tables = struct let _1 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 60166 "src/ocaml/preprocess/parser_raw.ml" +# 58883 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_xs_ in - let _v = - let x = - let label = - let _1 = + let _v : ((string Location.loc * Parsetree.expression) list) = let x = + let label = + let _1 = # 5010 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 60177 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 58893 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 60185 "src/ocaml/preprocess/parser_raw.ml" - - in +# 58901 "src/ocaml/preprocess/parser_raw.ml" + in + # 3662 "src/ocaml/preprocess/parser_raw.mly" ( let label, e = match oe with @@ -60195,15 +58911,14 @@ module Tables = struct label, e in label, e ) -# 60199 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 58915 "src/ocaml/preprocess/parser_raw.ml" + + in + # 1490 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 60205 "src/ocaml/preprocess/parser_raw.ml" - : ((string Location.loc * Parsetree.expression) list)) - in +# 58921 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -60224,18 +58939,16 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_x_ in let _endpos = _endpos_x_ in - let _v = - let _2 = -# 123 "" + let _v : (Parsetree.pattern list) = let _2 = +# 124 "" ( None ) -# 60232 "src/ocaml/preprocess/parser_raw.ml" - in - ( +# 58946 "src/ocaml/preprocess/parser_raw.ml" + in + # 1486 "src/ocaml/preprocess/parser_raw.mly" ( [x] ) -# 60237 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.pattern list)) - in +# 58951 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -60263,21 +58976,19 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_x_ in let _endpos = _endpos_x_inlined1_ in - let _v = - let _2 = - let x = x_inlined1 in - + let _v : (Parsetree.pattern list) = let _2 = + let x = x_inlined1 in + # 126 "" ( Some x ) -# 60273 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 58985 "src/ocaml/preprocess/parser_raw.ml" + + in + # 1486 "src/ocaml/preprocess/parser_raw.mly" ( [x] ) -# 60279 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.pattern list)) - in +# 58991 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -60315,7 +59026,7 @@ module Tables = struct let _v : (Parsetree.pattern list) = # 1490 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 60319 "src/ocaml/preprocess/parser_raw.ml" +# 59030 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -60351,28 +59062,27 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_eo_ in - let _v = - let _2 = -# 123 "" + let _v : ((Longident.t Location.loc * Parsetree.expression) list) = let _2 = +# 124 "" ( None ) -# 60359 "src/ocaml/preprocess/parser_raw.ml" - in - let x = - let label = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 59069 "src/ocaml/preprocess/parser_raw.ml" + in + let x = + let label = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 60369 "src/ocaml/preprocess/parser_raw.ml" - - in - let _startpos_label_ = _startpos__1_ in - let _endpos = _endpos_eo_ in - let _symbolstartpos = _startpos_label_ in - let _sloc = (_symbolstartpos, _endpos) in +# 59079 "src/ocaml/preprocess/parser_raw.ml" + in + let _startpos_label_ = _startpos__1_ in + let _endpos = _endpos_eo_ in + let _symbolstartpos = _startpos_label_ in + let _sloc = (_symbolstartpos, _endpos) in + # 3645 "src/ocaml/preprocess/parser_raw.mly" ( let constraint_loc, label, e = match eo with @@ -60383,15 +59093,14 @@ module Tables = struct (_startpos_c_, _endpos), label, e in label, mkexp_opt_type_constraint_with_modes ~loc:constraint_loc ~modes:[] e c ) -# 60387 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 59097 "src/ocaml/preprocess/parser_raw.ml" + + in + # 1486 "src/ocaml/preprocess/parser_raw.mly" ( [x] ) -# 60393 "src/ocaml/preprocess/parser_raw.ml" - : ((Longident.t Location.loc * Parsetree.expression) list)) - in +# 59103 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -60433,28 +59142,27 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_x_ in - let _v = - let _2 = + let _v : ((Longident.t Location.loc * Parsetree.expression) list) = let _2 = # 126 "" ( Some x ) -# 60441 "src/ocaml/preprocess/parser_raw.ml" - in - let x = - let label = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 59149 "src/ocaml/preprocess/parser_raw.ml" + in + let x = + let label = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 60451 "src/ocaml/preprocess/parser_raw.ml" - - in - let _startpos_label_ = _startpos__1_ in - let _endpos = _endpos_eo_ in - let _symbolstartpos = _startpos_label_ in - let _sloc = (_symbolstartpos, _endpos) in +# 59159 "src/ocaml/preprocess/parser_raw.ml" + in + let _startpos_label_ = _startpos__1_ in + let _endpos = _endpos_eo_ in + let _symbolstartpos = _startpos_label_ in + let _sloc = (_symbolstartpos, _endpos) in + # 3645 "src/ocaml/preprocess/parser_raw.mly" ( let constraint_loc, label, e = match eo with @@ -60465,15 +59173,14 @@ module Tables = struct (_startpos_c_, _endpos), label, e in label, mkexp_opt_type_constraint_with_modes ~loc:constraint_loc ~modes:[] e c ) -# 60469 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 59177 "src/ocaml/preprocess/parser_raw.ml" + + in + # 1486 "src/ocaml/preprocess/parser_raw.mly" ( [x] ) -# 60475 "src/ocaml/preprocess/parser_raw.ml" - : ((Longident.t Location.loc * Parsetree.expression) list)) - in +# 59183 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -60522,23 +59229,22 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_xs_ in - let _v = - let x = - let label = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let _v : ((Longident.t Location.loc * Parsetree.expression) list) = let x = + let label = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 60535 "src/ocaml/preprocess/parser_raw.ml" - - in - let _startpos_label_ = _startpos__1_ in - let _endpos = _endpos_eo_ in - let _symbolstartpos = _startpos_label_ in - let _sloc = (_symbolstartpos, _endpos) in +# 59241 "src/ocaml/preprocess/parser_raw.ml" + in + let _startpos_label_ = _startpos__1_ in + let _endpos = _endpos_eo_ in + let _symbolstartpos = _startpos_label_ in + let _sloc = (_symbolstartpos, _endpos) in + # 3645 "src/ocaml/preprocess/parser_raw.mly" ( let constraint_loc, label, e = match eo with @@ -60549,15 +59255,14 @@ module Tables = struct (_startpos_c_, _endpos), label, e in label, mkexp_opt_type_constraint_with_modes ~loc:constraint_loc ~modes:[] e c ) -# 60553 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 59259 "src/ocaml/preprocess/parser_raw.ml" + + in + # 1490 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 60559 "src/ocaml/preprocess/parser_raw.ml" - : ((Longident.t Location.loc * Parsetree.expression) list)) - in +# 59265 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -60578,18 +59283,16 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v = - let _1 = + let _v : (Parsetree.expression) = let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 60586 "src/ocaml/preprocess/parser_raw.ml" - in - ( +# 59290 "src/ocaml/preprocess/parser_raw.ml" + in + # 2752 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 60591 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression)) - in +# 59295 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -60631,48 +59334,47 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_xs_ in - let _v = - let _1 = - let _3 = - let xs = - let xs = -# 264 "" + let _v : (Parsetree.expression) = let _1 = + let _3 = + let xs = + let xs = +# 253 "" ( List.rev xs ) -# 60642 "src/ocaml/preprocess/parser_raw.ml" - in - +# 59344 "src/ocaml/preprocess/parser_raw.ml" + in + # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 60647 "src/ocaml/preprocess/parser_raw.ml" - - in +# 59349 "src/ocaml/preprocess/parser_raw.ml" + in + # 3510 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 60653 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__3_ = _endpos_xs_ in +# 59355 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__3_ = _endpos_xs_ in + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in - + let _1 = _1_inlined1 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 60664 "src/ocaml/preprocess/parser_raw.ml" - - in +# 59366 "src/ocaml/preprocess/parser_raw.ml" + in + # 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 60670 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 59372 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2718 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in @@ -60686,15 +59388,14 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 60690 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 59392 "src/ocaml/preprocess/parser_raw.ml" + + in + # 2752 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 60696 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression)) - in +# 59398 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -60758,49 +59459,48 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined4_ in - let _v = - let attrs = - let _1 = _1_inlined4 in - + let _v : (Parsetree.type_exception * string Location.loc option) = let attrs = + let _1 = _1_inlined4 in + # 5399 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 60768 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_attrs_ = _endpos__1_inlined4_ in - let attrs2 = - let _1 = _1_inlined3 in - +# 59468 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_attrs_ = _endpos__1_inlined4_ in + let attrs2 = + let _1 = _1_inlined3 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 60777 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_attrs2_ = _endpos__1_inlined3_ in - let id = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 59477 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_attrs2_ = _endpos__1_inlined3_ in + let id = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 60789 "src/ocaml/preprocess/parser_raw.ml" - - in - let attrs1 = - let _1 = _1_inlined1 in - +# 59489 "src/ocaml/preprocess/parser_raw.ml" + + in + let attrs1 = + let _1 = _1_inlined1 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 60797 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos_attrs_ in - let _startpos = _startpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - ( +# 59497 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos_attrs_ in + let _startpos = _startpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 4317 "src/ocaml/preprocess/parser_raw.mly" ( let vars, args, res = vars_args_res in let loc = make_loc (_startpos, _endpos_attrs2_) in @@ -60808,9 +59508,8 @@ module Tables = struct Te.mk_exception ~attrs (Te.decl id ~vars ~args ?res ~attrs:(attrs1 @ attrs2) ~loc ~docs) , ext ) -# 60812 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.type_exception * string Location.loc option)) - in +# 59512 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -60838,40 +59537,38 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_xss_ in - let _v = - let _2 = - let _1 = -# 271 "" + let _v : (Parsetree.signature) = let _2 = + let _1 = +# 260 "" ( List.flatten xss ) -# 60847 "src/ocaml/preprocess/parser_raw.ml" - in - let (_endpos__1_, _startpos__1_) = (_endpos_xss_, _startpos_xss_) in - let _endpos = _endpos__1_ in - let _startpos = _startpos__1_ in - +# 59545 "src/ocaml/preprocess/parser_raw.ml" + in + let (_endpos__1_, _startpos__1_) = (_endpos_xss_, _startpos_xss_) in + let _endpos = _endpos__1_ in + let _startpos = _startpos__1_ in + # 1289 "src/ocaml/preprocess/parser_raw.mly" ( extra_sig _startpos _endpos _1 ) -# 60855 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__2_, _startpos__2_) = (_endpos_xss_, _startpos_xss_) in - let _endpos = _endpos__2_ in - let _symbolstartpos = if _startpos__1_ != _endpos__1_ then - _startpos__1_ +# 59553 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__2_, _startpos__2_) = (_endpos_xss_, _startpos_xss_) in + let _endpos = _endpos__2_ in + let _symbolstartpos = if _startpos__1_ != _endpos__1_ then + _startpos__1_ + else + if _startpos__2_ != _endpos__2_ then + _startpos__2_ else - if _startpos__2_ != _endpos__2_ then - _startpos__2_ - else - _endpos in - let _sloc = (_symbolstartpos, _endpos) in - ( + _endpos in + let _sloc = (_symbolstartpos, _endpos) in + # 2133 "src/ocaml/preprocess/parser_raw.mly" ( { psg_modalities = _1; psg_items = _2; psg_loc = make_loc _sloc; } ) -# 60873 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.signature)) - in +# 59571 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -60899,26 +59596,24 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined1_ in - let _v = - let _2 = - let _1 = _1_inlined1 in - + let _v : (Parsetree.signature_item) = let _2 = + let _1 = _1_inlined1 in + # 5399 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 60909 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__2_ = _endpos__1_inlined1_ in - let _endpos = _endpos__2_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - ( +# 59605 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__2_ = _endpos__1_inlined1_ in + let _endpos = _endpos__2_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2150 "src/ocaml/preprocess/parser_raw.mly" ( let docs = symbol_docs _sloc in mksig ~loc:_sloc (Psig_extension (_1, (add_docs_attrs docs _2))) ) -# 60920 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.signature_item)) - in +# 59616 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -60939,28 +59634,26 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v = - let _1 = - let _1 = + let _v : (Parsetree.signature_item) = let _1 = + let _1 = # 2154 "src/ocaml/preprocess/parser_raw.mly" ( Psig_attribute _1 ) -# 60948 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 59642 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1337 "src/ocaml/preprocess/parser_raw.mly" ( mksig ~loc:_sloc _1 ) -# 60956 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 59650 "src/ocaml/preprocess/parser_raw.ml" + + in + # 2160 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 60962 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.signature_item)) - in +# 59656 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -60981,30 +59674,28 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v = - let _1 = - let _1 = + let _v : (Parsetree.signature_item) = let _1 = + let _1 = # 2156 "src/ocaml/preprocess/parser_raw.mly" ( let name, jkind = _1 in Psig_kind_abbrev (name, jkind) ) -# 60992 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 59684 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1337 "src/ocaml/preprocess/parser_raw.mly" ( mksig ~loc:_sloc _1 ) -# 61000 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 59692 "src/ocaml/preprocess/parser_raw.ml" + + in + # 2160 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 61006 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.signature_item)) - in +# 59698 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -61025,28 +59716,26 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v = - let _1 = - let _1 = + let _v : (Parsetree.signature_item) = let _1 = + let _1 = # 2163 "src/ocaml/preprocess/parser_raw.mly" ( psig_value _1 ) -# 61034 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 59724 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1354 "src/ocaml/preprocess/parser_raw.mly" ( wrap_mksig_ext ~loc:_sloc _1 ) -# 61042 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 59732 "src/ocaml/preprocess/parser_raw.ml" + + in + # 2193 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 61048 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.signature_item)) - in +# 59738 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -61067,28 +59756,26 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v = - let _1 = - let _1 = + let _v : (Parsetree.signature_item) = let _1 = + let _1 = # 2165 "src/ocaml/preprocess/parser_raw.mly" ( psig_value _1 ) -# 61076 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 59764 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1354 "src/ocaml/preprocess/parser_raw.mly" ( wrap_mksig_ext ~loc:_sloc _1 ) -# 61084 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 59772 "src/ocaml/preprocess/parser_raw.ml" + + in + # 2193 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 61090 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.signature_item)) - in +# 59778 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -61117,50 +59804,48 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_a_ in let _endpos = _endpos_bs_ in - let _v = + let _v : (Parsetree.signature_item) = let _1 = let _1 = let _1 = let _1 = - let _1 = - let _1 = + let _1 = # 1547 "src/ocaml/preprocess/parser_raw.mly" ( let (x, b) = a in x, b :: bs ) -# 61129 "src/ocaml/preprocess/parser_raw.ml" - in - +# 59815 "src/ocaml/preprocess/parser_raw.ml" + in + # 4049 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 61134 "src/ocaml/preprocess/parser_raw.ml" - - in +# 59820 "src/ocaml/preprocess/parser_raw.ml" + in + # 4032 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 61140 "src/ocaml/preprocess/parser_raw.ml" - - in +# 59826 "src/ocaml/preprocess/parser_raw.ml" + in + # 2167 "src/ocaml/preprocess/parser_raw.mly" ( psig_type _1 ) -# 61146 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos_bs_, _startpos_a_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 59832 "src/ocaml/preprocess/parser_raw.ml" + in + let (_endpos__1_, _startpos__1_) = (_endpos_bs_, _startpos_a_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1354 "src/ocaml/preprocess/parser_raw.mly" ( wrap_mksig_ext ~loc:_sloc _1 ) -# 61156 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 59842 "src/ocaml/preprocess/parser_raw.ml" + + in + # 2193 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 61162 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.signature_item)) - in +# 59848 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -61189,50 +59874,48 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_a_ in let _endpos = _endpos_bs_ in - let _v = + let _v : (Parsetree.signature_item) = let _1 = let _1 = let _1 = let _1 = - let _1 = - let _1 = + let _1 = # 1547 "src/ocaml/preprocess/parser_raw.mly" ( let (x, b) = a in x, b :: bs ) -# 61201 "src/ocaml/preprocess/parser_raw.ml" - in - +# 59885 "src/ocaml/preprocess/parser_raw.ml" + in + # 4049 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 61206 "src/ocaml/preprocess/parser_raw.ml" - - in +# 59890 "src/ocaml/preprocess/parser_raw.ml" + in + # 4037 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 61212 "src/ocaml/preprocess/parser_raw.ml" - - in +# 59896 "src/ocaml/preprocess/parser_raw.ml" + in + # 2169 "src/ocaml/preprocess/parser_raw.mly" ( psig_typesubst _1 ) -# 61218 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos_bs_, _startpos_a_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 59902 "src/ocaml/preprocess/parser_raw.ml" + in + let (_endpos__1_, _startpos__1_) = (_endpos_bs_, _startpos_a_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1354 "src/ocaml/preprocess/parser_raw.mly" ( wrap_mksig_ext ~loc:_sloc _1 ) -# 61228 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 59912 "src/ocaml/preprocess/parser_raw.ml" + + in + # 2193 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 61234 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.signature_item)) - in +# 59918 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -61309,89 +59992,87 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined3_ in - let _v = + let _v : (Parsetree.signature_item) = let _1 = let _1 = let _1 = let _1 = - let _1 = - let attrs2 = - let _1 = _1_inlined3 in - + let attrs2 = + let _1 = _1_inlined3 in + # 5399 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 61323 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_attrs2_ = _endpos__1_inlined3_ in - let cs = +# 60005 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_attrs2_ = _endpos__1_inlined3_ in + let cs = # 1539 "src/ocaml/preprocess/parser_raw.mly" ( List.rev xs ) -# 61330 "src/ocaml/preprocess/parser_raw.ml" - in - let tid = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 60012 "src/ocaml/preprocess/parser_raw.ml" + in + let tid = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 61340 "src/ocaml/preprocess/parser_raw.ml" - - in - let _4 = +# 60022 "src/ocaml/preprocess/parser_raw.ml" + + in + let _4 = # 5231 "src/ocaml/preprocess/parser_raw.mly" ( Recursive ) -# 61346 "src/ocaml/preprocess/parser_raw.ml" - in - let attrs1 = - let _1 = _1_inlined1 in - +# 60028 "src/ocaml/preprocess/parser_raw.ml" + in + let attrs1 = + let _1 = _1_inlined1 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 61353 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos_attrs2_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 60035 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos_attrs2_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 4403 "src/ocaml/preprocess/parser_raw.mly" ( let docs = symbol_docs _sloc in let attrs = attrs1 @ attrs2 in Te.mk tid cs ~params ~priv ~attrs ~docs, ext ) -# 61365 "src/ocaml/preprocess/parser_raw.ml" - - in +# 60047 "src/ocaml/preprocess/parser_raw.ml" + in + # 4390 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 61371 "src/ocaml/preprocess/parser_raw.ml" - - in +# 60053 "src/ocaml/preprocess/parser_raw.ml" + in + # 2171 "src/ocaml/preprocess/parser_raw.mly" ( psig_typext _1 ) -# 61377 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__1_inlined3_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 60059 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__1_inlined3_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1354 "src/ocaml/preprocess/parser_raw.mly" ( wrap_mksig_ext ~loc:_sloc _1 ) -# 61387 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 60069 "src/ocaml/preprocess/parser_raw.ml" + + in + # 2193 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 61393 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.signature_item)) - in +# 60075 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -61475,95 +60156,93 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined4_ in - let _v = + let _v : (Parsetree.signature_item) = let _1 = let _1 = let _1 = let _1 = - let _1 = - let attrs2 = - let _1 = _1_inlined4 in - + let attrs2 = + let _1 = _1_inlined4 in + # 5399 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 61489 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_attrs2_ = _endpos__1_inlined4_ in - let cs = +# 60169 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_attrs2_ = _endpos__1_inlined4_ in + let cs = # 1539 "src/ocaml/preprocess/parser_raw.mly" ( List.rev xs ) -# 61496 "src/ocaml/preprocess/parser_raw.ml" - in - let tid = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined3_, _startpos__1_inlined3_, _1_inlined3) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 60176 "src/ocaml/preprocess/parser_raw.ml" + in + let tid = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined3_, _startpos__1_inlined3_, _1_inlined3) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 61506 "src/ocaml/preprocess/parser_raw.ml" - - in - let _4 = - let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined2_, _startpos__1_inlined2_) in - let _endpos = _endpos__1_ in - let _startpos = _startpos__1_ in - let _loc = (_startpos, _endpos) in - +# 60186 "src/ocaml/preprocess/parser_raw.ml" + + in + let _4 = + let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined2_, _startpos__1_inlined2_) in + let _endpos = _endpos__1_ in + let _startpos = _startpos__1_ in + let _loc = (_startpos, _endpos) in + # 5233 "src/ocaml/preprocess/parser_raw.mly" ( not_expecting _loc "nonrec flag"; Recursive ) -# 61517 "src/ocaml/preprocess/parser_raw.ml" - - in - let attrs1 = - let _1 = _1_inlined1 in - +# 60197 "src/ocaml/preprocess/parser_raw.ml" + + in + let attrs1 = + let _1 = _1_inlined1 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 61525 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos_attrs2_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 60205 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos_attrs2_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 4403 "src/ocaml/preprocess/parser_raw.mly" ( let docs = symbol_docs _sloc in let attrs = attrs1 @ attrs2 in Te.mk tid cs ~params ~priv ~attrs ~docs, ext ) -# 61537 "src/ocaml/preprocess/parser_raw.ml" - - in +# 60217 "src/ocaml/preprocess/parser_raw.ml" + in + # 4390 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 61543 "src/ocaml/preprocess/parser_raw.ml" - - in +# 60223 "src/ocaml/preprocess/parser_raw.ml" + in + # 2171 "src/ocaml/preprocess/parser_raw.mly" ( psig_typext _1 ) -# 61549 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__1_inlined4_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 60229 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__1_inlined4_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1354 "src/ocaml/preprocess/parser_raw.mly" ( wrap_mksig_ext ~loc:_sloc _1 ) -# 61559 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 60239 "src/ocaml/preprocess/parser_raw.ml" + + in + # 2193 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 61565 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.signature_item)) - in +# 60245 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -61584,28 +60263,26 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v = - let _1 = - let _1 = + let _v : (Parsetree.signature_item) = let _1 = + let _1 = # 2173 "src/ocaml/preprocess/parser_raw.mly" ( psig_exception _1 ) -# 61593 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 60271 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1354 "src/ocaml/preprocess/parser_raw.mly" ( wrap_mksig_ext ~loc:_sloc _1 ) -# 61601 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 60279 "src/ocaml/preprocess/parser_raw.ml" + + in + # 2193 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 61607 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.signature_item)) - in +# 60285 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -61661,31 +60338,30 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined2_ in - let _v = + let _v : (Parsetree.signature_item) = let _1 = let _1 = let _1 = - let _1 = - let attrs2 = - let _1 = _1_inlined2 in - + let attrs2 = + let _1 = _1_inlined2 in + # 5399 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 61674 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_attrs2_ = _endpos__1_inlined2_ in - let attrs1 = - let _1 = _1_inlined1 in - +# 60350 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_attrs2_ = _endpos__1_inlined2_ in + let attrs1 = + let _1 = _1_inlined1 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 61683 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos_attrs2_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 60359 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos_attrs2_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2207 "src/ocaml/preprocess/parser_raw.mly" ( let attrs = attrs1 @ attrs2 in @@ -61696,31 +60372,30 @@ module Tables = struct let modalities = modalities' @ modalities in Md.mk name mty ~attrs ~loc ~docs ~modalities, ext ) -# 61700 "src/ocaml/preprocess/parser_raw.ml" - - in +# 60376 "src/ocaml/preprocess/parser_raw.ml" + in + # 2175 "src/ocaml/preprocess/parser_raw.mly" ( let (body, ext) = _1 in (Psig_module body, ext) ) -# 61706 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__1_inlined2_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 60382 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__1_inlined2_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1354 "src/ocaml/preprocess/parser_raw.mly" ( wrap_mksig_ext ~loc:_sloc _1 ) -# 61716 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 60392 "src/ocaml/preprocess/parser_raw.ml" + + in + # 2193 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 61722 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.signature_item)) - in +# 60398 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -61790,53 +60465,52 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined3_ in - let _v = + let _v : (Parsetree.signature_item) = let _1 = let _1 = let _1 = - let _1 = - let attrs2 = - let _1 = _1_inlined3 in - + let attrs2 = + let _1 = _1_inlined3 in + # 5399 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 61803 "src/ocaml/preprocess/parser_raw.ml" +# 60477 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_attrs2_ = _endpos__1_inlined3_ in + let body = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in + let id = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let _endpos_attrs2_ = _endpos__1_inlined3_ in - let body = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in - let id = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 61816 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos_id_, _startpos_id_) = (_endpos__1_, _startpos__1_) in - let _endpos = _endpos_id_ in - let _symbolstartpos = _startpos_id_ in - let _sloc = (_symbolstartpos, _endpos) in +# 60490 "src/ocaml/preprocess/parser_raw.ml" + in + let (_endpos_id_, _startpos_id_) = (_endpos__1_, _startpos__1_) in + let _endpos = _endpos_id_ in + let _symbolstartpos = _startpos_id_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2255 "src/ocaml/preprocess/parser_raw.mly" ( Mty.alias ~loc:(make_loc _sloc) id ) -# 61826 "src/ocaml/preprocess/parser_raw.ml" - - in - let attrs1 = - let _1 = _1_inlined1 in - +# 60500 "src/ocaml/preprocess/parser_raw.ml" + + in + let attrs1 = + let _1 = _1_inlined1 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 61834 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos_attrs2_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 60508 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos_attrs2_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2244 "src/ocaml/preprocess/parser_raw.mly" ( let attrs = attrs1 @ attrs2 in @@ -61846,31 +60520,30 @@ module Tables = struct let modalities = modalities' @ modalities in Md.mk name body ~attrs ~modalities ~loc ~docs, ext ) -# 61850 "src/ocaml/preprocess/parser_raw.ml" - - in +# 60524 "src/ocaml/preprocess/parser_raw.ml" + in + # 2177 "src/ocaml/preprocess/parser_raw.mly" ( let (body, ext) = _1 in (Psig_module body, ext) ) -# 61856 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__1_inlined3_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 60530 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__1_inlined3_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1354 "src/ocaml/preprocess/parser_raw.mly" ( wrap_mksig_ext ~loc:_sloc _1 ) -# 61866 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 60540 "src/ocaml/preprocess/parser_raw.ml" + + in + # 2193 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 61872 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.signature_item)) - in +# 60546 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -61891,28 +60564,26 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v = - let _1 = - let _1 = + let _v : (Parsetree.signature_item) = let _1 = + let _1 = # 2179 "src/ocaml/preprocess/parser_raw.mly" ( let (body, ext) = _1 in (Psig_modsubst body, ext) ) -# 61900 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 60572 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1354 "src/ocaml/preprocess/parser_raw.mly" ( wrap_mksig_ext ~loc:_sloc _1 ) -# 61908 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 60580 "src/ocaml/preprocess/parser_raw.ml" + + in + # 2193 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 61914 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.signature_item)) - in +# 60586 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -61996,44 +60667,43 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_bs_ in - let _v = + let _v : (Parsetree.signature_item) = let _1 = let _1 = let _1 = let _1 = - let _1 = - let a = - let attrs2 = - let _1 = _1_inlined3 in - + let a = + let attrs2 = + let _1 = _1_inlined3 in + # 5399 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 62011 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_attrs2_ = _endpos__1_inlined3_ in - let name = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 60681 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_attrs2_ = _endpos__1_inlined3_ in + let name = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 62023 "src/ocaml/preprocess/parser_raw.ml" - - in - let attrs1 = - let _1 = _1_inlined1 in - +# 60693 "src/ocaml/preprocess/parser_raw.ml" + + in + let attrs1 = + let _1 = _1_inlined1 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 62031 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos_attrs2_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 60701 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos_attrs2_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2292 "src/ocaml/preprocess/parser_raw.mly" ( let attrs = attrs1 @ attrs2 in @@ -62041,43 +60711,42 @@ module Tables = struct let docs = symbol_docs _sloc in ext, Md.mk name mty ~attrs ~loc ~docs ~modalities ) -# 62045 "src/ocaml/preprocess/parser_raw.ml" - - in +# 60715 "src/ocaml/preprocess/parser_raw.ml" + in + # 1547 "src/ocaml/preprocess/parser_raw.mly" ( let (x, b) = a in x, b :: bs ) -# 62051 "src/ocaml/preprocess/parser_raw.ml" - - in +# 60721 "src/ocaml/preprocess/parser_raw.ml" + in + # 2280 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 62057 "src/ocaml/preprocess/parser_raw.ml" - - in +# 60727 "src/ocaml/preprocess/parser_raw.ml" + in + # 2181 "src/ocaml/preprocess/parser_raw.mly" ( let (ext, l) = _1 in (Psig_recmodule l, ext) ) -# 62063 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos_bs_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 60733 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos_bs_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1354 "src/ocaml/preprocess/parser_raw.mly" ( wrap_mksig_ext ~loc:_sloc _1 ) -# 62073 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 60743 "src/ocaml/preprocess/parser_raw.ml" + + in + # 2193 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 62079 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.signature_item)) - in +# 60749 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -62098,28 +60767,26 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v = - let _1 = - let _1 = + let _v : (Parsetree.signature_item) = let _1 = + let _1 = # 2183 "src/ocaml/preprocess/parser_raw.mly" ( let (body, ext) = _1 in (Psig_modtype body, ext) ) -# 62107 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 60775 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1354 "src/ocaml/preprocess/parser_raw.mly" ( wrap_mksig_ext ~loc:_sloc _1 ) -# 62115 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 60783 "src/ocaml/preprocess/parser_raw.ml" + + in + # 2193 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 62121 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.signature_item)) - in +# 60789 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -62140,28 +60807,26 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v = - let _1 = - let _1 = + let _v : (Parsetree.signature_item) = let _1 = + let _1 = # 2185 "src/ocaml/preprocess/parser_raw.mly" ( let (body, ext) = _1 in (Psig_modtypesubst body, ext) ) -# 62149 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 60815 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1354 "src/ocaml/preprocess/parser_raw.mly" ( wrap_mksig_ext ~loc:_sloc _1 ) -# 62157 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 60823 "src/ocaml/preprocess/parser_raw.ml" + + in + # 2193 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 62163 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.signature_item)) - in +# 60829 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -62182,28 +60847,26 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v = - let _1 = - let _1 = + let _v : (Parsetree.signature_item) = let _1 = + let _1 = # 2187 "src/ocaml/preprocess/parser_raw.mly" ( let (body, ext) = _1 in (Psig_open body, ext) ) -# 62191 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 60855 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1354 "src/ocaml/preprocess/parser_raw.mly" ( wrap_mksig_ext ~loc:_sloc _1 ) -# 62199 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 60863 "src/ocaml/preprocess/parser_raw.ml" + + in + # 2193 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 62205 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.signature_item)) - in +# 60869 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -62281,7 +60944,7 @@ module Tables = struct let _1_inlined2 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 62285 "src/ocaml/preprocess/parser_raw.ml" +# 60948 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined2 in let params : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = Obj.magic params in let virt : (Asttypes.virtual_flag) = Obj.magic virt in @@ -62291,44 +60954,43 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_bs_ in - let _v = + let _v : (Parsetree.signature_item) = let _1 = let _1 = let _1 = let _1 = - let _1 = - let a = - let attrs2 = - let _1 = _1_inlined3 in - + let a = + let attrs2 = + let _1 = _1_inlined3 in + # 5399 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 62306 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_attrs2_ = _endpos__1_inlined3_ in - let id = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 60968 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_attrs2_ = _endpos__1_inlined3_ in + let id = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 62318 "src/ocaml/preprocess/parser_raw.ml" - - in - let attrs1 = - let _1 = _1_inlined1 in - +# 60980 "src/ocaml/preprocess/parser_raw.ml" + + in + let attrs1 = + let _1 = _1_inlined1 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 62326 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos_attrs2_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 60988 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos_attrs2_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2647 "src/ocaml/preprocess/parser_raw.mly" ( let attrs = attrs1 @ attrs2 in @@ -62337,43 +60999,42 @@ module Tables = struct ext, Ci.mk id cty ~virt ~params ~attrs ~loc ~docs ) -# 62341 "src/ocaml/preprocess/parser_raw.ml" - - in +# 61003 "src/ocaml/preprocess/parser_raw.ml" + in + # 1547 "src/ocaml/preprocess/parser_raw.mly" ( let (x, b) = a in x, b :: bs ) -# 62347 "src/ocaml/preprocess/parser_raw.ml" - - in +# 61009 "src/ocaml/preprocess/parser_raw.ml" + in + # 2635 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 62353 "src/ocaml/preprocess/parser_raw.ml" - - in +# 61015 "src/ocaml/preprocess/parser_raw.ml" + in + # 2189 "src/ocaml/preprocess/parser_raw.mly" ( let (ext, l) = _1 in (Psig_class l, ext) ) -# 62359 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos_bs_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 61021 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos_bs_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1354 "src/ocaml/preprocess/parser_raw.mly" ( wrap_mksig_ext ~loc:_sloc _1 ) -# 62369 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 61031 "src/ocaml/preprocess/parser_raw.ml" + + in + # 2193 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 62375 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.signature_item)) - in +# 61037 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -62394,28 +61055,26 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v = - let _1 = - let _1 = + let _v : (Parsetree.signature_item) = let _1 = + let _1 = # 2191 "src/ocaml/preprocess/parser_raw.mly" ( let (ext, l) = _1 in (Psig_class_type l, ext) ) -# 62403 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 61063 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1354 "src/ocaml/preprocess/parser_raw.mly" ( wrap_mksig_ext ~loc:_sloc _1 ) -# 62411 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 61071 "src/ocaml/preprocess/parser_raw.ml" + + in + # 2193 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 62417 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.signature_item)) - in +# 61077 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -62471,26 +61130,25 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_kind_ in let _endpos = _endpos_modalities_ in - let _v = - let _1 = - let attrs2 = - let _1 = _1_inlined1 in - + let _v : (Parsetree.signature_item) = let _1 = + let attrs2 = + let _1 = _1_inlined1 in + # 5399 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 62482 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_attrs2_ = _endpos__1_inlined1_ in - let attrs1 = +# 61140 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_attrs2_ = _endpos__1_inlined1_ in + let attrs1 = # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 62489 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos_attrs2_ in - let _symbolstartpos = _startpos_kind_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 61147 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos_attrs2_ in + let _symbolstartpos = _startpos_kind_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2005 "src/ocaml/preprocess/parser_raw.mly" ( let attrs = attrs1 @ attrs2 in @@ -62499,22 +61157,21 @@ module Tables = struct let incl = Incl.mk ~kind thing ~attrs ~loc ~docs in incl, ext ) -# 62503 "src/ocaml/preprocess/parser_raw.ml" - - in - let _startpos__1_ = _startpos_kind_ in - let _endpos = _endpos_modalities_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - ( +# 61161 "src/ocaml/preprocess/parser_raw.ml" + + in + let _startpos__1_ = _startpos_kind_ in + let _endpos = _endpos_modalities_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2195 "src/ocaml/preprocess/parser_raw.mly" ( let incl, ext = _1 in let item = mksig ~loc:_sloc (Psig_include (incl, modalities)) in wrap_sig_ext ~loc:_sloc item ext ) -# 62516 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.signature_item)) - in +# 61174 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -62538,7 +61195,7 @@ module Tables = struct let _v : (Parsetree.constant) = # 5038 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 62542 "src/ocaml/preprocess/parser_raw.ml" +# 61199 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -62563,7 +61220,7 @@ module Tables = struct let _v : (Parsetree.constant) = # 5039 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 62567 "src/ocaml/preprocess/parser_raw.ml" +# 61224 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -62590,23 +61247,21 @@ module Tables = struct let _2 : ( # 1079 "src/ocaml/preprocess/parser_raw.mly" (string * char option) -# 62594 "src/ocaml/preprocess/parser_raw.ml" +# 61251 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _2 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in - let _v = - let _endpos = _endpos__2_ in - let _symbolstartpos = _startpos__1_ in - let _loc__2_ = (_startpos__2_, _endpos__2_) in - let _sloc = (_symbolstartpos, _endpos) in - ( + let _v : (Parsetree.constant) = let _endpos = _endpos__2_ in + let _symbolstartpos = _startpos__1_ in + let _loc__2_ = (_startpos__2_, _endpos__2_) in + let _sloc = (_symbolstartpos, _endpos) in + # 5040 "src/ocaml/preprocess/parser_raw.mly" ( unboxed_int _sloc _loc__2_ Negative _2 ) -# 62608 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.constant)) - in +# 61264 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -62632,7 +61287,7 @@ module Tables = struct let _2 : ( # 1052 "src/ocaml/preprocess/parser_raw.mly" (string * char option) -# 62636 "src/ocaml/preprocess/parser_raw.ml" +# 61291 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _2 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -62641,7 +61296,7 @@ module Tables = struct let _v : (Parsetree.constant) = # 5041 "src/ocaml/preprocess/parser_raw.mly" ( unboxed_float Negative _2 ) -# 62645 "src/ocaml/preprocess/parser_raw.ml" +# 61300 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -62668,23 +61323,21 @@ module Tables = struct let _2 : ( # 1079 "src/ocaml/preprocess/parser_raw.mly" (string * char option) -# 62672 "src/ocaml/preprocess/parser_raw.ml" +# 61327 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _2 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in - let _v = - let _endpos = _endpos__2_ in - let _symbolstartpos = _startpos__1_ in - let _loc__2_ = (_startpos__2_, _endpos__2_) in - let _sloc = (_symbolstartpos, _endpos) in - ( + let _v : (Parsetree.constant) = let _endpos = _endpos__2_ in + let _symbolstartpos = _startpos__1_ in + let _loc__2_ = (_startpos__2_, _endpos__2_) in + let _sloc = (_symbolstartpos, _endpos) in + # 5042 "src/ocaml/preprocess/parser_raw.mly" ( unboxed_int _sloc _loc__2_ Positive _2 ) -# 62686 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.constant)) - in +# 61340 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -62710,7 +61363,7 @@ module Tables = struct let _2 : ( # 1052 "src/ocaml/preprocess/parser_raw.mly" (string * char option) -# 62714 "src/ocaml/preprocess/parser_raw.ml" +# 61367 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _2 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -62719,7 +61372,7 @@ module Tables = struct let _v : (Parsetree.constant) = # 5043 "src/ocaml/preprocess/parser_raw.mly" ( unboxed_float Positive _2 ) -# 62723 "src/ocaml/preprocess/parser_raw.ml" +# 61376 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -62744,7 +61397,7 @@ module Tables = struct let _v : (Parsetree.constant) = # 5031 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 62748 "src/ocaml/preprocess/parser_raw.ml" +# 61401 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -62771,7 +61424,7 @@ module Tables = struct let _2 : ( # 1078 "src/ocaml/preprocess/parser_raw.mly" (string * char option) -# 62775 "src/ocaml/preprocess/parser_raw.ml" +# 61428 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _2 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -62780,7 +61433,7 @@ module Tables = struct let _v : (Parsetree.constant) = # 5032 "src/ocaml/preprocess/parser_raw.mly" ( let (n, m) = _2 in Pconst_integer("-" ^ n, m) ) -# 62784 "src/ocaml/preprocess/parser_raw.ml" +# 61437 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -62807,7 +61460,7 @@ module Tables = struct let _2 : ( # 1051 "src/ocaml/preprocess/parser_raw.mly" (string * char option) -# 62811 "src/ocaml/preprocess/parser_raw.ml" +# 61464 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _2 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -62816,7 +61469,7 @@ module Tables = struct let _v : (Parsetree.constant) = # 5033 "src/ocaml/preprocess/parser_raw.mly" ( let (f, m) = _2 in Pconst_float("-" ^ f, m) ) -# 62820 "src/ocaml/preprocess/parser_raw.ml" +# 61473 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -62843,7 +61496,7 @@ module Tables = struct let _2 : ( # 1078 "src/ocaml/preprocess/parser_raw.mly" (string * char option) -# 62847 "src/ocaml/preprocess/parser_raw.ml" +# 61500 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _2 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -62852,7 +61505,7 @@ module Tables = struct let _v : (Parsetree.constant) = # 5034 "src/ocaml/preprocess/parser_raw.mly" ( let (n, m) = _2 in Pconst_integer (n, m) ) -# 62856 "src/ocaml/preprocess/parser_raw.ml" +# 61509 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -62879,7 +61532,7 @@ module Tables = struct let _2 : ( # 1051 "src/ocaml/preprocess/parser_raw.mly" (string * char option) -# 62883 "src/ocaml/preprocess/parser_raw.ml" +# 61536 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _2 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -62888,7 +61541,7 @@ module Tables = struct let _v : (Parsetree.constant) = # 5035 "src/ocaml/preprocess/parser_raw.mly" ( let (f, m) = _2 in Pconst_float(f, m) ) -# 62892 "src/ocaml/preprocess/parser_raw.ml" +# 61545 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -62924,42 +61577,40 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in - let _v = + let _v : (Parsetree.pattern) = let _1 = let _1 = - let _1 = - let _2 = - let _1 = _1_inlined1 in - + let _2 = + let _1 = _1_inlined1 in + # 3959 "src/ocaml/preprocess/parser_raw.mly" ( let fields, closed = _1 in let closed = match closed with Some () -> Open | None -> Closed in fields, closed ) -# 62938 "src/ocaml/preprocess/parser_raw.ml" - - in +# 61590 "src/ocaml/preprocess/parser_raw.ml" + in + # 3923 "src/ocaml/preprocess/parser_raw.mly" ( let (fields, closed) = _2 in Ppat_record(fields, closed) ) -# 62945 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__3_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 61597 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__3_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1331 "src/ocaml/preprocess/parser_raw.mly" ( mkpat ~loc:_sloc _1 ) -# 62955 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 61607 "src/ocaml/preprocess/parser_raw.ml" + + in + # 3949 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 62961 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.pattern)) - in +# 61613 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -62994,42 +61645,40 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in - let _v = + let _v : (Parsetree.pattern) = let _1 = let _1 = - let _1 = - let _2 = - let _1 = _1_inlined1 in - + let _2 = + let _1 = _1_inlined1 in + # 3959 "src/ocaml/preprocess/parser_raw.mly" ( let fields, closed = _1 in let closed = match closed with Some () -> Open | None -> Closed in fields, closed ) -# 63008 "src/ocaml/preprocess/parser_raw.ml" - - in +# 61658 "src/ocaml/preprocess/parser_raw.ml" + in + # 3926 "src/ocaml/preprocess/parser_raw.mly" ( let (fields, closed) = _2 in Ppat_record_unboxed_product(fields, closed) ) -# 63015 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__3_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 61665 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__3_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1331 "src/ocaml/preprocess/parser_raw.mly" ( mkpat ~loc:_sloc _1 ) -# 63025 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 61675 "src/ocaml/preprocess/parser_raw.ml" + + in + # 3949 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 63031 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.pattern)) - in +# 61681 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -63064,37 +61713,35 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in - let _v = + let _v : (Parsetree.pattern) = let _1 = let _1 = - let _1 = - let _2 = + let _2 = # 3953 "src/ocaml/preprocess/parser_raw.mly" ( ps ) -# 63074 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc__3_ = (_startpos__3_, _endpos__3_) in - +# 61722 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc__3_ = (_startpos__3_, _endpos__3_) in + # 3931 "src/ocaml/preprocess/parser_raw.mly" ( fst (mktailpat _loc__3_ _2) ) -# 63080 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__3_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 61728 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__3_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1331 "src/ocaml/preprocess/parser_raw.mly" ( mkpat ~loc:_sloc _1 ) -# 63090 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 61738 "src/ocaml/preprocess/parser_raw.ml" + + in + # 3949 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 63096 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.pattern)) - in +# 61744 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -63129,54 +61776,52 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in - let _v = + let _v : (Parsetree.pattern) = let _1 = let _1 = let _1 = let _1 = - let _1 = - let _2 = + let _2 = # 3953 "src/ocaml/preprocess/parser_raw.mly" ( ps ) -# 63141 "src/ocaml/preprocess/parser_raw.ml" - in - +# 61787 "src/ocaml/preprocess/parser_raw.ml" + in + # 3173 "src/ocaml/preprocess/parser_raw.mly" ( Generic_array.Simple.Literal _2 ) -# 63146 "src/ocaml/preprocess/parser_raw.ml" - - in +# 61792 "src/ocaml/preprocess/parser_raw.ml" + in + # 3200 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 63152 "src/ocaml/preprocess/parser_raw.ml" - - in +# 61798 "src/ocaml/preprocess/parser_raw.ml" + in + # 3935 "src/ocaml/preprocess/parser_raw.mly" ( Generic_array.Pattern.to_ast "[|" "|]" Mutable _1 ) -# 63162 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__3_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 61808 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__3_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1331 "src/ocaml/preprocess/parser_raw.mly" ( mkpat ~loc:_sloc _1 ) -# 63172 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 61818 "src/ocaml/preprocess/parser_raw.ml" + + in + # 3949 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 63178 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.pattern)) - in +# 61824 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -63204,47 +61849,45 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in - let _v = + let _v : (Parsetree.pattern) = let _1 = let _1 = let _1 = - let _1 = - let _1 = + let _1 = # 3179 "src/ocaml/preprocess/parser_raw.mly" ( Generic_array.Simple.Literal [] ) -# 63215 "src/ocaml/preprocess/parser_raw.ml" - in - +# 61859 "src/ocaml/preprocess/parser_raw.ml" + in + # 3200 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 63220 "src/ocaml/preprocess/parser_raw.ml" - - in +# 61864 "src/ocaml/preprocess/parser_raw.ml" + in + # 3935 "src/ocaml/preprocess/parser_raw.mly" ( Generic_array.Pattern.to_ast "[|" "|]" Mutable _1 ) -# 63230 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__2_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 61874 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__2_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1331 "src/ocaml/preprocess/parser_raw.mly" ( mkpat ~loc:_sloc _1 ) -# 63240 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 61884 "src/ocaml/preprocess/parser_raw.ml" + + in + # 3949 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 63246 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.pattern)) - in +# 61890 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -63279,54 +61922,52 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in - let _v = + let _v : (Parsetree.pattern) = let _1 = let _1 = let _1 = let _1 = - let _1 = - let _2 = + let _2 = # 3953 "src/ocaml/preprocess/parser_raw.mly" ( ps ) -# 63291 "src/ocaml/preprocess/parser_raw.ml" - in - +# 61933 "src/ocaml/preprocess/parser_raw.ml" + in + # 3173 "src/ocaml/preprocess/parser_raw.mly" ( Generic_array.Simple.Literal _2 ) -# 63296 "src/ocaml/preprocess/parser_raw.ml" - - in +# 61938 "src/ocaml/preprocess/parser_raw.ml" + in + # 3200 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 63302 "src/ocaml/preprocess/parser_raw.ml" - - in +# 61944 "src/ocaml/preprocess/parser_raw.ml" + in + # 3941 "src/ocaml/preprocess/parser_raw.mly" ( Generic_array.Pattern.to_ast "[:" ":]" Immutable _1 ) -# 63312 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__3_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 61954 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__3_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1331 "src/ocaml/preprocess/parser_raw.mly" ( mkpat ~loc:_sloc _1 ) -# 63322 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 61964 "src/ocaml/preprocess/parser_raw.ml" + + in + # 3949 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 63328 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.pattern)) - in +# 61970 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -63354,47 +61995,45 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in - let _v = + let _v : (Parsetree.pattern) = let _1 = let _1 = let _1 = - let _1 = - let _1 = + let _1 = # 3179 "src/ocaml/preprocess/parser_raw.mly" ( Generic_array.Simple.Literal [] ) -# 63365 "src/ocaml/preprocess/parser_raw.ml" - in - +# 62005 "src/ocaml/preprocess/parser_raw.ml" + in + # 3200 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 63370 "src/ocaml/preprocess/parser_raw.ml" - - in +# 62010 "src/ocaml/preprocess/parser_raw.ml" + in + # 3941 "src/ocaml/preprocess/parser_raw.mly" ( Generic_array.Pattern.to_ast "[:" ":]" Immutable _1 ) -# 63380 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__2_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 62020 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__2_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1331 "src/ocaml/preprocess/parser_raw.mly" ( mkpat ~loc:_sloc _1 ) -# 63390 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 62030 "src/ocaml/preprocess/parser_raw.ml" + + in + # 3949 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 63396 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.pattern)) - in +# 62036 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -63429,30 +62068,28 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in - let _v = - let _1 = - let _1 = + let _v : (Parsetree.pattern) = let _1 = + let _1 = # 3947 "src/ocaml/preprocess/parser_raw.mly" ( let (closed, fields) = _2 in Ppat_unboxed_tuple (List.rev fields, closed) ) -# 63439 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos__1_ = _endpos__3_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 62077 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__3_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1331 "src/ocaml/preprocess/parser_raw.mly" ( mkpat ~loc:_sloc _1 ) -# 63448 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 62086 "src/ocaml/preprocess/parser_raw.ml" + + in + # 3949 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 63454 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.pattern)) - in +# 62092 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -63487,28 +62124,26 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in - let _v = - let _2 = - let _1 = _1_inlined1 in - let _1 = + let _v : (Parsetree.expression) = let _2 = + let _1 = _1_inlined1 in + let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 63497 "src/ocaml/preprocess/parser_raw.ml" - in - +# 62133 "src/ocaml/preprocess/parser_raw.ml" + in + # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 63502 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__3_ in - let _startpos = _startpos__1_ in - ( +# 62138 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__3_ in + let _startpos = _startpos__1_ in + # 5444 "src/ocaml/preprocess/parser_raw.mly" ( Fake.Meta.code _startpos _endpos _2 ) -# 63510 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression)) - in +# 62146 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -63564,50 +62199,49 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in - let _v = - let _2 = - let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in - let _1 = - let _3 = - let xs = - let xs = -# 264 "" + let _v : (Parsetree.expression) = let _2 = + let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in + let _1 = + let _3 = + let xs = + let xs = +# 253 "" ( List.rev xs ) -# 63577 "src/ocaml/preprocess/parser_raw.ml" - in - +# 62211 "src/ocaml/preprocess/parser_raw.ml" + in + # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 63582 "src/ocaml/preprocess/parser_raw.ml" - - in +# 62216 "src/ocaml/preprocess/parser_raw.ml" + in + # 3510 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 63588 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__3_ = _endpos_xs_ in +# 62222 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__3_ = _endpos_xs_ in + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in - + let _1 = _1_inlined1 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 63599 "src/ocaml/preprocess/parser_raw.ml" - - in +# 62233 "src/ocaml/preprocess/parser_raw.ml" + in + # 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 63605 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 62239 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2718 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in @@ -63621,23 +62255,22 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 63625 "src/ocaml/preprocess/parser_raw.ml" - - in +# 62259 "src/ocaml/preprocess/parser_raw.ml" + in + # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 63631 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__3_ in - let _startpos = _startpos__1_ in - ( +# 62265 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__3_ in + let _startpos = _startpos__1_ in + # 5444 "src/ocaml/preprocess/parser_raw.mly" ( Fake.Meta.code _startpos _endpos _2 ) -# 63639 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression)) - in +# 62273 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -63665,15 +62298,13 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in - let _v = - let _endpos = _endpos__2_ in - let _startpos = _startpos__1_ in - ( + let _v : (Parsetree.expression) = let _endpos = _endpos__2_ in + let _startpos = _startpos__1_ in + # 5446 "src/ocaml/preprocess/parser_raw.mly" ( Fake.Meta.uncode _startpos _endpos _2 ) -# 63675 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression)) - in +# 62307 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -63708,16 +62339,14 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in - let _v = - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - ( + let _v : (Parsetree.expression) = let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 3057 "src/ocaml/preprocess/parser_raw.mly" ( reloc_exp ~loc:_sloc _2 ) -# 63719 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression)) - in +# 62349 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -63759,30 +62388,28 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in - let _v = - let _3 = - let _1 = _1_inlined1 in - let _2 = + let _v : (Parsetree.expression) = let _3 = + let _1 = _1_inlined1 in + let _2 = # 4699 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 63769 "src/ocaml/preprocess/parser_raw.ml" - in - +# 62397 "src/ocaml/preprocess/parser_raw.ml" + in + # 3686 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 63774 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__4_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - ( +# 62402 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__4_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 3063 "src/ocaml/preprocess/parser_raw.mly" ( let (t, m) = _3 in mkexp_type_constraint_with_modes ~ghost:true ~loc:_sloc ~modes:m _2 t ) -# 63784 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression)) - in +# 62412 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -63831,33 +62458,31 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in - let _v = - let _3 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in - + let _v : (Parsetree.expression) = let _3 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in + let _2 = + let _1 = _1_inlined1 in + # 4700 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 63843 "src/ocaml/preprocess/parser_raw.ml" - - in +# 62469 "src/ocaml/preprocess/parser_raw.ml" + in + # 3686 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 63849 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__4_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - ( +# 62475 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__4_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 3063 "src/ocaml/preprocess/parser_raw.mly" ( let (t, m) = _3 in mkexp_type_constraint_with_modes ~ghost:true ~loc:_sloc ~modes:m _2 t ) -# 63859 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression)) - in +# 62485 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -63906,29 +62531,27 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_array_ in let _endpos = _endpos__5_ in - let _v = - let _1 = - let r = + let _v : (Parsetree.expression) = let _1 = + let r = # 3065 "src/ocaml/preprocess/parser_raw.mly" ( None ) -# 63915 "src/ocaml/preprocess/parser_raw.ml" - in - +# 62539 "src/ocaml/preprocess/parser_raw.ml" + in + # 2903 "src/ocaml/preprocess/parser_raw.mly" ( array, d, Paren, i, r ) -# 63920 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos__5_, _startpos_array_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - ( +# 62544 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos__5_, _startpos_array_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 3066 "src/ocaml/preprocess/parser_raw.mly" ( mk_indexop_expr builtin_indexing_operators ~loc:_sloc _1 ) -# 63930 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression)) - in +# 62554 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -63977,29 +62600,27 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_array_ in let _endpos = _endpos__5_ in - let _v = - let _1 = - let r = + let _v : (Parsetree.expression) = let _1 = + let r = # 3065 "src/ocaml/preprocess/parser_raw.mly" ( None ) -# 63986 "src/ocaml/preprocess/parser_raw.ml" - in - +# 62608 "src/ocaml/preprocess/parser_raw.ml" + in + # 2905 "src/ocaml/preprocess/parser_raw.mly" ( array, d, Brace, i, r ) -# 63991 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos__5_, _startpos_array_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - ( +# 62613 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos__5_, _startpos_array_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 3066 "src/ocaml/preprocess/parser_raw.mly" ( mk_indexop_expr builtin_indexing_operators ~loc:_sloc _1 ) -# 64001 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression)) - in +# 62623 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -64048,29 +62669,27 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_array_ in let _endpos = _endpos__5_ in - let _v = - let _1 = - let r = + let _v : (Parsetree.expression) = let _1 = + let r = # 3065 "src/ocaml/preprocess/parser_raw.mly" ( None ) -# 64057 "src/ocaml/preprocess/parser_raw.ml" - in - +# 62677 "src/ocaml/preprocess/parser_raw.ml" + in + # 2907 "src/ocaml/preprocess/parser_raw.mly" ( array, d, Bracket, i, r ) -# 64062 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos__5_, _startpos_array_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - ( +# 62682 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos__5_, _startpos_array_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 3066 "src/ocaml/preprocess/parser_raw.mly" ( mk_indexop_expr builtin_indexing_operators ~loc:_sloc _1 ) -# 64072 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression)) - in +# 62692 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -64117,52 +62736,50 @@ module Tables = struct let _2 : ( # 1073 "src/ocaml/preprocess/parser_raw.mly" (string) -# 64121 "src/ocaml/preprocess/parser_raw.ml" +# 62740 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _2 in let array : (Parsetree.expression) = Obj.magic array in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_array_ in let _endpos = _endpos__5_ in - let _v = - let _1 = - let r = + let _v : (Parsetree.expression) = let _1 = + let r = # 3069 "src/ocaml/preprocess/parser_raw.mly" ( None ) -# 64132 "src/ocaml/preprocess/parser_raw.ml" - in - let i = +# 62750 "src/ocaml/preprocess/parser_raw.ml" + in + let i = # 3674 "src/ocaml/preprocess/parser_raw.mly" ( es ) -# 64137 "src/ocaml/preprocess/parser_raw.ml" - in - let d = - let _1 = -# 123 "" +# 62755 "src/ocaml/preprocess/parser_raw.ml" + in + let d = + let _1 = +# 124 "" ( None ) -# 64143 "src/ocaml/preprocess/parser_raw.ml" - in - +# 62761 "src/ocaml/preprocess/parser_raw.ml" + in + # 2919 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 64148 "src/ocaml/preprocess/parser_raw.ml" - - in +# 62766 "src/ocaml/preprocess/parser_raw.ml" + in + # 2903 "src/ocaml/preprocess/parser_raw.mly" ( array, d, Paren, i, r ) -# 64154 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos__5_, _startpos_array_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - ( +# 62772 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos__5_, _startpos_array_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 3070 "src/ocaml/preprocess/parser_raw.mly" ( mk_indexop_expr user_indexing_operators ~loc:_sloc _1 ) -# 64164 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression)) - in +# 62782 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -64221,7 +62838,7 @@ module Tables = struct let _2 : ( # 1073 "src/ocaml/preprocess/parser_raw.mly" (string) -# 64225 "src/ocaml/preprocess/parser_raw.ml" +# 62842 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _2 in let _2_inlined1 : (Longident.t) = Obj.magic _2_inlined1 in let _1 : unit = Obj.magic _1 in @@ -64229,54 +62846,52 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_array_ in let _endpos = _endpos__5_ in - let _v = - let _1 = - let r = + let _v : (Parsetree.expression) = let _1 = + let r = # 3069 "src/ocaml/preprocess/parser_raw.mly" ( None ) -# 64238 "src/ocaml/preprocess/parser_raw.ml" - in - let i = +# 62854 "src/ocaml/preprocess/parser_raw.ml" + in + let i = # 3674 "src/ocaml/preprocess/parser_raw.mly" ( es ) -# 64243 "src/ocaml/preprocess/parser_raw.ml" - in - let d = - let _1 = - let _2 = _2_inlined1 in - let x = +# 62859 "src/ocaml/preprocess/parser_raw.ml" + in + let d = + let _1 = + let _2 = _2_inlined1 in + let x = # 2919 "src/ocaml/preprocess/parser_raw.mly" (_2) -# 64251 "src/ocaml/preprocess/parser_raw.ml" - in - +# 62867 "src/ocaml/preprocess/parser_raw.ml" + in + # 126 "" ( Some x ) -# 64256 "src/ocaml/preprocess/parser_raw.ml" - - in +# 62872 "src/ocaml/preprocess/parser_raw.ml" + in + # 2919 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 64262 "src/ocaml/preprocess/parser_raw.ml" - - in +# 62878 "src/ocaml/preprocess/parser_raw.ml" + in + # 2903 "src/ocaml/preprocess/parser_raw.mly" ( array, d, Paren, i, r ) -# 64268 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos__5_, _startpos_array_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - ( +# 62884 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos__5_, _startpos_array_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 3070 "src/ocaml/preprocess/parser_raw.mly" ( mk_indexop_expr user_indexing_operators ~loc:_sloc _1 ) -# 64278 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression)) - in +# 62894 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -64323,52 +62938,50 @@ module Tables = struct let _2 : ( # 1073 "src/ocaml/preprocess/parser_raw.mly" (string) -# 64327 "src/ocaml/preprocess/parser_raw.ml" +# 62942 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _2 in let array : (Parsetree.expression) = Obj.magic array in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_array_ in let _endpos = _endpos__5_ in - let _v = - let _1 = - let r = + let _v : (Parsetree.expression) = let _1 = + let r = # 3069 "src/ocaml/preprocess/parser_raw.mly" ( None ) -# 64338 "src/ocaml/preprocess/parser_raw.ml" - in - let i = +# 62952 "src/ocaml/preprocess/parser_raw.ml" + in + let i = # 3674 "src/ocaml/preprocess/parser_raw.mly" ( es ) -# 64343 "src/ocaml/preprocess/parser_raw.ml" - in - let d = - let _1 = -# 123 "" +# 62957 "src/ocaml/preprocess/parser_raw.ml" + in + let d = + let _1 = +# 124 "" ( None ) -# 64349 "src/ocaml/preprocess/parser_raw.ml" - in - +# 62963 "src/ocaml/preprocess/parser_raw.ml" + in + # 2919 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 64354 "src/ocaml/preprocess/parser_raw.ml" - - in +# 62968 "src/ocaml/preprocess/parser_raw.ml" + in + # 2905 "src/ocaml/preprocess/parser_raw.mly" ( array, d, Brace, i, r ) -# 64360 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos__5_, _startpos_array_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - ( +# 62974 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos__5_, _startpos_array_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 3070 "src/ocaml/preprocess/parser_raw.mly" ( mk_indexop_expr user_indexing_operators ~loc:_sloc _1 ) -# 64370 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression)) - in +# 62984 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -64427,7 +63040,7 @@ module Tables = struct let _2 : ( # 1073 "src/ocaml/preprocess/parser_raw.mly" (string) -# 64431 "src/ocaml/preprocess/parser_raw.ml" +# 63044 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _2 in let _2_inlined1 : (Longident.t) = Obj.magic _2_inlined1 in let _1 : unit = Obj.magic _1 in @@ -64435,54 +63048,52 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_array_ in let _endpos = _endpos__5_ in - let _v = - let _1 = - let r = + let _v : (Parsetree.expression) = let _1 = + let r = # 3069 "src/ocaml/preprocess/parser_raw.mly" ( None ) -# 64444 "src/ocaml/preprocess/parser_raw.ml" - in - let i = +# 63056 "src/ocaml/preprocess/parser_raw.ml" + in + let i = # 3674 "src/ocaml/preprocess/parser_raw.mly" ( es ) -# 64449 "src/ocaml/preprocess/parser_raw.ml" - in - let d = - let _1 = - let _2 = _2_inlined1 in - let x = +# 63061 "src/ocaml/preprocess/parser_raw.ml" + in + let d = + let _1 = + let _2 = _2_inlined1 in + let x = # 2919 "src/ocaml/preprocess/parser_raw.mly" (_2) -# 64457 "src/ocaml/preprocess/parser_raw.ml" - in - +# 63069 "src/ocaml/preprocess/parser_raw.ml" + in + # 126 "" ( Some x ) -# 64462 "src/ocaml/preprocess/parser_raw.ml" - - in +# 63074 "src/ocaml/preprocess/parser_raw.ml" + in + # 2919 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 64468 "src/ocaml/preprocess/parser_raw.ml" - - in +# 63080 "src/ocaml/preprocess/parser_raw.ml" + in + # 2905 "src/ocaml/preprocess/parser_raw.mly" ( array, d, Brace, i, r ) -# 64474 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos__5_, _startpos_array_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - ( +# 63086 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos__5_, _startpos_array_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 3070 "src/ocaml/preprocess/parser_raw.mly" ( mk_indexop_expr user_indexing_operators ~loc:_sloc _1 ) -# 64484 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression)) - in +# 63096 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -64529,52 +63140,50 @@ module Tables = struct let _2 : ( # 1073 "src/ocaml/preprocess/parser_raw.mly" (string) -# 64533 "src/ocaml/preprocess/parser_raw.ml" +# 63144 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _2 in let array : (Parsetree.expression) = Obj.magic array in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_array_ in let _endpos = _endpos__5_ in - let _v = - let _1 = - let r = + let _v : (Parsetree.expression) = let _1 = + let r = # 3069 "src/ocaml/preprocess/parser_raw.mly" ( None ) -# 64544 "src/ocaml/preprocess/parser_raw.ml" - in - let i = +# 63154 "src/ocaml/preprocess/parser_raw.ml" + in + let i = # 3674 "src/ocaml/preprocess/parser_raw.mly" ( es ) -# 64549 "src/ocaml/preprocess/parser_raw.ml" - in - let d = - let _1 = -# 123 "" +# 63159 "src/ocaml/preprocess/parser_raw.ml" + in + let d = + let _1 = +# 124 "" ( None ) -# 64555 "src/ocaml/preprocess/parser_raw.ml" - in - +# 63165 "src/ocaml/preprocess/parser_raw.ml" + in + # 2919 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 64560 "src/ocaml/preprocess/parser_raw.ml" - - in +# 63170 "src/ocaml/preprocess/parser_raw.ml" + in + # 2907 "src/ocaml/preprocess/parser_raw.mly" ( array, d, Bracket, i, r ) -# 64566 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos__5_, _startpos_array_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - ( +# 63176 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos__5_, _startpos_array_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 3070 "src/ocaml/preprocess/parser_raw.mly" ( mk_indexop_expr user_indexing_operators ~loc:_sloc _1 ) -# 64576 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression)) - in +# 63186 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -64633,7 +63242,7 @@ module Tables = struct let _2 : ( # 1073 "src/ocaml/preprocess/parser_raw.mly" (string) -# 64637 "src/ocaml/preprocess/parser_raw.ml" +# 63246 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _2 in let _2_inlined1 : (Longident.t) = Obj.magic _2_inlined1 in let _1 : unit = Obj.magic _1 in @@ -64641,54 +63250,52 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_array_ in let _endpos = _endpos__5_ in - let _v = - let _1 = - let r = + let _v : (Parsetree.expression) = let _1 = + let r = # 3069 "src/ocaml/preprocess/parser_raw.mly" ( None ) -# 64650 "src/ocaml/preprocess/parser_raw.ml" - in - let i = +# 63258 "src/ocaml/preprocess/parser_raw.ml" + in + let i = # 3674 "src/ocaml/preprocess/parser_raw.mly" ( es ) -# 64655 "src/ocaml/preprocess/parser_raw.ml" - in - let d = - let _1 = - let _2 = _2_inlined1 in - let x = +# 63263 "src/ocaml/preprocess/parser_raw.ml" + in + let d = + let _1 = + let _2 = _2_inlined1 in + let x = # 2919 "src/ocaml/preprocess/parser_raw.mly" (_2) -# 64663 "src/ocaml/preprocess/parser_raw.ml" - in - +# 63271 "src/ocaml/preprocess/parser_raw.ml" + in + # 126 "" ( Some x ) -# 64668 "src/ocaml/preprocess/parser_raw.ml" - - in +# 63276 "src/ocaml/preprocess/parser_raw.ml" + in + # 2919 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 64674 "src/ocaml/preprocess/parser_raw.ml" - - in +# 63282 "src/ocaml/preprocess/parser_raw.ml" + in + # 2907 "src/ocaml/preprocess/parser_raw.mly" ( array, d, Bracket, i, r ) -# 64680 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos__5_, _startpos_array_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - ( +# 63288 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos__5_, _startpos_array_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 3070 "src/ocaml/preprocess/parser_raw.mly" ( mk_indexop_expr user_indexing_operators ~loc:_sloc _1 ) -# 64690 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression)) - in +# 63298 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -64737,33 +63344,31 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__5_ in - let _v = - let _1 = - let attrs = - let _1 = _1_inlined1 in - + let _v : (Parsetree.expression) = let _1 = + let attrs = + let _1 = _1_inlined1 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 64748 "src/ocaml/preprocess/parser_raw.ml" - - in +# 63354 "src/ocaml/preprocess/parser_raw.ml" + in + # 3095 "src/ocaml/preprocess/parser_raw.mly" ( e.pexp_desc, (ext, attrs @ e.pexp_attributes) ) -# 64754 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - ( +# 63360 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__1_ = _endpos__5_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 3076 "src/ocaml/preprocess/parser_raw.mly" ( let desc, attrs = _1 in mkexp_attrs ~loc:_sloc desc attrs ) -# 64765 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression)) - in +# 63371 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -64805,44 +63410,42 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in - let _v = - let _1 = + let _v : (Parsetree.expression) = let _1 = + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in - + let _1 = _1_inlined1 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 64818 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 5416 "src/ocaml/preprocess/parser_raw.mly" - ( _1, _2 ) -# 64824 "src/ocaml/preprocess/parser_raw.ml" +# 63422 "src/ocaml/preprocess/parser_raw.ml" in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in -# 3097 "src/ocaml/preprocess/parser_raw.mly" - ( Pexp_construct (mkloc (Lident "()") (make_loc _sloc), None), _2 ) -# 64833 "src/ocaml/preprocess/parser_raw.ml" +# 5416 "src/ocaml/preprocess/parser_raw.mly" + ( _1, _2 ) +# 63428 "src/ocaml/preprocess/parser_raw.ml" in - let _endpos__1_ = _endpos__3_ in - let _endpos = _endpos__1_ in + let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in - ( + +# 3097 "src/ocaml/preprocess/parser_raw.mly" + ( Pexp_construct (mkloc (Lident "()") (make_loc _sloc), None), _2 ) +# 63437 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__1_ = _endpos__3_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 3076 "src/ocaml/preprocess/parser_raw.mly" ( let desc, attrs = _1 in mkexp_attrs ~loc:_sloc desc attrs ) -# 64844 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression)) - in +# 63448 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -64884,52 +63487,50 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined3_ in - let _v = - let _1 = - let _3 = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined3_, _startpos__1_inlined3_, _1_inlined3) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let _v : (Parsetree.expression) = let _1 = + let _3 = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined3_, _startpos__1_inlined3_, _1_inlined3) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 64898 "src/ocaml/preprocess/parser_raw.ml" - - in +# 63500 "src/ocaml/preprocess/parser_raw.ml" + + in + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in - + let _1 = _1_inlined1 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 64908 "src/ocaml/preprocess/parser_raw.ml" - - in +# 63510 "src/ocaml/preprocess/parser_raw.ml" + in + # 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 64914 "src/ocaml/preprocess/parser_raw.ml" - - in +# 63516 "src/ocaml/preprocess/parser_raw.ml" + in + # 3103 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_new(_3), _2 ) -# 64920 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__1_inlined3_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - ( +# 63522 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__1_ = _endpos__1_inlined3_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 3076 "src/ocaml/preprocess/parser_raw.mly" ( let desc, attrs = _1 in mkexp_attrs ~loc:_sloc desc attrs ) -# 64931 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression)) - in +# 63533 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -64985,41 +63586,39 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__5_ in - let _v = - let _1 = - let _3 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in - + let _v : (Parsetree.expression) = let _1 = + let _3 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in + let _2 = + let _1 = _1_inlined1 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 64998 "src/ocaml/preprocess/parser_raw.ml" - - in +# 63598 "src/ocaml/preprocess/parser_raw.ml" + in + # 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 65004 "src/ocaml/preprocess/parser_raw.ml" - - in +# 63604 "src/ocaml/preprocess/parser_raw.ml" + in + # 3105 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_pack _4, _3 ) -# 65010 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - ( +# 63610 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__1_ = _endpos__5_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 3076 "src/ocaml/preprocess/parser_raw.mly" ( let desc, attrs = _1 in mkexp_attrs ~loc:_sloc desc attrs ) -# 65021 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression)) - in +# 63621 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -65089,57 +63688,55 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__7_ in - let _v = - let _1 = - let _6 = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined3_, _startpos__1_inlined3_, _1_inlined3) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let _v : (Parsetree.expression) = let _1 = + let _6 = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined3_, _startpos__1_inlined3_, _1_inlined3) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 4936 "src/ocaml/preprocess/parser_raw.mly" ( let (lid, cstrs, attrs) = package_type_of_module_type _1 in let descr = Ptyp_package (lid, cstrs) in mktyp ~loc:_sloc ~attrs descr ) -# 65105 "src/ocaml/preprocess/parser_raw.ml" +# 63703 "src/ocaml/preprocess/parser_raw.ml" + + in + let _3 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in + let _2 = + let _1 = _1_inlined1 in - in - let _3 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in - # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 65115 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 5416 "src/ocaml/preprocess/parser_raw.mly" - ( _1, _2 ) -# 65121 "src/ocaml/preprocess/parser_raw.ml" +# 63713 "src/ocaml/preprocess/parser_raw.ml" in - let _endpos = _endpos__7_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in -# 3107 "src/ocaml/preprocess/parser_raw.mly" - ( Pexp_constraint (ghexp ~loc:_sloc (Pexp_pack _4), Some _6, []), _3 ) -# 65130 "src/ocaml/preprocess/parser_raw.ml" +# 5416 "src/ocaml/preprocess/parser_raw.mly" + ( _1, _2 ) +# 63719 "src/ocaml/preprocess/parser_raw.ml" in - let _endpos__1_ = _endpos__7_ in - let _endpos = _endpos__1_ in + let _endpos = _endpos__7_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in - ( + +# 3107 "src/ocaml/preprocess/parser_raw.mly" + ( Pexp_constraint (ghexp ~loc:_sloc (Pexp_pack _4), Some _6, []), _3 ) +# 63728 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__1_ = _endpos__7_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 3076 "src/ocaml/preprocess/parser_raw.mly" ( let desc, attrs = _1 in mkexp_attrs ~loc:_sloc desc attrs ) -# 65141 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression)) - in +# 63739 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -65195,71 +63792,69 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in - let _v = - let _1 = - let _3 = - let _1 = _1_inlined3 in - let _2 = - let _1 = - let _1 = -# 271 "" + let _v : (Parsetree.expression) = let _1 = + let _3 = + let _1 = _1_inlined3 in + let _2 = + let _1 = + let _1 = +# 260 "" ( List.flatten xss ) -# 65208 "src/ocaml/preprocess/parser_raw.ml" - in - +# 63804 "src/ocaml/preprocess/parser_raw.ml" + in + # 2461 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 65213 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos_xss_, _startpos_xss_) in - let _endpos = _endpos__1_ in - let _startpos = _startpos__1_ in +# 63809 "src/ocaml/preprocess/parser_raw.ml" + in + let (_endpos__1_, _startpos__1_) = (_endpos_xss_, _startpos_xss_) in + let _endpos = _endpos__1_ in + let _startpos = _startpos__1_ in + # 1290 "src/ocaml/preprocess/parser_raw.mly" ( extra_cstr _startpos _endpos _1 ) -# 65222 "src/ocaml/preprocess/parser_raw.ml" - - in +# 63818 "src/ocaml/preprocess/parser_raw.ml" + in + # 2449 "src/ocaml/preprocess/parser_raw.mly" ( Cstr.mk _1 _2 ) -# 65228 "src/ocaml/preprocess/parser_raw.ml" - - in +# 63824 "src/ocaml/preprocess/parser_raw.ml" + + in + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in - + let _1 = _1_inlined1 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 65238 "src/ocaml/preprocess/parser_raw.ml" - - in +# 63834 "src/ocaml/preprocess/parser_raw.ml" + in + # 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 65244 "src/ocaml/preprocess/parser_raw.ml" - - in +# 63840 "src/ocaml/preprocess/parser_raw.ml" + in + # 3113 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_object _3, _2 ) -# 65250 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__4_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - ( +# 63846 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__1_ = _endpos__4_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 3076 "src/ocaml/preprocess/parser_raw.mly" ( let desc, attrs = _1 in mkexp_attrs ~loc:_sloc desc attrs ) -# 65261 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression)) - in +# 63857 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -65280,40 +63875,38 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v = + let _v : (Parsetree.expression) = let _1 = let _1 = let _1 = - let _1 = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 65294 "src/ocaml/preprocess/parser_raw.ml" - - in +# 63888 "src/ocaml/preprocess/parser_raw.ml" + in + # 3210 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_ident (_1) ) -# 65300 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 63894 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1329 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc _1 ) -# 65309 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 63903 "src/ocaml/preprocess/parser_raw.ml" + + in + # 3079 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 65315 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression)) - in +# 63909 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -65334,40 +63927,38 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v = + let _v : (Parsetree.expression) = let _1 = let _1 = let _1 = - let _1 = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 65348 "src/ocaml/preprocess/parser_raw.ml" - - in +# 63940 "src/ocaml/preprocess/parser_raw.ml" + in + # 3212 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_construct(_1, None) ) -# 65354 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 63946 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1329 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc _1 ) -# 65363 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 63955 "src/ocaml/preprocess/parser_raw.ml" + + in + # 3079 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 65369 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression)) - in +# 63961 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -65388,28 +63979,26 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v = - let _1 = - let _1 = + let _v : (Parsetree.expression) = let _1 = + let _1 = # 3214 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_variant(_1, None) ) -# 65397 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 63987 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1329 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc _1 ) -# 65405 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 63995 "src/ocaml/preprocess/parser_raw.ml" + + in + # 3079 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 65411 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression)) - in +# 64001 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -65436,46 +64025,44 @@ module Tables = struct let _1 : ( # 1124 "src/ocaml/preprocess/parser_raw.mly" (string) -# 65440 "src/ocaml/preprocess/parser_raw.ml" +# 64029 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in - let _v = + let _v : (Parsetree.expression) = let _1 = let _1 = let _1 = - let _1 = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1323 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 65455 "src/ocaml/preprocess/parser_raw.ml" - - in +# 64043 "src/ocaml/preprocess/parser_raw.ml" + in + # 3216 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_apply(_1, [Nolabel,_2]) ) -# 65461 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__2_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 64049 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__2_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1329 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc _1 ) -# 65471 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 64059 "src/ocaml/preprocess/parser_raw.ml" + + in + # 3079 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 65477 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression)) - in +# 64065 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -65503,46 +64090,44 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in - let _v = + let _v : (Parsetree.expression) = let _1 = let _1 = let _1 = - let _1 = - let _1 = + let _1 = # 3217 "src/ocaml/preprocess/parser_raw.mly" ("!") -# 65514 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 64100 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1323 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 65522 "src/ocaml/preprocess/parser_raw.ml" - - in +# 64108 "src/ocaml/preprocess/parser_raw.ml" + in + # 3218 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_apply(_1, [Nolabel,_2]) ) -# 65528 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__2_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 64114 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__2_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1329 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc _1 ) -# 65538 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 64124 "src/ocaml/preprocess/parser_raw.ml" + + in + # 3079 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 65544 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression)) - in +# 64130 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -65577,36 +64162,34 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in - let _v = + let _v : (Parsetree.expression) = let _1 = let _1 = - let _1 = - let _2 = + let _2 = # 3657 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 65587 "src/ocaml/preprocess/parser_raw.ml" - in - +# 64171 "src/ocaml/preprocess/parser_raw.ml" + in + # 3220 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_override _2 ) -# 65592 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__3_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 64176 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__3_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1329 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc _1 ) -# 65602 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 64186 "src/ocaml/preprocess/parser_raw.ml" + + in + # 3079 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 65608 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression)) - in +# 64192 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -65634,29 +64217,27 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in - let _v = - let _1 = - let _1 = + let _v : (Parsetree.expression) = let _1 = + let _1 = # 3226 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_override [] ) -# 65643 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos__1_ = _endpos__2_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 64225 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__2_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1329 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc _1 ) -# 65652 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 64234 "src/ocaml/preprocess/parser_raw.ml" + + in + # 3079 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 65658 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression)) - in +# 64240 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -65691,42 +64272,40 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined1_ in - let _v = + let _v : (Parsetree.expression) = let _1 = let _1 = - let _1 = - let _3 = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let _3 = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 65706 "src/ocaml/preprocess/parser_raw.ml" - - in +# 64286 "src/ocaml/preprocess/parser_raw.ml" + in + # 3228 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_field(_1, _3) ) -# 65712 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__1_inlined1_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 64292 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__1_inlined1_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1329 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc _1 ) -# 65722 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 64302 "src/ocaml/preprocess/parser_raw.ml" + + in + # 3079 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 65728 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression)) - in +# 64308 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -65761,42 +64340,40 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined1_ in - let _v = + let _v : (Parsetree.expression) = let _1 = let _1 = - let _1 = - let _3 = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let _3 = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 65776 "src/ocaml/preprocess/parser_raw.ml" - - in +# 64354 "src/ocaml/preprocess/parser_raw.ml" + in + # 3230 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_unboxed_field(_1, _3) ) -# 65782 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__1_inlined1_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 64360 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__1_inlined1_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1329 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc _1 ) -# 65792 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 64370 "src/ocaml/preprocess/parser_raw.ml" + + in + # 3079 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 65798 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression)) - in +# 64376 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -65845,51 +64422,49 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__5_ in - let _v = + let _v : (Parsetree.expression) = let _1 = let _1 = - let _1 = - let od = - let _1 = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let od = + let _1 = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 65860 "src/ocaml/preprocess/parser_raw.ml" - - in - let _loc__1_ = (_startpos__1_, _endpos__1_) in +# 64436 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc__1_ = (_startpos__1_, _endpos__1_) in + # 2065 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _loc__1_ in let me = Mod.ident ~loc _1 in Opn.mk ~loc me ) -# 65869 "src/ocaml/preprocess/parser_raw.ml" - - in +# 64445 "src/ocaml/preprocess/parser_raw.ml" + in + # 3232 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_open(od, _4) ) -# 65875 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 64451 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__5_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1329 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc _1 ) -# 65885 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 64461 "src/ocaml/preprocess/parser_raw.ml" + + in + # 3079 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 65891 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression)) - in +# 64467 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -65938,61 +64513,59 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__5_ in - let _v = + let _v : (Parsetree.expression) = let _1 = let _1 = - let _1 = - let _4 = + let _4 = # 3657 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 65948 "src/ocaml/preprocess/parser_raw.ml" - in - let od = - let _1 = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 64522 "src/ocaml/preprocess/parser_raw.ml" + in + let od = + let _1 = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 65958 "src/ocaml/preprocess/parser_raw.ml" - - in - let _loc__1_ = (_startpos__1_, _endpos__1_) in +# 64532 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc__1_ = (_startpos__1_, _endpos__1_) in + # 2065 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _loc__1_ in let me = Mod.ident ~loc _1 in Opn.mk ~loc me ) -# 65967 "src/ocaml/preprocess/parser_raw.ml" - - in - let _startpos_od_ = _startpos__1_ in - let _endpos = _endpos__5_ in - let _symbolstartpos = _startpos_od_ in - let _sloc = (_symbolstartpos, _endpos) in +# 64541 "src/ocaml/preprocess/parser_raw.ml" + in + let _startpos_od_ = _startpos__1_ in + let _endpos = _endpos__5_ in + let _symbolstartpos = _startpos_od_ in + let _sloc = (_symbolstartpos, _endpos) in + # 3234 "src/ocaml/preprocess/parser_raw.mly" ( (* TODO: review the location of Pexp_override *) Pexp_open(od, mkexp ~loc:_sloc (Pexp_override _4)) ) -# 65978 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 64552 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__5_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1329 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc _1 ) -# 65988 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 64562 "src/ocaml/preprocess/parser_raw.ml" + + in + # 3079 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 65994 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression)) - in +# 64568 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -66024,59 +64597,57 @@ module Tables = struct let _1_inlined2 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 66028 "src/ocaml/preprocess/parser_raw.ml" +# 64601 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined2 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _1 : (Parsetree.expression) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined2_ in - let _v = + let _v : (Parsetree.expression) = let _1 = let _1 = - let _1 = - let _3 = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in - let _1 = + let _3 = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in + let _1 = # 5010 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 66043 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 64615 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 66051 "src/ocaml/preprocess/parser_raw.ml" - - in - let _2 = +# 64623 "src/ocaml/preprocess/parser_raw.ml" + + in + let _2 = # 3204 "src/ocaml/preprocess/parser_raw.mly" ( () ) -# 66057 "src/ocaml/preprocess/parser_raw.ml" - in - +# 64629 "src/ocaml/preprocess/parser_raw.ml" + in + # 3241 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_send(_1, _3) ) -# 66062 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__1_inlined2_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 64634 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__1_inlined2_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1329 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc _1 ) -# 66072 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 64644 "src/ocaml/preprocess/parser_raw.ml" + + in + # 3079 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 66078 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression)) - in +# 64650 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -66108,59 +64679,57 @@ module Tables = struct let _1_inlined2 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 66112 "src/ocaml/preprocess/parser_raw.ml" +# 64683 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined2 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _1 : (Parsetree.expression) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined2_ in - let _v = + let _v : (Parsetree.expression) = let _1 = let _1 = - let _1 = - let _3 = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in - let _1 = + let _3 = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in + let _1 = # 5010 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 66127 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 64697 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 66135 "src/ocaml/preprocess/parser_raw.ml" - - in - let _2 = +# 64705 "src/ocaml/preprocess/parser_raw.ml" + + in + let _2 = # 3205 "src/ocaml/preprocess/parser_raw.mly" ( () ) -# 66141 "src/ocaml/preprocess/parser_raw.ml" - in - +# 64711 "src/ocaml/preprocess/parser_raw.ml" + in + # 3241 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_send(_1, _3) ) -# 66146 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__1_inlined2_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 64716 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__1_inlined2_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1329 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc _1 ) -# 66156 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 64726 "src/ocaml/preprocess/parser_raw.ml" + + in + # 3079 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 66162 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression)) - in +# 64732 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -66193,48 +64762,46 @@ module Tables = struct let _1_inlined1 : ( # 1137 "src/ocaml/preprocess/parser_raw.mly" (string) -# 66197 "src/ocaml/preprocess/parser_raw.ml" +# 64766 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined1 in let _1 : (Parsetree.expression) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in - let _v = + let _v : (Parsetree.expression) = let _1 = let _1 = - let _1 = - let _2 = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let _2 = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1323 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 66214 "src/ocaml/preprocess/parser_raw.ml" - - in +# 64782 "src/ocaml/preprocess/parser_raw.ml" + in + # 3243 "src/ocaml/preprocess/parser_raw.mly" ( mkinfix _1 _2 _3 ) -# 66220 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__3_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 64788 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__3_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1329 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc _1 ) -# 66230 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 64798 "src/ocaml/preprocess/parser_raw.ml" + + in + # 3079 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 66236 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression)) - in +# 64804 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -66255,28 +64822,26 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v = - let _1 = - let _1 = + let _v : (Parsetree.expression) = let _1 = + let _1 = # 3245 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_extension _1 ) -# 66264 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 64830 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1329 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc _1 ) -# 66272 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 64838 "src/ocaml/preprocess/parser_raw.ml" + + in + # 3079 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 66278 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression)) - in +# 64844 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -66297,28 +64862,26 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v = - let _1 = - let _1 = + let _v : (Parsetree.expression) = let _1 = + let _1 = # 3247 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_hole ) -# 66306 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 64870 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1329 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc _1 ) -# 66314 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 64878 "src/ocaml/preprocess/parser_raw.ml" + + in + # 3079 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 66320 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression)) - in +# 64884 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -66360,70 +64923,68 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__2_inlined1_ in - let _v = + let _v : (Parsetree.expression) = let _1 = let _1 = - let _1 = - let _3 = - let (_endpos__2_, _startpos__1_) = (_endpos__2_inlined1_, _startpos__1_inlined1_) in - let _1 = + let _3 = + let (_endpos__2_, _startpos__1_) = (_endpos__2_inlined1_, _startpos__1_inlined1_) in + let _1 = # 3248 "src/ocaml/preprocess/parser_raw.mly" (Lident "()") -# 66372 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos__1_ = _endpos__2_ in +# 64934 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__2_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 1296 "src/ocaml/preprocess/parser_raw.mly" + ( mkrhs _1 _sloc ) +# 64943 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__3_, _startpos__3_) = (_endpos__2_inlined1_, _startpos__1_inlined1_) in + let od = + let _1 = let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 66381 "src/ocaml/preprocess/parser_raw.ml" +# 64955 "src/ocaml/preprocess/parser_raw.ml" in - let (_endpos__3_, _startpos__3_) = (_endpos__2_inlined1_, _startpos__1_inlined1_) in - let od = - let _1 = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 1296 "src/ocaml/preprocess/parser_raw.mly" - ( mkrhs _1 _sloc ) -# 66393 "src/ocaml/preprocess/parser_raw.ml" - - in - let _loc__1_ = (_startpos__1_, _endpos__1_) in - + let _loc__1_ = (_startpos__1_, _endpos__1_) in + # 2065 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _loc__1_ in let me = Mod.ident ~loc _1 in Opn.mk ~loc me ) -# 66402 "src/ocaml/preprocess/parser_raw.ml" - - in - let _loc__3_ = (_startpos__3_, _endpos__3_) in +# 64964 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc__3_ = (_startpos__3_, _endpos__3_) in + # 3249 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_open(od, mkexp ~loc:(_loc__3_) (Pexp_construct(_3, None))) ) -# 66409 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__2_inlined1_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 64971 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__2_inlined1_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1329 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc _1 ) -# 66419 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 64981 "src/ocaml/preprocess/parser_raw.ml" + + in + # 3079 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 66425 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression)) - in +# 64987 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -66459,30 +65020,28 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in - let _v = - let _1 = - let _1 = + let _v : (Parsetree.expression) = let _1 = + let _1 = # 3255 "src/ocaml/preprocess/parser_raw.mly" ( let (exten, fields) = _2 in Pexp_record(fields, exten) ) -# 66469 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos__1_ = _endpos__3_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 65029 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__3_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1329 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc _1 ) -# 66478 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 65038 "src/ocaml/preprocess/parser_raw.ml" + + in + # 3079 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 66484 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression)) - in +# 65044 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -66518,30 +65077,28 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in - let _v = - let _1 = - let _1 = + let _v : (Parsetree.expression) = let _1 = + let _1 = # 3258 "src/ocaml/preprocess/parser_raw.mly" ( let (exten, fields) = _2 in Pexp_record_unboxed_product(fields, exten) ) -# 66528 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos__1_ = _endpos__3_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 65086 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__3_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1329 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc _1 ) -# 66537 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 65095 "src/ocaml/preprocess/parser_raw.ml" + + in + # 3079 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 66543 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression)) - in +# 65101 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -66591,54 +65148,52 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__5_ in - let _v = + let _v : (Parsetree.expression) = let _1 = let _1 = - let _1 = - let od = - let _1 = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let od = + let _1 = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 66606 "src/ocaml/preprocess/parser_raw.ml" - - in - let _loc__1_ = (_startpos__1_, _endpos__1_) in +# 65162 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc__1_ = (_startpos__1_, _endpos__1_) in + # 2065 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _loc__1_ in let me = Mod.ident ~loc _1 in Opn.mk ~loc me ) -# 66615 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__5_ in +# 65171 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__5_ in + # 3265 "src/ocaml/preprocess/parser_raw.mly" ( let (exten, fields) = _4 in Pexp_open(od, mkexp ~loc:(_startpos__3_, _endpos) (Pexp_record(fields, exten))) ) -# 66624 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 65180 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__5_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1329 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc _1 ) -# 66634 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 65190 "src/ocaml/preprocess/parser_raw.ml" + + in + # 3079 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 66640 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression)) - in +# 65196 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -66673,54 +65228,52 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in - let _v = + let _v : (Parsetree.expression) = let _1 = let _1 = let _1 = let _1 = - let _1 = - let _2 = + let _2 = # 3674 "src/ocaml/preprocess/parser_raw.mly" ( es ) -# 66685 "src/ocaml/preprocess/parser_raw.ml" - in - +# 65239 "src/ocaml/preprocess/parser_raw.ml" + in + # 3173 "src/ocaml/preprocess/parser_raw.mly" ( Generic_array.Simple.Literal _2 ) -# 66690 "src/ocaml/preprocess/parser_raw.ml" - - in +# 65244 "src/ocaml/preprocess/parser_raw.ml" + in + # 3184 "src/ocaml/preprocess/parser_raw.mly" ( Generic_array.Expression.Simple _1 ) -# 66696 "src/ocaml/preprocess/parser_raw.ml" - - in +# 65250 "src/ocaml/preprocess/parser_raw.ml" + in + # 3273 "src/ocaml/preprocess/parser_raw.mly" ( Generic_array.Expression.to_desc "[|" "|]" Mutable _1 ) -# 66706 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__3_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 65260 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__3_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1329 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc _1 ) -# 66716 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 65270 "src/ocaml/preprocess/parser_raw.ml" + + in + # 3079 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 66722 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression)) - in +# 65276 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -66748,47 +65301,45 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in - let _v = + let _v : (Parsetree.expression) = let _1 = let _1 = let _1 = - let _1 = - let _1 = + let _1 = # 3179 "src/ocaml/preprocess/parser_raw.mly" ( Generic_array.Simple.Literal [] ) -# 66759 "src/ocaml/preprocess/parser_raw.ml" - in - +# 65311 "src/ocaml/preprocess/parser_raw.ml" + in + # 3184 "src/ocaml/preprocess/parser_raw.mly" ( Generic_array.Expression.Simple _1 ) -# 66764 "src/ocaml/preprocess/parser_raw.ml" - - in +# 65316 "src/ocaml/preprocess/parser_raw.ml" + in + # 3273 "src/ocaml/preprocess/parser_raw.mly" ( Generic_array.Expression.to_desc "[|" "|]" Mutable _1 ) -# 66774 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__2_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 65326 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__2_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1329 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc _1 ) -# 66784 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 65336 "src/ocaml/preprocess/parser_raw.ml" + + in + # 3079 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 66790 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression)) - in +# 65342 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -66837,69 +65388,67 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__5_ in - let _v = + let _v : (Parsetree.expression) = let _1 = let _1 = let _1 = - let _1 = - let _4 = + let _4 = # 3674 "src/ocaml/preprocess/parser_raw.mly" ( es ) -# 66848 "src/ocaml/preprocess/parser_raw.ml" - in - let od = - let _1 = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 65398 "src/ocaml/preprocess/parser_raw.ml" + in + let od = + let _1 = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 66858 "src/ocaml/preprocess/parser_raw.ml" - - in - let _loc__1_ = (_startpos__1_, _endpos__1_) in +# 65408 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc__1_ = (_startpos__1_, _endpos__1_) in + # 2065 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _loc__1_ in let me = Mod.ident ~loc _1 in Opn.mk ~loc me ) -# 66867 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__5_ in +# 65417 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__5_ in + # 3186 "src/ocaml/preprocess/parser_raw.mly" ( Generic_array.Expression.Opened_literal(od, _startpos__3_, _endpos, _4) ) -# 66875 "src/ocaml/preprocess/parser_raw.ml" - - in +# 65425 "src/ocaml/preprocess/parser_raw.ml" + in + # 3273 "src/ocaml/preprocess/parser_raw.mly" ( Generic_array.Expression.to_desc "[|" "|]" Mutable _1 ) -# 66885 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 65435 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__5_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1329 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc _1 ) -# 66895 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 65445 "src/ocaml/preprocess/parser_raw.ml" + + in + # 3079 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 66901 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression)) - in +# 65451 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -66941,64 +65490,62 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in - let _v = + let _v : (Parsetree.expression) = let _1 = let _1 = let _1 = - let _1 = - let od = - let _1 = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let od = + let _1 = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 66957 "src/ocaml/preprocess/parser_raw.ml" - - in - let _loc__1_ = (_startpos__1_, _endpos__1_) in +# 65505 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc__1_ = (_startpos__1_, _endpos__1_) in + # 2065 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _loc__1_ in let me = Mod.ident ~loc _1 in Opn.mk ~loc me ) -# 66966 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__4_ in +# 65514 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__4_ in + # 3189 "src/ocaml/preprocess/parser_raw.mly" ( (* TODO: review the location of Pexp_array *) Generic_array.Expression.Opened_literal(od, _startpos__3_, _endpos, []) ) -# 66974 "src/ocaml/preprocess/parser_raw.ml" - - in +# 65522 "src/ocaml/preprocess/parser_raw.ml" + in + # 3273 "src/ocaml/preprocess/parser_raw.mly" ( Generic_array.Expression.to_desc "[|" "|]" Mutable _1 ) -# 66984 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__4_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 65532 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__4_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1329 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc _1 ) -# 66994 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 65542 "src/ocaml/preprocess/parser_raw.ml" + + in + # 3079 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 67000 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression)) - in +# 65548 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -67033,37 +65580,35 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in - let _v = + let _v : (Parsetree.expression) = let _1 = let _1 = - let _1 = - let _2 = + let _2 = # 3674 "src/ocaml/preprocess/parser_raw.mly" ( es ) -# 67043 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc__3_ = (_startpos__3_, _endpos__3_) in - +# 65589 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc__3_ = (_startpos__3_, _endpos__3_) in + # 3279 "src/ocaml/preprocess/parser_raw.mly" ( fst (mktailexp _loc__3_ _2) ) -# 67049 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__3_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 65595 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__3_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1329 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc _1 ) -# 67059 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 65605 "src/ocaml/preprocess/parser_raw.ml" + + in + # 3079 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 67065 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression)) - in +# 65611 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -67119,102 +65664,100 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in - let _v = + let _v : (Parsetree.expression) = let _1 = let _1 = - let _1 = - let _3 = - let (_startpos__1_, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined2) in + let _3 = + let (_startpos__1_, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined2) in + let _1 = let _1 = - let _1 = - let _3 = - let xs = -# 264 "" + let _3 = + let xs = +# 253 "" ( List.rev xs ) -# 67134 "src/ocaml/preprocess/parser_raw.ml" - in - +# 65678 "src/ocaml/preprocess/parser_raw.ml" + in + # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 67139 "src/ocaml/preprocess/parser_raw.ml" - - in - let _2 = - let _1 = _1_inlined1 in - let _1 = +# 65683 "src/ocaml/preprocess/parser_raw.ml" + + in + let _2 = + let _1 = _1_inlined1 in + let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 67147 "src/ocaml/preprocess/parser_raw.ml" - in - +# 65691 "src/ocaml/preprocess/parser_raw.ml" + in + # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 67152 "src/ocaml/preprocess/parser_raw.ml" - - in +# 65696 "src/ocaml/preprocess/parser_raw.ml" + in + # 3154 "src/ocaml/preprocess/parser_raw.mly" ( { pcomp_body = _2; pcomp_clauses = _3 } ) -# 67158 "src/ocaml/preprocess/parser_raw.ml" - - in +# 65702 "src/ocaml/preprocess/parser_raw.ml" + in + # 3159 "src/ocaml/preprocess/parser_raw.mly" ( Pcomp_list_comprehension _1 ) -# 67164 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__4_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 65708 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__4_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 3168 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (Pexp_comprehension _1) ) -# 67174 "src/ocaml/preprocess/parser_raw.ml" +# 65718 "src/ocaml/preprocess/parser_raw.ml" + + in + let od = + let _1 = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let od = - let _1 = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 67185 "src/ocaml/preprocess/parser_raw.ml" - - in - let _loc__1_ = (_startpos__1_, _endpos__1_) in +# 65729 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc__1_ = (_startpos__1_, _endpos__1_) in + # 2065 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _loc__1_ in let me = Mod.ident ~loc _1 in Opn.mk ~loc me ) -# 67194 "src/ocaml/preprocess/parser_raw.ml" - - in +# 65738 "src/ocaml/preprocess/parser_raw.ml" + in + # 3285 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_open(od, _3) ) -# 67200 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__4_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 65744 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__4_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1329 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc _1 ) -# 67210 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 65754 "src/ocaml/preprocess/parser_raw.ml" + + in + # 3079 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 67216 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression)) - in +# 65760 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -67291,69 +65834,68 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in - let _v = + let _v : (Parsetree.expression) = let _1 = let _1 = - let _1 = - let _3 = - let (_startpos__1_inlined1_, _startpos__1_, _1_inlined3, _1_inlined2) = (_startpos__1_inlined2_, _startpos__1_inlined1_, _1_inlined4, _1_inlined3) in + let _3 = + let (_startpos__1_inlined1_, _startpos__1_, _1_inlined3, _1_inlined2) = (_startpos__1_inlined2_, _startpos__1_inlined1_, _1_inlined4, _1_inlined3) in + let _1 = let _1 = - let _1 = - let _3 = - let xs = xs_inlined1 in - let xs = -# 264 "" + let _3 = + let xs = xs_inlined1 in + let xs = +# 253 "" ( List.rev xs ) -# 67307 "src/ocaml/preprocess/parser_raw.ml" - in - +# 65849 "src/ocaml/preprocess/parser_raw.ml" + in + # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 67312 "src/ocaml/preprocess/parser_raw.ml" - - in - let _2 = - let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in - let _1 = - let _3 = - let xs = - let xs = -# 264 "" +# 65854 "src/ocaml/preprocess/parser_raw.ml" + + in + let _2 = + let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in + let _1 = + let _3 = + let xs = + let xs = +# 253 "" ( List.rev xs ) -# 67323 "src/ocaml/preprocess/parser_raw.ml" - in - +# 65865 "src/ocaml/preprocess/parser_raw.ml" + in + # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 67328 "src/ocaml/preprocess/parser_raw.ml" - - in +# 65870 "src/ocaml/preprocess/parser_raw.ml" + in + # 3510 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 67334 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__3_ = _endpos_xs_ in +# 65876 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__3_ = _endpos_xs_ in + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in - + let _1 = _1_inlined1 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 67345 "src/ocaml/preprocess/parser_raw.ml" - - in +# 65887 "src/ocaml/preprocess/parser_raw.ml" + in + # 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 67351 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 65893 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2718 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in @@ -67367,79 +65909,78 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 67371 "src/ocaml/preprocess/parser_raw.ml" - - in +# 65913 "src/ocaml/preprocess/parser_raw.ml" + in + # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 67377 "src/ocaml/preprocess/parser_raw.ml" - - in +# 65919 "src/ocaml/preprocess/parser_raw.ml" + in + # 3154 "src/ocaml/preprocess/parser_raw.mly" ( { pcomp_body = _2; pcomp_clauses = _3 } ) -# 67383 "src/ocaml/preprocess/parser_raw.ml" - - in +# 65925 "src/ocaml/preprocess/parser_raw.ml" + in + # 3159 "src/ocaml/preprocess/parser_raw.mly" ( Pcomp_list_comprehension _1 ) -# 67389 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__4_ in +# 65931 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__1_ = _endpos__4_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 3168 "src/ocaml/preprocess/parser_raw.mly" + ( mkexp ~loc:_sloc (Pexp_comprehension _1) ) +# 65941 "src/ocaml/preprocess/parser_raw.ml" + + in + let od = + let _1 = let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3168 "src/ocaml/preprocess/parser_raw.mly" - ( mkexp ~loc:_sloc (Pexp_comprehension _1) ) -# 67399 "src/ocaml/preprocess/parser_raw.ml" - - in - let od = - let _1 = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 67410 "src/ocaml/preprocess/parser_raw.ml" - - in - let _loc__1_ = (_startpos__1_, _endpos__1_) in +# 65952 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc__1_ = (_startpos__1_, _endpos__1_) in + # 2065 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _loc__1_ in let me = Mod.ident ~loc _1 in Opn.mk ~loc me ) -# 67419 "src/ocaml/preprocess/parser_raw.ml" - - in +# 65961 "src/ocaml/preprocess/parser_raw.ml" + in + # 3285 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_open(od, _3) ) -# 67425 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__4_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 65967 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__4_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1329 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc _1 ) -# 67435 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 65977 "src/ocaml/preprocess/parser_raw.ml" + + in + # 3079 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 67441 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression)) - in +# 65983 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -67495,102 +66036,100 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in - let _v = + let _v : (Parsetree.expression) = let _1 = let _1 = - let _1 = - let _3 = - let (_startpos__1_, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined2) in + let _3 = + let (_startpos__1_, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined2) in + let _1 = let _1 = - let _1 = - let _3 = - let xs = -# 264 "" + let _3 = + let xs = +# 253 "" ( List.rev xs ) -# 67510 "src/ocaml/preprocess/parser_raw.ml" - in - +# 66050 "src/ocaml/preprocess/parser_raw.ml" + in + # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 67515 "src/ocaml/preprocess/parser_raw.ml" - - in - let _2 = - let _1 = _1_inlined1 in - let _1 = +# 66055 "src/ocaml/preprocess/parser_raw.ml" + + in + let _2 = + let _1 = _1_inlined1 in + let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 67523 "src/ocaml/preprocess/parser_raw.ml" - in - +# 66063 "src/ocaml/preprocess/parser_raw.ml" + in + # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 67528 "src/ocaml/preprocess/parser_raw.ml" - - in +# 66068 "src/ocaml/preprocess/parser_raw.ml" + in + # 3154 "src/ocaml/preprocess/parser_raw.mly" ( { pcomp_body = _2; pcomp_clauses = _3 } ) -# 67534 "src/ocaml/preprocess/parser_raw.ml" - - in +# 66074 "src/ocaml/preprocess/parser_raw.ml" + in + # 3161 "src/ocaml/preprocess/parser_raw.mly" ( Pcomp_array_comprehension (Mutable, _1) ) -# 67540 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__4_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 66080 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__4_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 3168 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (Pexp_comprehension _1) ) -# 67550 "src/ocaml/preprocess/parser_raw.ml" +# 66090 "src/ocaml/preprocess/parser_raw.ml" + + in + let od = + let _1 = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let od = - let _1 = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 67561 "src/ocaml/preprocess/parser_raw.ml" - - in - let _loc__1_ = (_startpos__1_, _endpos__1_) in +# 66101 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc__1_ = (_startpos__1_, _endpos__1_) in + # 2065 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _loc__1_ in let me = Mod.ident ~loc _1 in Opn.mk ~loc me ) -# 67570 "src/ocaml/preprocess/parser_raw.ml" - - in +# 66110 "src/ocaml/preprocess/parser_raw.ml" + in + # 3285 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_open(od, _3) ) -# 67576 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__4_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 66116 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__4_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1329 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc _1 ) -# 67586 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 66126 "src/ocaml/preprocess/parser_raw.ml" + + in + # 3079 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 67592 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression)) - in +# 66132 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -67667,69 +66206,68 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in - let _v = + let _v : (Parsetree.expression) = let _1 = let _1 = - let _1 = - let _3 = - let (_startpos__1_inlined1_, _startpos__1_, _1_inlined3, _1_inlined2) = (_startpos__1_inlined2_, _startpos__1_inlined1_, _1_inlined4, _1_inlined3) in + let _3 = + let (_startpos__1_inlined1_, _startpos__1_, _1_inlined3, _1_inlined2) = (_startpos__1_inlined2_, _startpos__1_inlined1_, _1_inlined4, _1_inlined3) in + let _1 = let _1 = - let _1 = - let _3 = - let xs = xs_inlined1 in - let xs = -# 264 "" + let _3 = + let xs = xs_inlined1 in + let xs = +# 253 "" ( List.rev xs ) -# 67683 "src/ocaml/preprocess/parser_raw.ml" - in - +# 66221 "src/ocaml/preprocess/parser_raw.ml" + in + # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 67688 "src/ocaml/preprocess/parser_raw.ml" - - in - let _2 = - let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in - let _1 = - let _3 = - let xs = - let xs = -# 264 "" +# 66226 "src/ocaml/preprocess/parser_raw.ml" + + in + let _2 = + let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in + let _1 = + let _3 = + let xs = + let xs = +# 253 "" ( List.rev xs ) -# 67699 "src/ocaml/preprocess/parser_raw.ml" - in - +# 66237 "src/ocaml/preprocess/parser_raw.ml" + in + # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 67704 "src/ocaml/preprocess/parser_raw.ml" - - in +# 66242 "src/ocaml/preprocess/parser_raw.ml" + in + # 3510 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 67710 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__3_ = _endpos_xs_ in +# 66248 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__3_ = _endpos_xs_ in + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in - + let _1 = _1_inlined1 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 67721 "src/ocaml/preprocess/parser_raw.ml" - - in +# 66259 "src/ocaml/preprocess/parser_raw.ml" + in + # 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 67727 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 66265 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2718 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in @@ -67743,79 +66281,78 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 67747 "src/ocaml/preprocess/parser_raw.ml" - - in +# 66285 "src/ocaml/preprocess/parser_raw.ml" + in + # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 67753 "src/ocaml/preprocess/parser_raw.ml" - - in +# 66291 "src/ocaml/preprocess/parser_raw.ml" + in + # 3154 "src/ocaml/preprocess/parser_raw.mly" ( { pcomp_body = _2; pcomp_clauses = _3 } ) -# 67759 "src/ocaml/preprocess/parser_raw.ml" - - in +# 66297 "src/ocaml/preprocess/parser_raw.ml" + in + # 3161 "src/ocaml/preprocess/parser_raw.mly" ( Pcomp_array_comprehension (Mutable, _1) ) -# 67765 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__4_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 66303 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__4_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 3168 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (Pexp_comprehension _1) ) -# 67775 "src/ocaml/preprocess/parser_raw.ml" +# 66313 "src/ocaml/preprocess/parser_raw.ml" + + in + let od = + let _1 = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let od = - let _1 = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 67786 "src/ocaml/preprocess/parser_raw.ml" - - in - let _loc__1_ = (_startpos__1_, _endpos__1_) in +# 66324 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc__1_ = (_startpos__1_, _endpos__1_) in + # 2065 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _loc__1_ in let me = Mod.ident ~loc _1 in Opn.mk ~loc me ) -# 67795 "src/ocaml/preprocess/parser_raw.ml" - - in +# 66333 "src/ocaml/preprocess/parser_raw.ml" + in + # 3285 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_open(od, _3) ) -# 67801 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__4_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 66339 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__4_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1329 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc _1 ) -# 67811 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 66349 "src/ocaml/preprocess/parser_raw.ml" + + in + # 3079 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 67817 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression)) - in +# 66355 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -67871,102 +66408,100 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in - let _v = + let _v : (Parsetree.expression) = let _1 = let _1 = - let _1 = - let _3 = - let (_startpos__1_, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined2) in + let _3 = + let (_startpos__1_, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined2) in + let _1 = let _1 = - let _1 = - let _3 = - let xs = -# 264 "" + let _3 = + let xs = +# 253 "" ( List.rev xs ) -# 67886 "src/ocaml/preprocess/parser_raw.ml" - in - +# 66422 "src/ocaml/preprocess/parser_raw.ml" + in + # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 67891 "src/ocaml/preprocess/parser_raw.ml" - - in - let _2 = - let _1 = _1_inlined1 in - let _1 = +# 66427 "src/ocaml/preprocess/parser_raw.ml" + + in + let _2 = + let _1 = _1_inlined1 in + let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 67899 "src/ocaml/preprocess/parser_raw.ml" - in - +# 66435 "src/ocaml/preprocess/parser_raw.ml" + in + # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 67904 "src/ocaml/preprocess/parser_raw.ml" - - in +# 66440 "src/ocaml/preprocess/parser_raw.ml" + in + # 3154 "src/ocaml/preprocess/parser_raw.mly" ( { pcomp_body = _2; pcomp_clauses = _3 } ) -# 67910 "src/ocaml/preprocess/parser_raw.ml" - - in +# 66446 "src/ocaml/preprocess/parser_raw.ml" + in + # 3163 "src/ocaml/preprocess/parser_raw.mly" ( Pcomp_array_comprehension (Immutable, _1) ) -# 67916 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__4_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 66452 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__4_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 3168 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (Pexp_comprehension _1) ) -# 67926 "src/ocaml/preprocess/parser_raw.ml" +# 66462 "src/ocaml/preprocess/parser_raw.ml" + + in + let od = + let _1 = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let od = - let _1 = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 67937 "src/ocaml/preprocess/parser_raw.ml" - - in - let _loc__1_ = (_startpos__1_, _endpos__1_) in +# 66473 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc__1_ = (_startpos__1_, _endpos__1_) in + # 2065 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _loc__1_ in let me = Mod.ident ~loc _1 in Opn.mk ~loc me ) -# 67946 "src/ocaml/preprocess/parser_raw.ml" - - in +# 66482 "src/ocaml/preprocess/parser_raw.ml" + in + # 3285 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_open(od, _3) ) -# 67952 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__4_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 66488 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__4_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1329 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc _1 ) -# 67962 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 66498 "src/ocaml/preprocess/parser_raw.ml" + + in + # 3079 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 67968 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression)) - in +# 66504 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -68043,69 +66578,68 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in - let _v = + let _v : (Parsetree.expression) = let _1 = let _1 = - let _1 = - let _3 = - let (_startpos__1_inlined1_, _startpos__1_, _1_inlined3, _1_inlined2) = (_startpos__1_inlined2_, _startpos__1_inlined1_, _1_inlined4, _1_inlined3) in + let _3 = + let (_startpos__1_inlined1_, _startpos__1_, _1_inlined3, _1_inlined2) = (_startpos__1_inlined2_, _startpos__1_inlined1_, _1_inlined4, _1_inlined3) in + let _1 = let _1 = - let _1 = - let _3 = - let xs = xs_inlined1 in - let xs = -# 264 "" + let _3 = + let xs = xs_inlined1 in + let xs = +# 253 "" ( List.rev xs ) -# 68059 "src/ocaml/preprocess/parser_raw.ml" - in - +# 66593 "src/ocaml/preprocess/parser_raw.ml" + in + # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 68064 "src/ocaml/preprocess/parser_raw.ml" - - in - let _2 = - let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in - let _1 = - let _3 = - let xs = - let xs = -# 264 "" +# 66598 "src/ocaml/preprocess/parser_raw.ml" + + in + let _2 = + let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in + let _1 = + let _3 = + let xs = + let xs = +# 253 "" ( List.rev xs ) -# 68075 "src/ocaml/preprocess/parser_raw.ml" - in - +# 66609 "src/ocaml/preprocess/parser_raw.ml" + in + # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 68080 "src/ocaml/preprocess/parser_raw.ml" - - in +# 66614 "src/ocaml/preprocess/parser_raw.ml" + in + # 3510 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 68086 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__3_ = _endpos_xs_ in +# 66620 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__3_ = _endpos_xs_ in + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in - + let _1 = _1_inlined1 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 68097 "src/ocaml/preprocess/parser_raw.ml" - - in +# 66631 "src/ocaml/preprocess/parser_raw.ml" + in + # 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 68103 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 66637 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2718 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in @@ -68119,79 +66653,78 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 68123 "src/ocaml/preprocess/parser_raw.ml" - - in +# 66657 "src/ocaml/preprocess/parser_raw.ml" + in + # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 68129 "src/ocaml/preprocess/parser_raw.ml" - - in +# 66663 "src/ocaml/preprocess/parser_raw.ml" + in + # 3154 "src/ocaml/preprocess/parser_raw.mly" ( { pcomp_body = _2; pcomp_clauses = _3 } ) -# 68135 "src/ocaml/preprocess/parser_raw.ml" - - in +# 66669 "src/ocaml/preprocess/parser_raw.ml" + in + # 3163 "src/ocaml/preprocess/parser_raw.mly" ( Pcomp_array_comprehension (Immutable, _1) ) -# 68141 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__4_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 66675 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__4_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 3168 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (Pexp_comprehension _1) ) -# 68151 "src/ocaml/preprocess/parser_raw.ml" +# 66685 "src/ocaml/preprocess/parser_raw.ml" + + in + let od = + let _1 = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let od = - let _1 = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 68162 "src/ocaml/preprocess/parser_raw.ml" - - in - let _loc__1_ = (_startpos__1_, _endpos__1_) in +# 66696 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc__1_ = (_startpos__1_, _endpos__1_) in + # 2065 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _loc__1_ in let me = Mod.ident ~loc _1 in Opn.mk ~loc me ) -# 68171 "src/ocaml/preprocess/parser_raw.ml" - - in +# 66705 "src/ocaml/preprocess/parser_raw.ml" + in + # 3285 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_open(od, _3) ) -# 68177 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__4_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 66711 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__4_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1329 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc _1 ) -# 68187 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 66721 "src/ocaml/preprocess/parser_raw.ml" + + in + # 3079 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 68193 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression)) - in +# 66727 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -68240,62 +66773,60 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__5_ in - let _v = + let _v : (Parsetree.expression) = let _1 = let _1 = - let _1 = - let _4 = + let _4 = # 3674 "src/ocaml/preprocess/parser_raw.mly" ( es ) -# 68250 "src/ocaml/preprocess/parser_raw.ml" - in - let od = - let _1 = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 66782 "src/ocaml/preprocess/parser_raw.ml" + in + let od = + let _1 = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 68260 "src/ocaml/preprocess/parser_raw.ml" - - in - let _loc__1_ = (_startpos__1_, _endpos__1_) in +# 66792 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc__1_ = (_startpos__1_, _endpos__1_) in + # 2065 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _loc__1_ in let me = Mod.ident ~loc _1 in Opn.mk ~loc me ) -# 68269 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__5_ in - let _loc__5_ = (_startpos__5_, _endpos__5_) in +# 66801 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__5_ in + let _loc__5_ = (_startpos__5_, _endpos__5_) in + # 3287 "src/ocaml/preprocess/parser_raw.mly" ( let list_exp = (* TODO: review the location of list_exp *) let tail_exp, _tail_loc = mktailexp _loc__5_ _4 in mkexp ~loc:(_startpos__3_, _endpos) tail_exp in Pexp_open(od, list_exp) ) -# 68281 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 66813 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__5_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1329 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc _1 ) -# 68291 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 66823 "src/ocaml/preprocess/parser_raw.ml" + + in + # 3079 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 68297 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression)) - in +# 66829 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -68337,70 +66868,68 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__2_inlined1_ in - let _v = + let _v : (Parsetree.expression) = let _1 = let _1 = - let _1 = - let _3 = - let (_endpos__2_, _startpos__1_) = (_endpos__2_inlined1_, _startpos__1_inlined1_) in - let _1 = + let _3 = + let (_endpos__2_, _startpos__1_) = (_endpos__2_inlined1_, _startpos__1_inlined1_) in + let _1 = # 3292 "src/ocaml/preprocess/parser_raw.mly" (Lident "[]") -# 68349 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos__1_ = _endpos__2_ in +# 66879 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__2_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 1296 "src/ocaml/preprocess/parser_raw.mly" + ( mkrhs _1 _sloc ) +# 66888 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__3_, _startpos__3_) = (_endpos__2_inlined1_, _startpos__1_inlined1_) in + let od = + let _1 = let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 68358 "src/ocaml/preprocess/parser_raw.ml" +# 66900 "src/ocaml/preprocess/parser_raw.ml" in - let (_endpos__3_, _startpos__3_) = (_endpos__2_inlined1_, _startpos__1_inlined1_) in - let od = - let _1 = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 1296 "src/ocaml/preprocess/parser_raw.mly" - ( mkrhs _1 _sloc ) -# 68370 "src/ocaml/preprocess/parser_raw.ml" - - in - let _loc__1_ = (_startpos__1_, _endpos__1_) in - + let _loc__1_ = (_startpos__1_, _endpos__1_) in + # 2065 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _loc__1_ in let me = Mod.ident ~loc _1 in Opn.mk ~loc me ) -# 68379 "src/ocaml/preprocess/parser_raw.ml" - - in - let _loc__3_ = (_startpos__3_, _endpos__3_) in +# 66909 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc__3_ = (_startpos__3_, _endpos__3_) in + # 3293 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_open(od, mkexp ~loc:_loc__3_ (Pexp_construct(_3, None))) ) -# 68386 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__2_inlined1_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 66916 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__2_inlined1_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1329 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc _1 ) -# 68396 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 66926 "src/ocaml/preprocess/parser_raw.ml" + + in + # 3079 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 68402 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression)) - in +# 66932 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -68484,87 +67013,85 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__9_ in - let _v = - let _1 = - let _1 = - let _8 = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined3_, _startpos__1_inlined3_, _1_inlined3) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let _v : (Parsetree.expression) = let _1 = + let _1 = + let _8 = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined3_, _startpos__1_inlined3_, _1_inlined3) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 4936 "src/ocaml/preprocess/parser_raw.mly" ( let (lid, cstrs, attrs) = package_type_of_module_type _1 in let descr = Ptyp_package (lid, cstrs) in mktyp ~loc:_sloc ~attrs descr ) -# 68501 "src/ocaml/preprocess/parser_raw.ml" +# 67029 "src/ocaml/preprocess/parser_raw.ml" + + in + let _5 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in + let _2 = + let _1 = _1_inlined1 in - in - let _5 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in - # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 68511 "src/ocaml/preprocess/parser_raw.ml" - - in +# 67039 "src/ocaml/preprocess/parser_raw.ml" + in + # 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 68517 "src/ocaml/preprocess/parser_raw.ml" +# 67045 "src/ocaml/preprocess/parser_raw.ml" + + in + let od = + let _1 = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in - in - let od = - let _1 = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 68528 "src/ocaml/preprocess/parser_raw.ml" - - in - let _loc__1_ = (_startpos__1_, _endpos__1_) in +# 67056 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc__1_ = (_startpos__1_, _endpos__1_) in + # 2065 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _loc__1_ in let me = Mod.ident ~loc _1 in Opn.mk ~loc me ) -# 68537 "src/ocaml/preprocess/parser_raw.ml" - - in - let _startpos_od_ = _startpos__1_ in - let _endpos = _endpos__9_ in - let _symbolstartpos = _startpos_od_ in - let _sloc = (_symbolstartpos, _endpos) in +# 67065 "src/ocaml/preprocess/parser_raw.ml" + in + let _startpos_od_ = _startpos__1_ in + let _endpos = _endpos__9_ in + let _symbolstartpos = _startpos_od_ in + let _sloc = (_symbolstartpos, _endpos) in + # 3301 "src/ocaml/preprocess/parser_raw.mly" ( let modexp = mkexp_attrs ~loc:(_startpos__3_, _endpos) (Pexp_constraint (ghexp ~loc:_sloc (Pexp_pack _6), Some _8, [])) _5 in Pexp_open(od, modexp) ) -# 68550 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__9_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 67078 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__9_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1329 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc _1 ) -# 68560 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 67088 "src/ocaml/preprocess/parser_raw.ml" + + in + # 3079 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 68566 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression)) - in +# 67094 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -68599,43 +67126,41 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in - let _v = + let _v : (Parsetree.expression) = let _1 = let _1 = - let _1 = - let _2 = - let xs = -# 264 "" + let _2 = + let xs = +# 253 "" ( List.rev xs ) -# 68610 "src/ocaml/preprocess/parser_raw.ml" - in - +# 67136 "src/ocaml/preprocess/parser_raw.ml" + in + # 3633 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 68615 "src/ocaml/preprocess/parser_raw.ml" - - in +# 67141 "src/ocaml/preprocess/parser_raw.ml" + in + # 3311 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_unboxed_tuple _2 ) -# 68621 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__3_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 67147 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__3_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1329 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc _1 ) -# 68631 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 67157 "src/ocaml/preprocess/parser_raw.ml" + + in + # 3079 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 68637 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression)) - in +# 67163 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -68670,31 +67195,30 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in - let _v = + let _v : (Parsetree.expression) = let _1 = let _1 = - let _1 = - let _2 = + let _2 = # 3674 "src/ocaml/preprocess/parser_raw.mly" ( es ) -# 68680 "src/ocaml/preprocess/parser_raw.ml" - in - +# 67204 "src/ocaml/preprocess/parser_raw.ml" + in + # 3173 "src/ocaml/preprocess/parser_raw.mly" ( Generic_array.Simple.Literal _2 ) -# 68685 "src/ocaml/preprocess/parser_raw.ml" - - in +# 67209 "src/ocaml/preprocess/parser_raw.ml" + in + # 3184 "src/ocaml/preprocess/parser_raw.mly" ( Generic_array.Expression.Simple _1 ) -# 68691 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__3_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - ( +# 67215 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__1_ = _endpos__3_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 3084 "src/ocaml/preprocess/parser_raw.mly" ( Generic_array.Expression.to_expression "[:" ":]" @@ -68702,9 +67226,8 @@ module Tables = struct Immutable _1 ) -# 68706 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression)) - in +# 67230 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -68732,24 +67255,23 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in - let _v = - let _1 = - let _1 = + let _v : (Parsetree.expression) = let _1 = + let _1 = # 3179 "src/ocaml/preprocess/parser_raw.mly" ( Generic_array.Simple.Literal [] ) -# 68741 "src/ocaml/preprocess/parser_raw.ml" - in - +# 67263 "src/ocaml/preprocess/parser_raw.ml" + in + # 3184 "src/ocaml/preprocess/parser_raw.mly" ( Generic_array.Expression.Simple _1 ) -# 68746 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__2_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - ( +# 67268 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__1_ = _endpos__2_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 3084 "src/ocaml/preprocess/parser_raw.mly" ( Generic_array.Expression.to_expression "[:" ":]" @@ -68757,9 +67279,8 @@ module Tables = struct Immutable _1 ) -# 68761 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression)) - in +# 67283 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -68808,46 +67329,45 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__5_ in - let _v = - let _1 = - let _4 = + let _v : (Parsetree.expression) = let _1 = + let _4 = # 3674 "src/ocaml/preprocess/parser_raw.mly" ( es ) -# 68817 "src/ocaml/preprocess/parser_raw.ml" - in - let od = - let _1 = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 67337 "src/ocaml/preprocess/parser_raw.ml" + in + let od = + let _1 = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 68827 "src/ocaml/preprocess/parser_raw.ml" - - in - let _loc__1_ = (_startpos__1_, _endpos__1_) in +# 67347 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc__1_ = (_startpos__1_, _endpos__1_) in + # 2065 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _loc__1_ in let me = Mod.ident ~loc _1 in Opn.mk ~loc me ) -# 68836 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__5_ in +# 67356 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__5_ in + # 3186 "src/ocaml/preprocess/parser_raw.mly" ( Generic_array.Expression.Opened_literal(od, _startpos__3_, _endpos, _4) ) -# 68844 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - ( +# 67364 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__1_ = _endpos__5_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 3084 "src/ocaml/preprocess/parser_raw.mly" ( Generic_array.Expression.to_expression "[:" ":]" @@ -68855,9 +67375,8 @@ module Tables = struct Immutable _1 ) -# 68859 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression)) - in +# 67379 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -68899,41 +67418,40 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in - let _v = - let _1 = - let od = - let _1 = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let _v : (Parsetree.expression) = let _1 = + let od = + let _1 = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 68913 "src/ocaml/preprocess/parser_raw.ml" - - in - let _loc__1_ = (_startpos__1_, _endpos__1_) in +# 67431 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc__1_ = (_startpos__1_, _endpos__1_) in + # 2065 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _loc__1_ in let me = Mod.ident ~loc _1 in Opn.mk ~loc me ) -# 68922 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__4_ in +# 67440 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__4_ in + # 3189 "src/ocaml/preprocess/parser_raw.mly" ( (* TODO: review the location of Pexp_array *) Generic_array.Expression.Opened_literal(od, _startpos__3_, _endpos, []) ) -# 68930 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__4_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - ( +# 67448 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__1_ = _endpos__4_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 3084 "src/ocaml/preprocess/parser_raw.mly" ( Generic_array.Expression.to_expression "[:" ":]" @@ -68941,9 +67459,8 @@ module Tables = struct Immutable _1 ) -# 68945 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression)) - in +# 67463 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -68964,16 +67481,14 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - ( + let _v : (Parsetree.expression) = let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 3090 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (Pexp_constant _1) ) -# 68975 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression)) - in +# 67491 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -69015,63 +67530,61 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in - let _v = + let _v : (Parsetree.expression) = let _1 = let _1 = let _1 = - let _1 = - let _3 = - let xs = -# 264 "" + let _3 = + let xs = +# 253 "" ( List.rev xs ) -# 69027 "src/ocaml/preprocess/parser_raw.ml" - in - +# 67541 "src/ocaml/preprocess/parser_raw.ml" + in + # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 69032 "src/ocaml/preprocess/parser_raw.ml" - - in - let _2 = - let _1 = _1_inlined1 in - let _1 = +# 67546 "src/ocaml/preprocess/parser_raw.ml" + + in + let _2 = + let _1 = _1_inlined1 in + let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 69040 "src/ocaml/preprocess/parser_raw.ml" - in - +# 67554 "src/ocaml/preprocess/parser_raw.ml" + in + # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 69045 "src/ocaml/preprocess/parser_raw.ml" - - in +# 67559 "src/ocaml/preprocess/parser_raw.ml" + in + # 3154 "src/ocaml/preprocess/parser_raw.mly" ( { pcomp_body = _2; pcomp_clauses = _3 } ) -# 69051 "src/ocaml/preprocess/parser_raw.ml" - - in +# 67565 "src/ocaml/preprocess/parser_raw.ml" + in + # 3159 "src/ocaml/preprocess/parser_raw.mly" ( Pcomp_list_comprehension _1 ) -# 69057 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__4_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 67571 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__4_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 3168 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (Pexp_comprehension _1) ) -# 69067 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 67581 "src/ocaml/preprocess/parser_raw.ml" + + in + # 3091 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 69073 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression)) - in +# 67587 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -69134,66 +67647,65 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in - let _v = + let _v : (Parsetree.expression) = let _1 = let _1 = let _1 = - let _1 = - let _3 = - let xs = xs_inlined1 in - let xs = -# 264 "" + let _3 = + let xs = xs_inlined1 in + let xs = +# 253 "" ( List.rev xs ) -# 69147 "src/ocaml/preprocess/parser_raw.ml" - in - +# 67659 "src/ocaml/preprocess/parser_raw.ml" + in + # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 69152 "src/ocaml/preprocess/parser_raw.ml" - - in - let _2 = - let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in - let _1 = - let _3 = - let xs = - let xs = -# 264 "" +# 67664 "src/ocaml/preprocess/parser_raw.ml" + + in + let _2 = + let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in + let _1 = + let _3 = + let xs = + let xs = +# 253 "" ( List.rev xs ) -# 69163 "src/ocaml/preprocess/parser_raw.ml" - in - +# 67675 "src/ocaml/preprocess/parser_raw.ml" + in + # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 69168 "src/ocaml/preprocess/parser_raw.ml" - - in +# 67680 "src/ocaml/preprocess/parser_raw.ml" + in + # 3510 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 69174 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__3_ = _endpos_xs_ in +# 67686 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__3_ = _endpos_xs_ in + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in - + let _1 = _1_inlined1 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 69185 "src/ocaml/preprocess/parser_raw.ml" - - in +# 67697 "src/ocaml/preprocess/parser_raw.ml" + in + # 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 69191 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 67703 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2718 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in @@ -69207,43 +67719,42 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 69211 "src/ocaml/preprocess/parser_raw.ml" - - in +# 67723 "src/ocaml/preprocess/parser_raw.ml" + in + # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 69217 "src/ocaml/preprocess/parser_raw.ml" - - in +# 67729 "src/ocaml/preprocess/parser_raw.ml" + in + # 3154 "src/ocaml/preprocess/parser_raw.mly" ( { pcomp_body = _2; pcomp_clauses = _3 } ) -# 69223 "src/ocaml/preprocess/parser_raw.ml" - - in +# 67735 "src/ocaml/preprocess/parser_raw.ml" + in + # 3159 "src/ocaml/preprocess/parser_raw.mly" ( Pcomp_list_comprehension _1 ) -# 69229 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__4_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 67741 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__4_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 3168 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (Pexp_comprehension _1) ) -# 69239 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 67751 "src/ocaml/preprocess/parser_raw.ml" + + in + # 3091 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 69245 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression)) - in +# 67757 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -69285,63 +67796,61 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in - let _v = + let _v : (Parsetree.expression) = let _1 = let _1 = let _1 = - let _1 = - let _3 = - let xs = -# 264 "" + let _3 = + let xs = +# 253 "" ( List.rev xs ) -# 69297 "src/ocaml/preprocess/parser_raw.ml" - in - +# 67807 "src/ocaml/preprocess/parser_raw.ml" + in + # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 69302 "src/ocaml/preprocess/parser_raw.ml" - - in - let _2 = - let _1 = _1_inlined1 in - let _1 = +# 67812 "src/ocaml/preprocess/parser_raw.ml" + + in + let _2 = + let _1 = _1_inlined1 in + let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 69310 "src/ocaml/preprocess/parser_raw.ml" - in - +# 67820 "src/ocaml/preprocess/parser_raw.ml" + in + # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 69315 "src/ocaml/preprocess/parser_raw.ml" - - in +# 67825 "src/ocaml/preprocess/parser_raw.ml" + in + # 3154 "src/ocaml/preprocess/parser_raw.mly" ( { pcomp_body = _2; pcomp_clauses = _3 } ) -# 69321 "src/ocaml/preprocess/parser_raw.ml" - - in +# 67831 "src/ocaml/preprocess/parser_raw.ml" + in + # 3161 "src/ocaml/preprocess/parser_raw.mly" ( Pcomp_array_comprehension (Mutable, _1) ) -# 69327 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__4_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 67837 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__4_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 3168 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (Pexp_comprehension _1) ) -# 69337 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 67847 "src/ocaml/preprocess/parser_raw.ml" + + in + # 3091 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 69343 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression)) - in +# 67853 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -69404,66 +67913,65 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in - let _v = + let _v : (Parsetree.expression) = let _1 = let _1 = let _1 = - let _1 = - let _3 = - let xs = xs_inlined1 in - let xs = -# 264 "" + let _3 = + let xs = xs_inlined1 in + let xs = +# 253 "" ( List.rev xs ) -# 69417 "src/ocaml/preprocess/parser_raw.ml" - in - +# 67925 "src/ocaml/preprocess/parser_raw.ml" + in + # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 69422 "src/ocaml/preprocess/parser_raw.ml" - - in - let _2 = - let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in - let _1 = - let _3 = - let xs = - let xs = -# 264 "" +# 67930 "src/ocaml/preprocess/parser_raw.ml" + + in + let _2 = + let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in + let _1 = + let _3 = + let xs = + let xs = +# 253 "" ( List.rev xs ) -# 69433 "src/ocaml/preprocess/parser_raw.ml" - in - +# 67941 "src/ocaml/preprocess/parser_raw.ml" + in + # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 69438 "src/ocaml/preprocess/parser_raw.ml" - - in +# 67946 "src/ocaml/preprocess/parser_raw.ml" + in + # 3510 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 69444 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__3_ = _endpos_xs_ in +# 67952 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__3_ = _endpos_xs_ in + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in - + let _1 = _1_inlined1 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 69455 "src/ocaml/preprocess/parser_raw.ml" - - in +# 67963 "src/ocaml/preprocess/parser_raw.ml" + in + # 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 69461 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 67969 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2718 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in @@ -69477,43 +67985,42 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 69481 "src/ocaml/preprocess/parser_raw.ml" - - in +# 67989 "src/ocaml/preprocess/parser_raw.ml" + in + # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 69487 "src/ocaml/preprocess/parser_raw.ml" - - in +# 67995 "src/ocaml/preprocess/parser_raw.ml" + in + # 3154 "src/ocaml/preprocess/parser_raw.mly" ( { pcomp_body = _2; pcomp_clauses = _3 } ) -# 69493 "src/ocaml/preprocess/parser_raw.ml" - - in +# 68001 "src/ocaml/preprocess/parser_raw.ml" + in + # 3161 "src/ocaml/preprocess/parser_raw.mly" ( Pcomp_array_comprehension (Mutable, _1) ) -# 69499 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__4_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 68007 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__4_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 3168 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (Pexp_comprehension _1) ) -# 69509 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 68017 "src/ocaml/preprocess/parser_raw.ml" + + in + # 3091 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 69515 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression)) - in +# 68023 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -69555,63 +68062,61 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in - let _v = + let _v : (Parsetree.expression) = let _1 = let _1 = let _1 = - let _1 = - let _3 = - let xs = -# 264 "" + let _3 = + let xs = +# 253 "" ( List.rev xs ) -# 69567 "src/ocaml/preprocess/parser_raw.ml" - in - +# 68073 "src/ocaml/preprocess/parser_raw.ml" + in + # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 69572 "src/ocaml/preprocess/parser_raw.ml" - - in - let _2 = - let _1 = _1_inlined1 in - let _1 = +# 68078 "src/ocaml/preprocess/parser_raw.ml" + + in + let _2 = + let _1 = _1_inlined1 in + let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 69580 "src/ocaml/preprocess/parser_raw.ml" - in - +# 68086 "src/ocaml/preprocess/parser_raw.ml" + in + # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 69585 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 3154 "src/ocaml/preprocess/parser_raw.mly" - ( { pcomp_body = _2; pcomp_clauses = _3 } ) -# 69591 "src/ocaml/preprocess/parser_raw.ml" +# 68091 "src/ocaml/preprocess/parser_raw.ml" in -# 3163 "src/ocaml/preprocess/parser_raw.mly" - ( Pcomp_array_comprehension (Immutable, _1) ) -# 69597 "src/ocaml/preprocess/parser_raw.ml" +# 3154 "src/ocaml/preprocess/parser_raw.mly" + ( { pcomp_body = _2; pcomp_clauses = _3 } ) +# 68097 "src/ocaml/preprocess/parser_raw.ml" in - let _endpos__1_ = _endpos__4_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in -# 3168 "src/ocaml/preprocess/parser_raw.mly" - ( mkexp ~loc:_sloc (Pexp_comprehension _1) ) -# 69607 "src/ocaml/preprocess/parser_raw.ml" +# 3163 "src/ocaml/preprocess/parser_raw.mly" + ( Pcomp_array_comprehension (Immutable, _1) ) +# 68103 "src/ocaml/preprocess/parser_raw.ml" in - ( + let _endpos__1_ = _endpos__4_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 3168 "src/ocaml/preprocess/parser_raw.mly" + ( mkexp ~loc:_sloc (Pexp_comprehension _1) ) +# 68113 "src/ocaml/preprocess/parser_raw.ml" + + in + # 3091 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 69613 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression)) - in +# 68119 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -69674,66 +68179,65 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in - let _v = + let _v : (Parsetree.expression) = let _1 = let _1 = let _1 = - let _1 = - let _3 = - let xs = xs_inlined1 in - let xs = -# 264 "" + let _3 = + let xs = xs_inlined1 in + let xs = +# 253 "" ( List.rev xs ) -# 69687 "src/ocaml/preprocess/parser_raw.ml" - in - +# 68191 "src/ocaml/preprocess/parser_raw.ml" + in + # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 69692 "src/ocaml/preprocess/parser_raw.ml" - - in - let _2 = - let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in - let _1 = - let _3 = - let xs = - let xs = -# 264 "" +# 68196 "src/ocaml/preprocess/parser_raw.ml" + + in + let _2 = + let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in + let _1 = + let _3 = + let xs = + let xs = +# 253 "" ( List.rev xs ) -# 69703 "src/ocaml/preprocess/parser_raw.ml" - in - +# 68207 "src/ocaml/preprocess/parser_raw.ml" + in + # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 69708 "src/ocaml/preprocess/parser_raw.ml" - - in +# 68212 "src/ocaml/preprocess/parser_raw.ml" + in + # 3510 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 69714 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__3_ = _endpos_xs_ in +# 68218 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__3_ = _endpos_xs_ in + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in - + let _1 = _1_inlined1 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 69725 "src/ocaml/preprocess/parser_raw.ml" - - in +# 68229 "src/ocaml/preprocess/parser_raw.ml" + in + # 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 69731 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 68235 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2718 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in @@ -69747,43 +68251,42 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 69751 "src/ocaml/preprocess/parser_raw.ml" - - in +# 68255 "src/ocaml/preprocess/parser_raw.ml" + in + # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 69757 "src/ocaml/preprocess/parser_raw.ml" - - in +# 68261 "src/ocaml/preprocess/parser_raw.ml" + in + # 3154 "src/ocaml/preprocess/parser_raw.mly" ( { pcomp_body = _2; pcomp_clauses = _3 } ) -# 69763 "src/ocaml/preprocess/parser_raw.ml" - - in +# 68267 "src/ocaml/preprocess/parser_raw.ml" + in + # 3163 "src/ocaml/preprocess/parser_raw.mly" ( Pcomp_array_comprehension (Immutable, _1) ) -# 69769 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__4_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 68273 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__4_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 3168 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (Pexp_comprehension _1) ) -# 69779 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 68283 "src/ocaml/preprocess/parser_raw.ml" + + in + # 3091 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 69785 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.expression)) - in +# 68289 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -69804,40 +68307,38 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v = + let _v : (Parsetree.pattern) = let _1 = let _1 = let _1 = - let _1 = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 69818 "src/ocaml/preprocess/parser_raw.ml" - - in +# 68320 "src/ocaml/preprocess/parser_raw.ml" + in + # 3842 "src/ocaml/preprocess/parser_raw.mly" ( Ppat_var (_1) ) -# 69824 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 68326 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1331 "src/ocaml/preprocess/parser_raw.mly" ( mkpat ~loc:_sloc _1 ) -# 69833 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 68335 "src/ocaml/preprocess/parser_raw.ml" + + in + # 3843 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 69839 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.pattern)) - in +# 68341 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -69861,7 +68362,7 @@ module Tables = struct let _v : (Parsetree.pattern) = # 3844 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 69865 "src/ocaml/preprocess/parser_raw.ml" +# 68366 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -69897,16 +68398,14 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in - let _v = - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - ( + let _v : (Parsetree.pattern) = let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 3849 "src/ocaml/preprocess/parser_raw.mly" ( reloc_pat ~loc:_sloc _2 ) -# 69908 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.pattern)) - in +# 68408 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -69930,7 +68429,7 @@ module Tables = struct let _v : (Parsetree.pattern) = # 3851 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 69934 "src/ocaml/preprocess/parser_raw.ml" +# 68433 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -69987,43 +68486,41 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__5_ in - let _v = - let _4 = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined3_, _startpos__1_inlined3_, _1_inlined3) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let _v : (Parsetree.pattern) = let _4 = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined3_, _startpos__1_inlined3_, _1_inlined3) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 70000 "src/ocaml/preprocess/parser_raw.ml" +# 68498 "src/ocaml/preprocess/parser_raw.ml" + + in + let _3 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in + let _2 = + let _1 = _1_inlined1 in - in - let _3 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in - # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 70010 "src/ocaml/preprocess/parser_raw.ml" - - in +# 68508 "src/ocaml/preprocess/parser_raw.ml" + in + # 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 70016 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__5_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - ( +# 68514 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__5_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 3853 "src/ocaml/preprocess/parser_raw.mly" ( mkpat_attrs ~loc:_sloc (Ppat_unpack _4) _3 ) -# 70025 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.pattern)) - in +# 68523 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -70093,60 +68590,58 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__7_ in - let _v = - let _6 = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined4_, _startpos__1_inlined4_, _1_inlined4) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let _v : (Parsetree.pattern) = let _6 = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined4_, _startpos__1_inlined4_, _1_inlined4) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 4936 "src/ocaml/preprocess/parser_raw.mly" ( let (lid, cstrs, attrs) = package_type_of_module_type _1 in let descr = Ptyp_package (lid, cstrs) in mktyp ~loc:_sloc ~attrs descr ) -# 70108 "src/ocaml/preprocess/parser_raw.ml" - - in - let _4 = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined3_, _startpos__1_inlined3_, _1_inlined3) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 68604 "src/ocaml/preprocess/parser_raw.ml" + + in + let _4 = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined3_, _startpos__1_inlined3_, _1_inlined3) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 70119 "src/ocaml/preprocess/parser_raw.ml" +# 68615 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__4_, _startpos__4_) = (_endpos__1_inlined3_, _startpos__1_inlined3_) in + let _3 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in + let _2 = + let _1 = _1_inlined1 in - in - let (_endpos__4_, _startpos__4_) = (_endpos__1_inlined3_, _startpos__1_inlined3_) in - let _3 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in - # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 70130 "src/ocaml/preprocess/parser_raw.ml" - - in +# 68626 "src/ocaml/preprocess/parser_raw.ml" + in + # 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 70136 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__7_ in - let _symbolstartpos = _startpos__1_ in - let _loc__4_ = (_startpos__4_, _endpos__4_) in - let _sloc = (_symbolstartpos, _endpos) in - ( +# 68632 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__7_ in + let _symbolstartpos = _startpos__1_ in + let _loc__4_ = (_startpos__4_, _endpos__4_) in + let _sloc = (_symbolstartpos, _endpos) in + # 3855 "src/ocaml/preprocess/parser_raw.mly" ( mkpat_attrs ~loc:_sloc (Ppat_constraint(mkpat ~loc:_loc__4_ (Ppat_unpack _4), Some _6, [])) _3 ) -# 70148 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.pattern)) - in +# 68644 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -70167,35 +68662,33 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v = + let _v : (Parsetree.pattern) = let _1 = let _1 = - let _1 = - let _1 = + let _1 = # 3865 "src/ocaml/preprocess/parser_raw.mly" ( Ppat_any ) -# 70177 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 68671 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1331 "src/ocaml/preprocess/parser_raw.mly" ( mkpat ~loc:_sloc _1 ) -# 70185 "src/ocaml/preprocess/parser_raw.ml" - - in +# 68679 "src/ocaml/preprocess/parser_raw.ml" + in + # 3899 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 70191 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 68685 "src/ocaml/preprocess/parser_raw.ml" + + in + # 3859 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 70197 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.pattern)) - in +# 68691 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -70230,36 +68723,34 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in - let _v = + let _v : (Parsetree.pattern) = let _1 = let _1 = - let _1 = - let _1 = + let _1 = # 3867 "src/ocaml/preprocess/parser_raw.mly" ( Ppat_interval (_1, _3) ) -# 70240 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos__1_ = _endpos__3_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 68732 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__3_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1331 "src/ocaml/preprocess/parser_raw.mly" ( mkpat ~loc:_sloc _1 ) -# 70249 "src/ocaml/preprocess/parser_raw.ml" - - in +# 68741 "src/ocaml/preprocess/parser_raw.ml" + in + # 3899 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 70255 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 68747 "src/ocaml/preprocess/parser_raw.ml" + + in + # 3859 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 70261 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.pattern)) - in +# 68753 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -70280,47 +68771,45 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v = + let _v : (Parsetree.pattern) = let _1 = let _1 = let _1 = let _1 = - let _1 = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 70295 "src/ocaml/preprocess/parser_raw.ml" - - in +# 68785 "src/ocaml/preprocess/parser_raw.ml" + in + # 3869 "src/ocaml/preprocess/parser_raw.mly" ( Ppat_construct(_1, None) ) -# 70301 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 68791 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1331 "src/ocaml/preprocess/parser_raw.mly" ( mkpat ~loc:_sloc _1 ) -# 70310 "src/ocaml/preprocess/parser_raw.ml" - - in +# 68800 "src/ocaml/preprocess/parser_raw.ml" + in + # 3899 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 70316 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 68806 "src/ocaml/preprocess/parser_raw.ml" + + in + # 3859 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 70322 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.pattern)) - in +# 68812 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -70341,35 +68830,33 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v = + let _v : (Parsetree.pattern) = let _1 = let _1 = - let _1 = - let _1 = + let _1 = # 3871 "src/ocaml/preprocess/parser_raw.mly" ( Ppat_variant(_1, None) ) -# 70351 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 68839 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1331 "src/ocaml/preprocess/parser_raw.mly" ( mkpat ~loc:_sloc _1 ) -# 70359 "src/ocaml/preprocess/parser_raw.ml" - - in +# 68847 "src/ocaml/preprocess/parser_raw.ml" + in + # 3899 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 70365 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 68853 "src/ocaml/preprocess/parser_raw.ml" + + in + # 3859 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 70371 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.pattern)) - in +# 68859 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -70397,54 +68884,52 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined1_ in - let _v = + let _v : (Parsetree.pattern) = let _1 = let _1 = let _1 = - let _1 = - let _2 = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let _2 = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 70413 "src/ocaml/preprocess/parser_raw.ml" - - in - let _1 = +# 68899 "src/ocaml/preprocess/parser_raw.ml" + + in + let _1 = # 3204 "src/ocaml/preprocess/parser_raw.mly" ( () ) -# 70419 "src/ocaml/preprocess/parser_raw.ml" - in - +# 68905 "src/ocaml/preprocess/parser_raw.ml" + in + # 3873 "src/ocaml/preprocess/parser_raw.mly" ( Ppat_type (_2) ) -# 70424 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__1_inlined1_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 68910 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__1_inlined1_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1331 "src/ocaml/preprocess/parser_raw.mly" ( mkpat ~loc:_sloc _1 ) -# 70434 "src/ocaml/preprocess/parser_raw.ml" - - in +# 68920 "src/ocaml/preprocess/parser_raw.ml" + in + # 3899 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 70440 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 68926 "src/ocaml/preprocess/parser_raw.ml" + + in + # 3859 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 70446 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.pattern)) - in +# 68932 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -70472,54 +68957,52 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined1_ in - let _v = + let _v : (Parsetree.pattern) = let _1 = let _1 = let _1 = - let _1 = - let _2 = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let _2 = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 70488 "src/ocaml/preprocess/parser_raw.ml" - - in - let _1 = +# 68972 "src/ocaml/preprocess/parser_raw.ml" + + in + let _1 = # 3205 "src/ocaml/preprocess/parser_raw.mly" ( () ) -# 70494 "src/ocaml/preprocess/parser_raw.ml" - in - +# 68978 "src/ocaml/preprocess/parser_raw.ml" + in + # 3873 "src/ocaml/preprocess/parser_raw.mly" ( Ppat_type (_2) ) -# 70499 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__1_inlined1_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 68983 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__1_inlined1_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1331 "src/ocaml/preprocess/parser_raw.mly" ( mkpat ~loc:_sloc _1 ) -# 70509 "src/ocaml/preprocess/parser_raw.ml" - - in +# 68993 "src/ocaml/preprocess/parser_raw.ml" + in + # 3899 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 70515 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 68999 "src/ocaml/preprocess/parser_raw.ml" + + in + # 3859 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 70521 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.pattern)) - in +# 69005 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -70554,48 +69037,148 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in - let _v = + let _v : (Parsetree.pattern) = let _1 = let _1 = let _1 = let _1 = - let _1 = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 70569 "src/ocaml/preprocess/parser_raw.ml" - - in +# 69051 "src/ocaml/preprocess/parser_raw.ml" + in + # 3875 "src/ocaml/preprocess/parser_raw.mly" ( Ppat_open(_1, _3) ) -# 70575 "src/ocaml/preprocess/parser_raw.ml" +# 69057 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__1_ = _endpos__3_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 1331 "src/ocaml/preprocess/parser_raw.mly" + ( mkpat ~loc:_sloc _1 ) +# 69067 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 3899 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 69073 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 3859 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 69079 "src/ocaml/preprocess/parser_raw.ml" + in + { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _2_inlined1; + MenhirLib.EngineTypes.startp = _startpos__2_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__2_inlined1_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _1_inlined1; + MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; + } = _menhir_stack in + let _2_inlined1 : unit = Obj.magic _2_inlined1 in + let _1_inlined1 : unit = Obj.magic _1_inlined1 in + let _2 : unit = Obj.magic _2 in + let _1 : (Longident.t) = Obj.magic _1 in + let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in + let _startpos = _startpos__1_ in + let _endpos = _endpos__2_inlined1_ in + let _v : (Parsetree.pattern) = let _1 = + let _1 = + let _1 = + let _3 = + let (_endpos__2_, _startpos__1_) = (_endpos__2_inlined1_, _startpos__1_inlined1_) in + let _1 = +# 3876 "src/ocaml/preprocess/parser_raw.mly" + (Lident "[]") +# 69130 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__2_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 1296 "src/ocaml/preprocess/parser_raw.mly" + ( mkrhs _1 _sloc ) +# 69139 "src/ocaml/preprocess/parser_raw.ml" in - let _endpos__1_ = _endpos__3_ in - let _endpos = _endpos__1_ in + let _endpos__3_ = _endpos__2_inlined1_ in + let _1 = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 1296 "src/ocaml/preprocess/parser_raw.mly" + ( mkrhs _1 _sloc ) +# 69150 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1331 "src/ocaml/preprocess/parser_raw.mly" - ( mkpat ~loc:_sloc _1 ) -# 70585 "src/ocaml/preprocess/parser_raw.ml" +# 3877 "src/ocaml/preprocess/parser_raw.mly" + ( Ppat_open(_1, mkpat ~loc:_sloc (Ppat_construct(_3, None))) ) +# 69159 "src/ocaml/preprocess/parser_raw.ml" in + let _endpos__1_ = _endpos__2_inlined1_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 3899 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 70591 "src/ocaml/preprocess/parser_raw.ml" +# 1331 "src/ocaml/preprocess/parser_raw.mly" + ( mkpat ~loc:_sloc _1 ) +# 69169 "src/ocaml/preprocess/parser_raw.ml" in - ( + +# 3899 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 69175 "src/ocaml/preprocess/parser_raw.ml" + + in + # 3859 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 70597 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.pattern)) - in +# 69181 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -70637,173 +69220,67 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__2_inlined1_ in - let _v = + let _v : (Parsetree.pattern) = let _1 = let _1 = let _1 = - let _1 = - let _3 = - let (_endpos__2_, _startpos__1_) = (_endpos__2_inlined1_, _startpos__1_inlined1_) in - let _1 = -# 3876 "src/ocaml/preprocess/parser_raw.mly" - (Lident "[]") -# 70650 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos__1_ = _endpos__2_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 1296 "src/ocaml/preprocess/parser_raw.mly" - ( mkrhs _1 _sloc ) -# 70659 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__3_ = _endpos__2_inlined1_ in - let _1 = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 1296 "src/ocaml/preprocess/parser_raw.mly" - ( mkrhs _1 _sloc ) -# 70670 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__3_ in + let _3 = + let (_endpos__2_, _startpos__1_) = (_endpos__2_inlined1_, _startpos__1_inlined1_) in + let _1 = +# 3878 "src/ocaml/preprocess/parser_raw.mly" + (Lident "()") +# 69232 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__2_ in + let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3877 "src/ocaml/preprocess/parser_raw.mly" - ( Ppat_open(_1, mkpat ~loc:_sloc (Ppat_construct(_3, None))) ) -# 70679 "src/ocaml/preprocess/parser_raw.ml" +# 1296 "src/ocaml/preprocess/parser_raw.mly" + ( mkrhs _1 _sloc ) +# 69241 "src/ocaml/preprocess/parser_raw.ml" in - let _endpos__1_ = _endpos__2_inlined1_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 1331 "src/ocaml/preprocess/parser_raw.mly" - ( mkpat ~loc:_sloc _1 ) -# 70689 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 3899 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 70695 "src/ocaml/preprocess/parser_raw.ml" - - in - ( -# 3859 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 70701 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.pattern)) - in - { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = Obj.repr _v; - MenhirLib.EngineTypes.startp = _startpos; - MenhirLib.EngineTypes.endp = _endpos; - MenhirLib.EngineTypes.next = _menhir_stack; - }); - (fun _menhir_env -> - let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2_inlined1; - MenhirLib.EngineTypes.startp = _startpos__2_inlined1_; - MenhirLib.EngineTypes.endp = _endpos__2_inlined1_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined1; - MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - }; - } = _menhir_stack in - let _2_inlined1 : unit = Obj.magic _2_inlined1 in - let _1_inlined1 : unit = Obj.magic _1_inlined1 in - let _2 : unit = Obj.magic _2 in - let _1 : (Longident.t) = Obj.magic _1 in - let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos__1_ in - let _endpos = _endpos__2_inlined1_ in - let _v = - let _1 = - let _1 = + let _endpos__3_ = _endpos__2_inlined1_ in let _1 = - let _3 = - let (_endpos__2_, _startpos__1_) = (_endpos__2_inlined1_, _startpos__1_inlined1_) in - let _1 = -# 3878 "src/ocaml/preprocess/parser_raw.mly" - (Lident "()") -# 70754 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos__1_ = _endpos__2_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 1296 "src/ocaml/preprocess/parser_raw.mly" - ( mkrhs _1 _sloc ) -# 70763 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__3_ = _endpos__2_inlined1_ in - let _1 = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 1296 "src/ocaml/preprocess/parser_raw.mly" - ( mkrhs _1 _sloc ) -# 70774 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__3_ in + let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3879 "src/ocaml/preprocess/parser_raw.mly" - ( Ppat_open(_1, mkpat ~loc:_sloc (Ppat_construct(_3, None))) ) -# 70783 "src/ocaml/preprocess/parser_raw.ml" +# 1296 "src/ocaml/preprocess/parser_raw.mly" + ( mkrhs _1 _sloc ) +# 69252 "src/ocaml/preprocess/parser_raw.ml" in - let _endpos__1_ = _endpos__2_inlined1_ in - let _endpos = _endpos__1_ in + let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1331 "src/ocaml/preprocess/parser_raw.mly" - ( mkpat ~loc:_sloc _1 ) -# 70793 "src/ocaml/preprocess/parser_raw.ml" +# 3879 "src/ocaml/preprocess/parser_raw.mly" + ( Ppat_open(_1, mkpat ~loc:_sloc (Ppat_construct(_3, None))) ) +# 69261 "src/ocaml/preprocess/parser_raw.ml" in + let _endpos__1_ = _endpos__2_inlined1_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 3899 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 70799 "src/ocaml/preprocess/parser_raw.ml" +# 1331 "src/ocaml/preprocess/parser_raw.mly" + ( mkpat ~loc:_sloc _1 ) +# 69271 "src/ocaml/preprocess/parser_raw.ml" in - ( + +# 3899 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 69277 "src/ocaml/preprocess/parser_raw.ml" + + in + # 3859 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 70805 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.pattern)) - in +# 69283 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -70852,48 +69329,46 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__5_ in - let _v = + let _v : (Parsetree.pattern) = let _1 = let _1 = let _1 = let _1 = - let _1 = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 70867 "src/ocaml/preprocess/parser_raw.ml" - - in +# 69343 "src/ocaml/preprocess/parser_raw.ml" + in + # 3881 "src/ocaml/preprocess/parser_raw.mly" ( Ppat_open (_1, _4) ) -# 70873 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 69349 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__5_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1331 "src/ocaml/preprocess/parser_raw.mly" ( mkpat ~loc:_sloc _1 ) -# 70883 "src/ocaml/preprocess/parser_raw.ml" - - in +# 69359 "src/ocaml/preprocess/parser_raw.ml" + in + # 3899 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 70889 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 69365 "src/ocaml/preprocess/parser_raw.ml" + + in + # 3859 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 70895 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.pattern)) - in +# 69371 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -70914,35 +69389,33 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v = + let _v : (Parsetree.pattern) = let _1 = let _1 = - let _1 = - let _1 = + let _1 = # 3898 "src/ocaml/preprocess/parser_raw.mly" ( Ppat_extension _1 ) -# 70924 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 69398 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1331 "src/ocaml/preprocess/parser_raw.mly" ( mkpat ~loc:_sloc _1 ) -# 70932 "src/ocaml/preprocess/parser_raw.ml" - - in +# 69406 "src/ocaml/preprocess/parser_raw.ml" + in + # 3899 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 70938 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 69412 "src/ocaml/preprocess/parser_raw.ml" + + in + # 3859 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 70944 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.pattern)) - in +# 69418 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -70991,23 +69464,21 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__5_ in - let _v = - let _1 = - let _endpos = _endpos__5_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let _v : (Parsetree.pattern) = let _1 = + let _endpos = _endpos__5_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 3907 "src/ocaml/preprocess/parser_raw.mly" ( mkpat_with_modes ~loc:_sloc ~pat:_2 ~cty:(Some _4) ~modes:[] ) -# 71003 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 69475 "src/ocaml/preprocess/parser_raw.ml" + + in + # 3859 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 71009 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.pattern)) - in +# 69481 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -71028,16 +69499,14 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - ( + let _v : (Parsetree.pattern) = let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 3860 "src/ocaml/preprocess/parser_raw.mly" ( mkpat (Ppat_constant _1) ~loc:_sloc ) -# 71039 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.pattern)) - in +# 69509 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -71057,7 +69526,7 @@ module Tables = struct let _1 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 71061 "src/ocaml/preprocess/parser_raw.ml" +# 69530 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -71065,7 +69534,7 @@ module Tables = struct let _v : (string) = # 5323 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 71069 "src/ocaml/preprocess/parser_raw.ml" +# 69538 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -71086,7 +69555,7 @@ module Tables = struct let _1 : ( # 1155 "src/ocaml/preprocess/parser_raw.mly" (string) -# 71090 "src/ocaml/preprocess/parser_raw.ml" +# 69559 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -71094,7 +69563,7 @@ module Tables = struct let _v : (string) = # 5324 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 71098 "src/ocaml/preprocess/parser_raw.ml" +# 69567 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -71119,7 +69588,7 @@ module Tables = struct let _v : (string) = # 5325 "src/ocaml/preprocess/parser_raw.mly" ( "and" ) -# 71123 "src/ocaml/preprocess/parser_raw.ml" +# 69592 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -71144,7 +69613,7 @@ module Tables = struct let _v : (string) = # 5326 "src/ocaml/preprocess/parser_raw.mly" ( "as" ) -# 71148 "src/ocaml/preprocess/parser_raw.ml" +# 69617 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -71169,7 +69638,7 @@ module Tables = struct let _v : (string) = # 5327 "src/ocaml/preprocess/parser_raw.mly" ( "assert" ) -# 71173 "src/ocaml/preprocess/parser_raw.ml" +# 69642 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -71194,7 +69663,7 @@ module Tables = struct let _v : (string) = # 5328 "src/ocaml/preprocess/parser_raw.mly" ( "begin" ) -# 71198 "src/ocaml/preprocess/parser_raw.ml" +# 69667 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -71219,7 +69688,7 @@ module Tables = struct let _v : (string) = # 5329 "src/ocaml/preprocess/parser_raw.mly" ( "class" ) -# 71223 "src/ocaml/preprocess/parser_raw.ml" +# 69692 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -71244,7 +69713,7 @@ module Tables = struct let _v : (string) = # 5330 "src/ocaml/preprocess/parser_raw.mly" ( "constraint" ) -# 71248 "src/ocaml/preprocess/parser_raw.ml" +# 69717 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -71269,7 +69738,7 @@ module Tables = struct let _v : (string) = # 5331 "src/ocaml/preprocess/parser_raw.mly" ( "do" ) -# 71273 "src/ocaml/preprocess/parser_raw.ml" +# 69742 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -71294,7 +69763,7 @@ module Tables = struct let _v : (string) = # 5332 "src/ocaml/preprocess/parser_raw.mly" ( "done" ) -# 71298 "src/ocaml/preprocess/parser_raw.ml" +# 69767 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -71319,7 +69788,7 @@ module Tables = struct let _v : (string) = # 5333 "src/ocaml/preprocess/parser_raw.mly" ( "downto" ) -# 71323 "src/ocaml/preprocess/parser_raw.ml" +# 69792 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -71344,7 +69813,7 @@ module Tables = struct let _v : (string) = # 5334 "src/ocaml/preprocess/parser_raw.mly" ( "else" ) -# 71348 "src/ocaml/preprocess/parser_raw.ml" +# 69817 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -71369,7 +69838,7 @@ module Tables = struct let _v : (string) = # 5335 "src/ocaml/preprocess/parser_raw.mly" ( "end" ) -# 71373 "src/ocaml/preprocess/parser_raw.ml" +# 69842 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -71394,7 +69863,7 @@ module Tables = struct let _v : (string) = # 5336 "src/ocaml/preprocess/parser_raw.mly" ( "exception" ) -# 71398 "src/ocaml/preprocess/parser_raw.ml" +# 69867 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -71419,7 +69888,7 @@ module Tables = struct let _v : (string) = # 5337 "src/ocaml/preprocess/parser_raw.mly" ( "external" ) -# 71423 "src/ocaml/preprocess/parser_raw.ml" +# 69892 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -71444,7 +69913,7 @@ module Tables = struct let _v : (string) = # 5338 "src/ocaml/preprocess/parser_raw.mly" ( "false" ) -# 71448 "src/ocaml/preprocess/parser_raw.ml" +# 69917 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -71469,7 +69938,7 @@ module Tables = struct let _v : (string) = # 5339 "src/ocaml/preprocess/parser_raw.mly" ( "for" ) -# 71473 "src/ocaml/preprocess/parser_raw.ml" +# 69942 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -71494,7 +69963,7 @@ module Tables = struct let _v : (string) = # 5340 "src/ocaml/preprocess/parser_raw.mly" ( "fun" ) -# 71498 "src/ocaml/preprocess/parser_raw.ml" +# 69967 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -71519,7 +69988,7 @@ module Tables = struct let _v : (string) = # 5341 "src/ocaml/preprocess/parser_raw.mly" ( "function" ) -# 71523 "src/ocaml/preprocess/parser_raw.ml" +# 69992 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -71544,7 +70013,7 @@ module Tables = struct let _v : (string) = # 5342 "src/ocaml/preprocess/parser_raw.mly" ( "functor" ) -# 71548 "src/ocaml/preprocess/parser_raw.ml" +# 70017 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -71569,7 +70038,7 @@ module Tables = struct let _v : (string) = # 5343 "src/ocaml/preprocess/parser_raw.mly" ( "if" ) -# 71573 "src/ocaml/preprocess/parser_raw.ml" +# 70042 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -71594,7 +70063,7 @@ module Tables = struct let _v : (string) = # 5344 "src/ocaml/preprocess/parser_raw.mly" ( "in" ) -# 71598 "src/ocaml/preprocess/parser_raw.ml" +# 70067 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -71619,7 +70088,7 @@ module Tables = struct let _v : (string) = # 5345 "src/ocaml/preprocess/parser_raw.mly" ( "include" ) -# 71623 "src/ocaml/preprocess/parser_raw.ml" +# 70092 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -71644,7 +70113,7 @@ module Tables = struct let _v : (string) = # 5346 "src/ocaml/preprocess/parser_raw.mly" ( "inherit" ) -# 71648 "src/ocaml/preprocess/parser_raw.ml" +# 70117 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -71669,7 +70138,7 @@ module Tables = struct let _v : (string) = # 5347 "src/ocaml/preprocess/parser_raw.mly" ( "initializer" ) -# 71673 "src/ocaml/preprocess/parser_raw.ml" +# 70142 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -71694,7 +70163,7 @@ module Tables = struct let _v : (string) = # 5348 "src/ocaml/preprocess/parser_raw.mly" ( "lazy" ) -# 71698 "src/ocaml/preprocess/parser_raw.ml" +# 70167 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -71719,7 +70188,7 @@ module Tables = struct let _v : (string) = # 5349 "src/ocaml/preprocess/parser_raw.mly" ( "let" ) -# 71723 "src/ocaml/preprocess/parser_raw.ml" +# 70192 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -71744,7 +70213,7 @@ module Tables = struct let _v : (string) = # 5350 "src/ocaml/preprocess/parser_raw.mly" ( "local_" ) -# 71748 "src/ocaml/preprocess/parser_raw.ml" +# 70217 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -71769,7 +70238,7 @@ module Tables = struct let _v : (string) = # 5351 "src/ocaml/preprocess/parser_raw.mly" ( "match" ) -# 71773 "src/ocaml/preprocess/parser_raw.ml" +# 70242 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -71794,7 +70263,7 @@ module Tables = struct let _v : (string) = # 5352 "src/ocaml/preprocess/parser_raw.mly" ( "method" ) -# 71798 "src/ocaml/preprocess/parser_raw.ml" +# 70267 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -71819,7 +70288,7 @@ module Tables = struct let _v : (string) = # 5353 "src/ocaml/preprocess/parser_raw.mly" ( "module" ) -# 71823 "src/ocaml/preprocess/parser_raw.ml" +# 70292 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -71844,7 +70313,7 @@ module Tables = struct let _v : (string) = # 5354 "src/ocaml/preprocess/parser_raw.mly" ( "mutable" ) -# 71848 "src/ocaml/preprocess/parser_raw.ml" +# 70317 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -71869,7 +70338,7 @@ module Tables = struct let _v : (string) = # 5355 "src/ocaml/preprocess/parser_raw.mly" ( "new" ) -# 71873 "src/ocaml/preprocess/parser_raw.ml" +# 70342 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -71894,7 +70363,7 @@ module Tables = struct let _v : (string) = # 5356 "src/ocaml/preprocess/parser_raw.mly" ( "nonrec" ) -# 71898 "src/ocaml/preprocess/parser_raw.ml" +# 70367 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -71919,7 +70388,7 @@ module Tables = struct let _v : (string) = # 5357 "src/ocaml/preprocess/parser_raw.mly" ( "object" ) -# 71923 "src/ocaml/preprocess/parser_raw.ml" +# 70392 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -71944,7 +70413,7 @@ module Tables = struct let _v : (string) = # 5358 "src/ocaml/preprocess/parser_raw.mly" ( "of" ) -# 71948 "src/ocaml/preprocess/parser_raw.ml" +# 70417 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -71969,7 +70438,7 @@ module Tables = struct let _v : (string) = # 5359 "src/ocaml/preprocess/parser_raw.mly" ( "open" ) -# 71973 "src/ocaml/preprocess/parser_raw.ml" +# 70442 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -71994,7 +70463,7 @@ module Tables = struct let _v : (string) = # 5360 "src/ocaml/preprocess/parser_raw.mly" ( "or" ) -# 71998 "src/ocaml/preprocess/parser_raw.ml" +# 70467 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -72019,7 +70488,7 @@ module Tables = struct let _v : (string) = # 5361 "src/ocaml/preprocess/parser_raw.mly" ( "private" ) -# 72023 "src/ocaml/preprocess/parser_raw.ml" +# 70492 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -72044,7 +70513,7 @@ module Tables = struct let _v : (string) = # 5362 "src/ocaml/preprocess/parser_raw.mly" ( "rec" ) -# 72048 "src/ocaml/preprocess/parser_raw.ml" +# 70517 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -72069,7 +70538,7 @@ module Tables = struct let _v : (string) = # 5363 "src/ocaml/preprocess/parser_raw.mly" ( "sig" ) -# 72073 "src/ocaml/preprocess/parser_raw.ml" +# 70542 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -72094,7 +70563,7 @@ module Tables = struct let _v : (string) = # 5364 "src/ocaml/preprocess/parser_raw.mly" ( "struct" ) -# 72098 "src/ocaml/preprocess/parser_raw.ml" +# 70567 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -72119,7 +70588,7 @@ module Tables = struct let _v : (string) = # 5365 "src/ocaml/preprocess/parser_raw.mly" ( "then" ) -# 72123 "src/ocaml/preprocess/parser_raw.ml" +# 70592 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -72144,7 +70613,7 @@ module Tables = struct let _v : (string) = # 5366 "src/ocaml/preprocess/parser_raw.mly" ( "to" ) -# 72148 "src/ocaml/preprocess/parser_raw.ml" +# 70617 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -72169,7 +70638,7 @@ module Tables = struct let _v : (string) = # 5367 "src/ocaml/preprocess/parser_raw.mly" ( "true" ) -# 72173 "src/ocaml/preprocess/parser_raw.ml" +# 70642 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -72194,7 +70663,7 @@ module Tables = struct let _v : (string) = # 5368 "src/ocaml/preprocess/parser_raw.mly" ( "try" ) -# 72198 "src/ocaml/preprocess/parser_raw.ml" +# 70667 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -72219,7 +70688,7 @@ module Tables = struct let _v : (string) = # 5369 "src/ocaml/preprocess/parser_raw.mly" ( "type" ) -# 72223 "src/ocaml/preprocess/parser_raw.ml" +# 70692 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -72244,7 +70713,7 @@ module Tables = struct let _v : (string) = # 5370 "src/ocaml/preprocess/parser_raw.mly" ( "val" ) -# 72248 "src/ocaml/preprocess/parser_raw.ml" +# 70717 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -72269,7 +70738,7 @@ module Tables = struct let _v : (string) = # 5371 "src/ocaml/preprocess/parser_raw.mly" ( "virtual" ) -# 72273 "src/ocaml/preprocess/parser_raw.ml" +# 70742 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -72294,7 +70763,7 @@ module Tables = struct let _v : (string) = # 5372 "src/ocaml/preprocess/parser_raw.mly" ( "when" ) -# 72298 "src/ocaml/preprocess/parser_raw.ml" +# 70767 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -72319,7 +70788,7 @@ module Tables = struct let _v : (string) = # 5373 "src/ocaml/preprocess/parser_raw.mly" ( "while" ) -# 72323 "src/ocaml/preprocess/parser_raw.ml" +# 70792 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -72344,7 +70813,7 @@ module Tables = struct let _v : (string) = # 5374 "src/ocaml/preprocess/parser_raw.mly" ( "with" ) -# 72348 "src/ocaml/preprocess/parser_raw.ml" +# 70817 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -72369,7 +70838,7 @@ module Tables = struct let _v : (Parsetree.type_exception * string Location.loc option) = # 4294 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 72373 "src/ocaml/preprocess/parser_raw.ml" +# 70842 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -72440,67 +70909,65 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined5_ in - let _v = - let attrs = - let _1 = _1_inlined5 in - + let _v : (Parsetree.type_exception * string Location.loc option) = let attrs = + let _1 = _1_inlined5 in + # 5399 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 72450 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_attrs_ = _endpos__1_inlined5_ in - let attrs2 = - let _1 = _1_inlined4 in - +# 70918 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_attrs_ = _endpos__1_inlined5_ in + let attrs2 = + let _1 = _1_inlined4 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 72459 "src/ocaml/preprocess/parser_raw.ml" - - in - let lid = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined3_, _startpos__1_inlined3_, _1_inlined3) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 70927 "src/ocaml/preprocess/parser_raw.ml" + + in + let lid = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined3_, _startpos__1_inlined3_, _1_inlined3) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 72470 "src/ocaml/preprocess/parser_raw.ml" - - in - let id = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 70938 "src/ocaml/preprocess/parser_raw.ml" + + in + let id = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 72481 "src/ocaml/preprocess/parser_raw.ml" - - in - let attrs1 = - let _1 = _1_inlined1 in - +# 70949 "src/ocaml/preprocess/parser_raw.ml" + + in + let attrs1 = + let _1 = _1_inlined1 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 72489 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos_attrs_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - ( +# 70957 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos_attrs_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 4303 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let docs = symbol_docs _sloc in Te.mk_exception ~attrs (Te.rebind id lid ~attrs:(attrs1 @ attrs2) ~loc ~docs) , ext ) -# 72502 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.type_exception * string Location.loc option)) - in +# 70970 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -72531,7 +70998,7 @@ module Tables = struct let _v : (Parsetree.modes -> Parsetree.expression) = # 3473 "src/ocaml/preprocess/parser_raw.mly" ( fun _ -> _2 ) -# 72535 "src/ocaml/preprocess/parser_raw.ml" +# 71002 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -72574,11 +71041,10 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in - let _v = - let _endpos = _endpos__4_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - ( + let _v : (Parsetree.modes -> Parsetree.expression) = let _endpos = _endpos__4_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 3475 "src/ocaml/preprocess/parser_raw.mly" ( fun mode_annotations -> let constraint_ : function_constraint = @@ -72594,9 +71060,8 @@ module Tables = struct { exp with pexp_loc = { exp.pexp_loc with loc_ghost = true } } ) -# 72598 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.modes -> Parsetree.expression)) - in +# 71064 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -72666,118 +71131,116 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos_codomain_ in - let _v = + let _v : (Parsetree.core_type) = let _1 = let _1 = - let _1 = - let domain_with_modes = - let m1 = + let domain_with_modes = + let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 72677 "src/ocaml/preprocess/parser_raw.ml" - in - let ty = +# 71141 "src/ocaml/preprocess/parser_raw.ml" + in + let ty = + let _1 = let _1 = let _1 = - let _1 = - let bound_vars = - let _1 = - let xs = -# 264 "" + let bound_vars = + let _1 = + let xs = +# 253 "" ( List.rev xs ) -# 72688 "src/ocaml/preprocess/parser_raw.ml" - in - +# 71152 "src/ocaml/preprocess/parser_raw.ml" + in + # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 72693 "src/ocaml/preprocess/parser_raw.ml" - - in +# 71157 "src/ocaml/preprocess/parser_raw.ml" + in + # 4481 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 72699 "src/ocaml/preprocess/parser_raw.ml" - - in +# 71163 "src/ocaml/preprocess/parser_raw.ml" + in + # 4732 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 72705 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 71169 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__5_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 72715 "src/ocaml/preprocess/parser_raw.ml" - - in +# 71179 "src/ocaml/preprocess/parser_raw.ml" + in + # 4734 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 72721 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in +# 71185 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__5_ in + # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 72728 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in - let m0 = +# 71192 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in + let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 72735 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - +# 71199 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 72744 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = - let _1 = +# 71208 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = + let _1 = # 4637 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 72751 "src/ocaml/preprocess/parser_raw.ml" - in - +# 71215 "src/ocaml/preprocess/parser_raw.ml" + in + # 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 72756 "src/ocaml/preprocess/parser_raw.ml" - - in +# 71220 "src/ocaml/preprocess/parser_raw.ml" + in + # 4566 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in Ptyp_arrow(label, domain , codomain, arg_modes, []) ) -# 72763 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 71227 "src/ocaml/preprocess/parser_raw.ml" + in + let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 72773 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 71237 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4569 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 72779 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type)) - in +# 71243 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -72854,121 +71317,119 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos_codomain_ in - let _v = + let _v : (Parsetree.core_type) = let _1 = let _1 = - let _1 = - let domain_with_modes = - let m1 = - let _1 = _1_inlined1 in - + let domain_with_modes = + let m1 = + let _1 = _1_inlined1 in + # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 72867 "src/ocaml/preprocess/parser_raw.ml" - - in - let ty = +# 71329 "src/ocaml/preprocess/parser_raw.ml" + + in + let ty = + let _1 = let _1 = let _1 = - let _1 = - let bound_vars = - let _1 = - let xs = -# 264 "" + let bound_vars = + let _1 = + let xs = +# 253 "" ( List.rev xs ) -# 72879 "src/ocaml/preprocess/parser_raw.ml" - in - +# 71341 "src/ocaml/preprocess/parser_raw.ml" + in + # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 72884 "src/ocaml/preprocess/parser_raw.ml" - - in +# 71346 "src/ocaml/preprocess/parser_raw.ml" + in + # 4481 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 72890 "src/ocaml/preprocess/parser_raw.ml" - - in +# 71352 "src/ocaml/preprocess/parser_raw.ml" + in + # 4732 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 72896 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 71358 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__5_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 72906 "src/ocaml/preprocess/parser_raw.ml" - - in +# 71368 "src/ocaml/preprocess/parser_raw.ml" + in + # 4734 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 72912 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in +# 71374 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__5_ in + # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 72919 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in - let m0 = +# 71381 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in + let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 72926 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - +# 71388 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 72935 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = - let _1 = +# 71397 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = + let _1 = # 4637 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 72942 "src/ocaml/preprocess/parser_raw.ml" - in - +# 71404 "src/ocaml/preprocess/parser_raw.ml" + in + # 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 72947 "src/ocaml/preprocess/parser_raw.ml" - - in +# 71409 "src/ocaml/preprocess/parser_raw.ml" + in + # 4566 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in Ptyp_arrow(label, domain , codomain, arg_modes, []) ) -# 72954 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 71416 "src/ocaml/preprocess/parser_raw.ml" + in + let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 72964 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 71426 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4569 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 72970 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type)) - in +# 71432 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -73010,78 +71471,76 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos_codomain_ in - let _v = + let _v : (Parsetree.core_type) = let _1 = let _1 = - let _1 = - let domain_with_modes = - let m1 = + let domain_with_modes = + let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 73021 "src/ocaml/preprocess/parser_raw.ml" - in - let ty = - let _1 = +# 71481 "src/ocaml/preprocess/parser_raw.ml" + in + let ty = + let _1 = # 4736 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 73027 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos__1_ = _endpos_ty_ in - +# 71487 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos_ty_ in + # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 73033 "src/ocaml/preprocess/parser_raw.ml" - - in - let m0 = +# 71493 "src/ocaml/preprocess/parser_raw.ml" + + in + let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 73039 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - +# 71499 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 73048 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = - let _1 = +# 71508 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = + let _1 = # 4637 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 73055 "src/ocaml/preprocess/parser_raw.ml" - in - +# 71515 "src/ocaml/preprocess/parser_raw.ml" + in + # 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 73060 "src/ocaml/preprocess/parser_raw.ml" - - in +# 71520 "src/ocaml/preprocess/parser_raw.ml" + in + # 4566 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in Ptyp_arrow(label, domain , codomain, arg_modes, []) ) -# 73067 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 71527 "src/ocaml/preprocess/parser_raw.ml" + in + let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 73077 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 71537 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4569 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 73083 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type)) - in +# 71543 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -73130,78 +71589,76 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos_codomain_ in - let _v = + let _v : (Parsetree.core_type) = let _1 = let _1 = - let _1 = - let domain_with_modes = - let m1 = + let domain_with_modes = + let m1 = # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 73141 "src/ocaml/preprocess/parser_raw.ml" - in - let ty = - let _1 = +# 71599 "src/ocaml/preprocess/parser_raw.ml" + in + let ty = + let _1 = # 4736 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 73147 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos__1_ = _endpos_ty_ in - +# 71605 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos_ty_ in + # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 73153 "src/ocaml/preprocess/parser_raw.ml" - - in - let m0 = +# 71611 "src/ocaml/preprocess/parser_raw.ml" + + in + let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 73159 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - +# 71617 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 73168 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = - let _1 = +# 71626 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = + let _1 = # 4637 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 73175 "src/ocaml/preprocess/parser_raw.ml" - in - +# 71633 "src/ocaml/preprocess/parser_raw.ml" + in + # 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 73180 "src/ocaml/preprocess/parser_raw.ml" - - in +# 71638 "src/ocaml/preprocess/parser_raw.ml" + in + # 4566 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in Ptyp_arrow(label, domain , codomain, arg_modes, []) ) -# 73187 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 71645 "src/ocaml/preprocess/parser_raw.ml" + in + let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 73197 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 71655 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4569 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 73203 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type)) - in +# 71661 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -73278,126 +71735,124 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos_codomain_ in - let _v = + let _v : (Parsetree.core_type) = let _1 = let _1 = - let _1 = - let domain_with_modes = - let m1 = + let domain_with_modes = + let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 73289 "src/ocaml/preprocess/parser_raw.ml" - in - let ty = - let _startpos__1_ = _startpos__1_inlined1_ in +# 71745 "src/ocaml/preprocess/parser_raw.ml" + in + let ty = + let _startpos__1_ = _startpos__1_inlined1_ in + let _1 = let _1 = let _1 = - let _1 = - let bound_vars = - let _1 = - let xs = -# 264 "" + let bound_vars = + let _1 = + let xs = +# 253 "" ( List.rev xs ) -# 73301 "src/ocaml/preprocess/parser_raw.ml" - in - +# 71757 "src/ocaml/preprocess/parser_raw.ml" + in + # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 73306 "src/ocaml/preprocess/parser_raw.ml" - - in +# 71762 "src/ocaml/preprocess/parser_raw.ml" + in + # 4481 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 73312 "src/ocaml/preprocess/parser_raw.ml" - - in +# 71768 "src/ocaml/preprocess/parser_raw.ml" + in + # 4732 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 73318 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 71774 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__5_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 73328 "src/ocaml/preprocess/parser_raw.ml" - - in +# 71784 "src/ocaml/preprocess/parser_raw.ml" + in + # 4734 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 73334 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in +# 71790 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__5_ in + # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 73341 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in - let m0 = - let _1 = +# 71797 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in + let m0 = + let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 73349 "src/ocaml/preprocess/parser_raw.ml" - in - +# 71805 "src/ocaml/preprocess/parser_raw.ml" + in + # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 73354 "src/ocaml/preprocess/parser_raw.ml" - - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in +# 71810 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 73364 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = - let _1 = +# 71820 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = + let _1 = # 4637 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 73371 "src/ocaml/preprocess/parser_raw.ml" - in - +# 71827 "src/ocaml/preprocess/parser_raw.ml" + in + # 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 73376 "src/ocaml/preprocess/parser_raw.ml" - - in +# 71832 "src/ocaml/preprocess/parser_raw.ml" + in + # 4566 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in Ptyp_arrow(label, domain , codomain, arg_modes, []) ) -# 73383 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 71839 "src/ocaml/preprocess/parser_raw.ml" + in + let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 73393 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 71849 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4569 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 73399 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type)) - in +# 71855 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -73481,129 +71936,127 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos_codomain_ in - let _v = + let _v : (Parsetree.core_type) = let _1 = let _1 = - let _1 = - let domain_with_modes = - let m1 = - let _1 = _1_inlined2 in - + let domain_with_modes = + let m1 = + let _1 = _1_inlined2 in + # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 73494 "src/ocaml/preprocess/parser_raw.ml" - - in - let ty = - let _startpos__1_ = _startpos__1_inlined1_ in +# 71948 "src/ocaml/preprocess/parser_raw.ml" + + in + let ty = + let _startpos__1_ = _startpos__1_inlined1_ in + let _1 = let _1 = let _1 = - let _1 = - let bound_vars = - let _1 = - let xs = -# 264 "" + let bound_vars = + let _1 = + let xs = +# 253 "" ( List.rev xs ) -# 73507 "src/ocaml/preprocess/parser_raw.ml" - in - +# 71961 "src/ocaml/preprocess/parser_raw.ml" + in + # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 73512 "src/ocaml/preprocess/parser_raw.ml" - - in +# 71966 "src/ocaml/preprocess/parser_raw.ml" + in + # 4481 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 73518 "src/ocaml/preprocess/parser_raw.ml" - - in +# 71972 "src/ocaml/preprocess/parser_raw.ml" + in + # 4732 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 73524 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 71978 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__5_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 73534 "src/ocaml/preprocess/parser_raw.ml" - - in +# 71988 "src/ocaml/preprocess/parser_raw.ml" + in + # 4734 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 73540 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in +# 71994 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__5_ in + # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 73547 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in - let m0 = - let _1 = +# 72001 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in + let m0 = + let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 73555 "src/ocaml/preprocess/parser_raw.ml" - in - +# 72009 "src/ocaml/preprocess/parser_raw.ml" + in + # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 73560 "src/ocaml/preprocess/parser_raw.ml" - - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in +# 72014 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 73570 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = - let _1 = +# 72024 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = + let _1 = # 4637 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 73577 "src/ocaml/preprocess/parser_raw.ml" - in - +# 72031 "src/ocaml/preprocess/parser_raw.ml" + in + # 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 73582 "src/ocaml/preprocess/parser_raw.ml" - - in +# 72036 "src/ocaml/preprocess/parser_raw.ml" + in + # 4566 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in Ptyp_arrow(label, domain , codomain, arg_modes, []) ) -# 73589 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 72043 "src/ocaml/preprocess/parser_raw.ml" + in + let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 73599 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 72053 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4569 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 73605 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type)) - in +# 72059 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -73652,85 +72105,83 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos_codomain_ in - let _v = + let _v : (Parsetree.core_type) = let _1 = let _1 = - let _1 = - let domain_with_modes = - let m1 = + let domain_with_modes = + let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 73663 "src/ocaml/preprocess/parser_raw.ml" - in - let ty = - let _1 = +# 72115 "src/ocaml/preprocess/parser_raw.ml" + in + let ty = + let _1 = # 4736 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 73669 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos__1_ = _endpos_ty_ in - +# 72121 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos_ty_ in + # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 73675 "src/ocaml/preprocess/parser_raw.ml" - - in - let m0 = - let _1 = +# 72127 "src/ocaml/preprocess/parser_raw.ml" + + in + let m0 = + let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 73682 "src/ocaml/preprocess/parser_raw.ml" - in - +# 72134 "src/ocaml/preprocess/parser_raw.ml" + in + # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 73687 "src/ocaml/preprocess/parser_raw.ml" - - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in +# 72139 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 73697 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = - let _1 = +# 72149 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = + let _1 = # 4637 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 73704 "src/ocaml/preprocess/parser_raw.ml" - in - +# 72156 "src/ocaml/preprocess/parser_raw.ml" + in + # 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 73709 "src/ocaml/preprocess/parser_raw.ml" - - in +# 72161 "src/ocaml/preprocess/parser_raw.ml" + in + # 4566 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in Ptyp_arrow(label, domain , codomain, arg_modes, []) ) -# 73716 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 72168 "src/ocaml/preprocess/parser_raw.ml" + in + let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 73726 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 72178 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4569 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 73732 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type)) - in +# 72184 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -73786,88 +72237,86 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos_codomain_ in - let _v = + let _v : (Parsetree.core_type) = let _1 = let _1 = - let _1 = - let domain_with_modes = - let m1 = - let _1 = _1_inlined1 in - + let domain_with_modes = + let m1 = + let _1 = _1_inlined1 in + # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 73799 "src/ocaml/preprocess/parser_raw.ml" - - in - let ty = - let _1 = +# 72249 "src/ocaml/preprocess/parser_raw.ml" + + in + let ty = + let _1 = # 4736 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 73806 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos__1_ = _endpos_ty_ in - +# 72256 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos_ty_ in + # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 73812 "src/ocaml/preprocess/parser_raw.ml" - - in - let m0 = - let _1 = +# 72262 "src/ocaml/preprocess/parser_raw.ml" + + in + let m0 = + let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 73819 "src/ocaml/preprocess/parser_raw.ml" - in - +# 72269 "src/ocaml/preprocess/parser_raw.ml" + in + # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 73824 "src/ocaml/preprocess/parser_raw.ml" - - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in +# 72274 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 73834 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = - let _1 = +# 72284 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = + let _1 = # 4637 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 73841 "src/ocaml/preprocess/parser_raw.ml" - in - +# 72291 "src/ocaml/preprocess/parser_raw.ml" + in + # 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 73846 "src/ocaml/preprocess/parser_raw.ml" - - in +# 72296 "src/ocaml/preprocess/parser_raw.ml" + in + # 4566 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in Ptyp_arrow(label, domain , codomain, arg_modes, []) ) -# 73853 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 72303 "src/ocaml/preprocess/parser_raw.ml" + in + let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 73863 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 72313 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4569 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 73869 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type)) - in +# 72319 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -73943,123 +72392,121 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 73947 "src/ocaml/preprocess/parser_raw.ml" +# 72396 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos_codomain_ in - let _v = + let _v : (Parsetree.core_type) = let _1 = let _1 = - let _1 = - let domain_with_modes = - let m1 = + let domain_with_modes = + let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 73959 "src/ocaml/preprocess/parser_raw.ml" - in - let ty = +# 72407 "src/ocaml/preprocess/parser_raw.ml" + in + let ty = + let _1 = let _1 = let _1 = - let _1 = - let bound_vars = - let _1 = - let xs = -# 264 "" + let bound_vars = + let _1 = + let xs = +# 253 "" ( List.rev xs ) -# 73970 "src/ocaml/preprocess/parser_raw.ml" - in - +# 72418 "src/ocaml/preprocess/parser_raw.ml" + in + # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 73975 "src/ocaml/preprocess/parser_raw.ml" - - in +# 72423 "src/ocaml/preprocess/parser_raw.ml" + in + # 4481 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 73981 "src/ocaml/preprocess/parser_raw.ml" - - in +# 72429 "src/ocaml/preprocess/parser_raw.ml" + in + # 4732 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 73987 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 72435 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__5_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 73997 "src/ocaml/preprocess/parser_raw.ml" - - in +# 72445 "src/ocaml/preprocess/parser_raw.ml" + in + # 4734 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 74003 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in +# 72451 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__5_ in + # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 74010 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in - let m0 = +# 72458 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in + let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 74017 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - +# 72465 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 74026 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = - let _1 = +# 72474 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = + let _1 = # 4639 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 74033 "src/ocaml/preprocess/parser_raw.ml" - in - +# 72481 "src/ocaml/preprocess/parser_raw.ml" + in + # 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 74038 "src/ocaml/preprocess/parser_raw.ml" - - in +# 72486 "src/ocaml/preprocess/parser_raw.ml" + in + # 4566 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in Ptyp_arrow(label, domain , codomain, arg_modes, []) ) -# 74045 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 72493 "src/ocaml/preprocess/parser_raw.ml" + in + let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 74055 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 72503 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4569 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 74061 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type)) - in +# 72509 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -74142,126 +72589,124 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 74146 "src/ocaml/preprocess/parser_raw.ml" +# 72593 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos_codomain_ in - let _v = + let _v : (Parsetree.core_type) = let _1 = let _1 = - let _1 = - let domain_with_modes = - let m1 = - let _1 = _1_inlined1 in - + let domain_with_modes = + let m1 = + let _1 = _1_inlined1 in + # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 74160 "src/ocaml/preprocess/parser_raw.ml" - - in - let ty = +# 72606 "src/ocaml/preprocess/parser_raw.ml" + + in + let ty = + let _1 = let _1 = let _1 = - let _1 = - let bound_vars = - let _1 = - let xs = -# 264 "" + let bound_vars = + let _1 = + let xs = +# 253 "" ( List.rev xs ) -# 74172 "src/ocaml/preprocess/parser_raw.ml" - in - +# 72618 "src/ocaml/preprocess/parser_raw.ml" + in + # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 74177 "src/ocaml/preprocess/parser_raw.ml" - - in +# 72623 "src/ocaml/preprocess/parser_raw.ml" + in + # 4481 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 74183 "src/ocaml/preprocess/parser_raw.ml" - - in +# 72629 "src/ocaml/preprocess/parser_raw.ml" + in + # 4732 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 74189 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 72635 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__5_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 74199 "src/ocaml/preprocess/parser_raw.ml" - - in +# 72645 "src/ocaml/preprocess/parser_raw.ml" + in + # 4734 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 74205 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in +# 72651 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__5_ in + # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 74212 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in - let m0 = +# 72658 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in + let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 74219 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - +# 72665 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 74228 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = - let _1 = +# 72674 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = + let _1 = # 4639 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 74235 "src/ocaml/preprocess/parser_raw.ml" - in - +# 72681 "src/ocaml/preprocess/parser_raw.ml" + in + # 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 74240 "src/ocaml/preprocess/parser_raw.ml" - - in +# 72686 "src/ocaml/preprocess/parser_raw.ml" + in + # 4566 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in Ptyp_arrow(label, domain , codomain, arg_modes, []) ) -# 74247 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 72693 "src/ocaml/preprocess/parser_raw.ml" + in + let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 74257 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 72703 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4569 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 74263 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type)) - in +# 72709 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -74309,83 +72754,81 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 74313 "src/ocaml/preprocess/parser_raw.ml" +# 72758 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos_codomain_ in - let _v = + let _v : (Parsetree.core_type) = let _1 = let _1 = - let _1 = - let domain_with_modes = - let m1 = + let domain_with_modes = + let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 74325 "src/ocaml/preprocess/parser_raw.ml" - in - let ty = - let _1 = +# 72769 "src/ocaml/preprocess/parser_raw.ml" + in + let ty = + let _1 = # 4736 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 74331 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos__1_ = _endpos_ty_ in - +# 72775 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos_ty_ in + # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 74337 "src/ocaml/preprocess/parser_raw.ml" - - in - let m0 = +# 72781 "src/ocaml/preprocess/parser_raw.ml" + + in + let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 74343 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - +# 72787 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 74352 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = - let _1 = +# 72796 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = + let _1 = # 4639 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 74359 "src/ocaml/preprocess/parser_raw.ml" - in - +# 72803 "src/ocaml/preprocess/parser_raw.ml" + in + # 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 74364 "src/ocaml/preprocess/parser_raw.ml" - - in +# 72808 "src/ocaml/preprocess/parser_raw.ml" + in + # 4566 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in Ptyp_arrow(label, domain , codomain, arg_modes, []) ) -# 74371 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 72815 "src/ocaml/preprocess/parser_raw.ml" + in + let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 74381 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 72825 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4569 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 74387 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type)) - in +# 72831 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -74440,83 +72883,81 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 74444 "src/ocaml/preprocess/parser_raw.ml" +# 72887 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos_codomain_ in - let _v = + let _v : (Parsetree.core_type) = let _1 = let _1 = - let _1 = - let domain_with_modes = - let m1 = + let domain_with_modes = + let m1 = # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 74456 "src/ocaml/preprocess/parser_raw.ml" - in - let ty = - let _1 = +# 72898 "src/ocaml/preprocess/parser_raw.ml" + in + let ty = + let _1 = # 4736 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 74462 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos__1_ = _endpos_ty_ in - +# 72904 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos_ty_ in + # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 74468 "src/ocaml/preprocess/parser_raw.ml" - - in - let m0 = +# 72910 "src/ocaml/preprocess/parser_raw.ml" + + in + let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 74474 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - +# 72916 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 74483 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = - let _1 = +# 72925 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = + let _1 = # 4639 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 74490 "src/ocaml/preprocess/parser_raw.ml" - in - +# 72932 "src/ocaml/preprocess/parser_raw.ml" + in + # 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 74495 "src/ocaml/preprocess/parser_raw.ml" - - in +# 72937 "src/ocaml/preprocess/parser_raw.ml" + in + # 4566 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in Ptyp_arrow(label, domain , codomain, arg_modes, []) ) -# 74502 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 72944 "src/ocaml/preprocess/parser_raw.ml" + in + let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 74512 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 72954 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4569 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 74518 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type)) - in +# 72960 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -74599,131 +73040,129 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 74603 "src/ocaml/preprocess/parser_raw.ml" +# 73044 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos_codomain_ in - let _v = + let _v : (Parsetree.core_type) = let _1 = let _1 = - let _1 = - let domain_with_modes = - let m1 = + let domain_with_modes = + let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 74615 "src/ocaml/preprocess/parser_raw.ml" - in - let ty = - let _startpos__1_ = _startpos__1_inlined1_ in +# 73055 "src/ocaml/preprocess/parser_raw.ml" + in + let ty = + let _startpos__1_ = _startpos__1_inlined1_ in + let _1 = let _1 = let _1 = - let _1 = - let bound_vars = - let _1 = - let xs = -# 264 "" + let bound_vars = + let _1 = + let xs = +# 253 "" ( List.rev xs ) -# 74627 "src/ocaml/preprocess/parser_raw.ml" - in - +# 73067 "src/ocaml/preprocess/parser_raw.ml" + in + # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 74632 "src/ocaml/preprocess/parser_raw.ml" - - in +# 73072 "src/ocaml/preprocess/parser_raw.ml" + in + # 4481 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 74638 "src/ocaml/preprocess/parser_raw.ml" - - in +# 73078 "src/ocaml/preprocess/parser_raw.ml" + in + # 4732 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 74644 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 73084 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__5_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 74654 "src/ocaml/preprocess/parser_raw.ml" - - in +# 73094 "src/ocaml/preprocess/parser_raw.ml" + in + # 4734 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 74660 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in +# 73100 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__5_ in + # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 74667 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in - let m0 = - let _1 = +# 73107 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in + let m0 = + let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 74675 "src/ocaml/preprocess/parser_raw.ml" - in - +# 73115 "src/ocaml/preprocess/parser_raw.ml" + in + # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 74680 "src/ocaml/preprocess/parser_raw.ml" - - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in +# 73120 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 74690 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = - let _1 = +# 73130 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = + let _1 = # 4639 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 74697 "src/ocaml/preprocess/parser_raw.ml" - in - +# 73137 "src/ocaml/preprocess/parser_raw.ml" + in + # 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 74702 "src/ocaml/preprocess/parser_raw.ml" - - in +# 73142 "src/ocaml/preprocess/parser_raw.ml" + in + # 4566 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in Ptyp_arrow(label, domain , codomain, arg_modes, []) ) -# 74709 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 73149 "src/ocaml/preprocess/parser_raw.ml" + in + let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 74719 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 73159 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4569 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 74725 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type)) - in +# 73165 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -74813,134 +73252,132 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 74817 "src/ocaml/preprocess/parser_raw.ml" +# 73256 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos_codomain_ in - let _v = + let _v : (Parsetree.core_type) = let _1 = let _1 = - let _1 = - let domain_with_modes = - let m1 = - let _1 = _1_inlined2 in - + let domain_with_modes = + let m1 = + let _1 = _1_inlined2 in + # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 74831 "src/ocaml/preprocess/parser_raw.ml" - - in - let ty = - let _startpos__1_ = _startpos__1_inlined1_ in +# 73269 "src/ocaml/preprocess/parser_raw.ml" + + in + let ty = + let _startpos__1_ = _startpos__1_inlined1_ in + let _1 = let _1 = let _1 = - let _1 = - let bound_vars = - let _1 = - let xs = -# 264 "" + let bound_vars = + let _1 = + let xs = +# 253 "" ( List.rev xs ) -# 74844 "src/ocaml/preprocess/parser_raw.ml" - in - +# 73282 "src/ocaml/preprocess/parser_raw.ml" + in + # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 74849 "src/ocaml/preprocess/parser_raw.ml" - - in +# 73287 "src/ocaml/preprocess/parser_raw.ml" + in + # 4481 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 74855 "src/ocaml/preprocess/parser_raw.ml" - - in +# 73293 "src/ocaml/preprocess/parser_raw.ml" + in + # 4732 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 74861 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 73299 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__5_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 74871 "src/ocaml/preprocess/parser_raw.ml" - - in +# 73309 "src/ocaml/preprocess/parser_raw.ml" + in + # 4734 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 74877 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in +# 73315 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__5_ in + # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 74884 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in - let m0 = - let _1 = +# 73322 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in + let m0 = + let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 74892 "src/ocaml/preprocess/parser_raw.ml" - in - +# 73330 "src/ocaml/preprocess/parser_raw.ml" + in + # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 74897 "src/ocaml/preprocess/parser_raw.ml" - - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in +# 73335 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 74907 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = - let _1 = +# 73345 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = + let _1 = # 4639 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 74914 "src/ocaml/preprocess/parser_raw.ml" - in - +# 73352 "src/ocaml/preprocess/parser_raw.ml" + in + # 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 74919 "src/ocaml/preprocess/parser_raw.ml" - - in +# 73357 "src/ocaml/preprocess/parser_raw.ml" + in + # 4566 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in Ptyp_arrow(label, domain , codomain, arg_modes, []) ) -# 74926 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 73364 "src/ocaml/preprocess/parser_raw.ml" + in + let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 74936 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 73374 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4569 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 74942 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type)) - in +# 73380 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -74995,90 +73432,88 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 74999 "src/ocaml/preprocess/parser_raw.ml" +# 73436 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos_codomain_ in - let _v = + let _v : (Parsetree.core_type) = let _1 = let _1 = - let _1 = - let domain_with_modes = - let m1 = + let domain_with_modes = + let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 75011 "src/ocaml/preprocess/parser_raw.ml" - in - let ty = - let _1 = +# 73447 "src/ocaml/preprocess/parser_raw.ml" + in + let ty = + let _1 = # 4736 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 75017 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos__1_ = _endpos_ty_ in - +# 73453 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos_ty_ in + # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 75023 "src/ocaml/preprocess/parser_raw.ml" - - in - let m0 = - let _1 = +# 73459 "src/ocaml/preprocess/parser_raw.ml" + + in + let m0 = + let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 75030 "src/ocaml/preprocess/parser_raw.ml" - in - +# 73466 "src/ocaml/preprocess/parser_raw.ml" + in + # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 75035 "src/ocaml/preprocess/parser_raw.ml" - - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in +# 73471 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 75045 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = - let _1 = +# 73481 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = + let _1 = # 4639 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 75052 "src/ocaml/preprocess/parser_raw.ml" - in - +# 73488 "src/ocaml/preprocess/parser_raw.ml" + in + # 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 75057 "src/ocaml/preprocess/parser_raw.ml" - - in +# 73493 "src/ocaml/preprocess/parser_raw.ml" + in + # 4566 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in Ptyp_arrow(label, domain , codomain, arg_modes, []) ) -# 75064 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 73500 "src/ocaml/preprocess/parser_raw.ml" + in + let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 75074 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 73510 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4569 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 75080 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type)) - in +# 73516 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -75140,93 +73575,91 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 75144 "src/ocaml/preprocess/parser_raw.ml" +# 73579 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos_codomain_ in - let _v = + let _v : (Parsetree.core_type) = let _1 = let _1 = - let _1 = - let domain_with_modes = - let m1 = - let _1 = _1_inlined1 in - + let domain_with_modes = + let m1 = + let _1 = _1_inlined1 in + # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 75158 "src/ocaml/preprocess/parser_raw.ml" - - in - let ty = - let _1 = +# 73592 "src/ocaml/preprocess/parser_raw.ml" + + in + let ty = + let _1 = # 4736 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 75165 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos__1_ = _endpos_ty_ in - +# 73599 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos_ty_ in + # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 75171 "src/ocaml/preprocess/parser_raw.ml" - - in - let m0 = - let _1 = +# 73605 "src/ocaml/preprocess/parser_raw.ml" + + in + let m0 = + let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 75178 "src/ocaml/preprocess/parser_raw.ml" - in - +# 73612 "src/ocaml/preprocess/parser_raw.ml" + in + # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 75183 "src/ocaml/preprocess/parser_raw.ml" - - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in +# 73617 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 75193 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = - let _1 = +# 73627 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = + let _1 = # 4639 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 75200 "src/ocaml/preprocess/parser_raw.ml" - in - +# 73634 "src/ocaml/preprocess/parser_raw.ml" + in + # 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 75205 "src/ocaml/preprocess/parser_raw.ml" - - in +# 73639 "src/ocaml/preprocess/parser_raw.ml" + in + # 4566 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in Ptyp_arrow(label, domain , codomain, arg_modes, []) ) -# 75212 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 73646 "src/ocaml/preprocess/parser_raw.ml" + in + let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 75222 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 73656 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4569 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 75228 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type)) - in +# 73662 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -75289,111 +73722,109 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_codomain_ in - let _v = + let _v : (Parsetree.core_type) = let _1 = let _1 = - let _1 = - let domain_with_modes = - let m1 = + let domain_with_modes = + let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 75300 "src/ocaml/preprocess/parser_raw.ml" - in - let ty = +# 73732 "src/ocaml/preprocess/parser_raw.ml" + in + let ty = + let _1 = let _1 = let _1 = - let _1 = - let bound_vars = - let _1 = - let xs = -# 264 "" + let bound_vars = + let _1 = + let xs = +# 253 "" ( List.rev xs ) -# 75311 "src/ocaml/preprocess/parser_raw.ml" - in - +# 73743 "src/ocaml/preprocess/parser_raw.ml" + in + # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 75316 "src/ocaml/preprocess/parser_raw.ml" - - in +# 73748 "src/ocaml/preprocess/parser_raw.ml" + in + # 4481 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 75322 "src/ocaml/preprocess/parser_raw.ml" - - in +# 73754 "src/ocaml/preprocess/parser_raw.ml" + in + # 4732 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 75328 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 73760 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__5_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 75338 "src/ocaml/preprocess/parser_raw.ml" - - in +# 73770 "src/ocaml/preprocess/parser_raw.ml" + in + # 4734 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 75344 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in +# 73776 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__5_ in + # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 75351 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in - let m0 = +# 73783 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in + let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 75358 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - +# 73790 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 75367 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = +# 73799 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = # 4646 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 75373 "src/ocaml/preprocess/parser_raw.ml" - in - +# 73805 "src/ocaml/preprocess/parser_raw.ml" + in + # 4566 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in Ptyp_arrow(label, domain , codomain, arg_modes, []) ) -# 75379 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos_codomain_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 73811 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos_codomain_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 75389 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 73821 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4569 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 75395 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type)) - in +# 73827 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -75463,114 +73894,112 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_codomain_ in - let _v = + let _v : (Parsetree.core_type) = let _1 = let _1 = - let _1 = - let domain_with_modes = - let m1 = - let _1 = _1_inlined1 in - + let domain_with_modes = + let m1 = + let _1 = _1_inlined1 in + # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 75476 "src/ocaml/preprocess/parser_raw.ml" - - in - let ty = +# 73906 "src/ocaml/preprocess/parser_raw.ml" + + in + let ty = + let _1 = let _1 = let _1 = - let _1 = - let bound_vars = - let _1 = - let xs = -# 264 "" + let bound_vars = + let _1 = + let xs = +# 253 "" ( List.rev xs ) -# 75488 "src/ocaml/preprocess/parser_raw.ml" - in - +# 73918 "src/ocaml/preprocess/parser_raw.ml" + in + # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 75493 "src/ocaml/preprocess/parser_raw.ml" - - in +# 73923 "src/ocaml/preprocess/parser_raw.ml" + in + # 4481 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 75499 "src/ocaml/preprocess/parser_raw.ml" - - in +# 73929 "src/ocaml/preprocess/parser_raw.ml" + in + # 4732 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 75505 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 73935 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__5_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 75515 "src/ocaml/preprocess/parser_raw.ml" - - in +# 73945 "src/ocaml/preprocess/parser_raw.ml" + in + # 4734 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 75521 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in +# 73951 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__5_ in + # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 75528 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in - let m0 = +# 73958 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in + let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 75535 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - +# 73965 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 75544 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = +# 73974 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = # 4646 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 75550 "src/ocaml/preprocess/parser_raw.ml" - in - +# 73980 "src/ocaml/preprocess/parser_raw.ml" + in + # 4566 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in Ptyp_arrow(label, domain , codomain, arg_modes, []) ) -# 75556 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos_codomain_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 73986 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos_codomain_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 75566 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 73996 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4569 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 75572 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type)) - in +# 74002 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -75605,71 +74034,69 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_ty_ in let _endpos = _endpos_codomain_ in - let _v = + let _v : (Parsetree.core_type) = let _1 = let _1 = - let _1 = - let domain_with_modes = - let m1 = + let domain_with_modes = + let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 75616 "src/ocaml/preprocess/parser_raw.ml" - in - let ty = - let _1 = +# 74044 "src/ocaml/preprocess/parser_raw.ml" + in + let ty = + let _1 = # 4736 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 75622 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos__1_ = _endpos_ty_ in - +# 74050 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos_ty_ in + # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 75628 "src/ocaml/preprocess/parser_raw.ml" - - in - let m0 = +# 74056 "src/ocaml/preprocess/parser_raw.ml" + + in + let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 75634 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - +# 74062 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 75643 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = +# 74071 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = # 4646 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 75649 "src/ocaml/preprocess/parser_raw.ml" - in - +# 74077 "src/ocaml/preprocess/parser_raw.ml" + in + # 4566 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in Ptyp_arrow(label, domain , codomain, arg_modes, []) ) -# 75655 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_ty_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 74083 "src/ocaml/preprocess/parser_raw.ml" + in + let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_ty_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 75665 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 74093 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4569 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 75671 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type)) - in +# 74099 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -75711,71 +74138,69 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_ty_ in let _endpos = _endpos_codomain_ in - let _v = + let _v : (Parsetree.core_type) = let _1 = let _1 = - let _1 = - let domain_with_modes = - let m1 = + let domain_with_modes = + let m1 = # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 75722 "src/ocaml/preprocess/parser_raw.ml" - in - let ty = - let _1 = +# 74148 "src/ocaml/preprocess/parser_raw.ml" + in + let ty = + let _1 = # 4736 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 75728 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos__1_ = _endpos_ty_ in - +# 74154 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos_ty_ in + # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 75734 "src/ocaml/preprocess/parser_raw.ml" - - in - let m0 = +# 74160 "src/ocaml/preprocess/parser_raw.ml" + + in + let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 75740 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - +# 74166 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 75749 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = +# 74175 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = # 4646 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 75755 "src/ocaml/preprocess/parser_raw.ml" - in - +# 74181 "src/ocaml/preprocess/parser_raw.ml" + in + # 4566 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in Ptyp_arrow(label, domain , codomain, arg_modes, []) ) -# 75761 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_ty_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 74187 "src/ocaml/preprocess/parser_raw.ml" + in + let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_ty_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 75771 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 74197 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4569 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 75777 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type)) - in +# 74203 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -75845,119 +74270,117 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_codomain_ in - let _v = + let _v : (Parsetree.core_type) = let _1 = let _1 = - let _1 = - let domain_with_modes = - let m1 = + let domain_with_modes = + let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 75856 "src/ocaml/preprocess/parser_raw.ml" - in - let ty = - let _startpos__1_ = _startpos__1_inlined1_ in +# 74280 "src/ocaml/preprocess/parser_raw.ml" + in + let ty = + let _startpos__1_ = _startpos__1_inlined1_ in + let _1 = let _1 = let _1 = - let _1 = - let bound_vars = - let _1 = - let xs = -# 264 "" + let bound_vars = + let _1 = + let xs = +# 253 "" ( List.rev xs ) -# 75868 "src/ocaml/preprocess/parser_raw.ml" - in - +# 74292 "src/ocaml/preprocess/parser_raw.ml" + in + # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 75873 "src/ocaml/preprocess/parser_raw.ml" - - in +# 74297 "src/ocaml/preprocess/parser_raw.ml" + in + # 4481 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 75879 "src/ocaml/preprocess/parser_raw.ml" - - in +# 74303 "src/ocaml/preprocess/parser_raw.ml" + in + # 4732 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 75885 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 74309 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__5_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 75895 "src/ocaml/preprocess/parser_raw.ml" - - in +# 74319 "src/ocaml/preprocess/parser_raw.ml" + in + # 4734 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 75901 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in +# 74325 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__5_ in + # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 75908 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in - let m0 = - let _1 = +# 74332 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in + let m0 = + let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 75916 "src/ocaml/preprocess/parser_raw.ml" - in - +# 74340 "src/ocaml/preprocess/parser_raw.ml" + in + # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 75921 "src/ocaml/preprocess/parser_raw.ml" - - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in +# 74345 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 75931 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = +# 74355 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = # 4646 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 75937 "src/ocaml/preprocess/parser_raw.ml" - in - +# 74361 "src/ocaml/preprocess/parser_raw.ml" + in + # 4566 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in Ptyp_arrow(label, domain , codomain, arg_modes, []) ) -# 75943 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos_codomain_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 74367 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos_codomain_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 75953 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 74377 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4569 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 75959 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type)) - in +# 74383 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -76034,122 +74457,120 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_codomain_ in - let _v = + let _v : (Parsetree.core_type) = let _1 = let _1 = - let _1 = - let domain_with_modes = - let m1 = - let _1 = _1_inlined2 in - + let domain_with_modes = + let m1 = + let _1 = _1_inlined2 in + # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 76047 "src/ocaml/preprocess/parser_raw.ml" - - in - let ty = - let _startpos__1_ = _startpos__1_inlined1_ in +# 74469 "src/ocaml/preprocess/parser_raw.ml" + + in + let ty = + let _startpos__1_ = _startpos__1_inlined1_ in + let _1 = let _1 = let _1 = - let _1 = - let bound_vars = - let _1 = - let xs = -# 264 "" + let bound_vars = + let _1 = + let xs = +# 253 "" ( List.rev xs ) -# 76060 "src/ocaml/preprocess/parser_raw.ml" - in - +# 74482 "src/ocaml/preprocess/parser_raw.ml" + in + # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 76065 "src/ocaml/preprocess/parser_raw.ml" - - in +# 74487 "src/ocaml/preprocess/parser_raw.ml" + in + # 4481 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 76071 "src/ocaml/preprocess/parser_raw.ml" - - in +# 74493 "src/ocaml/preprocess/parser_raw.ml" + in + # 4732 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 76077 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 74499 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__5_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 76087 "src/ocaml/preprocess/parser_raw.ml" - - in +# 74509 "src/ocaml/preprocess/parser_raw.ml" + in + # 4734 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 76093 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in +# 74515 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__5_ in + # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 76100 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in - let m0 = - let _1 = +# 74522 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in + let m0 = + let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 76108 "src/ocaml/preprocess/parser_raw.ml" - in - +# 74530 "src/ocaml/preprocess/parser_raw.ml" + in + # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 76113 "src/ocaml/preprocess/parser_raw.ml" - - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in +# 74535 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 76123 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = +# 74545 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = # 4646 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 76129 "src/ocaml/preprocess/parser_raw.ml" - in - +# 74551 "src/ocaml/preprocess/parser_raw.ml" + in + # 4566 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in Ptyp_arrow(label, domain , codomain, arg_modes, []) ) -# 76135 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos_codomain_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 74557 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos_codomain_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 76145 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 74567 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4569 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 76151 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type)) - in +# 74573 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -76191,78 +74612,76 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_codomain_ in - let _v = + let _v : (Parsetree.core_type) = let _1 = let _1 = - let _1 = - let domain_with_modes = - let m1 = + let domain_with_modes = + let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 76202 "src/ocaml/preprocess/parser_raw.ml" - in - let ty = - let _1 = +# 74622 "src/ocaml/preprocess/parser_raw.ml" + in + let ty = + let _1 = # 4736 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 76208 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos__1_ = _endpos_ty_ in - +# 74628 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos_ty_ in + # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 76214 "src/ocaml/preprocess/parser_raw.ml" - - in - let m0 = - let _1 = +# 74634 "src/ocaml/preprocess/parser_raw.ml" + + in + let m0 = + let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 76221 "src/ocaml/preprocess/parser_raw.ml" - in - +# 74641 "src/ocaml/preprocess/parser_raw.ml" + in + # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 76226 "src/ocaml/preprocess/parser_raw.ml" - - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in +# 74646 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 76236 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = +# 74656 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = # 4646 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 76242 "src/ocaml/preprocess/parser_raw.ml" - in - +# 74662 "src/ocaml/preprocess/parser_raw.ml" + in + # 4566 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in Ptyp_arrow(label, domain , codomain, arg_modes, []) ) -# 76248 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos_codomain_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 74668 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos_codomain_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 76258 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 74678 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4569 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 76264 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type)) - in +# 74684 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -76311,81 +74730,79 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_codomain_ in - let _v = + let _v : (Parsetree.core_type) = let _1 = let _1 = - let _1 = - let domain_with_modes = - let m1 = - let _1 = _1_inlined1 in - + let domain_with_modes = + let m1 = + let _1 = _1_inlined1 in + # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 76324 "src/ocaml/preprocess/parser_raw.ml" - - in - let ty = - let _1 = +# 74742 "src/ocaml/preprocess/parser_raw.ml" + + in + let ty = + let _1 = # 4736 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 76331 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos__1_ = _endpos_ty_ in - +# 74749 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos_ty_ in + # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 76337 "src/ocaml/preprocess/parser_raw.ml" - - in - let m0 = - let _1 = +# 74755 "src/ocaml/preprocess/parser_raw.ml" + + in + let m0 = + let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 76344 "src/ocaml/preprocess/parser_raw.ml" - in - +# 74762 "src/ocaml/preprocess/parser_raw.ml" + in + # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 76349 "src/ocaml/preprocess/parser_raw.ml" - - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in +# 74767 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 76359 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = +# 74777 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = # 4646 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 76365 "src/ocaml/preprocess/parser_raw.ml" - in - +# 74783 "src/ocaml/preprocess/parser_raw.ml" + in + # 4566 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in Ptyp_arrow(label, domain , codomain, arg_modes, []) ) -# 76371 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos_codomain_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 74789 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos_codomain_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 76381 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 74799 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4569 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 76387 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type)) - in +# 74805 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -76455,142 +74872,140 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos_ty_ in - let _v = + let _v : (Parsetree.core_type) = let _1 = let _1 = - let _1 = - let codomain_with_modes = - let m1 = + let codomain_with_modes = + let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 76466 "src/ocaml/preprocess/parser_raw.ml" - in - let m0 = +# 74882 "src/ocaml/preprocess/parser_raw.ml" + in + let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 76471 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - +# 74887 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 76480 "src/ocaml/preprocess/parser_raw.ml" - - in - let domain_with_modes = - let m1 = +# 74896 "src/ocaml/preprocess/parser_raw.ml" + + in + let domain_with_modes = + let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 76487 "src/ocaml/preprocess/parser_raw.ml" - in - let ty = +# 74903 "src/ocaml/preprocess/parser_raw.ml" + in + let ty = + let _1 = let _1 = let _1 = - let _1 = - let bound_vars = - let _1 = - let xs = -# 264 "" + let bound_vars = + let _1 = + let xs = +# 253 "" ( List.rev xs ) -# 76498 "src/ocaml/preprocess/parser_raw.ml" - in - +# 74914 "src/ocaml/preprocess/parser_raw.ml" + in + # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 76503 "src/ocaml/preprocess/parser_raw.ml" - - in +# 74919 "src/ocaml/preprocess/parser_raw.ml" + in + # 4481 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 76509 "src/ocaml/preprocess/parser_raw.ml" - - in +# 74925 "src/ocaml/preprocess/parser_raw.ml" + in + # 4732 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 76515 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 74931 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__5_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 76525 "src/ocaml/preprocess/parser_raw.ml" - - in +# 74941 "src/ocaml/preprocess/parser_raw.ml" + in + # 4734 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 76531 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in +# 74947 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__5_ in + # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 76538 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in - let m0 = +# 74954 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in + let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 76545 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - +# 74961 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 76554 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = - let _1 = +# 74970 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = + let _1 = # 4637 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 76561 "src/ocaml/preprocess/parser_raw.ml" - in - +# 74977 "src/ocaml/preprocess/parser_raw.ml" + in + # 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 76566 "src/ocaml/preprocess/parser_raw.ml" - - in +# 74982 "src/ocaml/preprocess/parser_raw.ml" + in + # 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 76576 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos_ty_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 74992 "src/ocaml/preprocess/parser_raw.ml" + in + let (_endpos__1_, _startpos__1_) = (_endpos_ty_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 76586 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 75002 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 76592 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type)) - in +# 75008 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -76667,143 +75082,141 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos__1_inlined1_ in - let _v = + let _v : (Parsetree.core_type) = let _1 = let _1 = - let _1 = - let codomain_with_modes = - let _1 = _1_inlined1 in - let m1 = + let codomain_with_modes = + let _1 = _1_inlined1 in + let m1 = # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 76679 "src/ocaml/preprocess/parser_raw.ml" - in - let m0 = +# 75093 "src/ocaml/preprocess/parser_raw.ml" + in + let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 76684 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - +# 75098 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 76693 "src/ocaml/preprocess/parser_raw.ml" - - in - let domain_with_modes = - let m1 = +# 75107 "src/ocaml/preprocess/parser_raw.ml" + + in + let domain_with_modes = + let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 76700 "src/ocaml/preprocess/parser_raw.ml" - in - let ty = +# 75114 "src/ocaml/preprocess/parser_raw.ml" + in + let ty = + let _1 = let _1 = let _1 = - let _1 = - let bound_vars = - let _1 = - let xs = -# 264 "" + let bound_vars = + let _1 = + let xs = +# 253 "" ( List.rev xs ) -# 76711 "src/ocaml/preprocess/parser_raw.ml" - in - +# 75125 "src/ocaml/preprocess/parser_raw.ml" + in + # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 76716 "src/ocaml/preprocess/parser_raw.ml" - - in +# 75130 "src/ocaml/preprocess/parser_raw.ml" + in + # 4481 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 76722 "src/ocaml/preprocess/parser_raw.ml" - - in +# 75136 "src/ocaml/preprocess/parser_raw.ml" + in + # 4732 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 76728 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 75142 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__5_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 76738 "src/ocaml/preprocess/parser_raw.ml" - - in +# 75152 "src/ocaml/preprocess/parser_raw.ml" + in + # 4734 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 76744 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in +# 75158 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__5_ in + # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 76751 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in - let m0 = +# 75165 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in + let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 76758 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - +# 75172 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 76767 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = - let _1 = +# 75181 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = + let _1 = # 4637 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 76774 "src/ocaml/preprocess/parser_raw.ml" - in - +# 75188 "src/ocaml/preprocess/parser_raw.ml" + in + # 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 76779 "src/ocaml/preprocess/parser_raw.ml" - - in +# 75193 "src/ocaml/preprocess/parser_raw.ml" + in + # 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 76789 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 75203 "src/ocaml/preprocess/parser_raw.ml" + in + let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 76799 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 75213 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 76805 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type)) - in +# 75219 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -76880,150 +75293,148 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos_ty_ in - let _v = + let _v : (Parsetree.core_type) = let _1 = let _1 = - let _1 = - let codomain_with_modes = - let _1 = _1_inlined1 in - let m1 = + let codomain_with_modes = + let _1 = _1_inlined1 in + let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 76892 "src/ocaml/preprocess/parser_raw.ml" - in - let m0 = - let _1 = +# 75304 "src/ocaml/preprocess/parser_raw.ml" + in + let m0 = + let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 76898 "src/ocaml/preprocess/parser_raw.ml" - in - +# 75310 "src/ocaml/preprocess/parser_raw.ml" + in + # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 76903 "src/ocaml/preprocess/parser_raw.ml" - - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in +# 75315 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 76913 "src/ocaml/preprocess/parser_raw.ml" - - in - let domain_with_modes = - let m1 = +# 75325 "src/ocaml/preprocess/parser_raw.ml" + + in + let domain_with_modes = + let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 76920 "src/ocaml/preprocess/parser_raw.ml" - in - let ty = +# 75332 "src/ocaml/preprocess/parser_raw.ml" + in + let ty = + let _1 = let _1 = let _1 = - let _1 = - let bound_vars = - let _1 = - let xs = -# 264 "" + let bound_vars = + let _1 = + let xs = +# 253 "" ( List.rev xs ) -# 76931 "src/ocaml/preprocess/parser_raw.ml" - in - +# 75343 "src/ocaml/preprocess/parser_raw.ml" + in + # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 76936 "src/ocaml/preprocess/parser_raw.ml" - - in +# 75348 "src/ocaml/preprocess/parser_raw.ml" + in + # 4481 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 76942 "src/ocaml/preprocess/parser_raw.ml" - - in +# 75354 "src/ocaml/preprocess/parser_raw.ml" + in + # 4732 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 76948 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 75360 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__5_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 76958 "src/ocaml/preprocess/parser_raw.ml" - - in +# 75370 "src/ocaml/preprocess/parser_raw.ml" + in + # 4734 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 76964 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in +# 75376 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__5_ in + # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 76971 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in - let m0 = +# 75383 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in + let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 76978 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - +# 75390 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 76987 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = - let _1 = +# 75399 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = + let _1 = # 4637 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 76994 "src/ocaml/preprocess/parser_raw.ml" - in - +# 75406 "src/ocaml/preprocess/parser_raw.ml" + in + # 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 76999 "src/ocaml/preprocess/parser_raw.ml" - - in +# 75411 "src/ocaml/preprocess/parser_raw.ml" + in + # 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 77009 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos_ty_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 75421 "src/ocaml/preprocess/parser_raw.ml" + in + let (_endpos__1_, _startpos__1_) = (_endpos_ty_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 77019 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 75431 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 77025 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type)) - in +# 75437 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -77107,153 +75518,151 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos__1_inlined2_ in - let _v = + let _v : (Parsetree.core_type) = let _1 = let _1 = - let _1 = - let codomain_with_modes = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let m1 = - let _1 = _1_inlined1 in - + let codomain_with_modes = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in + let m1 = + let _1 = _1_inlined1 in + # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 77121 "src/ocaml/preprocess/parser_raw.ml" - - in - let m0 = - let _1 = +# 75531 "src/ocaml/preprocess/parser_raw.ml" + + in + let m0 = + let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 77128 "src/ocaml/preprocess/parser_raw.ml" - in - +# 75538 "src/ocaml/preprocess/parser_raw.ml" + in + # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 77133 "src/ocaml/preprocess/parser_raw.ml" - - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in +# 75543 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 77143 "src/ocaml/preprocess/parser_raw.ml" - - in - let domain_with_modes = - let m1 = +# 75553 "src/ocaml/preprocess/parser_raw.ml" + + in + let domain_with_modes = + let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 77150 "src/ocaml/preprocess/parser_raw.ml" - in - let ty = +# 75560 "src/ocaml/preprocess/parser_raw.ml" + in + let ty = + let _1 = let _1 = let _1 = - let _1 = - let bound_vars = - let _1 = - let xs = -# 264 "" + let bound_vars = + let _1 = + let xs = +# 253 "" ( List.rev xs ) -# 77161 "src/ocaml/preprocess/parser_raw.ml" - in - +# 75571 "src/ocaml/preprocess/parser_raw.ml" + in + # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 77166 "src/ocaml/preprocess/parser_raw.ml" - - in +# 75576 "src/ocaml/preprocess/parser_raw.ml" + in + # 4481 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 77172 "src/ocaml/preprocess/parser_raw.ml" - - in +# 75582 "src/ocaml/preprocess/parser_raw.ml" + in + # 4732 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 77178 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 75588 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__5_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 77188 "src/ocaml/preprocess/parser_raw.ml" - - in +# 75598 "src/ocaml/preprocess/parser_raw.ml" + in + # 4734 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 77194 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in +# 75604 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__5_ in + # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 77201 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in - let m0 = +# 75611 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in + let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 77208 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - +# 75618 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 77217 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = - let _1 = +# 75627 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = + let _1 = # 4637 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 77224 "src/ocaml/preprocess/parser_raw.ml" - in - +# 75634 "src/ocaml/preprocess/parser_raw.ml" + in + # 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 77229 "src/ocaml/preprocess/parser_raw.ml" - - in +# 75639 "src/ocaml/preprocess/parser_raw.ml" + in + # 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 77239 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined2_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 75649 "src/ocaml/preprocess/parser_raw.ml" + in + let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined2_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 77249 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 75659 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 77255 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type)) - in +# 75665 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -77330,145 +75739,143 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos_ty_ in - let _v = + let _v : (Parsetree.core_type) = let _1 = let _1 = - let _1 = - let codomain_with_modes = - let m1 = + let codomain_with_modes = + let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 77341 "src/ocaml/preprocess/parser_raw.ml" - in - let m0 = +# 75749 "src/ocaml/preprocess/parser_raw.ml" + in + let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 77346 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - +# 75754 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 77355 "src/ocaml/preprocess/parser_raw.ml" +# 75763 "src/ocaml/preprocess/parser_raw.ml" + + in + let domain_with_modes = + let m1 = + let _1 = _1_inlined1 in - in - let domain_with_modes = - let m1 = - let _1 = _1_inlined1 in - # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 77364 "src/ocaml/preprocess/parser_raw.ml" - - in - let ty = +# 75772 "src/ocaml/preprocess/parser_raw.ml" + + in + let ty = + let _1 = let _1 = let _1 = - let _1 = - let bound_vars = - let _1 = - let xs = -# 264 "" + let bound_vars = + let _1 = + let xs = +# 253 "" ( List.rev xs ) -# 77376 "src/ocaml/preprocess/parser_raw.ml" - in - +# 75784 "src/ocaml/preprocess/parser_raw.ml" + in + # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 77381 "src/ocaml/preprocess/parser_raw.ml" - - in +# 75789 "src/ocaml/preprocess/parser_raw.ml" + in + # 4481 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 77387 "src/ocaml/preprocess/parser_raw.ml" - - in +# 75795 "src/ocaml/preprocess/parser_raw.ml" + in + # 4732 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 77393 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 75801 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__5_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 77403 "src/ocaml/preprocess/parser_raw.ml" - - in +# 75811 "src/ocaml/preprocess/parser_raw.ml" + in + # 4734 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 77409 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in +# 75817 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__5_ in + # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 77416 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in - let m0 = +# 75824 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in + let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 77423 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - +# 75831 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 77432 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = - let _1 = +# 75840 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = + let _1 = # 4637 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 77439 "src/ocaml/preprocess/parser_raw.ml" - in - +# 75847 "src/ocaml/preprocess/parser_raw.ml" + in + # 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 77444 "src/ocaml/preprocess/parser_raw.ml" - - in +# 75852 "src/ocaml/preprocess/parser_raw.ml" + in + # 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 77454 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos_ty_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 75862 "src/ocaml/preprocess/parser_raw.ml" + in + let (_endpos__1_, _startpos__1_) = (_endpos_ty_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 77464 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 75872 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 77470 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type)) - in +# 75878 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -77552,146 +75959,144 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos__1_inlined2_ in - let _v = + let _v : (Parsetree.core_type) = let _1 = let _1 = - let _1 = - let codomain_with_modes = - let _1 = _1_inlined2 in - let m1 = + let codomain_with_modes = + let _1 = _1_inlined2 in + let m1 = # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 77564 "src/ocaml/preprocess/parser_raw.ml" - in - let m0 = +# 75970 "src/ocaml/preprocess/parser_raw.ml" + in + let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 77569 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - +# 75975 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 77578 "src/ocaml/preprocess/parser_raw.ml" +# 75984 "src/ocaml/preprocess/parser_raw.ml" + + in + let domain_with_modes = + let m1 = + let _1 = _1_inlined1 in - in - let domain_with_modes = - let m1 = - let _1 = _1_inlined1 in - # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 77587 "src/ocaml/preprocess/parser_raw.ml" - - in - let ty = +# 75993 "src/ocaml/preprocess/parser_raw.ml" + + in + let ty = + let _1 = let _1 = let _1 = - let _1 = - let bound_vars = - let _1 = - let xs = -# 264 "" + let bound_vars = + let _1 = + let xs = +# 253 "" ( List.rev xs ) -# 77599 "src/ocaml/preprocess/parser_raw.ml" - in - +# 76005 "src/ocaml/preprocess/parser_raw.ml" + in + # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 77604 "src/ocaml/preprocess/parser_raw.ml" - - in +# 76010 "src/ocaml/preprocess/parser_raw.ml" + in + # 4481 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 77610 "src/ocaml/preprocess/parser_raw.ml" - - in +# 76016 "src/ocaml/preprocess/parser_raw.ml" + in + # 4732 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 77616 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 76022 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__5_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 77626 "src/ocaml/preprocess/parser_raw.ml" - - in +# 76032 "src/ocaml/preprocess/parser_raw.ml" + in + # 4734 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 77632 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in +# 76038 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__5_ in + # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 77639 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in - let m0 = +# 76045 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in + let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 77646 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - +# 76052 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 77655 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = - let _1 = +# 76061 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = + let _1 = # 4637 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 77662 "src/ocaml/preprocess/parser_raw.ml" - in - +# 76068 "src/ocaml/preprocess/parser_raw.ml" + in + # 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 77667 "src/ocaml/preprocess/parser_raw.ml" - - in +# 76073 "src/ocaml/preprocess/parser_raw.ml" + in + # 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 77677 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined2_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 76083 "src/ocaml/preprocess/parser_raw.ml" + in + let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined2_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 77687 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 76093 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 77693 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type)) - in +# 76099 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -77775,153 +76180,151 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos_ty_ in - let _v = + let _v : (Parsetree.core_type) = let _1 = let _1 = - let _1 = - let codomain_with_modes = - let _1 = _1_inlined2 in - let m1 = + let codomain_with_modes = + let _1 = _1_inlined2 in + let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 77787 "src/ocaml/preprocess/parser_raw.ml" - in - let m0 = - let _1 = +# 76191 "src/ocaml/preprocess/parser_raw.ml" + in + let m0 = + let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 77793 "src/ocaml/preprocess/parser_raw.ml" - in - +# 76197 "src/ocaml/preprocess/parser_raw.ml" + in + # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 77798 "src/ocaml/preprocess/parser_raw.ml" - - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in +# 76202 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 77808 "src/ocaml/preprocess/parser_raw.ml" +# 76212 "src/ocaml/preprocess/parser_raw.ml" + + in + let domain_with_modes = + let m1 = + let _1 = _1_inlined1 in - in - let domain_with_modes = - let m1 = - let _1 = _1_inlined1 in - # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 77817 "src/ocaml/preprocess/parser_raw.ml" - - in - let ty = +# 76221 "src/ocaml/preprocess/parser_raw.ml" + + in + let ty = + let _1 = let _1 = let _1 = - let _1 = - let bound_vars = - let _1 = - let xs = -# 264 "" + let bound_vars = + let _1 = + let xs = +# 253 "" ( List.rev xs ) -# 77829 "src/ocaml/preprocess/parser_raw.ml" - in - +# 76233 "src/ocaml/preprocess/parser_raw.ml" + in + # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 77834 "src/ocaml/preprocess/parser_raw.ml" - - in +# 76238 "src/ocaml/preprocess/parser_raw.ml" + in + # 4481 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 77840 "src/ocaml/preprocess/parser_raw.ml" - - in +# 76244 "src/ocaml/preprocess/parser_raw.ml" + in + # 4732 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 77846 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 76250 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__5_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 77856 "src/ocaml/preprocess/parser_raw.ml" - - in +# 76260 "src/ocaml/preprocess/parser_raw.ml" + in + # 4734 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 77862 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in +# 76266 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__5_ in + # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 77869 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in - let m0 = +# 76273 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in + let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 77876 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - +# 76280 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 77885 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = - let _1 = +# 76289 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = + let _1 = # 4637 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 77892 "src/ocaml/preprocess/parser_raw.ml" - in - +# 76296 "src/ocaml/preprocess/parser_raw.ml" + in + # 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 77897 "src/ocaml/preprocess/parser_raw.ml" - - in +# 76301 "src/ocaml/preprocess/parser_raw.ml" + in + # 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 77907 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos_ty_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 76311 "src/ocaml/preprocess/parser_raw.ml" + in + let (_endpos__1_, _startpos__1_) = (_endpos_ty_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 77917 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 76321 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 77923 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type)) - in +# 76327 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -78012,156 +76415,154 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos__1_inlined3_ in - let _v = + let _v : (Parsetree.core_type) = let _1 = let _1 = - let _1 = - let codomain_with_modes = - let (_1_inlined1, _1) = (_1_inlined3, _1_inlined2) in - let m1 = - let _1 = _1_inlined1 in - + let codomain_with_modes = + let (_1_inlined1, _1) = (_1_inlined3, _1_inlined2) in + let m1 = + let _1 = _1_inlined1 in + # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 78026 "src/ocaml/preprocess/parser_raw.ml" - - in - let m0 = - let _1 = +# 76428 "src/ocaml/preprocess/parser_raw.ml" + + in + let m0 = + let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 78033 "src/ocaml/preprocess/parser_raw.ml" - in - +# 76435 "src/ocaml/preprocess/parser_raw.ml" + in + # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 78038 "src/ocaml/preprocess/parser_raw.ml" - - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in +# 76440 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 78048 "src/ocaml/preprocess/parser_raw.ml" +# 76450 "src/ocaml/preprocess/parser_raw.ml" + + in + let domain_with_modes = + let m1 = + let _1 = _1_inlined1 in - in - let domain_with_modes = - let m1 = - let _1 = _1_inlined1 in - # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 78057 "src/ocaml/preprocess/parser_raw.ml" - - in - let ty = +# 76459 "src/ocaml/preprocess/parser_raw.ml" + + in + let ty = + let _1 = let _1 = let _1 = - let _1 = - let bound_vars = - let _1 = - let xs = -# 264 "" + let bound_vars = + let _1 = + let xs = +# 253 "" ( List.rev xs ) -# 78069 "src/ocaml/preprocess/parser_raw.ml" - in - +# 76471 "src/ocaml/preprocess/parser_raw.ml" + in + # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 78074 "src/ocaml/preprocess/parser_raw.ml" - - in +# 76476 "src/ocaml/preprocess/parser_raw.ml" + in + # 4481 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 78080 "src/ocaml/preprocess/parser_raw.ml" - - in +# 76482 "src/ocaml/preprocess/parser_raw.ml" + in + # 4732 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 78086 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 76488 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__5_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 78096 "src/ocaml/preprocess/parser_raw.ml" - - in +# 76498 "src/ocaml/preprocess/parser_raw.ml" + in + # 4734 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 78102 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in +# 76504 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__5_ in + # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 78109 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in - let m0 = +# 76511 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in + let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 78116 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - +# 76518 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 78125 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = - let _1 = +# 76527 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = + let _1 = # 4637 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 78132 "src/ocaml/preprocess/parser_raw.ml" - in - +# 76534 "src/ocaml/preprocess/parser_raw.ml" + in + # 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 78137 "src/ocaml/preprocess/parser_raw.ml" - - in +# 76539 "src/ocaml/preprocess/parser_raw.ml" + in + # 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 78147 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined3_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 76549 "src/ocaml/preprocess/parser_raw.ml" + in + let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined3_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 78157 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 76559 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 78163 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type)) - in +# 76565 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -78203,103 +76604,101 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos_ty_inlined1_ in - let _v = + let _v : (Parsetree.core_type) = let _1 = let _1 = - let _1 = - let codomain_with_modes = - let (_endpos_ty_, _startpos_ty_, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1) in - let m1 = + let codomain_with_modes = + let (_endpos_ty_, _startpos_ty_, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1) in + let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 78215 "src/ocaml/preprocess/parser_raw.ml" - in - let m0 = +# 76615 "src/ocaml/preprocess/parser_raw.ml" + in + let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 78220 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - +# 76620 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 78229 "src/ocaml/preprocess/parser_raw.ml" - - in - let domain_with_modes = - let m1 = +# 76629 "src/ocaml/preprocess/parser_raw.ml" + + in + let domain_with_modes = + let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 78236 "src/ocaml/preprocess/parser_raw.ml" - in - let ty = - let _1 = +# 76636 "src/ocaml/preprocess/parser_raw.ml" + in + let ty = + let _1 = # 4736 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 78242 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos__1_ = _endpos_ty_ in - +# 76642 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos_ty_ in + # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 78248 "src/ocaml/preprocess/parser_raw.ml" - - in - let m0 = +# 76648 "src/ocaml/preprocess/parser_raw.ml" + + in + let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 78254 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - +# 76654 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 78263 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = - let _1 = +# 76663 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = + let _1 = # 4637 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 78270 "src/ocaml/preprocess/parser_raw.ml" - in - +# 76670 "src/ocaml/preprocess/parser_raw.ml" + in + # 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 78275 "src/ocaml/preprocess/parser_raw.ml" - - in +# 76675 "src/ocaml/preprocess/parser_raw.ml" + in + # 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 78285 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 76685 "src/ocaml/preprocess/parser_raw.ml" + in + let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 78295 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 76695 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 78301 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type)) - in +# 76701 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -78348,103 +76747,101 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos__1_ in - let _v = + let _v : (Parsetree.core_type) = let _1 = let _1 = - let _1 = - let codomain_with_modes = - let (_endpos_ty_, _startpos_ty_, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1) in - let m1 = + let codomain_with_modes = + let (_endpos_ty_, _startpos_ty_, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1) in + let m1 = # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 78360 "src/ocaml/preprocess/parser_raw.ml" - in - let m0 = +# 76758 "src/ocaml/preprocess/parser_raw.ml" + in + let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 78365 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - +# 76763 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 78374 "src/ocaml/preprocess/parser_raw.ml" - - in - let domain_with_modes = - let m1 = +# 76772 "src/ocaml/preprocess/parser_raw.ml" + + in + let domain_with_modes = + let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 78381 "src/ocaml/preprocess/parser_raw.ml" - in - let ty = - let _1 = +# 76779 "src/ocaml/preprocess/parser_raw.ml" + in + let ty = + let _1 = # 4736 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 78387 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos__1_ = _endpos_ty_ in - +# 76785 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos_ty_ in + # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 78393 "src/ocaml/preprocess/parser_raw.ml" - - in - let m0 = +# 76791 "src/ocaml/preprocess/parser_raw.ml" + + in + let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 78399 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - +# 76797 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 78408 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = - let _1 = +# 76806 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = + let _1 = # 4637 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 78415 "src/ocaml/preprocess/parser_raw.ml" - in - +# 76813 "src/ocaml/preprocess/parser_raw.ml" + in + # 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 78420 "src/ocaml/preprocess/parser_raw.ml" - - in +# 76818 "src/ocaml/preprocess/parser_raw.ml" + in + # 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 78430 "src/ocaml/preprocess/parser_raw.ml" - - in - let _startpos__1_ = _startpos_label_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 76828 "src/ocaml/preprocess/parser_raw.ml" + in + let _startpos__1_ = _startpos_label_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 78440 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 76838 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 78446 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type)) - in +# 76844 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -78493,110 +76890,108 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos_ty_inlined1_ in - let _v = + let _v : (Parsetree.core_type) = let _1 = let _1 = - let _1 = - let codomain_with_modes = - let (_endpos_ty_, _startpos_ty_, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1) in - let m1 = + let codomain_with_modes = + let (_endpos_ty_, _startpos_ty_, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1) in + let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 78505 "src/ocaml/preprocess/parser_raw.ml" - in - let m0 = - let _1 = +# 76901 "src/ocaml/preprocess/parser_raw.ml" + in + let m0 = + let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 78511 "src/ocaml/preprocess/parser_raw.ml" - in - +# 76907 "src/ocaml/preprocess/parser_raw.ml" + in + # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 78516 "src/ocaml/preprocess/parser_raw.ml" - - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in +# 76912 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 78526 "src/ocaml/preprocess/parser_raw.ml" - - in - let domain_with_modes = - let m1 = +# 76922 "src/ocaml/preprocess/parser_raw.ml" + + in + let domain_with_modes = + let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 78533 "src/ocaml/preprocess/parser_raw.ml" - in - let ty = - let _1 = +# 76929 "src/ocaml/preprocess/parser_raw.ml" + in + let ty = + let _1 = # 4736 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 78539 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos__1_ = _endpos_ty_ in - +# 76935 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos_ty_ in + # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 78545 "src/ocaml/preprocess/parser_raw.ml" - - in - let m0 = +# 76941 "src/ocaml/preprocess/parser_raw.ml" + + in + let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 78551 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - +# 76947 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 78560 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = - let _1 = +# 76956 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = + let _1 = # 4637 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 78567 "src/ocaml/preprocess/parser_raw.ml" - in - +# 76963 "src/ocaml/preprocess/parser_raw.ml" + in + # 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 78572 "src/ocaml/preprocess/parser_raw.ml" - - in +# 76968 "src/ocaml/preprocess/parser_raw.ml" + in + # 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 78582 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 1333 "src/ocaml/preprocess/parser_raw.mly" - ( mktyp ~loc:_sloc _1 ) -# 78592 "src/ocaml/preprocess/parser_raw.ml" +# 76978 "src/ocaml/preprocess/parser_raw.ml" in - ( + let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 1333 "src/ocaml/preprocess/parser_raw.mly" + ( mktyp ~loc:_sloc _1 ) +# 76988 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 78598 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type)) - in +# 76994 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -78652,113 +77047,111 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos__1_inlined1_ in - let _v = + let _v : (Parsetree.core_type) = let _1 = let _1 = - let _1 = - let codomain_with_modes = - let (_endpos_ty_, _startpos_ty_, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1) in - let m1 = - let _1 = _1_inlined1 in - + let codomain_with_modes = + let (_endpos_ty_, _startpos_ty_, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1) in + let m1 = + let _1 = _1_inlined1 in + # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 78666 "src/ocaml/preprocess/parser_raw.ml" - - in - let m0 = - let _1 = +# 77060 "src/ocaml/preprocess/parser_raw.ml" + + in + let m0 = + let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 78673 "src/ocaml/preprocess/parser_raw.ml" - in - +# 77067 "src/ocaml/preprocess/parser_raw.ml" + in + # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 78678 "src/ocaml/preprocess/parser_raw.ml" - - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in +# 77072 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 78688 "src/ocaml/preprocess/parser_raw.ml" - - in - let domain_with_modes = - let m1 = +# 77082 "src/ocaml/preprocess/parser_raw.ml" + + in + let domain_with_modes = + let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 78695 "src/ocaml/preprocess/parser_raw.ml" - in - let ty = - let _1 = +# 77089 "src/ocaml/preprocess/parser_raw.ml" + in + let ty = + let _1 = # 4736 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 78701 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos__1_ = _endpos_ty_ in - +# 77095 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos_ty_ in + # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 78707 "src/ocaml/preprocess/parser_raw.ml" - - in - let m0 = +# 77101 "src/ocaml/preprocess/parser_raw.ml" + + in + let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 78713 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - +# 77107 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 78722 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = - let _1 = +# 77116 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = + let _1 = # 4637 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 78729 "src/ocaml/preprocess/parser_raw.ml" - in - +# 77123 "src/ocaml/preprocess/parser_raw.ml" + in + # 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 78734 "src/ocaml/preprocess/parser_raw.ml" - - in +# 77128 "src/ocaml/preprocess/parser_raw.ml" + in + # 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 78744 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 77138 "src/ocaml/preprocess/parser_raw.ml" + in + let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 78754 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 77148 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 78760 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type)) - in +# 77154 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -78807,103 +77200,101 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos_ty_inlined1_ in - let _v = + let _v : (Parsetree.core_type) = let _1 = let _1 = - let _1 = - let codomain_with_modes = - let (_endpos_ty_, _startpos_ty_, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1) in - let m1 = + let codomain_with_modes = + let (_endpos_ty_, _startpos_ty_, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1) in + let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 78819 "src/ocaml/preprocess/parser_raw.ml" - in - let m0 = +# 77211 "src/ocaml/preprocess/parser_raw.ml" + in + let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 78824 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - +# 77216 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 78833 "src/ocaml/preprocess/parser_raw.ml" - - in - let domain_with_modes = - let m1 = +# 77225 "src/ocaml/preprocess/parser_raw.ml" + + in + let domain_with_modes = + let m1 = # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 78840 "src/ocaml/preprocess/parser_raw.ml" - in - let ty = - let _1 = +# 77232 "src/ocaml/preprocess/parser_raw.ml" + in + let ty = + let _1 = # 4736 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 78846 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos__1_ = _endpos_ty_ in - +# 77238 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos_ty_ in + # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 78852 "src/ocaml/preprocess/parser_raw.ml" - - in - let m0 = +# 77244 "src/ocaml/preprocess/parser_raw.ml" + + in + let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 78858 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - +# 77250 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 78867 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = - let _1 = +# 77259 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = + let _1 = # 4637 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 78874 "src/ocaml/preprocess/parser_raw.ml" - in - +# 77266 "src/ocaml/preprocess/parser_raw.ml" + in + # 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 78879 "src/ocaml/preprocess/parser_raw.ml" - - in +# 77271 "src/ocaml/preprocess/parser_raw.ml" + in + # 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 78889 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 77281 "src/ocaml/preprocess/parser_raw.ml" + in + let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 78899 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 77291 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 78905 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type)) - in +# 77297 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -78959,103 +77350,101 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos__1_inlined1_ in - let _v = + let _v : (Parsetree.core_type) = let _1 = let _1 = - let _1 = - let codomain_with_modes = - let (_endpos_ty_, _startpos_ty_, _1, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, _1_inlined1, ty_inlined1) in - let m1 = + let codomain_with_modes = + let (_endpos_ty_, _startpos_ty_, _1, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, _1_inlined1, ty_inlined1) in + let m1 = # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 78971 "src/ocaml/preprocess/parser_raw.ml" - in - let m0 = +# 77361 "src/ocaml/preprocess/parser_raw.ml" + in + let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 78976 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - +# 77366 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 78985 "src/ocaml/preprocess/parser_raw.ml" - - in - let domain_with_modes = - let m1 = +# 77375 "src/ocaml/preprocess/parser_raw.ml" + + in + let domain_with_modes = + let m1 = # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 78992 "src/ocaml/preprocess/parser_raw.ml" - in - let ty = - let _1 = +# 77382 "src/ocaml/preprocess/parser_raw.ml" + in + let ty = + let _1 = # 4736 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 78998 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos__1_ = _endpos_ty_ in - +# 77388 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos_ty_ in + # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 79004 "src/ocaml/preprocess/parser_raw.ml" - - in - let m0 = +# 77394 "src/ocaml/preprocess/parser_raw.ml" + + in + let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 79010 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - +# 77400 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 79019 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = - let _1 = +# 77409 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = + let _1 = # 4637 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 79026 "src/ocaml/preprocess/parser_raw.ml" - in - +# 77416 "src/ocaml/preprocess/parser_raw.ml" + in + # 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 79031 "src/ocaml/preprocess/parser_raw.ml" - - in +# 77421 "src/ocaml/preprocess/parser_raw.ml" + in + # 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 79041 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 77431 "src/ocaml/preprocess/parser_raw.ml" + in + let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 79051 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 77441 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 79057 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type)) - in +# 77447 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -79111,110 +77500,108 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos_ty_inlined1_ in - let _v = + let _v : (Parsetree.core_type) = let _1 = let _1 = - let _1 = - let codomain_with_modes = - let (_endpos_ty_, _startpos_ty_, ty, _1) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1, _1_inlined1) in - let m1 = + let codomain_with_modes = + let (_endpos_ty_, _startpos_ty_, ty, _1) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1, _1_inlined1) in + let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 79123 "src/ocaml/preprocess/parser_raw.ml" - in - let m0 = - let _1 = +# 77511 "src/ocaml/preprocess/parser_raw.ml" + in + let m0 = + let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 79129 "src/ocaml/preprocess/parser_raw.ml" - in - +# 77517 "src/ocaml/preprocess/parser_raw.ml" + in + # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 79134 "src/ocaml/preprocess/parser_raw.ml" - - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in +# 77522 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 79144 "src/ocaml/preprocess/parser_raw.ml" - - in - let domain_with_modes = - let m1 = +# 77532 "src/ocaml/preprocess/parser_raw.ml" + + in + let domain_with_modes = + let m1 = # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 79151 "src/ocaml/preprocess/parser_raw.ml" - in - let ty = - let _1 = +# 77539 "src/ocaml/preprocess/parser_raw.ml" + in + let ty = + let _1 = # 4736 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 79157 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos__1_ = _endpos_ty_ in - +# 77545 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos_ty_ in + # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 79163 "src/ocaml/preprocess/parser_raw.ml" - - in - let m0 = +# 77551 "src/ocaml/preprocess/parser_raw.ml" + + in + let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 79169 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - +# 77557 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 79178 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = - let _1 = +# 77566 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = + let _1 = # 4637 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 79185 "src/ocaml/preprocess/parser_raw.ml" - in - +# 77573 "src/ocaml/preprocess/parser_raw.ml" + in + # 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 79190 "src/ocaml/preprocess/parser_raw.ml" - - in +# 77578 "src/ocaml/preprocess/parser_raw.ml" + in + # 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 79200 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 77588 "src/ocaml/preprocess/parser_raw.ml" + in + let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 79210 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 77598 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 79216 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type)) - in +# 77604 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -79277,113 +77664,111 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos__1_inlined2_ in - let _v = + let _v : (Parsetree.core_type) = let _1 = let _1 = - let _1 = - let codomain_with_modes = - let (_endpos_ty_, _startpos_ty_, _1_inlined1, ty, _1) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, _1_inlined2, ty_inlined1, _1_inlined1) in - let m1 = - let _1 = _1_inlined1 in - + let codomain_with_modes = + let (_endpos_ty_, _startpos_ty_, _1_inlined1, ty, _1) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, _1_inlined2, ty_inlined1, _1_inlined1) in + let m1 = + let _1 = _1_inlined1 in + # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 79291 "src/ocaml/preprocess/parser_raw.ml" - - in - let m0 = - let _1 = +# 77677 "src/ocaml/preprocess/parser_raw.ml" + + in + let m0 = + let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 79298 "src/ocaml/preprocess/parser_raw.ml" - in - +# 77684 "src/ocaml/preprocess/parser_raw.ml" + in + # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 79303 "src/ocaml/preprocess/parser_raw.ml" - - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in +# 77689 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 79313 "src/ocaml/preprocess/parser_raw.ml" - - in - let domain_with_modes = - let m1 = +# 77699 "src/ocaml/preprocess/parser_raw.ml" + + in + let domain_with_modes = + let m1 = # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 79320 "src/ocaml/preprocess/parser_raw.ml" - in - let ty = - let _1 = +# 77706 "src/ocaml/preprocess/parser_raw.ml" + in + let ty = + let _1 = # 4736 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 79326 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos__1_ = _endpos_ty_ in - +# 77712 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos_ty_ in + # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 79332 "src/ocaml/preprocess/parser_raw.ml" - - in - let m0 = +# 77718 "src/ocaml/preprocess/parser_raw.ml" + + in + let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 79338 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - +# 77724 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 79347 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = - let _1 = +# 77733 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = + let _1 = # 4637 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 79354 "src/ocaml/preprocess/parser_raw.ml" - in - +# 77740 "src/ocaml/preprocess/parser_raw.ml" + in + # 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 79359 "src/ocaml/preprocess/parser_raw.ml" - - in +# 77745 "src/ocaml/preprocess/parser_raw.ml" + in + # 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 79369 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined2_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 77755 "src/ocaml/preprocess/parser_raw.ml" + in + let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined2_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 79379 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 77765 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 79385 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type)) - in +# 77771 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -79460,150 +77845,148 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos_ty_ in - let _v = + let _v : (Parsetree.core_type) = let _1 = let _1 = - let _1 = - let codomain_with_modes = - let m1 = + let codomain_with_modes = + let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 79471 "src/ocaml/preprocess/parser_raw.ml" - in - let m0 = +# 77855 "src/ocaml/preprocess/parser_raw.ml" + in + let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 79476 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - +# 77860 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 79485 "src/ocaml/preprocess/parser_raw.ml" - - in - let domain_with_modes = - let m1 = +# 77869 "src/ocaml/preprocess/parser_raw.ml" + + in + let domain_with_modes = + let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 79492 "src/ocaml/preprocess/parser_raw.ml" - in - let ty = - let _startpos__1_ = _startpos__1_inlined1_ in +# 77876 "src/ocaml/preprocess/parser_raw.ml" + in + let ty = + let _startpos__1_ = _startpos__1_inlined1_ in + let _1 = let _1 = let _1 = - let _1 = - let bound_vars = - let _1 = - let xs = -# 264 "" + let bound_vars = + let _1 = + let xs = +# 253 "" ( List.rev xs ) -# 79504 "src/ocaml/preprocess/parser_raw.ml" - in - +# 77888 "src/ocaml/preprocess/parser_raw.ml" + in + # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 79509 "src/ocaml/preprocess/parser_raw.ml" - - in +# 77893 "src/ocaml/preprocess/parser_raw.ml" + in + # 4481 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 79515 "src/ocaml/preprocess/parser_raw.ml" - - in +# 77899 "src/ocaml/preprocess/parser_raw.ml" + in + # 4732 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 79521 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 77905 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__5_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 79531 "src/ocaml/preprocess/parser_raw.ml" - - in +# 77915 "src/ocaml/preprocess/parser_raw.ml" + in + # 4734 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 79537 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in +# 77921 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__5_ in + # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 79544 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in - let m0 = - let _1 = +# 77928 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in + let m0 = + let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 79552 "src/ocaml/preprocess/parser_raw.ml" - in - +# 77936 "src/ocaml/preprocess/parser_raw.ml" + in + # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 79557 "src/ocaml/preprocess/parser_raw.ml" - - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in +# 77941 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 79567 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = - let _1 = +# 77951 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = + let _1 = # 4637 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 79574 "src/ocaml/preprocess/parser_raw.ml" - in - +# 77958 "src/ocaml/preprocess/parser_raw.ml" + in + # 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 79579 "src/ocaml/preprocess/parser_raw.ml" - - in +# 77963 "src/ocaml/preprocess/parser_raw.ml" + in + # 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 79589 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos_ty_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 77973 "src/ocaml/preprocess/parser_raw.ml" + in + let (_endpos__1_, _startpos__1_) = (_endpos_ty_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 79599 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 77983 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 79605 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type)) - in +# 77989 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -79687,151 +78070,149 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos__1_inlined2_ in - let _v = + let _v : (Parsetree.core_type) = let _1 = let _1 = - let _1 = - let codomain_with_modes = - let _1 = _1_inlined2 in - let m1 = + let codomain_with_modes = + let _1 = _1_inlined2 in + let m1 = # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 79699 "src/ocaml/preprocess/parser_raw.ml" - in - let m0 = +# 78081 "src/ocaml/preprocess/parser_raw.ml" + in + let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 79704 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - +# 78086 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 79713 "src/ocaml/preprocess/parser_raw.ml" - - in - let domain_with_modes = - let m1 = +# 78095 "src/ocaml/preprocess/parser_raw.ml" + + in + let domain_with_modes = + let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 79720 "src/ocaml/preprocess/parser_raw.ml" - in - let ty = - let _startpos__1_ = _startpos__1_inlined1_ in +# 78102 "src/ocaml/preprocess/parser_raw.ml" + in + let ty = + let _startpos__1_ = _startpos__1_inlined1_ in + let _1 = let _1 = let _1 = - let _1 = - let bound_vars = - let _1 = - let xs = -# 264 "" + let bound_vars = + let _1 = + let xs = +# 253 "" ( List.rev xs ) -# 79732 "src/ocaml/preprocess/parser_raw.ml" - in - +# 78114 "src/ocaml/preprocess/parser_raw.ml" + in + # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 79737 "src/ocaml/preprocess/parser_raw.ml" - - in +# 78119 "src/ocaml/preprocess/parser_raw.ml" + in + # 4481 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 79743 "src/ocaml/preprocess/parser_raw.ml" - - in +# 78125 "src/ocaml/preprocess/parser_raw.ml" + in + # 4732 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 79749 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 78131 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__5_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 79759 "src/ocaml/preprocess/parser_raw.ml" - - in +# 78141 "src/ocaml/preprocess/parser_raw.ml" + in + # 4734 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 79765 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in +# 78147 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__5_ in + # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 79772 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in - let m0 = - let _1 = +# 78154 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in + let m0 = + let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 79780 "src/ocaml/preprocess/parser_raw.ml" - in - +# 78162 "src/ocaml/preprocess/parser_raw.ml" + in + # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 79785 "src/ocaml/preprocess/parser_raw.ml" - - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in +# 78167 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 79795 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = - let _1 = +# 78177 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = + let _1 = # 4637 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 79802 "src/ocaml/preprocess/parser_raw.ml" - in - +# 78184 "src/ocaml/preprocess/parser_raw.ml" + in + # 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 79807 "src/ocaml/preprocess/parser_raw.ml" - - in +# 78189 "src/ocaml/preprocess/parser_raw.ml" + in + # 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 79817 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined2_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 78199 "src/ocaml/preprocess/parser_raw.ml" + in + let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined2_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 79827 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 78209 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 79833 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type)) - in +# 78215 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -79915,158 +78296,156 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos_ty_ in - let _v = + let _v : (Parsetree.core_type) = let _1 = let _1 = - let _1 = - let codomain_with_modes = - let _1 = _1_inlined2 in - let m1 = + let codomain_with_modes = + let _1 = _1_inlined2 in + let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 79927 "src/ocaml/preprocess/parser_raw.ml" - in - let m0 = - let _1 = +# 78307 "src/ocaml/preprocess/parser_raw.ml" + in + let m0 = + let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 79933 "src/ocaml/preprocess/parser_raw.ml" - in - +# 78313 "src/ocaml/preprocess/parser_raw.ml" + in + # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 79938 "src/ocaml/preprocess/parser_raw.ml" - - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in +# 78318 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 79948 "src/ocaml/preprocess/parser_raw.ml" - - in - let domain_with_modes = - let m1 = +# 78328 "src/ocaml/preprocess/parser_raw.ml" + + in + let domain_with_modes = + let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 79955 "src/ocaml/preprocess/parser_raw.ml" - in - let ty = - let _startpos__1_ = _startpos__1_inlined1_ in +# 78335 "src/ocaml/preprocess/parser_raw.ml" + in + let ty = + let _startpos__1_ = _startpos__1_inlined1_ in + let _1 = let _1 = let _1 = - let _1 = - let bound_vars = - let _1 = - let xs = -# 264 "" + let bound_vars = + let _1 = + let xs = +# 253 "" ( List.rev xs ) -# 79967 "src/ocaml/preprocess/parser_raw.ml" - in - +# 78347 "src/ocaml/preprocess/parser_raw.ml" + in + # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 79972 "src/ocaml/preprocess/parser_raw.ml" - - in +# 78352 "src/ocaml/preprocess/parser_raw.ml" + in + # 4481 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 79978 "src/ocaml/preprocess/parser_raw.ml" - - in +# 78358 "src/ocaml/preprocess/parser_raw.ml" + in + # 4732 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 79984 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 78364 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__5_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 79994 "src/ocaml/preprocess/parser_raw.ml" - - in +# 78374 "src/ocaml/preprocess/parser_raw.ml" + in + # 4734 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 80000 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in +# 78380 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__5_ in + # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 80007 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in - let m0 = - let _1 = +# 78387 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in + let m0 = + let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 80015 "src/ocaml/preprocess/parser_raw.ml" - in - +# 78395 "src/ocaml/preprocess/parser_raw.ml" + in + # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 80020 "src/ocaml/preprocess/parser_raw.ml" - - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in +# 78400 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 80030 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = - let _1 = +# 78410 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = + let _1 = # 4637 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 80037 "src/ocaml/preprocess/parser_raw.ml" - in - +# 78417 "src/ocaml/preprocess/parser_raw.ml" + in + # 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 80042 "src/ocaml/preprocess/parser_raw.ml" - - in +# 78422 "src/ocaml/preprocess/parser_raw.ml" + in + # 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 80052 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos_ty_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 78432 "src/ocaml/preprocess/parser_raw.ml" + in + let (_endpos__1_, _startpos__1_) = (_endpos_ty_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 80062 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 78442 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 80068 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type)) - in +# 78448 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -80157,161 +78536,159 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos__1_inlined3_ in - let _v = + let _v : (Parsetree.core_type) = let _1 = let _1 = - let _1 = - let codomain_with_modes = - let (_1_inlined1, _1) = (_1_inlined3, _1_inlined2) in - let m1 = - let _1 = _1_inlined1 in - + let codomain_with_modes = + let (_1_inlined1, _1) = (_1_inlined3, _1_inlined2) in + let m1 = + let _1 = _1_inlined1 in + # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 80171 "src/ocaml/preprocess/parser_raw.ml" - - in - let m0 = - let _1 = +# 78549 "src/ocaml/preprocess/parser_raw.ml" + + in + let m0 = + let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 80178 "src/ocaml/preprocess/parser_raw.ml" - in - +# 78556 "src/ocaml/preprocess/parser_raw.ml" + in + # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 80183 "src/ocaml/preprocess/parser_raw.ml" - - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in +# 78561 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 80193 "src/ocaml/preprocess/parser_raw.ml" - - in - let domain_with_modes = - let m1 = +# 78571 "src/ocaml/preprocess/parser_raw.ml" + + in + let domain_with_modes = + let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 80200 "src/ocaml/preprocess/parser_raw.ml" - in - let ty = - let _startpos__1_ = _startpos__1_inlined1_ in +# 78578 "src/ocaml/preprocess/parser_raw.ml" + in + let ty = + let _startpos__1_ = _startpos__1_inlined1_ in + let _1 = let _1 = let _1 = - let _1 = - let bound_vars = - let _1 = - let xs = -# 264 "" + let bound_vars = + let _1 = + let xs = +# 253 "" ( List.rev xs ) -# 80212 "src/ocaml/preprocess/parser_raw.ml" - in - +# 78590 "src/ocaml/preprocess/parser_raw.ml" + in + # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 80217 "src/ocaml/preprocess/parser_raw.ml" - - in +# 78595 "src/ocaml/preprocess/parser_raw.ml" + in + # 4481 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 80223 "src/ocaml/preprocess/parser_raw.ml" - - in +# 78601 "src/ocaml/preprocess/parser_raw.ml" + in + # 4732 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 80229 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 78607 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__5_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 80239 "src/ocaml/preprocess/parser_raw.ml" - - in +# 78617 "src/ocaml/preprocess/parser_raw.ml" + in + # 4734 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 80245 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in +# 78623 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__5_ in + # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 80252 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in - let m0 = - let _1 = +# 78630 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in + let m0 = + let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 80260 "src/ocaml/preprocess/parser_raw.ml" - in - +# 78638 "src/ocaml/preprocess/parser_raw.ml" + in + # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 80265 "src/ocaml/preprocess/parser_raw.ml" - - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in +# 78643 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 80275 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = - let _1 = +# 78653 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = + let _1 = # 4637 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 80282 "src/ocaml/preprocess/parser_raw.ml" - in - +# 78660 "src/ocaml/preprocess/parser_raw.ml" + in + # 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 80287 "src/ocaml/preprocess/parser_raw.ml" - - in +# 78665 "src/ocaml/preprocess/parser_raw.ml" + in + # 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 80297 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined3_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 78675 "src/ocaml/preprocess/parser_raw.ml" + in + let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined3_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 80307 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 78685 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 80313 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type)) - in +# 78691 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -80395,153 +78772,151 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos_ty_ in - let _v = + let _v : (Parsetree.core_type) = let _1 = let _1 = - let _1 = - let codomain_with_modes = - let m1 = + let codomain_with_modes = + let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 80406 "src/ocaml/preprocess/parser_raw.ml" - in - let m0 = +# 78782 "src/ocaml/preprocess/parser_raw.ml" + in + let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 80411 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - +# 78787 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 80420 "src/ocaml/preprocess/parser_raw.ml" +# 78796 "src/ocaml/preprocess/parser_raw.ml" + + in + let domain_with_modes = + let m1 = + let _1 = _1_inlined2 in - in - let domain_with_modes = - let m1 = - let _1 = _1_inlined2 in - # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 80429 "src/ocaml/preprocess/parser_raw.ml" - - in - let ty = - let _startpos__1_ = _startpos__1_inlined1_ in +# 78805 "src/ocaml/preprocess/parser_raw.ml" + + in + let ty = + let _startpos__1_ = _startpos__1_inlined1_ in + let _1 = let _1 = let _1 = - let _1 = - let bound_vars = - let _1 = - let xs = -# 264 "" + let bound_vars = + let _1 = + let xs = +# 253 "" ( List.rev xs ) -# 80442 "src/ocaml/preprocess/parser_raw.ml" - in - +# 78818 "src/ocaml/preprocess/parser_raw.ml" + in + # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 80447 "src/ocaml/preprocess/parser_raw.ml" - - in +# 78823 "src/ocaml/preprocess/parser_raw.ml" + in + # 4481 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 80453 "src/ocaml/preprocess/parser_raw.ml" - - in +# 78829 "src/ocaml/preprocess/parser_raw.ml" + in + # 4732 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 80459 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 78835 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__5_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 80469 "src/ocaml/preprocess/parser_raw.ml" - - in +# 78845 "src/ocaml/preprocess/parser_raw.ml" + in + # 4734 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 80475 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in +# 78851 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__5_ in + # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 80482 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in - let m0 = - let _1 = +# 78858 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in + let m0 = + let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 80490 "src/ocaml/preprocess/parser_raw.ml" - in - +# 78866 "src/ocaml/preprocess/parser_raw.ml" + in + # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 80495 "src/ocaml/preprocess/parser_raw.ml" - - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in +# 78871 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 80505 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = - let _1 = +# 78881 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = + let _1 = # 4637 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 80512 "src/ocaml/preprocess/parser_raw.ml" - in - +# 78888 "src/ocaml/preprocess/parser_raw.ml" + in + # 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 80517 "src/ocaml/preprocess/parser_raw.ml" - - in +# 78893 "src/ocaml/preprocess/parser_raw.ml" + in + # 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 80527 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos_ty_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 78903 "src/ocaml/preprocess/parser_raw.ml" + in + let (_endpos__1_, _startpos__1_) = (_endpos_ty_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 80537 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 78913 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 80543 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type)) - in +# 78919 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -80632,154 +79007,152 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos__1_inlined3_ in - let _v = + let _v : (Parsetree.core_type) = let _1 = let _1 = - let _1 = - let codomain_with_modes = - let _1 = _1_inlined3 in - let m1 = + let codomain_with_modes = + let _1 = _1_inlined3 in + let m1 = # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 80644 "src/ocaml/preprocess/parser_raw.ml" - in - let m0 = +# 79018 "src/ocaml/preprocess/parser_raw.ml" + in + let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 80649 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - +# 79023 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 80658 "src/ocaml/preprocess/parser_raw.ml" +# 79032 "src/ocaml/preprocess/parser_raw.ml" + + in + let domain_with_modes = + let m1 = + let _1 = _1_inlined2 in - in - let domain_with_modes = - let m1 = - let _1 = _1_inlined2 in - # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 80667 "src/ocaml/preprocess/parser_raw.ml" - - in - let ty = - let _startpos__1_ = _startpos__1_inlined1_ in +# 79041 "src/ocaml/preprocess/parser_raw.ml" + + in + let ty = + let _startpos__1_ = _startpos__1_inlined1_ in + let _1 = let _1 = let _1 = - let _1 = - let bound_vars = - let _1 = - let xs = -# 264 "" + let bound_vars = + let _1 = + let xs = +# 253 "" ( List.rev xs ) -# 80680 "src/ocaml/preprocess/parser_raw.ml" - in - +# 79054 "src/ocaml/preprocess/parser_raw.ml" + in + # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 80685 "src/ocaml/preprocess/parser_raw.ml" - - in +# 79059 "src/ocaml/preprocess/parser_raw.ml" + in + # 4481 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 80691 "src/ocaml/preprocess/parser_raw.ml" - - in +# 79065 "src/ocaml/preprocess/parser_raw.ml" + in + # 4732 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 80697 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 79071 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__5_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 80707 "src/ocaml/preprocess/parser_raw.ml" - - in +# 79081 "src/ocaml/preprocess/parser_raw.ml" + in + # 4734 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 80713 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in +# 79087 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__5_ in + # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 80720 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in - let m0 = - let _1 = +# 79094 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in + let m0 = + let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 80728 "src/ocaml/preprocess/parser_raw.ml" - in - +# 79102 "src/ocaml/preprocess/parser_raw.ml" + in + # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 80733 "src/ocaml/preprocess/parser_raw.ml" - - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in +# 79107 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 80743 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = - let _1 = +# 79117 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = + let _1 = # 4637 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 80750 "src/ocaml/preprocess/parser_raw.ml" - in - +# 79124 "src/ocaml/preprocess/parser_raw.ml" + in + # 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 80755 "src/ocaml/preprocess/parser_raw.ml" - - in +# 79129 "src/ocaml/preprocess/parser_raw.ml" + in + # 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 80765 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined3_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 79139 "src/ocaml/preprocess/parser_raw.ml" + in + let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined3_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 80775 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 79149 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 80781 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type)) - in +# 79155 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -80870,161 +79243,159 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos_ty_ in - let _v = + let _v : (Parsetree.core_type) = let _1 = let _1 = - let _1 = - let codomain_with_modes = - let _1 = _1_inlined3 in - let m1 = + let codomain_with_modes = + let _1 = _1_inlined3 in + let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 80882 "src/ocaml/preprocess/parser_raw.ml" - in - let m0 = - let _1 = +# 79254 "src/ocaml/preprocess/parser_raw.ml" + in + let m0 = + let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 80888 "src/ocaml/preprocess/parser_raw.ml" - in - +# 79260 "src/ocaml/preprocess/parser_raw.ml" + in + # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 80893 "src/ocaml/preprocess/parser_raw.ml" - - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in +# 79265 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 80903 "src/ocaml/preprocess/parser_raw.ml" +# 79275 "src/ocaml/preprocess/parser_raw.ml" + + in + let domain_with_modes = + let m1 = + let _1 = _1_inlined2 in - in - let domain_with_modes = - let m1 = - let _1 = _1_inlined2 in - # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 80912 "src/ocaml/preprocess/parser_raw.ml" - - in - let ty = - let _startpos__1_ = _startpos__1_inlined1_ in +# 79284 "src/ocaml/preprocess/parser_raw.ml" + + in + let ty = + let _startpos__1_ = _startpos__1_inlined1_ in + let _1 = let _1 = let _1 = - let _1 = - let bound_vars = - let _1 = - let xs = -# 264 "" + let bound_vars = + let _1 = + let xs = +# 253 "" ( List.rev xs ) -# 80925 "src/ocaml/preprocess/parser_raw.ml" - in - +# 79297 "src/ocaml/preprocess/parser_raw.ml" + in + # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 80930 "src/ocaml/preprocess/parser_raw.ml" - - in +# 79302 "src/ocaml/preprocess/parser_raw.ml" + in + # 4481 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 80936 "src/ocaml/preprocess/parser_raw.ml" - - in +# 79308 "src/ocaml/preprocess/parser_raw.ml" + in + # 4732 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 80942 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 79314 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__5_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 80952 "src/ocaml/preprocess/parser_raw.ml" - - in +# 79324 "src/ocaml/preprocess/parser_raw.ml" + in + # 4734 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 80958 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in +# 79330 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__5_ in + # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 80965 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in - let m0 = - let _1 = +# 79337 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in + let m0 = + let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 80973 "src/ocaml/preprocess/parser_raw.ml" - in - +# 79345 "src/ocaml/preprocess/parser_raw.ml" + in + # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 80978 "src/ocaml/preprocess/parser_raw.ml" - - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in +# 79350 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 80988 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = - let _1 = +# 79360 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = + let _1 = # 4637 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 80995 "src/ocaml/preprocess/parser_raw.ml" - in - +# 79367 "src/ocaml/preprocess/parser_raw.ml" + in + # 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 81000 "src/ocaml/preprocess/parser_raw.ml" - - in +# 79372 "src/ocaml/preprocess/parser_raw.ml" + in + # 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 81010 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos_ty_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 79382 "src/ocaml/preprocess/parser_raw.ml" + in + let (_endpos__1_, _startpos__1_) = (_endpos_ty_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 81020 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 79392 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 81026 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type)) - in +# 79398 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -81122,164 +79493,162 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos__1_inlined4_ in - let _v = + let _v : (Parsetree.core_type) = let _1 = let _1 = - let _1 = - let codomain_with_modes = - let (_1_inlined1, _1) = (_1_inlined4, _1_inlined3) in - let m1 = - let _1 = _1_inlined1 in - + let codomain_with_modes = + let (_1_inlined1, _1) = (_1_inlined4, _1_inlined3) in + let m1 = + let _1 = _1_inlined1 in + # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 81136 "src/ocaml/preprocess/parser_raw.ml" - - in - let m0 = - let _1 = +# 79506 "src/ocaml/preprocess/parser_raw.ml" + + in + let m0 = + let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 81143 "src/ocaml/preprocess/parser_raw.ml" - in - +# 79513 "src/ocaml/preprocess/parser_raw.ml" + in + # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 81148 "src/ocaml/preprocess/parser_raw.ml" - - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in +# 79518 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 81158 "src/ocaml/preprocess/parser_raw.ml" +# 79528 "src/ocaml/preprocess/parser_raw.ml" + + in + let domain_with_modes = + let m1 = + let _1 = _1_inlined2 in - in - let domain_with_modes = - let m1 = - let _1 = _1_inlined2 in - # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 81167 "src/ocaml/preprocess/parser_raw.ml" - - in - let ty = - let _startpos__1_ = _startpos__1_inlined1_ in +# 79537 "src/ocaml/preprocess/parser_raw.ml" + + in + let ty = + let _startpos__1_ = _startpos__1_inlined1_ in + let _1 = let _1 = let _1 = - let _1 = - let bound_vars = - let _1 = - let xs = -# 264 "" + let bound_vars = + let _1 = + let xs = +# 253 "" ( List.rev xs ) -# 81180 "src/ocaml/preprocess/parser_raw.ml" - in - +# 79550 "src/ocaml/preprocess/parser_raw.ml" + in + # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 81185 "src/ocaml/preprocess/parser_raw.ml" - - in +# 79555 "src/ocaml/preprocess/parser_raw.ml" + in + # 4481 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 81191 "src/ocaml/preprocess/parser_raw.ml" - - in +# 79561 "src/ocaml/preprocess/parser_raw.ml" + in + # 4732 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 81197 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 79567 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__5_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 81207 "src/ocaml/preprocess/parser_raw.ml" - - in +# 79577 "src/ocaml/preprocess/parser_raw.ml" + in + # 4734 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 81213 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in +# 79583 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__5_ in + # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 81220 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in - let m0 = - let _1 = +# 79590 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in + let m0 = + let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 81228 "src/ocaml/preprocess/parser_raw.ml" - in - +# 79598 "src/ocaml/preprocess/parser_raw.ml" + in + # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 81233 "src/ocaml/preprocess/parser_raw.ml" - - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in +# 79603 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 81243 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = - let _1 = +# 79613 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = + let _1 = # 4637 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 81250 "src/ocaml/preprocess/parser_raw.ml" - in - +# 79620 "src/ocaml/preprocess/parser_raw.ml" + in + # 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 81255 "src/ocaml/preprocess/parser_raw.ml" - - in +# 79625 "src/ocaml/preprocess/parser_raw.ml" + in + # 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 81265 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined4_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 79635 "src/ocaml/preprocess/parser_raw.ml" + in + let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined4_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 81275 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 79645 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 81281 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type)) - in +# 79651 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -81328,110 +79697,108 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos_ty_inlined1_ in - let _v = + let _v : (Parsetree.core_type) = let _1 = let _1 = - let _1 = - let codomain_with_modes = - let (_endpos_ty_, _startpos_ty_, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1) in - let m1 = + let codomain_with_modes = + let (_endpos_ty_, _startpos_ty_, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1) in + let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 81340 "src/ocaml/preprocess/parser_raw.ml" - in - let m0 = +# 79708 "src/ocaml/preprocess/parser_raw.ml" + in + let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 81345 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - +# 79713 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 81354 "src/ocaml/preprocess/parser_raw.ml" - - in - let domain_with_modes = - let m1 = +# 79722 "src/ocaml/preprocess/parser_raw.ml" + + in + let domain_with_modes = + let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 81361 "src/ocaml/preprocess/parser_raw.ml" - in - let ty = - let _1 = +# 79729 "src/ocaml/preprocess/parser_raw.ml" + in + let ty = + let _1 = # 4736 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 81367 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos__1_ = _endpos_ty_ in - +# 79735 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos_ty_ in + # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 81373 "src/ocaml/preprocess/parser_raw.ml" - - in - let m0 = - let _1 = +# 79741 "src/ocaml/preprocess/parser_raw.ml" + + in + let m0 = + let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 81380 "src/ocaml/preprocess/parser_raw.ml" - in - +# 79748 "src/ocaml/preprocess/parser_raw.ml" + in + # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 81385 "src/ocaml/preprocess/parser_raw.ml" - - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in +# 79753 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 81395 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = - let _1 = +# 79763 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = + let _1 = # 4637 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 81402 "src/ocaml/preprocess/parser_raw.ml" - in - +# 79770 "src/ocaml/preprocess/parser_raw.ml" + in + # 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 81407 "src/ocaml/preprocess/parser_raw.ml" - - in +# 79775 "src/ocaml/preprocess/parser_raw.ml" + in + # 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 81417 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 79785 "src/ocaml/preprocess/parser_raw.ml" + in + let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 81427 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 79795 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 81433 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type)) - in +# 79801 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -81487,110 +79854,108 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos__1_inlined1_ in - let _v = + let _v : (Parsetree.core_type) = let _1 = let _1 = - let _1 = - let codomain_with_modes = - let (_endpos_ty_, _startpos_ty_, _1, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, _1_inlined1, ty_inlined1) in - let m1 = + let codomain_with_modes = + let (_endpos_ty_, _startpos_ty_, _1, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, _1_inlined1, ty_inlined1) in + let m1 = # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 81499 "src/ocaml/preprocess/parser_raw.ml" - in - let m0 = +# 79865 "src/ocaml/preprocess/parser_raw.ml" + in + let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 81504 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - +# 79870 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 81513 "src/ocaml/preprocess/parser_raw.ml" - - in - let domain_with_modes = - let m1 = +# 79879 "src/ocaml/preprocess/parser_raw.ml" + + in + let domain_with_modes = + let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 81520 "src/ocaml/preprocess/parser_raw.ml" - in - let ty = - let _1 = +# 79886 "src/ocaml/preprocess/parser_raw.ml" + in + let ty = + let _1 = # 4736 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 81526 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos__1_ = _endpos_ty_ in - +# 79892 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos_ty_ in + # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 81532 "src/ocaml/preprocess/parser_raw.ml" - - in - let m0 = - let _1 = +# 79898 "src/ocaml/preprocess/parser_raw.ml" + + in + let m0 = + let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 81539 "src/ocaml/preprocess/parser_raw.ml" - in - +# 79905 "src/ocaml/preprocess/parser_raw.ml" + in + # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 81544 "src/ocaml/preprocess/parser_raw.ml" - - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in +# 79910 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 81554 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = - let _1 = +# 79920 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = + let _1 = # 4637 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 81561 "src/ocaml/preprocess/parser_raw.ml" - in - +# 79927 "src/ocaml/preprocess/parser_raw.ml" + in + # 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 81566 "src/ocaml/preprocess/parser_raw.ml" - - in +# 79932 "src/ocaml/preprocess/parser_raw.ml" + in + # 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 81576 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 79942 "src/ocaml/preprocess/parser_raw.ml" + in + let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 81586 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 79952 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 81592 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type)) - in +# 79958 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -81646,117 +80011,115 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos_ty_inlined1_ in - let _v = + let _v : (Parsetree.core_type) = let _1 = let _1 = - let _1 = - let codomain_with_modes = - let (_endpos_ty_, _startpos_ty_, ty, _1) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1, _1_inlined1) in - let m1 = + let codomain_with_modes = + let (_endpos_ty_, _startpos_ty_, ty, _1) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1, _1_inlined1) in + let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 81658 "src/ocaml/preprocess/parser_raw.ml" - in - let m0 = - let _1 = +# 80022 "src/ocaml/preprocess/parser_raw.ml" + in + let m0 = + let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 81664 "src/ocaml/preprocess/parser_raw.ml" - in - +# 80028 "src/ocaml/preprocess/parser_raw.ml" + in + # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 81669 "src/ocaml/preprocess/parser_raw.ml" - - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in +# 80033 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 81679 "src/ocaml/preprocess/parser_raw.ml" - - in - let domain_with_modes = - let m1 = +# 80043 "src/ocaml/preprocess/parser_raw.ml" + + in + let domain_with_modes = + let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 81686 "src/ocaml/preprocess/parser_raw.ml" - in - let ty = - let _1 = +# 80050 "src/ocaml/preprocess/parser_raw.ml" + in + let ty = + let _1 = # 4736 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 81692 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos__1_ = _endpos_ty_ in - +# 80056 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos_ty_ in + # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 81698 "src/ocaml/preprocess/parser_raw.ml" - - in - let m0 = - let _1 = +# 80062 "src/ocaml/preprocess/parser_raw.ml" + + in + let m0 = + let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 81705 "src/ocaml/preprocess/parser_raw.ml" - in - +# 80069 "src/ocaml/preprocess/parser_raw.ml" + in + # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 81710 "src/ocaml/preprocess/parser_raw.ml" - - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in +# 80074 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 81720 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = - let _1 = +# 80084 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = + let _1 = # 4637 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 81727 "src/ocaml/preprocess/parser_raw.ml" - in - +# 80091 "src/ocaml/preprocess/parser_raw.ml" + in + # 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 81732 "src/ocaml/preprocess/parser_raw.ml" - - in +# 80096 "src/ocaml/preprocess/parser_raw.ml" + in + # 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 81742 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 80106 "src/ocaml/preprocess/parser_raw.ml" + in + let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 81752 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 80116 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 81758 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type)) - in +# 80122 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -81819,120 +80182,118 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos__1_inlined2_ in - let _v = + let _v : (Parsetree.core_type) = let _1 = let _1 = - let _1 = - let codomain_with_modes = - let (_endpos_ty_, _startpos_ty_, _1_inlined1, ty, _1) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, _1_inlined2, ty_inlined1, _1_inlined1) in - let m1 = - let _1 = _1_inlined1 in - + let codomain_with_modes = + let (_endpos_ty_, _startpos_ty_, _1_inlined1, ty, _1) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, _1_inlined2, ty_inlined1, _1_inlined1) in + let m1 = + let _1 = _1_inlined1 in + # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 81833 "src/ocaml/preprocess/parser_raw.ml" - - in - let m0 = - let _1 = +# 80195 "src/ocaml/preprocess/parser_raw.ml" + + in + let m0 = + let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 81840 "src/ocaml/preprocess/parser_raw.ml" - in - +# 80202 "src/ocaml/preprocess/parser_raw.ml" + in + # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 81845 "src/ocaml/preprocess/parser_raw.ml" - - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in +# 80207 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 81855 "src/ocaml/preprocess/parser_raw.ml" - - in - let domain_with_modes = - let m1 = +# 80217 "src/ocaml/preprocess/parser_raw.ml" + + in + let domain_with_modes = + let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 81862 "src/ocaml/preprocess/parser_raw.ml" - in - let ty = - let _1 = +# 80224 "src/ocaml/preprocess/parser_raw.ml" + in + let ty = + let _1 = # 4736 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 81868 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos__1_ = _endpos_ty_ in - +# 80230 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos_ty_ in + # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 81874 "src/ocaml/preprocess/parser_raw.ml" - - in - let m0 = - let _1 = +# 80236 "src/ocaml/preprocess/parser_raw.ml" + + in + let m0 = + let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 81881 "src/ocaml/preprocess/parser_raw.ml" - in - +# 80243 "src/ocaml/preprocess/parser_raw.ml" + in + # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 81886 "src/ocaml/preprocess/parser_raw.ml" - - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in +# 80248 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 81896 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = - let _1 = +# 80258 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = + let _1 = # 4637 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 81903 "src/ocaml/preprocess/parser_raw.ml" - in - +# 80265 "src/ocaml/preprocess/parser_raw.ml" + in + # 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 81908 "src/ocaml/preprocess/parser_raw.ml" - - in +# 80270 "src/ocaml/preprocess/parser_raw.ml" + in + # 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 81918 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined2_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 80280 "src/ocaml/preprocess/parser_raw.ml" + in + let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined2_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 81928 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 80290 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 81934 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type)) - in +# 80296 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -81988,113 +80349,111 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos_ty_inlined1_ in - let _v = + let _v : (Parsetree.core_type) = let _1 = let _1 = - let _1 = - let codomain_with_modes = - let (_endpos_ty_, _startpos_ty_, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1) in - let m1 = + let codomain_with_modes = + let (_endpos_ty_, _startpos_ty_, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1) in + let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 82000 "src/ocaml/preprocess/parser_raw.ml" - in - let m0 = +# 80360 "src/ocaml/preprocess/parser_raw.ml" + in + let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 82005 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - +# 80365 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 82014 "src/ocaml/preprocess/parser_raw.ml" +# 80374 "src/ocaml/preprocess/parser_raw.ml" + + in + let domain_with_modes = + let m1 = + let _1 = _1_inlined1 in - in - let domain_with_modes = - let m1 = - let _1 = _1_inlined1 in - # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 82023 "src/ocaml/preprocess/parser_raw.ml" - - in - let ty = - let _1 = +# 80383 "src/ocaml/preprocess/parser_raw.ml" + + in + let ty = + let _1 = # 4736 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 82030 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos__1_ = _endpos_ty_ in - +# 80390 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos_ty_ in + # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 82036 "src/ocaml/preprocess/parser_raw.ml" - - in - let m0 = - let _1 = +# 80396 "src/ocaml/preprocess/parser_raw.ml" + + in + let m0 = + let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 82043 "src/ocaml/preprocess/parser_raw.ml" - in - +# 80403 "src/ocaml/preprocess/parser_raw.ml" + in + # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 82048 "src/ocaml/preprocess/parser_raw.ml" - - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in +# 80408 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 82058 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = - let _1 = +# 80418 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = + let _1 = # 4637 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 82065 "src/ocaml/preprocess/parser_raw.ml" - in - +# 80425 "src/ocaml/preprocess/parser_raw.ml" + in + # 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 82070 "src/ocaml/preprocess/parser_raw.ml" - - in +# 80430 "src/ocaml/preprocess/parser_raw.ml" + in + # 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 82080 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 80440 "src/ocaml/preprocess/parser_raw.ml" + in + let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 82090 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 80450 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 82096 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type)) - in +# 80456 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -82157,113 +80516,111 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos__1_inlined2_ in - let _v = + let _v : (Parsetree.core_type) = let _1 = let _1 = - let _1 = - let codomain_with_modes = - let (_endpos_ty_, _startpos_ty_, _1, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, _1_inlined2, ty_inlined1) in - let m1 = + let codomain_with_modes = + let (_endpos_ty_, _startpos_ty_, _1, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, _1_inlined2, ty_inlined1) in + let m1 = # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 82169 "src/ocaml/preprocess/parser_raw.ml" - in - let m0 = +# 80527 "src/ocaml/preprocess/parser_raw.ml" + in + let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 82174 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - +# 80532 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 82183 "src/ocaml/preprocess/parser_raw.ml" +# 80541 "src/ocaml/preprocess/parser_raw.ml" + + in + let domain_with_modes = + let m1 = + let _1 = _1_inlined1 in - in - let domain_with_modes = - let m1 = - let _1 = _1_inlined1 in - # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 82192 "src/ocaml/preprocess/parser_raw.ml" - - in - let ty = - let _1 = +# 80550 "src/ocaml/preprocess/parser_raw.ml" + + in + let ty = + let _1 = # 4736 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 82199 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos__1_ = _endpos_ty_ in - +# 80557 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos_ty_ in + # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 82205 "src/ocaml/preprocess/parser_raw.ml" - - in - let m0 = - let _1 = +# 80563 "src/ocaml/preprocess/parser_raw.ml" + + in + let m0 = + let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 82212 "src/ocaml/preprocess/parser_raw.ml" - in - +# 80570 "src/ocaml/preprocess/parser_raw.ml" + in + # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 82217 "src/ocaml/preprocess/parser_raw.ml" - - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in +# 80575 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 82227 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = - let _1 = +# 80585 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = + let _1 = # 4637 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 82234 "src/ocaml/preprocess/parser_raw.ml" - in - +# 80592 "src/ocaml/preprocess/parser_raw.ml" + in + # 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 82239 "src/ocaml/preprocess/parser_raw.ml" - - in +# 80597 "src/ocaml/preprocess/parser_raw.ml" + in + # 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 82249 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined2_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 80607 "src/ocaml/preprocess/parser_raw.ml" + in + let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined2_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 82259 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 80617 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 82265 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type)) - in +# 80623 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -82326,120 +80683,118 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos_ty_inlined1_ in - let _v = + let _v : (Parsetree.core_type) = let _1 = let _1 = - let _1 = - let codomain_with_modes = - let (_endpos_ty_, _startpos_ty_, ty, _1) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1, _1_inlined2) in - let m1 = + let codomain_with_modes = + let (_endpos_ty_, _startpos_ty_, ty, _1) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1, _1_inlined2) in + let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 82338 "src/ocaml/preprocess/parser_raw.ml" - in - let m0 = - let _1 = +# 80694 "src/ocaml/preprocess/parser_raw.ml" + in + let m0 = + let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 82344 "src/ocaml/preprocess/parser_raw.ml" - in - +# 80700 "src/ocaml/preprocess/parser_raw.ml" + in + # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 82349 "src/ocaml/preprocess/parser_raw.ml" - - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in +# 80705 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 82359 "src/ocaml/preprocess/parser_raw.ml" +# 80715 "src/ocaml/preprocess/parser_raw.ml" + + in + let domain_with_modes = + let m1 = + let _1 = _1_inlined1 in - in - let domain_with_modes = - let m1 = - let _1 = _1_inlined1 in - # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 82368 "src/ocaml/preprocess/parser_raw.ml" - - in - let ty = - let _1 = +# 80724 "src/ocaml/preprocess/parser_raw.ml" + + in + let ty = + let _1 = # 4736 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 82375 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos__1_ = _endpos_ty_ in - +# 80731 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos_ty_ in + # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 82381 "src/ocaml/preprocess/parser_raw.ml" - - in - let m0 = - let _1 = +# 80737 "src/ocaml/preprocess/parser_raw.ml" + + in + let m0 = + let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 82388 "src/ocaml/preprocess/parser_raw.ml" - in - +# 80744 "src/ocaml/preprocess/parser_raw.ml" + in + # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 82393 "src/ocaml/preprocess/parser_raw.ml" - - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in +# 80749 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 82403 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = - let _1 = +# 80759 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = + let _1 = # 4637 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 82410 "src/ocaml/preprocess/parser_raw.ml" - in - +# 80766 "src/ocaml/preprocess/parser_raw.ml" + in + # 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 82415 "src/ocaml/preprocess/parser_raw.ml" - - in +# 80771 "src/ocaml/preprocess/parser_raw.ml" + in + # 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 82425 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 80781 "src/ocaml/preprocess/parser_raw.ml" + in + let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 82435 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 80791 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 82441 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type)) - in +# 80797 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -82509,123 +80864,121 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos__1_inlined3_ in - let _v = + let _v : (Parsetree.core_type) = let _1 = let _1 = - let _1 = - let codomain_with_modes = - let (_endpos_ty_, _startpos_ty_, _1_inlined1, ty, _1) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, _1_inlined3, ty_inlined1, _1_inlined2) in - let m1 = - let _1 = _1_inlined1 in - + let codomain_with_modes = + let (_endpos_ty_, _startpos_ty_, _1_inlined1, ty, _1) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, _1_inlined3, ty_inlined1, _1_inlined2) in + let m1 = + let _1 = _1_inlined1 in + # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 82523 "src/ocaml/preprocess/parser_raw.ml" - - in - let m0 = - let _1 = +# 80877 "src/ocaml/preprocess/parser_raw.ml" + + in + let m0 = + let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 82530 "src/ocaml/preprocess/parser_raw.ml" - in - +# 80884 "src/ocaml/preprocess/parser_raw.ml" + in + # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 82535 "src/ocaml/preprocess/parser_raw.ml" - - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in +# 80889 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 82545 "src/ocaml/preprocess/parser_raw.ml" +# 80899 "src/ocaml/preprocess/parser_raw.ml" + + in + let domain_with_modes = + let m1 = + let _1 = _1_inlined1 in - in - let domain_with_modes = - let m1 = - let _1 = _1_inlined1 in - # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 82554 "src/ocaml/preprocess/parser_raw.ml" - - in - let ty = - let _1 = +# 80908 "src/ocaml/preprocess/parser_raw.ml" + + in + let ty = + let _1 = # 4736 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 82561 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos__1_ = _endpos_ty_ in - +# 80915 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos_ty_ in + # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 82567 "src/ocaml/preprocess/parser_raw.ml" - - in - let m0 = - let _1 = +# 80921 "src/ocaml/preprocess/parser_raw.ml" + + in + let m0 = + let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 82574 "src/ocaml/preprocess/parser_raw.ml" - in - +# 80928 "src/ocaml/preprocess/parser_raw.ml" + in + # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 82579 "src/ocaml/preprocess/parser_raw.ml" - - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in +# 80933 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 82589 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = - let _1 = +# 80943 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = + let _1 = # 4637 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 82596 "src/ocaml/preprocess/parser_raw.ml" - in - +# 80950 "src/ocaml/preprocess/parser_raw.ml" + in + # 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 82601 "src/ocaml/preprocess/parser_raw.ml" - - in +# 80955 "src/ocaml/preprocess/parser_raw.ml" + in + # 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 82611 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined3_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 80965 "src/ocaml/preprocess/parser_raw.ml" + in + let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined3_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 82621 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 80975 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 82627 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type)) - in +# 80981 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -82701,147 +81054,145 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 82705 "src/ocaml/preprocess/parser_raw.ml" +# 81058 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos_ty_ in - let _v = + let _v : (Parsetree.core_type) = let _1 = let _1 = - let _1 = - let codomain_with_modes = - let m1 = + let codomain_with_modes = + let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 82717 "src/ocaml/preprocess/parser_raw.ml" - in - let m0 = +# 81069 "src/ocaml/preprocess/parser_raw.ml" + in + let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 82722 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - +# 81074 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 82731 "src/ocaml/preprocess/parser_raw.ml" - - in - let domain_with_modes = - let m1 = +# 81083 "src/ocaml/preprocess/parser_raw.ml" + + in + let domain_with_modes = + let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 82738 "src/ocaml/preprocess/parser_raw.ml" - in - let ty = +# 81090 "src/ocaml/preprocess/parser_raw.ml" + in + let ty = + let _1 = let _1 = let _1 = - let _1 = - let bound_vars = - let _1 = - let xs = -# 264 "" + let bound_vars = + let _1 = + let xs = +# 253 "" ( List.rev xs ) -# 82749 "src/ocaml/preprocess/parser_raw.ml" - in - +# 81101 "src/ocaml/preprocess/parser_raw.ml" + in + # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 82754 "src/ocaml/preprocess/parser_raw.ml" - - in +# 81106 "src/ocaml/preprocess/parser_raw.ml" + in + # 4481 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 82760 "src/ocaml/preprocess/parser_raw.ml" - - in +# 81112 "src/ocaml/preprocess/parser_raw.ml" + in + # 4732 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 82766 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 81118 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__5_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 82776 "src/ocaml/preprocess/parser_raw.ml" - - in +# 81128 "src/ocaml/preprocess/parser_raw.ml" + in + # 4734 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 82782 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in +# 81134 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__5_ in + # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 82789 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in - let m0 = +# 81141 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in + let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 82796 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - +# 81148 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 82805 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = - let _1 = +# 81157 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = + let _1 = # 4639 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 82812 "src/ocaml/preprocess/parser_raw.ml" - in - +# 81164 "src/ocaml/preprocess/parser_raw.ml" + in + # 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 82817 "src/ocaml/preprocess/parser_raw.ml" - - in +# 81169 "src/ocaml/preprocess/parser_raw.ml" + in + # 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 82827 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos_ty_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 81179 "src/ocaml/preprocess/parser_raw.ml" + in + let (_endpos__1_, _startpos__1_) = (_endpos_ty_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 82837 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 81189 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 82843 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type)) - in +# 81195 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -82924,148 +81275,146 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 82928 "src/ocaml/preprocess/parser_raw.ml" +# 81279 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos__1_inlined1_ in - let _v = + let _v : (Parsetree.core_type) = let _1 = let _1 = - let _1 = - let codomain_with_modes = - let _1 = _1_inlined1 in - let m1 = + let codomain_with_modes = + let _1 = _1_inlined1 in + let m1 = # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 82941 "src/ocaml/preprocess/parser_raw.ml" - in - let m0 = +# 81291 "src/ocaml/preprocess/parser_raw.ml" + in + let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 82946 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - +# 81296 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 82955 "src/ocaml/preprocess/parser_raw.ml" - - in - let domain_with_modes = - let m1 = +# 81305 "src/ocaml/preprocess/parser_raw.ml" + + in + let domain_with_modes = + let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 82962 "src/ocaml/preprocess/parser_raw.ml" - in - let ty = +# 81312 "src/ocaml/preprocess/parser_raw.ml" + in + let ty = + let _1 = let _1 = let _1 = - let _1 = - let bound_vars = - let _1 = - let xs = -# 264 "" + let bound_vars = + let _1 = + let xs = +# 253 "" ( List.rev xs ) -# 82973 "src/ocaml/preprocess/parser_raw.ml" - in - +# 81323 "src/ocaml/preprocess/parser_raw.ml" + in + # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 82978 "src/ocaml/preprocess/parser_raw.ml" - - in +# 81328 "src/ocaml/preprocess/parser_raw.ml" + in + # 4481 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 82984 "src/ocaml/preprocess/parser_raw.ml" - - in +# 81334 "src/ocaml/preprocess/parser_raw.ml" + in + # 4732 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 82990 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 81340 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__5_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 83000 "src/ocaml/preprocess/parser_raw.ml" - - in +# 81350 "src/ocaml/preprocess/parser_raw.ml" + in + # 4734 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 83006 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in +# 81356 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__5_ in + # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 83013 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in - let m0 = +# 81363 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in + let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 83020 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - +# 81370 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 83029 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = - let _1 = +# 81379 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = + let _1 = # 4639 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 83036 "src/ocaml/preprocess/parser_raw.ml" - in - +# 81386 "src/ocaml/preprocess/parser_raw.ml" + in + # 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 83041 "src/ocaml/preprocess/parser_raw.ml" - - in +# 81391 "src/ocaml/preprocess/parser_raw.ml" + in + # 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 83051 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 81401 "src/ocaml/preprocess/parser_raw.ml" + in + let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 83061 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 81411 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 83067 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type)) - in +# 81417 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -83148,155 +81497,153 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 83152 "src/ocaml/preprocess/parser_raw.ml" +# 81501 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos_ty_ in - let _v = + let _v : (Parsetree.core_type) = let _1 = let _1 = - let _1 = - let codomain_with_modes = - let _1 = _1_inlined1 in - let m1 = + let codomain_with_modes = + let _1 = _1_inlined1 in + let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 83165 "src/ocaml/preprocess/parser_raw.ml" - in - let m0 = - let _1 = +# 81513 "src/ocaml/preprocess/parser_raw.ml" + in + let m0 = + let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 83171 "src/ocaml/preprocess/parser_raw.ml" - in - +# 81519 "src/ocaml/preprocess/parser_raw.ml" + in + # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 83176 "src/ocaml/preprocess/parser_raw.ml" - - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in +# 81524 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 83186 "src/ocaml/preprocess/parser_raw.ml" - - in - let domain_with_modes = - let m1 = +# 81534 "src/ocaml/preprocess/parser_raw.ml" + + in + let domain_with_modes = + let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 83193 "src/ocaml/preprocess/parser_raw.ml" - in - let ty = +# 81541 "src/ocaml/preprocess/parser_raw.ml" + in + let ty = + let _1 = let _1 = let _1 = - let _1 = - let bound_vars = - let _1 = - let xs = -# 264 "" + let bound_vars = + let _1 = + let xs = +# 253 "" ( List.rev xs ) -# 83204 "src/ocaml/preprocess/parser_raw.ml" - in - +# 81552 "src/ocaml/preprocess/parser_raw.ml" + in + # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 83209 "src/ocaml/preprocess/parser_raw.ml" - - in +# 81557 "src/ocaml/preprocess/parser_raw.ml" + in + # 4481 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 83215 "src/ocaml/preprocess/parser_raw.ml" - - in +# 81563 "src/ocaml/preprocess/parser_raw.ml" + in + # 4732 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 83221 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 81569 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__5_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 83231 "src/ocaml/preprocess/parser_raw.ml" - - in +# 81579 "src/ocaml/preprocess/parser_raw.ml" + in + # 4734 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 83237 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in +# 81585 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__5_ in + # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 83244 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in - let m0 = +# 81592 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in + let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 83251 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - +# 81599 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 83260 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = - let _1 = +# 81608 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = + let _1 = # 4639 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 83267 "src/ocaml/preprocess/parser_raw.ml" - in - +# 81615 "src/ocaml/preprocess/parser_raw.ml" + in + # 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 83272 "src/ocaml/preprocess/parser_raw.ml" - - in +# 81620 "src/ocaml/preprocess/parser_raw.ml" + in + # 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 83282 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos_ty_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 81630 "src/ocaml/preprocess/parser_raw.ml" + in + let (_endpos__1_, _startpos__1_) = (_endpos_ty_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 83292 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 81640 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 83298 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type)) - in +# 81646 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -83386,158 +81733,156 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 83390 "src/ocaml/preprocess/parser_raw.ml" +# 81737 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos__1_inlined2_ in - let _v = + let _v : (Parsetree.core_type) = let _1 = let _1 = - let _1 = - let codomain_with_modes = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let m1 = - let _1 = _1_inlined1 in - + let codomain_with_modes = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in + let m1 = + let _1 = _1_inlined1 in + # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 83405 "src/ocaml/preprocess/parser_raw.ml" - - in - let m0 = - let _1 = +# 81751 "src/ocaml/preprocess/parser_raw.ml" + + in + let m0 = + let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 83412 "src/ocaml/preprocess/parser_raw.ml" - in - +# 81758 "src/ocaml/preprocess/parser_raw.ml" + in + # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 83417 "src/ocaml/preprocess/parser_raw.ml" - - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in +# 81763 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 83427 "src/ocaml/preprocess/parser_raw.ml" - - in - let domain_with_modes = - let m1 = +# 81773 "src/ocaml/preprocess/parser_raw.ml" + + in + let domain_with_modes = + let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 83434 "src/ocaml/preprocess/parser_raw.ml" - in - let ty = +# 81780 "src/ocaml/preprocess/parser_raw.ml" + in + let ty = + let _1 = let _1 = let _1 = - let _1 = - let bound_vars = - let _1 = - let xs = -# 264 "" + let bound_vars = + let _1 = + let xs = +# 253 "" ( List.rev xs ) -# 83445 "src/ocaml/preprocess/parser_raw.ml" - in - +# 81791 "src/ocaml/preprocess/parser_raw.ml" + in + # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 83450 "src/ocaml/preprocess/parser_raw.ml" - - in +# 81796 "src/ocaml/preprocess/parser_raw.ml" + in + # 4481 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 83456 "src/ocaml/preprocess/parser_raw.ml" - - in +# 81802 "src/ocaml/preprocess/parser_raw.ml" + in + # 4732 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 83462 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 81808 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__5_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 83472 "src/ocaml/preprocess/parser_raw.ml" - - in +# 81818 "src/ocaml/preprocess/parser_raw.ml" + in + # 4734 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 83478 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in +# 81824 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__5_ in + # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 83485 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in - let m0 = +# 81831 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in + let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 83492 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - +# 81838 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 83501 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = - let _1 = +# 81847 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = + let _1 = # 4639 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 83508 "src/ocaml/preprocess/parser_raw.ml" - in - +# 81854 "src/ocaml/preprocess/parser_raw.ml" + in + # 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 83513 "src/ocaml/preprocess/parser_raw.ml" - - in +# 81859 "src/ocaml/preprocess/parser_raw.ml" + in + # 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 83523 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined2_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 81869 "src/ocaml/preprocess/parser_raw.ml" + in + let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined2_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 83533 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 81879 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 83539 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type)) - in +# 81885 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -83620,150 +81965,148 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 83624 "src/ocaml/preprocess/parser_raw.ml" +# 81969 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos_ty_ in - let _v = + let _v : (Parsetree.core_type) = let _1 = let _1 = - let _1 = - let codomain_with_modes = - let m1 = + let codomain_with_modes = + let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 83636 "src/ocaml/preprocess/parser_raw.ml" - in - let m0 = +# 81980 "src/ocaml/preprocess/parser_raw.ml" + in + let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 83641 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - +# 81985 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 83650 "src/ocaml/preprocess/parser_raw.ml" +# 81994 "src/ocaml/preprocess/parser_raw.ml" + + in + let domain_with_modes = + let m1 = + let _1 = _1_inlined1 in - in - let domain_with_modes = - let m1 = - let _1 = _1_inlined1 in - # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 83659 "src/ocaml/preprocess/parser_raw.ml" - - in - let ty = +# 82003 "src/ocaml/preprocess/parser_raw.ml" + + in + let ty = + let _1 = let _1 = let _1 = - let _1 = - let bound_vars = - let _1 = - let xs = -# 264 "" + let bound_vars = + let _1 = + let xs = +# 253 "" ( List.rev xs ) -# 83671 "src/ocaml/preprocess/parser_raw.ml" - in - +# 82015 "src/ocaml/preprocess/parser_raw.ml" + in + # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 83676 "src/ocaml/preprocess/parser_raw.ml" - - in +# 82020 "src/ocaml/preprocess/parser_raw.ml" + in + # 4481 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 83682 "src/ocaml/preprocess/parser_raw.ml" - - in +# 82026 "src/ocaml/preprocess/parser_raw.ml" + in + # 4732 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 83688 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 82032 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__5_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 83698 "src/ocaml/preprocess/parser_raw.ml" - - in +# 82042 "src/ocaml/preprocess/parser_raw.ml" + in + # 4734 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 83704 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in +# 82048 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__5_ in + # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 83711 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in - let m0 = +# 82055 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in + let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 83718 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - +# 82062 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 83727 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = - let _1 = +# 82071 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = + let _1 = # 4639 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 83734 "src/ocaml/preprocess/parser_raw.ml" - in - +# 82078 "src/ocaml/preprocess/parser_raw.ml" + in + # 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 83739 "src/ocaml/preprocess/parser_raw.ml" - - in +# 82083 "src/ocaml/preprocess/parser_raw.ml" + in + # 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 83749 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos_ty_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 82093 "src/ocaml/preprocess/parser_raw.ml" + in + let (_endpos__1_, _startpos__1_) = (_endpos_ty_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 83759 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 82103 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 83765 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type)) - in +# 82109 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -83853,151 +82196,149 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 83857 "src/ocaml/preprocess/parser_raw.ml" +# 82200 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos__1_inlined2_ in - let _v = + let _v : (Parsetree.core_type) = let _1 = let _1 = - let _1 = - let codomain_with_modes = - let _1 = _1_inlined2 in - let m1 = + let codomain_with_modes = + let _1 = _1_inlined2 in + let m1 = # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 83870 "src/ocaml/preprocess/parser_raw.ml" - in - let m0 = +# 82212 "src/ocaml/preprocess/parser_raw.ml" + in + let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 83875 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - +# 82217 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 83884 "src/ocaml/preprocess/parser_raw.ml" +# 82226 "src/ocaml/preprocess/parser_raw.ml" + + in + let domain_with_modes = + let m1 = + let _1 = _1_inlined1 in - in - let domain_with_modes = - let m1 = - let _1 = _1_inlined1 in - # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 83893 "src/ocaml/preprocess/parser_raw.ml" - - in - let ty = +# 82235 "src/ocaml/preprocess/parser_raw.ml" + + in + let ty = + let _1 = let _1 = let _1 = - let _1 = - let bound_vars = - let _1 = - let xs = -# 264 "" + let bound_vars = + let _1 = + let xs = +# 253 "" ( List.rev xs ) -# 83905 "src/ocaml/preprocess/parser_raw.ml" - in - +# 82247 "src/ocaml/preprocess/parser_raw.ml" + in + # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 83910 "src/ocaml/preprocess/parser_raw.ml" - - in +# 82252 "src/ocaml/preprocess/parser_raw.ml" + in + # 4481 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 83916 "src/ocaml/preprocess/parser_raw.ml" - - in +# 82258 "src/ocaml/preprocess/parser_raw.ml" + in + # 4732 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 83922 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 82264 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__5_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 83932 "src/ocaml/preprocess/parser_raw.ml" - - in +# 82274 "src/ocaml/preprocess/parser_raw.ml" + in + # 4734 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 83938 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in +# 82280 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__5_ in + # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 83945 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in - let m0 = +# 82287 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in + let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 83952 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - +# 82294 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 83961 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = - let _1 = +# 82303 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = + let _1 = # 4639 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 83968 "src/ocaml/preprocess/parser_raw.ml" - in - +# 82310 "src/ocaml/preprocess/parser_raw.ml" + in + # 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 83973 "src/ocaml/preprocess/parser_raw.ml" - - in +# 82315 "src/ocaml/preprocess/parser_raw.ml" + in + # 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 83983 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined2_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 82325 "src/ocaml/preprocess/parser_raw.ml" + in + let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined2_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 83993 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 82335 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 83999 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type)) - in +# 82341 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -84087,158 +82428,156 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 84091 "src/ocaml/preprocess/parser_raw.ml" +# 82432 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos_ty_ in - let _v = + let _v : (Parsetree.core_type) = let _1 = let _1 = - let _1 = - let codomain_with_modes = - let _1 = _1_inlined2 in - let m1 = + let codomain_with_modes = + let _1 = _1_inlined2 in + let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 84104 "src/ocaml/preprocess/parser_raw.ml" - in - let m0 = - let _1 = +# 82444 "src/ocaml/preprocess/parser_raw.ml" + in + let m0 = + let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 84110 "src/ocaml/preprocess/parser_raw.ml" - in - +# 82450 "src/ocaml/preprocess/parser_raw.ml" + in + # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 84115 "src/ocaml/preprocess/parser_raw.ml" - - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in +# 82455 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 84125 "src/ocaml/preprocess/parser_raw.ml" +# 82465 "src/ocaml/preprocess/parser_raw.ml" + + in + let domain_with_modes = + let m1 = + let _1 = _1_inlined1 in - in - let domain_with_modes = - let m1 = - let _1 = _1_inlined1 in - # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 84134 "src/ocaml/preprocess/parser_raw.ml" - - in - let ty = +# 82474 "src/ocaml/preprocess/parser_raw.ml" + + in + let ty = + let _1 = let _1 = let _1 = - let _1 = - let bound_vars = - let _1 = - let xs = -# 264 "" + let bound_vars = + let _1 = + let xs = +# 253 "" ( List.rev xs ) -# 84146 "src/ocaml/preprocess/parser_raw.ml" - in - +# 82486 "src/ocaml/preprocess/parser_raw.ml" + in + # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 84151 "src/ocaml/preprocess/parser_raw.ml" - - in +# 82491 "src/ocaml/preprocess/parser_raw.ml" + in + # 4481 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 84157 "src/ocaml/preprocess/parser_raw.ml" - - in +# 82497 "src/ocaml/preprocess/parser_raw.ml" + in + # 4732 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 84163 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 82503 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__5_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 84173 "src/ocaml/preprocess/parser_raw.ml" - - in +# 82513 "src/ocaml/preprocess/parser_raw.ml" + in + # 4734 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 84179 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in +# 82519 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__5_ in + # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 84186 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in - let m0 = +# 82526 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in + let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 84193 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - +# 82533 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 84202 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = - let _1 = +# 82542 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = + let _1 = # 4639 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 84209 "src/ocaml/preprocess/parser_raw.ml" - in - +# 82549 "src/ocaml/preprocess/parser_raw.ml" + in + # 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 84214 "src/ocaml/preprocess/parser_raw.ml" - - in +# 82554 "src/ocaml/preprocess/parser_raw.ml" + in + # 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 84224 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos_ty_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 82564 "src/ocaml/preprocess/parser_raw.ml" + in + let (_endpos__1_, _startpos__1_) = (_endpos_ty_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 84234 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 82574 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 84240 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type)) - in +# 82580 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -84335,161 +82674,159 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 84339 "src/ocaml/preprocess/parser_raw.ml" +# 82678 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos__1_inlined3_ in - let _v = + let _v : (Parsetree.core_type) = let _1 = let _1 = - let _1 = - let codomain_with_modes = - let (_1_inlined1, _1) = (_1_inlined3, _1_inlined2) in - let m1 = - let _1 = _1_inlined1 in - + let codomain_with_modes = + let (_1_inlined1, _1) = (_1_inlined3, _1_inlined2) in + let m1 = + let _1 = _1_inlined1 in + # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 84354 "src/ocaml/preprocess/parser_raw.ml" - - in - let m0 = - let _1 = +# 82692 "src/ocaml/preprocess/parser_raw.ml" + + in + let m0 = + let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 84361 "src/ocaml/preprocess/parser_raw.ml" - in - +# 82699 "src/ocaml/preprocess/parser_raw.ml" + in + # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 84366 "src/ocaml/preprocess/parser_raw.ml" - - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in +# 82704 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 84376 "src/ocaml/preprocess/parser_raw.ml" +# 82714 "src/ocaml/preprocess/parser_raw.ml" + + in + let domain_with_modes = + let m1 = + let _1 = _1_inlined1 in - in - let domain_with_modes = - let m1 = - let _1 = _1_inlined1 in - # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 84385 "src/ocaml/preprocess/parser_raw.ml" - - in - let ty = +# 82723 "src/ocaml/preprocess/parser_raw.ml" + + in + let ty = + let _1 = let _1 = let _1 = - let _1 = - let bound_vars = - let _1 = - let xs = -# 264 "" + let bound_vars = + let _1 = + let xs = +# 253 "" ( List.rev xs ) -# 84397 "src/ocaml/preprocess/parser_raw.ml" - in - +# 82735 "src/ocaml/preprocess/parser_raw.ml" + in + # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 84402 "src/ocaml/preprocess/parser_raw.ml" - - in +# 82740 "src/ocaml/preprocess/parser_raw.ml" + in + # 4481 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 84408 "src/ocaml/preprocess/parser_raw.ml" - - in +# 82746 "src/ocaml/preprocess/parser_raw.ml" + in + # 4732 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 84414 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 82752 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__5_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 84424 "src/ocaml/preprocess/parser_raw.ml" - - in +# 82762 "src/ocaml/preprocess/parser_raw.ml" + in + # 4734 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 84430 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in +# 82768 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__5_ in + # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 84437 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in - let m0 = +# 82775 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in + let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 84444 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - +# 82782 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 84453 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = - let _1 = +# 82791 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = + let _1 = # 4639 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 84460 "src/ocaml/preprocess/parser_raw.ml" - in - +# 82798 "src/ocaml/preprocess/parser_raw.ml" + in + # 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 84465 "src/ocaml/preprocess/parser_raw.ml" - - in +# 82803 "src/ocaml/preprocess/parser_raw.ml" + in + # 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 84475 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined3_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 82813 "src/ocaml/preprocess/parser_raw.ml" + in + let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined3_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 84485 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 82823 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 84491 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type)) - in +# 82829 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -84537,108 +82874,106 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 84541 "src/ocaml/preprocess/parser_raw.ml" +# 82878 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos_ty_inlined1_ in - let _v = + let _v : (Parsetree.core_type) = let _1 = let _1 = - let _1 = - let codomain_with_modes = - let (_endpos_ty_, _startpos_ty_, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1) in - let m1 = + let codomain_with_modes = + let (_endpos_ty_, _startpos_ty_, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1) in + let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 84554 "src/ocaml/preprocess/parser_raw.ml" - in - let m0 = +# 82890 "src/ocaml/preprocess/parser_raw.ml" + in + let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 84559 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - +# 82895 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 84568 "src/ocaml/preprocess/parser_raw.ml" - - in - let domain_with_modes = - let m1 = +# 82904 "src/ocaml/preprocess/parser_raw.ml" + + in + let domain_with_modes = + let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 84575 "src/ocaml/preprocess/parser_raw.ml" - in - let ty = - let _1 = +# 82911 "src/ocaml/preprocess/parser_raw.ml" + in + let ty = + let _1 = # 4736 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 84581 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos__1_ = _endpos_ty_ in - +# 82917 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos_ty_ in + # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 84587 "src/ocaml/preprocess/parser_raw.ml" - - in - let m0 = +# 82923 "src/ocaml/preprocess/parser_raw.ml" + + in + let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 84593 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - +# 82929 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 84602 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = - let _1 = +# 82938 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = + let _1 = # 4639 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 84609 "src/ocaml/preprocess/parser_raw.ml" - in - +# 82945 "src/ocaml/preprocess/parser_raw.ml" + in + # 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 84614 "src/ocaml/preprocess/parser_raw.ml" - - in +# 82950 "src/ocaml/preprocess/parser_raw.ml" + in + # 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 84624 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 82960 "src/ocaml/preprocess/parser_raw.ml" + in + let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 84634 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 82970 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 84640 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type)) - in +# 82976 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -84693,108 +83028,106 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 84697 "src/ocaml/preprocess/parser_raw.ml" +# 83032 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos__1_ in - let _v = + let _v : (Parsetree.core_type) = let _1 = let _1 = - let _1 = - let codomain_with_modes = - let (_endpos_ty_, _startpos_ty_, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1) in - let m1 = + let codomain_with_modes = + let (_endpos_ty_, _startpos_ty_, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1) in + let m1 = # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 84710 "src/ocaml/preprocess/parser_raw.ml" - in - let m0 = +# 83044 "src/ocaml/preprocess/parser_raw.ml" + in + let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 84715 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - +# 83049 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 84724 "src/ocaml/preprocess/parser_raw.ml" - - in - let domain_with_modes = - let m1 = +# 83058 "src/ocaml/preprocess/parser_raw.ml" + + in + let domain_with_modes = + let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 84731 "src/ocaml/preprocess/parser_raw.ml" - in - let ty = - let _1 = +# 83065 "src/ocaml/preprocess/parser_raw.ml" + in + let ty = + let _1 = # 4736 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 84737 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos__1_ = _endpos_ty_ in - +# 83071 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos_ty_ in + # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 84743 "src/ocaml/preprocess/parser_raw.ml" - - in - let m0 = +# 83077 "src/ocaml/preprocess/parser_raw.ml" + + in + let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 84749 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - +# 83083 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 84758 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = - let _1 = +# 83092 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = + let _1 = # 4639 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 84765 "src/ocaml/preprocess/parser_raw.ml" - in - +# 83099 "src/ocaml/preprocess/parser_raw.ml" + in + # 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 84770 "src/ocaml/preprocess/parser_raw.ml" - - in +# 83104 "src/ocaml/preprocess/parser_raw.ml" + in + # 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 84780 "src/ocaml/preprocess/parser_raw.ml" - - in - let _startpos__1_ = _startpos_label_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 83114 "src/ocaml/preprocess/parser_raw.ml" + in + let _startpos__1_ = _startpos_label_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 84790 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 83124 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 84796 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type)) - in +# 83130 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -84849,115 +83182,113 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 84853 "src/ocaml/preprocess/parser_raw.ml" +# 83186 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos_ty_inlined1_ in - let _v = + let _v : (Parsetree.core_type) = let _1 = let _1 = - let _1 = - let codomain_with_modes = - let (_endpos_ty_, _startpos_ty_, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1) in - let m1 = + let codomain_with_modes = + let (_endpos_ty_, _startpos_ty_, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1) in + let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 84866 "src/ocaml/preprocess/parser_raw.ml" - in - let m0 = - let _1 = +# 83198 "src/ocaml/preprocess/parser_raw.ml" + in + let m0 = + let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 84872 "src/ocaml/preprocess/parser_raw.ml" - in - +# 83204 "src/ocaml/preprocess/parser_raw.ml" + in + # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 84877 "src/ocaml/preprocess/parser_raw.ml" - - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in +# 83209 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 84887 "src/ocaml/preprocess/parser_raw.ml" - - in - let domain_with_modes = - let m1 = +# 83219 "src/ocaml/preprocess/parser_raw.ml" + + in + let domain_with_modes = + let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 84894 "src/ocaml/preprocess/parser_raw.ml" - in - let ty = - let _1 = +# 83226 "src/ocaml/preprocess/parser_raw.ml" + in + let ty = + let _1 = # 4736 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 84900 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos__1_ = _endpos_ty_ in - +# 83232 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos_ty_ in + # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 84906 "src/ocaml/preprocess/parser_raw.ml" - - in - let m0 = +# 83238 "src/ocaml/preprocess/parser_raw.ml" + + in + let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 84912 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - +# 83244 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 84921 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = - let _1 = +# 83253 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = + let _1 = # 4639 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 84928 "src/ocaml/preprocess/parser_raw.ml" - in - +# 83260 "src/ocaml/preprocess/parser_raw.ml" + in + # 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 84933 "src/ocaml/preprocess/parser_raw.ml" - - in +# 83265 "src/ocaml/preprocess/parser_raw.ml" + in + # 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 84943 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 83275 "src/ocaml/preprocess/parser_raw.ml" + in + let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 84953 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 83285 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 84959 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type)) - in +# 83291 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -85019,118 +83350,116 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 85023 "src/ocaml/preprocess/parser_raw.ml" +# 83354 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos__1_inlined1_ in - let _v = + let _v : (Parsetree.core_type) = let _1 = let _1 = - let _1 = - let codomain_with_modes = - let (_endpos_ty_, _startpos_ty_, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1) in - let m1 = - let _1 = _1_inlined1 in - + let codomain_with_modes = + let (_endpos_ty_, _startpos_ty_, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1) in + let m1 = + let _1 = _1_inlined1 in + # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 85038 "src/ocaml/preprocess/parser_raw.ml" - - in - let m0 = - let _1 = +# 83368 "src/ocaml/preprocess/parser_raw.ml" + + in + let m0 = + let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 85045 "src/ocaml/preprocess/parser_raw.ml" - in - +# 83375 "src/ocaml/preprocess/parser_raw.ml" + in + # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 85050 "src/ocaml/preprocess/parser_raw.ml" - - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in +# 83380 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 85060 "src/ocaml/preprocess/parser_raw.ml" - - in - let domain_with_modes = - let m1 = +# 83390 "src/ocaml/preprocess/parser_raw.ml" + + in + let domain_with_modes = + let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 85067 "src/ocaml/preprocess/parser_raw.ml" - in - let ty = - let _1 = +# 83397 "src/ocaml/preprocess/parser_raw.ml" + in + let ty = + let _1 = # 4736 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 85073 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos__1_ = _endpos_ty_ in - +# 83403 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos_ty_ in + # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 85079 "src/ocaml/preprocess/parser_raw.ml" - - in - let m0 = +# 83409 "src/ocaml/preprocess/parser_raw.ml" + + in + let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 85085 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - +# 83415 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 85094 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = - let _1 = +# 83424 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = + let _1 = # 4639 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 85101 "src/ocaml/preprocess/parser_raw.ml" - in - +# 83431 "src/ocaml/preprocess/parser_raw.ml" + in + # 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 85106 "src/ocaml/preprocess/parser_raw.ml" - - in +# 83436 "src/ocaml/preprocess/parser_raw.ml" + in + # 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 85116 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 83446 "src/ocaml/preprocess/parser_raw.ml" + in + let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 85126 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 83456 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 85132 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type)) - in +# 83462 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -85185,108 +83514,106 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 85189 "src/ocaml/preprocess/parser_raw.ml" +# 83518 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos_ty_inlined1_ in - let _v = + let _v : (Parsetree.core_type) = let _1 = let _1 = - let _1 = - let codomain_with_modes = - let (_endpos_ty_, _startpos_ty_, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1) in - let m1 = + let codomain_with_modes = + let (_endpos_ty_, _startpos_ty_, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1) in + let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 85202 "src/ocaml/preprocess/parser_raw.ml" - in - let m0 = +# 83530 "src/ocaml/preprocess/parser_raw.ml" + in + let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 85207 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - +# 83535 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 85216 "src/ocaml/preprocess/parser_raw.ml" - - in - let domain_with_modes = - let m1 = +# 83544 "src/ocaml/preprocess/parser_raw.ml" + + in + let domain_with_modes = + let m1 = # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 85223 "src/ocaml/preprocess/parser_raw.ml" - in - let ty = - let _1 = +# 83551 "src/ocaml/preprocess/parser_raw.ml" + in + let ty = + let _1 = # 4736 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 85229 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos__1_ = _endpos_ty_ in - +# 83557 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos_ty_ in + # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 85235 "src/ocaml/preprocess/parser_raw.ml" - - in - let m0 = +# 83563 "src/ocaml/preprocess/parser_raw.ml" + + in + let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 85241 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - +# 83569 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 85250 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = - let _1 = +# 83578 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = + let _1 = # 4639 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 85257 "src/ocaml/preprocess/parser_raw.ml" - in - +# 83585 "src/ocaml/preprocess/parser_raw.ml" + in + # 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 85262 "src/ocaml/preprocess/parser_raw.ml" - - in +# 83590 "src/ocaml/preprocess/parser_raw.ml" + in + # 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 85272 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 83600 "src/ocaml/preprocess/parser_raw.ml" + in + let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 85282 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 83610 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 85288 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type)) - in +# 83616 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -85348,108 +83675,106 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 85352 "src/ocaml/preprocess/parser_raw.ml" +# 83679 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos__1_inlined1_ in - let _v = + let _v : (Parsetree.core_type) = let _1 = let _1 = - let _1 = - let codomain_with_modes = - let (_endpos_ty_, _startpos_ty_, _1, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, _1_inlined1, ty_inlined1) in - let m1 = + let codomain_with_modes = + let (_endpos_ty_, _startpos_ty_, _1, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, _1_inlined1, ty_inlined1) in + let m1 = # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 85365 "src/ocaml/preprocess/parser_raw.ml" - in - let m0 = +# 83691 "src/ocaml/preprocess/parser_raw.ml" + in + let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 85370 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - +# 83696 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 85379 "src/ocaml/preprocess/parser_raw.ml" - - in - let domain_with_modes = - let m1 = +# 83705 "src/ocaml/preprocess/parser_raw.ml" + + in + let domain_with_modes = + let m1 = # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 85386 "src/ocaml/preprocess/parser_raw.ml" - in - let ty = - let _1 = +# 83712 "src/ocaml/preprocess/parser_raw.ml" + in + let ty = + let _1 = # 4736 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 85392 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos__1_ = _endpos_ty_ in - +# 83718 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos_ty_ in + # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 85398 "src/ocaml/preprocess/parser_raw.ml" - - in - let m0 = +# 83724 "src/ocaml/preprocess/parser_raw.ml" + + in + let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 85404 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - +# 83730 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 85413 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = - let _1 = +# 83739 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = + let _1 = # 4639 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 85420 "src/ocaml/preprocess/parser_raw.ml" - in - +# 83746 "src/ocaml/preprocess/parser_raw.ml" + in + # 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 85425 "src/ocaml/preprocess/parser_raw.ml" - - in +# 83751 "src/ocaml/preprocess/parser_raw.ml" + in + # 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 85435 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 83761 "src/ocaml/preprocess/parser_raw.ml" + in + let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 85445 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 83771 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 85451 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type)) - in +# 83777 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -85511,115 +83836,113 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 85515 "src/ocaml/preprocess/parser_raw.ml" +# 83840 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos_ty_inlined1_ in - let _v = + let _v : (Parsetree.core_type) = let _1 = let _1 = - let _1 = - let codomain_with_modes = - let (_endpos_ty_, _startpos_ty_, ty, _1) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1, _1_inlined1) in - let m1 = + let codomain_with_modes = + let (_endpos_ty_, _startpos_ty_, ty, _1) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1, _1_inlined1) in + let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 85528 "src/ocaml/preprocess/parser_raw.ml" - in - let m0 = - let _1 = +# 83852 "src/ocaml/preprocess/parser_raw.ml" + in + let m0 = + let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 85534 "src/ocaml/preprocess/parser_raw.ml" - in - +# 83858 "src/ocaml/preprocess/parser_raw.ml" + in + # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 85539 "src/ocaml/preprocess/parser_raw.ml" - - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in +# 83863 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 85549 "src/ocaml/preprocess/parser_raw.ml" - - in - let domain_with_modes = - let m1 = +# 83873 "src/ocaml/preprocess/parser_raw.ml" + + in + let domain_with_modes = + let m1 = # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 85556 "src/ocaml/preprocess/parser_raw.ml" - in - let ty = - let _1 = +# 83880 "src/ocaml/preprocess/parser_raw.ml" + in + let ty = + let _1 = # 4736 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 85562 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos__1_ = _endpos_ty_ in - +# 83886 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos_ty_ in + # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 85568 "src/ocaml/preprocess/parser_raw.ml" - - in - let m0 = +# 83892 "src/ocaml/preprocess/parser_raw.ml" + + in + let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 85574 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - +# 83898 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 85583 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = - let _1 = +# 83907 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = + let _1 = # 4639 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 85590 "src/ocaml/preprocess/parser_raw.ml" - in - +# 83914 "src/ocaml/preprocess/parser_raw.ml" + in + # 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 85595 "src/ocaml/preprocess/parser_raw.ml" - - in +# 83919 "src/ocaml/preprocess/parser_raw.ml" + in + # 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 85605 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 83929 "src/ocaml/preprocess/parser_raw.ml" + in + let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 85615 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 83939 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 85621 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type)) - in +# 83945 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -85688,118 +84011,116 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 85692 "src/ocaml/preprocess/parser_raw.ml" +# 84015 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos__1_inlined2_ in - let _v = + let _v : (Parsetree.core_type) = let _1 = let _1 = - let _1 = - let codomain_with_modes = - let (_endpos_ty_, _startpos_ty_, _1_inlined1, ty, _1) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, _1_inlined2, ty_inlined1, _1_inlined1) in - let m1 = - let _1 = _1_inlined1 in - + let codomain_with_modes = + let (_endpos_ty_, _startpos_ty_, _1_inlined1, ty, _1) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, _1_inlined2, ty_inlined1, _1_inlined1) in + let m1 = + let _1 = _1_inlined1 in + # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 85707 "src/ocaml/preprocess/parser_raw.ml" - - in - let m0 = - let _1 = +# 84029 "src/ocaml/preprocess/parser_raw.ml" + + in + let m0 = + let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 85714 "src/ocaml/preprocess/parser_raw.ml" - in - +# 84036 "src/ocaml/preprocess/parser_raw.ml" + in + # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 85719 "src/ocaml/preprocess/parser_raw.ml" - - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in +# 84041 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 85729 "src/ocaml/preprocess/parser_raw.ml" - - in - let domain_with_modes = - let m1 = +# 84051 "src/ocaml/preprocess/parser_raw.ml" + + in + let domain_with_modes = + let m1 = # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 85736 "src/ocaml/preprocess/parser_raw.ml" - in - let ty = - let _1 = +# 84058 "src/ocaml/preprocess/parser_raw.ml" + in + let ty = + let _1 = # 4736 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 85742 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos__1_ = _endpos_ty_ in - +# 84064 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos_ty_ in + # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 85748 "src/ocaml/preprocess/parser_raw.ml" - - in - let m0 = +# 84070 "src/ocaml/preprocess/parser_raw.ml" + + in + let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 85754 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - +# 84076 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 85763 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = - let _1 = +# 84085 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = + let _1 = # 4639 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 85770 "src/ocaml/preprocess/parser_raw.ml" - in - +# 84092 "src/ocaml/preprocess/parser_raw.ml" + in + # 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 85775 "src/ocaml/preprocess/parser_raw.ml" - - in +# 84097 "src/ocaml/preprocess/parser_raw.ml" + in + # 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 85785 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined2_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 84107 "src/ocaml/preprocess/parser_raw.ml" + in + let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined2_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 85795 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 84117 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 85801 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type)) - in +# 84123 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -85882,155 +84203,153 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 85886 "src/ocaml/preprocess/parser_raw.ml" +# 84207 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos_ty_ in - let _v = + let _v : (Parsetree.core_type) = let _1 = let _1 = - let _1 = - let codomain_with_modes = - let m1 = + let codomain_with_modes = + let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 85898 "src/ocaml/preprocess/parser_raw.ml" - in - let m0 = +# 84218 "src/ocaml/preprocess/parser_raw.ml" + in + let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 85903 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - +# 84223 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 85912 "src/ocaml/preprocess/parser_raw.ml" - - in - let domain_with_modes = - let m1 = +# 84232 "src/ocaml/preprocess/parser_raw.ml" + + in + let domain_with_modes = + let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 85919 "src/ocaml/preprocess/parser_raw.ml" - in - let ty = - let _startpos__1_ = _startpos__1_inlined1_ in +# 84239 "src/ocaml/preprocess/parser_raw.ml" + in + let ty = + let _startpos__1_ = _startpos__1_inlined1_ in + let _1 = let _1 = let _1 = - let _1 = - let bound_vars = - let _1 = - let xs = -# 264 "" + let bound_vars = + let _1 = + let xs = +# 253 "" ( List.rev xs ) -# 85931 "src/ocaml/preprocess/parser_raw.ml" - in - +# 84251 "src/ocaml/preprocess/parser_raw.ml" + in + # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 85936 "src/ocaml/preprocess/parser_raw.ml" - - in +# 84256 "src/ocaml/preprocess/parser_raw.ml" + in + # 4481 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 85942 "src/ocaml/preprocess/parser_raw.ml" - - in +# 84262 "src/ocaml/preprocess/parser_raw.ml" + in + # 4732 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 85948 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 84268 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__5_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 85958 "src/ocaml/preprocess/parser_raw.ml" - - in +# 84278 "src/ocaml/preprocess/parser_raw.ml" + in + # 4734 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 85964 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in +# 84284 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__5_ in + # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 85971 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in - let m0 = - let _1 = +# 84291 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in + let m0 = + let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 85979 "src/ocaml/preprocess/parser_raw.ml" - in - +# 84299 "src/ocaml/preprocess/parser_raw.ml" + in + # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 85984 "src/ocaml/preprocess/parser_raw.ml" - - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in +# 84304 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 85994 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = - let _1 = +# 84314 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = + let _1 = # 4639 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 86001 "src/ocaml/preprocess/parser_raw.ml" - in - +# 84321 "src/ocaml/preprocess/parser_raw.ml" + in + # 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 86006 "src/ocaml/preprocess/parser_raw.ml" - - in +# 84326 "src/ocaml/preprocess/parser_raw.ml" + in + # 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 86016 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos_ty_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 84336 "src/ocaml/preprocess/parser_raw.ml" + in + let (_endpos__1_, _startpos__1_) = (_endpos_ty_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 86026 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 84346 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 86032 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type)) - in +# 84352 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -86120,156 +84439,154 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 86124 "src/ocaml/preprocess/parser_raw.ml" +# 84443 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos__1_inlined2_ in - let _v = + let _v : (Parsetree.core_type) = let _1 = let _1 = - let _1 = - let codomain_with_modes = - let _1 = _1_inlined2 in - let m1 = + let codomain_with_modes = + let _1 = _1_inlined2 in + let m1 = # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 86137 "src/ocaml/preprocess/parser_raw.ml" - in - let m0 = +# 84455 "src/ocaml/preprocess/parser_raw.ml" + in + let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 86142 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - +# 84460 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 86151 "src/ocaml/preprocess/parser_raw.ml" - - in - let domain_with_modes = - let m1 = +# 84469 "src/ocaml/preprocess/parser_raw.ml" + + in + let domain_with_modes = + let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 86158 "src/ocaml/preprocess/parser_raw.ml" - in - let ty = - let _startpos__1_ = _startpos__1_inlined1_ in +# 84476 "src/ocaml/preprocess/parser_raw.ml" + in + let ty = + let _startpos__1_ = _startpos__1_inlined1_ in + let _1 = let _1 = let _1 = - let _1 = - let bound_vars = - let _1 = - let xs = -# 264 "" + let bound_vars = + let _1 = + let xs = +# 253 "" ( List.rev xs ) -# 86170 "src/ocaml/preprocess/parser_raw.ml" - in - +# 84488 "src/ocaml/preprocess/parser_raw.ml" + in + # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 86175 "src/ocaml/preprocess/parser_raw.ml" - - in +# 84493 "src/ocaml/preprocess/parser_raw.ml" + in + # 4481 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 86181 "src/ocaml/preprocess/parser_raw.ml" - - in +# 84499 "src/ocaml/preprocess/parser_raw.ml" + in + # 4732 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 86187 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 84505 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__5_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 86197 "src/ocaml/preprocess/parser_raw.ml" - - in +# 84515 "src/ocaml/preprocess/parser_raw.ml" + in + # 4734 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 86203 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in +# 84521 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__5_ in + # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 86210 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in - let m0 = - let _1 = +# 84528 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in + let m0 = + let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 86218 "src/ocaml/preprocess/parser_raw.ml" - in - +# 84536 "src/ocaml/preprocess/parser_raw.ml" + in + # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 86223 "src/ocaml/preprocess/parser_raw.ml" - - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in +# 84541 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 86233 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = - let _1 = +# 84551 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = + let _1 = # 4639 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 86240 "src/ocaml/preprocess/parser_raw.ml" - in - +# 84558 "src/ocaml/preprocess/parser_raw.ml" + in + # 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 86245 "src/ocaml/preprocess/parser_raw.ml" - - in +# 84563 "src/ocaml/preprocess/parser_raw.ml" + in + # 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 86255 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined2_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 84573 "src/ocaml/preprocess/parser_raw.ml" + in + let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined2_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 86265 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 84583 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 86271 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type)) - in +# 84589 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -86359,163 +84676,161 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 86363 "src/ocaml/preprocess/parser_raw.ml" +# 84680 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos_ty_ in - let _v = + let _v : (Parsetree.core_type) = let _1 = let _1 = - let _1 = - let codomain_with_modes = - let _1 = _1_inlined2 in - let m1 = + let codomain_with_modes = + let _1 = _1_inlined2 in + let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 86376 "src/ocaml/preprocess/parser_raw.ml" - in - let m0 = - let _1 = +# 84692 "src/ocaml/preprocess/parser_raw.ml" + in + let m0 = + let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 86382 "src/ocaml/preprocess/parser_raw.ml" - in - +# 84698 "src/ocaml/preprocess/parser_raw.ml" + in + # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 86387 "src/ocaml/preprocess/parser_raw.ml" - - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in +# 84703 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 86397 "src/ocaml/preprocess/parser_raw.ml" - - in - let domain_with_modes = - let m1 = +# 84713 "src/ocaml/preprocess/parser_raw.ml" + + in + let domain_with_modes = + let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 86404 "src/ocaml/preprocess/parser_raw.ml" - in - let ty = - let _startpos__1_ = _startpos__1_inlined1_ in +# 84720 "src/ocaml/preprocess/parser_raw.ml" + in + let ty = + let _startpos__1_ = _startpos__1_inlined1_ in + let _1 = let _1 = let _1 = - let _1 = - let bound_vars = - let _1 = - let xs = -# 264 "" + let bound_vars = + let _1 = + let xs = +# 253 "" ( List.rev xs ) -# 86416 "src/ocaml/preprocess/parser_raw.ml" - in - +# 84732 "src/ocaml/preprocess/parser_raw.ml" + in + # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 86421 "src/ocaml/preprocess/parser_raw.ml" - - in +# 84737 "src/ocaml/preprocess/parser_raw.ml" + in + # 4481 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 86427 "src/ocaml/preprocess/parser_raw.ml" - - in +# 84743 "src/ocaml/preprocess/parser_raw.ml" + in + # 4732 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 86433 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 84749 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__5_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 86443 "src/ocaml/preprocess/parser_raw.ml" - - in +# 84759 "src/ocaml/preprocess/parser_raw.ml" + in + # 4734 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 86449 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in +# 84765 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__5_ in + # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 86456 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in - let m0 = - let _1 = +# 84772 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in + let m0 = + let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 86464 "src/ocaml/preprocess/parser_raw.ml" - in - +# 84780 "src/ocaml/preprocess/parser_raw.ml" + in + # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 86469 "src/ocaml/preprocess/parser_raw.ml" - - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in +# 84785 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 86479 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = - let _1 = +# 84795 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = + let _1 = # 4639 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 86486 "src/ocaml/preprocess/parser_raw.ml" - in - +# 84802 "src/ocaml/preprocess/parser_raw.ml" + in + # 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 86491 "src/ocaml/preprocess/parser_raw.ml" - - in +# 84807 "src/ocaml/preprocess/parser_raw.ml" + in + # 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 86501 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos_ty_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 84817 "src/ocaml/preprocess/parser_raw.ml" + in + let (_endpos__1_, _startpos__1_) = (_endpos_ty_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 86511 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 84827 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 86517 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type)) - in +# 84833 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -86612,166 +84927,164 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 86616 "src/ocaml/preprocess/parser_raw.ml" +# 84931 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos__1_inlined3_ in - let _v = + let _v : (Parsetree.core_type) = let _1 = let _1 = - let _1 = - let codomain_with_modes = - let (_1_inlined1, _1) = (_1_inlined3, _1_inlined2) in - let m1 = - let _1 = _1_inlined1 in - + let codomain_with_modes = + let (_1_inlined1, _1) = (_1_inlined3, _1_inlined2) in + let m1 = + let _1 = _1_inlined1 in + # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 86631 "src/ocaml/preprocess/parser_raw.ml" - - in - let m0 = - let _1 = +# 84945 "src/ocaml/preprocess/parser_raw.ml" + + in + let m0 = + let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 86638 "src/ocaml/preprocess/parser_raw.ml" - in - +# 84952 "src/ocaml/preprocess/parser_raw.ml" + in + # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 86643 "src/ocaml/preprocess/parser_raw.ml" - - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in +# 84957 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 86653 "src/ocaml/preprocess/parser_raw.ml" - - in - let domain_with_modes = - let m1 = +# 84967 "src/ocaml/preprocess/parser_raw.ml" + + in + let domain_with_modes = + let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 86660 "src/ocaml/preprocess/parser_raw.ml" - in - let ty = - let _startpos__1_ = _startpos__1_inlined1_ in +# 84974 "src/ocaml/preprocess/parser_raw.ml" + in + let ty = + let _startpos__1_ = _startpos__1_inlined1_ in + let _1 = let _1 = let _1 = - let _1 = - let bound_vars = - let _1 = - let xs = -# 264 "" + let bound_vars = + let _1 = + let xs = +# 253 "" ( List.rev xs ) -# 86672 "src/ocaml/preprocess/parser_raw.ml" - in - +# 84986 "src/ocaml/preprocess/parser_raw.ml" + in + # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 86677 "src/ocaml/preprocess/parser_raw.ml" - - in +# 84991 "src/ocaml/preprocess/parser_raw.ml" + in + # 4481 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 86683 "src/ocaml/preprocess/parser_raw.ml" - - in +# 84997 "src/ocaml/preprocess/parser_raw.ml" + in + # 4732 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 86689 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 85003 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__5_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 86699 "src/ocaml/preprocess/parser_raw.ml" - - in +# 85013 "src/ocaml/preprocess/parser_raw.ml" + in + # 4734 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 86705 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in +# 85019 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__5_ in + # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 86712 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in - let m0 = - let _1 = +# 85026 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in + let m0 = + let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 86720 "src/ocaml/preprocess/parser_raw.ml" - in - +# 85034 "src/ocaml/preprocess/parser_raw.ml" + in + # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 86725 "src/ocaml/preprocess/parser_raw.ml" - - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in +# 85039 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 86735 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = - let _1 = +# 85049 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = + let _1 = # 4639 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 86742 "src/ocaml/preprocess/parser_raw.ml" - in - +# 85056 "src/ocaml/preprocess/parser_raw.ml" + in + # 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 86747 "src/ocaml/preprocess/parser_raw.ml" - - in +# 85061 "src/ocaml/preprocess/parser_raw.ml" + in + # 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 86757 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined3_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 85071 "src/ocaml/preprocess/parser_raw.ml" + in + let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined3_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 86767 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 85081 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 86773 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type)) - in +# 85087 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -86861,158 +85174,156 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 86865 "src/ocaml/preprocess/parser_raw.ml" +# 85178 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos_ty_ in - let _v = + let _v : (Parsetree.core_type) = let _1 = let _1 = - let _1 = - let codomain_with_modes = - let m1 = + let codomain_with_modes = + let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 86877 "src/ocaml/preprocess/parser_raw.ml" - in - let m0 = +# 85189 "src/ocaml/preprocess/parser_raw.ml" + in + let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 86882 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - +# 85194 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 86891 "src/ocaml/preprocess/parser_raw.ml" +# 85203 "src/ocaml/preprocess/parser_raw.ml" + + in + let domain_with_modes = + let m1 = + let _1 = _1_inlined2 in - in - let domain_with_modes = - let m1 = - let _1 = _1_inlined2 in - # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 86900 "src/ocaml/preprocess/parser_raw.ml" - - in - let ty = - let _startpos__1_ = _startpos__1_inlined1_ in +# 85212 "src/ocaml/preprocess/parser_raw.ml" + + in + let ty = + let _startpos__1_ = _startpos__1_inlined1_ in + let _1 = let _1 = let _1 = - let _1 = - let bound_vars = - let _1 = - let xs = -# 264 "" + let bound_vars = + let _1 = + let xs = +# 253 "" ( List.rev xs ) -# 86913 "src/ocaml/preprocess/parser_raw.ml" - in - +# 85225 "src/ocaml/preprocess/parser_raw.ml" + in + # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 86918 "src/ocaml/preprocess/parser_raw.ml" - - in +# 85230 "src/ocaml/preprocess/parser_raw.ml" + in + # 4481 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 86924 "src/ocaml/preprocess/parser_raw.ml" - - in +# 85236 "src/ocaml/preprocess/parser_raw.ml" + in + # 4732 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 86930 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 85242 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__5_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 86940 "src/ocaml/preprocess/parser_raw.ml" - - in +# 85252 "src/ocaml/preprocess/parser_raw.ml" + in + # 4734 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 86946 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in +# 85258 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__5_ in + # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 86953 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in - let m0 = - let _1 = +# 85265 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in + let m0 = + let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 86961 "src/ocaml/preprocess/parser_raw.ml" - in - +# 85273 "src/ocaml/preprocess/parser_raw.ml" + in + # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 86966 "src/ocaml/preprocess/parser_raw.ml" - - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in +# 85278 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 86976 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = - let _1 = +# 85288 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = + let _1 = # 4639 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 86983 "src/ocaml/preprocess/parser_raw.ml" - in - +# 85295 "src/ocaml/preprocess/parser_raw.ml" + in + # 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 86988 "src/ocaml/preprocess/parser_raw.ml" - - in +# 85300 "src/ocaml/preprocess/parser_raw.ml" + in + # 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 86998 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos_ty_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 85310 "src/ocaml/preprocess/parser_raw.ml" + in + let (_endpos__1_, _startpos__1_) = (_endpos_ty_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 87008 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 85320 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 87014 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type)) - in +# 85326 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -87109,159 +85420,157 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 87113 "src/ocaml/preprocess/parser_raw.ml" +# 85424 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos__1_inlined3_ in - let _v = + let _v : (Parsetree.core_type) = let _1 = let _1 = - let _1 = - let codomain_with_modes = - let _1 = _1_inlined3 in - let m1 = + let codomain_with_modes = + let _1 = _1_inlined3 in + let m1 = # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 87126 "src/ocaml/preprocess/parser_raw.ml" - in - let m0 = +# 85436 "src/ocaml/preprocess/parser_raw.ml" + in + let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 87131 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - +# 85441 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 87140 "src/ocaml/preprocess/parser_raw.ml" +# 85450 "src/ocaml/preprocess/parser_raw.ml" + + in + let domain_with_modes = + let m1 = + let _1 = _1_inlined2 in - in - let domain_with_modes = - let m1 = - let _1 = _1_inlined2 in - # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 87149 "src/ocaml/preprocess/parser_raw.ml" - - in - let ty = - let _startpos__1_ = _startpos__1_inlined1_ in +# 85459 "src/ocaml/preprocess/parser_raw.ml" + + in + let ty = + let _startpos__1_ = _startpos__1_inlined1_ in + let _1 = let _1 = let _1 = - let _1 = - let bound_vars = - let _1 = - let xs = -# 264 "" + let bound_vars = + let _1 = + let xs = +# 253 "" ( List.rev xs ) -# 87162 "src/ocaml/preprocess/parser_raw.ml" - in - +# 85472 "src/ocaml/preprocess/parser_raw.ml" + in + # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 87167 "src/ocaml/preprocess/parser_raw.ml" - - in +# 85477 "src/ocaml/preprocess/parser_raw.ml" + in + # 4481 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 87173 "src/ocaml/preprocess/parser_raw.ml" - - in +# 85483 "src/ocaml/preprocess/parser_raw.ml" + in + # 4732 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 87179 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 85489 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__5_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 87189 "src/ocaml/preprocess/parser_raw.ml" - - in +# 85499 "src/ocaml/preprocess/parser_raw.ml" + in + # 4734 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 87195 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in +# 85505 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__5_ in + # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 87202 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in - let m0 = - let _1 = +# 85512 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in + let m0 = + let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 87210 "src/ocaml/preprocess/parser_raw.ml" - in - +# 85520 "src/ocaml/preprocess/parser_raw.ml" + in + # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 87215 "src/ocaml/preprocess/parser_raw.ml" - - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in +# 85525 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 87225 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = - let _1 = +# 85535 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = + let _1 = # 4639 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 87232 "src/ocaml/preprocess/parser_raw.ml" - in - +# 85542 "src/ocaml/preprocess/parser_raw.ml" + in + # 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 87237 "src/ocaml/preprocess/parser_raw.ml" - - in +# 85547 "src/ocaml/preprocess/parser_raw.ml" + in + # 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 87247 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined3_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 85557 "src/ocaml/preprocess/parser_raw.ml" + in + let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined3_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 87257 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 85567 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 87263 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type)) - in +# 85573 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -87358,166 +85667,164 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 87362 "src/ocaml/preprocess/parser_raw.ml" +# 85671 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos_ty_ in - let _v = + let _v : (Parsetree.core_type) = let _1 = let _1 = - let _1 = - let codomain_with_modes = - let _1 = _1_inlined3 in - let m1 = + let codomain_with_modes = + let _1 = _1_inlined3 in + let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 87375 "src/ocaml/preprocess/parser_raw.ml" - in - let m0 = - let _1 = +# 85683 "src/ocaml/preprocess/parser_raw.ml" + in + let m0 = + let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 87381 "src/ocaml/preprocess/parser_raw.ml" - in - +# 85689 "src/ocaml/preprocess/parser_raw.ml" + in + # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 87386 "src/ocaml/preprocess/parser_raw.ml" - - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in +# 85694 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 87396 "src/ocaml/preprocess/parser_raw.ml" +# 85704 "src/ocaml/preprocess/parser_raw.ml" + + in + let domain_with_modes = + let m1 = + let _1 = _1_inlined2 in - in - let domain_with_modes = - let m1 = - let _1 = _1_inlined2 in - # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 87405 "src/ocaml/preprocess/parser_raw.ml" - - in - let ty = - let _startpos__1_ = _startpos__1_inlined1_ in +# 85713 "src/ocaml/preprocess/parser_raw.ml" + + in + let ty = + let _startpos__1_ = _startpos__1_inlined1_ in + let _1 = let _1 = let _1 = - let _1 = - let bound_vars = - let _1 = - let xs = -# 264 "" + let bound_vars = + let _1 = + let xs = +# 253 "" ( List.rev xs ) -# 87418 "src/ocaml/preprocess/parser_raw.ml" - in - +# 85726 "src/ocaml/preprocess/parser_raw.ml" + in + # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 87423 "src/ocaml/preprocess/parser_raw.ml" - - in +# 85731 "src/ocaml/preprocess/parser_raw.ml" + in + # 4481 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 87429 "src/ocaml/preprocess/parser_raw.ml" - - in +# 85737 "src/ocaml/preprocess/parser_raw.ml" + in + # 4732 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 87435 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 85743 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__5_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 87445 "src/ocaml/preprocess/parser_raw.ml" - - in +# 85753 "src/ocaml/preprocess/parser_raw.ml" + in + # 4734 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 87451 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in +# 85759 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__5_ in + # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 87458 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in - let m0 = - let _1 = +# 85766 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in + let m0 = + let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 87466 "src/ocaml/preprocess/parser_raw.ml" - in - +# 85774 "src/ocaml/preprocess/parser_raw.ml" + in + # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 87471 "src/ocaml/preprocess/parser_raw.ml" - - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in +# 85779 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 87481 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = - let _1 = +# 85789 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = + let _1 = # 4639 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 87488 "src/ocaml/preprocess/parser_raw.ml" - in - +# 85796 "src/ocaml/preprocess/parser_raw.ml" + in + # 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 87493 "src/ocaml/preprocess/parser_raw.ml" - - in +# 85801 "src/ocaml/preprocess/parser_raw.ml" + in + # 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 87503 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos_ty_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 85811 "src/ocaml/preprocess/parser_raw.ml" + in + let (_endpos__1_, _startpos__1_) = (_endpos_ty_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 87513 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 85821 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 87519 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type)) - in +# 85827 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -87621,169 +85928,167 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 87625 "src/ocaml/preprocess/parser_raw.ml" +# 85932 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos__1_inlined4_ in - let _v = + let _v : (Parsetree.core_type) = let _1 = let _1 = - let _1 = - let codomain_with_modes = - let (_1_inlined1, _1) = (_1_inlined4, _1_inlined3) in - let m1 = - let _1 = _1_inlined1 in - + let codomain_with_modes = + let (_1_inlined1, _1) = (_1_inlined4, _1_inlined3) in + let m1 = + let _1 = _1_inlined1 in + # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 87640 "src/ocaml/preprocess/parser_raw.ml" - - in - let m0 = - let _1 = +# 85946 "src/ocaml/preprocess/parser_raw.ml" + + in + let m0 = + let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 87647 "src/ocaml/preprocess/parser_raw.ml" - in - +# 85953 "src/ocaml/preprocess/parser_raw.ml" + in + # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 87652 "src/ocaml/preprocess/parser_raw.ml" - - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in +# 85958 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 87662 "src/ocaml/preprocess/parser_raw.ml" +# 85968 "src/ocaml/preprocess/parser_raw.ml" + + in + let domain_with_modes = + let m1 = + let _1 = _1_inlined2 in - in - let domain_with_modes = - let m1 = - let _1 = _1_inlined2 in - # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 87671 "src/ocaml/preprocess/parser_raw.ml" - - in - let ty = - let _startpos__1_ = _startpos__1_inlined1_ in +# 85977 "src/ocaml/preprocess/parser_raw.ml" + + in + let ty = + let _startpos__1_ = _startpos__1_inlined1_ in + let _1 = let _1 = let _1 = - let _1 = - let bound_vars = - let _1 = - let xs = -# 264 "" + let bound_vars = + let _1 = + let xs = +# 253 "" ( List.rev xs ) -# 87684 "src/ocaml/preprocess/parser_raw.ml" - in - +# 85990 "src/ocaml/preprocess/parser_raw.ml" + in + # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 87689 "src/ocaml/preprocess/parser_raw.ml" - - in +# 85995 "src/ocaml/preprocess/parser_raw.ml" + in + # 4481 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 87695 "src/ocaml/preprocess/parser_raw.ml" - - in +# 86001 "src/ocaml/preprocess/parser_raw.ml" + in + # 4732 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 87701 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 86007 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__5_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 87711 "src/ocaml/preprocess/parser_raw.ml" - - in +# 86017 "src/ocaml/preprocess/parser_raw.ml" + in + # 4734 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 87717 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in +# 86023 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__5_ in + # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 87724 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in - let m0 = - let _1 = +# 86030 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in + let m0 = + let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 87732 "src/ocaml/preprocess/parser_raw.ml" - in - +# 86038 "src/ocaml/preprocess/parser_raw.ml" + in + # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 87737 "src/ocaml/preprocess/parser_raw.ml" - - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in +# 86043 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 87747 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = - let _1 = +# 86053 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = + let _1 = # 4639 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 87754 "src/ocaml/preprocess/parser_raw.ml" - in - +# 86060 "src/ocaml/preprocess/parser_raw.ml" + in + # 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 87759 "src/ocaml/preprocess/parser_raw.ml" - - in +# 86065 "src/ocaml/preprocess/parser_raw.ml" + in + # 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 87769 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined4_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 86075 "src/ocaml/preprocess/parser_raw.ml" + in + let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined4_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 87779 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 86085 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 87785 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type)) - in +# 86091 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -87838,115 +86143,113 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 87842 "src/ocaml/preprocess/parser_raw.ml" +# 86147 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos_ty_inlined1_ in - let _v = + let _v : (Parsetree.core_type) = let _1 = let _1 = - let _1 = - let codomain_with_modes = - let (_endpos_ty_, _startpos_ty_, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1) in - let m1 = + let codomain_with_modes = + let (_endpos_ty_, _startpos_ty_, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1) in + let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 87855 "src/ocaml/preprocess/parser_raw.ml" - in - let m0 = +# 86159 "src/ocaml/preprocess/parser_raw.ml" + in + let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 87860 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - +# 86164 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 87869 "src/ocaml/preprocess/parser_raw.ml" - - in - let domain_with_modes = - let m1 = +# 86173 "src/ocaml/preprocess/parser_raw.ml" + + in + let domain_with_modes = + let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 87876 "src/ocaml/preprocess/parser_raw.ml" - in - let ty = - let _1 = +# 86180 "src/ocaml/preprocess/parser_raw.ml" + in + let ty = + let _1 = # 4736 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 87882 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos__1_ = _endpos_ty_ in - +# 86186 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos_ty_ in + # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 87888 "src/ocaml/preprocess/parser_raw.ml" - - in - let m0 = - let _1 = +# 86192 "src/ocaml/preprocess/parser_raw.ml" + + in + let m0 = + let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 87895 "src/ocaml/preprocess/parser_raw.ml" - in - +# 86199 "src/ocaml/preprocess/parser_raw.ml" + in + # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 87900 "src/ocaml/preprocess/parser_raw.ml" - - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in +# 86204 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 87910 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = - let _1 = +# 86214 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = + let _1 = # 4639 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 87917 "src/ocaml/preprocess/parser_raw.ml" - in - +# 86221 "src/ocaml/preprocess/parser_raw.ml" + in + # 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 87922 "src/ocaml/preprocess/parser_raw.ml" - - in +# 86226 "src/ocaml/preprocess/parser_raw.ml" + in + # 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 87932 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 86236 "src/ocaml/preprocess/parser_raw.ml" + in + let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 87942 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 86246 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 87948 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type)) - in +# 86252 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -88008,115 +86311,113 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 88012 "src/ocaml/preprocess/parser_raw.ml" +# 86315 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos__1_inlined1_ in - let _v = + let _v : (Parsetree.core_type) = let _1 = let _1 = - let _1 = - let codomain_with_modes = - let (_endpos_ty_, _startpos_ty_, _1, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, _1_inlined1, ty_inlined1) in - let m1 = + let codomain_with_modes = + let (_endpos_ty_, _startpos_ty_, _1, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, _1_inlined1, ty_inlined1) in + let m1 = # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 88025 "src/ocaml/preprocess/parser_raw.ml" - in - let m0 = +# 86327 "src/ocaml/preprocess/parser_raw.ml" + in + let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 88030 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - +# 86332 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 88039 "src/ocaml/preprocess/parser_raw.ml" - - in - let domain_with_modes = - let m1 = +# 86341 "src/ocaml/preprocess/parser_raw.ml" + + in + let domain_with_modes = + let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 88046 "src/ocaml/preprocess/parser_raw.ml" - in - let ty = - let _1 = +# 86348 "src/ocaml/preprocess/parser_raw.ml" + in + let ty = + let _1 = # 4736 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 88052 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos__1_ = _endpos_ty_ in - +# 86354 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos_ty_ in + # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 88058 "src/ocaml/preprocess/parser_raw.ml" - - in - let m0 = - let _1 = +# 86360 "src/ocaml/preprocess/parser_raw.ml" + + in + let m0 = + let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 88065 "src/ocaml/preprocess/parser_raw.ml" - in - +# 86367 "src/ocaml/preprocess/parser_raw.ml" + in + # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 88070 "src/ocaml/preprocess/parser_raw.ml" - - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in +# 86372 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 88080 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = - let _1 = +# 86382 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = + let _1 = # 4639 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 88087 "src/ocaml/preprocess/parser_raw.ml" - in - +# 86389 "src/ocaml/preprocess/parser_raw.ml" + in + # 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 88092 "src/ocaml/preprocess/parser_raw.ml" - - in +# 86394 "src/ocaml/preprocess/parser_raw.ml" + in + # 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 88102 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 86404 "src/ocaml/preprocess/parser_raw.ml" + in + let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 88112 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 86414 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 88118 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type)) - in +# 86420 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -88178,122 +86479,120 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 88182 "src/ocaml/preprocess/parser_raw.ml" +# 86483 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos_ty_inlined1_ in - let _v = + let _v : (Parsetree.core_type) = let _1 = let _1 = - let _1 = - let codomain_with_modes = - let (_endpos_ty_, _startpos_ty_, ty, _1) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1, _1_inlined1) in - let m1 = + let codomain_with_modes = + let (_endpos_ty_, _startpos_ty_, ty, _1) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1, _1_inlined1) in + let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 88195 "src/ocaml/preprocess/parser_raw.ml" - in - let m0 = - let _1 = +# 86495 "src/ocaml/preprocess/parser_raw.ml" + in + let m0 = + let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 88201 "src/ocaml/preprocess/parser_raw.ml" - in - +# 86501 "src/ocaml/preprocess/parser_raw.ml" + in + # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 88206 "src/ocaml/preprocess/parser_raw.ml" - - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in +# 86506 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 88216 "src/ocaml/preprocess/parser_raw.ml" - - in - let domain_with_modes = - let m1 = +# 86516 "src/ocaml/preprocess/parser_raw.ml" + + in + let domain_with_modes = + let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 88223 "src/ocaml/preprocess/parser_raw.ml" - in - let ty = - let _1 = +# 86523 "src/ocaml/preprocess/parser_raw.ml" + in + let ty = + let _1 = # 4736 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 88229 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos__1_ = _endpos_ty_ in - +# 86529 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos_ty_ in + # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 88235 "src/ocaml/preprocess/parser_raw.ml" - - in - let m0 = - let _1 = +# 86535 "src/ocaml/preprocess/parser_raw.ml" + + in + let m0 = + let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 88242 "src/ocaml/preprocess/parser_raw.ml" - in - +# 86542 "src/ocaml/preprocess/parser_raw.ml" + in + # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 88247 "src/ocaml/preprocess/parser_raw.ml" - - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in +# 86547 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 88257 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = - let _1 = +# 86557 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = + let _1 = # 4639 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 88264 "src/ocaml/preprocess/parser_raw.ml" - in - +# 86564 "src/ocaml/preprocess/parser_raw.ml" + in + # 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 88269 "src/ocaml/preprocess/parser_raw.ml" - - in +# 86569 "src/ocaml/preprocess/parser_raw.ml" + in + # 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 88279 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 86579 "src/ocaml/preprocess/parser_raw.ml" + in + let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 88289 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 86589 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 88295 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type)) - in +# 86595 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -88362,125 +86661,123 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 88366 "src/ocaml/preprocess/parser_raw.ml" +# 86665 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos__1_inlined2_ in - let _v = + let _v : (Parsetree.core_type) = let _1 = let _1 = - let _1 = - let codomain_with_modes = - let (_endpos_ty_, _startpos_ty_, _1_inlined1, ty, _1) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, _1_inlined2, ty_inlined1, _1_inlined1) in - let m1 = - let _1 = _1_inlined1 in - + let codomain_with_modes = + let (_endpos_ty_, _startpos_ty_, _1_inlined1, ty, _1) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, _1_inlined2, ty_inlined1, _1_inlined1) in + let m1 = + let _1 = _1_inlined1 in + # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 88381 "src/ocaml/preprocess/parser_raw.ml" - - in - let m0 = - let _1 = +# 86679 "src/ocaml/preprocess/parser_raw.ml" + + in + let m0 = + let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 88388 "src/ocaml/preprocess/parser_raw.ml" - in - +# 86686 "src/ocaml/preprocess/parser_raw.ml" + in + # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 88393 "src/ocaml/preprocess/parser_raw.ml" - - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in +# 86691 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 88403 "src/ocaml/preprocess/parser_raw.ml" - - in - let domain_with_modes = - let m1 = +# 86701 "src/ocaml/preprocess/parser_raw.ml" + + in + let domain_with_modes = + let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 88410 "src/ocaml/preprocess/parser_raw.ml" - in - let ty = - let _1 = +# 86708 "src/ocaml/preprocess/parser_raw.ml" + in + let ty = + let _1 = # 4736 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 88416 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos__1_ = _endpos_ty_ in - +# 86714 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos_ty_ in + # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 88422 "src/ocaml/preprocess/parser_raw.ml" - - in - let m0 = - let _1 = +# 86720 "src/ocaml/preprocess/parser_raw.ml" + + in + let m0 = + let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 88429 "src/ocaml/preprocess/parser_raw.ml" - in - +# 86727 "src/ocaml/preprocess/parser_raw.ml" + in + # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 88434 "src/ocaml/preprocess/parser_raw.ml" - - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in +# 86732 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 88444 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = - let _1 = +# 86742 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = + let _1 = # 4639 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 88451 "src/ocaml/preprocess/parser_raw.ml" - in - +# 86749 "src/ocaml/preprocess/parser_raw.ml" + in + # 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 88456 "src/ocaml/preprocess/parser_raw.ml" - - in +# 86754 "src/ocaml/preprocess/parser_raw.ml" + in + # 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 88466 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined2_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 86764 "src/ocaml/preprocess/parser_raw.ml" + in + let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined2_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 88476 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 86774 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 88482 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type)) - in +# 86780 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -88542,118 +86839,116 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 88546 "src/ocaml/preprocess/parser_raw.ml" +# 86843 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos_ty_inlined1_ in - let _v = + let _v : (Parsetree.core_type) = let _1 = let _1 = - let _1 = - let codomain_with_modes = - let (_endpos_ty_, _startpos_ty_, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1) in - let m1 = + let codomain_with_modes = + let (_endpos_ty_, _startpos_ty_, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1) in + let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 88559 "src/ocaml/preprocess/parser_raw.ml" - in - let m0 = +# 86855 "src/ocaml/preprocess/parser_raw.ml" + in + let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 88564 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - +# 86860 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 88573 "src/ocaml/preprocess/parser_raw.ml" +# 86869 "src/ocaml/preprocess/parser_raw.ml" + + in + let domain_with_modes = + let m1 = + let _1 = _1_inlined1 in - in - let domain_with_modes = - let m1 = - let _1 = _1_inlined1 in - # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 88582 "src/ocaml/preprocess/parser_raw.ml" - - in - let ty = - let _1 = +# 86878 "src/ocaml/preprocess/parser_raw.ml" + + in + let ty = + let _1 = # 4736 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 88589 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos__1_ = _endpos_ty_ in - +# 86885 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos_ty_ in + # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 88595 "src/ocaml/preprocess/parser_raw.ml" - - in - let m0 = - let _1 = +# 86891 "src/ocaml/preprocess/parser_raw.ml" + + in + let m0 = + let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 88602 "src/ocaml/preprocess/parser_raw.ml" - in - +# 86898 "src/ocaml/preprocess/parser_raw.ml" + in + # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 88607 "src/ocaml/preprocess/parser_raw.ml" - - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in +# 86903 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 88617 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = - let _1 = +# 86913 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = + let _1 = # 4639 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 88624 "src/ocaml/preprocess/parser_raw.ml" - in - +# 86920 "src/ocaml/preprocess/parser_raw.ml" + in + # 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 88629 "src/ocaml/preprocess/parser_raw.ml" - - in +# 86925 "src/ocaml/preprocess/parser_raw.ml" + in + # 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 88639 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 86935 "src/ocaml/preprocess/parser_raw.ml" + in + let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 88649 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 86945 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 88655 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type)) - in +# 86951 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -88722,118 +87017,116 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 88726 "src/ocaml/preprocess/parser_raw.ml" +# 87021 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos__1_inlined2_ in - let _v = + let _v : (Parsetree.core_type) = let _1 = let _1 = - let _1 = - let codomain_with_modes = - let (_endpos_ty_, _startpos_ty_, _1, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, _1_inlined2, ty_inlined1) in - let m1 = + let codomain_with_modes = + let (_endpos_ty_, _startpos_ty_, _1, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, _1_inlined2, ty_inlined1) in + let m1 = # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 88739 "src/ocaml/preprocess/parser_raw.ml" - in - let m0 = +# 87033 "src/ocaml/preprocess/parser_raw.ml" + in + let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 88744 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - +# 87038 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 88753 "src/ocaml/preprocess/parser_raw.ml" +# 87047 "src/ocaml/preprocess/parser_raw.ml" + + in + let domain_with_modes = + let m1 = + let _1 = _1_inlined1 in - in - let domain_with_modes = - let m1 = - let _1 = _1_inlined1 in - # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 88762 "src/ocaml/preprocess/parser_raw.ml" - - in - let ty = - let _1 = +# 87056 "src/ocaml/preprocess/parser_raw.ml" + + in + let ty = + let _1 = # 4736 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 88769 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos__1_ = _endpos_ty_ in - +# 87063 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos_ty_ in + # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 88775 "src/ocaml/preprocess/parser_raw.ml" - - in - let m0 = - let _1 = +# 87069 "src/ocaml/preprocess/parser_raw.ml" + + in + let m0 = + let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 88782 "src/ocaml/preprocess/parser_raw.ml" - in - +# 87076 "src/ocaml/preprocess/parser_raw.ml" + in + # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 88787 "src/ocaml/preprocess/parser_raw.ml" - - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in +# 87081 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 88797 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = - let _1 = +# 87091 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = + let _1 = # 4639 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 88804 "src/ocaml/preprocess/parser_raw.ml" - in - +# 87098 "src/ocaml/preprocess/parser_raw.ml" + in + # 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 88809 "src/ocaml/preprocess/parser_raw.ml" - - in +# 87103 "src/ocaml/preprocess/parser_raw.ml" + in + # 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 88819 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined2_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 87113 "src/ocaml/preprocess/parser_raw.ml" + in + let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined2_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 88829 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 87123 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 88835 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type)) - in +# 87129 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -88902,125 +87195,123 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 88906 "src/ocaml/preprocess/parser_raw.ml" +# 87199 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos_ty_inlined1_ in - let _v = + let _v : (Parsetree.core_type) = let _1 = let _1 = - let _1 = - let codomain_with_modes = - let (_endpos_ty_, _startpos_ty_, ty, _1) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1, _1_inlined2) in - let m1 = + let codomain_with_modes = + let (_endpos_ty_, _startpos_ty_, ty, _1) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1, _1_inlined2) in + let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 88919 "src/ocaml/preprocess/parser_raw.ml" - in - let m0 = - let _1 = +# 87211 "src/ocaml/preprocess/parser_raw.ml" + in + let m0 = + let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 88925 "src/ocaml/preprocess/parser_raw.ml" - in - +# 87217 "src/ocaml/preprocess/parser_raw.ml" + in + # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 88930 "src/ocaml/preprocess/parser_raw.ml" - - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in +# 87222 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 88940 "src/ocaml/preprocess/parser_raw.ml" +# 87232 "src/ocaml/preprocess/parser_raw.ml" + + in + let domain_with_modes = + let m1 = + let _1 = _1_inlined1 in - in - let domain_with_modes = - let m1 = - let _1 = _1_inlined1 in - # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 88949 "src/ocaml/preprocess/parser_raw.ml" - - in - let ty = - let _1 = +# 87241 "src/ocaml/preprocess/parser_raw.ml" + + in + let ty = + let _1 = # 4736 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 88956 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos__1_ = _endpos_ty_ in - +# 87248 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos_ty_ in + # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 88962 "src/ocaml/preprocess/parser_raw.ml" - - in - let m0 = - let _1 = +# 87254 "src/ocaml/preprocess/parser_raw.ml" + + in + let m0 = + let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 88969 "src/ocaml/preprocess/parser_raw.ml" - in - +# 87261 "src/ocaml/preprocess/parser_raw.ml" + in + # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 88974 "src/ocaml/preprocess/parser_raw.ml" - - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in +# 87266 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 88984 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = - let _1 = +# 87276 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = + let _1 = # 4639 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 88991 "src/ocaml/preprocess/parser_raw.ml" - in - +# 87283 "src/ocaml/preprocess/parser_raw.ml" + in + # 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 88996 "src/ocaml/preprocess/parser_raw.ml" - - in +# 87288 "src/ocaml/preprocess/parser_raw.ml" + in + # 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 89006 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 87298 "src/ocaml/preprocess/parser_raw.ml" + in + let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 89016 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 87308 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 89022 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type)) - in +# 87314 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -89096,128 +87387,126 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 89100 "src/ocaml/preprocess/parser_raw.ml" +# 87391 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos__1_inlined3_ in - let _v = + let _v : (Parsetree.core_type) = let _1 = let _1 = - let _1 = - let codomain_with_modes = - let (_endpos_ty_, _startpos_ty_, _1_inlined1, ty, _1) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, _1_inlined3, ty_inlined1, _1_inlined2) in - let m1 = - let _1 = _1_inlined1 in - + let codomain_with_modes = + let (_endpos_ty_, _startpos_ty_, _1_inlined1, ty, _1) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, _1_inlined3, ty_inlined1, _1_inlined2) in + let m1 = + let _1 = _1_inlined1 in + # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 89115 "src/ocaml/preprocess/parser_raw.ml" - - in - let m0 = - let _1 = +# 87405 "src/ocaml/preprocess/parser_raw.ml" + + in + let m0 = + let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 89122 "src/ocaml/preprocess/parser_raw.ml" - in - +# 87412 "src/ocaml/preprocess/parser_raw.ml" + in + # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 89127 "src/ocaml/preprocess/parser_raw.ml" - - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in +# 87417 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 89137 "src/ocaml/preprocess/parser_raw.ml" +# 87427 "src/ocaml/preprocess/parser_raw.ml" + + in + let domain_with_modes = + let m1 = + let _1 = _1_inlined1 in - in - let domain_with_modes = - let m1 = - let _1 = _1_inlined1 in - # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 89146 "src/ocaml/preprocess/parser_raw.ml" - - in - let ty = - let _1 = +# 87436 "src/ocaml/preprocess/parser_raw.ml" + + in + let ty = + let _1 = # 4736 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 89153 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos__1_ = _endpos_ty_ in - +# 87443 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos_ty_ in + # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 89159 "src/ocaml/preprocess/parser_raw.ml" - - in - let m0 = - let _1 = +# 87449 "src/ocaml/preprocess/parser_raw.ml" + + in + let m0 = + let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 89166 "src/ocaml/preprocess/parser_raw.ml" - in - +# 87456 "src/ocaml/preprocess/parser_raw.ml" + in + # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 89171 "src/ocaml/preprocess/parser_raw.ml" - - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in +# 87461 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 89181 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = - let _1 = +# 87471 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = + let _1 = # 4639 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 89188 "src/ocaml/preprocess/parser_raw.ml" - in - +# 87478 "src/ocaml/preprocess/parser_raw.ml" + in + # 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 89193 "src/ocaml/preprocess/parser_raw.ml" - - in +# 87483 "src/ocaml/preprocess/parser_raw.ml" + in + # 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 89203 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined3_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 87493 "src/ocaml/preprocess/parser_raw.ml" + in + let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined3_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 89213 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 87503 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 89219 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type)) - in +# 87509 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -89280,135 +87569,133 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_ty_ in - let _v = + let _v : (Parsetree.core_type) = let _1 = let _1 = - let _1 = - let codomain_with_modes = - let m1 = + let codomain_with_modes = + let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 89291 "src/ocaml/preprocess/parser_raw.ml" - in - let m0 = +# 87579 "src/ocaml/preprocess/parser_raw.ml" + in + let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 89296 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - +# 87584 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 89305 "src/ocaml/preprocess/parser_raw.ml" - - in - let domain_with_modes = - let m1 = +# 87593 "src/ocaml/preprocess/parser_raw.ml" + + in + let domain_with_modes = + let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 89312 "src/ocaml/preprocess/parser_raw.ml" - in - let ty = +# 87600 "src/ocaml/preprocess/parser_raw.ml" + in + let ty = + let _1 = let _1 = let _1 = - let _1 = - let bound_vars = - let _1 = - let xs = -# 264 "" + let bound_vars = + let _1 = + let xs = +# 253 "" ( List.rev xs ) -# 89323 "src/ocaml/preprocess/parser_raw.ml" - in - +# 87611 "src/ocaml/preprocess/parser_raw.ml" + in + # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 89328 "src/ocaml/preprocess/parser_raw.ml" - - in +# 87616 "src/ocaml/preprocess/parser_raw.ml" + in + # 4481 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 89334 "src/ocaml/preprocess/parser_raw.ml" - - in +# 87622 "src/ocaml/preprocess/parser_raw.ml" + in + # 4732 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 89340 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 87628 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__5_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 89350 "src/ocaml/preprocess/parser_raw.ml" - - in +# 87638 "src/ocaml/preprocess/parser_raw.ml" + in + # 4734 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 89356 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in +# 87644 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__5_ in + # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 89363 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in - let m0 = +# 87651 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in + let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 89370 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - +# 87658 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 89379 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = +# 87667 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = # 4646 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 89385 "src/ocaml/preprocess/parser_raw.ml" - in - +# 87673 "src/ocaml/preprocess/parser_raw.ml" + in + # 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 89394 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos_ty_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 87682 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos_ty_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 89404 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 87692 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 89410 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type)) - in +# 87698 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -89478,136 +87765,134 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined1_ in - let _v = + let _v : (Parsetree.core_type) = let _1 = let _1 = - let _1 = - let codomain_with_modes = - let _1 = _1_inlined1 in - let m1 = + let codomain_with_modes = + let _1 = _1_inlined1 in + let m1 = # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 89490 "src/ocaml/preprocess/parser_raw.ml" - in - let m0 = +# 87776 "src/ocaml/preprocess/parser_raw.ml" + in + let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 89495 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - +# 87781 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 89504 "src/ocaml/preprocess/parser_raw.ml" - - in - let domain_with_modes = - let m1 = +# 87790 "src/ocaml/preprocess/parser_raw.ml" + + in + let domain_with_modes = + let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 89511 "src/ocaml/preprocess/parser_raw.ml" - in - let ty = +# 87797 "src/ocaml/preprocess/parser_raw.ml" + in + let ty = + let _1 = let _1 = let _1 = - let _1 = - let bound_vars = - let _1 = - let xs = -# 264 "" + let bound_vars = + let _1 = + let xs = +# 253 "" ( List.rev xs ) -# 89522 "src/ocaml/preprocess/parser_raw.ml" - in - +# 87808 "src/ocaml/preprocess/parser_raw.ml" + in + # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 89527 "src/ocaml/preprocess/parser_raw.ml" - - in +# 87813 "src/ocaml/preprocess/parser_raw.ml" + in + # 4481 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 89533 "src/ocaml/preprocess/parser_raw.ml" - - in +# 87819 "src/ocaml/preprocess/parser_raw.ml" + in + # 4732 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 89539 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 87825 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__5_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 89549 "src/ocaml/preprocess/parser_raw.ml" - - in +# 87835 "src/ocaml/preprocess/parser_raw.ml" + in + # 4734 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 89555 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in +# 87841 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__5_ in + # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 89562 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in - let m0 = +# 87848 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in + let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 89569 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - +# 87855 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 89578 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = +# 87864 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = # 4646 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 89584 "src/ocaml/preprocess/parser_raw.ml" - in - +# 87870 "src/ocaml/preprocess/parser_raw.ml" + in + # 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 89593 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__1_inlined1_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 87879 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__1_inlined1_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 89603 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 87889 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 89609 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type)) - in +# 87895 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -89677,143 +87962,141 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_ty_ in - let _v = + let _v : (Parsetree.core_type) = let _1 = let _1 = - let _1 = - let codomain_with_modes = - let _1 = _1_inlined1 in - let m1 = + let codomain_with_modes = + let _1 = _1_inlined1 in + let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 89689 "src/ocaml/preprocess/parser_raw.ml" - in - let m0 = - let _1 = +# 87973 "src/ocaml/preprocess/parser_raw.ml" + in + let m0 = + let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 89695 "src/ocaml/preprocess/parser_raw.ml" - in - +# 87979 "src/ocaml/preprocess/parser_raw.ml" + in + # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 89700 "src/ocaml/preprocess/parser_raw.ml" - - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in +# 87984 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 89710 "src/ocaml/preprocess/parser_raw.ml" - - in - let domain_with_modes = - let m1 = +# 87994 "src/ocaml/preprocess/parser_raw.ml" + + in + let domain_with_modes = + let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 89717 "src/ocaml/preprocess/parser_raw.ml" - in - let ty = +# 88001 "src/ocaml/preprocess/parser_raw.ml" + in + let ty = + let _1 = let _1 = let _1 = - let _1 = - let bound_vars = - let _1 = - let xs = -# 264 "" + let bound_vars = + let _1 = + let xs = +# 253 "" ( List.rev xs ) -# 89728 "src/ocaml/preprocess/parser_raw.ml" - in - +# 88012 "src/ocaml/preprocess/parser_raw.ml" + in + # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 89733 "src/ocaml/preprocess/parser_raw.ml" - - in +# 88017 "src/ocaml/preprocess/parser_raw.ml" + in + # 4481 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 89739 "src/ocaml/preprocess/parser_raw.ml" - - in +# 88023 "src/ocaml/preprocess/parser_raw.ml" + in + # 4732 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 89745 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 88029 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__5_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 89755 "src/ocaml/preprocess/parser_raw.ml" - - in +# 88039 "src/ocaml/preprocess/parser_raw.ml" + in + # 4734 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 89761 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in +# 88045 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__5_ in + # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 89768 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in - let m0 = +# 88052 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in + let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 89775 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - +# 88059 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 89784 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = +# 88068 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = # 4646 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 89790 "src/ocaml/preprocess/parser_raw.ml" - in - +# 88074 "src/ocaml/preprocess/parser_raw.ml" + in + # 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 89799 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos_ty_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 88083 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos_ty_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 89809 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 88093 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 89815 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type)) - in +# 88099 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -89890,146 +88173,144 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined2_ in - let _v = + let _v : (Parsetree.core_type) = let _1 = let _1 = - let _1 = - let codomain_with_modes = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let m1 = - let _1 = _1_inlined1 in - + let codomain_with_modes = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in + let m1 = + let _1 = _1_inlined1 in + # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 89904 "src/ocaml/preprocess/parser_raw.ml" - - in - let m0 = - let _1 = +# 88186 "src/ocaml/preprocess/parser_raw.ml" + + in + let m0 = + let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 89911 "src/ocaml/preprocess/parser_raw.ml" - in - +# 88193 "src/ocaml/preprocess/parser_raw.ml" + in + # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 89916 "src/ocaml/preprocess/parser_raw.ml" - - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in +# 88198 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 89926 "src/ocaml/preprocess/parser_raw.ml" - - in - let domain_with_modes = - let m1 = +# 88208 "src/ocaml/preprocess/parser_raw.ml" + + in + let domain_with_modes = + let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 89933 "src/ocaml/preprocess/parser_raw.ml" - in - let ty = +# 88215 "src/ocaml/preprocess/parser_raw.ml" + in + let ty = + let _1 = let _1 = let _1 = - let _1 = - let bound_vars = - let _1 = - let xs = -# 264 "" + let bound_vars = + let _1 = + let xs = +# 253 "" ( List.rev xs ) -# 89944 "src/ocaml/preprocess/parser_raw.ml" - in - +# 88226 "src/ocaml/preprocess/parser_raw.ml" + in + # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 89949 "src/ocaml/preprocess/parser_raw.ml" - - in +# 88231 "src/ocaml/preprocess/parser_raw.ml" + in + # 4481 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 89955 "src/ocaml/preprocess/parser_raw.ml" - - in +# 88237 "src/ocaml/preprocess/parser_raw.ml" + in + # 4732 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 89961 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 88243 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__5_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 89971 "src/ocaml/preprocess/parser_raw.ml" - - in +# 88253 "src/ocaml/preprocess/parser_raw.ml" + in + # 4734 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 89977 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in +# 88259 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__5_ in + # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 89984 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in - let m0 = +# 88266 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in + let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 89991 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - +# 88273 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 90000 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = +# 88282 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = # 4646 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 90006 "src/ocaml/preprocess/parser_raw.ml" - in - +# 88288 "src/ocaml/preprocess/parser_raw.ml" + in + # 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 90015 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__1_inlined2_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 88297 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__1_inlined2_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 90025 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 88307 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 90031 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type)) - in +# 88313 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -90099,138 +88380,136 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_ty_ in - let _v = + let _v : (Parsetree.core_type) = let _1 = let _1 = - let _1 = - let codomain_with_modes = - let m1 = + let codomain_with_modes = + let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 90110 "src/ocaml/preprocess/parser_raw.ml" - in - let m0 = +# 88390 "src/ocaml/preprocess/parser_raw.ml" + in + let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 90115 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - +# 88395 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 90124 "src/ocaml/preprocess/parser_raw.ml" +# 88404 "src/ocaml/preprocess/parser_raw.ml" + + in + let domain_with_modes = + let m1 = + let _1 = _1_inlined1 in - in - let domain_with_modes = - let m1 = - let _1 = _1_inlined1 in - # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 90133 "src/ocaml/preprocess/parser_raw.ml" - - in - let ty = +# 88413 "src/ocaml/preprocess/parser_raw.ml" + + in + let ty = + let _1 = let _1 = let _1 = - let _1 = - let bound_vars = - let _1 = - let xs = -# 264 "" + let bound_vars = + let _1 = + let xs = +# 253 "" ( List.rev xs ) -# 90145 "src/ocaml/preprocess/parser_raw.ml" - in - +# 88425 "src/ocaml/preprocess/parser_raw.ml" + in + # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 90150 "src/ocaml/preprocess/parser_raw.ml" - - in +# 88430 "src/ocaml/preprocess/parser_raw.ml" + in + # 4481 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 90156 "src/ocaml/preprocess/parser_raw.ml" - - in +# 88436 "src/ocaml/preprocess/parser_raw.ml" + in + # 4732 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 90162 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 88442 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__5_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 90172 "src/ocaml/preprocess/parser_raw.ml" - - in +# 88452 "src/ocaml/preprocess/parser_raw.ml" + in + # 4734 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 90178 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in +# 88458 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__5_ in + # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 90185 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in - let m0 = +# 88465 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in + let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 90192 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - +# 88472 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 90201 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = +# 88481 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = # 4646 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 90207 "src/ocaml/preprocess/parser_raw.ml" - in - +# 88487 "src/ocaml/preprocess/parser_raw.ml" + in + # 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 90216 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos_ty_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 88496 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos_ty_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 90226 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 88506 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 90232 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type)) - in +# 88512 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -90307,139 +88586,137 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined2_ in - let _v = + let _v : (Parsetree.core_type) = let _1 = let _1 = - let _1 = - let codomain_with_modes = - let _1 = _1_inlined2 in - let m1 = + let codomain_with_modes = + let _1 = _1_inlined2 in + let m1 = # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 90319 "src/ocaml/preprocess/parser_raw.ml" - in - let m0 = +# 88597 "src/ocaml/preprocess/parser_raw.ml" + in + let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 90324 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - +# 88602 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 90333 "src/ocaml/preprocess/parser_raw.ml" +# 88611 "src/ocaml/preprocess/parser_raw.ml" + + in + let domain_with_modes = + let m1 = + let _1 = _1_inlined1 in - in - let domain_with_modes = - let m1 = - let _1 = _1_inlined1 in - # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 90342 "src/ocaml/preprocess/parser_raw.ml" - - in - let ty = +# 88620 "src/ocaml/preprocess/parser_raw.ml" + + in + let ty = + let _1 = let _1 = let _1 = - let _1 = - let bound_vars = - let _1 = - let xs = -# 264 "" + let bound_vars = + let _1 = + let xs = +# 253 "" ( List.rev xs ) -# 90354 "src/ocaml/preprocess/parser_raw.ml" - in - +# 88632 "src/ocaml/preprocess/parser_raw.ml" + in + # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 90359 "src/ocaml/preprocess/parser_raw.ml" - - in +# 88637 "src/ocaml/preprocess/parser_raw.ml" + in + # 4481 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 90365 "src/ocaml/preprocess/parser_raw.ml" - - in +# 88643 "src/ocaml/preprocess/parser_raw.ml" + in + # 4732 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 90371 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 88649 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__5_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 90381 "src/ocaml/preprocess/parser_raw.ml" - - in +# 88659 "src/ocaml/preprocess/parser_raw.ml" + in + # 4734 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 90387 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in +# 88665 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__5_ in + # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 90394 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in - let m0 = +# 88672 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in + let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 90401 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - +# 88679 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 90410 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = +# 88688 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = # 4646 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 90416 "src/ocaml/preprocess/parser_raw.ml" - in - +# 88694 "src/ocaml/preprocess/parser_raw.ml" + in + # 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 90425 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__1_inlined2_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 88703 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__1_inlined2_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 90435 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 88713 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 90441 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type)) - in +# 88719 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -90516,146 +88793,144 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_ty_ in - let _v = + let _v : (Parsetree.core_type) = let _1 = let _1 = - let _1 = - let codomain_with_modes = - let _1 = _1_inlined2 in - let m1 = + let codomain_with_modes = + let _1 = _1_inlined2 in + let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 90528 "src/ocaml/preprocess/parser_raw.ml" - in - let m0 = - let _1 = +# 88804 "src/ocaml/preprocess/parser_raw.ml" + in + let m0 = + let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 90534 "src/ocaml/preprocess/parser_raw.ml" - in - +# 88810 "src/ocaml/preprocess/parser_raw.ml" + in + # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 90539 "src/ocaml/preprocess/parser_raw.ml" - - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in +# 88815 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 90549 "src/ocaml/preprocess/parser_raw.ml" +# 88825 "src/ocaml/preprocess/parser_raw.ml" + + in + let domain_with_modes = + let m1 = + let _1 = _1_inlined1 in - in - let domain_with_modes = - let m1 = - let _1 = _1_inlined1 in - # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 90558 "src/ocaml/preprocess/parser_raw.ml" - - in - let ty = +# 88834 "src/ocaml/preprocess/parser_raw.ml" + + in + let ty = + let _1 = let _1 = let _1 = - let _1 = - let bound_vars = - let _1 = - let xs = -# 264 "" + let bound_vars = + let _1 = + let xs = +# 253 "" ( List.rev xs ) -# 90570 "src/ocaml/preprocess/parser_raw.ml" - in - +# 88846 "src/ocaml/preprocess/parser_raw.ml" + in + # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 90575 "src/ocaml/preprocess/parser_raw.ml" - - in +# 88851 "src/ocaml/preprocess/parser_raw.ml" + in + # 4481 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 90581 "src/ocaml/preprocess/parser_raw.ml" - - in +# 88857 "src/ocaml/preprocess/parser_raw.ml" + in + # 4732 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 90587 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 88863 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__5_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 90597 "src/ocaml/preprocess/parser_raw.ml" - - in +# 88873 "src/ocaml/preprocess/parser_raw.ml" + in + # 4734 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 90603 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in +# 88879 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__5_ in + # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 90610 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in - let m0 = +# 88886 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in + let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 90617 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - +# 88893 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 90626 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = +# 88902 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = # 4646 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 90632 "src/ocaml/preprocess/parser_raw.ml" - in - +# 88908 "src/ocaml/preprocess/parser_raw.ml" + in + # 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 90641 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos_ty_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 88917 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos_ty_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 90651 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 88927 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 90657 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type)) - in +# 88933 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -90739,149 +89014,147 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined3_ in - let _v = + let _v : (Parsetree.core_type) = let _1 = let _1 = - let _1 = - let codomain_with_modes = - let (_1_inlined1, _1) = (_1_inlined3, _1_inlined2) in - let m1 = - let _1 = _1_inlined1 in - + let codomain_with_modes = + let (_1_inlined1, _1) = (_1_inlined3, _1_inlined2) in + let m1 = + let _1 = _1_inlined1 in + # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 90753 "src/ocaml/preprocess/parser_raw.ml" - - in - let m0 = - let _1 = +# 89027 "src/ocaml/preprocess/parser_raw.ml" + + in + let m0 = + let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 90760 "src/ocaml/preprocess/parser_raw.ml" - in - +# 89034 "src/ocaml/preprocess/parser_raw.ml" + in + # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 90765 "src/ocaml/preprocess/parser_raw.ml" - - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in +# 89039 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 90775 "src/ocaml/preprocess/parser_raw.ml" +# 89049 "src/ocaml/preprocess/parser_raw.ml" + + in + let domain_with_modes = + let m1 = + let _1 = _1_inlined1 in - in - let domain_with_modes = - let m1 = - let _1 = _1_inlined1 in - # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 90784 "src/ocaml/preprocess/parser_raw.ml" - - in - let ty = +# 89058 "src/ocaml/preprocess/parser_raw.ml" + + in + let ty = + let _1 = let _1 = let _1 = - let _1 = - let bound_vars = - let _1 = - let xs = -# 264 "" + let bound_vars = + let _1 = + let xs = +# 253 "" ( List.rev xs ) -# 90796 "src/ocaml/preprocess/parser_raw.ml" - in - +# 89070 "src/ocaml/preprocess/parser_raw.ml" + in + # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 90801 "src/ocaml/preprocess/parser_raw.ml" - - in +# 89075 "src/ocaml/preprocess/parser_raw.ml" + in + # 4481 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 90807 "src/ocaml/preprocess/parser_raw.ml" - - in +# 89081 "src/ocaml/preprocess/parser_raw.ml" + in + # 4732 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 90813 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 89087 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__5_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 90823 "src/ocaml/preprocess/parser_raw.ml" - - in +# 89097 "src/ocaml/preprocess/parser_raw.ml" + in + # 4734 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 90829 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in +# 89103 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__5_ in + # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 90836 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in - let m0 = +# 89110 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in + let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 90843 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - +# 89117 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 90852 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = +# 89126 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = # 4646 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 90858 "src/ocaml/preprocess/parser_raw.ml" - in - +# 89132 "src/ocaml/preprocess/parser_raw.ml" + in + # 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 90867 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__1_inlined3_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 89141 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__1_inlined3_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 90877 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 89151 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 90883 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type)) - in +# 89157 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -90916,96 +89189,94 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_ty_ in let _endpos = _endpos_ty_inlined1_ in - let _v = + let _v : (Parsetree.core_type) = let _1 = let _1 = - let _1 = - let codomain_with_modes = - let (_endpos_ty_, _startpos_ty_, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1) in - let m1 = + let codomain_with_modes = + let (_endpos_ty_, _startpos_ty_, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1) in + let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 90928 "src/ocaml/preprocess/parser_raw.ml" - in - let m0 = +# 89200 "src/ocaml/preprocess/parser_raw.ml" + in + let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 90933 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - +# 89205 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 90942 "src/ocaml/preprocess/parser_raw.ml" - - in - let domain_with_modes = - let m1 = +# 89214 "src/ocaml/preprocess/parser_raw.ml" + + in + let domain_with_modes = + let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 90949 "src/ocaml/preprocess/parser_raw.ml" - in - let ty = - let _1 = +# 89221 "src/ocaml/preprocess/parser_raw.ml" + in + let ty = + let _1 = # 4736 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 90955 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos__1_ = _endpos_ty_ in - +# 89227 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos_ty_ in + # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 90961 "src/ocaml/preprocess/parser_raw.ml" - - in - let m0 = +# 89233 "src/ocaml/preprocess/parser_raw.ml" + + in + let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 90967 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - +# 89239 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 90976 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = +# 89248 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = # 4646 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 90982 "src/ocaml/preprocess/parser_raw.ml" - in - +# 89254 "src/ocaml/preprocess/parser_raw.ml" + in + # 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 90991 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_ty_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 89263 "src/ocaml/preprocess/parser_raw.ml" + in + let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_ty_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 91001 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 89273 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 91007 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type)) - in +# 89279 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -91047,96 +89318,94 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_ty_ in let _endpos = _endpos__1_ in - let _v = + let _v : (Parsetree.core_type) = let _1 = let _1 = - let _1 = - let codomain_with_modes = - let (_endpos_ty_, _startpos_ty_, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1) in - let m1 = + let codomain_with_modes = + let (_endpos_ty_, _startpos_ty_, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1) in + let m1 = # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 91059 "src/ocaml/preprocess/parser_raw.ml" - in - let m0 = +# 89329 "src/ocaml/preprocess/parser_raw.ml" + in + let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 91064 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - +# 89334 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 91073 "src/ocaml/preprocess/parser_raw.ml" - - in - let domain_with_modes = - let m1 = +# 89343 "src/ocaml/preprocess/parser_raw.ml" + + in + let domain_with_modes = + let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 91080 "src/ocaml/preprocess/parser_raw.ml" - in - let ty = - let _1 = +# 89350 "src/ocaml/preprocess/parser_raw.ml" + in + let ty = + let _1 = # 4736 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 91086 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos__1_ = _endpos_ty_ in - +# 89356 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos_ty_ in + # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 91092 "src/ocaml/preprocess/parser_raw.ml" - - in - let m0 = +# 89362 "src/ocaml/preprocess/parser_raw.ml" + + in + let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 91098 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - +# 89368 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 91107 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = +# 89377 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = # 4646 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 91113 "src/ocaml/preprocess/parser_raw.ml" - in - +# 89383 "src/ocaml/preprocess/parser_raw.ml" + in + # 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 91122 "src/ocaml/preprocess/parser_raw.ml" - - in - let _startpos__1_ = _startpos_ty_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 89392 "src/ocaml/preprocess/parser_raw.ml" + in + let _startpos__1_ = _startpos_ty_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 91132 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 89402 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 91138 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type)) - in +# 89408 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -91178,103 +89447,101 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_ty_ in let _endpos = _endpos_ty_inlined1_ in - let _v = + let _v : (Parsetree.core_type) = let _1 = let _1 = - let _1 = - let codomain_with_modes = - let (_endpos_ty_, _startpos_ty_, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1) in - let m1 = + let codomain_with_modes = + let (_endpos_ty_, _startpos_ty_, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1) in + let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 91190 "src/ocaml/preprocess/parser_raw.ml" - in - let m0 = - let _1 = +# 89458 "src/ocaml/preprocess/parser_raw.ml" + in + let m0 = + let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 91196 "src/ocaml/preprocess/parser_raw.ml" - in - +# 89464 "src/ocaml/preprocess/parser_raw.ml" + in + # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 91201 "src/ocaml/preprocess/parser_raw.ml" - - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in +# 89469 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 91211 "src/ocaml/preprocess/parser_raw.ml" - - in - let domain_with_modes = - let m1 = +# 89479 "src/ocaml/preprocess/parser_raw.ml" + + in + let domain_with_modes = + let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 91218 "src/ocaml/preprocess/parser_raw.ml" - in - let ty = - let _1 = +# 89486 "src/ocaml/preprocess/parser_raw.ml" + in + let ty = + let _1 = # 4736 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 91224 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos__1_ = _endpos_ty_ in - +# 89492 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos_ty_ in + # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 91230 "src/ocaml/preprocess/parser_raw.ml" - - in - let m0 = +# 89498 "src/ocaml/preprocess/parser_raw.ml" + + in + let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 91236 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - +# 89504 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 91245 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = +# 89513 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = # 4646 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 91251 "src/ocaml/preprocess/parser_raw.ml" - in - +# 89519 "src/ocaml/preprocess/parser_raw.ml" + in + # 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 91260 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_ty_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 89528 "src/ocaml/preprocess/parser_raw.ml" + in + let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_ty_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 91270 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 89538 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 91276 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type)) - in +# 89544 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -91323,106 +89590,104 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_ty_ in let _endpos = _endpos__1_inlined1_ in - let _v = + let _v : (Parsetree.core_type) = let _1 = let _1 = - let _1 = - let codomain_with_modes = - let (_endpos_ty_, _startpos_ty_, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1) in - let m1 = - let _1 = _1_inlined1 in - + let codomain_with_modes = + let (_endpos_ty_, _startpos_ty_, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1) in + let m1 = + let _1 = _1_inlined1 in + # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 91337 "src/ocaml/preprocess/parser_raw.ml" - - in - let m0 = - let _1 = +# 89603 "src/ocaml/preprocess/parser_raw.ml" + + in + let m0 = + let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 91344 "src/ocaml/preprocess/parser_raw.ml" - in - +# 89610 "src/ocaml/preprocess/parser_raw.ml" + in + # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 91349 "src/ocaml/preprocess/parser_raw.ml" - - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in +# 89615 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 91359 "src/ocaml/preprocess/parser_raw.ml" - - in - let domain_with_modes = - let m1 = +# 89625 "src/ocaml/preprocess/parser_raw.ml" + + in + let domain_with_modes = + let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 91366 "src/ocaml/preprocess/parser_raw.ml" - in - let ty = - let _1 = +# 89632 "src/ocaml/preprocess/parser_raw.ml" + in + let ty = + let _1 = # 4736 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 91372 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos__1_ = _endpos_ty_ in - +# 89638 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos_ty_ in + # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 91378 "src/ocaml/preprocess/parser_raw.ml" - - in - let m0 = +# 89644 "src/ocaml/preprocess/parser_raw.ml" + + in + let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 91384 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - +# 89650 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 91393 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = +# 89659 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = # 4646 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 91399 "src/ocaml/preprocess/parser_raw.ml" - in - +# 89665 "src/ocaml/preprocess/parser_raw.ml" + in + # 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 91408 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos_ty_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 89674 "src/ocaml/preprocess/parser_raw.ml" + in + let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos_ty_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 91418 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 89684 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 91424 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type)) - in +# 89690 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -91464,96 +89729,94 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_ty_ in let _endpos = _endpos_ty_inlined1_ in - let _v = + let _v : (Parsetree.core_type) = let _1 = let _1 = - let _1 = - let codomain_with_modes = - let (_endpos_ty_, _startpos_ty_, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1) in - let m1 = + let codomain_with_modes = + let (_endpos_ty_, _startpos_ty_, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1) in + let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 91476 "src/ocaml/preprocess/parser_raw.ml" - in - let m0 = +# 89740 "src/ocaml/preprocess/parser_raw.ml" + in + let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 91481 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - +# 89745 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 91490 "src/ocaml/preprocess/parser_raw.ml" - - in - let domain_with_modes = - let m1 = +# 89754 "src/ocaml/preprocess/parser_raw.ml" + + in + let domain_with_modes = + let m1 = # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 91497 "src/ocaml/preprocess/parser_raw.ml" - in - let ty = - let _1 = +# 89761 "src/ocaml/preprocess/parser_raw.ml" + in + let ty = + let _1 = # 4736 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 91503 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos__1_ = _endpos_ty_ in - +# 89767 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos_ty_ in + # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 91509 "src/ocaml/preprocess/parser_raw.ml" - - in - let m0 = +# 89773 "src/ocaml/preprocess/parser_raw.ml" + + in + let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 91515 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - +# 89779 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 91524 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = +# 89788 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = # 4646 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 91530 "src/ocaml/preprocess/parser_raw.ml" - in - +# 89794 "src/ocaml/preprocess/parser_raw.ml" + in + # 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 91539 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_ty_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 89803 "src/ocaml/preprocess/parser_raw.ml" + in + let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_ty_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 91549 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 89813 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 91555 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type)) - in +# 89819 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -91602,96 +89865,94 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_ty_ in let _endpos = _endpos__1_inlined1_ in - let _v = + let _v : (Parsetree.core_type) = let _1 = let _1 = - let _1 = - let codomain_with_modes = - let (_endpos_ty_, _startpos_ty_, _1, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, _1_inlined1, ty_inlined1) in - let m1 = + let codomain_with_modes = + let (_endpos_ty_, _startpos_ty_, _1, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, _1_inlined1, ty_inlined1) in + let m1 = # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 91614 "src/ocaml/preprocess/parser_raw.ml" - in - let m0 = +# 89876 "src/ocaml/preprocess/parser_raw.ml" + in + let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 91619 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - +# 89881 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 91628 "src/ocaml/preprocess/parser_raw.ml" - - in - let domain_with_modes = - let m1 = +# 89890 "src/ocaml/preprocess/parser_raw.ml" + + in + let domain_with_modes = + let m1 = # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 91635 "src/ocaml/preprocess/parser_raw.ml" - in - let ty = - let _1 = +# 89897 "src/ocaml/preprocess/parser_raw.ml" + in + let ty = + let _1 = # 4736 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 91641 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos__1_ = _endpos_ty_ in - +# 89903 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos_ty_ in + # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 91647 "src/ocaml/preprocess/parser_raw.ml" - - in - let m0 = +# 89909 "src/ocaml/preprocess/parser_raw.ml" + + in + let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 91653 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - +# 89915 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 91662 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = +# 89924 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = # 4646 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 91668 "src/ocaml/preprocess/parser_raw.ml" - in - +# 89930 "src/ocaml/preprocess/parser_raw.ml" + in + # 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 91677 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos_ty_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 89939 "src/ocaml/preprocess/parser_raw.ml" + in + let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos_ty_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 91687 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 89949 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 91693 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type)) - in +# 89955 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -91740,103 +90001,101 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_ty_ in let _endpos = _endpos_ty_inlined1_ in - let _v = + let _v : (Parsetree.core_type) = let _1 = let _1 = - let _1 = - let codomain_with_modes = - let (_endpos_ty_, _startpos_ty_, ty, _1) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1, _1_inlined1) in - let m1 = + let codomain_with_modes = + let (_endpos_ty_, _startpos_ty_, ty, _1) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1, _1_inlined1) in + let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 91752 "src/ocaml/preprocess/parser_raw.ml" - in - let m0 = - let _1 = +# 90012 "src/ocaml/preprocess/parser_raw.ml" + in + let m0 = + let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 91758 "src/ocaml/preprocess/parser_raw.ml" - in - +# 90018 "src/ocaml/preprocess/parser_raw.ml" + in + # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 91763 "src/ocaml/preprocess/parser_raw.ml" - - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in +# 90023 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 91773 "src/ocaml/preprocess/parser_raw.ml" - - in - let domain_with_modes = - let m1 = +# 90033 "src/ocaml/preprocess/parser_raw.ml" + + in + let domain_with_modes = + let m1 = # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 91780 "src/ocaml/preprocess/parser_raw.ml" - in - let ty = - let _1 = +# 90040 "src/ocaml/preprocess/parser_raw.ml" + in + let ty = + let _1 = # 4736 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 91786 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos__1_ = _endpos_ty_ in - +# 90046 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos_ty_ in + # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 91792 "src/ocaml/preprocess/parser_raw.ml" - - in - let m0 = +# 90052 "src/ocaml/preprocess/parser_raw.ml" + + in + let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 91798 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - +# 90058 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 91807 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = +# 90067 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = # 4646 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 91813 "src/ocaml/preprocess/parser_raw.ml" - in - +# 90073 "src/ocaml/preprocess/parser_raw.ml" + in + # 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 91822 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_ty_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 90082 "src/ocaml/preprocess/parser_raw.ml" + in + let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_ty_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 91832 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 90092 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 91838 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type)) - in +# 90098 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -91892,106 +90151,104 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_ty_ in let _endpos = _endpos__1_inlined2_ in - let _v = + let _v : (Parsetree.core_type) = let _1 = let _1 = - let _1 = - let codomain_with_modes = - let (_endpos_ty_, _startpos_ty_, _1_inlined1, ty, _1) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, _1_inlined2, ty_inlined1, _1_inlined1) in - let m1 = - let _1 = _1_inlined1 in - + let codomain_with_modes = + let (_endpos_ty_, _startpos_ty_, _1_inlined1, ty, _1) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, _1_inlined2, ty_inlined1, _1_inlined1) in + let m1 = + let _1 = _1_inlined1 in + # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 91906 "src/ocaml/preprocess/parser_raw.ml" - - in - let m0 = - let _1 = +# 90164 "src/ocaml/preprocess/parser_raw.ml" + + in + let m0 = + let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 91913 "src/ocaml/preprocess/parser_raw.ml" - in - +# 90171 "src/ocaml/preprocess/parser_raw.ml" + in + # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 91918 "src/ocaml/preprocess/parser_raw.ml" - - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in +# 90176 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 91928 "src/ocaml/preprocess/parser_raw.ml" - - in - let domain_with_modes = - let m1 = +# 90186 "src/ocaml/preprocess/parser_raw.ml" + + in + let domain_with_modes = + let m1 = # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 91935 "src/ocaml/preprocess/parser_raw.ml" - in - let ty = - let _1 = +# 90193 "src/ocaml/preprocess/parser_raw.ml" + in + let ty = + let _1 = # 4736 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 91941 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos__1_ = _endpos_ty_ in - +# 90199 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos_ty_ in + # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 91947 "src/ocaml/preprocess/parser_raw.ml" - - in - let m0 = +# 90205 "src/ocaml/preprocess/parser_raw.ml" + + in + let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 91953 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - +# 90211 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 91962 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = +# 90220 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = # 4646 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 91968 "src/ocaml/preprocess/parser_raw.ml" - in - +# 90226 "src/ocaml/preprocess/parser_raw.ml" + in + # 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 91977 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined2_, _startpos_ty_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 90235 "src/ocaml/preprocess/parser_raw.ml" + in + let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined2_, _startpos_ty_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 91987 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 90245 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 91993 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type)) - in +# 90251 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -92061,143 +90318,141 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_ty_ in - let _v = + let _v : (Parsetree.core_type) = let _1 = let _1 = - let _1 = - let codomain_with_modes = - let m1 = + let codomain_with_modes = + let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 92072 "src/ocaml/preprocess/parser_raw.ml" - in - let m0 = +# 90328 "src/ocaml/preprocess/parser_raw.ml" + in + let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 92077 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - +# 90333 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 92086 "src/ocaml/preprocess/parser_raw.ml" - - in - let domain_with_modes = - let m1 = +# 90342 "src/ocaml/preprocess/parser_raw.ml" + + in + let domain_with_modes = + let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 92093 "src/ocaml/preprocess/parser_raw.ml" - in - let ty = - let _startpos__1_ = _startpos__1_inlined1_ in +# 90349 "src/ocaml/preprocess/parser_raw.ml" + in + let ty = + let _startpos__1_ = _startpos__1_inlined1_ in + let _1 = let _1 = let _1 = - let _1 = - let bound_vars = - let _1 = - let xs = -# 264 "" + let bound_vars = + let _1 = + let xs = +# 253 "" ( List.rev xs ) -# 92105 "src/ocaml/preprocess/parser_raw.ml" - in - +# 90361 "src/ocaml/preprocess/parser_raw.ml" + in + # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 92110 "src/ocaml/preprocess/parser_raw.ml" - - in +# 90366 "src/ocaml/preprocess/parser_raw.ml" + in + # 4481 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 92116 "src/ocaml/preprocess/parser_raw.ml" - - in +# 90372 "src/ocaml/preprocess/parser_raw.ml" + in + # 4732 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 92122 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 90378 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__5_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 92132 "src/ocaml/preprocess/parser_raw.ml" - - in +# 90388 "src/ocaml/preprocess/parser_raw.ml" + in + # 4734 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 92138 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in +# 90394 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__5_ in + # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 92145 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in - let m0 = - let _1 = +# 90401 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in + let m0 = + let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 92153 "src/ocaml/preprocess/parser_raw.ml" - in - +# 90409 "src/ocaml/preprocess/parser_raw.ml" + in + # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 92158 "src/ocaml/preprocess/parser_raw.ml" - - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in +# 90414 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 92168 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = +# 90424 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = # 4646 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 92174 "src/ocaml/preprocess/parser_raw.ml" - in - +# 90430 "src/ocaml/preprocess/parser_raw.ml" + in + # 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 92183 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos_ty_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 90439 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos_ty_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 92193 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 90449 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 92199 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type)) - in +# 90455 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -92274,144 +90529,142 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined2_ in - let _v = + let _v : (Parsetree.core_type) = let _1 = let _1 = - let _1 = - let codomain_with_modes = - let _1 = _1_inlined2 in - let m1 = + let codomain_with_modes = + let _1 = _1_inlined2 in + let m1 = # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 92286 "src/ocaml/preprocess/parser_raw.ml" - in - let m0 = +# 90540 "src/ocaml/preprocess/parser_raw.ml" + in + let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 92291 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - +# 90545 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 92300 "src/ocaml/preprocess/parser_raw.ml" - - in - let domain_with_modes = - let m1 = +# 90554 "src/ocaml/preprocess/parser_raw.ml" + + in + let domain_with_modes = + let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 92307 "src/ocaml/preprocess/parser_raw.ml" - in - let ty = - let _startpos__1_ = _startpos__1_inlined1_ in +# 90561 "src/ocaml/preprocess/parser_raw.ml" + in + let ty = + let _startpos__1_ = _startpos__1_inlined1_ in + let _1 = let _1 = let _1 = - let _1 = - let bound_vars = - let _1 = - let xs = -# 264 "" + let bound_vars = + let _1 = + let xs = +# 253 "" ( List.rev xs ) -# 92319 "src/ocaml/preprocess/parser_raw.ml" - in - +# 90573 "src/ocaml/preprocess/parser_raw.ml" + in + # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 92324 "src/ocaml/preprocess/parser_raw.ml" - - in +# 90578 "src/ocaml/preprocess/parser_raw.ml" + in + # 4481 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 92330 "src/ocaml/preprocess/parser_raw.ml" - - in +# 90584 "src/ocaml/preprocess/parser_raw.ml" + in + # 4732 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 92336 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 90590 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__5_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 92346 "src/ocaml/preprocess/parser_raw.ml" - - in +# 90600 "src/ocaml/preprocess/parser_raw.ml" + in + # 4734 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 92352 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in +# 90606 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__5_ in + # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 92359 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in - let m0 = - let _1 = +# 90613 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in + let m0 = + let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 92367 "src/ocaml/preprocess/parser_raw.ml" - in - +# 90621 "src/ocaml/preprocess/parser_raw.ml" + in + # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 92372 "src/ocaml/preprocess/parser_raw.ml" - - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in +# 90626 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 92382 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = +# 90636 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = # 4646 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 92388 "src/ocaml/preprocess/parser_raw.ml" - in - +# 90642 "src/ocaml/preprocess/parser_raw.ml" + in + # 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 92397 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__1_inlined2_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 90651 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__1_inlined2_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 92407 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 90661 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 92413 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type)) - in +# 90667 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -92488,151 +90741,149 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_ty_ in - let _v = + let _v : (Parsetree.core_type) = let _1 = let _1 = - let _1 = - let codomain_with_modes = - let _1 = _1_inlined2 in - let m1 = + let codomain_with_modes = + let _1 = _1_inlined2 in + let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 92500 "src/ocaml/preprocess/parser_raw.ml" - in - let m0 = - let _1 = +# 90752 "src/ocaml/preprocess/parser_raw.ml" + in + let m0 = + let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 92506 "src/ocaml/preprocess/parser_raw.ml" - in - +# 90758 "src/ocaml/preprocess/parser_raw.ml" + in + # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 92511 "src/ocaml/preprocess/parser_raw.ml" - - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in +# 90763 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 92521 "src/ocaml/preprocess/parser_raw.ml" - - in - let domain_with_modes = - let m1 = +# 90773 "src/ocaml/preprocess/parser_raw.ml" + + in + let domain_with_modes = + let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 92528 "src/ocaml/preprocess/parser_raw.ml" - in - let ty = - let _startpos__1_ = _startpos__1_inlined1_ in +# 90780 "src/ocaml/preprocess/parser_raw.ml" + in + let ty = + let _startpos__1_ = _startpos__1_inlined1_ in + let _1 = let _1 = let _1 = - let _1 = - let bound_vars = - let _1 = - let xs = -# 264 "" + let bound_vars = + let _1 = + let xs = +# 253 "" ( List.rev xs ) -# 92540 "src/ocaml/preprocess/parser_raw.ml" - in - +# 90792 "src/ocaml/preprocess/parser_raw.ml" + in + # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 92545 "src/ocaml/preprocess/parser_raw.ml" - - in +# 90797 "src/ocaml/preprocess/parser_raw.ml" + in + # 4481 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 92551 "src/ocaml/preprocess/parser_raw.ml" - - in +# 90803 "src/ocaml/preprocess/parser_raw.ml" + in + # 4732 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 92557 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 90809 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__5_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 92567 "src/ocaml/preprocess/parser_raw.ml" - - in +# 90819 "src/ocaml/preprocess/parser_raw.ml" + in + # 4734 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 92573 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in +# 90825 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__5_ in + # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 92580 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in - let m0 = - let _1 = +# 90832 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in + let m0 = + let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 92588 "src/ocaml/preprocess/parser_raw.ml" - in - +# 90840 "src/ocaml/preprocess/parser_raw.ml" + in + # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 92593 "src/ocaml/preprocess/parser_raw.ml" - - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in +# 90845 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 92603 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = +# 90855 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = # 4646 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 92609 "src/ocaml/preprocess/parser_raw.ml" - in - +# 90861 "src/ocaml/preprocess/parser_raw.ml" + in + # 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 92618 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos_ty_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 90870 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos_ty_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 92628 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 90880 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 92634 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type)) - in +# 90886 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -92716,154 +90967,152 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined3_ in - let _v = + let _v : (Parsetree.core_type) = let _1 = let _1 = - let _1 = - let codomain_with_modes = - let (_1_inlined1, _1) = (_1_inlined3, _1_inlined2) in - let m1 = - let _1 = _1_inlined1 in - + let codomain_with_modes = + let (_1_inlined1, _1) = (_1_inlined3, _1_inlined2) in + let m1 = + let _1 = _1_inlined1 in + # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 92730 "src/ocaml/preprocess/parser_raw.ml" - - in - let m0 = - let _1 = +# 90980 "src/ocaml/preprocess/parser_raw.ml" + + in + let m0 = + let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 92737 "src/ocaml/preprocess/parser_raw.ml" - in - +# 90987 "src/ocaml/preprocess/parser_raw.ml" + in + # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 92742 "src/ocaml/preprocess/parser_raw.ml" - - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in +# 90992 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 92752 "src/ocaml/preprocess/parser_raw.ml" - - in - let domain_with_modes = - let m1 = +# 91002 "src/ocaml/preprocess/parser_raw.ml" + + in + let domain_with_modes = + let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 92759 "src/ocaml/preprocess/parser_raw.ml" - in - let ty = - let _startpos__1_ = _startpos__1_inlined1_ in +# 91009 "src/ocaml/preprocess/parser_raw.ml" + in + let ty = + let _startpos__1_ = _startpos__1_inlined1_ in + let _1 = let _1 = let _1 = - let _1 = - let bound_vars = - let _1 = - let xs = -# 264 "" + let bound_vars = + let _1 = + let xs = +# 253 "" ( List.rev xs ) -# 92771 "src/ocaml/preprocess/parser_raw.ml" - in - +# 91021 "src/ocaml/preprocess/parser_raw.ml" + in + # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 92776 "src/ocaml/preprocess/parser_raw.ml" - - in +# 91026 "src/ocaml/preprocess/parser_raw.ml" + in + # 4481 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 92782 "src/ocaml/preprocess/parser_raw.ml" - - in +# 91032 "src/ocaml/preprocess/parser_raw.ml" + in + # 4732 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 92788 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 91038 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__5_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 92798 "src/ocaml/preprocess/parser_raw.ml" - - in +# 91048 "src/ocaml/preprocess/parser_raw.ml" + in + # 4734 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 92804 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in +# 91054 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__5_ in + # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 92811 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in - let m0 = - let _1 = +# 91061 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in + let m0 = + let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 92819 "src/ocaml/preprocess/parser_raw.ml" - in - +# 91069 "src/ocaml/preprocess/parser_raw.ml" + in + # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 92824 "src/ocaml/preprocess/parser_raw.ml" - - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in +# 91074 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 92834 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = +# 91084 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = # 4646 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 92840 "src/ocaml/preprocess/parser_raw.ml" - in - +# 91090 "src/ocaml/preprocess/parser_raw.ml" + in + # 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 92849 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__1_inlined3_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 91099 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__1_inlined3_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 92859 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 91109 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 92865 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type)) - in +# 91115 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -92940,146 +91189,144 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_ty_ in - let _v = + let _v : (Parsetree.core_type) = let _1 = let _1 = - let _1 = - let codomain_with_modes = - let m1 = + let codomain_with_modes = + let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 92951 "src/ocaml/preprocess/parser_raw.ml" - in - let m0 = +# 91199 "src/ocaml/preprocess/parser_raw.ml" + in + let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 92956 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - +# 91204 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 92965 "src/ocaml/preprocess/parser_raw.ml" +# 91213 "src/ocaml/preprocess/parser_raw.ml" + + in + let domain_with_modes = + let m1 = + let _1 = _1_inlined2 in - in - let domain_with_modes = - let m1 = - let _1 = _1_inlined2 in - # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 92974 "src/ocaml/preprocess/parser_raw.ml" - - in - let ty = - let _startpos__1_ = _startpos__1_inlined1_ in +# 91222 "src/ocaml/preprocess/parser_raw.ml" + + in + let ty = + let _startpos__1_ = _startpos__1_inlined1_ in + let _1 = let _1 = let _1 = - let _1 = - let bound_vars = - let _1 = - let xs = -# 264 "" + let bound_vars = + let _1 = + let xs = +# 253 "" ( List.rev xs ) -# 92987 "src/ocaml/preprocess/parser_raw.ml" - in - +# 91235 "src/ocaml/preprocess/parser_raw.ml" + in + # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 92992 "src/ocaml/preprocess/parser_raw.ml" - - in +# 91240 "src/ocaml/preprocess/parser_raw.ml" + in + # 4481 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 92998 "src/ocaml/preprocess/parser_raw.ml" - - in +# 91246 "src/ocaml/preprocess/parser_raw.ml" + in + # 4732 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 93004 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 91252 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__5_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 93014 "src/ocaml/preprocess/parser_raw.ml" - - in +# 91262 "src/ocaml/preprocess/parser_raw.ml" + in + # 4734 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 93020 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in +# 91268 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__5_ in + # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 93027 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in - let m0 = - let _1 = +# 91275 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in + let m0 = + let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 93035 "src/ocaml/preprocess/parser_raw.ml" - in - +# 91283 "src/ocaml/preprocess/parser_raw.ml" + in + # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 93040 "src/ocaml/preprocess/parser_raw.ml" - - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in +# 91288 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 93050 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = +# 91298 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = # 4646 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 93056 "src/ocaml/preprocess/parser_raw.ml" - in - +# 91304 "src/ocaml/preprocess/parser_raw.ml" + in + # 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 93065 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos_ty_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 91313 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos_ty_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 93075 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 91323 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 93081 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type)) - in +# 91329 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -93163,147 +91410,145 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined3_ in - let _v = + let _v : (Parsetree.core_type) = let _1 = let _1 = - let _1 = - let codomain_with_modes = - let _1 = _1_inlined3 in - let m1 = + let codomain_with_modes = + let _1 = _1_inlined3 in + let m1 = # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 93175 "src/ocaml/preprocess/parser_raw.ml" - in - let m0 = +# 91421 "src/ocaml/preprocess/parser_raw.ml" + in + let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 93180 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - +# 91426 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 93189 "src/ocaml/preprocess/parser_raw.ml" +# 91435 "src/ocaml/preprocess/parser_raw.ml" + + in + let domain_with_modes = + let m1 = + let _1 = _1_inlined2 in - in - let domain_with_modes = - let m1 = - let _1 = _1_inlined2 in - # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 93198 "src/ocaml/preprocess/parser_raw.ml" - - in - let ty = - let _startpos__1_ = _startpos__1_inlined1_ in +# 91444 "src/ocaml/preprocess/parser_raw.ml" + + in + let ty = + let _startpos__1_ = _startpos__1_inlined1_ in + let _1 = let _1 = let _1 = - let _1 = - let bound_vars = - let _1 = - let xs = -# 264 "" + let bound_vars = + let _1 = + let xs = +# 253 "" ( List.rev xs ) -# 93211 "src/ocaml/preprocess/parser_raw.ml" - in - +# 91457 "src/ocaml/preprocess/parser_raw.ml" + in + # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 93216 "src/ocaml/preprocess/parser_raw.ml" - - in +# 91462 "src/ocaml/preprocess/parser_raw.ml" + in + # 4481 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 93222 "src/ocaml/preprocess/parser_raw.ml" - - in +# 91468 "src/ocaml/preprocess/parser_raw.ml" + in + # 4732 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 93228 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 91474 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__5_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 93238 "src/ocaml/preprocess/parser_raw.ml" - - in +# 91484 "src/ocaml/preprocess/parser_raw.ml" + in + # 4734 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 93244 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in +# 91490 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__5_ in + # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 93251 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in - let m0 = - let _1 = +# 91497 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in + let m0 = + let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 93259 "src/ocaml/preprocess/parser_raw.ml" - in - +# 91505 "src/ocaml/preprocess/parser_raw.ml" + in + # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 93264 "src/ocaml/preprocess/parser_raw.ml" - - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in +# 91510 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 93274 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = +# 91520 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = # 4646 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 93280 "src/ocaml/preprocess/parser_raw.ml" - in - +# 91526 "src/ocaml/preprocess/parser_raw.ml" + in + # 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 93289 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__1_inlined3_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 91535 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__1_inlined3_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 93299 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 91545 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 93305 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type)) - in +# 91551 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -93387,154 +91632,152 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_ty_ in - let _v = + let _v : (Parsetree.core_type) = let _1 = let _1 = - let _1 = - let codomain_with_modes = - let _1 = _1_inlined3 in - let m1 = + let codomain_with_modes = + let _1 = _1_inlined3 in + let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 93399 "src/ocaml/preprocess/parser_raw.ml" - in - let m0 = - let _1 = +# 91643 "src/ocaml/preprocess/parser_raw.ml" + in + let m0 = + let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 93405 "src/ocaml/preprocess/parser_raw.ml" - in - +# 91649 "src/ocaml/preprocess/parser_raw.ml" + in + # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 93410 "src/ocaml/preprocess/parser_raw.ml" - - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in +# 91654 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 93420 "src/ocaml/preprocess/parser_raw.ml" +# 91664 "src/ocaml/preprocess/parser_raw.ml" + + in + let domain_with_modes = + let m1 = + let _1 = _1_inlined2 in - in - let domain_with_modes = - let m1 = - let _1 = _1_inlined2 in - # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 93429 "src/ocaml/preprocess/parser_raw.ml" - - in - let ty = - let _startpos__1_ = _startpos__1_inlined1_ in +# 91673 "src/ocaml/preprocess/parser_raw.ml" + + in + let ty = + let _startpos__1_ = _startpos__1_inlined1_ in + let _1 = let _1 = let _1 = - let _1 = - let bound_vars = - let _1 = - let xs = -# 264 "" + let bound_vars = + let _1 = + let xs = +# 253 "" ( List.rev xs ) -# 93442 "src/ocaml/preprocess/parser_raw.ml" - in - +# 91686 "src/ocaml/preprocess/parser_raw.ml" + in + # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 93447 "src/ocaml/preprocess/parser_raw.ml" - - in +# 91691 "src/ocaml/preprocess/parser_raw.ml" + in + # 4481 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 93453 "src/ocaml/preprocess/parser_raw.ml" - - in +# 91697 "src/ocaml/preprocess/parser_raw.ml" + in + # 4732 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 93459 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 91703 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__5_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 93469 "src/ocaml/preprocess/parser_raw.ml" - - in +# 91713 "src/ocaml/preprocess/parser_raw.ml" + in + # 4734 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 93475 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in +# 91719 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__5_ in + # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 93482 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in - let m0 = - let _1 = +# 91726 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in + let m0 = + let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 93490 "src/ocaml/preprocess/parser_raw.ml" - in - +# 91734 "src/ocaml/preprocess/parser_raw.ml" + in + # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 93495 "src/ocaml/preprocess/parser_raw.ml" - - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in +# 91739 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 93505 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = +# 91749 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = # 4646 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 93511 "src/ocaml/preprocess/parser_raw.ml" - in - +# 91755 "src/ocaml/preprocess/parser_raw.ml" + in + # 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 93520 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos_ty_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 91764 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos_ty_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 93530 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 91774 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 93536 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type)) - in +# 91780 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -93625,157 +91868,155 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined4_ in - let _v = + let _v : (Parsetree.core_type) = let _1 = let _1 = - let _1 = - let codomain_with_modes = - let (_1_inlined1, _1) = (_1_inlined4, _1_inlined3) in - let m1 = - let _1 = _1_inlined1 in - + let codomain_with_modes = + let (_1_inlined1, _1) = (_1_inlined4, _1_inlined3) in + let m1 = + let _1 = _1_inlined1 in + # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 93639 "src/ocaml/preprocess/parser_raw.ml" - - in - let m0 = - let _1 = +# 91881 "src/ocaml/preprocess/parser_raw.ml" + + in + let m0 = + let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 93646 "src/ocaml/preprocess/parser_raw.ml" - in - +# 91888 "src/ocaml/preprocess/parser_raw.ml" + in + # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 93651 "src/ocaml/preprocess/parser_raw.ml" - - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in +# 91893 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 93661 "src/ocaml/preprocess/parser_raw.ml" +# 91903 "src/ocaml/preprocess/parser_raw.ml" + + in + let domain_with_modes = + let m1 = + let _1 = _1_inlined2 in - in - let domain_with_modes = - let m1 = - let _1 = _1_inlined2 in - # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 93670 "src/ocaml/preprocess/parser_raw.ml" - - in - let ty = - let _startpos__1_ = _startpos__1_inlined1_ in +# 91912 "src/ocaml/preprocess/parser_raw.ml" + + in + let ty = + let _startpos__1_ = _startpos__1_inlined1_ in + let _1 = let _1 = let _1 = - let _1 = - let bound_vars = - let _1 = - let xs = -# 264 "" + let bound_vars = + let _1 = + let xs = +# 253 "" ( List.rev xs ) -# 93683 "src/ocaml/preprocess/parser_raw.ml" - in - +# 91925 "src/ocaml/preprocess/parser_raw.ml" + in + # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 93688 "src/ocaml/preprocess/parser_raw.ml" - - in +# 91930 "src/ocaml/preprocess/parser_raw.ml" + in + # 4481 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 93694 "src/ocaml/preprocess/parser_raw.ml" - - in +# 91936 "src/ocaml/preprocess/parser_raw.ml" + in + # 4732 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 93700 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 91942 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__5_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 93710 "src/ocaml/preprocess/parser_raw.ml" - - in +# 91952 "src/ocaml/preprocess/parser_raw.ml" + in + # 4734 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 93716 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__5_ in +# 91958 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__5_ in + # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 93723 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in - let m0 = - let _1 = +# 91965 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in + let m0 = + let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 93731 "src/ocaml/preprocess/parser_raw.ml" - in - +# 91973 "src/ocaml/preprocess/parser_raw.ml" + in + # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 93736 "src/ocaml/preprocess/parser_raw.ml" - - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in +# 91978 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 93746 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = +# 91988 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = # 4646 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 93752 "src/ocaml/preprocess/parser_raw.ml" - in - +# 91994 "src/ocaml/preprocess/parser_raw.ml" + in + # 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 93761 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__1_inlined4_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 92003 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__1_inlined4_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 93771 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 92013 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 93777 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type)) - in +# 92019 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -93817,103 +92058,101 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_ty_inlined1_ in - let _v = + let _v : (Parsetree.core_type) = let _1 = let _1 = - let _1 = - let codomain_with_modes = - let (_endpos_ty_, _startpos_ty_, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1) in - let m1 = + let codomain_with_modes = + let (_endpos_ty_, _startpos_ty_, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1) in + let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 93829 "src/ocaml/preprocess/parser_raw.ml" - in - let m0 = +# 92069 "src/ocaml/preprocess/parser_raw.ml" + in + let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 93834 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - +# 92074 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 93843 "src/ocaml/preprocess/parser_raw.ml" - - in - let domain_with_modes = - let m1 = +# 92083 "src/ocaml/preprocess/parser_raw.ml" + + in + let domain_with_modes = + let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 93850 "src/ocaml/preprocess/parser_raw.ml" - in - let ty = - let _1 = +# 92090 "src/ocaml/preprocess/parser_raw.ml" + in + let ty = + let _1 = # 4736 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 93856 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos__1_ = _endpos_ty_ in - +# 92096 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos_ty_ in + # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 93862 "src/ocaml/preprocess/parser_raw.ml" - - in - let m0 = - let _1 = +# 92102 "src/ocaml/preprocess/parser_raw.ml" + + in + let m0 = + let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 93869 "src/ocaml/preprocess/parser_raw.ml" - in - +# 92109 "src/ocaml/preprocess/parser_raw.ml" + in + # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 93874 "src/ocaml/preprocess/parser_raw.ml" - - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in +# 92114 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 93884 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = +# 92124 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = # 4646 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 93890 "src/ocaml/preprocess/parser_raw.ml" - in - +# 92130 "src/ocaml/preprocess/parser_raw.ml" + in + # 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 93899 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos_ty_inlined1_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 92139 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos_ty_inlined1_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 93909 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 92149 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 93915 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type)) - in +# 92155 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -93962,103 +92201,101 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined1_ in - let _v = + let _v : (Parsetree.core_type) = let _1 = let _1 = - let _1 = - let codomain_with_modes = - let (_endpos_ty_, _startpos_ty_, _1, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, _1_inlined1, ty_inlined1) in - let m1 = + let codomain_with_modes = + let (_endpos_ty_, _startpos_ty_, _1, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, _1_inlined1, ty_inlined1) in + let m1 = # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 93974 "src/ocaml/preprocess/parser_raw.ml" - in - let m0 = +# 92212 "src/ocaml/preprocess/parser_raw.ml" + in + let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 93979 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - +# 92217 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 93988 "src/ocaml/preprocess/parser_raw.ml" - - in - let domain_with_modes = - let m1 = +# 92226 "src/ocaml/preprocess/parser_raw.ml" + + in + let domain_with_modes = + let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 93995 "src/ocaml/preprocess/parser_raw.ml" - in - let ty = - let _1 = +# 92233 "src/ocaml/preprocess/parser_raw.ml" + in + let ty = + let _1 = # 4736 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 94001 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos__1_ = _endpos_ty_ in - +# 92239 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos_ty_ in + # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 94007 "src/ocaml/preprocess/parser_raw.ml" - - in - let m0 = - let _1 = +# 92245 "src/ocaml/preprocess/parser_raw.ml" + + in + let m0 = + let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 94014 "src/ocaml/preprocess/parser_raw.ml" - in - +# 92252 "src/ocaml/preprocess/parser_raw.ml" + in + # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 94019 "src/ocaml/preprocess/parser_raw.ml" - - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in +# 92257 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 94029 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = +# 92267 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = # 4646 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 94035 "src/ocaml/preprocess/parser_raw.ml" - in - +# 92273 "src/ocaml/preprocess/parser_raw.ml" + in + # 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 94044 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__1_inlined1_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 92282 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__1_inlined1_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 94054 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 92292 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 94060 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type)) - in +# 92298 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -94107,110 +92344,108 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_ty_inlined1_ in - let _v = + let _v : (Parsetree.core_type) = let _1 = let _1 = - let _1 = - let codomain_with_modes = - let (_endpos_ty_, _startpos_ty_, ty, _1) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1, _1_inlined1) in - let m1 = + let codomain_with_modes = + let (_endpos_ty_, _startpos_ty_, ty, _1) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1, _1_inlined1) in + let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 94119 "src/ocaml/preprocess/parser_raw.ml" - in - let m0 = - let _1 = +# 92355 "src/ocaml/preprocess/parser_raw.ml" + in + let m0 = + let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 94125 "src/ocaml/preprocess/parser_raw.ml" - in - +# 92361 "src/ocaml/preprocess/parser_raw.ml" + in + # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 94130 "src/ocaml/preprocess/parser_raw.ml" - - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in +# 92366 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 94140 "src/ocaml/preprocess/parser_raw.ml" - - in - let domain_with_modes = - let m1 = +# 92376 "src/ocaml/preprocess/parser_raw.ml" + + in + let domain_with_modes = + let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 94147 "src/ocaml/preprocess/parser_raw.ml" - in - let ty = - let _1 = +# 92383 "src/ocaml/preprocess/parser_raw.ml" + in + let ty = + let _1 = # 4736 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 94153 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos__1_ = _endpos_ty_ in - +# 92389 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos_ty_ in + # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 94159 "src/ocaml/preprocess/parser_raw.ml" - - in - let m0 = - let _1 = +# 92395 "src/ocaml/preprocess/parser_raw.ml" + + in + let m0 = + let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 94166 "src/ocaml/preprocess/parser_raw.ml" - in - +# 92402 "src/ocaml/preprocess/parser_raw.ml" + in + # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 94171 "src/ocaml/preprocess/parser_raw.ml" - - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in +# 92407 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 94181 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = +# 92417 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = # 4646 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 94187 "src/ocaml/preprocess/parser_raw.ml" - in - +# 92423 "src/ocaml/preprocess/parser_raw.ml" + in + # 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 94196 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos_ty_inlined1_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 92432 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos_ty_inlined1_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 94206 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 92442 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 94212 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type)) - in +# 92448 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -94266,113 +92501,111 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined2_ in - let _v = + let _v : (Parsetree.core_type) = let _1 = let _1 = - let _1 = - let codomain_with_modes = - let (_endpos_ty_, _startpos_ty_, _1_inlined1, ty, _1) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, _1_inlined2, ty_inlined1, _1_inlined1) in - let m1 = - let _1 = _1_inlined1 in - + let codomain_with_modes = + let (_endpos_ty_, _startpos_ty_, _1_inlined1, ty, _1) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, _1_inlined2, ty_inlined1, _1_inlined1) in + let m1 = + let _1 = _1_inlined1 in + # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 94280 "src/ocaml/preprocess/parser_raw.ml" - - in - let m0 = - let _1 = +# 92514 "src/ocaml/preprocess/parser_raw.ml" + + in + let m0 = + let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 94287 "src/ocaml/preprocess/parser_raw.ml" - in - +# 92521 "src/ocaml/preprocess/parser_raw.ml" + in + # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 94292 "src/ocaml/preprocess/parser_raw.ml" - - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in +# 92526 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 94302 "src/ocaml/preprocess/parser_raw.ml" - - in - let domain_with_modes = - let m1 = +# 92536 "src/ocaml/preprocess/parser_raw.ml" + + in + let domain_with_modes = + let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 94309 "src/ocaml/preprocess/parser_raw.ml" - in - let ty = - let _1 = +# 92543 "src/ocaml/preprocess/parser_raw.ml" + in + let ty = + let _1 = # 4736 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 94315 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos__1_ = _endpos_ty_ in - +# 92549 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos_ty_ in + # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 94321 "src/ocaml/preprocess/parser_raw.ml" - - in - let m0 = - let _1 = +# 92555 "src/ocaml/preprocess/parser_raw.ml" + + in + let m0 = + let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 94328 "src/ocaml/preprocess/parser_raw.ml" - in - +# 92562 "src/ocaml/preprocess/parser_raw.ml" + in + # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 94333 "src/ocaml/preprocess/parser_raw.ml" - - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in +# 92567 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 94343 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = +# 92577 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = # 4646 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 94349 "src/ocaml/preprocess/parser_raw.ml" - in - +# 92583 "src/ocaml/preprocess/parser_raw.ml" + in + # 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 94358 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__1_inlined2_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 92592 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__1_inlined2_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 94368 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 92602 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 94374 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type)) - in +# 92608 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -94421,106 +92654,104 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_ty_inlined1_ in - let _v = + let _v : (Parsetree.core_type) = let _1 = let _1 = - let _1 = - let codomain_with_modes = - let (_endpos_ty_, _startpos_ty_, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1) in - let m1 = + let codomain_with_modes = + let (_endpos_ty_, _startpos_ty_, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1) in + let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 94433 "src/ocaml/preprocess/parser_raw.ml" - in - let m0 = +# 92665 "src/ocaml/preprocess/parser_raw.ml" + in + let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 94438 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - +# 92670 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 94447 "src/ocaml/preprocess/parser_raw.ml" +# 92679 "src/ocaml/preprocess/parser_raw.ml" + + in + let domain_with_modes = + let m1 = + let _1 = _1_inlined1 in - in - let domain_with_modes = - let m1 = - let _1 = _1_inlined1 in - # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 94456 "src/ocaml/preprocess/parser_raw.ml" - - in - let ty = - let _1 = +# 92688 "src/ocaml/preprocess/parser_raw.ml" + + in + let ty = + let _1 = # 4736 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 94463 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos__1_ = _endpos_ty_ in - +# 92695 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos_ty_ in + # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 94469 "src/ocaml/preprocess/parser_raw.ml" - - in - let m0 = - let _1 = +# 92701 "src/ocaml/preprocess/parser_raw.ml" + + in + let m0 = + let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 94476 "src/ocaml/preprocess/parser_raw.ml" - in - +# 92708 "src/ocaml/preprocess/parser_raw.ml" + in + # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 94481 "src/ocaml/preprocess/parser_raw.ml" - - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in +# 92713 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 94491 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = +# 92723 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = # 4646 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 94497 "src/ocaml/preprocess/parser_raw.ml" - in - +# 92729 "src/ocaml/preprocess/parser_raw.ml" + in + # 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 94506 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos_ty_inlined1_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 92738 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos_ty_inlined1_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 94516 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 92748 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 94522 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type)) - in +# 92754 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -94576,106 +92807,104 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined2_ in - let _v = + let _v : (Parsetree.core_type) = let _1 = let _1 = - let _1 = - let codomain_with_modes = - let (_endpos_ty_, _startpos_ty_, _1, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, _1_inlined2, ty_inlined1) in - let m1 = + let codomain_with_modes = + let (_endpos_ty_, _startpos_ty_, _1, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, _1_inlined2, ty_inlined1) in + let m1 = # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 94588 "src/ocaml/preprocess/parser_raw.ml" - in - let m0 = +# 92818 "src/ocaml/preprocess/parser_raw.ml" + in + let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 94593 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - +# 92823 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 94602 "src/ocaml/preprocess/parser_raw.ml" +# 92832 "src/ocaml/preprocess/parser_raw.ml" + + in + let domain_with_modes = + let m1 = + let _1 = _1_inlined1 in - in - let domain_with_modes = - let m1 = - let _1 = _1_inlined1 in - # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 94611 "src/ocaml/preprocess/parser_raw.ml" - - in - let ty = - let _1 = +# 92841 "src/ocaml/preprocess/parser_raw.ml" + + in + let ty = + let _1 = # 4736 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 94618 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos__1_ = _endpos_ty_ in - +# 92848 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos_ty_ in + # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 94624 "src/ocaml/preprocess/parser_raw.ml" - - in - let m0 = - let _1 = +# 92854 "src/ocaml/preprocess/parser_raw.ml" + + in + let m0 = + let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 94631 "src/ocaml/preprocess/parser_raw.ml" - in - +# 92861 "src/ocaml/preprocess/parser_raw.ml" + in + # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 94636 "src/ocaml/preprocess/parser_raw.ml" - - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in +# 92866 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 94646 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = +# 92876 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = # 4646 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 94652 "src/ocaml/preprocess/parser_raw.ml" - in - +# 92882 "src/ocaml/preprocess/parser_raw.ml" + in + # 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 94661 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__1_inlined2_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 92891 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__1_inlined2_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 94671 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 92901 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 94677 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type)) - in +# 92907 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -94731,113 +92960,111 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_ty_inlined1_ in - let _v = + let _v : (Parsetree.core_type) = let _1 = let _1 = - let _1 = - let codomain_with_modes = - let (_endpos_ty_, _startpos_ty_, ty, _1) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1, _1_inlined2) in - let m1 = + let codomain_with_modes = + let (_endpos_ty_, _startpos_ty_, ty, _1) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1, _1_inlined2) in + let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 94743 "src/ocaml/preprocess/parser_raw.ml" - in - let m0 = - let _1 = +# 92971 "src/ocaml/preprocess/parser_raw.ml" + in + let m0 = + let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 94749 "src/ocaml/preprocess/parser_raw.ml" - in - +# 92977 "src/ocaml/preprocess/parser_raw.ml" + in + # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 94754 "src/ocaml/preprocess/parser_raw.ml" - - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in +# 92982 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 94764 "src/ocaml/preprocess/parser_raw.ml" +# 92992 "src/ocaml/preprocess/parser_raw.ml" + + in + let domain_with_modes = + let m1 = + let _1 = _1_inlined1 in - in - let domain_with_modes = - let m1 = - let _1 = _1_inlined1 in - # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 94773 "src/ocaml/preprocess/parser_raw.ml" - - in - let ty = - let _1 = +# 93001 "src/ocaml/preprocess/parser_raw.ml" + + in + let ty = + let _1 = # 4736 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 94780 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos__1_ = _endpos_ty_ in - +# 93008 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos_ty_ in + # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 94786 "src/ocaml/preprocess/parser_raw.ml" - - in - let m0 = - let _1 = +# 93014 "src/ocaml/preprocess/parser_raw.ml" + + in + let m0 = + let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 94793 "src/ocaml/preprocess/parser_raw.ml" - in - +# 93021 "src/ocaml/preprocess/parser_raw.ml" + in + # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 94798 "src/ocaml/preprocess/parser_raw.ml" - - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in +# 93026 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 94808 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = +# 93036 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = # 4646 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 94814 "src/ocaml/preprocess/parser_raw.ml" - in - +# 93042 "src/ocaml/preprocess/parser_raw.ml" + in + # 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 94823 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos_ty_inlined1_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 93051 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos_ty_inlined1_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 94833 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 93061 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 94839 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type)) - in +# 93067 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -94900,116 +93127,114 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined3_ in - let _v = + let _v : (Parsetree.core_type) = let _1 = let _1 = - let _1 = - let codomain_with_modes = - let (_endpos_ty_, _startpos_ty_, _1_inlined1, ty, _1) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, _1_inlined3, ty_inlined1, _1_inlined2) in - let m1 = - let _1 = _1_inlined1 in - + let codomain_with_modes = + let (_endpos_ty_, _startpos_ty_, _1_inlined1, ty, _1) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, _1_inlined3, ty_inlined1, _1_inlined2) in + let m1 = + let _1 = _1_inlined1 in + # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 94914 "src/ocaml/preprocess/parser_raw.ml" - - in - let m0 = - let _1 = +# 93140 "src/ocaml/preprocess/parser_raw.ml" + + in + let m0 = + let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 94921 "src/ocaml/preprocess/parser_raw.ml" - in - +# 93147 "src/ocaml/preprocess/parser_raw.ml" + in + # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 94926 "src/ocaml/preprocess/parser_raw.ml" - - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in +# 93152 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 94936 "src/ocaml/preprocess/parser_raw.ml" +# 93162 "src/ocaml/preprocess/parser_raw.ml" + + in + let domain_with_modes = + let m1 = + let _1 = _1_inlined1 in - in - let domain_with_modes = - let m1 = - let _1 = _1_inlined1 in - # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 94945 "src/ocaml/preprocess/parser_raw.ml" - - in - let ty = - let _1 = +# 93171 "src/ocaml/preprocess/parser_raw.ml" + + in + let ty = + let _1 = # 4736 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 94952 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos__1_ = _endpos_ty_ in - +# 93178 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos_ty_ in + # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 94958 "src/ocaml/preprocess/parser_raw.ml" - - in - let m0 = - let _1 = +# 93184 "src/ocaml/preprocess/parser_raw.ml" + + in + let m0 = + let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 94965 "src/ocaml/preprocess/parser_raw.ml" - in - +# 93191 "src/ocaml/preprocess/parser_raw.ml" + in + # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 94970 "src/ocaml/preprocess/parser_raw.ml" - - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in +# 93196 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 94980 "src/ocaml/preprocess/parser_raw.ml" - - in - let label = +# 93206 "src/ocaml/preprocess/parser_raw.ml" + + in + let label = # 4646 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 94986 "src/ocaml/preprocess/parser_raw.ml" - in - +# 93212 "src/ocaml/preprocess/parser_raw.ml" + in + # 4576 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 94995 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__1_inlined3_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 93221 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__1_inlined3_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 95005 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 93231 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 95011 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type)) - in +# 93237 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -95071,56 +93296,55 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 95075 "src/ocaml/preprocess/parser_raw.ml" +# 93300 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos_codomain_ in - let _v = + let _v : (Parsetree.core_type) = let _1 = let _1 = - let _1 = - let tuple_with_modes = - let m1 = + let tuple_with_modes = + let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 95087 "src/ocaml/preprocess/parser_raw.ml" - in - let ty = - let ltys = - let xs = -# 264 "" +# 93311 "src/ocaml/preprocess/parser_raw.ml" + in + let ty = + let ltys = + let xs = +# 253 "" ( List.rev xs ) -# 95094 "src/ocaml/preprocess/parser_raw.ml" - in - +# 93318 "src/ocaml/preprocess/parser_raw.ml" + in + # 1450 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 95099 "src/ocaml/preprocess/parser_raw.ml" - - in +# 93323 "src/ocaml/preprocess/parser_raw.ml" + in + # 4765 "src/ocaml/preprocess/parser_raw.mly" ( ty, ltys ) -# 95105 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_ty_ = _endpos_xs_ in - let m0 = +# 93329 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_ty_ = _endpos_xs_ in + let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 95112 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - +# 93336 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 95121 "src/ocaml/preprocess/parser_raw.ml" - - in +# 93345 "src/ocaml/preprocess/parser_raw.ml" + in + # 4600 "src/ocaml/preprocess/parser_raw.mly" ( let (tuple, tuple_loc), arg_modes = tuple_with_modes in @@ -95129,25 +93353,24 @@ module Tables = struct let domain = mktyp ~loc:tuple_loc (Ptyp_tuple ((None, ty) :: ltys)) in let domain = extra_rhs_core_type domain ~pos:(snd tuple_loc) in Ptyp_arrow(label, domain, codomain, arg_modes, []) ) -# 95133 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 93357 "src/ocaml/preprocess/parser_raw.ml" + in + let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 95143 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 93367 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4608 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 95149 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type)) - in +# 93373 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -95216,56 +93439,55 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 95220 "src/ocaml/preprocess/parser_raw.ml" +# 93443 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos_codomain_ in - let _v = + let _v : (Parsetree.core_type) = let _1 = let _1 = - let _1 = - let tuple_with_modes = - let m1 = + let tuple_with_modes = + let m1 = # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 95232 "src/ocaml/preprocess/parser_raw.ml" - in - let ty = - let ltys = - let xs = -# 264 "" +# 93454 "src/ocaml/preprocess/parser_raw.ml" + in + let ty = + let ltys = + let xs = +# 253 "" ( List.rev xs ) -# 95239 "src/ocaml/preprocess/parser_raw.ml" - in - +# 93461 "src/ocaml/preprocess/parser_raw.ml" + in + # 1450 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 95244 "src/ocaml/preprocess/parser_raw.ml" - - in +# 93466 "src/ocaml/preprocess/parser_raw.ml" + in + # 4765 "src/ocaml/preprocess/parser_raw.mly" ( ty, ltys ) -# 95250 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_ty_ = _endpos_xs_ in - let m0 = +# 93472 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_ty_ = _endpos_xs_ in + let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 95257 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - +# 93479 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 95266 "src/ocaml/preprocess/parser_raw.ml" - - in +# 93488 "src/ocaml/preprocess/parser_raw.ml" + in + # 4600 "src/ocaml/preprocess/parser_raw.mly" ( let (tuple, tuple_loc), arg_modes = tuple_with_modes in @@ -95274,25 +93496,24 @@ module Tables = struct let domain = mktyp ~loc:tuple_loc (Ptyp_tuple ((None, ty) :: ltys)) in let domain = extra_rhs_core_type domain ~pos:(snd tuple_loc) in Ptyp_arrow(label, domain, codomain, arg_modes, []) ) -# 95278 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 93500 "src/ocaml/preprocess/parser_raw.ml" + in + let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 95288 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 93510 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4608 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 95294 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type)) - in +# 93516 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -95361,63 +93582,62 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 95365 "src/ocaml/preprocess/parser_raw.ml" +# 93586 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos_codomain_ in - let _v = + let _v : (Parsetree.core_type) = let _1 = let _1 = - let _1 = - let tuple_with_modes = - let m1 = + let tuple_with_modes = + let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 95377 "src/ocaml/preprocess/parser_raw.ml" - in - let ty = - let ltys = - let xs = -# 264 "" +# 93597 "src/ocaml/preprocess/parser_raw.ml" + in + let ty = + let ltys = + let xs = +# 253 "" ( List.rev xs ) -# 95384 "src/ocaml/preprocess/parser_raw.ml" - in - +# 93604 "src/ocaml/preprocess/parser_raw.ml" + in + # 1450 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 95389 "src/ocaml/preprocess/parser_raw.ml" - - in +# 93609 "src/ocaml/preprocess/parser_raw.ml" + in + # 4765 "src/ocaml/preprocess/parser_raw.mly" ( ty, ltys ) -# 95395 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_ty_ = _endpos_xs_ in - let m0 = - let _1 = +# 93615 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_ty_ = _endpos_xs_ in + let m0 = + let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 95403 "src/ocaml/preprocess/parser_raw.ml" - in - +# 93623 "src/ocaml/preprocess/parser_raw.ml" + in + # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 95408 "src/ocaml/preprocess/parser_raw.ml" - - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in +# 93628 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 95418 "src/ocaml/preprocess/parser_raw.ml" - - in +# 93638 "src/ocaml/preprocess/parser_raw.ml" + in + # 4600 "src/ocaml/preprocess/parser_raw.mly" ( let (tuple, tuple_loc), arg_modes = tuple_with_modes in @@ -95426,25 +93646,24 @@ module Tables = struct let domain = mktyp ~loc:tuple_loc (Ptyp_tuple ((None, ty) :: ltys)) in let domain = extra_rhs_core_type domain ~pos:(snd tuple_loc) in Ptyp_arrow(label, domain, codomain, arg_modes, []) ) -# 95430 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 93650 "src/ocaml/preprocess/parser_raw.ml" + in + let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 95440 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 93660 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4608 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 95446 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type)) - in +# 93666 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -95520,66 +93739,65 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 95524 "src/ocaml/preprocess/parser_raw.ml" +# 93743 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos_codomain_ in - let _v = + let _v : (Parsetree.core_type) = let _1 = let _1 = - let _1 = - let tuple_with_modes = - let m1 = - let _1 = _1_inlined1 in - + let tuple_with_modes = + let m1 = + let _1 = _1_inlined1 in + # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 95538 "src/ocaml/preprocess/parser_raw.ml" - - in - let ty = - let ltys = - let xs = -# 264 "" +# 93756 "src/ocaml/preprocess/parser_raw.ml" + + in + let ty = + let ltys = + let xs = +# 253 "" ( List.rev xs ) -# 95546 "src/ocaml/preprocess/parser_raw.ml" - in - +# 93764 "src/ocaml/preprocess/parser_raw.ml" + in + # 1450 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 95551 "src/ocaml/preprocess/parser_raw.ml" - - in +# 93769 "src/ocaml/preprocess/parser_raw.ml" + in + # 4765 "src/ocaml/preprocess/parser_raw.mly" ( ty, ltys ) -# 95557 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_ty_ = _endpos_xs_ in - let m0 = - let _1 = +# 93775 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_ty_ = _endpos_xs_ in + let m0 = + let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 95565 "src/ocaml/preprocess/parser_raw.ml" - in - +# 93783 "src/ocaml/preprocess/parser_raw.ml" + in + # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 95570 "src/ocaml/preprocess/parser_raw.ml" - - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in +# 93788 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 95580 "src/ocaml/preprocess/parser_raw.ml" - - in +# 93798 "src/ocaml/preprocess/parser_raw.ml" + in + # 4600 "src/ocaml/preprocess/parser_raw.mly" ( let (tuple, tuple_loc), arg_modes = tuple_with_modes in @@ -95588,25 +93806,24 @@ module Tables = struct let domain = mktyp ~loc:tuple_loc (Ptyp_tuple ((None, ty) :: ltys)) in let domain = extra_rhs_core_type domain ~pos:(snd tuple_loc) in Ptyp_arrow(label, domain, codomain, arg_modes, []) ) -# 95592 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 93810 "src/ocaml/preprocess/parser_raw.ml" + in + let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 95602 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 93820 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4608 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 95608 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type)) - in +# 93826 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -95668,78 +93885,77 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 95672 "src/ocaml/preprocess/parser_raw.ml" +# 93889 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos_ty_inlined1_ in - let _v = + let _v : (Parsetree.core_type) = let _1 = let _1 = - let _1 = - let codomain_with_modes = - let (_endpos_ty_, _startpos_ty_, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1) in - let m1 = + let codomain_with_modes = + let (_endpos_ty_, _startpos_ty_, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1) in + let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 95685 "src/ocaml/preprocess/parser_raw.ml" - in - let m0 = +# 93901 "src/ocaml/preprocess/parser_raw.ml" + in + let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 95690 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - +# 93906 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 95699 "src/ocaml/preprocess/parser_raw.ml" - - in - let tuple_with_modes = - let m1 = +# 93915 "src/ocaml/preprocess/parser_raw.ml" + + in + let tuple_with_modes = + let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 95706 "src/ocaml/preprocess/parser_raw.ml" - in - let ty = - let ltys = - let xs = -# 264 "" +# 93922 "src/ocaml/preprocess/parser_raw.ml" + in + let ty = + let ltys = + let xs = +# 253 "" ( List.rev xs ) -# 95713 "src/ocaml/preprocess/parser_raw.ml" - in - +# 93929 "src/ocaml/preprocess/parser_raw.ml" + in + # 1450 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 95718 "src/ocaml/preprocess/parser_raw.ml" - - in +# 93934 "src/ocaml/preprocess/parser_raw.ml" + in + # 4765 "src/ocaml/preprocess/parser_raw.mly" ( ty, ltys ) -# 95724 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_ty_ = _endpos_xs_ in - let m0 = +# 93940 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_ty_ = _endpos_xs_ in + let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 95731 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - +# 93947 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 95740 "src/ocaml/preprocess/parser_raw.ml" - - in +# 93956 "src/ocaml/preprocess/parser_raw.ml" + in + # 4615 "src/ocaml/preprocess/parser_raw.mly" ( let (tuple, tuple_loc), arg_modes = tuple_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in @@ -95753,25 +93969,24 @@ module Tables = struct arg_modes, ret_modes) ) -# 95757 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 93973 "src/ocaml/preprocess/parser_raw.ml" + in + let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 95767 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 93983 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4628 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 95773 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type)) - in +# 93989 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -95840,78 +94055,77 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 95844 "src/ocaml/preprocess/parser_raw.ml" +# 94059 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos__1_ in - let _v = + let _v : (Parsetree.core_type) = let _1 = let _1 = - let _1 = - let codomain_with_modes = - let (_endpos_ty_, _startpos_ty_, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1) in - let m1 = + let codomain_with_modes = + let (_endpos_ty_, _startpos_ty_, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1) in + let m1 = # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 95857 "src/ocaml/preprocess/parser_raw.ml" - in - let m0 = +# 94071 "src/ocaml/preprocess/parser_raw.ml" + in + let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 95862 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - +# 94076 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 95871 "src/ocaml/preprocess/parser_raw.ml" - - in - let tuple_with_modes = - let m1 = +# 94085 "src/ocaml/preprocess/parser_raw.ml" + + in + let tuple_with_modes = + let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 95878 "src/ocaml/preprocess/parser_raw.ml" - in - let ty = - let ltys = - let xs = -# 264 "" +# 94092 "src/ocaml/preprocess/parser_raw.ml" + in + let ty = + let ltys = + let xs = +# 253 "" ( List.rev xs ) -# 95885 "src/ocaml/preprocess/parser_raw.ml" - in - +# 94099 "src/ocaml/preprocess/parser_raw.ml" + in + # 1450 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 95890 "src/ocaml/preprocess/parser_raw.ml" - - in +# 94104 "src/ocaml/preprocess/parser_raw.ml" + in + # 4765 "src/ocaml/preprocess/parser_raw.mly" ( ty, ltys ) -# 95896 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_ty_ = _endpos_xs_ in - let m0 = +# 94110 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_ty_ = _endpos_xs_ in + let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 95903 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - +# 94117 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 95912 "src/ocaml/preprocess/parser_raw.ml" - - in +# 94126 "src/ocaml/preprocess/parser_raw.ml" + in + # 4615 "src/ocaml/preprocess/parser_raw.mly" ( let (tuple, tuple_loc), arg_modes = tuple_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in @@ -95925,25 +94139,24 @@ module Tables = struct arg_modes, ret_modes) ) -# 95929 "src/ocaml/preprocess/parser_raw.ml" - - in - let _startpos__1_ = _startpos_label_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 94143 "src/ocaml/preprocess/parser_raw.ml" + in + let _startpos__1_ = _startpos_label_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 95939 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 94153 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4628 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 95945 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type)) - in +# 94159 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -96012,85 +94225,84 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 96016 "src/ocaml/preprocess/parser_raw.ml" +# 94229 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos_ty_inlined1_ in - let _v = + let _v : (Parsetree.core_type) = let _1 = let _1 = - let _1 = - let codomain_with_modes = - let (_endpos_ty_, _startpos_ty_, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1) in - let m1 = + let codomain_with_modes = + let (_endpos_ty_, _startpos_ty_, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1) in + let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 96029 "src/ocaml/preprocess/parser_raw.ml" - in - let m0 = - let _1 = +# 94241 "src/ocaml/preprocess/parser_raw.ml" + in + let m0 = + let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 96035 "src/ocaml/preprocess/parser_raw.ml" - in - +# 94247 "src/ocaml/preprocess/parser_raw.ml" + in + # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 96040 "src/ocaml/preprocess/parser_raw.ml" - - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in +# 94252 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 96050 "src/ocaml/preprocess/parser_raw.ml" - - in - let tuple_with_modes = - let m1 = +# 94262 "src/ocaml/preprocess/parser_raw.ml" + + in + let tuple_with_modes = + let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 96057 "src/ocaml/preprocess/parser_raw.ml" - in - let ty = - let ltys = - let xs = -# 264 "" +# 94269 "src/ocaml/preprocess/parser_raw.ml" + in + let ty = + let ltys = + let xs = +# 253 "" ( List.rev xs ) -# 96064 "src/ocaml/preprocess/parser_raw.ml" - in - +# 94276 "src/ocaml/preprocess/parser_raw.ml" + in + # 1450 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 96069 "src/ocaml/preprocess/parser_raw.ml" - - in +# 94281 "src/ocaml/preprocess/parser_raw.ml" + in + # 4765 "src/ocaml/preprocess/parser_raw.mly" ( ty, ltys ) -# 96075 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_ty_ = _endpos_xs_ in - let m0 = +# 94287 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_ty_ = _endpos_xs_ in + let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 96082 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - +# 94294 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 96091 "src/ocaml/preprocess/parser_raw.ml" - - in +# 94303 "src/ocaml/preprocess/parser_raw.ml" + in + # 4615 "src/ocaml/preprocess/parser_raw.mly" ( let (tuple, tuple_loc), arg_modes = tuple_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in @@ -96104,25 +94316,24 @@ module Tables = struct arg_modes, ret_modes) ) -# 96108 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 94320 "src/ocaml/preprocess/parser_raw.ml" + in + let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 96118 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 94330 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4628 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 96124 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type)) - in +# 94336 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -96198,88 +94409,87 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 96202 "src/ocaml/preprocess/parser_raw.ml" +# 94413 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos__1_inlined1_ in - let _v = + let _v : (Parsetree.core_type) = let _1 = let _1 = - let _1 = - let codomain_with_modes = - let (_endpos_ty_, _startpos_ty_, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1) in - let m1 = - let _1 = _1_inlined1 in - + let codomain_with_modes = + let (_endpos_ty_, _startpos_ty_, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1) in + let m1 = + let _1 = _1_inlined1 in + # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 96217 "src/ocaml/preprocess/parser_raw.ml" - - in - let m0 = - let _1 = +# 94427 "src/ocaml/preprocess/parser_raw.ml" + + in + let m0 = + let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 96224 "src/ocaml/preprocess/parser_raw.ml" - in - +# 94434 "src/ocaml/preprocess/parser_raw.ml" + in + # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 96229 "src/ocaml/preprocess/parser_raw.ml" - - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in +# 94439 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 96239 "src/ocaml/preprocess/parser_raw.ml" - - in - let tuple_with_modes = - let m1 = +# 94449 "src/ocaml/preprocess/parser_raw.ml" + + in + let tuple_with_modes = + let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 96246 "src/ocaml/preprocess/parser_raw.ml" - in - let ty = - let ltys = - let xs = -# 264 "" +# 94456 "src/ocaml/preprocess/parser_raw.ml" + in + let ty = + let ltys = + let xs = +# 253 "" ( List.rev xs ) -# 96253 "src/ocaml/preprocess/parser_raw.ml" - in - +# 94463 "src/ocaml/preprocess/parser_raw.ml" + in + # 1450 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 96258 "src/ocaml/preprocess/parser_raw.ml" - - in +# 94468 "src/ocaml/preprocess/parser_raw.ml" + in + # 4765 "src/ocaml/preprocess/parser_raw.mly" ( ty, ltys ) -# 96264 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_ty_ = _endpos_xs_ in - let m0 = +# 94474 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_ty_ = _endpos_xs_ in + let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 96271 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - +# 94481 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 96280 "src/ocaml/preprocess/parser_raw.ml" - - in +# 94490 "src/ocaml/preprocess/parser_raw.ml" + in + # 4615 "src/ocaml/preprocess/parser_raw.mly" ( let (tuple, tuple_loc), arg_modes = tuple_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in @@ -96293,25 +94503,24 @@ module Tables = struct arg_modes, ret_modes) ) -# 96297 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 94507 "src/ocaml/preprocess/parser_raw.ml" + in + let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 96307 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 94517 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4628 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 96313 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type)) - in +# 94523 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -96380,78 +94589,77 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 96384 "src/ocaml/preprocess/parser_raw.ml" +# 94593 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos_ty_inlined1_ in - let _v = + let _v : (Parsetree.core_type) = let _1 = let _1 = - let _1 = - let codomain_with_modes = - let (_endpos_ty_, _startpos_ty_, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1) in - let m1 = + let codomain_with_modes = + let (_endpos_ty_, _startpos_ty_, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1) in + let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 96397 "src/ocaml/preprocess/parser_raw.ml" - in - let m0 = +# 94605 "src/ocaml/preprocess/parser_raw.ml" + in + let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 96402 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - +# 94610 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 96411 "src/ocaml/preprocess/parser_raw.ml" - - in - let tuple_with_modes = - let m1 = +# 94619 "src/ocaml/preprocess/parser_raw.ml" + + in + let tuple_with_modes = + let m1 = # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 96418 "src/ocaml/preprocess/parser_raw.ml" - in - let ty = - let ltys = - let xs = -# 264 "" +# 94626 "src/ocaml/preprocess/parser_raw.ml" + in + let ty = + let ltys = + let xs = +# 253 "" ( List.rev xs ) -# 96425 "src/ocaml/preprocess/parser_raw.ml" - in - +# 94633 "src/ocaml/preprocess/parser_raw.ml" + in + # 1450 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 96430 "src/ocaml/preprocess/parser_raw.ml" - - in +# 94638 "src/ocaml/preprocess/parser_raw.ml" + in + # 4765 "src/ocaml/preprocess/parser_raw.mly" ( ty, ltys ) -# 96436 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_ty_ = _endpos_xs_ in - let m0 = +# 94644 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_ty_ = _endpos_xs_ in + let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 96443 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - +# 94651 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 96452 "src/ocaml/preprocess/parser_raw.ml" - - in +# 94660 "src/ocaml/preprocess/parser_raw.ml" + in + # 4615 "src/ocaml/preprocess/parser_raw.mly" ( let (tuple, tuple_loc), arg_modes = tuple_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in @@ -96465,25 +94673,24 @@ module Tables = struct arg_modes, ret_modes) ) -# 96469 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 94677 "src/ocaml/preprocess/parser_raw.ml" + in + let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 96479 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 94687 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4628 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 96485 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type)) - in +# 94693 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -96559,78 +94766,77 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 96563 "src/ocaml/preprocess/parser_raw.ml" +# 94770 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos__1_inlined1_ in - let _v = + let _v : (Parsetree.core_type) = let _1 = let _1 = - let _1 = - let codomain_with_modes = - let (_endpos_ty_, _startpos_ty_, _1, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, _1_inlined1, ty_inlined1) in - let m1 = + let codomain_with_modes = + let (_endpos_ty_, _startpos_ty_, _1, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, _1_inlined1, ty_inlined1) in + let m1 = # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 96576 "src/ocaml/preprocess/parser_raw.ml" - in - let m0 = +# 94782 "src/ocaml/preprocess/parser_raw.ml" + in + let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 96581 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - +# 94787 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 96590 "src/ocaml/preprocess/parser_raw.ml" - - in - let tuple_with_modes = - let m1 = +# 94796 "src/ocaml/preprocess/parser_raw.ml" + + in + let tuple_with_modes = + let m1 = # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 96597 "src/ocaml/preprocess/parser_raw.ml" - in - let ty = - let ltys = - let xs = -# 264 "" +# 94803 "src/ocaml/preprocess/parser_raw.ml" + in + let ty = + let ltys = + let xs = +# 253 "" ( List.rev xs ) -# 96604 "src/ocaml/preprocess/parser_raw.ml" - in - +# 94810 "src/ocaml/preprocess/parser_raw.ml" + in + # 1450 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 96609 "src/ocaml/preprocess/parser_raw.ml" - - in +# 94815 "src/ocaml/preprocess/parser_raw.ml" + in + # 4765 "src/ocaml/preprocess/parser_raw.mly" ( ty, ltys ) -# 96615 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_ty_ = _endpos_xs_ in - let m0 = +# 94821 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_ty_ = _endpos_xs_ in + let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 96622 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - +# 94828 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 96631 "src/ocaml/preprocess/parser_raw.ml" - - in +# 94837 "src/ocaml/preprocess/parser_raw.ml" + in + # 4615 "src/ocaml/preprocess/parser_raw.mly" ( let (tuple, tuple_loc), arg_modes = tuple_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in @@ -96644,25 +94850,24 @@ module Tables = struct arg_modes, ret_modes) ) -# 96648 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 94854 "src/ocaml/preprocess/parser_raw.ml" + in + let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 96658 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 94864 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4628 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 96664 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type)) - in +# 94870 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -96738,85 +94943,84 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 96742 "src/ocaml/preprocess/parser_raw.ml" +# 94947 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos_ty_inlined1_ in - let _v = + let _v : (Parsetree.core_type) = let _1 = let _1 = - let _1 = - let codomain_with_modes = - let (_endpos_ty_, _startpos_ty_, ty, _1) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1, _1_inlined1) in - let m1 = + let codomain_with_modes = + let (_endpos_ty_, _startpos_ty_, ty, _1) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1, _1_inlined1) in + let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 96755 "src/ocaml/preprocess/parser_raw.ml" - in - let m0 = - let _1 = +# 94959 "src/ocaml/preprocess/parser_raw.ml" + in + let m0 = + let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 96761 "src/ocaml/preprocess/parser_raw.ml" - in - +# 94965 "src/ocaml/preprocess/parser_raw.ml" + in + # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 96766 "src/ocaml/preprocess/parser_raw.ml" - - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in +# 94970 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 96776 "src/ocaml/preprocess/parser_raw.ml" - - in - let tuple_with_modes = - let m1 = +# 94980 "src/ocaml/preprocess/parser_raw.ml" + + in + let tuple_with_modes = + let m1 = # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 96783 "src/ocaml/preprocess/parser_raw.ml" - in - let ty = - let ltys = - let xs = -# 264 "" +# 94987 "src/ocaml/preprocess/parser_raw.ml" + in + let ty = + let ltys = + let xs = +# 253 "" ( List.rev xs ) -# 96790 "src/ocaml/preprocess/parser_raw.ml" - in - +# 94994 "src/ocaml/preprocess/parser_raw.ml" + in + # 1450 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 96795 "src/ocaml/preprocess/parser_raw.ml" - - in +# 94999 "src/ocaml/preprocess/parser_raw.ml" + in + # 4765 "src/ocaml/preprocess/parser_raw.mly" ( ty, ltys ) -# 96801 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_ty_ = _endpos_xs_ in - let m0 = +# 95005 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_ty_ = _endpos_xs_ in + let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 96808 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - +# 95012 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 96817 "src/ocaml/preprocess/parser_raw.ml" - - in +# 95021 "src/ocaml/preprocess/parser_raw.ml" + in + # 4615 "src/ocaml/preprocess/parser_raw.mly" ( let (tuple, tuple_loc), arg_modes = tuple_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in @@ -96830,25 +95034,24 @@ module Tables = struct arg_modes, ret_modes) ) -# 96834 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 95038 "src/ocaml/preprocess/parser_raw.ml" + in + let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 96844 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 95048 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4628 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 96850 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type)) - in +# 95054 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -96931,88 +95134,87 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 96935 "src/ocaml/preprocess/parser_raw.ml" +# 95138 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos__1_inlined2_ in - let _v = + let _v : (Parsetree.core_type) = let _1 = let _1 = - let _1 = - let codomain_with_modes = - let (_endpos_ty_, _startpos_ty_, _1_inlined1, ty, _1) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, _1_inlined2, ty_inlined1, _1_inlined1) in - let m1 = - let _1 = _1_inlined1 in - + let codomain_with_modes = + let (_endpos_ty_, _startpos_ty_, _1_inlined1, ty, _1) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, _1_inlined2, ty_inlined1, _1_inlined1) in + let m1 = + let _1 = _1_inlined1 in + # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 96950 "src/ocaml/preprocess/parser_raw.ml" - - in - let m0 = - let _1 = +# 95152 "src/ocaml/preprocess/parser_raw.ml" + + in + let m0 = + let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 96957 "src/ocaml/preprocess/parser_raw.ml" - in - +# 95159 "src/ocaml/preprocess/parser_raw.ml" + in + # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 96962 "src/ocaml/preprocess/parser_raw.ml" - - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in +# 95164 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 96972 "src/ocaml/preprocess/parser_raw.ml" - - in - let tuple_with_modes = - let m1 = +# 95174 "src/ocaml/preprocess/parser_raw.ml" + + in + let tuple_with_modes = + let m1 = # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 96979 "src/ocaml/preprocess/parser_raw.ml" - in - let ty = - let ltys = - let xs = -# 264 "" +# 95181 "src/ocaml/preprocess/parser_raw.ml" + in + let ty = + let ltys = + let xs = +# 253 "" ( List.rev xs ) -# 96986 "src/ocaml/preprocess/parser_raw.ml" - in - +# 95188 "src/ocaml/preprocess/parser_raw.ml" + in + # 1450 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 96991 "src/ocaml/preprocess/parser_raw.ml" - - in +# 95193 "src/ocaml/preprocess/parser_raw.ml" + in + # 4765 "src/ocaml/preprocess/parser_raw.mly" ( ty, ltys ) -# 96997 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_ty_ = _endpos_xs_ in - let m0 = +# 95199 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_ty_ = _endpos_xs_ in + let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 97004 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - +# 95206 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 97013 "src/ocaml/preprocess/parser_raw.ml" - - in +# 95215 "src/ocaml/preprocess/parser_raw.ml" + in + # 4615 "src/ocaml/preprocess/parser_raw.mly" ( let (tuple, tuple_loc), arg_modes = tuple_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in @@ -97026,25 +95228,24 @@ module Tables = struct arg_modes, ret_modes) ) -# 97030 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined2_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 95232 "src/ocaml/preprocess/parser_raw.ml" + in + let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined2_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 97040 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 95242 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4628 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 97046 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type)) - in +# 95248 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -97113,85 +95314,84 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 97117 "src/ocaml/preprocess/parser_raw.ml" +# 95318 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos_ty_inlined1_ in - let _v = + let _v : (Parsetree.core_type) = let _1 = let _1 = - let _1 = - let codomain_with_modes = - let (_endpos_ty_, _startpos_ty_, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1) in - let m1 = + let codomain_with_modes = + let (_endpos_ty_, _startpos_ty_, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1) in + let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 97130 "src/ocaml/preprocess/parser_raw.ml" - in - let m0 = +# 95330 "src/ocaml/preprocess/parser_raw.ml" + in + let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 97135 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - +# 95335 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 97144 "src/ocaml/preprocess/parser_raw.ml" - - in - let tuple_with_modes = - let m1 = +# 95344 "src/ocaml/preprocess/parser_raw.ml" + + in + let tuple_with_modes = + let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 97151 "src/ocaml/preprocess/parser_raw.ml" - in - let ty = - let ltys = - let xs = -# 264 "" +# 95351 "src/ocaml/preprocess/parser_raw.ml" + in + let ty = + let ltys = + let xs = +# 253 "" ( List.rev xs ) -# 97158 "src/ocaml/preprocess/parser_raw.ml" - in - +# 95358 "src/ocaml/preprocess/parser_raw.ml" + in + # 1450 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 97163 "src/ocaml/preprocess/parser_raw.ml" - - in +# 95363 "src/ocaml/preprocess/parser_raw.ml" + in + # 4765 "src/ocaml/preprocess/parser_raw.mly" ( ty, ltys ) -# 97169 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_ty_ = _endpos_xs_ in - let m0 = - let _1 = +# 95369 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_ty_ = _endpos_xs_ in + let m0 = + let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 97177 "src/ocaml/preprocess/parser_raw.ml" - in - +# 95377 "src/ocaml/preprocess/parser_raw.ml" + in + # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 97182 "src/ocaml/preprocess/parser_raw.ml" - - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in +# 95382 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 97192 "src/ocaml/preprocess/parser_raw.ml" - - in +# 95392 "src/ocaml/preprocess/parser_raw.ml" + in + # 4615 "src/ocaml/preprocess/parser_raw.mly" ( let (tuple, tuple_loc), arg_modes = tuple_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in @@ -97205,25 +95405,24 @@ module Tables = struct arg_modes, ret_modes) ) -# 97209 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 95409 "src/ocaml/preprocess/parser_raw.ml" + in + let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 97219 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 95419 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4628 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 97225 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type)) - in +# 95425 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -97299,85 +95498,84 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 97303 "src/ocaml/preprocess/parser_raw.ml" +# 95502 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos__1_inlined1_ in - let _v = + let _v : (Parsetree.core_type) = let _1 = let _1 = - let _1 = - let codomain_with_modes = - let (_endpos_ty_, _startpos_ty_, _1, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, _1_inlined1, ty_inlined1) in - let m1 = + let codomain_with_modes = + let (_endpos_ty_, _startpos_ty_, _1, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, _1_inlined1, ty_inlined1) in + let m1 = # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 97316 "src/ocaml/preprocess/parser_raw.ml" - in - let m0 = +# 95514 "src/ocaml/preprocess/parser_raw.ml" + in + let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 97321 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - +# 95519 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 97330 "src/ocaml/preprocess/parser_raw.ml" - - in - let tuple_with_modes = - let m1 = +# 95528 "src/ocaml/preprocess/parser_raw.ml" + + in + let tuple_with_modes = + let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 97337 "src/ocaml/preprocess/parser_raw.ml" - in - let ty = - let ltys = - let xs = -# 264 "" +# 95535 "src/ocaml/preprocess/parser_raw.ml" + in + let ty = + let ltys = + let xs = +# 253 "" ( List.rev xs ) -# 97344 "src/ocaml/preprocess/parser_raw.ml" - in - +# 95542 "src/ocaml/preprocess/parser_raw.ml" + in + # 1450 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 97349 "src/ocaml/preprocess/parser_raw.ml" - - in +# 95547 "src/ocaml/preprocess/parser_raw.ml" + in + # 4765 "src/ocaml/preprocess/parser_raw.mly" ( ty, ltys ) -# 97355 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_ty_ = _endpos_xs_ in - let m0 = - let _1 = +# 95553 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_ty_ = _endpos_xs_ in + let m0 = + let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 97363 "src/ocaml/preprocess/parser_raw.ml" - in - +# 95561 "src/ocaml/preprocess/parser_raw.ml" + in + # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 97368 "src/ocaml/preprocess/parser_raw.ml" - - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in +# 95566 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 97378 "src/ocaml/preprocess/parser_raw.ml" - - in +# 95576 "src/ocaml/preprocess/parser_raw.ml" + in + # 4615 "src/ocaml/preprocess/parser_raw.mly" ( let (tuple, tuple_loc), arg_modes = tuple_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in @@ -97391,25 +95589,24 @@ module Tables = struct arg_modes, ret_modes) ) -# 97395 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 95593 "src/ocaml/preprocess/parser_raw.ml" + in + let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 97405 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 95603 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4628 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 97411 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type)) - in +# 95609 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -97485,92 +95682,91 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 97489 "src/ocaml/preprocess/parser_raw.ml" +# 95686 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos_ty_inlined1_ in - let _v = + let _v : (Parsetree.core_type) = let _1 = let _1 = - let _1 = - let codomain_with_modes = - let (_endpos_ty_, _startpos_ty_, ty, _1) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1, _1_inlined1) in - let m1 = + let codomain_with_modes = + let (_endpos_ty_, _startpos_ty_, ty, _1) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1, _1_inlined1) in + let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 97502 "src/ocaml/preprocess/parser_raw.ml" - in - let m0 = - let _1 = +# 95698 "src/ocaml/preprocess/parser_raw.ml" + in + let m0 = + let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 97508 "src/ocaml/preprocess/parser_raw.ml" - in - +# 95704 "src/ocaml/preprocess/parser_raw.ml" + in + # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 97513 "src/ocaml/preprocess/parser_raw.ml" - - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in +# 95709 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 97523 "src/ocaml/preprocess/parser_raw.ml" - - in - let tuple_with_modes = - let m1 = +# 95719 "src/ocaml/preprocess/parser_raw.ml" + + in + let tuple_with_modes = + let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 97530 "src/ocaml/preprocess/parser_raw.ml" - in - let ty = - let ltys = - let xs = -# 264 "" +# 95726 "src/ocaml/preprocess/parser_raw.ml" + in + let ty = + let ltys = + let xs = +# 253 "" ( List.rev xs ) -# 97537 "src/ocaml/preprocess/parser_raw.ml" - in - +# 95733 "src/ocaml/preprocess/parser_raw.ml" + in + # 1450 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 97542 "src/ocaml/preprocess/parser_raw.ml" - - in +# 95738 "src/ocaml/preprocess/parser_raw.ml" + in + # 4765 "src/ocaml/preprocess/parser_raw.mly" ( ty, ltys ) -# 97548 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_ty_ = _endpos_xs_ in - let m0 = - let _1 = +# 95744 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_ty_ = _endpos_xs_ in + let m0 = + let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 97556 "src/ocaml/preprocess/parser_raw.ml" - in - +# 95752 "src/ocaml/preprocess/parser_raw.ml" + in + # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 97561 "src/ocaml/preprocess/parser_raw.ml" - - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in +# 95757 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 97571 "src/ocaml/preprocess/parser_raw.ml" - - in +# 95767 "src/ocaml/preprocess/parser_raw.ml" + in + # 4615 "src/ocaml/preprocess/parser_raw.mly" ( let (tuple, tuple_loc), arg_modes = tuple_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in @@ -97584,25 +95780,24 @@ module Tables = struct arg_modes, ret_modes) ) -# 97588 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 95784 "src/ocaml/preprocess/parser_raw.ml" + in + let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 97598 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 95794 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4628 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 97604 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type)) - in +# 95800 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -97685,95 +95880,94 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 97689 "src/ocaml/preprocess/parser_raw.ml" +# 95884 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos__1_inlined2_ in - let _v = + let _v : (Parsetree.core_type) = let _1 = let _1 = - let _1 = - let codomain_with_modes = - let (_endpos_ty_, _startpos_ty_, _1_inlined1, ty, _1) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, _1_inlined2, ty_inlined1, _1_inlined1) in - let m1 = - let _1 = _1_inlined1 in - + let codomain_with_modes = + let (_endpos_ty_, _startpos_ty_, _1_inlined1, ty, _1) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, _1_inlined2, ty_inlined1, _1_inlined1) in + let m1 = + let _1 = _1_inlined1 in + # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 97704 "src/ocaml/preprocess/parser_raw.ml" - - in - let m0 = - let _1 = +# 95898 "src/ocaml/preprocess/parser_raw.ml" + + in + let m0 = + let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 97711 "src/ocaml/preprocess/parser_raw.ml" - in - +# 95905 "src/ocaml/preprocess/parser_raw.ml" + in + # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 97716 "src/ocaml/preprocess/parser_raw.ml" - - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in +# 95910 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 97726 "src/ocaml/preprocess/parser_raw.ml" - - in - let tuple_with_modes = - let m1 = +# 95920 "src/ocaml/preprocess/parser_raw.ml" + + in + let tuple_with_modes = + let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 97733 "src/ocaml/preprocess/parser_raw.ml" - in - let ty = - let ltys = - let xs = -# 264 "" +# 95927 "src/ocaml/preprocess/parser_raw.ml" + in + let ty = + let ltys = + let xs = +# 253 "" ( List.rev xs ) -# 97740 "src/ocaml/preprocess/parser_raw.ml" - in - +# 95934 "src/ocaml/preprocess/parser_raw.ml" + in + # 1450 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 97745 "src/ocaml/preprocess/parser_raw.ml" - - in +# 95939 "src/ocaml/preprocess/parser_raw.ml" + in + # 4765 "src/ocaml/preprocess/parser_raw.mly" ( ty, ltys ) -# 97751 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_ty_ = _endpos_xs_ in - let m0 = - let _1 = +# 95945 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_ty_ = _endpos_xs_ in + let m0 = + let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 97759 "src/ocaml/preprocess/parser_raw.ml" - in - +# 95953 "src/ocaml/preprocess/parser_raw.ml" + in + # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 97764 "src/ocaml/preprocess/parser_raw.ml" - - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in +# 95958 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 97774 "src/ocaml/preprocess/parser_raw.ml" - - in +# 95968 "src/ocaml/preprocess/parser_raw.ml" + in + # 4615 "src/ocaml/preprocess/parser_raw.mly" ( let (tuple, tuple_loc), arg_modes = tuple_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in @@ -97787,25 +95981,24 @@ module Tables = struct arg_modes, ret_modes) ) -# 97791 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined2_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 95985 "src/ocaml/preprocess/parser_raw.ml" + in + let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined2_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 97801 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 95995 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4628 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 97807 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type)) - in +# 96001 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -97881,88 +96074,87 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 97885 "src/ocaml/preprocess/parser_raw.ml" +# 96078 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos_ty_inlined1_ in - let _v = + let _v : (Parsetree.core_type) = let _1 = let _1 = - let _1 = - let codomain_with_modes = - let (_endpos_ty_, _startpos_ty_, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1) in - let m1 = + let codomain_with_modes = + let (_endpos_ty_, _startpos_ty_, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1) in + let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 97898 "src/ocaml/preprocess/parser_raw.ml" - in - let m0 = +# 96090 "src/ocaml/preprocess/parser_raw.ml" + in + let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 97903 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - +# 96095 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 97912 "src/ocaml/preprocess/parser_raw.ml" +# 96104 "src/ocaml/preprocess/parser_raw.ml" + + in + let tuple_with_modes = + let m1 = + let _1 = _1_inlined1 in - in - let tuple_with_modes = - let m1 = - let _1 = _1_inlined1 in - # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 97921 "src/ocaml/preprocess/parser_raw.ml" - - in - let ty = - let ltys = - let xs = -# 264 "" +# 96113 "src/ocaml/preprocess/parser_raw.ml" + + in + let ty = + let ltys = + let xs = +# 253 "" ( List.rev xs ) -# 97929 "src/ocaml/preprocess/parser_raw.ml" - in - +# 96121 "src/ocaml/preprocess/parser_raw.ml" + in + # 1450 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 97934 "src/ocaml/preprocess/parser_raw.ml" - - in +# 96126 "src/ocaml/preprocess/parser_raw.ml" + in + # 4765 "src/ocaml/preprocess/parser_raw.mly" ( ty, ltys ) -# 97940 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_ty_ = _endpos_xs_ in - let m0 = - let _1 = +# 96132 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_ty_ = _endpos_xs_ in + let m0 = + let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 97948 "src/ocaml/preprocess/parser_raw.ml" - in - +# 96140 "src/ocaml/preprocess/parser_raw.ml" + in + # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 97953 "src/ocaml/preprocess/parser_raw.ml" - - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in +# 96145 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 97963 "src/ocaml/preprocess/parser_raw.ml" - - in +# 96155 "src/ocaml/preprocess/parser_raw.ml" + in + # 4615 "src/ocaml/preprocess/parser_raw.mly" ( let (tuple, tuple_loc), arg_modes = tuple_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in @@ -97976,25 +96168,24 @@ module Tables = struct arg_modes, ret_modes) ) -# 97980 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 96172 "src/ocaml/preprocess/parser_raw.ml" + in + let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 97990 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 96182 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4628 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 97996 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type)) - in +# 96188 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -98077,88 +96268,87 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 98081 "src/ocaml/preprocess/parser_raw.ml" +# 96272 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos__1_inlined2_ in - let _v = + let _v : (Parsetree.core_type) = let _1 = let _1 = - let _1 = - let codomain_with_modes = - let (_endpos_ty_, _startpos_ty_, _1, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, _1_inlined2, ty_inlined1) in - let m1 = + let codomain_with_modes = + let (_endpos_ty_, _startpos_ty_, _1, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, _1_inlined2, ty_inlined1) in + let m1 = # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 98094 "src/ocaml/preprocess/parser_raw.ml" - in - let m0 = +# 96284 "src/ocaml/preprocess/parser_raw.ml" + in + let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 98099 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in - +# 96289 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 98108 "src/ocaml/preprocess/parser_raw.ml" +# 96298 "src/ocaml/preprocess/parser_raw.ml" + + in + let tuple_with_modes = + let m1 = + let _1 = _1_inlined1 in - in - let tuple_with_modes = - let m1 = - let _1 = _1_inlined1 in - # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 98117 "src/ocaml/preprocess/parser_raw.ml" - - in - let ty = - let ltys = - let xs = -# 264 "" +# 96307 "src/ocaml/preprocess/parser_raw.ml" + + in + let ty = + let ltys = + let xs = +# 253 "" ( List.rev xs ) -# 98125 "src/ocaml/preprocess/parser_raw.ml" - in - +# 96315 "src/ocaml/preprocess/parser_raw.ml" + in + # 1450 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 98130 "src/ocaml/preprocess/parser_raw.ml" - - in +# 96320 "src/ocaml/preprocess/parser_raw.ml" + in + # 4765 "src/ocaml/preprocess/parser_raw.mly" ( ty, ltys ) -# 98136 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_ty_ = _endpos_xs_ in - let m0 = - let _1 = +# 96326 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_ty_ = _endpos_xs_ in + let m0 = + let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 98144 "src/ocaml/preprocess/parser_raw.ml" - in - +# 96334 "src/ocaml/preprocess/parser_raw.ml" + in + # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 98149 "src/ocaml/preprocess/parser_raw.ml" - - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in +# 96339 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 98159 "src/ocaml/preprocess/parser_raw.ml" - - in +# 96349 "src/ocaml/preprocess/parser_raw.ml" + in + # 4615 "src/ocaml/preprocess/parser_raw.mly" ( let (tuple, tuple_loc), arg_modes = tuple_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in @@ -98172,25 +96362,24 @@ module Tables = struct arg_modes, ret_modes) ) -# 98176 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined2_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 96366 "src/ocaml/preprocess/parser_raw.ml" + in + let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined2_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 98186 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 96376 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4628 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 98192 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type)) - in +# 96382 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -98273,95 +96462,94 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 98277 "src/ocaml/preprocess/parser_raw.ml" +# 96466 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos_ty_inlined1_ in - let _v = + let _v : (Parsetree.core_type) = let _1 = let _1 = - let _1 = - let codomain_with_modes = - let (_endpos_ty_, _startpos_ty_, ty, _1) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1, _1_inlined2) in - let m1 = + let codomain_with_modes = + let (_endpos_ty_, _startpos_ty_, ty, _1) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1, _1_inlined2) in + let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 98290 "src/ocaml/preprocess/parser_raw.ml" - in - let m0 = - let _1 = +# 96478 "src/ocaml/preprocess/parser_raw.ml" + in + let m0 = + let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 98296 "src/ocaml/preprocess/parser_raw.ml" - in - +# 96484 "src/ocaml/preprocess/parser_raw.ml" + in + # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 98301 "src/ocaml/preprocess/parser_raw.ml" - - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in +# 96489 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 98311 "src/ocaml/preprocess/parser_raw.ml" +# 96499 "src/ocaml/preprocess/parser_raw.ml" + + in + let tuple_with_modes = + let m1 = + let _1 = _1_inlined1 in - in - let tuple_with_modes = - let m1 = - let _1 = _1_inlined1 in - # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 98320 "src/ocaml/preprocess/parser_raw.ml" - - in - let ty = - let ltys = - let xs = -# 264 "" +# 96508 "src/ocaml/preprocess/parser_raw.ml" + + in + let ty = + let ltys = + let xs = +# 253 "" ( List.rev xs ) -# 98328 "src/ocaml/preprocess/parser_raw.ml" - in - +# 96516 "src/ocaml/preprocess/parser_raw.ml" + in + # 1450 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 98333 "src/ocaml/preprocess/parser_raw.ml" - - in +# 96521 "src/ocaml/preprocess/parser_raw.ml" + in + # 4765 "src/ocaml/preprocess/parser_raw.mly" ( ty, ltys ) -# 98339 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_ty_ = _endpos_xs_ in - let m0 = - let _1 = +# 96527 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_ty_ = _endpos_xs_ in + let m0 = + let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 98347 "src/ocaml/preprocess/parser_raw.ml" - in - +# 96535 "src/ocaml/preprocess/parser_raw.ml" + in + # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 98352 "src/ocaml/preprocess/parser_raw.ml" - - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in +# 96540 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 98362 "src/ocaml/preprocess/parser_raw.ml" - - in +# 96550 "src/ocaml/preprocess/parser_raw.ml" + in + # 4615 "src/ocaml/preprocess/parser_raw.mly" ( let (tuple, tuple_loc), arg_modes = tuple_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in @@ -98375,25 +96563,24 @@ module Tables = struct arg_modes, ret_modes) ) -# 98379 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 96567 "src/ocaml/preprocess/parser_raw.ml" + in + let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 98389 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 96577 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4628 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 98395 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type)) - in +# 96583 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -98483,98 +96670,97 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 98487 "src/ocaml/preprocess/parser_raw.ml" +# 96674 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos__1_inlined3_ in - let _v = + let _v : (Parsetree.core_type) = let _1 = let _1 = - let _1 = - let codomain_with_modes = - let (_endpos_ty_, _startpos_ty_, _1_inlined1, ty, _1) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, _1_inlined3, ty_inlined1, _1_inlined2) in - let m1 = - let _1 = _1_inlined1 in - + let codomain_with_modes = + let (_endpos_ty_, _startpos_ty_, _1_inlined1, ty, _1) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, _1_inlined3, ty_inlined1, _1_inlined2) in + let m1 = + let _1 = _1_inlined1 in + # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 98502 "src/ocaml/preprocess/parser_raw.ml" - - in - let m0 = - let _1 = +# 96688 "src/ocaml/preprocess/parser_raw.ml" + + in + let m0 = + let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 98509 "src/ocaml/preprocess/parser_raw.ml" - in - +# 96695 "src/ocaml/preprocess/parser_raw.ml" + in + # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 98514 "src/ocaml/preprocess/parser_raw.ml" - - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in +# 96700 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 98524 "src/ocaml/preprocess/parser_raw.ml" +# 96710 "src/ocaml/preprocess/parser_raw.ml" + + in + let tuple_with_modes = + let m1 = + let _1 = _1_inlined1 in - in - let tuple_with_modes = - let m1 = - let _1 = _1_inlined1 in - # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 98533 "src/ocaml/preprocess/parser_raw.ml" - - in - let ty = - let ltys = - let xs = -# 264 "" +# 96719 "src/ocaml/preprocess/parser_raw.ml" + + in + let ty = + let ltys = + let xs = +# 253 "" ( List.rev xs ) -# 98541 "src/ocaml/preprocess/parser_raw.ml" - in - +# 96727 "src/ocaml/preprocess/parser_raw.ml" + in + # 1450 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 98546 "src/ocaml/preprocess/parser_raw.ml" - - in +# 96732 "src/ocaml/preprocess/parser_raw.ml" + in + # 4765 "src/ocaml/preprocess/parser_raw.mly" ( ty, ltys ) -# 98552 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_ty_ = _endpos_xs_ in - let m0 = - let _1 = +# 96738 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_ty_ = _endpos_xs_ in + let m0 = + let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 98560 "src/ocaml/preprocess/parser_raw.ml" - in - +# 96746 "src/ocaml/preprocess/parser_raw.ml" + in + # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 98565 "src/ocaml/preprocess/parser_raw.ml" - - in - let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in +# 96751 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in + # 4687 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 98575 "src/ocaml/preprocess/parser_raw.ml" - - in +# 96761 "src/ocaml/preprocess/parser_raw.ml" + in + # 4615 "src/ocaml/preprocess/parser_raw.mly" ( let (tuple, tuple_loc), arg_modes = tuple_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in @@ -98588,25 +96774,24 @@ module Tables = struct arg_modes, ret_modes) ) -# 98592 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined3_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 96778 "src/ocaml/preprocess/parser_raw.ml" + in + let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined3_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 98602 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 96788 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4628 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 98608 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type)) - in +# 96794 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -98654,43 +96839,41 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 98658 "src/ocaml/preprocess/parser_raw.ml" +# 96843 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos_xs_ in - let _v = - let _3 = - let ltys = - let xs = -# 264 "" + let _v : (Parsetree.core_type) = let _3 = + let ltys = + let xs = +# 253 "" ( List.rev xs ) -# 98669 "src/ocaml/preprocess/parser_raw.ml" - in - +# 96853 "src/ocaml/preprocess/parser_raw.ml" + in + # 1450 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 98674 "src/ocaml/preprocess/parser_raw.ml" - - in +# 96858 "src/ocaml/preprocess/parser_raw.ml" + in + # 4765 "src/ocaml/preprocess/parser_raw.mly" ( ty, ltys ) -# 98680 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__3_ = _endpos_xs_ in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos_label_ in - let _sloc = (_symbolstartpos, _endpos) in - ( +# 96864 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__3_ = _endpos_xs_ in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos_label_ in + let _sloc = (_symbolstartpos, _endpos) in + # 4630 "src/ocaml/preprocess/parser_raw.mly" ( let ty, ltys = _3 in mktyp ~loc:_sloc (Ptyp_tuple ((Some label, ty) :: ltys)) ) -# 98692 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type)) - in +# 96876 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -98711,47 +96894,45 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_xss_ in let _endpos = _endpos_xss_ in - let _v = + let _v : (Parsetree.structure) = let _1 = let _1 = - let _1 = - let ys = -# 271 "" + let ys = +# 260 "" ( List.flatten xss ) -# 98721 "src/ocaml/preprocess/parser_raw.ml" - in - let xs = - let items = +# 96903 "src/ocaml/preprocess/parser_raw.ml" + in + let xs = + let items = # 1366 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 98727 "src/ocaml/preprocess/parser_raw.ml" - in - +# 96909 "src/ocaml/preprocess/parser_raw.ml" + in + # 1842 "src/ocaml/preprocess/parser_raw.mly" ( items ) -# 98732 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 278 "" - ( xs @ ys ) -# 98738 "src/ocaml/preprocess/parser_raw.ml" +# 96914 "src/ocaml/preprocess/parser_raw.ml" in - let (_endpos__1_, _startpos__1_) = (_endpos_xss_, _startpos_xss_) in - let _endpos = _endpos__1_ in - let _startpos = _startpos__1_ in -# 1288 "src/ocaml/preprocess/parser_raw.mly" - ( extra_str _startpos _endpos _1 ) -# 98747 "src/ocaml/preprocess/parser_raw.ml" +# 267 "" + ( xs @ ys ) +# 96920 "src/ocaml/preprocess/parser_raw.ml" in - ( + let (_endpos__1_, _startpos__1_) = (_endpos_xss_, _startpos_xss_) in + let _endpos = _endpos__1_ in + let _startpos = _startpos__1_ in + +# 1288 "src/ocaml/preprocess/parser_raw.mly" + ( extra_str _startpos _endpos _1 ) +# 96929 "src/ocaml/preprocess/parser_raw.ml" + + in + # 1835 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 98753 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.structure)) - in +# 96935 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -98786,81 +96967,79 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_e_ in let _endpos = _endpos_xss_ in - let _v = + let _v : (Parsetree.structure) = let _1 = let _1 = - let _1 = - let ys = -# 271 "" + let ys = +# 260 "" ( List.flatten xss ) -# 98796 "src/ocaml/preprocess/parser_raw.ml" - in - let xs = - let items = - let x = +# 96976 "src/ocaml/preprocess/parser_raw.ml" + in + let xs = + let items = + let x = + let _1 = let _1 = - let _1 = - let attrs = + let attrs = # 5399 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 98806 "src/ocaml/preprocess/parser_raw.ml" - in - +# 96986 "src/ocaml/preprocess/parser_raw.ml" + in + # 1849 "src/ocaml/preprocess/parser_raw.mly" ( mkstrexp e attrs ) -# 98811 "src/ocaml/preprocess/parser_raw.ml" - - in - let _startpos__1_ = _startpos_e_ in - let _startpos = _startpos__1_ in - -# 1300 "src/ocaml/preprocess/parser_raw.mly" - ( text_str _startpos @ [_1] ) -# 98819 "src/ocaml/preprocess/parser_raw.ml" +# 96991 "src/ocaml/preprocess/parser_raw.ml" in let _startpos__1_ = _startpos_e_ in - let _endpos = _endpos__1_ in let _startpos = _startpos__1_ in -# 1319 "src/ocaml/preprocess/parser_raw.mly" - ( mark_rhs_docs _startpos _endpos; - _1 ) -# 98829 "src/ocaml/preprocess/parser_raw.ml" +# 1300 "src/ocaml/preprocess/parser_raw.mly" + ( text_str _startpos @ [_1] ) +# 96999 "src/ocaml/preprocess/parser_raw.ml" in + let _startpos__1_ = _startpos_e_ in + let _endpos = _endpos__1_ in + let _startpos = _startpos__1_ in -# 1368 "src/ocaml/preprocess/parser_raw.mly" - ( x ) -# 98835 "src/ocaml/preprocess/parser_raw.ml" +# 1319 "src/ocaml/preprocess/parser_raw.mly" + ( mark_rhs_docs _startpos _endpos; + _1 ) +# 97009 "src/ocaml/preprocess/parser_raw.ml" in -# 1842 "src/ocaml/preprocess/parser_raw.mly" - ( items ) -# 98841 "src/ocaml/preprocess/parser_raw.ml" +# 1368 "src/ocaml/preprocess/parser_raw.mly" + ( x ) +# 97015 "src/ocaml/preprocess/parser_raw.ml" in -# 278 "" - ( xs @ ys ) -# 98847 "src/ocaml/preprocess/parser_raw.ml" +# 1842 "src/ocaml/preprocess/parser_raw.mly" + ( items ) +# 97021 "src/ocaml/preprocess/parser_raw.ml" in - let (_endpos__1_, _startpos__1_) = (_endpos_xss_, _startpos_e_) in - let _endpos = _endpos__1_ in - let _startpos = _startpos__1_ in -# 1288 "src/ocaml/preprocess/parser_raw.mly" - ( extra_str _startpos _endpos _1 ) -# 98856 "src/ocaml/preprocess/parser_raw.ml" +# 267 "" + ( xs @ ys ) +# 97027 "src/ocaml/preprocess/parser_raw.ml" in - ( + let (_endpos__1_, _startpos__1_) = (_endpos_xss_, _startpos_e_) in + let _endpos = _endpos__1_ in + let _startpos = _startpos__1_ in + +# 1288 "src/ocaml/preprocess/parser_raw.mly" + ( extra_str _startpos _endpos _1 ) +# 97036 "src/ocaml/preprocess/parser_raw.ml" + + in + # 1835 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 98862 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.structure)) - in +# 97042 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -98881,16 +97060,14 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - ( + let _v : (Parsetree.structure_item) = let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1864 "src/ocaml/preprocess/parser_raw.mly" ( val_of_let_bindings ~loc:_sloc _1 ) -# 98892 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.structure_item)) - in +# 97070 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -98918,44 +97095,42 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined1_ in - let _v = + let _v : (Parsetree.structure_item) = let _1 = let _1 = - let _1 = - let _2 = - let _1 = _1_inlined1 in - + let _2 = + let _1 = _1_inlined1 in + # 5399 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 98930 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__2_ = _endpos__1_inlined1_ in - let _endpos = _endpos__2_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 1867 "src/ocaml/preprocess/parser_raw.mly" - ( let docs = symbol_docs _sloc in - Pstr_extension (_1, add_docs_attrs docs _2) ) -# 98941 "src/ocaml/preprocess/parser_raw.ml" +# 97106 "src/ocaml/preprocess/parser_raw.ml" in - let _endpos__1_ = _endpos__1_inlined1_ in - let _endpos = _endpos__1_ in + let _endpos__2_ = _endpos__1_inlined1_ in + let _endpos = _endpos__2_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1335 "src/ocaml/preprocess/parser_raw.mly" - ( mkstr ~loc:_sloc _1 ) -# 98951 "src/ocaml/preprocess/parser_raw.ml" +# 1867 "src/ocaml/preprocess/parser_raw.mly" + ( let docs = symbol_docs _sloc in + Pstr_extension (_1, add_docs_attrs docs _2) ) +# 97117 "src/ocaml/preprocess/parser_raw.ml" in - ( + let _endpos__1_ = _endpos__1_inlined1_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 1335 "src/ocaml/preprocess/parser_raw.mly" + ( mkstr ~loc:_sloc _1 ) +# 97127 "src/ocaml/preprocess/parser_raw.ml" + + in + # 1899 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 98957 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.structure_item)) - in +# 97133 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -98976,28 +97151,26 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v = - let _1 = - let _1 = + let _v : (Parsetree.structure_item) = let _1 = + let _1 = # 1870 "src/ocaml/preprocess/parser_raw.mly" ( Pstr_attribute _1 ) -# 98985 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 97159 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1335 "src/ocaml/preprocess/parser_raw.mly" ( mkstr ~loc:_sloc _1 ) -# 98993 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 97167 "src/ocaml/preprocess/parser_raw.ml" + + in + # 1899 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 98999 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.structure_item)) - in +# 97173 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -99018,30 +97191,28 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v = - let _1 = - let _1 = + let _v : (Parsetree.structure_item) = let _1 = + let _1 = # 1872 "src/ocaml/preprocess/parser_raw.mly" ( let name, jkind = _1 in Pstr_kind_abbrev (name, jkind) ) -# 99029 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 97201 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1335 "src/ocaml/preprocess/parser_raw.mly" ( mkstr ~loc:_sloc _1 ) -# 99037 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 97209 "src/ocaml/preprocess/parser_raw.ml" + + in + # 1899 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 99043 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.structure_item)) - in +# 97215 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -99062,28 +97233,26 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v = - let _1 = - let _1 = + let _v : (Parsetree.structure_item) = let _1 = + let _1 = # 1877 "src/ocaml/preprocess/parser_raw.mly" ( pstr_primitive _1 ) -# 99071 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 97241 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1352 "src/ocaml/preprocess/parser_raw.mly" ( wrap_mkstr_ext ~loc:_sloc _1 ) -# 99079 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 97249 "src/ocaml/preprocess/parser_raw.ml" + + in + # 1899 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 99085 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.structure_item)) - in +# 97255 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -99104,28 +97273,26 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v = - let _1 = - let _1 = + let _v : (Parsetree.structure_item) = let _1 = + let _1 = # 1879 "src/ocaml/preprocess/parser_raw.mly" ( pstr_primitive _1 ) -# 99113 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 97281 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1352 "src/ocaml/preprocess/parser_raw.mly" ( wrap_mkstr_ext ~loc:_sloc _1 ) -# 99121 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 97289 "src/ocaml/preprocess/parser_raw.ml" + + in + # 1899 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 99127 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.structure_item)) - in +# 97295 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -99154,50 +97321,48 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_a_ in let _endpos = _endpos_bs_ in - let _v = + let _v : (Parsetree.structure_item) = let _1 = let _1 = let _1 = let _1 = - let _1 = - let _1 = + let _1 = # 1547 "src/ocaml/preprocess/parser_raw.mly" ( let (x, b) = a in x, b :: bs ) -# 99166 "src/ocaml/preprocess/parser_raw.ml" - in - +# 97332 "src/ocaml/preprocess/parser_raw.ml" + in + # 4049 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 99171 "src/ocaml/preprocess/parser_raw.ml" - - in +# 97337 "src/ocaml/preprocess/parser_raw.ml" + in + # 4032 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 99177 "src/ocaml/preprocess/parser_raw.ml" - - in +# 97343 "src/ocaml/preprocess/parser_raw.ml" + in + # 1881 "src/ocaml/preprocess/parser_raw.mly" ( pstr_type _1 ) -# 99183 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos_bs_, _startpos_a_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 97349 "src/ocaml/preprocess/parser_raw.ml" + in + let (_endpos__1_, _startpos__1_) = (_endpos_bs_, _startpos_a_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1352 "src/ocaml/preprocess/parser_raw.mly" ( wrap_mkstr_ext ~loc:_sloc _1 ) -# 99193 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 97359 "src/ocaml/preprocess/parser_raw.ml" + + in + # 1899 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 99199 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.structure_item)) - in +# 97365 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -99274,89 +97439,87 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined3_ in - let _v = + let _v : (Parsetree.structure_item) = let _1 = let _1 = let _1 = let _1 = - let _1 = - let attrs2 = - let _1 = _1_inlined3 in - + let attrs2 = + let _1 = _1_inlined3 in + # 5399 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 99288 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_attrs2_ = _endpos__1_inlined3_ in - let cs = +# 97452 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_attrs2_ = _endpos__1_inlined3_ in + let cs = # 1539 "src/ocaml/preprocess/parser_raw.mly" ( List.rev xs ) -# 99295 "src/ocaml/preprocess/parser_raw.ml" - in - let tid = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 97459 "src/ocaml/preprocess/parser_raw.ml" + in + let tid = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 99305 "src/ocaml/preprocess/parser_raw.ml" - - in - let _4 = +# 97469 "src/ocaml/preprocess/parser_raw.ml" + + in + let _4 = # 5231 "src/ocaml/preprocess/parser_raw.mly" ( Recursive ) -# 99311 "src/ocaml/preprocess/parser_raw.ml" - in - let attrs1 = - let _1 = _1_inlined1 in - +# 97475 "src/ocaml/preprocess/parser_raw.ml" + in + let attrs1 = + let _1 = _1_inlined1 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 99318 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos_attrs2_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 97482 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos_attrs2_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 4403 "src/ocaml/preprocess/parser_raw.mly" ( let docs = symbol_docs _sloc in let attrs = attrs1 @ attrs2 in Te.mk tid cs ~params ~priv ~attrs ~docs, ext ) -# 99330 "src/ocaml/preprocess/parser_raw.ml" - - in +# 97494 "src/ocaml/preprocess/parser_raw.ml" + in + # 4386 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 99336 "src/ocaml/preprocess/parser_raw.ml" - - in +# 97500 "src/ocaml/preprocess/parser_raw.ml" + in + # 1883 "src/ocaml/preprocess/parser_raw.mly" ( pstr_typext _1 ) -# 99342 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__1_inlined3_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 97506 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__1_inlined3_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1352 "src/ocaml/preprocess/parser_raw.mly" ( wrap_mkstr_ext ~loc:_sloc _1 ) -# 99352 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 97516 "src/ocaml/preprocess/parser_raw.ml" + + in + # 1899 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 99358 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.structure_item)) - in +# 97522 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -99440,95 +97603,93 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined4_ in - let _v = + let _v : (Parsetree.structure_item) = let _1 = let _1 = let _1 = let _1 = - let _1 = - let attrs2 = - let _1 = _1_inlined4 in - + let attrs2 = + let _1 = _1_inlined4 in + # 5399 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 99454 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_attrs2_ = _endpos__1_inlined4_ in - let cs = +# 97616 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_attrs2_ = _endpos__1_inlined4_ in + let cs = # 1539 "src/ocaml/preprocess/parser_raw.mly" ( List.rev xs ) -# 99461 "src/ocaml/preprocess/parser_raw.ml" - in - let tid = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined3_, _startpos__1_inlined3_, _1_inlined3) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 97623 "src/ocaml/preprocess/parser_raw.ml" + in + let tid = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined3_, _startpos__1_inlined3_, _1_inlined3) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 99471 "src/ocaml/preprocess/parser_raw.ml" - - in - let _4 = - let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined2_, _startpos__1_inlined2_) in - let _endpos = _endpos__1_ in - let _startpos = _startpos__1_ in - let _loc = (_startpos, _endpos) in - +# 97633 "src/ocaml/preprocess/parser_raw.ml" + + in + let _4 = + let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined2_, _startpos__1_inlined2_) in + let _endpos = _endpos__1_ in + let _startpos = _startpos__1_ in + let _loc = (_startpos, _endpos) in + # 5233 "src/ocaml/preprocess/parser_raw.mly" ( not_expecting _loc "nonrec flag"; Recursive ) -# 99482 "src/ocaml/preprocess/parser_raw.ml" - - in - let attrs1 = - let _1 = _1_inlined1 in - +# 97644 "src/ocaml/preprocess/parser_raw.ml" + + in + let attrs1 = + let _1 = _1_inlined1 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 99490 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos_attrs2_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 97652 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos_attrs2_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 4403 "src/ocaml/preprocess/parser_raw.mly" ( let docs = symbol_docs _sloc in let attrs = attrs1 @ attrs2 in Te.mk tid cs ~params ~priv ~attrs ~docs, ext ) -# 99502 "src/ocaml/preprocess/parser_raw.ml" - - in +# 97664 "src/ocaml/preprocess/parser_raw.ml" + in + # 4386 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 99508 "src/ocaml/preprocess/parser_raw.ml" - - in +# 97670 "src/ocaml/preprocess/parser_raw.ml" + in + # 1883 "src/ocaml/preprocess/parser_raw.mly" ( pstr_typext _1 ) -# 99514 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__1_inlined4_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 97676 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__1_inlined4_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1352 "src/ocaml/preprocess/parser_raw.mly" ( wrap_mkstr_ext ~loc:_sloc _1 ) -# 99524 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 97686 "src/ocaml/preprocess/parser_raw.ml" + + in + # 1899 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 99530 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.structure_item)) - in +# 97692 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -99549,28 +97710,26 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v = - let _1 = - let _1 = + let _v : (Parsetree.structure_item) = let _1 = + let _1 = # 1885 "src/ocaml/preprocess/parser_raw.mly" ( pstr_exception _1 ) -# 99558 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 97718 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1352 "src/ocaml/preprocess/parser_raw.mly" ( wrap_mkstr_ext ~loc:_sloc _1 ) -# 99566 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 97726 "src/ocaml/preprocess/parser_raw.ml" + + in + # 1899 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 99572 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.structure_item)) - in +# 97732 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -99626,31 +97785,30 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined2_ in - let _v = + let _v : (Parsetree.structure_item) = let _1 = let _1 = let _1 = - let _1 = - let attrs2 = - let _1 = _1_inlined2 in - + let attrs2 = + let _1 = _1_inlined2 in + # 5399 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 99639 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_attrs2_ = _endpos__1_inlined2_ in - let attrs1 = - let _1 = _1_inlined1 in - +# 97797 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_attrs2_ = _endpos__1_inlined2_ in + let attrs1 = + let _1 = _1_inlined1 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 99648 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos_attrs2_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 97806 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos_attrs2_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1914 "src/ocaml/preprocess/parser_raw.mly" ( let docs = symbol_docs _sloc in let loc = make_loc _sloc in @@ -99659,31 +97817,30 @@ module Tables = struct let body = maybe_pmod_constraint modes body in let body = Mb.mk name body ~attrs ~loc ~docs in Pstr_module body, ext ) -# 99663 "src/ocaml/preprocess/parser_raw.ml" - - in +# 97821 "src/ocaml/preprocess/parser_raw.ml" + in + # 1887 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 99669 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__1_inlined2_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 97827 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__1_inlined2_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1352 "src/ocaml/preprocess/parser_raw.mly" ( wrap_mkstr_ext ~loc:_sloc _1 ) -# 99679 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 97837 "src/ocaml/preprocess/parser_raw.ml" + + in + # 1899 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 99685 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.structure_item)) - in +# 97843 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -99753,33 +97910,32 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_bs_ in - let _v = + let _v : (Parsetree.structure_item) = let _1 = let _1 = let _1 = let _1 = - let _1 = - let a = - let attrs2 = - let _1 = _1_inlined2 in - + let a = + let attrs2 = + let _1 = _1_inlined2 in + # 5399 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 99768 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_attrs2_ = _endpos__1_inlined2_ in - let attrs1 = - let _1 = _1_inlined1 in - +# 97924 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_attrs2_ = _endpos__1_inlined2_ in + let attrs1 = + let _1 = _1_inlined1 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 99777 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos_attrs2_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 97933 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos_attrs2_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1957 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in @@ -99790,43 +97946,42 @@ module Tables = struct ext, Mb.mk name body ~attrs ~loc ~docs ) -# 99794 "src/ocaml/preprocess/parser_raw.ml" - - in +# 97950 "src/ocaml/preprocess/parser_raw.ml" + in + # 1547 "src/ocaml/preprocess/parser_raw.mly" ( let (x, b) = a in x, b :: bs ) -# 99800 "src/ocaml/preprocess/parser_raw.ml" - - in +# 97956 "src/ocaml/preprocess/parser_raw.ml" + in + # 1945 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 99806 "src/ocaml/preprocess/parser_raw.ml" - - in +# 97962 "src/ocaml/preprocess/parser_raw.ml" + in + # 1889 "src/ocaml/preprocess/parser_raw.mly" ( pstr_recmodule _1 ) -# 99812 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos_bs_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 97968 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos_bs_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1352 "src/ocaml/preprocess/parser_raw.mly" ( wrap_mkstr_ext ~loc:_sloc _1 ) -# 99822 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 97978 "src/ocaml/preprocess/parser_raw.ml" + + in + # 1899 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 99828 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.structure_item)) - in +# 97984 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -99847,28 +98002,26 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v = - let _1 = - let _1 = + let _v : (Parsetree.structure_item) = let _1 = + let _1 = # 1891 "src/ocaml/preprocess/parser_raw.mly" ( let (body, ext) = _1 in (Pstr_modtype body, ext) ) -# 99856 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 98010 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1352 "src/ocaml/preprocess/parser_raw.mly" ( wrap_mkstr_ext ~loc:_sloc _1 ) -# 99864 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 98018 "src/ocaml/preprocess/parser_raw.ml" + + in + # 1899 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 99870 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.structure_item)) - in +# 98024 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -99889,28 +98042,26 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v = - let _1 = - let _1 = + let _v : (Parsetree.structure_item) = let _1 = + let _1 = # 1893 "src/ocaml/preprocess/parser_raw.mly" ( let (body, ext) = _1 in (Pstr_open body, ext) ) -# 99898 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 98050 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1352 "src/ocaml/preprocess/parser_raw.mly" ( wrap_mkstr_ext ~loc:_sloc _1 ) -# 99906 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 98058 "src/ocaml/preprocess/parser_raw.ml" + + in + # 1899 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 99912 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.structure_item)) - in +# 98064 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -99981,7 +98132,7 @@ module Tables = struct let _1_inlined2 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 99985 "src/ocaml/preprocess/parser_raw.ml" +# 98136 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined2 in let params : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = Obj.magic params in let virt : (Asttypes.virtual_flag) = Obj.magic virt in @@ -99991,44 +98142,43 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_bs_ in - let _v = + let _v : (Parsetree.structure_item) = let _1 = let _1 = let _1 = let _1 = - let _1 = - let a = - let attrs2 = - let _1 = _1_inlined3 in - + let a = + let attrs2 = + let _1 = _1_inlined3 in + # 5399 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 100006 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_attrs2_ = _endpos__1_inlined3_ in - let id = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 98156 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_attrs2_ = _endpos__1_inlined3_ in + let id = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 100018 "src/ocaml/preprocess/parser_raw.ml" - - in - let attrs1 = - let _1 = _1_inlined1 in - +# 98168 "src/ocaml/preprocess/parser_raw.ml" + + in + let attrs1 = + let _1 = _1_inlined1 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 100026 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos_attrs2_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 98176 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos_attrs2_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2350 "src/ocaml/preprocess/parser_raw.mly" ( let attrs = attrs1 @ attrs2 in @@ -100037,43 +98187,42 @@ module Tables = struct ext, Ci.mk id body ~virt ~params ~attrs ~loc ~docs ) -# 100041 "src/ocaml/preprocess/parser_raw.ml" - - in +# 98191 "src/ocaml/preprocess/parser_raw.ml" + in + # 1547 "src/ocaml/preprocess/parser_raw.mly" ( let (x, b) = a in x, b :: bs ) -# 100047 "src/ocaml/preprocess/parser_raw.ml" - - in +# 98197 "src/ocaml/preprocess/parser_raw.ml" + in + # 2339 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 100053 "src/ocaml/preprocess/parser_raw.ml" - - in +# 98203 "src/ocaml/preprocess/parser_raw.ml" + in + # 1895 "src/ocaml/preprocess/parser_raw.mly" ( let (ext, l) = _1 in (Pstr_class l, ext) ) -# 100059 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos_bs_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 98209 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos_bs_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1352 "src/ocaml/preprocess/parser_raw.mly" ( wrap_mkstr_ext ~loc:_sloc _1 ) -# 100069 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 98219 "src/ocaml/preprocess/parser_raw.ml" + + in + # 1899 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 100075 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.structure_item)) - in +# 98225 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -100094,28 +98243,26 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v = - let _1 = - let _1 = + let _v : (Parsetree.structure_item) = let _1 = + let _1 = # 1897 "src/ocaml/preprocess/parser_raw.mly" ( let (ext, l) = _1 in (Pstr_class_type l, ext) ) -# 100103 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 98251 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1352 "src/ocaml/preprocess/parser_raw.mly" ( wrap_mkstr_ext ~loc:_sloc _1 ) -# 100111 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 98259 "src/ocaml/preprocess/parser_raw.ml" + + in + # 1899 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 100117 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.structure_item)) - in +# 98265 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -100164,26 +98311,25 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_kind_ in let _endpos = _endpos__1_inlined1_ in - let _v = - let _1 = - let attrs2 = - let _1 = _1_inlined1 in - + let _v : (Parsetree.structure_item) = let _1 = + let attrs2 = + let _1 = _1_inlined1 in + # 5399 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 100175 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_attrs2_ = _endpos__1_inlined1_ in - let attrs1 = +# 98321 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_attrs2_ = _endpos__1_inlined1_ in + let attrs1 = # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 100182 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos_attrs2_ in - let _symbolstartpos = _startpos_kind_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 98328 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos_attrs2_ in + let _symbolstartpos = _startpos_kind_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2005 "src/ocaml/preprocess/parser_raw.mly" ( let attrs = attrs1 @ attrs2 in @@ -100192,22 +98338,21 @@ module Tables = struct let incl = Incl.mk ~kind thing ~attrs ~loc ~docs in incl, ext ) -# 100196 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos_kind_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - ( +# 98342 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos_kind_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1901 "src/ocaml/preprocess/parser_raw.mly" ( let incl, ext = _1 in let item = mkstr ~loc:_sloc (Pstr_include incl) in wrap_str_ext ~loc:_sloc item ext ) -# 100209 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.structure_item)) - in +# 98355 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -100231,7 +98376,7 @@ module Tables = struct let _v : (string) = # 5308 "src/ocaml/preprocess/parser_raw.mly" ( "-" ) -# 100235 "src/ocaml/preprocess/parser_raw.ml" +# 98380 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -100256,7 +98401,7 @@ module Tables = struct let _v : (string) = # 5309 "src/ocaml/preprocess/parser_raw.mly" ( "-." ) -# 100260 "src/ocaml/preprocess/parser_raw.ml" +# 98405 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -100306,56 +98451,54 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined1_ in - let _v = - let _5 = - let _1 = _1_inlined1 in - + let _v : (Parsetree.row_field) = let _5 = + let _1 = _1_inlined1 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 100316 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__5_ = _endpos__1_inlined1_ in - let _4 = - let _1 = - let xs = -# 264 "" +# 98460 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__5_ = _endpos__1_inlined1_ in + let _4 = + let _1 = + let xs = +# 253 "" ( List.rev xs ) -# 100325 "src/ocaml/preprocess/parser_raw.ml" - in - +# 98469 "src/ocaml/preprocess/parser_raw.ml" + in + # 1450 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 100330 "src/ocaml/preprocess/parser_raw.ml" - - in +# 98474 "src/ocaml/preprocess/parser_raw.ml" + in + # 4966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 100336 "src/ocaml/preprocess/parser_raw.ml" - - in - let _1 = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 1296 "src/ocaml/preprocess/parser_raw.mly" - ( mkrhs _1 _sloc ) -# 100346 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__5_ in +# 98480 "src/ocaml/preprocess/parser_raw.ml" + + in + let _1 = + let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in - ( + +# 1296 "src/ocaml/preprocess/parser_raw.mly" + ( mkrhs _1 _sloc ) +# 98490 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__5_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 4952 "src/ocaml/preprocess/parser_raw.mly" ( let info = symbol_info _endpos in let attrs = add_info_attrs info _5 in Rf.tag ~loc:(make_loc _sloc) ~attrs _1 _3 _4 ) -# 100357 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.row_field)) - in +# 98501 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -100383,37 +98526,35 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined1_ in - let _v = - let _2 = - let _1 = _1_inlined1 in - + let _v : (Parsetree.row_field) = let _2 = + let _1 = _1_inlined1 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 100393 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__2_ = _endpos__1_inlined1_ in - let _1 = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 1296 "src/ocaml/preprocess/parser_raw.mly" - ( mkrhs _1 _sloc ) -# 100404 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__2_ in +# 98535 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__2_ = _endpos__1_inlined1_ in + let _1 = + let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in - ( + +# 1296 "src/ocaml/preprocess/parser_raw.mly" + ( mkrhs _1 _sloc ) +# 98546 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__2_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 4956 "src/ocaml/preprocess/parser_raw.mly" ( let info = symbol_info _endpos in let attrs = add_info_attrs info _2 in Rf.tag ~loc:(make_loc _sloc) ~attrs _1 true [] ) -# 100415 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.row_field)) - in +# 98557 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -100441,38 +98582,36 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined1_ in - let _v = - let arg = -# 123 "" + let _v : (Parsetree.toplevel_phrase) = let arg = +# 124 "" ( None ) -# 100449 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos_arg_ = _endpos__1_inlined1_ in - let dir = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 98589 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos_arg_ = _endpos__1_inlined1_ in + let dir = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 100460 "src/ocaml/preprocess/parser_raw.ml" - - in - let _1 = +# 98600 "src/ocaml/preprocess/parser_raw.ml" + + in + let _1 = # 3204 "src/ocaml/preprocess/parser_raw.mly" ( () ) -# 100466 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos_arg_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - ( +# 98606 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos_arg_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 5194 "src/ocaml/preprocess/parser_raw.mly" ( mk_directive ~loc:_sloc dir arg ) -# 100474 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.toplevel_phrase)) - in +# 98614 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -100504,63 +98643,61 @@ module Tables = struct let _1_inlined2 : ( # 1141 "src/ocaml/preprocess/parser_raw.mly" (string * Location.t * string option) -# 100508 "src/ocaml/preprocess/parser_raw.ml" +# 98647 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined2 in let _1_inlined1 : (string) = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined2_ in - let _v = - let arg = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in - let x = - let _1 = + let _v : (Parsetree.toplevel_phrase) = let arg = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in + let x = + let _1 = # 5198 "src/ocaml/preprocess/parser_raw.mly" ( let (s, _, _) = _1 in Pdir_string s ) -# 100522 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 1357 "src/ocaml/preprocess/parser_raw.mly" - ( mk_directive_arg ~loc:_sloc _1 ) -# 100530 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 126 "" - ( Some x ) -# 100536 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_arg_ = _endpos__1_inlined2_ in - let dir = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in +# 98660 "src/ocaml/preprocess/parser_raw.ml" + in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in +# 1357 "src/ocaml/preprocess/parser_raw.mly" + ( mk_directive_arg ~loc:_sloc _1 ) +# 98668 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 126 "" + ( Some x ) +# 98674 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_arg_ = _endpos__1_inlined2_ in + let dir = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 100548 "src/ocaml/preprocess/parser_raw.ml" - - in - let _1 = +# 98686 "src/ocaml/preprocess/parser_raw.ml" + + in + let _1 = # 3204 "src/ocaml/preprocess/parser_raw.mly" ( () ) -# 100554 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos_arg_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - ( +# 98692 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos_arg_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 5194 "src/ocaml/preprocess/parser_raw.mly" ( mk_directive ~loc:_sloc dir arg ) -# 100562 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.toplevel_phrase)) - in +# 98700 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -100592,63 +98729,61 @@ module Tables = struct let _1_inlined2 : ( # 1078 "src/ocaml/preprocess/parser_raw.mly" (string * char option) -# 100596 "src/ocaml/preprocess/parser_raw.ml" +# 98733 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined2 in let _1_inlined1 : (string) = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined2_ in - let _v = - let arg = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in - let x = - let _1 = + let _v : (Parsetree.toplevel_phrase) = let arg = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in + let x = + let _1 = # 5199 "src/ocaml/preprocess/parser_raw.mly" ( let (n, m) = _1 in Pdir_int (n ,m) ) -# 100610 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 98746 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1357 "src/ocaml/preprocess/parser_raw.mly" ( mk_directive_arg ~loc:_sloc _1 ) -# 100618 "src/ocaml/preprocess/parser_raw.ml" - - in +# 98754 "src/ocaml/preprocess/parser_raw.ml" + in + # 126 "" ( Some x ) -# 100624 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_arg_ = _endpos__1_inlined2_ in - let dir = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 98760 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_arg_ = _endpos__1_inlined2_ in + let dir = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 100636 "src/ocaml/preprocess/parser_raw.ml" - - in - let _1 = +# 98772 "src/ocaml/preprocess/parser_raw.ml" + + in + let _1 = # 3204 "src/ocaml/preprocess/parser_raw.mly" ( () ) -# 100642 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos_arg_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - ( +# 98778 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos_arg_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 5194 "src/ocaml/preprocess/parser_raw.mly" ( mk_directive ~loc:_sloc dir arg ) -# 100650 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.toplevel_phrase)) - in +# 98786 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -100683,56 +98818,54 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined2_ in - let _v = - let arg = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in - let x = - let _1 = + let _v : (Parsetree.toplevel_phrase) = let arg = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in + let x = + let _1 = # 5200 "src/ocaml/preprocess/parser_raw.mly" ( Pdir_ident _1 ) -# 100694 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 98828 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1357 "src/ocaml/preprocess/parser_raw.mly" ( mk_directive_arg ~loc:_sloc _1 ) -# 100702 "src/ocaml/preprocess/parser_raw.ml" - - in +# 98836 "src/ocaml/preprocess/parser_raw.ml" + in + # 126 "" ( Some x ) -# 100708 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_arg_ = _endpos__1_inlined2_ in - let dir = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 98842 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_arg_ = _endpos__1_inlined2_ in + let dir = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 100720 "src/ocaml/preprocess/parser_raw.ml" - - in - let _1 = +# 98854 "src/ocaml/preprocess/parser_raw.ml" + + in + let _1 = # 3204 "src/ocaml/preprocess/parser_raw.mly" ( () ) -# 100726 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos_arg_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - ( +# 98860 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos_arg_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 5194 "src/ocaml/preprocess/parser_raw.mly" ( mk_directive ~loc:_sloc dir arg ) -# 100734 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.toplevel_phrase)) - in +# 98868 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -100767,56 +98900,54 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined2_ in - let _v = - let arg = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in - let x = - let _1 = + let _v : (Parsetree.toplevel_phrase) = let arg = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in + let x = + let _1 = # 5201 "src/ocaml/preprocess/parser_raw.mly" ( Pdir_ident _1 ) -# 100778 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 98910 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1357 "src/ocaml/preprocess/parser_raw.mly" ( mk_directive_arg ~loc:_sloc _1 ) -# 100786 "src/ocaml/preprocess/parser_raw.ml" - - in +# 98918 "src/ocaml/preprocess/parser_raw.ml" + in + # 126 "" ( Some x ) -# 100792 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_arg_ = _endpos__1_inlined2_ in - let dir = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 98924 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_arg_ = _endpos__1_inlined2_ in + let dir = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 100804 "src/ocaml/preprocess/parser_raw.ml" - - in - let _1 = +# 98936 "src/ocaml/preprocess/parser_raw.ml" + + in + let _1 = # 3204 "src/ocaml/preprocess/parser_raw.mly" ( () ) -# 100810 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos_arg_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - ( +# 98942 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos_arg_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 5194 "src/ocaml/preprocess/parser_raw.mly" ( mk_directive ~loc:_sloc dir arg ) -# 100818 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.toplevel_phrase)) - in +# 98950 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -100851,56 +98982,54 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined2_ in - let _v = - let arg = - let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined2_, _startpos__1_inlined2_) in - let x = - let _1 = + let _v : (Parsetree.toplevel_phrase) = let arg = + let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined2_, _startpos__1_inlined2_) in + let x = + let _1 = # 5202 "src/ocaml/preprocess/parser_raw.mly" ( Pdir_bool false ) -# 100862 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 98992 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1357 "src/ocaml/preprocess/parser_raw.mly" ( mk_directive_arg ~loc:_sloc _1 ) -# 100870 "src/ocaml/preprocess/parser_raw.ml" - - in +# 99000 "src/ocaml/preprocess/parser_raw.ml" + in + # 126 "" ( Some x ) -# 100876 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_arg_ = _endpos__1_inlined2_ in - let dir = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 99006 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_arg_ = _endpos__1_inlined2_ in + let dir = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 100888 "src/ocaml/preprocess/parser_raw.ml" - - in - let _1 = +# 99018 "src/ocaml/preprocess/parser_raw.ml" + + in + let _1 = # 3204 "src/ocaml/preprocess/parser_raw.mly" ( () ) -# 100894 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos_arg_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - ( +# 99024 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos_arg_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 5194 "src/ocaml/preprocess/parser_raw.mly" ( mk_directive ~loc:_sloc dir arg ) -# 100902 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.toplevel_phrase)) - in +# 99032 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -100935,56 +99064,54 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined2_ in - let _v = - let arg = - let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined2_, _startpos__1_inlined2_) in - let x = - let _1 = + let _v : (Parsetree.toplevel_phrase) = let arg = + let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined2_, _startpos__1_inlined2_) in + let x = + let _1 = # 5203 "src/ocaml/preprocess/parser_raw.mly" ( Pdir_bool true ) -# 100946 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 99074 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1357 "src/ocaml/preprocess/parser_raw.mly" ( mk_directive_arg ~loc:_sloc _1 ) -# 100954 "src/ocaml/preprocess/parser_raw.ml" - - in +# 99082 "src/ocaml/preprocess/parser_raw.ml" + in + # 126 "" ( Some x ) -# 100960 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_arg_ = _endpos__1_inlined2_ in - let dir = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 99088 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_arg_ = _endpos__1_inlined2_ in + let dir = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 100972 "src/ocaml/preprocess/parser_raw.ml" - - in - let _1 = +# 99100 "src/ocaml/preprocess/parser_raw.ml" + + in + let _1 = # 3204 "src/ocaml/preprocess/parser_raw.mly" ( () ) -# 100978 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos_arg_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - ( +# 99106 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos_arg_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 5194 "src/ocaml/preprocess/parser_raw.mly" ( mk_directive ~loc:_sloc dir arg ) -# 100986 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.toplevel_phrase)) - in +# 99114 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -101012,38 +99139,36 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined1_ in - let _v = - let arg = -# 123 "" + let _v : (Parsetree.toplevel_phrase) = let arg = +# 124 "" ( None ) -# 101020 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos_arg_ = _endpos__1_inlined1_ in - let dir = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 99146 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos_arg_ = _endpos__1_inlined1_ in + let dir = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 101031 "src/ocaml/preprocess/parser_raw.ml" - - in - let _1 = +# 99157 "src/ocaml/preprocess/parser_raw.ml" + + in + let _1 = # 3205 "src/ocaml/preprocess/parser_raw.mly" ( () ) -# 101037 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos_arg_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - ( +# 99163 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos_arg_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 5194 "src/ocaml/preprocess/parser_raw.mly" ( mk_directive ~loc:_sloc dir arg ) -# 101045 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.toplevel_phrase)) - in +# 99171 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -101075,63 +99200,61 @@ module Tables = struct let _1_inlined2 : ( # 1141 "src/ocaml/preprocess/parser_raw.mly" (string * Location.t * string option) -# 101079 "src/ocaml/preprocess/parser_raw.ml" +# 99204 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined2 in let _1_inlined1 : (string) = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined2_ in - let _v = - let arg = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in - let x = - let _1 = + let _v : (Parsetree.toplevel_phrase) = let arg = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in + let x = + let _1 = # 5198 "src/ocaml/preprocess/parser_raw.mly" ( let (s, _, _) = _1 in Pdir_string s ) -# 101093 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 99217 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1357 "src/ocaml/preprocess/parser_raw.mly" ( mk_directive_arg ~loc:_sloc _1 ) -# 101101 "src/ocaml/preprocess/parser_raw.ml" - - in +# 99225 "src/ocaml/preprocess/parser_raw.ml" + in + # 126 "" ( Some x ) -# 101107 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_arg_ = _endpos__1_inlined2_ in - let dir = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 99231 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_arg_ = _endpos__1_inlined2_ in + let dir = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 101119 "src/ocaml/preprocess/parser_raw.ml" - - in - let _1 = +# 99243 "src/ocaml/preprocess/parser_raw.ml" + + in + let _1 = # 3205 "src/ocaml/preprocess/parser_raw.mly" ( () ) -# 101125 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos_arg_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - ( +# 99249 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos_arg_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 5194 "src/ocaml/preprocess/parser_raw.mly" ( mk_directive ~loc:_sloc dir arg ) -# 101133 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.toplevel_phrase)) - in +# 99257 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -101163,63 +99286,61 @@ module Tables = struct let _1_inlined2 : ( # 1078 "src/ocaml/preprocess/parser_raw.mly" (string * char option) -# 101167 "src/ocaml/preprocess/parser_raw.ml" +# 99290 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined2 in let _1_inlined1 : (string) = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined2_ in - let _v = - let arg = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in - let x = - let _1 = + let _v : (Parsetree.toplevel_phrase) = let arg = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in + let x = + let _1 = # 5199 "src/ocaml/preprocess/parser_raw.mly" ( let (n, m) = _1 in Pdir_int (n ,m) ) -# 101181 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 99303 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1357 "src/ocaml/preprocess/parser_raw.mly" ( mk_directive_arg ~loc:_sloc _1 ) -# 101189 "src/ocaml/preprocess/parser_raw.ml" - - in +# 99311 "src/ocaml/preprocess/parser_raw.ml" + in + # 126 "" ( Some x ) -# 101195 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_arg_ = _endpos__1_inlined2_ in - let dir = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 99317 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_arg_ = _endpos__1_inlined2_ in + let dir = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 101207 "src/ocaml/preprocess/parser_raw.ml" - - in - let _1 = +# 99329 "src/ocaml/preprocess/parser_raw.ml" + + in + let _1 = # 3205 "src/ocaml/preprocess/parser_raw.mly" ( () ) -# 101213 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos_arg_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - ( +# 99335 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos_arg_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 5194 "src/ocaml/preprocess/parser_raw.mly" ( mk_directive ~loc:_sloc dir arg ) -# 101221 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.toplevel_phrase)) - in +# 99343 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -101254,56 +99375,54 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined2_ in - let _v = - let arg = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in - let x = - let _1 = + let _v : (Parsetree.toplevel_phrase) = let arg = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in + let x = + let _1 = # 5200 "src/ocaml/preprocess/parser_raw.mly" ( Pdir_ident _1 ) -# 101265 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 99385 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1357 "src/ocaml/preprocess/parser_raw.mly" ( mk_directive_arg ~loc:_sloc _1 ) -# 101273 "src/ocaml/preprocess/parser_raw.ml" - - in +# 99393 "src/ocaml/preprocess/parser_raw.ml" + in + # 126 "" ( Some x ) -# 101279 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_arg_ = _endpos__1_inlined2_ in - let dir = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 99399 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_arg_ = _endpos__1_inlined2_ in + let dir = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 101291 "src/ocaml/preprocess/parser_raw.ml" - - in - let _1 = +# 99411 "src/ocaml/preprocess/parser_raw.ml" + + in + let _1 = # 3205 "src/ocaml/preprocess/parser_raw.mly" ( () ) -# 101297 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos_arg_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - ( +# 99417 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos_arg_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 5194 "src/ocaml/preprocess/parser_raw.mly" ( mk_directive ~loc:_sloc dir arg ) -# 101305 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.toplevel_phrase)) - in +# 99425 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -101338,56 +99457,54 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined2_ in - let _v = - let arg = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in - let x = - let _1 = + let _v : (Parsetree.toplevel_phrase) = let arg = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in + let x = + let _1 = # 5201 "src/ocaml/preprocess/parser_raw.mly" ( Pdir_ident _1 ) -# 101349 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 99467 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1357 "src/ocaml/preprocess/parser_raw.mly" ( mk_directive_arg ~loc:_sloc _1 ) -# 101357 "src/ocaml/preprocess/parser_raw.ml" - - in +# 99475 "src/ocaml/preprocess/parser_raw.ml" + in + # 126 "" ( Some x ) -# 101363 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_arg_ = _endpos__1_inlined2_ in - let dir = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 99481 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_arg_ = _endpos__1_inlined2_ in + let dir = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 101375 "src/ocaml/preprocess/parser_raw.ml" - - in - let _1 = +# 99493 "src/ocaml/preprocess/parser_raw.ml" + + in + let _1 = # 3205 "src/ocaml/preprocess/parser_raw.mly" ( () ) -# 101381 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos_arg_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - ( +# 99499 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos_arg_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 5194 "src/ocaml/preprocess/parser_raw.mly" ( mk_directive ~loc:_sloc dir arg ) -# 101389 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.toplevel_phrase)) - in +# 99507 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -101422,56 +99539,54 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined2_ in - let _v = - let arg = - let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined2_, _startpos__1_inlined2_) in - let x = - let _1 = + let _v : (Parsetree.toplevel_phrase) = let arg = + let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined2_, _startpos__1_inlined2_) in + let x = + let _1 = # 5202 "src/ocaml/preprocess/parser_raw.mly" ( Pdir_bool false ) -# 101433 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 99549 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1357 "src/ocaml/preprocess/parser_raw.mly" ( mk_directive_arg ~loc:_sloc _1 ) -# 101441 "src/ocaml/preprocess/parser_raw.ml" - - in +# 99557 "src/ocaml/preprocess/parser_raw.ml" + in + # 126 "" ( Some x ) -# 101447 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_arg_ = _endpos__1_inlined2_ in - let dir = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 99563 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_arg_ = _endpos__1_inlined2_ in + let dir = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 101459 "src/ocaml/preprocess/parser_raw.ml" - - in - let _1 = +# 99575 "src/ocaml/preprocess/parser_raw.ml" + + in + let _1 = # 3205 "src/ocaml/preprocess/parser_raw.mly" ( () ) -# 101465 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos_arg_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - ( +# 99581 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos_arg_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 5194 "src/ocaml/preprocess/parser_raw.mly" ( mk_directive ~loc:_sloc dir arg ) -# 101473 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.toplevel_phrase)) - in +# 99589 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -101506,56 +99621,54 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined2_ in - let _v = - let arg = - let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined2_, _startpos__1_inlined2_) in - let x = - let _1 = + let _v : (Parsetree.toplevel_phrase) = let arg = + let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined2_, _startpos__1_inlined2_) in + let x = + let _1 = # 5203 "src/ocaml/preprocess/parser_raw.mly" ( Pdir_bool true ) -# 101517 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 99631 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1357 "src/ocaml/preprocess/parser_raw.mly" ( mk_directive_arg ~loc:_sloc _1 ) -# 101525 "src/ocaml/preprocess/parser_raw.ml" - - in +# 99639 "src/ocaml/preprocess/parser_raw.ml" + in + # 126 "" ( Some x ) -# 101531 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_arg_ = _endpos__1_inlined2_ in - let dir = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 99645 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_arg_ = _endpos__1_inlined2_ in + let dir = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 101543 "src/ocaml/preprocess/parser_raw.ml" - - in - let _1 = +# 99657 "src/ocaml/preprocess/parser_raw.ml" + + in + let _1 = # 3205 "src/ocaml/preprocess/parser_raw.mly" ( () ) -# 101549 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos_arg_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - ( +# 99663 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos_arg_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 5194 "src/ocaml/preprocess/parser_raw.mly" ( mk_directive ~loc:_sloc dir arg ) -# 101557 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.toplevel_phrase)) - in +# 99671 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -101590,44 +99703,42 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_e_ in let _endpos = _endpos__2_ in - let _v = + let _v : (Parsetree.toplevel_phrase) = let _1 = let _1 = let _1 = - let _1 = - let attrs = + let attrs = # 5399 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 101601 "src/ocaml/preprocess/parser_raw.ml" - in - +# 99713 "src/ocaml/preprocess/parser_raw.ml" + in + # 1849 "src/ocaml/preprocess/parser_raw.mly" ( mkstrexp e attrs ) -# 101606 "src/ocaml/preprocess/parser_raw.ml" - - in - let _startpos__1_ = _startpos_e_ in - let _startpos = _startpos__1_ in - -# 1300 "src/ocaml/preprocess/parser_raw.mly" - ( text_str _startpos @ [_1] ) -# 101614 "src/ocaml/preprocess/parser_raw.ml" +# 99718 "src/ocaml/preprocess/parser_raw.ml" in let _startpos__1_ = _startpos_e_ in - let _endpos = _endpos__1_ in let _startpos = _startpos__1_ in -# 1288 "src/ocaml/preprocess/parser_raw.mly" - ( extra_str _startpos _endpos _1 ) -# 101623 "src/ocaml/preprocess/parser_raw.ml" +# 1300 "src/ocaml/preprocess/parser_raw.mly" + ( text_str _startpos @ [_1] ) +# 99726 "src/ocaml/preprocess/parser_raw.ml" in - ( + let _startpos__1_ = _startpos_e_ in + let _endpos = _endpos__1_ in + let _startpos = _startpos__1_ in + +# 1288 "src/ocaml/preprocess/parser_raw.mly" + ( extra_str _startpos _endpos _1 ) +# 99735 "src/ocaml/preprocess/parser_raw.ml" + + in + # 1587 "src/ocaml/preprocess/parser_raw.mly" ( Ptop_def _1 ) -# 101629 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.toplevel_phrase)) - in +# 99741 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -101655,28 +99766,26 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_xss_ in let _endpos = _endpos__2_ in - let _v = - let _1 = - let _1 = -# 271 "" + let _v : (Parsetree.toplevel_phrase) = let _1 = + let _1 = +# 260 "" ( List.flatten xss ) -# 101664 "src/ocaml/preprocess/parser_raw.ml" - in - let (_endpos__1_, _startpos__1_) = (_endpos_xss_, _startpos_xss_) in - let _endpos = _endpos__1_ in - let _startpos = _startpos__1_ in - +# 99774 "src/ocaml/preprocess/parser_raw.ml" + in + let (_endpos__1_, _startpos__1_) = (_endpos_xss_, _startpos_xss_) in + let _endpos = _endpos__1_ in + let _startpos = _startpos__1_ in + # 1288 "src/ocaml/preprocess/parser_raw.mly" ( extra_str _startpos _endpos _1 ) -# 101672 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 99782 "src/ocaml/preprocess/parser_raw.ml" + + in + # 1591 "src/ocaml/preprocess/parser_raw.mly" ( Ptop_def _1 ) -# 101678 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.toplevel_phrase)) - in +# 99788 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -101707,7 +99816,7 @@ module Tables = struct let _v : (Parsetree.toplevel_phrase) = # 1595 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 101711 "src/ocaml/preprocess/parser_raw.ml" +# 99820 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -101732,7 +99841,7 @@ module Tables = struct let _v : (Parsetree.toplevel_phrase) = # 1598 "src/ocaml/preprocess/parser_raw.mly" ( raise End_of_file ) -# 101736 "src/ocaml/preprocess/parser_raw.ml" +# 99845 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -101757,7 +99866,7 @@ module Tables = struct let _v : (Parsetree.core_type) = # 4754 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 101761 "src/ocaml/preprocess/parser_raw.ml" +# 99870 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -101793,38 +99902,36 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_ty_ in let _endpos = _endpos_xs_ in - let _v = - let _1 = - let ltys = - let xs = -# 264 "" + let _v : (Parsetree.core_type) = let _1 = + let ltys = + let xs = +# 253 "" ( List.rev xs ) -# 101803 "src/ocaml/preprocess/parser_raw.ml" - in - +# 99911 "src/ocaml/preprocess/parser_raw.ml" + in + # 1450 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 101808 "src/ocaml/preprocess/parser_raw.ml" - - in +# 99916 "src/ocaml/preprocess/parser_raw.ml" + in + # 4765 "src/ocaml/preprocess/parser_raw.mly" ( ty, ltys ) -# 101814 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos_xs_, _startpos_ty_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - ( +# 99922 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos_xs_, _startpos_ty_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 4756 "src/ocaml/preprocess/parser_raw.mly" ( let ty, ltys = _1 in mktyp ~loc:_sloc (Ptyp_tuple ((None, ty) :: ltys)) ) -# 101826 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type)) - in +# 99934 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -101855,7 +99962,7 @@ module Tables = struct let _v : (Parsetree.type_constraint) = # 3677 "src/ocaml/preprocess/parser_raw.mly" ( Pconstraint _2 ) -# 101859 "src/ocaml/preprocess/parser_raw.ml" +# 99966 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -101901,7 +100008,7 @@ module Tables = struct let _v : (Parsetree.type_constraint) = # 3678 "src/ocaml/preprocess/parser_raw.mly" ( Pcoerce (Some _2, _4) ) -# 101905 "src/ocaml/preprocess/parser_raw.ml" +# 100012 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -101933,7 +100040,7 @@ module Tables = struct let _v : (Parsetree.type_constraint) = # 3679 "src/ocaml/preprocess/parser_raw.mly" ( Pcoerce (None, _2) ) -# 101937 "src/ocaml/preprocess/parser_raw.ml" +# 100044 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -101951,7 +100058,7 @@ module Tables = struct let _v : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) = # 4131 "src/ocaml/preprocess/parser_raw.mly" ( (Ptype_abstract, Public, None) ) -# 101955 "src/ocaml/preprocess/parser_raw.ml" +# 100062 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -101983,7 +100090,7 @@ module Tables = struct let _v : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) = # 4133 "src/ocaml/preprocess/parser_raw.mly" ( _2 ) -# 101987 "src/ocaml/preprocess/parser_raw.ml" +# 100094 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -102008,7 +100115,7 @@ module Tables = struct let _v : (Longident.t) = # 5149 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 102012 "src/ocaml/preprocess/parser_raw.ml" +# 100119 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -102051,45 +100158,43 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined2_ in - let _v = - let _3 = - let _1 = _1_inlined2 in - + let _v : (Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) = let _3 = + let _1 = _1_inlined2 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 102061 "src/ocaml/preprocess/parser_raw.ml" - - in - let _2 = - let _startpos__1_ = _startpos__1_inlined1_ in - let _1 = - let _1 = +# 100167 "src/ocaml/preprocess/parser_raw.ml" + + in + let _2 = + let _startpos__1_ = _startpos__1_inlined1_ in + let _1 = + let _1 = # 4225 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_var (tyvar, None) ) -# 102070 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos__1_ = _endpos_tyvar_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 100176 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos_tyvar_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 102079 "src/ocaml/preprocess/parser_raw.ml" - - in +# 100185 "src/ocaml/preprocess/parser_raw.ml" + in + # 4228 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 102085 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 100191 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4219 "src/ocaml/preprocess/parser_raw.mly" ( {_2 with ptyp_attributes = _3}, _1 ) -# 102091 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity))) - in +# 100197 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -102124,44 +100229,42 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined2_ in - let _v = - let _3 = - let _1 = _1_inlined2 in - + let _v : (Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) = let _3 = + let _1 = _1_inlined2 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 102134 "src/ocaml/preprocess/parser_raw.ml" - - in - let _2 = - let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos__1_inlined1_) in - let _1 = - let _1 = +# 100238 "src/ocaml/preprocess/parser_raw.ml" + + in + let _2 = + let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos__1_inlined1_) in + let _1 = + let _1 = # 4227 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_any None ) -# 102143 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 100247 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 102151 "src/ocaml/preprocess/parser_raw.ml" - - in +# 100255 "src/ocaml/preprocess/parser_raw.ml" + in + # 4228 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 102157 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 100261 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4219 "src/ocaml/preprocess/parser_raw.mly" ( {_2 with ptyp_attributes = _3}, _1 ) -# 102163 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity))) - in +# 100267 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -102178,7 +100281,7 @@ module Tables = struct let _v : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = # 4141 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 102182 "src/ocaml/preprocess/parser_raw.ml" +# 100285 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -102203,7 +100306,7 @@ module Tables = struct let _v : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = # 4143 "src/ocaml/preprocess/parser_raw.mly" ( [p] ) -# 102207 "src/ocaml/preprocess/parser_raw.ml" +# 100310 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -102239,25 +100342,23 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in - let _v = - let ps = - let xs = -# 264 "" + let _v : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = let ps = + let xs = +# 253 "" ( List.rev xs ) -# 102248 "src/ocaml/preprocess/parser_raw.ml" - in - +# 100350 "src/ocaml/preprocess/parser_raw.ml" + in + # 1450 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 102253 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 100355 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4147 "src/ocaml/preprocess/parser_raw.mly" ( ps ) -# 102259 "src/ocaml/preprocess/parser_raw.ml" - : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list)) - in +# 100361 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -102284,7 +100385,7 @@ module Tables = struct let _1 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 102288 "src/ocaml/preprocess/parser_raw.ml" +# 100389 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -102292,7 +100393,7 @@ module Tables = struct let _v : (string) = # 5146 "src/ocaml/preprocess/parser_raw.mly" ( _1 ^ "#" ) -# 102296 "src/ocaml/preprocess/parser_raw.ml" +# 100397 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -102313,7 +100414,7 @@ module Tables = struct let _1 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 102317 "src/ocaml/preprocess/parser_raw.ml" +# 100418 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -102321,7 +100422,7 @@ module Tables = struct let _v : (string) = # 5143 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 102325 "src/ocaml/preprocess/parser_raw.ml" +# 100426 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -102346,7 +100447,7 @@ module Tables = struct let _v : (Longident.t) = # 5152 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 102350 "src/ocaml/preprocess/parser_raw.ml" +# 100451 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -102364,7 +100465,7 @@ module Tables = struct let _v : (Asttypes.variance * Asttypes.injectivity) = # 4239 "src/ocaml/preprocess/parser_raw.mly" ( NoVariance, NoInjectivity ) -# 102368 "src/ocaml/preprocess/parser_raw.ml" +# 100469 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -102389,7 +100490,7 @@ module Tables = struct let _v : (Asttypes.variance * Asttypes.injectivity) = # 4240 "src/ocaml/preprocess/parser_raw.mly" ( Covariant, NoInjectivity ) -# 102393 "src/ocaml/preprocess/parser_raw.ml" +# 100494 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -102414,7 +100515,7 @@ module Tables = struct let _v : (Asttypes.variance * Asttypes.injectivity) = # 4241 "src/ocaml/preprocess/parser_raw.mly" ( Contravariant, NoInjectivity ) -# 102418 "src/ocaml/preprocess/parser_raw.ml" +# 100519 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -102439,7 +100540,7 @@ module Tables = struct let _v : (Asttypes.variance * Asttypes.injectivity) = # 4242 "src/ocaml/preprocess/parser_raw.mly" ( NoVariance, Injective ) -# 102443 "src/ocaml/preprocess/parser_raw.ml" +# 100544 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -102471,7 +100572,7 @@ module Tables = struct let _v : (Asttypes.variance * Asttypes.injectivity) = # 4243 "src/ocaml/preprocess/parser_raw.mly" ( Covariant, Injective ) -# 102475 "src/ocaml/preprocess/parser_raw.ml" +# 100576 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -102503,7 +100604,7 @@ module Tables = struct let _v : (Asttypes.variance * Asttypes.injectivity) = # 4243 "src/ocaml/preprocess/parser_raw.mly" ( Covariant, Injective ) -# 102507 "src/ocaml/preprocess/parser_raw.ml" +# 100608 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -102535,7 +100636,7 @@ module Tables = struct let _v : (Asttypes.variance * Asttypes.injectivity) = # 4244 "src/ocaml/preprocess/parser_raw.mly" ( Contravariant, Injective ) -# 102539 "src/ocaml/preprocess/parser_raw.ml" +# 100640 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -102567,7 +100668,7 @@ module Tables = struct let _v : (Asttypes.variance * Asttypes.injectivity) = # 4244 "src/ocaml/preprocess/parser_raw.mly" ( Contravariant, Injective ) -# 102571 "src/ocaml/preprocess/parser_raw.ml" +# 100672 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -102588,22 +100689,20 @@ module Tables = struct let _1 : ( # 1070 "src/ocaml/preprocess/parser_raw.mly" (string) -# 102592 "src/ocaml/preprocess/parser_raw.ml" +# 100693 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v = - let _loc__1_ = (_startpos__1_, _endpos__1_) in - ( + let _v : (Asttypes.variance * Asttypes.injectivity) = let _loc__1_ = (_startpos__1_, _endpos__1_) in + # 4246 "src/ocaml/preprocess/parser_raw.mly" ( if _1 = "+!" then Covariant, Injective else if _1 = "-!" then Contravariant, Injective else (expecting _loc__1_ "type_variance"; NoVariance, NoInjectivity) ) -# 102605 "src/ocaml/preprocess/parser_raw.ml" - : (Asttypes.variance * Asttypes.injectivity)) - in +# 100705 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -102623,22 +100722,20 @@ module Tables = struct let _1 : ( # 1124 "src/ocaml/preprocess/parser_raw.mly" (string) -# 102627 "src/ocaml/preprocess/parser_raw.ml" +# 100726 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v = - let _loc__1_ = (_startpos__1_, _endpos__1_) in - ( + let _v : (Asttypes.variance * Asttypes.injectivity) = let _loc__1_ = (_startpos__1_, _endpos__1_) in + # 4251 "src/ocaml/preprocess/parser_raw.mly" ( if _1 = "!+" then Covariant, Injective else if _1 = "!-" then Contravariant, Injective else (expecting _loc__1_ "type_variance"; NoVariance, NoInjectivity) ) -# 102640 "src/ocaml/preprocess/parser_raw.ml" - : (Asttypes.variance * Asttypes.injectivity)) - in +# 100738 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -102658,21 +100755,19 @@ module Tables = struct let _1 : ( # 1079 "src/ocaml/preprocess/parser_raw.mly" (string * char option) -# 102662 "src/ocaml/preprocess/parser_raw.ml" +# 100759 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - ( + let _v : (Parsetree.constant) = let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 5023 "src/ocaml/preprocess/parser_raw.mly" ( unboxed_int _sloc _sloc Positive _1 ) -# 102674 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.constant)) - in +# 100770 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -102692,7 +100787,7 @@ module Tables = struct let _1 : ( # 1052 "src/ocaml/preprocess/parser_raw.mly" (string * char option) -# 102696 "src/ocaml/preprocess/parser_raw.ml" +# 100791 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -102700,7 +100795,7 @@ module Tables = struct let _v : (Parsetree.constant) = # 5024 "src/ocaml/preprocess/parser_raw.mly" ( unboxed_float Positive _1 ) -# 102704 "src/ocaml/preprocess/parser_raw.ml" +# 100799 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -102729,47 +100824,45 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_xss_ in let _endpos = _endpos__2_ in - let _v = + let _v : (Parsetree.toplevel_phrase list) = let _1 = let _1 = - let _1 = - let ys = -# 271 "" + let ys = +# 260 "" ( List.flatten xss ) -# 102739 "src/ocaml/preprocess/parser_raw.ml" - in - let xs = - let _1 = +# 100833 "src/ocaml/preprocess/parser_raw.ml" + in + let xs = + let _1 = # 1366 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 102745 "src/ocaml/preprocess/parser_raw.ml" - in - +# 100839 "src/ocaml/preprocess/parser_raw.ml" + in + # 1618 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 102750 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 278 "" - ( xs @ ys ) -# 102756 "src/ocaml/preprocess/parser_raw.ml" +# 100844 "src/ocaml/preprocess/parser_raw.ml" in - let (_endpos__1_, _startpos__1_) = (_endpos_xss_, _startpos_xss_) in - let _endpos = _endpos__1_ in - let _startpos = _startpos__1_ in -# 1292 "src/ocaml/preprocess/parser_raw.mly" - ( extra_def _startpos _endpos _1 ) -# 102765 "src/ocaml/preprocess/parser_raw.ml" +# 267 "" + ( xs @ ys ) +# 100850 "src/ocaml/preprocess/parser_raw.ml" in - ( + let (_endpos__1_, _startpos__1_) = (_endpos_xss_, _startpos_xss_) in + let _endpos = _endpos__1_ in + let _startpos = _startpos__1_ in + +# 1292 "src/ocaml/preprocess/parser_raw.mly" + ( extra_def _startpos _endpos _1 ) +# 100859 "src/ocaml/preprocess/parser_raw.ml" + + in + # 1611 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 102771 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.toplevel_phrase list)) - in +# 100865 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -102811,77 +100904,75 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_e_ in let _endpos = _endpos__2_ in - let _v = + let _v : (Parsetree.toplevel_phrase list) = let _1 = let _1 = - let _1 = - let ys = -# 271 "" + let ys = +# 260 "" ( List.flatten xss ) -# 102821 "src/ocaml/preprocess/parser_raw.ml" - in - let xs = - let _1 = - let x = +# 100913 "src/ocaml/preprocess/parser_raw.ml" + in + let xs = + let _1 = + let x = + let _1 = let _1 = - let _1 = - let attrs = + let attrs = # 5399 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 102831 "src/ocaml/preprocess/parser_raw.ml" - in - +# 100923 "src/ocaml/preprocess/parser_raw.ml" + in + # 1849 "src/ocaml/preprocess/parser_raw.mly" ( mkstrexp e attrs ) -# 102836 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 1310 "src/ocaml/preprocess/parser_raw.mly" - ( Ptop_def [_1] ) -# 102842 "src/ocaml/preprocess/parser_raw.ml" +# 100928 "src/ocaml/preprocess/parser_raw.ml" in - let _startpos__1_ = _startpos_e_ in - let _startpos = _startpos__1_ in -# 1308 "src/ocaml/preprocess/parser_raw.mly" - ( text_def _startpos @ [_1] ) -# 102850 "src/ocaml/preprocess/parser_raw.ml" +# 1310 "src/ocaml/preprocess/parser_raw.mly" + ( Ptop_def [_1] ) +# 100934 "src/ocaml/preprocess/parser_raw.ml" in + let _startpos__1_ = _startpos_e_ in + let _startpos = _startpos__1_ in -# 1368 "src/ocaml/preprocess/parser_raw.mly" - ( x ) -# 102856 "src/ocaml/preprocess/parser_raw.ml" +# 1308 "src/ocaml/preprocess/parser_raw.mly" + ( text_def _startpos @ [_1] ) +# 100942 "src/ocaml/preprocess/parser_raw.ml" in -# 1618 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 102862 "src/ocaml/preprocess/parser_raw.ml" +# 1368 "src/ocaml/preprocess/parser_raw.mly" + ( x ) +# 100948 "src/ocaml/preprocess/parser_raw.ml" in -# 278 "" - ( xs @ ys ) -# 102868 "src/ocaml/preprocess/parser_raw.ml" +# 1618 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 100954 "src/ocaml/preprocess/parser_raw.ml" in - let (_endpos__1_, _startpos__1_) = (_endpos_xss_, _startpos_e_) in - let _endpos = _endpos__1_ in - let _startpos = _startpos__1_ in -# 1292 "src/ocaml/preprocess/parser_raw.mly" - ( extra_def _startpos _endpos _1 ) -# 102877 "src/ocaml/preprocess/parser_raw.ml" +# 267 "" + ( xs @ ys ) +# 100960 "src/ocaml/preprocess/parser_raw.ml" in - ( + let (_endpos__1_, _startpos__1_) = (_endpos_xss_, _startpos_e_) in + let _endpos = _endpos__1_ in + let _startpos = _startpos__1_ in + +# 1292 "src/ocaml/preprocess/parser_raw.mly" + ( extra_def _startpos _endpos _1 ) +# 100969 "src/ocaml/preprocess/parser_raw.ml" + + in + # 1611 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 102883 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.toplevel_phrase list)) - in +# 100975 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -102919,7 +101010,7 @@ module Tables = struct let _v : (string) = # 5053 "src/ocaml/preprocess/parser_raw.mly" ( _2 ) -# 102923 "src/ocaml/preprocess/parser_raw.ml" +# 101014 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -102940,7 +101031,7 @@ module Tables = struct let _1 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 102944 "src/ocaml/preprocess/parser_raw.ml" +# 101035 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -102948,7 +101039,7 @@ module Tables = struct let _v : (string) = # 5061 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 102952 "src/ocaml/preprocess/parser_raw.ml" +# 101043 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -102973,7 +101064,7 @@ module Tables = struct let _v : (string) = # 5062 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 102977 "src/ocaml/preprocess/parser_raw.ml" +# 101068 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -102998,7 +101089,7 @@ module Tables = struct let _v : (Longident.t) = # 5137 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 103002 "src/ocaml/preprocess/parser_raw.ml" +# 101093 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -103045,47 +101136,45 @@ module Tables = struct let _1_inlined1 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 103049 "src/ocaml/preprocess/parser_raw.ml" +# 101140 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined1 in let mutable_ : (Asttypes.mutable_flag) = Obj.magic mutable_ in let _1 : (Parsetree.attributes) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_ty_ in - let _v = - let label = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in - let _1 = + let _v : ((string Location.loc * Asttypes.mutable_flag * Parsetree.class_field_kind) * + Parsetree.attributes) = let label = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in + let _1 = # 5010 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 103062 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 101153 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 103070 "src/ocaml/preprocess/parser_raw.ml" - - in - let attrs = +# 101161 "src/ocaml/preprocess/parser_raw.ml" + + in + let attrs = # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 103076 "src/ocaml/preprocess/parser_raw.ml" - in - let _1 = +# 101167 "src/ocaml/preprocess/parser_raw.ml" + in + let _1 = # 5301 "src/ocaml/preprocess/parser_raw.mly" ( Fresh ) -# 103081 "src/ocaml/preprocess/parser_raw.ml" - in - ( +# 101172 "src/ocaml/preprocess/parser_raw.ml" + in + # 2495 "src/ocaml/preprocess/parser_raw.mly" ( (label, mutable_, Cfk_virtual ty), attrs ) -# 103086 "src/ocaml/preprocess/parser_raw.ml" - : ((string Location.loc * Asttypes.mutable_flag * Parsetree.class_field_kind) * - Parsetree.attributes)) - in +# 101177 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -103131,47 +101220,45 @@ module Tables = struct let _1_inlined1 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 103135 "src/ocaml/preprocess/parser_raw.ml" +# 101224 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined1 in let _3 : (Asttypes.mutable_flag) = Obj.magic _3 in let _1 : (Parsetree.attributes) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__6_ in - let _v = - let _4 = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in - let _1 = + let _v : ((string Location.loc * Asttypes.mutable_flag * Parsetree.class_field_kind) * + Parsetree.attributes) = let _4 = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in + let _1 = # 5010 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 103148 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 101237 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 103156 "src/ocaml/preprocess/parser_raw.ml" - - in - let _2 = +# 101245 "src/ocaml/preprocess/parser_raw.ml" + + in + let _2 = # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 103162 "src/ocaml/preprocess/parser_raw.ml" - in - let _1 = +# 101251 "src/ocaml/preprocess/parser_raw.ml" + in + let _1 = # 5304 "src/ocaml/preprocess/parser_raw.mly" ( Fresh ) -# 103167 "src/ocaml/preprocess/parser_raw.ml" - in - ( +# 101256 "src/ocaml/preprocess/parser_raw.ml" + in + # 2497 "src/ocaml/preprocess/parser_raw.mly" ( (_4, _3, Cfk_concrete (_1, _6)), _2 ) -# 103172 "src/ocaml/preprocess/parser_raw.ml" - : ((string Location.loc * Asttypes.mutable_flag * Parsetree.class_field_kind) * - Parsetree.attributes)) - in +# 101261 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -103223,7 +101310,7 @@ module Tables = struct let _1_inlined2 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 103227 "src/ocaml/preprocess/parser_raw.ml" +# 101314 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined2 in let _3 : (Asttypes.mutable_flag) = Obj.magic _3 in let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in @@ -103231,43 +101318,41 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__6_ in - let _v = - let _4 = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in - let _1 = + let _v : ((string Location.loc * Asttypes.mutable_flag * Parsetree.class_field_kind) * + Parsetree.attributes) = let _4 = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in + let _1 = # 5010 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 103241 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 101328 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 103249 "src/ocaml/preprocess/parser_raw.ml" - - in - let _2 = - let _1 = _1_inlined1 in - +# 101336 "src/ocaml/preprocess/parser_raw.ml" + + in + let _2 = + let _1 = _1_inlined1 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 103257 "src/ocaml/preprocess/parser_raw.ml" - - in - let _1 = +# 101344 "src/ocaml/preprocess/parser_raw.ml" + + in + let _1 = # 5305 "src/ocaml/preprocess/parser_raw.mly" ( Override ) -# 103263 "src/ocaml/preprocess/parser_raw.ml" - in - ( +# 101350 "src/ocaml/preprocess/parser_raw.ml" + in + # 2497 "src/ocaml/preprocess/parser_raw.mly" ( (_4, _3, Cfk_concrete (_1, _6)), _2 ) -# 103268 "src/ocaml/preprocess/parser_raw.ml" - : ((string Location.loc * Asttypes.mutable_flag * Parsetree.class_field_kind) * - Parsetree.attributes)) - in +# 101355 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -103320,64 +101405,62 @@ module Tables = struct let _1_inlined1 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 103324 "src/ocaml/preprocess/parser_raw.ml" +# 101409 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined1 in let _3 : (Asttypes.mutable_flag) = Obj.magic _3 in let _1 : (Parsetree.attributes) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__7_ in - let _v = - let _4 = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in - let _1 = + let _v : ((string Location.loc * Asttypes.mutable_flag * Parsetree.class_field_kind) * + Parsetree.attributes) = let _4 = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in + let _1 = # 5010 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 103337 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 101422 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 103345 "src/ocaml/preprocess/parser_raw.ml" - - in - let _startpos__4_ = _startpos__1_inlined1_ in - let _2 = +# 101430 "src/ocaml/preprocess/parser_raw.ml" + + in + let _startpos__4_ = _startpos__1_inlined1_ in + let _2 = # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 103352 "src/ocaml/preprocess/parser_raw.ml" - in - let (_endpos__2_, _startpos__2_) = (_endpos__1_, _startpos__1_) in - let _1 = +# 101437 "src/ocaml/preprocess/parser_raw.ml" + in + let (_endpos__2_, _startpos__2_) = (_endpos__1_, _startpos__1_) in + let _1 = # 5304 "src/ocaml/preprocess/parser_raw.mly" ( Fresh ) -# 103358 "src/ocaml/preprocess/parser_raw.ml" - in - let (_endpos__1_, _startpos__1_) = (_endpos__0_, _endpos__0_) in - let _endpos = _endpos__7_ in - let _symbolstartpos = if _startpos__1_ != _endpos__1_ then - _startpos__1_ +# 101443 "src/ocaml/preprocess/parser_raw.ml" + in + let (_endpos__1_, _startpos__1_) = (_endpos__0_, _endpos__0_) in + let _endpos = _endpos__7_ in + let _symbolstartpos = if _startpos__1_ != _endpos__1_ then + _startpos__1_ + else + if _startpos__2_ != _endpos__2_ then + _startpos__2_ else - if _startpos__2_ != _endpos__2_ then - _startpos__2_ + if _startpos__3_ != _endpos__3_ then + _startpos__3_ else - if _startpos__3_ != _endpos__3_ then - _startpos__3_ - else - _startpos__4_ in - let _sloc = (_symbolstartpos, _endpos) in - ( + _startpos__4_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2500 "src/ocaml/preprocess/parser_raw.mly" ( let e = mkexp_type_constraint_with_modes ~loc:_sloc ~modes:[] _7 _5 in (_4, _3, Cfk_concrete (_1, e)), _2 ) -# 103378 "src/ocaml/preprocess/parser_raw.ml" - : ((string Location.loc * Asttypes.mutable_flag * Parsetree.class_field_kind) * - Parsetree.attributes)) - in +# 101463 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -103436,7 +101519,7 @@ module Tables = struct let _1_inlined2 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 103440 "src/ocaml/preprocess/parser_raw.ml" +# 101523 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined2 in let _3 : (Asttypes.mutable_flag) = Obj.magic _3 in let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in @@ -103444,59 +101527,57 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__7_ in - let _v = - let _4 = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in - let _1 = + let _v : ((string Location.loc * Asttypes.mutable_flag * Parsetree.class_field_kind) * + Parsetree.attributes) = let _4 = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in + let _1 = # 5010 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 103454 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 101537 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 103462 "src/ocaml/preprocess/parser_raw.ml" - - in - let _startpos__4_ = _startpos__1_inlined2_ in - let _2 = - let _1 = _1_inlined1 in - +# 101545 "src/ocaml/preprocess/parser_raw.ml" + + in + let _startpos__4_ = _startpos__1_inlined2_ in + let _2 = + let _1 = _1_inlined1 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 103471 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__2_, _startpos__2_) = (_endpos__1_inlined1_, _startpos__1_inlined1_) in - let _1 = +# 101554 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__2_, _startpos__2_) = (_endpos__1_inlined1_, _startpos__1_inlined1_) in + let _1 = # 5305 "src/ocaml/preprocess/parser_raw.mly" ( Override ) -# 103478 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__7_ in - let _symbolstartpos = if _startpos__1_ != _endpos__1_ then - _startpos__1_ +# 101561 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__7_ in + let _symbolstartpos = if _startpos__1_ != _endpos__1_ then + _startpos__1_ + else + if _startpos__2_ != _endpos__2_ then + _startpos__2_ else - if _startpos__2_ != _endpos__2_ then - _startpos__2_ + if _startpos__3_ != _endpos__3_ then + _startpos__3_ else - if _startpos__3_ != _endpos__3_ then - _startpos__3_ - else - _startpos__4_ in - let _sloc = (_symbolstartpos, _endpos) in - ( + _startpos__4_ in + let _sloc = (_symbolstartpos, _endpos) in + # 2500 "src/ocaml/preprocess/parser_raw.mly" ( let e = mkexp_type_constraint_with_modes ~loc:_sloc ~modes:[] _7 _5 in (_4, _3, Cfk_concrete (_1, e)), _2 ) -# 103497 "src/ocaml/preprocess/parser_raw.ml" - : ((string Location.loc * Asttypes.mutable_flag * Parsetree.class_field_kind) * - Parsetree.attributes)) - in +# 101580 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -103516,7 +101597,7 @@ module Tables = struct let _1 : ( # 1078 "src/ocaml/preprocess/parser_raw.mly" (string * char option) -# 103520 "src/ocaml/preprocess/parser_raw.ml" +# 101601 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -103524,7 +101605,7 @@ module Tables = struct let _v : (Parsetree.constant) = # 5016 "src/ocaml/preprocess/parser_raw.mly" ( let (n, m) = _1 in Pconst_integer (n, m) ) -# 103528 "src/ocaml/preprocess/parser_raw.ml" +# 101609 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -103545,7 +101626,7 @@ module Tables = struct let _1 : ( # 1028 "src/ocaml/preprocess/parser_raw.mly" (char) -# 103549 "src/ocaml/preprocess/parser_raw.ml" +# 101630 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -103553,7 +101634,7 @@ module Tables = struct let _v : (Parsetree.constant) = # 5017 "src/ocaml/preprocess/parser_raw.mly" ( Pconst_char _1 ) -# 103557 "src/ocaml/preprocess/parser_raw.ml" +# 101638 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -103574,7 +101655,7 @@ module Tables = struct let _1 : ( # 1141 "src/ocaml/preprocess/parser_raw.mly" (string * Location.t * string option) -# 103578 "src/ocaml/preprocess/parser_raw.ml" +# 101659 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -103583,7 +101664,7 @@ module Tables = struct # 5018 "src/ocaml/preprocess/parser_raw.mly" ( let (s, strloc, d) = _1 in Pconst_string (s, strloc, d) ) -# 103587 "src/ocaml/preprocess/parser_raw.ml" +# 101668 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -103604,7 +101685,7 @@ module Tables = struct let _1 : ( # 1051 "src/ocaml/preprocess/parser_raw.mly" (string * char option) -# 103608 "src/ocaml/preprocess/parser_raw.ml" +# 101689 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -103612,7 +101693,7 @@ module Tables = struct let _v : (Parsetree.constant) = # 5020 "src/ocaml/preprocess/parser_raw.mly" ( let (f, m) = _1 in Pconst_float (f, m) ) -# 103616 "src/ocaml/preprocess/parser_raw.ml" +# 101697 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -103683,48 +101764,46 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined3_ in - let _v = - let attrs2 = - let _1 = _1_inlined3 in - + let _v : (Parsetree.value_description * string Location.loc option) = let attrs2 = + let _1 = _1_inlined3 in + # 5399 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 103693 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_attrs2_ = _endpos__1_inlined3_ in - let id = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 101773 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_attrs2_ = _endpos__1_inlined3_ in + let id = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 103705 "src/ocaml/preprocess/parser_raw.ml" - - in - let attrs1 = - let _1 = _1_inlined1 in - +# 101785 "src/ocaml/preprocess/parser_raw.ml" + + in + let attrs1 = + let _1 = _1_inlined1 in + # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 103713 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos_attrs2_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - ( +# 101793 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos_attrs2_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 3993 "src/ocaml/preprocess/parser_raw.mly" ( let attrs = attrs1 @ attrs2 in let loc = make_loc _sloc in let docs = symbol_docs _sloc in Val.mk id ty ~attrs ~modalities ~loc ~docs, ext ) -# 103726 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.value_description * string Location.loc option)) - in +# 101806 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -103741,7 +101820,7 @@ module Tables = struct let _v : (Asttypes.virtual_flag) = # 5265 "src/ocaml/preprocess/parser_raw.mly" ( Concrete ) -# 103745 "src/ocaml/preprocess/parser_raw.ml" +# 101824 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -103766,7 +101845,7 @@ module Tables = struct let _v : (Asttypes.virtual_flag) = # 5266 "src/ocaml/preprocess/parser_raw.mly" ( Virtual ) -# 103770 "src/ocaml/preprocess/parser_raw.ml" +# 101849 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -103791,7 +101870,7 @@ module Tables = struct let _v : (Asttypes.mutable_flag) = # 5289 "src/ocaml/preprocess/parser_raw.mly" ( Immutable ) -# 103795 "src/ocaml/preprocess/parser_raw.ml" +# 101874 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -103823,7 +101902,7 @@ module Tables = struct let _v : (Asttypes.mutable_flag) = # 5290 "src/ocaml/preprocess/parser_raw.mly" ( Mutable ) -# 103827 "src/ocaml/preprocess/parser_raw.ml" +# 101906 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -103855,7 +101934,7 @@ module Tables = struct let _v : (Asttypes.mutable_flag) = # 5291 "src/ocaml/preprocess/parser_raw.mly" ( Mutable ) -# 103859 "src/ocaml/preprocess/parser_raw.ml" +# 101938 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -103880,7 +101959,7 @@ module Tables = struct let _v : (Asttypes.private_flag) = # 5296 "src/ocaml/preprocess/parser_raw.mly" ( Public ) -# 103884 "src/ocaml/preprocess/parser_raw.ml" +# 101963 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -103912,7 +101991,7 @@ module Tables = struct let _v : (Asttypes.private_flag) = # 5297 "src/ocaml/preprocess/parser_raw.mly" ( Private ) -# 103916 "src/ocaml/preprocess/parser_raw.ml" +# 101995 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -103944,7 +102023,7 @@ module Tables = struct let _v : (Asttypes.private_flag) = # 5298 "src/ocaml/preprocess/parser_raw.mly" ( Private ) -# 103948 "src/ocaml/preprocess/parser_raw.ml" +# 102027 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -104001,50 +102080,49 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_xs_ in - let _v = - let _6 = - let _1 = - let xs = -# 264 "" + let _v : (Parsetree.with_constraint) = let _6 = + let _1 = + let xs = +# 253 "" ( List.rev xs ) -# 104011 "src/ocaml/preprocess/parser_raw.ml" - in - +# 102089 "src/ocaml/preprocess/parser_raw.ml" + in + # 1380 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 104016 "src/ocaml/preprocess/parser_raw.ml" - - in +# 102094 "src/ocaml/preprocess/parser_raw.ml" + in + # 4098 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 104022 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__6_ = _endpos_xs_ in - let _5 = - let _1 = _1_inlined2 in - +# 102100 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__6_ = _endpos_xs_ in + let _5 = + let _1 = _1_inlined2 in + # 4521 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 104031 "src/ocaml/preprocess/parser_raw.ml" - - in - let _3 = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 1296 "src/ocaml/preprocess/parser_raw.mly" - ( mkrhs _1 _sloc ) -# 104042 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__6_ in +# 102109 "src/ocaml/preprocess/parser_raw.ml" + + in + let _3 = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in + let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in - ( + +# 1296 "src/ocaml/preprocess/parser_raw.mly" + ( mkrhs _1 _sloc ) +# 102120 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__6_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 4436 "src/ocaml/preprocess/parser_raw.mly" ( let lident = loc_last _3 in Pwith_type @@ -104055,9 +102133,8 @@ module Tables = struct ~manifest:_5 ~priv:_4 ~loc:(make_loc _sloc))) ) -# 104059 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.with_constraint)) - in +# 102137 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -104106,31 +102183,30 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined2_ in - let _v = - let _5 = - let _1 = _1_inlined2 in - + let _v : (Parsetree.with_constraint) = let _5 = + let _1 = _1_inlined2 in + # 4521 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 104116 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__5_ = _endpos__1_inlined2_ in - let _3 = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 1296 "src/ocaml/preprocess/parser_raw.mly" - ( mkrhs _1 _sloc ) -# 104128 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__5_ in +# 102192 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__5_ = _endpos__1_inlined2_ in + let _3 = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in + let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in - ( + +# 1296 "src/ocaml/preprocess/parser_raw.mly" + ( mkrhs _1 _sloc ) +# 102204 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__5_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 4449 "src/ocaml/preprocess/parser_raw.mly" ( let lident = loc_last _3 in Pwith_typesubst @@ -104139,9 +102215,8 @@ module Tables = struct ~params:_2 ~manifest:_5 ~loc:(make_loc _sloc))) ) -# 104143 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.with_constraint)) - in +# 102219 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -104183,35 +102258,33 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined2_ in - let _v = - let _4 = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let _v : (Parsetree.with_constraint) = let _4 = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 104196 "src/ocaml/preprocess/parser_raw.ml" - - in - let _2 = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 102270 "src/ocaml/preprocess/parser_raw.ml" + + in + let _2 = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 104207 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 102281 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4457 "src/ocaml/preprocess/parser_raw.mly" ( Pwith_module (_2, _4) ) -# 104213 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.with_constraint)) - in +# 102287 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -104253,35 +102326,33 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined2_ in - let _v = - let _4 = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let _v : (Parsetree.with_constraint) = let _4 = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 104266 "src/ocaml/preprocess/parser_raw.ml" - - in - let _2 = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - +# 102338 "src/ocaml/preprocess/parser_raw.ml" + + in + let _2 = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 104277 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 102349 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4459 "src/ocaml/preprocess/parser_raw.mly" ( Pwith_modsubst (_2, _4) ) -# 104283 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.with_constraint)) - in +# 102355 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -104330,24 +102401,22 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_rhs_ in - let _v = - let l = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let _v : (Parsetree.with_constraint) = let l = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 104343 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 102413 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4461 "src/ocaml/preprocess/parser_raw.mly" ( Pwith_modtype (l, rhs) ) -# 104349 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.with_constraint)) - in +# 102419 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -104396,24 +102465,22 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_rhs_ in - let _v = - let l = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - + let _v : (Parsetree.with_constraint) = let l = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 104409 "src/ocaml/preprocess/parser_raw.ml" - - in - ( +# 102477 "src/ocaml/preprocess/parser_raw.ml" + + in + # 4463 "src/ocaml/preprocess/parser_raw.mly" ( Pwith_modtypesubst (l, rhs) ) -# 104415 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.with_constraint)) - in +# 102483 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -104437,7 +102504,7 @@ module Tables = struct let _v : (Asttypes.private_flag) = # 4466 "src/ocaml/preprocess/parser_raw.mly" ( Public ) -# 104441 "src/ocaml/preprocess/parser_raw.ml" +# 102508 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -104469,7 +102536,7 @@ module Tables = struct let _v : (Asttypes.private_flag) = # 4467 "src/ocaml/preprocess/parser_raw.mly" ( Private ) -# 104473 "src/ocaml/preprocess/parser_raw.ml" +# 102540 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -104507,7 +102574,7 @@ module MenhirInterpreter = struct | T_UIDENT : ( # 1155 "src/ocaml/preprocess/parser_raw.mly" (string) -# 104511 "src/ocaml/preprocess/parser_raw.ml" +# 102578 "src/ocaml/preprocess/parser_raw.ml" ) terminal | T_TYPE : unit terminal | T_TRY : unit terminal @@ -104519,7 +102586,7 @@ module MenhirInterpreter = struct | T_STRING : ( # 1141 "src/ocaml/preprocess/parser_raw.mly" (string * Location.t * string option) -# 104523 "src/ocaml/preprocess/parser_raw.ml" +# 102590 "src/ocaml/preprocess/parser_raw.ml" ) terminal | T_STAR : unit terminal | T_STACK : unit terminal @@ -104533,12 +102600,12 @@ module MenhirInterpreter = struct | T_QUOTED_STRING_ITEM : ( # 1146 "src/ocaml/preprocess/parser_raw.mly" (string * Location.t * string * Location.t * string option) -# 104537 "src/ocaml/preprocess/parser_raw.ml" +# 102604 "src/ocaml/preprocess/parser_raw.ml" ) terminal | T_QUOTED_STRING_EXPR : ( # 1143 "src/ocaml/preprocess/parser_raw.mly" (string * Location.t * string * Location.t * string option) -# 104542 "src/ocaml/preprocess/parser_raw.ml" +# 102609 "src/ocaml/preprocess/parser_raw.ml" ) terminal | T_QUOTE : unit terminal | T_QUESTION : unit terminal @@ -104546,7 +102613,7 @@ module MenhirInterpreter = struct | T_PREFIXOP : ( # 1124 "src/ocaml/preprocess/parser_raw.mly" (string) -# 104550 "src/ocaml/preprocess/parser_raw.ml" +# 102617 "src/ocaml/preprocess/parser_raw.ml" ) terminal | T_PLUSEQ : unit terminal | T_PLUSDOT : unit terminal @@ -104557,7 +102624,7 @@ module MenhirInterpreter = struct | T_OPTLABEL : ( # 1116 "src/ocaml/preprocess/parser_raw.mly" (string) -# 104561 "src/ocaml/preprocess/parser_raw.ml" +# 102628 "src/ocaml/preprocess/parser_raw.ml" ) terminal | T_OPEN : unit terminal | T_ONCE : unit terminal @@ -104578,12 +102645,12 @@ module MenhirInterpreter = struct | T_LIDENT : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 104582 "src/ocaml/preprocess/parser_raw.ml" +# 102649 "src/ocaml/preprocess/parser_raw.ml" ) terminal | T_LETOP : ( # 1074 "src/ocaml/preprocess/parser_raw.mly" (string) -# 104587 "src/ocaml/preprocess/parser_raw.ml" +# 102654 "src/ocaml/preprocess/parser_raw.ml" ) terminal | T_LET : unit terminal | T_LESSMINUS : unit terminal @@ -104604,41 +102671,41 @@ module MenhirInterpreter = struct | T_LABEL : ( # 1082 "src/ocaml/preprocess/parser_raw.mly" (string) -# 104608 "src/ocaml/preprocess/parser_raw.ml" +# 102675 "src/ocaml/preprocess/parser_raw.ml" ) terminal | T_KIND_OF : unit terminal | T_KIND_ABBREV : unit terminal | T_INT : ( # 1078 "src/ocaml/preprocess/parser_raw.mly" (string * char option) -# 104615 "src/ocaml/preprocess/parser_raw.ml" +# 102682 "src/ocaml/preprocess/parser_raw.ml" ) terminal | T_INITIALIZER : unit terminal | T_INHERIT : unit terminal | T_INFIXOP4 : ( # 1072 "src/ocaml/preprocess/parser_raw.mly" (string) -# 104622 "src/ocaml/preprocess/parser_raw.ml" +# 102689 "src/ocaml/preprocess/parser_raw.ml" ) terminal | T_INFIXOP3 : ( # 1071 "src/ocaml/preprocess/parser_raw.mly" (string) -# 104627 "src/ocaml/preprocess/parser_raw.ml" +# 102694 "src/ocaml/preprocess/parser_raw.ml" ) terminal | T_INFIXOP2 : ( # 1070 "src/ocaml/preprocess/parser_raw.mly" (string) -# 104632 "src/ocaml/preprocess/parser_raw.ml" +# 102699 "src/ocaml/preprocess/parser_raw.ml" ) terminal | T_INFIXOP1 : ( # 1069 "src/ocaml/preprocess/parser_raw.mly" (string) -# 104637 "src/ocaml/preprocess/parser_raw.ml" +# 102704 "src/ocaml/preprocess/parser_raw.ml" ) terminal | T_INFIXOP0 : ( # 1066 "src/ocaml/preprocess/parser_raw.mly" (string) -# 104642 "src/ocaml/preprocess/parser_raw.ml" +# 102709 "src/ocaml/preprocess/parser_raw.ml" ) terminal | T_INCLUDE : unit terminal | T_IN : unit terminal @@ -104647,17 +102714,17 @@ module MenhirInterpreter = struct | T_HASH_INT : ( # 1079 "src/ocaml/preprocess/parser_raw.mly" (string * char option) -# 104651 "src/ocaml/preprocess/parser_raw.ml" +# 102718 "src/ocaml/preprocess/parser_raw.ml" ) terminal | T_HASH_FLOAT : ( # 1052 "src/ocaml/preprocess/parser_raw.mly" (string * char option) -# 104656 "src/ocaml/preprocess/parser_raw.ml" +# 102723 "src/ocaml/preprocess/parser_raw.ml" ) terminal | T_HASHOP : ( # 1137 "src/ocaml/preprocess/parser_raw.mly" (string) -# 104661 "src/ocaml/preprocess/parser_raw.ml" +# 102728 "src/ocaml/preprocess/parser_raw.ml" ) terminal | T_HASHLPAREN : unit terminal | T_HASHLBRACE : unit terminal @@ -104674,7 +102741,7 @@ module MenhirInterpreter = struct | T_FLOAT : ( # 1051 "src/ocaml/preprocess/parser_raw.mly" (string * char option) -# 104678 "src/ocaml/preprocess/parser_raw.ml" +# 102745 "src/ocaml/preprocess/parser_raw.ml" ) terminal | T_FALSE : unit terminal | T_EXTERNAL : unit terminal @@ -104690,7 +102757,7 @@ module MenhirInterpreter = struct | T_DOTOP : ( # 1073 "src/ocaml/preprocess/parser_raw.mly" (string) -# 104694 "src/ocaml/preprocess/parser_raw.ml" +# 102761 "src/ocaml/preprocess/parser_raw.ml" ) terminal | T_DOTLESS : unit terminal | T_DOTHASH : unit terminal @@ -104700,14 +102767,14 @@ module MenhirInterpreter = struct | T_DOCSTRING : ( # 1163 "src/ocaml/preprocess/parser_raw.mly" (Docstrings.docstring) -# 104704 "src/ocaml/preprocess/parser_raw.ml" +# 102771 "src/ocaml/preprocess/parser_raw.ml" ) terminal | T_DO : unit terminal | T_CONSTRAINT : unit terminal | T_COMMENT : ( # 1162 "src/ocaml/preprocess/parser_raw.mly" (string * Location.t) -# 104711 "src/ocaml/preprocess/parser_raw.ml" +# 102778 "src/ocaml/preprocess/parser_raw.ml" ) terminal | T_COMMA : unit terminal | T_COLONRBRACKET : unit terminal @@ -104719,7 +102786,7 @@ module MenhirInterpreter = struct | T_CHAR : ( # 1028 "src/ocaml/preprocess/parser_raw.mly" (char) -# 104723 "src/ocaml/preprocess/parser_raw.ml" +# 102790 "src/ocaml/preprocess/parser_raw.ml" ) terminal | T_BEGIN : unit terminal | T_BARRBRACKET : unit terminal @@ -104734,7 +102801,7 @@ module MenhirInterpreter = struct | T_ANDOP : ( # 1075 "src/ocaml/preprocess/parser_raw.mly" (string) -# 104738 "src/ocaml/preprocess/parser_raw.ml" +# 102805 "src/ocaml/preprocess/parser_raw.ml" ) terminal | T_AND : unit terminal | T_AMPERSAND : unit terminal @@ -105880,130 +103947,135 @@ module MenhirInterpreter = struct end let use_file = - fun lexer lexbuf : (Parsetree.toplevel_phrase list) -> - Obj.magic (MenhirInterpreter.entry `Legacy 3049 lexer lexbuf) + fun lexer lexbuf -> + (Obj.magic (MenhirInterpreter.entry `Legacy 3049 lexer lexbuf) : (Parsetree.toplevel_phrase list)) and toplevel_phrase = - fun lexer lexbuf : (Parsetree.toplevel_phrase) -> - Obj.magic (MenhirInterpreter.entry `Legacy 3021 lexer lexbuf) + fun lexer lexbuf -> + (Obj.magic (MenhirInterpreter.entry `Legacy 3021 lexer lexbuf) : (Parsetree.toplevel_phrase)) and parse_val_longident = - fun lexer lexbuf : (Longident.t) -> - Obj.magic (MenhirInterpreter.entry `Legacy 3015 lexer lexbuf) + fun lexer lexbuf -> + (Obj.magic (MenhirInterpreter.entry `Legacy 3015 lexer lexbuf) : (Longident.t)) and parse_pattern = - fun lexer lexbuf : (Parsetree.pattern) -> - Obj.magic (MenhirInterpreter.entry `Legacy 3011 lexer lexbuf) + fun lexer lexbuf -> + (Obj.magic (MenhirInterpreter.entry `Legacy 3011 lexer lexbuf) : (Parsetree.pattern)) and parse_mty_longident = - fun lexer lexbuf : (Longident.t) -> - Obj.magic (MenhirInterpreter.entry `Legacy 3007 lexer lexbuf) + fun lexer lexbuf -> + (Obj.magic (MenhirInterpreter.entry `Legacy 3007 lexer lexbuf) : (Longident.t)) and parse_module_type = - fun lexer lexbuf : (Parsetree.module_type) -> - Obj.magic (MenhirInterpreter.entry `Legacy 3003 lexer lexbuf) + fun lexer lexbuf -> + (Obj.magic (MenhirInterpreter.entry `Legacy 3003 lexer lexbuf) : (Parsetree.module_type)) and parse_module_expr = - fun lexer lexbuf : (Parsetree.module_expr) -> - Obj.magic (MenhirInterpreter.entry `Legacy 2999 lexer lexbuf) + fun lexer lexbuf -> + (Obj.magic (MenhirInterpreter.entry `Legacy 2999 lexer lexbuf) : (Parsetree.module_expr)) and parse_mod_longident = - fun lexer lexbuf : (Longident.t) -> - Obj.magic (MenhirInterpreter.entry `Legacy 2995 lexer lexbuf) + fun lexer lexbuf -> + (Obj.magic (MenhirInterpreter.entry `Legacy 2995 lexer lexbuf) : (Longident.t)) and parse_mod_ext_longident = - fun lexer lexbuf : (Longident.t) -> - Obj.magic (MenhirInterpreter.entry `Legacy 2991 lexer lexbuf) + fun lexer lexbuf -> + (Obj.magic (MenhirInterpreter.entry `Legacy 2991 lexer lexbuf) : (Longident.t)) and parse_expression = - fun lexer lexbuf : (Parsetree.expression) -> - Obj.magic (MenhirInterpreter.entry `Legacy 2987 lexer lexbuf) + fun lexer lexbuf -> + (Obj.magic (MenhirInterpreter.entry `Legacy 2987 lexer lexbuf) : (Parsetree.expression)) and parse_core_type = - fun lexer lexbuf : (Parsetree.core_type) -> - Obj.magic (MenhirInterpreter.entry `Legacy 2983 lexer lexbuf) + fun lexer lexbuf -> + (Obj.magic (MenhirInterpreter.entry `Legacy 2983 lexer lexbuf) : (Parsetree.core_type)) and parse_constr_longident = - fun lexer lexbuf : (Longident.t) -> - Obj.magic (MenhirInterpreter.entry `Legacy 2979 lexer lexbuf) + fun lexer lexbuf -> + (Obj.magic (MenhirInterpreter.entry `Legacy 2979 lexer lexbuf) : (Longident.t)) and parse_any_longident = - fun lexer lexbuf : (Longident.t) -> - Obj.magic (MenhirInterpreter.entry `Legacy 2961 lexer lexbuf) + fun lexer lexbuf -> + (Obj.magic (MenhirInterpreter.entry `Legacy 2961 lexer lexbuf) : (Longident.t)) and interface = - fun lexer lexbuf : (Parsetree.signature) -> - Obj.magic (MenhirInterpreter.entry `Legacy 2957 lexer lexbuf) + fun lexer lexbuf -> + (Obj.magic (MenhirInterpreter.entry `Legacy 2957 lexer lexbuf) : (Parsetree.signature)) and implementation = - fun lexer lexbuf : (Parsetree.structure) -> - Obj.magic (MenhirInterpreter.entry `Legacy 0 lexer lexbuf) + fun lexer lexbuf -> + (Obj.magic (MenhirInterpreter.entry `Legacy 0 lexer lexbuf) : (Parsetree.structure)) module Incremental = struct let use_file = - fun initial_position : (Parsetree.toplevel_phrase list) MenhirInterpreter.checkpoint -> - Obj.magic (MenhirInterpreter.start 3049 initial_position) + fun initial_position -> + (Obj.magic (MenhirInterpreter.start 3049 initial_position) : (Parsetree.toplevel_phrase list) MenhirInterpreter.checkpoint) and toplevel_phrase = - fun initial_position : (Parsetree.toplevel_phrase) MenhirInterpreter.checkpoint -> - Obj.magic (MenhirInterpreter.start 3021 initial_position) + fun initial_position -> + (Obj.magic (MenhirInterpreter.start 3021 initial_position) : (Parsetree.toplevel_phrase) MenhirInterpreter.checkpoint) and parse_val_longident = - fun initial_position : (Longident.t) MenhirInterpreter.checkpoint -> - Obj.magic (MenhirInterpreter.start 3015 initial_position) + fun initial_position -> + (Obj.magic (MenhirInterpreter.start 3015 initial_position) : (Longident.t) MenhirInterpreter.checkpoint) and parse_pattern = - fun initial_position : (Parsetree.pattern) MenhirInterpreter.checkpoint -> - Obj.magic (MenhirInterpreter.start 3011 initial_position) + fun initial_position -> + (Obj.magic (MenhirInterpreter.start 3011 initial_position) : (Parsetree.pattern) MenhirInterpreter.checkpoint) and parse_mty_longident = - fun initial_position : (Longident.t) MenhirInterpreter.checkpoint -> - Obj.magic (MenhirInterpreter.start 3007 initial_position) + fun initial_position -> + (Obj.magic (MenhirInterpreter.start 3007 initial_position) : (Longident.t) MenhirInterpreter.checkpoint) and parse_module_type = - fun initial_position : (Parsetree.module_type) MenhirInterpreter.checkpoint -> - Obj.magic (MenhirInterpreter.start 3003 initial_position) + fun initial_position -> + (Obj.magic (MenhirInterpreter.start 3003 initial_position) : (Parsetree.module_type) MenhirInterpreter.checkpoint) and parse_module_expr = - fun initial_position : (Parsetree.module_expr) MenhirInterpreter.checkpoint -> - Obj.magic (MenhirInterpreter.start 2999 initial_position) + fun initial_position -> + (Obj.magic (MenhirInterpreter.start 2999 initial_position) : (Parsetree.module_expr) MenhirInterpreter.checkpoint) and parse_mod_longident = - fun initial_position : (Longident.t) MenhirInterpreter.checkpoint -> - Obj.magic (MenhirInterpreter.start 2995 initial_position) + fun initial_position -> + (Obj.magic (MenhirInterpreter.start 2995 initial_position) : (Longident.t) MenhirInterpreter.checkpoint) and parse_mod_ext_longident = - fun initial_position : (Longident.t) MenhirInterpreter.checkpoint -> - Obj.magic (MenhirInterpreter.start 2991 initial_position) + fun initial_position -> + (Obj.magic (MenhirInterpreter.start 2991 initial_position) : (Longident.t) MenhirInterpreter.checkpoint) and parse_expression = - fun initial_position : (Parsetree.expression) MenhirInterpreter.checkpoint -> - Obj.magic (MenhirInterpreter.start 2987 initial_position) + fun initial_position -> + (Obj.magic (MenhirInterpreter.start 2987 initial_position) : (Parsetree.expression) MenhirInterpreter.checkpoint) and parse_core_type = - fun initial_position : (Parsetree.core_type) MenhirInterpreter.checkpoint -> - Obj.magic (MenhirInterpreter.start 2983 initial_position) + fun initial_position -> + (Obj.magic (MenhirInterpreter.start 2983 initial_position) : (Parsetree.core_type) MenhirInterpreter.checkpoint) and parse_constr_longident = - fun initial_position : (Longident.t) MenhirInterpreter.checkpoint -> - Obj.magic (MenhirInterpreter.start 2979 initial_position) + fun initial_position -> + (Obj.magic (MenhirInterpreter.start 2979 initial_position) : (Longident.t) MenhirInterpreter.checkpoint) and parse_any_longident = - fun initial_position : (Longident.t) MenhirInterpreter.checkpoint -> - Obj.magic (MenhirInterpreter.start 2961 initial_position) + fun initial_position -> + (Obj.magic (MenhirInterpreter.start 2961 initial_position) : (Longident.t) MenhirInterpreter.checkpoint) and interface = - fun initial_position : (Parsetree.signature) MenhirInterpreter.checkpoint -> - Obj.magic (MenhirInterpreter.start 2957 initial_position) + fun initial_position -> + (Obj.magic (MenhirInterpreter.start 2957 initial_position) : (Parsetree.signature) MenhirInterpreter.checkpoint) and implementation = - fun initial_position : (Parsetree.structure) MenhirInterpreter.checkpoint -> - Obj.magic (MenhirInterpreter.start 0 initial_position) + fun initial_position -> + (Obj.magic (MenhirInterpreter.start 0 initial_position) : (Parsetree.structure) MenhirInterpreter.checkpoint) end # 5449 "src/ocaml/preprocess/parser_raw.mly" -# 106010 "src/ocaml/preprocess/parser_raw.ml" +# 104077 "src/ocaml/preprocess/parser_raw.ml" + +# 269 "" + + +# 104082 "src/ocaml/preprocess/parser_raw.ml" diff --git a/src/sherlodoc/type_parser.ml b/src/sherlodoc/type_parser.ml index 0151dd0f1..143dbf5f6 100644 --- a/src/sherlodoc/type_parser.ml +++ b/src/sherlodoc/type_parser.ml @@ -3,22 +3,18 @@ module MenhirBasics = struct exception Error - let _eRR = - fun _s -> - raise Error - type token = | WORD of ( # 4 "src/sherlodoc/type_parser.mly" (string) -# 15 "src/sherlodoc/type_parser.ml" +# 11 "src/sherlodoc/type_parser.ml" ) | WILDCARD | STAR | POLY of ( # 5 "src/sherlodoc/type_parser.mly" (string) -# 22 "src/sherlodoc/type_parser.ml" +# 18 "src/sherlodoc/type_parser.ml" ) | PARENS_OPEN | PARENS_CLOSE @@ -30,543 +26,516 @@ end include MenhirBasics -type ('s, 'r) _menhir_state = - | MenhirState00 : ('s, _menhir_box_main) _menhir_state - (** State 00. - Stack shape : . - Start symbol: main. *) - - | MenhirState04 : (('s, _menhir_box_main) _menhir_cell1_PARENS_OPEN, _menhir_box_main) _menhir_state - (** State 04. - Stack shape : PARENS_OPEN. - Start symbol: main. *) - - | MenhirState06 : (('s, _menhir_box_main) _menhir_cell1_typs _menhir_cell0_WORD, _menhir_box_main) _menhir_state - (** State 06. - Stack shape : typs WORD. - Start symbol: main. *) - - | MenhirState07 : (('s, _menhir_box_main) _menhir_cell1_WORD, _menhir_box_main) _menhir_state - (** State 07. - Stack shape : WORD. - Start symbol: main. *) - - | MenhirState11 : (('s, _menhir_box_main) _menhir_cell1_typ2, _menhir_box_main) _menhir_state - (** State 11. - Stack shape : typ2. - Start symbol: main. *) - - | MenhirState13 : (('s, _menhir_box_main) _menhir_cell1_typ1, _menhir_box_main) _menhir_state - (** State 13. - Stack shape : typ1. - Start symbol: main. *) - - | MenhirState19 : (('s, _menhir_box_main) _menhir_cell1_typ, _menhir_box_main) _menhir_state - (** State 19. - Stack shape : typ. - Start symbol: main. *) - - -and ('s, 'r) _menhir_cell1_typ = - | MenhirCell1_typ of 's * ('s, 'r) _menhir_state * (Type_parsed.t) - -and ('s, 'r) _menhir_cell1_typ1 = - | MenhirCell1_typ1 of 's * ('s, 'r) _menhir_state * (Type_parsed.t) - -and ('s, 'r) _menhir_cell1_typ2 = - | MenhirCell1_typ2 of 's * ('s, 'r) _menhir_state * (Type_parsed.t) - -and ('s, 'r) _menhir_cell1_typs = - | MenhirCell1_typs of 's * ('s, 'r) _menhir_state * (Type_parsed.t list) - -and ('s, 'r) _menhir_cell1_PARENS_OPEN = - | MenhirCell1_PARENS_OPEN of 's * ('s, 'r) _menhir_state - -and ('s, 'r) _menhir_cell1_WORD = - | MenhirCell1_WORD of 's * ('s, 'r) _menhir_state * ( +let _eRR = + MenhirBasics.Error + +type _menhir_env = { + _menhir_lexer: Lexing.lexbuf -> token; + _menhir_lexbuf: Lexing.lexbuf; + _menhir_token: token; + mutable _menhir_error: bool +} + +and _menhir_state = + | MenhirState19 + | MenhirState13 + | MenhirState11 + | MenhirState7 + | MenhirState6 + | MenhirState4 + | MenhirState0 + +let rec _menhir_goto_list1_typ_COMMA_ : _menhir_env -> 'ttv_tail -> _menhir_state -> (Type_parsed.t list) -> 'ttv_return = + fun _menhir_env _menhir_stack _menhir_s _v -> + let _menhir_stack = (_menhir_stack, _menhir_s, _v) in + match _menhir_s with + | MenhirState19 -> + let _menhir_stack = Obj.magic _menhir_stack in + let _menhir_stack = Obj.magic _menhir_stack in + let ((_menhir_stack, _menhir_s, (x : (Type_parsed.t))), _, (xs : (Type_parsed.t list))) = _menhir_stack in + let _v : (Type_parsed.t list) = +# 50 "src/sherlodoc/type_parser.mly" + ( x::xs ) +# 60 "src/sherlodoc/type_parser.ml" + in + _menhir_goto_list1_typ_COMMA_ _menhir_env _menhir_stack _menhir_s _v + | MenhirState4 -> + let _menhir_stack = Obj.magic _menhir_stack in + assert (not _menhir_env._menhir_error); + let _tok = _menhir_env._menhir_token in + (match _tok with + | PARENS_CLOSE -> + let _menhir_stack = Obj.magic _menhir_stack in + let _menhir_env = _menhir_discard _menhir_env in + let _menhir_stack = Obj.magic _menhir_stack in + let ((_menhir_stack, _menhir_s), _, (ts : (Type_parsed.t list))) = _menhir_stack in + let _v : (Type_parsed.t list) = +# 44 "src/sherlodoc/type_parser.mly" + ( ts ) +# 76 "src/sherlodoc/type_parser.ml" + in + _menhir_goto_typs _menhir_env _menhir_stack _menhir_s _v + | _ -> + assert (not _menhir_env._menhir_error); + _menhir_env._menhir_error <- true; + let _menhir_stack = Obj.magic _menhir_stack in + let (_menhir_stack, _menhir_s, _) = _menhir_stack in + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) _menhir_s) + | _ -> + _menhir_fail () + +and _menhir_goto_list_WORD_ : _menhir_env -> 'ttv_tail -> _menhir_state -> (string list) -> 'ttv_return = + fun _menhir_env _menhir_stack _menhir_s _v -> + match _menhir_s with + | MenhirState7 -> + let _menhir_stack = Obj.magic _menhir_stack in + let _menhir_stack = Obj.magic _menhir_stack in + let (xs : (string list)) = _v in + let (_menhir_stack, _menhir_s, (x : ( # 4 "src/sherlodoc/type_parser.mly" (string) -# 90 "src/sherlodoc/type_parser.ml" -) - -and 's _menhir_cell0_WORD = - | MenhirCell0_WORD of 's * ( +# 98 "src/sherlodoc/type_parser.ml" + ))) = _menhir_stack in + let _v : (string list) = +# 213 "" + ( x :: xs ) +# 103 "src/sherlodoc/type_parser.ml" + in + _menhir_goto_list_WORD_ _menhir_env _menhir_stack _menhir_s _v + | MenhirState6 -> + let _menhir_stack = Obj.magic _menhir_stack in + let _menhir_stack = Obj.magic _menhir_stack in + let (ws : (string list)) = _v in + let ((_menhir_stack, _menhir_s, (ts : (Type_parsed.t list))), (w : ( # 4 "src/sherlodoc/type_parser.mly" (string) -# 97 "src/sherlodoc/type_parser.ml" -) - -and _menhir_box_main = - | MenhirBox_main of (Type_parsed.t) [@@unboxed] - -let _menhir_action_01 = - fun () -> - ( -# 216 "" - ( [] ) -# 108 "src/sherlodoc/type_parser.ml" - : (string list)) - -let _menhir_action_02 = - fun x xs -> - ( -# 219 "" - ( x :: xs ) -# 116 "src/sherlodoc/type_parser.ml" - : (string list)) - -let _menhir_action_03 = - fun x -> +# 113 "src/sherlodoc/type_parser.ml" + ))) = _menhir_stack in + let _v : (Type_parsed.t) = +# 29 "src/sherlodoc/type_parser.mly" ( -# 49 "src/sherlodoc/type_parser.mly" - ( [x] ) -# 124 "src/sherlodoc/type_parser.ml" - : (Type_parsed.t list)) + List.fold_left ( fun acc w -> + Type_parsed.Tycon (w, [acc])) (Type_parsed.Tycon (w, ts)) ws + ) +# 121 "src/sherlodoc/type_parser.ml" + in + _menhir_goto_typ1 _menhir_env _menhir_stack _menhir_s _v + | _ -> + _menhir_fail () -let _menhir_action_04 = - fun x xs -> - ( -# 50 "src/sherlodoc/type_parser.mly" - ( x::xs ) -# 132 "src/sherlodoc/type_parser.ml" - : (Type_parsed.t list)) +and _menhir_fail : unit -> 'a = + fun () -> + Printf.fprintf stderr "Internal failure -- please contact the parser generator's developers.\n%!"; + assert false -let _menhir_action_05 = - fun x -> - ( +and _menhir_goto_typ : _menhir_env -> 'ttv_tail -> _menhir_state -> (Type_parsed.t) -> 'ttv_return = + fun _menhir_env _menhir_stack _menhir_s _v -> + let _menhir_stack = (_menhir_stack, _menhir_s, _v) in + match _menhir_s with + | MenhirState11 -> + let _menhir_stack = Obj.magic _menhir_stack in + let _menhir_stack = Obj.magic _menhir_stack in + let ((_menhir_stack, _menhir_s, (a : (Type_parsed.t))), _, (b : (Type_parsed.t))) = _menhir_stack in + let _v : (Type_parsed.t) = +# 18 "src/sherlodoc/type_parser.mly" + ( Type_parsed.Arrow (a, b) ) +# 143 "src/sherlodoc/type_parser.ml" + in + _menhir_goto_typ _menhir_env _menhir_stack _menhir_s _v + | MenhirState19 | MenhirState4 -> + let _menhir_stack = Obj.magic _menhir_stack in + assert (not _menhir_env._menhir_error); + let _tok = _menhir_env._menhir_token in + (match _tok with + | COMMA -> + let _menhir_stack = Obj.magic _menhir_stack in + let _menhir_env = _menhir_discard _menhir_env in + let _tok = _menhir_env._menhir_token in + (match _tok with + | PARENS_OPEN -> + _menhir_run4 _menhir_env (Obj.magic _menhir_stack) MenhirState19 + | POLY _v -> + _menhir_run3 _menhir_env (Obj.magic _menhir_stack) MenhirState19 _v + | WILDCARD -> + _menhir_run2 _menhir_env (Obj.magic _menhir_stack) MenhirState19 + | WORD _v -> + _menhir_run1 _menhir_env (Obj.magic _menhir_stack) MenhirState19 _v + | ARROW | COMMA | PARENS_CLOSE | STAR -> + _menhir_reduce13 _menhir_env (Obj.magic _menhir_stack) MenhirState19 + | _ -> + assert (not _menhir_env._menhir_error); + _menhir_env._menhir_error <- true; + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) MenhirState19) + | PARENS_CLOSE -> + let _menhir_stack = Obj.magic _menhir_stack in + let (_menhir_stack, _menhir_s, (x : (Type_parsed.t))) = _menhir_stack in + let _v : (Type_parsed.t list) = # 49 "src/sherlodoc/type_parser.mly" ( [x] ) -# 140 "src/sherlodoc/type_parser.ml" - : (Type_parsed.t list)) - -let _menhir_action_06 = - fun x xs -> - ( -# 50 "src/sherlodoc/type_parser.mly" - ( x::xs ) -# 148 "src/sherlodoc/type_parser.ml" - : (Type_parsed.t list)) - -let _menhir_action_07 = - fun t -> - ( +# 176 "src/sherlodoc/type_parser.ml" + in + _menhir_goto_list1_typ_COMMA_ _menhir_env _menhir_stack _menhir_s _v + | _ -> + assert (not _menhir_env._menhir_error); + _menhir_env._menhir_error <- true; + let _menhir_stack = Obj.magic _menhir_stack in + let (_menhir_stack, _menhir_s, _) = _menhir_stack in + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) _menhir_s) + | MenhirState0 -> + let _menhir_stack = Obj.magic _menhir_stack in + assert (not _menhir_env._menhir_error); + let _tok = _menhir_env._menhir_token in + (match _tok with + | EOF -> + let _menhir_stack = Obj.magic _menhir_stack in + let _menhir_stack = Obj.magic _menhir_stack in + let (_menhir_stack, _menhir_s, (t : (Type_parsed.t))) = _menhir_stack in + let _v : (Type_parsed.t) = # 13 "src/sherlodoc/type_parser.mly" ( t ) -# 156 "src/sherlodoc/type_parser.ml" - : (Type_parsed.t)) +# 197 "src/sherlodoc/type_parser.ml" + in + let _menhir_stack = Obj.magic _menhir_stack in + let _menhir_stack = Obj.magic _menhir_stack in + let (_1 : (Type_parsed.t)) = _v in + Obj.magic _1 + | _ -> + assert (not _menhir_env._menhir_error); + _menhir_env._menhir_error <- true; + let _menhir_stack = Obj.magic _menhir_stack in + let (_menhir_stack, _menhir_s, _) = _menhir_stack in + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) _menhir_s) + | _ -> + _menhir_fail () + +and _menhir_reduce1 : _menhir_env -> 'ttv_tail -> _menhir_state -> 'ttv_return = + fun _menhir_env _menhir_stack _menhir_s -> + let _v : (string list) = +# 211 "" + ( [] ) +# 217 "src/sherlodoc/type_parser.ml" + in + _menhir_goto_list_WORD_ _menhir_env _menhir_stack _menhir_s _v -let _menhir_action_08 = - fun t -> - ( +and _menhir_run7 : _menhir_env -> 'ttv_tail -> _menhir_state -> ( +# 4 "src/sherlodoc/type_parser.mly" + (string) +# 224 "src/sherlodoc/type_parser.ml" +) -> 'ttv_return = + fun _menhir_env _menhir_stack _menhir_s _v -> + let _menhir_stack = (_menhir_stack, _menhir_s, _v) in + let _menhir_env = _menhir_discard _menhir_env in + let _tok = _menhir_env._menhir_token in + match _tok with + | WORD _v -> + _menhir_run7 _menhir_env (Obj.magic _menhir_stack) MenhirState7 _v + | ARROW | COMMA | EOF | PARENS_CLOSE | STAR -> + _menhir_reduce1 _menhir_env (Obj.magic _menhir_stack) MenhirState7 + | _ -> + assert (not _menhir_env._menhir_error); + _menhir_env._menhir_error <- true; + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) MenhirState7 + +and _menhir_goto_list1_typ1_STAR_ : _menhir_env -> 'ttv_tail -> _menhir_state -> (Type_parsed.t list) -> 'ttv_return = + fun _menhir_env _menhir_stack _menhir_s _v -> + match _menhir_s with + | MenhirState13 -> + let _menhir_stack = Obj.magic _menhir_stack in + let _menhir_stack = Obj.magic _menhir_stack in + let (xs : (Type_parsed.t list)) = _v in + let (_menhir_stack, _menhir_s, (x : (Type_parsed.t))) = _menhir_stack in + let _v : (Type_parsed.t list) = +# 50 "src/sherlodoc/type_parser.mly" + ( x::xs ) +# 251 "src/sherlodoc/type_parser.ml" + in + _menhir_goto_list1_typ1_STAR_ _menhir_env _menhir_stack _menhir_s _v + | MenhirState0 | MenhirState4 | MenhirState19 | MenhirState11 -> + let _menhir_stack = Obj.magic _menhir_stack in + let _menhir_stack = Obj.magic _menhir_stack in + let (xs : (Type_parsed.t list)) = _v in + let _v : (Type_parsed.t) = +# 22 "src/sherlodoc/type_parser.mly" + ( Type_parsed.tuple xs ) +# 261 "src/sherlodoc/type_parser.ml" + in + let _menhir_stack = (_menhir_stack, _menhir_s, _v) in + let _menhir_stack = Obj.magic _menhir_stack in + assert (not _menhir_env._menhir_error); + let _tok = _menhir_env._menhir_token in + (match _tok with + | ARROW -> + let _menhir_stack = Obj.magic _menhir_stack in + let _menhir_env = _menhir_discard _menhir_env in + let _tok = _menhir_env._menhir_token in + (match _tok with + | PARENS_OPEN -> + _menhir_run4 _menhir_env (Obj.magic _menhir_stack) MenhirState11 + | POLY _v -> + _menhir_run3 _menhir_env (Obj.magic _menhir_stack) MenhirState11 _v + | WILDCARD -> + _menhir_run2 _menhir_env (Obj.magic _menhir_stack) MenhirState11 + | WORD _v -> + _menhir_run1 _menhir_env (Obj.magic _menhir_stack) MenhirState11 _v + | ARROW | COMMA | EOF | PARENS_CLOSE | STAR -> + _menhir_reduce13 _menhir_env (Obj.magic _menhir_stack) MenhirState11) + | COMMA | EOF | PARENS_CLOSE -> + let _menhir_stack = Obj.magic _menhir_stack in + let (_menhir_stack, _menhir_s, (t : (Type_parsed.t))) = _menhir_stack in + let _v : (Type_parsed.t) = # 17 "src/sherlodoc/type_parser.mly" ( t ) -# 164 "src/sherlodoc/type_parser.ml" - : (Type_parsed.t)) - -let _menhir_action_09 = - fun a b -> - ( -# 18 "src/sherlodoc/type_parser.mly" - ( Type_parsed.Arrow (a, b) ) -# 172 "src/sherlodoc/type_parser.ml" - : (Type_parsed.t)) - -let _menhir_action_10 = - fun () -> - ( -# 36 "src/sherlodoc/type_parser.mly" - ( Type_parsed.Wildcard ) -# 180 "src/sherlodoc/type_parser.ml" - : (Type_parsed.t)) - -let _menhir_action_11 = - fun w -> - ( -# 37 "src/sherlodoc/type_parser.mly" - ( Type_parsed.Tyvar w ) -# 188 "src/sherlodoc/type_parser.ml" - : (Type_parsed.t)) - -let _menhir_action_12 = - fun w -> - ( -# 38 "src/sherlodoc/type_parser.mly" - ( Type_parsed.Tycon (w, []) ) -# 196 "src/sherlodoc/type_parser.ml" - : (Type_parsed.t)) - -let _menhir_action_13 = - fun () -> - ( -# 26 "src/sherlodoc/type_parser.mly" - ( Type_parsed.Wildcard ) -# 204 "src/sherlodoc/type_parser.ml" - : (Type_parsed.t)) - -let _menhir_action_14 = - fun ts -> - ( +# 289 "src/sherlodoc/type_parser.ml" + in + _menhir_goto_typ _menhir_env _menhir_stack _menhir_s _v + | _ -> + assert (not _menhir_env._menhir_error); + _menhir_env._menhir_error <- true; + let _menhir_stack = Obj.magic _menhir_stack in + let (_menhir_stack, _menhir_s, _) = _menhir_stack in + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) _menhir_s) + | _ -> + _menhir_fail () + +and _menhir_goto_typs : _menhir_env -> 'ttv_tail -> _menhir_state -> (Type_parsed.t list) -> 'ttv_return = + fun _menhir_env _menhir_stack _menhir_s _v -> + let _menhir_stack = (_menhir_stack, _menhir_s, _v) in + let _menhir_stack = Obj.magic _menhir_stack in + assert (not _menhir_env._menhir_error); + let _tok = _menhir_env._menhir_token in + match _tok with + | WORD _v -> + let _menhir_stack = Obj.magic _menhir_stack in + let _menhir_stack = (_menhir_stack, _v) in + let _menhir_env = _menhir_discard _menhir_env in + let _tok = _menhir_env._menhir_token in + (match _tok with + | WORD _v -> + _menhir_run7 _menhir_env (Obj.magic _menhir_stack) MenhirState6 _v + | ARROW | COMMA | EOF | PARENS_CLOSE | STAR -> + _menhir_reduce1 _menhir_env (Obj.magic _menhir_stack) MenhirState6 + | _ -> + assert (not _menhir_env._menhir_error); + _menhir_env._menhir_error <- true; + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) MenhirState6) + | ARROW | COMMA | EOF | PARENS_CLOSE | STAR -> + let _menhir_stack = Obj.magic _menhir_stack in + let (_menhir_stack, _menhir_s, (ts : (Type_parsed.t list))) = _menhir_stack in + let _v : (Type_parsed.t) = # 27 "src/sherlodoc/type_parser.mly" ( Type_parsed.tuple ts ) -# 212 "src/sherlodoc/type_parser.ml" - : (Type_parsed.t)) - -let _menhir_action_15 = - fun ts w ws -> - ( -# 29 "src/sherlodoc/type_parser.mly" - ( - List.fold_left ( fun acc w -> - Type_parsed.Tycon (w, [acc])) (Type_parsed.Tycon (w, ts)) ws - ) -# 223 "src/sherlodoc/type_parser.ml" - : (Type_parsed.t)) - -let _menhir_action_16 = - fun xs -> - ( -# 22 "src/sherlodoc/type_parser.mly" - ( Type_parsed.tuple xs ) -# 231 "src/sherlodoc/type_parser.ml" - : (Type_parsed.t)) - -let _menhir_action_17 = - fun t -> - ( +# 328 "src/sherlodoc/type_parser.ml" + in + _menhir_goto_typ1 _menhir_env _menhir_stack _menhir_s _v + | _ -> + assert (not _menhir_env._menhir_error); + _menhir_env._menhir_error <- true; + let _menhir_stack = Obj.magic _menhir_stack in + let (_menhir_stack, _menhir_s, _) = _menhir_stack in + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) _menhir_s + +and _menhir_goto_typ1 : _menhir_env -> 'ttv_tail -> _menhir_state -> (Type_parsed.t) -> 'ttv_return = + fun _menhir_env _menhir_stack _menhir_s _v -> + let _menhir_stack = (_menhir_stack, _menhir_s, _v) in + let _menhir_stack = Obj.magic _menhir_stack in + assert (not _menhir_env._menhir_error); + let _tok = _menhir_env._menhir_token in + match _tok with + | STAR -> + let _menhir_stack = Obj.magic _menhir_stack in + let _menhir_env = _menhir_discard _menhir_env in + let _tok = _menhir_env._menhir_token in + (match _tok with + | PARENS_OPEN -> + _menhir_run4 _menhir_env (Obj.magic _menhir_stack) MenhirState13 + | POLY _v -> + _menhir_run3 _menhir_env (Obj.magic _menhir_stack) MenhirState13 _v + | WILDCARD -> + _menhir_run2 _menhir_env (Obj.magic _menhir_stack) MenhirState13 + | WORD _v -> + _menhir_run1 _menhir_env (Obj.magic _menhir_stack) MenhirState13 _v + | ARROW | COMMA | EOF | PARENS_CLOSE | STAR -> + _menhir_reduce13 _menhir_env (Obj.magic _menhir_stack) MenhirState13) + | ARROW | COMMA | EOF | PARENS_CLOSE -> + let _menhir_stack = Obj.magic _menhir_stack in + let (_menhir_stack, _menhir_s, (x : (Type_parsed.t))) = _menhir_stack in + let _v : (Type_parsed.t list) = +# 49 "src/sherlodoc/type_parser.mly" + ( [x] ) +# 366 "src/sherlodoc/type_parser.ml" + in + _menhir_goto_list1_typ1_STAR_ _menhir_env _menhir_stack _menhir_s _v + | _ -> + assert (not _menhir_env._menhir_error); + _menhir_env._menhir_error <- true; + let _menhir_stack = Obj.magic _menhir_stack in + let (_menhir_stack, _menhir_s, _) = _menhir_stack in + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) _menhir_s + +and _menhir_goto_typ0 : _menhir_env -> 'ttv_tail -> _menhir_state -> (Type_parsed.t) -> 'ttv_return = + fun _menhir_env _menhir_stack _menhir_s _v -> + let _menhir_stack = Obj.magic _menhir_stack in + let _menhir_stack = Obj.magic _menhir_stack in + let (t : (Type_parsed.t)) = _v in + let _v : (Type_parsed.t list) = # 43 "src/sherlodoc/type_parser.mly" ( [t] ) -# 239 "src/sherlodoc/type_parser.ml" - : (Type_parsed.t list)) +# 384 "src/sherlodoc/type_parser.ml" + in + _menhir_goto_typs _menhir_env _menhir_stack _menhir_s _v + +and _menhir_errorcase : _menhir_env -> 'ttv_tail -> _menhir_state -> 'ttv_return = + fun _menhir_env _menhir_stack _menhir_s -> + match _menhir_s with + | MenhirState19 -> + let _menhir_stack = Obj.magic _menhir_stack in + let (_menhir_stack, _menhir_s, _) = _menhir_stack in + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) _menhir_s + | MenhirState13 -> + let _menhir_stack = Obj.magic _menhir_stack in + let (_menhir_stack, _menhir_s, _) = _menhir_stack in + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) _menhir_s + | MenhirState11 -> + let _menhir_stack = Obj.magic _menhir_stack in + let (_menhir_stack, _menhir_s, _) = _menhir_stack in + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) _menhir_s + | MenhirState7 -> + let _menhir_stack = Obj.magic _menhir_stack in + let (_menhir_stack, _menhir_s, _) = _menhir_stack in + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) _menhir_s + | MenhirState6 -> + let _menhir_stack = Obj.magic _menhir_stack in + let ((_menhir_stack, _menhir_s, _), _) = _menhir_stack in + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) _menhir_s + | MenhirState4 -> + let _menhir_stack = Obj.magic _menhir_stack in + let (_menhir_stack, _menhir_s) = _menhir_stack in + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) _menhir_s + | MenhirState0 -> + let _menhir_stack = Obj.magic _menhir_stack in + raise _eRR + +and _menhir_reduce13 : _menhir_env -> 'ttv_tail -> _menhir_state -> 'ttv_return = + fun _menhir_env _menhir_stack _menhir_s -> + let _v : (Type_parsed.t) = +# 26 "src/sherlodoc/type_parser.mly" + ( Type_parsed.Wildcard ) +# 424 "src/sherlodoc/type_parser.ml" + in + _menhir_goto_typ1 _menhir_env _menhir_stack _menhir_s _v -let _menhir_action_18 = - fun ts -> - ( -# 44 "src/sherlodoc/type_parser.mly" - ( ts ) -# 247 "src/sherlodoc/type_parser.ml" - : (Type_parsed.t list)) +and _menhir_run1 : _menhir_env -> 'ttv_tail -> _menhir_state -> ( +# 4 "src/sherlodoc/type_parser.mly" + (string) +# 431 "src/sherlodoc/type_parser.ml" +) -> 'ttv_return = + fun _menhir_env _menhir_stack _menhir_s _v -> + let _menhir_env = _menhir_discard _menhir_env in + let _menhir_stack = Obj.magic _menhir_stack in + let (w : ( +# 4 "src/sherlodoc/type_parser.mly" + (string) +# 439 "src/sherlodoc/type_parser.ml" + )) = _v in + let _v : (Type_parsed.t) = +# 38 "src/sherlodoc/type_parser.mly" + ( Type_parsed.Tycon (w, []) ) +# 444 "src/sherlodoc/type_parser.ml" + in + _menhir_goto_typ0 _menhir_env _menhir_stack _menhir_s _v + +and _menhir_run2 : _menhir_env -> 'ttv_tail -> _menhir_state -> 'ttv_return = + fun _menhir_env _menhir_stack _menhir_s -> + let _menhir_env = _menhir_discard _menhir_env in + let _menhir_stack = Obj.magic _menhir_stack in + let _v : (Type_parsed.t) = +# 36 "src/sherlodoc/type_parser.mly" + ( Type_parsed.Wildcard ) +# 455 "src/sherlodoc/type_parser.ml" + in + _menhir_goto_typ0 _menhir_env _menhir_stack _menhir_s _v -let _menhir_print_token : token -> string = - fun _tok -> +and _menhir_run3 : _menhir_env -> 'ttv_tail -> _menhir_state -> ( +# 5 "src/sherlodoc/type_parser.mly" + (string) +# 462 "src/sherlodoc/type_parser.ml" +) -> 'ttv_return = + fun _menhir_env _menhir_stack _menhir_s _v -> + let _menhir_env = _menhir_discard _menhir_env in + let _menhir_stack = Obj.magic _menhir_stack in + let (w : ( +# 5 "src/sherlodoc/type_parser.mly" + (string) +# 470 "src/sherlodoc/type_parser.ml" + )) = _v in + let _v : (Type_parsed.t) = +# 37 "src/sherlodoc/type_parser.mly" + ( Type_parsed.Tyvar w ) +# 475 "src/sherlodoc/type_parser.ml" + in + _menhir_goto_typ0 _menhir_env _menhir_stack _menhir_s _v + +and _menhir_run4 : _menhir_env -> 'ttv_tail -> _menhir_state -> 'ttv_return = + fun _menhir_env _menhir_stack _menhir_s -> + let _menhir_stack = (_menhir_stack, _menhir_s) in + let _menhir_env = _menhir_discard _menhir_env in + let _tok = _menhir_env._menhir_token in match _tok with - | ARROW -> - "ARROW" - | COMMA -> - "COMMA" - | EOF -> - "EOF" - | PARENS_CLOSE -> - "PARENS_CLOSE" | PARENS_OPEN -> - "PARENS_OPEN" - | POLY _ -> - "POLY" - | STAR -> - "STAR" + _menhir_run4 _menhir_env (Obj.magic _menhir_stack) MenhirState4 + | POLY _v -> + _menhir_run3 _menhir_env (Obj.magic _menhir_stack) MenhirState4 _v | WILDCARD -> - "WILDCARD" - | WORD _ -> - "WORD" - -let _menhir_fail : unit -> 'a = - fun () -> - Printf.eprintf "Internal failure -- please contact the parser generator's developers.\n%!"; - assert false - -include struct - - [@@@ocaml.warning "-4-37"] - - let _menhir_run_23 : type ttv_stack. ttv_stack -> _ -> _ -> _menhir_box_main = - fun _menhir_stack _v _tok -> - match (_tok : MenhirBasics.token) with - | EOF -> - let t = _v in - let _v = _menhir_action_07 t in - MenhirBox_main _v - | _ -> - _eRR () - - let rec _menhir_run_01 : type ttv_stack. ttv_stack -> _ -> _ -> _ -> (ttv_stack, _menhir_box_main) _menhir_state -> _menhir_box_main = - fun _menhir_stack _menhir_lexbuf _menhir_lexer _v _menhir_s -> - let _tok = _menhir_lexer _menhir_lexbuf in - let w = _v in - let _v = _menhir_action_12 w in - _menhir_goto_typ0 _menhir_stack _menhir_lexbuf _menhir_lexer _v _menhir_s _tok - - and _menhir_goto_typ0 : type ttv_stack. ttv_stack -> _ -> _ -> _ -> (ttv_stack, _menhir_box_main) _menhir_state -> _ -> _menhir_box_main = - fun _menhir_stack _menhir_lexbuf _menhir_lexer _v _menhir_s _tok -> - let t = _v in - let _v = _menhir_action_17 t in - _menhir_goto_typs _menhir_stack _menhir_lexbuf _menhir_lexer _v _menhir_s _tok - - and _menhir_goto_typs : type ttv_stack. ttv_stack -> _ -> _ -> _ -> (ttv_stack, _menhir_box_main) _menhir_state -> _ -> _menhir_box_main = - fun _menhir_stack _menhir_lexbuf _menhir_lexer _v _menhir_s _tok -> - match (_tok : MenhirBasics.token) with - | WORD _v_0 -> - let _menhir_stack = MenhirCell1_typs (_menhir_stack, _menhir_s, _v) in - let _menhir_stack = MenhirCell0_WORD (_menhir_stack, _v_0) in - let _tok = _menhir_lexer _menhir_lexbuf in - (match (_tok : MenhirBasics.token) with - | WORD _v_1 -> - _menhir_run_07 _menhir_stack _menhir_lexbuf _menhir_lexer _v_1 MenhirState06 - | ARROW | COMMA | EOF | PARENS_CLOSE | STAR -> - let _v_2 = _menhir_action_01 () in - _menhir_run_09 _menhir_stack _menhir_lexbuf _menhir_lexer _v_2 _tok - | _ -> - _eRR ()) - | ARROW | COMMA | EOF | PARENS_CLOSE | STAR -> - let ts = _v in - let _v = _menhir_action_14 ts in - _menhir_goto_typ1 _menhir_stack _menhir_lexbuf _menhir_lexer _v _menhir_s _tok - | _ -> - _eRR () - - and _menhir_run_07 : type ttv_stack. ttv_stack -> _ -> _ -> _ -> (ttv_stack, _menhir_box_main) _menhir_state -> _menhir_box_main = - fun _menhir_stack _menhir_lexbuf _menhir_lexer _v _menhir_s -> - let _menhir_stack = MenhirCell1_WORD (_menhir_stack, _menhir_s, _v) in - let _tok = _menhir_lexer _menhir_lexbuf in - match (_tok : MenhirBasics.token) with - | WORD _v_0 -> - _menhir_run_07 _menhir_stack _menhir_lexbuf _menhir_lexer _v_0 MenhirState07 - | ARROW | COMMA | EOF | PARENS_CLOSE | STAR -> - let _v_1 = _menhir_action_01 () in - _menhir_run_08 _menhir_stack _menhir_lexbuf _menhir_lexer _v_1 _tok - | _ -> - _eRR () - - and _menhir_run_08 : type ttv_stack. (ttv_stack, _menhir_box_main) _menhir_cell1_WORD -> _ -> _ -> _ -> _ -> _menhir_box_main = - fun _menhir_stack _menhir_lexbuf _menhir_lexer _v _tok -> - let MenhirCell1_WORD (_menhir_stack, _menhir_s, x) = _menhir_stack in - let xs = _v in - let _v = _menhir_action_02 x xs in - _menhir_goto_list_WORD_ _menhir_stack _menhir_lexbuf _menhir_lexer _v _menhir_s _tok - - and _menhir_goto_list_WORD_ : type ttv_stack. ttv_stack -> _ -> _ -> _ -> (ttv_stack, _menhir_box_main) _menhir_state -> _ -> _menhir_box_main = - fun _menhir_stack _menhir_lexbuf _menhir_lexer _v _menhir_s _tok -> - match _menhir_s with - | MenhirState06 -> - _menhir_run_09 _menhir_stack _menhir_lexbuf _menhir_lexer _v _tok - | MenhirState07 -> - _menhir_run_08 _menhir_stack _menhir_lexbuf _menhir_lexer _v _tok - | _ -> - _menhir_fail () - - and _menhir_run_09 : type ttv_stack. (ttv_stack, _menhir_box_main) _menhir_cell1_typs _menhir_cell0_WORD -> _ -> _ -> _ -> _ -> _menhir_box_main = - fun _menhir_stack _menhir_lexbuf _menhir_lexer _v _tok -> - let MenhirCell0_WORD (_menhir_stack, w) = _menhir_stack in - let MenhirCell1_typs (_menhir_stack, _menhir_s, ts) = _menhir_stack in - let ws = _v in - let _v = _menhir_action_15 ts w ws in - _menhir_goto_typ1 _menhir_stack _menhir_lexbuf _menhir_lexer _v _menhir_s _tok - - and _menhir_goto_typ1 : type ttv_stack. ttv_stack -> _ -> _ -> _ -> (ttv_stack, _menhir_box_main) _menhir_state -> _ -> _menhir_box_main = - fun _menhir_stack _menhir_lexbuf _menhir_lexer _v _menhir_s _tok -> - match (_tok : MenhirBasics.token) with - | STAR -> - let _menhir_stack = MenhirCell1_typ1 (_menhir_stack, _menhir_s, _v) in - let _menhir_s = MenhirState13 in - let _tok = _menhir_lexer _menhir_lexbuf in - (match (_tok : MenhirBasics.token) with - | WORD _v -> - _menhir_run_01 _menhir_stack _menhir_lexbuf _menhir_lexer _v _menhir_s - | WILDCARD -> - _menhir_run_02 _menhir_stack _menhir_lexbuf _menhir_lexer _menhir_s - | POLY _v -> - _menhir_run_03 _menhir_stack _menhir_lexbuf _menhir_lexer _v _menhir_s - | PARENS_OPEN -> - _menhir_run_04 _menhir_stack _menhir_lexbuf _menhir_lexer _menhir_s - | ARROW | COMMA | EOF | PARENS_CLOSE | STAR -> - _menhir_reduce_13 _menhir_stack _menhir_lexbuf _menhir_lexer _menhir_s _tok) - | ARROW | COMMA | EOF | PARENS_CLOSE -> - let x = _v in - let _v = _menhir_action_05 x in - _menhir_goto_list1_typ1_STAR_ _menhir_stack _menhir_lexbuf _menhir_lexer _v _menhir_s _tok - | _ -> - _menhir_fail () - - and _menhir_run_02 : type ttv_stack. ttv_stack -> _ -> _ -> (ttv_stack, _menhir_box_main) _menhir_state -> _menhir_box_main = - fun _menhir_stack _menhir_lexbuf _menhir_lexer _menhir_s -> - let _tok = _menhir_lexer _menhir_lexbuf in - let _v = _menhir_action_10 () in - _menhir_goto_typ0 _menhir_stack _menhir_lexbuf _menhir_lexer _v _menhir_s _tok - - and _menhir_run_03 : type ttv_stack. ttv_stack -> _ -> _ -> _ -> (ttv_stack, _menhir_box_main) _menhir_state -> _menhir_box_main = - fun _menhir_stack _menhir_lexbuf _menhir_lexer _v _menhir_s -> - let _tok = _menhir_lexer _menhir_lexbuf in - let w = _v in - let _v = _menhir_action_11 w in - _menhir_goto_typ0 _menhir_stack _menhir_lexbuf _menhir_lexer _v _menhir_s _tok - - and _menhir_run_04 : type ttv_stack. ttv_stack -> _ -> _ -> (ttv_stack, _menhir_box_main) _menhir_state -> _menhir_box_main = - fun _menhir_stack _menhir_lexbuf _menhir_lexer _menhir_s -> - let _menhir_stack = MenhirCell1_PARENS_OPEN (_menhir_stack, _menhir_s) in - let _menhir_s = MenhirState04 in - let _tok = _menhir_lexer _menhir_lexbuf in - match (_tok : MenhirBasics.token) with - | WORD _v -> - _menhir_run_01 _menhir_stack _menhir_lexbuf _menhir_lexer _v _menhir_s - | WILDCARD -> - _menhir_run_02 _menhir_stack _menhir_lexbuf _menhir_lexer _menhir_s - | POLY _v -> - _menhir_run_03 _menhir_stack _menhir_lexbuf _menhir_lexer _v _menhir_s - | PARENS_OPEN -> - _menhir_run_04 _menhir_stack _menhir_lexbuf _menhir_lexer _menhir_s - | ARROW | COMMA | PARENS_CLOSE | STAR -> - _menhir_reduce_13 _menhir_stack _menhir_lexbuf _menhir_lexer _menhir_s _tok - | _ -> - _eRR () - - and _menhir_reduce_13 : type ttv_stack. ttv_stack -> _ -> _ -> (ttv_stack, _menhir_box_main) _menhir_state -> _ -> _menhir_box_main = - fun _menhir_stack _menhir_lexbuf _menhir_lexer _menhir_s _tok -> - let _v = _menhir_action_13 () in - _menhir_goto_typ1 _menhir_stack _menhir_lexbuf _menhir_lexer _v _menhir_s _tok - - and _menhir_goto_list1_typ1_STAR_ : type ttv_stack. ttv_stack -> _ -> _ -> _ -> (ttv_stack, _menhir_box_main) _menhir_state -> _ -> _menhir_box_main = - fun _menhir_stack _menhir_lexbuf _menhir_lexer _v _menhir_s _tok -> - match _menhir_s with - | MenhirState00 -> - _menhir_run_17 _menhir_stack _menhir_lexbuf _menhir_lexer _v _menhir_s _tok - | MenhirState04 -> - _menhir_run_17 _menhir_stack _menhir_lexbuf _menhir_lexer _v _menhir_s _tok - | MenhirState19 -> - _menhir_run_17 _menhir_stack _menhir_lexbuf _menhir_lexer _v _menhir_s _tok - | MenhirState11 -> - _menhir_run_17 _menhir_stack _menhir_lexbuf _menhir_lexer _v _menhir_s _tok - | MenhirState13 -> - _menhir_run_15 _menhir_stack _menhir_lexbuf _menhir_lexer _v _tok - | _ -> - _menhir_fail () - - and _menhir_run_17 : type ttv_stack. ttv_stack -> _ -> _ -> _ -> (ttv_stack, _menhir_box_main) _menhir_state -> _ -> _menhir_box_main = - fun _menhir_stack _menhir_lexbuf _menhir_lexer _v _menhir_s _tok -> - let xs = _v in - let _v = _menhir_action_16 xs in - match (_tok : MenhirBasics.token) with - | ARROW -> - let _menhir_stack = MenhirCell1_typ2 (_menhir_stack, _menhir_s, _v) in - let _menhir_s = MenhirState11 in - let _tok = _menhir_lexer _menhir_lexbuf in - (match (_tok : MenhirBasics.token) with - | WORD _v -> - _menhir_run_01 _menhir_stack _menhir_lexbuf _menhir_lexer _v _menhir_s - | WILDCARD -> - _menhir_run_02 _menhir_stack _menhir_lexbuf _menhir_lexer _menhir_s - | POLY _v -> - _menhir_run_03 _menhir_stack _menhir_lexbuf _menhir_lexer _v _menhir_s - | PARENS_OPEN -> - _menhir_run_04 _menhir_stack _menhir_lexbuf _menhir_lexer _menhir_s - | ARROW | COMMA | EOF | PARENS_CLOSE | STAR -> - _menhir_reduce_13 _menhir_stack _menhir_lexbuf _menhir_lexer _menhir_s _tok) - | COMMA | EOF | PARENS_CLOSE -> - let t = _v in - let _v = _menhir_action_08 t in - _menhir_goto_typ _menhir_stack _menhir_lexbuf _menhir_lexer _v _menhir_s _tok - | _ -> - _menhir_fail () - - and _menhir_goto_typ : type ttv_stack. ttv_stack -> _ -> _ -> _ -> (ttv_stack, _menhir_box_main) _menhir_state -> _ -> _menhir_box_main = - fun _menhir_stack _menhir_lexbuf _menhir_lexer _v _menhir_s _tok -> - match _menhir_s with - | MenhirState00 -> - _menhir_run_23 _menhir_stack _v _tok - | MenhirState19 -> - _menhir_run_18 _menhir_stack _menhir_lexbuf _menhir_lexer _v _menhir_s _tok - | MenhirState04 -> - _menhir_run_18 _menhir_stack _menhir_lexbuf _menhir_lexer _v _menhir_s _tok - | MenhirState11 -> - _menhir_run_16 _menhir_stack _menhir_lexbuf _menhir_lexer _v _tok - | _ -> - _menhir_fail () - - and _menhir_run_18 : type ttv_stack. ttv_stack -> _ -> _ -> _ -> (ttv_stack, _menhir_box_main) _menhir_state -> _ -> _menhir_box_main = - fun _menhir_stack _menhir_lexbuf _menhir_lexer _v _menhir_s _tok -> - match (_tok : MenhirBasics.token) with - | COMMA -> - let _menhir_stack = MenhirCell1_typ (_menhir_stack, _menhir_s, _v) in - let _menhir_s = MenhirState19 in - let _tok = _menhir_lexer _menhir_lexbuf in - (match (_tok : MenhirBasics.token) with - | WORD _v -> - _menhir_run_01 _menhir_stack _menhir_lexbuf _menhir_lexer _v _menhir_s - | WILDCARD -> - _menhir_run_02 _menhir_stack _menhir_lexbuf _menhir_lexer _menhir_s - | POLY _v -> - _menhir_run_03 _menhir_stack _menhir_lexbuf _menhir_lexer _v _menhir_s - | PARENS_OPEN -> - _menhir_run_04 _menhir_stack _menhir_lexbuf _menhir_lexer _menhir_s - | ARROW | COMMA | PARENS_CLOSE | STAR -> - _menhir_reduce_13 _menhir_stack _menhir_lexbuf _menhir_lexer _menhir_s _tok - | _ -> - _eRR ()) - | PARENS_CLOSE -> - let x = _v in - let _v = _menhir_action_03 x in - _menhir_goto_list1_typ_COMMA_ _menhir_stack _menhir_lexbuf _menhir_lexer _v _menhir_s - | _ -> - _eRR () - - and _menhir_goto_list1_typ_COMMA_ : type ttv_stack. ttv_stack -> _ -> _ -> _ -> (ttv_stack, _menhir_box_main) _menhir_state -> _menhir_box_main = - fun _menhir_stack _menhir_lexbuf _menhir_lexer _v _menhir_s -> - match _menhir_s with - | MenhirState04 -> - _menhir_run_21 _menhir_stack _menhir_lexbuf _menhir_lexer _v - | MenhirState19 -> - _menhir_run_20 _menhir_stack _menhir_lexbuf _menhir_lexer _v - | _ -> - _menhir_fail () - - and _menhir_run_21 : type ttv_stack. (ttv_stack, _menhir_box_main) _menhir_cell1_PARENS_OPEN -> _ -> _ -> _ -> _menhir_box_main = - fun _menhir_stack _menhir_lexbuf _menhir_lexer _v -> - let _tok = _menhir_lexer _menhir_lexbuf in - let MenhirCell1_PARENS_OPEN (_menhir_stack, _menhir_s) = _menhir_stack in - let ts = _v in - let _v = _menhir_action_18 ts in - _menhir_goto_typs _menhir_stack _menhir_lexbuf _menhir_lexer _v _menhir_s _tok - - and _menhir_run_20 : type ttv_stack. (ttv_stack, _menhir_box_main) _menhir_cell1_typ -> _ -> _ -> _ -> _menhir_box_main = - fun _menhir_stack _menhir_lexbuf _menhir_lexer _v -> - let MenhirCell1_typ (_menhir_stack, _menhir_s, x) = _menhir_stack in - let xs = _v in - let _v = _menhir_action_04 x xs in - _menhir_goto_list1_typ_COMMA_ _menhir_stack _menhir_lexbuf _menhir_lexer _v _menhir_s - - and _menhir_run_16 : type ttv_stack. (ttv_stack, _menhir_box_main) _menhir_cell1_typ2 -> _ -> _ -> _ -> _ -> _menhir_box_main = - fun _menhir_stack _menhir_lexbuf _menhir_lexer _v _tok -> - let MenhirCell1_typ2 (_menhir_stack, _menhir_s, a) = _menhir_stack in - let b = _v in - let _v = _menhir_action_09 a b in - _menhir_goto_typ _menhir_stack _menhir_lexbuf _menhir_lexer _v _menhir_s _tok - - and _menhir_run_15 : type ttv_stack. (ttv_stack, _menhir_box_main) _menhir_cell1_typ1 -> _ -> _ -> _ -> _ -> _menhir_box_main = - fun _menhir_stack _menhir_lexbuf _menhir_lexer _v _tok -> - let MenhirCell1_typ1 (_menhir_stack, _menhir_s, x) = _menhir_stack in - let xs = _v in - let _v = _menhir_action_06 x xs in - _menhir_goto_list1_typ1_STAR_ _menhir_stack _menhir_lexbuf _menhir_lexer _v _menhir_s _tok - - let _menhir_run_00 : type ttv_stack. ttv_stack -> _ -> _ -> _menhir_box_main = - fun _menhir_stack _menhir_lexbuf _menhir_lexer -> - let _menhir_s = MenhirState00 in - let _tok = _menhir_lexer _menhir_lexbuf in - match (_tok : MenhirBasics.token) with - | WORD _v -> - _menhir_run_01 _menhir_stack _menhir_lexbuf _menhir_lexer _v _menhir_s - | WILDCARD -> - _menhir_run_02 _menhir_stack _menhir_lexbuf _menhir_lexer _menhir_s - | POLY _v -> - _menhir_run_03 _menhir_stack _menhir_lexbuf _menhir_lexer _v _menhir_s - | PARENS_OPEN -> - _menhir_run_04 _menhir_stack _menhir_lexbuf _menhir_lexer _menhir_s - | ARROW | EOF | STAR -> - _menhir_reduce_13 _menhir_stack _menhir_lexbuf _menhir_lexer _menhir_s _tok - | _ -> - _eRR () + _menhir_run2 _menhir_env (Obj.magic _menhir_stack) MenhirState4 + | WORD _v -> + _menhir_run1 _menhir_env (Obj.magic _menhir_stack) MenhirState4 _v + | ARROW | COMMA | PARENS_CLOSE | STAR -> + _menhir_reduce13 _menhir_env (Obj.magic _menhir_stack) MenhirState4 + | _ -> + assert (not _menhir_env._menhir_error); + _menhir_env._menhir_error <- true; + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) MenhirState4 + +and _menhir_discard : _menhir_env -> _menhir_env = + fun _menhir_env -> + let lexer = _menhir_env._menhir_lexer in + let lexbuf = _menhir_env._menhir_lexbuf in + let _tok = lexer lexbuf in + { + _menhir_lexer = lexer; + _menhir_lexbuf = lexbuf; + _menhir_token = _tok; + _menhir_error = false; + } + +and main : (Lexing.lexbuf -> token) -> Lexing.lexbuf -> (Type_parsed.t) = + fun lexer lexbuf -> + let _menhir_env = { + _menhir_lexer = lexer; + _menhir_lexbuf = lexbuf; + _menhir_token = Obj.magic (); + _menhir_error = false; + } in + Obj.magic (let _menhir_stack = ((), _menhir_env._menhir_lexbuf.Lexing.lex_curr_p) in + let _menhir_env = _menhir_discard _menhir_env in + let _tok = _menhir_env._menhir_token in + match _tok with + | PARENS_OPEN -> + _menhir_run4 _menhir_env (Obj.magic _menhir_stack) MenhirState0 + | POLY _v -> + _menhir_run3 _menhir_env (Obj.magic _menhir_stack) MenhirState0 _v + | WILDCARD -> + _menhir_run2 _menhir_env (Obj.magic _menhir_stack) MenhirState0 + | WORD _v -> + _menhir_run1 _menhir_env (Obj.magic _menhir_stack) MenhirState0 _v + | ARROW | EOF | STAR -> + _menhir_reduce13 _menhir_env (Obj.magic _menhir_stack) MenhirState0 + | _ -> + assert (not _menhir_env._menhir_error); + _menhir_env._menhir_error <- true; + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) MenhirState0) + +# 269 "" -end -let main = - fun _menhir_lexer _menhir_lexbuf -> - let _menhir_stack = () in - let MenhirBox_main v = _menhir_run_00 _menhir_stack _menhir_lexbuf _menhir_lexer in - v +# 542 "src/sherlodoc/type_parser.ml" From 7f950618ac24f6db8c5ec85c027cf35d0dced97e Mon Sep 17 00:00:00 2001 From: Liam Stevenson Date: Mon, 17 Feb 2025 14:02:43 -0500 Subject: [PATCH 19/25] Import ocaml sources for ocaml-flambda/flambda-backend@db3778f932f --- upstream/ocaml_flambda/base-rev.txt | 2 +- upstream/ocaml_flambda/parsing/ast_helper.ml | 2 +- .../ocaml_flambda/parsing/ast_iterator.ml | 5 +- upstream/ocaml_flambda/parsing/ast_mapper.ml | 4 +- upstream/ocaml_flambda/parsing/depend.ml | 4 +- upstream/ocaml_flambda/parsing/parser.mly | 4 +- upstream/ocaml_flambda/parsing/parsetree.mli | 4 +- upstream/ocaml_flambda/parsing/pprintast.ml | 12 +- upstream/ocaml_flambda/parsing/printast.ml | 5 +- upstream/ocaml_flambda/typing/btype.ml | 1 - upstream/ocaml_flambda/typing/btype.mli | 1 - upstream/ocaml_flambda/typing/ctype.ml | 426 ++-- upstream/ocaml_flambda/typing/ctype.mli | 14 +- upstream/ocaml_flambda/typing/datarepr.ml | 5 +- upstream/ocaml_flambda/typing/includecore.ml | 77 +- upstream/ocaml_flambda/typing/includemod.ml | 17 +- upstream/ocaml_flambda/typing/jkind.ml | 2030 ++++------------- upstream/ocaml_flambda/typing/jkind.mli | 480 ++-- upstream/ocaml_flambda/typing/jkind_axis.ml | 442 +--- upstream/ocaml_flambda/typing/jkind_axis.mli | 246 +- upstream/ocaml_flambda/typing/jkind_types.ml | 110 + upstream/ocaml_flambda/typing/jkind_types.mli | 98 +- upstream/ocaml_flambda/typing/mode.ml | 502 ++-- upstream/ocaml_flambda/typing/mode_intf.mli | 73 +- upstream/ocaml_flambda/typing/mtype.ml | 2 - upstream/ocaml_flambda/typing/mtype.mli | 2 - upstream/ocaml_flambda/typing/oprint.ml | 128 +- upstream/ocaml_flambda/typing/outcometree.mli | 5 +- upstream/ocaml_flambda/typing/predef.ml | 109 +- upstream/ocaml_flambda/typing/predef.mli | 9 +- upstream/ocaml_flambda/typing/printtyp.ml | 7 +- upstream/ocaml_flambda/typing/subst.ml | 83 +- upstream/ocaml_flambda/typing/typecore.ml | 61 +- upstream/ocaml_flambda/typing/typedecl.ml | 518 ++--- upstream/ocaml_flambda/typing/typedecl.mli | 2 - .../typing/typedecl_separability.ml | 3 +- upstream/ocaml_flambda/typing/typemod.ml | 23 +- upstream/ocaml_flambda/typing/typemode.ml | 114 +- upstream/ocaml_flambda/typing/typemode.mli | 10 +- upstream/ocaml_flambda/typing/typeopt.ml | 13 +- upstream/ocaml_flambda/typing/types.ml | 207 +- upstream/ocaml_flambda/typing/types.mli | 118 +- upstream/ocaml_flambda/utils/clflags.ml | 1 - upstream/ocaml_flambda/utils/clflags.mli | 1 - upstream/ocaml_flambda/utils/config.mli | 4 + upstream/ocaml_flambda/utils/misc.ml | 116 +- upstream/ocaml_flambda/utils/misc.mli | 100 +- 47 files changed, 1792 insertions(+), 4408 deletions(-) diff --git a/upstream/ocaml_flambda/base-rev.txt b/upstream/ocaml_flambda/base-rev.txt index 4e31a8089..9a0f4cde0 100644 --- a/upstream/ocaml_flambda/base-rev.txt +++ b/upstream/ocaml_flambda/base-rev.txt @@ -1 +1 @@ -6a83bbad9dd6c86ea5019a84258b04c81aa34a38 +db3778f932fc0a2f9d71ba5f9dcf7c76fcc74a63 diff --git a/upstream/ocaml_flambda/parsing/ast_helper.ml b/upstream/ocaml_flambda/parsing/ast_helper.ml index ed0b340b4..458c71f2a 100644 --- a/upstream/ocaml_flambda/parsing/ast_helper.ml +++ b/upstream/ocaml_flambda/parsing/ast_helper.ml @@ -142,7 +142,7 @@ module Typ = struct | Default as x -> x | Abbreviation _ as x -> x | Mod (jkind, modes) -> Mod (loop_jkind jkind, modes) - | With (jkind, typ, modalities) -> With (loop_jkind jkind, loop typ, modalities) + | With (jkind, typ) -> With (loop_jkind jkind, loop typ) | Kind_of typ -> Kind_of (loop typ) | Product jkinds -> Product (List.map loop_jkind jkinds) in diff --git a/upstream/ocaml_flambda/parsing/ast_iterator.ml b/upstream/ocaml_flambda/parsing/ast_iterator.ml index 7311e2586..c1ca9b78b 100644 --- a/upstream/ocaml_flambda/parsing/ast_iterator.ml +++ b/upstream/ocaml_flambda/parsing/ast_iterator.ml @@ -842,10 +842,9 @@ let default_iterator = | Mod (t, mode_list) -> this.jkind_annotation this t; this.modes this mode_list - | With (t, ty, modalities) -> + | With (t, ty) -> this.jkind_annotation this t; - this.typ this ty; - this.modalities this modalities + this.typ this ty | Kind_of ty -> this.typ this ty | Product ts -> List.iter (this.jkind_annotation this) ts); diff --git a/upstream/ocaml_flambda/parsing/ast_mapper.ml b/upstream/ocaml_flambda/parsing/ast_mapper.ml index b6c255798..0eb886cde 100644 --- a/upstream/ocaml_flambda/parsing/ast_mapper.ml +++ b/upstream/ocaml_flambda/parsing/ast_mapper.ml @@ -946,8 +946,8 @@ let default_mapper = | Abbreviation (s : string) -> Abbreviation s | Mod (t, mode_list) -> Mod (this.jkind_annotation this t, this.modes this mode_list) - | With (t, ty, modalities) -> - With (this.jkind_annotation this t, this.typ this ty, this.modalities this modalities) + | With (t, ty) -> + With (this.jkind_annotation this t, this.typ this ty) | Kind_of ty -> Kind_of (this.typ this ty) | Product ts -> Product (List.map (this.jkind_annotation this) ts) in diff --git a/upstream/ocaml_flambda/parsing/depend.ml b/upstream/ocaml_flambda/parsing/depend.ml index ad6a73af9..be505a8ea 100644 --- a/upstream/ocaml_flambda/parsing/depend.ml +++ b/upstream/ocaml_flambda/parsing/depend.ml @@ -139,9 +139,9 @@ and add_jkind bv (jkind : jkind_annotation) = | Default -> () | Abbreviation _ -> () | Mod (jkind, (_ : modes)) -> add_jkind bv jkind - | With (jkind, typ, (_ : modalities)) -> + | With (jkind, typ) -> add_jkind bv jkind; - add_type bv typ; + add_type bv typ | Kind_of typ -> add_type bv typ | Product jkinds -> diff --git a/upstream/ocaml_flambda/parsing/parser.mly b/upstream/ocaml_flambda/parsing/parser.mly index 89fbe3c2e..21ea31073 100644 --- a/upstream/ocaml_flambda/parsing/parser.mly +++ b/upstream/ocaml_flambda/parsing/parser.mly @@ -3980,8 +3980,8 @@ jkind_desc: in Mod ($1, modes) } - | jkind_annotation WITH core_type optional_atat_modalities_expr { - With ($1, $3, $4) + | jkind_annotation WITH core_type { + With ($1, $3) } | ident { Abbreviation $1 diff --git a/upstream/ocaml_flambda/parsing/parsetree.mli b/upstream/ocaml_flambda/parsing/parsetree.mli index b3b6958df..74aba7388 100644 --- a/upstream/ocaml_flambda/parsing/parsetree.mli +++ b/upstream/ocaml_flambda/parsing/parsetree.mli @@ -1296,10 +1296,8 @@ and module_binding = and jkind_annotation_desc = | Default | Abbreviation of string - (* CR layouts v2.8: [mod] can have only layouts on the left, not - full kind annotations. We may want to narrow this type some. *) | Mod of jkind_annotation * modes - | With of jkind_annotation * core_type * modalities + | With of jkind_annotation * core_type | Kind_of of core_type | Product of jkind_annotation list diff --git a/upstream/ocaml_flambda/parsing/pprintast.ml b/upstream/ocaml_flambda/parsing/pprintast.ml index 11777bed4..29d289289 100644 --- a/upstream/ocaml_flambda/parsing/pprintast.ml +++ b/upstream/ocaml_flambda/parsing/pprintast.ml @@ -463,13 +463,11 @@ and jkind_annotation ?(nested = false) ctxt f k = match k.pjkind_desc with (pp_print_list ~pp_sep:pp_print_space mode) modes ) f (t, modes) end - | With (t, ty, modalities) -> - Misc.pp_parens_if nested (fun f (t, ty, modalities) -> - pp f "%a with %a%a" - (jkind_annotation ~nested:true ctxt) t - (core_type ctxt) ty - optional_space_atat_modalities modalities; - ) f (t, ty, modalities) + | With (t, ty) -> + Misc.pp_parens_if nested (fun f (t, ty) -> + pp f "%a with %a" (jkind_annotation ~nested:true ctxt) t (core_type ctxt) + ty + ) f (t, ty) | Kind_of ty -> pp f "kind_of_ %a" (core_type ctxt) ty | Product ts -> Misc.pp_parens_if nested (fun f ts -> diff --git a/upstream/ocaml_flambda/parsing/printast.ml b/upstream/ocaml_flambda/parsing/printast.ml index cb4f26d8d..30caf4f7e 100644 --- a/upstream/ocaml_flambda/parsing/printast.ml +++ b/upstream/ocaml_flambda/parsing/printast.ml @@ -506,11 +506,10 @@ and jkind_annotation i ppf (jkind : jkind_annotation) = line i ppf "Mod\n"; jkind_annotation (i+1) ppf jkind; modes (i+1) ppf m - | With (jkind, type_, modalities_) -> + | With (jkind, type_) -> line i ppf "With\n"; jkind_annotation (i+1) ppf jkind; - core_type (i+1) ppf type_; - modalities (i+1) ppf modalities_ + core_type (i+1) ppf type_ | Kind_of type_ -> line i ppf "Kind_of\n"; core_type (i+1) ppf type_ diff --git a/upstream/ocaml_flambda/typing/btype.ml b/upstream/ocaml_flambda/typing/btype.ml index ec24c1ca1..703aae771 100644 --- a/upstream/ocaml_flambda/typing/btype.ml +++ b/upstream/ocaml_flambda/typing/btype.ml @@ -48,7 +48,6 @@ module TypeHash = struct include TransientTypeHash let mem hash = wrap_repr (mem hash) let add hash = wrap_repr (add hash) - let replace hash = wrap_repr (replace hash) let remove hash = wrap_repr (remove hash) let find hash = wrap_repr (find hash) let find_opt hash = wrap_repr (find_opt hash) diff --git a/upstream/ocaml_flambda/typing/btype.mli b/upstream/ocaml_flambda/typing/btype.mli index cfcb14b7f..c6b858abe 100644 --- a/upstream/ocaml_flambda/typing/btype.mli +++ b/upstream/ocaml_flambda/typing/btype.mli @@ -41,7 +41,6 @@ module TypeHash : sig include Hashtbl.S with type key = transient_expr val mem: 'a t -> type_expr -> bool val add: 'a t -> type_expr -> 'a -> unit - val replace: 'a t -> type_expr -> 'a -> unit val remove: 'a t -> type_expr -> unit val find: 'a t -> type_expr -> 'a val find_opt: 'a t -> type_expr -> 'a option diff --git a/upstream/ocaml_flambda/typing/ctype.ml b/upstream/ocaml_flambda/typing/ctype.ml index 3d233697c..2c7413a54 100644 --- a/upstream/ocaml_flambda/typing/ctype.ml +++ b/upstream/ocaml_flambda/typing/ctype.ml @@ -1465,13 +1465,6 @@ let instance_parameterized_type ?keep_names sch_args sch = (ty_args, ty) ) -let instance_parameterized_kind args jkind = - For_copy.with_scope (fun copy_scope -> - let ty_args = List.map (fun t -> copy copy_scope t) args in - let jkind = Jkind.map_type_expr (copy copy_scope) jkind in - (ty_args, jkind) - ) - (* [map_kind f kind] maps [f] over all the types in [kind]. [f] must preserve jkinds *) let map_kind f = function | (Type_abstract _ | Type_open) as k -> k @@ -1504,7 +1497,6 @@ let instance_declaration decl = {decl with type_params = List.map copy decl.type_params; type_manifest = Option.map copy decl.type_manifest; type_kind = map_kind copy decl.type_kind; - type_jkind = Jkind.map_type_expr copy decl.type_jkind; } ) @@ -1835,20 +1827,6 @@ let subst env level priv abbrev oty params args body = undo_abbrev (); raise Cannot_subst -let jkind_subst env level params args jkind = - if List.length params <> List.length args then raise Cannot_subst; - let old_level = !current_level in - current_level := level; - let (params', jkind') = instance_parameterized_kind params jkind in - let uenv = Expression {env; in_subst = true} in - try - List.iter2 (!unify_var' uenv) params' args; - current_level := old_level; - jkind' - with Unify _ -> - current_level := old_level; - raise Cannot_subst - (* CR layouts: Can we actually just always ignore jkinds in apply/subst? It seems like almost, but there may be cases where it would forget @@ -2097,8 +2075,6 @@ let try_expand_safe_opt env ty = let expand_head_opt env ty = try try_expand_head try_expand_safe_opt env ty with Cannot_expand -> ty -let is_principal ty = - not !Clflags.principal || get_level ty = generic_level type unbox_result = (* unboxing process made a step: either an unboxing or removal of a [Tpoly] *) @@ -2186,11 +2162,6 @@ let tvariant_not_immediate row = | _ -> false) (row_fields row) -(* forward declarations *) -let type_equal' = ref (fun _ _ _ -> Misc.fatal_error "type_equal") -let type_jkind_purely_if_principal' = - ref (fun _ _ -> Misc.fatal_error "type_jkind_purely_if_principal") - (* We parameterize [estimate_type_jkind] by a function [expand_component] because some callers want expansion of types and others don't. *) @@ -2200,46 +2171,15 @@ let rec estimate_type_jkind ~expand_component env ty = | Tarrow _ -> Jkind.for_arrow | Ttuple _ -> Jkind.Builtin.value ~why:Tuple | Tunboxed_tuple ltys -> - let tys_modalities = - List.map (fun (_, ty) -> expand_component ty, - Mode.Modality.Value.Const.id) ltys - in - (* CR layouts v2.8: This pretty ridiculous use of [estimate_type_jkind] - just to throw most of it away will go away once we get [layout_of]. *) - let jkinds = - List.map - (fun (ty, _) -> estimate_type_jkind ~expand_component env ty) - tys_modalities - in - let layouts = List.map Jkind.extract_layout jkinds in Jkind.Builtin.product - ~jkind_of_type:(estimate_type_jkind ~expand_component env) - ~jkind_of_first_type:(fun () -> - match jkinds with - | first_jkind :: _ -> first_jkind - | _ -> Misc.fatal_error - "Ctype.estimate_type_jkind: use of jkind_of_first_type \ - with more than 1 type") - ~why:Unboxed_tuple tys_modalities layouts - | Tconstr (p, args, _) -> begin try - let type_decl = Env.find_type p env in - let jkind = type_decl.type_jkind in - (* Checking [has_with_bounds] here is needed for correctness, because - intersection types sometimes do not unify with themselves. Removing - this check causes typing-misc/pr7937.ml to fail. *) - if Jkind.has_with_bounds jkind - then - let level = get_level ty in - (* CR layouts v2.8: We could possibly skip this substitution if we're - called from [constrain_type_jkind]; the jkind returned without - substing is just weaker than the one we would get by substing. *) - jkind_subst env level type_decl.type_params args jkind - else - jkind - with - (* CR layouts v2.8: It will be confusing when a [Cannot_subst] leads to - a [Missing_cmi]. *) - | Cannot_subst | Not_found -> Jkind.Builtin.any ~why:(Missing_cmi p) + (List.map (fun (_, ty) -> + estimate_type_jkind ~expand_component env (expand_component ty)) ltys) + ~why:Unboxed_tuple + | Tconstr (p, _, _) -> begin + try + (Env.find_type p env).type_jkind + with + Not_found -> Jkind.Builtin.any ~why:(Missing_cmi p) end | Tobject _ -> Jkind.for_object | Tfield _ -> Jkind.Builtin.value ~why:Tfield @@ -2250,26 +2190,83 @@ let rec estimate_type_jkind ~expand_component env ty = then Jkind.Builtin.value ~why:Polymorphic_variant else Jkind.Builtin.immediate ~why:Immediate_polymorphic_variant | Tunivar { jkind } -> Jkind.disallow_right jkind - | Tpoly (ty, _) -> - let jkind_of_type = !type_jkind_purely_if_principal' env in - estimate_type_jkind ~expand_component env ty |> - (* The jkind of [ty] might mention the variables bound in this [Tpoly] - node, and so just returning it here would be wrong. Instead, we need - to eliminate these variables. For now, we just [round_up] to eliminate - _all_ with-bounds. We can imagine doing better, just rounding up those - variables bound in this [Tpoly]. *) - (* CR layouts v2.8: Consider doing better -- but only once we can write - down a test case that cares. *) - Jkind.round_up ~jkind_of_type |> - Jkind.disallow_right + | Tpoly (ty, _) -> estimate_type_jkind ~expand_component env ty | Tpackage _ -> Jkind.Builtin.value ~why:First_class_module +(* CR layouts v7.2: Remove this function once we have have kind-polymorphic type + declarations, and replace its uses with + [estimate_type_jkind ~expand_component:(get_unboxed_type_approximation env)]. + + [type_jkind_deep] calulates a jkind from a type expression, deeply + unfolding unboxed types. + + This deep unfolding is necessary (for now) for declarations like the + following: + + type 'a t = #{ i : 'a ; j : 'a } + type int_t : immediate & immediate = int t + + Otherwise, [int_t] will be given kind [value & value]. + + This function duplicates functionality from [find_unboxed_type] and + [constrain_type_jkind]. We're not to factoring out the shared logic because + this function will no longer be necessary once we have kind-polymorphic type + declarations. + + Returns (ran_out_of_fuel, best_effort_jkind). +*) +let rec type_jkind_deep env ty_prev ty fuel = + let fuel = fuel - 1 in + if fuel < 0 then + let _, jkind = type_unboxed_jkind_deep env ty fuel in + true, jkind + else + let ty = expand_head_opt env ty in + match unbox_once env ty with + | Stepped ty' -> type_jkind_deep env ty ty' fuel + | Stepped_record_unboxed_product component_tys -> + let out_of_fuel, component_jkinds = + types_jkinds_deep env component_tys fuel in + out_of_fuel, Jkind.Builtin.product ~why:Unboxed_record component_jkinds + | Final_result -> type_unboxed_jkind_deep env ty fuel + | Missing _ -> type_unboxed_jkind_deep env ty_prev fuel +and types_jkinds_deep env tys fuel = + List.fold_left_map (fun any_out_of_fuel ty -> + let out_of_fuel, jkind = type_jkind_deep env ty ty fuel in + (any_out_of_fuel || out_of_fuel), jkind + ) false tys +and type_unboxed_jkind_deep env ty fuel = + (* We've scraped off [@@unboxed] and unboxed records as much as we can. *) + match get_desc ty with + | Tvar { jkind } -> false, Jkind.disallow_right jkind + | Tarrow _ -> false, Jkind.for_arrow + | Ttuple _ -> false, Jkind.Builtin.value ~why:Tuple + | Tunboxed_tuple ltys -> + let out_of_fuel, component_jkinds = + types_jkinds_deep env (List.map snd ltys) fuel in + out_of_fuel, Jkind.Builtin.product ~why:Unboxed_tuple component_jkinds + | Tconstr (p, _, _) -> begin + try + false, (Env.find_type p env).type_jkind + with + Not_found -> false, Jkind.Builtin.any ~why:(Missing_cmi p) + end + | Tobject _ -> false, Jkind.for_object + | Tfield _ -> false, Jkind.Builtin.value ~why:Tfield + | Tnil -> false, Jkind.Builtin.value ~why:Tnil + | Tlink _ | Tsubst _ -> assert false + | Tvariant row -> + if tvariant_not_immediate row + then false, Jkind.Builtin.value ~why:Polymorphic_variant + else false, Jkind.Builtin.immediate ~why:Immediate_polymorphic_variant + | Tunivar { jkind } -> false, Jkind.disallow_right jkind + | Tpoly (ty, _) -> type_unboxed_jkind_deep env ty fuel + | Tpackage _ -> false, Jkind.Builtin.value ~why:First_class_module + let type_jkind env ty = - estimate_type_jkind ~expand_component:(get_unboxed_type_approximation env) env - (get_unboxed_type_approximation env ty) + let _, jkind = type_jkind_deep env ty ty 100 in + jkind -(* CR layouts v2.8: This function is quite suspect. See Jane Street internal - gdoc titled "Let's kill type_jkind_purely". *) let type_jkind_purely env ty = if !Clflags.principal || Env.has_local_constraints env then (* We snapshot to keep this pure; see the test in [typing-local/crossing.ml] @@ -2281,14 +2278,6 @@ let type_jkind_purely env ty = else type_jkind env ty -(* CR layouts v2.8: It's possible we can remove this function if we change - [jkind_subst] to not substitute non-principal things. Investigate. *) -let type_jkind_purely_if_principal env ty = - match is_principal ty with - | true -> Some (type_jkind_purely env ty) - | false -> None -let () = type_jkind_purely_if_principal' := type_jkind_purely_if_principal - let estimate_type_jkind = estimate_type_jkind ~expand_component:Fun.id (**** checking jkind relationships ****) @@ -2297,8 +2286,6 @@ let estimate_type_jkind = estimate_type_jkind ~expand_component:Fun.id then we will update the jkind of type variables to make the check true, if possible. If true, we won't (but will still instantiate sort variables). *) let constrain_type_jkind ~fixed env ty jkind = - let type_equal = !type_equal' env in - let jkind_of_type = type_jkind_purely_if_principal env in (* The [expanded] argument says whether we've already tried [expand_head_opt]. The "fuel" argument is used because we're duplicating the loop of @@ -2320,9 +2307,7 @@ let constrain_type_jkind ~fixed env ty jkind = (* Just succeed if we're comparing against [any] *) if Jkind.is_max jkind then Ok () else if fuel < 0 then - Error ( - Jkind.Violation.of_ ( - Not_a_subjkind (ty's_jkind, jkind, [Constrain_ran_out_of_fuel]))) + Error (Jkind.Violation.of_ (Not_a_subjkind (ty's_jkind, jkind))) else match get_desc ty with (* The [ty's_jkind] we get here is an **r** jkind, necessary for @@ -2349,7 +2334,7 @@ let constrain_type_jkind ~fixed env ty jkind = it first. *) let jkind_inter = - Jkind.intersection_or_error ~type_equal ~jkind_of_type + Jkind.intersection_or_error ~reason:Tyvar_refinement_intersection ty's_jkind jkind in Result.map (set_var_jkind ty) jkind_inter @@ -2359,11 +2344,9 @@ let constrain_type_jkind ~fixed env ty jkind = | Tpoly (t, _) -> loop ~fuel ~expanded:false t ty's_jkind jkind | _ -> - match - Jkind.sub_or_intersect ~type_equal ~jkind_of_type ty's_jkind jkind - with + match Jkind.sub_or_intersect ty's_jkind jkind with | Sub -> Ok () - | Disjoint sub_failure_reasons -> + | Disjoint -> (* Reporting that [ty's_jkind] must be a subjkind of [jkind] is not always right. Suppose we had [type ('a : word) t = 'a] and we were checking ['a t] against [value]. Then it would be enough for [word] @@ -2372,10 +2355,8 @@ let constrain_type_jkind ~fixed env ty jkind = arbitrary amounts of expansion and looking through [@@unboxed] types. So we don't, settling for the slightly worse error message. *) - Error (Jkind.Violation.of_ - (Not_a_subjkind (ty's_jkind, jkind, Nonempty_list.to_list sub_failure_reasons))) - | Has_intersection sub_failure_reasons -> - let sub_failure_reasons = Nonempty_list.to_list sub_failure_reasons in + Error (Jkind.Violation.of_ (Not_a_subjkind (ty's_jkind, jkind))) + | Has_intersection -> let product ~fuel tys = let num_components = List.length tys in let recur ty's_jkinds jkinds = @@ -2385,8 +2366,7 @@ let constrain_type_jkind ~fixed env ty jkind = in if List.for_all Result.is_ok results then Ok () - else Error (Jkind.Violation.of_ - (Not_a_subjkind (ty's_jkind, jkind, sub_failure_reasons))) + else Error (Jkind.Violation.of_ (Not_a_subjkind (ty's_jkind, jkind))) in begin match Jkind.decompose_product ty's_jkind, Jkind.decompose_product jkind with @@ -2404,8 +2384,7 @@ let constrain_type_jkind ~fixed env ty jkind = (* Products don't line up. This is only possible if [ty] was given a jkind annotation of the wrong product arity. *) - Error (Jkind.Violation.of_ - (Not_a_subjkind (ty's_jkind, jkind, sub_failure_reasons))) + Error (Jkind.Violation.of_ (Not_a_subjkind (ty's_jkind, jkind))) end in match get_desc ty with @@ -2417,10 +2396,10 @@ let constrain_type_jkind ~fixed env ty jkind = else begin match unbox_once env ty with | Missing path -> Error (Jkind.Violation.of_ ~missing_cmi:path - (Not_a_subjkind (ty's_jkind, jkind, sub_failure_reasons))) + (Not_a_subjkind (ty's_jkind, jkind))) | Final_result -> Error - (Jkind.Violation.of_ (Not_a_subjkind (ty's_jkind, jkind, sub_failure_reasons))) + (Jkind.Violation.of_ (Not_a_subjkind (ty's_jkind, jkind))) | Stepped ty -> loop ~fuel:(fuel - 1) ~expanded:false ty (estimate_type_jkind env ty) jkind @@ -2434,8 +2413,7 @@ let constrain_type_jkind ~fixed env ty jkind = need to expand many types shallowly, and that's fine. *) product ~fuel (List.map snd ltys) | _ -> - Error (Jkind.Violation.of_ - (Not_a_subjkind (ty's_jkind, jkind, sub_failure_reasons))) + Error (Jkind.Violation.of_ (Not_a_subjkind (ty's_jkind, jkind))) in loop ~fuel:100 ~expanded:false ty (estimate_type_jkind env ty) jkind @@ -2462,6 +2440,26 @@ let check_type_externality env ty ext = | Ok () -> true | Error _ -> false +let check_decl_jkind env decl jkind = + (* CR layouts v2.8: This will need to be deeply reimplemented. *) + let jkind = Jkind.terrible_relax_l jkind in + match Jkind.sub_or_error decl.type_jkind jkind with + | Ok () as ok -> ok + | Error _ as err -> + match decl.type_manifest with + | None -> err + | Some ty -> check_type_jkind env ty jkind + +let constrain_decl_jkind env decl jkind = + (* CR layouts v2.8: This will need to be deeply reimplemented. *) + let jkind = Jkind.terrible_relax_l jkind in + match Jkind.sub_or_error decl.type_jkind jkind with + | Ok () as ok -> ok + | Error _ as err -> + match decl.type_manifest with + | None -> err + | Some ty -> constrain_type_jkind env ty jkind + let check_type_jkind_exn env texn ty jkind = match check_type_jkind env ty jkind with | Ok _ -> () @@ -2494,41 +2492,25 @@ let rec intersect_type_jkind ~reason env ty1 jkind2 = | _ -> (* [intersect_type_jkind] is called rarely, so we don't bother with trying to avoid this call as in [constrain_type_jkind] *) - let type_equal = !type_equal' env in - let jkind1 = type_jkind env ty1 in - let jkind_of_type = type_jkind_purely_if_principal env in - let jkind1 = Jkind.round_up ~jkind_of_type jkind1 in - let jkind2 = Jkind.round_up ~jkind_of_type jkind2 in - (* This is strange, in that we're rounding up and then computing an - intersection. So we might find an intersection where there isn't really - one. See the comment above this function arguing why this is OK here. *) - (* CR layouts v2.8: Think about doing better, but it's probably not worth - it. *) - Jkind.intersection_or_error ~type_equal ~jkind_of_type ~reason jkind1 jkind2 + let ty1 = get_unboxed_type_approximation env ty1 in + Jkind.intersect_l_l ~reason (estimate_type_jkind env ty1) jkind2 (* See comment on [jkind_unification_mode] *) -let unification_jkind_check uenv ty jkind = - (* If we assume the original type is well-kinded, then we don't need to check - jkinds in substitution. And checking here can actually cause a loop with - with-kinds, in test case typing-misc/constraints.ml, because substitution - is used in [estimate_type_jkind], used in [constrain_type_jkind]. *) - if not (in_subst_mode uenv) then - match !lmode with - | Perform_checks -> constrain_type_jkind_exn (get_env uenv) Unify ty jkind - | Delay_checks r -> r := (ty,jkind) :: !r - -let check_and_update_generalized_ty_jkind ?name ~loc env ty = +let unification_jkind_check env ty jkind = + match !lmode with + | Perform_checks -> constrain_type_jkind_exn env Unify ty jkind + | Delay_checks r -> r := (ty,jkind) :: !r + +let check_and_update_generalized_ty_jkind ?name ~loc ty = let immediacy_check jkind = let is_immediate jkind = (* Just check externality and layout, because that's what actually matters for upstream code. We check both for a known value and something that might turn out later to be value. This is the conservative choice. *) - let jkind_of_type = type_jkind_purely_if_principal env in - let ext = Jkind.get_externality_upper_bound ~jkind_of_type jkind in - Jkind_axis.Externality.le ext External64 && - match Jkind.get_layout jkind with - | Some (Base Value) | None -> true - | _ -> false + Jkind.(Externality.le (get_externality_upper_bound jkind) External64 && + match get_layout jkind with + | Some (Base Value) | None -> true + | _ -> false) in if Language_extension.erasable_extensions_only () && is_immediate jkind && not (Jkind.History.has_warned jkind) @@ -3135,11 +3117,9 @@ let equivalent_with_nolabels l1 l2 = | (Nolabel | Labelled _), (Nolabel | Labelled _) -> true | _ -> false) -(* the [tk] means we're comparing a type against a jkind; axes do - not matter, so a jkind extracted from a type_declaration does - not need to be substed *) +(* the [tk] means we're comparing a type against a jkind *) let has_jkind_intersection_tk env ty jkind = - Jkind.has_intersection (type_jkind env ty) jkind + Jkind.has_intersection_l_l (type_jkind env ty) jkind (* [mcomp] tests if two types are "compatible" -- i.e., if they could ever unify. (This is distinct from [eqtype], which checks if two types *are* @@ -3293,17 +3273,18 @@ and mcomp_unsafe_mode_crossing umc1 umc2 = | None, None -> () | Some _, None -> raise Incompatible | None, Some _ -> raise Incompatible - | Some umc1, Some umc2 -> - if equal_unsafe_mode_crossing umc1 umc2 - then () - else raise Incompatible + | Some ({ modal_upper_bounds = mub1 }), + Some ({ modal_upper_bounds = mub2 }) -> + if (Mode.Alloc.Const.le mub1 mub2 && Mode.Alloc.Const.le mub2 mub1) + then () + else raise Incompatible and mcomp_type_decl type_pairs env p1 p2 tl1 tl2 = try let decl = Env.find_type p1 env in let decl' = Env.find_type p2 env in let check_jkinds () = - if not (Jkind.has_intersection decl.type_jkind decl'.type_jkind) + if not (Jkind.has_intersection_l_l decl.type_jkind decl'.type_jkind) then raise Incompatible in if compatible_paths p1 p2 then begin @@ -3442,13 +3423,11 @@ let add_jkind_equation ~reason uenv destination jkind1 = begin try let decl = Env.find_type p env in - (* CR layouts v2.8: We might be able to do better here. *) - match Jkind.try_allow_r jkind, Jkind.try_allow_r decl.type_jkind with - | Some jkind, Some decl_jkind when - not (Jkind.equal jkind decl_jkind) -> - let refined_decl = { decl with type_jkind = Jkind.disallow_right jkind } in - set_env uenv (Env.add_local_constraint p refined_decl env) - | _ -> () + if not (Jkind.equal (Jkind.terrible_relax_l jkind) + (Jkind.terrible_relax_l decl.type_jkind)) + then + let refined_decl = { decl with type_jkind = jkind } in + set_env uenv (Env.add_local_constraint p refined_decl env); with Not_found -> () end @@ -3476,11 +3455,6 @@ let add_gadt_equation uenv source destination = When we check the jkind later, we may not be able to see the local equation because of its scope. *) let jkind = jkind_of_abstract_type_declaration env source in - let jkind = match Jkind.try_allow_r jkind with - | None -> Misc.fatal_errorf "Abstract kind with [with]: %a" - Jkind.format jkind - | Some jkind -> jkind - in add_jkind_equation ~reason:(Gadt_equation source) uenv destination jkind; (* Adding a jkind equation may change the uenv. *) @@ -3489,7 +3463,7 @@ let add_gadt_equation uenv source destination = new_local_type ~manifest_and_scope:(destination, expansion_scope) type_origin - jkind + (Jkind.terrible_relax_l jkind) in set_env uenv (Env.add_local_constraint source decl env); cleanup_abbrev () @@ -3594,7 +3568,7 @@ let unify1_var uenv t1 t2 = let env = get_env uenv in match occur_univar_for Unify env t2; - unification_jkind_check uenv t2 (Jkind.disallow_left jkind) + unification_jkind_check env t2 (Jkind.disallow_left jkind) with | () -> begin @@ -3622,7 +3596,7 @@ let unify3_var uenv jkind1 t1' t2 t2' = let snap = snapshot () in match occur_univar_for Unify (get_env uenv) t2; - unification_jkind_check uenv t2' (Jkind.disallow_left jkind1) + unification_jkind_check (get_env uenv) t2' (Jkind.disallow_left jkind1) with | () -> link_type t1' t2 | exception Unify_trace _ when in_pattern_mode uenv -> @@ -4248,7 +4222,7 @@ let unify uenv ty1 ty2 = raise (Unify (expand_to_unification_error (get_env uenv) trace)) let unify_gadt (penv : Pattern_env.t) ty1 ty2 = - Misc.protect_refs [R (univar_pairs, [])] begin fun () -> + univar_pairs := []; let equated_types = TypePairs.create 0 in let equations_generation = Allowed { equated_types } in let uenv = Pattern @@ -4259,9 +4233,8 @@ let unify_gadt (penv : Pattern_env.t) ty1 ty2 = in unify uenv ty1 ty2; equated_types - end -let unify_var uenv t1 t2 = +let unify_var ~from_subst uenv t1 t2 = if eq_type t1 t2 then () else match get_desc t1, get_desc t2 with Tvar _, Tconstr _ when deep_occur t1 t2 -> @@ -4273,7 +4246,9 @@ let unify_var uenv t1 t2 = occur_for Unify uenv t1 t2; update_level_for Unify env (get_level t1) t2; update_scope_for Unify (get_scope t1) t2; - unification_jkind_check uenv t2 (Jkind.disallow_left jkind); + if not from_subst then begin + unification_jkind_check env t2 (Jkind.disallow_left jkind) + end; link_type t1 t2; reset_trace_gadt_instances reset_tracing; with Unify_trace trace -> @@ -4285,17 +4260,18 @@ let unify_var uenv t1 t2 = | _ -> unify uenv t1 t2 -let _ = unify_var' := unify_var +(* CR layouts: comment here explaining why it's safe to skip jkind checks in + this case when called from subst. *) +let _ = unify_var' := unify_var ~from_subst:true +let unify_var = unify_var ~from_subst:false (* the final versions of unification functions *) let unify_var env ty1 ty2 = unify_var (Expression {env; in_subst = false}) ty1 ty2 let unify_pairs env ty1 ty2 pairs = - Misc.protect_refs [R (univar_pairs, pairs)] begin fun () -> univar_pairs := pairs; unify (Expression {env; in_subst = false}) ty1 ty2 - end let unify env ty1 ty2 = unify_pairs env ty1 ty2 [] @@ -4869,39 +4845,21 @@ let relevant_pairs pairs v = (* This is very similar to Typecore.mode_cross_left_value. Any bugs here are likely bugs there, too. *) let mode_cross_left_alloc env ty mode = - if not (is_principal ty) then Alloc.disallow_right mode else begin + let mode = + if not (is_principal ty) then mode else let jkind = type_jkind_purely env ty in - let jkind_of_type = type_jkind_purely_if_principal env in - let upper_bounds = Jkind.get_modal_upper_bounds ~jkind_of_type jkind in - let upper_bounds = - Alloc.Const.merge - { comonadic = upper_bounds; monadic = Alloc.Monadic.Const.max } - in - let lower_bounds = Jkind.get_modal_lower_bounds ~jkind_of_type jkind in - let lower_bounds = - Alloc.Const.merge - { comonadic = Alloc.Comonadic.Const.min; monadic = lower_bounds } - in - Alloc.subtract lower_bounds (Alloc.meet_const upper_bounds mode) - end + let upper_bounds = Jkind.get_modal_upper_bounds jkind in + Alloc.meet_const upper_bounds mode + in + mode |> Alloc.disallow_right (* This is very similar to Typecore.expect_mode_cross. Any bugs here are likely bugs there, too. *) let mode_cross_right env ty mode = if not (is_principal ty) then Alloc.disallow_left mode else let jkind = type_jkind_purely env ty in - let jkind_of_type = type_jkind_purely_if_principal env in - let upper_bounds = Jkind.get_modal_upper_bounds ~jkind_of_type jkind in - let upper_bounds = - Alloc.Const.merge - { comonadic = upper_bounds; monadic = Alloc.Monadic.Const.max } - in - let lower_bounds = Jkind.get_modal_lower_bounds ~jkind_of_type jkind in - let lower_bounds = - Alloc.Const.merge - { comonadic = Alloc.Comonadic.Const.min; monadic = lower_bounds } - in - Alloc.imply upper_bounds (Alloc.join_const lower_bounds mode) + let upper_bounds = Jkind.get_modal_upper_bounds jkind in + Alloc.imply upper_bounds mode let submode_with_cross env ~is_ret ty l r = let r' = mode_cross_right env ty r in @@ -5224,10 +5182,9 @@ let moregeneral env inst_nongen pat_sch subj_sch = Misc.try_finally (fun () -> try - Misc.protect_refs [R (univar_pairs, [])] begin fun () -> + univar_pairs := []; let type_pairs = fresh_moregen_pairs () in moregen inst_nongen Covariant type_pairs env patt subj - end with Moregen_trace trace -> (* Moregen splits the generic level into two finer levels: [generic_level] and [generic_level - 1]. In order to properly @@ -5628,13 +5585,12 @@ and eqtype_alloc_mode m1 m2 = (* Must empty univar_pairs first *) let eqtype_list_same_length rename type_pairs subst env tl1 tl2 ~do_jkind_check = - Misc.protect_refs [R (univar_pairs, [])] begin fun () -> + univar_pairs := []; let snap = Btype.snapshot () in Misc.try_finally ~always:(fun () -> backtrack snap) (fun () -> eqtype_list_same_length rename type_pairs subst env tl1 tl2 ~do_jkind_check) - end let eqtype rename type_pairs subst env t1 t2 = eqtype_list ~do_jkind_check:true rename type_pairs subst env [t1] [t2] @@ -6488,7 +6444,7 @@ and subtype_row env trace row1 row2 cstrs = let subtype env ty1 ty2 = TypePairs.clear subtypes; - Misc.protect_refs [R (univar_pairs, [])] begin fun () -> + univar_pairs := []; (* Build constraint set. *) let cstrs = subtype_rec env [Subtype.Diff {got = ty1; expected = ty2}] ty1 ty2 [] @@ -6501,7 +6457,6 @@ let subtype env ty1 ty2 = try unify_pairs env t1 t2 pairs with Unify {trace} -> subtype_error ~env ~trace:trace0 ~unification_trace:(List.tl trace)) (List.rev cstrs) - end (*******************) (* Miscellaneous *) @@ -6743,7 +6698,6 @@ let rec nondep_type_rec ?(expand_private=false) env ids ty = in match get_desc ty with Tvar _ | Tunivar _ -> ty - (* CR layouts v2.8: This needs to traverse the jkind. *) | _ -> try TypeHash.find nondep_hash ty with Not_found -> let ty' = newgenstub ~scope:(get_scope ty) @@ -6847,13 +6801,6 @@ let nondep_type_decl env mid is_covariant decl = Private with Nondep_cannot_erase _ -> None, decl.type_private - and jkind = - try Jkind.map_type_expr (nondep_type_rec env mid) decl.type_jkind - (* CR layouts v2.8: This should be done with a proper nondep_jkind. *) - with Nondep_cannot_erase _ when is_covariant -> - let jkind_of_type = type_jkind_purely_if_principal env in - Jkind.round_up ~jkind_of_type decl.type_jkind |> - Jkind.disallow_right in clear_hash (); let priv = @@ -6864,7 +6811,7 @@ let nondep_type_decl env mid is_covariant decl = { type_params = params; type_arity = decl.type_arity; type_kind = tk; - type_jkind = jkind; + type_jkind = decl.type_jkind; type_manifest = tm; type_private = priv; type_variance = decl.type_variance; @@ -7032,54 +6979,3 @@ let print_global_state fmt global_state = print_field fmt "global_level" global_level; in Format.fprintf fmt "@[<1>{@;%a}@]" print_fields global_state - - (*******************************) - (* checking declaration jkinds *) - (* this is down here so it can use [is_equal] *) - -(* CR layouts v2.8: Passing this function everywhere is annoying. Instead, - it would be good just to use mutation to make this accessible in jkind.ml. - The problem is that Env depends on Jkind, and so the type of [type_equal] - can't be written in Jkind. It's possible that, after jkind.ml is broken up, - this problem goes away, because the dependency from Env to Jkind is pretty - minimal. *) -let type_equal env ty1 ty2 = is_equal env false [ty1] [ty2] -let () = type_equal' := type_equal - -let check_decl_jkind env decl jkind = - (* CR layouts v2.8: This could use an algorithm like [constrain_type_jkind] - to expand only as much as needed, but the l/l subtype algorithm is tricky, - and so we leave this optimization for later. *) - let type_equal = type_equal env in - let jkind_of_type ty = Some (type_jkind_purely env ty) in - match Jkind.sub_jkind_l ~type_equal ~jkind_of_type decl.type_jkind jkind with - | Ok () -> Ok () - | Error _ as err -> - match decl.type_manifest with - | None -> err - | Some ty -> - (* CR layouts v2.8: Should this use [type_jkind_purely_if_principal]? I - think not. *) - let ty_jkind = type_jkind env ty in - match Jkind.sub_jkind_l ~type_equal ~jkind_of_type ty_jkind jkind with - | Ok () -> Ok () - | Error _ as err -> err - -let constrain_decl_jkind env decl jkind = - (* CR layouts v2.8: This will need to be deeply reimplemented. *) - match Jkind.try_allow_r jkind with - (* This case is sad, because it can't refine type variables. Hence - the need for reimplementation. Hopefully no one hits this for - a while. *) - | None -> check_decl_jkind env decl jkind - | Some jkind -> - let type_equal = type_equal env in - let jkind_of_type ty = Some (type_jkind_purely env ty) in - match - Jkind.sub_or_error ~type_equal ~jkind_of_type decl.type_jkind jkind - with - | Ok () as ok -> ok - | Error _ as err -> - match decl.type_manifest with - | None -> err - | Some ty -> constrain_type_jkind env ty jkind diff --git a/upstream/ocaml_flambda/typing/ctype.mli b/upstream/ocaml_flambda/typing/ctype.mli index 197bc4632..a5d3460cd 100644 --- a/upstream/ocaml_flambda/typing/ctype.mli +++ b/upstream/ocaml_flambda/typing/ctype.mli @@ -602,11 +602,6 @@ val type_jkind : Env.t -> type_expr -> jkind_l expansion. *) val type_jkind_purely : Env.t -> type_expr -> jkind_l -(* Like [type_jkind_purely], but returns [None] if the type is not - principally known. Useful to instantiate [jkind_of_type] in various - functions exported by [Jkind]. *) -val type_jkind_purely_if_principal : Env.t -> type_expr -> jkind_l option - (* Find a type's sort (if fixed is false: constraining it to be an arbitrary sort variable, if needed) *) val type_sort : @@ -633,10 +628,6 @@ val check_decl_jkind : val constrain_decl_jkind : Env.t -> type_declaration -> jkind_l -> (unit, Jkind.Violation.t) result -(* Compare two types for equality, with no renaming. This is useful for - the [type_equal] function that must be passed to certain jkind functions. *) -val type_equal: Env.t -> type_expr -> type_expr -> bool - val check_type_jkind : Env.t -> type_expr -> ('l * allowed) jkind -> (unit, Jkind.Violation.t) result val constrain_type_jkind : @@ -645,8 +636,7 @@ val constrain_type_jkind : (* Check whether a type's externality's upper bound is less than some target. Potentially cheaper than just calling [type_jkind], because this can stop expansion once it succeeds. *) -val check_type_externality : - Env.t -> type_expr -> Jkind_axis.Externality.t -> bool +val check_type_externality : Env.t -> type_expr -> Jkind.Externality.t -> bool (* This function should get called after a type is generalized. @@ -692,7 +682,7 @@ val check_type_externality : *) val check_and_update_generalized_ty_jkind : - ?name:Ident.t -> loc:Location.t -> Env.t -> type_expr -> unit + ?name:Ident.t -> loc:Location.t -> type_expr -> unit (* False if running in principal mode and the type is not principal. True otherwise. *) diff --git a/upstream/ocaml_flambda/typing/datarepr.ml b/upstream/ocaml_flambda/typing/datarepr.ml index 8171c41e1..8060cc23d 100644 --- a/upstream/ocaml_flambda/typing/datarepr.ml +++ b/upstream/ocaml_flambda/typing/datarepr.ml @@ -70,7 +70,10 @@ let constructor_args ~current_unit priv cd_args cd_res path rep = in let type_params = TypeSet.elements arg_vars_set in let arity = List.length type_params in - let jkind = Jkind.for_boxed_record lbls in + let is_void_label lbl = Jkind.Sort.Const.(equal void lbl.ld_sort) in + let jkind = + Jkind.for_boxed_record ~all_void:(List.for_all is_void_label lbls) + in let tdecl = { type_params; diff --git a/upstream/ocaml_flambda/typing/includecore.ml b/upstream/ocaml_flambda/typing/includecore.ml index 5ffbcbb1c..0adb8aeb5 100644 --- a/upstream/ocaml_flambda/typing/includecore.ml +++ b/upstream/ocaml_flambda/typing/includecore.ml @@ -54,42 +54,20 @@ type mmodes = (** Mode cross a right mode *) (* This is very similar to Ctype.mode_cross_right. Any bugs here are likely bugs there, too. *) -let right_mode_cross_jkind env jkind mode = - let jkind_of_type = Ctype.type_jkind_purely_if_principal env in - let upper_bounds = Jkind.get_modal_upper_bounds ~jkind_of_type jkind in - let upper_bounds = - Alloc.Const.merge - { comonadic = upper_bounds; monadic = Alloc.Monadic.Const.max } - in +let right_mode_cross_jkind jkind mode = + let upper_bounds = Jkind.get_modal_upper_bounds jkind in let upper_bounds = Const.alloc_as_value upper_bounds in - let lower_bounds = Jkind.get_modal_lower_bounds ~jkind_of_type jkind in - let lower_bounds = - Alloc.Const.merge - { comonadic = Alloc.Comonadic.Const.min; monadic = lower_bounds } - in - let lower_bounds = Const.alloc_as_value lower_bounds in - Value.imply upper_bounds (Value.join_const lower_bounds mode) + Value.imply upper_bounds mode -let right_mode_cross env ty mode = +let right_mode_cross env ty mode= if not (Ctype.is_principal ty) then mode else let jkind = Ctype.type_jkind_purely env ty in - right_mode_cross_jkind env jkind mode - -let left_mode_cross_jkind env jkind mode = - let jkind_of_type = Ctype.type_jkind_purely_if_principal env in - let upper_bounds = Jkind.get_modal_upper_bounds ~jkind_of_type jkind in - let upper_bounds = - Alloc.Const.merge - { comonadic = upper_bounds; monadic = Alloc.Monadic.Const.max } - in + right_mode_cross_jkind jkind mode + +let left_mode_cross_jkind _env jkind mode = + let upper_bounds = Jkind.get_modal_upper_bounds jkind in let upper_bounds = Const.alloc_as_value upper_bounds in - let lower_bounds = Jkind.get_modal_lower_bounds ~jkind_of_type jkind in - let lower_bounds = - Alloc.Const.merge - { comonadic = Alloc.Comonadic.Const.min; monadic = lower_bounds } - in - let lower_bounds = Const.alloc_as_value lower_bounds in - Value.subtract lower_bounds (Value.meet_const upper_bounds mode) + Value.meet_const upper_bounds mode let left_mode_cross env ty mode= if not (Ctype.is_principal ty) then mode else @@ -708,10 +686,11 @@ let compare_unsafe_mode_crossing umc1 umc2 = | None, None -> None | Some _, None -> Some (Unsafe_mode_crossing (Mode_crossing_only_on First)) | None, Some _ -> Some (Unsafe_mode_crossing (Mode_crossing_only_on Second)) - | Some umc1, Some umc2 -> - if equal_unsafe_mode_crossing umc1 umc2 - then None - else Some (Unsafe_mode_crossing Mode_crossing_not_equal) + | Some ({ modal_upper_bounds = mub1 }), + Some ({ modal_upper_bounds = mub2 }) -> + if (Mode.Alloc.Const.le mub1 mub2 && Mode.Alloc.Const.le mub2 mub1) + then None + else Some (Unsafe_mode_crossing Mode_crossing_not_equal) module Record_diffing = struct @@ -1419,22 +1398,15 @@ let type_declarations ?(equality = false) ~loc env ~mark name rep1 rep2 in let err = match (decl1.type_kind, decl2.type_kind) with - (_, Type_abstract _) -> - (* No need to check jkinds if decl2 has a manifest; we've already - checked for type equality, above. Oddly, this is not just an - optimization; unconditionally checking jkinds causes a failure - around recursive modules (test case: shapes/recmodules.ml). - Richard spent several hours trying to understand what was going - on there (after the substitution in [Typemod.check_recmodule_inclusion], - there was a type_declaration whose [type_jkind] didn't match its - [type_manifest]), but just skipping this check when there is a - manifest fixes the problem. *) - if Option.is_none decl2.type_manifest then - (* Note that [decl2.type_jkind] is an upper bound *) - match Ctype.check_decl_jkind env decl1 decl2.type_jkind with - | Ok _ -> None - | Error v -> Some (Jkind v) - else None + (_, Type_abstract _) -> begin + (* Note that [decl2.type_jkind] is an upper bound. If it isn't tight, [decl2] must + have a manifest, which we're already checking for equality above. Similarly, + [decl1]'s kind may conservatively approximate its jkind, but [check_decl_jkind] + will expand its manifest. *) + match Ctype.check_decl_jkind env decl1 decl2.type_jkind with + | Ok _ -> None + | Error v -> Some (Jkind v) + end | (Type_variant (cstrs1, rep1, umc1), Type_variant (cstrs2, rep2, umc2)) -> begin if mark then begin let mark usage cstrs = @@ -1485,8 +1457,7 @@ let type_declarations ?(equality = false) ~loc env ~mark name Some (Parameter_jkind (ty, Jkind.Violation.of_ (Not_a_subjkind (Jkind.disallow_right original_jkind, - Jkind.disallow_left inferred_jkind, - [])))) + Jkind.disallow_left inferred_jkind)))) | All_good -> let abstr = Btype.type_kind_is_abstract decl2 && decl2.type_manifest = None in let need_variance = diff --git a/upstream/ocaml_flambda/typing/includemod.ml b/upstream/ocaml_flambda/typing/includemod.ml index 447b27f51..3106e579d 100644 --- a/upstream/ocaml_flambda/typing/includemod.ml +++ b/upstream/ocaml_flambda/typing/includemod.ml @@ -541,22 +541,7 @@ and try_modtypes ~in_eq ~loc env ~mark subst ~modes mty1 mty2 orig_shape = in match mty1, mty2 with | _ when shallow_modtypes env subst mty1 mty2 -> - begin match modes with - | Legacy (Some (locks, _, _)) when not (Env.locks_is_empty locks) -> - (* If the coercion being checked is closed over, we close over individual values - in the module, instead of the whole module. *) - let mty1 = Mtype.reduce_alias_lazy env mty1 in - let mty2 = Subst.Lazy.modtype Keep subst mty2 |> Mtype.reduce_alias_lazy env in - begin match mty1, mty2 with - | Some mty1, Some mty2 -> - (* Only for the side-effects of walking locks *) - ignore (try_modtypes ~in_eq ~loc env ~mark subst ~modes mty1 mty2 orig_shape) - | _, _ -> - walk_locks ~env ~item:Module modes - end - | _ -> - walk_locks ~env ~item:Module modes - end; + walk_locks ~env ~item:Module modes; Ok (Tcoerce_none, orig_shape) | (Mty_alias p1, _) when not (is_alias mty2) -> begin diff --git a/upstream/ocaml_flambda/typing/jkind.ml b/upstream/ocaml_flambda/typing/jkind.ml index 4d46c87e0..a25392458 100644 --- a/upstream/ocaml_flambda/typing/jkind.ml +++ b/upstream/ocaml_flambda/typing/jkind.ml @@ -14,13 +14,9 @@ open Mode open Jkind_types -open Jkind_axis -open Types [@@@warning "+9"] -module Nonempty_list = Misc.Nonempty_list - (* A *sort* is the information the middle/back ends need to be able to compile a manipulation (storing, passing, etc) of a runtime value. *) module Sort = struct @@ -35,39 +31,7 @@ end type sort = Sort.t -module Sub_failure_reason = struct - type t = - | Axis_disagreement of Axis.packed - | Layout_disagreement - | Constrain_ran_out_of_fuel -end - -module Sub_result = struct - type t = - | Equal - | Less - | Not_le of Sub_failure_reason.t Nonempty_list.t - - let of_le_result ~failure_reason (le_result : Misc.Le_result.t) = - match le_result with - | Less -> Less - | Equal -> Equal - | Not_le -> Not_le (failure_reason ()) - - let combine sr1 sr2 = - match sr1, sr2 with - | Equal, Equal -> Equal - | Equal, Less | Less, Equal | Less, Less -> Less - | Not_le reasons1, Not_le reasons2 -> - Not_le Nonempty_list.(reasons1 @ reasons2) - | Not_le reasons, _ | _, Not_le reasons -> Not_le reasons - - let require_le = function - | Less | Equal -> Ok () - | Not_le reason -> Error reason - - let is_le t = require_le t |> Result.is_ok -end +type type_expr = Types.type_expr (* A *layout* of a type describes the way values of that type are stored at runtime, including details like width, register convention, calling @@ -196,11 +160,6 @@ module Layout = struct | Base b -> Sort (Sort.of_base b) | Product cs -> Product (List.map of_const cs) - let product = function - | [] -> Misc.fatal_error "Layout.product: empty product" - | [lay] -> lay - | lays -> Product lays - let rec to_sort = function | Any -> None | Sort s -> Some s @@ -264,36 +223,32 @@ module Layout = struct | Any, Any -> true | (Any | Sort _ | Product _), _ -> false - let sub t1 t2 = - let rec sub t1 t2 : Misc.Le_result.t = - match t1, t2 with - | Any, Any -> Equal - | _, Any -> Less - | Any, _ -> Not_le - | Sort s1, Sort s2 -> if Sort.equate s1 s2 then Equal else Not_le - | Product ts1, Product ts2 -> - if List.compare_lengths ts1 ts2 = 0 - then Misc.Le_result.combine_list (List.map2 sub ts1 ts2) - else Not_le - | Product ts1, Sort s2 -> ( - (* This case could use [to_product_sort] because every component will need - to end up less than a sort (so, no [any]), but it seems easier to keep - this case lined up with the inverse case, which definitely cannot use - [to_product_sort]. *) - match Sort.decompose_into_product s2 (List.length ts1) with - | None -> Not_le - | Some ss2 -> - Misc.Le_result.combine_list - (List.map2 (fun t1 s2 -> sub t1 (Sort s2)) ts1 ss2)) - | Sort s1, Product ts2 -> ( - match Sort.decompose_into_product s1 (List.length ts2) with - | None -> Not_le - | Some ss1 -> - Misc.Le_result.combine_list - (List.map2 (fun s1 t2 -> sub (Sort s1) t2) ss1 ts2)) - in - Sub_result.of_le_result (sub t1 t2) ~failure_reason:(fun () -> - [Layout_disagreement]) + let rec sub t1 t2 : Misc.Le_result.t = + match t1, t2 with + | Any, Any -> Equal + | _, Any -> Less + | Any, _ -> Not_le + | Sort s1, Sort s2 -> if Sort.equate s1 s2 then Equal else Not_le + | Product ts1, Product ts2 -> + if List.compare_lengths ts1 ts2 = 0 + then Misc.Le_result.combine_list (List.map2 sub ts1 ts2) + else Not_le + | Product ts1, Sort s2 -> ( + (* This case could use [to_product_sort] because every component will need + to end up less than a sort (so, no [any]), but it seems easier to keep + this case lined up with the inverse case, which definitely cannot use + [to_product_sort]. *) + match Sort.decompose_into_product s2 (List.length ts1) with + | None -> Not_le + | Some ss2 -> + Misc.Le_result.combine_list + (List.map2 (fun t1 s2 -> sub t1 (Sort s2)) ts1 ss2)) + | Sort s1, Product ts2 -> ( + match Sort.decompose_into_product s1 (List.length ts2) with + | None -> Not_le + | Some ss1 -> + Misc.Le_result.combine_list + (List.map2 (fun s1 t2 -> sub (Sort s1) t2) ss1 ts2)) let rec intersection t1 t2 = (* pre-condition to [products]: [ts1] and [ts2] have the same length *) @@ -335,8 +290,9 @@ module Layout = struct pp_element ~nested:false ppf layout end -module Externality = Externality -module Nullability = Nullability +module Externality = Jkind_axis.Externality +module Nullability = Jkind_axis.Nullability +module Modes = Jkind_axis.Of_lattice (Alloc.Const) module History = struct include Jkind_intf.History @@ -356,6 +312,34 @@ module History = struct let has_warned t = t.has_warned end +(*********************************) +(* Main type declarations *) + +type +'d const = (type_expr, 'd) Jkind_types.Const.t + +type 'd t = (type_expr, 'd) Jkind_types.t + +type jkind_l = (allowed * disallowed) t + +type packed = Pack : 'd t -> packed [@@unboxed] + +include Allowance.Magic_allow_disallow (struct + type (_, _, 'd) sided = 'd t + + let disallow_right ({ jkind = { layout = _; _ }; _ } as t) = t + + let disallow_left ({ jkind = { layout = _; _ }; _ } as t) = t + + let allow_right ({ jkind = { layout = _; _ }; _ } as t) = t + + let allow_left ({ jkind = { layout = _; _ }; _ } as t) = t +end) + +let terrible_relax_l ({ jkind = { layout = _; _ }; _ } as t) = t + +let fresh_jkind jkind ~annotation ~why = + { jkind; annotation; history = Creation why; has_warned = false } + (******************************) (*** user errors ***) @@ -372,499 +356,56 @@ module Error = struct from_attribute : Builtin_attributes.jkind_attribute Location.loc } | Unimplemented_syntax - | With_on_right exception User_error of Location.t * t end let raise ~loc err = raise (Error.User_error (loc, err)) -(******************************) - -module Mod_bounds = struct - include Types.Jkind_mod_bounds - - let debug_print ppf - { locality; - linearity; - uniqueness; - portability; - contention; - yielding; - externality; - nullability - } = - Format.fprintf ppf - "@[{ locality = %a;@ linearity = %a;@ uniqueness = %a;@ portability = \ - %a;@ contention = %a;@ yielding = %a;@ externality = %a;@ nullability = \ - %a }@]" - Mode.Locality.Const.print locality Mode.Linearity.Const.print linearity - Mode.Uniqueness.Const.print uniqueness Mode.Portability.Const.print - portability Mode.Contention.Const.print contention - Mode.Yielding.Const.print yielding Externality.print externality - Nullability.print nullability - - let min = - Create.f - { f = - (fun (type axis) ~(axis : axis Axis.t) -> - let (module Bound_ops) = Axis.get axis in - Bound_ops.min) - } - - let max = - Create.f - { f = - (fun (type axis) ~(axis : axis Axis.t) -> - let (module Bound_ops) = Axis.get axis in - Bound_ops.max) - } - - let simple ~locality ~linearity ~uniqueness ~portability ~contention ~yielding - ~externality ~nullability = - { locality; - linearity; - uniqueness; - portability; - contention; - yielding; - externality; - nullability - } - - let join = - Map2.f - { f = - (fun (type axis) ~(axis : axis Axis.t) -> - let (module Bound_ops) = Axis.get axis in - Bound_ops.join) - } - - let meet = - Map2.f - { f = - (fun (type axis) ~(axis : axis Axis.t) -> - let (module Bound_ops) = Axis.get axis in - Bound_ops.meet) - } - - let less_or_equal = - Fold2.f - { f = - (fun (type axis) ~(axis : axis Axis.t) b1 b2 -> - let (module Bound_ops) = Axis.get axis in - Sub_result.of_le_result (Bound_ops.less_or_equal b1 b2) - ~failure_reason:(fun () -> [Axis_disagreement (Pack axis)])) - } - ~combine:Sub_result.combine - - let equal = - Fold2.f - { f = - (fun (type axis) ~(axis : axis Axis.t) -> - let (module Bound_ops) = Axis.get axis in - Bound_ops.equal) - } - ~combine:( && ) - - (** Get all axes that are set to max *) - let get_max_axes t = - Axis_set.create ~f:(fun ~axis:(Pack axis) -> - let (module Axis_ops) = Axis.get axis in - let bound = get ~axis t in - Axis_ops.le Axis_ops.max bound) - - let for_arrow = - simple ~linearity:Linearity.Const.max ~locality:Locality.Const.max - ~uniqueness:Uniqueness.Const_op.min ~portability:Portability.Const.max - ~contention:Contention.Const_op.min ~yielding:Yielding.Const.max - ~externality:Externality.max ~nullability:Nullability.Non_null -end - -module With_bounds = struct - type 'd t = 'd Types.with_bounds constraint 'd = 'l * 'r - - module Type_info = struct - include With_bounds_type_info - - let print ppf { relevant_axes } = - let open Format in - fprintf ppf "@[{ relevant_axes = %a }]" Axis_set.print relevant_axes - - let join { relevant_axes = axes1 } { relevant_axes = axes2 } = - { relevant_axes = Axis_set.union axes1 axes2 } - - let axes_ignored_by_modalities ~mod_bounds - ~type_info:{ relevant_axes = explicit_relevant_axes } = - (* Axes that are max are implicitly relevant. ie, including or excluding an - axis from the set of relevant axes is semantically equivalent if the mod- - bound on that axis is max. - - Note that this mostly matters because we mark axes as /not/ explicitly relevant - on types when the axis is max, for performance reasons - but we don't want to - print constant modalities for those axes! - *) - let implicit_relevant_axes = Mod_bounds.get_max_axes mod_bounds in - let relevant_axes = - Axis_set.union explicit_relevant_axes implicit_relevant_axes - in - let irrelevant_axes = Axis_set.complement relevant_axes in - (* nullability is always implicitly irrelevant since it isn't deep *) - Axis_set.remove irrelevant_axes (Nonmodal Nullability) - end - - let to_best_eff_map = function - | No_with_bounds -> With_bounds_types.empty - | With_bounds bounds -> bounds - - let to_list : type d. d with_bounds -> _ = function - | No_with_bounds -> [] - | With_bounds tys -> tys |> With_bounds_types.to_seq |> List.of_seq - - open Allowance - - include Magic_allow_disallow (struct - type (_, _, 'd) sided = 'd t constraint 'd = 'l * 'r - - let disallow_left : type l r. (l * r) t -> (disallowed * r) t = function - | No_with_bounds -> No_with_bounds - | With_bounds _ as b -> b - - let disallow_right : type l r. (l * r) t -> (l * disallowed) t = function - | No_with_bounds -> No_with_bounds - | With_bounds _ as b -> b - - let allow_left : type l r. (allowed * r) t -> (l * r) t = function - | No_with_bounds -> No_with_bounds - | With_bounds _ as b -> b - - let allow_right : type l r. (l * allowed) t -> (l * r) t = function - | No_with_bounds -> No_with_bounds - end) - - let try_allow_l : type l r. (l * r) t -> (allowed * r) t option = function - | No_with_bounds -> Some No_with_bounds - | With_bounds _ as b -> Some b - - let try_allow_r : type l r. (l * r) t -> (l * allowed) t option = function - | No_with_bounds -> Some No_with_bounds - | With_bounds _ -> None - - let map_type_expr (type l r) f : (l * r) t -> (l * r) t = function - | No_with_bounds -> No_with_bounds - | With_bounds tys -> - With_bounds - (tys |> With_bounds_types.to_seq - |> Seq.map (fun (ty, ti) -> f ty, ti) - |> With_bounds_types.of_seq) - - let debug_print (type l r) ~print_type_expr ppf : (l * r) t -> _ = - let open Format in - function - | No_with_bounds -> fprintf ppf "No_with_bounds" - | With_bounds tys -> - fprintf ppf "With_bounds @[[%a]@]" - (pp_print_seq - ~pp_sep:(fun ppf () -> fprintf ppf ";@ ") - (fun ppf (ty, ti) -> - fprintf ppf "@[(%a, %a)]" print_type_expr ty Type_info.print ti)) - (With_bounds_types.to_seq tys) - - let join_bounds = - With_bounds_types.merge (fun _ ti1 ti2 -> - match ti1, ti2 with - | None, None -> None - | Some ti, None -> Some ti - | None, Some ti -> Some ti - | Some ti1, Some ti2 -> Some (Type_info.join ti1 ti2)) - - (* You might think that we can only do joins on the left. But that's not true! - We can join constants. The important thing is that the allowances of both - arguments are the same and that they match the result: this will mean that - if we have any with_bounds in either argument, the result is an l-With_bounds, as - required. This might change once we have arrow kinds, but we'll deal with - that when we get there. *) - let join (type l r) (bag1 : (l * r) t) (bag2 : (l * r) t) : (l * r) t = - match bag1, bag2 with - | No_with_bounds, No_with_bounds -> No_with_bounds - | No_with_bounds, b -> b - | b, No_with_bounds -> b - | With_bounds tys1, With_bounds tys2 -> With_bounds (join_bounds tys1 tys2) - - let meet (type l1 l2) (bag1 : (l1 * allowed) t) (bag2 : (l2 * allowed) t) : - (l1 * allowed) t = - match bag1, bag2 with No_with_bounds, No_with_bounds -> No_with_bounds - - let add_bound type_expr type_info tys = - With_bounds_types.update type_expr - (function - | None -> Some type_info | Some ti -> Some (Type_info.join ti type_info)) - tys - - let add type_expr type_info bounds = - match bounds with - | No_with_bounds -> - With_bounds (With_bounds_types.singleton type_expr type_info) - | With_bounds bounds -> With_bounds (add_bound type_expr type_info bounds) - - let add_modality ~relevant_for_nullability ~modality ~type_expr - (t : (allowed * 'r) t) : (allowed * 'r) t = - let relevant_axes = - Jkind_axis.Axis_set.create ~f:(fun ~axis:(Pack axis) -> - match axis with - | Modal axis -> ( - let (P axis) = Mode.Const.Axis.alloc_as_value (P axis) in - let modality = Mode.Modality.Value.Const.proj axis modality in - let is_constant = Mode.Modality.is_constant modality in - let is_id = Mode.Modality.is_id modality in - match is_constant, is_id with - | true, _ -> false - | _, true -> true - | false, false -> - Misc.fatal_errorf - "Don't yet know how to interpret non-constant, non-identity \ - modalities, but got %a along axis %a.\n\n\ - If you see this error, please contant the Jane Street \ - compiler team." - Mode.Modality.print modality Value.print_axis axis) - | Nonmodal Externality -> true - | Nonmodal Nullability -> ( - match relevant_for_nullability with - | `Relevant -> true - | `Irrelevant -> false)) - in - match t with - | No_with_bounds -> - With_bounds - (With_bounds_types.singleton type_expr - ({ relevant_axes } : With_bounds_type_info.t)) - | With_bounds tys -> With_bounds (add_bound type_expr { relevant_axes } tys) -end - -module Layout_and_axes = struct - module Allow_disallow = Allowance.Magic_allow_disallow (struct - type (_, 'layout, 'd) sided = ('layout, 'd) layout_and_axes - - let disallow_left t = - { t with with_bounds = With_bounds.disallow_left t.with_bounds } - - let disallow_right t = - { t with with_bounds = With_bounds.disallow_right t.with_bounds } - - let allow_left t = - { t with with_bounds = With_bounds.allow_left t.with_bounds } - - let allow_right t = - { t with with_bounds = With_bounds.allow_right t.with_bounds } - end) - - include Allow_disallow - - let map f t = { t with layout = f t.layout } - - let map_option f t = - match f t.layout with None -> None | Some layout -> Some { t with layout } - - let map_type_expr f t = - { t with with_bounds = With_bounds.map_type_expr f t.with_bounds } - - let equal eq_layout - { layout = lay1; - mod_bounds = mod_bounds1; - with_bounds = (No_with_bounds : (allowed * allowed) with_bounds) - } - { layout = lay2; - mod_bounds = mod_bounds2; - with_bounds = (No_with_bounds : (allowed * allowed) with_bounds) - } = - eq_layout lay1 lay2 && Mod_bounds.equal mod_bounds1 mod_bounds2 - - let try_allow_l : - type l r. - ('layout, l * r) layout_and_axes -> - ('layout, Allowance.allowed * r) layout_and_axes option = - fun { layout; mod_bounds; with_bounds } -> - match With_bounds.try_allow_l with_bounds with - | None -> None - | Some with_bounds -> - Some { layout; mod_bounds = Obj.magic mod_bounds; with_bounds } - - let try_allow_r { layout; mod_bounds; with_bounds } = - match With_bounds.try_allow_r with_bounds with - | Some with_bounds -> - Some { layout; mod_bounds = Obj.magic mod_bounds; with_bounds } - | None -> None - - let debug_print ~print_type_expr format_layout ppf - { layout; mod_bounds; with_bounds } = - Format.fprintf ppf "{ layout = %a;@ mod_bounds = %a;@ with_bounds = %a }" - format_layout layout Mod_bounds.debug_print mod_bounds - (With_bounds.debug_print ~print_type_expr) - with_bounds -end +module Const = struct + open Jkind_types.Layout_and_axes -(*********************************) + type +'d t = 'd const -module Quality = struct include Allowance.Magic_allow_disallow (struct - type (_, _, 'd) sided = 'd jkind_quality constraint 'd = 'l * 'r - - let disallow_left : - type l r. (l * r) jkind_quality -> (disallowed * r) jkind_quality = - function - | Not_best -> Not_best - | Best -> Best - - let disallow_right : - type l r. (l * r) jkind_quality -> (l * disallowed) jkind_quality = - function - | Not_best -> Not_best - | Best -> Best - - let allow_left : - type l r. (allowed * r) jkind_quality -> (l * r) jkind_quality = - function - | Not_best -> Not_best - | Best -> Best - - let allow_right : - type l r. (l * allowed) jkind_quality -> (l * r) jkind_quality = - function - | Not_best -> Not_best - end) - - let try_allow_r : - type l r. (l * r) jkind_quality -> (l * allowed) jkind_quality option = - function - | Not_best -> Some Not_best - | Best -> None -end - -include Allowance.Magic_allow_disallow (struct - type (_, _, 'd) sided = 'd jkind - - let disallow_right t = - { t with - jkind = Layout_and_axes.disallow_right t.jkind; - quality = Quality.disallow_right t.quality - } - - let disallow_left t = - { t with - jkind = Layout_and_axes.disallow_left t.jkind; - quality = Quality.disallow_left t.quality - } - - let allow_right t = - { t with - jkind = Layout_and_axes.allow_right t.jkind; - quality = Quality.allow_right t.quality - } - - let allow_left t = - { t with - jkind = Layout_and_axes.allow_left t.jkind; - quality = Quality.allow_left t.quality - } -end) - -let try_allow_r t = - let open Misc.Stdlib.Monad.Option.Syntax in - let* jkind = Layout_and_axes.try_allow_r t.jkind in - let* quality = Quality.try_allow_r t.quality in - Some { t with jkind; quality } - -let fresh_jkind jkind ~annotation ~why = - { jkind; - annotation; - history = Creation why; - has_warned = false; - quality = Not_best - } - |> allow_left |> allow_right - -(* This version propagates the allowances from the [jkind] to the output. *) -let fresh_jkind_poly jkind ~annotation ~why = - { jkind; - annotation; - history = Creation why; - has_warned = false; - quality = Not_best - } - -(***********************) -(*** constant jkinds ***) - -module Context_with_transl = struct - type 'd t = - | Right_jkind : - ('l * allowed) History.annotation_context - -> ('l * allowed) t - | Left_jkind : - (Parsetree.core_type -> Types.type_expr) - * (allowed * disallowed) History.annotation_context - -> (allowed * disallowed) t - - let get_context : type l r. (l * r) t -> (l * r) History.annotation_context = - function - | Right_jkind ctx -> ctx - | Left_jkind (_, ctx) -> ctx -end - -let outcometree_of_type_scheme = ref (fun _ -> assert false) - -let set_outcometree_of_type_scheme p = outcometree_of_type_scheme := p + type (_, _, 'd) sided = 'd t -let outcometree_of_modalities_new = ref (fun _ _ _ -> assert false) + let disallow_left ({ layout = _; _ } as t) = t -let set_outcometree_of_modalities_new p = outcometree_of_modalities_new := p + let disallow_right ({ layout = _; _ } as t) = t -let should_print_with_bounds () = Language_extension.(is_at_least Layouts Alpha) + let allow_left ({ layout = _; _ } as t) = t -module Const = struct - type 'd t = (Layout.Const.t, 'd) Types.layout_and_axes - - include Allowance.Magic_allow_disallow (struct - include Layout_and_axes.Allow_disallow - - type (_, _, 'd) sided = 'd t + let allow_right ({ layout = _; _ } as t) = t end) let max = - Types. - { layout = Layout.Const.max; - mod_bounds = Mod_bounds.max; - with_bounds = No_with_bounds - } + { layout = Layout.Const.max; + modes_upper_bounds = Modes.max; + externality_upper_bound = Externality.max; + nullability_upper_bound = Nullability.max + } - let no_with_bounds_and_equal t1 t2 = - let open Misc.Stdlib.Monad.Option.Syntax in - let t1_t2 = - let* t1 = Layout_and_axes.try_allow_l t1 in - let* t1 = Layout_and_axes.try_allow_r t1 in - let* t2 = Layout_and_axes.try_allow_l t2 in - let* t2 = Layout_and_axes.try_allow_r t2 in - Some (t1, t2) - in - match t1_t2 with - | Some (t1, t2) -> - Layout.Const.equal t1.layout t2.layout - && Mod_bounds.equal t1.mod_bounds t2.mod_bounds - | None -> false + let equal_after_all_inference_is_done t1 t2 = + Layout_and_axes.equal_after_all_inference_is_done Layout.Const.equal t1 t2 module Builtin = struct - type nonrec t = - { jkind : (allowed * allowed) t; + type nonrec +'d t = + { jkind : 'd t; name : string } let mk_jkind ~mode_crossing ~nullability (layout : Layout.Const.t) = - let mod_bounds = + let modes_upper_bounds, externality_upper_bound = match mode_crossing with - | true -> { Mod_bounds.min with nullability } - | false -> { Mod_bounds.max with nullability } + | true -> Modes.min, Externality.min + | false -> Modes.max, Externality.max in - { layout; mod_bounds; with_bounds = No_with_bounds } + { layout; + modes_upper_bounds; + externality_upper_bound; + nullability_upper_bound = nullability + } let any = { jkind = mk_jkind Any ~mode_crossing:false ~nullability:Maybe_null; @@ -890,14 +431,16 @@ module Const = struct let immutable_data = { jkind = { layout = Base Value; - mod_bounds = - Mod_bounds.simple ~locality:Locality.Const.max - ~linearity:Linearity.Const.min - ~portability:Portability.Const.min ~yielding:Yielding.Const.min - ~uniqueness:Uniqueness.Const_op.max - ~contention:Contention.Const_op.min ~externality:Externality.max - ~nullability:Nullability.Non_null; - with_bounds = No_with_bounds + modes_upper_bounds = + { linearity = Linearity.Const.min; + contention = Contention.Const.min; + portability = Portability.Const.min; + uniqueness = Uniqueness.Const.max; + areality = Locality.Const.max; + yielding = Yielding.Const.min + }; + externality_upper_bound = Externality.max; + nullability_upper_bound = Nullability.Non_null }; name = "immutable_data" } @@ -905,14 +448,16 @@ module Const = struct let mutable_data = { jkind = { layout = Base Value; - mod_bounds = - Mod_bounds.simple ~locality:Locality.Const.max - ~linearity:Linearity.Const.min - ~portability:Portability.Const.min ~yielding:Yielding.Const.min - ~contention:Contention.Const_op.max - ~uniqueness:Uniqueness.Const_op.max ~externality:Externality.max - ~nullability:Nullability.Non_null; - with_bounds = No_with_bounds + modes_upper_bounds = + { linearity = Linearity.Const.min; + contention = Contention.Const.max; + portability = Portability.Const.min; + uniqueness = Uniqueness.Const.max; + areality = Locality.Const.max; + yielding = Yielding.Const.min + }; + externality_upper_bound = Externality.max; + nullability_upper_bound = Nullability.Non_null }; name = "mutable_data" } @@ -959,13 +504,7 @@ module Const = struct meeting the conditions. *) let immediate64 = - { jkind = - { immediate.jkind with - mod_bounds = - { immediate.jkind.mod_bounds with - externality = Externality.External64 - } - }; + { jkind = { immediate.jkind with externality_upper_bound = External64 }; name = "immediate64" } @@ -1024,48 +563,63 @@ module Const = struct bits64; vec128 ] - let of_attribute : Builtin_attributes.jkind_attribute -> t = function + let of_attribute : Builtin_attributes.jkind_attribute -> _ t = function | Immediate -> immediate | Immediate64 -> immediate64 end module To_out_jkind_const : sig (** Convert a [t] into a [Outcometree.out_jkind_const]. - The jkind is written in terms of the built-in jkind that requires the - least amount of modes after the mod. For example, [value mod global many - unique portable uncontended external_ non_null] could be written in - terms of [value] (as it appears above), or in terms of [immediate] - (which would just be [immediate]). Since the latter requires less modes - to be printed, it is chosen. *) + The jkind is written in terms of the built-in jkind that requires the least amount + of modes after the mod. For example, + [value mod global many unique portable uncontended external_ non_null] could be + written in terms of [value] (as it appears above), or in terms of [immediate] + (which would just be [immediate]). Since the latter requires less modes to be + printed, it is chosen. *) val convert : 'd t -> Outcometree.out_jkind_const end = struct type printable_jkind = { base : string; - modal_bounds : string list; - printable_with_bounds : - (Outcometree.out_type * Outcometree.out_modality_new list) list + modal_bounds : string list } - let get_modal_bound (type a) ~(axis : a Axis.t) ~(base : a) (actual : a) = - let (module A) = Axis.get axis in - (* CR layouts v2.8: Fix printing! *) - let less_or_equal a b = - let (module Axis_ops) = Axis.get axis in - Axis_ops.less_or_equal a b - in - match less_or_equal actual base with - | Less | Equal -> ( - match less_or_equal base actual with - | Less | Equal -> `Valid None - | Not_le -> `Valid (Some (Format.asprintf "%a" A.print actual))) - | Not_le -> `Invalid - - let get_modal_bounds ~(base : Mod_bounds.t) (actual : Mod_bounds.t) = - Axis.all - |> List.map (fun (Axis.Pack axis) -> - let base = Mod_bounds.get ~axis base in - let actual = Mod_bounds.get ~axis actual in - get_modal_bound ~axis ~base actual) + module Bounds = struct + type t = + { alloc_bounds : Alloc.Const.t; + externality_bound : Externality.t; + nullability_bound : Nullability.t + } + + let of_jkind jkind = + { alloc_bounds = jkind.modes_upper_bounds; + externality_bound = jkind.externality_upper_bound; + nullability_bound = jkind.nullability_upper_bound + } + end + + let get_modal_bound ~le ~print ~base actual = + match le actual base with + | true -> ( + match le base actual with + | true -> `Valid None + | false -> `Valid (Some (Format.asprintf "%a" print actual))) + | false -> `Invalid + + let get_modal_bounds ~(base : Bounds.t) (actual : Bounds.t) = + [ get_modal_bound ~le:Locality.Const.le ~print:Locality.Const.print + ~base:base.alloc_bounds.areality actual.alloc_bounds.areality; + get_modal_bound ~le:Uniqueness.Const.le ~print:Uniqueness.Const.print + ~base:base.alloc_bounds.uniqueness actual.alloc_bounds.uniqueness; + get_modal_bound ~le:Linearity.Const.le ~print:Linearity.Const.print + ~base:base.alloc_bounds.linearity actual.alloc_bounds.linearity; + get_modal_bound ~le:Contention.Const.le ~print:Contention.Const.print + ~base:base.alloc_bounds.contention actual.alloc_bounds.contention; + get_modal_bound ~le:Portability.Const.le ~print:Portability.Const.print + ~base:base.alloc_bounds.portability actual.alloc_bounds.portability; + get_modal_bound ~le:Externality.le ~print:Externality.print + ~base:base.externality_bound actual.externality_bound; + get_modal_bound ~le:Nullability.le ~print:Nullability.print + ~base:base.nullability_bound actual.nullability_bound ] |> List.rev |> List.fold_left (fun acc mode -> @@ -1075,54 +629,18 @@ module Const = struct | Some acc, `Valid (Some mode) -> Some (mode :: acc)) (Some []) - let modality_to_ignore_axes axes_to_ignore = - (* The modality is constant along axes to ignore and id along others *) - List.fold_left - (fun acc (Axis.Pack axis) -> - match axis with - | Modal axis -> - let then_ : Modality.t = - let (P axis) = Mode.Const.Axis.alloc_as_value (P axis) in - match axis with - | Monadic monadic -> - Atom - (axis, Join_with (Mode.Value.Monadic.Const.max_axis monadic)) - | Comonadic comonadic -> - Atom - ( axis, - Meet_with (Mode.Value.Comonadic.Const.min_axis comonadic) ) - in - Modality.Value.Const.compose acc ~then_ - | Nonmodal _ -> - (* TODO: don't know how to print *) - acc) - Modality.Value.Const.id - (Axis_set.to_list axes_to_ignore) - (** Write [actual] in terms of [base] *) - let convert_with_base ~(base : Builtin.t) (actual : _ t) = + let convert_with_base ~(base : _ Builtin.t) actual = let matching_layouts = Layout.Const.equal base.jkind.layout actual.layout in let modal_bounds = - get_modal_bounds ~base:base.jkind.mod_bounds actual.mod_bounds - in - let printable_with_bounds = - List.map - (fun (type_expr, type_info) -> - let axes_ignored_by_modalities = - With_bounds.Type_info.axes_ignored_by_modalities - ~mod_bounds:actual.mod_bounds ~type_info - in - ( !outcometree_of_type_scheme type_expr, - !outcometree_of_modalities_new - Types.Immutable [] - (modality_to_ignore_axes axes_ignored_by_modalities) )) - (With_bounds.to_list actual.with_bounds) + get_modal_bounds + ~base:(Bounds.of_jkind base.jkind) + (Bounds.of_jkind actual) in match matching_layouts, modal_bounds with - | true, Some modal_bounds -> - Some { base = base.name; modal_bounds; printable_with_bounds } + | true, Some modal_bounds -> Some { base = base.name; modal_bounds } | false, _ | _, None -> None (** Select the out_jkind_const with the least number of modal bounds to print *) @@ -1138,11 +656,6 @@ module Const = struct | [] -> None let convert jkind = - let jkind = - if should_print_with_bounds () - then jkind - else { jkind with with_bounds = No_with_bounds } - in (* For each primitive jkind, we try to print the jkind in terms of it (this is possible if the primitive is a subjkind of it). We then choose the "simplest". The "simplest" is taken to mean the one with the least number of modes that need to @@ -1165,11 +678,9 @@ module Const = struct ~base: { jkind = { layout = jkind.layout; - mod_bounds = - { Mod_bounds.max with - nullability = Nullability.Non_null - }; - with_bounds = No_with_bounds + modes_upper_bounds = Modes.max; + externality_upper_bound = Externality.max; + nullability_upper_bound = Nullability.Non_null }; name = Layout.Const.to_string jkind.layout } @@ -1184,8 +695,9 @@ module Const = struct ~base: { jkind = { layout = jkind.layout; - mod_bounds = Mod_bounds.max; - with_bounds = No_with_bounds + modes_upper_bounds = Modes.max; + externality_upper_bound = Externality.max; + nullability_upper_bound = Nullability.max }; name = Layout.Const.to_string jkind.layout } @@ -1195,48 +707,46 @@ module Const = struct modal bounds are all max *) Option.get out_jkind_verbose) in - let base, with_tys = - match printable_jkind with - | { base; modal_bounds = _ :: _ as modal_bounds; printable_with_bounds } - -> - ( Outcometree.Ojkind_const_mod - (Some (Ojkind_const_abbreviation base), modal_bounds), - printable_with_bounds ) - | { base; modal_bounds = []; printable_with_bounds } -> - Outcometree.Ojkind_const_abbreviation base, printable_with_bounds - in - (* Finally, add on the [with]-types and their modalities *) - List.fold_left - (fun jkind (ty, modalities) -> - Outcometree.Ojkind_const_with (jkind, ty, modalities)) - base with_tys + match printable_jkind with + | { base; modal_bounds = _ :: _ as modal_bounds } -> + Outcometree.Ojkind_const_mod + (Ojkind_const_abbreviation base, modal_bounds) + | { base; modal_bounds = [] } -> + Outcometree.Ojkind_const_abbreviation base end let to_out_jkind_const jkind = To_out_jkind_const.convert jkind let format ppf jkind = to_out_jkind_const jkind |> !Oprint.out_jkind_const ppf - (*******************************) - (* converting user annotations *) - - let jkind_of_product_annotations (type l r) (jkinds : (l * r) t list) = - let folder (type l r) (layouts_acc, mod_bounds_acc, with_bounds_acc) - ({ layout; mod_bounds; with_bounds } : (l * r) t) = - ( layout :: layouts_acc, - Mod_bounds.join mod_bounds mod_bounds_acc, - With_bounds.join with_bounds with_bounds_acc ) + let jkind_of_product_annotations jkinds = + let folder (layouts, mode_ub, ext_ub, null_ub) + { layout; + modes_upper_bounds; + externality_upper_bound; + nullability_upper_bound + } = + ( layout :: layouts, + Modes.join mode_ub modes_upper_bounds, + Externality.join ext_ub externality_upper_bound, + Nullability.join null_ub nullability_upper_bound ) in - let layouts, mod_bounds, with_bounds = - List.fold_left folder ([], Mod_bounds.min, No_with_bounds) jkinds + let layouts, mode_ub, ext_ub, null_ub = + List.fold_left folder + ([], Modes.min, Externality.min, Nullability.min) + jkinds in { layout = Layout.Const.Product (List.rev layouts); - mod_bounds; - with_bounds + modes_upper_bounds = mode_ub; + externality_upper_bound = ext_ub; + nullability_upper_bound = null_ub } let rec of_user_written_annotation_unchecked_level : type l r. - (l * r) Context_with_transl.t -> Parsetree.jkind_annotation -> (l * r) t = + (l * r) History.annotation_context -> + Parsetree.jkind_annotation -> + (l * r) t = fun context jkind -> match jkind.pjkind_desc with | Abbreviation name -> @@ -1255,52 +765,39 @@ module Const = struct | "bits32" -> Builtin.bits32.jkind | "bits64" -> Builtin.bits64.jkind | "vec128" -> Builtin.vec128.jkind - | "immutable_data" -> Builtin.immutable_data.jkind - | "mutable_data" -> Builtin.mutable_data.jkind | _ -> raise ~loc:jkind.pjkind_loc (Unknown_jkind jkind)) |> allow_left |> allow_right - | Mod (base, modifiers) -> - let base = of_user_written_annotation_unchecked_level context base in + | Mod (jkind, modifiers) -> + let base = of_user_written_annotation_unchecked_level context jkind in (* for each mode, lower the corresponding modal bound to be that mode *) let parsed_modifiers = Typemode.transl_modifier_annots modifiers in - let mod_bounds = - Mod_bounds.Create.f - { f = - (fun (type a) ~(axis : a Axis.t) -> - let (module A) = Axis.get axis in - let parsed_modifier = - Typemode.Transled_modifiers.get ~axis parsed_modifiers - in - let base_bound = Mod_bounds.get ~axis base.mod_bounds in - match parsed_modifier, base_bound with - | None, base_bound -> base_bound - | Some parsed_modifier, base_modifier -> - A.meet base_modifier parsed_modifier.txt) - } + let parsed_modes : Alloc.Const.Option.t = + { areality = parsed_modifiers.locality; + linearity = parsed_modifiers.linearity; + uniqueness = parsed_modifiers.uniqueness; + portability = parsed_modifiers.portability; + contention = parsed_modifiers.contention; + yielding = parsed_modifiers.yielding + } in - { layout = base.layout; mod_bounds; with_bounds = No_with_bounds } + { layout = base.layout; + modes_upper_bounds = + Alloc.Const.meet base.modes_upper_bounds + (Alloc.Const.Option.value ~default:Alloc.Const.max parsed_modes); + nullability_upper_bound = + Nullability.meet base.nullability_upper_bound + (Option.value ~default:Nullability.max parsed_modifiers.nullability); + externality_upper_bound = + Externality.meet base.externality_upper_bound + (Option.value ~default:Externality.max parsed_modifiers.externality) + } | Product ts -> let jkinds = List.map (of_user_written_annotation_unchecked_level context) ts in jkind_of_product_annotations jkinds - | With (base, type_, modalities) -> ( - let base = of_user_written_annotation_unchecked_level context base in - match context with - | Right_jkind _ -> raise ~loc:type_.ptyp_loc With_on_right - | Left_jkind (transl_type, _) -> - let type_ = transl_type type_ in - let modality = - Typemode.transl_modalities ~maturity:Stable Immutable [] modalities - in - { layout = base.layout; - mod_bounds = base.mod_bounds; - with_bounds = - With_bounds.add_modality ~modality - ~relevant_for_nullability:`Irrelevant ~type_expr:type_ - base.with_bounds - }) - | Default | Kind_of _ -> raise ~loc:jkind.pjkind_loc Unimplemented_syntax + | Default | With _ | Kind_of _ -> + raise ~loc:jkind.pjkind_loc Unimplemented_syntax (* The [annotation_context] parameter can be used to allow annotations / kinds in different contexts to be enabled with different extension settings. @@ -1308,10 +805,10 @@ module Const = struct parameter might effectively be unused. *) (* CR layouts: When everything is stable, remove this function. *) - let get_required_layouts_level (_context : 'd Context_with_transl.t) + let get_required_layouts_level (_context : 'd History.annotation_context) (jkind : 'd t) = let rec scan_layout (l : Layout.Const.t) : Language_extension.maturity = - match l, jkind.mod_bounds.nullability with + match l, jkind.nullability_upper_bound with | (Base (Float64 | Float32 | Word | Bits32 | Bits64 | Vec128) | Any), _ | Base Value, Non_null | Base Value, Maybe_null -> @@ -1335,7 +832,7 @@ module Const = struct end module Desc = struct - type 'd t = (Sort.Flat.t Layout.t, 'd) layout_and_axes + type 'd t = (Sort.Flat.t Layout.t, 'd) Layout_and_axes.t let get_const t = Layout_and_axes.map_option Layout.get_flat_const t @@ -1344,7 +841,8 @@ module Desc = struct algorithm. *) let format ppf t = let open Format in - let rec format_desc ~nested ppf (desc : _ t) = + let rec format_desc ~nested ppf + (desc : (Sort.Flat.t Layout.t, _) Layout_and_axes.t) = match desc.layout with | Sort (Var n) -> fprintf ppf "'s%d" (Sort.Var.get_print_number n) (* Analyze a product before calling [get_const]: the machinery in @@ -1362,283 +860,62 @@ module Desc = struct end module Jkind_desc = struct + open Jkind_types.Layout_and_axes + let of_const t = Layout_and_axes.map Layout.of_const t let add_nullability_crossing t = - { t with mod_bounds = { t.mod_bounds with nullability = Nullability.min } } - - let unsafely_set_mod_bounds t ~from = - { t with mod_bounds = from.mod_bounds; with_bounds = No_with_bounds } - - let add_with_bounds ~relevant_for_nullability ~type_expr ~modality t = - match Types.get_desc type_expr with - | Tarrow (_, _, _, _) -> - (* Optimization: all arrow types have the same (with-bound-free) jkind, so we can just - eagerly do a join on the mod-bounds here rather than having to add them to our with - bounds only to be normalized away later. *) - { t with mod_bounds = Mod_bounds.join t.mod_bounds Mod_bounds.for_arrow } - | _ -> - { t with - with_bounds = - With_bounds.add_modality ~relevant_for_nullability ~type_expr - ~modality t.with_bounds - } + { t with nullability_upper_bound = Nullability.min } - let max = of_const Const.max - - let equate_or_equal ~allow_mutation t1 t2 = - Layout_and_axes.equal (Layout.equate_or_equal ~allow_mutation) t1 t2 - - type 'd normalize_mode = - | Require_best : ('l * disallowed) normalize_mode - | Ignore_best : ('l * 'r) normalize_mode - - module Fuel_status = struct - type t = - | Ran_out_of_fuel - | Sufficient_fuel + let unsafely_set_upper_bounds t ~from = + { t with modes_upper_bounds = from.modes_upper_bounds } - let both a b = - match a, b with - | Ran_out_of_fuel, _ | _, Ran_out_of_fuel -> Ran_out_of_fuel - | Sufficient_fuel, Sufficient_fuel -> Sufficient_fuel - end - - (* Normalize the jkind. If mode is Require_best, only jkinds that are best will be used. - If mode is Ignore_best, then Not_best will be used. Since Ignore_best can use - Not_best, the result is guaranteed to have no with-bounds. - - At each step during normalization, before expanding a type, [map_type_info] is used - to map the type-info for the type being expanded. The type can be prevented from - being expanded by mapping the relevant axes to an empty set. [map_type_info] is used - by sub_jkind_l to remove irrelevant axes. *) - let map_normalize (type l1 r1 l2 r2) ~jkind_of_type - ~(mode : (l2 * r2) normalize_mode) - ~(map_type_info : - type_expr -> With_bounds_type_info.t -> With_bounds_type_info.t) - (t : (l1 * r1) jkind_desc) : (l2 * r2) jkind_desc * Fuel_status.t = - (* Sadly, it seems hard (impossible?) to be sure to expand all types - here without using a fuel parameter to stop infinite regress. Here - is a nasty case: - - {[ - type zero - type 'n succ - - type 'n loopy = Mk of 'n succ loopy list [@@unboxed] - ]} - - First off: this type *is* inhabited, because of the [list] intervening - type (which can be empty). It's also inhabited by various circular - structures. - - But what's the jkind of ['n loopy]? It must be the jkind of - ['n succ loopy list], which is [immutable_data with 'n succ loopy]. - In order to see if we shouldn't mode-cross, we have to expand the - ['n succ loopy] in the jkind, but expanding that just yields the need - to expand ['n succ succ loopy], and around we go. - - It seems hard to avoid this problem. And so we use fuel. Yet we want - both a small amount of fuel (a type like [type t = K of (t * t) list] - gets big very quickly) and a lot of fuel (we can imagine using a unit - of fuel for each level of a deeply nested record structure). The - compromise is to track fuel per type head, where a type head is either - the path to a type constructor (like [t] or [loopy]) or a tuple. - (We need to include tuples because of the possibility of recursive - types and the fact that tuples track their element types in their - jkind's with_bounds.) - - The initial fuel per type head is 10, as it seems hard to imagine that - we're going to make meaningful progress if we've seen the same type - head 10 times in one line of recursive descent. (This "one line of - recursive descent" bit is why we recur separately down one type before - iterating down the list.) - *) - (* CR reisenberg: document seen_args *) - let module Loop_control = struct - type t = - { tuple_fuel : int; - constr : (int * type_expr list) Path.Map.t; - fuel_status : Fuel_status.t - } - - type result = - | Stop of t (* give up, returning [max] *) - | Skip (* skip reducing this type, but otherwise continue *) - | Continue of t (* continue, with a new [t] *) - - let initial_fuel_per_ty = 2 + let max = of_const Const.max - let starting = - { tuple_fuel = initial_fuel_per_ty; - constr = Path.Map.empty; - fuel_status = Sufficient_fuel - } + let equate_or_equal ~allow_mutation + { layout = lay1; + modes_upper_bounds = modes1; + externality_upper_bound = ext1; + nullability_upper_bound = null1 + } + { layout = lay2; + modes_upper_bounds = modes2; + externality_upper_bound = ext2; + nullability_upper_bound = null2 + } = + Layout.equate_or_equal ~allow_mutation lay1 lay2 + && Modes.equal modes1 modes2 + && Externality.equal ext1 ext2 + && Nullability.equal null1 null2 - let rec check ({ tuple_fuel; constr; fuel_status = _ } as t) ty = - match Types.get_desc ty with - | Tpoly (ty, _) -> check t ty - | Ttuple _ -> - if tuple_fuel > 0 - then Continue { t with tuple_fuel = tuple_fuel - 1 } - else Stop { t with fuel_status = Ran_out_of_fuel } - | Tconstr (p, args, _) -> ( - match Path.Map.find_opt p constr with - | None -> - Continue - { t with - constr = Path.Map.add p (initial_fuel_per_ty, args) constr - } - | Some (fuel, seen_args) -> - if List.for_all2 - (fun ty1 ty2 -> - TransientTypeOps.equal (Transient_expr.repr ty1) - (Transient_expr.repr ty2)) - seen_args args - then Skip - else if fuel > 0 - then - Continue - { t with constr = Path.Map.add p (fuel - 1, args) constr } - else Stop { t with fuel_status = Ran_out_of_fuel }) - | Tvar _ | Tarrow _ | Tunboxed_tuple _ | Tobject _ | Tfield _ | Tnil - | Tvariant _ | Tunivar _ | Tpackage _ -> - (* these cases either cannot be infinitely recursive or their jkinds - do not have with_bounds *) - (* CR layouts v2.8: Some of these might get with-bounds someday. We - should double-check before we're done that they haven't. *) - Continue t - | Tlink _ | Tsubst _ -> Misc.fatal_error "Tlink or Tsubst in normalize" - end in - let rec loop (ctl : Loop_control.t) bounds_so_far : - (type_expr * With_bounds_type_info.t) list -> - Mod_bounds.t * (l2 * r2) with_bounds * Fuel_status.t = function - (* early cutoff *) - | _ - when Sub_result.is_le - (Mod_bounds.less_or_equal Mod_bounds.max bounds_so_far) -> - (* CR layouts v2.8: we can do better by early-terminating on a per-axis basis *) - bounds_so_far, No_with_bounds, Sufficient_fuel - | [] -> bounds_so_far, No_with_bounds, ctl.fuel_status - | (ty, ti) :: bs -> ( - (* Map the type's info before expanding the type *) - let ti = map_type_info ty ti in - (* We don't care about axes that are already max because they can't get any - better or worse. By ignoring them, we may be able to terminate early *) - let ti : With_bounds_type_info.t = - { relevant_axes = - Axis_set.diff ti.relevant_axes - (Mod_bounds.get_max_axes bounds_so_far) - } - in - match Axis_set.is_empty ti.relevant_axes with - | true -> - (* If [ty] is not relevant to any axes, then we can safely drop it and thereby - avoid doing the work of expanding it. *) - loop ctl bounds_so_far bs - | false -> ( - let join_bounds b1 b2 ~relevant_axes = - Mod_bounds.Map2.f - { f = - (fun (type a) ~(axis : a Axis.t) b1 b2 -> - if Axis_set.mem relevant_axes axis - then - let (module Bound_ops) = Axis.get axis in - Bound_ops.join b1 b2 - else b1) - } - b1 b2 - in - let found_jkind_for_ty new_ctl b_upper_bounds b_with_bounds quality : - Mod_bounds.t * (l2 * r2) with_bounds * Fuel_status.t = - match quality, mode with - | Best, _ | Not_best, Ignore_best -> - let bounds_so_far = - join_bounds bounds_so_far b_upper_bounds - ~relevant_axes:ti.relevant_axes - in - (* Descend into the with-bounds of each of our with-bounds types' - with-bounds *) - let bounds_so_far, nested_with_bounds, fuel_result1 = - loop new_ctl bounds_so_far (With_bounds.to_list b_with_bounds) - in - (* CR layouts v2.8: we use [new_ctl] here, not [ctl], to avoid big quadratic - stack growth for very widely recursive types. This is sad, since it - prevents us from mode crossing a record with 20 lists with different - payloads, but less sad than a stack overflow of the compiler during type - declaration checking. - - Ideally, this whole problem goes away once we rethink fuel. - *) - let bounds, bs', fuel_result2 = loop new_ctl bounds_so_far bs in - ( bounds, - With_bounds.join nested_with_bounds bs', - Fuel_status.both fuel_result1 fuel_result2 ) - | Not_best, Require_best -> - let bounds_so_far, bs', fuel_result = - loop new_ctl bounds_so_far bs - in - bounds_so_far, With_bounds.add ty ti bs', fuel_result - in - match Loop_control.check ctl ty with - | Stop ctl_after_stop -> - (* out of fuel, so assume [ty] has the worst possible bounds. *) - found_jkind_for_ty ctl_after_stop Mod_bounds.max No_with_bounds - Not_best - | Skip -> loop ctl bounds_so_far bs (* skip [b] *) - | Continue ctl_after_unpacking_b -> ( - match jkind_of_type ty with - | Some b_jkind -> - found_jkind_for_ty ctl_after_unpacking_b b_jkind.jkind.mod_bounds - b_jkind.jkind.with_bounds b_jkind.quality - | None -> - (* kind of b is not principally known, so we treat it as having the max - bound (only along the axes we care about for this type!) *) - found_jkind_for_ty ctl_after_unpacking_b Mod_bounds.max - No_with_bounds Not_best))) - in - let mod_bounds, with_bounds, fuel_status = - loop Loop_control.starting t.mod_bounds - (With_bounds.to_list t.with_bounds) - in - { t with mod_bounds; with_bounds }, fuel_status - - let normalize ~jkind_of_type ~mode t = - map_normalize ~jkind_of_type ~mode ~map_type_info:(fun _ ti -> ti) t - - let sub (type l r) ~type_equal:_ ~jkind_of_type - (sub : (allowed * r) jkind_desc) - ({ layout = lay2; mod_bounds = bounds2; with_bounds = No_with_bounds } : - (l * allowed) jkind_desc) = - let ( ({ layout = lay1; mod_bounds = bounds1; with_bounds = No_with_bounds } : - Allowance.right_only jkind_desc), - _ ) = - normalize ~mode:Ignore_best ~jkind_of_type sub - in - let layout = Layout.sub lay1 lay2 in - let bounds = Mod_bounds.less_or_equal bounds1 bounds2 in - Sub_result.combine layout bounds + let sub ?allow_any_crossing t1 t2 = + Layout_and_axes.sub ?allow_any_crossing Layout.sub t1 t2 let intersection - { layout = lay1; mod_bounds = mod_bounds1; with_bounds = with_bounds1 } - { layout = lay2; mod_bounds = mod_bounds2; with_bounds = with_bounds2 } = - match Layout.intersection lay1 lay2 with - | None -> None - | Some layout -> - Some - { layout; - mod_bounds = Mod_bounds.meet mod_bounds1 mod_bounds2; - with_bounds = With_bounds.meet with_bounds1 with_bounds2 - } - - let map_type_expr f t = Layout_and_axes.map_type_expr f t + { layout = lay1; + modes_upper_bounds = modes1; + externality_upper_bound = ext1; + nullability_upper_bound = null1 + } + { layout = lay2; + modes_upper_bounds = modes2; + externality_upper_bound = ext2; + nullability_upper_bound = null2 + } = + Option.bind (Layout.intersection lay1 lay2) (fun layout -> + Some + { layout; + modes_upper_bounds = Modes.meet modes1 modes2; + externality_upper_bound = Externality.meet ext1 ext2; + nullability_upper_bound = Nullability.meet null1 null2 + }) let of_new_sort_var nullability_upper_bound = let layout, sort = Layout.of_new_sort_var () in ( { layout; - mod_bounds = - { Mod_bounds.max with nullability = nullability_upper_bound }; - with_bounds = No_with_bounds + modes_upper_bounds = Modes.max; + externality_upper_bound = Externality.max; + nullability_upper_bound }, sort ) @@ -1649,55 +926,54 @@ module Jkind_desc = struct let value = of_const Const.Builtin.value.jkind - let immutable_data = of_const Const.Builtin.immutable_data.jkind - - let mutable_data = of_const Const.Builtin.mutable_data.jkind - let void = of_const Const.Builtin.void.jkind let immediate = of_const Const.Builtin.immediate.jkind end - let product ~jkind_of_first_type ~jkind_of_type tys_modalities layouts = - (* CR layouts v2.8: We can probably drop this special case once we - have proper subsumption. The general algorithm gets the right - jkind, but the subsumption check fails because it can't recognize - that the one it comes up with is right. *) - match layouts with - | [_] -> (jkind_of_first_type ()).jkind - | _ -> - if !Clflags.infer_with_bounds - then - let layout = Layout.product layouts in - let mod_bounds = Mod_bounds.min in - let with_bounds = - List.fold_right - (fun (type_expr, modality) bounds -> - With_bounds.add_modality ~relevant_for_nullability:`Relevant - ~type_expr ~modality bounds) - tys_modalities No_with_bounds - in - { layout; mod_bounds; with_bounds } - else - let folder (layouts, bounds) (ty, _) = - let { jkind = { layout; mod_bounds; with_bounds = _ }; - annotation = _; - history = _; - has_warned = _; - quality = _ - } = - jkind_of_type ty - in - layout :: layouts, Mod_bounds.join bounds mod_bounds - in - let layouts, mod_bounds = - List.fold_left folder ([], Mod_bounds.min) tys_modalities - in - let layouts = List.rev layouts in - { layout = Layout.Product layouts; - mod_bounds; - with_bounds = No_with_bounds - } + let product jkinds = + (* CR layouts v7.1: Here we throw away the history of the component + jkinds. This is not great. We should, as part of a broader pass on error + messages around product kinds, zip them up into some kind of product + history. *) + let folder (layouts, annotations, mode_ub, ext_ub, null_ub) + { jkind = + { layout; + modes_upper_bounds; + externality_upper_bound; + nullability_upper_bound + }; + annotation; + history = _; + has_warned = _ + } = + ( layout :: layouts, + annotation :: annotations, + Modes.join mode_ub modes_upper_bounds, + Externality.join ext_ub externality_upper_bound, + Nullability.join null_ub nullability_upper_bound ) + in + let layouts, annotations, mode_ub, ext_ub, null_ub = + List.fold_left folder + ([], [], Modes.min, Externality.min, Nullability.min) + jkinds + in + let layouts = List.rev layouts in + let annotations = List.rev annotations in + let annotations = Misc.Stdlib.Monad.Option.all annotations in + let annotation = + Option.map + (fun annotations -> + Parsetree. + { pjkind_loc = Location.none; pjkind_desc = Product annotations }) + annotations + in + ( { layout : _ Layout.t = Product layouts; + modes_upper_bounds = mode_ub; + externality_upper_bound = ext_ub; + nullability_upper_bound = null_ub + }, + annotation ) let get t = Layout_and_axes.map Layout.get t @@ -1705,7 +981,7 @@ module Jkind_desc = struct module Debug_printers = struct let t ppf t = - Layout_and_axes.debug_print + Layout_and_axes.format (Layout.Debug_printers.t Sort.Debug_printers.t) ppf t end @@ -1718,27 +994,19 @@ end let mk_annot name = Some Parsetree.{ pjkind_loc = Location.none; pjkind_desc = Abbreviation name } -let mark_best (type l r) (t : (l * r) Types.jkind) = - { (disallow_right t) with quality = Best } - -let is_best t = match t.quality with Best -> true | Not_best -> false - module Builtin = struct let any_dummy_jkind = { jkind = Jkind_desc.max; annotation = None; (* this should never get printed: it's a dummy *) history = Creation (Any_creation Dummy_jkind); - has_warned = false; - quality = Not_best + has_warned = false } (* CR layouts: Should we be doing more memoization here? *) let any ~(why : History.any_creation_reason) = match why with - | Dummy_jkind -> - any_dummy_jkind (* share this one common case *) |> allow_left - |> allow_right + | Dummy_jkind -> any_dummy_jkind (* share this one common case *) | _ -> fresh_jkind Jkind_desc.Builtin.any ~annotation:(mk_annot "any") ~why:(Any_creation why) @@ -1747,18 +1015,16 @@ module Builtin = struct { jkind = Jkind_desc.Builtin.value_or_null; annotation = mk_annot "value"; history = Creation (Value_or_null_creation V1_safety_check); - has_warned = false; - quality = Not_best + has_warned = false } let void ~why = fresh_jkind Jkind_desc.Builtin.void ~annotation:(mk_annot "void") ~why:(Void_creation why) - |> mark_best let value_or_null ~why = match (why : History.value_or_null_creation_reason) with - | V1_safety_check -> value_v1_safety_check |> allow_left |> allow_right + | V1_safety_check -> value_v1_safety_check | _ -> fresh_jkind Jkind_desc.Builtin.value_or_null ~annotation:(mk_annot "value_or_null") ~why:(Value_or_null_creation why) @@ -1767,71 +1033,27 @@ module Builtin = struct fresh_jkind Jkind_desc.Builtin.value ~annotation:(mk_annot "value") ~why:(Value_creation why) - let immutable_data ~(why : History.value_creation_reason) = - fresh_jkind Jkind_desc.Builtin.immutable_data - ~annotation:(mk_annot "immutable_data") - ~why:(Value_creation why) - - let mutable_data ~(why : History.value_creation_reason) = - fresh_jkind Jkind_desc.Builtin.mutable_data - ~annotation:(mk_annot "mutable_data") ~why:(Value_creation why) - let immediate ~why = fresh_jkind Jkind_desc.Builtin.immediate ~annotation:(mk_annot "immediate") ~why:(Immediate_creation why) - |> mark_best - let product ~jkind_of_first_type ~jkind_of_type ~why tys_modalities layouts = - let desc = - Jkind_desc.product ~jkind_of_first_type ~jkind_of_type tys_modalities - layouts - in - fresh_jkind_poly desc ~annotation:None ~why:(Product_creation why) - (* [mark_best] is correct here because the with-bounds of a product jkind include all - the components of the product. Accordingly, looking through the product, by one - step, never loses any information. *) - |> mark_best - - let product_of_sorts ~why arity = - let layout = - Layout.product - (List.init arity (fun _ -> fst (Layout.of_new_sort_var ()))) - in - let desc : _ jkind_desc = - { layout; mod_bounds = Mod_bounds.max; with_bounds = No_with_bounds } - in - fresh_jkind_poly desc ~annotation:None ~why:(Product_creation why) - (* We do not [mark_best] here because the resulting jkind is used (only) in the middle of - type-checking mutually recursive type declarations. See Note [Default jkind in - transl_declaration] for more commentary on why we don't want [Best] jkinds there. *) + let product ~why ts = + match ts with + | [] -> Misc.fatal_error "Jkind.Builtin.product: empty product" + | [t] -> t + | ts -> + let desc, annotation = Jkind_desc.product ts in + fresh_jkind desc ~annotation ~why:(Product_creation why) end let add_nullability_crossing t = { t with jkind = Jkind_desc.add_nullability_crossing t.jkind } -let unsafely_set_mod_bounds (type l r) ~(from : (l * r) jkind) t = - match from.jkind.with_bounds with - | With_bounds _ -> Error () - | No_with_bounds -> - Ok - { t with - jkind = Jkind_desc.unsafely_set_mod_bounds t.jkind ~from:from.jkind - } - -let add_with_bounds ~modality ~type_expr t = +let unsafely_set_upper_bounds ~from t = { t with - jkind = - Jkind_desc.add_with_bounds - (* We only care about types in fields of unboxed products for the nullability of - the overall kind *) - ~relevant_for_nullability:`Irrelevant ~type_expr ~modality t.jkind + jkind = Jkind_desc.unsafely_set_upper_bounds t.jkind ~from:from.jkind } -let has_with_bounds t = - match t.jkind.with_bounds with - | No_with_bounds -> false - | With_bounds _ -> true - (******************************) (* construction *) @@ -1847,58 +1069,55 @@ let of_new_legacy_sort_var ~why = let of_new_legacy_sort ~why = fst (of_new_legacy_sort_var ~why) -let of_const (type l r) ~annotation ~why ~(quality : (l * r) jkind_quality) - (c : (l * r) Const.t) = - { jkind = Layout_and_axes.map Layout.of_const c; +let of_const ~annotation ~why + ({ layout; + modes_upper_bounds; + externality_upper_bound; + nullability_upper_bound + } : + 'd Const.t) = + { jkind = + { layout = Layout.of_const layout; + modes_upper_bounds; + externality_upper_bound; + nullability_upper_bound + }; annotation; history = Creation why; - has_warned = false; - quality + has_warned = false } let of_builtin ~why Const.Builtin.{ jkind; name } = - jkind |> Layout_and_axes.allow_left |> Layout_and_axes.disallow_right - |> of_const ~annotation:(mk_annot name) - ~why - (* The [Best] is OK here because this function is used only in Predef. *) - ~quality:Best + of_const ~annotation:(mk_annot name) ~why jkind let of_annotated_const ~context ~annotation ~const ~const_loc = - let context = Context_with_transl.get_context context in - of_const ~annotation - ~why:(Annotated (context, const_loc)) - const ~quality:Not_best + of_const ~annotation ~why:(Annotated (context, const_loc)) const -let of_annotation_lr ~context (annot : Parsetree.jkind_annotation) = +let of_annotation ~context (annot : Parsetree.jkind_annotation) = let const = Const.of_user_written_annotation ~context annot in of_annotated_const ~annotation:(Some annot) ~const ~const_loc:annot.pjkind_loc ~context -let of_annotation ~context annot = - of_annotation_lr ~context:(Right_jkind context) annot - let of_annotation_option_default ~default ~context = function | None -> default | Some annot -> of_annotation ~context annot let of_attribute ~context (attribute : Builtin_attributes.jkind_attribute Location.loc) = - let ({ jkind = const; name } : Const.Builtin.t) = + let ({ jkind = const; name } : _ Const.Builtin.t) = Const.Builtin.of_attribute attribute.txt in of_annotated_const ~context ~annotation:(mk_annot name) ~const ~const_loc:attribute.loc -let of_type_decl ~context ~transl_type (decl : Parsetree.type_declaration) = - let context = Context_with_transl.Left_jkind (transl_type, context) in +let of_type_decl ~context (decl : Parsetree.type_declaration) = let jkind_of_annotation = decl.ptype_jkind_annotation - |> Option.map (fun annot -> of_annotation_lr ~context annot, annot) + |> Option.map (fun annot -> of_annotation ~context annot, annot) in let jkind_of_attribute = Builtin_attributes.jkind decl.ptype_attributes - |> Option.map (fun attr -> - (of_attribute ~context attr |> disallow_right, None), attr) + |> Option.map (fun attr -> (of_attribute ~context attr, None), attr) in match jkind_of_annotation, jkind_of_attribute with | None, None -> None @@ -1908,155 +1127,54 @@ let of_type_decl ~context ~transl_type (decl : Parsetree.type_declaration) = raise ~loc:decl.ptype_loc (Multiple_jkinds { from_annotation; from_attribute }) -let of_type_decl_default ~context ~transl_type ~default - (decl : Parsetree.type_declaration) = - match of_type_decl ~context ~transl_type decl with - | Some (t, _) -> t - | None -> default +let of_type_decl_default ~context ~default (decl : Parsetree.type_declaration) = + match of_type_decl ~context decl with Some (t, _) -> t | None -> default -let has_mutable_label lbls = - List.exists - (fun (lbl : Types.label_declaration) -> - match lbl.ld_mutable with Immutable -> false | Mutable _ -> true) - lbls - -let all_void_labels lbls = - List.for_all - (fun (lbl : Types.label_declaration) -> Sort.Const.(equal void lbl.ld_sort)) - lbls - -let add_labels_as_with_bounds lbls jkind = - List.fold_right - (fun (lbl : Types.label_declaration) -> - add_with_bounds ~type_expr:lbl.ld_type ~modality:lbl.ld_modalities) - lbls jkind - -let for_boxed_record lbls = - if all_void_labels lbls +let for_boxed_record ~all_void = + if all_void then Builtin.immediate ~why:Empty_record - else if !Clflags.infer_with_bounds - then - let is_mutable = has_mutable_label lbls in - let base = - (if is_mutable then Builtin.mutable_data else Builtin.immutable_data) - ~why:Boxed_record - |> mark_best - in - add_labels_as_with_bounds lbls base else Builtin.value ~why:Boxed_record -let for_unboxed_record ~jkind_of_first_type ~jkind_of_type lbls = - let open Types in - let tys_modalities = - List.map (fun lbl -> lbl.ld_type, lbl.ld_modalities) lbls - in - let layouts = - List.map - (fun lbl -> lbl.ld_sort |> Layout.Const.of_sort_const |> Layout.of_const) - lbls - in - Builtin.product ~jkind_of_first_type ~jkind_of_type ~why:Unboxed_record - tys_modalities layouts - -(* CR layouts v2.8: This should take modalities into account. *) -let for_boxed_variant cstrs = - let open Types in - if List.for_all - (fun cstr -> - match cstr.cd_args with - | Cstr_tuple args -> - List.for_all (fun arg -> Sort.Const.(equal void arg.ca_sort)) args - | Cstr_record lbls -> all_void_labels lbls) - cstrs +let for_boxed_variant ~all_voids = + if all_voids then Builtin.immediate ~why:Enumeration - else if !Clflags.infer_with_bounds - then - let is_mutable = - List.exists - (fun cstr -> - match cstr.cd_args with - | Cstr_tuple _ -> false - | Cstr_record lbls -> has_mutable_label lbls) - cstrs - in - let has_gadt_constructor = - List.exists - (fun cstr -> match cstr.cd_res with None -> false | Some _ -> true) - cstrs - in - if has_gadt_constructor - (* CR layouts v2.8: This is sad, but I don't know how to account for - existentials in the with_bounds. See doc named "Existential - with_bounds". *) - then Builtin.value ~why:Boxed_variant - else - let base = - (if is_mutable then Builtin.mutable_data else Builtin.immutable_data) - ~why:Boxed_variant - |> mark_best - in - let add_cstr_args cstr jkind = - match cstr.cd_args with - | Cstr_tuple args -> - List.fold_right - (fun arg -> - add_with_bounds ~modality:arg.ca_modalities ~type_expr:arg.ca_type) - args jkind - | Cstr_record lbls -> add_labels_as_with_bounds lbls jkind - in - List.fold_right add_cstr_args cstrs base else Builtin.value ~why:Boxed_variant let for_arrow = fresh_jkind { layout = Sort (Base Value); - mod_bounds = Mod_bounds.for_arrow; - with_bounds = No_with_bounds + modes_upper_bounds = + { linearity = Linearity.Const.max; + areality = Locality.Const.max; + uniqueness = Uniqueness.Const.min; + portability = Portability.Const.max; + contention = Contention.Const.min; + yielding = Yielding.Const.max + }; + externality_upper_bound = Externality.max; + nullability_upper_bound = Non_null } ~annotation:None ~why:(Value_creation Arrow) - |> mark_best let for_object = - (* The crossing of objects are based on the fact that they are - produced/defined/allocated at legacy, which applies to only the - comonadic axes. *) - let ({ linearity; areality = locality; portability; yielding } - : Mode.Alloc.Comonadic.Const.t) = - Alloc.Comonadic.Const.legacy - in - let ({ contention; uniqueness } : Mode.Alloc.Monadic.Const_op.t) = - Alloc.Monadic.Const_op.max - in fresh_jkind { layout = Sort (Base Value); - mod_bounds = - Mod_bounds.simple ~linearity ~locality ~uniqueness ~portability - ~contention ~yielding ~externality:Externality.max - ~nullability:Non_null; - with_bounds = No_with_bounds + modes_upper_bounds = + (* The crossing of objects are based on the fact that they are + produced/defined/allocated at legacy, which applies to only the + comonadic axes. *) + Alloc.Const.merge + { comonadic = Alloc.Comonadic.Const.legacy; + monadic = Alloc.Monadic.Const.max + }; + externality_upper_bound = Externality.max; + nullability_upper_bound = Non_null } ~annotation:None ~why:(Value_creation Object) (******************************) (* elimination and defaulting *) -type normalize_mode = - | Require_best - | Ignore_best - -let[@inline] normalize ~mode ~jkind_of_type t = - let mode : _ Jkind_desc.normalize_mode = - match mode with Require_best -> Require_best | Ignore_best -> Ignore_best - in - let jkind, fuel_result = Jkind_desc.normalize ~jkind_of_type ~mode t.jkind in - { t with - jkind; - quality = - (match t.quality, fuel_result with - | Not_best, _ | _, Ran_out_of_fuel -> Not_best - | Best, Sufficient_fuel -> Best) - } - let get_layout_defaulting_to_value { jkind = { layout; _ }; _ } = Layout.default_to_value_and_get layout @@ -2079,52 +1197,12 @@ let sort_of_jkind (t : jkind_l) : sort = let get_layout jk : Layout.Const.t option = Layout.get_const jk.jkind.layout -let extract_layout jk = jk.jkind.layout - -let get_modal_upper_bounds (type l r) ~jkind_of_type (jk : (l * r) jkind) : - Alloc.Comonadic.Const.t = - let ( ({ layout = _; mod_bounds; with_bounds = No_with_bounds } : - Allowance.right_only jkind_desc), - _ ) = - Jkind_desc.normalize ~mode:Ignore_best ~jkind_of_type jk.jkind - in - let get axis = Mod_bounds.get mod_bounds ~axis in - { areality = get (Modal (Comonadic Areality)); - linearity = get (Modal (Comonadic Linearity)); - portability = get (Modal (Comonadic Portability)); - yielding = get (Modal (Comonadic Yielding)) - } - -let get_modal_lower_bounds (type l r) ~jkind_of_type (jk : (l * r) jkind) : - Alloc.Monadic.Const.t = - let ( ({ layout = _; mod_bounds; with_bounds = No_with_bounds } : - Allowance.right_only jkind_desc), - _ ) = - Jkind_desc.normalize ~mode:Ignore_best ~jkind_of_type jk.jkind - in - let get axis = Mod_bounds.get mod_bounds ~axis in - { uniqueness = get (Modal (Monadic Uniqueness)); - contention = get (Modal (Monadic Contention)) - } +let get_modal_upper_bounds jk = jk.jkind.modes_upper_bounds -let get_externality_upper_bound ~jkind_of_type jk = - let ( ({ layout = _; mod_bounds; with_bounds = No_with_bounds } : - Allowance.right_only jkind_desc), - _ ) = - Jkind_desc.normalize ~mode:Ignore_best ~jkind_of_type jk.jkind - in - Mod_bounds.get mod_bounds ~axis:(Nonmodal Externality) +let get_externality_upper_bound jk = jk.jkind.externality_upper_bound let set_externality_upper_bound jk externality_upper_bound = - { jk with - jkind = - { jk.jkind with - mod_bounds = - { jk.jkind.mod_bounds with externality = externality_upper_bound } - } - } - -let set_layout jk layout = { jk with jkind = { jk.jkind with layout } } + { jk with jkind = { jk.jkind with externality_upper_bound } } let get_annotation jk = jk.annotation @@ -2507,13 +1585,10 @@ let format_history ~intro ppf t = module Violation = struct open Format - module Sub_failure_reason = Sub_failure_reason type violation = - | Not_a_subjkind : - (allowed * 'r1) jkind * ('l * 'r2) jkind * Sub_failure_reason.t list - -> violation - | No_intersection : 'd jkind * ('l * allowed) jkind -> violation + | Not_a_subjkind : (allowed * 'r) t * ('l * allowed) t -> violation + | No_intersection : 'd t * ('l * allowed) t -> violation type nonrec t = { violation : violation; @@ -2534,89 +1609,11 @@ module Violation = struct | Mode | Layout - let report_reason ppf violation = - (* Print out per-axis information about why the error occurred. This only happens - when modalities are printed because the errors are simple enough when there are no - modalities that it makes the error unnecessarily noisy. - *) - match violation with - | Not_a_subjkind (sub, super, reasons) -> ( - if should_print_with_bounds () - then - let disagreeing_axes = - (* Collect all the axes that disagree into a set. If none disagree, then it - is [None] *) - List.fold_left - (fun disagreeing_axes_so_far reason -> - match - (reason : Sub_failure_reason.t), disagreeing_axes_so_far - with - | Axis_disagreement (Pack axis), Some disagreeing_axes_so_far -> - Some (Axis_set.add disagreeing_axes_so_far axis) - | Axis_disagreement (Pack axis), None -> - Some (Axis_set.singleton axis) - | (Layout_disagreement | Constrain_ran_out_of_fuel), _ -> - disagreeing_axes_so_far) - None reasons - in - let has_modalities = - let jkind_has_modalities jkind = - List.exists - (fun (_, type_info) -> - let axes_ignored_by_modalities = - With_bounds.Type_info.axes_ignored_by_modalities - ~mod_bounds:jkind.jkind.mod_bounds ~type_info - in - not (Axis_set.is_empty axes_ignored_by_modalities)) - (With_bounds.to_list jkind.jkind.with_bounds) - in - jkind_has_modalities sub || jkind_has_modalities super - in - match disagreeing_axes, has_modalities with - | None, _ | _, false -> () - | Some disagreeing_axes, true -> - (* CR: @\n is discouraged by the documentation, but @;@; seems to emit one newline - and then one space rather than two newlines *) - fprintf ppf "@\n@\nThe first mode-crosses less than the second along:"; - Axis_set.to_list disagreeing_axes - |> List.iter (fun (Pack axis : Axis.packed) -> - let pp_bound ppf jkind = - let mod_bound = Mod_bounds.get ~axis jkind.mod_bounds in - let (module Axis_ops) = Axis.get axis in - let with_bounds = - match Axis_ops.(le max mod_bound) with - | true -> - (* If the mod_bound is max, then no with-bounds are relevant *) - [] - | false -> - With_bounds.to_list jkind.with_bounds - |> List.filter_map - (fun - (ty, ({ relevant_axes } : With_bounds_type_info.t)) - -> - match Axis_set.mem relevant_axes axis with - | true -> Some (!outcometree_of_type_scheme ty) - | false -> None) - in - let ojkind = - List.fold_left - (fun acc with_bound -> - Outcometree.Ojkind_const_with (acc, with_bound, [])) - (Outcometree.Ojkind_const_mod - (None, [Format.asprintf "%a" Axis_ops.print mod_bound])) - with_bounds - in - !Oprint.out_jkind_const ppf ojkind - in - fprintf ppf "@; @[%s:@ %a ≰@ %a@]" (Axis.name axis) - pp_bound sub.jkind pp_bound super.jkind)) - | No_intersection _ -> () - let report_general preamble pp_former former ppf t = let mismatch_type = match t.violation with - | Not_a_subjkind (k1, k2, _) -> - if Sub_result.is_le (Layout.sub k1.jkind.layout k2.jkind.layout) + | Not_a_subjkind (k1, k2) -> + if Misc.Le_result.is_le (Layout.sub k1.jkind.layout k2.jkind.layout) then Mode else Layout | No_intersection _ -> Layout @@ -2640,9 +1637,9 @@ module Violation = struct else dprintf "%s a sub%s of %a" verb layout_or_kind format_layout_or_kind k2 in - let Pack_jkind k1, Pack_jkind k2, fmt_k1, fmt_k2, missing_cmi_option = + let Pack k1, Pack k2, fmt_k1, fmt_k2, missing_cmi_option = match t with - | { violation = Not_a_subjkind (k1, k2, _); missing_cmi } -> ( + | { violation = Not_a_subjkind (k1, k2); missing_cmi } -> ( let missing_cmi = match missing_cmi with | None -> ( @@ -2654,21 +1651,21 @@ module Violation = struct in match missing_cmi with | None -> - ( Pack_jkind k1, - Pack_jkind k2, + ( Pack k1, + Pack k2, dprintf "%s %a" layout_or_kind format_layout_or_kind k1, subjkind_format "is not" k2, None ) | Some p -> - ( Pack_jkind k1, - Pack_jkind k2, + ( Pack k1, + Pack k2, dprintf "an unknown %s" layout_or_kind, subjkind_format "might not be" k2, Some p )) | { violation = No_intersection (k1, k2); missing_cmi } -> assert (Option.is_none missing_cmi); - ( Pack_jkind k1, - Pack_jkind k2, + ( Pack k1, + Pack k2, dprintf "%s %a" layout_or_kind format_layout_or_kind k1, dprintf "does not overlap with %a" format_layout_or_kind k2, None ) @@ -2699,8 +1696,7 @@ module Violation = struct else fprintf ppf "@[%s%a has %t,@ which %t.@]" preamble pp_former former fmt_k1 fmt_k2; - report_missing_cmi ppf missing_cmi_option; - report_reason ppf t.violation + report_missing_cmi ppf missing_cmi_option let pp_t ppf x = fprintf ppf "%t" x @@ -2716,14 +1712,15 @@ end (* relations *) let equate_or_equal ~allow_mutation - { jkind = jkind1; annotation = _; history = _; has_warned = _; quality = _ } - { jkind = jkind2; annotation = _; history = _; has_warned = _; quality = _ } - = + { jkind = jkind1; annotation = _; history = _; has_warned = _ } + { jkind = jkind2; annotation = _; history = _; has_warned = _ } = Jkind_desc.equate_or_equal ~allow_mutation jkind1 jkind2 (* CR layouts v2.8: Switch this back to ~allow_mutation:false *) let equal t1 t2 = equate_or_equal ~allow_mutation:true t1 t2 +let () = Types.set_jkind_equal equal + let equate t1 t2 = equate_or_equal ~allow_mutation:true t1 t2 (* Not all jkind history reasons are created equal. Some are more helpful than others. @@ -2738,8 +1735,7 @@ let score_reason = function | Creation (Concrete_creation _ | Concrete_legacy_creation _) -> -1 | _ -> 0 -let combine_histories ~type_equal ~jkind_of_type reason (Pack_jkind k1) - (Pack_jkind k2) = +let combine_histories reason (Pack k1) (Pack k2) = if flattened_histories then let choose_higher_scored_history history_a history_b = @@ -2748,9 +1744,9 @@ let combine_histories ~type_equal ~jkind_of_type reason (Pack_jkind k1) else history_b in let choose_subjkind_history k_a history_a k_b history_b = - match Jkind_desc.sub ~type_equal ~jkind_of_type k_a k_b with + match Jkind_desc.sub k_a k_b with | Less -> history_a - | Not_le _ -> + | Not_le -> (* CR layouts: this will be wrong if we ever have a non-trivial meet in the kind lattice -- which is now! So this is actually wrong. *) history_b @@ -2767,158 +1763,67 @@ let combine_histories ~type_equal ~jkind_of_type reason (Pack_jkind k1) else Interact { reason; - jkind1 = Pack_jkind_desc k1.jkind; + jkind1 = Pack k1.jkind; history1 = k1.history; - jkind2 = Pack_jkind_desc k2.jkind; + jkind2 = Pack k2.jkind; history2 = k2.history } let has_intersection t1 t2 = - (* Need to check only the layouts: all the axes have bottom elements. *) - Option.is_some (Layout.intersection t1.jkind.layout t2.jkind.layout) + Option.is_some (Jkind_desc.intersection t1.jkind t2.jkind) -let intersection_or_error ~type_equal ~jkind_of_type ~reason t1 t2 = +let intersection_or_error ~reason t1 t2 = match Jkind_desc.intersection t1.jkind t2.jkind with | None -> Error (Violation.of_ (No_intersection (t1, t2))) | Some jkind -> Ok { jkind; annotation = None; - history = - combine_histories ~type_equal ~jkind_of_type reason (Pack_jkind t1) - (Pack_jkind t2); - has_warned = t1.has_warned || t2.has_warned; - quality = - Not_best (* As required by the fact that this is a [jkind_r] *) + history = combine_histories reason (Pack t1) (Pack t2); + has_warned = t1.has_warned || t2.has_warned } -let round_up (type l r) ~jkind_of_type (t : (allowed * r) jkind) : - (l * allowed) jkind = - let normalized = - normalize ~mode:Ignore_best ~jkind_of_type (t |> disallow_right) - in - { t with - jkind = { normalized.jkind with with_bounds = No_with_bounds }; - quality = Not_best (* As required by the fact that this is a [jkind_r] *) - } +let intersect_l_l ~reason t1 t2 = + (* CR layouts v2.8: Do something cleverer here once we have more + expressive l-kinds. *) + intersection_or_error ~reason t1 (terrible_relax_l t2) -let map_type_expr f t = { t with jkind = Jkind_desc.map_type_expr f t.jkind } +let has_intersection_l_l t1 t2 = + (* CR layouts v2.8: Do something cleverer here once we have more + expressive l-kinds. *) + has_intersection (terrible_relax_l t1) (terrible_relax_l t2) (* this is hammered on; it must be fast! *) -let check_sub ~jkind_of_type sub super = - Jkind_desc.sub ~jkind_of_type sub.jkind super.jkind - -let sub_with_reason ~type_equal ~jkind_of_type sub super = - Sub_result.require_le (check_sub ~type_equal ~jkind_of_type sub super) +let check_sub ?allow_any_crossing sub super = + Jkind_desc.sub ?allow_any_crossing sub.jkind super.jkind -let sub ~type_equal ~jkind_of_type sub super = - Result.is_ok (sub_with_reason ~type_equal ~jkind_of_type sub super) +let sub sub super = Misc.Le_result.is_le (check_sub sub super) type sub_or_intersect = | Sub - | Disjoint of Violation.Sub_failure_reason.t Nonempty_list.t - | Has_intersection of Violation.Sub_failure_reason.t Nonempty_list.t - -let sub_or_intersect ~type_equal ~jkind_of_type t1 t2 = - match sub_with_reason ~type_equal ~jkind_of_type t1 t2 with - | Ok () -> Sub - | Error reason -> - if has_intersection t1 t2 then Has_intersection reason else Disjoint reason - -let sub_or_error ~type_equal ~jkind_of_type t1 t2 = - match sub_or_intersect ~type_equal ~jkind_of_type t1 t2 with + | Disjoint + | Has_intersection + +let sub_or_intersect t1 t2 = + if sub t1 t2 + then Sub + else if has_intersection t1 t2 + then Has_intersection + else Disjoint + +let sub_or_error t1 t2 = + match sub_or_intersect t1 t2 with | Sub -> Ok () - | Disjoint reason | Has_intersection reason -> - Error - (Violation.of_ (Not_a_subjkind (t1, t2, Nonempty_list.to_list reason))) - -let sub_jkind_l ~type_equal ~jkind_of_type ?(allow_any_crossing = false) sub - super = - (* This function implements the "SUB" judgement from kind-inference.md. *) - let open Misc.Stdlib.Monad.Result.Syntax in - let require_le sub_result = - Sub_result.require_le sub_result - |> Result.map_error (fun reasons -> - (* When we report an error, we want to show the best-normalized version of sub, but - the original super. When this check fails, it is usually the case that the super - was written by the user and the sub was inferred. Thus, we should display the - user-written jkind, but simplify the inferred one, since the inferred one is - probably overly complex. *) - (* CR layouts v2.8: It would be useful report to the user why this - violation occurred, specifically which axes the violation is along. *) - let best_sub = normalize ~mode:Require_best ~jkind_of_type sub in - Violation.of_ - (Not_a_subjkind (best_sub, super, Nonempty_list.to_list reasons))) - in - let* () = - (* Validate layouts *) - require_le (Layout.sub sub.jkind.layout super.jkind.layout) - in - match allow_any_crossing with - | true -> Ok () - | false -> - let best_super = - (* MB_EXPAND_R *) - normalize ~mode:Require_best ~jkind_of_type super - in - let right_bounds = - With_bounds.to_best_eff_map best_super.jkind.with_bounds - in - let axes_max_on_right = - (* If the upper_bound is max on the right, then that axis is irrelevant - the - left will always satisfy the right along that axis. This is an optimization, - not necessary for correctness *) - Mod_bounds.get_max_axes best_super.jkind.mod_bounds - in - let ( ({ layout = _; - mod_bounds = sub_upper_bounds; - with_bounds = No_with_bounds - } : - Allowance.right_only jkind_desc), - _ ) = - (* MB_EXPAND_L *) - (* Here we progressively expand types on the left. - - Every time we see a type [ty] on the left, we first look to see if [ty] occurs on the - right. If it does, then we can skip* [ty]. There is an * on skip because we can - actually only skip on a per-axis basis - if [ty] is relevant only along the - portability axis on the right, then [ty] is no longer relevant to portability on - the left, but it is still relevant to all other axes. So really, we subtract the - axes that are relevant to the right from the axes that are relevant to the left. - We can also skip [ty] on any axes that are max on the right since anything is - <= max. Hence, we can also subtract [axes_max_on_right]. - - After finding which axes [ty] is relevant along, we lookup [ty]'s jkind and join it - with the [mod_bounds] along the relevant axes. *) - (* [Jkind_desc.map_normalize] handles the stepping, jkind lookups, and joining. - [map_type_info] handles looking for [ty] on the right and removing irrelevant axes. *) - Jkind_desc.map_normalize sub.jkind ~jkind_of_type ~mode:Ignore_best - ~map_type_info:(fun ty { relevant_axes = left_relevant_axes } -> - let right_relevant_axes = - (* Look for [ty] on the right. There may be multiple occurrences of it on the - right; if so, we union together the relevant axes. *) - right_bounds |> With_bounds_types.to_seq - (* CR layouts v2.8: maybe it's worth memoizing using a best-effort type map? *) - |> Seq.fold_left - (fun acc (ty2, ti) -> - match type_equal ty ty2 with - | true -> - Axis_set.union acc ti.With_bounds_type_info.relevant_axes - | false -> acc) - Axis_set.empty - in - let axes_to_drop = - Axis_set.union right_relevant_axes axes_max_on_right - in - (* MB_WITH : drop types from the left that appear on the right *) - { relevant_axes = Axis_set.diff left_relevant_axes axes_to_drop }) - in - let* () = - (* MB_MODE : verify that the remaining upper_bounds from sub are <= super's bounds *) - let super_lower_bounds = best_super.jkind.mod_bounds in - require_le (Mod_bounds.less_or_equal sub_upper_bounds super_lower_bounds) - in - Ok () + | _ -> Error (Violation.of_ (Not_a_subjkind (t1, t2))) + +(* CR layouts v2.8: Rewrite this to do the hard subjkind check from the + kind polymorphism design. *) +let sub_jkind_l ?allow_any_crossing sub super = + let super = terrible_relax_l super in + match check_sub ?allow_any_crossing sub super with + | Less | Equal -> + Ok { sub with history = combine_histories Subjkind (Pack sub) (Pack super) } + | Not_le -> Error (Violation.of_ (Not_a_subjkind (sub, super))) let is_void_defaulting = function | { jkind = { layout = Sort s; _ }; _ } -> Sort.is_void_defaulting s @@ -2926,34 +1831,30 @@ let is_void_defaulting = function (* This doesn't do any mutation because mutating a sort variable can't make it any, and modal upper bounds are constant. *) -(* The choice of [type_equal] and [jkind_of_type] doesn't matter because there - are no with-kinds on the left-hand kind. *) -let is_max jkind = - sub - ~type_equal:(fun _ _ -> false) - ~jkind_of_type:(fun _ -> None) - Builtin.any_dummy_jkind jkind +let is_max jkind = sub Builtin.any_dummy_jkind jkind let has_layout_any jkind = match jkind.jkind.layout with Any -> true | _ -> false -let is_value_for_printing ~ignore_null { jkind; _ } = - match Desc.get_const (Jkind_desc.get jkind) with - | None -> false +let is_value_for_printing ~ignore_null + { jkind = + { layout; + modes_upper_bounds; + externality_upper_bound; + nullability_upper_bound + }; + _ + } = + match Layout.get_const layout with | Some const -> let value = Const.Builtin.value.jkind in - let values = [value] in - let values = - if ignore_null - then - { value with - mod_bounds = - { value.mod_bounds with nullability = Nullability.Maybe_null } - } - :: values - else values - in - List.exists (fun v -> Const.no_with_bounds_and_equal const v) values + Layout.Const.equal const value.layout + && Modes.equal modes_upper_bounds value.modes_upper_bounds + && Externality.equal externality_upper_bound value.externality_upper_bound + && (ignore_null + || Nullability.equal nullability_upper_bound + value.nullability_upper_bound) + | None -> false (*********************************) (* debugging *) @@ -3114,46 +2015,39 @@ module Debug_printers = struct fprintf ppf "Tyvar_refinement_intersection" | Subjkind -> fprintf ppf "Subjkind" - let rec history ~print_type_expr ppf = - let jkind_desc = Jkind_desc.Debug_printers.t ~print_type_expr in - function + let rec history ppf = function | Interact { reason; - jkind1 = Pack_jkind_desc jkind1; + jkind1 = Pack jkind1; history1; - jkind2 = Pack_jkind_desc jkind2; + jkind2 = Pack jkind2; history2 } -> fprintf ppf "Interact {@[reason = %a;@ jkind1 = %a;@ history1 = %a;@ jkind2 = %a;@ \ history2 = %a}@]" - interact_reason reason jkind_desc jkind1 (history ~print_type_expr) - history1 jkind_desc jkind2 (history ~print_type_expr) history2 + interact_reason reason Jkind_desc.Debug_printers.t jkind1 history + history1 Jkind_desc.Debug_printers.t jkind2 history history2 | Creation c -> fprintf ppf "Creation (%a)" creation_reason c - let t (type l r) ~print_type_expr ppf - ({ jkind; annotation = a; history = h; has_warned = _; quality = q } : - (l * r) jkind) : unit = - fprintf ppf - "@[{ jkind = %a@,\ - ; annotation = %a@,\ - ; history = %a@,\ - ; quality = %s@,\ - \ }@]" - (Jkind_desc.Debug_printers.t ~print_type_expr) - jkind + let t ppf ({ jkind; annotation = a; history = h; has_warned = _ } : 'd t) : + unit = + fprintf ppf "@[{ jkind = %a@,; annotation = %a@,; history = %a }@]" + Jkind_desc.Debug_printers.t jkind (pp_print_option Pprintast.jkind_annotation) - a (history ~print_type_expr) h - (match q with Best -> "Best" | Not_best -> "Not_best") + a history h module Const = struct - let t ~print_type_expr ppf ({ layout; mod_bounds; with_bounds } : _ Const.t) - = + let t ppf (jkind : _ Const.t) = fprintf ppf - "@[{ layout = %a@,; mod_bounds = %a@,; with_bounds = %a@, }@]" - Layout.Const.Debug_printers.t layout Mod_bounds.debug_print mod_bounds - (With_bounds.debug_print ~print_type_expr) - with_bounds + "@[{ layout = %a@,\ + ; modes_upper_bounds = %a@,\ + ; externality_upper_bound = %a@,\ + ; nullability_upper_bound = %a@,\ + }@]" + Layout.Const.Debug_printers.t jkind.layout Modes.print + jkind.modes_upper_bounds Externality.print jkind.externality_upper_bound + Nullability.print jkind.nullability_upper_bound end end @@ -3193,8 +2087,6 @@ let report_error ~loc : Error.t -> _ = function Pprintast.jkind_annotation jkind hint) | Unimplemented_syntax -> Location.errorf ~loc "@[Unimplemented kind syntax@]" - | With_on_right -> - Location.errorf ~loc "'with' syntax is not allowed on a right mode." let () = Location.register_error_of_exn (function diff --git a/upstream/ocaml_flambda/typing/jkind.mli b/upstream/ocaml_flambda/typing/jkind.mli index 5ef9e9a05..0eba8cedc 100644 --- a/upstream/ocaml_flambda/typing/jkind.mli +++ b/upstream/ocaml_flambda/typing/jkind.mli @@ -40,12 +40,30 @@ open Allowance This will eventually be incorporated into the mode solver, but it is defined here because we do not yet track externalities on expressions, just in jkinds. *) +(* CR externals: Move to mode.ml. But see + https://github.com/goldfirere/flambda-backend/commit/d802597fbdaaa850e1ed9209a1305c5dcdf71e17 + first, which was reisenberg's attempt to do so. *) +module Externality : sig + type t = Jkind_axis.Externality.t = + | External (* not managed by the garbage collector *) + | External64 (* not managed by the garbage collector on 64-bit systems *) + | Internal (* managed by the garbage collector *) + + include module type of Jkind_axis.Externality with type t := t +end + +module Nullability : sig + type t = Jkind_axis.Nullability.t = + | Non_null (* proven to not have NULL values *) + | Maybe_null (* may have NULL values *) + + include module type of Jkind_axis.Nullability with type t := t +end module Sort : sig include Jkind_intf.Sort - with type t = Jkind_types.Sort.t - and type base = Jkind_types.Sort.base + with type base = Jkind_types.Sort.base and type Const.t = Jkind_types.Sort.Const.t module Flat : sig @@ -58,31 +76,6 @@ end type sort = Sort.t -module Sub_failure_reason : sig - type t = - | Axis_disagreement of Jkind_axis.Axis.packed - | Layout_disagreement - | Constrain_ran_out_of_fuel -end - -module Sub_result : sig - type t = - | Equal - | Less - | Not_le of Sub_failure_reason.t Misc.Nonempty_list.t - - val of_le_result : - failure_reason:(unit -> Sub_failure_reason.t Misc.Nonempty_list.t) -> - Misc.Le_result.t -> - t - - val combine : t -> t -> t - - val require_le : t -> (unit, Sub_failure_reason.t Misc.Nonempty_list.t) result - - val is_le : t -> bool -end - (* The layout of a type describes its memory layout. A layout is either the indeterminate [Any] or a sort, which is a concrete memory layout. *) module Layout : sig @@ -96,14 +89,8 @@ module Layout : sig val get_sort : t -> Sort.Const.t option - val of_sort_const : Sort.Const.t -> t - val to_string : t -> string end - - val of_const : Const.t -> Sort.t t - - val sub : Sort.t t -> Sort.t t -> Sub_result.t end (** A Jkind.t is a full description of the runtime representation of values @@ -126,11 +113,21 @@ end the meets (intersections) of r-jkinds and check that an l-jkind is less than an r-jkind. *) +type +'d t = (Types.type_expr, 'd) Jkind_types.t + +type jkind_l := Types.jkind_l + +type jkind_r := Types.jkind_r -include Allowance.Allow_disallow with type (_, _, 'd) sided = 'd Types.jkind +type jkind_lr := Types.jkind_lr -(** Try to treat this jkind as an r-jkind. *) -val try_allow_r : ('l * 'r) Types.jkind -> ('l * allowed) Types.jkind option +type packed = Pack : 'd t -> packed [@@unboxed] + +include Allowance.Allow_disallow with type (_, _, 'd) sided = 'd t + +(** Convert an [l] into any jkind. This will soon become impossible, and so + uses of this function will have to be removed. *) +val terrible_relax_l : jkind_l -> 'd t module History : sig include module type of struct @@ -139,15 +136,15 @@ module History : sig (* history *) - val is_imported : 'd Types.jkind -> bool + val is_imported : 'd t -> bool - val update_reason : 'd Types.jkind -> creation_reason -> 'd Types.jkind + val update_reason : 'd t -> creation_reason -> 'd t (* Mark the jkind as having produced a compiler warning. *) - val with_warning : 'd Types.jkind -> 'd Types.jkind + val with_warning : 'd t -> 'd t (* Whether this jkind has produced a compiler warning. *) - val has_warned : 'd Types.jkind -> bool + val has_warned : 'd t -> bool end (******************************) @@ -155,15 +152,8 @@ end module Violation : sig type violation = - (* [Not_a_subjkind] allows l-jkinds on the right so that it can be used - in [sub_jkind_l]. There is no downside to this, as the printing - machinery works over l-jkinds. *) - | Not_a_subjkind : - (allowed * 'r1) Types.jkind - * ('l * 'r2) Types.jkind - * Sub_failure_reason.t list - -> violation - | No_intersection : 'd Types.jkind * ('l * allowed) Types.jkind -> violation + | Not_a_subjkind : (allowed * 'r) t * ('l * allowed) t -> violation + | No_intersection : 'd t * ('l * allowed) t -> violation type t @@ -207,83 +197,80 @@ module Const : sig The "constant" refers to the fact that there are no sort variables here. The existence of [with]-types means, though, that we still need the allowance machinery here. *) - type 'd t constraint 'd = 'l * 'r - - include Allowance.Allow_disallow with type (_, _, 'd) sided = 'd t + type +'d t constraint 'd = 'l * 'r val to_out_jkind_const : 'd t -> Outcometree.out_jkind_const - (** This returns [true] iff both types have no with-bounds and they are equal. - Normally, we want an equality check to happen only on values that are - allowed on both the left and the right. But a type with no with-bounds is - allowed on the left and the right, so we test for that condition first - before doing the proper equality check. *) - val no_with_bounds_and_equal : 'd1 t -> 'd2 t -> bool + (* An equality check should work over [lr]s only. But we need this + to do memoization in serialization. Happily, that's after all + inference is done, when worrying about l and r does not matter + any more. *) + val equal_after_all_inference_is_done : 'd1 t -> 'd2 t -> bool (* CR layouts: Remove this once we have a better story for printing with jkind abbreviations. *) module Builtin : sig - type nonrec t = - { jkind : (allowed * allowed) t; + type nonrec 'd t = + { jkind : 'd t; name : string } (** This jkind is the top of the jkind lattice. All types have jkind [any]. But we cannot compile run-time manipulations of values of types with jkind [any]. *) - val any : t + val any : 'd t (** [any], except for null pointers. *) - val any_non_null : t + val any_non_null : 'd t (** Value of types of this jkind are not retained at all at runtime *) - val void : t + val void : 'd t (** This is the jkind of normal ocaml values or null pointers *) - val value_or_null : t + val value_or_null : 'd t (** This is the jkind of normal ocaml values *) - val value : t + val value : 'd t (** Immutable values that don't contain functions. *) - val immutable_data : t + val immutable_data : 'd t (** Mutable values that don't contain functions. *) - val mutable_data : t + val mutable_data : 'd t (** Values of types of this jkind are immediate on 64-bit platforms; on other platforms, we know nothing other than that it's a value. *) - val immediate64 : t + val immediate64 : 'd t (** We know for sure that values of types of this jkind are always immediate *) - val immediate : t + val immediate : 'd t (** This is the jkind of unboxed 64-bit floats. They have sort Float64. Mode-crosses. *) - val float64 : t + val float64 : 'd t (** This is the jkind of unboxed 32-bit floats. They have sort Float32. Mode-crosses. *) - val float32 : t + val float32 : 'd t (** This is the jkind of unboxed native-sized integers. They have sort Word. Does not mode-cross. *) - val word : t + val word : 'd t (** This is the jkind of unboxed 32-bit integers. They have sort Bits32. Does not mode-cross. *) - val bits32 : t + val bits32 : 'd t (** This is the jkind of unboxed 64-bit integers. They have sort Bits64. Does not mode-cross. *) - val bits64 : t + val bits64 : 'd t (** This is the jkind of unboxed 128-bit simd vectors. They have sort Vec128. Does not mode-cross. *) - val vec128 : t + val vec128 : 'd t (** A list of all Builtin jkinds *) - val all : t list + val all : 'd t list end end @@ -291,127 +278,75 @@ module Builtin : sig (** This jkind is the top of the jkind lattice. All types have jkind [any]. But we cannot compile run-time manipulations of values of types with jkind [any]. *) - val any : why:History.any_creation_reason -> 'd Types.jkind + val any : why:History.any_creation_reason -> 'd t (** Value of types of this jkind are not retained at all at runtime *) - val void : why:History.void_creation_reason -> ('l * disallowed) Types.jkind + val void : why:History.void_creation_reason -> 'd t - val value_or_null : - why:History.value_or_null_creation_reason -> 'd Types.jkind + val value_or_null : why:History.value_or_null_creation_reason -> 'd t (** This is the jkind of normal ocaml values *) - val value : why:History.value_creation_reason -> 'd Types.jkind - - (** This is suitable for records or variants without mutable fields. *) - val immutable_data : why:History.value_creation_reason -> 'd Types.jkind - - (** This is suitable for records or variants with mutable fields. *) - val mutable_data : why:History.value_creation_reason -> 'd Types.jkind + val value : why:History.value_creation_reason -> 'd t (** We know for sure that values of types of this jkind are always immediate *) - val immediate : - why:History.immediate_creation_reason -> ('l * disallowed) Types.jkind - - (** Build a jkind of unboxed products, from a list of types with - their layouts. Errors if zero inputs are given. If only one input - is given, returns the result of calling [jkind_of_first_type]. - - Precondition: both input lists are the same length. - - This returns an [jkind_l] simply as a matter of convenience; it can be - generalized if need be. - - The resulting jkind has quality [Best], because all the components of the product - are represented in the with-bounds. *) - val product : - jkind_of_first_type:(unit -> Types.jkind_l) -> - jkind_of_type:(Types.type_expr -> Types.jkind_l) -> - why:History.product_creation_reason -> - (Types.type_expr * Mode.Modality.Value.Const.t) list -> - Sort.t Layout.t list -> - Types.jkind_l - - (** Build a jkind of unboxed products, given only an arity. This jkind will not - mode-cross (and has kind [Not_best] accordingly), even though unboxed products - generally should. This is useful when creating an initial jkind in Typedecl. *) - val product_of_sorts : - why:History.product_creation_reason -> int -> Types.jkind_l + val immediate : why:History.immediate_creation_reason -> 'd t + + (** Attempt to build a jkind of unboxed products. + - If zero input kinds are given, it errors. + - If a single input kind is given, then it returns that kind. + - If two or more input kinds are given, then the layout will be the + product of the layouts of the input kinds, and the other components of + the kind will be the join relevant component of the inputs. + *) + val product : why:History.product_creation_reason -> 'd t list -> 'd t end (** Take an existing [t] and add an ability to cross across the nullability axis. *) -val add_nullability_crossing : 'd Types.jkind -> 'd Types.jkind +val add_nullability_crossing : 'd t -> 'd t -(** Forcibly change the mod-bounds of a [t] based on the mod-bounds of - [from]. - - Returns [Error ()] if [from] contains with-bounds. *) -val unsafely_set_mod_bounds : - from:'d Types.jkind -> 'd Types.jkind -> ('d Types.jkind, unit) Result.t - -(** Take an existing [jkind_l] and add some with-bounds. *) -val add_with_bounds : - modality:Mode.Modality.Value.Const.t -> - type_expr:Types.type_expr -> - Types.jkind_l -> - Types.jkind_l - -(** Does this jkind have with-bounds? *) -val has_with_bounds : Types.jkind_l -> bool - -(** Mark the given jkind as {i best}, meaning we can never learn any more information - about it that will cause it to become lower in the preorder of kinds*) -val mark_best : ('l * 'r) Types.jkind -> ('l * disallowed) Types.jkind - -(** Is the given kind best? *) -val is_best : ('l * disallowed) Types.jkind -> bool +(** Forcibly change the modal upper bounds of a [t] based on the modal upper bounds of + [from]. *) +val unsafely_set_upper_bounds : from:'d t -> 'd t -> 'd t (******************************) (* construction *) (** Create a fresh sort variable, packed into a jkind, returning both the resulting kind and the sort. *) -val of_new_sort_var : - why:History.concrete_creation_reason -> 'd Types.jkind * sort +val of_new_sort_var : why:History.concrete_creation_reason -> 'd t * sort (** Create a fresh sort variable, packed into a jkind. *) -val of_new_sort : why:History.concrete_creation_reason -> 'd Types.jkind +val of_new_sort : why:History.concrete_creation_reason -> 'd t (** Same as [of_new_sort_var], but the jkind is lowered to [Non_null] to mirror "legacy" OCaml values. Defaulting the sort variable produces exactly [value]. *) val of_new_legacy_sort_var : - why:History.concrete_legacy_creation_reason -> 'd Types.jkind * sort + why:History.concrete_legacy_creation_reason -> 'd t * sort (** Same as [of_new_sort], but the jkind is lowered to [Non_null] to mirror "legacy" OCaml values. Defaulting the sort variable produces exactly [value]. *) -val of_new_legacy_sort : - why:History.concrete_legacy_creation_reason -> 'd Types.jkind +val of_new_legacy_sort : why:History.concrete_legacy_creation_reason -> 'd t -(** Construct a jkind from a constant jkind, at quality [Not_best] *) val of_const : annotation:Parsetree.jkind_annotation option -> why:History.creation_reason -> - quality:'d Types.jkind_quality -> 'd Const.t -> - 'd Types.jkind + 'd t -(** Construct a jkind from a builtin kind, at quality [Best]. *) -val of_builtin : - why:History.creation_reason -> - Const.Builtin.t -> - ('l * disallowed) Types.jkind +val of_builtin : why:History.creation_reason -> 'd Const.Builtin.t -> 'd t + +(* CR layouts v2.8: remove this when printing is improved *) val of_annotation : - context:('l * allowed) History.annotation_context -> - Parsetree.jkind_annotation -> - ('l * allowed) Types.jkind + context:'d History.annotation_context -> Parsetree.jkind_annotation -> 'd t val of_annotation_option_default : - default:('l * allowed) Types.jkind -> - context:('l * allowed) History.annotation_context -> + default:'d t -> + context:'d History.annotation_context -> Parsetree.jkind_annotation option -> - ('l * allowed) Types.jkind + 'd t (** Find a jkind from a type declaration. Type declarations are special because the jkind may have been provided via [: jkind] syntax (which goes through @@ -419,49 +354,39 @@ val of_annotation_option_default : attributes, and [of_type_decl] needs to look in two different places on the [type_declaration] to account for these two alternatives. - Returns the jkind (at quality [Not_best]) and the user-written annotation. + Returns the jkind and the user-written annotation. Raises if a disallowed or unknown jkind is present. *) val of_type_decl : context:History.annotation_context_l -> - transl_type:(Parsetree.core_type -> Types.type_expr) -> Parsetree.type_declaration -> - (Types.jkind_l * Parsetree.jkind_annotation option) option + (jkind_l * Parsetree.jkind_annotation option) option (** Find a jkind from a type declaration in the same way as [of_type_decl], - defaulting to ~default. Returns a jkind at quality [Not_best]; call [mark_best] to - mark it as [Best]. + defaulting to ~default. Raises if a disallowed or unknown jkind is present. *) val of_type_decl_default : context:History.annotation_context_l -> - transl_type:(Parsetree.core_type -> Types.type_expr) -> - default:Types.jkind_l -> + default:jkind_l -> Parsetree.type_declaration -> - Types.jkind_l - -(** Choose an appropriate jkind for a boxed record type *) -val for_boxed_record : Types.label_declaration list -> Types.jkind_l + jkind_l -(** Choose an appropriate jkind for an unboxed record type. Uses - [jkind_of_first_type] only in the singleton case, where the jkind of the - unboxed record must match that of the single field. *) -val for_unboxed_record : - jkind_of_first_type:(unit -> Types.jkind_l) -> - jkind_of_type:(Types.type_expr -> Types.jkind_l) -> - Types.label_declaration list -> - Types.jkind_l +(** Choose an appropriate jkind for a boxed record type, given whether + all of its fields are [void]. *) +val for_boxed_record : all_void:bool -> jkind_l -(** Choose an appropriate jkind for a boxed variant type. *) -val for_boxed_variant : Types.constructor_declaration list -> Types.jkind_l +(** Choose an appropriate jkind for a boxed variant type, given whether + all of the fields of all of its constructors are [void]. *) +val for_boxed_variant : all_voids:bool -> jkind_l (** The jkind of an arrow type. *) -val for_arrow : Types.jkind_l +val for_arrow : jkind_l (** The jkind of an object type. *) -val for_object : Types.jkind_l +val for_object : jkind_l (******************************) (* elimination and defaulting *) @@ -470,7 +395,7 @@ module Desc : sig (** The description of a jkind, used as a return type from [get]. This description has no sort variables, but it might have [with]-types and thus needs the allowance machinery. *) - type 'd t = (Sort.Flat.t Layout.t, 'd) Types.layout_and_axes + type 'd t = (Sort.Flat.t Layout.t, 'd) Jkind_types.Layout_and_axes.t val get_const : 'd t -> 'd Const.t option @@ -478,64 +403,46 @@ module Desc : sig end (** Get a description of a jkind. *) -val get : 'd Types.jkind -> 'd Desc.t +val get : 'd t -> 'd Desc.t (** [get_layout_defaulting_to_value] extracts a constant layout, defaulting any sort variable to [value]. *) -val get_layout_defaulting_to_value : 'd Types.jkind -> Layout.Const.t +val get_layout_defaulting_to_value : 'd t -> Layout.Const.t (** [get_const] returns a [Const.t] if the layout has no sort variables, returning [None] otherwise *) -val get_const : 'd Types.jkind -> 'd Const.t option +val get_const : 'd t -> 'd Const.t option (** [default_to_value t] is [ignore (get_layout_defaulting_to_value t)] *) -val default_to_value : 'd Types.jkind -> unit +val default_to_value : 'd t -> unit (** [is_void t] is [Void = get_layout_defaulting_to_value t]. In particular, it will default the jkind to value if needed to make this false. *) -val is_void_defaulting : 'd Types.jkind -> bool +val is_void_defaulting : 'd t -> bool (* CR layouts v5: When we have proper support for void, we'll want to change these three functions to default to void - it's the most efficient thing when we have a choice. *) (** Returns the sort corresponding to the jkind. Call only on representable jkinds - raises on Any. *) -val sort_of_jkind : Types.jkind_l -> sort +val sort_of_jkind : jkind_l -> sort (** Gets the layout of a jkind; returns [None] if the layout is still unknown. Never does mutation. *) -val get_layout : 'd Types.jkind -> Layout.Const.t option - -(* CR reisenberg: do we need [extract_layout]? *) +val get_layout : 'd t -> Layout.Const.t option -(** Gets the layout of a jkind, without looking through sort variables. *) -val extract_layout : 'd Types.jkind -> Sort.t Layout.t +(* CR layouts v2.8: This will need to become significantly more involved with + [with]-types. *) -(** Gets the maximum comonadic modes for types of this jkind. *) -val get_modal_upper_bounds : - jkind_of_type:(Types.type_expr -> Types.jkind_l option) -> - 'd Types.jkind -> - Mode.Alloc.Comonadic.Const.t - -(** Gets the minimum monadic modes for types of this jkind. *) -val get_modal_lower_bounds : - jkind_of_type:(Types.type_expr -> Types.jkind_l option) -> - 'd Types.jkind -> - Mode.Alloc.Monadic.Const.t +(** Gets the maximum modes for types of this jkind. *) +val get_modal_upper_bounds : 'd t -> Mode.Alloc.Const.t (** Gets the maximum mode on the externality axis for types of this jkind. *) -val get_externality_upper_bound : - jkind_of_type:(Types.type_expr -> Types.jkind_l option) -> - 'd Types.jkind -> - Jkind_axis.Externality.t +val get_externality_upper_bound : 'd t -> Externality.t (** Computes a jkind that is the same as the input but with an updated maximum mode for the externality axis *) -val set_externality_upper_bound : - Types.jkind_r -> Jkind_axis.Externality.t -> Types.jkind_r - -(** Sets the layout in a jkind. *) -val set_layout : 'd Types.jkind -> Sort.t Layout.t -> 'd Types.jkind +val set_externality_upper_bound : jkind_r -> Externality.t -> jkind_r (** Extract out component jkinds from the product. Because there are no product jkinds, this is a bit of a lie: instead, this decomposes the layout but just @@ -543,44 +450,15 @@ val set_layout : 'd Types.jkind -> Sort.t Layout.t -> 'd Types.jkind Because it just reuses the mode information, the resulting jkinds are higher in the jkind lattice than they might need to be. *) -val decompose_product : 'd Types.jkind -> 'd Types.jkind list option +val decompose_product : 'd t -> 'd t list option (** Get an annotation (that a user might write) for this [t]. *) -val get_annotation : 'd Types.jkind -> Parsetree.jkind_annotation option - -(*********************************) -(* normalization *) - -type normalize_mode = - | Require_best - (** Normalize a jkind without losing any precision. That is, keep any with-bounds - if the kind of the type is not best (a stronger kind may be found). *) - | Ignore_best - (** Normalize a left jkind, conservatively rounding up. That is, if the kind of a - type is not best, use the not-best kind. The resulting jkind will have no - with-bounds. *) - -val normalize : - mode:normalize_mode -> - jkind_of_type:(Types.type_expr -> Types.jkind_l option) -> - Types.jkind_l -> - Types.jkind_l +val get_annotation : 'd t -> Parsetree.jkind_annotation option (*********************************) (* pretty printing *) -(** Call these before trying to print. *) -val set_outcometree_of_type_scheme : - (Types.type_expr -> Outcometree.out_type) -> unit - -val set_outcometree_of_modalities_new : - (Types.mutability -> - Parsetree.attributes -> - Mode.Modality.Value.Const.t -> - Outcometree.out_mode_new list) -> - unit - -val format : Format.formatter -> 'd Types.jkind -> unit +val format : Format.formatter -> 'd t -> unit (** Format the history of this jkind: what interactions it has had and why it is the jkind that it is. Might be a no-op: see [display_histories] @@ -588,7 +466,7 @@ val format : Format.formatter -> 'd Types.jkind -> unit The [intro] is something like "The jkind of t is". *) val format_history : - intro:(Format.formatter -> unit) -> Format.formatter -> 'd Types.jkind -> unit + intro:(Format.formatter -> unit) -> Format.formatter -> 'd t -> unit (** Provides the [Printtyp.path] formatter back up the dependency chain to this module. *) @@ -600,20 +478,24 @@ val set_printtyp_path : (Format.formatter -> Path.t -> unit) -> unit (** This checks for equality, and sets any variables to make two jkinds equal, if possible. e.g. [equate] on a var and [value] will set the variable to be [value] *) -val equate : Types.jkind_lr -> Types.jkind_lr -> bool +val equate : jkind_lr -> jkind_lr -> bool (** This checks for equality, but has the invariant that it can only be called when there is no need for unification; e.g. [equal] on a var and [value] will crash. CR layouts (v1.5): At the moment, this is actually the same as [equate]! *) -val equal : Types.jkind_lr -> Types.jkind_lr -> bool +val equal : jkind_lr -> jkind_lr -> bool (** Checks whether two jkinds have a non-empty intersection. Might mutate - sort variables. Works over any mix of l- and r-jkinds, because the only - way not to have an intersection is by looking at the layout: all axes - have a bottom element. *) -val has_intersection : 'd1 Types.jkind -> 'd2 Types.jkind -> bool + sort variables. *) +val has_intersection : jkind_r -> jkind_r -> bool + +(* CR layouts v2.8: This almost certainly has to get rewritten, as l-kinds do + not support meets. *) + +(** Like [has_intersection], but comparing two [l] jkinds. *) +val has_intersection_l_l : jkind_l -> jkind_l -> bool (** Finds the intersection of two jkinds, constraining sort variables to create one if needed, or returns a [Violation.t] if an intersection does @@ -623,100 +505,66 @@ val has_intersection : 'd1 Types.jkind -> 'd2 Types.jkind -> bool it should be thought of as modifying the first jkind to be the intersection of the two, not something that modifies the second jkind. *) val intersection_or_error : - type_equal:(Types.type_expr -> Types.type_expr -> bool) -> - jkind_of_type:(Types.type_expr -> Types.jkind_l option) -> reason:History.interact_reason -> - ('l1 * allowed) Types.jkind -> - ('l2 * allowed) Types.jkind -> - (('l1 * allowed) Types.jkind, Violation.t) Result.t + ('l1 * allowed) t -> + ('l2 * allowed) t -> + (('l1 * allowed) t, Violation.t) Result.t (** [sub t1 t2] says whether [t1] is a subjkind of [t2]. Might update either [t1] or [t2] to make their layouts equal.*) -val sub : - type_equal:(Types.type_expr -> Types.type_expr -> bool) -> - jkind_of_type:(Types.type_expr -> Types.jkind_l option) -> - Types.jkind_l -> - Types.jkind_r -> - bool +val sub : jkind_l -> jkind_r -> bool type sub_or_intersect = | Sub (** The first jkind is a subjkind of the second. *) - | Disjoint of Sub_failure_reason.t Misc.Nonempty_list.t - (** The two jkinds have no common ground. *) - | Has_intersection of Sub_failure_reason.t Misc.Nonempty_list.t - (** The first jkind is not a subjkind of the second, but the two jkinds have an - intersection: try harder. *) + | Disjoint (** The two jkinds have no common ground. *) + | Has_intersection (** The two jkinds have an intersection: try harder. *) (** [sub_or_intersect t1 t2] does a subtype check, returning a [sub_or_intersect]; see comments there for more info. *) -val sub_or_intersect : - type_equal:(Types.type_expr -> Types.type_expr -> bool) -> - jkind_of_type:(Types.type_expr -> Types.jkind_l option) -> - (allowed * 'r) Types.jkind -> - ('l * allowed) Types.jkind -> - sub_or_intersect +val sub_or_intersect : (allowed * 'r) t -> ('l * allowed) t -> sub_or_intersect (** [sub_or_error t1 t2] does a subtype check, returning an appropriate [Violation.t] upon failure. *) -val sub_or_error : - type_equal:(Types.type_expr -> Types.type_expr -> bool) -> - jkind_of_type:(Types.type_expr -> Types.jkind_l option) -> - (allowed * 'r) Types.jkind -> - ('l * allowed) Types.jkind -> - (unit, Violation.t) result - -(** Like [sub], but compares a left jkind against another left jkind. - Pre-condition: the super jkind must be fully settled; no variables which - might be filled in later. -*) +val sub_or_error : jkind_l -> jkind_r -> (unit, Violation.t) result + +(** Like [sub], but returns the subjkind with an updated history. + Pre-condition: the super jkind must be fully settled; no variables + which might be filled in later. *) val sub_jkind_l : - type_equal:(Types.type_expr -> Types.type_expr -> bool) -> - jkind_of_type:(Types.type_expr -> Types.jkind_l option) -> ?allow_any_crossing:bool -> - Types.jkind_l -> - Types.jkind_l -> - (unit, Violation.t) result - -(** "round up" a [jkind_l] to a [jkind_r] such that the input is less than the - output. *) -val round_up : - jkind_of_type:(Types.type_expr -> Types.jkind_l option) -> - (allowed * 'r) Types.jkind -> - ('l * allowed) Types.jkind - -(** Map a function over types in [upper_bounds] *) -val map_type_expr : - (Types.type_expr -> Types.type_expr) -> - (allowed * 'r) Types.jkind -> - (allowed * 'r) Types.jkind + jkind_l -> + jkind_l -> + (jkind_l, Violation.t) result + +(* CR layouts v2.8: This almost certainly has to get rewritten, as l-kinds do + not support meets. *) + +(** Like [intersection_or_error], but between an [l] and an [l], as an [l]. *) +val intersect_l_l : + reason:History.interact_reason -> + jkind_l -> + jkind_l -> + (jkind_l, Violation.t) result (** Checks to see whether a jkind is the maximum jkind. Never does any mutation. *) -val is_max : ('l * allowed) Types.jkind -> bool +val is_max : ('l * allowed) t -> bool (** Checks to see whether a jkind has layout any. Never does any mutation. *) -val has_layout_any : ('l * allowed) Types.jkind -> bool +val has_layout_any : ('l * allowed) t -> bool (** Checks whether a jkind is [value]. This really should require a [jkind_lr], but it works on any [jkind], because it's used in printing and is somewhat unprincipled. *) -val is_value_for_printing : ignore_null:bool -> 'd Types.jkind -> bool +val is_value_for_printing : ignore_null:bool -> 'd t -> bool (*********************************) (* debugging *) module Debug_printers : sig - val t : - print_type_expr:(Format.formatter -> Types.type_expr -> unit) -> - Format.formatter -> - 'd Types.jkind -> - unit + val t : Format.formatter -> 'd t -> unit module Const : sig - val t : - print_type_expr:(Format.formatter -> Types.type_expr -> unit) -> - Format.formatter -> - 'd Const.t -> - unit + val t : Format.formatter -> 'd Const.t -> unit end end diff --git a/upstream/ocaml_flambda/typing/jkind_axis.ml b/upstream/ocaml_flambda/typing/jkind_axis.ml index 1a3542180..383cc942d 100644 --- a/upstream/ocaml_flambda/typing/jkind_axis.ml +++ b/upstream/ocaml_flambda/typing/jkind_axis.ml @@ -4,7 +4,7 @@ (* *) (* Liam Stevenson, Jane Street, New York *) (* *) -(* Copyright 2024 Jane Street Group LLC *) +(* Copyright 2021 Jane Street Group LLC *) (* *) (* All rights reserved. This file is distributed under the terms of *) (* the GNU Lesser General Public License version 2.1, with the *) @@ -12,12 +12,36 @@ (* *) (**************************************************************************) -module type Axis_ops = sig - include Mode_intf.Lattice +module type Axis_s = sig + type t - val less_or_equal : t -> t -> Misc.Le_result.t + val max : t + + val min : t val equal : t -> t -> bool + + val less_or_equal : t -> t -> Misc.Le_result.t + + val le : t -> t -> bool + + val meet : t -> t -> t + + val join : t -> t -> t + + val print : Format.formatter -> t -> unit +end + +module Of_lattice (L : Mode_intf.Lattice) = struct + include L + + let less_or_equal a b : Misc.Le_result.t = + match le a b, le b a with + | true, true -> Equal + | true, false -> Less + | false, _ -> Not_le + + let equal a b = Misc.Le_result.is_equal (less_or_equal a b) end module Externality = struct @@ -30,8 +54,6 @@ module Externality = struct let min = External - let legacy = Internal - let equal e1 e2 = match e1, e2 with | External, External -> true @@ -61,10 +83,10 @@ module Externality = struct let join t1 t2 = match t1, t2 with - | Internal, (Internal | External64 | External) - | (External64 | External), Internal -> + | Internal, (External | External64 | Internal) + | (External | External64), Internal -> Internal - | External64, (External64 | External) | External, External64 -> External64 + | External64, (External | External64) | External, External64 -> External64 | External, External -> External let print ppf = function @@ -82,8 +104,6 @@ module Nullability = struct let min = Non_null - let legacy = Non_null - let equal n1 n2 = match n1, n2 with | Non_null, Non_null -> true @@ -106,7 +126,7 @@ module Nullability = struct let join n1 n2 = match n1, n2 with - | Maybe_null, (Maybe_null | Non_null) | Non_null, Maybe_null -> Maybe_null + | Maybe_null, (Non_null | Maybe_null) | Non_null, Maybe_null -> Maybe_null | Non_null, Non_null -> Non_null let print ppf = function @@ -115,6 +135,16 @@ module Nullability = struct end module Axis = struct + module Modal = struct + type 'a t = + | Locality : Mode.Locality.Const.t t + | Linearity : Mode.Linearity.Const.t t + | Uniqueness : Mode.Uniqueness.Const.t t + | Portability : Mode.Portability.Const.t t + | Contention : Mode.Contention.Const.t t + | Yielding : Mode.Yielding.Const.t t + end + module Nonmodal = struct type 'a t = | Externality : Externality.t t @@ -122,10 +152,10 @@ module Axis = struct end type 'a t = - | Modal : ('m, 'a, 'd) Mode.Alloc.axis -> 'a t - | Nonmodal : 'a Nonmodal.t -> 'a t + | Modal of 'a Modal.t + | Nonmodal of 'a Nonmodal.t - type packed = Pack : 'a t -> packed [@@unboxed] + type packed = Pack : 'a t -> packed module Accent_lattice (M : Mode_intf.Lattice) = struct (* A functor to add some convenient functions to modal axes *) @@ -140,322 +170,92 @@ module Axis = struct let equal a b = Misc.Le_result.is_equal (less_or_equal a b) end - let get (type a) : a t -> (module Axis_ops with type t = a) = function - | Modal axis -> - (module Accent_lattice ((val Mode.Alloc.lattice_of_axis axis))) - | Nonmodal Externality -> (module Externality) - | Nonmodal Nullability -> (module Nullability) + let get (type a) : a t -> (module Axis_s with type t = a) = function + | Modal Locality -> + (module Accent_lattice (Mode.Locality.Const) : Axis_s with type t = a) + | Modal Linearity -> + (module Accent_lattice (Mode.Linearity.Const) : Axis_s with type t = a) + | Modal Uniqueness -> + (module Accent_lattice (Mode.Uniqueness.Const) : Axis_s with type t = a) + | Modal Portability -> + (module Accent_lattice (Mode.Portability.Const) : Axis_s with type t = a) + | Modal Contention -> + (module Accent_lattice (Mode.Contention.Const) : Axis_s with type t = a) + | Modal Yielding -> + (module Accent_lattice (Mode.Yielding.Const) : Axis_s with type t = a) + | Nonmodal Externality -> (module Externality : Axis_s with type t = a) + | Nonmodal Nullability -> (module Nullability : Axis_s with type t = a) let all = - [ Pack (Modal (Comonadic Areality)); - Pack (Modal (Monadic Uniqueness)); - Pack (Modal (Comonadic Linearity)); - Pack (Modal (Monadic Contention)); - Pack (Modal (Comonadic Portability)); - Pack (Modal (Comonadic Yielding)); + [ Pack (Modal Locality); + Pack (Modal Linearity); + Pack (Modal Uniqueness); + Pack (Modal Portability); + Pack (Modal Contention); + Pack (Modal Yielding); Pack (Nonmodal Externality); Pack (Nonmodal Nullability) ] let name (type a) : a t -> string = function - | Modal axis -> Format.asprintf "%a" Mode.Alloc.print_axis axis + | Modal Locality -> "locality" + | Modal Linearity -> "linearity" + | Modal Uniqueness -> "uniqueness" + | Modal Portability -> "portability" + | Modal Contention -> "contention" + | Modal Yielding -> "yielding" | Nonmodal Externality -> "externality" | Nonmodal Nullability -> "nullability" - - let is_modal (type a) : a t -> bool = function - | Modal (Comonadic Areality) -> true - | Modal (Comonadic Linearity) -> true - | Modal (Monadic Uniqueness) -> true - | Modal (Comonadic Portability) -> true - | Modal (Monadic Contention) -> true - | Modal (Comonadic Yielding) -> true - | Nonmodal Externality -> true - | Nonmodal Nullability -> false end -module Axis_collection = struct - module Indexed_gen (T : Misc.T2) = struct - type 'a t_poly = - { locality : (Mode.Locality.Const.t, 'a) T.t; - linearity : (Mode.Linearity.Const.t, 'a) T.t; - uniqueness : (Mode.Uniqueness.Const.t, 'a) T.t; - portability : (Mode.Portability.Const.t, 'a) T.t; - contention : (Mode.Contention.Const.t, 'a) T.t; - yielding : (Mode.Yielding.Const.t, 'a) T.t; - externality : (Externality.t, 'a) T.t; - nullability : (Nullability.t, 'a) T.t - } - - type 'a t = 'a t_poly - - let get (type a) ~(axis : a Axis.t) (t : 'b t) : (a, 'b) T.t = - match axis with - | Modal (Comonadic Areality) -> t.locality - | Modal (Comonadic Linearity) -> t.linearity - | Modal (Monadic Uniqueness) -> t.uniqueness - | Modal (Comonadic Portability) -> t.portability - | Modal (Monadic Contention) -> t.contention - | Modal (Comonadic Yielding) -> t.yielding - | Nonmodal Externality -> t.externality - | Nonmodal Nullability -> t.nullability - - let set (type a) ~(axis : a Axis.t) (t : 'b t) (value : (a, 'b) T.t) = - match axis with - | Modal (Comonadic Areality) -> { t with locality = value } - | Modal (Comonadic Linearity) -> { t with linearity = value } - | Modal (Monadic Uniqueness) -> { t with uniqueness = value } - | Modal (Comonadic Portability) -> { t with portability = value } - | Modal (Monadic Contention) -> { t with contention = value } - | Modal (Comonadic Yielding) -> { t with yielding = value } - | Nonmodal Externality -> { t with externality = value } - | Nonmodal Nullability -> { t with nullability = value } - - (* Since we don't have polymorphic parameters, use a record to pass the - polymorphic function *) - module Create = struct - module Monadic (M : Misc.Stdlib.Monad.S) = struct - type 'a f = { f : 'axis. axis:'axis Axis.t -> ('axis, 'a) T.t M.t } - [@@unboxed] - - let[@inline] f { f } = - let open M.Syntax in - let* locality = f ~axis:Axis.(Modal (Comonadic Areality)) in - let* uniqueness = f ~axis:Axis.(Modal (Monadic Uniqueness)) in - let* linearity = f ~axis:Axis.(Modal (Comonadic Linearity)) in - let* contention = f ~axis:Axis.(Modal (Monadic Contention)) in - let* portability = f ~axis:Axis.(Modal (Comonadic Portability)) in - let* yielding = f ~axis:Axis.(Modal (Comonadic Yielding)) in - let* externality = f ~axis:Axis.(Nonmodal Externality) in - let* nullability = f ~axis:Axis.(Nonmodal Nullability) in - M.return - { locality; - uniqueness; - linearity; - contention; - portability; - yielding; - externality; - nullability - } - end - [@@inline] - - module Monadic_identity = Monadic (Misc.Stdlib.Monad.Identity) - - type 'a f = 'a Monadic_identity.f - - let[@inline] f f = Monadic_identity.f f - end - - module Map = struct - module Monadic (M : Misc.Stdlib.Monad.S) = struct - type ('a, 'b) f = - { f : - 'axis. axis:'axis Axis.t -> ('axis, 'a) T.t -> ('axis, 'b) T.t M.t - } - [@@unboxed] - - module Create = Create.Monadic (M) - - let[@inline] f { f } bounds = - Create.f { f = (fun ~axis -> f ~axis (get ~axis bounds)) } - end - [@@inline] - - module Monadic_identity = Monadic (Misc.Stdlib.Monad.Identity) - - type ('a, 'b) f = ('a, 'b) Monadic_identity.f - - let[@inline] f f bounds = Monadic_identity.f f bounds - end - - module Iter = struct - type 'a f = { f : 'axis. axis:'axis Axis.t -> ('axis, 'a) T.t -> unit } - [@@unboxed] - - let[@inline] f { f } - { locality; - linearity; - uniqueness; - portability; - contention; - yielding; - externality; - nullability - } = - f ~axis:Axis.(Modal (Comonadic Areality)) locality; - f ~axis:Axis.(Modal (Monadic Uniqueness)) uniqueness; - f ~axis:Axis.(Modal (Comonadic Linearity)) linearity; - f ~axis:Axis.(Modal (Monadic Contention)) contention; - f ~axis:Axis.(Modal (Comonadic Portability)) portability; - f ~axis:Axis.(Modal (Comonadic Yielding)) yielding; - f ~axis:Axis.(Nonmodal Externality) externality; - f ~axis:Axis.(Nonmodal Nullability) nullability - end - - module Map2 = struct - module Monadic (M : Misc.Stdlib.Monad.S) = struct - type ('a, 'b, 'c) f = - { f : - 'axis. - axis:'axis Axis.t -> - ('axis, 'a) T.t -> - ('axis, 'b) T.t -> - ('axis, 'c) T.t M.t - } - [@@unboxed] - - module Create = Create.Monadic (M) - - let[@inline] f { f } bounds1 bounds2 = - Create.f - { f = (fun ~axis -> f ~axis (get ~axis bounds1) (get ~axis bounds2)) - } - end - [@@inline] - - module Monadic_identity = Monadic (Misc.Stdlib.Monad.Identity) - - type ('a, 'b, 'c) f = ('a, 'b, 'c) Monadic_identity.f - - let[@inline] f f bounds1 bounds2 = Monadic_identity.f f bounds1 bounds2 - end - - module Fold = struct - type ('a, 'r) f = - { f : 'axis. axis:'axis Axis.t -> ('axis, 'a) T.t -> 'r } - [@@unboxed] - - let[@inline] f { f } - { locality; - linearity; - uniqueness; - portability; - contention; - yielding; - externality; - nullability - } ~combine = - combine (f ~axis:Axis.(Modal (Comonadic Areality)) locality) - @@ combine (f ~axis:Axis.(Modal (Monadic Uniqueness)) uniqueness) - @@ combine (f ~axis:Axis.(Modal (Comonadic Linearity)) linearity) - @@ combine (f ~axis:Axis.(Modal (Monadic Contention)) contention) - @@ combine (f ~axis:Axis.(Modal (Comonadic Portability)) portability) - @@ combine (f ~axis:Axis.(Modal (Comonadic Yielding)) yielding) - @@ combine (f ~axis:Axis.(Nonmodal Externality) externality) - @@ f ~axis:Axis.(Nonmodal Nullability) nullability - end - - module Fold2 = struct - type ('a, 'b, 'r) f = - { f : - 'axis. axis:'axis Axis.t -> ('axis, 'a) T.t -> ('axis, 'b) T.t -> 'r - } - [@@unboxed] - - let[@inline] f { f } - { locality = loc1; - linearity = lin1; - uniqueness = uni1; - portability = por1; - contention = con1; - yielding = yie1; - externality = ext1; - nullability = nul1 - } - { locality = loc2; - linearity = lin2; - uniqueness = uni2; - portability = por2; - contention = con2; - yielding = yie2; - externality = ext2; - nullability = nul2 - } ~combine = - combine (f ~axis:Axis.(Modal (Comonadic Areality)) loc1 loc2) - @@ combine (f ~axis:Axis.(Modal (Monadic Uniqueness)) uni1 uni2) - @@ combine (f ~axis:Axis.(Modal (Comonadic Linearity)) lin1 lin2) - @@ combine (f ~axis:Axis.(Modal (Monadic Contention)) con1 con2) - @@ combine (f ~axis:Axis.(Modal (Comonadic Portability)) por1 por2) - @@ combine (f ~axis:Axis.(Modal (Comonadic Yielding)) yie1 yie2) - @@ combine (f ~axis:Axis.(Nonmodal Externality) ext1 ext2) - @@ f ~axis:Axis.(Nonmodal Nullability) nul1 nul2 - end - end - - module Indexed (T : Misc.T1) = struct - include Indexed_gen (struct - type ('a, 'b) t = 'a T.t - end) - - type nonrec t = unit t +(* Sadly this needs to be functorized since we don't have higher-kinded types *) +module Axis_collection (T : Misc.T1) = struct + type t = + { locality : Mode.Locality.Const.t T.t; + linearity : Mode.Linearity.Const.t T.t; + uniqueness : Mode.Uniqueness.Const.t T.t; + portability : Mode.Portability.Const.t T.t; + contention : Mode.Contention.Const.t T.t; + yielding : Mode.Yielding.Const.t T.t; + externality : Externality.t T.t; + nullability : Nullability.t T.t + } + + let get (type a) ~(axis : a Axis.t) values : a T.t = + match axis with + | Modal Locality -> values.locality + | Modal Linearity -> values.linearity + | Modal Uniqueness -> values.uniqueness + | Modal Portability -> values.portability + | Modal Contention -> values.contention + | Modal Yielding -> values.yielding + | Nonmodal Externality -> values.externality + | Nonmodal Nullability -> values.nullability + + let set (type a) ~(axis : a Axis.t) values (value : a T.t) = + match axis with + | Modal Locality -> { values with locality = value } + | Modal Linearity -> { values with linearity = value } + | Modal Uniqueness -> { values with uniqueness = value } + | Modal Portability -> { values with portability = value } + | Modal Contention -> { values with contention = value } + | Modal Yielding -> { values with yielding = value } + | Nonmodal Externality -> { values with externality = value } + | Nonmodal Nullability -> { values with nullability = value } + + (* Since we don't have polymorphic parameters, use a record to pass the polymorphic + function *) + module Create_f = struct + type t = { f : 'a. axis:'a Axis.t -> 'a T.t } end - module Identity = Indexed (Misc.Stdlib.Monad.Identity) - - include Indexed_gen (struct - type ('a, 'b) t = 'b - end) - - let create ~f = Create.f { f = (fun ~axis -> f ~axis:(Axis.Pack axis)) } - - let map ~f t = Map.f { f = (fun ~axis:_ x -> f x) } t - - let mapi ~f t = Map.f { f = (fun ~axis x -> f ~axis:(Axis.Pack axis) x) } t - - let fold ~f ~combine t = - Fold.f { f = (fun ~axis acc -> f ~axis:(Axis.Pack axis) acc) } t ~combine -end - -module Axis_set = struct - (* each axis is true or false to indicate membership *) - type t = bool Axis_collection.t - - (* TODO: this could be represented with a uint8 since there's only 7 possible members *) - - let empty = Axis_collection.create ~f:(fun ~axis:_ -> false) - - let add t axis = Axis_collection.set ~axis t true - - let singleton axis = add empty axis - - let remove t axis = Axis_collection.set ~axis t false - - let mem t axis = Axis_collection.get ~axis t - - let union t1 t2 = - Axis_collection.create ~f:(fun ~axis:(Pack axis) -> - Axis_collection.get ~axis t1 || Axis_collection.get ~axis t2) - - let intersection t1 t2 = - Axis_collection.create ~f:(fun ~axis:(Pack axis) -> - Axis_collection.get ~axis t1 && Axis_collection.get ~axis t2) - - let diff t1 t2 = - Axis_collection.create ~f:(fun ~axis:(Pack axis) -> - Axis_collection.get ~axis t1 && not (Axis_collection.get ~axis t2)) - - let is_subset t1 t2 = - Axis_collection.fold - ~f:(fun ~axis:(Pack axis) t1_on_axis -> - let t2_on_axis = Axis_collection.get ~axis t2 in - (not t1_on_axis) || t2_on_axis) - ~combine:( && ) t1 - - let is_empty t = is_subset t empty - - let complement t = Axis_collection.map ~f:not t - - let to_list t = - Axis_collection.fold - ~f:(fun ~axis t_on_axis -> - match t_on_axis with true -> [axis] | false -> []) - ~combine:( @ ) t - - let create = Axis_collection.create - - let print ppf t = - Format.pp_print_list - ~pp_sep:(fun ppf () -> Format.fprintf ppf ";@ ") - (fun ppf (Axis.Pack axis) -> Format.fprintf ppf "%s" (Axis.name axis)) - ppf (to_list t) + let create ({ f } : Create_f.t) = + { locality = f ~axis:Axis.(Modal Locality); + linearity = f ~axis:Axis.(Modal Linearity); + uniqueness = f ~axis:Axis.(Modal Uniqueness); + portability = f ~axis:Axis.(Modal Portability); + contention = f ~axis:Axis.(Modal Contention); + yielding = f ~axis:Axis.(Modal Yielding); + externality = f ~axis:Axis.(Nonmodal Externality); + nullability = f ~axis:Axis.(Nonmodal Nullability) + } end diff --git a/upstream/ocaml_flambda/typing/jkind_axis.mli b/upstream/ocaml_flambda/typing/jkind_axis.mli index f3084622e..6ee32d233 100644 --- a/upstream/ocaml_flambda/typing/jkind_axis.mli +++ b/upstream/ocaml_flambda/typing/jkind_axis.mli @@ -4,7 +4,7 @@ (* *) (* Liam Stevenson, Jane Street, New York *) (* *) -(* Copyright 2024 Jane Street Group LLC *) +(* Copyright 2021 Jane Street Group LLC *) (* *) (* All rights reserved. This file is distributed under the terms of *) (* the GNU Lesser General Public License version 2.1, with the *) @@ -12,15 +12,30 @@ (* *) (**************************************************************************) -(** Re-export *) -module type Axis_ops = sig - include Mode_intf.Lattice +(** The common interface for jkind axes *) +module type Axis_s = sig + type t - val less_or_equal : t -> t -> Misc.Le_result.t + val max : t + + val min : t val equal : t -> t -> bool + + val less_or_equal : t -> t -> Misc.Le_result.t + + val le : t -> t -> bool + + val meet : t -> t -> t + + val join : t -> t -> t + + val print : Format.formatter -> t -> unit end +(** Adapt a [Lattice] to be an [Axis_s] *) +module Of_lattice (L : Mode_intf.Lattice) : Axis_s with type t = L.t + (** The jkind axis of Externality *) module Externality : sig type t = @@ -28,7 +43,7 @@ module Externality : sig | External64 | Internal - include Axis_ops with type t := t + include Axis_s with type t := t end (** The jkind axis of nullability *) @@ -37,10 +52,21 @@ module Nullability : sig | Non_null | Maybe_null - include Axis_ops with type t := t + include Axis_s with type t := t end module Axis : sig + (* CR zqian: remove this and use [Mode.Alloc.axis] instead *) + module Modal : sig + type 'a t = + | Locality : Mode.Locality.Const.t t + | Linearity : Mode.Linearity.Const.t t + | Uniqueness : Mode.Uniqueness.Const.t t + | Portability : Mode.Portability.Const.t t + | Contention : Mode.Contention.Const.t t + | Yielding : Mode.Yielding.Const.t t + end + module Nonmodal : sig type 'a t = | Externality : Externality.t t @@ -49,196 +75,44 @@ module Axis : sig (** Represents an axis of a jkind *) type 'a t = - | Modal : ('m, 'a, 'd) Mode.Alloc.axis -> 'a t - | Nonmodal : 'a Nonmodal.t -> 'a t + | Modal of 'a Modal.t + | Nonmodal of 'a Nonmodal.t - type packed = Pack : 'a t -> packed [@@unboxed] + type packed = Pack : 'a t -> packed (* CR zqian: push ['a t] into the module to avoid first-class module. *) (** Given a jkind axis, get its interface *) - val get : 'a t -> (module Axis_ops with type t = 'a) + val get : 'a t -> (module Axis_s with type t = 'a) val all : packed list val name : _ t -> string - - (** Is this a modal axis? Includes externality, because that will one - day be modal (it is a deep property). *) - val is_modal : _ t -> bool end -(** A collection with one item for each jkind axis *) -module Axis_collection : sig - module type S_gen := sig - type ('a, 'b) u - - (* This is t_poly instead of t because in some instantiations of this signature, u - ignores its second parameter. In order to avoid needed to apply a useless type - parameter for those instantiations, we define [type t = unit t_poly] in them. In - instantiations where the polymorphism is actually used, we define - [type 'a t = 'a t_poly] *) - type 'a t_poly = - { locality : (Mode.Locality.Const.t, 'a) u; - linearity : (Mode.Linearity.Const.t, 'a) u; - uniqueness : (Mode.Uniqueness.Const.t, 'a) u; - portability : (Mode.Portability.Const.t, 'a) u; - contention : (Mode.Contention.Const.t, 'a) u; - yielding : (Mode.Yielding.Const.t, 'a) u; - externality : (Externality.t, 'a) u; - nullability : (Nullability.t, 'a) u - } - - val get : axis:'a Axis.t -> 'b t_poly -> ('a, 'b) u - - val set : axis:'a Axis.t -> 'b t_poly -> ('a, 'b) u -> 'b t_poly - - (** Create an axis collection by applying the function on each axis *) - module Create : sig - module Monadic (M : Misc.Stdlib.Monad.S) : sig - type 'a f = { f : 'axis. axis:'axis Axis.t -> ('axis, 'a) u M.t } - [@@unboxed] - - val f : 'a f -> 'a t_poly M.t - end - - (** This record type is used to pass a polymorphic function to [create] *) - type 'a f = 'a Monadic(Misc.Stdlib.Monad.Identity).f - - val f : 'a f -> 'a t_poly - end - - (** Map an operation over all the bounds *) - module Map : sig - module Monadic (M : Misc.Stdlib.Monad.S) : sig - type ('a, 'b) f = - { f : 'axis. axis:'axis Axis.t -> ('axis, 'a) u -> ('axis, 'b) u M.t } - [@@unboxed] - - val f : ('a, 'b) f -> 'a t_poly -> 'b t_poly M.t - end - - type ('a, 'b) f = ('a, 'b) Monadic(Misc.Stdlib.Monad.Identity).f - - val f : ('a, 'b) f -> 'a t_poly -> 'b t_poly - end - - module Iter : sig - type 'a f = { f : 'axis. axis:'axis Axis.t -> ('axis, 'a) u -> unit } - [@@unboxed] - - val f : 'a f -> 'a t_poly -> unit - end - - (** Map an operation over two sets of bounds *) - module Map2 : sig - module Monadic (M : Misc.Stdlib.Monad.S) : sig - type ('a, 'b, 'c) f = - { f : - 'axis. - axis:'axis Axis.t -> - ('axis, 'a) u -> - ('axis, 'b) u -> - ('axis, 'c) u M.t - } - [@@unboxed] - - val f : ('a, 'b, 'c) f -> 'a t_poly -> 'b t_poly -> 'c t_poly M.t - end - - type ('a, 'b, 'c) f = ('a, 'b, 'c) Monadic(Misc.Stdlib.Monad.Identity).f - - val f : ('a, 'b, 'c) f -> 'a t_poly -> 'b t_poly -> 'c t_poly - end - - (** Fold an operation over the bounds to a summary value *) - module Fold : sig - type ('a, 'r) f = { f : 'axis. axis:'axis Axis.t -> ('axis, 'a) u -> 'r } - [@@unboxed] - - (** [combine] should be commutative and associative. *) - val f : ('a, 'r) f -> 'a t_poly -> combine:('r -> 'r -> 'r) -> 'r - end - - (** Fold an operation over two sets of bounds to a summary value *) - module Fold2 : sig - type ('a, 'b, 'r) f = - { f : 'axis. axis:'axis Axis.t -> ('axis, 'a) u -> ('axis, 'b) u -> 'r } - [@@unboxed] - - (** [combine] should be commutative and associative. *) - val f : - ('a, 'b, 'r) f -> - 'a t_poly -> - 'b t_poly -> - combine:('r -> 'r -> 'r) -> - 'r - end - end - - module type S_poly := sig - include S_gen - - type 'a t = 'a t_poly - end - - module type S_mono := sig - include S_gen - - type t = unit t_poly +(** A collection with one item for each jkind axis. + [T] parametizes what element is being held for each axis. *) +module Axis_collection (T : Misc.T1) : sig + type t = + { locality : Mode.Locality.Const.t T.t; + linearity : Mode.Linearity.Const.t T.t; + uniqueness : Mode.Uniqueness.Const.t T.t; + portability : Mode.Portability.Const.t T.t; + contention : Mode.Contention.Const.t T.t; + yielding : Mode.Yielding.Const.t T.t; + externality : Externality.t T.t; + nullability : Nullability.t T.t + } + + val get : axis:'a Axis.t -> t -> 'a T.t + + val set : axis:'a Axis.t -> t -> 'a T.t -> t + + module Create_f : sig + (** This record type is used to pass a polymorphic function to [create] *) + type t = { f : 'a. axis:'a Axis.t -> 'a T.t } end - module Indexed_gen (T : Misc.T2) : S_poly with type ('a, 'b) u := ('a, 'b) T.t - - module Indexed (T : Misc.T1) : S_mono with type ('a, 'b) u := 'a T.t - - module Identity : S_mono with type ('a, 'b) u := 'a - - include S_poly with type ('a, 'b) u := 'b - - val create : f:(axis:Axis.packed -> 'a) -> 'a t - - val get : axis:'ax Axis.t -> 'a t -> 'a - - val set : axis:'ax Axis.t -> 'a t -> 'a -> 'a t - - val mapi : f:(axis:Axis.packed -> 'a -> 'a) -> 'a t -> 'a t - - val map : f:('a -> 'a) -> 'a t -> 'a t - - val fold : - f:(axis:Axis.packed -> 'a -> 'r) -> combine:('r -> 'r -> 'r) -> 'a t -> 'r -end - -module Axis_set : sig - type t - - val empty : t - - val singleton : _ Axis.t -> t - - val is_empty : t -> bool - - val add : t -> _ Axis.t -> t - - val remove : t -> _ Axis.t -> t - - val mem : t -> _ Axis.t -> bool - - val union : t -> t -> t - - val intersection : t -> t -> t - - val diff : t -> t -> t - - val is_subset : t -> t -> bool - - val complement : t -> t - - val to_list : t -> Axis.packed list - - (** Create a [t], specify for each axis whether it should be included *) - val create : f:(axis:Axis.packed -> bool) -> t - - val print : Format.formatter -> t -> unit + (** Create an axis collection by applying the function on each axis *) + val create : Create_f.t -> t end diff --git a/upstream/ocaml_flambda/typing/jkind_types.ml b/upstream/ocaml_flambda/typing/jkind_types.ml index 951158e4c..dd6f4dcf1 100644 --- a/upstream/ocaml_flambda/typing/jkind_types.ml +++ b/upstream/ocaml_flambda/typing/jkind_types.ml @@ -521,3 +521,113 @@ module Layout = struct | Product of t list end end + +module Modes = Jkind_axis.Of_lattice (Mode.Alloc.Const) + +module Layout_and_axes = struct + open Jkind_axis + + type ('layout, +'d) t = + { layout : 'layout; + modes_upper_bounds : Mode.Alloc.Const.t; + externality_upper_bound : Externality.t; + nullability_upper_bound : Nullability.t + } + constraint 'd = 'l * 'r + + let map f t = { t with layout = f t.layout } + + let map_option f t = + match f t.layout with None -> None | Some layout -> Some { t with layout } + + let equal eq_layout + { layout = lay1; + modes_upper_bounds = modes1; + externality_upper_bound = ext1; + nullability_upper_bound = null1 + } + { layout = lay2; + modes_upper_bounds = modes2; + externality_upper_bound = ext2; + nullability_upper_bound = null2 + } = + eq_layout lay1 lay2 && Modes.equal modes1 modes2 + && Externality.equal ext1 ext2 + && Nullability.equal null1 null2 + + let equal_after_all_inference_is_done x y z = equal x y z + + (* Once we have more interesting mode stuff, this won't be trivial. *) + let try_allow_l ({ layout = _; _ } as t) = Some t + + (* Once we have more interesting mode stuff, this won't be trivial. *) + let try_allow_r ({ layout = _; _ } as t) = Some t + + let sub ?(allow_any_crossing = false) sub_layout + { layout = lay1; + modes_upper_bounds = modes1; + externality_upper_bound = ext1; + nullability_upper_bound = null1 + } + { layout = lay2; + modes_upper_bounds = modes2; + externality_upper_bound = ext2; + nullability_upper_bound = null2 + } = + let modes : Misc.Le_result.t = + if allow_any_crossing then Equal else Modes.less_or_equal modes1 modes2 + in + Misc.Le_result.combine_list + [ sub_layout lay1 lay2; + modes; + Externality.less_or_equal ext1 ext2; + Nullability.less_or_equal null1 null2 ] + [@@inline] + + let format format_layout ppf + { layout; + modes_upper_bounds; + externality_upper_bound; + nullability_upper_bound + } = + Format.fprintf ppf + "{ layout = %a;@ modes_upper_bounds = %a;@ externality_upper_bound = \ + %a;@ nullability_upper_bound = %a }" + format_layout layout Mode.Alloc.Const.print modes_upper_bounds + Externality.print externality_upper_bound Nullability.print + nullability_upper_bound +end + +module Jkind_desc = struct + type ('type_expr, 'd) t = (Sort.t Layout.t, 'd) Layout_and_axes.t + + type 'type_expr packed = Pack : ('type_expr, 'd) t -> 'type_expr packed + [@@unboxed] +end + +(* A history of conditions placed on a jkind. + + INVARIANT: at most one sort variable appears in this history. + This is a natural consequence of producing this history by comparing + jkinds. +*) +type 'type_expr history = + | Interact of + { reason : Jkind_intf.History.interact_reason; + jkind1 : 'type_expr Jkind_desc.packed; + history1 : 'type_expr history; + jkind2 : 'type_expr Jkind_desc.packed; + history2 : 'type_expr history + } + | Creation of Jkind_intf.History.creation_reason + +type ('type_expr, 'd) t = + { jkind : ('type_expr, 'd) Jkind_desc.t; + annotation : Parsetree.jkind_annotation option; + history : 'type_expr history; + has_warned : bool + } + +module Const = struct + type ('type_expr, +'d) t = (Layout.Const.t, 'd) Layout_and_axes.t +end diff --git a/upstream/ocaml_flambda/typing/jkind_types.mli b/upstream/ocaml_flambda/typing/jkind_types.mli index 0103bd4c7..54684d45e 100644 --- a/upstream/ocaml_flambda/typing/jkind_types.mli +++ b/upstream/ocaml_flambda/typing/jkind_types.mli @@ -16,16 +16,16 @@ types in this file) rather than using this file directly, unless you are in [Types] or [Primitive]. *) -(* This module defines types used in the module Jkind. This is to avoid a mutual - dependencies between jkind.ml(i) and types.ml(i) and bewteen jkind.ml(i) and - primitive.ml(i). Polymorphic versions of types are defined here, with type - parameters that are meant to be filled by types defined in - types.ml(i). jkind.ml(i) redefines the types from this file types.ml with the - type variables instantiated. types.ml also redefines the types from this file - with the type variables instantiated, but only for internal - use. primitive.ml(i) uses the type [Jkind.Const.t], and types.ml(i) depends - on primitive.ml(i), so [Jkind.Const.t] is defined here and primitive.ml(i) - also uses this module. +(* This module defines types used in the module Jkind. This is to avoid + a mutual dependencies between jkind.ml(i) and types.ml(i) and bewteen + jkind.ml(i) and primitive.ml(i). Polymorphic versions of types are defined + here, with type parameters that are meant to be filled by types defined in + types.ml(i). jkind.ml(i) redefines the types from this file types.ml + with the type variables instantiated. types.ml also redefines the types + from this file with the type variables instantiated, but only for internal + use. primitive.ml(i) uses the type [Jkind.const], and types.ml(i) depends on + prmitive.ml(i), so [Jkind.const] is defined here and primitive.ml(i) also + uses this module. Dependency chain without Jkind_types: _____________________ @@ -105,3 +105,81 @@ module Layout : sig | Product of t list end end + +module Layout_and_axes : sig + open Allowance + + (* We need the variance annotation here to allow [any_dummy_jkind] to be + polymorphic in its allowances. Otherwise the value restriction bites. + Sigh. *) + type ('layout, +'d) t = + { layout : 'layout; + modes_upper_bounds : Mode.Alloc.Const.t; + externality_upper_bound : Jkind_axis.Externality.t; + nullability_upper_bound : Jkind_axis.Nullability.t + } + constraint 'd = 'l * 'r + + val map : ('a -> 'b) -> ('a, 'd) t -> ('b, 'd) t + + val map_option : ('a -> 'b option) -> ('a, 'd) t -> ('b, 'd) t option + + val equal : + ('layout -> 'layout -> bool) -> + ('layout, allowed * allowed) t -> + ('layout, allowed * allowed) t -> + bool + + (* An equality check should work over [lr]s only. But we need this + to do memoization in serialization. Happily, that's after all + inference is done, when worrying about l and r does not matter + any more. *) + val equal_after_all_inference_is_done : + ('layout -> 'layout -> bool) -> ('layout, 'd1) t -> ('layout, 'd2) t -> bool + + val try_allow_l : ('layout, 'l * 'r) t -> ('layout, allowed * 'r) t option + + val try_allow_r : ('layout, 'l * 'r) t -> ('layout, 'l * allowed) t option + + val sub : + ?allow_any_crossing:bool -> + ('layout -> 'layout -> Misc.Le_result.t) -> + ('layout, allowed * 'r) t -> + ('layout, 'l * allowed) t -> + Misc.Le_result.t + + val format : + (Format.formatter -> 'layout -> unit) -> + Format.formatter -> + ('layout, 'd) t -> + unit +end + +module Jkind_desc : sig + type ('type_expr, +'d) t = (Sort.t Layout.t, 'd) Layout_and_axes.t + + type 'type_expr packed = Pack : ('type_expr, 'd) t -> 'type_expr packed + [@@unboxed] +end + +type 'type_expr history = + | Interact of + { reason : Jkind_intf.History.interact_reason; + jkind1 : 'type_expr Jkind_desc.packed; + history1 : 'type_expr history; + jkind2 : 'type_expr Jkind_desc.packed; + history2 : 'type_expr history + } + | Creation of Jkind_intf.History.creation_reason + +type ('type_expr, +'d) t = + { jkind : ('type_expr, 'd) Jkind_desc.t; + annotation : Parsetree.jkind_annotation option; + history : 'type_expr history; + has_warned : bool + } + +(** CR layouts v2.8: remove this when printing is improved *) +module Const : sig + type ('type_expr, +'d) t = (Layout.Const.t, 'd) Layout_and_axes.t +end diff --git a/upstream/ocaml_flambda/typing/mode.ml b/upstream/ocaml_flambda/typing/mode.ml index 24be03f62..e91a84017 100644 --- a/upstream/ocaml_flambda/typing/mode.ml +++ b/upstream/ocaml_flambda/typing/mode.ml @@ -352,142 +352,76 @@ module Lattices = struct end) end - type monadic = - { uniqueness : Uniqueness.t; - contention : Contention.t - } + type monadic = Uniqueness.t * Contention.t module Monadic = struct type t = monadic - let min = - let uniqueness = Uniqueness.min in - let contention = Contention.min in - { uniqueness; contention } + let min = Uniqueness.min, Contention.min - let max = - let uniqueness = Uniqueness.max in - let contention = Contention.max in - { uniqueness; contention } + let max = Uniqueness.max, Contention.max - let legacy = - let uniqueness = Uniqueness.legacy in - let contention = Contention.legacy in - { uniqueness; contention } - - let le m1 m2 = - let { uniqueness = uniqueness1; contention = contention1 } = m1 in - let { uniqueness = uniqueness2; contention = contention2 } = m2 in - Uniqueness.le uniqueness1 uniqueness2 - && Contention.le contention1 contention2 - - let join m1 m2 = - let uniqueness = Uniqueness.join m1.uniqueness m2.uniqueness in - let contention = Contention.join m1.contention m2.contention in - { uniqueness; contention } - - let meet m1 m2 = - let uniqueness = Uniqueness.meet m1.uniqueness m2.uniqueness in - let contention = Contention.meet m1.contention m2.contention in - { uniqueness; contention } - - let imply m1 m2 = - let uniqueness = Uniqueness.imply m1.uniqueness m2.uniqueness in - let contention = Contention.imply m1.contention m2.contention in - { uniqueness; contention } - - let subtract m1 m2 = - let uniqueness = Uniqueness.subtract m1.uniqueness m2.uniqueness in - let contention = Contention.subtract m1.contention m2.contention in - { uniqueness; contention } + let legacy = Uniqueness.legacy, Contention.legacy - let print ppf m = - Format.fprintf ppf "%a,%a" Uniqueness.print m.uniqueness Contention.print - m.contention + let le (a0, a1) (b0, b1) = Uniqueness.le a0 b0 && Contention.le a1 b1 + + let join (a0, a1) (b0, b1) = Uniqueness.join a0 b0, Contention.join a1 b1 + + let meet (a0, a1) (b0, b1) = Uniqueness.meet a0 b0, Contention.meet a1 b1 + + let imply (a0, a1) (b0, b1) = Uniqueness.imply a0 b0, Contention.imply a1 b1 + + let subtract (a0, a1) (b0, b1) = + Uniqueness.subtract a0 b0, Contention.subtract a1 b1 + + let print ppf (a0, a1) = + Format.fprintf ppf "%a,%a" Uniqueness.print a0 Contention.print a1 end type 'areality comonadic_with = - { areality : 'areality; - linearity : Linearity.t; - portability : Portability.t; - yielding : Yielding.t - } + 'areality * Linearity.t * Portability.t * Yielding.t module Comonadic_with (Areality : Areality) = struct type t = Areality.t comonadic_with - let min = - let areality = Areality.min in - let linearity = Linearity.min in - let portability = Portability.min in - let yielding = Yielding.min in - { areality; linearity; portability; yielding } + let min = Areality.min, Linearity.min, Portability.min, Yielding.min - let max = - let areality = Areality.max in - let linearity = Linearity.max in - let portability = Portability.max in - let yielding = Yielding.max in - { areality; linearity; portability; yielding } + let max = Areality.max, Linearity.max, Portability.max, Yielding.max let legacy = - let areality = Areality.legacy in - let linearity = Linearity.legacy in - let portability = Portability.legacy in - let yielding = Yielding.legacy in - { areality; linearity; portability; yielding } - - let le m1 m2 = - let { areality = areality1; - linearity = linearity1; - portability = portability1; - yielding = yielding1 - } = - m1 - in - let { areality = areality2; - linearity = linearity2; - portability = portability2; - yielding = yielding2 - } = - m2 - in - Areality.le areality1 areality2 - && Linearity.le linearity1 linearity2 - && Portability.le portability1 portability2 - && Yielding.le yielding1 yielding2 - - let join m1 m2 = - let areality = Areality.join m1.areality m2.areality in - let linearity = Linearity.join m1.linearity m2.linearity in - let portability = Portability.join m1.portability m2.portability in - let yielding = Yielding.join m1.yielding m2.yielding in - { areality; linearity; portability; yielding } - - let meet m1 m2 = - let areality = Areality.meet m1.areality m2.areality in - let linearity = Linearity.meet m1.linearity m2.linearity in - let portability = Portability.meet m1.portability m2.portability in - let yielding = Yielding.meet m1.yielding m2.yielding in - { areality; linearity; portability; yielding } - - let imply m1 m2 = - let areality = Areality.imply m1.areality m2.areality in - let linearity = Linearity.imply m1.linearity m2.linearity in - let portability = Portability.imply m1.portability m2.portability in - let yielding = Yielding.imply m1.yielding m2.yielding in - { areality; linearity; portability; yielding } - - let subtract m1 m2 = - let areality = Areality.subtract m1.areality m2.areality in - let linearity = Linearity.subtract m1.linearity m2.linearity in - let portability = Portability.subtract m1.portability m2.portability in - let yielding = Yielding.subtract m1.yielding m2.yielding in - { areality; linearity; portability; yielding } - - let print ppf m = - Format.fprintf ppf "%a,%a,%a,%a" Areality.print m.areality Linearity.print - m.linearity Portability.print m.portability Yielding.print m.yielding + Areality.legacy, Linearity.legacy, Portability.legacy, Yielding.legacy + + let le (a0, a1, a2, a3) (b0, b1, b2, b3) = + Areality.le a0 b0 && Linearity.le a1 b1 && Portability.le a2 b2 + && Yielding.le a3 b3 + + let join (a0, a1, a2, a3) (b0, b1, b2, b3) = + ( Areality.join a0 b0, + Linearity.join a1 b1, + Portability.join a2 b2, + Yielding.join a3 b3 ) + + let meet (a0, a1, a2, a3) (b0, b1, b2, b3) = + ( Areality.meet a0 b0, + Linearity.meet a1 b1, + Portability.meet a2 b2, + Yielding.meet a3 b3 ) + + let imply (a0, a1, a2, a3) (b0, b1, b2, b3) = + ( Areality.imply a0 b0, + Linearity.imply a1 b1, + Portability.imply a2 b2, + Yielding.imply a3 b3 ) + + let subtract (a0, a1, a2, a3) (b0, b1, b2, b3) = + ( Areality.subtract a0 b0, + Linearity.subtract a1 b1, + Portability.subtract a2 b2, + Yielding.subtract a3 b3 ) + + let print ppf (a0, a1, a2, a3) = + Format.fprintf ppf "%a,%a,%a,%a" Areality.print a0 Linearity.print a1 + Portability.print a2 Yielding.print a3 end [@@inline] @@ -673,7 +607,7 @@ module Lattices_mono = struct let print : type p r. _ -> (p, r) t -> unit = fun ppf -> function - | Areality -> Format.fprintf ppf "locality" + | Areality -> Format.fprintf ppf "areality" | Linearity -> Format.fprintf ppf "linearity" | Portability -> Format.fprintf ppf "portability" | Uniqueness -> Format.fprintf ppf "uniqueness" @@ -696,23 +630,23 @@ module Lattices_mono = struct let proj : type p r. (p, r) t -> p -> r = fun ax t -> - match ax with - | Areality -> t.areality - | Linearity -> t.linearity - | Portability -> t.portability - | Yielding -> t.yielding - | Uniqueness -> t.uniqueness - | Contention -> t.contention + match ax, t with + | Areality, (a, _, _, _) -> a + | Linearity, (_, lin, _, _) -> lin + | Portability, (_, _, s, _) -> s + | Yielding, (_, _, _, yld) -> yld + | Uniqueness, (uni, _) -> uni + | Contention, (_, con) -> con let update : type p r. (p, r) t -> r -> p -> p = fun ax r t -> - match ax with - | Areality -> { t with areality = r } - | Linearity -> { t with linearity = r } - | Portability -> { t with portability = r } - | Yielding -> { t with yielding = r } - | Uniqueness -> { t with uniqueness = r } - | Contention -> { t with contention = r } + match ax, t with + | Areality, (_, lin, portable, yld) -> r, lin, portable, yld + | Linearity, (area, _, portable, yld) -> area, r, portable, yld + | Portability, (area, lin, _, yld) -> area, lin, r, yld + | Yielding, (area, lin, portable, _) -> area, lin, portable, r + | Uniqueness, (_, con) -> r, con + | Contention, (uni, _) -> uni, r end type ('a, 'b, 'd) morph = @@ -865,7 +799,7 @@ module Lattices_mono = struct end) let set_areality : type a0 a1. a1 -> a0 comonadic_with -> a1 comonadic_with = - fun r t -> { t with areality = r } + fun r (_, lin, portable, yld) -> r, lin, portable, yld let proj_obj : type t r. (t, r) Axis.t -> t obj -> r obj = fun ax obj -> @@ -1050,36 +984,42 @@ module Lattices_mono = struct let monadic_to_comonadic_min : type a. a comonadic_with obj -> Monadic_op.t -> a comonadic_with = - fun obj m -> - let areality : a = - match obj with - | Comonadic_with_locality -> Locality.min - | Comonadic_with_regionality -> Regionality.min - in - let linearity = unique_to_linear m.uniqueness in - let portability = contended_to_portable m.contention in - let yielding = Yielding.min in - { areality; linearity; portability; yielding } + fun obj (uniqueness, contention) -> + match obj with + | Comonadic_with_locality -> + ( Locality.min, + unique_to_linear uniqueness, + contended_to_portable contention, + Yielding.min ) + | Comonadic_with_regionality -> + ( Regionality.min, + unique_to_linear uniqueness, + contended_to_portable contention, + Yielding.min ) let comonadic_to_monadic : type a. a comonadic_with obj -> a comonadic_with -> Monadic_op.t = - fun _ m -> - let uniqueness = linear_to_unique m.linearity in - let contention = portable_to_contended m.portability in - { uniqueness; contention } + fun obj (_, linearity, portability, _) -> + match obj with + | Comonadic_with_locality -> + linear_to_unique linearity, portable_to_contended portability + | Comonadic_with_regionality -> + linear_to_unique linearity, portable_to_contended portability let monadic_to_comonadic_max : type a. a comonadic_with obj -> Monadic_op.t -> a comonadic_with = - fun obj m -> - let areality : a = - match obj with - | Comonadic_with_locality -> Locality.max - | Comonadic_with_regionality -> Regionality.max - in - let linearity = unique_to_linear m.uniqueness in - let portability = contended_to_portable m.contention in - let yielding = Yielding.max in - { areality; linearity; portability; yielding } + fun obj (uniqueness, contention) -> + match obj with + | Comonadic_with_locality -> + ( Locality.max, + unique_to_linear uniqueness, + contended_to_portable contention, + Yielding.max ) + | Comonadic_with_regionality -> + ( Regionality.max, + unique_to_linear uniqueness, + contended_to_portable contention, + Yielding.max ) let rec apply : type a b d. b obj -> (a, b, d) morph -> a -> b = fun dst f a -> @@ -1340,17 +1280,9 @@ end module C = Lattices_mono module S = Solvers_polarized (C) -type monadic = C.monadic = - { uniqueness : C.Uniqueness.t; - contention : C.Contention.t - } +type monadic = C.monadic -type 'a comonadic_with = 'a C.comonadic_with = - { areality : 'a; - linearity : C.Linearity.t; - portability : C.Portability.t; - yielding : C.Yielding.t - } +type 'a comonadic_with = 'a C.comonadic_with module Axis = C.Axis @@ -1583,7 +1515,6 @@ end module Uniqueness = struct module Const = C.Uniqueness - module Const_op = C.Uniqueness_op module Obj = struct type const = Const.t @@ -1607,7 +1538,6 @@ end module Contention = struct module Const = C.Contention - module Const_op = C.Contention_op module Obj = struct type const = Const.t @@ -1675,7 +1605,9 @@ module Comonadic_with (Areality : Areality) = struct type equate_error = equate_step * error - let proj_obj ax = C.proj_obj ax Obj.obj + open Obj + + let proj_obj ax = C.proj_obj ax obj module Const = struct include C.Comonadic_with (Areality.Const) @@ -1694,89 +1626,55 @@ module Comonadic_with (Areality : Areality) = struct let obj = proj_obj ax in C.max obj - let max_with ax c = Axis.update ax c (C.max Obj.obj) + let max_with ax c = Axis.update ax c (C.max obj) let print_axis ax ppf a = let obj = proj_obj ax in C.print obj ppf a - - let lattice_of_axis (type a) (axis : (t, a) Axis.t) : - (module Lattice with type t = a) = - match axis with - | Areality -> (module Areality.Const) - | Linearity -> (module Linearity.Const) - | Portability -> (module Portability.Const) - | Yielding -> (module Yielding.Const) end - let proj ax m = Obj.Solver.via_monotone (proj_obj ax) (Proj (Obj.obj, ax)) m + let proj ax m = Solver.via_monotone (proj_obj ax) (Proj (Obj.obj, ax)) m - let meet_const c m = Obj.Solver.via_monotone Obj.obj (Meet_with c) m + let meet_const c m = Solver.via_monotone obj (Meet_with c) m - let join_const c m = Obj.Solver.via_monotone Obj.obj (Join_with c) m + let join_const c m = Solver.via_monotone obj (Join_with c) m let min_with ax m = - Obj.Solver.via_monotone Obj.obj (Min_with ax) (Obj.Solver.disallow_right m) + Solver.via_monotone Obj.obj (Min_with ax) (Solver.disallow_right m) let max_with ax m = - Obj.Solver.via_monotone Obj.obj (Max_with ax) (Obj.Solver.disallow_left m) + Solver.via_monotone Obj.obj (Max_with ax) (Solver.disallow_left m) let join_with ax c m = join_const (C.min_with Obj.obj ax c) m let meet_with ax c m = meet_const (C.max_with Obj.obj ax c) m - let zap_to_legacy m : Const.t = + let zap_to_legacy m = let areality = proj Areality m |> Areality.zap_to_legacy in let linearity = proj Linearity m |> Linearity.zap_to_legacy in let portability = proj Portability m |> Portability.zap_to_legacy in let yielding = proj Yielding m |> Yielding.zap_to_legacy in - { areality; linearity; portability; yielding } - - let imply c m = - Obj.Solver.via_monotone Obj.obj (Imply c) (Obj.Solver.disallow_left m) + areality, linearity, portability, yielding - let subtract c m = - Obj.Solver.via_monotone Obj.obj (Subtract c) (Obj.Solver.disallow_right m) + let imply c m = Solver.via_monotone obj (Imply c) (Solver.disallow_left m) let legacy = of_const Const.legacy - let axis_of_error (err : Obj.const Solver.error) : error = - let { left = - { areality = areality1; - linearity = linearity1; - portability = portability1; - yielding = yielding1 - }; - right = - { areality = areality2; - linearity = linearity2; - portability = portability2; - yielding = yielding2 - } - } = - err - in - if Areality.Const.le areality1 areality2 + let axis_of_error + { left = area0, lin0, port0, yld0; right = area1, lin1, port1, yld1 } : + error = + if Areality.Const.le area0 area1 then - if Linearity.Const.le linearity1 linearity2 + if Linearity.Const.le lin0 lin1 then - if Portability.Const.le portability1 portability2 + if Portability.Const.le port0 port1 then - if Yielding.Const.le yielding1 yielding2 + if Yielding.Const.le yld0 yld1 then assert false - else - Error - ( Yielding, - { left = err.left.yielding; right = err.right.yielding } ) - else - Error - ( Portability, - { left = err.left.portability; right = err.right.portability } ) - else - Error - (Linearity, { left = err.left.linearity; right = err.right.linearity }) - else - Error (Areality, { left = err.left.areality; right = err.right.areality }) + else Error (Yielding, { left = yld0; right = yld1 }) + else Error (Portability, { left = port0; right = port1 }) + else Error (Linearity, { left = lin0; right = lin1 }) + else Error (Areality, { left = area0; right = area1 }) (* overriding to report the offending axis *) let submode_log m0 m1 ~log : _ result = @@ -1808,7 +1706,9 @@ module Monadic = struct type equate_error = equate_step * error - let proj_obj ax = C.proj_obj ax Obj.obj + open Obj + + let proj_obj ax = C.proj_obj ax obj module Const = struct include C.Monadic @@ -1816,7 +1716,7 @@ module Monadic = struct (* CR zqian: The flipping logic leaking to here is bad. Refactoring needed. *) (* Monadic fragment is flipped, so are the following definitions. *) - let min_with ax c = Axis.update ax c (C.max Obj.obj) + let min_with ax c = Axis.update ax c (C.max obj) let min_axis ax = let obj = proj_obj ax in @@ -1829,67 +1729,44 @@ module Monadic = struct let le_axis ax a b = let obj = proj_obj ax in C.le obj b a - - let lattice_of_axis (type a) (axis : (t, a) Axis.t) : - (module Lattice with type t = a) = - match axis with - | Uniqueness -> (module Uniqueness.Const_op) - | Contention -> (module Contention.Const_op) end - module Const_op = C.Monadic_op - - let proj ax m = Obj.Solver.via_monotone (proj_obj ax) (Proj (Obj.obj, ax)) m + let proj ax m = Solver.via_monotone (proj_obj ax) (Proj (Obj.obj, ax)) m (* The monadic fragment is inverted. Most of the inversion logic is taken care by [Solver_polarized], but some remain, such as the [Min_with] below which is inverted from [Max_with]. *) - let meet_const c m = Obj.Solver.via_monotone Obj.obj (Join_with c) m + let meet_const c m = Solver.via_monotone obj (Join_with c) m - let join_const c m = Obj.Solver.via_monotone Obj.obj (Meet_with c) m + let join_const c m = Solver.via_monotone obj (Meet_with c) m let max_with ax m = - Obj.Solver.via_monotone Obj.obj (Min_with ax) (Obj.Solver.disallow_left m) + Solver.via_monotone Obj.obj (Min_with ax) (Solver.disallow_left m) let min_with ax m = - Obj.Solver.via_monotone Obj.obj (Max_with ax) (Obj.Solver.disallow_right m) + Solver.via_monotone Obj.obj (Max_with ax) (Solver.disallow_right m) let join_with ax c m = join_const (C.max_with Obj.obj ax c) m let meet_with ax c m = meet_const (C.min_with Obj.obj ax c) m - let imply c m = - Obj.Solver.via_monotone Obj.obj (Subtract c) (Obj.Solver.disallow_left m) - - let subtract c m = - Obj.Solver.via_monotone Obj.obj (Imply c) (Obj.Solver.disallow_right m) + let imply c m = Solver.via_monotone obj (Subtract c) (Solver.disallow_left m) - let zap_to_legacy m : Const.t = + let zap_to_legacy m = let uniqueness = proj Uniqueness m |> Uniqueness.zap_to_legacy in let contention = proj Contention m |> Contention.zap_to_legacy in - { uniqueness; contention } + uniqueness, contention let legacy = of_const Const.legacy - let axis_of_error (err : Obj.const Solver.error) : error = - let { left = { uniqueness = uniqueness1; contention = contention1 }; - right = { uniqueness = uniqueness2; contention = contention2 } - } = - err - in - if Uniqueness.Const.le uniqueness1 uniqueness2 + let axis_of_error { left = uni0, con0; right = uni1, con1 } : error = + if Uniqueness.Const.le uni0 uni1 then - if Contention.Const.le contention1 contention2 + if Contention.Const.le con0 con1 then assert false - else - Error - ( Contention, - { left = err.left.contention; right = err.right.contention } ) - else - Error - ( Uniqueness, - { left = err.left.uniqueness; right = err.right.uniqueness } ) + else Error (Contention, { left = con0; right = con1 }) + else Error (Uniqueness, { left = uni0; right = uni1 }) (* overriding to report the offending axis *) let submode_log m0 m1 ~log : _ result = @@ -1928,26 +1805,6 @@ module Value_with (Areality : Areality) = struct (Comonadic.Const.t, 'a) Axis.t -> (('a, 'd) mode_comonadic, 'a, 'd) axis - type 'd axis_packed = P : ('m, 'a, 'd) axis -> 'd axis_packed - - let print_axis (type m a d) ppf (axis : (m, a, d) axis) = - match axis with - | Monadic ax -> Axis.print ppf ax - | Comonadic ax -> Axis.print ppf ax - - let lattice_of_axis (type m a d) (axis : (m, a, d) axis) : - (module Lattice with type t = a) = - match axis with - | Comonadic ax -> Comonadic.Const.lattice_of_axis ax - | Monadic ax -> Monadic.Const.lattice_of_axis ax - - let all_axes = - [ P (Comonadic Areality); - P (Monadic Uniqueness); - P (Comonadic Linearity); - P (Monadic Contention); - P (Comonadic Portability) ] - let proj_obj : type m a d. (m, a, d) axis -> a C.obj = function | Monadic ax -> Monadic.proj_obj ax | Comonadic ax -> Comonadic.proj_obj ax @@ -1962,19 +1819,15 @@ module Value_with (Areality : Areality) = struct } let split - { areality; linearity; portability; yielding; uniqueness; contention } = - let monadic : Monadic.Const.t = { uniqueness; contention } in - let comonadic : Comonadic.Const.t = - { areality; linearity; portability; yielding } - in + { areality; linearity; portability; uniqueness; contention; yielding } = + let monadic = uniqueness, contention in + let comonadic = areality, linearity, portability, yielding in { comonadic; monadic } let merge { comonadic; monadic } = - let ({ areality; linearity; portability; yielding } : Comonadic.Const.t) = - comonadic - in - let ({ uniqueness; contention } : Monadic.Const.t) = monadic in - { areality; linearity; portability; yielding; uniqueness; contention } + let areality, linearity, portability, yielding = comonadic in + let uniqueness, contention = monadic in + { areality; linearity; portability; uniqueness; contention; yielding } let print ?verbose () ppf { monadic; comonadic } = Format.fprintf ppf "%a;%a" @@ -1990,9 +1843,6 @@ module Value_with (Areality : Areality) = struct { comonadic; monadic } module Const = struct - module Monadic = Monadic.Const - module Comonadic = Comonadic.Const - type t = ( Areality.Const.t, Linearity.Const.t, @@ -2002,6 +1852,9 @@ module Value_with (Areality : Areality) = struct Yielding.Const.t ) modes + module Monadic = Monadic.Const + module Comonadic = Comonadic.Const + let min = merge { comonadic = Comonadic.min; monadic = Monadic.min } let max = merge { comonadic = Comonadic.max; monadic = Monadic.max } @@ -2139,12 +1992,6 @@ module Value_with (Areality : Areality) = struct | Comonadic ax -> Comonadic.max_axis ax | Monadic ax -> Monadic.max_axis ax - let is_max : type m a d. (m, a, d) axis -> a -> bool = - fun ax m -> le_axis ax (max_axis ax) m - - let is_min : type m a d. (m, a, d) axis -> a -> bool = - fun ax m -> le_axis ax m (min_axis ax) - let split = split let merge = merge @@ -2343,18 +2190,6 @@ module Value_with (Areality : Areality) = struct let monadic = Monadic.imply c.monadic monadic in { monadic; comonadic } - let join_const c { comonadic; monadic } = - let c = split c in - let comonadic = Comonadic.join_const c.comonadic comonadic in - let monadic = Monadic.join_const c.monadic monadic in - { monadic; comonadic } - - let subtract c { comonadic; monadic } = - let c = split c in - let comonadic = Comonadic.subtract c.comonadic comonadic in - let monadic = Monadic.subtract c.monadic monadic in - { monadic; comonadic } - let zap_to_ceil { comonadic; monadic } = let monadic = Monadic.zap_to_ceil monadic in let comonadic = Comonadic.zap_to_ceil comonadic in @@ -2415,17 +2250,6 @@ module Const = struct let areality = C.locality_as_regionality areality in { areality; linearity; portability; uniqueness; contention; yielding } - module Axis = struct - let alloc_as_value : type d. d Alloc.axis_packed -> d Value.axis_packed = - function - | P (Comonadic Areality) -> P (Comonadic Areality) - | P (Comonadic Linearity) -> P (Comonadic Linearity) - | P (Comonadic Portability) -> P (Comonadic Portability) - | P (Comonadic Yielding) -> P (Comonadic Yielding) - | P (Monadic Uniqueness) -> P (Monadic Uniqueness) - | P (Monadic Contention) -> P (Monadic Contention) - end - let locality_as_regionality = C.locality_as_regionality end @@ -2471,13 +2295,8 @@ module Modality = struct let is_id (Atom (ax, a)) = match a with - | Join_with c -> Value.Const.is_min ax c - | Meet_with c -> Value.Const.is_max ax c - - let is_constant (Atom (ax, a)) = - match a with - | Join_with c -> Value.Const.is_max ax c - | Meet_with c -> Value.Const.is_min ax c + | Join_with c -> Value.Const.le_axis ax c (Value.Const.min_axis ax) + | Meet_with c -> Value.Const.le_axis ax (Value.Const.max_axis ax) c let print ppf = function | Atom (ax, Join_with c) -> @@ -2536,9 +2355,6 @@ module Modality = struct (let ax : _ Axis.t = Contention in Atom (Monadic ax, Join_with (Axis.proj ax c))) ] - let proj ax = function - | Join_const c -> Atom (Monadic ax, Join_with (Axis.proj ax c)) - let print ppf = function | Join_const c -> Format.fprintf ppf "join_const(%a)" Mode.Const.print c end @@ -2680,9 +2496,6 @@ module Modality = struct (let ax : _ Axis.t = Portability in Atom (Comonadic ax, Meet_with (Axis.proj ax c))) ] - let proj ax = function - | Meet_const c -> Atom (Comonadic ax, Meet_with (Axis.proj ax c)) - let print ppf = function | Meet_const c -> Format.fprintf ppf "meet_const(%a)" Mode.Const.print c end @@ -2820,21 +2633,10 @@ module Modality = struct let comonadic = Comonadic.concat ~then_:then_.comonadic t.comonadic in { monadic; comonadic } - let of_list = List.fold_left (fun m atom -> compose m ~then_:atom) id - let singleton a = compose ~then_:a id let to_list { monadic; comonadic } = Comonadic.to_list comonadic @ Monadic.to_list monadic - - let proj (type m a d) (ax : (m, a, d) Value.axis) { monadic; comonadic } = - match ax with - | Monadic ax -> Monadic.proj ax monadic - | Comonadic ax -> Comonadic.proj ax comonadic - - let print ppf { monadic; comonadic } = - Format.fprintf ppf "%a;%a" Monadic.print monadic Comonadic.print - comonadic end type t = (Monadic.t, Comonadic.t) monadic_comonadic diff --git a/upstream/ocaml_flambda/typing/mode_intf.mli b/upstream/ocaml_flambda/typing/mode_intf.mli index 34f5445c7..7ac52b76e 100644 --- a/upstream/ocaml_flambda/typing/mode_intf.mli +++ b/upstream/ocaml_flambda/typing/mode_intf.mli @@ -229,8 +229,6 @@ module type S = sig include Lattice with type t := t end - module Const_op : Lattice with type t = Const.t - type error = Const.t Solver.error include @@ -256,8 +254,6 @@ module type S = sig include Lattice with type t := t end - module Const_op : Lattice with type t = Const.t - type error = Const.t Solver.error include @@ -285,17 +281,10 @@ module type S = sig and type 'd t = (Const.t, 'd) mode_comonadic end - type 'a comonadic_with = - { areality : 'a; - linearity : Linearity.Const.t; - portability : Portability.Const.t; - yielding : Yielding.Const.t - } + type 'a comonadic_with = private + 'a * Linearity.Const.t * Portability.Const.t * Yielding.Const.t - type monadic = - { uniqueness : Uniqueness.Const.t; - contention : Contention.Const.t - } + type monadic = private Uniqueness.Const.t * Contention.Const.t module Axis : sig (** ('p, 'r) t represents a projection from a product of type ['p] to an @@ -309,27 +298,17 @@ module type S = sig | Contention : (monadic, Contention.Const.t) t val print : Format.formatter -> ('p, 'r) t -> unit - - val eq : ('p, 'r0) t -> ('p, 'r1) t -> ('r0, 'r1) Misc.eq option end module type Mode := sig module Areality : Common module Monadic : sig - module Const : sig - include Lattice with type t = monadic - - val max_axis : (t, 'a) Axis.t -> 'a - - val min_axis : (t, 'a) Axis.t -> 'a - end - - module Const_op : Lattice with type t = monadic + module Const : Lattice with type t = monadic include Common with module Const := Const - val join_const : Const.t -> ('l * 'r) t -> ('l * 'r) t + val imply : Const.t -> ('l * 'r) t -> (disallowed * 'r) t end module Comonadic : sig @@ -339,10 +318,6 @@ module type S = sig val eq : t -> t -> bool val print_axis : (t, 'a) Axis.t -> Format.formatter -> 'a -> unit - - val max_axis : (t, 'a) Axis.t -> 'a - - val min_axis : (t, 'a) Axis.t -> 'a end type error = Error : (Const.t, 'a) Axis.t * 'a Solver.error -> error @@ -362,16 +337,6 @@ module type S = sig (Comonadic.Const.t, 'a) Axis.t -> (('a, 'd) mode_comonadic, 'a, 'd) axis - type 'd axis_packed = P : ('m, 'a, 'd) axis -> 'd axis_packed - - val print_axis : Format.formatter -> ('m, 'a, 'd) axis -> unit - - (** Gets the normal lattice for comonadic axes and the "op"ped lattice for - monadic ones. *) - val lattice_of_axis : ('m, 'a, 'd) axis -> (module Lattice with type t = 'a) - - val all_axes : ('l * 'r) axis_packed list - type ('a, 'b, 'c, 'd, 'e, 'f) modes = { areality : 'a; linearity : 'b; @@ -412,10 +377,6 @@ module type S = sig val print : Format.formatter -> t -> unit end - val is_max : ('m, 'a, 'd) axis -> 'a -> bool - - val is_min : ('m, 'a, 'd) axis -> 'a -> bool - val split : t -> (Monadic.Const.t, Comonadic.Const.t) monadic_comonadic val merge : (Monadic.Const.t, Comonadic.Const.t) monadic_comonadic -> t @@ -469,10 +430,6 @@ module type S = sig val imply : Const.t -> ('l * 'r) t -> (disallowed * 'r) t - val join_const : Const.t -> ('l * 'r) t -> ('l * 'r) t - - val subtract : Const.t -> ('l * 'r) t -> ('l * disallowed) t - (* The following two are about the scenario where we partially apply a function [A -> B -> C] to [A] and get back [B -> C]. The mode of the three are constrained. *) @@ -498,10 +455,6 @@ module type S = sig module Const : sig val alloc_as_value : Alloc.Const.t -> Value.Const.t - module Axis : sig - val alloc_as_value : 'd Alloc.axis_packed -> 'd Value.axis_packed - end - val locality_as_regionality : Locality.Const.t -> Regionality.Const.t end @@ -541,9 +494,6 @@ module type S = sig (** Test if the given modality is the identity modality. *) val is_id : t -> bool - (** Test if the given modality is a constant modality. *) - val is_constant : t -> bool - (** Printing for debugging *) val print : Format.formatter -> t -> unit @@ -592,23 +542,12 @@ module type S = sig val singleton : atom -> t (** Returns the list of [atom] in the given modality. The list is - commutative. Post-condition: each axis is represented in the - output list exactly once. *) + commutative. *) val to_list : t -> atom list - (** Builds up a modality from a list of [atom], by composing each atom with - identity. The modalities are applied left to right. *) - val of_list : atom list -> t - - (** Project out the [atom] for the given axis in the given modality. *) - val proj : ('m, 'a, 'd) Value.axis -> t -> atom - (** [equate t0 t1] checks that [t0 = t1]. Definition: [t0 = t1] iff [t0 <= t1] and [t1 <= t0]. *) val equate : t -> t -> (unit, equate_error) Result.t - - (** Printing for debugging. *) - val print : Format.formatter -> t -> unit end (** A modality that acts on [Value] modes. Conceptually it is a sequnce of diff --git a/upstream/ocaml_flambda/typing/mtype.ml b/upstream/ocaml_flambda/typing/mtype.ml index d997b97ba..fe481fa5c 100644 --- a/upstream/ocaml_flambda/typing/mtype.ml +++ b/upstream/ocaml_flambda/typing/mtype.ml @@ -190,8 +190,6 @@ let rec scrape_lazy ~aliases env mty = | Some mty -> scrape_lazy ~aliases env mty | None -> mty -let reduce_alias_lazy env mty = reduce_lazy ~aliases:true env mty - let reduce_lazy env mty = reduce_lazy ~aliases:false env mty let reduce env mty = diff --git a/upstream/ocaml_flambda/typing/mtype.mli b/upstream/ocaml_flambda/typing/mtype.mli index f2c5d426b..cd095995c 100644 --- a/upstream/ocaml_flambda/typing/mtype.mli +++ b/upstream/ocaml_flambda/typing/mtype.mli @@ -27,8 +27,6 @@ val scrape_alias: Env.t -> module_type -> module_type or abstract module type ident. *) val reduce_lazy: Env.t -> Subst.Lazy.module_type -> Subst.Lazy.module_type option -val reduce_alias_lazy: - Env.t -> Subst.Lazy.module_type -> Subst.Lazy.module_type option val reduce: Env.t -> module_type -> module_type option (* Expand one toplevel module abbreviation. Return None if no expansion is possible. *) diff --git a/upstream/ocaml_flambda/typing/oprint.ml b/upstream/ocaml_flambda/typing/oprint.ml index c8ec4c9df..aae29e0b5 100644 --- a/upstream/ocaml_flambda/typing/oprint.ml +++ b/upstream/ocaml_flambda/typing/oprint.ml @@ -342,6 +342,50 @@ let pr_var = Pprintast.tyvar let ty_var ~non_gen ppf s = pr_var ppf (if non_gen then "_" ^ s else s) +let print_out_jkind_const ppf ojkind = + let rec pp_element ~nested ppf (ojkind : Outcometree.out_jkind_const) = + match ojkind with + | Ojkind_const_default -> fprintf ppf "_" + | Ojkind_const_abbreviation abbrev -> fprintf ppf "%s" abbrev + | Ojkind_const_mod (base, modes) -> + Misc.pp_parens_if nested (fun ppf (base, modes) -> + fprintf ppf "%a mod @[%a@]" (pp_element ~nested:true) base + (pp_print_list + ~pp_sep:(fun ppf () -> fprintf ppf "@ ") + (fun ppf -> fprintf ppf "%s")) + modes + ) ppf (base, modes) + | Ojkind_const_product ts -> + let pp_sep ppf () = Format.fprintf ppf "@ & " in + Misc.pp_nested_list ~nested ~pp_element ~pp_sep ppf ts + | Ojkind_const_with _ | Ojkind_const_kind_of _ -> + failwith "XXX unimplemented jkind syntax" + in + pp_element ~nested:false ppf ojkind + +let print_out_jkind ppf ojkind = + let rec pp_element ~nested ppf ojkind = + match ojkind with + | Ojkind_var v -> fprintf ppf "%s" v + | Ojkind_const jkind -> print_out_jkind_const ppf jkind + | Ojkind_product ts -> + let pp_sep ppf () = Format.fprintf ppf "@ & " in + Misc.pp_nested_list ~nested ~pp_element ~pp_sep ppf ts + in + pp_element ~nested:false ppf ojkind + +let print_out_jkind_annot ppf = function + | None -> () + | Some lay -> fprintf ppf "@ : %a" print_out_jkind lay + +let pr_var_jkind ppf (v, l) = match l with + | None -> pr_var ppf v + | Some lay -> fprintf ppf "(%a : %a)" + pr_var v + print_out_jkind lay + +let pr_var_jkinds = + print_list pr_var_jkind (fun ppf -> fprintf ppf "@ ") (* NON-LEGACY MODES Here, we are printing mode annotations even if the mode extension is @@ -615,90 +659,6 @@ and print_out_label ppf (name, mut, arg, gbl) = print_out_type arg print_out_modalities_new m_new -and print_out_jkind_const ppf ojkind = - let rec pp_element ~nested ppf (ojkind : Outcometree.out_jkind_const) = - (* HACK: we strip off the [Ojkind_const_with]s and convert them to a [string string - list] so we can sort them lexicographically, because otherwise the order of printed - [with]s is nondeterministic. This is sad, but we'd need deterministic sorting of - types to work around it. - - CR aspsmith: remove this if we ever add deterministic, semantic type comparison - *) - let rec strip_withs ojkind = - match ojkind with - | Ojkind_const_with (base, ty, modalities) -> - let base, withs = strip_withs base in - let with_ = - Format.asprintf "%a" print_out_type ty - :: (match modalities with - | [] -> [] - | modalities -> "@@" :: modalities) - in - base, with_ :: withs - | base -> base, [] - in - let base, withs = strip_withs ojkind in - (match base with - | Ojkind_const_default -> fprintf ppf "_" - | Ojkind_const_abbreviation abbrev -> fprintf ppf "%s" abbrev - | Ojkind_const_mod (base, modes) -> - let pp_base ppf base = - match base with - | Some base -> fprintf ppf "%a " (pp_element ~nested:true) base - | None -> () - in - Misc.pp_parens_if nested (fun ppf (base, modes) -> - fprintf ppf "%amod @[%a@]" pp_base base - (pp_print_list - ~pp_sep:(fun ppf () -> fprintf ppf "@ ") - (fun ppf -> fprintf ppf "%s")) - modes - ) ppf (base, modes) - | Ojkind_const_product ts -> - let pp_sep ppf () = Format.fprintf ppf "@ & " in - Misc.pp_nested_list ~nested ~pp_element ~pp_sep ppf ts - | Ojkind_const_with _ -> failwith "XXX unreachable (stripped off earlier)" - | Ojkind_const_kind_of _ -> - failwith "XXX unimplemented jkind syntax"); - let withs = List.sort (List.compare String.compare) withs in - match withs with - | [] -> () - | withs -> - pp_print_list - (fun ppf -> - Format.fprintf ppf "@ @[with %a@]" - (pp_print_list - ~pp_sep:(fun ppf () -> fprintf ppf " ") - (fun ppf -> Format.fprintf ppf "%s"))) - ppf - withs - in - pp_element ~nested:false ppf ojkind - -and print_out_jkind ppf ojkind = - let rec pp_element ~nested ppf ojkind = - match ojkind with - | Ojkind_var v -> fprintf ppf "%s" v - | Ojkind_const jkind -> print_out_jkind_const ppf jkind - | Ojkind_product ts -> - let pp_sep ppf () = Format.fprintf ppf "@ & " in - Misc.pp_nested_list ~nested ~pp_element ~pp_sep ppf ts - in - pp_element ~nested:false ppf ojkind - -and print_out_jkind_annot ppf = function - | None -> () - | Some lay -> fprintf ppf "@ : %a" print_out_jkind lay - -and pr_var_jkind ppf (v, l) = match l with - | None -> pr_var ppf v - | Some lay -> fprintf ppf "(%a : %a)" - pr_var v - print_out_jkind lay - -and pr_var_jkinds jks = - print_list pr_var_jkind (fun ppf -> fprintf ppf "@ ") jks - let out_label = ref print_out_label let out_modality = ref print_out_modality diff --git a/upstream/ocaml_flambda/typing/outcometree.mli b/upstream/ocaml_flambda/typing/outcometree.mli index d2045b25f..b22179616 100644 --- a/upstream/ocaml_flambda/typing/outcometree.mli +++ b/upstream/ocaml_flambda/typing/outcometree.mli @@ -104,9 +104,8 @@ type out_ret_mode = type out_jkind_const = | Ojkind_const_default | Ojkind_const_abbreviation of string - (** The base of [Ojkind_const_mod] is optional to enable printing individual axes *) - | Ojkind_const_mod of out_jkind_const option * string list - | Ojkind_const_with of out_jkind_const * out_type * out_modality_new list + | Ojkind_const_mod of out_jkind_const * string list + | Ojkind_const_with of out_jkind_const * out_type | Ojkind_const_kind_of of out_type | Ojkind_const_product of out_jkind_const list diff --git a/upstream/ocaml_flambda/typing/predef.ml b/upstream/ocaml_flambda/typing/predef.ml index db2e8e548..41b74b664 100644 --- a/upstream/ocaml_flambda/typing/predef.ml +++ b/upstream/ocaml_flambda/typing/predef.ml @@ -218,13 +218,7 @@ let option_argument_sort = Jkind.Sort.Const.value let option_argument_jkind = Jkind.Builtin.value ~why:( Type_argument {parent_path = path_option; position = 1; arity = 1}) -let list_jkind param = - Jkind.Builtin.immutable_data ~why:Boxed_variant |> - Jkind.add_with_bounds - ~modality:Mode.Modality.Value.Const.id - ~type_expr:param |> - Jkind.mark_best - +let list_jkind = Jkind.Builtin.value ~why:Boxed_variant let list_sort = Jkind.Sort.Const.value let list_argument_sort = Jkind.Sort.Const.value let list_argument_jkind = Jkind.Builtin.value ~why:( @@ -232,40 +226,37 @@ let list_argument_jkind = Jkind.Builtin.value ~why:( let or_null_argument_sort = Jkind.Sort.Const.value -let mk_add_type add_type = - let add_type_with_jkind +let mk_add_type add_type ?manifest type_ident ?(kind=Type_abstract Definition) - ~jkind + ?jkind env = - let decl = - {type_params = []; - type_arity = 0; - type_kind = kind; - type_jkind = Jkind.mark_best jkind; - type_loc = Location.none; - type_private = Asttypes.Public; - type_manifest = manifest; - type_variance = []; - type_separability = []; - type_is_newtype = false; - type_expansion_scope = lowest_level; - type_attributes = []; - type_unboxed_default = false; - type_uid = Uid.of_predef_id type_ident; - } - in - add_type type_ident decl env + let type_jkind = match jkind with + | None -> Jkind.Builtin.value ~why:(Primitive type_ident) + | Some k -> Jkind.of_builtin ~why:(Primitive type_ident) k in - let add_type ?manifest type_ident ?kind ~jkind env = - let jkind = Jkind.of_builtin ~why:(Primitive type_ident) jkind in - add_type_with_jkind ?manifest type_ident ?kind ~jkind env + let decl = + {type_params = []; + type_arity = 0; + type_kind = kind; + type_jkind; + type_loc = Location.none; + type_private = Asttypes.Public; + type_manifest = manifest; + type_variance = []; + type_separability = []; + type_is_newtype = false; + type_expansion_scope = lowest_level; + type_attributes = []; + type_unboxed_default = false; + type_uid = Uid.of_predef_id type_ident; + } in - add_type_with_jkind, add_type + add_type type_ident decl env let mk_add_type1 add_type type_ident ?(kind=fun _ -> Type_abstract Definition) - ~jkind + ?(jkind=Jkind.Builtin.value ~why:(Primitive type_ident)) ?(param_jkind=Jkind.Builtin.value ~why:( Type_argument { parent_path = Path.Pident type_ident; @@ -278,7 +269,7 @@ let mk_add_type1 add_type type_ident {type_params = [param]; type_arity = 1; type_kind = kind param; - type_jkind = Jkind.mark_best (jkind param); + type_jkind = jkind; type_loc = Location.none; type_private = Asttypes.Public; type_manifest = None; @@ -352,7 +343,7 @@ let unrestricted tvar ca_sort = (* CR layouts: Changes will be needed here as we add support for the built-ins to work with non-values, and as we relax the mixed block restriction. *) let build_initial_env add_type add_extension empty_env = - let add_type_with_jkind, add_type = mk_add_type add_type + let add_type = mk_add_type add_type and add_type1 = mk_add_type1 add_type and add_extension = mk_add_extension add_extension in empty_env @@ -362,27 +353,17 @@ let build_initial_env add_type add_extension empty_env = ~separability:Separability.Ind ~param_jkind:(Jkind.add_nullability_crossing (Jkind.Builtin.any ~why:Array_type_argument)) - ~jkind:(fun param -> - Jkind.Builtin.mutable_data ~why:(Primitive ident_array) |> - Jkind.add_with_bounds - ~modality:Mode.Modality.Value.Const.id - ~type_expr:param) |> add_type1 ident_iarray ~variance:Variance.covariant ~separability:Separability.Ind ~param_jkind:(Jkind.add_nullability_crossing (Jkind.Builtin.any ~why:Array_type_argument)) - ~jkind:(fun param -> - Jkind.Builtin.immutable_data ~why:(Primitive ident_iarray) |> - Jkind.add_with_bounds - ~modality:Mode.Modality.Value.Const.id - ~type_expr:param) |> add_type ident_bool ~kind:(variant [ cstr ident_false []; cstr ident_true []]) ~jkind:Jkind.Const.Builtin.immediate |> add_type ident_char ~jkind:Jkind.Const.Builtin.immediate |> add_type ident_exn ~kind:Type_open ~jkind:Jkind.Const.Builtin.value - |> add_type ident_extension_constructor ~jkind:Jkind.Const.Builtin.value + |> add_type ident_extension_constructor |> add_type ident_float ~jkind:Jkind.Const.Builtin.immutable_data |> add_type ident_floatarray ~jkind:Jkind.Const.Builtin.mutable_data |> add_type ident_int ~jkind:Jkind.Const.Builtin.immediate @@ -391,12 +372,6 @@ let build_initial_env add_type add_extension empty_env = |> add_type1 ident_lazy_t ~variance:Variance.covariant ~separability:Separability.Ind - (* CR layouts v2.8: Can [lazy_t] mode-cross at all? According to Zesen: - It can at least cross locality, because it's always heap-allocated. - It might also cross portability, linearity, uniqueness subject to its - parameter. But I'm also fine not doing that for now (and wait until - users complains). *) - ~jkind:(fun _ -> Jkind.Builtin.value ~why:(Primitive ident_lazy_t)) |> add_type1 ident_list ~variance:Variance.covariant ~separability:Separability.Ind @@ -413,12 +388,8 @@ let build_initial_env add_type add_extension empty_env = ~kind:(fun tvar -> variant [cstr ident_none []; cstr ident_some [unrestricted tvar option_argument_sort]]) - ~jkind:(fun param -> - Jkind.Builtin.immutable_data ~why:Boxed_variant |> - Jkind.add_with_bounds - ~modality:Mode.Modality.Value.Const.id - ~type_expr:param) - |> add_type_with_jkind ident_lexing_position + ~jkind:(Jkind.Builtin.value ~why:Boxed_variant) + |> add_type ident_lexing_position ~kind:( let lbl (field, field_type) = let id = Ident.create_predef field in @@ -445,15 +416,7 @@ let build_initial_env add_type add_extension empty_env = None ) ) - (* CR layouts v2.8: Possibly remove this -- and simplify [mk_add_type] -- - when we have a better jkind subsumption check. *) - ~jkind:Jkind.( - of_builtin Const.Builtin.immutable_data - ~why:(Primitive ident_lexing_position) |> - add_with_bounds ~modality:Mode.Modality.Value.Const.id ~type_expr:type_int |> - add_with_bounds ~modality:Mode.Modality.Value.Const.id ~type_expr:type_int |> - add_with_bounds ~modality:Mode.Modality.Value.Const.id ~type_expr:type_int |> - add_with_bounds ~modality:Mode.Modality.Value.Const.id ~type_expr:type_string) + ~jkind:Jkind.Const.Builtin.immutable_data |> add_type ident_string ~jkind:Jkind.Const.Builtin.immutable_data |> add_type ident_unboxed_float ~jkind:Jkind.Const.Builtin.float64 |> add_type ident_unboxed_nativeint ~jkind:Jkind.Const.Builtin.word @@ -487,7 +450,7 @@ let build_initial_env add_type add_extension empty_env = Jkind.Sort.Const.value] let add_simd_stable_extension_types add_type env = - let _, add_type = mk_add_type add_type in + let add_type = mk_add_type add_type in env |> add_type ident_int8x16 ~jkind:Jkind.Const.Builtin.immutable_data |> add_type ident_int16x8 ~jkind:Jkind.Const.Builtin.immutable_data @@ -503,13 +466,13 @@ let add_simd_stable_extension_types add_type env = |> add_type ident_unboxed_float64x2 ~jkind:Jkind.Const.Builtin.vec128 let add_small_number_extension_types add_type env = - let _, add_type = mk_add_type add_type in + let add_type = mk_add_type add_type in env |> add_type ident_float32 ~jkind:Jkind.Const.Builtin.immutable_data |> add_type ident_unboxed_float32 ~jkind:Jkind.Const.Builtin.float32 let add_small_number_beta_extension_types add_type env = - let _, add_type = mk_add_type add_type in + let add_type = mk_add_type add_type in env |> add_type ident_int8 ~jkind:Jkind.Const.Builtin.immediate |> add_type ident_int16 ~jkind:Jkind.Const.Builtin.immediate @@ -521,9 +484,6 @@ let or_null_kind tvar = in Type_variant (cstrs, Variant_with_null, None) -let or_null_jkind = - Jkind.Builtin.value_or_null ~why:(Primitive ident_or_null) - let add_or_null add_type env = let add_type1 = mk_add_type1 add_type in env @@ -537,9 +497,8 @@ let add_or_null add_type env = For now, we mark the type argument as [Separability.Ind] to permit the most argument types, and forbid arrays from accepting [or_null]s. In the future, we will track separability in the jkind system. *) - (* CR layouts v2.8: Add baggage and more mode crossing here. *) ~kind:or_null_kind - ~jkind:(fun _ -> or_null_jkind) + ~jkind:(Jkind.Builtin.value_or_null ~why:(Primitive ident_or_null)) let builtin_values = List.map (fun id -> (Ident.name id, id)) all_predef_exns diff --git a/upstream/ocaml_flambda/typing/predef.mli b/upstream/ocaml_flambda/typing/predef.mli index 5e62960c7..d76e220cc 100644 --- a/upstream/ocaml_flambda/typing/predef.mli +++ b/upstream/ocaml_flambda/typing/predef.mli @@ -118,9 +118,9 @@ val ident_some : Ident.t val ident_or_null : Ident.t (* The jkind used for optional function argument types *) -val option_argument_jkind : jkind_lr +val option_argument_jkind : 'd jkind (* The jkind used for list argument types *) -val list_argument_jkind : jkind_lr +val list_argument_jkind : 'd jkind (* To build the initial environment. Since there is a nasty mutual recursion between predef and env, we break it by parameterizing @@ -156,11 +156,6 @@ val add_or_null : (* CR layouts v3.5: remove this when users can define null constructors. *) val or_null_kind : type_expr -> ('a, 'b, constructor_declaration) type_kind -(* Construct the [jkind] of [or_null]. For re-exporting [or_null] - while users can't define their own types with null constructors. *) -(* CR layouts v3.5: remove this when users can define null constructors. *) -val or_null_jkind : Types.jkind_l - (* To initialize linker tables *) val builtin_values: (string * Ident.t) list diff --git a/upstream/ocaml_flambda/typing/printtyp.ml b/upstream/ocaml_flambda/typing/printtyp.ml index cdbb948c4..03d42307c 100644 --- a/upstream/ocaml_flambda/typing/printtyp.ml +++ b/upstream/ocaml_flambda/typing/printtyp.ml @@ -1694,6 +1694,8 @@ let type_expr ppf ty = prepare_for_printing [ty]; prepared_type_expr ppf ty +let () = Env.print_type_expr := type_expr + (* "Half-prepared" type expression: [ty] should have had its names reserved, but should not have had its loops marked. *) let type_expr_with_reserved_names ppf ty = @@ -1721,11 +1723,6 @@ let tree_of_type_scheme ty = prepare_for_printing [ty]; tree_of_typexp Type_scheme ty -let () = - Env.print_type_expr := type_expr; - Jkind.set_outcometree_of_type_scheme tree_of_type_scheme; - Jkind.set_outcometree_of_modalities_new tree_of_modalities_new - (* Print one type declaration *) let tree_of_constraints params = diff --git a/upstream/ocaml_flambda/typing/subst.ml b/upstream/ocaml_flambda/typing/subst.ml index b2d261821..4707970f2 100644 --- a/upstream/ocaml_flambda/typing/subst.ml +++ b/upstream/ocaml_flambda/typing/subst.ml @@ -80,58 +80,17 @@ type additional_action_config = | Duplicate_variables | Prepare_for_saving -(* Memoize the built-in jkinds, either best or not-best *) -module Builtins_memo : sig - val find : - quality:('l * 'r) jkind_quality -> - ('l * 'r) Jkind.Const.t -> - ('l * 'r) jkind option -end = struct - open Allowance - - type 'd builtins = ('d Jkind.Const.t * 'd jkind) list - - let make_builtins (type l r) (quality : (l * r) jkind_quality) : (l * r) builtins = - Jkind.Const.Builtin.all - |> List.map (fun (builtin : Jkind.Const.Builtin.t) -> - let const_jkind : (l * r) Jkind.Const.t = - builtin.jkind |> Jkind.Const.allow_left |> Jkind.Const.allow_right in - const_jkind, - Jkind.of_const - const_jkind - ~quality - ~annotation:(Some { pjkind_loc = Location.none; - pjkind_desc = Abbreviation builtin.name }) - ~why:Jkind.History.Imported) - - let best_builtins : (allowed * disallowed) builtins = make_builtins Best - let not_best_builtins : (allowed * allowed) builtins = make_builtins Not_best - - let find - (type l r) - ~(quality : (l * r) jkind_quality) - (const : (l * r) Jkind.Const.t) - : (l * r) jkind option - = - (match quality with - | Best -> - List.find_opt (fun ((builtin, _) : (allowed * disallowed) Jkind.Const.t * _) -> - Jkind.Const.no_with_bounds_and_equal - (const |> Jkind.Const.disallow_right) - (builtin |> Jkind.Const.allow_left)) - best_builtins - |> Option.map (fun (_, jkind) -> jkind |> Jkind.allow_left) - | Not_best -> - List.find_opt (fun (builtin, _) -> - Jkind.Const.no_with_bounds_and_equal - const - (builtin |> Jkind.Const.allow_left |> Jkind.Const.allow_right)) - not_best_builtins - |> Option.map (fun (_, jkind) -> jkind |> Jkind.allow_left |> Jkind.allow_right) - ) -end - let with_additional_action = + (* Memoize the built-in jkinds *) + let builtins = + Jkind.Const.Builtin.all + |> List.map (fun (builtin : _ Jkind.Const.Builtin.t) -> + builtin.jkind, + Jkind.of_const builtin.jkind + ~annotation:(Some { pjkind_loc = Location.none; + pjkind_desc = Abbreviation builtin.name }) + ~why:Jkind.History.Imported) + in fun (config : additional_action_config) s -> (* CR layouts: it would be better to put all this stuff outside this function, but it's in here because we really want to tailor the reason @@ -147,12 +106,17 @@ let with_additional_action = match config with | Duplicate_variables -> Duplicate_variables | Prepare_for_saving -> - let prepare_jkind (type l r) loc (jkind : (l * r) jkind) = + let prepare_jkind loc jkind = match Jkind.get_const jkind with | Some const -> - begin match Builtins_memo.find ~quality:jkind.quality const with - | Some jkind -> jkind - | None -> Jkind.of_const ~quality:jkind.quality const ~annotation:None ~why:Imported + let builtin = + List.find_opt (fun (builtin, _) -> + Jkind.Const.equal_after_all_inference_is_done const builtin) + builtins + in + begin match builtin with + | Some (_, jkind) -> jkind |> Jkind.allow_left |> Jkind.allow_right + | None -> Jkind.of_const const ~annotation:None ~why:Imported end | None -> raise(Error (loc, Unconstrained_jkind_variable)) in @@ -553,13 +517,10 @@ let type_declaration' copy_scope s decl = end; type_jkind = begin - let jkind = - match s.additional_action with - | Prepare_for_saving { prepare_jkind } -> + match s.additional_action with + | Prepare_for_saving { prepare_jkind } -> prepare_jkind decl.type_loc decl.type_jkind - | Duplicate_variables | No_action -> decl.type_jkind - in - Jkind.map_type_expr (typexp copy_scope s decl.type_loc) jkind + | Duplicate_variables | No_action -> decl.type_jkind end; type_private = decl.type_private; type_variance = decl.type_variance; diff --git a/upstream/ocaml_flambda/typing/typecore.ml b/upstream/ocaml_flambda/typing/typecore.ml index 59df0069e..f3295d44a 100644 --- a/upstream/ocaml_flambda/typing/typecore.ml +++ b/upstream/ocaml_flambda/typing/typecore.ml @@ -934,25 +934,14 @@ let has_poly_constraint spat = (* This is very similar to Ctype.mode_cross_left_alloc. Any bugs here are likely bugs there, too. *) let mode_cross_left_value env ty mode = - if not (is_principal ty) then - Value.disallow_right mode - else begin + let mode = + if not (is_principal ty) then mode else let jkind = type_jkind_purely env ty in - let jkind_of_type = type_jkind_purely_if_principal env in - let upper_bounds = Jkind.get_modal_upper_bounds ~jkind_of_type jkind in - let upper_bounds = - Alloc.Const.merge - { comonadic = upper_bounds; monadic = Alloc.Monadic.Const.max } - in + let upper_bounds = Jkind.get_modal_upper_bounds jkind in let upper_bounds = Const.alloc_as_value upper_bounds in - let lower_bounds = Jkind.get_modal_lower_bounds ~jkind_of_type jkind in - let lower_bounds = - Alloc.Const.merge - { comonadic = Alloc.Comonadic.Const.min; monadic = lower_bounds } - in - let lower_bounds = Const.alloc_as_value lower_bounds in - Value.subtract lower_bounds (Value.meet_const upper_bounds mode) - end + Value.meet_const upper_bounds mode + in + mode |> Value.disallow_right let actual_mode_cross_left env ty (actual_mode : Env.actual_mode) : Env.actual_mode = @@ -966,43 +955,27 @@ let alloc_mode_cross_to_max_min env ty { monadic; comonadic } = let comonadic = Alloc.Comonadic.disallow_right comonadic in if not (is_principal ty) then { monadic; comonadic } else let jkind = type_jkind_purely env ty in - let jkind_of_type = type_jkind_purely_if_principal env in - let upper_bounds = Jkind.get_modal_upper_bounds ~jkind_of_type jkind in - let comonadic = Alloc.Comonadic.meet_const upper_bounds comonadic in - let lower_bounds = Jkind.get_modal_lower_bounds ~jkind_of_type jkind in - let monadic = Alloc.Monadic.join_const lower_bounds monadic in + let upper_bounds = Jkind.get_modal_upper_bounds jkind in + let upper_bounds = Alloc.Const.split upper_bounds in + let comonadic = Alloc.Comonadic.meet_const upper_bounds.comonadic comonadic in + let monadic = Alloc.Monadic.imply upper_bounds.monadic monadic in { monadic; comonadic } (** Mode cross a right mode *) (* This is very similar to Ctype.mode_cross_right. Any bugs here are likely bugs there, too. *) -let expect_mode_cross_jkind env jkind (expected_mode : expected_mode) = - let jkind_of_type = type_jkind_purely_if_principal env in - let upper_bounds = Jkind.get_modal_upper_bounds ~jkind_of_type jkind in - let upper_bounds = - Alloc.Const.merge - { comonadic = upper_bounds; monadic = Alloc.Monadic.Const.max } - in +let expect_mode_cross_jkind jkind (expected_mode : expected_mode) = + let upper_bounds = Jkind.get_modal_upper_bounds jkind in let upper_bounds = Const.alloc_as_value upper_bounds in - let lower_bounds = Jkind.get_modal_lower_bounds ~jkind_of_type jkind in - let lower_bounds = - Alloc.Const.merge - { comonadic = Alloc.Comonadic.Const.min; monadic = lower_bounds } - in - let lower_bounds = Const.alloc_as_value lower_bounds in - mode_morph - (fun m -> - Value.imply upper_bounds - (Value.join_const lower_bounds m)) - expected_mode + mode_morph (Value.imply upper_bounds) expected_mode let expect_mode_cross env ty (expected_mode : expected_mode) = if not (is_principal ty) then expected_mode else let jkind = type_jkind_purely env ty in - expect_mode_cross_jkind env jkind expected_mode + expect_mode_cross_jkind jkind expected_mode (** The expected mode for objects *) -let mode_object = expect_mode_cross_jkind Env.empty Jkind.for_object mode_legacy +let mode_object = expect_mode_cross_jkind Jkind.for_object mode_legacy let mode_annots_from_pat pat = let modes = @@ -9191,7 +9164,7 @@ and type_let ?check ?check_strict ?(force_toplevel = false) List.iter (fun pv -> Ctype.check_and_update_generalized_ty_jkind - ~name:pv.pv_id ~loc:pv.pv_loc env pv.pv_type) + ~name:pv.pv_id ~loc:pv.pv_loc pv.pv_type) pvs; List.iter2 (fun (_, _, expected_ty) (exp, vars) -> @@ -9220,7 +9193,7 @@ and type_let ?check ?check_strict ?(force_toplevel = false) | Tpat_alias(_, id, _, _, _, _) -> Some id | _ -> None in Ctype.check_and_update_generalized_ty_jkind - ?name:pat_name ~loc:exp.exp_loc env exp.exp_type + ?name:pat_name ~loc:exp.exp_loc exp.exp_type in List.iter2 update_exp_jkind mode_pat_typ_list exp_list; end diff --git a/upstream/ocaml_flambda/typing/typedecl.ml b/upstream/ocaml_flambda/typing/typedecl.ml index 2640b1ba8..77d3d4dc5 100644 --- a/upstream/ocaml_flambda/typing/typedecl.ml +++ b/upstream/ocaml_flambda/typing/typedecl.ml @@ -147,8 +147,6 @@ type error = } | Non_abstract_reexport of Path.t | Unsafe_mode_crossing_on_invalid_type_kind - | Unsafe_mode_crossing_with_with_bounds - | Illegal_baggage of jkind_l open Typedtree @@ -270,21 +268,7 @@ let enter_type ?abstract_abbrevs rec_flag env sdecl (id, uid) = let type_jkind = Jkind.of_type_decl_default ~context:(Type_declaration path) - (* CR layouts v2.8: This next line is truly terrible. But I think it's OK - for now: it will mean that any [with] constraints get interpreted to - mean that the thing does not cross that mode. That's OK: the jkind - produced here can be an overapproximation of the correct jkind (note - that [any] is the default). Indeed the only reason (I think) we need a - non-[any] jkind here is to produce better error messages. - - Doing better here will be annoying, because a type is in scope in its - own jkind... and yet we don't have an env that we can use at this - point. I think probably the solution will be to have - [Jkind.of_type_decl_default] just return [max] every time it sees a - [with]-kind... which basically just does this [type_exn] trick but much - more sanely. *) - ~transl_type:(fun _ -> Predef.type_exn) - ~default:(Jkind.disallow_right any) + ~default:any sdecl in let abstract_source, type_manifest = @@ -726,15 +710,6 @@ let verify_unboxed_attr unboxed_attr sdecl = which looks through unboxed types. So it's all OK for users, but it's unfortunate that the stored jkind on [t7_2] is imprecise. - The way this interacts with checking of with-bounds is somewhat subtle and complex. - With-bounds for mutually recursive type declarations need to be normalized and checked - in a pass /after/ computing the the proper (best) jkinds for all the types and storing - them in the environment, so that they can be queried during normalization. But it's - important that we call [Jkind.Layout.sub] on each type /eagerly/, so that its sort - variables (which might be referenced from the jkinds of other types) get filled in with - the right sort. So we do that early, in [update_decl_jkind], then check the full jkind - against the dummy jkind later, after normalizing in [transl_type_decl]. - (* CR layouts: see if we can do better here. *) *) @@ -788,28 +763,8 @@ let transl_declaration env sdecl (id, uid) = | _ -> false, false (* Not unboxable, mark as boxed *) in verify_unboxed_attr unboxed_attr sdecl; - (* CR layouts v2.8: This next call to [transl_simple_type] probably can loop - because it will do perhaps-circular jkind checks. But actually I think the - same problem exists in e.g. record fields. We should probably look into this. *) - let transl_type sty = - (* CR layouts v2.8: The [~new_var_jkind:Any] is weird. The type is closed, - and so there shouldn't be any new vars. Investigate. *) - let cty = - Ctype.with_local_level begin fun () -> - Typetexp.transl_simple_type env ~new_var_jkind:Any - ~closed:true Mode.Alloc.Const.legacy sty - end - (* This call to [generalize_structure] is necessary so that copying - during instantiation traverses inside of any type constructors in the - [with]-bound. It's also necessary because the variables here are at - generic level, and so any containers of them should be, too! *) - ~post:(fun cty -> Ctype.generalize_structure cty.ctyp_type) - in - cty.ctyp_type (* CR layouts v2.8: Do this more efficiently. Or probably - add with-kinds to Typedtree. *) - in let jkind_from_annotation, jkind_annotation = - match Jkind.of_type_decl ~context:(Type_declaration path) ~transl_type sdecl with + match Jkind.of_type_decl ~context:(Type_declaration path) sdecl with | Some (jkind, annot) -> Some jkind, annot | None -> None, None @@ -846,7 +801,10 @@ let transl_declaration env sdecl (id, uid) = { definition = path; expected = Predef.path_or_null })) in let type_kind = Predef.or_null_kind param in - let jkind = Predef.or_null_jkind in + let jkind = + Jkind.Builtin.value_or_null + ~why:(Primitive Predef.ident_or_null) + in Ttype_abstract, type_kind, jkind | (Ptype_variant _ | Ptype_record _ | Ptype_record_unboxed_product _ | Ptype_open) @@ -908,7 +866,8 @@ let transl_declaration env sdecl (id, uid) = let tcstrs, cstrs = List.split (List.map make_cstr scstrs) in let rep, jkind = if unbox then - Variant_unboxed, Jkind.of_new_legacy_sort ~why:Old_style_unboxed_type + Variant_unboxed, + Jkind.of_new_legacy_sort ~why:Old_style_unboxed_type else (* We mark all arg sorts "void" here. They are updated later, after the circular type checks make it safe to check sorts. @@ -958,15 +917,14 @@ let transl_declaration env sdecl (id, uid) = (* The jkinds below, and the ones in [lbls], are dummy jkinds which are replaced and made to correspond to each other in [update_decl_jkind]. *) - let jkind = - Jkind.Builtin.product_of_sorts ~why:Unboxed_record - (List.length lbls) + let jkind_ls = + List.map (fun _ -> Jkind.Builtin.any ~why:Initial_typedecl_env) lbls in + let jkind = Jkind.Builtin.product ~why:Unboxed_record jkind_ls in Ttype_record_unboxed_product lbls, Type_record_unboxed_product(lbls', Record_unboxed_product, None), jkind | Ptype_open -> - Ttype_open, Type_open, - Jkind.Builtin.value ~why:Extensible_variant + Ttype_open, Type_open, Jkind.Builtin.value ~why:Extensible_variant in let jkind = (* - If there's an annotation, we use that. It's checked against @@ -985,23 +943,20 @@ let transl_declaration env sdecl (id, uid) = | None, None -> jkind_default in let jkind = - (* Hack: unboxed records are given a product-of-[any]s layout + (* Hack: unboxed records are given a product-of-[any]s jkind when they would otherwise be given [any]. This allows [estimate_type_jkind] to give an estimate that's just barely good enough, such that [constain_type_jkind] can always decompose the product of [any]s and recurse on the labels. See https://github.com/ocaml-flambda/flambda-backend/pull/3399. *) - match kind with - | Type_record_unboxed_product _ -> - begin match Jkind.get_layout jkind with - | Some Any -> - (* [jkind_default] has just what we need here *) - Jkind.set_layout jkind (Jkind.extract_layout jkind_default) - | _ -> jkind - end - | Type_abstract _ | Type_variant _ | Type_record _ - | Type_open -> jkind + match sdecl.ptype_kind with + | Ptype_record_unboxed_product lbls + when Jkind.has_layout_any (Jkind.terrible_relax_l jkind) -> + Jkind.Builtin.product ~why:Unboxed_record + (List.map (fun _ -> jkind) lbls) + | Ptype_abstract | Ptype_variant _ | Ptype_record _ + | Ptype_record_unboxed_product _ | Ptype_open -> jkind in let arity = List.length params in let decl = @@ -1102,8 +1057,7 @@ let rec check_constraints_rec env loc visited ty = let violation = Jkind.Violation.of_ (Not_a_subjkind (Jkind.disallow_right original_jkind, - Jkind.disallow_left inferred_jkind, - [])) + Jkind.disallow_left inferred_jkind)) in raise (Error(loc, Jkind_mismatch_due_to_bad_inference (ty, violation, Check_constraints))) @@ -1211,82 +1165,14 @@ let check_constraints env sdecl (_, decl) = immediate, we should check the manifest is immediate). Also, update the resulting jkind to match the manifest. *) let narrow_to_manifest_jkind env loc decl = - match decl.type_manifest, decl.type_kind with - | None, _ -> decl - | Some _, (Type_record _ | Type_record_unboxed_product _ | Type_variant _ | Type_open) - when not (Builtin_attributes.has_or_null_reexport decl.type_attributes) - -> - (* If there's both a manifest and a non-abstract kind, there's no reason to check that - the jkind of the manifest matches the annotation ([decl.type_jkind]). This is - because the manifest's jkind is exactly the kind's jkind, and we've already checked - and updated [type_jkind] based on the kind. *) - decl - | Some ty, _ -> - (* CR layouts v2.8: Remove this use of [type_jkind_purely], which is slow - and effectful. But we cannot do so easily, sadly. I tried using - [estimate_type_jkind] here instead, but this runs aground with mutually - recursive declarations with manifests. Example: - - {[ - type s1 = float# - and s2 = s1 - ]} - - We assign jkind [any] to both [s1] and [s2] in [transl_declaration], - because we really can't do better at that point. But then when we get - here, [estimate_type_jkind] on [s1] returns [any] -- it won't expand - the manifest to get [float64]. That's not unsound, because a jkind is - always just an approximation. But it does mean that we need to load more - cmi files in practice to get the "real" jkind. This was observed when - compiling Jane Street's codebase, requiring lots more dependencies to be - added. Boo. [type_jkind_purely] avoids this problem, by looking deeply - to find the [float#] and thus the [float64] jkind. - - The solution I have in mind here is to change the jkind assigned in - [transl_declaration] to be [kind_of 'a], where ['a] is the type variable - invented in [enter_type]; that variable can be thought of an empty vessel - that accumulates information about jkinds from usages. It also, - critically, gets unified with the actual type being defined, in - [update_type], which happens before [narrow_to_manifest_jkind]. If we use - [kind_of 'a] in [transl_declaration], then [decl.type_jkind] will be - [kind_of 'a] here, and that will force the [constrain_type_jkind] below - to work just hard enough to find a jkind less than [kind_of 'a] -- - exactly what we want to record in the final [type_jkind] of the decl. - (This will require changing [constrain_type_jkind] to return its best - jkind, but that is easy to do, and indeed used to be the case until the - result was never used anywhere.) - - Do not try this (that is, removing the use of [type_jkind_purely]) before - removing the "horrible hack" just below, as that horrible hack sometimes - avoids calling [constrain_type_jkind], which is necessary for the plan - above to work. *) - let manifest_jkind = Ctype.type_jkind_purely env ty in - (* CR layouts v2.8: Remove this horrible hack. In practice, this - [try_allow_r] fails in the case of a record re-export, because the jkind - from the record has been calculated and put in decl.type_jkind at this - point. So we need to use the deeply broken [type_jkind_purely] and then - [sub_jkind_l] here. The right way forward is to parameterize - [constrain_type_jkind] over the [l]-ness of its bound. But probably not - until we have proper subsumption working, as this hack will likely hold - up for a little while. *) - begin match Jkind.try_allow_r decl.type_jkind with - | None -> begin - let type_equal = Ctype.type_equal env in - let jkind_of_type ty = Some (Ctype.type_jkind_purely env ty) in - match - Jkind.sub_jkind_l ~type_equal ~jkind_of_type - manifest_jkind decl.type_jkind - with - | Ok () -> () - | Error v -> raise (Error (loc, Jkind_mismatch_of_type (ty,v))) - end - | Some type_jkind -> begin - match Ctype.constrain_type_jkind env ty type_jkind with - | Ok () -> () - | Error v -> raise (Error (loc, Jkind_mismatch_of_type (ty,v))) - end - end; - { decl with type_jkind = manifest_jkind } + match decl.type_manifest with + | None -> decl + | Some ty -> + let jkind' = Ctype.type_jkind_purely env ty in + match Jkind.sub_jkind_l jkind' decl.type_jkind with + | Ok jkind' -> { decl with type_jkind = jkind' } + | Error v -> + raise (Error (loc, Jkind_mismatch_of_type (ty,v))) (* Check that the type expression (if present) is compatible with the kind. If both a variant/record definition and a type equation are given, @@ -1341,7 +1227,6 @@ let check_abbrev env sdecl (id, decl) = *) (* [update_label_sorts] additionally returns whether all the jkinds were void, and the jkinds of the labels *) -(* CR reisenberg: remove all_void return *) let update_label_sorts env loc lbls named = (* [named] is [Some sorts] for top-level records (we will update the sorts) and [None] for inlined records. *) @@ -1452,8 +1337,7 @@ module Element_repr = struct else let layout = Jkind.get_layout_defaulting_to_value jkind in let sort = Jkind.Layout.Const.get_sort layout in - let jkind_of_type ty = Some (Ctype.type_jkind_purely env ty) in - let externality_upper_bound = Jkind.get_externality_upper_bound ~jkind_of_type jkind in + let externality_upper_bound = Jkind.get_externality_upper_bound jkind in let base = match sort with | None -> Misc.fatal_error "Element_repr.classify: unexpected abstract layout" @@ -1605,22 +1489,16 @@ let update_constructor_representation Constructor_mixed shape -let add_types_to_env decls shapes env = - List.fold_right2 - (fun (id, decl) shape env -> - add_type ~check:true ~shape id decl env) - decls shapes env - (* This function updates jkind stored in kinds with more accurate jkinds. It is called after the circularity checks and the delayed jkind checks have happened, so we can fully compute jkinds of types. - This function does not do any /checks/ on the jkind after performing the update; the - annotation, for example, is checked in the caller, [update_decls_jkind], so that - mutually recursive type decls see each others' best kinds during normalization and - subsumption + This function is an important part + of correctness, as it also checks that the jkind computed from a kind + is consistent with (i.e. a subjkind of) any jkind annotation. + See Note [Default jkinds in transl_declaration]. *) -let update_decl_jkind env id decl = +let update_decl_jkind env dpath decl = let open struct (* For tracking what types appear in record blocks. *) type element_repr_summary = @@ -1646,10 +1524,10 @@ let update_decl_jkind env id decl = let ld_sort = Jkind.Sort.default_to_value_and_get sort in [{lbl with ld_sort}], Record_unboxed, jkind | _, Record_boxed sorts -> - let lbls, _all_void, jkinds = + let lbls, all_void, jkinds = update_label_sorts env loc lbls (Some sorts) in - let jkind = Jkind.for_boxed_record lbls in + let jkind = Jkind.for_boxed_record ~all_void in let reprs = List.map2 (fun lbl jkind -> @@ -1780,8 +1658,8 @@ let update_decl_jkind env id decl = assert false end | cstrs, Variant_boxed cstr_shapes -> - let (_,cstrs) = - List.fold_left (fun (idx,cstrs) cstr -> + let (_,cstrs,all_voids) = + List.fold_left (fun (idx,cstrs,all_voids) cstr -> let arg_sorts = match cstr_shapes.(idx) with | Constructor_uniform_value, arg_sorts -> arg_sorts @@ -1790,7 +1668,7 @@ let update_decl_jkind env id decl = "Typedecl.update_variant_kind doesn't expect mixed \ constructor as input" in - let cd_args, _all_void, jkinds = + let cd_args, all_void, jkinds = update_constructor_arguments_sorts env cstr.Types.cd_loc cstr.Types.cd_args (Some arg_sorts) in @@ -1805,110 +1683,107 @@ let update_decl_jkind env id decl = | Constructor_mixed _ -> cstr_shapes.(idx) <- cstr_repr, arg_sorts in let cstr = { cstr with Types.cd_args } in - (idx+1,cstr::cstrs) - ) (0,[]) cstrs + (idx+1,cstr::cstrs,all_voids && all_void) + ) (0,[],true) cstrs in - let jkind = Jkind.for_boxed_variant cstrs in + let jkind = Jkind.for_boxed_variant ~all_voids in List.rev cstrs, rep, jkind | (([] | (_ :: _)), Variant_unboxed | _, Variant_extensible) -> assert false in - - let new_decl = - match decl.type_kind with - | Type_abstract _ -> - (* Abstract types should never have quality=best, but let's double check that here - just to be safe *) - assert (not (Jkind.is_best decl.type_jkind)); - decl + let new_decl, new_jkind = match decl.type_kind with + | Type_abstract _ -> decl, decl.type_jkind | Type_open -> - let type_jkind = - Jkind.Builtin.value ~why:Extensible_variant - (* It's unlikely we'll ever be able to give better kinds than [value] to - extensible variants, so we're not worried about backwards compatibility if we - mark them as best here, and we want to be able to normalize them away *) - (* See Note [Quality of jkinds during inference] for more information about when - we mark jkinds as best *) - |> Jkind.mark_best - in - { decl with type_jkind } + let type_jkind = Jkind.Builtin.value ~why:Extensible_variant in + { decl with type_jkind }, type_jkind | Type_record (lbls, rep, umc) -> let lbls, rep, type_jkind = update_record_kind decl.type_loc lbls rep in - (* See Note [Quality of jkinds during inference] for more information about when we - mark jkinds as best *) - let type_jkind = Jkind.mark_best type_jkind in - { decl with type_kind = Type_record (lbls, rep, umc); type_jkind } - (* CR layouts v3.0: handle this case in [update_variant_jkind] when - [Variant_with_null] introduced. - - No updating required for [or_null_reexport], and we must not - incorrectly override the jkind to [non_null]. - *) + { decl with type_kind = Type_record (lbls, rep, umc); type_jkind }, + type_jkind | Type_record_unboxed_product (lbls, rep, umc) -> begin match rep with | Record_unboxed_product -> - let lbls = + let lbls, jkinds = List.map (fun (Types.{ld_type} as lbl) -> let jkind = Ctype.type_jkind env ld_type in (* This next line is guaranteed to be OK because of a call to [check_representable] *) let sort = Jkind.sort_of_jkind jkind in let ld_sort = Jkind.Sort.default_to_value_and_get sort in - {lbl with ld_sort} + {lbl with ld_sort}, jkind ) lbls + |> List.split in - let type_jkind = - Jkind.for_unboxed_record - ~jkind_of_type:(Ctype.type_jkind env) - ~jkind_of_first_type:(fun () -> - match lbls with - | [lbl] -> Ctype.type_jkind env lbl.ld_type - | [] | _ :: _ :: _ -> Misc.fatal_error - "[for_unboxed_record] called [jkind_of_first_type] \ - for non-singleton record.") - lbls - in - (* See Note [Quality of jkinds during inference] for more information about when we - mark jkinds as best *) - let type_jkind = Jkind.mark_best type_jkind in + let type_jkind = Jkind.Builtin.product ~why:Unboxed_record jkinds in { decl with type_kind = Type_record_unboxed_product (lbls, rep, umc); - type_jkind } + type_jkind }, + type_jkind end - | Type_variant _ when - Builtin_attributes.has_or_null_reexport decl.type_attributes -> - decl | Type_variant (cstrs, rep, umc) -> let cstrs, rep, type_jkind = update_variant_kind cstrs rep in - (* See Note [Quality of jkinds during inference] for more information about when we - mark jkinds as best *) - let type_jkind = Jkind.mark_best type_jkind in - { decl with type_kind = Type_variant (cstrs, rep, umc); type_jkind } + { decl with type_kind = Type_variant (cstrs, rep, umc); + type_jkind }, + type_jkind in - (* Check the layout here, both to check it, but more importantly to fill in any sort - variables in the original decl's jkind, which might be shared with the jkinds of - other types in a (maybe mutually recursive) type declaration. See Note [Default - jkinds in transl_declaration]) *) - match - Jkind.Layout.sub new_decl.type_jkind.jkind.layout decl.type_jkind.jkind.layout - with - | Not_le reason -> - raise (Error ( - decl.type_loc, - Jkind_mismatch_of_path ( - Pident id, - Jkind.Violation.of_ ( - Not_a_subjkind ( - new_decl.type_jkind, decl.type_jkind, Nonempty_list.to_list reason))))) - | Less | Equal -> new_decl - -let update_decls_jkind_reason env decls = + let allow_any_crossing = + Builtin_attributes.has_unsafe_allow_any_mode_crossing decl.type_attributes + in + + (* Check that the attribute is valid, if set (unconditionally, for consistency). *) + if allow_any_crossing then begin + match decl.type_kind with + | Type_abstract _ | Type_open -> + raise(Error(decl.type_loc, Unsafe_mode_crossing_on_invalid_type_kind)) + | _ -> () + end; + + (* check that the jkind computed from the kind matches the jkind + annotation, which was stored in decl.type_jkind *) + if new_jkind != decl.type_jkind then + (* CR layouts v2.8: Consider making a function that doesn't compute + histories for this use-case, which doesn't need it. *) + begin match Jkind.sub_jkind_l ~allow_any_crossing new_jkind decl.type_jkind with + | Ok _ -> + (* If the user is asking us to allow any crossing, we use the modal bounds from + the annotation rather than the modal bounds inferred from the type_kind. + However, we /only/ take the modal bounds, not the layout - because we still + want to be able to eg locally use a type declared as layout [any] as [value] + if that's its actual layout! *) + let type_jkind = + Jkind.unsafely_set_upper_bounds ~from:decl.type_jkind + new_decl.type_jkind + in + if allow_any_crossing then + let umc = + Some { modal_upper_bounds = Jkind.get_modal_upper_bounds type_jkind } + in + let type_kind = + match new_decl.type_kind with + | Type_abstract _ | Type_open -> assert false (* Checked above *) + | Type_record (lbls, rep, _) -> + Type_record (lbls, rep, umc) + | Type_record_unboxed_product (lbls, rep, _) -> + Type_record_unboxed_product (lbls, rep, umc) + | Type_variant (cs, rep, _) -> + Type_variant (cs, rep, umc) + in + { new_decl with + type_jkind; + type_kind; } + else new_decl + | Error err -> + raise(Error(decl.type_loc, Jkind_mismatch_of_path (dpath,err))) + end + else new_decl + +let update_decls_jkind_reason decls = List.map (fun (id, decl) -> let update_generalized = Ctype.check_and_update_generalized_ty_jkind - ~name:id ~loc:decl.type_loc env + ~name:id ~loc:decl.type_loc in List.iter update_generalized decl.type_params; Btype.iter_type_expr_kind update_generalized decl.type_kind; @@ -1922,20 +1797,7 @@ let update_decls_jkind_reason env decls = let update_decls_jkind env decls = List.map - (fun (id, decl) -> - let allow_any_crossing = - Builtin_attributes.has_unsafe_allow_any_mode_crossing decl.type_attributes - in - - (* Check that the attribute is valid, if set (unconditionally, for consistency). *) - if allow_any_crossing then begin - match decl.type_kind with - | Type_abstract _ | Type_open -> - raise(Error(decl.type_loc, Unsafe_mode_crossing_on_invalid_type_kind)) - | _ -> () - end; - - (id, decl.type_jkind, allow_any_crossing, update_decl_jkind env id decl)) + (fun (id, decl) -> (id, update_decl_jkind env (Pident id) decl)) decls @@ -2450,107 +2312,11 @@ let check_redefined_unit (td: Parsetree.type_declaration) = | _ -> () - -(* Note [Quality of jkinds during inference] - ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - - We're careful during inference of jkinds for type declarations not to ever call - [Jkind.mark_best] on a jkind before we've added all the various pieces of information - to the jkind (the full layout, and all the with-bounds). Early in translation, we give - "dummy" kinds to types, without any with bounds, and have been careful not to mark - these as having a [Best] quality. Later on, in [update_decls_jkind], once we've learned - everything there is to know about a type declaration, we mark the new kind as [Best]. - It's important to do this /before/ [normalize_decl_jkinds], so that mutually recursive - type declarations can look up each others' (best, though perhaps not normalized!) - jkind. -*) - -(* Normalize the jkinds in a list of (potentially mutually recursive) type declarations *) -let normalize_decl_jkinds env shapes decls = - (* Add the types, with non-normalized kinds, to the environment to start, so that eg - types can look up their own (potentially non-normalized) kinds *) - let env = - List.fold_right2 - (fun (id, _, _, decl) shape env -> - add_type ~check:true ~shape id decl env) - decls shapes env - in - Misc.Stdlib.List.fold_left_map2 - (fun env (id, original_jkind, allow_any_crossing, decl) shape -> - let normalized_jkind = - Jkind.normalize - ~mode:Require_best - ~jkind_of_type:(fun ty -> Some (Ctype.type_jkind env ty)) - decl.type_jkind - in - let decl = { decl with type_jkind = normalized_jkind } in - (* Add the decl with the normalized kind back to the environment, so that later - kinds don't have to normalize this kind if they mention this type in their - with-bounds *) - let env = add_type ~check:false ~shape:shape id decl env in - if normalized_jkind != original_jkind then begin - (* If the jkind has changed, check that it is a subjkind of the original jkind - that we computed, either from a user-written annotation or as a dummy jkind. - - (see Note [Default jkinds in transl_declaration]) *) - (* CR layouts v2.8: it almost definitely has changed, but also we probably trust - the new jkind (we really only want this check here to check against the - user-written annotation). We might be able to do a better job here and save - some work. *) - let jkind_of_type ty = Some (Ctype.type_jkind_purely env ty) in - let type_equal = Ctype.type_equal env in - match - (* CR layouts v2.8: Consider making a function that doesn't compute - histories for this use-case, which doesn't need it. *) - Jkind.sub_jkind_l - ~type_equal - ~jkind_of_type - ~allow_any_crossing - decl.type_jkind - original_jkind - with - | Ok _ -> - if allow_any_crossing then - (* If the user is asking us to allow any crossing, we use the modal bounds from - the annotation rather than the modal bounds inferred from the type_kind. - However, we /only/ take the modal bounds, not the layout - because we still - want to be able to eg locally use a type declared as layout [any] as [value] - if that's its actual layout! *) - let type_jkind = - match - Jkind.unsafely_set_mod_bounds - ~from:original_jkind - decl.type_jkind - with - | Ok jkind -> jkind - | Error () -> - raise(Error(decl.type_loc, Unsafe_mode_crossing_with_with_bounds)) - in - let umc = - Some { modal_upper_bounds = - Jkind.get_modal_upper_bounds ~jkind_of_type type_jkind; - modal_lower_bounds = - Jkind.get_modal_lower_bounds ~jkind_of_type type_jkind } - in - let type_kind = - match decl.type_kind with - | Type_abstract _ | Type_open -> assert false (* Checked above *) - | Type_record (lbls, rep, _) -> - Type_record (lbls, rep, umc) - | Type_record_unboxed_product (lbls, rep, _) -> - Type_record_unboxed_product (lbls, rep, umc) - | Type_variant (cs, rep, _) -> - Type_variant (cs, rep, umc) - in - env, (id, { decl with type_jkind; type_kind; }) - else env, (id, decl) - | Error err -> - raise(Error(decl.type_loc, Jkind_mismatch_of_path (Pident id, err))) - end - else env, (id, decl)) - env - decls - shapes +let add_types_to_env decls shapes env = + List.fold_right2 + (fun (id, decl) shape env -> + add_type ~check:true ~shape id decl env) + decls shapes env (* Translate a set of type declarations, mutually recursive or not *) let transl_type_decl env rec_flag sdecl_list = @@ -2730,17 +2496,14 @@ let transl_type_decl env rec_flag sdecl_list = (* Check that constraints are enforced *) List.iter2 (check_constraints new_env) sdecl_list decls; (* Add type properties to declarations *) - let new_env, decls = + let decls = try - let new_env, decls = - decls - |> name_recursion_decls sdecl_list - |> Typedecl_variance.update_decls env sdecl_list - |> Typedecl_separability.update_decls env - |> update_decls_jkind new_env - |> normalize_decl_jkinds new_env shapes - in - new_env, update_decls_jkind_reason new_env decls + decls + |> name_recursion_decls sdecl_list + |> Typedecl_variance.update_decls env sdecl_list + |> Typedecl_separability.update_decls env + |> update_decls_jkind new_env + |> update_decls_jkind_reason with | Typedecl_variance.Error (loc, err) -> raise (Error (loc, Variance err)) @@ -3564,7 +3327,7 @@ let transl_value_decl env loc ~sig_modalities valdecl = Env.enter_value ~mode:Mode.Value.legacy valdecl.pval_name.txt v env ~check:(fun s -> Warnings.Unused_value_declaration s) in - Ctype.check_and_update_generalized_ty_jkind ~name:id ~loc newenv ty; + Ctype.check_and_update_generalized_ty_jkind ~name:id ~loc ty; let desc = { val_id = id; @@ -3792,17 +3555,9 @@ let approx_type_decl sdecl_list = let id = Ident.create_scoped ~scope sdecl.ptype_name.txt in let path = Path.Pident id in let injective = sdecl.ptype_kind <> Ptype_abstract in - let transl_type sty = - Misc.fatal_errorf - "@[I do not yet know how to deal with [with]-types (such as %a)@ in \ - recursive modules. Please contact the Jane Street OCaml Language@ \ - team for help if you see this." - Pprintast.core_type sty - in let jkind = Jkind.of_type_decl_default ~context:(Type_declaration path) - ~transl_type ~default:(Jkind.Builtin.value ~why:Default_type_jkind) sdecl in @@ -3825,15 +3580,7 @@ let check_recmod_typedecl env loc recmod_ids path decl = check_regularity ~abs_env:env env loc path decl to_check; (* additional coherence check, as one might build an incoherent signature, and use it to build an incoherent module, cf. #7851 *) - (* Call [check_kind_coherence] rather than [check_coherence] here, which - avoids a call to [narrow_to_manifest_jkind]. That call sometimes spuriously fails on - valid programs (see test 14 in testsuite/tests/typing-jkind-bounds/basics.ml). This - isn't sound, but this check is already unsound otherwise (see issue #13765)! And not - performing this check on the jkinds is no less sound than what already exists. So - instead of fixing the spurious failures, we choose to just not perform the check, - with the intention of fixing the jkind soundness issue once the other soundness issue - is resolved. *) - ignore (check_kind_coherence env loc path decl) + ignore (check_coherence env loc path decl) (**** Error report ****) @@ -4398,17 +4145,8 @@ let report_error ppf = function (Path.name definition) | Unsafe_mode_crossing_on_invalid_type_kind -> fprintf ppf - "@[[%@%@unsafe_allow_any_mode_crossing] is not allowed on this kind of \ - type declaration.@ Only records, unboxed products, and variants are \ - supported.@]" - | Unsafe_mode_crossing_with_with_bounds -> - fprintf ppf - "@[[%@%@unsafe_allow_any_mode_crossing] is not allowed with a kind \ - annotation containing with-bounds.@]" - | Illegal_baggage jkind -> - fprintf ppf - "@[Illegal %a in kind annotation of an abbreviation:@ %a@]" - Style.inline_code "with" Jkind.format jkind + "@[[%@%@unsafe_allow_any_mode_crossing] is not allowed on this kind of type declaration.\ + @ Only records, unboxed products, and variants are supported.@]" let () = Location.register_error_of_exn diff --git a/upstream/ocaml_flambda/typing/typedecl.mli b/upstream/ocaml_flambda/typing/typedecl.mli index fa75290eb..ff2f24c4f 100644 --- a/upstream/ocaml_flambda/typing/typedecl.mli +++ b/upstream/ocaml_flambda/typing/typedecl.mli @@ -183,8 +183,6 @@ type error = } | Non_abstract_reexport of Path.t | Unsafe_mode_crossing_on_invalid_type_kind - | Unsafe_mode_crossing_with_with_bounds - | Illegal_baggage of jkind_l exception Error of Location.t * error diff --git a/upstream/ocaml_flambda/typing/typedecl_separability.ml b/upstream/ocaml_flambda/typing/typedecl_separability.ml index 5cde9c1de..ea023d9e1 100644 --- a/upstream/ocaml_flambda/typing/typedecl_separability.ml +++ b/upstream/ocaml_flambda/typing/typedecl_separability.ml @@ -482,9 +482,8 @@ let msig_of_external_type env decl = Result.is_error (Ctype.check_decl_jkind env decl (Jkind.Builtin.value_or_null ~why:Separability_check)) in - let jkind_of_type = Ctype.type_jkind_purely_if_principal env in let is_external = - match Jkind.get_externality_upper_bound ~jkind_of_type decl.type_jkind with + match Jkind.get_externality_upper_bound decl.type_jkind with | Internal -> false | External | External64 -> true in diff --git a/upstream/ocaml_flambda/typing/typemod.ml b/upstream/ocaml_flambda/typing/typemod.ml index a8fbe7de0..e3150a588 100644 --- a/upstream/ocaml_flambda/typing/typemod.ml +++ b/upstream/ocaml_flambda/typing/typemod.ml @@ -749,12 +749,23 @@ let merge_constraint initial_env loc sg lid constr = the declaration from the original signature. Note that this is also checked in [check_type_decl], but there it is check, not constrain, which we need here to deal with type variables in package constraints - (see tests in [typing-modules/package_constraint.ml]). Because the - check is repeated later -- and with better handling for errors -- we - just drop any error here. *) - ignore - (* CR layouts v2.8: Does this type_jkind need to be instantiated? *) - (Ctype.constrain_decl_jkind initial_env tdecl sig_decl.type_jkind); + (see tests in [typing-modules/package_constraint.ml]). *) + begin match + Ctype.constrain_decl_jkind initial_env tdecl sig_decl.type_jkind + with + | Ok _-> () + | Error v -> + (* This is morally part of the below [check_type_decl], so we give the + same error that would be given there for good error messages. *) + let err = + Includemod.Error.In_Type_declaration( + id, Type_declarations + {got=tdecl; + expected=sig_decl; + symptom=Includecore.Jkind v}) + in + raise Includemod.(Error(initial_env, err)) + end; check_type_decl outer_sig_env sg_for_env loc id None tdecl sig_decl; let tdecl = { tdecl with type_manifest = None } in return ~ghosts ~replace_by:(Some(Sig_type(id, tdecl, rs, priv))) diff --git a/upstream/ocaml_flambda/typing/typemode.ml b/upstream/ocaml_flambda/typing/typemode.ml index b8ec36840..474f7e524 100644 --- a/upstream/ocaml_flambda/typing/typemode.ml +++ b/upstream/ocaml_flambda/typing/typemode.ml @@ -25,32 +25,25 @@ exception Error of Location.t * error module Axis_pair = struct type 'm t = - | Modal_axis_pair : ('m, 'a, 'd) Mode.Alloc.axis * 'a -> modal t + | Modal_axis_pair : 'a Axis.Modal.t * 'a -> modal t | Any_axis_pair : 'a Axis.t * 'a -> maybe_nonmodal t let of_string s = let open Mode in match s with - | "local" -> Any_axis_pair (Modal (Comonadic Areality), Locality.Const.Local) - | "global" -> - Any_axis_pair (Modal (Comonadic Areality), Locality.Const.Global) - | "unique" -> - Any_axis_pair (Modal (Monadic Uniqueness), Uniqueness.Const.Unique) - | "aliased" -> - Any_axis_pair (Modal (Monadic Uniqueness), Uniqueness.Const.Aliased) - | "once" -> Any_axis_pair (Modal (Comonadic Linearity), Linearity.Const.Once) - | "many" -> Any_axis_pair (Modal (Comonadic Linearity), Linearity.Const.Many) + | "local" -> Any_axis_pair (Modal Locality, Locality.Const.Local) + | "global" -> Any_axis_pair (Modal Locality, Locality.Const.Global) + | "unique" -> Any_axis_pair (Modal Uniqueness, Uniqueness.Const.Unique) + | "aliased" -> Any_axis_pair (Modal Uniqueness, Uniqueness.Const.Aliased) + | "once" -> Any_axis_pair (Modal Linearity, Linearity.Const.Once) + | "many" -> Any_axis_pair (Modal Linearity, Linearity.Const.Many) | "nonportable" -> - Any_axis_pair - (Modal (Comonadic Portability), Portability.Const.Nonportable) - | "portable" -> - Any_axis_pair (Modal (Comonadic Portability), Portability.Const.Portable) - | "contended" -> - Any_axis_pair (Modal (Monadic Contention), Contention.Const.Contended) - | "shared" -> - Any_axis_pair (Modal (Monadic Contention), Contention.Const.Shared) + Any_axis_pair (Modal Portability, Portability.Const.Nonportable) + | "portable" -> Any_axis_pair (Modal Portability, Portability.Const.Portable) + | "contended" -> Any_axis_pair (Modal Contention, Contention.Const.Contended) + | "shared" -> Any_axis_pair (Modal Contention, Contention.Const.Shared) | "uncontended" -> - Any_axis_pair (Modal (Monadic Contention), Contention.Const.Uncontended) + Any_axis_pair (Modal Contention, Contention.Const.Uncontended) | "maybe_null" -> Any_axis_pair (Nonmodal Nullability, Nullability.Maybe_null) | "non_null" -> Any_axis_pair (Nonmodal Nullability, Nullability.Non_null) @@ -58,48 +51,35 @@ module Axis_pair = struct | "external64" -> Any_axis_pair (Nonmodal Externality, Externality.External64) | "external_" -> Any_axis_pair (Nonmodal Externality, Externality.External) - | "yielding" -> - Any_axis_pair (Modal (Comonadic Yielding), Yielding.Const.Yielding) - | "unyielding" -> - Any_axis_pair (Modal (Comonadic Yielding), Yielding.Const.Unyielding) + | "yielding" -> Any_axis_pair (Modal Yielding, Yielding.Const.Yielding) + | "unyielding" -> Any_axis_pair (Modal Yielding, Yielding.Const.Unyielding) | _ -> raise Not_found end let transl_annot (type m) ~(annot_type : m annot_type) ~required_mode_maturity - annot : m Axis_pair.t Location.loc = + annot : m Axis_pair.t = Option.iter (fun maturity -> Language_extension.assert_enabled ~loc:annot.loc Mode maturity) required_mode_maturity; - let pair : m Axis_pair.t = - match Axis_pair.of_string annot.txt, annot_type with - | Any_axis_pair (Nonmodal _, _), (Mode | Modality) | (exception Not_found) - -> - raise (Error (annot.loc, Unrecognized_modifier (annot_type, annot.txt))) - | Any_axis_pair (Modal axis, mode), Mode -> Modal_axis_pair (axis, mode) - | Any_axis_pair (Modal axis, mode), Modality -> Modal_axis_pair (axis, mode) - | pair, Modifier -> pair - in - { txt = pair; loc = annot.loc } + match Axis_pair.of_string annot.txt, annot_type with + | Any_axis_pair (Nonmodal _, _), (Mode | Modality) | (exception Not_found) -> + raise (Error (annot.loc, Unrecognized_modifier (annot_type, annot.txt))) + | Any_axis_pair (Modal axis, mode), Mode -> Modal_axis_pair (axis, mode) + | Any_axis_pair (Modal axis, mode), Modality -> Modal_axis_pair (axis, mode) + | pair, Modifier -> pair let unpack_mode_annot { txt = Parsetree.Mode s; loc } = { txt = s; loc } -module Transled_modifier = struct - type 'a t = 'a Location.loc option - - let drop_loc modifier = Option.map Location.get_txt modifier -end - -module Transled_modifiers = - Jkind_axis.Axis_collection.Indexed (Transled_modifier) +module Opt_axis_collection = Axis_collection (Option) let transl_modifier_annots annots = let step modifiers_so_far annot = - let { txt = Any_axis_pair (type a) ((axis, mode) : a Axis.t * a); loc } = + let (Any_axis_pair (type a) ((axis, mode) : a Axis.t * a)) = transl_annot ~annot_type:Modifier ~required_mode_maturity:None @@ unpack_mode_annot annot in - let (module A) = Axis.get axis in + let (module A : Axis_s with type t = a) = Axis.get axis in let is_top = A.le A.max mode in if is_top then @@ -109,41 +89,37 @@ let transl_modifier_annots annots = (* Location.prerr_warning new_raw.loc (Warnings.Mod_by_top new_raw.txt) *) (); let is_dup = - Option.is_some (Transled_modifiers.get ~axis modifiers_so_far) + Option.is_some (Opt_axis_collection.get ~axis modifiers_so_far) in if is_dup then raise (Error (annot.loc, Duplicated_axis axis)); - Transled_modifiers.set ~axis modifiers_so_far (Some { txt = mode; loc }) + Opt_axis_collection.set ~axis modifiers_so_far (Some mode) in let empty_modifiers = - Transled_modifiers.Create.f { f = (fun ~axis:_ -> None) } + Opt_axis_collection.create { f = (fun ~axis:_ -> None) } in List.fold_left step empty_modifiers annots let transl_mode_annots annots : Alloc.Const.Option.t = let step modifiers_so_far annot = - let { txt = - Modal_axis_pair (type m a d) - ((axis, mode) : (m, a, d) Mode.Alloc.axis * a); - loc - } = + let (Modal_axis_pair (type a) ((axis, mode) : a Axis.Modal.t * a)) = transl_annot ~annot_type:Mode ~required_mode_maturity:(Some Stable) @@ unpack_mode_annot annot in let axis = Axis.Modal axis in - if Option.is_some (Transled_modifiers.get ~axis modifiers_so_far) + if Option.is_some (Opt_axis_collection.get ~axis modifiers_so_far) then raise (Error (annot.loc, Duplicated_axis axis)); - Transled_modifiers.set ~axis modifiers_so_far (Some { txt = mode; loc }) + Opt_axis_collection.set ~axis modifiers_so_far (Some mode) in let empty_modifiers = - Transled_modifiers.Create.f { f = (fun ~axis:_ -> None) } + Opt_axis_collection.create { f = (fun ~axis:_ -> None) } in let modes = List.fold_left step empty_modifiers annots in - { areality = Transled_modifier.drop_loc modes.locality; - linearity = Transled_modifier.drop_loc modes.linearity; - uniqueness = Transled_modifier.drop_loc modes.uniqueness; - portability = Transled_modifier.drop_loc modes.portability; - contention = Transled_modifier.drop_loc modes.contention; - yielding = Transled_modifier.drop_loc modes.yielding + { areality = modes.locality; + linearity = modes.linearity; + uniqueness = modes.uniqueness; + portability = modes.portability; + contention = modes.contention; + yielding = modes.yielding } let untransl_mode_annots ~loc (modes : Mode.Alloc.Const.Option.t) = @@ -171,19 +147,19 @@ let transl_modality ~maturity { txt = Parsetree.Modality modality; loc } = transl_annot ~annot_type:Modality ~required_mode_maturity:(Some maturity) { txt = modality; loc } in - match axis_pair.txt with - | Modal_axis_pair (Comonadic Areality, mode) -> + match axis_pair with + | Modal_axis_pair (Locality, mode) -> Modality.Atom (Comonadic Areality, Meet_with (Const.locality_as_regionality mode)) - | Modal_axis_pair (Comonadic Linearity, mode) -> + | Modal_axis_pair (Linearity, mode) -> Modality.Atom (Comonadic Linearity, Meet_with mode) - | Modal_axis_pair (Comonadic Portability, mode) -> - Modality.Atom (Comonadic Portability, Meet_with mode) - | Modal_axis_pair (Monadic Uniqueness, mode) -> + | Modal_axis_pair (Uniqueness, mode) -> Modality.Atom (Monadic Uniqueness, Join_with mode) - | Modal_axis_pair (Monadic Contention, mode) -> + | Modal_axis_pair (Portability, mode) -> + Modality.Atom (Comonadic Portability, Meet_with mode) + | Modal_axis_pair (Contention, mode) -> Modality.Atom (Monadic Contention, Join_with mode) - | Modal_axis_pair (Comonadic Yielding, mode) -> + | Modal_axis_pair (Yielding, mode) -> Modality.Atom (Comonadic Yielding, Meet_with mode) let untransl_modality (a : Modality.t) : Parsetree.modality loc = diff --git a/upstream/ocaml_flambda/typing/typemode.mli b/upstream/ocaml_flambda/typing/typemode.mli index eb8b3cc8c..96fdd145b 100644 --- a/upstream/ocaml_flambda/typing/typemode.mli +++ b/upstream/ocaml_flambda/typing/typemode.mli @@ -30,13 +30,7 @@ val untransl_modalities : Mode.Modality.Value.Const.t -> Parsetree.modalities -module Transled_modifier : sig - type 'a t = 'a Location.loc option -end - -module Transled_modifiers : - module type of Jkind_axis.Axis_collection.Indexed (Transled_modifier) - (** Interpret a list of modifiers. A "modifier" is any keyword coming after a `mod` in a jkind *) -val transl_modifier_annots : Parsetree.modes -> Transled_modifiers.t +val transl_modifier_annots : + Parsetree.modes -> Jkind_axis.Axis_collection(Option).t diff --git a/upstream/ocaml_flambda/typing/typeopt.ml b/upstream/ocaml_flambda/typing/typeopt.ml index 1b4fb26b4..e96aa9e83 100644 --- a/upstream/ocaml_flambda/typing/typeopt.ml +++ b/upstream/ocaml_flambda/typing/typeopt.ml @@ -88,7 +88,7 @@ let is_base_type env ty base_ty_path = | _ -> false let is_always_gc_ignorable env ty = - let ext : Jkind_axis.Externality.t = + let ext : Jkind.Externality.t = (* We check that we're compiling to (64-bit) native code before counting External64 types as gc_ignorable, because bytecode is intended to be platform independent. *) @@ -328,12 +328,9 @@ let bigarray_specialize_kind_and_layout env ~kind ~layout typ = | _ -> (kind, layout) -let value_kind_of_value_jkind env jkind = +let value_kind_of_value_jkind jkind = let layout = Jkind.get_layout_defaulting_to_value jkind in - (* In other places, we use [Ctype.type_jkind_purely_if_principal]. Here, we omit - the principality check, as we're just trying to compute optimizations. *) - let jkind_of_type ty = Some (Ctype.type_jkind_purely env ty) in - let externality_upper_bound = Jkind.get_externality_upper_bound ~jkind_of_type jkind in + let externality_upper_bound = Jkind.get_externality_upper_bound jkind in match layout, externality_upper_bound with | Base Value, External -> Pintval | Base Value, External64 -> @@ -504,7 +501,7 @@ let rec value_kind env ~loc ~visited ~depth ~num_nodes_visited ty in if cannot_proceed () then num_nodes_visited, - mk_nn (value_kind_of_value_jkind env decl.type_jkind) + mk_nn (value_kind_of_value_jkind decl.type_jkind) else let visited = Numbers.Int.Set.add (get_id ty) visited in (* Default of [Pgenval] is currently safe for the missing cmi fallback @@ -531,7 +528,7 @@ let rec value_kind env ~loc ~visited ~depth ~num_nodes_visited ty "Typeopt.value_kind: non-unary unboxed record can't have kind value" | Type_abstract _ -> num_nodes_visited, - mk_nn (value_kind_of_value_jkind env decl.type_jkind) + mk_nn (value_kind_of_value_jkind decl.type_jkind) | Type_open -> num_nodes_visited, mk_nn Pgenval end | Ttuple labeled_fields -> diff --git a/upstream/ocaml_flambda/typing/types.ml b/upstream/ocaml_flambda/typing/types.ml index 751c7d203..00c6c9144 100644 --- a/upstream/ocaml_flambda/typing/types.ml +++ b/upstream/ocaml_flambda/typing/types.ml @@ -28,13 +28,6 @@ let is_mutable = function (* Type expressions for the core language *) -module Jkind_mod_bounds = - Jkind_axis.Axis_collection.Indexed (Misc.Stdlib.Monad.Identity) - -module With_bounds_type_info = struct - type t = {relevant_axes : Jkind_axis.Axis_set.t } [@@unboxed] -end - type transient_expr = { mutable desc: type_desc; mutable level: int; @@ -106,54 +99,18 @@ and _ commutable_gen = | Cunknown : [> `none] commutable_gen | Cvar : {mutable commu: any commutable_gen} -> [> `var] commutable_gen -(* jkinds *) - -and jkind_history = - | Interact of - { reason : Jkind_intf.History.interact_reason; - jkind1 : jkind_desc_packed; - history1 : jkind_history; - jkind2 : jkind_desc_packed; - history2 : jkind_history - } - | Creation of Jkind_intf.History.creation_reason - -(* See [With_bounds_types] for more information on this abstract type. *) -and with_bounds_types - -and 'd with_bounds = - | No_with_bounds : ('l * 'r) with_bounds - | With_bounds : with_bounds_types -> ('l * Allowance.disallowed) with_bounds - -and ('layout, 'd) layout_and_axes = - { layout : 'layout; - mod_bounds : Jkind_mod_bounds.t; - with_bounds : 'd with_bounds - } - constraint 'd = 'l * 'r - -and 'd jkind_desc = (Jkind_types.Sort.t Jkind_types.Layout.t, 'd) layout_and_axes - constraint 'd = 'l * 'r - -and jkind_desc_packed = Pack_jkind_desc : ('l * 'r) jkind_desc -> jkind_desc_packed - -and 'd jkind_quality = - | Best : ('l * disallowed) jkind_quality - | Not_best : ('l * 'r) jkind_quality - -and 'd jkind = - { jkind : 'd jkind_desc; - annotation : Parsetree.jkind_annotation option; - history : jkind_history; - has_warned : bool; - quality : 'd jkind_quality; - } - constraint 'd = 'l * 'r - +and 'd jkind = (type_expr, 'd) Jkind_types.t and jkind_l = (allowed * disallowed) jkind and jkind_r = (disallowed * allowed) jkind and jkind_lr = (allowed * allowed) jkind -and jkind_packed = Pack_jkind : ('l * 'r) jkind -> jkind_packed + +(* jkind depends on types defined in this file, but Jkind.equal is required + here. When jkind.ml is loaded, it calls set_jkind_equal to fill a ref to the + function. *) +(** Corresponds to [Jkind.equal] *) +let jkind_equal = ref (fun _ _ -> + failwith "jkind_equal should be set by jkind.ml") +let set_jkind_equal f = jkind_equal := f module TransientTypeOps = struct type t = type_expr @@ -318,8 +275,7 @@ and type_decl_kind = (label_declaration, label_declaration, constructor_declaration) type_kind and unsafe_mode_crossing = - { modal_upper_bounds : Mode.Alloc.Comonadic.Const.t; - modal_lower_bounds : Mode.Alloc.Monadic.Const.t } + { modal_upper_bounds : Mode.Alloc.Const.t } and ('lbl, 'lbl_flat, 'cstr) type_kind = Type_abstract of type_origin @@ -871,16 +827,6 @@ let flat_element_to_lowercase_string = function | Vec128 -> "vec128" | Word -> "word" -let equal_unsafe_mode_crossing umc1 umc2 = - let { modal_upper_bounds = mub1; - modal_lower_bounds = mlb1 } = umc1 in - let { modal_upper_bounds = mub2; - modal_lower_bounds = mlb2 } = umc2 in - Mode.Alloc.Comonadic.Const.le mub1 mub2 - && Mode.Alloc.Comonadic.Const.le mub2 mub1 - && Mode.Alloc.Monadic.Const.le mlb1 mlb2 - && Mode.Alloc.Monadic.Const.le mlb2 mlb1 - (**** Definitions for backtracking ****) type change = @@ -1011,144 +957,19 @@ end let eq_type t1 t2 = t1 == t2 || repr t1 == repr t2 let compare_type t1 t2 = compare (get_id t1) (get_id t2) -(* with-bounds *) - -(* Compare types roughly semantically, to allow best-effort deduplication of the types - inside of with-bounds. - - This function might compare two types as inequal that are actually equal, but should - /never/ compare two types as equal that are not semantically equal. It may go without - saying but it also needs to expose a total order. - - Someday, it's probably desirable to merge this, and make it compatible, with - [Ctype.eqtype], though that seems quite hard. -*) -(* CR layouts v2.8: this will likely loop infinitely on rectypes *) -(* CR layouts v2.8: this whole approach is probably /quite/ wrong, since type_expr is - fundamentally mutable, and using mutable things in the keys of maps is a recipe for - disaster. We haven't found a way that this can break /yet/, but it is likely that one - exists. We should rethink this whole approach soon. *) -let rec best_effort_compare_type_expr te1 te2 = - if te1 == te2 || repr te1 == repr te2 then 0 - else - let rank ty = - match get_desc ty with - (* Types which must be compared by id *) - | Tvar _ - | Tunivar _ - | Tobject (_, _) - | Tfield (_, _, _, _) - | Tnil - | Tvariant _ - | Tpackage (_, _) - | Tarrow (_, _, _, _) - (* CR layouts v2.8: we can actually see Tsubst here in certain cases, eg during - [Ctype.copy] when copying the types inside of with_bounds. We also can't - compare Tsubst structurally, because the Tsubsts that are created in - Ctype.copy are cyclic (?). So the best we can do here is compare by id. - this is almost definitely wrong, primarily because of the mutability - we - should fix that. *) - | Tsubst (_, _) - -> - (* This negation is important! We want all these types to compare strictly /less/ - than the structural ones - the easiest way to make that happen is to make the - id negative, and ensure the ranks of all the other variants are positive *) - -ty.id - (* Types which we know how to compare structurally*) - | Ttuple _ -> 2 - | Tunboxed_tuple _ -> 3 - | Tconstr (_, _, _) -> 5 - | Tpoly (_, _) -> 6 - (* Types we should never see *) - | Tlink _ -> Misc.fatal_error "Tlink encountered in With_bounds_types" - in - match get_desc te1, get_desc te2 with - | Ttuple elts1, Ttuple elts2 - | Tunboxed_tuple elts1, Tunboxed_tuple elts2 -> - List.compare - (fun (l1, te1) (l2, te2) -> - let l = Option.compare String.compare l1 l2 in - if l = 0 then best_effort_compare_type_expr te1 te2 else l - ) - elts1 - elts2 - | Tconstr (p1, args1, _), Tconstr (p2, args2, _) -> - let p = Path.compare p1 p2 in - if p = 0 - then List.compare best_effort_compare_type_expr args1 args2 - else p - | Tpoly (t1, ts1), Tpoly (t2, ts2) -> - (* NOTE: this is mostly broken according to the semantics of type_expr, but probably - fine for the particular "best-effort" comparison we want. *) - List.compare best_effort_compare_type_expr (t1 :: ts1) (t2 :: ts2) - | _, _ -> rank te1 - rank te2 - -(* A map from [type_expr] to [With_bounds_type_info.t], specifically defined with a - (best-effort) semantic comparison function on types to be used in the with-bounds of a - jkind. - - This module is defined internally to be equal (via two uses of [Obj.magic]) to the - abstract type [with_bound_types] to break the circular dependency between with-bounds - and type_expr. The alternative to this approach would be mutually recursive modules, - but this approach creates a smaller diff with upstream and makes rebasing easier. -*) -module With_bounds_types : sig - (* Note that only the initially needed bits of [Stdlib.Map.S] are exposed here; feel - free to expose more functions if you need them! *) - type t = with_bounds_types - type info := With_bounds_type_info.t - - val empty : t - val is_empty : t -> bool - val to_seq : t -> (type_expr * info) Seq.t - val of_list : (type_expr * info) list -> t - val of_seq : (type_expr * info) Seq.t -> t - val singleton : type_expr -> info -> t - val map : (info -> info) -> t -> t - val merge - : (type_expr -> info option -> info option -> info option) -> - t -> t -> t - val update : type_expr -> (info option -> info option) -> t -> t - val find_opt : type_expr -> t -> info option -end = struct - module M = Map.Make(struct - type t = type_expr - - let compare = best_effort_compare_type_expr - end) - include M - - type map = With_bounds_type_info.t M.t - type t = with_bounds_types - - let of_map : map -> with_bounds_types = Obj.magic - let to_map : with_bounds_types -> map = Obj.magic - - let empty = empty |> of_map - let is_empty t = t |> to_map |> is_empty - let to_seq t = t |> to_map |> to_seq - let of_seq s = of_seq s |> of_map - let of_list l = l |> List.to_seq |> of_seq - let singleton ty i = add ty i (to_map empty) |> of_map - let map f t = map f (to_map t) |> of_map - let merge f t1 t2 = merge f (to_map t1) (to_map t2) |> of_map - let update te f t = update te f (to_map t) |> of_map - let find_opt te t = find_opt te (to_map t) -end - (* Constructor and accessors for [row_desc] *) let create_row ~fields ~more ~closed ~fixed ~name = - { row_fields=fields; row_more=more; - row_closed=closed; row_fixed=fixed; row_name=name } + { row_fields=fields; row_more=more; + row_closed=closed; row_fixed=fixed; row_name=name } (* [row_fields] subsumes the original [row_repr] *) let rec row_fields row = match get_desc row.row_more with | Tvariant row' -> - row.row_fields @ row_fields row' + row.row_fields @ row_fields row' | _ -> - row.row_fields + row.row_fields let rec row_repr_no_fields row = match get_desc row.row_more with diff --git a/upstream/ocaml_flambda/typing/types.mli b/upstream/ocaml_flambda/typing/types.mli index 50d1fcd63..81d8241b6 100644 --- a/upstream/ocaml_flambda/typing/types.mli +++ b/upstream/ocaml_flambda/typing/types.mli @@ -67,17 +67,6 @@ val is_mutable : mutability -> bool Note on mutability: TBD. *) - -(** The mod-bounds of a jkind *) -module Jkind_mod_bounds : - module type of Jkind_axis.Axis_collection.Indexed (Misc.Stdlib.Monad.Identity) - -(** Information tracked about an individual type within the with-bounds for a jkind *) -module With_bounds_type_info : sig - (** The axes that the with-bound applies to *) - type t = { relevant_axes : Jkind_axis.Axis_set.t } [@@unboxed] -end - type type_expr type row_desc type row_field @@ -240,102 +229,19 @@ and abbrev_memo = This is only allowed when the real type is known. *) - -(**** Jkinds ****) - -(** A history of conditions placed on a jkind. - - INVARIANT: at most one sort variable appears in this history. - This is a natural consequence of producing this history by comparing - jkinds. -*) -and jkind_history = - | Interact of - { reason : Jkind_intf.History.interact_reason; - jkind1 : jkind_desc_packed; - history1 : jkind_history; - jkind2 : jkind_desc_packed; - history2 : jkind_history - } - | Creation of Jkind_intf.History.creation_reason - -(** The types within the with-bounds of a jkind *) -and with_bounds_types - -and 'd with_bounds = - | No_with_bounds : ('l * 'r) with_bounds - | With_bounds - : with_bounds_types -> ('l * Allowance.disallowed) with_bounds - (** Invariant : there must always be at least one type in this set **) - -and ('layout, 'd) layout_and_axes = - { layout : 'layout; - mod_bounds : Jkind_mod_bounds.t; - with_bounds : 'd with_bounds - } - constraint 'd = 'l * 'r - -and 'd jkind_desc = (Jkind_types.Sort.t Jkind_types.Layout.t, 'd) layout_and_axes - constraint 'd = 'l * 'r - -and jkind_desc_packed = Pack_jkind_desc : ('l * 'r) jkind_desc -> jkind_desc_packed - -(** The "quality" of a jkind indicates whether we are able to learn more about the jkind - later. - - We can never learn more about a [Best] jkind to make it "lower" (according to - [Jkind.sub] / [Jkind.sub_jkind_l]). A [Not_best], jkind, however, might have more - information provided about it later that makes it lower. - - Note that only left jkinds can be [Best] (meaning we can never compare less than or - equal to a left jkind!) -*) -and 'd jkind_quality = - | Best : ('l * disallowed) jkind_quality - | Not_best : ('l * 'r) jkind_quality - -and 'd jkind = - { jkind : 'd jkind_desc; - annotation : Parsetree.jkind_annotation option; - history : jkind_history; - has_warned : bool; - quality : 'd jkind_quality; - } - constraint 'd = 'l * 'r - +(** Jkinds classify types. *) +(* CR layouts v2.8: Say more here. *) +and 'd jkind = (type_expr, 'd) Jkind_types.t and jkind_l = (allowed * disallowed) jkind (* the jkind of an actual type *) and jkind_r = (disallowed * allowed) jkind (* the jkind expected of a type *) and jkind_lr = (allowed * allowed) jkind (* the jkind of a variable *) -and jkind_packed = Pack_jkind : ('l * 'r) jkind -> jkind_packed -(* A map from [type_expr] to [With_bounds_type_info.t], specifically defined with a - (best-effort) semantic comparison function on types to be used in the with-bounds of a - jkind. - - This module is defined internally to be equal (via two uses of [Obj.magic]) to the - abstract type [with_bound_types] to break the circular dependency between with-bounds - and type_expr. The alternative to this approach would be mutually recursive modules, - but this approach creates a smaller diff with upstream and makes rebasing easier. -*) -module With_bounds_types : sig - (* Note that only the initially needed bits of [Stdlib.Map.S] are exposed here; feel - free to expose more functions if you need them! *) - type t = with_bounds_types - type info := With_bounds_type_info.t - - val empty : t - val is_empty : t -> bool - val to_seq : t -> (type_expr * info) Seq.t - val of_list : (type_expr * info) list -> t - val of_seq : (type_expr * info) Seq.t -> t - val singleton : type_expr -> info -> t - val map : (info -> info) -> t -> t - val merge - : (type_expr -> info option -> info option -> info option) -> - t -> t -> t - val update : type_expr -> (info option -> info option) -> t -> t - val find_opt : type_expr -> t -> info option -end +(* jkind depends on types defined in this file, but Jkind.equal is required + here. When jkind.ml is loaded, it calls set_jkind_equal to fill a ref to the + function. *) +(** INTERNAL USE ONLY + jkind.ml should call this with the definition of Jkind.equal *) +val set_jkind_equal : (jkind_l -> jkind_l -> bool) -> unit val is_commu_ok: commutable -> bool val commu_ok: commutable @@ -640,8 +546,7 @@ type type_declaration = and type_decl_kind = (label_declaration, label_declaration, constructor_declaration) type_kind and unsafe_mode_crossing = - { modal_upper_bounds : Mode.Alloc.Comonadic.Const.t; - modal_lower_bounds : Mode.Alloc.Monadic.Const.t } + { modal_upper_bounds : Mode.Alloc.Const.t } and ('lbl, 'lbl_flat, 'cstr) type_kind = Type_abstract of type_origin @@ -1060,9 +965,6 @@ val compare_flat_element : flat_element -> flat_element -> int val flat_element_to_string : flat_element -> string val flat_element_to_lowercase_string : flat_element -> string -val equal_unsafe_mode_crossing : - unsafe_mode_crossing -> unsafe_mode_crossing -> bool - (**** Utilities for backtracking ****) type snapshot diff --git a/upstream/ocaml_flambda/utils/clflags.ml b/upstream/ocaml_flambda/utils/clflags.ml index 30c54891f..9c47acbe0 100644 --- a/upstream/ocaml_flambda/utils/clflags.ml +++ b/upstream/ocaml_flambda/utils/clflags.ml @@ -222,7 +222,6 @@ let afl_inst_ratio = ref 100 (* -afl-inst-ratio *) let function_sections = ref false (* -function-sections *) let probes = ref Config.probes (* -probes *) -let infer_with_bounds = ref false (* -infer-with-bounds *) let simplify_rounds = ref None (* -rounds *) let default_simplify_rounds = ref 1 (* -rounds *) let rounds () = diff --git a/upstream/ocaml_flambda/utils/clflags.mli b/upstream/ocaml_flambda/utils/clflags.mli index 84191a7f3..7ef1c4ce8 100644 --- a/upstream/ocaml_flambda/utils/clflags.mli +++ b/upstream/ocaml_flambda/utils/clflags.mli @@ -226,7 +226,6 @@ val afl_instrument : bool ref val afl_inst_ratio : int ref val function_sections : bool ref val probes : bool ref -val infer_with_bounds : bool ref val all_passes : string list ref val dumped_pass : string -> bool diff --git a/upstream/ocaml_flambda/utils/config.mli b/upstream/ocaml_flambda/utils/config.mli index fb4627673..29475ba2e 100644 --- a/upstream/ocaml_flambda/utils/config.mli +++ b/upstream/ocaml_flambda/utils/config.mli @@ -183,6 +183,10 @@ val asm_cfi_supported: bool val with_frame_pointers : bool (** Whether assembler should maintain frame pointers *) +val with_address_sanitizer : bool +(** Whether code generation should expose native OCaml operations to + AddressSanitizer. *) + val with_cpp_mangling : bool (** Whether symbol names should be following the cpp mangling convention *) diff --git a/upstream/ocaml_flambda/utils/misc.ml b/upstream/ocaml_flambda/utils/misc.ml index 0577e7e41..ca519ee77 100644 --- a/upstream/ocaml_flambda/utils/misc.ml +++ b/upstream/ocaml_flambda/utils/misc.ml @@ -225,17 +225,6 @@ module Stdlib = struct in aux f 0 accu l - let fold_left_map2 f accu l1 l2 = - let rec aux f accu res l1 l2 = - match l1, l2 with - | [], [] -> accu, List.rev res - | a1 :: l1, a2 :: l2 -> - let accu', r = f accu a1 a2 in - aux f accu' (r :: res) l1 l2 - | _, _ -> invalid_arg "fold_left_map2" - in - aux f accu [] l1 l2 - let chunks_of n l = if n <= 0 then raise (Invalid_argument "chunks_of"); (* Invariant: List.length l = remaining *) @@ -515,6 +504,13 @@ module Stdlib = struct external compare : 'a -> 'a -> int = "%compare" module Monad = struct + module type Basic = sig + type 'a t + + val bind : 'a t -> ('a -> 'b t) -> 'b t + val return : 'a -> 'a t + end + module type Basic2 = sig type ('a, 'e) t @@ -523,49 +519,61 @@ module Stdlib = struct val return : 'a -> ('a, _) t end - module type Basic = sig + module type S = sig type 'a t - include Basic2 with type ('a, _) t := 'a t + + val bind : 'a t -> ('a -> 'b t) -> 'b t + val (>>=) : 'a t -> ('a -> 'b t) -> 'b t + val return : 'a -> 'a t + val map : ('a -> 'b) -> 'a t -> 'b t + val join : 'a t t -> 'a t + val ignore_m : 'a t -> unit t + val all : 'a t list -> 'a list t + val all_unit : unit t list -> unit t end module type S2 = sig type ('a, 'e) t val bind : ('a, 'e) t -> ('a -> ('b, 'e) t) -> ('b, 'e) t - val (>>=) : ('a, 'e) t -> ('a -> ('b, 'e) t) -> ('b, 'e) t val return : 'a -> ('a, _) t val map : ('a -> 'b) -> ('a, 'e) t -> ('b, 'e) t val join : (('a, 'e) t, 'e) t -> ('a, 'e) t - val both : ('a, 'e) t -> ('b, 'e) t -> ('a * 'b, 'e) t val ignore_m : (_, 'e) t -> (unit, 'e) t val all : ('a, 'e) t list -> ('a list, 'e) t val all_unit : (unit, 'e) t list -> (unit, 'e) t - - module Syntax : sig - val (let+) : ('a, 'e) t -> ('a -> 'b) -> ('b, 'e) t - val (and+) : ('a, 'e) t -> ('b, 'e) t -> ('a * 'b, 'e) t - val (let*) : ('a, 'e) t -> ('a -> ('b, 'e) t) -> ('b, 'e) t - val (and*) : ('a, 'e) t -> ('b, 'e) t -> ('a * 'b, 'e) t - end end - module type S = sig - type 'a t - include S2 with type ('a, _) t := 'a t + module Make (X : Basic) = struct + include X + + let ( >>= ) t f = bind t f + + let map f ma = ma >>= fun a -> return (f a) + + let join t = t >>= fun t' -> t' + let ignore_m t = map (fun _ -> ()) t + + let all = + let rec loop vs = function + | [] -> return (List.rev vs) + | t :: ts -> t >>= fun v -> loop (v :: vs) ts + in + fun ts -> loop [] ts + + let rec all_unit = function + | [] -> return () + | t :: ts -> t >>= fun () -> all_unit ts end - module[@inline] Make2 (X : Basic2) = struct + module Make2 (X : Basic2) = struct include X - let[@inline] ( >>= ) t f = bind t f - let map f m = bind m (fun a -> return (f a)) let join m = bind m Fun.id - let both t1 t2 = t1 >>= fun t1 -> t2 >>= fun t2 -> return (t1, t2) - let ignore_m m = bind m (fun _ -> return ()) let all ms = @@ -578,30 +586,8 @@ module Stdlib = struct let rec all_unit = function | [] -> return () | m :: ms -> bind m (fun _ -> all_unit ms) - - module Syntax = struct - let[@inline] (let+) t f = map f t - let[@inline] (and+) a b = both a b - let[@inline] (let*) t f = bind t f - let[@inline] (and*) a b = (and+) a b - end end - module[@inline] Make (X : Basic) = struct - include Make2(struct - include X - type ('a, _) t = 'a X.t - end) - - type nonrec 'a t = 'a X.t - end - - module Identity = Make(struct - type 'a t = 'a - let[@inline] bind x f = f x - let[@inline] return x = x - end) - module Option = Make(struct include Stdlib.Option let return = some @@ -1680,14 +1666,6 @@ module Le_result = struct let is_equal = function | Equal -> true | Less | Not_le -> false - - let less_or_equal ~le a b = - match le a b, le b a with - | true, true -> Equal - | true, false -> Less - | false, _ -> Not_le - - let equal ~le a b = le a b && le b a end (*********************************************) @@ -1737,21 +1715,3 @@ let remove_double_underscores s = in loop 0; Buffer.contents buf - -module Nonempty_list = struct - type nonrec 'a t = ( :: ) of 'a * 'a list - - let to_list (x :: xs) : _ list = x :: xs - - let of_list_opt : _ list -> _ t option = function - | [] -> None - | (x :: xs)-> Some (x :: xs) - - let map f (x :: xs) = f x :: List.map f xs - - let pp_print ?pp_sep f ppf t = - Format.pp_print_list ?pp_sep f ppf (to_list t) - - let (@) (x :: xs) (y :: ys) = - x :: List.(xs @ (y :: ys)) -end diff --git a/upstream/ocaml_flambda/utils/misc.mli b/upstream/ocaml_flambda/utils/misc.mli index b385957ab..2ecee87c8 100644 --- a/upstream/ocaml_flambda/utils/misc.mli +++ b/upstream/ocaml_flambda/utils/misc.mli @@ -163,15 +163,6 @@ module Stdlib : sig (** [fold_lefti f init l] is like [fold_left] but also takes as parameter the zero-based index of the element *) - val fold_left_map2 - : ('acc -> 'a -> 'b -> 'acc * 'r) - -> 'acc - -> 'a list - -> 'b list - -> 'acc * 'r list - (** [fold_left_map2] is a combination of [fold_left2] and [map2] that threads an - accumulator through calls to [f]. *) - val chunks_of : int -> 'a t -> 'a t t (** [chunks_of n t] returns a list of nonempty lists whose concatenation is equal to the original list. Every list has [n] @@ -326,16 +317,11 @@ module Stdlib : sig external compare : 'a -> 'a -> int = "%compare" module Monad : sig - module type Basic2 = sig - (** Multi parameter monad. The second parameter gets unified across all - the computation. This is used to encode monads working on a multi - parameter data structure like ([('a,'b) result]). *) - - type ('a, 'e) t - - val bind : ('a, 'e) t -> ('a -> ('b, 'e) t) -> ('b, 'e) t + module type Basic = sig + type 'a t - val return : 'a -> ('a, _) t + val bind : 'a t -> ('a -> 'b t) -> 'b t + val return : 'a -> 'a t (** The following identities ought to hold (for some value of =): @@ -346,58 +332,60 @@ module Stdlib : sig Note: [>>=] is the infix notation for [bind]) *) end - module type Basic = sig - type 'a t - include Basic2 with type ('a, _) t := 'a t - end + module type Basic2 = sig + (** Multi parameter monad. The second parameter gets unified across all + the computation. This is used to encode monads working on a multi + parameter data structure like ([('a,'b) result]). *) - module type S2 = sig type ('a, 'e) t val bind : ('a, 'e) t -> ('a -> ('b, 'e) t) -> ('b, 'e) t + val return : 'a -> ('a, _) t + end + + module type S = sig + type 'a t + + val bind : 'a t -> ('a -> 'b t) -> 'b t + (** [>>=] is a synonym for [bind] *) - val (>>=) : ('a, 'e) t -> ('a -> ('b, 'e) t) -> ('b, 'e) t + val (>>=) : 'a t -> ('a -> 'b t) -> 'b t (** [return v] returns the (trivial) computation that returns v. *) - val return : 'a -> ('a, _) t + val return : 'a -> 'a t - val map : ('a -> 'b) -> ('a, 'e) t -> ('b, 'e) t + val map : ('a -> 'b) -> 'a t -> 'b t (** [join t] is [t >>= (fun t' -> t')]. *) - val join : (('a, 'e) t, 'e) t -> ('a, 'e) t - - val both : ('a, 'e) t -> ('b, 'e) t -> ('a * 'b, 'e) t + val join : 'a t t -> 'a t (** [ignore_m t] is [map (fun _ -> ()) t]. *) - val ignore_m : (_, 'e) t -> (unit, 'e) t + val ignore_m : 'a t -> unit t - val all : ('a, 'e) t list -> ('a list, 'e) t + val all : 'a t list -> 'a list t (** Like [all], but ensures that every monadic value in the list produces a unit value, all of which are discarded rather than being collected into a list. *) - val all_unit : (unit, 'e) t list -> (unit, 'e) t - - (** As described at https://ocaml.org/manual/latest/bindingops.html *) - module Syntax : sig - val (let+) : ('a, 'e) t -> ('a -> 'b) -> ('b, 'e) t - val (and+) : ('a, 'e) t -> ('b, 'e) t -> ('a * 'b, 'e) t - val (let*) : ('a, 'e) t -> ('a -> ('b, 'e) t) -> ('b, 'e) t - val (and*) : ('a, 'e) t -> ('b, 'e) t -> ('a * 'b, 'e) t - end + val all_unit : unit t list -> unit t end - module type S = sig - type 'a t - include S2 with type ('a, _) t := 'a t - end + module type S2 = sig + type ('a, 'e) t + val bind : ('a, 'e) t -> ('a -> ('b, 'e) t) -> ('b, 'e) t + val return : 'a -> ('a, _) t + val map : ('a -> 'b) -> ('a, 'e) t -> ('b, 'e) t + val join : (('a, 'e) t, 'e) t -> ('a, 'e) t + val ignore_m : (_, 'e) t -> (unit, 'e) t + val all : ('a, 'e) t list -> ('a list, 'e) t + val all_unit : (unit, 'e) t list -> (unit, 'e) t + end module Make (X : Basic) : S with type 'a t = 'a X.t module Make2 (X : Basic2) : S2 with type ('a, 'e) t = ('a, 'e) X.t - module Identity : S with type 'a t = 'a module Option : S with type 'a t = 'a option module Result : S2 with type ('a, 'e) t = ('a, 'e) result end @@ -1067,10 +1055,6 @@ module Le_result : sig val is_le : t -> bool val is_equal : t -> bool - - (* adaptors for structures that can only compare less-or-equal *) - val less_or_equal : le:('a -> 'a -> bool) -> 'a -> 'a -> t - val equal : le:('a -> 'a -> bool) -> 'a -> 'a -> bool end (** Propositional equality *) @@ -1104,21 +1088,3 @@ type filepath = string type alerts = string Stdlib.String.Map.t val remove_double_underscores : string -> string - -(** Non-empty lists *) -module Nonempty_list : sig - type nonrec 'a t = ( :: ) of 'a * 'a list - - val to_list : 'a t -> 'a list - val of_list_opt : 'a list -> 'a t option - val map : ('a -> 'b) -> 'a t -> 'b t - - val pp_print : - ?pp_sep:(Format.formatter -> unit -> unit) -> - (Format.formatter -> 'a -> unit) -> - Format.formatter -> - 'a t -> - unit - - val (@) : 'a t -> 'a t -> 'a t -end From e4a336bd87468ce925d2a36a84ae3a0bb4fd5785 Mon Sep 17 00:00:00 2001 From: Liam Stevenson Date: Mon, 17 Feb 2025 14:03:10 -0500 Subject: [PATCH 20/25] Commit conflicts --- src/ocaml/parsing/ast_helper.ml | 2 +- src/ocaml/parsing/ast_iterator.ml | 5 +- src/ocaml/parsing/ast_mapper.ml | 4 +- src/ocaml/parsing/parsetree.mli | 4 +- src/ocaml/parsing/pprintast.ml | 16 + src/ocaml/parsing/printast.ml | 5 +- src/ocaml/preprocess/parser_raw.mly | 4 +- src/ocaml/typing/btype.ml | 1 - src/ocaml/typing/btype.mli | 1 - src/ocaml/typing/ctype.ml | 426 ++--- src/ocaml/typing/ctype.mli | 14 +- src/ocaml/typing/datarepr.ml | 5 +- src/ocaml/typing/includecore.ml | 77 +- src/ocaml/typing/includemod.ml | 17 +- src/ocaml/typing/jkind.ml | 2044 +++++---------------- src/ocaml/typing/jkind.mli | 488 ++--- src/ocaml/typing/jkind_axis.ml | 446 ++--- src/ocaml/typing/jkind_axis.mli | 258 ++- src/ocaml/typing/jkind_types.ml | 110 ++ src/ocaml/typing/jkind_types.mli | 98 +- src/ocaml/typing/mode.ml | 502 ++--- src/ocaml/typing/mode_intf.mli | 77 +- src/ocaml/typing/mtype.ml | 2 - src/ocaml/typing/mtype.mli | 2 - src/ocaml/typing/oprint.ml | 132 ++ src/ocaml/typing/outcometree.mli | 5 +- src/ocaml/typing/predef.ml | 109 +- src/ocaml/typing/predef.mli | 9 +- src/ocaml/typing/printtyp.ml | 7 +- src/ocaml/typing/subst.ml | 83 +- src/ocaml/typing/typecore.ml | 61 +- src/ocaml/typing/typedecl.ml | 530 +++--- src/ocaml/typing/typedecl.mli | 2 - src/ocaml/typing/typedecl_separability.ml | 3 +- src/ocaml/typing/typemod.ml | 23 +- src/ocaml/typing/typemode.ml | 114 +- src/ocaml/typing/typemode.mli | 10 +- src/ocaml/typing/typeopt.ml | 13 +- src/ocaml/typing/types.ml | 211 +-- src/ocaml/typing/types.mli | 122 +- 40 files changed, 2226 insertions(+), 3816 deletions(-) diff --git a/src/ocaml/parsing/ast_helper.ml b/src/ocaml/parsing/ast_helper.ml index f046cc358..076364df0 100644 --- a/src/ocaml/parsing/ast_helper.ml +++ b/src/ocaml/parsing/ast_helper.ml @@ -147,7 +147,7 @@ module Typ = struct | Default as x -> x | Abbreviation _ as x -> x | Mod (jkind, modes) -> Mod (loop_jkind jkind, modes) - | With (jkind, typ, modalities) -> With (loop_jkind jkind, loop typ, modalities) + | With (jkind, typ) -> With (loop_jkind jkind, loop typ) | Kind_of typ -> Kind_of (loop typ) | Product jkinds -> Product (List.map loop_jkind jkinds) in diff --git a/src/ocaml/parsing/ast_iterator.ml b/src/ocaml/parsing/ast_iterator.ml index 7311e2586..c1ca9b78b 100644 --- a/src/ocaml/parsing/ast_iterator.ml +++ b/src/ocaml/parsing/ast_iterator.ml @@ -842,10 +842,9 @@ let default_iterator = | Mod (t, mode_list) -> this.jkind_annotation this t; this.modes this mode_list - | With (t, ty, modalities) -> + | With (t, ty) -> this.jkind_annotation this t; - this.typ this ty; - this.modalities this modalities + this.typ this ty | Kind_of ty -> this.typ this ty | Product ts -> List.iter (this.jkind_annotation this) ts); diff --git a/src/ocaml/parsing/ast_mapper.ml b/src/ocaml/parsing/ast_mapper.ml index 177198f18..5c4a83823 100644 --- a/src/ocaml/parsing/ast_mapper.ml +++ b/src/ocaml/parsing/ast_mapper.ml @@ -946,8 +946,8 @@ let default_mapper = | Abbreviation (s : string) -> Abbreviation s | Mod (t, mode_list) -> Mod (this.jkind_annotation this t, this.modes this mode_list) - | With (t, ty, modalities) -> - With (this.jkind_annotation this t, this.typ this ty, this.modalities this modalities) + | With (t, ty) -> + With (this.jkind_annotation this t, this.typ this ty) | Kind_of ty -> Kind_of (this.typ this ty) | Product ts -> Product (List.map (this.jkind_annotation this) ts) in diff --git a/src/ocaml/parsing/parsetree.mli b/src/ocaml/parsing/parsetree.mli index fb722fa38..71addd4cd 100644 --- a/src/ocaml/parsing/parsetree.mli +++ b/src/ocaml/parsing/parsetree.mli @@ -1296,10 +1296,8 @@ and module_binding = and jkind_annotation_desc = | Default | Abbreviation of string - (* CR layouts v2.8: [mod] can have only layouts on the left, not - full kind annotations. We may want to narrow this type some. *) | Mod of jkind_annotation * modes - | With of jkind_annotation * core_type * modalities + | With of jkind_annotation * core_type | Kind_of of core_type | Product of jkind_annotation list diff --git a/src/ocaml/parsing/pprintast.ml b/src/ocaml/parsing/pprintast.ml index 755a2632e..dc8daa6de 100644 --- a/src/ocaml/parsing/pprintast.ml +++ b/src/ocaml/parsing/pprintast.ml @@ -463,6 +463,7 @@ and jkind_annotation ?(nested = false) ctxt f k = match k.pjkind_desc with (pp_print_list ~pp_sep:pp_print_space mode) modes ) f (t, modes) end +<<<<<<< janestreet/merlin-jst:5.2.0minus-6 | With (t, ty, modalities) -> Misc_stdlib.pp_parens_if nested (fun f (t, ty, modalities) -> pp f "%a with %a%a" @@ -470,6 +471,21 @@ and jkind_annotation ?(nested = false) ctxt f k = match k.pjkind_desc with (core_type ctxt) ty optional_space_atat_modalities modalities; ) f (t, ty, modalities) +||||||| ocaml-flambda/flambda-backend:6a83bbad9dd6c86ea5019a84258b04c81aa34a38 + | With (t, ty, modalities) -> + Misc.pp_parens_if nested (fun f (t, ty, modalities) -> + pp f "%a with %a%a" + (jkind_annotation ~nested:true ctxt) t + (core_type ctxt) ty + optional_space_atat_modalities modalities; + ) f (t, ty, modalities) +======= + | With (t, ty) -> + Misc.pp_parens_if nested (fun f (t, ty) -> + pp f "%a with %a" (jkind_annotation ~nested:true ctxt) t (core_type ctxt) + ty + ) f (t, ty) +>>>>>>> ocaml-flambda/flambda-backend:db3778f932fc0a2f9d71ba5f9dcf7c76fcc74a63 | Kind_of ty -> pp f "kind_of_ %a" (core_type ctxt) ty | Product ts -> Misc_stdlib.pp_parens_if nested (fun f ts -> diff --git a/src/ocaml/parsing/printast.ml b/src/ocaml/parsing/printast.ml index aa32c5d3d..895314366 100644 --- a/src/ocaml/parsing/printast.ml +++ b/src/ocaml/parsing/printast.ml @@ -509,11 +509,10 @@ and jkind_annotation i ppf (jkind : jkind_annotation) = line i ppf "Mod\n"; jkind_annotation (i+1) ppf jkind; modes (i+1) ppf m - | With (jkind, type_, modalities_) -> + | With (jkind, type_) -> line i ppf "With\n"; jkind_annotation (i+1) ppf jkind; - core_type (i+1) ppf type_; - modalities (i+1) ppf modalities_ + core_type (i+1) ppf type_ | Kind_of type_ -> line i ppf "Kind_of\n"; core_type (i+1) ppf type_ diff --git a/src/ocaml/preprocess/parser_raw.mly b/src/ocaml/preprocess/parser_raw.mly index 29a06ce99..32b7c58fc 100644 --- a/src/ocaml/preprocess/parser_raw.mly +++ b/src/ocaml/preprocess/parser_raw.mly @@ -4156,8 +4156,8 @@ jkind_desc: in Mod ($1, modes) } - | jkind_annotation WITH core_type optional_atat_modalities_expr { - With ($1, $3, $4) + | jkind_annotation WITH core_type { + With ($1, $3) } | ident { Abbreviation $1 diff --git a/src/ocaml/typing/btype.ml b/src/ocaml/typing/btype.ml index 861828879..6f02c249f 100644 --- a/src/ocaml/typing/btype.ml +++ b/src/ocaml/typing/btype.ml @@ -48,7 +48,6 @@ module TypeHash = struct include TransientTypeHash let mem hash = wrap_repr (mem hash) let add hash = wrap_repr (add hash) - let replace hash = wrap_repr (replace hash) let remove hash = wrap_repr (remove hash) let find hash = wrap_repr (find hash) let find_opt hash = wrap_repr (find_opt hash) diff --git a/src/ocaml/typing/btype.mli b/src/ocaml/typing/btype.mli index 706e50eb3..4c4493dc6 100644 --- a/src/ocaml/typing/btype.mli +++ b/src/ocaml/typing/btype.mli @@ -41,7 +41,6 @@ module TypeHash : sig include Hashtbl.S with type key = transient_expr val mem: 'a t -> type_expr -> bool val add: 'a t -> type_expr -> 'a -> unit - val replace: 'a t -> type_expr -> 'a -> unit val remove: 'a t -> type_expr -> unit val find: 'a t -> type_expr -> 'a val find_opt: 'a t -> type_expr -> 'a option diff --git a/src/ocaml/typing/ctype.ml b/src/ocaml/typing/ctype.ml index 7ea1c1168..ee0d9a481 100644 --- a/src/ocaml/typing/ctype.ml +++ b/src/ocaml/typing/ctype.ml @@ -1486,13 +1486,6 @@ let instance_parameterized_type ?keep_names sch_args sch = (ty_args, ty) ) -let instance_parameterized_kind args jkind = - For_copy.with_scope (fun copy_scope -> - let ty_args = List.map (fun t -> copy copy_scope t) args in - let jkind = Jkind.map_type_expr (copy copy_scope) jkind in - (ty_args, jkind) - ) - (* [map_kind f kind] maps [f] over all the types in [kind]. [f] must preserve jkinds *) let map_kind f = function | (Type_abstract _ | Type_open) as k -> k @@ -1525,7 +1518,6 @@ let instance_declaration decl = {decl with type_params = List.map copy decl.type_params; type_manifest = Option.map copy decl.type_manifest; type_kind = map_kind copy decl.type_kind; - type_jkind = Jkind.map_type_expr copy decl.type_jkind; } ) @@ -1856,20 +1848,6 @@ let subst env level priv abbrev oty params args body = undo_abbrev (); raise Cannot_subst -let jkind_subst env level params args jkind = - if List.length params <> List.length args then raise Cannot_subst; - let old_level = !current_level in - current_level := level; - let (params', jkind') = instance_parameterized_kind params jkind in - let uenv = Expression {env; in_subst = true} in - try - List.iter2 (!unify_var' uenv) params' args; - current_level := old_level; - jkind' - with Unify _ -> - current_level := old_level; - raise Cannot_subst - (* CR layouts: Can we actually just always ignore jkinds in apply/subst? It seems like almost, but there may be cases where it would forget @@ -2126,8 +2104,6 @@ let try_expand_safe_opt env ty = let expand_head_opt env ty = try try_expand_head try_expand_safe_opt env ty with Cannot_expand -> ty -let is_principal ty = - not !Clflags.principal || get_level ty = generic_level type unbox_result = (* unboxing process made a step: either an unboxing or removal of a [Tpoly] *) @@ -2215,11 +2191,6 @@ let tvariant_not_immediate row = | _ -> false) (row_fields row) -(* forward declarations *) -let type_equal' = ref (fun _ _ _ -> Misc.fatal_error "type_equal") -let type_jkind_purely_if_principal' = - ref (fun _ _ -> Misc.fatal_error "type_jkind_purely_if_principal") - (* We parameterize [estimate_type_jkind] by a function [expand_component] because some callers want expansion of types and others don't. *) @@ -2229,46 +2200,15 @@ let rec estimate_type_jkind ~expand_component env ty = | Tarrow _ -> Jkind.for_arrow | Ttuple _ -> Jkind.Builtin.value ~why:Tuple | Tunboxed_tuple ltys -> - let tys_modalities = - List.map (fun (_, ty) -> expand_component ty, - Mode.Modality.Value.Const.id) ltys - in - (* CR layouts v2.8: This pretty ridiculous use of [estimate_type_jkind] - just to throw most of it away will go away once we get [layout_of]. *) - let jkinds = - List.map - (fun (ty, _) -> estimate_type_jkind ~expand_component env ty) - tys_modalities - in - let layouts = List.map Jkind.extract_layout jkinds in Jkind.Builtin.product - ~jkind_of_type:(estimate_type_jkind ~expand_component env) - ~jkind_of_first_type:(fun () -> - match jkinds with - | first_jkind :: _ -> first_jkind - | _ -> Misc.fatal_error - "Ctype.estimate_type_jkind: use of jkind_of_first_type \ - with more than 1 type") - ~why:Unboxed_tuple tys_modalities layouts - | Tconstr (p, args, _) -> begin try - let type_decl = Env.find_type p env in - let jkind = type_decl.type_jkind in - (* Checking [has_with_bounds] here is needed for correctness, because - intersection types sometimes do not unify with themselves. Removing - this check causes typing-misc/pr7937.ml to fail. *) - if Jkind.has_with_bounds jkind - then - let level = get_level ty in - (* CR layouts v2.8: We could possibly skip this substitution if we're - called from [constrain_type_jkind]; the jkind returned without - substing is just weaker than the one we would get by substing. *) - jkind_subst env level type_decl.type_params args jkind - else - jkind - with - (* CR layouts v2.8: It will be confusing when a [Cannot_subst] leads to - a [Missing_cmi]. *) - | Cannot_subst | Not_found -> Jkind.Builtin.any ~why:(Missing_cmi p) + (List.map (fun (_, ty) -> + estimate_type_jkind ~expand_component env (expand_component ty)) ltys) + ~why:Unboxed_tuple + | Tconstr (p, _, _) -> begin + try + (Env.find_type p env).type_jkind + with + Not_found -> Jkind.Builtin.any ~why:(Missing_cmi p) end | Tobject _ -> Jkind.for_object | Tfield _ -> Jkind.Builtin.value ~why:Tfield @@ -2279,26 +2219,83 @@ let rec estimate_type_jkind ~expand_component env ty = then Jkind.Builtin.value ~why:Polymorphic_variant else Jkind.Builtin.immediate ~why:Immediate_polymorphic_variant | Tunivar { jkind } -> Jkind.disallow_right jkind - | Tpoly (ty, _) -> - let jkind_of_type = !type_jkind_purely_if_principal' env in - estimate_type_jkind ~expand_component env ty |> - (* The jkind of [ty] might mention the variables bound in this [Tpoly] - node, and so just returning it here would be wrong. Instead, we need - to eliminate these variables. For now, we just [round_up] to eliminate - _all_ with-bounds. We can imagine doing better, just rounding up those - variables bound in this [Tpoly]. *) - (* CR layouts v2.8: Consider doing better -- but only once we can write - down a test case that cares. *) - Jkind.round_up ~jkind_of_type |> - Jkind.disallow_right + | Tpoly (ty, _) -> estimate_type_jkind ~expand_component env ty | Tpackage _ -> Jkind.Builtin.value ~why:First_class_module +(* CR layouts v7.2: Remove this function once we have have kind-polymorphic type + declarations, and replace its uses with + [estimate_type_jkind ~expand_component:(get_unboxed_type_approximation env)]. + + [type_jkind_deep] calulates a jkind from a type expression, deeply + unfolding unboxed types. + + This deep unfolding is necessary (for now) for declarations like the + following: + + type 'a t = #{ i : 'a ; j : 'a } + type int_t : immediate & immediate = int t + + Otherwise, [int_t] will be given kind [value & value]. + + This function duplicates functionality from [find_unboxed_type] and + [constrain_type_jkind]. We're not to factoring out the shared logic because + this function will no longer be necessary once we have kind-polymorphic type + declarations. + + Returns (ran_out_of_fuel, best_effort_jkind). +*) +let rec type_jkind_deep env ty_prev ty fuel = + let fuel = fuel - 1 in + if fuel < 0 then + let _, jkind = type_unboxed_jkind_deep env ty fuel in + true, jkind + else + let ty = expand_head_opt env ty in + match unbox_once env ty with + | Stepped ty' -> type_jkind_deep env ty ty' fuel + | Stepped_record_unboxed_product component_tys -> + let out_of_fuel, component_jkinds = + types_jkinds_deep env component_tys fuel in + out_of_fuel, Jkind.Builtin.product ~why:Unboxed_record component_jkinds + | Final_result -> type_unboxed_jkind_deep env ty fuel + | Missing _ -> type_unboxed_jkind_deep env ty_prev fuel +and types_jkinds_deep env tys fuel = + List.fold_left_map (fun any_out_of_fuel ty -> + let out_of_fuel, jkind = type_jkind_deep env ty ty fuel in + (any_out_of_fuel || out_of_fuel), jkind + ) false tys +and type_unboxed_jkind_deep env ty fuel = + (* We've scraped off [@@unboxed] and unboxed records as much as we can. *) + match get_desc ty with + | Tvar { jkind } -> false, Jkind.disallow_right jkind + | Tarrow _ -> false, Jkind.for_arrow + | Ttuple _ -> false, Jkind.Builtin.value ~why:Tuple + | Tunboxed_tuple ltys -> + let out_of_fuel, component_jkinds = + types_jkinds_deep env (List.map snd ltys) fuel in + out_of_fuel, Jkind.Builtin.product ~why:Unboxed_tuple component_jkinds + | Tconstr (p, _, _) -> begin + try + false, (Env.find_type p env).type_jkind + with + Not_found -> false, Jkind.Builtin.any ~why:(Missing_cmi p) + end + | Tobject _ -> false, Jkind.for_object + | Tfield _ -> false, Jkind.Builtin.value ~why:Tfield + | Tnil -> false, Jkind.Builtin.value ~why:Tnil + | Tlink _ | Tsubst _ -> assert false + | Tvariant row -> + if tvariant_not_immediate row + then false, Jkind.Builtin.value ~why:Polymorphic_variant + else false, Jkind.Builtin.immediate ~why:Immediate_polymorphic_variant + | Tunivar { jkind } -> false, Jkind.disallow_right jkind + | Tpoly (ty, _) -> type_unboxed_jkind_deep env ty fuel + | Tpackage _ -> false, Jkind.Builtin.value ~why:First_class_module + let type_jkind env ty = - estimate_type_jkind ~expand_component:(get_unboxed_type_approximation env) env - (get_unboxed_type_approximation env ty) + let _, jkind = type_jkind_deep env ty ty 100 in + jkind -(* CR layouts v2.8: This function is quite suspect. See Jane Street internal - gdoc titled "Let's kill type_jkind_purely". *) let type_jkind_purely env ty = if !Clflags.principal || Env.has_local_constraints env then (* We snapshot to keep this pure; see the test in [typing-local/crossing.ml] @@ -2310,14 +2307,6 @@ let type_jkind_purely env ty = else type_jkind env ty -(* CR layouts v2.8: It's possible we can remove this function if we change - [jkind_subst] to not substitute non-principal things. Investigate. *) -let type_jkind_purely_if_principal env ty = - match is_principal ty with - | true -> Some (type_jkind_purely env ty) - | false -> None -let () = type_jkind_purely_if_principal' := type_jkind_purely_if_principal - let estimate_type_jkind = estimate_type_jkind ~expand_component:Fun.id (**** checking jkind relationships ****) @@ -2326,8 +2315,6 @@ let estimate_type_jkind = estimate_type_jkind ~expand_component:Fun.id then we will update the jkind of type variables to make the check true, if possible. If true, we won't (but will still instantiate sort variables). *) let constrain_type_jkind ~fixed env ty jkind = - let type_equal = !type_equal' env in - let jkind_of_type = type_jkind_purely_if_principal env in (* The [expanded] argument says whether we've already tried [expand_head_opt]. The "fuel" argument is used because we're duplicating the loop of @@ -2349,9 +2336,7 @@ let constrain_type_jkind ~fixed env ty jkind = (* Just succeed if we're comparing against [any] *) if Jkind.is_max jkind then Ok () else if fuel < 0 then - Error ( - Jkind.Violation.of_ ( - Not_a_subjkind (ty's_jkind, jkind, [Constrain_ran_out_of_fuel]))) + Error (Jkind.Violation.of_ (Not_a_subjkind (ty's_jkind, jkind))) else match get_desc ty with (* The [ty's_jkind] we get here is an **r** jkind, necessary for @@ -2378,7 +2363,7 @@ let constrain_type_jkind ~fixed env ty jkind = it first. *) let jkind_inter = - Jkind.intersection_or_error ~type_equal ~jkind_of_type + Jkind.intersection_or_error ~reason:Tyvar_refinement_intersection ty's_jkind jkind in Result.map (set_var_jkind ty) jkind_inter @@ -2388,11 +2373,9 @@ let constrain_type_jkind ~fixed env ty jkind = | Tpoly (t, _) -> loop ~fuel ~expanded:false t ty's_jkind jkind | _ -> - match - Jkind.sub_or_intersect ~type_equal ~jkind_of_type ty's_jkind jkind - with + match Jkind.sub_or_intersect ty's_jkind jkind with | Sub -> Ok () - | Disjoint sub_failure_reasons -> + | Disjoint -> (* Reporting that [ty's_jkind] must be a subjkind of [jkind] is not always right. Suppose we had [type ('a : word) t = 'a] and we were checking ['a t] against [value]. Then it would be enough for [word] @@ -2401,10 +2384,8 @@ let constrain_type_jkind ~fixed env ty jkind = arbitrary amounts of expansion and looking through [@@unboxed] types. So we don't, settling for the slightly worse error message. *) - Error (Jkind.Violation.of_ - (Not_a_subjkind (ty's_jkind, jkind, Nonempty_list.to_list sub_failure_reasons))) - | Has_intersection sub_failure_reasons -> - let sub_failure_reasons = Nonempty_list.to_list sub_failure_reasons in + Error (Jkind.Violation.of_ (Not_a_subjkind (ty's_jkind, jkind))) + | Has_intersection -> let product ~fuel tys = let num_components = List.length tys in let recur ty's_jkinds jkinds = @@ -2414,8 +2395,7 @@ let constrain_type_jkind ~fixed env ty jkind = in if List.for_all Result.is_ok results then Ok () - else Error (Jkind.Violation.of_ - (Not_a_subjkind (ty's_jkind, jkind, sub_failure_reasons))) + else Error (Jkind.Violation.of_ (Not_a_subjkind (ty's_jkind, jkind))) in begin match Jkind.decompose_product ty's_jkind, Jkind.decompose_product jkind with @@ -2433,8 +2413,7 @@ let constrain_type_jkind ~fixed env ty jkind = (* Products don't line up. This is only possible if [ty] was given a jkind annotation of the wrong product arity. *) - Error (Jkind.Violation.of_ - (Not_a_subjkind (ty's_jkind, jkind, sub_failure_reasons))) + Error (Jkind.Violation.of_ (Not_a_subjkind (ty's_jkind, jkind))) end in match get_desc ty with @@ -2446,10 +2425,10 @@ let constrain_type_jkind ~fixed env ty jkind = else begin match unbox_once env ty with | Missing path -> Error (Jkind.Violation.of_ ~missing_cmi:path - (Not_a_subjkind (ty's_jkind, jkind, sub_failure_reasons))) + (Not_a_subjkind (ty's_jkind, jkind))) | Final_result -> Error - (Jkind.Violation.of_ (Not_a_subjkind (ty's_jkind, jkind, sub_failure_reasons))) + (Jkind.Violation.of_ (Not_a_subjkind (ty's_jkind, jkind))) | Stepped ty -> loop ~fuel:(fuel - 1) ~expanded:false ty (estimate_type_jkind env ty) jkind @@ -2463,8 +2442,7 @@ let constrain_type_jkind ~fixed env ty jkind = need to expand many types shallowly, and that's fine. *) product ~fuel (List.map snd ltys) | _ -> - Error (Jkind.Violation.of_ - (Not_a_subjkind (ty's_jkind, jkind, sub_failure_reasons))) + Error (Jkind.Violation.of_ (Not_a_subjkind (ty's_jkind, jkind))) in loop ~fuel:100 ~expanded:false ty (estimate_type_jkind env ty) jkind @@ -2491,6 +2469,26 @@ let check_type_externality env ty ext = | Ok () -> true | Error _ -> false +let check_decl_jkind env decl jkind = + (* CR layouts v2.8: This will need to be deeply reimplemented. *) + let jkind = Jkind.terrible_relax_l jkind in + match Jkind.sub_or_error decl.type_jkind jkind with + | Ok () as ok -> ok + | Error _ as err -> + match decl.type_manifest with + | None -> err + | Some ty -> check_type_jkind env ty jkind + +let constrain_decl_jkind env decl jkind = + (* CR layouts v2.8: This will need to be deeply reimplemented. *) + let jkind = Jkind.terrible_relax_l jkind in + match Jkind.sub_or_error decl.type_jkind jkind with + | Ok () as ok -> ok + | Error _ as err -> + match decl.type_manifest with + | None -> err + | Some ty -> constrain_type_jkind env ty jkind + let check_type_jkind_exn env texn ty jkind = match check_type_jkind env ty jkind with | Ok _ -> () @@ -2523,41 +2521,25 @@ let rec intersect_type_jkind ~reason env ty1 jkind2 = | _ -> (* [intersect_type_jkind] is called rarely, so we don't bother with trying to avoid this call as in [constrain_type_jkind] *) - let type_equal = !type_equal' env in - let jkind1 = type_jkind env ty1 in - let jkind_of_type = type_jkind_purely_if_principal env in - let jkind1 = Jkind.round_up ~jkind_of_type jkind1 in - let jkind2 = Jkind.round_up ~jkind_of_type jkind2 in - (* This is strange, in that we're rounding up and then computing an - intersection. So we might find an intersection where there isn't really - one. See the comment above this function arguing why this is OK here. *) - (* CR layouts v2.8: Think about doing better, but it's probably not worth - it. *) - Jkind.intersection_or_error ~type_equal ~jkind_of_type ~reason jkind1 jkind2 + let ty1 = get_unboxed_type_approximation env ty1 in + Jkind.intersect_l_l ~reason (estimate_type_jkind env ty1) jkind2 (* See comment on [jkind_unification_mode] *) -let unification_jkind_check uenv ty jkind = - (* If we assume the original type is well-kinded, then we don't need to check - jkinds in substitution. And checking here can actually cause a loop with - with-kinds, in test case typing-misc/constraints.ml, because substitution - is used in [estimate_type_jkind], used in [constrain_type_jkind]. *) - if not (in_subst_mode uenv) then - match !lmode with - | Perform_checks -> constrain_type_jkind_exn (get_env uenv) Unify ty jkind - | Delay_checks r -> r := (ty,jkind) :: !r - -let check_and_update_generalized_ty_jkind ?name ~loc env ty = +let unification_jkind_check env ty jkind = + match !lmode with + | Perform_checks -> constrain_type_jkind_exn env Unify ty jkind + | Delay_checks r -> r := (ty,jkind) :: !r + +let check_and_update_generalized_ty_jkind ?name ~loc ty = let immediacy_check jkind = let is_immediate jkind = (* Just check externality and layout, because that's what actually matters for upstream code. We check both for a known value and something that might turn out later to be value. This is the conservative choice. *) - let jkind_of_type = type_jkind_purely_if_principal env in - let ext = Jkind.get_externality_upper_bound ~jkind_of_type jkind in - Jkind_axis.Externality.le ext External64 && - match Jkind.get_layout jkind with - | Some (Base Value) | None -> true - | _ -> false + Jkind.(Externality.le (get_externality_upper_bound jkind) External64 && + match get_layout jkind with + | Some (Base Value) | None -> true + | _ -> false) in if Language_extension.erasable_extensions_only () && is_immediate jkind && not (Jkind.History.has_warned jkind) @@ -3164,11 +3146,9 @@ let equivalent_with_nolabels l1 l2 = | (Nolabel | Labelled _), (Nolabel | Labelled _) -> true | _ -> false) -(* the [tk] means we're comparing a type against a jkind; axes do - not matter, so a jkind extracted from a type_declaration does - not need to be substed *) +(* the [tk] means we're comparing a type against a jkind *) let has_jkind_intersection_tk env ty jkind = - Jkind.has_intersection (type_jkind env ty) jkind + Jkind.has_intersection_l_l (type_jkind env ty) jkind (* [mcomp] tests if two types are "compatible" -- i.e., if they could ever unify. (This is distinct from [eqtype], which checks if two types *are* @@ -3322,17 +3302,18 @@ and mcomp_unsafe_mode_crossing umc1 umc2 = | None, None -> () | Some _, None -> raise Incompatible | None, Some _ -> raise Incompatible - | Some umc1, Some umc2 -> - if equal_unsafe_mode_crossing umc1 umc2 - then () - else raise Incompatible + | Some ({ modal_upper_bounds = mub1 }), + Some ({ modal_upper_bounds = mub2 }) -> + if (Mode.Alloc.Const.le mub1 mub2 && Mode.Alloc.Const.le mub2 mub1) + then () + else raise Incompatible and mcomp_type_decl type_pairs env p1 p2 tl1 tl2 = try let decl = Env.find_type p1 env in let decl' = Env.find_type p2 env in let check_jkinds () = - if not (Jkind.has_intersection decl.type_jkind decl'.type_jkind) + if not (Jkind.has_intersection_l_l decl.type_jkind decl'.type_jkind) then raise Incompatible in if compatible_paths p1 p2 then begin @@ -3471,13 +3452,11 @@ let add_jkind_equation ~reason uenv destination jkind1 = begin try let decl = Env.find_type p env in - (* CR layouts v2.8: We might be able to do better here. *) - match Jkind.try_allow_r jkind, Jkind.try_allow_r decl.type_jkind with - | Some jkind, Some decl_jkind when - not (Jkind.equal jkind decl_jkind) -> - let refined_decl = { decl with type_jkind = Jkind.disallow_right jkind } in - set_env uenv (Env.add_local_constraint p refined_decl env) - | _ -> () + if not (Jkind.equal (Jkind.terrible_relax_l jkind) + (Jkind.terrible_relax_l decl.type_jkind)) + then + let refined_decl = { decl with type_jkind = jkind } in + set_env uenv (Env.add_local_constraint p refined_decl env); with Not_found -> () end @@ -3505,11 +3484,6 @@ let add_gadt_equation uenv source destination = When we check the jkind later, we may not be able to see the local equation because of its scope. *) let jkind = jkind_of_abstract_type_declaration env source in - let jkind = match Jkind.try_allow_r jkind with - | None -> Misc.fatal_errorf "Abstract kind with [with]: %a" - Jkind.format jkind - | Some jkind -> jkind - in add_jkind_equation ~reason:(Gadt_equation source) uenv destination jkind; (* Adding a jkind equation may change the uenv. *) @@ -3518,7 +3492,7 @@ let add_gadt_equation uenv source destination = new_local_type ~manifest_and_scope:(destination, expansion_scope) type_origin - jkind + (Jkind.terrible_relax_l jkind) in set_env uenv (Env.add_local_constraint source decl env); cleanup_abbrev () @@ -3623,7 +3597,7 @@ let unify1_var uenv t1 t2 = let env = get_env uenv in match occur_univar_for Unify env t2; - unification_jkind_check uenv t2 (Jkind.disallow_left jkind) + unification_jkind_check env t2 (Jkind.disallow_left jkind) with | () -> begin @@ -3651,7 +3625,7 @@ let unify3_var uenv jkind1 t1' t2 t2' = let snap = snapshot () in match occur_univar_for Unify (get_env uenv) t2; - unification_jkind_check uenv t2' (Jkind.disallow_left jkind1) + unification_jkind_check (get_env uenv) t2' (Jkind.disallow_left jkind1) with | () -> link_type t1' t2 | exception Unify_trace _ when in_pattern_mode uenv -> @@ -4277,7 +4251,7 @@ let unify uenv ty1 ty2 = raise (Unify (expand_to_unification_error (get_env uenv) trace)) let unify_gadt (penv : Pattern_env.t) ty1 ty2 = - Misc.protect_refs [R (univar_pairs, [])] begin fun () -> + univar_pairs := []; let equated_types = TypePairs.create 0 in let equations_generation = Allowed { equated_types } in let uenv = Pattern @@ -4288,9 +4262,8 @@ let unify_gadt (penv : Pattern_env.t) ty1 ty2 = in unify uenv ty1 ty2; equated_types - end -let unify_var uenv t1 t2 = +let unify_var ~from_subst uenv t1 t2 = if eq_type t1 t2 then () else match get_desc t1, get_desc t2 with Tvar _, Tconstr _ when deep_occur t1 t2 -> @@ -4302,7 +4275,9 @@ let unify_var uenv t1 t2 = occur_for Unify uenv t1 t2; update_level_for Unify env (get_level t1) t2; update_scope_for Unify (get_scope t1) t2; - unification_jkind_check uenv t2 (Jkind.disallow_left jkind); + if not from_subst then begin + unification_jkind_check env t2 (Jkind.disallow_left jkind) + end; link_type t1 t2; reset_trace_gadt_instances reset_tracing; with Unify_trace trace -> @@ -4314,17 +4289,18 @@ let unify_var uenv t1 t2 = | _ -> unify uenv t1 t2 -let _ = unify_var' := unify_var +(* CR layouts: comment here explaining why it's safe to skip jkind checks in + this case when called from subst. *) +let _ = unify_var' := unify_var ~from_subst:true +let unify_var = unify_var ~from_subst:false (* the final versions of unification functions *) let unify_var env ty1 ty2 = unify_var (Expression {env; in_subst = false}) ty1 ty2 let unify_pairs env ty1 ty2 pairs = - Misc.protect_refs [R (univar_pairs, pairs)] begin fun () -> univar_pairs := pairs; unify (Expression {env; in_subst = false}) ty1 ty2 - end let unify env ty1 ty2 = unify_pairs env ty1 ty2 [] @@ -4898,39 +4874,21 @@ let relevant_pairs pairs v = (* This is very similar to Typecore.mode_cross_left_value. Any bugs here are likely bugs there, too. *) let mode_cross_left_alloc env ty mode = - if not (is_principal ty) then Alloc.disallow_right mode else begin + let mode = + if not (is_principal ty) then mode else let jkind = type_jkind_purely env ty in - let jkind_of_type = type_jkind_purely_if_principal env in - let upper_bounds = Jkind.get_modal_upper_bounds ~jkind_of_type jkind in - let upper_bounds = - Alloc.Const.merge - { comonadic = upper_bounds; monadic = Alloc.Monadic.Const.max } - in - let lower_bounds = Jkind.get_modal_lower_bounds ~jkind_of_type jkind in - let lower_bounds = - Alloc.Const.merge - { comonadic = Alloc.Comonadic.Const.min; monadic = lower_bounds } - in - Alloc.subtract lower_bounds (Alloc.meet_const upper_bounds mode) - end + let upper_bounds = Jkind.get_modal_upper_bounds jkind in + Alloc.meet_const upper_bounds mode + in + mode |> Alloc.disallow_right (* This is very similar to Typecore.expect_mode_cross. Any bugs here are likely bugs there, too. *) let mode_cross_right env ty mode = if not (is_principal ty) then Alloc.disallow_left mode else let jkind = type_jkind_purely env ty in - let jkind_of_type = type_jkind_purely_if_principal env in - let upper_bounds = Jkind.get_modal_upper_bounds ~jkind_of_type jkind in - let upper_bounds = - Alloc.Const.merge - { comonadic = upper_bounds; monadic = Alloc.Monadic.Const.max } - in - let lower_bounds = Jkind.get_modal_lower_bounds ~jkind_of_type jkind in - let lower_bounds = - Alloc.Const.merge - { comonadic = Alloc.Comonadic.Const.min; monadic = lower_bounds } - in - Alloc.imply upper_bounds (Alloc.join_const lower_bounds mode) + let upper_bounds = Jkind.get_modal_upper_bounds jkind in + Alloc.imply upper_bounds mode let submode_with_cross env ~is_ret ty l r = let r' = mode_cross_right env ty r in @@ -5253,10 +5211,9 @@ let moregeneral env inst_nongen pat_sch subj_sch = Misc.try_finally (fun () -> try - Misc.protect_refs [R (univar_pairs, [])] begin fun () -> + univar_pairs := []; let type_pairs = fresh_moregen_pairs () in moregen inst_nongen Covariant type_pairs env patt subj - end with Moregen_trace trace -> (* Moregen splits the generic level into two finer levels: [generic_level] and [generic_level - 1]. In order to properly @@ -5657,13 +5614,12 @@ and eqtype_alloc_mode m1 m2 = (* Must empty univar_pairs first *) let eqtype_list_same_length rename type_pairs subst env tl1 tl2 ~do_jkind_check = - Misc.protect_refs [R (univar_pairs, [])] begin fun () -> + univar_pairs := []; let snap = Btype.snapshot () in Misc.try_finally ~always:(fun () -> backtrack snap) (fun () -> eqtype_list_same_length rename type_pairs subst env tl1 tl2 ~do_jkind_check) - end let eqtype rename type_pairs subst env t1 t2 = eqtype_list ~do_jkind_check:true rename type_pairs subst env [t1] [t2] @@ -6517,7 +6473,7 @@ and subtype_row env trace row1 row2 cstrs = let subtype env ty1 ty2 = TypePairs.clear subtypes; - Misc.protect_refs [R (univar_pairs, [])] begin fun () -> + univar_pairs := []; (* Build constraint set. *) let cstrs = subtype_rec env [Subtype.Diff {got = ty1; expected = ty2}] ty1 ty2 [] @@ -6530,7 +6486,6 @@ let subtype env ty1 ty2 = try unify_pairs env t1 t2 pairs with Unify {trace} -> subtype_error ~env ~trace:trace0 ~unification_trace:(List.tl trace)) (List.rev cstrs) - end (*******************) (* Miscellaneous *) @@ -6772,7 +6727,6 @@ let rec nondep_type_rec ?(expand_private=false) env ids ty = in match get_desc ty with Tvar _ | Tunivar _ -> ty - (* CR layouts v2.8: This needs to traverse the jkind. *) | _ -> try TypeHash.find nondep_hash ty with Not_found -> let ty' = newgenstub ~scope:(get_scope ty) @@ -6876,13 +6830,6 @@ let nondep_type_decl env mid is_covariant decl = Private with Nondep_cannot_erase _ -> None, decl.type_private - and jkind = - try Jkind.map_type_expr (nondep_type_rec env mid) decl.type_jkind - (* CR layouts v2.8: This should be done with a proper nondep_jkind. *) - with Nondep_cannot_erase _ when is_covariant -> - let jkind_of_type = type_jkind_purely_if_principal env in - Jkind.round_up ~jkind_of_type decl.type_jkind |> - Jkind.disallow_right in clear_hash (); let priv = @@ -6893,7 +6840,7 @@ let nondep_type_decl env mid is_covariant decl = { type_params = params; type_arity = decl.type_arity; type_kind = tk; - type_jkind = jkind; + type_jkind = decl.type_jkind; type_manifest = tm; type_private = priv; type_variance = decl.type_variance; @@ -7061,54 +7008,3 @@ let print_global_state fmt global_state = print_field fmt "global_level" global_level; in Format.fprintf fmt "@[<1>{@;%a}@]" print_fields global_state - - (*******************************) - (* checking declaration jkinds *) - (* this is down here so it can use [is_equal] *) - -(* CR layouts v2.8: Passing this function everywhere is annoying. Instead, - it would be good just to use mutation to make this accessible in jkind.ml. - The problem is that Env depends on Jkind, and so the type of [type_equal] - can't be written in Jkind. It's possible that, after jkind.ml is broken up, - this problem goes away, because the dependency from Env to Jkind is pretty - minimal. *) -let type_equal env ty1 ty2 = is_equal env false [ty1] [ty2] -let () = type_equal' := type_equal - -let check_decl_jkind env decl jkind = - (* CR layouts v2.8: This could use an algorithm like [constrain_type_jkind] - to expand only as much as needed, but the l/l subtype algorithm is tricky, - and so we leave this optimization for later. *) - let type_equal = type_equal env in - let jkind_of_type ty = Some (type_jkind_purely env ty) in - match Jkind.sub_jkind_l ~type_equal ~jkind_of_type decl.type_jkind jkind with - | Ok () -> Ok () - | Error _ as err -> - match decl.type_manifest with - | None -> err - | Some ty -> - (* CR layouts v2.8: Should this use [type_jkind_purely_if_principal]? I - think not. *) - let ty_jkind = type_jkind env ty in - match Jkind.sub_jkind_l ~type_equal ~jkind_of_type ty_jkind jkind with - | Ok () -> Ok () - | Error _ as err -> err - -let constrain_decl_jkind env decl jkind = - (* CR layouts v2.8: This will need to be deeply reimplemented. *) - match Jkind.try_allow_r jkind with - (* This case is sad, because it can't refine type variables. Hence - the need for reimplementation. Hopefully no one hits this for - a while. *) - | None -> check_decl_jkind env decl jkind - | Some jkind -> - let type_equal = type_equal env in - let jkind_of_type ty = Some (type_jkind_purely env ty) in - match - Jkind.sub_or_error ~type_equal ~jkind_of_type decl.type_jkind jkind - with - | Ok () as ok -> ok - | Error _ as err -> - match decl.type_manifest with - | None -> err - | Some ty -> constrain_type_jkind env ty jkind diff --git a/src/ocaml/typing/ctype.mli b/src/ocaml/typing/ctype.mli index c36855809..e644b7b33 100644 --- a/src/ocaml/typing/ctype.mli +++ b/src/ocaml/typing/ctype.mli @@ -607,11 +607,6 @@ val type_jkind : Env.t -> type_expr -> jkind_l expansion. *) val type_jkind_purely : Env.t -> type_expr -> jkind_l -(* Like [type_jkind_purely], but returns [None] if the type is not - principally known. Useful to instantiate [jkind_of_type] in various - functions exported by [Jkind]. *) -val type_jkind_purely_if_principal : Env.t -> type_expr -> jkind_l option - (* Find a type's sort (if fixed is false: constraining it to be an arbitrary sort variable, if needed) *) val type_sort : @@ -638,10 +633,6 @@ val check_decl_jkind : val constrain_decl_jkind : Env.t -> type_declaration -> jkind_l -> (unit, Jkind.Violation.t) result -(* Compare two types for equality, with no renaming. This is useful for - the [type_equal] function that must be passed to certain jkind functions. *) -val type_equal: Env.t -> type_expr -> type_expr -> bool - val check_type_jkind : Env.t -> type_expr -> ('l * allowed) jkind -> (unit, Jkind.Violation.t) result val constrain_type_jkind : @@ -650,8 +641,7 @@ val constrain_type_jkind : (* Check whether a type's externality's upper bound is less than some target. Potentially cheaper than just calling [type_jkind], because this can stop expansion once it succeeds. *) -val check_type_externality : - Env.t -> type_expr -> Jkind_axis.Externality.t -> bool +val check_type_externality : Env.t -> type_expr -> Jkind.Externality.t -> bool (* This function should get called after a type is generalized. @@ -697,7 +687,7 @@ val check_type_externality : *) val check_and_update_generalized_ty_jkind : - ?name:Ident.t -> loc:Location.t -> Env.t -> type_expr -> unit + ?name:Ident.t -> loc:Location.t -> type_expr -> unit (* False if running in principal mode and the type is not principal. True otherwise. *) diff --git a/src/ocaml/typing/datarepr.ml b/src/ocaml/typing/datarepr.ml index 8171c41e1..8060cc23d 100644 --- a/src/ocaml/typing/datarepr.ml +++ b/src/ocaml/typing/datarepr.ml @@ -70,7 +70,10 @@ let constructor_args ~current_unit priv cd_args cd_res path rep = in let type_params = TypeSet.elements arg_vars_set in let arity = List.length type_params in - let jkind = Jkind.for_boxed_record lbls in + let is_void_label lbl = Jkind.Sort.Const.(equal void lbl.ld_sort) in + let jkind = + Jkind.for_boxed_record ~all_void:(List.for_all is_void_label lbls) + in let tdecl = { type_params; diff --git a/src/ocaml/typing/includecore.ml b/src/ocaml/typing/includecore.ml index fc93df7bf..9f6bcaaa1 100644 --- a/src/ocaml/typing/includecore.ml +++ b/src/ocaml/typing/includecore.ml @@ -54,42 +54,20 @@ type mmodes = (** Mode cross a right mode *) (* This is very similar to Ctype.mode_cross_right. Any bugs here are likely bugs there, too. *) -let right_mode_cross_jkind env jkind mode = - let jkind_of_type = Ctype.type_jkind_purely_if_principal env in - let upper_bounds = Jkind.get_modal_upper_bounds ~jkind_of_type jkind in - let upper_bounds = - Alloc.Const.merge - { comonadic = upper_bounds; monadic = Alloc.Monadic.Const.max } - in +let right_mode_cross_jkind jkind mode = + let upper_bounds = Jkind.get_modal_upper_bounds jkind in let upper_bounds = Const.alloc_as_value upper_bounds in - let lower_bounds = Jkind.get_modal_lower_bounds ~jkind_of_type jkind in - let lower_bounds = - Alloc.Const.merge - { comonadic = Alloc.Comonadic.Const.min; monadic = lower_bounds } - in - let lower_bounds = Const.alloc_as_value lower_bounds in - Value.imply upper_bounds (Value.join_const lower_bounds mode) + Value.imply upper_bounds mode -let right_mode_cross env ty mode = +let right_mode_cross env ty mode= if not (Ctype.is_principal ty) then mode else let jkind = Ctype.type_jkind_purely env ty in - right_mode_cross_jkind env jkind mode - -let left_mode_cross_jkind env jkind mode = - let jkind_of_type = Ctype.type_jkind_purely_if_principal env in - let upper_bounds = Jkind.get_modal_upper_bounds ~jkind_of_type jkind in - let upper_bounds = - Alloc.Const.merge - { comonadic = upper_bounds; monadic = Alloc.Monadic.Const.max } - in + right_mode_cross_jkind jkind mode + +let left_mode_cross_jkind _env jkind mode = + let upper_bounds = Jkind.get_modal_upper_bounds jkind in let upper_bounds = Const.alloc_as_value upper_bounds in - let lower_bounds = Jkind.get_modal_lower_bounds ~jkind_of_type jkind in - let lower_bounds = - Alloc.Const.merge - { comonadic = Alloc.Comonadic.Const.min; monadic = lower_bounds } - in - let lower_bounds = Const.alloc_as_value lower_bounds in - Value.subtract lower_bounds (Value.meet_const upper_bounds mode) + Value.meet_const upper_bounds mode let left_mode_cross env ty mode= if not (Ctype.is_principal ty) then mode else @@ -708,10 +686,11 @@ let compare_unsafe_mode_crossing umc1 umc2 = | None, None -> None | Some _, None -> Some (Unsafe_mode_crossing (Mode_crossing_only_on First)) | None, Some _ -> Some (Unsafe_mode_crossing (Mode_crossing_only_on Second)) - | Some umc1, Some umc2 -> - if equal_unsafe_mode_crossing umc1 umc2 - then None - else Some (Unsafe_mode_crossing Mode_crossing_not_equal) + | Some ({ modal_upper_bounds = mub1 }), + Some ({ modal_upper_bounds = mub2 }) -> + if (Mode.Alloc.Const.le mub1 mub2 && Mode.Alloc.Const.le mub2 mub1) + then None + else Some (Unsafe_mode_crossing Mode_crossing_not_equal) module Record_diffing = struct @@ -1419,22 +1398,15 @@ let type_declarations ?(equality = false) ~loc env ~mark name rep1 rep2 in let err = match (decl1.type_kind, decl2.type_kind) with - (_, Type_abstract _) -> - (* No need to check jkinds if decl2 has a manifest; we've already - checked for type equality, above. Oddly, this is not just an - optimization; unconditionally checking jkinds causes a failure - around recursive modules (test case: shapes/recmodules.ml). - Richard spent several hours trying to understand what was going - on there (after the substitution in [Typemod.check_recmodule_inclusion], - there was a type_declaration whose [type_jkind] didn't match its - [type_manifest]), but just skipping this check when there is a - manifest fixes the problem. *) - if Option.is_none decl2.type_manifest then - (* Note that [decl2.type_jkind] is an upper bound *) - match Ctype.check_decl_jkind env decl1 decl2.type_jkind with - | Ok _ -> None - | Error v -> Some (Jkind v) - else None + (_, Type_abstract _) -> begin + (* Note that [decl2.type_jkind] is an upper bound. If it isn't tight, [decl2] must + have a manifest, which we're already checking for equality above. Similarly, + [decl1]'s kind may conservatively approximate its jkind, but [check_decl_jkind] + will expand its manifest. *) + match Ctype.check_decl_jkind env decl1 decl2.type_jkind with + | Ok _ -> None + | Error v -> Some (Jkind v) + end | (Type_variant (cstrs1, rep1, umc1), Type_variant (cstrs2, rep2, umc2)) -> begin if mark then begin let mark usage cstrs = @@ -1485,8 +1457,7 @@ let type_declarations ?(equality = false) ~loc env ~mark name Some (Parameter_jkind (ty, Jkind.Violation.of_ (Not_a_subjkind (Jkind.disallow_right original_jkind, - Jkind.disallow_left inferred_jkind, - [])))) + Jkind.disallow_left inferred_jkind)))) | All_good -> let abstr = Btype.type_kind_is_abstract decl2 && decl2.type_manifest = None in let need_variance = diff --git a/src/ocaml/typing/includemod.ml b/src/ocaml/typing/includemod.ml index 5cabf9693..28ed8b906 100644 --- a/src/ocaml/typing/includemod.ml +++ b/src/ocaml/typing/includemod.ml @@ -541,22 +541,7 @@ and try_modtypes ~in_eq ~loc env ~mark subst ~modes mty1 mty2 orig_shape = in match mty1, mty2 with | _ when shallow_modtypes env subst mty1 mty2 -> - begin match modes with - | Legacy (Some (locks, _, _)) when not (Env.locks_is_empty locks) -> - (* If the coercion being checked is closed over, we close over individual values - in the module, instead of the whole module. *) - let mty1 = Mtype.reduce_alias_lazy env mty1 in - let mty2 = Subst.Lazy.modtype Keep subst mty2 |> Mtype.reduce_alias_lazy env in - begin match mty1, mty2 with - | Some mty1, Some mty2 -> - (* Only for the side-effects of walking locks *) - ignore (try_modtypes ~in_eq ~loc env ~mark subst ~modes mty1 mty2 orig_shape) - | _, _ -> - walk_locks ~env ~item:Module modes - end - | _ -> - walk_locks ~env ~item:Module modes - end; + walk_locks ~env ~item:Module modes; Ok (Tcoerce_none, orig_shape) | (Mty_alias p1, _) when not (is_alias mty2) -> begin diff --git a/src/ocaml/typing/jkind.ml b/src/ocaml/typing/jkind.ml index 7b8e7348d..777c30b31 100644 --- a/src/ocaml/typing/jkind.ml +++ b/src/ocaml/typing/jkind.ml @@ -14,9 +14,23 @@ open Mode open Jkind_types -open Jkind_axis -open Types +<<<<<<< janestreet/merlin-jst:5.2.0minus-6 +||||||| ocaml-flambda/flambda-backend:6a83bbad9dd6c86ea5019a84258b04c81aa34a38 +[@@@warning "+9"] + +module Nonempty_list = Misc.Nonempty_list + +(* A *sort* is the information the middle/back ends need to be able to + compile a manipulation (storing, passing, etc) of a runtime value. *) +module Sort = struct +======= +[@@@warning "+9"] + +(* A *sort* is the information the middle/back ends need to be able to + compile a manipulation (storing, passing, etc) of a runtime value. *) +module Sort = struct +>>>>>>> ocaml-flambda/flambda-backend:db3778f932fc0a2f9d71ba5f9dcf7c76fcc74a63 (* Merlin-specific: change some module paths to match the compiler *) module Misc = struct include Misc @@ -42,39 +56,7 @@ end type sort = Sort.t -module Sub_failure_reason = struct - type t = - | Axis_disagreement of Axis.packed - | Layout_disagreement - | Constrain_ran_out_of_fuel -end - -module Sub_result = struct - type t = - | Equal - | Less - | Not_le of Sub_failure_reason.t Nonempty_list.t - - let of_le_result ~failure_reason (le_result : Misc.Le_result.t) = - match le_result with - | Less -> Less - | Equal -> Equal - | Not_le -> Not_le (failure_reason ()) - - let combine sr1 sr2 = - match sr1, sr2 with - | Equal, Equal -> Equal - | Equal, Less | Less, Equal | Less, Less -> Less - | Not_le reasons1, Not_le reasons2 -> - Not_le Nonempty_list.(reasons1 @ reasons2) - | Not_le reasons, _ | _, Not_le reasons -> Not_le reasons - - let require_le = function - | Less | Equal -> Ok () - | Not_le reason -> Error reason - - let is_le t = require_le t |> Result.is_ok -end +type type_expr = Types.type_expr (* A *layout* of a type describes the way values of that type are stored at runtime, including details like width, register convention, calling @@ -203,11 +185,6 @@ module Layout = struct | Base b -> Sort (Sort.of_base b) | Product cs -> Product (List.map of_const cs) - let product = function - | [] -> Misc.fatal_error "Layout.product: empty product" - | [lay] -> lay - | lays -> Product lays - let rec to_sort = function | Any -> None | Sort s -> Some s @@ -271,36 +248,32 @@ module Layout = struct | Any, Any -> true | (Any | Sort _ | Product _), _ -> false - let sub t1 t2 = - let rec sub t1 t2 : Misc.Le_result.t = - match t1, t2 with - | Any, Any -> Equal - | _, Any -> Less - | Any, _ -> Not_le - | Sort s1, Sort s2 -> if Sort.equate s1 s2 then Equal else Not_le - | Product ts1, Product ts2 -> - if List.compare_lengths ts1 ts2 = 0 - then Misc.Le_result.combine_list (List.map2 sub ts1 ts2) - else Not_le - | Product ts1, Sort s2 -> ( - (* This case could use [to_product_sort] because every component will need - to end up less than a sort (so, no [any]), but it seems easier to keep - this case lined up with the inverse case, which definitely cannot use - [to_product_sort]. *) - match Sort.decompose_into_product s2 (List.length ts1) with - | None -> Not_le - | Some ss2 -> - Misc.Le_result.combine_list - (List.map2 (fun t1 s2 -> sub t1 (Sort s2)) ts1 ss2)) - | Sort s1, Product ts2 -> ( - match Sort.decompose_into_product s1 (List.length ts2) with - | None -> Not_le - | Some ss1 -> - Misc.Le_result.combine_list - (List.map2 (fun s1 t2 -> sub (Sort s1) t2) ss1 ts2)) - in - Sub_result.of_le_result (sub t1 t2) ~failure_reason:(fun () -> - [Layout_disagreement]) + let rec sub t1 t2 : Misc.Le_result.t = + match t1, t2 with + | Any, Any -> Equal + | _, Any -> Less + | Any, _ -> Not_le + | Sort s1, Sort s2 -> if Sort.equate s1 s2 then Equal else Not_le + | Product ts1, Product ts2 -> + if List.compare_lengths ts1 ts2 = 0 + then Misc.Le_result.combine_list (List.map2 sub ts1 ts2) + else Not_le + | Product ts1, Sort s2 -> ( + (* This case could use [to_product_sort] because every component will need + to end up less than a sort (so, no [any]), but it seems easier to keep + this case lined up with the inverse case, which definitely cannot use + [to_product_sort]. *) + match Sort.decompose_into_product s2 (List.length ts1) with + | None -> Not_le + | Some ss2 -> + Misc.Le_result.combine_list + (List.map2 (fun t1 s2 -> sub t1 (Sort s2)) ts1 ss2)) + | Sort s1, Product ts2 -> ( + match Sort.decompose_into_product s1 (List.length ts2) with + | None -> Not_le + | Some ss1 -> + Misc.Le_result.combine_list + (List.map2 (fun s1 t2 -> sub (Sort s1) t2) ss1 ts2)) let rec intersection t1 t2 = (* pre-condition to [products]: [ts1] and [ts2] have the same length *) @@ -342,8 +315,9 @@ module Layout = struct pp_element ~nested:false ppf layout end -module Externality = Externality -module Nullability = Nullability +module Externality = Jkind_axis.Externality +module Nullability = Jkind_axis.Nullability +module Modes = Jkind_axis.Of_lattice (Alloc.Const) module History = struct include Jkind_intf.History @@ -363,6 +337,34 @@ module History = struct let has_warned t = t.has_warned end +(*********************************) +(* Main type declarations *) + +type +'d const = (type_expr, 'd) Jkind_types.Const.t + +type 'd t = (type_expr, 'd) Jkind_types.t + +type jkind_l = (allowed * disallowed) t + +type packed = Pack : 'd t -> packed [@@unboxed] + +include Allowance.Magic_allow_disallow (struct + type (_, _, 'd) sided = 'd t + + let disallow_right ({ jkind = { layout = _; _ }; _ } as t) = t + + let disallow_left ({ jkind = { layout = _; _ }; _ } as t) = t + + let allow_right ({ jkind = { layout = _; _ }; _ } as t) = t + + let allow_left ({ jkind = { layout = _; _ }; _ } as t) = t +end) + +let terrible_relax_l ({ jkind = { layout = _; _ }; _ } as t) = t + +let fresh_jkind jkind ~annotation ~why = + { jkind; annotation; history = Creation why; has_warned = false } + (******************************) (*** user errors ***) @@ -379,499 +381,56 @@ module Error = struct from_attribute : Builtin_attributes.jkind_attribute Location.loc } | Unimplemented_syntax - | With_on_right exception User_error of Location.t * t end let raise ~loc err = raise (Error.User_error (loc, err)) -(******************************) - -module Mod_bounds = struct - include Types.Jkind_mod_bounds - - let debug_print ppf - { locality; - linearity; - uniqueness; - portability; - contention; - yielding; - externality; - nullability - } = - Format.fprintf ppf - "@[{ locality = %a;@ linearity = %a;@ uniqueness = %a;@ portability = \ - %a;@ contention = %a;@ yielding = %a;@ externality = %a;@ nullability = \ - %a }@]" - Mode.Locality.Const.print locality Mode.Linearity.Const.print linearity - Mode.Uniqueness.Const.print uniqueness Mode.Portability.Const.print - portability Mode.Contention.Const.print contention - Mode.Yielding.Const.print yielding Externality.print externality - Nullability.print nullability - - let min = - Create.f - { f = - (fun (type axis) ~(axis : axis Axis.t) -> - let (module Bound_ops) = Axis.get axis in - Bound_ops.min) - } - - let max = - Create.f - { f = - (fun (type axis) ~(axis : axis Axis.t) -> - let (module Bound_ops) = Axis.get axis in - Bound_ops.max) - } - - let simple ~locality ~linearity ~uniqueness ~portability ~contention ~yielding - ~externality ~nullability = - { locality; - linearity; - uniqueness; - portability; - contention; - yielding; - externality; - nullability - } - - let join = - Map2.f - { f = - (fun (type axis) ~(axis : axis Axis.t) -> - let (module Bound_ops) = Axis.get axis in - Bound_ops.join) - } - - let meet = - Map2.f - { f = - (fun (type axis) ~(axis : axis Axis.t) -> - let (module Bound_ops) = Axis.get axis in - Bound_ops.meet) - } - - let less_or_equal = - Fold2.f - { f = - (fun (type axis) ~(axis : axis Axis.t) b1 b2 -> - let (module Bound_ops) = Axis.get axis in - Sub_result.of_le_result (Bound_ops.less_or_equal b1 b2) - ~failure_reason:(fun () -> [Axis_disagreement (Pack axis)])) - } - ~combine:Sub_result.combine - - let equal = - Fold2.f - { f = - (fun (type axis) ~(axis : axis Axis.t) -> - let (module Bound_ops) = Axis.get axis in - Bound_ops.equal) - } - ~combine:( && ) - - (** Get all axes that are set to max *) - let get_max_axes t = - Axis_set.create ~f:(fun ~axis:(Pack axis) -> - let (module Axis_ops) = Axis.get axis in - let bound = get ~axis t in - Axis_ops.le Axis_ops.max bound) - - let for_arrow = - simple ~linearity:Linearity.Const.max ~locality:Locality.Const.max - ~uniqueness:Uniqueness.Const_op.min ~portability:Portability.Const.max - ~contention:Contention.Const_op.min ~yielding:Yielding.Const.max - ~externality:Externality.max ~nullability:Nullability.Non_null -end - -module With_bounds = struct - type 'd t = 'd Types.with_bounds constraint 'd = 'l * 'r - - module Type_info = struct - include With_bounds_type_info - - let print ppf { relevant_axes } = - let open Format in - fprintf ppf "@[{ relevant_axes = %a }]" Axis_set.print relevant_axes - - let join { relevant_axes = axes1 } { relevant_axes = axes2 } = - { relevant_axes = Axis_set.union axes1 axes2 } - - let axes_ignored_by_modalities ~mod_bounds - ~type_info:{ relevant_axes = explicit_relevant_axes } = - (* Axes that are max are implicitly relevant. ie, including or excluding an - axis from the set of relevant axes is semantically equivalent if the mod- - bound on that axis is max. - - Note that this mostly matters because we mark axes as /not/ explicitly relevant - on types when the axis is max, for performance reasons - but we don't want to - print constant modalities for those axes! - *) - let implicit_relevant_axes = Mod_bounds.get_max_axes mod_bounds in - let relevant_axes = - Axis_set.union explicit_relevant_axes implicit_relevant_axes - in - let irrelevant_axes = Axis_set.complement relevant_axes in - (* nullability is always implicitly irrelevant since it isn't deep *) - Axis_set.remove irrelevant_axes (Nonmodal Nullability) - end - - let to_best_eff_map = function - | No_with_bounds -> With_bounds_types.empty - | With_bounds bounds -> bounds - - let to_list : type d. d with_bounds -> _ = function - | No_with_bounds -> [] - | With_bounds tys -> tys |> With_bounds_types.to_seq |> List.of_seq - - open Allowance - - include Magic_allow_disallow (struct - type (_, _, 'd) sided = 'd t constraint 'd = 'l * 'r - - let disallow_left : type l r. (l * r) t -> (disallowed * r) t = function - | No_with_bounds -> No_with_bounds - | With_bounds _ as b -> b - - let disallow_right : type l r. (l * r) t -> (l * disallowed) t = function - | No_with_bounds -> No_with_bounds - | With_bounds _ as b -> b - - let allow_left : type l r. (allowed * r) t -> (l * r) t = function - | No_with_bounds -> No_with_bounds - | With_bounds _ as b -> b - - let allow_right : type l r. (l * allowed) t -> (l * r) t = function - | No_with_bounds -> No_with_bounds - end) - - let try_allow_l : type l r. (l * r) t -> (allowed * r) t option = function - | No_with_bounds -> Some No_with_bounds - | With_bounds _ as b -> Some b - - let try_allow_r : type l r. (l * r) t -> (l * allowed) t option = function - | No_with_bounds -> Some No_with_bounds - | With_bounds _ -> None - - let map_type_expr (type l r) f : (l * r) t -> (l * r) t = function - | No_with_bounds -> No_with_bounds - | With_bounds tys -> - With_bounds - (tys |> With_bounds_types.to_seq - |> Seq.map (fun (ty, ti) -> f ty, ti) - |> With_bounds_types.of_seq) - - let debug_print (type l r) ~print_type_expr ppf : (l * r) t -> _ = - let open Format in - function - | No_with_bounds -> fprintf ppf "No_with_bounds" - | With_bounds tys -> - fprintf ppf "With_bounds @[[%a]@]" - (pp_print_seq - ~pp_sep:(fun ppf () -> fprintf ppf ";@ ") - (fun ppf (ty, ti) -> - fprintf ppf "@[(%a, %a)]" print_type_expr ty Type_info.print ti)) - (With_bounds_types.to_seq tys) - - let join_bounds = - With_bounds_types.merge (fun _ ti1 ti2 -> - match ti1, ti2 with - | None, None -> None - | Some ti, None -> Some ti - | None, Some ti -> Some ti - | Some ti1, Some ti2 -> Some (Type_info.join ti1 ti2)) - - (* You might think that we can only do joins on the left. But that's not true! - We can join constants. The important thing is that the allowances of both - arguments are the same and that they match the result: this will mean that - if we have any with_bounds in either argument, the result is an l-With_bounds, as - required. This might change once we have arrow kinds, but we'll deal with - that when we get there. *) - let join (type l r) (bag1 : (l * r) t) (bag2 : (l * r) t) : (l * r) t = - match bag1, bag2 with - | No_with_bounds, No_with_bounds -> No_with_bounds - | No_with_bounds, b -> b - | b, No_with_bounds -> b - | With_bounds tys1, With_bounds tys2 -> With_bounds (join_bounds tys1 tys2) - - let meet (type l1 l2) (bag1 : (l1 * allowed) t) (bag2 : (l2 * allowed) t) : - (l1 * allowed) t = - match bag1, bag2 with No_with_bounds, No_with_bounds -> No_with_bounds - - let add_bound type_expr type_info tys = - With_bounds_types.update type_expr - (function - | None -> Some type_info | Some ti -> Some (Type_info.join ti type_info)) - tys - - let add type_expr type_info bounds = - match bounds with - | No_with_bounds -> - With_bounds (With_bounds_types.singleton type_expr type_info) - | With_bounds bounds -> With_bounds (add_bound type_expr type_info bounds) - - let add_modality ~relevant_for_nullability ~modality ~type_expr - (t : (allowed * 'r) t) : (allowed * 'r) t = - let relevant_axes = - Jkind_axis.Axis_set.create ~f:(fun ~axis:(Pack axis) -> - match axis with - | Modal axis -> ( - let (P axis) = Mode.Const.Axis.alloc_as_value (P axis) in - let modality = Mode.Modality.Value.Const.proj axis modality in - let is_constant = Mode.Modality.is_constant modality in - let is_id = Mode.Modality.is_id modality in - match is_constant, is_id with - | true, _ -> false - | _, true -> true - | false, false -> - Misc.fatal_errorf - "Don't yet know how to interpret non-constant, non-identity \ - modalities, but got %a along axis %a.\n\n\ - If you see this error, please contant the Jane Street \ - compiler team." - Mode.Modality.print modality Value.print_axis axis) - | Nonmodal Externality -> true - | Nonmodal Nullability -> ( - match relevant_for_nullability with - | `Relevant -> true - | `Irrelevant -> false)) - in - match t with - | No_with_bounds -> - With_bounds - (With_bounds_types.singleton type_expr - ({ relevant_axes } : With_bounds_type_info.t)) - | With_bounds tys -> With_bounds (add_bound type_expr { relevant_axes } tys) -end - -module Layout_and_axes = struct - module Allow_disallow = Allowance.Magic_allow_disallow (struct - type (_, 'layout, 'd) sided = ('layout, 'd) layout_and_axes - - let disallow_left t = - { t with with_bounds = With_bounds.disallow_left t.with_bounds } - - let disallow_right t = - { t with with_bounds = With_bounds.disallow_right t.with_bounds } - - let allow_left t = - { t with with_bounds = With_bounds.allow_left t.with_bounds } - - let allow_right t = - { t with with_bounds = With_bounds.allow_right t.with_bounds } - end) - - include Allow_disallow - - let map f t = { t with layout = f t.layout } - - let map_option f t = - match f t.layout with None -> None | Some layout -> Some { t with layout } - - let map_type_expr f t = - { t with with_bounds = With_bounds.map_type_expr f t.with_bounds } - - let equal eq_layout - { layout = lay1; - mod_bounds = mod_bounds1; - with_bounds = (No_with_bounds : (allowed * allowed) with_bounds) - } - { layout = lay2; - mod_bounds = mod_bounds2; - with_bounds = (No_with_bounds : (allowed * allowed) with_bounds) - } = - eq_layout lay1 lay2 && Mod_bounds.equal mod_bounds1 mod_bounds2 - - let try_allow_l : - type l r. - ('layout, l * r) layout_and_axes -> - ('layout, Allowance.allowed * r) layout_and_axes option = - fun { layout; mod_bounds; with_bounds } -> - match With_bounds.try_allow_l with_bounds with - | None -> None - | Some with_bounds -> - Some { layout; mod_bounds = Obj.magic mod_bounds; with_bounds } - - let try_allow_r { layout; mod_bounds; with_bounds } = - match With_bounds.try_allow_r with_bounds with - | Some with_bounds -> - Some { layout; mod_bounds = Obj.magic mod_bounds; with_bounds } - | None -> None - - let debug_print ~print_type_expr format_layout ppf - { layout; mod_bounds; with_bounds } = - Format.fprintf ppf "{ layout = %a;@ mod_bounds = %a;@ with_bounds = %a }" - format_layout layout Mod_bounds.debug_print mod_bounds - (With_bounds.debug_print ~print_type_expr) - with_bounds -end +module Const = struct + open Jkind_types.Layout_and_axes -(*********************************) + type +'d t = 'd const -module Quality = struct include Allowance.Magic_allow_disallow (struct - type (_, _, 'd) sided = 'd jkind_quality constraint 'd = 'l * 'r - - let disallow_left : - type l r. (l * r) jkind_quality -> (disallowed * r) jkind_quality = - function - | Not_best -> Not_best - | Best -> Best - - let disallow_right : - type l r. (l * r) jkind_quality -> (l * disallowed) jkind_quality = - function - | Not_best -> Not_best - | Best -> Best - - let allow_left : - type l r. (allowed * r) jkind_quality -> (l * r) jkind_quality = - function - | Not_best -> Not_best - | Best -> Best - - let allow_right : - type l r. (l * allowed) jkind_quality -> (l * r) jkind_quality = - function - | Not_best -> Not_best - end) - - let try_allow_r : - type l r. (l * r) jkind_quality -> (l * allowed) jkind_quality option = - function - | Not_best -> Some Not_best - | Best -> None -end - -include Allowance.Magic_allow_disallow (struct - type (_, _, 'd) sided = 'd jkind - - let disallow_right t = - { t with - jkind = Layout_and_axes.disallow_right t.jkind; - quality = Quality.disallow_right t.quality - } - - let disallow_left t = - { t with - jkind = Layout_and_axes.disallow_left t.jkind; - quality = Quality.disallow_left t.quality - } - - let allow_right t = - { t with - jkind = Layout_and_axes.allow_right t.jkind; - quality = Quality.allow_right t.quality - } - - let allow_left t = - { t with - jkind = Layout_and_axes.allow_left t.jkind; - quality = Quality.allow_left t.quality - } -end) - -let try_allow_r t = - let open Misc.Stdlib.Monad.Option.Syntax in - let* jkind = Layout_and_axes.try_allow_r t.jkind in - let* quality = Quality.try_allow_r t.quality in - Some { t with jkind; quality } - -let fresh_jkind jkind ~annotation ~why = - { jkind; - annotation; - history = Creation why; - has_warned = false; - quality = Not_best - } - |> allow_left |> allow_right - -(* This version propagates the allowances from the [jkind] to the output. *) -let fresh_jkind_poly jkind ~annotation ~why = - { jkind; - annotation; - history = Creation why; - has_warned = false; - quality = Not_best - } - -(***********************) -(*** constant jkinds ***) - -module Context_with_transl = struct - type 'd t = - | Right_jkind : - ('l * allowed) History.annotation_context - -> ('l * allowed) t - | Left_jkind : - (Parsetree.core_type -> Types.type_expr) - * (allowed * disallowed) History.annotation_context - -> (allowed * disallowed) t - - let get_context : type l r. (l * r) t -> (l * r) History.annotation_context = - function - | Right_jkind ctx -> ctx - | Left_jkind (_, ctx) -> ctx -end - -let outcometree_of_type_scheme = ref (fun _ -> assert false) - -let set_outcometree_of_type_scheme p = outcometree_of_type_scheme := p - -let outcometree_of_modalities_new = ref (fun _ _ _ -> assert false) + type (_, _, 'd) sided = 'd t -let set_outcometree_of_modalities_new p = outcometree_of_modalities_new := p + let disallow_left ({ layout = _; _ } as t) = t -let should_print_with_bounds () = Language_extension.(is_at_least Layouts Alpha) + let disallow_right ({ layout = _; _ } as t) = t -module Const = struct - type 'd t = (Layout.Const.t, 'd) Types.layout_and_axes + let allow_left ({ layout = _; _ } as t) = t - include Allowance.Magic_allow_disallow (struct - include Layout_and_axes.Allow_disallow - - type (_, _, 'd) sided = 'd t + let allow_right ({ layout = _; _ } as t) = t end) let max = - Types. - { layout = Layout.Const.max; - mod_bounds = Mod_bounds.max; - with_bounds = No_with_bounds - } + { layout = Layout.Const.max; + modes_upper_bounds = Modes.max; + externality_upper_bound = Externality.max; + nullability_upper_bound = Nullability.max + } - let no_with_bounds_and_equal t1 t2 = - let open Misc.Stdlib.Monad.Option.Syntax in - let t1_t2 = - let* t1 = Layout_and_axes.try_allow_l t1 in - let* t1 = Layout_and_axes.try_allow_r t1 in - let* t2 = Layout_and_axes.try_allow_l t2 in - let* t2 = Layout_and_axes.try_allow_r t2 in - Some (t1, t2) - in - match t1_t2 with - | Some (t1, t2) -> - Layout.Const.equal t1.layout t2.layout - && Mod_bounds.equal t1.mod_bounds t2.mod_bounds - | None -> false + let equal_after_all_inference_is_done t1 t2 = + Layout_and_axes.equal_after_all_inference_is_done Layout.Const.equal t1 t2 module Builtin = struct - type nonrec t = - { jkind : (allowed * allowed) t; + type nonrec +'d t = + { jkind : 'd t; name : string } let mk_jkind ~mode_crossing ~nullability (layout : Layout.Const.t) = - let mod_bounds = + let modes_upper_bounds, externality_upper_bound = match mode_crossing with - | true -> { Mod_bounds.min with nullability } - | false -> { Mod_bounds.max with nullability } + | true -> Modes.min, Externality.min + | false -> Modes.max, Externality.max in - { layout; mod_bounds; with_bounds = No_with_bounds } + { layout; + modes_upper_bounds; + externality_upper_bound; + nullability_upper_bound = nullability + } let any = { jkind = mk_jkind Any ~mode_crossing:false ~nullability:Maybe_null; @@ -897,14 +456,16 @@ module Const = struct let immutable_data = { jkind = { layout = Base Value; - mod_bounds = - Mod_bounds.simple ~locality:Locality.Const.max - ~linearity:Linearity.Const.min - ~portability:Portability.Const.min ~yielding:Yielding.Const.min - ~uniqueness:Uniqueness.Const_op.max - ~contention:Contention.Const_op.min ~externality:Externality.max - ~nullability:Nullability.Non_null; - with_bounds = No_with_bounds + modes_upper_bounds = + { linearity = Linearity.Const.min; + contention = Contention.Const.min; + portability = Portability.Const.min; + uniqueness = Uniqueness.Const.max; + areality = Locality.Const.max; + yielding = Yielding.Const.min + }; + externality_upper_bound = Externality.max; + nullability_upper_bound = Nullability.Non_null }; name = "immutable_data" } @@ -912,14 +473,16 @@ module Const = struct let mutable_data = { jkind = { layout = Base Value; - mod_bounds = - Mod_bounds.simple ~locality:Locality.Const.max - ~linearity:Linearity.Const.min - ~portability:Portability.Const.min ~yielding:Yielding.Const.min - ~contention:Contention.Const_op.max - ~uniqueness:Uniqueness.Const_op.max ~externality:Externality.max - ~nullability:Nullability.Non_null; - with_bounds = No_with_bounds + modes_upper_bounds = + { linearity = Linearity.Const.min; + contention = Contention.Const.max; + portability = Portability.Const.min; + uniqueness = Uniqueness.Const.max; + areality = Locality.Const.max; + yielding = Yielding.Const.min + }; + externality_upper_bound = Externality.max; + nullability_upper_bound = Nullability.Non_null }; name = "mutable_data" } @@ -966,13 +529,7 @@ module Const = struct meeting the conditions. *) let immediate64 = - { jkind = - { immediate.jkind with - mod_bounds = - { immediate.jkind.mod_bounds with - externality = Externality.External64 - } - }; + { jkind = { immediate.jkind with externality_upper_bound = External64 }; name = "immediate64" } @@ -1031,48 +588,63 @@ module Const = struct bits64; vec128 ] - let of_attribute : Builtin_attributes.jkind_attribute -> t = function + let of_attribute : Builtin_attributes.jkind_attribute -> _ t = function | Immediate -> immediate | Immediate64 -> immediate64 end module To_out_jkind_const : sig (** Convert a [t] into a [Outcometree.out_jkind_const]. - The jkind is written in terms of the built-in jkind that requires the - least amount of modes after the mod. For example, [value mod global many - unique portable uncontended external_ non_null] could be written in - terms of [value] (as it appears above), or in terms of [immediate] - (which would just be [immediate]). Since the latter requires less modes - to be printed, it is chosen. *) + The jkind is written in terms of the built-in jkind that requires the least amount + of modes after the mod. For example, + [value mod global many unique portable uncontended external_ non_null] could be + written in terms of [value] (as it appears above), or in terms of [immediate] + (which would just be [immediate]). Since the latter requires less modes to be + printed, it is chosen. *) val convert : 'd t -> Outcometree.out_jkind_const end = struct type printable_jkind = { base : string; - modal_bounds : string list; - printable_with_bounds : - (Outcometree.out_type * Outcometree.out_modality_new list) list + modal_bounds : string list } - let get_modal_bound (type a) ~(axis : a Axis.t) ~(base : a) (actual : a) = - let (module A) = Axis.get axis in - (* CR layouts v2.8: Fix printing! *) - let less_or_equal a b = - let (module Axis_ops) = Axis.get axis in - Axis_ops.less_or_equal a b - in - match less_or_equal actual base with - | Less | Equal -> ( - match less_or_equal base actual with - | Less | Equal -> `Valid None - | Not_le -> `Valid (Some (Format.asprintf "%a" A.print actual))) - | Not_le -> `Invalid - - let get_modal_bounds ~(base : Mod_bounds.t) (actual : Mod_bounds.t) = - Axis.all - |> List.map (fun (Axis.Pack axis) -> - let base = Mod_bounds.get ~axis base in - let actual = Mod_bounds.get ~axis actual in - get_modal_bound ~axis ~base actual) + module Bounds = struct + type t = + { alloc_bounds : Alloc.Const.t; + externality_bound : Externality.t; + nullability_bound : Nullability.t + } + + let of_jkind jkind = + { alloc_bounds = jkind.modes_upper_bounds; + externality_bound = jkind.externality_upper_bound; + nullability_bound = jkind.nullability_upper_bound + } + end + + let get_modal_bound ~le ~print ~base actual = + match le actual base with + | true -> ( + match le base actual with + | true -> `Valid None + | false -> `Valid (Some (Format.asprintf "%a" print actual))) + | false -> `Invalid + + let get_modal_bounds ~(base : Bounds.t) (actual : Bounds.t) = + [ get_modal_bound ~le:Locality.Const.le ~print:Locality.Const.print + ~base:base.alloc_bounds.areality actual.alloc_bounds.areality; + get_modal_bound ~le:Uniqueness.Const.le ~print:Uniqueness.Const.print + ~base:base.alloc_bounds.uniqueness actual.alloc_bounds.uniqueness; + get_modal_bound ~le:Linearity.Const.le ~print:Linearity.Const.print + ~base:base.alloc_bounds.linearity actual.alloc_bounds.linearity; + get_modal_bound ~le:Contention.Const.le ~print:Contention.Const.print + ~base:base.alloc_bounds.contention actual.alloc_bounds.contention; + get_modal_bound ~le:Portability.Const.le ~print:Portability.Const.print + ~base:base.alloc_bounds.portability actual.alloc_bounds.portability; + get_modal_bound ~le:Externality.le ~print:Externality.print + ~base:base.externality_bound actual.externality_bound; + get_modal_bound ~le:Nullability.le ~print:Nullability.print + ~base:base.nullability_bound actual.nullability_bound ] |> List.rev |> List.fold_left (fun acc mode -> @@ -1082,54 +654,18 @@ module Const = struct | Some acc, `Valid (Some mode) -> Some (mode :: acc)) (Some []) - let modality_to_ignore_axes axes_to_ignore = - (* The modality is constant along axes to ignore and id along others *) - List.fold_left - (fun acc (Axis.Pack axis) -> - match axis with - | Modal axis -> - let then_ : Modality.t = - let (P axis) = Mode.Const.Axis.alloc_as_value (P axis) in - match axis with - | Monadic monadic -> - Atom - (axis, Join_with (Mode.Value.Monadic.Const.max_axis monadic)) - | Comonadic comonadic -> - Atom - ( axis, - Meet_with (Mode.Value.Comonadic.Const.min_axis comonadic) ) - in - Modality.Value.Const.compose acc ~then_ - | Nonmodal _ -> - (* TODO: don't know how to print *) - acc) - Modality.Value.Const.id - (Axis_set.to_list axes_to_ignore) - (** Write [actual] in terms of [base] *) - let convert_with_base ~(base : Builtin.t) (actual : _ t) = + let convert_with_base ~(base : _ Builtin.t) actual = let matching_layouts = Layout.Const.equal base.jkind.layout actual.layout in let modal_bounds = - get_modal_bounds ~base:base.jkind.mod_bounds actual.mod_bounds - in - let printable_with_bounds = - List.map - (fun (type_expr, type_info) -> - let axes_ignored_by_modalities = - With_bounds.Type_info.axes_ignored_by_modalities - ~mod_bounds:actual.mod_bounds ~type_info - in - ( !outcometree_of_type_scheme type_expr, - !outcometree_of_modalities_new - Types.Immutable [] - (modality_to_ignore_axes axes_ignored_by_modalities) )) - (With_bounds.to_list actual.with_bounds) + get_modal_bounds + ~base:(Bounds.of_jkind base.jkind) + (Bounds.of_jkind actual) in match matching_layouts, modal_bounds with - | true, Some modal_bounds -> - Some { base = base.name; modal_bounds; printable_with_bounds } + | true, Some modal_bounds -> Some { base = base.name; modal_bounds } | false, _ | _, None -> None (** Select the out_jkind_const with the least number of modal bounds to print *) @@ -1145,11 +681,6 @@ module Const = struct | [] -> None let convert jkind = - let jkind = - if should_print_with_bounds () - then jkind - else { jkind with with_bounds = No_with_bounds } - in (* For each primitive jkind, we try to print the jkind in terms of it (this is possible if the primitive is a subjkind of it). We then choose the "simplest". The "simplest" is taken to mean the one with the least number of modes that need to @@ -1172,11 +703,9 @@ module Const = struct ~base: { jkind = { layout = jkind.layout; - mod_bounds = - { Mod_bounds.max with - nullability = Nullability.Non_null - }; - with_bounds = No_with_bounds + modes_upper_bounds = Modes.max; + externality_upper_bound = Externality.max; + nullability_upper_bound = Nullability.Non_null }; name = Layout.Const.to_string jkind.layout } @@ -1191,8 +720,9 @@ module Const = struct ~base: { jkind = { layout = jkind.layout; - mod_bounds = Mod_bounds.max; - with_bounds = No_with_bounds + modes_upper_bounds = Modes.max; + externality_upper_bound = Externality.max; + nullability_upper_bound = Nullability.max }; name = Layout.Const.to_string jkind.layout } @@ -1202,48 +732,46 @@ module Const = struct modal bounds are all max *) Option.get out_jkind_verbose) in - let base, with_tys = - match printable_jkind with - | { base; modal_bounds = _ :: _ as modal_bounds; printable_with_bounds } - -> - ( Outcometree.Ojkind_const_mod - (Some (Ojkind_const_abbreviation base), modal_bounds), - printable_with_bounds ) - | { base; modal_bounds = []; printable_with_bounds } -> - Outcometree.Ojkind_const_abbreviation base, printable_with_bounds - in - (* Finally, add on the [with]-types and their modalities *) - List.fold_left - (fun jkind (ty, modalities) -> - Outcometree.Ojkind_const_with (jkind, ty, modalities)) - base with_tys + match printable_jkind with + | { base; modal_bounds = _ :: _ as modal_bounds } -> + Outcometree.Ojkind_const_mod + (Ojkind_const_abbreviation base, modal_bounds) + | { base; modal_bounds = [] } -> + Outcometree.Ojkind_const_abbreviation base end let to_out_jkind_const jkind = To_out_jkind_const.convert jkind let format ppf jkind = to_out_jkind_const jkind |> !Oprint.out_jkind_const ppf - (*******************************) - (* converting user annotations *) - - let jkind_of_product_annotations (type l r) (jkinds : (l * r) t list) = - let folder (type l r) (layouts_acc, mod_bounds_acc, with_bounds_acc) - ({ layout; mod_bounds; with_bounds } : (l * r) t) = - ( layout :: layouts_acc, - Mod_bounds.join mod_bounds mod_bounds_acc, - With_bounds.join with_bounds with_bounds_acc ) + let jkind_of_product_annotations jkinds = + let folder (layouts, mode_ub, ext_ub, null_ub) + { layout; + modes_upper_bounds; + externality_upper_bound; + nullability_upper_bound + } = + ( layout :: layouts, + Modes.join mode_ub modes_upper_bounds, + Externality.join ext_ub externality_upper_bound, + Nullability.join null_ub nullability_upper_bound ) in - let layouts, mod_bounds, with_bounds = - List.fold_left folder ([], Mod_bounds.min, No_with_bounds) jkinds + let layouts, mode_ub, ext_ub, null_ub = + List.fold_left folder + ([], Modes.min, Externality.min, Nullability.min) + jkinds in { layout = Layout.Const.Product (List.rev layouts); - mod_bounds; - with_bounds + modes_upper_bounds = mode_ub; + externality_upper_bound = ext_ub; + nullability_upper_bound = null_ub } let rec of_user_written_annotation_unchecked_level : type l r. - (l * r) Context_with_transl.t -> Parsetree.jkind_annotation -> (l * r) t = + (l * r) History.annotation_context -> + Parsetree.jkind_annotation -> + (l * r) t = fun context jkind -> match jkind.pjkind_desc with | Abbreviation name -> @@ -1262,52 +790,39 @@ module Const = struct | "bits32" -> Builtin.bits32.jkind | "bits64" -> Builtin.bits64.jkind | "vec128" -> Builtin.vec128.jkind - | "immutable_data" -> Builtin.immutable_data.jkind - | "mutable_data" -> Builtin.mutable_data.jkind | _ -> raise ~loc:jkind.pjkind_loc (Unknown_jkind jkind)) |> allow_left |> allow_right - | Mod (base, modifiers) -> - let base = of_user_written_annotation_unchecked_level context base in + | Mod (jkind, modifiers) -> + let base = of_user_written_annotation_unchecked_level context jkind in (* for each mode, lower the corresponding modal bound to be that mode *) let parsed_modifiers = Typemode.transl_modifier_annots modifiers in - let mod_bounds = - Mod_bounds.Create.f - { f = - (fun (type a) ~(axis : a Axis.t) -> - let (module A) = Axis.get axis in - let parsed_modifier = - Typemode.Transled_modifiers.get ~axis parsed_modifiers - in - let base_bound = Mod_bounds.get ~axis base.mod_bounds in - match parsed_modifier, base_bound with - | None, base_bound -> base_bound - | Some parsed_modifier, base_modifier -> - A.meet base_modifier parsed_modifier.txt) - } + let parsed_modes : Alloc.Const.Option.t = + { areality = parsed_modifiers.locality; + linearity = parsed_modifiers.linearity; + uniqueness = parsed_modifiers.uniqueness; + portability = parsed_modifiers.portability; + contention = parsed_modifiers.contention; + yielding = parsed_modifiers.yielding + } in - { layout = base.layout; mod_bounds; with_bounds = No_with_bounds } + { layout = base.layout; + modes_upper_bounds = + Alloc.Const.meet base.modes_upper_bounds + (Alloc.Const.Option.value ~default:Alloc.Const.max parsed_modes); + nullability_upper_bound = + Nullability.meet base.nullability_upper_bound + (Option.value ~default:Nullability.max parsed_modifiers.nullability); + externality_upper_bound = + Externality.meet base.externality_upper_bound + (Option.value ~default:Externality.max parsed_modifiers.externality) + } | Product ts -> let jkinds = List.map (of_user_written_annotation_unchecked_level context) ts in jkind_of_product_annotations jkinds - | With (base, type_, modalities) -> ( - let base = of_user_written_annotation_unchecked_level context base in - match context with - | Right_jkind _ -> raise ~loc:type_.ptyp_loc With_on_right - | Left_jkind (transl_type, _) -> - let type_ = transl_type type_ in - let modality = - Typemode.transl_modalities ~maturity:Stable Immutable [] modalities - in - { layout = base.layout; - mod_bounds = base.mod_bounds; - with_bounds = - With_bounds.add_modality ~modality - ~relevant_for_nullability:`Irrelevant ~type_expr:type_ - base.with_bounds - }) - | Default | Kind_of _ -> raise ~loc:jkind.pjkind_loc Unimplemented_syntax + | Default | With _ | Kind_of _ -> + raise ~loc:jkind.pjkind_loc Unimplemented_syntax (* The [annotation_context] parameter can be used to allow annotations / kinds in different contexts to be enabled with different extension settings. @@ -1315,10 +830,10 @@ module Const = struct parameter might effectively be unused. *) (* CR layouts: When everything is stable, remove this function. *) - let get_required_layouts_level (_context : 'd Context_with_transl.t) + let get_required_layouts_level (_context : 'd History.annotation_context) (jkind : 'd t) = let rec scan_layout (l : Layout.Const.t) : Language_extension.maturity = - match l, jkind.mod_bounds.nullability with + match l, jkind.nullability_upper_bound with | (Base (Float64 | Float32 | Word | Bits32 | Bits64 | Vec128) | Any), _ | Base Value, Non_null | Base Value, Maybe_null -> @@ -1342,7 +857,7 @@ module Const = struct end module Desc = struct - type 'd t = (Sort.Flat.t Layout.t, 'd) layout_and_axes + type 'd t = (Sort.Flat.t Layout.t, 'd) Layout_and_axes.t let get_const t = Layout_and_axes.map_option Layout.get_flat_const t @@ -1351,7 +866,8 @@ module Desc = struct algorithm. *) let format ppf t = let open Format in - let rec format_desc ~nested ppf (desc : _ t) = + let rec format_desc ~nested ppf + (desc : (Sort.Flat.t Layout.t, _) Layout_and_axes.t) = match desc.layout with | Sort (Var n) -> fprintf ppf "'s%d" (Sort.Var.get_print_number n) (* Analyze a product before calling [get_const]: the machinery in @@ -1369,283 +885,62 @@ module Desc = struct end module Jkind_desc = struct + open Jkind_types.Layout_and_axes + let of_const t = Layout_and_axes.map Layout.of_const t let add_nullability_crossing t = - { t with mod_bounds = { t.mod_bounds with nullability = Nullability.min } } - - let unsafely_set_mod_bounds t ~from = - { t with mod_bounds = from.mod_bounds; with_bounds = No_with_bounds } - - let add_with_bounds ~relevant_for_nullability ~type_expr ~modality t = - match Types.get_desc type_expr with - | Tarrow (_, _, _, _) -> - (* Optimization: all arrow types have the same (with-bound-free) jkind, so we can just - eagerly do a join on the mod-bounds here rather than having to add them to our with - bounds only to be normalized away later. *) - { t with mod_bounds = Mod_bounds.join t.mod_bounds Mod_bounds.for_arrow } - | _ -> - { t with - with_bounds = - With_bounds.add_modality ~relevant_for_nullability ~type_expr - ~modality t.with_bounds - } - - let max = of_const Const.max - - let equate_or_equal ~allow_mutation t1 t2 = - Layout_and_axes.equal (Layout.equate_or_equal ~allow_mutation) t1 t2 - - type 'd normalize_mode = - | Require_best : ('l * disallowed) normalize_mode - | Ignore_best : ('l * 'r) normalize_mode - - module Fuel_status = struct - type t = - | Ran_out_of_fuel - | Sufficient_fuel + { t with nullability_upper_bound = Nullability.min } - let both a b = - match a, b with - | Ran_out_of_fuel, _ | _, Ran_out_of_fuel -> Ran_out_of_fuel - | Sufficient_fuel, Sufficient_fuel -> Sufficient_fuel - end + let unsafely_set_upper_bounds t ~from = + { t with modes_upper_bounds = from.modes_upper_bounds } - (* Normalize the jkind. If mode is Require_best, only jkinds that are best will be used. - If mode is Ignore_best, then Not_best will be used. Since Ignore_best can use - Not_best, the result is guaranteed to have no with-bounds. - - At each step during normalization, before expanding a type, [map_type_info] is used - to map the type-info for the type being expanded. The type can be prevented from - being expanded by mapping the relevant axes to an empty set. [map_type_info] is used - by sub_jkind_l to remove irrelevant axes. *) - let map_normalize (type l1 r1 l2 r2) ~jkind_of_type - ~(mode : (l2 * r2) normalize_mode) - ~(map_type_info : - type_expr -> With_bounds_type_info.t -> With_bounds_type_info.t) - (t : (l1 * r1) jkind_desc) : (l2 * r2) jkind_desc * Fuel_status.t = - (* Sadly, it seems hard (impossible?) to be sure to expand all types - here without using a fuel parameter to stop infinite regress. Here - is a nasty case: - - {[ - type zero - type 'n succ - - type 'n loopy = Mk of 'n succ loopy list [@@unboxed] - ]} - - First off: this type *is* inhabited, because of the [list] intervening - type (which can be empty). It's also inhabited by various circular - structures. - - But what's the jkind of ['n loopy]? It must be the jkind of - ['n succ loopy list], which is [immutable_data with 'n succ loopy]. - In order to see if we shouldn't mode-cross, we have to expand the - ['n succ loopy] in the jkind, but expanding that just yields the need - to expand ['n succ succ loopy], and around we go. - - It seems hard to avoid this problem. And so we use fuel. Yet we want - both a small amount of fuel (a type like [type t = K of (t * t) list] - gets big very quickly) and a lot of fuel (we can imagine using a unit - of fuel for each level of a deeply nested record structure). The - compromise is to track fuel per type head, where a type head is either - the path to a type constructor (like [t] or [loopy]) or a tuple. - (We need to include tuples because of the possibility of recursive - types and the fact that tuples track their element types in their - jkind's with_bounds.) - - The initial fuel per type head is 10, as it seems hard to imagine that - we're going to make meaningful progress if we've seen the same type - head 10 times in one line of recursive descent. (This "one line of - recursive descent" bit is why we recur separately down one type before - iterating down the list.) - *) - (* CR reisenberg: document seen_args *) - let module Loop_control = struct - type t = - { tuple_fuel : int; - constr : (int * type_expr list) Path.Map.t; - fuel_status : Fuel_status.t - } - - type result = - | Stop of t (* give up, returning [max] *) - | Skip (* skip reducing this type, but otherwise continue *) - | Continue of t (* continue, with a new [t] *) - - let initial_fuel_per_ty = 2 + let max = of_const Const.max - let starting = - { tuple_fuel = initial_fuel_per_ty; - constr = Path.Map.empty; - fuel_status = Sufficient_fuel - } + let equate_or_equal ~allow_mutation + { layout = lay1; + modes_upper_bounds = modes1; + externality_upper_bound = ext1; + nullability_upper_bound = null1 + } + { layout = lay2; + modes_upper_bounds = modes2; + externality_upper_bound = ext2; + nullability_upper_bound = null2 + } = + Layout.equate_or_equal ~allow_mutation lay1 lay2 + && Modes.equal modes1 modes2 + && Externality.equal ext1 ext2 + && Nullability.equal null1 null2 - let rec check ({ tuple_fuel; constr; fuel_status = _ } as t) ty = - match Types.get_desc ty with - | Tpoly (ty, _) -> check t ty - | Ttuple _ -> - if tuple_fuel > 0 - then Continue { t with tuple_fuel = tuple_fuel - 1 } - else Stop { t with fuel_status = Ran_out_of_fuel } - | Tconstr (p, args, _) -> ( - match Path.Map.find_opt p constr with - | None -> - Continue - { t with - constr = Path.Map.add p (initial_fuel_per_ty, args) constr - } - | Some (fuel, seen_args) -> - if List.for_all2 - (fun ty1 ty2 -> - TransientTypeOps.equal (Transient_expr.repr ty1) - (Transient_expr.repr ty2)) - seen_args args - then Skip - else if fuel > 0 - then - Continue - { t with constr = Path.Map.add p (fuel - 1, args) constr } - else Stop { t with fuel_status = Ran_out_of_fuel }) - | Tvar _ | Tarrow _ | Tunboxed_tuple _ | Tobject _ | Tfield _ | Tnil - | Tvariant _ | Tunivar _ | Tpackage _ -> - (* these cases either cannot be infinitely recursive or their jkinds - do not have with_bounds *) - (* CR layouts v2.8: Some of these might get with-bounds someday. We - should double-check before we're done that they haven't. *) - Continue t - | Tlink _ | Tsubst _ -> Misc.fatal_error "Tlink or Tsubst in normalize" - end in - let rec loop (ctl : Loop_control.t) bounds_so_far : - (type_expr * With_bounds_type_info.t) list -> - Mod_bounds.t * (l2 * r2) with_bounds * Fuel_status.t = function - (* early cutoff *) - | _ - when Sub_result.is_le - (Mod_bounds.less_or_equal Mod_bounds.max bounds_so_far) -> - (* CR layouts v2.8: we can do better by early-terminating on a per-axis basis *) - bounds_so_far, No_with_bounds, Sufficient_fuel - | [] -> bounds_so_far, No_with_bounds, ctl.fuel_status - | (ty, ti) :: bs -> ( - (* Map the type's info before expanding the type *) - let ti = map_type_info ty ti in - (* We don't care about axes that are already max because they can't get any - better or worse. By ignoring them, we may be able to terminate early *) - let ti : With_bounds_type_info.t = - { relevant_axes = - Axis_set.diff ti.relevant_axes - (Mod_bounds.get_max_axes bounds_so_far) - } - in - match Axis_set.is_empty ti.relevant_axes with - | true -> - (* If [ty] is not relevant to any axes, then we can safely drop it and thereby - avoid doing the work of expanding it. *) - loop ctl bounds_so_far bs - | false -> ( - let join_bounds b1 b2 ~relevant_axes = - Mod_bounds.Map2.f - { f = - (fun (type a) ~(axis : a Axis.t) b1 b2 -> - if Axis_set.mem relevant_axes axis - then - let (module Bound_ops) = Axis.get axis in - Bound_ops.join b1 b2 - else b1) - } - b1 b2 - in - let found_jkind_for_ty new_ctl b_upper_bounds b_with_bounds quality : - Mod_bounds.t * (l2 * r2) with_bounds * Fuel_status.t = - match quality, mode with - | Best, _ | Not_best, Ignore_best -> - let bounds_so_far = - join_bounds bounds_so_far b_upper_bounds - ~relevant_axes:ti.relevant_axes - in - (* Descend into the with-bounds of each of our with-bounds types' - with-bounds *) - let bounds_so_far, nested_with_bounds, fuel_result1 = - loop new_ctl bounds_so_far (With_bounds.to_list b_with_bounds) - in - (* CR layouts v2.8: we use [new_ctl] here, not [ctl], to avoid big quadratic - stack growth for very widely recursive types. This is sad, since it - prevents us from mode crossing a record with 20 lists with different - payloads, but less sad than a stack overflow of the compiler during type - declaration checking. - - Ideally, this whole problem goes away once we rethink fuel. - *) - let bounds, bs', fuel_result2 = loop new_ctl bounds_so_far bs in - ( bounds, - With_bounds.join nested_with_bounds bs', - Fuel_status.both fuel_result1 fuel_result2 ) - | Not_best, Require_best -> - let bounds_so_far, bs', fuel_result = - loop new_ctl bounds_so_far bs - in - bounds_so_far, With_bounds.add ty ti bs', fuel_result - in - match Loop_control.check ctl ty with - | Stop ctl_after_stop -> - (* out of fuel, so assume [ty] has the worst possible bounds. *) - found_jkind_for_ty ctl_after_stop Mod_bounds.max No_with_bounds - Not_best - | Skip -> loop ctl bounds_so_far bs (* skip [b] *) - | Continue ctl_after_unpacking_b -> ( - match jkind_of_type ty with - | Some b_jkind -> - found_jkind_for_ty ctl_after_unpacking_b b_jkind.jkind.mod_bounds - b_jkind.jkind.with_bounds b_jkind.quality - | None -> - (* kind of b is not principally known, so we treat it as having the max - bound (only along the axes we care about for this type!) *) - found_jkind_for_ty ctl_after_unpacking_b Mod_bounds.max - No_with_bounds Not_best))) - in - let mod_bounds, with_bounds, fuel_status = - loop Loop_control.starting t.mod_bounds - (With_bounds.to_list t.with_bounds) - in - { t with mod_bounds; with_bounds }, fuel_status - - let normalize ~jkind_of_type ~mode t = - map_normalize ~jkind_of_type ~mode ~map_type_info:(fun _ ti -> ti) t - - let sub (type l r) ~type_equal:_ ~jkind_of_type - (sub : (allowed * r) jkind_desc) - ({ layout = lay2; mod_bounds = bounds2; with_bounds = No_with_bounds } : - (l * allowed) jkind_desc) = - let ( ({ layout = lay1; mod_bounds = bounds1; with_bounds = No_with_bounds } : - Allowance.right_only jkind_desc), - _ ) = - normalize ~mode:Ignore_best ~jkind_of_type sub - in - let layout = Layout.sub lay1 lay2 in - let bounds = Mod_bounds.less_or_equal bounds1 bounds2 in - Sub_result.combine layout bounds + let sub ?allow_any_crossing t1 t2 = + Layout_and_axes.sub ?allow_any_crossing Layout.sub t1 t2 let intersection - { layout = lay1; mod_bounds = mod_bounds1; with_bounds = with_bounds1 } - { layout = lay2; mod_bounds = mod_bounds2; with_bounds = with_bounds2 } = - match Layout.intersection lay1 lay2 with - | None -> None - | Some layout -> - Some - { layout; - mod_bounds = Mod_bounds.meet mod_bounds1 mod_bounds2; - with_bounds = With_bounds.meet with_bounds1 with_bounds2 - } - - let map_type_expr f t = Layout_and_axes.map_type_expr f t + { layout = lay1; + modes_upper_bounds = modes1; + externality_upper_bound = ext1; + nullability_upper_bound = null1 + } + { layout = lay2; + modes_upper_bounds = modes2; + externality_upper_bound = ext2; + nullability_upper_bound = null2 + } = + Option.bind (Layout.intersection lay1 lay2) (fun layout -> + Some + { layout; + modes_upper_bounds = Modes.meet modes1 modes2; + externality_upper_bound = Externality.meet ext1 ext2; + nullability_upper_bound = Nullability.meet null1 null2 + }) let of_new_sort_var nullability_upper_bound = let layout, sort = Layout.of_new_sort_var () in ( { layout; - mod_bounds = - { Mod_bounds.max with nullability = nullability_upper_bound }; - with_bounds = No_with_bounds + modes_upper_bounds = Modes.max; + externality_upper_bound = Externality.max; + nullability_upper_bound }, sort ) @@ -1656,55 +951,54 @@ module Jkind_desc = struct let value = of_const Const.Builtin.value.jkind - let immutable_data = of_const Const.Builtin.immutable_data.jkind - - let mutable_data = of_const Const.Builtin.mutable_data.jkind - let void = of_const Const.Builtin.void.jkind let immediate = of_const Const.Builtin.immediate.jkind end - let product ~jkind_of_first_type ~jkind_of_type tys_modalities layouts = - (* CR layouts v2.8: We can probably drop this special case once we - have proper subsumption. The general algorithm gets the right - jkind, but the subsumption check fails because it can't recognize - that the one it comes up with is right. *) - match layouts with - | [_] -> (jkind_of_first_type ()).jkind - | _ -> - if !Clflags.infer_with_bounds - then - let layout = Layout.product layouts in - let mod_bounds = Mod_bounds.min in - let with_bounds = - List.fold_right - (fun (type_expr, modality) bounds -> - With_bounds.add_modality ~relevant_for_nullability:`Relevant - ~type_expr ~modality bounds) - tys_modalities No_with_bounds - in - { layout; mod_bounds; with_bounds } - else - let folder (layouts, bounds) (ty, _) = - let { jkind = { layout; mod_bounds; with_bounds = _ }; - annotation = _; - history = _; - has_warned = _; - quality = _ - } = - jkind_of_type ty - in - layout :: layouts, Mod_bounds.join bounds mod_bounds - in - let layouts, mod_bounds = - List.fold_left folder ([], Mod_bounds.min) tys_modalities - in - let layouts = List.rev layouts in - { layout = Layout.Product layouts; - mod_bounds; - with_bounds = No_with_bounds - } + let product jkinds = + (* CR layouts v7.1: Here we throw away the history of the component + jkinds. This is not great. We should, as part of a broader pass on error + messages around product kinds, zip them up into some kind of product + history. *) + let folder (layouts, annotations, mode_ub, ext_ub, null_ub) + { jkind = + { layout; + modes_upper_bounds; + externality_upper_bound; + nullability_upper_bound + }; + annotation; + history = _; + has_warned = _ + } = + ( layout :: layouts, + annotation :: annotations, + Modes.join mode_ub modes_upper_bounds, + Externality.join ext_ub externality_upper_bound, + Nullability.join null_ub nullability_upper_bound ) + in + let layouts, annotations, mode_ub, ext_ub, null_ub = + List.fold_left folder + ([], [], Modes.min, Externality.min, Nullability.min) + jkinds + in + let layouts = List.rev layouts in + let annotations = List.rev annotations in + let annotations = Misc.Stdlib.Monad.Option.all annotations in + let annotation = + Option.map + (fun annotations -> + Parsetree. + { pjkind_loc = Location.none; pjkind_desc = Product annotations }) + annotations + in + ( { layout : _ Layout.t = Product layouts; + modes_upper_bounds = mode_ub; + externality_upper_bound = ext_ub; + nullability_upper_bound = null_ub + }, + annotation ) let get t = Layout_and_axes.map Layout.get t @@ -1712,7 +1006,7 @@ module Jkind_desc = struct module Debug_printers = struct let t ppf t = - Layout_and_axes.debug_print + Layout_and_axes.format (Layout.Debug_printers.t Sort.Debug_printers.t) ppf t end @@ -1725,27 +1019,19 @@ end let mk_annot name = Some Parsetree.{ pjkind_loc = Location.none; pjkind_desc = Abbreviation name } -let mark_best (type l r) (t : (l * r) Types.jkind) = - { (disallow_right t) with quality = Best } - -let is_best t = match t.quality with Best -> true | Not_best -> false - module Builtin = struct let any_dummy_jkind = { jkind = Jkind_desc.max; annotation = None; (* this should never get printed: it's a dummy *) history = Creation (Any_creation Dummy_jkind); - has_warned = false; - quality = Not_best + has_warned = false } (* CR layouts: Should we be doing more memoization here? *) let any ~(why : History.any_creation_reason) = match why with - | Dummy_jkind -> - any_dummy_jkind (* share this one common case *) |> allow_left - |> allow_right + | Dummy_jkind -> any_dummy_jkind (* share this one common case *) | _ -> fresh_jkind Jkind_desc.Builtin.any ~annotation:(mk_annot "any") ~why:(Any_creation why) @@ -1754,18 +1040,16 @@ module Builtin = struct { jkind = Jkind_desc.Builtin.value_or_null; annotation = mk_annot "value"; history = Creation (Value_or_null_creation V1_safety_check); - has_warned = false; - quality = Not_best + has_warned = false } let void ~why = fresh_jkind Jkind_desc.Builtin.void ~annotation:(mk_annot "void") ~why:(Void_creation why) - |> mark_best let value_or_null ~why = match (why : History.value_or_null_creation_reason) with - | V1_safety_check -> value_v1_safety_check |> allow_left |> allow_right + | V1_safety_check -> value_v1_safety_check | _ -> fresh_jkind Jkind_desc.Builtin.value_or_null ~annotation:(mk_annot "value_or_null") ~why:(Value_or_null_creation why) @@ -1774,71 +1058,27 @@ module Builtin = struct fresh_jkind Jkind_desc.Builtin.value ~annotation:(mk_annot "value") ~why:(Value_creation why) - let immutable_data ~(why : History.value_creation_reason) = - fresh_jkind Jkind_desc.Builtin.immutable_data - ~annotation:(mk_annot "immutable_data") - ~why:(Value_creation why) - - let mutable_data ~(why : History.value_creation_reason) = - fresh_jkind Jkind_desc.Builtin.mutable_data - ~annotation:(mk_annot "mutable_data") ~why:(Value_creation why) - let immediate ~why = fresh_jkind Jkind_desc.Builtin.immediate ~annotation:(mk_annot "immediate") ~why:(Immediate_creation why) - |> mark_best - let product ~jkind_of_first_type ~jkind_of_type ~why tys_modalities layouts = - let desc = - Jkind_desc.product ~jkind_of_first_type ~jkind_of_type tys_modalities - layouts - in - fresh_jkind_poly desc ~annotation:None ~why:(Product_creation why) - (* [mark_best] is correct here because the with-bounds of a product jkind include all - the components of the product. Accordingly, looking through the product, by one - step, never loses any information. *) - |> mark_best - - let product_of_sorts ~why arity = - let layout = - Layout.product - (List.init arity (fun _ -> fst (Layout.of_new_sort_var ()))) - in - let desc : _ jkind_desc = - { layout; mod_bounds = Mod_bounds.max; with_bounds = No_with_bounds } - in - fresh_jkind_poly desc ~annotation:None ~why:(Product_creation why) - (* We do not [mark_best] here because the resulting jkind is used (only) in the middle of - type-checking mutually recursive type declarations. See Note [Default jkind in - transl_declaration] for more commentary on why we don't want [Best] jkinds there. *) + let product ~why ts = + match ts with + | [] -> Misc.fatal_error "Jkind.Builtin.product: empty product" + | [t] -> t + | ts -> + let desc, annotation = Jkind_desc.product ts in + fresh_jkind desc ~annotation ~why:(Product_creation why) end let add_nullability_crossing t = { t with jkind = Jkind_desc.add_nullability_crossing t.jkind } -let unsafely_set_mod_bounds (type l r) ~(from : (l * r) jkind) t = - match from.jkind.with_bounds with - | With_bounds _ -> Error () - | No_with_bounds -> - Ok - { t with - jkind = Jkind_desc.unsafely_set_mod_bounds t.jkind ~from:from.jkind - } - -let add_with_bounds ~modality ~type_expr t = +let unsafely_set_upper_bounds ~from t = { t with - jkind = - Jkind_desc.add_with_bounds - (* We only care about types in fields of unboxed products for the nullability of - the overall kind *) - ~relevant_for_nullability:`Irrelevant ~type_expr ~modality t.jkind + jkind = Jkind_desc.unsafely_set_upper_bounds t.jkind ~from:from.jkind } -let has_with_bounds t = - match t.jkind.with_bounds with - | No_with_bounds -> false - | With_bounds _ -> true - (******************************) (* construction *) @@ -1854,58 +1094,55 @@ let of_new_legacy_sort_var ~why = let of_new_legacy_sort ~why = fst (of_new_legacy_sort_var ~why) -let of_const (type l r) ~annotation ~why ~(quality : (l * r) jkind_quality) - (c : (l * r) Const.t) = - { jkind = Layout_and_axes.map Layout.of_const c; +let of_const ~annotation ~why + ({ layout; + modes_upper_bounds; + externality_upper_bound; + nullability_upper_bound + } : + 'd Const.t) = + { jkind = + { layout = Layout.of_const layout; + modes_upper_bounds; + externality_upper_bound; + nullability_upper_bound + }; annotation; history = Creation why; - has_warned = false; - quality + has_warned = false } let of_builtin ~why Const.Builtin.{ jkind; name } = - jkind |> Layout_and_axes.allow_left |> Layout_and_axes.disallow_right - |> of_const ~annotation:(mk_annot name) - ~why - (* The [Best] is OK here because this function is used only in Predef. *) - ~quality:Best + of_const ~annotation:(mk_annot name) ~why jkind let of_annotated_const ~context ~annotation ~const ~const_loc = - let context = Context_with_transl.get_context context in - of_const ~annotation - ~why:(Annotated (context, const_loc)) - const ~quality:Not_best + of_const ~annotation ~why:(Annotated (context, const_loc)) const -let of_annotation_lr ~context (annot : Parsetree.jkind_annotation) = +let of_annotation ~context (annot : Parsetree.jkind_annotation) = let const = Const.of_user_written_annotation ~context annot in of_annotated_const ~annotation:(Some annot) ~const ~const_loc:annot.pjkind_loc ~context -let of_annotation ~context annot = - of_annotation_lr ~context:(Right_jkind context) annot - let of_annotation_option_default ~default ~context = function | None -> default | Some annot -> of_annotation ~context annot let of_attribute ~context (attribute : Builtin_attributes.jkind_attribute Location.loc) = - let ({ jkind = const; name } : Const.Builtin.t) = + let ({ jkind = const; name } : _ Const.Builtin.t) = Const.Builtin.of_attribute attribute.txt in of_annotated_const ~context ~annotation:(mk_annot name) ~const ~const_loc:attribute.loc -let of_type_decl ~context ~transl_type (decl : Parsetree.type_declaration) = - let context = Context_with_transl.Left_jkind (transl_type, context) in +let of_type_decl ~context (decl : Parsetree.type_declaration) = let jkind_of_annotation = decl.ptype_jkind_annotation - |> Option.map (fun annot -> of_annotation_lr ~context annot, annot) + |> Option.map (fun annot -> of_annotation ~context annot, annot) in let jkind_of_attribute = Builtin_attributes.jkind decl.ptype_attributes - |> Option.map (fun attr -> - (of_attribute ~context attr |> disallow_right, None), attr) + |> Option.map (fun attr -> (of_attribute ~context attr, None), attr) in match jkind_of_annotation, jkind_of_attribute with | None, None -> None @@ -1915,155 +1152,54 @@ let of_type_decl ~context ~transl_type (decl : Parsetree.type_declaration) = raise ~loc:decl.ptype_loc (Multiple_jkinds { from_annotation; from_attribute }) -let of_type_decl_default ~context ~transl_type ~default - (decl : Parsetree.type_declaration) = - match of_type_decl ~context ~transl_type decl with - | Some (t, _) -> t - | None -> default +let of_type_decl_default ~context ~default (decl : Parsetree.type_declaration) = + match of_type_decl ~context decl with Some (t, _) -> t | None -> default -let has_mutable_label lbls = - List.exists - (fun (lbl : Types.label_declaration) -> - match lbl.ld_mutable with Immutable -> false | Mutable _ -> true) - lbls - -let all_void_labels lbls = - List.for_all - (fun (lbl : Types.label_declaration) -> Sort.Const.(equal void lbl.ld_sort)) - lbls - -let add_labels_as_with_bounds lbls jkind = - List.fold_right - (fun (lbl : Types.label_declaration) -> - add_with_bounds ~type_expr:lbl.ld_type ~modality:lbl.ld_modalities) - lbls jkind - -let for_boxed_record lbls = - if all_void_labels lbls +let for_boxed_record ~all_void = + if all_void then Builtin.immediate ~why:Empty_record - else if !Clflags.infer_with_bounds - then - let is_mutable = has_mutable_label lbls in - let base = - (if is_mutable then Builtin.mutable_data else Builtin.immutable_data) - ~why:Boxed_record - |> mark_best - in - add_labels_as_with_bounds lbls base else Builtin.value ~why:Boxed_record -let for_unboxed_record ~jkind_of_first_type ~jkind_of_type lbls = - let open Types in - let tys_modalities = - List.map (fun lbl -> lbl.ld_type, lbl.ld_modalities) lbls - in - let layouts = - List.map - (fun lbl -> lbl.ld_sort |> Layout.Const.of_sort_const |> Layout.of_const) - lbls - in - Builtin.product ~jkind_of_first_type ~jkind_of_type ~why:Unboxed_record - tys_modalities layouts - -(* CR layouts v2.8: This should take modalities into account. *) -let for_boxed_variant cstrs = - let open Types in - if List.for_all - (fun cstr -> - match cstr.cd_args with - | Cstr_tuple args -> - List.for_all (fun arg -> Sort.Const.(equal void arg.ca_sort)) args - | Cstr_record lbls -> all_void_labels lbls) - cstrs +let for_boxed_variant ~all_voids = + if all_voids then Builtin.immediate ~why:Enumeration - else if !Clflags.infer_with_bounds - then - let is_mutable = - List.exists - (fun cstr -> - match cstr.cd_args with - | Cstr_tuple _ -> false - | Cstr_record lbls -> has_mutable_label lbls) - cstrs - in - let has_gadt_constructor = - List.exists - (fun cstr -> match cstr.cd_res with None -> false | Some _ -> true) - cstrs - in - if has_gadt_constructor - (* CR layouts v2.8: This is sad, but I don't know how to account for - existentials in the with_bounds. See doc named "Existential - with_bounds". *) - then Builtin.value ~why:Boxed_variant - else - let base = - (if is_mutable then Builtin.mutable_data else Builtin.immutable_data) - ~why:Boxed_variant - |> mark_best - in - let add_cstr_args cstr jkind = - match cstr.cd_args with - | Cstr_tuple args -> - List.fold_right - (fun arg -> - add_with_bounds ~modality:arg.ca_modalities ~type_expr:arg.ca_type) - args jkind - | Cstr_record lbls -> add_labels_as_with_bounds lbls jkind - in - List.fold_right add_cstr_args cstrs base else Builtin.value ~why:Boxed_variant let for_arrow = fresh_jkind { layout = Sort (Base Value); - mod_bounds = Mod_bounds.for_arrow; - with_bounds = No_with_bounds + modes_upper_bounds = + { linearity = Linearity.Const.max; + areality = Locality.Const.max; + uniqueness = Uniqueness.Const.min; + portability = Portability.Const.max; + contention = Contention.Const.min; + yielding = Yielding.Const.max + }; + externality_upper_bound = Externality.max; + nullability_upper_bound = Non_null } ~annotation:None ~why:(Value_creation Arrow) - |> mark_best let for_object = - (* The crossing of objects are based on the fact that they are - produced/defined/allocated at legacy, which applies to only the - comonadic axes. *) - let ({ linearity; areality = locality; portability; yielding } - : Mode.Alloc.Comonadic.Const.t) = - Alloc.Comonadic.Const.legacy - in - let ({ contention; uniqueness } : Mode.Alloc.Monadic.Const_op.t) = - Alloc.Monadic.Const_op.max - in fresh_jkind { layout = Sort (Base Value); - mod_bounds = - Mod_bounds.simple ~linearity ~locality ~uniqueness ~portability - ~contention ~yielding ~externality:Externality.max - ~nullability:Non_null; - with_bounds = No_with_bounds + modes_upper_bounds = + (* The crossing of objects are based on the fact that they are + produced/defined/allocated at legacy, which applies to only the + comonadic axes. *) + Alloc.Const.merge + { comonadic = Alloc.Comonadic.Const.legacy; + monadic = Alloc.Monadic.Const.max + }; + externality_upper_bound = Externality.max; + nullability_upper_bound = Non_null } ~annotation:None ~why:(Value_creation Object) (******************************) (* elimination and defaulting *) -type normalize_mode = - | Require_best - | Ignore_best - -let[@inline] normalize ~mode ~jkind_of_type t = - let mode : _ Jkind_desc.normalize_mode = - match mode with Require_best -> Require_best | Ignore_best -> Ignore_best - in - let jkind, fuel_result = Jkind_desc.normalize ~jkind_of_type ~mode t.jkind in - { t with - jkind; - quality = - (match t.quality, fuel_result with - | Not_best, _ | _, Ran_out_of_fuel -> Not_best - | Best, Sufficient_fuel -> Best) - } - let get_layout_defaulting_to_value { jkind = { layout; _ }; _ } = Layout.default_to_value_and_get layout @@ -2086,52 +1222,12 @@ let sort_of_jkind (t : jkind_l) : sort = let get_layout jk : Layout.Const.t option = Layout.get_const jk.jkind.layout -let extract_layout jk = jk.jkind.layout - -let get_modal_upper_bounds (type l r) ~jkind_of_type (jk : (l * r) jkind) : - Alloc.Comonadic.Const.t = - let ( ({ layout = _; mod_bounds; with_bounds = No_with_bounds } : - Allowance.right_only jkind_desc), - _ ) = - Jkind_desc.normalize ~mode:Ignore_best ~jkind_of_type jk.jkind - in - let get axis = Mod_bounds.get mod_bounds ~axis in - { areality = get (Modal (Comonadic Areality)); - linearity = get (Modal (Comonadic Linearity)); - portability = get (Modal (Comonadic Portability)); - yielding = get (Modal (Comonadic Yielding)) - } - -let get_modal_lower_bounds (type l r) ~jkind_of_type (jk : (l * r) jkind) : - Alloc.Monadic.Const.t = - let ( ({ layout = _; mod_bounds; with_bounds = No_with_bounds } : - Allowance.right_only jkind_desc), - _ ) = - Jkind_desc.normalize ~mode:Ignore_best ~jkind_of_type jk.jkind - in - let get axis = Mod_bounds.get mod_bounds ~axis in - { uniqueness = get (Modal (Monadic Uniqueness)); - contention = get (Modal (Monadic Contention)) - } +let get_modal_upper_bounds jk = jk.jkind.modes_upper_bounds -let get_externality_upper_bound ~jkind_of_type jk = - let ( ({ layout = _; mod_bounds; with_bounds = No_with_bounds } : - Allowance.right_only jkind_desc), - _ ) = - Jkind_desc.normalize ~mode:Ignore_best ~jkind_of_type jk.jkind - in - Mod_bounds.get mod_bounds ~axis:(Nonmodal Externality) +let get_externality_upper_bound jk = jk.jkind.externality_upper_bound let set_externality_upper_bound jk externality_upper_bound = - { jk with - jkind = - { jk.jkind with - mod_bounds = - { jk.jkind.mod_bounds with externality = externality_upper_bound } - } - } - -let set_layout jk layout = { jk with jkind = { jk.jkind with layout } } + { jk with jkind = { jk.jkind with externality_upper_bound } } let get_annotation jk = jk.annotation @@ -2516,13 +1612,10 @@ let format_history ~intro ppf t = module Violation = struct open Format - module Sub_failure_reason = Sub_failure_reason type violation = - | Not_a_subjkind : - (allowed * 'r1) jkind * ('l * 'r2) jkind * Sub_failure_reason.t list - -> violation - | No_intersection : 'd jkind * ('l * allowed) jkind -> violation + | Not_a_subjkind : (allowed * 'r) t * ('l * allowed) t -> violation + | No_intersection : 'd t * ('l * allowed) t -> violation type nonrec t = { violation : violation; @@ -2543,89 +1636,11 @@ module Violation = struct | Mode | Layout - let report_reason ppf violation = - (* Print out per-axis information about why the error occurred. This only happens - when modalities are printed because the errors are simple enough when there are no - modalities that it makes the error unnecessarily noisy. - *) - match violation with - | Not_a_subjkind (sub, super, reasons) -> ( - if should_print_with_bounds () - then - let disagreeing_axes = - (* Collect all the axes that disagree into a set. If none disagree, then it - is [None] *) - List.fold_left - (fun disagreeing_axes_so_far reason -> - match - (reason : Sub_failure_reason.t), disagreeing_axes_so_far - with - | Axis_disagreement (Pack axis), Some disagreeing_axes_so_far -> - Some (Axis_set.add disagreeing_axes_so_far axis) - | Axis_disagreement (Pack axis), None -> - Some (Axis_set.singleton axis) - | (Layout_disagreement | Constrain_ran_out_of_fuel), _ -> - disagreeing_axes_so_far) - None reasons - in - let has_modalities = - let jkind_has_modalities jkind = - List.exists - (fun (_, type_info) -> - let axes_ignored_by_modalities = - With_bounds.Type_info.axes_ignored_by_modalities - ~mod_bounds:jkind.jkind.mod_bounds ~type_info - in - not (Axis_set.is_empty axes_ignored_by_modalities)) - (With_bounds.to_list jkind.jkind.with_bounds) - in - jkind_has_modalities sub || jkind_has_modalities super - in - match disagreeing_axes, has_modalities with - | None, _ | _, false -> () - | Some disagreeing_axes, true -> - (* CR: @\n is discouraged by the documentation, but @;@; seems to emit one newline - and then one space rather than two newlines *) - fprintf ppf "@\n@\nThe first mode-crosses less than the second along:"; - Axis_set.to_list disagreeing_axes - |> List.iter (fun (Pack axis : Axis.packed) -> - let pp_bound ppf jkind = - let mod_bound = Mod_bounds.get ~axis jkind.mod_bounds in - let (module Axis_ops) = Axis.get axis in - let with_bounds = - match Axis_ops.(le max mod_bound) with - | true -> - (* If the mod_bound is max, then no with-bounds are relevant *) - [] - | false -> - With_bounds.to_list jkind.with_bounds - |> List.filter_map - (fun - (ty, ({ relevant_axes } : With_bounds_type_info.t)) - -> - match Axis_set.mem relevant_axes axis with - | true -> Some (!outcometree_of_type_scheme ty) - | false -> None) - in - let ojkind = - List.fold_left - (fun acc with_bound -> - Outcometree.Ojkind_const_with (acc, with_bound, [])) - (Outcometree.Ojkind_const_mod - (None, [Format.asprintf "%a" Axis_ops.print mod_bound])) - with_bounds - in - !Oprint.out_jkind_const ppf ojkind - in - fprintf ppf "@; @[%s:@ %a ≰@ %a@]" (Axis.name axis) - pp_bound sub.jkind pp_bound super.jkind)) - | No_intersection _ -> () - let report_general preamble pp_former former ppf t = let mismatch_type = match t.violation with - | Not_a_subjkind (k1, k2, _) -> - if Sub_result.is_le (Layout.sub k1.jkind.layout k2.jkind.layout) + | Not_a_subjkind (k1, k2) -> + if Misc.Le_result.is_le (Layout.sub k1.jkind.layout k2.jkind.layout) then Mode else Layout | No_intersection _ -> Layout @@ -2649,9 +1664,9 @@ module Violation = struct else dprintf "%s a sub%s of %a" verb layout_or_kind format_layout_or_kind k2 in - let Pack_jkind k1, Pack_jkind k2, fmt_k1, fmt_k2, missing_cmi_option = + let Pack k1, Pack k2, fmt_k1, fmt_k2, missing_cmi_option = match t with - | { violation = Not_a_subjkind (k1, k2, _); missing_cmi } -> ( + | { violation = Not_a_subjkind (k1, k2); missing_cmi } -> ( let missing_cmi = match missing_cmi with | None -> ( @@ -2663,21 +1678,21 @@ module Violation = struct in match missing_cmi with | None -> - ( Pack_jkind k1, - Pack_jkind k2, + ( Pack k1, + Pack k2, dprintf "%s %a" layout_or_kind format_layout_or_kind k1, subjkind_format "is not" k2, None ) | Some p -> - ( Pack_jkind k1, - Pack_jkind k2, + ( Pack k1, + Pack k2, dprintf "an unknown %s" layout_or_kind, subjkind_format "might not be" k2, Some p )) | { violation = No_intersection (k1, k2); missing_cmi } -> assert (Option.is_none missing_cmi); - ( Pack_jkind k1, - Pack_jkind k2, + ( Pack k1, + Pack k2, dprintf "%s %a" layout_or_kind format_layout_or_kind k1, dprintf "does not overlap with %a" format_layout_or_kind k2, None ) @@ -2708,8 +1723,7 @@ module Violation = struct else fprintf ppf "@[%s%a has %t,@ which %t.@]" preamble pp_former former fmt_k1 fmt_k2; - report_missing_cmi ppf missing_cmi_option; - report_reason ppf t.violation + report_missing_cmi ppf missing_cmi_option let pp_t ppf x = fprintf ppf "%t" x @@ -2725,14 +1739,15 @@ end (* relations *) let equate_or_equal ~allow_mutation - { jkind = jkind1; annotation = _; history = _; has_warned = _; quality = _ } - { jkind = jkind2; annotation = _; history = _; has_warned = _; quality = _ } - = + { jkind = jkind1; annotation = _; history = _; has_warned = _ } + { jkind = jkind2; annotation = _; history = _; has_warned = _ } = Jkind_desc.equate_or_equal ~allow_mutation jkind1 jkind2 (* CR layouts v2.8: Switch this back to ~allow_mutation:false *) let equal t1 t2 = equate_or_equal ~allow_mutation:true t1 t2 +let () = Types.set_jkind_equal equal + let equate t1 t2 = equate_or_equal ~allow_mutation:true t1 t2 (* Not all jkind history reasons are created equal. Some are more helpful than others. @@ -2747,8 +1762,7 @@ let score_reason = function | Creation (Concrete_creation _ | Concrete_legacy_creation _) -> -1 | _ -> 0 -let combine_histories ~type_equal ~jkind_of_type reason (Pack_jkind k1) - (Pack_jkind k2) = +let combine_histories reason (Pack k1) (Pack k2) = if flattened_histories then let choose_higher_scored_history history_a history_b = @@ -2757,9 +1771,9 @@ let combine_histories ~type_equal ~jkind_of_type reason (Pack_jkind k1) else history_b in let choose_subjkind_history k_a history_a k_b history_b = - match Jkind_desc.sub ~type_equal ~jkind_of_type k_a k_b with + match Jkind_desc.sub k_a k_b with | Less -> history_a - | Not_le _ -> + | Not_le -> (* CR layouts: this will be wrong if we ever have a non-trivial meet in the kind lattice -- which is now! So this is actually wrong. *) history_b @@ -2776,158 +1790,67 @@ let combine_histories ~type_equal ~jkind_of_type reason (Pack_jkind k1) else Interact { reason; - jkind1 = Pack_jkind_desc k1.jkind; + jkind1 = Pack k1.jkind; history1 = k1.history; - jkind2 = Pack_jkind_desc k2.jkind; + jkind2 = Pack k2.jkind; history2 = k2.history } let has_intersection t1 t2 = - (* Need to check only the layouts: all the axes have bottom elements. *) - Option.is_some (Layout.intersection t1.jkind.layout t2.jkind.layout) + Option.is_some (Jkind_desc.intersection t1.jkind t2.jkind) -let intersection_or_error ~type_equal ~jkind_of_type ~reason t1 t2 = +let intersection_or_error ~reason t1 t2 = match Jkind_desc.intersection t1.jkind t2.jkind with | None -> Error (Violation.of_ (No_intersection (t1, t2))) | Some jkind -> Ok { jkind; annotation = None; - history = - combine_histories ~type_equal ~jkind_of_type reason (Pack_jkind t1) - (Pack_jkind t2); - has_warned = t1.has_warned || t2.has_warned; - quality = - Not_best (* As required by the fact that this is a [jkind_r] *) + history = combine_histories reason (Pack t1) (Pack t2); + has_warned = t1.has_warned || t2.has_warned } -let round_up (type l r) ~jkind_of_type (t : (allowed * r) jkind) : - (l * allowed) jkind = - let normalized = - normalize ~mode:Ignore_best ~jkind_of_type (t |> disallow_right) - in - { t with - jkind = { normalized.jkind with with_bounds = No_with_bounds }; - quality = Not_best (* As required by the fact that this is a [jkind_r] *) - } +let intersect_l_l ~reason t1 t2 = + (* CR layouts v2.8: Do something cleverer here once we have more + expressive l-kinds. *) + intersection_or_error ~reason t1 (terrible_relax_l t2) -let map_type_expr f t = { t with jkind = Jkind_desc.map_type_expr f t.jkind } +let has_intersection_l_l t1 t2 = + (* CR layouts v2.8: Do something cleverer here once we have more + expressive l-kinds. *) + has_intersection (terrible_relax_l t1) (terrible_relax_l t2) (* this is hammered on; it must be fast! *) -let check_sub ~jkind_of_type sub super = - Jkind_desc.sub ~jkind_of_type sub.jkind super.jkind - -let sub_with_reason ~type_equal ~jkind_of_type sub super = - Sub_result.require_le (check_sub ~type_equal ~jkind_of_type sub super) +let check_sub ?allow_any_crossing sub super = + Jkind_desc.sub ?allow_any_crossing sub.jkind super.jkind -let sub ~type_equal ~jkind_of_type sub super = - Result.is_ok (sub_with_reason ~type_equal ~jkind_of_type sub super) +let sub sub super = Misc.Le_result.is_le (check_sub sub super) type sub_or_intersect = | Sub - | Disjoint of Violation.Sub_failure_reason.t Nonempty_list.t - | Has_intersection of Violation.Sub_failure_reason.t Nonempty_list.t - -let sub_or_intersect ~type_equal ~jkind_of_type t1 t2 = - match sub_with_reason ~type_equal ~jkind_of_type t1 t2 with - | Ok () -> Sub - | Error reason -> - if has_intersection t1 t2 then Has_intersection reason else Disjoint reason - -let sub_or_error ~type_equal ~jkind_of_type t1 t2 = - match sub_or_intersect ~type_equal ~jkind_of_type t1 t2 with + | Disjoint + | Has_intersection + +let sub_or_intersect t1 t2 = + if sub t1 t2 + then Sub + else if has_intersection t1 t2 + then Has_intersection + else Disjoint + +let sub_or_error t1 t2 = + match sub_or_intersect t1 t2 with | Sub -> Ok () - | Disjoint reason | Has_intersection reason -> - Error - (Violation.of_ (Not_a_subjkind (t1, t2, Nonempty_list.to_list reason))) - -let sub_jkind_l ~type_equal ~jkind_of_type ?(allow_any_crossing = false) sub - super = - (* This function implements the "SUB" judgement from kind-inference.md. *) - let open Misc.Stdlib.Monad.Result.Syntax in - let require_le sub_result = - Sub_result.require_le sub_result - |> Result.map_error (fun reasons -> - (* When we report an error, we want to show the best-normalized version of sub, but - the original super. When this check fails, it is usually the case that the super - was written by the user and the sub was inferred. Thus, we should display the - user-written jkind, but simplify the inferred one, since the inferred one is - probably overly complex. *) - (* CR layouts v2.8: It would be useful report to the user why this - violation occurred, specifically which axes the violation is along. *) - let best_sub = normalize ~mode:Require_best ~jkind_of_type sub in - Violation.of_ - (Not_a_subjkind (best_sub, super, Nonempty_list.to_list reasons))) - in - let* () = - (* Validate layouts *) - require_le (Layout.sub sub.jkind.layout super.jkind.layout) - in - match allow_any_crossing with - | true -> Ok () - | false -> - let best_super = - (* MB_EXPAND_R *) - normalize ~mode:Require_best ~jkind_of_type super - in - let right_bounds = - With_bounds.to_best_eff_map best_super.jkind.with_bounds - in - let axes_max_on_right = - (* If the upper_bound is max on the right, then that axis is irrelevant - the - left will always satisfy the right along that axis. This is an optimization, - not necessary for correctness *) - Mod_bounds.get_max_axes best_super.jkind.mod_bounds - in - let ( ({ layout = _; - mod_bounds = sub_upper_bounds; - with_bounds = No_with_bounds - } : - Allowance.right_only jkind_desc), - _ ) = - (* MB_EXPAND_L *) - (* Here we progressively expand types on the left. - - Every time we see a type [ty] on the left, we first look to see if [ty] occurs on the - right. If it does, then we can skip* [ty]. There is an * on skip because we can - actually only skip on a per-axis basis - if [ty] is relevant only along the - portability axis on the right, then [ty] is no longer relevant to portability on - the left, but it is still relevant to all other axes. So really, we subtract the - axes that are relevant to the right from the axes that are relevant to the left. - We can also skip [ty] on any axes that are max on the right since anything is - <= max. Hence, we can also subtract [axes_max_on_right]. - - After finding which axes [ty] is relevant along, we lookup [ty]'s jkind and join it - with the [mod_bounds] along the relevant axes. *) - (* [Jkind_desc.map_normalize] handles the stepping, jkind lookups, and joining. - [map_type_info] handles looking for [ty] on the right and removing irrelevant axes. *) - Jkind_desc.map_normalize sub.jkind ~jkind_of_type ~mode:Ignore_best - ~map_type_info:(fun ty { relevant_axes = left_relevant_axes } -> - let right_relevant_axes = - (* Look for [ty] on the right. There may be multiple occurrences of it on the - right; if so, we union together the relevant axes. *) - right_bounds |> With_bounds_types.to_seq - (* CR layouts v2.8: maybe it's worth memoizing using a best-effort type map? *) - |> Seq.fold_left - (fun acc (ty2, ti) -> - match type_equal ty ty2 with - | true -> - Axis_set.union acc ti.With_bounds_type_info.relevant_axes - | false -> acc) - Axis_set.empty - in - let axes_to_drop = - Axis_set.union right_relevant_axes axes_max_on_right - in - (* MB_WITH : drop types from the left that appear on the right *) - { relevant_axes = Axis_set.diff left_relevant_axes axes_to_drop }) - in - let* () = - (* MB_MODE : verify that the remaining upper_bounds from sub are <= super's bounds *) - let super_lower_bounds = best_super.jkind.mod_bounds in - require_le (Mod_bounds.less_or_equal sub_upper_bounds super_lower_bounds) - in - Ok () + | _ -> Error (Violation.of_ (Not_a_subjkind (t1, t2))) + +(* CR layouts v2.8: Rewrite this to do the hard subjkind check from the + kind polymorphism design. *) +let sub_jkind_l ?allow_any_crossing sub super = + let super = terrible_relax_l super in + match check_sub ?allow_any_crossing sub super with + | Less | Equal -> + Ok { sub with history = combine_histories Subjkind (Pack sub) (Pack super) } + | Not_le -> Error (Violation.of_ (Not_a_subjkind (sub, super))) let is_void_defaulting = function | { jkind = { layout = Sort s; _ }; _ } -> Sort.is_void_defaulting s @@ -2935,34 +1858,30 @@ let is_void_defaulting = function (* This doesn't do any mutation because mutating a sort variable can't make it any, and modal upper bounds are constant. *) -(* The choice of [type_equal] and [jkind_of_type] doesn't matter because there - are no with-kinds on the left-hand kind. *) -let is_max jkind = - sub - ~type_equal:(fun _ _ -> false) - ~jkind_of_type:(fun _ -> None) - Builtin.any_dummy_jkind jkind +let is_max jkind = sub Builtin.any_dummy_jkind jkind let has_layout_any jkind = match jkind.jkind.layout with Any -> true | _ -> false -let is_value_for_printing ~ignore_null { jkind; _ } = - match Desc.get_const (Jkind_desc.get jkind) with - | None -> false +let is_value_for_printing ~ignore_null + { jkind = + { layout; + modes_upper_bounds; + externality_upper_bound; + nullability_upper_bound + }; + _ + } = + match Layout.get_const layout with | Some const -> let value = Const.Builtin.value.jkind in - let values = [value] in - let values = - if ignore_null - then - { value with - mod_bounds = - { value.mod_bounds with nullability = Nullability.Maybe_null } - } - :: values - else values - in - List.exists (fun v -> Const.no_with_bounds_and_equal const v) values + Layout.Const.equal const value.layout + && Modes.equal modes_upper_bounds value.modes_upper_bounds + && Externality.equal externality_upper_bound value.externality_upper_bound + && (ignore_null + || Nullability.equal nullability_upper_bound + value.nullability_upper_bound) + | None -> false (*********************************) (* debugging *) @@ -3124,46 +2043,39 @@ module Debug_printers = struct fprintf ppf "Tyvar_refinement_intersection" | Subjkind -> fprintf ppf "Subjkind" - let rec history ~print_type_expr ppf = - let jkind_desc = Jkind_desc.Debug_printers.t ~print_type_expr in - function + let rec history ppf = function | Interact { reason; - jkind1 = Pack_jkind_desc jkind1; + jkind1 = Pack jkind1; history1; - jkind2 = Pack_jkind_desc jkind2; + jkind2 = Pack jkind2; history2 } -> fprintf ppf "Interact {@[reason = %a;@ jkind1 = %a;@ history1 = %a;@ jkind2 = %a;@ \ history2 = %a}@]" - interact_reason reason jkind_desc jkind1 (history ~print_type_expr) - history1 jkind_desc jkind2 (history ~print_type_expr) history2 + interact_reason reason Jkind_desc.Debug_printers.t jkind1 history + history1 Jkind_desc.Debug_printers.t jkind2 history history2 | Creation c -> fprintf ppf "Creation (%a)" creation_reason c - let t (type l r) ~print_type_expr ppf - ({ jkind; annotation = a; history = h; has_warned = _; quality = q } : - (l * r) jkind) : unit = - fprintf ppf - "@[{ jkind = %a@,\ - ; annotation = %a@,\ - ; history = %a@,\ - ; quality = %s@,\ - \ }@]" - (Jkind_desc.Debug_printers.t ~print_type_expr) - jkind + let t ppf ({ jkind; annotation = a; history = h; has_warned = _ } : 'd t) : + unit = + fprintf ppf "@[{ jkind = %a@,; annotation = %a@,; history = %a }@]" + Jkind_desc.Debug_printers.t jkind (pp_print_option Pprintast.jkind_annotation) - a (history ~print_type_expr) h - (match q with Best -> "Best" | Not_best -> "Not_best") + a history h module Const = struct - let t ~print_type_expr ppf ({ layout; mod_bounds; with_bounds } : _ Const.t) - = + let t ppf (jkind : _ Const.t) = fprintf ppf - "@[{ layout = %a@,; mod_bounds = %a@,; with_bounds = %a@, }@]" - Layout.Const.Debug_printers.t layout Mod_bounds.debug_print mod_bounds - (With_bounds.debug_print ~print_type_expr) - with_bounds + "@[{ layout = %a@,\ + ; modes_upper_bounds = %a@,\ + ; externality_upper_bound = %a@,\ + ; nullability_upper_bound = %a@,\ + }@]" + Layout.Const.Debug_printers.t jkind.layout Modes.print + jkind.modes_upper_bounds Externality.print jkind.externality_upper_bound + Nullability.print jkind.nullability_upper_bound end end @@ -3203,8 +2115,6 @@ let report_error ~loc : Error.t -> _ = function Pprintast.jkind_annotation jkind hint) | Unimplemented_syntax -> Location.errorf ~loc "@[Unimplemented kind syntax@]" - | With_on_right -> - Location.errorf ~loc "'with' syntax is not allowed on a right mode." let () = Location.register_error_of_exn (function diff --git a/src/ocaml/typing/jkind.mli b/src/ocaml/typing/jkind.mli index 07f18d165..50dab0dbd 100644 --- a/src/ocaml/typing/jkind.mli +++ b/src/ocaml/typing/jkind.mli @@ -40,12 +40,30 @@ open Allowance This will eventually be incorporated into the mode solver, but it is defined here because we do not yet track externalities on expressions, just in jkinds. *) +(* CR externals: Move to mode.ml. But see + https://github.com/goldfirere/flambda-backend/commit/d802597fbdaaa850e1ed9209a1305c5dcdf71e17 + first, which was reisenberg's attempt to do so. *) +module Externality : sig + type t = Jkind_axis.Externality.t = + | External (* not managed by the garbage collector *) + | External64 (* not managed by the garbage collector on 64-bit systems *) + | Internal (* managed by the garbage collector *) + + include module type of Jkind_axis.Externality with type t := t +end + +module Nullability : sig + type t = Jkind_axis.Nullability.t = + | Non_null (* proven to not have NULL values *) + | Maybe_null (* may have NULL values *) + + include module type of Jkind_axis.Nullability with type t := t +end module Sort : sig include Jkind_intf.Sort - with type t = Jkind_types.Sort.t - and type base = Jkind_types.Sort.base + with type base = Jkind_types.Sort.base and type Const.t = Jkind_types.Sort.Const.t module Flat : sig @@ -58,6 +76,7 @@ end type sort = Sort.t +<<<<<<< janestreet/merlin-jst:5.2.0minus-6 module Sub_failure_reason : sig type t = | Axis_disagreement of Jkind_axis.Axis.packed @@ -83,6 +102,34 @@ module Sub_result : sig val is_le : t -> bool end +||||||| ocaml-flambda/flambda-backend:6a83bbad9dd6c86ea5019a84258b04c81aa34a38 +module Sub_failure_reason : sig + type t = + | Axis_disagreement of Jkind_axis.Axis.packed + | Layout_disagreement + | Constrain_ran_out_of_fuel +end + +module Sub_result : sig + type t = + | Equal + | Less + | Not_le of Sub_failure_reason.t Misc.Nonempty_list.t + + val of_le_result : + failure_reason:(unit -> Sub_failure_reason.t Misc.Nonempty_list.t) -> + Misc.Le_result.t -> + t + + val combine : t -> t -> t + + val require_le : t -> (unit, Sub_failure_reason.t Misc.Nonempty_list.t) result + + val is_le : t -> bool +end + +======= +>>>>>>> ocaml-flambda/flambda-backend:db3778f932fc0a2f9d71ba5f9dcf7c76fcc74a63 (* The layout of a type describes its memory layout. A layout is either the indeterminate [Any] or a sort, which is a concrete memory layout. *) module Layout : sig @@ -96,14 +143,8 @@ module Layout : sig val get_sort : t -> Sort.Const.t option - val of_sort_const : Sort.Const.t -> t - val to_string : t -> string end - - val of_const : Const.t -> Sort.t t - - val sub : Sort.t t -> Sort.t t -> Sub_result.t end (** A Jkind.t is a full description of the runtime representation of values @@ -126,11 +167,21 @@ end the meets (intersections) of r-jkinds and check that an l-jkind is less than an r-jkind. *) +type +'d t = (Types.type_expr, 'd) Jkind_types.t + +type jkind_l := Types.jkind_l + +type jkind_r := Types.jkind_r -include Allowance.Allow_disallow with type (_, _, 'd) sided = 'd Types.jkind +type jkind_lr := Types.jkind_lr -(** Try to treat this jkind as an r-jkind. *) -val try_allow_r : ('l * 'r) Types.jkind -> ('l * allowed) Types.jkind option +type packed = Pack : 'd t -> packed [@@unboxed] + +include Allowance.Allow_disallow with type (_, _, 'd) sided = 'd t + +(** Convert an [l] into any jkind. This will soon become impossible, and so + uses of this function will have to be removed. *) +val terrible_relax_l : jkind_l -> 'd t module History : sig include module type of struct @@ -139,15 +190,15 @@ module History : sig (* history *) - val is_imported : 'd Types.jkind -> bool + val is_imported : 'd t -> bool - val update_reason : 'd Types.jkind -> creation_reason -> 'd Types.jkind + val update_reason : 'd t -> creation_reason -> 'd t (* Mark the jkind as having produced a compiler warning. *) - val with_warning : 'd Types.jkind -> 'd Types.jkind + val with_warning : 'd t -> 'd t (* Whether this jkind has produced a compiler warning. *) - val has_warned : 'd Types.jkind -> bool + val has_warned : 'd t -> bool end (******************************) @@ -155,15 +206,8 @@ end module Violation : sig type violation = - (* [Not_a_subjkind] allows l-jkinds on the right so that it can be used - in [sub_jkind_l]. There is no downside to this, as the printing - machinery works over l-jkinds. *) - | Not_a_subjkind : - (allowed * 'r1) Types.jkind - * ('l * 'r2) Types.jkind - * Sub_failure_reason.t list - -> violation - | No_intersection : 'd Types.jkind * ('l * allowed) Types.jkind -> violation + | Not_a_subjkind : (allowed * 'r) t * ('l * allowed) t -> violation + | No_intersection : 'd t * ('l * allowed) t -> violation type t @@ -207,83 +251,80 @@ module Const : sig The "constant" refers to the fact that there are no sort variables here. The existence of [with]-types means, though, that we still need the allowance machinery here. *) - type 'd t constraint 'd = 'l * 'r - - include Allowance.Allow_disallow with type (_, _, 'd) sided = 'd t + type +'d t constraint 'd = 'l * 'r val to_out_jkind_const : 'd t -> Outcometree.out_jkind_const - (** This returns [true] iff both types have no with-bounds and they are equal. - Normally, we want an equality check to happen only on values that are - allowed on both the left and the right. But a type with no with-bounds is - allowed on the left and the right, so we test for that condition first - before doing the proper equality check. *) - val no_with_bounds_and_equal : 'd1 t -> 'd2 t -> bool + (* An equality check should work over [lr]s only. But we need this + to do memoization in serialization. Happily, that's after all + inference is done, when worrying about l and r does not matter + any more. *) + val equal_after_all_inference_is_done : 'd1 t -> 'd2 t -> bool (* CR layouts: Remove this once we have a better story for printing with jkind abbreviations. *) module Builtin : sig - type nonrec t = - { jkind : (allowed * allowed) t; + type nonrec 'd t = + { jkind : 'd t; name : string } (** This jkind is the top of the jkind lattice. All types have jkind [any]. But we cannot compile run-time manipulations of values of types with jkind [any]. *) - val any : t + val any : 'd t (** [any], except for null pointers. *) - val any_non_null : t + val any_non_null : 'd t (** Value of types of this jkind are not retained at all at runtime *) - val void : t + val void : 'd t (** This is the jkind of normal ocaml values or null pointers *) - val value_or_null : t + val value_or_null : 'd t (** This is the jkind of normal ocaml values *) - val value : t + val value : 'd t (** Immutable values that don't contain functions. *) - val immutable_data : t + val immutable_data : 'd t (** Mutable values that don't contain functions. *) - val mutable_data : t + val mutable_data : 'd t (** Values of types of this jkind are immediate on 64-bit platforms; on other platforms, we know nothing other than that it's a value. *) - val immediate64 : t + val immediate64 : 'd t (** We know for sure that values of types of this jkind are always immediate *) - val immediate : t + val immediate : 'd t (** This is the jkind of unboxed 64-bit floats. They have sort Float64. Mode-crosses. *) - val float64 : t + val float64 : 'd t (** This is the jkind of unboxed 32-bit floats. They have sort Float32. Mode-crosses. *) - val float32 : t + val float32 : 'd t (** This is the jkind of unboxed native-sized integers. They have sort Word. Does not mode-cross. *) - val word : t + val word : 'd t (** This is the jkind of unboxed 32-bit integers. They have sort Bits32. Does not mode-cross. *) - val bits32 : t + val bits32 : 'd t (** This is the jkind of unboxed 64-bit integers. They have sort Bits64. Does not mode-cross. *) - val bits64 : t + val bits64 : 'd t (** This is the jkind of unboxed 128-bit simd vectors. They have sort Vec128. Does not mode-cross. *) - val vec128 : t + val vec128 : 'd t (** A list of all Builtin jkinds *) - val all : t list + val all : 'd t list end end @@ -291,127 +332,75 @@ module Builtin : sig (** This jkind is the top of the jkind lattice. All types have jkind [any]. But we cannot compile run-time manipulations of values of types with jkind [any]. *) - val any : why:History.any_creation_reason -> 'd Types.jkind + val any : why:History.any_creation_reason -> 'd t (** Value of types of this jkind are not retained at all at runtime *) - val void : why:History.void_creation_reason -> ('l * disallowed) Types.jkind + val void : why:History.void_creation_reason -> 'd t - val value_or_null : - why:History.value_or_null_creation_reason -> 'd Types.jkind + val value_or_null : why:History.value_or_null_creation_reason -> 'd t (** This is the jkind of normal ocaml values *) - val value : why:History.value_creation_reason -> 'd Types.jkind - - (** This is suitable for records or variants without mutable fields. *) - val immutable_data : why:History.value_creation_reason -> 'd Types.jkind - - (** This is suitable for records or variants with mutable fields. *) - val mutable_data : why:History.value_creation_reason -> 'd Types.jkind + val value : why:History.value_creation_reason -> 'd t (** We know for sure that values of types of this jkind are always immediate *) - val immediate : - why:History.immediate_creation_reason -> ('l * disallowed) Types.jkind - - (** Build a jkind of unboxed products, from a list of types with - their layouts. Errors if zero inputs are given. If only one input - is given, returns the result of calling [jkind_of_first_type]. - - Precondition: both input lists are the same length. - - This returns an [jkind_l] simply as a matter of convenience; it can be - generalized if need be. - - The resulting jkind has quality [Best], because all the components of the product - are represented in the with-bounds. *) - val product : - jkind_of_first_type:(unit -> Types.jkind_l) -> - jkind_of_type:(Types.type_expr -> Types.jkind_l) -> - why:History.product_creation_reason -> - (Types.type_expr * Mode.Modality.Value.Const.t) list -> - Sort.t Layout.t list -> - Types.jkind_l - - (** Build a jkind of unboxed products, given only an arity. This jkind will not - mode-cross (and has kind [Not_best] accordingly), even though unboxed products - generally should. This is useful when creating an initial jkind in Typedecl. *) - val product_of_sorts : - why:History.product_creation_reason -> int -> Types.jkind_l + val immediate : why:History.immediate_creation_reason -> 'd t + + (** Attempt to build a jkind of unboxed products. + - If zero input kinds are given, it errors. + - If a single input kind is given, then it returns that kind. + - If two or more input kinds are given, then the layout will be the + product of the layouts of the input kinds, and the other components of + the kind will be the join relevant component of the inputs. + *) + val product : why:History.product_creation_reason -> 'd t list -> 'd t end (** Take an existing [t] and add an ability to cross across the nullability axis. *) -val add_nullability_crossing : 'd Types.jkind -> 'd Types.jkind - -(** Forcibly change the mod-bounds of a [t] based on the mod-bounds of - [from]. - - Returns [Error ()] if [from] contains with-bounds. *) -val unsafely_set_mod_bounds : - from:'d Types.jkind -> 'd Types.jkind -> ('d Types.jkind, unit) Result.t - -(** Take an existing [jkind_l] and add some with-bounds. *) -val add_with_bounds : - modality:Mode.Modality.Value.Const.t -> - type_expr:Types.type_expr -> - Types.jkind_l -> - Types.jkind_l +val add_nullability_crossing : 'd t -> 'd t -(** Does this jkind have with-bounds? *) -val has_with_bounds : Types.jkind_l -> bool - -(** Mark the given jkind as {i best}, meaning we can never learn any more information - about it that will cause it to become lower in the preorder of kinds*) -val mark_best : ('l * 'r) Types.jkind -> ('l * disallowed) Types.jkind - -(** Is the given kind best? *) -val is_best : ('l * disallowed) Types.jkind -> bool +(** Forcibly change the modal upper bounds of a [t] based on the modal upper bounds of + [from]. *) +val unsafely_set_upper_bounds : from:'d t -> 'd t -> 'd t (******************************) (* construction *) (** Create a fresh sort variable, packed into a jkind, returning both the resulting kind and the sort. *) -val of_new_sort_var : - why:History.concrete_creation_reason -> 'd Types.jkind * sort +val of_new_sort_var : why:History.concrete_creation_reason -> 'd t * sort (** Create a fresh sort variable, packed into a jkind. *) -val of_new_sort : why:History.concrete_creation_reason -> 'd Types.jkind +val of_new_sort : why:History.concrete_creation_reason -> 'd t (** Same as [of_new_sort_var], but the jkind is lowered to [Non_null] to mirror "legacy" OCaml values. Defaulting the sort variable produces exactly [value]. *) val of_new_legacy_sort_var : - why:History.concrete_legacy_creation_reason -> 'd Types.jkind * sort + why:History.concrete_legacy_creation_reason -> 'd t * sort (** Same as [of_new_sort], but the jkind is lowered to [Non_null] to mirror "legacy" OCaml values. Defaulting the sort variable produces exactly [value]. *) -val of_new_legacy_sort : - why:History.concrete_legacy_creation_reason -> 'd Types.jkind +val of_new_legacy_sort : why:History.concrete_legacy_creation_reason -> 'd t -(** Construct a jkind from a constant jkind, at quality [Not_best] *) val of_const : annotation:Parsetree.jkind_annotation option -> why:History.creation_reason -> - quality:'d Types.jkind_quality -> 'd Const.t -> - 'd Types.jkind + 'd t -(** Construct a jkind from a builtin kind, at quality [Best]. *) -val of_builtin : - why:History.creation_reason -> - Const.Builtin.t -> - ('l * disallowed) Types.jkind +val of_builtin : why:History.creation_reason -> 'd Const.Builtin.t -> 'd t + +(* CR layouts v2.8: remove this when printing is improved *) val of_annotation : - context:('l * allowed) History.annotation_context -> - Parsetree.jkind_annotation -> - ('l * allowed) Types.jkind + context:'d History.annotation_context -> Parsetree.jkind_annotation -> 'd t val of_annotation_option_default : - default:('l * allowed) Types.jkind -> - context:('l * allowed) History.annotation_context -> + default:'d t -> + context:'d History.annotation_context -> Parsetree.jkind_annotation option -> - ('l * allowed) Types.jkind + 'd t (** Find a jkind from a type declaration. Type declarations are special because the jkind may have been provided via [: jkind] syntax (which goes through @@ -419,49 +408,39 @@ val of_annotation_option_default : attributes, and [of_type_decl] needs to look in two different places on the [type_declaration] to account for these two alternatives. - Returns the jkind (at quality [Not_best]) and the user-written annotation. + Returns the jkind and the user-written annotation. Raises if a disallowed or unknown jkind is present. *) val of_type_decl : context:History.annotation_context_l -> - transl_type:(Parsetree.core_type -> Types.type_expr) -> Parsetree.type_declaration -> - (Types.jkind_l * Parsetree.jkind_annotation option) option + (jkind_l * Parsetree.jkind_annotation option) option (** Find a jkind from a type declaration in the same way as [of_type_decl], - defaulting to ~default. Returns a jkind at quality [Not_best]; call [mark_best] to - mark it as [Best]. + defaulting to ~default. Raises if a disallowed or unknown jkind is present. *) val of_type_decl_default : context:History.annotation_context_l -> - transl_type:(Parsetree.core_type -> Types.type_expr) -> - default:Types.jkind_l -> + default:jkind_l -> Parsetree.type_declaration -> - Types.jkind_l + jkind_l -(** Choose an appropriate jkind for a boxed record type *) -val for_boxed_record : Types.label_declaration list -> Types.jkind_l +(** Choose an appropriate jkind for a boxed record type, given whether + all of its fields are [void]. *) +val for_boxed_record : all_void:bool -> jkind_l -(** Choose an appropriate jkind for an unboxed record type. Uses - [jkind_of_first_type] only in the singleton case, where the jkind of the - unboxed record must match that of the single field. *) -val for_unboxed_record : - jkind_of_first_type:(unit -> Types.jkind_l) -> - jkind_of_type:(Types.type_expr -> Types.jkind_l) -> - Types.label_declaration list -> - Types.jkind_l - -(** Choose an appropriate jkind for a boxed variant type. *) -val for_boxed_variant : Types.constructor_declaration list -> Types.jkind_l +(** Choose an appropriate jkind for a boxed variant type, given whether + all of the fields of all of its constructors are [void]. *) +val for_boxed_variant : all_voids:bool -> jkind_l (** The jkind of an arrow type. *) -val for_arrow : Types.jkind_l +val for_arrow : jkind_l (** The jkind of an object type. *) -val for_object : Types.jkind_l +val for_object : jkind_l (******************************) (* elimination and defaulting *) @@ -470,7 +449,7 @@ module Desc : sig (** The description of a jkind, used as a return type from [get]. This description has no sort variables, but it might have [with]-types and thus needs the allowance machinery. *) - type 'd t = (Sort.Flat.t Layout.t, 'd) Types.layout_and_axes + type 'd t = (Sort.Flat.t Layout.t, 'd) Jkind_types.Layout_and_axes.t val get_const : 'd t -> 'd Const.t option @@ -478,64 +457,46 @@ module Desc : sig end (** Get a description of a jkind. *) -val get : 'd Types.jkind -> 'd Desc.t +val get : 'd t -> 'd Desc.t (** [get_layout_defaulting_to_value] extracts a constant layout, defaulting any sort variable to [value]. *) -val get_layout_defaulting_to_value : 'd Types.jkind -> Layout.Const.t +val get_layout_defaulting_to_value : 'd t -> Layout.Const.t (** [get_const] returns a [Const.t] if the layout has no sort variables, returning [None] otherwise *) -val get_const : 'd Types.jkind -> 'd Const.t option +val get_const : 'd t -> 'd Const.t option (** [default_to_value t] is [ignore (get_layout_defaulting_to_value t)] *) -val default_to_value : 'd Types.jkind -> unit +val default_to_value : 'd t -> unit (** [is_void t] is [Void = get_layout_defaulting_to_value t]. In particular, it will default the jkind to value if needed to make this false. *) -val is_void_defaulting : 'd Types.jkind -> bool +val is_void_defaulting : 'd t -> bool (* CR layouts v5: When we have proper support for void, we'll want to change these three functions to default to void - it's the most efficient thing when we have a choice. *) (** Returns the sort corresponding to the jkind. Call only on representable jkinds - raises on Any. *) -val sort_of_jkind : Types.jkind_l -> sort +val sort_of_jkind : jkind_l -> sort (** Gets the layout of a jkind; returns [None] if the layout is still unknown. Never does mutation. *) -val get_layout : 'd Types.jkind -> Layout.Const.t option - -(* CR reisenberg: do we need [extract_layout]? *) - -(** Gets the layout of a jkind, without looking through sort variables. *) -val extract_layout : 'd Types.jkind -> Sort.t Layout.t +val get_layout : 'd t -> Layout.Const.t option -(** Gets the maximum comonadic modes for types of this jkind. *) -val get_modal_upper_bounds : - jkind_of_type:(Types.type_expr -> Types.jkind_l option) -> - 'd Types.jkind -> - Mode.Alloc.Comonadic.Const.t +(* CR layouts v2.8: This will need to become significantly more involved with + [with]-types. *) -(** Gets the minimum monadic modes for types of this jkind. *) -val get_modal_lower_bounds : - jkind_of_type:(Types.type_expr -> Types.jkind_l option) -> - 'd Types.jkind -> - Mode.Alloc.Monadic.Const.t +(** Gets the maximum modes for types of this jkind. *) +val get_modal_upper_bounds : 'd t -> Mode.Alloc.Const.t (** Gets the maximum mode on the externality axis for types of this jkind. *) -val get_externality_upper_bound : - jkind_of_type:(Types.type_expr -> Types.jkind_l option) -> - 'd Types.jkind -> - Jkind_axis.Externality.t +val get_externality_upper_bound : 'd t -> Externality.t (** Computes a jkind that is the same as the input but with an updated maximum mode for the externality axis *) -val set_externality_upper_bound : - Types.jkind_r -> Jkind_axis.Externality.t -> Types.jkind_r - -(** Sets the layout in a jkind. *) -val set_layout : 'd Types.jkind -> Sort.t Layout.t -> 'd Types.jkind +val set_externality_upper_bound : jkind_r -> Externality.t -> jkind_r (** Extract out component jkinds from the product. Because there are no product jkinds, this is a bit of a lie: instead, this decomposes the layout but just @@ -543,44 +504,15 @@ val set_layout : 'd Types.jkind -> Sort.t Layout.t -> 'd Types.jkind Because it just reuses the mode information, the resulting jkinds are higher in the jkind lattice than they might need to be. *) -val decompose_product : 'd Types.jkind -> 'd Types.jkind list option +val decompose_product : 'd t -> 'd t list option (** Get an annotation (that a user might write) for this [t]. *) -val get_annotation : 'd Types.jkind -> Parsetree.jkind_annotation option - -(*********************************) -(* normalization *) - -type normalize_mode = - | Require_best - (** Normalize a jkind without losing any precision. That is, keep any with-bounds - if the kind of the type is not best (a stronger kind may be found). *) - | Ignore_best - (** Normalize a left jkind, conservatively rounding up. That is, if the kind of a - type is not best, use the not-best kind. The resulting jkind will have no - with-bounds. *) - -val normalize : - mode:normalize_mode -> - jkind_of_type:(Types.type_expr -> Types.jkind_l option) -> - Types.jkind_l -> - Types.jkind_l +val get_annotation : 'd t -> Parsetree.jkind_annotation option (*********************************) (* pretty printing *) -(** Call these before trying to print. *) -val set_outcometree_of_type_scheme : - (Types.type_expr -> Outcometree.out_type) -> unit - -val set_outcometree_of_modalities_new : - (Types.mutability -> - Parsetree.attributes -> - Mode.Modality.Value.Const.t -> - Outcometree.out_mode_new list) -> - unit - -val format : Format.formatter -> 'd Types.jkind -> unit +val format : Format.formatter -> 'd t -> unit (** Format the history of this jkind: what interactions it has had and why it is the jkind that it is. Might be a no-op: see [display_histories] @@ -588,7 +520,7 @@ val format : Format.formatter -> 'd Types.jkind -> unit The [intro] is something like "The jkind of t is". *) val format_history : - intro:(Format.formatter -> unit) -> Format.formatter -> 'd Types.jkind -> unit + intro:(Format.formatter -> unit) -> Format.formatter -> 'd t -> unit (** Provides the [Printtyp.path] formatter back up the dependency chain to this module. *) @@ -600,20 +532,24 @@ val set_printtyp_path : (Format.formatter -> Path.t -> unit) -> unit (** This checks for equality, and sets any variables to make two jkinds equal, if possible. e.g. [equate] on a var and [value] will set the variable to be [value] *) -val equate : Types.jkind_lr -> Types.jkind_lr -> bool +val equate : jkind_lr -> jkind_lr -> bool (** This checks for equality, but has the invariant that it can only be called when there is no need for unification; e.g. [equal] on a var and [value] will crash. CR layouts (v1.5): At the moment, this is actually the same as [equate]! *) -val equal : Types.jkind_lr -> Types.jkind_lr -> bool +val equal : jkind_lr -> jkind_lr -> bool (** Checks whether two jkinds have a non-empty intersection. Might mutate - sort variables. Works over any mix of l- and r-jkinds, because the only - way not to have an intersection is by looking at the layout: all axes - have a bottom element. *) -val has_intersection : 'd1 Types.jkind -> 'd2 Types.jkind -> bool + sort variables. *) +val has_intersection : jkind_r -> jkind_r -> bool + +(* CR layouts v2.8: This almost certainly has to get rewritten, as l-kinds do + not support meets. *) + +(** Like [has_intersection], but comparing two [l] jkinds. *) +val has_intersection_l_l : jkind_l -> jkind_l -> bool (** Finds the intersection of two jkinds, constraining sort variables to create one if needed, or returns a [Violation.t] if an intersection does @@ -623,100 +559,80 @@ val has_intersection : 'd1 Types.jkind -> 'd2 Types.jkind -> bool it should be thought of as modifying the first jkind to be the intersection of the two, not something that modifies the second jkind. *) val intersection_or_error : - type_equal:(Types.type_expr -> Types.type_expr -> bool) -> - jkind_of_type:(Types.type_expr -> Types.jkind_l option) -> reason:History.interact_reason -> - ('l1 * allowed) Types.jkind -> - ('l2 * allowed) Types.jkind -> - (('l1 * allowed) Types.jkind, Violation.t) Result.t + ('l1 * allowed) t -> + ('l2 * allowed) t -> + (('l1 * allowed) t, Violation.t) Result.t (** [sub t1 t2] says whether [t1] is a subjkind of [t2]. Might update either [t1] or [t2] to make their layouts equal.*) -val sub : - type_equal:(Types.type_expr -> Types.type_expr -> bool) -> - jkind_of_type:(Types.type_expr -> Types.jkind_l option) -> - Types.jkind_l -> - Types.jkind_r -> - bool +val sub : jkind_l -> jkind_r -> bool type sub_or_intersect = | Sub (** The first jkind is a subjkind of the second. *) +<<<<<<< janestreet/merlin-jst:5.2.0minus-6 | Disjoint of Sub_failure_reason.t Misc_stdlib.Nonempty_list.t (** The two jkinds have no common ground. *) | Has_intersection of Sub_failure_reason.t Misc_stdlib.Nonempty_list.t (** The first jkind is not a subjkind of the second, but the two jkinds have an intersection: try harder. *) +||||||| ocaml-flambda/flambda-backend:6a83bbad9dd6c86ea5019a84258b04c81aa34a38 + | Disjoint of Sub_failure_reason.t Misc.Nonempty_list.t + (** The two jkinds have no common ground. *) + | Has_intersection of Sub_failure_reason.t Misc.Nonempty_list.t + (** The first jkind is not a subjkind of the second, but the two jkinds have an + intersection: try harder. *) +======= + | Disjoint (** The two jkinds have no common ground. *) + | Has_intersection (** The two jkinds have an intersection: try harder. *) +>>>>>>> ocaml-flambda/flambda-backend:db3778f932fc0a2f9d71ba5f9dcf7c76fcc74a63 (** [sub_or_intersect t1 t2] does a subtype check, returning a [sub_or_intersect]; see comments there for more info. *) -val sub_or_intersect : - type_equal:(Types.type_expr -> Types.type_expr -> bool) -> - jkind_of_type:(Types.type_expr -> Types.jkind_l option) -> - (allowed * 'r) Types.jkind -> - ('l * allowed) Types.jkind -> - sub_or_intersect +val sub_or_intersect : (allowed * 'r) t -> ('l * allowed) t -> sub_or_intersect (** [sub_or_error t1 t2] does a subtype check, returning an appropriate [Violation.t] upon failure. *) -val sub_or_error : - type_equal:(Types.type_expr -> Types.type_expr -> bool) -> - jkind_of_type:(Types.type_expr -> Types.jkind_l option) -> - (allowed * 'r) Types.jkind -> - ('l * allowed) Types.jkind -> - (unit, Violation.t) result - -(** Like [sub], but compares a left jkind against another left jkind. - Pre-condition: the super jkind must be fully settled; no variables which - might be filled in later. -*) +val sub_or_error : jkind_l -> jkind_r -> (unit, Violation.t) result + +(** Like [sub], but returns the subjkind with an updated history. + Pre-condition: the super jkind must be fully settled; no variables + which might be filled in later. *) val sub_jkind_l : - type_equal:(Types.type_expr -> Types.type_expr -> bool) -> - jkind_of_type:(Types.type_expr -> Types.jkind_l option) -> ?allow_any_crossing:bool -> - Types.jkind_l -> - Types.jkind_l -> - (unit, Violation.t) result - -(** "round up" a [jkind_l] to a [jkind_r] such that the input is less than the - output. *) -val round_up : - jkind_of_type:(Types.type_expr -> Types.jkind_l option) -> - (allowed * 'r) Types.jkind -> - ('l * allowed) Types.jkind - -(** Map a function over types in [upper_bounds] *) -val map_type_expr : - (Types.type_expr -> Types.type_expr) -> - (allowed * 'r) Types.jkind -> - (allowed * 'r) Types.jkind + jkind_l -> + jkind_l -> + (jkind_l, Violation.t) result + +(* CR layouts v2.8: This almost certainly has to get rewritten, as l-kinds do + not support meets. *) + +(** Like [intersection_or_error], but between an [l] and an [l], as an [l]. *) +val intersect_l_l : + reason:History.interact_reason -> + jkind_l -> + jkind_l -> + (jkind_l, Violation.t) result (** Checks to see whether a jkind is the maximum jkind. Never does any mutation. *) -val is_max : ('l * allowed) Types.jkind -> bool +val is_max : ('l * allowed) t -> bool (** Checks to see whether a jkind has layout any. Never does any mutation. *) -val has_layout_any : ('l * allowed) Types.jkind -> bool +val has_layout_any : ('l * allowed) t -> bool (** Checks whether a jkind is [value]. This really should require a [jkind_lr], but it works on any [jkind], because it's used in printing and is somewhat unprincipled. *) -val is_value_for_printing : ignore_null:bool -> 'd Types.jkind -> bool +val is_value_for_printing : ignore_null:bool -> 'd t -> bool (*********************************) (* debugging *) module Debug_printers : sig - val t : - print_type_expr:(Format.formatter -> Types.type_expr -> unit) -> - Format.formatter -> - 'd Types.jkind -> - unit + val t : Format.formatter -> 'd t -> unit module Const : sig - val t : - print_type_expr:(Format.formatter -> Types.type_expr -> unit) -> - Format.formatter -> - 'd Const.t -> - unit + val t : Format.formatter -> 'd Const.t -> unit end end diff --git a/src/ocaml/typing/jkind_axis.ml b/src/ocaml/typing/jkind_axis.ml index 2d33d0148..a2c3dc527 100644 --- a/src/ocaml/typing/jkind_axis.ml +++ b/src/ocaml/typing/jkind_axis.ml @@ -4,7 +4,7 @@ (* *) (* Liam Stevenson, Jane Street, New York *) (* *) -(* Copyright 2024 Jane Street Group LLC *) +(* Copyright 2021 Jane Street Group LLC *) (* *) (* All rights reserved. This file is distributed under the terms of *) (* the GNU Lesser General Public License version 2.1, with the *) @@ -12,6 +12,7 @@ (* *) (**************************************************************************) +<<<<<<< janestreet/merlin-jst:5.2.0minus-6 (* Merlin-specific: change some module paths to match the compiler *) module Misc = struct module Stdlib = Misc_stdlib @@ -20,10 +21,41 @@ end module type Axis_ops = sig include Mode_intf.Lattice +||||||| ocaml-flambda/flambda-backend:6a83bbad9dd6c86ea5019a84258b04c81aa34a38 +module type Axis_ops = sig + include Mode_intf.Lattice +======= +module type Axis_s = sig + type t +>>>>>>> ocaml-flambda/flambda-backend:db3778f932fc0a2f9d71ba5f9dcf7c76fcc74a63 - val less_or_equal : t -> t -> Misc.Le_result.t + val max : t + + val min : t val equal : t -> t -> bool + + val less_or_equal : t -> t -> Misc.Le_result.t + + val le : t -> t -> bool + + val meet : t -> t -> t + + val join : t -> t -> t + + val print : Format.formatter -> t -> unit +end + +module Of_lattice (L : Mode_intf.Lattice) = struct + include L + + let less_or_equal a b : Misc.Le_result.t = + match le a b, le b a with + | true, true -> Equal + | true, false -> Less + | false, _ -> Not_le + + let equal a b = Misc.Le_result.is_equal (less_or_equal a b) end module Externality = struct @@ -36,8 +68,6 @@ module Externality = struct let min = External - let legacy = Internal - let equal e1 e2 = match e1, e2 with | External, External -> true @@ -67,10 +97,10 @@ module Externality = struct let join t1 t2 = match t1, t2 with - | Internal, (Internal | External64 | External) - | (External64 | External), Internal -> + | Internal, (External | External64 | Internal) + | (External | External64), Internal -> Internal - | External64, (External64 | External) | External, External64 -> External64 + | External64, (External | External64) | External, External64 -> External64 | External, External -> External let print ppf = function @@ -88,8 +118,6 @@ module Nullability = struct let min = Non_null - let legacy = Non_null - let equal n1 n2 = match n1, n2 with | Non_null, Non_null -> true @@ -112,7 +140,7 @@ module Nullability = struct let join n1 n2 = match n1, n2 with - | Maybe_null, (Maybe_null | Non_null) | Non_null, Maybe_null -> Maybe_null + | Maybe_null, (Non_null | Maybe_null) | Non_null, Maybe_null -> Maybe_null | Non_null, Non_null -> Non_null let print ppf = function @@ -121,6 +149,16 @@ module Nullability = struct end module Axis = struct + module Modal = struct + type 'a t = + | Locality : Mode.Locality.Const.t t + | Linearity : Mode.Linearity.Const.t t + | Uniqueness : Mode.Uniqueness.Const.t t + | Portability : Mode.Portability.Const.t t + | Contention : Mode.Contention.Const.t t + | Yielding : Mode.Yielding.Const.t t + end + module Nonmodal = struct type 'a t = | Externality : Externality.t t @@ -128,10 +166,10 @@ module Axis = struct end type 'a t = - | Modal : ('m, 'a, 'd) Mode.Alloc.axis -> 'a t - | Nonmodal : 'a Nonmodal.t -> 'a t + | Modal of 'a Modal.t + | Nonmodal of 'a Nonmodal.t - type packed = Pack : 'a t -> packed [@@unboxed] + type packed = Pack : 'a t -> packed module Accent_lattice (M : Mode_intf.Lattice) = struct (* A functor to add some convenient functions to modal axes *) @@ -146,322 +184,92 @@ module Axis = struct let equal a b = Misc.Le_result.is_equal (less_or_equal a b) end - let get (type a) : a t -> (module Axis_ops with type t = a) = function - | Modal axis -> - (module Accent_lattice ((val Mode.Alloc.lattice_of_axis axis))) - | Nonmodal Externality -> (module Externality) - | Nonmodal Nullability -> (module Nullability) + let get (type a) : a t -> (module Axis_s with type t = a) = function + | Modal Locality -> + (module Accent_lattice (Mode.Locality.Const) : Axis_s with type t = a) + | Modal Linearity -> + (module Accent_lattice (Mode.Linearity.Const) : Axis_s with type t = a) + | Modal Uniqueness -> + (module Accent_lattice (Mode.Uniqueness.Const) : Axis_s with type t = a) + | Modal Portability -> + (module Accent_lattice (Mode.Portability.Const) : Axis_s with type t = a) + | Modal Contention -> + (module Accent_lattice (Mode.Contention.Const) : Axis_s with type t = a) + | Modal Yielding -> + (module Accent_lattice (Mode.Yielding.Const) : Axis_s with type t = a) + | Nonmodal Externality -> (module Externality : Axis_s with type t = a) + | Nonmodal Nullability -> (module Nullability : Axis_s with type t = a) let all = - [ Pack (Modal (Comonadic Areality)); - Pack (Modal (Monadic Uniqueness)); - Pack (Modal (Comonadic Linearity)); - Pack (Modal (Monadic Contention)); - Pack (Modal (Comonadic Portability)); - Pack (Modal (Comonadic Yielding)); + [ Pack (Modal Locality); + Pack (Modal Linearity); + Pack (Modal Uniqueness); + Pack (Modal Portability); + Pack (Modal Contention); + Pack (Modal Yielding); Pack (Nonmodal Externality); Pack (Nonmodal Nullability) ] let name (type a) : a t -> string = function - | Modal axis -> Format.asprintf "%a" Mode.Alloc.print_axis axis + | Modal Locality -> "locality" + | Modal Linearity -> "linearity" + | Modal Uniqueness -> "uniqueness" + | Modal Portability -> "portability" + | Modal Contention -> "contention" + | Modal Yielding -> "yielding" | Nonmodal Externality -> "externality" | Nonmodal Nullability -> "nullability" - - let is_modal (type a) : a t -> bool = function - | Modal (Comonadic Areality) -> true - | Modal (Comonadic Linearity) -> true - | Modal (Monadic Uniqueness) -> true - | Modal (Comonadic Portability) -> true - | Modal (Monadic Contention) -> true - | Modal (Comonadic Yielding) -> true - | Nonmodal Externality -> true - | Nonmodal Nullability -> false end -module Axis_collection = struct - module Indexed_gen (T : Misc.T2) = struct - type 'a t_poly = - { locality : (Mode.Locality.Const.t, 'a) T.t; - linearity : (Mode.Linearity.Const.t, 'a) T.t; - uniqueness : (Mode.Uniqueness.Const.t, 'a) T.t; - portability : (Mode.Portability.Const.t, 'a) T.t; - contention : (Mode.Contention.Const.t, 'a) T.t; - yielding : (Mode.Yielding.Const.t, 'a) T.t; - externality : (Externality.t, 'a) T.t; - nullability : (Nullability.t, 'a) T.t - } - - type 'a t = 'a t_poly - - let get (type a) ~(axis : a Axis.t) (t : 'b t) : (a, 'b) T.t = - match axis with - | Modal (Comonadic Areality) -> t.locality - | Modal (Comonadic Linearity) -> t.linearity - | Modal (Monadic Uniqueness) -> t.uniqueness - | Modal (Comonadic Portability) -> t.portability - | Modal (Monadic Contention) -> t.contention - | Modal (Comonadic Yielding) -> t.yielding - | Nonmodal Externality -> t.externality - | Nonmodal Nullability -> t.nullability - - let set (type a) ~(axis : a Axis.t) (t : 'b t) (value : (a, 'b) T.t) = - match axis with - | Modal (Comonadic Areality) -> { t with locality = value } - | Modal (Comonadic Linearity) -> { t with linearity = value } - | Modal (Monadic Uniqueness) -> { t with uniqueness = value } - | Modal (Comonadic Portability) -> { t with portability = value } - | Modal (Monadic Contention) -> { t with contention = value } - | Modal (Comonadic Yielding) -> { t with yielding = value } - | Nonmodal Externality -> { t with externality = value } - | Nonmodal Nullability -> { t with nullability = value } - - (* Since we don't have polymorphic parameters, use a record to pass the - polymorphic function *) - module Create = struct - module Monadic (M : Misc.Stdlib.Monad.S) = struct - type 'a f = { f : 'axis. axis:'axis Axis.t -> ('axis, 'a) T.t M.t } - [@@unboxed] - - let[@inline] f { f } = - let open M.Syntax in - let* locality = f ~axis:Axis.(Modal (Comonadic Areality)) in - let* uniqueness = f ~axis:Axis.(Modal (Monadic Uniqueness)) in - let* linearity = f ~axis:Axis.(Modal (Comonadic Linearity)) in - let* contention = f ~axis:Axis.(Modal (Monadic Contention)) in - let* portability = f ~axis:Axis.(Modal (Comonadic Portability)) in - let* yielding = f ~axis:Axis.(Modal (Comonadic Yielding)) in - let* externality = f ~axis:Axis.(Nonmodal Externality) in - let* nullability = f ~axis:Axis.(Nonmodal Nullability) in - M.return - { locality; - uniqueness; - linearity; - contention; - portability; - yielding; - externality; - nullability - } - end - [@@inline] - - module Monadic_identity = Monadic (Misc.Stdlib.Monad.Identity) - - type 'a f = 'a Monadic_identity.f - - let[@inline] f f = Monadic_identity.f f - end - - module Map = struct - module Monadic (M : Misc.Stdlib.Monad.S) = struct - type ('a, 'b) f = - { f : - 'axis. axis:'axis Axis.t -> ('axis, 'a) T.t -> ('axis, 'b) T.t M.t - } - [@@unboxed] - - module Create = Create.Monadic (M) - - let[@inline] f { f } bounds = - Create.f { f = (fun ~axis -> f ~axis (get ~axis bounds)) } - end - [@@inline] - - module Monadic_identity = Monadic (Misc.Stdlib.Monad.Identity) - - type ('a, 'b) f = ('a, 'b) Monadic_identity.f - - let[@inline] f f bounds = Monadic_identity.f f bounds - end - - module Iter = struct - type 'a f = { f : 'axis. axis:'axis Axis.t -> ('axis, 'a) T.t -> unit } - [@@unboxed] - - let[@inline] f { f } - { locality; - linearity; - uniqueness; - portability; - contention; - yielding; - externality; - nullability - } = - f ~axis:Axis.(Modal (Comonadic Areality)) locality; - f ~axis:Axis.(Modal (Monadic Uniqueness)) uniqueness; - f ~axis:Axis.(Modal (Comonadic Linearity)) linearity; - f ~axis:Axis.(Modal (Monadic Contention)) contention; - f ~axis:Axis.(Modal (Comonadic Portability)) portability; - f ~axis:Axis.(Modal (Comonadic Yielding)) yielding; - f ~axis:Axis.(Nonmodal Externality) externality; - f ~axis:Axis.(Nonmodal Nullability) nullability - end - - module Map2 = struct - module Monadic (M : Misc.Stdlib.Monad.S) = struct - type ('a, 'b, 'c) f = - { f : - 'axis. - axis:'axis Axis.t -> - ('axis, 'a) T.t -> - ('axis, 'b) T.t -> - ('axis, 'c) T.t M.t - } - [@@unboxed] - - module Create = Create.Monadic (M) - - let[@inline] f { f } bounds1 bounds2 = - Create.f - { f = (fun ~axis -> f ~axis (get ~axis bounds1) (get ~axis bounds2)) - } - end - [@@inline] - - module Monadic_identity = Monadic (Misc.Stdlib.Monad.Identity) - - type ('a, 'b, 'c) f = ('a, 'b, 'c) Monadic_identity.f - - let[@inline] f f bounds1 bounds2 = Monadic_identity.f f bounds1 bounds2 - end - - module Fold = struct - type ('a, 'r) f = - { f : 'axis. axis:'axis Axis.t -> ('axis, 'a) T.t -> 'r } - [@@unboxed] - - let[@inline] f { f } - { locality; - linearity; - uniqueness; - portability; - contention; - yielding; - externality; - nullability - } ~combine = - combine (f ~axis:Axis.(Modal (Comonadic Areality)) locality) - @@ combine (f ~axis:Axis.(Modal (Monadic Uniqueness)) uniqueness) - @@ combine (f ~axis:Axis.(Modal (Comonadic Linearity)) linearity) - @@ combine (f ~axis:Axis.(Modal (Monadic Contention)) contention) - @@ combine (f ~axis:Axis.(Modal (Comonadic Portability)) portability) - @@ combine (f ~axis:Axis.(Modal (Comonadic Yielding)) yielding) - @@ combine (f ~axis:Axis.(Nonmodal Externality) externality) - @@ f ~axis:Axis.(Nonmodal Nullability) nullability - end - - module Fold2 = struct - type ('a, 'b, 'r) f = - { f : - 'axis. axis:'axis Axis.t -> ('axis, 'a) T.t -> ('axis, 'b) T.t -> 'r - } - [@@unboxed] - - let[@inline] f { f } - { locality = loc1; - linearity = lin1; - uniqueness = uni1; - portability = por1; - contention = con1; - yielding = yie1; - externality = ext1; - nullability = nul1 - } - { locality = loc2; - linearity = lin2; - uniqueness = uni2; - portability = por2; - contention = con2; - yielding = yie2; - externality = ext2; - nullability = nul2 - } ~combine = - combine (f ~axis:Axis.(Modal (Comonadic Areality)) loc1 loc2) - @@ combine (f ~axis:Axis.(Modal (Monadic Uniqueness)) uni1 uni2) - @@ combine (f ~axis:Axis.(Modal (Comonadic Linearity)) lin1 lin2) - @@ combine (f ~axis:Axis.(Modal (Monadic Contention)) con1 con2) - @@ combine (f ~axis:Axis.(Modal (Comonadic Portability)) por1 por2) - @@ combine (f ~axis:Axis.(Modal (Comonadic Yielding)) yie1 yie2) - @@ combine (f ~axis:Axis.(Nonmodal Externality) ext1 ext2) - @@ f ~axis:Axis.(Nonmodal Nullability) nul1 nul2 - end - end - - module Indexed (T : Misc.T1) = struct - include Indexed_gen (struct - type ('a, 'b) t = 'a T.t - end) - - type nonrec t = unit t +(* Sadly this needs to be functorized since we don't have higher-kinded types *) +module Axis_collection (T : Misc.T1) = struct + type t = + { locality : Mode.Locality.Const.t T.t; + linearity : Mode.Linearity.Const.t T.t; + uniqueness : Mode.Uniqueness.Const.t T.t; + portability : Mode.Portability.Const.t T.t; + contention : Mode.Contention.Const.t T.t; + yielding : Mode.Yielding.Const.t T.t; + externality : Externality.t T.t; + nullability : Nullability.t T.t + } + + let get (type a) ~(axis : a Axis.t) values : a T.t = + match axis with + | Modal Locality -> values.locality + | Modal Linearity -> values.linearity + | Modal Uniqueness -> values.uniqueness + | Modal Portability -> values.portability + | Modal Contention -> values.contention + | Modal Yielding -> values.yielding + | Nonmodal Externality -> values.externality + | Nonmodal Nullability -> values.nullability + + let set (type a) ~(axis : a Axis.t) values (value : a T.t) = + match axis with + | Modal Locality -> { values with locality = value } + | Modal Linearity -> { values with linearity = value } + | Modal Uniqueness -> { values with uniqueness = value } + | Modal Portability -> { values with portability = value } + | Modal Contention -> { values with contention = value } + | Modal Yielding -> { values with yielding = value } + | Nonmodal Externality -> { values with externality = value } + | Nonmodal Nullability -> { values with nullability = value } + + (* Since we don't have polymorphic parameters, use a record to pass the polymorphic + function *) + module Create_f = struct + type t = { f : 'a. axis:'a Axis.t -> 'a T.t } end - module Identity = Indexed (Misc.Stdlib.Monad.Identity) - - include Indexed_gen (struct - type ('a, 'b) t = 'b - end) - - let create ~f = Create.f { f = (fun ~axis -> f ~axis:(Axis.Pack axis)) } - - let map ~f t = Map.f { f = (fun ~axis:_ x -> f x) } t - - let mapi ~f t = Map.f { f = (fun ~axis x -> f ~axis:(Axis.Pack axis) x) } t - - let fold ~f ~combine t = - Fold.f { f = (fun ~axis acc -> f ~axis:(Axis.Pack axis) acc) } t ~combine -end - -module Axis_set = struct - (* each axis is true or false to indicate membership *) - type t = bool Axis_collection.t - - (* TODO: this could be represented with a uint8 since there's only 7 possible members *) - - let empty = Axis_collection.create ~f:(fun ~axis:_ -> false) - - let add t axis = Axis_collection.set ~axis t true - - let singleton axis = add empty axis - - let remove t axis = Axis_collection.set ~axis t false - - let mem t axis = Axis_collection.get ~axis t - - let union t1 t2 = - Axis_collection.create ~f:(fun ~axis:(Pack axis) -> - Axis_collection.get ~axis t1 || Axis_collection.get ~axis t2) - - let intersection t1 t2 = - Axis_collection.create ~f:(fun ~axis:(Pack axis) -> - Axis_collection.get ~axis t1 && Axis_collection.get ~axis t2) - - let diff t1 t2 = - Axis_collection.create ~f:(fun ~axis:(Pack axis) -> - Axis_collection.get ~axis t1 && not (Axis_collection.get ~axis t2)) - - let is_subset t1 t2 = - Axis_collection.fold - ~f:(fun ~axis:(Pack axis) t1_on_axis -> - let t2_on_axis = Axis_collection.get ~axis t2 in - (not t1_on_axis) || t2_on_axis) - ~combine:( && ) t1 - - let is_empty t = is_subset t empty - - let complement t = Axis_collection.map ~f:not t - - let to_list t = - Axis_collection.fold - ~f:(fun ~axis t_on_axis -> - match t_on_axis with true -> [axis] | false -> []) - ~combine:( @ ) t - - let create = Axis_collection.create - - let print ppf t = - Format.pp_print_list - ~pp_sep:(fun ppf () -> Format.fprintf ppf ";@ ") - (fun ppf (Axis.Pack axis) -> Format.fprintf ppf "%s" (Axis.name axis)) - ppf (to_list t) + let create ({ f } : Create_f.t) = + { locality = f ~axis:Axis.(Modal Locality); + linearity = f ~axis:Axis.(Modal Linearity); + uniqueness = f ~axis:Axis.(Modal Uniqueness); + portability = f ~axis:Axis.(Modal Portability); + contention = f ~axis:Axis.(Modal Contention); + yielding = f ~axis:Axis.(Modal Yielding); + externality = f ~axis:Axis.(Nonmodal Externality); + nullability = f ~axis:Axis.(Nonmodal Nullability) + } end diff --git a/src/ocaml/typing/jkind_axis.mli b/src/ocaml/typing/jkind_axis.mli index 6b3205953..7bd3ee0de 100644 --- a/src/ocaml/typing/jkind_axis.mli +++ b/src/ocaml/typing/jkind_axis.mli @@ -4,7 +4,7 @@ (* *) (* Liam Stevenson, Jane Street, New York *) (* *) -(* Copyright 2024 Jane Street Group LLC *) +(* Copyright 2021 Jane Street Group LLC *) (* *) (* All rights reserved. This file is distributed under the terms of *) (* the GNU Lesser General Public License version 2.1, with the *) @@ -12,15 +12,36 @@ (* *) (**************************************************************************) -(** Re-export *) -module type Axis_ops = sig - include Mode_intf.Lattice +(** The common interface for jkind axes *) +module type Axis_s = sig + type t +<<<<<<< janestreet/merlin-jst:5.2.0minus-6 val less_or_equal : t -> t -> Misc_stdlib.Le_result.t +||||||| ocaml-flambda/flambda-backend:6a83bbad9dd6c86ea5019a84258b04c81aa34a38 + val less_or_equal : t -> t -> Misc.Le_result.t +======= + val max : t + + val min : t +>>>>>>> ocaml-flambda/flambda-backend:db3778f932fc0a2f9d71ba5f9dcf7c76fcc74a63 val equal : t -> t -> bool + + val less_or_equal : t -> t -> Misc.Le_result.t + + val le : t -> t -> bool + + val meet : t -> t -> t + + val join : t -> t -> t + + val print : Format.formatter -> t -> unit end +(** Adapt a [Lattice] to be an [Axis_s] *) +module Of_lattice (L : Mode_intf.Lattice) : Axis_s with type t = L.t + (** The jkind axis of Externality *) module Externality : sig type t = @@ -28,7 +49,7 @@ module Externality : sig | External64 | Internal - include Axis_ops with type t := t + include Axis_s with type t := t end (** The jkind axis of nullability *) @@ -37,10 +58,21 @@ module Nullability : sig | Non_null | Maybe_null - include Axis_ops with type t := t + include Axis_s with type t := t end module Axis : sig + (* CR zqian: remove this and use [Mode.Alloc.axis] instead *) + module Modal : sig + type 'a t = + | Locality : Mode.Locality.Const.t t + | Linearity : Mode.Linearity.Const.t t + | Uniqueness : Mode.Uniqueness.Const.t t + | Portability : Mode.Portability.Const.t t + | Contention : Mode.Contention.Const.t t + | Yielding : Mode.Yielding.Const.t t + end + module Nonmodal : sig type 'a t = | Externality : Externality.t t @@ -49,25 +81,22 @@ module Axis : sig (** Represents an axis of a jkind *) type 'a t = - | Modal : ('m, 'a, 'd) Mode.Alloc.axis -> 'a t - | Nonmodal : 'a Nonmodal.t -> 'a t + | Modal of 'a Modal.t + | Nonmodal of 'a Nonmodal.t - type packed = Pack : 'a t -> packed [@@unboxed] + type packed = Pack : 'a t -> packed (* CR zqian: push ['a t] into the module to avoid first-class module. *) (** Given a jkind axis, get its interface *) - val get : 'a t -> (module Axis_ops with type t = 'a) + val get : 'a t -> (module Axis_s with type t = 'a) val all : packed list val name : _ t -> string - - (** Is this a modal axis? Includes externality, because that will one - day be modal (it is a deep property). *) - val is_modal : _ t -> bool end +<<<<<<< janestreet/merlin-jst:5.2.0minus-6 (** A collection with one item for each jkind axis *) module Axis_collection : sig module type S_gen := sig @@ -186,8 +215,151 @@ module Axis_collection : sig include S_gen type t = unit t_poly +||||||| ocaml-flambda/flambda-backend:6a83bbad9dd6c86ea5019a84258b04c81aa34a38 +(** A collection with one item for each jkind axis *) +module Axis_collection : sig + module type S_gen := sig + type ('a, 'b) u + + (* This is t_poly instead of t because in some instantiations of this signature, u + ignores its second parameter. In order to avoid needed to apply a useless type + parameter for those instantiations, we define [type t = unit t_poly] in them. In + instantiations where the polymorphism is actually used, we define + [type 'a t = 'a t_poly] *) + type 'a t_poly = + { locality : (Mode.Locality.Const.t, 'a) u; + linearity : (Mode.Linearity.Const.t, 'a) u; + uniqueness : (Mode.Uniqueness.Const.t, 'a) u; + portability : (Mode.Portability.Const.t, 'a) u; + contention : (Mode.Contention.Const.t, 'a) u; + yielding : (Mode.Yielding.Const.t, 'a) u; + externality : (Externality.t, 'a) u; + nullability : (Nullability.t, 'a) u + } + + val get : axis:'a Axis.t -> 'b t_poly -> ('a, 'b) u + + val set : axis:'a Axis.t -> 'b t_poly -> ('a, 'b) u -> 'b t_poly + + (** Create an axis collection by applying the function on each axis *) + module Create : sig + module Monadic (M : Misc.Stdlib.Monad.S) : sig + type 'a f = { f : 'axis. axis:'axis Axis.t -> ('axis, 'a) u M.t } + [@@unboxed] + + val f : 'a f -> 'a t_poly M.t + end + + (** This record type is used to pass a polymorphic function to [create] *) + type 'a f = 'a Monadic(Misc.Stdlib.Monad.Identity).f + + val f : 'a f -> 'a t_poly + end + + (** Map an operation over all the bounds *) + module Map : sig + module Monadic (M : Misc.Stdlib.Monad.S) : sig + type ('a, 'b) f = + { f : 'axis. axis:'axis Axis.t -> ('axis, 'a) u -> ('axis, 'b) u M.t } + [@@unboxed] + + val f : ('a, 'b) f -> 'a t_poly -> 'b t_poly M.t + end + + type ('a, 'b) f = ('a, 'b) Monadic(Misc.Stdlib.Monad.Identity).f + + val f : ('a, 'b) f -> 'a t_poly -> 'b t_poly + end + + module Iter : sig + type 'a f = { f : 'axis. axis:'axis Axis.t -> ('axis, 'a) u -> unit } + [@@unboxed] + + val f : 'a f -> 'a t_poly -> unit + end + + (** Map an operation over two sets of bounds *) + module Map2 : sig + module Monadic (M : Misc.Stdlib.Monad.S) : sig + type ('a, 'b, 'c) f = + { f : + 'axis. + axis:'axis Axis.t -> + ('axis, 'a) u -> + ('axis, 'b) u -> + ('axis, 'c) u M.t + } + [@@unboxed] + + val f : ('a, 'b, 'c) f -> 'a t_poly -> 'b t_poly -> 'c t_poly M.t + end + + type ('a, 'b, 'c) f = ('a, 'b, 'c) Monadic(Misc.Stdlib.Monad.Identity).f + + val f : ('a, 'b, 'c) f -> 'a t_poly -> 'b t_poly -> 'c t_poly + end + + (** Fold an operation over the bounds to a summary value *) + module Fold : sig + type ('a, 'r) f = { f : 'axis. axis:'axis Axis.t -> ('axis, 'a) u -> 'r } + [@@unboxed] + + (** [combine] should be commutative and associative. *) + val f : ('a, 'r) f -> 'a t_poly -> combine:('r -> 'r -> 'r) -> 'r + end + + (** Fold an operation over two sets of bounds to a summary value *) + module Fold2 : sig + type ('a, 'b, 'r) f = + { f : 'axis. axis:'axis Axis.t -> ('axis, 'a) u -> ('axis, 'b) u -> 'r } + [@@unboxed] + + (** [combine] should be commutative and associative. *) + val f : + ('a, 'b, 'r) f -> + 'a t_poly -> + 'b t_poly -> + combine:('r -> 'r -> 'r) -> + 'r + end + end + + module type S_poly := sig + include S_gen + + type 'a t = 'a t_poly + end + + module type S_mono := sig + include S_gen + + type t = unit t_poly +======= +(** A collection with one item for each jkind axis. + [T] parametizes what element is being held for each axis. *) +module Axis_collection (T : Misc.T1) : sig + type t = + { locality : Mode.Locality.Const.t T.t; + linearity : Mode.Linearity.Const.t T.t; + uniqueness : Mode.Uniqueness.Const.t T.t; + portability : Mode.Portability.Const.t T.t; + contention : Mode.Contention.Const.t T.t; + yielding : Mode.Yielding.Const.t T.t; + externality : Externality.t T.t; + nullability : Nullability.t T.t + } + + val get : axis:'a Axis.t -> t -> 'a T.t + + val set : axis:'a Axis.t -> t -> 'a T.t -> t + + module Create_f : sig + (** This record type is used to pass a polymorphic function to [create] *) + type t = { f : 'a. axis:'a Axis.t -> 'a T.t } +>>>>>>> ocaml-flambda/flambda-backend:db3778f932fc0a2f9d71ba5f9dcf7c76fcc74a63 end +<<<<<<< janestreet/merlin-jst:5.2.0minus-6 module Indexed_gen (T : Misc_stdlib.T2) : S_poly with type ('a, 'b) u := ('a, 'b) T.t module Indexed (T : Misc_stdlib.T1) : S_mono with type ('a, 'b) u := 'a T.t @@ -241,4 +413,62 @@ module Axis_set : sig val create : f:(axis:Axis.packed -> bool) -> t val print : Format.formatter -> t -> unit +||||||| ocaml-flambda/flambda-backend:6a83bbad9dd6c86ea5019a84258b04c81aa34a38 + module Indexed_gen (T : Misc.T2) : S_poly with type ('a, 'b) u := ('a, 'b) T.t + + module Indexed (T : Misc.T1) : S_mono with type ('a, 'b) u := 'a T.t + + module Identity : S_mono with type ('a, 'b) u := 'a + + include S_poly with type ('a, 'b) u := 'b + + val create : f:(axis:Axis.packed -> 'a) -> 'a t + + val get : axis:'ax Axis.t -> 'a t -> 'a + + val set : axis:'ax Axis.t -> 'a t -> 'a -> 'a t + + val mapi : f:(axis:Axis.packed -> 'a -> 'a) -> 'a t -> 'a t + + val map : f:('a -> 'a) -> 'a t -> 'a t + + val fold : + f:(axis:Axis.packed -> 'a -> 'r) -> combine:('r -> 'r -> 'r) -> 'a t -> 'r +end + +module Axis_set : sig + type t + + val empty : t + + val singleton : _ Axis.t -> t + + val is_empty : t -> bool + + val add : t -> _ Axis.t -> t + + val remove : t -> _ Axis.t -> t + + val mem : t -> _ Axis.t -> bool + + val union : t -> t -> t + + val intersection : t -> t -> t + + val diff : t -> t -> t + + val is_subset : t -> t -> bool + + val complement : t -> t + + val to_list : t -> Axis.packed list + + (** Create a [t], specify for each axis whether it should be included *) + val create : f:(axis:Axis.packed -> bool) -> t + + val print : Format.formatter -> t -> unit +======= + (** Create an axis collection by applying the function on each axis *) + val create : Create_f.t -> t +>>>>>>> ocaml-flambda/flambda-backend:db3778f932fc0a2f9d71ba5f9dcf7c76fcc74a63 end diff --git a/src/ocaml/typing/jkind_types.ml b/src/ocaml/typing/jkind_types.ml index 9a64e8d70..8b75eca28 100644 --- a/src/ocaml/typing/jkind_types.ml +++ b/src/ocaml/typing/jkind_types.ml @@ -528,3 +528,113 @@ module Layout = struct | Product of t list end end + +module Modes = Jkind_axis.Of_lattice (Mode.Alloc.Const) + +module Layout_and_axes = struct + open Jkind_axis + + type ('layout, +'d) t = + { layout : 'layout; + modes_upper_bounds : Mode.Alloc.Const.t; + externality_upper_bound : Externality.t; + nullability_upper_bound : Nullability.t + } + constraint 'd = 'l * 'r + + let map f t = { t with layout = f t.layout } + + let map_option f t = + match f t.layout with None -> None | Some layout -> Some { t with layout } + + let equal eq_layout + { layout = lay1; + modes_upper_bounds = modes1; + externality_upper_bound = ext1; + nullability_upper_bound = null1 + } + { layout = lay2; + modes_upper_bounds = modes2; + externality_upper_bound = ext2; + nullability_upper_bound = null2 + } = + eq_layout lay1 lay2 && Modes.equal modes1 modes2 + && Externality.equal ext1 ext2 + && Nullability.equal null1 null2 + + let equal_after_all_inference_is_done x y z = equal x y z + + (* Once we have more interesting mode stuff, this won't be trivial. *) + let try_allow_l ({ layout = _; _ } as t) = Some t + + (* Once we have more interesting mode stuff, this won't be trivial. *) + let try_allow_r ({ layout = _; _ } as t) = Some t + + let sub ?(allow_any_crossing = false) sub_layout + { layout = lay1; + modes_upper_bounds = modes1; + externality_upper_bound = ext1; + nullability_upper_bound = null1 + } + { layout = lay2; + modes_upper_bounds = modes2; + externality_upper_bound = ext2; + nullability_upper_bound = null2 + } = + let modes : Misc.Le_result.t = + if allow_any_crossing then Equal else Modes.less_or_equal modes1 modes2 + in + Misc.Le_result.combine_list + [ sub_layout lay1 lay2; + modes; + Externality.less_or_equal ext1 ext2; + Nullability.less_or_equal null1 null2 ] + [@@inline] + + let format format_layout ppf + { layout; + modes_upper_bounds; + externality_upper_bound; + nullability_upper_bound + } = + Format.fprintf ppf + "{ layout = %a;@ modes_upper_bounds = %a;@ externality_upper_bound = \ + %a;@ nullability_upper_bound = %a }" + format_layout layout Mode.Alloc.Const.print modes_upper_bounds + Externality.print externality_upper_bound Nullability.print + nullability_upper_bound +end + +module Jkind_desc = struct + type ('type_expr, 'd) t = (Sort.t Layout.t, 'd) Layout_and_axes.t + + type 'type_expr packed = Pack : ('type_expr, 'd) t -> 'type_expr packed + [@@unboxed] +end + +(* A history of conditions placed on a jkind. + + INVARIANT: at most one sort variable appears in this history. + This is a natural consequence of producing this history by comparing + jkinds. +*) +type 'type_expr history = + | Interact of + { reason : Jkind_intf.History.interact_reason; + jkind1 : 'type_expr Jkind_desc.packed; + history1 : 'type_expr history; + jkind2 : 'type_expr Jkind_desc.packed; + history2 : 'type_expr history + } + | Creation of Jkind_intf.History.creation_reason + +type ('type_expr, 'd) t = + { jkind : ('type_expr, 'd) Jkind_desc.t; + annotation : Parsetree.jkind_annotation option; + history : 'type_expr history; + has_warned : bool + } + +module Const = struct + type ('type_expr, +'d) t = (Layout.Const.t, 'd) Layout_and_axes.t +end diff --git a/src/ocaml/typing/jkind_types.mli b/src/ocaml/typing/jkind_types.mli index 0103bd4c7..54684d45e 100644 --- a/src/ocaml/typing/jkind_types.mli +++ b/src/ocaml/typing/jkind_types.mli @@ -16,16 +16,16 @@ types in this file) rather than using this file directly, unless you are in [Types] or [Primitive]. *) -(* This module defines types used in the module Jkind. This is to avoid a mutual - dependencies between jkind.ml(i) and types.ml(i) and bewteen jkind.ml(i) and - primitive.ml(i). Polymorphic versions of types are defined here, with type - parameters that are meant to be filled by types defined in - types.ml(i). jkind.ml(i) redefines the types from this file types.ml with the - type variables instantiated. types.ml also redefines the types from this file - with the type variables instantiated, but only for internal - use. primitive.ml(i) uses the type [Jkind.Const.t], and types.ml(i) depends - on primitive.ml(i), so [Jkind.Const.t] is defined here and primitive.ml(i) - also uses this module. +(* This module defines types used in the module Jkind. This is to avoid + a mutual dependencies between jkind.ml(i) and types.ml(i) and bewteen + jkind.ml(i) and primitive.ml(i). Polymorphic versions of types are defined + here, with type parameters that are meant to be filled by types defined in + types.ml(i). jkind.ml(i) redefines the types from this file types.ml + with the type variables instantiated. types.ml also redefines the types + from this file with the type variables instantiated, but only for internal + use. primitive.ml(i) uses the type [Jkind.const], and types.ml(i) depends on + prmitive.ml(i), so [Jkind.const] is defined here and primitive.ml(i) also + uses this module. Dependency chain without Jkind_types: _____________________ @@ -105,3 +105,81 @@ module Layout : sig | Product of t list end end + +module Layout_and_axes : sig + open Allowance + + (* We need the variance annotation here to allow [any_dummy_jkind] to be + polymorphic in its allowances. Otherwise the value restriction bites. + Sigh. *) + type ('layout, +'d) t = + { layout : 'layout; + modes_upper_bounds : Mode.Alloc.Const.t; + externality_upper_bound : Jkind_axis.Externality.t; + nullability_upper_bound : Jkind_axis.Nullability.t + } + constraint 'd = 'l * 'r + + val map : ('a -> 'b) -> ('a, 'd) t -> ('b, 'd) t + + val map_option : ('a -> 'b option) -> ('a, 'd) t -> ('b, 'd) t option + + val equal : + ('layout -> 'layout -> bool) -> + ('layout, allowed * allowed) t -> + ('layout, allowed * allowed) t -> + bool + + (* An equality check should work over [lr]s only. But we need this + to do memoization in serialization. Happily, that's after all + inference is done, when worrying about l and r does not matter + any more. *) + val equal_after_all_inference_is_done : + ('layout -> 'layout -> bool) -> ('layout, 'd1) t -> ('layout, 'd2) t -> bool + + val try_allow_l : ('layout, 'l * 'r) t -> ('layout, allowed * 'r) t option + + val try_allow_r : ('layout, 'l * 'r) t -> ('layout, 'l * allowed) t option + + val sub : + ?allow_any_crossing:bool -> + ('layout -> 'layout -> Misc.Le_result.t) -> + ('layout, allowed * 'r) t -> + ('layout, 'l * allowed) t -> + Misc.Le_result.t + + val format : + (Format.formatter -> 'layout -> unit) -> + Format.formatter -> + ('layout, 'd) t -> + unit +end + +module Jkind_desc : sig + type ('type_expr, +'d) t = (Sort.t Layout.t, 'd) Layout_and_axes.t + + type 'type_expr packed = Pack : ('type_expr, 'd) t -> 'type_expr packed + [@@unboxed] +end + +type 'type_expr history = + | Interact of + { reason : Jkind_intf.History.interact_reason; + jkind1 : 'type_expr Jkind_desc.packed; + history1 : 'type_expr history; + jkind2 : 'type_expr Jkind_desc.packed; + history2 : 'type_expr history + } + | Creation of Jkind_intf.History.creation_reason + +type ('type_expr, +'d) t = + { jkind : ('type_expr, 'd) Jkind_desc.t; + annotation : Parsetree.jkind_annotation option; + history : 'type_expr history; + has_warned : bool + } + +(** CR layouts v2.8: remove this when printing is improved *) +module Const : sig + type ('type_expr, +'d) t = (Layout.Const.t, 'd) Layout_and_axes.t +end diff --git a/src/ocaml/typing/mode.ml b/src/ocaml/typing/mode.ml index 507ad557a..13bed223a 100644 --- a/src/ocaml/typing/mode.ml +++ b/src/ocaml/typing/mode.ml @@ -357,142 +357,76 @@ module Lattices = struct end) end - type monadic = - { uniqueness : Uniqueness.t; - contention : Contention.t - } + type monadic = Uniqueness.t * Contention.t module Monadic = struct type t = monadic - let min = - let uniqueness = Uniqueness.min in - let contention = Contention.min in - { uniqueness; contention } + let min = Uniqueness.min, Contention.min - let max = - let uniqueness = Uniqueness.max in - let contention = Contention.max in - { uniqueness; contention } + let max = Uniqueness.max, Contention.max - let legacy = - let uniqueness = Uniqueness.legacy in - let contention = Contention.legacy in - { uniqueness; contention } - - let le m1 m2 = - let { uniqueness = uniqueness1; contention = contention1 } = m1 in - let { uniqueness = uniqueness2; contention = contention2 } = m2 in - Uniqueness.le uniqueness1 uniqueness2 - && Contention.le contention1 contention2 - - let join m1 m2 = - let uniqueness = Uniqueness.join m1.uniqueness m2.uniqueness in - let contention = Contention.join m1.contention m2.contention in - { uniqueness; contention } - - let meet m1 m2 = - let uniqueness = Uniqueness.meet m1.uniqueness m2.uniqueness in - let contention = Contention.meet m1.contention m2.contention in - { uniqueness; contention } - - let imply m1 m2 = - let uniqueness = Uniqueness.imply m1.uniqueness m2.uniqueness in - let contention = Contention.imply m1.contention m2.contention in - { uniqueness; contention } - - let subtract m1 m2 = - let uniqueness = Uniqueness.subtract m1.uniqueness m2.uniqueness in - let contention = Contention.subtract m1.contention m2.contention in - { uniqueness; contention } + let legacy = Uniqueness.legacy, Contention.legacy - let print ppf m = - Format.fprintf ppf "%a,%a" Uniqueness.print m.uniqueness Contention.print - m.contention + let le (a0, a1) (b0, b1) = Uniqueness.le a0 b0 && Contention.le a1 b1 + + let join (a0, a1) (b0, b1) = Uniqueness.join a0 b0, Contention.join a1 b1 + + let meet (a0, a1) (b0, b1) = Uniqueness.meet a0 b0, Contention.meet a1 b1 + + let imply (a0, a1) (b0, b1) = Uniqueness.imply a0 b0, Contention.imply a1 b1 + + let subtract (a0, a1) (b0, b1) = + Uniqueness.subtract a0 b0, Contention.subtract a1 b1 + + let print ppf (a0, a1) = + Format.fprintf ppf "%a,%a" Uniqueness.print a0 Contention.print a1 end type 'areality comonadic_with = - { areality : 'areality; - linearity : Linearity.t; - portability : Portability.t; - yielding : Yielding.t - } + 'areality * Linearity.t * Portability.t * Yielding.t module Comonadic_with (Areality : Areality) = struct type t = Areality.t comonadic_with - let min = - let areality = Areality.min in - let linearity = Linearity.min in - let portability = Portability.min in - let yielding = Yielding.min in - { areality; linearity; portability; yielding } + let min = Areality.min, Linearity.min, Portability.min, Yielding.min - let max = - let areality = Areality.max in - let linearity = Linearity.max in - let portability = Portability.max in - let yielding = Yielding.max in - { areality; linearity; portability; yielding } + let max = Areality.max, Linearity.max, Portability.max, Yielding.max let legacy = - let areality = Areality.legacy in - let linearity = Linearity.legacy in - let portability = Portability.legacy in - let yielding = Yielding.legacy in - { areality; linearity; portability; yielding } - - let le m1 m2 = - let { areality = areality1; - linearity = linearity1; - portability = portability1; - yielding = yielding1 - } = - m1 - in - let { areality = areality2; - linearity = linearity2; - portability = portability2; - yielding = yielding2 - } = - m2 - in - Areality.le areality1 areality2 - && Linearity.le linearity1 linearity2 - && Portability.le portability1 portability2 - && Yielding.le yielding1 yielding2 - - let join m1 m2 = - let areality = Areality.join m1.areality m2.areality in - let linearity = Linearity.join m1.linearity m2.linearity in - let portability = Portability.join m1.portability m2.portability in - let yielding = Yielding.join m1.yielding m2.yielding in - { areality; linearity; portability; yielding } - - let meet m1 m2 = - let areality = Areality.meet m1.areality m2.areality in - let linearity = Linearity.meet m1.linearity m2.linearity in - let portability = Portability.meet m1.portability m2.portability in - let yielding = Yielding.meet m1.yielding m2.yielding in - { areality; linearity; portability; yielding } - - let imply m1 m2 = - let areality = Areality.imply m1.areality m2.areality in - let linearity = Linearity.imply m1.linearity m2.linearity in - let portability = Portability.imply m1.portability m2.portability in - let yielding = Yielding.imply m1.yielding m2.yielding in - { areality; linearity; portability; yielding } - - let subtract m1 m2 = - let areality = Areality.subtract m1.areality m2.areality in - let linearity = Linearity.subtract m1.linearity m2.linearity in - let portability = Portability.subtract m1.portability m2.portability in - let yielding = Yielding.subtract m1.yielding m2.yielding in - { areality; linearity; portability; yielding } - - let print ppf m = - Format.fprintf ppf "%a,%a,%a,%a" Areality.print m.areality Linearity.print - m.linearity Portability.print m.portability Yielding.print m.yielding + Areality.legacy, Linearity.legacy, Portability.legacy, Yielding.legacy + + let le (a0, a1, a2, a3) (b0, b1, b2, b3) = + Areality.le a0 b0 && Linearity.le a1 b1 && Portability.le a2 b2 + && Yielding.le a3 b3 + + let join (a0, a1, a2, a3) (b0, b1, b2, b3) = + ( Areality.join a0 b0, + Linearity.join a1 b1, + Portability.join a2 b2, + Yielding.join a3 b3 ) + + let meet (a0, a1, a2, a3) (b0, b1, b2, b3) = + ( Areality.meet a0 b0, + Linearity.meet a1 b1, + Portability.meet a2 b2, + Yielding.meet a3 b3 ) + + let imply (a0, a1, a2, a3) (b0, b1, b2, b3) = + ( Areality.imply a0 b0, + Linearity.imply a1 b1, + Portability.imply a2 b2, + Yielding.imply a3 b3 ) + + let subtract (a0, a1, a2, a3) (b0, b1, b2, b3) = + ( Areality.subtract a0 b0, + Linearity.subtract a1 b1, + Portability.subtract a2 b2, + Yielding.subtract a3 b3 ) + + let print ppf (a0, a1, a2, a3) = + Format.fprintf ppf "%a,%a,%a,%a" Areality.print a0 Linearity.print a1 + Portability.print a2 Yielding.print a3 end [@@inline] @@ -678,7 +612,7 @@ module Lattices_mono = struct let print : type p r. _ -> (p, r) t -> unit = fun ppf -> function - | Areality -> Format.fprintf ppf "locality" + | Areality -> Format.fprintf ppf "areality" | Linearity -> Format.fprintf ppf "linearity" | Portability -> Format.fprintf ppf "portability" | Uniqueness -> Format.fprintf ppf "uniqueness" @@ -701,23 +635,23 @@ module Lattices_mono = struct let proj : type p r. (p, r) t -> p -> r = fun ax t -> - match ax with - | Areality -> t.areality - | Linearity -> t.linearity - | Portability -> t.portability - | Yielding -> t.yielding - | Uniqueness -> t.uniqueness - | Contention -> t.contention + match ax, t with + | Areality, (a, _, _, _) -> a + | Linearity, (_, lin, _, _) -> lin + | Portability, (_, _, s, _) -> s + | Yielding, (_, _, _, yld) -> yld + | Uniqueness, (uni, _) -> uni + | Contention, (_, con) -> con let update : type p r. (p, r) t -> r -> p -> p = fun ax r t -> - match ax with - | Areality -> { t with areality = r } - | Linearity -> { t with linearity = r } - | Portability -> { t with portability = r } - | Yielding -> { t with yielding = r } - | Uniqueness -> { t with uniqueness = r } - | Contention -> { t with contention = r } + match ax, t with + | Areality, (_, lin, portable, yld) -> r, lin, portable, yld + | Linearity, (area, _, portable, yld) -> area, r, portable, yld + | Portability, (area, lin, _, yld) -> area, lin, r, yld + | Yielding, (area, lin, portable, _) -> area, lin, portable, r + | Uniqueness, (_, con) -> r, con + | Contention, (uni, _) -> uni, r end type ('a, 'b, 'd) morph = @@ -870,7 +804,7 @@ module Lattices_mono = struct end) let set_areality : type a0 a1. a1 -> a0 comonadic_with -> a1 comonadic_with = - fun r t -> { t with areality = r } + fun r (_, lin, portable, yld) -> r, lin, portable, yld let proj_obj : type t r. (t, r) Axis.t -> t obj -> r obj = fun ax obj -> @@ -1055,36 +989,42 @@ module Lattices_mono = struct let monadic_to_comonadic_min : type a. a comonadic_with obj -> Monadic_op.t -> a comonadic_with = - fun obj m -> - let areality : a = - match obj with - | Comonadic_with_locality -> Locality.min - | Comonadic_with_regionality -> Regionality.min - in - let linearity = unique_to_linear m.uniqueness in - let portability = contended_to_portable m.contention in - let yielding = Yielding.min in - { areality; linearity; portability; yielding } + fun obj (uniqueness, contention) -> + match obj with + | Comonadic_with_locality -> + ( Locality.min, + unique_to_linear uniqueness, + contended_to_portable contention, + Yielding.min ) + | Comonadic_with_regionality -> + ( Regionality.min, + unique_to_linear uniqueness, + contended_to_portable contention, + Yielding.min ) let comonadic_to_monadic : type a. a comonadic_with obj -> a comonadic_with -> Monadic_op.t = - fun _ m -> - let uniqueness = linear_to_unique m.linearity in - let contention = portable_to_contended m.portability in - { uniqueness; contention } + fun obj (_, linearity, portability, _) -> + match obj with + | Comonadic_with_locality -> + linear_to_unique linearity, portable_to_contended portability + | Comonadic_with_regionality -> + linear_to_unique linearity, portable_to_contended portability let monadic_to_comonadic_max : type a. a comonadic_with obj -> Monadic_op.t -> a comonadic_with = - fun obj m -> - let areality : a = - match obj with - | Comonadic_with_locality -> Locality.max - | Comonadic_with_regionality -> Regionality.max - in - let linearity = unique_to_linear m.uniqueness in - let portability = contended_to_portable m.contention in - let yielding = Yielding.max in - { areality; linearity; portability; yielding } + fun obj (uniqueness, contention) -> + match obj with + | Comonadic_with_locality -> + ( Locality.max, + unique_to_linear uniqueness, + contended_to_portable contention, + Yielding.max ) + | Comonadic_with_regionality -> + ( Regionality.max, + unique_to_linear uniqueness, + contended_to_portable contention, + Yielding.max ) let rec apply : type a b d. b obj -> (a, b, d) morph -> a -> b = fun dst f a -> @@ -1345,17 +1285,9 @@ end module C = Lattices_mono module S = Solvers_polarized (C) -type monadic = C.monadic = - { uniqueness : C.Uniqueness.t; - contention : C.Contention.t - } +type monadic = C.monadic -type 'a comonadic_with = 'a C.comonadic_with = - { areality : 'a; - linearity : C.Linearity.t; - portability : C.Portability.t; - yielding : C.Yielding.t - } +type 'a comonadic_with = 'a C.comonadic_with module Axis = C.Axis @@ -1588,7 +1520,6 @@ end module Uniqueness = struct module Const = C.Uniqueness - module Const_op = C.Uniqueness_op module Obj = struct type const = Const.t @@ -1612,7 +1543,6 @@ end module Contention = struct module Const = C.Contention - module Const_op = C.Contention_op module Obj = struct type const = Const.t @@ -1680,7 +1610,9 @@ module Comonadic_with (Areality : Areality) = struct type equate_error = equate_step * error - let proj_obj ax = C.proj_obj ax Obj.obj + open Obj + + let proj_obj ax = C.proj_obj ax obj module Const = struct include C.Comonadic_with (Areality.Const) @@ -1699,89 +1631,55 @@ module Comonadic_with (Areality : Areality) = struct let obj = proj_obj ax in C.max obj - let max_with ax c = Axis.update ax c (C.max Obj.obj) + let max_with ax c = Axis.update ax c (C.max obj) let print_axis ax ppf a = let obj = proj_obj ax in C.print obj ppf a - - let lattice_of_axis (type a) (axis : (t, a) Axis.t) : - (module Lattice with type t = a) = - match axis with - | Areality -> (module Areality.Const) - | Linearity -> (module Linearity.Const) - | Portability -> (module Portability.Const) - | Yielding -> (module Yielding.Const) end - let proj ax m = Obj.Solver.via_monotone (proj_obj ax) (Proj (Obj.obj, ax)) m + let proj ax m = Solver.via_monotone (proj_obj ax) (Proj (Obj.obj, ax)) m - let meet_const c m = Obj.Solver.via_monotone Obj.obj (Meet_with c) m + let meet_const c m = Solver.via_monotone obj (Meet_with c) m - let join_const c m = Obj.Solver.via_monotone Obj.obj (Join_with c) m + let join_const c m = Solver.via_monotone obj (Join_with c) m let min_with ax m = - Obj.Solver.via_monotone Obj.obj (Min_with ax) (Obj.Solver.disallow_right m) + Solver.via_monotone Obj.obj (Min_with ax) (Solver.disallow_right m) let max_with ax m = - Obj.Solver.via_monotone Obj.obj (Max_with ax) (Obj.Solver.disallow_left m) + Solver.via_monotone Obj.obj (Max_with ax) (Solver.disallow_left m) let join_with ax c m = join_const (C.min_with Obj.obj ax c) m let meet_with ax c m = meet_const (C.max_with Obj.obj ax c) m - let zap_to_legacy m : Const.t = + let zap_to_legacy m = let areality = proj Areality m |> Areality.zap_to_legacy in let linearity = proj Linearity m |> Linearity.zap_to_legacy in let portability = proj Portability m |> Portability.zap_to_legacy in let yielding = proj Yielding m |> Yielding.zap_to_legacy in - { areality; linearity; portability; yielding } - - let imply c m = - Obj.Solver.via_monotone Obj.obj (Imply c) (Obj.Solver.disallow_left m) + areality, linearity, portability, yielding - let subtract c m = - Obj.Solver.via_monotone Obj.obj (Subtract c) (Obj.Solver.disallow_right m) + let imply c m = Solver.via_monotone obj (Imply c) (Solver.disallow_left m) let legacy = of_const Const.legacy - let axis_of_error (err : Obj.const Solver.error) : error = - let { left = - { areality = areality1; - linearity = linearity1; - portability = portability1; - yielding = yielding1 - }; - right = - { areality = areality2; - linearity = linearity2; - portability = portability2; - yielding = yielding2 - } - } = - err - in - if Areality.Const.le areality1 areality2 + let axis_of_error + { left = area0, lin0, port0, yld0; right = area1, lin1, port1, yld1 } : + error = + if Areality.Const.le area0 area1 then - if Linearity.Const.le linearity1 linearity2 + if Linearity.Const.le lin0 lin1 then - if Portability.Const.le portability1 portability2 + if Portability.Const.le port0 port1 then - if Yielding.Const.le yielding1 yielding2 + if Yielding.Const.le yld0 yld1 then assert false - else - Error - ( Yielding, - { left = err.left.yielding; right = err.right.yielding } ) - else - Error - ( Portability, - { left = err.left.portability; right = err.right.portability } ) - else - Error - (Linearity, { left = err.left.linearity; right = err.right.linearity }) - else - Error (Areality, { left = err.left.areality; right = err.right.areality }) + else Error (Yielding, { left = yld0; right = yld1 }) + else Error (Portability, { left = port0; right = port1 }) + else Error (Linearity, { left = lin0; right = lin1 }) + else Error (Areality, { left = area0; right = area1 }) (* overriding to report the offending axis *) let submode_log m0 m1 ~log : _ result = @@ -1813,7 +1711,9 @@ module Monadic = struct type equate_error = equate_step * error - let proj_obj ax = C.proj_obj ax Obj.obj + open Obj + + let proj_obj ax = C.proj_obj ax obj module Const = struct include C.Monadic @@ -1821,7 +1721,7 @@ module Monadic = struct (* CR zqian: The flipping logic leaking to here is bad. Refactoring needed. *) (* Monadic fragment is flipped, so are the following definitions. *) - let min_with ax c = Axis.update ax c (C.max Obj.obj) + let min_with ax c = Axis.update ax c (C.max obj) let min_axis ax = let obj = proj_obj ax in @@ -1834,67 +1734,44 @@ module Monadic = struct let le_axis ax a b = let obj = proj_obj ax in C.le obj b a - - let lattice_of_axis (type a) (axis : (t, a) Axis.t) : - (module Lattice with type t = a) = - match axis with - | Uniqueness -> (module Uniqueness.Const_op) - | Contention -> (module Contention.Const_op) end - module Const_op = C.Monadic_op - - let proj ax m = Obj.Solver.via_monotone (proj_obj ax) (Proj (Obj.obj, ax)) m + let proj ax m = Solver.via_monotone (proj_obj ax) (Proj (Obj.obj, ax)) m (* The monadic fragment is inverted. Most of the inversion logic is taken care by [Solver_polarized], but some remain, such as the [Min_with] below which is inverted from [Max_with]. *) - let meet_const c m = Obj.Solver.via_monotone Obj.obj (Join_with c) m + let meet_const c m = Solver.via_monotone obj (Join_with c) m - let join_const c m = Obj.Solver.via_monotone Obj.obj (Meet_with c) m + let join_const c m = Solver.via_monotone obj (Meet_with c) m let max_with ax m = - Obj.Solver.via_monotone Obj.obj (Min_with ax) (Obj.Solver.disallow_left m) + Solver.via_monotone Obj.obj (Min_with ax) (Solver.disallow_left m) let min_with ax m = - Obj.Solver.via_monotone Obj.obj (Max_with ax) (Obj.Solver.disallow_right m) + Solver.via_monotone Obj.obj (Max_with ax) (Solver.disallow_right m) let join_with ax c m = join_const (C.max_with Obj.obj ax c) m let meet_with ax c m = meet_const (C.min_with Obj.obj ax c) m - let imply c m = - Obj.Solver.via_monotone Obj.obj (Subtract c) (Obj.Solver.disallow_left m) - - let subtract c m = - Obj.Solver.via_monotone Obj.obj (Imply c) (Obj.Solver.disallow_right m) + let imply c m = Solver.via_monotone obj (Subtract c) (Solver.disallow_left m) - let zap_to_legacy m : Const.t = + let zap_to_legacy m = let uniqueness = proj Uniqueness m |> Uniqueness.zap_to_legacy in let contention = proj Contention m |> Contention.zap_to_legacy in - { uniqueness; contention } + uniqueness, contention let legacy = of_const Const.legacy - let axis_of_error (err : Obj.const Solver.error) : error = - let { left = { uniqueness = uniqueness1; contention = contention1 }; - right = { uniqueness = uniqueness2; contention = contention2 } - } = - err - in - if Uniqueness.Const.le uniqueness1 uniqueness2 + let axis_of_error { left = uni0, con0; right = uni1, con1 } : error = + if Uniqueness.Const.le uni0 uni1 then - if Contention.Const.le contention1 contention2 + if Contention.Const.le con0 con1 then assert false - else - Error - ( Contention, - { left = err.left.contention; right = err.right.contention } ) - else - Error - ( Uniqueness, - { left = err.left.uniqueness; right = err.right.uniqueness } ) + else Error (Contention, { left = con0; right = con1 }) + else Error (Uniqueness, { left = uni0; right = uni1 }) (* overriding to report the offending axis *) let submode_log m0 m1 ~log : _ result = @@ -1933,26 +1810,6 @@ module Value_with (Areality : Areality) = struct (Comonadic.Const.t, 'a) Axis.t -> (('a, 'd) mode_comonadic, 'a, 'd) axis - type 'd axis_packed = P : ('m, 'a, 'd) axis -> 'd axis_packed - - let print_axis (type m a d) ppf (axis : (m, a, d) axis) = - match axis with - | Monadic ax -> Axis.print ppf ax - | Comonadic ax -> Axis.print ppf ax - - let lattice_of_axis (type m a d) (axis : (m, a, d) axis) : - (module Lattice with type t = a) = - match axis with - | Comonadic ax -> Comonadic.Const.lattice_of_axis ax - | Monadic ax -> Monadic.Const.lattice_of_axis ax - - let all_axes = - [ P (Comonadic Areality); - P (Monadic Uniqueness); - P (Comonadic Linearity); - P (Monadic Contention); - P (Comonadic Portability) ] - let proj_obj : type m a d. (m, a, d) axis -> a C.obj = function | Monadic ax -> Monadic.proj_obj ax | Comonadic ax -> Comonadic.proj_obj ax @@ -1967,19 +1824,15 @@ module Value_with (Areality : Areality) = struct } let split - { areality; linearity; portability; yielding; uniqueness; contention } = - let monadic : Monadic.Const.t = { uniqueness; contention } in - let comonadic : Comonadic.Const.t = - { areality; linearity; portability; yielding } - in + { areality; linearity; portability; uniqueness; contention; yielding } = + let monadic = uniqueness, contention in + let comonadic = areality, linearity, portability, yielding in { comonadic; monadic } let merge { comonadic; monadic } = - let ({ areality; linearity; portability; yielding } : Comonadic.Const.t) = - comonadic - in - let ({ uniqueness; contention } : Monadic.Const.t) = monadic in - { areality; linearity; portability; yielding; uniqueness; contention } + let areality, linearity, portability, yielding = comonadic in + let uniqueness, contention = monadic in + { areality; linearity; portability; uniqueness; contention; yielding } let print ?verbose () ppf { monadic; comonadic } = Format.fprintf ppf "%a;%a" @@ -1995,9 +1848,6 @@ module Value_with (Areality : Areality) = struct { comonadic; monadic } module Const = struct - module Monadic = Monadic.Const - module Comonadic = Comonadic.Const - type t = ( Areality.Const.t, Linearity.Const.t, @@ -2007,6 +1857,9 @@ module Value_with (Areality : Areality) = struct Yielding.Const.t ) modes + module Monadic = Monadic.Const + module Comonadic = Comonadic.Const + let min = merge { comonadic = Comonadic.min; monadic = Monadic.min } let max = merge { comonadic = Comonadic.max; monadic = Monadic.max } @@ -2144,12 +1997,6 @@ module Value_with (Areality : Areality) = struct | Comonadic ax -> Comonadic.max_axis ax | Monadic ax -> Monadic.max_axis ax - let is_max : type m a d. (m, a, d) axis -> a -> bool = - fun ax m -> le_axis ax (max_axis ax) m - - let is_min : type m a d. (m, a, d) axis -> a -> bool = - fun ax m -> le_axis ax m (min_axis ax) - let split = split let merge = merge @@ -2348,18 +2195,6 @@ module Value_with (Areality : Areality) = struct let monadic = Monadic.imply c.monadic monadic in { monadic; comonadic } - let join_const c { comonadic; monadic } = - let c = split c in - let comonadic = Comonadic.join_const c.comonadic comonadic in - let monadic = Monadic.join_const c.monadic monadic in - { monadic; comonadic } - - let subtract c { comonadic; monadic } = - let c = split c in - let comonadic = Comonadic.subtract c.comonadic comonadic in - let monadic = Monadic.subtract c.monadic monadic in - { monadic; comonadic } - let zap_to_ceil { comonadic; monadic } = let monadic = Monadic.zap_to_ceil monadic in let comonadic = Comonadic.zap_to_ceil comonadic in @@ -2420,17 +2255,6 @@ module Const = struct let areality = C.locality_as_regionality areality in { areality; linearity; portability; uniqueness; contention; yielding } - module Axis = struct - let alloc_as_value : type d. d Alloc.axis_packed -> d Value.axis_packed = - function - | P (Comonadic Areality) -> P (Comonadic Areality) - | P (Comonadic Linearity) -> P (Comonadic Linearity) - | P (Comonadic Portability) -> P (Comonadic Portability) - | P (Comonadic Yielding) -> P (Comonadic Yielding) - | P (Monadic Uniqueness) -> P (Monadic Uniqueness) - | P (Monadic Contention) -> P (Monadic Contention) - end - let locality_as_regionality = C.locality_as_regionality end @@ -2476,13 +2300,8 @@ module Modality = struct let is_id (Atom (ax, a)) = match a with - | Join_with c -> Value.Const.is_min ax c - | Meet_with c -> Value.Const.is_max ax c - - let is_constant (Atom (ax, a)) = - match a with - | Join_with c -> Value.Const.is_max ax c - | Meet_with c -> Value.Const.is_min ax c + | Join_with c -> Value.Const.le_axis ax c (Value.Const.min_axis ax) + | Meet_with c -> Value.Const.le_axis ax (Value.Const.max_axis ax) c let print ppf = function | Atom (ax, Join_with c) -> @@ -2541,9 +2360,6 @@ module Modality = struct (let ax : _ Axis.t = Contention in Atom (Monadic ax, Join_with (Axis.proj ax c))) ] - let proj ax = function - | Join_const c -> Atom (Monadic ax, Join_with (Axis.proj ax c)) - let print ppf = function | Join_const c -> Format.fprintf ppf "join_const(%a)" Mode.Const.print c end @@ -2685,9 +2501,6 @@ module Modality = struct (let ax : _ Axis.t = Portability in Atom (Comonadic ax, Meet_with (Axis.proj ax c))) ] - let proj ax = function - | Meet_const c -> Atom (Comonadic ax, Meet_with (Axis.proj ax c)) - let print ppf = function | Meet_const c -> Format.fprintf ppf "meet_const(%a)" Mode.Const.print c end @@ -2825,21 +2638,10 @@ module Modality = struct let comonadic = Comonadic.concat ~then_:then_.comonadic t.comonadic in { monadic; comonadic } - let of_list = List.fold_left (fun m atom -> compose m ~then_:atom) id - let singleton a = compose ~then_:a id let to_list { monadic; comonadic } = Comonadic.to_list comonadic @ Monadic.to_list monadic - - let proj (type m a d) (ax : (m, a, d) Value.axis) { monadic; comonadic } = - match ax with - | Monadic ax -> Monadic.proj ax monadic - | Comonadic ax -> Comonadic.proj ax comonadic - - let print ppf { monadic; comonadic } = - Format.fprintf ppf "%a;%a" Monadic.print monadic Comonadic.print - comonadic end type t = (Monadic.t, Comonadic.t) monadic_comonadic diff --git a/src/ocaml/typing/mode_intf.mli b/src/ocaml/typing/mode_intf.mli index 9a21eb09a..9f876be05 100644 --- a/src/ocaml/typing/mode_intf.mli +++ b/src/ocaml/typing/mode_intf.mli @@ -229,8 +229,6 @@ module type S = sig include Lattice with type t := t end - module Const_op : Lattice with type t = Const.t - type error = Const.t Solver.error include @@ -256,8 +254,6 @@ module type S = sig include Lattice with type t := t end - module Const_op : Lattice with type t = Const.t - type error = Const.t Solver.error include @@ -285,17 +281,10 @@ module type S = sig and type 'd t = (Const.t, 'd) mode_comonadic end - type 'a comonadic_with = - { areality : 'a; - linearity : Linearity.Const.t; - portability : Portability.Const.t; - yielding : Yielding.Const.t - } + type 'a comonadic_with = private + 'a * Linearity.Const.t * Portability.Const.t * Yielding.Const.t - type monadic = - { uniqueness : Uniqueness.Const.t; - contention : Contention.Const.t - } + type monadic = private Uniqueness.Const.t * Contention.Const.t module Axis : sig (** ('p, 'r) t represents a projection from a product of type ['p] to an @@ -309,27 +298,25 @@ module type S = sig | Contention : (monadic, Contention.Const.t) t val print : Format.formatter -> ('p, 'r) t -> unit +<<<<<<< janestreet/merlin-jst:5.2.0minus-6 val eq : ('p, 'r0) t -> ('p, 'r1) t -> ('r0, 'r1) Misc_stdlib.eq option +||||||| ocaml-flambda/flambda-backend:6a83bbad9dd6c86ea5019a84258b04c81aa34a38 + + val eq : ('p, 'r0) t -> ('p, 'r1) t -> ('r0, 'r1) Misc.eq option +======= +>>>>>>> ocaml-flambda/flambda-backend:db3778f932fc0a2f9d71ba5f9dcf7c76fcc74a63 end module type Mode := sig module Areality : Common module Monadic : sig - module Const : sig - include Lattice with type t = monadic - - val max_axis : (t, 'a) Axis.t -> 'a - - val min_axis : (t, 'a) Axis.t -> 'a - end - - module Const_op : Lattice with type t = monadic + module Const : Lattice with type t = monadic include Common with module Const := Const - val join_const : Const.t -> ('l * 'r) t -> ('l * 'r) t + val imply : Const.t -> ('l * 'r) t -> (disallowed * 'r) t end module Comonadic : sig @@ -339,10 +326,6 @@ module type S = sig val eq : t -> t -> bool val print_axis : (t, 'a) Axis.t -> Format.formatter -> 'a -> unit - - val max_axis : (t, 'a) Axis.t -> 'a - - val min_axis : (t, 'a) Axis.t -> 'a end type error = Error : (Const.t, 'a) Axis.t * 'a Solver.error -> error @@ -362,16 +345,6 @@ module type S = sig (Comonadic.Const.t, 'a) Axis.t -> (('a, 'd) mode_comonadic, 'a, 'd) axis - type 'd axis_packed = P : ('m, 'a, 'd) axis -> 'd axis_packed - - val print_axis : Format.formatter -> ('m, 'a, 'd) axis -> unit - - (** Gets the normal lattice for comonadic axes and the "op"ped lattice for - monadic ones. *) - val lattice_of_axis : ('m, 'a, 'd) axis -> (module Lattice with type t = 'a) - - val all_axes : ('l * 'r) axis_packed list - type ('a, 'b, 'c, 'd, 'e, 'f) modes = { areality : 'a; linearity : 'b; @@ -412,10 +385,6 @@ module type S = sig val print : Format.formatter -> t -> unit end - val is_max : ('m, 'a, 'd) axis -> 'a -> bool - - val is_min : ('m, 'a, 'd) axis -> 'a -> bool - val split : t -> (Monadic.Const.t, Comonadic.Const.t) monadic_comonadic val merge : (Monadic.Const.t, Comonadic.Const.t) monadic_comonadic -> t @@ -469,10 +438,6 @@ module type S = sig val imply : Const.t -> ('l * 'r) t -> (disallowed * 'r) t - val join_const : Const.t -> ('l * 'r) t -> ('l * 'r) t - - val subtract : Const.t -> ('l * 'r) t -> ('l * disallowed) t - (* The following two are about the scenario where we partially apply a function [A -> B -> C] to [A] and get back [B -> C]. The mode of the three are constrained. *) @@ -498,10 +463,6 @@ module type S = sig module Const : sig val alloc_as_value : Alloc.Const.t -> Value.Const.t - module Axis : sig - val alloc_as_value : 'd Alloc.axis_packed -> 'd Value.axis_packed - end - val locality_as_regionality : Locality.Const.t -> Regionality.Const.t end @@ -541,9 +502,6 @@ module type S = sig (** Test if the given modality is the identity modality. *) val is_id : t -> bool - (** Test if the given modality is a constant modality. *) - val is_constant : t -> bool - (** Printing for debugging *) val print : Format.formatter -> t -> unit @@ -592,23 +550,12 @@ module type S = sig val singleton : atom -> t (** Returns the list of [atom] in the given modality. The list is - commutative. Post-condition: each axis is represented in the - output list exactly once. *) + commutative. *) val to_list : t -> atom list - (** Builds up a modality from a list of [atom], by composing each atom with - identity. The modalities are applied left to right. *) - val of_list : atom list -> t - - (** Project out the [atom] for the given axis in the given modality. *) - val proj : ('m, 'a, 'd) Value.axis -> t -> atom - (** [equate t0 t1] checks that [t0 = t1]. Definition: [t0 = t1] iff [t0 <= t1] and [t1 <= t0]. *) val equate : t -> t -> (unit, equate_error) Result.t - - (** Printing for debugging. *) - val print : Format.formatter -> t -> unit end (** A modality that acts on [Value] modes. Conceptually it is a sequnce of diff --git a/src/ocaml/typing/mtype.ml b/src/ocaml/typing/mtype.ml index 811744a6b..95fc51896 100644 --- a/src/ocaml/typing/mtype.ml +++ b/src/ocaml/typing/mtype.ml @@ -190,8 +190,6 @@ let rec scrape_lazy ~aliases env mty = | Some mty -> scrape_lazy ~aliases env mty | None -> mty -let reduce_alias_lazy env mty = reduce_lazy ~aliases:true env mty - let reduce_lazy env mty = reduce_lazy ~aliases:false env mty let reduce env mty = diff --git a/src/ocaml/typing/mtype.mli b/src/ocaml/typing/mtype.mli index f2c5d426b..cd095995c 100644 --- a/src/ocaml/typing/mtype.mli +++ b/src/ocaml/typing/mtype.mli @@ -27,8 +27,6 @@ val scrape_alias: Env.t -> module_type -> module_type or abstract module type ident. *) val reduce_lazy: Env.t -> Subst.Lazy.module_type -> Subst.Lazy.module_type option -val reduce_alias_lazy: - Env.t -> Subst.Lazy.module_type -> Subst.Lazy.module_type option val reduce: Env.t -> module_type -> module_type option (* Expand one toplevel module abbreviation. Return None if no expansion is possible. *) diff --git a/src/ocaml/typing/oprint.ml b/src/ocaml/typing/oprint.ml index 823d787c9..631f941e8 100644 --- a/src/ocaml/typing/oprint.ml +++ b/src/ocaml/typing/oprint.ml @@ -342,6 +342,50 @@ let pr_var = Pprintast.tyvar let ty_var ~non_gen ppf s = pr_var ppf (if non_gen then "_" ^ s else s) +let print_out_jkind_const ppf ojkind = + let rec pp_element ~nested ppf (ojkind : Outcometree.out_jkind_const) = + match ojkind with + | Ojkind_const_default -> fprintf ppf "_" + | Ojkind_const_abbreviation abbrev -> fprintf ppf "%s" abbrev + | Ojkind_const_mod (base, modes) -> + Misc.pp_parens_if nested (fun ppf (base, modes) -> + fprintf ppf "%a mod @[%a@]" (pp_element ~nested:true) base + (pp_print_list + ~pp_sep:(fun ppf () -> fprintf ppf "@ ") + (fun ppf -> fprintf ppf "%s")) + modes + ) ppf (base, modes) + | Ojkind_const_product ts -> + let pp_sep ppf () = Format.fprintf ppf "@ & " in + Misc.pp_nested_list ~nested ~pp_element ~pp_sep ppf ts + | Ojkind_const_with _ | Ojkind_const_kind_of _ -> + failwith "XXX unimplemented jkind syntax" + in + pp_element ~nested:false ppf ojkind + +let print_out_jkind ppf ojkind = + let rec pp_element ~nested ppf ojkind = + match ojkind with + | Ojkind_var v -> fprintf ppf "%s" v + | Ojkind_const jkind -> print_out_jkind_const ppf jkind + | Ojkind_product ts -> + let pp_sep ppf () = Format.fprintf ppf "@ & " in + Misc.pp_nested_list ~nested ~pp_element ~pp_sep ppf ts + in + pp_element ~nested:false ppf ojkind + +let print_out_jkind_annot ppf = function + | None -> () + | Some lay -> fprintf ppf "@ : %a" print_out_jkind lay + +let pr_var_jkind ppf (v, l) = match l with + | None -> pr_var ppf v + | Some lay -> fprintf ppf "(%a : %a)" + pr_var v + print_out_jkind lay + +let pr_var_jkinds = + print_list pr_var_jkind (fun ppf -> fprintf ppf "@ ") (* NON-LEGACY MODES Here, we are printing mode annotations even if the mode extension is @@ -615,6 +659,7 @@ and print_out_label ppf (name, mut, arg, gbl) = print_out_type arg print_out_modalities_new m_new +<<<<<<< janestreet/merlin-jst:5.2.0minus-6 and print_out_jkind_const ppf ojkind = let rec pp_element ~nested ppf (ojkind : Outcometree.out_jkind_const) = (* HACK: we strip off the [Ojkind_const_with]s and convert them to a [string string @@ -699,6 +744,93 @@ and pr_var_jkind ppf (v, l) = match l with and pr_var_jkinds jks = print_list pr_var_jkind (fun ppf -> fprintf ppf "@ ") jks +||||||| ocaml-flambda/flambda-backend:6a83bbad9dd6c86ea5019a84258b04c81aa34a38 +and print_out_jkind_const ppf ojkind = + let rec pp_element ~nested ppf (ojkind : Outcometree.out_jkind_const) = + (* HACK: we strip off the [Ojkind_const_with]s and convert them to a [string string + list] so we can sort them lexicographically, because otherwise the order of printed + [with]s is nondeterministic. This is sad, but we'd need deterministic sorting of + types to work around it. + + CR aspsmith: remove this if we ever add deterministic, semantic type comparison + *) + let rec strip_withs ojkind = + match ojkind with + | Ojkind_const_with (base, ty, modalities) -> + let base, withs = strip_withs base in + let with_ = + Format.asprintf "%a" print_out_type ty + :: (match modalities with + | [] -> [] + | modalities -> "@@" :: modalities) + in + base, with_ :: withs + | base -> base, [] + in + let base, withs = strip_withs ojkind in + (match base with + | Ojkind_const_default -> fprintf ppf "_" + | Ojkind_const_abbreviation abbrev -> fprintf ppf "%s" abbrev + | Ojkind_const_mod (base, modes) -> + let pp_base ppf base = + match base with + | Some base -> fprintf ppf "%a " (pp_element ~nested:true) base + | None -> () + in + Misc.pp_parens_if nested (fun ppf (base, modes) -> + fprintf ppf "%amod @[%a@]" pp_base base + (pp_print_list + ~pp_sep:(fun ppf () -> fprintf ppf "@ ") + (fun ppf -> fprintf ppf "%s")) + modes + ) ppf (base, modes) + | Ojkind_const_product ts -> + let pp_sep ppf () = Format.fprintf ppf "@ & " in + Misc.pp_nested_list ~nested ~pp_element ~pp_sep ppf ts + | Ojkind_const_with _ -> failwith "XXX unreachable (stripped off earlier)" + | Ojkind_const_kind_of _ -> + failwith "XXX unimplemented jkind syntax"); + let withs = List.sort (List.compare String.compare) withs in + match withs with + | [] -> () + | withs -> + pp_print_list + (fun ppf -> + Format.fprintf ppf "@ @[with %a@]" + (pp_print_list + ~pp_sep:(fun ppf () -> fprintf ppf " ") + (fun ppf -> Format.fprintf ppf "%s"))) + ppf + withs + in + pp_element ~nested:false ppf ojkind + +and print_out_jkind ppf ojkind = + let rec pp_element ~nested ppf ojkind = + match ojkind with + | Ojkind_var v -> fprintf ppf "%s" v + | Ojkind_const jkind -> print_out_jkind_const ppf jkind + | Ojkind_product ts -> + let pp_sep ppf () = Format.fprintf ppf "@ & " in + Misc.pp_nested_list ~nested ~pp_element ~pp_sep ppf ts + in + pp_element ~nested:false ppf ojkind + +and print_out_jkind_annot ppf = function + | None -> () + | Some lay -> fprintf ppf "@ : %a" print_out_jkind lay + +and pr_var_jkind ppf (v, l) = match l with + | None -> pr_var ppf v + | Some lay -> fprintf ppf "(%a : %a)" + pr_var v + print_out_jkind lay + +and pr_var_jkinds jks = + print_list pr_var_jkind (fun ppf -> fprintf ppf "@ ") jks + +======= +>>>>>>> ocaml-flambda/flambda-backend:db3778f932fc0a2f9d71ba5f9dcf7c76fcc74a63 let out_label = ref print_out_label let out_modality = ref print_out_modality diff --git a/src/ocaml/typing/outcometree.mli b/src/ocaml/typing/outcometree.mli index e4f27e276..bf13efdb0 100644 --- a/src/ocaml/typing/outcometree.mli +++ b/src/ocaml/typing/outcometree.mli @@ -105,9 +105,8 @@ type out_ret_mode = type out_jkind_const = | Ojkind_const_default | Ojkind_const_abbreviation of string - (** The base of [Ojkind_const_mod] is optional to enable printing individual axes *) - | Ojkind_const_mod of out_jkind_const option * string list - | Ojkind_const_with of out_jkind_const * out_type * out_modality_new list + | Ojkind_const_mod of out_jkind_const * string list + | Ojkind_const_with of out_jkind_const * out_type | Ojkind_const_kind_of of out_type | Ojkind_const_product of out_jkind_const list diff --git a/src/ocaml/typing/predef.ml b/src/ocaml/typing/predef.ml index 4d45db7af..2074124af 100644 --- a/src/ocaml/typing/predef.ml +++ b/src/ocaml/typing/predef.ml @@ -223,13 +223,7 @@ let option_argument_sort = Jkind.Sort.Const.value let option_argument_jkind = Jkind.Builtin.value ~why:( Type_argument {parent_path = path_option; position = 1; arity = 1}) -let list_jkind param = - Jkind.Builtin.immutable_data ~why:Boxed_variant |> - Jkind.add_with_bounds - ~modality:Mode.Modality.Value.Const.id - ~type_expr:param |> - Jkind.mark_best - +let list_jkind = Jkind.Builtin.value ~why:Boxed_variant let list_sort = Jkind.Sort.Const.value let list_argument_sort = Jkind.Sort.Const.value let list_argument_jkind = Jkind.Builtin.value ~why:( @@ -237,40 +231,37 @@ let list_argument_jkind = Jkind.Builtin.value ~why:( let or_null_argument_sort = Jkind.Sort.Const.value -let mk_add_type add_type = - let add_type_with_jkind +let mk_add_type add_type ?manifest type_ident ?(kind=Type_abstract Definition) - ~jkind + ?jkind env = - let decl = - {type_params = []; - type_arity = 0; - type_kind = kind; - type_jkind = Jkind.mark_best jkind; - type_loc = Location.none; - type_private = Asttypes.Public; - type_manifest = manifest; - type_variance = []; - type_separability = []; - type_is_newtype = false; - type_expansion_scope = lowest_level; - type_attributes = []; - type_unboxed_default = false; - type_uid = Uid.of_predef_id type_ident; - } - in - add_type type_ident decl env + let type_jkind = match jkind with + | None -> Jkind.Builtin.value ~why:(Primitive type_ident) + | Some k -> Jkind.of_builtin ~why:(Primitive type_ident) k in - let add_type ?manifest type_ident ?kind ~jkind env = - let jkind = Jkind.of_builtin ~why:(Primitive type_ident) jkind in - add_type_with_jkind ?manifest type_ident ?kind ~jkind env + let decl = + {type_params = []; + type_arity = 0; + type_kind = kind; + type_jkind; + type_loc = Location.none; + type_private = Asttypes.Public; + type_manifest = manifest; + type_variance = []; + type_separability = []; + type_is_newtype = false; + type_expansion_scope = lowest_level; + type_attributes = []; + type_unboxed_default = false; + type_uid = Uid.of_predef_id type_ident; + } in - add_type_with_jkind, add_type + add_type type_ident decl env let mk_add_type1 add_type type_ident ?(kind=fun _ -> Type_abstract Definition) - ~jkind + ?(jkind=Jkind.Builtin.value ~why:(Primitive type_ident)) ?(param_jkind=Jkind.Builtin.value ~why:( Type_argument { parent_path = Path.Pident type_ident; @@ -283,7 +274,7 @@ let mk_add_type1 add_type type_ident {type_params = [param]; type_arity = 1; type_kind = kind param; - type_jkind = Jkind.mark_best (jkind param); + type_jkind = jkind; type_loc = Location.none; type_private = Asttypes.Public; type_manifest = None; @@ -357,7 +348,7 @@ let unrestricted tvar ca_sort = (* CR layouts: Changes will be needed here as we add support for the built-ins to work with non-values, and as we relax the mixed block restriction. *) let build_initial_env add_type add_extension empty_env = - let add_type_with_jkind, add_type = mk_add_type add_type + let add_type = mk_add_type add_type and add_type1 = mk_add_type1 add_type and add_extension = mk_add_extension add_extension in empty_env @@ -367,27 +358,17 @@ let build_initial_env add_type add_extension empty_env = ~separability:Separability.Ind ~param_jkind:(Jkind.add_nullability_crossing (Jkind.Builtin.any ~why:Array_type_argument)) - ~jkind:(fun param -> - Jkind.Builtin.mutable_data ~why:(Primitive ident_array) |> - Jkind.add_with_bounds - ~modality:Mode.Modality.Value.Const.id - ~type_expr:param) |> add_type1 ident_iarray ~variance:Variance.covariant ~separability:Separability.Ind ~param_jkind:(Jkind.add_nullability_crossing (Jkind.Builtin.any ~why:Array_type_argument)) - ~jkind:(fun param -> - Jkind.Builtin.immutable_data ~why:(Primitive ident_iarray) |> - Jkind.add_with_bounds - ~modality:Mode.Modality.Value.Const.id - ~type_expr:param) |> add_type ident_bool ~kind:(variant [ cstr ident_false []; cstr ident_true []]) ~jkind:Jkind.Const.Builtin.immediate |> add_type ident_char ~jkind:Jkind.Const.Builtin.immediate |> add_type ident_exn ~kind:Type_open ~jkind:Jkind.Const.Builtin.value - |> add_type ident_extension_constructor ~jkind:Jkind.Const.Builtin.value + |> add_type ident_extension_constructor |> add_type ident_float ~jkind:Jkind.Const.Builtin.immutable_data |> add_type ident_floatarray ~jkind:Jkind.Const.Builtin.mutable_data |> add_type ident_int ~jkind:Jkind.Const.Builtin.immediate @@ -396,12 +377,6 @@ let build_initial_env add_type add_extension empty_env = |> add_type1 ident_lazy_t ~variance:Variance.covariant ~separability:Separability.Ind - (* CR layouts v2.8: Can [lazy_t] mode-cross at all? According to Zesen: - It can at least cross locality, because it's always heap-allocated. - It might also cross portability, linearity, uniqueness subject to its - parameter. But I'm also fine not doing that for now (and wait until - users complains). *) - ~jkind:(fun _ -> Jkind.Builtin.value ~why:(Primitive ident_lazy_t)) |> add_type1 ident_list ~variance:Variance.covariant ~separability:Separability.Ind @@ -418,12 +393,8 @@ let build_initial_env add_type add_extension empty_env = ~kind:(fun tvar -> variant [cstr ident_none []; cstr ident_some [unrestricted tvar option_argument_sort]]) - ~jkind:(fun param -> - Jkind.Builtin.immutable_data ~why:Boxed_variant |> - Jkind.add_with_bounds - ~modality:Mode.Modality.Value.Const.id - ~type_expr:param) - |> add_type_with_jkind ident_lexing_position + ~jkind:(Jkind.Builtin.value ~why:Boxed_variant) + |> add_type ident_lexing_position ~kind:( let lbl (field, field_type) = let id = Ident.create_predef field in @@ -450,15 +421,7 @@ let build_initial_env add_type add_extension empty_env = None ) ) - (* CR layouts v2.8: Possibly remove this -- and simplify [mk_add_type] -- - when we have a better jkind subsumption check. *) - ~jkind:Jkind.( - of_builtin Const.Builtin.immutable_data - ~why:(Primitive ident_lexing_position) |> - add_with_bounds ~modality:Mode.Modality.Value.Const.id ~type_expr:type_int |> - add_with_bounds ~modality:Mode.Modality.Value.Const.id ~type_expr:type_int |> - add_with_bounds ~modality:Mode.Modality.Value.Const.id ~type_expr:type_int |> - add_with_bounds ~modality:Mode.Modality.Value.Const.id ~type_expr:type_string) + ~jkind:Jkind.Const.Builtin.immutable_data |> add_type ident_string ~jkind:Jkind.Const.Builtin.immutable_data |> add_type ident_unboxed_float ~jkind:Jkind.Const.Builtin.float64 |> add_type ident_unboxed_nativeint ~jkind:Jkind.Const.Builtin.word @@ -492,7 +455,7 @@ let build_initial_env add_type add_extension empty_env = Jkind.Sort.Const.value] let add_simd_stable_extension_types add_type env = - let _, add_type = mk_add_type add_type in + let add_type = mk_add_type add_type in env |> add_type ident_int8x16 ~jkind:Jkind.Const.Builtin.immutable_data |> add_type ident_int16x8 ~jkind:Jkind.Const.Builtin.immutable_data @@ -508,13 +471,13 @@ let add_simd_stable_extension_types add_type env = |> add_type ident_unboxed_float64x2 ~jkind:Jkind.Const.Builtin.vec128 let add_small_number_extension_types add_type env = - let _, add_type = mk_add_type add_type in + let add_type = mk_add_type add_type in env |> add_type ident_float32 ~jkind:Jkind.Const.Builtin.immutable_data |> add_type ident_unboxed_float32 ~jkind:Jkind.Const.Builtin.float32 let add_small_number_beta_extension_types add_type env = - let _, add_type = mk_add_type add_type in + let add_type = mk_add_type add_type in env |> add_type ident_int8 ~jkind:Jkind.Const.Builtin.immediate |> add_type ident_int16 ~jkind:Jkind.Const.Builtin.immediate @@ -526,9 +489,6 @@ let or_null_kind tvar = in Type_variant (cstrs, Variant_with_null, None) -let or_null_jkind = - Jkind.Builtin.value_or_null ~why:(Primitive ident_or_null) - let add_or_null add_type env = let add_type1 = mk_add_type1 add_type in env @@ -542,9 +502,8 @@ let add_or_null add_type env = For now, we mark the type argument as [Separability.Ind] to permit the most argument types, and forbid arrays from accepting [or_null]s. In the future, we will track separability in the jkind system. *) - (* CR layouts v2.8: Add baggage and more mode crossing here. *) ~kind:or_null_kind - ~jkind:(fun _ -> or_null_jkind) + ~jkind:(Jkind.Builtin.value_or_null ~why:(Primitive ident_or_null)) let builtin_values = List.map (fun id -> (Ident.name id, id)) all_predef_exns diff --git a/src/ocaml/typing/predef.mli b/src/ocaml/typing/predef.mli index 0ec600a83..e2800caad 100644 --- a/src/ocaml/typing/predef.mli +++ b/src/ocaml/typing/predef.mli @@ -120,9 +120,9 @@ val ident_some : Ident.t val ident_or_null : Ident.t (* The jkind used for optional function argument types *) -val option_argument_jkind : jkind_lr +val option_argument_jkind : 'd jkind (* The jkind used for list argument types *) -val list_argument_jkind : jkind_lr +val list_argument_jkind : 'd jkind (* To build the initial environment. Since there is a nasty mutual recursion between predef and env, we break it by parameterizing @@ -158,11 +158,6 @@ val add_or_null : (* CR layouts v3.5: remove this when users can define null constructors. *) val or_null_kind : type_expr -> ('a, 'b, constructor_declaration) type_kind -(* Construct the [jkind] of [or_null]. For re-exporting [or_null] - while users can't define their own types with null constructors. *) -(* CR layouts v3.5: remove this when users can define null constructors. *) -val or_null_jkind : Types.jkind_l - (* To initialize linker tables *) val builtin_values: (string * Ident.t) list diff --git a/src/ocaml/typing/printtyp.ml b/src/ocaml/typing/printtyp.ml index b8e508229..15feef01d 100644 --- a/src/ocaml/typing/printtyp.ml +++ b/src/ocaml/typing/printtyp.ml @@ -1627,6 +1627,8 @@ let type_expr ppf ty = prepare_for_printing [ty]; prepared_type_expr ppf ty +let () = Env.print_type_expr := type_expr + (* "Half-prepared" type expression: [ty] should have had its names reserved, but should not have had its loops marked. *) let type_expr_with_reserved_names ppf ty = @@ -1651,11 +1653,6 @@ let tree_of_type_scheme ty = prepare_for_printing [ty]; tree_of_typexp Type_scheme ty -let () = - Env.print_type_expr := type_expr; - Jkind.set_outcometree_of_type_scheme tree_of_type_scheme; - Jkind.set_outcometree_of_modalities_new tree_of_modalities_new - (* Print one type declaration *) let tree_of_constraints params = diff --git a/src/ocaml/typing/subst.ml b/src/ocaml/typing/subst.ml index 0a6ec4c71..8aebd28f7 100644 --- a/src/ocaml/typing/subst.ml +++ b/src/ocaml/typing/subst.ml @@ -82,58 +82,17 @@ type additional_action_config = | Duplicate_variables | Prepare_for_saving -(* Memoize the built-in jkinds, either best or not-best *) -module Builtins_memo : sig - val find : - quality:('l * 'r) jkind_quality -> - ('l * 'r) Jkind.Const.t -> - ('l * 'r) jkind option -end = struct - open Allowance - - type 'd builtins = ('d Jkind.Const.t * 'd jkind) list - - let make_builtins (type l r) (quality : (l * r) jkind_quality) : (l * r) builtins = - Jkind.Const.Builtin.all - |> List.map (fun (builtin : Jkind.Const.Builtin.t) -> - let const_jkind : (l * r) Jkind.Const.t = - builtin.jkind |> Jkind.Const.allow_left |> Jkind.Const.allow_right in - const_jkind, - Jkind.of_const - const_jkind - ~quality - ~annotation:(Some { pjkind_loc = Location.none; - pjkind_desc = Abbreviation builtin.name }) - ~why:Jkind.History.Imported) - - let best_builtins : (allowed * disallowed) builtins = make_builtins Best - let not_best_builtins : (allowed * allowed) builtins = make_builtins Not_best - - let find - (type l r) - ~(quality : (l * r) jkind_quality) - (const : (l * r) Jkind.Const.t) - : (l * r) jkind option - = - (match quality with - | Best -> - List.find_opt (fun ((builtin, _) : (allowed * disallowed) Jkind.Const.t * _) -> - Jkind.Const.no_with_bounds_and_equal - (const |> Jkind.Const.disallow_right) - (builtin |> Jkind.Const.allow_left)) - best_builtins - |> Option.map (fun (_, jkind) -> jkind |> Jkind.allow_left) - | Not_best -> - List.find_opt (fun (builtin, _) -> - Jkind.Const.no_with_bounds_and_equal - const - (builtin |> Jkind.Const.allow_left |> Jkind.Const.allow_right)) - not_best_builtins - |> Option.map (fun (_, jkind) -> jkind |> Jkind.allow_left |> Jkind.allow_right) - ) -end - let with_additional_action = + (* Memoize the built-in jkinds *) + let builtins = + Jkind.Const.Builtin.all + |> List.map (fun (builtin : _ Jkind.Const.Builtin.t) -> + builtin.jkind, + Jkind.of_const builtin.jkind + ~annotation:(Some { pjkind_loc = Location.none; + pjkind_desc = Abbreviation builtin.name }) + ~why:Jkind.History.Imported) + in fun (config : additional_action_config) s -> (* CR layouts: it would be better to put all this stuff outside this function, but it's in here because we really want to tailor the reason @@ -149,12 +108,17 @@ let with_additional_action = match config with | Duplicate_variables -> Duplicate_variables | Prepare_for_saving -> - let prepare_jkind (type l r) loc (jkind : (l * r) jkind) = + let prepare_jkind loc jkind = match Jkind.get_const jkind with | Some const -> - begin match Builtins_memo.find ~quality:jkind.quality const with - | Some jkind -> jkind - | None -> Jkind.of_const ~quality:jkind.quality const ~annotation:None ~why:Imported + let builtin = + List.find_opt (fun (builtin, _) -> + Jkind.Const.equal_after_all_inference_is_done const builtin) + builtins + in + begin match builtin with + | Some (_, jkind) -> jkind |> Jkind.allow_left |> Jkind.allow_right + | None -> Jkind.of_const const ~annotation:None ~why:Imported end | None -> raise(Error (loc, Unconstrained_jkind_variable)) in @@ -559,13 +523,10 @@ let type_declaration' copy_scope s decl = end; type_jkind = begin - let jkind = - match s.additional_action with - | Prepare_for_saving { prepare_jkind } -> + match s.additional_action with + | Prepare_for_saving { prepare_jkind } -> prepare_jkind decl.type_loc decl.type_jkind - | Duplicate_variables | No_action -> decl.type_jkind - in - Jkind.map_type_expr (typexp copy_scope s decl.type_loc) jkind + | Duplicate_variables | No_action -> decl.type_jkind end; type_private = decl.type_private; type_variance = decl.type_variance; diff --git a/src/ocaml/typing/typecore.ml b/src/ocaml/typing/typecore.ml index 7ea7a571e..edfc6ab85 100644 --- a/src/ocaml/typing/typecore.ml +++ b/src/ocaml/typing/typecore.ml @@ -1043,25 +1043,14 @@ let has_poly_constraint spat = (* This is very similar to Ctype.mode_cross_left_alloc. Any bugs here are likely bugs there, too. *) let mode_cross_left_value env ty mode = - if not (is_principal ty) then - Value.disallow_right mode - else begin + let mode = + if not (is_principal ty) then mode else let jkind = type_jkind_purely env ty in - let jkind_of_type = type_jkind_purely_if_principal env in - let upper_bounds = Jkind.get_modal_upper_bounds ~jkind_of_type jkind in - let upper_bounds = - Alloc.Const.merge - { comonadic = upper_bounds; monadic = Alloc.Monadic.Const.max } - in + let upper_bounds = Jkind.get_modal_upper_bounds jkind in let upper_bounds = Const.alloc_as_value upper_bounds in - let lower_bounds = Jkind.get_modal_lower_bounds ~jkind_of_type jkind in - let lower_bounds = - Alloc.Const.merge - { comonadic = Alloc.Comonadic.Const.min; monadic = lower_bounds } - in - let lower_bounds = Const.alloc_as_value lower_bounds in - Value.subtract lower_bounds (Value.meet_const upper_bounds mode) - end + Value.meet_const upper_bounds mode + in + mode |> Value.disallow_right let actual_mode_cross_left env ty (actual_mode : Env.actual_mode) : Env.actual_mode = @@ -1075,43 +1064,27 @@ let alloc_mode_cross_to_max_min env ty { monadic; comonadic } = let comonadic = Alloc.Comonadic.disallow_right comonadic in if not (is_principal ty) then { monadic; comonadic } else let jkind = type_jkind_purely env ty in - let jkind_of_type = type_jkind_purely_if_principal env in - let upper_bounds = Jkind.get_modal_upper_bounds ~jkind_of_type jkind in - let comonadic = Alloc.Comonadic.meet_const upper_bounds comonadic in - let lower_bounds = Jkind.get_modal_lower_bounds ~jkind_of_type jkind in - let monadic = Alloc.Monadic.join_const lower_bounds monadic in + let upper_bounds = Jkind.get_modal_upper_bounds jkind in + let upper_bounds = Alloc.Const.split upper_bounds in + let comonadic = Alloc.Comonadic.meet_const upper_bounds.comonadic comonadic in + let monadic = Alloc.Monadic.imply upper_bounds.monadic monadic in { monadic; comonadic } (** Mode cross a right mode *) (* This is very similar to Ctype.mode_cross_right. Any bugs here are likely bugs there, too. *) -let expect_mode_cross_jkind env jkind (expected_mode : expected_mode) = - let jkind_of_type = type_jkind_purely_if_principal env in - let upper_bounds = Jkind.get_modal_upper_bounds ~jkind_of_type jkind in - let upper_bounds = - Alloc.Const.merge - { comonadic = upper_bounds; monadic = Alloc.Monadic.Const.max } - in +let expect_mode_cross_jkind jkind (expected_mode : expected_mode) = + let upper_bounds = Jkind.get_modal_upper_bounds jkind in let upper_bounds = Const.alloc_as_value upper_bounds in - let lower_bounds = Jkind.get_modal_lower_bounds ~jkind_of_type jkind in - let lower_bounds = - Alloc.Const.merge - { comonadic = Alloc.Comonadic.Const.min; monadic = lower_bounds } - in - let lower_bounds = Const.alloc_as_value lower_bounds in - mode_morph - (fun m -> - Value.imply upper_bounds - (Value.join_const lower_bounds m)) - expected_mode + mode_morph (Value.imply upper_bounds) expected_mode let expect_mode_cross env ty (expected_mode : expected_mode) = if not (is_principal ty) then expected_mode else let jkind = type_jkind_purely env ty in - expect_mode_cross_jkind env jkind expected_mode + expect_mode_cross_jkind jkind expected_mode (** The expected mode for objects *) -let mode_object = expect_mode_cross_jkind Env.empty Jkind.for_object mode_legacy +let mode_object = expect_mode_cross_jkind Jkind.for_object mode_legacy let mode_annots_from_pat pat = let modes = @@ -9606,7 +9579,7 @@ and type_let ?check ?check_strict ?(force_toplevel = false) List.iter (fun pv -> Ctype.check_and_update_generalized_ty_jkind - ~name:pv.pv_id ~loc:pv.pv_loc env pv.pv_type) + ~name:pv.pv_id ~loc:pv.pv_loc pv.pv_type) pvs; List.iter2 (fun (_, _, expected_ty) (exp, vars) -> @@ -9635,7 +9608,7 @@ and type_let ?check ?check_strict ?(force_toplevel = false) | Tpat_alias(_, id, _, _, _, _) -> Some id | _ -> None in Ctype.check_and_update_generalized_ty_jkind - ?name:pat_name ~loc:exp.exp_loc env exp.exp_type + ?name:pat_name ~loc:exp.exp_loc exp.exp_type in List.iter2 update_exp_jkind mode_pat_typ_list exp_list; end diff --git a/src/ocaml/typing/typedecl.ml b/src/ocaml/typing/typedecl.ml index 0bc4409f9..8c85d8bd9 100644 --- a/src/ocaml/typing/typedecl.ml +++ b/src/ocaml/typing/typedecl.ml @@ -147,8 +147,6 @@ type error = } | Non_abstract_reexport of Path.t | Unsafe_mode_crossing_on_invalid_type_kind - | Unsafe_mode_crossing_with_with_bounds - | Illegal_baggage of jkind_l open Typedtree @@ -273,21 +271,7 @@ let enter_type ?abstract_abbrevs rec_flag env sdecl (id, uid) = let type_jkind = Jkind.of_type_decl_default ~context:(Type_declaration path) - (* CR layouts v2.8: This next line is truly terrible. But I think it's OK - for now: it will mean that any [with] constraints get interpreted to - mean that the thing does not cross that mode. That's OK: the jkind - produced here can be an overapproximation of the correct jkind (note - that [any] is the default). Indeed the only reason (I think) we need a - non-[any] jkind here is to produce better error messages. - - Doing better here will be annoying, because a type is in scope in its - own jkind... and yet we don't have an env that we can use at this - point. I think probably the solution will be to have - [Jkind.of_type_decl_default] just return [max] every time it sees a - [with]-kind... which basically just does this [type_exn] trick but much - more sanely. *) - ~transl_type:(fun _ -> Predef.type_exn) - ~default:(Jkind.disallow_right any) + ~default:any sdecl in let abstract_source, type_manifest = @@ -729,15 +713,6 @@ let verify_unboxed_attr unboxed_attr sdecl = which looks through unboxed types. So it's all OK for users, but it's unfortunate that the stored jkind on [t7_2] is imprecise. - The way this interacts with checking of with-bounds is somewhat subtle and complex. - With-bounds for mutually recursive type declarations need to be normalized and checked - in a pass /after/ computing the the proper (best) jkinds for all the types and storing - them in the environment, so that they can be queried during normalization. But it's - important that we call [Jkind.Layout.sub] on each type /eagerly/, so that its sort - variables (which might be referenced from the jkinds of other types) get filled in with - the right sort. So we do that early, in [update_decl_jkind], then check the full jkind - against the dummy jkind later, after normalizing in [transl_type_decl]. - (* CR layouts: see if we can do better here. *) *) @@ -791,28 +766,8 @@ let transl_declaration env sdecl (id, uid) = | _ -> false, false (* Not unboxable, mark as boxed *) in verify_unboxed_attr unboxed_attr sdecl; - (* CR layouts v2.8: This next call to [transl_simple_type] probably can loop - because it will do perhaps-circular jkind checks. But actually I think the - same problem exists in e.g. record fields. We should probably look into this. *) - let transl_type sty = - (* CR layouts v2.8: The [~new_var_jkind:Any] is weird. The type is closed, - and so there shouldn't be any new vars. Investigate. *) - let cty = - Ctype.with_local_level begin fun () -> - Typetexp.transl_simple_type env ~new_var_jkind:Any - ~closed:true Mode.Alloc.Const.legacy sty - end - (* This call to [generalize_structure] is necessary so that copying - during instantiation traverses inside of any type constructors in the - [with]-bound. It's also necessary because the variables here are at - generic level, and so any containers of them should be, too! *) - ~post:(fun cty -> Ctype.generalize_structure cty.ctyp_type) - in - cty.ctyp_type (* CR layouts v2.8: Do this more efficiently. Or probably - add with-kinds to Typedtree. *) - in let jkind_from_annotation, jkind_annotation = - match Jkind.of_type_decl ~context:(Type_declaration path) ~transl_type sdecl with + match Jkind.of_type_decl ~context:(Type_declaration path) sdecl with | Some (jkind, annot) -> Some jkind, annot | None -> None, None @@ -849,7 +804,10 @@ let transl_declaration env sdecl (id, uid) = { definition = path; expected = Predef.path_or_null })) in let type_kind = Predef.or_null_kind param in - let jkind = Predef.or_null_jkind in + let jkind = + Jkind.Builtin.value_or_null + ~why:(Primitive Predef.ident_or_null) + in Ttype_abstract, type_kind, jkind | (Ptype_variant _ | Ptype_record _ | Ptype_record_unboxed_product _ | Ptype_open) @@ -911,7 +869,8 @@ let transl_declaration env sdecl (id, uid) = let tcstrs, cstrs = List.split (List.map make_cstr scstrs) in let rep, jkind = if unbox then - Variant_unboxed, Jkind.of_new_legacy_sort ~why:Old_style_unboxed_type + Variant_unboxed, + Jkind.of_new_legacy_sort ~why:Old_style_unboxed_type else (* We mark all arg sorts "void" here. They are updated later, after the circular type checks make it safe to check sorts. @@ -961,15 +920,14 @@ let transl_declaration env sdecl (id, uid) = (* The jkinds below, and the ones in [lbls], are dummy jkinds which are replaced and made to correspond to each other in [update_decl_jkind]. *) - let jkind = - Jkind.Builtin.product_of_sorts ~why:Unboxed_record - (List.length lbls) + let jkind_ls = + List.map (fun _ -> Jkind.Builtin.any ~why:Initial_typedecl_env) lbls in + let jkind = Jkind.Builtin.product ~why:Unboxed_record jkind_ls in Ttype_record_unboxed_product lbls, Type_record_unboxed_product(lbls', Record_unboxed_product, None), jkind | Ptype_open -> - Ttype_open, Type_open, - Jkind.Builtin.value ~why:Extensible_variant + Ttype_open, Type_open, Jkind.Builtin.value ~why:Extensible_variant in let jkind = (* - If there's an annotation, we use that. It's checked against @@ -988,23 +946,20 @@ let transl_declaration env sdecl (id, uid) = | None, None -> jkind_default in let jkind = - (* Hack: unboxed records are given a product-of-[any]s layout + (* Hack: unboxed records are given a product-of-[any]s jkind when they would otherwise be given [any]. This allows [estimate_type_jkind] to give an estimate that's just barely good enough, such that [constain_type_jkind] can always decompose the product of [any]s and recurse on the labels. See https://github.com/ocaml-flambda/flambda-backend/pull/3399. *) - match kind with - | Type_record_unboxed_product _ -> - begin match Jkind.get_layout jkind with - | Some Any -> - (* [jkind_default] has just what we need here *) - Jkind.set_layout jkind (Jkind.extract_layout jkind_default) - | _ -> jkind - end - | Type_abstract _ | Type_variant _ | Type_record _ - | Type_open -> jkind + match sdecl.ptype_kind with + | Ptype_record_unboxed_product lbls + when Jkind.has_layout_any (Jkind.terrible_relax_l jkind) -> + Jkind.Builtin.product ~why:Unboxed_record + (List.map (fun _ -> jkind) lbls) + | Ptype_abstract | Ptype_variant _ | Ptype_record _ + | Ptype_record_unboxed_product _ | Ptype_open -> jkind in let arity = List.length params in let decl = @@ -1105,8 +1060,7 @@ let rec check_constraints_rec env loc visited ty = let violation = Jkind.Violation.of_ (Not_a_subjkind (Jkind.disallow_right original_jkind, - Jkind.disallow_left inferred_jkind, - [])) + Jkind.disallow_left inferred_jkind)) in raise (Error(loc, Jkind_mismatch_due_to_bad_inference (ty, violation, Check_constraints))) @@ -1214,82 +1168,14 @@ let check_constraints env sdecl (_, decl) = immediate, we should check the manifest is immediate). Also, update the resulting jkind to match the manifest. *) let narrow_to_manifest_jkind env loc decl = - match decl.type_manifest, decl.type_kind with - | None, _ -> decl - | Some _, (Type_record _ | Type_record_unboxed_product _ | Type_variant _ | Type_open) - when not (Builtin_attributes.has_or_null_reexport decl.type_attributes) - -> - (* If there's both a manifest and a non-abstract kind, there's no reason to check that - the jkind of the manifest matches the annotation ([decl.type_jkind]). This is - because the manifest's jkind is exactly the kind's jkind, and we've already checked - and updated [type_jkind] based on the kind. *) - decl - | Some ty, _ -> - (* CR layouts v2.8: Remove this use of [type_jkind_purely], which is slow - and effectful. But we cannot do so easily, sadly. I tried using - [estimate_type_jkind] here instead, but this runs aground with mutually - recursive declarations with manifests. Example: - - {[ - type s1 = float# - and s2 = s1 - ]} - - We assign jkind [any] to both [s1] and [s2] in [transl_declaration], - because we really can't do better at that point. But then when we get - here, [estimate_type_jkind] on [s1] returns [any] -- it won't expand - the manifest to get [float64]. That's not unsound, because a jkind is - always just an approximation. But it does mean that we need to load more - cmi files in practice to get the "real" jkind. This was observed when - compiling Jane Street's codebase, requiring lots more dependencies to be - added. Boo. [type_jkind_purely] avoids this problem, by looking deeply - to find the [float#] and thus the [float64] jkind. - - The solution I have in mind here is to change the jkind assigned in - [transl_declaration] to be [kind_of 'a], where ['a] is the type variable - invented in [enter_type]; that variable can be thought of an empty vessel - that accumulates information about jkinds from usages. It also, - critically, gets unified with the actual type being defined, in - [update_type], which happens before [narrow_to_manifest_jkind]. If we use - [kind_of 'a] in [transl_declaration], then [decl.type_jkind] will be - [kind_of 'a] here, and that will force the [constrain_type_jkind] below - to work just hard enough to find a jkind less than [kind_of 'a] -- - exactly what we want to record in the final [type_jkind] of the decl. - (This will require changing [constrain_type_jkind] to return its best - jkind, but that is easy to do, and indeed used to be the case until the - result was never used anywhere.) - - Do not try this (that is, removing the use of [type_jkind_purely]) before - removing the "horrible hack" just below, as that horrible hack sometimes - avoids calling [constrain_type_jkind], which is necessary for the plan - above to work. *) - let manifest_jkind = Ctype.type_jkind_purely env ty in - (* CR layouts v2.8: Remove this horrible hack. In practice, this - [try_allow_r] fails in the case of a record re-export, because the jkind - from the record has been calculated and put in decl.type_jkind at this - point. So we need to use the deeply broken [type_jkind_purely] and then - [sub_jkind_l] here. The right way forward is to parameterize - [constrain_type_jkind] over the [l]-ness of its bound. But probably not - until we have proper subsumption working, as this hack will likely hold - up for a little while. *) - begin match Jkind.try_allow_r decl.type_jkind with - | None -> begin - let type_equal = Ctype.type_equal env in - let jkind_of_type ty = Some (Ctype.type_jkind_purely env ty) in - match - Jkind.sub_jkind_l ~type_equal ~jkind_of_type - manifest_jkind decl.type_jkind - with - | Ok () -> () - | Error v -> raise (Error (loc, Jkind_mismatch_of_type (ty,v))) - end - | Some type_jkind -> begin - match Ctype.constrain_type_jkind env ty type_jkind with - | Ok () -> () - | Error v -> raise (Error (loc, Jkind_mismatch_of_type (ty,v))) - end - end; - { decl with type_jkind = manifest_jkind } + match decl.type_manifest with + | None -> decl + | Some ty -> + let jkind' = Ctype.type_jkind_purely env ty in + match Jkind.sub_jkind_l jkind' decl.type_jkind with + | Ok jkind' -> { decl with type_jkind = jkind' } + | Error v -> + raise (Error (loc, Jkind_mismatch_of_type (ty,v))) (* Check that the type expression (if present) is compatible with the kind. If both a variant/record definition and a type equation are given, @@ -1344,7 +1230,6 @@ let check_abbrev env sdecl (id, decl) = *) (* [update_label_sorts] additionally returns whether all the jkinds were void, and the jkinds of the labels *) -(* CR reisenberg: remove all_void return *) let update_label_sorts env loc lbls named = (* [named] is [Some sorts] for top-level records (we will update the sorts) and [None] for inlined records. *) @@ -1455,8 +1340,7 @@ module Element_repr = struct else let layout = Jkind.get_layout_defaulting_to_value jkind in let sort = Jkind.Layout.Const.get_sort layout in - let jkind_of_type ty = Some (Ctype.type_jkind_purely env ty) in - let externality_upper_bound = Jkind.get_externality_upper_bound ~jkind_of_type jkind in + let externality_upper_bound = Jkind.get_externality_upper_bound jkind in let base = match sort with | None -> Misc.fatal_error "Element_repr.classify: unexpected abstract layout" @@ -1608,22 +1492,32 @@ let update_constructor_representation Constructor_mixed shape +<<<<<<< janestreet/merlin-jst:5.2.0minus-6 let add_types_to_env decls shapes env = List.fold_right2 (fun (id, decl) shape env -> add_type ~long_path:false ~check:true ~shape id decl env) decls shapes env +||||||| ocaml-flambda/flambda-backend:6a83bbad9dd6c86ea5019a84258b04c81aa34a38 +let add_types_to_env decls shapes env = + List.fold_right2 + (fun (id, decl) shape env -> + add_type ~check:true ~shape id decl env) + decls shapes env + +======= +>>>>>>> ocaml-flambda/flambda-backend:db3778f932fc0a2f9d71ba5f9dcf7c76fcc74a63 (* This function updates jkind stored in kinds with more accurate jkinds. It is called after the circularity checks and the delayed jkind checks have happened, so we can fully compute jkinds of types. - This function does not do any /checks/ on the jkind after performing the update; the - annotation, for example, is checked in the caller, [update_decls_jkind], so that - mutually recursive type decls see each others' best kinds during normalization and - subsumption + This function is an important part + of correctness, as it also checks that the jkind computed from a kind + is consistent with (i.e. a subjkind of) any jkind annotation. + See Note [Default jkinds in transl_declaration]. *) -let update_decl_jkind env id decl = +let update_decl_jkind env dpath decl = let open struct (* For tracking what types appear in record blocks. *) type element_repr_summary = @@ -1649,10 +1543,10 @@ let update_decl_jkind env id decl = let ld_sort = Jkind.Sort.default_to_value_and_get sort in [{lbl with ld_sort}], Record_unboxed, jkind | _, Record_boxed sorts -> - let lbls, _all_void, jkinds = + let lbls, all_void, jkinds = update_label_sorts env loc lbls (Some sorts) in - let jkind = Jkind.for_boxed_record lbls in + let jkind = Jkind.for_boxed_record ~all_void in let reprs = List.map2 (fun lbl jkind -> @@ -1783,8 +1677,8 @@ let update_decl_jkind env id decl = assert false end | cstrs, Variant_boxed cstr_shapes -> - let (_,cstrs) = - List.fold_left (fun (idx,cstrs) cstr -> + let (_,cstrs,all_voids) = + List.fold_left (fun (idx,cstrs,all_voids) cstr -> let arg_sorts = match cstr_shapes.(idx) with | Constructor_uniform_value, arg_sorts -> arg_sorts @@ -1793,7 +1687,7 @@ let update_decl_jkind env id decl = "Typedecl.update_variant_kind doesn't expect mixed \ constructor as input" in - let cd_args, _all_void, jkinds = + let cd_args, all_void, jkinds = update_constructor_arguments_sorts env cstr.Types.cd_loc cstr.Types.cd_args (Some arg_sorts) in @@ -1808,87 +1702,51 @@ let update_decl_jkind env id decl = | Constructor_mixed _ -> cstr_shapes.(idx) <- cstr_repr, arg_sorts in let cstr = { cstr with Types.cd_args } in - (idx+1,cstr::cstrs) - ) (0,[]) cstrs + (idx+1,cstr::cstrs,all_voids && all_void) + ) (0,[],true) cstrs in - let jkind = Jkind.for_boxed_variant cstrs in + let jkind = Jkind.for_boxed_variant ~all_voids in List.rev cstrs, rep, jkind | (([] | (_ :: _)), Variant_unboxed | _, Variant_extensible) -> assert false in - - let new_decl = - match decl.type_kind with - | Type_abstract _ -> - (* Abstract types should never have quality=best, but let's double check that here - just to be safe *) - assert (not (Jkind.is_best decl.type_jkind)); - decl + let new_decl, new_jkind = match decl.type_kind with + | Type_abstract _ -> decl, decl.type_jkind | Type_open -> - let type_jkind = - Jkind.Builtin.value ~why:Extensible_variant - (* It's unlikely we'll ever be able to give better kinds than [value] to - extensible variants, so we're not worried about backwards compatibility if we - mark them as best here, and we want to be able to normalize them away *) - (* See Note [Quality of jkinds during inference] for more information about when - we mark jkinds as best *) - |> Jkind.mark_best - in - { decl with type_jkind } + let type_jkind = Jkind.Builtin.value ~why:Extensible_variant in + { decl with type_jkind }, type_jkind | Type_record (lbls, rep, umc) -> let lbls, rep, type_jkind = update_record_kind decl.type_loc lbls rep in - (* See Note [Quality of jkinds during inference] for more information about when we - mark jkinds as best *) - let type_jkind = Jkind.mark_best type_jkind in - { decl with type_kind = Type_record (lbls, rep, umc); type_jkind } - (* CR layouts v3.0: handle this case in [update_variant_jkind] when - [Variant_with_null] introduced. - - No updating required for [or_null_reexport], and we must not - incorrectly override the jkind to [non_null]. - *) + { decl with type_kind = Type_record (lbls, rep, umc); type_jkind }, + type_jkind | Type_record_unboxed_product (lbls, rep, umc) -> begin match rep with | Record_unboxed_product -> - let lbls = + let lbls, jkinds = List.map (fun (Types.{ld_type} as lbl) -> let jkind = Ctype.type_jkind env ld_type in (* This next line is guaranteed to be OK because of a call to [check_representable] *) let sort = Jkind.sort_of_jkind jkind in let ld_sort = Jkind.Sort.default_to_value_and_get sort in - {lbl with ld_sort} + {lbl with ld_sort}, jkind ) lbls + |> List.split in - let type_jkind = - Jkind.for_unboxed_record - ~jkind_of_type:(Ctype.type_jkind env) - ~jkind_of_first_type:(fun () -> - match lbls with - | [lbl] -> Ctype.type_jkind env lbl.ld_type - | [] | _ :: _ :: _ -> Misc.fatal_error - "[for_unboxed_record] called [jkind_of_first_type] \ - for non-singleton record.") - lbls - in - (* See Note [Quality of jkinds during inference] for more information about when we - mark jkinds as best *) - let type_jkind = Jkind.mark_best type_jkind in + let type_jkind = Jkind.Builtin.product ~why:Unboxed_record jkinds in { decl with type_kind = Type_record_unboxed_product (lbls, rep, umc); - type_jkind } + type_jkind }, + type_jkind end - | Type_variant _ when - Builtin_attributes.has_or_null_reexport decl.type_attributes -> - decl | Type_variant (cstrs, rep, umc) -> let cstrs, rep, type_jkind = update_variant_kind cstrs rep in - (* See Note [Quality of jkinds during inference] for more information about when we - mark jkinds as best *) - let type_jkind = Jkind.mark_best type_jkind in - { decl with type_kind = Type_variant (cstrs, rep, umc); type_jkind } + { decl with type_kind = Type_variant (cstrs, rep, umc); + type_jkind }, + type_jkind in +<<<<<<< janestreet/merlin-jst:5.2.0minus-6 (* Check the layout here, both to check it, but more importantly to fill in any sort variables in the original decl's jkind, which might be shared with the jkinds of other types in a (maybe mutually recursive) type declaration. See Note [Default @@ -1907,11 +1765,84 @@ let update_decl_jkind env id decl = | Less | Equal -> new_decl let update_decls_jkind_reason env decls = +||||||| ocaml-flambda/flambda-backend:6a83bbad9dd6c86ea5019a84258b04c81aa34a38 + (* Check the layout here, both to check it, but more importantly to fill in any sort + variables in the original decl's jkind, which might be shared with the jkinds of + other types in a (maybe mutually recursive) type declaration. See Note [Default + jkinds in transl_declaration]) *) + match + Jkind.Layout.sub new_decl.type_jkind.jkind.layout decl.type_jkind.jkind.layout + with + | Not_le reason -> + raise (Error ( + decl.type_loc, + Jkind_mismatch_of_path ( + Pident id, + Jkind.Violation.of_ ( + Not_a_subjkind ( + new_decl.type_jkind, decl.type_jkind, Nonempty_list.to_list reason))))) + | Less | Equal -> new_decl + +let update_decls_jkind_reason env decls = +======= + let allow_any_crossing = + Builtin_attributes.has_unsafe_allow_any_mode_crossing decl.type_attributes + in + + (* Check that the attribute is valid, if set (unconditionally, for consistency). *) + if allow_any_crossing then begin + match decl.type_kind with + | Type_abstract _ | Type_open -> + raise(Error(decl.type_loc, Unsafe_mode_crossing_on_invalid_type_kind)) + | _ -> () + end; + + (* check that the jkind computed from the kind matches the jkind + annotation, which was stored in decl.type_jkind *) + if new_jkind != decl.type_jkind then + (* CR layouts v2.8: Consider making a function that doesn't compute + histories for this use-case, which doesn't need it. *) + begin match Jkind.sub_jkind_l ~allow_any_crossing new_jkind decl.type_jkind with + | Ok _ -> + (* If the user is asking us to allow any crossing, we use the modal bounds from + the annotation rather than the modal bounds inferred from the type_kind. + However, we /only/ take the modal bounds, not the layout - because we still + want to be able to eg locally use a type declared as layout [any] as [value] + if that's its actual layout! *) + let type_jkind = + Jkind.unsafely_set_upper_bounds ~from:decl.type_jkind + new_decl.type_jkind + in + if allow_any_crossing then + let umc = + Some { modal_upper_bounds = Jkind.get_modal_upper_bounds type_jkind } + in + let type_kind = + match new_decl.type_kind with + | Type_abstract _ | Type_open -> assert false (* Checked above *) + | Type_record (lbls, rep, _) -> + Type_record (lbls, rep, umc) + | Type_record_unboxed_product (lbls, rep, _) -> + Type_record_unboxed_product (lbls, rep, umc) + | Type_variant (cs, rep, _) -> + Type_variant (cs, rep, umc) + in + { new_decl with + type_jkind; + type_kind; } + else new_decl + | Error err -> + raise(Error(decl.type_loc, Jkind_mismatch_of_path (dpath,err))) + end + else new_decl + +let update_decls_jkind_reason decls = +>>>>>>> ocaml-flambda/flambda-backend:db3778f932fc0a2f9d71ba5f9dcf7c76fcc74a63 List.map (fun (id, decl) -> let update_generalized = Ctype.check_and_update_generalized_ty_jkind - ~name:id ~loc:decl.type_loc env + ~name:id ~loc:decl.type_loc in List.iter update_generalized decl.type_params; Btype.iter_type_expr_kind update_generalized decl.type_kind; @@ -1925,20 +1856,7 @@ let update_decls_jkind_reason env decls = let update_decls_jkind env decls = List.map - (fun (id, decl) -> - let allow_any_crossing = - Builtin_attributes.has_unsafe_allow_any_mode_crossing decl.type_attributes - in - - (* Check that the attribute is valid, if set (unconditionally, for consistency). *) - if allow_any_crossing then begin - match decl.type_kind with - | Type_abstract _ | Type_open -> - raise(Error(decl.type_loc, Unsafe_mode_crossing_on_invalid_type_kind)) - | _ -> () - end; - - (id, decl.type_jkind, allow_any_crossing, update_decl_jkind env id decl)) + (fun (id, decl) -> (id, update_decl_jkind env (Pident id) decl)) decls @@ -2453,6 +2371,7 @@ let check_redefined_unit (td: Parsetree.type_declaration) = | _ -> () +<<<<<<< janestreet/merlin-jst:5.2.0minus-6 (* Note [Quality of jkinds during inference] ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -2553,6 +2472,115 @@ let normalize_decl_jkinds env shapes decls = env decls shapes +||||||| ocaml-flambda/flambda-backend:6a83bbad9dd6c86ea5019a84258b04c81aa34a38 + +(* Note [Quality of jkinds during inference] + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + We're careful during inference of jkinds for type declarations not to ever call + [Jkind.mark_best] on a jkind before we've added all the various pieces of information + to the jkind (the full layout, and all the with-bounds). Early in translation, we give + "dummy" kinds to types, without any with bounds, and have been careful not to mark + these as having a [Best] quality. Later on, in [update_decls_jkind], once we've learned + everything there is to know about a type declaration, we mark the new kind as [Best]. + It's important to do this /before/ [normalize_decl_jkinds], so that mutually recursive + type declarations can look up each others' (best, though perhaps not normalized!) + jkind. +*) + +(* Normalize the jkinds in a list of (potentially mutually recursive) type declarations *) +let normalize_decl_jkinds env shapes decls = + (* Add the types, with non-normalized kinds, to the environment to start, so that eg + types can look up their own (potentially non-normalized) kinds *) + let env = + List.fold_right2 + (fun (id, _, _, decl) shape env -> + add_type ~check:true ~shape id decl env) + decls shapes env + in + Misc.Stdlib.List.fold_left_map2 + (fun env (id, original_jkind, allow_any_crossing, decl) shape -> + let normalized_jkind = + Jkind.normalize + ~mode:Require_best + ~jkind_of_type:(fun ty -> Some (Ctype.type_jkind env ty)) + decl.type_jkind + in + let decl = { decl with type_jkind = normalized_jkind } in + (* Add the decl with the normalized kind back to the environment, so that later + kinds don't have to normalize this kind if they mention this type in their + with-bounds *) + let env = add_type ~check:false ~shape:shape id decl env in + if normalized_jkind != original_jkind then begin + (* If the jkind has changed, check that it is a subjkind of the original jkind + that we computed, either from a user-written annotation or as a dummy jkind. + + (see Note [Default jkinds in transl_declaration]) *) + (* CR layouts v2.8: it almost definitely has changed, but also we probably trust + the new jkind (we really only want this check here to check against the + user-written annotation). We might be able to do a better job here and save + some work. *) + let jkind_of_type ty = Some (Ctype.type_jkind_purely env ty) in + let type_equal = Ctype.type_equal env in + match + (* CR layouts v2.8: Consider making a function that doesn't compute + histories for this use-case, which doesn't need it. *) + Jkind.sub_jkind_l + ~type_equal + ~jkind_of_type + ~allow_any_crossing + decl.type_jkind + original_jkind + with + | Ok _ -> + if allow_any_crossing then + (* If the user is asking us to allow any crossing, we use the modal bounds from + the annotation rather than the modal bounds inferred from the type_kind. + However, we /only/ take the modal bounds, not the layout - because we still + want to be able to eg locally use a type declared as layout [any] as [value] + if that's its actual layout! *) + let type_jkind = + match + Jkind.unsafely_set_mod_bounds + ~from:original_jkind + decl.type_jkind + with + | Ok jkind -> jkind + | Error () -> + raise(Error(decl.type_loc, Unsafe_mode_crossing_with_with_bounds)) + in + let umc = + Some { modal_upper_bounds = + Jkind.get_modal_upper_bounds ~jkind_of_type type_jkind; + modal_lower_bounds = + Jkind.get_modal_lower_bounds ~jkind_of_type type_jkind } + in + let type_kind = + match decl.type_kind with + | Type_abstract _ | Type_open -> assert false (* Checked above *) + | Type_record (lbls, rep, _) -> + Type_record (lbls, rep, umc) + | Type_record_unboxed_product (lbls, rep, _) -> + Type_record_unboxed_product (lbls, rep, umc) + | Type_variant (cs, rep, _) -> + Type_variant (cs, rep, umc) + in + env, (id, { decl with type_jkind; type_kind; }) + else env, (id, decl) + | Error err -> + raise(Error(decl.type_loc, Jkind_mismatch_of_path (Pident id, err))) + end + else env, (id, decl)) + env + decls + shapes +======= +let add_types_to_env decls shapes env = + List.fold_right2 + (fun (id, decl) shape env -> + add_type ~check:true ~shape id decl env) + decls shapes env +>>>>>>> ocaml-flambda/flambda-backend:db3778f932fc0a2f9d71ba5f9dcf7c76fcc74a63 (* Translate a set of type declarations, mutually recursive or not *) let transl_type_decl env rec_flag sdecl_list = @@ -2734,17 +2762,14 @@ let transl_type_decl env rec_flag sdecl_list = (* Check that constraints are enforced *) List.iter2 (check_constraints new_env) sdecl_list decls; (* Add type properties to declarations *) - let new_env, decls = + let decls = try - let new_env, decls = - decls - |> name_recursion_decls sdecl_list - |> Typedecl_variance.update_decls env sdecl_list - |> Typedecl_separability.update_decls env - |> update_decls_jkind new_env - |> normalize_decl_jkinds new_env shapes - in - new_env, update_decls_jkind_reason new_env decls + decls + |> name_recursion_decls sdecl_list + |> Typedecl_variance.update_decls env sdecl_list + |> Typedecl_separability.update_decls env + |> update_decls_jkind new_env + |> update_decls_jkind_reason with | Typedecl_variance.Error (loc, err) -> raise (Error (loc, Variance err)) @@ -3571,7 +3596,7 @@ let transl_value_decl env loc ~sig_modalities valdecl = Env.enter_value ~mode:Mode.Value.legacy valdecl.pval_name.txt v env ~check:(fun s -> Warnings.Unused_value_declaration s) in - Ctype.check_and_update_generalized_ty_jkind ~name:id ~loc newenv ty; + Ctype.check_and_update_generalized_ty_jkind ~name:id ~loc ty; let desc = { val_id = id; @@ -3799,17 +3824,9 @@ let approx_type_decl sdecl_list = let id = Ident.create_scoped ~scope sdecl.ptype_name.txt in let path = Path.Pident id in let injective = sdecl.ptype_kind <> Ptype_abstract in - let transl_type sty = - Misc.fatal_errorf - "@[I do not yet know how to deal with [with]-types (such as %a)@ in \ - recursive modules. Please contact the Jane Street OCaml Language@ \ - team for help if you see this." - Pprintast.core_type sty - in let jkind = Jkind.of_type_decl_default ~context:(Type_declaration path) - ~transl_type ~default:(Jkind.Builtin.value ~why:Default_type_jkind) sdecl in @@ -3832,15 +3849,7 @@ let check_recmod_typedecl env loc recmod_ids path decl = check_regularity ~abs_env:env env loc path decl to_check; (* additional coherence check, as one might build an incoherent signature, and use it to build an incoherent module, cf. #7851 *) - (* Call [check_kind_coherence] rather than [check_coherence] here, which - avoids a call to [narrow_to_manifest_jkind]. That call sometimes spuriously fails on - valid programs (see test 14 in testsuite/tests/typing-jkind-bounds/basics.ml). This - isn't sound, but this check is already unsound otherwise (see issue #13765)! And not - performing this check on the jkinds is no less sound than what already exists. So - instead of fixing the spurious failures, we choose to just not perform the check, - with the intention of fixing the jkind soundness issue once the other soundness issue - is resolved. *) - ignore (check_kind_coherence env loc path decl) + ignore (check_coherence env loc path decl) (**** Error report ****) @@ -4405,17 +4414,8 @@ let report_error ppf = function (Path.name definition) | Unsafe_mode_crossing_on_invalid_type_kind -> fprintf ppf - "@[[%@%@unsafe_allow_any_mode_crossing] is not allowed on this kind of \ - type declaration.@ Only records, unboxed products, and variants are \ - supported.@]" - | Unsafe_mode_crossing_with_with_bounds -> - fprintf ppf - "@[[%@%@unsafe_allow_any_mode_crossing] is not allowed with a kind \ - annotation containing with-bounds.@]" - | Illegal_baggage jkind -> - fprintf ppf - "@[Illegal %a in kind annotation of an abbreviation:@ %a@]" - Style.inline_code "with" Jkind.format jkind + "@[[%@%@unsafe_allow_any_mode_crossing] is not allowed on this kind of type declaration.\ + @ Only records, unboxed products, and variants are supported.@]" let () = Location.register_error_of_exn diff --git a/src/ocaml/typing/typedecl.mli b/src/ocaml/typing/typedecl.mli index fa75290eb..ff2f24c4f 100644 --- a/src/ocaml/typing/typedecl.mli +++ b/src/ocaml/typing/typedecl.mli @@ -183,8 +183,6 @@ type error = } | Non_abstract_reexport of Path.t | Unsafe_mode_crossing_on_invalid_type_kind - | Unsafe_mode_crossing_with_with_bounds - | Illegal_baggage of jkind_l exception Error of Location.t * error diff --git a/src/ocaml/typing/typedecl_separability.ml b/src/ocaml/typing/typedecl_separability.ml index 5cde9c1de..ea023d9e1 100644 --- a/src/ocaml/typing/typedecl_separability.ml +++ b/src/ocaml/typing/typedecl_separability.ml @@ -482,9 +482,8 @@ let msig_of_external_type env decl = Result.is_error (Ctype.check_decl_jkind env decl (Jkind.Builtin.value_or_null ~why:Separability_check)) in - let jkind_of_type = Ctype.type_jkind_purely_if_principal env in let is_external = - match Jkind.get_externality_upper_bound ~jkind_of_type decl.type_jkind with + match Jkind.get_externality_upper_bound decl.type_jkind with | Internal -> false | External | External64 -> true in diff --git a/src/ocaml/typing/typemod.ml b/src/ocaml/typing/typemod.ml index 94e5bc3e2..40745237e 100644 --- a/src/ocaml/typing/typemod.ml +++ b/src/ocaml/typing/typemod.ml @@ -759,12 +759,23 @@ let merge_constraint initial_env loc sg lid constr = the declaration from the original signature. Note that this is also checked in [check_type_decl], but there it is check, not constrain, which we need here to deal with type variables in package constraints - (see tests in [typing-modules/package_constraint.ml]). Because the - check is repeated later -- and with better handling for errors -- we - just drop any error here. *) - ignore - (* CR layouts v2.8: Does this type_jkind need to be instantiated? *) - (Ctype.constrain_decl_jkind initial_env tdecl sig_decl.type_jkind); + (see tests in [typing-modules/package_constraint.ml]). *) + begin match + Ctype.constrain_decl_jkind initial_env tdecl sig_decl.type_jkind + with + | Ok _-> () + | Error v -> + (* This is morally part of the below [check_type_decl], so we give the + same error that would be given there for good error messages. *) + let err = + Includemod.Error.In_Type_declaration( + id, Type_declarations + {got=tdecl; + expected=sig_decl; + symptom=Includecore.Jkind v}) + in + raise Includemod.(Error(initial_env, err)) + end; check_type_decl outer_sig_env sg_for_env loc id None tdecl sig_decl; let tdecl = { tdecl with type_manifest = None } in return ~ghosts ~replace_by:(Some(Sig_type(id, tdecl, rs, priv))) diff --git a/src/ocaml/typing/typemode.ml b/src/ocaml/typing/typemode.ml index b8ec36840..474f7e524 100644 --- a/src/ocaml/typing/typemode.ml +++ b/src/ocaml/typing/typemode.ml @@ -25,32 +25,25 @@ exception Error of Location.t * error module Axis_pair = struct type 'm t = - | Modal_axis_pair : ('m, 'a, 'd) Mode.Alloc.axis * 'a -> modal t + | Modal_axis_pair : 'a Axis.Modal.t * 'a -> modal t | Any_axis_pair : 'a Axis.t * 'a -> maybe_nonmodal t let of_string s = let open Mode in match s with - | "local" -> Any_axis_pair (Modal (Comonadic Areality), Locality.Const.Local) - | "global" -> - Any_axis_pair (Modal (Comonadic Areality), Locality.Const.Global) - | "unique" -> - Any_axis_pair (Modal (Monadic Uniqueness), Uniqueness.Const.Unique) - | "aliased" -> - Any_axis_pair (Modal (Monadic Uniqueness), Uniqueness.Const.Aliased) - | "once" -> Any_axis_pair (Modal (Comonadic Linearity), Linearity.Const.Once) - | "many" -> Any_axis_pair (Modal (Comonadic Linearity), Linearity.Const.Many) + | "local" -> Any_axis_pair (Modal Locality, Locality.Const.Local) + | "global" -> Any_axis_pair (Modal Locality, Locality.Const.Global) + | "unique" -> Any_axis_pair (Modal Uniqueness, Uniqueness.Const.Unique) + | "aliased" -> Any_axis_pair (Modal Uniqueness, Uniqueness.Const.Aliased) + | "once" -> Any_axis_pair (Modal Linearity, Linearity.Const.Once) + | "many" -> Any_axis_pair (Modal Linearity, Linearity.Const.Many) | "nonportable" -> - Any_axis_pair - (Modal (Comonadic Portability), Portability.Const.Nonportable) - | "portable" -> - Any_axis_pair (Modal (Comonadic Portability), Portability.Const.Portable) - | "contended" -> - Any_axis_pair (Modal (Monadic Contention), Contention.Const.Contended) - | "shared" -> - Any_axis_pair (Modal (Monadic Contention), Contention.Const.Shared) + Any_axis_pair (Modal Portability, Portability.Const.Nonportable) + | "portable" -> Any_axis_pair (Modal Portability, Portability.Const.Portable) + | "contended" -> Any_axis_pair (Modal Contention, Contention.Const.Contended) + | "shared" -> Any_axis_pair (Modal Contention, Contention.Const.Shared) | "uncontended" -> - Any_axis_pair (Modal (Monadic Contention), Contention.Const.Uncontended) + Any_axis_pair (Modal Contention, Contention.Const.Uncontended) | "maybe_null" -> Any_axis_pair (Nonmodal Nullability, Nullability.Maybe_null) | "non_null" -> Any_axis_pair (Nonmodal Nullability, Nullability.Non_null) @@ -58,48 +51,35 @@ module Axis_pair = struct | "external64" -> Any_axis_pair (Nonmodal Externality, Externality.External64) | "external_" -> Any_axis_pair (Nonmodal Externality, Externality.External) - | "yielding" -> - Any_axis_pair (Modal (Comonadic Yielding), Yielding.Const.Yielding) - | "unyielding" -> - Any_axis_pair (Modal (Comonadic Yielding), Yielding.Const.Unyielding) + | "yielding" -> Any_axis_pair (Modal Yielding, Yielding.Const.Yielding) + | "unyielding" -> Any_axis_pair (Modal Yielding, Yielding.Const.Unyielding) | _ -> raise Not_found end let transl_annot (type m) ~(annot_type : m annot_type) ~required_mode_maturity - annot : m Axis_pair.t Location.loc = + annot : m Axis_pair.t = Option.iter (fun maturity -> Language_extension.assert_enabled ~loc:annot.loc Mode maturity) required_mode_maturity; - let pair : m Axis_pair.t = - match Axis_pair.of_string annot.txt, annot_type with - | Any_axis_pair (Nonmodal _, _), (Mode | Modality) | (exception Not_found) - -> - raise (Error (annot.loc, Unrecognized_modifier (annot_type, annot.txt))) - | Any_axis_pair (Modal axis, mode), Mode -> Modal_axis_pair (axis, mode) - | Any_axis_pair (Modal axis, mode), Modality -> Modal_axis_pair (axis, mode) - | pair, Modifier -> pair - in - { txt = pair; loc = annot.loc } + match Axis_pair.of_string annot.txt, annot_type with + | Any_axis_pair (Nonmodal _, _), (Mode | Modality) | (exception Not_found) -> + raise (Error (annot.loc, Unrecognized_modifier (annot_type, annot.txt))) + | Any_axis_pair (Modal axis, mode), Mode -> Modal_axis_pair (axis, mode) + | Any_axis_pair (Modal axis, mode), Modality -> Modal_axis_pair (axis, mode) + | pair, Modifier -> pair let unpack_mode_annot { txt = Parsetree.Mode s; loc } = { txt = s; loc } -module Transled_modifier = struct - type 'a t = 'a Location.loc option - - let drop_loc modifier = Option.map Location.get_txt modifier -end - -module Transled_modifiers = - Jkind_axis.Axis_collection.Indexed (Transled_modifier) +module Opt_axis_collection = Axis_collection (Option) let transl_modifier_annots annots = let step modifiers_so_far annot = - let { txt = Any_axis_pair (type a) ((axis, mode) : a Axis.t * a); loc } = + let (Any_axis_pair (type a) ((axis, mode) : a Axis.t * a)) = transl_annot ~annot_type:Modifier ~required_mode_maturity:None @@ unpack_mode_annot annot in - let (module A) = Axis.get axis in + let (module A : Axis_s with type t = a) = Axis.get axis in let is_top = A.le A.max mode in if is_top then @@ -109,41 +89,37 @@ let transl_modifier_annots annots = (* Location.prerr_warning new_raw.loc (Warnings.Mod_by_top new_raw.txt) *) (); let is_dup = - Option.is_some (Transled_modifiers.get ~axis modifiers_so_far) + Option.is_some (Opt_axis_collection.get ~axis modifiers_so_far) in if is_dup then raise (Error (annot.loc, Duplicated_axis axis)); - Transled_modifiers.set ~axis modifiers_so_far (Some { txt = mode; loc }) + Opt_axis_collection.set ~axis modifiers_so_far (Some mode) in let empty_modifiers = - Transled_modifiers.Create.f { f = (fun ~axis:_ -> None) } + Opt_axis_collection.create { f = (fun ~axis:_ -> None) } in List.fold_left step empty_modifiers annots let transl_mode_annots annots : Alloc.Const.Option.t = let step modifiers_so_far annot = - let { txt = - Modal_axis_pair (type m a d) - ((axis, mode) : (m, a, d) Mode.Alloc.axis * a); - loc - } = + let (Modal_axis_pair (type a) ((axis, mode) : a Axis.Modal.t * a)) = transl_annot ~annot_type:Mode ~required_mode_maturity:(Some Stable) @@ unpack_mode_annot annot in let axis = Axis.Modal axis in - if Option.is_some (Transled_modifiers.get ~axis modifiers_so_far) + if Option.is_some (Opt_axis_collection.get ~axis modifiers_so_far) then raise (Error (annot.loc, Duplicated_axis axis)); - Transled_modifiers.set ~axis modifiers_so_far (Some { txt = mode; loc }) + Opt_axis_collection.set ~axis modifiers_so_far (Some mode) in let empty_modifiers = - Transled_modifiers.Create.f { f = (fun ~axis:_ -> None) } + Opt_axis_collection.create { f = (fun ~axis:_ -> None) } in let modes = List.fold_left step empty_modifiers annots in - { areality = Transled_modifier.drop_loc modes.locality; - linearity = Transled_modifier.drop_loc modes.linearity; - uniqueness = Transled_modifier.drop_loc modes.uniqueness; - portability = Transled_modifier.drop_loc modes.portability; - contention = Transled_modifier.drop_loc modes.contention; - yielding = Transled_modifier.drop_loc modes.yielding + { areality = modes.locality; + linearity = modes.linearity; + uniqueness = modes.uniqueness; + portability = modes.portability; + contention = modes.contention; + yielding = modes.yielding } let untransl_mode_annots ~loc (modes : Mode.Alloc.Const.Option.t) = @@ -171,19 +147,19 @@ let transl_modality ~maturity { txt = Parsetree.Modality modality; loc } = transl_annot ~annot_type:Modality ~required_mode_maturity:(Some maturity) { txt = modality; loc } in - match axis_pair.txt with - | Modal_axis_pair (Comonadic Areality, mode) -> + match axis_pair with + | Modal_axis_pair (Locality, mode) -> Modality.Atom (Comonadic Areality, Meet_with (Const.locality_as_regionality mode)) - | Modal_axis_pair (Comonadic Linearity, mode) -> + | Modal_axis_pair (Linearity, mode) -> Modality.Atom (Comonadic Linearity, Meet_with mode) - | Modal_axis_pair (Comonadic Portability, mode) -> - Modality.Atom (Comonadic Portability, Meet_with mode) - | Modal_axis_pair (Monadic Uniqueness, mode) -> + | Modal_axis_pair (Uniqueness, mode) -> Modality.Atom (Monadic Uniqueness, Join_with mode) - | Modal_axis_pair (Monadic Contention, mode) -> + | Modal_axis_pair (Portability, mode) -> + Modality.Atom (Comonadic Portability, Meet_with mode) + | Modal_axis_pair (Contention, mode) -> Modality.Atom (Monadic Contention, Join_with mode) - | Modal_axis_pair (Comonadic Yielding, mode) -> + | Modal_axis_pair (Yielding, mode) -> Modality.Atom (Comonadic Yielding, Meet_with mode) let untransl_modality (a : Modality.t) : Parsetree.modality loc = diff --git a/src/ocaml/typing/typemode.mli b/src/ocaml/typing/typemode.mli index eb8b3cc8c..96fdd145b 100644 --- a/src/ocaml/typing/typemode.mli +++ b/src/ocaml/typing/typemode.mli @@ -30,13 +30,7 @@ val untransl_modalities : Mode.Modality.Value.Const.t -> Parsetree.modalities -module Transled_modifier : sig - type 'a t = 'a Location.loc option -end - -module Transled_modifiers : - module type of Jkind_axis.Axis_collection.Indexed (Transled_modifier) - (** Interpret a list of modifiers. A "modifier" is any keyword coming after a `mod` in a jkind *) -val transl_modifier_annots : Parsetree.modes -> Transled_modifiers.t +val transl_modifier_annots : + Parsetree.modes -> Jkind_axis.Axis_collection(Option).t diff --git a/src/ocaml/typing/typeopt.ml b/src/ocaml/typing/typeopt.ml index c658a6159..d7bce8dc6 100644 --- a/src/ocaml/typing/typeopt.ml +++ b/src/ocaml/typing/typeopt.ml @@ -71,7 +71,7 @@ let is_base_type env ty base_ty_path = | _ -> false let is_always_gc_ignorable env ty = - let ext : Jkind_axis.Externality.t = + let ext : Jkind.Externality.t = (* We check that we're compiling to (64-bit) native code before counting External64 types as gc_ignorable, because bytecode is intended to be platform independent. *) @@ -294,12 +294,9 @@ let bigarray_specialize_kind_and_layout env ~kind ~layout typ = | _ -> (kind, layout) -let value_kind_of_value_jkind env jkind = +let value_kind_of_value_jkind jkind = let layout = Jkind.get_layout_defaulting_to_value jkind in - (* In other places, we use [Ctype.type_jkind_purely_if_principal]. Here, we omit - the principality check, as we're just trying to compute optimizations. *) - let jkind_of_type ty = Some (Ctype.type_jkind_purely env ty) in - let externality_upper_bound = Jkind.get_externality_upper_bound ~jkind_of_type jkind in + let externality_upper_bound = Jkind.get_externality_upper_bound jkind in match layout, externality_upper_bound with | Base Value, External -> Pintval | Base Value, External64 -> @@ -470,7 +467,7 @@ let rec value_kind env ~loc ~visited ~depth ~num_nodes_visited ty in if cannot_proceed () then num_nodes_visited, - mk_nn (value_kind_of_value_jkind env decl.type_jkind) + mk_nn (value_kind_of_value_jkind decl.type_jkind) else let visited = Numbers.Int.Set.add (get_id ty) visited in (* Default of [Pgenval] is currently safe for the missing cmi fallback @@ -497,7 +494,7 @@ let rec value_kind env ~loc ~visited ~depth ~num_nodes_visited ty "Typeopt.value_kind: non-unary unboxed record can't have kind value" | Type_abstract _ -> num_nodes_visited, - mk_nn (value_kind_of_value_jkind env decl.type_jkind) + mk_nn (value_kind_of_value_jkind decl.type_jkind) | Type_open -> num_nodes_visited, mk_nn Pgenval end | Ttuple labeled_fields -> diff --git a/src/ocaml/typing/types.ml b/src/ocaml/typing/types.ml index 1c42915d3..b4766b3dc 100644 --- a/src/ocaml/typing/types.ml +++ b/src/ocaml/typing/types.ml @@ -28,6 +28,7 @@ let is_mutable = function (* Type expressions for the core language *) +<<<<<<< janestreet/merlin-jst:5.2.0minus-6 module Jkind_mod_bounds = Jkind_axis.Axis_collection.Indexed (Misc_stdlib.Monad.Identity) @@ -35,6 +36,16 @@ module With_bounds_type_info = struct type t = {relevant_axes : Jkind_axis.Axis_set.t } [@@unboxed] end +||||||| ocaml-flambda/flambda-backend:6a83bbad9dd6c86ea5019a84258b04c81aa34a38 +module Jkind_mod_bounds = + Jkind_axis.Axis_collection.Indexed (Misc.Stdlib.Monad.Identity) + +module With_bounds_type_info = struct + type t = {relevant_axes : Jkind_axis.Axis_set.t } [@@unboxed] +end + +======= +>>>>>>> ocaml-flambda/flambda-backend:db3778f932fc0a2f9d71ba5f9dcf7c76fcc74a63 type transient_expr = { mutable desc: type_desc; mutable level: int; @@ -106,54 +117,18 @@ and _ commutable_gen = | Cunknown : [> `none] commutable_gen | Cvar : {mutable commu: any commutable_gen} -> [> `var] commutable_gen -(* jkinds *) - -and jkind_history = - | Interact of - { reason : Jkind_intf.History.interact_reason; - jkind1 : jkind_desc_packed; - history1 : jkind_history; - jkind2 : jkind_desc_packed; - history2 : jkind_history - } - | Creation of Jkind_intf.History.creation_reason - -(* See [With_bounds_types] for more information on this abstract type. *) -and with_bounds_types - -and 'd with_bounds = - | No_with_bounds : ('l * 'r) with_bounds - | With_bounds : with_bounds_types -> ('l * Allowance.disallowed) with_bounds - -and ('layout, 'd) layout_and_axes = - { layout : 'layout; - mod_bounds : Jkind_mod_bounds.t; - with_bounds : 'd with_bounds - } - constraint 'd = 'l * 'r - -and 'd jkind_desc = (Jkind_types.Sort.t Jkind_types.Layout.t, 'd) layout_and_axes - constraint 'd = 'l * 'r - -and jkind_desc_packed = Pack_jkind_desc : ('l * 'r) jkind_desc -> jkind_desc_packed - -and 'd jkind_quality = - | Best : ('l * disallowed) jkind_quality - | Not_best : ('l * 'r) jkind_quality - -and 'd jkind = - { jkind : 'd jkind_desc; - annotation : Parsetree.jkind_annotation option; - history : jkind_history; - has_warned : bool; - quality : 'd jkind_quality; - } - constraint 'd = 'l * 'r - +and 'd jkind = (type_expr, 'd) Jkind_types.t and jkind_l = (allowed * disallowed) jkind and jkind_r = (disallowed * allowed) jkind and jkind_lr = (allowed * allowed) jkind -and jkind_packed = Pack_jkind : ('l * 'r) jkind -> jkind_packed + +(* jkind depends on types defined in this file, but Jkind.equal is required + here. When jkind.ml is loaded, it calls set_jkind_equal to fill a ref to the + function. *) +(** Corresponds to [Jkind.equal] *) +let jkind_equal = ref (fun _ _ -> + failwith "jkind_equal should be set by jkind.ml") +let set_jkind_equal f = jkind_equal := f module TransientTypeOps = struct type t = type_expr @@ -317,8 +292,7 @@ and type_decl_kind = (label_declaration, label_declaration, constructor_declaration) type_kind and unsafe_mode_crossing = - { modal_upper_bounds : Mode.Alloc.Comonadic.Const.t; - modal_lower_bounds : Mode.Alloc.Monadic.Const.t } + { modal_upper_bounds : Mode.Alloc.Const.t } and ('lbl, 'lbl_flat, 'cstr) type_kind = Type_abstract of type_origin @@ -886,16 +860,6 @@ let flat_element_to_lowercase_string = function | Vec128 -> "vec128" | Word -> "word" -let equal_unsafe_mode_crossing umc1 umc2 = - let { modal_upper_bounds = mub1; - modal_lower_bounds = mlb1 } = umc1 in - let { modal_upper_bounds = mub2; - modal_lower_bounds = mlb2 } = umc2 in - Mode.Alloc.Comonadic.Const.le mub1 mub2 - && Mode.Alloc.Comonadic.Const.le mub2 mub1 - && Mode.Alloc.Monadic.Const.le mlb1 mlb2 - && Mode.Alloc.Monadic.Const.le mlb2 mlb1 - (**** Definitions for backtracking ****) type change = @@ -1030,144 +994,19 @@ end let eq_type t1 t2 = t1 == t2 || repr t1 == repr t2 let compare_type t1 t2 = compare (get_id t1) (get_id t2) -(* with-bounds *) - -(* Compare types roughly semantically, to allow best-effort deduplication of the types - inside of with-bounds. - - This function might compare two types as inequal that are actually equal, but should - /never/ compare two types as equal that are not semantically equal. It may go without - saying but it also needs to expose a total order. - - Someday, it's probably desirable to merge this, and make it compatible, with - [Ctype.eqtype], though that seems quite hard. -*) -(* CR layouts v2.8: this will likely loop infinitely on rectypes *) -(* CR layouts v2.8: this whole approach is probably /quite/ wrong, since type_expr is - fundamentally mutable, and using mutable things in the keys of maps is a recipe for - disaster. We haven't found a way that this can break /yet/, but it is likely that one - exists. We should rethink this whole approach soon. *) -let rec best_effort_compare_type_expr te1 te2 = - if te1 == te2 || repr te1 == repr te2 then 0 - else - let rank ty = - match get_desc ty with - (* Types which must be compared by id *) - | Tvar _ - | Tunivar _ - | Tobject (_, _) - | Tfield (_, _, _, _) - | Tnil - | Tvariant _ - | Tpackage (_, _) - | Tarrow (_, _, _, _) - (* CR layouts v2.8: we can actually see Tsubst here in certain cases, eg during - [Ctype.copy] when copying the types inside of with_bounds. We also can't - compare Tsubst structurally, because the Tsubsts that are created in - Ctype.copy are cyclic (?). So the best we can do here is compare by id. - this is almost definitely wrong, primarily because of the mutability - we - should fix that. *) - | Tsubst (_, _) - -> - (* This negation is important! We want all these types to compare strictly /less/ - than the structural ones - the easiest way to make that happen is to make the - id negative, and ensure the ranks of all the other variants are positive *) - -ty.id - (* Types which we know how to compare structurally*) - | Ttuple _ -> 2 - | Tunboxed_tuple _ -> 3 - | Tconstr (_, _, _) -> 5 - | Tpoly (_, _) -> 6 - (* Types we should never see *) - | Tlink _ -> Misc.fatal_error "Tlink encountered in With_bounds_types" - in - match get_desc te1, get_desc te2 with - | Ttuple elts1, Ttuple elts2 - | Tunboxed_tuple elts1, Tunboxed_tuple elts2 -> - List.compare - (fun (l1, te1) (l2, te2) -> - let l = Option.compare String.compare l1 l2 in - if l = 0 then best_effort_compare_type_expr te1 te2 else l - ) - elts1 - elts2 - | Tconstr (p1, args1, _), Tconstr (p2, args2, _) -> - let p = Path.compare p1 p2 in - if p = 0 - then List.compare best_effort_compare_type_expr args1 args2 - else p - | Tpoly (t1, ts1), Tpoly (t2, ts2) -> - (* NOTE: this is mostly broken according to the semantics of type_expr, but probably - fine for the particular "best-effort" comparison we want. *) - List.compare best_effort_compare_type_expr (t1 :: ts1) (t2 :: ts2) - | _, _ -> rank te1 - rank te2 - -(* A map from [type_expr] to [With_bounds_type_info.t], specifically defined with a - (best-effort) semantic comparison function on types to be used in the with-bounds of a - jkind. - - This module is defined internally to be equal (via two uses of [Obj.magic]) to the - abstract type [with_bound_types] to break the circular dependency between with-bounds - and type_expr. The alternative to this approach would be mutually recursive modules, - but this approach creates a smaller diff with upstream and makes rebasing easier. -*) -module With_bounds_types : sig - (* Note that only the initially needed bits of [Stdlib.Map.S] are exposed here; feel - free to expose more functions if you need them! *) - type t = with_bounds_types - type info := With_bounds_type_info.t - - val empty : t - val is_empty : t -> bool - val to_seq : t -> (type_expr * info) Seq.t - val of_list : (type_expr * info) list -> t - val of_seq : (type_expr * info) Seq.t -> t - val singleton : type_expr -> info -> t - val map : (info -> info) -> t -> t - val merge - : (type_expr -> info option -> info option -> info option) -> - t -> t -> t - val update : type_expr -> (info option -> info option) -> t -> t - val find_opt : type_expr -> t -> info option -end = struct - module M = Map.Make(struct - type t = type_expr - - let compare = best_effort_compare_type_expr - end) - include M - - type map = With_bounds_type_info.t M.t - type t = with_bounds_types - - let of_map : map -> with_bounds_types = Obj.magic - let to_map : with_bounds_types -> map = Obj.magic - - let empty = empty |> of_map - let is_empty t = t |> to_map |> is_empty - let to_seq t = t |> to_map |> to_seq - let of_seq s = of_seq s |> of_map - let of_list l = l |> List.to_seq |> of_seq - let singleton ty i = add ty i (to_map empty) |> of_map - let map f t = map f (to_map t) |> of_map - let merge f t1 t2 = merge f (to_map t1) (to_map t2) |> of_map - let update te f t = update te f (to_map t) |> of_map - let find_opt te t = find_opt te (to_map t) -end - (* Constructor and accessors for [row_desc] *) let create_row ~fields ~more ~closed ~fixed ~name = - { row_fields=fields; row_more=more; - row_closed=closed; row_fixed=fixed; row_name=name } + { row_fields=fields; row_more=more; + row_closed=closed; row_fixed=fixed; row_name=name } (* [row_fields] subsumes the original [row_repr] *) let rec row_fields row = match get_desc row.row_more with | Tvariant row' -> - row.row_fields @ row_fields row' + row.row_fields @ row_fields row' | _ -> - row.row_fields + row.row_fields let rec row_repr_no_fields row = match get_desc row.row_more with diff --git a/src/ocaml/typing/types.mli b/src/ocaml/typing/types.mli index ab6529f61..0020b40cc 100644 --- a/src/ocaml/typing/types.mli +++ b/src/ocaml/typing/types.mli @@ -67,6 +67,7 @@ val is_mutable : mutability -> bool Note on mutability: TBD. *) +<<<<<<< janestreet/merlin-jst:5.2.0minus-6 (** The mod-bounds of a jkind *) module Jkind_mod_bounds : @@ -78,6 +79,20 @@ module With_bounds_type_info : sig type t = { relevant_axes : Jkind_axis.Axis_set.t } [@@unboxed] end +||||||| ocaml-flambda/flambda-backend:6a83bbad9dd6c86ea5019a84258b04c81aa34a38 + +(** The mod-bounds of a jkind *) +module Jkind_mod_bounds : + module type of Jkind_axis.Axis_collection.Indexed (Misc.Stdlib.Monad.Identity) + +(** Information tracked about an individual type within the with-bounds for a jkind *) +module With_bounds_type_info : sig + (** The axes that the with-bound applies to *) + type t = { relevant_axes : Jkind_axis.Axis_set.t } [@@unboxed] +end + +======= +>>>>>>> ocaml-flambda/flambda-backend:db3778f932fc0a2f9d71ba5f9dcf7c76fcc74a63 type type_expr type row_desc type row_field @@ -240,102 +255,19 @@ and abbrev_memo = This is only allowed when the real type is known. *) - -(**** Jkinds ****) - -(** A history of conditions placed on a jkind. - - INVARIANT: at most one sort variable appears in this history. - This is a natural consequence of producing this history by comparing - jkinds. -*) -and jkind_history = - | Interact of - { reason : Jkind_intf.History.interact_reason; - jkind1 : jkind_desc_packed; - history1 : jkind_history; - jkind2 : jkind_desc_packed; - history2 : jkind_history - } - | Creation of Jkind_intf.History.creation_reason - -(** The types within the with-bounds of a jkind *) -and with_bounds_types - -and 'd with_bounds = - | No_with_bounds : ('l * 'r) with_bounds - | With_bounds - : with_bounds_types -> ('l * Allowance.disallowed) with_bounds - (** Invariant : there must always be at least one type in this set **) - -and ('layout, 'd) layout_and_axes = - { layout : 'layout; - mod_bounds : Jkind_mod_bounds.t; - with_bounds : 'd with_bounds - } - constraint 'd = 'l * 'r - -and 'd jkind_desc = (Jkind_types.Sort.t Jkind_types.Layout.t, 'd) layout_and_axes - constraint 'd = 'l * 'r - -and jkind_desc_packed = Pack_jkind_desc : ('l * 'r) jkind_desc -> jkind_desc_packed - -(** The "quality" of a jkind indicates whether we are able to learn more about the jkind - later. - - We can never learn more about a [Best] jkind to make it "lower" (according to - [Jkind.sub] / [Jkind.sub_jkind_l]). A [Not_best], jkind, however, might have more - information provided about it later that makes it lower. - - Note that only left jkinds can be [Best] (meaning we can never compare less than or - equal to a left jkind!) -*) -and 'd jkind_quality = - | Best : ('l * disallowed) jkind_quality - | Not_best : ('l * 'r) jkind_quality - -and 'd jkind = - { jkind : 'd jkind_desc; - annotation : Parsetree.jkind_annotation option; - history : jkind_history; - has_warned : bool; - quality : 'd jkind_quality; - } - constraint 'd = 'l * 'r - +(** Jkinds classify types. *) +(* CR layouts v2.8: Say more here. *) +and 'd jkind = (type_expr, 'd) Jkind_types.t and jkind_l = (allowed * disallowed) jkind (* the jkind of an actual type *) and jkind_r = (disallowed * allowed) jkind (* the jkind expected of a type *) and jkind_lr = (allowed * allowed) jkind (* the jkind of a variable *) -and jkind_packed = Pack_jkind : ('l * 'r) jkind -> jkind_packed - -(* A map from [type_expr] to [With_bounds_type_info.t], specifically defined with a - (best-effort) semantic comparison function on types to be used in the with-bounds of a - jkind. - This module is defined internally to be equal (via two uses of [Obj.magic]) to the - abstract type [with_bound_types] to break the circular dependency between with-bounds - and type_expr. The alternative to this approach would be mutually recursive modules, - but this approach creates a smaller diff with upstream and makes rebasing easier. -*) -module With_bounds_types : sig - (* Note that only the initially needed bits of [Stdlib.Map.S] are exposed here; feel - free to expose more functions if you need them! *) - type t = with_bounds_types - type info := With_bounds_type_info.t - - val empty : t - val is_empty : t -> bool - val to_seq : t -> (type_expr * info) Seq.t - val of_list : (type_expr * info) list -> t - val of_seq : (type_expr * info) Seq.t -> t - val singleton : type_expr -> info -> t - val map : (info -> info) -> t -> t - val merge - : (type_expr -> info option -> info option -> info option) -> - t -> t -> t - val update : type_expr -> (info option -> info option) -> t -> t - val find_opt : type_expr -> t -> info option -end +(* jkind depends on types defined in this file, but Jkind.equal is required + here. When jkind.ml is loaded, it calls set_jkind_equal to fill a ref to the + function. *) +(** INTERNAL USE ONLY + jkind.ml should call this with the definition of Jkind.equal *) +val set_jkind_equal : (jkind_l -> jkind_l -> bool) -> unit val is_commu_ok: commutable -> bool val commu_ok: commutable @@ -640,8 +572,7 @@ type type_declaration = and type_decl_kind = (label_declaration, label_declaration, constructor_declaration) type_kind and unsafe_mode_crossing = - { modal_upper_bounds : Mode.Alloc.Comonadic.Const.t; - modal_lower_bounds : Mode.Alloc.Monadic.Const.t } + { modal_upper_bounds : Mode.Alloc.Const.t } and ('lbl, 'lbl_flat, 'cstr) type_kind = Type_abstract of type_origin @@ -1061,9 +992,6 @@ val compare_flat_element : flat_element -> flat_element -> int val flat_element_to_string : flat_element -> string val flat_element_to_lowercase_string : flat_element -> string -val equal_unsafe_mode_crossing : - unsafe_mode_crossing -> unsafe_mode_crossing -> bool - (**** Utilities for backtracking ****) type snapshot From 9edacce579fe588baa85f898e3f8e1c8299b588d Mon Sep 17 00:00:00 2001 From: Liam Stevenson Date: Mon, 17 Feb 2025 14:11:29 -0500 Subject: [PATCH 21/25] Resolve conflicts --- src/ocaml/parsing/pprintast.ml | 20 +- src/ocaml/preprocess/parser_raw.ml | 10253 +++++++++++------------ src/ocaml/preprocess/parser_recover.ml | 8454 ++++++++++--------- src/ocaml/typing/jkind.ml | 18 - src/ocaml/typing/jkind.mli | 68 - src/ocaml/typing/jkind_axis.ml | 8 - src/ocaml/typing/jkind_axis.mli | 360 +- src/ocaml/typing/jkind_types.mli | 4 +- src/ocaml/typing/mode_intf.mli | 8 - src/ocaml/typing/oprint.ml | 178 +- src/ocaml/typing/typedecl.ml | 263 +- src/ocaml/typing/types.ml | 18 - src/ocaml/typing/types.mli | 26 - 13 files changed, 9358 insertions(+), 10320 deletions(-) diff --git a/src/ocaml/parsing/pprintast.ml b/src/ocaml/parsing/pprintast.ml index dc8daa6de..548ee234a 100644 --- a/src/ocaml/parsing/pprintast.ml +++ b/src/ocaml/parsing/pprintast.ml @@ -463,29 +463,11 @@ and jkind_annotation ?(nested = false) ctxt f k = match k.pjkind_desc with (pp_print_list ~pp_sep:pp_print_space mode) modes ) f (t, modes) end -<<<<<<< janestreet/merlin-jst:5.2.0minus-6 - | With (t, ty, modalities) -> - Misc_stdlib.pp_parens_if nested (fun f (t, ty, modalities) -> - pp f "%a with %a%a" - (jkind_annotation ~nested:true ctxt) t - (core_type ctxt) ty - optional_space_atat_modalities modalities; - ) f (t, ty, modalities) -||||||| ocaml-flambda/flambda-backend:6a83bbad9dd6c86ea5019a84258b04c81aa34a38 - | With (t, ty, modalities) -> - Misc.pp_parens_if nested (fun f (t, ty, modalities) -> - pp f "%a with %a%a" - (jkind_annotation ~nested:true ctxt) t - (core_type ctxt) ty - optional_space_atat_modalities modalities; - ) f (t, ty, modalities) -======= | With (t, ty) -> - Misc.pp_parens_if nested (fun f (t, ty) -> + Misc_stdlib.pp_parens_if nested (fun f (t, ty) -> pp f "%a with %a" (jkind_annotation ~nested:true ctxt) t (core_type ctxt) ty ) f (t, ty) ->>>>>>> ocaml-flambda/flambda-backend:db3778f932fc0a2f9d71ba5f9dcf7c76fcc74a63 | Kind_of ty -> pp f "kind_of_ %a" (core_type ctxt) ty | Product ts -> Misc_stdlib.pp_parens_if nested (fun f ts -> diff --git a/src/ocaml/preprocess/parser_raw.ml b/src/ocaml/preprocess/parser_raw.ml index 950fb54d1..9e57b6521 100644 --- a/src/ocaml/preprocess/parser_raw.ml +++ b/src/ocaml/preprocess/parser_raw.ml @@ -1799,22 +1799,22 @@ module Tables = struct Obj.repr () and default_reduction = - (16, "\000\000\000\000\000\000\004/\004.\004-\004,\004+\003\253\004*\004)\004(\004'\004&\004%\004$\004#\004\"\004!\004 \004\031\004\030\004\029\004\028\004\027\004\026\004\025\004\024\004\023\003\252\004\022\004\021\004\020\004\019\004\018\004\017\004\016\004\015\004\014\004\r\004\012\004\011\004\n\004\t\004\b\004\007\004\006\004\005\004\004\004\003\004\002\004\001\004\000\003\255\003\254\000\000\000\000\000,\000\154\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\138\002r\002\135\002\134\002\133\002\139\002\143\002\131\002\137\002\136\002s\002\141\002\132\002\130\002\129\002\128\002}\002{\002\142\002\140\000\000\000\000\000\000\0013\000\000\000\000\002v\000\000\000\000\000\000\002x\000\000\000\000\000\000\002z\002\147\002\144\002|\002\127\002~\002t\002\145\002\146\000\000\005\b\005\t\000\000\000\000\000\000\000\000\000\000\002S\002U\002T\000(\001\248\000\156\000\000\001-\001.\000\000\000\000\000\000\002\184\002\183\000\000\000\000\000\000\001=\000\000\000\000\000\000\000'\000\000\000\000\000\000\000\000\000\000\000\000\0017\002\254\001;\000\000\000\000\000\000\004\247\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002M\002\178\000\000\002)\000\000\000\000\000\000\000\000\005\003\000\000\004\254\000\000\000\000\005\000\000\000\005\002\000\000\004\255\005\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002K\0019\000\000\002\253\000\000\001\200\000\000\000\000\000\000\000\000\000\000\002\197\000\000\004\246\000\000\003S\003R\000\000\000\000\004\243\000\000\000\000\004\242\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000w\000\000\000\000\000u\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\202\002\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\151\000\000\000\000\000\146\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\246\000\000\000\000\000\000\002\r\000\000\001\249\002\012\000\000\001\247\000a\000#\000 \002\004\002\002\000\029\000\137\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002O\000\026\000\000\000\000\000\000\000\000\004G\000\000\000\000\001\028\000\000\000\000\000\000\000%\000\"\000\031\000\000\000\000\002\005\002\003\004\241\004\249\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003C\000\000\000\000\000\000\000\000\000\000\003D\000\000\000\018\000\138\000\159\000\139\000\028\000\000\000\000\000\000\000\000\000\000\004H\000\000\000\000\000\000\000\000\000\000\004J\000\000\000\000\000\000\000\000\000\000\000\000\004K\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000$\000!\000\030\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004I\000\000\000\000\000\000\000\136\000\000\000\000\000\000\000\019\000\000\000\000\000\000\000\000\000\021\000\000\000\000\000\000\000\000\000\020\000\000\000\140\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0044\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0045\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0046\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0047\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0048\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0049\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004:\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004;\000\000\000\000\000\000\000\000\000\000\000\000\004F\000\000\000\000\000\000\000\000\000\000\000&\000\000\000\000\000\000\000\150\000\000\000\000\000\000\000\149\000\000\000\000\002F\003j\003N\000\000\000\143\000\000\003O\000\000\000\000\002\148\000\000\000\000\000\000\000\000\004\214\000\000\004\215\000\000\000\000\000\142\000\000\000\000\000\000\000\144\000\000\000\145\000\000\000\147\000\000\000\000\000\148\003@\003?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003(\003'\005\019\000\000\000\000\000\000\000\000\000\000\000\000\003\239\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001z\001y\000\000\003\156\003\151\003\152\003\157\000\000\003\154\003\149\003\150\003\155\000\000\000\000\000\000\000\000\000\000\002#\002\"\000\000\003\237\000\000\000\000\000\000\000\000\000\000\002!\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0035\000\000\000\000\000\000\000\000\0016\000\017\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\006\000\000\000\000\002\t\002\007\002\014\000D\003\183\004\213\004\212\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\142\001\141\000\000\000\000\000\000\000t\000\000\001L\000\000\003\158\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\017\000\000\004\248\003\244\000\000\000\000\005\004\005\005\000\000\000\000\000\000\000\000\003\159\000\000\003\243\005\020\000v\005\018\003\153\003\233\005\n\003\148\003\234\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001r\001q\000\000\001p\003\236\000\000\000\000\000\000\000\000\003\240\003\251\003\242\000\000\000\000\000\000\003\247\000\000\000\000\000\000\002\218\002\216\002\213\002\217\002\212\000\000\002\221\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001j\001i\000\000\001h\003\249\003\241\000~\003*\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\220\000\000\000\000\000}\000\000\003\235\000\000\000\000\000\000\000\000\000\000\000\000\001n\001m\000\000\001l\003+\000\000\000\000\000\000\003\250\000\000\000\000\000\000\002\214\002\219\000\000\000|\000\000\003\248\000\000\003\246\000\000\003\160\000\000\000\000\003w\003\245\003,\000\000\000\000\003\165\000\000\002\222\000\000\000\000\000\000\000\000\002\153\001\227\001\228\003\162\000\000\003\161\003\164\000\000\003\163\000\000\001\140\0034\002\228\000\000\000\000\000\000\002\224\002\225\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001~\001}\000\000\001|\0030\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\138\001\137\000\000\001\136\0033\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\134\001\133\000\000\001\132\0032\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\027\001K\000\000\001I\001G\000\000\000\000\001Z\000\000\001Y\001[\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\230\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\181\000\000\001\180\001\179\000\000\001\182\000\000\001\175\000\000\000\000\000\000\000\000\000\000\001\174\000\000\001\172\001\170\000\000\000\000\000\000\001W\000\000\000\000\001V\002\229\001X\000\000\000\000\000\000\000\000\000\000\000\000\002H\000\000\000\000\000\000\001\020\002I\000\000\001\019\000\000\002G\002W\000\000\000\000\000\000\000\000\000\000\001f\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001c\000\000\001a\000\000\001b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001d\000\000\000\000\001_\000\000\000\000\000\000\000\000\001e\000\000\000\000\001^\000\000\001]\001\\\001`\000\000\001\021\0038\000\000\000\000\000\000\002\180\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\025\003\024\000\000\000\000\000r\003\187\002\n\000s\003\191\003\189\000\000\000\000\000\000\003\203\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\029\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003<\000\000\000\000\002/\000\000\000\000\000\000\000\000\000\000\000\000\005%\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\245\000\000\000\000\000\000\000\000\000\000\002.\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\001\002;\002\000\0027\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003L\000\000\000\000\003M\000\000\000\000\003;\000\000\000\000\000\000\002-\000\000\001\030\000\000\001\031\000\000\000\000\002\027\000\000\000\000\002\031\000\000\002\188\000\000\000\000\002\185\000\000\002\186\002\030\002\028\000\000\002\187\000\000\002 \000\000\000\000\000\000\003\220\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\199\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\186\003E\000\000\000\000\000\000\000\000\000\000\001P\001O\000\000\001Q\000\000\000\000\000\000\003\198\000\000\003\195\000\000\000\000\000\000\003\172\000\000\000\000\000\000\000\000\000\000\000\000\003\015\003\014\000\000\000\000\005\011\003\201\003\188\003\226\000\000\000\000\000\000\000\000\000\000\003G\000\000\000\000\000\000\000\000\000\244\003{\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\014\000\189\000\000\000\000\000\000\000\000\000\000\000\000\000\188\000\187\000\000\000\000\000\000\001\026\001\025\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\020\003\019\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0042\001\163\000\000\000\000\002\156\000\000\000\000\000\165\0043\002\157\0037\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\156\000\000\000\000\001\157\000\000\000\000\000\000\000\000\001\152\000\000\000\000\001\153\000\000\000\000\001\146\000\000\000\000\001\147\001\145\000\000\000\000\001\148\000\000\000\000\000\000\000\000\001\160\000\000\000\000\001\161\000\000\000\000\001\159\000\000\000\000\001\158\000\000\000\000\000\000\000\000\000\000\000\000\001\130\001\129\000\000\001\128\0031\000\000\000\000\000\000\000\000\002\226\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\154\000\000\000\000\001\155\000\000\000\000\001\149\000\000\000\000\001\150\001\162\000\000\000\000\001\151\001\143\000\000\000\000\001\206\000\022\001\165\000\000\000\000\000\000\003\174\000\000\000\000\003\173\000\000\000\000\000\000\000\000\003\176\000\000\000\000\003p\000\000\000\000\003\180\000\000\000\000\003\178\003\194\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003>\003=\000\185\003q\000\000\003\175\000\000\000\000\003\179\000\000\000\000\003\177\001\018\000\000\000\151\000\152\000\000\000\000\000\000\000\000\000\182\001\185\000\000\000\000\001\186\000\000\000\000\000\245\000\000\001\188\001\187\000\000\000\000\003\196\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000e\003K\003J\000\000\003\217\003:\0039\003\225\000\000\003\224\000\000\000\000\003\216\000\000\000\000\000\000\000\000\000\000\000\000\003\215\003\210\000\000\003\209\000\000\000\000\003\214\000\000\003\219\000\000\000\000\000\000\000\000\000\000\003\213\000\000\003\218\000\000\000\000\003\212\000\000\000\000\003\197\000\000\000\000\000\000\002\252\000\000\002\174\000\000\000\000\000\000\003z\002\251\000\000\003\206\000\000\000\000\000\000\002\011\000\000\000\000\000\000\000\000\000\000\000\000\000\163\002\181\000\000\000\000\001\230\000\000\001\231\001\229\003F\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\182\000\000\003\181\000\000\000\000\000\000\000\000\000\000\000\000\003\030\003\029\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\167\000\000\003\166\000\000\000\000\003\205\000\000\000\000\000\000\000\000\000\000\000\000\003\221\000\000\000\000\003\204\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003t\003\193\000\000\003\192\000\000\000\000\000\000\000\000\000\000\003\228\000\000\003\211\000\000\000\000\003\227\000\000\000\000\000\000\000\000\000\000\003\230\003\208\000\000\003\207\000\000\000\000\003\229\000\000\000\000\000\000\000\000\002\190\000\000\000\000\002\196\000\000\000\000\002\192\000\000\000\000\002\194\000\000\002\189\000\000\000\000\002\195\000\000\000\000\002\191\000\000\000\000\002\193\000\000\000\000\000\170\000\000\000\000\000\000\000\000\000\169\000\000\000\000\000\000\000\000\000\000\000\000\002'\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\167\000\000\002\019\000\000\000\000\000\000\002&\000\000\000\000\000\000\000x\000\000\000\000\000y\000\000\000\000\000\000\000\000\002?\002@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001B\000\000\000\000\000\132\000\000\001E\001C\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\168\000z\000\000\000\000\002\250\000\000\000\000\001\164\002\172\000\000\001T\000\000\000\000\001S\001U\001\183\000\000\000\000\000\000\000\000\000\000\001\015\000\000\000\000\000\000\000\000\000\000\003\232\003\223\000\000\003\222\000\000\000\000\003\231\003\190\000\000\000\000\000\000\000\000\003\184\000\000\000\000\003\185\000\000\003\169\000\000\003\170\000\000\003\171\000\000\000\000\000\000\001\017\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002o\000\000\000\000\000\000\002n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0029\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\196\004\206\000\000\000\000\004\205\000\000\000\000\000\000\000\000\000\000\002\235\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0011\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002Y\000\000\002\241\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0041\000\000\000\000\003}\000\000\002\232\000\000\000\000\000\000\000\000\000\000\005\023\000\000\000\000\003T\000\000\000\162\000\000\003U\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000H\000\000\000\000\000\000\000\000\002E\000\000\002D\000\000\000\000\000\000\000\000\000K\000\000\000\000\000\000\002\248\000\000\002\247\000\000\000\000\000\000\000\000\000L\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000Q\000\000\000\000\000\000\000R\000P\000\000\000T\000\000\000\000\000\000\000\000\000\000\000J\000\000\000\000\000\000\000\000\000\000\000\000\000M\000\000\000S\000\000\000N\000O\000\000\001\215\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\194\000`\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002=\000\000\000\000\000\000\005\014\000\000\000\000\005\016\000\000\0009\000\000\000\000\005\026\000\000\005\025\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\r\000\000\000\000\005\015\000\000\000\000\000\000\002\243\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\245\000\000\000\000\001\243\001\241\000\000\000:\000\000\000\000\005\029\000\000\005\028\000\000\000\000\000\000\001\239\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\244\000\000\000\000\001\242\001\240\000\000\000\000\000\000\000<\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\167\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000Y\000\000\000\000\000\000\000\000\000\000\000\000\0006\000\000\000\000\000X\000\000\0004\001\168\000\000\000C\0000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\166\000\000\000W\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000]\000\000\000_\000^\000\000\000Z\000\000\000\000\002\161\000\000\0008\000\000\000\000\000\000\0007\000\000\000\000\000\000\000;\000\000\000[\000\000\000=\000>\000\000\001\217\000\000\000\000\000\000\000\000\000\000\000\000\000A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\190\004\209\004\200\000\000\000\000\004\204\0040\004\199\004\208\004\207\001\213\000\000\004\198\000\000\004\196\000\000\000\000\000\000\000\000\004\211\000\000\000\000\000\000\000\000\000\000\000\000\0035\000\000\000\000\001\202\002\159\004\201\004\197\004\210\002\231\000\000\000\000\004\194\000-\004\193\000\000\000\000\000\160\000\000\0015\000\000\000\000\001\212\001\211\000\000\002\240\001,\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\157\000\000\001'\000\000\004\203\003\006\003\007\003\002\003\004\003\003\003\005\000\000\000\000\000\000\000\158\000\000\001(\000\000\000\000\000\000\0035\000\000\001+\000\000\000\000\000\000\000\000\004\202\000\000\002\025\000\000\000\000\003\238\000\000\001x\003.\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001v\001u\000\000\001t\003-\000\000\000\000\000E\000\000\000\000\000F\000\000\000\000\003\186\000\000\000\000\000\000\000\000\000\000\000\192\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003#\003\"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\016\000\000\000\155\000\000\000\000\000\000\000\000\000\000\000\000\001\238\001\232\000\000\000\000\001\233\002m\000\000\002l\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004D\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004E\000\000\000\000\000\000\000\000\000\000\000\000\002e\000\000\000\000\002i\002a\000\000\000\000\000\000\000\000\003\001\002\255\003\000\000\000\002]\000\000\000\000\000\000\002d\000\000\000\000\002h\002`\004\240\000\000\000\000\000\000\000\000\000\000\002g\000\000\000\000\002k\002c\002_\000\000\000\000\002f\000\000\000\000\002j\002b\002^\002\\\000\000\0035\000\000\001*\000\000\000\000\000\000\000\000\003\135\003\n\003\b\003\t\000\000\000\000\000\000\000\000\0035\000\000\001)\000\000\000\000\000\000\000\000\003\134\000\000\000\000\000\000\000\000\000\000\000\000\002q\000\000\000\000\000\000\002p\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002:\000\000\000\000\000\000\000\000\000\000\002(\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\198\003\140\000\000\000\000\000\000\000\025\000\000\002%\000\000\000\000\000\000\000\000\002\176\000\000\003\138\000\000\000\000\002\020\000\000\003\137\000\000\000\000\000\000\002\023\002\021\000\000\002\024\002$\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\192\003\144\003\130\000\000\003\136\003\131\003\143\003\142\003\141\003\139\001\209\003\129\000\000\003\127\000\000\000\000\000\000\000\000\000\000\003\146\000\000\003\132\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0035\000\000\000\000\001\204\003\133\003\128\003\145\001\208\003~\000\000\000\141\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004<\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004=\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004>\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004B\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004C\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\174\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\175\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\172\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\173\000\000\000\000\000\000\000\000\001:\000)\000\000\000\000\001?\000\000\000\000\000*\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\021\000\000\000.\000\000\000\000\000\000\000\000\000\181\000\000\001/\000\001\000\000\000\000\0014\000\002\000\000\000\000\000\000\001\251\001\252\000\003\000\000\000\000\000\000\000\000\001\254\001\255\001\253\000\023\001\250\000\024\000\000\002\200\000\000\000\004\000\000\002\201\000\000\000\005\000\000\002\202\000\000\000\000\002\203\000\006\000\000\000\007\000\000\002\204\000\000\000\b\000\000\002\205\000\000\000\t\000\000\002\206\000\000\000\n\000\000\002\207\000\000\000\011\000\000\002\208\000\000\000\000\002\209\000\012\000\000\000\000\002\210\000\r\000\000\000\000\000\000\000\000\000\000\004\229\004\224\004\225\004\228\004\226\000\000\000\000\000\000\004\222\004\217\004\218\004\221\004\219\000\000\004\233\000\014\000\000\004\232\000\000\001\219\000\000\000\000\004\230\000\000\004\231\000\000\000\000\000\000\000\000\001\223\001\224\000\000\000\000\001\222\001\221\000\015\000\000\000\000\000\000\005\007\000\000\005\006") + (16, "\000\000\000\000\000\000\004/\004.\004-\004,\004+\003\253\004*\004)\004(\004'\004&\004%\004$\004#\004\"\004!\004 \004\031\004\030\004\029\004\028\004\027\004\026\004\025\004\024\004\023\003\252\004\022\004\021\004\020\004\019\004\018\004\017\004\016\004\015\004\014\004\r\004\012\004\011\004\n\004\t\004\b\004\007\004\006\004\005\004\004\004\003\004\002\004\001\004\000\003\255\003\254\000\000\000\000\000,\000\154\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\138\002r\002\135\002\134\002\133\002\139\002\143\002\131\002\137\002\136\002s\002\141\002\132\002\130\002\129\002\128\002}\002{\002\142\002\140\000\000\000\000\000\000\0013\000\000\000\000\002v\000\000\000\000\000\000\002x\000\000\000\000\000\000\002z\002\147\002\144\002|\002\127\002~\002t\002\145\002\146\000\000\005\b\005\t\000\000\000\000\000\000\000\000\000\000\002S\002U\002T\000(\001\248\000\156\000\000\001-\001.\000\000\000\000\000\000\002\184\002\183\000\000\000\000\000\000\001=\000\000\000\000\000\000\000'\000\000\000\000\000\000\000\000\000\000\000\000\0017\002\254\001;\000\000\000\000\000\000\004\247\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002M\002\178\000\000\002)\000\000\000\000\000\000\000\000\005\003\000\000\004\254\000\000\000\000\005\000\000\000\005\002\000\000\004\255\005\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002K\0019\000\000\002\253\000\000\001\200\000\000\000\000\000\000\000\000\000\000\002\197\000\000\004\246\000\000\003S\003R\000\000\000\000\004\243\000\000\000\000\004\242\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000w\000\000\000\000\000u\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\202\002\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\151\000\000\000\000\000\146\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\246\000\000\000\000\000\000\002\r\000\000\001\249\002\012\000\000\001\247\000a\000#\000 \002\004\002\002\000\029\000\137\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002O\000\026\000\000\000\000\000\000\000\000\004G\000\000\000\000\001\028\000\000\000\000\000\000\000%\000\"\000\031\000\000\000\000\002\005\002\003\004\241\004\249\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003C\000\000\000\000\000\000\000\000\000\000\003D\000\000\000\018\000\138\000\159\000\139\000\028\000\000\000\000\000\000\000\000\000\000\004H\000\000\000\000\000\000\000\000\000\000\004J\000\000\000\000\000\000\000\000\000\000\000\000\004K\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000$\000!\000\030\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004I\000\000\000\000\000\000\000\136\000\000\000\000\000\000\000\019\000\000\000\000\000\000\000\000\000\021\000\000\000\000\000\000\000\000\000\020\000\000\000\140\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0044\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0045\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0046\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0047\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0048\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0049\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004:\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004;\000\000\000\000\000\000\000\000\000\000\000\000\004F\000\000\000\000\000\000\000\000\000\000\000&\000\000\000\000\000\000\000\150\000\000\000\000\000\000\000\149\000\000\000\000\002F\003j\003N\000\000\000\143\000\000\003O\000\000\000\000\002\148\000\000\000\000\000\000\000\000\004\214\000\000\004\215\000\000\000\000\000\142\000\000\000\000\000\000\000\144\000\000\000\145\000\000\000\147\000\000\000\000\000\148\003@\003?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003(\003'\005\019\000\000\000\000\000\000\000\000\000\000\000\000\003\239\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001z\001y\000\000\003\156\003\151\003\152\003\157\000\000\003\154\003\149\003\150\003\155\000\000\000\000\000\000\000\000\000\000\002#\002\"\000\000\003\237\000\000\000\000\000\000\000\000\000\000\002!\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0035\000\000\000\000\000\000\000\000\0016\000\017\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\006\000\000\000\000\002\t\002\007\002\014\000D\003\183\004\213\004\212\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\142\001\141\000\000\000\000\000\000\000t\000\000\001L\000\000\003\158\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\017\000\000\004\248\003\244\000\000\000\000\005\004\005\005\000\000\000\000\000\000\000\000\003\159\000\000\003\243\005\020\000v\005\018\003\153\003\233\005\n\003\148\003\234\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001r\001q\000\000\001p\003\236\000\000\000\000\000\000\000\000\003\240\003\251\003\242\000\000\000\000\000\000\003\247\000\000\000\000\000\000\002\218\002\216\002\213\002\217\002\212\000\000\002\221\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001j\001i\000\000\001h\003\249\003\241\000~\003*\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\220\000\000\000\000\000}\000\000\003\235\000\000\000\000\000\000\000\000\000\000\000\000\001n\001m\000\000\001l\003+\000\000\000\000\000\000\003\250\000\000\000\000\000\000\002\214\002\219\000\000\000|\000\000\003\248\000\000\003\246\000\000\003\160\000\000\000\000\003w\003\245\003,\000\000\000\000\003\165\000\000\002\222\000\000\000\000\000\000\000\000\002\153\001\227\001\228\003\162\000\000\003\161\003\164\000\000\003\163\000\000\001\140\0034\002\228\000\000\000\000\000\000\002\224\002\225\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001~\001}\000\000\001|\0030\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\138\001\137\000\000\001\136\0033\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\134\001\133\000\000\001\132\0032\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\027\001K\000\000\001I\001G\000\000\000\000\001Z\000\000\001Y\001[\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\230\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\181\000\000\001\180\001\179\000\000\001\182\000\000\001\175\000\000\000\000\000\000\000\000\000\000\001\174\000\000\001\172\001\170\000\000\000\000\000\000\001W\000\000\000\000\001V\002\229\001X\000\000\000\000\000\000\000\000\000\000\000\000\002H\000\000\000\000\000\000\001\020\002I\000\000\001\019\000\000\002G\002W\000\000\000\000\000\000\000\000\000\000\001f\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001c\000\000\001a\000\000\001b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001d\000\000\000\000\001_\000\000\000\000\000\000\000\000\001e\000\000\000\000\001^\000\000\001]\001\\\001`\000\000\001\021\0038\000\000\000\000\000\000\002\180\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\025\003\024\000\000\000\000\000r\003\187\002\n\000s\003\191\003\189\000\000\000\000\000\000\003\203\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\029\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003<\000\000\000\000\002/\000\000\000\000\000\000\000\000\000\000\000\000\005%\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\245\000\000\000\000\000\000\000\000\000\000\002.\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\001\002;\002\000\0027\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003L\000\000\000\000\003M\000\000\000\000\003;\000\000\000\000\000\000\002-\000\000\001\030\000\000\001\031\000\000\000\000\002\027\000\000\000\000\002\031\000\000\002\188\000\000\000\000\002\185\000\000\002\186\002\030\002\028\000\000\002\187\000\000\002 \000\000\000\000\000\000\003\220\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\199\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\186\003E\000\000\000\000\000\000\000\000\000\000\001P\001O\000\000\001Q\000\000\000\000\000\000\003\198\000\000\003\195\000\000\000\000\000\000\003\172\000\000\000\000\000\000\000\000\000\000\000\000\003\015\003\014\000\000\000\000\005\011\003\201\003\188\003\226\000\000\000\000\000\000\000\000\000\000\003G\000\000\000\000\000\000\000\000\000\244\003{\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\014\000\189\000\000\000\000\000\000\000\000\000\000\000\000\000\188\000\187\000\000\000\000\000\000\001\026\001\025\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\020\003\019\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0042\001\163\000\000\000\000\002\156\000\000\000\000\000\165\0043\002\157\0037\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\156\000\000\000\000\001\157\000\000\000\000\000\000\000\000\001\152\000\000\000\000\001\153\000\000\000\000\001\146\000\000\000\000\001\147\001\145\000\000\000\000\001\148\000\000\000\000\000\000\000\000\001\160\000\000\000\000\001\161\000\000\000\000\001\159\000\000\000\000\001\158\000\000\000\000\000\000\000\000\000\000\000\000\001\130\001\129\000\000\001\128\0031\000\000\000\000\000\000\000\000\002\226\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\154\000\000\000\000\001\155\000\000\000\000\001\149\000\000\000\000\001\150\001\162\000\000\000\000\001\151\001\143\000\000\000\000\001\206\000\022\001\165\000\000\000\000\000\000\003\174\000\000\000\000\003\173\000\000\000\000\000\000\000\000\003\176\000\000\000\000\003p\000\000\000\000\003\180\000\000\000\000\003\178\003\194\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003>\003=\000\185\003q\000\000\003\175\000\000\000\000\003\179\000\000\000\000\003\177\001\018\000\000\000\151\000\152\000\000\000\000\000\000\000\000\000\182\001\185\000\000\000\000\001\186\000\000\000\000\000\245\000\000\001\188\001\187\000\000\000\000\003\196\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000e\003K\003J\000\000\003\217\003:\0039\003\225\000\000\003\224\000\000\000\000\003\216\000\000\000\000\000\000\000\000\000\000\000\000\003\215\003\210\000\000\003\209\000\000\000\000\003\214\000\000\003\219\000\000\000\000\000\000\000\000\000\000\003\213\000\000\003\218\000\000\000\000\003\212\000\000\000\000\003\197\000\000\000\000\000\000\002\252\000\000\002\174\000\000\000\000\000\000\003z\002\251\000\000\003\206\000\000\000\000\000\000\002\011\000\000\000\000\000\000\000\000\000\000\000\000\000\163\002\181\000\000\000\000\001\230\000\000\001\231\001\229\003F\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\182\000\000\003\181\000\000\000\000\000\000\000\000\000\000\000\000\003\030\003\029\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\167\000\000\003\166\000\000\000\000\003\205\000\000\000\000\000\000\000\000\000\000\000\000\003\221\000\000\000\000\003\204\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003t\003\193\000\000\003\192\000\000\000\000\000\000\000\000\000\000\003\228\000\000\003\211\000\000\000\000\003\227\000\000\000\000\000\000\000\000\000\000\003\230\003\208\000\000\003\207\000\000\000\000\003\229\000\000\000\000\000\000\000\000\002\190\000\000\000\000\002\196\000\000\000\000\002\192\000\000\000\000\002\194\000\000\002\189\000\000\000\000\002\195\000\000\000\000\002\191\000\000\000\000\002\193\000\000\000\000\000\170\000\000\000\000\000\000\000\000\000\169\000\000\000\000\000\000\000\000\000\000\000\000\002'\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\167\000\000\002\019\000\000\000\000\000\000\002&\000\000\000\000\000\000\000x\000\000\000\000\000y\000\000\000\000\000\000\000\000\002?\002@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001B\000\000\000\000\000\132\000\000\001E\001C\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\168\000z\000\000\000\000\002\250\000\000\000\000\001\164\002\172\000\000\001T\000\000\000\000\001S\001U\001\183\000\000\000\000\000\000\000\000\000\000\001\015\000\000\000\000\000\000\000\000\000\000\003\232\003\223\000\000\003\222\000\000\000\000\003\231\003\190\000\000\000\000\000\000\000\000\003\184\000\000\000\000\003\185\000\000\003\169\000\000\003\170\000\000\003\171\000\000\000\000\000\000\001\017\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002o\000\000\000\000\000\000\002n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0029\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\196\004\206\000\000\000\000\004\205\000\000\000\000\000\000\000\000\000\000\002\235\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0011\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002Y\000\000\002\241\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0041\000\000\000\000\003}\000\000\002\232\000\000\000\000\000\000\000\000\000\000\005\023\000\000\000\000\003T\000\000\000\162\000\000\003U\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000H\000\000\000\000\000\000\000\000\002E\000\000\002D\000\000\000\000\000\000\000\000\000K\000\000\000\000\000\000\002\248\000\000\002\247\000\000\000\000\000\000\000\000\000L\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000Q\000\000\000\000\000\000\000R\000P\000\000\000T\000\000\000\000\000\000\000\000\000\000\000J\000\000\000\000\000\000\000\000\000\000\000\000\000M\000\000\000S\000\000\000N\000O\000\000\001\215\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\194\000`\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002=\000\000\000\000\000\000\005\014\000\000\000\000\005\016\000\000\0009\000\000\000\000\005\026\000\000\005\025\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\r\000\000\000\000\005\015\000\000\000\000\000\000\002\243\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\245\000\000\000\000\001\243\001\241\000\000\000:\000\000\000\000\005\029\000\000\005\028\000\000\000\000\000\000\001\239\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\244\000\000\000\000\001\242\001\240\000\000\000\000\000\000\000<\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\167\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000Y\000\000\000\000\000\000\000\000\000\000\000\000\0006\000\000\000\000\000X\000\000\0004\001\168\000\000\000C\0000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\166\000\000\000W\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000]\000\000\000_\000^\000\000\000Z\000\000\000\000\002\161\000\000\0008\000\000\000\000\000\000\0007\000\000\000\000\000\000\000;\000\000\000[\000\000\000=\000>\000\000\001\217\000\000\000\000\000\000\000\000\000\000\000\000\000A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\190\004\209\004\200\000\000\000\000\004\204\0040\004\199\004\208\004\207\001\213\000\000\004\198\000\000\004\196\000\000\000\000\000\000\000\000\004\211\000\000\000\000\000\000\000\000\000\000\000\000\0035\000\000\000\000\001\202\002\159\004\201\004\197\004\210\002\231\000\000\000\000\004\194\000-\004\193\000\000\000\000\000\160\000\000\0015\000\000\000\000\001\212\001\211\000\000\002\240\001,\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\157\000\000\001'\000\000\004\203\003\006\003\007\003\002\003\004\003\003\003\005\000\000\000\000\000\000\000\158\000\000\001(\000\000\000\000\000\000\0035\000\000\001+\000\000\000\000\000\000\000\000\004\202\000\000\002\025\000\000\000\000\003\238\000\000\001x\003.\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001v\001u\000\000\001t\003-\000\000\000\000\000E\000\000\000\000\000F\000\000\000\000\003\186\000\000\000\000\000\000\000\000\000\000\000\192\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003#\003\"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\016\000\000\000\155\000\000\000\000\000\000\000\000\000\000\000\000\001\238\001\232\000\000\000\000\001\233\002m\000\000\002l\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004D\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004E\000\000\000\000\000\000\000\000\000\000\000\000\002e\000\000\000\000\002i\002a\000\000\000\000\000\000\000\000\003\001\002\255\003\000\000\000\002]\000\000\000\000\000\000\002d\000\000\000\000\002h\002`\004\240\000\000\000\000\000\000\000\000\000\000\002g\000\000\000\000\002k\002c\002_\000\000\000\000\002f\000\000\000\000\002j\002b\002^\002\\\000\000\0035\000\000\001*\000\000\000\000\000\000\000\000\003\135\003\n\003\b\003\t\000\000\000\000\000\000\000\000\0035\000\000\001)\000\000\000\000\000\000\000\000\003\134\000\000\000\000\000\000\000\000\000\000\000\000\002q\000\000\000\000\000\000\002p\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002:\000\000\000\000\000\000\000\000\000\000\002(\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\198\003\140\000\000\000\000\000\000\000\025\000\000\002%\000\000\000\000\000\000\000\000\002\176\000\000\003\138\000\000\000\000\002\020\000\000\003\137\000\000\000\000\000\000\002\023\002\021\000\000\002\024\002$\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\192\003\144\003\130\000\000\003\136\003\131\003\143\003\142\003\141\003\139\001\209\003\129\000\000\003\127\000\000\000\000\000\000\000\000\000\000\003\146\000\000\003\132\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0035\000\000\000\000\001\204\003\133\003\128\003\145\001\208\003~\000\000\000\141\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004<\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004=\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004>\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004B\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004C\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\174\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\175\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\172\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\173\000\000\000\000\000\000\000\000\000)\000\000\000\000\001?\000\000\000\000\000*\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\021\000\000\000.\000\000\000\000\000\000\000\000\000\181\000\000\001/\000\001\000\000\000\000\0014\000\002\000\000\000\000\000\000\001\251\001\252\000\003\000\000\000\000\000\000\000\000\001\254\001\255\001\253\000\023\001\250\000\024\000\000\002\200\000\000\000\004\000\000\002\201\000\000\000\005\000\000\002\202\000\000\000\000\002\203\000\006\000\000\000\007\000\000\002\204\000\000\000\b\000\000\002\205\000\000\000\t\000\000\002\206\000\000\000\n\000\000\002\207\000\000\000\011\000\000\002\208\000\000\000\000\002\209\000\012\000\000\000\000\002\210\000\r\000\000\000\000\000\000\000\000\000\000\004\229\004\224\004\225\004\228\004\226\000\000\000\000\000\000\004\222\004\217\004\218\004\221\004\219\000\000\004\233\000\014\000\000\004\232\000\000\001\219\000\000\000\000\004\230\000\000\004\231\000\000\000\000\000\000\000\000\001\223\001\224\000\000\000\000\001\222\001\221\000\015\000\000\000\000\000\000\005\007\000\000\005\006") and error = - (147, "'\244\1681i\170o\204\231\216\n\216\015\242(\000\028d\004v\148\002/\021\r\248\153\249\000[\001\244\005\000\001\140\129\243\236D\b\021\248m\000\002\0248\000{G\002\192P\026\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\127\173\205\235]\211\254g~\242^\224\255\137H\129\231 |\251\017\002\005~\027@\000\134\014\000\030\209\192\176\020\006\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\218P\b\180T7\226g\228\001l\007\208\020\000\0062\007\207\177\016 W\225\180\000\b`\224\001\237\028\011\001@hO\233Qj\211T\223\153\207\176\021\176\031\224P\000x\200\000\000\000\000\004\000\001@\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000(\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000>\128,\018\000\000>\004\b\001\002\000\016+,\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\001@\000\000\000\000\000\000\000\000\000\000\0000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\136\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000p\000\003\128P\000\226\224\128\000\002\128\000\000\000\000\000\000\014R\000`\130\000\156_\023 \007p\006@\000\000 \128\001\202@\012\016@\019\139\226\228\000\238\000\200\000\000\004\016\0009H\001\130\b\002q|\\\128\029\192\025\000\000\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0010\019\186\000@\165R\014\005\131A\016\022\192DD&\160\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\192\000\014\001A\003\139\130\000\000\n\000\000\000\000\000\000\000\b\004 \000\000\b\016\000\128\000\000@\000\000\000B\000\160\003\000\000\000\000\000\n\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012\000\000\000\000\000(\000\001\000\000\000\000\000\000\000\000\000\003\128\000\028\002\128\007\023\004\000\000\020\000\000\000\000\000\000\000\016\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\192\000\014\001A\003\139\130\000\000\n\000\000\000\000\000\000\000\b\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\001\000\132\016\000\001\n\000\016\000\000\b\000\000\002\b@\020\000`\000\000\000\000\001@\000\b\000\000\000\000\000\000\000\000\002\"\000U\000\b\024\002A\128\128H \002\216\000\164\128\006\001\128\000\000\000\000\005\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000 \000\000\016\000\000\000\000\000\000\000\000\000@\000\004\007\000\0008\005\000\014.\b\000\000(\000\000\000\000\000\000\0170\019\184\000@\228R\014\005\130A\016\022\192\005l&\176\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\128\000\024\000\128\007\023\004\000\000\020\000\000\000\000\000\000\000p\000\003\128P@\226\224\128\000\002\128\000\000\000\000\000\000\002\000@@@\b\020\016 \000\000\000@\000\000\000\000\000\000@\b\b\000\001\002\130\004\000\000\000\b\000\000\000\000\000\000\b\001\001\000\000 P@\000\000\000\001\000\000\000\000\000\000\136\128\021@\002\005\b\144p \018\b\000\182\002\003 1\001\016\002\b\000@\128\002\n\004\002\000\000\020@\000\004\004\000\"\000A\000\b\016\000A\000\128@\000\002\136\000\000\128\128\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\b\136\t\220\000 p)\007\002\001\160\128\011`\002\146\016\024\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\016\002(\000@\128\002\b\004\002\000\000\020\192\000\004\000\000\012\000\000I\128\129(\000@\002\000\000\000\000\000\000\002\000\001\128\000\t \016%\000\b\000@\000\000\000\000\000\000@\0000\000\001$\002\004\160\000\000\b\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\000\000\018@\000J\000\000\000\128\000\000\000\000\000\000\128\000@\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\t \000 \000\000\000@\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000 \128\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\002\000\000\000\000\000\000\001\b\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000!\000\000\001\128\000\000\000\000\005\000\000 \000\000\000\000\000\000\000\000\b\000\000@\000\000 \000\000\000\000\000\000\000\000\000\128\000\b\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\" \005P\000\129\128\164\024\b\004\130\000-\128\nH\000`\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000`\000\000\000\000\001@\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000/\245\191\255k\190\127\223\255\222O\220\127\243*\020<\244\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\004\000\000\000\000\000\000\002\016\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000B\000\000\003\000\000\000\000\000\n\000\000@\000\000\000\000\000\000\000\000\016\000\000\128\000\000@\000\000\000\000\000\000\000\000\001\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000$\128\000\128\000\000\001\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000 \000\000\000@\002\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\016\000\016\000\000\000 \001\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000D\000\138\b\016 \000\131\001\000\128\000\005\176\001\011\000\b\003\000\000\000\000\000\n\000\000@\000\000\000\000\000\000\000\000\017\016\002(\000@\192\018\012\004\002A\000\022\192\004$\0000\"\000E\000\b\016\000A\128\128@\000\002\216\000\132\128\004\003\144\000\030\002\128\007\023\005\000\000\028\000\128\002\000\000\128\000\136\001\020\000(@\137\007\002\001 \128\n`\"\006\016\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\200\000\014\001@\003\139\130\128\000\014\000@\001\000\000@\0008\000!\192( qp@\000\001@\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000`\000\006\000\000\001E\193\000\000\005\016\000\000\128\000\000\000\028\000\000\224\020\0168\184 \000\000\160\000\000\000\000\000\000\000\128\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\016\b@\000\000\016 \001\000\000\000\128\000\000\000\132\001A\243\236D\b\021\248m\000\002\0248\000{G\002\192P\026\019\250TZ\180\2137\230s\236\005l\007\248\020\000\0302\002;J\001\022\138\134\252L|\128-\128\250\002\128\000\198@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\029\165\000\139\197C~&~@\022\192}\001@\000c #\180\160\017h\168o\196\207\200\002\216\015\160(\000\012d\004v\148\002-\021\r\248\152\249\000[\001\244\005\000\001\140\128\000\000\000\000\000\000\020\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\000\000\007\000\0008\005\000\014.\b\000\000(\000\000\000\000\000\000\000\224\000\007\000\160\001\197\193\000\000\005\000\000\000\000\000(\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\128\000\028\002\128\007\023\004\000\000\020\000\000\000\000\000 \000p\000\019\128P\000\226\224\128\000\002\128\000\000\000\000\020\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\192\000\014\001@\003\139\130\000\000\n\000\000\000\000\000\016\0008\000\001\192(\000qp@\000\001@\000\000\000\000\n\000\003\000\0000\000\000\n.\b\000\000(\000\000\000\000\000\000\000 \016\000\000\000\000@\000\000\000A\000\000\000\000\b\000\000\012\000\000\192\000\000(\184 \000\000\160\000\000\000\000\000\000D\192N\224\001\003\145H8\022\r\004@[\000\021\144\154\192\016\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\128\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\b\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\128\000\000\000\b\000\000\000\000\000P0@\000\001\000\000\000\000\000\000\000\007\000\0008\005\004\014.\b\000\000(\000\000\000\000\000\000\017\016\003\184\000@\228\018\014\005\130A\016\022\192\005d&\176\028\000\000\224\020\0008\184 \000\000\160\000\000\000\000\000\000D@\014\224\001\003\144H8\022\t\004@[\000\021\144\154\192\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\001\017\000;\128\004\014E \224X$\017\001l\000VBk\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\136\128\029\192\002\007 \144p,\018\b\128\182\000+!5\128\224\000\007\000\160\001\197\193\000\000\005\000\000\000\000\000\000\002\"\000w\000\b\028\130A\192\176H\"\002\216\000\172\132\214D@\014\224\001\003\144H8\022\t\004@[\000\021\144\154\192\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\014\000\000`\002\000\028\\\016\000\000P\000\000\000\000\000\000\001\192\000\014\001A\003\139\130\000\000\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000 \000\000\000\000\000@\000\000\000\001\000\000\000\000\000\000\000\004\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\128\000\000\000\b\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000p\000\003\128P\000\226\224\128\000\002\128\000\000\000\000\000\000\002\001\b\000\000\002\004\000 \000\000\016\000\000\000\016\128(\000\192\000\000\000\000\002\128\000\016\000\000\000\000\000\000\000\000\004\000\000 \000\000\016\000\000\000\000\000\000\000\000\000@\000\004\001\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000 \016\128\000\000 @\002\000\000\001\000\000\000\001\b\002\128\012\000\000\000\000\000(\000\001\000\000\000\000\000\000\000\000\000@\000\002\000\000\001\000\000\000\000\000\000\000\000\000\004\000\000@0\000\003\000\000\000\162\224\128\000\002\128\000\000\000\000\000\000\014\000\000p\n\b\028\\\016\000\000P\000\000\000\000\000\000\000\000\000\004\000\000\002\000\000\000\000\000\000\000\000\128\000\000\000\b\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\0000\000\000\000\000\000\160\000\004\000\000\000\000\000\000\000\000\001\000\000\b\000\000\004\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0008\000\001\192(\000qp@\000\001@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\004\0008\000\001\192(\000qp@\000\001@\000\000\000\000\000\000\136\128\029\192\002\007 \144p,\018\b\128\182\000+!5\145\016\003\184\000@\228\018\014\005\130A\016\022\192\005d&\176\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\128\000\024\000\000\005\023\004\000\000\020\000\000\000\000\000\000\b\136\001\220\000 r\t\007\002\193 \136\011`\002\178\019X\014\000\000p\n\000\028\\\016\000\000P\000\000\000\000\000\000\" \007p\000\129\200$\028\011\004\130 -\128\n\200MdD\000\238\000\0169\004\131\129`\144D\005\176\001Y\t\172\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000`\000\006\000\000\001E\193\000\000\005\000\000\000\000\000\000\002\"\000w\000\b\028\130A\192\176H\"\002\216\000\172\132\214D@\014\224\001\003\144H8\022\t\004@[\000\021\144\154\192p\000\003\128P\000\226\224\128\000\002\128\000\000\000\000\000\001\017\000;\128\004\014A \224X$\017\001l\000VBk\" \007p\000\129\200$\028\011\004\130 -\128\n\200M`\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\000\0000\000\000\n.\b\000\000(\000\000\000\000\000\000\017\016\003\184\000@\228\018\014\005\130A\016\022\192\005d&\178\"\000w\000\b\028\130A\192\176H\"\002\216\000\172\132\214D\192N\224\001\003\145H8\022\t\004@[\000\021\144\154\1920\000\003\000\000\000\162\224\128\000\002\128\000\000\000\000\000\001\019\001;\128\004\014E \224X$\017\001l\000V\194k\000\192\000\012\000\000\002\139\130\000\000\n\000\000\000\000\000\000\004L\004\238\000\0169\020\131\129`\144D\005\176\001Y\t\172\001\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\136\t\220\000 r\t\007\002\193 \136\011`\002\178\019X\006\000\000`\000\000\020\\\016\000\000P\000\000\000\000\000\000\"`'p\000\129\200\164\028\011\004\130 -\128\n\216M`\024\000\001\128\000\000Qp@\000\001@\000\000\000\000\000\000\137\128\157\192\002\007\"\144p,\018\b\128\182\000+!5\1450\019\184\000@\228R\014\005\130A\016\022\192\005d&\178&\002w\000\b\028\138A\192\176H\"\002\216\000\172\132\214D@\014\224\001\003\144H8\022\t\004@[\000\021\144\154\192\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\014\000\000p\n\000\028\\\016\000\000P\000\000\000\000\000\000\" \007p\000\129\200$\028\011\004\130 -\128\n\200MdD\000\238\000\0169\004\131\129`\144D\005\176\001Y\t\172\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000`\000\006\000\000\001E\193\000\000\005\000\000\000\000\000\000\002\"\000w\000\b\028\130A\192\176H\"\002\216\000\172\132\214D@\014\224\001\003\144H8\022\t\004@[\000\021\144\154\192\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\017\000;\128\004\014A \224X$\017\001l\000VBk\000\000\000\004\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\001\128\000\000\000\000\005\000\000 \000\000\000\000\000\000\000\000\b\000\000@\000\000 \000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\003\000\000\000\000\000\n\000\000@\000\000\000\000\000\000\000\000\016\000\000\128\000\000@\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\b\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\014\000\000p\n\000\028\\\016\000\000P\000\000\000\000\000\000\000@!\000\000\000@\128\004\000\000\002\000\000\000\002\016\005\000\024\000\000\000\000\000P\000\002\000\000\000\000\000\000\000\000\000\128\000\004\000\000\002\000\000\000\000\000\000\000\000\000\b\000\000\128 \000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\004\002\016\000\000\004\b\000@\000\000 \000\000\000!\000P\001\128\000\000\000\000\005\000\000 \000\000\000\000\000\000\000\000\b\000\000@\000\000 \000\000\000\000\000\000\000\000\000\128\000\b\000\000\b\000\000\000\000\000 \000\000\000\000\000\000\016\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\016\000\000\000\000\000\000\b\000\000\000\000\000\002\000\000\001\000\000\000\000\000\000\000\000@\000\000\000\028\000\000\224\020\0008\184 \000\000\160\000\000\000\000\000\000\000\000\002\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\001\000\014\000\000p\n\000\028\\\016\000\000P\000\000\000\000\000\000\" \007p\000\129\200$\028\011\004\130 -\128\n\200MdD\000\238\000\0169\004\131\129`\144D\005\176\001Y\t\172\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000`\000\006\000\000\001E\193\000\000\005\000\000\000\000\000\000\002\"\000w\000\b\028\130A\192\176H\"\002\216\000\172\132\214D@\014\224\001\003\144H8\022\t\004@[\000\021\144\154\192\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\014\000\000p\n\000\028\\\016\000\000P\000\000\000\000\000\000\" \007p\000\129\200$\028\011\004\130 -\128\n\200MdD\000\238\000\0169\004\131\129`\144D\005\176\001Y\t\172\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000`\000\006\000\000\001E\193\000\000\005\000\000\000\000\000\000\002\"\000w\000\b\028\130A\192\176H\"\002\216\000\172\132\214D@\014\224\001\003\144H8\022\t\004@[\000\021\144\154\192\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\001\000\014\000\000p\n\000\028\\\016\000\000P\000\000\000\000\000\000\" \007p\000\129\200$\028\011\004\130 -\128\n\200MdD\000\238\000\0169\004\131\129`\144D\005\176\001Y\t\172\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000`\000\006\000\000\001E\193\000\000\005\000\000\000\000\000\000\002\"\000w\000\b\028\130A\192\176H\"\002\216\000\172\132\214D@\014\224\001\003\144H8\022\t\004@[\000\021\144\154\192\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\014\000\000p\n\000\028\\\016\000\000P\000\000\000\000\000\000\" \007p\000\129\200$\028\011\004\130 -\128\n\200MdD\000\238\000\0169\004\131\129`\144D\005\176\001Y\t\172\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000`\000\006\000\000\001E\193\000\000\005\000\000\000\000\000\000\002\"\000w\000\b\028\130A\192\176H\"\002\216\000\172\132\214D@\014\224\001\003\144H8\022\t\004@[\000\021\144\154\1920\000\003\000\000\000\162\224\128\000\002\128\000\000\000\000\000\000\014\000\000p\n\b\028\\\016\000\000P\000\000\000\000\000\000\000\000\000\004\000\000\002\000\000\000\000\000\000\000\000\128\000\000\0008\000\001\192(\000qp@\000\001@\000\000\000\000\000\000\000\000\004\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\002\000\028\000\000\224\020\0008\184 \000\000\160\000\000\000\000\000\000D@\014\224\001\003\144H8\022\t\004@[\000\021\144\154\200\136\001\220\000 r\t\007\002\193 \136\011`\002\178\019X\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\192\000\012\000\000\002\139\130\000\000\n\000\000\000\000\000\000\004D\000\238\000\0169\004\131\129`\144D\005\176\001Y\t\172\136\128\029\192\002\007 \144p,\018\b\128\182\000+!5\128\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\028\000\000\224\020\0008\184 \000\000\160\000\000\000\000\000\000D@\014\224\001\003\144H8\022\t\004@[\000\021\144\154\200\136\001\220\000 r\t\007\002\193 \136\011`\002\178\019X\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\192\000\012\000\000\002\139\130\000\000\n\000\000\000\000\000\000\004D\000\238\000\0169\004\131\129`\144D\005\176\001Y\t\172\136\128\029\192\002\007 \144p,\018\b\128\182\000+!5\128\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\002\000\028\000\000\224\020\0008\184 \000\000\160\000\000\000\000\000\000D@\014\224\001\003\144H8\022\t\004@[\000\021\144\154\200\136\001\220\000 r\t\007\002\193 \136\011`\002\178\019X\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\192\000\012\000\000\002\139\130\000\000\n\000\000\000\000\000\000\004D\000\238\000\0169\004\131\129`\144D\005\176\001Y\t\172\136\128\029\192\002\007 \144p,\018\b\128\182\000+!5\128\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\028\000\000\224\020\0008\184 \000\000\160\000\000\000\000\000\000D@\014\224\001\003\144H8\022\t\004@[\000\021\144\154\200\136\001\220\000 r\t\007\002\193 \136\011`\002\178\019X\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\192\000\012\000\000\002\139\130\000\000\n\000\000\000\000\000\000\004D\000\238\000\0169\004\131\129`\144D\005\176\001Y\t\172\136\128\029\192\002\007 \144p,\018\b\128\182\000+!5\128`\000\006\000\000\001E\193\000\000\005\000\000\000\000\000\000\002\"\000w\000\b\028\130A\192\176H\"\002\216\000\172\132\214D@\014\224\001\003\144H8\022\t\004@[\000\021\144\154\192\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\000\000`\000\000\020\\\016\000\000P\000\000\000\000\000\000\" \007p\000\129\200$\028\011\004\130 -\128\n\200MdD\000\238\000\0169\004\131\129`\144D\005\176\001Y\t\172\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128@\000\000\000\001\000\000\000\000\004\000\000\000\000\000\000\0000\000\003\000\000\000\162\224\128\000\002\128\000\000\000\000\000\000\000\001\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\004\000\000\000\000\016\000\000\000\000@\000\000\000\000\000\000\003\000\0000\000\000\n.\b\000\000(\000\000\000\000\000\000\000\000\016\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\128\000\028\002\128\007\023\004\000\000\020\000\000\000\000\000 \000\016\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\028\000\000\224\020\0008\184 \000\000\160\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\b\000\000\001\000\000\000\b\000\000\000\000\016\000\014\000\000p\n\000\028\\\016\000\000P\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0008\000\001\192(\000qp@\000\001@\000\000\000\000\000\000\000\000\001\000\000\000\000\000\016\000\000\000\128\000\000\000\001\000\128\224\000\007\000\160\001\197\193\000\000\005\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000@\000\000\002\000\000\000\000\004\018\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\001\000\000\000\b\000\000\000\000\016H\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\004\000\000\000 \000\000\000\000@\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\028\000\000\224\020\0008\184 \000\000\160\000\000\000\000\001\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\004\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003 \000\000\000\000\004\000\000\000\000\004\000\000\000\b\0008\000\001\192(\000qp@\000\001@\000\000\000\000\000\000\000\000\012\128\000\000\000\000\016\000\000\000\000\016\000\002\000 \000\224\000\007\000\160\001\197\193\000\000\005\000\000\000\000\000\000\000\000\0002\000\000\000\000\000@\000\000\000\000@\000\000\000\128\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\142\210\128E\162\161\191\019\031 \011`>\128\160\0001\144\000\000\000\000\000\000\002\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002@\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006B\000D\000\160\020\019\028 \003`6\000\160\0001\128\000\200@\b\128\020\002\130c\132\000l\000\192\020\000\0060\000@\000\002\001\000\001@\130\128`\000\000\000\016\001\000\000\000\b\000\000@\000\000(\016P\012\000\000\000\002\000 \000\000\001\000\000\b\000\000\005\002\b\001\128\000\000\000@\004\000\000\000\012\164\000\129\000\001(&.@\014\224\012\128\000\000A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\160\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\0008\000\001\192(\000qp@\000\001@\000\000\000\000\000\000\000\000\004\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\012\164\000\129\000\001(&.@\014\224\012\128\016\000A\000\000\000\000\000\000\000\005\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\001\192\000\014\001@\003\139\130\000\000\n\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\006\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\012\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0002\152B>\128l\178\152\185>?\1363\002\000\025/,\000\000\b\000\000\000\000\000\000 \003\000\004\000\000\000\000\000\000\192\000\000\b\000\000\000\004\000\000\000\000\000\000\000\000\000\000\024\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\003\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000@@\000\b\020\016\000\000\000\000@\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\003\002\000 \000\000\b\b\016\000\000\000 \000\000\000\000\000\000`@\004\000\000\001\001\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000'\244\1681i\170o\204\239\216\n\216\015\241(\000\028d\004\254\149\006-5M\249\156\251\001[\001\254%\000\003\140\128\006\000\000$\192@\148\000 \001\000\000\000\000\000\000\001\000\000\192\000\004\144\b\018\128\004\000 \000\000\000\000\000\000 \000\024\000\000\146\001\002P\000\000\004\000\000\000\000\000\000\004\000\003\000\000\018@\000J\000\000\000\128\000\000\000\000\000\000\128\000 \000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\"\000E\004\b\016\002A\128\128H \002\216\000\129\128\004\004@\b\160\001\002\000H0\016\t\004\000[\000\016\016\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\000\"\128\004\b\001 \192@$\016\001L\000@@\002>}\136\129\002\191\r\160\000C\007\000\015h\224X\n\003B\127J\139V\154\166\252\206}\128\173\128\255\002\128\003\198@O\233Qb\211T\223\153\207\176\021\176\031\230P\0008\200\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004v\148\002/\021\r\248\153\249\000[\001\244\005\000\001\140\128\142\210\128E\162\161\191\019? \011`>\128\160\0001\144\017\218P\b\180T7\226c\228\001l\007\208\020\000\0062\002;J\001\022\138\134\252L|\128-\128\250\002\128\000\198@\001\000\000\000 \000\002\000\016\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000@\002\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\002\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\142\210\128E\226\161\191\019? \011`>\128\160\0001\144\017\218P\b\180T7\226g\228\001l\007\208\020\000\0062\002;J\001\022\138\134\252L|\128-\128\250\002\128\000\198@Gi\196#\249V\223\169\143\147\229\240\159Pp\001\154\250\192d \132@\n\001A1\194\0006\000`\n\000\003\024\001\029\165\000\139EC~&>@\022\192}\001@\016c #\180\160\017h\168o\196\199\200\002\216\015\160(\000\012d\n\187\217\222\190\229~\175\159\235\255\191\184{\127\182\255\255<\142\210\128E\162\161\191\019\031 \011`>\128\160\0001\144\000\202@\b\016\000\018\130b\228\000\238\000\192\000\000\004\016\000\000\000\000\000\000\000P\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\028\000\000\224\020\0008\184 \000\000\160\000\000\000\000\000\000\000\000\002\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\006R\000@\128\000\148\019\023 \007p\006\000\b\000 \128\000\000\000\000\000\000\002\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\224\000\007\000\160\001\197\193\000\000\005\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006R\000@\128\000\148\019\023 \007p\006@\000\b \128\000\202@\b\016\000\018\130b\228\000\238\000\200\000\000\005\016\000\025H\t\002\000\002PL\\\128\029\192\025\000\000\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\000\000\000\000\000\000\000\000\000\000 \000\000\128\000\001\192\000\014\001@\003\139\130\000\000\n\000\000\000\000\000\000\000\000\000D\000\000\000\000\000\128\000\000\000\000\128\000\000\000\000\000\000\b\128\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000e \004\b\000\tA1r\000w\000d\000\000\002\b\000\012\132\000\129\128\001(&h@\014\224\012\000\000\000A\000\001\144\128\016 \000%\004\205\b\001\220\001\128\000\000\b \0002\016\002\004\000\004\160\152\161\000;\1280\000\000\001\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000@\000\000\000\004\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006R\000@\128\000\148\019\023 \007p\006@\000\000 \128\000\200@\b\016\000\018\130b\132\000\238\000\192\000\000\004\016\000\b\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\006R\000@\128\000\148\019\023 \007p\006@\b\000 \128\000\000\000\000\000\000\002\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\224\000\007\000\160\001\197\193\000\000\005\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006B\000@\128\000\148\019\020 \007p\006\000\000\000 \128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000#)\r\168D\001J\t\154\144\011\184\003\020\004\014\213T\000\000 \000\b\000\b\000\000\002\000\000\000@\000\000\002\000\000\000\000\000\000\000\000\000\000\000@\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\025HmB \nPL\220\128]\192\025\160\016v\170\160\001\000\000\000\000\000\b\001\138\000\0000\000\000\000\000\000\000\000e \132\b\000\tA1r\000w\000d\000\000\018\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\148\128\0160\000%\004\205\200\001\220\001\144\000\000\b \0002\144\002\004\000\004\160\153\185\000;\1282\000\000\001\004\000\006R\000@\128\000\148\019\023 \007p\006@\000\000 \128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\148\134\208 \000\165\004\205\200\005\220\001\154\000\006j\170\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\027\000\000\002\000\000 \000\016\000\000(\000\025\138(\000\202@\b\016\000\018\130b\228\000\238\000\200\001\000\004\016\000\000\000\000\000\000\000P\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\028\000\000\224\020\0008\184 \000\000\160\000\000\000\000\000\000\000\000\002\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\200@\b\016\000\018\130b\132\000\238\000\192\000\000\004\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\216\000\000\016\000\001\000\000\128\000\001@\000\204Q@\006R\000@\128\000\148\019\023 \007p\006@\000\000 \128\b\000\003`\000\000@\000\004\000\002\000\000\005\000\0031E\001\025Hm\002\000\nPL\220\128]\192\025\160\000f\170\160\003\169\132#\232\006\203)\139\147\227\248\1310 \001\146\242\192\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\144\128\016 \000%\004\197\b\001\220\001\128\000\000\b \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000 \003\000\004\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\016\000\000\000\000\000\000\b\193\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012\164\000\129\000\001(&.@\014\224\012\128\016\000A\000\000\000\000\000\000\000\005\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\001\192\000\014\001@\003\139\130\000\000\n\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012\132\000\129\000\001(&(@\014\224\012\000\000\000A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\027\000\000\002\000\000 \000\016\000\000(\000\025\138(\001\192\000\014\001@\003\139\130\000\000\n\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000e \004\b\000\tA1r\000w\000d\000\000\002\b\000\128\0006\000\000\004\000\000@\000 \000\000P\0003\020P\000\000\000\000\000\000\005\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\016\000\000\000\000\000\000\b\129\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012\164\004\129\000\001(&.@\014\224\012\128\000\000A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002@\000\000\000\000\004\000\000\000\000\000\000\003!A\000\025H\t\002\000\002PL\\\128\029\192\025\000\000 \162\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\006\192\000\000\128\000\b\000\004\000\000\n\000\006b\138\000\000\000@\000\000\000\000\001\000\000\000\000\000\000\000\136\016@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\002 A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\128\000\000\000\000\016\000\000\000\000\000\000\b\129\004\000\000\001\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012\000\002\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\004@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006B\000@\128\000\148\019\020 \007p\006\000\000\000 \128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\002\000\001\016 \128\012\164\000\129\000\001(&.@\014\224\012\128\000\000A\000\000\000\000\000\000\000\000\000\b\000\000\000\000\b\000\004@\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\004\000\002 A\000\025H\001\002\000\002PL\\\128\029\192\024\000 \000\130\000\000\000\000\000\000\000\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\003\128\000\028\002\128\007\023\004\000\000\020\000\000\000\000\000\000\000\000\000@\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\025\b\001\002\000\002PLP\128\029\192\024\000\000\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000@\000\"\004\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\0002\144\002\004\000\004\160\152\185\000;\1280\000@\001\004\000\000\000\000\000\000\000\020\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\007\000\0008\005\000\014.\b\000\000(\000\000\000\000\000\000\000\000\000\128\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0002\016\002\004\000\004\160\152\161\000;\1280\000\000\001\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\128\000D\b \003!\000 @\000J\t\138\016\003\184\003\000\000\000\016@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\012\164\000\129\000\001(&.@\014\224\012\000\016\000A\000\000\000\000\000\000\000\005\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\001\192\000\014\001@\003\139\130\000\000\n\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012\132\000\129\000\001(&(@\014\224\012\000\000\000A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000 \000\017\002\b\000\202@\n\017\000\018\130f\164\002\238\000\196\000\0024Q\128\000\000\000\000\000\000P\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\001\000\006\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\002\000\000\b\002\000\028\000\000\224\020\0008\184 \000\000\160\000\000\000\000\000\000\000\000\000\b\000\000\004\000\000\000\000\000\000\000\001\000\000\000\000p\000\003\128P\000\226\224\128\000\002\128\000\000\000\000\000\000\000\000\b\000\000\000\000\000 \000\000\000\000 \000\000\000@\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\002\000\000\000\000\002\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000(\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\128\003\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\017\218P\b\180T7\226c\228\001l\007\208\020\000\0062\0009H\017\003\024\"pL\220\128\029\192\025\000\000\000\130\000\003\002\000 \000\b\b\016\000\000\000 \000\000\000\000\128\000`@\004\004\000\001\001\002\000\000\000\004\000\000\000\000\000\000\012\b\000\128\000\000 @\000\000\000\128\000\000\000\000\000\001\129\000\016\000\000\004\004\000\000\000\000\016\000\000\000\000\000\000\176 \002\000\000\000\128\128\000\000\000\002\000\000\000\000\000\000\142\210\128E\162\161\191\019? \011`>\128\160\0001\144\017\218P\b\180T7\226c\228\001l\007\208\020\000\0062\002;J\001\022\138\134\252L|\128-\128\250\002\128\000\230@GiA\"\209P\223\137\143\144\005\176\031@P\000\024\200\000\000\000\000\000\000\000@\000\000\000\000@\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\b\000@\000\000\000\000#\180\160\017h\168o\196\199\200\002\216\015\160(\000\012d\0002\016\002 \005\000\160\152\225\000\027\0000\005\000\001\140\001\000\000\017\000\000\000\000\000\000\000\004\144\000 T\004\128\000\017\218P\b\180T7\226c\228\001l\007\208\020\000\0062\000\025\b\001\017\002\128PL\240\128\r\128\024\002\128\000\198\000\003!\000\"\000P\n\t\158\016\001\176\003\000P\000\024\192\000d \004@\n\001A1\194\0006\000`\n\000\003\024\000\012\132\000\136\001@(&8@\006\192\012\001@\000c\000\001\144\128\017\000(\005\004\199\b\000\216\001\128(\000\012`\004v\148\002-\021\r\248\152\249\000[\001\244\005\000\001\140\128\006B\000D\000\160\020\019\028 \003`\006\000\160\0001\128\017\218P\b\188T7\226g\228\001l\007\208\148\000\0062\002;J\001\022\138\134\252L\252\128-\128\250\018\128\000\198@Gi@\"\209P\223\137\143\144\005\176\031BP\000\024\200\b\237(\004^*\027\2413\242\000\182\003\232\n\000\003\025\001\029\165\000\139EC~&~@\022\192}\001@\000c #\180\160\017h\168o\196\199\200\002\216\015\160(\000\012d\0002\144\002\006\000\004\160\153\185\000;\1282\000\000\001\020\000\006R\000@\128\000\148\0197 \007p\006@\000\000\"\128\000\202@\b\016\000\018\130b\228\000\238\000\200\000\000\004P\000\025H\001\002\000\002PL\\\128\029\192\025\000\000\000\130\000 \000\000\000\000\001\000\000\016\000\000\000\000\000\000\b\129\004\b\237(\004Z*\027\2411\242\000\182\003\232\n\000\003\025\000\012\164\000\161\144\001(&j@\014\224\012\000\000\000A\000\001\148\128\020\"\000%\004\205H\001\220\001\128\000\000\b \0002\144\002\132@\004\160\152\169\000;\1280\000\000\001\004\000\004\000\000\000\000\000\020\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0009H\001\002\b\002pL\\\128\029\192\025\000\000\000\130\000\003)\132#\232\006\203)\139\147\227\248\1310 \001\146\242\192e0\132}\000\217e1r|\127\016f\004\0002^X\000\000\016\000\000\000\000\000@\000\000\000\000\000\000#\004P\003\128\000\028\002\128\007\023\004\000\000\020\000\000\000\000\000\000\000\000\000\001\000\000\000\128\000\000\000\000\000\000\000 \000\000\000\014\000\000p\n\000\028\\\016\000\000P\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\016\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\128\000\000\000\000\128\000F\b\160\007\000\0008\005\000\014.\b\000\000(\000\000\000\000\000\000\000\000\000\002\000\000\001\000\000\000\000\000\000\000\000@\000\000\000\028\000\000\224\020\0008\184 \000\000\160\000\000\000\000\000\000\000\000\002\000\000\000\000\000\b\000\000\000\000\b\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000 \000\000\000\000 \000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003)\000 @\000J\t\139\144\003\184\003 \000\000\016@\000\000\000\128\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\2450\132} \217\2291r|\127\016f\004\0002^X\000\000\000\000\000\000(\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\006\000\000\000\000\000\020\000\000\128\000\000\000\000\000\000\000\000 \000\001\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\n\000\000\000\000\000\000\000\000\000@\000\000`\000\000\000\000\001@\000\b\000\000\000\000\000\000\000\000\002\000\000\016\000\000\b\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000P\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000@\000\000\000\000\000\000#\004P\003\128\000\028\002\128\007\023\004\000\000\020\000\000\000\000\000\000\000\000\000\001\000\000\000\128\000\000\000\000\000\000\000 \000\000\000\014\000\000p\n\000\028\\\016\000\000P\000\000\000\000\000\000\000\000\001\000\000\000\000\000\004\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003)\000 @\000J\t\139\144\003\184\003 \000\000\016@\000\000\000\128\000\000\000\000\002\000\000\000\000\000\000\001\024\"\128\028\000\000\224\020\0008\184 \000\000\160\000\000\000\000\000\000\000\000\000\b\000\000\004\000\000\000\000\000\000\000\001\000\000\000\000p\000\003\128P\000\226\224\128\000\002\128\000\000\000\000\000\000\000\000\b\000\000\000\000\000 \000\000\000\000\000\000\000\000@\000\000\001\000\000\000\000\000\004\000\000\000\000\000\000\000\000\b\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006B\000@\128\000\148\019\020 \007p\006\000\000\000 \128\001\202a\b\250A\179\202b\228\248\254 \204\b\000d\188\176\000\000 \000\000\000\000\000\128\000\000\000\000\000\000F\b\160\007\000\0008\005\000\014.\b\000\000(\000\000\000\000\000\000\000\000\000\002\000\000\001\000\000\000\000\000\000\000\000@\000\000\000\028\000\000\224\020\0008\184 \000\000\160\000\000\000\000\000\000\000\000\002\000\000\000\000\000\b\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006R\000@\128\000\148\019\023 \007p\006@\000\000 \128\000\000\001\000\000\000\000\000\004\000\000\000\000\000\000\0020E\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007\000\0008\005\000\014.\b\000\000(\000\000\000\000\000\000\000\000\000\002\000\000\001\000\000\000\000\000\000\000\000@\000\000\000\028\000\000\224\020\0008\184 \000\000\160\000\000\000\000\000\000\000\000\002\000\000\000\000\000\b\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000@\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0002\144\002\132@\020\160\152\169\000;\1281\000\000%\005\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\002\000\128\003\000\0000\000\000\n.\b\000\000(\000\000\000\000\000\000\000 \000\000\000\000 @\000\000\000\001\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\004v\148\002-\021\r\248\152\249\000[\001\244\005\000\001\140\128\006R\000@\192\000\148\0197 \007p\006@\000\000\"\128\000\202@\b\016\000\018\130f\228\000\238\000\200\000\000\004P\000\025H\001\002\000\002PL\\\128\029\192\025\000\000\000\138\000\168\148\157\193\234\007\224\176p/\250\011\132\183\129o\2313\200\237(\004Z*\027\2411\242\000\182\003\232\n\000\003\025\000\000\000\000\000\000\000(\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000$\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003!\000\"\000P\n\t\142\016\001\176\003\000P\000\024\192\000d \004@\n\001A1\194\0006\000`\n\000\003\024\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\171\189\157\235\238W\234\185\254\191\251\251\135\183\251o\255\247\192 \000\000\000\000\001@1\192\000\000\000\000\000\000\000\000\001\029\167\016\143\229[~\166>O\151\194}A\192\006k\235\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004v\148B-\021\r\248\152\249\000[\001\244\005\000\001\140\128\142\210\136E\162\161\191\019\031 \011`>\128\160\0001\144\000\192\128\b\b\000\002\002\004\000\000\000\b\000\000\000\000\000\000\024\016\001\000\000\000@@\128\000\000\001\000\000\000\000\000\000\003\002\000 \000\000\b\b\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\001\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\001\128\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000@\b\b\000\001\002\130\000\000\000\000\b\000\000\000\000\000\000\b\001!\000\000 P@\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000 \004\004\000\000\129A\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000 \000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\b\001\001\000\000 P@\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\016\002\168\000@\160\018\014\004\002A\000\022\192\000D\006 \006\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\001\128\000\t \000%\000\000\000@\000\000\000\000\000\000@\000\016\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\002\000\000\001\192\000\015\001@\003\139\130\000\000\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007\000\0008\005\000\014.\b\000\000(\000\000\000\000\000\000\017\016\002\168\000@\160\018\014\004\002A\000\022\192\000D\006\160\028\000\000\224\020\0008\184 \000\000\160\000\000\000\000\000\000D@\n\160\001\002\128H8\016\t\004\000[\000\017\016\026\136\136\001T\000 P\t\007\002\001 \128\011`\002\"\003\016\014\000\000p\n\000\028\\\016\000\000P\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\004\000\000\000\000\0008\000\001\192(\000qp@\000\001@\000\000\000\000\000\000\136\128\021@\002\005\000\144p \018\b\000\182\000\" 1\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\016\000\000\002\000@@\000\b\020\016\000\000\000\000@\000\000\000\000\000\" \005P\000\129@$\028\b\004\130\000-\128\000\136\012@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000 \004\004\000\000\129A\000\000\000\000\004\000\000\000\000\000\002\"\000U\000\b\020\002A\192\128H \002\216\000\b\128\196\000\128\016\016\000\002\005\004\000\000\000\000\016\000\000\000\000\000\b\136\001T\000 P\t\007\002\001 \128\011`\000\"\003\017\017\000*\128\004\n\001 \224@$\016\001l\000\004@b\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\128\000\000\000\b\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\136\128\021@\002\005\b\144p \018\b\000\182\002\003 1\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\017\000*\128\004\n\001 \224@$\016\001l\000\004@b\000@\b\b\000\001\002\130\000\000\000\000\b\000\000\000\000\000\004D\000\170\000\016(\004\131\129\000\144@\005\176\000\017\001\136\000\000\000\000\000\000\000\000\000\000\000\000\000\016\002\001\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\"\000U\000\b\020\"A\192\128H \002\216\b\b\128\196\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\017\000*\128\004\n\017 \224@$\016\001l\004\004@b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004D\000\170\000\016(\004\131\129\000\144@\005\176\000\017\001\136\000\128\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\"\000U\000\b\020\"A\192\128H \002\216\b\b\128\196D@\n\160\001\002\128H8\016\t\004\000[\000\001\016\024\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\017\000*\128\004\n\001 \224@$\016\001l\000\004@b\" \005P\000\129@$\028\b\004\130\000-\128\000\136\012D\000\000 \000\000\b\000\000\128\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\128\000\000 \000\002\000\000\000\000\000\000\000\000\006\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\192\128\b\000\000\002\002\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\136\128\021@\002\005\b\144p \026\b\000\182\000\002`1\001`@\132\000\000\001\001\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\004\000\b\000\000\000\000\000\000\000 \b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000@@\000\b\020\016\000\000\000\000@\000\000\000\000\000 \000\001\000\000\000@\000\004\000\000\000\000\000\000\000\000\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\" \005P\000\129B$\028\b\006\130\000-\128\128\152\012@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\016\000\000\000\000\000\000\000@\000\000 \004\004\000\000\129A\000\000\000\000\004\000\000\000\000\000\002\000\000\016\000\000\004\000\000@\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004v\148B-\021\r\248\152\249\000[\001\244\005\000\001\140\128\142\210\136E\162\161\191\019\031 \011`>\128\160\0001\144\000\202A\b\016\000\018\130b\228\000\238\000\192\000\000\004\016\000\000\000\000\000\000\000\000\000\128\000\000\000\000\128\000F\b \007\000\0008\005\000\014.\b\000\000(\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\002\000\000\000\000\001\029\165\000\139EC~&>@\022\192}\001@\000c \001\148\128\0160\000%\004\205\200\001\220\001\144\000\000\b \0002\144\002\004\000\004\160\153\185\000;\1282\000\000\001\004\000\006R\000@\128\000\148\019\023 \007p\006@\000\000 \128\000\000\000\000\000\000\000\000\004\000\000\000\000\004\000\002 A\002;J\001\022\138\134\252L|\128-\128\250\002\128\000\198@Gi@\"\209P\223\137\143\144\005\176\031@P\000\024\200\000d \004D\n\001A3\194\0006\000`\n\000\003\024\000\012\132\000\136\001@(&x@\006\192\012\001@\000c\000\001\144\128\017\000(\005\004\199\b\000\216\001\128(\000\012`\n\137I\220\030\160~\011\007\002\255\164\184Kz\182\254s<\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\025\b\001\016\002\128PLp\128\r\128\024\002\128\000\198\000\171\189\157\235\238W\234\185\254\191\251\251\135\183\251o\255\247\192\000\000\000\000\000\001\000\001@\000\000\000\000\000\000\000\000\001\029\165\000\139EC~&>@\022\192}\001@\000c \001\148\128\0160\000%\004\205\200\001\220\001\144\000\000\b\160\0002\144\002\004\000\004\160\153\185\000;\1282\000\000\001\020\000\006R\000@\128\000\148\019\023 \007p\006@\000\000\"\128\000\000\003`\000\000\000\000\000\000\000\000\000\000\000\003\001@\002;J-\022\138\134\252L|\128-\128\250\002\128 \230@Gi@\"\209P\223\137\143\144\005\176\031@P\000\024\200\000e \004\012\000\tA3r\000w\000d\000\000\002(\000\012\164\000\129\000\001(&n@\014\224\012\128\000\000E\000\001\148\128\016 \000%\004\197\200\001\220\001\144\000\000\b\160\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000*\239gz\251\149\250\174\127\175\254\254\225\237\254\219\255\252\240\000\000\000\000\000\000P\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000H\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\025\b\001\016\002\128PLp\128\r\128\024\002\128\000\198\000\171\189\157\235\238W\234\185\254\191\251\251\135\183\251o\255\247\192\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\020\000\020\000\000\000\000\000\000\000\000\000\017\218P\b\180T7\226c\228\001l\007\208\020\000\0062\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\021\018\147\184=@\252\022\014\005\255Ap\150\240-\252\230y\029\165\000\139EC~&>@\022\192}\001@\000c \000\000\000\000\000\000\005\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\128\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000d \004@\n\001A1\194\0006\000`\n\000\003\024\002\162Rw\007\168\031\130\193\192\191\233.\018\222\173\191\156\207\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\025H\001\003\000\002PL\220\128\029\192\025\000\000\000\138\000\003)\000 @\000J\t\155\144\003\184\003 \000\000\017@\000e \004\b\000\tA1r\000w\000d\000\000\002(\002\162Rw\007\168\031\130\193\192\191\232.\018\222\005\191\156\207\001\148\128\016 \000%\004\197\200\001\220\001\144\000\000\b \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001W{;\215\220\175\213s\253\127\247\247\015o\246\223\255\231\170%'pz\129\248,\028\011\254\146\225-\234\219\249\204\240\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\bGi@\"\209P\223\137\143\144\005\176\031@P\000\024\200\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000TJN\224\245\003\240X8\023\253\005\194[\192\183\243\153\228v\148\002-\021\r\248\152\249\000[\001\244\005\000\001\140\128\006R\000@\192\000\148\0197 \007p\006@\000\000\"\128\000\202@\b\016\000\018\130f\228\000\238\000\200\000\000\004P\000\025H\001\002\000\002PL\\\128\029\192\025\000\000\000\138\000\168\148\157\193\234\007\224\176p/\250\011\132\183\129o\2313\213\018\147\184=@\252\022\014\005\255Ap\150\240-\252\230y\029\165\000\139EC~&>@\022\192}\001@\000c \001\148\128\0160\000%\004\205\200\001\220\001\144\000\000\b\160\0002\144\002\004\000\004\160\153\185\000;\1282\000\000\001\020\000\006R\000@\128\000\148\019\023 \007p\006@\000\000\"\128*%'pz\129\248,\028\011\254\130\225-\224[\249\204\245D\164\238\015P?\005\131\129\127\208\\%\188\011\1279\158\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\174\246w\175\185_\170\231\250\255\239\238\030\223\237\191\255\207TJN\224\245\003\240X8\023\253%\194[\213\183\243\153\228v\148\002-\021\r\248\152\249\000[\001\244\005\000\001\140\128\006R\000@\192\000\148\0197 \007p\006@\000\000\"\128\000\202@\b\016\000\018\130f\228\000\238\000\200\000\000\004P\000\025H\001\002\000\002PL\\\128\029\192\025\000\000\000\138\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\191\247w\143\237_\254\231\254\255\254\238\127\223E\191\255\239|\251\017\002\005~\027@\000\134\014\000\030\209\192\176\020\006\132v\148\002-\021\r\248\152\249\000[\001\244\005\000\001\140\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002;J\001\022\138\134\252L|\128-\128\250\002\128\000\198@\003)\000 `\000J\t\155\144\003\184\003 \000\000\017@\000e \004\b\000\tA3r\000w\000d\000\000\002(\000\012\164\000\129\000\001(&.@\014\224\012\128\000\000E\000TJN\224\245\003\240X8\023\253\005\194[\192\183\243\153\234\137I\220\030\160~\011\007\002\255\160\184Kx\022\254s<\142\210\128E\162\161\191\019\031 \011`>\128\160\0001\144\000\202@\b\024\000\018\130f\228\000\238\000\200\000\000\004P\000\025H\001\002\000\002PL\220\128\029\192\025\000\000\000\138\000\003)\000 @\000J\t\139\144\003\184\003 \000\000\017@\021\018\147\184=@\252\022\014\005\255Ap\150\240-\252\230z\162Rw\007\168\031\130\193\192\191\232.\018\222\005\191\156\207#\180\160\017h\168o\196\199\200\002\216\015\160(\000\012d\0002\144\002\006\000\004\160\153\185\000;\1282\000\000\001\020\000\006R\000@\128\000\148\0197 \007p\006@\000\000\"\128\000\202@\b\016\000\018\130b\228\000\238\000\200\000\000\004P\005D\164\238\015P?\005\131\129\127\208\\%\188\011\1279\158\168\148\157\193\234\007\224\176p/\250\011\132\183\129o\2313\200\237(\004Z*\027\2411\242\000\182\003\232\n\000\003\025\000\012\164\000\129\128\001(&n@\014\224\012\128\000\000E\000\001\148\128\016 \000%\004\205\200\001\220\001\144\000\000\b\160\0002\144\002\004\000\004\160\152\185\000;\1282\000\000\001\020\001Q);\131\212\015\193`\224_\244\023\to\002\223\206g\170%'pz\129\248,\028\011\254\130\225-\224[\249\204\242;J\001\022\138\134\252L|\128-\128\250\002\128\000\198@\003)\000 `\000J\t\155\144\003\184\003 \000\000\017@\000e \004\b\000\tA3r\000w\000d\000\000\002(\000\012\164\000\129\000\001(&.@\014\224\012\128\000\000E\000TJN\224\245\003\240X8\023\253\005\194[\192\183\243\153\234\137I\220\030\160~\011\007\002\255\160\184Kx\022\254s<\142\210\128E\162\161\191\019\031 \011`>\128\160\0001\144\000\202@\b\024\000\018\130f\228\000\238\000\200\000\000\004P\000\025H\001\002\000\002PL\220\128\029\192\025\000\000\000\138\000\003)\000 @\000J\t\139\144\003\184\003 \000\000\017@\021\018\147\184=@\252\022\014\005\255Ap\150\240-\252\230z\162Rw\007\168\031\130\193\192\191\232.\018\222\005\191\156\207#\180\160\017h\168o\196\199\200\002\216\015\160(\000\012d\0002\144\002\006\000\004\160\153\185\000;\1282\000\000\001\020\000\006R\000@\128\000\148\0197 \007p\006@\000\000\"\128\000\202@\b\016\000\018\130b\228\000\238\000\200\000\000\004P\005D\164\238\015P?\005\131\129\127\208\\%\188\011\1279\158\168\148\157\193\234\007\224\176p/\250\011\132\183\129o\2313\200\237(\004Z*\027\2411\242\000\182\003\232\n\000\003\025\000\012\164\000\129\128\001(&n@\014\224\012\128\000\000E\000\001\148\128\016 \000%\004\205\200\001\220\001\144\000\000\b\160\0002\144\002\004\000\004\160\152\185\000;\1282\000\000\001\020\001Q);\131\212\015\193`\224_\244\023\to\002\223\206g\170%'pz\129\248,\028\011\254\130\225-\224[\249\204\242;J\001\022\138\134\252L|\128-\128\250\002\128\000\198@\003)\000 `\000J\t\155\144\003\184\003 \000\000\017@\000e \004\b\000\tA3r\000w\000d\000\000\002(\000\012\164\000\129\000\001(&.@\014\224\012\128\000\000E\000TJN\224\245\003\240X8\023\253\005\194[\192\183\243\153\234\137I\220\030\160~\011\007\002\255\160\184Kx\022\254s<\142\210\128E\162\161\191\019\031 \011`>\128\160\0001\144\000\202@\b\024\000\018\130f\228\000\238\000\200\000\000\004P\000\025H\001\002\000\002PL\220\128\029\192\025\000\000\000\138\000\003)\000 @\000J\t\139\144\003\184\003 \000\000\017@\021\018\147\184=@\252\022\014\005\255Ap\150\240-\252\230z\162Rw\007\168\031\130\193\192\191\232.\018\222\005\191\156\207#\180\160\017h\168o\196\199\200\002\216\015\160(\000\012d\0002\144\002\006\000\004\160\153\185\000;\1282\000\000\001\020\000\006R\000@\128\000\148\0197 \007p\006@\000\000\"\128\000\202@\b\016\000\018\130b\228\000\238\000\200\000\000\004P\005D\164\238\015P?\005\131\129\127\208\\%\188\011\1279\158\168\148\157\193\234\007\224\176p/\250\011\132\183\129o\2313\200\237(\004Z*\027\2411\242\000\182\003\232\n\000\003\025\000\012\164\000\129\128\001(&n@\014\224\012\128\000\000E\000\001\148\128\016 \000%\004\205\200\001\220\001\144\000\000\b\160\0002\144\002\004\000\004\160\152\185\000;\1282\000\000\001\020\001Q);\131\212\015\193`\224_\244\023\to\002\223\206g\170%'pz\129\248,\028\011\254\130\225-\224[\249\204\242;J\001\022\138\134\252L|\128-\128\250\002\128\000\198@\003)\000 `\000J\t\155\144\003\184\003 \000\000\017@\000e \004\b\000\tA3r\000w\000d\000\000\002(\000\012\164\000\129\000\001(&.@\014\224\012\128\000\000E\000TJN\224\245\003\240X8\023\253\005\194[\192\183\243\153\234\137I\220\030\160~\011\007\002\255\160\184Kx\022\254s<\142\210\128E\162\161\191\019\031 \011`>\128\160\0001\144\000\202@\b\024\000\018\130f\228\000\238\000\200\000\000\004P\000\025H\001\002\000\002PL\220\128\029\192\025\000\000\000\138\000\003)\000 @\000J\t\139\144\003\184\003 \000\000\017@\021\018\147\184=@\252\022\014\005\255Ap\150\240-\252\230z\162Rw\007\168\031\130\193\192\191\232.\018\222\005\191\156\207#\180\160\017h\168o\196\199\200\002\216\015\160(\000\012d\0002\144\002\006\000\004\160\153\185\000;\1282\000\000\001\020\000\006R\000@\128\000\148\0197 \007p\006@\000\000\"\128\000\202@\b\016\000\018\130b\228\000\238\000\200\000\000\004P\005D\164\238\015P?\005\131\129\127\208\\%\188\011\1279\158\168\148\157\193\234\007\224\176p/\250\011\132\183\129o\2313\200\237(\004Z*\027\2411\242\000\182\003\232\n\000\003\025\000\012\164\000\129\128\001(&n@\014\224\012\128\000\000E\000\001\148\128\016 \000%\004\205\200\001\220\001\144\000\000\b\160\0002\144\002\004\000\004\160\152\185\000;\1282\000\000\001\020\001Q);\131\212\015\193`\224_\244\023\to\002\223\206g\170%'pz\129\248,\028\011\254\130\225-\224[\249\204\242;J\001\022\138\134\252L|\128-\128\250\002\128\000\198@\003)\000 `\000J\t\155\144\003\184\003 \000\000\017@\000e \004\b\000\tA3r\000w\000d\000\000\002(\000\012\164\000\129\000\001(&.@\014\224\012\128\000\000E\000TJN\224\245\003\240X8\023\253\005\194[\192\183\243\153\234\137I\220\030\160~\011\007\002\255\160\184Kx\022\254s<\142\210\128E\162\161\191\019\031 \011`>\128\160\0001\144\000\202@\b\024\000\018\130f\228\000\238\000\200\000\000\004P\000\025H\001\002\000\002PL\220\128\029\192\025\000\000\000\138\000\003)\000 @\000J\t\139\144\003\184\003 \000\000\017@\021\018\147\184=@\252\022\014\005\255Ap\150\240-\252\230z\162Rw\007\168\031\130\193\192\191\232.\018\222\005\191\156\207#\180\160\017h\168o\196\199\200\002\216\015\160(\000\012d\0002\144\002\006\000\004\160\153\185\000;\1282\000\000\001\020\000\006R\000@\128\000\148\0197 \007p\006@\000\000\"\128\000\202@\b\016\000\018\130b\228\000\238\000\200\000\000\004P\005D\164\238\015P?\005\131\129\127\208\\%\188\011\1279\158\168\148\157\193\234\007\224\176p/\250\011\132\183\129o\2313\200\237(\004Z*\027\2411\242\000\182\003\232\n\000\003\025\000\012\164\000\129\128\001(&n@\014\224\012\128\000\000E\000\001\148\128\016 \000%\004\205\200\001\220\001\144\000\000\b\160\0002\144\002\004\000\004\160\152\185\000;\1282\000\000\001\020\001Q);\131\212\015\193`\224_\244\023\to\002\223\206g\170%'pz\129\248,\028\011\254\130\225-\224[\249\204\242;J\001\022\138\134\252L|\128-\128\250\002\128\000\198@\003)\000 `\000J\t\155\144\003\184\003 \000\000\017@\000e \004\b\000\tA3r\000w\000d\000\000\002(\000\012\164\000\129\000\001(&.@\014\224\012\128\000\000E\000TJN\224\245\003\240X8\023\253\005\194[\192\183\243\153\234\137I\220\030\160~\011\007\002\255\160\184Kx\022\254s<\142\210\128E\162\161\191\019\031 \011`>\128\160\0001\144\000\000\000\000\000\000\002\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002@\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0002\016\002 \005\000\160\152\225\000\027\0000\005\000\001\140\001Q);\131\212\015\193`\224_\244\151\toV\223\206g\128\202@\b\024\000\018\130f\228\000\238\000\200\000\000\004P\000\025H\001\002\000\002PL\220\128\029\192\025\000\000\000\138\000\003)\000 @\000J\t\139\144\003\184\003 \000\000\017@\021\018\147\184=@\252\022\014\005\255Ap\150\240-\252\230z\162Rw\007\168\031\130\193\192\191\232.\018\222\005\191\156\207#\180\160\017h\168o\196\199\200\002\216\015\160(\000\012d\0002\144\002\006\000\004\160\153\185\000;\1282\000\000\001\020\000\006R\000@\128\000\148\0197 \007p\006@\000\000\"\128\000\202@\b\016\000\018\130b\228\000\238\000\200\000\000\004P\005D\164\238\015P?\005\131\129\127\208\\%\188\011\1279\158\168\148\157\193\234\007\224\176p/\250\011\132\183\129o\2313\192\229 \004\b \t\1933r\000w\000`\000\000\002\b\000\028\164\000\129\004\0018&.@\014\224\012\000\000\000A\000\001\148\194\017\244\003e\148\197\201\241\252A\152\016\000\201y`\000\000@\000\000\000\000\001\000\000\000\000\000\000\000\140\017@\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\202@\n\017\000\018\130b\164\000\238\000\196\000\000\004\016\002;J\001\022\138\134\252L|\128-\128\250\002\128\000\198@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\t\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\017\218P\b\180T7\226c\228\001l\007\208\020\000\0062\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\212\136\180#\002%L\253X\r\220\001\219\000\005x\170\128x\000\003\128P\000\226\224\128\000\002\128\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\0008\000\001\192(\000qp@\000\001@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\016\000\000\000 \b\237(\004Z*\027\2411\242\000\182\003\232\n\000\003\025\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\004v\148\002-\021\r\248\152\249\000[\001\244\005\000\001\140\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\002\000\000\000\000\000\000\000\000\128\000\000\0008\000\001\192(\000qp@\000\001@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\016\000\000\000 \b\237(\004Z*\027\2411\242\000\182\003\232\n\000\003\025\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\004v\148\002-\021\r\248\152\249\000[\001\244\005\000\001\140\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\b\002;J\001\022\138\134\252L|\128-\128\250\002\128\000\198@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\001\029\165\000\139EC~&>@\022\192}\001@\000c \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\017\218P\b\180T7\226c\228\001l\007\208\020\000\0062\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\016\000\b\193\020\000\224\000\007\000\160\001\197\193\000\000\005\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000@\000\000\000\128#\180\160\017h\168o\196\199\200\002\216\015\160(\000\012d\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\017\218P\b\180T7\226c\228\001l\007\208\020\000\0062\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\b\237(\004Z*\027\2411\242\000\182\003\232\n\000\003\025\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\b\000\004@\130\004v\148\002-\021\r\248\152\249\000[\001\244\005\000\001\140\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\202@\b\016\000\018\130b\228\000\238\000\192\001\000\004\016\000\000\000\000\000\000\000P\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\028\000\000\224\020\0008\184 \000\000\160\000\000\000\000\000\000\000\000\002\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\200@\b\016\000\018\130b\132\000\238\000\192\000\000\004\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\002\000\001\016 \128\012\164\000\129\000\001(&.@\014\224\012\128\000\000A\000\000\000\000\000\000\000\000\000\b\000\000\000\000\b\000\004@\130\000\000\000\000\000\000\000\160\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\128\000\000\000\000\000\000\000\000\000\000\000\025H\001B \002PLT\128\029\192\024\128\000\018\130\128\007\000\0008\005\000\014.\b\000\000(\000\000\000\000\000\000\000\000\000\002\000\000\001\000\000\000\000\000\000\000\000@\000\000\000\028\000\000\224\020\0008\184 \000\000\160\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\b\000\000\000\016\004v\148\002-\021\r\248\152\249\000[\001\244\005\000\001\140\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\002;J\001\022\138\134\252L|\128-\128\250\002\128\000\198@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\004\001\029\165\000\139EC~&>@\022\192}\001@\000c \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\142\210\128E\162\161\191\019\031 \011`>\128\160\0001\144\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\b\237(\004Z*\027\2411\242\000\182\003\232\n\000\003\025\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\136\001\020\000 @\t\006\002\001\160\128\n`\000\002\000\016\017\000\"\128\004\bA \192X4\016\001L\000@@B\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\021\018\147\184=@\252\022\014\005\255Ap\150\240-\252\230y\029\165\000\139EC~&>@\022\192}\001@\000c \000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\142\210\128E\162\161\191\019\031 \011`>\128\160\0001\144\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\"\000\000\000\000\000\000\000\000\000\001\000\001@\000\000\000\000\000\000\000\000\001\029\165\000\139EC~&>@\022\192}\001@\000c \000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\027\003\208\005\128@ \007\192\001\000 \000\027\012a\145\218Qh\180T7\226c\228\001l\007\208\020\001\0072\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000Gi@\"\209P\223\137\143\144\005\176\031@P\000\024\200\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000#\180\160\017h\168o\196\199\200\002\216\015\160(\000\012d\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\025\b\001\016\002\128PLp\128\r\128\024\002\128\000\198\000\171\189\157\235\238W\234\185\254\191\251\251\135\183\251o\255\247\192\000\000\000\000\000\001\000\001@\000\000\000\000\000\000\000\000\001\029\165\000\139EC~&>@\022\192}\001@\000c \000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\187\217\222\190\229~\175\159\235\255\191\184{\127\182\255\255<\142\210\128E\162\161\191\019\031 \011`>\128\160\0001\144\000\202@\b\024\000\018\130f\228\000\238\000\200\000\000\004P\000\025H\001\002\000\002PL\220\128\029\192\025\000\000\000\138\000\003)\000 @\000J\t\139\144\003\184\003 \000\000\017@\021\018\147\184=@\252\022\014\005\255Ap\150\240-\252\230z\162Rw\007\168\031\130\193\192\191\232.\018\222\005\191\156\207#\180\160\017h\168o\196\199\200\002\216\015\160(\000\012d\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001W{;\215\220\175\213\243\253\127\247\247\015o\246\223\255\231\145\218P\b\180T7\226c\228\001l\007\208\020\000\0062\000\025H\001\003\000\002PL\220\128\029\192\025\000\000\000\138\000\003)\000 @\000J\t\155\144\003\184\003 \000\000\017@\000e \004\b\000\tA1r\000w\000d\000\000\002(\002\162Rw\007\168\031\130\193\192\191\232.\018\222\005\191\156\207TJN\224\245\003\240X8\023\253\005\194[\192\183\243\153\228v\148\002-\021\r\248\152\249\000[\001\244\005\000\001\140\128\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000*\239gz\251\149\250\190\127\175\254\254\225\237\254\219\255\252\242;J\001\022\138\134\252L|\128-\128\250\002\128\000\198@\003)\000 `\000J\t\155\144\003\184\003 \000\000\017@\000e \004\b\000\tA3r\000w\000d\000\000\002(\000\012\164\000\129\000\001(&.@\014\224\012\128\000\000E\000TJN\224\245\003\240X8\023\253\005\194[\192\183\243\153\234\137I\220\030\160~\011\007\002\255\160\184Kx\022\254s<\002\000\000\000\000\000\020\000\020\000\000\000\000\000\000\000\000\000\017\218P\b\180T7\226c\228\001l\007\208\020\000\0062\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\171\189\157\235\238W\234\249\254\191\251\251\135\183\251o\255\243\200\237(\004Z*\027\2411\242\000\182\003\232\n\000\003\025\000\012\164\000\129\128\001(&n@\014\224\012\128\000\000E\000\001\148\128\016 \000%\004\205\200\001\220\001\144\000\000\b\160\0002\144\002\004\000\004\160\152\185\000;\1282\000\000\001\020\001Q);\131\212\015\193`\224_\244\023\to\002\223\206g\170%'pz\129\248,\028\011\254\130\225-\224[\249\204\242;J\001\022\138\134\252L|\128-\128\250\002\128\000\198@\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\021w\179\189}\202\253_?\215\255\127p\246\255m\255\254y\029\165\000\139EC~&>@\022\192}\001@\000c \001\148\128\0160\000%\004\205\200\001\220\001\144\000\000\b\160\0002\144\002\004\000\004\160\153\185\000;\1282\000\000\001\020\000\006R\000@\128\000\148\019\023 \007p\006@\000\000\"\128*%'pz\129\248,\028\011\254\130\225-\224[\249\204\245D\164\238\015P?\005\131\129\127\208\\%\188\011\1279\158Gi@\"\209P\223\137\143\144\005\176\031@P\000\024\200\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\174\246w\175\185_\171\231\250\255\239\238\030\223\237\191\255\207#\180\160\017h\168o\196\199\200\002\216\015\160(\000\012d\0002\144\002\006\000\004\160\153\185\000;\1282\000\000\001\020\000\006R\000@\128\000\148\0197 \007p\006@\000\000\"\128\000\202@\b\016\000\018\130b\228\000\238\000\200\000\000\004P\005D\164\238\015P?\005\131\129\127\208\\%\188\011\1279\158\168\148\157\193\234\007\224\176p/\250\011\132\183\129o\2313\192\000\000\000\000\000\000\000\000\000\000\000\000\000\004@\000\000\000\000\000\000\000\000\000 \000(\000\000\000\000\000\000\000\000\000#\180\160\017h\168o\196\199\200\002\216\015\160(\000\012d\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001W{;\215\220\175\213\243\253\127\247\247\015o\246\223\255\231\145\218P\b\180T7\226c\228\001l\007\208\020\000\0062\000\025H\001\003\000\002PL\220\128\029\192\025\000\000\000\138\000\003)\000 @\000J\t\155\144\003\184\003 \000\000\017@\000e \004\b\000\tA1r\000w\000d\000\000\002(\002\162Rw\007\168\031\130\193\192\191\232.\018\222\005\191\156\207TJN\224\245\003\240X8\023\253\005\194[\192\183\243\153\228v\148\002-\021\r\248\152\249\000[\001\244\005\000\001\140\128\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000*\239gz\251\149\250\190\127\175\254\254\225\237\254\219\255\252\242;J\001\022\138\134\252L|\128-\128\250\002\128\000\198@\003)\000 `\000J\t\155\144\003\184\003 \000\000\017@\000e \004\b\000\tA3r\000w\000d\000\000\002(\000\012\164\000\129\000\001(&.@\014\224\012\128\000\000E\000TJN\224\245\003\240X8\023\253\005\194[\192\183\243\153\234\137I\220\030\160~\011\007\002\255\160\184Kx\022\254s<\142\210\128E\162\161\191\019\031 \011`>\128\160\0001\144\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\005]\236\239_r\191W\207\245\255\223\220=\191\219\127\255\158Gi@\"\209P\223\137\143\144\005\176\031@P\000\024\200\000e \004\012\000\tA3r\000w\000d\000\000\002(\000\012\164\000\129\000\001(&n@\014\224\012\128\000\000E\000\001\148\128\016 \000%\004\197\200\001\220\001\144\000\000\b\160\n\137I\220\030\160~\011\007\002\255\160\184Kx\022\254s=Q);\131\212\015\193`\224_\244\023\to\002\223\206g\170\239gz\251\149\250\190\127\175\254\254\225\237\254\219\255\252\242;J\001\022\138\134\252L|\128-\128\250\002\128\000\198@\003)\000 `\000J\t\155\144\003\184\003 \000\000\017@\000e \004\b\000\tA3r\000w\000d\000\000\002(\000\012\164\000\129\000\001(&.@\014\224\012\128\000\000E\000TJN\224\245\003\240X8\023\253\005\194[\192\183\243\153\234\137I\220\030\160~\011\007\002\255\160\184Kx\022\254s=W{;\215\220\175\213s\253\127\247\247\015o\246\223\255\239\170\239gz\251\149\250\174\127\175\254\238\225\237\244[\255\252\240\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\142\210\128E\162\161\191\019\031 \011`>\128\160\0001\144\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000Gi@\"\209P\223\137\143\144\005\176\031@P\000\024\200\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002;J\001\022\138\134\252L|\128-\128\250\002\128\000\198@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\b\237(\004Z*\027\2411\242\000\182\003\232\n\000\003\025\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000 \000\017\002\b\017\218P\b\180T7\226c\228\001l\007\208\020\000\0062\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\002\b\237(\004Z*\027\2411\242\000\182\003\232\n\000\003\025\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\148\128\016 \000%\004\197\200\001\220\001\128\000\000\b \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\200A\b\128\020\002\130c\132\000l\000\192\020\000\0060\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\237(\004Z*\027\2411\242\000\182\003\232\n\000\131\025\000\012\164\000\129\128\001(&n@\014\224\012\128\000\000E\000\001\148\128\016 \000%\004\205\200\001\220\001\144\000\000\b\160\0002\144\002\004\000\004\160\152\185\000;\1282\000\000\001\020\000@\000\016\000\000\000\000\000\000\000\000\000\b\000\000\024\002\000\017\218P\b\180T7\226c\228\001l\007\208\020\000\0062\000\025H\001\003\000\002PL\220\128\029\192\025\000\000\000\138\000\003)\000 @\000J\t\155\144\003\184\003 \000\000\017@\000e \004\b\000\tA1r\000w\000d\000\000\002(\000\128\000\004\000\000\000\000\000\000\000\000\000\016\000\0000\020\000\016\000@\128\244\001`\016\b\001\240\000B\b\000\006\195\024`r\144\002\004\016\004\224\153\185\000;\1282\000\000\001\004\000@\000\002\000\000\000\000\000\000\000\000\000\b\000\000\b\b\002\001\202@\b\016@\019\130f\228\000\238\000\200\000\000\004\016\0009H\001\002\b\002pL\\\128\029\192\025\000\000\000\130\000\003)\000 @\000J\t\139\144\003\184\003 \000\000\016@\000\000\000\000\000\000\000\000\002\000\001\000\000\000\000\001\016 \129\029\165\000\139EC~&>@\022\192}\001@\000c \001\148\128\0160\000%\004\205\200\001\220\001\144\000\000\b\160\0002\144\002\004\000\004\160\153\185\000;\1282\000\000\001\020\000\006R\000@\128\000\148\019\023 \007p\006@\000\000\"\128\b\000\000@\000\000\000\000\000\000\000\000\001\000\000\003\001@A\000\004\b\015@\022\001\000\128\031\000\004 \128\000l1\142\003)\000 @\000J\t\139\144\003\184\003 \000\000\016@\000\000\000\000\000\000\000\000\002\000\001\000\000\000\000\001\016 \129\029\165\000\139EC~&>@\022\192}\001@\000c \001\148\128\0160\000%\004\205\200\001\220\001\144\000\000\b\160\0002\144\002\004\000\004\160\153\185\000;\1282\000\000\001\020\000\006R\000@\128\000\148\019\023 \007p\006@\000\000\"\128\b\000\000@\000\000\000\000\000\000\000\000\001\000\000\003\001@A\000\004\b\015@\022\001\000\128\031\000\004 \128\000l1\142\003)\000 @\000J\t\139\144\003\184\003 \000\000\016@\000\000\000\000\000\000\000\000\002\000\001\000\000\000\000\001\016 \129\029\165\000\139EC~&>@\022\192}\001@\000c \001\148\128\0160\000%\004\205\200\001\220\001\144\000\000\b\160\0002\144\002\004\000\004\160\153\185\000;\1282\000\000\001\020\000\006R\000@\128\000\148\019\023 \007p\006@\000\000\"\128\b\000\000@\000\000\000\000\000\000\000\000\001\000\000\003\001@A\000\004\b\015@\022\001\000\128\031\000\004 \128\000l1\142\000\000\000\000\000\000\000\000\016\000\b\000\000\016\000\b\129\004\b\237(\004Z*\027\2411\242\000\182\003\232\n\000\003\025\000\012\164\000\129\128\001(&n@\014\224\012\128\000\000E\000\001\148\128\016 \000%\004\205\200\001\220\001\144\000\000\b\160\0002\144\002\004\000\004\160\152\185\000;\1282\000\000\001\020\000@\000\002\000\000\000\000\000\000\000\000\000\b\000\000\024\n\002\b\000 @z\000\176\b\004\000\248\000!\004\000\003a\140r;J\001\022\138\134\252L|\128-\128\250\002\128\000\198@\003)\000 `\000J\t\155\144\003\184\003 \000\000\017@\000e \004\b\000\tA3r\000w\000d\000\000\002(\000\012\164\000\129\000\001(&.@\014\224\012\128\000\000E\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000@\004\000\128\004v\148\002-\021\r\248\152\249\000[\001\244\005\000\001\140\128\006R\000@\192\000\148\0197 \007p\006@\000\000\"\128\000\202@\b\016\000\018\130f\228\000\238\000\200\000\000\004P\000\025H\001\002\000\002PL\\\128\029\192\025\000\000\000\138\000 \000\001\000\000\000\000\000\000\000\000\000\004\000\000\012\005\001\004\000\016 =\000X\004\002\000|\000\016\130\000\001\176\1988\000B\000\007\160\011\000\128@\015\128\002\000B\000&\b\195#\180\160\017h\168o\196\199\200\002\216\015\160(\000\012d\0002\144\002\006\000\004\160\153\185\000;\1282\000\000\001\020\000\006R\000@\128\000\148\0197 \007p\006@\000\000\"\128\000\202@\b\016\000\018\130b\228\000\238\000\200\000\000\004P\001\000\000\b\000\000\000\000\000\000\000\000\000 \000\000`(\b \000\129\001\232\002\192 \016\003\224\000\132\016\000\r\1341\192\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000@\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000D\000\244\001`\016\b\001\240\000B\b\000\006\193\024b\000\000\000\000\000\000\000\000\000\000\000\000@\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\218P\b\180T7\226c\228\001l\007\208\020\000\0072\000\025H\001\003\000\002PL\220\128\029\192\025\000\000\000\138\000\003)\000 @\000J\t\155\144\003\184\003 \000\000\017@\000e \004\b\000\tA1r\000w\000d\000\000\002(\000\128\000 \000\000\000\000\000\000\000\000\000\016\000\000 \020\000\016\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\136\001\232\002\192 \016\003\224\000\132\016\000\t\1340\196\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000#\180\160\145h\168o\196\199\200\002\216\015\160(\000\012d\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006R\000@\192\000\148\0197 \007p\006@\000\000\"\128\000\202@\b\016\000\018\130f\228\000\238\000\200\000\000\004P\000\025H\001\002\000\002PL\\\128\029\192\025\000\000\000\138\000 \000\t\000\000\000\000\000\000\000\000\000\004\000\000\b\001\000\004\000\000 \000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\001\018\003\208\005\128@ \007\192\001\b \000\019\004a\136\000\000@\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\144\128\017\000(\005\004\199\b\000\216\001\128(\000\012`\b\000\000\000\000\000\000\000\000\000\000$\128\000\002\160\000\000\000\002\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000D\000\000\000\000\000\000\000\000\000\000\128\000\018\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\016\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000@\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\002H\000\000*\000\000\000\000 \000\000\000\000\001@1\192\000\000\000\000\000\000\000\000\002\000\000\"\000\000\000\000\000\000\000\t \000@\168\t\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\137I\220\030\160~\011\007\002\255\164\184Kz\182\254s<\006R\000@\192\000\148\0197 \007p\006@\000\000\"\128\000\202@\b\016\000\018\130f\228\000\238\000\200\000\000\004P\000\025H\001\002\000\002PL\\\128\029\192\025\000\000\000\138\000\168\148\157\193\234\007\224\176p/\250\011\132\183\129o\2313\213\018\147\184=@\252\022\014\005\255Ap\150\240-\252\230x\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\142\210\128E\162\161\191\019\031 \011`>\128\160\0001\144\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002;J\001\022\138\134\252L|\128-\128\250\002\144\000\198@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000TJN\224\245\003\240X8\023\253\005\194[\192\183\243\153\224\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\142\210\128E\162\161\191\019\031 \011`>\128\160\0001\144\000\202@\b\024\000\018\130f\228\000\238\000\200\000\000\004P\000\025H\001\002\000\002PL\220\128\029\192\025\000\000\000\138\000\003)\000 @\000J\t\139\144\003\184\003 \000\000\017@\021\018\147\184=@\252\022\014\005\255Ap\150\240-\252\230y\029\165\000\139EC~&>@\022\192}\001@\000c \001\148\128\0160\000%\004\205\200\001\220\001\144\000\000\b\160\0002\144\002\004\000\004\160\153\185\000;\1282\000\000\001\020\000\006R\000@\128\000\148\019\023 \007p\006@\000\000\"\128*%'pz\129\248,\028\011\254\130\225-\224[\249\204\245D\164\238\015P?\005\131\129\127\208\\%\188\011\1279\158\168\148\157\193\234\007\224\176p/\250\011\132\183\129o\2313\200\237(\004Z*\027\2411\242\000\182\003\232\n\000\003\025\000\012\164\000\129\128\001(&n@\014\224\012\128\000\000E\000\001\148\128\016 \000%\004\205\200\001\220\001\144\000\000\b\160\0002\144\002\004\000\004\160\152\185\000;\1282\000\000\001\020\001Q);\131\212\015\193`\224_\244\023\to\002\223\206g\170%'pz\129\248,\028\011\254\130\225-\224[\249\204\240\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t \000\000\168 \000\000#\180\160\017h\168o\196\199\200\002\216\015\160(\000\012d\000\000\000\000\000\000\000\160\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\144\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012\132\000\136\001@(&8@\006\192\012\001@\000c\000TJN\224\245\003\240X8\023\253%\194[\213\183\243\153\2242\144\002\006\000\004\160\153\185\000;\1282\000\000\001\020\000\006R\000@\128\000\148\0197 \007p\006@\000\000\"\128\000\202@\b\016\000\018\130b\228\000\238\000\200\000\000\004P\005D\164\238\015P?\005\131\129\127\208\\%\188\011\1279\158\168\148\157\193\234\007\224\176p/\250\011\132\183\129o\2313\192e \004\012\000\tA3r\000w\000d\000\000\002(\000\012\164\000\129\000\001(&n@\014\224\012\128\000\000E\000\001\148\128\016 \000%\004\197\200\001\220\001\144\000\000\b\160\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\128\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000z\000\176\b\004\000\248\000`\004\000\002`\1400\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\171\189\157\235\238W\234\185\254\191\251\251\135\183\251o\255\247\192\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000TJN\224\245\003\240X8\023\253%\194[\213\183\243\153\2242\144\002\006\000\004\160\153\185\000;\1282\000\000\001\020\000\006R\000@\128\000\148\0197 \007p\006@\000\000\"\128\000\202@\b\016\000\018\130b\228\000\238\000\200\000\000\004P\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\b\000\000\000\132\001\232\002\192 \016\003\224\000\128\016\000\t\1300\192\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\007\160\011\000\128@\015\128\002\000@\000&\b\195\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006R\000@\192\000\148\0197 \007p\006@\000\000\"\128\000\202@\b\016\000\018\130f\228\000\238\000\200\000\000\004P\000\025H\001\002\000\002PL\\\128\029\192\025\000\000\000\138\000\000\000\b\128\000\000\000\000\000\000\000\002\000\000\000\b\001\000\000\000\017\016=\000X\004\002\000|\000P\002\000\0010F\024\000\000 \000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003)\000 `\000J\t\155\144\003\184\003 \000\000\017@\000e \004\b\000\tA3r\000w\000d\000\000\002(\000\012\164\000\129\000\001(&.@\014\224\012\128\000\000E\000\016\000\004\128\000\000\000\000\000\000\000\000\002\000\000\004\000\128\002\000\000\016\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\137\001\232\002\192 \016\003\224\000\132\016\000\t\1300\196\000\000 \000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\148\128\0160\000%\004\205\200\001\220\001\144\000\000\b\160\0002\144\002\004\000\004\160\153\185\000;\1282\000\000\001\020\000\006R\000@\128\000\148\019\023 \007p\006@\000\000\"\128\b\000\002\000\000\000\000\000\000\000\000\000\001\000\000\002\001@\001\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\b\128\030\128,\002\001\000>\000\bA\000\000\152c\012@\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\025H\001\003\000\002PL\220\128\029\192\025\000\000\000\138\000\003)\000 @\000J\t\155\144\003\184\003 \000\000\017@\000e \004\b\000\tA1r\000w\000d\000\000\002(\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000)\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\002\002\000\000@\160\128\000\000\000\002\000\000\000\000\000\001\000\000\b\000\000\002\000\000 \000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\001\001\000\000 P@\000\000\000\001\000\000\000\000\000\000\128\000\004\000\000\001\000\000\016\000\000\000\000\000\000\002\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\128\128\000\016( \000\000\000\000\128\000\000\000\000\000@\000\002\000\000\000\128\000\b\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\b\003\208\005\128@ \007\192\001\000 \000\023\132a\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\001\001\000\000 P@\000\000\000\001\000\000\000\000\000\000\128\000\004\000\000\001\000\000\016\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\128\128\000\016( \000\000\000\000\128\000\000\000\000\000@\000\002\000\000\000\128\000\b\000\000\000\000\000\000\001\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000@@\000\b\020\016\000\000\000\000@\000\000\000\000\000 \000\001\000\000\000@\000\004\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\016\000\b\000\000\000\000\000\000\000\b\237(\004Z*\027\2411\242\000\182\003\232\n\000\003\025\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\129\000\016\000\000\004\004\b\000\000\000\016\000\000\000\000\000\0000 \002\000\000\000\128\128\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\016\000 \000\016\000\000\000\000\000\000\000\017\218P\b\180T7\226c\228\001l\007\208\020\000\0062\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\000\000\000 \000\b\000\016\000\000\000\000\000\000\000\000\000\000`\000\000\000\000\001\000\002\000\000\000\000\000\000\000\000\000\000\012\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\001\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\128\000\002\000\128\003\002\000 \000\000\b\b\000\000\000\000 \000\000\000\000\000\001\016\002(\000@\129\018\014\004\003A\000\020\192\000\004\000 \004\000\128\128\000\016( \000\000\000\000\128\000\000\000\000\000@\000\000\000\000\000\128\000\b\000\000\000\000\b\000\000\000\024\0000 \002\000\000\000\128\128\000\000\000\002\000\000\000\000\000\000\017\000\"\128\004\b\017 \224@4\016\001L\000\000@\002\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\024\016\001\000\000\000@@\000\000\000\001\000\000\000\000\000\000\b\128\017@\002\004\b\144p \026\b\000\166\000\000 \001\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\001\029\165\000\139EC~&>@\022\192}\001@\000c \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\001\000\000\004\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\024\016\001\000\000\000@@\000\000\000\001\000\000\000\000\000\000\b\128\017@\002\004\b\144p \026\b\000\166\000\000 \001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\128\000\000\128\000 \000`\000\000\000\004\000\000\000\000\000\000\144\000\000\000\000\004\000\012\000\000\000\000\128\000\000\000\000\000\018\000\000\000\000\000\128\000\128\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000@\000 \000\000\000\000\001\000\000\001\128\000\024\000\000\005\023\005\000\000\020 \000\000\000\000\000\000\000\000\000\000\000\128 \000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\224\000\007\000\160\001\197\193\000\000\005\000\000\000\000\000\000\000\000\000\000@\000\000 \000\000\000\000\000\000\000\b\000\000\000\003\128\000\028\002\128\007\023\004\000\000\020\000\000\000\000\000\000\000\000\000\136\000\000\000\000\001\000\000\000\b\000\000\000\000\002@\000\000\017\000\000\000\000\000 \000\000\000\000\000\000\000\000@\000\000\002 \000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000D\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\b\002\000\016\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\"\000\000\000\000\000@\000\000\002\000\000\000\000\000\144\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\016\004\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\000\0000\000\000\n.\b\000\000(\000\000\000\000\000\000\0010\018(\000@\160R\014\004\003A\000\020\192\004\004$ \"\002E\000\b\020\002A\192\128h \002\152\000\128\132\004\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0000\000\003\000\000\000\162\224\128\000\002\132\000\000\000\000\000\000\006\000\000`\000\000\020\\\016\000\000P\000\000\000\000\000\000\002`$P\000\129@\164\028\b\006\130\000)\128\b\bH@D\004\138\000\016(\004\131\129\000\208@\0050\001\001\b\b\t\128\145@\002\005\002\144p \026\b\000\166\000 !!\001\016\018(\000@\160\018\014\004\003A\000\020\192\004\004 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\192H\160\001\002\001H8\016\r\004\000S\000\016\016\144\128\136\t\020\000 P\t\007\002\001\160\128\n`\002\002\016\016\006\000\000`\000\000\020\\\020\000\000P\128\000\000\000\000\000\001\192\000\014\001A\003\139\130\000\000\n\000\000\000\000\000\000\000\b\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\001\000\132\000\000\001\002\000\016\000\000\b\000\000\000\b@\020\000`\000\000\000\000\001@\000\b\000\000\000\000\000\000\000\000\002\000\000\016\000\000\b\000\000\000\000\000\000\000\000\000 \000\002\004\192N\232\001\002\149H8\022\r\004@[\001\021\016\154\128p\000\003\128P\000\226\224\128\000\002\128\000\000\000\000\000\000\002\001\b\000\000\002\004\000 \000\000\016\000\000\000\016\128(\000\192\000\000\000\000\002\128\000\016\000\000\000\000\000\000\000\000\004\000\000 \000\000\016\000\000\000\000\000\000\000\000\000@\000\004\001\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000 \016\128\000\000 @\002\000\000\001\000\000\000\001\b\002\128\012\000\000\000\000\000(\000\001\000\000\000\000\000\000\000\000\000@\000\002\000\000\001\000\000\000\000\000\000\000\000\000\004\000\000@\000\000@\000\000\000\000\001\000\000\000\000\000\000\000\128\000\000\000\000\000 \000\000\016\000\000\000\000\000\000\000\004\000\000\000\000\192\000\012\000\000\002\139\130\128\000\n\016\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\003\000\0000\000\000\n.\b\000\000(\000\000\000\000\000\000\0010\002(\000@\128R\014\004\003A\000\020\192\004\004 &\002E\000\b\020\nA\192\128h \002\152\000\128\132\132\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\0000\000\003\000\000\000\162\224\128\000\002\128\000\000\000\000\000\000\019\000\"\128\004\b\005 \224@4\016\001L\000@B\002\002`$P\000\129@\164\028\b\006\130\000)\128\b\bH@\000\000\000\000\000\000\000\000\128\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\b\237(\004Z*\027\2411\242\000\182\003\232\n\000\003\025\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000r\144\"\004\016\004\224\153\185\000;\1280\000\000\001\004\000\014R\004@\130\000\156\019\023 \007p\006\000\000\000 \128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0009H\001\002\b\002pL\\\128\029\192\024\000\000\000\130\000\b\128\017@\002\004\000\144` \026\b\000\166\000\000 \001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012\164\000\129\128\001(&n@\014\224\012\128\000\000E\000\001\148\128\016 \000%\004\205\200\001\220\001\144\000\000\b\160\0002\144\002\004\000\004\160\152\185\000;\1282\000\000\001\020\001Q);\131\212\015\193`\224_\244\023\to\002\223\206g\170%'pz\129\248,\028\011\254\130\225-\224[\249\204\240\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003)\000 `\000J\t\155\144\003\184\003 \000\000\017@\000e \004\b\000\tA3r\000w\000d\000\000\002(\000\012\164\000\129\000\001(&.@\014\224\012\128\000\000E\000\016\000\004\000\000\000\000\000\000\000\000\000\002\000\000\006\000\128\002\000\000\000\000\000\000\000\000\000\000\000\000@\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\017\000=\000X\004\002\000|\000\016\130\000\001\176F\024\128\000\000\000\000\000\000\000\000\000\000\000\016\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\004\000@@\000\016\016 \000\000\000@\000\000\000\000\000\000\192\128\b\000\000\002\002\004\000\000\000\b\000\000\000\000\000\000\024\016\001\000\000\000@@\000\000\000\001\000\000\000\000\000\000\000\000\004\000\000\000\b\000\016\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\128\128\000\016( \000\000\000\000\128\000\000\000\000\000@\000\002\000\000\000\128\000\b\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\004\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0002\144\002\004\000\004\160\152\185\000;\1282\000\000\001\020\001Q);\131\212\015\193`\224_\244\023\to\002\223\206g\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000Gi@\"\209P\223\137\143\144\005\176\031@P\000\024\200\000e \004\012\000\tA3r\000w\000d\000\000\002(\000\012\164\000\129\000\001(&n@\014\224\012\128\000\000E\000\001\148\128\016 \000%\004\197\200\001\220\001\144\000\000\b\160\n\137I\220\030\160~\011\007\002\255\160\184Kx\022\254s=Q);\131\212\015\193`\224_\244\023\to\002\223\206g\128\192\128\b\b\000\002\002\004\000\000\000\b\000\000\000\000 \000\024\016\001\001\000\000@@\128\000\000\001\000\000\000\000\000\000\003\002\000 \000\000\b\b\016\000\000\000 \000\000\000\000\000\000`@\004\000\000\001\001\000\000\000\000\004\000\000\000\000\000\000\"\000E\000\b\016\"A\192\128H \002\152\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0000 \002\000\000\000\128\129\000\000\000\002\000\000\000\000\000\000\006\004\000@\000\000\016\016\000\000\000\000@\000\000\000\000\000\002 \004P\000\129\002$\028\b\004\130\000)\128\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\128\002\000 \000\b\000\016\000\000\000\000\000\000\000\000\000\000 \000\000\004\000\000@\002\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\b\000@\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\136\001\020\000 @\t\006\002\001 \128\011`\000\002\000\000\002\000@@\000\b\020\016\000\000\000\000@\000\000\000\000\000\" \004P\000\129@$\028\b\004\130\000)\128\000\b\004\000D\000\138\000\016 \004\131\001\000\144@\0050\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000`\000@\000\000\001\000\002\000\000\000\000\000\000\000\000\000\000\012\000\b\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\001\128\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\001\000\000\004\001\000\017\000\"\128\004\b\001 \192@$\016\001L\000\000@\002\002 \004P\000\129\000$\016\b\004\130\000)\128\000\b\000@\024\000\000\000\000\000@\000\128\000\000\000\000\000\000\000\000\000\003\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\002\000\000\b\002\000\"\000E\000\b\016\002A\128\128H \002\152\000\000\128\004\004@\b\160\001\002\000H \016\t\004\000S\000\000\016\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\004\000\000\016\004\000D\000\138\000\016 \004\131\001\000\144@\0050\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\031>\196@\129_\134\208\000!\131\128\007\180p,\005\001\161?\165E\171MS~g>\192V\192\127\129@\001\227 \001\148\128\016 \000%\004\197\200\001\220\001\144\000\000\b \002\000\000\016\000\000\000\000\001\000\000\000\000\000\000\000\136\016@\142\210\128E\162\161\191\019\031 \011`>\128\160\0001\144\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007\207\177\016 W\225\180\000\b`\224\001\237\028\011\001@hO\233Qj\211T\223\153\207\176\021\176\031\224P\000x\200\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\001\128\000\000\000\000\005\000\000 \000\000\000\000\000\000\000\000\b\136\001\020\000 `\t\004\002\001 \128\n`\000\002\000\b\006\004@@@\b\020\016 \000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000P\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\003\128\000\028\002\128\007\023\004\000\000\020\000\000\000\000\000\000\000\000\000\001\000\000\000\128\000\000\000\000\000\000\000 \000\000\000\014\000\000p\n\000\028\\\016\000\000P\000\000\000\000\000\000\002 \004P\000\129\b$\028\011\004\130\000-\128\b\b\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\"\004E\000\b\016\002A\128\128H \002\152\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\136\001\020\000 @\t\006\002\001 \128\n`\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002 \004P\000\129\b$\028\011\004\130\000-\128\b\b\b\000\t\000\000\001\000\000@\000\192\000\000\000\b\000\000\000\000\000\001 \000\000\000\000\b\000\024\000\000\000\001\000\000\000\000\000\000$\000\000\000\000\001\000\001\000\000\000\000 \000\000\000\000\000\"\000E\000\n\016\002A\192\128H \002\216\000\001\128\000\000\144\000\000\000\000\004\000\004\000\000\000\000\128\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\017\000\"\128\004\b\001 \224@$\016\001L\004\000B\000\000@\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\b\128\017@\002\004\000\144p \018\b\000\166\000\000 \000\001\016\002(\000@\128\018\012\004\002A\000\020\192\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004@\b\160\001\002\000H8\016\t\004\000S\000\000\016\000\000\136\001\020\000 @\t\006\002\001 \128\n`\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\224\004^\001\193\003\143\146\b\004\n\000(\000\000\b\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\002\016\000\000\004\000\000@\003\000\000\000\000\000\000\000\000\000\000@\000\000\000\128\000\b\000`\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\001\000\012\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000 \000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\002\000\000\000\000\000\000\000\000\000\000\016\000\000\146\000\002\000\000\000\004\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\t \000 \000\000\000@\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\b\000\001\000\002\000\020@@\000\000\000\000\000\000\000\000\000\b\000\000@\000\000(\016P\004\000\000\000\002\000 \000\000\001\000\000\b\000\000\005\002\b\000\128\000\000\000@\004\000\000\000\028\000\000\224\020\0008\184 \000\000\160\000\000\000\000\000\000\000\000\002\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\128\000\000@ \128\b\000\000\000\004\000@\000\000\004\000\000\000\000\002\000\128\004\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000@\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\001\192\000\014\001@\003\139\130\000\000\n\000\000\000\000\000\000\000@\000\002\000\000\001\000\131\128 \000\000\000\016\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\128\000\000@\002\000\000\000\000\000\000\000\000\000\000@\000\000\016\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\224\000\007\000\160\001\197\193\000\000\005\000\000\000\000\000\000\000 \000\001\000\000\000\128A\128\016\000\000\000\b\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\002\000\004\000(\129\128\000\000\000\000\000\000\000\000\000\002\000\000@\000\128\005\016\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\004\000\001\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\b\000\000\000\000\128\000\016\000 \001D\004\000\000\000\000\000\000\000\000\000\000p\000\003\128P\000\226\224\128\000\002\128\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000@\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007\000\0008\005\000\014.\b\000\000(\000\000\000\000\000\000\000\000\000 \000\000\000\000\002\000\000\000\000\000\000\001\000\000\000\000\000\004\000\000\000\000\000@\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\000*\128\004\bA \224H$\016\001l\000@@\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\002\000\000\000\000 \000\004\000\b\000Q\001\000\000\000\000\000\000\000\000\000\000\"\000U\000\b\016\130A\192\144H \002\216\000\128\128\004\004\000\000 \000\000\016\b8\002\000\000\000\001\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\014\000\000p\n\000\028\\0\000\000P\000\000\000\000\000\000\001\192\000\014\001@\003\139\130\000\000\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\128\000\000\000\000\007\000\0008\005\000\014.\b\000\000(\000\000\000\000\000\000\001\000\000\b\000\000\004\002\014\001\128\000\000\000@\004\000\000\000 \000\001\000\000\000\128A\128\016\000\000\000\b\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\016\000\000\b\004\024\001\000\000\000\000\128\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\b\000\000\004\002\b\000\128\000\000\000@\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004@\b\160\001\002\000H8\016\t\004\000S\000\000\016\000\128\136\001\020\000 @\t\004\002\001 \128\n`\000\002\000\016 \000\000\000\000\000\004\0000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\128\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\004\000\000\128\001\000\n \000\000\000\000\000\000\000\000\000\004@\b\160\001\002\000H8\016\t\004\000S\000\000\016\000\128\136\001\020\000 @\t\004\002\001 \128\n`\000\002\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\016\000\192\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\002\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\001\148\128\020\"\000%\004\197H\001\220\001\136\000\000( \000r\152B>\144l\242\152\185>?\1363\002\000\025/,\002\000\000@\000\128\021\016\016\000\000\000\016\000\000\000\000\000\002\000\000\016\000\000\n\004\020\003\000\000\000\000\128\b\000\000\000@\000\002\000\000\001@\130\000`\000\000\000\016\001\000\000\000\b\000\000@\000\000 \016@\012\000\000\000\002\000 \000\000\002\000\000\000\000\001\000@\002\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000 \b\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\144\000\002;J\001\022\138\134\252L|\128-\128\250\002\128\000\198@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\001\029\165\000\139EC~&>@\022\192}\001@\000c \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\004\000\000\002\001\006\000\192\000\000\000 \002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\002\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\014\000\000p\n\000\028\\\016\000\000P\000\000\000\000\000\000\002\000\000\016\000\000\b\004\028\003\000\000\000\000\128\b\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\002@\000\b\237(\004Z*\027\2411\242\000\182\003\232\n\000\003\025\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\004v\148\002-\021\r\248\152\249\000[\001\244\005\000\001\140\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\001\000\000\000\128\004\000\000\000\000\000\000\000\000 \000\000\000\000 \000\000\016\000\128\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\001\148\128\020\"\000%\004\197H\001\220\001\136\000\000( \000x\000\003\128P\000\226\224\128\000\002\128\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\0008\000\001\192(\000qp@\000\001@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\016\000\000\000\000\b\237(\004Z*\027\2411\242\000\182\003\232\n\000\003\025\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\004v\148\002-\021\r\248\152\249\000[\001\244\005\000\001\140\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\002\000\000\001\000\131\000`\000\000\000\016\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\128\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\007\000\0008\005\000\014.\b\000\000(\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\001\148\128\020\"\000%\004\197H\001\220\001\136\000\000( \000x\000\003\128P\000\226\224\128\000\002\128\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\0008\000\001\192(\000qp@\000\001@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\016\000\000\000\000\b\237(\004Z*\027\2411\242\000\182\003\232\n\000\003\025\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\004v\148\002-\021\r\248\152\249\000[\001\244\005\000\001\140\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002;J\001\022\138\134\252L\252\128-\128\250\002\128\000\198@Gi@\"\209P\223\137\143\144\005\176\031@P\000\024\200\001\000\000\b\000\000\004\002\012\001\128\000\000\000@\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\016\000 \005D\012\000\000\000\004\000\000\000\000@\000\016\000\002\000\004\000\168\129\128\000\000\000\128\000\000\000\000\000\002\000\000@\000\128\021\016\016\000\000\000\016\000\000\000\000\000\000@\000\b\000\016\002\162\002\000\000\000\002\000\000\000\000\000\0009H\017\003\024\002pL\220\128\029\192\024\000\000\000\130\000\249\246\"\004\n\2526\128\001\012\028\000=\163\129`(\r\000\229 D\b \t\1933r\000w\000`\000\000\002\b\000\028\164\b\129\004\0018&.@\014\224\012\000\000\000A\000\003\148\128\016 \128'\004\197\200\001\220\001\128\000\000\b \000\000\000\000\000\000\000\000\002\000\000\128\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000 \000\b\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000@\000\000\000\004\000\000\128\001\000* \000\000\000 \000\000\000\000\000\003\128\000\028\002\128\007\023\004\000\000\020\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\002\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\025H\001B \002PL\212\128\029\192\024\000\000\000\130\000\003)\000(D\000J\t\138\144\003\184\003\000\000\000\016@\000e \005\b\128)A1R\000w\000`\000\000\002\b\000\004\000\000\128\001\000* \000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\128\016\000\002\000\004\000\168\128\128\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\234EZ\129\149\n\166\127\175\004\238\000\233\148\b\0301@]H\171P2\161T\207\245\224\157\192\0292\129\003\198(\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\016\002\168\000@\132\018\014\005\130A\000\020\192\004\012\000\160\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\136\001T\000 B\t\007\002\193 \128\n`\002\006\000P\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000D\000\170\000\016!\004\131\129`\144@\0050\001\003\000(\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000@\000\000\000\004\000\000\128\001\000* \000\000\000 \000\000\000\000\000\004@\n\160\001\002\016H8\022\t\004\000S\000\0160\002\128r\144\"\004\016\004\224\152\185\000;\1280\000\000\001\004\000\014R\000@\130\000\156\019\023 \007p\006\000\000\000 \128\000\000\000\000\000\000\000\000\b\000\002\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\016\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012\000\000\224\017\000*\184 \000\000\160\000\000\000\000\000\000\004\192J\160\001\002\129\b8\016\t\004\000[\000\0000\000\1280\000\003\000\000\000\162\224\128\000\002\128\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\192\000\014\001\016\002\171\130\000\000\n\000\000\000\000\000\000\0008\000\001\192(\000qp@\000\001@\000\000\000\000\n\000\000\000\001\000\000\000\000\000\016\000\000\000\000\000\000\b\001\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\012\000\000\224\017\000*\184 \000\000\160\000\000\000\000\000\000\001\128\000\024\000\000\005\023\004\000\000\020\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\006\000\000p\b\128\021\\\016\000\000P\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\128\000\000\000\b\000\000\000\000\000P0@\000\001\000\000\000\000\000\000\000\t\128\149@\002\005\002\016p \018\b\000\182\000\000 \001\0010\018\168\000@\160B\014\004\002\001\000\022\192\000\004\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004@\n\160\001\002\000\b8\016\b\000\000[\000\000\016\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000@\000\000 \016p\012\000\000\000\002\000 \000\004\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000 \000\000\016\b0\006\000\000\000\001\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000@\000\128\021\016\016\000\000\000\016\000\000\000\000\000\002\000\000\016\000\000\b\004\028\003\000\000\000\000\128\b\000\001\000@\000\002\000\000\001\000\131\000`\000\000\000\016\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\224\000\007\000\160\001\197\195\000\000\005\000\000\000\000\000\000\000\028\000\000\224\020\0008\184 \000\000\160\000\000\000\000\000\000\004\000\000 \000\000\016\b0\006\000\000\000\001\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\002\000\000\001\000\131\000`\000\000\000\016\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\001\000\000\000\128A\0000\000\000\000\b\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\136\001\020\000 @\t\007\002\001 \128\n`\000\002\000\016\006\000\000p\b\128\021\\\016\000\000P\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\b\000\001\000\002\000T@@\000\000\000@\000\000\000\000\000\b\128\017@\002\004\000\144p \018\b\000\166\000\000 \001\000e \005\b\128\tA1R\000w\000b\000\000\n\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004@\b\160\001\002\000H0\016\t\004\000S\000\000\016\000\128\136\001\020\000 @\t\004\002\001 \128\n`\000\002\000\016 \000\000\000\000\000\004\0000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\128\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000e \005\b\128\tA1R\000w\000b\000\000\n\b\000\"\000E\000\b\016\002A\128\128H \002\152\000\000\128\004\004@\b\160\001\002\000H \016\t\004\000S\000\000\016\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000D\000\138\000\016 \004\130\001\000\128\000\0050\000\001\000\000\007)\002 a\000N\t\155\144\003\184\003\000\000\000\016@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000D\000\138\000\016 \004\130\001\000\144@\0050\000\001\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\016\002(\000@\128\018\012\004\002A\000\020\192\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\129\000\016\016\000\004\004\b\000\000\000\016\000\000\000\000\000\0000 \002\000\000\000\128\129\000\000\000\002\000\000\000\000\000\000\006\004\000@\000\000\016\016\000\000\000\000@\000\000\000\000\000\002 \004P\000\129\002$\028\b\004\130\000)\128\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\128\017@\002\004\000\144@ \018\b\000\166\000\000 \001\000@\000\002H\000\t@\002\000\016\000\000\000\000\000\000\016\000\b\000\000I\000\001(\000\000\002\000\000\000\000\000\000\002\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\136\001\020\000 @\t\006\002\001 \128\011`\002\006\000\016\017\000\"\128\004\b\001 \192@$\016\001l\000@@\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000D\000\138\000\016 \004\131\001\000\144@\0050\001\001\000\b\b\128\017@\002\004\000\144@ \018\b\000\166\000\000 \001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000D\000\138\000\016 \004\131\001\000\128\000\0050\000\001\000\000\b\128\017@\002\004\000\144@ \016\000\000\166\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\136\001\020\000 @\t\004\002\001\160\128\n`\000\002\000\016\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\016\002(\000@\128\018\012\004\002\000\000\020\192\000\004\000\000\"\000E\000\b\016\002A\000\128@\000\002\152\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000$\000\000\128\000\001\000\001\000\000\000\000 \000\000\000 \000\004\128\000\000\000\000 \000 \000\000\000\004\000\000\000\004\000\000\144\000\000\000\000\004\000\004\000\000\000\000\128\000\000\000\000\000\136\001\020\000(@\t\007\002\001 \128\011`\000\006\016\000\002@\000\000\000\000\016\000\016\000\000\000\002\000\000\000\000\000\002 \004P\000\129\000$\028\b\004\130\000)\128\000\b@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\128\017@\002\004\000\144p \018\b\000\166\000 !\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\"\000E\000\b\016\002A\128\128H \002\152\000\000\132\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\"\000E\000\n\016\002A\192\128H \002\216\000\001\132\000\000\144\000\000\000\000\004\000\004\000\000\000\000\128\000\000\000\000\000\136\001\020\000 @\t\007\002\001 \128\n`\000\002\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002 \004P\000\129\000$\028\b\004\130\000)\128\b\b@@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\001\016\002( @\128\018\012\004\002A\000\022\192\004\012\000 \"\000E\000\b\016\002A\128\128H \002\216\000\128\128\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\136\001\020\000 @\t\006\002\001 \128\n`\002\002\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\000\000 \000\000@\000@\000\000\000\b\000\000\000\b\000\001 \000\000\000\000\b\000\b\000\000\000\001\000\000\000\001\000\001\016\002(\000@\128\018\012\004\002A\000\020\192\000\004 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\017\000*\128\004\n\017 \224@$\016\001l\000\004@b \000\001\000\000\000@\000\004\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003!\000 @\000J\t\138\016\003\184\003\000\000\000\016@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\006\192\000\000\128\000\b\000\004\000\000\n\000\006b\138\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\006R\000@\128\000\148\019\023 \007p\006@\b\000 \128\000\000\000\000\000\000\002\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\224\000\007\000\160\001\197\193\000\000\005\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006B\000@\128\000\148\019\020 \007p\006\000\000\000 \128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\r\128\000\001\000\000\016\000\b\000\000\020\000\012\197\020\000\000\000\128\000\000\000\000\002\000\000\000\000\000\000\001\024 \128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\128\000\028\002\128\007\023\004\000\000\020\000\000\000\000\000\000\000\000\000@\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\016\000\000\b\004\016\003\000\000\000\000\128\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000e \004\012\000\tA3r\000w\000d\000\000\002(\000\012\164\000\129\000\001(&n@\014\224\012\128\000\000E\000\001\148\128\016 \000%\004\197\200\001\220\001\144\000\000\b\160\n\137I\220\030\160~\011\007\002\255\160\184Kx\022\254s=Q);\131\212\015\193`\224_\244\151\toV\223\206g\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005]\172\239\031R\191U\207\241\255\223\220=\191\219\127\255\158\168\148\157\193\234\007\224\176p/\250K\132\183\171o\2313\192d \004@\n\001A1\194\0006\000`\n\000\003\024\002\162Rw\007\168\031\130\193\192\191\233.\018\222\173\191\156\207\001\148\128\0160\000%\004\205\200\001\220\001\144\000\000\b\160\0002\144\002\004\000\004\160\153\185\000;\1282\000\000\001\020\000\006R\000@\128\000\148\019\023 \007p\006@\000\000\"\128*%'pz\129\248,\028\011\254\130\225-\224[\249\204\245D\164\238\015P?\005\131\129\127\208\\%\188\011\1279\158\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\b\237(\004Z*\027\2411\242\000\182\003\232\n\000\003\025\000\000\000\000\000\000\000(\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000$\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003!\000\"\000P\n\t\142\016\001\176\003\000P\000\024\192\021\018\147\184=@\252\022\014\005\255Ip\150\245m\252\230x\012\164\000\129\128\001(&n@\014\224\012\128\000\000E\000\001\148\128\016 \000%\004\205\200\001\220\001\144\000\000\b\160\0002\144\002\004\000\004\160\152\185\000;\1282\000\000\001\020\001Q);\131\212\015\193`\224_\244\023\to\002\223\206g\170%'pz\129\248,\028\011\254\130\225-\224[\249\204\244\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003)\000 @\000J\t\139\144\003\184\003 \000\000\017@\021\018\147\184=@\252\022\014\005\255Ap\150\240-\252\230x\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\016\000\000\000\004\000\000\000\004\017\000\000\000\000\128\000\001\192\000\014\001@\003\139\130\000\000\n\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\128\000\000\004\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000`\000\006\000\000\001E\195\000\000\005\016\000\000\128\000\000\000\012\000\000\192\000\000(\184 \000\000\162\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\016\000\000\000\004\000\000\000\000\017\000\000\000\000\000\000\000\192\000\012\000\000\002\139\130\000\000\n \000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\004\000\000\000\000\000\000\000\001\000\000\000\000p\000\003\128P\000\226\224\128\000\002\128\000\000\000\000\000\000\000\000\b\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\004\0008\000\001\192(\000qp@\000\001@\000\000\000\000\000\000\136\128\029\192\002\007 \144p,\018\b\128\182\000+!5\145\016\003\184\000@\228\018\014\005\130A\016\022\192\005d&\176\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\128\000\024\000\000\005\023\004\000\000\020\000\000\000\000\000\000\b\136\001\220\000 r\t\007\002\193 \136\011`\002\178\019Y\017\000;\128\004\014A \224X$\017\001l\000VBk\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\0008\000\001\192(\000qp@\000\001@\000\000\000\000\000\000\136\128\029\192\002\007 \144p,\018\b\128\182\000+!5\145\016\003\184\000@\228\018\014\005\130A\016\022\192\005d&\176\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\128\000\024\000\000\005\023\004\000\000\020\000\000\000\000\000\000\b\136\001\220\000 r\t\007\002\193 \136\011`\002\178\019Y\017\000;\128\004\014A \224X$\017\001l\000VBk\001\192\000N\001@\003\139\130\000\000\n\000\000\000\000\000P\000\000\000\000\000\000@\016\000\000\000\000\002\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \b\000\000\000\000\001\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002h\004P\000\129\002$\026\b\004\130\000i\128\b\b\000@D\000\138\000\020 \004\131\129\000\144@\0050\001\003\b\b\b\128\017@\002\004\000\144` \018\b\000\166\000 !\001\000$\000\000\000\000\001\000\001\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\000\"\128\004\b\001 \224@$\016\001L\000@@\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000D\000\138\000\020 \004\131\129\000\144@\0050\001\003\b\b\000\000\000\000\000\b\002\000\000\000\000\000@\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\001\000\000\000\000\000 \000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\128\017@\002\004\000\144p \018\b\000\182\000 \001\000$\000\000\128\000\001\000\001@\000\002\000 \000\128\000 \000\004\128\000\000\000\000 \000(\000\000@\004\000\016\000\004\000\000\000\000\000\000\004\001\000\000\000\000\000 \000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\128\000\000\000\000\016\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\001\000\000\000\000\000 \000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\128\000\000\000\000\016\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000r\000\003\192P\000\226\224\160\000\003\128\016\000@\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002 \004P\000\129\000\004\024\b\004\000\000)\128\b\b\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000$\000\000\128\000\001\000\001\000\000\000\000 \000\000\000 \000\004\128\000\000\000\000 \000 \000\000\000\004\000\000\000\004\000\004@\b\160\001\002\000\b0\016\b\000\000S\000\000\016\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\001\016\002( @\128\002\012\004\002\000\000\022\192\004,\000 \"\000E\000\b\016\000A\128\128@\000\002\216\000\132\128\004\003\144\000\030\002\128\007\023\005\000\000\028\000\128\002\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\000\"\128\004\b\000 \192@ \000\001L\000@@\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001 \000\004\000\000\b\000\b\000\000\000\001\000\000\000\001\000\000$\000\000\000\000\001\000\001\000\000\000\000 \000\000\000 \000\"\000E\000\b\016\000A\128\128@\000\002\152\000\000\132\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\136\001\020\000 @\001\004\002\001\000\000\n`\000\002\000\000\002\000\000\000@\000\000\000 \000\000\000\000\000\000\000\001\000\000@\000\000\b\000\000\000\004\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\016\002(\000@\129\002\012\004\002\000\000\020\192@\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\000\"\128\004\b\016 \192@ \000\001L\004\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\028\000\016\001\000\000@\000\128\000\000\000\000\000\000\000\000\000\001\000\000\000 \000\002\000\016\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000@\002\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\004@\b\160\001\002\000\b0\016\b\000\000[\000\000\144\000\000\016\002\002\000\000@\160\128\000\000\000\002\000\000\000\000\000\001\017\000\"\128\004\n\000 \224@ \000\001L\000\000@ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\024\000\016\000\000\000@\000\128\000\000\000\000\000\000\000\000\000\003\000\002\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\002\000\000(\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004@\b\160\001\002\004\b0\016\b\000\000S\001\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\b\001\001\000\000 P@\000\000\000\001\000\000\000\000\000\000\136\128\017@\002\005\000\016p \016\000\000\166\000\000 1\001\016\002(\000@\128\002\012\004\002\000\000\020\192\000\004\000 \"\000E\000\b\016\000A\000\128@\000\002\152\000\000\128\004\001\128\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\0000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000@\b\b\000\001\002\130\000\000\000\000\b\000\000\000\000\000\004D\000\138\000\016(\000\131\129\000\128\000\0050\000\001\001\136\b\128\017@\002\004\000\016` \016\000\000\166\000\000 \001\001\016\002(\000@\128\002\b\004\002\000\000\020\192\000\004\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000@\000\001\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\136\001\020\000 @\001\006\002\001\000\000\n` \002\001\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000D\000\138\000\016 \000\131\001\000\128\000\0050\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \004\004\000\000\129A\000\000\000\000\004\000\000\000\000\000\002\"\000E\000\b\020\000A\192\128@\000\002\152\000\000\128\192\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\136\001\020\000 @\001\006\002\001\000\000\n`\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\016\000\000\b\001\001\000\000 P@\000\000\000\001\000\000\000\000\000\000\136\128\017@\002\005\000\016p \016\000\000\166\000\000 0\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000H\000\000\b\000\002\000\006\000\000\000\000@\000\000\000\000\000\t\000\000\000\000\000@\000\192\000\000\000\b\000\000\000\000\000\001 \000\000\000\000\b\000\b\000\000\000\001\000\000\000\000\000\001\016\002(\000P\128\002\014\004\002\000\000\020\192\000\012\000\000B\000\000\000\128\000\b\000`\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\001\000\012\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000 \000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\003\000\0008\004@\n\174\b\000\000(\000\000\000\000\000\000\001\016\002(\000@\128\002\012\004\002\000\000\020\192\000\004\000 \"\000E\000\b\016\000A\000\128@\000\002\152\000\000\128\004\b\000\000\000\000\000\001\000\012\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000 \000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\003\000\0008\004@\n\174\b\000\000(\000\000\000\000\000\000\001\016\002(\000@\128\002\012\004\002\000\000\020\192\000\004\000 \"\000E\000\b\016\000A\000\128@\000\002\152\000\000\128\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002 \004P\000\129\000\004\016\b\004\000\000)\128\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000D\000\138\000\016 \000\131\001\000\128\000\0050\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \004\004\004\000\129A\002\000\000\000\004\000\000\000\000\000\000\004\000\128\128\000\016( @\000\000\000\128\000\000\000\000\000\000\128\016\016\000\002\005\004\000\000\000\000\016\000\000\000\000\000\b\136\001\020\000 P\001\007\002\001\000\000\n`\000\002\003\000\017\000\"\128\004\b\000 \128@ \000\001L\000\000@@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000D\000\138\000\016 \000\130\001\000\128\000\0050\000\001\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\016\002(\000@\128\002\b\004\002\000\000\020\192\000\004\000 \b\000\000I\000\001(\000@\002\000\000\000\000\000\000\002\000\001\000\000\t \000%\000\000\000@\000\000\000\000\000\000@\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\0009\000\001\224(\000qpP\000\001\192\b\000 \000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\016\002(\000@\128\002\012\004\002\000\000\020\192\004\004\000 \"\000E\000\b\016\000A\000\128@\000\002\152\000\000\128\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\128\000\000 \000\002\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\004\000\000\000\000\000\000\000\001\000\000\000\000p\000\003\128P\000\226\224\128\000\002\128\000\000\000\000\000\000\000\000\b\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\004\0008\000\001\192(\000qp@\000\001@\000\000\000\000\000\000\136\128\029\192\002\007 \144p,\018\b\128\182\000+!5\145\016\003\184\000@\228\018\014\005\130A\016\022\192\005d&\176\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\128\000\024\000\000\005\023\004\000\000\020\000\000\000\000\000\000\b\136\001\220\000 r\t\007\002\193 \136\011`\002\178\019Y\017\000;\128\004\014A \224X$\017\001l\000VBk\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\0008\000\001\192(\000qp@\000\001@\000\000\000\000\000\000\136\128\029\192\002\007 \144p,\018\b\128\182\000+!5\145\016\003\184\000@\228\018\014\005\130A\016\022\192\005d&\176\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\128\000\024\000\000\005\023\004\000\000\020\000\000\000\000\000\000\b\136\001\220\000 r\t\007\002\193 \136\011`\002\178\019Y\017\000;\128\004\014A \224X$\017\001l\000VBk\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\004\0008\000\001\192(\000qp@\000\001@\000\000\000\000\000\000\136\128\029\192\002\007 \144p,\018\b\128\182\000+!5\145\016\003\184\000@\228\018\014\005\130A\016\022\192\005d&\176\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\128\000\024\000\000\005\023\004\000\000\020\000\000\000\000\000\000\b\136\001\220\000 r\t\007\002\193 \136\011`\002\178\019Y\017\000;\128\004\014A \224X$\017\001l\000VBk\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\0008\000\001\192(\000qp@\000\001@\000\000\000\000\000\000\136\128\029\192\002\007 \144p,\018\b\128\182\000+!5\145\016\003\184\000@\228\018\014\005\130A\016\022\192\005d&\176\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\128\000\024\000\000\005\023\004\000\000\020\000\000\000\000\000\000\b\136\001\220\000 r\t\007\002\193 \136\011`\002\178\019Y\017\000;\128\004\014A \224X$\017\001l\000VBk\000\192\000\012\000\000\002\139\130\000\000\n\000\000\000\000\000\000\0008\000\001\192( qp@\000\001@\000\000\000\000\000\000\000\000\000\016\000\000\b\000\000\000\000\000\000\000\002\000\000\000\000\224\000\007\000\160\001\197\193\000\000\005\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\b\000p\000\003\128P\000\226\224\128\000\002\128\000\000\000\000\000\001\017\000;\128\004\014A \224X$\017\001l\000VBk\" \007p\000\129\200$\028\011\004\130 -\128\n\200M`\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\000\0000\000\000\n.\b\000\000(\000\000\000\000\000\000\017\016\003\184\000@\228\018\014\005\130A\016\022\192\005d&\178\"\000w\000\b\028\130A\192\176H\"\002\216\000\172\132\214\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000p\000\003\128P\000\226\224\128\000\002\128\000\000\000\000\000\001\017\000;\128\004\014A \224X$\017\001l\000VBk\" \007p\000\129\200$\028\011\004\130 -\128\n\200M`\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\000\0000\000\000\n.\b\000\000(\000\000\000\000\000\000\017\016\003\184\000@\228\018\014\005\130A\016\022\192\005d&\178\"\000w\000\b\028\130A\192\176H\"\002\216\000\172\132\214\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\b\000p\000\003\128P\000\226\224\128\000\002\128\000\000\000\000\000\001\017\000;\128\004\014A \224X$\017\001l\000VBk\" \007p\000\129\200$\028\011\004\130 -\128\n\200M`\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\000\0000\000\000\n.\b\000\000(\000\000\000\000\000\000\017\016\003\184\000@\228\018\014\005\130A\016\022\192\005d&\178\"\000w\000\b\028\130A\192\176H\"\002\216\000\172\132\214\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000p\000\003\128P\000\226\224\128\000\002\128\000\000\000\000\000\001\017\000;\128\004\014A \224X$\017\001l\000VBk\" \007p\000\129\200$\028\011\004\130 -\128\n\200M`\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\000\0000\000\000\n.\b\000\000(\000\000\000\000\000\000\017\016\003\184\000@\228\018\014\005\130A\016\022\192\005d&\178\"\000w\000\b\028\130A\192\176H\"\002\216\000\172\132\214\000\128@\000\000\000\129\000\000\000\000\004\000\000\000\000\000\b\0000\000\003\000\000\000\162\224\128\000\002\128\000\000\000\000\000\000\000\001\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000 \001\192\000\014\001@\003\139\130\000\000\n\000\000\000\000\000\000\004D\000\238\000\0169\004\131\129`\144D\005\176\001Y\t\172\136\128\029\192\002\007 \144p,\018\b\128\182\000+!5\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012\000\000\192\000\000(\184 \000\000\160\000\000\000\000\000\000D@\014\224\001\003\144H8\022\t\004@[\000\021\144\154\200\136\001\220\000 r\t\007\002\193 \136\011`\002\178\019X\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\001\192\000\014\001@\003\139\130\000\000\n\000\000\000\000\000\000\004D\000\238\000\0169\004\131\129`\144D\005\176\001Y\t\172\136\128\029\192\002\007 \144p,\018\b\128\182\000+!5\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012\000\000\192\000\000(\184 \000\000\160\000\000\000\000\000\000D@\014\224\001\003\144H8\022\t\004@[\000\021\144\154\200\136\001\220\000 r\t\007\002\193 \136\011`\002\178\019X\002\001\000\000\000\002\004\000\000\000\000\016\000\000\000\000\000 \000\192\000\012\000\000\002\139\130\000\000\n\000\000\000\000\000\000\004D\004\238\000\0169\004\131\129`\144D\005\176\001Y\t\172\007\000\0008\005\000\014.\b\000\000(\000\000\000\000\000\000\017\016\003\184\000@\228\018\014\005\130A\016\022\192\005d&\178\"\000w\000\b\028\130A\192\176H\"\002\216\000\172\132\214\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0000\000\003\000\000\000\162\224\128\000\002\128\000\000\000\000\000\001\017\000;\128\004\014A \224X$\017\001l\000VBk\" \007p\000\129\200$\028\011\004\130 -\128\n\200M`\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\007\000\0008\005\000\014.\b\000\000(\000\000\000\000\000\000\017\016\003\184\000@\228\018\014\005\130A\016\022\192\005d&\178\"\000w\000\b\028\130A\192\176H\"\002\216\000\172\132\214\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0000\000\003\000\000\000\162\224\128\000\002\128\000\000\000\000\000\001\017\000;\128\004\014A \224X$\017\001l\000VBk\" \007p\000\129\200$\028\011\004\130 -\128\n\200MdD\000\170\000\0160\004\131\129\000\144@\005\176\001I\001\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\"\000U\000\b\024\002A\192\128H \002\216\000\164\128\006@\000\002\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\001 \000\001\000\000\000\128\000\000\000\000\000\000\000\000\002\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007\000\0008\005\000\014.\b\000\000(\000\000\000\000\000\000\000 \016\128\000\000 @\002\000\000\001\000\000\000\001\b\002\128\012\000\000\000\000\000(\000\001\000\000\000\000\000\000\000\000\000@\000\002\000\000\001\000\000\000\000\000\000\000\000\000\004\000\000@\016\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\002\001\b\000\000\002\004\000 \000\000\016\000\000\000\016\128(\000\192\000\000\000\000\002\128\000\016\000\000\000\000\000\000\000\000\004\000\000 \000\000\016\000\000\000\000\000\000\000\000\000@\000\004\000\000\004\000\000\000\000\000\016\000\000\000\000\000\000\b\000\000\000 \000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\004\002\016@\000\004(\000@\000\000 \000\000\b!\000P\004@\b\160\001\002\000H0\016\t\004\000S\000\000\016\016\000\136\001\020\000 @\t\006\002\001 \128\n`\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000Gi@\"\209P\223\137\143\144\005\176\031@P\000\024\200\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\001\029\165\000\139EC~&>@\022\192}\001@\000c \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\128\016@\002\004\000\016@ \016\000\000\164\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\000\000\000\000\000\160\000\128\000\000\000\016\000\000\000\000\000\000\001\b\007\208\005\130@\000\007\192\129\000 @\003\005e\128\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\b\000\000\000\000\128\000\000\000\000\005\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000>\128,\018\000\000>\004\b\001\002\000\024+,\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000H\000\000\000\000\002\000\002\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\028\000\000\224\020\0008\184 \000\000\160\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\218P\b\180T7\226c\228\001l\007\208\020\000\0062\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000@ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012\b\000\128\000\000 \000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\001\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\b\b\000\001\002\130\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\001\000\000\016\000\000\000\000\004\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\202@\b\016\000\018\130b\228\000\238\000\200\000\000\004\016\000\000\000\000\000\000\000\000\000\128\000\000\000\000 \000D\b \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000(\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\b\000\000\000\000\000P\000\000\000\000\000\000\000\000\000\000\000O\233Pb\211T\223\153\207\176\023\184\031\228P\0008\200\000 \000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000&\132A\000\b\016*A\000\192H \006\144\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\128\016@\002\004\000\144@ \018\b\000\164\002\000 \000\000 \000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000&\132A\000\b\016*A\000\192H \006\144\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\128\016@\002\004\000\144@ \018\b\000\164\002\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\000 \128\004\b\001 \128@ \000\001@\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\254\149\006-5M\249\156\251\001{\129\254E\000\003\140\128\159\210\160\197\166\169\1913\159`/p?\200\160\000q\144\002 \004\016\000\129\000$\016\b\004\130\000)\000\000\b\000\000D\000\130\000\016 \004\130\001\000\144@\005 \000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\"\000A\000\b\016\002A\128\128H \002\144\000\000\128\000\004@\b \001\002\000H \016\t\004\000R\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000D\000\130\000\016 \004\131\001\000\144@\005 \000\001\000\000\b\128\016@\002\004\000\144@ \018\b\000\164\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000") + (147, "'\244\1681i\170o\204\231\216\n\216\015\242(\000\028d\004v\148\002/\021\r\248\153\249\000[\001\244\005\000\001\140\129\243\236D\b\021\248m\000\002\0248\000{G\002\192P\026\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\127\173\205\235]\211\254g~\242^\224\255\137H\129\231 |\251\017\002\005~\027@\000\134\014\000\030\209\192\176\020\006\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\218P\b\180T7\226g\228\001l\007\208\020\000\0062\007\207\177\016 W\225\180\000\b`\224\001\237\028\011\001@hO\233Qj\211T\223\153\207\176\021\176\031\224P\000x\200\000\000\000\000\004\000\001@\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000(\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000>\128,\018\000\000>\004\b\001\002\000\016+,\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\001@\000\000\000\000\000\000\000\000\000\000\0000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\136\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000p\000\003\128P\000\226\224\128\000\002\128\000\000\000\000\000\000\014R\000`\130\000\156_\023 \007p\006@\000\000 \128\001\202@\012\016@\019\139\226\228\000\238\000\200\000\000\004\016\0009H\001\130\b\002q|\\\128\029\192\025\000\000\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0010\019\186\000@\165R\014\005\131A\016\022\192DD&\160\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\192\000\014\001A\003\139\130\000\000\n\000\000\000\000\000\000\000\b\004 \000\000\b\016\000\128\000\000@\000\000\000B\000\160\003\000\000\000\000\000\n\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012\000\000\000\000\000(\000\001\000\000\000\000\000\000\000\000\000\003\128\000\028\002\128\007\023\004\000\000\020\000\000\000\000\000\000\000\016\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\192\000\014\001A\003\139\130\000\000\n\000\000\000\000\000\000\000\b\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\001\000\132\016\000\001\n\000\016\000\000\b\000\000\002\b@\020\000`\000\000\000\000\001@\000\b\000\000\000\000\000\000\000\000\002\"\000U\000\b\024\002A\128\128H \002\216\000\164\128\006\001\128\000\000\000\000\005\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000 \000\000\016\000\000\000\000\000\000\000\000\000@\000\004\007\000\0008\005\000\014.\b\000\000(\000\000\000\000\000\000\0170\019\184\000@\228R\014\005\130A\016\022\192\005l&\176\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\128\000\024\000\128\007\023\004\000\000\020\000\000\000\000\000\000\000p\000\003\128P@\226\224\128\000\002\128\000\000\000\000\000\000\002\000@@@\b\020\016 \000\000\000@\000\000\000\000\000\000@\b\b\000\001\002\130\004\000\000\000\b\000\000\000\000\000\000\b\001\001\000\000 P@\000\000\000\001\000\000\000\000\000\000\136\128\021@\002\005\b\144p \018\b\000\182\002\003 1\001\016\002\b\000@\128\002\n\004\002\000\000\020@\000\004\004\000\"\000A\000\b\016\000A\000\128@\000\002\136\000\000\128\128\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\136\t\220\000 P)\007\002\001\160\128\011`\002\002\016\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\016\002(\000@\128\002\b\004\002\000\000\020\192\000\004\000\000\012\000\000I\128\129(\000@\002\000\000\000\000\000\000\002\000\001\128\000\t \016%\000\b\000@\000\000\000\000\000\000@\0000\000\001$\002\004\160\000\000\b\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\000\000\018@\000J\000\000\000\128\000\000\000\000\000\000\128\000@\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\t \000 \000\000\000@\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000 \128\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\002\000\000\000\000\000\000\001\b\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000!\000\000\001\128\000\000\000\000\005\000\000 \000\000\000\000\000\000\000\000\b\000\000@\000\000 \000\000\000\000\000\000\000\000\000\128\000\b\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\" \005P\000\129\128\164\024\b\004\130\000-\128\nH\000`\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000`\000\000\000\000\001@\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000/\245\191\255k\190\127\223\255\222O\220\127\243*\020<\244\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\004\000\000\000\000\000\000\002\016\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000B\000\000\003\000\000\000\000\000\n\000\000@\000\000\000\000\000\000\000\000\016\000\000\128\000\000@\000\000\000\000\000\000\000\000\001\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000$\128\000\128\000\000\001\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000 \000\000\000@\002\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\016\000\016\000\000\000 \001\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000D\000\138\b\016 \000\131\001\000\128\000\005\176\001\011\000\b\003\000\000\000\000\000\n\000\000@\000\000\000\000\000\000\000\000\017\016\002(\000@\192\018\012\004\002A\000\022\192\004$\0000\"\000E\000\b\016\000A\128\128@\000\002\216\000\132\128\004\003\144\000\030\002\128\007\023\005\000\000\028\000\128\002\000\000\128\000\136\001\020\000(@\137\007\002\001 \128\n`\"\006\016\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\200\000\014\001@\003\139\130\128\000\014\000@\001\000\000@\0008\000!\192( qp@\000\001@\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000`\000\006\000\000\001E\193\000\000\005\016\000\000\128\000\000\000\028\000\000\224\020\0168\184 \000\000\160\000\000\000\000\000\000\000\128\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\016\b@\000\000\016 \001\000\000\000\128\000\000\000\132\001A\243\236D\b\021\248m\000\002\0248\000{G\002\192P\026\019\250TZ\180\2137\230s\236\005l\007\248\020\000\0302\002;J\001\022\138\134\252L|\128-\128\250\002\128\000\198@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\029\165\000\139\197C~&~@\022\192}\001@\000c #\180\160\017h\168o\196\207\200\002\216\015\160(\000\012d\004v\148\002-\021\r\248\152\249\000[\001\244\005\000\001\140\128\000\000\000\000\000\000\020\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\000\000\007\000\0008\005\000\014.\b\000\000(\000\000\000\000\000\000\000\224\000\007\000\160\001\197\193\000\000\005\000\000\000\000\000(\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\128\000\028\002\128\007\023\004\000\000\020\000\000\000\000\000 \000p\000\019\128P\000\226\224\128\000\002\128\000\000\000\000\020\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\192\000\014\001@\003\139\130\000\000\n\000\000\000\000\000\016\0008\000\001\192(\000qp@\000\001@\000\000\000\000\n\000\003\000\0000\000\000\n.\b\000\000(\000\000\000\000\000\000\000 \016\000\000\000\000@\000\000\000A\000\000\000\000\b\000\000\012\000\000\192\000\000(\184 \000\000\160\000\000\000\000\000\000D\192N\224\001\003\145H8\022\r\004@[\000\021\144\154\192\016\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\128\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\b\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\128\000\000\000\b\000\000\000\000\000P0@\000\001\000\000\000\000\000\000\000\007\000\0008\005\004\014.\b\000\000(\000\000\000\000\000\000\017\016\003\184\000@\228\018\014\005\130A\016\022\192\005d&\176\028\000\000\224\020\0008\184 \000\000\160\000\000\000\000\000\000D@\014\224\001\003\144H8\022\t\004@[\000\021\144\154\192\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\001\017\000;\128\004\014E \224X$\017\001l\000VBk\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\136\128\029\192\002\007 \144p,\018\b\128\182\000+!5\128\224\000\007\000\160\001\197\193\000\000\005\000\000\000\000\000\000\002\"\000w\000\b\028\130A\192\176H\"\002\216\000\172\132\214D@\014\224\001\003\144H8\022\t\004@[\000\021\144\154\192\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\014\000\000`\002\000\028\\\016\000\000P\000\000\000\000\000\000\001\192\000\014\001A\003\139\130\000\000\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000 \000\000\000\000\000@\000\000\000\001\000\000\000\000\000\000\000\004\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\128\000\000\000\b\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000p\000\003\128P\000\226\224\128\000\002\128\000\000\000\000\000\000\002\001\b\000\000\002\004\000 \000\000\016\000\000\000\016\128(\000\192\000\000\000\000\002\128\000\016\000\000\000\000\000\000\000\000\004\000\000 \000\000\016\000\000\000\000\000\000\000\000\000@\000\004\001\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000 \016\128\000\000 @\002\000\000\001\000\000\000\001\b\002\128\012\000\000\000\000\000(\000\001\000\000\000\000\000\000\000\000\000@\000\002\000\000\001\000\000\000\000\000\000\000\000\000\004\000\000@0\000\003\000\000\000\162\224\128\000\002\128\000\000\000\000\000\000\014\000\000p\n\b\028\\\016\000\000P\000\000\000\000\000\000\000\000\000\004\000\000\002\000\000\000\000\000\000\000\000\128\000\000\000\b\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\0000\000\000\000\000\000\160\000\004\000\000\000\000\000\000\000\000\001\000\000\b\000\000\004\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0008\000\001\192(\000qp@\000\001@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\004\0008\000\001\192(\000qp@\000\001@\000\000\000\000\000\000\136\128\029\192\002\007 \144p,\018\b\128\182\000+!5\145\016\003\184\000@\228\018\014\005\130A\016\022\192\005d&\176\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\128\000\024\000\000\005\023\004\000\000\020\000\000\000\000\000\000\b\136\001\220\000 r\t\007\002\193 \136\011`\002\178\019X\014\000\000p\n\000\028\\\016\000\000P\000\000\000\000\000\000\" \007p\000\129\200$\028\011\004\130 -\128\n\200MdD\000\238\000\0169\004\131\129`\144D\005\176\001Y\t\172\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000`\000\006\000\000\001E\193\000\000\005\000\000\000\000\000\000\002\"\000w\000\b\028\130A\192\176H\"\002\216\000\172\132\214D@\014\224\001\003\144H8\022\t\004@[\000\021\144\154\192p\000\003\128P\000\226\224\128\000\002\128\000\000\000\000\000\001\017\000;\128\004\014A \224X$\017\001l\000VBk\" \007p\000\129\200$\028\011\004\130 -\128\n\200M`\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\000\0000\000\000\n.\b\000\000(\000\000\000\000\000\000\017\016\003\184\000@\228\018\014\005\130A\016\022\192\005d&\178\"\000w\000\b\028\130A\192\176H\"\002\216\000\172\132\214D\192N\224\001\003\145H8\022\t\004@[\000\021\144\154\1920\000\003\000\000\000\162\224\128\000\002\128\000\000\000\000\000\001\019\001;\128\004\014E \224X$\017\001l\000V\194k\000\192\000\012\000\000\002\139\130\000\000\n\000\000\000\000\000\000\004L\004\238\000\0169\020\131\129`\144D\005\176\001Y\t\172\001\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\136\t\220\000 r\t\007\002\193 \136\011`\002\178\019X\006\000\000`\000\000\020\\\016\000\000P\000\000\000\000\000\000\"`'p\000\129\200\164\028\011\004\130 -\128\n\216M`\024\000\001\128\000\000Qp@\000\001@\000\000\000\000\000\000\137\128\157\192\002\007\"\144p,\018\b\128\182\000+!5\1450\019\184\000@\228R\014\005\130A\016\022\192\005d&\178&\002w\000\b\028\138A\192\176H\"\002\216\000\172\132\214D@\014\224\001\003\144H8\022\t\004@[\000\021\144\154\192\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\014\000\000p\n\000\028\\\016\000\000P\000\000\000\000\000\000\" \007p\000\129\200$\028\011\004\130 -\128\n\200MdD\000\238\000\0169\004\131\129`\144D\005\176\001Y\t\172\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000`\000\006\000\000\001E\193\000\000\005\000\000\000\000\000\000\002\"\000w\000\b\028\130A\192\176H\"\002\216\000\172\132\214D@\014\224\001\003\144H8\022\t\004@[\000\021\144\154\192\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\017\000;\128\004\014A \224X$\017\001l\000VBk\000\000\000\004\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\001\128\000\000\000\000\005\000\000 \000\000\000\000\000\000\000\000\b\000\000@\000\000 \000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\003\000\000\000\000\000\n\000\000@\000\000\000\000\000\000\000\000\016\000\000\128\000\000@\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\b\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\014\000\000p\n\000\028\\\016\000\000P\000\000\000\000\000\000\000@!\000\000\000@\128\004\000\000\002\000\000\000\002\016\005\000\024\000\000\000\000\000P\000\002\000\000\000\000\000\000\000\000\000\128\000\004\000\000\002\000\000\000\000\000\000\000\000\000\b\000\000\128 \000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\004\002\016\000\000\004\b\000@\000\000 \000\000\000!\000P\001\128\000\000\000\000\005\000\000 \000\000\000\000\000\000\000\000\b\000\000@\000\000 \000\000\000\000\000\000\000\000\000\128\000\b\000\000\b\000\000\000\000\000 \000\000\000\000\000\000\016\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\016\000\000\000\000\000\000\b\000\000\000\000\000\002\000\000\001\000\000\000\000\000\000\000\000@\000\000\000\028\000\000\224\020\0008\184 \000\000\160\000\000\000\000\000\000\000\000\002\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\001\000\014\000\000p\n\000\028\\\016\000\000P\000\000\000\000\000\000\" \007p\000\129\200$\028\011\004\130 -\128\n\200MdD\000\238\000\0169\004\131\129`\144D\005\176\001Y\t\172\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000`\000\006\000\000\001E\193\000\000\005\000\000\000\000\000\000\002\"\000w\000\b\028\130A\192\176H\"\002\216\000\172\132\214D@\014\224\001\003\144H8\022\t\004@[\000\021\144\154\192\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\014\000\000p\n\000\028\\\016\000\000P\000\000\000\000\000\000\" \007p\000\129\200$\028\011\004\130 -\128\n\200MdD\000\238\000\0169\004\131\129`\144D\005\176\001Y\t\172\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000`\000\006\000\000\001E\193\000\000\005\000\000\000\000\000\000\002\"\000w\000\b\028\130A\192\176H\"\002\216\000\172\132\214D@\014\224\001\003\144H8\022\t\004@[\000\021\144\154\192\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\001\000\014\000\000p\n\000\028\\\016\000\000P\000\000\000\000\000\000\" \007p\000\129\200$\028\011\004\130 -\128\n\200MdD\000\238\000\0169\004\131\129`\144D\005\176\001Y\t\172\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000`\000\006\000\000\001E\193\000\000\005\000\000\000\000\000\000\002\"\000w\000\b\028\130A\192\176H\"\002\216\000\172\132\214D@\014\224\001\003\144H8\022\t\004@[\000\021\144\154\192\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\014\000\000p\n\000\028\\\016\000\000P\000\000\000\000\000\000\" \007p\000\129\200$\028\011\004\130 -\128\n\200MdD\000\238\000\0169\004\131\129`\144D\005\176\001Y\t\172\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000`\000\006\000\000\001E\193\000\000\005\000\000\000\000\000\000\002\"\000w\000\b\028\130A\192\176H\"\002\216\000\172\132\214D@\014\224\001\003\144H8\022\t\004@[\000\021\144\154\1920\000\003\000\000\000\162\224\128\000\002\128\000\000\000\000\000\000\014\000\000p\n\b\028\\\016\000\000P\000\000\000\000\000\000\000\000\000\004\000\000\002\000\000\000\000\000\000\000\000\128\000\000\0008\000\001\192(\000qp@\000\001@\000\000\000\000\000\000\000\000\004\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\002\000\028\000\000\224\020\0008\184 \000\000\160\000\000\000\000\000\000D@\014\224\001\003\144H8\022\t\004@[\000\021\144\154\200\136\001\220\000 r\t\007\002\193 \136\011`\002\178\019X\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\192\000\012\000\000\002\139\130\000\000\n\000\000\000\000\000\000\004D\000\238\000\0169\004\131\129`\144D\005\176\001Y\t\172\136\128\029\192\002\007 \144p,\018\b\128\182\000+!5\128\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\028\000\000\224\020\0008\184 \000\000\160\000\000\000\000\000\000D@\014\224\001\003\144H8\022\t\004@[\000\021\144\154\200\136\001\220\000 r\t\007\002\193 \136\011`\002\178\019X\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\192\000\012\000\000\002\139\130\000\000\n\000\000\000\000\000\000\004D\000\238\000\0169\004\131\129`\144D\005\176\001Y\t\172\136\128\029\192\002\007 \144p,\018\b\128\182\000+!5\128\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\002\000\028\000\000\224\020\0008\184 \000\000\160\000\000\000\000\000\000D@\014\224\001\003\144H8\022\t\004@[\000\021\144\154\200\136\001\220\000 r\t\007\002\193 \136\011`\002\178\019X\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\192\000\012\000\000\002\139\130\000\000\n\000\000\000\000\000\000\004D\000\238\000\0169\004\131\129`\144D\005\176\001Y\t\172\136\128\029\192\002\007 \144p,\018\b\128\182\000+!5\128\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\028\000\000\224\020\0008\184 \000\000\160\000\000\000\000\000\000D@\014\224\001\003\144H8\022\t\004@[\000\021\144\154\200\136\001\220\000 r\t\007\002\193 \136\011`\002\178\019X\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\192\000\012\000\000\002\139\130\000\000\n\000\000\000\000\000\000\004D\000\238\000\0169\004\131\129`\144D\005\176\001Y\t\172\136\128\029\192\002\007 \144p,\018\b\128\182\000+!5\128`\000\006\000\000\001E\193\000\000\005\000\000\000\000\000\000\002\"\000w\000\b\028\130A\192\176H\"\002\216\000\172\132\214D@\014\224\001\003\144H8\022\t\004@[\000\021\144\154\192\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\000\000`\000\000\020\\\016\000\000P\000\000\000\000\000\000\" \007p\000\129\200$\028\011\004\130 -\128\n\200MdD\000\238\000\0169\004\131\129`\144D\005\176\001Y\t\172\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128@\000\000\000\001\000\000\000\000\004\000\000\000\000\000\000\0000\000\003\000\000\000\162\224\128\000\002\128\000\000\000\000\000\000\000\001\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\004\000\000\000\000\016\000\000\000\000@\000\000\000\000\000\000\003\000\0000\000\000\n.\b\000\000(\000\000\000\000\000\000\000\000\016\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\128\000\028\002\128\007\023\004\000\000\020\000\000\000\000\000 \000\016\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\028\000\000\224\020\0008\184 \000\000\160\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\b\000\000\001\000\000\000\b\000\000\000\000\016\000\014\000\000p\n\000\028\\\016\000\000P\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0008\000\001\192(\000qp@\000\001@\000\000\000\000\000\000\000\000\001\000\000\000\000\000\016\000\000\000\128\000\000\000\001\000\128\224\000\007\000\160\001\197\193\000\000\005\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000@\000\000\002\000\000\000\000\004\018\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\001\000\000\000\b\000\000\000\000\016H\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\004\000\000\000 \000\000\000\000@\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\028\000\000\224\020\0008\184 \000\000\160\000\000\000\000\001\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\004\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003 \000\000\000\000\004\000\000\000\000\004\000\000\000\b\0008\000\001\192(\000qp@\000\001@\000\000\000\000\000\000\000\000\012\128\000\000\000\000\016\000\000\000\000\016\000\002\000 \000\224\000\007\000\160\001\197\193\000\000\005\000\000\000\000\000\000\000\000\0002\000\000\000\000\000@\000\000\000\000@\000\000\000\128\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\142\210\128E\162\161\191\019\031 \011`>\128\160\0001\144\000\000\000\000\000\000\002\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002@\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006B\000D\000\160\020\019\028 \003`6\000\160\0001\128\000\200@\b\128\020\002\130c\132\000l\000\192\020\000\0060\000@\000\002\001\000\001@\130\128`\000\000\000\016\001\000\000\000\b\000\000@\000\000(\016P\012\000\000\000\002\000 \000\000\001\000\000\b\000\000\005\002\b\001\128\000\000\000@\004\000\000\000\012\164\000\129\000\001(&.@\014\224\012\128\000\000A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\160\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\0008\000\001\192(\000qp@\000\001@\000\000\000\000\000\000\000\000\004\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\012\164\000\129\000\001(&.@\014\224\012\128\016\000A\000\000\000\000\000\000\000\005\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\001\192\000\014\001@\003\139\130\000\000\n\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\006\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\012\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0002\152B>\128l\178\152\185>?\1363\002\000\025/,\000\000\b\000\000\000\000\000\000 \003\000\004\000\000\000\000\000\000\192\000\000\b\000\000\000\004\000\000\000\000\000\000\000\000\000\000\024\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\003\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000@@\000\b\020\016\000\000\000\000@\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\003\002\000 \000\000\b\b\016\000\000\000 \000\000\000\000\000\000`@\004\000\000\001\001\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000'\244\1681i\170o\204\239\216\n\216\015\241(\000\028d\004\254\149\006-5M\249\156\251\001[\001\254%\000\003\140\128\006\000\000$\192@\148\000 \001\000\000\000\000\000\000\001\000\000\192\000\004\144\b\018\128\004\000 \000\000\000\000\000\000 \000\024\000\000\146\001\002P\000\000\004\000\000\000\000\000\000\004\000\003\000\000\018@\000J\000\000\000\128\000\000\000\000\000\000\128\000 \000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\"\000E\004\b\016\002A\128\128H \002\216\000\129\128\004\004@\b\160\001\002\000H0\016\t\004\000[\000\016\016\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\000\"\128\004\b\001 \192@$\016\001L\000@@\002>}\136\129\002\191\r\160\000C\007\000\015h\224X\n\003B\127J\139V\154\166\252\206}\128\173\128\255\002\128\003\198@O\233Qb\211T\223\153\207\176\021\176\031\230P\0008\200\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004v\148\002/\021\r\248\153\249\000[\001\244\005\000\001\140\128\142\210\128E\162\161\191\019? \011`>\128\160\0001\144\017\218P\b\180T7\226c\228\001l\007\208\020\000\0062\002;J\001\022\138\134\252L|\128-\128\250\002\128\000\198@\001\000\000\000 \000\002\000\016\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000@\002\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\002\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\142\210\128E\226\161\191\019? \011`>\128\160\0001\144\017\218P\b\180T7\226g\228\001l\007\208\020\000\0062\002;J\001\022\138\134\252L|\128-\128\250\002\128\000\198@Gi\196#\249V\223\169\143\147\229\240\159Pp\001\154\250\192d \132@\n\001A1\194\0006\000`\n\000\003\024\001\029\165\000\139EC~&>@\022\192}\001@\016c #\180\160\017h\168o\196\199\200\002\216\015\160(\000\012d\n\187\217\222\190\229~\175\159\235\255\191\184{\127\182\255\255<\142\210\128E\162\161\191\019\031 \011`>\128\160\0001\144\000\202@\b\016\000\018\130b\228\000\238\000\192\000\000\004\016\000\000\000\000\000\000\000P\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\028\000\000\224\020\0008\184 \000\000\160\000\000\000\000\000\000\000\000\002\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\006R\000@\128\000\148\019\023 \007p\006\000\b\000 \128\000\000\000\000\000\000\002\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\224\000\007\000\160\001\197\193\000\000\005\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006R\000@\128\000\148\019\023 \007p\006@\000\b \128\000\202@\b\016\000\018\130b\228\000\238\000\200\000\000\005\016\000\025H\t\002\000\002PL\\\128\029\192\025\000\000\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\000\000\000\000\000\000\000\000\000\000 \000\000\128\000\001\192\000\014\001@\003\139\130\000\000\n\000\000\000\000\000\000\000\000\000D\000\000\000\000\000\128\000\000\000\000\128\000\000\000\000\000\000\b\128\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000e \004\b\000\tA1r\000w\000d\000\000\002\b\000\012\132\000\129\128\001(&h@\014\224\012\000\000\000A\000\001\144\128\016 \000%\004\205\b\001\220\001\128\000\000\b \0002\016\002\004\000\004\160\152\161\000;\1280\000\000\001\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000@\000\000\000\004\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006R\000@\128\000\148\019\023 \007p\006@\000\000 \128\000\200@\b\016\000\018\130b\132\000\238\000\192\000\000\004\016\000\b\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\006R\000@\128\000\148\019\023 \007p\006@\b\000 \128\000\000\000\000\000\000\002\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\224\000\007\000\160\001\197\193\000\000\005\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006B\000@\128\000\148\019\020 \007p\006\000\000\000 \128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000#)\r\168D\001J\t\154\144\011\184\003\020\004\014\213T\000\000 \000\b\000\b\000\000\002\000\000\000@\000\000\002\000\000\000\000\000\000\000\000\000\000\000@\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\025HmB \nPL\220\128]\192\025\160\016v\170\160\001\000\000\000\000\000\b\001\138\000\0000\000\000\000\000\000\000\000e \132\b\000\tA1r\000w\000d\000\000\018\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\148\128\0160\000%\004\205\200\001\220\001\144\000\000\b \0002\144\002\004\000\004\160\153\185\000;\1282\000\000\001\004\000\006R\000@\128\000\148\019\023 \007p\006@\000\000 \128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\148\134\208 \000\165\004\205\200\005\220\001\154\000\006j\170\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\027\000\000\002\000\000 \000\016\000\000(\000\025\138(\000\202@\b\016\000\018\130b\228\000\238\000\200\001\000\004\016\000\000\000\000\000\000\000P\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\028\000\000\224\020\0008\184 \000\000\160\000\000\000\000\000\000\000\000\002\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\200@\b\016\000\018\130b\132\000\238\000\192\000\000\004\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\216\000\000\016\000\001\000\000\128\000\001@\000\204Q@\006R\000@\128\000\148\019\023 \007p\006@\000\000 \128\b\000\003`\000\000@\000\004\000\002\000\000\005\000\0031E\001\025Hm\002\000\nPL\220\128]\192\025\160\000f\170\160\003\169\132#\232\006\203)\139\147\227\248\1310 \001\146\242\192\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\144\128\016 \000%\004\197\b\001\220\001\128\000\000\b \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000 \003\000\004\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\016\000\000\000\000\000\000\b\193\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012\164\000\129\000\001(&.@\014\224\012\128\016\000A\000\000\000\000\000\000\000\005\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\001\192\000\014\001@\003\139\130\000\000\n\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012\132\000\129\000\001(&(@\014\224\012\000\000\000A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\027\000\000\002\000\000 \000\016\000\000(\000\025\138(\001\192\000\014\001@\003\139\130\000\000\n\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000e \004\b\000\tA1r\000w\000d\000\000\002\b\000\128\0006\000\000\004\000\000@\000 \000\000P\0003\020P\000\000\000\000\000\000\005\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\016\000\000\000\000\000\000\b\129\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012\164\004\129\000\001(&.@\014\224\012\128\000\000A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002@\000\000\000\000\004\000\000\000\000\000\000\003!A\000\025H\t\002\000\002PL\\\128\029\192\025\000\000 \162\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\006\192\000\000\128\000\b\000\004\000\000\n\000\006b\138\000\000\000@\000\000\000\000\001\000\000\000\000\000\000\000\136\016@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\002 A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\128\000\000\000\000\016\000\000\000\000\000\000\b\129\004\000\000\001\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012\000\002\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\004@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006B\000@\128\000\148\019\020 \007p\006\000\000\000 \128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\002\000\001\016 \128\012\164\000\129\000\001(&.@\014\224\012\128\000\000A\000\000\000\000\000\000\000\000\000\b\000\000\000\000\b\000\004@\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\004\000\002 A\000\025H\001\002\000\002PL\\\128\029\192\024\000 \000\130\000\000\000\000\000\000\000\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\003\128\000\028\002\128\007\023\004\000\000\020\000\000\000\000\000\000\000\000\000@\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\025\b\001\002\000\002PLP\128\029\192\024\000\000\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000@\000\"\004\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\0002\144\002\004\000\004\160\152\185\000;\1280\000@\001\004\000\000\000\000\000\000\000\020\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\007\000\0008\005\000\014.\b\000\000(\000\000\000\000\000\000\000\000\000\128\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0002\016\002\004\000\004\160\152\161\000;\1280\000\000\001\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\128\000D\b \003!\000 @\000J\t\138\016\003\184\003\000\000\000\016@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\012\164\000\129\000\001(&.@\014\224\012\000\016\000A\000\000\000\000\000\000\000\005\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\001\192\000\014\001@\003\139\130\000\000\n\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012\132\000\129\000\001(&(@\014\224\012\000\000\000A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000 \000\017\002\b\000\202@\n\017\000\018\130f\164\002\238\000\196\000\0024Q\128\000\000\000\000\000\000P\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\001\000\006\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\002\000\000\b\002\000\028\000\000\224\020\0008\184 \000\000\160\000\000\000\000\000\000\000\000\000\b\000\000\004\000\000\000\000\000\000\000\001\000\000\000\000p\000\003\128P\000\226\224\128\000\002\128\000\000\000\000\000\000\000\000\b\000\000\000\000\000 \000\000\000\000 \000\000\000@\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\002\000\000\000\000\002\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000(\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\128\003\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\017\218P\b\180T7\226c\228\001l\007\208\020\000\0062\0009H\017\003\024\"pL\220\128\029\192\025\000\000\000\130\000\003\002\000 \000\b\b\016\000\000\000 \000\000\000\000\128\000`@\004\004\000\001\001\002\000\000\000\004\000\000\000\000\000\000\012\b\000\128\000\000 @\000\000\000\128\000\000\000\000\000\001\129\000\016\000\000\004\004\000\000\000\000\016\000\000\000\000\000\000\176 \002\000\000\000\128\128\000\000\000\002\000\000\000\000\000\000\142\210\128E\162\161\191\019? \011`>\128\160\0001\144\017\218P\b\180T7\226c\228\001l\007\208\020\000\0062\002;J\001\022\138\134\252L|\128-\128\250\002\128\000\230@GiA\"\209P\223\137\143\144\005\176\031@P\000\024\200\000\000\000\000\000\000\000@\000\000\000\000@\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\b\000@\000\000\000\000#\180\160\017h\168o\196\199\200\002\216\015\160(\000\012d\0002\016\002 \005\000\160\152\225\000\027\0000\005\000\001\140\001\000\000\017\000\000\000\000\000\000\000\004\144\000 T\004\128\000\017\218P\b\180T7\226c\228\001l\007\208\020\000\0062\000\025\b\001\017\002\128PL\240\128\r\128\024\002\128\000\198\000\003!\000\"\000P\n\t\158\016\001\176\003\000P\000\024\192\000d \004@\n\001A1\194\0006\000`\n\000\003\024\000\012\132\000\136\001@(&8@\006\192\012\001@\000c\000\001\144\128\017\000(\005\004\199\b\000\216\001\128(\000\012`\004v\148\002-\021\r\248\152\249\000[\001\244\005\000\001\140\128\006B\000D\000\160\020\019\028 \003`\006\000\160\0001\128\017\218P\b\188T7\226g\228\001l\007\208\148\000\0062\002;J\001\022\138\134\252L\252\128-\128\250\018\128\000\198@Gi@\"\209P\223\137\143\144\005\176\031BP\000\024\200\b\237(\004^*\027\2413\242\000\182\003\232\n\000\003\025\001\029\165\000\139EC~&~@\022\192}\001@\000c #\180\160\017h\168o\196\199\200\002\216\015\160(\000\012d\0002\144\002\006\000\004\160\153\185\000;\1282\000\000\001\020\000\006R\000@\128\000\148\0197 \007p\006@\000\000\"\128\000\202@\b\016\000\018\130b\228\000\238\000\200\000\000\004P\000\025H\001\002\000\002PL\\\128\029\192\025\000\000\000\130\000 \000\000\000\000\001\000\000\016\000\000\000\000\000\000\b\129\004\b\237(\004Z*\027\2411\242\000\182\003\232\n\000\003\025\000\012\164\000\161\144\001(&j@\014\224\012\000\000\000A\000\001\148\128\020\"\000%\004\205H\001\220\001\128\000\000\b \0002\144\002\132@\004\160\152\169\000;\1280\000\000\001\004\000\004\000\000\000\000\000\020\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0009H\001\002\b\002pL\\\128\029\192\025\000\000\000\130\000\003)\132#\232\006\203)\139\147\227\248\1310 \001\146\242\192e0\132}\000\217e1r|\127\016f\004\0002^X\000\000\016\000\000\000\000\000@\000\000\000\000\000\000#\004P\003\128\000\028\002\128\007\023\004\000\000\020\000\000\000\000\000\000\000\000\000\001\000\000\000\128\000\000\000\000\000\000\000 \000\000\000\014\000\000p\n\000\028\\\016\000\000P\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\016\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\128\000\000\000\000\128\000F\b\160\007\000\0008\005\000\014.\b\000\000(\000\000\000\000\000\000\000\000\000\002\000\000\001\000\000\000\000\000\000\000\000@\000\000\000\028\000\000\224\020\0008\184 \000\000\160\000\000\000\000\000\000\000\000\002\000\000\000\000\000\b\000\000\000\000\b\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000 \000\000\000\000 \000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003)\000 @\000J\t\139\144\003\184\003 \000\000\016@\000\000\000\128\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\2450\132} \217\2291r|\127\016f\004\0002^X\000\000\000\000\000\000(\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\006\000\000\000\000\000\020\000\000\128\000\000\000\000\000\000\000\000 \000\001\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\n\000\000\000\000\000\000\000\000\000@\000\000`\000\000\000\000\001@\000\b\000\000\000\000\000\000\000\000\002\000\000\016\000\000\b\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000P\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000@\000\000\000\000\000\000#\004P\003\128\000\028\002\128\007\023\004\000\000\020\000\000\000\000\000\000\000\000\000\001\000\000\000\128\000\000\000\000\000\000\000 \000\000\000\014\000\000p\n\000\028\\\016\000\000P\000\000\000\000\000\000\000\000\001\000\000\000\000\000\004\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003)\000 @\000J\t\139\144\003\184\003 \000\000\016@\000\000\000\128\000\000\000\000\002\000\000\000\000\000\000\001\024\"\128\028\000\000\224\020\0008\184 \000\000\160\000\000\000\000\000\000\000\000\000\b\000\000\004\000\000\000\000\000\000\000\001\000\000\000\000p\000\003\128P\000\226\224\128\000\002\128\000\000\000\000\000\000\000\000\b\000\000\000\000\000 \000\000\000\000\000\000\000\000@\000\000\001\000\000\000\000\000\004\000\000\000\000\000\000\000\000\b\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006B\000@\128\000\148\019\020 \007p\006\000\000\000 \128\001\202a\b\250A\179\202b\228\248\254 \204\b\000d\188\176\000\000 \000\000\000\000\000\128\000\000\000\000\000\000F\b\160\007\000\0008\005\000\014.\b\000\000(\000\000\000\000\000\000\000\000\000\002\000\000\001\000\000\000\000\000\000\000\000@\000\000\000\028\000\000\224\020\0008\184 \000\000\160\000\000\000\000\000\000\000\000\002\000\000\000\000\000\b\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006R\000@\128\000\148\019\023 \007p\006@\000\000 \128\000\000\001\000\000\000\000\000\004\000\000\000\000\000\000\0020E\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007\000\0008\005\000\014.\b\000\000(\000\000\000\000\000\000\000\000\000\002\000\000\001\000\000\000\000\000\000\000\000@\000\000\000\028\000\000\224\020\0008\184 \000\000\160\000\000\000\000\000\000\000\000\002\000\000\000\000\000\b\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000@\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0002\144\002\132@\020\160\152\169\000;\1281\000\000%\005\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\002\000\128\003\000\0000\000\000\n.\b\000\000(\000\000\000\000\000\000\000 \000\000\000\000 @\000\000\000\001\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\004v\148\002-\021\r\248\152\249\000[\001\244\005\000\001\140\128\006R\000@\192\000\148\0197 \007p\006@\000\000\"\128\000\202@\b\016\000\018\130f\228\000\238\000\200\000\000\004P\000\025H\001\002\000\002PL\\\128\029\192\025\000\000\000\138\000\168\148\157\193\234\007\224\176p/\250\011\132\183\129o\2313\200\237(\004Z*\027\2411\242\000\182\003\232\n\000\003\025\000\000\000\000\000\000\000(\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000$\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003!\000\"\000P\n\t\142\016\001\176\003\000P\000\024\192\000d \004@\n\001A1\194\0006\000`\n\000\003\024\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\171\189\157\235\238W\234\185\254\191\251\251\135\183\251o\255\247\192 \000\000\000\000\001@1\192\000\000\000\000\000\000\000\000\001\029\167\016\143\229[~\166>O\151\194}A\192\006k\235\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004v\148B-\021\r\248\152\249\000[\001\244\005\000\001\140\128\142\210\136E\162\161\191\019\031 \011`>\128\160\0001\144\000\192\128\b\b\000\002\002\004\000\000\000\b\000\000\000\000\000\000\024\016\001\000\000\000@@\128\000\000\001\000\000\000\000\000\000\003\002\000 \000\000\b\b\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\001\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\001\128\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000@\b\b\000\001\002\130\000\000\000\000\b\000\000\000\000\000\000\b\001!\000\000 P@\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000 \004\004\000\000\129A\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000 \000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\b\001\001\000\000 P@\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\016\002\168\000@\160\018\014\004\002A\000\022\192\000D\006 \006\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\001\128\000\t \000%\000\000\000@\000\000\000\000\000\000@\000\016\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\002\000\000\001\192\000\015\001@\003\139\130\000\000\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007\000\0008\005\000\014.\b\000\000(\000\000\000\000\000\000\017\016\002\168\000@\160\018\014\004\002A\000\022\192\000D\006\160\028\000\000\224\020\0008\184 \000\000\160\000\000\000\000\000\000D@\n\160\001\002\128H8\016\t\004\000[\000\017\016\026\136\136\001T\000 P\t\007\002\001 \128\011`\002\"\003\016\014\000\000p\n\000\028\\\016\000\000P\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\004\000\000\000\000\0008\000\001\192(\000qp@\000\001@\000\000\000\000\000\000\136\128\021@\002\005\000\144p \018\b\000\182\000\" 1\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\016\000\000\002\000@@\000\b\020\016\000\000\000\000@\000\000\000\000\000\" \005P\000\129@$\028\b\004\130\000-\128\000\136\012@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000 \004\004\000\000\129A\000\000\000\000\004\000\000\000\000\000\002\"\000U\000\b\020\002A\192\128H \002\216\000\b\128\196\000\128\016\016\000\002\005\004\000\000\000\000\016\000\000\000\000\000\b\136\001T\000 P\t\007\002\001 \128\011`\000\"\003\017\017\000*\128\004\n\001 \224@$\016\001l\000\004@b\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\128\000\000\000\b\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\136\128\021@\002\005\b\144p \018\b\000\182\002\003 1\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\017\000*\128\004\n\001 \224@$\016\001l\000\004@b\000@\b\b\000\001\002\130\000\000\000\000\b\000\000\000\000\000\004D\000\170\000\016(\004\131\129\000\144@\005\176\000\017\001\136\000\000\000\000\000\000\000\000\000\000\000\000\000\016\002\001\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\"\000U\000\b\020\"A\192\128H \002\216\b\b\128\196\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\017\000*\128\004\n\017 \224@$\016\001l\004\004@b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004D\000\170\000\016(\004\131\129\000\144@\005\176\000\017\001\136\000\128\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\"\000U\000\b\020\"A\192\128H \002\216\b\b\128\196D@\n\160\001\002\128H8\016\t\004\000[\000\001\016\024\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\017\000*\128\004\n\001 \224@$\016\001l\000\004@b\" \005P\000\129@$\028\b\004\130\000-\128\000\136\012D\000\000 \000\000\b\000\000\128\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\128\000\000 \000\002\000\000\000\000\000\000\000\000\006\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\192\128\b\000\000\002\002\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\136\128\021@\002\005\b\144p \026\b\000\182\000\002`1\001`@\132\000\000\001\001\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\004\000\b\000\000\000\000\000\000\000 \b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000@@\000\b\020\016\000\000\000\000@\000\000\000\000\000 \000\001\000\000\000@\000\004\000\000\000\000\000\000\000\000\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\" \005P\000\129B$\028\b\006\130\000-\128\128\152\012@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\016\000\000\000\000\000\000\000@\000\000 \004\004\000\000\129A\000\000\000\000\004\000\000\000\000\000\002\000\000\016\000\000\004\000\000@\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004v\148B-\021\r\248\152\249\000[\001\244\005\000\001\140\128\142\210\136E\162\161\191\019\031 \011`>\128\160\0001\144\000\202A\b\016\000\018\130b\228\000\238\000\192\000\000\004\016\000\000\000\000\000\000\000\000\000\128\000\000\000\000\128\000F\b \007\000\0008\005\000\014.\b\000\000(\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\002\000\000\000\000\001\029\165\000\139EC~&>@\022\192}\001@\000c \001\148\128\0160\000%\004\205\200\001\220\001\144\000\000\b \0002\144\002\004\000\004\160\153\185\000;\1282\000\000\001\004\000\006R\000@\128\000\148\019\023 \007p\006@\000\000 \128\000\000\000\000\000\000\000\000\004\000\000\000\000\004\000\002 A\002;J\001\022\138\134\252L|\128-\128\250\002\128\000\198@Gi@\"\209P\223\137\143\144\005\176\031@P\000\024\200\000d \004D\n\001A3\194\0006\000`\n\000\003\024\000\012\132\000\136\001@(&x@\006\192\012\001@\000c\000\001\144\128\017\000(\005\004\199\b\000\216\001\128(\000\012`\n\137I\220\030\160~\011\007\002\255\164\184Kz\182\254s<\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\025\b\001\016\002\128PLp\128\r\128\024\002\128\000\198\000\171\189\157\235\238W\234\185\254\191\251\251\135\183\251o\255\247\192\000\000\000\000\000\001\000\001@\000\000\000\000\000\000\000\000\001\029\165\000\139EC~&>@\022\192}\001@\000c \001\148\128\0160\000%\004\205\200\001\220\001\144\000\000\b\160\0002\144\002\004\000\004\160\153\185\000;\1282\000\000\001\020\000\006R\000@\128\000\148\019\023 \007p\006@\000\000\"\128\000\000\003`\000\000\000\000\000\000\000\000\000\000\000\003\001@\002;J-\022\138\134\252L|\128-\128\250\002\128 \230@Gi@\"\209P\223\137\143\144\005\176\031@P\000\024\200\000e \004\012\000\tA3r\000w\000d\000\000\002(\000\012\164\000\129\000\001(&n@\014\224\012\128\000\000E\000\001\148\128\016 \000%\004\197\200\001\220\001\144\000\000\b\160\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000*\239gz\251\149\250\174\127\175\254\254\225\237\254\219\255\252\240\000\000\000\000\000\000P\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000H\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\025\b\001\016\002\128PLp\128\r\128\024\002\128\000\198\000\171\189\157\235\238W\234\185\254\191\251\251\135\183\251o\255\247\192\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\020\000\020\000\000\000\000\000\000\000\000\000\017\218P\b\180T7\226c\228\001l\007\208\020\000\0062\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\021\018\147\184=@\252\022\014\005\255Ap\150\240-\252\230y\029\165\000\139EC~&>@\022\192}\001@\000c \000\000\000\000\000\000\005\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\128\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000d \004@\n\001A1\194\0006\000`\n\000\003\024\002\162Rw\007\168\031\130\193\192\191\233.\018\222\173\191\156\207\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\025H\001\003\000\002PL\220\128\029\192\025\000\000\000\138\000\003)\000 @\000J\t\155\144\003\184\003 \000\000\017@\000e \004\b\000\tA1r\000w\000d\000\000\002(\002\162Rw\007\168\031\130\193\192\191\232.\018\222\005\191\156\207\001\148\128\016 \000%\004\197\200\001\220\001\144\000\000\b \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001W{;\215\220\175\213s\253\127\247\247\015o\246\223\255\231\170%'pz\129\248,\028\011\254\146\225-\234\219\249\204\240\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\bGi@\"\209P\223\137\143\144\005\176\031@P\000\024\200\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000TJN\224\245\003\240X8\023\253\005\194[\192\183\243\153\228v\148\002-\021\r\248\152\249\000[\001\244\005\000\001\140\128\006R\000@\192\000\148\0197 \007p\006@\000\000\"\128\000\202@\b\016\000\018\130f\228\000\238\000\200\000\000\004P\000\025H\001\002\000\002PL\\\128\029\192\025\000\000\000\138\000\168\148\157\193\234\007\224\176p/\250\011\132\183\129o\2313\213\018\147\184=@\252\022\014\005\255Ap\150\240-\252\230y\029\165\000\139EC~&>@\022\192}\001@\000c \001\148\128\0160\000%\004\205\200\001\220\001\144\000\000\b\160\0002\144\002\004\000\004\160\153\185\000;\1282\000\000\001\020\000\006R\000@\128\000\148\019\023 \007p\006@\000\000\"\128*%'pz\129\248,\028\011\254\130\225-\224[\249\204\245D\164\238\015P?\005\131\129\127\208\\%\188\011\1279\158\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\174\246w\175\185_\170\231\250\255\239\238\030\223\237\191\255\207TJN\224\245\003\240X8\023\253%\194[\213\183\243\153\228v\148\002-\021\r\248\152\249\000[\001\244\005\000\001\140\128\006R\000@\192\000\148\0197 \007p\006@\000\000\"\128\000\202@\b\016\000\018\130f\228\000\238\000\200\000\000\004P\000\025H\001\002\000\002PL\\\128\029\192\025\000\000\000\138\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\191\247w\143\237_\254\231\254\255\254\238\127\223E\191\255\239|\251\017\002\005~\027@\000\134\014\000\030\209\192\176\020\006\132v\148\002-\021\r\248\152\249\000[\001\244\005\000\001\140\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002;J\001\022\138\134\252L|\128-\128\250\002\128\000\198@\003)\000 `\000J\t\155\144\003\184\003 \000\000\017@\000e \004\b\000\tA3r\000w\000d\000\000\002(\000\012\164\000\129\000\001(&.@\014\224\012\128\000\000E\000TJN\224\245\003\240X8\023\253\005\194[\192\183\243\153\234\137I\220\030\160~\011\007\002\255\160\184Kx\022\254s<\142\210\128E\162\161\191\019\031 \011`>\128\160\0001\144\000\202@\b\024\000\018\130f\228\000\238\000\200\000\000\004P\000\025H\001\002\000\002PL\220\128\029\192\025\000\000\000\138\000\003)\000 @\000J\t\139\144\003\184\003 \000\000\017@\021\018\147\184=@\252\022\014\005\255Ap\150\240-\252\230z\162Rw\007\168\031\130\193\192\191\232.\018\222\005\191\156\207#\180\160\017h\168o\196\199\200\002\216\015\160(\000\012d\0002\144\002\006\000\004\160\153\185\000;\1282\000\000\001\020\000\006R\000@\128\000\148\0197 \007p\006@\000\000\"\128\000\202@\b\016\000\018\130b\228\000\238\000\200\000\000\004P\005D\164\238\015P?\005\131\129\127\208\\%\188\011\1279\158\168\148\157\193\234\007\224\176p/\250\011\132\183\129o\2313\200\237(\004Z*\027\2411\242\000\182\003\232\n\000\003\025\000\012\164\000\129\128\001(&n@\014\224\012\128\000\000E\000\001\148\128\016 \000%\004\205\200\001\220\001\144\000\000\b\160\0002\144\002\004\000\004\160\152\185\000;\1282\000\000\001\020\001Q);\131\212\015\193`\224_\244\023\to\002\223\206g\170%'pz\129\248,\028\011\254\130\225-\224[\249\204\242;J\001\022\138\134\252L|\128-\128\250\002\128\000\198@\003)\000 `\000J\t\155\144\003\184\003 \000\000\017@\000e \004\b\000\tA3r\000w\000d\000\000\002(\000\012\164\000\129\000\001(&.@\014\224\012\128\000\000E\000TJN\224\245\003\240X8\023\253\005\194[\192\183\243\153\234\137I\220\030\160~\011\007\002\255\160\184Kx\022\254s<\142\210\128E\162\161\191\019\031 \011`>\128\160\0001\144\000\202@\b\024\000\018\130f\228\000\238\000\200\000\000\004P\000\025H\001\002\000\002PL\220\128\029\192\025\000\000\000\138\000\003)\000 @\000J\t\139\144\003\184\003 \000\000\017@\021\018\147\184=@\252\022\014\005\255Ap\150\240-\252\230z\162Rw\007\168\031\130\193\192\191\232.\018\222\005\191\156\207#\180\160\017h\168o\196\199\200\002\216\015\160(\000\012d\0002\144\002\006\000\004\160\153\185\000;\1282\000\000\001\020\000\006R\000@\128\000\148\0197 \007p\006@\000\000\"\128\000\202@\b\016\000\018\130b\228\000\238\000\200\000\000\004P\005D\164\238\015P?\005\131\129\127\208\\%\188\011\1279\158\168\148\157\193\234\007\224\176p/\250\011\132\183\129o\2313\200\237(\004Z*\027\2411\242\000\182\003\232\n\000\003\025\000\012\164\000\129\128\001(&n@\014\224\012\128\000\000E\000\001\148\128\016 \000%\004\205\200\001\220\001\144\000\000\b\160\0002\144\002\004\000\004\160\152\185\000;\1282\000\000\001\020\001Q);\131\212\015\193`\224_\244\023\to\002\223\206g\170%'pz\129\248,\028\011\254\130\225-\224[\249\204\242;J\001\022\138\134\252L|\128-\128\250\002\128\000\198@\003)\000 `\000J\t\155\144\003\184\003 \000\000\017@\000e \004\b\000\tA3r\000w\000d\000\000\002(\000\012\164\000\129\000\001(&.@\014\224\012\128\000\000E\000TJN\224\245\003\240X8\023\253\005\194[\192\183\243\153\234\137I\220\030\160~\011\007\002\255\160\184Kx\022\254s<\142\210\128E\162\161\191\019\031 \011`>\128\160\0001\144\000\202@\b\024\000\018\130f\228\000\238\000\200\000\000\004P\000\025H\001\002\000\002PL\220\128\029\192\025\000\000\000\138\000\003)\000 @\000J\t\139\144\003\184\003 \000\000\017@\021\018\147\184=@\252\022\014\005\255Ap\150\240-\252\230z\162Rw\007\168\031\130\193\192\191\232.\018\222\005\191\156\207#\180\160\017h\168o\196\199\200\002\216\015\160(\000\012d\0002\144\002\006\000\004\160\153\185\000;\1282\000\000\001\020\000\006R\000@\128\000\148\0197 \007p\006@\000\000\"\128\000\202@\b\016\000\018\130b\228\000\238\000\200\000\000\004P\005D\164\238\015P?\005\131\129\127\208\\%\188\011\1279\158\168\148\157\193\234\007\224\176p/\250\011\132\183\129o\2313\200\237(\004Z*\027\2411\242\000\182\003\232\n\000\003\025\000\012\164\000\129\128\001(&n@\014\224\012\128\000\000E\000\001\148\128\016 \000%\004\205\200\001\220\001\144\000\000\b\160\0002\144\002\004\000\004\160\152\185\000;\1282\000\000\001\020\001Q);\131\212\015\193`\224_\244\023\to\002\223\206g\170%'pz\129\248,\028\011\254\130\225-\224[\249\204\242;J\001\022\138\134\252L|\128-\128\250\002\128\000\198@\003)\000 `\000J\t\155\144\003\184\003 \000\000\017@\000e \004\b\000\tA3r\000w\000d\000\000\002(\000\012\164\000\129\000\001(&.@\014\224\012\128\000\000E\000TJN\224\245\003\240X8\023\253\005\194[\192\183\243\153\234\137I\220\030\160~\011\007\002\255\160\184Kx\022\254s<\142\210\128E\162\161\191\019\031 \011`>\128\160\0001\144\000\202@\b\024\000\018\130f\228\000\238\000\200\000\000\004P\000\025H\001\002\000\002PL\220\128\029\192\025\000\000\000\138\000\003)\000 @\000J\t\139\144\003\184\003 \000\000\017@\021\018\147\184=@\252\022\014\005\255Ap\150\240-\252\230z\162Rw\007\168\031\130\193\192\191\232.\018\222\005\191\156\207#\180\160\017h\168o\196\199\200\002\216\015\160(\000\012d\0002\144\002\006\000\004\160\153\185\000;\1282\000\000\001\020\000\006R\000@\128\000\148\0197 \007p\006@\000\000\"\128\000\202@\b\016\000\018\130b\228\000\238\000\200\000\000\004P\005D\164\238\015P?\005\131\129\127\208\\%\188\011\1279\158\168\148\157\193\234\007\224\176p/\250\011\132\183\129o\2313\200\237(\004Z*\027\2411\242\000\182\003\232\n\000\003\025\000\012\164\000\129\128\001(&n@\014\224\012\128\000\000E\000\001\148\128\016 \000%\004\205\200\001\220\001\144\000\000\b\160\0002\144\002\004\000\004\160\152\185\000;\1282\000\000\001\020\001Q);\131\212\015\193`\224_\244\023\to\002\223\206g\170%'pz\129\248,\028\011\254\130\225-\224[\249\204\242;J\001\022\138\134\252L|\128-\128\250\002\128\000\198@\003)\000 `\000J\t\155\144\003\184\003 \000\000\017@\000e \004\b\000\tA3r\000w\000d\000\000\002(\000\012\164\000\129\000\001(&.@\014\224\012\128\000\000E\000TJN\224\245\003\240X8\023\253\005\194[\192\183\243\153\234\137I\220\030\160~\011\007\002\255\160\184Kx\022\254s<\142\210\128E\162\161\191\019\031 \011`>\128\160\0001\144\000\202@\b\024\000\018\130f\228\000\238\000\200\000\000\004P\000\025H\001\002\000\002PL\220\128\029\192\025\000\000\000\138\000\003)\000 @\000J\t\139\144\003\184\003 \000\000\017@\021\018\147\184=@\252\022\014\005\255Ap\150\240-\252\230z\162Rw\007\168\031\130\193\192\191\232.\018\222\005\191\156\207#\180\160\017h\168o\196\199\200\002\216\015\160(\000\012d\0002\144\002\006\000\004\160\153\185\000;\1282\000\000\001\020\000\006R\000@\128\000\148\0197 \007p\006@\000\000\"\128\000\202@\b\016\000\018\130b\228\000\238\000\200\000\000\004P\005D\164\238\015P?\005\131\129\127\208\\%\188\011\1279\158\168\148\157\193\234\007\224\176p/\250\011\132\183\129o\2313\200\237(\004Z*\027\2411\242\000\182\003\232\n\000\003\025\000\012\164\000\129\128\001(&n@\014\224\012\128\000\000E\000\001\148\128\016 \000%\004\205\200\001\220\001\144\000\000\b\160\0002\144\002\004\000\004\160\152\185\000;\1282\000\000\001\020\001Q);\131\212\015\193`\224_\244\023\to\002\223\206g\170%'pz\129\248,\028\011\254\130\225-\224[\249\204\242;J\001\022\138\134\252L|\128-\128\250\002\128\000\198@\003)\000 `\000J\t\155\144\003\184\003 \000\000\017@\000e \004\b\000\tA3r\000w\000d\000\000\002(\000\012\164\000\129\000\001(&.@\014\224\012\128\000\000E\000TJN\224\245\003\240X8\023\253\005\194[\192\183\243\153\234\137I\220\030\160~\011\007\002\255\160\184Kx\022\254s<\142\210\128E\162\161\191\019\031 \011`>\128\160\0001\144\000\000\000\000\000\000\002\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002@\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0002\016\002 \005\000\160\152\225\000\027\0000\005\000\001\140\001Q);\131\212\015\193`\224_\244\151\toV\223\206g\128\202@\b\024\000\018\130f\228\000\238\000\200\000\000\004P\000\025H\001\002\000\002PL\220\128\029\192\025\000\000\000\138\000\003)\000 @\000J\t\139\144\003\184\003 \000\000\017@\021\018\147\184=@\252\022\014\005\255Ap\150\240-\252\230z\162Rw\007\168\031\130\193\192\191\232.\018\222\005\191\156\207#\180\160\017h\168o\196\199\200\002\216\015\160(\000\012d\0002\144\002\006\000\004\160\153\185\000;\1282\000\000\001\020\000\006R\000@\128\000\148\0197 \007p\006@\000\000\"\128\000\202@\b\016\000\018\130b\228\000\238\000\200\000\000\004P\005D\164\238\015P?\005\131\129\127\208\\%\188\011\1279\158\168\148\157\193\234\007\224\176p/\250\011\132\183\129o\2313\192\229 \004\b \t\1933r\000w\000`\000\000\002\b\000\028\164\000\129\004\0018&.@\014\224\012\000\000\000A\000\001\148\194\017\244\003e\148\197\201\241\252A\152\016\000\201y`\000\000@\000\000\000\000\001\000\000\000\000\000\000\000\140\017@\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\202@\n\017\000\018\130b\164\000\238\000\196\000\000\004\016\002;J\001\022\138\134\252L|\128-\128\250\002\128\000\198@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\t\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\017\218P\b\180T7\226c\228\001l\007\208\020\000\0062\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\212\136\180#\002%L\253X\r\220\001\219\000\005x\170\128x\000\003\128P\000\226\224\128\000\002\128\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\0008\000\001\192(\000qp@\000\001@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\016\000\000\000 \b\237(\004Z*\027\2411\242\000\182\003\232\n\000\003\025\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\004v\148\002-\021\r\248\152\249\000[\001\244\005\000\001\140\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\002\000\000\000\000\000\000\000\000\128\000\000\0008\000\001\192(\000qp@\000\001@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\016\000\000\000 \b\237(\004Z*\027\2411\242\000\182\003\232\n\000\003\025\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\004v\148\002-\021\r\248\152\249\000[\001\244\005\000\001\140\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\b\002;J\001\022\138\134\252L|\128-\128\250\002\128\000\198@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\001\029\165\000\139EC~&>@\022\192}\001@\000c \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\017\218P\b\180T7\226c\228\001l\007\208\020\000\0062\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\016\000\b\193\020\000\224\000\007\000\160\001\197\193\000\000\005\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000@\000\000\000\128#\180\160\017h\168o\196\199\200\002\216\015\160(\000\012d\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\017\218P\b\180T7\226c\228\001l\007\208\020\000\0062\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\b\237(\004Z*\027\2411\242\000\182\003\232\n\000\003\025\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\b\000\004@\130\004v\148\002-\021\r\248\152\249\000[\001\244\005\000\001\140\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\202@\b\016\000\018\130b\228\000\238\000\192\001\000\004\016\000\000\000\000\000\000\000P\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\028\000\000\224\020\0008\184 \000\000\160\000\000\000\000\000\000\000\000\002\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\200@\b\016\000\018\130b\132\000\238\000\192\000\000\004\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\002\000\001\016 \128\012\164\000\129\000\001(&.@\014\224\012\128\000\000A\000\000\000\000\000\000\000\000\000\b\000\000\000\000\b\000\004@\130\000\000\000\000\000\000\000\160\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\128\000\000\000\000\000\000\000\000\000\000\000\025H\001B \002PLT\128\029\192\024\128\000\018\130\128\007\000\0008\005\000\014.\b\000\000(\000\000\000\000\000\000\000\000\000\002\000\000\001\000\000\000\000\000\000\000\000@\000\000\000\028\000\000\224\020\0008\184 \000\000\160\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\b\000\000\000\016\004v\148\002-\021\r\248\152\249\000[\001\244\005\000\001\140\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\002;J\001\022\138\134\252L|\128-\128\250\002\128\000\198@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\004\001\029\165\000\139EC~&>@\022\192}\001@\000c \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\142\210\128E\162\161\191\019\031 \011`>\128\160\0001\144\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\b\237(\004Z*\027\2411\242\000\182\003\232\n\000\003\025\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\136\001\020\000 @\t\006\002\001\160\128\n`\000\002\000\016\017\000\"\128\004\bA \192X4\016\001L\000@@B\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\021\018\147\184=@\252\022\014\005\255Ap\150\240-\252\230y\029\165\000\139EC~&>@\022\192}\001@\000c \000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\142\210\128E\162\161\191\019\031 \011`>\128\160\0001\144\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\"\000\000\000\000\000\000\000\000\000\001\000\001@\000\000\000\000\000\000\000\000\001\029\165\000\139EC~&>@\022\192}\001@\000c \000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\027\003\208\005\128@ \007\192\001\000 \000\027\012a\145\218Qh\180T7\226c\228\001l\007\208\020\001\0072\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000Gi@\"\209P\223\137\143\144\005\176\031@P\000\024\200\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000#\180\160\017h\168o\196\199\200\002\216\015\160(\000\012d\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\025\b\001\016\002\128PLp\128\r\128\024\002\128\000\198\000\171\189\157\235\238W\234\185\254\191\251\251\135\183\251o\255\247\192\000\000\000\000\000\001\000\001@\000\000\000\000\000\000\000\000\001\029\165\000\139EC~&>@\022\192}\001@\000c \000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\187\217\222\190\229~\175\159\235\255\191\184{\127\182\255\255<\142\210\128E\162\161\191\019\031 \011`>\128\160\0001\144\000\202@\b\024\000\018\130f\228\000\238\000\200\000\000\004P\000\025H\001\002\000\002PL\220\128\029\192\025\000\000\000\138\000\003)\000 @\000J\t\139\144\003\184\003 \000\000\017@\021\018\147\184=@\252\022\014\005\255Ap\150\240-\252\230z\162Rw\007\168\031\130\193\192\191\232.\018\222\005\191\156\207#\180\160\017h\168o\196\199\200\002\216\015\160(\000\012d\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001W{;\215\220\175\213\243\253\127\247\247\015o\246\223\255\231\145\218P\b\180T7\226c\228\001l\007\208\020\000\0062\000\025H\001\003\000\002PL\220\128\029\192\025\000\000\000\138\000\003)\000 @\000J\t\155\144\003\184\003 \000\000\017@\000e \004\b\000\tA1r\000w\000d\000\000\002(\002\162Rw\007\168\031\130\193\192\191\232.\018\222\005\191\156\207TJN\224\245\003\240X8\023\253\005\194[\192\183\243\153\228v\148\002-\021\r\248\152\249\000[\001\244\005\000\001\140\128\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000*\239gz\251\149\250\190\127\175\254\254\225\237\254\219\255\252\242;J\001\022\138\134\252L|\128-\128\250\002\128\000\198@\003)\000 `\000J\t\155\144\003\184\003 \000\000\017@\000e \004\b\000\tA3r\000w\000d\000\000\002(\000\012\164\000\129\000\001(&.@\014\224\012\128\000\000E\000TJN\224\245\003\240X8\023\253\005\194[\192\183\243\153\234\137I\220\030\160~\011\007\002\255\160\184Kx\022\254s<\002\000\000\000\000\000\020\000\020\000\000\000\000\000\000\000\000\000\017\218P\b\180T7\226c\228\001l\007\208\020\000\0062\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\171\189\157\235\238W\234\249\254\191\251\251\135\183\251o\255\243\200\237(\004Z*\027\2411\242\000\182\003\232\n\000\003\025\000\012\164\000\129\128\001(&n@\014\224\012\128\000\000E\000\001\148\128\016 \000%\004\205\200\001\220\001\144\000\000\b\160\0002\144\002\004\000\004\160\152\185\000;\1282\000\000\001\020\001Q);\131\212\015\193`\224_\244\023\to\002\223\206g\170%'pz\129\248,\028\011\254\130\225-\224[\249\204\242;J\001\022\138\134\252L|\128-\128\250\002\128\000\198@\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\021w\179\189}\202\253_?\215\255\127p\246\255m\255\254y\029\165\000\139EC~&>@\022\192}\001@\000c \001\148\128\0160\000%\004\205\200\001\220\001\144\000\000\b\160\0002\144\002\004\000\004\160\153\185\000;\1282\000\000\001\020\000\006R\000@\128\000\148\019\023 \007p\006@\000\000\"\128*%'pz\129\248,\028\011\254\130\225-\224[\249\204\245D\164\238\015P?\005\131\129\127\208\\%\188\011\1279\158Gi@\"\209P\223\137\143\144\005\176\031@P\000\024\200\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\174\246w\175\185_\171\231\250\255\239\238\030\223\237\191\255\207#\180\160\017h\168o\196\199\200\002\216\015\160(\000\012d\0002\144\002\006\000\004\160\153\185\000;\1282\000\000\001\020\000\006R\000@\128\000\148\0197 \007p\006@\000\000\"\128\000\202@\b\016\000\018\130b\228\000\238\000\200\000\000\004P\005D\164\238\015P?\005\131\129\127\208\\%\188\011\1279\158\168\148\157\193\234\007\224\176p/\250\011\132\183\129o\2313\192\000\000\000\000\000\000\000\000\000\000\000\000\000\004@\000\000\000\000\000\000\000\000\000 \000(\000\000\000\000\000\000\000\000\000#\180\160\017h\168o\196\199\200\002\216\015\160(\000\012d\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001W{;\215\220\175\213\243\253\127\247\247\015o\246\223\255\231\145\218P\b\180T7\226c\228\001l\007\208\020\000\0062\000\025H\001\003\000\002PL\220\128\029\192\025\000\000\000\138\000\003)\000 @\000J\t\155\144\003\184\003 \000\000\017@\000e \004\b\000\tA1r\000w\000d\000\000\002(\002\162Rw\007\168\031\130\193\192\191\232.\018\222\005\191\156\207TJN\224\245\003\240X8\023\253\005\194[\192\183\243\153\228v\148\002-\021\r\248\152\249\000[\001\244\005\000\001\140\128\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000*\239gz\251\149\250\190\127\175\254\254\225\237\254\219\255\252\242;J\001\022\138\134\252L|\128-\128\250\002\128\000\198@\003)\000 `\000J\t\155\144\003\184\003 \000\000\017@\000e \004\b\000\tA3r\000w\000d\000\000\002(\000\012\164\000\129\000\001(&.@\014\224\012\128\000\000E\000TJN\224\245\003\240X8\023\253\005\194[\192\183\243\153\234\137I\220\030\160~\011\007\002\255\160\184Kx\022\254s<\142\210\128E\162\161\191\019\031 \011`>\128\160\0001\144\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\005]\236\239_r\191W\207\245\255\223\220=\191\219\127\255\158Gi@\"\209P\223\137\143\144\005\176\031@P\000\024\200\000e \004\012\000\tA3r\000w\000d\000\000\002(\000\012\164\000\129\000\001(&n@\014\224\012\128\000\000E\000\001\148\128\016 \000%\004\197\200\001\220\001\144\000\000\b\160\n\137I\220\030\160~\011\007\002\255\160\184Kx\022\254s=Q);\131\212\015\193`\224_\244\023\to\002\223\206g\170\239gz\251\149\250\190\127\175\254\254\225\237\254\219\255\252\242;J\001\022\138\134\252L|\128-\128\250\002\128\000\198@\003)\000 `\000J\t\155\144\003\184\003 \000\000\017@\000e \004\b\000\tA3r\000w\000d\000\000\002(\000\012\164\000\129\000\001(&.@\014\224\012\128\000\000E\000TJN\224\245\003\240X8\023\253\005\194[\192\183\243\153\234\137I\220\030\160~\011\007\002\255\160\184Kx\022\254s=W{;\215\220\175\213s\253\127\247\247\015o\246\223\255\239\170\239gz\251\149\250\174\127\175\254\238\225\237\244[\255\252\240\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\142\210\128E\162\161\191\019\031 \011`>\128\160\0001\144\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000Gi@\"\209P\223\137\143\144\005\176\031@P\000\024\200\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002;J\001\022\138\134\252L|\128-\128\250\002\128\000\198@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\b\237(\004Z*\027\2411\242\000\182\003\232\n\000\003\025\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000 \000\017\002\b\017\218P\b\180T7\226c\228\001l\007\208\020\000\0062\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\002\b\237(\004Z*\027\2411\242\000\182\003\232\n\000\003\025\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\148\128\016 \000%\004\197\200\001\220\001\128\000\000\b \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\200A\b\128\020\002\130c\132\000l\000\192\020\000\0060\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\237(\004Z*\027\2411\242\000\182\003\232\n\000\131\025\000\012\164\000\129\128\001(&n@\014\224\012\128\000\000E\000\001\148\128\016 \000%\004\205\200\001\220\001\144\000\000\b\160\0002\144\002\004\000\004\160\152\185\000;\1282\000\000\001\020\000@\000\016\000\000\000\000\000\000\000\000\000\b\000\000\024\002\000\017\218P\b\180T7\226c\228\001l\007\208\020\000\0062\000\025H\001\003\000\002PL\220\128\029\192\025\000\000\000\138\000\003)\000 @\000J\t\155\144\003\184\003 \000\000\017@\000e \004\b\000\tA1r\000w\000d\000\000\002(\000\128\000\004\000\000\000\000\000\000\000\000\000\016\000\0000\020\000\016\000@\128\244\001`\016\b\001\240\000B\b\000\006\195\024`r\144\002\004\016\004\224\153\185\000;\1282\000\000\001\004\000@\000\002\000\000\000\000\000\000\000\000\000\b\000\000\b\b\002\001\202@\b\016@\019\130f\228\000\238\000\200\000\000\004\016\0009H\001\002\b\002pL\\\128\029\192\025\000\000\000\130\000\003)\000 @\000J\t\139\144\003\184\003 \000\000\016@\000\000\000\000\000\000\000\000\002\000\001\000\000\000\000\001\016 \129\029\165\000\139EC~&>@\022\192}\001@\000c \001\148\128\0160\000%\004\205\200\001\220\001\144\000\000\b\160\0002\144\002\004\000\004\160\153\185\000;\1282\000\000\001\020\000\006R\000@\128\000\148\019\023 \007p\006@\000\000\"\128\b\000\000@\000\000\000\000\000\000\000\000\001\000\000\003\001@A\000\004\b\015@\022\001\000\128\031\000\004 \128\000l1\142\003)\000 @\000J\t\139\144\003\184\003 \000\000\016@\000\000\000\000\000\000\000\000\002\000\001\000\000\000\000\001\016 \129\029\165\000\139EC~&>@\022\192}\001@\000c \001\148\128\0160\000%\004\205\200\001\220\001\144\000\000\b\160\0002\144\002\004\000\004\160\153\185\000;\1282\000\000\001\020\000\006R\000@\128\000\148\019\023 \007p\006@\000\000\"\128\b\000\000@\000\000\000\000\000\000\000\000\001\000\000\003\001@A\000\004\b\015@\022\001\000\128\031\000\004 \128\000l1\142\003)\000 @\000J\t\139\144\003\184\003 \000\000\016@\000\000\000\000\000\000\000\000\002\000\001\000\000\000\000\001\016 \129\029\165\000\139EC~&>@\022\192}\001@\000c \001\148\128\0160\000%\004\205\200\001\220\001\144\000\000\b\160\0002\144\002\004\000\004\160\153\185\000;\1282\000\000\001\020\000\006R\000@\128\000\148\019\023 \007p\006@\000\000\"\128\b\000\000@\000\000\000\000\000\000\000\000\001\000\000\003\001@A\000\004\b\015@\022\001\000\128\031\000\004 \128\000l1\142\000\000\000\000\000\000\000\000\016\000\b\000\000\016\000\b\129\004\b\237(\004Z*\027\2411\242\000\182\003\232\n\000\003\025\000\012\164\000\129\128\001(&n@\014\224\012\128\000\000E\000\001\148\128\016 \000%\004\205\200\001\220\001\144\000\000\b\160\0002\144\002\004\000\004\160\152\185\000;\1282\000\000\001\020\000@\000\002\000\000\000\000\000\000\000\000\000\b\000\000\024\n\002\b\000 @z\000\176\b\004\000\248\000!\004\000\003a\140r;J\001\022\138\134\252L|\128-\128\250\002\128\000\198@\003)\000 `\000J\t\155\144\003\184\003 \000\000\017@\000e \004\b\000\tA3r\000w\000d\000\000\002(\000\012\164\000\129\000\001(&.@\014\224\012\128\000\000E\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000@\004\000\128\004v\148\002-\021\r\248\152\249\000[\001\244\005\000\001\140\128\006R\000@\192\000\148\0197 \007p\006@\000\000\"\128\000\202@\b\016\000\018\130f\228\000\238\000\200\000\000\004P\000\025H\001\002\000\002PL\\\128\029\192\025\000\000\000\138\000 \000\001\000\000\000\000\000\000\000\000\000\004\000\000\012\005\001\004\000\016 =\000X\004\002\000|\000\016\130\000\001\176\1988\000B\000\007\160\011\000\128@\015\128\002\000B\000&\b\195#\180\160\017h\168o\196\199\200\002\216\015\160(\000\012d\0002\144\002\006\000\004\160\153\185\000;\1282\000\000\001\020\000\006R\000@\128\000\148\0197 \007p\006@\000\000\"\128\000\202@\b\016\000\018\130b\228\000\238\000\200\000\000\004P\001\000\000\b\000\000\000\000\000\000\000\000\000 \000\000`(\b \000\129\001\232\002\192 \016\003\224\000\132\016\000\r\1341\192\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000@\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000D\000\244\001`\016\b\001\240\000B\b\000\006\193\024b\000\000\000\000\000\000\000\000\000\000\000\000@\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\218P\b\180T7\226c\228\001l\007\208\020\000\0072\000\025H\001\003\000\002PL\220\128\029\192\025\000\000\000\138\000\003)\000 @\000J\t\155\144\003\184\003 \000\000\017@\000e \004\b\000\tA1r\000w\000d\000\000\002(\000\128\000 \000\000\000\000\000\000\000\000\000\016\000\000 \020\000\016\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\136\001\232\002\192 \016\003\224\000\132\016\000\t\1340\196\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000#\180\160\145h\168o\196\199\200\002\216\015\160(\000\012d\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006R\000@\192\000\148\0197 \007p\006@\000\000\"\128\000\202@\b\016\000\018\130f\228\000\238\000\200\000\000\004P\000\025H\001\002\000\002PL\\\128\029\192\025\000\000\000\138\000 \000\t\000\000\000\000\000\000\000\000\000\004\000\000\b\001\000\004\000\000 \000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\001\018\003\208\005\128@ \007\192\001\b \000\019\004a\136\000\000@\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\144\128\017\000(\005\004\199\b\000\216\001\128(\000\012`\b\000\000\000\000\000\000\000\000\000\000$\128\000\002\160\000\000\000\002\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000D\000\000\000\000\000\000\000\000\000\000\128\000\018\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\016\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000@\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\002H\000\000*\000\000\000\000 \000\000\000\000\001@1\192\000\000\000\000\000\000\000\000\002\000\000\"\000\000\000\000\000\000\000\t \000@\168\t\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\137I\220\030\160~\011\007\002\255\164\184Kz\182\254s<\006R\000@\192\000\148\0197 \007p\006@\000\000\"\128\000\202@\b\016\000\018\130f\228\000\238\000\200\000\000\004P\000\025H\001\002\000\002PL\\\128\029\192\025\000\000\000\138\000\168\148\157\193\234\007\224\176p/\250\011\132\183\129o\2313\213\018\147\184=@\252\022\014\005\255Ap\150\240-\252\230x\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\142\210\128E\162\161\191\019\031 \011`>\128\160\0001\144\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002;J\001\022\138\134\252L|\128-\128\250\002\144\000\198@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000TJN\224\245\003\240X8\023\253\005\194[\192\183\243\153\224\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\142\210\128E\162\161\191\019\031 \011`>\128\160\0001\144\000\202@\b\024\000\018\130f\228\000\238\000\200\000\000\004P\000\025H\001\002\000\002PL\220\128\029\192\025\000\000\000\138\000\003)\000 @\000J\t\139\144\003\184\003 \000\000\017@\021\018\147\184=@\252\022\014\005\255Ap\150\240-\252\230y\029\165\000\139EC~&>@\022\192}\001@\000c \001\148\128\0160\000%\004\205\200\001\220\001\144\000\000\b\160\0002\144\002\004\000\004\160\153\185\000;\1282\000\000\001\020\000\006R\000@\128\000\148\019\023 \007p\006@\000\000\"\128*%'pz\129\248,\028\011\254\130\225-\224[\249\204\245D\164\238\015P?\005\131\129\127\208\\%\188\011\1279\158\168\148\157\193\234\007\224\176p/\250\011\132\183\129o\2313\200\237(\004Z*\027\2411\242\000\182\003\232\n\000\003\025\000\012\164\000\129\128\001(&n@\014\224\012\128\000\000E\000\001\148\128\016 \000%\004\205\200\001\220\001\144\000\000\b\160\0002\144\002\004\000\004\160\152\185\000;\1282\000\000\001\020\001Q);\131\212\015\193`\224_\244\023\to\002\223\206g\170%'pz\129\248,\028\011\254\130\225-\224[\249\204\240\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t \000\000\168 \000\000#\180\160\017h\168o\196\199\200\002\216\015\160(\000\012d\000\000\000\000\000\000\000\160\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\144\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012\132\000\136\001@(&8@\006\192\012\001@\000c\000TJN\224\245\003\240X8\023\253%\194[\213\183\243\153\2242\144\002\006\000\004\160\153\185\000;\1282\000\000\001\020\000\006R\000@\128\000\148\0197 \007p\006@\000\000\"\128\000\202@\b\016\000\018\130b\228\000\238\000\200\000\000\004P\005D\164\238\015P?\005\131\129\127\208\\%\188\011\1279\158\168\148\157\193\234\007\224\176p/\250\011\132\183\129o\2313\192e \004\012\000\tA3r\000w\000d\000\000\002(\000\012\164\000\129\000\001(&n@\014\224\012\128\000\000E\000\001\148\128\016 \000%\004\197\200\001\220\001\144\000\000\b\160\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\128\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000z\000\176\b\004\000\248\000`\004\000\002`\1400\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\171\189\157\235\238W\234\185\254\191\251\251\135\183\251o\255\247\192\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000TJN\224\245\003\240X8\023\253%\194[\213\183\243\153\2242\144\002\006\000\004\160\153\185\000;\1282\000\000\001\020\000\006R\000@\128\000\148\0197 \007p\006@\000\000\"\128\000\202@\b\016\000\018\130b\228\000\238\000\200\000\000\004P\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\b\000\000\000\132\001\232\002\192 \016\003\224\000\128\016\000\t\1300\192\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\007\160\011\000\128@\015\128\002\000@\000&\b\195\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006R\000@\192\000\148\0197 \007p\006@\000\000\"\128\000\202@\b\016\000\018\130f\228\000\238\000\200\000\000\004P\000\025H\001\002\000\002PL\\\128\029\192\025\000\000\000\138\000\000\000\b\128\000\000\000\000\000\000\000\002\000\000\000\b\001\000\000\000\017\016=\000X\004\002\000|\000P\002\000\0010F\024\000\000 \000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003)\000 `\000J\t\155\144\003\184\003 \000\000\017@\000e \004\b\000\tA3r\000w\000d\000\000\002(\000\012\164\000\129\000\001(&.@\014\224\012\128\000\000E\000\016\000\004\128\000\000\000\000\000\000\000\000\002\000\000\004\000\128\002\000\000\016\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\137\001\232\002\192 \016\003\224\000\132\016\000\t\1300\196\000\000 \000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\148\128\0160\000%\004\205\200\001\220\001\144\000\000\b\160\0002\144\002\004\000\004\160\153\185\000;\1282\000\000\001\020\000\006R\000@\128\000\148\019\023 \007p\006@\000\000\"\128\b\000\002\000\000\000\000\000\000\000\000\000\001\000\000\002\001@\001\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\b\128\030\128,\002\001\000>\000\bA\000\000\152c\012@\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\025H\001\003\000\002PL\220\128\029\192\025\000\000\000\138\000\003)\000 @\000J\t\155\144\003\184\003 \000\000\017@\000e \004\b\000\tA1r\000w\000d\000\000\002(\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000)\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\002\002\000\000@\160\128\000\000\000\002\000\000\000\000\000\001\000\000\b\000\000\002\000\000 \000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\001\001\000\000 P@\000\000\000\001\000\000\000\000\000\000\128\000\004\000\000\001\000\000\016\000\000\000\000\000\000\002\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\128\128\000\016( \000\000\000\000\128\000\000\000\000\000@\000\002\000\000\000\128\000\b\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\b\003\208\005\128@ \007\192\001\000 \000\023\132a\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\001\001\000\000 P@\000\000\000\001\000\000\000\000\000\000\128\000\004\000\000\001\000\000\016\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\128\128\000\016( \000\000\000\000\128\000\000\000\000\000@\000\002\000\000\000\128\000\b\000\000\000\000\000\000\001\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000@@\000\b\020\016\000\000\000\000@\000\000\000\000\000 \000\001\000\000\000@\000\004\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\016\000\b\000\000\000\000\000\000\000\b\237(\004Z*\027\2411\242\000\182\003\232\n\000\003\025\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\129\000\016\000\000\004\004\b\000\000\000\016\000\000\000\000\000\0000 \002\000\000\000\128\128\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\016\000 \000\016\000\000\000\000\000\000\000\017\218P\b\180T7\226c\228\001l\007\208\020\000\0062\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\000\000\000 \000\b\000\016\000\000\000\000\000\000\000\000\000\000`\000\000\000\000\001\000\002\000\000\000\000\000\000\000\000\000\000\012\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\001\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\128\000\002\000\128\003\002\000 \000\000\b\b\000\000\000\000 \000\000\000\000\000\001\016\002(\000@\129\018\014\004\003A\000\020\192\000\004\000 \004\000\128\128\000\016( \000\000\000\000\128\000\000\000\000\000@\000\000\000\000\000\128\000\b\000\000\000\000\b\000\000\000\024\0000 \002\000\000\000\128\128\000\000\000\002\000\000\000\000\000\000\017\000\"\128\004\b\017 \224@4\016\001L\000\000@\002\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\024\016\001\000\000\000@@\000\000\000\001\000\000\000\000\000\000\b\128\017@\002\004\b\144p \026\b\000\166\000\000 \001\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\001\029\165\000\139EC~&>@\022\192}\001@\000c \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\001\000\000\004\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\024\016\001\000\000\000@@\000\000\000\001\000\000\000\000\000\000\b\128\017@\002\004\b\144p \026\b\000\166\000\000 \001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\128\000\000\128\000 \000`\000\000\000\004\000\000\000\000\000\000\144\000\000\000\000\004\000\012\000\000\000\000\128\000\000\000\000\000\018\000\000\000\000\000\128\000\128\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000@\000 \000\000\000\000\001\000\000\001\128\000\024\000\000\005\023\005\000\000\020 \000\000\000\000\000\000\000\000\000\000\000\128 \000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\224\000\007\000\160\001\197\193\000\000\005\000\000\000\000\000\000\000\000\000\000@\000\000 \000\000\000\000\000\000\000\b\000\000\000\003\128\000\028\002\128\007\023\004\000\000\020\000\000\000\000\000\000\000\000\000\136\000\000\000\000\001\000\000\000\b\000\000\000\000\002@\000\000\017\000\000\000\000\000 \000\000\000\000\000\000\000\000@\000\000\002 \000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000D\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\b\002\000\016\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\"\000\000\000\000\000@\000\000\002\000\000\000\000\000\144\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\016\004\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\000\0000\000\000\n.\b\000\000(\000\000\000\000\000\000\0010\018(\000@\160R\014\004\003A\000\020\192\004\004$ \"\002E\000\b\020\002A\192\128h \002\152\000\128\132\004\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0000\000\003\000\000\000\162\224\128\000\002\132\000\000\000\000\000\000\006\000\000`\000\000\020\\\016\000\000P\000\000\000\000\000\000\002`$P\000\129@\164\028\b\006\130\000)\128\b\bH@D\004\138\000\016(\004\131\129\000\208@\0050\001\001\b\b\t\128\145@\002\005\002\144p \026\b\000\166\000 !!\001\016\018(\000@\160\018\014\004\003A\000\020\192\004\004 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\192H\160\001\002\001H8\016\r\004\000S\000\016\016\144\128\136\t\020\000 P\t\007\002\001\160\128\n`\002\002\016\016\006\000\000`\000\000\020\\\020\000\000P\128\000\000\000\000\000\001\192\000\014\001A\003\139\130\000\000\n\000\000\000\000\000\000\000\b\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\001\000\132\000\000\001\002\000\016\000\000\b\000\000\000\b@\020\000`\000\000\000\000\001@\000\b\000\000\000\000\000\000\000\000\002\000\000\016\000\000\b\000\000\000\000\000\000\000\000\000 \000\002\004\192N\232\001\002\149H8\022\r\004@[\001\021\016\154\128p\000\003\128P\000\226\224\128\000\002\128\000\000\000\000\000\000\002\001\b\000\000\002\004\000 \000\000\016\000\000\000\016\128(\000\192\000\000\000\000\002\128\000\016\000\000\000\000\000\000\000\000\004\000\000 \000\000\016\000\000\000\000\000\000\000\000\000@\000\004\001\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000 \016\128\000\000 @\002\000\000\001\000\000\000\001\b\002\128\012\000\000\000\000\000(\000\001\000\000\000\000\000\000\000\000\000@\000\002\000\000\001\000\000\000\000\000\000\000\000\000\004\000\000@\000\000@\000\000\000\000\001\000\000\000\000\000\000\000\128\000\000\000\000\000 \000\000\016\000\000\000\000\000\000\000\004\000\000\000\000\192\000\012\000\000\002\139\130\128\000\n\016\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\003\000\0000\000\000\n.\b\000\000(\000\000\000\000\000\000\0010\002(\000@\128R\014\004\003A\000\020\192\004\004 &\002E\000\b\020\nA\192\128h \002\152\000\128\132\132\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\0000\000\003\000\000\000\162\224\128\000\002\128\000\000\000\000\000\000\019\000\"\128\004\b\005 \224@4\016\001L\000@B\002\002`$P\000\129@\164\028\b\006\130\000)\128\b\bH@\000\000\000\000\000\000\000\000\128\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\b\237(\004Z*\027\2411\242\000\182\003\232\n\000\003\025\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000r\144\"\004\016\004\224\153\185\000;\1280\000\000\001\004\000\014R\004@\130\000\156\019\023 \007p\006\000\000\000 \128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0009H\001\002\b\002pL\\\128\029\192\024\000\000\000\130\000\b\128\017@\002\004\000\144` \026\b\000\166\000\000 \001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012\164\000\129\128\001(&n@\014\224\012\128\000\000E\000\001\148\128\016 \000%\004\205\200\001\220\001\144\000\000\b\160\0002\144\002\004\000\004\160\152\185\000;\1282\000\000\001\020\001Q);\131\212\015\193`\224_\244\023\to\002\223\206g\170%'pz\129\248,\028\011\254\130\225-\224[\249\204\240\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003)\000 `\000J\t\155\144\003\184\003 \000\000\017@\000e \004\b\000\tA3r\000w\000d\000\000\002(\000\012\164\000\129\000\001(&.@\014\224\012\128\000\000E\000\016\000\004\000\000\000\000\000\000\000\000\000\002\000\000\006\000\128\002\000\000\000\000\000\000\000\000\000\000\000\000@\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\017\000=\000X\004\002\000|\000\016\130\000\001\176F\024\128\000\000\000\000\000\000\000\000\000\000\000\016\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\004\000@@\000\016\016 \000\000\000@\000\000\000\000\000\000\192\128\b\000\000\002\002\004\000\000\000\b\000\000\000\000\000\000\024\016\001\000\000\000@@\000\000\000\001\000\000\000\000\000\000\000\000\004\000\000\000\b\000\016\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\128\128\000\016( \000\000\000\000\128\000\000\000\000\000@\000\002\000\000\000\128\000\b\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\004\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0002\144\002\004\000\004\160\152\185\000;\1282\000\000\001\020\001Q);\131\212\015\193`\224_\244\023\to\002\223\206g\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000Gi@\"\209P\223\137\143\144\005\176\031@P\000\024\200\000e \004\012\000\tA3r\000w\000d\000\000\002(\000\012\164\000\129\000\001(&n@\014\224\012\128\000\000E\000\001\148\128\016 \000%\004\197\200\001\220\001\144\000\000\b\160\n\137I\220\030\160~\011\007\002\255\160\184Kx\022\254s=Q);\131\212\015\193`\224_\244\023\to\002\223\206g\128\192\128\b\b\000\002\002\004\000\000\000\b\000\000\000\000 \000\024\016\001\001\000\000@@\128\000\000\001\000\000\000\000\000\000\003\002\000 \000\000\b\b\016\000\000\000 \000\000\000\000\000\000`@\004\000\000\001\001\000\000\000\000\004\000\000\000\000\000\000\"\000E\000\b\016\"A\192\128H \002\152\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0000 \002\000\000\000\128\129\000\000\000\002\000\000\000\000\000\000\006\004\000@\000\000\016\016\000\000\000\000@\000\000\000\000\000\002 \004P\000\129\002$\028\b\004\130\000)\128\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\128\002\000 \000\b\000\016\000\000\000\000\000\000\000\000\000\000 \000\000\004\000\000@\002\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\b\000@\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\136\001\020\000 @\t\006\002\001 \128\011`\000\002\000\000\002\000@@\000\b\020\016\000\000\000\000@\000\000\000\000\000\" \004P\000\129@$\028\b\004\130\000)\128\000\b\004\000D\000\138\000\016 \004\131\001\000\144@\0050\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000`\000@\000\000\001\000\002\000\000\000\000\000\000\000\000\000\000\012\000\b\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\001\128\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\001\000\000\004\001\000\017\000\"\128\004\b\001 \192@$\016\001L\000\000@\002\002 \004P\000\129\000$\016\b\004\130\000)\128\000\b\000@\024\000\000\000\000\000@\000\128\000\000\000\000\000\000\000\000\000\003\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\002\000\000\b\002\000\"\000E\000\b\016\002A\128\128H \002\152\000\000\128\004\004@\b\160\001\002\000H \016\t\004\000S\000\000\016\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\004\000\000\016\004\000D\000\138\000\016 \004\131\001\000\144@\0050\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\031>\196@\129_\134\208\000!\131\128\007\180p,\005\001\161?\165E\171MS~g>\192V\192\127\129@\001\227 \001\148\128\016 \000%\004\197\200\001\220\001\144\000\000\b \002\000\000\016\000\000\000\000\001\000\000\000\000\000\000\000\136\016@\142\210\128E\162\161\191\019\031 \011`>\128\160\0001\144\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007\207\177\016 W\225\180\000\b`\224\001\237\028\011\001@hO\233Qj\211T\223\153\207\176\021\176\031\224P\000x\200\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\001\128\000\000\000\000\005\000\000 \000\000\000\000\000\000\000\000\b\136\001\020\000 `\t\004\002\001 \128\n`\000\002\000\b\006\004@@@\b\020\016 \000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000P\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\003\128\000\028\002\128\007\023\004\000\000\020\000\000\000\000\000\000\000\000\000\001\000\000\000\128\000\000\000\000\000\000\000 \000\000\000\014\000\000p\n\000\028\\\016\000\000P\000\000\000\000\000\000\002 \004P\000\129\b$\028\011\004\130\000-\128\b\b\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\"\004E\000\b\016\002A\128\128H \002\152\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\136\001\020\000 @\t\006\002\001 \128\n`\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002 \004P\000\129\b$\028\011\004\130\000-\128\b\b\b\000\t\000\000\001\000\000@\000\192\000\000\000\b\000\000\000\000\000\001 \000\000\000\000\b\000\024\000\000\000\001\000\000\000\000\000\000$\000\000\000\000\001\000\001\000\000\000\000 \000\000\000\000\000\"\000E\000\n\016\002A\192\128H \002\216\000\001\128\000\000\144\000\000\000\000\004\000\004\000\000\000\000\128\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\017\000\"\128\004\b\001 \224@$\016\001L\004\000B\000\000@\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\b\128\017@\002\004\000\144p \018\b\000\166\000\000 \000\001\016\002(\000@\128\018\012\004\002A\000\020\192\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004@\b\160\001\002\000H8\016\t\004\000S\000\000\016\000\000\136\001\020\000 @\t\006\002\001 \128\n`\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\224\004^\001\193\003\143\146\b\004\n\000(\000\000\b\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\002\016\000\000\004\000\000@\003\000\000\000\000\000\000\000\000\000\000@\000\000\000\128\000\b\000`\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\001\000\012\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000 \000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\002\000\000\000\000\000\000\000\000\000\000\016\000\000\146\000\002\000\000\000\004\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\t \000 \000\000\000@\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\b\000\001\000\002\000\020@@\000\000\000\000\000\000\000\000\000\b\000\000@\000\000(\016P\004\000\000\000\002\000 \000\000\001\000\000\b\000\000\005\002\b\000\128\000\000\000@\004\000\000\000\028\000\000\224\020\0008\184 \000\000\160\000\000\000\000\000\000\000\000\002\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\128\000\000@ \128\b\000\000\000\004\000@\000\000\004\000\000\000\000\002\000\128\004\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000@\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\001\192\000\014\001@\003\139\130\000\000\n\000\000\000\000\000\000\000@\000\002\000\000\001\000\131\128 \000\000\000\016\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\128\000\000@\002\000\000\000\000\000\000\000\000\000\000@\000\000\016\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\224\000\007\000\160\001\197\193\000\000\005\000\000\000\000\000\000\000 \000\001\000\000\000\128A\128\016\000\000\000\b\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\002\000\004\000(\129\128\000\000\000\000\000\000\000\000\000\002\000\000@\000\128\005\016\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\004\000\001\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\b\000\000\000\000\128\000\016\000 \001D\004\000\000\000\000\000\000\000\000\000\000p\000\003\128P\000\226\224\128\000\002\128\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000@\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007\000\0008\005\000\014.\b\000\000(\000\000\000\000\000\000\000\000\000 \000\000\000\000\002\000\000\000\000\000\000\001\000\000\000\000\000\004\000\000\000\000\000@\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\000*\128\004\bA \224H$\016\001l\000@@\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\002\000\000\000\000 \000\004\000\b\000Q\001\000\000\000\000\000\000\000\000\000\000\"\000U\000\b\016\130A\192\144H \002\216\000\128\128\004\004\000\000 \000\000\016\b8\002\000\000\000\001\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\014\000\000p\n\000\028\\0\000\000P\000\000\000\000\000\000\001\192\000\014\001@\003\139\130\000\000\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\128\000\000\000\000\007\000\0008\005\000\014.\b\000\000(\000\000\000\000\000\000\001\000\000\b\000\000\004\002\014\001\128\000\000\000@\004\000\000\000 \000\001\000\000\000\128A\128\016\000\000\000\b\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\016\000\000\b\004\024\001\000\000\000\000\128\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\b\000\000\004\002\b\000\128\000\000\000@\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004@\b\160\001\002\000H8\016\t\004\000S\000\000\016\000\128\136\001\020\000 @\t\004\002\001 \128\n`\000\002\000\016 \000\000\000\000\000\004\0000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\128\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\004\000\000\128\001\000\n \000\000\000\000\000\000\000\000\000\004@\b\160\001\002\000H8\016\t\004\000S\000\000\016\000\128\136\001\020\000 @\t\004\002\001 \128\n`\000\002\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\016\000\192\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\002\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\001\148\128\020\"\000%\004\197H\001\220\001\136\000\000( \000r\152B>\144l\242\152\185>?\1363\002\000\025/,\002\000\000@\000\128\021\016\016\000\000\000\016\000\000\000\000\000\002\000\000\016\000\000\n\004\020\003\000\000\000\000\128\b\000\000\000@\000\002\000\000\001@\130\000`\000\000\000\016\001\000\000\000\b\000\000@\000\000 \016@\012\000\000\000\002\000 \000\000\002\000\000\000\000\001\000@\002\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000 \b\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\144\000\002;J\001\022\138\134\252L|\128-\128\250\002\128\000\198@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\001\029\165\000\139EC~&>@\022\192}\001@\000c \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\004\000\000\002\001\006\000\192\000\000\000 \002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\002\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\014\000\000p\n\000\028\\\016\000\000P\000\000\000\000\000\000\002\000\000\016\000\000\b\004\028\003\000\000\000\000\128\b\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\002@\000\b\237(\004Z*\027\2411\242\000\182\003\232\n\000\003\025\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\004v\148\002-\021\r\248\152\249\000[\001\244\005\000\001\140\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\001\000\000\000\128\004\000\000\000\000\000\000\000\000 \000\000\000\000 \000\000\016\000\128\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\001\148\128\020\"\000%\004\197H\001\220\001\136\000\000( \000x\000\003\128P\000\226\224\128\000\002\128\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\0008\000\001\192(\000qp@\000\001@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\016\000\000\000\000\b\237(\004Z*\027\2411\242\000\182\003\232\n\000\003\025\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\004v\148\002-\021\r\248\152\249\000[\001\244\005\000\001\140\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\002\000\000\001\000\131\000`\000\000\000\016\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\128\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\007\000\0008\005\000\014.\b\000\000(\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\001\148\128\020\"\000%\004\197H\001\220\001\136\000\000( \000x\000\003\128P\000\226\224\128\000\002\128\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\0008\000\001\192(\000qp@\000\001@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\016\000\000\000\000\b\237(\004Z*\027\2411\242\000\182\003\232\n\000\003\025\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\004v\148\002-\021\r\248\152\249\000[\001\244\005\000\001\140\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002;J\001\022\138\134\252L\252\128-\128\250\002\128\000\198@Gi@\"\209P\223\137\143\144\005\176\031@P\000\024\200\001\000\000\b\000\000\004\002\012\001\128\000\000\000@\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\016\000 \005D\012\000\000\000\004\000\000\000\000@\000\016\000\002\000\004\000\168\129\128\000\000\000\128\000\000\000\000\000\002\000\000@\000\128\021\016\016\000\000\000\016\000\000\000\000\000\000@\000\b\000\016\002\162\002\000\000\000\002\000\000\000\000\000\0009H\017\003\024\002pL\220\128\029\192\024\000\000\000\130\000\249\246\"\004\n\2526\128\001\012\028\000=\163\129`(\r\000\229 D\b \t\1933r\000w\000`\000\000\002\b\000\028\164\b\129\004\0018&.@\014\224\012\000\000\000A\000\003\148\128\016 \128'\004\197\200\001\220\001\128\000\000\b \000\000\000\000\000\000\000\000\002\000\000\128\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000 \000\b\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000@\000\000\000\004\000\000\128\001\000* \000\000\000 \000\000\000\000\000\003\128\000\028\002\128\007\023\004\000\000\020\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\002\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\025H\001B \002PL\212\128\029\192\024\000\000\000\130\000\003)\000(D\000J\t\138\144\003\184\003\000\000\000\016@\000e \005\b\128)A1R\000w\000`\000\000\002\b\000\004\000\000\128\001\000* \000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\128\016\000\002\000\004\000\168\128\128\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\234EZ\129\149\n\166\127\175\004\238\000\233\148\b\0301@]H\171P2\161T\207\245\224\157\192\0292\129\003\198(\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\016\002\168\000@\132\018\014\005\130A\000\020\192\004\012\000\160\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\136\001T\000 B\t\007\002\193 \128\n`\002\006\000P\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000D\000\170\000\016!\004\131\129`\144@\0050\001\003\000(\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000@\000\000\000\004\000\000\128\001\000* \000\000\000 \000\000\000\000\000\004@\n\160\001\002\016H8\022\t\004\000S\000\0160\002\128r\144\"\004\016\004\224\152\185\000;\1280\000\000\001\004\000\014R\000@\130\000\156\019\023 \007p\006\000\000\000 \128\000\000\000\000\000\000\000\000\b\000\002\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\016\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012\000\000\224\017\000*\184 \000\000\160\000\000\000\000\000\000\004\192J\160\001\002\129\b8\016\t\004\000[\000\0000\000\1280\000\003\000\000\000\162\224\128\000\002\128\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\192\000\014\001\016\002\171\130\000\000\n\000\000\000\000\000\000\0008\000\001\192(\000qp@\000\001@\000\000\000\000\n\000\000\000\001\000\000\000\000\000\016\000\000\000\000\000\000\b\001\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\012\000\000\224\017\000*\184 \000\000\160\000\000\000\000\000\000\001\128\000\024\000\000\005\023\004\000\000\020\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\006\000\000p\b\128\021\\\016\000\000P\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\128\000\000\000\b\000\000\000\000\000P0@\000\001\000\000\000\000\000\000\000\t\128\149@\002\005\002\016p \018\b\000\182\000\000 \001\0010\018\168\000@\160B\014\004\002\001\000\022\192\000\004\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004@\n\160\001\002\000\b8\016\b\000\000[\000\000\016\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000@\000\000 \016p\012\000\000\000\002\000 \000\004\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000 \000\000\016\b0\006\000\000\000\001\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000@\000\128\021\016\016\000\000\000\016\000\000\000\000\000\002\000\000\016\000\000\b\004\028\003\000\000\000\000\128\b\000\001\000@\000\002\000\000\001\000\131\000`\000\000\000\016\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\224\000\007\000\160\001\197\195\000\000\005\000\000\000\000\000\000\000\028\000\000\224\020\0008\184 \000\000\160\000\000\000\000\000\000\004\000\000 \000\000\016\b0\006\000\000\000\001\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\002\000\000\001\000\131\000`\000\000\000\016\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\001\000\000\000\128A\0000\000\000\000\b\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\136\001\020\000 @\t\007\002\001 \128\n`\000\002\000\016\006\000\000p\b\128\021\\\016\000\000P\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\b\000\001\000\002\000T@@\000\000\000@\000\000\000\000\000\b\128\017@\002\004\000\144p \018\b\000\166\000\000 \001\000e \005\b\128\tA1R\000w\000b\000\000\n\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004@\b\160\001\002\000H0\016\t\004\000S\000\000\016\000\128\136\001\020\000 @\t\004\002\001 \128\n`\000\002\000\016 \000\000\000\000\000\004\0000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\128\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000e \005\b\128\tA1R\000w\000b\000\000\n\b\000\"\000E\000\b\016\002A\128\128H \002\152\000\000\128\004\004@\b\160\001\002\000H \016\t\004\000S\000\000\016\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000D\000\138\000\016 \004\130\001\000\128\000\0050\000\001\000\000\007)\002 a\000N\t\155\144\003\184\003\000\000\000\016@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000D\000\138\000\016 \004\130\001\000\144@\0050\000\001\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\016\002(\000@\128\018\012\004\002A\000\020\192\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\129\000\016\016\000\004\004\b\000\000\000\016\000\000\000\000\000\0000 \002\000\000\000\128\129\000\000\000\002\000\000\000\000\000\000\006\004\000@\000\000\016\016\000\000\000\000@\000\000\000\000\000\002 \004P\000\129\002$\028\b\004\130\000)\128\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\128\017@\002\004\000\144@ \018\b\000\166\000\000 \001\000@\000\002H\000\t@\002\000\016\000\000\000\000\000\000\016\000\b\000\000I\000\001(\000\000\002\000\000\000\000\000\000\002\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\136\001\020\000 @\t\006\002\001 \128\011`\002\006\000\016\017\000\"\128\004\b\001 \192@$\016\001l\000@@\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000D\000\138\000\016 \004\131\001\000\144@\0050\001\001\000\b\b\128\017@\002\004\000\144@ \018\b\000\166\000\000 \001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000D\000\138\000\016 \004\131\001\000\128\000\0050\000\001\000\000\b\128\017@\002\004\000\144@ \016\000\000\166\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\136\001\020\000 @\t\004\002\001\160\128\n`\000\002\000\016\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\016\002(\000@\128\018\012\004\002\000\000\020\192\000\004\000\000\"\000E\000\b\016\002A\000\128@\000\002\152\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000$\000\000\128\000\001\000\001\000\000\000\000 \000\000\000 \000\004\128\000\000\000\000 \000 \000\000\000\004\000\000\000\004\000\000\144\000\000\000\000\004\000\004\000\000\000\000\128\000\000\000\000\000\136\001\020\000(@\t\007\002\001 \128\011`\000\006\016\000\002@\000\000\000\000\016\000\016\000\000\000\002\000\000\000\000\000\002 \004P\000\129\000$\028\b\004\130\000)\128\000\b@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\128\017@\002\004\000\144p \018\b\000\166\000 !\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\"\000E\000\b\016\002A\128\128H \002\152\000\000\132\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\"\000E\000\n\016\002A\192\128H \002\216\000\001\132\000\000\144\000\000\000\000\004\000\004\000\000\000\000\128\000\000\000\000\000\136\001\020\000 @\t\007\002\001 \128\n`\000\002\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002 \004P\000\129\000$\028\b\004\130\000)\128\b\b@@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\001\016\002( @\128\018\012\004\002A\000\022\192\004\012\000 \"\000E\000\b\016\002A\128\128H \002\216\000\128\128\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\136\001\020\000 @\t\006\002\001 \128\n`\002\002\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\000\000 \000\000@\000@\000\000\000\b\000\000\000\b\000\001 \000\000\000\000\b\000\b\000\000\000\001\000\000\000\001\000\001\016\002(\000@\128\018\012\004\002A\000\020\192\000\004 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\017\000*\128\004\n\017 \224@$\016\001l\000\004@b \000\001\000\000\000@\000\004\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003!\000 @\000J\t\138\016\003\184\003\000\000\000\016@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\006\192\000\000\128\000\b\000\004\000\000\n\000\006b\138\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\006R\000@\128\000\148\019\023 \007p\006@\b\000 \128\000\000\000\000\000\000\002\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\224\000\007\000\160\001\197\193\000\000\005\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006B\000@\128\000\148\019\020 \007p\006\000\000\000 \128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\r\128\000\001\000\000\016\000\b\000\000\020\000\012\197\020\000\000\000\128\000\000\000\000\002\000\000\000\000\000\000\001\024 \128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\128\000\028\002\128\007\023\004\000\000\020\000\000\000\000\000\000\000\000\000@\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\016\000\000\b\004\016\003\000\000\000\000\128\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000e \004\012\000\tA3r\000w\000d\000\000\002(\000\012\164\000\129\000\001(&n@\014\224\012\128\000\000E\000\001\148\128\016 \000%\004\197\200\001\220\001\144\000\000\b\160\n\137I\220\030\160~\011\007\002\255\160\184Kx\022\254s=Q);\131\212\015\193`\224_\244\151\toV\223\206g\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005]\172\239\031R\191U\207\241\255\223\220=\191\219\127\255\158\168\148\157\193\234\007\224\176p/\250K\132\183\171o\2313\192d \004@\n\001A1\194\0006\000`\n\000\003\024\002\162Rw\007\168\031\130\193\192\191\233.\018\222\173\191\156\207\001\148\128\0160\000%\004\205\200\001\220\001\144\000\000\b\160\0002\144\002\004\000\004\160\153\185\000;\1282\000\000\001\020\000\006R\000@\128\000\148\019\023 \007p\006@\000\000\"\128*%'pz\129\248,\028\011\254\130\225-\224[\249\204\245D\164\238\015P?\005\131\129\127\208\\%\188\011\1279\158\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\b\237(\004Z*\027\2411\242\000\182\003\232\n\000\003\025\000\000\000\000\000\000\000(\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000$\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003!\000\"\000P\n\t\142\016\001\176\003\000P\000\024\192\021\018\147\184=@\252\022\014\005\255Ip\150\245m\252\230x\012\164\000\129\128\001(&n@\014\224\012\128\000\000E\000\001\148\128\016 \000%\004\205\200\001\220\001\144\000\000\b\160\0002\144\002\004\000\004\160\152\185\000;\1282\000\000\001\020\001Q);\131\212\015\193`\224_\244\023\to\002\223\206g\170%'pz\129\248,\028\011\254\130\225-\224[\249\204\244\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003)\000 @\000J\t\139\144\003\184\003 \000\000\017@\021\018\147\184=@\252\022\014\005\255Ap\150\240-\252\230x\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\016\000\000\000\004\000\000\000\004\017\000\000\000\000\128\000\001\192\000\014\001@\003\139\130\000\000\n\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\128\000\000\004\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000`\000\006\000\000\001E\195\000\000\005\016\000\000\128\000\000\000\012\000\000\192\000\000(\184 \000\000\162\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\016\000\000\000\004\000\000\000\000\017\000\000\000\000\000\000\000\192\000\012\000\000\002\139\130\000\000\n \000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\004\000\000\000\000\000\000\000\001\000\000\000\000p\000\003\128P\000\226\224\128\000\002\128\000\000\000\000\000\000\000\000\b\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\004\0008\000\001\192(\000qp@\000\001@\000\000\000\000\000\000\136\128\029\192\002\007 \144p,\018\b\128\182\000+!5\145\016\003\184\000@\228\018\014\005\130A\016\022\192\005d&\176\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\128\000\024\000\000\005\023\004\000\000\020\000\000\000\000\000\000\b\136\001\220\000 r\t\007\002\193 \136\011`\002\178\019Y\017\000;\128\004\014A \224X$\017\001l\000VBk\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\0008\000\001\192(\000qp@\000\001@\000\000\000\000\000\000\136\128\029\192\002\007 \144p,\018\b\128\182\000+!5\145\016\003\184\000@\228\018\014\005\130A\016\022\192\005d&\176\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\128\000\024\000\000\005\023\004\000\000\020\000\000\000\000\000\000\b\136\001\220\000 r\t\007\002\193 \136\011`\002\178\019Y\017\000;\128\004\014A \224X$\017\001l\000VBk\001\192\000N\001@\003\139\130\000\000\n\000\000\000\000\000P\000\000\000\000\000\000@\016\000\000\000\000\002\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \b\000\000\000\000\001\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002h\004P\000\129\002$\026\b\004\130\000i\128\b\b\000@D\000\138\000\020 \004\131\129\000\144@\0050\001\003\b\b\b\128\017@\002\004\000\144` \018\b\000\166\000 !\001\000$\000\000\000\000\001\000\001\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\000\"\128\004\b\001 \224@$\016\001L\000@@\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000D\000\138\000\020 \004\131\129\000\144@\0050\001\003\b\b\000\000\000\000\000\b\002\000\000\000\000\000@\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\001\000\000\000\000\000 \000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\128\017@\002\004\000\144p \018\b\000\182\000 \001\000$\000\000\128\000\001\000\001@\000\002\000 \000\128\000 \000\004\128\000\000\000\000 \000(\000\000@\004\000\016\000\004\000\000\000\000\000\000\004\001\000\000\000\000\000 \000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\128\000\000\000\000\016\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\001\000\000\000\000\000 \000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\128\000\000\000\000\016\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000r\000\003\192P\000\226\224\160\000\003\128\016\000@\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002 \004P\000\129\000\004\024\b\004\000\000)\128\b\b\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000$\000\000\128\000\001\000\001\000\000\000\000 \000\000\000 \000\004\128\000\000\000\000 \000 \000\000\000\004\000\000\000\004\000\004@\b\160\001\002\000\b0\016\b\000\000S\000\000\016\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\001\016\002( @\128\002\012\004\002\000\000\022\192\004,\000 \"\000E\000\b\016\000A\128\128@\000\002\216\000\132\128\004\003\144\000\030\002\128\007\023\005\000\000\028\000\128\002\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\000\"\128\004\b\000 \192@ \000\001L\000@@\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001 \000\004\000\000\b\000\b\000\000\000\001\000\000\000\001\000\000$\000\000\000\000\001\000\001\000\000\000\000 \000\000\000 \000\"\000E\000\b\016\000A\128\128@\000\002\152\000\000\132\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\136\001\020\000 @\001\004\002\001\000\000\n`\000\002\000\000\002\000\000\000@\000\000\000 \000\000\000\000\000\000\000\001\000\000@\000\000\b\000\000\000\004\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\016\002(\000@\129\002\012\004\002\000\000\020\192@\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\000\"\128\004\b\016 \192@ \000\001L\004\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\028\000\016\001\000\000@\000\128\000\000\000\000\000\000\000\000\000\001\000\000\000 \000\002\000\016\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000@\002\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\004@\b\160\001\002\000\b0\016\b\000\000[\000\000\144\000\000\016\002\002\000\000@\160\128\000\000\000\002\000\000\000\000\000\001\017\000\"\128\004\n\000 \224@ \000\001L\000\000@ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\024\000\016\000\000\000@\000\128\000\000\000\000\000\000\000\000\000\003\000\002\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\002\000\000(\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004@\b\160\001\002\004\b0\016\b\000\000S\001\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\b\001\001\000\000 P@\000\000\000\001\000\000\000\000\000\000\136\128\017@\002\005\000\016p \016\000\000\166\000\000 1\001\016\002(\000@\128\002\012\004\002\000\000\020\192\000\004\000 \"\000E\000\b\016\000A\000\128@\000\002\152\000\000\128\004\001\128\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\0000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000@\b\b\000\001\002\130\000\000\000\000\b\000\000\000\000\000\004D\000\138\000\016(\000\131\129\000\128\000\0050\000\001\001\136\b\128\017@\002\004\000\016` \016\000\000\166\000\000 \001\001\016\002(\000@\128\002\b\004\002\000\000\020\192\000\004\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000@\000\001\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\136\001\020\000 @\001\006\002\001\000\000\n` \002\001\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000D\000\138\000\016 \000\131\001\000\128\000\0050\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \004\004\000\000\129A\000\000\000\000\004\000\000\000\000\000\002\"\000E\000\b\020\000A\192\128@\000\002\152\000\000\128\192\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\136\001\020\000 @\001\006\002\001\000\000\n`\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\016\000\000\b\001\001\000\000 P@\000\000\000\001\000\000\000\000\000\000\136\128\017@\002\005\000\016p \016\000\000\166\000\000 0\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000H\000\000\b\000\002\000\006\000\000\000\000@\000\000\000\000\000\t\000\000\000\000\000@\000\192\000\000\000\b\000\000\000\000\000\001 \000\000\000\000\b\000\b\000\000\000\001\000\000\000\000\000\001\016\002(\000P\128\002\014\004\002\000\000\020\192\000\012\000\000B\000\000\000\128\000\b\000`\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\001\000\012\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000 \000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\003\000\0008\004@\n\174\b\000\000(\000\000\000\000\000\000\001\016\002(\000@\128\002\012\004\002\000\000\020\192\000\004\000 \"\000E\000\b\016\000A\000\128@\000\002\152\000\000\128\004\b\000\000\000\000\000\001\000\012\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000 \000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\003\000\0008\004@\n\174\b\000\000(\000\000\000\000\000\000\001\016\002(\000@\128\002\012\004\002\000\000\020\192\000\004\000 \"\000E\000\b\016\000A\000\128@\000\002\152\000\000\128\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002 \004P\000\129\000\004\016\b\004\000\000)\128\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000D\000\138\000\016 \000\131\001\000\128\000\0050\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \004\004\004\000\129A\002\000\000\000\004\000\000\000\000\000\000\004\000\128\128\000\016( @\000\000\000\128\000\000\000\000\000\000\128\016\016\000\002\005\004\000\000\000\000\016\000\000\000\000\000\b\136\001\020\000 P\001\007\002\001\000\000\n`\000\002\003\000\017\000\"\128\004\b\000 \128@ \000\001L\000\000@@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000D\000\138\000\016 \000\130\001\000\128\000\0050\000\001\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\016\002(\000@\128\002\b\004\002\000\000\020\192\000\004\000 \b\000\000I\000\001(\000@\002\000\000\000\000\000\000\002\000\001\000\000\t \000%\000\000\000@\000\000\000\000\000\000@\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\0009\000\001\224(\000qpP\000\001\192\b\000 \000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\016\002(\000@\128\002\012\004\002\000\000\020\192\004\004\000 \"\000E\000\b\016\000A\000\128@\000\002\152\000\000\128\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\128\000\000 \000\002\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\004\000\000\000\000\000\000\000\001\000\000\000\000p\000\003\128P\000\226\224\128\000\002\128\000\000\000\000\000\000\000\000\b\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\004\0008\000\001\192(\000qp@\000\001@\000\000\000\000\000\000\136\128\029\192\002\007 \144p,\018\b\128\182\000+!5\145\016\003\184\000@\228\018\014\005\130A\016\022\192\005d&\176\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\128\000\024\000\000\005\023\004\000\000\020\000\000\000\000\000\000\b\136\001\220\000 r\t\007\002\193 \136\011`\002\178\019Y\017\000;\128\004\014A \224X$\017\001l\000VBk\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\0008\000\001\192(\000qp@\000\001@\000\000\000\000\000\000\136\128\029\192\002\007 \144p,\018\b\128\182\000+!5\145\016\003\184\000@\228\018\014\005\130A\016\022\192\005d&\176\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\128\000\024\000\000\005\023\004\000\000\020\000\000\000\000\000\000\b\136\001\220\000 r\t\007\002\193 \136\011`\002\178\019Y\017\000;\128\004\014A \224X$\017\001l\000VBk\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\004\0008\000\001\192(\000qp@\000\001@\000\000\000\000\000\000\136\128\029\192\002\007 \144p,\018\b\128\182\000+!5\145\016\003\184\000@\228\018\014\005\130A\016\022\192\005d&\176\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\128\000\024\000\000\005\023\004\000\000\020\000\000\000\000\000\000\b\136\001\220\000 r\t\007\002\193 \136\011`\002\178\019Y\017\000;\128\004\014A \224X$\017\001l\000VBk\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\0008\000\001\192(\000qp@\000\001@\000\000\000\000\000\000\136\128\029\192\002\007 \144p,\018\b\128\182\000+!5\145\016\003\184\000@\228\018\014\005\130A\016\022\192\005d&\176\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\128\000\024\000\000\005\023\004\000\000\020\000\000\000\000\000\000\b\136\001\220\000 r\t\007\002\193 \136\011`\002\178\019Y\017\000;\128\004\014A \224X$\017\001l\000VBk\000\192\000\012\000\000\002\139\130\000\000\n\000\000\000\000\000\000\0008\000\001\192( qp@\000\001@\000\000\000\000\000\000\000\000\000\016\000\000\b\000\000\000\000\000\000\000\002\000\000\000\000\224\000\007\000\160\001\197\193\000\000\005\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\b\000p\000\003\128P\000\226\224\128\000\002\128\000\000\000\000\000\001\017\000;\128\004\014A \224X$\017\001l\000VBk\" \007p\000\129\200$\028\011\004\130 -\128\n\200M`\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\000\0000\000\000\n.\b\000\000(\000\000\000\000\000\000\017\016\003\184\000@\228\018\014\005\130A\016\022\192\005d&\178\"\000w\000\b\028\130A\192\176H\"\002\216\000\172\132\214\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000p\000\003\128P\000\226\224\128\000\002\128\000\000\000\000\000\001\017\000;\128\004\014A \224X$\017\001l\000VBk\" \007p\000\129\200$\028\011\004\130 -\128\n\200M`\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\000\0000\000\000\n.\b\000\000(\000\000\000\000\000\000\017\016\003\184\000@\228\018\014\005\130A\016\022\192\005d&\178\"\000w\000\b\028\130A\192\176H\"\002\216\000\172\132\214\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\b\000p\000\003\128P\000\226\224\128\000\002\128\000\000\000\000\000\001\017\000;\128\004\014A \224X$\017\001l\000VBk\" \007p\000\129\200$\028\011\004\130 -\128\n\200M`\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\000\0000\000\000\n.\b\000\000(\000\000\000\000\000\000\017\016\003\184\000@\228\018\014\005\130A\016\022\192\005d&\178\"\000w\000\b\028\130A\192\176H\"\002\216\000\172\132\214\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000p\000\003\128P\000\226\224\128\000\002\128\000\000\000\000\000\001\017\000;\128\004\014A \224X$\017\001l\000VBk\" \007p\000\129\200$\028\011\004\130 -\128\n\200M`\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\000\0000\000\000\n.\b\000\000(\000\000\000\000\000\000\017\016\003\184\000@\228\018\014\005\130A\016\022\192\005d&\178\"\000w\000\b\028\130A\192\176H\"\002\216\000\172\132\214\000\128@\000\000\000\129\000\000\000\000\004\000\000\000\000\000\b\0000\000\003\000\000\000\162\224\128\000\002\128\000\000\000\000\000\000\000\001\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000 \001\192\000\014\001@\003\139\130\000\000\n\000\000\000\000\000\000\004D\000\238\000\0169\004\131\129`\144D\005\176\001Y\t\172\136\128\029\192\002\007 \144p,\018\b\128\182\000+!5\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012\000\000\192\000\000(\184 \000\000\160\000\000\000\000\000\000D@\014\224\001\003\144H8\022\t\004@[\000\021\144\154\200\136\001\220\000 r\t\007\002\193 \136\011`\002\178\019X\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\001\192\000\014\001@\003\139\130\000\000\n\000\000\000\000\000\000\004D\000\238\000\0169\004\131\129`\144D\005\176\001Y\t\172\136\128\029\192\002\007 \144p,\018\b\128\182\000+!5\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012\000\000\192\000\000(\184 \000\000\160\000\000\000\000\000\000D@\014\224\001\003\144H8\022\t\004@[\000\021\144\154\200\136\001\220\000 r\t\007\002\193 \136\011`\002\178\019X\002\001\000\000\000\002\004\000\000\000\000\016\000\000\000\000\000 \000\192\000\012\000\000\002\139\130\000\000\n\000\000\000\000\000\000\004D\004\238\000\0169\004\131\129`\144D\005\176\001Y\t\172\007\000\0008\005\000\014.\b\000\000(\000\000\000\000\000\000\017\016\003\184\000@\228\018\014\005\130A\016\022\192\005d&\178\"\000w\000\b\028\130A\192\176H\"\002\216\000\172\132\214\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0000\000\003\000\000\000\162\224\128\000\002\128\000\000\000\000\000\001\017\000;\128\004\014A \224X$\017\001l\000VBk\" \007p\000\129\200$\028\011\004\130 -\128\n\200M`\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\007\000\0008\005\000\014.\b\000\000(\000\000\000\000\000\000\017\016\003\184\000@\228\018\014\005\130A\016\022\192\005d&\178\"\000w\000\b\028\130A\192\176H\"\002\216\000\172\132\214\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0000\000\003\000\000\000\162\224\128\000\002\128\000\000\000\000\000\001\017\000;\128\004\014A \224X$\017\001l\000VBk\" \007p\000\129\200$\028\011\004\130 -\128\n\200MdD\000\170\000\0160\004\131\129\000\144@\005\176\001I\000\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\016\002\168\000@\192\018\014\004\002A\000\022\192\005$\0002\000\000\016\000\000\b\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\t\000\000\b\000\000\004\000\000\000\000\000\000\000\000\000\016\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0008\000\001\192(\000qp@\000\001@\000\000\000\000\000\000\001\000\132\000\000\001\002\000\016\000\000\b\000\000\000\b@\020\000`\000\000\000\000\001@\000\b\000\000\000\000\000\000\000\000\002\000\000\016\000\000\b\000\000\000\000\000\000\000\000\000 \000\002\000\128\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\016\b@\000\000\016 \001\000\000\000\128\000\000\000\132\001@\006\000\000\000\000\000\020\000\000\128\000\000\000\000\000\000\000\000 \000\001\000\000\000\128\000\000\000\000\000\000\000\000\002\000\000 \000\000 \000\000\000\000\000\128\000\000\000\000\000\000@\000\000\001\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000 \016\130\000\000!@\002\000\000\001\000\000\000A\b\002\128\"\000E\000\b\016\002A\128\128H \002\152\000\000\128\128\004@\b\160\001\002\000H0\016\t\004\000S\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002;J\001\022\138\134\252L|\128-\128\250\002\128\000\198@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\b\237(\004Z*\027\2411\242\000\182\003\232\n\000\003\025\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000D\000\130\000\016 \000\130\001\000\128\000\005 \000\001\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\144\000\000\000\000\005\000\004\000\000\000\000\128\000\000\000\000\000\000\b@>\128,\018\000\000>\004\b\001\002\000\024+,\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000@\000\000\000\004\000\000\000\000\000(\000\000\000\000\000\000\000\000\000\000\000\000\000@\001\244\001`\144\000\001\240 @\b\016\000\193Y`\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002@\000\000\000\000\016\000\016\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\224\000\007\000\160\001\197\193\000\000\005\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\142\210\128E\162\161\191\019\031 \011`>\128\160\0001\144\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\002\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000`@\004\000\000\001\001\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\b\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000@@\000\b\020\016\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\b\000\000\128\000\000\000\000 \000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006R\000@\128\000\148\019\023 \007p\006@\000\000 \128\000\000\000\000\000\000\000\000\004\000\000\000\000\001\000\002 A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\001@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000@\000\000\000\000\002\128\000\000\000\000\000\000\000\000\000\000\002\127J\131\022\154\166\252\206}\128\189\192\255\"\128\001\198@\001\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\0014\"\b\000@\129R\b\006\002A\0004\128\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000D\000\130\000\016 \004\130\001\000\144@\005 \016\001\000\000\001\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\0014\"\b\000@\129R\b\006\002A\0004\128\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000D\000\130\000\016 \004\130\001\000\144@\005 \016\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\136\001\004\000 @\t\004\002\001\000\000\n\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000'\244\1681i\170o\204\231\216\011\220\015\242(\000\028d\004\254\149\006-5M\249\156\251\001{\129\254E\000\003\140\128\017\000 \128\004\b\001 \128@$\016\001H\000\000@\000\002 \004\016\000\129\000$\016\b\004\130\000)\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\016\002\b\000@\128\018\012\004\002A\000\020\128\000\004\000\000\"\000A\000\b\016\002A\000\128H \002\144\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002 \004\016\000\129\000$\024\b\004\130\000)\000\000\b\000\000D\000\130\000\016 \004\130\001\000\144@\005 \000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000") and start = 15 and action = - ((32, "\000\000\153\210\000\000\164d\000\000\174\224\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\026.\000\000\174\224\000\000\000\000\000\000\000\000\000\000\025\020\000\000\174\224\000\000\153\210\000\000\000\240\000\000\0005\000\000\0038\000\001|\170\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000Z\000\000\002\018\000\000\000\231\000\000\000\000\000\000\001P\000\000\000\030\000\000\000\000\000\000\001\234\000\000\001p\000\000\000\254\000\000\000\000\000\000\000&\000\000\002\\\000\000\003b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\222\000\000\000\000\000\000\000\000\000\000\002n\000\001\184\252\000\001fb\000\001g\020\000\001g\198\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001~\000\000\000\000\000\000\000\000\000\000\239\024\000\000\003V\000\000\004\130\000\000\000\000\000\000\000\000\000\001\180\202\000\000\236r\000\000\t\006\000\000\000\000\000\000\t\006\000\001kX\000\000\001~\000\000\000\000\000\001\178\168\000\000\001~\000\000\234n\000\000\t\006\000\001\137Z\000\000\t\006\000\000\000\000\000\000\000\000\000\000\000\000\000\000$f\000\001kX\000\000\231\224\000\000\000\000\000\000\240\004\000\001\178\168\000\000\159\206\000\000\025\020\000\000\027\196\000\001k\240\000\000\025\020\000\001j\194\000\000\005L\000\001e\168\000\000\000\000\000\000\000\000\000\000\004\232\000\000\000\000\000\000\233 \000\000\1640\000\000\025\020\000\000\157\\\000\000\000\000\000\000\024\254\000\000\000\000\000\000\157\\\000\000\025\222\000\000\000\000\000\000\153^\000\000\000\000\000\000\000\226\000\000\000\000\000\000\000\000\000\000\005\194\000\000\024.\000\000\017\184\000\000\t\006\000\000%\138\000\000\005\158\000\001}0\000\000\000\000\000\000\000\000\000\000\t\006\000\000\000\000\000\000\025\020\000\000\000\000\000\000\001~\000\000\024.\000\000\018\220\000\000\t\006\000\000(\246\000\000\000\000\000\000\003\178\000\000\000\000\000\000\153^\000\000\000\000\000\000\000\000\000\000\b\n\000\000\025\020\000\000\000\000\000\000\001~\000\000\025\020\000\000\000\000\000\000\t\232\000\001\173B\000\000\t\006\000\001\154\236\000\001\173\200\000\001\165v\000\001\153\192\000\000\000\000\000\001\167V\000\001\178\168\000\000\000\000\000\001n\160\000\001\183\236\000\000\001~\000\000\234n\000\000\174\224\000\000\153\210\000\000\000\003\000\000\000\000\000\000\000\000\000\000\164d\000\000\025\020\000\000\000\003\000\000\003\196\000\000\006\024\000\000\006\202\000\001kX\000\001\179:\000\000\000\000\000\001kX\000\001\179:\000\000\000\000\000\001kX\000\001\181\156\000\000\241(\000\000\030\254\000\000\238`\000\000\231\224\000\000\n\238\000\000\000\000\000\000\000\b\000\000\0010\000\000\0040\000\000\000\000\000\000\006\206\000\000\000\000\000\000\000\000\000\000\n\252\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\128\000\000\026\156\000\001\181\156\000\000\242\244\000\001kX\000\000\243\244\000\000\006\176\000\000\239\240\000\000\000\000\000\000\000\000\000\000\244\244\000\001kX\000\000\245\244\000\000\246\244\000\000\000\000\000\001wP\000\001\178\168\000\000\000\000\000\000\003\234\000\000\0010\000\000\n\238\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\236\000\000\0120\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\186\130\000\000\247\030\000\000\t\006\000\000*\026\000\000\001~\000\000\238\212\000\000\t\006\000\000,b\000\000\242*\000\001\178\168\000\000\001~\000\000\001~\000\000\000\000\000\000\007\n\000\000\001~\000\000\006\166\000\000\t\006\000\000\"b\000\000\000\000\000\001kX\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\242\000\000\006\230\000\001kX\000\000\247\244\000\000\248\244\000\000\000\000\000\000\242*\000\000\249\244\000\001kX\000\000\250\244\000\000\251\244\000\000\000\000\000\000\242*\000\000\252\244\000\000\253\244\000\001kX\000\000\254\244\000\000\255\244\000\000\000\000\000\000\242*\000\001\000\244\000\001\001\244\000\000\233\012\000\000\243*\000\000\231\232\000\000\238`\000\000\234\014\000\000\n\238\000\000\000\000\000\000\000\000\000\000\000\000\000\000\240\242\000\000\244*\000\000\231\240\000\000\238`\000\000\235\016\000\000\236\018\000\000\237\020\000\001\002\244\000\000\007\174\000\001kX\000\001\003\244\000\001\004\244\000\000\000\000\000\000\242*\000\001\005\244\000\001\006\244\000\000\000\000\000\001\007\244\000\000\006@\000\000\001~\000\000\000\000\000\000\t\216\000\000\007.\000\000\t\006\000\000\"\246\000\000\000\000\000\000\001~\000\000\007b\000\000\t\006\000\000$\172\000\000\000\000\000\000\001\002\000\000\000\000\000\001\186\250\000\000\247F\000\000\t\006\000\000-\134\000\000\001~\000\000\239N\000\000\t\006\000\000.\170\000\000\003J\000\000\b*\000\000\b\140\000\000\0056\000\000\002\162\000\001kX\000\000\006\022\000\000\t.\000\001kX\000\001\b\244\000\001\t\244\000\000\000\000\000\000\242*\000\001\n\244\000\001\011\244\000\000\b\146\000\001kX\000\001\012\244\000\001\r\244\000\000\000\000\000\000\242*\000\001\014\244\000\001\015\244\000\000\tN\000\001kX\000\001\016\244\000\001\017\244\000\000\000\000\000\000\242*\000\001\018\244\000\001\019\244\000\000\b\198\000\001kX\000\001\020\244\000\001\021\244\000\000\000\000\000\000\242*\000\001\022\244\000\001\023\244\000\000\245*\000\001\178\168\000\000\003\198\000\001kX\000\000\011\166\000\000\011\204\000\001kX\000\001\024\244\000\001\025\244\000\000\000\000\000\000\242*\000\001\026\244\000\001\027\244\000\000\t\024\000\001kX\000\001\028\244\000\001\029\244\000\000\000\000\000\000\242*\000\001\030\244\000\001\031\244\000\000\014v\000\001kX\000\001 \244\000\001!\244\000\000\000\000\000\000\242*\000\001\"\244\000\001#\244\000\000\tj\000\001kX\000\001$\244\000\001%\244\000\000\000\000\000\000\242*\000\001&\244\000\001'\244\000\000\242*\000\001(\244\000\001)\244\000\000\000\000\000\000\242*\000\001*\244\000\001+\244\000\000\t\182\000\000\001\002\000\000\000\000\000\000 \000\000\243*\000\000\011\148\000\000\000\000\000\000#\140\000\000\243*\000\000\014V\000\000\000\000\000\001kX\000\000\001~\000\000\000\000\000\000\000\000\000\000\000\000\000\000\011~\000\000\000\000\000\001kX\000\000\000\000\000\000\024\222\000\001\184B\000\000\000\000\000\001kX\000\000\024\234\000\001kX\000\000'\"\000\000\000\000\000\000(F\000\000\000\000\000\000\026\222\000\000\012\162\000\000\000\000\000\000\n*\000\001kX\000\000\012\214\000\000\000\000\000\000\015\030\000\000\000\000\000\000\004\166\000\000\000\000\000\000\000\003\000\000\001:\000\000\000\000\000\000\000\000\000\000\000\000\000\000($\000\001kX\000\000%\220\000\001kX\000\000)H\000\000\011B\000\000\n\168\000\000\175\206\000\000\t\224\000\000\012X\000\000\006\202\000\000\012\220\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\134\000\000\020\134\000\000\164\n\000\000\025\020\000\000\174\198\000\000\229\192\000\000\000\000\000\000\n\016\000\000\012\230\000\000\012~\000\001kX\000\000\012\150\000\000\012\240\000\001}\222\000\000\r\150\000\000\r\154\000\000\r\162\000\001kX\000\000\012\202\000\000\000\000\000\000\000\000\000\000\026:\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\028\158\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\160\014\000\000 \206\000\000\n*\000\000\000*\000\000\b<\000\000\000\000\000\000\000\000\000\000\002\214\000\000\000\000\000\000\027\196\000\000\015\184\000\000\015\172\000\000\025\020\000\000\"\016\000\000\000\000\000\000\025\020\000\000\153\210\000\000\1640\000\000\025\020\000\000\236l\000\000\157\\\000\000\016b\000\001\165\198\000\001\173\200\000\000\000\000\000\001\176\002\000\000\174\224\000\000\153\210\000\000\153\210\000\000\000\000\000\000\000\000\000\000\000\000\000\000\164d\000\000\025\020\000\000\000\003\000\000\000\003\000\000\n*\000\000\003\000\000\000\b\180\000\000\000\000\000\000\015D\000\000\016\162\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\164d\000\000\025\020\000\000\000\003\000\000\027@\000\001~\144\000\000\165F\000\000\000\003\000\000\001\"\000\000\176\176\000\001\149\166\000\000\014\b\000\000\015\208\000\000\015p\000\001kX\000\000\014\156\000\000\015\208\000\001\138\b\000\000\014\160\000\000\016\128\000\000\016N\000\001kX\000\000\014\246\000\000\000\000\000\000\000\000\000\001\127<\000\001p\184\000\001p\184\000\000\000\000\000\000\b\180\000\000\000\000\000\000\017T\000\000\000\000\000\000\028\002\000\001kX\000\000\004\208\000\000\001\030\000\000\229\192\000\000\164Z\000\000\025\020\000\000\229\192\000\000\000\000\000\000\017\134\000\000\000\000\000\000\000\000\000\000\016R\000\000\017\198\000\000\000\000\000\000\000\000\000\000\229\192\000\000\229\192\000\000\b\180\000\000\017\148\000\000\000\000\000\000\017\134\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\024\000\001\127\238\000\000\015\226\000\000\018\024\000\000\017\148\000\001kX\000\000\015\222\000\000\000\000\000\000\000\000\000\000\229\192\000\000\000\000\000\000\000\000\000\000\228\176\000\000\026\138\000\000\001\210\000\000\014\148\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002D\000\000\031\200\000\001p\184\000\000\000\000\000\000\164Z\000\000\025\020\000\000\229\192\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\229\192\000\000\000\000\000\001\1682\000\001\128\160\000\000\017@\000\000\018\148\000\000\018\014\000\001kX\000\000\017\002\000\000\000\000\000\000\000\000\000\000\229\192\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\169>\000\000\229\192\000\001\186\244\000\000\230\208\000\000\160\014\000\000\005\158\000\000\019\004\000\000\229\192\000\000\000\000\000\000\"\214\000\000\019\n\000\000\000\000\000\000\030\210\000\000\000\000\000\001\129R\000\000\017t\000\000\019<\000\000\018\184\000\001kX\000\000\018\030\000\000\000\000\000\000\000\000\000\000\229\192\000\000\000\000\000\000\000\000\000\001\187\\\000\001kX\000\000\001\134\000\000\000\000\000\000\229\192\000\001\187\168\000\000\0038\000\000\000\000\000\000\000\000\000\000\019\226\000\000\000\000\000\000\028\216\000\000\000\000\000\001\127<\000\000\000\000\000\000\020$\000\000\000\000\000\000\031\004\000\001lr\000\000\000\000\000\000\000\000\000\000\000\000\000\001\187\238\000\000#b\000\000\000\000\000\000\028\216\000\000\000\000\000\000#\198\000\000\017B\000\000\b\180\000\000\018:\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\212\000\000\000\000\000\000\000\000\000\000\0206\000\000\000\000\000\000\229\192\000\000\000\000\000\000\000\000\000\000\000\000\000\000#\148\000\000\229\192\000\000$\184\000\000\000\000\000\000\000\000\000\000'\000\000\001\138\186\000\000\017\216\000\000\020\220\000\000\020V\000\001kX\000\000\018&\000\000\000\000\000\000\000\000\000\000\229\192\000\000\000\000\000\000\000\000\000\000*l\000\000\020x\000\001\139l\000\000\018\012\000\000\0212\000\000\020\226\000\001kX\000\000\018~\000\000\000\000\000\000\000\000\000\000\229\192\000\000\000\000\000\000\000\000\000\000+\144\000\000\229\192\000\000\020\248\000\001\140\030\000\000\018&\000\000\021\150\000\000\021z\000\001kX\000\000\018\162\000\000\000\000\000\000\000\000\000\000\229\192\000\000\000\000\000\000\000\000\000\000,\180\000\001d\164\000\000\018\252\000\000\0072\000\000\002\226\000\001\184\252\000\000\004\234\000\001kX\000\000!(\000\000\006\176\000\000\000\000\000\000\000\000\000\000!v\000\000\000\000\000\000\000\000\000\000\0072\000\000\022X\000\000\000\000\000\000\022\170\000\000\000\000\000\000\000\000\000\000\0190\000\000\0072\000\000\0072\000\000\019\178\000\000\000\003\000\000\164d\000\000\157\170\000\000\157\170\000\000\025\020\000\000\"\016\000\000\159\156\000\000\025\020\000\000\177\146\000\000\166X\000\000\167j\000\000\011\240\000\000\006\028\000\000\178t\000\000\029\128\000\000\158\004\000\000\179V\000\000\164d\000\000\025\020\000\000\020\134\000\000\029\128\000\000\020\134\000\000\1808\000\000\020\134\000\000\164d\000\000\025\020\000\000\154\228\000\000\164d\000\000\025\020\000\000\000\003\000\001m$\000\000\025\020\000\001lr\000\000\229\192\000\000#\198\000\000\000\003\000\000\164Z\000\000\025\020\000\000\161*\000\000\004\232\000\000\000\000\000\001m\214\000\000\156\214\000\000\156\214\000\000\159\230\000\001\184\252\000\000\005\158\000\001kX\000\000\000]\000\000\000\000\000\000\001\134\000\000\000\000\000\000\000\000\000\000\022\200\000\000\000\000\000\000\022\252\000\000\000\000\000\000\167\014\000\001\184\252\000\000\006\194\000\001kX\000\000%\184\000\000\000\000\000\000&\220\000\000\000\000\000\000\000\000\000\001m\214\000\000\019\178\000\000\023 \000\000\000\000\000\000\019\178\000\000\023\154\000\000\000\000\000\000\000\000\000\000\000\000\000\000\156\214\000\000\019\136\000\000\023\136\000\000\023\002\000\000\t\006\000\000):\000\000\000\000\000\000\003R\000\000\t\006\000\000*(\000\000\000\000\000\000\000\000\000\000\023\236\000\000\000\000\000\000\028\172\000\000\000\000\000\000\000\000\000\000\171\178\000\001\184\252\000\000\0072\000\001kX\000\000\b6\000\000\000\000\000\001\140\208\000\000\172\230\000\001\184\252\000\000\007\230\000\001kX\000\000\n~\000\000\n\166\000\000\024\002\000\000\000\000\000\000\024\014\000\000\000\000\000\000\024\028\000\000\000\000\000\001\166D\000\000\156\214\000\000\173\156\000\001\184\252\000\000\bV\000\001kX\000\000\011\162\000\000\000\000\000\001\140\208\000\000\228r\000\000\000\000\000\001\184\252\000\000\t\004\000\001kX\000\000\012\198\000\000\000\000\000\000\000]\000\000\024 \000\000\000\000\000\000\024V\000\000\000\000\000\000\000\000\000\000\000\000\000\001i*\000\000\000\000\000\000\000\000\000\000\001~\000\000\238`\000\000\004$\000\000\000\000\000\000\024&\000\000\181\026\000\001m$\000\000\025\020\000\001lr\000\000+0\000\000\181\252\000\000\019\188\000\000\0240\000\000\006\202\000\000\024z\000\000\000\000\000\000\000\000\000\000\020\134\000\000\020\134\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002F\000\000 \236\000\000\028\\\000\000\000\000\000\000\168L\000\000\169.\000\000\157\170\000\000\025\020\000\000\"\016\000\000\0005\000\000\005\022\000\000\r\150\000\000\000\000\000\000\023\194\000\000\027\196\000\000\228\178\000\000\024\132\000\000\027\196\000\000\0005\000\000\005\022\000\000\014\134\000\000\000\000\000\000\024\244\000\000\027\196\000\000\000\000\000\001\141d\000\000\n\174\000\000\157\\\000\000\b\180\000\000\bZ\000\001\184\166\000\000\000\000\000\001kX\000\001\129\230\000\001kX\000\001u\166\000\001\130\164\000\001kX\000\000\012\244\000\001kX\000\001\131b\000\000\000\000\000\000\015\136\000\000\018\170\000\000\t\n\000\000\027\196\000\001\142\"\000\000\000\000\000\000\025\020\000\000\027\196\000\001\142\224\000\000\027\196\000\001\143\158\000\001\144\\\000\000\018\128\000\000\018\234\000\001nj\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\145\026\000\000\027\196\000\001\145\216\000\000\000\023\000\000\0010\000\001vd\000\000\016\162\000\000\0010\000\001w<\000\000\000\000\000\001\146\150\000\000\n\174\000\000\000\000\000\001x\020\000\001\147T\000\000\000\000\000\001\148\018\000\001\148\208\000\000*\152\000\000\000\000\000\000$\228\000\000\000\000\000\000\025\136\000\000\000\000\000\000\025X\000\000\"\016\000\000\000\000\000\001oJ\000\000\159\156\000\000\000\000\000\000\030p\000\000\000\000\000\000\027\196\000\000)t\000\000\000\000\000\000\025\142\000\000\000\000\000\000\000\000\000\000\000\000\000\000\025\166\000\000\000\000\000\001i\194\000\000\000\000\000\000\006b\000\000\027\196\000\000+\150\000\000\000\000\000\000\170\016\000\000\170\242\000\001\149\166\000\000\158L\000\001kX\000\000\016\192\000\000\000\003\000\000\164Z\000\000\025\020\000\000\229\192\000\000\031\004\000\000\000\003\000\000\000\003\000\000\164d\000\000\025\020\000\000\020\134\000\000\029\128\000\000\025\154\000\000\000\000\000\000\020\134\000\000\003j\000\000\b\252\000\000\162@\000\001m$\000\000\025\020\000\001lr\000\000\"p\000\000\162@\000\000\182\222\000\001m$\000\000\025\020\000\001lr\000\000\000\000\000\000\000\000\000\000\020\134\000\000\020$\000\000\025\226\000\000\006\202\000\000\026.\000\000\000\000\000\000\000\000\000\000\025\252\000\000\000\000\000\000\020\134\000\000\004\142\000\000\026\000\000\000\000\000\000\000\b\180\000\000\000\000\000\000\024N\000\000\000\003\000\000\026\150\000\000\000\000\000\000,T\000\000\183\192\000\000\020T\000\000\026\132\000\000\006\202\000\000\026\242\000\000\000\000\000\000\000\000\000\000\020\134\000\000\030\164\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001m$\000\000\025\020\000\001lr\000\000-x\000\000\229\192\000\000\000\000\000\000\021\170\000\000\031\200\000\000\0140\000\000\000\003\000\000\000\000\000\000\000\000\000\000.\156\000\000\184\162\000\001m$\000\000\025\020\000\001lr\000\000/\192\000\0000\228\000\000\185\132\000\001m$\000\000\025\020\000\001lr\000\0002\b\000\0003,\000\000\000\000\000\000\000\000\000\000\022\206\000\000 \236\000\000\186f\000\001m$\000\000\025\020\000\001lr\000\000\000\000\000\000\000\000\000\000\000\003\000\000\174\224\000\000\000\003\000\000\000\000\000\000\000\000\000\000\187H\000\001m$\000\000\025\020\000\001lr\000\0004P\000\0005t\000\000\188*\000\001m$\000\000\025\020\000\001lr\000\0006\152\000\0007\188\000\000\189\012\000\001m$\000\000\025\020\000\001lr\000\0008\224\000\000:\004\000\000\189\238\000\001m$\000\000\025\020\000\001lr\000\000;(\000\000\148\000\000\191\178\000\001m$\000\000\025\020\000\001lr\000\000?\184\000\000@\220\000\000\192\148\000\001m$\000\000\025\020\000\001lr\000\000B\000\000\000C$\000\000\193v\000\001m$\000\000\025\020\000\001lr\000\000DH\000\000El\000\000\194X\000\001m$\000\000\025\020\000\001lr\000\000F\144\000\000G\180\000\000\195:\000\001m$\000\000\025\020\000\001lr\000\000H\216\000\000I\252\000\000\196\028\000\001m$\000\000\025\020\000\001lr\000\000K \000\000LD\000\000\196\254\000\001m$\000\000\025\020\000\001lr\000\000Mh\000\000N\140\000\000\197\224\000\001m$\000\000\025\020\000\001lr\000\000O\176\000\000P\212\000\000\198\194\000\001m$\000\000\025\020\000\001lr\000\000Q\248\000\000S\028\000\000\199\164\000\001m$\000\000\025\020\000\001lr\000\000T@\000\000Ud\000\000\200\134\000\001m$\000\000\025\020\000\001lr\000\000V\136\000\000W\172\000\000\201h\000\001m$\000\000\025\020\000\001lr\000\000X\208\000\000Y\244\000\000\202J\000\001m$\000\000\025\020\000\001lr\000\000[\024\000\000\\<\000\000\203,\000\001m$\000\000\025\020\000\001lr\000\000]`\000\000^\132\000\000\204\014\000\001m$\000\000\025\020\000\001lr\000\000_\168\000\000`\204\000\000\204\240\000\001m$\000\000\025\020\000\001lr\000\000a\240\000\000c\020\000\000\205\210\000\000\020n\000\000\026\178\000\000\006\202\000\000\026\254\000\000\000\000\000\000\000\000\000\000\020\134\000\000\"\016\000\001m$\000\000\025\020\000\001lr\000\000d8\000\000e\\\000\000\206\180\000\001m$\000\000\025\020\000\001lr\000\000f\128\000\000g\164\000\000\025\020\000\001x\196\000\000\160\014\000\000\230\146\000\000\027\002\000\000\161*\000\000\000\003\000\000\000\000\000\000\000\000\000\000\n\134\000\000\018\158\000\000\000\000\000\000\026d\000\000\181\026\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\161*\000\001\184\252\000\000\020\132\000\000\026X\000\001kX\000\000\000]\000\000\000\003\000\000\000\000\000\000\026\134\000\000\000\003\000\000\000\000\000\000\tz\000\001kX\000\000\0044\000\000\000\003\000\000\000\000\000\000\026\144\000\000\000\003\000\000\000\000\000\000\020,\000\000\000\003\000\000\000\000\000\000\026\150\000\000\000\003\000\000\000\000\000\000\000\000\000\000\026\152\000\000\000\003\000\000\000\000\000\000\156\202\000\001kX\000\000\006|\000\000\000\003\000\000\000\000\000\000\026\160\000\000\000\003\000\000\000\000\000\000\026\162\000\000\000\003\000\000\000\000\000\000-\216\000\000\000\003\000\000\000\000\000\001\150X\000\000\020\172\000\000\027\014\000\000\026\136\000\001kX\000\000\020\"\000\000\000\000\000\000\000\000\000\000\229\192\000\000\000\000\000\000\000\000\000\000.\252\000\000\229\192\000\0000 \000\000\0038\000\000\000\000\000\000\0038\000\001jr\000\001\184\252\000\000\n(\000\001kX\000\000\007\160\000\000\000\003\000\000\000\000\000\000\026\190\000\000\000\003\000\000\000\000\000\000\020\160\000\000\000\003\000\000\000\000\000\000\026\194\000\000\000\003\000\000\000\000\000\000\000\000\000\000\026\228\000\000\000\003\000\000\000\000\000\000\000\000\000\001\155\132\000\001\155\132\000\000\000\000\000\000\000\000\000\000\000\000\000\000h\200\000\000\000\003\000\000\027\142\000\000\000\000\000\000\000\003\000\000\027\182\000\000\000\000\000\000\018\228\000\000\r\140\000\000\162@\000\000\027\208\000\000\000\000\000\001p\018\000\000\163R\000\000\000\000\000\000\162@\000\000\027\208\000\000\000\000\000\000\162@\000\000\027\234\000\000\000\000\000\000\000\000\000\000\020\134\000\000\005\178\000\000\r\180\000\000\162@\000\000\027\246\000\000\006\214\000\000\207\150\000\001m$\000\000\025\020\000\001lr\000\000i\236\000\000k\016\000\000\162@\000\000\028\000\000\000\007\250\000\000\208x\000\001m$\000\000\025\020\000\001lr\000\000l4\000\000mX\000\000\162@\000\000\028\006\000\000\t\030\000\000\209Z\000\001m$\000\000\025\020\000\001lr\000\000n|\000\000o\160\000\000\031\174\000\000\000\003\000\000\028\016\000\000\nB\000\000\210<\000\001m$\000\000\025\020\000\001lr\000\000p\196\000\000q\232\000\000\000\003\000\000\028\020\000\000\011f\000\000\211\030\000\001m$\000\000\025\020\000\001lr\000\000s\012\000\000t0\000\000\000\003\000\000\028\026\000\000\012\138\000\000\212\000\000\001m$\000\000\025\020\000\001lr\000\000uT\000\000vx\000\000\019\190\000\000\014\176\000\000\162@\000\000\028B\000\000\r\174\000\000\212\226\000\001m$\000\000\025\020\000\001lr\000\000w\156\000\000x\192\000\000\162@\000\000\028D\000\000\014\210\000\000\213\196\000\001m$\000\000\025\020\000\001lr\000\000y\228\000\000{\b\000\000\162@\000\000\028H\000\000\015\246\000\000\214\166\000\001m$\000\000\025\020\000\001lr\000\000|,\000\000}P\000\000\017\026\000\000\215\136\000\001m$\000\000\025\020\000\001lr\000\000~t\000\000\127\152\000\000\018>\000\000\023\242\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\028X\000\000\000\000\000\000\162@\000\000\028x\000\000\000\000\000\000\162@\000\000\028x\000\000\000\000\000\000\000\000\000\000\003\128\000\000\000\000\000\000\000\000\000\000\000\003\000\000\027\194\000\000\000\003\000\000\027\204\000\000\000\000\000\000\000\000\000\0001D\000\000\000\003\000\000\000\000\000\000\003\b\000\000\000\003\000\000\000\000\000\001\149\166\000\000\000\000\000\000\000\000\000\001\132\022\000\000\028\164\000\000\000\000\000\000\171\212\000\001m$\000\000\025\020\000\001lr\000\000'2\000\000\216j\000\001m$\000\000\025\020\000\001lr\000\000\006\246\000\001y^\000\000\025\020\000\0001\208\000\000\025\020\000\001p\184\000\000\229\192\000\000%\220\000\000\217L\000\001m$\000\000\025\020\000\001lr\000\000\027\n\000\001qR\000\000\229\192\000\000)H\000\000\218.\000\001m$\000\000\025\020\000\001lr\000\000\175h\000\001q\160\000\000\229\192\000\0003\140\000\000\219\016\000\001m$\000\000\025\020\000\001lr\000\000\229\006\000\001r\142\000\000 (\000\000\219\242\000\001m$\000\000\025\020\000\001lr\000\000\232\244\000\001r\220\000\000\220\212\000\001m$\000\000\025\020\000\001lr\000\000\003\208\000\000\221\182\000\001m$\000\000\025\020\000\001lr\000\000\233|\000\001s\202\000\001p\018\000\000\222\152\000\001m$\000\000\025\020\000\001lr\000\000\233\164\000\001t\024\000\000\000\000\000\000\000\000\000\000\000\000\000\000\011\022\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\027\244\000\000\000\000\000\001p\018\000\000\012z\000\000\000\000\000\000\172\230\000\001m$\000\000\025\020\000\001lr\000\000\029\004\000\000\t\226\000\000\000\000\000\000\000\000\000\000\028\012\000\000\000\000\000\001p\018\000\000\011\022\000\000\000\000\000\000\173\248\000\000\000\000\000\001m$\000\000\025\020\000\001lr\000\000&\240\000\000\r\206\000\000\000\000\000\000\028\236\000\000\000\000\000\001p\018\000\000\014\154\000\000\000\000\000\000\011\240\000\000\028d\000\000\000\000\000\000\029\128\000\000 X\000\000\b\180\000\000\000\000\000\000\028d\000\000\000\000\000\000\014\206\000\000\020\164\000\000\015\140\000\000\000\000\000\000\000\000\000\000\029\006\000\000\000\000\000\000\001\204\000\000#4\000\000\160\162\000\000\000\000\000\000#4\000\001m$\000\000\025\020\000\001lr\000\000\128\188\000\000\129\224\000\000\000\000\000\000\000\000\000\000\028\234\000\000\000\003\000\000\000\000\000\000\000\003\000\000\000\000\000\000\000\000\000\000\000\000\000\000\131\004\000\000\0298\000\000\223z\000\001m$\000\000\025\020\000\001lr\000\000\132(\000\000\224\\\000\001m$\000\000\025\020\000\001lr\000\000\133L\000\000\134p\000\000\135\148\000\000\225>\000\001m$\000\000\025\020\000\001lr\000\000\136\184\000\000\137\220\000\000\000\000\000\000\028x\000\000\000\000\000\000 \234\000\000\226 \000\000\021D\000\000\028\234\000\000\006\202\000\000\029.\000\000\000\000\000\000\000\000\000\000\020\134\000\000$X\000\001m$\000\000\025\020\000\001lr\000\000\139\000\000\000\140$\000\001m$\000\000\025\020\000\001lr\000\000\011\152\000\000\000\000\000\001qR\000\000\000\000\000\000\019b\000\000\029F\000\000\000\000\000\000%|\000\001m$\000\000\025\020\000\001lr\000\000\003\208\000\000,\022\000\000\000\000\000\000.\156\000\000\029J\000\000\000\000\000\001m$\000\000\025\020\000\001lr\000\000\027@\000\001qR\000\000\021T\000\000\021`\000\000\000\000\000\000\000\000\000\000\028\198\000\000\000\000\000\001m$\000\000\025\020\000\001lr\000\000&\240\000\000\015\190\000\000\000\000\000\000\029\\\000\000\000\000\000\001p\018\000\000\016\022\000\000\000\000\000\001m$\000\000\025\020\000\001lr\000\000\029\004\000\000\011.\000\000\000\000\000\000\000\000\000\000\028\136\000\000\000\000\000\001p\018\000\000\r^\000\000\000\000\000\001m$\000\000\025\020\000\001lr\000\000\027\136\000\000\000\000\000\000\027\196\000\000+\188\000\000\000\000\000\000\027\196\000\000\155\226\000\000\000\000\000\000\027\196\000\000,\222\000\000\000\000\000\001qR\000\000\000\000\000\000\027\196\000\000,\224\000\000\000\000\000\000\027\196\000\000\1560\000\000\000\000\000\000\027\196\000\000-\222\000\000\000\000\000\000\006\168\000\000\000\003\000\000\000\000\000\000\025\020\000\000\"\016\000\000\007\204\000\000\000\003\000\000\000\000\000\000\n*\000\000\005\244\000\000\b<\000\000\b<\000\000\001~\000\000\029r\000\000\000\000\000\000\005\022\000\000\"\016\000\001\167\196\000\000\027\196\000\0002n\000\000\"\016\000\001\168v\000\000\028\204\000\000\"\016\000\001\169(\000\000\028\252\000\000\000\003\000\000\000\000\000\000\005\022\000\000\000\000\000\000\028\214\000\000\"\016\000\001\169\218\000\000\000\000\000\000\030\174\000\000\025\020\000\000\"\020\000\000\000\000\000\000\004\222\000\000\029\140\000\000\000\000\000\000\029\140\000\000\029h\000\001wr\000\000\014\026\000\000\000\000\000\000\000\000\000\000\029Z\000\000\028\200\000\001\184\252\000\000\n\158\000\001kX\000\000\"\202\000\000&6\000\000\000\015\000\000\021\158\000\000\024\234\000\000\000\000\000\000(~\000\000\029\164\000\000\000\000\000\000*d\000\000\000\000\000\000\000\000\000\000\238`\000\001\132\222\000\001\1566\000\000\029\202\000\000\238`\000\000\238`\000\001\132\222\000\001\156\232\000\001\132\222\000\001\157\154\000\000\000\000\000\001\132\192\000\001\158L\000\001\149\022\000\001\185`\000\000\001~\000\000\235p\000\000\t\006\000\000/\206\000\000\238\022\000\001\188\202\000\000\248F\000\000\t\006\000\0000\242\000\000\001~\000\000\239\160\000\000\t\006\000\0002\022\000\000\b\162\000\000\014\190\000\001wr\000\000\029\156\000\000\238`\000\001\159\006\000\001\133\154\000\000\029\204\000\000\238`\000\001\159\192\000\001\134X\000\000\004>\000\000\029\146\000\000\000\003\000\000\000\000\000\000\000\000\000\000\025\020\000\001u\018\000\000\000\000\000\001x\196\000\001\155\132\000\000\000\000\000\000\000\000\000\000\030\024\000\000\000\000\000\000\019\178\000\000\030\026\000\000\000\000\000\000\000\000\000\000\000\000\000\001m$\000\000\025\020\000\001lr\000\000\141H\000\000\142l\000\000\000\000\000\001m$\000\000\025\020\000\001lr\000\000'2\000\000\r^\000\000\000\000\000\000\000\000\000\000\029L\000\000\000\000\000\001p\018\000\000\014\154\000\000\000\000\000\000\000\000\000\000\157\170\000\000\025\020\000\000\"\016\000\000\011N\000\000\000\000\000\000\027\196\000\000.\002\000\000\000\000\000\000\015\022\000\000\000\000\000\000\022\014\000\000\000\000\000\000\030\030\000\000\000\000\000\000\030R\000\001lr\000\000\143\144\000\000\000\000\000\000\030X\000\000\227\002\000\001m$\000\000\025\020\000\001lr\000\000\144\180\000\000\145\216\000\000\164\006\000\000\157\170\000\000\025\020\000\000\"\016\000\001\1760\000\000\000\000\000\000\025\020\000\000\"\016\000\001\1760\000\000\000\000\000\000\030\206\000\000\n*\000\000\003\000\000\000\001~\000\001\179\138\000\000\027\196\000\001\170\140\000\001\155\132\000\000\000\000\000\000\005\244\000\000\b<\000\000\b<\000\000\005\022\000\001\155\132\000\001\182\024\000\000\005\244\000\000\b<\000\000\005\022\000\001\155\132\000\001\182\024\000\000\000\000\000\000\000\000\000\000\005\022\000\001\155\132\000\000\000\000\000\000\174\224\000\000\153\210\000\000\229\192\000\000\153\002\000\000\000\003\000\000\000\000\000\000\174\224\000\000\153\210\000\000\030\004\000\000\029\160\000\000\t\006\000\001\176\226\000\000\230F\000\000\000\000\000\000\000\240\000\000\0005\000\000\0038\000\000\029\150\000\001\184\252\000\000\017\000\000\001kX\000\001\160r\000\000\021P\000\000\029\208\000\000\030\140\000\001\180L\000\000\000\000\000\001\155\132\000\000\000\000\000\001\161\n\000\000\030\174\000\000\025\020\000\000\"\020\000\001\171$\000\000&\170\000\000\020\214\000\000\002J\000\000\020J\000\000\028\\\000\000\025\020\000\001\155\132\000\000\000\000\000\000\025\020\000\001\155\132\000\000\000\000\000\001kX\000\000\000\000\000\000\004\014\000\000\026\026\000\000\026\026\000\000\024\214\000\000\rH\000\000\000\000\000\000\016\024\000\000\153^\000\000\000\000\000\000\021\202\000\000\000\000\000\000\153^\000\000\000\000\000\000\030B\000\000\029\218\000\000\160\248\000\000\025\020\000\000\030\184\000\001kX\000\000\020n\000\000\000\000\000\000$l\000\000\012(\000\000\016\184\000\000\022l\000\000\000\000\000\000\022\142\000\000\000\000\000\000\030F\000\000\029\180\000\001kX\000\000\165F\000\000\000\000\000\000\025\020\000\000\027 \000\000\022\176\000\000\000\000\000\000\023:\000\000\000\000\000\000\030L\000\000\029\196\000\001\184\252\000\000\158\134\000\000\000\000\000\000\025\020\000\000\160\248\000\000\030|\000\000\006\022\000\000\000*\000\000\000\003\000\000\016t\000\000\160\248\000\001kX\000\000\022&\000\000\n\238\000\000\000\000\000\001kX\000\000\023\230\000\000\0242\000\000\000\000\000\000\000\000\000\001\161\162\000\000\000\000\000\000\000\003\000\000\0218\000\000\160\248\000\001\162^\000\000\165F\000\000\000\000\000\000\025\020\000\001kX\000\000\022\026\000\001kX\000\000\028\\\000\000\158\134\000\000\000\000\000\000\029\244\000\000\000\000\000\000\158\134\000\000\000\000\000\000\000\000\000\000$l\000\000\000\000\000\001\1760\000\001\182J\000\000\024\214\000\000\rH\000\000\016\024\000\000\030t\000\000\030\024\000\000\160\248\000\001\1760\000\001\182J\000\000\000\000\000\000\000\000\000\000\024\214\000\000\rH\000\000\016\024\000\000\030\136\000\001z\004\000\000\156\214\000\000\154V\000\000\025\020\000\000\174\198\000\000\153\244\000\000\025z\000\000\012(\000\000\022\220\000\000\000\000\000\000\030\140\000\000\017\b\000\000\000\003\000\000\000\000\000\000\0304\000\000\000\003\000\000\000\000\000\000\165F\000\000\000\000\000\000\020\242\000\000\023\144\000\000\000\000\000\000\023\140\000\000\000\000\000\000\030\162\000\000\030\014\000\001kX\000\000\163R\000\000\030\182\000\000\017^\000\000\000\003\000\000\000\000\000\000\030N\000\000\000\003\000\000\000\000\000\000\025\194\000\000\017\002\000\000\023\212\000\000\000\000\000\000\030\196\000\001z\182\000\001\185\182\000\000\020\132\000\000\030b\000\001kX\000\000\022\178\000\000\000\003\000\000\000\000\000\000\030\132\000\000\000\003\000\000\000\000\000\000\000\000\000\000\165F\000\000\000\000\000\000\028\n\000\000\026\166\000\000\000\000\000\000\023\178\000\000\000\000\000\000\030\242\000\000\030d\000\001\184\252\000\000\000\000\000\000\030\252\000\001{h\000\001\186*\000\000\020\132\000\000\030\128\000\001kX\000\000\023\016\000\000\000\003\000\000\000\000\000\000\030\154\000\000\000\003\000\000\000\000\000\000\000\000\000\000\025\020\000\000\000\003\000\000\165F\000\000\000\000\000\000\025|\000\000\025\020\000\000\154V\000\000\154V\000\001hx\000\000\174\224\000\000\025\020\000\001u\018\000\001x\196\000\000\015\158\000\000\000\000\000\000\018~\000\000\000*\000\000\000\003\000\000\022(\000\000\154V\000\001kX\000\000\023J\000\000\b\180\000\000\000\000\000\000\025\020\000\001z\004\000\001z\004\000\000\154V\000\000\015B\000\000\154V\000\000\000\000\000\000\157\242\000\000\159\006\000\000\000\000\000\001\150\236\000\000\000\000\000\000\000\000\000\001\151\168\000\000\000\000\000\000\000\000\000\001\152d\000\000\000\003\000\000\022\180\000\000\154V\000\001\153 \000\001u\018\000\001x\196\000\000\015\158\000\000\000\000\000\000\004v\000\000\000\000\000\001o\144\000\001\154T\000\000\238`\000\000\031\024\000\001o\144\000\001\181\156\000\000 ,\000\000\0310\000\001o\144\000\000\238`\000\000\031<\000\001o\144\000\000\023\192\000\000&\160\000\001\162\242\000\001\164&\000\000\000\000\000\001\180\224\000\000\000\000\000\000\000\000\000\000\031\138\000\000\000\000\000\000\027@\000\000\031b\000\000\000\000\000\000\165F\000\000\000\000\000\000\154V\000\000\027@\000\000\165F\000\000\000\000\000\000\025\020\000\001kX\000\000\165F\000\000\000\000\000\000\031\000\000\000\000\000\000\000\165F\000\000\000\000\000\000\000\000\000\000\153\244\000\000\000\000\000\001\177\026\000\001o\144\000\000\031\014\000\000\154V\000\001\177\186\000\001z\004\000\000\000\000\000\001\155\132\000\001\182\252\000\000\024\214\000\000\rH\000\000\016\024\000\000\031z\000\001z\004\000\001\155\132\000\001\182\252\000\000\000\000\000\000\000\000\000\000\000\000\000\001\190\002\000\000\164d\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\181f\000\000\000\000\000\001\155\132\000\000\000\000\000\000\157\170\000\000\025\020\000\000\"\016\000\001\1760\000\000\000\000\000\001\1834\000\000\025\000\000\000\157\\\000\000\031~\000\001xF\000\001\173\200\000\000\000\000\000\001\176\002\000\001\1834\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001i*\000\001\190\002\000\000\000\000\000\000\000\000\000\000\000\000\000\001\181f\000\000\031\198\000\000\000\000\000\000\031\212\000\000\000\000\000\001i*\000\001\190\002\000\000\000\000\000\000\000\000\000\000\031\234\000\000\000\000\000\000\000\000\000\000\031\222\000\000\161\182\000\000\"\020\000\000\"\020\000\001\164\198\000\000&\170\000\000\025\020\000\000\000\000\000\000\025\020\000\000\000\000\000\001\155\132\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\166\216\000\000&\170\000\000\025\020\000\000\000\000\000\000\025\020\000\000\000\000\000\000\020\014\000\001\165\198\000\001\173\200\000\000\000\000\000\001\176\002\000\000\000\000\000\000\031\226\000\000\161\182\000\000\"\020\000\001\155\132\000\000\000\000\000\000\031V\000\000\000\000\000\001\135\020\000\000.\004\000\000\000\000\000\000\229\192\000\000\000\000\000\000\000\000\000\001\188\180\000\000\031<\000\001\135\150\000\000\022\004\000\000\031\214\000\000\031B\000\001kX\000\000\021\146\000\000\000\000\000\000\000\000\000\000\229\192\000\000\000\000\000\000\000\000\000\001\188\242\000\000\">\000\000\000\000\000\001kX\000\000\022\182\000\000\000\000\000\000\153\244\000\000\031v\000\000\000\000\000\001m$\000\000\025\020\000\001lr\000\000\146\252\000\000&\160\000\000\000\000\000\000\022\206\000\000'\196\000\000\020\134\000\000(\232\000\001m$\000\000\025\020\000\001lr\000\000\148 \000\000\149D\000\000\031^\000\000\227\228\000\000\022\156\000\000\031\242\000\000\006\202\000\000 H\000\000\000\000\000\000\000\000\000\000\020\134\000\000*\012\000\001m$\000\000\025\020\000\001lr\000\000\150h\000\000\151\140\000\000 v\000\001lr\000\000\152\176\000\000\000\000\000\000 J\000\000\000\000\000\000\028\132\000\001\184\252\000\000\012X\000\000\006L\000\000\025\020\000\001v$\000\000\000\000\000\000\000\000\000\000 \250\000\001\130d\000\000\000\000\000\000\000\000\000\000\031\194\000\000\000\000\000\000\018\154\000\001kX\000\000\024D\000\000\025h\000\001kX\000\001,\244\000\001-\244\000\000\000\000\000\000\242*\000\001.\244\000\001/\244\000\000 ,\000\001kX\000\0010\244\000\0011\244\000\000\000\000\000\000\242*\000\0012\244\000\0013\244\000\001\181\156\000\000\014\026\000\000 ^\000\000\000\000\000\000\014\026\000\000 `\000\000\000\000\000\000\000\000\000\001\163\146\000\001\164\198\000\001\174`\000\000\"\020\000\000\000\000\000\000\000\000\000\000\000\000\000\001\175\000\000\000\000\000\000\001\164\198\000\000\014\026\000\000 d\000\000\000\000\000\000\014\026\000\000 f\000\000\000\000\000\000\000\000\000\000\000\000\000\001\171\188\000\000\161\238\000\000\155\198\000\000\014\026\000\000 j\000\000\000\000\000\000\014\026\000\000 p\000\000\000\000\000\000\000\000\000\000\000\000\000\000\014\026\000\000 z\000\000\000\000\000\000\014\026\000\000 \136\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\165v\000\000\000\000\000\001~\168\000\000\000\000\000\000 \128\000\000\161\182\000\000%\134\000\001~\168\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\022.\000\001\173B\000\001\173\218\000\001\165v\000\000\000\000\000\001~\168\000\000\000\000\000\000 \144\000\000\161\182\000\000%\134\000\001~\168\000\000\000\000\000\000\233 \000\000\030\174\000\000\n*\000\000\000*\000\000\0010\000\001\155\132\000\000\000\000\000\000\000*\000\000\0010\000\001\155\132\000\000\000\000\000\000\":\000\000\n*\000\000\003\000\000\000\001~\000\000\172\230\000\000\027\196\000\001~\168\000\000\000\000\000\000\005\244\000\000\012\204\000\000\028H\000\000\0010\000\001\155\132\000\000\000\000\000\000\b<\000\000\031\216\000\000\027\196\000\001\175j\000\001~\168\000\001\1904\000\000\000*\000\000\b<\000\000\031\222\000\000\027\196\000\001\175j\000\001~\168\000\001\1904\000\000\000\000\000\000\000\000\000\000\b<\000\000\031\204\000\000\005L\000\000\000\000\000\000 \196\000\000\000\000\000\000\016~\000\000\000\003\000\001\186>\000\000\005L\000\000\000\000\000\001i*\000\000\000\000\000\000\027\196\000\001kX\000\000\000\000\000\001i*\000\000\000\000\000\000\024\240\000\000\027\196\000\001\178$\000\000\000\000\000\000\000\000\000\000\024\240\000\000\000\000\000\000\000\000\000\000\030\174\000\000\025\020\000\000\"\020\000\000\166X\000\000\026\026\000\000\024\214\000\000\rH\000\000\016\024\000\000 \134\000\000\031\244\000\001o\144\000\001~\168\000\001\190l\000\000\024\214\000\000\rH\000\000\016\024\000\000 \148\000\000 \012\000\001o\144\000\001~\168\000\001\190l\000\000\000\000\000\000\000\000\000\000\000\000\000\000\233 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001i*\000\000\000\000\000\000\159\206\000\000\025\020\000\000\027\196\000\001\178\188\000\001kX\000\000\000\000\000\001\1834\000\000\000\000\000\001\190\158\000\000\025\000\000\000\157\\\000\000 \172\000\000\022\146\000\000 (\000\001\165v\000\000\000\000\000\001~\168\000\001\190\158\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000/\002\000\000\000\000\000\000\019H\000\001kX\000\000\025|\000\000\025\180\000\001kX\000\0014\244\000\0015\244\000\000\000\000\000\000\242*\000\0016\244\000\0017\244\000\000 \212\000\001kX\000\0018\244\000\0019\244\000\000\000\000\000\000\242*\000\001:\244\000\001;\244\000\000\025\192\000\001kX\000\001<\244\000\001=\244\000\000\000\000\000\000\242*\000\001>\244\000\001?\244\000\000 \224\000\001kX\000\001@\244\000\001A\244\000\000\000\000\000\000\242*\000\001B\244\000\001C\244\000\000\246*\000\001\178\168\000\000\019N\000\001kX\000\000\026,\000\000\026\020\000\001kX\000\001D\244\000\001E\244\000\000\000\000\000\000\242*\000\001F\244\000\001G\244\000\000 \248\000\001kX\000\001H\244\000\001I\244\000\000\000\000\000\000\242*\000\001J\244\000\001K\244\000\000\026\024\000\001kX\000\001L\244\000\001M\244\000\000\000\000\000\000\242*\000\001N\244\000\001O\244\000\000 \252\000\001kX\000\001P\244\000\001Q\244\000\000\000\000\000\000\242*\000\001R\244\000\001S\244\000\000(\252\000\000\243*\000\000\006\130\000\001kX\000\001T\244\000\001U\244\000\000\000\000\000\000\242*\000\001V\244\000\001W\244\000\000!\000\000\001kX\000\001X\244\000\001Y\244\000\000\000\000\000\000\242*\000\001Z\244\000\001[\244\000\0003@\000\000\243*\000\000\241\244\000\001kX\000\001\\\244\000\001]\244\000\000\000\000\000\000\242*\000\001^\244\000\001_\244\000\000!\n\000\001kX\000\001`\244\000\001a\244\000\000\000\000\000\000\242*\000\001b\244\000\001c\244\000\001{\252\000\000\000\000\000\000\000\000\000\001\136.\000\000*x\000\000\000\000\000\000\016\000\000\0003:\000\000\000\000\000\001\189\206\000\000\249F\000\000\t\006\000\0004^\000\000\001~\000\000\250F\000\000\t\006\000\0004\158\000\000\r2\000\000\001~\000\000\235p\000\001{\252\000\001\155\132\000\000\000\000\000\000!L\000\000\000\000\000\000\000\003\000\000 \144\000\000\000\003\000\000 \184\000\000\000\000\000\000 \214\000\000\000\000\000\000\000\000\000\000\229F\000\000 \218\000\000\000\000\000\000\000\000\000\000%\022\000\001|\170\000\000!\142\000\000\000\000\000\000\000\000\000\000\000\000\000\000\023\252\000\000\019\190\000\001\136\212\000\000!\148\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \234\000\000\000\000\000\000&\170\000\000\000\000\000\000!\002\000\000\000\000\000\001kX\000\000\000\000\000\000\015\222\000\000\000\000\000\000\000\003\000\000!\024\000\000\000\000\000\000\000\000\000\000\0010\000\000\000\000\000\000\011\b\000\000\000\000\000\000\000\003\000\000\000\000\000\000\t\174\000\000\000\000\000\000\"\016\000\000\000\000\000\000\001\n\000\000\000\000\000\000\027\196\000\000\000\000\000\000+\150\000\000\000\000\000\000\018\170\000\000\000\000\000\000!\026\000\000\000\000\000\000\229\192\000\000\">\000\000\000\000\000\000\000\000\000\000\021\146\000\000!*\000\000\000\000\000\000\000\000\000\000!\026\000\000\022\006\000\000\154\228\000\000\001~\000\001\172\\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001}.\000\000\001~\000\001\172\216\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\137X\000\000\000\000\000\000\000\000\000\000!\236\000\000\000\000\000\001\151\158\000\000\000\000\000\000\023:\000\000!\240\000\000\000\000\000\000!\244\000\000\000\000\000\000\155\246\000\000\155\246\000\001\158\242\000\001\158\242\000\000\000\000\000\000\000\000\000\001\155\132\000\001\158\242\000\000\000\000\000\000\000\000\000\000\000\000\000\001\155\132\000\001\158\242\000\000!J\000\000\000\000\000\000!T\000\000\000\000"), (16, "\004]\000\006\004]\001f\004]\003\146\003\150\003\154\004]\003\158\003j\004]\003\170\004]\007\025\bf\004]\bj\007\025\004]\004]\004]\000\242\004]\004]\004]\001\234\007\025\007\025\007\025\bn\004]\t^\tb\019b\tf\004]\t\209\004]\tr\001b\br\000\242\tv\004\197\004]\004]\004]\t\162\t\166\004]\t\170\t\182\t\194\t\198\t\206\r\146\003\242\004]\004]\003\138\000\242\022\026\t\190\r\178\004]\004]\004]\r\182\r\186\r\198\r\210\r\234\001r\004]\nJ\004]\004]\004]\004]\004]\004]\004]\004]\004]\r\250\004]\nb\nf\000\242\r\206\r\222\004]\rN\004]\004]\004]\017\026\001^\014\006\014\030\017\226\n\134\n\138\004]\017\246\004]\004]\017\"\004]\004]\004]\004]\r\226\001v\r\230\001\134\017&\027\214\004]\019\241\004]\004]\004\n\004]\004]\004]\004]\004]\004]\004]\n\142\r\238\004]\004]\004]\015\250\007\166\004]\004]\017\250\019\241\004]\004]\004]\004]\020!\002\206\020!\t\217\020!\006\006\020!\020!\020!\000\n\020!\020!\020!\020!\001\230\020!\020!\002\210\n\161\020!\020!\020!\n\161\020!\020!\020!\020!\002a\020!\002a\020!\020!\020!\020!\020!\b\"\020!\020!\020!\001\130\017z\020!\002a\020!\001n\020!\020!\020!\020!\020!\020!\000\242\020!\001\242\020!\000\242\020!\t\202\020!\020!\020!\003\226\001~\020!\020!\020!\020!\020!\020!\020!\020!\011\214\020!\004\210\020!\020!\020!\020!\020!\020!\020!\020!\020!\020!\020!\001\233\020!\020!\020!\020!\020!\020!\020!\n\213\020!\020!\020!.\235\004\218\004~\001\246\020!\020!\020!\020!\n:\020!\020!\006\n\020!\020!\020!\020!\020!\020!\020!\020!\000\242\020!\020!\001b\020!\020!\004\197\020!\020!\020!\020!\020!\020!\020!\020!\020!\020!\020!\020!\020!\020!\020!\020!\001b\004\197\020!\020!\020!\020!\001\233\001\233\001\233\007\166\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\b\194\004\242\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\015\182\001\233\001\233\001\233\001\233\001\233\001\142\001\233\001\233\001\233\004F\001\233\001\233\rN\001\233\b\206\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\027\154\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\004\210\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\t\006\001\233\001\233\001\233\001\186\004\218\005\021\007\025\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\n\246\016\026\001\233!n\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\015\029\007\025\015\029\001\198\015\029\r\129\015\029\015\029\015\029\t\025\015\029\015\029\015\029\015\029\000\242\015\029\015\029\t\225\006>\015\029\015\029\015\029\025j\015\029\015\029\015\029\015\029\001\006\015\029\001\190\015\029\015\029\015\029\015\029\015\029\025\154\015\029\015\029\015\029\005\021\t\025\015\029\t\025\015\029\002\002\015\029\015\029\015\029\015\029\015\029\015\029\000\242\015\029\001\146\015\029\t\n\015\029\003&\015\029\015\029\015\029\r>\025j\015\029\015\029\015\029\015\029\015\029\015\029\015\029\015\029\004F\015\029\004\210\015\029\015\029\015\029\015\029\015\029\015\029\015\029\015\029\015\029\015\029\015\029\004z\015\029\015\029\015\029\015\029\015\029\015\029\015\029\025\162\015\029\015\029\015\029\003\174\004\218(\022\001\230\015\029\015\029\015\029\015\029\011\161\015\029\015\029\r\129\015\029\015\029\015\029\015\029\015\029\018\026\015\029\018\130\014\218\018\138\015\029\003\250\015\029\015\029\025n\015\029\015\029\015\029\015\029\015\029\015\029\015\029\015\029\015\029\015\029\015\029\015\029\015\029\015\029\015\029\015\029\n\201\015\029\015\029\015\029\015\029\015\029\005E\003\226\005E\000\242\005E\003\242\005E\005E\005E%\026\005E\005E\005E\005E\003*\005E\005E\025n\006\210\005E\005E\005E\000\242\005E\005E\005E\005E\000\242\005E\015\218\005E\005E\005E\005E\005E\b\022\005E\005E\005E\005v\018\226\005E\004\166\005E\007\025\005E\005E\005E\005E\005E\005E\014.\005E\n\137\005E\000\242\005E\n\137\005E\005E\005E\003v\022:\005E\005E\005E\005E\005E\005E\005E\005E\003\254\005E\004\210\005E\005E\005E\005E\005E\005E\005E\005E\005E\005E\005E\rN\018\n\005E\005E\018\018\005E\005E\018z\rN\005E\005E\005E\0142\004\218\014\178\000\242\005E\005E\005E\005E\ru\005E\005E\b\026\005E\005E\005E\005E\005E\018\026\005E\018\130%\030\018\138\005E\016B\005E\005E\002\006\005E\005E\005E\005E\005E\005E\005E\005E\005E\005E\005E\005E\005E\005E\005E\005E\n\137\005E\005E\005E\005E\005E\0055\007\190\0055\002\134\0055\000\242\0055\0055\0055\002\150\0055\0055\0055\0055\002\218\0055\0055\004\210\rF\0055\0055\0055\030R\0055\0055\0055\0055\003\242\0055\029\246\0055\0055\0055\0055\0055\003\n\0055\0055\0055\007\025\007\025\0055\004\218\0055\002\238\0055\0055\0055\0055\0055\0055\029\254\0055\005\014\0055\007\025\0055\007\025\0055\0055\0055\004F\ru\0055\0055\0055\0055\0055\0055\0055\0055\006F\0055\n\141\0055\0055\0055\0055\0055\0055\0055\0055\0055\0055\0055\007\025\018\n\0055\0055\018\018\0055\0055\018z\0042\0055\0055\0055(z\005\210\000\242\000\242\0055\0055\0055\0055\003\178\0055\0055\014J\0055\0055\0055\0055\0055\018\026\0055\018\130\000\242\018\138\0055\005\138\0055\0055\005\218\0055\0055\0055\0055\0055\0055\0055\0055\0055\0055\0055\0055\0055\0055\0055\0055\017z\0055\0055\0055\0055\0055\014\185\n\141\014\185\004\002\014\185-.\014\185\014\185\014\185\000\242\014\185\014\185\014\185\014\185\r\194\014\185\014\185\004\210\001\141\014\185\014\185\014\185\000\242\014\185\014\185\014\185\014\185\007\173\014\185\017z\014\185\014\185\014\185\014\185\014\185\004J\014\185\014\185\014\185\001\141\"V\014\185\004\218\014\185\000\242\014\185\014\185\014\185\014\185\014\185\014\185\001\202\014\185\004\222\014\185\005\018\014\185\023\202\014\185\014\185\014\185\029\186\022\130\014\185\014\185\014\185\014\185\014\185\014\185\014\185\014\185\017\186\014\185\004\210\014\185\014\185\014\185\014\185\014\185\014\185\014\185\014\185\014\185\014\185\014\185\001\206\014\185\014\185\014\185\014\185\014\185\014\185\014\185\rN\014\185\014\185\014\185\004F\004\218\001\210\r:\014\185\014\185\014\185\014\185\004\230\014\185\014\185\014~\014\185\014\185\014\185\014\185\014\185\014\185\014\185\014\185\001\141\014\185\014\185\003\182\014\185\014\185\b2\014\185\014\185\014\185\014\185\014\185\014\185\014\185\014\185\014\185\014\185\014\185\014\185\014\185\014\185\014\185\014\185\015\218\001\141\014\185\014\185\014\185\014\185\014\201\004F\014\201\001\141\014\201\018\226\014\201\014\201\014\201\005\170\014\201\014\201\014\201\014\201\003:\014\201\014\201\004\210\015\n\014\201\014\201\014\201\000\242\014\201\014\201\014\201\014\201\005\226\014\201\017z\014\201\014\201\014\201\014\201\014\201\003B\014\201\014\201\014\201\b\250\b\254\014\201\004\218\014\201\000\242\014\201\014\201\014\201\014\201\014\201\014\201\015\018\014\201\005\246\014\201 \162\014\201\023\238\014\201\014\201\014\201\029\206\023\006\014\201\014\201\014\201\014\201\014\201\014\201\014\201\014\201\005*\014\201\004\210\014\201\014\201\014\201\014\201\014\201\014\201\014\201\014\201\014\201\014\201\014\201\029\226\014\201\014\201\014\201\014\201\014\201\014\201\014\201\rN\014\201\014\201\014\201\000\242\004\218\012B\003\154\014\201\014\201\014\201\014\201\r\141\014\201\014\201\015&\014\201\014\201\014\201\014\201\014\201\014\201\014\201\014\201\007\133\014\201\014\201\005F\014\201\014\201\006j\014\201\014\201\014\201\014\201\014\201\014\201\014\201\014\201\014\201\014\201\014\201\014\201\014\201\014\201\014\201\014\201\002\026\001\242\014\201\014\201\014\201\014\201\014\193\t\130\014\193\006\170\014\193\000\242\014\193\014\193\014\193\016\142\014\193\014\193\014\193\014\193\004\210\014\193\014\193\004F\015^\014\193\014\193\014\193\rN\014\193\014\193\014\193\014\193\003\242\014\193\016\150\014\193\014\193\014\193\014\193\014\193\018\030\014\193\014\193\014\193\004\218\002\030\014\193\001\246\014\193\006\254\014\193\014\193\014\193\014\193\014\193\014\193\025J\014\193\025V\014\193\006J\014\193\024\018\014\193\014\193\014\193\002\"\r\141\014\193\014\193\014\193\014\193\014\193\014\193\014\193\014\193\006\138\014\193\004\210\014\193\014\193\014\193\014\193\014\193\014\193\014\193\014\193\014\193\014\193\014\193\007>\014\193\014\193\014\193\014\193\014\193\014\193\014\193\004\146\014\193\014\193\014\193\016\202\004\218\005\222\025\206\014\193\014\193\014\193\014\193\015~\014\193\014\193\001\230\014\193\014\193\014\193\014\193\014\193\014\193\014\193\014\193\017\014\014\193\014\193\005\238\014\193\014\193\004Z\014\193\014\193\014\193\014\193\014\193\014\193\014\193\014\193\014\193\014\193\014\193\014\193\014\193\014\193\014\193\014\193\002a\002a\014\193\014\193\014\193\014\193\014\173\004F\014\173\bR\014\173\bb\014\173\014\173\014\173\003R\014\173\014\173\014\173\014\173\004\210\014\173\014\173\004F\0222\014\173\014\173\014\173\000\n\014\173\014\173\014\173\014\173\b\138\014\173'\134\014\173\014\173\014\173\014\173\014\173.\219\014\173\014\173\014\173\004\218\002a\014\173\002a\014\173\017\"\014\173\014\173\014\173\014\173\014\173\014\173\006\197\014\173\025\230\014\173\002a\014\173\024:\014\173\014\173\014\173\001\230\016\130\014\173\014\173\014\173\014\173\014\173\014\173\014\173\014\173\006\193\014\173\004\210\014\173\014\173\014\173\014\173\014\173\014\173\014\173\014\173\014\173\014\173\014\173\027\006\014\173\014\173\014\173\014\173\014\173\014\173\014\173\001\230\014\173\014\173\014\173\000\242\004\218\016\190\004\002\014\173\014\173\014\173\014\173\022\254\014\173\014\173\025\206\014\173\014\173\014\173\014\173\014\173\014\173\014\173\014\173\000\242\014\173\014\173\025\206\014\173\014\173\007\254\014\173\014\173\014\173\014\173\014\173\014\173\014\173\014\173\014\173\014\173\014\173\014\173\014\173\014\173\014\173\014\173\003\234\ne\014\173\014\173\014\173\014\173\014\181\004\014\014\181\bF\014\181\003\242\014\181\014\181\014\181\031\250\014\181\014\181\014\181\014\181\003\182\014\181\014\181\b2\030\130\014\181\014\181\014\181\rN\014\181\014\181\014\181\014\181\004F\014\181\bJ\014\181\014\181\014\181\014\181\014\181\007\186\014\181\014\181\014\181\005\138\017z\014\181\rN\014\181\007\142\014\181\014\181\014\181\014\181\014\181\014\181\015f\014\181\006\218\014\181\000\242\014\181\024^\014\181\014\181\014\181\025\230.\203\014\181\014\181\014\181\014\181\014\181\014\181\014\181\014\181\003\254\014\181\025\230\014\181\014\181\014\181\014\181\014\181\014\181\014\181\014\181\014\181\014\181\014\181\026\202\014\181\014\181\014\181\014\181\014\181\014\181\014\181\027\030\014\181\014\181\014\181\000\242\006\222\000\242\007\025\014\181\014\181\014\181\014\181\0296\014\181\014\181\004\002\014\181\014\181\014\181\014\181\014\181\014\181\014\181\014\181\031\254\014\181\014\181\028\138\014\181\014\181\r\190\014\181\014\181\014\181\014\181\014\181\014\181\014\181\014\181\014\181\014\181\014\181\014\181\014\181\014\181\014\181\014\181\025\206\007\025\014\181\014\181\014\181\014\181\014\177\007\190\014\177\015\218\014\177\007\025\014\177\014\177\014\177\003\226\014\177\014\177\014\177\014\177\018\226\014\177\014\177\028\234\000\242\014\177\014\177\014\177\rN\014\177\014\177\014\177\014\177\b\154\014\177\bV\014\177\014\177\014\177\014\177\014\177\007\246\014\177\014\177\014\177\b\250*Z\014\177\000\242\014\177\004F\014\177\014\177\014\177\014\177\014\177\014\177\015\134\014\177\b\182\014\177*j\014\177\024\130\014\177\014\177\014\177\b\006\b^\014\177\014\177\014\177\014\177\014\177\014\177\014\177\014\177\007\025\014\177\000\242\014\177\014\177\014\177\014\177\014\177\014\177\014\177\014\177\014\177\014\177\014\177*\166\014\177\014\177\014\177\014\177\014\177\014\177\014\177\025\230\014\177\014\177\014\177\000\242!\170\000\242\b\142\014\177\014\177\014\177\014\177\r\153\014\177\014\177\025\206\014\177\014\177\014\177\014\177\014\177\014\177\014\177\014\177\026\234\014\177\014\177\000\242\014\177\014\177\b\146\014\177\014\177\014\177\014\177\014\177\014\177\014\177\014\177\014\177\014\177\014\177\014\177\014\177\014\177\014\177\014\177\b\250\b\254\014\177\014\177\014\177\014\177\014\189\r\165\014\189\020U\014\189\000\242\014\189\014\189\014\189\016F\014\189\014\189\014\189\014\189\016\178\014\189\014\189\020U\025\206\014\189\014\189\014\189\rN\014\189\014\189\014\189\014\189\007\190\014\189\b\158\014\189\014\189\014\189\014\189\014\189\023~\014\189\014\189\014\189\027>\b\166\014\189\b\186\014\189\b\170\014\189\014\189\014\189\014\189\014\189\014\189\023\150\014\189\023\162\014\189\023\190\014\189\024\174\014\189\014\189\014\189\025\230\r\153\014\189\014\189\014\189\014\189\014\189\014\189\014\189\014\189\023\226\014\189\024\006\014\189\014\189\014\189\014\189\014\189\014\189\014\189\014\189\014\189\014\189\014\189\031\202\014\189\014\189\014\189\014\189\014\189\014\189\014\189\029N\014\189\014\189\014\189\t\214\030j\012\194\005\138\014\189\014\189\014\189\014\189\007\158\014\189\014\189\b\245\014\189\014\189\014\189\014\189\014\189\014\189\014\189\014\189\025\230\014\189\014\189\025\206\014\189\014\189\b\174\014\189\014\189\014\189\014\189\014\189\014\189\014\189\014\189\014\189\014\189\014\189\014\189\014\189\014\189\014\189\014\189\t\230\027R\014\189\014\189\014\189\014\189\014\205\007\030\014\205\018\246\014\205\030n\014\205\014\205\014\205\004}\014\205\014\205\014\205\014\205\016B\014\205\014\205\004\210\n\141\014\205\014\205\014\205\n\141\014\205\014\205\014\205\014\205\t\242\014\205\n\006\014\205\014\205\014\205\014\205\014\205\024\162\014\205\014\205\014\205\n\002\000\242\014\205\004\218\014\205\b\214\014\205\014\205\014\205\014\205\014\205\014\205\024\198\014\205\024\234\014\205 \014\014\205\024\210\014\205\014\205\014\205\b\014\021\186\014\205\014\205\014\205\014\205\014\205\014\205\014\205\014\205\b\226\014\205\025\230\014\205\014\205\014\205\014\205\014\205\014\205\014\205\014\205\014\205\014\205\014\205\000\242\014\205\014\205\014\205\014\205\014\205\014\205\014\205\004F\014\205\014\205\014\205\031\226\003\154\016\194\003\154\014\205\014\205\014\205\014\205\r\194\014\205\014\205\031.\014\205\014\205\014\205\014\205\014\205\014\205\014\205\014\205\r\225\014\205\014\205\025\206\014\205\014\205\t\018\014\205\014\205\014\205\014\205\014\205\014\205\014\205\014\205\014\205\014\205\014\205\014\205\014\205\014\205\014\205\014\205$\198\029\n\014\205\014\205\014\205\014\205\014\197\t\130\014\197\t\022\014\197\002V\014\197\014\197\014\197\n\194\014\197\014\197\014\197\014\197\003\182\014\197\014\197\b2\025\206\014\197\014\197\014\197\tN\014\197\014\197\014\197\014\197\007\190\014\197\t\138\014\197\014\197\014\197\014\197\014\197\t\218\014\197\014\197\014\197\029\030\0071\014\197\n\178\014\197\n\198\014\197\014\197\014\197\014\197\014\197\014\197\002\234\014\197\021\186\014\197\000\242\014\197\024\246\014\197\014\197\014\197\001\230\t\222\014\197\014\197\014\197\014\197\014\197\014\197\014\197\014\197\002\129\014\197\025\230\014\197\014\197\014\197\014\197\014\197\014\197\014\197\014\197\014\197\014\197\014\197!\178\014\197\014\197\014\197\014\197\014\197\014\197\014\197\t\142\014\197\014\197\014\197.\171\003\242\0071!\246\014\197\014\197\014\197\014\197\t\234\014\197\014\197\t>\014\197\014\197\014\197\014\197\014\197\014\197\014\197\014\197\025\230\014\197\014\197\016B\014\197\014\197\t\246\014\197\014\197\014\197\014\197\014\197\014\197\014\197\014\197\014\197\014\197\014\197\014\197\014\197\014\197\014\197\014\197\t\146!\254\014\197\014\197\014\197\014\197\015\005\"b\015\005\002\250\015\005\t\001\015\005\015\005\015\005\011F\015\005\015\005\015\005\015\005\004\210\015\005\015\005\007\025\n^\015\005\015\005\015\005\000\242\015\005\015\005\015\005\015\005\t\250\015\005*\194\015\005\015\005\015\005\015\005\015\005\017\"\015\005\015\005\015\005\004\218\012>\015\005\007\025\015\005\007\129\015\005\015\005\015\005\015\005\015\005\015\005*\218\015\005\n&\015\005\000\242\015\005\025\018\015\005\015\005\015\005\001\230\017\222\015\005\015\005\015\005\015\005\015\005\015\005\015\005\015\005\0116\015\005\011J\015\005\015\005\015\005\015\005\015\005\015\005\015\005\015\005\015\005\015\005\015\005\nz\015\005\015\005\015\005\015\005\015\005\015\005\015\005\004\002\015\005\015\005\015\005\011\166#R\011\186\019\201\015\005\015\005\015\005\015\005!*\015\005\015\005\nR\015\005\015\005\015\005\015\005\015\005\015\005\015\005\015\005\003\182\015\005\015\005\b2\015\005\015\005\n\170\015\005\015\005\015\005\015\005\015\005\015\005\015\005\015\005\015\005\015\005\015\005\015\005\015\005\015\005\015\005\015\005\nR#\154\015\005\015\005\015\005\015\005\0051\012\154\0051\012\174\0051\011\182\0051\0051\0051\012\170\0051\0051\0051\0051\003\182\0051\0051\b2\012F\0051\0051\0051\n]\0051\0051\0051\0051\012\206\0051\012\226\0051\0051\0051\0051\0051\n\182\0051\0051\0051\007\025\r\006\0051\r\026\0051\n\186\0051\0051\0051\0051\0051\0051\000\242\0051\012\222\0051\000\242\0051\019\201\0051\0051\0051\002v\002\226\0051\0051\0051\0051\0051\0051\0051\0051\r\022\0051\004\210\0051\0051\0051\0051\0051\0051\0051\0051\0051\0051\0051\003\242\018\n\0051\0051\018\018\0051\0051\018z\016\246\0051\0051\0051\011:\004\218\000\242\019\197\0051\0051\0051\0051\011>\0051\0051\001\246\0051\0051\0051\0051\0051\018\026\0051\018\130\000\242\018\138\0051\011\130\0051\0051\011\146\0051\0051\0051\0051\0051\0051\0051\0051\0051\0051\0051\0051\0051\0051\0051\0051\001\246\0051\0051\0051\0051\0051\014\157\r6\014\157\rz\014\157\016\242\014\157\014\157\014\157\ni\014\157\014\157\014\157\014\157\004\210\014\157\014\157\004\210(\166\014\157\014\157\014\157$\146\014\157\014\157\014\157\014\157\r\130\014\157\031\150\014\157\014\157\014\157\014\157\014\157\011\170\014\157\014\157\014\157\004\218\rN\014\157\004\218\014\157\011\174\014\157\014\157\014\157\014\157\014\157\014\157\023z\014\157\016\246\014\157\t\138\014\157\019\197\014\157\014\157\014\157\n\169\003\022\014\157\014\157\014\157\014\157\014\157\014\157\014\157\014\157\014\194\014\157\014\214\014\157\014\157\014\157\014\157\014\157\014\157\014\157\014\157\014\157\014\157\014\157\011\242\018\n\014\157\014\157\018\018\014\157\014\157\018z\001\230\014\157\014\157\014\157\015\226.f\015\242\001\246\014\157\014\157\014\157\014\157,\006\014\157\014\157,\154\014\157\014\157\014\157\014\157\014\157\018\026\014\157\018\130\022\198\018\138\014\157\012\n\014\157\014\157\t\142\014\157\014\157\014\157\014\157\014\157\014\157\014\157\014\157\014\157\014\157\014\157\014\157\014\157\014\157\014\157\014\157':\014\157\014\157\014\157\014\157\014\157\002\149\r\142\002\149\018V\002\149\018f\003\150\003\154\002\149!\230\003j\002\149\018R\002\149\024\158\bf\002\149\000\242\t\138\002\149\002\149\002\149!r\002\149\002\149\002\149\001\234\018\166\018j\018\182\bn\002\149\002\149\002\149\002\149\027\130\002\149\018r\002\149\r\221\021r\br\021\130\tv\012Z\002\149\002\149\002\149\002\149\002\149\002\149\014\194\t\182\014\246\001\190\000\242\002\149#r\002\149\002\149\003\138\003v\022R\t\190\r\178\002\149\002\149\002\149\r\182\r\186\r\198\022\182\023\178\022\202\002\149\nJ\002\149\002\149\002\149\002\149\002\149\002\149\002\149\002\149\002\149\012f\018\n\nb\nf\018\018\r\206\r\222\018z\rN\002\149\002\149\002\149\012\158#z'\218\014\030\002\149\n\134\n\138\002\149\012\162\002\149\002\149\b\237\002\149\002\149\002\149\002\149\r\226\023\186\r\230\018\130\012\198\024*\002\149\023\030\002\149\002\149\028\226\002\149\002\149\002\149\002\149\002\149\002\149\002\149\n\142\r\238\002\149\002\149\002\149\015\250\007\166\002\149\002\149\012\210\003\154\002\149\002\149\002\149\002\149\014\241\028J\014\241\028Z\014\241\rN\003\150\003\154\014\241'\162\003j\014\241\014\241\014\241\030\150\bf\014\241\r\190\005\001\014\241\014\241\014\241\011\142\014\241\014\241\014\241\001\234\"\154\014\241\012\214\bn\014\241\014\241\014\241\014\241\012\254\014\241\014\241\014\241!\190\001\006\br\001\190\tv\r\n\014\241\014\241\014\241\014\241\014\241\014\241\r\197\t\182\t\142\001\190\000\242\014\241\r\201\014\241\014\241\003\138\017\"\n\193\t\190\r\178\014\241\014\241\014\241\r\182\r\186\r\198 \022\014\241\001\230\014\241\nJ\014\241\014\241\014\241\014\241\014\241\014\241\014\241\014\241\014\241\"n\014\241\nb\nf\014\241\r\206\r\222\014\241\002\130\014\241\014\241\014\241'\146\001\006'\166\001\190\014\241\n\134\n\138\014\241\r\014\014\241\014\241\rn\014\241\014\241\014\241\014\241\r\226\014\241\r\230\014\241\"\002\014\241\014\241)\218\014\241\014\241\000\242\014\241\014\241\014\241\014\241\014\241\014\241\014\241\n\142\r\238\014\241\014\241\014\241\015\250\007\166\014\241\014\241!\194!\250\014\241\014\241\014\241\014\241\014\237$\158\014\237\rv\014\237\t\t\003\150\003\154\014\237'\202\003j\014\237\014\237\014\237\"&\bf\014\237\"\182\014f\014\237\014\237\014\237\t\005\014\237\014\237\014\237\001\234(\"\014\237(2\bn\014\237\014\237\014\237\014\237\017\"\014\237\014\237\014\237\011\213\"v\br\rN\tv\014n\014\237\014\237\014\237\014\237\014\237\014\237#F\t\182\000\242\001\190\000\242\014\237\".\014\237\014\237\003\138\b\237\014\162\t\190\r\178\014\237\014\237\014\237\r\182\r\186\r\198$\254\014\237\0071\014\237\nJ\014\237\014\237\014\237\014\237\014\237\014\237\014\237\014\237\014\237$\170\014\237\nb\nf\014\237\r\206\r\222\014\237#\218\014\237\014\237\014\237\nu#~\003V\000\242\014\237\n\134\n\138\014\237\017\"\014\237\014\237\011\209\014\237\014\237\014\237\014\237\r\226\014\237\r\230\014\237$\n\014\237\014\237\tN\014\237\014\237\014\174\014\237\014\237\014\237\014\237\014\237\014\237\014\237\n\142\r\238\014\237\014\237\014\237\015\250\007\166\014\237\014\237$:#v\014\237\014\237\014\237\014\237\002\245\014\198\002\245\b\241\002\245\020]\003\150\003\154\002\245\014\202\003j\002\245\018R\002\245#\186\bf\002\245\rA\014\238\002\245\002\245\002\245\011\201\002\245\002\245\002\245\001\234\003\242\018j\0156\bn\002\245\002\245\002\245\002\245\015>\002\245\018r\002\245\011\197\"v\br\015F\tv\015\146\002\245\002\245\002\245\002\245\002\245\002\245\007\025\t\182\003\154\001\190\r=\002\245\003\242\002\245\002\245\003\138\000\242(\174\t\190\r\178\002\245\002\245\002\245\r\182\r\186\r\198\015\154\023\178\015\198\002\245\nJ\002\245\002\245\002\245\002\245\002\245\002\245\002\245\002\245\002\245\015\230\002\245\nb\nf\015\238\r\206\r\222\002\245%R\002\245\002\245\002\245\000\242\018\142\000\242\t\130\002\245\n\134\n\138\002\245\016N\002\245\002\245\000\242\002\245\002\245\002\245\002\245\r\226\023^\r\230\023j\007\025\rA\002\245\016Z\002\245\002\245.b\002\245\002\245\002\245\002\245\002\245\002\245\002\245\n\142\r\238\002\245\002\245\002\245\015\250\007\166\002\245\002\245\019\233\007\025\002\245\002\245\002\245\002\245\007\025\007\025\007\025\007\025\007\025\007\025\007\025\007\025\007\025\007\025\r=\007\025\007\202\007\025\007\025\019\233\007\025\007\025\007\025\007\025\007\025\007\025\007\025\007\025\007\025\007\025\007\025\007\025\007\025\007\025\016r\007\025\007\025\016B\007\025\000\242\007\025\007\025\007\025\000\242\007\025\007\025\007\025\007\025\007\025\000\242\016\218\007\025\007\025\007\025\007\025\007\025\007\025\007\025\007\025\007\025\000\242\007\025\007\025\007\025\007\025\007\025\007\025\007\025\007\025\007\025\000\242\007\025\007\025\007\025\007\025\007\025,\014\007\025\007\025\007\025\007\025\007\025\017f\007\025\017n\017\154\007\025\007\025\007\025\007\025\007\025\007\025(\178\007\025\007\025\007\025\007\025\017\170\007\025\007\025\007\025\007\025\007\025\007\025\007\025\007\025\007\025\007\025\007\025\007\025\019\237\007\025\007\025\007\025*\242\007\025\007\025\007\025\007\025\007\025\007\025\000\242\000\242\007\025\018\014\007\025\007\218\007\025\002\178\007\025,\018\019\237\007\025\007\025\007\025\007\025,R\002a\007\025\007\025\007\025\007\025!\158\007\025\007\025\000\169\007\025\000\169\000\169\000\169\000\169\000\169\000\169\000\169\000\169\007\025\000\169\000\242\000\169\000\169\018Z\000\169\000\169\000\169,\162\018b\000\169\000\169\000\n\000\169\000\169\000\169\000\169\018n\000\169\018~\000\169\000\169,\166\000\169,\230\000\169\000\169\000\169\004F\000\169\000\169\000\169\002a\000\169#>$f\000\169\000\169\000\169\000\169\000\169\000\169\000\169\000\169\000\169\002a\002a\000\169\000\169\bf\004\002\000\169\000\169\000\169\000\242\000\169\000\169\000\169\000\169\000\169\000\169\018\150\000\169\000\169\000\169\000\169\004F\n\222\000\169\b\194#\178\000\169\004F\000\169\000\169\000\169\000\169$\002\000\169\000\169\000\169\b\198\b\202\n\226\002\190\018\170\000\169\000\169\000\169\000\169\000\169\000\169\000\169\000\169\000\169\0046\b\206\003\226\000\169\r\169\001\161\000\169\020i\000\169\003\186\003\198\000\226\018\178\021v\nJ\000\169\003\210\"\"\021~\004F\021\206\004F\000\169\000\169\000\169\000\169\001\161\021\238\000\169\000\169\000\169\000\006\022\018\000\169\n}\003\146\003\150\003\154\003\214\003\158\003j\n\134\003\170\"*\022&\bf\001\n\bj\000\242\022F\n\149\003v\022^\022n\n\149\n}\001\234\022\142\022\154\022\186\t\186\001\018\016&\016*\001\030\tf\001\"\022\190\011\205\tr\n\142\br\023\018\tv\023*\031\234\001&\r\169\017\198\017\202\n}\t\170\t\182\t\194\t\198\017\206\r\146\029b\0016\n}\003\138\023:\023f\t\190\r\178\n}\n}\000\242\r\182\r\186\r\198\r\210\r\234\002v\001\161\nJ\n}\n}\001:\001>\001B\001F\001J\023r\002z\r\250\r\169\nb\nf\001N\r\206\r\222\001\234\023\134\n\149\023\158\001R\015\218\001\161\014\006\014\030\017\226\n\134\n\138#\254\017\246\001\161\001V\018\226\023\170\n}\t\014\023\198\r\226\001Z\r\230\001\161\n\133\016R\023\234\001\246\n\133\n}\024\014\015\218\0246\003\138\001\150\011\142\024Z$\006\n\142\r\238\024~\001\154\018\226\025\174\007\166\001\162\001\166\017\250%z\001\170\000\006\001\174\001\178\001\249\003\146\003\150\003\154\024\170\003\158\003j\024\206\003\170\011\197\024\242\bf\001\n\bj\015\218\025F\029f\016\"\016^\029r\n\177\001\249\001\234\019\221\n\177\018\226\t\186\001\018\016&\016*\001\030\tf\001\"\025R\025^\tr\019\221\br\b\133\tv\025z\016.\001&\025\130\017\198\017\202\001\249\t\170\t\182\t\194\t\198\017\206\r\146\025\182\0016\001\249\003\138\tU\n\133\t\190\r\178\001\249\001\249\000\242\r\182\r\186\r\198\r\210\r\234\026\222\019\221\nJ\001\249\001\249\001:\001>\001B\001F\001J\011\250\n.\r\250\025\206\nb\nf\001N\r\206\r\222\014\194\027\018\014\246\027F\001R\b\133\027^\014\006\014\030\017\226\n\134\n\138\0182\017\246\002^\001V\b\214\027\146\001\249\n\177\019\221\r\226\001Z\r\230\019\221*^\027\202\b\133\b\218\b\222\001\249\027\234\028:\028N\028V\001\150\011\238\000\242\003\182\n\142\r\238\b2\001\154\b\226\025\174\007\166\001\162\001\166\017\250\028\158\001\170\028\198\001\174\001\178\002\217\028\242\002\217(n\002\217\029\018\003\150\003\154\002\217\029B\003j\002\217\tU\002\217\029\238\bf\002\217\030\018\030\030\002\217\002\217\002\217\0302\002\217\002\217\002\217\001\234\030V\030b\n\022\bn\002\217\002\217\002\217\002\217\030v\002\217\030z\002\217\025\230\011\158\br\030\166\tv\011j\002\217\002\217\002\217\002\217\002\217\002\217\011\218\t\182\030\198\r\202\004\129\002\217\011\226\002\217\002\217\003\138\0316\015\218\t\190\r\178\002\217\002\217\002\217\r\182\r\186\r\198\r\181\004\129\018\226\002\217\nJ\002\217\002\217\002\217\002\217\002\217\002\217\002\217\002\217\002\217\031F\018\n\nb\nf\018\018\r\206\r\222\018z\031Z\002\217\002\217\002\217\031\134\031\146\031\214 \030\002\217\n\134\n\138\002\217 &\002\217\002\217 6\002\217\002\217\002\217\002\217\r\226\018\026\r\230\018\130\030\234\018\138\002\217 \254\002\217\002\217!\002\002\217\002\217\002\217\002\217\002\217\002\217\002\217\n\142\r\238\002\217\002\217\002\217\015\250\007\166\002\217\002\217!\"\017\134\002\217\002\217\002\217\002\217\0121!:\0121!>\0121!\206!\210\"\n\0121\"\014\"6\0121\002a\0121\001!\002a\0121\":\"R\0121\0121\0121\"\202\0121\0121\0121\017z\002a\002a z\"\250\0121\0121\0121\0121\001!\0121\"\254\0121\000\n#\"\000\242#N\002a\011\154\0121\0121\0121\0121\0121\0121#^\019\221#\134#\138\000\n\0121\002a\0121\0121\001!\019\221!\222#\150#\166\0121\0121\0121\012\018\001!#\194\r\209\002a\002a\0121\001!\0121\0121\0121\0121\0121\0121\0121\0121\0121#\210\018\n\001!\002a\018\018\000\242#\230\018z$\018\0121\0121\0121$\022$\"\019\221$2\0121$F\017\138\0121%.\0121\0121\002a\0121\0121\0121\0121\004F\018\026\000\242\018\130%>\018\138\0121\001!\0121\0121%J\0121\0121\0121\0121\0121\0121\0121\002^\001!\0121\0121\0121%r\019\221\0121\0121\003\154*\014\0121\0121\0121\0121\003\017\011\158\003\017%~\003\017\011j\011\206\t\142\003\017\017\242%\174\003\017\011\218\003\017%\210%\250\003\017&f\011\226\003\017\003\017\003\017&\174\003\017\003\017\003\017\011\158\r\209\003\222&\182\011j\003\017\003\017\003\017\003\017\r\209\003\017\011\218\003\017\024.&\206\t\130&\218\011\226'R\003\017\003\017\003\017\003\017\003\017\003\017\001\230\n\250'f'\138\024R\003\017\024v\003\017\003\017\007\134'\150'\154\n\n\n\014\003\017\003\017\003\017\011\254'\214\n\026(\026\027j\r=\003\017(&\003\017\003\017\003\017\003\017\003\017\003\017\003\017\003\017\003\017(.\018\n(V(f\018\018\nj\nr\018z(\158\003\017\003\017\003\017(\210\003\226(\250)\006\003\017)>)J\003\017)j\003\017\003\017)v\003\017\003\017\003\017\003\017)\138\018\026\000\242\018\130\000\242\018\138\003\017)\150\003\017\003\017)\186\003\017\003\017\003\017\003\017\003\017\003\017\003\017)\246\026Z\003\017\003\017\003\017\005v*r\003\017\003\017*\142*\174\003\017\003\017\003\017\003\017\003\t*\186\003\t+2\003\t+6\n\017\t\142\003\t\026r+R\003\t\018\n\003\t\001\230\018\018\003\t+V\018z\003\t\003\t\003\t+\202\003\t\003\t\003\t\011\158(\142\r=+\210\011j\003\t\003\t\003\t\003\t,2\003\t\011\218\003\t\r\169\018\026,r\018\130\011\226\018\138\003\t\003\t\003\t\003\t\003\t\003\t\005%\016\030,\198\001\190-\006\003\t-N\003\t\003\t\b\194\003\226-\150\025\186\026\238\003\t\003\t\003\t\027\"\027V\027b.\018\b\198\b\202\003\t.\030\003\t\003\t\003\t\003\t\003\t\003\t\003\t\003\t\003\t\018\n\018\n\b\206\018\018\018\018\005\029\018z\018z.&\003\t\003\t\003\t\000\242./\005v.?\003\t.R\007\177\003\t.n\003\t\003\t.\139\003\t\003\t\003\t\003\t\018\026\018\026\018\130\018\130\018\138\018\138\003\t.\155\003\t\003\t\028B\003\t\003\t\003\t\003\t\003\t\003\t\003\t.\183/\011\003\t\003\t\003\t\000\242\005%\003\t\003\t/'/2\003\t\003\t\003\t\003\t\012E/\135\012E/\155\012E/\163\t\030\003\154\012E\030J/\223\012E\003j\012E\t\"/\231\012E\000\000\000\000\012E\012E\012E\rN\012E\012E\012E\001\234\002a\002a*6\005\029\012E\012E\012E\012E\000\000\012E\000\000\012E\000\000\000\000\002V\000\000\002a'\190\012E\012E\012E\012E\012E\012E\000\000\r\166\000\000\030N\000\n\012E\000\000\012E\012E\003\138\rN\004\238\000\000\000\000\012E\012E\012E\0182\r\181\030Z\r\181\r\181\002a\012E\000\000\012E\012E\012E\012E\012E\012E\012E\012E\012E\000\000\018\n\002\234\002a\018\018\000\242\000\000\018z\000\000\012E\012E\012E\000\000\016:\000\000\000\000\012E\000\000\000\000\012E\n\138\012E\012E\000\000\012E\012E\012E\012E\011\185\018\026\002V\018\130\011\185\018\138\012E\n\029\012E\012E\000\000\012E\012E\012E\012E\012E\012E\012E\000\000/\023\012E\012E\012E\005\234&\226\012E\012E\000\000\000\000\012E\012E\012E\012E\012Y\011\158\012Y\000\000\012Y\011j'\194\t\142\012Y\000\000\000\000\012Y\011\218\012Y\011\185\002\234\012Y\000\000\011\226\012Y\012Y\012Y\000\000\012Y\012Y\012Y\015\218\r\181\b\214\000\000\000\000\012Y\012Y\012Y\012Y\r\181\012Y\018\226\012Y\002\250\b\218\b\222\000\000\011\185\012*\012Y\012Y\012Y\012Y\012Y\012Y\001\230\016\030\000\000\027\158\b\226\012Y\000\000\012Y\012Y\007\150\000\000\000\000\025\186\026\238\012Y\012Y\012Y\027\"\027V\027b\000\000\000\000\000\000\012Y\014\026\012Y\012Y\012Y\012Y\012Y\012Y\012Y\012Y\012Y\011\185\018\n\000\000\005\206\018\018\011]\000\000\018z\n\165\012Y\012Y\012Y\n\165\003\226\000\000\000\000\012Y\000\000\000\000\012Y\000\000\012Y\012Y\000\000\012Y\012Y\012Y\012Y\002\250\018\026\000\242\018\130\000\000\018\138\012Y\027\210\012Y\012Y\000\000\012Y\012Y\012Y\012Y\012Y\012Y\012Y\000\000\000\000\012Y\012Y\012Y\005v\000\000\012Y\012Y\000\242\000\000\012Y\012Y\012Y\012Y\012m\011]\012m\000\000\012m\011]\000\000\002V\012m\006)\000\000\012m\011]\012m!\238\000\000\012m\000\000\011]\012m\012m\012m\000\000\012m\012m\012m\006)\000\000-\186\000\000\012~\012m\012m\012m\012m\tZ\012m\006)\012m\000\000\000\000\000\000\002V\006)\000\000\012m\012m\012m\012m\012m\012m\011\158\000\000\002\234\000\000\011j\012m\000\000\012m\012m\"\026\000\000\011\218\005\254\000\000\012m\012m\012m\011\226 \218\016~\000\000\000\000\000\000\012m \242\012m\012m\012m\012m\012m\012m\012m\012m\012m\000\000\018\n\"F\002\234\018\018\000\000\017^\018z\000\000\012m\012m\012m\000\000\000\000\000\000\000\000\012m\002v\000\000\012m\003j\012m\012m\000\000\012m\012m\012m\012m\000\000\018\026\011y\018\130\016\226\018\138\012m\007U\012m\012m\000\000\012m\012m\012m\012m\012m\012m\012m\031\006\"\170\012m\012m\012m\000\000\000\242\012m\012m\000\000\000\000\012m\012m\012m\012m\002\221.J\002\221\001\246\002\221\002\250\000\000\002V\002\221\011y\000\000\002\221\030J\002\221\000\000\003j\002\221\030Z\000\000\002\221\002\221\002\221\000\000\002\221\002\221\002\221\011y\000\000\011\025\000\000\011j\002\221\002\221\002\221\002\221\000\000\002\221\011y\002\221\000\000\002\250\000\000\000\000\011y\000\000\002\221\002\221\002\221\002\221\002\221\002\221\006\177\n\138\002\234\000\000\000\000\002\221\030N\002\221\002\221\000\000\000\000\rN\004F\000\000\002\221\002\221\002\221\019\173\019\173\000\000\000\000\019\173\030Z\002\221\000\000\002\221\002\221\002\221\002\221\002\221\002\221\002\221\002\221\002\221\000\000\018\n\000\000\000\000\018\018\000\000\000\000\018z\000\000\002\221\002\221\002\221\000\242\000\000\000\000\000\000\002\221\000\000\000\000\002\221\000\000\002\221\002\221\n\138\002\221\002\221\002\221\002\221\n\193\018\026\000\242\018\130\n\193\018\138\002\221\000\000\002\221\002\221\000\000\002\221\002\221\002\221\002\221\002\221\002\221\002\221\011\025\025\254\002\221\002\221\002\221\000\000\006\177\002\221\002\221)\026\000\000\002\221\002\221\002\221\002\221\002\249\000\000\002\249\000\000\002\249\002\250\000\000\004\002\002\249\019\173\000\000\002\249\003\154\002\249\n\193\003j\002\249\000\000\000\000\002\249\002\249\002\249\rN\002\249\002\249\002\249\011\158\000\000\b:\000\000\011j\002\249\002\249\002\249\002\249\000\000\002\249\011\218\002\249\000\000\019\173\000\000\025\206\011\226\000\000\002\249\002\249\002\249\002\249\002\249\002\249\006\169\0046\000\000%V\000\000\002\249!f\002\249\002\249\0182\003\186\003\198\r\181\000\000\002\249\002\249\002\249\003\210\000\000\000\000\000\000\000\000\030Z\002\249\025\206\002\249\002\249\002\249\002\249\002\249\002\249\002\249\002\249\002\249\002\130\002\249\000\000\r!\018\018\003\214\000\000\002\249\0182\002\249\002\249\002\249\000\242\000\000\000\000\000\000\002\249\000\000\000\000\002\249\000\000\002\249\002\249\n\138\002\249\002\249\002\249\002\249\000\000\018\026\012\185\018\130\000\000\018\138\002\249\000\000\002\249\002\249\000\000\002\249\002\249\002\249\002\249\002\249\002\249\002\249\000\000\r!\002\249\002\249\002\249\000\000\006\169\002\249\002\249\000\000\025\230\002\249\002\249\002\249\002\249\003\r\000\000\003\r\000\000\003\r\000\000\000\000\000\000\003\r\012\185\000\000\003\r\000\000\003\r\000\000\r!\003\r\000\000\015\218\003\r\003\r\003\r\rN\003\r\003\r\003\r\012\146\000\000\025\230\018\226\012\185\003\r\003\r\003\r\003\r\000\000\003\r\012\185\003\r\000\000\000\000\000\000\000\000\012\185\000\000\003\r\003\r\003\r\003\r\003\r\003\r\015\218\r\181\000\000\r!\000\000\003\r\000\000\003\r\003\r\005\206\000\000\018\226\r!\000\000\003\r\003\r\003\r\019\181\019\181\000\000\000\000\019\181\000\000\003\r\000\000\003\r\003\r\003\r\003\r\003\r\003\r\003\r\003\r\003\r\000\000\018\n\000\000\r\029\018\018\000\000\000\000\018z\000\000\003\r\003\r\003\r\000\000\000\000\000\000\000\000\003\r\000\000\000\000\003\r\000\000\003\r\003\r\000\000\003\r\003\r\003\r\003\r\011\181\018\026\000\242\018\130\011\181\018\138\003\r\000\000\003\r\003\r\000\000\003\r\003\r\003\r\003\r\003\r\003\r\003\r\000\000\r\029\003\r\003\r\003\r\000\000\000\000\003\r\003\r\000\000\000\000\003\r\003\r\003\r\003\r\012\149\000\000\012\149\000\000\012\149\000\000\000\000\002V\012\149\019\181\000\000\012\149\000\000\012\149\011\181\r\029\012\149\001\230\000\000\012\149\012\149\012\149\000\000\012\149\012\149\012\149-&\000\000\011\021\000\000\000\000\012\149\012\149\012\149\012\149\000\000\012\149\000\000\012\149\000\000\019\181\002V\000\000\011\181\000\000\012\149\012\149\012\149\012\149\012\149\012\149\000\000\000\000\002\234\r\029\000\000\012\149\019\165\012\149\012\149\005\206\000\000\014\210\r\029\003\226\012\149\012\149\012\149\019\177\019\177\016~\000\000\019\177\000\000\012\149\000\000\012\149\012\149\012\149\012\149\012\149\012\149\012\149\012\149\012\149\011\181\018\n\002\234\005\206\018\018\000\000\017\146\018z\000\000\012\149\012\149\012\149\000\000\000\000\000\000\000\000\012\149\005v\000\000\012\149\000\000\012\149\012\149\000\000\012\149\012\149\012\149\012\149\000\000\018\026\000\242\018\130\016\226\018\138\012\149\000\000\012\149\012\149\000\000\012\149\012\149\012\149\012\149\012\149\012\149\012\149\011\021\026\030\012\149\012\149\012\149\000\000\000\242\012\149\012\149\000\000\000\000\012\149\012\149\012\149\012\149\012\129\000\000\012\129\019\165\012\129\002\250\000\000\002V\012\129\019\177\000\000\012\129\000\000\012\129\002V\000\000\012\129\000\000\000\000\012\129\012\129\012\129\000\000\012\129\012\129\012\129\011\158\000\000\r}\000\000\011j\012\129\012\129\012\129\012\129\014\226\012\129\011\218\012\129\002\250\019\177\000\000\000\000\011\226\000\000\012\129\012\129\012\129\012\129\012\129\012\129\000\000\000\000\002\234\004\217\000\000\012\129\000\000\012\129\012\129\002\234\000\000\rN\004F\000\000\012\129\012\129\012\129\005\r\000\000\016~\000\000\000\000\000\000\012\129-\198\012\129\012\129\012\129\012\129\012\129\012\129\012\129\012\129\012\129\000\000\018\n\000\000\030j\018\018\000\000\017V\018z\000\000\012\129\012\129\012\129\000\000\b\245\000\000\004\217\012\129\000\000\000\000\012\129\000\000\012\129\012\129\000\000\012\129\012\129\012\129\012\129\000\000\018\026\000\242\018\130\016\226\018\138\012\129\000\000\012\129\012\129\000\000\012\129\012\129\012\129\012\129\012\129\012\129\012\129\r}\000\000\012\129\012\129\012\129\000\000\000\242\012\129\012\129\000\000\030n\012\129\012\129\012\129\012\129\002\141\000\000\002\141\000\000\002\141\002\250\000\000\000\000\002\141\005\233\000\000\002\141\002\250\002\141\000\000\000\000\002\141\000\000\000\000\002\141\002\141\002\141\000\000\002\141\002\141\002\141\005\233\000\000\000\000\000\000\012~\002\141\002\141\002\141\002\141\000\000\002\141\005\233\002\141\000\000\000\000\000\000\000\000\005\233\000\000\002\141\002\141\002\141\002\141\002\141\002\141\016~\004\217\000\000\000\000\000\000\002\141\000\000\002\141\002\141\000\000\000\000\000\000\004F\000\000\002\141\002\141\002\141\000\000\000\000\016~\000\000\017\194\000\000\002\141\000\000\002\141\002\141\002\141\002\141\002\141\002\141\002\141\002\141\002\141\000\000\002\141\000\000\000\000\000\000\000\000\029n\002\141\000\000\002\141\002\141\002\141\000\000\016\226\000\000\000\000\002\141\000\000\000\000\002\141\000\000\002\141\002\141\000\000\002\141\002\141\002\141\002\141\000\000\000\000\000\242\000\000\016\226\000\242\002\141\000\000\002\141\002\141\000\000\015\218\002\141\002\141\002\141\002\141\002\141\002\141\003\005\000\000\002\141\002\141\018\226\028\186\000\242\002\141\002\141\000\000\000\000\002\141\002\141\002\141\002\141\003\005\003\005\003\005\003\005\003\005\003\005\000\000\002V\003\005\006\025\000\000\003\005\000\000\003\005.\251\003\005\003\005\003\005\003\005\003\005\003\005\003\005\000\000\003\005\003\005\003\005\006\025\003\005\ry\000\000\012~\003\005\003\005\003\005\003\005\000\000\003\005\006\025\003\005\000\000\000\000\000\000\000\000\006\025\004F\003\005\003\005\003\005\003\005\003\005\003\005\003\005\000\000\002\234\000\000\000\000\003\005\000\000\003\005\003\005\000\000\000\000\000\000\004F\000\000\003\005\003\005\003\005\000\000\016~\016~\000\000\000\000\000\000\003\005\000\000\003\005\003\005\003\005\003\005\003\005\003\005\003\005\003\005\003\005\000\000\003\005\000\000\000\000\000\000\029\134\029\154\003\005\018\158\003\005\003\005\003\005\003\005\000\000\000\000\000\000\003\005\000\000\003\005\003\005\000\000\003\005\003\005\003\005\003\005\003\005\003\005\003\005\003\005\003\005\000\242\016\226\016\226\000\000\003\005\000\000\003\005\003\005\000\000\018\158\003\005\003\005\003\005\003\005\003\005\003\005\ry\000\000\003\005\003\005\003\005\000\242\000\242\003\005\003\005\000\000\000\000\003\005\003\005\003\005\003\005\012-\000\000\012-\000\000\012-\002\250\000\000\002V\012-\006\t\000\000\012-\000\000\012-\000\000\000\000\012-\000\000\000\000\012-\012-\012-\000\000\012-\012-\012-\006\t\000\000\r\137\000\000\012~\012-\012-\012-\012-\000\000\012-\006\t\012-\000\000\000\000\000\000\000\000\006\t\000\000\012-\012-\012-\012-\012-\012-\016~\000\000\002\234\000\000\000\000\012-\000\000\012-\012-\000\000\000\000\004F\004F\000\000\012-\012-\012-\000\000\016~\016~\000\000\029\178\000\000\012-\000\000\012-\012-\012-\012-\012-\012-\012-\012-\012-\000\000\012-\000\000\000\000\000\000 \006'r\012-\000\000\012-\012-\012-\000\000\016\226\000\000\000\000\012-\000\000\000\000\012-\000\000\012-\012-\000\000\012-\012-\012-\012-\000\000\000\000\000\242\016\226\016\226\000\242\012-\000\000\012-\012-\000\000\015\218\012-\012-\012-\012-\012-\012-\r\137\000\000\012-\012-\018\226\000\242\000\242\012-\012-\000\000\000\000\012-\012-\012-\012-\004Y\000\000\004Y\000\000\004Y\002\250\000\000\002V\004Y\022\166\000\000\004Y\000\000\004Y\000\000\000\000\019\006\000\000\000\000\004Y\019^\004Y\000\000\004Y\004Y\004Y\022\174\000\000\r\133\000\000\012~\019r\019\210\019\234\019\138\000\000\020\002\022\222\004Y\000\000\000\000\000\000\000\000\022\230\004F\004Y\019\162\004Y\020\026\0202\004Y\016~\000\000\002\234\000\000\000\000\004Y\000\000\020J\004Y\000\000\000\000\004F\004F\000\000\004Y\004Y\000\242\000\000\000\000\000\000\000\000+\254\000\000\004Y\000\000\004Y\004Y\019\030\019\186\020b\020z\020\218\004Y\004Y\000\000\004Y\000\000\000\000\000\000\000\000\000\000\004Y\000\000\004Y\004Y\020\242\000\000\016\226\000\000\000\000\004Y\000\000\000\000\004Y\000\000\004Y\021\n\000\000\004Y\004Y\004Y\004Y\000\000\000\000\000\242\000\000\000\000\000\242\004Y\000\000\004Y\004Y\000\000\021j\004Y\004Y\021\162\020\146\004Y\004Y\r\133\000\000\004Y\021\"\004Y\000\000\000\000\020\170\020\194\000\000\000\000\004Y\004Y\021:\021R\003\129\000\000\003\129\000\000\003\129\002\250\000\000\002V\003\129\005\249\000\000\003\129\000\000\003\129\000\000\000\000\003\129\000\000\000\000\003\129\003\129\003\129\000\000\003\129\003\129\003\129\005\249\000\000\031\002\000\000\012~\003\129\003\129\003\129\003\129\000\000\003\129\005\249\003\129\000\000\000\000\000\000\000\000\005\249\004F\003\129\003\129\003\129\003\129\003\129\003\129\000\000\000\000\002\234\000\000\000\000\003\129\000\000\003\129\003\129\000\000\000\000\000\000\000\000\000\000\003\129\003\129\003\129\000\000\000\000\000\000\000\000\000\000\000\000\003\129\000\000\003\129\003\129\003\129\003\129\003\129\003\129\003\129\003\129\003\129\000\000\003\129\000\000\000\000\000\000\000\000\000\000\003\129\000\000\003\129\003\129\003\129\000\000\000\000\000\000\000\000\003\129\000\000\000\000\003\129\000\000\003\129\003\129\000\000\003\129\003\129\003\129\003\129\000\000\000\000\000\242\000\000\000\000\000\000\003\129\000\000\003\129\003\129\000\000\015\218\003\129\003\129\003\129\003\129\003\129\003\129\031\006\000\000\003\129\003\129\018\226\000\000\000\000\003\129\003\129\000\000\000\000\003\129\003\129\003\129\003\129\003}\000\000\003}\000\000\003}\002\250\000\000\002V\003}\011\137\000\000\003}\000\000\003}\000\000\000\000\003}\000\000\000\000\003}\003}\003}\000\000\003}\003}\003}\011\158\000\000\r\149\000\000\011j\003}\003}\003}\003}\000\000\003}\011\137\003}\000\000\000\000\000\000\000\000\011\137\000\000\003}\003}\003}\003}\003}\003}\000\000\000\000\002\234\000\000\000\000\003}\000\000\003}\003}\000\000\000\000\000\000\000\000\000\000\003}\003}\003}\000\000\000\000\000\000\000\000\000\000\000\000\003}\000\000\003}\003}\019\030\003}\003}\003}\003}\003}\003}\000\000\003}\000\000\000\000\000\000\000\000\000\000\003}\000\000\003}\003}\003}\000\000\000\000\000\000\000\000\003}\000\000\000\000\003}\000\000\003}\003}\000\000\003}\003}\003}\003}\000\000\000\000\000\242\000\000\000\000\000\000\003}\001\133\003}\003}\000\000\003}\003}\003}\003}\003}\003}\003}\r\149\000\000\003}\003}\003}\000\000\000\000\003}\003}\000\000\001\133\003}\003}\003}\003}\003Q\000\000\003Q\000\000\003Q\002\250\000\000\002V\003Q\025\142\000\000\003Q\000\000\003Q\000\000\000\000\003Q\000\000\000\000\003Q\003Q\003Q\000\000\003Q\003Q\003Q\022\174\000\000\r\145\000\000\012~\003Q\003Q\003Q\003Q\000\000\003Q\022\222\003Q\000\000\000\000\000\000\000\000\022\230\000\000\003Q\003Q\003Q\003Q\003Q\003Q\016~\000\000\002\234\000\000\000\000\003Q\000\000\003Q\003Q\000\000\000\000\000\000\000\000\000\000\003Q\003Q\003Q\000\000\000\000\000\000\000\000\000\000\001\133\003Q\000\000\003Q\003Q\003Q\003Q\003Q\003Q\003Q\003Q\003Q\000\000\003Q\000\000\000\000\000\000\000\000\000\000\003Q\000\000\003Q\003Q\003Q\001\133\016\226\000\000\000\000\003Q\000\000\000\000\003Q\001\133\003Q\003Q\000\000\003Q\003Q\003Q\003Q\000\000\000\000\025\238\000\000\000\000\000\242\003Q\000\000\003Q\003Q\000\000\015\218\003Q\003Q\003Q\003Q\003Q\003Q\r\145\000\000\003Q\003Q\018\226\000\000\000\000\003Q\003Q\000\000\000\000\003Q\003Q\003Q\003Q\003M\000\000\003M\000\000\003M\002\250\000\000\002V\003M\000\000\000\000\003M\030\006\003M\000\000\000\000\003M\001\230\000\000\003M\003M\003M\000\000\003M\003M\003M-n\000\000-\210\000\000\000\000\003M\003M\003M\003M\000\000\003M\000\000\003M\000\000\000\000\000\000\000\000\rN\004F\003M\003M\003M\003M\003M\003M\000\000\000\000\002\234\000\000\000\000\003M\019\165\003M\003M\000\000\000\000\000\000\000\000\003\226\003M\003M\003M\000\000\000\000\000\000\000\000\000\000\000\000\003M\000\000\003M\003M\019\030\003M\003M\003M\003M\003M\003M\000\000\003M\000\000\000\000\000\000\000\000\000\000\003M\000\000\003M\003M\003M\000\000\000\000\000\000\000\000\003M\005v\000\000\003M\000\000\003M\003M\000\000\003M\003M\003M\003M\000\000\000\000\000\242\000\000\000\000\000\000\003M\000\000\003M\003M\000\000\003M\003M\003M\003M\003M\003M\003M-\214\026>\003M\003M\003M\000\000\000\000\003M\003M\000\000\000\000\003M\003M\003M\003M\003i\000\000\003i\019\165\003i\002\250\000\000\002V\003i\000\000\000\000\003i\000\000\003i\000\000\000\000\003i\000\000\000\000\003i\003i\003i\000\000\003i\003i\003i\011\158\000\000\r\161\000\000\011j\003i\003i\003i\003i\000\000\003i\011\218\003i\002V\000\000\000\000\000\000\011\226\000\000\003i\003i\003i\003i\003i\003i\000\000\000\000\002\234\000\000\000\000\003i\000\000\003i\003i\r\157\000\000\000\000\000\000\000\000\003i\003i\003i\000\000\000\000\000\000\000\000\000\000\000\000\003i\000\000\003i\003i\003i\003i\003i\003i\003i\003i\003i\002\234\003i\000\000\000\000\000\000\000\000\000\000\003i\000\000\003i\003i\003i\000\000\000\000\000\000\000\000\003i\000\000\000\000\003i\000\000\003i\003i\000\000\003i\003i\003i\003i\000\000\000\000\000\000\000\000\000\000\000\000\003i\000\000\003i\003i\000\000\015\218\003i\003i\003i\003i\003i\003i\r\161\000\000\003i\003i\018\226\000\000\000\000\003i\003i\000\000\000\000\003i\003i\003i\003i\003e\000\000\003e\000\000\003e\002\250\000\000\000\000\003e\000\000\000\000\003e\000\000\003e\000\000\000\000\019\006\r\157\000\000\003e\003e\003e\000\000\003e\003e\003e\000\000\000\000\000\000\000\000\000\000\003e\003e\003e\019\138\000\000\003e\002\250\003e\000\000\000\000\000\000\000\000\000\000\000\000\003e\019\162\003e\003e\003e\003e\000\000\000\000\000\000\000\000\000\000\003e\000\000\003e\003e\000\000\000\000\000\000\000\000\000\000\003e\003e\003e\000\000\000\000\000\000\000\000\000\000\000\000\003e\000\000\003e\003e\019\030\019\186\003e\003e\003e\003e\003e\000\000\003e\000\000\000\000\000\000\000\000\000\000\003e\000\000\003e\003e\003e\000\000\000\000\000\000\000\000\003e\000\000\000\000\003e\000\000\003e\003e\000\000\003e\003e\003e\003e\000\000\000\000\000\000\000\000\000\000\000\000\003e\000\000\003e\003e\000\000\003e\003e\003e\003e\003e\003e\003e\000\000\000\000\003e\003e\003e\000\000\000\000\003e\003e\000\000\000\000\003e\003e\003e\003e\003\137\000\000\003\137\000\000\003\137\000\000\000\000\000\000\003\137\000\000\000\000\003\137\000\000\003\137\000\000\000\000\003\137\000\000\000\000\003\137\003\137\003\137\000\000\003\137\003\137\003\137\000\000\000\000\000\000\000\000\000\000\003\137\003\137\003\137\003\137\000\000\003\137\000\000\003\137\000\000\000\000\000\000\000\000\000\000\000\000\003\137\003\137\003\137\003\137\003\137\003\137\000\000\000\000\000\000\000\000\000\000\003\137\000\000\003\137\003\137\000\000\000\000\000\000\000\000\000\000\003\137\003\137\003\137\000\000\000\000\000\000\000\000\000\000\000\000\003\137\000\000\003\137\003\137\003\137\003\137\003\137\003\137\003\137\003\137\003\137\000\000\003\137\000\000\000\000\000\000\000\000\000\000\003\137\000\000\003\137\003\137\003\137\000\000\000\000\000\000\000\000\003\137\000\000\000\000\003\137\000\000\003\137\003\137\000\000\003\137\003\137\003\137\003\137\000\000\000\000\000\000\000\000\000\000\000\000\003\137\000\000\003\137\003\137\000\000\015\218\003\137\003\137\003\137\003\137\003\137\003\137\000\000\000\000\003\137\003\137\018\226\000\000\000\000\003\137\003\137\000\000\000\000\003\137\003\137\003\137\003\137\003\133\000\000\003\133\000\000\003\133\000\000\000\000\000\000\003\133\000\000\000\000\003\133\000\000\003\133\000\000\000\000\003\133\000\000\000\000\003\133\003\133\003\133\000\000\003\133\003\133\003\133\000\000\000\000\000\000\000\000\000\000\003\133\003\133\003\133\003\133\000\000\003\133\000\000\003\133\000\000\000\000\000\000\000\000\000\000\000\000\003\133\003\133\003\133\003\133\003\133\003\133\000\000\000\000\000\000\000\000\000\000\003\133\000\000\003\133\003\133\000\000\000\000\000\000\000\000\000\000\003\133\003\133\003\133\000\000\000\000\000\000\000\000\000\000\000\000\003\133\000\000\003\133\003\133\019\030\003\133\003\133\003\133\003\133\003\133\003\133\000\000\003\133\000\000\000\000\000\000\000\000\000\000\003\133\000\000\003\133\003\133\003\133\000\000\000\000\000\000\000\000\003\133\000\000\000\000\003\133\000\000\003\133\003\133\000\000\003\133\003\133\003\133\003\133\000\000\000\000\000\000\000\000\000\000\000\000\003\133\000\000\003\133\003\133\000\000\003\133\003\133\003\133\003\133\003\133\003\133\003\133\000\000\000\000\003\133\003\133\003\133\000\000\000\000\003\133\003\133\000\000\000\000\003\133\003\133\003\133\003\133\003I\000\000\003I\000\000\003I\000\000\000\000\000\000\003I\000\000\000\000\003I\000\000\003I\000\000\000\000\003I\000\000\000\000\003I\003I\003I\000\000\003I\003I\003I\000\000\000\000\000\000\000\000\000\000\003I\003I\003I\003I\000\000\003I\000\000\003I\000\000\000\000\000\000\000\000\000\000\000\000\003I\003I\003I\003I\003I\003I\000\000\000\000\000\000\000\000\000\000\003I\000\000\003I\003I\000\000\000\000\000\000\000\000\000\000\003I\003I\003I\000\000\000\000\000\000\000\000\000\000\000\000\003I\000\000\003I\003I\003I\003I\003I\003I\003I\003I\003I\000\000\003I\000\000\000\000\000\000\000\000\000\000\003I\000\000\003I\003I\003I\000\000\000\000\000\000\000\000\003I\000\000\000\000\003I\000\000\003I\003I\000\000\003I\003I\003I\003I\000\000\000\000\000\000\000\000\000\000\000\000\003I\000\000\003I\003I\000\000\015\218\003I\003I\003I\003I\003I\003I\000\000\000\000\003I\003I\018\226\000\000\000\000\003I\003I\000\000\000\000\003I\003I\003I\003I\003E\000\000\003E\000\000\003E\000\000\000\000\000\000\003E\000\000\000\000\003E\000\000\003E\000\000\000\000\003E\000\000\000\000\003E\003E\003E\000\000\003E\003E\003E\000\000\000\000\000\000\000\000\000\000\003E\003E\003E\003E\000\000\003E\000\000\003E\000\000\000\000\000\000\000\000\000\000\000\000\003E\003E\003E\003E\003E\003E\000\000\000\000\000\000\000\000\000\000\003E\000\000\003E\003E\000\000\000\000\000\000\000\000\000\000\003E\003E\003E\000\000\000\000\000\000\000\000\000\000\000\000\003E\000\000\003E\003E\019\030\003E\003E\003E\003E\003E\003E\000\000\003E\000\000\000\000\000\000\000\000\000\000\003E\000\000\003E\003E\003E\000\000\000\000\000\000\000\000\003E\000\000\000\000\003E\000\000\003E\003E\000\000\003E\003E\003E\003E\000\000\000\000\000\000\000\000\000\000\000\000\003E\000\000\003E\003E\000\000\003E\003E\003E\003E\003E\003E\003E\000\000\000\000\003E\003E\003E\000\000\000\000\003E\003E\000\000\000\000\003E\003E\003E\003E\003A\000\000\003A\000\000\003A\000\000\000\000\000\000\003A\000\000\000\000\003A\000\000\003A\000\000\000\000\003A\000\000\000\000\003A\003A\003A\000\000\003A\003A\003A\000\000\000\000\000\000\000\000\000\000\003A\003A\003A\003A\000\000\003A\000\000\003A\000\000\000\000\000\000\000\000\000\000\000\000\003A\003A\003A\003A\003A\003A\000\000\000\000\000\000\000\000\000\000\003A\000\000\003A\003A\000\000\000\000\000\000\000\000\000\000\003A\003A\003A\000\000\000\000\000\000\000\000\000\000\000\000\003A\000\000\003A\003A\003A\003A\003A\003A\003A\003A\003A\000\000\003A\000\000\000\000\000\000\000\000\000\000\003A\000\000\003A\003A\003A\000\000\000\000\000\000\000\000\003A\000\000\000\000\003A\000\000\003A\003A\000\000\003A\003A\003A\003A\000\000\000\000\000\000\000\000\000\000\000\000\003A\000\000\003A\003A\000\000\015\218\003A\003A\003A\003A\003A\003A\000\000\000\000\003A\003A\018\226\000\000\000\000\003A\003A\000\000\000\000\003A\003A\003A\003A\003=\000\000\003=\000\000\003=\000\000\000\000\000\000\003=\000\000\000\000\003=\000\000\003=\000\000\000\000\003=\000\000\000\000\003=\003=\003=\000\000\003=\003=\003=\000\000\000\000\000\000\000\000\000\000\003=\003=\003=\003=\000\000\003=\000\000\003=\000\000\000\000\000\000\000\000\000\000\000\000\003=\003=\003=\003=\003=\003=\000\000\000\000\000\000\000\000\000\000\003=\000\000\003=\003=\000\000\000\000\000\000\000\000\000\000\003=\003=\003=\000\000\000\000\000\000\000\000\000\000\000\000\003=\000\000\003=\003=\019\030\003=\003=\003=\003=\003=\003=\000\000\003=\000\000\000\000\000\000\000\000\000\000\003=\000\000\003=\003=\003=\000\000\000\000\000\000\000\000\003=\000\000\000\000\003=\000\000\003=\003=\000\000\003=\003=\003=\003=\000\000\000\000\000\000\000\000\000\000\000\000\003=\000\000\003=\003=\000\000\003=\003=\003=\003=\003=\003=\003=\000\000\000\000\003=\003=\003=\000\000\000\000\003=\003=\000\000\000\000\003=\003=\003=\003=\003a\000\000\003a\000\000\003a\000\000\000\000\000\000\003a\000\000\000\000\003a\000\000\003a\000\000\000\000\003a\000\000\000\000\003a\003a\003a\000\000\003a\003a\003a\000\000\000\000\000\000\000\000\000\000\003a\003a\003a\003a\000\000\003a\000\000\003a\000\000\000\000\000\000\000\000\000\000\000\000\003a\003a\003a\003a\003a\003a\000\000\000\000\000\000\000\000\000\000\003a\000\000\003a\003a\000\000\000\000\000\000\000\000\000\000\003a\003a\003a\000\000\000\000\000\000\000\000\000\000\000\000\003a\000\000\003a\003a\003a\003a\003a\003a\003a\003a\003a\000\000\003a\000\000\000\000\000\000\000\000\000\000\003a\000\000\003a\003a\003a\000\000\000\000\000\000\000\000\003a\000\000\000\000\003a\000\000\003a\003a\000\000\003a\003a\003a\003a\000\000\000\000\000\000\000\000\000\000\000\000\003a\000\000\003a\003a\000\000\015\218\003a\003a\003a\003a\003a\003a\000\000\000\000\003a\003a\018\226\000\000\000\000\003a\003a\000\000\000\000\003a\003a\003a\003a\003]\000\000\003]\000\000\003]\000\000\000\000\000\000\003]\000\000\000\000\003]\000\000\003]\000\000\000\000\019\006\000\000\000\000\003]\003]\003]\000\000\003]\003]\003]\000\000\000\000\000\000\000\000\000\000\003]\003]\003]\019\138\000\000\003]\000\000\003]\000\000\000\000\000\000\000\000\000\000\000\000\003]\019\162\003]\003]\003]\003]\000\000\000\000\000\000\000\000\000\000\003]\000\000\003]\003]\000\000\000\000\000\000\000\000\000\000\003]\003]\003]\000\000\000\000\000\000\000\000\000\000\000\000\003]\000\000\003]\003]\019\030\019\186\003]\003]\003]\003]\003]\000\000\003]\000\000\000\000\000\000\000\000\000\000\003]\000\000\003]\003]\003]\000\000\000\000\000\000\000\000\003]\000\000\000\000\003]\000\000\003]\003]\000\000\003]\003]\003]\003]\000\000\000\000\000\000\000\000\000\000\000\000\003]\000\000\003]\003]\000\000\003]\003]\003]\003]\003]\003]\003]\000\000\000\000\003]\003]\003]\000\000\000\000\003]\003]\000\000\000\000\003]\003]\003]\003]\003Y\000\000\003Y\000\000\003Y\000\000\000\000\000\000\003Y\000\000\000\000\003Y\000\000\003Y\000\000\000\000\003Y\000\000\000\000\003Y\003Y\003Y\000\000\003Y\003Y\003Y\000\000\000\000\000\000\000\000\000\000\003Y\003Y\003Y\003Y\000\000\003Y\000\000\003Y\000\000\000\000\000\000\000\000\000\000\000\000\003Y\003Y\003Y\003Y\003Y\003Y\000\000\000\000\000\000\000\000\000\000\003Y\000\000\003Y\003Y\000\000\000\000\000\000\000\000\000\000\003Y\003Y\003Y\000\000\000\000\000\000\000\000\000\000\000\000\003Y\000\000\003Y\003Y\003Y\003Y\003Y\003Y\003Y\003Y\003Y\000\000\003Y\000\000\000\000\000\000\000\000\000\000\003Y\000\000\003Y\003Y\003Y\000\000\000\000\000\000\000\000\003Y\000\000\000\000\003Y\000\000\003Y\003Y\000\000\003Y\003Y\003Y\003Y\000\000\000\000\000\000\000\000\000\000\000\000\003Y\000\000\003Y\003Y\000\000\015\218\003Y\003Y\003Y\003Y\003Y\003Y\000\000\000\000\003Y\003Y\018\226\000\000\000\000\003Y\003Y\000\000\000\000\003Y\003Y\003Y\003Y\003U\000\000\003U\000\000\003U\000\000\000\000\000\000\003U\000\000\000\000\003U\000\000\003U\000\000\000\000\019\006\000\000\000\000\003U\003U\003U\000\000\003U\003U\003U\000\000\000\000\000\000\000\000\000\000\003U\003U\003U\019\138\000\000\003U\000\000\003U\000\000\000\000\000\000\000\000\000\000\000\000\003U\019\162\003U\003U\003U\003U\000\000\000\000\000\000\000\000\000\000\003U\000\000\003U\003U\000\000\000\000\000\000\000\000\000\000\003U\003U\003U\000\000\000\000\000\000\000\000\000\000\000\000\003U\000\000\003U\003U\019\030\019\186\003U\003U\003U\003U\003U\000\000\003U\000\000\000\000\000\000\000\000\000\000\003U\000\000\003U\003U\003U\000\000\000\000\000\000\000\000\003U\000\000\000\000\003U\000\000\003U\003U\000\000\003U\003U\003U\003U\000\000\000\000\000\000\000\000\000\000\000\000\003U\000\000\003U\003U\000\000\003U\003U\003U\003U\003U\003U\003U\000\000\000\000\003U\003U\003U\000\000\000\000\003U\003U\000\000\000\000\003U\003U\003U\003U\003\169\000\000\003\169\000\000\003\169\000\000\000\000\000\000\003\169\000\000\000\000\003\169\000\000\003\169\000\000\000\000\003\169\000\000\000\000\003\169\003\169\003\169\000\000\003\169\003\169\003\169\000\000\000\000\000\000\000\000\000\000\003\169\003\169\003\169\003\169\000\000\003\169\000\000\003\169\000\000\000\000\000\000\000\000\000\000\000\000\003\169\003\169\003\169\003\169\003\169\003\169\000\000\000\000\000\000\000\000\000\000\003\169\000\000\003\169\003\169\000\000\000\000\000\000\000\000\000\000\003\169\003\169\003\169\000\000\000\000\000\000\000\000\000\000\000\000\003\169\000\000\003\169\003\169\003\169\003\169\003\169\003\169\003\169\003\169\003\169\000\000\003\169\000\000\000\000\000\000\000\000\000\000\003\169\000\000\003\169\003\169\003\169\000\000\000\000\000\000\000\000\003\169\000\000\000\000\003\169\000\000\003\169\003\169\000\000\003\169\003\169\003\169\003\169\000\000\000\000\000\000\000\000\000\000\000\000\003\169\000\000\003\169\003\169\000\000\015\218\003\169\003\169\003\169\003\169\003\169\003\169\000\000\000\000\003\169\003\169\018\226\000\000\000\000\003\169\003\169\000\000\000\000\003\169\003\169\003\169\003\169\003\165\000\000\003\165\000\000\003\165\000\000\000\000\000\000\003\165\000\000\000\000\003\165\000\000\003\165\000\000\000\000\019\006\000\000\000\000\003\165\003\165\003\165\000\000\003\165\003\165\003\165\000\000\000\000\000\000\000\000\000\000\019r\019\210\019\234\019\138\000\000\020\002\000\000\003\165\000\000\000\000\000\000\000\000\000\000\000\000\003\165\019\162\003\165\020\026\0202\003\165\000\000\000\000\000\000\000\000\000\000\003\165\000\000\020J\003\165\000\000\000\000\000\000\000\000\000\000\003\165\003\165\000\242\000\000\000\000\000\000\000\000\000\000\000\000\003\165\000\000\003\165\003\165\019\030\019\186\020b\020z\020\218\003\165\003\165\000\000\003\165\000\000\000\000\000\000\000\000\000\000\003\165\000\000\003\165\003\165\020\242\000\000\000\000\000\000\000\000\003\165\000\000\000\000\003\165\000\000\003\165\021\n\000\000\003\165\003\165\003\165\003\165\000\000\000\000\000\000\000\000\000\000\000\000\003\165\000\000\003\165\003\165\000\000\003\165\003\165\003\165\003\165\020\146\003\165\003\165\000\000\000\000\003\165\021\"\003\165\000\000\000\000\020\170\020\194\000\000\000\000\003\165\003\165\021:\021R\003y\000\000\003y\000\000\003y\000\000\000\000\000\000\003y\000\000\000\000\003y\000\000\003y\000\000\000\000\003y\000\000\000\000\003y\003y\003y\000\000\003y\003y\003y\000\000\000\000\000\000\000\000\000\000\003y\003y\003y\003y\000\000\003y\000\000\003y\000\000\000\000\000\000\000\000\000\000\000\000\003y\003y\003y\003y\003y\003y\000\000\000\000\000\000\000\000\000\000\003y\000\000\003y\003y\000\000\000\000\000\000\000\000\000\000\003y\003y\003y\000\000\000\000\000\000\000\000\000\000\000\000\003y\000\000\003y\003y\003y\003y\003y\003y\003y\003y\003y\000\000\003y\000\000\000\000\000\000\000\000\000\000\003y\000\000\003y\003y\003y\000\000\000\000\000\000\000\000\003y\000\000\000\000\003y\000\000\003y\003y\000\000\003y\003y\003y\003y\000\000\000\000\000\000\000\000\000\000\000\000\003y\000\000\003y\003y\000\000\015\218\003y\003y\003y\003y\003y\003y\000\000\000\000\003y\003y\018\226\000\000\000\000\003y\003y\000\000\000\000\003y\003y\003y\003y\003u\000\000\003u\000\000\003u\000\000\000\000\000\000\003u\000\000\000\000\003u\000\000\003u\000\000\000\000\019\006\000\000\000\000\003u\003u\003u\000\000\003u\003u\003u\000\000\000\000\000\000\000\000\000\000\003u\003u\003u\019\138\000\000\003u\000\000\003u\000\000\000\000\000\000\000\000\000\000\000\000\003u\019\162\003u\003u\003u\003u\000\000\000\000\000\000\000\000\000\000\003u\000\000\003u\003u\000\000\000\000\000\000\000\000\000\000\003u\003u\003u\000\000\000\000\000\000\000\000\000\000\000\000\003u\000\000\003u\003u\019\030\019\186\003u\003u\003u\003u\003u\000\000\003u\000\000\000\000\000\000\000\000\000\000\003u\000\000\003u\003u\003u\000\000\000\000\000\000\000\000\003u\000\000\000\000\003u\000\000\003u\003u\000\000\003u\003u\003u\003u\000\000\000\000\000\000\000\000\000\000\000\000\003u\000\000\003u\003u\000\000\003u\003u\003u\003u\003u\003u\003u\000\000\000\000\003u\003u\003u\000\000\000\000\003u\003u\000\000\000\000\003u\003u\003u\003u\003q\000\000\003q\000\000\003q\000\000\000\000\000\000\003q\000\000\000\000\003q\000\000\003q\000\000\000\000\003q\000\000\000\000\003q\003q\003q\000\000\003q\003q\003q\000\000\000\000\000\000\000\000\000\000\003q\003q\003q\003q\000\000\003q\000\000\003q\000\000\000\000\000\000\000\000\000\000\000\000\003q\003q\003q\003q\003q\003q\000\000\000\000\000\000\000\000\000\000\003q\000\000\003q\003q\000\000\000\000\000\000\000\000\000\000\003q\003q\003q\000\000\000\000\000\000\000\000\000\000\000\000\003q\000\000\003q\003q\003q\003q\003q\003q\003q\003q\003q\000\000\003q\000\000\000\000\000\000\000\000\000\000\003q\000\000\003q\003q\003q\000\000\000\000\000\000\000\000\003q\000\000\000\000\003q\000\000\003q\003q\000\000\003q\003q\003q\003q\000\000\000\000\000\000\000\000\000\000\000\000\003q\000\000\003q\003q\000\000\015\218\003q\003q\003q\003q\003q\003q\000\000\000\000\003q\003q\018\226\000\000\000\000\003q\003q\000\000\000\000\003q\003q\003q\003q\003m\000\000\003m\000\000\003m\000\000\000\000\000\000\003m\000\000\000\000\003m\000\000\003m\000\000\000\000\019\006\000\000\000\000\003m\003m\003m\000\000\003m\003m\003m\000\000\000\000\000\000\000\000\000\000\003m\003m\003m\019\138\000\000\003m\000\000\003m\000\000\000\000\000\000\000\000\000\000\000\000\003m\019\162\003m\003m\003m\003m\000\000\000\000\000\000\000\000\000\000\003m\000\000\003m\003m\000\000\000\000\000\000\000\000\000\000\003m\003m\003m\000\000\000\000\000\000\000\000\000\000\000\000\003m\000\000\003m\003m\019\030\019\186\003m\003m\003m\003m\003m\000\000\003m\000\000\000\000\000\000\000\000\000\000\003m\000\000\003m\003m\003m\000\000\000\000\000\000\000\000\003m\000\000\000\000\003m\000\000\003m\003m\000\000\003m\003m\003m\003m\000\000\000\000\000\000\000\000\000\000\000\000\003m\000\000\003m\003m\000\000\003m\003m\003m\003m\003m\003m\003m\000\000\000\000\003m\003m\003m\000\000\000\000\003m\003m\000\000\000\000\003m\003m\003m\003m\003\153\000\000\003\153\000\000\003\153\000\000\000\000\000\000\003\153\000\000\000\000\003\153\000\000\003\153\000\000\000\000\003\153\000\000\000\000\003\153\003\153\003\153\000\000\003\153\003\153\003\153\000\000\000\000\000\000\000\000\000\000\003\153\003\153\003\153\003\153\000\000\003\153\000\000\003\153\000\000\000\000\000\000\000\000\000\000\000\000\003\153\003\153\003\153\003\153\003\153\003\153\000\000\000\000\000\000\000\000\000\000\003\153\000\000\003\153\003\153\000\000\000\000\000\000\000\000\000\000\003\153\003\153\003\153\000\000\000\000\000\000\000\000\000\000\000\000\003\153\000\000\003\153\003\153\003\153\003\153\003\153\003\153\003\153\003\153\003\153\000\000\003\153\000\000\000\000\000\000\000\000\000\000\003\153\000\000\003\153\003\153\003\153\000\000\000\000\000\000\000\000\003\153\000\000\000\000\003\153\000\000\003\153\003\153\000\000\003\153\003\153\003\153\003\153\000\000\000\000\000\000\000\000\000\000\000\000\003\153\000\000\003\153\003\153\000\000\015\218\003\153\003\153\003\153\003\153\003\153\003\153\000\000\000\000\003\153\003\153\018\226\000\000\000\000\003\153\003\153\000\000\000\000\003\153\003\153\003\153\003\153\003\149\000\000\003\149\000\000\003\149\000\000\000\000\000\000\003\149\000\000\000\000\003\149\000\000\003\149\000\000\000\000\019\006\000\000\000\000\003\149\003\149\003\149\000\000\003\149\003\149\003\149\000\000\000\000\000\000\000\000\000\000\019r\019\210\019\234\019\138\000\000\003\149\000\000\003\149\000\000\000\000\000\000\000\000\000\000\000\000\003\149\019\162\003\149\020\026\0202\003\149\000\000\000\000\000\000\000\000\000\000\003\149\000\000\003\149\003\149\000\000\000\000\000\000\000\000\000\000\003\149\003\149\000\242\000\000\000\000\000\000\000\000\000\000\000\000\003\149\000\000\003\149\003\149\019\030\019\186\020b\020z\003\149\003\149\003\149\000\000\003\149\000\000\000\000\000\000\000\000\000\000\003\149\000\000\003\149\003\149\003\149\000\000\000\000\000\000\000\000\003\149\000\000\000\000\003\149\000\000\003\149\003\149\000\000\003\149\003\149\003\149\003\149\000\000\000\000\000\000\000\000\000\000\000\000\003\149\000\000\003\149\003\149\000\000\003\149\003\149\003\149\003\149\020\146\003\149\003\149\000\000\000\000\003\149\003\149\003\149\000\000\000\000\020\170\020\194\000\000\000\000\003\149\003\149\003\149\003\149\0039\000\000\0039\000\000\0039\000\000\000\000\000\000\0039\000\000\000\000\0039\000\000\0039\000\000\000\000\0039\000\000\000\000\0039\0039\0039\000\000\0039\0039\0039\000\000\000\000\000\000\000\000\000\000\0039\0039\0039\0039\000\000\0039\000\000\0039\000\000\000\000\000\000\000\000\000\000\000\000\0039\0039\0039\0039\0039\0039\000\000\000\000\000\000\000\000\000\000\0039\000\000\0039\0039\000\000\000\000\000\000\000\000\000\000\0039\0039\0039\000\000\000\000\000\000\000\000\000\000\000\000\0039\000\000\0039\0039\0039\0039\0039\0039\0039\0039\0039\000\000\0039\000\000\000\000\000\000\000\000\000\000\0039\000\000\0039\0039\0039\000\000\000\000\000\000\000\000\0039\000\000\000\000\0039\000\000\0039\0039\000\000\0039\0039\0039\0039\000\000\000\000\000\000\000\000\000\000\000\000\0039\000\000\0039\0039\000\000\015\218\0039\0039\0039\0039\0039\0039\000\000\000\000\0039\0039\018\226\000\000\000\000\0039\0039\000\000\000\000\0039\0039\0039\0039\0035\000\000\0035\000\000\0035\000\000\000\000\000\000\0035\000\000\000\000\0035\000\000\0035\000\000\000\000\019\006\000\000\000\000\0035\0035\0035\000\000\0035\0035\0035\000\000\000\000\000\000\000\000\000\000\0035\0035\0035\019\138\000\000\0035\000\000\0035\000\000\000\000\000\000\000\000\000\000\000\000\0035\019\162\0035\0035\0035\0035\000\000\000\000\000\000\000\000\000\000\0035\000\000\0035\0035\000\000\000\000\000\000\000\000\000\000\0035\0035\0035\000\000\000\000\000\000\000\000\000\000\000\000\0035\000\000\0035\0035\019\030\019\186\0035\0035\0035\0035\0035\000\000\0035\000\000\000\000\000\000\000\000\000\000\0035\000\000\0035\0035\0035\000\000\000\000\000\000\000\000\0035\000\000\000\000\0035\000\000\0035\0035\000\000\0035\0035\0035\0035\000\000\000\000\000\000\000\000\000\000\000\000\0035\000\000\0035\0035\000\000\0035\0035\0035\0035\0035\0035\0035\000\000\000\000\0035\0035\0035\000\000\000\000\0035\0035\000\000\000\000\0035\0035\0035\0035\0031\000\000\0031\000\000\0031\000\000\000\000\000\000\0031\000\000\000\000\0031\000\000\0031\000\000\000\000\0031\000\000\000\000\0031\0031\0031\000\000\0031\0031\0031\000\000\000\000\000\000\000\000\000\000\0031\0031\0031\0031\000\000\0031\000\000\0031\000\000\000\000\000\000\000\000\000\000\000\000\0031\0031\0031\0031\0031\0031\000\000\000\000\000\000\000\000\000\000\0031\000\000\0031\0031\000\000\000\000\000\000\000\000\000\000\0031\0031\0031\000\000\000\000\000\000\000\000\000\000\000\000\0031\000\000\0031\0031\0031\0031\0031\0031\0031\0031\0031\000\000\0031\000\000\000\000\000\000\000\000\000\000\0031\000\000\0031\0031\0031\000\000\000\000\000\000\000\000\0031\000\000\000\000\0031\000\000\0031\0031\000\000\0031\0031\0031\0031\000\000\000\000\000\000\000\000\000\000\000\000\0031\000\000\0031\0031\000\000\015\218\0031\0031\0031\0031\0031\0031\000\000\000\000\0031\0031\018\226\000\000\000\000\0031\0031\000\000\000\000\0031\0031\0031\0031\003-\000\000\003-\000\000\003-\000\000\000\000\000\000\003-\000\000\000\000\003-\000\000\003-\000\000\000\000\019\006\000\000\000\000\003-\003-\003-\000\000\003-\003-\003-\000\000\000\000\000\000\000\000\000\000\019r\019\210\019\234\019\138\000\000\003-\000\000\003-\000\000\000\000\000\000\000\000\000\000\000\000\003-\019\162\003-\020\026\0202\003-\000\000\000\000\000\000\000\000\000\000\003-\000\000\003-\003-\000\000\000\000\000\000\000\000\000\000\003-\003-\000\242\000\000\000\000\000\000\000\000\000\000\000\000\003-\000\000\003-\003-\019\030\019\186\020b\020z\003-\003-\003-\000\000\003-\000\000\000\000\000\000\000\000\000\000\003-\000\000\003-\003-\003-\000\000\000\000\000\000\000\000\003-\000\000\000\000\003-\000\000\003-\003-\000\000\003-\003-\003-\003-\000\000\000\000\000\000\000\000\000\000\000\000\003-\000\000\003-\003-\000\000\003-\003-\003-\003-\020\146\003-\003-\000\000\000\000\003-\003-\003-\000\000\000\000\020\170\020\194\000\000\000\000\003-\003-\003-\003-\003\217\000\000\003\217\000\000\003\217\000\000\000\000\000\000\003\217\000\000\000\000\003\217\000\000\003\217\000\000\000\000\003\217\000\000\000\000\003\217\003\217\003\217\000\000\003\217\003\217\003\217\000\000\000\000\000\000\000\000\000\000\003\217\003\217\003\217\003\217\000\000\003\217\000\000\003\217\000\000\000\000\000\000\000\000\000\000\000\000\003\217\003\217\003\217\003\217\003\217\003\217\000\000\000\000\000\000\000\000\000\000\003\217\000\000\003\217\003\217\000\000\000\000\000\000\000\000\000\000\003\217\003\217\003\217\000\000\000\000\000\000\000\000\000\000\000\000\003\217\000\000\003\217\003\217\003\217\003\217\003\217\003\217\003\217\003\217\003\217\000\000\003\217\000\000\000\000\000\000\000\000\000\000\003\217\000\000\003\217\003\217\003\217\000\000\000\000\000\000\000\000\003\217\000\000\000\000\003\217\000\000\003\217\003\217\000\000\003\217\003\217\003\217\003\217\000\000\000\000\000\000\000\000\000\000\000\000\003\217\000\000\003\217\003\217\000\000\015\218\003\217\003\217\003\217\003\217\003\217\003\217\000\000\000\000\003\217\003\217\018\226\000\000\000\000\003\217\003\217\000\000\000\000\003\217\003\217\003\217\003\217\003\213\000\000\003\213\000\000\003\213\000\000\000\000\000\000\003\213\000\000\000\000\003\213\000\000\003\213\000\000\000\000\019\006\000\000\000\000\003\213\003\213\003\213\000\000\003\213\003\213\003\213\000\000\000\000\000\000\000\000\000\000\019r\019\210\019\234\019\138\000\000\003\213\000\000\003\213\000\000\000\000\000\000\000\000\000\000\000\000\003\213\019\162\003\213\020\026\0202\003\213\000\000\000\000\000\000\000\000\000\000\003\213\000\000\003\213\003\213\000\000\000\000\000\000\000\000\000\000\003\213\003\213\003\213\000\000\000\000\000\000\000\000\000\000\000\000\003\213\000\000\003\213\003\213\019\030\019\186\020b\003\213\003\213\003\213\003\213\000\000\003\213\000\000\000\000\000\000\000\000\000\000\003\213\000\000\003\213\003\213\003\213\000\000\000\000\000\000\000\000\003\213\000\000\000\000\003\213\000\000\003\213\003\213\000\000\003\213\003\213\003\213\003\213\000\000\000\000\000\000\000\000\000\000\000\000\003\213\000\000\003\213\003\213\000\000\003\213\003\213\003\213\003\213\020\146\003\213\003\213\000\000\000\000\003\213\003\213\003\213\000\000\000\000\003\213\003\213\000\000\000\000\003\213\003\213\003\213\003\213\003)\000\000\003)\000\000\003)\000\000\000\000\000\000\003)\000\000\000\000\003)\000\000\003)\000\000\000\000\003)\000\000\000\000\003)\003)\003)\000\000\003)\003)\003)\000\000\000\000\000\000\000\000\000\000\003)\003)\003)\003)\000\000\003)\000\000\003)\000\000\000\000\000\000\000\000\000\000\000\000\003)\003)\003)\003)\003)\003)\000\000\000\000\000\000\000\000\000\000\003)\000\000\003)\003)\000\000\000\000\000\000\000\000\000\000\003)\003)\003)\000\000\000\000\000\000\000\000\000\000\000\000\003)\000\000\003)\003)\003)\003)\003)\003)\003)\003)\003)\000\000\003)\000\000\000\000\000\000\000\000\000\000\003)\000\000\003)\003)\003)\000\000\000\000\000\000\000\000\003)\000\000\000\000\003)\000\000\003)\003)\000\000\003)\003)\003)\003)\000\000\000\000\000\000\000\000\000\000\000\000\003)\000\000\003)\003)\000\000\015\218\003)\003)\003)\003)\003)\003)\000\000\000\000\003)\003)\018\226\000\000\000\000\003)\003)\000\000\000\000\003)\003)\003)\003)\003%\000\000\003%\000\000\003%\000\000\000\000\000\000\003%\000\000\000\000\003%\000\000\003%\000\000\000\000\019\006\000\000\000\000\003%\003%\003%\000\000\003%\003%\003%\000\000\000\000\000\000\000\000\000\000\019r\019\210\019\234\019\138\000\000\003%\000\000\003%\000\000\000\000\000\000\000\000\000\000\000\000\003%\019\162\003%\020\026\0202\003%\000\000\000\000\000\000\000\000\000\000\003%\000\000\003%\003%\000\000\000\000\000\000\000\000\000\000\003%\003%\000\242\000\000\000\000\000\000\000\000\000\000\000\000\003%\000\000\003%\003%\019\030\019\186\020b\020z\003%\003%\003%\000\000\003%\000\000\000\000\000\000\000\000\000\000\003%\000\000\003%\003%\003%\000\000\000\000\000\000\000\000\003%\000\000\000\000\003%\000\000\003%\003%\000\000\003%\003%\003%\003%\000\000\000\000\000\000\000\000\000\000\000\000\003%\000\000\003%\003%\000\000\003%\003%\003%\003%\020\146\003%\003%\000\000\000\000\003%\003%\003%\000\000\000\000\020\170\020\194\000\000\000\000\003%\003%\003%\003%\003!\000\000\003!\000\000\003!\000\000\000\000\000\000\003!\000\000\000\000\003!\000\000\003!\000\000\000\000\003!\000\000\000\000\003!\003!\003!\000\000\003!\003!\003!\000\000\000\000\000\000\000\000\000\000\003!\003!\003!\003!\000\000\003!\000\000\003!\000\000\000\000\000\000\000\000\000\000\000\000\003!\003!\003!\003!\003!\003!\000\000\000\000\000\000\000\000\000\000\003!\000\000\003!\003!\000\000\000\000\000\000\000\000\000\000\003!\003!\003!\000\000\000\000\000\000\000\000\000\000\000\000\003!\000\000\003!\003!\003!\003!\003!\003!\003!\003!\003!\000\000\003!\000\000\000\000\000\000\000\000\000\000\003!\000\000\003!\003!\003!\000\000\000\000\000\000\000\000\003!\000\000\000\000\003!\000\000\003!\003!\000\000\003!\003!\003!\003!\000\000\000\000\000\000\000\000\000\000\000\000\003!\000\000\003!\003!\000\000\015\218\003!\003!\003!\003!\003!\003!\000\000\000\000\003!\003!\018\226\000\000\000\000\003!\003!\000\000\000\000\003!\003!\003!\003!\003\029\000\000\003\029\000\000\003\029\000\000\000\000\000\000\003\029\000\000\000\000\003\029\000\000\003\029\000\000\000\000\019\006\000\000\000\000\003\029\003\029\003\029\000\000\003\029\003\029\003\029\000\000\000\000\000\000\000\000\000\000\019r\019\210\019\234\019\138\000\000\003\029\000\000\003\029\000\000\000\000\000\000\000\000\000\000\000\000\003\029\019\162\003\029\020\026\0202\003\029\000\000\000\000\000\000\000\000\000\000\003\029\000\000\003\029\003\029\000\000\000\000\000\000\000\000\000\000\003\029\003\029\000\242\000\000\000\000\000\000\000\000\000\000\000\000\003\029\000\000\003\029\003\029\019\030\019\186\020b\020z\003\029\003\029\003\029\000\000\003\029\000\000\000\000\000\000\000\000\000\000\003\029\000\000\003\029\003\029\003\029\000\000\000\000\000\000\000\000\003\029\000\000\000\000\003\029\000\000\003\029\003\029\000\000\003\029\003\029\003\029\003\029\000\000\000\000\000\000\000\000\000\000\000\000\003\029\000\000\003\029\003\029\000\000\003\029\003\029\003\029\003\029\020\146\003\029\003\029\000\000\000\000\003\029\003\029\003\029\000\000\000\000\020\170\020\194\000\000\000\000\003\029\003\029\003\029\003\029\003\025\000\000\003\025\000\000\003\025\000\000\000\000\000\000\003\025\000\000\000\000\003\025\000\000\003\025\000\000\000\000\003\025\000\000\000\000\003\025\003\025\003\025\000\000\003\025\003\025\003\025\000\000\000\000\000\000\000\000\000\000\003\025\003\025\003\025\003\025\000\000\003\025\000\000\003\025\000\000\000\000\000\000\000\000\000\000\000\000\003\025\003\025\003\025\003\025\003\025\003\025\000\000\000\000\000\000\000\000\000\000\003\025\000\000\003\025\003\025\000\000\000\000\000\000\000\000\000\000\003\025\003\025\003\025\000\000\000\000\000\000\000\000\000\000\000\000\003\025\000\000\003\025\003\025\003\025\003\025\003\025\003\025\003\025\003\025\003\025\000\000\003\025\000\000\000\000\000\000\000\000\000\000\003\025\000\000\003\025\003\025\003\025\000\000\000\000\000\000\000\000\003\025\000\000\000\000\003\025\000\000\003\025\003\025\000\000\003\025\003\025\003\025\003\025\000\000\000\000\000\000\000\000\000\000\000\000\003\025\000\000\003\025\003\025\000\000\015\218\003\025\003\025\003\025\003\025\003\025\003\025\000\000\000\000\003\025\003\025\018\226\000\000\000\000\003\025\003\025\000\000\000\000\003\025\003\025\003\025\003\025\003\021\000\000\003\021\000\000\003\021\000\000\000\000\000\000\003\021\000\000\000\000\003\021\000\000\003\021\000\000\000\000\019\006\000\000\000\000\003\021\003\021\003\021\000\000\003\021\003\021\003\021\000\000\000\000\000\000\000\000\000\000\019r\019\210\019\234\019\138\000\000\003\021\000\000\003\021\000\000\000\000\000\000\000\000\000\000\000\000\003\021\019\162\003\021\020\026\0202\003\021\000\000\000\000\000\000\000\000\000\000\003\021\000\000\003\021\003\021\000\000\000\000\000\000\000\000\000\000\003\021\003\021\000\242\000\000\000\000\000\000\000\000\000\000\000\000\003\021\000\000\003\021\003\021\019\030\019\186\020b\020z\003\021\003\021\003\021\000\000\003\021\000\000\000\000\000\000\000\000\000\000\003\021\000\000\003\021\003\021\003\021\000\000\000\000\000\000\000\000\003\021\000\000\000\000\003\021\000\000\003\021\003\021\000\000\003\021\003\021\003\021\003\021\000\000\000\000\000\000\000\000\000\000\000\000\003\021\000\000\003\021\003\021\000\000\003\021\003\021\003\021\003\021\020\146\003\021\003\021\000\000\000\000\003\021\003\021\003\021\000\000\000\000\020\170\020\194\000\000\000\000\003\021\003\021\003\021\003\021\003\161\000\000\003\161\000\000\003\161\000\000\000\000\000\000\003\161\000\000\000\000\003\161\000\000\003\161\000\000\000\000\003\161\000\000\000\000\003\161\003\161\003\161\000\000\003\161\003\161\003\161\000\000\000\000\000\000\000\000\000\000\003\161\003\161\003\161\003\161\000\000\003\161\000\000\003\161\000\000\000\000\000\000\000\000\000\000\000\000\003\161\003\161\003\161\003\161\003\161\003\161\000\000\000\000\000\000\000\000\000\000\003\161\000\000\003\161\003\161\000\000\000\000\000\000\000\000\000\000\003\161\003\161\003\161\000\000\000\000\000\000\000\000\000\000\000\000\003\161\000\000\003\161\003\161\003\161\003\161\003\161\003\161\003\161\003\161\003\161\000\000\003\161\000\000\000\000\000\000\000\000\000\000\003\161\000\000\003\161\003\161\003\161\000\000\000\000\000\000\000\000\003\161\000\000\000\000\003\161\000\000\003\161\003\161\000\000\003\161\003\161\003\161\003\161\000\000\000\000\000\000\000\000\000\000\000\000\003\161\000\000\003\161\003\161\000\000\015\218\003\161\003\161\003\161\003\161\003\161\003\161\000\000\000\000\003\161\003\161\018\226\000\000\000\000\003\161\003\161\000\000\000\000\003\161\003\161\003\161\003\161\003\157\000\000\003\157\000\000\003\157\000\000\000\000\000\000\003\157\000\000\000\000\003\157\000\000\003\157\000\000\000\000\019\006\000\000\000\000\003\157\003\157\003\157\000\000\003\157\003\157\003\157\000\000\000\000\000\000\000\000\000\000\019r\019\210\019\234\019\138\000\000\003\157\000\000\003\157\000\000\000\000\000\000\000\000\000\000\000\000\003\157\019\162\003\157\020\026\0202\003\157\000\000\000\000\000\000\000\000\000\000\003\157\000\000\003\157\003\157\000\000\000\000\000\000\000\000\000\000\003\157\003\157\000\242\000\000\000\000\000\000\000\000\000\000\000\000\003\157\000\000\003\157\003\157\019\030\019\186\020b\020z\003\157\003\157\003\157\000\000\003\157\000\000\000\000\000\000\000\000\000\000\003\157\000\000\003\157\003\157\003\157\000\000\000\000\000\000\000\000\003\157\000\000\000\000\003\157\000\000\003\157\003\157\000\000\003\157\003\157\003\157\003\157\000\000\000\000\000\000\000\000\000\000\000\000\003\157\000\000\003\157\003\157\000\000\003\157\003\157\003\157\003\157\020\146\003\157\003\157\000\000\000\000\003\157\003\157\003\157\000\000\000\000\020\170\020\194\000\000\000\000\003\157\003\157\003\157\003\157\003\145\000\000\003\145\000\000\003\145\000\000\000\000\000\000\003\145\000\000\000\000\003\145\000\000\003\145\000\000\000\000\003\145\000\000\000\000\003\145\003\145\003\145\000\000\003\145\003\145\003\145\000\000\000\000\000\000\000\000\000\000\003\145\003\145\003\145\003\145\000\000\003\145\000\000\003\145\000\000\000\000\000\000\000\000\000\000\000\000\003\145\003\145\003\145\003\145\003\145\003\145\000\000\000\000\000\000\000\000\000\000\003\145\000\000\003\145\003\145\000\000\000\000\000\000\000\000\000\000\003\145\003\145\003\145\000\000\000\000\000\000\000\000\000\000\000\000\003\145\000\000\003\145\003\145\003\145\003\145\003\145\003\145\003\145\003\145\003\145\000\000\003\145\000\000\000\000\000\000\000\000\000\000\003\145\000\000\003\145\003\145\003\145\000\000\000\000\000\000\000\000\003\145\000\000\000\000\003\145\000\000\003\145\003\145\000\000\003\145\003\145\003\145\003\145\000\000\000\000\000\000\000\000\000\000\000\000\003\145\000\000\003\145\003\145\000\000\015\218\003\145\003\145\003\145\003\145\003\145\003\145\000\000\000\000\003\145\003\145\018\226\000\000\000\000\003\145\003\145\000\000\000\000\003\145\003\145\003\145\003\145\003\141\000\000\003\141\000\000\003\141\000\000\000\000\000\000\003\141\000\000\000\000\003\141\000\000\003\141\000\000\000\000\019\006\000\000\000\000\003\141\003\141\003\141\000\000\003\141\003\141\003\141\000\000\000\000\000\000\000\000\000\000\019r\019\210\019\234\019\138\000\000\003\141\000\000\003\141\000\000\000\000\000\000\000\000\000\000\000\000\003\141\019\162\003\141\020\026\0202\003\141\000\000\000\000\000\000\000\000\000\000\003\141\000\000\003\141\003\141\000\000\000\000\000\000\000\000\000\000\003\141\003\141\000\242\000\000\000\000\000\000\000\000\000\000\000\000\003\141\000\000\003\141\003\141\019\030\019\186\020b\020z\003\141\003\141\003\141\000\000\003\141\000\000\000\000\000\000\000\000\000\000\003\141\000\000\003\141\003\141\003\141\000\000\000\000\000\000\000\000\003\141\000\000\000\000\003\141\000\000\003\141\003\141\000\000\003\141\003\141\003\141\003\141\000\000\000\000\000\000\000\000\000\000\000\000\003\141\000\000\003\141\003\141\000\000\003\141\003\141\003\141\003\141\020\146\003\141\003\141\000\000\000\000\003\141\003\141\003\141\000\000\000\000\020\170\020\194\000\000\000\000\003\141\003\141\003\141\003\141\003\177\000\000\003\177\000\000\003\177\000\000\000\000\000\000\003\177\000\000\000\000\003\177\000\000\003\177\000\000\000\000\003\177\000\000\000\000\003\177\003\177\003\177\000\000\003\177\003\177\003\177\000\000\000\000\000\000\000\000\000\000\003\177\003\177\003\177\003\177\000\000\003\177\000\000\003\177\000\000\000\000\000\000\000\000\000\000\000\000\003\177\003\177\003\177\003\177\003\177\003\177\000\000\000\000\000\000\000\000\000\000\003\177\000\000\003\177\003\177\000\000\000\000\000\000\000\000\000\000\003\177\003\177\003\177\000\000\000\000\000\000\000\000\000\000\000\000\003\177\000\000\003\177\003\177\003\177\003\177\003\177\003\177\003\177\003\177\003\177\000\000\003\177\000\000\000\000\000\000\000\000\000\000\003\177\000\000\003\177\003\177\003\177\000\000\000\000\000\000\000\000\003\177\000\000\000\000\003\177\000\000\003\177\003\177\000\000\003\177\003\177\003\177\003\177\000\000\000\000\000\000\000\000\000\000\000\000\003\177\000\000\003\177\003\177\000\000\015\218\003\177\003\177\003\177\003\177\003\177\003\177\000\000\000\000\003\177\003\177\018\226\000\000\000\000\003\177\003\177\000\000\000\000\003\177\003\177\003\177\003\177\003\173\000\000\003\173\000\000\003\173\000\000\000\000\000\000\003\173\000\000\000\000\003\173\000\000\003\173\000\000\000\000\019\006\000\000\000\000\003\173\003\173\003\173\000\000\003\173\003\173\003\173\000\000\000\000\000\000\000\000\000\000\019r\019\210\019\234\019\138\000\000\020\002\000\000\003\173\000\000\000\000\000\000\000\000\000\000\000\000\003\173\019\162\003\173\020\026\0202\003\173\000\000\000\000\000\000\000\000\000\000\003\173\000\000\020J\003\173\000\000\000\000\000\000\000\000\000\000\003\173\003\173\000\242\000\000\000\000\000\000\000\000\000\000\000\000\003\173\000\000\003\173\003\173\019\030\019\186\020b\020z\020\218\003\173\003\173\000\000\003\173\000\000\000\000\000\000\000\000\000\000\003\173\000\000\003\173\003\173\020\242\000\000\000\000\000\000\000\000\003\173\000\000\000\000\003\173\000\000\003\173\021\n\000\000\003\173\003\173\003\173\003\173\000\000\000\000\000\000\000\000\000\000\000\000\003\173\000\000\003\173\003\173\000\000\003\173\003\173\003\173\003\173\020\146\003\173\003\173\000\000\000\000\003\173\021\"\003\173\000\000\000\000\020\170\020\194\000\000\000\000\003\173\003\173\021:\021R\003\185\000\000\003\185\000\000\003\185\000\000\000\000\000\000\003\185\000\000\000\000\003\185\000\000\003\185\000\000\000\000\003\185\000\000\000\000\003\185\003\185\003\185\000\000\003\185\003\185\003\185\000\000\000\000\000\000\000\000\000\000\003\185\003\185\003\185\003\185\000\000\003\185\000\000\003\185\000\000\000\000\000\000\000\000\000\000\000\000\003\185\003\185\003\185\003\185\003\185\003\185\000\000\000\000\000\000\000\000\000\000\003\185\000\000\003\185\003\185\000\000\000\000\000\000\000\000\000\000\003\185\003\185\003\185\000\000\000\000\000\000\000\000\000\000\000\000\003\185\000\000\003\185\003\185\003\185\003\185\003\185\003\185\003\185\003\185\003\185\000\000\003\185\000\000\000\000\000\000\000\000\000\000\003\185\000\000\003\185\003\185\003\185\000\000\000\000\000\000\000\000\003\185\000\000\000\000\003\185\000\000\003\185\003\185\000\000\003\185\003\185\003\185\003\185\000\000\000\000\000\000\000\000\000\000\000\000\003\185\000\000\003\185\003\185\000\000\015\218\003\185\003\185\003\185\003\185\003\185\003\185\000\000\000\000\003\185\003\185\018\226\000\000\000\000\003\185\003\185\000\000\000\000\003\185\003\185\003\185\003\185\003\181\000\000\003\181\000\000\003\181\000\000\000\000\000\000\003\181\000\000\000\000\003\181\000\000\003\181\000\000\000\000\019\006\000\000\000\000\003\181\003\181\003\181\000\000\003\181\003\181\003\181\000\000\000\000\000\000\000\000\000\000\019r\019\210\019\234\019\138\000\000\003\181\000\000\003\181\000\000\000\000\000\000\000\000\000\000\000\000\003\181\019\162\003\181\020\026\0202\003\181\000\000\000\000\000\000\000\000\000\000\003\181\000\000\020J\003\181\000\000\000\000\000\000\000\000\000\000\003\181\003\181\000\242\000\000\000\000\000\000\000\000\000\000\000\000\003\181\000\000\003\181\003\181\019\030\019\186\020b\020z\020\218\003\181\003\181\000\000\003\181\000\000\000\000\000\000\000\000\000\000\003\181\000\000\003\181\003\181\020\242\000\000\000\000\000\000\000\000\003\181\000\000\000\000\003\181\000\000\003\181\021\n\000\000\003\181\003\181\003\181\003\181\000\000\000\000\000\000\000\000\000\000\000\000\003\181\000\000\003\181\003\181\000\000\003\181\003\181\003\181\003\181\020\146\003\181\003\181\000\000\000\000\003\181\003\181\003\181\000\000\000\000\020\170\020\194\000\000\000\000\003\181\003\181\021:\021R\003\193\000\000\003\193\000\000\003\193\000\000\000\000\000\000\003\193\000\000\000\000\003\193\000\000\003\193\000\000\000\000\003\193\000\000\000\000\003\193\003\193\003\193\000\000\003\193\003\193\003\193\000\000\000\000\000\000\000\000\000\000\003\193\003\193\003\193\003\193\000\000\003\193\000\000\003\193\000\000\000\000\000\000\000\000\000\000\000\000\003\193\003\193\003\193\003\193\003\193\003\193\000\000\000\000\000\000\000\000\000\000\003\193\000\000\003\193\003\193\000\000\000\000\000\000\000\000\000\000\003\193\003\193\003\193\000\000\000\000\000\000\000\000\000\000\000\000\003\193\000\000\003\193\003\193\003\193\003\193\003\193\003\193\003\193\003\193\003\193\000\000\003\193\000\000\000\000\000\000\000\000\000\000\003\193\000\000\003\193\003\193\003\193\000\000\000\000\000\000\000\000\003\193\000\000\000\000\003\193\000\000\003\193\003\193\000\000\003\193\003\193\003\193\003\193\000\000\000\000\000\000\000\000\000\000\000\000\003\193\000\000\003\193\003\193\000\000\015\218\003\193\003\193\003\193\003\193\003\193\003\193\000\000\000\000\003\193\003\193\018\226\000\000\000\000\003\193\003\193\000\000\000\000\003\193\003\193\003\193\003\193\003\189\000\000\003\189\000\000\003\189\000\000\000\000\000\000\003\189\000\000\000\000\003\189\000\000\003\189\000\000\000\000\019\006\000\000\000\000\003\189\003\189\003\189\000\000\003\189\003\189\003\189\000\000\000\000\000\000\000\000\000\000\019r\019\210\019\234\019\138\000\000\003\189\000\000\003\189\000\000\000\000\000\000\000\000\000\000\000\000\003\189\019\162\003\189\020\026\0202\003\189\000\000\000\000\000\000\000\000\000\000\003\189\000\000\020J\003\189\000\000\000\000\000\000\000\000\000\000\003\189\003\189\000\242\000\000\000\000\000\000\000\000\000\000\000\000\003\189\000\000\003\189\003\189\019\030\019\186\020b\020z\020\218\003\189\003\189\000\000\003\189\000\000\000\000\000\000\000\000\000\000\003\189\000\000\003\189\003\189\020\242\000\000\000\000\000\000\000\000\003\189\000\000\000\000\003\189\000\000\003\189\021\n\000\000\003\189\003\189\003\189\003\189\000\000\000\000\000\000\000\000\000\000\000\000\003\189\000\000\003\189\003\189\000\000\003\189\003\189\003\189\003\189\020\146\003\189\003\189\000\000\000\000\003\189\003\189\003\189\000\000\000\000\020\170\020\194\000\000\000\000\003\189\003\189\021:\021R\012A\000\000\012A\000\000\012A\000\000\000\000\000\000\012A\000\000\000\000\012A\000\000\012A\000\000\000\000\012A\000\000\000\000\012A\012A\012A\000\000\012A\012A\012A\000\000\000\000\000\000\000\000\000\000\012A\012A\012A\012A\000\000\012A\000\000\012A\000\000\000\000\000\000\000\000\000\000\000\000\012A\012A\012A\012A\012A\012A\000\000\000\000\000\000\000\000\000\000\012A\000\000\012A\012A\000\000\000\000\000\000\000\000\000\000\012A\012A\012A\000\000\000\000\000\000\000\000\000\000\000\000\012A\000\000\012A\012A\012A\012A\012A\012A\012A\012A\012A\000\000\012A\000\000\000\000\000\000\000\000\000\000\012A\000\000\012A\012A\012A\000\000\000\000\000\000\000\000\012A\000\000\000\000\012A\000\000\012A\012A\000\000\012A\012A\012A\012A\000\000\000\000\000\000\000\000\000\000\000\000\012A\000\000\012A\012A\000\000\015\218\012A\012A\012A\012A\012A\012A\000\000\000\000\012A\012A\018\226\000\000\000\000\012A\012A\000\000\000\000\012A\012A\012A\012A\012=\000\000\012=\000\000\012=\000\000\000\000\000\000\012=\000\000\000\000\012=\000\000\012=\000\000\000\000\019\006\000\000\000\000\012=\012=\012=\000\000\012=\012=\012=\000\000\000\000\000\000\000\000\000\000\019r\019\210\019\234\019\138\000\000\020\002\000\000\012=\000\000\000\000\000\000\000\000\000\000\000\000\012=\019\162\012=\020\026\0202\012=\000\000\000\000\000\000\000\000\000\000\012=\000\000\020J\012=\000\000\000\000\000\000\000\000\000\000\012=\012=\000\242\000\000\000\000\000\000\000\000\000\000\000\000\012=\000\000\012=\012=\019\030\019\186\020b\020z\020\218\012=\012=\000\000\012=\000\000\000\000\000\000\000\000\000\000\012=\000\000\012=\012=\020\242\000\000\000\000\000\000\000\000\012=\000\000\000\000\012=\000\000\012=\021\n\000\000\012=\012=\012=\012=\000\000\000\000\000\000\000\000\000\000\000\000\012=\000\000\012=\012=\000\000\012=\012=\012=\012=\020\146\012=\012=\000\000\000\000\012=\021\"\012=\000\000\000\000\020\170\020\194\000\000\000\000\012=\012=\021:\021R\003\201\000\000\003\201\000\000\003\201\000\000\000\000\000\000\003\201\000\000\000\000\003\201\000\000\003\201\000\000\000\000\003\201\000\000\000\000\003\201\003\201\003\201\000\000\003\201\003\201\003\201\000\000\000\000\000\000\000\000\000\000\003\201\003\201\003\201\003\201\000\000\003\201\000\000\003\201\000\000\000\000\000\000\000\000\000\000\000\000\003\201\003\201\003\201\003\201\003\201\003\201\000\000\000\000\000\000\000\000\000\000\003\201\000\000\003\201\003\201\000\000\000\000\000\000\000\000\000\000\003\201\003\201\003\201\000\000\000\000\000\000\000\000\000\000\000\000\003\201\000\000\003\201\003\201\003\201\003\201\003\201\003\201\003\201\003\201\003\201\000\000\003\201\000\000\000\000\000\000\000\000\000\000\003\201\000\000\003\201\003\201\003\201\000\000\000\000\000\000\000\000\003\201\000\000\000\000\003\201\000\000\003\201\003\201\000\000\003\201\003\201\003\201\003\201\000\000\000\000\000\000\000\000\000\000\000\000\003\201\000\000\003\201\003\201\000\000\015\218\003\201\003\201\003\201\003\201\003\201\003\201\000\000\000\000\003\201\003\201\018\226\000\000\000\000\003\201\003\201\000\000\000\000\003\201\003\201\003\201\003\201\003\197\000\000\003\197\000\000\003\197\000\000\000\000\000\000\003\197\000\000\000\000\003\197\000\000\003\197\000\000\000\000\019\006\000\000\000\000\003\197\003\197\003\197\000\000\003\197\003\197\003\197\000\000\000\000\000\000\000\000\000\000\019r\019\210\019\234\019\138\000\000\020\002\000\000\003\197\000\000\000\000\000\000\000\000\000\000\000\000\003\197\019\162\003\197\020\026\0202\003\197\000\000\000\000\000\000\000\000\000\000\003\197\000\000\020J\003\197\000\000\000\000\000\000\000\000\000\000\003\197\003\197\000\242\000\000\000\000\000\000\000\000\000\000\000\000\003\197\000\000\003\197\003\197\019\030\019\186\020b\020z\020\218\003\197\003\197\000\000\003\197\000\000\000\000\000\000\000\000\000\000\003\197\000\000\003\197\003\197\020\242\000\000\000\000\000\000\000\000\003\197\000\000\000\000\003\197\000\000\003\197\021\n\000\000\003\197\003\197\003\197\003\197\000\000\000\000\000\000\000\000\000\000\000\000\003\197\000\000\003\197\003\197\000\000\021j\003\197\003\197\021\162\020\146\003\197\003\197\000\000\000\000\003\197\021\"\003\197\000\000\000\000\020\170\020\194\000\000\000\000\003\197\003\197\021:\021R\012)\000\000\012)\000\000\012)\000\000\000\000\000\000\012)\000\000\000\000\012)\000\000\012)\000\000\000\000\019\006\000\000\000\000\012)\012)\012)\000\000\012)\012)\012)\000\000\000\000\000\000\000\000\000\000\019r\019\210\019\234\019\138\000\000\020\002\000\000\012)\000\000\000\000\000\000\000\000\000\000\000\000\012)\019\162\012)\020\026\0202\012)\000\000\000\000\000\000\000\000\000\000\012)\000\000\020J\012)\000\000\000\000\000\000\000\000\000\000\012)\012)\000\242\000\000\000\000\000\000\000\000\000\000\000\000\012)\000\000\012)\012)\019\030\019\186\020b\020z\020\218\012)\012)\000\000\012)\000\000\000\000\000\000\000\000\000\000\012)\000\000\012)\012)\020\242\000\000\000\000\000\000\000\000\012)\000\000\000\000\012)\000\000\012)\021\n\000\000\012)\012)\012)\012)\000\000\000\000\000\000\000\000\000\000\000\000\012)\000\000\012)\012)\000\000\012)\012)\012)\012)\020\146\012)\012)\000\000\000\000\012)\021\"\012)\000\000\000\000\020\170\020\194\000\000\000\000\012)\012)\021:\021R\004\t\000\000\004\t\000\000\004\t\000\000\000\000\000\000\004\t\000\000\000\000\004\t\000\000\004\t\000\000\000\000\004\t\000\000\000\000\004\t\004\t\004\t\000\000\004\t\004\t\004\t\000\000\000\000\000\000\000\000\000\000\004\t\004\t\004\t\004\t\000\000\004\t\000\000\004\t\000\000\000\000\000\000\000\000\000\000\000\000\004\t\004\t\004\t\004\t\004\t\004\t\000\000\000\000\000\000\000\000\000\000\004\t\000\000\004\t\004\t\000\000\000\000\000\000\000\000\000\000\004\t\004\t\004\t\000\000\000\000\000\000\000\000\000\000\000\000\004\t\000\000\004\t\004\t\004\t\004\t\004\t\004\t\004\t\004\t\004\t\000\000\004\t\000\000\000\000\000\000\000\000\000\000\004\t\000\000\004\t\004\t\004\t\000\000\000\000\000\000\000\000\004\t\000\000\000\000\004\t\000\000\004\t\004\t\000\000\004\t\004\t\004\t\004\t\000\000\000\000\000\000\000\000\000\000\000\000\004\t\000\000\004\t\004\t\000\000\015\218\004\t\004\t\004\t\004\t\004\t\004\t\000\000\000\000\004\t\004\t\018\226\000\000\000\000\004\t\004\t\000\000\000\000\004\t\004\t\004\t\004\t\004\005\000\000\004\005\000\000\004\005\000\000\000\000\000\000\004\005\000\000\000\000\004\005\000\000\004\005\000\000\000\000\019\006\000\000\000\000\004\005\004\005\004\005\000\000\004\005\004\005\004\005\000\000\000\000\000\000\000\000\000\000\019r\019\210\019\234\019\138\000\000\020\002\000\000\004\005\000\000\000\000\000\000\000\000\000\000\000\000\004\005\019\162\004\005\020\026\0202\004\005\000\000\000\000\000\000\000\000\000\000\004\005\000\000\020J\004\005\000\000\000\000\000\000\000\000\000\000\004\005\004\005\000\242\000\000\000\000\000\000\000\000\000\000\000\000\004\005\000\000\004\005\004\005\019\030\019\186\020b\020z\020\218\004\005\004\005\000\000\004\005\000\000\000\000\000\000\000\000\000\000\004\005\000\000\004\005\004\005\020\242\000\000\000\000\000\000\000\000\004\005\000\000\000\000\004\005\000\000\004\005\021\n\000\000\004\005\004\005\004\005\004\005\000\000\000\000\000\000\000\000\000\000\000\000\004\005\000\000\004\005\004\005\000\000\021j\004\005\004\005\021\162\020\146\004\005\004\005\000\000\000\000\004\005\021\"\004\005\000\000\000\000\020\170\020\194\000\000\000\000\004\005\004\005\021:\021R\004)\000\000\004)\000\000\004)\000\000\000\000\000\000\004)\000\000\000\000\004)\000\000\004)\000\000\000\000\004)\000\000\000\000\004)\004)\004)\000\000\004)\004)\004)\000\000\000\000\000\000\000\000\000\000\004)\004)\004)\004)\000\000\004)\000\000\004)\000\000\000\000\000\000\000\000\000\000\000\000\004)\004)\004)\004)\004)\004)\000\000\000\000\000\000\000\000\000\000\004)\000\000\004)\004)\000\000\000\000\000\000\000\000\000\000\004)\004)\004)\000\000\000\000\000\000\000\000\000\000\000\000\004)\000\000\004)\004)\004)\004)\004)\004)\004)\004)\004)\000\000\004)\000\000\000\000\000\000\000\000\000\000\004)\000\000\004)\004)\004)\000\000\000\000\000\000\000\000\004)\000\000\000\000\004)\000\000\004)\004)\000\000\004)\004)\004)\004)\000\000\000\000\000\000\000\000\000\000\000\000\004)\000\000\004)\004)\000\000\015\218\004)\004)\004)\004)\004)\004)\000\000\000\000\004)\004)\018\226\000\000\000\000\004)\004)\000\000\000\000\004)\004)\004)\004)\004%\000\000\004%\000\000\004%\000\000\000\000\000\000\004%\000\000\000\000\004%\000\000\004%\000\000\000\000\019\006\000\000\000\000\004%\004%\004%\000\000\004%\004%\004%\000\000\000\000\000\000\000\000\000\000\019r\019\210\019\234\019\138\000\000\020\002\000\000\004%\000\000\000\000\000\000\000\000\000\000\000\000\004%\019\162\004%\020\026\0202\004%\000\000\000\000\000\000\000\000\000\000\004%\000\000\020J\004%\000\000\000\000\000\000\000\000\000\000\004%\004%\000\242\000\000\000\000\000\000\000\000\000\000\000\000\004%\000\000\004%\004%\019\030\019\186\020b\020z\020\218\004%\004%\000\000\004%\000\000\000\000\000\000\000\000\000\000\004%\000\000\004%\004%\020\242\000\000\000\000\000\000\000\000\004%\000\000\000\000\004%\000\000\004%\021\n\000\000\004%\004%\004%\004%\000\000\000\000\000\000\000\000\000\000\000\000\004%\000\000\004%\004%\000\000\021j\004%\004%\021\162\020\146\004%\004%\000\000\000\000\004%\021\"\004%\000\000\000\000\020\170\020\194\000\000\000\000\004%\004%\021:\021R\004\025\000\000\004\025\000\000\004\025\000\000\000\000\000\000\004\025\000\000\000\000\004\025\000\000\004\025\000\000\000\000\004\025\000\000\000\000\004\025\004\025\004\025\000\000\004\025\004\025\004\025\000\000\000\000\000\000\000\000\000\000\004\025\004\025\004\025\004\025\000\000\004\025\000\000\004\025\000\000\000\000\000\000\000\000\000\000\000\000\004\025\004\025\004\025\004\025\004\025\004\025\000\000\000\000\000\000\000\000\000\000\004\025\000\000\004\025\004\025\000\000\000\000\000\000\000\000\000\000\004\025\004\025\004\025\000\000\000\000\000\000\000\000\000\000\000\000\004\025\000\000\004\025\004\025\004\025\004\025\004\025\004\025\004\025\004\025\004\025\000\000\004\025\000\000\000\000\000\000\000\000\000\000\004\025\000\000\004\025\004\025\004\025\000\000\000\000\000\000\000\000\004\025\000\000\000\000\004\025\000\000\004\025\004\025\000\000\004\025\004\025\004\025\004\025\000\000\000\000\000\000\000\000\000\000\000\000\004\025\000\000\004\025\004\025\000\000\015\218\004\025\004\025\004\025\004\025\004\025\004\025\000\000\000\000\004\025\004\025\018\226\000\000\000\000\004\025\004\025\000\000\000\000\004\025\004\025\004\025\004\025\004\021\000\000\004\021\000\000\004\021\000\000\000\000\000\000\004\021\000\000\000\000\004\021\000\000\004\021\000\000\000\000\019\006\000\000\000\000\004\021\004\021\004\021\000\000\004\021\004\021\004\021\000\000\000\000\000\000\000\000\000\000\019r\019\210\019\234\019\138\000\000\020\002\000\000\004\021\000\000\000\000\000\000\000\000\000\000\000\000\004\021\019\162\004\021\020\026\0202\004\021\000\000\000\000\000\000\000\000\000\000\004\021\000\000\020J\004\021\000\000\000\000\000\000\000\000\000\000\004\021\004\021\000\242\000\000\000\000\000\000\000\000\000\000\000\000\004\021\000\000\004\021\004\021\019\030\019\186\020b\020z\020\218\004\021\004\021\000\000\004\021\000\000\000\000\000\000\000\000\000\000\004\021\000\000\004\021\004\021\020\242\000\000\000\000\000\000\000\000\004\021\000\000\000\000\004\021\000\000\004\021\021\n\000\000\004\021\004\021\004\021\004\021\000\000\000\000\000\000\000\000\000\000\000\000\004\021\000\000\004\021\004\021\000\000\021j\004\021\004\021\021\162\020\146\004\021\004\021\000\000\000\000\004\021\021\"\004\021\000\000\000\000\020\170\020\194\000\000\000\000\004\021\004\021\021:\021R\003\241\000\000\003\241\000\000\003\241\000\000\000\000\000\000\003\241\000\000\000\000\003\241\000\000\003\241\000\000\000\000\003\241\000\000\000\000\003\241\003\241\003\241\000\000\003\241\003\241\003\241\000\000\000\000\000\000\000\000\000\000\003\241\003\241\003\241\003\241\000\000\003\241\000\000\003\241\000\000\000\000\000\000\000\000\000\000\000\000\003\241\003\241\003\241\003\241\003\241\003\241\000\000\000\000\000\000\000\000\000\000\003\241\000\000\003\241\003\241\000\000\000\000\000\000\000\000\000\000\003\241\003\241\003\241\000\000\000\000\000\000\000\000\000\000\000\000\003\241\000\000\003\241\003\241\003\241\003\241\003\241\003\241\003\241\003\241\003\241\000\000\003\241\000\000\000\000\000\000\000\000\000\000\003\241\000\000\003\241\003\241\003\241\000\000\000\000\000\000\000\000\003\241\000\000\000\000\003\241\000\000\003\241\003\241\000\000\003\241\003\241\003\241\003\241\000\000\000\000\000\000\000\000\000\000\000\000\003\241\000\000\003\241\003\241\000\000\015\218\003\241\003\241\003\241\003\241\003\241\003\241\000\000\000\000\003\241\003\241\018\226\000\000\000\000\003\241\003\241\000\000\000\000\003\241\003\241\003\241\003\241\003\237\000\000\003\237\000\000\003\237\000\000\000\000\000\000\003\237\000\000\000\000\003\237\000\000\003\237\000\000\000\000\019\006\000\000\000\000\003\237\003\237\003\237\000\000\003\237\003\237\003\237\000\000\000\000\000\000\000\000\000\000\019r\019\210\019\234\019\138\000\000\020\002\000\000\003\237\000\000\000\000\000\000\000\000\000\000\000\000\003\237\019\162\003\237\020\026\0202\003\237\000\000\000\000\000\000\000\000\000\000\003\237\000\000\020J\003\237\000\000\000\000\000\000\000\000\000\000\003\237\003\237\000\242\000\000\000\000\000\000\000\000\000\000\000\000\003\237\000\000\003\237\003\237\019\030\019\186\020b\020z\020\218\003\237\003\237\000\000\003\237\000\000\000\000\000\000\000\000\000\000\003\237\000\000\003\237\003\237\020\242\000\000\000\000\000\000\000\000\003\237\000\000\000\000\003\237\000\000\003\237\021\n\000\000\003\237\003\237\003\237\003\237\000\000\000\000\000\000\000\000\000\000\000\000\003\237\000\000\003\237\003\237\000\000\021j\003\237\003\237\021\162\020\146\003\237\003\237\000\000\000\000\003\237\021\"\003\237\000\000\000\000\020\170\020\194\000\000\000\000\003\237\003\237\021:\021R\004\001\000\000\004\001\000\000\004\001\000\000\000\000\000\000\004\001\000\000\000\000\004\001\000\000\004\001\000\000\000\000\004\001\000\000\000\000\004\001\004\001\004\001\000\000\004\001\004\001\004\001\000\000\000\000\000\000\000\000\000\000\004\001\004\001\004\001\004\001\000\000\004\001\000\000\004\001\000\000\000\000\000\000\000\000\000\000\000\000\004\001\004\001\004\001\004\001\004\001\004\001\000\000\000\000\000\000\000\000\000\000\004\001\000\000\004\001\004\001\000\000\000\000\000\000\000\000\000\000\004\001\004\001\004\001\000\000\000\000\000\000\000\000\000\000\000\000\004\001\000\000\004\001\004\001\004\001\004\001\004\001\004\001\004\001\004\001\004\001\000\000\004\001\000\000\000\000\000\000\000\000\000\000\004\001\000\000\004\001\004\001\004\001\000\000\000\000\000\000\000\000\004\001\000\000\000\000\004\001\000\000\004\001\004\001\000\000\004\001\004\001\004\001\004\001\000\000\000\000\000\000\000\000\000\000\000\000\004\001\000\000\004\001\004\001\000\000\015\218\004\001\004\001\004\001\004\001\004\001\004\001\000\000\000\000\004\001\004\001\018\226\000\000\000\000\004\001\004\001\000\000\000\000\004\001\004\001\004\001\004\001\003\253\000\000\003\253\000\000\003\253\000\000\000\000\000\000\003\253\000\000\000\000\003\253\000\000\003\253\000\000\000\000\019\006\000\000\000\000\003\253\003\253\003\253\000\000\003\253\003\253\003\253\000\000\000\000\000\000\000\000\000\000\019r\019\210\019\234\019\138\000\000\020\002\000\000\003\253\000\000\000\000\000\000\000\000\000\000\000\000\003\253\019\162\003\253\020\026\0202\003\253\000\000\000\000\000\000\000\000\000\000\003\253\000\000\020J\003\253\000\000\000\000\000\000\000\000\000\000\003\253\003\253\000\242\000\000\000\000\000\000\000\000\000\000\000\000\003\253\000\000\003\253\003\253\019\030\019\186\020b\020z\020\218\003\253\003\253\000\000\003\253\000\000\000\000\000\000\000\000\000\000\003\253\000\000\003\253\003\253\020\242\000\000\000\000\000\000\000\000\003\253\000\000\000\000\003\253\000\000\003\253\021\n\000\000\003\253\003\253\003\253\003\253\000\000\000\000\000\000\000\000\000\000\000\000\003\253\000\000\003\253\003\253\000\000\021j\003\253\003\253\021\162\020\146\003\253\003\253\000\000\000\000\003\253\021\"\003\253\000\000\000\000\020\170\020\194\000\000\000\000\003\253\003\253\021:\021R\003\249\000\000\003\249\000\000\003\249\000\000\000\000\000\000\003\249\000\000\000\000\003\249\000\000\003\249\000\000\000\000\003\249\000\000\000\000\003\249\003\249\003\249\000\000\003\249\003\249\003\249\000\000\000\000\000\000\000\000\000\000\003\249\003\249\003\249\003\249\000\000\003\249\000\000\003\249\000\000\000\000\000\000\000\000\000\000\000\000\003\249\003\249\003\249\003\249\003\249\003\249\000\000\000\000\000\000\000\000\000\000\003\249\000\000\003\249\003\249\000\000\000\000\000\000\000\000\000\000\003\249\003\249\003\249\000\000\000\000\000\000\000\000\000\000\000\000\003\249\000\000\003\249\003\249\003\249\003\249\003\249\003\249\003\249\003\249\003\249\000\000\003\249\000\000\000\000\000\000\000\000\000\000\003\249\000\000\003\249\003\249\003\249\000\000\000\000\000\000\000\000\003\249\000\000\000\000\003\249\000\000\003\249\003\249\000\000\003\249\003\249\003\249\003\249\000\000\000\000\000\000\000\000\000\000\000\000\003\249\000\000\003\249\003\249\000\000\015\218\003\249\003\249\003\249\003\249\003\249\003\249\000\000\000\000\003\249\003\249\018\226\000\000\000\000\003\249\003\249\000\000\000\000\003\249\003\249\003\249\003\249\003\245\000\000\003\245\000\000\003\245\000\000\000\000\000\000\003\245\000\000\000\000\003\245\000\000\003\245\000\000\000\000\019\006\000\000\000\000\003\245\003\245\003\245\000\000\003\245\003\245\003\245\000\000\000\000\000\000\000\000\000\000\019r\019\210\019\234\019\138\000\000\020\002\000\000\003\245\000\000\000\000\000\000\000\000\000\000\000\000\003\245\019\162\003\245\020\026\0202\003\245\000\000\000\000\000\000\000\000\000\000\003\245\000\000\020J\003\245\000\000\000\000\000\000\000\000\000\000\003\245\003\245\000\242\000\000\000\000\000\000\000\000\000\000\000\000\003\245\000\000\003\245\003\245\019\030\019\186\020b\020z\020\218\003\245\003\245\000\000\003\245\000\000\000\000\000\000\000\000\000\000\003\245\000\000\003\245\003\245\020\242\000\000\000\000\000\000\000\000\003\245\000\000\000\000\003\245\000\000\003\245\021\n\000\000\003\245\003\245\003\245\003\245\000\000\000\000\000\000\000\000\000\000\000\000\003\245\000\000\003\245\003\245\000\000\021j\003\245\003\245\021\162\020\146\003\245\003\245\000\000\000\000\003\245\021\"\003\245\000\000\000\000\020\170\020\194\000\000\000\000\003\245\003\245\021:\021R\004\017\000\000\004\017\000\000\004\017\000\000\000\000\000\000\004\017\000\000\000\000\004\017\000\000\004\017\000\000\000\000\004\017\000\000\000\000\004\017\004\017\004\017\000\000\004\017\004\017\004\017\000\000\000\000\000\000\000\000\000\000\004\017\004\017\004\017\004\017\000\000\004\017\000\000\004\017\000\000\000\000\000\000\000\000\000\000\000\000\004\017\004\017\004\017\004\017\004\017\004\017\000\000\000\000\000\000\000\000\000\000\004\017\000\000\004\017\004\017\000\000\000\000\000\000\000\000\000\000\004\017\004\017\004\017\000\000\000\000\000\000\000\000\000\000\000\000\004\017\000\000\004\017\004\017\004\017\004\017\004\017\004\017\004\017\004\017\004\017\000\000\004\017\000\000\000\000\000\000\000\000\000\000\004\017\000\000\004\017\004\017\004\017\000\000\000\000\000\000\000\000\004\017\000\000\000\000\004\017\000\000\004\017\004\017\000\000\004\017\004\017\004\017\004\017\000\000\000\000\000\000\000\000\000\000\000\000\004\017\000\000\004\017\004\017\000\000\015\218\004\017\004\017\004\017\004\017\004\017\004\017\000\000\000\000\004\017\004\017\018\226\000\000\000\000\004\017\004\017\000\000\000\000\004\017\004\017\004\017\004\017\004\r\000\000\004\r\000\000\004\r\000\000\000\000\000\000\004\r\000\000\000\000\004\r\000\000\004\r\000\000\000\000\019\006\000\000\000\000\004\r\004\r\004\r\000\000\004\r\004\r\004\r\000\000\000\000\000\000\000\000\000\000\019r\019\210\019\234\019\138\000\000\020\002\000\000\004\r\000\000\000\000\000\000\000\000\000\000\000\000\004\r\019\162\004\r\020\026\0202\004\r\000\000\000\000\000\000\000\000\000\000\004\r\000\000\020J\004\r\000\000\000\000\000\000\000\000\000\000\004\r\004\r\000\242\000\000\000\000\000\000\000\000\000\000\000\000\004\r\000\000\004\r\004\r\019\030\019\186\020b\020z\020\218\004\r\004\r\000\000\004\r\000\000\000\000\000\000\000\000\000\000\004\r\000\000\004\r\004\r\020\242\000\000\000\000\000\000\000\000\004\r\000\000\000\000\004\r\000\000\004\r\021\n\000\000\004\r\004\r\004\r\004\r\000\000\000\000\000\000\000\000\000\000\000\000\004\r\000\000\004\r\004\r\000\000\021j\004\r\004\r\021\162\020\146\004\r\004\r\000\000\000\000\004\r\021\"\004\r\000\000\000\000\020\170\020\194\000\000\000\000\004\r\004\r\021:\021R\0041\000\000\0041\000\000\0041\000\000\000\000\000\000\0041\000\000\000\000\0041\000\000\0041\000\000\000\000\0041\000\000\000\000\0041\0041\0041\000\000\0041\0041\0041\000\000\000\000\000\000\000\000\000\000\0041\0041\0041\0041\000\000\0041\000\000\0041\000\000\000\000\000\000\000\000\000\000\000\000\0041\0041\0041\0041\0041\0041\000\000\000\000\000\000\000\000\000\000\0041\000\000\0041\0041\000\000\000\000\000\000\000\000\000\000\0041\0041\0041\000\000\000\000\000\000\000\000\000\000\000\000\0041\000\000\0041\0041\0041\0041\0041\0041\0041\0041\0041\000\000\0041\000\000\000\000\000\000\000\000\000\000\0041\000\000\0041\0041\0041\000\000\000\000\000\000\000\000\0041\000\000\000\000\0041\000\000\0041\0041\000\000\0041\0041\0041\0041\000\000\000\000\000\000\000\000\000\000\000\000\0041\000\000\0041\0041\000\000\015\218\0041\0041\0041\0041\0041\0041\000\000\000\000\0041\0041\018\226\000\000\000\000\0041\0041\000\000\000\000\0041\0041\0041\0041\004-\000\000\004-\000\000\004-\000\000\000\000\000\000\004-\000\000\000\000\004-\000\000\004-\000\000\000\000\019\006\000\000\000\000\004-\004-\004-\000\000\004-\004-\004-\000\000\000\000\000\000\000\000\000\000\019r\019\210\019\234\019\138\000\000\020\002\000\000\004-\000\000\000\000\000\000\000\000\000\000\000\000\004-\019\162\004-\020\026\0202\004-\000\000\000\000\000\000\000\000\000\000\004-\000\000\020J\004-\000\000\000\000\000\000\000\000\000\000\004-\004-\000\242\000\000\000\000\000\000\000\000\000\000\000\000\004-\000\000\004-\004-\019\030\019\186\020b\020z\020\218\004-\004-\000\000\004-\000\000\000\000\000\000\000\000\000\000\004-\000\000\004-\004-\020\242\000\000\000\000\000\000\000\000\004-\000\000\000\000\004-\000\000\004-\021\n\000\000\004-\004-\004-\004-\000\000\000\000\000\000\000\000\000\000\000\000\004-\000\000\004-\004-\000\000\021j\004-\004-\021\162\020\146\004-\004-\000\000\000\000\004-\021\"\004-\000\000\000\000\020\170\020\194\000\000\000\000\004-\004-\021:\021R\004!\000\000\004!\000\000\004!\000\000\000\000\000\000\004!\000\000\000\000\004!\000\000\004!\000\000\000\000\004!\000\000\000\000\004!\004!\004!\000\000\004!\004!\004!\000\000\000\000\000\000\000\000\000\000\004!\004!\004!\004!\000\000\004!\000\000\004!\000\000\000\000\000\000\000\000\000\000\000\000\004!\004!\004!\004!\004!\004!\000\000\000\000\000\000\000\000\000\000\004!\000\000\004!\004!\000\000\000\000\000\000\000\000\000\000\004!\004!\004!\000\000\000\000\000\000\000\000\000\000\000\000\004!\000\000\004!\004!\004!\004!\004!\004!\004!\004!\004!\000\000\004!\000\000\000\000\000\000\000\000\000\000\004!\000\000\004!\004!\004!\000\000\000\000\000\000\000\000\004!\000\000\000\000\004!\000\000\004!\004!\000\000\004!\004!\004!\004!\000\000\000\000\000\000\000\000\000\000\000\000\004!\000\000\004!\004!\000\000\015\218\004!\004!\004!\004!\004!\004!\000\000\000\000\004!\004!\018\226\000\000\000\000\004!\004!\000\000\000\000\004!\004!\004!\004!\004\029\000\000\004\029\000\000\004\029\000\000\000\000\000\000\004\029\000\000\000\000\004\029\000\000\004\029\000\000\000\000\019\006\000\000\000\000\004\029\004\029\004\029\000\000\004\029\004\029\004\029\000\000\000\000\000\000\000\000\000\000\019r\019\210\019\234\019\138\000\000\020\002\000\000\004\029\000\000\000\000\000\000\000\000\000\000\000\000\004\029\019\162\004\029\020\026\0202\004\029\000\000\000\000\000\000\000\000\000\000\004\029\000\000\020J\004\029\000\000\000\000\000\000\000\000\000\000\004\029\004\029\000\242\000\000\000\000\000\000\000\000\000\000\000\000\004\029\000\000\004\029\004\029\019\030\019\186\020b\020z\020\218\004\029\004\029\000\000\004\029\000\000\000\000\000\000\000\000\000\000\004\029\000\000\004\029\004\029\020\242\000\000\000\000\000\000\000\000\004\029\000\000\000\000\004\029\000\000\004\029\021\n\000\000\004\029\004\029\004\029\004\029\000\000\000\000\000\000\000\000\000\000\000\000\004\029\000\000\004\029\004\029\000\000\021j\004\029\004\029\021\162\020\146\004\029\004\029\000\000\000\000\004\029\021\"\004\029\000\000\000\000\020\170\020\194\000\000\000\000\004\029\004\029\021:\021R\003\233\000\000\003\233\000\000\003\233\000\000\000\000\000\000\003\233\000\000\000\000\003\233\000\000\003\233\000\000\000\000\003\233\000\000\000\000\003\233\003\233\003\233\000\000\003\233\003\233\003\233\000\000\000\000\000\000\000\000\000\000\003\233\003\233\003\233\003\233\000\000\003\233\000\000\003\233\000\000\000\000\000\000\000\000\000\000\000\000\003\233\003\233\003\233\003\233\003\233\003\233\000\000\000\000\000\000\000\000\000\000\003\233\000\000\003\233\003\233\000\000\000\000\000\000\000\000\000\000\003\233\003\233\003\233\000\000\000\000\000\000\000\000\000\000\000\000\003\233\000\000\003\233\003\233\003\233\003\233\003\233\003\233\003\233\003\233\003\233\000\000\003\233\000\000\000\000\000\000\000\000\000\000\003\233\000\000\003\233\003\233\003\233\000\000\000\000\000\000\000\000\003\233\000\000\000\000\003\233\000\000\003\233\003\233\000\000\003\233\003\233\003\233\003\233\000\000\000\000\000\000\000\000\000\000\000\000\003\233\000\000\003\233\003\233\000\000\015\218\003\233\003\233\003\233\003\233\003\233\003\233\000\000\000\000\003\233\003\233\018\226\000\000\000\000\003\233\003\233\000\000\000\000\003\233\003\233\003\233\003\233\003\229\000\000\003\229\000\000\003\229\000\000\000\000\000\000\003\229\000\000\000\000\003\229\000\000\003\229\000\000\000\000\019\006\000\000\000\000\003\229\003\229\003\229\000\000\003\229\003\229\003\229\000\000\000\000\000\000\000\000\000\000\019r\019\210\019\234\019\138\000\000\020\002\000\000\003\229\000\000\000\000\000\000\000\000\000\000\000\000\003\229\019\162\003\229\020\026\0202\003\229\000\000\000\000\000\000\000\000\000\000\003\229\000\000\020J\003\229\000\000\000\000\000\000\000\000\000\000\003\229\003\229\000\242\000\000\000\000\000\000\000\000\000\000\000\000\003\229\000\000\003\229\003\229\019\030\019\186\020b\020z\020\218\003\229\003\229\000\000\003\229\000\000\000\000\000\000\000\000\000\000\003\229\000\000\003\229\003\229\020\242\000\000\000\000\000\000\000\000\003\229\000\000\000\000\003\229\000\000\003\229\021\n\000\000\003\229\003\229\003\229\003\229\000\000\000\000\000\000\000\000\000\000\000\000\003\229\000\000\003\229\003\229\000\000\021j\003\229\003\229\021\162\020\146\003\229\003\229\000\000\000\000\003\229\021\"\003\229\000\000\000\000\020\170\020\194\000\000\000\000\003\229\003\229\021:\021R\012U\000\000\012U\000\000\012U\000\000\000\000\000\000\012U\000\000\000\000\012U\000\000\012U\000\000\000\000\012U\000\000\000\000\012U\012U\012U\000\000\012U\012U\012U\000\000\000\000\000\000\000\000\000\000\012U\012U\012U\012U\000\000\012U\000\000\012U\000\000\000\000\000\000\000\000\000\000\000\000\012U\012U\012U\012U\012U\012U\000\000\000\000\000\000\000\000\000\000\012U\000\000\012U\012U\000\000\000\000\000\000\000\000\000\000\012U\012U\012U\000\000\000\000\000\000\000\000\000\000\000\000\012U\000\000\012U\012U\012U\012U\012U\012U\012U\012U\012U\000\000\012U\000\000\000\000\000\000\000\000\000\000\012U\000\000\012U\012U\012U\000\000\000\000\000\000\000\000\012U\000\000\000\000\012U\000\000\012U\012U\000\000\012U\012U\012U\012U\000\000\000\000\000\000\000\000\000\000\000\000\012U\000\000\012U\012U\000\000\015\218\012U\012U\012U\012U\012U\012U\000\000\000\000\012U\012U\018\226\000\000\000\000\012U\012U\000\000\000\000\012U\012U\012U\012U\012Q\000\000\012Q\000\000\012Q\000\000\000\000\000\000\012Q\000\000\000\000\012Q\000\000\012Q\000\000\000\000\019\006\000\000\000\000\012Q\012Q\012Q\000\000\012Q\012Q\012Q\000\000\000\000\000\000\000\000\000\000\019r\019\210\019\234\019\138\000\000\020\002\000\000\012Q\000\000\000\000\000\000\000\000\000\000\000\000\012Q\019\162\012Q\020\026\0202\012Q\000\000\000\000\000\000\000\000\000\000\012Q\000\000\020J\012Q\000\000\000\000\000\000\000\000\000\000\012Q\012Q\000\242\000\000\000\000\000\000\000\000\000\000\000\000\012Q\000\000\012Q\012Q\019\030\019\186\020b\020z\020\218\012Q\012Q\000\000\012Q\000\000\000\000\000\000\000\000\000\000\012Q\000\000\012Q\012Q\020\242\000\000\000\000\000\000\000\000\012Q\000\000\000\000\012Q\000\000\012Q\021\n\000\000\012Q\012Q\012Q\012Q\000\000\000\000\000\000\000\000\000\000\000\000\012Q\000\000\012Q\012Q\000\000\012Q\012Q\012Q\012Q\020\146\012Q\012Q\000\000\000\000\012Q\021\"\012Q\000\000\000\000\020\170\020\194\000\000\000\000\012Q\012Q\021:\021R\r\237\000\000\r\237\000\000\r\237\000\000\000\000\000\000\r\237\000\000\000\000\r\237\000\000\r\237\000\000\000\000\r\237\000\000\000\000\r\237\r\237\r\237\000\000\r\237\r\237\r\237\000\000\000\000\000\000\000\000\000\000\r\237\r\237\r\237\r\237\000\000\r\237\000\000\r\237\000\000\000\000\000\000\000\000\000\000\000\000\r\237\r\237\r\237\r\237\r\237\r\237\000\000\000\000\000\000\000\000\000\000\r\237\000\000\r\237\r\237\000\000\000\000\000\000\000\000\000\000\r\237\r\237\r\237\000\000\000\000\000\000\000\000\000\000\000\000\r\237\000\000\r\237\r\237\r\237\r\237\r\237\r\237\r\237\r\237\r\237\000\000\r\237\000\000\000\000\000\000\000\000\000\000\r\237\000\000\r\237\r\237\r\237\000\000\000\000\000\000\000\000\r\237\000\000\000\000\r\237\000\000\r\237\r\237\000\000\r\237\r\237\r\237\r\237\000\000\000\000\000\000\000\000\000\000\000\000\r\237\000\000\r\237\r\237\000\000\015\218\r\237\r\237\r\237\r\237\r\237\r\237\000\000\000\000\r\237\r\237\018\226\000\000\000\000\r\237\r\237\000\000\000\000\r\237\r\237\r\237\r\237\002\205\000\000\002\205\000\000\002\205\000\000\000\000\000\000\002\205\000\000\000\000\002\205\000\000\002\205\000\000\000\000\002\205\000\000\000\000\002\205\002\205\002\205\000\000\002\205\002\205\002\205\000\000\000\000\000\000\000\000\000\000\002\205\002\205\002\205\002\205\000\000\002\205\000\000\002\205\000\000\000\000\000\000\000\000\000\000\000\000\002\205\002\205\002\205\002\205\002\205\002\205\000\000\000\000\000\000\000\000\000\000\002\205\000\000\002\205\002\205\000\000\000\000\000\000\000\000\000\000\002\205\002\205\002\205\000\000\000\000\000\000\000\000\000\000\000\000\002\205\000\000\002\205\002\205\002\205\002\205\002\205\002\205\002\205\002\205\002\205\000\000\002\205\000\000\000\000\000\000\000\000\000\000\002\205\000\000\002\205\002\205\002\205\000\000\000\000\000\000\000\000\002\205\000\000\000\000\002\205\000\000\002\205\002\205\000\000\002\205\002\205\027\254\002\205\000\000\000\000\000\000\000\000\000\000\000\000\002\205\000\000\002\205\002\205\000\000\015\218\002\205\002\205\002\205\002\205\002\205\002\205\000\000\000\000\002\205\002\205\018\226\000\000\000\000\002\205\002\205\000\000\000\000\002\205\002\205\002\205\002\205\002\197\000\000\002\197\000\000\002\197\000\000\000\000\000\000\002\197\000\000\000\000\002\197\000\000\002\197\000\000\000\000\002\197\000\000\000\000\002\197\002\197\002\197\000\000\002\197\002\197\002\197\000\000\000\000\000\000\000\000\000\000\002\197\002\197\002\197\002\197\000\000\002\197\000\000\002\197\000\000\000\000\000\000\000\000\000\000\000\000\002\197\002\197\002\197\002\197\002\197\002\197\000\000\000\000\000\000\000\000\000\000\002\197\000\000\002\197\002\197\000\000\000\000\000\000\000\000\000\000\002\197\002\197\002\197\000\000\000\000\000\000\000\000\000\000\000\000\002\197\000\000\002\197\002\197\002\197\002\197\002\197\002\197\002\197\002\197\002\197\000\000\002\197\000\000\000\000\000\000\000\000\000\000\002\197\000\000\002\197\002\197\002\197\000\000\000\000\000\000\000\000\002\197\000\000\000\000\002\197\000\000\002\197\002\197\000\000\002\197\002\197\002\197\002\197\000\000\000\000\000\000\000\000\000\000\000\000\002\197\000\000\002\197\002\197\000\000\015\218\002\197\002\197\002\197\002\197\002\197\002\197\000\000\000\000\002\197\002\197\018\226\000\000\000\000\002\197\002\197\000\000\000\000\002\197\002\197\002\197\002\197\002\193\000\000\002\193\000\000\002\193\000\000\000\000\000\000\002\193\000\000\000\000\002\193\000\000\002\193\000\000\000\000\019\006\000\000\000\000\002\193\002\193\002\193\000\000\002\193\002\193\002\193\000\000\000\000\000\000\000\000\000\000\019r\019\210\019\234\019\138\000\000\020\002\000\000\002\193\000\000\000\000\000\000\000\000\000\000\000\000\002\193\019\162\002\193\020\026\0202\002\193\000\000\000\000\000\000\000\000\000\000\002\193\000\000\020J\002\193\000\000\000\000\000\000\000\000\000\000\002\193\002\193\000\242\000\000\000\000\000\000\000\000\000\000\000\000\002\193\000\000\002\193\002\193\019\030\019\186\020b\020z\020\218\002\193\002\193\000\000\002\193\000\000\000\000\000\000\000\000\000\000\002\193\000\000\002\193\002\193\020\242\000\000\000\000\000\000\000\000\002\193\000\000\000\000\002\193\000\000\002\193\021\n\000\000\002\193\002\193\002\193\002\193\000\000\000\000\000\000\000\000\000\000\000\000\002\193\000\000\002\193\002\193\000\000\021j\002\193\002\193\021\162\020\146\002\193\002\193\000\000\000\000\002\193\021\"\002\193\000\000\000\000\020\170\020\194\000\000\000\000\002\193\002\193\021:\021R\002\201\000\000\002\201\000\000\002\201\000\000\000\000\000\000\002\201\000\000\000\000\002\201\000\000\002\201\000\000\000\000\019\006\000\000\000\000\002\201\002\201\002\201\000\000\002\201\002\201\002\201\000\000\000\000\000\000\000\000\000\000\019r\019\210\019\234\019\138\000\000\020\002\000\000\002\201\000\000\000\000\000\000\000\000\000\000\000\000\002\201\019\162\002\201\020\026\0202\002\201\000\000\000\000\000\000\000\000\000\000\002\201\000\000\020J\002\201\000\000\000\000\000\000\000\000\000\000\002\201\002\201\000\242\000\000\000\000\000\000\000\000\000\000\000\000\002\201\000\000\002\201\002\201\019\030\019\186\020b\020z\020\218\002\201\002\201\000\000\002\201\000\000\000\000\000\000\000\000\000\000\002\201\000\000\002\201\002\201\020\242\000\000\000\000\000\000\000\000\002\201\000\000\000\000\002\201\000\000\002\201\021\n\000\000\002\201\002\201\028\026\002\201\000\000\000\000\000\000\000\000\000\000\000\000\002\201\000\000\002\201\002\201\000\000\021j\002\201\002\201\021\162\020\146\002\201\002\201\000\000\000\000\002\201\021\"\002\201\000\000\000\000\020\170\020\194\000\000\000\000\002\201\002\201\021:\021R\002\189\000\000\002\189\000\000\002\189\000\000\000\000\000\000\002\189\000\000\000\000\002\189\000\000\002\189\000\000\000\000\002\189\000\000\000\000\002\189\002\189\002\189\000\000\002\189\002\189\002\189\000\000\000\000\000\000\000\000\000\000\002\189\002\189\002\189\002\189\000\000\002\189\000\000\002\189\000\000\000\000\000\000\000\000\000\000\000\000\002\189\002\189\002\189\002\189\002\189\002\189\000\000\000\000\000\000\000\000\000\000\002\189\000\000\002\189\002\189\000\000\000\000\000\000\000\000\000\000\002\189\002\189\002\189\000\000\000\000\000\000\000\000\000\000\000\000\002\189\000\000\002\189\002\189\002\189\002\189\002\189\002\189\002\189\002\189\002\189\000\000\002\189\000\000\000\000\000\000\000\000\000\000\002\189\000\000\002\189\002\189\002\189\000\000\000\000\000\000\000\000\002\189\000\000\000\000\002\189\000\000\002\189\002\189\000\000\002\189\002\189\002\189\002\189\000\000\000\000\000\000\000\000\000\000\000\000\002\189\000\000\002\189\002\189\000\000\015\218\002\189\002\189\002\189\002\189\002\189\002\189\000\000\000\000\002\189\002\189\018\226\000\000\000\000\002\189\002\189\000\000\000\000\002\189\002\189\002\189\002\189\002\185\000\000\002\185\000\000\002\185\000\000\000\000\000\000\002\185\000\000\000\000\002\185\000\000\002\185\000\000\000\000\019\006\000\000\000\000\002\185\002\185\002\185\000\000\002\185\002\185\002\185\000\000\000\000\000\000\000\000\000\000\019r\019\210\019\234\019\138\000\000\020\002\000\000\002\185\000\000\000\000\000\000\000\000\000\000\000\000\002\185\019\162\002\185\020\026\0202\002\185\000\000\000\000\000\000\000\000\000\000\002\185\000\000\020J\002\185\000\000\000\000\000\000\000\000\000\000\002\185\002\185\000\242\000\000\000\000\000\000\000\000\000\000\000\000\002\185\000\000\002\185\002\185\019\030\019\186\020b\020z\020\218\002\185\002\185\000\000\002\185\000\000\000\000\000\000\000\000\000\000\002\185\000\000\002\185\002\185\020\242\000\000\000\000\000\000\000\000\002\185\000\000\000\000\002\185\000\000\002\185\021\n\000\000\002\185\002\185\002\185\002\185\000\000\000\000\000\000\000\000\000\000\000\000\002\185\000\000\002\185\002\185\000\000\021j\002\185\002\185\021\162\020\146\002\185\002\185\000\000\000\000\002\185\021\"\002\185\000\000\000\000\020\170\020\194\000\000\000\000\002\185\002\185\021:\021R\012i\000\000\012i\000\000\012i\000\000\000\000\000\000\012i\000\000\000\000\012i\000\000\012i\000\000\000\000\012i\000\000\000\000\012i\012i\012i\000\000\012i\012i\012i\000\000\000\000\000\000\000\000\000\000\012i\012i\012i\012i\000\000\012i\000\000\012i\000\000\000\000\000\000\000\000\000\000\000\000\012i\012i\012i\012i\012i\012i\000\000\000\000\000\000\000\000\000\000\012i\000\000\012i\012i\000\000\000\000\000\000\000\000\000\000\012i\012i\012i\000\000\000\000\000\000\000\000\000\000\000\000\012i\000\000\012i\012i\012i\012i\012i\012i\012i\012i\012i\000\000\012i\000\000\000\000\000\000\000\000\000\000\012i\000\000\012i\012i\012i\000\000\000\000\000\000\000\000\012i\000\000\000\000\012i\000\000\012i\012i\000\000\012i\012i\012i\012i\000\000\000\000\000\000\000\000\000\000\000\000\012i\000\000\012i\012i\000\000\015\218\012i\012i\012i\012i\012i\012i\000\000\000\000\012i\012i\018\226\000\000\000\000\012i\012i\000\000\000\000\012i\012i\012i\012i\012e\000\000\012e\000\000\012e\000\000\000\000\000\000\012e\000\000\000\000\012e\000\000\012e\000\000\000\000\019\006\000\000\000\000\012e\012e\012e\000\000\012e\012e\012e\000\000\000\000\000\000\000\000\000\000\019r\019\210\019\234\019\138\000\000\020\002\000\000\012e\000\000\000\000\000\000\000\000\000\000\000\000\012e\019\162\012e\020\026\0202\012e\000\000\000\000\000\000\000\000\000\000\012e\000\000\020J\012e\000\000\000\000\000\000\000\000\000\000\012e\012e\000\242\000\000\000\000\000\000\000\000\000\000\000\000\012e\000\000\012e\012e\019\030\019\186\020b\020z\020\218\012e\012e\000\000\012e\000\000\000\000\000\000\000\000\000\000\012e\000\000\012e\012e\020\242\000\000\000\000\000\000\000\000\012e\000\000\000\000\012e\000\000\012e\021\n\000\000\012e\012e\012e\012e\000\000\000\000\000\000\000\000\000\000\000\000\012e\000\000\012e\012e\000\000\012e\012e\012e\012e\020\146\012e\012e\000\000\000\000\012e\021\"\012e\000\000\000\000\020\170\020\194\000\000\000\000\012e\012e\021:\021R\003\225\000\000\003\225\000\000\003\225\000\000\000\000\000\000\003\225\000\000\000\000\003\225\000\000\003\225\000\000\000\000\003\225\000\000\000\000\003\225\003\225\003\225\000\000\003\225\003\225\003\225\000\000\000\000\000\000\000\000\000\000\003\225\003\225\003\225\003\225\000\000\003\225\000\000\003\225\000\000\000\000\000\000\000\000\000\000\000\000\003\225\003\225\003\225\003\225\003\225\003\225\000\000\000\000\000\000\000\000\000\000\003\225\000\000\003\225\003\225\000\000\000\000\000\000\000\000\000\000\003\225\003\225\003\225\000\000\000\000\000\000\000\000\000\000\000\000\003\225\000\000\003\225\003\225\003\225\003\225\003\225\003\225\003\225\003\225\003\225\000\000\003\225\000\000\000\000\000\000\000\000\000\000\003\225\000\000\003\225\003\225\003\225\000\000\000\000\000\000\000\000\003\225\000\000\000\000\003\225\000\000\003\225\003\225\000\000\003\225\003\225\003\225\003\225\000\000\000\000\000\000\000\000\000\000\000\000\003\225\000\000\003\225\003\225\000\000\015\218\003\225\003\225\003\225\003\225\003\225\003\225\000\000\000\000\003\225\003\225\018\226\000\000\000\000\003\225\003\225\000\000\000\000\003\225\003\225\003\225\003\225\003\221\000\000\003\221\000\000\003\221\000\000\000\000\000\000\003\221\000\000\000\000\003\221\000\000\003\221\000\000\000\000\019\006\000\000\000\000\003\221\003\221\003\221\000\000\003\221\003\221\003\221\000\000\000\000\000\000\000\000\000\000\019r\019\210\019\234\019\138\000\000\020\002\000\000\003\221\000\000\000\000\000\000\000\000\000\000\000\000\003\221\019\162\003\221\020\026\0202\003\221\000\000\000\000\000\000\000\000\000\000\003\221\000\000\020J\003\221\000\000\000\000\000\000\000\000\000\000\003\221\003\221\000\242\000\000\000\000\000\000\000\000\000\000\000\000\003\221\000\000\003\221\003\221\019\030\019\186\020b\020z\020\218\003\221\003\221\000\000\003\221\000\000\000\000\000\000\000\000\000\000\003\221\000\000\003\221\003\221\020\242\000\000\000\000\000\000\000\000\003\221\000\000\000\000\003\221\000\000\003\221\021\n\000\000\003\221\003\221\003\221\003\221\000\000\000\000\000\000\000\000\000\000\000\000\003\221\000\000\003\221\003\221\000\000\021j\003\221\003\221\021\162\020\146\003\221\003\221\000\000\000\000\003\221\021\"\003\221\000\000\000\000\020\170\020\194\000\000\000\000\003\221\003\221\021:\021R\002\169\000\000\002\169\000\000\002\169\000\000\000\000\000\000\002\169\000\000\000\000\002\169\000\000\002\169\000\000\000\000\002\169\000\000\000\000\002\169\002\169\002\169\000\000\002\169\002\169\002\169\000\000\000\000\000\000\000\000\000\000\002\169\002\169\002\169\002\169\000\000\002\169\000\000\002\169\000\000\000\000\000\000\000\000\000\000\000\000\002\169\002\169\002\169\002\169\002\169\002\169\000\000\000\000\000\000\000\000\000\000\002\169\000\000\002\169\002\169\000\000\000\000\000\000\000\000\000\000\002\169\002\169\002\169\000\000\000\000\000\000\000\000\000\000\000\000\002\169\000\000\002\169\002\169\002\169\002\169\002\169\002\169\002\169\002\169\002\169\000\000\002\169\000\000\000\000\000\000\000\000\000\000\002\169\000\000\002\169\002\169\002\169\000\000\000\000\000\000\000\000\002\169\000\000\000\000\002\169\000\000\002\169\002\169\000\000\002\169\002\169\002\169\002\169\000\000\000\000\000\000\000\000\000\000\000\000\002\169\000\000\002\169\002\169\000\000\002\169\002\169\002\169\002\169\002\169\002\169\002\169\000\000\000\000\002\169\002\169\018\226\000\000\000\000\002\169\002\169\000\000\000\000\002\169\002\169\002\169\002\169\002\181\000\000\002\181\000\000\002\181\000\000\000\000\000\000\002\181\000\000\000\000\002\181\000\000\002\181\000\000\000\000\002\181\000\000\000\000\002\181\002\181\002\181\000\000\002\181\002\181\002\181\000\000\000\000\000\000\000\000\000\000\002\181\002\181\002\181\002\181\000\000\002\181\000\000\002\181\000\000\000\000\000\000\000\000\000\000\000\000\002\181\002\181\002\181\002\181\002\181\002\181\000\000\000\000\000\000\000\000\000\000\002\181\000\000\002\181\002\181\000\000\000\000\000\000\000\000\000\000\002\181\002\181\002\181\000\000\000\000\000\000\000\000\000\000\000\000\002\181\000\000\002\181\002\181\002\181\002\181\002\181\002\181\002\181\002\181\002\181\000\000\002\181\000\000\000\000\000\000\000\000\000\000\002\181\000\000\002\181\002\181\002\181\000\000\000\000\000\000\000\000\002\181\000\000\000\000\002\181\000\000\002\181\002\181\000\000\002\181\002\181\002\181\002\181\000\000\000\000\000\000\000\000\000\000\000\000\002\181\000\000\002\181\002\181\000\000\015\218\002\181\002\181\002\181\002\181\002\181\002\181\000\000\000\000\002\181\002\181\018\226\000\000\000\000\002\181\002\181\000\000\000\000\002\181\002\181\002\181\002\181\002\177\000\000\002\177\000\000\002\177\000\000\000\000\000\000\002\177\000\000\000\000\002\177\000\000\002\177\000\000\000\000\019\006\000\000\000\000\002\177\002\177\002\177\000\000\002\177\002\177\002\177\000\000\000\000\000\000\000\000\000\000\019r\019\210\019\234\019\138\000\000\020\002\000\000\002\177\000\000\000\000\000\000\000\000\000\000\000\000\002\177\019\162\002\177\020\026\0202\002\177\000\000\000\000\000\000\000\000\000\000\002\177\000\000\020J\002\177\000\000\000\000\000\000\000\000\000\000\002\177\002\177\000\242\000\000\000\000\000\000\000\000\000\000\000\000\002\177\000\000\002\177\002\177\019\030\019\186\020b\020z\020\218\002\177\002\177\000\000\002\177\000\000\000\000\000\000\000\000\000\000\002\177\000\000\002\177\002\177\020\242\000\000\000\000\000\000\000\000\002\177\000\000\000\000\002\177\000\000\002\177\021\n\000\000\002\177\002\177\002\177\002\177\000\000\000\000\000\000\000\000\000\000\000\000\002\177\000\000\002\177\002\177\000\000\021j\002\177\002\177\021\162\020\146\002\177\002\177\000\000\000\000\002\177\021\"\002\177\000\000\000\000\020\170\020\194\000\000\000\000\002\177\002\177\021:\021R\003\001\000\000\003\001\000\000\003\001\000\000\000\000\000\000\003\001\000\000\000\000\003\001\000\000\003\001\000\000\000\000\003\001\000\000\000\000\003\001\003\001\003\001\000\000\003\001\003\001\003\001\000\000\000\000\000\000\000\000\000\000\003\001\003\001\003\001\003\001\000\000\003\001\000\000\003\001\000\000\000\000\000\000\000\000\000\000\000\000\003\001\003\001\003\001\003\001\003\001\003\001\000\000\000\000\000\000\000\000\000\000\003\001\000\000\003\001\003\001\000\000\000\000\000\000\000\000\000\000\003\001\003\001\003\001\000\000\000\000\000\000\000\000\000\000\000\000\003\001\000\000\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\000\000\003\001\000\000\000\000\000\000\000\000\000\000\003\001\000\000\003\001\003\001\003\001\000\000\000\000\000\000\000\000\003\001\000\000\000\000\003\001\000\000\003\001\003\001\000\000\003\001\003\001\003\001\003\001\000\000\000\000\000\000\000\000\000\000\000\000\003\001\000\000\003\001\003\001\000\000\003\001\003\001\003\001\003\001\003\001\003\001\003\001\000\000\000\000\003\001\003\001\018\226\000\000\000\000\003\001\003\001\000\000\000\000\003\001\003\001\003\001\003\001\012\145\000\000\012\145\000\000\012\145\000\000\000\000\000\000\012\145\000\000\000\000\012\145\000\000\012\145\000\000\000\000\012\145\000\000\000\000\012\145\012\145\012\145\000\000\012\145\012\145\012\145\000\000\000\000\000\000\000\000\000\000\012\145\012\145\012\145\012\145\000\000\012\145\000\000\012\145\000\000\000\000\000\000\000\000\000\000\000\000\012\145\012\145\012\145\012\145\012\145\012\145\000\000\000\000\000\000\000\000\000\000\012\145\000\000\012\145\012\145\000\000\000\000\000\000\000\000\000\000\012\145\012\145\012\145\000\000\000\000\000\000\000\000\000\000\000\000\012\145\000\000\012\145\012\145\012\145\012\145\012\145\012\145\012\145\012\145\012\145\000\000\012\145\000\000\000\000\000\000\000\000\000\000\012\145\000\000\012\145\012\145\012\145\000\000\000\000\000\000\000\000\012\145\000\000\000\000\012\145\000\000\012\145\012\145\000\000\012\145\012\145\012\145\012\145\000\000\000\000\000\000\000\000\000\000\000\000\012\145\000\000\012\145\012\145\000\000\015\218\012\145\012\145\012\145\012\145\012\145\012\145\000\000\000\000\012\145\012\145\018\226\000\000\000\000\012\145\012\145\000\000\000\000\012\145\012\145\012\145\012\145\012\141\000\000\012\141\000\000\012\141\000\000\000\000\000\000\012\141\000\000\000\000\012\141\000\000\012\141\000\000\000\000\019\006\000\000\000\000\012\141\012\141\012\141\000\000\012\141\012\141\012\141\000\000\000\000\000\000\000\000\000\000\019r\019\210\019\234\019\138\000\000\020\002\000\000\012\141\000\000\000\000\000\000\000\000\000\000\000\000\012\141\019\162\012\141\020\026\0202\012\141\000\000\000\000\000\000\000\000\000\000\012\141\000\000\020J\012\141\000\000\000\000\000\000\000\000\000\000\012\141\012\141\000\242\000\000\000\000\000\000\000\000\000\000\000\000\012\141\000\000\012\141\012\141\019\030\019\186\020b\020z\020\218\012\141\012\141\000\000\012\141\000\000\000\000\000\000\000\000\000\000\012\141\000\000\012\141\012\141\020\242\000\000\000\000\000\000\000\000\012\141\000\000\000\000\012\141\000\000\012\141\021\n\000\000\012\141\012\141\012\141\012\141\000\000\000\000\000\000\000\000\000\000\000\000\012\141\000\000\012\141\012\141\000\000\012\141\012\141\012\141\012\141\020\146\012\141\012\141\000\000\000\000\012\141\021\"\012\141\000\000\000\000\020\170\020\194\000\000\000\000\012\141\012\141\021:\021R\012}\000\000\012}\000\000\012}\000\000\000\000\000\000\012}\000\000\000\000\012}\000\000\012}\000\000\000\000\012}\000\000\000\000\012}\012}\012}\000\000\012}\012}\012}\000\000\000\000\000\000\000\000\000\000\012}\012}\012}\012}\000\000\012}\000\000\012}\000\000\000\000\000\000\000\000\000\000\000\000\012}\012}\012}\012}\012}\012}\000\000\000\000\000\000\000\000\000\000\012}\000\000\012}\012}\000\000\000\000\000\000\000\000\000\000\012}\012}\012}\000\000\000\000\000\000\000\000\000\000\000\000\012}\000\000\012}\012}\012}\012}\012}\012}\012}\012}\012}\000\000\012}\000\000\000\000\000\000\000\000\000\000\012}\000\000\012}\012}\012}\000\000\000\000\000\000\000\000\012}\000\000\000\000\012}\000\000\012}\012}\000\000\012}\012}\012}\012}\000\000\000\000\000\000\000\000\000\000\000\000\012}\000\000\012}\012}\000\000\015\218\012}\012}\012}\012}\012}\012}\000\000\000\000\012}\012}\018\226\000\000\000\000\012}\012}\000\000\000\000\012}\012}\012}\012}\012y\000\000\012y\000\000\012y\000\000\000\000\000\000\012y\000\000\000\000\012y\000\000\012y\000\000\000\000\019\006\000\000\000\000\012y\012y\012y\000\000\012y\012y\012y\000\000\000\000\000\000\000\000\000\000\019r\019\210\019\234\019\138\000\000\020\002\000\000\012y\000\000\000\000\000\000\000\000\000\000\000\000\012y\019\162\012y\020\026\0202\012y\000\000\000\000\000\000\000\000\000\000\012y\000\000\020J\012y\000\000\000\000\000\000\000\000\000\000\012y\012y\000\242\000\000\000\000\000\000\000\000\000\000\000\000\012y\000\000\012y\012y\019\030\019\186\020b\020z\020\218\012y\012y\000\000\012y\000\000\000\000\000\000\000\000\000\000\012y\000\000\012y\012y\020\242\000\000\000\000\000\000\000\000\012y\000\000\000\000\012y\000\000\012y\021\n\000\000\012y\012y\012y\012y\000\000\000\000\000\000\000\000\000\000\000\000\012y\000\000\012y\012y\000\000\012y\012y\012y\012y\020\146\012y\012y\000\000\000\000\012y\021\"\012y\000\000\000\000\020\170\020\194\000\000\000\000\012y\012y\021:\021R\002\173\000\000\002\173\000\000\002\173\000\000\000\000\000\000\002\173\000\000\000\000\002\173\000\000\002\173\000\000\000\000\002\173\000\000\000\000\002\173\002\173\002\173\000\000\002\173\002\173\002\173\000\000\000\000\000\000\000\000\000\000\002\173\002\173\002\173\002\173\000\000\002\173\000\000\002\173\000\000\000\000\000\000\000\000 \234\000\000\002\173\002\173\002\173\002\173\002\173\002\173\000\000\000\000\000\000\000\000\000\000\002\173\000\000\002\173\002\173\000\000\000\000\000\000\000\000\011\165\002\173\002\173\002\173\000\000\000\000\000\000\000\000\000\000\000\000\002\173\000\000\002\173\002\173\002\173\002\173\002\173\002\173\002\173\002\173\002\173\000\000\002\173\000\000\000\000\000\000\000\000\000\000\002\173\019\229\002\173\002\173\002\173\000\000\000\000\000\000\000\000\002\173\000\000\000\000\002\173\000\000\002\173\002\173\000\242\002\173\002\173\002\173\002\173\000\000\019\229\000\000\000\000\002\170\000\000\002\173\002\174\002\173\002\173\000\000\002\173\002\173\002\173\002\173\002\173\002\173\002\173\000\000\000\000\002\173\002\173\018\226\002\186\000\000\002\173\002\173\000\000\000\000\002\173\002\173\002\173\002\173\000\006\000\000\000\000\000\250\003\146\003\150\003\154\t*\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\000\000\tV\011\158#:\002\198\007E\011j\tZ\001\234\000\000 \226\000\000\bn\011\218\t^\tb\000\000\tf\000\000\011\226 N\tr\000\000\br\tZ\tv\000\000 v\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000 \218\003\138\000\000\000\000\t\190\r\178 \242\000\000#\174\r\182\r\186\r\198\r\210\r\234\003\154 \250\nJ \218\000\000\002\202\000\000\000\000\000\000 \242!\n\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\001\234$R$b\000\000\000\000\000\000\000\000\014\006\014\030\017\226\n\134\n\138!\018\017\246!R#.\000\000\007E\007E\000\000\000\000\r\226\000\000\r\230\000\000\000\000$n\000\000\t\130\000\000$r\000\000\000\000\000\000\003\138\007]\000\000!\142!\154\n\142\r\238\000\000$\162\000\000\015\250\007\166\000\006%\154\017\250\000\250\003\146\003\150\003\154\t*\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\000\000\007e\000\000\000\000\000\000\000\000\000\000\tZ\001\234\000\000\000\000$\178\bn\000\000\t^\tb\000\000\tf\000\000\000\000 N\tr\000\000\br\000\000\tv\000\000 v\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000 \218\003\138\000\000\000\000\t\190\r\178 \242\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000 \250\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000!\n\000\000\r\250/:\nb\nf\000\000\r\206\r\222/Z\000\000\000\000\000\000\000\000\000\000\000\000\014\006\014\030\017\226\n\134\n\138!\018\017\246!R\000\000\000\000/{\0282\000\000\000\000\r\226\000\000\r\230\000\000\000\000\000\000\000\000\030J\000\000\000\000\003j\000\000\000\000\000\000\016~\000\000\000\000!\154\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\006\000\000\017\250\000\250\003\146\003\150\003\154\t*\003\158\003j\029z\003\170\000\000\000\000\bf\000\000\bj\000\000/\170\000\000\000\000\000\000\000\000\000\000\tZ\001\234\000\000\030N\016~\bn\000\000\t^\tb\000\000\tf\000\000\016\226 N\tr\000\000\br\000\000\tv\030Z v)b\000\000\t\162\t\166\029\166\t\170\t\182\t\194\t\198\t\206\r\146\000\242\000\000 \218\003\138\000\000\000\000\t\190\r\178 \242\000\000)n\r\182\r\186\r\198\r\210\r\234\000\000 \250\nJ\016\226\000\000\000\000\n\138\000\000\000\000\000\000!\n\000\000\r\250/:\nb\nf\000\000\r\206\r\222/Z)z\000\000\000\000\000\242\000\000\000\000\014\006\014\030\017\226\n\134\n\138!\018\017\246!R\000\000\000\000\007m\000\000)\014\000\000\r\226\000\000\r\230\029~\001\202\b\130\003\154\014\190\000\000\003j\000\000\b\134\000\000\000\000\bf\001\n\004F!\154\n\142\r\238\003v\000\000\000\000\015\250\007\166\001\234\000\000\017\250\000\000\001\014\001\018\001\022\b\234\001\030\000\000\001\"\000\000\000\000\001\206\000\000\000\000\000\000\029\170\000\000\b\238\001&\000\000\001*\011\138\000\000\000\000\014:\001\210\001\190\0012\004F\000\000\0016\000\000\003\138\015\165\000\000\n\n\n\014\000\000\000\000\000\000\n\018\000\000\n\026\n>\nn\019\229\019\205\nJ\000\000\000\000\001:\001>\001B\001F\001J\000\000\000\000\000\000\nN\nb\nf\001N\nj\nr\n~\000\000\019\229\000\000\001R\002\170\000\000\000\000\002\174\015\165\n\134\n\138\000\000\000\000\011\002\001V\000\000\002\182\000\000\000\000\002a\002a\001Z\000\000\002\186\000\000\015\165\002\194\002a\019\205\015\165\022z\000\000\000\000\000\000\001\150\011\142\015\165\000\000\n\142\002a\004F\001\154\015\165\001\158\007\166\001\162\001\166\000\n\000\000\001\170\000\000\001\174\001\178\000\185\002\198\003\150\003\154\000\185\020!\003j\000\000\018R\000\000\000\000\bf\002a\000\000\000\000\000\185\000\000\000\185\000\000\000\185\002a\000\185\001\234\000\000\018j\b\021\bn\002a\000\000\b\021\000\000\000\000\000\000\018r\000\185\000\000\000\000\br\000\000\tv\000\000\000\185\000\000\000\000\000\000\000\000\000\185\000\000\t\182\000\000\001\190\000\000\000\185\000\000\000\000\000\185\003\138\002\202\002a\t\190\r\178\000\185\000\185\000\185\r\182\r\186\r\198\000\000\023\178\000\000\000\185\nJ\000\185\000\185\0071\000\000\000\000\000\000\000\000\000\185\000\000\000\000\000\185\nb\nf\000\000\r\206\r\222\000\185\000\000\000\000\020!\000\000\000\000\020!\0071\r\154\020!\n\134\n\138\000\185\000\000\000\185\000\000\000\000\000\185\000\185\000\000\011e\r\226\000\000\r\230\b\021\000\000\000\000\000\000\000\000\000\000\000\185\020!\0071\020!\000\000\020!\000\000\000\185\000\185\n\142\r\238\0071\000\000\b\021\015\250\007\166\b\021\0071\tN\000\185\000\209\000\185\003\150\003\154\000\209\000\000\003j\000\000\018R\0071\011e\bf\000\000\000\000\000\000\000\209\000\000\000\209\000\000\000\209\000\000\000\209\001\234\000\000\018j\000\000\bn\011e\000\000\000\000\000\000\011e\017\214\018r\000\209\000\000\000\000\br\011e\tv\000\000\000\209\0071\000\000\011e\000\000\000\209\000\000\t\182\000\000\001\190\000\000\000\209\000\000\0071\000\209\003\138\000\000\000\000\t\190\r\178\000\209\000\209\000\209\r\182\r\186\r\198\000\000\023\178\000\000\000\209\nJ\000\209\000\209\000\000\r\170\000\000\t\030\003\154\000\209\000\000\000\000\000\209\nb\nf\t\"\r\206\r\222\000\209\000\000\000\000\000\000\017~\000\000\000\000\000\000\000\000\001\234\n\134\n\138\000\209\000\000\000\209\002a\000\000\000\209\000\209\000\000\000\000\r\226\000\000\r\230\000\000\000\000\002a\000\000\000\000\000\000\000\209\000\000\000\000\000\000\002a\r\166\000\000\000\209\000\209\n\142\r\238\011\154\000\n\003\138\015\250\007\166\b\130\003\154\011z\000\209\003j\000\209\b\134\002a\000\000\bf\001\n\000\000\000\000\000\000\002a\003v\002a\000\000\000\000\000\000\001\234\000\000\002a\000\000\001\014\001\018\001\022\b\234\001\030\002a\001\"\000\000\000\000\000\000\000\000\016:\000\000\000\000\000\000\b\238\001&\000\242\001*\011\138\000\000\000\000\b\230\000\000\001\190\0012\000\000\000\000\0016\000\000\003\138\000\000\000\000\n\n\n\014\000\000\002a\000\000\n\018\000\000\n\026\n>\nn\000\000\020!\nJ\000\000\000\000\001:\001>\001B\001F\001J\000\000\000\000\000\000\nN\nb\nf\001N\nj\nr\n~\000\000\b\025\000\000\001R\000\000\b\025\000\000\000\000\000\000\n\134\n\138\011\158\000\000\011\002\001V\011j\014B\000\000\000\000\000\000\000\000\001Z\011\218\000\000\000\000\000\000\004F\000\000\011\226\000\000\000\000\001\230\000\000\000\000\001\150\011\142\000\000\000\000\n\142\000\000\000\000\001\154\000\000\001\158\007\166\001\162\001\166\000\000\000\000\001\170\001\234\001\174\001\178\006=\000\000\b\130\003\154\006=\000\000\003j\000\000\r2\000\000\000\000\bf!\214\000\000\020!\006=\000\000\020!\000\000\006=\020!\006=\001\234\000\000\r~\003\234\000\000\"N\000\000\b\190\000\000\003\138\000\000\014*\006=\b\025\000\000\000\000\000\000\"f\000\000\006=\020!\000\000\020!\b\210\020!\000\000\014\186\000\000\001\190\000\000\006=\000\000\b\025\006=\003\138\b\025\000\000\n\n\n\014\006=\006=\015\161\n\018\000\000\n\026\000\000\015J\000\000\006=\nJ\000\000\011\197\000\000\000\000\011\197\000\000\000\000\006=\006=\000\000\nN\nb\nf\000\000\nj\nr\n~\000\000\000\000\000\000\000\000\000\000\000\000#\186\000\000\000\000\n\134\n\138\006=\030J\006=\021\210\003j\006=\006=\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\011\197\000\000\015\161\000\000\003\182)^\015\161\022\006\006=\n\142\000\000\000\000\000\000\015\161\000\000\007\166\011\197\004F\000\006\015\161\000\000\006=\003\146\003\150\003\154\000\000\003\158\003j\030N\003\170\000\000\000\000\bf\000\000\bj\000\000\000\000\000\000\r\185\000\000\r\185\r\185\000\000\001\234\030Z\000\000)\130\bn\000\000\t^\tb\011\197\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166)\142\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\n\138\t\190\r\178\000\000\011\197\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ)\154\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000)\014\000\000\000\000\000\000\000\000\018\"\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\000\r\230\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\185\000\000\000\000\000\000\000\000\000\000\n\142\r\238\r\185\000\000\000\000\015\250\007\166\000\006\000\000\017\250\020-\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\000\000\000\000\000\000\r\177\000\000\r\177\r\177\020-\001\234\000\000\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\020-\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\020-\003\138\000\000\000\000\t\190\r\178\020-\020-\000\242\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\020-\020-\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\002a\002a\000\000\018\"\014\030\017\226\n\134\n\138\002a\017\246\000\000\000\000\000\000\000\000\020-\000\000\000\000\r\226\000\000\r\230\002a\002a\002a\000\000\000\000\000\000\020-\000\000\000\n\r\177\000\n\000\000\000\000\000\000\000\000\n\142\r\238\r\177\000\000\000\000\015\250\007\166\002a\002a\017\250\002a\002a\002a\002a\000\n\002a\002a\000\000\002a\002a\002a\002a\002a\002a\000\000\000\000\002a\002a\002a\002a\000\000\000\000\002a\000\000\002a\000\n\002a\002a\002a\002a\000\n\002a\000\000\000\000\r\150\002a\000\000\002a\000\000\002a\002a\029\214\000\000\002a\002a\002a\000\000\002a\002a\002a\002a\002a\002a\000\000\002a\002a\002a\000\000\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\000\000\000\000\002a\000\000\002a\000\000\000\000\000\000\002a\002a\002a\000\000\002a\002a\002a\002a R\002a\002a\002a\000\000\000\000\000\000\000\000\002a\002a\002a\002a\002a\002a\002a\000\000\002a\030>\000\000\000\000\000\000\002a\000\000\000\000\002a\000\006\002a\000\000\0071\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\002a\000\000\bf\000\000\bj\002a\002a\000\000\000\000\000\000\002a\002a\0071\001\234\002a\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\0071\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\0071\003\138\000\000\000\000\t\190\r\178\0071\tN\000\242\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\0071\0071\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\031\182\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\0071\000\000\000\000\r\226\000\000\r\230\000\000\000\000\000\000\000\000\000\000\000\000\0071\000\000\000\000\031\206\000\000\000\000\000\000\000\000\000\000\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\006\000\000\017\250\004\129\003\146\003\150\003\154\004\129\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\000\000\004\129\000\000\000\000\000\000\004\129\000\000\004\129\001\234\000\000\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\004\129\tr\030b\br\000\000\tv\000\000\004\129\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\004\129\003\138\000\000\000\000\t\190\r\178\004\129\004\129\004\129\r\182\r\186\r\198\r\210\r\234\000\000\004\129\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\129\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\029\"\014\030\017\226\n\134\n\138\004\129\017\246\004\129\000\000\000\000\004\129\004\129\000\000\006\161\r\226\000\000\r\230\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\030\234\004\129\n\142\r\238\029:\000\000\000\000\015\250\007\166\000\006\000\000\017\250\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\000\000\000\000\000\000\000\242\000\000\n\022\000\000\000\000\001\234\000\000\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\006\161\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\011\158\000\000\000\000\000\000\011j\014v\000\000\r\250\000\000\nb\nf\011\218\r\206\r\222\000\000\004F\000\000\011\226\000\000\000\000\000\000\028\246\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000A\r\230\000\000\000\000\000A\000A\000A\000\000\000A\000A\000\000\000A\000\000\000\000\000A\000\000\000A\n\142\r\238\000\000\n\021\000\000\015\250\007\166\000\000\000A\017\250\000\000\000\000\000A\000\000\000A\000A\000\000\000A\000\000\000\000\000\000\000A\000\000\000A\000\000\000A\000\000\000\000\000\000\000\000\000A\000A\000\000\000A\000A\000A\000A\000A\000A\000\000\000\000\000\000\000A\000\000\000\000\000A\000A\000\000\000\000\000\000\000A\000A\000A\000A\000A\000\000\000\000\000A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000A\000\000\000A\000A\000\000\000A\000A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000A\000A\000A\000A\000A\000\000\000A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000A\000=\000A\000\000\000\000\000=\000=\000=\000\000\000=\000=\000\000\000=\000\000\000\000\000=\000\000\000=\000A\000A\000\000\n\017\000\000\000A\000A\000\000\000=\000A\000\000\000\000\000=\000\000\000=\000=\000\000\000=\000\000\000\000\000\000\000=\000\000\000=\000\000\000=\000\000\000\000\000\000\000\000\000=\000=\000\000\000=\000=\000=\000=\000=\000=\000\000\000\000\000\000\000=\000\000\000\000\000=\000=\000\000\000\000\000\000\000=\000=\000=\000=\000=\000\000\000\000\000=\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000=\000\000\000=\000=\000\000\000=\000=\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000=\000=\000=\000=\000=\000\000\000=\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000=\019Q\000=\000\000\000\000\019Q\019Q\019Q\000\000\019Q\019Q\000\000\019Q\000\000\000\000\019Q\000\000\019Q\000=\000=\000\000\n!\000\000\000=\000=\000\000\019Q\000=\000\000\000\000\019Q\000\000\019Q\019Q\000\000\019Q\000\000\000\000\000\000\019Q\000\000\019Q\000\000\019Q\000\000\000\000\000\000\000\000\019Q\019Q\000\000\019Q\019Q\019Q\019Q\019Q\019Q\000\000\000\000\000\000\019Q\000\000\000\000\019Q\019Q\000\000\000\000\000\000\019Q\019Q\019Q\019Q\019Q\000\000\000\000\019Q\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019Q\000\000\019Q\019Q\000\000\019Q\019Q\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019Q\019Q\019Q\019Q\019Q\000\000\019Q\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019Q\019M\019Q\000\000\000\000\019M\019M\019M\000\000\019M\019M\000\000\019M\000\000\000\000\019M\000\000\019M\019Q\019Q\000\000\n\029\000\000\019Q\019Q\000\000\019M\019Q\000\000\000\000\019M\000\000\019M\019M\000\000\019M\000\000\000\000\000\000\019M\000\000\019M\000\000\019M\000\000\000\000\000\000\000\000\019M\019M\000\000\019M\019M\019M\019M\019M\019M\000\000\000\000\000\000\019M\000\000\000\000\019M\019M\000\000\000\000\000\000\019M\019M\019M\019M\019M\000\000\000\000\019M\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019M\000\000\019M\019M\000\000\019M\019M\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019M\019M\019M\019M\019M\000\000\019M\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019M\000\006\019M\000\000\011\154\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\019M\019M\000\000\000\000\000\000\019M\019M\000\000\001\234\019M\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\242\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\025\190\014\030\017\226\n\134\n\138\000\000\017\246\000\000\011\158\000\000\000\000\000\000\011j\015\002\r\226\000\000\r\230\000\000\000\000\011\218\000\000\000\000\000\000\004F\000\000\011\226\026\214\000\000\000\000\000\000\000\000\000\000\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\006\000\000\017\250\n\153\003\146\003\150\003\154\n\153\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\000\000\n\153\000\000\006\189\000\000\n\153\000\000\n\153\001\234\000\000\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\n\153\tr\000\000\br\000\000\tv\000\000\n\153\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\n\153\003\138\000\000\000\000\t\190\r\178\n\153\n\153\000\242\r\182\r\186\r\198\r\210\r\234\000\000\n\153\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\153\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\026\242\014\030\017\226\n\134\n\138\n\153\017\246\n\153 \138\000\000\n\153\n\153\000\000\011\154\r\226\000\000\r\230\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\011\158\000\000\000\000*F\011j\015\030\n\153\n\142\r\238\027\n\000\000\011\218\015\250\007\166\000\006\004F\017\250\011\226\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\000\000\000\000\000\000\000\242\000\000\027&\000\000\000\000\001\234\000\000\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\011\158\000\000\000\000\000\000\011j\015V\000\000\r\250\000\000\nb\nf\011\218\r\206\r\222\000\000\004F\000\000\011\226\000\000\000\000\000\000\027*\014\030\017\226\n\134\n\138\000\000\017\246\000\000\001\025\000\000\000\000\000\000\000\000\000\000\r\226\000\000\r\230\000\014\000\018\000\022\000\026\000\030\000\000\000\000\000\"\000&\000*\000.\0002\001\025\0006\000:\n\142\r\238\000\000\000>\000\000\015\250\007\166\000B\000\000\017\250\000\000\000\000\000\000\000\000\000F\000\000\000\000\000\000\000\000\000\000\000\000\000J\001\025\000N\b~\000R\000V\000Z\000^\000b\000f\001\025\000\000\000\000\000\000\000j\000n\001\025\000r\000v\000\000\000z\000\000\000\000\000\000\000\000\000\000\000\000\001\025\001\025\000\000\000\000\000\000\000\000\000\000\001\169\000~\000\000\000\000\000\000\000\000\000\130\000\134\000\000\000\000\000\000\000\000\000\000\000\138\000\142\000\146\000\000\000\000\000\000\000\000\000\000\001\169\000\000\000\000\000\000\000\000\000\000\001\025\000\150\000\154\000\158\000\162\000\000\000\166\000\170\000\000\000\174\000\000\000\000\001\025\000\178\000\182\000\186\000\000\000\000\000\000\000\000\000\000\000\000\000\190\000\006\000\194\000\198\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\202\bN\000\206\000\000\bf\000\000\bj\000\000\000\000\000\000\000\210\000\214\000\000\000\218\000\000\001\234\000\000\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\001\169\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210'\250\015\218\001\169\nJ\000\000\000\000\000\000\000\000\000\000\000\000\001\169\000\000\018\226\r\250\000\000\nb\nf\000\000\r\206\r\222\001\169\000\000\000\000\000\000\000\000\000\000\000\000(\002\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\031\158\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\029R\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\028\202\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\028\166\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\028z\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015\202\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\015\222\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\015\246\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\027\170\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018:\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\018\162\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\018\186\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\210\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\n\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\"\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019J\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019v\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\142\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\166\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\190\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\214\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\238\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\006\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\030\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0206\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020N\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020f\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020~\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\150\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\174\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\198\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\222\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\246\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\021\014\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\021&\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\021>\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\021V\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\021n\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\021\134\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\021\142\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\021\166\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\023\206\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\023\242\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\024\022\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\024>\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\024b\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\024\134\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\024\178\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\024\214\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\024\250\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\025\022\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\025\210\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\026\002\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\026\"\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\026B\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\026^\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\026v\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\026\138\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\026\166\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\027\238\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\028\002\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\028\030\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\028F\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\028^\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\028f\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000 :\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000(\030\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210(6\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\015r\000\000\000\000\000\000\000\000\000\000\000\000(>\014\030\017\226\n\134\n\138\014I\017\246\000\000\000\000\014I\014I\002v\000\000\014I\r\226\014I\r\230\000\000\014I\000\000\000\000\000\000\002z\014I\014I\016V\014I\014I\000\000\014I\001\234\014I\n\142\r\238\000\000\000\000\014I\015\250\007\166\000\242\014I\017\250\000\000\000\000\000\000\000\000\000\000\000\000\001\153\t\014\014I\000\000\014I\000\000\000\000\014I\016R\014I\001\246\000\000\000\000\000\000\000\000\014I\003\138\000\000\014I\014I\000\000\001\153\014I\014I\000\000\014I\000\000\014I\000\000\000\000\014I\000\000\000\000\000\000\n\193\000\000\000\000\000\000\n\193\014I\000\000\014I\014I\014I\000\000\014I\014I\014I\011\158\n\193\000\000\000\000\011j\015v\016^\n\193\000\000\014I\014I\011\218\000\000\000\000\014I\004F\014I\011\226\000\000\000\000\n\193\000\000\000\000\000\000\n\218\000\000\000\000\n\193\000\000\000\000\000\000\014I\014I\014I\000\000\014I\014I\000\000\014I\000\000\014I\n\193\014I\000\000\014I\015\197\014I\n\193\014I\b\130\003\154\001\153\000\000\003j\000\000\b\134\n\193\000\000\bf\000\000\000\000\000\000\000\000\015\197\015\197\n\193\015\197\015\197\000\000\001\234\000\000\000\000\000\000\000\000\015\218\001\153\b\190\000\000\000\000\000\000\000\000\000\000\000\000\001\153\000\000\018\226\n\193\000\000\n\193\000\000\015\197\n\193\b\210\001\153\000\000\b\230\000\000\001\190\000\000\000\000\000\000\000\000\000\000\003\138\000\000\000\000\n\n\n\014\000\000\000\000\015\197\n\018\n\193\n\026\n>\nn\004\189\004\189\nJ\000\000\002\130\000\000\000\000\000\000\004\189\000\000\000\000\015\197\004\189\nN\nb\nf\000\000\nj\nr\n~\004\189\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\189\n\134\n\138\000\000\000\000\011\002\015\197\000\000\015\197\000\000\000\000\004\189\000\000\000\000\000\000\000\000\000\000\000\000\004\189\000\000\004\189\000\000\000\000\015\197\015\197\015\161\004\189\015\197\015\197\000\000\n\142\000\000\015\197\004\189\015\197\000\000\007\166\015\193\015\197\000\000\015\197\b\130\003\154\000\000\000\000\003j\000\000\b\134\000\000\000\000\bf\000\000\000\000\000\000\000\000\015\193\015\193\000\000\015\193\015\193\000\000\001\234\000\000\000\000!\014\000\000\000\000\000\000\b\190\000\000\000\000\015\161\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015\193\000\000\b\210\000\000\000\000\011v\000\000\001\190\000\000\000\000\000\000\000\000\000\000\003\138\000\000\000\000\n\n\n\014\000\000\000\000\015\193\n\018\000\000\n\026\n>\nn\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015\193\000\000\nN\nb\nf\000\000\nj\nr\n~\015\161\000\000\000\000\000\000\015\161\015\161\000\000\000\000\000\000\n\134\n\138\015\161\000\000\011\002\015\193\004F\015\193\015\161\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015\193\015\193\000\000\000\000\015\193\015\193\000\000\n\142\000\000\015\193\000\000\015\193\019\221\007\166\000\000\015\193\019\221\015\193\000\000\019\221\019\221\000\000\000\000\019\221\019\221\000\000\000\000\019\221\019\221\000\000\000\000\019\221\019\221\019\221\000\000\019\221\019\221\019\221\000\000\019\221\019\221\019\221\000\000\019\221\019\221\019\221\000\000\000\000\000\000\000\000\019\221\000\000\000\000\000\000\019\221\000\000\000\000\019\221\019\221\019\221\000\000\019\221\019\221\019\221\000\000\019\221\019\221\019\221\019\221\000\000\019\221\019\221\019\221\000\000\019\221\019\221\019\221\019\221\019\221\019\221\000\000\019\221\019\221\019\221\000\000\019\221\019\221\019\221\019\221\019\221\019\221\000\000\019\221\019\221\019\221\019\221\019\221\019\221\002^\019\221\000\000\000\000\002^\019\221\019\221\000\000\002^\000\000\019\221\000\000\000\000\000\000\019\221\000\000\000\000\000\000\019\221\000\000\019\221\019\221\019\221\019\221\019\221\019\221\019\221\019\221\019\221\019\221\000\000\019\221\019\221\000\000\000\000\000\000\019\221\000\000\019\221\000\000\019\221\019\221\019\221\002b\019\221\019\221\019\221\005n\019\221\019\221\000\000\005\146\019\221\019\221\001\193\019\221\019\221\019\221\019\221\019\221\019\221\019\221\019\221\019\221\019\165\019\221\019\221\000\000\019\165\000\000\000\000\001\230\019\165\000\000\000\000\001\193\000\000\000\000\000\250\000\000\005f\000\000\002\158\019\165\019\165\019\165\000\000\019\165\019\165\019\165\000\000\000\000\000\000*\006\000\000\000\000\000\000\0079\000\000\tZ\000\000\000\000\019\165\000\000\000\000\000\000\000\000\000\000\000\000\019\165\019\165\019\165*\n\000\000\019\165\000\000\000\000\000\000\003\226*2\019\165\000\000\001\185\019\165\000\000\000\000\000\000\000\000\000\000\019\165\019\165\019\165\000\000 \218\000\000\000\000\000\000\000\000\019\165 \242\019\165\019\165\001\177\001\185\000\000\000\000\000\000\019\165 \250\000\000\019\165\000\000\000\000\001\193\000\000\000\000\005v!\n\000\000\000\000\019\165\000\000\000\000\001\177\000\000\000\000\000\000\000\000\019\165\000\000\019\165\019\165\000\000\019\165\019\165\000\000\015\218\001\193!\018\000\000+\014\000\000\000\000\0079\0079\001\193\019\165\018\226\019\165\000\000\019\165\019\165\000\000\ri\019\165\001\193\000\000\ri\000\000\019\165\001\230\ri\019\165\019\165+\030\019\165\000\000\019\165\019\165\ri\000\000\000\000\ri\ri\ri\000\000\ri\ri\ri\000\000\000\000\001\185\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ri\000\000\000\000\000\000\000\000\000\000\000\000\ri\ri\ri\001\177\000\000\ri\015\218\001\185\000\000\003\226\000\153\ri\000\000\000\000\ri\001\185\000\000\018\226\000\000\000\153\ri\ri\ri\000\000\000\153\001\185\015\218\001\177\000\000\ri\r\001\ri\ri\000\000\000\000\001\177\000\000\018\226\ri\000\000\000\000\ri\000\000\000\000\000\000\001\177\000\000\005v\000\000\000\000\000\153\ri\000\000\000\000\000\000\r\001\000\000\000\153\000\000\ri\000\000\ri\ri\000\000\ri\ri\000\000\000\000\000\000\000\000\000\153\000\000\000\000\000\000\000\000\000\000\000\000\ri\000\000\ri\000\000\ri\ri\000\000\rq\ri\000\000\000\000\rq\000\000\ri\001\230\rq\ri\ri\000\153\ri\000\000\ri\ri\rq\000\000\000\000\rq\rq\rq\000\000\rq\rq\rq\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\001\rq\000\000\000\000\000\000\000\000\000\153\000\000\rq\rq\rq\002:\000\000\rq\000\000\000\000\000\000\003\226\000\153\rq\000\000\000\153\rq\000\153\000\000\000\000\000\000\000\153\rq\rq\rq\000\000\000\153\000\000\000\000\000\000\000\000\rq\r\001\rq\rq\000\000\000\000\000\000\000\000\000\000\rq\000\000\000\000\rq\000\000\000\000\000\000\000\000\000\000\005v\000\000\000\000\000\153\rq\000\000\000\000\000\000\r\001\000\000\000\153\000\000\rq\000\000\rq\rq\000\000\rq\rq\000\000\000\000\000\000\000\000\000\153\000\000\000\000\000\000\000\000\000\000\000\000\rq\000\000\rq\000\000\rq\rq\000\000\rm\rq\000\000\000\000\rm\000\000\rq\001\230\rm\rq\rq\000\153\rq\000\000\rq\rq\rm\000\000\000\000\rm\rm\rm\000\000\rm\rm\rm\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\001\rm\000\000\000\000\000\000\000\000\000\153\000\000\rm\rm\rm\030\250\000\000\rm\019\229\019\205\000\000\003\226\000\157\rm\000\000\000\153\rm\000\153\000\000\000\000\000\000\000\157\rm\rm\rm\000\000\000\157\000\000\000\000\019\229\000\000\rm\002\170\rm\rm\002\174\000\000\000\000\000\000\000\000\rm\000\000\000\000\rm\t6\000\000\000\000\000\000\000\000\005v\000\000\002\186\000\157\rm\002\194\000\000\019\205\000\000\000\000\000\157\000\000\rm\000\000\rm\rm\000\000\rm\rm\000\000\000\000\000\000\000\000\000\157\000\000\000\000\000\000\000\000\000\000\000\000\rm\000\000\rm\002\198\rm\rm\000\000\re\rm\000\000\000\000\re\000\000\rm\001\230\re\rm\rm\000\157\rm\000\000\rm\rm\re\000\000\000\000\re\re\re\000\000\re\re\re\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\re\000\000\000\000\000\000\000\000\000\157\000\000\re\re\re\002\022\000\000\re\000\000\002\202\000\000\003\226\000\000\re\000\000\000\157\re\000\157\000\000\000\000\000\000\000\000\re\re\re\000\000\000\000\000\000\000\000\000\000\000\000\re\000\000\re\re\000\000\000\000\000\000\000\000\000\000\re\000\000\000\000\re\000\000\000\000\000\000\000\000\000\000\005v\000\000\000\000\000\000\re\000\000\000\000\000\000\000\000\000\000\000\000\000\000\re\000\000\re\re\000\000\re\re\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\re\000\000\re\000\000\re\re\000\000\000\000\re\000\000\000\000\000\161\000\000\re\000\161\000\161\re\re\000\000\re\000\000\re\re\000\161\000\000\000\000\000\161\000\161\000\161\000\000\000\161\000\161\000\161\000\000\r\005\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\161\000\000\000\000\000\000\000\000\001\226\001\230\000\161\000\000\000\161\000\000\000\000\000\161\000\000\r\005\000\000\000\161\000\000\000\161\000\000\000\000\000\161\000\000\000\000\000\000\001\234\002&\000\161\000\161\000\161\000\000\000\000\000\000\000\000\000\000\000\000\000\161\000\000\000\161\000\161\000\000\000\000\000\000\000\000\000\000\000\161\000\161\000\000\000\161\000\000\000\000\003~\000\000\003\226\000\161\000\000\000\000\003z\000\161\003\138\003\186\003\198\000\000\000\000\000\153\000\000\000\161\003\210\000\161\000\161\000\000\000\161\000\161\000\153\000\000\000\000\000\000\000\000\000\153\000\000\r\005\000\000\000\000\000\000\000\161\000\000\000\161\000\000\000\161\003\214\000\000\003\230\000\161\000\000\000\000\000\153\030\202\000\161\000\153\000\153\000\161\000\161\000\000\000\161\000\153\000\161\000\000\000\153\000\000\000\000\000\153\000\153\000\153\000\000\000\153\000\153\000\153\000\000\r\001\000\000\000\000\000\000\000\000\000\000\000\153\000\153\000\000\000\000\000\000\000\153\000\000\000\000\000\000\000\000\000\153\000\000\000\153\000\000\000\153\000\153\000\000\000\153\000\000\r\001\000\000\000\153\000\000\000\153\000\000\000\153\000\153\000\000\000\000\000\000\000\000\000\000\000\153\000\153\000\153\000\000\000\000\000\000\000\000\000\000\000\000\000\153\000\153\000\153\000\153\000\000\000\000\000\000\000\153\000\000\000\153\000\153\000\000\000\153\000\000\000\000\000\153\000\153\000\000\000\153\000\000\000\153\004\190\000\153\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\153\000\153\000\153\000\153\t5\000\153\000\153\000\000\t5\000\000\000\000\000\153\t5\000\000\r\001\000\153\000\000\000\000\000\153\001\202\001\226\001\230\000\153\t5\t5\t5\000\153\t5\t5\t5\000\000\000\153\000\000\000\000\000\153\000\153\000\000\000\153\000\000\000\153\001\234\002&\t5\000\000\000\000\000\000\000\000\000\153\000\000\t5\t5\t5\006\"\001\206\t5\000\000\000\153\000\000\004J\000\000\t5\000\000\000\153\t5\000\153\000\000\002f\001\210\003\226\t5\t5\t5\003z\000\000\003\138\003\186\003\198\000\000\t5\000\000\t5\t5\003\210\000\000\000\000\000\000\000\000\t5\000\153\000\000\t5\000\000\000\000\031\030\000\000\000\000\t5\000\000\000\000\000\000\t5\000\000\000\000\000\153\003\214\000\153\003\230\000\000\t5\000\000\t5\t5\000\000\t5\t5\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t5\000\000\t5\000\000\t5\t5\000\000\019\169\t5\000\000\000\000\019\169\000\000\t5\000\000\019\169\t5\t5\000\000\t5\000\000\t5\t5\005\138\000\000\000\000\019\169\019\169\019\169\000\000\019\169\019\169\019\169\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\226\001\230\000\000\000\000\000\000\019\169\000\000\000\000\000\000\000\000\000\000\000\000\019\169\019\169\019\169\000\000\000\000\019\169\000\000\000\000\001\234\002&\000\000\019\169\000\000\000\000\019\169\000\000\000\000\000\000\000\000\000\000\019\169\019\169\019\169\000\000\000\000\000\000\000\000\000\000\000\000\019\169\000\000\019\169\019\169\000\000\003~\000\000\003\218\000\000\019\169\000\000\003z\019\169\003\138\003\186\003\198\000\000\000\000\019\169\000\000\000\000\003\210\019\169\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\169\000\000\019\169\019\169\000\000\019\169\019\169\000\000\000\000\000\000\000\000\000\000\000\000\003\214\000\000\003\230\000\000\000\000\019\169\000\000\019\169\000\000\019\169\019\169\000\000\018\253\019\169\000\000\000\000\018\253\000\000\019\169\000\000\018\253\019\169\019\169\000\000\019\169\000\000\019\169\019\169\005\138\000\000\000\000\018\253\018\253\018\253\000\000\018\253\018\253\018\253\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\226\001\230\000\000\000\000\000\000\018\253\000\000\000\000\000\000\000\000\000\000\000\000\018\253\018\253-v\000\000\000\000\018\253\000\000\000\000\001\234\002&\000\000\018\253\000\000\000\000\018\253\000\000\000\000\000\000\000\000\000\000\018\253\018\253\018\253\000\000\000\000\000\000\000\000\000\000\000\000\018\253\000\000\018\253\018\253\000\000\004\202\000\000\003\226\000\000\018\253\000\000\003z\018\253\003\138\003\186\003\198\000\000\000\000\018\253\000\000\000\000\003\210\018\253\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\253\000\000\018\253\018\253\000\000\018\253\018\253\000\000\000\000\000\000\000\000\000\000\000\000\003\214\000\000\003\230\000\000\000\000\018\253\000\000\018\253\000\000\018\253\018\253\004i\000\000\018\253\000\000\004i\000\000\000\000\018\253\004i\000\000\018\253\004F\000\000\018\253\000\000\018\253\018\253\000\000\000\000\004i\004i\004i\000\000\004i\004i\004i\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\226\001\230\000\000\000\000\000\000\004i\000\000\000\000\000\000\000\000\000\000\000\000\004i\004i\004>\000\000\000\000\004i\000\000\000\000\001\234\002&\000\000\004i\000\000\000\000\004i\000\000\000\000\000\000\000\000\000\000\004i\004i\004i\000\000\000\000\000\000\000\000\000\000\000\000\004i\000\000\004i\004i\000\000\003~\000\000\005j\000\000\004i\000\000\003z\004i\003\138\003\186\003\198\000\000\000\000\004i\000\000\000\000\003\210\004i\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004i\000\000\004i\004i\000\000\004i\004i\000\000\000\000\000\000\000\000\000\000\000\000\003\214\000\000\003\230\000\000\000\000\004i\000\000\004i\000\000\004i\004i\018M\000\000\004i\000\000\018M\000\000\000\000\004i\018M\000\000\004i\004F\000\000\004i\000\000\004i\004i\000\000\000\000\018M\018M\018M\000\000\018M\018M\018M\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\226\001\230\000\000\000\000\000\000\018M\000\000\000\000\000\000\000\000\000\000\000\000\018M\018M\004>\000\000\000\000\018M\000\000\000\000\001\234\002&\000\000\018M\000\000\000\000\018M\000\000\000\000\000\000\000\000\000\000\018M\018M\018M\000\000\000\000\000\000\000\000\000\000\000\000\018M\000\000\018M\018M\000\000\003~\000\000\005\142\000\000\018M\000\000\003z\018M\003\138\003\186\003\198\000\000\000\000\018M\000\000\000\000\003\210\018M\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018M\000\000\018M\018M\000\000\018M\018M\000\000\000\000\000\000\000\000\000\000\000\000\003\214\000\000\003\230\000\000\000\000\018M\000\000\018M\000\000\018M\018M\018Q\000\000\018M\000\000\018Q\000\000\000\000\018M\018Q\000\000\018M\004F\000\000\018M\000\000\018M\018M\000\000\000\000\018Q\018Q\018Q\000\000\018Q\018Q\018Q\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\226\001\230\000\000\000\000\000\000\018Q\000\000\000\000\000\000\000\000\000\000\000\000\018Q\018Q\004Z\000\000\000\000\018Q\000\000\000\000\001\234\002&\000\000\018Q\000\000\000\000\018Q\000\000\000\000\000\000\000\000\000\000\018Q\018Q\018Q\000\000\000\000\000\000\000\000\000\000\000\000\018Q\000\000\018Q\018Q\000\000\006\202\000\000\003\226\000\000\018Q\000\000\003z\018Q\003\138\003\186\003\198\000\000\000\000\018Q\000\000\000\000\003\210\018Q\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018Q\000\000\018Q\018Q\000\000\018Q\018Q\000\000\000\000\000\000\000\000\000\000\000\000\003\214\000\000\003\230\000\000\000\000\018Q\000\000\018Q\000\000\018Q\018Q\018]\000\000\018Q\000\000\018]\000\000\000\000\018Q\018]\000\000\018Q\018Q\000\000\018Q\000\000\018Q\018Q\000\000\000\000\018]\018]\018]\000\000\018]\018]\018]\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\226\001\230\000\000\000\000\000\000\018]\000\000\000\000\000\000\000\000\000\000\000\000\018]\018]\004>\000\000\000\000\018]\000\000\000\000\001\234\002&\000\000\018]\000\000\000\000\018]\000\000\000\000\000\000\000\000\000\000\018]\018]\018]\000\000\000\000\000\000\000\000\000\000\000\000\018]\000\000\018]\018]\000\000,\146\000\000\003\226\000\000\018]\000\000\003z\018]\003\138\003\186\003\198\000\000\000\000\018]\000\000\000\000\003\210\018]\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018]\000\000\018]\018]\000\000\018]\018]\000\000\000\000\000\000\000\000\000\000\000\000\003\214\000\000\003\230\000\000\000\000\018]\000\000\018]\000\000\018]\018]\018a\000\000\018]\000\000\018a\000\000\000\000\018]\018a\000\000\018]\004F\000\000\018]\000\000\018]\018]\000\000\000\000\018a\018a\018a\000\000\018a\018a\018a\000\000\000\000\000\157\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\157\018a\000\000\000\000\000\000\000\157\000\000\000\000\018a\018a\004Z\000\157\000\000\018a\000\000\000\000\000\000\000\000\000\000\018a\000\157\000\000\018a\000\000\000\000\000\157\000\000\000\000\018a\018a\018a\000\157\000\000\000\000\000\000\000\000\000\000\018a\000\157\018a\018a\000\000\000\000\000\000\000\000\000\000\018a\000\000\000\000\018a\000\000\000\157\000\000\000\000\000\000\018a\000\000\000\000\000\157\018a\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018a\000\000\018a\018a\000\157\018a\018a\000\000\000\000\000\157\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018a\000\000\018a\000\000\018a\018a\018m\000\000\018a\000\000\018m\000\157\000\000\018a\018m\000\000\018a\018a\000\000\018a\000\000\018a\018a\000\157\000\000\018m\018m\018m\004\174\018m\018m\018m\000\000\000\000\000\000\000\000\000\000\000\000\000\157\000\000\000\157\000\000\000\000\000\157\018m\000\000\000\000\000\000\006\018\000\000\000\000\018m\018m\004>\000\157\000\000\018m\000\000\000\157\000\000\000\157\000\000\018m\000\157\000\000\018m\000\000\000\000\000\157\000\000\000\000\018m\018m\018m\000\000\000\000\000\000\000\000\000\000\000\000\018m\000\000\018m\018m\000\000\000\000\000\000\000\000\000\000\018m\000\000\000\000\018m\000\000\000\157\000\000\000\000\000\000\018m\000\000\000\000\000\157\018m\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018m\000\000\018m\018m\000\157\018m\018m\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018m\000\000\018m\000\000\018m\018m\018q\000\000\018m\000\000\018q\000\157\000\000\018m\018q\000\000\018m\004F\000\000\018m\000\000\018m\018m\000\000\000\000\018q\018q\018q\000\000\018q\018q\018q\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\157\018q\000\000\000\000\000\000\031\014\000\000\000\000\018q\018q\004Z\000\157\000\000\018q\000\000\000\157\000\000\000\157\000\000\018q\000\157\000\000\018q\000\000\000\000\000\157\000\000\000\000\018q\018q\018q\000\000\000\000\000\000\000\000\000\000\000\000\018q\000\000\018q\018q\000\000\000\000\000\000\000\000\000\000\018q\000\000\000\000\018q\000\000\000\157\000\000\000\000\000\000\018q\000\000\000\000\000\157\018q\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018q\000\000\018q\018q\000\157\018q\018q\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018q\000\000\018q\000\000\018q\018q\018u\000\000\018q\000\000\018u\000\157\000\000\018q\018u\000\000\018q\018q\000\000\018q\000\000\018q\018q\000\000\000\000\018u\018u\018u\000\000\018u\018u\018u\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\157\018u\000\000\000\000\000\000-\222\000\000\000\000\018u\018u\005*\000\153\000\000\018u\000\000\000\157\000\000\000\157\000\000\018u\000\153\000\000\018u\000\000\000\000\000\153\000\000\000\000\018u\018u\018u\000\000\000\000\000\000\000\000\000\000\000\000\018u\000\000\018u\018u\000\000\000\000\000\000\000\000\000\000\018u\000\000\000\000\018u\000\000\000\153\000\000\000\000\000\000\018u\000\000\000\000\000\153\018u\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018u\000\000\018u\018u\000\153\018u\018u\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018u\000\000\018u\000\000\018u\018u\018\141\000\000\018u\000\000\018\141\000\153\000\000\018u\018\141\000\000\018u\004F\000\000\018u\000\000\018u\018u\000\000\000\000\018\141\018\141\018\141\000\000\018\141\018\141\018\141\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\153\018\141\000\000\000\000\000\000-\238\000\000\000\000\018\141\018\141\004>\000\000\000\000\018\141\000\000\000\153\000\000\000\153\000\000\018\141\000\000\000\000\018\141\000\000\000\000\000\000\000\000\000\000\018\141\018\141\018\141\000\000\000\000\000\000\000\000\000\000\000\000\018\141\000\000\018\141\018\141\000\000\000\000\000\000\000\000\000\000\018\141\000\000\000\000\018\141\000\000\000\000\000\000\000\000\000\000\018\141\000\000\000\000\000\000\018\141\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\141\000\000\018\141\018\141\000\000\018\141\018\141\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\141\000\000\018\141\000\000\018\141\018\141\018\145\000\000\018\141\000\000\018\145\000\000\000\000\018\141\018\145\000\000\018\141\004F\000\000\018\141\000\000\018\141\018\141\000\000\000\000\018\145\018\145\018\145\000\000\018\145\018\145\018\145\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\145\000\000\000\000\000\000\000\000\000\000\000\000\018\145\018\145\004Z\000\000\000\000\018\145\000\000\000\000\000\000\000\000\000\000\018\145\000\000\000\000\018\145\000\000\000\000\000\000\000\000\000\000\018\145\018\145\018\145\000\000\000\000\000\000\000\000\000\000\000\000\018\145\000\000\018\145\018\145\000\000\000\000\000\000\000\000\000\000\018\145\000\000\000\000\018\145\000\000\000\000\000\000\000\000\000\000\018\145\000\000\000\000\000\000\018\145\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\145\000\000\018\145\018\145\000\000\018\145\018\145\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\145\000\000\018\145\000\000\018\145\018\145\018\149\000\000\018\145\000\000\018\149\000\000\000\000\018\145\018\149\000\000\018\145\018\145\000\000\018\145\000\000\018\145\018\145\000\000\000\000\018\149\018\149\018\149\000\000\018\149\018\149\018\149\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\149\000\000\000\000\000\000\000\000\000\000\000\000\018\149\018\149\005*\000\000\000\000\018\149\000\000\000\000\000\000\000\000\000\000\018\149\000\000\000\000\018\149\000\000\000\000\000\000\000\000\000\000\018\149\018\149\018\149\000\000\000\000\000\000\000\000\000\000\000\000\018\149\000\000\018\149\018\149\000\000\000\000\000\000\000\000\000\000\018\149\000\000\000\000\018\149\000\000\000\000\000\000\000\000\000\000\018\149\000\000\000\000\000\000\018\149\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\149\000\000\018\149\018\149\000\000\018\149\018\149\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\149\000\000\018\149\000\000\018\149\018\149\018\153\000\000\018\149\000\000\018\153\000\000\000\000\018\149\018\153\000\000\018\149\004F\000\000\018\149\000\000\018\149\018\149\000\000\000\000\018\153\018\153\018\153\000\000\018\153\018\153\018\153\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\153\000\000\000\000\000\000\000\000\000\000\000\000\018\153\018\153\005F\000\000\000\000\018\153\000\000\000\000\000\000\000\000\000\000\018\153\000\000\000\000\018\153\000\000\000\000\000\000\000\000\000\000\018\153\018\153\018\153\000\000\000\000\000\000\000\000\000\000\000\000\018\153\000\000\018\153\018\153\000\000\000\000\000\000\000\000\000\000\018\153\000\000\000\000\018\153\000\000\000\000\000\000\000\000\000\000\018\153\000\000\000\000\000\000\018\153\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\153\000\000\018\153\018\153\000\000\018\153\018\153\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\153\000\000\018\153\000\000\018\153\018\153\018\157\000\000\018\153\000\000\018\157\000\000\000\000\018\153\018\157\000\000\018\153\018\153\000\000\018\153\000\000\018\153\018\153\000\000\000\000\018\157\018\157\018\157\000\000\018\157\018\157\018\157\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\157\000\000\000\000\000\000\000\000\000\000\000\000\018\157\018\157\004>\000\000\000\000\018\157\000\000\000\000\000\000\000\000\000\000\018\157\000\000\000\000\018\157\000\000\000\000\000\000\000\000\000\000\018\157\018\157\018\157\000\000\000\000\000\000\000\000\000\000\000\000\018\157\000\000\018\157\018\157\000\000\000\000\000\000\000\000\000\000\018\157\000\000\000\000\018\157\000\000\000\000\000\000\000\000\000\000\018\157\000\000\000\000\000\000\018\157\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\157\000\000\018\157\018\157\000\000\018\157\018\157\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\157\000\000\018\157\000\000\018\157\018\157\018\161\000\000\018\157\000\000\018\161\000\000\000\000\018\157\018\161\000\000\018\157\004F\000\000\018\157\000\000\018\157\018\157\000\000\000\000\018\161\018\161\018\161\000\000\018\161\018\161\018\161\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\161\000\000\000\000\000\000\000\000\000\000\000\000\018\161\018\161\004Z\000\000\000\000\018\161\000\000\000\000\000\000\000\000\000\000\018\161\000\000\000\000\018\161\000\000\000\000\000\000\000\000\000\000\018\161\018\161\018\161\000\000\000\000\000\000\000\000\000\000\000\000\018\161\000\000\018\161\018\161\000\000\000\000\000\000\000\000\000\000\018\161\000\000\000\000\018\161\000\000\000\000\000\000\000\000\000\000\018\161\000\000\000\000\000\000\018\161\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\161\000\000\018\161\018\161\000\000\018\161\018\161\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\161\000\000\018\161\000\000\018\161\018\161\018\165\000\000\018\161\000\000\018\165\000\000\000\000\018\161\018\165\000\000\018\161\018\161\000\000\018\161\000\000\018\161\018\161\000\000\000\000\018\165\018\165\018\165\000\000\018\165\018\165\018\165\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\165\000\000\000\000\000\000\000\000\000\000\000\000\018\165\018\165\005*\000\000\000\000\018\165\000\000\000\000\000\000\000\000\000\000\018\165\000\000\000\000\018\165\000\000\000\000\000\000\000\000\000\000\018\165\018\165\018\165\000\000\000\000\000\000\000\000\000\000\000\000\018\165\000\000\018\165\018\165\000\000\000\000\000\000\000\000\000\000\018\165\000\000\000\000\018\165\000\000\000\000\000\000\000\000\000\000\018\165\000\000\000\000\000\000\018\165\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\165\000\000\018\165\018\165\000\000\018\165\018\165\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\165\000\000\018\165\000\000\018\165\018\165\018\169\000\000\018\165\000\000\018\169\000\000\000\000\018\165\018\169\000\000\018\165\004F\000\000\018\165\000\000\018\165\018\165\000\000\000\000\018\169\018\169\018\169\000\000\018\169\018\169\018\169\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\169\000\000\000\000\000\000\000\000\000\000\000\000\018\169\018\169\005F\000\000\000\000\018\169\000\000\000\000\000\000\000\000\000\000\018\169\000\000\000\000\018\169\000\000\000\000\000\000\000\000\000\000\018\169\018\169\018\169\000\000\000\000\000\000\000\000\000\000\000\000\018\169\000\000\018\169\018\169\000\000\000\000\000\000\000\000\000\000\018\169\000\000\000\000\018\169\000\000\000\000\000\000\000\000\000\000\018\169\000\000\000\000\000\000\018\169\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\169\000\000\018\169\018\169\000\000\018\169\018\169\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\169\000\000\018\169\000\000\018\169\018\169\018y\000\000\018\169\000\000\018y\000\000\000\000\018\169\018y\000\000\018\169\018\169\000\000\018\169\000\000\018\169\018\169\000\000\000\000\018y\018y\018y\000\000\018y\018y\018y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018y\000\000\000\000\000\000\000\000\000\000\000\000\018y\018y\005F\000\000\000\000\018y\000\000\000\000\000\000\000\000\000\000\018y\000\000\000\000\018y\000\000\000\000\000\000\000\000\000\000\018y\018y\018y\000\000\000\000\000\000\000\000\000\000\000\000\018y\000\000\018y\018y\000\000\000\000\000\000\000\000\000\000\018y\000\000\000\000\018y\000\000\000\000\000\000\000\000\000\000\018y\000\000\000\000\000\000\018y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018y\000\000\018y\018y\000\000\018y\018y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018y\000\000\018y\000\000\018y\018y\018}\000\000\018y\000\000\018}\000\000\000\000\018y\018}\000\000\018y\018y\000\000\018y\000\000\018y\018y\000\000\000\000\018}\018}\018}\000\000\018}\018}\018}\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018}\000\000\000\000\000\000\000\000\000\000\000\000\018}\018}\004>\000\000\000\000\018}\000\000\000\000\000\000\000\000\000\000\018}\000\000\000\000\018}\000\000\000\000\000\000\000\000\000\000\018}\018}\018}\000\000\000\000\000\000\000\000\000\000\000\000\018}\000\000\018}\018}\000\000\000\000\000\000\000\000\000\000\018}\000\000\000\000\018}\000\000\000\000\000\000\000\000\000\000\018}\000\000\000\000\000\000\018}\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018}\000\000\018}\018}\000\000\018}\018}\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018}\000\000\018}\000\000\018}\018}\018\129\000\000\018}\000\000\018\129\000\000\000\000\018}\018\129\000\000\018}\004F\000\000\018}\000\000\018}\018}\000\000\000\000\018\129\018\129\018\129\000\000\018\129\018\129\018\129\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\129\000\000\000\000\000\000\000\000\000\000\000\000\018\129\018\129\004Z\000\000\000\000\018\129\000\000\000\000\000\000\000\000\000\000\018\129\000\000\000\000\018\129\000\000\000\000\000\000\000\000\000\000\018\129\018\129\018\129\000\000\000\000\000\000\000\000\000\000\000\000\018\129\000\000\018\129\018\129\000\000\000\000\000\000\000\000\000\000\018\129\000\000\000\000\018\129\000\000\000\000\000\000\000\000\000\000\018\129\000\000\000\000\000\000\018\129\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\129\000\000\018\129\018\129\000\000\018\129\018\129\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\129\000\000\018\129\000\000\018\129\018\129\018\133\000\000\018\129\000\000\018\133\000\000\000\000\018\129\018\133\000\000\018\129\018\129\000\000\018\129\000\000\018\129\018\129\000\000\000\000\018\133\018\133\018\133\000\000\018\133\018\133\018\133\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\133\000\000\000\000\000\000\000\000\000\000\000\000\018\133\018\133\005*\000\000\000\000\018\133\000\000\000\000\000\000\000\000\000\000\018\133\000\000\000\000\018\133\000\000\000\000\000\000\000\000\000\000\018\133\018\133\018\133\000\000\000\000\000\000\000\000\000\000\000\000\018\133\000\000\018\133\018\133\000\000\000\000\000\000\000\000\000\000\018\133\000\000\000\000\018\133\000\000\000\000\000\000\000\000\000\000\018\133\000\000\000\000\000\000\018\133\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\133\000\000\018\133\018\133\000\000\018\133\018\133\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\133\000\000\018\133\000\000\018\133\018\133\018\137\000\000\018\133\000\000\018\137\000\000\000\000\018\133\018\137\000\000\018\133\004F\000\000\018\133\000\000\018\133\018\133\000\000\000\000\018\137\018\137\018\137\000\000\018\137\018\137\018\137\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\137\000\000\000\000\000\000\000\000\000\000\000\000\018\137\018\137\005F\000\000\000\000\018\137\000\000\000\000\000\000\000\000\000\000\018\137\000\000\000\000\018\137\000\000\000\000\000\000\000\000\000\000\018\137\018\137\018\137\000\000\000\000\000\000\000\000\000\000\000\000\018\137\000\000\018\137\018\137\000\000\000\000\000\000\000\000\000\000\018\137\000\000\000\000\018\137\000\000\000\000\000\000\000\000\000\000\018\137\000\000\000\000\000\000\018\137\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\137\000\000\018\137\018\137\000\000\018\137\018\137\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\137\000\000\018\137\000\000\018\137\018\137\002\025\000\000\018\137\000\000\002\025\000\000\000\000\018\137\002\025\000\000\018\137\018\137\000\000\018\137\000\000\018\137\018\137\000\000\000\000\002\025\002\025\002\025\000\000\002\025\002\025\002\025\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\025\000\000\000\000\000\000\000\000\000\000\000\000\002\025\002\025\002\025\000\000\000\000\002\025\000\000\000\000\000\000\000\000\000\000\002\025\000\000\000\000\002\025\000\000\000\000\000\000\000\000\000\000\002\025\002\025\002\025\000\000\000\000\000\000\000\000\000\000\000\000\002\025\000\000\002\025\002\025\000\000\000\000\000\000\000\000\000\000\002\025\000\000\000\000\002\025\000\000\000\000\000\000\000\000\000\000\002\025\000\000\000\000\000\000\002\025\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\025\000\000\002\025\002\025\000\000\002\025\002\025\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\025\000\000\002\025\000\000\002\025\002\025\017-\000\000\002\025\000\000\017-\000\000\000\000\002\025\017-\000\000\002\025\002\025\000\000\005\206\000\000\002\025\002\025\000\000\000\000\017-\017-\017-\000\000\017-\017-\017-\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017-\000\000\000\000\000\000\000\000\000\000\000\000\017-\017-\004>\000\000\000\000\017-\000\000\000\000\000\000\000\000\000\000\017-\000\000\000\000\017-\000\000\000\000\000\000\000\000\000\000\017-\017-\017-\000\000\000\000\000\000\000\000\000\000\000\000\017-\000\000\017-\017-\000\000\000\000\000\000\000\000\000\000\017-\000\000\000\000\017-\000\000\000\000\000\000\000\000\000\000\017-\000\000\000\000\000\000\017-\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017-\000\000\017-\017-\000\000\017-\017-\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017-\000\000\017-\000\000\017-\017-\0171\000\000\017-\000\000\0171\000\000\000\000\017-\0171\000\000\017-\004F\000\000\017-\000\000\017-\017-\000\000\000\000\0171\0171\0171\000\000\0171\0171\0171\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0171\000\000\000\000\000\000\000\000\000\000\000\000\0171\0171\004Z\000\000\000\000\0171\000\000\000\000\000\000\000\000\000\000\0171\000\000\000\000\0171\000\000\000\000\000\000\000\000\000\000\0171\0171\0171\000\000\000\000\000\000\000\000\000\000\000\000\0171\000\000\0171\0171\000\000\000\000\000\000\000\000\000\000\0171\000\000\000\000\0171\000\000\000\000\000\000\000\000\000\000\0171\000\000\000\000\000\000\0171\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0171\000\000\0171\0171\000\000\0171\0171\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0171\000\000\0171\000\000\0171\0171\0175\000\000\0171\000\000\0175\000\000\000\000\0171\0175\000\000\0171\0171\000\000\0171\000\000\0171\0171\000\000\000\000\0175\0175\0175\000\000\0175\0175\0175\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0175\000\000\000\000\000\000\000\000\000\000\000\000\0175\0175\005*\000\000\000\000\0175\000\000\000\000\000\000\000\000\000\000\0175\000\000\000\000\0175\000\000\000\000\000\000\000\000\000\000\0175\0175\0175\000\000\000\000\000\000\000\000\000\000\000\000\0175\000\000\0175\0175\000\000\000\000\000\000\000\000\000\000\0175\000\000\000\000\0175\000\000\000\000\000\000\000\000\000\000\0175\000\000\000\000\000\000\0175\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0175\000\000\0175\0175\000\000\0175\0175\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0175\000\000\0175\000\000\0175\0175\0179\000\000\0175\000\000\0179\000\000\000\000\0175\0179\000\000\0175\004F\000\000\0175\000\000\0175\0175\000\000\000\000\0179\0179\0179\000\000\0179\0179\0179\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0179\000\000\000\000\000\000\000\000\000\000\000\000\0179\0179\005F\000\000\000\000\0179\000\000\000\000\000\000\000\000\000\000\0179\000\000\000\000\0179\000\000\000\000\000\000\000\000\000\000\0179\0179\0179\000\000\000\000\000\000\000\000\000\000\000\000\0179\000\000\0179\0179\000\000\000\000\000\000\000\000\000\000\0179\000\000\000\000\0179\000\000\000\000\000\000\000\000\000\000\0179\000\000\000\000\000\000\0179\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0179\000\000\0179\0179\000\000\0179\0179\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0179\000\000\0179\000\000\0179\0179\017=\000\000\0179\000\000\017=\000\000\000\000\0179\017=\000\000\0179\0179\000\000\0179\000\000\0179\0179\000\000\000\000\017=\017=\017=\000\000\017=\017=\017=\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017=\000\000\000\000\000\000\000\000\000\000\000\000\017=\017=\004>\000\000\000\000\017=\000\000\000\000\000\000\000\000\000\000\017=\000\000\000\000\017=\000\000\000\000\000\000\000\000\000\000\017=\017=\017=\000\000\000\000\000\000\000\000\000\000\000\000\017=\000\000\017=\017=\000\000\000\000\000\000\000\000\000\000\017=\000\000\000\000\017=\000\000\000\000\000\000\000\000\000\000\017=\000\000\000\000\000\000\017=\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017=\000\000\017=\017=\000\000\017=\017=\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017=\000\000\017=\000\000\017=\017=\017A\000\000\017=\000\000\017A\000\000\000\000\017=\017A\000\000\017=\004F\000\000\017=\000\000\017=\017=\000\000\000\000\017A\017A\017A\000\000\017A\017A\017A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017A\000\000\000\000\000\000\000\000\000\000\000\000\017A\017A\004Z\000\000\000\000\017A\000\000\000\000\000\000\000\000\000\000\017A\000\000\000\000\017A\000\000\000\000\000\000\000\000\000\000\017A\017A\017A\000\000\000\000\000\000\000\000\000\000\000\000\017A\000\000\017A\017A\000\000\000\000\000\000\000\000\000\000\017A\000\000\000\000\017A\000\000\000\000\000\000\000\000\000\000\017A\000\000\000\000\000\000\017A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017A\000\000\017A\017A\000\000\017A\017A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017A\000\000\017A\000\000\017A\017A\017E\000\000\017A\000\000\017E\000\000\000\000\017A\017E\000\000\017A\017A\000\000\017A\000\000\017A\017A\000\000\000\000\017E\017E\017E\000\000\017E\017E\017E\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017E\000\000\000\000\000\000\000\000\000\000\000\000\017E\017E\005*\000\000\000\000\017E\000\000\000\000\000\000\000\000\000\000\017E\000\000\000\000\017E\000\000\000\000\000\000\000\000\000\000\017E\017E\017E\000\000\000\000\000\000\000\000\000\000\000\000\017E\000\000\017E\017E\000\000\000\000\000\000\000\000\000\000\017E\000\000\000\000\017E\000\000\000\000\000\000\000\000\000\000\017E\000\000\000\000\000\000\017E\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017E\000\000\017E\017E\000\000\017E\017E\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017E\000\000\017E\000\000\017E\017E\017I\000\000\017E\000\000\017I\000\000\000\000\017E\017I\000\000\017E\004F\000\000\017E\000\000\017E\017E\000\000\000\000\017I\017I\017I\000\000\017I\017I\017I\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017I\000\000\000\000\000\000\000\000\000\000\000\000\017I\017I\005F\000\000\000\000\017I\000\000\000\000\000\000\000\000\000\000\017I\000\000\000\000\017I\000\000\000\000\000\000\000\000\000\000\017I\017I\017I\000\000\000\000\000\000\000\000\000\000\000\000\017I\000\000\017I\017I\000\000\000\000\000\000\000\000\000\000\017I\000\000\000\000\017I\000\000\000\000\000\000\000\000\000\000\017I\000\000\000\000\000\000\017I\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017I\000\000\017I\017I\000\000\017I\017I\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017I\000\000\017I\000\000\017I\017I\017M\000\000\017I\000\000\017M\000\000\000\000\017I\017M\000\000\017I\017I\000\000\017I\000\000\017I\017I\000\000\000\000\017M\017M\017M\000\000\017M\017M\017M\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017M\000\000\000\000\000\000\000\000\000\000\000\000\017M\017M\004>\000\000\000\000\017M\000\000\000\000\000\000\000\000\000\000\017M\000\000\000\000\017M\000\000\000\000\000\000\000\000\000\000\017M\017M\017M\000\000\000\000\000\000\000\000\000\000\000\000\017M\000\000\017M\017M\000\000\000\000\000\000\000\000\000\000\017M\000\000\000\000\017M\000\000\000\000\000\000\000\000\000\000\017M\000\000\000\000\000\000\017M\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017M\000\000\017M\017M\000\000\017M\017M\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017M\000\000\017M\000\000\017M\017M\017Q\000\000\017M\000\000\017Q\000\000\000\000\017M\017Q\000\000\017M\004F\000\000\017M\000\000\017M\017M\000\000\000\000\017Q\017Q\017Q\000\000\017Q\017Q\017Q\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017Q\000\000\000\000\000\000\000\000\000\000\000\000\017Q\017Q\004Z\000\000\000\000\017Q\000\000\000\000\000\000\000\000\000\000\017Q\000\000\000\000\017Q\000\000\000\000\000\000\000\000\000\000\017Q\017Q\017Q\000\000\000\000\000\000\000\000\000\000\000\000\017Q\000\000\017Q\017Q\000\000\000\000\000\000\000\000\000\000\017Q\000\000\000\000\017Q\000\000\000\000\000\000\000\000\000\000\017Q\000\000\000\000\000\000\017Q\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017Q\000\000\017Q\017Q\000\000\017Q\017Q\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017Q\000\000\017Q\000\000\017Q\017Q\017U\000\000\017Q\000\000\017U\000\000\000\000\017Q\017U\000\000\017Q\017Q\000\000\017Q\000\000\017Q\017Q\000\000\000\000\017U\017U\017U\000\000\017U\017U\017U\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017U\000\000\000\000\000\000\000\000\000\000\000\000\017U\017U\005*\000\000\000\000\017U\000\000\000\000\000\000\000\000\000\000\017U\000\000\000\000\017U\000\000\000\000\000\000\000\000\000\000\017U\017U\017U\000\000\000\000\000\000\000\000\000\000\000\000\017U\000\000\017U\017U\000\000\000\000\000\000\000\000\000\000\017U\000\000\000\000\017U\000\000\000\000\000\000\000\000\000\000\017U\000\000\000\000\000\000\017U\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017U\000\000\017U\017U\000\000\017U\017U\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017U\000\000\017U\000\000\017U\017U\017Y\000\000\017U\000\000\017Y\000\000\000\000\017U\017Y\000\000\017U\004F\000\000\017U\000\000\017U\017U\000\000\000\000\017Y\017Y\017Y\000\000\017Y\017Y\017Y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017Y\000\000\000\000\000\000\000\000\000\000\000\000\017Y\017Y\005F\000\000\000\000\017Y\000\000\000\000\000\000\000\000\000\000\017Y\000\000\000\000\017Y\000\000\000\000\000\000\000\000\000\000\017Y\017Y\017Y\000\000\000\000\000\000\000\000\000\000\000\000\017Y\000\000\017Y\017Y\000\000\000\000\000\000\000\000\000\000\017Y\000\000\000\000\017Y\000\000\000\000\000\000\000\000\000\000\017Y\000\000\000\000\000\000\017Y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017Y\000\000\017Y\017Y\000\000\017Y\017Y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017Y\000\000\017Y\000\000\017Y\017Y\017]\000\000\017Y\000\000\017]\000\000\000\000\017Y\017]\000\000\017Y\017Y\000\000\017Y\000\000\017Y\017Y\000\000\000\000\017]\017]\017]\000\000\017]\017]\017]\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017]\000\000\000\000\000\000\000\000\000\000\000\000\017]\017]\004>\000\000\000\000\017]\000\000\000\000\000\000\000\000\000\000\017]\000\000\000\000\017]\000\000\000\000\000\000\000\000\000\000\017]\017]\017]\000\000\000\000\000\000\000\000\000\000\000\000\017]\000\000\017]\017]\000\000\000\000\000\000\000\000\000\000\017]\000\000\000\000\017]\000\000\000\000\000\000\000\000\000\000\017]\000\000\000\000\000\000\017]\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017]\000\000\017]\017]\000\000\017]\017]\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017]\000\000\017]\000\000\017]\017]\017a\000\000\017]\000\000\017a\000\000\000\000\017]\017a\000\000\017]\004F\000\000\017]\000\000\017]\017]\000\000\000\000\017a\017a\017a\000\000\017a\017a\017a\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017a\000\000\000\000\000\000\000\000\000\000\000\000\017a\017a\004Z\000\000\000\000\017a\000\000\000\000\000\000\000\000\000\000\017a\000\000\000\000\017a\000\000\000\000\000\000\000\000\000\000\017a\017a\017a\000\000\000\000\000\000\000\000\000\000\000\000\017a\000\000\017a\017a\000\000\000\000\000\000\000\000\000\000\017a\000\000\000\000\017a\000\000\000\000\000\000\000\000\000\000\017a\000\000\000\000\000\000\017a\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017a\000\000\017a\017a\000\000\017a\017a\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017a\000\000\017a\000\000\017a\017a\017e\000\000\017a\000\000\017e\000\000\000\000\017a\017e\000\000\017a\017a\000\000\017a\000\000\017a\017a\000\000\000\000\017e\017e\017e\000\000\017e\017e\017e\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017e\000\000\000\000\000\000\000\000\000\000\000\000\017e\017e\005*\000\000\000\000\017e\000\000\000\000\000\000\000\000\000\000\017e\000\000\000\000\017e\000\000\000\000\000\000\000\000\000\000\017e\017e\017e\000\000\000\000\000\000\000\000\000\000\000\000\017e\000\000\017e\017e\000\000\000\000\000\000\000\000\000\000\017e\000\000\000\000\017e\000\000\000\000\000\000\000\000\000\000\017e\000\000\000\000\000\000\017e\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017e\000\000\017e\017e\000\000\017e\017e\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017e\000\000\017e\000\000\017e\017e\017i\000\000\017e\000\000\017i\000\000\000\000\017e\017i\000\000\017e\004F\000\000\017e\000\000\017e\017e\000\000\000\000\017i\017i\017i\000\000\017i\017i\017i\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017i\000\000\000\000\000\000\000\000\000\000\000\000\017i\017i\005F\000\000\000\000\017i\000\000\000\000\000\000\000\000\000\000\017i\000\000\000\000\017i\000\000\000\000\000\000\000\000\000\000\017i\017i\017i\000\000\000\000\000\000\000\000\000\000\000\000\017i\000\000\017i\017i\000\000\000\000\000\000\000\000\000\000\017i\000\000\000\000\017i\000\000\000\000\000\000\000\000\000\000\017i\000\000\000\000\000\000\017i\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017i\000\000\017i\017i\000\000\017i\017i\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017i\000\000\017i\000\000\017i\017i\017m\000\000\017i\000\000\017m\000\000\000\000\017i\017m\000\000\017i\017i\000\000\017i\000\000\017i\017i\000\000\000\000\017m\017m\017m\000\000\017m\017m\017m\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017m\000\000\000\000\000\000\000\000\000\000\000\000\017m\017m\004>\000\000\000\000\017m\000\000\000\000\000\000\000\000\000\000\017m\000\000\000\000\017m\000\000\000\000\000\000\000\000\000\000\017m\017m\017m\000\000\000\000\000\000\000\000\000\000\000\000\017m\000\000\017m\017m\000\000\000\000\000\000\000\000\000\000\017m\000\000\000\000\017m\000\000\000\000\000\000\000\000\000\000\017m\000\000\000\000\000\000\017m\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017m\000\000\017m\017m\000\000\017m\017m\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017m\000\000\017m\000\000\017m\017m\017q\000\000\017m\000\000\017q\000\000\000\000\017m\017q\000\000\017m\004F\000\000\017m\000\000\017m\017m\000\000\000\000\017q\017q\017q\000\000\017q\017q\017q\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017q\000\000\000\000\000\000\000\000\000\000\000\000\017q\017q\004Z\000\000\000\000\017q\000\000\000\000\000\000\000\000\000\000\017q\000\000\000\000\017q\000\000\000\000\000\000\000\000\000\000\017q\017q\017q\000\000\000\000\000\000\000\000\000\000\000\000\017q\000\000\017q\017q\000\000\000\000\000\000\000\000\000\000\017q\000\000\000\000\017q\000\000\000\000\000\000\000\000\000\000\017q\000\000\000\000\000\000\017q\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017q\000\000\017q\017q\000\000\017q\017q\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017q\000\000\017q\000\000\017q\017q\017u\000\000\017q\000\000\017u\000\000\000\000\017q\017u\000\000\017q\017q\000\000\017q\000\000\017q\017q\000\000\000\000\017u\017u\017u\000\000\017u\017u\017u\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017u\000\000\000\000\000\000\000\000\000\000\000\000\017u\017u\005*\000\000\000\000\017u\000\000\000\000\000\000\000\000\000\000\017u\000\000\000\000\017u\000\000\000\000\000\000\000\000\000\000\017u\017u\017u\000\000\000\000\000\000\000\000\000\000\000\000\017u\000\000\017u\017u\000\000\000\000\000\000\000\000\000\000\017u\000\000\000\000\017u\000\000\000\000\000\000\000\000\000\000\017u\000\000\000\000\000\000\017u\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017u\000\000\017u\017u\000\000\017u\017u\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017u\000\000\017u\000\000\017u\017u\017y\000\000\017u\000\000\017y\000\000\000\000\017u\017y\000\000\017u\004F\000\000\017u\000\000\017u\017u\000\000\000\000\017y\017y\017y\000\000\017y\017y\017y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017y\000\000\000\000\000\000\000\000\000\000\000\000\017y\017y\005F\000\000\000\000\017y\000\000\000\000\000\000\000\000\000\000\017y\000\000\000\000\017y\000\000\000\000\000\000\000\000\000\000\017y\017y\017y\000\000\000\000\000\000\000\000\000\000\000\000\017y\000\000\017y\017y\000\000\000\000\000\000\000\000\000\000\017y\000\000\000\000\017y\000\000\000\000\000\000\000\000\000\000\017y\000\000\000\000\000\000\017y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017y\000\000\017y\017y\000\000\017y\017y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017y\000\000\017y\000\000\017y\017y\017}\000\000\017y\000\000\017}\000\000\000\000\017y\017}\000\000\017y\017y\000\000\017y\000\000\017y\017y\000\000\000\000\017}\017}\017}\000\000\017}\017}\017}\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017}\000\000\000\000\000\000\000\000\000\000\000\000\017}\017}\004>\000\000\000\000\017}\000\000\000\000\000\000\000\000\000\000\017}\000\000\000\000\017}\000\000\000\000\000\000\000\000\000\000\017}\017}\017}\000\000\000\000\000\000\000\000\000\000\000\000\017}\000\000\017}\017}\000\000\000\000\000\000\000\000\000\000\017}\000\000\000\000\017}\000\000\000\000\000\000\000\000\000\000\017}\000\000\000\000\000\000\017}\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017}\000\000\017}\017}\000\000\017}\017}\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017}\000\000\017}\000\000\017}\017}\017\129\000\000\017}\000\000\017\129\000\000\000\000\017}\017\129\000\000\017}\004F\000\000\017}\000\000\017}\017}\000\000\000\000\017\129\017\129\017\129\000\000\017\129\017\129\017\129\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\129\000\000\000\000\000\000\000\000\000\000\000\000\017\129\017\129\004Z\000\000\000\000\017\129\000\000\000\000\000\000\000\000\000\000\017\129\000\000\000\000\017\129\000\000\000\000\000\000\000\000\000\000\017\129\017\129\017\129\000\000\000\000\000\000\000\000\000\000\000\000\017\129\000\000\017\129\017\129\000\000\000\000\000\000\000\000\000\000\017\129\000\000\000\000\017\129\000\000\000\000\000\000\000\000\000\000\017\129\000\000\000\000\000\000\017\129\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\129\000\000\017\129\017\129\000\000\017\129\017\129\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\129\000\000\017\129\000\000\017\129\017\129\017\133\000\000\017\129\000\000\017\133\000\000\000\000\017\129\017\133\000\000\017\129\017\129\000\000\017\129\000\000\017\129\017\129\000\000\000\000\017\133\017\133\017\133\000\000\017\133\017\133\017\133\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\133\000\000\000\000\000\000\000\000\000\000\000\000\017\133\017\133\005*\000\000\000\000\017\133\000\000\000\000\000\000\000\000\000\000\017\133\000\000\000\000\017\133\000\000\000\000\000\000\000\000\000\000\017\133\017\133\017\133\000\000\000\000\000\000\000\000\000\000\000\000\017\133\000\000\017\133\017\133\000\000\000\000\000\000\000\000\000\000\017\133\000\000\000\000\017\133\000\000\000\000\000\000\000\000\000\000\017\133\000\000\000\000\000\000\017\133\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\133\000\000\017\133\017\133\000\000\017\133\017\133\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\133\000\000\017\133\000\000\017\133\017\133\017\137\000\000\017\133\000\000\017\137\000\000\000\000\017\133\017\137\000\000\017\133\004F\000\000\017\133\000\000\017\133\017\133\000\000\000\000\017\137\017\137\017\137\000\000\017\137\017\137\017\137\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\137\000\000\000\000\000\000\000\000\000\000\000\000\017\137\017\137\005F\000\000\000\000\017\137\000\000\000\000\000\000\000\000\000\000\017\137\000\000\000\000\017\137\000\000\000\000\000\000\000\000\000\000\017\137\017\137\017\137\000\000\000\000\000\000\000\000\000\000\000\000\017\137\000\000\017\137\017\137\000\000\000\000\000\000\000\000\000\000\017\137\000\000\000\000\017\137\000\000\000\000\000\000\000\000\000\000\017\137\000\000\000\000\000\000\017\137\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\137\000\000\017\137\017\137\000\000\017\137\017\137\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\137\000\000\017\137\000\000\017\137\017\137\017\141\000\000\017\137\000\000\017\141\000\000\000\000\017\137\017\141\000\000\017\137\017\137\000\000\017\137\000\000\017\137\017\137\000\000\000\000\017\141\017\141\017\141\000\000\017\141\017\141\017\141\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\141\000\000\000\000\000\000\000\000\000\000\000\000\017\141\017\141\004>\000\000\000\000\017\141\000\000\000\000\000\000\000\000\000\000\017\141\000\000\000\000\017\141\000\000\000\000\000\000\000\000\000\000\017\141\017\141\017\141\000\000\000\000\000\000\000\000\000\000\000\000\017\141\000\000\017\141\017\141\000\000\000\000\000\000\000\000\000\000\017\141\000\000\000\000\017\141\000\000\000\000\000\000\000\000\000\000\017\141\000\000\000\000\000\000\017\141\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\141\000\000\017\141\017\141\000\000\017\141\017\141\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\141\000\000\017\141\000\000\017\141\017\141\017\145\000\000\017\141\000\000\017\145\000\000\000\000\017\141\017\145\000\000\017\141\004F\000\000\017\141\000\000\017\141\017\141\000\000\000\000\017\145\017\145\017\145\000\000\017\145\017\145\017\145\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\145\000\000\000\000\000\000\000\000\000\000\000\000\017\145\017\145\004Z\000\000\000\000\017\145\000\000\000\000\000\000\000\000\000\000\017\145\000\000\000\000\017\145\000\000\000\000\000\000\000\000\000\000\017\145\017\145\017\145\000\000\000\000\000\000\000\000\000\000\000\000\017\145\000\000\017\145\017\145\000\000\000\000\000\000\000\000\000\000\017\145\000\000\000\000\017\145\000\000\000\000\000\000\000\000\000\000\017\145\000\000\000\000\000\000\017\145\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\145\000\000\017\145\017\145\000\000\017\145\017\145\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\145\000\000\017\145\000\000\017\145\017\145\017\149\000\000\017\145\000\000\017\149\000\000\000\000\017\145\017\149\000\000\017\145\017\145\000\000\017\145\000\000\017\145\017\145\000\000\000\000\017\149\017\149\017\149\000\000\017\149\017\149\017\149\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\149\000\000\000\000\000\000\000\000\000\000\000\000\017\149\017\149\005*\000\000\000\000\017\149\000\000\000\000\000\000\000\000\000\000\017\149\000\000\000\000\017\149\000\000\000\000\000\000\000\000\000\000\017\149\017\149\017\149\000\000\000\000\000\000\000\000\000\000\000\000\017\149\000\000\017\149\017\149\000\000\000\000\000\000\000\000\000\000\017\149\000\000\000\000\017\149\000\000\000\000\000\000\000\000\000\000\017\149\000\000\000\000\000\000\017\149\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\149\000\000\017\149\017\149\000\000\017\149\017\149\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\149\000\000\017\149\000\000\017\149\017\149\017\153\000\000\017\149\000\000\017\153\000\000\000\000\017\149\017\153\000\000\017\149\004F\000\000\017\149\000\000\017\149\017\149\000\000\000\000\017\153\017\153\017\153\000\000\017\153\017\153\017\153\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\153\000\000\000\000\000\000\000\000\000\000\000\000\017\153\017\153\005F\000\000\000\000\017\153\000\000\000\000\000\000\000\000\000\000\017\153\000\000\000\000\017\153\000\000\000\000\000\000\000\000\000\000\017\153\017\153\017\153\000\000\000\000\000\000\000\000\000\000\000\000\017\153\000\000\017\153\017\153\000\000\000\000\000\000\000\000\000\000\017\153\000\000\000\000\017\153\000\000\000\000\000\000\000\000\000\000\017\153\000\000\000\000\000\000\017\153\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\153\000\000\017\153\017\153\000\000\017\153\017\153\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\153\000\000\017\153\000\000\017\153\017\153\017\157\000\000\017\153\000\000\017\157\000\000\000\000\017\153\017\157\000\000\017\153\017\153\000\000\017\153\000\000\017\153\017\153\000\000\000\000\017\157\017\157\017\157\000\000\017\157\017\157\017\157\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\157\000\000\000\000\000\000\000\000\000\000\000\000\017\157\017\157\004>\000\000\000\000\017\157\000\000\000\000\000\000\000\000\000\000\017\157\000\000\000\000\017\157\000\000\000\000\000\000\000\000\000\000\017\157\017\157\017\157\000\000\000\000\000\000\000\000\000\000\000\000\017\157\000\000\017\157\017\157\000\000\000\000\000\000\000\000\000\000\017\157\000\000\000\000\017\157\000\000\000\000\000\000\000\000\000\000\017\157\000\000\000\000\000\000\017\157\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\157\000\000\017\157\017\157\000\000\017\157\017\157\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\157\000\000\017\157\000\000\017\157\017\157\017\161\000\000\017\157\000\000\017\161\000\000\000\000\017\157\017\161\000\000\017\157\004F\000\000\017\157\000\000\017\157\017\157\000\000\000\000\017\161\017\161\017\161\000\000\017\161\017\161\017\161\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\161\000\000\000\000\000\000\000\000\000\000\000\000\017\161\017\161\004Z\000\000\000\000\017\161\000\000\000\000\000\000\000\000\000\000\017\161\000\000\000\000\017\161\000\000\000\000\000\000\000\000\000\000\017\161\017\161\017\161\000\000\000\000\000\000\000\000\000\000\000\000\017\161\000\000\017\161\017\161\000\000\000\000\000\000\000\000\000\000\017\161\000\000\000\000\017\161\000\000\000\000\000\000\000\000\000\000\017\161\000\000\000\000\000\000\017\161\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\161\000\000\017\161\017\161\000\000\017\161\017\161\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\161\000\000\017\161\000\000\017\161\017\161\017\165\000\000\017\161\000\000\017\165\000\000\000\000\017\161\017\165\000\000\017\161\017\161\000\000\017\161\000\000\017\161\017\161\000\000\000\000\017\165\017\165\017\165\000\000\017\165\017\165\017\165\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\165\000\000\000\000\000\000\000\000\000\000\000\000\017\165\017\165\005*\000\000\000\000\017\165\000\000\000\000\000\000\000\000\000\000\017\165\000\000\000\000\017\165\000\000\000\000\000\000\000\000\000\000\017\165\017\165\017\165\000\000\000\000\000\000\000\000\000\000\000\000\017\165\000\000\017\165\017\165\000\000\000\000\000\000\000\000\000\000\017\165\000\000\000\000\017\165\000\000\000\000\000\000\000\000\000\000\017\165\000\000\000\000\000\000\017\165\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\165\000\000\017\165\017\165\000\000\017\165\017\165\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\165\000\000\017\165\000\000\017\165\017\165\017\169\000\000\017\165\000\000\017\169\000\000\000\000\017\165\017\169\000\000\017\165\004F\000\000\017\165\000\000\017\165\017\165\000\000\000\000\017\169\017\169\017\169\000\000\017\169\017\169\017\169\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\169\000\000\000\000\000\000\000\000\000\000\000\000\017\169\017\169\005F\000\000\000\000\017\169\000\000\000\000\000\000\000\000\000\000\017\169\000\000\000\000\017\169\000\000\000\000\000\000\000\000\000\000\017\169\017\169\017\169\000\000\000\000\000\000\000\000\000\000\000\000\017\169\000\000\017\169\017\169\000\000\000\000\000\000\000\000\000\000\017\169\000\000\000\000\017\169\000\000\000\000\000\000\000\000\000\000\017\169\000\000\000\000\000\000\017\169\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\169\000\000\017\169\017\169\000\000\017\169\017\169\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\169\000\000\017\169\000\000\017\169\017\169\018e\000\000\017\169\000\000\018e\000\000\000\000\017\169\018e\000\000\017\169\017\169\000\000\017\169\000\000\017\169\017\169\000\000\000\000\018e\018e\018e\000\000\018e\018e\018e\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018e\000\000\000\000\000\000\000\000\000\000\000\000\018e\018e\005*\000\000\000\000\018e\000\000\000\000\000\000\000\000\000\000\018e\000\000\000\000\018e\000\000\000\000\000\000\000\000\000\000\018e\018e\018e\000\000\000\000\000\000\000\000\000\000\000\000\018e\000\000\018e\018e\000\000\000\000\000\000\000\000\000\000\018e\000\000\000\000\018e\000\000\000\000\000\000\000\000\000\000\018e\000\000\000\000\000\000\018e\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018e\000\000\018e\018e\000\000\018e\018e\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018e\000\000\018e\000\000\018e\018e\018i\000\000\018e\000\000\018i\000\000\000\000\018e\018i\000\000\018e\004F\000\000\018e\000\000\018e\018e\000\000\000\000\018i\018i\018i\000\000\018i\018i\018i\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018i\000\000\000\000\000\000\000\000\000\000\000\000\018i\018i\005F\000\000\000\000\018i\000\000\000\000\000\000\000\000\000\000\018i\000\000\000\000\018i\000\000\000\000\000\000\000\000\000\000\018i\018i\018i\000\000\000\000\000\000\000\000\000\000\000\000\018i\000\000\018i\018i\000\000\000\000\000\000\000\000\000\000\018i\000\000\000\000\018i\000\000\000\000\000\000\000\000\000\000\018i\000\000\000\000\000\000\018i\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018i\000\000\018i\018i\000\000\018i\018i\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018i\000\000\018i\000\000\018i\018i\018U\000\000\018i\000\000\018U\000\000\000\000\018i\018U\000\000\018i\018i\000\000\018i\000\000\018i\018i\000\000\000\000\018U\018U\018U\000\000\018U\018U\018U\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018U\000\000\000\000\000\000\000\000\000\000\000\000\018U\018U\005*\000\000\000\000\018U\000\000\000\000\000\000\000\000\000\000\018U\000\000\000\000\018U\000\000\000\000\000\000\000\000\000\000\018U\018U\018U\000\000\000\000\000\000\000\000\000\000\000\000\018U\000\000\018U\018U\000\000\000\000\000\000\000\000\000\000\018U\000\000\000\000\018U\000\000\000\000\000\000\000\000\000\000\018U\000\000\000\000\000\000\018U\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018U\000\000\018U\018U\000\000\018U\018U\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018U\000\000\018U\000\000\018U\018U\018Y\000\000\018U\000\000\018Y\000\000\000\000\018U\018Y\000\000\018U\004F\000\000\018U\000\000\018U\018U\000\000\000\000\018Y\018Y\018Y\000\000\018Y\018Y\018Y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018Y\000\000\000\000\000\000\000\000\000\000\000\000\018Y\018Y\005F\000\000\000\000\018Y\000\000\000\000\000\000\000\000\000\000\018Y\000\000\000\000\018Y\000\000\000\000\000\000\000\000\000\000\018Y\018Y\018Y\000\000\000\000\000\000\000\000\000\000\000\000\018Y\000\000\018Y\018Y\000\000\000\000\000\000\000\000\000\000\018Y\000\000\000\000\018Y\000\000\000\000\000\000\000\000\000\000\018Y\000\000\000\000\000\000\018Y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018Y\000\000\018Y\018Y\000\000\018Y\018Y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018Y\000\000\018Y\000\000\018Y\018Y\018-\000\000\018Y\000\000\018-\000\000\000\000\018Y\018-\000\000\018Y\018Y\000\000\018Y\000\000\018Y\018Y\000\000\000\000\018-\018-\018-\000\000\018-\018-\018-\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018-\000\000\000\000\000\000\000\000\000\000\000\000\018-\018-\004>\000\000\000\000\018-\000\000\000\000\000\000\000\000\000\000\018-\000\000\000\000\018-\000\000\000\000\000\000\000\000\000\000\018-\018-\018-\000\000\000\000\000\000\000\000\000\000\000\000\018-\000\000\018-\018-\000\000\000\000\000\000\000\000\000\000\018-\000\000\000\000\018-\000\000\000\000\000\000\000\000\000\000\018-\000\000\000\000\000\000\018-\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018-\000\000\018-\018-\000\000\018-\018-\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018-\000\000\018-\000\000\018-\018-\0181\000\000\018-\000\000\0181\000\000\000\000\018-\0181\000\000\018-\004F\000\000\018-\000\000\018-\018-\000\000\000\000\0181\0181\0181\000\000\0181\0181\0181\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0181\000\000\000\000\000\000\000\000\000\000\000\000\0181\0181\004Z\000\000\000\000\0181\000\000\000\000\000\000\000\000\000\000\0181\000\000\000\000\0181\000\000\000\000\000\000\000\000\000\000\0181\0181\0181\000\000\000\000\000\000\000\000\000\000\000\000\0181\000\000\0181\0181\000\000\000\000\000\000\000\000\000\000\0181\000\000\000\000\0181\000\000\000\000\000\000\000\000\000\000\0181\000\000\000\000\000\000\0181\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0181\000\000\0181\0181\000\000\0181\0181\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0181\000\000\0181\000\000\0181\0181\0185\000\000\0181\000\000\0185\000\000\000\000\0181\0185\000\000\0181\0181\000\000\0181\000\000\0181\0181\000\000\000\000\0185\0185\0185\000\000\0185\0185\0185\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0185\000\000\000\000\000\000\000\000\000\000\000\000\0185\0185\005*\000\000\000\000\0185\000\000\000\000\000\000\000\000\000\000\0185\000\000\000\000\0185\000\000\000\000\000\000\000\000\000\000\0185\0185\0185\000\000\000\000\000\000\000\000\000\000\000\000\0185\000\000\0185\0185\000\000\000\000\000\000\000\000\000\000\0185\000\000\000\000\0185\000\000\000\000\000\000\000\000\000\000\0185\000\000\000\000\000\000\0185\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0185\000\000\0185\0185\000\000\0185\0185\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0185\000\000\0185\000\000\0185\0185\0189\000\000\0185\000\000\0189\000\000\000\000\0185\0189\000\000\0185\004F\000\000\0185\000\000\0185\0185\000\000\000\000\0189\0189\0189\000\000\0189\0189\0189\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0189\000\000\000\000\000\000\000\000\000\000\000\000\0189\0189\005F\000\000\000\000\0189\000\000\000\000\000\000\000\000\000\000\0189\000\000\000\000\0189\000\000\000\000\000\000\000\000\000\000\0189\0189\0189\000\000\000\000\000\000\000\000\000\000\000\000\0189\000\000\0189\0189\000\000\000\000\000\000\000\000\000\000\0189\000\000\000\000\0189\000\000\000\000\000\000\000\000\000\000\0189\000\000\000\000\000\000\0189\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0189\000\000\0189\0189\000\000\0189\0189\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0189\000\000\0189\000\000\0189\0189\018=\000\000\0189\000\000\018=\000\000\000\000\0189\018=\000\000\0189\0189\000\000\0189\000\000\0189\0189\000\000\000\000\018=\018=\018=\000\000\018=\018=\018=\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018=\000\000\000\000\000\000\000\000\000\000\000\000\018=\018=\004>\000\000\000\000\018=\000\000\000\000\000\000\000\000\000\000\018=\000\000\000\000\018=\000\000\000\000\000\000\000\000\000\000\018=\018=\018=\000\000\000\000\000\000\000\000\000\000\000\000\018=\000\000\018=\018=\000\000\000\000\000\000\000\000\000\000\018=\000\000\000\000\018=\000\000\000\000\000\000\000\000\000\000\018=\000\000\000\000\000\000\018=\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018=\000\000\018=\018=\000\000\018=\018=\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018=\000\000\018=\000\000\018=\018=\018A\000\000\018=\000\000\018A\000\000\000\000\018=\018A\000\000\018=\004F\000\000\018=\000\000\018=\018=\000\000\000\000\018A\018A\018A\000\000\018A\018A\018A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018A\000\000\000\000\000\000\000\000\000\000\000\000\018A\018A\004Z\000\000\000\000\018A\000\000\000\000\000\000\000\000\000\000\018A\000\000\000\000\018A\000\000\000\000\000\000\000\000\000\000\018A\018A\018A\000\000\000\000\000\000\000\000\000\000\000\000\018A\000\000\018A\018A\000\000\000\000\000\000\000\000\000\000\018A\000\000\000\000\018A\000\000\000\000\000\000\000\000\000\000\018A\000\000\000\000\000\000\018A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018A\000\000\018A\018A\000\000\018A\018A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018A\000\000\018A\000\000\018A\018A\018E\000\000\018A\000\000\018E\000\000\000\000\018A\018E\000\000\018A\018A\000\000\018A\000\000\018A\018A\000\000\000\000\018E\018E\018E\000\000\018E\018E\018E\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018E\000\000\000\000\000\000\000\000\000\000\000\000\018E\018E\005*\000\000\000\000\018E\000\000\000\000\000\000\000\000\000\000\018E\000\000\000\000\018E\000\000\000\000\000\000\000\000\000\000\018E\018E\018E\000\000\000\000\000\000\000\000\000\000\000\000\018E\000\000\018E\018E\000\000\000\000\000\000\000\000\000\000\018E\000\000\000\000\018E\000\000\000\000\000\000\000\000\000\000\018E\000\000\000\000\000\000\018E\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018E\000\000\018E\018E\000\000\018E\018E\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018E\000\000\018E\000\000\018E\018E\018I\000\000\018E\000\000\018I\000\000\000\000\018E\018I\000\000\018E\004F\000\000\018E\000\000\018E\018E\000\000\000\000\018I\018I\018I\000\000\018I\018I\018I\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018I\000\000\000\000\000\000\000\000\000\000\000\000\018I\018I\005F\000\000\000\000\018I\000\000\000\000\000\000\000\000\000\000\018I\000\000\000\000\018I\000\000\000\000\000\000\000\000\000\000\018I\018I\018I\000\000\000\000\000\000\000\000\000\000\000\000\018I\000\000\018I\018I\000\000\000\000\000\000\000\000\000\000\018I\000\000\000\000\018I\000\000\000\000\000\000\000\000\000\000\018I\000\000\000\000\000\000\018I\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018I\000\000\018I\018I\000\000\018I\018I\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018I\000\000\018I\000\000\018I\018I\017\173\000\000\018I\000\000\017\173\000\000\000\000\018I\017\173\000\000\018I\018I\000\000\018I\000\000\018I\018I\000\000\000\000\017\173\017\173\017\173\000\000\017\173\017\173\017\173\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\173\000\000\000\000\000\000\000\000\000\000\000\000\017\173\017\173\004>\000\000\000\000\017\173\000\000\000\000\000\000\000\000\000\000\017\173\000\000\000\000\017\173\000\000\000\000\000\000\000\000\000\000\017\173\017\173\017\173\000\000\000\000\000\000\000\000\000\000\000\000\017\173\000\000\017\173\017\173\000\000\000\000\000\000\000\000\000\000\017\173\000\000\000\000\017\173\000\000\000\000\000\000\000\000\000\000\017\173\000\000\000\000\000\000\017\173\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\173\000\000\017\173\017\173\000\000\017\173\017\173\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\173\000\000\017\173\000\000\017\173\017\173\017\177\000\000\017\173\000\000\017\177\000\000\000\000\017\173\017\177\000\000\017\173\004F\000\000\017\173\000\000\017\173\017\173\000\000\000\000\017\177\017\177\017\177\000\000\017\177\017\177\017\177\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\177\000\000\000\000\000\000\000\000\000\000\000\000\017\177\017\177\004Z\000\000\000\000\017\177\000\000\000\000\000\000\000\000\000\000\017\177\000\000\000\000\017\177\000\000\000\000\000\000\000\000\000\000\017\177\017\177\017\177\000\000\000\000\000\000\000\000\000\000\000\000\017\177\000\000\017\177\017\177\000\000\000\000\000\000\000\000\000\000\017\177\000\000\000\000\017\177\000\000\000\000\000\000\000\000\000\000\017\177\000\000\000\000\000\000\017\177\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\177\000\000\017\177\017\177\000\000\017\177\017\177\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\177\000\000\017\177\000\000\017\177\017\177\017\181\000\000\017\177\000\000\017\181\000\000\000\000\017\177\017\181\000\000\017\177\017\177\000\000\017\177\000\000\017\177\017\177\000\000\000\000\017\181\017\181\017\181\000\000\017\181\017\181\017\181\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\181\000\000\000\000\000\000\000\000\000\000\000\000\017\181\017\181\005*\000\000\000\000\017\181\000\000\000\000\000\000\000\000\000\000\017\181\000\000\000\000\017\181\000\000\000\000\000\000\000\000\000\000\017\181\017\181\017\181\000\000\000\000\000\000\000\000\000\000\000\000\017\181\000\000\017\181\017\181\000\000\000\000\000\000\000\000\000\000\017\181\000\000\000\000\017\181\000\000\000\000\000\000\000\000\000\000\017\181\000\000\000\000\000\000\017\181\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\181\000\000\017\181\017\181\000\000\017\181\017\181\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\181\000\000\017\181\000\000\017\181\017\181\017\185\000\000\017\181\000\000\017\185\000\000\000\000\017\181\017\185\000\000\017\181\004F\000\000\017\181\000\000\017\181\017\181\000\000\000\000\017\185\017\185\017\185\000\000\017\185\017\185\017\185\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\185\000\000\000\000\000\000\000\000\000\000\000\000\017\185\017\185\005F\000\000\000\000\017\185\000\000\000\000\000\000\000\000\000\000\017\185\000\000\000\000\017\185\000\000\000\000\000\000\000\000\000\000\017\185\017\185\017\185\000\000\000\000\000\000\000\000\000\000\000\000\017\185\000\000\017\185\017\185\000\000\000\000\000\000\000\000\000\000\017\185\000\000\000\000\017\185\000\000\000\000\000\000\000\000\000\000\017\185\000\000\000\000\000\000\017\185\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\185\000\000\017\185\017\185\000\000\017\185\017\185\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\185\000\000\017\185\000\000\017\185\017\185\017\189\000\000\017\185\000\000\017\189\000\000\000\000\017\185\017\189\000\000\017\185\017\185\000\000\017\185\000\000\017\185\017\185\000\000\000\000\017\189\017\189\017\189\000\000\017\189\017\189\017\189\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\189\000\000\000\000\000\000\000\000\000\000\000\000\017\189\017\189\004>\000\000\000\000\017\189\000\000\000\000\000\000\000\000\000\000\017\189\000\000\000\000\017\189\000\000\000\000\000\000\000\000\000\000\017\189\017\189\017\189\000\000\000\000\000\000\000\000\000\000\000\000\017\189\000\000\017\189\017\189\000\000\000\000\000\000\000\000\000\000\017\189\000\000\000\000\017\189\000\000\000\000\000\000\000\000\000\000\017\189\000\000\000\000\000\000\017\189\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\189\000\000\017\189\017\189\000\000\017\189\017\189\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\189\000\000\017\189\000\000\017\189\017\189\017\193\000\000\017\189\000\000\017\193\000\000\000\000\017\189\017\193\000\000\017\189\004F\000\000\017\189\000\000\017\189\017\189\000\000\000\000\017\193\017\193\017\193\000\000\017\193\017\193\017\193\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\193\000\000\000\000\000\000\000\000\000\000\000\000\017\193\017\193\004Z\000\000\000\000\017\193\000\000\000\000\000\000\000\000\000\000\017\193\000\000\000\000\017\193\000\000\000\000\000\000\000\000\000\000\017\193\017\193\017\193\000\000\000\000\000\000\000\000\000\000\000\000\017\193\000\000\017\193\017\193\000\000\000\000\000\000\000\000\000\000\017\193\000\000\000\000\017\193\000\000\000\000\000\000\000\000\000\000\017\193\000\000\000\000\000\000\017\193\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\193\000\000\017\193\017\193\000\000\017\193\017\193\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\193\000\000\017\193\000\000\017\193\017\193\017\197\000\000\017\193\000\000\017\197\000\000\000\000\017\193\017\197\000\000\017\193\017\193\000\000\017\193\000\000\017\193\017\193\000\000\000\000\017\197\017\197\017\197\000\000\017\197\017\197\017\197\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\197\000\000\000\000\000\000\000\000\000\000\000\000\017\197\017\197\005*\000\000\000\000\017\197\000\000\000\000\000\000\000\000\000\000\017\197\000\000\000\000\017\197\000\000\000\000\000\000\000\000\000\000\017\197\017\197\017\197\000\000\000\000\000\000\000\000\000\000\000\000\017\197\000\000\017\197\017\197\000\000\000\000\000\000\000\000\000\000\017\197\000\000\000\000\017\197\000\000\000\000\000\000\000\000\000\000\017\197\000\000\000\000\000\000\017\197\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\197\000\000\017\197\017\197\000\000\017\197\017\197\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\197\000\000\017\197\000\000\017\197\017\197\017\201\000\000\017\197\000\000\017\201\000\000\000\000\017\197\017\201\000\000\017\197\004F\000\000\017\197\000\000\017\197\017\197\000\000\000\000\017\201\017\201\017\201\000\000\017\201\017\201\017\201\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\201\000\000\000\000\000\000\000\000\000\000\000\000\017\201\017\201\005F\000\000\000\000\017\201\000\000\000\000\000\000\000\000\000\000\017\201\000\000\000\000\017\201\000\000\000\000\000\000\000\000\000\000\017\201\017\201\017\201\000\000\000\000\000\000\000\000\000\000\000\000\017\201\000\000\017\201\017\201\000\000\000\000\000\000\000\000\000\000\017\201\000\000\000\000\017\201\000\000\000\000\000\000\000\000\000\000\017\201\000\000\000\000\000\000\017\201\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\201\000\000\017\201\017\201\000\000\017\201\017\201\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\201\000\000\017\201\000\000\017\201\017\201\017\205\000\000\017\201\000\000\017\205\000\000\000\000\017\201\017\205\000\000\017\201\017\201\000\000\017\201\000\000\017\201\017\201\000\000\000\000\017\205\017\205\017\205\000\000\017\205\017\205\017\205\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\205\000\000\000\000\000\000\000\000\000\000\000\000\017\205\017\205\004>\000\000\000\000\017\205\000\000\000\000\000\000\000\000\000\000\017\205\000\000\000\000\017\205\000\000\000\000\000\000\000\000\000\000\017\205\017\205\017\205\000\000\000\000\000\000\000\000\000\000\000\000\017\205\000\000\017\205\017\205\000\000\000\000\000\000\000\000\000\000\017\205\000\000\000\000\017\205\000\000\000\000\000\000\000\000\000\000\017\205\000\000\000\000\000\000\017\205\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\205\000\000\017\205\017\205\000\000\017\205\017\205\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\205\000\000\017\205\000\000\017\205\017\205\017\209\000\000\017\205\000\000\017\209\000\000\000\000\017\205\017\209\000\000\017\205\004F\000\000\017\205\000\000\017\205\017\205\000\000\000\000\017\209\017\209\017\209\000\000\017\209\017\209\017\209\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\209\000\000\000\000\000\000\000\000\000\000\000\000\017\209\017\209\004Z\000\000\000\000\017\209\000\000\000\000\000\000\000\000\000\000\017\209\000\000\000\000\017\209\000\000\000\000\000\000\000\000\000\000\017\209\017\209\017\209\000\000\000\000\000\000\000\000\000\000\000\000\017\209\000\000\017\209\017\209\000\000\000\000\000\000\000\000\000\000\017\209\000\000\000\000\017\209\000\000\000\000\000\000\000\000\000\000\017\209\000\000\000\000\000\000\017\209\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\209\000\000\017\209\017\209\000\000\017\209\017\209\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\209\000\000\017\209\000\000\017\209\017\209\017\213\000\000\017\209\000\000\017\213\000\000\000\000\017\209\017\213\000\000\017\209\017\209\000\000\017\209\000\000\017\209\017\209\000\000\000\000\017\213\017\213\017\213\000\000\017\213\017\213\017\213\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\213\000\000\000\000\000\000\000\000\000\000\000\000\017\213\017\213\005*\000\000\000\000\017\213\000\000\000\000\000\000\000\000\000\000\017\213\000\000\000\000\017\213\000\000\000\000\000\000\000\000\000\000\017\213\017\213\017\213\000\000\000\000\000\000\000\000\000\000\000\000\017\213\000\000\017\213\017\213\000\000\000\000\000\000\000\000\000\000\017\213\000\000\000\000\017\213\000\000\000\000\000\000\000\000\000\000\017\213\000\000\000\000\000\000\017\213\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\213\000\000\017\213\017\213\000\000\017\213\017\213\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\213\000\000\017\213\000\000\017\213\017\213\017\217\000\000\017\213\000\000\017\217\000\000\000\000\017\213\017\217\000\000\017\213\004F\000\000\017\213\000\000\017\213\017\213\000\000\000\000\017\217\017\217\017\217\000\000\017\217\017\217\017\217\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\217\000\000\000\000\000\000\000\000\000\000\000\000\017\217\017\217\005F\000\000\000\000\017\217\000\000\000\000\000\000\000\000\000\000\017\217\000\000\000\000\017\217\000\000\000\000\000\000\000\000\000\000\017\217\017\217\017\217\000\000\000\000\000\000\000\000\000\000\000\000\017\217\000\000\017\217\017\217\000\000\000\000\000\000\000\000\000\000\017\217\000\000\000\000\017\217\000\000\000\000\000\000\000\000\000\000\017\217\000\000\000\000\000\000\017\217\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\217\000\000\017\217\017\217\000\000\017\217\017\217\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\217\000\000\017\217\000\000\017\217\017\217\017\221\000\000\017\217\000\000\017\221\000\000\000\000\017\217\017\221\000\000\017\217\017\217\000\000\017\217\000\000\017\217\017\217\000\000\000\000\017\221\017\221\017\221\000\000\017\221\017\221\017\221\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\221\000\000\000\000\000\000\000\000\000\000\000\000\017\221\017\221\004>\000\000\000\000\017\221\000\000\000\000\000\000\000\000\000\000\017\221\000\000\000\000\017\221\000\000\000\000\000\000\000\000\000\000\017\221\017\221\017\221\000\000\000\000\000\000\000\000\000\000\000\000\017\221\000\000\017\221\017\221\000\000\000\000\000\000\000\000\000\000\017\221\000\000\000\000\017\221\000\000\000\000\000\000\000\000\000\000\017\221\000\000\000\000\000\000\017\221\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\221\000\000\017\221\017\221\000\000\017\221\017\221\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\221\000\000\017\221\000\000\017\221\017\221\017\225\000\000\017\221\000\000\017\225\000\000\000\000\017\221\017\225\000\000\017\221\004F\000\000\017\221\000\000\017\221\017\221\000\000\000\000\017\225\017\225\017\225\000\000\017\225\017\225\017\225\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\225\000\000\000\000\000\000\000\000\000\000\000\000\017\225\017\225\004Z\000\000\000\000\017\225\000\000\000\000\000\000\000\000\000\000\017\225\000\000\000\000\017\225\000\000\000\000\000\000\000\000\000\000\017\225\017\225\017\225\000\000\000\000\000\000\000\000\000\000\000\000\017\225\000\000\017\225\017\225\000\000\000\000\000\000\000\000\000\000\017\225\000\000\000\000\017\225\000\000\000\000\000\000\000\000\000\000\017\225\000\000\000\000\000\000\017\225\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\225\000\000\017\225\017\225\000\000\017\225\017\225\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\225\000\000\017\225\000\000\017\225\017\225\017\229\000\000\017\225\000\000\017\229\000\000\000\000\017\225\017\229\000\000\017\225\017\225\000\000\017\225\000\000\017\225\017\225\000\000\000\000\017\229\017\229\017\229\000\000\017\229\017\229\017\229\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\229\000\000\000\000\000\000\000\000\000\000\000\000\017\229\017\229\005*\000\000\000\000\017\229\000\000\000\000\000\000\000\000\000\000\017\229\000\000\000\000\017\229\000\000\000\000\000\000\000\000\000\000\017\229\017\229\017\229\000\000\000\000\000\000\000\000\000\000\000\000\017\229\000\000\017\229\017\229\000\000\000\000\000\000\000\000\000\000\017\229\000\000\000\000\017\229\000\000\000\000\000\000\000\000\000\000\017\229\000\000\000\000\000\000\017\229\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\229\000\000\017\229\017\229\000\000\017\229\017\229\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\229\000\000\017\229\000\000\017\229\017\229\017\233\000\000\017\229\000\000\017\233\000\000\000\000\017\229\017\233\000\000\017\229\004F\000\000\017\229\000\000\017\229\017\229\000\000\000\000\017\233\017\233\017\233\000\000\017\233\017\233\017\233\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\233\000\000\000\000\000\000\000\000\000\000\000\000\017\233\017\233\005F\000\000\000\000\017\233\000\000\000\000\000\000\000\000\000\000\017\233\000\000\000\000\017\233\000\000\000\000\000\000\000\000\000\000\017\233\017\233\017\233\000\000\000\000\000\000\000\000\000\000\000\000\017\233\000\000\017\233\017\233\000\000\000\000\000\000\000\000\000\000\017\233\000\000\000\000\017\233\000\000\000\000\000\000\000\000\000\000\017\233\000\000\000\000\000\000\017\233\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\233\000\000\017\233\017\233\000\000\017\233\017\233\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\233\000\000\017\233\000\000\017\233\017\233\017\237\000\000\017\233\000\000\017\237\000\000\000\000\017\233\017\237\000\000\017\233\017\233\000\000\017\233\000\000\017\233\017\233\000\000\000\000\017\237\017\237\017\237\000\000\017\237\017\237\017\237\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\237\000\000\000\000\000\000\000\000\000\000\000\000\017\237\017\237\004>\000\000\000\000\017\237\000\000\000\000\000\000\000\000\000\000\017\237\000\000\000\000\017\237\000\000\000\000\000\000\000\000\000\000\017\237\017\237\017\237\000\000\000\000\000\000\000\000\000\000\000\000\017\237\000\000\017\237\017\237\000\000\000\000\000\000\000\000\000\000\017\237\000\000\000\000\017\237\000\000\000\000\000\000\000\000\000\000\017\237\000\000\000\000\000\000\017\237\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\237\000\000\017\237\017\237\000\000\017\237\017\237\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\237\000\000\017\237\000\000\017\237\017\237\017\241\000\000\017\237\000\000\017\241\000\000\000\000\017\237\017\241\000\000\017\237\004F\000\000\017\237\000\000\017\237\017\237\000\000\000\000\017\241\017\241\017\241\000\000\017\241\017\241\017\241\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\241\000\000\000\000\000\000\000\000\000\000\000\000\017\241\017\241\004Z\000\000\000\000\017\241\000\000\000\000\000\000\000\000\000\000\017\241\000\000\000\000\017\241\000\000\000\000\000\000\000\000\000\000\017\241\017\241\017\241\000\000\000\000\000\000\000\000\000\000\000\000\017\241\000\000\017\241\017\241\000\000\000\000\000\000\000\000\000\000\017\241\000\000\000\000\017\241\000\000\000\000\000\000\000\000\000\000\017\241\000\000\000\000\000\000\017\241\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\241\000\000\017\241\017\241\000\000\017\241\017\241\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\241\000\000\017\241\000\000\017\241\017\241\017\245\000\000\017\241\000\000\017\245\000\000\000\000\017\241\017\245\000\000\017\241\017\241\000\000\017\241\000\000\017\241\017\241\000\000\000\000\017\245\017\245\017\245\000\000\017\245\017\245\017\245\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\245\000\000\000\000\000\000\000\000\000\000\000\000\017\245\017\245\005*\000\000\000\000\017\245\000\000\000\000\000\000\000\000\000\000\017\245\000\000\000\000\017\245\000\000\000\000\000\000\000\000\000\000\017\245\017\245\017\245\000\000\000\000\000\000\000\000\000\000\000\000\017\245\000\000\017\245\017\245\000\000\000\000\000\000\000\000\000\000\017\245\000\000\000\000\017\245\000\000\000\000\000\000\000\000\000\000\017\245\000\000\000\000\000\000\017\245\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\245\000\000\017\245\017\245\000\000\017\245\017\245\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\245\000\000\017\245\000\000\017\245\017\245\017\249\000\000\017\245\000\000\017\249\000\000\000\000\017\245\017\249\000\000\017\245\004F\000\000\017\245\000\000\017\245\017\245\000\000\000\000\017\249\017\249\017\249\000\000\017\249\017\249\017\249\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\249\000\000\000\000\000\000\000\000\000\000\000\000\017\249\017\249\005F\000\000\000\000\017\249\000\000\000\000\000\000\000\000\000\000\017\249\000\000\000\000\017\249\000\000\000\000\000\000\000\000\000\000\017\249\017\249\017\249\000\000\000\000\000\000\000\000\000\000\000\000\017\249\000\000\017\249\017\249\000\000\000\000\000\000\000\000\000\000\017\249\000\000\000\000\017\249\000\000\000\000\000\000\000\000\000\000\017\249\000\000\000\000\000\000\017\249\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\249\000\000\017\249\017\249\000\000\017\249\017\249\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\249\000\000\017\249\000\000\017\249\017\249\017\253\000\000\017\249\000\000\017\253\000\000\000\000\017\249\017\253\000\000\017\249\017\249\000\000\017\249\000\000\017\249\017\249\000\000\000\000\017\253\017\253\017\253\000\000\017\253\017\253\017\253\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\253\000\000\000\000\000\000\000\000\000\000\000\000\017\253\017\253\004>\000\000\000\000\017\253\000\000\000\000\000\000\000\000\000\000\017\253\000\000\000\000\017\253\000\000\000\000\000\000\000\000\000\000\017\253\017\253\017\253\000\000\000\000\000\000\000\000\000\000\000\000\017\253\000\000\017\253\017\253\000\000\000\000\000\000\000\000\000\000\017\253\000\000\000\000\017\253\000\000\000\000\000\000\000\000\000\000\017\253\000\000\000\000\000\000\017\253\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\253\000\000\017\253\017\253\000\000\017\253\017\253\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\253\000\000\017\253\000\000\017\253\017\253\018\001\000\000\017\253\000\000\018\001\000\000\000\000\017\253\018\001\000\000\017\253\004F\000\000\017\253\000\000\017\253\017\253\000\000\000\000\018\001\018\001\018\001\000\000\018\001\018\001\018\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\001\000\000\000\000\000\000\000\000\000\000\000\000\018\001\018\001\004Z\000\000\000\000\018\001\000\000\000\000\000\000\000\000\000\000\018\001\000\000\000\000\018\001\000\000\000\000\000\000\000\000\000\000\018\001\018\001\018\001\000\000\000\000\000\000\000\000\000\000\000\000\018\001\000\000\018\001\018\001\000\000\000\000\000\000\000\000\000\000\018\001\000\000\000\000\018\001\000\000\000\000\000\000\000\000\000\000\018\001\000\000\000\000\000\000\018\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\001\000\000\018\001\018\001\000\000\018\001\018\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\001\000\000\018\001\000\000\018\001\018\001\018\005\000\000\018\001\000\000\018\005\000\000\000\000\018\001\018\005\000\000\018\001\018\001\000\000\018\001\000\000\018\001\018\001\000\000\000\000\018\005\018\005\018\005\000\000\018\005\018\005\018\005\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\005\000\000\000\000\000\000\000\000\000\000\000\000\018\005\018\005\005*\000\000\000\000\018\005\000\000\000\000\000\000\000\000\000\000\018\005\000\000\000\000\018\005\000\000\000\000\000\000\000\000\000\000\018\005\018\005\018\005\000\000\000\000\000\000\000\000\000\000\000\000\018\005\000\000\018\005\018\005\000\000\000\000\000\000\000\000\000\000\018\005\000\000\000\000\018\005\000\000\000\000\000\000\000\000\000\000\018\005\000\000\000\000\000\000\018\005\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\005\000\000\018\005\018\005\000\000\018\005\018\005\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\005\000\000\018\005\000\000\018\005\018\005\018\t\000\000\018\005\000\000\018\t\000\000\000\000\018\005\018\t\000\000\018\005\004F\000\000\018\005\000\000\018\005\018\005\000\000\000\000\018\t\018\t\018\t\000\000\018\t\018\t\018\t\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\t\000\000\000\000\000\000\000\000\000\000\000\000\018\t\018\t\005F\000\000\000\000\018\t\000\000\000\000\000\000\000\000\000\000\018\t\000\000\000\000\018\t\000\000\000\000\000\000\000\000\000\000\018\t\018\t\018\t\000\000\000\000\000\000\000\000\000\000\000\000\018\t\000\000\018\t\018\t\000\000\000\000\000\000\000\000\000\000\018\t\000\000\000\000\018\t\000\000\000\000\000\000\000\000\000\000\018\t\000\000\000\000\000\000\018\t\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\t\000\000\018\t\018\t\000\000\018\t\018\t\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\t\000\000\018\t\000\000\018\t\018\t\018\r\000\000\018\t\000\000\018\r\000\000\000\000\018\t\018\r\000\000\018\t\018\t\000\000\018\t\000\000\018\t\018\t\000\000\000\000\018\r\018\r\018\r\000\000\018\r\018\r\018\r\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\r\000\000\000\000\000\000\000\000\000\000\000\000\018\r\018\r\004>\000\000\000\000\018\r\000\000\000\000\000\000\000\000\000\000\018\r\000\000\000\000\018\r\000\000\000\000\000\000\000\000\000\000\018\r\018\r\018\r\000\000\000\000\000\000\000\000\000\000\000\000\018\r\000\000\018\r\018\r\000\000\000\000\000\000\000\000\000\000\018\r\000\000\000\000\018\r\000\000\000\000\000\000\000\000\000\000\018\r\000\000\000\000\000\000\018\r\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\r\000\000\018\r\018\r\000\000\018\r\018\r\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\r\000\000\018\r\000\000\018\r\018\r\018\017\000\000\018\r\000\000\018\017\000\000\000\000\018\r\018\017\000\000\018\r\004F\000\000\018\r\000\000\018\r\018\r\000\000\000\000\018\017\018\017\018\017\000\000\018\017\018\017\018\017\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\017\000\000\000\000\000\000\000\000\000\000\000\000\018\017\018\017\004Z\000\000\000\000\018\017\000\000\000\000\000\000\000\000\000\000\018\017\000\000\000\000\018\017\000\000\000\000\000\000\000\000\000\000\018\017\018\017\018\017\000\000\000\000\000\000\000\000\000\000\000\000\018\017\000\000\018\017\018\017\000\000\000\000\000\000\000\000\000\000\018\017\000\000\000\000\018\017\000\000\000\000\000\000\000\000\000\000\018\017\000\000\000\000\000\000\018\017\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\017\000\000\018\017\018\017\000\000\018\017\018\017\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\017\000\000\018\017\000\000\018\017\018\017\018\021\000\000\018\017\000\000\018\021\000\000\000\000\018\017\018\021\000\000\018\017\018\017\000\000\018\017\000\000\018\017\018\017\000\000\000\000\018\021\018\021\018\021\000\000\018\021\018\021\018\021\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\021\000\000\000\000\000\000\000\000\000\000\000\000\018\021\018\021\005*\000\000\000\000\018\021\000\000\000\000\000\000\000\000\000\000\018\021\000\000\000\000\018\021\000\000\000\000\000\000\000\000\000\000\018\021\018\021\018\021\000\000\000\000\000\000\000\000\000\000\000\000\018\021\000\000\018\021\018\021\000\000\000\000\000\000\000\000\000\000\018\021\000\000\000\000\018\021\000\000\000\000\000\000\000\000\000\000\018\021\000\000\000\000\000\000\018\021\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\021\000\000\018\021\018\021\000\000\018\021\018\021\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\021\000\000\018\021\000\000\018\021\018\021\018\025\000\000\018\021\000\000\018\025\000\000\000\000\018\021\018\025\000\000\018\021\004F\000\000\018\021\000\000\018\021\018\021\000\000\000\000\018\025\018\025\018\025\000\000\018\025\018\025\018\025\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\025\000\000\000\000\000\000\000\000\000\000\000\000\018\025\018\025\005F\000\000\000\000\018\025\000\000\000\000\000\000\000\000\000\000\018\025\000\000\000\000\018\025\000\000\000\000\000\000\000\000\000\000\018\025\018\025\018\025\000\000\000\000\000\000\000\000\000\000\000\000\018\025\000\000\018\025\018\025\000\000\000\000\000\000\000\000\000\000\018\025\000\000\000\000\018\025\000\000\000\000\000\000\000\000\000\000\018\025\000\000\000\000\000\000\018\025\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\025\000\000\018\025\018\025\000\000\018\025\018\025\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\025\000\000\018\025\000\000\018\025\018\025\018\029\000\000\018\025\000\000\018\029\000\000\000\000\018\025\018\029\000\000\018\025\018\025\000\000\018\025\000\000\018\025\018\025\000\000\000\000\018\029\018\029\018\029\000\000\018\029\018\029\018\029\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\029\000\000\000\000\000\000\000\000\000\000\000\000\018\029\018\029\004>\000\000\000\000\018\029\000\000\000\000\000\000\000\000\000\000\018\029\000\000\000\000\018\029\000\000\000\000\000\000\000\000\000\000\018\029\018\029\018\029\000\000\000\000\000\000\000\000\000\000\000\000\018\029\000\000\018\029\018\029\000\000\000\000\000\000\000\000\000\000\018\029\000\000\000\000\018\029\000\000\000\000\000\000\000\000\000\000\018\029\000\000\000\000\000\000\018\029\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\029\000\000\018\029\018\029\000\000\018\029\018\029\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\029\000\000\018\029\000\000\018\029\018\029\018!\000\000\018\029\000\000\018!\000\000\000\000\018\029\018!\000\000\018\029\004F\000\000\018\029\000\000\018\029\018\029\000\000\000\000\018!\018!\018!\000\000\018!\018!\018!\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018!\000\000\000\000\000\000\000\000\000\000\000\000\018!\018!\004Z\000\000\000\000\018!\000\000\000\000\000\000\000\000\000\000\018!\000\000\000\000\018!\000\000\000\000\000\000\000\000\000\000\018!\018!\018!\000\000\000\000\000\000\000\000\000\000\000\000\018!\000\000\018!\018!\000\000\000\000\000\000\000\000\000\000\018!\000\000\000\000\018!\000\000\000\000\000\000\000\000\000\000\018!\000\000\000\000\000\000\018!\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018!\000\000\018!\018!\000\000\018!\018!\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018!\000\000\018!\000\000\018!\018!\018%\000\000\018!\000\000\018%\000\000\000\000\018!\018%\000\000\018!\018!\000\000\018!\000\000\018!\018!\000\000\000\000\018%\018%\018%\000\000\018%\018%\018%\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018%\000\000\000\000\000\000\000\000\000\000\000\000\018%\018%\005*\000\000\000\000\018%\000\000\000\000\000\000\000\000\000\000\018%\000\000\000\000\018%\000\000\000\000\000\000\000\000\000\000\018%\018%\018%\000\000\000\000\000\000\000\000\000\000\000\000\018%\000\000\018%\018%\000\000\000\000\000\000\000\000\000\000\018%\000\000\000\000\018%\000\000\000\000\000\000\000\000\000\000\018%\000\000\000\000\000\000\018%\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018%\000\000\018%\018%\000\000\018%\018%\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018%\000\000\018%\000\000\018%\018%\018)\000\000\018%\000\000\018)\000\000\000\000\018%\018)\000\000\018%\004F\000\000\018%\000\000\018%\018%\000\000\000\000\018)\018)\018)\000\000\018)\018)\018)\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018)\000\000\000\000\000\000\000\000\000\000\000\000\018)\018)\005F\000\000\000\000\018)\000\000\000\000\000\000\000\000\000\000\018)\000\000\000\000\018)\000\000\000\000\000\000\000\000\000\000\018)\018)\018)\000\000\000\000\000\000\000\000\000\000\000\000\018)\000\000\018)\018)\000\000\000\000\000\000\000\000\000\000\018)\000\000\000\000\018)\000\000\000\000\000\000\000\000\000\000\018)\000\000\000\000\000\000\018)\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018)\000\000\018)\018)\000\000\018)\018)\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018)\000\000\018)\000\000\018)\018)\018\221\000\000\018)\000\000\018\221\000\000\000\000\018)\018\221\000\000\018)\018)\000\000\018)\000\000\018)\018)\000\000\000\000\018\221\018\221\018\221\000\000\018\221\018\221\018\221\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\221\000\000\000\000\000\000\000\000\000\000\000\000\018\221\018\221\004>\000\000\000\000\018\221\000\000\000\000\000\000\000\000\000\000\018\221\000\000\000\000\018\221\000\000\000\000\000\000\000\000\000\000\018\221\018\221\018\221\000\000\000\000\000\000\000\000\000\000\000\000\018\221\000\000\018\221\018\221\000\000\000\000\000\000\000\000\000\000\018\221\000\000\000\000\018\221\000\000\000\000\000\000\000\000\000\000\018\221\000\000\000\000\000\000\018\221\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\221\000\000\018\221\018\221\000\000\018\221\018\221\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\221\000\000\018\221\000\000\018\221\018\221\018\225\000\000\018\221\000\000\018\225\000\000\000\000\018\221\018\225\000\000\018\221\004F\000\000\018\221\000\000\018\221\018\221\000\000\000\000\018\225\018\225\018\225\000\000\018\225\018\225\018\225\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\225\000\000\000\000\000\000\000\000\000\000\000\000\018\225\018\225\004Z\000\000\000\000\018\225\000\000\000\000\000\000\000\000\000\000\018\225\000\000\000\000\018\225\000\000\000\000\000\000\000\000\000\000\018\225\018\225\018\225\000\000\000\000\000\000\000\000\000\000\000\000\018\225\000\000\018\225\018\225\000\000\000\000\000\000\000\000\000\000\018\225\000\000\000\000\018\225\000\000\000\000\000\000\000\000\000\000\018\225\000\000\000\000\000\000\018\225\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\225\000\000\018\225\018\225\000\000\018\225\018\225\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\225\000\000\018\225\000\000\018\225\018\225\018\229\000\000\018\225\000\000\018\229\000\000\000\000\018\225\018\229\000\000\018\225\018\225\000\000\018\225\000\000\018\225\018\225\000\000\000\000\018\229\018\229\018\229\000\000\018\229\018\229\018\229\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\229\000\000\000\000\000\000\000\000\000\000\000\000\018\229\018\229\005*\000\000\000\000\018\229\000\000\000\000\000\000\000\000\000\000\018\229\000\000\000\000\018\229\000\000\000\000\000\000\000\000\000\000\018\229\018\229\018\229\000\000\000\000\000\000\000\000\000\000\000\000\018\229\000\000\018\229\018\229\000\000\000\000\000\000\000\000\000\000\018\229\000\000\000\000\018\229\000\000\000\000\000\000\000\000\000\000\018\229\000\000\000\000\000\000\018\229\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\229\000\000\018\229\018\229\000\000\018\229\018\229\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\229\000\000\018\229\000\000\018\229\018\229\018\233\000\000\018\229\000\000\018\233\000\000\000\000\018\229\018\233\000\000\018\229\004F\000\000\018\229\000\000\018\229\018\229\000\000\000\000\018\233\018\233\018\233\000\000\018\233\018\233\018\233\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\233\000\000\000\000\000\000\000\000\000\000\000\000\018\233\018\233\005F\000\000\000\000\018\233\000\000\000\000\000\000\000\000\000\000\018\233\000\000\000\000\018\233\000\000\000\000\000\000\000\000\000\000\018\233\018\233\018\233\000\000\000\000\000\000\000\000\000\000\000\000\018\233\000\000\018\233\018\233\000\000\000\000\000\000\000\000\000\000\018\233\000\000\000\000\018\233\000\000\000\000\000\000\000\000\000\000\018\233\000\000\000\000\000\000\018\233\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\233\000\000\018\233\018\233\000\000\018\233\018\233\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\233\000\000\018\233\000\000\018\233\018\233\018\237\000\000\018\233\000\000\018\237\000\000\000\000\018\233\018\237\000\000\018\233\018\233\000\000\018\233\000\000\018\233\018\233\000\000\000\000\018\237\018\237\018\237\000\000\018\237\018\237\018\237\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\237\000\000\000\000\000\000\000\000\000\000\000\000\018\237\018\237\004>\000\000\000\000\018\237\000\000\000\000\000\000\000\000\000\000\018\237\000\000\000\000\018\237\000\000\000\000\000\000\000\000\000\000\018\237\018\237\018\237\000\000\000\000\000\000\000\000\000\000\000\000\018\237\000\000\018\237\018\237\000\000\000\000\000\000\000\000\000\000\018\237\000\000\000\000\018\237\000\000\000\000\000\000\000\000\000\000\018\237\000\000\000\000\000\000\018\237\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\237\000\000\018\237\018\237\000\000\018\237\018\237\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\237\000\000\018\237\000\000\018\237\018\237\018\241\000\000\018\237\000\000\018\241\000\000\000\000\018\237\018\241\000\000\018\237\004F\000\000\018\237\000\000\018\237\018\237\000\000\000\000\018\241\018\241\018\241\000\000\018\241\018\241\018\241\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\241\000\000\000\000\000\000\000\000\000\000\000\000\018\241\018\241\004Z\000\000\000\000\018\241\000\000\000\000\000\000\000\000\000\000\018\241\000\000\000\000\018\241\000\000\000\000\000\000\000\000\000\000\018\241\018\241\018\241\000\000\000\000\000\000\000\000\000\000\000\000\018\241\000\000\018\241\018\241\000\000\000\000\000\000\000\000\000\000\018\241\000\000\000\000\018\241\000\000\000\000\000\000\000\000\000\000\018\241\000\000\000\000\000\000\018\241\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\241\000\000\018\241\018\241\000\000\018\241\018\241\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\241\000\000\018\241\000\000\018\241\018\241\018\245\000\000\018\241\000\000\018\245\000\000\000\000\018\241\018\245\000\000\018\241\018\241\000\000\018\241\000\000\018\241\018\241\000\000\000\000\018\245\018\245\018\245\000\000\018\245\018\245\018\245\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\245\000\000\000\000\000\000\000\000\000\000\000\000\018\245\018\245\005*\000\000\000\000\018\245\000\000\000\000\000\000\000\000\000\000\018\245\000\000\000\000\018\245\000\000\000\000\000\000\000\000\000\000\018\245\018\245\018\245\000\000\000\000\000\000\000\000\000\000\000\000\018\245\000\000\018\245\018\245\000\000\000\000\000\000\000\000\000\000\018\245\000\000\000\000\018\245\000\000\000\000\000\000\000\000\000\000\018\245\000\000\000\000\000\000\018\245\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\245\000\000\018\245\018\245\000\000\018\245\018\245\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\245\000\000\018\245\000\000\018\245\018\245\018\249\000\000\018\245\000\000\018\249\000\000\000\000\018\245\018\249\000\000\018\245\004F\000\000\018\245\000\000\018\245\018\245\000\000\000\000\018\249\018\249\018\249\000\000\018\249\018\249\018\249\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\249\000\000\000\000\000\000\000\000\000\000\000\000\018\249\018\249\005F\000\000\000\000\018\249\000\000\000\000\000\000\000\000\000\000\018\249\000\000\000\000\018\249\000\000\000\000\000\000\000\000\000\000\018\249\018\249\018\249\000\000\000\000\000\000\000\000\000\000\000\000\018\249\000\000\018\249\018\249\000\000\000\000\000\000\000\000\000\000\018\249\000\000\000\000\018\249\000\000\000\000\000\000\000\000\000\000\018\249\000\000\000\000\000\000\018\249\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\249\000\000\018\249\018\249\000\000\018\249\018\249\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\249\000\000\018\249\000\000\018\249\018\249\018\189\000\000\018\249\000\000\018\189\000\000\000\000\018\249\018\189\000\000\018\249\018\249\000\000\018\249\000\000\018\249\018\249\000\000\000\000\018\189\018\189\018\189\000\000\018\189\018\189\018\189\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\189\000\000\000\000\000\000\000\000\000\000\000\000\018\189\018\189\004>\000\000\000\000\018\189\000\000\000\000\000\000\000\000\000\000\018\189\000\000\000\000\018\189\000\000\000\000\000\000\000\000\000\000\018\189\018\189\018\189\000\000\000\000\000\000\000\000\000\000\000\000\018\189\000\000\018\189\018\189\000\000\000\000\000\000\000\000\000\000\018\189\000\000\000\000\018\189\000\000\000\000\000\000\000\000\000\000\018\189\000\000\000\000\000\000\018\189\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\189\000\000\018\189\018\189\000\000\018\189\018\189\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\189\000\000\018\189\000\000\018\189\018\189\018\193\000\000\018\189\000\000\018\193\000\000\000\000\018\189\018\193\000\000\018\189\004F\000\000\018\189\000\000\018\189\018\189\000\000\000\000\018\193\018\193\018\193\000\000\018\193\018\193\018\193\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\193\000\000\000\000\000\000\000\000\000\000\000\000\018\193\018\193\004Z\000\000\000\000\018\193\000\000\000\000\000\000\000\000\000\000\018\193\000\000\000\000\018\193\000\000\000\000\000\000\000\000\000\000\018\193\018\193\018\193\000\000\000\000\000\000\000\000\000\000\000\000\018\193\000\000\018\193\018\193\000\000\000\000\000\000\000\000\000\000\018\193\000\000\000\000\018\193\000\000\000\000\000\000\000\000\000\000\018\193\000\000\000\000\000\000\018\193\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\193\000\000\018\193\018\193\000\000\018\193\018\193\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\193\000\000\018\193\000\000\018\193\018\193\018\197\000\000\018\193\000\000\018\197\000\000\000\000\018\193\018\197\000\000\018\193\018\193\000\000\018\193\000\000\018\193\018\193\000\000\000\000\018\197\018\197\018\197\000\000\018\197\018\197\018\197\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\197\000\000\000\000\000\000\000\000\000\000\000\000\018\197\018\197\005*\000\000\000\000\018\197\000\000\000\000\000\000\000\000\000\000\018\197\000\000\000\000\018\197\000\000\000\000\000\000\000\000\000\000\018\197\018\197\018\197\000\000\000\000\000\000\000\000\000\000\000\000\018\197\000\000\018\197\018\197\000\000\000\000\000\000\000\000\000\000\018\197\000\000\000\000\018\197\000\000\000\000\000\000\000\000\000\000\018\197\000\000\000\000\000\000\018\197\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\197\000\000\018\197\018\197\000\000\018\197\018\197\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\197\000\000\018\197\000\000\018\197\018\197\018\201\000\000\018\197\000\000\018\201\000\000\000\000\018\197\018\201\000\000\018\197\004F\000\000\018\197\000\000\018\197\018\197\000\000\000\000\018\201\018\201\018\201\000\000\018\201\018\201\018\201\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\201\000\000\000\000\000\000\000\000\000\000\000\000\018\201\018\201\005F\000\000\000\000\018\201\000\000\000\000\000\000\000\000\000\000\018\201\000\000\000\000\018\201\000\000\000\000\000\000\000\000\000\000\018\201\018\201\018\201\000\000\000\000\000\000\000\000\000\000\000\000\018\201\000\000\018\201\018\201\000\000\000\000\000\000\000\000\000\000\018\201\000\000\000\000\018\201\000\000\000\000\000\000\000\000\000\000\018\201\000\000\000\000\000\000\018\201\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\201\000\000\018\201\018\201\000\000\018\201\018\201\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\201\000\000\018\201\000\000\018\201\018\201\018\205\000\000\018\201\000\000\018\205\000\000\000\000\018\201\018\205\000\000\018\201\018\201\000\000\018\201\000\000\018\201\018\201\000\000\000\000\018\205\018\205\018\205\000\000\018\205\018\205\018\205\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\205\000\000\000\000\000\000\000\000\000\000\000\000\018\205\018\205\004>\000\000\000\000\018\205\000\000\000\000\000\000\000\000\000\000\018\205\000\000\000\000\018\205\000\000\000\000\000\000\000\000\000\000\018\205\018\205\018\205\000\000\000\000\000\000\000\000\000\000\000\000\018\205\000\000\018\205\018\205\000\000\000\000\000\000\000\000\000\000\018\205\000\000\000\000\018\205\000\000\000\000\000\000\000\000\000\000\018\205\000\000\000\000\000\000\018\205\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\205\000\000\018\205\018\205\000\000\018\205\018\205\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\205\000\000\018\205\000\000\018\205\018\205\018\209\000\000\018\205\000\000\018\209\000\000\000\000\018\205\018\209\000\000\018\205\004F\000\000\018\205\000\000\018\205\018\205\000\000\000\000\018\209\018\209\018\209\000\000\018\209\018\209\018\209\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\209\000\000\000\000\000\000\000\000\000\000\000\000\018\209\018\209\004Z\000\000\000\000\018\209\000\000\000\000\000\000\000\000\000\000\018\209\000\000\000\000\018\209\000\000\000\000\000\000\000\000\000\000\018\209\018\209\018\209\000\000\000\000\000\000\000\000\000\000\000\000\018\209\000\000\018\209\018\209\000\000\000\000\000\000\000\000\000\000\018\209\000\000\000\000\018\209\000\000\000\000\000\000\000\000\000\000\018\209\000\000\000\000\000\000\018\209\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\209\000\000\018\209\018\209\000\000\018\209\018\209\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\209\000\000\018\209\000\000\018\209\018\209\018\213\000\000\018\209\000\000\018\213\000\000\000\000\018\209\018\213\000\000\018\209\018\209\000\000\018\209\000\000\018\209\018\209\000\000\000\000\018\213\018\213\018\213\000\000\018\213\018\213\018\213\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\213\000\000\000\000\000\000\000\000\000\000\000\000\018\213\018\213\005*\000\000\000\000\018\213\000\000\000\000\000\000\000\000\000\000\018\213\000\000\000\000\018\213\000\000\000\000\000\000\000\000\000\000\018\213\018\213\018\213\000\000\000\000\000\000\000\000\000\000\000\000\018\213\000\000\018\213\018\213\000\000\000\000\000\000\000\000\000\000\018\213\000\000\000\000\018\213\000\000\000\000\000\000\000\000\000\000\018\213\000\000\000\000\000\000\018\213\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\213\000\000\018\213\018\213\000\000\018\213\018\213\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\213\000\000\018\213\000\000\018\213\018\213\018\217\000\000\018\213\000\000\018\217\000\000\000\000\018\213\018\217\000\000\018\213\004F\000\000\018\213\000\000\018\213\018\213\000\000\000\000\018\217\018\217\018\217\000\000\018\217\018\217\018\217\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\217\000\000\000\000\000\000\000\000\000\000\000\000\018\217\018\217\005F\000\000\000\000\018\217\000\000\000\000\000\000\000\000\000\000\018\217\000\000\000\000\018\217\000\000\000\000\000\000\000\000\000\000\018\217\018\217\018\217\000\000\000\000\000\000\000\000\000\000\000\000\018\217\000\000\018\217\018\217\000\000\000\000\000\000\000\000\000\000\018\217\000\000\000\000\018\217\000\000\000\000\000\000\000\000\000\000\018\217\000\000\b\130\003\154\018\217\000\000\003j\000\000\r2\000\000\000\000\bf\018\217\000\000\018\217\018\217\000\000\018\217\018\217\000\000\000\000\000\000\001\234\000\000\r~\000\000\000\000\000\000\000\000\b\190\018\217\000\000\018\217\014*\018\217\018\217\000\000\000\000\018\217\000\000\000\000\000\000\000\000\018\217\000\000\b\210\018\217\018\217\014\186\018\217\001\190\018\217\018\217\000\000\000\000\000\000\003\138\000\000\000\000\n\n\n\014\000\000\000\000\015\161\n\018\000\000\n\026\000\000\015J\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\221\000\000\nN\nb\nf\000\000\nj\nr\n~\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\134\n\138\000\000\000\000\000\000\021\210\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015\161\000\000\000\000\000\000\015\161\015\161\t-\n\142\000\000\000\000\t-\015\161\000\000\007\166\t-\000\000\000\000\015\161\006\221\000\000\000\000\000\000\t-\000\000\000\000\t-\t-\t-\000\000\t-\t-\t-\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t-\000\000\000\000\000\000\000\000\000\000\000\000\t-\t-\t-\000\000\000\000\000\000\000\000\000\000\000\000\002\134\000\000\t-\000\000\000\000\t-\000\000\000\000\000\000\000\000\000\000\t-\t-\t-\000\000\000\000\000\000\000\000\000\000\000\000\t-\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t-\t-\000\000\t-\000\000\000\000\000\000\000\000\000\000\t-\000\000\000\000\000\000\000\000\000\000\001\202\tA\tA\000\000\000\000\tA\t-\tA\t-\t-\tA\t-\t-\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\tA\tA\000\000\t-\000\000\t-\000\000\tA\t-\000\000\000\000\t-\000\000\001\206\000\000\000\000\t-\000\000\000\000\000\000\000\000\000\000\000\000\tA\t-\t-\tA\001\210\tA\000\000\000\000\000\000\tA\000\000\tA\tA\tA\tA\tA\000\000\000\000\000\000\tA\000\000\tA\tA\tA\000\000\000\000\tA\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\tA\tA\tA\000\000\tA\tA\tA\000\000\001\202\tE\tE\000\000\000\000\tE\000\000\tE\tA\tA\tE\000\000\tA\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\tE\tE\000\000\000\000\000\000\000\000\000\000\tE\000\000\000\000\000\000\000\000\000\000\001\206\000\000\000\000\tA\000\000\000\000\000\000\000\000\000\000\tA\tE\000\000\000\000\tE\001\210\tE\000\000\000\000\000\000\tE\000\000\tE\tE\tE\tE\tE\000\000\000\000\000\000\tE\000\000\tE\tE\tE\000\000\000\000\tE\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\tE\tE\tE\000\000\tE\tE\tE\000\000\001\202\t=\t=\000\000\000\000\t=\000\000\t=\tE\tE\t=\000\000\tE\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t=\t=\000\000\000\000\000\000\000\000\000\000\t=\000\000\000\000\000\000\000\000\000\000\001\206\000\000\000\000\tE\000\000\000\000\000\000\000\000\000\000\tE\t=\000\000\000\000\t=\001\210\t=\000\000\000\000\000\000\t=\000\000\t=\t=\t=\t=\t=\000\000\000\000\000\000\t=\000\000\t=\t=\t=\000\000\000\000\t=\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t=\t=\t=\000\000\t=\t=\t=\000\000\007\025\007\025\007\025\000\000\000\000\007\025\000\000\007\025\t=\t=\007\025\000\000\t=\000\000\000\000\000\000\000\000\007\025\000\000\000\000\000\000\007\025\000\000\000\000\000\000\000\000\000\000\000\000\007\025$v\000\000\000\000\000\000$\142\007\025\000\000\000\000\t=\000\000\000\000\000\000\000\000\000\000\t=\007\025\000\000\000\000\007\025\007\025\007\025\000\000\000\000\000\000\000\000\000\000\007\025\000\000\000\000\007\025\007\025\000\000\000\000\000\242\007\025\000\000\007\025\007\025\007\025\000\000\000\000\007\025\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007\025\007\025\007\025\000\000\007\025\007\025\007\025\0071\000\000\b\130\003\154\0071\000\000\003j\000\000\r2\007\025\007\025\bf\000\000\000\000\000\000\0071\000\000\000\000\000\000\0071\000\000\0071\001\234\000\000\r~\000\000\000\000\000\000\000\000\b\190\000\000\000\000\000\000\014*\0071\000\000\000\000\000\000\007\025\000\000\000\000\0071\000\000\004U\007\025\b\210\000\000\000\000\014\186\000\000\001\190\000\000\0071\000\000\000\000\0071\003\138\000\000\000\000\n\n\n\014\0071\tN\000\000\n\018\000\000\n\026\000\000\015J\000\000\0071\nJ\bq\000\000\000\000\000\000\bq\000\000\000\000\0071\bq\000\000\nN\nb\nf\000\000\nj\nr\n~\000\000\000\000\bq\000\000\bq\000\000\bq\000\000\bq\n\134\n\138\0071\000\000\0071\004U\000\000\0071\0071\000\000\000\000\000\000\bq\000\000\000\000\000\000\000\000\000\000\000\000\bq\000\000\bq\000\000\000\000\004U\000\000\bq\004U\0071\n\142\bq\000\000\000\000\bq\000\000\007\166\000\000\004U\000\000\bq\bq\bq\000\000\000\000\000\000\000\000\000\000\000\000\bq\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\bq\bq\000\000\bq\000\000\000\000\000\000\000\000\000\000\bq\000\000\b\130\003\154\000\000\000\000\003j\000\000\r2\000\000\000\000\bf\bq\000\000\bq\bq\000\000\bq\bq\000\000\000\000\000\000\001\234\000\000\r~\000\000\017\"\000\000\000\000\b\190\000\000\000\000\000\000\014*\bq\000\000\000\000\bq\bq\000\000\n\193\000\000\000\000\000\000\n\193\b\210\bq\bq\014\186\000\000\001\190\bq\000\000\000\000\000\000\n\193\003\138\000\000\000\000\n\n\n\014\n\193\000\000\000\000\n\018\000\000\n\026\000\000\015J\000\000\000\000\nJ\000\000\000\000\n\193\000\000\000\000\000\000\000\000\000\000\000\000\n\193\nN\nb\nf\000\000\nj\nr\n~\000\000\000\000\000\000\000\000\000\000\000\000\n\193\000\000\000\000\n\134\n\138\000\000\n\193\000\000\021\210\000\000\000\000\000\000\000\000\000\000\000\000\n\193\016~\000\000\000\000\000\000\n\193\001\202\001\226\001\230\n\193\000\000\000\000\003\182\000\000\000\000\022\246\000\000\n\142\000\000\000\000\n\193\000\000\000\000\007\166\n\193\004F\n\193\001\234\002&\001\254\n\193\000\000\n\193\000\000\000\000\000\000\n\193\000\000\002\n\n\193\001\206\000\000\000\000\000\000\000\000\000\000\n\193\000\000\016\226\000\000\000\000\000\000\000\000\002.\001\210\002Z\n\193\000\000\000\000\003z\n\193\003\138\003\186\003\198\002\130\000\000\n\193\n\193\000\242\003\210\000\000\000\000\000\000\000\000\000\000\n\193\000\000\004\177\000\000\000\000\000\000\004\177\000\000\000\000\n\193\004\177\000\000\000\000\000\000\000\000\000\000\003\214\000\000\003\230\000\000\000\000\004\177\000\000\004\177\000\000\004\177\000\000\004\177\000\000\000\000\n\193\000\000\n\193\000\000\000\000\n\193\n\193\000\000\000\000\000\000\004\177\000\000\000\000\000\000\000\000\000\000\000\000\004\177\000\000\004\177\000\000\000\000\000\000\000\000\007\221\000\000\n\193\000\000\004\177\000\000\000\000\004\177\000\000\007\166\002\130\004F\000\000\004\177\004\177\004\177\000\000\000\000\000\000\b\130\003\154\000\000\004\177\003j\000\000\b\134\000\000\000\000\bf\000\000\000\000\004\177\000\000\000\000\004\177\000\000\r\213\000\000\000\000\001\234\004\177\000\000\000\000\000\000\000\000\000\000\b\190\000\000\000\000\000\000\000\000\000\000\004\177\000\000\004\177\004\177\000\000\004\177\004\177\000\000\000\000\000\000\b\210\000\000\000\000\b\230\007\221\001\190\000\000\000\000\000\000\000\000\000\000\003\138\004\177\004\177\n\n\n\014\004\177\000\000\000\000\n\018\000\000\n\026\n>\nn\004\177\004\177\nJ\000\000\000\000\004\177\000\000\000\000\000\000\000\000\000\000\000\000\000\000\nN\nb\nf\000\000\nj\nr\n~\000\000\000\000\002a\002a\000\000\000\000\002a\000\000\002a\n\134\n\138\002a\000\000\011\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002a\000\000\000\000\000\000\000\000\000\000\000\000\002a\000\n\000\000\r\213\000\000\000\000\000\000\000\000\000\000\n\142\000\000\r\213\000\000\014\018\000\000\007\166\002a\000\000\000\000\002a\000\000\002a\000\000\000\000\000\000\000\000\000\000\002a\000\000\000\000\002a\002a\000\000\000\000\002a\002a\000\000\002a\002a\002a\000\000\000\000\002a\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002a\002a\002a\000\000\002a\002a\002a\000\000\001\202\b\130\003\154\000\000\000\000\003j\000\000\b\134\002a\002a\bf\000\000\002a\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\234\000\000\000\000\000\000\000\000\000\000\000\000\b\190\000\000\000\000\000\000\000\000\000\000\001\206\000\000\000\000\002a\000\000\000\000\000\000\002a\000\000\002a\b\210\000\000\000\000\0146\001\210\001\190\000\000\000\000\000\000\000\000\000\000\003\138\000\000\000\000\n\n\n\014\000\000\000\000\000\000\n\018\000\000\n\026\n>\nn\000\000\004\177\nJ\000\000\000\000\004\177\000\000\000\000\000\000\004\177\000\000\000\000\000\000\nN\nb\nf\000\000\nj\nr\n~\004\177\000\000\004\177\000\000\004\177\000\000\004\177\000\000\000\000\n\134\n\138\000\000\000\000\011\002\001\226\001\230\000\000\000\000\000\000\004\177\000\000\000\000\000\000\000\000\000\000\000\000\004\177\000\000\004\177\000\000\000\000\000\000\000\000\007\225\001\234\002&\000\000\004\177\n\142\000\000\004\177\000\000\000\000\000\000\007\166\000\000\004\177\004\177\004\177\000\000\000\000\000\000\000\000\000\000\000\000\004\177\000\000\000\000\000\000\000\000\003~\000\000(j\000\000\004\177\000\000\003z\004\177\003\138\003\186\003\198\000\000\000\000\004\177\000\000\000\000\003\210\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\177\000\000\004\177\004\177\000\000\004\177\004\177\000\000\be\000\000\000\000\000\000\be\003\214\007\225\003\230\be\000\000\000\000(\150\000\000\000\000\004\177\004\177\000\000\000\000\004\177\be\000\000\be\000\000\be\000\000\be\004\177\004\177\000\000\000\000\000\000\004\177(\130\000\000\000\000\000\000\000\000\000\000\be\000\000\000\000\001\226\001\230\000\000\000\000\be\000\000\be\000\000\000\000\000\000\000\000\017z\000\000\000\000\000\000\be\000\000\000\000\be\000\000\001\234\002&\001\254\000\000\be\be\000\242\000\000\000\000\000\000\000\000\002\n\000\000\be\000\000!\214\000\000\000\000\000\000\000\000\000\000\000\000\be\be\000\000\be\003~\000\000%\"\000\000\"N\be\003z\000\000\003\138\003\186\003\198\000\000\000\000\000\000\000\000\025\206%2\be\000\000\be\be\000\000\be\be\025j\000\000\000\000\000\000\000\000\019\006\000\000\000\000\000\000\023\142\r\173\000\000\r\173\r\173\003\214\be\003\230\000\000\be\be\019r\019\210\019\234\019\138\000\000\020\002\000\000\be\be\000\000\000\000\000\000\be\000\000\000\000\019\162\000\000\020\026\0202\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020J\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\242\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\030\019\186\020b\020z\020\218\000\000\000\000\000\000\000\000\000\000\025\246\b\130\003\154\000\000\000\000\003j\000\000\b\134\020\242\000\000\bf\000\000\000\000\025\230\000\000\000\000\n\254\000\000\n\022\021\n\000\000\001\234\000\000\000\000\025n\000\000\000\000\000\000\b\190\000\000\000\000\000\000\000\000\000\000\026\022\000\000\021j\r\173\000\000\021\162\020\146\000\000\000\000\000\000\b\210\r\173\021\"\b\230\0266\001\190\020\170\020\194\000\000\000\000\000\000\003\138\021:\021R\n\n\n\014\000\000\000\000\000\000\n\018\000\000\n\026\n>\nn\000\000\000\000\nJ\000\000\000\000\000\000\001\157\000\000\000\000\000\000\000\000\000\000\000\000\nN\nb\nf\000\000\nj\nr\n~\019\006\000\000\000\000\000\000\n\145\029\142\000\000\001\157\n\145\n\134\n\138\000\000\000\000\011\002\000\000\019r\019\210\019\234\019\138\000\000\020\002\000\000\000\000\000\000\000\000\001\165\000\000\000\000\000\000\000\000\019\162\000\000\020\026\0202\000\000\011\238\000\000\000\000\n\142\019\006\012R\000\000\020J\000\000\007\166\000\000\001\165\000\000\000\000\000\000\000\000\000\242\000\000\000\000\019r\019\210\019\234\019\138\000\000\020\002\000\000\000\000\019\030\019\186\020b\020z\020\218\000\000\000\000\019\162\000\000\020\026\0202\000\000\000\000\000\000\000\000\000\000\n\145\028\146\020\242\020J\000\000\000\000\000\000\001\157\000\000\000\000\000\000\000\000\000\242\021\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\030\019\186\020b\020z\020\218\000\000\000\000\021j\001\157\029\146\021\162\020\146\029\158\000\000\000\000\000\000\001\157\021\"\020\242\000\000\000\000\020\170\020\194\001\165\000\000\000\000\001\157\021:\021R\021\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\149\000\000\000\000\021j\001\165\000\000\021\162\020\146\000\000\000\000\000\000\000\000\001\165\021\"\019\006\000\000\000\000\020\170\020\194\000\000\000\000\001\149\001\165\021:\021R\000\000\000\000\000\000\000\000\019r\019\210\019\234\019\138\000\000\020\002\000\000\000\000\000\000\000\000\001\189\000\000\000\000\000\000\000\000\019\162\000\000\020\026\0202\000\000\000\000\000\000\000\000\000\000\019\006\000\000\000\000\020J\000\000\000\000\000\000\001\189\000\000\000\000\000\000\000\000\000\242\000\000\000\000\019r\019\210\019\234\019\138\000\000\020\002\000\000\000\000\019\030\019\186\020b\020z\020\218\000\000\000\000\019\162\000\000\020\026\0202\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\242\020J\000\000\000\000\000\000\001\149\000\000\000\000\000\000\000\000\000\242\021\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\030\019\186\020b\020z\020\218\000\000\000\000\021j\001\149\000\000\021\162\020\146\000\000\000\000\000\000\000\000\001\149\021\"\020\242\000\000\000\000\020\170\020\194\001\189\000\000\000\000\001\149\021:\021R\021\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\181\000\000\000\000\021j\001\189\000\000\021\162\020\146\000\000\000\000\000\000\000\000\001\189\021\"\019\006\000\000\000\000\020\170\020\194\000\000\000\000\001\181\001\189\021:\021R\000\000\000\000\000\000\000\000\019r\019\210\019\234\019\138\000\000\020\002\000\000\000\000\000\000\000\000\001\173\000\000\000\000\000\000\000\000\019\162\000\000\020\026\0202\000\000\000\000\000\000\000\000\000\000\019\006\000\000\000\000\020J\000\000\000\000\000\000\001\173\000\000\000\000\000\000\000\000\000\242\000\000\000\000\019r\019\210\019\234\019\138\000\000\020\002\000\000\000\000\019\030\019\186\020b\020z\020\218\000\000\000\000\019\162\000\000\020\026\0202\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\242\020J\000\000\000\000\000\000\001\181\000\000\000\000\000\000\000\000\000\242\021\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\030\019\186\020b\020z\020\218\000\000\000\000\021j\001\181\000\000\021\162\020\146\000\000\000\000\000\000\000\000\001\181\021\"\020\242\000\000\000\000\020\170\020\194\001\173\000\000\000\000\001\181\021:\021R\021\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\021j\001\173\000\000\021\162\020\146\000\000\011\225\011\225\011\225\001\173\021\"\011\225\000\000\011\225\020\170\020\194\011\225\000\000\000\000\001\173\021:\021R\000\000\031n\000\000\000\000\000\000\011\225\000\000\000\000\000\000\000\000\000\000\000\000\011\225\000\000\000\000\000\000\000\000\000\000\011\225\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\011\225\000\000\000\000\011\225\011\225\011\225\000\000\000\000\000\000\000\000\000\000\011\225\000\000\000\000\011\225\011\225\000\000\000\000\000\000\011\225\000\000\011\225\011\225\011\225\000\000\012\209\011\225\000\000\000\000\012\209\000\000\000\000\000\000\012\209\000\000\000\000\000\000\011\225\011\225\011\225\000\000\011\225\011\225\011\225\012\209\000\000\012\209\000\000\012\209\000\000\012\209\000\000\000\000\011\225\011\225\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012\209\000\000\000\000\000\000\000\000\000\000\000\000\012\209\000\000\012\209\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012\209\011\225\000\000\012\209\000\000\000\000\000\000\011\225\000\000\012\209\012\209\012\209\000\000\001\226\001\230\000\000\000\000\000\000\012\209\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012\209\000\000\000\000\012\209\000\000\000\000\001\234\002&\000\000\012\209\000\000\000\000\020}\000\000\000\000\000\000\020}\000\000\000\000\000\000\020}\012\209\000\000\012\209\012\209\000\000\012\209\012\209\000\000\000\000\000\000\020}\003~\020}(j\020}\000\000\020}\003z\012\209\003\138\003\186\003\198\012\209\000\000\000\000\000\000\012\209\003\210\000\000\020}\000\000\000\000\000\000\000\000\012\209\012\209\020}\005\206\020}\012\209\000\000\000\000\000\000\003\242\000\000\000\000\000\000\020}\000\000\003\214\020}\003\230\000\000\000\000\000\000\007\165\020}\020}\020}\000\000\000\000\000\000\000\000\000\000\000\000\020}\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020}\000\000(\130\020}\000\000\000\000\000\000\000\000\000\000\020}\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020}\000\000\020}\020}\020\129\020}\020}\000\000\020\129\000\000\000\000\000\000\020\129\000\000\003\254\000\000\000\000\000\000\000\000\001\202\001\226\001\230\020}\020\129\000\000\020\129\020}\020\129\000\000\020\129\000\000\000\000\000\000\000\000\020}\020}\000\000\001\226\001\230\020}\001\234\002&\020\129\000\000\000\000\000\000\000\000\000\000\000\000\020\129\000\000\020\129\000\000\001\206\000\000\000\000\003\242\001\234\002&\000\000\020\129\000\000\000\000\020\129\000\000\000\000\004n\001\210\003\226\020\129\020\129\020\129\003z\000\000\003\138\003\186\003\198\000\000\020\129\000\000\000\000\000\000\003\210\003~\000\000\003\226\000\000\020\129\000\000\003z\020\129\003\138\003\186\003\198\000\000\000\000\020\129\000\000\000\000\003\210\000\000\030f\000\000\000\000\003\214\000\000\003\230\000\000\020\129\000\000\020\129\020\129\b\221\020\129\020\129\000\000\b\221\000\000\000\000\000\000\b\221\003\214\003\254\003\230\000\000\000\000\000\000\000\000\030\182\000\000\020\129\b\221\000\000\b\221\020\129\b\221\000\000\b\221\000\000\000\000\000\000\nu\020\129\020\129\000\000\nu\000\000\020\129\000\000\000\000\b\221\000\000\000\000\000\000\000\000\000\000\nu\b\221\000\000\b\221\nu\000\000\nu\000\000\003\242\000\000\000\000\000\000\b\221\000\000\000\000\b\221\000\000\000\000\000\000\nu\000\000\b\221\b\221\b\221\000\000\000\000\nu\000\000\000\000\000\000\b\221\000\000\000\000\000\000\000\000\000\000\000\000\nu\000\000\b\221\nu\000\000\b\221\000\000\000\000\000\000\nu\nu\b\221\001\202\b\130\003\154\000\000\000\000\003j\nu\t\210\000\000\000\000\bf\b\221\000\000\b\221\b\221\nu\b\221\b\221\nu\000\000\000\000\001\234\000\000\000\000\nu\003\254\000\000\000\000\b\190\000\000\000\000\000\000\000\000\b\221\001\206\000\000\nu\b\221\nu\nu\000\000\nu\nu\000\000\b\210\b\221\b\221\021\194\001\210\001\190\b\221\000\000\000\000\000\000\nu\003\138\000\000\000\000\n\n\n\014\000\000\003V\nu\n\018\000\000\n\026\n>\012\246\000\000\000\000\nJ\000\000\000\000\000\000\001\137\nu\000\000\000\000\000\000\000\000\000\000\nN\nb\nf\000\000\nj\nr\n~\019\006\000\000\000\000\000\000\000\000\000\000\000\000\001\137\000\000\n\134\n\138\000\000\000\000\000\000\000\000\019r\019\210\019\234\019\138\000\000\020\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\162\000\000\020\026\0202\000\000\000\000\000\000\000\000\n\142\000\000\000\000\000\000\020J\000\000\007\166\000\000\000\000\000\000\000\000\000\000\000\000\000\242\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\030\019\186\020b\020z\020\218\000\000\000\000\000\000\000\000\000\000\000\000\b\130\003\154\000\000\000\000\003j\000\000\r2\020\242\000\000\bf\000\000\000\000\001\137\000\000\000\000\000\000\000\000\000\000\021\n\000\000\001\234\000\000\r~\000\000\000\000\000\000\000\000\b\190\000\000\000\000\000\000\014*\000\000\000\000\000\000\021j\001\137\000\000\021\162\020\146\000\000$\190\000\000\b\210\001\137\021\"#&\000\000\001\190\020\170\020\194\000\000\000\000\000\000\003\138\021:\021R\n\n\n\014\000\000\000\000\000\000\n\018\000\000\n\026\000\000\015J\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\nN\nb\nf\000\000\nj\nr\n~\000\000\000\000\b\130\003\154\000\000\000\000\003j\000\000\r2\n\134\n\138\bf\000\000\000\000#*\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\234\000\000\r~\000\000\000\000\000\000\000\000\b\190\000\000\000\000\000\000\014*\000\000\000\000%\202\000\000\n\142\000\000\000\000\000\000\000\000\000\000\007\166\b\210\000\000\000\000\014\186\000\000\001\190\000\000\000\000\000\000\000\000\000\000\003\138\000\000\000\000\n\n\n\014\000\000\000\000\000\000\n\018\000\000\n\026\000\000\015J\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\nN\nb\nf\000\000\nj\nr\n~\000\000\000\000\b\130\003\154\000\000\000\000\003j\000\000\r2\n\134\n\138\bf\000\000\000\000\021\210\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\234\000\000\r~\000\000\000\000\000\000\000\000\b\190\000\000\000\000\000\000\014*\000\000\000\000#\198\000\000\n\142\000\000\000\000\000\000\000\000\000\000\007\166\b\210\000\000\000\000\014\186\000\000\001\190\000\000\000\000\000\000\000\000\000\000\003\138\000\000\000\000\n\n\n\014\000\000\000\000\000\000\n\018\000\000\n\026\000\000\015J\000\000\n\193\nJ\000\000\000\000\n\193\000\000\000\000\000\000\n\193\000\000\000\000\000\000\nN\nb\nf\000\000\nj\nr\n~\n\193\000\000\n\193\000\000\n\193\000\000\n\193\000\000\000\000\n\134\n\138\000\000\000\000\000\000\021\210\000\000\000\000\000\000\000\000\n\193\000\000\000\000\000\000\000\000\000\000\000\000\n\193\n\193\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000$&\n\193\n\142\000\000\n\193\000\000\000\000\000\000\007\166\000\000\n\193\n\193\000\242\000\000\000\000\000\000\000\000\000\000\000\000\n\193\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\193\000\000\000\000\n\193\000\000\000\000\000\000\000\000\000\000\n\193\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\n\n\193\000\000\n\193\n\193\003v\n\193\n\193\000\000\000\000\000\000\000\000\000\000\000\000\001\014\001\018\001\022\001\026\001\030\n\193\001\"\n\193\000\000\000\000\n\193\000\000\000\000\n\193\000\000\000\000\001&\000\000\001*\001.\000\000\002\130\000\000\000\000\000\000\0012\n\193\n\193\0016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t%\000\000\000\000\019\137\t%\000\000\000\000\019\137\t%\000\000\000\000\001:\001>\001B\001F\001J\000\000\000\000\019\137\t%\000\000\t%\001N\t%\019\137\t%\000\000\000\000\000\000\001R\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\137\t%\000\000\001V\000\000\000\000\000\000\019\137\t%\t%\001Z\000\000\000\000\000\000\000\000\000\000\000\000\002\238\019\137\t%\000\000\019\137\t%\001\150.N\000\000\000\000\019\137\t%\t%\001\154\000\000\001\158\000\000\001\162\001\166\019\137\t%\001\170\000\000\001\174\001\178\000\000\000\000\000\000\019\137\t%\000\000\019\137\t%\000\000\000\000\000\000\000\000\019\137\t%\b\130\003\154\000\000\000\000\003j\000\000\b\162\000\000\000\000\bf\019\137\t%\019\137\t%\t%\019\137\t%\t%\000\000\000\000\001\234\000\000\000\000\000\000/2\000\000\000\000\b\190\000\000\t%\000\000\t%\000\000\000\000\t%\000\000\019\137\t%\000\000\000\000\000\000\000\000\000\000\b\210\000\000\000\000\b\230\000\000\001\190\000\000\t%\t%\000\000\000\000\003\138\000\000\000\000\n\n\n\014\000\000\000\000\000\000\n\018\000\000\n\026\n>'v\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\nN\nb\nf\000\000\nj\nr\n~\000\000\000\000\003\150\003\154\000\000\000\000\003j\000\000\016~\n\134\n\138\bf\0071\011\002\000\000\000\000\0071\t\197\000\000\000\000\000\000\000\000\001\234\000\000'~\000\000\bn\0071\000\000\000\000\000\000\0071\000\000\0071\000\000\000\000\000\000\br\n\142\tv\000\000\000\000\000\000\000\000\007\166\000\000\0071\000\000\t\182\000\000\001\190\000\000\000\000\0071\000\000\016\226\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\0071\000\000\000\000\000\000\nJ\000\000\0071\tN\000\242\000\000\000\000\000\000\000\000\000\000\000\000\0071\nb\nf\000\000\r\206\r\222\b\130\003\154\000\000\0071\003j\000\000\b\134\000\000\000\000\bf\n\134\n\138\000\000\000\000\000\000\000\000\000\000\012\002\000\000\000\000\001\234\r\226\000\000\r\230\0071\000\000\0071\b\190\000\000\0071\0071\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\142\r\238\000\000\016\170\b\210\015\250\007\166\b\230\000\000\001\190\000\000\0071\000\000\000\000\000\000\003\138)\026\000\000\n\n\n\014\004F\000\000\000\000\n\018\0071\n\026\n>\nn\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\nN\nb\nf\000\000\nj\nr\n~\000\000\000\000\b\130\003\154\000\000\000\000\003j\000\000\n\174\n\134\n\138\bf\000\000\011\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\234\000\000\000\000\000\000\000\000\000\000\000\000\b\190\000\000\000\000\012^\000\000\000\000\000\000\000\000\000\000\n\142\000\000\000\000\000\000\000\000\000\000\007\166\b\210\000\000\000\000\b\230\000\000\001\190\000\000\000\000\000\000\000\000\000\000\003\138\000\000\000\000\n\n\n\014\000\000\000\000\000\000\n\018\000\000\n\026\n>\n\202\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\nN\nb\nf\000\000\nj\nr\n~\000\000\000\000\b\130\003\154\000\000\000\000\003j\000\000\0112\n\134\n\138\bf\000\000\011\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\234\000\000\012\030\000\000\000\000\000\000\000\000\b\190\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\142\000\000\000\000\000\000\000\000\000\000\007\166\b\210\000\000\000\000\b\230\000\000\001\190\000\000\000\000\000\000\000\000\000\000\003\138\000\000\000\000\n\n\n\014\000\000\000\000\000\000\n\018\000\000\n\026\n>\011N\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\nN\nb\nf\000\000\nj\nr\n~\000\000\000\000\b\130\003\154\000\000\000\000\003j\000\000\011\162\n\134\n\138\bf\000\000\011\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\234\000\000\011b\000\000\000\000\000\000\000\000\b\190\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\142\000\000\000\000\000\000\000\000\000\000\007\166\b\210\000\000\000\000\b\230\000\000\001\190\000\000\000\000\000\000\000\000\000\000\003\138\000\000\000\000\n\n\n\014\000\000\000\000\000\000\n\018\000\000\n\026\n>\011\190\000\000\020y\nJ\000\000\000\000\020y\000\000\000\000\000\000\020y\000\000\000\000\000\000\nN\nb\nf\000\000\nj\nr\n~\020y\000\000\020y\000\000\020y\000\000\020y\000\000\000\000\n\134\n\138\000\000\000\000\011\002\000\000\000\000\000\000\000\000\000\000\020y\000\000\000\000\000\000\000\000\011\198\000\000\020y\000\000\020y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020y\n\142\000\000\020y\000\000\000\000\000\000\007\166\000\000\020y\020y\020y\000\000\001\226\001\230\000\000\000\000\000\000\020y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020y\000\000\000\000\020y\000\000\000\000\001\234\002&\000\000\020y\000\000\000\000\020u\000\000\000\000\000\000\020u\000\000\000\000\000\000\020u\020y\000\000\020y\020y\000\000\020y\020y\000\000\000\000\000\000\020u\003~\020u(j\020u\000\000\020u\003z\000\000\003\138\003\186\003\198\020y\000\000\000\000\000\000\020y\003\210\000\000\020u\000\000\000\000\000\000\000\000\020y\020y\020u\005\206\020u\020y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020u\000\000\003\214\020u\003\230\000\000\000\000\000\000\007\169\020u\020u\020u\000\000\000\000\000\000\000\000\000\000\000\000\020u\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020u\000\000(\130\020u\000\000\000\000\000\000\000\000\000\000\020u\000\000\000\000\012\213\000\000\000\000\000\000\012\213\000\000\000\000\000\000\012\213\020u\000\000\020u\020u\000\000\020u\020u\000\000\000\000\000\000\012\213\000\000\012\213\000\000\012\213\000\000\012\213\000\000\016\170\000\000\000\000\000\000\020u\000\000\000\000\000\000\020u\000\000\000\000\012\213\000\000\000\000\000\000\000\000\020u\020u\012\213\000\000\012\213\020u\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012\213\000\000\000\000\012\213\000\000\000\000\000\000\000\000\000\000\012\213\012\213\000\242\000\000\000\000\000\000\000\000\000\000\000\000\012\213\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012\213\000\000\000\000\012\213\000\000\000\000\000\000\000\000\000\000\012\213\000\000\000\000\000\000\003\150\003\154\000\000\000\000\003j\000\000\000\000\000\000\012\213\bf\012\213\012\213\000\000\012\213\012\213\t\237\000\000\000\000\000\000\000\000\001\234\000\000\000\000\000\000\bn\000\000\012\213\000\000\000\000\000\000\012\213\000\000\000\000\000\000\012\213\br\000\000\tv\000\000\000\000\000\000\000\000\012\213\012\213\000\000\000\000\t\182\012\213\001\190\000\000\000\000\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\000\000\000\000\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\nb\nf\n\193\r\206\r\222\001\230\n\193\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\193\n\134\n\138\n\193\000\000\000\000\001\230\n\193\000\000\n\193\000\000\000\000\r\226\000\000\r\230\n\193\000\000\000\000\n\193\000\000\000\000\000\000\n\193\000\000\n\193\000\000\000\000\000\000\000\000\n\193\n\142\r\238\000\000\000\000\000\000\015\250\007\166\n\193\003\226\000\000\n\193\000\000\000\000\n\193\n\193\000\000\n\193\000\000\000\000\n\193\n\193\n\193\000\000\003\226\000\000\n\193\000\000\000\000\n\193\000\000\000\000\000\000\000\000\000\000\n\193\n\193\n\193\n\193\n\193\000\000\n\193\000\000\000\000\n\193\000\000\000\000\005v\000\000\000\000\000\000\000\000\000\000\n\193\n\193\000\000\n\193\000\000\000\000\n\193\000\000\n\193\005v\000\000\n\193\n\193\000\000\000\000\004\149\000\000\000\000\001\230\004\149\000\000\n\193\000\000\n\193\n\193\000\000\n\193\n\193\000\000\000\000\004\149\000\000\n\193\000\000\004\149\000\000\004\149\n\193\000\000\n\193\002\130\000\000\000\000\000\000\000\000\n\193\000\000\n\193\000\000\004\149\000\000\000\000\n\193\000\000\000\000\002\130\004\149\000\000\n\193\000\000\n\193\000\000\000\000\000\000\000\000\003\226\000\000\004\149\000\000\000\000\004\149\000\000\000\000\000\000\000\000\000\000\004\149\004\149\004\149\000\000\000\000\000\000\000\000\000\000\000\000\004\149\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\149\004\149\000\000\004\149\000\000\000\000\000\000\000\000\000\000\005v\000\000\000\000\000\000\000\000\000\000\000\000\004\145\000\000\000\000\001\230\004\145\004\149\000\000\004\149\000\000\000\000\004\149\004\149\n\193\000\000\000\000\004\145\000\000\000\000\000\000\004\145\000\000\004\145\000\000\004\149\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\149\000\000\000\000\004\145\000\000\004\149\000\000\000\000\002\130\000\000\004\145\000\000\n\193\004\149\000\000\000\000\000\000\000\000\000\000\003\226\000\000\004\145\000\000\000\000\004\145\000\000\000\000\000\000\000\000\000\000\004\145\004\145\004\145\000\000\000\000\000\000\000\000\000\000\000\000\004\145\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\145\004\145\000\000\004\145\000\000\000\000\000\000\000\000\000\000\005v\000\000\b\173\000\000\000\000\000\000\b\173\000\000\000\000\000\000\b\173\000\000\004\145\000\000\004\145\000\000\000\000\004\145\004\145\000\000\000\000\b\173\000\000\b\173\000\000\b\173\000\000\b\173\000\000\000\000\004\145\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\145\000\000\b\173\000\000\000\000\004\145\000\000\000\000\002\130\b\173\000\000\b\173\000\000\004\145\000\000\000\000\017z\000\000\000\000\000\000\b\173\000\000\000\000\b\173\000\000\000\000\000\000\000\000\000\000\b\173\b\173\000\242\000\000\000\000\000\000\b\130\003\154\000\000\b\173\003j\000\000'\142\000\000\000\000\bf\000\000\000\000\b\173\000\000\000\000\b\173\000\000\000\000\000\000\000\000\001\234\b\173\000\000\000\000\000\000\000\000\000\000\b\190\000\000\000\000\000\000\000\000\000\000\b\173\000\000\b\173\b\173\000\000\b\173\b\173\000\000\000\000\000\000\b\210\000\000\000\000\b\230\000\000\001\190\000\000\000\000\000\000\000\000\000\000\003\138\b\173\000\000\n\n\n\014\b\173\000\000\000\000\n\018\000\000\n\026\n>'\170\b\173\b\173\nJ\004\237\000\000\b\173\000\000\004\237\000\000\000\000\000\000\004\237\000\000\nN\nb\nf\000\000\nj\nr\n~\000\000\000\000\004\237\000\000\004\237\000\000\004\237\000\000\004\237\n\134\n\138\000\000\000\000\011\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\237\000\000\000\000'\178\000\000\000\000\000\000\004\237\004\237\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\142\004\237\000\000\000\000\004\237\000\000\007\166\000\000\000\000\000\000\004\237\004\237\000\242\000\000\000\000\000\000\000\000\000\000\000\000\004\237\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\237\000\000\000\000\004\237\000\000\000\000\000\000\000\000\000\000\004\237\000\000\000\000\000\000\000\000\000\000\000\000\001\n\000\000\000\000\000\000\000\000\004\237\000\000\004\237\004\237\000\000\004\237\004\237\000\000\000\000\001\014\001\018\001\022\001\026\001\030\000\000\001\"\000\000\000\000\004\237\000\000\004\237\000\000\000\000\004\237\000\000\001&\004\237\001*\001.\000\000\000\000\000\000\000\000\000\000\0012\000\000\000\000\0016\000\000\004\237\004\237\000\000\000\000\000\000\000\000\000\000\004\245\000\000\000\000\019m\004\245\000\000\000\000\019m\004\245\000\000\000\000\001:\001>\001B\001F\001J\000\000\000\000\019m\004\245\000\000\004\245\001N\004\245\019m\004\245\000\000\000\000\000\000\001R\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019m\004\245\000\000\001V\000\000\000\000\000\000\019m\004\245\004\245\001Z\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019m\004\245\000\000\019m\004\245\001\150.j\000\000\000\000\019m\004\245\004\245\001\154\000\000\001\158\000\000\001\162\001\166\019m\004\245\001\170\000\000\001\174\001\178\000\000\000\000\000\000\019m\004\245\000\000\019m\004\245\000\000\000\000\000\000\000\000\019m\004\245\b\130\003\154\000\000\000\000\003j\000\000\t\238\000\000\000\000\bf\019m\004\245\019m\004\245\004\245\019m\004\245\004\245\000\000\000\000\001\234\000\000\000\000\000\000/2\000\000\000\000\b\190\000\000\004\245\000\000\004\245\000\000\000\000\004\245\000\000\019m\004\245\000\000\000\000\000\000\000\000\000\000\b\210\000\000\000\000\b\230\000\000\001\190\000\000\004\245\002B\000\000\000\000\003\138\000\000\000\000\n\n\n\014\000\000\000\000\000\000\n\018\000\000\n\026\n>\012j\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\nN\nb\nf\000\000\nj\nr\n~\000\000\000\000\b\130\003\154\000\000\000\000\003j\000\000\012\150\n\134\n\138\bf\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\234\000\000\012r\000\000\000\000\000\000\000\000\b\190\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\142\000\000\000\000\000\000\000\000\000\000\007\166\b\210\000\000\000\000\b\230\000\000\001\190\000\000\000\000\000\000\000\000\000\000\003\138\000\000\000\000\n\n\n\014\000\000\000\000\000\000\n\018\000\000\n\026\n>\012\178\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\nN\nb\nf\000\000\nj\nr\n~\000\000\000\000\b\130\003\154\000\000\000\000\003j\000\000\012\202\n\134\n\138\bf\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\234\000\000\012\186\000\000\000\000\000\000\000\000\b\190\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\142\000\000\000\000\000\000\000\000\000\000\007\166\b\210\000\000\000\000\b\230\000\000\001\190\000\000\000\000\000\000\000\000\000\000\003\138\000\000\000\000\n\n\n\014\000\000\000\000\000\000\n\018\000\000\n\026\n>\012\230\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\nN\nb\nf\000\000\nj\nr\n~\000\000\000\000\b\130\003\154\000\000\000\000\003j\000\000\r\002\n\134\n\138\bf\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\234\000\000\012\238\000\000\000\000\000\000\000\000\b\190\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\142\000\000\000\000\000\000\000\000\000\000\007\166\b\210\000\000\000\000\b\230\000\000\001\190\000\000\000\000\000\000\000\000\000\000\003\138\000\000\000\000\n\n\n\014\000\000\000\000\000\000\n\018\000\000\n\026\n>\r\030\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\nN\nb\nf\000\000\nj\nr\n~\000\000\000\000\b\130\003\154\000\000\000\000\003j\000\000\b\134\n\134\n\138\bf\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\234\000\000\r&\000\000\000\000\000\000\000\000\b\190\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\142\000\000\000\000\000\000\000\000\000\000\007\166\b\210\000\000\000\000\014:\000\000\001\190\000\000\000\000\000\000\000\000\000\000\003\138\000\000\000\000\n\n\n\014\000\000\000\000\000\000\n\018\000\000\n\026\n>\nn\000\000\016~\nJ\000\000\000\000\b\165\000\000\000\000\000\000\b\165\000\000\000\000\000\000\nN\nb\nf\000\000\nj\nr\n~\b\165\000\000\b\165\000\000\b\165\000\000\b\165\000\000\000\000\n\134\n\138\000\000\000\000\011\002\000\000\000\000\000\000\000\000\000\000\b\165\000\000\000\000\000\000\000\000\000\000\000\000\b\165\000\000\016\226\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\165\n\142\000\000\b\165\000\000\000\000\000\000\007\166\000\000\b\165\b\165\000\242\000\000\000\000\000\000\000\000\000\000\000\000\b\165\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\165\000\000\000\000\b\165\000\000\000\000\000\000\000\000\000\000\b\165\000\000\000\000\020\133\000\000\000\000\000\000\020\133\000\000\000\000\000\000\020\133\b\165\000\000\b\165\b\165\000\000\b\165\b\165\000\000\000\000\000\000\020\133\000\000\020\133\000\000\020\133\000\000\020\133\000\000\000\000\000\000\000\000\000\000\b\165\000\000\000\000\000\000\b\165\000\000\000\000\020\133\000\000\000\000\000\000\000\000\b\165\004F\020\133\000\000\020\133\b\165\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\133\000\000\000\000\020\133\000\000\000\000\000\000\000\000\000\000\020\133\020\133\000\242\000\000\000\000\000\000\000\000\000\000\000\000\020\133\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\133\000\000\000\000\020\133\000\000\000\000\000\000\000\000\000\000\020\133\000\000\000\000\016~\000\000\000\000\000\000\b\205\000\000\000\000\000\000\b\205\020\133\000\000\020\133\020\133\000\000\020\133\020\133\000\000\000\000\000\000\b\205\000\000\b\205\000\000\b\205\000\000\b\205\000\000\000\000\000\000\000\000\000\000\020\133\000\000\000\000\000\000\020\133\000\000\000\000\b\205\000\000\000\000\000\000\000\000\020\133\004F\b\205\000\000\016\226\020\133\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\205\000\000\000\000\b\205\000\000\000\000\000\000\000\000\000\000\b\205\b\205\000\242\000\000\000\000\000\000\000\000\000\000\000\000\b\205\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\205\000\000\000\000\b\205\000\000\000\000\000\000\000\000\000\000\b\205\000\000\000\000\016~\000\000\000\000\000\000\b\197\000\000\000\000\000\000\b\197\b\205\000\000\b\205\b\205\000\000\b\205\b\205\000\000\000\000\000\000\b\197\000\000\b\197\000\000\b\197\000\000\b\197\000\000\000\000\000\000\000\000\000\000\b\205\000\000\000\000\000\000\b\205\000\000\000\000\b\197\000\000\000\000\000\000\000\000\b\205\004F\b\197\000\000\016\226\b\205\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\197\000\000\000\000\b\197\000\000\000\000\000\000\000\000\000\000\b\197\b\197\000\242\000\000\000\000\000\000\000\000\000\000\000\000\b\197\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\197\000\000\000\000\b\197\000\000\000\000\000\000\000\000\000\000\b\197\000\000\000\000\b\201\000\000\000\000\000\000\b\201\000\000\000\000\000\000\b\201\b\197\000\000\b\197\b\197\000\000\b\197\b\197\000\000\000\000\000\000\b\201\000\000\b\201\000\000\b\201\000\000\b\201\000\000\000\000\000\000\000\000\000\000\b\197\000\000\000\000\000\000\b\197\000\000\000\000\b\201\000\000\000\000\000\000\000\000\b\197\004F\b\201\000\000\016\218\b\197\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\201\000\000\000\000\b\201\000\000\000\000\000\000\000\000\000\000\b\201\b\201\b\201\000\000\000\000\000\000\000\000\000\000\000\000\b\201\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\201\000\000\000\000\b\201\000\000\000\000\000\000\000\000\000\000\b\201\000\000\000\000\b\209\000\000\000\000\000\000\b\209\000\000\000\000\000\000\b\209\b\201\000\000\b\201\b\201\000\000\b\201\b\201\000\000\000\000\000\000\b\209\000\000\b\209\000\000\b\209\000\000\b\209\000\000\000\000\000\000\000\000\000\000\b\201\000\000\000\000\000\000\b\201\000\000\000\000\b\209\000\000\000\000\000\000\000\000\b\201\b\201\b\209\000\000\016\218\b\201\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\209\000\000\000\000\b\209\000\000\000\000\000\000\000\000\000\000\b\209\b\209\b\209\000\000\000\000\000\000\000\000\000\000\000\000\b\209\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\209\000\000\000\000\b\209\000\000\000\000\000\000\000\000\000\000\b\209\000\000\000\000\020\137\000\000\000\000\000\000\020\137\000\000\000\000\000\000\020\137\b\209\000\000\b\209\b\209\000\000\b\209\b\209\000\000\000\000\000\000\020\137\000\000\020\137\000\000\020\137\000\000\020\137\000\000\000\000\000\000\000\000\000\000\b\209\000\000\000\000\000\000\b\209\000\000\000\000\020\137\000\000\000\000\000\000\000\000\b\209\b\209\020\137\000\000\016\226\b\209\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\137\000\000\000\000\020\137\000\000\000\000\000\000\000\000\000\000\020\137\020\137\000\242\000\000\000\000\000\000\000\000\000\000\000\000\020\137\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\137\000\000\000\000\020\137\000\000\000\000\000\000\000\000\000\000\020\137\000\000\000\000\b\213\000\000\000\000\000\000\b\213\000\000\000\000\000\000\b\213\020\137\000\000\020\137\020\137\000\000\020\137\020\137\000\000\000\000\000\000\b\213\000\000\b\213\000\000\b\213\000\000\b\213\000\000\000\000\000\000\000\000\000\000\020\137\000\000\000\000\000\000\020\137\000\000\000\000\b\213\000\000\000\000\000\000\000\000\020\137\004F\b\213\000\000\b\213\020\137\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\213\000\000\000\000\b\213\000\000\000\000\000\000\000\000\000\000\b\213\b\213\b\213\000\000\000\000\000\000\000\000\000\000\000\000\b\213\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\213\000\000\000\000\b\213\000\000\000\000\000\000\000\000\000\000\b\213\000\000\000\000\b\169\000\000\000\000\000\000\b\169\000\000\000\000\000\000\b\169\b\213\000\000\b\213\b\213\000\000\b\213\b\213\000\000\000\000\000\000\b\169\000\000\b\169\000\000\b\169\000\000\b\169\000\000\000\000\000\000\000\000\000\000\b\213\000\000\000\000\000\000\b\213\000\000\000\000\b\169\000\000\000\000\000\000\000\000\b\213\b\213\b\169\000\000\016\218\0176\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\169\000\000\000\000\b\169\000\000\000\000\000\000\000\000\000\000\b\169\b\169\b\169\000\000\000\000\000\000\000\000\000\000\000\000\b\169\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\169\000\000\000\000\b\169\000\000\000\000\000\000\000\000\000\000\b\169\000\000\000\000\b\189\000\000\000\000\000\000\b\189\000\000\000\000\000\000\b\189\b\169\000\000\b\169\b\169\000\000\b\169\b\169\000\000\000\000\000\000\b\189\000\000\b\189\000\000\b\189\000\000\b\189\000\000\000\000\000\000\000\000\000\000\b\169\000\000\000\000\000\000\b\169\000\000\000\000\b\189\000\000\000\000\000\000\000\000\b\169\b\169\b\189\000\000\016\226\b\169\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\189\000\000\000\000\b\189\000\000\000\000\000\000\000\000\000\000\b\189\b\189\000\242\000\000\000\000\000\000\000\000\000\000\000\000\b\189\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\189\000\000\000\000\b\189\000\000\000\000\000\000\000\000\000\000\b\189\000\000\000\000\b\193\000\000\000\000\000\000\b\193\000\000\000\000\000\000\b\193\b\189\000\000\b\189\b\189\000\000\b\189\b\189\000\000\000\000\000\000\b\193\000\000\b\193\000\000\b\193\000\000\b\193\000\000\000\000\000\000\000\000\000\000\b\189\000\000\000\000\000\000\b\189\000\000\000\000\b\193\000\000\000\000\001\226\001\230\b\189\004F\b\193\000\000\016\218\b\189\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\193\000\000\000\000\b\193\000\000\001\234\001\238\000\000\000\000\b\193\b\193\b\193\000\000\000\000\000\000\000\000\000\000\000\000\b\193\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\193\000\000\000\000\b\193\030\238\000\000\003\226\000\000\000\000\b\193\003z\000\000\003\138\003\186\003\198\000\000\000\000\000\000\000\000\000\000\003\210\b\193\030f\b\193\b\193\000\000\b\193\b\193\000\000\000\000\b\130\003\154\000\000\000\000\003j\000\000\t\210\000\000\000\000\bf\000\000\000\000\003\214\b\193\003\230\t\201\000\000\b\193\000\000\030\182\001\234\000\000\000\000\000\000\000\000\b\193\b\193\b\190\000\000\000\000\b\193\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\210\000\000\000\000\b\230\000\000\001\190\000\000\000\000\000\000\000\000\000\000\003\138\000\000\000\000\n\n\n\014\000\000\000\000\000\000\n\018\000\000\n\026\n>\012\246\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\nN\nb\nf\000\000\nj\nr\n~\000\000\000\000\b\130\003\154\000\000\000\000\003j\000\000\022\178\n\134\n\138\bf\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\234\000\000\000\000\000\000\000\000\000\000\000\000\b\190\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\142\000\000\000\000\000\000\000\000\000\000\007\166\b\210\000\000\000\000\b\230\000\000\001\190\000\000\000\000\000\000\000\000\000\000\003\138\000\000\000\000\n\n\n\014\000\000\000\000\000\000\n\018\000\000\n\026\n>\022\206\000\000\000\000\nJ\000\000\000\000\000\193\000\000\000\000\000\000\000\193\000\000\000\000\000\000\nN\nb\nf\000\000\nj\nr\n~\000\193\000\000\000\193\000\000\000\193\000\000\000\193\000\000\000\000\n\134\n\138\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\193\000\000\000\000\000\000\000\000\022\214\000\000\000\193\000\000\000\000\000\000\000\000\000\193\000\000\000\000\000\000\000\000\000\000\000\193\n\142\000\000\000\193\000\000\000\000\000\000\007\166\000\000\000\193\000\193\000\242\000\000\000\000\000\000\000\000\000\000\000\000\000\193\000\000\000\193\000\193\000\000\000\000\000\000\000\000\000\000\000\193\000\000\000\000\000\193\000\000\000\000\000\000\000\000\000\000\000\193\000\250\000\000\000\000\000\000\t*\001\005\000\000\000\000\000\000\001\005\000\000\000\193\000\000\000\193\000\000\007e\000\193\000\193\000\000\000\000\001\005\tZ\001\005\000\000\001\005\000\000\001\005\000\000\000\000\000\193\000\000\000\000\000\000\000\000 N\000\000\000\193\000\193\000\000\001\005\000\000 v\000\000\000\000\000\000\000\000\001\005\000\000\000\193\000\000\000\193\001\005&\022\000\000\000\000 \218\000\000\001\005\000\000\000\000\001\005 \242\000\000\000\000\000\000\000\000\001\005\001\005\000\242\000\000 \250\000\000\000\000\000\000\000\000\001\005\000\000\001\005\001\005!\n\000\000\000\000\000\000\000\000\001\005\000\000\000\000\001\005\000\000\000\000\000\000\000\000\000\000\001\005\000\000\000\000\000\000\000\000\000\000\000\201!\018\000\000!R\000\201\000\000\001\005\000\000\001\005\000\000\000\000\001\005\001\005\000\000\000\000\000\201\000\000\000\201\000\000\000\201\000\000\000\201\000\000\000\000\001\005\000\000\000\000!\154\000\000\000\000\000\000\001\005\001\005\000\000\000\201\000\000\000\000\000\000\000\000\000\000\000\000\000\201\000\000\001\005\000\000\001\005\000\201\000\000\000\000\000\000\000\000\000\000\000\201\000\000\000\000\000\201\000\000\000\000\000\000\000\000\000\000\000\201\000\201\000\242\000\000\000\000\000\000\000\000\000\000\000\000\000\201\000\000\000\201\000\201\000\000\000\000\000\000\000\000\000\000\000\201\000\000\000\000\000\201\000\000\000\000\000\000\000\000\000\000\000\201\000\000\000\000\000\000\000\000\000\000\000\197\000\000\000\000\000\000\000\197\000\000\000\201\000\000\000\201\000\000\000\000\000\201\000\201\000\000\000\000\000\197\000\000\000\197\000\000\000\197\000\000\000\197\000\000\000\000\000\201\000\000\000\000\000\000\000\000\000\000\000\000\000\201\000\201\000\000\000\197\000\000\000\000\000\000\000\000\000\000\000\000\000\197\000\000\000\201\000\000\000\201\000\197\000\000\000\000\000\000\000\000\000\000\000\197\000\000\000\000\000\197\000\000\000\000\000\000\000\000\000\000\000\197\000\197\000\242\000\000\000\000\000\000\000\000\000\000\000\000\000\197\000\000\000\197\000\197\000\000\000\000\000\000\000\000\000\000\000\197\001\221\000\000\000\197\000\000\001\221\000\000\000\000\000\000\000\197\000\000\000\000\000\000\000\000\000\000\000\000\001\221\000\000\000\000\000\000\001\221\000\197\001\221\000\197\000\000\000\000\000\197\000\197\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\221\000\000\001\221\000\000\000\197\000\000\000\000\001\221\000\000\000\000\000\000\000\197\000\197\000\000\007\221\000\000\000\000\000\000\001\221\000\000\000\000\001\221\000\000\000\197\000\000\000\197\000\000\001\221\001\221\001\221\000\000\000\000\000\000\000\000\000\000\000\000\001\221\000\000\000\000\000\000\007\213\000\000\000\000\019\221\007\213\001\221\000\000\000\000\001\221\000\000\000\000\000\000\019\221\000\000\001\221\007\213\000\000\007\213\000\000\007\213\000\000\007\213\000\000\000\000\000\000\000\000\001\221\000\000\001\221\000\000\000\000\001\221\001\221\000\000\007\213\000\000\000\000\000\000\000\000\000\000\007\221\007\213\000\000\019\221\001\221\000\000\000\000\000\000\000\000\000\000\019\221\001\221\001\221\000\000\000\000\007\213\000\000\001\221\000\000\000\000\000\000\007\213\007\213\007\213\000\000\001\221\000\000\000\000\000\000\000\000\007\213\000\000\002V\000\000\000\000\000\000\004\221\000\000\000\000\007\213\004\221\000\000\002^\000\000\000\000\000\000\000\000\000\000\019\221\000\000\000\000\004\221\000\000\000\000\000\000\004\221\000\000\004\221\000\000\000\000\007\213\000\000\007\213\007\213\000\000\007\213\007\213\000\000\000\000\000\000\004\221\000\000\000\000\000\000\000\000\000\000\000\000\004\221\002\234\000\000\000\000\000\000\000\000\000\000\000\000%&\007\213\000\000\004\221\000\000\000\000\004\221\000\000\000\000\000\000\000\000\000\000\004\221\004\221\007\213\000\000\000\000\000\000\000\000\000\000\000\000\004\221\000\000\000\000\000\000\000\000\000\000\0071\000\000\000\000\004\221\0071\000\000\004\221\000\000\000\000\000\000\000\000\000\000\004\221\000\000\000\000\0071\000\000\000\000\000\000\0071\000\000\0071\000\000\000\000\004\221\000\000\004\221\004\221\000\000\004\221\004\221\000\000\000\000\000\000\0071\000\000\000\000\000\000\000\000\000\000\000\000\0071\004\221\000\000\000\000\000\000\0071\004\221\003\242\000\000\004\221\000\000\0071\000\000\000\000\0071\000\000\000\000\000\000\000\000\000\000\0071\tN\004\221\002\250\000\000\000\000\000\000\000\000\000\000\0071\000\000\0071\0071\000\000\000\000\000\000\000\000\000\000\0071\0071\000\000\0071\000\000\000\000\000\000\000\000\000\000\0071\002\001\000\000\000\000\000\000\002\001\000\000\000\000\000\000\000\000\000\000\000\000\0071\rY\0071\000\000\002\001\0071\0071\000\000\002\001\000\000\002\001\000\000\000\000\000\000\003\254\000\000\000\000\000\000\0071\000\000\000\000\000\000\000\000\002\001\000\000\000\000\0071\000\000\000\000\000\000\002\001&\226\002\001\000\000\0071\000\000\000\000\000\000\000\000\0071\000\000\002\001\000\000\000\000\002\001\000\000\000\000\000\000\000\000\000\000\002\001\002\001\002\001\000\000\000\000\000\000\000\000\000\000\000\000\002\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\001\002\001\000\000\002\001\000\000\000\000\000\000\000\000\000\000\002\001\002\t\000\000\000\000\000\000\002\t\000\000\000\000\000\000\000\000\000\000\000\000\002\001\ra\002\001\000\000\002\t\002\001\002\001\000\000\002\t\000\000\002\t\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\001\000\000\000\000\000\000\000\000\002\t\000\000\000\000\002\001\000\000\000\000\000\000\002\t\002\001\002\t\000\000\000\000\000\000\000\000\000\000\000\000\002\001\000\000\002\t\000\000\000\000\002\t\000\000\000\000\000\000\000\000\000\000\002\t\002\t\002\t\000\000\000\000\000\000\000\000\000\000\000\000\002\t\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\t\002\t\000\000\002\t\000\000\000\000\000\000\000\000\000\000\002\t\002\005\000\000\000\000\000\000\002\005\000\000\000\000\000\000\000\000\000\000\000\000\002\t\r]\002\t\000\000\002\005\002\t\002\t\000\000\002\005\000\000\002\005\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\t\000\000\000\000\000\000\000\000\002\005\000\000\000\000\002\t\000\000\000\000\000\000\002\005\002\t\002\005\000\000\000\000\000\000\000\000\000\000\000\000\002\t\000\000\002\005\000\000\000\000\002\005\000\000\000\000\000\000\000\000\000\000\002\005\002\005\002\005\000\000\000\000\000\000\000\000\000\000\000\000\002\005\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\005\002\005\000\000\002\005\000\000\000\000\000\000\000\000\000\000\002\005\001\253\000\000\000\000\000\000\001\253\000\000\000\000\000\000\000\000\000\000\000\000\002\005\rU\002\005\000\000\001\253\002\005\002\005\000\000\001\253\000\000\001\253\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\005\000\000\000\000\000\000\000\000\001\253\000\000\000\000\002\005\000\000\000\000\000\000\001\253\002\005\001\253\000\000\000\000\000\000\000\000\000\000\000\000\002\005\000\000\001\253\000\000\000\000\001\253\000\000\000\000\000\000\000\000\000\000\001\253\001\253\001\253\000\000\000\000\000\000\000\000\000\000\000\000\001\253\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\253\001\253\000\000\001\253\000\250\000\000\000\000\000\000\t*\001\253\000\000\000\000\000\000\000\000\004\141\000\000\000\000\001\230\004\141/\170\000\000\001\253\000\000\001\253\000\000\tZ\001\253\001\253\000\000\004\141\000\000\000\000\000\000\004\141\000\000\004\141\000\000\000\000 N\001\253\000\000\000\000\000\000\000\000\000\000 v\000\000\001\253\004\141\000\000\000\000\000\000\001\253\000\000\000\000\004\141&\022\000\000\000\000 \218\001\253\000\000\000\000\000\000\003\226 \242\004\141\000\000\000\000\004\141\000\000\000\000\000\000\000\000 \250\004\141\004\141\004\141\000\000\000\000\000\000\000\000\000\000!\n\004\141\000\000/:\000\000\000\000\000\000\000\000\000\000/Z\004\141\004\141\000\000\004\141\000\000\000\000\000\000\000\000\000\000\005v\000\000!\018\000\000!R\004\137\000\000\007m\001\230\004\137\000\000\000\000\004\141\000\000\004\141\000\000\000\000\004\141\004\141\000\000\004\137\000\000\000\000\000\000\004\137\000\000\004\137\000\000!\154\000\000\004\141\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\141\004\137\000\000\000\000\000\000\004\141\000\000\000\000\004\137\000\000\000\000\000\000\000\000\004\141\000\000\000\000\000\000\003\226\000\000\004\137\000\000\000\000\004\137\000\000\000\000\000\000\000\000\000\000\004\137\004\137\004\137\000\000\000\000\000\000\000\000\000\000\000\000\004\137\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\137\004\137\000\000\004\137\000\000\000\000\000\000\000\000\000\000\005v\011\177\000\000\000\000\000\000\011\177\000\000\000\000\000\000\000\000\000\000\000\000\004\137\000\000\004\137\000\000\011\177\004\137\004\137\000\000\011\177\000\000\011\177\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\137\000\000\000\000\000\000\000\000\011\177\000\000\000\000\004\137\000\000\000\000\000\000\011\177\004\137\000\000\000\000\000\000\011\177\000\000\000\000\000\000\004\137\000\000\011\177\000\000\000\000\011\177\000\000\000\000\000\000\000\000\000\000\011\177\011\177\000\242\000\000\000\000\000\000\000\000\000\000\000\000\011\177\000\000\011\177\011\177\000\000\000\000\011\173\000\000\000\000\011\177\011\173\000\000\011\177\000\000\000\000\000\000\000\000\000\000\011\177\000\000\000\000\011\173\000\000\000\000\000\000\011\173\000\000\011\173\000\000\000\000\011\177\000\000\011\177\011\177\000\000\011\177\011\177\000\000\000\000\000\000\011\173\000\000\000\000\000\000\000\000\000\000\000\000\011\173\011\177\000\000\000\000\000\000\011\173\000\000\000\000\000\000\011\177\000\000\011\173\000\000\000\000\011\173\000\000\000\000\011\177\000\000\000\000\011\173\011\173\000\242\000\000\000\000\000\000\000\000\000\000\000\000\011\173\000\000\011\173\011\173\000\000\000\000\001U\000\000\000\000\011\173\001U\000\000\011\173\000\000\000\000\000\000\000\000\000\000\011\173\000\000\000\000\001U\000\000\001U\000\000\001U\000\000\001U\000\000\000\000\011\173\000\000\011\173\011\173\000\000\011\173\011\173\000\000\000\000\000\000\001U\000\000\000\000\000\000\000\000\000\000\000\000\001U\011\173\000\000\000\000\000\000\001U\000\000\000\000\000\000\011\173\000\000\001U\000\000\000\000\001U\000\000\000\000\011\173\000\000\000\000\001U\001U\000\242\000\000\000\000\000\000\000\000\000\000\000\000\001U\000\000\000\000\001U\000\000\000\000\000\000\000\000\000\000\001U\000\000\000\000\001U\000\000\000\000\000\000\000\000\000\000\001U\000\000\000\000\000\000\000\000\000\000\001Q\000\000\000\000\000\000\001Q\000\000\001U\000\000\001U\001U\000\000\001U\001U\000\000\000\000\001Q\000\000\001Q\000\000\001Q\000\000\001Q\000\000\000\000\001U\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001U\000\000\001Q\000\000\000\000\000\000\000\000\000\000\000\000\001Q\000\000\000\000\000\000\001U\001Q\000\000\000\000\000\000\000\000\000\000\001Q\000\000\000\000\001Q\000\000\000\000\000\000\000\000\000\000\001Q\001Q\000\242\000\000\000\000\000\000\000\000\000\000\000\000\001Q\000\000\000\000\001Q\007\217\000\000\000\000\019\221\007\217\001Q\000\000\000\000\001Q\000\000\000\000\000\000\019\221\000\000\001Q\007\217\000\000\007\217\000\000\007\217\000\000\007\217\000\000\000\000\000\000\000\000\001Q\000\000\001Q\001Q\000\000\001Q\001Q\000\000\007\217\000\000\000\000\000\000\000\000\000\000\000\000\007\217\000\000\019\221\001Q\000\000\000\000\000\000\000\000\000\000\019\221\000\000\001Q\000\000\000\000\007\217\000\000\000\000\000\000\000\000\000\000\007\217\007\217\007\217\000\000\001Q\000\000\000\000\000\000\000\000\007\217\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007\217\002\017\000\000\002^\030J\002\017\000\000\003j\000\000\019\221\000\000\000\000\000\000\000\000\000\000\000\000\002\017\000\000\000\000\000\000\002\017\007\217\002\017\007\217\007\217\000\000\007\217\007\217\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\017\000\000\000\000\000\000\000\000\000\000\000\000\002\017\000\000\000\000\000\000\000\000\007\217\000\000\030N\000\000\000\000\000\000\002\017\000\000\000\000\002\017\000\000\000\000\000\000\007\217\000\000\002\017\002\017\000\000\030Z\000\000\000\000\000\000\000\000\000\000\002\017\000\000\000\000\000\000\001E\000\000\000\000\002y\001E\002\017\000\000\000\000\002\017\000\000\000\000\000\000\002y\000\000\002\017\001E\000\000\001E\000\000\001E\000\000\001E\000\000\000\000\000\000\n\138\002\017\000\000\002\017\000\000\000\000\002\017\002\017\000\000\001E\000\000\000\000\000\000\000\000\000\000\000\000\001E\000\000\002y\002\017\000\000\000\000\000\000\000\000\000\000\002y\000\000\002\017\000\000\000\000\001E\000\000\000\000\000\000\000\000\000\000\001E\001E\001E\000\000\002\017\000\000\000\000\000\000\000\000\001E\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001E\004\129\000\000\000\000\000\000\004\129\000\000\000\000\000\000\002y\000\000\000\000\000\000\000\000\000\000\000\000\004\129\000\000\000\000\000\000\004\129\001E\004\129\001E\001E\000\000\001E\001E\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\129\000\000\030b\000\000\000\000\000\000\000\000\004\129\000\000\000\000\000\000\000\000\001E\000\000\000\000\000\000\000\000\000\000\004\129\000\000\000\000\004\129\000\000\000\000\000\000\001E\000\000\004\129\004\129\004\129\000\000\000\000\000\000\000\000\000\000\000\000\004\129\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\129\000\000\000\000\004\129\000\000\000\000\000\000\000\000\000\000\004\129\001\202\001\226\003f\000\000\000\000\003j\000\000\000\000\000\000\000\000\000\000\004\129\000\000\004\129&\234\000\000\004\129\004\129\000\000\000\000\000\000\001\234\002&\001\254\003n\000\000\000\000\000\000\000\000\004\129\000\000\000\000\002\n\000\000\001\206\000\000\030\234\004\129\000\000\nu\000\000\000\000\004\129\nu\000\000\000\000\000\000\003r\001\210\002Z\004\129\000\000\000\000\003z\nu\003\138\003\186\003\198\nu\000\000\nu\000\000\000\000(\238\000\000)6\019\221\000\000\000\000\000\000\000\000\000\000\000\000\nu\000\000\000\000\000\000\000\000\000\000\000\000\nu\000\000\000\000\000\000\000\000\003\214)B\003\230\000\000\000\000\000\000\nu\000\000\000\000\nu\000\000\000\000\000\000\n\138\000\000\nu\nu\000\000\000\000\b\130\003\154\000\000\000\000\003j\nu\000\000\000\000)N\bf\000\000\000\000\000\000\000\000\nu\000\000\000\000\nu\000\000\000\000\001\234\000\000\000\000\nu\000\000\000\000)\014\b\190\000\000\000\000\000\000\000\000\000\000\000\000\000\000\nu\000\000\nu\nu\000\000\nu\nu\000\000\b\210\000\000\000\000\015N\000\000\001\190\000\000\000\000\000\000\000\000\nu\003\138\000\000\000\000\n\n\n\014\000\000\003V\nu\n\018\000\000\n\026\000\000\000\000\000\000\000\000\nJ\000\000\000\000\004\129\000\000\nu\000\000\004\129\000\000\000\000\000\000\nN\nb\nf\000\000\nj\nr\n~\004\129\000\000\000\000\000\000\004\129\000\000\004\129\000\000\000\000\n\134\n\138\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\129\000\000\030b\000\000\000\000\000\000\000\000\004\129\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\129\n\142\000\000\004\129\000\000\000\000\000\000\007\166\000\000\004\129\004\129\004\129\001\202\001\226\003f\000\000\000\000\003j\004\129\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\129\000\000\000\000\004\129\000\000\000\000\001\234\002&\001\254\004\129\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\n\000\000\001\206\000\000\004\129\000\000\004\129'\"\000\000\004\129\004\129\000\000\000\000\000\000\000\000\003r\001\210\002Z\000\000\000\000\000\000\003z\b9\003\138\003\186\003\198\b9\000\000\000\000\030\234\004\129(\238\000\000(\242\000\000\004\129\000\000\b9\000\000\000\000\000\000\b9\000\000\b9\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\214(\254\003\230\b9\000\000\000\000\000\000\000\000\000\000\000\000\b9\000\000\000\000\n\138\000\000\000\000\000\000\017z\000\000\000\000\000\000\b9\012\161\000\000\b9\000\000\000\000)\n\000\000\000\000\b9\b9\000\242\000\000\000\000\000\000\000\000\000\000\000\000\b9\012\161\012\161\000\000\012\161\012\161)\014\000\000\000\000\b9\b9\000\000\b9\000\000\000\000\000\000\000\000\000\000\b9\b=\000\000\000\000\000\000\b=\000\000\000\000\000\000\000\000\012\161\000\000\b9\000\000\b9\000\000\b=\b9\b9\000\000\b=\000\000\b=\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012\161\000\000\000\000\000\000\000\000\b=\000\000\000\000\b9\000\000\000\000\000\000\b=\000\000\000\000\000\000\000\000\012\161\000\000\017z\000\000\b9\000\000\b=\000\000\000\000\b=\000\000\000\000\000\000\000\000\000\000\b=\b=\000\242\000\000\000\000\000\000\000\000\000\000\012\161\b=\012\161\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b=\b=\000\000\b=\000\000\000\000\000\000\011.\012\161\b=\bA\012\161\012\161\000\000\bA\000\000\012\161\000\000\012\161\005\153\000\000\b=\012\161\b=\012\161\bA\b=\b=\000\000\bA\000\000\bA\000\000\000\000\000\000\000\000\000\000\005\153\005\153\000\000\005\153\005\153\000\000\000\000\bA\000\000\000\000\b=\000\000\000\000\000\000\bA\000\000\000\000\000\000\000\000\000\000\000\000\017z\000\000\b=\000\000\bA\000\000\005\153\bA\000\000\000\000\000\000\000\000\000\000\bA\bA\000\242\000\000\000\000\000\000\000\000\000\000\000\000\bA\000\000\000\000\000\000\000\242\000\000\000\000\000\000\000\000\bA\bA\000\000\bA\000\000\000\000\000\000\000\000\000\000\bA\bE\000\000\005\153\000\000\bE\000\000\000\000\000\000\000\000\000\000\000\000\bA\000\000\bA\000\000\bE\bA\bA\000\000\bE\000\000\bE\000\000\000\000\000\000\005\153\000\000\005\153\000\000\000\000\000\000\000\000\000\000\000\000\bE\000\000\000\000\bA\000\000\000\000\000\000\bE\005\153\005\153\000\000\000\000\011j\005\153\017z\000\000\bA\005\153\bE\005\153\000\000\bE\000\000\005\153\000\000\005\153\000\000\bE\bE\000\242\000\000\000\000\000\000\000\000\000\000\000\000\bE\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\bE\bE\000\000\bE\000\000\000\000\016~\000\000\000\000\bE\n\157\000\000\000\000\000\000\n\157\000\000\000\000\000\000\000\000\000\000\000\000\bE\000\000\bE\000\000\n\157\bE\bE\000\000\n\157\000\000\n\157\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\157\000\000\000\000\bE\000\000\000\000\000\000\n\157\000\000\016\226\000\000\000\000\000\000\000\000\000\000\000\000\bE\000\000\n\157\000\000\000\000\n\157\000\000\000\000\000\000\000\000\000\000\n\157\n\157\000\242\000\000\000\000\000\000\000\000\000\000\000\000\n\157\000\000\000\000\000\000\000\000\000\000\004\129\000\000\000\000\n\157\004\129\000\000\n\157\000\000\000\000\000\000\000\000\000\000\n\157\000\000\000\000\004\129\000\000\000\000\000\000\004\129\000\000\004\129\000\000\000\000\n\157\000\000\n\157\000\000\000\000\n\157\n\157\000\000\000\000\000\000\004\129\000\000\030b\000\000\000\000\000\000\000\000\004\129\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\157\000\000\004\129\000\000\000\000\004\129\000\000\000\000\000\000\004F\000\000\004\129\004\129\004\129\000\000\000\000\000\000\000\000\000\000\000\000\004\129\000\000\000\000\000\000\000\000\000\000\te\000\000\000\000\004\129\te\000\000\004\129\000\000\000\000\000\000\000\000\000\000\004\129\000\000\000\000\te\000\000\000\000\000\000\te\000\000\te\000\000\000\000\004\129\000\000\004\129!b\000\000\004\129\004\129\000\000\000\000\000\000\te\000\000\000\000\000\000\000\000\000\000\000\000\te\000\000\000\000\000\000\000\000\000\000\000\000\000\000\030\234\004\129\000\000\te\000\000\000\000\te\000\000\000\000\000\000\000\000\000\000\te\te\000\242\000\000\000\000\000\000\000\000\000\000\000\000\te\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\te\019y\000\000\te\003\154\019y\000\000/B\000\000\te\000\000\000\000/F\000\000\000\000\000\000\019y\000\000\000\000\000\000\000\000\te\019y\te)Z\000\000\te\te\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019y\000\000\000\000\000\000\te\000\000\000\000\019y\000\000\000\000\000\000\000\000\te\000\000\001\006\000\000\001\190\000\000\019y\000\000\000\000\019y\000\000\000\000\000\000\te\000\000\019y\019]\000\000\000\000\003\154\019]\000\000/b\000\000\019y/J\000\000/f\000\000\000\000\000\000\019]\000\000\019y\000\000\000\000\019y\019]\000\000\000\000\000\000\000\000\019y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019]\000\000\000\000/N\019y\000\000\019y\019]\000\000\019y\000\000\000\000\000\000\000\000\001\006\000\000\001\190\000\000\019]\nu\000\000\019]\000\000\nu\000\000\000\000\000\000\019]\000\000\000\000\019y\000\000\000\000\000\000\nu\000\000\019]/j\nu\000\000\nu\000\000\000\000\000\000\000\000\019]\019\221\000\000\019]\000\000\000\000\000\000\000\000\nu\019]\000\000\000\000\000\000\000\000\000\000\nu\000\000\000\000\000\000\000\000/n\019]\000\000\019]\000\000\000\000\019]\000\000\000\000\nu\000\000\000\000\000\000\000\000\000\000\nu\nu\000\000\000\000\000\000\000\000\019\185\000\000\000\000\nu\019\185\000\000\019]\000\000\000\000\019\185\000\000\000\000\nu\019\185\000\000\019\185\000\000\000\000\000\000\019\185\000\000\019\185\000\000\000\000\019\185\000\000\000\000\000\000\019\185\000\000\019\185\000\000\000\000\nu\019\185\nu\nu\000\000\nu\nu\000\000\019\185\000\000\019\185\000\000\000\000\000\000\000\000\000\000\000\000\019\185\nu\019\185\000\000\000\000\019\185\nu\000\000\003V\nu\000\000\019\185\019\185\000\000\019\185\000\000\000\000\000\000\000\000\000\000\019\185\019\185\nu\000\000\000\000\000\000\002\021\000\000\000\000\019\185\002\021\000\000\019\185\000\000\000\000\000\000\000\000\000\000\019\185\000\000\000\000\002\021\000\000\000\000\000\000\002\021\000\000\002\021\000\000\000\000\019\185\000\000\019\185\003b\000\000\019\185\019\185\000\000\000\000\019\185\002\021\019\185\003b\000\000\019\185\019\185\000\000\002\021\019\185\000\000\000\000\000\000\000\000)\166\000\000\000\000\019\185\019\185\002\021\000\000\000\000\002\021)\226\000\000\000\000\019\185\000\000\002\021\002\021\019\185\000\000\000\000\000\000\000\000\000\000\000\000\002\021\000\000\019\185\000\000\000\000\000\000\000\000\000\000\000\000\002\021\ti\000\000\002\021\000\000\ti\000\000\000\000\000\000\002\021\000\000\000\000\000\000\000\000\000\000\000\000\ti\000\000\000\000\000\000\ti\002\021\ti\002\021\000\000\000\000\002\021\002\021\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ti\000\000\000\000\000\000\002\021\000\000\000\000\ti\000\000\000\000\000\000\000\000\002\021\000\000\000\000\016~\000\000)\026\ti\n\193\000\000\ti\000\000\n\193\000\000\002\021\000\000\ti\ti\000\242\000\000\000\000\000\000\000\000\n\193\000\000\ti\000\000\n\193\000\000\n\193\000\000\000\000\000\000\000\000\ti\000\000\000\000\ti\000\000\000\000\000\000\000\000\n\193\ti\000\000\000\000\000\000\000\000\000\000\n\193\000\000\016\226\000\000\000\000\000\000\ti\000\000\ti\000\000\000\000\ti\ti\000\000\n\193\000\000\000\000\000\000\000\000\000\000\n\193\n\193\000\242\000\000\ti\000\000\000\000\000\000\000\000\n\193\000\000\000\000\ti\000\000\000\000\0071\000\000\000\000\n\193\0071\000\000\000\000\000\000\000\000\000\000\ti\000\000\000\000\000\000\000\000\0071\000\000\000\000\000\000\0071\000\000\0071\000\000\0071\n\193\000\000\n\193\0071\000\000\n\193\n\193\000\000\000\000\000\000\0071\000\000\000\000\000\000\0071\000\000\000\000\0071\0071\000\000\0071\000\000\000\000\000\000\000\000\000\000\n\193\000\000\0071\000\000\000\000\0071\000\000\0071\002\130\004F\000\000\0071\tN\n\193\0071\000\000\000\000\000\000\000\000\000\000\0071\017z\000\000\000\000\000\000\0071\000\000\000\000\0071\0071\000\000\000\000\0071\000\000\0071\tN\000\242\000\000\0071\000\000\000\000\000\000\000\000\0071\000\000\000\000\000\000\000\000\000\000\000\000\0071\000\000\0071\000\000\000\000\0071\0071\000\000\002V\000\000\000\000\0071\004\253\000\000\000\000\000\000\004\253\000\000\016\170\000\000\000\000\000\000\000\000\0071\000\000\0071\0071\004\253\0071\0071\000\000\004\253\000\000\004\253\000\000\000\000\000\000\000\000\000\000\0071\000\249\000\000\000\000\000\000\000\249\000\000\004\253\000\000\000\000\0071\000\000\000\000\000\000\004\253\002\234\000\249\000\000\000\000\000\000\000\249\000\000\000\249\0071\000\000\004\253\000\000\000\000\004\253\000\000\000\000\000\000\000\000\000\000\004\253\000\249\000\000\000\000\000\000\000\000\000\000\000\000\000\249\004\253\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\253\000\249\000\000\004\253\000\249\000\000\000\000\000\000\000\000\004\253\000\249\000\249\000\242\000\000\000\000\000\000\000\000\000\000\000\000\000\249\000\000\004\253\000\000\004\253\000\000\000\000\004\253\004\253\000\249\000\253\000\000\000\249\000\000\000\253\000\000\000\000\000\000\000\249\000\000\000\000\000\000\000\000\000\000\000\000\000\253\000\000\000\000\004\253\000\253\000\249\000\253\000\249\000\000\000\000\000\249\000\249\000\000\000\000\000\000\000\000\000\000\002\250\000\000\000\253\000\000\000\000\000\000\000\000\000\000\000\000\000\253\000\000\000\000\000\000\000\000\000\249\000\000\000\000\016~\000\000\000\000\000\253\bU\000\000\000\253\000\000\bU\000\000\000\249\000\000\000\253\000\253\000\242\000\000\000\000\000\000\000\000\bU\000\000\000\253\000\000\bU\000\000\bU\000\000\000\000\000\000\000\000\000\253\000\000\000\000\000\253\000\000\000\000\000\000\000\000\bU\000\253\000\000\000\000\000\000\000\000\000\000\bU\000\000\016\226\000\000\000\000\000\000\000\253\000\000\000\253\000\000\000\000\000\253\000\253\000\000\bU\000\000\000\000\000\000\000\000\000\000\bU\bU\000\242\000\000\000\000\000\000\001\202\002\018\001\230\bU\000\000\016~\000\253\000\000\000\000\0071\000\000\000\000\bU\0071\000\000\000\000\003v\000\000\000\000\000\253\000\000\001\234\0022\001\254\0071\000\000\000\000\000\000\0071\000\000\0071\000\000\002\n\bU\001\206\bU\000\000\000\000\bU\bU\002j\000\000\000\000\0071\000\000\000\000\000\000\002\014\001\210\002Z\0071\000\000\016\226\003z\000\000\003\138\003\186\003\198\000\000\bU\000\000\000\000\000\000\003\210\0071\000\000\000\000\rN\004F\000\000\0071\tN\000\242\nU\nU\nU\000\000\000\000\000\000\0071\000\000\000\000\000\000\000\000\000\000\003\214\000\000\003\230\0071\000\000\000\000\003\202\000\000\000\000\nU\nU\nU\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\nU\000\000\nU\000\000\0071\000\000\0071\n\153\000\000\0071\0071\n\153\000\000\000\000\000\000\nU\nU\nU\030R\000\000\000\000\nU\n\153\nU\nU\nU\n\153\000\000\n\153\000\000\0071\nU\000\000\000\000\000\000\000\000\000\000\000\000\0071\004F\000\000\n\153\000\000\000\000\000\000\000\000\000\000\000\000\n\153\000\000\000\000\000\000\000\000\nU\000\000\nU\000\000\000\000\000\000\n\153\000\000\000\000\n\153\000\000\000\000\000\000\000\000\000\000\n\153\n\153\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\153\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\153\000\000\000\000\n\153\000\000\000\000\000\000\000\000\000\000\n\153\000\000\000\000\003\190\000\000\nU\000\000\000\000\000\000\t]\000\000\000\000\n\153\t]\n\153 \138\000\000\n\153\n\153\000\000!>\000\000\000\000\000\000\t]\000\000\000\000\000\000\t]\000\000\t]\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\153\000\000\000\000\000\000\000\000\t]\000\000\000\000\000\000\000\000\000\000\000\000\t]\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t]\000\000\000\000\t]\000\000\000\000\000\000\000\000\000\000\t]\t]\000\000\001\202\002\018\001\230\000\000\000\000\000\000\t]\000\000\000\000\000\000\001m\000\000\000\000\000\000\001m\t]\000\000\000\000\t]\000\000\000\000\001\234-\250\001\254\t]\001m\000\000\001m\000\000\001m\000\000\001m\002\n\000\000\001\206\000\000\t]\000\000\t]\000\000\002j\t]\t]\000\000\001m\000\000\000\000\002\014\001\210\002Z\000\000\001m\000\000\003z\000\000\003\138\003\186\003\198\000\000\000\000\000\000\000\000\t]\003\210\000\000\001m\000\000\000\000\000\000\000\000\000\000\001m\001m\000\242\000\000\000\000\000\000\019\t\000\000\000\000\001m\019\t\000\000\000\000\000\000\003\214\000\000\003\230\000\000\001m\000\000\000\000\019\t\000\000\000\000\000\000\019\t\000\000\019\t\000\000\000\000\000\000\000\000\000\000\000\000\001\202\001\226\001\230\000\000\000\000\001m\019\t\001m\001m\000\000\001m\001m\000\000\019\t\000\000\000\000\000\000\000\000\n\022\000\000\000\000\001\234\002&\001\254\019\t\000\000\000\000\019\t\000\000\000\000\000\000\001m\002\n\019\t\001\206\000\000\000\000\000\000\000\000\000\000\002j\000\000\019\t\000\000\001m\000\000\000\000\002.\001\210\002Z\000\000\019\t\018\246\003z\019\t\003\138\003\186\003\198\000\000\000\000\019\t\007\t\000\000\003\210\000\000\007\t\000\000\000\000\000\000\000\000\000\000\000\000\019\t\000\000\019\t\000\000\007\t\019\t\019\t\000\000\007\t\000\000\007\t\000\000\000\000\003\214\007\001\003\230\000\000\000\000\007\001\000\000\000\000\000\000\000\000\007\t\000\000\000\000\019\t\000\000\000\000\007\001\007\t\000\000\000\000\007\001\000\000\007\001\000\000\000\000\000\000\021\186\000\000\007\t\000\000\000\000\007\t\000\000\000\000\000\000\007\001\000\000\007\t\000\000\000\000\000\000\000\000\007\001\000\000\000\000\007\162\007\t\007\166\000\000\000\000\000\000\000\000\000\000\007\001\000\000\007\t\007\001\000\000\007\t\000\000\000\000\000\000\007\001\000\000\007\t\000\000\000\000\000\000\000\000\000\000\000\000\007\001\000\000\000\000\000\000\000\000\007\t\000\000\007\t\000\000\007\001\007\t\007\t\007\001\000\000\000\000\000\000\000\000\000\000\007\001\006\241\000\000\000\000\000\000\006\241\000\000\000\000\000\000\000\000\000\000\000\000\007\001\007\t\007\001\000\000\006\241\007\001\007\001\000\000\006\241\000\000\006\241\000\000\000\000\000\000 \178\000\000\000\000\007!\000\000\000\000\000\000\007!\000\000\006\241\000\000\000\000\007\001\000\000\000\000\000\000\006\241\000\000\007!\000\000\000\000\000\000\007!\000\000\007!\"\234\000\000\006\241\000\000\000\000\006\241\000\000\000\000\000\000\000\000\000\000\006\241\007!\000\000\000\000\000\000\000\000\000\000\000\000\007!\006\241\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\241\007!\000\000\006\241\007!\000\000\000\000\000\000\000\000\006\241\007!\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007!\000\000\006\241\000\000\006\241\000\000\000\000\006\241\006\241\007!\000\000\000\000\007!\000\000\000\000\000\000\000\000\000\000\007!\000\000\000\000\000\000\000\000\001\202\002\018\001\230\000\000\000\000\006\241\000\000\007!\000\000\007!\000\000\000\000\007!\007!\000\000\000\000\000\000\000\000%\234\000\000\000\000\001\234\003\130\001\254\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\n\007!\001\206\000\000\000\000\000\000\000\000\000\000\002j\000\000\000\000\nQ\nQ\nQ&Z\002.\001\210\002Z\000\000\000\000\000\000\003z\000\000\003\138\003\186\003\198\000\000\000\000\000\000\000\000\000\000\003\210\nQ\nQ\nQ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\nQ\000\000\nQ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\214\000\000\003\230\000\000\000\000\nQ\nQ\nQ\020\141\020\141\020\141\nQ\000\000\nQ\nQ\nQ\000\000\000\000\000\000\000\000\000\000\nQ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\141\020\141\020\141\016\146\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\141\000\000\020\141\nQ\000\000\nQ\000\000\000\000\000\000\000\000\000\000\001\202\001\226\001\230\022\n\020\141\020\141\020\141\000\000\000\000\000\000\020\141\000\000\020\141\020\141\020\141\000\000\000\000\000\000\000\000\000\000\020\141\001\234\001\238\001\254\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\n\000\000\001\206\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\141\000\000\020\141\000\000\007\206\002\014\001\210\002Z\001\202\002\018\001\230\003z\000\000\003\138\003\186\003\198\000\000\000\000\000\000\000\000\000\000\003\210\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\234\030\242\001\254\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\n\000\000\001\206\003\214\000\000\003\230\000\000\000\000\002j\000\000\000\000\001\202\001\226\001\230#\202\002.\001\210\002Z\000\000\000\000\000\000\003z\000\000\003\138\003\186\003\198\000\000\000\000\000\000\000\000\000\000\003\210\001\234\001\238\001\254\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\n\000\000\001\206\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\214\000\000\003\230\000\000\000\000\002\014\001\210\002Z\000\000\000\000\000\000\003z\000\000\003\138\003\186\003\198\001\202\001\226\001\230$*\000\000\003\210\000\000\000\000\000\000\n\185\000\000\000\000\000\000\n\185\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\234\001\238\001\254\n\185\000\000\000\000\003\214\n\185\003\230\n\185\000\000\002\n\000\000\001\206\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\185\001\202\004\170\001\230\002\014\001\210\002Z\n\185\000\000\000\000\003z\000\000\003\138\003\186\003\198\000\000\000\000\000\000\000\000\000\000\003\210\n\185\001\234\004\182\001\254\000\000\000\000\n\185\n\185\000\000\000\000\000\000\000\000\002\n\000\000\001\206\n\185\000\000\000\000\000\000\000\000\000\000\003\214\000\000\003\230\n\185\000\000\000\000\002.\001\210\002Z\000\000\000\000\000\000\003z\011I\003\138\003\186\003\198\000\000\000\000\001\202\006\014\001\230\003\210\000\000\n\185\000\000\n\185\000\000\000\000\n\185\n\185\011I\011I\000\000\011I\011I\000\000\000\000\017\"\000\000\001\234\006\026\001\254\000\000\003\214\000\000\003\230\000\000\000\000\000\000\n\185\002\n\000\000\001\206\000\000\000\000\000\000\000\000\011I*\202\000\000\000\000\000\000\000\000\000\000\005\169\002.\001\210\002Z\000\000\000\000\000\000\003z\000\000\003\138\003\186\003\198\000\000\011I\000\000\000\000\000\000\003\210\005\169\005\169\000\000\005\169\005\169\000\000\000\000\000\000\000\000\000\000\000\000\000\000\011I\000\000\000\000\000\000\000\000\000\000\000\000\000\000\011Y\003\214\000\000\003\230\000\000\000\000\000\000\005\169\000\000\000\000\000\000\000\000\000\000\000\000\000\000\011I\000\000\011I\011Y\011Y\000\000\011Y\011Y\000\000\000\000\000\000\000\000\000\242\000\000\000\000\000\000\000\000\011I\011I\000\000\005\185\011j\011I\000\000\000\000\000\000\011I\000\000\011I\005\169\011Y\000\000\011I\000\000\011I\000\000\000\000\000\000\005\185\005\185\000\000\005\185\005\185\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\242\000\000\005\169\000\000\005\169\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\185\000\000\011Y\000\000\005\169\005\169\000\000\000\000\011j\005\169\000\000\000\000\000\000\005\169\000\000\005\169\000\000\000\000\000\000\005\169\000\242\005\169\000\000\000\000\000\000\011Y\000\000\011Y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\185\000\000\000\000\000\000\000\000\011\158\011Y\000\000\000\000\011j\011Y\000\000\000\000\000\000\011Y\000\000\011Y\005\217\000\000\000\000\011Y\000\000\011Y\005\185\000\000\005\185\000\000\000\000\000\000\000\000\000\000\001\202\031\n\001\230\000\000\005\217\005\217\000\000\005\217\005\217\005\185\005\185\000\000\000\000\011j\005\185\000\000\000\000\005\201\005\185\000\000\005\185\001\234\031\022\001\254\005\185\000\000\005\185\000\000\000\000\000\000\000\000\005\217\002\n\000\000\001\206\005\201\005\201\000\000\005\201\005\201\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002.\001\210\002Z\000\000\000\242\000\000\003z\000\000\003\138\003\186\003\198\000\000\000\000\000\000\000\000\005\201\003\210\000\000\000\000\000\000\000\000\005\217\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\242\000\000\000\000\003\214\000\000\003\230\000\000\000\000\000\000\005\217\000\000\005\217\000\000\000\000\000\000\000\000\000\000\005\201\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\217\005\217\000\000\000\000\011j\005\217\000\000\000\000\000\000\005\217\000\000\005\217\000\000\000\000\005\201\005\217\005\201\005\217\000\000\000\000\000\000\000\000\001\202-\218\001\230\000\000\000\000\000\000\000\000\000\000\000\000\005\201\005\201\000\000\000\000\011j\005\201\000\000\000\000\000\000\005\201\000\000\005\201\001\234-\230\001\254\005\201\000\250\005\201\000\000\000\000\t*\000\000\000\000\002\n\000\000\001\206\000\000\000\000\000\000\000\000\000\000\tV\000\000\000\000\000\000\007E\000\000\tZ\002.\001\210\002Z\007\017\000\000\000\000\003z\007\017\003\138\003\186\003\198\000\000 N\000\000\000\000\000\000\003\210\000\000\007\017 v\000\000\000\000\007\017\000\000\007\017\000\000\000\000\000\000\000\000\000\000&\022\006\249\000\000 \218\000\000\006\249\000\000\007\017\003\214 \242\003\230\000\000\000\000\000\000\007\017\000\000\006\249\000\000 \250\000\000\006\249\000\000\006\249\000\000\000\000\000\000\007)!\n\007\017\000\000\007)\000\000\000\000\000\000\007\017\006\249\000\000\000\000\000\000\000\000\000\000\007)\006\249\007\017\000\000\007)\000\000\007)!\018\000\000!R\000\000\007\017\007E\007E\000\000\006\249\000\000\000\000\000\000\007)\000\000\006\249\000\000\000\000\000\000\000\000\007)\000\000\000\000\000\000\006\249\000\000\007\017!\154\007\017\000\000\000\000\007\017\007\017\006\249\007)\000\000\000\000\000\000\000\000\000\000\007)\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007)\000\000\000\000\007\017\000\000\006\249\000\000\006\249\000\000\007)\006\249\006\249\000\000\000\000\000\000\000\000*\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007)\006\249\007)\000\000\000\000\007)\007)\000\000\000\000\000\000\000\000\000\000\000\000\000\000+B\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007)\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000+\190")) + ((32, "\000\000\153\210\000\000\164d\000\000\174\224\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\026.\000\000\174\224\000\000\000\000\000\000\000\000\000\000\025\020\000\000\174\224\000\000\153\210\000\000\000\240\000\000\0005\000\000\0038\000\001|R\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000Z\000\000\002\018\000\000\000\231\000\000\000\000\000\000\001P\000\000\000\030\000\000\000\000\000\000\001\234\000\000\001p\000\000\000\254\000\000\000\000\000\000\000&\000\000\002\\\000\000\003b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\222\000\000\000\000\000\000\000\000\000\000\002n\000\001\185\020\000\001e`\000\001f\018\000\001f\196\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001~\000\000\000\000\000\000\000\000\000\000\239\024\000\000\003V\000\000\004\130\000\000\000\000\000\000\000\000\000\001tF\000\000\236r\000\000\t\006\000\000\000\000\000\000\t\006\000\001jV\000\000\001~\000\000\000\000\000\001\178\198\000\000\001~\000\000\234n\000\000\t\006\000\001\137\164\000\000\t\006\000\000\000\000\000\000\000\000\000\000\000\000\000\000$f\000\001jV\000\000\231\224\000\000\000\000\000\000\240\004\000\001\178\198\000\000\159\206\000\000\025\020\000\000\027\196\000\001j\238\000\000\025\020\000\001i\192\000\000\005L\000\001k\206\000\000\000\000\000\000\000\000\000\000\004\232\000\000\000\000\000\000\233 \000\000\1640\000\000\025\020\000\000\157\\\000\000\000\000\000\000\024\254\000\000\000\000\000\000\157\\\000\000\025\222\000\000\000\000\000\000\153^\000\000\000\000\000\000\000\226\000\000\000\000\000\000\000\000\000\000\005\194\000\000\024.\000\000\017\184\000\000\t\006\000\000%\138\000\000\005\158\000\001|\216\000\000\000\000\000\000\000\000\000\000\t\006\000\000\000\000\000\000\025\020\000\000\000\000\000\000\001~\000\000\024.\000\000\018\220\000\000\t\006\000\000(\246\000\000\000\000\000\000\003\178\000\000\000\000\000\000\153^\000\000\000\000\000\000\000\000\000\000\b\n\000\000\025\020\000\000\000\000\000\000\001~\000\000\025\020\000\000\000\000\000\000\t\232\000\001\173`\000\000\t\006\000\001\155\n\000\001\173\230\000\001\165\148\000\001\153\222\000\000\000\000\000\001\167t\000\001\178\198\000\000\000\000\000\001n\172\000\001\180\232\000\000\001~\000\000\234n\000\000\174\224\000\000\153\210\000\000\000\003\000\000\000\000\000\000\000\000\000\000\164d\000\000\025\020\000\000\000\003\000\000\003\196\000\000\006\024\000\000\006\202\000\001jV\000\001\179X\000\000\000\000\000\001jV\000\001\179X\000\000\000\000\000\001jV\000\001\181\186\000\000\241(\000\000\030\254\000\000\238`\000\000\231\224\000\000\n\238\000\000\000\000\000\000\000\b\000\000\0010\000\000\0040\000\000\000\000\000\000\006\206\000\000\000\000\000\000\000\000\000\000\n\252\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\128\000\000\026\156\000\001\181\186\000\000\242\244\000\001jV\000\000\243\244\000\000\006\176\000\000\239\240\000\000\000\000\000\000\000\000\000\000\244\244\000\001jV\000\000\245\244\000\000\246\244\000\000\000\000\000\001w\188\000\001\178\198\000\000\000\000\000\000\003\234\000\000\0010\000\000\n\238\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\236\000\000\0120\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\186\154\000\000\247\030\000\000\t\006\000\000*\026\000\000\001~\000\000\238\212\000\000\t\006\000\000,b\000\000\242*\000\001\178\198\000\000\001~\000\000\001~\000\000\000\000\000\000\007\n\000\000\001~\000\000\006\166\000\000\t\006\000\000\"b\000\000\000\000\000\001jV\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\242\000\000\006\230\000\001jV\000\000\247\244\000\000\248\244\000\000\000\000\000\000\242*\000\000\249\244\000\001jV\000\000\250\244\000\000\251\244\000\000\000\000\000\000\242*\000\000\252\244\000\000\253\244\000\001jV\000\000\254\244\000\000\255\244\000\000\000\000\000\000\242*\000\001\000\244\000\001\001\244\000\000\233\012\000\000\243*\000\000\231\232\000\000\238`\000\000\234\014\000\000\n\238\000\000\000\000\000\000\000\000\000\000\000\000\000\000\240\242\000\000\244*\000\000\231\240\000\000\238`\000\000\235\016\000\000\236\018\000\000\237\020\000\001\002\244\000\000\007\174\000\001jV\000\001\003\244\000\001\004\244\000\000\000\000\000\000\242*\000\001\005\244\000\001\006\244\000\000\000\000\000\001\007\244\000\000\006@\000\000\001~\000\000\000\000\000\000\t\216\000\000\007.\000\000\t\006\000\000\"\246\000\000\000\000\000\000\001~\000\000\007b\000\000\t\006\000\000$\172\000\000\000\000\000\000\001\002\000\000\000\000\000\001\187\018\000\000\247F\000\000\t\006\000\000-\134\000\000\001~\000\000\239N\000\000\t\006\000\000.\170\000\000\003J\000\000\b*\000\000\b\140\000\000\0056\000\000\002\162\000\001jV\000\000\006\022\000\000\t.\000\001jV\000\001\b\244\000\001\t\244\000\000\000\000\000\000\242*\000\001\n\244\000\001\011\244\000\000\b\146\000\001jV\000\001\012\244\000\001\r\244\000\000\000\000\000\000\242*\000\001\014\244\000\001\015\244\000\000\tN\000\001jV\000\001\016\244\000\001\017\244\000\000\000\000\000\000\242*\000\001\018\244\000\001\019\244\000\000\b\198\000\001jV\000\001\020\244\000\001\021\244\000\000\000\000\000\000\242*\000\001\022\244\000\001\023\244\000\000\245*\000\001\178\198\000\000\003\198\000\001jV\000\000\011\166\000\000\011\204\000\001jV\000\001\024\244\000\001\025\244\000\000\000\000\000\000\242*\000\001\026\244\000\001\027\244\000\000\t\024\000\001jV\000\001\028\244\000\001\029\244\000\000\000\000\000\000\242*\000\001\030\244\000\001\031\244\000\000\014v\000\001jV\000\001 \244\000\001!\244\000\000\000\000\000\000\242*\000\001\"\244\000\001#\244\000\000\tj\000\001jV\000\001$\244\000\001%\244\000\000\000\000\000\000\242*\000\001&\244\000\001'\244\000\000\242*\000\001(\244\000\001)\244\000\000\000\000\000\000\242*\000\001*\244\000\001+\244\000\000\t\182\000\000\001\002\000\000\000\000\000\000 \000\000\243*\000\000\011\148\000\000\000\000\000\000#\140\000\000\243*\000\000\014V\000\000\000\000\000\001jV\000\000\001~\000\000\000\000\000\000\000\000\000\000\000\000\000\000\011~\000\000\000\000\000\001jV\000\000\000\000\000\000\024\222\000\001\184Z\000\000\000\000\000\001jV\000\000\024\234\000\001jV\000\000'\"\000\000\000\000\000\000(F\000\000\000\000\000\000\026\222\000\000\012\162\000\000\000\000\000\000\n*\000\001jV\000\000\012\214\000\000\000\000\000\000\015\030\000\000\000\000\000\000\004\166\000\000\000\000\000\000\000\003\000\000\001:\000\000\000\000\000\000\000\000\000\000\000\000\000\000($\000\001jV\000\000%\220\000\001jV\000\000)H\000\000\011B\000\000\n\168\000\000\175\206\000\000\t\224\000\000\012X\000\000\006\202\000\000\012\220\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\134\000\000\020\134\000\000\164\n\000\000\025\020\000\000\174\198\000\000\229\192\000\000\000\000\000\000\n\016\000\000\012\230\000\000\012~\000\001jV\000\000\012\150\000\000\012\240\000\001}\134\000\000\r\150\000\000\r\154\000\000\r\162\000\001jV\000\000\012\202\000\000\000\000\000\000\000\000\000\000\026:\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\028\158\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\160\014\000\000 \206\000\000\n*\000\000\000*\000\000\b<\000\000\000\000\000\000\000\000\000\000\002\214\000\000\000\000\000\000\027\196\000\000\015\184\000\000\015\172\000\000\025\020\000\000\"\016\000\000\000\000\000\000\025\020\000\000\153\210\000\000\1640\000\000\025\020\000\000\236l\000\000\157\\\000\000\016b\000\001\165\228\000\001\173\230\000\000\000\000\000\001\176 \000\000\174\224\000\000\153\210\000\000\153\210\000\000\000\000\000\000\000\000\000\000\000\000\000\000\164d\000\000\025\020\000\000\000\003\000\000\000\003\000\000\n*\000\000\003\000\000\000\b\180\000\000\000\000\000\000\015D\000\000\016\162\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\164d\000\000\025\020\000\000\000\003\000\000\027@\000\001~8\000\000\165F\000\000\000\003\000\000\001\"\000\000\176\176\000\001\149\196\000\000\014\b\000\000\015\208\000\000\015p\000\001jV\000\000\014\156\000\000\015\208\000\001\138&\000\000\014\160\000\000\016\128\000\000\016N\000\001jV\000\000\014\246\000\000\000\000\000\000\000\000\000\001u~\000\001~\228\000\001u~\000\000\000\000\000\000\b\180\000\000\000\000\000\000\017T\000\000\000\000\000\000\028\002\000\001jV\000\000\004\208\000\000\001\030\000\000\229\192\000\000\164Z\000\000\025\020\000\000\229\192\000\000\000\000\000\000\017\134\000\000\000\000\000\000\000\000\000\000\016R\000\000\017\198\000\000\000\000\000\000\000\000\000\000\229\192\000\000\229\192\000\000\b\180\000\000\017\148\000\000\000\000\000\000\017\134\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\024\000\001\127\150\000\000\015\226\000\000\018\024\000\000\017\148\000\001jV\000\000\015\222\000\000\000\000\000\000\000\000\000\000\229\192\000\000\000\000\000\000\000\000\000\000\228\176\000\000\026\138\000\000\001\210\000\000\014\148\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002D\000\000\031\200\000\001u~\000\000\000\000\000\000\164Z\000\000\025\020\000\000\229\192\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\229\192\000\000\000\000\000\001\168P\000\001\128H\000\000\017@\000\000\018\148\000\000\018\014\000\001jV\000\000\017\002\000\000\000\000\000\000\000\000\000\000\229\192\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\169\\\000\000\229\192\000\001\184Z\000\000\230\208\000\000\160\014\000\000\005\158\000\000\019\004\000\000\229\192\000\000\000\000\000\000\"\214\000\000\019\n\000\000\000\000\000\000\030\210\000\000\000\000\000\001\128\250\000\000\017t\000\000\019<\000\000\018\184\000\001jV\000\000\018\030\000\000\000\000\000\000\000\000\000\000\229\192\000\000\000\000\000\000\000\000\000\001\187\012\000\001jV\000\000\001\134\000\000\000\000\000\000\229\192\000\001\187t\000\000\0038\000\000\000\000\000\000\000\000\000\000\019\226\000\000\000\000\000\000\028\216\000\000\000\000\000\001~\228\000\000\000\000\000\000\020$\000\000\000\000\000\000\031\004\000\001l~\000\000\000\000\000\000\000\000\000\000\000\000\000\001\187\192\000\000#b\000\000\000\000\000\000\028\216\000\000\000\000\000\000#\198\000\000\017B\000\000\b\180\000\000\018:\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\212\000\000\000\000\000\000\000\000\000\000\0206\000\000\000\000\000\000\229\192\000\000\000\000\000\000\000\000\000\000\000\000\000\000#\148\000\000\229\192\000\000$\184\000\000\000\000\000\000\000\000\000\000'\000\000\001\138\216\000\000\017\216\000\000\020\220\000\000\020V\000\001jV\000\000\018&\000\000\000\000\000\000\000\000\000\000\229\192\000\000\000\000\000\000\000\000\000\000*l\000\000\020x\000\001\139\138\000\000\018\012\000\000\0212\000\000\020\226\000\001jV\000\000\018~\000\000\000\000\000\000\000\000\000\000\229\192\000\000\000\000\000\000\000\000\000\000+\144\000\000\229\192\000\000\020\248\000\001\140<\000\000\018&\000\000\021\150\000\000\021z\000\001jV\000\000\018\162\000\000\000\000\000\000\000\000\000\000\229\192\000\000\000\000\000\000\000\000\000\000,\180\000\001d\164\000\000\018\252\000\000\0072\000\000\002\226\000\001\185\020\000\000\004\234\000\001jV\000\000!(\000\000\006\176\000\000\000\000\000\000\000\000\000\000!v\000\000\000\000\000\000\000\000\000\000\0072\000\000\022X\000\000\000\000\000\000\022\170\000\000\000\000\000\000\000\000\000\000\0190\000\000\0072\000\000\0072\000\000\019\178\000\000\000\003\000\000\164d\000\000\157\170\000\000\157\170\000\000\025\020\000\000\"\016\000\000\159\156\000\000\025\020\000\000\177\146\000\000\166X\000\000\167j\000\000\011\240\000\000\006\028\000\000\178t\000\000\029\128\000\000\158\004\000\000\179V\000\000\164d\000\000\025\020\000\000\020\134\000\000\029\128\000\000\020\134\000\000\1808\000\000\020\134\000\000\164d\000\000\025\020\000\000\154\228\000\000\164d\000\000\025\020\000\000\000\003\000\001m0\000\000\025\020\000\001l~\000\000\229\192\000\000#\198\000\000\000\003\000\000\164Z\000\000\025\020\000\000\161*\000\000\004\232\000\000\000\000\000\001m\226\000\000\156\214\000\000\156\214\000\000\159\230\000\001\185\020\000\000\005\158\000\001jV\000\000\000]\000\000\000\000\000\000\001\134\000\000\000\000\000\000\000\000\000\000\022\200\000\000\000\000\000\000\022\252\000\000\000\000\000\000\167\014\000\001\185\020\000\000\006\194\000\001jV\000\000%\184\000\000\000\000\000\000&\220\000\000\000\000\000\000\000\000\000\001m\226\000\000\019\178\000\000\023 \000\000\000\000\000\000\019\178\000\000\023\154\000\000\000\000\000\000\000\000\000\000\000\000\000\000\156\214\000\000\019\136\000\000\023\136\000\000\023\002\000\000\t\006\000\000):\000\000\000\000\000\000\003R\000\000\t\006\000\000*(\000\000\000\000\000\000\000\000\000\000\023\236\000\000\000\000\000\000\028\172\000\000\000\000\000\000\000\000\000\000\171\178\000\001\185\020\000\000\0072\000\001jV\000\000\b6\000\000\000\000\000\001\140\238\000\000\172\230\000\001\185\020\000\000\007\230\000\001jV\000\000\n~\000\000\n\166\000\000\024\002\000\000\000\000\000\000\024\014\000\000\000\000\000\000\024\028\000\000\000\000\000\001\166b\000\000\156\214\000\000\173\156\000\001\185\020\000\000\bV\000\001jV\000\000\011\162\000\000\000\000\000\001\140\238\000\000\228r\000\000\000\000\000\001\185\020\000\000\t\004\000\001jV\000\000\012\198\000\000\000\000\000\000\000]\000\000\024 \000\000\000\000\000\000\024V\000\000\000\000\000\000\000\000\000\000\000\000\000\001h(\000\000\000\000\000\000\000\000\000\000\001~\000\000\238`\000\000\004$\000\000\000\000\000\000\024&\000\000\181\026\000\001m0\000\000\025\020\000\001l~\000\000+0\000\000\181\252\000\000\019\188\000\000\0240\000\000\006\202\000\000\024z\000\000\000\000\000\000\000\000\000\000\020\134\000\000\020\134\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002F\000\000 \236\000\000\028\\\000\000\000\000\000\000\168L\000\000\169.\000\000\157\170\000\000\025\020\000\000\"\016\000\000\0005\000\000\005\022\000\000\r\150\000\000\000\000\000\000\023\194\000\000\027\196\000\000\228\178\000\000\024\132\000\000\027\196\000\000\0005\000\000\005\022\000\000\014\134\000\000\000\000\000\000\024\244\000\000\027\196\000\000\000\000\000\001\141\130\000\000\n\174\000\000\157\\\000\000\b\180\000\000\bZ\000\001\184\190\000\000\000\000\000\001jV\000\001\129\142\000\001jV\000\001v\018\000\001\130L\000\001jV\000\000\012\244\000\001jV\000\001\131\n\000\000\000\000\000\000\015\136\000\000\018\170\000\000\t\n\000\000\027\196\000\001\142@\000\000\000\000\000\000\025\020\000\000\027\196\000\001\142\254\000\000\027\196\000\001\143\188\000\001\144z\000\000\018\128\000\000\018\234\000\001nv\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\1458\000\000\027\196\000\001\145\246\000\000\000\023\000\000\0010\000\001v\208\000\000\016\162\000\000\0010\000\001w\168\000\000\000\000\000\001\146\180\000\000\n\174\000\000\000\000\000\001x\128\000\001\147r\000\000\000\000\000\001\1480\000\001\148\238\000\000*\152\000\000\000\000\000\000$\228\000\000\000\000\000\000\025\136\000\000\000\000\000\000\025X\000\000\"\016\000\000\000\000\000\001oV\000\000\159\156\000\000\000\000\000\000\030p\000\000\000\000\000\000\027\196\000\000)t\000\000\000\000\000\000\025\142\000\000\000\000\000\000\000\000\000\000\000\000\000\000\025\166\000\000\000\000\000\001h\192\000\000\000\000\000\000\006b\000\000\027\196\000\000+\150\000\000\000\000\000\000\170\016\000\000\170\242\000\001\149\196\000\000\158L\000\001jV\000\000\016\192\000\000\000\003\000\000\164Z\000\000\025\020\000\000\229\192\000\000\031\004\000\000\000\003\000\000\000\003\000\000\164d\000\000\025\020\000\000\020\134\000\000\029\128\000\000\025\154\000\000\000\000\000\000\020\134\000\000\003j\000\000\b\252\000\000\162@\000\001m0\000\000\025\020\000\001l~\000\000\"p\000\000\162@\000\000\182\222\000\001m0\000\000\025\020\000\001l~\000\000\000\000\000\000\000\000\000\000\020\134\000\000\020$\000\000\025\226\000\000\006\202\000\000\026.\000\000\000\000\000\000\000\000\000\000\025\252\000\000\000\000\000\000\020\134\000\000\004\142\000\000\026\000\000\000\000\000\000\000\b\180\000\000\000\000\000\000\024N\000\000\000\003\000\000\026\150\000\000\000\000\000\000,T\000\000\183\192\000\000\020T\000\000\026\132\000\000\006\202\000\000\026\242\000\000\000\000\000\000\000\000\000\000\020\134\000\000\030\164\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001m0\000\000\025\020\000\001l~\000\000-x\000\000\229\192\000\000\000\000\000\000\021\170\000\000\031\200\000\000\0140\000\000\000\003\000\000\000\000\000\000\000\000\000\000.\156\000\000\184\162\000\001m0\000\000\025\020\000\001l~\000\000/\192\000\0000\228\000\000\185\132\000\001m0\000\000\025\020\000\001l~\000\0002\b\000\0003,\000\000\000\000\000\000\000\000\000\000\022\206\000\000 \236\000\000\186f\000\001m0\000\000\025\020\000\001l~\000\000\000\000\000\000\000\000\000\000\000\003\000\000\174\224\000\000\000\003\000\000\000\000\000\000\000\000\000\000\187H\000\001m0\000\000\025\020\000\001l~\000\0004P\000\0005t\000\000\188*\000\001m0\000\000\025\020\000\001l~\000\0006\152\000\0007\188\000\000\189\012\000\001m0\000\000\025\020\000\001l~\000\0008\224\000\000:\004\000\000\189\238\000\001m0\000\000\025\020\000\001l~\000\000;(\000\000\148\000\000\191\178\000\001m0\000\000\025\020\000\001l~\000\000?\184\000\000@\220\000\000\192\148\000\001m0\000\000\025\020\000\001l~\000\000B\000\000\000C$\000\000\193v\000\001m0\000\000\025\020\000\001l~\000\000DH\000\000El\000\000\194X\000\001m0\000\000\025\020\000\001l~\000\000F\144\000\000G\180\000\000\195:\000\001m0\000\000\025\020\000\001l~\000\000H\216\000\000I\252\000\000\196\028\000\001m0\000\000\025\020\000\001l~\000\000K \000\000LD\000\000\196\254\000\001m0\000\000\025\020\000\001l~\000\000Mh\000\000N\140\000\000\197\224\000\001m0\000\000\025\020\000\001l~\000\000O\176\000\000P\212\000\000\198\194\000\001m0\000\000\025\020\000\001l~\000\000Q\248\000\000S\028\000\000\199\164\000\001m0\000\000\025\020\000\001l~\000\000T@\000\000Ud\000\000\200\134\000\001m0\000\000\025\020\000\001l~\000\000V\136\000\000W\172\000\000\201h\000\001m0\000\000\025\020\000\001l~\000\000X\208\000\000Y\244\000\000\202J\000\001m0\000\000\025\020\000\001l~\000\000[\024\000\000\\<\000\000\203,\000\001m0\000\000\025\020\000\001l~\000\000]`\000\000^\132\000\000\204\014\000\001m0\000\000\025\020\000\001l~\000\000_\168\000\000`\204\000\000\204\240\000\001m0\000\000\025\020\000\001l~\000\000a\240\000\000c\020\000\000\205\210\000\000\020n\000\000\026\178\000\000\006\202\000\000\026\254\000\000\000\000\000\000\000\000\000\000\020\134\000\000\"\016\000\001m0\000\000\025\020\000\001l~\000\000d8\000\000e\\\000\000\206\180\000\001m0\000\000\025\020\000\001l~\000\000f\128\000\000g\164\000\000\025\020\000\001y0\000\000\160\014\000\000\230\146\000\000\027\002\000\000\161*\000\000\000\003\000\000\000\000\000\000\000\000\000\000\n\134\000\000\018\158\000\000\000\000\000\000\026d\000\000\181\026\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\161*\000\001\185\020\000\000\020\132\000\000\026X\000\001jV\000\000\000]\000\000\000\003\000\000\000\000\000\000\026\134\000\000\000\003\000\000\000\000\000\000\tz\000\001jV\000\000\0044\000\000\000\003\000\000\000\000\000\000\026\144\000\000\000\003\000\000\000\000\000\000\020,\000\000\000\003\000\000\000\000\000\000\026\150\000\000\000\003\000\000\000\000\000\000\000\000\000\000\026\152\000\000\000\003\000\000\000\000\000\000\156\202\000\001jV\000\000\006|\000\000\000\003\000\000\000\000\000\000\026\160\000\000\000\003\000\000\000\000\000\000\026\162\000\000\000\003\000\000\000\000\000\000-\216\000\000\000\003\000\000\000\000\000\001\150v\000\000\020\172\000\000\027\014\000\000\026\136\000\001jV\000\000\020\"\000\000\000\000\000\000\000\000\000\000\229\192\000\000\000\000\000\000\000\000\000\000.\252\000\000\229\192\000\0000 \000\000\0038\000\000\000\000\000\000\0038\000\001ip\000\001\185\020\000\000\n(\000\001jV\000\000\007\160\000\000\000\003\000\000\000\000\000\000\026\190\000\000\000\003\000\000\000\000\000\000\020\160\000\000\000\003\000\000\000\000\000\000\026\194\000\000\000\003\000\000\000\000\000\000\000\000\000\000\026\228\000\000\000\003\000\000\000\000\000\000\000\000\000\001\155\162\000\001\155\162\000\000\000\000\000\000\000\000\000\000\000\000\000\000h\200\000\000\000\003\000\000\027\142\000\000\000\000\000\000\000\003\000\000\027\182\000\000\000\000\000\000\018\228\000\000\r\140\000\000\162@\000\000\027\208\000\000\000\000\000\001p\030\000\000\163R\000\000\000\000\000\000\162@\000\000\027\208\000\000\000\000\000\000\162@\000\000\027\234\000\000\000\000\000\000\000\000\000\000\020\134\000\000\005\178\000\000\r\180\000\000\162@\000\000\027\246\000\000\006\214\000\000\207\150\000\001m0\000\000\025\020\000\001l~\000\000i\236\000\000k\016\000\000\162@\000\000\028\000\000\000\007\250\000\000\208x\000\001m0\000\000\025\020\000\001l~\000\000l4\000\000mX\000\000\162@\000\000\028\006\000\000\t\030\000\000\209Z\000\001m0\000\000\025\020\000\001l~\000\000n|\000\000o\160\000\000\031\174\000\000\000\003\000\000\028\016\000\000\nB\000\000\210<\000\001m0\000\000\025\020\000\001l~\000\000p\196\000\000q\232\000\000\000\003\000\000\028\020\000\000\011f\000\000\211\030\000\001m0\000\000\025\020\000\001l~\000\000s\012\000\000t0\000\000\000\003\000\000\028\026\000\000\012\138\000\000\212\000\000\001m0\000\000\025\020\000\001l~\000\000uT\000\000vx\000\000\019\190\000\000\014\176\000\000\162@\000\000\028B\000\000\r\174\000\000\212\226\000\001m0\000\000\025\020\000\001l~\000\000w\156\000\000x\192\000\000\162@\000\000\028D\000\000\014\210\000\000\213\196\000\001m0\000\000\025\020\000\001l~\000\000y\228\000\000{\b\000\000\162@\000\000\028H\000\000\015\246\000\000\214\166\000\001m0\000\000\025\020\000\001l~\000\000|,\000\000}P\000\000\017\026\000\000\215\136\000\001m0\000\000\025\020\000\001l~\000\000~t\000\000\127\152\000\000\018>\000\000\023\242\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\028X\000\000\000\000\000\000\162@\000\000\028x\000\000\000\000\000\000\162@\000\000\028x\000\000\000\000\000\000\000\000\000\000\003\128\000\000\000\000\000\000\000\000\000\000\000\003\000\000\027\194\000\000\000\003\000\000\027\204\000\000\000\000\000\000\000\000\000\0001D\000\000\000\003\000\000\000\000\000\000\003\b\000\000\000\003\000\000\000\000\000\001\149\196\000\000\000\000\000\000\000\000\000\001\131\190\000\000\028\164\000\000\000\000\000\000\171\212\000\001m0\000\000\025\020\000\001l~\000\000'2\000\000\216j\000\001m0\000\000\025\020\000\001l~\000\000\006\246\000\001y\202\000\000\025\020\000\0001\208\000\000\025\020\000\001l~\000\000\229\192\000\000%\220\000\000\217L\000\001m0\000\000\025\020\000\001l~\000\000\027\n\000\001pl\000\000\229\192\000\000)H\000\000\218.\000\001m0\000\000\025\020\000\001l~\000\000\175h\000\001qZ\000\000\229\192\000\0003\140\000\000\219\016\000\001m0\000\000\025\020\000\001l~\000\000\229\006\000\001q\168\000\000 (\000\000\219\242\000\001m0\000\000\025\020\000\001l~\000\000\232\244\000\001r\150\000\000\220\212\000\001m0\000\000\025\020\000\001l~\000\000\003\208\000\000\221\182\000\001m0\000\000\025\020\000\001l~\000\000\233|\000\001r\228\000\001p\030\000\000\222\152\000\001m0\000\000\025\020\000\001l~\000\000\233\164\000\001s\210\000\000\000\000\000\000\000\000\000\000\000\000\000\000\011\022\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\027\244\000\000\000\000\000\001p\030\000\000\012z\000\000\000\000\000\000\172\230\000\001m0\000\000\025\020\000\001l~\000\000\029\004\000\000\t\226\000\000\000\000\000\000\000\000\000\000\028\012\000\000\000\000\000\001p\030\000\000\011\022\000\000\000\000\000\000\173\248\000\000\000\000\000\001m0\000\000\025\020\000\001l~\000\000&\240\000\000\r\206\000\000\000\000\000\000\028\236\000\000\000\000\000\001p\030\000\000\014\154\000\000\000\000\000\000\011\240\000\000\028d\000\000\000\000\000\000\029\128\000\000 X\000\000\b\180\000\000\000\000\000\000\028d\000\000\000\000\000\000\014\206\000\000\020\164\000\000\015\140\000\000\000\000\000\000\000\000\000\000\029\006\000\000\000\000\000\000\001\204\000\000#4\000\000\160\162\000\000\000\000\000\000#4\000\001m0\000\000\025\020\000\001l~\000\000\128\188\000\000\129\224\000\000\000\000\000\000\000\000\000\000\028\234\000\000\000\003\000\000\000\000\000\000\000\003\000\000\000\000\000\000\000\000\000\000\000\000\000\000\131\004\000\000\0298\000\000\223z\000\001m0\000\000\025\020\000\001l~\000\000\132(\000\000\224\\\000\001m0\000\000\025\020\000\001l~\000\000\133L\000\000\134p\000\000\135\148\000\000\225>\000\001m0\000\000\025\020\000\001l~\000\000\136\184\000\000\137\220\000\000\000\000\000\000\028x\000\000\000\000\000\000 \234\000\000\226 \000\000\021D\000\000\028\234\000\000\006\202\000\000\029.\000\000\000\000\000\000\000\000\000\000\020\134\000\000$X\000\001m0\000\000\025\020\000\001l~\000\000\139\000\000\000\140$\000\001m0\000\000\025\020\000\001l~\000\000\011\152\000\000\000\000\000\001p\030\000\000\000\000\000\000\019b\000\000\029F\000\000\000\000\000\000%|\000\001m0\000\000\025\020\000\001l~\000\000\003\208\000\000,\022\000\000\000\000\000\000.\156\000\000\029J\000\000\000\000\000\001m0\000\000\025\020\000\001l~\000\000\027@\000\001y\202\000\000\021T\000\000\021`\000\000\000\000\000\000\000\000\000\000\028\198\000\000\000\000\000\001m0\000\000\025\020\000\001l~\000\000&\240\000\000\015\190\000\000\000\000\000\000\029\\\000\000\000\000\000\001p\030\000\000\016\022\000\000\000\000\000\001m0\000\000\025\020\000\001l~\000\000\029\004\000\000\011.\000\000\000\000\000\000\000\000\000\000\028\136\000\000\000\000\000\001p\030\000\000\r^\000\000\000\000\000\001m0\000\000\025\020\000\001l~\000\000\027\136\000\000\000\000\000\000\027\196\000\000+\188\000\000\000\000\000\000\027\196\000\000\155\226\000\000\000\000\000\000\027\196\000\000,\222\000\000\000\000\000\001pl\000\000\000\000\000\000\027\196\000\000,\224\000\000\000\000\000\000\027\196\000\000\1560\000\000\000\000\000\000\027\196\000\000-\222\000\000\000\000\000\000\006\168\000\000\000\003\000\000\000\000\000\000\025\020\000\000\"\016\000\000\007\204\000\000\000\003\000\000\000\000\000\000\n*\000\000\005\244\000\000\b<\000\000\b<\000\000\001~\000\000\029r\000\000\000\000\000\000\005\022\000\000\"\016\000\001\167\226\000\000\027\196\000\0002n\000\000\"\016\000\001\168\148\000\000\028\204\000\000\"\016\000\001\169F\000\000\028\252\000\000\000\003\000\000\000\000\000\000\005\022\000\000\000\000\000\000\028\214\000\000\"\016\000\001\169\248\000\000\000\000\000\000\030\174\000\000\025\020\000\000\"\020\000\000\000\000\000\000\004\222\000\000\029\140\000\000\000\000\000\000\029\140\000\000\029h\000\001w\222\000\000\014\026\000\000\000\000\000\000\000\000\000\000\029Z\000\000\028\200\000\001\185\020\000\000\n\158\000\001jV\000\000\"\202\000\000&6\000\000\000\015\000\000\021\158\000\000\024\234\000\000\000\000\000\000(~\000\000\029\164\000\000\000\000\000\000*d\000\000\000\000\000\000\000\000\000\000\238`\000\001\132\134\000\001\156T\000\000\029\202\000\000\238`\000\000\238`\000\001\132\134\000\001\157\006\000\001\132\134\000\001\157\184\000\000\000\000\000\001\132h\000\001\158j\000\001\1494\000\001\185x\000\000\001~\000\000\235p\000\000\t\006\000\000/\206\000\000\238\022\000\001\188z\000\000\248F\000\000\t\006\000\0000\242\000\000\001~\000\000\239\160\000\000\t\006\000\0002\022\000\000\b\162\000\000\014\190\000\001w\222\000\000\029\156\000\000\238`\000\001\159$\000\001\133B\000\000\029\204\000\000\238`\000\001\159\222\000\001\134\000\000\000\004>\000\000\029\146\000\000\000\003\000\000\000\000\000\000\000\000\000\000\025\020\000\001t\204\000\000\000\000\000\001y0\000\001\155\162\000\000\000\000\000\000\000\000\000\000\030\024\000\000\000\000\000\000\019\178\000\000\030\026\000\000\000\000\000\000\000\000\000\000\000\000\000\001m0\000\000\025\020\000\001l~\000\000\141H\000\000\142l\000\000\000\000\000\001m0\000\000\025\020\000\001l~\000\000'2\000\000\r^\000\000\000\000\000\000\000\000\000\000\029L\000\000\000\000\000\001p\030\000\000\014\154\000\000\000\000\000\000\000\000\000\000\157\170\000\000\025\020\000\000\"\016\000\000\011N\000\000\000\000\000\000\027\196\000\000.\002\000\000\000\000\000\000\015\022\000\000\000\000\000\000\022\014\000\000\000\000\000\000\030\030\000\000\000\000\000\000\030R\000\001l~\000\000\143\144\000\000\000\000\000\000\030X\000\000\227\002\000\001m0\000\000\025\020\000\001l~\000\000\144\180\000\000\145\216\000\000\164\006\000\000\157\170\000\000\025\020\000\000\"\016\000\001\176N\000\000\000\000\000\000\025\020\000\000\"\016\000\001\176N\000\000\000\000\000\000\030\206\000\000\n*\000\000\003\000\000\000\001~\000\001\179\168\000\000\027\196\000\001\170\170\000\001\155\162\000\000\000\000\000\000\005\244\000\000\b<\000\000\b<\000\000\005\022\000\001\155\162\000\001\182h\000\000\005\244\000\000\b<\000\000\005\022\000\001\155\162\000\001\182h\000\000\000\000\000\000\000\000\000\000\005\022\000\001\155\162\000\000\000\000\000\000\174\224\000\000\153\210\000\000\229\192\000\000\153\002\000\000\000\003\000\000\000\000\000\000\174\224\000\000\153\210\000\000\030\004\000\000\029\160\000\000\t\006\000\001\177\000\000\000\230F\000\000\000\000\000\000\000\240\000\000\0005\000\000\0038\000\000\029\150\000\001\185\020\000\000\017\000\000\001jV\000\001\160\144\000\000\021P\000\000\029\208\000\000\030\140\000\001\180j\000\000\000\000\000\001\155\162\000\000\000\000\000\001\161(\000\000\030\174\000\000\025\020\000\000\"\020\000\001\171B\000\000&\170\000\000\020\214\000\000\002J\000\000\020J\000\000\028\\\000\000\025\020\000\001\155\162\000\000\000\000\000\000\025\020\000\001\155\162\000\000\000\000\000\001jV\000\000\000\000\000\000\004\014\000\000\026\026\000\000\026\026\000\000\024\214\000\000\rH\000\000\000\000\000\000\016\024\000\000\153^\000\000\000\000\000\000\021\202\000\000\000\000\000\000\153^\000\000\000\000\000\000\030B\000\000\029\218\000\000\160\248\000\000\025\020\000\000\030\184\000\001jV\000\000\020n\000\000\000\000\000\000$l\000\000\012(\000\000\016\184\000\000\022l\000\000\000\000\000\000\022\142\000\000\000\000\000\000\030F\000\000\029\180\000\001jV\000\000\165F\000\000\000\000\000\000\025\020\000\000\027 \000\000\022\176\000\000\000\000\000\000\023:\000\000\000\000\000\000\030L\000\000\029\196\000\001\185\020\000\000\158\134\000\000\000\000\000\000\025\020\000\000\160\248\000\000\030|\000\000\006\022\000\000\000*\000\000\000\003\000\000\016t\000\000\160\248\000\001jV\000\000\022&\000\000\n\238\000\000\000\000\000\001jV\000\000\023\230\000\000\0242\000\000\000\000\000\000\000\000\000\001\161\192\000\000\000\000\000\000\000\003\000\000\0218\000\000\160\248\000\001\162|\000\000\165F\000\000\000\000\000\000\025\020\000\001jV\000\000\022\026\000\001jV\000\000\028\\\000\000\158\134\000\000\000\000\000\000\029\244\000\000\000\000\000\000\158\134\000\000\000\000\000\000\000\000\000\000$l\000\000\000\000\000\001\176N\000\001\183\026\000\000\024\214\000\000\rH\000\000\016\024\000\000\030t\000\000\030\024\000\000\160\248\000\001\176N\000\001\183\026\000\000\000\000\000\000\000\000\000\000\024\214\000\000\rH\000\000\016\024\000\000\030\136\000\001zp\000\000\156\214\000\000\154V\000\000\025\020\000\000\174\198\000\000\153\244\000\000\025z\000\000\012(\000\000\022\220\000\000\000\000\000\000\030\140\000\000\017\b\000\000\000\003\000\000\000\000\000\000\0304\000\000\000\003\000\000\000\000\000\000\165F\000\000\000\000\000\000\020\242\000\000\023\144\000\000\000\000\000\000\023\140\000\000\000\000\000\000\030\162\000\000\030\014\000\001jV\000\000\163R\000\000\030\182\000\000\017^\000\000\000\003\000\000\000\000\000\000\030N\000\000\000\003\000\000\000\000\000\000\025\194\000\000\017\002\000\000\023\212\000\000\000\000\000\000\030\196\000\001{\"\000\001\185\206\000\000\020\132\000\000\030b\000\001jV\000\000\022\178\000\000\000\003\000\000\000\000\000\000\030\132\000\000\000\003\000\000\000\000\000\000\000\000\000\000\165F\000\000\000\000\000\000\028\n\000\000\026\166\000\000\000\000\000\000\023\178\000\000\000\000\000\000\030\242\000\000\030d\000\001\185\020\000\000\000\000\000\000\030\252\000\001{\212\000\001\186B\000\000\020\132\000\000\030\128\000\001jV\000\000\023\016\000\000\000\003\000\000\000\000\000\000\030\154\000\000\000\003\000\000\000\000\000\000\000\000\000\000\025\020\000\000\000\003\000\000\165F\000\000\000\000\000\000\025|\000\000\025\020\000\000\154V\000\000\154V\000\001gv\000\000\174\224\000\000\025\020\000\001t\204\000\001y0\000\000\015\158\000\000\000\000\000\000\018~\000\000\000*\000\000\000\003\000\000\022(\000\000\154V\000\001jV\000\000\023J\000\000\b\180\000\000\000\000\000\000\025\020\000\001zp\000\001zp\000\000\154V\000\000\015B\000\000\154V\000\000\000\000\000\000\157\242\000\000\159\006\000\000\000\000\000\001\151\n\000\000\000\000\000\000\000\000\000\001\151\198\000\000\000\000\000\000\000\000\000\001\152\130\000\000\000\003\000\000\022\180\000\000\154V\000\001\153>\000\001t\204\000\001y0\000\000\015\158\000\000\000\000\000\000\004v\000\000\000\000\000\001o\156\000\001\154r\000\000\238`\000\000\031\024\000\001o\156\000\001\181\186\000\000 ,\000\000\0310\000\001o\156\000\000\238`\000\000\031<\000\001o\156\000\000\023\192\000\000&\160\000\001\163\016\000\001\164D\000\000\000\000\000\001\180\254\000\000\000\000\000\000\000\000\000\000\031\138\000\000\000\000\000\000\027@\000\000\031b\000\000\000\000\000\000\165F\000\000\000\000\000\000\154V\000\000\027@\000\000\165F\000\000\000\000\000\000\025\020\000\001jV\000\000\165F\000\000\000\000\000\000\031\000\000\000\000\000\000\000\165F\000\000\000\000\000\000\000\000\000\000\153\244\000\000\000\000\000\001\1778\000\001o\156\000\000\031\014\000\000\154V\000\001\177\216\000\001zp\000\000\000\000\000\001\155\162\000\001\183.\000\000\024\214\000\000\rH\000\000\016\024\000\000\031z\000\001zp\000\001\155\162\000\001\183.\000\000\000\000\000\000\000\000\000\000\000\000\000\001\189\252\000\000\164d\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\181\132\000\000\000\000\000\001\155\162\000\000\000\000\000\000\157\170\000\000\025\020\000\000\"\016\000\001\176N\000\000\000\000\000\001\183\224\000\000\025\000\000\000\157\\\000\000\031~\000\001x\178\000\001\173\230\000\000\000\000\000\001\176 \000\001\183\224\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001h(\000\001\189\252\000\000\000\000\000\000\000\000\000\000\000\000\000\001\181\132\000\000\031\198\000\000\000\000\000\000\031\212\000\000\000\000\000\001h(\000\001\189\252\000\000\000\000\000\000\000\000\000\000\031\234\000\000\000\000\000\000\000\000\000\000\031\222\000\000\161\182\000\000\"\020\000\000\"\020\000\001\164\228\000\000&\170\000\000\025\020\000\000\000\000\000\000\025\020\000\000\000\000\000\001\155\162\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\166\246\000\000&\170\000\000\025\020\000\000\000\000\000\000\025\020\000\000\000\000\000\000\020\014\000\001\165\228\000\001\173\230\000\000\000\000\000\001\176 \000\000\000\000\000\000\031\226\000\000\161\182\000\000\"\020\000\001\155\162\000\000\000\000\000\000\031V\000\000\000\000\000\001\134\188\000\000.\004\000\000\000\000\000\000\229\192\000\000\000\000\000\000\000\000\000\001\188t\000\000\031<\000\001\135>\000\000\022\004\000\000\031\214\000\000\031B\000\001jV\000\000\021\146\000\000\000\000\000\000\000\000\000\000\229\192\000\000\000\000\000\000\000\000\000\001\188\220\000\000\">\000\000\000\000\000\001jV\000\000\022\182\000\000\000\000\000\000\153\244\000\000\031v\000\000\000\000\000\001m0\000\000\025\020\000\001l~\000\000\146\252\000\000&\160\000\000\000\000\000\000\022\206\000\000'\196\000\000\020\134\000\000(\232\000\001m0\000\000\025\020\000\001l~\000\000\148 \000\000\149D\000\000\031^\000\000\227\228\000\000\022\156\000\000\031\242\000\000\006\202\000\000 H\000\000\000\000\000\000\000\000\000\000\020\134\000\000*\012\000\001m0\000\000\025\020\000\001l~\000\000\150h\000\000\151\140\000\000 v\000\001l~\000\000\152\176\000\000\000\000\000\000 J\000\000\000\000\000\000\028\132\000\001\185\020\000\000\012X\000\000\006L\000\000\025\020\000\001v\144\000\000\000\000\000\000\000\000\000\000 \250\000\001\130\012\000\000\000\000\000\000\000\000\000\000\031\194\000\000\000\000\000\000\018\154\000\001jV\000\000\024D\000\000\025h\000\001jV\000\001,\244\000\001-\244\000\000\000\000\000\000\242*\000\001.\244\000\001/\244\000\000 ,\000\001jV\000\0010\244\000\0011\244\000\000\000\000\000\000\242*\000\0012\244\000\0013\244\000\001\181\186\000\000\014\026\000\000 ^\000\000\000\000\000\000\014\026\000\000 `\000\000\000\000\000\000\000\000\000\001\163\176\000\001\164\228\000\001\174~\000\000\"\020\000\000\000\000\000\000\000\000\000\000\000\000\000\001\175\030\000\000\000\000\000\001\164\228\000\000\014\026\000\000 d\000\000\000\000\000\000\014\026\000\000 f\000\000\000\000\000\000\000\000\000\000\000\000\000\001\171\218\000\000\161\238\000\000\155\198\000\000\014\026\000\000 j\000\000\000\000\000\000\014\026\000\000 p\000\000\000\000\000\000\000\000\000\000\000\000\000\000\014\026\000\000 z\000\000\000\000\000\000\014\026\000\000 \136\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\165\148\000\000\000\000\000\001~P\000\000\000\000\000\000 \128\000\000\161\182\000\000%\134\000\001~P\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\022.\000\001\173`\000\001\173\248\000\001\165\148\000\000\000\000\000\001~P\000\000\000\000\000\000 \144\000\000\161\182\000\000%\134\000\001~P\000\000\000\000\000\000\233 \000\000\030\174\000\000\n*\000\000\000*\000\000\0010\000\001\155\162\000\000\000\000\000\000\000*\000\000\0010\000\001\155\162\000\000\000\000\000\000\":\000\000\n*\000\000\003\000\000\000\001~\000\000\172\230\000\000\027\196\000\001~P\000\000\000\000\000\000\005\244\000\000\012\204\000\000\028H\000\000\0010\000\001\155\162\000\000\000\000\000\000\b<\000\000\031\216\000\000\027\196\000\001\175\136\000\001~P\000\001\190\134\000\000\000*\000\000\b<\000\000\031\222\000\000\027\196\000\001\175\136\000\001~P\000\001\190\134\000\000\000\000\000\000\000\000\000\000\b<\000\000\031\204\000\000\005L\000\000\000\000\000\000 \196\000\000\000\000\000\000\016~\000\000\000\003\000\001\186V\000\000\005L\000\000\000\000\000\001h(\000\000\000\000\000\000\027\196\000\001jV\000\000\000\000\000\001h(\000\000\000\000\000\000\024\240\000\000\027\196\000\001\178B\000\000\000\000\000\000\000\000\000\000\024\240\000\000\000\000\000\000\000\000\000\000\030\174\000\000\025\020\000\000\"\020\000\000\166X\000\000\026\026\000\000\024\214\000\000\rH\000\000\016\024\000\000 \134\000\000\031\244\000\001o\156\000\001~P\000\001\190\184\000\000\024\214\000\000\rH\000\000\016\024\000\000 \148\000\000 \012\000\001o\156\000\001~P\000\001\190\184\000\000\000\000\000\000\000\000\000\000\000\000\000\000\233 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001h(\000\000\000\000\000\000\159\206\000\000\025\020\000\000\027\196\000\001\178\218\000\001jV\000\000\000\000\000\001\183\224\000\000\000\000\000\001\191\024\000\000\025\000\000\000\157\\\000\000 \172\000\000\022\146\000\000 (\000\001\165\148\000\000\000\000\000\001~P\000\001\191\024\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000/\002\000\000\000\000\000\000\019H\000\001jV\000\000\025|\000\000\025\180\000\001jV\000\0014\244\000\0015\244\000\000\000\000\000\000\242*\000\0016\244\000\0017\244\000\000 \212\000\001jV\000\0018\244\000\0019\244\000\000\000\000\000\000\242*\000\001:\244\000\001;\244\000\000\025\192\000\001jV\000\001<\244\000\001=\244\000\000\000\000\000\000\242*\000\001>\244\000\001?\244\000\000 \224\000\001jV\000\001@\244\000\001A\244\000\000\000\000\000\000\242*\000\001B\244\000\001C\244\000\000\246*\000\001\178\198\000\000\019N\000\001jV\000\000\026,\000\000\026\020\000\001jV\000\001D\244\000\001E\244\000\000\000\000\000\000\242*\000\001F\244\000\001G\244\000\000 \248\000\001jV\000\001H\244\000\001I\244\000\000\000\000\000\000\242*\000\001J\244\000\001K\244\000\000\026\024\000\001jV\000\001L\244\000\001M\244\000\000\000\000\000\000\242*\000\001N\244\000\001O\244\000\000 \252\000\001jV\000\001P\244\000\001Q\244\000\000\000\000\000\000\242*\000\001R\244\000\001S\244\000\000(\252\000\000\243*\000\000\006\130\000\001jV\000\001T\244\000\001U\244\000\000\000\000\000\000\242*\000\001V\244\000\001W\244\000\000!\000\000\001jV\000\001X\244\000\001Y\244\000\000\000\000\000\000\242*\000\001Z\244\000\001[\244\000\0003@\000\000\243*\000\000\241\244\000\001jV\000\001\\\244\000\001]\244\000\000\000\000\000\000\242*\000\001^\244\000\001_\244\000\000!\n\000\001jV\000\001`\244\000\001a\244\000\000\000\000\000\000\242*\000\001b\244\000\001c\244\000\001\135\214\000\000\000\000\000\001\136v\000\000*x\000\000\000\000\000\000\016\000\000\0003:\000\000\000\000\000\001\189\150\000\000\249F\000\000\t\006\000\0004^\000\000\001~\000\000\250F\000\000\t\006\000\0004\158\000\000\r2\000\000\001~\000\000\235p\000\001\1826\000\001\155\162\000\000\000\000\000\000!L\000\000\000\000\000\000\000\003\000\000 \144\000\000\000\003\000\000 \184\000\000\000\000\000\000 \214\000\000\000\000\000\000\000\000\000\000\229F\000\000 \218\000\000\000\000\000\000\000\000\000\000%\022\000\001|R\000\000!\142\000\000\000\000\000\000\000\000\000\000\000\000\000\000\023\252\000\000\019\190\000\001\136\196\000\000!\148\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \234\000\000\000\000\000\000&\170\000\000\000\000\000\000!\002\000\000\000\000\000\001jV\000\000\000\000\000\000\015\222\000\000\000\000\000\000\000\003\000\000!\024\000\000\000\000\000\000\000\000\000\000\0010\000\000\000\000\000\000\011\b\000\000\000\000\000\000\000\003\000\000\000\000\000\000\t\174\000\000\000\000\000\000\"\016\000\000\000\000\000\000\001\n\000\000\000\000\000\000\027\196\000\000\000\000\000\000+\150\000\000\000\000\000\000\018\170\000\000\000\000\000\000!\026\000\000\000\000\000\000\229\192\000\000\">\000\000\000\000\000\000\000\000\000\000\021\146\000\000!*\000\000\000\000\000\000\000\000\000\000!\026\000\000\022\006\000\000\154\228\000\000\001~\000\001\172z\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\159\016\000\000\001~\000\001\172\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\189\202\000\000\000\000\000\000\000\000\000\000!\236\000\000\000\000\000\001\151\188\000\000\000\000\000\000\023:\000\000!\240\000\000\000\000\000\000!\244\000\000\000\000\000\000\155\246\000\000\155\246\000\001\191\158\000\001\191\158\000\000\000\000\000\000\000\000\000\001\155\162\000\001\191\158\000\000\000\000\000\000\000\000\000\000\000\000\000\001\155\162\000\001\191\158\000\000!J\000\000\000\000\000\000!T\000\000\000\000"), (16, "\004]\000\006\004]\001f\004]\003\146\003\150\003\154\004]\003\158\003j\004]\003\170\004]\007\025\bf\004]\bj\007\025\004]\004]\004]\000\242\004]\004]\004]\001\234\007\025\007\025\007\025\bn\004]\t^\tb\019b\tf\004]\t\209\004]\tr\001b\br\000\242\tv\004\197\004]\004]\004]\t\162\t\166\004]\t\170\t\182\t\194\t\198\t\206\r\146\003\242\004]\004]\003\138\000\242\022\026\t\190\r\178\004]\004]\004]\r\182\r\186\r\198\r\210\r\234\001r\004]\nJ\004]\004]\004]\004]\004]\004]\004]\004]\004]\r\250\004]\nb\nf\000\242\r\206\r\222\004]\rN\004]\004]\004]\017\026\001^\014\006\014\030\017\226\n\134\n\138\004]\017\246\004]\004]\017\"\004]\004]\004]\004]\r\226\001v\r\230\001\134\017&\027\214\004]\019\241\004]\004]\004\n\004]\004]\004]\004]\004]\004]\004]\n\142\r\238\004]\004]\004]\015\250\007\166\004]\004]\017\250\019\241\004]\004]\004]\004]\020!\002\206\020!\t\217\020!\006\006\020!\020!\020!\000\n\020!\020!\020!\020!\001\230\020!\020!\002\210\n\161\020!\020!\020!\n\161\020!\020!\020!\020!\002a\020!\002a\020!\020!\020!\020!\020!\b\"\020!\020!\020!\001\130\017z\020!\002a\020!\001n\020!\020!\020!\020!\020!\020!\000\242\020!\001\242\020!\000\242\020!\t\202\020!\020!\020!\003\226\001~\020!\020!\020!\020!\020!\020!\020!\020!\011\214\020!\004\210\020!\020!\020!\020!\020!\020!\020!\020!\020!\020!\020!\001\233\020!\020!\020!\020!\020!\020!\020!\n\213\020!\020!\020!.\231\004\218\004~\001\246\020!\020!\020!\020!\n:\020!\020!\006\n\020!\020!\020!\020!\020!\020!\020!\020!\000\242\020!\020!\001b\020!\020!\004\197\020!\020!\020!\020!\020!\020!\020!\020!\020!\020!\020!\020!\020!\020!\020!\020!\001b\004\197\020!\020!\020!\020!\001\233\001\233\001\233\007\166\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\b\194\004\242\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\015\182\001\233\001\233\001\233\001\233\001\233\001\142\001\233\001\233\001\233\004F\001\233\001\233\rN\001\233\b\206\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\027\154\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\004\210\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\t\006\001\233\001\233\001\233\001\186\004\218\005\021\007\025\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\n\246\016\026\001\233!n\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\001\233\015\029\007\025\015\029\001\198\015\029\r\129\015\029\015\029\015\029\t\025\015\029\015\029\015\029\015\029\000\242\015\029\015\029\t\225\006>\015\029\015\029\015\029\025j\015\029\015\029\015\029\015\029\001\006\015\029\001\190\015\029\015\029\015\029\015\029\015\029\025\154\015\029\015\029\015\029\005\021\t\025\015\029\t\025\015\029\002\002\015\029\015\029\015\029\015\029\015\029\015\029\000\242\015\029\001\146\015\029\t\n\015\029\003&\015\029\015\029\015\029\r>\025j\015\029\015\029\015\029\015\029\015\029\015\029\015\029\015\029\004F\015\029\004\210\015\029\015\029\015\029\015\029\015\029\015\029\015\029\015\029\015\029\015\029\015\029\004z\015\029\015\029\015\029\015\029\015\029\015\029\015\029\025\162\015\029\015\029\015\029\003\174\004\218(\022\001\230\015\029\015\029\015\029\015\029\011\161\015\029\015\029\r\129\015\029\015\029\015\029\015\029\015\029\018\026\015\029\018\130\014\218\018\138\015\029\003\250\015\029\015\029\025n\015\029\015\029\015\029\015\029\015\029\015\029\015\029\015\029\015\029\015\029\015\029\015\029\015\029\015\029\015\029\015\029\n\201\015\029\015\029\015\029\015\029\015\029\005E\003\226\005E\000\242\005E\003\242\005E\005E\005E%\026\005E\005E\005E\005E\003*\005E\005E\025n\006\210\005E\005E\005E\000\242\005E\005E\005E\005E\000\242\005E\015\218\005E\005E\005E\005E\005E\b\022\005E\005E\005E\005v\018\226\005E\004\166\005E\007\025\005E\005E\005E\005E\005E\005E\014.\005E\n\137\005E\000\242\005E\n\137\005E\005E\005E\003v\022:\005E\005E\005E\005E\005E\005E\005E\005E\003\254\005E\004\210\005E\005E\005E\005E\005E\005E\005E\005E\005E\005E\005E\rN\018\n\005E\005E\018\018\005E\005E\018z\rN\005E\005E\005E\0142\004\218\014\178\000\242\005E\005E\005E\005E\ru\005E\005E\b\026\005E\005E\005E\005E\005E\018\026\005E\018\130%\030\018\138\005E\016B\005E\005E\002\006\005E\005E\005E\005E\005E\005E\005E\005E\005E\005E\005E\005E\005E\005E\005E\005E\n\137\005E\005E\005E\005E\005E\0055\007\190\0055\002\134\0055\000\242\0055\0055\0055\002\150\0055\0055\0055\0055\002\218\0055\0055\004\210\rF\0055\0055\0055\030R\0055\0055\0055\0055\003\242\0055\029\246\0055\0055\0055\0055\0055\003\n\0055\0055\0055\007\025\007\025\0055\004\218\0055\002\238\0055\0055\0055\0055\0055\0055\029\254\0055\005\014\0055\007\025\0055\007\025\0055\0055\0055\004F\ru\0055\0055\0055\0055\0055\0055\0055\0055\006F\0055\n\141\0055\0055\0055\0055\0055\0055\0055\0055\0055\0055\0055\007\025\018\n\0055\0055\018\018\0055\0055\018z\0042\0055\0055\0055(z\005\210\000\242\000\242\0055\0055\0055\0055\003\178\0055\0055\014J\0055\0055\0055\0055\0055\018\026\0055\018\130\000\242\018\138\0055\005\138\0055\0055\005\218\0055\0055\0055\0055\0055\0055\0055\0055\0055\0055\0055\0055\0055\0055\0055\0055\017z\0055\0055\0055\0055\0055\014\185\n\141\014\185\004\002\014\185-.\014\185\014\185\014\185\000\242\014\185\014\185\014\185\014\185\r\194\014\185\014\185\004\210\001\141\014\185\014\185\014\185\000\242\014\185\014\185\014\185\014\185\007\173\014\185\017z\014\185\014\185\014\185\014\185\014\185\004J\014\185\014\185\014\185\001\141\"V\014\185\004\218\014\185\000\242\014\185\014\185\014\185\014\185\014\185\014\185\001\202\014\185\004\222\014\185\005\018\014\185\023\202\014\185\014\185\014\185\029\186\022\130\014\185\014\185\014\185\014\185\014\185\014\185\014\185\014\185\017\186\014\185\004\210\014\185\014\185\014\185\014\185\014\185\014\185\014\185\014\185\014\185\014\185\014\185\001\206\014\185\014\185\014\185\014\185\014\185\014\185\014\185\rN\014\185\014\185\014\185\004F\004\218\001\210\r:\014\185\014\185\014\185\014\185\004\230\014\185\014\185\014~\014\185\014\185\014\185\014\185\014\185\014\185\014\185\014\185\001\141\014\185\014\185\003\182\014\185\014\185\b2\014\185\014\185\014\185\014\185\014\185\014\185\014\185\014\185\014\185\014\185\014\185\014\185\014\185\014\185\014\185\014\185\015\218\001\141\014\185\014\185\014\185\014\185\014\201\004F\014\201\001\141\014\201\018\226\014\201\014\201\014\201\005\170\014\201\014\201\014\201\014\201\003:\014\201\014\201\004\210\015\n\014\201\014\201\014\201\000\242\014\201\014\201\014\201\014\201\005\226\014\201\017z\014\201\014\201\014\201\014\201\014\201\003B\014\201\014\201\014\201\b\250\b\254\014\201\004\218\014\201\000\242\014\201\014\201\014\201\014\201\014\201\014\201\015\018\014\201\005\246\014\201 \162\014\201\023\238\014\201\014\201\014\201\029\206\023\006\014\201\014\201\014\201\014\201\014\201\014\201\014\201\014\201\005*\014\201\004\210\014\201\014\201\014\201\014\201\014\201\014\201\014\201\014\201\014\201\014\201\014\201\029\226\014\201\014\201\014\201\014\201\014\201\014\201\014\201\rN\014\201\014\201\014\201\000\242\004\218\012B\003\154\014\201\014\201\014\201\014\201\r\141\014\201\014\201\015&\014\201\014\201\014\201\014\201\014\201\014\201\014\201\014\201\007\133\014\201\014\201\005F\014\201\014\201\006j\014\201\014\201\014\201\014\201\014\201\014\201\014\201\014\201\014\201\014\201\014\201\014\201\014\201\014\201\014\201\014\201\002\026\001\242\014\201\014\201\014\201\014\201\014\193\t\130\014\193\006\170\014\193\000\242\014\193\014\193\014\193\016\142\014\193\014\193\014\193\014\193\004\210\014\193\014\193\004F\015^\014\193\014\193\014\193\rN\014\193\014\193\014\193\014\193\003\242\014\193\016\150\014\193\014\193\014\193\014\193\014\193\018\030\014\193\014\193\014\193\004\218\002\030\014\193\001\246\014\193\006\254\014\193\014\193\014\193\014\193\014\193\014\193\025J\014\193\025V\014\193\006J\014\193\024\018\014\193\014\193\014\193\002\"\r\141\014\193\014\193\014\193\014\193\014\193\014\193\014\193\014\193\006\138\014\193\004\210\014\193\014\193\014\193\014\193\014\193\014\193\014\193\014\193\014\193\014\193\014\193\007>\014\193\014\193\014\193\014\193\014\193\014\193\014\193\004\146\014\193\014\193\014\193\016\202\004\218\005\222\025\206\014\193\014\193\014\193\014\193\015~\014\193\014\193\001\230\014\193\014\193\014\193\014\193\014\193\014\193\014\193\014\193\017\014\014\193\014\193\005\238\014\193\014\193\004Z\014\193\014\193\014\193\014\193\014\193\014\193\014\193\014\193\014\193\014\193\014\193\014\193\014\193\014\193\014\193\014\193\002a\002a\014\193\014\193\014\193\014\193\014\173\004F\014\173\bR\014\173\bb\014\173\014\173\014\173\003R\014\173\014\173\014\173\014\173\004\210\014\173\014\173\004F\0222\014\173\014\173\014\173\000\n\014\173\014\173\014\173\014\173\b\138\014\173'\134\014\173\014\173\014\173\014\173\014\173.\215\014\173\014\173\014\173\004\218\002a\014\173\002a\014\173\017\"\014\173\014\173\014\173\014\173\014\173\014\173\006\197\014\173\025\230\014\173\002a\014\173\024:\014\173\014\173\014\173\001\230\016\130\014\173\014\173\014\173\014\173\014\173\014\173\014\173\014\173\006\193\014\173\004\210\014\173\014\173\014\173\014\173\014\173\014\173\014\173\014\173\014\173\014\173\014\173\027\006\014\173\014\173\014\173\014\173\014\173\014\173\014\173\001\230\014\173\014\173\014\173\000\242\004\218\016\190\004\002\014\173\014\173\014\173\014\173\022\254\014\173\014\173\025\206\014\173\014\173\014\173\014\173\014\173\014\173\014\173\014\173\000\242\014\173\014\173\025\206\014\173\014\173\007\254\014\173\014\173\014\173\014\173\014\173\014\173\014\173\014\173\014\173\014\173\014\173\014\173\014\173\014\173\014\173\014\173\003\234\ne\014\173\014\173\014\173\014\173\014\181\004\014\014\181\bF\014\181\003\242\014\181\014\181\014\181\031\250\014\181\014\181\014\181\014\181\003\182\014\181\014\181\b2\030\130\014\181\014\181\014\181\rN\014\181\014\181\014\181\014\181\004F\014\181\bJ\014\181\014\181\014\181\014\181\014\181\007\186\014\181\014\181\014\181\005\138\017z\014\181\rN\014\181\007\142\014\181\014\181\014\181\014\181\014\181\014\181\015f\014\181\006\218\014\181\000\242\014\181\024^\014\181\014\181\014\181\025\230.\199\014\181\014\181\014\181\014\181\014\181\014\181\014\181\014\181\003\254\014\181\025\230\014\181\014\181\014\181\014\181\014\181\014\181\014\181\014\181\014\181\014\181\014\181\026\202\014\181\014\181\014\181\014\181\014\181\014\181\014\181\027\030\014\181\014\181\014\181\000\242\006\222\000\242\007\025\014\181\014\181\014\181\014\181\0296\014\181\014\181\004\002\014\181\014\181\014\181\014\181\014\181\014\181\014\181\014\181\031\254\014\181\014\181\028\138\014\181\014\181\r\190\014\181\014\181\014\181\014\181\014\181\014\181\014\181\014\181\014\181\014\181\014\181\014\181\014\181\014\181\014\181\014\181\025\206\007\025\014\181\014\181\014\181\014\181\014\177\007\190\014\177\015\218\014\177\007\025\014\177\014\177\014\177\003\226\014\177\014\177\014\177\014\177\018\226\014\177\014\177\028\234\000\242\014\177\014\177\014\177\rN\014\177\014\177\014\177\014\177\b\154\014\177\bV\014\177\014\177\014\177\014\177\014\177\007\246\014\177\014\177\014\177\b\250*Z\014\177\000\242\014\177\004F\014\177\014\177\014\177\014\177\014\177\014\177\015\134\014\177\b\182\014\177*j\014\177\024\130\014\177\014\177\014\177\b\006\b^\014\177\014\177\014\177\014\177\014\177\014\177\014\177\014\177\007\025\014\177\000\242\014\177\014\177\014\177\014\177\014\177\014\177\014\177\014\177\014\177\014\177\014\177*\166\014\177\014\177\014\177\014\177\014\177\014\177\014\177\025\230\014\177\014\177\014\177\000\242!\170\000\242\b\142\014\177\014\177\014\177\014\177\r\153\014\177\014\177\025\206\014\177\014\177\014\177\014\177\014\177\014\177\014\177\014\177\026\234\014\177\014\177\000\242\014\177\014\177\b\146\014\177\014\177\014\177\014\177\014\177\014\177\014\177\014\177\014\177\014\177\014\177\014\177\014\177\014\177\014\177\014\177\b\250\b\254\014\177\014\177\014\177\014\177\014\189\r\165\014\189\020U\014\189\000\242\014\189\014\189\014\189\016F\014\189\014\189\014\189\014\189\016\178\014\189\014\189\020U\025\206\014\189\014\189\014\189\rN\014\189\014\189\014\189\014\189\007\190\014\189\b\158\014\189\014\189\014\189\014\189\014\189\023~\014\189\014\189\014\189\027>\b\166\014\189\b\186\014\189\b\170\014\189\014\189\014\189\014\189\014\189\014\189\023\150\014\189\023\162\014\189\023\190\014\189\024\174\014\189\014\189\014\189\025\230\r\153\014\189\014\189\014\189\014\189\014\189\014\189\014\189\014\189\023\226\014\189\024\006\014\189\014\189\014\189\014\189\014\189\014\189\014\189\014\189\014\189\014\189\014\189\031\202\014\189\014\189\014\189\014\189\014\189\014\189\014\189\029N\014\189\014\189\014\189\t\214\030j\012\194\005\138\014\189\014\189\014\189\014\189\007\158\014\189\014\189\b\245\014\189\014\189\014\189\014\189\014\189\014\189\014\189\014\189\025\230\014\189\014\189\025\206\014\189\014\189\b\174\014\189\014\189\014\189\014\189\014\189\014\189\014\189\014\189\014\189\014\189\014\189\014\189\014\189\014\189\014\189\014\189\t\230\027R\014\189\014\189\014\189\014\189\014\205\007\030\014\205\018\246\014\205\030n\014\205\014\205\014\205\004}\014\205\014\205\014\205\014\205\016B\014\205\014\205\004\210\n\141\014\205\014\205\014\205\n\141\014\205\014\205\014\205\014\205\t\242\014\205\n\006\014\205\014\205\014\205\014\205\014\205\024\162\014\205\014\205\014\205\n\002\000\242\014\205\004\218\014\205\b\214\014\205\014\205\014\205\014\205\014\205\014\205\024\198\014\205\024\234\014\205 \014\014\205\024\210\014\205\014\205\014\205\b\014\021\186\014\205\014\205\014\205\014\205\014\205\014\205\014\205\014\205\b\226\014\205\025\230\014\205\014\205\014\205\014\205\014\205\014\205\014\205\014\205\014\205\014\205\014\205\000\242\014\205\014\205\014\205\014\205\014\205\014\205\014\205\004F\014\205\014\205\014\205\031\226\003\154\016\194\003\154\014\205\014\205\014\205\014\205\r\194\014\205\014\205\031.\014\205\014\205\014\205\014\205\014\205\014\205\014\205\014\205\r\225\014\205\014\205\025\206\014\205\014\205\t\018\014\205\014\205\014\205\014\205\014\205\014\205\014\205\014\205\014\205\014\205\014\205\014\205\014\205\014\205\014\205\014\205$\198\029\n\014\205\014\205\014\205\014\205\014\197\t\130\014\197\t\022\014\197\002V\014\197\014\197\014\197\n\194\014\197\014\197\014\197\014\197\003\182\014\197\014\197\b2\025\206\014\197\014\197\014\197\tN\014\197\014\197\014\197\014\197\007\190\014\197\t\138\014\197\014\197\014\197\014\197\014\197\t\218\014\197\014\197\014\197\029\030\0071\014\197\n\178\014\197\n\198\014\197\014\197\014\197\014\197\014\197\014\197\002\234\014\197\021\186\014\197\000\242\014\197\024\246\014\197\014\197\014\197\001\230\t\222\014\197\014\197\014\197\014\197\014\197\014\197\014\197\014\197\002\129\014\197\025\230\014\197\014\197\014\197\014\197\014\197\014\197\014\197\014\197\014\197\014\197\014\197!\178\014\197\014\197\014\197\014\197\014\197\014\197\014\197\t\142\014\197\014\197\014\197.\167\003\242\0071!\246\014\197\014\197\014\197\014\197\t\234\014\197\014\197\t>\014\197\014\197\014\197\014\197\014\197\014\197\014\197\014\197\025\230\014\197\014\197\016B\014\197\014\197\t\246\014\197\014\197\014\197\014\197\014\197\014\197\014\197\014\197\014\197\014\197\014\197\014\197\014\197\014\197\014\197\014\197\t\146!\254\014\197\014\197\014\197\014\197\015\005\"b\015\005\002\250\015\005\t\001\015\005\015\005\015\005\011F\015\005\015\005\015\005\015\005\004\210\015\005\015\005\007\025\n^\015\005\015\005\015\005\000\242\015\005\015\005\015\005\015\005\t\250\015\005*\194\015\005\015\005\015\005\015\005\015\005\017\"\015\005\015\005\015\005\004\218\012>\015\005\007\025\015\005\007\129\015\005\015\005\015\005\015\005\015\005\015\005*\218\015\005\n&\015\005\000\242\015\005\025\018\015\005\015\005\015\005\001\230\017\222\015\005\015\005\015\005\015\005\015\005\015\005\015\005\015\005\0116\015\005\011J\015\005\015\005\015\005\015\005\015\005\015\005\015\005\015\005\015\005\015\005\015\005\nz\015\005\015\005\015\005\015\005\015\005\015\005\015\005\004\002\015\005\015\005\015\005\011\166#R\011\186\019\201\015\005\015\005\015\005\015\005!*\015\005\015\005\nR\015\005\015\005\015\005\015\005\015\005\015\005\015\005\015\005\003\182\015\005\015\005\b2\015\005\015\005\n\170\015\005\015\005\015\005\015\005\015\005\015\005\015\005\015\005\015\005\015\005\015\005\015\005\015\005\015\005\015\005\015\005\nR#\154\015\005\015\005\015\005\015\005\0051\012\154\0051\012\174\0051\011\182\0051\0051\0051\012\170\0051\0051\0051\0051\003\182\0051\0051\b2\012F\0051\0051\0051\n]\0051\0051\0051\0051\012\206\0051\012\226\0051\0051\0051\0051\0051\n\182\0051\0051\0051\007\025\r\006\0051\r\026\0051\n\186\0051\0051\0051\0051\0051\0051\000\242\0051\012\222\0051\000\242\0051\019\201\0051\0051\0051\002v\002\226\0051\0051\0051\0051\0051\0051\0051\0051\r\022\0051\004\210\0051\0051\0051\0051\0051\0051\0051\0051\0051\0051\0051\003\242\018\n\0051\0051\018\018\0051\0051\018z\016\246\0051\0051\0051\011:\004\218\000\242\019\197\0051\0051\0051\0051\011>\0051\0051\001\246\0051\0051\0051\0051\0051\018\026\0051\018\130\000\242\018\138\0051\011\130\0051\0051\011\146\0051\0051\0051\0051\0051\0051\0051\0051\0051\0051\0051\0051\0051\0051\0051\0051\001\246\0051\0051\0051\0051\0051\014\157\r6\014\157\rz\014\157\016\242\014\157\014\157\014\157\ni\014\157\014\157\014\157\014\157\004\210\014\157\014\157\004\210(\166\014\157\014\157\014\157$\146\014\157\014\157\014\157\014\157\r\130\014\157\031\150\014\157\014\157\014\157\014\157\014\157\011\170\014\157\014\157\014\157\004\218\rN\014\157\004\218\014\157\011\174\014\157\014\157\014\157\014\157\014\157\014\157\023z\014\157\016\246\014\157\t\138\014\157\019\197\014\157\014\157\014\157\n\169\003\022\014\157\014\157\014\157\014\157\014\157\014\157\014\157\014\157\014\194\014\157\014\214\014\157\014\157\014\157\014\157\014\157\014\157\014\157\014\157\014\157\014\157\014\157\011\242\018\n\014\157\014\157\018\018\014\157\014\157\018z\001\230\014\157\014\157\014\157\015\226.b\015\242\001\246\014\157\014\157\014\157\014\157,\006\014\157\014\157,\154\014\157\014\157\014\157\014\157\014\157\018\026\014\157\018\130\022\198\018\138\014\157\012\n\014\157\014\157\t\142\014\157\014\157\014\157\014\157\014\157\014\157\014\157\014\157\014\157\014\157\014\157\014\157\014\157\014\157\014\157\014\157':\014\157\014\157\014\157\014\157\014\157\002\149\r\142\002\149\018V\002\149\018f\003\150\003\154\002\149!\230\003j\002\149\018R\002\149\024\158\bf\002\149\000\242\t\138\002\149\002\149\002\149!r\002\149\002\149\002\149\001\234\018\166\018j\018\182\bn\002\149\002\149\002\149\002\149\027\130\002\149\018r\002\149\r\221\021r\br\021\130\tv\012Z\002\149\002\149\002\149\002\149\002\149\002\149\014\194\t\182\014\246\001\190\000\242\002\149#r\002\149\002\149\003\138\003v\022R\t\190\r\178\002\149\002\149\002\149\r\182\r\186\r\198\022\182\023\178\022\202\002\149\nJ\002\149\002\149\002\149\002\149\002\149\002\149\002\149\002\149\002\149\012f\018\n\nb\nf\018\018\r\206\r\222\018z\rN\002\149\002\149\002\149\012\158#z'\218\014\030\002\149\n\134\n\138\002\149\012\162\002\149\002\149\b\237\002\149\002\149\002\149\002\149\r\226\023\186\r\230\018\130\012\198\024*\002\149\023\030\002\149\002\149\028\226\002\149\002\149\002\149\002\149\002\149\002\149\002\149\n\142\r\238\002\149\002\149\002\149\015\250\007\166\002\149\002\149\012\210\003\154\002\149\002\149\002\149\002\149\014\241\028J\014\241\028Z\014\241\rN\003\150\003\154\014\241'\162\003j\014\241\014\241\014\241\030\150\bf\014\241\r\190\005\001\014\241\014\241\014\241\011\142\014\241\014\241\014\241\001\234\"\154\014\241\012\214\bn\014\241\014\241\014\241\014\241\012\254\014\241\014\241\014\241!\190\001\006\br\001\190\tv\r\n\014\241\014\241\014\241\014\241\014\241\014\241\r\197\t\182\t\142\001\190\000\242\014\241\r\201\014\241\014\241\003\138\017\"\n\193\t\190\r\178\014\241\014\241\014\241\r\182\r\186\r\198 \022\014\241\001\230\014\241\nJ\014\241\014\241\014\241\014\241\014\241\014\241\014\241\014\241\014\241\"n\014\241\nb\nf\014\241\r\206\r\222\014\241\002\130\014\241\014\241\014\241'\146\001\006'\166\001\190\014\241\n\134\n\138\014\241\r\014\014\241\014\241\rn\014\241\014\241\014\241\014\241\r\226\014\241\r\230\014\241\"\002\014\241\014\241)\218\014\241\014\241\000\242\014\241\014\241\014\241\014\241\014\241\014\241\014\241\n\142\r\238\014\241\014\241\014\241\015\250\007\166\014\241\014\241!\194!\250\014\241\014\241\014\241\014\241\014\237$\158\014\237\rv\014\237\t\t\003\150\003\154\014\237'\202\003j\014\237\014\237\014\237\"&\bf\014\237\"\182\014f\014\237\014\237\014\237\t\005\014\237\014\237\014\237\001\234(\"\014\237(2\bn\014\237\014\237\014\237\014\237\017\"\014\237\014\237\014\237\011\213\"v\br\rN\tv\014n\014\237\014\237\014\237\014\237\014\237\014\237#F\t\182\000\242\001\190\000\242\014\237\".\014\237\014\237\003\138\b\237\014\162\t\190\r\178\014\237\014\237\014\237\r\182\r\186\r\198$\254\014\237\0071\014\237\nJ\014\237\014\237\014\237\014\237\014\237\014\237\014\237\014\237\014\237$\170\014\237\nb\nf\014\237\r\206\r\222\014\237#\218\014\237\014\237\014\237\nu#~\003V\000\242\014\237\n\134\n\138\014\237\017\"\014\237\014\237\011\209\014\237\014\237\014\237\014\237\r\226\014\237\r\230\014\237$\n\014\237\014\237\tN\014\237\014\237\014\174\014\237\014\237\014\237\014\237\014\237\014\237\014\237\n\142\r\238\014\237\014\237\014\237\015\250\007\166\014\237\014\237$:#v\014\237\014\237\014\237\014\237\002\245\014\198\002\245\b\241\002\245\020]\003\150\003\154\002\245\014\202\003j\002\245\018R\002\245#\186\bf\002\245\rA\014\238\002\245\002\245\002\245\011\201\002\245\002\245\002\245\001\234\003\242\018j\0156\bn\002\245\002\245\002\245\002\245\015>\002\245\018r\002\245\011\197\"v\br\015F\tv\015\146\002\245\002\245\002\245\002\245\002\245\002\245\007\025\t\182\003\154\001\190\r=\002\245\003\242\002\245\002\245\003\138\000\242(\174\t\190\r\178\002\245\002\245\002\245\r\182\r\186\r\198\015\154\023\178\015\198\002\245\nJ\002\245\002\245\002\245\002\245\002\245\002\245\002\245\002\245\002\245\015\230\002\245\nb\nf\015\238\r\206\r\222\002\245%R\002\245\002\245\002\245\000\242\018\142\000\242\t\130\002\245\n\134\n\138\002\245\016N\002\245\002\245\000\242\002\245\002\245\002\245\002\245\r\226\023^\r\230\023j\007\025\rA\002\245\016Z\002\245\002\245.^\002\245\002\245\002\245\002\245\002\245\002\245\002\245\n\142\r\238\002\245\002\245\002\245\015\250\007\166\002\245\002\245\019\233\007\025\002\245\002\245\002\245\002\245\007\025\007\025\007\025\007\025\007\025\007\025\007\025\007\025\007\025\007\025\r=\007\025\007\202\007\025\007\025\019\233\007\025\007\025\007\025\007\025\007\025\007\025\007\025\007\025\007\025\007\025\007\025\007\025\007\025\007\025\016r\007\025\007\025\016B\007\025\000\242\007\025\007\025\007\025\000\242\007\025\007\025\007\025\007\025\007\025\000\242\016\218\007\025\007\025\007\025\007\025\007\025\007\025\007\025\007\025\007\025\000\242\007\025\007\025\007\025\007\025\007\025\007\025\007\025\007\025\007\025\000\242\007\025\007\025\007\025\007\025\007\025,\014\007\025\007\025\007\025\007\025\007\025\017f\007\025\017n\017\154\007\025\007\025\007\025\007\025\007\025\007\025(\178\007\025\007\025\007\025\007\025\017\170\007\025\007\025\007\025\007\025\007\025\007\025\007\025\007\025\007\025\007\025\007\025\007\025\019\237\007\025\007\025\007\025*\242\007\025\007\025\007\025\007\025\007\025\007\025\000\242\000\242\007\025\018\014\007\025\007\218\007\025\002\178\007\025,\018\019\237\007\025\007\025\007\025\007\025,R\002a\007\025\007\025\007\025\007\025!\158\007\025\007\025\000\169\007\025\000\169\000\169\000\169\000\169\000\169\000\169\000\169\000\169\007\025\000\169\000\242\000\169\000\169\018Z\000\169\000\169\000\169,\162\018b\000\169\000\169\000\n\000\169\000\169\000\169\000\169\018n\000\169\018~\000\169\000\169,\166\000\169,\230\000\169\000\169\000\169\004F\000\169\000\169\000\169\002a\000\169#>$f\000\169\000\169\000\169\000\169\000\169\000\169\000\169\000\169\000\169\002a\002a\000\169\000\169\bf\004\002\000\169\000\169\000\169\000\242\000\169\000\169\000\169\000\169\000\169\000\169\018\150\000\169\000\169\000\169\000\169\004F\n\222\000\169\b\194#\178\000\169\004F\000\169\000\169\000\169\000\169$\002\000\169\000\169\000\169\b\198\b\202\n\226\002\190\018\170\000\169\000\169\000\169\000\169\000\169\000\169\000\169\000\169\000\169\0046\b\206\003\226\000\169\r\169\001\161\000\169\020i\000\169\003\186\003\198\000\226\018\178\021v\nJ\000\169\003\210\"\"\021~\004F\021\206\004F\000\169\000\169\000\169\000\169\001\161\021\238\000\169\000\169\000\169\000\006\022\018\000\169\n}\003\146\003\150\003\154\003\214\003\158\003j\n\134\003\170\"*\022&\bf\001\n\bj\000\242\022F\n\149\003v\022^\022n\n\149\n}\001\234\022\142\022\154\022\186\t\186\001\018\016&\016*\001\030\tf\001\"\022\190\011\205\tr\n\142\br\023\018\tv\023*\031\234\001&\r\169\017\198\017\202\n}\t\170\t\182\t\194\t\198\017\206\r\146\029b\0016\n}\003\138\023:\023f\t\190\r\178\n}\n}\000\242\r\182\r\186\r\198\r\210\r\234\002v\001\161\nJ\n}\n}\001:\001>\001B\001F\001J\023r\002z\r\250\r\169\nb\nf\001N\r\206\r\222\001\234\023\134\n\149\023\158\001R\015\218\001\161\014\006\014\030\017\226\n\134\n\138#\254\017\246\001\161\001V\018\226\023\170\n}\t\014\023\198\r\226\001Z\r\230\001\161\n\133\016R\023\234\001\246\n\133\n}\024\014\015\218\0246\003\138\001\150\011\142\024Z$\006\n\142\r\238\024~\001\154\018\226\025\174\007\166\001\162\001\166\017\250%z\001\170\000\006\001\174\001\178\001\249\003\146\003\150\003\154\024\170\003\158\003j\024\206\003\170\011\197\024\242\bf\001\n\bj\015\218\025F\029f\016\"\016^\029r\n\177\001\249\001\234\019\221\n\177\018\226\t\186\001\018\016&\016*\001\030\tf\001\"\025R\025^\tr\019\221\br\b\133\tv\025z\016.\001&\025\130\017\198\017\202\001\249\t\170\t\182\t\194\t\198\017\206\r\146\025\182\0016\001\249\003\138\tU\n\133\t\190\r\178\001\249\001\249\000\242\r\182\r\186\r\198\r\210\r\234\026\222\019\221\nJ\001\249\001\249\001:\001>\001B\001F\001J\011\250\n.\r\250\025\206\nb\nf\001N\r\206\r\222\014\194\027\018\014\246\027F\001R\b\133\027^\014\006\014\030\017\226\n\134\n\138\0182\017\246\002^\001V\b\214\027\146\001\249\n\177\019\221\r\226\001Z\r\230\019\221*^\027\202\b\133\b\218\b\222\001\249\027\234\028:\028N\028V\001\150\011\238\000\242\003\182\n\142\r\238\b2\001\154\b\226\025\174\007\166\001\162\001\166\017\250\028\158\001\170\028\198\001\174\001\178\002\217\028\242\002\217(n\002\217\029\018\003\150\003\154\002\217\029B\003j\002\217\tU\002\217\029\238\bf\002\217\030\018\030\030\002\217\002\217\002\217\0302\002\217\002\217\002\217\001\234\030V\030b\n\022\bn\002\217\002\217\002\217\002\217\030v\002\217\030z\002\217\025\230\011\158\br\030\166\tv\011j\002\217\002\217\002\217\002\217\002\217\002\217\011\218\t\182\030\198\r\202\004\129\002\217\011\226\002\217\002\217\003\138\0316\015\218\t\190\r\178\002\217\002\217\002\217\r\182\r\186\r\198\r\181\004\129\018\226\002\217\nJ\002\217\002\217\002\217\002\217\002\217\002\217\002\217\002\217\002\217\031F\018\n\nb\nf\018\018\r\206\r\222\018z\031Z\002\217\002\217\002\217\031\134\031\146\031\214 \030\002\217\n\134\n\138\002\217 &\002\217\002\217 6\002\217\002\217\002\217\002\217\r\226\018\026\r\230\018\130\030\234\018\138\002\217 \254\002\217\002\217!\002\002\217\002\217\002\217\002\217\002\217\002\217\002\217\n\142\r\238\002\217\002\217\002\217\015\250\007\166\002\217\002\217!\"\017\134\002\217\002\217\002\217\002\217\0121!:\0121!>\0121!\206!\210\"\n\0121\"\014\"6\0121\002a\0121\001!\002a\0121\":\"R\0121\0121\0121\"\202\0121\0121\0121\017z\002a\002a z\"\250\0121\0121\0121\0121\001!\0121\"\254\0121\000\n#\"\000\242#N\002a\011\154\0121\0121\0121\0121\0121\0121#^\019\221#\134#\138\000\n\0121\002a\0121\0121\001!\019\221!\222#\150#\166\0121\0121\0121\012\018\001!#\194\r\209\002a\002a\0121\001!\0121\0121\0121\0121\0121\0121\0121\0121\0121#\210\018\n\001!\002a\018\018\000\242#\230\018z$\018\0121\0121\0121$\022$\"\019\221$2\0121$F\017\138\0121%.\0121\0121\002a\0121\0121\0121\0121\004F\018\026\000\242\018\130%>\018\138\0121\001!\0121\0121%J\0121\0121\0121\0121\0121\0121\0121\002^\001!\0121\0121\0121%r\019\221\0121\0121\003\154*\014\0121\0121\0121\0121\003\017\011\158\003\017%~\003\017\011j\011\206\t\142\003\017\017\242%\174\003\017\011\218\003\017%\210%\250\003\017&f\011\226\003\017\003\017\003\017&\174\003\017\003\017\003\017\011\158\r\209\003\222&\182\011j\003\017\003\017\003\017\003\017\r\209\003\017\011\218\003\017\024.&\206\t\130&\218\011\226'R\003\017\003\017\003\017\003\017\003\017\003\017\001\230\n\250'f'\138\024R\003\017\024v\003\017\003\017\007\134'\150'\154\n\n\n\014\003\017\003\017\003\017\011\254'\214\n\026(\026\027j\r=\003\017(&\003\017\003\017\003\017\003\017\003\017\003\017\003\017\003\017\003\017(.\018\n(V(f\018\018\nj\nr\018z(\158\003\017\003\017\003\017(\210\003\226(\250)\006\003\017)>)J\003\017)j\003\017\003\017)v\003\017\003\017\003\017\003\017)\138\018\026\000\242\018\130\000\242\018\138\003\017)\150\003\017\003\017)\186\003\017\003\017\003\017\003\017\003\017\003\017\003\017)\246\026Z\003\017\003\017\003\017\005v*r\003\017\003\017*\142*\174\003\017\003\017\003\017\003\017\003\t*\186\003\t+2\003\t+6\n\017\t\142\003\t\026r+R\003\t\018\n\003\t\001\230\018\018\003\t+V\018z\003\t\003\t\003\t+\202\003\t\003\t\003\t\011\158(\142\r=+\210\011j\003\t\003\t\003\t\003\t,2\003\t\011\218\003\t\r\169\018\026,r\018\130\011\226\018\138\003\t\003\t\003\t\003\t\003\t\003\t\005%\016\030,\198\001\190-\006\003\t-N\003\t\003\t\b\194\003\226-\150\025\186\026\238\003\t\003\t\003\t\027\"\027V\027b.\014\b\198\b\202\003\t.\026\003\t\003\t\003\t\003\t\003\t\003\t\003\t\003\t\003\t\018\n\018\n\b\206\018\018\018\018\005\029\018z\018z.\"\003\t\003\t\003\t\000\242.+\005v.;\003\t.N\007\177\003\t.j\003\t\003\t.\135\003\t\003\t\003\t\003\t\018\026\018\026\018\130\018\130\018\138\018\138\003\t.\151\003\t\003\t\028B\003\t\003\t\003\t\003\t\003\t\003\t\003\t.\179/\007\003\t\003\t\003\t\000\242\005%\003\t\003\t/#/.\003\t\003\t\003\t\003\t\012E/\131\012E/\151\012E/\159\t\030\003\154\012E\030J/\219\012E\003j\012E\t\"/\227\012E\000\000\000\000\012E\012E\012E\rN\012E\012E\012E\001\234\002a\002a*6\005\029\012E\012E\012E\012E\000\000\012E\000\000\012E\000\000\000\000\002V\000\000\002a'\190\012E\012E\012E\012E\012E\012E\000\000\r\166\000\000\030N\000\n\012E\000\000\012E\012E\003\138\rN\004\238\000\000\000\000\012E\012E\012E\0182\r\181\030Z\r\181\r\181\002a\012E\000\000\012E\012E\012E\012E\012E\012E\012E\012E\012E\000\000\018\n\002\234\002a\018\018\000\242\000\000\018z\000\000\012E\012E\012E\000\000\016:\000\000\000\000\012E\000\000\000\000\012E\n\138\012E\012E\000\000\012E\012E\012E\012E\011\185\018\026\002V\018\130\011\185\018\138\012E\n\029\012E\012E\000\000\012E\012E\012E\012E\012E\012E\012E\000\000/\019\012E\012E\012E\005\234&\226\012E\012E\000\000\000\000\012E\012E\012E\012E\012Y\011\158\012Y\000\000\012Y\011j'\194\t\142\012Y\000\000\000\000\012Y\011\218\012Y\011\185\002\234\012Y\000\000\011\226\012Y\012Y\012Y\000\000\012Y\012Y\012Y\015\218\r\181\b\214\000\000\000\000\012Y\012Y\012Y\012Y\r\181\012Y\018\226\012Y\002\250\b\218\b\222\000\000\011\185\012*\012Y\012Y\012Y\012Y\012Y\012Y\001\230\016\030\000\000\027\158\b\226\012Y\000\000\012Y\012Y\007\150\000\000\000\000\025\186\026\238\012Y\012Y\012Y\027\"\027V\027b\000\000\000\000\000\000\012Y\014\026\012Y\012Y\012Y\012Y\012Y\012Y\012Y\012Y\012Y\011\185\018\n\000\000\005\206\018\018\011]\000\000\018z\n\165\012Y\012Y\012Y\n\165\003\226\000\000\000\000\012Y\000\000\000\000\012Y\000\000\012Y\012Y\000\000\012Y\012Y\012Y\012Y\002\250\018\026\000\242\018\130\000\000\018\138\012Y\027\210\012Y\012Y\000\000\012Y\012Y\012Y\012Y\012Y\012Y\012Y\000\000\000\000\012Y\012Y\012Y\005v\000\000\012Y\012Y\000\242\000\000\012Y\012Y\012Y\012Y\012m\011]\012m\000\000\012m\011]\000\000\002V\012m\006)\000\000\012m\011]\012m!\238\000\000\012m\000\000\011]\012m\012m\012m\000\000\012m\012m\012m\006)\000\000-\182\000\000\012~\012m\012m\012m\012m\tZ\012m\006)\012m\000\000\000\000\000\000\002V\006)\000\000\012m\012m\012m\012m\012m\012m\011\158\000\000\002\234\000\000\011j\012m\000\000\012m\012m\"\026\000\000\011\218\005\254\000\000\012m\012m\012m\011\226 \218\016~\000\000\000\000\000\000\012m \242\012m\012m\012m\012m\012m\012m\012m\012m\012m\000\000\018\n\"F\002\234\018\018\000\000\017^\018z\000\000\012m\012m\012m\000\000\000\000\000\000\000\000\012m\002v\000\000\012m\003j\012m\012m\000\000\012m\012m\012m\012m\000\000\018\026\011y\018\130\016\226\018\138\012m\007U\012m\012m\000\000\012m\012m\012m\012m\012m\012m\012m\031\006\"\170\012m\012m\012m\000\000\000\242\012m\012m\000\000\000\000\012m\012m\012m\012m\002\221.F\002\221\001\246\002\221\002\250\000\000\002V\002\221\011y\000\000\002\221\030J\002\221\000\000\003j\002\221\030Z\000\000\002\221\002\221\002\221\000\000\002\221\002\221\002\221\011y\000\000\011\025\000\000\011j\002\221\002\221\002\221\002\221\000\000\002\221\011y\002\221\000\000\002\250\000\000\000\000\011y\000\000\002\221\002\221\002\221\002\221\002\221\002\221\006\177\n\138\002\234\000\000\000\000\002\221\030N\002\221\002\221\000\000\000\000\rN\004F\000\000\002\221\002\221\002\221\019\173\019\173\000\000\000\000\019\173\030Z\002\221\000\000\002\221\002\221\002\221\002\221\002\221\002\221\002\221\002\221\002\221\000\000\018\n\000\000\000\000\018\018\000\000\000\000\018z\000\000\002\221\002\221\002\221\000\242\000\000\000\000\000\000\002\221\000\000\000\000\002\221\000\000\002\221\002\221\n\138\002\221\002\221\002\221\002\221\n\193\018\026\000\242\018\130\n\193\018\138\002\221\000\000\002\221\002\221\000\000\002\221\002\221\002\221\002\221\002\221\002\221\002\221\011\025\025\254\002\221\002\221\002\221\000\000\006\177\002\221\002\221)\026\000\000\002\221\002\221\002\221\002\221\002\249\000\000\002\249\000\000\002\249\002\250\000\000\004\002\002\249\019\173\000\000\002\249\003\154\002\249\n\193\003j\002\249\000\000\000\000\002\249\002\249\002\249\rN\002\249\002\249\002\249\011\158\000\000\b:\000\000\011j\002\249\002\249\002\249\002\249\000\000\002\249\011\218\002\249\000\000\019\173\000\000\025\206\011\226\000\000\002\249\002\249\002\249\002\249\002\249\002\249\006\169\0046\000\000%V\000\000\002\249!f\002\249\002\249\0182\003\186\003\198\r\181\000\000\002\249\002\249\002\249\003\210\000\000\000\000\000\000\000\000\030Z\002\249\025\206\002\249\002\249\002\249\002\249\002\249\002\249\002\249\002\249\002\249\002\130\002\249\000\000\r!\018\018\003\214\000\000\002\249\0182\002\249\002\249\002\249\000\242\000\000\000\000\000\000\002\249\000\000\000\000\002\249\000\000\002\249\002\249\n\138\002\249\002\249\002\249\002\249\000\000\018\026\012\185\018\130\000\000\018\138\002\249\000\000\002\249\002\249\000\000\002\249\002\249\002\249\002\249\002\249\002\249\002\249\000\000\r!\002\249\002\249\002\249\000\000\006\169\002\249\002\249\000\000\025\230\002\249\002\249\002\249\002\249\003\r\000\000\003\r\000\000\003\r\000\000\000\000\000\000\003\r\012\185\000\000\003\r\000\000\003\r\000\000\r!\003\r\000\000\015\218\003\r\003\r\003\r\rN\003\r\003\r\003\r\012\146\000\000\025\230\018\226\012\185\003\r\003\r\003\r\003\r\000\000\003\r\012\185\003\r\000\000\000\000\000\000\000\000\012\185\000\000\003\r\003\r\003\r\003\r\003\r\003\r\015\218\r\181\000\000\r!\000\000\003\r\000\000\003\r\003\r\005\206\000\000\018\226\r!\000\000\003\r\003\r\003\r\019\181\019\181\000\000\000\000\019\181\000\000\003\r\000\000\003\r\003\r\003\r\003\r\003\r\003\r\003\r\003\r\003\r\000\000\018\n\000\000\r\029\018\018\000\000\000\000\018z\000\000\003\r\003\r\003\r\000\000\000\000\000\000\000\000\003\r\000\000\000\000\003\r\000\000\003\r\003\r\000\000\003\r\003\r\003\r\003\r\011\181\018\026\000\242\018\130\011\181\018\138\003\r\000\000\003\r\003\r\000\000\003\r\003\r\003\r\003\r\003\r\003\r\003\r\000\000\r\029\003\r\003\r\003\r\000\000\000\000\003\r\003\r\000\000\000\000\003\r\003\r\003\r\003\r\012\149\000\000\012\149\000\000\012\149\000\000\000\000\002V\012\149\019\181\000\000\012\149\000\000\012\149\011\181\r\029\012\149\001\230\000\000\012\149\012\149\012\149\000\000\012\149\012\149\012\149-&\000\000\011\021\000\000\000\000\012\149\012\149\012\149\012\149\000\000\012\149\000\000\012\149\000\000\019\181\002V\000\000\011\181\000\000\012\149\012\149\012\149\012\149\012\149\012\149\000\000\000\000\002\234\r\029\000\000\012\149\019\165\012\149\012\149\005\206\000\000\014\210\r\029\003\226\012\149\012\149\012\149\019\177\019\177\016~\000\000\019\177\000\000\012\149\000\000\012\149\012\149\012\149\012\149\012\149\012\149\012\149\012\149\012\149\011\181\018\n\002\234\005\206\018\018\000\000\017\146\018z\000\000\012\149\012\149\012\149\000\000\000\000\000\000\000\000\012\149\005v\000\000\012\149\000\000\012\149\012\149\000\000\012\149\012\149\012\149\012\149\000\000\018\026\000\242\018\130\016\226\018\138\012\149\000\000\012\149\012\149\000\000\012\149\012\149\012\149\012\149\012\149\012\149\012\149\011\021\026\030\012\149\012\149\012\149\000\000\000\242\012\149\012\149\000\000\000\000\012\149\012\149\012\149\012\149\012\129\000\000\012\129\019\165\012\129\002\250\000\000\002V\012\129\019\177\000\000\012\129\000\000\012\129\002V\000\000\012\129\000\000\000\000\012\129\012\129\012\129\000\000\012\129\012\129\012\129\011\158\000\000\r}\000\000\011j\012\129\012\129\012\129\012\129\014\226\012\129\011\218\012\129\002\250\019\177\000\000\000\000\011\226\000\000\012\129\012\129\012\129\012\129\012\129\012\129\000\000\000\000\002\234\004\217\000\000\012\129\000\000\012\129\012\129\002\234\000\000\rN\004F\000\000\012\129\012\129\012\129\005\r\000\000\016~\000\000\000\000\000\000\012\129-\194\012\129\012\129\012\129\012\129\012\129\012\129\012\129\012\129\012\129\000\000\018\n\000\000\030j\018\018\000\000\017V\018z\000\000\012\129\012\129\012\129\000\000\b\245\000\000\004\217\012\129\000\000\000\000\012\129\000\000\012\129\012\129\000\000\012\129\012\129\012\129\012\129\000\000\018\026\000\242\018\130\016\226\018\138\012\129\000\000\012\129\012\129\000\000\012\129\012\129\012\129\012\129\012\129\012\129\012\129\r}\000\000\012\129\012\129\012\129\000\000\000\242\012\129\012\129\000\000\030n\012\129\012\129\012\129\012\129\002\141\000\000\002\141\000\000\002\141\002\250\000\000\000\000\002\141\005\233\000\000\002\141\002\250\002\141\000\000\000\000\002\141\000\000\000\000\002\141\002\141\002\141\000\000\002\141\002\141\002\141\005\233\000\000\000\000\000\000\012~\002\141\002\141\002\141\002\141\000\000\002\141\005\233\002\141\000\000\000\000\000\000\000\000\005\233\000\000\002\141\002\141\002\141\002\141\002\141\002\141\016~\004\217\000\000\000\000\000\000\002\141\000\000\002\141\002\141\000\000\000\000\000\000\004F\000\000\002\141\002\141\002\141\000\000\000\000\016~\000\000\017\194\000\000\002\141\000\000\002\141\002\141\002\141\002\141\002\141\002\141\002\141\002\141\002\141\000\000\002\141\000\000\000\000\000\000\000\000\029n\002\141\000\000\002\141\002\141\002\141\000\000\016\226\000\000\000\000\002\141\000\000\000\000\002\141\000\000\002\141\002\141\000\000\002\141\002\141\002\141\002\141\000\000\000\000\000\242\000\000\016\226\000\242\002\141\000\000\002\141\002\141\000\000\015\218\002\141\002\141\002\141\002\141\002\141\002\141\003\005\000\000\002\141\002\141\018\226\028\186\000\242\002\141\002\141\000\000\000\000\002\141\002\141\002\141\002\141\003\005\003\005\003\005\003\005\003\005\003\005\000\000\002V\003\005\006\025\000\000\003\005\000\000\003\005.\247\003\005\003\005\003\005\003\005\003\005\003\005\003\005\000\000\003\005\003\005\003\005\006\025\003\005\ry\000\000\012~\003\005\003\005\003\005\003\005\000\000\003\005\006\025\003\005\000\000\000\000\000\000\000\000\006\025\004F\003\005\003\005\003\005\003\005\003\005\003\005\003\005\000\000\002\234\000\000\000\000\003\005\000\000\003\005\003\005\000\000\000\000\000\000\004F\000\000\003\005\003\005\003\005\000\000\016~\016~\000\000\000\000\000\000\003\005\000\000\003\005\003\005\003\005\003\005\003\005\003\005\003\005\003\005\003\005\000\000\003\005\000\000\000\000\000\000\029\134\029\154\003\005\018\158\003\005\003\005\003\005\003\005\000\000\000\000\000\000\003\005\000\000\003\005\003\005\000\000\003\005\003\005\003\005\003\005\003\005\003\005\003\005\003\005\003\005\000\242\016\226\016\226\000\000\003\005\000\000\003\005\003\005\000\000\018\158\003\005\003\005\003\005\003\005\003\005\003\005\ry\000\000\003\005\003\005\003\005\000\242\000\242\003\005\003\005\000\000\000\000\003\005\003\005\003\005\003\005\012-\000\000\012-\000\000\012-\002\250\000\000\002V\012-\006\t\000\000\012-\000\000\012-\000\000\000\000\012-\000\000\000\000\012-\012-\012-\000\000\012-\012-\012-\006\t\000\000\r\137\000\000\012~\012-\012-\012-\012-\000\000\012-\006\t\012-\000\000\000\000\000\000\000\000\006\t\000\000\012-\012-\012-\012-\012-\012-\016~\000\000\002\234\000\000\000\000\012-\000\000\012-\012-\000\000\000\000\004F\004F\000\000\012-\012-\012-\000\000\016~\016~\000\000\029\178\000\000\012-\000\000\012-\012-\012-\012-\012-\012-\012-\012-\012-\000\000\012-\000\000\000\000\000\000 \006'r\012-\000\000\012-\012-\012-\000\000\016\226\000\000\000\000\012-\000\000\000\000\012-\000\000\012-\012-\000\000\012-\012-\012-\012-\000\000\000\000\000\242\016\226\016\226\000\242\012-\000\000\012-\012-\000\000\015\218\012-\012-\012-\012-\012-\012-\r\137\000\000\012-\012-\018\226\000\242\000\242\012-\012-\000\000\000\000\012-\012-\012-\012-\004Y\000\000\004Y\000\000\004Y\002\250\000\000\002V\004Y\022\166\000\000\004Y\000\000\004Y\000\000\000\000\019\006\000\000\000\000\004Y\019^\004Y\000\000\004Y\004Y\004Y\022\174\000\000\r\133\000\000\012~\019r\019\210\019\234\019\138\000\000\020\002\022\222\004Y\000\000\000\000\000\000\000\000\022\230\004F\004Y\019\162\004Y\020\026\0202\004Y\016~\000\000\002\234\000\000\000\000\004Y\000\000\020J\004Y\000\000\000\000\004F\004F\000\000\004Y\004Y\000\242\000\000\000\000\000\000\000\000+\254\000\000\004Y\000\000\004Y\004Y\019\030\019\186\020b\020z\020\218\004Y\004Y\000\000\004Y\000\000\000\000\000\000\000\000\000\000\004Y\000\000\004Y\004Y\020\242\000\000\016\226\000\000\000\000\004Y\000\000\000\000\004Y\000\000\004Y\021\n\000\000\004Y\004Y\004Y\004Y\000\000\000\000\000\242\000\000\000\000\000\242\004Y\000\000\004Y\004Y\000\000\021j\004Y\004Y\021\162\020\146\004Y\004Y\r\133\000\000\004Y\021\"\004Y\000\000\000\000\020\170\020\194\000\000\000\000\004Y\004Y\021:\021R\003\129\000\000\003\129\000\000\003\129\002\250\000\000\002V\003\129\005\249\000\000\003\129\000\000\003\129\000\000\000\000\003\129\000\000\000\000\003\129\003\129\003\129\000\000\003\129\003\129\003\129\005\249\000\000\031\002\000\000\012~\003\129\003\129\003\129\003\129\000\000\003\129\005\249\003\129\000\000\000\000\000\000\000\000\005\249\004F\003\129\003\129\003\129\003\129\003\129\003\129\000\000\000\000\002\234\000\000\000\000\003\129\000\000\003\129\003\129\000\000\000\000\000\000\000\000\000\000\003\129\003\129\003\129\000\000\000\000\000\000\000\000\000\000\000\000\003\129\000\000\003\129\003\129\003\129\003\129\003\129\003\129\003\129\003\129\003\129\000\000\003\129\000\000\000\000\000\000\000\000\000\000\003\129\000\000\003\129\003\129\003\129\000\000\000\000\000\000\000\000\003\129\000\000\000\000\003\129\000\000\003\129\003\129\000\000\003\129\003\129\003\129\003\129\000\000\000\000\000\242\000\000\000\000\000\000\003\129\000\000\003\129\003\129\000\000\015\218\003\129\003\129\003\129\003\129\003\129\003\129\031\006\000\000\003\129\003\129\018\226\000\000\000\000\003\129\003\129\000\000\000\000\003\129\003\129\003\129\003\129\003}\000\000\003}\000\000\003}\002\250\000\000\002V\003}\011\137\000\000\003}\000\000\003}\000\000\000\000\003}\000\000\000\000\003}\003}\003}\000\000\003}\003}\003}\011\158\000\000\r\149\000\000\011j\003}\003}\003}\003}\000\000\003}\011\137\003}\000\000\000\000\000\000\000\000\011\137\000\000\003}\003}\003}\003}\003}\003}\000\000\000\000\002\234\000\000\000\000\003}\000\000\003}\003}\000\000\000\000\000\000\000\000\000\000\003}\003}\003}\000\000\000\000\000\000\000\000\000\000\000\000\003}\000\000\003}\003}\019\030\003}\003}\003}\003}\003}\003}\000\000\003}\000\000\000\000\000\000\000\000\000\000\003}\000\000\003}\003}\003}\000\000\000\000\000\000\000\000\003}\000\000\000\000\003}\000\000\003}\003}\000\000\003}\003}\003}\003}\000\000\000\000\000\242\000\000\000\000\000\000\003}\001\133\003}\003}\000\000\003}\003}\003}\003}\003}\003}\003}\r\149\000\000\003}\003}\003}\000\000\000\000\003}\003}\000\000\001\133\003}\003}\003}\003}\003Q\000\000\003Q\000\000\003Q\002\250\000\000\002V\003Q\025\142\000\000\003Q\000\000\003Q\000\000\000\000\003Q\000\000\000\000\003Q\003Q\003Q\000\000\003Q\003Q\003Q\022\174\000\000\r\145\000\000\012~\003Q\003Q\003Q\003Q\000\000\003Q\022\222\003Q\000\000\000\000\000\000\000\000\022\230\000\000\003Q\003Q\003Q\003Q\003Q\003Q\016~\000\000\002\234\000\000\000\000\003Q\000\000\003Q\003Q\000\000\000\000\000\000\000\000\000\000\003Q\003Q\003Q\000\000\000\000\000\000\000\000\000\000\001\133\003Q\000\000\003Q\003Q\003Q\003Q\003Q\003Q\003Q\003Q\003Q\000\000\003Q\000\000\000\000\000\000\000\000\000\000\003Q\000\000\003Q\003Q\003Q\001\133\016\226\000\000\000\000\003Q\000\000\000\000\003Q\001\133\003Q\003Q\000\000\003Q\003Q\003Q\003Q\000\000\000\000\025\238\000\000\000\000\000\242\003Q\000\000\003Q\003Q\000\000\015\218\003Q\003Q\003Q\003Q\003Q\003Q\r\145\000\000\003Q\003Q\018\226\000\000\000\000\003Q\003Q\000\000\000\000\003Q\003Q\003Q\003Q\003M\000\000\003M\000\000\003M\002\250\000\000\002V\003M\000\000\000\000\003M\030\006\003M\000\000\000\000\003M\001\230\000\000\003M\003M\003M\000\000\003M\003M\003M-n\000\000-\206\000\000\000\000\003M\003M\003M\003M\000\000\003M\000\000\003M\000\000\000\000\000\000\000\000\rN\004F\003M\003M\003M\003M\003M\003M\000\000\000\000\002\234\000\000\000\000\003M\019\165\003M\003M\000\000\000\000\000\000\000\000\003\226\003M\003M\003M\000\000\000\000\000\000\000\000\000\000\000\000\003M\000\000\003M\003M\019\030\003M\003M\003M\003M\003M\003M\000\000\003M\000\000\000\000\000\000\000\000\000\000\003M\000\000\003M\003M\003M\000\000\000\000\000\000\000\000\003M\005v\000\000\003M\000\000\003M\003M\000\000\003M\003M\003M\003M\000\000\000\000\000\242\000\000\000\000\000\000\003M\000\000\003M\003M\000\000\003M\003M\003M\003M\003M\003M\003M-\210\026>\003M\003M\003M\000\000\000\000\003M\003M\000\000\000\000\003M\003M\003M\003M\003i\000\000\003i\019\165\003i\002\250\000\000\002V\003i\000\000\000\000\003i\000\000\003i\000\000\000\000\003i\000\000\000\000\003i\003i\003i\000\000\003i\003i\003i\011\158\000\000\r\161\000\000\011j\003i\003i\003i\003i\000\000\003i\011\218\003i\002V\000\000\000\000\000\000\011\226\000\000\003i\003i\003i\003i\003i\003i\000\000\000\000\002\234\000\000\000\000\003i\000\000\003i\003i\r\157\000\000\000\000\000\000\000\000\003i\003i\003i\000\000\000\000\000\000\000\000\000\000\000\000\003i\000\000\003i\003i\003i\003i\003i\003i\003i\003i\003i\002\234\003i\000\000\000\000\000\000\000\000\000\000\003i\000\000\003i\003i\003i\000\000\000\000\000\000\000\000\003i\000\000\000\000\003i\000\000\003i\003i\000\000\003i\003i\003i\003i\000\000\000\000\000\000\000\000\000\000\000\000\003i\000\000\003i\003i\000\000\015\218\003i\003i\003i\003i\003i\003i\r\161\000\000\003i\003i\018\226\000\000\000\000\003i\003i\000\000\000\000\003i\003i\003i\003i\003e\000\000\003e\000\000\003e\002\250\000\000\000\000\003e\000\000\000\000\003e\000\000\003e\000\000\000\000\019\006\r\157\000\000\003e\003e\003e\000\000\003e\003e\003e\000\000\000\000\000\000\000\000\000\000\003e\003e\003e\019\138\000\000\003e\002\250\003e\000\000\000\000\000\000\000\000\000\000\000\000\003e\019\162\003e\003e\003e\003e\000\000\000\000\000\000\000\000\000\000\003e\000\000\003e\003e\000\000\000\000\000\000\000\000\000\000\003e\003e\003e\000\000\000\000\000\000\000\000\000\000\000\000\003e\000\000\003e\003e\019\030\019\186\003e\003e\003e\003e\003e\000\000\003e\000\000\000\000\000\000\000\000\000\000\003e\000\000\003e\003e\003e\000\000\000\000\000\000\000\000\003e\000\000\000\000\003e\000\000\003e\003e\000\000\003e\003e\003e\003e\000\000\000\000\000\000\000\000\000\000\000\000\003e\000\000\003e\003e\000\000\003e\003e\003e\003e\003e\003e\003e\000\000\000\000\003e\003e\003e\000\000\000\000\003e\003e\000\000\000\000\003e\003e\003e\003e\003\137\000\000\003\137\000\000\003\137\000\000\000\000\000\000\003\137\000\000\000\000\003\137\000\000\003\137\000\000\000\000\003\137\000\000\000\000\003\137\003\137\003\137\000\000\003\137\003\137\003\137\000\000\000\000\000\000\000\000\000\000\003\137\003\137\003\137\003\137\000\000\003\137\000\000\003\137\000\000\000\000\000\000\000\000\000\000\000\000\003\137\003\137\003\137\003\137\003\137\003\137\000\000\000\000\000\000\000\000\000\000\003\137\000\000\003\137\003\137\000\000\000\000\000\000\000\000\000\000\003\137\003\137\003\137\000\000\000\000\000\000\000\000\000\000\000\000\003\137\000\000\003\137\003\137\003\137\003\137\003\137\003\137\003\137\003\137\003\137\000\000\003\137\000\000\000\000\000\000\000\000\000\000\003\137\000\000\003\137\003\137\003\137\000\000\000\000\000\000\000\000\003\137\000\000\000\000\003\137\000\000\003\137\003\137\000\000\003\137\003\137\003\137\003\137\000\000\000\000\000\000\000\000\000\000\000\000\003\137\000\000\003\137\003\137\000\000\015\218\003\137\003\137\003\137\003\137\003\137\003\137\000\000\000\000\003\137\003\137\018\226\000\000\000\000\003\137\003\137\000\000\000\000\003\137\003\137\003\137\003\137\003\133\000\000\003\133\000\000\003\133\000\000\000\000\000\000\003\133\000\000\000\000\003\133\000\000\003\133\000\000\000\000\003\133\000\000\000\000\003\133\003\133\003\133\000\000\003\133\003\133\003\133\000\000\000\000\000\000\000\000\000\000\003\133\003\133\003\133\003\133\000\000\003\133\000\000\003\133\000\000\000\000\000\000\000\000\000\000\000\000\003\133\003\133\003\133\003\133\003\133\003\133\000\000\000\000\000\000\000\000\000\000\003\133\000\000\003\133\003\133\000\000\000\000\000\000\000\000\000\000\003\133\003\133\003\133\000\000\000\000\000\000\000\000\000\000\000\000\003\133\000\000\003\133\003\133\019\030\003\133\003\133\003\133\003\133\003\133\003\133\000\000\003\133\000\000\000\000\000\000\000\000\000\000\003\133\000\000\003\133\003\133\003\133\000\000\000\000\000\000\000\000\003\133\000\000\000\000\003\133\000\000\003\133\003\133\000\000\003\133\003\133\003\133\003\133\000\000\000\000\000\000\000\000\000\000\000\000\003\133\000\000\003\133\003\133\000\000\003\133\003\133\003\133\003\133\003\133\003\133\003\133\000\000\000\000\003\133\003\133\003\133\000\000\000\000\003\133\003\133\000\000\000\000\003\133\003\133\003\133\003\133\003I\000\000\003I\000\000\003I\000\000\000\000\000\000\003I\000\000\000\000\003I\000\000\003I\000\000\000\000\003I\000\000\000\000\003I\003I\003I\000\000\003I\003I\003I\000\000\000\000\000\000\000\000\000\000\003I\003I\003I\003I\000\000\003I\000\000\003I\000\000\000\000\000\000\000\000\000\000\000\000\003I\003I\003I\003I\003I\003I\000\000\000\000\000\000\000\000\000\000\003I\000\000\003I\003I\000\000\000\000\000\000\000\000\000\000\003I\003I\003I\000\000\000\000\000\000\000\000\000\000\000\000\003I\000\000\003I\003I\003I\003I\003I\003I\003I\003I\003I\000\000\003I\000\000\000\000\000\000\000\000\000\000\003I\000\000\003I\003I\003I\000\000\000\000\000\000\000\000\003I\000\000\000\000\003I\000\000\003I\003I\000\000\003I\003I\003I\003I\000\000\000\000\000\000\000\000\000\000\000\000\003I\000\000\003I\003I\000\000\015\218\003I\003I\003I\003I\003I\003I\000\000\000\000\003I\003I\018\226\000\000\000\000\003I\003I\000\000\000\000\003I\003I\003I\003I\003E\000\000\003E\000\000\003E\000\000\000\000\000\000\003E\000\000\000\000\003E\000\000\003E\000\000\000\000\003E\000\000\000\000\003E\003E\003E\000\000\003E\003E\003E\000\000\000\000\000\000\000\000\000\000\003E\003E\003E\003E\000\000\003E\000\000\003E\000\000\000\000\000\000\000\000\000\000\000\000\003E\003E\003E\003E\003E\003E\000\000\000\000\000\000\000\000\000\000\003E\000\000\003E\003E\000\000\000\000\000\000\000\000\000\000\003E\003E\003E\000\000\000\000\000\000\000\000\000\000\000\000\003E\000\000\003E\003E\019\030\003E\003E\003E\003E\003E\003E\000\000\003E\000\000\000\000\000\000\000\000\000\000\003E\000\000\003E\003E\003E\000\000\000\000\000\000\000\000\003E\000\000\000\000\003E\000\000\003E\003E\000\000\003E\003E\003E\003E\000\000\000\000\000\000\000\000\000\000\000\000\003E\000\000\003E\003E\000\000\003E\003E\003E\003E\003E\003E\003E\000\000\000\000\003E\003E\003E\000\000\000\000\003E\003E\000\000\000\000\003E\003E\003E\003E\003A\000\000\003A\000\000\003A\000\000\000\000\000\000\003A\000\000\000\000\003A\000\000\003A\000\000\000\000\003A\000\000\000\000\003A\003A\003A\000\000\003A\003A\003A\000\000\000\000\000\000\000\000\000\000\003A\003A\003A\003A\000\000\003A\000\000\003A\000\000\000\000\000\000\000\000\000\000\000\000\003A\003A\003A\003A\003A\003A\000\000\000\000\000\000\000\000\000\000\003A\000\000\003A\003A\000\000\000\000\000\000\000\000\000\000\003A\003A\003A\000\000\000\000\000\000\000\000\000\000\000\000\003A\000\000\003A\003A\003A\003A\003A\003A\003A\003A\003A\000\000\003A\000\000\000\000\000\000\000\000\000\000\003A\000\000\003A\003A\003A\000\000\000\000\000\000\000\000\003A\000\000\000\000\003A\000\000\003A\003A\000\000\003A\003A\003A\003A\000\000\000\000\000\000\000\000\000\000\000\000\003A\000\000\003A\003A\000\000\015\218\003A\003A\003A\003A\003A\003A\000\000\000\000\003A\003A\018\226\000\000\000\000\003A\003A\000\000\000\000\003A\003A\003A\003A\003=\000\000\003=\000\000\003=\000\000\000\000\000\000\003=\000\000\000\000\003=\000\000\003=\000\000\000\000\003=\000\000\000\000\003=\003=\003=\000\000\003=\003=\003=\000\000\000\000\000\000\000\000\000\000\003=\003=\003=\003=\000\000\003=\000\000\003=\000\000\000\000\000\000\000\000\000\000\000\000\003=\003=\003=\003=\003=\003=\000\000\000\000\000\000\000\000\000\000\003=\000\000\003=\003=\000\000\000\000\000\000\000\000\000\000\003=\003=\003=\000\000\000\000\000\000\000\000\000\000\000\000\003=\000\000\003=\003=\019\030\003=\003=\003=\003=\003=\003=\000\000\003=\000\000\000\000\000\000\000\000\000\000\003=\000\000\003=\003=\003=\000\000\000\000\000\000\000\000\003=\000\000\000\000\003=\000\000\003=\003=\000\000\003=\003=\003=\003=\000\000\000\000\000\000\000\000\000\000\000\000\003=\000\000\003=\003=\000\000\003=\003=\003=\003=\003=\003=\003=\000\000\000\000\003=\003=\003=\000\000\000\000\003=\003=\000\000\000\000\003=\003=\003=\003=\003a\000\000\003a\000\000\003a\000\000\000\000\000\000\003a\000\000\000\000\003a\000\000\003a\000\000\000\000\003a\000\000\000\000\003a\003a\003a\000\000\003a\003a\003a\000\000\000\000\000\000\000\000\000\000\003a\003a\003a\003a\000\000\003a\000\000\003a\000\000\000\000\000\000\000\000\000\000\000\000\003a\003a\003a\003a\003a\003a\000\000\000\000\000\000\000\000\000\000\003a\000\000\003a\003a\000\000\000\000\000\000\000\000\000\000\003a\003a\003a\000\000\000\000\000\000\000\000\000\000\000\000\003a\000\000\003a\003a\003a\003a\003a\003a\003a\003a\003a\000\000\003a\000\000\000\000\000\000\000\000\000\000\003a\000\000\003a\003a\003a\000\000\000\000\000\000\000\000\003a\000\000\000\000\003a\000\000\003a\003a\000\000\003a\003a\003a\003a\000\000\000\000\000\000\000\000\000\000\000\000\003a\000\000\003a\003a\000\000\015\218\003a\003a\003a\003a\003a\003a\000\000\000\000\003a\003a\018\226\000\000\000\000\003a\003a\000\000\000\000\003a\003a\003a\003a\003]\000\000\003]\000\000\003]\000\000\000\000\000\000\003]\000\000\000\000\003]\000\000\003]\000\000\000\000\019\006\000\000\000\000\003]\003]\003]\000\000\003]\003]\003]\000\000\000\000\000\000\000\000\000\000\003]\003]\003]\019\138\000\000\003]\000\000\003]\000\000\000\000\000\000\000\000\000\000\000\000\003]\019\162\003]\003]\003]\003]\000\000\000\000\000\000\000\000\000\000\003]\000\000\003]\003]\000\000\000\000\000\000\000\000\000\000\003]\003]\003]\000\000\000\000\000\000\000\000\000\000\000\000\003]\000\000\003]\003]\019\030\019\186\003]\003]\003]\003]\003]\000\000\003]\000\000\000\000\000\000\000\000\000\000\003]\000\000\003]\003]\003]\000\000\000\000\000\000\000\000\003]\000\000\000\000\003]\000\000\003]\003]\000\000\003]\003]\003]\003]\000\000\000\000\000\000\000\000\000\000\000\000\003]\000\000\003]\003]\000\000\003]\003]\003]\003]\003]\003]\003]\000\000\000\000\003]\003]\003]\000\000\000\000\003]\003]\000\000\000\000\003]\003]\003]\003]\003Y\000\000\003Y\000\000\003Y\000\000\000\000\000\000\003Y\000\000\000\000\003Y\000\000\003Y\000\000\000\000\003Y\000\000\000\000\003Y\003Y\003Y\000\000\003Y\003Y\003Y\000\000\000\000\000\000\000\000\000\000\003Y\003Y\003Y\003Y\000\000\003Y\000\000\003Y\000\000\000\000\000\000\000\000\000\000\000\000\003Y\003Y\003Y\003Y\003Y\003Y\000\000\000\000\000\000\000\000\000\000\003Y\000\000\003Y\003Y\000\000\000\000\000\000\000\000\000\000\003Y\003Y\003Y\000\000\000\000\000\000\000\000\000\000\000\000\003Y\000\000\003Y\003Y\003Y\003Y\003Y\003Y\003Y\003Y\003Y\000\000\003Y\000\000\000\000\000\000\000\000\000\000\003Y\000\000\003Y\003Y\003Y\000\000\000\000\000\000\000\000\003Y\000\000\000\000\003Y\000\000\003Y\003Y\000\000\003Y\003Y\003Y\003Y\000\000\000\000\000\000\000\000\000\000\000\000\003Y\000\000\003Y\003Y\000\000\015\218\003Y\003Y\003Y\003Y\003Y\003Y\000\000\000\000\003Y\003Y\018\226\000\000\000\000\003Y\003Y\000\000\000\000\003Y\003Y\003Y\003Y\003U\000\000\003U\000\000\003U\000\000\000\000\000\000\003U\000\000\000\000\003U\000\000\003U\000\000\000\000\019\006\000\000\000\000\003U\003U\003U\000\000\003U\003U\003U\000\000\000\000\000\000\000\000\000\000\003U\003U\003U\019\138\000\000\003U\000\000\003U\000\000\000\000\000\000\000\000\000\000\000\000\003U\019\162\003U\003U\003U\003U\000\000\000\000\000\000\000\000\000\000\003U\000\000\003U\003U\000\000\000\000\000\000\000\000\000\000\003U\003U\003U\000\000\000\000\000\000\000\000\000\000\000\000\003U\000\000\003U\003U\019\030\019\186\003U\003U\003U\003U\003U\000\000\003U\000\000\000\000\000\000\000\000\000\000\003U\000\000\003U\003U\003U\000\000\000\000\000\000\000\000\003U\000\000\000\000\003U\000\000\003U\003U\000\000\003U\003U\003U\003U\000\000\000\000\000\000\000\000\000\000\000\000\003U\000\000\003U\003U\000\000\003U\003U\003U\003U\003U\003U\003U\000\000\000\000\003U\003U\003U\000\000\000\000\003U\003U\000\000\000\000\003U\003U\003U\003U\003\169\000\000\003\169\000\000\003\169\000\000\000\000\000\000\003\169\000\000\000\000\003\169\000\000\003\169\000\000\000\000\003\169\000\000\000\000\003\169\003\169\003\169\000\000\003\169\003\169\003\169\000\000\000\000\000\000\000\000\000\000\003\169\003\169\003\169\003\169\000\000\003\169\000\000\003\169\000\000\000\000\000\000\000\000\000\000\000\000\003\169\003\169\003\169\003\169\003\169\003\169\000\000\000\000\000\000\000\000\000\000\003\169\000\000\003\169\003\169\000\000\000\000\000\000\000\000\000\000\003\169\003\169\003\169\000\000\000\000\000\000\000\000\000\000\000\000\003\169\000\000\003\169\003\169\003\169\003\169\003\169\003\169\003\169\003\169\003\169\000\000\003\169\000\000\000\000\000\000\000\000\000\000\003\169\000\000\003\169\003\169\003\169\000\000\000\000\000\000\000\000\003\169\000\000\000\000\003\169\000\000\003\169\003\169\000\000\003\169\003\169\003\169\003\169\000\000\000\000\000\000\000\000\000\000\000\000\003\169\000\000\003\169\003\169\000\000\015\218\003\169\003\169\003\169\003\169\003\169\003\169\000\000\000\000\003\169\003\169\018\226\000\000\000\000\003\169\003\169\000\000\000\000\003\169\003\169\003\169\003\169\003\165\000\000\003\165\000\000\003\165\000\000\000\000\000\000\003\165\000\000\000\000\003\165\000\000\003\165\000\000\000\000\019\006\000\000\000\000\003\165\003\165\003\165\000\000\003\165\003\165\003\165\000\000\000\000\000\000\000\000\000\000\019r\019\210\019\234\019\138\000\000\020\002\000\000\003\165\000\000\000\000\000\000\000\000\000\000\000\000\003\165\019\162\003\165\020\026\0202\003\165\000\000\000\000\000\000\000\000\000\000\003\165\000\000\020J\003\165\000\000\000\000\000\000\000\000\000\000\003\165\003\165\000\242\000\000\000\000\000\000\000\000\000\000\000\000\003\165\000\000\003\165\003\165\019\030\019\186\020b\020z\020\218\003\165\003\165\000\000\003\165\000\000\000\000\000\000\000\000\000\000\003\165\000\000\003\165\003\165\020\242\000\000\000\000\000\000\000\000\003\165\000\000\000\000\003\165\000\000\003\165\021\n\000\000\003\165\003\165\003\165\003\165\000\000\000\000\000\000\000\000\000\000\000\000\003\165\000\000\003\165\003\165\000\000\003\165\003\165\003\165\003\165\020\146\003\165\003\165\000\000\000\000\003\165\021\"\003\165\000\000\000\000\020\170\020\194\000\000\000\000\003\165\003\165\021:\021R\003y\000\000\003y\000\000\003y\000\000\000\000\000\000\003y\000\000\000\000\003y\000\000\003y\000\000\000\000\003y\000\000\000\000\003y\003y\003y\000\000\003y\003y\003y\000\000\000\000\000\000\000\000\000\000\003y\003y\003y\003y\000\000\003y\000\000\003y\000\000\000\000\000\000\000\000\000\000\000\000\003y\003y\003y\003y\003y\003y\000\000\000\000\000\000\000\000\000\000\003y\000\000\003y\003y\000\000\000\000\000\000\000\000\000\000\003y\003y\003y\000\000\000\000\000\000\000\000\000\000\000\000\003y\000\000\003y\003y\003y\003y\003y\003y\003y\003y\003y\000\000\003y\000\000\000\000\000\000\000\000\000\000\003y\000\000\003y\003y\003y\000\000\000\000\000\000\000\000\003y\000\000\000\000\003y\000\000\003y\003y\000\000\003y\003y\003y\003y\000\000\000\000\000\000\000\000\000\000\000\000\003y\000\000\003y\003y\000\000\015\218\003y\003y\003y\003y\003y\003y\000\000\000\000\003y\003y\018\226\000\000\000\000\003y\003y\000\000\000\000\003y\003y\003y\003y\003u\000\000\003u\000\000\003u\000\000\000\000\000\000\003u\000\000\000\000\003u\000\000\003u\000\000\000\000\019\006\000\000\000\000\003u\003u\003u\000\000\003u\003u\003u\000\000\000\000\000\000\000\000\000\000\003u\003u\003u\019\138\000\000\003u\000\000\003u\000\000\000\000\000\000\000\000\000\000\000\000\003u\019\162\003u\003u\003u\003u\000\000\000\000\000\000\000\000\000\000\003u\000\000\003u\003u\000\000\000\000\000\000\000\000\000\000\003u\003u\003u\000\000\000\000\000\000\000\000\000\000\000\000\003u\000\000\003u\003u\019\030\019\186\003u\003u\003u\003u\003u\000\000\003u\000\000\000\000\000\000\000\000\000\000\003u\000\000\003u\003u\003u\000\000\000\000\000\000\000\000\003u\000\000\000\000\003u\000\000\003u\003u\000\000\003u\003u\003u\003u\000\000\000\000\000\000\000\000\000\000\000\000\003u\000\000\003u\003u\000\000\003u\003u\003u\003u\003u\003u\003u\000\000\000\000\003u\003u\003u\000\000\000\000\003u\003u\000\000\000\000\003u\003u\003u\003u\003q\000\000\003q\000\000\003q\000\000\000\000\000\000\003q\000\000\000\000\003q\000\000\003q\000\000\000\000\003q\000\000\000\000\003q\003q\003q\000\000\003q\003q\003q\000\000\000\000\000\000\000\000\000\000\003q\003q\003q\003q\000\000\003q\000\000\003q\000\000\000\000\000\000\000\000\000\000\000\000\003q\003q\003q\003q\003q\003q\000\000\000\000\000\000\000\000\000\000\003q\000\000\003q\003q\000\000\000\000\000\000\000\000\000\000\003q\003q\003q\000\000\000\000\000\000\000\000\000\000\000\000\003q\000\000\003q\003q\003q\003q\003q\003q\003q\003q\003q\000\000\003q\000\000\000\000\000\000\000\000\000\000\003q\000\000\003q\003q\003q\000\000\000\000\000\000\000\000\003q\000\000\000\000\003q\000\000\003q\003q\000\000\003q\003q\003q\003q\000\000\000\000\000\000\000\000\000\000\000\000\003q\000\000\003q\003q\000\000\015\218\003q\003q\003q\003q\003q\003q\000\000\000\000\003q\003q\018\226\000\000\000\000\003q\003q\000\000\000\000\003q\003q\003q\003q\003m\000\000\003m\000\000\003m\000\000\000\000\000\000\003m\000\000\000\000\003m\000\000\003m\000\000\000\000\019\006\000\000\000\000\003m\003m\003m\000\000\003m\003m\003m\000\000\000\000\000\000\000\000\000\000\003m\003m\003m\019\138\000\000\003m\000\000\003m\000\000\000\000\000\000\000\000\000\000\000\000\003m\019\162\003m\003m\003m\003m\000\000\000\000\000\000\000\000\000\000\003m\000\000\003m\003m\000\000\000\000\000\000\000\000\000\000\003m\003m\003m\000\000\000\000\000\000\000\000\000\000\000\000\003m\000\000\003m\003m\019\030\019\186\003m\003m\003m\003m\003m\000\000\003m\000\000\000\000\000\000\000\000\000\000\003m\000\000\003m\003m\003m\000\000\000\000\000\000\000\000\003m\000\000\000\000\003m\000\000\003m\003m\000\000\003m\003m\003m\003m\000\000\000\000\000\000\000\000\000\000\000\000\003m\000\000\003m\003m\000\000\003m\003m\003m\003m\003m\003m\003m\000\000\000\000\003m\003m\003m\000\000\000\000\003m\003m\000\000\000\000\003m\003m\003m\003m\003\153\000\000\003\153\000\000\003\153\000\000\000\000\000\000\003\153\000\000\000\000\003\153\000\000\003\153\000\000\000\000\003\153\000\000\000\000\003\153\003\153\003\153\000\000\003\153\003\153\003\153\000\000\000\000\000\000\000\000\000\000\003\153\003\153\003\153\003\153\000\000\003\153\000\000\003\153\000\000\000\000\000\000\000\000\000\000\000\000\003\153\003\153\003\153\003\153\003\153\003\153\000\000\000\000\000\000\000\000\000\000\003\153\000\000\003\153\003\153\000\000\000\000\000\000\000\000\000\000\003\153\003\153\003\153\000\000\000\000\000\000\000\000\000\000\000\000\003\153\000\000\003\153\003\153\003\153\003\153\003\153\003\153\003\153\003\153\003\153\000\000\003\153\000\000\000\000\000\000\000\000\000\000\003\153\000\000\003\153\003\153\003\153\000\000\000\000\000\000\000\000\003\153\000\000\000\000\003\153\000\000\003\153\003\153\000\000\003\153\003\153\003\153\003\153\000\000\000\000\000\000\000\000\000\000\000\000\003\153\000\000\003\153\003\153\000\000\015\218\003\153\003\153\003\153\003\153\003\153\003\153\000\000\000\000\003\153\003\153\018\226\000\000\000\000\003\153\003\153\000\000\000\000\003\153\003\153\003\153\003\153\003\149\000\000\003\149\000\000\003\149\000\000\000\000\000\000\003\149\000\000\000\000\003\149\000\000\003\149\000\000\000\000\019\006\000\000\000\000\003\149\003\149\003\149\000\000\003\149\003\149\003\149\000\000\000\000\000\000\000\000\000\000\019r\019\210\019\234\019\138\000\000\003\149\000\000\003\149\000\000\000\000\000\000\000\000\000\000\000\000\003\149\019\162\003\149\020\026\0202\003\149\000\000\000\000\000\000\000\000\000\000\003\149\000\000\003\149\003\149\000\000\000\000\000\000\000\000\000\000\003\149\003\149\000\242\000\000\000\000\000\000\000\000\000\000\000\000\003\149\000\000\003\149\003\149\019\030\019\186\020b\020z\003\149\003\149\003\149\000\000\003\149\000\000\000\000\000\000\000\000\000\000\003\149\000\000\003\149\003\149\003\149\000\000\000\000\000\000\000\000\003\149\000\000\000\000\003\149\000\000\003\149\003\149\000\000\003\149\003\149\003\149\003\149\000\000\000\000\000\000\000\000\000\000\000\000\003\149\000\000\003\149\003\149\000\000\003\149\003\149\003\149\003\149\020\146\003\149\003\149\000\000\000\000\003\149\003\149\003\149\000\000\000\000\020\170\020\194\000\000\000\000\003\149\003\149\003\149\003\149\0039\000\000\0039\000\000\0039\000\000\000\000\000\000\0039\000\000\000\000\0039\000\000\0039\000\000\000\000\0039\000\000\000\000\0039\0039\0039\000\000\0039\0039\0039\000\000\000\000\000\000\000\000\000\000\0039\0039\0039\0039\000\000\0039\000\000\0039\000\000\000\000\000\000\000\000\000\000\000\000\0039\0039\0039\0039\0039\0039\000\000\000\000\000\000\000\000\000\000\0039\000\000\0039\0039\000\000\000\000\000\000\000\000\000\000\0039\0039\0039\000\000\000\000\000\000\000\000\000\000\000\000\0039\000\000\0039\0039\0039\0039\0039\0039\0039\0039\0039\000\000\0039\000\000\000\000\000\000\000\000\000\000\0039\000\000\0039\0039\0039\000\000\000\000\000\000\000\000\0039\000\000\000\000\0039\000\000\0039\0039\000\000\0039\0039\0039\0039\000\000\000\000\000\000\000\000\000\000\000\000\0039\000\000\0039\0039\000\000\015\218\0039\0039\0039\0039\0039\0039\000\000\000\000\0039\0039\018\226\000\000\000\000\0039\0039\000\000\000\000\0039\0039\0039\0039\0035\000\000\0035\000\000\0035\000\000\000\000\000\000\0035\000\000\000\000\0035\000\000\0035\000\000\000\000\019\006\000\000\000\000\0035\0035\0035\000\000\0035\0035\0035\000\000\000\000\000\000\000\000\000\000\0035\0035\0035\019\138\000\000\0035\000\000\0035\000\000\000\000\000\000\000\000\000\000\000\000\0035\019\162\0035\0035\0035\0035\000\000\000\000\000\000\000\000\000\000\0035\000\000\0035\0035\000\000\000\000\000\000\000\000\000\000\0035\0035\0035\000\000\000\000\000\000\000\000\000\000\000\000\0035\000\000\0035\0035\019\030\019\186\0035\0035\0035\0035\0035\000\000\0035\000\000\000\000\000\000\000\000\000\000\0035\000\000\0035\0035\0035\000\000\000\000\000\000\000\000\0035\000\000\000\000\0035\000\000\0035\0035\000\000\0035\0035\0035\0035\000\000\000\000\000\000\000\000\000\000\000\000\0035\000\000\0035\0035\000\000\0035\0035\0035\0035\0035\0035\0035\000\000\000\000\0035\0035\0035\000\000\000\000\0035\0035\000\000\000\000\0035\0035\0035\0035\0031\000\000\0031\000\000\0031\000\000\000\000\000\000\0031\000\000\000\000\0031\000\000\0031\000\000\000\000\0031\000\000\000\000\0031\0031\0031\000\000\0031\0031\0031\000\000\000\000\000\000\000\000\000\000\0031\0031\0031\0031\000\000\0031\000\000\0031\000\000\000\000\000\000\000\000\000\000\000\000\0031\0031\0031\0031\0031\0031\000\000\000\000\000\000\000\000\000\000\0031\000\000\0031\0031\000\000\000\000\000\000\000\000\000\000\0031\0031\0031\000\000\000\000\000\000\000\000\000\000\000\000\0031\000\000\0031\0031\0031\0031\0031\0031\0031\0031\0031\000\000\0031\000\000\000\000\000\000\000\000\000\000\0031\000\000\0031\0031\0031\000\000\000\000\000\000\000\000\0031\000\000\000\000\0031\000\000\0031\0031\000\000\0031\0031\0031\0031\000\000\000\000\000\000\000\000\000\000\000\000\0031\000\000\0031\0031\000\000\015\218\0031\0031\0031\0031\0031\0031\000\000\000\000\0031\0031\018\226\000\000\000\000\0031\0031\000\000\000\000\0031\0031\0031\0031\003-\000\000\003-\000\000\003-\000\000\000\000\000\000\003-\000\000\000\000\003-\000\000\003-\000\000\000\000\019\006\000\000\000\000\003-\003-\003-\000\000\003-\003-\003-\000\000\000\000\000\000\000\000\000\000\019r\019\210\019\234\019\138\000\000\003-\000\000\003-\000\000\000\000\000\000\000\000\000\000\000\000\003-\019\162\003-\020\026\0202\003-\000\000\000\000\000\000\000\000\000\000\003-\000\000\003-\003-\000\000\000\000\000\000\000\000\000\000\003-\003-\000\242\000\000\000\000\000\000\000\000\000\000\000\000\003-\000\000\003-\003-\019\030\019\186\020b\020z\003-\003-\003-\000\000\003-\000\000\000\000\000\000\000\000\000\000\003-\000\000\003-\003-\003-\000\000\000\000\000\000\000\000\003-\000\000\000\000\003-\000\000\003-\003-\000\000\003-\003-\003-\003-\000\000\000\000\000\000\000\000\000\000\000\000\003-\000\000\003-\003-\000\000\003-\003-\003-\003-\020\146\003-\003-\000\000\000\000\003-\003-\003-\000\000\000\000\020\170\020\194\000\000\000\000\003-\003-\003-\003-\003\217\000\000\003\217\000\000\003\217\000\000\000\000\000\000\003\217\000\000\000\000\003\217\000\000\003\217\000\000\000\000\003\217\000\000\000\000\003\217\003\217\003\217\000\000\003\217\003\217\003\217\000\000\000\000\000\000\000\000\000\000\003\217\003\217\003\217\003\217\000\000\003\217\000\000\003\217\000\000\000\000\000\000\000\000\000\000\000\000\003\217\003\217\003\217\003\217\003\217\003\217\000\000\000\000\000\000\000\000\000\000\003\217\000\000\003\217\003\217\000\000\000\000\000\000\000\000\000\000\003\217\003\217\003\217\000\000\000\000\000\000\000\000\000\000\000\000\003\217\000\000\003\217\003\217\003\217\003\217\003\217\003\217\003\217\003\217\003\217\000\000\003\217\000\000\000\000\000\000\000\000\000\000\003\217\000\000\003\217\003\217\003\217\000\000\000\000\000\000\000\000\003\217\000\000\000\000\003\217\000\000\003\217\003\217\000\000\003\217\003\217\003\217\003\217\000\000\000\000\000\000\000\000\000\000\000\000\003\217\000\000\003\217\003\217\000\000\015\218\003\217\003\217\003\217\003\217\003\217\003\217\000\000\000\000\003\217\003\217\018\226\000\000\000\000\003\217\003\217\000\000\000\000\003\217\003\217\003\217\003\217\003\213\000\000\003\213\000\000\003\213\000\000\000\000\000\000\003\213\000\000\000\000\003\213\000\000\003\213\000\000\000\000\019\006\000\000\000\000\003\213\003\213\003\213\000\000\003\213\003\213\003\213\000\000\000\000\000\000\000\000\000\000\019r\019\210\019\234\019\138\000\000\003\213\000\000\003\213\000\000\000\000\000\000\000\000\000\000\000\000\003\213\019\162\003\213\020\026\0202\003\213\000\000\000\000\000\000\000\000\000\000\003\213\000\000\003\213\003\213\000\000\000\000\000\000\000\000\000\000\003\213\003\213\003\213\000\000\000\000\000\000\000\000\000\000\000\000\003\213\000\000\003\213\003\213\019\030\019\186\020b\003\213\003\213\003\213\003\213\000\000\003\213\000\000\000\000\000\000\000\000\000\000\003\213\000\000\003\213\003\213\003\213\000\000\000\000\000\000\000\000\003\213\000\000\000\000\003\213\000\000\003\213\003\213\000\000\003\213\003\213\003\213\003\213\000\000\000\000\000\000\000\000\000\000\000\000\003\213\000\000\003\213\003\213\000\000\003\213\003\213\003\213\003\213\020\146\003\213\003\213\000\000\000\000\003\213\003\213\003\213\000\000\000\000\003\213\003\213\000\000\000\000\003\213\003\213\003\213\003\213\003)\000\000\003)\000\000\003)\000\000\000\000\000\000\003)\000\000\000\000\003)\000\000\003)\000\000\000\000\003)\000\000\000\000\003)\003)\003)\000\000\003)\003)\003)\000\000\000\000\000\000\000\000\000\000\003)\003)\003)\003)\000\000\003)\000\000\003)\000\000\000\000\000\000\000\000\000\000\000\000\003)\003)\003)\003)\003)\003)\000\000\000\000\000\000\000\000\000\000\003)\000\000\003)\003)\000\000\000\000\000\000\000\000\000\000\003)\003)\003)\000\000\000\000\000\000\000\000\000\000\000\000\003)\000\000\003)\003)\003)\003)\003)\003)\003)\003)\003)\000\000\003)\000\000\000\000\000\000\000\000\000\000\003)\000\000\003)\003)\003)\000\000\000\000\000\000\000\000\003)\000\000\000\000\003)\000\000\003)\003)\000\000\003)\003)\003)\003)\000\000\000\000\000\000\000\000\000\000\000\000\003)\000\000\003)\003)\000\000\015\218\003)\003)\003)\003)\003)\003)\000\000\000\000\003)\003)\018\226\000\000\000\000\003)\003)\000\000\000\000\003)\003)\003)\003)\003%\000\000\003%\000\000\003%\000\000\000\000\000\000\003%\000\000\000\000\003%\000\000\003%\000\000\000\000\019\006\000\000\000\000\003%\003%\003%\000\000\003%\003%\003%\000\000\000\000\000\000\000\000\000\000\019r\019\210\019\234\019\138\000\000\003%\000\000\003%\000\000\000\000\000\000\000\000\000\000\000\000\003%\019\162\003%\020\026\0202\003%\000\000\000\000\000\000\000\000\000\000\003%\000\000\003%\003%\000\000\000\000\000\000\000\000\000\000\003%\003%\000\242\000\000\000\000\000\000\000\000\000\000\000\000\003%\000\000\003%\003%\019\030\019\186\020b\020z\003%\003%\003%\000\000\003%\000\000\000\000\000\000\000\000\000\000\003%\000\000\003%\003%\003%\000\000\000\000\000\000\000\000\003%\000\000\000\000\003%\000\000\003%\003%\000\000\003%\003%\003%\003%\000\000\000\000\000\000\000\000\000\000\000\000\003%\000\000\003%\003%\000\000\003%\003%\003%\003%\020\146\003%\003%\000\000\000\000\003%\003%\003%\000\000\000\000\020\170\020\194\000\000\000\000\003%\003%\003%\003%\003!\000\000\003!\000\000\003!\000\000\000\000\000\000\003!\000\000\000\000\003!\000\000\003!\000\000\000\000\003!\000\000\000\000\003!\003!\003!\000\000\003!\003!\003!\000\000\000\000\000\000\000\000\000\000\003!\003!\003!\003!\000\000\003!\000\000\003!\000\000\000\000\000\000\000\000\000\000\000\000\003!\003!\003!\003!\003!\003!\000\000\000\000\000\000\000\000\000\000\003!\000\000\003!\003!\000\000\000\000\000\000\000\000\000\000\003!\003!\003!\000\000\000\000\000\000\000\000\000\000\000\000\003!\000\000\003!\003!\003!\003!\003!\003!\003!\003!\003!\000\000\003!\000\000\000\000\000\000\000\000\000\000\003!\000\000\003!\003!\003!\000\000\000\000\000\000\000\000\003!\000\000\000\000\003!\000\000\003!\003!\000\000\003!\003!\003!\003!\000\000\000\000\000\000\000\000\000\000\000\000\003!\000\000\003!\003!\000\000\015\218\003!\003!\003!\003!\003!\003!\000\000\000\000\003!\003!\018\226\000\000\000\000\003!\003!\000\000\000\000\003!\003!\003!\003!\003\029\000\000\003\029\000\000\003\029\000\000\000\000\000\000\003\029\000\000\000\000\003\029\000\000\003\029\000\000\000\000\019\006\000\000\000\000\003\029\003\029\003\029\000\000\003\029\003\029\003\029\000\000\000\000\000\000\000\000\000\000\019r\019\210\019\234\019\138\000\000\003\029\000\000\003\029\000\000\000\000\000\000\000\000\000\000\000\000\003\029\019\162\003\029\020\026\0202\003\029\000\000\000\000\000\000\000\000\000\000\003\029\000\000\003\029\003\029\000\000\000\000\000\000\000\000\000\000\003\029\003\029\000\242\000\000\000\000\000\000\000\000\000\000\000\000\003\029\000\000\003\029\003\029\019\030\019\186\020b\020z\003\029\003\029\003\029\000\000\003\029\000\000\000\000\000\000\000\000\000\000\003\029\000\000\003\029\003\029\003\029\000\000\000\000\000\000\000\000\003\029\000\000\000\000\003\029\000\000\003\029\003\029\000\000\003\029\003\029\003\029\003\029\000\000\000\000\000\000\000\000\000\000\000\000\003\029\000\000\003\029\003\029\000\000\003\029\003\029\003\029\003\029\020\146\003\029\003\029\000\000\000\000\003\029\003\029\003\029\000\000\000\000\020\170\020\194\000\000\000\000\003\029\003\029\003\029\003\029\003\025\000\000\003\025\000\000\003\025\000\000\000\000\000\000\003\025\000\000\000\000\003\025\000\000\003\025\000\000\000\000\003\025\000\000\000\000\003\025\003\025\003\025\000\000\003\025\003\025\003\025\000\000\000\000\000\000\000\000\000\000\003\025\003\025\003\025\003\025\000\000\003\025\000\000\003\025\000\000\000\000\000\000\000\000\000\000\000\000\003\025\003\025\003\025\003\025\003\025\003\025\000\000\000\000\000\000\000\000\000\000\003\025\000\000\003\025\003\025\000\000\000\000\000\000\000\000\000\000\003\025\003\025\003\025\000\000\000\000\000\000\000\000\000\000\000\000\003\025\000\000\003\025\003\025\003\025\003\025\003\025\003\025\003\025\003\025\003\025\000\000\003\025\000\000\000\000\000\000\000\000\000\000\003\025\000\000\003\025\003\025\003\025\000\000\000\000\000\000\000\000\003\025\000\000\000\000\003\025\000\000\003\025\003\025\000\000\003\025\003\025\003\025\003\025\000\000\000\000\000\000\000\000\000\000\000\000\003\025\000\000\003\025\003\025\000\000\015\218\003\025\003\025\003\025\003\025\003\025\003\025\000\000\000\000\003\025\003\025\018\226\000\000\000\000\003\025\003\025\000\000\000\000\003\025\003\025\003\025\003\025\003\021\000\000\003\021\000\000\003\021\000\000\000\000\000\000\003\021\000\000\000\000\003\021\000\000\003\021\000\000\000\000\019\006\000\000\000\000\003\021\003\021\003\021\000\000\003\021\003\021\003\021\000\000\000\000\000\000\000\000\000\000\019r\019\210\019\234\019\138\000\000\003\021\000\000\003\021\000\000\000\000\000\000\000\000\000\000\000\000\003\021\019\162\003\021\020\026\0202\003\021\000\000\000\000\000\000\000\000\000\000\003\021\000\000\003\021\003\021\000\000\000\000\000\000\000\000\000\000\003\021\003\021\000\242\000\000\000\000\000\000\000\000\000\000\000\000\003\021\000\000\003\021\003\021\019\030\019\186\020b\020z\003\021\003\021\003\021\000\000\003\021\000\000\000\000\000\000\000\000\000\000\003\021\000\000\003\021\003\021\003\021\000\000\000\000\000\000\000\000\003\021\000\000\000\000\003\021\000\000\003\021\003\021\000\000\003\021\003\021\003\021\003\021\000\000\000\000\000\000\000\000\000\000\000\000\003\021\000\000\003\021\003\021\000\000\003\021\003\021\003\021\003\021\020\146\003\021\003\021\000\000\000\000\003\021\003\021\003\021\000\000\000\000\020\170\020\194\000\000\000\000\003\021\003\021\003\021\003\021\003\161\000\000\003\161\000\000\003\161\000\000\000\000\000\000\003\161\000\000\000\000\003\161\000\000\003\161\000\000\000\000\003\161\000\000\000\000\003\161\003\161\003\161\000\000\003\161\003\161\003\161\000\000\000\000\000\000\000\000\000\000\003\161\003\161\003\161\003\161\000\000\003\161\000\000\003\161\000\000\000\000\000\000\000\000\000\000\000\000\003\161\003\161\003\161\003\161\003\161\003\161\000\000\000\000\000\000\000\000\000\000\003\161\000\000\003\161\003\161\000\000\000\000\000\000\000\000\000\000\003\161\003\161\003\161\000\000\000\000\000\000\000\000\000\000\000\000\003\161\000\000\003\161\003\161\003\161\003\161\003\161\003\161\003\161\003\161\003\161\000\000\003\161\000\000\000\000\000\000\000\000\000\000\003\161\000\000\003\161\003\161\003\161\000\000\000\000\000\000\000\000\003\161\000\000\000\000\003\161\000\000\003\161\003\161\000\000\003\161\003\161\003\161\003\161\000\000\000\000\000\000\000\000\000\000\000\000\003\161\000\000\003\161\003\161\000\000\015\218\003\161\003\161\003\161\003\161\003\161\003\161\000\000\000\000\003\161\003\161\018\226\000\000\000\000\003\161\003\161\000\000\000\000\003\161\003\161\003\161\003\161\003\157\000\000\003\157\000\000\003\157\000\000\000\000\000\000\003\157\000\000\000\000\003\157\000\000\003\157\000\000\000\000\019\006\000\000\000\000\003\157\003\157\003\157\000\000\003\157\003\157\003\157\000\000\000\000\000\000\000\000\000\000\019r\019\210\019\234\019\138\000\000\003\157\000\000\003\157\000\000\000\000\000\000\000\000\000\000\000\000\003\157\019\162\003\157\020\026\0202\003\157\000\000\000\000\000\000\000\000\000\000\003\157\000\000\003\157\003\157\000\000\000\000\000\000\000\000\000\000\003\157\003\157\000\242\000\000\000\000\000\000\000\000\000\000\000\000\003\157\000\000\003\157\003\157\019\030\019\186\020b\020z\003\157\003\157\003\157\000\000\003\157\000\000\000\000\000\000\000\000\000\000\003\157\000\000\003\157\003\157\003\157\000\000\000\000\000\000\000\000\003\157\000\000\000\000\003\157\000\000\003\157\003\157\000\000\003\157\003\157\003\157\003\157\000\000\000\000\000\000\000\000\000\000\000\000\003\157\000\000\003\157\003\157\000\000\003\157\003\157\003\157\003\157\020\146\003\157\003\157\000\000\000\000\003\157\003\157\003\157\000\000\000\000\020\170\020\194\000\000\000\000\003\157\003\157\003\157\003\157\003\145\000\000\003\145\000\000\003\145\000\000\000\000\000\000\003\145\000\000\000\000\003\145\000\000\003\145\000\000\000\000\003\145\000\000\000\000\003\145\003\145\003\145\000\000\003\145\003\145\003\145\000\000\000\000\000\000\000\000\000\000\003\145\003\145\003\145\003\145\000\000\003\145\000\000\003\145\000\000\000\000\000\000\000\000\000\000\000\000\003\145\003\145\003\145\003\145\003\145\003\145\000\000\000\000\000\000\000\000\000\000\003\145\000\000\003\145\003\145\000\000\000\000\000\000\000\000\000\000\003\145\003\145\003\145\000\000\000\000\000\000\000\000\000\000\000\000\003\145\000\000\003\145\003\145\003\145\003\145\003\145\003\145\003\145\003\145\003\145\000\000\003\145\000\000\000\000\000\000\000\000\000\000\003\145\000\000\003\145\003\145\003\145\000\000\000\000\000\000\000\000\003\145\000\000\000\000\003\145\000\000\003\145\003\145\000\000\003\145\003\145\003\145\003\145\000\000\000\000\000\000\000\000\000\000\000\000\003\145\000\000\003\145\003\145\000\000\015\218\003\145\003\145\003\145\003\145\003\145\003\145\000\000\000\000\003\145\003\145\018\226\000\000\000\000\003\145\003\145\000\000\000\000\003\145\003\145\003\145\003\145\003\141\000\000\003\141\000\000\003\141\000\000\000\000\000\000\003\141\000\000\000\000\003\141\000\000\003\141\000\000\000\000\019\006\000\000\000\000\003\141\003\141\003\141\000\000\003\141\003\141\003\141\000\000\000\000\000\000\000\000\000\000\019r\019\210\019\234\019\138\000\000\003\141\000\000\003\141\000\000\000\000\000\000\000\000\000\000\000\000\003\141\019\162\003\141\020\026\0202\003\141\000\000\000\000\000\000\000\000\000\000\003\141\000\000\003\141\003\141\000\000\000\000\000\000\000\000\000\000\003\141\003\141\000\242\000\000\000\000\000\000\000\000\000\000\000\000\003\141\000\000\003\141\003\141\019\030\019\186\020b\020z\003\141\003\141\003\141\000\000\003\141\000\000\000\000\000\000\000\000\000\000\003\141\000\000\003\141\003\141\003\141\000\000\000\000\000\000\000\000\003\141\000\000\000\000\003\141\000\000\003\141\003\141\000\000\003\141\003\141\003\141\003\141\000\000\000\000\000\000\000\000\000\000\000\000\003\141\000\000\003\141\003\141\000\000\003\141\003\141\003\141\003\141\020\146\003\141\003\141\000\000\000\000\003\141\003\141\003\141\000\000\000\000\020\170\020\194\000\000\000\000\003\141\003\141\003\141\003\141\003\177\000\000\003\177\000\000\003\177\000\000\000\000\000\000\003\177\000\000\000\000\003\177\000\000\003\177\000\000\000\000\003\177\000\000\000\000\003\177\003\177\003\177\000\000\003\177\003\177\003\177\000\000\000\000\000\000\000\000\000\000\003\177\003\177\003\177\003\177\000\000\003\177\000\000\003\177\000\000\000\000\000\000\000\000\000\000\000\000\003\177\003\177\003\177\003\177\003\177\003\177\000\000\000\000\000\000\000\000\000\000\003\177\000\000\003\177\003\177\000\000\000\000\000\000\000\000\000\000\003\177\003\177\003\177\000\000\000\000\000\000\000\000\000\000\000\000\003\177\000\000\003\177\003\177\003\177\003\177\003\177\003\177\003\177\003\177\003\177\000\000\003\177\000\000\000\000\000\000\000\000\000\000\003\177\000\000\003\177\003\177\003\177\000\000\000\000\000\000\000\000\003\177\000\000\000\000\003\177\000\000\003\177\003\177\000\000\003\177\003\177\003\177\003\177\000\000\000\000\000\000\000\000\000\000\000\000\003\177\000\000\003\177\003\177\000\000\015\218\003\177\003\177\003\177\003\177\003\177\003\177\000\000\000\000\003\177\003\177\018\226\000\000\000\000\003\177\003\177\000\000\000\000\003\177\003\177\003\177\003\177\003\173\000\000\003\173\000\000\003\173\000\000\000\000\000\000\003\173\000\000\000\000\003\173\000\000\003\173\000\000\000\000\019\006\000\000\000\000\003\173\003\173\003\173\000\000\003\173\003\173\003\173\000\000\000\000\000\000\000\000\000\000\019r\019\210\019\234\019\138\000\000\020\002\000\000\003\173\000\000\000\000\000\000\000\000\000\000\000\000\003\173\019\162\003\173\020\026\0202\003\173\000\000\000\000\000\000\000\000\000\000\003\173\000\000\020J\003\173\000\000\000\000\000\000\000\000\000\000\003\173\003\173\000\242\000\000\000\000\000\000\000\000\000\000\000\000\003\173\000\000\003\173\003\173\019\030\019\186\020b\020z\020\218\003\173\003\173\000\000\003\173\000\000\000\000\000\000\000\000\000\000\003\173\000\000\003\173\003\173\020\242\000\000\000\000\000\000\000\000\003\173\000\000\000\000\003\173\000\000\003\173\021\n\000\000\003\173\003\173\003\173\003\173\000\000\000\000\000\000\000\000\000\000\000\000\003\173\000\000\003\173\003\173\000\000\003\173\003\173\003\173\003\173\020\146\003\173\003\173\000\000\000\000\003\173\021\"\003\173\000\000\000\000\020\170\020\194\000\000\000\000\003\173\003\173\021:\021R\003\185\000\000\003\185\000\000\003\185\000\000\000\000\000\000\003\185\000\000\000\000\003\185\000\000\003\185\000\000\000\000\003\185\000\000\000\000\003\185\003\185\003\185\000\000\003\185\003\185\003\185\000\000\000\000\000\000\000\000\000\000\003\185\003\185\003\185\003\185\000\000\003\185\000\000\003\185\000\000\000\000\000\000\000\000\000\000\000\000\003\185\003\185\003\185\003\185\003\185\003\185\000\000\000\000\000\000\000\000\000\000\003\185\000\000\003\185\003\185\000\000\000\000\000\000\000\000\000\000\003\185\003\185\003\185\000\000\000\000\000\000\000\000\000\000\000\000\003\185\000\000\003\185\003\185\003\185\003\185\003\185\003\185\003\185\003\185\003\185\000\000\003\185\000\000\000\000\000\000\000\000\000\000\003\185\000\000\003\185\003\185\003\185\000\000\000\000\000\000\000\000\003\185\000\000\000\000\003\185\000\000\003\185\003\185\000\000\003\185\003\185\003\185\003\185\000\000\000\000\000\000\000\000\000\000\000\000\003\185\000\000\003\185\003\185\000\000\015\218\003\185\003\185\003\185\003\185\003\185\003\185\000\000\000\000\003\185\003\185\018\226\000\000\000\000\003\185\003\185\000\000\000\000\003\185\003\185\003\185\003\185\003\181\000\000\003\181\000\000\003\181\000\000\000\000\000\000\003\181\000\000\000\000\003\181\000\000\003\181\000\000\000\000\019\006\000\000\000\000\003\181\003\181\003\181\000\000\003\181\003\181\003\181\000\000\000\000\000\000\000\000\000\000\019r\019\210\019\234\019\138\000\000\003\181\000\000\003\181\000\000\000\000\000\000\000\000\000\000\000\000\003\181\019\162\003\181\020\026\0202\003\181\000\000\000\000\000\000\000\000\000\000\003\181\000\000\020J\003\181\000\000\000\000\000\000\000\000\000\000\003\181\003\181\000\242\000\000\000\000\000\000\000\000\000\000\000\000\003\181\000\000\003\181\003\181\019\030\019\186\020b\020z\020\218\003\181\003\181\000\000\003\181\000\000\000\000\000\000\000\000\000\000\003\181\000\000\003\181\003\181\020\242\000\000\000\000\000\000\000\000\003\181\000\000\000\000\003\181\000\000\003\181\021\n\000\000\003\181\003\181\003\181\003\181\000\000\000\000\000\000\000\000\000\000\000\000\003\181\000\000\003\181\003\181\000\000\003\181\003\181\003\181\003\181\020\146\003\181\003\181\000\000\000\000\003\181\003\181\003\181\000\000\000\000\020\170\020\194\000\000\000\000\003\181\003\181\021:\021R\003\193\000\000\003\193\000\000\003\193\000\000\000\000\000\000\003\193\000\000\000\000\003\193\000\000\003\193\000\000\000\000\003\193\000\000\000\000\003\193\003\193\003\193\000\000\003\193\003\193\003\193\000\000\000\000\000\000\000\000\000\000\003\193\003\193\003\193\003\193\000\000\003\193\000\000\003\193\000\000\000\000\000\000\000\000\000\000\000\000\003\193\003\193\003\193\003\193\003\193\003\193\000\000\000\000\000\000\000\000\000\000\003\193\000\000\003\193\003\193\000\000\000\000\000\000\000\000\000\000\003\193\003\193\003\193\000\000\000\000\000\000\000\000\000\000\000\000\003\193\000\000\003\193\003\193\003\193\003\193\003\193\003\193\003\193\003\193\003\193\000\000\003\193\000\000\000\000\000\000\000\000\000\000\003\193\000\000\003\193\003\193\003\193\000\000\000\000\000\000\000\000\003\193\000\000\000\000\003\193\000\000\003\193\003\193\000\000\003\193\003\193\003\193\003\193\000\000\000\000\000\000\000\000\000\000\000\000\003\193\000\000\003\193\003\193\000\000\015\218\003\193\003\193\003\193\003\193\003\193\003\193\000\000\000\000\003\193\003\193\018\226\000\000\000\000\003\193\003\193\000\000\000\000\003\193\003\193\003\193\003\193\003\189\000\000\003\189\000\000\003\189\000\000\000\000\000\000\003\189\000\000\000\000\003\189\000\000\003\189\000\000\000\000\019\006\000\000\000\000\003\189\003\189\003\189\000\000\003\189\003\189\003\189\000\000\000\000\000\000\000\000\000\000\019r\019\210\019\234\019\138\000\000\003\189\000\000\003\189\000\000\000\000\000\000\000\000\000\000\000\000\003\189\019\162\003\189\020\026\0202\003\189\000\000\000\000\000\000\000\000\000\000\003\189\000\000\020J\003\189\000\000\000\000\000\000\000\000\000\000\003\189\003\189\000\242\000\000\000\000\000\000\000\000\000\000\000\000\003\189\000\000\003\189\003\189\019\030\019\186\020b\020z\020\218\003\189\003\189\000\000\003\189\000\000\000\000\000\000\000\000\000\000\003\189\000\000\003\189\003\189\020\242\000\000\000\000\000\000\000\000\003\189\000\000\000\000\003\189\000\000\003\189\021\n\000\000\003\189\003\189\003\189\003\189\000\000\000\000\000\000\000\000\000\000\000\000\003\189\000\000\003\189\003\189\000\000\003\189\003\189\003\189\003\189\020\146\003\189\003\189\000\000\000\000\003\189\003\189\003\189\000\000\000\000\020\170\020\194\000\000\000\000\003\189\003\189\021:\021R\012A\000\000\012A\000\000\012A\000\000\000\000\000\000\012A\000\000\000\000\012A\000\000\012A\000\000\000\000\012A\000\000\000\000\012A\012A\012A\000\000\012A\012A\012A\000\000\000\000\000\000\000\000\000\000\012A\012A\012A\012A\000\000\012A\000\000\012A\000\000\000\000\000\000\000\000\000\000\000\000\012A\012A\012A\012A\012A\012A\000\000\000\000\000\000\000\000\000\000\012A\000\000\012A\012A\000\000\000\000\000\000\000\000\000\000\012A\012A\012A\000\000\000\000\000\000\000\000\000\000\000\000\012A\000\000\012A\012A\012A\012A\012A\012A\012A\012A\012A\000\000\012A\000\000\000\000\000\000\000\000\000\000\012A\000\000\012A\012A\012A\000\000\000\000\000\000\000\000\012A\000\000\000\000\012A\000\000\012A\012A\000\000\012A\012A\012A\012A\000\000\000\000\000\000\000\000\000\000\000\000\012A\000\000\012A\012A\000\000\015\218\012A\012A\012A\012A\012A\012A\000\000\000\000\012A\012A\018\226\000\000\000\000\012A\012A\000\000\000\000\012A\012A\012A\012A\012=\000\000\012=\000\000\012=\000\000\000\000\000\000\012=\000\000\000\000\012=\000\000\012=\000\000\000\000\019\006\000\000\000\000\012=\012=\012=\000\000\012=\012=\012=\000\000\000\000\000\000\000\000\000\000\019r\019\210\019\234\019\138\000\000\020\002\000\000\012=\000\000\000\000\000\000\000\000\000\000\000\000\012=\019\162\012=\020\026\0202\012=\000\000\000\000\000\000\000\000\000\000\012=\000\000\020J\012=\000\000\000\000\000\000\000\000\000\000\012=\012=\000\242\000\000\000\000\000\000\000\000\000\000\000\000\012=\000\000\012=\012=\019\030\019\186\020b\020z\020\218\012=\012=\000\000\012=\000\000\000\000\000\000\000\000\000\000\012=\000\000\012=\012=\020\242\000\000\000\000\000\000\000\000\012=\000\000\000\000\012=\000\000\012=\021\n\000\000\012=\012=\012=\012=\000\000\000\000\000\000\000\000\000\000\000\000\012=\000\000\012=\012=\000\000\012=\012=\012=\012=\020\146\012=\012=\000\000\000\000\012=\021\"\012=\000\000\000\000\020\170\020\194\000\000\000\000\012=\012=\021:\021R\003\201\000\000\003\201\000\000\003\201\000\000\000\000\000\000\003\201\000\000\000\000\003\201\000\000\003\201\000\000\000\000\003\201\000\000\000\000\003\201\003\201\003\201\000\000\003\201\003\201\003\201\000\000\000\000\000\000\000\000\000\000\003\201\003\201\003\201\003\201\000\000\003\201\000\000\003\201\000\000\000\000\000\000\000\000\000\000\000\000\003\201\003\201\003\201\003\201\003\201\003\201\000\000\000\000\000\000\000\000\000\000\003\201\000\000\003\201\003\201\000\000\000\000\000\000\000\000\000\000\003\201\003\201\003\201\000\000\000\000\000\000\000\000\000\000\000\000\003\201\000\000\003\201\003\201\003\201\003\201\003\201\003\201\003\201\003\201\003\201\000\000\003\201\000\000\000\000\000\000\000\000\000\000\003\201\000\000\003\201\003\201\003\201\000\000\000\000\000\000\000\000\003\201\000\000\000\000\003\201\000\000\003\201\003\201\000\000\003\201\003\201\003\201\003\201\000\000\000\000\000\000\000\000\000\000\000\000\003\201\000\000\003\201\003\201\000\000\015\218\003\201\003\201\003\201\003\201\003\201\003\201\000\000\000\000\003\201\003\201\018\226\000\000\000\000\003\201\003\201\000\000\000\000\003\201\003\201\003\201\003\201\003\197\000\000\003\197\000\000\003\197\000\000\000\000\000\000\003\197\000\000\000\000\003\197\000\000\003\197\000\000\000\000\019\006\000\000\000\000\003\197\003\197\003\197\000\000\003\197\003\197\003\197\000\000\000\000\000\000\000\000\000\000\019r\019\210\019\234\019\138\000\000\020\002\000\000\003\197\000\000\000\000\000\000\000\000\000\000\000\000\003\197\019\162\003\197\020\026\0202\003\197\000\000\000\000\000\000\000\000\000\000\003\197\000\000\020J\003\197\000\000\000\000\000\000\000\000\000\000\003\197\003\197\000\242\000\000\000\000\000\000\000\000\000\000\000\000\003\197\000\000\003\197\003\197\019\030\019\186\020b\020z\020\218\003\197\003\197\000\000\003\197\000\000\000\000\000\000\000\000\000\000\003\197\000\000\003\197\003\197\020\242\000\000\000\000\000\000\000\000\003\197\000\000\000\000\003\197\000\000\003\197\021\n\000\000\003\197\003\197\003\197\003\197\000\000\000\000\000\000\000\000\000\000\000\000\003\197\000\000\003\197\003\197\000\000\021j\003\197\003\197\021\162\020\146\003\197\003\197\000\000\000\000\003\197\021\"\003\197\000\000\000\000\020\170\020\194\000\000\000\000\003\197\003\197\021:\021R\012)\000\000\012)\000\000\012)\000\000\000\000\000\000\012)\000\000\000\000\012)\000\000\012)\000\000\000\000\019\006\000\000\000\000\012)\012)\012)\000\000\012)\012)\012)\000\000\000\000\000\000\000\000\000\000\019r\019\210\019\234\019\138\000\000\020\002\000\000\012)\000\000\000\000\000\000\000\000\000\000\000\000\012)\019\162\012)\020\026\0202\012)\000\000\000\000\000\000\000\000\000\000\012)\000\000\020J\012)\000\000\000\000\000\000\000\000\000\000\012)\012)\000\242\000\000\000\000\000\000\000\000\000\000\000\000\012)\000\000\012)\012)\019\030\019\186\020b\020z\020\218\012)\012)\000\000\012)\000\000\000\000\000\000\000\000\000\000\012)\000\000\012)\012)\020\242\000\000\000\000\000\000\000\000\012)\000\000\000\000\012)\000\000\012)\021\n\000\000\012)\012)\012)\012)\000\000\000\000\000\000\000\000\000\000\000\000\012)\000\000\012)\012)\000\000\012)\012)\012)\012)\020\146\012)\012)\000\000\000\000\012)\021\"\012)\000\000\000\000\020\170\020\194\000\000\000\000\012)\012)\021:\021R\004\t\000\000\004\t\000\000\004\t\000\000\000\000\000\000\004\t\000\000\000\000\004\t\000\000\004\t\000\000\000\000\004\t\000\000\000\000\004\t\004\t\004\t\000\000\004\t\004\t\004\t\000\000\000\000\000\000\000\000\000\000\004\t\004\t\004\t\004\t\000\000\004\t\000\000\004\t\000\000\000\000\000\000\000\000\000\000\000\000\004\t\004\t\004\t\004\t\004\t\004\t\000\000\000\000\000\000\000\000\000\000\004\t\000\000\004\t\004\t\000\000\000\000\000\000\000\000\000\000\004\t\004\t\004\t\000\000\000\000\000\000\000\000\000\000\000\000\004\t\000\000\004\t\004\t\004\t\004\t\004\t\004\t\004\t\004\t\004\t\000\000\004\t\000\000\000\000\000\000\000\000\000\000\004\t\000\000\004\t\004\t\004\t\000\000\000\000\000\000\000\000\004\t\000\000\000\000\004\t\000\000\004\t\004\t\000\000\004\t\004\t\004\t\004\t\000\000\000\000\000\000\000\000\000\000\000\000\004\t\000\000\004\t\004\t\000\000\015\218\004\t\004\t\004\t\004\t\004\t\004\t\000\000\000\000\004\t\004\t\018\226\000\000\000\000\004\t\004\t\000\000\000\000\004\t\004\t\004\t\004\t\004\005\000\000\004\005\000\000\004\005\000\000\000\000\000\000\004\005\000\000\000\000\004\005\000\000\004\005\000\000\000\000\019\006\000\000\000\000\004\005\004\005\004\005\000\000\004\005\004\005\004\005\000\000\000\000\000\000\000\000\000\000\019r\019\210\019\234\019\138\000\000\020\002\000\000\004\005\000\000\000\000\000\000\000\000\000\000\000\000\004\005\019\162\004\005\020\026\0202\004\005\000\000\000\000\000\000\000\000\000\000\004\005\000\000\020J\004\005\000\000\000\000\000\000\000\000\000\000\004\005\004\005\000\242\000\000\000\000\000\000\000\000\000\000\000\000\004\005\000\000\004\005\004\005\019\030\019\186\020b\020z\020\218\004\005\004\005\000\000\004\005\000\000\000\000\000\000\000\000\000\000\004\005\000\000\004\005\004\005\020\242\000\000\000\000\000\000\000\000\004\005\000\000\000\000\004\005\000\000\004\005\021\n\000\000\004\005\004\005\004\005\004\005\000\000\000\000\000\000\000\000\000\000\000\000\004\005\000\000\004\005\004\005\000\000\021j\004\005\004\005\021\162\020\146\004\005\004\005\000\000\000\000\004\005\021\"\004\005\000\000\000\000\020\170\020\194\000\000\000\000\004\005\004\005\021:\021R\004)\000\000\004)\000\000\004)\000\000\000\000\000\000\004)\000\000\000\000\004)\000\000\004)\000\000\000\000\004)\000\000\000\000\004)\004)\004)\000\000\004)\004)\004)\000\000\000\000\000\000\000\000\000\000\004)\004)\004)\004)\000\000\004)\000\000\004)\000\000\000\000\000\000\000\000\000\000\000\000\004)\004)\004)\004)\004)\004)\000\000\000\000\000\000\000\000\000\000\004)\000\000\004)\004)\000\000\000\000\000\000\000\000\000\000\004)\004)\004)\000\000\000\000\000\000\000\000\000\000\000\000\004)\000\000\004)\004)\004)\004)\004)\004)\004)\004)\004)\000\000\004)\000\000\000\000\000\000\000\000\000\000\004)\000\000\004)\004)\004)\000\000\000\000\000\000\000\000\004)\000\000\000\000\004)\000\000\004)\004)\000\000\004)\004)\004)\004)\000\000\000\000\000\000\000\000\000\000\000\000\004)\000\000\004)\004)\000\000\015\218\004)\004)\004)\004)\004)\004)\000\000\000\000\004)\004)\018\226\000\000\000\000\004)\004)\000\000\000\000\004)\004)\004)\004)\004%\000\000\004%\000\000\004%\000\000\000\000\000\000\004%\000\000\000\000\004%\000\000\004%\000\000\000\000\019\006\000\000\000\000\004%\004%\004%\000\000\004%\004%\004%\000\000\000\000\000\000\000\000\000\000\019r\019\210\019\234\019\138\000\000\020\002\000\000\004%\000\000\000\000\000\000\000\000\000\000\000\000\004%\019\162\004%\020\026\0202\004%\000\000\000\000\000\000\000\000\000\000\004%\000\000\020J\004%\000\000\000\000\000\000\000\000\000\000\004%\004%\000\242\000\000\000\000\000\000\000\000\000\000\000\000\004%\000\000\004%\004%\019\030\019\186\020b\020z\020\218\004%\004%\000\000\004%\000\000\000\000\000\000\000\000\000\000\004%\000\000\004%\004%\020\242\000\000\000\000\000\000\000\000\004%\000\000\000\000\004%\000\000\004%\021\n\000\000\004%\004%\004%\004%\000\000\000\000\000\000\000\000\000\000\000\000\004%\000\000\004%\004%\000\000\021j\004%\004%\021\162\020\146\004%\004%\000\000\000\000\004%\021\"\004%\000\000\000\000\020\170\020\194\000\000\000\000\004%\004%\021:\021R\004\025\000\000\004\025\000\000\004\025\000\000\000\000\000\000\004\025\000\000\000\000\004\025\000\000\004\025\000\000\000\000\004\025\000\000\000\000\004\025\004\025\004\025\000\000\004\025\004\025\004\025\000\000\000\000\000\000\000\000\000\000\004\025\004\025\004\025\004\025\000\000\004\025\000\000\004\025\000\000\000\000\000\000\000\000\000\000\000\000\004\025\004\025\004\025\004\025\004\025\004\025\000\000\000\000\000\000\000\000\000\000\004\025\000\000\004\025\004\025\000\000\000\000\000\000\000\000\000\000\004\025\004\025\004\025\000\000\000\000\000\000\000\000\000\000\000\000\004\025\000\000\004\025\004\025\004\025\004\025\004\025\004\025\004\025\004\025\004\025\000\000\004\025\000\000\000\000\000\000\000\000\000\000\004\025\000\000\004\025\004\025\004\025\000\000\000\000\000\000\000\000\004\025\000\000\000\000\004\025\000\000\004\025\004\025\000\000\004\025\004\025\004\025\004\025\000\000\000\000\000\000\000\000\000\000\000\000\004\025\000\000\004\025\004\025\000\000\015\218\004\025\004\025\004\025\004\025\004\025\004\025\000\000\000\000\004\025\004\025\018\226\000\000\000\000\004\025\004\025\000\000\000\000\004\025\004\025\004\025\004\025\004\021\000\000\004\021\000\000\004\021\000\000\000\000\000\000\004\021\000\000\000\000\004\021\000\000\004\021\000\000\000\000\019\006\000\000\000\000\004\021\004\021\004\021\000\000\004\021\004\021\004\021\000\000\000\000\000\000\000\000\000\000\019r\019\210\019\234\019\138\000\000\020\002\000\000\004\021\000\000\000\000\000\000\000\000\000\000\000\000\004\021\019\162\004\021\020\026\0202\004\021\000\000\000\000\000\000\000\000\000\000\004\021\000\000\020J\004\021\000\000\000\000\000\000\000\000\000\000\004\021\004\021\000\242\000\000\000\000\000\000\000\000\000\000\000\000\004\021\000\000\004\021\004\021\019\030\019\186\020b\020z\020\218\004\021\004\021\000\000\004\021\000\000\000\000\000\000\000\000\000\000\004\021\000\000\004\021\004\021\020\242\000\000\000\000\000\000\000\000\004\021\000\000\000\000\004\021\000\000\004\021\021\n\000\000\004\021\004\021\004\021\004\021\000\000\000\000\000\000\000\000\000\000\000\000\004\021\000\000\004\021\004\021\000\000\021j\004\021\004\021\021\162\020\146\004\021\004\021\000\000\000\000\004\021\021\"\004\021\000\000\000\000\020\170\020\194\000\000\000\000\004\021\004\021\021:\021R\003\241\000\000\003\241\000\000\003\241\000\000\000\000\000\000\003\241\000\000\000\000\003\241\000\000\003\241\000\000\000\000\003\241\000\000\000\000\003\241\003\241\003\241\000\000\003\241\003\241\003\241\000\000\000\000\000\000\000\000\000\000\003\241\003\241\003\241\003\241\000\000\003\241\000\000\003\241\000\000\000\000\000\000\000\000\000\000\000\000\003\241\003\241\003\241\003\241\003\241\003\241\000\000\000\000\000\000\000\000\000\000\003\241\000\000\003\241\003\241\000\000\000\000\000\000\000\000\000\000\003\241\003\241\003\241\000\000\000\000\000\000\000\000\000\000\000\000\003\241\000\000\003\241\003\241\003\241\003\241\003\241\003\241\003\241\003\241\003\241\000\000\003\241\000\000\000\000\000\000\000\000\000\000\003\241\000\000\003\241\003\241\003\241\000\000\000\000\000\000\000\000\003\241\000\000\000\000\003\241\000\000\003\241\003\241\000\000\003\241\003\241\003\241\003\241\000\000\000\000\000\000\000\000\000\000\000\000\003\241\000\000\003\241\003\241\000\000\015\218\003\241\003\241\003\241\003\241\003\241\003\241\000\000\000\000\003\241\003\241\018\226\000\000\000\000\003\241\003\241\000\000\000\000\003\241\003\241\003\241\003\241\003\237\000\000\003\237\000\000\003\237\000\000\000\000\000\000\003\237\000\000\000\000\003\237\000\000\003\237\000\000\000\000\019\006\000\000\000\000\003\237\003\237\003\237\000\000\003\237\003\237\003\237\000\000\000\000\000\000\000\000\000\000\019r\019\210\019\234\019\138\000\000\020\002\000\000\003\237\000\000\000\000\000\000\000\000\000\000\000\000\003\237\019\162\003\237\020\026\0202\003\237\000\000\000\000\000\000\000\000\000\000\003\237\000\000\020J\003\237\000\000\000\000\000\000\000\000\000\000\003\237\003\237\000\242\000\000\000\000\000\000\000\000\000\000\000\000\003\237\000\000\003\237\003\237\019\030\019\186\020b\020z\020\218\003\237\003\237\000\000\003\237\000\000\000\000\000\000\000\000\000\000\003\237\000\000\003\237\003\237\020\242\000\000\000\000\000\000\000\000\003\237\000\000\000\000\003\237\000\000\003\237\021\n\000\000\003\237\003\237\003\237\003\237\000\000\000\000\000\000\000\000\000\000\000\000\003\237\000\000\003\237\003\237\000\000\021j\003\237\003\237\021\162\020\146\003\237\003\237\000\000\000\000\003\237\021\"\003\237\000\000\000\000\020\170\020\194\000\000\000\000\003\237\003\237\021:\021R\004\001\000\000\004\001\000\000\004\001\000\000\000\000\000\000\004\001\000\000\000\000\004\001\000\000\004\001\000\000\000\000\004\001\000\000\000\000\004\001\004\001\004\001\000\000\004\001\004\001\004\001\000\000\000\000\000\000\000\000\000\000\004\001\004\001\004\001\004\001\000\000\004\001\000\000\004\001\000\000\000\000\000\000\000\000\000\000\000\000\004\001\004\001\004\001\004\001\004\001\004\001\000\000\000\000\000\000\000\000\000\000\004\001\000\000\004\001\004\001\000\000\000\000\000\000\000\000\000\000\004\001\004\001\004\001\000\000\000\000\000\000\000\000\000\000\000\000\004\001\000\000\004\001\004\001\004\001\004\001\004\001\004\001\004\001\004\001\004\001\000\000\004\001\000\000\000\000\000\000\000\000\000\000\004\001\000\000\004\001\004\001\004\001\000\000\000\000\000\000\000\000\004\001\000\000\000\000\004\001\000\000\004\001\004\001\000\000\004\001\004\001\004\001\004\001\000\000\000\000\000\000\000\000\000\000\000\000\004\001\000\000\004\001\004\001\000\000\015\218\004\001\004\001\004\001\004\001\004\001\004\001\000\000\000\000\004\001\004\001\018\226\000\000\000\000\004\001\004\001\000\000\000\000\004\001\004\001\004\001\004\001\003\253\000\000\003\253\000\000\003\253\000\000\000\000\000\000\003\253\000\000\000\000\003\253\000\000\003\253\000\000\000\000\019\006\000\000\000\000\003\253\003\253\003\253\000\000\003\253\003\253\003\253\000\000\000\000\000\000\000\000\000\000\019r\019\210\019\234\019\138\000\000\020\002\000\000\003\253\000\000\000\000\000\000\000\000\000\000\000\000\003\253\019\162\003\253\020\026\0202\003\253\000\000\000\000\000\000\000\000\000\000\003\253\000\000\020J\003\253\000\000\000\000\000\000\000\000\000\000\003\253\003\253\000\242\000\000\000\000\000\000\000\000\000\000\000\000\003\253\000\000\003\253\003\253\019\030\019\186\020b\020z\020\218\003\253\003\253\000\000\003\253\000\000\000\000\000\000\000\000\000\000\003\253\000\000\003\253\003\253\020\242\000\000\000\000\000\000\000\000\003\253\000\000\000\000\003\253\000\000\003\253\021\n\000\000\003\253\003\253\003\253\003\253\000\000\000\000\000\000\000\000\000\000\000\000\003\253\000\000\003\253\003\253\000\000\021j\003\253\003\253\021\162\020\146\003\253\003\253\000\000\000\000\003\253\021\"\003\253\000\000\000\000\020\170\020\194\000\000\000\000\003\253\003\253\021:\021R\003\249\000\000\003\249\000\000\003\249\000\000\000\000\000\000\003\249\000\000\000\000\003\249\000\000\003\249\000\000\000\000\003\249\000\000\000\000\003\249\003\249\003\249\000\000\003\249\003\249\003\249\000\000\000\000\000\000\000\000\000\000\003\249\003\249\003\249\003\249\000\000\003\249\000\000\003\249\000\000\000\000\000\000\000\000\000\000\000\000\003\249\003\249\003\249\003\249\003\249\003\249\000\000\000\000\000\000\000\000\000\000\003\249\000\000\003\249\003\249\000\000\000\000\000\000\000\000\000\000\003\249\003\249\003\249\000\000\000\000\000\000\000\000\000\000\000\000\003\249\000\000\003\249\003\249\003\249\003\249\003\249\003\249\003\249\003\249\003\249\000\000\003\249\000\000\000\000\000\000\000\000\000\000\003\249\000\000\003\249\003\249\003\249\000\000\000\000\000\000\000\000\003\249\000\000\000\000\003\249\000\000\003\249\003\249\000\000\003\249\003\249\003\249\003\249\000\000\000\000\000\000\000\000\000\000\000\000\003\249\000\000\003\249\003\249\000\000\015\218\003\249\003\249\003\249\003\249\003\249\003\249\000\000\000\000\003\249\003\249\018\226\000\000\000\000\003\249\003\249\000\000\000\000\003\249\003\249\003\249\003\249\003\245\000\000\003\245\000\000\003\245\000\000\000\000\000\000\003\245\000\000\000\000\003\245\000\000\003\245\000\000\000\000\019\006\000\000\000\000\003\245\003\245\003\245\000\000\003\245\003\245\003\245\000\000\000\000\000\000\000\000\000\000\019r\019\210\019\234\019\138\000\000\020\002\000\000\003\245\000\000\000\000\000\000\000\000\000\000\000\000\003\245\019\162\003\245\020\026\0202\003\245\000\000\000\000\000\000\000\000\000\000\003\245\000\000\020J\003\245\000\000\000\000\000\000\000\000\000\000\003\245\003\245\000\242\000\000\000\000\000\000\000\000\000\000\000\000\003\245\000\000\003\245\003\245\019\030\019\186\020b\020z\020\218\003\245\003\245\000\000\003\245\000\000\000\000\000\000\000\000\000\000\003\245\000\000\003\245\003\245\020\242\000\000\000\000\000\000\000\000\003\245\000\000\000\000\003\245\000\000\003\245\021\n\000\000\003\245\003\245\003\245\003\245\000\000\000\000\000\000\000\000\000\000\000\000\003\245\000\000\003\245\003\245\000\000\021j\003\245\003\245\021\162\020\146\003\245\003\245\000\000\000\000\003\245\021\"\003\245\000\000\000\000\020\170\020\194\000\000\000\000\003\245\003\245\021:\021R\004\017\000\000\004\017\000\000\004\017\000\000\000\000\000\000\004\017\000\000\000\000\004\017\000\000\004\017\000\000\000\000\004\017\000\000\000\000\004\017\004\017\004\017\000\000\004\017\004\017\004\017\000\000\000\000\000\000\000\000\000\000\004\017\004\017\004\017\004\017\000\000\004\017\000\000\004\017\000\000\000\000\000\000\000\000\000\000\000\000\004\017\004\017\004\017\004\017\004\017\004\017\000\000\000\000\000\000\000\000\000\000\004\017\000\000\004\017\004\017\000\000\000\000\000\000\000\000\000\000\004\017\004\017\004\017\000\000\000\000\000\000\000\000\000\000\000\000\004\017\000\000\004\017\004\017\004\017\004\017\004\017\004\017\004\017\004\017\004\017\000\000\004\017\000\000\000\000\000\000\000\000\000\000\004\017\000\000\004\017\004\017\004\017\000\000\000\000\000\000\000\000\004\017\000\000\000\000\004\017\000\000\004\017\004\017\000\000\004\017\004\017\004\017\004\017\000\000\000\000\000\000\000\000\000\000\000\000\004\017\000\000\004\017\004\017\000\000\015\218\004\017\004\017\004\017\004\017\004\017\004\017\000\000\000\000\004\017\004\017\018\226\000\000\000\000\004\017\004\017\000\000\000\000\004\017\004\017\004\017\004\017\004\r\000\000\004\r\000\000\004\r\000\000\000\000\000\000\004\r\000\000\000\000\004\r\000\000\004\r\000\000\000\000\019\006\000\000\000\000\004\r\004\r\004\r\000\000\004\r\004\r\004\r\000\000\000\000\000\000\000\000\000\000\019r\019\210\019\234\019\138\000\000\020\002\000\000\004\r\000\000\000\000\000\000\000\000\000\000\000\000\004\r\019\162\004\r\020\026\0202\004\r\000\000\000\000\000\000\000\000\000\000\004\r\000\000\020J\004\r\000\000\000\000\000\000\000\000\000\000\004\r\004\r\000\242\000\000\000\000\000\000\000\000\000\000\000\000\004\r\000\000\004\r\004\r\019\030\019\186\020b\020z\020\218\004\r\004\r\000\000\004\r\000\000\000\000\000\000\000\000\000\000\004\r\000\000\004\r\004\r\020\242\000\000\000\000\000\000\000\000\004\r\000\000\000\000\004\r\000\000\004\r\021\n\000\000\004\r\004\r\004\r\004\r\000\000\000\000\000\000\000\000\000\000\000\000\004\r\000\000\004\r\004\r\000\000\021j\004\r\004\r\021\162\020\146\004\r\004\r\000\000\000\000\004\r\021\"\004\r\000\000\000\000\020\170\020\194\000\000\000\000\004\r\004\r\021:\021R\0041\000\000\0041\000\000\0041\000\000\000\000\000\000\0041\000\000\000\000\0041\000\000\0041\000\000\000\000\0041\000\000\000\000\0041\0041\0041\000\000\0041\0041\0041\000\000\000\000\000\000\000\000\000\000\0041\0041\0041\0041\000\000\0041\000\000\0041\000\000\000\000\000\000\000\000\000\000\000\000\0041\0041\0041\0041\0041\0041\000\000\000\000\000\000\000\000\000\000\0041\000\000\0041\0041\000\000\000\000\000\000\000\000\000\000\0041\0041\0041\000\000\000\000\000\000\000\000\000\000\000\000\0041\000\000\0041\0041\0041\0041\0041\0041\0041\0041\0041\000\000\0041\000\000\000\000\000\000\000\000\000\000\0041\000\000\0041\0041\0041\000\000\000\000\000\000\000\000\0041\000\000\000\000\0041\000\000\0041\0041\000\000\0041\0041\0041\0041\000\000\000\000\000\000\000\000\000\000\000\000\0041\000\000\0041\0041\000\000\015\218\0041\0041\0041\0041\0041\0041\000\000\000\000\0041\0041\018\226\000\000\000\000\0041\0041\000\000\000\000\0041\0041\0041\0041\004-\000\000\004-\000\000\004-\000\000\000\000\000\000\004-\000\000\000\000\004-\000\000\004-\000\000\000\000\019\006\000\000\000\000\004-\004-\004-\000\000\004-\004-\004-\000\000\000\000\000\000\000\000\000\000\019r\019\210\019\234\019\138\000\000\020\002\000\000\004-\000\000\000\000\000\000\000\000\000\000\000\000\004-\019\162\004-\020\026\0202\004-\000\000\000\000\000\000\000\000\000\000\004-\000\000\020J\004-\000\000\000\000\000\000\000\000\000\000\004-\004-\000\242\000\000\000\000\000\000\000\000\000\000\000\000\004-\000\000\004-\004-\019\030\019\186\020b\020z\020\218\004-\004-\000\000\004-\000\000\000\000\000\000\000\000\000\000\004-\000\000\004-\004-\020\242\000\000\000\000\000\000\000\000\004-\000\000\000\000\004-\000\000\004-\021\n\000\000\004-\004-\004-\004-\000\000\000\000\000\000\000\000\000\000\000\000\004-\000\000\004-\004-\000\000\021j\004-\004-\021\162\020\146\004-\004-\000\000\000\000\004-\021\"\004-\000\000\000\000\020\170\020\194\000\000\000\000\004-\004-\021:\021R\004!\000\000\004!\000\000\004!\000\000\000\000\000\000\004!\000\000\000\000\004!\000\000\004!\000\000\000\000\004!\000\000\000\000\004!\004!\004!\000\000\004!\004!\004!\000\000\000\000\000\000\000\000\000\000\004!\004!\004!\004!\000\000\004!\000\000\004!\000\000\000\000\000\000\000\000\000\000\000\000\004!\004!\004!\004!\004!\004!\000\000\000\000\000\000\000\000\000\000\004!\000\000\004!\004!\000\000\000\000\000\000\000\000\000\000\004!\004!\004!\000\000\000\000\000\000\000\000\000\000\000\000\004!\000\000\004!\004!\004!\004!\004!\004!\004!\004!\004!\000\000\004!\000\000\000\000\000\000\000\000\000\000\004!\000\000\004!\004!\004!\000\000\000\000\000\000\000\000\004!\000\000\000\000\004!\000\000\004!\004!\000\000\004!\004!\004!\004!\000\000\000\000\000\000\000\000\000\000\000\000\004!\000\000\004!\004!\000\000\015\218\004!\004!\004!\004!\004!\004!\000\000\000\000\004!\004!\018\226\000\000\000\000\004!\004!\000\000\000\000\004!\004!\004!\004!\004\029\000\000\004\029\000\000\004\029\000\000\000\000\000\000\004\029\000\000\000\000\004\029\000\000\004\029\000\000\000\000\019\006\000\000\000\000\004\029\004\029\004\029\000\000\004\029\004\029\004\029\000\000\000\000\000\000\000\000\000\000\019r\019\210\019\234\019\138\000\000\020\002\000\000\004\029\000\000\000\000\000\000\000\000\000\000\000\000\004\029\019\162\004\029\020\026\0202\004\029\000\000\000\000\000\000\000\000\000\000\004\029\000\000\020J\004\029\000\000\000\000\000\000\000\000\000\000\004\029\004\029\000\242\000\000\000\000\000\000\000\000\000\000\000\000\004\029\000\000\004\029\004\029\019\030\019\186\020b\020z\020\218\004\029\004\029\000\000\004\029\000\000\000\000\000\000\000\000\000\000\004\029\000\000\004\029\004\029\020\242\000\000\000\000\000\000\000\000\004\029\000\000\000\000\004\029\000\000\004\029\021\n\000\000\004\029\004\029\004\029\004\029\000\000\000\000\000\000\000\000\000\000\000\000\004\029\000\000\004\029\004\029\000\000\021j\004\029\004\029\021\162\020\146\004\029\004\029\000\000\000\000\004\029\021\"\004\029\000\000\000\000\020\170\020\194\000\000\000\000\004\029\004\029\021:\021R\003\233\000\000\003\233\000\000\003\233\000\000\000\000\000\000\003\233\000\000\000\000\003\233\000\000\003\233\000\000\000\000\003\233\000\000\000\000\003\233\003\233\003\233\000\000\003\233\003\233\003\233\000\000\000\000\000\000\000\000\000\000\003\233\003\233\003\233\003\233\000\000\003\233\000\000\003\233\000\000\000\000\000\000\000\000\000\000\000\000\003\233\003\233\003\233\003\233\003\233\003\233\000\000\000\000\000\000\000\000\000\000\003\233\000\000\003\233\003\233\000\000\000\000\000\000\000\000\000\000\003\233\003\233\003\233\000\000\000\000\000\000\000\000\000\000\000\000\003\233\000\000\003\233\003\233\003\233\003\233\003\233\003\233\003\233\003\233\003\233\000\000\003\233\000\000\000\000\000\000\000\000\000\000\003\233\000\000\003\233\003\233\003\233\000\000\000\000\000\000\000\000\003\233\000\000\000\000\003\233\000\000\003\233\003\233\000\000\003\233\003\233\003\233\003\233\000\000\000\000\000\000\000\000\000\000\000\000\003\233\000\000\003\233\003\233\000\000\015\218\003\233\003\233\003\233\003\233\003\233\003\233\000\000\000\000\003\233\003\233\018\226\000\000\000\000\003\233\003\233\000\000\000\000\003\233\003\233\003\233\003\233\003\229\000\000\003\229\000\000\003\229\000\000\000\000\000\000\003\229\000\000\000\000\003\229\000\000\003\229\000\000\000\000\019\006\000\000\000\000\003\229\003\229\003\229\000\000\003\229\003\229\003\229\000\000\000\000\000\000\000\000\000\000\019r\019\210\019\234\019\138\000\000\020\002\000\000\003\229\000\000\000\000\000\000\000\000\000\000\000\000\003\229\019\162\003\229\020\026\0202\003\229\000\000\000\000\000\000\000\000\000\000\003\229\000\000\020J\003\229\000\000\000\000\000\000\000\000\000\000\003\229\003\229\000\242\000\000\000\000\000\000\000\000\000\000\000\000\003\229\000\000\003\229\003\229\019\030\019\186\020b\020z\020\218\003\229\003\229\000\000\003\229\000\000\000\000\000\000\000\000\000\000\003\229\000\000\003\229\003\229\020\242\000\000\000\000\000\000\000\000\003\229\000\000\000\000\003\229\000\000\003\229\021\n\000\000\003\229\003\229\003\229\003\229\000\000\000\000\000\000\000\000\000\000\000\000\003\229\000\000\003\229\003\229\000\000\021j\003\229\003\229\021\162\020\146\003\229\003\229\000\000\000\000\003\229\021\"\003\229\000\000\000\000\020\170\020\194\000\000\000\000\003\229\003\229\021:\021R\012U\000\000\012U\000\000\012U\000\000\000\000\000\000\012U\000\000\000\000\012U\000\000\012U\000\000\000\000\012U\000\000\000\000\012U\012U\012U\000\000\012U\012U\012U\000\000\000\000\000\000\000\000\000\000\012U\012U\012U\012U\000\000\012U\000\000\012U\000\000\000\000\000\000\000\000\000\000\000\000\012U\012U\012U\012U\012U\012U\000\000\000\000\000\000\000\000\000\000\012U\000\000\012U\012U\000\000\000\000\000\000\000\000\000\000\012U\012U\012U\000\000\000\000\000\000\000\000\000\000\000\000\012U\000\000\012U\012U\012U\012U\012U\012U\012U\012U\012U\000\000\012U\000\000\000\000\000\000\000\000\000\000\012U\000\000\012U\012U\012U\000\000\000\000\000\000\000\000\012U\000\000\000\000\012U\000\000\012U\012U\000\000\012U\012U\012U\012U\000\000\000\000\000\000\000\000\000\000\000\000\012U\000\000\012U\012U\000\000\015\218\012U\012U\012U\012U\012U\012U\000\000\000\000\012U\012U\018\226\000\000\000\000\012U\012U\000\000\000\000\012U\012U\012U\012U\012Q\000\000\012Q\000\000\012Q\000\000\000\000\000\000\012Q\000\000\000\000\012Q\000\000\012Q\000\000\000\000\019\006\000\000\000\000\012Q\012Q\012Q\000\000\012Q\012Q\012Q\000\000\000\000\000\000\000\000\000\000\019r\019\210\019\234\019\138\000\000\020\002\000\000\012Q\000\000\000\000\000\000\000\000\000\000\000\000\012Q\019\162\012Q\020\026\0202\012Q\000\000\000\000\000\000\000\000\000\000\012Q\000\000\020J\012Q\000\000\000\000\000\000\000\000\000\000\012Q\012Q\000\242\000\000\000\000\000\000\000\000\000\000\000\000\012Q\000\000\012Q\012Q\019\030\019\186\020b\020z\020\218\012Q\012Q\000\000\012Q\000\000\000\000\000\000\000\000\000\000\012Q\000\000\012Q\012Q\020\242\000\000\000\000\000\000\000\000\012Q\000\000\000\000\012Q\000\000\012Q\021\n\000\000\012Q\012Q\012Q\012Q\000\000\000\000\000\000\000\000\000\000\000\000\012Q\000\000\012Q\012Q\000\000\012Q\012Q\012Q\012Q\020\146\012Q\012Q\000\000\000\000\012Q\021\"\012Q\000\000\000\000\020\170\020\194\000\000\000\000\012Q\012Q\021:\021R\r\237\000\000\r\237\000\000\r\237\000\000\000\000\000\000\r\237\000\000\000\000\r\237\000\000\r\237\000\000\000\000\r\237\000\000\000\000\r\237\r\237\r\237\000\000\r\237\r\237\r\237\000\000\000\000\000\000\000\000\000\000\r\237\r\237\r\237\r\237\000\000\r\237\000\000\r\237\000\000\000\000\000\000\000\000\000\000\000\000\r\237\r\237\r\237\r\237\r\237\r\237\000\000\000\000\000\000\000\000\000\000\r\237\000\000\r\237\r\237\000\000\000\000\000\000\000\000\000\000\r\237\r\237\r\237\000\000\000\000\000\000\000\000\000\000\000\000\r\237\000\000\r\237\r\237\r\237\r\237\r\237\r\237\r\237\r\237\r\237\000\000\r\237\000\000\000\000\000\000\000\000\000\000\r\237\000\000\r\237\r\237\r\237\000\000\000\000\000\000\000\000\r\237\000\000\000\000\r\237\000\000\r\237\r\237\000\000\r\237\r\237\r\237\r\237\000\000\000\000\000\000\000\000\000\000\000\000\r\237\000\000\r\237\r\237\000\000\015\218\r\237\r\237\r\237\r\237\r\237\r\237\000\000\000\000\r\237\r\237\018\226\000\000\000\000\r\237\r\237\000\000\000\000\r\237\r\237\r\237\r\237\002\205\000\000\002\205\000\000\002\205\000\000\000\000\000\000\002\205\000\000\000\000\002\205\000\000\002\205\000\000\000\000\002\205\000\000\000\000\002\205\002\205\002\205\000\000\002\205\002\205\002\205\000\000\000\000\000\000\000\000\000\000\002\205\002\205\002\205\002\205\000\000\002\205\000\000\002\205\000\000\000\000\000\000\000\000\000\000\000\000\002\205\002\205\002\205\002\205\002\205\002\205\000\000\000\000\000\000\000\000\000\000\002\205\000\000\002\205\002\205\000\000\000\000\000\000\000\000\000\000\002\205\002\205\002\205\000\000\000\000\000\000\000\000\000\000\000\000\002\205\000\000\002\205\002\205\002\205\002\205\002\205\002\205\002\205\002\205\002\205\000\000\002\205\000\000\000\000\000\000\000\000\000\000\002\205\000\000\002\205\002\205\002\205\000\000\000\000\000\000\000\000\002\205\000\000\000\000\002\205\000\000\002\205\002\205\000\000\002\205\002\205\027\254\002\205\000\000\000\000\000\000\000\000\000\000\000\000\002\205\000\000\002\205\002\205\000\000\015\218\002\205\002\205\002\205\002\205\002\205\002\205\000\000\000\000\002\205\002\205\018\226\000\000\000\000\002\205\002\205\000\000\000\000\002\205\002\205\002\205\002\205\002\197\000\000\002\197\000\000\002\197\000\000\000\000\000\000\002\197\000\000\000\000\002\197\000\000\002\197\000\000\000\000\002\197\000\000\000\000\002\197\002\197\002\197\000\000\002\197\002\197\002\197\000\000\000\000\000\000\000\000\000\000\002\197\002\197\002\197\002\197\000\000\002\197\000\000\002\197\000\000\000\000\000\000\000\000\000\000\000\000\002\197\002\197\002\197\002\197\002\197\002\197\000\000\000\000\000\000\000\000\000\000\002\197\000\000\002\197\002\197\000\000\000\000\000\000\000\000\000\000\002\197\002\197\002\197\000\000\000\000\000\000\000\000\000\000\000\000\002\197\000\000\002\197\002\197\002\197\002\197\002\197\002\197\002\197\002\197\002\197\000\000\002\197\000\000\000\000\000\000\000\000\000\000\002\197\000\000\002\197\002\197\002\197\000\000\000\000\000\000\000\000\002\197\000\000\000\000\002\197\000\000\002\197\002\197\000\000\002\197\002\197\002\197\002\197\000\000\000\000\000\000\000\000\000\000\000\000\002\197\000\000\002\197\002\197\000\000\015\218\002\197\002\197\002\197\002\197\002\197\002\197\000\000\000\000\002\197\002\197\018\226\000\000\000\000\002\197\002\197\000\000\000\000\002\197\002\197\002\197\002\197\002\193\000\000\002\193\000\000\002\193\000\000\000\000\000\000\002\193\000\000\000\000\002\193\000\000\002\193\000\000\000\000\019\006\000\000\000\000\002\193\002\193\002\193\000\000\002\193\002\193\002\193\000\000\000\000\000\000\000\000\000\000\019r\019\210\019\234\019\138\000\000\020\002\000\000\002\193\000\000\000\000\000\000\000\000\000\000\000\000\002\193\019\162\002\193\020\026\0202\002\193\000\000\000\000\000\000\000\000\000\000\002\193\000\000\020J\002\193\000\000\000\000\000\000\000\000\000\000\002\193\002\193\000\242\000\000\000\000\000\000\000\000\000\000\000\000\002\193\000\000\002\193\002\193\019\030\019\186\020b\020z\020\218\002\193\002\193\000\000\002\193\000\000\000\000\000\000\000\000\000\000\002\193\000\000\002\193\002\193\020\242\000\000\000\000\000\000\000\000\002\193\000\000\000\000\002\193\000\000\002\193\021\n\000\000\002\193\002\193\002\193\002\193\000\000\000\000\000\000\000\000\000\000\000\000\002\193\000\000\002\193\002\193\000\000\021j\002\193\002\193\021\162\020\146\002\193\002\193\000\000\000\000\002\193\021\"\002\193\000\000\000\000\020\170\020\194\000\000\000\000\002\193\002\193\021:\021R\002\201\000\000\002\201\000\000\002\201\000\000\000\000\000\000\002\201\000\000\000\000\002\201\000\000\002\201\000\000\000\000\019\006\000\000\000\000\002\201\002\201\002\201\000\000\002\201\002\201\002\201\000\000\000\000\000\000\000\000\000\000\019r\019\210\019\234\019\138\000\000\020\002\000\000\002\201\000\000\000\000\000\000\000\000\000\000\000\000\002\201\019\162\002\201\020\026\0202\002\201\000\000\000\000\000\000\000\000\000\000\002\201\000\000\020J\002\201\000\000\000\000\000\000\000\000\000\000\002\201\002\201\000\242\000\000\000\000\000\000\000\000\000\000\000\000\002\201\000\000\002\201\002\201\019\030\019\186\020b\020z\020\218\002\201\002\201\000\000\002\201\000\000\000\000\000\000\000\000\000\000\002\201\000\000\002\201\002\201\020\242\000\000\000\000\000\000\000\000\002\201\000\000\000\000\002\201\000\000\002\201\021\n\000\000\002\201\002\201\028\026\002\201\000\000\000\000\000\000\000\000\000\000\000\000\002\201\000\000\002\201\002\201\000\000\021j\002\201\002\201\021\162\020\146\002\201\002\201\000\000\000\000\002\201\021\"\002\201\000\000\000\000\020\170\020\194\000\000\000\000\002\201\002\201\021:\021R\002\189\000\000\002\189\000\000\002\189\000\000\000\000\000\000\002\189\000\000\000\000\002\189\000\000\002\189\000\000\000\000\002\189\000\000\000\000\002\189\002\189\002\189\000\000\002\189\002\189\002\189\000\000\000\000\000\000\000\000\000\000\002\189\002\189\002\189\002\189\000\000\002\189\000\000\002\189\000\000\000\000\000\000\000\000\000\000\000\000\002\189\002\189\002\189\002\189\002\189\002\189\000\000\000\000\000\000\000\000\000\000\002\189\000\000\002\189\002\189\000\000\000\000\000\000\000\000\000\000\002\189\002\189\002\189\000\000\000\000\000\000\000\000\000\000\000\000\002\189\000\000\002\189\002\189\002\189\002\189\002\189\002\189\002\189\002\189\002\189\000\000\002\189\000\000\000\000\000\000\000\000\000\000\002\189\000\000\002\189\002\189\002\189\000\000\000\000\000\000\000\000\002\189\000\000\000\000\002\189\000\000\002\189\002\189\000\000\002\189\002\189\002\189\002\189\000\000\000\000\000\000\000\000\000\000\000\000\002\189\000\000\002\189\002\189\000\000\015\218\002\189\002\189\002\189\002\189\002\189\002\189\000\000\000\000\002\189\002\189\018\226\000\000\000\000\002\189\002\189\000\000\000\000\002\189\002\189\002\189\002\189\002\185\000\000\002\185\000\000\002\185\000\000\000\000\000\000\002\185\000\000\000\000\002\185\000\000\002\185\000\000\000\000\019\006\000\000\000\000\002\185\002\185\002\185\000\000\002\185\002\185\002\185\000\000\000\000\000\000\000\000\000\000\019r\019\210\019\234\019\138\000\000\020\002\000\000\002\185\000\000\000\000\000\000\000\000\000\000\000\000\002\185\019\162\002\185\020\026\0202\002\185\000\000\000\000\000\000\000\000\000\000\002\185\000\000\020J\002\185\000\000\000\000\000\000\000\000\000\000\002\185\002\185\000\242\000\000\000\000\000\000\000\000\000\000\000\000\002\185\000\000\002\185\002\185\019\030\019\186\020b\020z\020\218\002\185\002\185\000\000\002\185\000\000\000\000\000\000\000\000\000\000\002\185\000\000\002\185\002\185\020\242\000\000\000\000\000\000\000\000\002\185\000\000\000\000\002\185\000\000\002\185\021\n\000\000\002\185\002\185\002\185\002\185\000\000\000\000\000\000\000\000\000\000\000\000\002\185\000\000\002\185\002\185\000\000\021j\002\185\002\185\021\162\020\146\002\185\002\185\000\000\000\000\002\185\021\"\002\185\000\000\000\000\020\170\020\194\000\000\000\000\002\185\002\185\021:\021R\012i\000\000\012i\000\000\012i\000\000\000\000\000\000\012i\000\000\000\000\012i\000\000\012i\000\000\000\000\012i\000\000\000\000\012i\012i\012i\000\000\012i\012i\012i\000\000\000\000\000\000\000\000\000\000\012i\012i\012i\012i\000\000\012i\000\000\012i\000\000\000\000\000\000\000\000\000\000\000\000\012i\012i\012i\012i\012i\012i\000\000\000\000\000\000\000\000\000\000\012i\000\000\012i\012i\000\000\000\000\000\000\000\000\000\000\012i\012i\012i\000\000\000\000\000\000\000\000\000\000\000\000\012i\000\000\012i\012i\012i\012i\012i\012i\012i\012i\012i\000\000\012i\000\000\000\000\000\000\000\000\000\000\012i\000\000\012i\012i\012i\000\000\000\000\000\000\000\000\012i\000\000\000\000\012i\000\000\012i\012i\000\000\012i\012i\012i\012i\000\000\000\000\000\000\000\000\000\000\000\000\012i\000\000\012i\012i\000\000\015\218\012i\012i\012i\012i\012i\012i\000\000\000\000\012i\012i\018\226\000\000\000\000\012i\012i\000\000\000\000\012i\012i\012i\012i\012e\000\000\012e\000\000\012e\000\000\000\000\000\000\012e\000\000\000\000\012e\000\000\012e\000\000\000\000\019\006\000\000\000\000\012e\012e\012e\000\000\012e\012e\012e\000\000\000\000\000\000\000\000\000\000\019r\019\210\019\234\019\138\000\000\020\002\000\000\012e\000\000\000\000\000\000\000\000\000\000\000\000\012e\019\162\012e\020\026\0202\012e\000\000\000\000\000\000\000\000\000\000\012e\000\000\020J\012e\000\000\000\000\000\000\000\000\000\000\012e\012e\000\242\000\000\000\000\000\000\000\000\000\000\000\000\012e\000\000\012e\012e\019\030\019\186\020b\020z\020\218\012e\012e\000\000\012e\000\000\000\000\000\000\000\000\000\000\012e\000\000\012e\012e\020\242\000\000\000\000\000\000\000\000\012e\000\000\000\000\012e\000\000\012e\021\n\000\000\012e\012e\012e\012e\000\000\000\000\000\000\000\000\000\000\000\000\012e\000\000\012e\012e\000\000\012e\012e\012e\012e\020\146\012e\012e\000\000\000\000\012e\021\"\012e\000\000\000\000\020\170\020\194\000\000\000\000\012e\012e\021:\021R\003\225\000\000\003\225\000\000\003\225\000\000\000\000\000\000\003\225\000\000\000\000\003\225\000\000\003\225\000\000\000\000\003\225\000\000\000\000\003\225\003\225\003\225\000\000\003\225\003\225\003\225\000\000\000\000\000\000\000\000\000\000\003\225\003\225\003\225\003\225\000\000\003\225\000\000\003\225\000\000\000\000\000\000\000\000\000\000\000\000\003\225\003\225\003\225\003\225\003\225\003\225\000\000\000\000\000\000\000\000\000\000\003\225\000\000\003\225\003\225\000\000\000\000\000\000\000\000\000\000\003\225\003\225\003\225\000\000\000\000\000\000\000\000\000\000\000\000\003\225\000\000\003\225\003\225\003\225\003\225\003\225\003\225\003\225\003\225\003\225\000\000\003\225\000\000\000\000\000\000\000\000\000\000\003\225\000\000\003\225\003\225\003\225\000\000\000\000\000\000\000\000\003\225\000\000\000\000\003\225\000\000\003\225\003\225\000\000\003\225\003\225\003\225\003\225\000\000\000\000\000\000\000\000\000\000\000\000\003\225\000\000\003\225\003\225\000\000\015\218\003\225\003\225\003\225\003\225\003\225\003\225\000\000\000\000\003\225\003\225\018\226\000\000\000\000\003\225\003\225\000\000\000\000\003\225\003\225\003\225\003\225\003\221\000\000\003\221\000\000\003\221\000\000\000\000\000\000\003\221\000\000\000\000\003\221\000\000\003\221\000\000\000\000\019\006\000\000\000\000\003\221\003\221\003\221\000\000\003\221\003\221\003\221\000\000\000\000\000\000\000\000\000\000\019r\019\210\019\234\019\138\000\000\020\002\000\000\003\221\000\000\000\000\000\000\000\000\000\000\000\000\003\221\019\162\003\221\020\026\0202\003\221\000\000\000\000\000\000\000\000\000\000\003\221\000\000\020J\003\221\000\000\000\000\000\000\000\000\000\000\003\221\003\221\000\242\000\000\000\000\000\000\000\000\000\000\000\000\003\221\000\000\003\221\003\221\019\030\019\186\020b\020z\020\218\003\221\003\221\000\000\003\221\000\000\000\000\000\000\000\000\000\000\003\221\000\000\003\221\003\221\020\242\000\000\000\000\000\000\000\000\003\221\000\000\000\000\003\221\000\000\003\221\021\n\000\000\003\221\003\221\003\221\003\221\000\000\000\000\000\000\000\000\000\000\000\000\003\221\000\000\003\221\003\221\000\000\021j\003\221\003\221\021\162\020\146\003\221\003\221\000\000\000\000\003\221\021\"\003\221\000\000\000\000\020\170\020\194\000\000\000\000\003\221\003\221\021:\021R\002\169\000\000\002\169\000\000\002\169\000\000\000\000\000\000\002\169\000\000\000\000\002\169\000\000\002\169\000\000\000\000\002\169\000\000\000\000\002\169\002\169\002\169\000\000\002\169\002\169\002\169\000\000\000\000\000\000\000\000\000\000\002\169\002\169\002\169\002\169\000\000\002\169\000\000\002\169\000\000\000\000\000\000\000\000\000\000\000\000\002\169\002\169\002\169\002\169\002\169\002\169\000\000\000\000\000\000\000\000\000\000\002\169\000\000\002\169\002\169\000\000\000\000\000\000\000\000\000\000\002\169\002\169\002\169\000\000\000\000\000\000\000\000\000\000\000\000\002\169\000\000\002\169\002\169\002\169\002\169\002\169\002\169\002\169\002\169\002\169\000\000\002\169\000\000\000\000\000\000\000\000\000\000\002\169\000\000\002\169\002\169\002\169\000\000\000\000\000\000\000\000\002\169\000\000\000\000\002\169\000\000\002\169\002\169\000\000\002\169\002\169\002\169\002\169\000\000\000\000\000\000\000\000\000\000\000\000\002\169\000\000\002\169\002\169\000\000\002\169\002\169\002\169\002\169\002\169\002\169\002\169\000\000\000\000\002\169\002\169\018\226\000\000\000\000\002\169\002\169\000\000\000\000\002\169\002\169\002\169\002\169\002\181\000\000\002\181\000\000\002\181\000\000\000\000\000\000\002\181\000\000\000\000\002\181\000\000\002\181\000\000\000\000\002\181\000\000\000\000\002\181\002\181\002\181\000\000\002\181\002\181\002\181\000\000\000\000\000\000\000\000\000\000\002\181\002\181\002\181\002\181\000\000\002\181\000\000\002\181\000\000\000\000\000\000\000\000\000\000\000\000\002\181\002\181\002\181\002\181\002\181\002\181\000\000\000\000\000\000\000\000\000\000\002\181\000\000\002\181\002\181\000\000\000\000\000\000\000\000\000\000\002\181\002\181\002\181\000\000\000\000\000\000\000\000\000\000\000\000\002\181\000\000\002\181\002\181\002\181\002\181\002\181\002\181\002\181\002\181\002\181\000\000\002\181\000\000\000\000\000\000\000\000\000\000\002\181\000\000\002\181\002\181\002\181\000\000\000\000\000\000\000\000\002\181\000\000\000\000\002\181\000\000\002\181\002\181\000\000\002\181\002\181\002\181\002\181\000\000\000\000\000\000\000\000\000\000\000\000\002\181\000\000\002\181\002\181\000\000\015\218\002\181\002\181\002\181\002\181\002\181\002\181\000\000\000\000\002\181\002\181\018\226\000\000\000\000\002\181\002\181\000\000\000\000\002\181\002\181\002\181\002\181\002\177\000\000\002\177\000\000\002\177\000\000\000\000\000\000\002\177\000\000\000\000\002\177\000\000\002\177\000\000\000\000\019\006\000\000\000\000\002\177\002\177\002\177\000\000\002\177\002\177\002\177\000\000\000\000\000\000\000\000\000\000\019r\019\210\019\234\019\138\000\000\020\002\000\000\002\177\000\000\000\000\000\000\000\000\000\000\000\000\002\177\019\162\002\177\020\026\0202\002\177\000\000\000\000\000\000\000\000\000\000\002\177\000\000\020J\002\177\000\000\000\000\000\000\000\000\000\000\002\177\002\177\000\242\000\000\000\000\000\000\000\000\000\000\000\000\002\177\000\000\002\177\002\177\019\030\019\186\020b\020z\020\218\002\177\002\177\000\000\002\177\000\000\000\000\000\000\000\000\000\000\002\177\000\000\002\177\002\177\020\242\000\000\000\000\000\000\000\000\002\177\000\000\000\000\002\177\000\000\002\177\021\n\000\000\002\177\002\177\002\177\002\177\000\000\000\000\000\000\000\000\000\000\000\000\002\177\000\000\002\177\002\177\000\000\021j\002\177\002\177\021\162\020\146\002\177\002\177\000\000\000\000\002\177\021\"\002\177\000\000\000\000\020\170\020\194\000\000\000\000\002\177\002\177\021:\021R\003\001\000\000\003\001\000\000\003\001\000\000\000\000\000\000\003\001\000\000\000\000\003\001\000\000\003\001\000\000\000\000\003\001\000\000\000\000\003\001\003\001\003\001\000\000\003\001\003\001\003\001\000\000\000\000\000\000\000\000\000\000\003\001\003\001\003\001\003\001\000\000\003\001\000\000\003\001\000\000\000\000\000\000\000\000\000\000\000\000\003\001\003\001\003\001\003\001\003\001\003\001\000\000\000\000\000\000\000\000\000\000\003\001\000\000\003\001\003\001\000\000\000\000\000\000\000\000\000\000\003\001\003\001\003\001\000\000\000\000\000\000\000\000\000\000\000\000\003\001\000\000\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\000\000\003\001\000\000\000\000\000\000\000\000\000\000\003\001\000\000\003\001\003\001\003\001\000\000\000\000\000\000\000\000\003\001\000\000\000\000\003\001\000\000\003\001\003\001\000\000\003\001\003\001\003\001\003\001\000\000\000\000\000\000\000\000\000\000\000\000\003\001\000\000\003\001\003\001\000\000\003\001\003\001\003\001\003\001\003\001\003\001\003\001\000\000\000\000\003\001\003\001\018\226\000\000\000\000\003\001\003\001\000\000\000\000\003\001\003\001\003\001\003\001\012\145\000\000\012\145\000\000\012\145\000\000\000\000\000\000\012\145\000\000\000\000\012\145\000\000\012\145\000\000\000\000\012\145\000\000\000\000\012\145\012\145\012\145\000\000\012\145\012\145\012\145\000\000\000\000\000\000\000\000\000\000\012\145\012\145\012\145\012\145\000\000\012\145\000\000\012\145\000\000\000\000\000\000\000\000\000\000\000\000\012\145\012\145\012\145\012\145\012\145\012\145\000\000\000\000\000\000\000\000\000\000\012\145\000\000\012\145\012\145\000\000\000\000\000\000\000\000\000\000\012\145\012\145\012\145\000\000\000\000\000\000\000\000\000\000\000\000\012\145\000\000\012\145\012\145\012\145\012\145\012\145\012\145\012\145\012\145\012\145\000\000\012\145\000\000\000\000\000\000\000\000\000\000\012\145\000\000\012\145\012\145\012\145\000\000\000\000\000\000\000\000\012\145\000\000\000\000\012\145\000\000\012\145\012\145\000\000\012\145\012\145\012\145\012\145\000\000\000\000\000\000\000\000\000\000\000\000\012\145\000\000\012\145\012\145\000\000\015\218\012\145\012\145\012\145\012\145\012\145\012\145\000\000\000\000\012\145\012\145\018\226\000\000\000\000\012\145\012\145\000\000\000\000\012\145\012\145\012\145\012\145\012\141\000\000\012\141\000\000\012\141\000\000\000\000\000\000\012\141\000\000\000\000\012\141\000\000\012\141\000\000\000\000\019\006\000\000\000\000\012\141\012\141\012\141\000\000\012\141\012\141\012\141\000\000\000\000\000\000\000\000\000\000\019r\019\210\019\234\019\138\000\000\020\002\000\000\012\141\000\000\000\000\000\000\000\000\000\000\000\000\012\141\019\162\012\141\020\026\0202\012\141\000\000\000\000\000\000\000\000\000\000\012\141\000\000\020J\012\141\000\000\000\000\000\000\000\000\000\000\012\141\012\141\000\242\000\000\000\000\000\000\000\000\000\000\000\000\012\141\000\000\012\141\012\141\019\030\019\186\020b\020z\020\218\012\141\012\141\000\000\012\141\000\000\000\000\000\000\000\000\000\000\012\141\000\000\012\141\012\141\020\242\000\000\000\000\000\000\000\000\012\141\000\000\000\000\012\141\000\000\012\141\021\n\000\000\012\141\012\141\012\141\012\141\000\000\000\000\000\000\000\000\000\000\000\000\012\141\000\000\012\141\012\141\000\000\012\141\012\141\012\141\012\141\020\146\012\141\012\141\000\000\000\000\012\141\021\"\012\141\000\000\000\000\020\170\020\194\000\000\000\000\012\141\012\141\021:\021R\012}\000\000\012}\000\000\012}\000\000\000\000\000\000\012}\000\000\000\000\012}\000\000\012}\000\000\000\000\012}\000\000\000\000\012}\012}\012}\000\000\012}\012}\012}\000\000\000\000\000\000\000\000\000\000\012}\012}\012}\012}\000\000\012}\000\000\012}\000\000\000\000\000\000\000\000\000\000\000\000\012}\012}\012}\012}\012}\012}\000\000\000\000\000\000\000\000\000\000\012}\000\000\012}\012}\000\000\000\000\000\000\000\000\000\000\012}\012}\012}\000\000\000\000\000\000\000\000\000\000\000\000\012}\000\000\012}\012}\012}\012}\012}\012}\012}\012}\012}\000\000\012}\000\000\000\000\000\000\000\000\000\000\012}\000\000\012}\012}\012}\000\000\000\000\000\000\000\000\012}\000\000\000\000\012}\000\000\012}\012}\000\000\012}\012}\012}\012}\000\000\000\000\000\000\000\000\000\000\000\000\012}\000\000\012}\012}\000\000\015\218\012}\012}\012}\012}\012}\012}\000\000\000\000\012}\012}\018\226\000\000\000\000\012}\012}\000\000\000\000\012}\012}\012}\012}\012y\000\000\012y\000\000\012y\000\000\000\000\000\000\012y\000\000\000\000\012y\000\000\012y\000\000\000\000\019\006\000\000\000\000\012y\012y\012y\000\000\012y\012y\012y\000\000\000\000\000\000\000\000\000\000\019r\019\210\019\234\019\138\000\000\020\002\000\000\012y\000\000\000\000\000\000\000\000\000\000\000\000\012y\019\162\012y\020\026\0202\012y\000\000\000\000\000\000\000\000\000\000\012y\000\000\020J\012y\000\000\000\000\000\000\000\000\000\000\012y\012y\000\242\000\000\000\000\000\000\000\000\000\000\000\000\012y\000\000\012y\012y\019\030\019\186\020b\020z\020\218\012y\012y\000\000\012y\000\000\000\000\000\000\000\000\000\000\012y\000\000\012y\012y\020\242\000\000\000\000\000\000\000\000\012y\000\000\000\000\012y\000\000\012y\021\n\000\000\012y\012y\012y\012y\000\000\000\000\000\000\000\000\000\000\000\000\012y\000\000\012y\012y\000\000\012y\012y\012y\012y\020\146\012y\012y\000\000\000\000\012y\021\"\012y\000\000\000\000\020\170\020\194\000\000\000\000\012y\012y\021:\021R\002\173\000\000\002\173\000\000\002\173\000\000\000\000\000\000\002\173\000\000\000\000\002\173\000\000\002\173\000\000\000\000\002\173\000\000\000\000\002\173\002\173\002\173\000\000\002\173\002\173\002\173\000\000\000\000\000\000\000\000\000\000\002\173\002\173\002\173\002\173\000\000\002\173\000\000\002\173\000\000\000\000\000\000\000\000 \234\000\000\002\173\002\173\002\173\002\173\002\173\002\173\000\000\000\000\000\000\000\000\000\000\002\173\000\000\002\173\002\173\000\000\000\000\000\000\000\000\011\165\002\173\002\173\002\173\000\000\000\000\000\000\000\000\000\000\000\000\002\173\000\000\002\173\002\173\002\173\002\173\002\173\002\173\002\173\002\173\002\173\000\000\002\173\000\000\000\000\000\000\000\000\000\000\002\173\019\229\002\173\002\173\002\173\000\000\000\000\000\000\000\000\002\173\000\000\000\000\002\173\000\000\002\173\002\173\000\242\002\173\002\173\002\173\002\173\000\000\019\229\000\000\000\000\002\170\000\000\002\173\002\174\002\173\002\173\000\000\002\173\002\173\002\173\002\173\002\173\002\173\002\173\000\000\000\000\002\173\002\173\018\226\002\186\000\000\002\173\002\173\000\000\000\000\002\173\002\173\002\173\002\173\000\006\000\000\000\000\000\250\003\146\003\150\003\154\t*\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\000\000\tV\011\158#:\002\198\007E\011j\tZ\001\234\000\000 \226\000\000\bn\011\218\t^\tb\000\000\tf\000\000\011\226 N\tr\000\000\br\tZ\tv\000\000 v\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000 \218\003\138\000\000\000\000\t\190\r\178 \242\000\000#\174\r\182\r\186\r\198\r\210\r\234\003\154 \250\nJ \218\000\000\002\202\000\000\000\000\000\000 \242!\n\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\001\234$R$b\000\000\000\000\000\000\000\000\014\006\014\030\017\226\n\134\n\138!\018\017\246!R#.\000\000\007E\007E\000\000\000\000\r\226\000\000\r\230\000\000\000\000$n\000\000\t\130\000\000$r\000\000\000\000\000\000\003\138\007]\000\000!\142!\154\n\142\r\238\000\000$\162\000\000\015\250\007\166\000\006%\154\017\250\000\250\003\146\003\150\003\154\t*\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\000\000\007e\000\000\000\000\000\000\000\000\000\000\tZ\001\234\000\000\000\000$\178\bn\000\000\t^\tb\000\000\tf\000\000\000\000 N\tr\000\000\br\000\000\tv\000\000 v\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000 \218\003\138\000\000\000\000\t\190\r\178 \242\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000 \250\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000!\n\000\000\r\250/6\nb\nf\000\000\r\206\r\222/V\000\000\000\000\000\000\000\000\000\000\000\000\014\006\014\030\017\226\n\134\n\138!\018\017\246!R\000\000\000\000/w\0282\000\000\000\000\r\226\000\000\r\230\000\000\000\000\000\000\000\000\030J\000\000\000\000\003j\000\000\000\000\000\000\016~\000\000\000\000!\154\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\006\000\000\017\250\000\250\003\146\003\150\003\154\t*\003\158\003j\029z\003\170\000\000\000\000\bf\000\000\bj\000\000/\166\000\000\000\000\000\000\000\000\000\000\tZ\001\234\000\000\030N\016~\bn\000\000\t^\tb\000\000\tf\000\000\016\226 N\tr\000\000\br\000\000\tv\030Z v)b\000\000\t\162\t\166\029\166\t\170\t\182\t\194\t\198\t\206\r\146\000\242\000\000 \218\003\138\000\000\000\000\t\190\r\178 \242\000\000)n\r\182\r\186\r\198\r\210\r\234\000\000 \250\nJ\016\226\000\000\000\000\n\138\000\000\000\000\000\000!\n\000\000\r\250/6\nb\nf\000\000\r\206\r\222/V)z\000\000\000\000\000\242\000\000\000\000\014\006\014\030\017\226\n\134\n\138!\018\017\246!R\000\000\000\000\007m\000\000)\014\000\000\r\226\000\000\r\230\029~\001\202\b\130\003\154\014\190\000\000\003j\000\000\b\134\000\000\000\000\bf\001\n\004F!\154\n\142\r\238\003v\000\000\000\000\015\250\007\166\001\234\000\000\017\250\000\000\001\014\001\018\001\022\b\234\001\030\000\000\001\"\000\000\000\000\001\206\000\000\000\000\000\000\029\170\000\000\b\238\001&\000\000\001*\011\138\000\000\000\000\014:\001\210\001\190\0012\004F\000\000\0016\000\000\003\138\015\165\000\000\n\n\n\014\000\000\000\000\000\000\n\018\000\000\n\026\n>\nn\019\229\019\205\nJ\000\000\000\000\001:\001>\001B\001F\001J\000\000\000\000\000\000\nN\nb\nf\001N\nj\nr\n~\000\000\019\229\000\000\001R\002\170\000\000\000\000\002\174\015\165\n\134\n\138\000\000\000\000\011\002\001V\000\000\002\182\000\000\000\000\002a\002a\001Z\000\000\002\186\000\000\015\165\002\194\002a\019\205\015\165\022z\000\000\000\000\000\000\001\150\011\142\015\165\000\000\n\142\002a\004F\001\154\015\165\001\158\007\166\001\162\001\166\000\n\000\000\001\170\000\000\001\174\001\178\000\185\002\198\003\150\003\154\000\185\020!\003j\000\000\018R\000\000\000\000\bf\002a\000\000\000\000\000\185\000\000\000\185\000\000\000\185\002a\000\185\001\234\000\000\018j\b\021\bn\002a\000\000\b\021\000\000\000\000\000\000\018r\000\185\000\000\000\000\br\000\000\tv\000\000\000\185\000\000\000\000\000\000\000\000\000\185\000\000\t\182\000\000\001\190\000\000\000\185\000\000\000\000\000\185\003\138\002\202\002a\t\190\r\178\000\185\000\185\000\185\r\182\r\186\r\198\000\000\023\178\000\000\000\185\nJ\000\185\000\185\0071\000\000\000\000\000\000\000\000\000\185\000\000\000\000\000\185\nb\nf\000\000\r\206\r\222\000\185\000\000\000\000\020!\000\000\000\000\020!\0071\r\154\020!\n\134\n\138\000\185\000\000\000\185\000\000\000\000\000\185\000\185\000\000\011e\r\226\000\000\r\230\b\021\000\000\000\000\000\000\000\000\000\000\000\185\020!\0071\020!\000\000\020!\000\000\000\185\000\185\n\142\r\238\0071\000\000\b\021\015\250\007\166\b\021\0071\tN\000\185\000\209\000\185\003\150\003\154\000\209\000\000\003j\000\000\018R\0071\011e\bf\000\000\000\000\000\000\000\209\000\000\000\209\000\000\000\209\000\000\000\209\001\234\000\000\018j\000\000\bn\011e\000\000\000\000\000\000\011e\017\214\018r\000\209\000\000\000\000\br\011e\tv\000\000\000\209\0071\000\000\011e\000\000\000\209\000\000\t\182\000\000\001\190\000\000\000\209\000\000\0071\000\209\003\138\000\000\000\000\t\190\r\178\000\209\000\209\000\209\r\182\r\186\r\198\000\000\023\178\000\000\000\209\nJ\000\209\000\209\000\000\r\170\000\000\t\030\003\154\000\209\000\000\000\000\000\209\nb\nf\t\"\r\206\r\222\000\209\000\000\000\000\000\000\017~\000\000\000\000\000\000\000\000\001\234\n\134\n\138\000\209\000\000\000\209\002a\000\000\000\209\000\209\000\000\000\000\r\226\000\000\r\230\000\000\000\000\002a\000\000\000\000\000\000\000\209\000\000\000\000\000\000\002a\r\166\000\000\000\209\000\209\n\142\r\238\011\154\000\n\003\138\015\250\007\166\b\130\003\154\011z\000\209\003j\000\209\b\134\002a\000\000\bf\001\n\000\000\000\000\000\000\002a\003v\002a\000\000\000\000\000\000\001\234\000\000\002a\000\000\001\014\001\018\001\022\b\234\001\030\002a\001\"\000\000\000\000\000\000\000\000\016:\000\000\000\000\000\000\b\238\001&\000\242\001*\011\138\000\000\000\000\b\230\000\000\001\190\0012\000\000\000\000\0016\000\000\003\138\000\000\000\000\n\n\n\014\000\000\002a\000\000\n\018\000\000\n\026\n>\nn\000\000\020!\nJ\000\000\000\000\001:\001>\001B\001F\001J\000\000\000\000\000\000\nN\nb\nf\001N\nj\nr\n~\000\000\b\025\000\000\001R\000\000\b\025\000\000\000\000\000\000\n\134\n\138\011\158\000\000\011\002\001V\011j\014B\000\000\000\000\000\000\000\000\001Z\011\218\000\000\000\000\000\000\004F\000\000\011\226\000\000\000\000\001\230\000\000\000\000\001\150\011\142\000\000\000\000\n\142\000\000\000\000\001\154\000\000\001\158\007\166\001\162\001\166\000\000\000\000\001\170\001\234\001\174\001\178\006=\000\000\b\130\003\154\006=\000\000\003j\000\000\r2\000\000\000\000\bf!\214\000\000\020!\006=\000\000\020!\000\000\006=\020!\006=\001\234\000\000\r~\003\234\000\000\"N\000\000\b\190\000\000\003\138\000\000\014*\006=\b\025\000\000\000\000\000\000\"f\000\000\006=\020!\000\000\020!\b\210\020!\000\000\014\186\000\000\001\190\000\000\006=\000\000\b\025\006=\003\138\b\025\000\000\n\n\n\014\006=\006=\015\161\n\018\000\000\n\026\000\000\015J\000\000\006=\nJ\000\000\011\197\000\000\000\000\011\197\000\000\000\000\006=\006=\000\000\nN\nb\nf\000\000\nj\nr\n~\000\000\000\000\000\000\000\000\000\000\000\000#\186\000\000\000\000\n\134\n\138\006=\030J\006=\021\210\003j\006=\006=\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\011\197\000\000\015\161\000\000\003\182)^\015\161\022\006\006=\n\142\000\000\000\000\000\000\015\161\000\000\007\166\011\197\004F\000\006\015\161\000\000\006=\003\146\003\150\003\154\000\000\003\158\003j\030N\003\170\000\000\000\000\bf\000\000\bj\000\000\000\000\000\000\r\185\000\000\r\185\r\185\000\000\001\234\030Z\000\000)\130\bn\000\000\t^\tb\011\197\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166)\142\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\n\138\t\190\r\178\000\000\011\197\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ)\154\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000)\014\000\000\000\000\000\000\000\000\018\"\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\000\r\230\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\185\000\000\000\000\000\000\000\000\000\000\n\142\r\238\r\185\000\000\000\000\015\250\007\166\000\006\000\000\017\250\020-\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\000\000\000\000\000\000\r\177\000\000\r\177\r\177\020-\001\234\000\000\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\020-\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\020-\003\138\000\000\000\000\t\190\r\178\020-\020-\000\242\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\020-\020-\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\002a\002a\000\000\018\"\014\030\017\226\n\134\n\138\002a\017\246\000\000\000\000\000\000\000\000\020-\000\000\000\000\r\226\000\000\r\230\002a\002a\002a\000\000\000\000\000\000\020-\000\000\000\n\r\177\000\n\000\000\000\000\000\000\000\000\n\142\r\238\r\177\000\000\000\000\015\250\007\166\002a\002a\017\250\002a\002a\002a\002a\000\n\002a\002a\000\000\002a\002a\002a\002a\002a\002a\000\000\000\000\002a\002a\002a\002a\000\000\000\000\002a\000\000\002a\000\n\002a\002a\002a\002a\000\n\002a\000\000\000\000\r\150\002a\000\000\002a\000\000\002a\002a\029\214\000\000\002a\002a\002a\000\000\002a\002a\002a\002a\002a\002a\000\000\002a\002a\002a\000\000\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\000\000\000\000\002a\000\000\002a\000\000\000\000\000\000\002a\002a\002a\000\000\002a\002a\002a\002a R\002a\002a\002a\000\000\000\000\000\000\000\000\002a\002a\002a\002a\002a\002a\002a\000\000\002a\030>\000\000\000\000\000\000\002a\000\000\000\000\002a\000\006\002a\000\000\0071\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\002a\000\000\bf\000\000\bj\002a\002a\000\000\000\000\000\000\002a\002a\0071\001\234\002a\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\0071\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\0071\003\138\000\000\000\000\t\190\r\178\0071\tN\000\242\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\0071\0071\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\031\182\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\0071\000\000\000\000\r\226\000\000\r\230\000\000\000\000\000\000\000\000\000\000\000\000\0071\000\000\000\000\031\206\000\000\000\000\000\000\000\000\000\000\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\006\000\000\017\250\004\129\003\146\003\150\003\154\004\129\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\000\000\004\129\000\000\000\000\000\000\004\129\000\000\004\129\001\234\000\000\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\004\129\tr\030b\br\000\000\tv\000\000\004\129\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\004\129\003\138\000\000\000\000\t\190\r\178\004\129\004\129\004\129\r\182\r\186\r\198\r\210\r\234\000\000\004\129\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\129\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\029\"\014\030\017\226\n\134\n\138\004\129\017\246\004\129\000\000\000\000\004\129\004\129\000\000\006\161\r\226\000\000\r\230\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\030\234\004\129\n\142\r\238\029:\000\000\000\000\015\250\007\166\000\006\000\000\017\250\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\000\000\000\000\000\000\000\242\000\000\n\022\000\000\000\000\001\234\000\000\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\006\161\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\011\158\000\000\000\000\000\000\011j\014v\000\000\r\250\000\000\nb\nf\011\218\r\206\r\222\000\000\004F\000\000\011\226\000\000\000\000\000\000\028\246\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000A\r\230\000\000\000\000\000A\000A\000A\000\000\000A\000A\000\000\000A\000\000\000\000\000A\000\000\000A\n\142\r\238\000\000\n\021\000\000\015\250\007\166\000\000\000A\017\250\000\000\000\000\000A\000\000\000A\000A\000\000\000A\000\000\000\000\000\000\000A\000\000\000A\000\000\000A\000\000\000\000\000\000\000\000\000A\000A\000\000\000A\000A\000A\000A\000A\000A\000\000\000\000\000\000\000A\000\000\000\000\000A\000A\000\000\000\000\000\000\000A\000A\000A\000A\000A\000\000\000\000\000A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000A\000\000\000A\000A\000\000\000A\000A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000A\000A\000A\000A\000A\000\000\000A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000A\000=\000A\000\000\000\000\000=\000=\000=\000\000\000=\000=\000\000\000=\000\000\000\000\000=\000\000\000=\000A\000A\000\000\n\017\000\000\000A\000A\000\000\000=\000A\000\000\000\000\000=\000\000\000=\000=\000\000\000=\000\000\000\000\000\000\000=\000\000\000=\000\000\000=\000\000\000\000\000\000\000\000\000=\000=\000\000\000=\000=\000=\000=\000=\000=\000\000\000\000\000\000\000=\000\000\000\000\000=\000=\000\000\000\000\000\000\000=\000=\000=\000=\000=\000\000\000\000\000=\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000=\000\000\000=\000=\000\000\000=\000=\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000=\000=\000=\000=\000=\000\000\000=\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000=\019Q\000=\000\000\000\000\019Q\019Q\019Q\000\000\019Q\019Q\000\000\019Q\000\000\000\000\019Q\000\000\019Q\000=\000=\000\000\n!\000\000\000=\000=\000\000\019Q\000=\000\000\000\000\019Q\000\000\019Q\019Q\000\000\019Q\000\000\000\000\000\000\019Q\000\000\019Q\000\000\019Q\000\000\000\000\000\000\000\000\019Q\019Q\000\000\019Q\019Q\019Q\019Q\019Q\019Q\000\000\000\000\000\000\019Q\000\000\000\000\019Q\019Q\000\000\000\000\000\000\019Q\019Q\019Q\019Q\019Q\000\000\000\000\019Q\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019Q\000\000\019Q\019Q\000\000\019Q\019Q\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019Q\019Q\019Q\019Q\019Q\000\000\019Q\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019Q\019M\019Q\000\000\000\000\019M\019M\019M\000\000\019M\019M\000\000\019M\000\000\000\000\019M\000\000\019M\019Q\019Q\000\000\n\029\000\000\019Q\019Q\000\000\019M\019Q\000\000\000\000\019M\000\000\019M\019M\000\000\019M\000\000\000\000\000\000\019M\000\000\019M\000\000\019M\000\000\000\000\000\000\000\000\019M\019M\000\000\019M\019M\019M\019M\019M\019M\000\000\000\000\000\000\019M\000\000\000\000\019M\019M\000\000\000\000\000\000\019M\019M\019M\019M\019M\000\000\000\000\019M\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019M\000\000\019M\019M\000\000\019M\019M\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019M\019M\019M\019M\019M\000\000\019M\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019M\000\006\019M\000\000\011\154\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\019M\019M\000\000\000\000\000\000\019M\019M\000\000\001\234\019M\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\242\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\025\190\014\030\017\226\n\134\n\138\000\000\017\246\000\000\011\158\000\000\000\000\000\000\011j\015\002\r\226\000\000\r\230\000\000\000\000\011\218\000\000\000\000\000\000\004F\000\000\011\226\026\214\000\000\000\000\000\000\000\000\000\000\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\006\000\000\017\250\n\153\003\146\003\150\003\154\n\153\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\000\000\n\153\000\000\006\189\000\000\n\153\000\000\n\153\001\234\000\000\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\n\153\tr\000\000\br\000\000\tv\000\000\n\153\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\n\153\003\138\000\000\000\000\t\190\r\178\n\153\n\153\000\242\r\182\r\186\r\198\r\210\r\234\000\000\n\153\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\153\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\026\242\014\030\017\226\n\134\n\138\n\153\017\246\n\153 \138\000\000\n\153\n\153\000\000\011\154\r\226\000\000\r\230\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\011\158\000\000\000\000*F\011j\015\030\n\153\n\142\r\238\027\n\000\000\011\218\015\250\007\166\000\006\004F\017\250\011\226\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\000\000\000\000\000\000\000\242\000\000\027&\000\000\000\000\001\234\000\000\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\011\158\000\000\000\000\000\000\011j\015V\000\000\r\250\000\000\nb\nf\011\218\r\206\r\222\000\000\004F\000\000\011\226\000\000\000\000\000\000\027*\014\030\017\226\n\134\n\138\000\000\017\246\000\000\001\025\000\000\000\000\000\000\000\000\000\000\r\226\000\000\r\230\000\014\000\018\000\022\000\026\000\030\000\000\000\000\000\"\000&\000*\000.\0002\001\025\0006\000:\n\142\r\238\000\000\000>\000\000\015\250\007\166\000B\000\000\017\250\000\000\000\000\000\000\000\000\000F\000\000\000\000\000\000\000\000\000\000\000\000\000J\001\025\000N\b~\000R\000V\000Z\000^\000b\000f\001\025\000\000\000\000\000\000\000j\000n\001\025\000r\000v\000\000\000z\000\000\000\000\000\000\000\000\000\000\000\000\001\025\001\025\000\000\000\000\000\000\000\000\000\000\001\169\000~\000\000\000\000\000\000\000\000\000\130\000\134\000\000\000\000\000\000\000\000\000\000\000\138\000\142\000\146\000\000\000\000\000\000\000\000\000\000\001\169\000\000\000\000\000\000\000\000\000\000\001\025\000\150\000\154\000\158\000\162\000\000\000\166\000\170\000\000\000\174\000\000\000\000\001\025\000\178\000\182\000\186\000\000\000\000\000\000\000\000\000\000\000\000\000\190\000\006\000\194\000\198\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\202\bN\000\206\000\000\bf\000\000\bj\000\000\000\000\000\000\000\210\000\214\000\000\000\218\000\000\001\234\000\000\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\001\169\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210'\250\015\218\001\169\nJ\000\000\000\000\000\000\000\000\000\000\000\000\001\169\000\000\018\226\r\250\000\000\nb\nf\000\000\r\206\r\222\001\169\000\000\000\000\000\000\000\000\000\000\000\000(\002\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\031\158\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\029R\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\028\202\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\028\166\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\028z\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015\202\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\015\222\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\015\246\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\027\170\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018:\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\018\162\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\018\186\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\210\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\n\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\"\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019J\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019v\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\142\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\166\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\190\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\214\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\238\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\006\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\030\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0206\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020N\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020f\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020~\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\150\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\174\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\198\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\222\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\246\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\021\014\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\021&\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\021>\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\021V\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\021n\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\021\134\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\021\142\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\021\166\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\023\206\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\023\242\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\024\022\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\024>\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\024b\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\024\134\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\024\178\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\024\214\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\024\250\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\025\022\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\025\210\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\026\002\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\026\"\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\026B\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\026^\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\026v\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\026\138\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\026\166\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\027\238\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\028\002\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\028\030\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\028F\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\028^\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\028f\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210\r\234\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000 :\014\030\017\226\n\134\n\138\000\000\017\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\226\000\006\r\230\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000(\030\000\000\000\000\bf\000\000\bj\n\142\r\238\000\000\000\000\000\000\015\250\007\166\000\000\001\234\017\250\000\000\000\000\bn\000\000\t^\tb\000\000\tf\000\000\000\000\000\000\tr\000\000\br\000\000\tv\000\000\000\000\000\000\000\000\t\162\t\166\000\000\t\170\t\182\t\194\t\198\t\206\r\146\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\r\210(6\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\250\000\000\nb\nf\000\000\r\206\r\222\015r\000\000\000\000\000\000\000\000\000\000\000\000(>\014\030\017\226\n\134\n\138\014I\017\246\000\000\000\000\014I\014I\002v\000\000\014I\r\226\014I\r\230\000\000\014I\000\000\000\000\000\000\002z\014I\014I\016V\014I\014I\000\000\014I\001\234\014I\n\142\r\238\000\000\000\000\014I\015\250\007\166\000\242\014I\017\250\000\000\000\000\000\000\000\000\000\000\000\000\001\153\t\014\014I\000\000\014I\000\000\000\000\014I\016R\014I\001\246\000\000\000\000\000\000\000\000\014I\003\138\000\000\014I\014I\000\000\001\153\014I\014I\000\000\014I\000\000\014I\000\000\000\000\014I\000\000\000\000\000\000\n\193\000\000\000\000\000\000\n\193\014I\000\000\014I\014I\014I\000\000\014I\014I\014I\011\158\n\193\000\000\000\000\011j\015v\016^\n\193\000\000\014I\014I\011\218\000\000\000\000\014I\004F\014I\011\226\000\000\000\000\n\193\000\000\000\000\000\000\n\218\000\000\000\000\n\193\000\000\000\000\000\000\014I\014I\014I\000\000\014I\014I\000\000\014I\000\000\014I\n\193\014I\000\000\014I\015\197\014I\n\193\014I\b\130\003\154\001\153\000\000\003j\000\000\b\134\n\193\000\000\bf\000\000\000\000\000\000\000\000\015\197\015\197\n\193\015\197\015\197\000\000\001\234\000\000\000\000\000\000\000\000\015\218\001\153\b\190\000\000\000\000\000\000\000\000\000\000\000\000\001\153\000\000\018\226\n\193\000\000\n\193\000\000\015\197\n\193\b\210\001\153\000\000\b\230\000\000\001\190\000\000\000\000\000\000\000\000\000\000\003\138\000\000\000\000\n\n\n\014\000\000\000\000\015\197\n\018\n\193\n\026\n>\nn\004\189\004\189\nJ\000\000\002\130\000\000\000\000\000\000\004\189\000\000\000\000\015\197\004\189\nN\nb\nf\000\000\nj\nr\n~\004\189\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\189\n\134\n\138\000\000\000\000\011\002\015\197\000\000\015\197\000\000\000\000\004\189\000\000\000\000\000\000\000\000\000\000\000\000\004\189\000\000\004\189\000\000\000\000\015\197\015\197\015\161\004\189\015\197\015\197\000\000\n\142\000\000\015\197\004\189\015\197\000\000\007\166\015\193\015\197\000\000\015\197\b\130\003\154\000\000\000\000\003j\000\000\b\134\000\000\000\000\bf\000\000\000\000\000\000\000\000\015\193\015\193\000\000\015\193\015\193\000\000\001\234\000\000\000\000!\014\000\000\000\000\000\000\b\190\000\000\000\000\015\161\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015\193\000\000\b\210\000\000\000\000\011v\000\000\001\190\000\000\000\000\000\000\000\000\000\000\003\138\000\000\000\000\n\n\n\014\000\000\000\000\015\193\n\018\000\000\n\026\n>\nn\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015\193\000\000\nN\nb\nf\000\000\nj\nr\n~\015\161\000\000\000\000\000\000\015\161\015\161\000\000\000\000\000\000\n\134\n\138\015\161\000\000\011\002\015\193\004F\015\193\015\161\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015\193\015\193\000\000\000\000\015\193\015\193\000\000\n\142\000\000\015\193\000\000\015\193\019\221\007\166\000\000\015\193\019\221\015\193\000\000\019\221\019\221\000\000\000\000\019\221\019\221\000\000\000\000\019\221\019\221\000\000\000\000\019\221\019\221\019\221\000\000\019\221\019\221\019\221\000\000\019\221\019\221\019\221\000\000\019\221\019\221\019\221\000\000\000\000\000\000\000\000\019\221\000\000\000\000\000\000\019\221\000\000\000\000\019\221\019\221\019\221\000\000\019\221\019\221\019\221\000\000\019\221\019\221\019\221\019\221\000\000\019\221\019\221\019\221\000\000\019\221\019\221\019\221\019\221\019\221\019\221\000\000\019\221\019\221\019\221\000\000\019\221\019\221\019\221\019\221\019\221\019\221\000\000\019\221\019\221\019\221\019\221\019\221\019\221\002^\019\221\000\000\000\000\002^\019\221\019\221\000\000\002^\000\000\019\221\000\000\000\000\000\000\019\221\000\000\000\000\000\000\019\221\000\000\019\221\019\221\019\221\019\221\019\221\019\221\019\221\019\221\019\221\019\221\000\000\019\221\019\221\000\000\000\000\000\000\019\221\000\000\019\221\000\000\019\221\019\221\019\221\002b\019\221\019\221\019\221\005n\019\221\019\221\000\000\005\146\019\221\019\221\001\193\019\221\019\221\019\221\019\221\019\221\019\221\019\221\019\221\019\221\019\165\019\221\019\221\000\000\019\165\000\000\000\000\001\230\019\165\000\000\000\000\001\193\000\000\000\000\000\250\000\000\005f\000\000\002\158\019\165\019\165\019\165\000\000\019\165\019\165\019\165\000\000\000\000\000\000*\006\000\000\000\000\000\000\0079\000\000\tZ\000\000\000\000\019\165\000\000\000\000\000\000\000\000\000\000\000\000\019\165\019\165\019\165*\n\000\000\019\165\000\000\000\000\000\000\003\226*2\019\165\000\000\001\185\019\165\000\000\000\000\000\000\000\000\000\000\019\165\019\165\019\165\000\000 \218\000\000\000\000\000\000\000\000\019\165 \242\019\165\019\165\001\177\001\185\000\000\000\000\000\000\019\165 \250\000\000\019\165\000\000\000\000\001\193\000\000\000\000\005v!\n\000\000\000\000\019\165\000\000\000\000\001\177\000\000\000\000\000\000\000\000\019\165\000\000\019\165\019\165\000\000\019\165\019\165\000\000\015\218\001\193!\018\000\000+\014\000\000\000\000\0079\0079\001\193\019\165\018\226\019\165\000\000\019\165\019\165\000\000\ri\019\165\001\193\000\000\ri\000\000\019\165\001\230\ri\019\165\019\165+\030\019\165\000\000\019\165\019\165\ri\000\000\000\000\ri\ri\ri\000\000\ri\ri\ri\000\000\000\000\001\185\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ri\000\000\000\000\000\000\000\000\000\000\000\000\ri\ri\ri\001\177\000\000\ri\015\218\001\185\000\000\003\226\000\153\ri\000\000\000\000\ri\001\185\000\000\018\226\000\000\000\153\ri\ri\ri\000\000\000\153\001\185\015\218\001\177\000\000\ri\r\001\ri\ri\000\000\000\000\001\177\000\000\018\226\ri\000\000\000\000\ri\000\000\000\000\000\000\001\177\000\000\005v\000\000\000\000\000\153\ri\000\000\000\000\000\000\r\001\000\000\000\153\000\000\ri\000\000\ri\ri\000\000\ri\ri\000\000\000\000\000\000\000\000\000\153\000\000\000\000\000\000\000\000\000\000\000\000\ri\000\000\ri\000\000\ri\ri\000\000\rq\ri\000\000\000\000\rq\000\000\ri\001\230\rq\ri\ri\000\153\ri\000\000\ri\ri\rq\000\000\000\000\rq\rq\rq\000\000\rq\rq\rq\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\001\rq\000\000\000\000\000\000\000\000\000\153\000\000\rq\rq\rq\002:\000\000\rq\000\000\000\000\000\000\003\226\000\153\rq\000\000\000\153\rq\000\153\000\000\000\000\000\000\000\153\rq\rq\rq\000\000\000\153\000\000\000\000\000\000\000\000\rq\r\001\rq\rq\000\000\000\000\000\000\000\000\000\000\rq\000\000\000\000\rq\000\000\000\000\000\000\000\000\000\000\005v\000\000\000\000\000\153\rq\000\000\000\000\000\000\r\001\000\000\000\153\000\000\rq\000\000\rq\rq\000\000\rq\rq\000\000\000\000\000\000\000\000\000\153\000\000\000\000\000\000\000\000\000\000\000\000\rq\000\000\rq\000\000\rq\rq\000\000\rm\rq\000\000\000\000\rm\000\000\rq\001\230\rm\rq\rq\000\153\rq\000\000\rq\rq\rm\000\000\000\000\rm\rm\rm\000\000\rm\rm\rm\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\001\rm\000\000\000\000\000\000\000\000\000\153\000\000\rm\rm\rm\030\250\000\000\rm\019\229\019\205\000\000\003\226\000\157\rm\000\000\000\153\rm\000\153\000\000\000\000\000\000\000\157\rm\rm\rm\000\000\000\157\000\000\000\000\019\229\000\000\rm\002\170\rm\rm\002\174\000\000\000\000\000\000\000\000\rm\000\000\000\000\rm\t6\000\000\000\000\000\000\000\000\005v\000\000\002\186\000\157\rm\002\194\000\000\019\205\000\000\000\000\000\157\000\000\rm\000\000\rm\rm\000\000\rm\rm\000\000\000\000\000\000\000\000\000\157\000\000\000\000\000\000\000\000\000\000\000\000\rm\000\000\rm\002\198\rm\rm\000\000\re\rm\000\000\000\000\re\000\000\rm\001\230\re\rm\rm\000\157\rm\000\000\rm\rm\re\000\000\000\000\re\re\re\000\000\re\re\re\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\re\000\000\000\000\000\000\000\000\000\157\000\000\re\re\re\002\022\000\000\re\000\000\002\202\000\000\003\226\000\000\re\000\000\000\157\re\000\157\000\000\000\000\000\000\000\000\re\re\re\000\000\000\000\000\000\000\000\000\000\000\000\re\000\000\re\re\000\000\000\000\000\000\000\000\000\000\re\000\000\000\000\re\000\000\000\000\000\000\000\000\000\000\005v\000\000\000\000\000\000\re\000\000\000\000\000\000\000\000\000\000\000\000\000\000\re\000\000\re\re\000\000\re\re\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\re\000\000\re\000\000\re\re\000\000\000\000\re\000\000\000\000\000\161\000\000\re\000\161\000\161\re\re\000\000\re\000\000\re\re\000\161\000\000\000\000\000\161\000\161\000\161\000\000\000\161\000\161\000\161\000\000\r\005\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\161\000\000\000\000\000\000\000\000\001\226\001\230\000\161\000\000\000\161\000\000\000\000\000\161\000\000\r\005\000\000\000\161\000\000\000\161\000\000\000\000\000\161\000\000\000\000\000\000\001\234\002&\000\161\000\161\000\161\000\000\000\000\000\000\000\000\000\000\000\000\000\161\000\000\000\161\000\161\000\000\000\000\000\000\000\000\000\000\000\161\000\161\000\000\000\161\000\000\000\000\003~\000\000\003\226\000\161\000\000\000\000\003z\000\161\003\138\003\186\003\198\000\000\000\000\000\153\000\000\000\161\003\210\000\161\000\161\000\000\000\161\000\161\000\153\000\000\000\000\000\000\000\000\000\153\000\000\r\005\000\000\000\000\000\000\000\161\000\000\000\161\000\000\000\161\003\214\000\000\003\230\000\161\000\000\000\000\000\153\030\202\000\161\000\153\000\153\000\161\000\161\000\000\000\161\000\153\000\161\000\000\000\153\000\000\000\000\000\153\000\153\000\153\000\000\000\153\000\153\000\153\000\000\r\001\000\000\000\000\000\000\000\000\000\000\000\153\000\153\000\000\000\000\000\000\000\153\000\000\000\000\000\000\000\000\000\153\000\000\000\153\000\000\000\153\000\153\000\000\000\153\000\000\r\001\000\000\000\153\000\000\000\153\000\000\000\153\000\153\000\000\000\000\000\000\000\000\000\000\000\153\000\153\000\153\000\000\000\000\000\000\000\000\000\000\000\000\000\153\000\153\000\153\000\153\000\000\000\000\000\000\000\153\000\000\000\153\000\153\000\000\000\153\000\000\000\000\000\153\000\153\000\000\000\153\000\000\000\153\004\190\000\153\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\153\000\153\000\153\000\153\t5\000\153\000\153\000\000\t5\000\000\000\000\000\153\t5\000\000\r\001\000\153\000\000\000\000\000\153\001\202\001\226\001\230\000\153\t5\t5\t5\000\153\t5\t5\t5\000\000\000\153\000\000\000\000\000\153\000\153\000\000\000\153\000\000\000\153\001\234\002&\t5\000\000\000\000\000\000\000\000\000\153\000\000\t5\t5\t5\006\"\001\206\t5\000\000\000\153\000\000\004J\000\000\t5\000\000\000\153\t5\000\153\000\000\002f\001\210\003\226\t5\t5\t5\003z\000\000\003\138\003\186\003\198\000\000\t5\000\000\t5\t5\003\210\000\000\000\000\000\000\000\000\t5\000\153\000\000\t5\000\000\000\000\031\030\000\000\000\000\t5\000\000\000\000\000\000\t5\000\000\000\000\000\153\003\214\000\153\003\230\000\000\t5\000\000\t5\t5\000\000\t5\t5\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t5\000\000\t5\000\000\t5\t5\000\000\019\169\t5\000\000\000\000\019\169\000\000\t5\000\000\019\169\t5\t5\000\000\t5\000\000\t5\t5\005\138\000\000\000\000\019\169\019\169\019\169\000\000\019\169\019\169\019\169\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\226\001\230\000\000\000\000\000\000\019\169\000\000\000\000\000\000\000\000\000\000\000\000\019\169\019\169\019\169\000\000\000\000\019\169\000\000\000\000\001\234\002&\000\000\019\169\000\000\000\000\019\169\000\000\000\000\000\000\000\000\000\000\019\169\019\169\019\169\000\000\000\000\000\000\000\000\000\000\000\000\019\169\000\000\019\169\019\169\000\000\003~\000\000\003\218\000\000\019\169\000\000\003z\019\169\003\138\003\186\003\198\000\000\000\000\019\169\000\000\000\000\003\210\019\169\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\169\000\000\019\169\019\169\000\000\019\169\019\169\000\000\000\000\000\000\000\000\000\000\000\000\003\214\000\000\003\230\000\000\000\000\019\169\000\000\019\169\000\000\019\169\019\169\000\000\018\253\019\169\000\000\000\000\018\253\000\000\019\169\000\000\018\253\019\169\019\169\000\000\019\169\000\000\019\169\019\169\005\138\000\000\000\000\018\253\018\253\018\253\000\000\018\253\018\253\018\253\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\226\001\230\000\000\000\000\000\000\018\253\000\000\000\000\000\000\000\000\000\000\000\000\018\253\018\253-v\000\000\000\000\018\253\000\000\000\000\001\234\002&\000\000\018\253\000\000\000\000\018\253\000\000\000\000\000\000\000\000\000\000\018\253\018\253\018\253\000\000\000\000\000\000\000\000\000\000\000\000\018\253\000\000\018\253\018\253\000\000\004\202\000\000\003\226\000\000\018\253\000\000\003z\018\253\003\138\003\186\003\198\000\000\000\000\018\253\000\000\000\000\003\210\018\253\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\253\000\000\018\253\018\253\000\000\018\253\018\253\000\000\000\000\000\000\000\000\000\000\000\000\003\214\000\000\003\230\000\000\000\000\018\253\000\000\018\253\000\000\018\253\018\253\004i\000\000\018\253\000\000\004i\000\000\000\000\018\253\004i\000\000\018\253\004F\000\000\018\253\000\000\018\253\018\253\000\000\000\000\004i\004i\004i\000\000\004i\004i\004i\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\226\001\230\000\000\000\000\000\000\004i\000\000\000\000\000\000\000\000\000\000\000\000\004i\004i\004>\000\000\000\000\004i\000\000\000\000\001\234\002&\000\000\004i\000\000\000\000\004i\000\000\000\000\000\000\000\000\000\000\004i\004i\004i\000\000\000\000\000\000\000\000\000\000\000\000\004i\000\000\004i\004i\000\000\003~\000\000\005j\000\000\004i\000\000\003z\004i\003\138\003\186\003\198\000\000\000\000\004i\000\000\000\000\003\210\004i\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004i\000\000\004i\004i\000\000\004i\004i\000\000\000\000\000\000\000\000\000\000\000\000\003\214\000\000\003\230\000\000\000\000\004i\000\000\004i\000\000\004i\004i\018M\000\000\004i\000\000\018M\000\000\000\000\004i\018M\000\000\004i\004F\000\000\004i\000\000\004i\004i\000\000\000\000\018M\018M\018M\000\000\018M\018M\018M\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\226\001\230\000\000\000\000\000\000\018M\000\000\000\000\000\000\000\000\000\000\000\000\018M\018M\004>\000\000\000\000\018M\000\000\000\000\001\234\002&\000\000\018M\000\000\000\000\018M\000\000\000\000\000\000\000\000\000\000\018M\018M\018M\000\000\000\000\000\000\000\000\000\000\000\000\018M\000\000\018M\018M\000\000\003~\000\000\005\142\000\000\018M\000\000\003z\018M\003\138\003\186\003\198\000\000\000\000\018M\000\000\000\000\003\210\018M\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018M\000\000\018M\018M\000\000\018M\018M\000\000\000\000\000\000\000\000\000\000\000\000\003\214\000\000\003\230\000\000\000\000\018M\000\000\018M\000\000\018M\018M\018Q\000\000\018M\000\000\018Q\000\000\000\000\018M\018Q\000\000\018M\004F\000\000\018M\000\000\018M\018M\000\000\000\000\018Q\018Q\018Q\000\000\018Q\018Q\018Q\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\226\001\230\000\000\000\000\000\000\018Q\000\000\000\000\000\000\000\000\000\000\000\000\018Q\018Q\004Z\000\000\000\000\018Q\000\000\000\000\001\234\002&\000\000\018Q\000\000\000\000\018Q\000\000\000\000\000\000\000\000\000\000\018Q\018Q\018Q\000\000\000\000\000\000\000\000\000\000\000\000\018Q\000\000\018Q\018Q\000\000\006\202\000\000\003\226\000\000\018Q\000\000\003z\018Q\003\138\003\186\003\198\000\000\000\000\018Q\000\000\000\000\003\210\018Q\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018Q\000\000\018Q\018Q\000\000\018Q\018Q\000\000\000\000\000\000\000\000\000\000\000\000\003\214\000\000\003\230\000\000\000\000\018Q\000\000\018Q\000\000\018Q\018Q\018]\000\000\018Q\000\000\018]\000\000\000\000\018Q\018]\000\000\018Q\018Q\000\000\018Q\000\000\018Q\018Q\000\000\000\000\018]\018]\018]\000\000\018]\018]\018]\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\226\001\230\000\000\000\000\000\000\018]\000\000\000\000\000\000\000\000\000\000\000\000\018]\018]\004>\000\000\000\000\018]\000\000\000\000\001\234\002&\000\000\018]\000\000\000\000\018]\000\000\000\000\000\000\000\000\000\000\018]\018]\018]\000\000\000\000\000\000\000\000\000\000\000\000\018]\000\000\018]\018]\000\000,\146\000\000\003\226\000\000\018]\000\000\003z\018]\003\138\003\186\003\198\000\000\000\000\018]\000\000\000\000\003\210\018]\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018]\000\000\018]\018]\000\000\018]\018]\000\000\000\000\000\000\000\000\000\000\000\000\003\214\000\000\003\230\000\000\000\000\018]\000\000\018]\000\000\018]\018]\018a\000\000\018]\000\000\018a\000\000\000\000\018]\018a\000\000\018]\004F\000\000\018]\000\000\018]\018]\000\000\000\000\018a\018a\018a\000\000\018a\018a\018a\000\000\000\000\000\157\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\157\018a\000\000\000\000\000\000\000\157\000\000\000\000\018a\018a\004Z\000\157\000\000\018a\000\000\000\000\000\000\000\000\000\000\018a\000\157\000\000\018a\000\000\000\000\000\157\000\000\000\000\018a\018a\018a\000\157\000\000\000\000\000\000\000\000\000\000\018a\000\157\018a\018a\000\000\000\000\000\000\000\000\000\000\018a\000\000\000\000\018a\000\000\000\157\000\000\000\000\000\000\018a\000\000\000\000\000\157\018a\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018a\000\000\018a\018a\000\157\018a\018a\000\000\000\000\000\157\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018a\000\000\018a\000\000\018a\018a\018m\000\000\018a\000\000\018m\000\157\000\000\018a\018m\000\000\018a\018a\000\000\018a\000\000\018a\018a\000\157\000\000\018m\018m\018m\004\174\018m\018m\018m\000\000\000\000\000\000\000\000\000\000\000\000\000\157\000\000\000\157\000\000\000\000\000\157\018m\000\000\000\000\000\000\006\018\000\000\000\000\018m\018m\004>\000\157\000\000\018m\000\000\000\157\000\000\000\157\000\000\018m\000\157\000\000\018m\000\000\000\000\000\157\000\000\000\000\018m\018m\018m\000\000\000\000\000\000\000\000\000\000\000\000\018m\000\000\018m\018m\000\000\000\000\000\000\000\000\000\000\018m\000\000\000\000\018m\000\000\000\157\000\000\000\000\000\000\018m\000\000\000\000\000\157\018m\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018m\000\000\018m\018m\000\157\018m\018m\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018m\000\000\018m\000\000\018m\018m\018q\000\000\018m\000\000\018q\000\157\000\000\018m\018q\000\000\018m\004F\000\000\018m\000\000\018m\018m\000\000\000\000\018q\018q\018q\000\000\018q\018q\018q\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\157\018q\000\000\000\000\000\000\031\014\000\000\000\000\018q\018q\004Z\000\157\000\000\018q\000\000\000\157\000\000\000\157\000\000\018q\000\157\000\000\018q\000\000\000\000\000\157\000\000\000\000\018q\018q\018q\000\000\000\000\000\000\000\000\000\000\000\000\018q\000\000\018q\018q\000\000\000\000\000\000\000\000\000\000\018q\000\000\000\000\018q\000\000\000\157\000\000\000\000\000\000\018q\000\000\000\000\000\157\018q\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018q\000\000\018q\018q\000\157\018q\018q\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018q\000\000\018q\000\000\018q\018q\018u\000\000\018q\000\000\018u\000\157\000\000\018q\018u\000\000\018q\018q\000\000\018q\000\000\018q\018q\000\000\000\000\018u\018u\018u\000\000\018u\018u\018u\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\157\018u\000\000\000\000\000\000-\218\000\000\000\000\018u\018u\005*\000\153\000\000\018u\000\000\000\157\000\000\000\157\000\000\018u\000\153\000\000\018u\000\000\000\000\000\153\000\000\000\000\018u\018u\018u\000\000\000\000\000\000\000\000\000\000\000\000\018u\000\000\018u\018u\000\000\000\000\000\000\000\000\000\000\018u\000\000\000\000\018u\000\000\000\153\000\000\000\000\000\000\018u\000\000\000\000\000\153\018u\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018u\000\000\018u\018u\000\153\018u\018u\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018u\000\000\018u\000\000\018u\018u\018\141\000\000\018u\000\000\018\141\000\153\000\000\018u\018\141\000\000\018u\004F\000\000\018u\000\000\018u\018u\000\000\000\000\018\141\018\141\018\141\000\000\018\141\018\141\018\141\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\153\018\141\000\000\000\000\000\000-\234\000\000\000\000\018\141\018\141\004>\000\000\000\000\018\141\000\000\000\153\000\000\000\153\000\000\018\141\000\000\000\000\018\141\000\000\000\000\000\000\000\000\000\000\018\141\018\141\018\141\000\000\000\000\000\000\000\000\000\000\000\000\018\141\000\000\018\141\018\141\000\000\000\000\000\000\000\000\000\000\018\141\000\000\000\000\018\141\000\000\000\000\000\000\000\000\000\000\018\141\000\000\000\000\000\000\018\141\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\141\000\000\018\141\018\141\000\000\018\141\018\141\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\141\000\000\018\141\000\000\018\141\018\141\018\145\000\000\018\141\000\000\018\145\000\000\000\000\018\141\018\145\000\000\018\141\004F\000\000\018\141\000\000\018\141\018\141\000\000\000\000\018\145\018\145\018\145\000\000\018\145\018\145\018\145\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\145\000\000\000\000\000\000\000\000\000\000\000\000\018\145\018\145\004Z\000\000\000\000\018\145\000\000\000\000\000\000\000\000\000\000\018\145\000\000\000\000\018\145\000\000\000\000\000\000\000\000\000\000\018\145\018\145\018\145\000\000\000\000\000\000\000\000\000\000\000\000\018\145\000\000\018\145\018\145\000\000\000\000\000\000\000\000\000\000\018\145\000\000\000\000\018\145\000\000\000\000\000\000\000\000\000\000\018\145\000\000\000\000\000\000\018\145\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\145\000\000\018\145\018\145\000\000\018\145\018\145\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\145\000\000\018\145\000\000\018\145\018\145\018\149\000\000\018\145\000\000\018\149\000\000\000\000\018\145\018\149\000\000\018\145\018\145\000\000\018\145\000\000\018\145\018\145\000\000\000\000\018\149\018\149\018\149\000\000\018\149\018\149\018\149\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\149\000\000\000\000\000\000\000\000\000\000\000\000\018\149\018\149\005*\000\000\000\000\018\149\000\000\000\000\000\000\000\000\000\000\018\149\000\000\000\000\018\149\000\000\000\000\000\000\000\000\000\000\018\149\018\149\018\149\000\000\000\000\000\000\000\000\000\000\000\000\018\149\000\000\018\149\018\149\000\000\000\000\000\000\000\000\000\000\018\149\000\000\000\000\018\149\000\000\000\000\000\000\000\000\000\000\018\149\000\000\000\000\000\000\018\149\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\149\000\000\018\149\018\149\000\000\018\149\018\149\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\149\000\000\018\149\000\000\018\149\018\149\018\153\000\000\018\149\000\000\018\153\000\000\000\000\018\149\018\153\000\000\018\149\004F\000\000\018\149\000\000\018\149\018\149\000\000\000\000\018\153\018\153\018\153\000\000\018\153\018\153\018\153\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\153\000\000\000\000\000\000\000\000\000\000\000\000\018\153\018\153\005F\000\000\000\000\018\153\000\000\000\000\000\000\000\000\000\000\018\153\000\000\000\000\018\153\000\000\000\000\000\000\000\000\000\000\018\153\018\153\018\153\000\000\000\000\000\000\000\000\000\000\000\000\018\153\000\000\018\153\018\153\000\000\000\000\000\000\000\000\000\000\018\153\000\000\000\000\018\153\000\000\000\000\000\000\000\000\000\000\018\153\000\000\000\000\000\000\018\153\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\153\000\000\018\153\018\153\000\000\018\153\018\153\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\153\000\000\018\153\000\000\018\153\018\153\018\157\000\000\018\153\000\000\018\157\000\000\000\000\018\153\018\157\000\000\018\153\018\153\000\000\018\153\000\000\018\153\018\153\000\000\000\000\018\157\018\157\018\157\000\000\018\157\018\157\018\157\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\157\000\000\000\000\000\000\000\000\000\000\000\000\018\157\018\157\004>\000\000\000\000\018\157\000\000\000\000\000\000\000\000\000\000\018\157\000\000\000\000\018\157\000\000\000\000\000\000\000\000\000\000\018\157\018\157\018\157\000\000\000\000\000\000\000\000\000\000\000\000\018\157\000\000\018\157\018\157\000\000\000\000\000\000\000\000\000\000\018\157\000\000\000\000\018\157\000\000\000\000\000\000\000\000\000\000\018\157\000\000\000\000\000\000\018\157\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\157\000\000\018\157\018\157\000\000\018\157\018\157\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\157\000\000\018\157\000\000\018\157\018\157\018\161\000\000\018\157\000\000\018\161\000\000\000\000\018\157\018\161\000\000\018\157\004F\000\000\018\157\000\000\018\157\018\157\000\000\000\000\018\161\018\161\018\161\000\000\018\161\018\161\018\161\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\161\000\000\000\000\000\000\000\000\000\000\000\000\018\161\018\161\004Z\000\000\000\000\018\161\000\000\000\000\000\000\000\000\000\000\018\161\000\000\000\000\018\161\000\000\000\000\000\000\000\000\000\000\018\161\018\161\018\161\000\000\000\000\000\000\000\000\000\000\000\000\018\161\000\000\018\161\018\161\000\000\000\000\000\000\000\000\000\000\018\161\000\000\000\000\018\161\000\000\000\000\000\000\000\000\000\000\018\161\000\000\000\000\000\000\018\161\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\161\000\000\018\161\018\161\000\000\018\161\018\161\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\161\000\000\018\161\000\000\018\161\018\161\018\165\000\000\018\161\000\000\018\165\000\000\000\000\018\161\018\165\000\000\018\161\018\161\000\000\018\161\000\000\018\161\018\161\000\000\000\000\018\165\018\165\018\165\000\000\018\165\018\165\018\165\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\165\000\000\000\000\000\000\000\000\000\000\000\000\018\165\018\165\005*\000\000\000\000\018\165\000\000\000\000\000\000\000\000\000\000\018\165\000\000\000\000\018\165\000\000\000\000\000\000\000\000\000\000\018\165\018\165\018\165\000\000\000\000\000\000\000\000\000\000\000\000\018\165\000\000\018\165\018\165\000\000\000\000\000\000\000\000\000\000\018\165\000\000\000\000\018\165\000\000\000\000\000\000\000\000\000\000\018\165\000\000\000\000\000\000\018\165\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\165\000\000\018\165\018\165\000\000\018\165\018\165\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\165\000\000\018\165\000\000\018\165\018\165\018\169\000\000\018\165\000\000\018\169\000\000\000\000\018\165\018\169\000\000\018\165\004F\000\000\018\165\000\000\018\165\018\165\000\000\000\000\018\169\018\169\018\169\000\000\018\169\018\169\018\169\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\169\000\000\000\000\000\000\000\000\000\000\000\000\018\169\018\169\005F\000\000\000\000\018\169\000\000\000\000\000\000\000\000\000\000\018\169\000\000\000\000\018\169\000\000\000\000\000\000\000\000\000\000\018\169\018\169\018\169\000\000\000\000\000\000\000\000\000\000\000\000\018\169\000\000\018\169\018\169\000\000\000\000\000\000\000\000\000\000\018\169\000\000\000\000\018\169\000\000\000\000\000\000\000\000\000\000\018\169\000\000\000\000\000\000\018\169\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\169\000\000\018\169\018\169\000\000\018\169\018\169\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\169\000\000\018\169\000\000\018\169\018\169\018y\000\000\018\169\000\000\018y\000\000\000\000\018\169\018y\000\000\018\169\018\169\000\000\018\169\000\000\018\169\018\169\000\000\000\000\018y\018y\018y\000\000\018y\018y\018y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018y\000\000\000\000\000\000\000\000\000\000\000\000\018y\018y\005F\000\000\000\000\018y\000\000\000\000\000\000\000\000\000\000\018y\000\000\000\000\018y\000\000\000\000\000\000\000\000\000\000\018y\018y\018y\000\000\000\000\000\000\000\000\000\000\000\000\018y\000\000\018y\018y\000\000\000\000\000\000\000\000\000\000\018y\000\000\000\000\018y\000\000\000\000\000\000\000\000\000\000\018y\000\000\000\000\000\000\018y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018y\000\000\018y\018y\000\000\018y\018y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018y\000\000\018y\000\000\018y\018y\018}\000\000\018y\000\000\018}\000\000\000\000\018y\018}\000\000\018y\018y\000\000\018y\000\000\018y\018y\000\000\000\000\018}\018}\018}\000\000\018}\018}\018}\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018}\000\000\000\000\000\000\000\000\000\000\000\000\018}\018}\004>\000\000\000\000\018}\000\000\000\000\000\000\000\000\000\000\018}\000\000\000\000\018}\000\000\000\000\000\000\000\000\000\000\018}\018}\018}\000\000\000\000\000\000\000\000\000\000\000\000\018}\000\000\018}\018}\000\000\000\000\000\000\000\000\000\000\018}\000\000\000\000\018}\000\000\000\000\000\000\000\000\000\000\018}\000\000\000\000\000\000\018}\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018}\000\000\018}\018}\000\000\018}\018}\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018}\000\000\018}\000\000\018}\018}\018\129\000\000\018}\000\000\018\129\000\000\000\000\018}\018\129\000\000\018}\004F\000\000\018}\000\000\018}\018}\000\000\000\000\018\129\018\129\018\129\000\000\018\129\018\129\018\129\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\129\000\000\000\000\000\000\000\000\000\000\000\000\018\129\018\129\004Z\000\000\000\000\018\129\000\000\000\000\000\000\000\000\000\000\018\129\000\000\000\000\018\129\000\000\000\000\000\000\000\000\000\000\018\129\018\129\018\129\000\000\000\000\000\000\000\000\000\000\000\000\018\129\000\000\018\129\018\129\000\000\000\000\000\000\000\000\000\000\018\129\000\000\000\000\018\129\000\000\000\000\000\000\000\000\000\000\018\129\000\000\000\000\000\000\018\129\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\129\000\000\018\129\018\129\000\000\018\129\018\129\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\129\000\000\018\129\000\000\018\129\018\129\018\133\000\000\018\129\000\000\018\133\000\000\000\000\018\129\018\133\000\000\018\129\018\129\000\000\018\129\000\000\018\129\018\129\000\000\000\000\018\133\018\133\018\133\000\000\018\133\018\133\018\133\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\133\000\000\000\000\000\000\000\000\000\000\000\000\018\133\018\133\005*\000\000\000\000\018\133\000\000\000\000\000\000\000\000\000\000\018\133\000\000\000\000\018\133\000\000\000\000\000\000\000\000\000\000\018\133\018\133\018\133\000\000\000\000\000\000\000\000\000\000\000\000\018\133\000\000\018\133\018\133\000\000\000\000\000\000\000\000\000\000\018\133\000\000\000\000\018\133\000\000\000\000\000\000\000\000\000\000\018\133\000\000\000\000\000\000\018\133\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\133\000\000\018\133\018\133\000\000\018\133\018\133\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\133\000\000\018\133\000\000\018\133\018\133\018\137\000\000\018\133\000\000\018\137\000\000\000\000\018\133\018\137\000\000\018\133\004F\000\000\018\133\000\000\018\133\018\133\000\000\000\000\018\137\018\137\018\137\000\000\018\137\018\137\018\137\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\137\000\000\000\000\000\000\000\000\000\000\000\000\018\137\018\137\005F\000\000\000\000\018\137\000\000\000\000\000\000\000\000\000\000\018\137\000\000\000\000\018\137\000\000\000\000\000\000\000\000\000\000\018\137\018\137\018\137\000\000\000\000\000\000\000\000\000\000\000\000\018\137\000\000\018\137\018\137\000\000\000\000\000\000\000\000\000\000\018\137\000\000\000\000\018\137\000\000\000\000\000\000\000\000\000\000\018\137\000\000\000\000\000\000\018\137\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\137\000\000\018\137\018\137\000\000\018\137\018\137\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\137\000\000\018\137\000\000\018\137\018\137\002\025\000\000\018\137\000\000\002\025\000\000\000\000\018\137\002\025\000\000\018\137\018\137\000\000\018\137\000\000\018\137\018\137\000\000\000\000\002\025\002\025\002\025\000\000\002\025\002\025\002\025\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\025\000\000\000\000\000\000\000\000\000\000\000\000\002\025\002\025\002\025\000\000\000\000\002\025\000\000\000\000\000\000\000\000\000\000\002\025\000\000\000\000\002\025\000\000\000\000\000\000\000\000\000\000\002\025\002\025\002\025\000\000\000\000\000\000\000\000\000\000\000\000\002\025\000\000\002\025\002\025\000\000\000\000\000\000\000\000\000\000\002\025\000\000\000\000\002\025\000\000\000\000\000\000\000\000\000\000\002\025\000\000\000\000\000\000\002\025\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\025\000\000\002\025\002\025\000\000\002\025\002\025\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\025\000\000\002\025\000\000\002\025\002\025\017-\000\000\002\025\000\000\017-\000\000\000\000\002\025\017-\000\000\002\025\002\025\000\000\005\206\000\000\002\025\002\025\000\000\000\000\017-\017-\017-\000\000\017-\017-\017-\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017-\000\000\000\000\000\000\000\000\000\000\000\000\017-\017-\004>\000\000\000\000\017-\000\000\000\000\000\000\000\000\000\000\017-\000\000\000\000\017-\000\000\000\000\000\000\000\000\000\000\017-\017-\017-\000\000\000\000\000\000\000\000\000\000\000\000\017-\000\000\017-\017-\000\000\000\000\000\000\000\000\000\000\017-\000\000\000\000\017-\000\000\000\000\000\000\000\000\000\000\017-\000\000\000\000\000\000\017-\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017-\000\000\017-\017-\000\000\017-\017-\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017-\000\000\017-\000\000\017-\017-\0171\000\000\017-\000\000\0171\000\000\000\000\017-\0171\000\000\017-\004F\000\000\017-\000\000\017-\017-\000\000\000\000\0171\0171\0171\000\000\0171\0171\0171\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0171\000\000\000\000\000\000\000\000\000\000\000\000\0171\0171\004Z\000\000\000\000\0171\000\000\000\000\000\000\000\000\000\000\0171\000\000\000\000\0171\000\000\000\000\000\000\000\000\000\000\0171\0171\0171\000\000\000\000\000\000\000\000\000\000\000\000\0171\000\000\0171\0171\000\000\000\000\000\000\000\000\000\000\0171\000\000\000\000\0171\000\000\000\000\000\000\000\000\000\000\0171\000\000\000\000\000\000\0171\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0171\000\000\0171\0171\000\000\0171\0171\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0171\000\000\0171\000\000\0171\0171\0175\000\000\0171\000\000\0175\000\000\000\000\0171\0175\000\000\0171\0171\000\000\0171\000\000\0171\0171\000\000\000\000\0175\0175\0175\000\000\0175\0175\0175\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0175\000\000\000\000\000\000\000\000\000\000\000\000\0175\0175\005*\000\000\000\000\0175\000\000\000\000\000\000\000\000\000\000\0175\000\000\000\000\0175\000\000\000\000\000\000\000\000\000\000\0175\0175\0175\000\000\000\000\000\000\000\000\000\000\000\000\0175\000\000\0175\0175\000\000\000\000\000\000\000\000\000\000\0175\000\000\000\000\0175\000\000\000\000\000\000\000\000\000\000\0175\000\000\000\000\000\000\0175\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0175\000\000\0175\0175\000\000\0175\0175\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0175\000\000\0175\000\000\0175\0175\0179\000\000\0175\000\000\0179\000\000\000\000\0175\0179\000\000\0175\004F\000\000\0175\000\000\0175\0175\000\000\000\000\0179\0179\0179\000\000\0179\0179\0179\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0179\000\000\000\000\000\000\000\000\000\000\000\000\0179\0179\005F\000\000\000\000\0179\000\000\000\000\000\000\000\000\000\000\0179\000\000\000\000\0179\000\000\000\000\000\000\000\000\000\000\0179\0179\0179\000\000\000\000\000\000\000\000\000\000\000\000\0179\000\000\0179\0179\000\000\000\000\000\000\000\000\000\000\0179\000\000\000\000\0179\000\000\000\000\000\000\000\000\000\000\0179\000\000\000\000\000\000\0179\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0179\000\000\0179\0179\000\000\0179\0179\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0179\000\000\0179\000\000\0179\0179\017=\000\000\0179\000\000\017=\000\000\000\000\0179\017=\000\000\0179\0179\000\000\0179\000\000\0179\0179\000\000\000\000\017=\017=\017=\000\000\017=\017=\017=\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017=\000\000\000\000\000\000\000\000\000\000\000\000\017=\017=\004>\000\000\000\000\017=\000\000\000\000\000\000\000\000\000\000\017=\000\000\000\000\017=\000\000\000\000\000\000\000\000\000\000\017=\017=\017=\000\000\000\000\000\000\000\000\000\000\000\000\017=\000\000\017=\017=\000\000\000\000\000\000\000\000\000\000\017=\000\000\000\000\017=\000\000\000\000\000\000\000\000\000\000\017=\000\000\000\000\000\000\017=\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017=\000\000\017=\017=\000\000\017=\017=\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017=\000\000\017=\000\000\017=\017=\017A\000\000\017=\000\000\017A\000\000\000\000\017=\017A\000\000\017=\004F\000\000\017=\000\000\017=\017=\000\000\000\000\017A\017A\017A\000\000\017A\017A\017A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017A\000\000\000\000\000\000\000\000\000\000\000\000\017A\017A\004Z\000\000\000\000\017A\000\000\000\000\000\000\000\000\000\000\017A\000\000\000\000\017A\000\000\000\000\000\000\000\000\000\000\017A\017A\017A\000\000\000\000\000\000\000\000\000\000\000\000\017A\000\000\017A\017A\000\000\000\000\000\000\000\000\000\000\017A\000\000\000\000\017A\000\000\000\000\000\000\000\000\000\000\017A\000\000\000\000\000\000\017A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017A\000\000\017A\017A\000\000\017A\017A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017A\000\000\017A\000\000\017A\017A\017E\000\000\017A\000\000\017E\000\000\000\000\017A\017E\000\000\017A\017A\000\000\017A\000\000\017A\017A\000\000\000\000\017E\017E\017E\000\000\017E\017E\017E\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017E\000\000\000\000\000\000\000\000\000\000\000\000\017E\017E\005*\000\000\000\000\017E\000\000\000\000\000\000\000\000\000\000\017E\000\000\000\000\017E\000\000\000\000\000\000\000\000\000\000\017E\017E\017E\000\000\000\000\000\000\000\000\000\000\000\000\017E\000\000\017E\017E\000\000\000\000\000\000\000\000\000\000\017E\000\000\000\000\017E\000\000\000\000\000\000\000\000\000\000\017E\000\000\000\000\000\000\017E\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017E\000\000\017E\017E\000\000\017E\017E\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017E\000\000\017E\000\000\017E\017E\017I\000\000\017E\000\000\017I\000\000\000\000\017E\017I\000\000\017E\004F\000\000\017E\000\000\017E\017E\000\000\000\000\017I\017I\017I\000\000\017I\017I\017I\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017I\000\000\000\000\000\000\000\000\000\000\000\000\017I\017I\005F\000\000\000\000\017I\000\000\000\000\000\000\000\000\000\000\017I\000\000\000\000\017I\000\000\000\000\000\000\000\000\000\000\017I\017I\017I\000\000\000\000\000\000\000\000\000\000\000\000\017I\000\000\017I\017I\000\000\000\000\000\000\000\000\000\000\017I\000\000\000\000\017I\000\000\000\000\000\000\000\000\000\000\017I\000\000\000\000\000\000\017I\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017I\000\000\017I\017I\000\000\017I\017I\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017I\000\000\017I\000\000\017I\017I\017M\000\000\017I\000\000\017M\000\000\000\000\017I\017M\000\000\017I\017I\000\000\017I\000\000\017I\017I\000\000\000\000\017M\017M\017M\000\000\017M\017M\017M\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017M\000\000\000\000\000\000\000\000\000\000\000\000\017M\017M\004>\000\000\000\000\017M\000\000\000\000\000\000\000\000\000\000\017M\000\000\000\000\017M\000\000\000\000\000\000\000\000\000\000\017M\017M\017M\000\000\000\000\000\000\000\000\000\000\000\000\017M\000\000\017M\017M\000\000\000\000\000\000\000\000\000\000\017M\000\000\000\000\017M\000\000\000\000\000\000\000\000\000\000\017M\000\000\000\000\000\000\017M\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017M\000\000\017M\017M\000\000\017M\017M\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017M\000\000\017M\000\000\017M\017M\017Q\000\000\017M\000\000\017Q\000\000\000\000\017M\017Q\000\000\017M\004F\000\000\017M\000\000\017M\017M\000\000\000\000\017Q\017Q\017Q\000\000\017Q\017Q\017Q\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017Q\000\000\000\000\000\000\000\000\000\000\000\000\017Q\017Q\004Z\000\000\000\000\017Q\000\000\000\000\000\000\000\000\000\000\017Q\000\000\000\000\017Q\000\000\000\000\000\000\000\000\000\000\017Q\017Q\017Q\000\000\000\000\000\000\000\000\000\000\000\000\017Q\000\000\017Q\017Q\000\000\000\000\000\000\000\000\000\000\017Q\000\000\000\000\017Q\000\000\000\000\000\000\000\000\000\000\017Q\000\000\000\000\000\000\017Q\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017Q\000\000\017Q\017Q\000\000\017Q\017Q\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017Q\000\000\017Q\000\000\017Q\017Q\017U\000\000\017Q\000\000\017U\000\000\000\000\017Q\017U\000\000\017Q\017Q\000\000\017Q\000\000\017Q\017Q\000\000\000\000\017U\017U\017U\000\000\017U\017U\017U\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017U\000\000\000\000\000\000\000\000\000\000\000\000\017U\017U\005*\000\000\000\000\017U\000\000\000\000\000\000\000\000\000\000\017U\000\000\000\000\017U\000\000\000\000\000\000\000\000\000\000\017U\017U\017U\000\000\000\000\000\000\000\000\000\000\000\000\017U\000\000\017U\017U\000\000\000\000\000\000\000\000\000\000\017U\000\000\000\000\017U\000\000\000\000\000\000\000\000\000\000\017U\000\000\000\000\000\000\017U\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017U\000\000\017U\017U\000\000\017U\017U\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017U\000\000\017U\000\000\017U\017U\017Y\000\000\017U\000\000\017Y\000\000\000\000\017U\017Y\000\000\017U\004F\000\000\017U\000\000\017U\017U\000\000\000\000\017Y\017Y\017Y\000\000\017Y\017Y\017Y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017Y\000\000\000\000\000\000\000\000\000\000\000\000\017Y\017Y\005F\000\000\000\000\017Y\000\000\000\000\000\000\000\000\000\000\017Y\000\000\000\000\017Y\000\000\000\000\000\000\000\000\000\000\017Y\017Y\017Y\000\000\000\000\000\000\000\000\000\000\000\000\017Y\000\000\017Y\017Y\000\000\000\000\000\000\000\000\000\000\017Y\000\000\000\000\017Y\000\000\000\000\000\000\000\000\000\000\017Y\000\000\000\000\000\000\017Y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017Y\000\000\017Y\017Y\000\000\017Y\017Y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017Y\000\000\017Y\000\000\017Y\017Y\017]\000\000\017Y\000\000\017]\000\000\000\000\017Y\017]\000\000\017Y\017Y\000\000\017Y\000\000\017Y\017Y\000\000\000\000\017]\017]\017]\000\000\017]\017]\017]\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017]\000\000\000\000\000\000\000\000\000\000\000\000\017]\017]\004>\000\000\000\000\017]\000\000\000\000\000\000\000\000\000\000\017]\000\000\000\000\017]\000\000\000\000\000\000\000\000\000\000\017]\017]\017]\000\000\000\000\000\000\000\000\000\000\000\000\017]\000\000\017]\017]\000\000\000\000\000\000\000\000\000\000\017]\000\000\000\000\017]\000\000\000\000\000\000\000\000\000\000\017]\000\000\000\000\000\000\017]\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017]\000\000\017]\017]\000\000\017]\017]\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017]\000\000\017]\000\000\017]\017]\017a\000\000\017]\000\000\017a\000\000\000\000\017]\017a\000\000\017]\004F\000\000\017]\000\000\017]\017]\000\000\000\000\017a\017a\017a\000\000\017a\017a\017a\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017a\000\000\000\000\000\000\000\000\000\000\000\000\017a\017a\004Z\000\000\000\000\017a\000\000\000\000\000\000\000\000\000\000\017a\000\000\000\000\017a\000\000\000\000\000\000\000\000\000\000\017a\017a\017a\000\000\000\000\000\000\000\000\000\000\000\000\017a\000\000\017a\017a\000\000\000\000\000\000\000\000\000\000\017a\000\000\000\000\017a\000\000\000\000\000\000\000\000\000\000\017a\000\000\000\000\000\000\017a\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017a\000\000\017a\017a\000\000\017a\017a\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017a\000\000\017a\000\000\017a\017a\017e\000\000\017a\000\000\017e\000\000\000\000\017a\017e\000\000\017a\017a\000\000\017a\000\000\017a\017a\000\000\000\000\017e\017e\017e\000\000\017e\017e\017e\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017e\000\000\000\000\000\000\000\000\000\000\000\000\017e\017e\005*\000\000\000\000\017e\000\000\000\000\000\000\000\000\000\000\017e\000\000\000\000\017e\000\000\000\000\000\000\000\000\000\000\017e\017e\017e\000\000\000\000\000\000\000\000\000\000\000\000\017e\000\000\017e\017e\000\000\000\000\000\000\000\000\000\000\017e\000\000\000\000\017e\000\000\000\000\000\000\000\000\000\000\017e\000\000\000\000\000\000\017e\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017e\000\000\017e\017e\000\000\017e\017e\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017e\000\000\017e\000\000\017e\017e\017i\000\000\017e\000\000\017i\000\000\000\000\017e\017i\000\000\017e\004F\000\000\017e\000\000\017e\017e\000\000\000\000\017i\017i\017i\000\000\017i\017i\017i\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017i\000\000\000\000\000\000\000\000\000\000\000\000\017i\017i\005F\000\000\000\000\017i\000\000\000\000\000\000\000\000\000\000\017i\000\000\000\000\017i\000\000\000\000\000\000\000\000\000\000\017i\017i\017i\000\000\000\000\000\000\000\000\000\000\000\000\017i\000\000\017i\017i\000\000\000\000\000\000\000\000\000\000\017i\000\000\000\000\017i\000\000\000\000\000\000\000\000\000\000\017i\000\000\000\000\000\000\017i\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017i\000\000\017i\017i\000\000\017i\017i\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017i\000\000\017i\000\000\017i\017i\017m\000\000\017i\000\000\017m\000\000\000\000\017i\017m\000\000\017i\017i\000\000\017i\000\000\017i\017i\000\000\000\000\017m\017m\017m\000\000\017m\017m\017m\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017m\000\000\000\000\000\000\000\000\000\000\000\000\017m\017m\004>\000\000\000\000\017m\000\000\000\000\000\000\000\000\000\000\017m\000\000\000\000\017m\000\000\000\000\000\000\000\000\000\000\017m\017m\017m\000\000\000\000\000\000\000\000\000\000\000\000\017m\000\000\017m\017m\000\000\000\000\000\000\000\000\000\000\017m\000\000\000\000\017m\000\000\000\000\000\000\000\000\000\000\017m\000\000\000\000\000\000\017m\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017m\000\000\017m\017m\000\000\017m\017m\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017m\000\000\017m\000\000\017m\017m\017q\000\000\017m\000\000\017q\000\000\000\000\017m\017q\000\000\017m\004F\000\000\017m\000\000\017m\017m\000\000\000\000\017q\017q\017q\000\000\017q\017q\017q\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017q\000\000\000\000\000\000\000\000\000\000\000\000\017q\017q\004Z\000\000\000\000\017q\000\000\000\000\000\000\000\000\000\000\017q\000\000\000\000\017q\000\000\000\000\000\000\000\000\000\000\017q\017q\017q\000\000\000\000\000\000\000\000\000\000\000\000\017q\000\000\017q\017q\000\000\000\000\000\000\000\000\000\000\017q\000\000\000\000\017q\000\000\000\000\000\000\000\000\000\000\017q\000\000\000\000\000\000\017q\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017q\000\000\017q\017q\000\000\017q\017q\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017q\000\000\017q\000\000\017q\017q\017u\000\000\017q\000\000\017u\000\000\000\000\017q\017u\000\000\017q\017q\000\000\017q\000\000\017q\017q\000\000\000\000\017u\017u\017u\000\000\017u\017u\017u\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017u\000\000\000\000\000\000\000\000\000\000\000\000\017u\017u\005*\000\000\000\000\017u\000\000\000\000\000\000\000\000\000\000\017u\000\000\000\000\017u\000\000\000\000\000\000\000\000\000\000\017u\017u\017u\000\000\000\000\000\000\000\000\000\000\000\000\017u\000\000\017u\017u\000\000\000\000\000\000\000\000\000\000\017u\000\000\000\000\017u\000\000\000\000\000\000\000\000\000\000\017u\000\000\000\000\000\000\017u\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017u\000\000\017u\017u\000\000\017u\017u\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017u\000\000\017u\000\000\017u\017u\017y\000\000\017u\000\000\017y\000\000\000\000\017u\017y\000\000\017u\004F\000\000\017u\000\000\017u\017u\000\000\000\000\017y\017y\017y\000\000\017y\017y\017y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017y\000\000\000\000\000\000\000\000\000\000\000\000\017y\017y\005F\000\000\000\000\017y\000\000\000\000\000\000\000\000\000\000\017y\000\000\000\000\017y\000\000\000\000\000\000\000\000\000\000\017y\017y\017y\000\000\000\000\000\000\000\000\000\000\000\000\017y\000\000\017y\017y\000\000\000\000\000\000\000\000\000\000\017y\000\000\000\000\017y\000\000\000\000\000\000\000\000\000\000\017y\000\000\000\000\000\000\017y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017y\000\000\017y\017y\000\000\017y\017y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017y\000\000\017y\000\000\017y\017y\017}\000\000\017y\000\000\017}\000\000\000\000\017y\017}\000\000\017y\017y\000\000\017y\000\000\017y\017y\000\000\000\000\017}\017}\017}\000\000\017}\017}\017}\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017}\000\000\000\000\000\000\000\000\000\000\000\000\017}\017}\004>\000\000\000\000\017}\000\000\000\000\000\000\000\000\000\000\017}\000\000\000\000\017}\000\000\000\000\000\000\000\000\000\000\017}\017}\017}\000\000\000\000\000\000\000\000\000\000\000\000\017}\000\000\017}\017}\000\000\000\000\000\000\000\000\000\000\017}\000\000\000\000\017}\000\000\000\000\000\000\000\000\000\000\017}\000\000\000\000\000\000\017}\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017}\000\000\017}\017}\000\000\017}\017}\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017}\000\000\017}\000\000\017}\017}\017\129\000\000\017}\000\000\017\129\000\000\000\000\017}\017\129\000\000\017}\004F\000\000\017}\000\000\017}\017}\000\000\000\000\017\129\017\129\017\129\000\000\017\129\017\129\017\129\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\129\000\000\000\000\000\000\000\000\000\000\000\000\017\129\017\129\004Z\000\000\000\000\017\129\000\000\000\000\000\000\000\000\000\000\017\129\000\000\000\000\017\129\000\000\000\000\000\000\000\000\000\000\017\129\017\129\017\129\000\000\000\000\000\000\000\000\000\000\000\000\017\129\000\000\017\129\017\129\000\000\000\000\000\000\000\000\000\000\017\129\000\000\000\000\017\129\000\000\000\000\000\000\000\000\000\000\017\129\000\000\000\000\000\000\017\129\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\129\000\000\017\129\017\129\000\000\017\129\017\129\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\129\000\000\017\129\000\000\017\129\017\129\017\133\000\000\017\129\000\000\017\133\000\000\000\000\017\129\017\133\000\000\017\129\017\129\000\000\017\129\000\000\017\129\017\129\000\000\000\000\017\133\017\133\017\133\000\000\017\133\017\133\017\133\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\133\000\000\000\000\000\000\000\000\000\000\000\000\017\133\017\133\005*\000\000\000\000\017\133\000\000\000\000\000\000\000\000\000\000\017\133\000\000\000\000\017\133\000\000\000\000\000\000\000\000\000\000\017\133\017\133\017\133\000\000\000\000\000\000\000\000\000\000\000\000\017\133\000\000\017\133\017\133\000\000\000\000\000\000\000\000\000\000\017\133\000\000\000\000\017\133\000\000\000\000\000\000\000\000\000\000\017\133\000\000\000\000\000\000\017\133\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\133\000\000\017\133\017\133\000\000\017\133\017\133\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\133\000\000\017\133\000\000\017\133\017\133\017\137\000\000\017\133\000\000\017\137\000\000\000\000\017\133\017\137\000\000\017\133\004F\000\000\017\133\000\000\017\133\017\133\000\000\000\000\017\137\017\137\017\137\000\000\017\137\017\137\017\137\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\137\000\000\000\000\000\000\000\000\000\000\000\000\017\137\017\137\005F\000\000\000\000\017\137\000\000\000\000\000\000\000\000\000\000\017\137\000\000\000\000\017\137\000\000\000\000\000\000\000\000\000\000\017\137\017\137\017\137\000\000\000\000\000\000\000\000\000\000\000\000\017\137\000\000\017\137\017\137\000\000\000\000\000\000\000\000\000\000\017\137\000\000\000\000\017\137\000\000\000\000\000\000\000\000\000\000\017\137\000\000\000\000\000\000\017\137\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\137\000\000\017\137\017\137\000\000\017\137\017\137\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\137\000\000\017\137\000\000\017\137\017\137\017\141\000\000\017\137\000\000\017\141\000\000\000\000\017\137\017\141\000\000\017\137\017\137\000\000\017\137\000\000\017\137\017\137\000\000\000\000\017\141\017\141\017\141\000\000\017\141\017\141\017\141\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\141\000\000\000\000\000\000\000\000\000\000\000\000\017\141\017\141\004>\000\000\000\000\017\141\000\000\000\000\000\000\000\000\000\000\017\141\000\000\000\000\017\141\000\000\000\000\000\000\000\000\000\000\017\141\017\141\017\141\000\000\000\000\000\000\000\000\000\000\000\000\017\141\000\000\017\141\017\141\000\000\000\000\000\000\000\000\000\000\017\141\000\000\000\000\017\141\000\000\000\000\000\000\000\000\000\000\017\141\000\000\000\000\000\000\017\141\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\141\000\000\017\141\017\141\000\000\017\141\017\141\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\141\000\000\017\141\000\000\017\141\017\141\017\145\000\000\017\141\000\000\017\145\000\000\000\000\017\141\017\145\000\000\017\141\004F\000\000\017\141\000\000\017\141\017\141\000\000\000\000\017\145\017\145\017\145\000\000\017\145\017\145\017\145\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\145\000\000\000\000\000\000\000\000\000\000\000\000\017\145\017\145\004Z\000\000\000\000\017\145\000\000\000\000\000\000\000\000\000\000\017\145\000\000\000\000\017\145\000\000\000\000\000\000\000\000\000\000\017\145\017\145\017\145\000\000\000\000\000\000\000\000\000\000\000\000\017\145\000\000\017\145\017\145\000\000\000\000\000\000\000\000\000\000\017\145\000\000\000\000\017\145\000\000\000\000\000\000\000\000\000\000\017\145\000\000\000\000\000\000\017\145\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\145\000\000\017\145\017\145\000\000\017\145\017\145\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\145\000\000\017\145\000\000\017\145\017\145\017\149\000\000\017\145\000\000\017\149\000\000\000\000\017\145\017\149\000\000\017\145\017\145\000\000\017\145\000\000\017\145\017\145\000\000\000\000\017\149\017\149\017\149\000\000\017\149\017\149\017\149\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\149\000\000\000\000\000\000\000\000\000\000\000\000\017\149\017\149\005*\000\000\000\000\017\149\000\000\000\000\000\000\000\000\000\000\017\149\000\000\000\000\017\149\000\000\000\000\000\000\000\000\000\000\017\149\017\149\017\149\000\000\000\000\000\000\000\000\000\000\000\000\017\149\000\000\017\149\017\149\000\000\000\000\000\000\000\000\000\000\017\149\000\000\000\000\017\149\000\000\000\000\000\000\000\000\000\000\017\149\000\000\000\000\000\000\017\149\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\149\000\000\017\149\017\149\000\000\017\149\017\149\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\149\000\000\017\149\000\000\017\149\017\149\017\153\000\000\017\149\000\000\017\153\000\000\000\000\017\149\017\153\000\000\017\149\004F\000\000\017\149\000\000\017\149\017\149\000\000\000\000\017\153\017\153\017\153\000\000\017\153\017\153\017\153\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\153\000\000\000\000\000\000\000\000\000\000\000\000\017\153\017\153\005F\000\000\000\000\017\153\000\000\000\000\000\000\000\000\000\000\017\153\000\000\000\000\017\153\000\000\000\000\000\000\000\000\000\000\017\153\017\153\017\153\000\000\000\000\000\000\000\000\000\000\000\000\017\153\000\000\017\153\017\153\000\000\000\000\000\000\000\000\000\000\017\153\000\000\000\000\017\153\000\000\000\000\000\000\000\000\000\000\017\153\000\000\000\000\000\000\017\153\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\153\000\000\017\153\017\153\000\000\017\153\017\153\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\153\000\000\017\153\000\000\017\153\017\153\017\157\000\000\017\153\000\000\017\157\000\000\000\000\017\153\017\157\000\000\017\153\017\153\000\000\017\153\000\000\017\153\017\153\000\000\000\000\017\157\017\157\017\157\000\000\017\157\017\157\017\157\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\157\000\000\000\000\000\000\000\000\000\000\000\000\017\157\017\157\004>\000\000\000\000\017\157\000\000\000\000\000\000\000\000\000\000\017\157\000\000\000\000\017\157\000\000\000\000\000\000\000\000\000\000\017\157\017\157\017\157\000\000\000\000\000\000\000\000\000\000\000\000\017\157\000\000\017\157\017\157\000\000\000\000\000\000\000\000\000\000\017\157\000\000\000\000\017\157\000\000\000\000\000\000\000\000\000\000\017\157\000\000\000\000\000\000\017\157\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\157\000\000\017\157\017\157\000\000\017\157\017\157\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\157\000\000\017\157\000\000\017\157\017\157\017\161\000\000\017\157\000\000\017\161\000\000\000\000\017\157\017\161\000\000\017\157\004F\000\000\017\157\000\000\017\157\017\157\000\000\000\000\017\161\017\161\017\161\000\000\017\161\017\161\017\161\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\161\000\000\000\000\000\000\000\000\000\000\000\000\017\161\017\161\004Z\000\000\000\000\017\161\000\000\000\000\000\000\000\000\000\000\017\161\000\000\000\000\017\161\000\000\000\000\000\000\000\000\000\000\017\161\017\161\017\161\000\000\000\000\000\000\000\000\000\000\000\000\017\161\000\000\017\161\017\161\000\000\000\000\000\000\000\000\000\000\017\161\000\000\000\000\017\161\000\000\000\000\000\000\000\000\000\000\017\161\000\000\000\000\000\000\017\161\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\161\000\000\017\161\017\161\000\000\017\161\017\161\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\161\000\000\017\161\000\000\017\161\017\161\017\165\000\000\017\161\000\000\017\165\000\000\000\000\017\161\017\165\000\000\017\161\017\161\000\000\017\161\000\000\017\161\017\161\000\000\000\000\017\165\017\165\017\165\000\000\017\165\017\165\017\165\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\165\000\000\000\000\000\000\000\000\000\000\000\000\017\165\017\165\005*\000\000\000\000\017\165\000\000\000\000\000\000\000\000\000\000\017\165\000\000\000\000\017\165\000\000\000\000\000\000\000\000\000\000\017\165\017\165\017\165\000\000\000\000\000\000\000\000\000\000\000\000\017\165\000\000\017\165\017\165\000\000\000\000\000\000\000\000\000\000\017\165\000\000\000\000\017\165\000\000\000\000\000\000\000\000\000\000\017\165\000\000\000\000\000\000\017\165\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\165\000\000\017\165\017\165\000\000\017\165\017\165\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\165\000\000\017\165\000\000\017\165\017\165\017\169\000\000\017\165\000\000\017\169\000\000\000\000\017\165\017\169\000\000\017\165\004F\000\000\017\165\000\000\017\165\017\165\000\000\000\000\017\169\017\169\017\169\000\000\017\169\017\169\017\169\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\169\000\000\000\000\000\000\000\000\000\000\000\000\017\169\017\169\005F\000\000\000\000\017\169\000\000\000\000\000\000\000\000\000\000\017\169\000\000\000\000\017\169\000\000\000\000\000\000\000\000\000\000\017\169\017\169\017\169\000\000\000\000\000\000\000\000\000\000\000\000\017\169\000\000\017\169\017\169\000\000\000\000\000\000\000\000\000\000\017\169\000\000\000\000\017\169\000\000\000\000\000\000\000\000\000\000\017\169\000\000\000\000\000\000\017\169\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\169\000\000\017\169\017\169\000\000\017\169\017\169\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\169\000\000\017\169\000\000\017\169\017\169\018e\000\000\017\169\000\000\018e\000\000\000\000\017\169\018e\000\000\017\169\017\169\000\000\017\169\000\000\017\169\017\169\000\000\000\000\018e\018e\018e\000\000\018e\018e\018e\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018e\000\000\000\000\000\000\000\000\000\000\000\000\018e\018e\005*\000\000\000\000\018e\000\000\000\000\000\000\000\000\000\000\018e\000\000\000\000\018e\000\000\000\000\000\000\000\000\000\000\018e\018e\018e\000\000\000\000\000\000\000\000\000\000\000\000\018e\000\000\018e\018e\000\000\000\000\000\000\000\000\000\000\018e\000\000\000\000\018e\000\000\000\000\000\000\000\000\000\000\018e\000\000\000\000\000\000\018e\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018e\000\000\018e\018e\000\000\018e\018e\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018e\000\000\018e\000\000\018e\018e\018i\000\000\018e\000\000\018i\000\000\000\000\018e\018i\000\000\018e\004F\000\000\018e\000\000\018e\018e\000\000\000\000\018i\018i\018i\000\000\018i\018i\018i\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018i\000\000\000\000\000\000\000\000\000\000\000\000\018i\018i\005F\000\000\000\000\018i\000\000\000\000\000\000\000\000\000\000\018i\000\000\000\000\018i\000\000\000\000\000\000\000\000\000\000\018i\018i\018i\000\000\000\000\000\000\000\000\000\000\000\000\018i\000\000\018i\018i\000\000\000\000\000\000\000\000\000\000\018i\000\000\000\000\018i\000\000\000\000\000\000\000\000\000\000\018i\000\000\000\000\000\000\018i\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018i\000\000\018i\018i\000\000\018i\018i\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018i\000\000\018i\000\000\018i\018i\018U\000\000\018i\000\000\018U\000\000\000\000\018i\018U\000\000\018i\018i\000\000\018i\000\000\018i\018i\000\000\000\000\018U\018U\018U\000\000\018U\018U\018U\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018U\000\000\000\000\000\000\000\000\000\000\000\000\018U\018U\005*\000\000\000\000\018U\000\000\000\000\000\000\000\000\000\000\018U\000\000\000\000\018U\000\000\000\000\000\000\000\000\000\000\018U\018U\018U\000\000\000\000\000\000\000\000\000\000\000\000\018U\000\000\018U\018U\000\000\000\000\000\000\000\000\000\000\018U\000\000\000\000\018U\000\000\000\000\000\000\000\000\000\000\018U\000\000\000\000\000\000\018U\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018U\000\000\018U\018U\000\000\018U\018U\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018U\000\000\018U\000\000\018U\018U\018Y\000\000\018U\000\000\018Y\000\000\000\000\018U\018Y\000\000\018U\004F\000\000\018U\000\000\018U\018U\000\000\000\000\018Y\018Y\018Y\000\000\018Y\018Y\018Y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018Y\000\000\000\000\000\000\000\000\000\000\000\000\018Y\018Y\005F\000\000\000\000\018Y\000\000\000\000\000\000\000\000\000\000\018Y\000\000\000\000\018Y\000\000\000\000\000\000\000\000\000\000\018Y\018Y\018Y\000\000\000\000\000\000\000\000\000\000\000\000\018Y\000\000\018Y\018Y\000\000\000\000\000\000\000\000\000\000\018Y\000\000\000\000\018Y\000\000\000\000\000\000\000\000\000\000\018Y\000\000\000\000\000\000\018Y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018Y\000\000\018Y\018Y\000\000\018Y\018Y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018Y\000\000\018Y\000\000\018Y\018Y\018-\000\000\018Y\000\000\018-\000\000\000\000\018Y\018-\000\000\018Y\018Y\000\000\018Y\000\000\018Y\018Y\000\000\000\000\018-\018-\018-\000\000\018-\018-\018-\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018-\000\000\000\000\000\000\000\000\000\000\000\000\018-\018-\004>\000\000\000\000\018-\000\000\000\000\000\000\000\000\000\000\018-\000\000\000\000\018-\000\000\000\000\000\000\000\000\000\000\018-\018-\018-\000\000\000\000\000\000\000\000\000\000\000\000\018-\000\000\018-\018-\000\000\000\000\000\000\000\000\000\000\018-\000\000\000\000\018-\000\000\000\000\000\000\000\000\000\000\018-\000\000\000\000\000\000\018-\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018-\000\000\018-\018-\000\000\018-\018-\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018-\000\000\018-\000\000\018-\018-\0181\000\000\018-\000\000\0181\000\000\000\000\018-\0181\000\000\018-\004F\000\000\018-\000\000\018-\018-\000\000\000\000\0181\0181\0181\000\000\0181\0181\0181\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0181\000\000\000\000\000\000\000\000\000\000\000\000\0181\0181\004Z\000\000\000\000\0181\000\000\000\000\000\000\000\000\000\000\0181\000\000\000\000\0181\000\000\000\000\000\000\000\000\000\000\0181\0181\0181\000\000\000\000\000\000\000\000\000\000\000\000\0181\000\000\0181\0181\000\000\000\000\000\000\000\000\000\000\0181\000\000\000\000\0181\000\000\000\000\000\000\000\000\000\000\0181\000\000\000\000\000\000\0181\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0181\000\000\0181\0181\000\000\0181\0181\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0181\000\000\0181\000\000\0181\0181\0185\000\000\0181\000\000\0185\000\000\000\000\0181\0185\000\000\0181\0181\000\000\0181\000\000\0181\0181\000\000\000\000\0185\0185\0185\000\000\0185\0185\0185\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0185\000\000\000\000\000\000\000\000\000\000\000\000\0185\0185\005*\000\000\000\000\0185\000\000\000\000\000\000\000\000\000\000\0185\000\000\000\000\0185\000\000\000\000\000\000\000\000\000\000\0185\0185\0185\000\000\000\000\000\000\000\000\000\000\000\000\0185\000\000\0185\0185\000\000\000\000\000\000\000\000\000\000\0185\000\000\000\000\0185\000\000\000\000\000\000\000\000\000\000\0185\000\000\000\000\000\000\0185\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0185\000\000\0185\0185\000\000\0185\0185\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0185\000\000\0185\000\000\0185\0185\0189\000\000\0185\000\000\0189\000\000\000\000\0185\0189\000\000\0185\004F\000\000\0185\000\000\0185\0185\000\000\000\000\0189\0189\0189\000\000\0189\0189\0189\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0189\000\000\000\000\000\000\000\000\000\000\000\000\0189\0189\005F\000\000\000\000\0189\000\000\000\000\000\000\000\000\000\000\0189\000\000\000\000\0189\000\000\000\000\000\000\000\000\000\000\0189\0189\0189\000\000\000\000\000\000\000\000\000\000\000\000\0189\000\000\0189\0189\000\000\000\000\000\000\000\000\000\000\0189\000\000\000\000\0189\000\000\000\000\000\000\000\000\000\000\0189\000\000\000\000\000\000\0189\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0189\000\000\0189\0189\000\000\0189\0189\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0189\000\000\0189\000\000\0189\0189\018=\000\000\0189\000\000\018=\000\000\000\000\0189\018=\000\000\0189\0189\000\000\0189\000\000\0189\0189\000\000\000\000\018=\018=\018=\000\000\018=\018=\018=\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018=\000\000\000\000\000\000\000\000\000\000\000\000\018=\018=\004>\000\000\000\000\018=\000\000\000\000\000\000\000\000\000\000\018=\000\000\000\000\018=\000\000\000\000\000\000\000\000\000\000\018=\018=\018=\000\000\000\000\000\000\000\000\000\000\000\000\018=\000\000\018=\018=\000\000\000\000\000\000\000\000\000\000\018=\000\000\000\000\018=\000\000\000\000\000\000\000\000\000\000\018=\000\000\000\000\000\000\018=\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018=\000\000\018=\018=\000\000\018=\018=\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018=\000\000\018=\000\000\018=\018=\018A\000\000\018=\000\000\018A\000\000\000\000\018=\018A\000\000\018=\004F\000\000\018=\000\000\018=\018=\000\000\000\000\018A\018A\018A\000\000\018A\018A\018A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018A\000\000\000\000\000\000\000\000\000\000\000\000\018A\018A\004Z\000\000\000\000\018A\000\000\000\000\000\000\000\000\000\000\018A\000\000\000\000\018A\000\000\000\000\000\000\000\000\000\000\018A\018A\018A\000\000\000\000\000\000\000\000\000\000\000\000\018A\000\000\018A\018A\000\000\000\000\000\000\000\000\000\000\018A\000\000\000\000\018A\000\000\000\000\000\000\000\000\000\000\018A\000\000\000\000\000\000\018A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018A\000\000\018A\018A\000\000\018A\018A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018A\000\000\018A\000\000\018A\018A\018E\000\000\018A\000\000\018E\000\000\000\000\018A\018E\000\000\018A\018A\000\000\018A\000\000\018A\018A\000\000\000\000\018E\018E\018E\000\000\018E\018E\018E\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018E\000\000\000\000\000\000\000\000\000\000\000\000\018E\018E\005*\000\000\000\000\018E\000\000\000\000\000\000\000\000\000\000\018E\000\000\000\000\018E\000\000\000\000\000\000\000\000\000\000\018E\018E\018E\000\000\000\000\000\000\000\000\000\000\000\000\018E\000\000\018E\018E\000\000\000\000\000\000\000\000\000\000\018E\000\000\000\000\018E\000\000\000\000\000\000\000\000\000\000\018E\000\000\000\000\000\000\018E\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018E\000\000\018E\018E\000\000\018E\018E\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018E\000\000\018E\000\000\018E\018E\018I\000\000\018E\000\000\018I\000\000\000\000\018E\018I\000\000\018E\004F\000\000\018E\000\000\018E\018E\000\000\000\000\018I\018I\018I\000\000\018I\018I\018I\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018I\000\000\000\000\000\000\000\000\000\000\000\000\018I\018I\005F\000\000\000\000\018I\000\000\000\000\000\000\000\000\000\000\018I\000\000\000\000\018I\000\000\000\000\000\000\000\000\000\000\018I\018I\018I\000\000\000\000\000\000\000\000\000\000\000\000\018I\000\000\018I\018I\000\000\000\000\000\000\000\000\000\000\018I\000\000\000\000\018I\000\000\000\000\000\000\000\000\000\000\018I\000\000\000\000\000\000\018I\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018I\000\000\018I\018I\000\000\018I\018I\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018I\000\000\018I\000\000\018I\018I\017\173\000\000\018I\000\000\017\173\000\000\000\000\018I\017\173\000\000\018I\018I\000\000\018I\000\000\018I\018I\000\000\000\000\017\173\017\173\017\173\000\000\017\173\017\173\017\173\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\173\000\000\000\000\000\000\000\000\000\000\000\000\017\173\017\173\004>\000\000\000\000\017\173\000\000\000\000\000\000\000\000\000\000\017\173\000\000\000\000\017\173\000\000\000\000\000\000\000\000\000\000\017\173\017\173\017\173\000\000\000\000\000\000\000\000\000\000\000\000\017\173\000\000\017\173\017\173\000\000\000\000\000\000\000\000\000\000\017\173\000\000\000\000\017\173\000\000\000\000\000\000\000\000\000\000\017\173\000\000\000\000\000\000\017\173\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\173\000\000\017\173\017\173\000\000\017\173\017\173\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\173\000\000\017\173\000\000\017\173\017\173\017\177\000\000\017\173\000\000\017\177\000\000\000\000\017\173\017\177\000\000\017\173\004F\000\000\017\173\000\000\017\173\017\173\000\000\000\000\017\177\017\177\017\177\000\000\017\177\017\177\017\177\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\177\000\000\000\000\000\000\000\000\000\000\000\000\017\177\017\177\004Z\000\000\000\000\017\177\000\000\000\000\000\000\000\000\000\000\017\177\000\000\000\000\017\177\000\000\000\000\000\000\000\000\000\000\017\177\017\177\017\177\000\000\000\000\000\000\000\000\000\000\000\000\017\177\000\000\017\177\017\177\000\000\000\000\000\000\000\000\000\000\017\177\000\000\000\000\017\177\000\000\000\000\000\000\000\000\000\000\017\177\000\000\000\000\000\000\017\177\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\177\000\000\017\177\017\177\000\000\017\177\017\177\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\177\000\000\017\177\000\000\017\177\017\177\017\181\000\000\017\177\000\000\017\181\000\000\000\000\017\177\017\181\000\000\017\177\017\177\000\000\017\177\000\000\017\177\017\177\000\000\000\000\017\181\017\181\017\181\000\000\017\181\017\181\017\181\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\181\000\000\000\000\000\000\000\000\000\000\000\000\017\181\017\181\005*\000\000\000\000\017\181\000\000\000\000\000\000\000\000\000\000\017\181\000\000\000\000\017\181\000\000\000\000\000\000\000\000\000\000\017\181\017\181\017\181\000\000\000\000\000\000\000\000\000\000\000\000\017\181\000\000\017\181\017\181\000\000\000\000\000\000\000\000\000\000\017\181\000\000\000\000\017\181\000\000\000\000\000\000\000\000\000\000\017\181\000\000\000\000\000\000\017\181\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\181\000\000\017\181\017\181\000\000\017\181\017\181\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\181\000\000\017\181\000\000\017\181\017\181\017\185\000\000\017\181\000\000\017\185\000\000\000\000\017\181\017\185\000\000\017\181\004F\000\000\017\181\000\000\017\181\017\181\000\000\000\000\017\185\017\185\017\185\000\000\017\185\017\185\017\185\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\185\000\000\000\000\000\000\000\000\000\000\000\000\017\185\017\185\005F\000\000\000\000\017\185\000\000\000\000\000\000\000\000\000\000\017\185\000\000\000\000\017\185\000\000\000\000\000\000\000\000\000\000\017\185\017\185\017\185\000\000\000\000\000\000\000\000\000\000\000\000\017\185\000\000\017\185\017\185\000\000\000\000\000\000\000\000\000\000\017\185\000\000\000\000\017\185\000\000\000\000\000\000\000\000\000\000\017\185\000\000\000\000\000\000\017\185\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\185\000\000\017\185\017\185\000\000\017\185\017\185\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\185\000\000\017\185\000\000\017\185\017\185\017\189\000\000\017\185\000\000\017\189\000\000\000\000\017\185\017\189\000\000\017\185\017\185\000\000\017\185\000\000\017\185\017\185\000\000\000\000\017\189\017\189\017\189\000\000\017\189\017\189\017\189\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\189\000\000\000\000\000\000\000\000\000\000\000\000\017\189\017\189\004>\000\000\000\000\017\189\000\000\000\000\000\000\000\000\000\000\017\189\000\000\000\000\017\189\000\000\000\000\000\000\000\000\000\000\017\189\017\189\017\189\000\000\000\000\000\000\000\000\000\000\000\000\017\189\000\000\017\189\017\189\000\000\000\000\000\000\000\000\000\000\017\189\000\000\000\000\017\189\000\000\000\000\000\000\000\000\000\000\017\189\000\000\000\000\000\000\017\189\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\189\000\000\017\189\017\189\000\000\017\189\017\189\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\189\000\000\017\189\000\000\017\189\017\189\017\193\000\000\017\189\000\000\017\193\000\000\000\000\017\189\017\193\000\000\017\189\004F\000\000\017\189\000\000\017\189\017\189\000\000\000\000\017\193\017\193\017\193\000\000\017\193\017\193\017\193\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\193\000\000\000\000\000\000\000\000\000\000\000\000\017\193\017\193\004Z\000\000\000\000\017\193\000\000\000\000\000\000\000\000\000\000\017\193\000\000\000\000\017\193\000\000\000\000\000\000\000\000\000\000\017\193\017\193\017\193\000\000\000\000\000\000\000\000\000\000\000\000\017\193\000\000\017\193\017\193\000\000\000\000\000\000\000\000\000\000\017\193\000\000\000\000\017\193\000\000\000\000\000\000\000\000\000\000\017\193\000\000\000\000\000\000\017\193\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\193\000\000\017\193\017\193\000\000\017\193\017\193\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\193\000\000\017\193\000\000\017\193\017\193\017\197\000\000\017\193\000\000\017\197\000\000\000\000\017\193\017\197\000\000\017\193\017\193\000\000\017\193\000\000\017\193\017\193\000\000\000\000\017\197\017\197\017\197\000\000\017\197\017\197\017\197\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\197\000\000\000\000\000\000\000\000\000\000\000\000\017\197\017\197\005*\000\000\000\000\017\197\000\000\000\000\000\000\000\000\000\000\017\197\000\000\000\000\017\197\000\000\000\000\000\000\000\000\000\000\017\197\017\197\017\197\000\000\000\000\000\000\000\000\000\000\000\000\017\197\000\000\017\197\017\197\000\000\000\000\000\000\000\000\000\000\017\197\000\000\000\000\017\197\000\000\000\000\000\000\000\000\000\000\017\197\000\000\000\000\000\000\017\197\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\197\000\000\017\197\017\197\000\000\017\197\017\197\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\197\000\000\017\197\000\000\017\197\017\197\017\201\000\000\017\197\000\000\017\201\000\000\000\000\017\197\017\201\000\000\017\197\004F\000\000\017\197\000\000\017\197\017\197\000\000\000\000\017\201\017\201\017\201\000\000\017\201\017\201\017\201\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\201\000\000\000\000\000\000\000\000\000\000\000\000\017\201\017\201\005F\000\000\000\000\017\201\000\000\000\000\000\000\000\000\000\000\017\201\000\000\000\000\017\201\000\000\000\000\000\000\000\000\000\000\017\201\017\201\017\201\000\000\000\000\000\000\000\000\000\000\000\000\017\201\000\000\017\201\017\201\000\000\000\000\000\000\000\000\000\000\017\201\000\000\000\000\017\201\000\000\000\000\000\000\000\000\000\000\017\201\000\000\000\000\000\000\017\201\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\201\000\000\017\201\017\201\000\000\017\201\017\201\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\201\000\000\017\201\000\000\017\201\017\201\017\205\000\000\017\201\000\000\017\205\000\000\000\000\017\201\017\205\000\000\017\201\017\201\000\000\017\201\000\000\017\201\017\201\000\000\000\000\017\205\017\205\017\205\000\000\017\205\017\205\017\205\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\205\000\000\000\000\000\000\000\000\000\000\000\000\017\205\017\205\004>\000\000\000\000\017\205\000\000\000\000\000\000\000\000\000\000\017\205\000\000\000\000\017\205\000\000\000\000\000\000\000\000\000\000\017\205\017\205\017\205\000\000\000\000\000\000\000\000\000\000\000\000\017\205\000\000\017\205\017\205\000\000\000\000\000\000\000\000\000\000\017\205\000\000\000\000\017\205\000\000\000\000\000\000\000\000\000\000\017\205\000\000\000\000\000\000\017\205\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\205\000\000\017\205\017\205\000\000\017\205\017\205\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\205\000\000\017\205\000\000\017\205\017\205\017\209\000\000\017\205\000\000\017\209\000\000\000\000\017\205\017\209\000\000\017\205\004F\000\000\017\205\000\000\017\205\017\205\000\000\000\000\017\209\017\209\017\209\000\000\017\209\017\209\017\209\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\209\000\000\000\000\000\000\000\000\000\000\000\000\017\209\017\209\004Z\000\000\000\000\017\209\000\000\000\000\000\000\000\000\000\000\017\209\000\000\000\000\017\209\000\000\000\000\000\000\000\000\000\000\017\209\017\209\017\209\000\000\000\000\000\000\000\000\000\000\000\000\017\209\000\000\017\209\017\209\000\000\000\000\000\000\000\000\000\000\017\209\000\000\000\000\017\209\000\000\000\000\000\000\000\000\000\000\017\209\000\000\000\000\000\000\017\209\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\209\000\000\017\209\017\209\000\000\017\209\017\209\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\209\000\000\017\209\000\000\017\209\017\209\017\213\000\000\017\209\000\000\017\213\000\000\000\000\017\209\017\213\000\000\017\209\017\209\000\000\017\209\000\000\017\209\017\209\000\000\000\000\017\213\017\213\017\213\000\000\017\213\017\213\017\213\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\213\000\000\000\000\000\000\000\000\000\000\000\000\017\213\017\213\005*\000\000\000\000\017\213\000\000\000\000\000\000\000\000\000\000\017\213\000\000\000\000\017\213\000\000\000\000\000\000\000\000\000\000\017\213\017\213\017\213\000\000\000\000\000\000\000\000\000\000\000\000\017\213\000\000\017\213\017\213\000\000\000\000\000\000\000\000\000\000\017\213\000\000\000\000\017\213\000\000\000\000\000\000\000\000\000\000\017\213\000\000\000\000\000\000\017\213\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\213\000\000\017\213\017\213\000\000\017\213\017\213\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\213\000\000\017\213\000\000\017\213\017\213\017\217\000\000\017\213\000\000\017\217\000\000\000\000\017\213\017\217\000\000\017\213\004F\000\000\017\213\000\000\017\213\017\213\000\000\000\000\017\217\017\217\017\217\000\000\017\217\017\217\017\217\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\217\000\000\000\000\000\000\000\000\000\000\000\000\017\217\017\217\005F\000\000\000\000\017\217\000\000\000\000\000\000\000\000\000\000\017\217\000\000\000\000\017\217\000\000\000\000\000\000\000\000\000\000\017\217\017\217\017\217\000\000\000\000\000\000\000\000\000\000\000\000\017\217\000\000\017\217\017\217\000\000\000\000\000\000\000\000\000\000\017\217\000\000\000\000\017\217\000\000\000\000\000\000\000\000\000\000\017\217\000\000\000\000\000\000\017\217\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\217\000\000\017\217\017\217\000\000\017\217\017\217\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\217\000\000\017\217\000\000\017\217\017\217\017\221\000\000\017\217\000\000\017\221\000\000\000\000\017\217\017\221\000\000\017\217\017\217\000\000\017\217\000\000\017\217\017\217\000\000\000\000\017\221\017\221\017\221\000\000\017\221\017\221\017\221\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\221\000\000\000\000\000\000\000\000\000\000\000\000\017\221\017\221\004>\000\000\000\000\017\221\000\000\000\000\000\000\000\000\000\000\017\221\000\000\000\000\017\221\000\000\000\000\000\000\000\000\000\000\017\221\017\221\017\221\000\000\000\000\000\000\000\000\000\000\000\000\017\221\000\000\017\221\017\221\000\000\000\000\000\000\000\000\000\000\017\221\000\000\000\000\017\221\000\000\000\000\000\000\000\000\000\000\017\221\000\000\000\000\000\000\017\221\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\221\000\000\017\221\017\221\000\000\017\221\017\221\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\221\000\000\017\221\000\000\017\221\017\221\017\225\000\000\017\221\000\000\017\225\000\000\000\000\017\221\017\225\000\000\017\221\004F\000\000\017\221\000\000\017\221\017\221\000\000\000\000\017\225\017\225\017\225\000\000\017\225\017\225\017\225\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\225\000\000\000\000\000\000\000\000\000\000\000\000\017\225\017\225\004Z\000\000\000\000\017\225\000\000\000\000\000\000\000\000\000\000\017\225\000\000\000\000\017\225\000\000\000\000\000\000\000\000\000\000\017\225\017\225\017\225\000\000\000\000\000\000\000\000\000\000\000\000\017\225\000\000\017\225\017\225\000\000\000\000\000\000\000\000\000\000\017\225\000\000\000\000\017\225\000\000\000\000\000\000\000\000\000\000\017\225\000\000\000\000\000\000\017\225\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\225\000\000\017\225\017\225\000\000\017\225\017\225\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\225\000\000\017\225\000\000\017\225\017\225\017\229\000\000\017\225\000\000\017\229\000\000\000\000\017\225\017\229\000\000\017\225\017\225\000\000\017\225\000\000\017\225\017\225\000\000\000\000\017\229\017\229\017\229\000\000\017\229\017\229\017\229\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\229\000\000\000\000\000\000\000\000\000\000\000\000\017\229\017\229\005*\000\000\000\000\017\229\000\000\000\000\000\000\000\000\000\000\017\229\000\000\000\000\017\229\000\000\000\000\000\000\000\000\000\000\017\229\017\229\017\229\000\000\000\000\000\000\000\000\000\000\000\000\017\229\000\000\017\229\017\229\000\000\000\000\000\000\000\000\000\000\017\229\000\000\000\000\017\229\000\000\000\000\000\000\000\000\000\000\017\229\000\000\000\000\000\000\017\229\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\229\000\000\017\229\017\229\000\000\017\229\017\229\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\229\000\000\017\229\000\000\017\229\017\229\017\233\000\000\017\229\000\000\017\233\000\000\000\000\017\229\017\233\000\000\017\229\004F\000\000\017\229\000\000\017\229\017\229\000\000\000\000\017\233\017\233\017\233\000\000\017\233\017\233\017\233\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\233\000\000\000\000\000\000\000\000\000\000\000\000\017\233\017\233\005F\000\000\000\000\017\233\000\000\000\000\000\000\000\000\000\000\017\233\000\000\000\000\017\233\000\000\000\000\000\000\000\000\000\000\017\233\017\233\017\233\000\000\000\000\000\000\000\000\000\000\000\000\017\233\000\000\017\233\017\233\000\000\000\000\000\000\000\000\000\000\017\233\000\000\000\000\017\233\000\000\000\000\000\000\000\000\000\000\017\233\000\000\000\000\000\000\017\233\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\233\000\000\017\233\017\233\000\000\017\233\017\233\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\233\000\000\017\233\000\000\017\233\017\233\017\237\000\000\017\233\000\000\017\237\000\000\000\000\017\233\017\237\000\000\017\233\017\233\000\000\017\233\000\000\017\233\017\233\000\000\000\000\017\237\017\237\017\237\000\000\017\237\017\237\017\237\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\237\000\000\000\000\000\000\000\000\000\000\000\000\017\237\017\237\004>\000\000\000\000\017\237\000\000\000\000\000\000\000\000\000\000\017\237\000\000\000\000\017\237\000\000\000\000\000\000\000\000\000\000\017\237\017\237\017\237\000\000\000\000\000\000\000\000\000\000\000\000\017\237\000\000\017\237\017\237\000\000\000\000\000\000\000\000\000\000\017\237\000\000\000\000\017\237\000\000\000\000\000\000\000\000\000\000\017\237\000\000\000\000\000\000\017\237\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\237\000\000\017\237\017\237\000\000\017\237\017\237\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\237\000\000\017\237\000\000\017\237\017\237\017\241\000\000\017\237\000\000\017\241\000\000\000\000\017\237\017\241\000\000\017\237\004F\000\000\017\237\000\000\017\237\017\237\000\000\000\000\017\241\017\241\017\241\000\000\017\241\017\241\017\241\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\241\000\000\000\000\000\000\000\000\000\000\000\000\017\241\017\241\004Z\000\000\000\000\017\241\000\000\000\000\000\000\000\000\000\000\017\241\000\000\000\000\017\241\000\000\000\000\000\000\000\000\000\000\017\241\017\241\017\241\000\000\000\000\000\000\000\000\000\000\000\000\017\241\000\000\017\241\017\241\000\000\000\000\000\000\000\000\000\000\017\241\000\000\000\000\017\241\000\000\000\000\000\000\000\000\000\000\017\241\000\000\000\000\000\000\017\241\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\241\000\000\017\241\017\241\000\000\017\241\017\241\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\241\000\000\017\241\000\000\017\241\017\241\017\245\000\000\017\241\000\000\017\245\000\000\000\000\017\241\017\245\000\000\017\241\017\241\000\000\017\241\000\000\017\241\017\241\000\000\000\000\017\245\017\245\017\245\000\000\017\245\017\245\017\245\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\245\000\000\000\000\000\000\000\000\000\000\000\000\017\245\017\245\005*\000\000\000\000\017\245\000\000\000\000\000\000\000\000\000\000\017\245\000\000\000\000\017\245\000\000\000\000\000\000\000\000\000\000\017\245\017\245\017\245\000\000\000\000\000\000\000\000\000\000\000\000\017\245\000\000\017\245\017\245\000\000\000\000\000\000\000\000\000\000\017\245\000\000\000\000\017\245\000\000\000\000\000\000\000\000\000\000\017\245\000\000\000\000\000\000\017\245\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\245\000\000\017\245\017\245\000\000\017\245\017\245\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\245\000\000\017\245\000\000\017\245\017\245\017\249\000\000\017\245\000\000\017\249\000\000\000\000\017\245\017\249\000\000\017\245\004F\000\000\017\245\000\000\017\245\017\245\000\000\000\000\017\249\017\249\017\249\000\000\017\249\017\249\017\249\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\249\000\000\000\000\000\000\000\000\000\000\000\000\017\249\017\249\005F\000\000\000\000\017\249\000\000\000\000\000\000\000\000\000\000\017\249\000\000\000\000\017\249\000\000\000\000\000\000\000\000\000\000\017\249\017\249\017\249\000\000\000\000\000\000\000\000\000\000\000\000\017\249\000\000\017\249\017\249\000\000\000\000\000\000\000\000\000\000\017\249\000\000\000\000\017\249\000\000\000\000\000\000\000\000\000\000\017\249\000\000\000\000\000\000\017\249\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\249\000\000\017\249\017\249\000\000\017\249\017\249\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\249\000\000\017\249\000\000\017\249\017\249\017\253\000\000\017\249\000\000\017\253\000\000\000\000\017\249\017\253\000\000\017\249\017\249\000\000\017\249\000\000\017\249\017\249\000\000\000\000\017\253\017\253\017\253\000\000\017\253\017\253\017\253\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\253\000\000\000\000\000\000\000\000\000\000\000\000\017\253\017\253\004>\000\000\000\000\017\253\000\000\000\000\000\000\000\000\000\000\017\253\000\000\000\000\017\253\000\000\000\000\000\000\000\000\000\000\017\253\017\253\017\253\000\000\000\000\000\000\000\000\000\000\000\000\017\253\000\000\017\253\017\253\000\000\000\000\000\000\000\000\000\000\017\253\000\000\000\000\017\253\000\000\000\000\000\000\000\000\000\000\017\253\000\000\000\000\000\000\017\253\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\253\000\000\017\253\017\253\000\000\017\253\017\253\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\253\000\000\017\253\000\000\017\253\017\253\018\001\000\000\017\253\000\000\018\001\000\000\000\000\017\253\018\001\000\000\017\253\004F\000\000\017\253\000\000\017\253\017\253\000\000\000\000\018\001\018\001\018\001\000\000\018\001\018\001\018\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\001\000\000\000\000\000\000\000\000\000\000\000\000\018\001\018\001\004Z\000\000\000\000\018\001\000\000\000\000\000\000\000\000\000\000\018\001\000\000\000\000\018\001\000\000\000\000\000\000\000\000\000\000\018\001\018\001\018\001\000\000\000\000\000\000\000\000\000\000\000\000\018\001\000\000\018\001\018\001\000\000\000\000\000\000\000\000\000\000\018\001\000\000\000\000\018\001\000\000\000\000\000\000\000\000\000\000\018\001\000\000\000\000\000\000\018\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\001\000\000\018\001\018\001\000\000\018\001\018\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\001\000\000\018\001\000\000\018\001\018\001\018\005\000\000\018\001\000\000\018\005\000\000\000\000\018\001\018\005\000\000\018\001\018\001\000\000\018\001\000\000\018\001\018\001\000\000\000\000\018\005\018\005\018\005\000\000\018\005\018\005\018\005\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\005\000\000\000\000\000\000\000\000\000\000\000\000\018\005\018\005\005*\000\000\000\000\018\005\000\000\000\000\000\000\000\000\000\000\018\005\000\000\000\000\018\005\000\000\000\000\000\000\000\000\000\000\018\005\018\005\018\005\000\000\000\000\000\000\000\000\000\000\000\000\018\005\000\000\018\005\018\005\000\000\000\000\000\000\000\000\000\000\018\005\000\000\000\000\018\005\000\000\000\000\000\000\000\000\000\000\018\005\000\000\000\000\000\000\018\005\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\005\000\000\018\005\018\005\000\000\018\005\018\005\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\005\000\000\018\005\000\000\018\005\018\005\018\t\000\000\018\005\000\000\018\t\000\000\000\000\018\005\018\t\000\000\018\005\004F\000\000\018\005\000\000\018\005\018\005\000\000\000\000\018\t\018\t\018\t\000\000\018\t\018\t\018\t\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\t\000\000\000\000\000\000\000\000\000\000\000\000\018\t\018\t\005F\000\000\000\000\018\t\000\000\000\000\000\000\000\000\000\000\018\t\000\000\000\000\018\t\000\000\000\000\000\000\000\000\000\000\018\t\018\t\018\t\000\000\000\000\000\000\000\000\000\000\000\000\018\t\000\000\018\t\018\t\000\000\000\000\000\000\000\000\000\000\018\t\000\000\000\000\018\t\000\000\000\000\000\000\000\000\000\000\018\t\000\000\000\000\000\000\018\t\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\t\000\000\018\t\018\t\000\000\018\t\018\t\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\t\000\000\018\t\000\000\018\t\018\t\018\r\000\000\018\t\000\000\018\r\000\000\000\000\018\t\018\r\000\000\018\t\018\t\000\000\018\t\000\000\018\t\018\t\000\000\000\000\018\r\018\r\018\r\000\000\018\r\018\r\018\r\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\r\000\000\000\000\000\000\000\000\000\000\000\000\018\r\018\r\004>\000\000\000\000\018\r\000\000\000\000\000\000\000\000\000\000\018\r\000\000\000\000\018\r\000\000\000\000\000\000\000\000\000\000\018\r\018\r\018\r\000\000\000\000\000\000\000\000\000\000\000\000\018\r\000\000\018\r\018\r\000\000\000\000\000\000\000\000\000\000\018\r\000\000\000\000\018\r\000\000\000\000\000\000\000\000\000\000\018\r\000\000\000\000\000\000\018\r\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\r\000\000\018\r\018\r\000\000\018\r\018\r\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\r\000\000\018\r\000\000\018\r\018\r\018\017\000\000\018\r\000\000\018\017\000\000\000\000\018\r\018\017\000\000\018\r\004F\000\000\018\r\000\000\018\r\018\r\000\000\000\000\018\017\018\017\018\017\000\000\018\017\018\017\018\017\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\017\000\000\000\000\000\000\000\000\000\000\000\000\018\017\018\017\004Z\000\000\000\000\018\017\000\000\000\000\000\000\000\000\000\000\018\017\000\000\000\000\018\017\000\000\000\000\000\000\000\000\000\000\018\017\018\017\018\017\000\000\000\000\000\000\000\000\000\000\000\000\018\017\000\000\018\017\018\017\000\000\000\000\000\000\000\000\000\000\018\017\000\000\000\000\018\017\000\000\000\000\000\000\000\000\000\000\018\017\000\000\000\000\000\000\018\017\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\017\000\000\018\017\018\017\000\000\018\017\018\017\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\017\000\000\018\017\000\000\018\017\018\017\018\021\000\000\018\017\000\000\018\021\000\000\000\000\018\017\018\021\000\000\018\017\018\017\000\000\018\017\000\000\018\017\018\017\000\000\000\000\018\021\018\021\018\021\000\000\018\021\018\021\018\021\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\021\000\000\000\000\000\000\000\000\000\000\000\000\018\021\018\021\005*\000\000\000\000\018\021\000\000\000\000\000\000\000\000\000\000\018\021\000\000\000\000\018\021\000\000\000\000\000\000\000\000\000\000\018\021\018\021\018\021\000\000\000\000\000\000\000\000\000\000\000\000\018\021\000\000\018\021\018\021\000\000\000\000\000\000\000\000\000\000\018\021\000\000\000\000\018\021\000\000\000\000\000\000\000\000\000\000\018\021\000\000\000\000\000\000\018\021\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\021\000\000\018\021\018\021\000\000\018\021\018\021\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\021\000\000\018\021\000\000\018\021\018\021\018\025\000\000\018\021\000\000\018\025\000\000\000\000\018\021\018\025\000\000\018\021\004F\000\000\018\021\000\000\018\021\018\021\000\000\000\000\018\025\018\025\018\025\000\000\018\025\018\025\018\025\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\025\000\000\000\000\000\000\000\000\000\000\000\000\018\025\018\025\005F\000\000\000\000\018\025\000\000\000\000\000\000\000\000\000\000\018\025\000\000\000\000\018\025\000\000\000\000\000\000\000\000\000\000\018\025\018\025\018\025\000\000\000\000\000\000\000\000\000\000\000\000\018\025\000\000\018\025\018\025\000\000\000\000\000\000\000\000\000\000\018\025\000\000\000\000\018\025\000\000\000\000\000\000\000\000\000\000\018\025\000\000\000\000\000\000\018\025\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\025\000\000\018\025\018\025\000\000\018\025\018\025\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\025\000\000\018\025\000\000\018\025\018\025\018\029\000\000\018\025\000\000\018\029\000\000\000\000\018\025\018\029\000\000\018\025\018\025\000\000\018\025\000\000\018\025\018\025\000\000\000\000\018\029\018\029\018\029\000\000\018\029\018\029\018\029\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\029\000\000\000\000\000\000\000\000\000\000\000\000\018\029\018\029\004>\000\000\000\000\018\029\000\000\000\000\000\000\000\000\000\000\018\029\000\000\000\000\018\029\000\000\000\000\000\000\000\000\000\000\018\029\018\029\018\029\000\000\000\000\000\000\000\000\000\000\000\000\018\029\000\000\018\029\018\029\000\000\000\000\000\000\000\000\000\000\018\029\000\000\000\000\018\029\000\000\000\000\000\000\000\000\000\000\018\029\000\000\000\000\000\000\018\029\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\029\000\000\018\029\018\029\000\000\018\029\018\029\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\029\000\000\018\029\000\000\018\029\018\029\018!\000\000\018\029\000\000\018!\000\000\000\000\018\029\018!\000\000\018\029\004F\000\000\018\029\000\000\018\029\018\029\000\000\000\000\018!\018!\018!\000\000\018!\018!\018!\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018!\000\000\000\000\000\000\000\000\000\000\000\000\018!\018!\004Z\000\000\000\000\018!\000\000\000\000\000\000\000\000\000\000\018!\000\000\000\000\018!\000\000\000\000\000\000\000\000\000\000\018!\018!\018!\000\000\000\000\000\000\000\000\000\000\000\000\018!\000\000\018!\018!\000\000\000\000\000\000\000\000\000\000\018!\000\000\000\000\018!\000\000\000\000\000\000\000\000\000\000\018!\000\000\000\000\000\000\018!\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018!\000\000\018!\018!\000\000\018!\018!\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018!\000\000\018!\000\000\018!\018!\018%\000\000\018!\000\000\018%\000\000\000\000\018!\018%\000\000\018!\018!\000\000\018!\000\000\018!\018!\000\000\000\000\018%\018%\018%\000\000\018%\018%\018%\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018%\000\000\000\000\000\000\000\000\000\000\000\000\018%\018%\005*\000\000\000\000\018%\000\000\000\000\000\000\000\000\000\000\018%\000\000\000\000\018%\000\000\000\000\000\000\000\000\000\000\018%\018%\018%\000\000\000\000\000\000\000\000\000\000\000\000\018%\000\000\018%\018%\000\000\000\000\000\000\000\000\000\000\018%\000\000\000\000\018%\000\000\000\000\000\000\000\000\000\000\018%\000\000\000\000\000\000\018%\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018%\000\000\018%\018%\000\000\018%\018%\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018%\000\000\018%\000\000\018%\018%\018)\000\000\018%\000\000\018)\000\000\000\000\018%\018)\000\000\018%\004F\000\000\018%\000\000\018%\018%\000\000\000\000\018)\018)\018)\000\000\018)\018)\018)\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018)\000\000\000\000\000\000\000\000\000\000\000\000\018)\018)\005F\000\000\000\000\018)\000\000\000\000\000\000\000\000\000\000\018)\000\000\000\000\018)\000\000\000\000\000\000\000\000\000\000\018)\018)\018)\000\000\000\000\000\000\000\000\000\000\000\000\018)\000\000\018)\018)\000\000\000\000\000\000\000\000\000\000\018)\000\000\000\000\018)\000\000\000\000\000\000\000\000\000\000\018)\000\000\000\000\000\000\018)\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018)\000\000\018)\018)\000\000\018)\018)\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018)\000\000\018)\000\000\018)\018)\018\221\000\000\018)\000\000\018\221\000\000\000\000\018)\018\221\000\000\018)\018)\000\000\018)\000\000\018)\018)\000\000\000\000\018\221\018\221\018\221\000\000\018\221\018\221\018\221\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\221\000\000\000\000\000\000\000\000\000\000\000\000\018\221\018\221\004>\000\000\000\000\018\221\000\000\000\000\000\000\000\000\000\000\018\221\000\000\000\000\018\221\000\000\000\000\000\000\000\000\000\000\018\221\018\221\018\221\000\000\000\000\000\000\000\000\000\000\000\000\018\221\000\000\018\221\018\221\000\000\000\000\000\000\000\000\000\000\018\221\000\000\000\000\018\221\000\000\000\000\000\000\000\000\000\000\018\221\000\000\000\000\000\000\018\221\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\221\000\000\018\221\018\221\000\000\018\221\018\221\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\221\000\000\018\221\000\000\018\221\018\221\018\225\000\000\018\221\000\000\018\225\000\000\000\000\018\221\018\225\000\000\018\221\004F\000\000\018\221\000\000\018\221\018\221\000\000\000\000\018\225\018\225\018\225\000\000\018\225\018\225\018\225\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\225\000\000\000\000\000\000\000\000\000\000\000\000\018\225\018\225\004Z\000\000\000\000\018\225\000\000\000\000\000\000\000\000\000\000\018\225\000\000\000\000\018\225\000\000\000\000\000\000\000\000\000\000\018\225\018\225\018\225\000\000\000\000\000\000\000\000\000\000\000\000\018\225\000\000\018\225\018\225\000\000\000\000\000\000\000\000\000\000\018\225\000\000\000\000\018\225\000\000\000\000\000\000\000\000\000\000\018\225\000\000\000\000\000\000\018\225\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\225\000\000\018\225\018\225\000\000\018\225\018\225\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\225\000\000\018\225\000\000\018\225\018\225\018\229\000\000\018\225\000\000\018\229\000\000\000\000\018\225\018\229\000\000\018\225\018\225\000\000\018\225\000\000\018\225\018\225\000\000\000\000\018\229\018\229\018\229\000\000\018\229\018\229\018\229\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\229\000\000\000\000\000\000\000\000\000\000\000\000\018\229\018\229\005*\000\000\000\000\018\229\000\000\000\000\000\000\000\000\000\000\018\229\000\000\000\000\018\229\000\000\000\000\000\000\000\000\000\000\018\229\018\229\018\229\000\000\000\000\000\000\000\000\000\000\000\000\018\229\000\000\018\229\018\229\000\000\000\000\000\000\000\000\000\000\018\229\000\000\000\000\018\229\000\000\000\000\000\000\000\000\000\000\018\229\000\000\000\000\000\000\018\229\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\229\000\000\018\229\018\229\000\000\018\229\018\229\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\229\000\000\018\229\000\000\018\229\018\229\018\233\000\000\018\229\000\000\018\233\000\000\000\000\018\229\018\233\000\000\018\229\004F\000\000\018\229\000\000\018\229\018\229\000\000\000\000\018\233\018\233\018\233\000\000\018\233\018\233\018\233\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\233\000\000\000\000\000\000\000\000\000\000\000\000\018\233\018\233\005F\000\000\000\000\018\233\000\000\000\000\000\000\000\000\000\000\018\233\000\000\000\000\018\233\000\000\000\000\000\000\000\000\000\000\018\233\018\233\018\233\000\000\000\000\000\000\000\000\000\000\000\000\018\233\000\000\018\233\018\233\000\000\000\000\000\000\000\000\000\000\018\233\000\000\000\000\018\233\000\000\000\000\000\000\000\000\000\000\018\233\000\000\000\000\000\000\018\233\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\233\000\000\018\233\018\233\000\000\018\233\018\233\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\233\000\000\018\233\000\000\018\233\018\233\018\237\000\000\018\233\000\000\018\237\000\000\000\000\018\233\018\237\000\000\018\233\018\233\000\000\018\233\000\000\018\233\018\233\000\000\000\000\018\237\018\237\018\237\000\000\018\237\018\237\018\237\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\237\000\000\000\000\000\000\000\000\000\000\000\000\018\237\018\237\004>\000\000\000\000\018\237\000\000\000\000\000\000\000\000\000\000\018\237\000\000\000\000\018\237\000\000\000\000\000\000\000\000\000\000\018\237\018\237\018\237\000\000\000\000\000\000\000\000\000\000\000\000\018\237\000\000\018\237\018\237\000\000\000\000\000\000\000\000\000\000\018\237\000\000\000\000\018\237\000\000\000\000\000\000\000\000\000\000\018\237\000\000\000\000\000\000\018\237\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\237\000\000\018\237\018\237\000\000\018\237\018\237\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\237\000\000\018\237\000\000\018\237\018\237\018\241\000\000\018\237\000\000\018\241\000\000\000\000\018\237\018\241\000\000\018\237\004F\000\000\018\237\000\000\018\237\018\237\000\000\000\000\018\241\018\241\018\241\000\000\018\241\018\241\018\241\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\241\000\000\000\000\000\000\000\000\000\000\000\000\018\241\018\241\004Z\000\000\000\000\018\241\000\000\000\000\000\000\000\000\000\000\018\241\000\000\000\000\018\241\000\000\000\000\000\000\000\000\000\000\018\241\018\241\018\241\000\000\000\000\000\000\000\000\000\000\000\000\018\241\000\000\018\241\018\241\000\000\000\000\000\000\000\000\000\000\018\241\000\000\000\000\018\241\000\000\000\000\000\000\000\000\000\000\018\241\000\000\000\000\000\000\018\241\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\241\000\000\018\241\018\241\000\000\018\241\018\241\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\241\000\000\018\241\000\000\018\241\018\241\018\245\000\000\018\241\000\000\018\245\000\000\000\000\018\241\018\245\000\000\018\241\018\241\000\000\018\241\000\000\018\241\018\241\000\000\000\000\018\245\018\245\018\245\000\000\018\245\018\245\018\245\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\245\000\000\000\000\000\000\000\000\000\000\000\000\018\245\018\245\005*\000\000\000\000\018\245\000\000\000\000\000\000\000\000\000\000\018\245\000\000\000\000\018\245\000\000\000\000\000\000\000\000\000\000\018\245\018\245\018\245\000\000\000\000\000\000\000\000\000\000\000\000\018\245\000\000\018\245\018\245\000\000\000\000\000\000\000\000\000\000\018\245\000\000\000\000\018\245\000\000\000\000\000\000\000\000\000\000\018\245\000\000\000\000\000\000\018\245\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\245\000\000\018\245\018\245\000\000\018\245\018\245\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\245\000\000\018\245\000\000\018\245\018\245\018\249\000\000\018\245\000\000\018\249\000\000\000\000\018\245\018\249\000\000\018\245\004F\000\000\018\245\000\000\018\245\018\245\000\000\000\000\018\249\018\249\018\249\000\000\018\249\018\249\018\249\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\249\000\000\000\000\000\000\000\000\000\000\000\000\018\249\018\249\005F\000\000\000\000\018\249\000\000\000\000\000\000\000\000\000\000\018\249\000\000\000\000\018\249\000\000\000\000\000\000\000\000\000\000\018\249\018\249\018\249\000\000\000\000\000\000\000\000\000\000\000\000\018\249\000\000\018\249\018\249\000\000\000\000\000\000\000\000\000\000\018\249\000\000\000\000\018\249\000\000\000\000\000\000\000\000\000\000\018\249\000\000\000\000\000\000\018\249\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\249\000\000\018\249\018\249\000\000\018\249\018\249\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\249\000\000\018\249\000\000\018\249\018\249\018\189\000\000\018\249\000\000\018\189\000\000\000\000\018\249\018\189\000\000\018\249\018\249\000\000\018\249\000\000\018\249\018\249\000\000\000\000\018\189\018\189\018\189\000\000\018\189\018\189\018\189\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\189\000\000\000\000\000\000\000\000\000\000\000\000\018\189\018\189\004>\000\000\000\000\018\189\000\000\000\000\000\000\000\000\000\000\018\189\000\000\000\000\018\189\000\000\000\000\000\000\000\000\000\000\018\189\018\189\018\189\000\000\000\000\000\000\000\000\000\000\000\000\018\189\000\000\018\189\018\189\000\000\000\000\000\000\000\000\000\000\018\189\000\000\000\000\018\189\000\000\000\000\000\000\000\000\000\000\018\189\000\000\000\000\000\000\018\189\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\189\000\000\018\189\018\189\000\000\018\189\018\189\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\189\000\000\018\189\000\000\018\189\018\189\018\193\000\000\018\189\000\000\018\193\000\000\000\000\018\189\018\193\000\000\018\189\004F\000\000\018\189\000\000\018\189\018\189\000\000\000\000\018\193\018\193\018\193\000\000\018\193\018\193\018\193\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\193\000\000\000\000\000\000\000\000\000\000\000\000\018\193\018\193\004Z\000\000\000\000\018\193\000\000\000\000\000\000\000\000\000\000\018\193\000\000\000\000\018\193\000\000\000\000\000\000\000\000\000\000\018\193\018\193\018\193\000\000\000\000\000\000\000\000\000\000\000\000\018\193\000\000\018\193\018\193\000\000\000\000\000\000\000\000\000\000\018\193\000\000\000\000\018\193\000\000\000\000\000\000\000\000\000\000\018\193\000\000\000\000\000\000\018\193\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\193\000\000\018\193\018\193\000\000\018\193\018\193\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\193\000\000\018\193\000\000\018\193\018\193\018\197\000\000\018\193\000\000\018\197\000\000\000\000\018\193\018\197\000\000\018\193\018\193\000\000\018\193\000\000\018\193\018\193\000\000\000\000\018\197\018\197\018\197\000\000\018\197\018\197\018\197\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\197\000\000\000\000\000\000\000\000\000\000\000\000\018\197\018\197\005*\000\000\000\000\018\197\000\000\000\000\000\000\000\000\000\000\018\197\000\000\000\000\018\197\000\000\000\000\000\000\000\000\000\000\018\197\018\197\018\197\000\000\000\000\000\000\000\000\000\000\000\000\018\197\000\000\018\197\018\197\000\000\000\000\000\000\000\000\000\000\018\197\000\000\000\000\018\197\000\000\000\000\000\000\000\000\000\000\018\197\000\000\000\000\000\000\018\197\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\197\000\000\018\197\018\197\000\000\018\197\018\197\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\197\000\000\018\197\000\000\018\197\018\197\018\201\000\000\018\197\000\000\018\201\000\000\000\000\018\197\018\201\000\000\018\197\004F\000\000\018\197\000\000\018\197\018\197\000\000\000\000\018\201\018\201\018\201\000\000\018\201\018\201\018\201\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\201\000\000\000\000\000\000\000\000\000\000\000\000\018\201\018\201\005F\000\000\000\000\018\201\000\000\000\000\000\000\000\000\000\000\018\201\000\000\000\000\018\201\000\000\000\000\000\000\000\000\000\000\018\201\018\201\018\201\000\000\000\000\000\000\000\000\000\000\000\000\018\201\000\000\018\201\018\201\000\000\000\000\000\000\000\000\000\000\018\201\000\000\000\000\018\201\000\000\000\000\000\000\000\000\000\000\018\201\000\000\000\000\000\000\018\201\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\201\000\000\018\201\018\201\000\000\018\201\018\201\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\201\000\000\018\201\000\000\018\201\018\201\018\205\000\000\018\201\000\000\018\205\000\000\000\000\018\201\018\205\000\000\018\201\018\201\000\000\018\201\000\000\018\201\018\201\000\000\000\000\018\205\018\205\018\205\000\000\018\205\018\205\018\205\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\205\000\000\000\000\000\000\000\000\000\000\000\000\018\205\018\205\004>\000\000\000\000\018\205\000\000\000\000\000\000\000\000\000\000\018\205\000\000\000\000\018\205\000\000\000\000\000\000\000\000\000\000\018\205\018\205\018\205\000\000\000\000\000\000\000\000\000\000\000\000\018\205\000\000\018\205\018\205\000\000\000\000\000\000\000\000\000\000\018\205\000\000\000\000\018\205\000\000\000\000\000\000\000\000\000\000\018\205\000\000\000\000\000\000\018\205\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\205\000\000\018\205\018\205\000\000\018\205\018\205\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\205\000\000\018\205\000\000\018\205\018\205\018\209\000\000\018\205\000\000\018\209\000\000\000\000\018\205\018\209\000\000\018\205\004F\000\000\018\205\000\000\018\205\018\205\000\000\000\000\018\209\018\209\018\209\000\000\018\209\018\209\018\209\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\209\000\000\000\000\000\000\000\000\000\000\000\000\018\209\018\209\004Z\000\000\000\000\018\209\000\000\000\000\000\000\000\000\000\000\018\209\000\000\000\000\018\209\000\000\000\000\000\000\000\000\000\000\018\209\018\209\018\209\000\000\000\000\000\000\000\000\000\000\000\000\018\209\000\000\018\209\018\209\000\000\000\000\000\000\000\000\000\000\018\209\000\000\000\000\018\209\000\000\000\000\000\000\000\000\000\000\018\209\000\000\000\000\000\000\018\209\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\209\000\000\018\209\018\209\000\000\018\209\018\209\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\209\000\000\018\209\000\000\018\209\018\209\018\213\000\000\018\209\000\000\018\213\000\000\000\000\018\209\018\213\000\000\018\209\018\209\000\000\018\209\000\000\018\209\018\209\000\000\000\000\018\213\018\213\018\213\000\000\018\213\018\213\018\213\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\213\000\000\000\000\000\000\000\000\000\000\000\000\018\213\018\213\005*\000\000\000\000\018\213\000\000\000\000\000\000\000\000\000\000\018\213\000\000\000\000\018\213\000\000\000\000\000\000\000\000\000\000\018\213\018\213\018\213\000\000\000\000\000\000\000\000\000\000\000\000\018\213\000\000\018\213\018\213\000\000\000\000\000\000\000\000\000\000\018\213\000\000\000\000\018\213\000\000\000\000\000\000\000\000\000\000\018\213\000\000\000\000\000\000\018\213\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\213\000\000\018\213\018\213\000\000\018\213\018\213\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\213\000\000\018\213\000\000\018\213\018\213\018\217\000\000\018\213\000\000\018\217\000\000\000\000\018\213\018\217\000\000\018\213\004F\000\000\018\213\000\000\018\213\018\213\000\000\000\000\018\217\018\217\018\217\000\000\018\217\018\217\018\217\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\217\000\000\000\000\000\000\000\000\000\000\000\000\018\217\018\217\005F\000\000\000\000\018\217\000\000\000\000\000\000\000\000\000\000\018\217\000\000\000\000\018\217\000\000\000\000\000\000\000\000\000\000\018\217\018\217\018\217\000\000\000\000\000\000\000\000\000\000\000\000\018\217\000\000\018\217\018\217\000\000\000\000\000\000\000\000\000\000\018\217\000\000\000\000\018\217\000\000\000\000\000\000\000\000\000\000\018\217\000\000\b\130\003\154\018\217\000\000\003j\000\000\r2\000\000\000\000\bf\018\217\000\000\018\217\018\217\000\000\018\217\018\217\000\000\000\000\000\000\001\234\000\000\r~\000\000\000\000\000\000\000\000\b\190\018\217\000\000\018\217\014*\018\217\018\217\000\000\000\000\018\217\000\000\000\000\000\000\000\000\018\217\000\000\b\210\018\217\018\217\014\186\018\217\001\190\018\217\018\217\000\000\000\000\000\000\003\138\000\000\000\000\n\n\n\014\000\000\000\000\015\161\n\018\000\000\n\026\000\000\015J\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\221\000\000\nN\nb\nf\000\000\nj\nr\n~\000\000\000\000\000\000\000\000\000\000\000\000\001\202\tA\tA\n\134\n\138\tA\000\000\tA\021\210\000\000\tA\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\tA\tA\000\000\000\000\015\161\000\000\000\000\tA\015\161\015\161\000\000\n\142\000\000\001\206\000\000\015\161\000\000\007\166\000\000\000\000\000\000\015\161\006\221\tA\000\000\000\000\tA\001\210\tA\000\000\000\000\000\000\tA\000\000\tA\tA\tA\tA\tA\000\000\000\000\000\000\tA\000\000\tA\tA\tA\000\000\000\000\tA\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\tA\tA\tA\000\000\tA\tA\tA\000\000\001\202\tE\tE\000\000\000\000\tE\000\000\tE\tA\tA\tE\000\000\tA\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\tE\tE\000\000\000\000\000\000\000\000\000\000\tE\000\000\000\000\000\000\000\000\000\000\001\206\000\000\000\000\tA\000\000\000\000\000\000\000\000\000\000\tA\tE\000\000\000\000\tE\001\210\tE\000\000\000\000\000\000\tE\000\000\tE\tE\tE\tE\tE\000\000\000\000\000\000\tE\000\000\tE\tE\tE\000\000\000\000\tE\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\tE\tE\tE\000\000\tE\tE\tE\000\000\001\202\t=\t=\000\000\000\000\t=\000\000\t=\tE\tE\t=\000\000\tE\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t=\t=\000\000\000\000\000\000\000\000\000\000\t=\000\000\000\000\000\000\000\000\000\000\001\206\000\000\000\000\tE\000\000\000\000\000\000\000\000\000\000\tE\t=\000\000\000\000\t=\001\210\t=\000\000\000\000\000\000\t=\000\000\t=\t=\t=\t=\t=\000\000\000\000\000\000\t=\000\000\t=\t=\t=\000\000\000\000\t=\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t=\t=\t=\000\000\t=\t=\t=\000\000\007\025\007\025\007\025\000\000\000\000\007\025\000\000\007\025\t=\t=\007\025\000\000\t=\000\000\000\000\000\000\000\000\007\025\000\000\000\000\000\000\007\025\000\000\000\000\000\000\000\000\000\000\000\000\007\025$v\000\000\000\000\000\000$\142\007\025\000\000\000\000\t=\000\000\000\000\000\000\000\000\000\000\t=\007\025\000\000\000\000\007\025\007\025\007\025\000\000\000\000\000\000\000\000\000\000\007\025\000\000\000\000\007\025\007\025\000\000\000\000\000\242\007\025\000\000\007\025\007\025\007\025\000\000\000\000\007\025\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007\025\007\025\007\025\000\000\007\025\007\025\007\025\0071\000\000\b\130\003\154\0071\000\000\003j\000\000\r2\007\025\007\025\bf\000\000\000\000\000\000\0071\000\000\000\000\000\000\0071\000\000\0071\001\234\000\000\r~\000\000\000\000\000\000\000\000\b\190\000\000\000\000\000\000\014*\0071\000\000\000\000\000\000\007\025\000\000\000\000\0071\000\000\004U\007\025\b\210\000\000\000\000\014\186\000\000\001\190\000\000\0071\000\000\000\000\0071\003\138\000\000\000\000\n\n\n\014\0071\tN\000\000\n\018\000\000\n\026\000\000\015J\000\000\0071\nJ\bq\000\000\000\000\000\000\bq\000\000\000\000\0071\bq\000\000\nN\nb\nf\000\000\nj\nr\n~\000\000\000\000\bq\000\000\bq\000\000\bq\000\000\bq\n\134\n\138\0071\000\000\0071\004U\000\000\0071\0071\000\000\000\000\000\000\bq\000\000\000\000\000\000\000\000\000\000\000\000\bq\000\000\bq\000\000\000\000\004U\000\000\bq\004U\0071\n\142\bq\000\000\000\000\bq\000\000\007\166\000\000\004U\000\000\bq\bq\bq\000\000\000\000\000\000\000\000\000\000\000\000\bq\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\bq\bq\000\000\bq\000\000\000\000\000\000\000\000\000\000\bq\000\000\b\130\003\154\000\000\000\000\003j\000\000\r2\000\000\000\000\bf\bq\000\000\bq\bq\000\000\bq\bq\000\000\000\000\000\000\001\234\000\000\r~\000\000\017\"\000\000\000\000\b\190\000\000\000\000\000\000\014*\bq\000\000\000\000\bq\bq\000\000\n\193\000\000\000\000\000\000\n\193\b\210\bq\bq\014\186\000\000\001\190\bq\000\000\000\000\000\000\n\193\003\138\000\000\000\000\n\n\n\014\n\193\000\000\000\000\n\018\000\000\n\026\000\000\015J\000\000\000\000\nJ\000\000\000\000\n\193\000\000\000\000\000\000\000\000\000\000\000\000\n\193\nN\nb\nf\000\000\nj\nr\n~\000\000\000\000\000\000\000\000\000\000\000\000\n\193\000\000\000\000\n\134\n\138\000\000\n\193\000\000\021\210\000\000\000\000\000\000\000\000\000\000\000\000\n\193\016~\000\000\000\000\000\000\n\193\001\202\001\226\001\230\n\193\000\000\000\000\003\182\000\000\000\000\022\246\000\000\n\142\000\000\000\000\n\193\000\000\000\000\007\166\n\193\004F\n\193\001\234\002&\001\254\n\193\000\000\n\193\000\000\000\000\000\000\n\193\000\000\002\n\n\193\001\206\000\000\000\000\000\000\000\000\000\000\n\193\000\000\016\226\000\000\000\000\000\000\000\000\002.\001\210\002Z\n\193\000\000\000\000\003z\n\193\003\138\003\186\003\198\002\130\000\000\n\193\n\193\000\242\003\210\000\000\000\000\000\000\000\000\000\000\n\193\000\000\004\177\000\000\000\000\000\000\004\177\000\000\000\000\n\193\004\177\000\000\000\000\000\000\000\000\000\000\003\214\000\000\003\230\000\000\000\000\004\177\000\000\004\177\000\000\004\177\000\000\004\177\000\000\000\000\n\193\000\000\n\193\000\000\000\000\n\193\n\193\000\000\000\000\000\000\004\177\000\000\000\000\000\000\000\000\000\000\000\000\004\177\000\000\004\177\000\000\000\000\000\000\000\000\007\221\000\000\n\193\000\000\004\177\000\000\000\000\004\177\000\000\007\166\002\130\004F\000\000\004\177\004\177\004\177\000\000\000\000\000\000\000\000\000\000\000\000\004\177\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\177\000\000\000\000\004\177\000\000\000\000\000\000\000\000\000\000\004\177\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\177\000\000\004\177\004\177\000\000\004\177\004\177\000\000\000\000\000\000\000\000\000\000\t-\000\000\007\221\000\000\t-\000\000\000\000\000\000\000\000\000\000\004\177\004\177\t-\000\000\004\177\t-\t-\t-\000\000\t-\t-\t-\004\177\004\177\000\000\000\000\000\000\004\177\000\000\000\000\000\000\000\000\000\000\000\000\t-\000\000\000\000\000\000\000\000\000\000\000\000\t-\000\000\t-\000\000\000\000\000\000\000\000\000\000\000\000\002\134\000\000\t-\000\000\000\000\t-\000\000\000\000\000\000\000\000\000\000\t-\t-\t-\000\000\000\000\000\000\000\000\000\000\000\000\t-\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t-\t-\000\000\t-\000\000\000\000\000\000\000\000\000\000\t-\025\246\b\130\003\154\000\000\000\000\003j\000\000\b\134\000\000\000\000\bf\t-\000\000\t-\t-\000\000\t-\t-\r\213\000\000\000\000\001\234\000\000\000\000\000\000\000\000\000\000\000\000\b\190\t-\000\000\000\000\000\000\000\000\026\022\000\000\000\000\t-\000\000\000\000\000\000\000\000\t-\000\000\b\210\000\000\000\000\b\230\0266\001\190\t-\000\000\000\000\000\000\000\000\003\138\000\000\000\000\n\n\n\014\000\000\000\000\000\000\n\018\000\000\n\026\n>\nn\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\nN\nb\nf\000\000\nj\nr\n~\000\000\000\000\002a\002a\000\000\000\000\002a\000\000\002a\n\134\n\138\002a\000\000\011\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002a\000\000\000\000\000\000\000\000\000\000\000\000\002a\000\n\000\000\r\213\000\000\000\000\000\000\000\000\000\000\n\142\000\000\r\213\000\000\014\018\000\000\007\166\002a\000\000\000\000\002a\000\000\002a\000\000\000\000\000\000\000\000\000\000\002a\000\000\000\000\002a\002a\000\000\000\000\002a\002a\000\000\002a\002a\002a\000\000\000\000\002a\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002a\002a\002a\000\000\002a\002a\002a\000\000\001\202\b\130\003\154\000\000\000\000\003j\000\000\b\134\002a\002a\bf\000\000\002a\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\234\000\000\000\000\000\000\000\000\000\000\000\000\b\190\000\000\000\000\000\000\000\000\000\000\001\206\000\000\000\000\002a\000\000\000\000\000\000\002a\000\000\002a\b\210\000\000\000\000\0146\001\210\001\190\000\000\000\000\000\000\000\000\000\000\003\138\000\000\000\000\n\n\n\014\000\000\000\000\000\000\n\018\000\000\n\026\n>\nn\000\000\004\177\nJ\000\000\000\000\004\177\000\000\000\000\000\000\004\177\000\000\000\000\000\000\nN\nb\nf\000\000\nj\nr\n~\004\177\000\000\004\177\000\000\004\177\000\000\004\177\000\000\000\000\n\134\n\138\000\000\000\000\011\002\001\226\001\230\000\000\000\000\000\000\004\177\000\000\000\000\000\000\000\000\000\000\000\000\004\177\000\000\004\177\000\000\000\000\000\000\000\000\007\225\001\234\002&\000\000\004\177\n\142\000\000\004\177\000\000\000\000\000\000\007\166\000\000\004\177\004\177\004\177\000\000\000\000\000\000\000\000\000\000\000\000\004\177\000\000\000\000\000\000\000\000\003~\000\000(j\000\000\004\177\000\000\003z\004\177\003\138\003\186\003\198\000\000\000\000\004\177\000\000\000\000\003\210\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\177\000\000\004\177\004\177\000\000\004\177\004\177\000\000\be\000\000\000\000\000\000\be\003\214\007\225\003\230\be\000\000\000\000(\150\000\000\000\000\004\177\004\177\000\000\000\000\004\177\be\000\000\be\000\000\be\000\000\be\004\177\004\177\000\000\000\000\000\000\004\177(\130\000\000\000\000\000\000\000\000\000\000\be\000\000\000\000\001\226\001\230\000\000\000\000\be\000\000\be\000\000\000\000\000\000\000\000\017z\000\000\000\000\000\000\be\000\000\000\000\be\000\000\001\234\002&\001\254\000\000\be\be\000\242\000\000\000\000\000\000\000\000\002\n\000\000\be\000\000!\214\000\000\000\000\000\000\000\000\000\000\000\000\be\be\000\000\be\003~\000\000%\"\000\000\"N\be\003z\000\000\003\138\003\186\003\198\000\000\000\000\000\000\000\000\025\206%2\be\000\000\be\be\000\000\be\be\025j\000\000\000\000\000\000\000\000\019\006\000\000\000\000\000\000\023\142\r\173\000\000\r\173\r\173\003\214\be\003\230\000\000\be\be\019r\019\210\019\234\019\138\000\000\020\002\000\000\be\be\000\000\001\157\000\000\be\000\000\000\000\019\162\000\000\020\026\0202\000\000\000\000\000\000\000\000\000\000\019\006\000\000\000\000\020J\000\000\029\142\000\000\001\157\000\000\000\000\000\000\000\000\000\242\000\000\000\000\019r\019\210\019\234\019\138\000\000\020\002\000\000\000\000\019\030\019\186\020b\020z\020\218\000\000\000\000\019\162\000\000\020\026\0202\000\000\000\000\000\000\000\000\000\000\000\000\028\146\020\242\020J\000\000\000\000\000\000\025\230\000\000\000\000\000\000\000\000\000\242\021\n\000\000\000\000\000\000\000\000\025n\000\000\000\000\000\000\000\000\019\030\019\186\020b\020z\020\218\000\000\000\000\021j\r\173\000\000\021\162\020\146\000\000\000\000\000\000\000\000\r\173\021\"\020\242\000\000\000\000\020\170\020\194\001\157\000\000\000\000\000\000\021:\021R\021\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\165\000\000\000\000\021j\001\157\029\146\021\162\020\146\029\158\000\000\000\000\000\000\001\157\021\"\019\006\000\000\000\000\020\170\020\194\000\000\000\000\001\165\001\157\021:\021R\000\000\000\000\000\000\000\000\019r\019\210\019\234\019\138\000\000\020\002\000\000\000\000\000\000\000\000\001\149\000\000\000\000\000\000\000\000\019\162\000\000\020\026\0202\000\000\000\000\000\000\000\000\000\000\019\006\000\000\000\000\020J\000\000\000\000\000\000\001\149\000\000\000\000\000\000\000\000\000\242\000\000\000\000\019r\019\210\019\234\019\138\000\000\020\002\000\000\000\000\019\030\019\186\020b\020z\020\218\000\000\000\000\019\162\000\000\020\026\0202\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\242\020J\000\000\000\000\000\000\001\165\000\000\000\000\000\000\000\000\000\242\021\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\030\019\186\020b\020z\020\218\000\000\000\000\021j\001\165\000\000\021\162\020\146\000\000\000\000\000\000\000\000\001\165\021\"\020\242\000\000\000\000\020\170\020\194\001\149\000\000\000\000\001\165\021:\021R\021\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\189\000\000\000\000\021j\001\149\000\000\021\162\020\146\000\000\000\000\000\000\000\000\001\149\021\"\019\006\000\000\000\000\020\170\020\194\000\000\000\000\001\189\001\149\021:\021R\000\000\000\000\000\000\000\000\019r\019\210\019\234\019\138\000\000\020\002\000\000\000\000\000\000\000\000\001\181\000\000\000\000\000\000\000\000\019\162\000\000\020\026\0202\000\000\000\000\000\000\000\000\000\000\019\006\000\000\000\000\020J\000\000\000\000\000\000\001\181\000\000\000\000\000\000\000\000\000\242\000\000\000\000\019r\019\210\019\234\019\138\000\000\020\002\000\000\000\000\019\030\019\186\020b\020z\020\218\000\000\000\000\019\162\000\000\020\026\0202\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\242\020J\000\000\000\000\000\000\001\189\000\000\000\000\000\000\000\000\000\242\021\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\030\019\186\020b\020z\020\218\000\000\000\000\021j\001\189\000\000\021\162\020\146\000\000\000\000\000\000\000\000\001\189\021\"\020\242\000\000\000\000\020\170\020\194\001\181\000\000\000\000\001\189\021:\021R\021\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\173\000\000\000\000\021j\001\181\000\000\021\162\020\146\000\000\000\000\000\000\000\000\001\181\021\"\019\006\000\000\000\000\020\170\020\194\000\000\000\000\001\173\001\181\021:\021R\000\000\000\000\000\000\000\000\019r\019\210\019\234\019\138\000\000\020\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\162\000\000\020\026\0202\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020J\000\000\000\000\000\000\000\000\001\202\002\018\001\230\000\000\000\242\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\030\019\186\020b\020z\020\218\000\000\001\234-\246\001\254\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\n\020\242\001\206\000\000\000\000\000\000\001\173\000\000\002j\000\000\000\000\000\000\021\n\000\000\000\000\002\014\001\210\002Z\000\000\000\000\000\000\003z\000\000\003\138\003\186\003\198\000\000\000\000\000\000\021j\001\173\003\210\021\162\020\146\000\000\011\225\011\225\011\225\001\173\021\"\011\225\000\000\011\225\020\170\020\194\011\225\000\000\000\000\001\173\021:\021R\000\000\031n\003\214\000\000\003\230\011\225\000\000\000\000\000\000\000\000\000\000\000\000\011\225\000\000\000\000\000\000\000\000\000\000\011\225\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\011\225\000\000\000\000\011\225\011\225\011\225\000\000\000\000\000\000\000\000\000\000\011\225\000\000\000\000\011\225\011\225\000\000\000\000\000\000\011\225\000\000\011\225\011\225\011\225\000\000\000\000\011\225\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\011\225\011\225\011\225\000\000\011\225\011\225\011\225\000\000\000\000\b\130\003\154\000\000\000\000\003j\000\000\b\134\011\225\011\225\bf\000\000\000\000\000\000\000\000\000\000\n\254\000\000\n\022\000\000\000\000\001\234\000\000\000\000\000\000\000\000\000\000\000\000\b\190\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\011\225\000\000\000\000\000\000\000\000\000\000\011\225\b\210\000\000\000\000\b\230\000\000\001\190\000\000\000\000\000\000\000\000\000\000\003\138\000\000\000\000\n\n\n\014\000\000\000\000\000\000\n\018\000\000\n\026\n>\nn\000\000\012\209\nJ\000\000\000\000\012\209\000\000\000\000\000\000\012\209\000\000\000\000\000\000\nN\nb\nf\000\000\nj\nr\n~\012\209\000\000\012\209\000\000\012\209\000\000\012\209\000\000\000\000\n\134\n\138\000\000\000\000\011\002\000\000\000\000\000\000\000\000\000\000\012\209\000\000\000\000\000\000\000\000\000\000\000\000\012\209\000\000\012\209\000\000\000\000\000\000\012^\000\000\000\000\011\238\000\000\012\209\n\142\000\000\012\209\000\000\000\000\000\000\007\166\000\000\012\209\012\209\012\209\000\000\001\226\001\230\000\000\000\000\000\000\012\209\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012\209\000\000\000\000\012\209\000\000\000\000\001\234\002&\000\000\012\209\000\000\000\000\020}\000\000\000\000\000\000\020}\000\000\000\000\000\000\020}\012\209\000\000\012\209\012\209\000\000\012\209\012\209\000\000\000\000\000\000\020}\003~\020}(j\020}\000\000\020}\003z\012\209\003\138\003\186\003\198\012\209\000\000\000\000\000\000\012\209\003\210\000\000\020}\000\000\000\000\000\000\000\000\012\209\012\209\020}\005\206\020}\012\209\000\000\000\000\000\000\003\242\000\000\000\000\000\000\020}\000\000\003\214\020}\003\230\000\000\000\000\000\000\007\165\020}\020}\020}\000\000\000\000\000\000\000\000\000\000\000\000\020}\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020}\000\000(\130\020}\000\000\000\000\000\000\000\000\000\000\020}\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020}\000\000\020}\020}\020\129\020}\020}\000\000\020\129\000\000\000\000\000\000\020\129\000\000\003\254\000\000\000\000\000\000\000\000\001\202\001\226\001\230\020}\020\129\000\000\020\129\020}\020\129\000\000\020\129\000\000\000\000\000\000\000\000\020}\020}\000\000\001\226\001\230\020}\001\234\002&\020\129\000\000\000\000\000\000\000\000\000\000\000\000\020\129\000\000\020\129\000\000\001\206\000\000\000\000\003\242\001\234\002&\000\000\020\129\000\000\000\000\020\129\000\000\000\000\004n\001\210\003\226\020\129\020\129\020\129\003z\000\000\003\138\003\186\003\198\000\000\020\129\000\000\000\000\000\000\003\210\003~\000\000\003\226\000\000\020\129\000\000\003z\020\129\003\138\003\186\003\198\000\000\000\000\020\129\000\000\000\000\003\210\000\000\030f\000\000\000\000\003\214\000\000\003\230\000\000\020\129\000\000\020\129\020\129\b\221\020\129\020\129\000\000\b\221\000\000\000\000\000\000\b\221\003\214\003\254\003\230\000\000\000\000\000\000\000\000\030\182\000\000\020\129\b\221\000\000\b\221\020\129\b\221\000\000\b\221\000\000\000\000\000\000\nu\020\129\020\129\000\000\nu\000\000\020\129\000\000\000\000\b\221\000\000\000\000\000\000\000\000\000\000\nu\b\221\000\000\b\221\nu\000\000\nu\000\000\003\242\000\000\000\000\000\000\b\221\000\000\000\000\b\221\000\000\000\000\000\000\nu\000\000\b\221\b\221\b\221\000\000\000\000\nu\000\000\000\000\000\000\b\221\000\000\000\000\000\000\000\000\000\000\000\000\nu\000\000\b\221\nu\000\000\b\221\000\000\000\000\000\000\nu\nu\b\221\001\202\b\130\003\154\000\000\000\000\003j\nu\t\210\000\000\000\000\bf\b\221\000\000\b\221\b\221\nu\b\221\b\221\nu\000\000\000\000\001\234\000\000\000\000\nu\003\254\000\000\000\000\b\190\000\000\000\000\000\000\000\000\b\221\001\206\000\000\nu\b\221\nu\nu\000\000\nu\nu\000\000\b\210\b\221\b\221\021\194\001\210\001\190\b\221\000\000\000\000\000\000\nu\003\138\000\000\000\000\n\n\n\014\000\000\003V\nu\n\018\000\000\n\026\n>\012\246\000\000\000\000\nJ\000\000\000\000\000\000\001\137\nu\000\000\000\000\000\000\000\000\000\000\nN\nb\nf\000\000\nj\nr\n~\019\006\000\000\000\000\000\000\n\145\000\000\000\000\001\137\n\145\n\134\n\138\000\000\000\000\000\000\000\000\019r\019\210\019\234\019\138\000\000\020\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\162\000\000\020\026\0202\000\000\000\000\000\000\000\000\n\142\000\000\000\000\000\000\020J\000\000\007\166\000\000\000\000\000\000\000\000\000\000\000\000\000\242\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\030\019\186\020b\020z\020\218\000\000\000\000\000\000\000\000\000\000\000\000\b\130\003\154\000\000\000\000\003j\n\145\r2\020\242\000\000\bf\000\000\000\000\001\137\000\000\000\000\000\000\000\000\000\000\021\n\000\000\001\234\000\000\r~\000\000\000\000\000\000\000\000\b\190\000\000\000\000\000\000\014*\000\000\000\000\000\000\021j\001\137\000\000\021\162\020\146\000\000$\190\000\000\b\210\001\137\021\"#&\000\000\001\190\020\170\020\194\000\000\000\000\000\000\003\138\021:\021R\n\n\n\014\000\000\000\000\000\000\n\018\000\000\n\026\000\000\015J\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\nN\nb\nf\000\000\nj\nr\n~\000\000\000\000\b\130\003\154\000\000\000\000\003j\000\000\r2\n\134\n\138\bf\000\000\000\000#*\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\234\000\000\r~\000\000\000\000\000\000\000\000\b\190\000\000\000\000\000\000\014*\000\000\000\000%\202\000\000\n\142\000\000\000\000\000\000\000\000\000\000\007\166\b\210\000\000\000\000\014\186\000\000\001\190\000\000\000\000\000\000\000\000\000\000\003\138\000\000\000\000\n\n\n\014\000\000\000\000\000\000\n\018\000\000\n\026\000\000\015J\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\nN\nb\nf\000\000\nj\nr\n~\000\000\000\000\b\130\003\154\000\000\000\000\003j\000\000\r2\n\134\n\138\bf\000\000\000\000\021\210\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\234\000\000\r~\000\000\000\000\000\000\000\000\b\190\000\000\000\000\000\000\014*\000\000\000\000#\198\000\000\n\142\000\000\000\000\000\000\000\000\000\000\007\166\b\210\000\000\000\000\014\186\000\000\001\190\000\000\000\000\000\000\000\000\000\000\003\138\000\000\000\000\n\n\n\014\000\000\000\000\000\000\n\018\000\000\n\026\000\000\015J\000\000\000\000\nJ\000\000\000\000\000\000\001\n\000\000\000\000\000\000\000\000\003v\000\000\nN\nb\nf\000\000\nj\nr\n~\001\014\001\018\001\022\001\026\001\030\000\000\001\"\000\000\000\000\n\134\n\138\000\000\000\000\000\000\021\210\000\000\001&\000\000\001*\001.\000\000\000\000\000\000\000\000\000\000\0012\000\000\000\000\0016\000\000\000\000\000\000\000\000\000\000\000\000\000\000$&\t%\n\142\000\000\000\000\t%\000\000\000\000\007\166\t%\000\000\000\000\001:\001>\001B\001F\001J\000\000\000\000\000\000\t%\000\000\t%\001N\t%\000\000\t%\000\000\000\000\000\000\001R\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t%\000\000\001V\000\000\000\000\000\000\000\000\t%\t%\001Z\000\000\000\000\000\000\000\000\000\000\000\000\002\238\000\000\t%\000\000\000\000\t%\001\150.J\000\000\000\000\000\000\t%\t%\001\154\000\000\001\158\000\000\001\162\001\166\000\000\t%\001\170\000\000\001\174\001\178\000\000\000\000\000\000\000\000\t%\000\000\000\000\t%\000\000\000\000\000\000\000\000\000\000\t%\b\130\003\154\000\000\000\000\003j\000\000\b\162\000\000\000\000\bf\000\000\t%\000\000\t%\t%\000\000\t%\t%\000\000\000\000\001\234\000\000\000\000\000\000\000\000\000\000\000\000\b\190\000\000\t%\000\000\t%\000\000\000\000\t%\000\000\000\000\t%\000\000\000\000\000\000\000\000\000\000\b\210\000\000\000\000\b\230\000\000\001\190\000\000\t%\t%\000\000\000\000\003\138\000\000\000\000\n\n\n\014\000\000\000\000\000\000\n\018\000\000\n\026\n>'v\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\nN\nb\nf\000\000\nj\nr\n~\000\000\000\000\003\150\003\154\000\000\000\000\003j\000\000\016~\n\134\n\138\bf\0071\011\002\000\000\000\000\0071\t\197\000\000\000\000\000\000\000\000\001\234\000\000'~\000\000\bn\0071\000\000\000\000\000\000\0071\000\000\0071\000\000\000\000\000\000\br\n\142\tv\000\000\000\000\000\000\000\000\007\166\000\000\0071\000\000\t\182\000\000\001\190\000\000\000\000\0071\000\000\016\226\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\0071\000\000\000\000\000\000\nJ\000\000\0071\tN\000\242\000\000\000\000\000\000\000\000\000\000\000\000\0071\nb\nf\000\000\r\206\r\222\b\130\003\154\000\000\0071\003j\000\000\b\134\000\000\000\000\bf\n\134\n\138\000\000\000\000\000\000\000\000\000\000\012\002\000\000\000\000\001\234\r\226\000\000\r\230\0071\000\000\0071\b\190\000\000\0071\0071\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\142\r\238\000\000\016\170\b\210\015\250\007\166\b\230\000\000\001\190\000\000\0071\000\000\000\000\000\000\003\138)\026\000\000\n\n\n\014\004F\000\000\000\000\n\018\0071\n\026\n>\nn\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\nN\nb\nf\000\000\nj\nr\n~\000\000\000\000\b\130\003\154\000\000\000\000\003j\000\000\n\174\n\134\n\138\bf\000\000\011\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\234\000\000\000\000\000\000\000\000\000\000\000\000\b\190\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\142\000\000\012R\000\000\000\000\000\000\007\166\b\210\000\000\000\000\b\230\000\000\001\190\000\000\000\000\000\000\000\000\000\000\003\138\000\000\000\000\n\n\n\014\000\000\000\000\000\000\n\018\000\000\n\026\n>\n\202\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\nN\nb\nf\000\000\nj\nr\n~\000\000\000\000\b\130\003\154\000\000\000\000\003j\000\000\0112\n\134\n\138\bf\000\000\011\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\234\000\000\012\030\000\000\000\000\000\000\000\000\b\190\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\142\000\000\000\000\000\000\000\000\000\000\007\166\b\210\000\000\000\000\b\230\000\000\001\190\000\000\000\000\000\000\000\000\000\000\003\138\000\000\000\000\n\n\n\014\000\000\000\000\000\000\n\018\000\000\n\026\n>\011N\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\nN\nb\nf\000\000\nj\nr\n~\000\000\000\000\b\130\003\154\000\000\000\000\003j\000\000\011\162\n\134\n\138\bf\000\000\011\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\234\000\000\011b\000\000\000\000\000\000\000\000\b\190\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\142\000\000\000\000\000\000\000\000\000\000\007\166\b\210\000\000\000\000\b\230\000\000\001\190\000\000\000\000\000\000\000\000\000\000\003\138\000\000\000\000\n\n\n\014\000\000\000\000\000\000\n\018\000\000\n\026\n>\011\190\000\000\020y\nJ\000\000\000\000\020y\000\000\000\000\000\000\020y\000\000\000\000\000\000\nN\nb\nf\000\000\nj\nr\n~\020y\000\000\020y\000\000\020y\000\000\020y\000\000\000\000\n\134\n\138\000\000\000\000\011\002\000\000\000\000\000\000\000\000\000\000\020y\000\000\000\000\000\000\000\000\011\198\000\000\020y\000\000\020y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020y\n\142\000\000\020y\000\000\000\000\000\000\007\166\000\000\020y\020y\020y\000\000\001\226\001\230\000\000\000\000\000\000\020y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020y\000\000\000\000\020y\000\000\000\000\001\234\002&\000\000\020y\000\000\000\000\020u\000\000\000\000\000\000\020u\000\000\000\000\000\000\020u\020y\000\000\020y\020y\000\000\020y\020y\000\000\000\000\000\000\020u\003~\020u(j\020u\000\000\020u\003z\000\000\003\138\003\186\003\198\020y\000\000\000\000\000\000\020y\003\210\000\000\020u\000\000\000\000\000\000\000\000\020y\020y\020u\005\206\020u\020y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020u\000\000\003\214\020u\003\230\000\000\000\000\000\000\007\169\020u\020u\020u\000\000\000\000\000\000\000\000\000\000\000\000\020u\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020u\000\000(\130\020u\000\000\000\000\000\000\000\000\000\000\020u\000\000\000\000\012\213\000\000\000\000\000\000\012\213\000\000\000\000\000\000\012\213\020u\000\000\020u\020u\000\000\020u\020u\000\000\000\000\000\000\012\213\000\000\012\213\000\000\012\213\000\000\012\213\000\000\016\170\000\000\000\000\000\000\020u\000\000\000\000\000\000\020u\000\000\000\000\012\213\000\000\000\000\000\000\000\000\020u\020u\012\213\000\000\012\213\020u\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012\213\000\000\000\000\012\213\000\000\000\000\000\000\000\000\000\000\012\213\012\213\000\242\000\000\000\000\000\000\000\000\000\000\000\000\012\213\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012\213\000\000\000\000\012\213\000\000\000\000\000\000\000\000\000\000\012\213\000\000\000\000\000\000\003\150\003\154\000\000\000\000\003j\000\000\000\000\000\000\012\213\bf\012\213\012\213\000\000\012\213\012\213\t\237\000\000\000\000\000\000\000\000\001\234\000\000\000\000\000\000\bn\000\000\012\213\000\000\000\000\000\000\012\213\000\000\000\000\000\000\012\213\br\000\000\tv\000\000\000\000\000\000\000\000\012\213\012\213\000\000\000\000\t\182\012\213\001\190\000\000\000\000\000\000\000\000\000\000\003\138\000\000\000\000\t\190\r\178\000\000\000\000\000\000\r\182\r\186\r\198\000\000\000\000\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\nb\nf\n\193\r\206\r\222\001\230\n\193\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\193\n\134\n\138\n\193\000\000\000\000\001\230\n\193\000\000\n\193\000\000\000\000\r\226\000\000\r\230\n\193\000\000\000\000\n\193\000\000\000\000\000\000\n\193\000\000\n\193\000\000\000\000\000\000\000\000\n\193\n\142\r\238\000\000\000\000\000\000\015\250\007\166\n\193\003\226\000\000\n\193\000\000\000\000\n\193\n\193\000\000\n\193\000\000\000\000\n\193\n\193\n\193\000\000\003\226\000\000\n\193\000\000\000\000\n\193\000\000\000\000\000\000\000\000\000\000\n\193\n\193\n\193\n\193\n\193\000\000\n\193\000\000\000\000\n\193\000\000\000\000\005v\000\000\000\000\000\000\000\000\000\000\n\193\n\193\000\000\n\193\000\000\000\000\n\193\000\000\n\193\005v\000\000\n\193\n\193\000\000\000\000\004\149\000\000\000\000\001\230\004\149\000\000\n\193\000\000\n\193\n\193\000\000\n\193\n\193\000\000\000\000\004\149\000\000\n\193\000\000\004\149\000\000\004\149\n\193\000\000\n\193\002\130\000\000\000\000\000\000\000\000\n\193\000\000\n\193\000\000\004\149\000\000\000\000\n\193\000\000\000\000\002\130\004\149\000\000\n\193\000\000\n\193\000\000\000\000\000\000\000\000\003\226\000\000\004\149\000\000\000\000\004\149\000\000\000\000\000\000\000\000\000\000\004\149\004\149\004\149\000\000\000\000\000\000\000\000\000\000\000\000\004\149\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\149\004\149\000\000\004\149\000\000\000\000\000\000\000\000\000\000\005v\000\000\000\000\000\000\000\000\000\000\000\000\004\145\000\000\000\000\001\230\004\145\004\149\000\000\004\149\000\000\000\000\004\149\004\149\n\193\000\000\000\000\004\145\000\000\000\000\000\000\004\145\000\000\004\145\000\000\004\149\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\149\000\000\000\000\004\145\000\000\004\149\000\000\000\000\002\130\000\000\004\145\000\000\n\193\004\149\000\000\000\000\000\000\000\000\000\000\003\226\000\000\004\145\000\000\000\000\004\145\000\000\000\000\000\000\000\000\000\000\004\145\004\145\004\145\000\000\000\000\000\000\000\000\000\000\000\000\004\145\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\145\004\145\000\000\004\145\000\000\000\000\000\000\000\000\000\000\005v\000\000\b\173\000\000\000\000\000\000\b\173\000\000\000\000\000\000\b\173\000\000\004\145\000\000\004\145\000\000\000\000\004\145\004\145\000\000\000\000\b\173\000\000\b\173\000\000\b\173\000\000\b\173\000\000\000\000\004\145\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\145\000\000\b\173\000\000\000\000\004\145\000\000\000\000\002\130\b\173\000\000\b\173\000\000\004\145\000\000\000\000\017z\000\000\000\000\000\000\b\173\000\000\000\000\b\173\000\000\000\000\000\000\000\000\000\000\b\173\b\173\000\242\000\000\000\000\000\000\b\130\003\154\000\000\b\173\003j\000\000'\142\000\000\000\000\bf\000\000\000\000\b\173\000\000\000\000\b\173\000\000\000\000\000\000\000\000\001\234\b\173\000\000\000\000\000\000\000\000\000\000\b\190\000\000\000\000\000\000\000\000\000\000\b\173\000\000\b\173\b\173\000\000\b\173\b\173\000\000\000\000\000\000\b\210\000\000\000\000\b\230\000\000\001\190\000\000\000\000\000\000\000\000\000\000\003\138\b\173\000\000\n\n\n\014\b\173\000\000\000\000\n\018\000\000\n\026\n>'\170\b\173\b\173\nJ\004\229\000\000\b\173\000\000\004\229\000\000\000\000\000\000\004\229\000\000\nN\nb\nf\000\000\nj\nr\n~\000\000\000\000\004\229\000\000\004\229\000\000\004\229\000\000\004\229\n\134\n\138\000\000\000\000\011\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\229\000\000\000\000'\178\000\000\000\000\000\000\004\229\004\229\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\142\004\229\000\000\000\000\004\229\000\000\007\166\000\000\000\000\000\000\004\229\004\229\000\242\000\000\000\000\000\000\000\000\000\000\000\000\004\229\000\000\000\000\000\000\000\000\000\000\004\237\000\000\000\000\004\229\004\237\000\000\004\229\000\000\004\237\000\000\000\000\000\000\004\229\000\000\000\000\000\000\000\000\000\000\000\000\004\237\000\000\004\237\000\000\004\237\004\229\004\237\004\229\004\229\000\000\004\229\004\229\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\237\000\000\000\000\000\000\004\229\000\000\004\229\004\237\004\237\004\229\000\000\000\000\004\229\000\000\000\000\000\000\000\000\001\n\004\237\000\000\000\000\004\237\000\000\000\000\000\000\004\229\004\229\004\237\004\237\000\242\000\000\001\014\001\018\001\022\001\026\001\030\004\237\001\"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\237\000\000\001&\004\237\001*\001.\000\000\000\000\000\000\004\237\000\000\0012\000\000\000\000\0016\000\000\000\000\000\000\000\000\000\000\000\000\004\237\000\000\004\237\004\237\000\000\004\237\004\237\000\000\000\000\000\000\000\000\000\000\000\000\001:\001>\001B\001F\001J\004\237\000\000\004\237\000\000\000\000\004\237\001N\000\000\004\237\000\000\000\000\000\000\000\000\001R\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\237\004\237\000\000\001V\000\000\000\000\000\000\000\000\004\245\000\000\001Z\000\000\004\245\000\000\000\000\000\000\004\245\000\000\000\000\000\000\000\000\000\000\000\000\001\150.f\000\000\000\000\004\245\000\000\004\245\001\154\004\245\001\158\004\245\001\162\001\166\000\000\000\000\001\170\000\000\001\174\001\178\000\000\000\000\000\000\000\000\004\245\000\000\000\000\000\000\000\000\000\000\000\000\004\245\004\245\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\245\000\000\000\000\004\245\000\000\000\000\000\000\000\000\000\000\004\245\004\245\000\000\000\000\000\000\000\000\b\130\003\154\000\000\004\245\003j\000\000\t\238\000\000\000\000\bf\000\000\000\000\004\245\000\000\000\000\004\245\000\000\000\000\000\000\000\000\001\234\004\245\000\000\000\000\000\000\000\000\000\000\b\190\000\000\000\000\000\000\000\000\000\000\004\245\000\000\004\245\004\245\000\000\004\245\004\245\000\000\000\000\000\000\b\210\000\000\000\000\b\230\000\000\001\190\000\000\000\000\004\245\000\000\004\245\003\138\000\000\004\245\n\n\n\014\004\245\000\000\000\000\n\018\000\000\n\026\n>\012j\000\000\000\000\nJ\000\000\000\000\004\245\002B\000\000\000\000\000\000\000\000\000\000\000\000\nN\nb\nf\000\000\nj\nr\n~\000\000\000\000\b\130\003\154\000\000\000\000\003j\000\000\012\150\n\134\n\138\bf\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\234\000\000\012r\000\000\000\000\000\000\000\000\b\190\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\142\000\000\000\000\000\000\000\000\000\000\007\166\b\210\000\000\000\000\b\230\000\000\001\190\000\000\000\000\000\000\000\000\000\000\003\138\000\000\000\000\n\n\n\014\000\000\000\000\000\000\n\018\000\000\n\026\n>\012\178\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\nN\nb\nf\000\000\nj\nr\n~\000\000\000\000\b\130\003\154\000\000\000\000\003j\000\000\012\202\n\134\n\138\bf\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\234\000\000\012\186\000\000\000\000\000\000\000\000\b\190\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\142\000\000\000\000\000\000\000\000\000\000\007\166\b\210\000\000\000\000\b\230\000\000\001\190\000\000\000\000\000\000\000\000\000\000\003\138\000\000\000\000\n\n\n\014\000\000\000\000\000\000\n\018\000\000\n\026\n>\012\230\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\nN\nb\nf\000\000\nj\nr\n~\000\000\000\000\b\130\003\154\000\000\000\000\003j\000\000\r\002\n\134\n\138\bf\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\234\000\000\012\238\000\000\000\000\000\000\000\000\b\190\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\142\000\000\000\000\000\000\000\000\000\000\007\166\b\210\000\000\000\000\b\230\000\000\001\190\000\000\000\000\000\000\000\000\000\000\003\138\000\000\000\000\n\n\n\014\000\000\000\000\000\000\n\018\000\000\n\026\n>\r\030\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\nN\nb\nf\000\000\nj\nr\n~\000\000\000\000\b\130\003\154\000\000\000\000\003j\000\000\b\134\n\134\n\138\bf\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\234\000\000\r&\000\000\000\000\000\000\000\000\b\190\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\142\000\000\000\000\000\000\000\000\000\000\007\166\b\210\000\000\000\000\014:\000\000\001\190\000\000\000\000\000\000\000\000\000\000\003\138\000\000\000\000\n\n\n\014\000\000\000\000\000\000\n\018\000\000\n\026\n>\nn\000\000\016~\nJ\000\000\000\000\b\165\000\000\000\000\000\000\b\165\000\000\000\000\000\000\nN\nb\nf\000\000\nj\nr\n~\b\165\000\000\b\165\000\000\b\165\000\000\b\165\000\000\000\000\n\134\n\138\000\000\000\000\011\002\000\000\000\000\000\000\000\000\000\000\b\165\000\000\000\000\000\000\000\000\000\000\000\000\b\165\000\000\016\226\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\165\n\142\000\000\b\165\000\000\000\000\000\000\007\166\000\000\b\165\b\165\000\242\000\000\000\000\000\000\000\000\000\000\000\000\b\165\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\165\000\000\000\000\b\165\000\000\000\000\000\000\000\000\000\000\b\165\000\000\000\000\020\133\000\000\000\000\000\000\020\133\000\000\000\000\000\000\020\133\b\165\000\000\b\165\b\165\000\000\b\165\b\165\000\000\000\000\000\000\020\133\000\000\020\133\000\000\020\133\000\000\020\133\000\000\000\000\000\000\000\000\000\000\b\165\000\000\000\000\000\000\b\165\000\000\000\000\020\133\000\000\000\000\000\000\000\000\b\165\004F\020\133\000\000\020\133\b\165\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\133\000\000\000\000\020\133\000\000\000\000\000\000\000\000\000\000\020\133\020\133\000\242\000\000\000\000\000\000\000\000\000\000\000\000\020\133\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\133\000\000\000\000\020\133\000\000\000\000\000\000\000\000\000\000\020\133\000\000\000\000\016~\000\000\000\000\000\000\b\205\000\000\000\000\000\000\b\205\020\133\000\000\020\133\020\133\000\000\020\133\020\133\000\000\000\000\000\000\b\205\000\000\b\205\000\000\b\205\000\000\b\205\000\000\000\000\000\000\000\000\000\000\020\133\000\000\000\000\000\000\020\133\000\000\000\000\b\205\000\000\000\000\000\000\000\000\020\133\004F\b\205\000\000\016\226\020\133\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\205\000\000\000\000\b\205\000\000\000\000\000\000\000\000\000\000\b\205\b\205\000\242\000\000\000\000\000\000\000\000\000\000\000\000\b\205\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\205\000\000\000\000\b\205\000\000\000\000\000\000\000\000\000\000\b\205\000\000\000\000\016~\000\000\000\000\000\000\b\197\000\000\000\000\000\000\b\197\b\205\000\000\b\205\b\205\000\000\b\205\b\205\000\000\000\000\000\000\b\197\000\000\b\197\000\000\b\197\000\000\b\197\000\000\000\000\000\000\000\000\000\000\b\205\000\000\000\000\000\000\b\205\000\000\000\000\b\197\000\000\000\000\000\000\000\000\b\205\004F\b\197\000\000\016\226\b\205\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\197\000\000\000\000\b\197\000\000\000\000\000\000\000\000\000\000\b\197\b\197\000\242\000\000\000\000\000\000\000\000\000\000\000\000\b\197\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\197\000\000\000\000\b\197\000\000\000\000\000\000\000\000\000\000\b\197\000\000\000\000\b\201\000\000\000\000\000\000\b\201\000\000\000\000\000\000\b\201\b\197\000\000\b\197\b\197\000\000\b\197\b\197\000\000\000\000\000\000\b\201\000\000\b\201\000\000\b\201\000\000\b\201\000\000\000\000\000\000\000\000\000\000\b\197\000\000\000\000\000\000\b\197\000\000\000\000\b\201\000\000\000\000\000\000\000\000\b\197\004F\b\201\000\000\016\218\b\197\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\201\000\000\000\000\b\201\000\000\000\000\000\000\000\000\000\000\b\201\b\201\b\201\000\000\000\000\000\000\000\000\000\000\000\000\b\201\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\201\000\000\000\000\b\201\000\000\000\000\000\000\000\000\000\000\b\201\000\000\000\000\b\209\000\000\000\000\000\000\b\209\000\000\000\000\000\000\b\209\b\201\000\000\b\201\b\201\000\000\b\201\b\201\000\000\000\000\000\000\b\209\000\000\b\209\000\000\b\209\000\000\b\209\000\000\000\000\000\000\000\000\000\000\b\201\000\000\000\000\000\000\b\201\000\000\000\000\b\209\000\000\000\000\000\000\000\000\b\201\b\201\b\209\000\000\016\218\b\201\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\209\000\000\000\000\b\209\000\000\000\000\000\000\000\000\000\000\b\209\b\209\b\209\000\000\000\000\000\000\000\000\000\000\000\000\b\209\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\209\000\000\000\000\b\209\000\000\000\000\000\000\000\000\000\000\b\209\000\000\000\000\020\137\000\000\000\000\000\000\020\137\000\000\000\000\000\000\020\137\b\209\000\000\b\209\b\209\000\000\b\209\b\209\000\000\000\000\000\000\020\137\000\000\020\137\000\000\020\137\000\000\020\137\000\000\000\000\000\000\000\000\000\000\b\209\000\000\000\000\000\000\b\209\000\000\000\000\020\137\000\000\000\000\000\000\000\000\b\209\b\209\020\137\000\000\016\226\b\209\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\137\000\000\000\000\020\137\000\000\000\000\000\000\000\000\000\000\020\137\020\137\000\242\000\000\000\000\000\000\000\000\000\000\000\000\020\137\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\137\000\000\000\000\020\137\000\000\000\000\000\000\000\000\000\000\020\137\000\000\000\000\b\213\000\000\000\000\000\000\b\213\000\000\000\000\000\000\b\213\020\137\000\000\020\137\020\137\000\000\020\137\020\137\000\000\000\000\000\000\b\213\000\000\b\213\000\000\b\213\000\000\b\213\000\000\000\000\000\000\000\000\000\000\020\137\000\000\000\000\000\000\020\137\000\000\000\000\b\213\000\000\000\000\000\000\000\000\020\137\004F\b\213\000\000\b\213\020\137\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\213\000\000\000\000\b\213\000\000\000\000\000\000\000\000\000\000\b\213\b\213\b\213\000\000\000\000\000\000\000\000\000\000\000\000\b\213\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\213\000\000\000\000\b\213\000\000\000\000\000\000\000\000\000\000\b\213\000\000\000\000\b\169\000\000\000\000\000\000\b\169\000\000\000\000\000\000\b\169\b\213\000\000\b\213\b\213\000\000\b\213\b\213\000\000\000\000\000\000\b\169\000\000\b\169\000\000\b\169\000\000\b\169\000\000\000\000\000\000\000\000\000\000\b\213\000\000\000\000\000\000\b\213\000\000\000\000\b\169\000\000\000\000\000\000\000\000\b\213\b\213\b\169\000\000\016\218\0176\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\169\000\000\000\000\b\169\000\000\000\000\000\000\000\000\000\000\b\169\b\169\b\169\000\000\000\000\000\000\000\000\000\000\000\000\b\169\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\169\000\000\000\000\b\169\000\000\000\000\000\000\000\000\000\000\b\169\000\000\000\000\b\189\000\000\000\000\000\000\b\189\000\000\000\000\000\000\b\189\b\169\000\000\b\169\b\169\000\000\b\169\b\169\000\000\000\000\000\000\b\189\000\000\b\189\000\000\b\189\000\000\b\189\000\000\000\000\000\000\000\000\000\000\b\169\000\000\000\000\000\000\b\169\000\000\000\000\b\189\000\000\000\000\000\000\000\000\b\169\b\169\b\189\000\000\016\226\b\169\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\189\000\000\000\000\b\189\000\000\000\000\000\000\000\000\000\000\b\189\b\189\000\242\000\000\000\000\000\000\000\000\000\000\000\000\b\189\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\189\000\000\000\000\b\189\000\000\000\000\000\000\000\000\000\000\b\189\000\000\000\000\b\193\000\000\000\000\000\000\b\193\000\000\000\000\000\000\b\193\b\189\000\000\b\189\b\189\000\000\b\189\b\189\000\000\000\000\000\000\b\193\000\000\b\193\000\000\b\193\000\000\b\193\000\000\000\000\000\000\000\000\000\000\b\189\000\000\000\000\000\000\b\189\000\000\000\000\b\193\000\000\000\000\001\226\001\230\b\189\004F\b\193\000\000\016\218\b\189\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\193\000\000\000\000\b\193\000\000\001\234\001\238\000\000\000\000\b\193\b\193\b\193\000\000\000\000\000\000\000\000\000\000\000\000\b\193\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\193\000\000\000\000\b\193\030\238\000\000\003\226\000\000\000\000\b\193\003z\000\000\003\138\003\186\003\198\000\000\000\000\000\000\000\000\000\000\003\210\b\193\030f\b\193\b\193\000\000\b\193\b\193\000\000\000\000\b\130\003\154\000\000\000\000\003j\000\000\t\210\000\000\000\000\bf\000\000\000\000\003\214\b\193\003\230\t\201\000\000\b\193\000\000\030\182\001\234\000\000\000\000\000\000\000\000\b\193\b\193\b\190\000\000\000\000\b\193\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\210\000\000\000\000\b\230\000\000\001\190\000\000\000\000\000\000\000\000\000\000\003\138\000\000\000\000\n\n\n\014\000\000\000\000\000\000\n\018\000\000\n\026\n>\012\246\000\000\000\000\nJ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\nN\nb\nf\000\000\nj\nr\n~\000\000\000\000\b\130\003\154\000\000\000\000\003j\000\000\022\178\n\134\n\138\bf\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\234\000\000\000\000\000\000\000\000\000\000\000\000\b\190\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\142\000\000\000\000\000\000\000\000\000\000\007\166\b\210\000\000\000\000\b\230\000\000\001\190\000\000\000\000\000\000\000\000\000\000\003\138\000\000\000\000\n\n\n\014\000\000\000\000\000\000\n\018\000\000\n\026\n>\022\206\000\000\000\000\nJ\000\000\000\000\000\193\000\000\000\000\000\000\000\193\000\000\000\000\000\000\nN\nb\nf\000\000\nj\nr\n~\000\193\000\000\000\193\000\000\000\193\000\000\000\193\000\000\000\000\n\134\n\138\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\193\000\000\000\000\000\000\000\000\022\214\000\000\000\193\000\000\000\000\000\000\000\000\000\193\000\000\000\000\000\000\000\000\000\000\000\193\n\142\000\000\000\193\000\000\000\000\000\000\007\166\000\000\000\193\000\193\000\242\000\000\000\000\000\000\000\000\000\000\000\000\000\193\000\000\000\193\000\193\000\000\000\000\000\000\000\000\000\000\000\193\000\000\000\000\000\193\000\000\000\000\000\000\000\000\000\000\000\193\000\250\000\000\000\000\000\000\t*\001\005\000\000\000\000\000\000\001\005\000\000\000\193\000\000\000\193\000\000\007e\000\193\000\193\000\000\000\000\001\005\tZ\001\005\000\000\001\005\000\000\001\005\000\000\000\000\000\193\000\000\000\000\000\000\000\000 N\000\000\000\193\000\193\000\000\001\005\000\000 v\000\000\000\000\000\000\000\000\001\005\000\000\000\193\000\000\000\193\001\005&\022\000\000\000\000 \218\000\000\001\005\000\000\000\000\001\005 \242\000\000\000\000\000\000\000\000\001\005\001\005\000\242\000\000 \250\000\000\000\000\000\000\000\000\001\005\000\000\001\005\001\005!\n\000\000\000\000\000\000\000\000\001\005\000\000\000\000\001\005\000\000\000\000\000\000\000\000\000\000\001\005\000\000\000\000\000\000\000\000\000\000\000\201!\018\000\000!R\000\201\000\000\001\005\000\000\001\005\000\000\000\000\001\005\001\005\000\000\000\000\000\201\000\000\000\201\000\000\000\201\000\000\000\201\000\000\000\000\001\005\000\000\000\000!\154\000\000\000\000\000\000\001\005\001\005\000\000\000\201\000\000\000\000\000\000\000\000\000\000\000\000\000\201\000\000\001\005\000\000\001\005\000\201\000\000\000\000\000\000\000\000\000\000\000\201\000\000\000\000\000\201\000\000\000\000\000\000\000\000\000\000\000\201\000\201\000\242\000\000\000\000\000\000\000\000\000\000\000\000\000\201\000\000\000\201\000\201\000\000\000\000\000\000\000\000\000\000\000\201\000\000\000\000\000\201\000\000\000\000\000\000\000\000\000\000\000\201\000\000\000\000\000\000\000\000\000\000\000\197\000\000\000\000\000\000\000\197\000\000\000\201\000\000\000\201\000\000\000\000\000\201\000\201\000\000\000\000\000\197\000\000\000\197\000\000\000\197\000\000\000\197\000\000\000\000\000\201\000\000\000\000\000\000\000\000\000\000\000\000\000\201\000\201\000\000\000\197\000\000\000\000\000\000\000\000\000\000\000\000\000\197\000\000\000\201\000\000\000\201\000\197\000\000\000\000\000\000\000\000\000\000\000\197\000\000\000\000\000\197\000\000\000\000\000\000\000\000\000\000\000\197\000\197\000\242\000\000\000\000\000\000\000\000\000\000\000\000\000\197\000\000\000\197\000\197\000\000\000\000\000\000\000\000\000\000\000\197\001\221\000\000\000\197\000\000\001\221\000\000\000\000\000\000\000\197\000\000\000\000\000\000\000\000\000\000\000\000\001\221\000\000\000\000\000\000\001\221\000\197\001\221\000\197\000\000\000\000\000\197\000\197\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\221\000\000\001\221\000\000\000\197\000\000\000\000\001\221\000\000\000\000\000\000\000\197\000\197\000\000\007\221\000\000\000\000\000\000\001\221\000\000\000\000\001\221\000\000\000\197\000\000\000\197\000\000\001\221\001\221\001\221\000\000\000\000\000\000\000\000\000\000\000\000\001\221\000\000\000\000\000\000\007\213\000\000\000\000\019\221\007\213\001\221\000\000\000\000\001\221\000\000\000\000\000\000\019\221\000\000\001\221\007\213\000\000\007\213\000\000\007\213\000\000\007\213\000\000\000\000\000\000\000\000\001\221\000\000\001\221\000\000\000\000\001\221\001\221\000\000\007\213\000\000\000\000\000\000\000\000\000\000\007\221\007\213\000\000\019\221\001\221\000\000\000\000\000\000\000\000\000\000\019\221\001\221\001\221\000\000\000\000\007\213\000\000\001\221\000\000\000\000\000\000\007\213\007\213\007\213\000\000\001\221\000\000\000\000\000\000\000\000\007\213\000\000\002V\000\000\000\000\000\000\004\221\000\000\000\000\007\213\004\221\000\000\002^\000\000\000\000\000\000\000\000\000\000\019\221\000\000\000\000\004\221\000\000\000\000\000\000\004\221\000\000\004\221\000\000\000\000\007\213\000\000\007\213\007\213\000\000\007\213\007\213\000\000\000\000\000\000\004\221\000\000\000\000\000\000\000\000\000\000\000\000\004\221\002\234\000\000\000\000\000\000\000\000\000\000\000\000%&\007\213\000\000\004\221\000\000\000\000\004\221\000\000\000\000\000\000\000\000\000\000\004\221\004\221\007\213\000\000\000\000\000\000\000\000\000\000\000\000\004\221\000\000\000\000\000\000\000\000\000\000\0071\000\000\000\000\004\221\0071\000\000\004\221\000\000\000\000\000\000\000\000\000\000\004\221\000\000\000\000\0071\000\000\000\000\000\000\0071\000\000\0071\000\000\000\000\004\221\000\000\004\221\004\221\000\000\004\221\004\221\000\000\000\000\000\000\0071\000\000\000\000\000\000\000\000\000\000\000\000\0071\004\221\000\000\000\000\000\000\0071\004\221\003\242\000\000\004\221\000\000\0071\000\000\000\000\0071\000\000\000\000\000\000\000\000\000\000\0071\tN\004\221\002\250\000\000\000\000\000\000\000\000\000\000\0071\000\000\0071\0071\000\000\000\000\000\000\000\000\000\000\0071\0071\000\000\0071\000\000\000\000\000\000\000\000\000\000\0071\002\001\000\000\000\000\000\000\002\001\000\000\000\000\000\000\000\000\000\000\000\000\0071\rY\0071\000\000\002\001\0071\0071\000\000\002\001\000\000\002\001\000\000\000\000\000\000\003\254\000\000\000\000\000\000\0071\000\000\000\000\000\000\000\000\002\001\000\000\000\000\0071\000\000\000\000\000\000\002\001&\226\002\001\000\000\0071\000\000\000\000\000\000\000\000\0071\000\000\002\001\000\000\000\000\002\001\000\000\000\000\000\000\000\000\000\000\002\001\002\001\002\001\000\000\000\000\000\000\000\000\000\000\000\000\002\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\001\002\001\000\000\002\001\000\000\000\000\000\000\000\000\000\000\002\001\002\t\000\000\000\000\000\000\002\t\000\000\000\000\000\000\000\000\000\000\000\000\002\001\ra\002\001\000\000\002\t\002\001\002\001\000\000\002\t\000\000\002\t\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\001\000\000\000\000\000\000\000\000\002\t\000\000\000\000\002\001\000\000\000\000\000\000\002\t\002\001\002\t\000\000\000\000\000\000\000\000\000\000\000\000\002\001\000\000\002\t\000\000\000\000\002\t\000\000\000\000\000\000\000\000\000\000\002\t\002\t\002\t\000\000\000\000\000\000\000\000\000\000\000\000\002\t\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\t\002\t\000\000\002\t\000\000\000\000\000\000\000\000\000\000\002\t\002\005\000\000\000\000\000\000\002\005\000\000\000\000\000\000\000\000\000\000\000\000\002\t\r]\002\t\000\000\002\005\002\t\002\t\000\000\002\005\000\000\002\005\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\t\000\000\000\000\000\000\000\000\002\005\000\000\000\000\002\t\000\000\000\000\000\000\002\005\002\t\002\005\000\000\000\000\000\000\000\000\000\000\000\000\002\t\000\000\002\005\000\000\000\000\002\005\000\000\000\000\000\000\000\000\000\000\002\005\002\005\002\005\000\000\000\000\000\000\000\000\000\000\000\000\002\005\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\005\002\005\000\000\002\005\000\000\000\000\000\000\000\000\000\000\002\005\001\253\000\000\000\000\000\000\001\253\000\000\000\000\000\000\000\000\000\000\000\000\002\005\rU\002\005\000\000\001\253\002\005\002\005\000\000\001\253\000\000\001\253\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\005\000\000\000\000\000\000\000\000\001\253\000\000\000\000\002\005\000\000\000\000\000\000\001\253\002\005\001\253\000\000\000\000\000\000\000\000\000\000\000\000\002\005\000\000\001\253\000\000\000\000\001\253\000\000\000\000\000\000\000\000\000\000\001\253\001\253\001\253\000\000\000\000\000\000\000\000\000\000\000\000\001\253\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\253\001\253\000\000\001\253\019\137\000\000\000\000\000\000\019\137\001\253\000\000\000\000\000\000\000\000\004\141\000\000\000\000\001\230\004\141\019\137\000\000\001\253\000\000\001\253\000\000\019\137\001\253\001\253\000\000\004\141\000\000\000\000\000\000\004\141\000\000\004\141\000\000\000\000\019\137\001\253\000\000\000\000\000\000\000\000\000\000\019\137\000\000\001\253\004\141\000\000\000\000\000\000\001\253\000\000\000\000\004\141\019\137\000\000\000\000\019\137\001\253\000\000\000\000\000\000\003\226\019\137\004\141\000\000\000\000\004\141\000\000\000\000\000\000\000\000\019\137\004\141\004\141\004\141\000\000\000\000\000\000\000\000\000\000\019\137\004\141\000\000\019\137\000\000\000\000\000\000\000\000\000\000\019\137\004\141\004\141\000\000\004\141\000\000\000\000\000\000\000\000\000\000\005v\000\000\019\137\000\000\019\137\004\137\000\000\019\137\001\230\004\137\000\000\000\000\004\141\000\000\004\141\000\000/.\004\141\004\141\000\000\004\137\000\000\000\000\000\000\004\137\000\000\004\137\000\000\019\137\000\000\004\141\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\141\004\137\000\000\000\000\000\000\004\141\000\000\000\000\004\137\000\000\000\000\000\000\000\000\004\141\000\000\000\000\000\000\003\226\000\000\004\137\000\000\000\000\004\137\000\000\000\000\000\000\000\000\000\000\004\137\004\137\004\137\000\000\000\000\000\000\000\000\000\000\000\000\004\137\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\137\004\137\000\000\004\137\000\000\000\000\000\000\000\000\000\000\005v\011\177\000\000\000\000\000\000\011\177\000\000\000\000\000\000\000\000\000\000\000\000\004\137\000\000\004\137\000\000\011\177\004\137\004\137\000\000\011\177\000\000\011\177\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\137\000\000\000\000\000\000\000\000\011\177\000\000\000\000\004\137\000\000\000\000\000\000\011\177\004\137\000\000\000\000\000\000\011\177\000\000\000\000\000\000\004\137\000\000\011\177\000\000\000\000\011\177\000\000\000\000\000\000\000\000\000\000\011\177\011\177\000\242\000\000\000\000\000\000\000\000\000\000\000\000\011\177\000\000\011\177\011\177\000\000\000\000\011\173\000\000\000\000\011\177\011\173\000\000\011\177\000\000\000\000\000\000\000\000\000\000\011\177\000\000\000\000\011\173\000\000\000\000\000\000\011\173\000\000\011\173\000\000\000\000\011\177\000\000\011\177\011\177\000\000\011\177\011\177\000\000\000\000\000\000\011\173\000\000\000\000\000\000\000\000\000\000\000\000\011\173\011\177\000\000\000\000\000\000\011\173\000\000\000\000\000\000\011\177\000\000\011\173\000\000\000\000\011\173\000\000\000\000\011\177\000\000\000\000\011\173\011\173\000\242\000\000\000\000\000\000\000\000\000\000\000\000\011\173\000\000\011\173\011\173\000\000\000\000\001U\000\000\000\000\011\173\001U\000\000\011\173\000\000\000\000\000\000\000\000\000\000\011\173\000\000\000\000\001U\000\000\001U\000\000\001U\000\000\001U\000\000\000\000\011\173\000\000\011\173\011\173\000\000\011\173\011\173\000\000\000\000\000\000\001U\000\000\000\000\000\000\000\000\000\000\000\000\001U\011\173\000\000\000\000\000\000\001U\000\000\000\000\000\000\011\173\000\000\001U\000\000\000\000\001U\000\000\000\000\011\173\000\000\000\000\001U\001U\000\242\000\000\000\000\000\000\000\000\000\000\000\000\001U\000\000\000\000\001U\000\000\000\000\000\000\000\000\000\000\001U\000\000\000\000\001U\000\000\000\000\000\000\000\000\000\000\001U\000\000\000\000\000\000\000\000\000\000\001Q\000\000\000\000\000\000\001Q\000\000\001U\000\000\001U\001U\000\000\001U\001U\000\000\000\000\001Q\000\000\001Q\000\000\001Q\000\000\001Q\000\000\000\000\001U\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001U\000\000\001Q\000\000\000\000\000\000\000\000\000\000\000\000\001Q\000\000\000\000\000\000\001U\001Q\000\000\000\000\000\000\000\000\000\000\001Q\000\000\000\000\001Q\000\000\000\000\000\000\000\000\000\000\001Q\001Q\000\242\000\000\000\000\000\000\000\000\000\000\000\000\001Q\000\000\000\000\001Q\007\217\000\000\000\000\019\221\007\217\001Q\000\000\000\000\001Q\000\000\000\000\000\000\019\221\000\000\001Q\007\217\000\000\007\217\000\000\007\217\000\000\007\217\000\000\000\000\000\000\000\000\001Q\000\000\001Q\001Q\000\000\001Q\001Q\000\000\007\217\000\000\000\000\000\000\000\000\000\000\000\000\007\217\000\000\019\221\001Q\000\000\000\000\000\000\000\000\000\000\019\221\000\000\001Q\000\000\000\000\007\217\000\000\000\000\000\000\000\000\000\000\007\217\007\217\007\217\000\000\001Q\000\000\000\000\000\000\000\000\007\217\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007\217\002\017\000\000\002^\030J\002\017\000\000\003j\000\000\019\221\000\000\000\000\000\000\000\000\000\000\000\000\002\017\000\000\000\000\000\000\002\017\007\217\002\017\007\217\007\217\000\000\007\217\007\217\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\017\000\000\000\000\000\000\000\000\000\000\000\000\002\017\000\000\000\000\000\000\000\000\007\217\000\000\030N\000\000\000\000\000\000\002\017\000\000\000\000\002\017\000\000\000\000\000\000\007\217\000\000\002\017\002\017\000\000\030Z\000\000\000\000\000\000\000\000\000\000\002\017\000\000\000\000\000\000\001E\000\000\000\000\002y\001E\002\017\000\000\000\000\002\017\000\000\000\000\000\000\002y\000\000\002\017\001E\000\000\001E\000\000\001E\000\000\001E\000\000\000\000\000\000\n\138\002\017\000\000\002\017\000\000\000\000\002\017\002\017\000\000\001E\000\000\000\000\000\000\000\000\000\000\000\000\001E\000\000\002y\002\017\000\000\000\000\000\000\000\000\000\000\002y\000\000\002\017\000\000\000\000\001E\000\000\000\000\000\000\000\000\000\000\001E\001E\001E\000\000\002\017\000\000\000\000\000\000\000\000\001E\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001E\004\129\000\000\000\000\000\000\004\129\000\000\000\000\000\000\002y\000\000\000\000\000\000\000\000\000\000\000\000\004\129\000\000\000\000\000\000\004\129\001E\004\129\001E\001E\000\000\001E\001E\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\129\000\000\030b\000\000\000\000\000\000\000\000\004\129\000\000\000\000\000\000\000\000\001E\000\000\000\000\000\000\000\000\000\000\004\129\000\000\000\000\004\129\000\000\000\000\000\000\001E\000\000\004\129\004\129\004\129\000\000\000\000\000\000\000\000\000\000\000\000\004\129\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\129\000\000\000\000\004\129\000\000\000\000\000\000\000\000\000\000\004\129\001\202\001\226\003f\000\000\000\000\003j\000\000\000\000\000\000\000\000\000\000\004\129\000\000\004\129&\234\000\000\004\129\004\129\000\000\000\000\000\000\001\234\002&\001\254\003n\000\000\000\000\000\000\000\000\004\129\000\000\000\000\002\n\000\000\001\206\000\000\030\234\004\129\000\000\nu\000\000\000\000\004\129\nu\000\000\000\000\000\000\003r\001\210\002Z\004\129\000\000\000\000\003z\nu\003\138\003\186\003\198\nu\000\000\nu\000\000\000\000(\238\000\000)6\019\221\000\000\000\000\000\000\000\000\000\000\000\000\nu\000\000\000\000\000\000\000\000\000\000\000\000\nu\000\000\000\000\000\000\000\000\003\214)B\003\230\000\000\000\000\000\000\nu\000\000\000\000\nu\000\000\000\000\000\000\n\138\000\000\nu\nu\000\000\000\000\b\130\003\154\000\000\000\000\003j\nu\000\000\000\000)N\bf\000\000\000\000\000\000\000\000\nu\000\000\000\000\nu\000\000\000\000\001\234\000\000\000\000\nu\000\000\000\000)\014\b\190\000\000\000\000\000\000\000\000\000\000\000\000\000\000\nu\000\000\nu\nu\000\000\nu\nu\000\000\b\210\000\000\000\000\015N\000\000\001\190\000\000\000\000\000\000\000\000\nu\003\138\000\000\000\000\n\n\n\014\000\000\003V\nu\n\018\000\000\n\026\000\000\000\000\000\000\000\000\nJ\000\000\000\000\004\129\000\000\nu\000\000\004\129\000\000\000\000\000\000\nN\nb\nf\000\000\nj\nr\n~\004\129\000\000\000\000\000\000\004\129\000\000\004\129\000\000\000\000\n\134\n\138\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\129\000\000\030b\000\000\000\000\000\000\000\000\004\129\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\129\n\142\000\000\004\129\000\000\000\000\000\000\007\166\000\000\004\129\004\129\004\129\001\202\001\226\003f\000\000\000\000\003j\004\129\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\129\000\000\000\000\004\129\000\000\000\000\001\234\002&\001\254\004\129\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\n\000\000\001\206\000\000\004\129\000\000\004\129'\"\000\000\004\129\004\129\000\000\000\000\000\000\000\000\003r\001\210\002Z\000\000\000\000\000\000\003z\b9\003\138\003\186\003\198\b9\000\000\000\000\030\234\004\129(\238\000\000(\242\000\000\004\129\000\000\b9\000\000\000\000\000\000\b9\000\000\b9\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\214(\254\003\230\b9\000\000\000\000\000\000\000\000\000\000\000\000\b9\000\000\000\000\n\138\000\000\000\000\000\000\017z\000\000\000\000\000\000\b9\012\161\000\000\b9\000\000\000\000)\n\000\000\000\000\b9\b9\000\242\000\000\000\000\000\000\000\000\000\000\000\000\b9\012\161\012\161\000\000\012\161\012\161)\014\000\000\000\000\b9\b9\000\000\b9\000\000\000\000\000\000\000\000\000\000\b9\b=\000\000\000\000\000\000\b=\000\000\000\000\000\000\000\000\012\161\000\000\b9\000\000\b9\000\000\b=\b9\b9\000\000\b=\000\000\b=\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012\161\000\000\000\000\000\000\000\000\b=\000\000\000\000\b9\000\000\000\000\000\000\b=\000\000\000\000\000\000\000\000\012\161\000\000\017z\000\000\b9\000\000\b=\000\000\000\000\b=\000\000\000\000\000\000\000\000\000\000\b=\b=\000\242\000\000\000\000\000\000\000\000\000\000\012\161\b=\012\161\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b=\b=\000\000\b=\000\000\000\000\000\000\011.\012\161\b=\bA\012\161\012\161\000\000\bA\000\000\012\161\000\000\012\161\005\153\000\000\b=\012\161\b=\012\161\bA\b=\b=\000\000\bA\000\000\bA\000\000\000\000\000\000\000\000\000\000\005\153\005\153\000\000\005\153\005\153\000\000\000\000\bA\000\000\000\000\b=\000\000\000\000\000\000\bA\000\000\000\000\000\000\000\000\000\000\000\000\017z\000\000\b=\000\000\bA\000\000\005\153\bA\000\000\000\000\000\000\000\000\000\000\bA\bA\000\242\000\000\000\000\000\000\000\000\000\000\000\000\bA\000\000\000\000\000\000\000\242\000\000\000\000\000\000\000\000\bA\bA\000\000\bA\000\000\000\000\000\000\000\000\000\000\bA\bE\000\000\005\153\000\000\bE\000\000\000\000\000\000\000\000\000\000\000\000\bA\000\000\bA\000\000\bE\bA\bA\000\000\bE\000\000\bE\000\000\000\000\000\000\005\153\000\000\005\153\000\000\000\000\000\000\000\000\000\000\000\000\bE\000\000\000\000\bA\000\000\000\000\000\000\bE\005\153\005\153\000\000\000\000\011j\005\153\017z\000\000\bA\005\153\bE\005\153\000\000\bE\000\000\005\153\000\000\005\153\000\000\bE\bE\000\242\000\000\000\000\000\000\000\000\000\000\000\000\bE\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\bE\bE\000\000\bE\000\000\000\000\016~\000\000\000\000\bE\n\157\000\000\000\000\000\000\n\157\000\000\000\000\000\000\000\000\000\000\000\000\bE\000\000\bE\000\000\n\157\bE\bE\000\000\n\157\000\000\n\157\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\157\000\000\000\000\bE\000\000\000\000\000\000\n\157\000\000\016\226\000\000\000\000\000\000\000\000\000\000\000\000\bE\000\000\n\157\000\000\000\000\n\157\000\000\000\000\000\000\000\000\000\000\n\157\n\157\000\242\000\000\000\000\000\000\000\000\000\000\000\000\n\157\000\000\000\000\000\000\000\000\000\000\004\129\000\000\000\000\n\157\004\129\000\000\n\157\000\000\000\000\000\000\000\000\000\000\n\157\000\000\000\000\004\129\000\000\000\000\000\000\004\129\000\000\004\129\000\000\000\000\n\157\000\000\n\157\000\000\000\000\n\157\n\157\000\000\000\000\000\000\004\129\000\000\030b\000\000\000\000\000\000\000\000\004\129\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\157\000\000\004\129\000\000\000\000\004\129\000\000\000\000\000\000\004F\000\000\004\129\004\129\004\129\000\000\000\000\000\000\000\000\000\000\000\000\004\129\000\000\000\000\000\000\000\000\000\000\te\000\000\000\000\004\129\te\000\000\004\129\000\000\000\000\000\000\000\000\000\000\004\129\000\000\000\000\te\000\000\000\000\000\000\te\000\000\te\000\000\000\000\004\129\000\000\004\129!b\000\000\004\129\004\129\000\000\000\000\000\000\te\000\000\000\000\000\000\000\000\000\000\000\000\te\000\000\000\000\000\000\000\000\000\000\000\000\000\000\030\234\004\129\000\000\te\000\000\000\000\te\000\000\000\000\000\000\000\000\000\000\te\te\000\242\000\000\000\000\000\000\000\000\000\000\000\000\te\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\te\019y\000\000\te\003\154\019y\000\000/>\000\000\te\000\000\000\000/B\000\000\000\000\000\000\019y\000\000\000\000\000\000\000\000\te\019y\te)Z\000\000\te\te\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019y\000\000\000\000\000\000\te\000\000\000\000\019y\000\000\000\000\000\000\000\000\te\000\000\001\006\000\000\001\190\000\000\019y\000\000\000\000\019y\000\000\000\000\000\000\te\000\000\019y\019]\000\000\000\000\003\154\019]\000\000/^\000\000\019y/F\000\000/b\000\000\000\000\000\000\019]\000\000\019y\000\000\000\000\019y\019]\000\000\000\000\000\000\000\000\019y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019]\000\000\000\000/J\019y\000\000\019y\019]\000\000\019y\000\000\000\000\000\000\000\000\001\006\000\000\001\190\000\000\019]\nu\000\000\019]\000\000\nu\000\000\000\000\000\000\019]\000\000\000\000\019y\000\000\000\000\000\000\nu\000\000\019]/f\nu\000\000\nu\000\000\000\000\000\000\000\000\019]\019\221\000\000\019]\000\000\000\000\000\000\000\000\nu\019]\000\000\000\000\000\000\000\000\000\000\nu\000\000\000\000\000\000\000\000/j\019]\000\000\019]\000\000\000\000\019]\000\000\000\000\nu\000\000\000\000\000\000\000\000\000\000\nu\nu\000\000\000\000\000\000\000\000\019\185\000\000\000\000\nu\019\185\000\000\019]\000\000\000\000\019\185\000\000\000\000\nu\019\185\000\000\019\185\000\000\000\000\000\000\019\185\000\000\019\185\000\000\000\000\019\185\000\000\000\000\000\000\019\185\000\000\019\185\000\000\000\000\nu\019\185\nu\nu\000\000\nu\nu\000\000\019\185\000\000\019\185\000\000\000\000\000\000\000\000\000\000\000\000\019\185\nu\019\185\000\000\000\000\019\185\nu\000\000\003V\nu\000\000\019\185\019\185\000\000\019\185\000\000\000\000\000\000\000\000\000\000\019\185\019\185\nu\000\000\000\000\000\000\002\021\000\000\000\000\019\185\002\021\000\000\019\185\000\000\000\000\000\000\000\000\000\000\019\185\000\000\000\000\002\021\000\000\000\000\000\000\002\021\000\000\002\021\000\000\000\000\019\185\000\000\019\185\003b\000\000\019\185\019\185\000\000\000\000\019\185\002\021\019\185\003b\000\000\019\185\019\185\000\000\002\021\019\185\000\000\000\000\000\000\000\000)\166\000\000\000\000\019\185\019\185\002\021\000\000\000\000\002\021)\226\000\000\000\000\019\185\000\000\002\021\002\021\019\185\000\000\000\000\000\000\000\000\000\000\000\000\002\021\000\000\019\185\000\000\000\000\000\000\000\000\000\000\000\000\002\021\ti\000\000\002\021\000\000\ti\000\000\000\000\000\000\002\021\000\000\000\000\000\000\000\000\000\000\000\000\ti\000\000\000\000\000\000\ti\002\021\ti\002\021\000\000\000\000\002\021\002\021\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ti\000\000\000\000\000\000\002\021\000\000\000\000\ti\000\000\000\000\000\000\000\000\002\021\000\000\000\000\016~\000\000)\026\ti\n\193\000\000\ti\000\000\n\193\000\000\002\021\000\000\ti\ti\000\242\000\000\000\000\000\000\000\000\n\193\000\000\ti\000\000\n\193\000\000\n\193\000\000\000\000\000\000\000\000\ti\000\000\000\000\ti\000\000\000\000\000\000\000\000\n\193\ti\000\000\000\000\000\000\000\000\000\000\n\193\000\000\016\226\000\000\000\000\000\000\ti\000\000\ti\000\000\000\000\ti\ti\000\000\n\193\000\000\000\000\000\000\000\000\000\000\n\193\n\193\000\242\000\000\ti\000\000\000\000\000\000\000\000\n\193\000\000\000\000\ti\000\000\000\000\0071\000\000\000\000\n\193\0071\000\000\000\000\000\000\000\000\000\000\ti\000\000\000\000\000\000\000\000\0071\000\000\000\000\000\000\0071\000\000\0071\000\000\0071\n\193\000\000\n\193\0071\000\000\n\193\n\193\000\000\000\000\000\000\0071\000\000\000\000\000\000\0071\000\000\000\000\0071\0071\000\000\0071\000\000\000\000\000\000\000\000\000\000\n\193\000\000\0071\000\000\000\000\0071\000\000\0071\002\130\004F\000\000\0071\tN\n\193\0071\000\000\000\000\000\000\000\000\000\000\0071\017z\000\000\000\000\000\000\0071\000\000\000\000\0071\0071\000\000\000\000\0071\000\000\0071\tN\000\242\000\000\0071\000\000\000\000\000\000\000\000\0071\000\000\000\000\000\000\000\000\000\000\000\000\0071\000\000\0071\000\000\000\000\0071\0071\000\000\002V\000\000\000\000\0071\004\253\000\000\000\000\000\000\004\253\000\000\016\170\000\000\000\000\000\000\000\000\0071\000\000\0071\0071\004\253\0071\0071\000\000\004\253\000\000\004\253\000\000\000\000\000\000\000\000\000\000\0071\000\249\000\000\000\000\000\000\000\249\000\000\004\253\000\000\000\000\0071\000\000\000\000\000\000\004\253\002\234\000\249\000\000\000\000\000\000\000\249\000\000\000\249\0071\000\000\004\253\000\000\000\000\004\253\000\000\000\000\000\000\000\000\000\000\004\253\000\249\000\000\000\000\000\000\000\000\000\000\000\000\000\249\004\253\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\253\000\249\000\000\004\253\000\249\000\000\000\000\000\000\000\000\004\253\000\249\000\249\000\242\000\000\000\000\000\000\000\000\000\000\000\000\000\249\000\000\004\253\000\000\004\253\000\000\000\000\004\253\004\253\000\249\000\253\000\000\000\249\000\000\000\253\000\000\000\000\000\000\000\249\000\000\000\000\000\000\000\000\000\000\000\000\000\253\000\000\000\000\004\253\000\253\000\249\000\253\000\249\000\000\000\000\000\249\000\249\000\000\000\000\000\000\000\000\000\000\002\250\000\000\000\253\000\000\000\000\000\000\000\000\000\000\000\000\000\253\000\000\000\000\000\000\000\000\000\249\000\000\000\000\016~\000\000\000\000\000\253\bU\000\000\000\253\000\000\bU\000\000\000\249\000\000\000\253\000\253\000\242\000\000\000\000\000\000\000\000\bU\000\000\000\253\000\000\bU\000\000\bU\000\000\000\000\000\000\000\000\000\253\000\000\000\000\000\253\000\000\000\000\000\000\000\000\bU\000\253\000\000\000\000\000\000\000\000\000\000\bU\000\000\016\226\000\000\000\000\000\000\000\253\000\000\000\253\000\000\000\000\000\253\000\253\000\000\bU\000\000\000\000\000\000\000\000\000\000\bU\bU\000\242\000\000\000\000\000\000\001\202\002\018\001\230\bU\000\000\016~\000\253\000\000\000\000\0071\000\000\000\000\bU\0071\000\000\000\000\003v\000\000\000\000\000\253\000\000\001\234\0022\001\254\0071\000\000\000\000\000\000\0071\000\000\0071\000\000\002\n\bU\001\206\bU\000\000\000\000\bU\bU\002j\000\000\000\000\0071\000\000\000\000\000\000\002\014\001\210\002Z\0071\000\000\016\226\003z\000\000\003\138\003\186\003\198\000\000\bU\000\000\000\000\000\000\003\210\0071\000\000\000\000\rN\004F\000\000\0071\tN\000\242\nU\nU\nU\000\000\000\000\000\000\0071\000\000\000\000\000\000\000\000\000\000\003\214\000\000\003\230\0071\000\000\000\000\003\202\000\000\000\000\nU\nU\nU\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\nU\000\000\nU\000\000\0071\000\000\0071\n\153\000\000\0071\0071\n\153\000\000\000\000\000\000\nU\nU\nU\030R\000\000\000\000\nU\n\153\nU\nU\nU\n\153\000\000\n\153\000\000\0071\nU\000\000\000\000\000\000\000\000\000\000\000\000\0071\004F\000\000\n\153\000\000\000\000\000\000\000\000\000\000\000\000\n\153\000\000\000\000\000\000\000\000\nU\000\000\nU\000\000\000\000\000\000\n\153\000\000\000\000\n\153\000\000\000\000\000\000\000\000\000\000\n\153\n\153\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\153\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\153\000\000\000\000\n\153\000\000\000\000\000\000\000\000\000\000\n\153\000\000\000\000\003\190\000\000\nU\000\000\000\000\000\000\t]\000\000\000\000\n\153\t]\n\153 \138\000\000\n\153\n\153\000\000!>\000\000\000\000\000\000\t]\000\000\000\000\000\000\t]\000\000\t]\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\153\000\000\000\000\000\000\000\000\t]\000\000\000\000\000\000\000\000\000\000\000\000\t]\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t]\000\000\000\000\t]\000\000\000\000\000\000\000\000\000\000\t]\t]\000\000\001\202\002\018\001\230\000\000\000\000\000\000\t]\000\000\000\000\000\000\001m\000\000\000\000\000\000\001m\t]\000\000\000\000\t]\000\000\000\000\001\234\003\130\001\254\t]\001m\000\000\001m\000\000\001m\000\000\001m\002\n\000\000\001\206\000\000\t]\000\000\t]\000\000\002j\t]\t]\000\000\001m\000\000\000\000\002.\001\210\002Z\000\000\001m\000\000\003z\000\000\003\138\003\186\003\198\000\000\000\000\000\000\000\000\t]\003\210\000\000\001m\000\000\000\000\000\000\000\000\000\000\001m\001m\000\242\000\000\000\000\000\000\019\t\000\000\000\000\001m\019\t\000\000\000\000\000\000\003\214\000\000\003\230\000\000\001m\000\000\000\000\019\t\000\000\000\000\000\000\019\t\000\000\019\t\000\000\000\000\000\000\000\000\000\000\000\000\001\202\001\226\001\230\000\000\000\000\001m\019\t\001m\001m\000\000\001m\001m\000\000\019\t\000\000\000\000\000\000\000\000\n\022\000\000\000\000\001\234\002&\001\254\019\t\000\000\000\000\019\t\000\000\000\000\000\000\001m\002\n\019\t\001\206\000\000\000\000\000\000\000\000\000\000\002j\000\000\019\t\000\000\001m\000\000\000\000\002.\001\210\002Z\000\000\019\t\018\246\003z\019\t\003\138\003\186\003\198\000\000\000\000\019\t\n\193\000\000\003\210\000\000\n\193\000\000\000\000\000\000\000\000\000\000\000\000\019\t\000\000\019\t\000\000\n\193\019\t\019\t\000\000\n\193\000\000\n\193\000\000\000\000\003\214\007\t\003\230\000\000\000\000\007\t\000\000\000\000\000\000\000\000\n\193\000\000\000\000\019\t\000\000\000\000\007\t\n\193\000\000\000\000\007\t\000\000\007\t\000\000\000\000\000\000\021\186\000\000\n\193\000\000\000\000\n\193\000\000\000\000\000\000\007\t\000\000\n\193\n\193\000\000\000\000\000\000\007\t\000\000\000\000\007\162\n\193\007\166\000\000\000\000\000\000\000\000\000\000\007\t\000\000\n\193\007\t\000\000\n\193\000\000\000\000\000\000\007\t\000\000\n\193\000\000\000\000\000\000\000\000\000\000\000\000\007\t\000\000\000\000\000\000\000\000\n\193\000\000\n\193\000\000\007\t\n\193\n\193\007\t\000\000\000\000\000\000\000\000\000\000\007\t\007\001\000\000\000\000\000\000\007\001\000\000\000\000\000\000\000\000\000\000\006\241\007\t\n\193\007\t\006\241\007\001\007\t\007\t\000\000\007\001\002\130\007\001\000\000\000\000\000\000\006\241\000\000\000\000\000\000\006\241\000\000\006\241\000\000\000\000\007\001\000\000\000\000\007\t\000\000\000\000\000\000\007\001\000\000\000\000\006\241\000\000\000\000\000\000\000\000\000\000 \178\006\241\007\001\000\000\000\000\007\001\000\000\000\000\000\000\000\000\000\000\007\001\006\241\000\000\000\000\006\241\000\000\000\000\000\000\000\000\007\001\006\241\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007\001\006\241\000\000\007\001\000\000\000\000\000\000\000\000\000\000\007\001\006\241\000\000\000\000\006\241\000\000\000\000\000\000\000\000\000\000\006\241\007!\007\001\000\000\007\001\007!\000\000\007\001\007\001\000\000\000\000\000\000\006\241\000\000\006\241\000\000\007!\006\241\006\241\000\000\007!\000\000\007!\000\000\000\000\000\000\000\000\000\000\007\001\000\000\000\000\000\000\000\000\000\000\000\000\007!\000\000\000\000\006\241\000\000\000\000\"\234\007!\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000%\234\000\000\007!\000\000\000\000\007!\000\000\000\000\000\000\011I\000\000\007!\nQ\nQ\nQ\000\000\000\000\000\000\000\000\000\000\007!\000\000\000\000\000\000\000\000\000\000\000\000\011I\011I\007!\011I\011I\007!\nQ\nQ\nQ\000\000\000\000\007!\000\000\000\000\000\000\000\000\000\000\nQ\000\000\nQ\000\000\000\000\000\000\007!\000\000\007!\000\000\011I\007!\007!\000\000\000\000\nQ\nQ\nQ\020\141\020\141\020\141\nQ\000\000\nQ\nQ\nQ\000\000\000\000\000\000\000\000\011I\nQ\007!\000\000\000\000\000\000\000\000\000\000\000\000\020\141\020\141\020\141\016\146\000\000\000\000&Z\000\000\011I\000\000\000\000\020\141\000\000\020\141\nQ\000\000\nQ\000\000\000\000\000\000\000\000\000\000\001\202\001\226\001\230\022\n\020\141\020\141\020\141\000\000\000\000\011I\020\141\011I\020\141\020\141\020\141\000\000\000\000\000\000\000\000\000\000\020\141\001\234\001\238\001\254\000\000\000\000\011I\011I\000\000\000\000\011j\011I\002\n\000\000\001\206\011I\000\000\011I\000\000\000\000\000\000\011I\020\141\011I\020\141\000\000\007\206\002\014\001\210\002Z\001\202\002\018\001\230\003z\000\000\003\138\003\186\003\198\000\000\000\000\000\000\000\000\000\000\003\210\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\234\030\242\001\254\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\n\000\000\001\206\003\214\000\000\003\230\000\000\000\000\002j\000\000\000\000\001\202\001\226\001\230#\202\002.\001\210\002Z\000\000\000\000\000\000\003z\000\000\003\138\003\186\003\198\000\000\000\000\000\000\000\000\000\000\003\210\001\234\001\238\001\254\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\n\000\000\001\206\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\214\000\000\003\230\000\000\000\000\002\014\001\210\002Z\000\000\000\000\000\000\003z\000\000\003\138\003\186\003\198\001\202\001\226\001\230$*\000\000\003\210\000\000\000\000\000\000\n\185\000\000\000\000\000\000\n\185\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\234\001\238\001\254\n\185\000\000\000\000\003\214\n\185\003\230\n\185\000\000\002\n\000\000\001\206\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\185\001\202\004\170\001\230\002\014\001\210\002Z\n\185\000\000\000\000\003z\000\000\003\138\003\186\003\198\000\000\000\000\000\000\000\000\000\000\003\210\n\185\001\234\004\182\001\254\000\000\000\000\n\185\n\185\000\000\000\000\000\000\000\000\002\n\000\000\001\206\n\185\000\000\000\000\000\000\000\000\000\000\003\214\000\000\003\230\n\185\000\000\000\000\002.\001\210\002Z\000\000\000\000\000\000\003z\005\169\003\138\003\186\003\198\000\000\000\000\001\202\006\014\001\230\003\210\000\000\n\185\000\000\n\185\000\000\000\000\n\185\n\185\005\169\005\169\000\000\005\169\005\169\000\000\000\000\017\"\000\000\001\234\006\026\001\254\000\000\003\214\000\000\003\230\000\000\000\000\000\000\n\185\002\n\000\000\001\206\000\000\000\000\000\000\000\000\005\169*\202\000\000\000\000\000\000\000\000\000\000\011Y\002.\001\210\002Z\000\000\000\000\000\000\003z\000\000\003\138\003\186\003\198\000\000\000\242\000\000\000\000\000\000\003\210\011Y\011Y\000\000\011Y\011Y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\169\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\185\003\214\000\000\003\230\000\000\000\000\000\000\011Y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\169\000\000\005\169\005\185\005\185\000\000\005\185\005\185\000\000\000\000\000\000\000\000\000\242\000\000\000\000\000\000\000\000\005\169\005\169\000\000\000\000\011j\005\169\000\000\000\000\000\000\005\169\000\000\005\169\011Y\005\185\000\000\005\169\000\000\005\169\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\242\000\000\011Y\000\000\011Y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\185\000\000\011\158\011Y\000\000\000\000\011j\011Y\005\217\000\000\000\000\011Y\000\000\011Y\001\202\031\n\001\230\011Y\000\000\011Y\000\000\000\000\000\000\005\185\000\000\005\185\005\217\005\217\000\000\005\217\005\217\000\000\000\000\000\000\000\000\001\234\031\022\001\254\000\000\000\000\005\185\005\185\000\000\000\000\011j\005\185\002\n\000\000\001\206\005\185\000\000\005\185\000\000\005\217\000\000\005\185\000\000\005\185\000\000\000\000\005\201\002.\001\210\002Z\000\000\000\000\000\000\003z\000\000\003\138\003\186\003\198\000\000\000\242\000\000\000\000\000\000\003\210\005\201\005\201\000\000\005\201\005\201\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\217\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\214\000\000\003\230\000\000\000\000\000\000\005\201\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\217\000\000\005\217\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\242\000\000\000\000\000\000\000\000\005\217\005\217\000\000\000\000\011j\005\217\000\000\000\000\000\000\005\217\000\000\005\217\005\201\000\000\000\000\005\217\000\000\005\217\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\202-\214\001\230\000\000\000\000\000\000\000\000\000\000\000\000\005\201\000\000\005\201\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\234-\226\001\254\000\000\019m\005\201\005\201\000\000\019m\011j\005\201\002\n\000\000\001\206\005\201\000\000\005\201\000\000\000\000\019m\005\201\000\000\005\201\000\000\000\000\019m\002.\001\210\002Z\000\250\000\000\000\000\003z\t*\003\138\003\186\003\198\000\000\019m\000\000\000\000\000\000\003\210\000\000\tV\019m\000\000\000\000\007E\000\000\tZ\000\000\000\000\000\000\000\000\000\000\019m\000\000\000\000\019m\000\000\000\000\000\000 N\003\214\019m\003\230\000\000\000\000\000\000 v\000\000\000\000\000\000\019m\000\000\000\000\000\000\000\000\000\000\000\000&\022\000\000\019m \218\000\000\019m\000\000\000\000\000\000 \242\000\000\019m\000\000\000\000\000\000\000\000\000\000\007\017 \250\000\000\000\000\007\017\000\000\019m\000\000\019m\000\000!\n\019m\000\000\000\000\000\000\007\017\000\000\000\000\000\000\007\017/.\007\017\000\000\000\000\000\000\006\249\000\000\000\000\000\000\006\249\000\000!\018\019m!R\007\017\000\000\007E\007E\000\000\000\000\006\249\007\017\000\000\000\000\006\249\000\000\006\249\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007\017\000\000!\154\000\000\006\249\000\000\007\017\000\000\000\000\000\000\000\000\006\249\000\000\000\000\000\000\007\017\000\000\000\000\007)\000\000\000\000\000\000\007)\000\000\007\017\006\249\000\000\000\000\000\000\000\000\000\000\006\249\000\000\007)\000\000\000\000\000\000\007)\000\000\007)\006\249\000\000\000\000\000\000\000\000\007\017\000\000\007\017\000\000\006\249\007\017\007\017\007)\000\000\000\000\000\000\000\000\000\000\000\000\007)\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\249\007\017\006\249\007)\000\000\006\249\006\249\000\000\000\000\007)\000\000\000\000\000\000\000\000*\130\000\250\000\000\000\000\007)\t*\000\000\000\000\000\000\000\000\000\000\000\000\006\249\007)\000\000\000\000/\166\000\000\000\000\000\000\000\000\000\000\tZ\000\000\000\000+B\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007) N\007)\000\000\000\000\007)\007)\000\000 v\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000&\022\000\000\000\000 \218\000\000\000\000\000\000\007)\000\000 \242\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \250\000\000+\190\000\000\000\000\000\000\000\000\000\000\000\000!\n\000\000\000\000/6\000\000\000\000\000\000\000\000\000\000/V\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000!\018\000\000!R\000\000\000\000\007m\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000!\154")) and lhs = (16, "\000\014\000\r\000\012\000\011\000\n\000\t\000\b\000\007\000\006\000\005\000\004\000\003\000\002\000\001\000\000\001\019\001\019\001\018\001\018\001\018\001\018\001\017\001\016\001\016\001\015\001\014\001\r\001\012\001\012\001\012\001\012\001\012\001\012\001\012\001\012\001\012\001\012\001\012\001\012\001\012\001\012\001\012\001\011\001\011\001\n\001\t\001\b\001\b\001\b\001\b\001\b\001\b\001\b\001\b\001\007\001\007\001\007\001\007\001\007\001\007\001\007\001\007\001\006\001\006\001\006\001\005\001\005\001\004\001\003\001\003\001\003\001\002\001\002\001\001\001\001\001\001\001\001\001\001\001\001\001\000\001\000\001\000\001\000\001\000\001\000\001\000\000\255\000\255\000\255\000\255\000\255\000\254\000\254\000\254\000\254\000\253\000\252\000\251\000\251\000\251\000\250\000\250\000\250\000\250\000\250\000\250\000\250\000\249\000\249\000\249\000\249\000\249\000\249\000\248\000\248\000\247\000\247\000\247\000\247\000\246\000\246\000\246\000\245\000\245\000\245\000\245\000\244\000\243\000\243\000\243\000\243\000\243\000\242\000\242\000\241\000\241\000\240\000\240\000\240\000\239\000\239\000\239\000\239\000\239\000\239\000\239\000\239\000\239\000\239\000\239\000\238\000\238\000\237\000\237\000\236\000\236\000\235\000\234\000\233\000\232\000\231\000\231\000\230\000\229\000\229\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\227\000\227\000\227\000\226\000\225\000\225\000\225\000\225\000\224\000\224\000\223\000\223\000\223\000\222\000\221\000\221\000\221\000\221\000\221\000\221\000\220\000\219\000\218\000\218\000\217\000\217\000\216\000\216\000\215\000\214\000\214\000\213\000\213\000\212\000\211\000\211\000\210\000\209\000\208\000\208\000\208\000\208\000\208\000\208\000\208\000\207\000\206\000\205\000\204\000\204\000\204\000\203\000\203\000\203\000\203\000\203\000\203\000\202\000\201\000\201\000\201\000\201\000\201\000\201\000\200\000\200\000\200\000\200\000\200\000\200\000\200\000\200\000\200\000\200\000\200\000\200\000\200\000\200\000\200\000\200\000\200\000\200\000\200\000\200\000\199\000\199\000\199\000\199\000\199\000\199\000\199\000\199\000\199\000\199\000\199\000\199\000\199\000\199\000\199\000\199\000\199\000\199\000\199\000\199\000\198\000\198\000\198\000\198\000\198\000\198\000\198\000\198\000\198\000\198\000\198\000\198\000\198\000\198\000\198\000\198\000\198\000\198\000\198\000\198\000\197\000\197\000\196\000\196\000\196\000\196\000\196\000\196\000\196\000\196\000\196\000\196\000\196\000\196\000\196\000\196\000\196\000\196\000\196\000\196\000\196\000\195\000\195\000\194\000\194\000\194\000\193\000\193\000\193\000\193\000\193\000\193\000\193\000\192\000\192\000\192\000\191\000\191\000\191\000\191\000\190\000\190\000\190\000\190\000\189\000\189\000\188\000\188\000\187\000\187\000\186\000\186\000\185\000\185\000\184\000\184\000\183\000\183\000\182\000\182\000\181\000\181\000\180\000\180\000\179\000\179\000\179\000\178\000\178\000\178\000\178\000\177\000\177\000\176\000\176\000\175\000\175\000\174\000\174\000\174\000\174\000\174\000\173\000\173\000\173\000\173\000\172\000\172\000\172\000\171\000\171\000\171\000\171\000\171\000\171\000\171\000\170\000\170\000\170\000\170\000\170\000\170\000\170\000\169\000\169\000\168\000\168\000\167\000\167\000\167\000\167\000\167\000\167\000\166\000\166\000\165\000\165\000\164\000\164\000\163\000\163\000\162\000\162\000\161\000\161\000\160\000\160\000\159\000\158\000\158\000\158\000\158\000\158\000\157\000\157\000\156\000\156\000\156\000\155\000\155\000\155\000\155\000\155\000\155\000\155\000\155\000\155\000\154\000\154\000\153\000\153\000\152\000\152\000\151\000\150\000\150\000\150\000\150\000\150\000\150\000\150\000\150\000\150\000\150\000\150\000\150\000\150\000\150\000\150\000\150\000\149\000\148\000\147\000\146\000\146\000\145\000\145\000\145\000\144\000\144\000\144\000\144\000\144\000\143\000\142\000\142\000\141\000\140\000\140\000\139\000\139\000\138\000\138\000\137\000\137\000\137\000\137\000\137\000\137\000\136\000\136\000\135\000\135\000\134\000\134\000\134\000\134\000\134\000\134\000\134\000\134\000\134\000\134\000\134\000\134\000\134\000\134\000\134\000\134\000\134\000\134\000\133\000\133\000\132\000\132\000\131\000\131\000\130\000\130\000\130\000\130\000\130\000\130\000\130\000\130\000\130\000\130\000\130\000\130\000\130\000\130\000\130\000\130\000\130\000\130\000\130\000\130\000\130\000\130\000\130\000\130\000\130\000\130\000\130\000\130\000\130\000\130\000\130\000\130\000\130\000\130\000\129\000\129\000\128\000\128\000\127\000\127\000~\000~\000~\000~\000}\000}\000|\000|\000{\000{\000z\000z\000z\000y\000y\000x\000x\000w\000w\000v\000v\000u\000u\000t\000t\000s\000s\000s\000s\000r\000r\000q\000q\000q\000q\000q\000q\000q\000q\000q\000q\000q\000q\000p\000p\000p\000o\000n\000m\000l\000k\000j\000i\000h\000g\000f\000e\000d\000d\000d\000d\000d\000d\000d\000c\000c\000c\000c\000c\000b\000b\000b\000b\000b\000b\000a\000a\000`\000`\000`\000`\000`\000_\000_\000^\000^\000]\000\\\000[\000[\000Z\000Z\000Z\000Z\000Z\000Y\000Y\000X\000X\000W\000W\000V\000V\000V\000U\000U\000U\000U\000U\000U\000T\000T\000T\000S\000S\000S\000S\000S\000S\000S\000S\000S\000S\000S\000S\000S\000S\000S\000S\000S\000S\000S\000S\000S\000S\000S\000S\000S\000S\000S\000S\000S\000S\000R\000R\000R\000R\000R\000R\000Q\000Q\000Q\000Q\000Q\000Q\000P\000P\000O\000O\000N\000N\000M\000M\000L\000L\000K\000K\000J\000J\000J\000J\000I\000I\000I\000H\000H\000G\000G\000F\000F\000E\000E\000D\000D\000C\000C\000B\000B\000A\000A\000A\000A\000@\000@\000@\000@\000?\000?\000?\000?\000?\000?\000?\000?\000?\000?\000?\000?\000>\000>\000=\000=\000=\000=\000=\000=\000<\000<\000<\000;\000;\000;\000:\000:\000:\0009\0009\0008\0007\0006\0006\0006\0006\0006\0006\0006\0006\0006\0006\0006\0006\0006\0006\0006\0006\0006\0006\0006\0006\0005\0005\0005\0005\0005\0005\0004\0004\0004\0004\0004\0003\0003\0003\0003\0003\0003\0003\0003\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0001\0001\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000.\000.\000-\000-\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000+\000+\000*\000*\000*\000*\000*\000*\000*\000*\000*\000*\000*\000*\000*\000*\000*\000*\000*\000)\000)\000(\000(\000'\000'\000'\000'\000'\000'\000'\000'\000'\000'\000'\000'\000'\000'\000&\000&\000&\000&\000%\000%\000$\000$\000$\000#\000#\000\"\000!\000!\000 \000 \000 \000\031\000\030\000\029\000\028\000\028\000\028\000\028\000\028\000\028\000\028\000\028\000\028\000\028\000\027\000\027\000\026\000\026\000\025\000\024\000\024\000\023\000\022\000\022\000\022\000\022\000\022\000\021\000\021\000\021\000\021\000\020\000\019\000\019\000\018\000\018\000\018\000\017\000\017\000\017\000\016\000\016\000\016\000\016\000\016\000\016\000\015\000\015") and goto = - ((16, "\001\228\000\155\000\029\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\138\000\000\000\000\001_\001\146\000)\000P\000q\001\156\001T\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\152\000\000\000\000\000\000\000\000\000\000\001\208\000\000\000\000\000\000\001\242\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016 \003\"\004\026\004R\000\000\000\000\000\000\000\000\000\000\000\000\003\226\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016R\000\000\001\206\000\000\002\158;\208\004`\000\000\016R\004\186\000\000\003\212\000\000\005Z\000\000\000\000\000\000\000\000\000\000\005\156\000\000\006\156\007\026\000\000\000\000\006r\000\000\004\146\000\000\006\192\004\180\000\000\007\134\000\000\000\000\000\000\000\000\000\031\000\000\000\000\000\000\004\182\000\000\007\178\005\142\000\000\001\192\003\252\b*\000\000\tX\t\162\000\000\000\000\011\210\016R\000\0003\208\016R\bF\000\000\004|\003\144\002V\000\000\000\000\b`\006\170\021x\000\000\000\000\n^<\216\n~\000\000\012\184\011(\000\000\r\138\0154\180\210\000\000\180\232\000\000\000\209\000\000\000\000\003.\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\228=\012\n\024\t\204\nH\011V\011t\000\000\000\000\000\0004\132\n\208\000\000\000\000'\232\018\022\000\000\000\000\0008\000M\000\000\000\000\000\000\000\000\003\238\000\000\000\000\000\000\000\000=\\\000\000\b\238\000\000\011\142\000\000\n\018\000\0005B\018@\000\000\011\180\000\000\000\000\012J\000\000\n\178\000\000\000\000=\196\000\000\000\000\000\000\000\000\000\000\000\173\012\028]\146\012T\000\000\000\000G\202\012\142\163\208\r\018\000\000\000\000\144\212\rf\000\000\163\230\rz\000\000\000\000\146\216\r\180\000\000\001&\135\174\000\000\181P\001&\004x\000\000\000\000\000\000\000\000\181\146\000\000\182\004\001&\001&\001&\000\000\000\000\164\"\r\184\000\000\000\000\147t\r\214\000\000\000\000\000\000\000\000\014\154\000\000\000\000\000\000\n\236\000\000\000\000\014\194\000\000\011 \000\000\000\000\000\173\000\000>B\000\000\011\176\000\000\014\244\000\000\011\246\000\000\000\173\014\176\000\000\000\173\000\000>\238\000\173\014\190\164:\014\198\000\000\000\000\160\224\014\244\000\000\000\000\164\254\015(\000\000\000\000\162j\015p\000\000\015|\165R\015\138\000\000\000\000\171\150\015\184\000\000\000\000\165\154\015\194\000\000\000\000\171\198\015\202\000\000\171\216\018j\000\000? \000\173\015\212\165\178\015\224\000\000\000\000\172\n\015\234\000\000\000\000\1666\015\240\000\000\000\000\1720\015\244\000\000\016\002\166\186\016\006\000\000\000\000\172\180\016\026\000\000\000\000\166\226\016:\000\000\000\000\173P\016P\000\000\173\156\016z\000\000\000\000\173\188\016\128\000\000\000\000\000\173\000\000\001&\173\234\000\000\000\000\001&\173\254\000\000\000\000\r\212\017\030\000\000\000\000\000\000\000\000\000\000\015\240\000\000\006\228\017\208\000\000?\212\007 y,\000\000\000\000\000\000\000\000\000\173\000\000\000\000\000\000\014\004\000\000\000\000\000\000\000\000\000\000\000\000\004x\017\190\000\000\000\000\000\000\000\173#@\000\173?t\000\173\000\000\000\000y\146\000\000\000\000\018\152\000\000\000\000\000\000\000\000M\190kl\017\012\007\"\017\000\154\022\000\000\000\000\000\000\000\000?\138\000\173\000\000\154\\\000\000\000\000\000\000@>\000\173\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012\006\000\000\0174\007\220\017\234\000\000\000\000\000\000\000\000\005(\000\000\000\000\b\006\000\223\000\000\b8\007T\017T\bh\006V\0078\003\024\006 \tX\018\172\006<\b\160\000\b\tV\000\000\000\000\000\000\017\148\bz\023@\023\248\017\160\tX\004\150\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\196\t\178\024B\006|klA\140\024\174\000\000y\232A\154\000\000\000\000\000\000A\240\000\173\000\000\154l\000\000\000\000\000\000BP\000\173\000\000\000\000z4{6{\196\000\000\0013\000\000\000\000\000\000\018\200B\174\000\173\018\222\154\224\017\250\t\198\017\030\000\000\003\156\000\000\000\000\000\000\003\238\000\000\000\000\155..\196\000\165\000\000\000\000\003\204\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\155L\000\000\000\000\000\000C\b\000\173\000\000\000\000M@\000\000\000\000\000\000\005L\000\000\000\000\000\000\000\000\000\000\000\000\019t\156\030\000\000\018@\t\240\1562\000\000\000\000\000\000\003\"\000\000\156F\003\"\000\000\157\024\000\000\000\000\000\000D \000\173\000\000\000\000\132\156\000\000\000\000\000\000\000\000\000\000\003\"\1576\003\"\157\132\012\006\019\014\000\000\151p\000\000\000\000\000\000\000\000\003\"\000\000\158\b\000\000\000\000\000\000D\\\000\173\000\000\000\000\174\026\000\000\000\000\003\"D\128\000\173\000\000\158N\003\"\n*\000\000\003\"\000\000\000\000\003\"\000\000{\196\000\000\000\000\000\000\003\"|.\000\000\000\000\000\000\003\"\000\000\000\000\003\"\000\000\003\"\000\000\000\141\0198\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\174B\000\000\000\000\000\000\018@\158\218\003\"\000\000\000\000\000\000\159 \000\000\000\000\000\000D\188\000\173\000\000\000\000\174\136\000\000\000\000\018@\000\000\159\168\000\000\000\000\000\000EB\000\173\000\000\000\000\175\128\000\000\000\000\018@\175\142\000\000\159\242\000\000\000\000\000\000F\012\000\173\000\000\000\000\175\220\000\000\000\000\018@|\022\000\000\007\136\018@\025\006\000\000Fl\000\173\019J\000\000\000\000\001R\000\000\000\000\018\202\000\000\000\000\000\000\000\000\000\000\000\000\b\210\018\208\019|\025>\018\198\018\220\018\236\n2\001\128\001\176\n4||F\144GV\020h\019\252|\186x\200\000\000}F\019 \nJy\246\167$|\166}\250\181\b\019,\n\170\025|\019F\n\192\026<\019L\n\230Ctz\024\003\"\026\222\019\146\011\024\160\016\020\174\000\000HS\128\000\000\000\184\132\140\020\174\r\134T\002\000\000\000\184\133.\020\176\r\138TN\000\000\000\184\133Z\020\180\r\228T\208\000\000\000\184\133\230\020\196\r\232U\024\000\000\000\184\1340\020\202\r\236U\154\000\000\000\184\134\156\020\208\014\bU\230\000\000\000\184\135(\020\210\014\014Vh\000\000\000\184\135T\020\218\014\018V\176\000\000\000\184\136\030\020\222\014 W2\000\000\000\184\136t\020\228\014$W~\000\000\000\184\136\160\020\230\014\000\250\144\b\0210\015Lf\030\000\000\000\184\005R\000\000\000<\161\168\162\018\003\"\1448\0212\015Zfp\000\000\000\184\162\192\003\"\144\130\0216\015\\g\024\000\000\000\184\163\b\003\"\1456\0218\015hg4\000\000\000\184\003\248\145\134\021>\015\146g\188\000\000\000\184\146\018\021@\015\156hJ\021@\146^\021F\015\170i\n\000\000\000\184\t\150\146\180\021J\015\172iP\000\000\000\184\000\000\000\000\000\000\0210\000\000\000\000\000\000\000\000\000\000\000\000\000\184\0210\000\000i&\021P\015\178i\152\rJ\0210\000\000\000\000\000\000\000\000\005\022\0210\000\000i\220\000\000\021R\015\198j\162\rb\0210\000\000\000\000\000\000\007\128\0210\000\000\022\182\000\000\000\000\1672\000\000\001\006\000\000\017\n\000\000\022@\000\000\002\134\000\000\000\000\000\000\000\000\000\000\n\198\000\000\000\000\000\000\021\\\016\028k*\000\000\000\184\000\000\000\000\000\000/\226\000\0000B\000\000\000\000\000\000\000\000\000\000\147\020\021b\016(k\172\000\000\147\220\021d\016:k\244\000\000\000\184\000\184\1488\021h\016\017\150\021\206qv\000\173\000\000\001\168\017\174\022\182\000\000\000\000\000\000\000\000\000\000\000\000q\178\005~\000\000\017\184\023$\000\000\000\000\000\000\000\000\000\000\000\000\020\186\016\190\000\000\017\190\003\026\000\000\017\202\017\250\007\b\000\000\003b4$\000\000\006\022\000\000r\146\000\173\000\173\000\000\000\000\006\002\000\000\007\158\000\000\005\028\006\002\006\002\000\000\017\2524H\000\173r\218\000\173\017P\000\000\000\000\000\000\017`\000\000\000\000\003\214\000\000\006\216\022f\018,\023\186\022\020\000\000\000\000\0056\b\152\022t\000\000\000\000\0182\023\202\022$\000\000\017\130\028\n\000\187\018t\021\238\000\155\004\208\018v\022\210\000\000\000\000\023\1764\204\000\000\000\0005\136\000\000\017\186\000\000\007\224\000\000\000\000\000\000\000\000\000\000\000\000s\006\000\173\000\000\023\1786N\000\000\000\0006~\000\000\001D\018~\023F\000\000\000\000\150\026\020\208\007\174\000\000s\186\000\1736\218\000\000\000\0007\n\000\000\000\000\018\030\000\000\0064\000\000\000\000\000\000\000\000\000\000\000\000\021\232\000\000\000\000\150r\022\012\t\190\000\000t\"\000\1737T\000\000\000\0007\192\000\000\000\000\018\1408L\018:\000\000\018\154\018\156\0014\001`\018\186\014\224\018\196\023L8\244\018\158\000\000\018\202\018\210\b\142\000\000\002\2009:\000\000\b \000\000\018\224\029\248E\184\006P\021\224\006\140\000\000K\1380\\\000\000\r\206\000\000\000\000\r\206\000\000\000\000\r\206\t.\000\000\006\160\r\206\023R9\240\018\196\000\000\r\206\000\000M\252\000\000\176@\000\000\149\172\014\192\000\173\000\000\150\202\176R\000\000\150\222\000\000\004\228\000\000\000\000\000\000\006\002\000\000\000\000\000\000\000\000\r\206\000\000\000\000\019\014\000\000\0070\014\246\019,\000\000\019\0129\138\019z\000\000\000\000\000\000\019\160\000\000\000\000\001B\000\000\r\206\151(\000\000\007\144\r\206^P\000\000\019\174\022\142\019\018\023\226\022@\000\000w\162\019\236\022\152\000\000\000\000\000\000P(\018\198\000\000\000\000\000\000\000\000\000\000\000\000\0202\000\000\019\246\000\000\022<\019(\n\178\007\240\000\000\022\172\019:\011\170\000\000\014d\023\214\023~\019\250\022\180\000\000\000\000\000\000\000\000\000\000\000\000\020\006Q\192\000\000\000\000\000\000\0202\000\000\000\000\000\000\000\000\020\nSX\000\000\000\000\000\000\000\000\000\000\000\000\023v\002\156\0156\022x\005\196\019J\000\000\019z\000\000\000Q\000\000\000\000\000\000\000\000\000\000\000\000\000\000\022z\b\250\019~\000\000\019\128\000\000\004\172\015\242\023\240\023\152\020,\000\000\000\000\023\132\003\012\001\250\000\000\000\000\000\000\000,\004n\000\000\176x\000\000\000\000\003\"\000\000\163\142\000\000\000\000\000\000tj\000\173\000\000\000\000\176\198\000\000\000\000\003\"\003\"\000\000t\222\000\173\000\000\004\172\000\000\000\000\022b\019\180v\002\000\000\000\000\000\000\185\152\000\000\185\230\000\000\022d\019\188v\164\000\000\000\184\000\000\152\018\000\000\000\000\023\248\000\000\000\000\000\000\186:\000\000\022h\019\190v\194\000\000\000\184\000\000w,\000\000\000\000\000\000\000\000\000\0009\180\019\194\000\000\019\196\151\168\000\000\000\000\001&\1616\000\000\000\000\000\000\000\000\000\000wn\000\173\022(\167\160\022*\000\000\000\000\177\002\022,\000\000\000\000\167\250\0220\000\000\000\000\177n\0222\000\000\0154\011\192\000\000\000\000\012\006\000\000\000\000\000\000\015\178\022x\022\152\015\178\000\000\000\000\000\000\000\173\000\000\022z\012\208\000\000\000\000\012\226\000\000\000\000\000\000\000\000\000\173\000\149\004B\r\026\000\000\000\000\rR\000\000\000\000\000\000\000\000\r\142\000\000\000\000\r\154\000\000\000\000\000\000\000\000\000\000\n&\023\178\020V\000\000\000\000\023\158\000\244\002\030\000\000\000\000\000\000\000\000\b\162\016\208\023\240\011N\023\182\020|\000\000\000\000\023\162\001\024\b\140\000\000.\176\022\128\022\134\019\198\015\016\020\134\000\000\019\206\015l\020\136\000\000\022\136\022\138\019\234\022\182\022\180\016\022\007\030\000\000\020\024\016\168\000\000\016\180\020\192\000\000\0234\000\000\017\138\004n\020\198\022\254\020(\023B\000\000\018L\007\164\020\200\023\n\000\000\000\000\023H\022b\023p\000\000\000\000\000\000\n\144\tF\023\158\023v\000\000\020\206\000\000\018\178\b\232\000\000\020\234\000\000\000\147\018\196\n\b\000\000\000\000\r\202\000\000\000\000\022\180\020*\016z\022\004\022\182\020,\024l\022\200\000\000\000\000\152B\020\246\023\"\020H\024t\022\210\000\000\000\000\152V\020\248\023.\000\000\000\000\000\000f\234\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\254\000\000\022\212\020Z\019~\b\232\023\200\000\000\023F\000\000\023L\020d\012@\000\000\017\178\000\000\011\150\024\024\021\000\023P\000\000\000\000\000\000\000\000\000\000\000\000\004n\000\000\000\000w\216\000\173\022\160\168\026\022\162\000\000\000\000\177\156\022\164\000\000\000\000\168D\022\166\000\000\000\000\177\188\022\168\000\000\022\172\168d\022\174\000\000\000\000\178\n\022\176\000\000\000\000\169\"\022\178\000\000\000\000\1788\022\180\000\000\178V\022\202\000\000x\n\000\173\022\182\169l\022\184\000\000\000\000\178\134\022\186\000\000\000\000\169\132\022\190\000\000\000\000\178\180\022\202\000\000\022\206\169\198\022\208\000\000\000\000\178\212\022\212\000\000\000\000\170F\022\214\000\000\000\000\178\240\022\216\000\000\001&\179n\022\218\170\164\022\220\000\000\000\000\180\b\022\222\000\000\000\000\170\232\022\224\000\000\000\000\1808\022\226\000\000\001&\180\\\022\232\171n\022\234\000\000\000\000\180\164\022\238\000\000\000\000\171\132\022\242\000\000\000\000\180\182\022\244\000\000\011\190\000\000\000\000\000\173\000\000\000\000\000\000\000\000\000\000x\144\000\000\r@\000\000\023d\000\000\014\030\000\000\000\173\023j\000\000\0244\021\002\000\000\000\000\000\000:|\000\000;\030\000\000\000\000\000\000\000\000\000\000\011\n\000\000\000\000\000\000\001\016\001T\000\000\000\000\000\000\000\000\000\000\015\016\001T\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\183\000\000\000\000\000\000;\168\000\000\000\173\000\000\000z\000\000\000\000\000\000\001\134\000\000\000\000\000\000\001\220\000\000\000\000\000\000\000M\000\000\000,\000\000\000i\000\000\004n\000\000\000\019\000\000\000\000\000\000\153\012\003\"\000\000\000\000\005\238\000\000\000\000\000\000\000\000\n\198\005r\023n\004\n\000\000\000\000\000\000\000\000\000\000\000\000\023r\004\142\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000d\148\000\000\021\006\000\000\000\000\000\000\000\000\0060\bR\015L*\152\000\000\000\000\021\b@\204\000\000\000\000\000\000\021,s\210\000\000\000\000\000\000\000\000"), (16, "\t\132\004\000\004]\004\001\004\002\002\167\002b\004\003\011\134\002f\002\136\002\165\nF\000\182\002\166\002\167\005y\002\168\000\200\011\165\002\137\004\142\t\133\t\164\t\132\004\000\t\135\004\001\004\002\002\167\004\148\004\003\007}\0008\007\143\000\182\t\136\t\165\002\169\003\233\000\200\002\181\002\182\002\187\t\219\004\142\t\133\t\164\004l\002\139\t\135\002f\011\189\005\211\004\148\004\026\000\252\001\"\001\b\001\t\t\136\t\165\001#\004\167\001\002\001\005\002b\011\185\b[\002f\002g\002f\t\137\003\186\000\201\004]\t\168\002b\003\187\003\189\002f\002\136\004\000\n\192\004\001\004\002\002\167\004\167\004\003\002b\000\193\002\158\002f\002\136\011\193\004\030\t\137\000\204\011\190\tk\t\168\t1\004\142\003\020\004F\000\206\005{\002f\004<\nv\004/\004\148\t\138\000\165\004@\005\211\001\002\011\186\011\173\000\205\002\139\004l\000\252\004\187\002f\004m\b4\000A\007\143\t\139\001\002\001\005\002\139\002\188\tm\004h\t\138\000\157\011\194\004\006\t\193\004\177\002f\t3\004\167\nI\nJ\004\187\001\006\002\189\n\193\004<\002f\t\139\011\166\to\002\216\004@\t\169\001\002\000<\011\150\t4\004\006\004A\004\177\002f\t6\nh\011\175\006\186\tr\nM\007\217\000\167\t\170\001`\001\b\001\t\001r\t\194\001a\t\169\003V\004B\004\026\tp\t\142\001$\006\220\003\235\t\143\001(\001)\t\145\t\195\001\002\t\150\004m\t\170\004[\004R\b\025\006\178\004\187\004\192\nq\004A\004\193\000\193\004\207\t\142\t\162\006}\001!\t\143\004\178\003\236\t\145\000\193\004\006\t\150\004\177\002f\n\128\004\208\002\214\002\216\004\180\004\192\000q\002\167\004\193\t\163\004\207\002\215\t\162\002\216\t\132\004\000\004\178\004\001\004\002\002\167\0008\004\003\011\132\011\151\0008\004\208\005\127\002\216\004\180\000;\001\b\004\210\004\189\t\163\nn\004\142\t\133\t\164\t\132\004\000\t\135\004\001\004\002\002\167\004\148\004\003\t\179\001`\001\b\001\t\t\136\t\165\001a\000@\002b\004\210\006\176\002f\002\136\004\142\t\133\011\139\004\192\004i\t\135\004\193\002b\004\207\004\148\002f\002\136\000\193\011\152\004\178\t\136\t\165\000n\004\167\011\177\011\159\001\002\004]\004\208\001$\002\216\004\180\t\137\001(\001)\002b\t\168\001\002\002f\002g\000\144\000\252\004\000\004#\004\001\004\002\002\167\004\167\004\003\001\002\001\005\004]\004\028\004R\b\253\006\221\t\137\002b\004\210\tq\002f\002g\004\142\nt\nu\006\181\011\181\b\255\005\211\007n\t1\004\148\t\138\004l\011\160\003\241\002f\011\178\n\024\004\206\007\176\nt\nu\004\187\002b\001\002\005\211\002f\002\136\t\139\nM\007\217\t1\004a\tm\000\160\t\138\004l\006\181\004\006\002f\004\177\002f\006\226\004\167\011\161\002\151\004\187\nM\007\217\001(\b\178\t3\t\139\001\002\to\000\206\b\161\t\169\011\182\000\212\004/\002f\004\006\001$\004\177\002f\004\162\001(\001)\011\162\t4\001\002\b\162\t3\t\170\t6\b\185\003\240\000[\t^\t\192\t\169\004h\000\144\b\180\tp\t\142\001\b\000\193\004m\t\143\t\182\t4\t\145\t\216\001r\t\150\t6\t\170\003X\000\146\tF\011t\004\187\004\192\b\182\000_\004\193\000\148\004\207\t\142\t\162\nr\004m\t\143\004\178\000\193\t\145\011\141\004\006\t\150\004\177\002f\000c\004\208\000:\002\216\004\180\004\192\000>\b\183\004\193\t\163\004\207\t\194\t\162\t\215\t\132\004\000\004\178\004\001\004\002\002\167\002b\004\003\t\171\002f\002\136\004\208\t\195\002\216\004\180\ns\001\b\004\210\004\189\t\163\002\150\004\142\t\133\t\164\t\132\004\000\t\135\004\001\004\002\002\167\004\148\004\003\006\241\001`\001\b\001\t\t\136\t\165\001a\002b\001\b\004\210\002f\002g\002\161\004\142\t\133\t\164\004\192\006\221\t\135\004\193\005\222\004\207\004\148\002f\002\136\001&\001'\004\178\t\136\t\165\000x\004\167\011\213\004\002\002\167\011q\004\208\011s\002\216\004\180\t\137\004]\t1\000\148\n\025\t\196\t\197\002\165\002\151\000\252\002\166\002\167\001(\002\168\007\135\004\167\001\002\001\002\001\005\000\254\t\198\t\199\005\148\005\236\t\137\004i\004\210\001\002\t\173\000\144\004j\005\154\t\200\007\217\002\169\003\233\003\186\002\181\002\182\002\187\t\138\005\132\003\189\004n\t3\000\252\b[\004l\007\181\002f\002f\004\187\006'\001\002\001\005\002f\002\136\t\139\011\221\004\002\002\167\t\196\t\197\t4\t\138\003\234\000\206\004\006\t6\004\177\002f\bn\t=\0008\002\151\004\187\t\198\t\199\001(\007\138\001\b\t\139\001\002\nF\t\212\b\161\t\169\000\216\t\200\007\217\b\218\004\006\001$\004\177\002f\006D\001(\001)\002\151\002\b\001\002\b\162\001(\t\170\bo\b\169\001\002\000\170\001&\001'\t\169\001\007\001\b\001\t\000w\t\142\001\n\004]\002\200\t\143\b\184\b\161\t\145\003\152\004m\t\150\007\140\t\170\011\214\002\188\004\177\002f\b^\004\192\002\216\n\159\004\193\b\162\004\207\t\142\t\162\b\163\000v\t\143\004\178\002\189\t\145\007\177\002f\t\150\000\146\002\165\000\149\004\208\b\180\002\216\004\180\004\192\000\148\004^\004\193\t\163\004\207\004l\t\162\000\127\002f\002\011\004\178\t\132\004\000\t\160\004\001\004\002\002\167\b\182\004\003\004\208\000\184\002\216\004\180\006\199\002\186\004\210\000\252\t\163\003\235\011\224\011\225\000\193\004\142\011\227\001\002\001\005\011\222\t\135\004\177\002f\002b\004\148\b\183\002f\002g\004]\006{\t\136\011\229\004\210\004\030\006\175\002\151\n\255\005x\005\128\001(\001\011\nI\nJ\001\002\001r\000\194\004<\002\214\003\149\000\144\002\200\t\245\004@\000\139\001\002\003\165\002\215\004\167\002\216\011\201\004\002\002\167\000\197\000\208\n`\004m\t\137\001\012\nM\007\217\007s\001(\001)\005\211\004l\001\002\b\220\002f\001`\001\b\001\t\005\155\000\144\001a\004\030\000\193\tm\t\220\t\004\t\132\004\000\000\252\004\001\004\002\002\167\011\244\004\003\004<\000\142\001\002\001\005\001_\004A\004@\000\252\001\002\t\138\to\011\236\0045\004\142\011\237\001\002\001\005\0046\t\135\000\206\004\187\000\228\004\148\t\206\004/\004B\t\139\002h\t\136\011\245\000\193\004\000\000\156\004\001\004\002\002\167\004\006\004\003\004\177\002f\011\203\tp\005\211\001?\006}\001\224\001@\000\193\000\193\001A\001B\004\142\011\232\007\184\004m\004\167\004A\001`\001\b\001\t\004\148\000\193\001a\b\134\t\137\t\b\004\030\b\003\007\183\004W\b\161\005\211\t\170\000\146\000\211\000\147\004B\b[\007\185\004<\002f\000\148\006\181\b\161\t\142\004@\b\162\001\002\t\143\002Q\b\168\t\145\000\144\004\167\t\150\000\164\004\206\007\139\011\204\b\162\004\177\002f\004\192\b\193\t\138\004\193\000\146\004\207\000\186\t\162\000\163\006\177\001$\004\178\000\148\004\187\001(\001)\0045\000\252\001\002\t\139\004\208\004Q\002\216\004\180\000\193\001\002\001\005\b\170\t\163\004\006\000\206\004\177\002f\004A\002O\004/\t\132\004\000\000n\004\001\004\002\002\167\007\186\004\003\011\249\002b\001r\005\211\002f\002g\004\210\004\187\000\169\004B\000\193\0042\t\181\004\142\t\133\t\217\007\138\t\188\t\135\002\216\000\190\t\170\004\148\004\006\004<\004\177\002f\t\160\t\136\t\165\004@\002b\001\002\t\142\002f\002g\t1\t\143\005\211\004]\t\145\002b\001$\t\150\002f\002g\001(\001)\000\206\004]\001\002\004\192\004\"\004/\004\193\004\167\004\207\005\211\t\162\004\189\b\225\004]\004\178\007\140\t\137\b\157\t1\000\146\b\164\000\192\000\234\004\208\006\212\002\216\004\180\000\148\t1\004h\t3\t\163\004A\007\127\0045\000\189\000\144\004l\004Y\0046\002f\004\192\b\186\007\131\004\193\b\152\004\207\004l\002f\t4\002f\001\251\004\178\004\210\t6\007\134\t\138\004]\t:\004l\t3\004\208\002f\002\216\004\180\002b\000\196\004\187\002f\002g\t3\t\132\004\000\t\139\004\001\004\002\002\167\n\148\004\003\t4\n\166\001\249\002\031\004\006\t6\004\177\002f\003Z\t7\t4\011\236\004\210\004\142\011\237\t6\005\211\b\029\t\135\tA\007\142\t1\004\148\t\169\004l\000\193\003\186\002f\t\136\011\240\004\030\b\244\003\189\004U\002b\004m\004h\002f\002g\000\144\t\170\b\166\001\b\004<\002f\004m\n}\004\030\b\164\004@\004S\001\002\t\142\007\157\000\193\004\167\t\143\004m\0008\t\145\004<\b\229\t\150\t3\t\137\007G\004@\0045\001\002\t1\004\192\004f\0046\004\193\003]\004\207\004\030\t\162\000\146\004\031\000\199\004\178\t4\0045\000\193\000\193\000\148\t6\0046\004<\004\208\td\002\216\004\180\005\211\004@\002>\001\002\t\163\004A\005\211\004m\004i\t\149\t\138\004]\002b\004]\000\210\002f\002g\t3\007\169\007\171\007\173\004\187\004A\002G\006\181\004B\004\210\t\139\t\132\004\000\001r\004\001\004\002\002\167\003\151\004\003\t4\004\006\004\206\004\177\002f\t6\004B\000\144\002R\tv\005\211\007S\002J\004\142\t\133\004A\011\243\007\254\t\135\b\024\0045\004l\004\148\004l\002f\0046\002f\b+\t\136\t\175\000\146\t'\000\215\n\185\002f\004B\002M\t\170\000\148\001\007\001\b\001\t\002\151\003b\001\n\002\\\001(\001\015\000\193\t\142\001\002\n\129\000\226\t\143\001\029\004\167\t\145\b\194\004i\t\150\001\007\001\b\001\t\004\030\t\137\001\n\0044\004\192\001\017\000\193\004\193\004L\004\207\003\191\t\162\001\218\004<\t,\004\178\003\189\004\030\b0\004@\0048\001\002\b[\000\233\004\208\002f\002\216\004\180\ns\007\138\004<\000\193\t\163\nF\n\235\004m\004@\004m\001\002\002\250\002\167\t\138\001\007\001\b\001\t\006\181\007\227\001\n\t?\004]\001\015\002f\004\187\004\030\004\210\000\193\004:\001\029\t\139\004\206\n\178\001\027\004M\002f\000\193\000\146\004<\001-\004\006\004A\004\177\002f\004@\000\148\001\002\004\030\007\140\002\017\004E\b\164\001\011\nU\001\027\007\138\0012\002U\004A\t\178\004<\004B\000\144\b\028\007\248\002`\004@\004l\001\002\003\186\002f\nF\b5\001\011\t\012\003\189\t\170\001\219\004B\001\012\t\202\0045\002\216\001(\001)\007\132\0046\001\002\t\142\006\233\002\167\0045\t\143\006\181\004A\t\145\0046\001r\t\150\001\027\001\012\003\162\007\140\0008\001(\001)\004\192\004\206\001\002\004\193\002m\004\207\004\030\t\162\004B\004d\004A\004\178\001\011\nk\002\146\b*\0012\007\143\004P\004<\004\208\004\030\002\216\004\180\004p\004@\001\002\001\002\t\163\005\211\004B\007\138\nI\nJ\004<\002\195\000\144\001>\004m\001\012\004@\000\193\001\002\001(\001)\006\169\001?\001\002\011\143\001@\004\210\000\241\001A\001B\nV\ni\001\007\001\b\001\t\nM\007\217\001\n\004]\004\030\001\015\000\144\007[\001?\003i\003l\001@\001\029\004\206\001A\001B\004A\004<\000\146\007\140\0011\003w\001Y\004@\0045\001\002\000\148\000\193\001s\004C\n\186\004A\000\144\001\007\001\b\001\t\004B\000\193\001\n\nI\nJ\001\015\000\206\001Y\001>\t\148\t\153\004/\001\029\004l\000\167\004B\002f\001?\nF\007\157\001@\005\213\000\193\001A\001B\nV\ni\001\007\001\b\001\t\nM\007\217\001\n\003~\0045\001\015\006\181\004A\n\191\0046\004\030\000\244\001\029\007^\003\129\002\165\001\027\001\222\002\166\002\167\004\206\002\168\001Y\004<\nF\000\193\000\193\004B\001s\004@\n\188\001\002\000\146\003\132\001;\001\011\nz\000\193\000\144\0012\000\148\001\022\002\169\002\196\001\021\002\181\002\182\002\187\007\172\007\171\007\173\000\206\001\027\001r\nF\n\242\004/\003\164\003\138\001\020\004m\000\146\001\012\001z\003\245\004\030\001(\001)\007a\000\148\001\002\001\011\n\246\000\144\011n\0012\002\197\001r\004<\004A\011\145\005\137\001\027\0045\004@\000\193\001\002\000\146\004;\001\127\004\014\004\016\004\218\002\198\002\230\000\148\000\193\004\030\001\012\004B\007f\001\011\001(\001)\007\157\0012\001\002\004\025\000\144\001\025\004<\004H\001\007\001\b\001\t\000\193\004@\001\n\001\002\001\002\001\015\nI\nJ\001\236\000n\0045\001>\001\029\001\012\004{\004T\004\129\001(\001)\004A\001?\001\002\002\201\001@\007\157\000\193\001A\001B\nV\ni\001\237\000\193\000\144\nM\007\217\001/\004\139\002\005\002\189\004B\0008\002f\nI\nJ\000\146\004K\001\134\001>\n>\007\171\007\173\004A\000\148\001\002\0016\001Y\001?\000\193\000\193\001@\000\144\001s\001A\001B\nV\ni\004\145\004\183\0008\nM\007\217\004B\nI\nJ\000\193\004\197\000\144\001>\002\203\000\146\005\211\001\138\001\027\nA\007\171\007\173\001?\000\148\004\203\001@\000\144\001Y\001A\001B\nK\nL\000\193\001s\000\193\nM\007\217\001\011\001\007\001\b\001\t\0012\000\144\001\n\001r\004\213\001\015\001\242\005\145\001\236\000\146\002\214\003\180\001\029\000\193\006\193\004\224\001Y\000\148\000\144\002\221\007\157\002\216\001s\001\012\0019\004\230\006\207\001(\001)\007\157\001\237\001\002\005\187\002\167\001\007\001\b\001\t\002\003\005\211\001\n\005\211\004\236\001\015\000\193\000\193\001\236\005\189\002\167\000\146\001\029\003\184\004\030\000\193\004\242\007i\001j\000\148\007\157\001\007\001\b\001\t\007B\005\212\001\n\004<\000\193\001\015\001\237\004\248\001\236\004@\001r\001\002\001\029\001\238\005\163\000\146\004\254\007\192\nO\007\171\007\173\001\027\001G\000\148\007\157\000\193\001>\nR\007\171\007\173\001\237\000\146\b/\007\197\007\143\001?\000\193\002\001\001@\000\148\001\011\001A\001B\001\252\0012\000\146\000\193\007\201\007\152\007\217\001\242\001i\005\004\000\148\007\157\nZ\007\171\007\173\001\027\004A\007\157\000\146\000\193\bB\007\223\ta\b&\001\012\000\144\000\148\001Y\001(\001)\007M\000\193\001\002\001s\001\011\000\146\004B\011y\0012\001\027\n]\007\171\007\173\000\148\001\242\005\n\000\193\005\016\001\007\001\b\001\t\b8\n\194\001\n\004\030\000\193\001\015\007l\001\011\001\253\001r\001\012\0012\001\029\005\196\001(\001)\004<\001\242\001\002\nb\007\171\007\173\004@\001M\001\002\ne\007\171\007\173\b>\005\211\001\255\0008\006\181\011\157\001\012\005\211\b\155\001>\001(\001)\000\193\005\022\001\002\005\028\006\181\005\"\001?\t\155\004\030\001@\007\242\007\129\001A\001B\001\252\001\007\001\b\001\t\t\132\005(\001\n\004<\005.\001\015\0054\001Q\001\253\004@\n\193\001\002\001\029\005:\004A\005@\001>\001T\000\193\011\236\000\193\006\181\011\237\001Y\001\027\001?\t\135\005F\001@\001s\001\255\001A\001B\001\252\004B\005\211\t\136\000\146\005\211\011}\001>\bH\002\167\001\011\005L\000\148\001X\0012\001m\001?\bX\007\217\001@\001\242\t8\001A\001B\001\252\b,\004A\001Y\te\005R\001q\b1\000\193\001s\000\193\004\030\000\193\001\012\b\001\t\137\t\160\001(\001)\005X\005f\001\002\004B\005l\004<\001\027\000\193\001Y\005p\000\193\004@\000\193\001\002\001s\001\007\001\b\001\t\006\181\000\193\001\n\000\193\005\246\001\015\004\030\001\011\001\236\b$\005\255\0012\001\029\001v\006\b\000\193\n\135\001\242\t\138\004<\006\018\001\007\001\b\001\t\001\002\004@\001\n\001\002\b6\001\015\001\241\bS\000\193\001}\001\012\t\139\001\029\006\027\001(\001)\001>\006$\001\002\004A\006/\0068\001\007\001\b\001\t\001?\000\193\001\n\001@\006A\001\015\001A\001B\tN\001\136\006H\011\239\001\029\n\139\004B\000\193\000\193\bJ\006r\000\193\006w\001\002\006\181\011\158\000\193\000\206\004A\006\131\006\139\001\141\br\001\030\t\141\001\027\006\147\001Y\001\154\000\193\011\129\005\211\001\149\001s\n)\000\193\t\142\t\208\004B\000\193\t\143\001>\t\031\t\145\001\011\000\193\t\150\006\154\0012\001\027\001?\t8\006\160\001@\001\242\001\153\001A\001B\001\252\006\165\006\172\t\162\000\193\006\191\t\186\007\217\000\193\005\211\001\011\000\193\000\193\001\012\0012\006\205\001\027\001(\001)\004\030\000\193\001\002\n\147\001\157\t\163\002\165\000\193\001Y\002\166\002\167\006\222\002\168\004<\001s\000\193\001\011\000\193\001\012\004@\0012\001\002\001(\001)\000\193\000\193\001\002\001\007\001\b\001\t\005\211\000\193\001\n\002\169\003\r\001\015\002\181\002\182\002\187\006\237\001\161\b`\001\029\001\012\t\160\006\254\001\170\001(\001)\nE\007\217\001\002\000\193\001\165\007\003\007\n\002\165\000\193\001>\002\166\002\167\001\030\002\168\007\028\000\193\000\193\007!\001?\000\193\004A\001@\nx\011\001\001A\001B\001\252\001\169\bc\000\193\n\176\n\195\001\173\001>\002\169\003\233\001\177\002\181\002\182\002\187\004B\001\191\001?\n\153\006\223\001@\007,\001\186\001A\001B\bT\001\002\001\190\001Y\005\211\001\194\0075\001\198\001>\001s\007@\007K\005\211\001\027\001\207\007W\001\202\001?\b\145\007r\001@\007x\000\193\001A\001B\001\129\001\206\001Y\000\193\002\188\007\146\007\165\001\011\001s\007\167\007\214\0012\000\193\000\193\001\007\001\b\001\t\001\210\007\219\001\n\002\189\000\193\001\015\002f\000\193\n\199\007\217\001Y\001\214\001\029\007\234\t\160\005\211\001s\001\012\001\007\001\b\001\t\001(\001)\001\n\007\240\001\002\001\015\007\253\b\017\b\023\b\027\001\030\001\217\001\029\b!\001\221\000\193\002\188\b(\001\007\001\b\001\t\001\143\n\244\001\n\004\030\000\193\001\015\n\158\b\177\000\193\000\193\001\030\002\189\001\029\000\193\002f\b\181\004<\000\193\001\235\000\193\001\245\0014\004@\005\211\001\002\002\n\b.\002\023\000\193\000\193\002\030\001\030\000\193\000\193\bG\bW\b_\005\211\002\214\001>\001\027\000\193\001\180\bb\bj\bw\t\244\002\215\001?\002\216\002=\001@\tw\000\193\001A\001B\001\129\b}\002A\001\011\b\219\001\027\b\136\0012\000\193\b\147\002L\000\193\000\193\000\193\000\193\b\165\004A\004\000\000\193\004\001\004\002\002\167\000\193\004\003\001\011\002S\001\027\001Y\0012\t\160\001\012\005\211\002\214\001s\001(\001)\004B\004\142\001\002\b\151\b\172\002\215\002[\002\216\004\030\001\011\004\148\n\165\002_\0012\005\211\001\012\000\193\006m\b\254\001(\001)\004<\ty\001\002\000\193\000\193\000\193\004@\b\188\001\002\002l\b\198\t\024\000\193\000\193\000\193\001\012\001\007\001\b\001\t\001(\001)\001\n\004\167\001\002\011\020\002\142\000\193\001\007\001\b\001\t\005\211\000\193\001\n\003\015\000\193\001\015\002\145\001>\004\030\003\007\000\193\n\184\001\029\b\205\b\209\005\211\001?\004\030\b\238\001@\n\190\004<\001A\001B\001\129\t\022\004A\004@\001>\001\002\004<\t#\tc\t\027\000\193\000\193\004@\001?\001\002\000n\001@\002\194\bJ\001A\001B\001\129\004B\002\224\tB\001>\tE\001Y\004\187\t \005\211\003\019\t>\001s\001?\000\193\t&\001@\000\193\bM\001A\001B\001\129\t.\004\006\003\"\004\177\002f\001Y\005\211\003Y\003U\003[\004A\001s\003c\005\211\007\225\001\027\001\007\001\b\001\t\004A\tb\001\n\th\001\011\001\015\t|\001Y\011$\000\193\000\193\004B\001\029\001s\000\193\001\011\tf\t\147\004\189\0012\004B\000\193\007\218\be\004\030\005\211\t\152\n\234\000\193\000\193\005\211\001\012\005\211\007q\t\189\001(\001)\004<\005\211\001\002\005\211\003h\001\012\004@\000\193\001\002\001(\001)\004\192\000\193\001\002\004\193\000\193\004\207\007<\tj\000\193\005\211\t\191\004\178\t\203\t\205\0078\000\193\001\007\001\b\001\t\003v\004\208\001\n\002\216\004\180\001\015\003}\tn\001\007\001\b\001\t\005\211\001\029\001\n\tz\001\027\001\015\000\167\000\193\003\128\t\249\000\193\003\131\001\029\n\003\n\018\004A\n\030\n \n\134\005\211\004\210\000\193\n\138\001\011\005\211\005\211\001?\0012\001>\001@\000\193\bJ\001A\001B\t\129\004B\n\144\001?\000\193\t\144\001@\t\158\bJ\001A\001B\bT\003\137\t\166\003\174\t\176\001\012\003\168\b\144\005\211\001(\001)\005\211\005\211\001\002\n\150\005\211\011[\000\193\b\249\000\193\000\193\t\211\n\162\n\198\n\202\003\171\001\027\001Y\004\000\005\211\004\001\004\002\002\167\001s\004\003\005\211\005\211\001\027\n\210\005\211\005\211\005\211\nm\005\211\005\211\001\011\000\193\n\233\004\142\0012\000\193\000\193\n\241\000\193\000\193\000\193\001\011\004\148\003\244\000\193\0012\n|\005\211\003\251\n\021\004\r\n\136\n\140\004\019\001>\004\027\004(\001\012\000\193\004*\004?\001(\001)\001?\004O\001\002\001@\004z\001\012\001A\001B\bf\001(\001)\004\128\004\167\001\002\001\007\001\b\001\t\n\154\000\193\001\n\n\160\n\167\001\015\004\138\n\182\004\144\000\193\000\193\000\193\001\029\004\152\004\172\001\007\001\b\001\t\001Y\004\182\001\n\n\187\005\214\001\015\001s\000\193\004\196\n\208\n\216\004\202\001\029\n\230\n\248\011\131\000\193\011\230\011\241\004\212\004\223\000\193\004\229\001>\bJ\004\235\004\241\004\247\004\253\005\003\005\t\005\015\001?\005\021\001>\001@\011\246\004\187\001A\001B\bT\005\027\bJ\001?\005!\t\007\001@\005'\005-\001A\001B\bT\0053\004\006\0059\004\177\002f\005?\005E\005K\005Q\005W\005_\t\017\001\027\005e\005k\001Y\005s\005z\005\151\005\166\005\202\001s\005\245\005\254\006\007\006\017\001Y\006\026\006#\006.\001\027\001\011\001s\0067\006@\0012\006G\004\189\006]\006q\001\007\001\b\001\t\006v\006\130\001\n\006\138\006\146\001\015\001\011\006\153\006\159\006\162\0012\006\164\001\029\006\171\006\180\001\012\006\190\006\204\006\215\001(\001)\006\224\006\236\001\002\004\192\006\253\007\002\004\193\007\t\004\207\007\021\001\030\007\027\001\012\007 \004\178\007+\001(\001)\0074\007:\001\002\011&\007?\004\208\007J\002\216\004\180\004\000\007V\004\001\004\002\002\167\007w\004\003\007z\007{\007\145\007\213\007\164\007\190\007\199\007\221\007\228\007\233\007\239\007\252\b\005\004\142\b\007\b\016\b\026\b\022\b'\004\210\b \b\"\004\148\b%\001>\b3\b2\001\027\bF\b\r\bN\bR\bQ\001?\bV\ba\001@\b\197\bi\001A\001B\bT\001>\bl\bs\b{\001\011\b\130\b\141\b\196\0012\001?\b\189\b\190\001@\004\167\b\195\001A\001B\bT\b\199\b\200\b\206\b\211\b\215\b\233\b\240\t!\001Y\t9\tC\t\131\t}\001\012\001s\t~\t\130\001(\001)\t\146\t\161\001\002\t\156\t\157\t\159\004\000\001Y\004\001\004\002\002\167\t\184\004\003\001s\t\190\t\204\t\209\t\210\t\214\t\248\n\002\n\011\n\017\n4\n/\n3\004\142\n7\n;\nH\nl\np\n{\n\127\n\137\004\148\004\187\n\133\n\149\n\143\n\145\n\156\b\012\004\000\n\169\004\001\004\002\002\167\n\163\004\003\n\168\n\171\004\006\n\174\004\177\002f\n\173\n\181\001>\n\180\n\197\n\201\n\203\004\142\n\204\n\218\n\211\001?\004\167\n\212\001@\n\217\004\148\001A\001B\001\129\n\232\n\236\n\238\b\t\n\250\n\247\n\249\011\012\011\007\011\011\011\015\011\019\004\189\011\028\011\023\011\027\011\031\011#\0111\011,\0110\004\000\0114\004\001\004\002\002\167\001Y\004\003\0118\004\167\011A\011<\001s\011@\011D\011H\011S\011N\011R\011V\011Z\004\142\004\192\011e\011`\004\193\011d\004\207\011h\011l\004\148\011{\004\187\004\178\011\128\011\130\011\208\007\237\011\216\000\000\000\000\000\000\004\208\000\000\002\216\004\180\000\000\000\000\004\006\000\000\004\177\002f\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001\015\000\000\004\167\000\000\000\000\000\000\000\000\001\029\004\187\000\000\000\000\004\210\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\000\000\000\000\000\000\004\189\004\006\000\000\004\177\002f\000\000\000\000\000\000\000\000\004\142\000\000\000\000\000\000\000\000\003Q\000\000\000\000\000\000\004\148\000\000\004\000\000\000\004\001\004\002\002\167\007\224\004\003\000\000\000\000\000\000\004\192\000\000\000\000\004\193\000\000\004\207\000\000\004\189\000\000\004\187\004\142\004\178\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\148\004\208\004\167\002\216\004\180\001\027\004\006\007\014\004\177\002f\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\192\000\000\000\000\004\193\000\000\004\207\001\011\000\000\000\000\000\000\0012\004\178\000\000\004\210\000\000\004\167\000\000\000\000\000\000\000\000\004\208\000\000\002\216\004\180\004\189\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\000\000\000\000\004\187\000\000\000\000\000\000\000\000\004\000\004\210\004\001\004\002\002\167\004\192\004\003\000\000\004\193\000\000\004\207\004\006\000\000\004\177\002f\000\000\004\178\000\000\000\000\000\000\004\142\000\000\000\000\000\000\000\000\004\208\004\187\002\216\004\180\004\148\000\000\000\000\001\007\001\b\001\t\000\000\006\250\001\n\000\000\000\000\000\000\000\000\004\006\000\000\004\177\002f\000\000\004\189\001>\000\000\000\000\000\000\000\000\000\000\000\000\004\210\000\000\001?\000\000\000\000\001@\000\000\004\167\001A\001B\003W\000\000\000\000\007\177\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\192\004\189\000\000\004\193\004\000\004\207\004\001\004\002\002\167\000\000\004\003\004\178\000\000\000\000\000\000\001Y\000\000\000\000\000\000\000\000\004\208\001s\002\216\004\180\004\142\000\000\000\000\000\000\000\000\000\000\000\000\004\192\000\000\004\148\004\193\000\000\004\207\000\000\000\000\000\000\006\242\000\000\004\178\000\000\000\000\004\187\000\000\000\000\000\000\000\000\004\210\004\208\000\000\002\216\004\180\000\000\000\000\000\000\000\000\001\011\000\000\004\006\000\000\004\177\002f\000\000\004\167\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001\015\000\000\000\000\000\000\000\000\000\000\004\210\001\029\000\000\000\000\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\000\000\000\000\004\189\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\003\146\000\000\001\015\000\000\000\000\000\000\000\000\000\000\000\000\001\029\000\000\000\000\000\000\000\000\004\187\004\192\000\000\000\000\004\193\000\000\004\207\000\000\000\000\000\000\000\000\000\000\004\178\000\000\000\000\000\000\004\006\000\000\004\177\002f\000\000\004\208\000\000\002\216\004\180\003\159\001\027\000\000\002\165\000\000\000\000\002\166\002\167\001?\002\168\000\000\001@\000\000\000\000\001A\001B\000\000\000\000\007\205\000\000\001\011\000\000\000\000\000\000\0012\000\000\004\210\004\189\000\000\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\000\000\001\027\000\000\000\000\007\208\000\000\000\000\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\000\000\004\192\000\000\001\011\004\193\000\000\004\207\0012\002\197\000\000\000\000\000\000\004\178\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\208\000\000\002\216\004\180\002\198\003\192\000\000\000\000\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001\015\000\000\000\000\000\000\004\210\000\000\000\000\001\029\001>\000n\000\000\000\000\000\000\000\000\000\000\000\000\003\198\001?\000\000\000\000\001@\000\000\002\201\001A\001B\003\150\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001\015\003\194\002\189\000\000\000\000\002f\000\000\001\029\000\000\000\000\000\000\001>\000\000\000\000\000\000\000\000\001Y\000\000\000\000\000\000\001?\000\000\001s\001@\000\000\000\000\001A\001B\003\163\000\000\000\000\000\000\000\000\000\000\003\209\000\000\000\000\003\201\000\000\000\000\002\165\001\027\002\203\002\166\002\167\000\000\002\168\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001Y\000\000\000\000\000\000\000\000\001\011\001s\000\000\000\000\0012\000\000\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\000\000\001\027\000\000\002\214\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\012\002\221\000\000\002\216\001(\001)\000\000\000\000\001\002\001\011\000\000\000\000\000\000\0012\002\197\000\000\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\002\165\000\000\001\015\002\166\002\167\000\000\002\168\002\198\003\213\001\029\000\000\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\000\000\000\000\000\000\000\000\000\000\000\000\002\169\003\233\000\000\002\181\002\182\002\187\000\000\000\000\000\000\000\000\000\000\000n\003\215\001>\000\000\000\000\000\000\000\000\003\219\000\000\000\000\000\000\001?\000\000\002\201\001@\000\000\000\000\001A\001B\003\150\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\002\189\001\015\000\000\002f\000\000\000\000\000\000\000\000\001\029\001>\000\000\000\000\001\027\000\000\000\000\000\000\000\000\001Y\001?\000\000\000\000\001@\000\000\001s\001A\001B\003\204\000\000\000\000\000\000\000\000\001\011\003\230\000\000\000\000\0012\000\000\000\000\003\223\000\000\002\203\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\000\000\000\000\000\000\000\000\001Y\000\000\002\188\000\000\000\000\001\012\001s\000\000\004\142\001(\001)\000\000\000\000\001\002\000\000\000\000\000\000\004\148\002\189\000\000\000\000\002f\000\000\000\000\002\214\001\027\004\000\000\000\004\001\004\002\002\167\000\000\004\003\002\221\000\000\002\216\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\001\011\000\000\004\142\000\000\0012\000\000\004\167\000\000\000\000\000\000\000\000\004\148\004\142\000\000\000\000\t/\000\000\000\000\006b\000\000\000\000\004\148\000\000\000\000\000\000\001>\000\000\001\012\006Z\000\000\000\000\001(\001)\000\000\001?\001\002\000\000\001@\000\000\000\000\001A\001B\003\150\004\000\004\167\004\001\004\002\002\167\000\000\004\003\000\000\002\214\000\000\000\000\004\167\000\000\000\000\000\000\000\000\000\000\002\215\000\000\002\216\004\142\000\000\000\000\004\187\000\000\000\000\001Y\000\000\000\000\004\148\000\000\000\000\001s\t<\000\000\000\000\006Y\000\000\000\000\004\006\000\000\004\177\002f\000\000\000\000\000\000\000\000\000\000\001>\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\001?\000\000\000\000\001@\004\187\004\167\001A\001B\003\227\000\000\000\000\000\000\004\142\000\000\004\187\000\000\000\000\000\000\004\189\000\000\004\006\004\148\004\177\002f\000\000\000\000\000\000\000\000\004\165\000\000\004\006\000\000\004\177\002f\000\000\001Y\000\000\000\000\000\000\000\000\004\000\001s\004\001\004\002\002\167\000\000\004\003\000\000\005}\000\000\000\000\004\193\006\240\004\207\004\167\000\000\004\189\000\000\000\000\004\178\004\142\000\000\000\000\000\000\000\000\004\187\004\189\000\000\004\208\004\148\002\216\004\180\000\000\000\000\000\000\000\000\004\191\000\000\000\000\000\000\000\000\004\006\000\000\004\177\002f\000\000\004\192\000\000\000\000\004\193\000\000\004\207\000\000\000\000\000\000\000\000\004\192\004\178\004\210\004\193\000\000\004\207\004\167\000\000\000\000\000\000\004\208\004\178\002\216\004\180\000\000\000\000\000\000\000\000\004\187\000\000\004\208\004\189\002\216\004\180\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\006\000\000\004\177\002f\000\000\000\000\004\210\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\210\004\192\000\000\000\000\004\193\000\000\004\207\000\000\000\000\000\000\000\000\000\000\004\178\000\000\000\000\000\000\004\187\000\000\000\000\000\000\004\189\004\208\000\000\002\216\004\180\000\000\000\000\004\000\000\000\004\001\004\002\002\167\004\006\004\003\004\177\002f\000\000\000\000\000\000\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\004\142\000\000\000\000\004\192\004\210\000\000\004\193\000\000\004\207\004\148\000\000\000\000\000\000\004\142\004\178\000\000\004\220\000\000\000\000\000\000\000\000\004\189\004\148\004\208\000\000\002\216\004\180\000\000\000\000\004\219\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\004\167\004\001\004\002\002\167\000\000\004\003\000\000\000\000\000\000\004\192\000\000\004\210\004\193\004\167\004\207\000\000\000\000\000\000\000\000\004\142\004\178\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\148\004\208\000\000\002\216\004\180\000\000\000\000\005v\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\210\004\187\004\167\000\000\000\000\000\000\000\000\002\165\000\000\000\000\005\129\002\167\000\000\002\168\004\187\000\000\000\000\004\006\000\000\004\177\002f\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\006\000\000\004\177\002f\005\158\002\196\000\000\002\181\002\182\002\187\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\000\000\000\000\000\000\000\000\000\000\004\189\000\000\000\000\000\000\000\000\000\000\000\000\004\142\000\000\004\187\000\000\000\000\000\000\004\189\003\030\000\000\004\148\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\006\000\000\004\177\002f\000\000\004\192\005\169\003#\004\193\000\000\004\207\000\000\000\000\000\000\000\000\000\000\004\178\000\000\004\192\000\000\000\000\004\193\000\000\004\207\004\167\004\208\000\000\002\216\004\180\004\178\000\000\000\000\000\000\000\000\000\000\000\000\004\189\000\000\004\208\000\000\002\216\004\180\000\000\000\000\000\000\005\188\000\000\000\000\001\007\001\b\001\t\002\201\000\000\001\n\000\000\004\210\001\015\000\000\004\000\000\000\004\001\004\002\002\167\001\029\004\003\000\000\004\192\002\189\004\210\004\193\002f\004\207\000\000\000\000\000\000\000\000\000\000\004\178\004\142\004\000\000\000\004\001\004\002\002\167\004\187\004\003\004\208\004\148\002\216\004\180\000\000\000\000\000\000\005\140\005\136\000\000\000\000\000\000\000\000\004\142\004\006\000\000\004\177\002f\005\209\005\210\003$\000\000\004\148\000\000\000\000\000\000\000\000\n\219\000\000\005\139\004\210\000\000\000\000\000\000\004\167\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\004\001\004\002\002\167\001\027\004\003\000\000\004\189\000\000\000\000\000\000\000\000\004\167\000\000\000\000\002\214\000\000\000\000\n\220\004\142\n\221\000\000\000\000\001\011\002\221\000\000\002\216\0012\004\148\000\000\000\000\000\000\000\000\000\000\000\000\005\144\000\000\005}\000\000\000\000\004\193\005~\004\207\000\000\000\000\000\000\000\000\000\000\004\178\000\000\001\012\004\187\000\000\000\000\001(\001)\n\222\004\208\001\002\002\216\004\180\004\167\000\000\000\000\000\000\000\000\000\000\004\006\000\000\004\177\002f\000\000\004\187\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\004\210\004\006\000\000\004\177\002f\000\000\000\000\000\000\n\223\000\000\000\000\000\000\000\000\004\142\000\000\000\000\004\189\000\000\000\000\000\000\000\000\000\000\004\148\000\000\000\000\n\224\n\225\001>\n\226\005\147\000\000\000\000\000\000\000\000\004\187\000\000\001?\004\189\000\000\001@\000\000\000\000\001A\001B\002\014\000\000\004\192\000\000\000\000\004\193\004\006\004\207\004\177\002f\000\000\004\167\n\254\004\178\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\208\004\192\002\216\004\180\004\193\001Y\004\207\000\000\000\000\000\000\000\000\001s\004\178\000\000\000\000\000\000\000\000\000\000\n\228\000\000\004\189\004\208\n\229\002\216\004\180\n\231\000\000\000\000\n\237\n\239\004\210\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\n\251\004\001\004\002\002\167\000\000\004\003\004\187\004\192\004\210\000\000\004\193\000\000\004\207\000\000\000\000\000\000\000\000\000\000\004\178\004\142\000\000\n\252\004\006\000\000\004\177\002f\000\000\004\208\004\148\002\216\004\180\000\000\000\000\000\000\000\000\005\150\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\142\004\210\004\189\000\000\004\000\004\167\004\001\004\002\002\167\004\148\004\003\000\000\000\000\000\000\000\000\000\000\005\153\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\142\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\192\004\148\000\000\004\193\000\000\004\207\000\000\000\000\005\157\000\000\004\167\004\178\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\208\000\000\002\216\004\180\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\187\004\167\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\004\006\004\210\004\177\002f\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\142\004\000\000\000\004\001\004\002\002\167\000\000\004\003\004\187\004\148\000\000\004\000\000\000\004\001\004\002\002\167\005\162\004\003\000\000\000\000\000\000\004\142\000\000\004\189\004\006\000\000\004\177\002f\000\000\000\000\004\148\000\000\004\187\000\000\000\000\000\000\000\000\005\165\000\000\000\000\006K\000\000\004\167\000\000\000\000\000\000\000\000\000\000\004\006\000\000\004\177\002f\000\000\004\192\000\000\000\000\004\193\000\000\004\207\000\000\004\189\000\000\000\000\004\167\004\178\000\000\006L\000\000\000\000\000\000\000\000\000\000\000\000\004\208\000\000\002\216\004\180\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\189\000\000\000\000\000\000\000\000\000\000\004\192\000\000\000\000\004\193\000\000\004\207\000\000\000\000\000\000\000\000\000\000\004\178\004\187\004\210\000\000\000\000\000\000\000\000\000\000\000\000\004\208\000\000\002\216\004\180\004\192\000\000\000\000\004\193\004\006\004\207\004\177\002f\000\000\004\187\004\000\004\178\004\001\004\002\002\167\000\000\004\003\000\000\000\000\004\005\004\208\000\000\002\216\004\180\000\000\004\006\004\210\004\177\002f\000\000\004\142\000\000\000\000\000\000\000\000\004\006\000\000\004\177\002f\004\148\004\189\000\000\000\000\000\000\000\000\000\000\005\168\000\000\000\000\000\000\004\210\000\000\000\000\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\004\189\000\000\001\162\000\000\000\000\000\000\000\000\000\000\000\000\004\192\000\000\004\167\004\193\000\000\004\207\000\000\006N\000\000\000\000\004\000\004\178\004\001\004\002\002\167\000\000\004\003\000\000\000\000\000\000\004\208\004\192\002\216\004\180\004\193\000\000\004\207\000\000\000\000\000\000\004\142\000\000\004\178\000\000\000\000\000\000\000\000\000\000\000\000\004\148\000\000\004\208\004\178\002\216\004\180\000\000\005\171\000\000\000\000\000\000\004\210\004\179\000\000\002\216\004\180\000\000\000\000\000\000\000\000\000\000\002\165\000\000\004\187\002\166\002\167\000\000\002\168\000\000\000\000\000\000\000\000\004\210\004\167\000\000\000\000\005\199\000\000\000\000\004\006\000\000\004\177\002f\000\000\000\000\005\205\000\000\000\000\002\169\003\233\001\011\002\181\002\182\002\187\001\178\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001\015\000\000\004\000\000\000\004\001\004\002\002\167\001\029\004\003\000\000\004\189\000\000\001\012\000\000\003\234\000\000\001(\001)\000\000\000\000\001\002\000\000\004\142\000\000\000\000\000\000\000\000\000\000\004\187\000\000\000\000\004\148\000\000\000\000\000\000\000\000\000\000\005\191\005\195\000\000\004\192\000\000\000\000\004\193\004\006\004\207\004\177\002f\000\000\000\000\004\000\004\178\004\001\004\002\002\167\000\000\004\003\000\000\000\000\000\000\004\208\000\000\002\216\004\180\004\167\000\000\000\000\000\000\000\000\000\000\004\142\000\000\000\000\000\000\000\000\000\000\000\000\001\027\002\188\004\148\004\189\000\000\000\000\000\000\000\000\001?\005\198\000\000\001@\000\000\004\210\001A\001B\000\000\002\189\000\000\001\011\002f\000\000\000\000\0012\000\000\000\000\000\000\000\000\004\000\000\000\004\001\004\002\002\167\004\192\004\003\004\167\004\193\000\000\004\207\000\000\000\000\000\000\000\000\001Y\004\178\000\000\001\012\004\187\004\142\000\000\001(\001)\000\000\004\208\001\002\002\216\004\180\004\148\003\235\000\000\000\000\000\000\000\000\004\006\005\201\004\177\002f\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\210\005x\005\128\000\000\000\000\004\142\000\000\004\167\000\000\000\000\000\000\002\214\004\187\000\000\004\148\000\000\004\189\000\000\000\000\000\000\002\215\005\204\002\216\000\000\000\000\000\000\000\000\001>\004\006\000\000\004\177\002f\000\000\000\000\000\000\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\002\014\005\206\004\192\004\167\000\000\004\193\000\000\004\207\000\000\000\000\000\000\000\000\t\132\004\178\000\000\000\000\000\000\000\000\000\000\000\000\004\189\000\000\004\208\004\187\002\216\004\180\000\000\001Y\000\000\000\000\000\000\011\236\000\000\001s\011\237\000\000\000\000\000\000\t\135\004\006\000\000\004\177\002f\000\000\000\000\000\000\000\000\000\000\t\136\000\000\004\192\000\000\004\210\004\193\000\000\004\207\004\000\000\000\004\001\004\002\002\167\004\178\004\003\004\187\000\000\000\000\000\000\000\000\000\000\000\000\004\208\000\000\002\216\004\180\000\000\004\189\004\142\000\000\000\000\004\006\000\000\004\177\002f\000\000\t\137\004\148\000\000\000\000\000\000\000\000\000\000\000\000\005\208\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\210\000\000\000\000\000\000\000\000\004\192\000\000\000\000\004\193\000\000\004\207\000\000\000\000\000\000\000\000\004\189\004\178\004\000\004\167\004\001\004\002\002\167\000\000\004\003\t\138\004\208\000\000\002\216\004\180\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\142\000\000\000\000\000\000\t\139\000\000\000\000\000\000\004\192\004\148\000\000\004\193\000\000\004\207\000\000\000\000\005\217\000\000\004\210\004\178\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\004\208\011\238\002\216\004\180\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\142\004\187\004\167\000\000\000\000\000\000\000\000\000\000\000\000\004\148\t\141\000\000\000\000\000\000\000\000\000\000\005\220\004\006\004\210\004\177\002f\000\000\t\142\000\000\000\000\000\000\t\143\000\000\000\000\t\145\000\000\004\000\t\150\004\001\004\002\002\167\000\000\004\003\000\000\000\000\000\000\000\000\004\167\000\000\000\000\000\000\000\000\t\162\000\000\000\000\000\000\004\142\000\000\004\189\000\000\000\000\000\000\000\000\000\000\000\000\004\148\000\000\004\187\000\000\000\000\000\000\000\000\006\r\t\163\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\006\000\000\004\177\002f\000\000\004\192\000\000\000\000\004\193\000\000\004\207\000\000\000\000\000\000\000\000\004\167\004\178\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\187\004\208\000\000\002\216\004\180\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\189\000\000\000\000\000\000\004\006\000\000\004\177\002f\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\000\000\000\000\004\210\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\142\004\192\000\000\000\000\004\193\000\000\004\207\000\000\000\000\004\148\004\187\004\189\004\178\000\000\000\000\000\000\006\022\000\000\000\000\000\000\000\000\004\208\000\000\002\216\004\180\000\000\004\006\000\000\004\177\002f\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\192\004\167\000\000\004\193\000\000\004\207\000\000\000\000\000\000\000\000\004\210\004\178\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\208\004\189\002\216\004\180\000\000\000\000\000\000\000\000\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\142\004\210\004\192\000\000\000\000\004\193\000\000\004\207\000\000\004\148\000\000\000\000\004\187\004\178\000\000\000\000\006\031\004\000\000\000\004\001\004\002\002\167\004\208\004\003\002\216\004\180\000\000\000\000\004\006\000\000\004\177\002f\000\000\000\000\000\000\000\000\000\000\004\142\000\000\000\000\000\000\004\000\004\167\004\001\004\002\002\167\004\148\004\003\000\000\000\000\000\000\000\000\004\210\006^\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\142\000\000\000\000\004\189\000\000\000\000\000\000\000\000\000\000\004\148\000\000\004\000\000\000\004\001\004\002\002\167\006`\004\003\004\167\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\142\000\000\004\192\000\000\000\000\004\193\000\000\004\207\000\000\004\148\004\187\004\167\000\000\004\178\000\000\000\000\006e\000\000\000\000\000\000\000\000\000\000\004\208\000\000\002\216\004\180\004\006\000\000\004\177\002f\000\000\000\000\000\000\000\000\n\219\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\167\000\000\000\000\002\165\000\000\004\187\002\166\002\167\000\000\002\168\004\210\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\189\004\006\000\000\004\177\002f\000\000\n\220\000\000\n\221\004\187\002\169\002\170\000\000\002\181\002\182\002\187\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\006\000\000\004\177\002f\000\000\004\192\000\000\000\000\004\193\000\000\004\207\000\000\004\189\000\000\000\000\004\187\004\178\000\000\000\000\n\222\004\000\000\000\004\001\004\002\002\167\004\208\004\003\002\216\004\180\000\000\000\000\004\006\000\000\004\177\002f\000\000\004\189\000\000\000\000\000\000\004\142\000\000\004\192\000\000\000\000\004\193\000\000\004\207\000\000\004\148\000\000\000\000\000\000\004\178\000\000\004\210\006h\000\000\n\223\000\000\000\000\000\000\004\208\000\000\002\216\004\180\004\192\004\189\000\000\004\193\000\000\004\207\000\000\000\000\000\000\n\224\n\225\004\178\n\226\000\000\002\188\000\000\004\167\000\000\000\000\000\000\004\208\000\000\002\216\004\180\000\000\000\000\004\210\000\000\000\000\000\000\002\189\004\192\000\000\002f\004\193\004\000\004\207\004\001\004\002\002\167\n\253\004\003\004\178\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\210\004\208\000\000\002\216\004\180\004\142\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\148\000\000\000\000\000\000\n\228\000\000\000\000\006\244\n\229\000\000\000\000\n\231\004\187\000\000\n\237\n\239\000\000\004\210\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\000\000\004\006\n\251\004\177\002f\004\000\004\167\004\001\004\002\002\167\000\000\004\003\004\142\000\000\000\000\000\000\002\214\000\000\000\000\000\000\000\000\004\148\000\000\n\252\000\000\002\215\000\000\002\216\006\247\000\000\000\000\000\000\000\000\000\000\006K\000\000\000\000\004\189\000\000\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\167\000\000\000\000\000\000\000\000\000\000\004\142\000\000\000\000\000\000\000\000\000\000\004\187\004\192\000\000\004\148\004\193\000\000\004\207\000\000\000\000\000\000\007p\000\000\004\178\000\000\000\000\000\000\004\006\000\000\004\177\002f\000\000\004\208\000\000\002\216\004\180\000\000\000\000\000\000\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\004\167\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\187\004\142\000\000\004\210\004\189\000\000\000\000\000\000\000\000\000\000\004\148\000\000\000\000\004\005\000\000\000\000\004\006\007u\004\177\002f\000\000\000\000\000\000\000\000\004\000\000\000\004\001\004\002\002\167\004\006\004\003\004\177\002f\000\000\004\192\000\000\000\000\004\193\000\000\004\207\000\000\000\000\000\000\004\167\004\142\004\178\000\000\000\000\004\187\000\000\000\000\000\000\004\189\004\148\004\208\000\000\002\216\004\180\000\000\000\000\007\137\000\000\000\000\000\000\004\006\000\000\004\177\002f\000\000\000\000\000\000\006M\000\000\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\004\192\001\015\004\210\004\193\004\167\004\207\000\000\000\000\001\029\000\000\000\000\004\178\000\000\000\000\000\000\000\000\000\000\000\000\004\189\000\000\004\208\004\187\002\216\004\180\004\178\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\179\000\000\002\216\004\180\004\006\007\160\004\177\002f\000\000\000\000\004\000\000\000\004\001\004\002\002\167\004\192\004\003\004\210\004\193\000\000\004\207\000\000\000\000\000\000\000\000\007\163\004\178\000\000\000\000\000\000\004\142\004\187\000\000\000\000\000\000\004\208\000\000\002\216\004\180\004\148\004\189\000\000\000\000\000\000\000\000\001\027\007\216\004\006\000\000\004\177\002f\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\011\004\210\000\000\000\000\0012\000\000\004\192\000\000\004\167\004\193\000\000\004\207\000\000\000\000\000\000\000\000\000\000\004\178\000\000\004\189\000\000\000\000\000\000\000\000\000\000\000\000\004\208\001\012\002\216\004\180\000\000\001(\001)\000\000\000\000\001\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\192\000\000\000\000\004\193\000\000\004\207\000\000\004\210\000\000\000\000\000\000\004\178\004\000\000\000\004\001\004\002\002\167\000\000\004\003\004\187\004\208\000\000\002\216\004\180\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\142\000\000\000\000\004\006\000\000\004\177\002f\000\000\000\000\004\148\001>\000\000\000\000\000\000\000\000\000\000\b<\002\165\004\210\001?\005\129\002\167\001@\002\168\000\000\001A\001B\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\189\000\000\000\000\004\167\000\000\005\158\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\000\000\001Y\000\000\000\000\000\000\000\000\000\000\007\168\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\192\000\000\000\000\004\193\000\000\004\207\000\000\000\000\003\030\000\000\000\000\004\178\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\004\208\000\000\002\216\004\180\000\000\005\169\003#\000\000\000\000\000\000\000\000\000\000\000\000\004\187\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\006\004\210\004\177\002f\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001\015\000\000\005\188\000\000\000\000\000\000\000\000\001\029\002\201\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001\015\000\000\000\000\000\000\000\000\004\189\002\189\001\029\000\000\002f\000\000\000\000\000\000\b\155\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001\024\000\000\000\000\000\000\000\000\004\192\001\011\001\026\004\193\000\000\004\207\000\000\000\000\005\209\007\222\003$\004\178\000\000\000\000\000\000\004\000\000\000\004\001\004\002\002\167\004\208\004\003\002\216\004\180\001\027\000\000\000\000\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\004\142\001\002\000\000\000\000\n'\000\000\000\000\001\027\001\011\004\148\000\000\000\000\0012\002\214\000\000\004\210\b\214\000\000\000\000\000\000\000\000\000\000\002\221\000\000\002\216\000\000\001\011\000\000\000\000\000\000\0012\000\000\000\000\000\000\000\000\001\012\000\000\001\027\000\000\001(\001)\000\000\004\167\001\002\000\000\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\001\012\000\000\001\140\001\011\001(\001)\000\000\001\215\001\002\000\000\000\000\000\000\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\000\000\000\000\004\142\000\000\000\000\000\000\000\000\001>\000\000\n#\004\187\004\148\000\000\000\000\000\000\000\000\001?\000\000\b\217\001@\000\000\000\000\001A\001B\b\160\001>\004\006\000\000\004\177\002f\000\000\000\000\000\000\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\b\173\000\000\004\167\b\176\000\000\000\000\000\000\000\000\000\000\001Y\000\000\000\000\000\000\000\000\000\000\001s\000\000\001\011\000\000\000\000\004\189\000\000\001?\000\000\000\000\001@\000\000\001Y\001A\001B\000\000\000\000\000\000\001s\000\000\000\000\000\000\000\000\000\000\004\000\000\000\004\001\004\002\002\167\001\012\004\003\000\000\000\000\001(\001)\004\192\000\000\001\002\004\193\000\000\004\207\000\000\001Y\000\000\004\142\000\000\004\178\004\187\004\000\000\000\004\001\004\002\002\167\004\148\004\003\004\208\000\000\002\216\004\180\000\000\b\232\000\000\000\000\004\006\000\000\004\177\002f\000\000\004\142\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\148\000\000\000\000\000\000\000\000\000\000\000\000\b\235\004\210\004\167\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\004\001\004\002\002\167\004\189\004\003\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\004\167\000\000\000\000\000\000\004\142\000\000\000\000\000\000\004\000\000\000\004\001\004\002\002\167\004\148\004\003\000\000\000\000\000\000\000\000\004\192\b\248\000\000\004\193\000\000\004\207\000\000\000\000\001Y\004\142\000\000\004\178\000\000\000\000\000\000\000\000\000\000\004\187\004\148\000\000\004\208\000\000\002\216\004\180\000\000\b\251\004\000\004\167\004\001\004\002\002\167\000\000\004\003\004\006\000\000\004\177\002f\000\000\000\000\000\000\000\000\004\187\000\000\000\000\000\000\000\000\004\142\000\000\000\000\000\000\004\210\004\167\000\000\000\000\000\000\004\148\000\000\004\006\000\000\004\177\002f\000\000\t\016\000\000\000\000\000\000\000\000\000\000\000\000\004\189\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\004\187\004\167\000\000\000\000\000\000\000\000\004\189\000\000\000\000\000\000\000\000\000\000\004\192\004\142\000\000\004\193\004\006\004\207\004\177\002f\000\000\000\000\004\148\004\178\004\187\000\000\000\000\000\000\000\000\t\019\000\000\000\000\004\208\000\000\002\216\004\180\004\192\000\000\000\000\004\193\004\006\004\207\004\177\002f\000\000\000\000\000\000\004\178\000\000\000\000\000\000\000\000\004\189\000\000\000\000\004\167\004\208\000\000\002\216\004\180\000\000\004\187\004\210\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\000\000\000\000\000\000\000\000\000\000\004\189\004\006\000\000\004\177\002f\000\000\004\192\004\142\000\000\004\193\004\210\004\207\000\000\000\000\000\000\000\000\004\148\004\178\000\000\000\000\000\000\000\000\000\000\t\023\000\000\000\000\004\208\000\000\002\216\004\180\004\192\000\000\000\000\004\193\000\000\004\207\000\000\004\189\000\000\004\187\000\000\004\178\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\167\004\208\000\000\002\216\004\180\000\000\004\006\004\210\004\177\002f\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\192\000\000\000\000\004\193\002\165\004\207\000\000\005\129\002\167\000\000\002\168\004\178\000\000\004\210\000\000\000\000\000\000\000\000\000\000\000\000\004\208\000\000\002\216\004\180\004\189\000\000\000\000\000\000\000\000\000\000\000\000\005\158\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\000\000\000\000\004\187\000\000\000\000\000\000\000\000\001\007\001\b\001\t\004\210\000\000\001\n\000\000\004\192\001\015\000\000\004\193\004\006\004\207\004\177\002f\001\029\000\000\003\030\004\178\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\208\000\000\002\216\004\180\000\000\000\000\000\000\005\169\003#\000\000\000\000\000\000\t*\001\007\001\b\001\t\000\000\000\000\001\n\000\000\004\189\001\015\000\000\000\000\000\000\000\000\000\000\000\000\001\029\000\000\004\210\000\000\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001\015\000\000\000\000\000\000\005\188\000\000\000\000\001\029\004\192\000\000\002\201\004\193\000\000\004\207\002\165\000\000\001\027\005\129\002\167\004\178\002\168\000\000\000\000\000\000\000\000\000\000\002\189\000\000\004\208\002f\002\216\004\180\000\000\000\000\000\000\001\011\000\000\007\160\000\000\0012\000\000\005\158\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\027\n\029\004\210\000\000\000\000\000\000\001\012\005\209\t\"\003$\001(\001)\000\000\000\000\001\002\000\000\000\000\000\000\003\030\001\011\000\000\001\027\000\000\0012\000\000\000\000\000\000\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\005\169\003#\000\000\000\000\000\000\001\011\000\000\000\000\000\000\0012\000\000\001\012\002\214\004\142\000\000\001(\001)\000\000\000\000\001\002\000\000\002\221\004\148\002\216\000\000\000\000\000\000\000\000\000\000\011\135\000\000\000\000\001\012\000\000\000\000\001>\001(\001)\000\000\005\188\001\002\000\000\000\000\000\000\001?\002\201\000\000\001@\000\000\000\000\001A\001B\b\160\000\000\000\000\004\167\000\000\000\000\000\000\000\000\000\000\002\189\000\000\000\000\002f\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\001>\004\001\004\002\002\167\001Y\004\003\000\000\000\000\000\000\001?\001s\000\000\001@\000\000\000\000\001A\001B\b\173\000\000\004\142\ti\001>\000\000\005\209\tD\003$\000\000\000\000\004\148\000\000\001?\000\000\000\000\001@\000\000\011\137\001A\001B\000\000\000\000\004\187\000\000\000\000\000\000\001Y\000\000\000\000\000\000\000\000\000\000\001s\000\000\000\000\000\000\000\000\000\000\004\006\000\000\004\177\002f\000\000\004\167\000\000\002\214\000\000\001Y\000\000\000\000\000\000\000\000\000\000\007\168\002\221\000\000\002\216\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001\015\000\000\000\000\000\000\000\000\000\000\000\000\001\029\004\189\000\000\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001\015\000\000\000\000\000\000\000\000\000\000\000\000\001\029\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\004\187\004\192\000\000\000\000\004\193\000\000\004\207\000\000\000\000\000\000\000\000\000\000\004\178\000\000\000\000\000\000\004\006\000\000\004\177\002f\000\000\004\208\000\000\002\216\004\180\000\000\000\000\000\000\007\177\000\000\000\000\000\000\000\000\000\000\000\000\011\169\000\000\007\203\000\000\000\000\001\027\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001\015\000\000\004\210\004\189\000\000\000\000\000\000\001\029\000\000\000\000\001\011\001\027\000\000\000\000\0012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\011\000\000\000\000\004\192\0012\000\000\004\193\001\012\004\207\000\000\000\000\001(\001)\000\000\004\178\001\002\000\000\001\011\000\000\000\000\000\000\000\000\000\000\004\208\000\000\002\216\004\180\001\012\001\007\001\b\001\t\001(\001)\001\n\000\000\001\002\001\015\000\000\000\000\000\000\000\000\000\000\000\000\001\029\001\012\000\000\000\000\001\027\001(\001)\000\000\000\000\001\002\004\210\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001\015\000\000\000\000\000\000\001\011\000\000\000\000\001\029\0012\001>\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\011\170\000\000\000\000\001>\000\000\001\012\001\007\001\b\001\t\001(\001)\001\n\001?\001\002\001\015\001@\000\000\000\000\001A\001B\011p\001\029\000\000\000\000\000\000\001\027\000\000\001Y\000\000\001?\000\000\000\000\001@\001s\000\000\001A\001B\000\000\000\000\007\209\000\000\000\000\000\000\000\000\001\011\000\000\000\000\001Y\0012\000\000\000\000\001\027\000\000\001s\000\000\000\000\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\007\212\000\000\001\015\000\000\000\000\001>\001\011\001\012\000\000\001\029\0012\001(\001)\000\000\001?\001\002\000\000\001@\000\000\000\000\001A\001B\011m\000\000\000\000\000\000\000\000\001\027\000\000\000\000\000\000\000\000\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\000\000\000\000\000\000\000\000\001\011\000\000\000\000\001Y\0012\000\000\000\000\000\000\000\000\001s\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001\015\000\000\000\000\000\000\000\000\000\000\001>\001\029\001\012\000\000\000\000\000\000\001(\001)\001\027\001?\001\002\000\000\001@\000\000\000\000\001A\001B\002\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001>\001\011\000\000\000\000\000\000\0012\000\000\000\000\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\001\223\001Y\000\000\000\000\000\000\000\000\000\000\001s\000\000\000\000\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\000\000\000\000\000\000\001>\000\000\000\000\000\000\001Y\001\027\001\007\001\b\001\t\001?\001s\001\n\001@\000\000\001\015\001A\001B\001\142\000\000\000\000\000\000\001\029\000\000\000\000\001\011\000\000\000\000\000\000\0012\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001\015\000\000\000\000\000\000\000\000\001Y\000\000\001\029\000\000\000\000\000\000\001s\001\012\001>\000\000\000\000\001(\001)\000\000\000\000\001\002\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\001C\000\000\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001\015\000\000\000\000\001\007\001\b\001\t\000\000\001\029\001\n\000\000\001\027\001\015\000\000\000\000\000\000\001Y\000\000\000\000\001\029\000\000\000\000\001s\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\011\000\000\000\000\000\000\0012\001>\001\027\000\000\000\000\000\000\000\000\001\007\001\b\001\t\001?\000\000\001\n\001@\000\000\001\015\001A\001B\001\139\000\000\000\000\001\011\001\029\001\012\000\000\0012\000\000\001(\001)\000\000\000\000\001\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\027\001Y\000\000\000\000\001\012\000\000\001\246\001s\001(\001)\000\000\001\027\001\002\000\000\000\000\000\000\001\007\001\b\001\t\001\011\000\000\001\n\000\000\0012\001\015\000\000\000\000\000\000\000\000\000\000\001\011\001\029\000\000\000\000\0012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001>\000\000\000\000\001\012\000\000\001\027\000\000\001(\001)\001?\000\000\001\002\001@\000\000\001\012\001A\001B\001\145\001(\001)\000\000\000\000\001\002\000\000\001\011\001>\000\000\000\000\0012\000\000\000\000\000\000\000\000\000\000\001?\t\132\000\000\001@\000\000\000\000\001A\001B\001\182\000\000\001Y\000\000\000\000\000\000\000\000\000\000\001s\001\012\000\000\000\000\011\236\001(\001)\011\237\001\027\001\002\000\000\t\135\000\000\000\000\000\000\000\000\000\000\001>\000\000\001Y\000\000\t\136\000\000\000\000\000\000\001s\001?\001\011\001>\001@\000\000\0012\001A\001B\002\016\000\000\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\002&\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\012\000\000\000\000\t\137\001(\001)\000\000\001Y\001\002\000\000\000\000\001>\000\000\001s\000\000\000\000\000\000\000\000\001Y\000\000\001?\000\000\000\000\001@\001s\000\000\001A\001B\004\000\000\000\004\001\004\002\002\167\000\000\004\003\002\165\000\000\000\000\003L\002\167\000\000\002\168\000\000\t\138\000\000\000\000\000\000\000\000\004\142\000\000\000\000\000\000\000\000\000\000\000\000\001Y\000\000\004\148\000\000\000\000\t\139\001\250\002\169\004u\001>\002\181\002\182\002\187\007\245\000\000\000\000\000\000\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\002-\000\000\000\000\000\000\011\242\001\007\001\b\001\t\000\000\004\167\001\n\000\000\000\000\001\015\003\030\000\000\000\000\000\000\000\000\000\000\001\029\000\000\000\000\000\000\000\000\t\141\000\000\001Y\000\000\000\000\000\000\006c\003#\001s\000\000\000\000\000\000\t\142\000\000\000\000\000\000\t\143\000\000\000\000\t\145\000\000\000\000\t\150\000\000\000\000\000\000\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001\015\t\162\000\000\000\000\000\000\000\000\000\000\001\029\004\187\000\000\000\000\000\000\000\000\000\000\000\000\002\201\000\000\000\000\000\000\000\000\000\000\000\000\t\163\000\000\004\006\000\000\004\177\002f\000\000\001\027\000\000\002\189\000\000\000\000\002f\000\000\000\000\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001\015\001\011\000\000\000\000\000\000\0012\000\000\001\029\000\000\000\000\000\000\000\000\000\000\004\189\006f\006k\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003$\000\000\000\000\000\000\000\000\001\012\000\000\001\027\000\000\001(\001)\000\000\000\000\001\002\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001\015\007\247\000\000\004\207\001\011\000\000\000\000\001\029\0012\004\178\000\000\000\000\000\000\000\000\000\000\000\000\002\214\000\000\004\208\000\000\002\216\004\180\000\000\000\000\000\000\002\221\000\000\002\216\000\000\000\000\000\000\001\012\001\027\000\000\000\000\001(\001)\000\000\002\165\001\002\000\000\002\166\002\167\000\000\002\168\000\000\000\000\001>\004\210\000\000\000\000\001\011\000\000\000\000\000\000\0012\001?\000\000\000\000\001@\000\000\000\000\001A\001B\002y\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\000\000\000\000\000\000\001\027\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\000\000\000\000\000\000\006\249\001Y\000\000\000\000\000\000\001>\001\011\001s\000\000\002\197\0012\000\000\000\000\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\002\128\000\000\000\000\000\000\002\198\003\134\000\000\000\000\000\000\000\000\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\001\007\001\b\001\t\000\000\000\000\001\n\000\000\001Y\001\015\000\000\001>\000\000\000\000\001s\000\000\001\029\000\000\000\000\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\002\141\002\201\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001\015\000\000\000\000\000\000\000\000\000\000\002\189\001\029\000\000\002f\001\007\001\b\001\t\000\000\000\000\001\n\001Y\001>\001\015\004\147\000\000\000\000\001s\000\000\000\000\001\029\001?\000\000\000\000\001@\000\000\000\000\001A\001B\002\176\000\000\000\000\000\000\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\002\203\001\027\001\015\000\000\000\000\000\000\000\000\000\000\000\000\001\029\000\000\000\000\000\000\000\000\000\000\001Y\000\000\000\000\000\000\000\000\001\011\001s\000\000\000\000\0012\000\000\000\000\000\000\000\000\000\000\000\000\001\027\000\000\000\000\000\000\000\000\000\000\002\214\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\221\001\012\002\216\001\027\001\011\001(\001)\000\000\0012\001\002\000\000\000\000\000\000\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\001\011\001\015\000\000\000\000\0012\000\000\000\000\000\000\001\029\001\012\000\000\001\027\000\000\001(\001)\000\000\000\000\001\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\012\000\000\000\000\001\011\001(\001)\000\000\0012\001\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001>\002\165\000\000\000\000\002\166\002\167\000\000\002\168\000\000\001?\000\000\000\000\001@\000\000\001\012\001A\001B\002\209\001(\001)\000\000\000\000\001\002\000\000\000\000\000\000\000\000\000\000\002\169\003\233\001>\002\181\002\182\002\187\000\000\001\027\000\000\000\000\000\000\001?\000\000\000\000\001@\000\000\001Y\001A\001B\002\237\001>\000\000\001s\001\007\001\b\001\t\001\011\000\000\001\n\001?\0012\001\015\001@\000\000\000\000\001A\001B\002\245\001\029\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001Y\000\000\000\000\000\000\001>\000\000\001s\001\012\000\000\000\000\000\000\001(\001)\001?\000\000\001\002\001@\000\000\001Y\001A\001B\003*\000\000\000\000\001s\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001\015\000\000\004\000\000\000\004\001\004\002\002\167\001\029\004\003\000\000\000\000\000\000\000\000\000\000\000\000\001Y\002\188\000\000\000\000\000\000\000\000\001s\004\142\000\000\000\000\000\000\000\000\000\000\000\000\001\027\000\000\004\148\002\189\000\000\000\000\002f\000\000\000\000\001>\000\000\000\000\000\000\007P\000\000\000\000\000\000\000\000\001?\001\011\000\000\001@\000\000\0012\001A\001B\0037\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\167\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t/\000\000\001\012\000\000\001\027\000\000\001(\001)\000\000\001Y\001\002\000\000\000\000\000\000\000\000\001s\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\011\000\000\000\000\000\000\0012\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\002\214\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\215\000\000\002\216\004\142\000\000\001\012\004\187\000\000\000\000\001(\001)\000\000\004\148\001\002\000\000\000\000\t;\000\000\000\000\000\000\000\000\001>\004\006\007D\004\177\002f\000\000\000\000\000\000\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\003E\000\000\000\000\000\000\000\000\000\000\000\000\004\167\000\000\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001J\004\189\000\000\000\000\000\000\000\000\000\000\000\000\001Y\000\000\000\000\000\000\001>\000\000\001s\000\000\000\000\000\000\000\000\000\000\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\003S\000\000\000\000\000\000\000\000\007R\000\000\004\207\000\000\000\000\000\000\000\000\002\165\004\178\000\000\002\166\002\167\000\000\002\168\004\187\000\000\000\000\004\208\000\000\002\216\004\180\000\000\001Y\000\000\000\000\000\000\000\000\000\000\001s\000\000\004\006\000\000\004\177\002f\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\002\165\000\000\000\000\002\166\002\167\004\210\002\168\002\165\000\000\000\000\002\166\002\167\000\000\002\168\000\000\000\000\000\000\000\000\000\000\000\000\001\011\000\000\000\000\000\000\004\189\000\000\002\197\002\169\002\196\000\000\002\181\002\182\002\187\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\002\198\003\157\000\000\000\000\001\012\001\007\001\b\001\t\001(\001)\001\n\000\000\001\002\001\015\007F\000\000\004\207\000\000\002\197\000\000\001\029\000\000\004\178\000\000\000\000\002\197\000\000\000\000\000\000\000\000\000\000\004\208\000\000\002\216\004\180\002\198\003\144\000\000\003\166\000\000\000\000\000\000\002\198\003\144\002\201\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\189\004\210\000\000\002f\000\000\000\000\000n\001\007\001\b\001\t\000\000\000\000\001\n\000n\000\000\001\015\000\000\001?\000\000\002\201\001@\000\000\001\029\001A\001B\000\000\002\201\000\000\000\000\000\000\001\027\001\007\001\b\001\t\003\170\002\189\001\n\000\000\002f\001\015\002\203\000\000\002\189\000\000\000\000\002f\001\029\000\000\000\000\001\011\000\000\000\000\001Y\0012\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001\015\000\000\002\165\003\155\000\000\002\166\002\167\001\029\002\168\000\000\003\153\002\203\001\012\002\214\000\000\000\000\001(\001)\002\203\000\000\001\002\000\000\002\221\000\000\002\216\000\000\000\000\000\000\001\027\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\011\002\214\000\000\000\000\0012\001\027\000\000\000\000\002\214\000\000\002\221\000\000\002\216\000\000\000\000\000\000\002\197\002\221\000\000\002\216\000\000\000\000\000\000\000\000\001\011\000\000\000\000\001\012\0012\001>\001\027\001(\001)\002\198\003\199\001\002\000\000\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\003\148\000\000\000\000\001\011\000\000\001\012\000\000\0012\000\000\001(\001)\000\000\000\000\001\002\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001\015\000\000\000\000\000\000\000\000\001Y\000\000\001\029\001\012\002\201\000\000\001s\001(\001)\000\000\000\000\001\002\000\000\000\000\000\000\000\000\000\000\000\000\001>\000\000\002\189\000\000\000\000\002f\001\007\001\b\001\t\001?\000\000\001\n\001@\000\000\001\015\001A\001B\003\161\000\000\000\000\000\000\001\029\000\000\000\000\001>\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001?\003\205\003\207\001@\000\000\000\000\001A\001B\003\196\002\203\000\000\001Y\000\000\000\000\000\000\000\000\001>\001s\000\000\000\000\000\000\001\027\000\000\000\000\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\003\203\000\000\001Y\000\000\000\000\000\000\000\000\001\011\001s\000\000\000\000\0012\000\000\002\214\000\000\000\000\000\000\004\000\000\000\004\001\004\002\002\167\002\221\004\003\002\216\001\027\000\000\001Y\000\000\000\000\000\000\000\000\000\000\001s\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\000\000\001\011\000\000\006K\000\000\0012\000\000\002\165\000\000\000\000\002\166\002\167\000\000\002\168\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\012\t5\000\000\000\000\001(\001)\002\169\002\196\001\002\002\181\002\182\002\187\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001\015\000\000\000\000\000\000\000\000\001>\000\000\001\029\000\000\003\246\000\000\000\000\000\000\000\000\001?\000\000\000\000\001@\002\197\000\000\001A\001B\003\217\000\000\000\000\000\000\000\000\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\002\198\003\134\001\015\000\000\000\000\000\000\000\000\001>\000\000\001\029\000\000\004\005\000\000\000\000\001Y\000\000\001?\000\000\000\000\001@\001s\000\000\001A\001B\003\225\000\000\000\000\004\006\000\000\004\177\002f\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\027\000\000\002\201\000\000\000\000\001\007\001\b\001\t\000\000\001Y\001\n\000\000\000\000\001\015\000\000\001s\000\000\000\000\002\189\001\011\001\029\002f\000\000\0012\000\000\000\000\000\000\006N\000\000\000\000\000\000\004\147\000\000\000\000\000\000\000\000\000\000\001\027\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\000\000\001\011\000\000\002\203\004\142\0012\000\000\004\178\000\000\000\000\000\000\002\165\000\000\004\148\002\166\002\167\004\179\002\168\002\216\004\180\000\000\000\000\000\000\000\000\006Q\000\000\000\000\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\001\027\001\002\000\000\002\169\002\180\002\214\002\181\002\182\002\187\000\000\000\000\004\167\000\000\000\000\002\221\000\000\002\216\000\000\000\000\001\011\001>\000\000\000\000\0012\000\000\000\000\000\000\000\000\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\004,\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\000\000\000\000\001>\000\000\000\000\000\000\000\000\000\000\000\000\001Y\000\000\001?\000\000\t\251\001@\001s\004\187\001A\001B\004.\000\000\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\tO\004\006\000\000\004\177\002f\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\188\000\000\004\000\001Y\004\001\004\002\002\167\002\165\004\003\001s\002\166\002\167\001>\002\168\000\000\000\000\002\189\000\000\000\000\002f\000\000\001?\004\142\000\000\001@\004\189\000\000\001A\001B\004w\000\000\004\148\000\000\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\006P\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001Y\000\000\005\227\004\140\004\207\000\000\001s\004\005\004\167\tQ\004\178\000\000\002\197\000\000\000\000\000\000\000\000\000\000\000\000\004\208\000\000\002\216\004\180\004\006\000\000\004\177\002f\000\000\001\011\002\198\003\134\000\000\000\000\000\000\000\000\000\000\000\000\002\214\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\215\002\165\002\216\004\210\002\166\002\167\000\000\002\168\000\000\tT\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\001\005\000\000\000\000\000\000\004\187\000\000\000\000\000\000\000\000\002\201\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\000\000\004\006\000\000\004\177\002f\000\000\002\189\000\000\000\000\002f\000\000\t\252\000\000\000\000\000\000\000\000\004\146\004\178\000\000\004\147\000\000\000\000\000\000\000\000\000\000\002\197\t\253\000\000\002\216\004\180\002\165\000\000\000\000\002\166\002\167\000\000\002\168\004\189\000\000\000\000\000\000\000\000\002\198\003\134\000\000\001?\002\203\000\000\tW\000\000\000\000\001A\001B\000\000\000\000\000\000\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\b\162\000\000\t\\\000\000\tY\000\000\005\227\000\000\004\207\000\000\000\000\000\000\000\000\000\000\004\178\000\000\001Y\000\000\004\184\002\214\000\000\000\000\002\201\004\208\000\000\002\216\004\180\002\197\002\221\000\000\002\216\002\165\000\000\000\000\002\166\002\167\000\000\002\168\002\189\000\000\000\000\002f\000\000\000\000\002\198\003\134\t\132\000\000\000\000\000\000\000\000\004\147\000\000\004\210\000\000\000\000\000\000\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\002\165\t\133\000\000\002\166\002\167\t\135\002\168\000\000\000\000\000\000\000\000\002\203\000\000\000\000\000\000\t\136\004\198\000\000\000\000\000\000\000\000\002\201\000\000\000\000\000\000\002\197\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\000\000\002\189\000\000\000\000\002f\000\000\002\198\003\134\000\000\000\000\000\000\000\000\002\214\000\000\004\147\t\137\004\204\000\000\000\000\000\000\000\000\002\221\000\000\002\216\000\000\002\197\000\000\000\000\000\000\002\165\000\000\000\000\002\166\002\167\000\000\002\168\000\000\000\000\000\000\000\000\000\000\002\203\002\198\003\134\000\000\000\000\000\000\000\000\000\000\000\000\002\201\000\000\000\000\000\000\000\000\t\138\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\000\000\002\189\002\165\000\000\002f\002\166\002\167\t\139\002\168\000\000\000\000\000\000\000\000\002\214\004\147\000\000\004\214\000\000\000\000\000\000\000\000\002\201\002\221\000\000\002\216\002\197\000\000\000\000\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\t\140\002\189\000\000\000\000\002f\002\203\002\198\003\134\000\000\000\000\000\000\000\000\000\000\000\000\004\147\000\000\000\000\t\141\004\225\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\197\000\000\t\142\000\000\002\165\000\000\t\143\002\166\002\167\t\145\002\168\000\000\t\150\000\000\002\203\002\214\000\000\002\198\003\134\t\132\000\000\000\000\000\000\002\201\002\221\000\000\002\216\t\162\000\000\000\000\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\002\189\002\165\t\133\002f\002\166\002\167\t\135\002\168\000\000\t\163\000\000\000\000\002\214\004\147\000\000\000\000\t\136\004\231\000\000\000\000\000\000\002\221\002\201\002\216\000\000\000\000\002\197\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\000\000\002\189\000\000\002\203\002f\000\000\002\198\003\134\000\000\000\000\000\000\000\000\000\000\000\000\004\147\t\137\004\237\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\197\000\000\000\000\000\000\002\165\000\000\000\000\002\166\002\167\000\000\002\168\000\000\000\000\000\000\000\000\002\214\002\203\002\198\003\134\000\000\000\000\000\000\000\000\000\000\002\221\002\201\002\216\000\000\000\000\000\000\t\138\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\000\000\002\189\002\165\000\000\002f\002\166\002\167\t\139\002\168\000\000\000\000\000\000\000\000\002\214\004\147\000\000\004\243\000\000\000\000\000\000\000\000\002\201\002\221\000\000\002\216\002\197\000\000\000\000\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\t\167\002\189\000\000\000\000\002f\002\203\002\198\003\134\000\000\000\000\000\000\000\000\000\000\000\000\004\147\000\000\000\000\t\141\004\249\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\197\000\000\t\142\000\000\002\165\000\000\t\143\002\166\002\167\t\145\002\168\000\000\t\150\000\000\002\203\002\214\000\000\002\198\003\134\t\132\000\000\000\000\000\000\002\201\002\221\000\000\002\216\t\162\000\000\000\000\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\002\189\002\165\t\133\002f\002\166\002\167\t\135\002\168\000\000\t\163\000\000\000\000\002\214\004\147\000\000\000\000\t\136\004\255\000\000\000\000\000\000\002\221\002\201\002\216\000\000\000\000\002\197\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\000\000\002\189\000\000\002\203\002f\000\000\002\198\003\134\000\000\000\000\000\000\000\000\000\000\000\000\004\147\t\137\005\005\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\197\000\000\000\000\000\000\002\165\000\000\000\000\002\166\002\167\000\000\002\168\000\000\000\000\000\000\000\000\002\214\002\203\002\198\003\134\000\000\000\000\000\000\000\000\000\000\002\221\002\201\002\216\000\000\000\000\000\000\t\138\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\000\000\002\189\002\165\000\000\002f\002\166\002\167\t\139\002\168\000\000\000\000\000\000\000\000\002\214\004\147\000\000\005\011\000\000\000\000\000\000\000\000\002\201\002\221\000\000\002\216\002\197\000\000\000\000\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\t\177\002\189\000\000\000\000\002f\002\203\002\198\003\134\000\000\000\000\000\000\000\000\000\000\000\000\004\147\000\000\000\000\t\141\005\017\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\197\000\000\t\142\000\000\002\165\000\000\t\143\002\166\002\167\t\145\002\168\000\000\t\150\000\000\002\203\002\214\000\000\002\198\003\134\000\000\000\000\000\000\000\000\002\201\002\221\000\000\002\216\t\162\000\000\000\000\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\002\189\002\165\000\000\002f\002\166\002\167\000\000\002\168\000\000\t\163\000\000\000\000\002\214\004\147\000\000\000\000\000\000\005\023\000\000\000\000\000\000\002\221\002\201\002\216\000\000\000\000\002\197\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\000\000\002\189\000\000\002\203\002f\000\000\002\198\003\134\000\000\000\000\000\000\000\000\000\000\000\000\004\147\000\000\005\029\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\197\000\000\000\000\000\000\002\165\000\000\000\000\002\166\002\167\000\000\002\168\000\000\000\000\000\000\000\000\002\214\002\203\002\198\003\134\000\000\000\000\000\000\000\000\000\000\002\221\002\201\002\216\000\000\000\000\000\000\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\000\000\002\189\002\165\000\000\002f\002\166\002\167\000\000\002\168\000\000\000\000\000\000\000\000\002\214\004\147\000\000\005#\000\000\000\000\000\000\000\000\002\201\002\221\000\000\002\216\002\197\000\000\000\000\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\002\189\000\000\000\000\002f\002\203\002\198\003\134\000\000\000\000\000\000\000\000\000\000\000\000\004\147\000\000\000\000\000\000\005)\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\197\000\000\000\000\000\000\002\165\000\000\000\000\002\166\002\167\000\000\002\168\000\000\000\000\000\000\002\203\002\214\000\000\002\198\003\134\000\000\000\000\000\000\000\000\002\201\002\221\000\000\002\216\000\000\000\000\000\000\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\002\189\002\165\000\000\002f\002\166\002\167\000\000\002\168\000\000\000\000\000\000\000\000\002\214\004\147\000\000\000\000\000\000\005/\000\000\000\000\000\000\002\221\002\201\002\216\000\000\000\000\002\197\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\000\000\002\189\000\000\002\203\002f\000\000\002\198\003\134\000\000\000\000\000\000\000\000\000\000\000\000\004\147\000\000\0055\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\197\000\000\000\000\000\000\002\165\000\000\000\000\002\166\002\167\000\000\002\168\000\000\000\000\000\000\000\000\002\214\002\203\002\198\003\134\000\000\000\000\000\000\000\000\000\000\002\221\002\201\002\216\000\000\000\000\000\000\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\000\000\002\189\002\165\000\000\002f\002\166\002\167\000\000\002\168\000\000\000\000\000\000\000\000\002\214\004\147\000\000\005;\000\000\000\000\000\000\000\000\002\201\002\221\000\000\002\216\002\197\000\000\000\000\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\002\189\000\000\000\000\002f\002\203\002\198\003\134\000\000\000\000\000\000\000\000\000\000\000\000\004\147\000\000\000\000\000\000\005A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\197\000\000\000\000\000\000\002\165\000\000\000\000\002\166\002\167\000\000\002\168\000\000\000\000\000\000\002\203\002\214\000\000\002\198\003\134\000\000\000\000\000\000\000\000\002\201\002\221\000\000\002\216\000\000\000\000\000\000\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\002\189\002\165\000\000\002f\002\166\002\167\000\000\002\168\000\000\000\000\000\000\000\000\002\214\004\147\000\000\000\000\000\000\005G\000\000\000\000\000\000\002\221\002\201\002\216\000\000\000\000\002\197\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\000\000\002\189\000\000\002\203\002f\000\000\002\198\003\134\000\000\000\000\000\000\000\000\000\000\000\000\004\147\000\000\005M\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\197\000\000\000\000\000\000\002\165\000\000\000\000\002\166\002\167\000\000\002\168\000\000\000\000\000\000\000\000\002\214\002\203\002\198\003\134\000\000\000\000\000\000\000\000\000\000\002\221\002\201\002\216\000\000\000\000\000\000\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\000\000\002\189\002\165\000\000\002f\002\166\002\167\000\000\002\168\000\000\000\000\000\000\000\000\002\214\004\147\000\000\005S\000\000\000\000\000\000\000\000\002\201\002\221\000\000\002\216\002\197\000\000\000\000\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\002\189\000\000\000\000\002f\002\203\002\198\003\134\000\000\000\000\000\000\000\000\000\000\000\000\004\147\000\000\000\000\000\000\005Y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\197\001\007\001\b\001\t\002\165\000\000\001\n\002\166\002\167\001\015\002\168\000\000\000\000\000\000\002\203\002\214\001\029\002\198\003\134\000\000\000\000\000\000\000\000\002\201\002\221\000\000\002\216\000\000\000\000\000\000\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\002\189\002\165\000\000\002f\002\166\002\167\000\000\002\168\000\000\000\000\000\000\000\000\002\214\004\147\000\000\000\000\000\000\005g\000\000\000\000\000\000\002\221\002\201\002\216\000\000\000\000\002\197\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\000\000\002\189\000\000\002\203\002f\000\000\002\198\003\134\000\000\000\000\001\027\000\000\000\000\000\000\004\147\000\000\005m\000\000\000\000\000\000\000\000\000\000\001\007\001\b\001\t\002\197\000\000\001\n\000\000\001\011\001\015\000\000\000\000\0012\000\000\000\000\000\000\001\029\000\000\000\000\002\214\002\203\002\198\003\134\000\000\000\000\000\000\000\000\000\000\002\221\002\201\002\216\000\000\000\000\000\000\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\000\000\002\189\000\000\000\000\002f\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\214\004\147\000\000\000\000\000\000\001\007\001\b\001\t\002\201\002\221\001\n\002\216\000\000\001\015\000\000\000\000\000\000\000\000\000\000\000\000\001\029\000\000\000\000\000\000\002\189\000\000\000\000\002f\002\203\001\027\001\007\001\b\001\t\000\000\000\000\001\n\000\000\004\147\001\015\000\000\000\000\000\000\001>\000\000\000\000\001\029\000\000\000\000\001\011\000\000\000\000\001?\0012\000\000\001@\000\000\000\000\001A\001B\005\134\000\000\000\000\000\000\000\000\002\203\002\214\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\221\001\012\002\216\000\000\000\000\001(\001)\000\000\000\000\001\002\000\000\000\000\001Y\000\000\000\000\000\000\001\027\000\000\001s\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\214\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\011\002\221\000\000\002\216\0012\000\000\001\027\001\007\001\b\001\t\000\000\000\000\001\n\000\000\004\000\001\015\004\001\004\002\002\167\000\000\004\003\000\000\001\029\000\000\000\000\001\011\000\000\001\012\000\000\0012\001>\001(\001)\000\000\004\142\001\002\000\000\000\000\000\000\001?\000\000\000\000\001@\004\148\000\000\001A\001B\005\142\000\000\000\000\000\000\000\000\001\012\000\000\005\225\000\000\001(\001)\000\000\000\000\001\002\000\000\000\000\000\000\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\000\000\001Y\000\000\004\167\000\000\000\000\000\000\001s\000\000\000\000\000\000\000\000\004\142\000\000\000\000\000\000\000\000\000\000\001>\001\027\000\000\004\148\000\000\000\000\000\000\000\000\000\000\001?\000\000\000\000\001@\000\000\005\229\001A\001B\005\160\000\000\000\000\001\011\000\000\000\000\000\000\0012\001>\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001?\000\000\004\167\001@\000\000\000\000\001A\001B\005\177\000\000\001Y\004\187\000\000\001\012\000\000\000\000\001s\001(\001)\000\000\000\000\001\002\000\000\000\000\000\000\000\000\000\000\004\006\000\000\004\177\002f\000\000\000\000\000\000\000\000\001Y\000\000\000\000\000\000\000\000\000\000\001s\000\000\000\000\000\000\000\000\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\187\004\189\000\000\000\000\000\000\004\142\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\004\148\001>\004\006\000\000\004\177\002f\000\000\000\000\000\000\000\000\001?\005\231\004\142\001@\000\000\000\000\001A\001B\005\193\000\000\005\227\004\148\004\207\000\000\000\000\000\000\000\000\000\000\004\178\000\000\000\000\000\000\005\234\004\167\000\000\000\000\000\000\004\208\004\189\002\216\004\180\000\000\000\000\000\000\000\000\001Y\000\000\000\000\000\000\000\000\000\000\001s\000\000\000\000\004\167\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001F\000\000\004\210\000\000\000\000\000\000\005\227\001H\004\207\000\000\000\000\000\000\000\000\000\000\004\178\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\208\000\000\002\216\004\180\000\000\004\187\000\000\004\000\000\000\004\001\004\002\002\167\004\000\004\003\004\001\004\002\002\167\000\000\004\003\000\000\000\000\004\006\000\000\004\177\002f\000\000\004\187\004\142\000\000\000\000\004\210\000\000\004\142\000\000\000\000\000\000\004\148\000\000\000\000\000\000\000\000\004\148\004\006\000\000\004\177\002f\000\000\005\241\000\000\000\000\000\000\000\000\005\250\000\000\001\027\000\000\002\165\004\189\000\000\002\166\002\167\000\000\002\168\000\000\000\000\000\000\000\000\000\000\000\000\004\167\000\000\000\000\000\000\001\011\004\167\000\000\000\000\001I\004\189\000\000\000\000\000\000\000\000\002\169\003\233\000\000\002\181\002\182\002\187\000\000\005\227\000\000\004\207\000\000\000\000\000\000\000\000\000\000\004\178\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\004\208\001\002\002\216\004\180\005\227\000\000\004\207\000\000\000\000\000\000\000\000\000\000\004\178\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\208\004\187\002\216\004\180\002\165\000\000\004\187\002\166\002\167\004\210\002\168\000\000\000\000\000\000\000\000\000\000\000\000\004\006\000\000\004\177\002f\000\000\004\006\000\000\004\177\002f\000\000\000\000\000\000\000\000\004\210\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\002\165\000\000\000\000\002\166\002\167\001?\002\168\000\000\001@\000\000\002\188\001A\001B\004\189\000\000\000\000\005\247\000\000\004\189\000\000\000\000\000\000\000\000\000\000\000\000\002\197\002\189\002\169\002\196\002f\002\181\002\182\002\187\000\000\000\000\004\000\000\000\004\001\004\002\002\167\001Y\004\003\002\198\003\134\000\000\000\000\005\227\000\000\004\207\000\000\000\000\005\227\006\000\004\207\004\178\004\142\000\000\000\000\000\000\004\178\000\000\002\197\000\000\004\208\004\148\002\216\004\180\tw\004\208\000\000\002\216\004\180\000\000\000\000\000\000\006\003\000\000\000\000\002\198\003\134\000\000\000\000\000\000\000\000\000\000\000\000\002\201\000\000\000\000\000\000\000\000\000\000\000\000\004\210\000\000\000\000\000\000\004\167\004\210\000\000\000\000\000\000\002\189\002\214\000\000\002f\000\000\000\000\000\000\000\000\000\000\000\000\002\215\000\000\002\216\004\147\000\000\000\000\000\000\000\000\000\000\000\000\002\201\000\000\000\000\000\000\000\000\000\000\000\000\tx\000\000\000\000\000\000\002\165\000\000\000\000\002\166\002\167\002\189\002\168\000\000\002f\002\203\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\147\000\000\000\000\000\000\000\000\000\000\004\187\000\000\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\002\165\000\000\000\000\002\166\002\167\004\006\002\168\004\177\002f\000\000\002\203\002\214\000\000\000\000\000\000\000\000\000\000\006\t\000\000\000\000\002\221\000\000\002\216\000\000\000\000\000\000\002\197\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\002\165\000\000\000\000\002\166\002\167\004\189\002\168\002\198\003\134\000\000\000\000\002\214\000\000\000\000\000\000\000\000\006\019\000\000\000\000\000\000\002\221\000\000\002\216\000\000\000\000\002\197\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\000\000\000\000\005\227\000\000\004\207\000\000\002\198\003\134\000\000\000\000\004\178\000\000\000\000\000\000\000\000\002\201\006\028\000\000\000\000\004\208\000\000\002\216\004\180\000\000\000\000\002\197\000\000\000\000\000\000\000\000\000\000\002\189\000\000\002\165\002f\000\000\002\166\002\167\000\000\002\168\000\000\000\000\002\198\003\134\004\147\000\000\000\000\000\000\000\000\004\210\002\201\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\169\002\196\000\000\002\181\002\182\002\187\002\189\000\000\000\000\002f\000\000\002\203\000\000\000\000\000\000\000\000\000\000\000\000\004\000\004\147\004\001\004\002\002\167\000\000\004\003\006%\002\201\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\197\000\000\000\000\000\000\004\142\000\000\000\000\000\000\002\189\000\000\000\000\002f\002\203\004\148\002\214\000\000\000\000\002\198\003\134\000\000\000\000\004\147\000\000\002\221\006*\002\216\000\000\000\000\000\000\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\002\165\000\000\000\000\002\166\002\167\000\000\002\168\000\000\000\000\004\167\000\000\002\203\002\214\004\142\002\165\000\000\000\000\002\166\002\167\000\000\002\168\002\221\004\148\002\216\002\201\000\000\000\000\002\169\002\196\000\000\002\181\002\182\002\187\0063\000\000\000\000\000\000\000\000\000\000\000\000\002\189\002\169\002\196\002f\002\181\002\182\002\187\000\000\002\214\000\000\000\000\000\000\0060\004\147\000\000\004\167\000\000\002\221\000\000\002\216\000\000\002\197\000\000\000\000\000\000\000\000\0069\000\000\000\000\004\187\000\000\000\000\000\000\000\000\000\000\002\197\000\000\000\000\002\198\003\134\002\203\000\000\000\000\000\000\000\000\004\006\000\000\004\177\002f\000\000\000\000\000\000\002\198\003\134\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\004\001\004\002\002\167\004\187\004\003\002\214\000\000\000\000\000\000\004\189\002\201\000\000\000\000\000\000\002\221\000\000\002\216\000\000\004\142\004\006\000\000\004\177\002f\000\000\002\201\000\000\002\189\004\148\000\000\002f\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006<\004\147\002\189\000\000\005\227\002f\004\207\002\165\000\000\000\000\002\166\002\167\004\178\002\168\000\000\004\147\000\000\004\189\000\000\000\000\000\000\004\208\004\167\002\216\004\180\000\000\000\000\000\000\002\203\000\000\000\000\000\000\000\000\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\002\203\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\227\004\210\004\207\000\000\000\000\000\000\000\000\000\000\004\178\006B\000\000\000\000\000\000\000\000\000\000\002\214\000\000\004\208\002\197\002\216\004\180\000\000\000\000\000\000\002\221\000\000\002\216\000\000\000\000\002\214\000\000\000\000\004\187\000\000\000\000\002\198\003\134\000\000\002\221\000\000\002\216\000\000\000\000\000\000\000\000\000\000\000\000\004\210\004\006\000\000\004\177\002f\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\002\165\000\000\000\000\002\166\002\167\000\000\002\168\000\000\000\000\000\000\000\000\000\000\000\000\004\142\000\000\000\000\000\000\000\000\000\000\002\201\000\000\000\000\004\148\000\000\004\189\000\000\000\000\002\169\002\196\000\000\002\181\002\182\002\187\006T\000\000\002\189\000\000\000\000\002f\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\147\000\000\000\000\000\000\006I\000\000\000\000\004\167\000\000\005\227\t\132\004\207\000\000\002\197\000\000\000\000\000\000\004\178\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\004\208\002\203\002\216\004\180\002\198\003\134\011\227\000\000\000\000\000\000\t\135\000\000\004\142\004\000\000\000\004\001\004\002\002\167\000\000\004\003\t\136\004\148\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\210\000\000\006W\004\142\000\000\000\000\000\000\000\000\002\214\000\000\000\000\004\187\004\148\000\000\000\000\000\000\000\000\002\221\002\201\002\216\000\000\000\000\000\000\006\183\004\167\000\000\t\137\004\006\000\000\004\177\002f\000\000\000\000\000\000\002\189\000\000\000\000\002f\000\000\000\000\002\165\000\000\000\000\002\166\002\167\004\167\002\168\004\147\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\189\000\000\000\000\t\138\002\169\002\196\000\000\002\181\002\182\002\187\000\000\002\203\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\139\004\187\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006s\000\000\000\000\000\000\005\227\000\000\004\207\000\000\004\006\002\197\004\177\002f\004\178\004\187\000\000\000\000\000\000\011\228\000\000\002\214\000\000\004\208\000\000\002\216\004\180\000\000\002\198\003\134\002\221\004\006\002\216\004\177\002f\000\000\000\000\000\000\000\000\t\141\000\000\000\000\000\000\000\000\000\000\000\000\004\189\000\000\000\000\000\000\000\000\t\142\000\000\004\210\000\000\t\143\000\000\000\000\t\145\000\000\000\000\t\150\002\165\000\000\000\000\002\166\002\167\004\189\002\168\000\000\000\000\000\000\002\201\000\000\000\000\000\000\t\162\000\000\000\000\005\227\000\000\004\207\000\000\000\000\000\000\000\000\000\000\004\178\002\189\002\169\002\196\002f\002\181\002\182\002\187\000\000\004\208\t\163\002\216\004\180\006\185\004\147\004\207\002\165\000\000\000\000\002\166\002\167\004\178\002\168\000\000\000\000\000\000\000\000\006x\000\000\000\000\004\208\000\000\002\216\004\180\000\000\000\000\002\197\000\000\000\000\004\210\000\000\002\203\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\000\000\002\198\003\134\000\000\000\000\000\000\000\000\000\000\004\210\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\132\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\219\002\197\002\214\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\221\000\000\002\216\000\000\000\000\000\000\000\000\002\198\003\134\000\000\002\201\000\000\000\000\002\165\000\000\000\000\002\166\002\167\000\000\002\168\000\000\000\000\000\000\n\220\000\000\n\221\002\189\002\165\000\000\002f\002\166\002\167\000\000\002\168\000\000\000\000\000\000\000\000\000\000\004\147\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\000\000\000\000\002\201\000\000\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\n\222\000\000\000\000\000\000\006\140\002\203\002\189\000\000\000\000\002f\000\000\000\000\000\000\002\197\000\000\000\000\000\000\000\000\006\148\004\147\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\197\000\000\000\000\002\198\003\134\000\000\000\000\002\165\000\000\000\000\002\166\002\167\n\223\002\168\000\000\002\214\000\000\002\198\003\134\002\203\000\000\000\000\000\000\000\000\002\221\000\000\002\216\000\000\000\000\n\224\n\225\000\000\n\226\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\201\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\214\000\000\000\000\006\155\n\227\002\201\000\000\002\189\000\000\002\221\002f\002\216\002\197\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\147\002\189\002\165\000\000\002f\002\166\002\167\000\000\002\168\002\198\003\134\000\000\n\228\000\000\004\147\000\000\n\229\000\000\000\000\n\231\000\000\000\000\n\237\n\239\000\000\000\000\000\000\002\203\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\n\251\000\000\000\000\000\000\002\203\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\201\006\161\000\000\000\000\000\000\n\252\000\000\000\000\000\000\000\000\002\197\002\214\000\000\000\000\000\000\000\000\002\189\000\000\000\000\002f\002\221\000\000\002\216\000\000\000\000\002\214\000\000\002\198\003\134\004\147\000\000\000\000\000\000\000\000\002\221\000\000\002\216\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\165\000\000\000\000\002\166\002\167\000\000\002\168\000\000\000\000\000\000\000\000\002\203\000\000\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\000\000\000\000\000\000\000\000\002\201\002\169\002\196\000\000\002\181\002\182\002\187\000\000\004\142\002\165\000\000\000\000\002\166\002\167\000\000\002\168\002\189\004\148\000\000\002f\000\000\000\000\002\214\000\000\000\000\000\000\006\166\000\000\006\196\004\147\000\000\002\221\000\000\002\216\000\000\002\197\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\002\165\000\000\000\000\002\166\002\167\004\167\002\168\002\198\003\134\000\000\000\000\002\203\000\000\000\000\000\000\000\000\006\173\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\197\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\002\198\003\134\000\000\000\000\000\000\000\000\002\214\000\000\000\000\002\201\006\192\000\000\004\142\000\000\000\000\002\221\000\000\002\216\000\000\002\197\000\000\004\148\000\000\004\187\000\000\002\189\000\000\000\000\002f\000\000\000\000\000\000\006\209\000\000\000\000\000\000\002\198\003\134\004\147\004\006\000\000\004\177\002f\000\000\002\201\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\167\000\000\000\000\000\000\000\000\000\000\002\189\000\000\000\000\002f\000\000\002\203\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\147\000\000\004\189\000\000\000\000\000\000\000\000\002\201\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\165\000\000\000\000\002\166\002\167\002\189\002\168\000\000\002f\002\203\000\000\002\214\000\000\000\000\000\000\000\000\000\000\006\198\004\147\004\207\002\221\000\000\002\216\004\187\000\000\004\178\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\004\208\000\000\002\216\004\180\000\000\004\006\000\000\004\177\002f\000\000\000\000\002\203\002\214\000\000\000\000\000\000\000\000\000\000\006\206\000\000\000\000\002\221\000\000\002\216\000\000\000\000\000\000\002\197\000\000\000\000\004\210\000\000\000\000\000\000\002\165\000\000\000\000\002\166\002\167\000\000\002\168\004\189\000\000\000\000\002\198\003\134\000\000\000\000\002\214\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\221\000\000\002\216\000\000\002\169\002\196\000\000\002\181\002\182\002\187\004\000\000\000\004\001\004\002\002\167\000\000\004\003\006\211\000\000\004\207\000\000\000\000\000\000\000\000\000\000\004\178\000\000\000\000\000\000\006\238\000\000\002\201\000\000\000\000\004\208\000\000\002\216\004\180\002\197\007\250\000\000\000\000\002\165\000\000\000\000\002\166\002\167\002\189\002\168\000\000\002f\000\000\000\000\000\000\000\000\002\198\003\134\000\000\000\000\000\000\004\147\000\000\000\000\000\000\004\210\000\000\000\000\000\000\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\002\165\000\000\000\000\002\166\002\167\000\000\002\168\000\000\000\000\002\203\000\000\000\000\000\000\000\000\000\000\000\000\006\255\000\000\000\000\000\000\000\000\002\201\000\000\000\000\000\000\002\197\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\000\000\002\189\000\000\000\000\002f\000\000\002\198\003\134\000\000\000\000\002\214\000\000\000\000\000\000\004\147\000\000\007\004\000\000\004\005\002\221\000\000\002\216\000\000\000\000\000\000\002\197\000\000\000\000\000\000\002\165\000\000\000\000\002\166\002\167\004\006\002\168\004\177\002f\000\000\000\000\000\000\002\203\002\198\003\134\000\000\000\000\000\000\000\000\000\000\000\000\002\201\000\000\000\000\000\000\000\000\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\000\000\002\189\002\165\000\000\002f\002\166\002\167\000\000\002\168\000\000\000\000\000\000\000\000\002\214\004\147\000\000\007\011\000\000\000\000\000\000\000\000\002\201\002\221\000\000\002\216\002\197\000\000\000\000\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\002\189\000\000\000\000\002f\002\203\002\198\003\134\000\000\000\000\004\178\000\000\000\000\000\000\004\147\000\000\000\000\000\000\007\029\004\179\000\000\002\216\004\180\000\000\000\000\000\000\000\000\002\197\000\000\000\000\000\000\002\165\000\000\000\000\002\166\002\167\000\000\002\168\000\000\000\000\000\000\002\203\002\214\000\000\002\198\003\134\000\000\000\000\000\000\000\000\002\201\002\221\000\000\002\216\000\000\000\000\000\000\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\002\189\002\165\000\000\002f\002\166\002\167\000\000\002\168\000\000\000\000\000\000\000\000\002\214\004\147\000\000\000\000\000\000\007\"\000\000\000\000\000\000\002\221\002\201\002\216\000\000\000\000\002\197\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\000\000\002\189\000\000\002\203\002f\000\000\002\198\003\134\000\000\000\000\000\000\000\000\000\000\000\000\004\147\000\000\007-\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\197\000\000\000\000\000\000\002\165\000\000\000\000\002\166\002\167\000\000\002\168\000\000\000\000\000\000\000\000\002\214\002\203\002\198\003\134\000\000\000\000\000\000\000\000\000\000\002\221\002\201\002\216\000\000\000\000\000\000\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\000\000\002\189\002\165\000\000\002f\002\166\002\167\000\000\002\168\000\000\000\000\000\000\000\000\002\214\004\147\000\000\0076\000\000\000\000\000\000\000\000\002\201\002\221\000\000\002\216\002\197\000\000\000\000\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\002\189\000\000\000\000\002f\002\203\002\198\003\134\000\000\000\000\000\000\000\000\000\000\000\000\004\147\000\000\000\000\000\000\007A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\197\001\007\001\b\001\t\002\165\000\000\001\n\002\166\002\167\001\015\002\168\000\000\000\000\000\000\002\203\002\214\001\029\002\198\003\134\000\000\000\000\000\000\000\000\002\201\002\221\000\000\002\216\000\000\000\000\000\000\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\002\189\002\165\000\000\002f\002\166\002\167\000\000\002\168\000\000\000\000\000\000\000\000\002\214\004\147\000\000\000\000\000\000\007L\000\000\000\000\000\000\002\221\002\201\002\216\000\000\000\000\002\197\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\000\000\002\189\000\000\002\203\002f\000\000\002\198\003\134\000\000\000\000\001\027\000\000\000\000\000\000\004\147\000\000\007X\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\197\000\000\000\000\000\000\001\011\000\000\000\000\000\000\0012\000\000\000\000\000\000\000\000\000\000\000\000\002\214\002\203\002\198\003\134\000\000\000\000\000\000\000\000\000\000\002\221\002\201\002\216\000\000\000\000\000\000\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\000\000\002\189\002\165\000\000\002f\002\166\002\167\000\000\002\168\000\000\000\000\000\000\000\000\002\214\004\147\000\000\000\000\000\000\000\000\000\000\000\000\002\201\002\221\000\000\002\216\000\000\000\000\000\000\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\002\189\000\000\000\000\002f\002\203\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\147\000\000\000\000\000\000\007\235\001>\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\197\001?\000\000\000\000\001@\000\000\000\000\001A\001B\007\202\000\000\000\000\000\000\000\000\002\203\002\214\000\000\002\198\003\134\000\000\000\000\000\000\000\000\000\000\002\221\000\000\002\216\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001Y\002\165\000\000\000\000\002\166\002\167\001s\002\168\002\165\000\000\000\000\002\166\002\167\000\000\002\168\002\214\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\221\002\201\002\216\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\002\169\002\196\000\000\002\181\002\182\002\187\002\189\000\000\002\165\002f\000\000\002\166\002\167\000\000\002\168\000\000\000\000\000\000\007\241\004\147\000\000\000\000\000\000\000\000\000\000\b\011\000\000\002\197\000\000\000\000\000\000\000\000\000\000\000\000\002\197\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\002\198\003\134\002\203\000\000\001\007\001\b\001\t\002\198\003\134\001\n\000\000\000\000\001\015\000\000\000\000\000\000\b\018\000\000\000\000\001\029\000\000\000\000\000\000\000\000\000\000\002\197\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001\015\000\000\000\000\000\000\000\000\002\214\000\000\001\029\002\198\003\134\002\201\000\000\000\000\000\000\002\221\000\000\002\216\002\201\000\000\000\000\000\000\000\000\001\007\001\b\001\t\000\000\002\189\001\n\000\000\002f\001\015\000\000\000\000\002\189\000\000\000\000\002f\001\029\000\000\004\147\000\000\000\000\000\000\000\000\000\000\000\000\004\147\000\000\000\000\000\000\000\000\000\000\002\201\000\000\000\000\001\027\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\203\000\000\002\189\000\000\000\000\002f\000\000\002\203\001\011\000\000\000\000\001\027\0012\000\000\000\000\004\147\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\011\000\000\000\000\000\000\0012\001\012\000\000\002\214\000\000\001(\001)\001\027\002\203\001\002\002\214\000\000\002\221\000\000\002\216\000\000\000\000\000\000\000\000\002\221\000\000\002\216\000\000\001\012\000\000\000\000\001\011\001(\001)\000\000\0012\001\002\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001\015\000\000\000\000\002\214\000\000\000\000\000\000\001\029\000\000\000\000\000\000\001\012\002\221\000\000\002\216\001(\001)\000\000\000\000\001\002\000\000\000\000\000\000\001>\000\000\000\000\000\000\000\000\001\007\001\b\001\t\000\000\001?\001\n\000\000\001@\001\015\000\000\001A\001B\bL\000\000\000\000\001\029\000\000\001>\000\000\000\000\000\000\000\000\001\007\001\b\001\t\000\000\001?\001\n\000\000\001@\001\015\000\000\001A\001B\by\000\000\000\000\001\029\000\000\001Y\000\000\000\000\000\000\000\000\000\000\001s\000\000\001>\000\000\001\027\000\000\000\000\000\000\000\000\000\000\000\000\001?\000\000\000\000\001@\000\000\001Y\001A\001B\b\133\000\000\000\000\001s\001\011\000\000\000\000\000\000\0012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\027\000\000\000\000\000\000\000\000\000\000\001Y\000\000\000\000\000\000\001\012\000\000\001s\000\000\001(\001)\000\000\000\000\001\002\001\011\000\000\000\000\001\027\0012\000\000\000\000\000\000\001\007\001\b\001\t\t\132\000\000\001\n\000\000\000\000\001\015\000\000\000\000\000\000\000\000\000\000\001\011\001\029\000\000\000\000\0012\001\012\000\000\000\000\011\236\001(\001)\011\237\000\000\001\002\000\000\t\135\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\136\000\000\001\012\000\000\000\000\000\000\001(\001)\001>\000\000\001\002\000\000\000\000\001\007\001\b\001\t\000\000\001?\001\n\000\000\001@\001\015\000\000\001A\001B\b\159\000\000\000\000\001\029\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\137\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001>\000\000\001\027\000\000\000\000\001\007\001\b\001\t\001Y\001?\001\n\000\000\001@\001\015\001s\001A\001B\b\175\000\000\000\000\001\029\001\011\001>\000\000\000\000\0012\000\000\000\000\000\000\000\000\000\000\001?\t\138\000\000\001@\000\000\000\000\001A\001B\b\228\000\000\000\000\000\000\000\000\001Y\000\000\000\000\000\000\001\012\t\139\001s\000\000\001(\001)\001\027\000\000\001\002\000\000\000\000\000\000\000\000\000\000\000\000\001\007\001\b\001\t\001Y\000\000\001\n\000\000\000\000\001\015\001s\001\011\011\247\000\000\000\000\0012\001\029\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\027\000\000\000\000\000\000\000\000\t\141\000\000\000\000\000\000\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\t\142\001\002\001\011\000\000\t\143\001>\0012\t\145\000\000\000\000\t\150\000\000\000\000\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\b\246\000\000\000\000\t\162\000\000\000\000\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\000\000\000\000\000\000\001\027\000\000\000\000\000\000\000\000\t\163\000\000\000\000\001Y\000\000\000\000\000\000\000\000\000\000\001s\000\000\001>\000\000\000\000\001\011\000\000\000\000\000\000\0012\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\t\014\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\012\000\000\000\000\000\000\001(\001)\001>\002\165\001\002\000\000\002\166\002\167\000\000\002\168\001Y\001?\000\000\000\000\001@\000\000\001s\001A\001B\t\232\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001Y\000\000\000\000\000\000\000\000\000\000\001s\000\000\000\000\t\250\000\000\000\000\000\000\000\000\001>\000\000\000\000\000\000\002\197\000\000\000\000\000\000\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\t\242\000\000\000\000\000\000\002\198\003\134\000\000\002\165\000\000\000\000\002\166\002\167\000\000\002\168\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\165\000\000\000\000\002\166\002\167\001Y\002\168\000\000\000\000\000\000\000\000\001s\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\201\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\000\000\n\004\000\000\000\000\000\000\000\000\002\189\000\000\000\000\002f\002\197\000\000\000\000\000\000\000\000\000\000\n\019\002\165\000\000\004\147\002\166\002\167\000\000\002\168\000\000\002\197\000\000\002\198\003\134\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\198\003\134\002\169\002\196\002\203\002\181\002\182\002\187\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001\015\000\000\000\000\n\023\000\000\002\201\000\000\001\029\000\000\000\000\002\165\000\000\002\197\002\166\002\167\000\000\002\168\002\214\000\000\000\000\002\201\002\189\000\000\000\000\002f\000\000\002\221\000\000\002\216\002\198\003\134\000\000\000\000\000\000\004\147\000\000\002\189\002\169\003\233\002f\002\181\002\182\002\187\000\000\000\000\001\007\001\b\001\t\000\000\004\147\001\n\000\000\000\000\001\015\000\000\000\000\000\000\000\000\000\000\000\000\001\029\002\203\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\007\001\b\001\t\002\201\000\000\001\n\002\203\001\027\001\015\000\000\000\000\000\000\000\000\000\000\000\000\001\029\000\000\000\000\000\000\002\189\000\000\000\000\002f\000\000\000\000\000\000\001\011\000\000\002\214\000\000\0012\000\000\004\147\000\000\000\000\000\000\000\000\002\221\000\000\002\216\000\000\000\000\000\000\002\214\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\221\001\012\002\216\000\000\000\000\001(\001)\002\203\001\027\001\002\002\188\000\000\000\000\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001\015\000\000\000\000\002\189\001\011\000\000\002f\001\029\0012\000\000\001\027\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\000\000\002\214\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\011\002\221\001\012\002\216\0012\000\000\001(\001)\000\000\000\000\001\002\000\000\006\218\001>\000\000\tw\000\000\000\000\000\000\000\000\006\227\000\000\001?\000\000\000\000\001@\000\000\001\012\001A\001B\n+\001(\001)\000\000\000\000\001\002\000\000\000\000\000\000\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\001\027\001\015\0071\002\214\000\000\000\000\000\000\000\000\001\029\001Y\000\000\000\000\002\215\000\000\002\216\001s\000\000\000\000\001>\001\011\000\000\000\000\000\000\0012\000\000\000\000\000\000\001?\000\000\t\128\001@\000\000\000\000\001A\001B\011\003\004\000\000\000\004\001\004\002\002\167\000\000\004\003\001>\000\000\000\000\001\012\000\000\000\000\000\000\001(\001)\001?\000\000\001\002\001@\004\142\004\005\001A\001B\011(\000\000\001Y\000\000\000\000\004\148\000\000\000\000\001s\000\000\000\000\000\000\000\000\006\230\000\000\004\177\002f\002\136\001\027\004\000\000\000\004\001\004\002\002\167\000\000\004\003\004\000\001Y\004\001\004\002\002\167\000\000\004\003\001s\000\000\000\000\000\000\001\011\004\167\004\142\000\000\0012\000\000\002\165\000\000\000\000\002\166\002\167\004\148\002\168\001>\000\000\000\000\000\000\000\000\007)\006\221\002\165\000\000\001?\002\166\002\167\001@\002\168\001\012\001A\001B\011~\001(\001)\002\169\002\196\001\002\002\181\002\182\002\187\000\000\000\000\000\000\000\000\000\000\004\167\000\000\000\000\002\169\002\196\000\000\002\181\002\182\002\187\004\178\000\000\000\000\000\000\001Y\003\025\000\000\000\000\004\187\004\179\001s\002\216\004\180\000\000\002\197\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\006\000\000\004\177\002f\002\197\000\000\000\000\002\198\003\134\000\000\000\000\000\000\000\000\000\000\001>\000\000\000\000\000\000\000\000\000\000\000\000\002\198\003\004\001?\000\000\000\000\001@\004\187\000\000\001A\001B\000\000\000\000\000\000\004\005\000\000\004\189\000\000\000\000\000\000\000\000\000\000\000\000\004\006\000\000\004\177\002f\000\000\000\000\000\000\004\006\002\201\004\177\002f\000\000\000\000\000\000\000\000\001Y\000\000\000\000\000\000\000\000\000\000\001\248\002\201\000\000\002\189\000\000\n\005\002f\004\207\002\165\000\000\000\000\002\166\002\167\004\178\002\168\004\189\006\248\002\189\000\000\000\000\002f\000\000\004\208\000\000\002\216\004\180\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\002\203\000\000\000\000\003\022\000\000\007\236\000\000\004\207\000\000\004\210\000\000\000\000\000\000\004\178\002\203\000\000\000\000\000\000\000\000\000\000\004\178\000\000\004\208\000\000\002\216\004\180\002\197\000\000\000\000\004\179\000\000\002\216\004\180\000\000\000\000\000\000\002\165\002\214\000\000\002\166\002\167\000\000\002\168\002\198\003\004\000\000\002\221\000\000\002\216\000\000\000\000\002\214\004\210\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\221\000\000\002\216\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\000\000\000\000\003\002\000\000\000\000\002\165\000\000\000\000\002\166\002\167\000\000\002\168\000\000\000\000\000\000\002\201\000\000\002\165\000\000\000\000\002\166\002\167\000\000\002\168\000\000\002\197\000\000\000\000\000\000\007\231\000\000\002\189\002\169\003\233\002f\002\181\002\182\002\187\000\000\000\000\000\000\000\000\002\198\003\004\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\000\000\000\000\003\006\004\000\000\000\004\001\004\002\002\167\000\000\004\003\003\234\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\203\000\000\000\000\000\000\000\000\004\142\004\000\002\197\004\001\004\002\002\167\000\000\004\003\000\000\004\148\002\201\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\002\198\003\004\000\000\000\000\000\000\000\000\000\000\002\189\000\000\000\000\002f\007&\004\142\002\214\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\148\002\221\004\167\002\216\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\188\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\201\000\000\000\000\002\203\002\189\000\000\000\000\002f\000\000\000\000\004\167\000\000\000\000\000\000\000\000\000\000\002\189\000\000\004\000\002f\004\001\004\002\002\167\000\000\004\003\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\142\004\187\002\214\000\000\000\000\000\000\000\000\003\235\000\000\004\148\000\000\002\221\000\000\002\216\000\000\000\000\000\000\004\006\002\203\004\177\002f\000\000\004\005\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\187\005x\005\128\000\000\000\000\000\000\004\006\000\000\004\177\002f\007.\002\214\000\000\000\000\000\000\000\000\004\006\000\000\004\177\002f\002\215\004\189\002\216\002\214\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\221\000\000\002\216\000\000\000\000\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\189\000\000\007c\000\000\004\207\000\000\004\142\000\000\000\000\000\000\004\178\000\000\000\000\000\000\000\000\004\148\000\000\000\000\004\187\004\208\000\000\002\216\004\180\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\178\000\000\0077\004\006\004\207\004\177\002f\000\000\000\000\004\179\004\178\002\216\004\180\000\000\000\000\000\000\000\000\004\167\004\210\004\208\002\165\002\216\004\180\002\166\002\167\000\000\002\168\002\165\000\000\000\000\002\166\002\167\000\000\002\168\000\000\000\000\000\000\000\000\000\000\004\189\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\169\002\196\004\210\002\181\002\182\002\187\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\007\001\b\001\t\000\000\0070\001\n\004\207\000\000\001\015\004\187\000\000\000\000\004\178\002\197\000\000\001\029\000\000\000\000\000\000\000\000\002\197\004\208\000\000\002\216\004\180\004\006\000\000\004\177\002f\000\000\002\198\003\157\000\000\000\000\000\000\000\000\000\000\002\198\003\220\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\000\000\000\000\000\000\000\000\004\210\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\142\004\000\004\189\004\001\004\002\002\167\000\000\004\003\000\000\004\148\000\000\000\000\000\000\000\000\000\000\002\201\000\000\000\000\000\000\000\000\000\000\004\142\002\201\000\000\000\000\000\000\001\027\000\000\000\000\000\000\004\148\002\189\000\000\000\000\002f\007$\000\000\004\207\002\189\000\000\000\000\002f\004\167\004\178\004\000\001\011\004\001\004\002\002\167\0012\004\003\000\000\004\208\000\000\002\216\004\180\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\167\004\142\003\167\000\000\000\000\000\000\000\000\003\228\002\203\001\012\004\148\000\000\000\000\001(\001)\002\203\000\000\001\002\000\000\004\210\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001\015\000\000\000\000\000\000\000\000\000\000\000\000\001\029\000\000\000\000\004\187\000\000\000\000\000\000\004\167\000\000\002\214\000\000\000\000\000\000\000\000\000\000\000\000\002\214\000\000\002\221\004\006\002\216\004\177\002f\000\000\004\187\002\221\000\000\002\216\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001>\000\000\000\000\004\006\000\000\004\177\002f\000\000\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\000\000\004\189\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\187\000\000\000\000\001\027\002\165\000\000\000\000\002\166\002\167\004\189\002\168\000\000\000\000\000\000\001Y\000\000\004\006\000\000\004\177\002f\004'\006\239\001\011\004\207\000\000\000\000\0012\000\000\000\000\004\178\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\004\208\000\000\002\216\004\180\006O\000\000\004\207\000\000\000\000\000\000\000\000\001\012\004\178\000\000\004\189\001(\001)\000\000\000\000\001\002\000\000\004\208\000\000\002\216\004\180\000\000\000\000\002\197\000\000\000\000\004\210\000\000\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\000\000\000\000\000\000\002\198\003\134\000\000\005\215\000\000\004\207\000\000\004\210\000\000\004\142\000\000\004\178\000\000\000\000\000\000\000\000\000\000\000\000\004\148\000\000\004\208\000\000\002\216\004\180\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001>\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\001?\000\000\000\000\001@\002\201\000\000\001A\001B\000\000\000\000\004\210\004\167\004\142\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\189\004\148\000\000\002f\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\186\000\000\001Y\000\000\000\000\000\000\000\000\000\000\004)\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\000\000\000\000\000\000\004\167\000\000\000\000\000\000\000\000\000\000\002\203\000\000\000\000\004\142\004\000\000\000\004\001\004\002\002\167\000\000\004\003\004\187\004\148\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\000\000\000\000\004\142\000\000\000\000\004\006\000\000\004\177\002f\000\000\000\000\004\148\004\142\000\000\000\000\002\214\000\000\000\000\000\000\000\000\000\000\004\148\000\000\004\167\002\221\000\000\002\216\000\000\000\000\000\000\000\000\000\000\004\187\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\189\000\000\004\000\004\167\004\001\004\002\002\167\004\006\004\003\004\177\002f\000\000\000\000\004\167\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\142\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\148\000\000\004\199\000\000\004\207\000\000\000\000\000\000\000\000\000\000\004\178\004\187\004\189\000\000\000\000\000\000\000\000\000\000\000\000\004\208\000\000\002\216\004\180\000\000\000\000\000\000\000\000\004\006\000\000\004\177\002f\000\000\004\187\004\167\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\187\000\000\000\000\004\205\000\000\004\207\004\006\004\210\004\177\002f\000\000\004\178\000\000\000\000\000\000\000\000\004\006\000\000\004\177\002f\004\208\004\189\002\216\004\180\004\000\000\000\004\001\004\002\002\167\004\000\004\003\004\001\004\002\002\167\000\000\004\003\000\000\000\000\000\000\000\000\000\000\000\000\004\189\000\000\004\142\000\000\000\000\000\000\000\000\004\142\004\210\004\187\004\189\004\148\004\215\000\000\004\207\000\000\004\148\000\000\000\000\000\000\004\178\000\000\000\000\000\000\000\000\004\006\000\000\004\177\002f\004\208\000\000\002\216\004\180\004\226\000\000\004\207\004\000\000\000\004\001\004\002\002\167\004\178\004\003\004\232\004\167\004\207\000\000\000\000\000\000\004\167\004\208\004\178\002\216\004\180\000\000\000\000\004\142\000\000\000\000\004\210\004\208\004\189\002\216\004\180\000\000\004\148\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\210\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\210\000\000\000\000\000\000\004\238\000\000\004\207\004\000\004\167\004\001\004\002\002\167\004\178\004\003\004\187\000\000\000\000\000\000\000\000\004\187\000\000\004\208\000\000\002\216\004\180\000\000\000\000\004\142\000\000\000\000\004\006\000\000\004\177\002f\000\000\004\006\004\148\004\177\002f\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\210\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\002\165\000\000\000\000\002\166\002\167\004\189\002\168\004\187\004\167\000\000\004\189\000\000\004\142\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\148\000\000\004\006\000\000\004\177\002f\002\169\002\213\000\000\002\181\002\182\002\187\000\000\000\000\000\000\000\000\000\000\004\244\000\000\004\207\000\000\000\000\004\250\000\000\004\207\004\178\000\000\000\000\000\000\000\000\004\178\000\000\000\000\004\167\004\208\000\000\002\216\004\180\004\189\004\208\000\000\002\216\004\180\000\000\000\000\000\000\000\000\004\187\000\000\000\000\000\000\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\000\000\000\000\000\000\004\006\004\210\004\177\002f\000\000\000\000\004\210\000\000\005\000\004\142\004\207\004\000\000\000\004\001\004\002\002\167\004\178\004\003\004\148\000\000\000\000\000\000\000\000\000\000\000\000\004\208\000\000\002\216\004\180\000\000\004\187\004\142\000\000\000\000\000\000\000\000\004\189\000\000\002\188\000\000\004\148\000\000\000\000\000\000\000\000\000\000\004\006\000\000\004\177\002f\000\000\004\167\000\000\000\000\002\189\004\210\000\000\002f\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\006\000\000\004\207\000\000\004\167\000\000\000\000\000\000\004\178\000\000\000\000\000\000\004\000\004\189\004\001\004\002\002\167\004\208\004\003\002\216\004\180\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\142\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\148\004\187\000\000\000\000\000\000\005\012\004\210\004\207\004\000\000\000\004\001\004\002\002\167\004\178\004\003\000\000\000\000\004\006\000\000\004\177\002f\002\214\004\208\004\187\002\216\004\180\000\000\000\000\004\142\000\000\002\215\000\000\002\216\004\167\000\000\000\000\000\000\004\148\000\000\004\006\000\000\004\177\002f\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\210\004\189\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\004\167\000\000\000\000\000\000\000\000\004\189\000\000\000\000\000\000\000\000\000\000\000\000\004\142\000\000\000\000\000\000\005\018\000\000\004\207\000\000\000\000\004\148\000\000\004\187\004\178\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\208\000\000\002\216\004\180\000\000\005\024\004\006\004\207\004\177\002f\000\000\000\000\000\000\004\178\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\167\004\208\000\000\002\216\004\180\000\000\004\187\000\000\004\000\004\210\004\001\004\002\002\167\000\000\004\003\000\000\000\000\000\000\000\000\000\000\000\000\004\189\004\006\000\000\004\177\002f\000\000\000\000\004\142\000\000\004\000\004\210\004\001\004\002\002\167\000\000\004\003\004\148\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\142\000\000\000\000\000\000\005\030\000\000\004\207\000\000\004\189\004\148\004\187\000\000\004\178\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\167\004\208\000\000\002\216\004\180\000\000\004\006\000\000\004\177\002f\000\000\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\005$\004\167\004\207\000\000\000\000\000\000\000\000\000\000\004\178\000\000\004\210\000\000\000\000\000\000\000\000\000\000\000\000\004\208\000\000\002\216\004\180\004\189\000\000\000\000\000\000\000\000\000\000\001b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\187\004\000\000\000\004\001\004\002\002\167\000\000\004\003\004\210\000\000\000\000\000\000\000\000\000\000\000\000\005*\004\006\004\207\004\177\002f\000\000\004\142\004\187\004\178\000\000\000\000\000\000\000\000\000\000\000\000\004\148\000\000\004\208\000\000\002\216\004\180\000\000\000\000\004\006\000\000\004\177\002f\000\000\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\004\189\000\000\000\000\000\000\000\000\001\011\000\000\000\000\000\000\000\000\004\210\004\167\004\142\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\004\148\004\189\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\012\0050\004\142\004\207\001(\001)\000\000\000\000\001\002\004\178\000\000\004\148\000\000\000\000\000\000\000\000\000\000\000\000\004\208\000\000\002\216\004\180\004\167\0056\000\000\004\207\000\000\000\000\000\000\000\000\000\000\004\178\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\187\004\208\000\000\002\216\004\180\004\167\000\000\000\000\000\000\004\210\000\000\000\000\000\000\000\000\000\000\000\000\004\006\000\000\004\177\002f\000\000\000\000\000\000\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\004\210\000\000\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\000\000\004\187\004\142\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\189\004\148\000\000\000\000\000\000\000\000\000\000\004\006\000\000\004\177\002f\000\000\000\000\004\187\000\000\000\000\000\000\001h\000\000\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\000\000\004\006\000\000\004\177\002f\005<\004\167\004\207\000\000\000\000\000\000\000\000\004\142\004\178\004\000\004\189\004\001\004\002\002\167\000\000\004\003\004\148\004\208\000\000\002\216\004\180\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\142\000\000\000\000\004\189\000\000\000\000\000\000\000\000\000\000\004\148\000\000\000\000\000\000\000\000\005B\000\000\004\207\000\000\004\210\000\000\004\167\000\000\004\178\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\208\004\187\002\216\004\180\000\000\005H\000\000\004\207\000\000\000\000\000\000\004\167\000\000\004\178\000\000\000\000\000\000\004\006\000\000\004\177\002f\000\000\004\208\000\000\002\216\004\180\000\000\000\000\000\000\000\000\004\210\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\187\000\000\000\000\004\210\004\189\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\000\000\000\000\004\006\000\000\004\177\002f\000\000\000\000\004\187\000\000\000\000\000\000\004\142\000\000\000\000\000\000\004\000\000\000\004\001\004\002\002\167\004\148\004\003\005N\004\006\004\207\004\177\002f\000\000\000\000\000\000\004\178\000\000\000\000\000\000\000\000\004\142\000\000\004\189\000\000\004\208\000\000\002\216\004\180\000\000\004\148\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\004\167\000\000\000\000\000\000\000\000\000\000\004\189\000\000\000\000\000\000\000\000\000\000\000\000\004\142\000\000\000\000\004\210\005T\000\000\004\207\000\000\000\000\004\148\000\000\004\167\004\178\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\208\000\000\002\216\004\180\000\000\005Z\000\000\004\207\000\000\000\000\000\000\000\000\000\000\004\178\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\167\004\208\000\000\002\216\004\180\004\187\000\000\000\000\002\165\004\210\000\000\005r\002\167\000\000\002\168\000\000\000\000\000\000\000\000\000\000\000\000\004\006\002\165\004\177\002f\002\166\002\167\000\000\002\168\004\187\000\000\004\210\000\000\000\000\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\000\000\004\006\005w\004\177\002f\002\169\003\233\000\000\002\181\002\182\002\187\000\000\000\000\004\189\000\000\000\000\004\187\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\002\197\000\000\000\000\000\000\000\000\000\000\000\000\004\006\000\000\004\177\002f\003\234\004\189\004\142\000\000\000\000\000\000\002\198\002\230\000\000\000\000\005h\004\148\004\207\000\000\000\000\000\000\000\000\000\000\004\178\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\208\000\000\002\216\004\180\000\000\004\189\000\000\005n\000\000\004\207\000n\000\000\000\000\000\000\000\000\004\178\004\000\004\167\004\001\004\002\002\167\000\000\004\003\002\201\004\208\000\000\002\216\004\180\000\000\000\000\004\210\000\000\000\000\000\000\000\000\000\000\004\142\002\188\005\248\002\189\004\207\000\000\002f\000\000\000\000\004\148\004\178\000\000\000\000\000\000\000\000\000\000\000\000\002\189\004\210\004\208\002f\002\216\004\180\000\000\000\000\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\187\004\167\002\203\000\000\000\000\004\142\000\000\000\000\004\210\004\000\000\000\004\001\004\002\002\167\004\148\004\003\004\006\003\235\004\177\002f\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\142\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\148\002\214\000\000\000\000\000\000\005x\005\128\000\000\000\000\004\167\002\221\000\000\002\216\000\000\004\189\002\214\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\187\002\215\000\000\002\216\000\000\004\000\000\000\004\001\004\002\002\167\004\167\004\003\000\000\000\000\000\000\000\000\004\006\000\000\004\177\002f\000\000\000\000\000\000\000\000\006\001\004\142\004\207\000\000\000\000\000\000\000\000\000\000\004\178\000\000\004\148\000\000\000\000\000\000\000\000\000\000\000\000\004\208\000\000\002\216\004\180\000\000\004\187\000\000\000\000\000\000\000\000\000\000\004\189\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\004\006\000\000\004\177\002f\000\000\004\167\000\000\000\000\004\187\004\210\000\000\000\000\004\142\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\148\000\000\006\n\004\006\004\207\004\177\002f\000\000\000\000\000\000\004\178\000\000\000\000\000\000\004\000\004\189\004\001\004\002\002\167\004\208\004\003\002\216\004\180\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\167\004\142\000\000\000\000\000\000\000\000\004\189\000\000\000\000\000\000\004\148\004\187\000\000\000\000\000\000\006\020\004\210\004\207\000\000\000\000\000\000\000\000\000\000\004\178\000\000\000\000\000\000\004\006\000\000\004\177\002f\000\000\004\208\000\000\002\216\004\180\000\000\000\000\000\000\006\029\000\000\004\207\000\000\004\167\000\000\000\000\004\000\004\178\004\001\004\002\002\167\000\000\004\003\000\000\000\000\000\000\004\208\000\000\002\216\004\180\004\187\000\000\004\210\004\189\000\000\000\000\004\142\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\148\004\006\000\000\004\177\002f\000\000\000\000\000\000\000\000\000\000\000\000\004\210\000\000\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\006&\000\000\004\207\000\000\000\000\000\000\000\000\004\187\004\178\000\000\000\000\000\000\004\167\004\142\000\000\000\000\004\189\004\208\000\000\002\216\004\180\000\000\004\148\004\006\000\000\004\177\002f\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\210\000\000\0061\000\000\004\207\000\000\000\000\000\000\004\167\000\000\004\178\000\000\004\189\000\000\000\000\000\000\000\000\000\000\000\000\004\208\000\000\002\216\004\180\000\000\000\000\004\187\000\000\000\000\002\165\000\000\000\000\003L\002\167\000\000\002\168\000\000\000\000\000\000\000\000\000\000\000\000\004\006\000\000\004\177\002f\006:\000\000\004\207\000\000\004\210\000\000\000\000\000\000\004\178\000\000\002\169\004u\000\000\002\181\002\182\002\187\000\000\004\208\000\000\002\216\004\180\000\000\000\000\004\187\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\004\189\000\000\000\000\000\000\000\000\000\000\000\000\004\006\000\000\004\177\002f\003\030\000\000\004\142\000\000\004\210\000\000\004\000\000\000\004\001\004\002\002\167\004\148\004\003\000\000\000\000\000\000\000\000\006c\003#\000\000\000\000\000\000\006C\000\000\004\207\000\000\004\142\000\000\000\000\000\000\004\178\000\000\004\189\000\000\000\000\004\148\000\000\000\000\000\000\004\208\000\000\002\216\004\180\004\000\004\167\004\001\004\002\002\167\000\000\004\003\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\201\004\142\000\000\006J\000\000\004\207\004\167\004\210\000\000\000\000\004\148\004\178\000\000\000\000\000\000\000\000\002\189\000\000\000\000\002f\004\208\000\000\002\216\004\180\000\000\000\000\000\000\000\000\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001P\000\000\000\000\000\000\004\187\004\167\000\000\000\000\000\000\006j\000\000\000\000\004\210\000\000\000\000\000\000\000\000\003$\000\000\000\000\004\006\000\000\004\177\002f\000\000\000\000\000\000\000\000\004\187\000\000\000\000\000\000\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\000\000\000\000\000\000\004\006\000\000\004\177\002f\000\000\000\000\000\000\000\000\000\000\004\142\000\000\002\214\004\189\000\000\000\000\000\000\000\000\000\000\004\148\000\000\002\221\004\187\002\216\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\004\189\004\006\000\000\004\177\002f\000\000\000\000\000\000\000\000\006y\000\000\004\207\000\000\004\142\000\000\004\167\001\011\004\178\000\000\000\000\000\000\000\000\004\148\000\000\000\000\000\000\004\208\000\000\002\216\004\180\000\000\000\000\000\000\006\133\000\000\004\207\000\000\004\189\000\000\000\000\000\000\004\178\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\004\208\001\002\002\216\004\180\000\000\004\167\004\210\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\006\141\000\000\004\207\000\000\000\000\004\187\000\000\000\000\004\178\000\000\004\210\000\000\000\000\004\142\000\000\000\000\000\000\004\208\000\000\002\216\004\180\004\006\004\148\004\177\002f\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\187\001?\004\210\000\000\001@\000\000\004\142\001A\001B\000\000\004\167\000\000\004\189\000\000\000\000\004\148\004\006\000\000\004\177\002f\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\001Y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\149\000\000\004\207\004\167\004\142\000\000\000\000\004\189\004\178\000\000\001\007\001\b\001\t\004\148\000\000\001\n\000\000\004\208\001W\002\216\004\180\000\000\000\000\000\000\000\000\004\187\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\006\156\004\006\004\207\004\177\002f\000\000\004\167\004\210\004\178\000\000\000\000\000\000\004\142\000\000\000\000\000\000\000\000\004\208\000\000\002\216\004\180\004\148\000\000\004\187\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\189\000\000\004\006\000\000\004\177\002f\000\000\000\000\000\000\000\000\004\210\001\007\001\b\001\t\000\000\000\000\001\n\004\167\000\000\001p\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\187\000\000\000\000\000\000\006\168\000\000\004\207\000\000\001\011\004\189\000\000\000\000\004\178\000\000\000\000\000\000\004\006\000\000\004\177\002f\000\000\004\208\000\000\002\216\004\180\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\006\167\001\002\004\207\000\000\004\142\000\000\004\187\000\000\004\178\004\210\004\189\000\000\000\000\004\148\000\000\000\000\000\000\004\208\000\000\002\216\004\180\000\000\004\006\000\000\004\177\002f\000\000\000\000\000\000\000\000\004\000\000\000\004\001\004\002\002\167\004\000\004\003\004\001\004\002\002\167\000\000\004\003\000\000\006\174\001\011\004\207\004\167\004\210\000\000\000\000\004\142\004\178\000\000\000\000\000\000\004\142\000\000\000\000\004\189\004\148\004\208\000\000\002\216\004\180\004\148\000\000\001?\000\000\000\000\001@\000\000\001\012\001A\001B\000\000\001(\001)\000\000\000\000\001\002\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001\015\004\210\007\006\004\167\004\207\000\000\000\000\001\029\004\167\000\000\004\178\000\000\001Y\000\000\000\000\000\000\000\000\004\187\000\000\004\208\000\000\002\216\004\180\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\006\000\000\004\177\002f\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\000\000\000\000\000\000\000\000\004\210\000\000\000\000\000\000\000\000\000\000\001?\000\000\004\142\001@\000\000\000\000\001A\001B\004\187\000\000\000\000\004\148\000\000\004\187\004\189\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\027\000\000\004\006\000\000\004\177\002f\000\000\004\006\000\000\004\177\002f\000\000\000\000\001Y\000\000\000\000\000\000\000\000\000\000\001\011\000\000\000\000\004\167\0012\000\000\007\005\000\000\004\207\000\000\000\000\000\000\000\000\000\000\004\178\000\000\000\000\000\000\000\000\004\189\000\000\000\000\000\000\004\208\004\189\002\216\004\180\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\000\000\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\tO\000\000\000\000\000\000\000\000\007\012\004\210\004\207\000\000\000\000\007\030\000\000\004\207\004\178\000\000\000\000\004\187\000\000\004\178\000\000\000\000\000\000\004\208\000\000\002\216\004\180\000\000\004\208\000\000\002\216\004\180\000\000\004\006\000\000\004\177\002f\000\000\000\000\000\000\002\165\000\000\000\000\002\166\002\167\001>\002\168\000\000\000\000\000\000\000\000\000\000\000\000\004\210\001?\000\000\000\000\001@\004\210\000\000\001A\001B\000\000\000\000\b\252\000\000\000\000\002\169\003\233\004\189\002\181\002\182\002\187\000\000\000\000\000\000\000\000\000\000\tQ\000\000\000\000\000\000\000\000\000\000\002\165\000\000\000\000\002\166\002\167\001Y\002\168\000\000\000\000\000\000\000\000\007\162\000\000\001\011\003\234\000\000\000\000\000\000\b\019\000\000\004\207\000\000\000\000\000\000\t\020\000\000\004\178\002\169\003\233\000\000\002\181\002\182\002\187\000\000\000\000\004\208\000\000\002\216\004\180\000\000\tT\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\001\005\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\003\234\000\000\tO\000\000\001\007\001\b\001\t\004\210\000\000\001\n\000\000\000\000\tO\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\188\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\189\000\000\000\000\002f\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\tO\000\000\000\000\000\000\000\000\000\000\001?\000\000\000\000\tW\000\000\000\000\001A\001B\000\000\002\188\000\000\000\000\000\000\000\000\002\165\000\000\000\000\002\166\002\167\b\162\002\168\t[\003\235\tY\tQ\002\189\000\000\000\000\002f\000\000\000\000\000\000\000\000\000\000\tQ\001Y\000\000\000\000\000\000\000\000\000\000\002\169\002\226\001\011\002\181\002\182\002\187\000\000\005x\005\128\001\007\001\b\001\t\001\011\000\000\001\n\000\000\000\000\002\214\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\235\002\215\000\000\002\216\tT\tQ\000\000\000\000\001(\001)\000\000\000\000\001\002\001\005\tT\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\001\005\001\011\000\000\005x\005\128\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\002\214\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\215\000\000\002\216\000\000\004\142\000\000\tT\000\000\000\000\000\000\001(\001)\000\000\004\148\001\002\001\005\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\tO\002\188\001\007\001\b\001\t\000\000\000\000\001\n\001?\000\000\tO\tW\000\000\000\000\001A\001B\000\000\002\189\001?\001\011\002f\tW\004\167\000\000\001A\001B\000\000\b\162\000\000\tZ\000\000\tY\000\000\000\000\000\000\000\000\000\000\b\162\000\000\tX\000\000\tY\000\000\001Y\000\000\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\001Y\001\002\001?\000\000\n\"\tW\000\000\000\000\001A\001B\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\162\000\000\tt\tQ\tY\000\000\000\000\000\000\004\187\000\000\000\000\002\165\000\000\tQ\002\166\002\167\001Y\002\168\000\000\000\000\002\214\000\000\001\011\000\000\004\006\000\000\004\177\002f\000\000\002\215\000\000\002\216\001\011\000\000\000\000\000\000\000\000\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\001?\000\000\000\000\001@\tT\000\000\001A\001B\001(\001)\000\000\000\000\001\002\001\005\tT\004\189\000\000\000\000\001(\001)\000\000\000\000\001\002\001\005\000\000\000\000\000\000\002\197\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n#\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\198\011\197\000\000\011\199\n\020\000\000\004\207\000\000\000\000\000\000\000\000\000\000\004\178\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\208\000\000\002\216\004\180\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001?\000\000\000\000\tW\000\000\000\000\001A\001B\000\000\000\000\001?\002\201\000\000\tW\000\000\000\000\001A\001B\004\210\b\162\000\000\n\207\002\165\tY\000\000\002\166\002\167\002\189\002\168\b\162\002f\n\215\000\000\tY\000\000\001Y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001Y\000\000\000\000\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\002\165\000\000\000\000\002\166\002\167\000\000\002\168\000\000\002\165\000\000\002\203\002\166\002\167\000\000\002\168\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\197\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\002\198\t\239\000\000\000\000\002\214\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\221\000\000\002\216\000\000\000\000\002\197\000\000\000\000\000\000\000\000\002\165\000\000\003\030\002\166\002\167\000\000\002\168\000\000\000\000\000\000\000\000\000\000\002\198\t\225\000\000\000\000\000\000\000\000\000\000\003\031\003#\002\201\000\000\000\000\000\000\000\000\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\000\000\002\189\000\000\002\165\002f\000\000\002\166\002\167\000\000\002\168\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\165\000\000\002\201\002\166\002\167\000\000\002\168\002\197\000\000\000\000\002\201\000\000\002\169\002\196\000\000\002\181\002\182\002\187\002\189\000\000\000\000\002f\000\000\002\203\002\198\003\014\002\189\002\169\002\196\002f\002\181\002\182\002\187\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\203\000\000\002\214\002\197\000\000\002\198\003\012\003$\000\000\000\000\002\201\002\221\000\000\002\216\000\000\000\000\000\000\000\000\000\000\000\000\002\198\003\t\000\000\000\000\000\000\000\000\002\189\000\000\000\000\002f\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\214\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\214\002\221\002\165\002\216\002\201\002\166\002\167\000\000\002\168\002\221\000\000\002\216\002\165\000\000\000\000\002\166\002\167\000\000\002\168\002\201\002\189\002\203\002\165\002f\000\000\002\166\002\167\000\000\002\168\002\169\002\196\000\000\002\181\002\182\002\187\002\189\000\000\000\000\002f\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\002\214\000\000\002\203\000\000\000\000\002\197\000\000\000\000\000\000\002\221\000\000\002\216\000\000\000\000\000\000\002\197\000\000\002\203\000\000\000\000\000\000\000\000\002\198\002\254\000\000\002\197\000\000\000\000\000\000\000\000\000\000\000\000\002\198\002\199\000\000\000\000\000\000\000\000\000\000\002\214\000\000\000\000\002\198\002\202\000\000\000\000\000\000\000\000\002\221\000\000\002\216\000\000\000\000\000\000\002\214\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\221\000\000\002\216\002\201\000\000\000\000\002\165\000\000\000\000\002\166\002\167\000\000\002\168\002\201\000\000\000\000\000\000\000\000\000\000\002\189\000\000\002\165\002f\002\201\002\166\002\167\000\000\002\168\000\000\002\189\000\000\000\000\002f\002\169\002\196\000\000\002\181\002\182\002\187\002\189\000\000\000\000\002f\000\000\000\000\000\000\000\000\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\000\000\000\000\002\203\002\165\000\000\000\000\002\166\002\167\000\000\002\168\002\197\000\000\002\203\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\203\000\000\000\000\002\197\000\000\002\198\002\218\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\002\214\000\000\000\000\002\198\002\220\000\000\000\000\000\000\000\000\002\221\002\214\002\216\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\221\002\214\002\216\000\000\000\000\000\000\002\197\000\000\000\000\000\000\002\221\002\165\002\216\002\201\002\166\002\167\000\000\002\168\000\000\000\000\000\000\000\000\000\000\002\198\002\251\000\000\000\000\000\000\002\201\002\189\000\000\000\000\002f\000\000\000\000\000\000\000\000\000\000\002\169\002\196\000\000\002\181\002\182\002\187\002\189\000\000\002\165\002f\000\000\002\166\002\167\000\000\002\168\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\201\000\000\002\203\000\000\000\000\002\197\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\000\000\002\189\002\203\000\000\002f\000\000\000\000\002\198\002\243\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\214\002\197\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\221\002\165\002\216\000\000\002\166\002\167\002\214\002\168\002\203\002\198\002\248\000\000\000\000\000\000\000\000\002\221\000\000\002\216\002\201\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\169\002\196\000\000\002\181\002\182\002\187\002\189\000\000\002\165\002f\000\000\002\166\002\167\000\000\002\168\000\000\000\000\002\214\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\201\002\221\000\000\002\216\000\000\000\000\000\000\000\000\000\000\002\197\002\169\002\196\000\000\002\181\002\182\002\187\002\189\000\000\000\000\002f\000\000\002\203\000\000\000\000\000\000\000\000\002\198\003!\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\030\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\165\000\000\000\000\002\166\002\167\002\203\002\168\002\214\000\000\0030\003#\000\000\000\000\000\000\000\000\000\000\002\221\000\000\002\216\002\201\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\002\189\000\000\002\165\002f\000\000\002\166\002\167\002\214\002\168\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\221\002\165\002\216\002\201\002\166\002\167\000\000\002\168\000\000\003\030\000\000\000\000\000\000\002\169\002\196\000\000\002\181\002\182\002\187\002\189\000\000\000\000\002f\000\000\002\203\000\000\003=\003#\002\169\003\233\000\000\002\181\002\182\002\187\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\030\000\000\000\000\000\000\002\165\000\000\000\000\002\166\002\167\000\000\002\168\000\000\003$\003\234\000\000\002\214\000\000\003K\003#\000\000\000\000\000\000\000\000\000\000\002\221\002\201\002\216\000\000\000\000\000\000\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\000\000\002\189\000\000\000\000\002f\000\000\000\000\000\000\000\000\000\000\002\214\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\221\000\000\002\216\002\201\000\000\000\000\002\197\000\000\001\007\001\b\001\t\002\165\000\000\001\n\002\166\002\167\001\152\002\168\002\188\002\189\000\000\003$\002f\002\198\004|\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\189\000\000\000\000\002f\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\003$\002\214\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\201\002\221\000\000\002\216\003\030\000\000\000\000\000\000\003\235\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\189\000\000\000\000\002f\002\165\005\183\003#\002\166\002\167\000\000\002\168\000\000\000\000\002\214\000\000\000\000\000\000\002\165\003\237\005\128\002\166\002\167\002\221\002\168\002\216\000\000\000\000\000\000\002\214\001\011\000\000\002\169\002\196\000\000\002\181\002\182\002\187\002\215\000\000\002\216\002\203\000\000\000\000\000\000\002\169\002\196\000\000\002\181\002\182\002\187\002\201\000\000\000\000\000\000\000\000\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\002\197\002\189\000\000\000\000\002f\002\165\000\000\001\011\002\166\002\167\000\000\002\168\002\214\002\197\000\000\000\000\000\000\002\198\005\185\000\000\000\000\002\221\000\000\002\216\000\000\000\000\000\000\000\000\000\000\000\000\002\198\006\150\002\169\002\196\001\012\002\181\002\182\002\187\001(\001)\003$\000\000\001\002\000\000\000\000\n%\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\007\001\b\001\t\000\000\002\201\001\n\000\000\001?\001\160\002\197\001@\000\000\000\000\001A\001B\000\000\000\000\002\201\000\000\000\000\002\189\002\214\000\000\002f\000\000\000\000\002\198\006\127\000\000\000\000\002\221\000\000\002\216\002\189\000\000\002\165\002f\000\000\002\166\002\167\000\000\002\168\001Y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\000\000\000\000\002\203\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\002\201\002\165\000\000\002\203\002\166\002\167\000\000\002\168\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n#\002\189\000\000\000\000\002f\000\000\000\000\000\000\000\000\000\000\000\000\002\197\002\214\002\169\002\196\000\000\002\181\002\182\002\187\001\011\000\000\002\221\000\000\002\216\000\000\002\214\000\000\000\000\002\198\006\135\000\000\000\000\000\000\000\000\002\221\000\000\002\216\000\000\000\000\002\165\000\000\002\203\002\166\002\167\000\000\002\168\001\012\002\197\000\000\000\000\001(\001)\000\000\002\165\001\002\000\000\002\166\002\167\000\000\002\168\000\000\000\000\000\000\000\000\002\198\006\143\002\169\002\196\000\000\002\181\002\182\002\187\002\201\000\000\000\000\000\000\000\000\000\000\002\214\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\002\221\002\189\002\216\000\000\002f\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\002\197\000\000\001L\000\000\000\000\001\007\001\b\001\t\002\201\001N\001\n\000\000\000\000\001S\002\197\000\000\000\000\002\198\b:\001?\001U\000\000\001@\000\000\002\189\001A\001B\002f\002\203\000\000\000\000\002\198\t\238\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001l\000\000\000\000\000\000\001\007\001\b\001\t\001n\000\000\001\n\000\000\001Y\001\148\000\000\000\000\000\000\000\000\000\000\002\201\001\150\000\000\002\203\002\214\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\221\002\201\002\216\002\189\000\000\001\027\002f\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\027\002\189\000\000\000\000\002f\000\000\000\000\000\000\001\011\000\000\000\000\002\214\001O\000\000\000\000\000\000\000\000\000\000\000\000\001\011\002\221\000\000\002\216\001V\000\000\000\000\000\000\002\203\000\000\000\000\001\027\000\000\000\000\000\000\000\000\001\012\000\000\000\000\000\000\001(\001)\002\203\001\027\001\002\000\000\000\000\001\012\000\000\000\000\001\011\001(\001)\000\000\001o\001\002\001\007\001\b\001\t\000\000\000\000\001\n\001\011\000\000\001\156\002\214\001\151\000\000\000\000\000\000\000\000\001\158\000\000\000\000\002\221\000\000\002\216\001\012\000\000\002\214\000\000\001(\001)\000\000\000\000\001\002\000\000\000\000\002\221\001\012\002\216\000\000\000\000\001(\001)\000\000\000\000\001\002\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001\164\000\000\000\000\001?\000\000\000\000\001@\001\166\000\000\001A\001B\000\000\000\000\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\000\000\000\000\000\000\000\000\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\001\027\001\172\000\000\001Y\000\000\001\007\001\b\001\t\001\174\001?\001\n\000\000\001@\001\185\001Y\001A\001B\000\000\000\000\001\011\001\187\001?\000\000\001\159\001@\000\000\000\000\001A\001B\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\027\000\000\001Y\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\000\000\001Y\000\000\000\000\000\000\000\000\001\011\000\000\000\000\000\000\001\167\000\000\000\000\000\000\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\001\027\001\193\000\000\000\000\000\000\000\000\000\000\000\000\001\195\000\000\001\012\000\000\001\027\000\000\001(\001)\000\000\000\000\001\002\001\011\000\000\000\000\000\000\001\175\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\011\000\000\000\000\000\000\001\188\000\000\000\000\000\000\000\000\000\000\001?\000\000\000\000\001@\000\000\001\012\001A\001B\000\000\001(\001)\000\000\000\000\001\002\000\000\000\000\000\000\001\012\001\007\001\b\001\t\001(\001)\001\n\000\000\001\002\001\201\000\000\000\000\000\000\000\000\000\000\000\000\001\203\000\000\001Y\000\000\001\027\001\007\001\b\001\t\000\000\001?\001\n\000\000\001@\001\209\000\000\001A\001B\000\000\000\000\000\000\001\211\000\000\000\000\001\011\000\000\000\000\000\000\001\196\000\000\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\004\000\000\000\004\001\004\002\002\167\000\000\004\003\001Y\001?\000\000\000\000\001@\000\000\001\012\001A\001B\000\000\001(\001)\000\000\001?\001\002\006\218\001@\000\000\000\000\001A\001B\000\000\006\218\006\227\000\000\000\000\001\027\000\000\000\000\000\000\006\227\000\000\000\000\000\000\000\000\000\000\001Y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\011\001\027\000\000\001Y\001\204\000\000\000\000\000\000\007'\000\000\000\000\001\007\001\b\001\t\000\000\006\228\001\n\000\000\000\000\n.\001\011\000\000\000\000\000\000\001\212\000\000\n0\001\012\000\000\000\000\000\000\001(\001)\000\000\001?\001\002\000\000\001@\000\000\000\000\001A\001B\000\000\000\000\000\000\000\000\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\001\007\001\b\001\t\000\000\000\000\001\n\000\000\004\005\n6\000\000\000\000\000\000\000\000\001Y\004\005\n8\001\007\001\b\001\t\000\000\000\000\001\n\000\000\006\230\011\006\004\177\002f\002\136\000\000\000\000\006\230\011\b\004\177\002f\002\136\000\000\000\000\001\007\001\b\001\t\001\027\000\000\001\n\000\000\001?\011\014\000\000\001@\000\000\000\000\001A\001B\011\016\001\007\001\b\001\t\000\000\000\000\001\n\001\011\000\000\011\022\000\000\n1\001?\000\000\006\221\001@\011\024\000\000\001A\001B\000\000\006\221\000\000\000\000\000\000\000\000\000\000\001Y\000\000\000\000\000\000\000\000\000\000\001\027\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\000\000\000\000\000\000\000\000\001Y\004\178\001\027\000\000\000\000\001\011\000\000\000\000\004\178\n9\004\179\000\000\002\216\004\180\000\000\000\000\000\000\004\179\000\000\002\216\004\180\001\011\000\000\001\027\000\000\011\t\000\000\000\000\000\000\000\000\000\000\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\001\027\001\002\000\000\001\011\000\000\000\000\000\000\011\017\000\000\001\012\001\007\001\b\001\t\001(\001)\001\n\000\000\001\002\011\030\001\011\000\000\001?\000\000\011\025\001@\011 \000\000\001A\001B\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\012\001\007\001\b\001\t\001(\001)\001\n\000\000\001\002\011+\001Y\000\000\000\000\001\007\001\b\001\t\011-\000\000\001\n\000\000\001?\0113\000\000\001@\000\000\000\000\001A\001B\0115\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\000\000\000\000\001\007\001\b\001\t\001\027\000\000\001\n\000\000\000\000\011;\001Y\000\000\001?\000\000\000\000\001@\011=\000\000\001A\001B\000\000\000\000\000\000\001\011\000\000\000\000\001Y\011!\001?\000\000\000\000\001@\000\000\000\000\001A\001B\000\000\000\000\000\000\000\000\000\000\001\027\000\000\000\000\000\000\000\000\000\000\001Y\000\000\000\000\001\012\000\000\000\000\001\027\001(\001)\000\000\000\000\001\002\000\000\001\011\000\000\000\000\001Y\011.\001\007\001\b\001\t\000\000\000\000\001\n\000\000\001\011\011C\000\000\000\000\0116\000\000\000\000\000\000\011E\000\000\000\000\000\000\000\000\000\000\001\027\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\000\000\000\000\000\000\001\012\000\000\000\000\000\000\001(\001)\001\011\000\000\001\002\000\000\011>\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\011M\000\000\000\000\001?\000\000\000\000\001@\011O\000\000\001A\001B\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\000\000\000\000\000\000\000\000\000\000\001\007\001\b\001\t\000\000\001\027\001\n\000\000\000\000\011U\000\000\000\000\000\000\001Y\000\000\001?\011W\000\000\001@\000\000\000\000\001A\001B\000\000\001\011\000\000\000\000\001?\011F\000\000\001@\000\000\000\000\001A\001B\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001Y\001\012\001\027\000\000\000\000\001(\001)\000\000\000\000\001\002\001?\000\000\001Y\001@\000\000\000\000\001A\001B\001\007\001\b\001\t\001\011\000\000\001\n\000\000\011P\011_\000\000\000\000\001\007\001\b\001\t\000\000\011a\001\n\000\000\001\027\011g\001\007\001\b\001\t\000\000\000\000\001\n\011i\001Y\001\168\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\001\011\001\002\000\000\000\000\011X\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001\176\001\007\001\b\001\t\001?\000\000\001\n\001@\000\000\001\199\001A\001B\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\000\000\000\000\000\000\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\001\027\001\189\000\000\000\000\000\000\000\000\001Y\000\000\000\000\000\000\000\000\001\027\001\007\001\b\001\t\000\000\000\000\001\n\001?\001\011\001\197\001@\000\000\011b\001A\001B\000\000\000\000\000\000\000\000\001\011\000\000\000\000\000\000\011j\000\000\000\000\000\000\000\000\001\011\000\000\000\000\000\000\000\000\000\000\000\000\001\012\000\000\000\000\000\000\001(\001)\001?\001Y\001\002\001@\000\000\001\012\001A\001B\000\000\001(\001)\001\011\000\000\001\002\001\012\000\000\000\000\000\000\001(\001)\001\011\000\000\001\002\000\000\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001\205\001Y\000\000\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\001\011\001\002\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\011\000\000\000\000\001?\000\000\000\000\001@\000\000\001\012\001A\001B\000\000\001(\001)\001?\000\000\001\002\001@\000\000\000\000\001A\001B\000\000\001?\000\000\000\000\001@\001\012\000\000\001A\001B\001(\001)\000\000\000\000\001\002\000\000\000\000\001Y\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\001?\001\213\001Y\001@\000\000\000\000\001A\001B\000\000\001?\000\000\001Y\001@\000\000\000\000\001A\001B\000\000\000\000\001\011\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\007\001\b\001\t\001?\001Y\001\n\001@\000\000\001\216\001A\001B\000\000\000\000\001Y\000\000\001\012\001\007\001\b\001\t\001(\001)\001\n\001?\001\002\001\220\001@\000\000\000\000\001A\001B\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001Y\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\002\165\000\000\001Y\002\166\002\167\000\000\002\168\000\000\000\000\000\000\000\000\001\011\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\227\002\165\000\000\000\000\002\166\002\167\000\000\002\168\002\169\002\241\001\231\002\181\002\182\002\187\001?\000\000\000\000\001@\000\000\001\012\001A\001B\000\000\001(\001)\000\000\000\000\001\002\002\169\003\028\001\011\002\181\002\182\002\187\000\000\000\000\002\165\000\000\000\000\002\166\002\167\000\000\002\168\000\000\000\000\000\000\001\011\000\000\000\000\001Y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\012\000\000\000\000\000\000\001(\001)\002\169\003.\001\002\002\181\002\182\002\187\001\011\000\000\000\000\000\000\001\012\000\000\000\000\000\000\001(\001)\001\011\000\000\001\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001?\000\000\000\000\001@\001\012\000\000\001A\001B\001(\001)\000\000\002\188\001\002\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\000\000\000\000\000\000\000\000\002\189\000\000\000\000\002f\002\188\000\000\000\000\000\000\001Y\000\000\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\000\000\002\189\000\000\000\000\002f\000\000\000\000\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\000\000\000\000\000\000\000\000\002\188\000\000\002\165\000\000\000\000\002\166\002\167\001Y\002\168\002\165\000\000\001?\002\166\002\167\001@\002\168\002\189\001A\001B\002f\000\000\001?\000\000\001Y\001@\000\000\000\000\001A\001B\002\169\003;\000\000\002\181\002\182\002\187\000\000\002\169\003?\002\214\002\181\002\182\002\187\000\000\000\000\000\000\000\000\001h\002\215\002\165\002\216\000\000\002\166\002\167\000\000\002\168\000\000\001h\000\000\002\214\000\000\002\165\000\000\000\000\002\166\002\167\000\000\002\168\002\215\002\165\002\216\000\000\002\166\002\167\000\000\002\168\002\169\003I\000\000\002\181\002\182\002\187\000\000\000\000\000\000\000\000\000\000\000\000\002\169\003\232\000\000\002\181\002\182\002\187\002\214\000\000\002\169\005\181\000\000\002\181\002\182\002\187\000\000\002\215\000\000\002\216\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\tK\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\tR\002\188\000\000\002\165\000\000\000\000\002\166\002\167\002\188\002\168\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\189\000\000\000\000\002f\000\000\000\000\000\000\002\189\000\000\000\000\002f\000\000\000\000\002\169\t\223\000\000\002\181\002\182\002\187\000\000\000\000\000\000\000\000\000\000\000\000\002\165\000\000\000\000\002\166\002\167\002\188\002\168\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\188\000\000\000\000\000\000\002\189\000\000\000\000\002f\002\188\000\000\002\169\t\236\000\000\002\181\002\182\002\187\002\189\000\000\000\000\002f\000\000\001\007\001\b\001\t\002\189\000\000\001\n\002f\001\011\n2\000\000\000\000\000\000\000\000\000\000\002\214\000\000\001\011\000\000\000\000\000\000\000\000\002\214\000\000\002\215\000\000\002\216\000\000\000\000\000\000\000\000\002\215\000\000\002\216\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\001\012\000\000\002\188\000\000\001(\001)\000\000\000\000\001\002\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\002\214\002\189\n:\000\000\002f\000\000\000\000\000\000\000\000\002\215\000\000\002\216\002\214\000\000\000\000\000\000\000\000\001\007\001\b\001\t\002\214\002\215\001\n\002\216\002\188\011\n\000\000\000\000\000\000\002\215\000\000\002\216\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\002\189\011\018\000\000\002f\001\011\000\000\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\012\001\007\001\b\001\t\001(\001)\001\n\002\214\001\002\011\026\000\000\001Y\000\000\000\000\000\000\000\000\002\215\000\000\002\216\000\000\001Y\000\000\000\000\000\000\001\007\001\b\001\t\001\011\000\000\001\n\000\000\000\000\011\"\000\000\000\000\000\000\000\000\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\002\214\0119\000\000\000\000\001\011\000\000\000\000\000\000\001\012\002\215\000\000\002\216\001(\001)\000\000\000\000\001\002\001\007\001\b\001\t\001\011\000\000\001\n\000\000\000\000\011/\000\000\001?\000\000\000\000\001@\001\012\000\000\001A\001B\001(\001)\000\000\000\000\001\002\001\007\001\b\001\t\000\000\000\000\001\n\000\000\001\012\0117\000\000\000\000\001(\001)\000\000\000\000\001\002\001\007\001\b\001\t\001\011\000\000\001\n\001Y\000\000\011?\000\000\000\000\000\000\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\011G\000\000\000\000\001?\001\011\000\000\001@\000\000\001\012\001A\001B\000\000\001(\001)\000\000\000\000\001\002\000\000\000\000\001\011\000\000\000\000\000\000\000\000\000\000\000\000\001?\000\000\000\000\001@\000\000\001\012\001A\001B\000\000\001(\001)\000\000\001Y\001\002\000\000\000\000\001?\001\011\000\000\001@\001\012\000\000\001A\001B\001(\001)\000\000\000\000\001\002\001\007\001\b\001\t\000\000\000\000\001\n\001Y\000\000\000\000\000\000\000\000\001\011\000\000\000\000\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\001Y\001\002\000\000\000\000\001?\001\011\000\000\001@\000\000\000\000\001A\001B\000\000\011K\000\000\000\000\001\012\000\000\000\000\001\011\001(\001)\000\000\000\000\001\002\000\000\000\000\001?\000\000\000\000\001@\000\000\001\012\001A\001B\000\000\001(\001)\000\000\001Y\001\002\000\000\001?\000\000\000\000\001@\001\012\000\000\001A\001B\001(\001)\000\000\000\000\001\002\001\007\001\b\001\t\000\000\000\000\001\n\000\000\001Y\011Q\000\000\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\000\000\000\000\000\000\011I\000\000\001\007\001\b\001\t\001\011\000\000\001\n\000\000\000\000\011Y\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\001\007\001\b\001\t\000\000\001Y\001\n\000\000\000\000\001?\000\000\000\000\001@\001\012\000\000\001A\001B\001(\001)\000\000\000\000\001\002\000\000\001?\000\000\000\000\001@\000\000\001Y\001A\001B\000\000\000\000\000\000\000\000\000\000\011]\001\007\001\b\001\t\000\000\000\000\001\n\000\000\001Y\011c\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\011k\000\000\000\000\000\000\001Y\000\000\001\007\001\b\001\t\001\011\000\000\001\n\000\000\000\000\000\000\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\001?\001\011\000\000\001@\001\012\000\000\001A\001B\001(\001)\000\000\000\000\001\002\000\000\000\000\000\000\000\000\000\000\000\000\001\011\000\000\000\000\007\016\000\000\000\000\000\000\000\000\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\001h\001\002\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\001\011\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\011\000\000\000\000\000\000\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\001?\001\011\000\000\001@\000\000\001\012\001A\001B\000\000\001(\001)\000\000\001\011\001\002\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\000\000\001?\000\000\000\000\001@\001\012\000\000\001A\001B\001(\001)\000\000\001Y\001\002\000\000\004\005\001\012\000\000\000\000\001?\001(\001)\001@\000\000\001\002\001A\001B\001\007\001\b\001\t\000\000\004\006\001\n\004\177\002f\000\000\001Y\000\000\000\000\000\000\000\000\001\011\000\000\000\000\000\000\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\001h\001?\000\000\000\000\001@\000\000\000\000\001A\001B\000\000\001?\000\000\000\000\001@\001\012\000\000\001A\001B\001(\001)\001\011\000\000\001\002\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\000\000\000\000\000\000\001?\001Y\000\000\001@\000\000\000\000\001A\001B\000\000\000\000\001Y\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\004\178\001\002\000\000\000\000\000\000\001\229\000\000\000\000\000\000\004\179\000\000\002\216\004\180\000\000\000\000\004\000\001\225\004\001\004\002\002\167\000\000\004\003\004\000\001\011\004\001\004\002\002\167\000\000\004\003\000\000\000\000\000\000\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\000\000\000\000\001\011\006\234\000\000\000\000\000\000\000\000\000\000\001\012\004\004\000\000\000\000\001(\001)\000\000\004\000\001\002\004\001\004\002\002\167\000\000\004\003\000\000\000\000\001?\000\000\001]\001@\001\012\000\000\001A\001B\001(\001)\000\000\004\000\001\002\004\001\004\002\002\167\000\000\004\003\000\000\004\000\004\130\004\001\004\002\002\167\000\000\004\003\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001g\000\000\000\000\000\000\000\000\004\134\000\000\000\000\000\000\000\000\000\000\000\000\004\000\004\158\004\001\004\002\002\167\004\000\004\003\004\001\004\002\002\167\001?\004\003\000\000\001@\000\000\000\000\001A\001B\000\000\000\000\000\000\000\000\000\000\000\000\004\005\000\000\000\000\000\000\000\000\004\176\001?\004\005\000\000\001@\004\188\000\000\001A\001B\000\000\000\000\004\006\000\000\004\177\002f\000\000\001f\000\000\004\006\000\000\004\177\002f\000\000\000\000\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\000\000\000\000\000\000\003\239\004\005\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\006\004\209\004\177\002f\004\005\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\005\000\000\005c\000\000\000\000\000\000\000\000\000\000\004\006\000\000\004\177\002f\001\007\001\b\001\t\000\000\004\006\001\n\004\177\002f\000\000\000\000\000\000\004\178\001\007\001\b\001\t\000\000\004\005\001\n\004\178\000\000\004\179\004\005\002\216\004\180\000\000\000\000\000\000\004\179\000\000\002\216\004\180\000\000\004\006\000\000\004\177\002f\000\000\004\006\000\000\004\177\002f\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\000\000\000\000\000\000\004\178\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\179\000\000\002\216\004\180\000\000\001\007\001\b\001\t\004\005\005\238\001\n\004\178\004\000\000\000\004\001\004\002\002\167\000\000\004\003\004\178\004\179\004\005\002\216\004\180\004\006\000\000\004\177\002f\004\179\000\000\002\216\004\180\000\000\000\000\000\000\000\000\000\000\004\006\000\000\004\177\002f\007\025\001\011\001\007\001\b\001\t\000\000\004\178\001\n\000\000\000\000\000\000\004\178\000\000\001\011\000\000\004\179\000\000\002\216\004\180\000\000\004\179\000\000\002\216\004\180\000\000\001\007\001\b\001\t\001\012\000\000\001\n\000\000\001(\001)\000\000\000\000\001\002\000\000\000\000\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\004\000\001\002\004\001\004\002\002\167\000\000\004\003\000\000\000\000\000\000\000\000\000\000\000\000\004\178\004\005\000\000\000\000\000\000\000\000\000\000\000\000\001\011\004\179\000\000\002\216\004\180\004\178\000\000\000\000\t\254\004\006\000\000\004\177\002f\000\000\004\179\000\000\002\216\004\180\004\000\000\000\004\001\004\002\002\167\000\000\004\003\004\005\000\000\001\012\000\000\000\000\000\000\001(\001)\001?\000\000\001\002\001@\000\000\001\011\001A\001B\004\006\000\000\004\177\002f\001?\000\000\n\000\001@\000\000\000\000\001A\001B\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\001\011\004\001\004\002\002\167\001\012\004\003\000\000\007\175\001(\001)\000\000\000\000\001\002\000\000\000\000\000\000\000\000\000\000\000\000\007\182\000\000\000\000\000\000\000\000\000\000\004\178\000\000\001\012\n\015\000\000\000\000\001(\001)\000\000\004\179\001\002\002\216\004\180\000\000\001?\004\005\000\000\001@\000\000\000\000\001A\001B\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\006\004\178\004\177\002f\000\000\000\000\000\000\000\000\000\000\000\000\004\179\000\000\002\216\004\180\000\000\000\000\000\000\000\000\007\180\000\000\000\000\001?\000\000\004\005\001@\000\000\000\000\001A\001B\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\006\000\000\004\177\002f\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\000\000\000\000\000\000\000\000\007\207\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\005\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\178\000\000\007\211\000\000\004\006\000\000\004\177\002f\000\000\004\179\000\000\002\216\004\180\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\178\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\179\000\000\002\216\004\180\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\178\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\179\000\000\002\216\004\180")) + ((16, "\001\228\000\155\000\029\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\138\000\000\000\000\001_\001\146\000)\000P\000q\001\156\001T\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\152\000\000\000\000\000\000\000\000\000\000\001\208\000\000\000\000\000\000\001\242\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016 \003\"\004\026\004R\000\000\000\000\000\000\000\000\000\000\000\000\003\226\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016R\000\000\001\206\000\000\002\158;\208\004`\000\000\016R\004\186\000\000\003\212\000\000\005Z\000\000\000\000\000\000\000\000\000\000\005\156\000\000\006\156\007\026\000\000\000\000\006r\000\000\004\146\000\000\006\192\004\180\000\000\007\134\000\000\000\000\000\000\000\000\000\031\000\000\000\000\000\000\004\182\000\000\007\178\005\142\000\000\001\192\003\252\b*\000\000\tX\t\162\000\000\000\000\011\210\016R\000\0003\208\016R\bF\000\000\004|\003\144\002V\000\000\000\000\b`\006\170\021x\000\000\000\000\n^<\216\n~\000\000\012\184\011(\000\000\r\138\0154\180\210\000\000\180\232\000\000\000\209\000\000\000\000\003.\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\228=\012\n\024\t\204\nH\011V\011t\000\000\000\000\000\0004\132\n\138\000\000\000\000'\232\018\022\000\000\000\000\0008\000M\000\000\000\000\000\000\000\000\003\238\000\000\000\000\000\000\000\000=\\\000\000\b\238\000\000\011<\000\000\n\018\000\0005B\018@\000\000\011\142\000\000\000\000\011\180\000\000\n\178\000\000\000\000=\196\000\000\000\000\000\000\000\000\000\000\000\173\011\222]\146\012\028\000\000\000\000G\202\012T\163\208\012\142\000\000\000\000\144\212\r\018\000\000\163\230\rf\000\000\000\000\146\216\rz\000\000\001&\135\174\000\000\181P\001&\004x\000\000\000\000\000\000\000\000\181\146\000\000\182\004\001&\001&\001&\000\000\000\000\164\"\r\180\000\000\000\000\147t\r\184\000\000\000\000\000\000\000\000\014B\000\000\000\000\000\000\n\236\000\000\000\000\014\154\000\000\011 \000\000\000\000\000\173\000\000>B\000\000\011\176\000\000\014\194\000\000\011\246\000\000\000\173\014\136\000\000\000\173\000\000>\238\000\173\014\176\164:\014\190\000\000\000\000\160\224\014\198\000\000\000\000\164\254\014\244\000\000\000\000\162j\015(\000\000\015p\165R\015|\000\000\000\000\171\150\015\138\000\000\000\000\165\154\015\184\000\000\000\000\171\198\015\194\000\000\171\216\018j\000\000? \000\173\015\202\165\178\015\212\000\000\000\000\172\n\015\224\000\000\000\000\1666\015\234\000\000\000\000\1720\015\240\000\000\015\244\166\186\016\002\000\000\000\000\172\180\016\006\000\000\000\000\166\226\016\026\000\000\000\000\173P\016:\000\000\173\156\016P\000\000\000\000\173\188\016z\000\000\000\000\000\173\000\000\001&\173\234\000\000\000\000\001&\173\254\000\000\000\000\r\212\016\236\000\000\000\000\000\000\000\000\000\000\015\240\000\000\006\228\017\204\000\000?\212\007 y,\000\000\000\000\000\000\000\000\000\173\000\000\000\000\000\000\014\004\000\000\000\000\000\000\000\000\000\000\000\000\004x\017\180\000\000\000\000\000\000\000\173#@\000\173?t\000\173\000\000\000\000y\146\000\000\000\000\018\148\000\000\000\000\000\000\000\000M\190kl\017\006\007\"\016\224\154\022\000\000\000\000\000\000\000\000?\138\000\173\000\000\154\\\000\000\000\000\000\000@>\000\173\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012\006\000\000\017,\007\220\017\218\000\000\000\000\000\000\000\000\005(\000\000\000\000\b\006\000\223\000\000\b8\007T\017D\bh\006V\0078\003\024\006 \tX\018\142\006<\b\160\000\b\tV\000\000\000\000\000\000\017r\bz\023@\023\248\017\148\tX\004\150\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\160\t\178\024B\006|klA\140\024\174\000\000y\232A\154\000\000\000\000\000\000A\240\000\173\000\000\154l\000\000\000\000\000\000BP\000\173\000\000\000\000z4{6{\196\000\000\0013\000\000\000\000\000\000\018\168B\174\000\173\018\206\154\224\017\244\t\198\017\030\000\000\003\156\000\000\000\000\000\000\003\238\000\000\000\000\155..\196\000\165\000\000\000\000\003\204\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\155L\000\000\000\000\000\000C\b\000\173\000\000\000\000M@\000\000\000\000\000\000\005L\000\000\000\000\000\000\000\000\000\000\000\000\019n\156\030\000\000\018\000\t\240\1562\000\000\000\000\000\000\003\"\000\000\156F\003\"\000\000\157\024\000\000\000\000\000\000D \000\173\000\000\000\000\132\156\000\000\000\000\000\000\000\000\000\000\003\"\1576\003\"\157\132\012\006\019\002\000\000\151p\000\000\000\000\000\000\000\000\003\"\000\000\158\b\000\000\000\000\000\000D\\\000\173\000\000\000\000\174\026\000\000\000\000\003\"D\128\000\173\000\000\158N\003\"\n*\000\000\003\"\000\000\000\000\003\"\000\000{\196\000\000\000\000\000\000\003\"|.\000\000\000\000\000\000\003\"\000\000\000\000\003\"\000\000\003\"\000\000\000\141\019(\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\174B\000\000\000\000\000\000\018$\158\218\003\"\000\000\000\000\000\000\159 \000\000\000\000\000\000D\188\000\173\000\000\000\000\174\136\000\000\000\000\018$\000\000\159\168\000\000\000\000\000\000EB\000\173\000\000\000\000\175\128\000\000\000\000\018$\175\142\000\000\159\242\000\000\000\000\000\000F\012\000\173\000\000\000\000\175\220\000\000\000\000\018$|\022\000\000\007\136\0186\025\006\000\000Fl\000\173\019H\000\000\000\000\001R\000\000\000\000\018\200\000\000\000\000\000\000\000\000\000\000\000\000\b\210\018\202\019x\025>\018\144\018\198\018\220\n2\001\128\001\176\n4||F\144GV\020N\019\236|\186x\200\000\000}F\019\022\nJy\246\167$|\166}\250\181\b\019 \n\170\025|\019,\n\192\026<\019F\n\230Ctz\024\003\"\026\222\019L\011\024\160\016\020\170\000\000HS\128\000\000\000\184\132\140\020\172\r\134T\002\000\000\000\184\133.\020\174\r\138TN\000\000\000\184\133Z\020\176\r\228T\208\000\000\000\184\133\230\020\180\r\232U\024\000\000\000\184\1340\020\196\r\236U\154\000\000\000\184\134\156\020\202\014\bU\230\000\000\000\184\135(\020\208\014\014Vh\000\000\000\184\135T\020\210\014\018V\176\000\000\000\184\136\030\020\218\014 W2\000\000\000\184\136t\020\222\014$W~\000\000\000\184\136\160\020\228\014\000\250\144\b\021(\015Lf\030\000\000\000\184\005R\000\000\000<\161\168\162\018\003\"\1448\0210\015Zfp\000\000\000\184\162\192\003\"\144\130\0212\015\\g\024\000\000\000\184\163\b\003\"\1456\0216\015hg4\000\000\000\184\003\248\145\134\0218\015\146g\188\000\000\000\184\146\018\021>\015\156hJ\021>\146^\021B\015\170i\n\000\000\000\184\t\150\146\180\021F\015\172iP\000\000\000\184\000\000\000\000\000\000\021.\000\000\000\000\000\000\000\000\000\000\000\000\000\184\021.\000\000i&\021L\015\178i\152\rJ\021.\000\000\000\000\000\000\000\000\005\022\021.\000\000i\220\000\000\021P\015\198j\162\rb\021.\000\000\000\000\000\000\007\128\021.\000\000\022\180\000\000\000\000\1672\000\000\001\006\000\000\017\n\000\000\022:\000\000\002\134\000\000\000\000\000\000\000\000\000\000\n\198\000\000\000\000\000\000\021Z\016\028k*\000\000\000\184\000\000\000\000\000\000/\226\000\0000B\000\000\000\000\000\000\000\000\000\000\147\020\021\\\016(k\172\000\000\147\220\021b\016:k\244\000\000\000\184\000\184\1488\021d\016\017\150\021\204qv\000\173\000\000\001\168\017\174\022\178\000\000\000\000\000\000\000\000\000\000\000\000q\178\005~\000\000\017\184\023\"\000\000\000\000\000\000\000\000\000\000\000\000\020\186\016\190\000\000\017\190\003\026\000\000\017\202\017\250\007\b\000\000\003b4$\000\000\006\022\000\000r\146\000\173\000\173\000\000\000\000\006\002\000\000\007\158\000\000\005\028\006\002\006\002\000\000\017\2524H\000\173r\218\000\173\017P\000\000\000\000\000\000\017`\000\000\000\000\003\214\000\000\006\216\022d\018,\023\180\022\018\000\000\000\000\0056\b\152\022n\000\000\000\000\0182\023\194\022\"\000\000\017\130\028\n\000\187\018t\021\236\000\155\004\208\018v\022\208\000\000\000\000\023\1744\204\000\000\000\0005\136\000\000\017\186\000\000\007\224\000\000\000\000\000\000\000\000\000\000\000\000s\006\000\173\000\000\023\1766N\000\000\000\0006~\000\000\001D\018~\023D\000\000\000\000\150\026\020\208\007\174\000\000s\186\000\1736\218\000\000\000\0007\n\000\000\000\000\018\030\000\000\0064\000\000\000\000\000\000\000\000\000\000\000\000\021\232\000\000\000\000\150r\022\012\t\190\000\000t\"\000\1737T\000\000\000\0007\192\000\000\000\000\018\1408L\018:\000\000\018\154\018\156\0014\001`\018\186\014\224\018\196\023J8\244\018\158\000\000\018\202\018\210\b\142\000\000\002\2009:\000\000\b \000\000\018\224\029\248E\184\006P\021\220\006\140\000\000K\1380\\\000\000\r\206\000\000\000\000\r\206\000\000\000\000\r\206\t.\000\000\006\160\r\206\023P9\240\018\196\000\000\r\206\000\000M\252\000\000\176@\000\000\149\172\014\192\000\173\000\000\150\202\176R\000\000\150\222\000\000\004\228\000\000\000\000\000\000\006\002\000\000\000\000\000\000\000\000\r\206\000\000\000\000\019\014\000\000\0070\014\246\019,\000\000\019\0129\138\019z\000\000\000\000\000\000\019\160\000\000\000\000\001B\000\000\r\206\151(\000\000\007\144\r\206^P\000\000\019\174\022\140\019\018\023\224\022:\000\000w\162\019\236\022\150\000\000\000\000\000\000P(\018\144\000\000\000\000\000\000\000\000\000\000\000\000\020,\000\000\019\246\000\000\0226\019(\n\178\007\240\000\000\022\170\019:\011\170\000\000\014d\023\210\023|\019\250\022\178\000\000\000\000\000\000\000\000\000\000\000\000\020\006Q\192\000\000\000\000\000\000\020,\000\000\000\000\000\000\000\000\020\nSX\000\000\000\000\000\000\000\000\000\000\000\000\023j\002\156\0156\022r\005\196\019J\000\000\019z\000\000\000Q\000\000\000\000\000\000\000\000\000\000\000\000\000\000\022x\b\250\019~\000\000\019\128\000\000\004\172\015\242\023\238\023\150\020,\000\000\000\000\023\130\003\012\001\250\000\000\000\000\000\000\000,\004n\000\000\176x\000\000\000\000\003\"\000\000\163\142\000\000\000\000\000\000tj\000\173\000\000\000\000\176\198\000\000\000\000\003\"\003\"\000\000t\222\000\173\000\000\004\172\000\000\000\000\022`\019\180v\002\000\000\000\000\000\000\185\152\000\000\185\230\000\000\022b\019\188v\164\000\000\000\184\000\000\152\018\000\000\000\000\023\246\000\000\000\000\000\000\186:\000\000\022f\019\190v\194\000\000\000\184\000\000w,\000\000\000\000\000\000\000\000\000\0009\180\019\194\000\000\019\196\151\168\000\000\000\000\001&\1616\000\000\000\000\000\000\000\000\000\000wn\000\173\022&\167\160\022(\000\000\000\000\177\002\022*\000\000\000\000\167\250\022,\000\000\000\000\177n\0220\000\000\0154\011\192\000\000\000\000\012\006\000\000\000\000\000\000\015\178\022r\022\150\015\178\000\000\000\000\000\000\000\173\000\000\022x\012\208\000\000\000\000\012\226\000\000\000\000\000\000\000\000\000\173\000\149\004B\r\026\000\000\000\000\rR\000\000\000\000\000\000\000\000\r\142\000\000\000\000\r\154\000\000\000\000\000\000\000\000\000\000\n&\023\176\020V\000\000\000\000\023\156\000\244\002\030\000\000\000\000\000\000\000\000\b\162\016\208\023\238\011N\023\180\020|\000\000\000\000\023\160\001\024\b\140\000\000.\176\022~\022\128\019\198\015\016\020\134\000\000\019\206\015l\020\136\000\000\022\134\022\136\019\234\022\180\022\176\016\022\007\030\000\000\020\024\016\168\000\000\016\180\020\192\000\000\0232\000\000\017\138\004n\020\198\022\248\020(\023:\000\000\018L\007\164\020\200\023\006\000\000\000\000\023F\022^\023j\000\000\000\000\000\000\n\144\tF\023\156\023r\000\000\020\206\000\000\018\178\b\232\000\000\020\234\000\000\000\147\018\196\n\b\000\000\000\000\r\202\000\000\000\000\022\178\020*\016z\022\002\022\180\020,\024j\022\196\000\000\000\000\152B\020\246\023 \020H\024r\022\204\000\000\000\000\152V\020\248\023*\000\000\000\000\000\000f\234\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\254\000\000\022\202\020Z\019~\b\232\023\198\000\000\023D\000\000\023H\020d\012@\000\000\017\178\000\000\011\150\024\022\021\000\023N\000\000\000\000\000\000\000\000\000\000\000\000\004n\000\000\000\000w\216\000\173\022\158\168\026\022\160\000\000\000\000\177\156\022\162\000\000\000\000\168D\022\164\000\000\000\000\177\188\022\166\000\000\022\168\168d\022\172\000\000\000\000\178\n\022\174\000\000\000\000\169\"\022\176\000\000\000\000\1788\022\178\000\000\178V\022\202\000\000x\n\000\173\022\180\169l\022\182\000\000\000\000\178\134\022\184\000\000\000\000\169\132\022\186\000\000\000\000\178\180\022\190\000\000\022\202\169\198\022\206\000\000\000\000\178\212\022\208\000\000\000\000\170F\022\212\000\000\000\000\178\240\022\214\000\000\001&\179n\022\216\170\164\022\218\000\000\000\000\180\b\022\220\000\000\000\000\170\232\022\222\000\000\000\000\1808\022\224\000\000\001&\180\\\022\226\171n\022\232\000\000\000\000\180\164\022\234\000\000\000\000\171\132\022\238\000\000\000\000\180\182\022\242\000\000\000\173\000\000\000\173\000\000\000\000\000\000\000\000\000\000x\144\000\000\r@\000\000\023`\000\000\014\030\000\000\000\173\023d\000\000\0242\021\002\000\000\000\000\000\000:|\000\000;\030\000\000\000\000\000\000\000\000\000\000\011\n\000\000\000\000\000\000\001\016\001T\000\000\000\000\000\000\000\000\000\000\015\016\001T\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\183\000\000\000\000\000\000;\168\000\000\000\173\000\000\000z\000\000\000\000\000\000\001\134\000\000\000\000\000\000\001\220\000\000\000\000\000\000\000M\000\000\000,\000\000\000i\000\000\004n\000\000\000\019\000\000\000\000\000\000\153\012\003\"\000\000\000\000\005\238\000\000\000\000\000\000\000\000\n\198\005r\023l\004\n\000\000\000\000\000\000\000\000\000\000\000\000\023n\004\142\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000d\148\000\000\021\006\000\000\000\000\000\000\000\000\0060\bR\015L*\152\000\000\000\000\021\b@\204\000\000\000\000\000\000\021,s\210\000\000\000\000\000\000\000\000"), (16, "\t\132\004\000\004]\004\001\004\002\002\167\002b\004\003\011\133\002f\002\136\002\165\nF\000\182\002\166\002\167\005y\002\168\000\200\011\164\002\137\004\142\t\133\t\164\t\132\004\000\t\135\004\001\004\002\002\167\004\148\004\003\007}\0008\007\143\000\182\t\136\t\165\002\169\003\233\000\200\002\181\002\182\002\187\t\219\004\142\t\133\t\164\004l\002\139\t\135\002f\011\188\005\211\004\148\004\026\000\252\001\"\001\b\001\t\t\136\t\165\001#\004\167\001\002\001\005\002b\011\184\b[\002f\002g\002f\t\137\003\186\000\201\004]\t\168\002b\003\187\003\189\002f\002\136\004\000\n\192\004\001\004\002\002\167\004\167\004\003\002b\000\193\002\158\002f\002\136\011\192\004\030\t\137\000\204\011\189\tk\t\168\t1\004\142\003\020\004F\000\206\005{\002f\004<\nv\004/\004\148\t\138\000\165\004@\005\211\001\002\011\185\011\172\000\205\002\139\004l\000\252\004\187\002f\004m\b4\000A\007\143\t\139\001\002\001\005\002\139\002\188\tm\004h\t\138\000\157\011\193\004\006\t\193\004\177\002f\t3\004\167\nI\nJ\004\187\001\006\002\189\n\193\004<\002f\t\139\011\165\to\002\216\004@\t\169\001\002\000<\011\149\t4\004\006\004A\004\177\002f\t6\nh\011\174\006\186\tr\nM\007\217\000\167\t\170\001`\001\b\001\t\001r\t\194\001a\t\169\003V\004B\004\026\tp\t\142\001$\006\220\003\235\t\143\001(\001)\t\145\t\195\001\002\t\150\004m\t\170\004[\004R\b\025\006\178\004\187\004\192\nq\004A\004\193\000\193\004\207\t\142\t\162\006}\001!\t\143\004\178\003\236\t\145\000\193\004\006\t\150\004\177\002f\n\128\004\208\002\214\002\216\004\180\004\192\000q\002\167\004\193\t\163\004\207\002\215\t\162\002\216\t\132\004\000\004\178\004\001\004\002\002\167\0008\004\003\011\131\011\150\0008\004\208\005\127\002\216\004\180\000;\001\b\004\210\004\189\t\163\nn\004\142\t\133\t\164\t\132\004\000\t\135\004\001\004\002\002\167\004\148\004\003\t\179\001`\001\b\001\t\t\136\t\165\001a\000@\002b\004\210\006\176\002f\002\136\004\142\t\133\011\138\004\192\004i\t\135\004\193\002b\004\207\004\148\002f\002\136\000\193\011\151\004\178\t\136\t\165\000n\004\167\011\176\011\158\001\002\004]\004\208\001$\002\216\004\180\t\137\001(\001)\002b\t\168\001\002\002f\002g\000\144\000\252\004\000\004#\004\001\004\002\002\167\004\167\004\003\001\002\001\005\004]\004\028\004R\b\253\006\221\t\137\002b\004\210\tq\002f\002g\004\142\nt\nu\006\181\011\180\b\255\005\211\007n\t1\004\148\t\138\004l\011\159\003\241\002f\011\177\n\024\004\206\007\176\nt\nu\004\187\002b\001\002\005\211\002f\002\136\t\139\nM\007\217\t1\004a\tm\000\160\t\138\004l\006\181\004\006\002f\004\177\002f\006\226\004\167\011\160\002\151\004\187\nM\007\217\001(\b\178\t3\t\139\001\002\to\000\206\b\161\t\169\011\181\000\212\004/\002f\004\006\001$\004\177\002f\004\162\001(\001)\011\161\t4\001\002\b\162\t3\t\170\t6\b\185\003\240\000[\t^\t\192\t\169\004h\000\144\b\180\tp\t\142\001\b\000\193\004m\t\143\t\182\t4\t\145\t\216\001r\t\150\t6\t\170\003X\000\146\tF\011s\004\187\004\192\b\182\000_\004\193\000\148\004\207\t\142\t\162\nr\004m\t\143\004\178\000\193\t\145\011\140\004\006\t\150\004\177\002f\000c\004\208\000:\002\216\004\180\004\192\000>\b\183\004\193\t\163\004\207\t\194\t\162\t\215\t\132\004\000\004\178\004\001\004\002\002\167\002b\004\003\t\171\002f\002\136\004\208\t\195\002\216\004\180\ns\001\b\004\210\004\189\t\163\002\150\004\142\t\133\t\164\t\132\004\000\t\135\004\001\004\002\002\167\004\148\004\003\006\241\001`\001\b\001\t\t\136\t\165\001a\002b\001\b\004\210\002f\002g\002\161\004\142\t\133\t\164\004\192\006\221\t\135\004\193\005\222\004\207\004\148\002f\002\136\001&\001'\004\178\t\136\t\165\000x\004\167\011\212\004\002\002\167\011p\004\208\011r\002\216\004\180\t\137\004]\t1\000\148\n\025\t\196\t\197\002\165\002\151\000\252\002\166\002\167\001(\002\168\007\135\004\167\001\002\001\002\001\005\000\254\t\198\t\199\005\148\005\236\t\137\004i\004\210\001\002\t\173\000\144\004j\005\154\t\200\007\217\002\169\003\233\003\186\002\181\002\182\002\187\t\138\005\132\003\189\004n\t3\000\252\b[\004l\007\181\002f\002f\004\187\006'\001\002\001\005\002f\002\136\t\139\011\220\004\002\002\167\t\196\t\197\t4\t\138\003\234\000\206\004\006\t6\004\177\002f\bn\t=\0008\002\151\004\187\t\198\t\199\001(\007\138\001\b\t\139\001\002\nF\t\212\b\161\t\169\000\216\t\200\007\217\b\218\004\006\001$\004\177\002f\006D\001(\001)\002\151\002\b\001\002\b\162\001(\t\170\bo\b\169\001\002\000\170\001&\001'\t\169\001\007\001\b\001\t\000w\t\142\001\n\004]\002\200\t\143\b\184\b\161\t\145\003\152\004m\t\150\007\140\t\170\011\213\002\188\004\177\002f\b^\004\192\002\216\n\159\004\193\b\162\004\207\t\142\t\162\b\163\000v\t\143\004\178\002\189\t\145\007\177\002f\t\150\000\146\002\165\000\149\004\208\b\180\002\216\004\180\004\192\000\148\004^\004\193\t\163\004\207\004l\t\162\000\127\002f\002\011\004\178\t\132\004\000\t\160\004\001\004\002\002\167\b\182\004\003\004\208\000\184\002\216\004\180\006\199\002\186\004\210\000\252\t\163\003\235\011\223\011\224\000\193\004\142\011\226\001\002\001\005\011\221\t\135\004\177\002f\002b\004\148\b\183\002f\002g\004]\006{\t\136\011\228\004\210\004\030\006\175\002\151\n\255\005x\005\128\001(\001\011\nI\nJ\001\002\001r\000\194\004<\002\214\003\149\000\144\002\200\t\245\004@\000\139\001\002\003\165\002\215\004\167\002\216\011\200\004\002\002\167\000\197\000\208\n`\004m\t\137\001\012\nM\007\217\007s\001(\001)\005\211\004l\001\002\b\220\002f\001`\001\b\001\t\005\155\000\144\001a\004\030\000\193\tm\t\220\t\004\t\132\004\000\000\252\004\001\004\002\002\167\011\243\004\003\004<\000\142\001\002\001\005\001_\004A\004@\000\252\001\002\t\138\to\011\235\0045\004\142\011\236\001\002\001\005\0046\t\135\000\206\004\187\000\228\004\148\t\206\004/\004B\t\139\002h\t\136\011\244\000\193\004\000\000\156\004\001\004\002\002\167\004\006\004\003\004\177\002f\011\202\tp\005\211\001?\006}\001\224\001@\000\193\000\193\001A\001B\004\142\011\231\007\184\004m\004\167\004A\001`\001\b\001\t\004\148\000\193\001a\b\134\t\137\t\b\004\030\b\003\007\183\004W\b\161\005\211\t\170\000\146\000\211\000\147\004B\b[\007\185\004<\002f\000\148\006\181\b\161\t\142\004@\b\162\001\002\t\143\002Q\b\168\t\145\000\144\004\167\t\150\000\164\004\206\007\139\011\203\b\162\004\177\002f\004\192\b\193\t\138\004\193\000\146\004\207\000\186\t\162\000\163\006\177\001$\004\178\000\148\004\187\001(\001)\0045\000\252\001\002\t\139\004\208\004Q\002\216\004\180\000\193\001\002\001\005\b\170\t\163\004\006\000\206\004\177\002f\004A\002O\004/\t\132\004\000\000n\004\001\004\002\002\167\007\186\004\003\011\248\002b\001r\005\211\002f\002g\004\210\004\187\000\169\004B\000\193\0042\t\181\004\142\t\133\t\217\007\138\t\188\t\135\002\216\000\190\t\170\004\148\004\006\004<\004\177\002f\t\160\t\136\t\165\004@\002b\001\002\t\142\002f\002g\t1\t\143\005\211\004]\t\145\002b\001$\t\150\002f\002g\001(\001)\000\206\004]\001\002\004\192\004\"\004/\004\193\004\167\004\207\005\211\t\162\004\189\b\225\004]\004\178\007\140\t\137\b\157\t1\000\146\b\164\000\192\000\234\004\208\006\212\002\216\004\180\000\148\t1\004h\t3\t\163\004A\007\127\0045\000\189\000\144\004l\004Y\0046\002f\004\192\b\186\007\131\004\193\b\152\004\207\004l\002f\t4\002f\001\251\004\178\004\210\t6\007\134\t\138\004]\t:\004l\t3\004\208\002f\002\216\004\180\002b\000\196\004\187\002f\002g\t3\t\132\004\000\t\139\004\001\004\002\002\167\n\148\004\003\t4\n\166\001\249\002\031\004\006\t6\004\177\002f\003Z\t7\t4\011\235\004\210\004\142\011\236\t6\005\211\b\029\t\135\tA\007\142\t1\004\148\t\169\004l\000\193\003\186\002f\t\136\011\239\004\030\b\244\003\189\004U\002b\004m\004h\002f\002g\000\144\t\170\b\166\001\b\004<\002f\004m\n}\004\030\b\164\004@\004S\001\002\t\142\007\157\000\193\004\167\t\143\004m\0008\t\145\004<\b\229\t\150\t3\t\137\007G\004@\0045\001\002\t1\004\192\004f\0046\004\193\003]\004\207\004\030\t\162\000\146\004\031\000\199\004\178\t4\0045\000\193\000\193\000\148\t6\0046\004<\004\208\td\002\216\004\180\005\211\004@\002>\001\002\t\163\004A\005\211\004m\004i\t\149\t\138\004]\002b\004]\000\210\002f\002g\t3\007\169\007\171\007\173\004\187\004A\002G\006\181\004B\004\210\t\139\t\132\004\000\001r\004\001\004\002\002\167\003\151\004\003\t4\004\006\004\206\004\177\002f\t6\004B\000\144\002R\tv\005\211\007S\002J\004\142\t\133\004A\011\242\007\254\t\135\b\024\0045\004l\004\148\004l\002f\0046\002f\b+\t\136\t\175\000\146\t'\000\215\n\185\002f\004B\002M\t\170\000\148\001\007\001\b\001\t\002\151\003b\001\n\002\\\001(\001\015\000\193\t\142\001\002\n\129\000\226\t\143\001\029\004\167\t\145\b\194\004i\t\150\001\007\001\b\001\t\004\030\t\137\001\n\0044\004\192\001\017\000\193\004\193\004L\004\207\003\191\t\162\001\218\004<\t,\004\178\003\189\004\030\b0\004@\0048\001\002\b[\000\233\004\208\002f\002\216\004\180\ns\007\138\004<\000\193\t\163\nF\n\235\004m\004@\004m\001\002\002\250\002\167\t\138\001\007\001\b\001\t\006\181\007\227\001\n\t?\004]\001\015\002f\004\187\004\030\004\210\000\193\004:\001\029\t\139\004\206\n\178\001\027\004M\002f\000\193\000\146\004<\001-\004\006\004A\004\177\002f\004@\000\148\001\002\004\030\007\140\002\017\004E\b\164\001\011\nU\001\027\007\138\0012\002U\004A\t\178\004<\004B\000\144\b\028\007\248\002`\004@\004l\001\002\003\186\002f\nF\b5\001\011\t\012\003\189\t\170\001\219\004B\001\012\t\202\0045\002\216\001(\001)\007\132\0046\001\002\t\142\006\233\002\167\0045\t\143\006\181\004A\t\145\0046\001r\t\150\001\027\001\012\003\162\007\140\0008\001(\001)\004\192\004\206\001\002\004\193\002m\004\207\004\030\t\162\004B\004d\004A\004\178\001\011\nk\002\146\b*\0012\007\143\004P\004<\004\208\004\030\002\216\004\180\004p\004@\001\002\001\002\t\163\005\211\004B\007\138\nI\nJ\004<\002\195\000\144\001>\004m\001\012\004@\000\193\001\002\001(\001)\006\169\001?\001\002\011\142\001@\004\210\000\241\001A\001B\nV\ni\001\007\001\b\001\t\nM\007\217\001\n\004]\004\030\001\015\000\144\007[\001?\003i\003l\001@\001\029\004\206\001A\001B\004A\004<\000\146\007\140\0011\003w\001Y\004@\0045\001\002\000\148\000\193\001s\004C\n\186\004A\000\144\001\007\001\b\001\t\004B\000\193\001\n\nI\nJ\001\015\000\206\001Y\001>\t\148\t\153\004/\001\029\004l\000\167\004B\002f\001?\nF\007\157\001@\005\213\000\193\001A\001B\nV\ni\001\007\001\b\001\t\nM\007\217\001\n\003~\0045\001\015\006\181\004A\n\191\0046\004\030\000\244\001\029\007^\003\129\002\165\001\027\001\222\002\166\002\167\004\206\002\168\001Y\004<\nF\000\193\000\193\004B\001s\004@\n\188\001\002\000\146\003\132\001;\001\011\nz\000\193\000\144\0012\000\148\001\022\002\169\002\196\001\021\002\181\002\182\002\187\007\172\007\171\007\173\000\206\001\027\001r\nF\n\242\004/\003\164\003\138\001\020\004m\000\146\001\012\001z\003\245\004\030\001(\001)\007a\000\148\001\002\001\011\n\246\000\144\001\025\0012\002\197\001r\004<\004A\011\144\005\137\001\027\0045\004@\000\193\001\002\000\146\004;\001\127\004\014\004\016\004\218\002\198\002\230\000\148\000\193\004\030\001\012\004B\007f\001\011\001(\001)\007\157\0012\001\002\004\025\000\144\001/\004<\004H\001\007\001\b\001\t\000\193\004@\001\n\001\002\001\002\001\015\nI\nJ\001\236\000n\0045\001>\001\029\001\012\004{\004T\004\129\001(\001)\004A\001?\001\002\002\201\001@\007\157\000\193\001A\001B\nV\ni\001\237\000\193\000\144\nM\007\217\0016\004\139\002\005\002\189\004B\0008\002f\nI\nJ\000\146\004K\001\134\001>\n>\007\171\007\173\004A\000\148\001\002\0019\001Y\001?\000\193\000\193\001@\000\144\001s\001A\001B\nV\ni\004\145\004\183\0008\nM\007\217\004B\nI\nJ\000\193\004\197\000\144\001>\002\203\000\146\005\211\001\138\001\027\nA\007\171\007\173\001?\000\148\004\203\001@\000\144\001Y\001A\001B\nK\nL\000\193\001s\000\193\nM\007\217\001\011\001\007\001\b\001\t\0012\000\144\001\n\001r\004\213\001\015\001\242\005\145\001\236\000\146\002\214\003\180\001\029\000\193\006\193\004\224\001Y\000\148\000\144\002\221\007\157\002\216\001s\001\012\001j\004\230\006\207\001(\001)\007\157\001\237\001\002\005\187\002\167\001\007\001\b\001\t\002\003\005\211\001\n\005\211\004\236\001\015\000\193\000\193\001\236\005\189\002\167\000\146\001\029\003\184\004\030\000\193\004\242\007i\001G\000\148\007\157\001\007\001\b\001\t\007B\005\212\001\n\004<\000\193\001\015\001\237\004\248\001\236\004@\001r\001\002\001\029\001\238\005\163\000\146\004\254\007\192\nO\007\171\007\173\001\027\001i\000\148\007\157\000\193\001>\nR\007\171\007\173\001\237\000\146\b/\007\197\007\143\001?\000\193\002\001\001@\000\148\001\011\001A\001B\001\252\0012\000\146\000\193\007\201\007\152\007\217\001\242\001M\005\004\000\148\007\157\nZ\007\171\007\173\001\027\004A\007\157\000\146\000\193\bB\007\223\ta\b&\001\012\000\144\000\148\001Y\001(\001)\007M\000\193\001\002\001s\001\011\000\146\004B\011x\0012\001\027\n]\007\171\007\173\000\148\001\242\005\n\000\193\005\016\001\007\001\b\001\t\b8\n\194\001\n\004\030\000\193\001\015\007l\001\011\001\253\001r\001\012\0012\001\029\005\196\001(\001)\004<\001\242\001\002\nb\007\171\007\173\004@\001Q\001\002\ne\007\171\007\173\b>\005\211\001\255\0008\006\181\011\156\001\012\005\211\b\155\001>\001(\001)\000\193\005\022\001\002\005\028\006\181\005\"\001?\t\155\004\030\001@\007\242\007\129\001A\001B\001\252\001\007\001\b\001\t\t\132\005(\001\n\004<\005.\001\015\0054\001T\001\253\004@\n\193\001\002\001\029\005:\004A\005@\001>\001X\000\193\011\235\000\193\006\181\011\236\001Y\001\027\001?\t\135\005F\001@\001s\001\255\001A\001B\001\252\004B\005\211\t\136\000\146\005\211\011|\001>\bH\002\167\001\011\005L\000\148\001m\0012\001q\001?\bX\007\217\001@\001\242\t8\001A\001B\001\252\b,\004A\001Y\te\005R\001v\b1\000\193\001s\000\193\004\030\000\193\001\012\b\001\t\137\t\160\001(\001)\005X\005f\001\002\004B\005l\004<\001\027\000\193\001Y\005p\000\193\004@\000\193\001\002\001s\001\007\001\b\001\t\006\181\000\193\001\n\000\193\005\246\001\015\004\030\001\011\001\236\b$\005\255\0012\001\029\001}\006\b\000\193\n\135\001\242\t\138\004<\006\018\001\007\001\b\001\t\001\002\004@\001\n\001\002\b6\001\015\001\241\bS\000\193\001\136\001\012\t\139\001\029\006\027\001(\001)\001>\006$\001\002\004A\006/\0068\001\007\001\b\001\t\001?\000\193\001\n\001@\006A\001\015\001A\001B\tN\001\141\006H\011\238\001\029\n\139\004B\000\193\000\193\bJ\006r\000\193\006w\001\002\006\181\011\157\000\193\000\206\004A\006\131\006\139\001\154\br\001\030\t\141\001\027\006\147\001Y\001\149\000\193\011\128\005\211\001\153\001s\n)\000\193\t\142\t\208\004B\000\193\t\143\001>\t\031\t\145\001\011\000\193\t\150\006\154\0012\001\027\001?\t8\006\160\001@\001\242\001\157\001A\001B\001\252\006\165\006\172\t\162\000\193\006\191\t\186\007\217\000\193\005\211\001\011\000\193\000\193\001\012\0012\006\205\001\027\001(\001)\004\030\000\193\001\002\n\147\001\161\t\163\002\165\000\193\001Y\002\166\002\167\006\222\002\168\004<\001s\000\193\001\011\000\193\001\012\004@\0012\001\002\001(\001)\000\193\000\193\001\002\001\007\001\b\001\t\005\211\000\193\001\n\002\169\003\r\001\015\002\181\002\182\002\187\006\237\001\170\b`\001\029\001\012\t\160\006\254\001\165\001(\001)\nE\007\217\001\002\000\193\001\169\007\003\007\n\002\165\000\193\001>\002\166\002\167\001\030\002\168\007\028\000\193\000\193\007!\001?\000\193\004A\001@\nx\011\001\001A\001B\001\252\001\173\bc\000\193\n\176\n\195\001\177\001>\002\169\003\233\001\191\002\181\002\182\002\187\004B\001\186\001?\n\153\006\223\001@\007,\001\190\001A\001B\bT\001\002\001\194\001Y\005\211\001\198\0075\001\207\001>\001s\007@\007K\005\211\001\027\001\202\007W\001\206\001?\b\145\007r\001@\007x\000\193\001A\001B\001\129\001\210\001Y\000\193\002\188\007\146\007\165\001\011\001s\007\167\007\214\0012\000\193\000\193\001\007\001\b\001\t\001\214\007\219\001\n\002\189\000\193\001\015\002f\000\193\n\199\007\217\001Y\001\217\001\029\007\234\t\160\005\211\001s\001\012\001\007\001\b\001\t\001(\001)\001\n\007\240\001\002\001\015\007\253\b\017\b\023\b\027\001\030\001\221\001\029\b!\001\235\000\193\002\188\b(\001\007\001\b\001\t\001\143\n\244\001\n\004\030\000\193\001\015\n\158\b\177\000\193\000\193\001\030\002\189\001\029\000\193\002f\b\181\004<\000\193\001\245\000\193\002\n\0014\004@\005\211\001\002\002\023\b.\002\030\000\193\000\193\t\244\001\030\000\193\000\193\bG\bW\b_\005\211\002\214\001>\001\027\000\193\001\180\bb\bj\bw\002=\002\215\001?\002\216\002A\001@\tw\000\193\001A\001B\001\129\b}\002L\001\011\b\219\001\027\b\136\0012\000\193\b\147\002S\000\193\000\193\000\193\000\193\b\165\004A\004\000\000\193\004\001\004\002\002\167\000\193\004\003\001\011\002[\001\027\001Y\0012\t\160\001\012\005\211\002\214\001s\001(\001)\004B\004\142\001\002\b\151\b\172\002\215\002_\002\216\004\030\001\011\004\148\n\165\002l\0012\005\211\001\012\000\193\006m\b\254\001(\001)\004<\ty\001\002\000\193\000\193\000\193\004@\b\188\001\002\002\142\b\198\t\024\000\193\000\193\000\193\001\012\001\007\001\b\001\t\001(\001)\001\n\004\167\001\002\011\020\003\015\000\193\001\007\001\b\001\t\005\211\000\193\001\n\002\145\000\193\001\015\003\007\001>\004\030\002\194\000\193\n\184\001\029\b\205\b\209\005\211\001?\004\030\b\238\001@\n\190\004<\001A\001B\001\129\t\022\004A\004@\001>\001\002\004<\t#\tc\t\027\000\193\000\193\004@\001?\001\002\000n\001@\002\224\bJ\001A\001B\001\129\004B\003\019\tB\001>\tE\001Y\004\187\t \005\211\003\"\t>\001s\001?\000\193\t&\001@\000\193\bM\001A\001B\001\129\t.\004\006\003Y\004\177\002f\001Y\005\211\003U\003[\003c\004A\001s\007\225\005\211\007\218\001\027\001\007\001\b\001\t\004A\tb\001\n\th\001\011\001\015\t|\001Y\011$\000\193\000\193\004B\001\029\001s\000\193\001\011\tf\t\147\004\189\0012\004B\000\193\007q\be\004\030\005\211\t\152\n\234\000\193\000\193\005\211\001\012\005\211\003h\t\189\001(\001)\004<\005\211\001\002\005\211\007<\001\012\004@\000\193\001\002\001(\001)\004\192\000\193\001\002\004\193\000\193\004\207\0078\tj\000\193\005\211\t\191\004\178\t\203\t\205\003v\000\193\001\007\001\b\001\t\003}\004\208\001\n\002\216\004\180\001\015\003\128\tn\001\007\001\b\001\t\005\211\001\029\001\n\tz\001\027\001\015\000\167\000\193\003\131\t\249\000\193\003\137\001\029\n\003\n\018\004A\n\030\n \n\134\005\211\004\210\000\193\n\138\001\011\005\211\005\211\001?\0012\001>\001@\000\193\bJ\001A\001B\t\129\004B\n\144\001?\000\193\t\144\001@\t\158\bJ\001A\001B\bT\003\174\t\166\003\168\t\176\001\012\003\171\b\144\005\211\001(\001)\005\211\005\211\001\002\n\150\005\211\011[\000\193\b\249\000\193\000\193\t\211\n\162\n\198\n\202\003\244\001\027\001Y\004\000\005\211\004\001\004\002\002\167\001s\004\003\005\211\005\211\001\027\n\210\005\211\005\211\005\211\nm\005\211\005\211\001\011\000\193\n\233\004\142\0012\000\193\000\193\n\241\000\193\000\193\000\193\001\011\004\148\003\251\000\193\0012\n|\005\211\004\r\n\021\004\019\n\136\n\140\004\027\001>\004(\004*\001\012\000\193\004?\004O\001(\001)\001?\004z\001\002\001@\004\128\001\012\001A\001B\bf\001(\001)\004\138\004\167\001\002\001\007\001\b\001\t\n\154\000\193\001\n\n\160\n\167\001\015\004\144\n\182\004\152\000\193\000\193\000\193\001\029\004\172\004\182\001\007\001\b\001\t\001Y\005\214\001\n\n\187\004\196\001\015\001s\000\193\004\202\n\208\n\216\004\212\001\029\n\230\n\248\011\130\000\193\011\229\011\240\004\223\004\229\000\193\004\235\001>\bJ\004\241\004\247\004\253\005\003\005\t\005\015\005\021\001?\005\027\001>\001@\011\245\004\187\001A\001B\bT\005!\bJ\001?\005'\t\007\001@\005-\0053\001A\001B\bT\0059\004\006\005?\004\177\002f\005E\005K\005Q\005W\005_\005e\t\017\001\027\005k\005s\001Y\005z\005\151\005\166\005\202\005\245\001s\005\254\006\007\006\017\006\026\001Y\006#\006.\0067\001\027\001\011\001s\006@\006G\0012\006]\004\189\006q\006v\001\007\001\b\001\t\006\130\006\138\001\n\006\146\006\153\001\015\001\011\006\159\006\162\006\164\0012\006\171\001\029\006\180\006\190\001\012\006\204\006\215\006\224\001(\001)\006\236\006\253\001\002\004\192\007\002\007\t\004\193\007\021\004\207\007\027\001\030\007 \001\012\007+\004\178\0074\001(\001)\007:\007?\001\002\011&\007J\004\208\007V\002\216\004\180\004\000\007w\004\001\004\002\002\167\007z\004\003\007{\007\145\007\213\007\164\007\190\007\199\007\221\007\228\007\233\007\239\007\252\b\005\b\007\004\142\b\016\b\026\b\022\b'\b \004\210\b\"\b%\004\148\b3\001>\b2\bF\001\027\bN\b\r\bR\bQ\bV\001?\ba\b\197\001@\bi\bl\001A\001B\bT\001>\bs\b{\b\130\001\011\b\141\b\196\b\189\0012\001?\b\190\b\195\001@\004\167\b\199\001A\001B\bT\b\200\b\206\b\211\b\215\b\233\b\240\t!\t9\001Y\tC\t\131\t}\t~\001\012\001s\t\130\t\146\001(\001)\t\161\t\156\001\002\t\157\t\159\t\184\004\000\001Y\004\001\004\002\002\167\t\190\004\003\001s\t\204\t\209\t\210\t\214\t\248\n\002\n\011\n\017\n4\n/\n3\n7\004\142\n;\nH\nl\np\n{\n\127\n\137\n\133\004\148\004\187\n\149\n\143\n\145\n\156\n\169\b\012\004\000\n\163\004\001\004\002\002\167\n\168\004\003\n\171\n\174\004\006\n\173\004\177\002f\n\181\n\180\001>\n\197\n\201\n\203\n\204\004\142\n\218\n\211\n\212\001?\004\167\n\217\001@\n\232\004\148\001A\001B\001\129\n\236\n\238\n\250\b\t\n\247\n\249\011\012\011\007\011\011\011\015\011\019\011\028\004\189\011\023\011\027\011\031\011#\0111\011,\0110\0114\004\000\0118\004\001\004\002\002\167\001Y\004\003\011A\004\167\011<\011@\001s\011D\011H\011S\011N\011R\011V\011Z\011e\004\142\004\192\011`\011d\004\193\011h\004\207\011l\011z\004\148\011\127\004\187\004\178\011\129\011\207\011\215\007\237\000\000\000\000\000\000\000\000\004\208\000\000\002\216\004\180\000\000\000\000\004\006\000\000\004\177\002f\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001\015\000\000\004\167\000\000\000\000\000\000\000\000\001\029\004\187\000\000\000\000\004\210\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\000\000\000\000\000\000\004\189\004\006\000\000\004\177\002f\000\000\000\000\000\000\000\000\004\142\000\000\000\000\000\000\000\000\003Q\000\000\000\000\000\000\004\148\000\000\004\000\000\000\004\001\004\002\002\167\007\224\004\003\000\000\000\000\000\000\004\192\000\000\000\000\004\193\000\000\004\207\000\000\004\189\000\000\004\187\004\142\004\178\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\148\004\208\004\167\002\216\004\180\001\027\004\006\007\014\004\177\002f\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\192\000\000\000\000\004\193\000\000\004\207\001\011\000\000\000\000\000\000\0012\004\178\000\000\004\210\000\000\004\167\000\000\000\000\000\000\000\000\004\208\000\000\002\216\004\180\004\189\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\000\000\000\000\004\187\000\000\000\000\000\000\000\000\004\000\004\210\004\001\004\002\002\167\004\192\004\003\000\000\004\193\000\000\004\207\004\006\000\000\004\177\002f\000\000\004\178\000\000\000\000\000\000\004\142\000\000\000\000\000\000\000\000\004\208\004\187\002\216\004\180\004\148\000\000\000\000\001\007\001\b\001\t\000\000\006\250\001\n\000\000\000\000\000\000\000\000\004\006\000\000\004\177\002f\000\000\004\189\001>\000\000\000\000\000\000\000\000\000\000\000\000\004\210\000\000\001?\000\000\000\000\001@\000\000\004\167\001A\001B\003W\000\000\000\000\007\177\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\192\004\189\000\000\004\193\004\000\004\207\004\001\004\002\002\167\000\000\004\003\004\178\000\000\000\000\000\000\001Y\000\000\000\000\000\000\000\000\004\208\001s\002\216\004\180\004\142\000\000\000\000\000\000\000\000\000\000\000\000\004\192\000\000\004\148\004\193\000\000\004\207\000\000\000\000\000\000\006\242\000\000\004\178\000\000\000\000\004\187\000\000\000\000\000\000\000\000\004\210\004\208\000\000\002\216\004\180\000\000\000\000\000\000\000\000\001\011\000\000\004\006\000\000\004\177\002f\000\000\004\167\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001\015\000\000\000\000\000\000\000\000\000\000\004\210\001\029\000\000\000\000\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\000\000\000\000\004\189\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\003\146\000\000\001\015\000\000\000\000\000\000\000\000\000\000\000\000\001\029\000\000\000\000\000\000\000\000\004\187\004\192\000\000\000\000\004\193\000\000\004\207\000\000\000\000\000\000\000\000\000\000\004\178\000\000\000\000\000\000\004\006\000\000\004\177\002f\000\000\004\208\000\000\002\216\004\180\003\159\001\027\000\000\002\165\000\000\000\000\002\166\002\167\001?\002\168\000\000\001@\000\000\000\000\001A\001B\000\000\000\000\007\205\000\000\001\011\000\000\000\000\000\000\0012\000\000\004\210\004\189\000\000\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\000\000\001\027\000\000\000\000\007\208\000\000\000\000\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\000\000\004\192\000\000\001\011\004\193\000\000\004\207\0012\002\197\000\000\000\000\000\000\004\178\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\208\000\000\002\216\004\180\002\198\003\192\000\000\000\000\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001\015\000\000\000\000\000\000\004\210\000\000\000\000\001\029\001>\000n\000\000\000\000\000\000\000\000\000\000\000\000\003\198\001?\000\000\000\000\001@\000\000\002\201\001A\001B\003\150\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001\015\003\194\002\189\000\000\000\000\002f\000\000\001\029\000\000\000\000\000\000\001>\000\000\000\000\000\000\000\000\001Y\000\000\000\000\000\000\001?\000\000\001s\001@\000\000\000\000\001A\001B\003\163\000\000\000\000\000\000\000\000\000\000\003\209\000\000\000\000\003\201\000\000\000\000\002\165\001\027\002\203\002\166\002\167\000\000\002\168\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001Y\000\000\000\000\000\000\000\000\001\011\001s\000\000\000\000\0012\000\000\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\000\000\001\027\000\000\002\214\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\012\002\221\000\000\002\216\001(\001)\000\000\000\000\001\002\001\011\000\000\000\000\000\000\0012\002\197\000\000\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\002\165\000\000\001\015\002\166\002\167\000\000\002\168\002\198\003\213\001\029\000\000\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\000\000\000\000\000\000\000\000\000\000\000\000\002\169\003\233\000\000\002\181\002\182\002\187\000\000\000\000\000\000\000\000\000\000\000n\003\215\001>\000\000\000\000\000\000\000\000\003\219\000\000\000\000\000\000\001?\000\000\002\201\001@\000\000\000\000\001A\001B\003\150\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\002\189\001\015\000\000\002f\000\000\000\000\000\000\000\000\001\029\001>\000\000\000\000\001\027\000\000\000\000\000\000\000\000\001Y\001?\000\000\000\000\001@\000\000\001s\001A\001B\003\204\000\000\000\000\000\000\000\000\001\011\003\230\000\000\000\000\0012\000\000\000\000\003\223\000\000\002\203\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\000\000\000\000\000\000\000\000\001Y\000\000\002\188\000\000\000\000\001\012\001s\000\000\004\142\001(\001)\000\000\000\000\001\002\000\000\000\000\000\000\004\148\002\189\000\000\000\000\002f\000\000\000\000\002\214\001\027\004\000\000\000\004\001\004\002\002\167\000\000\004\003\002\221\000\000\002\216\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\001\011\000\000\004\142\000\000\0012\000\000\004\167\000\000\000\000\000\000\000\000\004\148\004\142\000\000\000\000\t/\000\000\000\000\006b\000\000\000\000\004\148\000\000\000\000\000\000\001>\000\000\001\012\006Z\000\000\000\000\001(\001)\000\000\001?\001\002\000\000\001@\000\000\000\000\001A\001B\003\150\004\000\004\167\004\001\004\002\002\167\000\000\004\003\000\000\002\214\000\000\000\000\004\167\000\000\000\000\000\000\000\000\000\000\002\215\000\000\002\216\004\142\000\000\000\000\004\187\000\000\000\000\001Y\000\000\000\000\004\148\000\000\000\000\001s\t<\000\000\000\000\006Y\000\000\000\000\004\006\000\000\004\177\002f\000\000\000\000\000\000\000\000\000\000\001>\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\001?\000\000\000\000\001@\004\187\004\167\001A\001B\003\227\000\000\000\000\000\000\004\142\000\000\004\187\000\000\000\000\000\000\004\189\000\000\004\006\004\148\004\177\002f\000\000\000\000\000\000\000\000\004\165\000\000\004\006\000\000\004\177\002f\000\000\001Y\000\000\000\000\000\000\000\000\004\000\001s\004\001\004\002\002\167\000\000\004\003\000\000\005}\000\000\000\000\004\193\006\240\004\207\004\167\000\000\004\189\000\000\000\000\004\178\004\142\000\000\000\000\000\000\000\000\004\187\004\189\000\000\004\208\004\148\002\216\004\180\000\000\000\000\000\000\000\000\004\191\000\000\000\000\000\000\000\000\004\006\000\000\004\177\002f\000\000\004\192\000\000\000\000\004\193\000\000\004\207\000\000\000\000\000\000\000\000\004\192\004\178\004\210\004\193\000\000\004\207\004\167\000\000\000\000\000\000\004\208\004\178\002\216\004\180\000\000\000\000\000\000\000\000\004\187\000\000\004\208\004\189\002\216\004\180\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\006\000\000\004\177\002f\000\000\000\000\004\210\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\210\004\192\000\000\000\000\004\193\000\000\004\207\000\000\000\000\000\000\000\000\000\000\004\178\000\000\000\000\000\000\004\187\000\000\000\000\000\000\004\189\004\208\000\000\002\216\004\180\000\000\000\000\004\000\000\000\004\001\004\002\002\167\004\006\004\003\004\177\002f\000\000\000\000\000\000\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\004\142\000\000\000\000\004\192\004\210\000\000\004\193\000\000\004\207\004\148\000\000\000\000\000\000\004\142\004\178\000\000\004\220\000\000\000\000\000\000\000\000\004\189\004\148\004\208\000\000\002\216\004\180\000\000\000\000\004\219\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\004\167\004\001\004\002\002\167\000\000\004\003\000\000\000\000\000\000\004\192\000\000\004\210\004\193\004\167\004\207\000\000\000\000\000\000\000\000\004\142\004\178\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\148\004\208\000\000\002\216\004\180\000\000\000\000\005v\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\210\004\187\004\167\000\000\000\000\000\000\000\000\002\165\000\000\000\000\005\129\002\167\000\000\002\168\004\187\000\000\000\000\004\006\000\000\004\177\002f\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\006\000\000\004\177\002f\005\158\002\196\000\000\002\181\002\182\002\187\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\000\000\000\000\000\000\000\000\000\000\004\189\000\000\000\000\000\000\000\000\000\000\000\000\004\142\000\000\004\187\000\000\000\000\000\000\004\189\003\030\000\000\004\148\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\006\000\000\004\177\002f\000\000\004\192\005\169\003#\004\193\000\000\004\207\000\000\000\000\000\000\000\000\000\000\004\178\000\000\004\192\000\000\000\000\004\193\000\000\004\207\004\167\004\208\000\000\002\216\004\180\004\178\000\000\000\000\000\000\000\000\000\000\000\000\004\189\000\000\004\208\000\000\002\216\004\180\000\000\000\000\000\000\005\188\000\000\000\000\001\007\001\b\001\t\002\201\000\000\001\n\000\000\004\210\001\015\000\000\004\000\000\000\004\001\004\002\002\167\001\029\004\003\000\000\004\192\002\189\004\210\004\193\002f\004\207\000\000\000\000\000\000\000\000\000\000\004\178\004\142\004\000\000\000\004\001\004\002\002\167\004\187\004\003\004\208\004\148\002\216\004\180\000\000\000\000\000\000\005\140\005\136\000\000\000\000\000\000\000\000\004\142\004\006\000\000\004\177\002f\005\209\005\210\003$\000\000\004\148\000\000\000\000\000\000\000\000\n\219\000\000\005\139\004\210\000\000\000\000\000\000\004\167\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\004\001\004\002\002\167\001\027\004\003\000\000\004\189\000\000\000\000\000\000\000\000\004\167\000\000\000\000\002\214\000\000\000\000\n\220\004\142\n\221\000\000\000\000\001\011\002\221\000\000\002\216\0012\004\148\000\000\000\000\000\000\000\000\000\000\000\000\005\144\000\000\005}\000\000\000\000\004\193\005~\004\207\000\000\000\000\000\000\000\000\000\000\004\178\000\000\001\012\004\187\000\000\000\000\001(\001)\n\222\004\208\001\002\002\216\004\180\004\167\000\000\000\000\000\000\000\000\000\000\004\006\000\000\004\177\002f\000\000\004\187\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\004\210\004\006\000\000\004\177\002f\000\000\000\000\000\000\n\223\000\000\000\000\000\000\000\000\004\142\000\000\000\000\004\189\000\000\000\000\000\000\000\000\000\000\004\148\000\000\000\000\n\224\n\225\001>\n\226\005\147\000\000\000\000\000\000\000\000\004\187\000\000\001?\004\189\000\000\001@\000\000\000\000\001A\001B\002\014\000\000\004\192\000\000\000\000\004\193\004\006\004\207\004\177\002f\000\000\004\167\n\254\004\178\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\208\004\192\002\216\004\180\004\193\001Y\004\207\000\000\000\000\000\000\000\000\001s\004\178\000\000\000\000\000\000\000\000\000\000\n\228\000\000\004\189\004\208\n\229\002\216\004\180\n\231\000\000\000\000\n\237\n\239\004\210\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\n\251\004\001\004\002\002\167\000\000\004\003\004\187\004\192\004\210\000\000\004\193\000\000\004\207\000\000\000\000\000\000\000\000\000\000\004\178\004\142\000\000\n\252\004\006\000\000\004\177\002f\000\000\004\208\004\148\002\216\004\180\000\000\000\000\000\000\000\000\005\150\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\142\004\210\004\189\000\000\004\000\004\167\004\001\004\002\002\167\004\148\004\003\000\000\000\000\000\000\000\000\000\000\005\153\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\142\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\192\004\148\000\000\004\193\000\000\004\207\000\000\000\000\005\157\000\000\004\167\004\178\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\208\000\000\002\216\004\180\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\187\004\167\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\004\006\004\210\004\177\002f\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\142\004\000\000\000\004\001\004\002\002\167\000\000\004\003\004\187\004\148\000\000\004\000\000\000\004\001\004\002\002\167\005\162\004\003\000\000\000\000\000\000\004\142\000\000\004\189\004\006\000\000\004\177\002f\000\000\000\000\004\148\000\000\004\187\000\000\000\000\000\000\000\000\005\165\000\000\000\000\006K\000\000\004\167\000\000\000\000\000\000\000\000\000\000\004\006\000\000\004\177\002f\000\000\004\192\000\000\000\000\004\193\000\000\004\207\000\000\004\189\000\000\000\000\004\167\004\178\000\000\006L\000\000\000\000\000\000\000\000\000\000\000\000\004\208\000\000\002\216\004\180\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\189\000\000\000\000\000\000\000\000\000\000\004\192\000\000\000\000\004\193\000\000\004\207\000\000\000\000\000\000\000\000\000\000\004\178\004\187\004\210\000\000\000\000\000\000\000\000\000\000\000\000\004\208\000\000\002\216\004\180\004\192\000\000\000\000\004\193\004\006\004\207\004\177\002f\000\000\004\187\004\000\004\178\004\001\004\002\002\167\000\000\004\003\000\000\000\000\004\005\004\208\000\000\002\216\004\180\000\000\004\006\004\210\004\177\002f\000\000\004\142\000\000\000\000\000\000\000\000\004\006\000\000\004\177\002f\004\148\004\189\000\000\000\000\000\000\000\000\000\000\005\168\000\000\000\000\000\000\004\210\000\000\000\000\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\004\189\000\000\001\162\000\000\000\000\000\000\000\000\000\000\000\000\004\192\000\000\004\167\004\193\000\000\004\207\000\000\006N\000\000\000\000\004\000\004\178\004\001\004\002\002\167\000\000\004\003\000\000\000\000\000\000\004\208\004\192\002\216\004\180\004\193\000\000\004\207\000\000\000\000\000\000\004\142\000\000\004\178\000\000\000\000\000\000\000\000\000\000\000\000\004\148\000\000\004\208\004\178\002\216\004\180\000\000\005\171\000\000\000\000\000\000\004\210\004\179\000\000\002\216\004\180\000\000\000\000\000\000\000\000\000\000\002\165\000\000\004\187\002\166\002\167\000\000\002\168\000\000\000\000\000\000\000\000\004\210\004\167\000\000\000\000\005\199\000\000\000\000\004\006\000\000\004\177\002f\000\000\000\000\005\205\000\000\000\000\002\169\003\233\001\011\002\181\002\182\002\187\001\178\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001\015\000\000\004\000\000\000\004\001\004\002\002\167\001\029\004\003\000\000\004\189\000\000\001\012\000\000\003\234\000\000\001(\001)\000\000\000\000\001\002\000\000\004\142\000\000\000\000\000\000\000\000\000\000\004\187\000\000\000\000\004\148\000\000\000\000\000\000\000\000\000\000\005\191\005\195\000\000\004\192\000\000\000\000\004\193\004\006\004\207\004\177\002f\000\000\000\000\004\000\004\178\004\001\004\002\002\167\000\000\004\003\000\000\000\000\000\000\004\208\000\000\002\216\004\180\004\167\000\000\000\000\000\000\000\000\000\000\004\142\000\000\000\000\000\000\000\000\000\000\000\000\001\027\002\188\004\148\004\189\000\000\000\000\000\000\000\000\001?\005\198\000\000\001@\000\000\004\210\001A\001B\000\000\002\189\000\000\001\011\002f\000\000\000\000\0012\000\000\000\000\000\000\000\000\004\000\000\000\004\001\004\002\002\167\004\192\004\003\004\167\004\193\000\000\004\207\000\000\000\000\000\000\000\000\001Y\004\178\000\000\001\012\004\187\004\142\000\000\001(\001)\000\000\004\208\001\002\002\216\004\180\004\148\003\235\000\000\000\000\000\000\000\000\004\006\005\201\004\177\002f\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\210\005x\005\128\000\000\000\000\004\142\000\000\004\167\000\000\000\000\000\000\002\214\004\187\000\000\004\148\000\000\004\189\000\000\000\000\000\000\002\215\005\204\002\216\000\000\000\000\000\000\000\000\001>\004\006\000\000\004\177\002f\000\000\000\000\000\000\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\002\014\005\206\004\192\004\167\000\000\004\193\000\000\004\207\000\000\000\000\000\000\000\000\t\132\004\178\000\000\000\000\000\000\000\000\000\000\000\000\004\189\000\000\004\208\004\187\002\216\004\180\000\000\001Y\000\000\000\000\000\000\011\235\000\000\001s\011\236\000\000\000\000\000\000\t\135\004\006\000\000\004\177\002f\000\000\000\000\000\000\000\000\000\000\t\136\000\000\004\192\000\000\004\210\004\193\000\000\004\207\004\000\000\000\004\001\004\002\002\167\004\178\004\003\004\187\000\000\000\000\000\000\000\000\000\000\000\000\004\208\000\000\002\216\004\180\000\000\004\189\004\142\000\000\000\000\004\006\000\000\004\177\002f\000\000\t\137\004\148\000\000\000\000\000\000\000\000\000\000\000\000\005\208\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\210\000\000\000\000\000\000\000\000\004\192\000\000\000\000\004\193\000\000\004\207\000\000\000\000\000\000\000\000\004\189\004\178\004\000\004\167\004\001\004\002\002\167\000\000\004\003\t\138\004\208\000\000\002\216\004\180\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\142\000\000\000\000\000\000\t\139\000\000\000\000\000\000\004\192\004\148\000\000\004\193\000\000\004\207\000\000\000\000\005\217\000\000\004\210\004\178\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\004\208\011\237\002\216\004\180\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\142\004\187\004\167\000\000\000\000\000\000\000\000\000\000\000\000\004\148\t\141\000\000\000\000\000\000\000\000\000\000\005\220\004\006\004\210\004\177\002f\000\000\t\142\000\000\000\000\000\000\t\143\000\000\000\000\t\145\000\000\004\000\t\150\004\001\004\002\002\167\000\000\004\003\000\000\000\000\000\000\000\000\004\167\000\000\000\000\000\000\000\000\t\162\000\000\000\000\000\000\004\142\000\000\004\189\000\000\000\000\000\000\000\000\000\000\000\000\004\148\000\000\004\187\000\000\000\000\000\000\000\000\006\r\t\163\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\006\000\000\004\177\002f\000\000\004\192\000\000\000\000\004\193\000\000\004\207\000\000\000\000\000\000\000\000\004\167\004\178\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\187\004\208\000\000\002\216\004\180\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\189\000\000\000\000\000\000\004\006\000\000\004\177\002f\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\000\000\000\000\004\210\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\142\004\192\000\000\000\000\004\193\000\000\004\207\000\000\000\000\004\148\004\187\004\189\004\178\000\000\000\000\000\000\006\022\000\000\000\000\000\000\000\000\004\208\000\000\002\216\004\180\000\000\004\006\000\000\004\177\002f\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\192\004\167\000\000\004\193\000\000\004\207\000\000\000\000\000\000\000\000\004\210\004\178\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\208\004\189\002\216\004\180\000\000\000\000\000\000\000\000\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\142\004\210\004\192\000\000\000\000\004\193\000\000\004\207\000\000\004\148\000\000\000\000\004\187\004\178\000\000\000\000\006\031\004\000\000\000\004\001\004\002\002\167\004\208\004\003\002\216\004\180\000\000\000\000\004\006\000\000\004\177\002f\000\000\000\000\000\000\000\000\000\000\004\142\000\000\000\000\000\000\004\000\004\167\004\001\004\002\002\167\004\148\004\003\000\000\000\000\000\000\000\000\004\210\006^\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\142\000\000\000\000\004\189\000\000\000\000\000\000\000\000\000\000\004\148\000\000\004\000\000\000\004\001\004\002\002\167\006`\004\003\004\167\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\142\000\000\004\192\000\000\000\000\004\193\000\000\004\207\000\000\004\148\004\187\004\167\000\000\004\178\000\000\000\000\006e\000\000\000\000\000\000\000\000\000\000\004\208\000\000\002\216\004\180\004\006\000\000\004\177\002f\000\000\000\000\000\000\000\000\n\219\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\167\000\000\000\000\002\165\000\000\004\187\002\166\002\167\000\000\002\168\004\210\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\189\004\006\000\000\004\177\002f\000\000\n\220\000\000\n\221\004\187\002\169\002\170\000\000\002\181\002\182\002\187\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\006\000\000\004\177\002f\000\000\004\192\000\000\000\000\004\193\000\000\004\207\000\000\004\189\000\000\000\000\004\187\004\178\000\000\000\000\n\222\004\000\000\000\004\001\004\002\002\167\004\208\004\003\002\216\004\180\000\000\000\000\004\006\000\000\004\177\002f\000\000\004\189\000\000\000\000\000\000\004\142\000\000\004\192\000\000\000\000\004\193\000\000\004\207\000\000\004\148\000\000\000\000\000\000\004\178\000\000\004\210\006h\000\000\n\223\000\000\000\000\000\000\004\208\000\000\002\216\004\180\004\192\004\189\000\000\004\193\000\000\004\207\000\000\000\000\000\000\n\224\n\225\004\178\n\226\000\000\002\188\000\000\004\167\000\000\000\000\000\000\004\208\000\000\002\216\004\180\000\000\000\000\004\210\000\000\000\000\000\000\002\189\004\192\000\000\002f\004\193\004\000\004\207\004\001\004\002\002\167\n\253\004\003\004\178\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\210\004\208\000\000\002\216\004\180\004\142\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\148\000\000\000\000\000\000\n\228\000\000\000\000\006\244\n\229\000\000\000\000\n\231\004\187\000\000\n\237\n\239\000\000\004\210\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\000\000\004\006\n\251\004\177\002f\004\000\004\167\004\001\004\002\002\167\000\000\004\003\004\142\000\000\000\000\000\000\002\214\000\000\000\000\000\000\000\000\004\148\000\000\n\252\000\000\002\215\000\000\002\216\006\247\000\000\000\000\000\000\000\000\000\000\006K\000\000\000\000\004\189\000\000\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\167\000\000\000\000\000\000\000\000\000\000\004\142\000\000\000\000\000\000\000\000\000\000\004\187\004\192\000\000\004\148\004\193\000\000\004\207\000\000\000\000\000\000\007p\000\000\004\178\000\000\000\000\000\000\004\006\000\000\004\177\002f\000\000\004\208\000\000\002\216\004\180\000\000\000\000\000\000\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\004\167\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\187\004\142\000\000\004\210\004\189\000\000\000\000\000\000\000\000\000\000\004\148\000\000\000\000\004\005\000\000\000\000\004\006\007u\004\177\002f\000\000\000\000\000\000\000\000\004\000\000\000\004\001\004\002\002\167\004\006\004\003\004\177\002f\000\000\004\192\000\000\000\000\004\193\000\000\004\207\000\000\000\000\000\000\004\167\004\142\004\178\000\000\000\000\004\187\000\000\000\000\000\000\004\189\004\148\004\208\000\000\002\216\004\180\000\000\000\000\007\137\000\000\000\000\000\000\004\006\000\000\004\177\002f\000\000\000\000\000\000\006M\000\000\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\004\192\001\015\004\210\004\193\004\167\004\207\000\000\000\000\001\029\000\000\000\000\004\178\000\000\000\000\000\000\000\000\000\000\000\000\004\189\000\000\004\208\004\187\002\216\004\180\004\178\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\179\000\000\002\216\004\180\004\006\007\160\004\177\002f\000\000\000\000\004\000\000\000\004\001\004\002\002\167\004\192\004\003\004\210\004\193\000\000\004\207\000\000\000\000\000\000\000\000\007\163\004\178\000\000\000\000\000\000\004\142\004\187\000\000\000\000\000\000\004\208\000\000\002\216\004\180\004\148\004\189\000\000\000\000\000\000\000\000\001\027\007\216\004\006\000\000\004\177\002f\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\011\004\210\000\000\000\000\0012\000\000\004\192\000\000\004\167\004\193\000\000\004\207\000\000\000\000\000\000\000\000\000\000\004\178\000\000\004\189\000\000\000\000\000\000\000\000\000\000\000\000\004\208\001\012\002\216\004\180\000\000\001(\001)\000\000\000\000\001\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\192\000\000\000\000\004\193\000\000\004\207\000\000\004\210\000\000\000\000\000\000\004\178\004\000\000\000\004\001\004\002\002\167\000\000\004\003\004\187\004\208\000\000\002\216\004\180\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\142\000\000\000\000\004\006\000\000\004\177\002f\000\000\000\000\004\148\001>\000\000\000\000\000\000\000\000\000\000\b<\002\165\004\210\001?\005\129\002\167\001@\002\168\000\000\001A\001B\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\189\000\000\000\000\004\167\000\000\005\158\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\000\000\001Y\000\000\000\000\000\000\000\000\000\000\007\168\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\192\000\000\000\000\004\193\000\000\004\207\000\000\000\000\003\030\000\000\000\000\004\178\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\004\208\000\000\002\216\004\180\000\000\005\169\003#\000\000\000\000\000\000\000\000\000\000\000\000\004\187\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\006\004\210\004\177\002f\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001\015\000\000\005\188\000\000\000\000\000\000\000\000\001\029\002\201\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001\015\000\000\000\000\000\000\000\000\004\189\002\189\001\029\000\000\002f\000\000\000\000\000\000\b\155\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001\024\000\000\000\000\000\000\000\000\004\192\001\011\001\026\004\193\000\000\004\207\000\000\000\000\005\209\007\222\003$\004\178\000\000\000\000\000\000\004\000\000\000\004\001\004\002\002\167\004\208\004\003\002\216\004\180\001\027\000\000\000\000\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\004\142\001\002\000\000\000\000\n'\000\000\000\000\001\027\001\011\004\148\000\000\000\000\0012\002\214\000\000\004\210\b\214\000\000\000\000\000\000\000\000\000\000\002\221\000\000\002\216\000\000\001\011\000\000\000\000\000\000\0012\000\000\000\000\000\000\000\000\001\012\000\000\001\027\000\000\001(\001)\000\000\004\167\001\002\000\000\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\001\012\000\000\001\140\001\011\001(\001)\000\000\001\215\001\002\000\000\000\000\000\000\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\000\000\000\000\004\142\000\000\000\000\000\000\000\000\001>\000\000\n#\004\187\004\148\000\000\000\000\000\000\000\000\001?\000\000\b\217\001@\000\000\000\000\001A\001B\b\160\001>\004\006\000\000\004\177\002f\000\000\000\000\000\000\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\b\173\000\000\004\167\b\176\000\000\000\000\000\000\000\000\000\000\001Y\000\000\000\000\000\000\000\000\000\000\001s\000\000\001\011\000\000\000\000\004\189\000\000\001?\000\000\000\000\001@\000\000\001Y\001A\001B\000\000\000\000\000\000\001s\000\000\000\000\000\000\000\000\000\000\004\000\000\000\004\001\004\002\002\167\001\012\004\003\000\000\000\000\001(\001)\004\192\000\000\001\002\004\193\000\000\004\207\000\000\001Y\000\000\004\142\000\000\004\178\004\187\004\000\000\000\004\001\004\002\002\167\004\148\004\003\004\208\000\000\002\216\004\180\000\000\b\232\000\000\000\000\004\006\000\000\004\177\002f\000\000\004\142\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\148\000\000\000\000\000\000\000\000\000\000\000\000\b\235\004\210\004\167\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\004\001\004\002\002\167\004\189\004\003\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\004\167\000\000\000\000\000\000\004\142\000\000\000\000\000\000\004\000\000\000\004\001\004\002\002\167\004\148\004\003\000\000\000\000\000\000\000\000\004\192\b\248\000\000\004\193\000\000\004\207\000\000\000\000\001Y\004\142\000\000\004\178\000\000\000\000\000\000\000\000\000\000\004\187\004\148\000\000\004\208\000\000\002\216\004\180\000\000\b\251\004\000\004\167\004\001\004\002\002\167\000\000\004\003\004\006\000\000\004\177\002f\000\000\000\000\000\000\000\000\004\187\000\000\000\000\000\000\000\000\004\142\000\000\000\000\000\000\004\210\004\167\000\000\000\000\000\000\004\148\000\000\004\006\000\000\004\177\002f\000\000\t\016\000\000\000\000\000\000\000\000\000\000\000\000\004\189\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\004\187\004\167\000\000\000\000\000\000\000\000\004\189\000\000\000\000\000\000\000\000\000\000\004\192\004\142\000\000\004\193\004\006\004\207\004\177\002f\000\000\000\000\004\148\004\178\004\187\000\000\000\000\000\000\000\000\t\019\000\000\000\000\004\208\000\000\002\216\004\180\004\192\000\000\000\000\004\193\004\006\004\207\004\177\002f\000\000\000\000\000\000\004\178\000\000\000\000\000\000\000\000\004\189\000\000\000\000\004\167\004\208\000\000\002\216\004\180\000\000\004\187\004\210\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\000\000\000\000\000\000\000\000\000\000\004\189\004\006\000\000\004\177\002f\000\000\004\192\004\142\000\000\004\193\004\210\004\207\000\000\000\000\000\000\000\000\004\148\004\178\000\000\000\000\000\000\000\000\000\000\t\023\000\000\000\000\004\208\000\000\002\216\004\180\004\192\000\000\000\000\004\193\000\000\004\207\000\000\004\189\000\000\004\187\000\000\004\178\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\167\004\208\000\000\002\216\004\180\000\000\004\006\004\210\004\177\002f\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\192\000\000\000\000\004\193\002\165\004\207\000\000\005\129\002\167\000\000\002\168\004\178\000\000\004\210\000\000\000\000\000\000\000\000\000\000\000\000\004\208\000\000\002\216\004\180\004\189\000\000\000\000\000\000\000\000\000\000\000\000\005\158\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\000\000\000\000\004\187\000\000\000\000\000\000\000\000\001\007\001\b\001\t\004\210\000\000\001\n\000\000\004\192\001\015\000\000\004\193\004\006\004\207\004\177\002f\001\029\000\000\003\030\004\178\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\208\000\000\002\216\004\180\000\000\000\000\000\000\005\169\003#\000\000\000\000\000\000\t*\001\007\001\b\001\t\000\000\000\000\001\n\000\000\004\189\001\015\000\000\000\000\000\000\000\000\000\000\000\000\001\029\000\000\004\210\000\000\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001\015\000\000\000\000\000\000\005\188\000\000\000\000\001\029\004\192\000\000\002\201\004\193\000\000\004\207\002\165\000\000\001\027\005\129\002\167\004\178\002\168\000\000\000\000\000\000\000\000\000\000\002\189\000\000\004\208\002f\002\216\004\180\000\000\000\000\000\000\001\011\000\000\007\160\000\000\0012\000\000\005\158\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\027\n\029\004\210\000\000\000\000\000\000\001\012\005\209\t\"\003$\001(\001)\000\000\000\000\001\002\000\000\000\000\000\000\003\030\001\011\000\000\001\027\000\000\0012\000\000\000\000\000\000\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\005\169\003#\000\000\000\000\000\000\001\011\000\000\000\000\000\000\0012\000\000\001\012\002\214\004\142\000\000\001(\001)\000\000\000\000\001\002\000\000\002\221\004\148\002\216\000\000\000\000\000\000\000\000\000\000\011\134\000\000\000\000\001\012\000\000\000\000\001>\001(\001)\000\000\005\188\001\002\000\000\000\000\000\000\001?\002\201\000\000\001@\000\000\000\000\001A\001B\b\160\000\000\000\000\004\167\000\000\000\000\000\000\000\000\000\000\002\189\000\000\000\000\002f\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\001>\004\001\004\002\002\167\001Y\004\003\000\000\000\000\000\000\001?\001s\000\000\001@\000\000\000\000\001A\001B\b\173\000\000\004\142\ti\001>\000\000\005\209\tD\003$\000\000\000\000\004\148\000\000\001?\000\000\000\000\001@\000\000\011\136\001A\001B\000\000\000\000\004\187\000\000\000\000\000\000\001Y\000\000\000\000\000\000\000\000\000\000\001s\000\000\000\000\000\000\000\000\000\000\004\006\000\000\004\177\002f\000\000\004\167\000\000\002\214\000\000\001Y\000\000\000\000\000\000\000\000\000\000\007\168\002\221\000\000\002\216\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001\015\000\000\000\000\000\000\000\000\000\000\000\000\001\029\004\189\000\000\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001\015\000\000\000\000\000\000\000\000\000\000\000\000\001\029\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\004\187\004\192\000\000\000\000\004\193\000\000\004\207\000\000\000\000\000\000\000\000\000\000\004\178\000\000\000\000\000\000\004\006\000\000\004\177\002f\000\000\004\208\000\000\002\216\004\180\000\000\000\000\000\000\007\177\000\000\000\000\000\000\000\000\000\000\000\000\011\168\000\000\007\203\000\000\000\000\001\027\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001\015\000\000\004\210\004\189\000\000\000\000\000\000\001\029\000\000\000\000\001\011\001\027\000\000\000\000\0012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\011\000\000\000\000\004\192\0012\000\000\004\193\001\012\004\207\000\000\000\000\001(\001)\000\000\004\178\001\002\000\000\001\011\000\000\000\000\000\000\000\000\000\000\004\208\000\000\002\216\004\180\001\012\001\007\001\b\001\t\001(\001)\001\n\000\000\001\002\001\015\000\000\000\000\000\000\000\000\000\000\000\000\001\029\001\012\000\000\000\000\001\027\001(\001)\000\000\000\000\001\002\004\210\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001\015\000\000\000\000\000\000\001\011\000\000\000\000\001\029\0012\001>\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\011\169\000\000\000\000\001>\000\000\001\012\001\007\001\b\001\t\001(\001)\001\n\001?\001\002\001\015\001@\000\000\000\000\001A\001B\011o\001\029\000\000\000\000\000\000\001\027\000\000\001Y\000\000\001?\000\000\000\000\001@\001s\000\000\001A\001B\000\000\000\000\007\209\000\000\000\000\000\000\000\000\001\011\000\000\000\000\001Y\0012\000\000\000\000\001\027\000\000\001s\000\000\000\000\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\007\212\000\000\001\015\000\000\000\000\001>\001\011\001\012\000\000\001\029\0012\001(\001)\000\000\001?\001\002\000\000\001@\000\000\000\000\001A\001B\011m\000\000\000\000\000\000\000\000\001\027\000\000\000\000\000\000\000\000\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\000\000\000\000\000\000\000\000\001\011\000\000\000\000\001Y\0012\000\000\000\000\000\000\000\000\001s\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001\015\000\000\000\000\000\000\000\000\000\000\001>\001\029\001\012\000\000\000\000\000\000\001(\001)\001\027\001?\001\002\000\000\001@\000\000\000\000\001A\001B\002\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001>\001\011\000\000\000\000\000\000\0012\000\000\000\000\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\001\223\001Y\000\000\000\000\000\000\000\000\000\000\001s\000\000\000\000\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\000\000\000\000\000\000\001>\000\000\000\000\000\000\001Y\001\027\001\007\001\b\001\t\001?\001s\001\n\001@\000\000\001\015\001A\001B\001\142\000\000\000\000\000\000\001\029\000\000\000\000\001\011\000\000\000\000\000\000\0012\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001\015\000\000\000\000\000\000\000\000\001Y\000\000\001\029\000\000\000\000\000\000\001s\001\012\001>\000\000\000\000\001(\001)\000\000\000\000\001\002\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\001C\000\000\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001\015\000\000\000\000\001\007\001\b\001\t\000\000\001\029\001\n\000\000\001\027\001\015\000\000\000\000\000\000\001Y\000\000\000\000\001\029\000\000\000\000\001s\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\011\000\000\000\000\000\000\0012\001>\001\027\000\000\000\000\000\000\000\000\001\007\001\b\001\t\001?\000\000\001\n\001@\000\000\001\015\001A\001B\001\139\000\000\000\000\001\011\001\029\001\012\000\000\0012\000\000\001(\001)\000\000\000\000\001\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\027\001Y\000\000\000\000\001\012\000\000\001\246\001s\001(\001)\000\000\001\027\001\002\000\000\000\000\000\000\001\007\001\b\001\t\001\011\000\000\001\n\000\000\0012\001\015\000\000\000\000\000\000\000\000\000\000\001\011\001\029\000\000\000\000\0012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001>\000\000\000\000\001\012\000\000\001\027\000\000\001(\001)\001?\000\000\001\002\001@\000\000\001\012\001A\001B\001\145\001(\001)\000\000\000\000\001\002\000\000\001\011\001>\000\000\000\000\0012\000\000\000\000\000\000\000\000\000\000\001?\t\132\000\000\001@\000\000\000\000\001A\001B\001\182\000\000\001Y\000\000\000\000\000\000\000\000\000\000\001s\001\012\000\000\000\000\011\235\001(\001)\011\236\001\027\001\002\000\000\t\135\000\000\000\000\000\000\000\000\000\000\001>\000\000\001Y\000\000\t\136\000\000\000\000\000\000\001s\001?\001\011\001>\001@\000\000\0012\001A\001B\002\016\000\000\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\002&\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\012\000\000\000\000\t\137\001(\001)\000\000\001Y\001\002\000\000\000\000\001>\000\000\001s\000\000\000\000\000\000\000\000\001Y\000\000\001?\000\000\000\000\001@\001s\000\000\001A\001B\004\000\000\000\004\001\004\002\002\167\000\000\004\003\002\165\000\000\000\000\003L\002\167\000\000\002\168\000\000\t\138\000\000\000\000\000\000\000\000\004\142\000\000\000\000\000\000\000\000\000\000\000\000\001Y\000\000\004\148\000\000\000\000\t\139\001\250\002\169\004u\001>\002\181\002\182\002\187\007\245\000\000\000\000\000\000\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\002-\000\000\000\000\000\000\011\241\001\007\001\b\001\t\000\000\004\167\001\n\000\000\000\000\001\015\003\030\000\000\000\000\000\000\000\000\000\000\001\029\000\000\000\000\000\000\000\000\t\141\000\000\001Y\000\000\000\000\000\000\006c\003#\001s\000\000\000\000\000\000\t\142\000\000\000\000\000\000\t\143\000\000\000\000\t\145\000\000\000\000\t\150\000\000\000\000\000\000\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001\015\t\162\000\000\000\000\000\000\000\000\000\000\001\029\004\187\000\000\000\000\000\000\000\000\000\000\000\000\002\201\000\000\000\000\000\000\000\000\000\000\000\000\t\163\000\000\004\006\000\000\004\177\002f\000\000\001\027\000\000\002\189\000\000\000\000\002f\000\000\000\000\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001\015\001\011\000\000\000\000\000\000\0012\000\000\001\029\000\000\000\000\000\000\000\000\000\000\004\189\006f\006k\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003$\000\000\000\000\000\000\000\000\001\012\000\000\001\027\000\000\001(\001)\000\000\000\000\001\002\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001\015\007\247\000\000\004\207\001\011\000\000\000\000\001\029\0012\004\178\000\000\000\000\000\000\000\000\000\000\000\000\002\214\000\000\004\208\000\000\002\216\004\180\000\000\000\000\000\000\002\221\000\000\002\216\000\000\000\000\000\000\001\012\001\027\000\000\000\000\001(\001)\000\000\002\165\001\002\000\000\002\166\002\167\000\000\002\168\000\000\000\000\001>\004\210\000\000\000\000\001\011\000\000\000\000\000\000\0012\001?\000\000\000\000\001@\000\000\000\000\001A\001B\002y\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\000\000\000\000\000\000\001\027\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\000\000\000\000\000\000\006\249\001Y\000\000\000\000\000\000\001>\001\011\001s\000\000\002\197\0012\000\000\000\000\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\002\128\000\000\000\000\000\000\002\198\003\134\000\000\000\000\000\000\000\000\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\001\007\001\b\001\t\000\000\000\000\001\n\000\000\001Y\001\015\000\000\001>\000\000\000\000\001s\000\000\001\029\000\000\000\000\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\002\141\002\201\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001\015\000\000\000\000\000\000\000\000\000\000\002\189\001\029\000\000\002f\001\007\001\b\001\t\000\000\000\000\001\n\001Y\001>\001\015\004\147\000\000\000\000\001s\000\000\000\000\001\029\001?\000\000\000\000\001@\000\000\000\000\001A\001B\002\176\000\000\000\000\000\000\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\002\203\001\027\001\015\000\000\000\000\000\000\000\000\000\000\000\000\001\029\000\000\000\000\000\000\000\000\000\000\001Y\000\000\000\000\000\000\000\000\001\011\001s\000\000\000\000\0012\000\000\000\000\000\000\000\000\000\000\000\000\001\027\000\000\000\000\000\000\000\000\000\000\002\214\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\221\001\012\002\216\001\027\001\011\001(\001)\000\000\0012\001\002\000\000\000\000\000\000\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\001\011\001\015\000\000\000\000\0012\000\000\000\000\000\000\001\029\001\012\000\000\001\027\000\000\001(\001)\000\000\000\000\001\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\012\000\000\000\000\001\011\001(\001)\000\000\0012\001\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001>\002\165\000\000\000\000\002\166\002\167\000\000\002\168\000\000\001?\000\000\000\000\001@\000\000\001\012\001A\001B\002\209\001(\001)\000\000\000\000\001\002\000\000\000\000\000\000\000\000\000\000\002\169\003\233\001>\002\181\002\182\002\187\000\000\001\027\000\000\000\000\000\000\001?\000\000\000\000\001@\000\000\001Y\001A\001B\002\237\001>\000\000\001s\001\007\001\b\001\t\001\011\000\000\001\n\001?\0012\001\015\001@\000\000\000\000\001A\001B\002\245\001\029\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001Y\000\000\000\000\000\000\001>\000\000\001s\001\012\000\000\000\000\000\000\001(\001)\001?\000\000\001\002\001@\000\000\001Y\001A\001B\003*\000\000\000\000\001s\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001\015\000\000\004\000\000\000\004\001\004\002\002\167\001\029\004\003\000\000\000\000\000\000\000\000\000\000\000\000\001Y\002\188\000\000\000\000\000\000\000\000\001s\004\142\000\000\000\000\000\000\000\000\000\000\000\000\001\027\000\000\004\148\002\189\000\000\000\000\002f\000\000\000\000\001>\000\000\000\000\000\000\007P\000\000\000\000\000\000\000\000\001?\001\011\000\000\001@\000\000\0012\001A\001B\0037\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\167\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t/\000\000\001\012\000\000\001\027\000\000\001(\001)\000\000\001Y\001\002\000\000\000\000\000\000\000\000\001s\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\011\000\000\000\000\000\000\0012\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\002\214\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\215\000\000\002\216\004\142\000\000\001\012\004\187\000\000\000\000\001(\001)\000\000\004\148\001\002\000\000\000\000\t;\000\000\000\000\000\000\000\000\001>\004\006\007D\004\177\002f\000\000\000\000\000\000\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\003E\000\000\000\000\000\000\000\000\000\000\000\000\004\167\000\000\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001J\004\189\000\000\000\000\000\000\000\000\000\000\000\000\001Y\000\000\000\000\000\000\001>\000\000\001s\000\000\000\000\000\000\000\000\000\000\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\003S\000\000\000\000\000\000\000\000\007R\000\000\004\207\000\000\000\000\000\000\000\000\002\165\004\178\000\000\002\166\002\167\000\000\002\168\004\187\000\000\000\000\004\208\000\000\002\216\004\180\000\000\001Y\000\000\000\000\000\000\000\000\000\000\001s\000\000\004\006\000\000\004\177\002f\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\002\165\000\000\000\000\002\166\002\167\004\210\002\168\002\165\000\000\000\000\002\166\002\167\000\000\002\168\000\000\000\000\000\000\000\000\000\000\000\000\001\011\000\000\000\000\000\000\004\189\000\000\002\197\002\169\002\196\000\000\002\181\002\182\002\187\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\002\198\003\157\000\000\000\000\001\012\001\007\001\b\001\t\001(\001)\001\n\000\000\001\002\001\015\007F\000\000\004\207\000\000\002\197\000\000\001\029\000\000\004\178\000\000\000\000\002\197\000\000\000\000\000\000\000\000\000\000\004\208\000\000\002\216\004\180\002\198\003\144\000\000\003\166\000\000\000\000\000\000\002\198\003\144\002\201\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\189\004\210\000\000\002f\000\000\000\000\000n\001\007\001\b\001\t\000\000\000\000\001\n\000n\000\000\001\015\000\000\001?\000\000\002\201\001@\000\000\001\029\001A\001B\000\000\002\201\000\000\000\000\000\000\001\027\001\007\001\b\001\t\003\170\002\189\001\n\000\000\002f\001\015\002\203\000\000\002\189\000\000\000\000\002f\001\029\000\000\000\000\001\011\000\000\000\000\001Y\0012\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001\015\000\000\002\165\003\155\000\000\002\166\002\167\001\029\002\168\000\000\003\153\002\203\001\012\002\214\000\000\000\000\001(\001)\002\203\000\000\001\002\000\000\002\221\000\000\002\216\000\000\000\000\000\000\001\027\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\011\002\214\000\000\000\000\0012\001\027\000\000\000\000\002\214\000\000\002\221\000\000\002\216\000\000\000\000\000\000\002\197\002\221\000\000\002\216\000\000\000\000\000\000\000\000\001\011\000\000\000\000\001\012\0012\001>\001\027\001(\001)\002\198\003\199\001\002\000\000\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\003\148\000\000\000\000\001\011\000\000\001\012\000\000\0012\000\000\001(\001)\000\000\000\000\001\002\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001\015\000\000\000\000\000\000\000\000\001Y\000\000\001\029\001\012\002\201\000\000\001s\001(\001)\000\000\000\000\001\002\000\000\000\000\000\000\000\000\000\000\000\000\001>\000\000\002\189\000\000\000\000\002f\001\007\001\b\001\t\001?\000\000\001\n\001@\000\000\001\015\001A\001B\003\161\000\000\000\000\000\000\001\029\000\000\000\000\001>\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001?\003\205\003\207\001@\000\000\000\000\001A\001B\003\196\002\203\000\000\001Y\000\000\000\000\000\000\000\000\001>\001s\000\000\000\000\000\000\001\027\000\000\000\000\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\003\203\000\000\001Y\000\000\000\000\000\000\000\000\001\011\001s\000\000\000\000\0012\000\000\002\214\000\000\000\000\000\000\004\000\000\000\004\001\004\002\002\167\002\221\004\003\002\216\001\027\000\000\001Y\000\000\000\000\000\000\000\000\000\000\001s\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\000\000\001\011\000\000\006K\000\000\0012\000\000\002\165\000\000\000\000\002\166\002\167\000\000\002\168\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\012\t5\000\000\000\000\001(\001)\002\169\002\196\001\002\002\181\002\182\002\187\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001\015\000\000\000\000\000\000\000\000\001>\000\000\001\029\000\000\003\246\000\000\000\000\000\000\000\000\001?\000\000\000\000\001@\002\197\000\000\001A\001B\003\217\000\000\000\000\000\000\000\000\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\002\198\003\134\001\015\000\000\000\000\000\000\000\000\001>\000\000\001\029\000\000\004\005\000\000\000\000\001Y\000\000\001?\000\000\000\000\001@\001s\000\000\001A\001B\003\225\000\000\000\000\004\006\000\000\004\177\002f\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\027\000\000\002\201\000\000\000\000\001\007\001\b\001\t\000\000\001Y\001\n\000\000\000\000\001\015\000\000\001s\000\000\000\000\002\189\001\011\001\029\002f\000\000\0012\000\000\000\000\000\000\006N\000\000\000\000\000\000\004\147\000\000\000\000\000\000\000\000\000\000\001\027\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\000\000\001\011\000\000\002\203\004\142\0012\000\000\004\178\000\000\000\000\000\000\002\165\000\000\004\148\002\166\002\167\004\179\002\168\002\216\004\180\000\000\000\000\000\000\000\000\006Q\000\000\000\000\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\001\027\001\002\000\000\002\169\002\180\002\214\002\181\002\182\002\187\000\000\000\000\004\167\000\000\000\000\002\221\000\000\002\216\000\000\000\000\001\011\001>\000\000\000\000\0012\000\000\000\000\000\000\000\000\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\004,\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\000\000\000\000\001>\000\000\000\000\000\000\000\000\000\000\000\000\001Y\000\000\001?\000\000\t\251\001@\001s\004\187\001A\001B\004.\000\000\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\tO\004\006\000\000\004\177\002f\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\188\000\000\004\000\001Y\004\001\004\002\002\167\002\165\004\003\001s\002\166\002\167\001>\002\168\000\000\000\000\002\189\000\000\000\000\002f\000\000\001?\004\142\000\000\001@\004\189\000\000\001A\001B\004w\000\000\004\148\000\000\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\006P\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001Y\000\000\005\227\004\140\004\207\000\000\001s\004\005\004\167\tQ\004\178\000\000\002\197\000\000\000\000\000\000\000\000\000\000\000\000\004\208\000\000\002\216\004\180\004\006\000\000\004\177\002f\000\000\001\011\002\198\003\134\000\000\000\000\000\000\000\000\000\000\000\000\002\214\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\215\002\165\002\216\004\210\002\166\002\167\000\000\002\168\000\000\tT\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\001\005\000\000\000\000\000\000\004\187\000\000\000\000\000\000\000\000\002\201\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\000\000\004\006\000\000\004\177\002f\000\000\002\189\000\000\000\000\002f\000\000\t\252\000\000\000\000\000\000\000\000\004\146\004\178\000\000\004\147\000\000\000\000\000\000\000\000\000\000\002\197\t\253\000\000\002\216\004\180\002\165\000\000\000\000\002\166\002\167\000\000\002\168\004\189\000\000\000\000\000\000\000\000\002\198\003\134\000\000\001?\002\203\000\000\tW\000\000\000\000\001A\001B\000\000\000\000\000\000\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\b\162\000\000\t\\\000\000\tY\000\000\005\227\000\000\004\207\000\000\000\000\000\000\000\000\000\000\004\178\000\000\001Y\000\000\004\184\002\214\000\000\000\000\002\201\004\208\000\000\002\216\004\180\002\197\002\221\000\000\002\216\002\165\000\000\000\000\002\166\002\167\000\000\002\168\002\189\000\000\000\000\002f\000\000\000\000\002\198\003\134\t\132\000\000\000\000\000\000\000\000\004\147\000\000\004\210\000\000\000\000\000\000\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\002\165\t\133\000\000\002\166\002\167\t\135\002\168\000\000\000\000\000\000\000\000\002\203\000\000\000\000\000\000\t\136\004\198\000\000\000\000\000\000\000\000\002\201\000\000\000\000\000\000\002\197\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\000\000\002\189\000\000\000\000\002f\000\000\002\198\003\134\000\000\000\000\000\000\000\000\002\214\000\000\004\147\t\137\004\204\000\000\000\000\000\000\000\000\002\221\000\000\002\216\000\000\002\197\000\000\000\000\000\000\002\165\000\000\000\000\002\166\002\167\000\000\002\168\000\000\000\000\000\000\000\000\000\000\002\203\002\198\003\134\000\000\000\000\000\000\000\000\000\000\000\000\002\201\000\000\000\000\000\000\000\000\t\138\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\000\000\002\189\002\165\000\000\002f\002\166\002\167\t\139\002\168\000\000\000\000\000\000\000\000\002\214\004\147\000\000\004\214\000\000\000\000\000\000\000\000\002\201\002\221\000\000\002\216\002\197\000\000\000\000\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\t\140\002\189\000\000\000\000\002f\002\203\002\198\003\134\000\000\000\000\000\000\000\000\000\000\000\000\004\147\000\000\000\000\t\141\004\225\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\197\000\000\t\142\000\000\002\165\000\000\t\143\002\166\002\167\t\145\002\168\000\000\t\150\000\000\002\203\002\214\000\000\002\198\003\134\t\132\000\000\000\000\000\000\002\201\002\221\000\000\002\216\t\162\000\000\000\000\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\002\189\002\165\t\133\002f\002\166\002\167\t\135\002\168\000\000\t\163\000\000\000\000\002\214\004\147\000\000\000\000\t\136\004\231\000\000\000\000\000\000\002\221\002\201\002\216\000\000\000\000\002\197\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\000\000\002\189\000\000\002\203\002f\000\000\002\198\003\134\000\000\000\000\000\000\000\000\000\000\000\000\004\147\t\137\004\237\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\197\000\000\000\000\000\000\002\165\000\000\000\000\002\166\002\167\000\000\002\168\000\000\000\000\000\000\000\000\002\214\002\203\002\198\003\134\000\000\000\000\000\000\000\000\000\000\002\221\002\201\002\216\000\000\000\000\000\000\t\138\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\000\000\002\189\002\165\000\000\002f\002\166\002\167\t\139\002\168\000\000\000\000\000\000\000\000\002\214\004\147\000\000\004\243\000\000\000\000\000\000\000\000\002\201\002\221\000\000\002\216\002\197\000\000\000\000\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\t\167\002\189\000\000\000\000\002f\002\203\002\198\003\134\000\000\000\000\000\000\000\000\000\000\000\000\004\147\000\000\000\000\t\141\004\249\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\197\000\000\t\142\000\000\002\165\000\000\t\143\002\166\002\167\t\145\002\168\000\000\t\150\000\000\002\203\002\214\000\000\002\198\003\134\t\132\000\000\000\000\000\000\002\201\002\221\000\000\002\216\t\162\000\000\000\000\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\002\189\002\165\t\133\002f\002\166\002\167\t\135\002\168\000\000\t\163\000\000\000\000\002\214\004\147\000\000\000\000\t\136\004\255\000\000\000\000\000\000\002\221\002\201\002\216\000\000\000\000\002\197\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\000\000\002\189\000\000\002\203\002f\000\000\002\198\003\134\000\000\000\000\000\000\000\000\000\000\000\000\004\147\t\137\005\005\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\197\000\000\000\000\000\000\002\165\000\000\000\000\002\166\002\167\000\000\002\168\000\000\000\000\000\000\000\000\002\214\002\203\002\198\003\134\000\000\000\000\000\000\000\000\000\000\002\221\002\201\002\216\000\000\000\000\000\000\t\138\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\000\000\002\189\002\165\000\000\002f\002\166\002\167\t\139\002\168\000\000\000\000\000\000\000\000\002\214\004\147\000\000\005\011\000\000\000\000\000\000\000\000\002\201\002\221\000\000\002\216\002\197\000\000\000\000\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\t\177\002\189\000\000\000\000\002f\002\203\002\198\003\134\000\000\000\000\000\000\000\000\000\000\000\000\004\147\000\000\000\000\t\141\005\017\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\197\000\000\t\142\000\000\002\165\000\000\t\143\002\166\002\167\t\145\002\168\000\000\t\150\000\000\002\203\002\214\000\000\002\198\003\134\000\000\000\000\000\000\000\000\002\201\002\221\000\000\002\216\t\162\000\000\000\000\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\002\189\002\165\000\000\002f\002\166\002\167\000\000\002\168\000\000\t\163\000\000\000\000\002\214\004\147\000\000\000\000\000\000\005\023\000\000\000\000\000\000\002\221\002\201\002\216\000\000\000\000\002\197\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\000\000\002\189\000\000\002\203\002f\000\000\002\198\003\134\000\000\000\000\000\000\000\000\000\000\000\000\004\147\000\000\005\029\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\197\000\000\000\000\000\000\002\165\000\000\000\000\002\166\002\167\000\000\002\168\000\000\000\000\000\000\000\000\002\214\002\203\002\198\003\134\000\000\000\000\000\000\000\000\000\000\002\221\002\201\002\216\000\000\000\000\000\000\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\000\000\002\189\002\165\000\000\002f\002\166\002\167\000\000\002\168\000\000\000\000\000\000\000\000\002\214\004\147\000\000\005#\000\000\000\000\000\000\000\000\002\201\002\221\000\000\002\216\002\197\000\000\000\000\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\002\189\000\000\000\000\002f\002\203\002\198\003\134\000\000\000\000\000\000\000\000\000\000\000\000\004\147\000\000\000\000\000\000\005)\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\197\000\000\000\000\000\000\002\165\000\000\000\000\002\166\002\167\000\000\002\168\000\000\000\000\000\000\002\203\002\214\000\000\002\198\003\134\000\000\000\000\000\000\000\000\002\201\002\221\000\000\002\216\000\000\000\000\000\000\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\002\189\002\165\000\000\002f\002\166\002\167\000\000\002\168\000\000\000\000\000\000\000\000\002\214\004\147\000\000\000\000\000\000\005/\000\000\000\000\000\000\002\221\002\201\002\216\000\000\000\000\002\197\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\000\000\002\189\000\000\002\203\002f\000\000\002\198\003\134\000\000\000\000\000\000\000\000\000\000\000\000\004\147\000\000\0055\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\197\000\000\000\000\000\000\002\165\000\000\000\000\002\166\002\167\000\000\002\168\000\000\000\000\000\000\000\000\002\214\002\203\002\198\003\134\000\000\000\000\000\000\000\000\000\000\002\221\002\201\002\216\000\000\000\000\000\000\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\000\000\002\189\002\165\000\000\002f\002\166\002\167\000\000\002\168\000\000\000\000\000\000\000\000\002\214\004\147\000\000\005;\000\000\000\000\000\000\000\000\002\201\002\221\000\000\002\216\002\197\000\000\000\000\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\002\189\000\000\000\000\002f\002\203\002\198\003\134\000\000\000\000\000\000\000\000\000\000\000\000\004\147\000\000\000\000\000\000\005A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\197\000\000\000\000\000\000\002\165\000\000\000\000\002\166\002\167\000\000\002\168\000\000\000\000\000\000\002\203\002\214\000\000\002\198\003\134\000\000\000\000\000\000\000\000\002\201\002\221\000\000\002\216\000\000\000\000\000\000\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\002\189\002\165\000\000\002f\002\166\002\167\000\000\002\168\000\000\000\000\000\000\000\000\002\214\004\147\000\000\000\000\000\000\005G\000\000\000\000\000\000\002\221\002\201\002\216\000\000\000\000\002\197\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\000\000\002\189\000\000\002\203\002f\000\000\002\198\003\134\000\000\000\000\000\000\000\000\000\000\000\000\004\147\000\000\005M\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\197\000\000\000\000\000\000\002\165\000\000\000\000\002\166\002\167\000\000\002\168\000\000\000\000\000\000\000\000\002\214\002\203\002\198\003\134\000\000\000\000\000\000\000\000\000\000\002\221\002\201\002\216\000\000\000\000\000\000\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\000\000\002\189\002\165\000\000\002f\002\166\002\167\000\000\002\168\000\000\000\000\000\000\000\000\002\214\004\147\000\000\005S\000\000\000\000\000\000\000\000\002\201\002\221\000\000\002\216\002\197\000\000\000\000\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\002\189\000\000\000\000\002f\002\203\002\198\003\134\000\000\000\000\000\000\000\000\000\000\000\000\004\147\000\000\000\000\000\000\005Y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\197\001\007\001\b\001\t\002\165\000\000\001\n\002\166\002\167\001\015\002\168\000\000\000\000\000\000\002\203\002\214\001\029\002\198\003\134\000\000\000\000\000\000\000\000\002\201\002\221\000\000\002\216\000\000\000\000\000\000\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\002\189\002\165\000\000\002f\002\166\002\167\000\000\002\168\000\000\000\000\000\000\000\000\002\214\004\147\000\000\000\000\000\000\005g\000\000\000\000\000\000\002\221\002\201\002\216\000\000\000\000\002\197\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\000\000\002\189\000\000\002\203\002f\000\000\002\198\003\134\000\000\000\000\001\027\000\000\000\000\000\000\004\147\000\000\005m\000\000\000\000\000\000\000\000\000\000\001\007\001\b\001\t\002\197\000\000\001\n\000\000\001\011\001\015\000\000\000\000\0012\000\000\000\000\000\000\001\029\000\000\000\000\002\214\002\203\002\198\003\134\000\000\000\000\000\000\000\000\000\000\002\221\002\201\002\216\000\000\000\000\000\000\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\000\000\002\189\000\000\000\000\002f\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\214\004\147\000\000\000\000\000\000\001\007\001\b\001\t\002\201\002\221\001\n\002\216\000\000\001\015\000\000\000\000\000\000\000\000\000\000\000\000\001\029\000\000\000\000\000\000\002\189\000\000\000\000\002f\002\203\001\027\001\007\001\b\001\t\000\000\000\000\001\n\000\000\004\147\001\015\000\000\000\000\000\000\001>\000\000\000\000\001\029\000\000\000\000\001\011\000\000\000\000\001?\0012\000\000\001@\000\000\000\000\001A\001B\005\134\000\000\000\000\000\000\000\000\002\203\002\214\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\221\001\012\002\216\000\000\000\000\001(\001)\000\000\000\000\001\002\000\000\000\000\001Y\000\000\000\000\000\000\001\027\000\000\001s\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\214\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\011\002\221\000\000\002\216\0012\000\000\001\027\001\007\001\b\001\t\000\000\000\000\001\n\000\000\004\000\001\015\004\001\004\002\002\167\000\000\004\003\000\000\001\029\000\000\000\000\001\011\000\000\001\012\000\000\0012\001>\001(\001)\000\000\004\142\001\002\000\000\000\000\000\000\001?\000\000\000\000\001@\004\148\000\000\001A\001B\005\142\000\000\000\000\000\000\000\000\001\012\000\000\005\225\000\000\001(\001)\000\000\000\000\001\002\000\000\000\000\000\000\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\000\000\001Y\000\000\004\167\000\000\000\000\000\000\001s\000\000\000\000\000\000\000\000\004\142\000\000\000\000\000\000\000\000\000\000\001>\001\027\000\000\004\148\000\000\000\000\000\000\000\000\000\000\001?\000\000\000\000\001@\000\000\005\229\001A\001B\005\160\000\000\000\000\001\011\000\000\000\000\000\000\0012\001>\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001?\000\000\004\167\001@\000\000\000\000\001A\001B\005\177\000\000\001Y\004\187\000\000\001\012\000\000\000\000\001s\001(\001)\000\000\000\000\001\002\000\000\000\000\000\000\000\000\000\000\004\006\000\000\004\177\002f\000\000\000\000\000\000\000\000\001Y\000\000\000\000\000\000\000\000\000\000\001s\000\000\000\000\000\000\000\000\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\187\004\189\000\000\000\000\000\000\004\142\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\004\148\001>\004\006\000\000\004\177\002f\000\000\000\000\000\000\000\000\001?\005\231\004\142\001@\000\000\000\000\001A\001B\005\193\000\000\005\227\004\148\004\207\000\000\000\000\000\000\000\000\000\000\004\178\000\000\000\000\000\000\005\234\004\167\000\000\000\000\000\000\004\208\004\189\002\216\004\180\000\000\000\000\000\000\000\000\001Y\000\000\000\000\000\000\000\000\000\000\001s\000\000\000\000\004\167\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001F\000\000\004\210\000\000\000\000\000\000\005\227\001H\004\207\000\000\000\000\000\000\000\000\000\000\004\178\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\208\000\000\002\216\004\180\000\000\004\187\000\000\004\000\000\000\004\001\004\002\002\167\004\000\004\003\004\001\004\002\002\167\000\000\004\003\000\000\000\000\004\006\000\000\004\177\002f\000\000\004\187\004\142\000\000\000\000\004\210\000\000\004\142\000\000\000\000\000\000\004\148\000\000\000\000\000\000\000\000\004\148\004\006\000\000\004\177\002f\000\000\005\241\000\000\000\000\000\000\000\000\005\250\000\000\001\027\000\000\002\165\004\189\000\000\002\166\002\167\000\000\002\168\000\000\000\000\000\000\000\000\000\000\000\000\004\167\000\000\000\000\000\000\001\011\004\167\000\000\000\000\001I\004\189\000\000\000\000\000\000\000\000\002\169\003\233\000\000\002\181\002\182\002\187\000\000\005\227\000\000\004\207\000\000\000\000\000\000\000\000\000\000\004\178\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\004\208\001\002\002\216\004\180\005\227\000\000\004\207\000\000\000\000\000\000\000\000\000\000\004\178\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\208\004\187\002\216\004\180\002\165\000\000\004\187\002\166\002\167\004\210\002\168\000\000\000\000\000\000\000\000\000\000\000\000\004\006\000\000\004\177\002f\000\000\004\006\000\000\004\177\002f\000\000\000\000\000\000\000\000\004\210\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\002\165\000\000\000\000\002\166\002\167\001?\002\168\000\000\001@\000\000\002\188\001A\001B\004\189\000\000\000\000\005\247\000\000\004\189\000\000\000\000\000\000\000\000\000\000\000\000\002\197\002\189\002\169\002\196\002f\002\181\002\182\002\187\000\000\000\000\004\000\000\000\004\001\004\002\002\167\001Y\004\003\002\198\003\134\000\000\000\000\005\227\000\000\004\207\000\000\000\000\005\227\006\000\004\207\004\178\004\142\000\000\000\000\000\000\004\178\000\000\002\197\000\000\004\208\004\148\002\216\004\180\tw\004\208\000\000\002\216\004\180\000\000\000\000\000\000\006\003\000\000\000\000\002\198\003\134\000\000\000\000\000\000\000\000\000\000\000\000\002\201\000\000\000\000\000\000\000\000\000\000\000\000\004\210\000\000\000\000\000\000\004\167\004\210\000\000\000\000\000\000\002\189\002\214\000\000\002f\000\000\000\000\000\000\000\000\000\000\000\000\002\215\000\000\002\216\004\147\000\000\000\000\000\000\000\000\000\000\000\000\002\201\000\000\000\000\000\000\000\000\000\000\000\000\tx\000\000\000\000\000\000\002\165\000\000\000\000\002\166\002\167\002\189\002\168\000\000\002f\002\203\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\147\000\000\000\000\000\000\000\000\000\000\004\187\000\000\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\002\165\000\000\000\000\002\166\002\167\004\006\002\168\004\177\002f\000\000\002\203\002\214\000\000\000\000\000\000\000\000\000\000\006\t\000\000\000\000\002\221\000\000\002\216\000\000\000\000\000\000\002\197\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\002\165\000\000\000\000\002\166\002\167\004\189\002\168\002\198\003\134\000\000\000\000\002\214\000\000\000\000\000\000\000\000\006\019\000\000\000\000\000\000\002\221\000\000\002\216\000\000\000\000\002\197\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\000\000\000\000\005\227\000\000\004\207\000\000\002\198\003\134\000\000\000\000\004\178\000\000\000\000\000\000\000\000\002\201\006\028\000\000\000\000\004\208\000\000\002\216\004\180\000\000\000\000\002\197\000\000\000\000\000\000\000\000\000\000\002\189\000\000\002\165\002f\000\000\002\166\002\167\000\000\002\168\000\000\000\000\002\198\003\134\004\147\000\000\000\000\000\000\000\000\004\210\002\201\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\169\002\196\000\000\002\181\002\182\002\187\002\189\000\000\000\000\002f\000\000\002\203\000\000\000\000\000\000\000\000\000\000\000\000\004\000\004\147\004\001\004\002\002\167\000\000\004\003\006%\002\201\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\197\000\000\000\000\000\000\004\142\000\000\000\000\000\000\002\189\000\000\000\000\002f\002\203\004\148\002\214\000\000\000\000\002\198\003\134\000\000\000\000\004\147\000\000\002\221\006*\002\216\000\000\000\000\000\000\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\002\165\000\000\000\000\002\166\002\167\000\000\002\168\000\000\000\000\004\167\000\000\002\203\002\214\004\142\002\165\000\000\000\000\002\166\002\167\000\000\002\168\002\221\004\148\002\216\002\201\000\000\000\000\002\169\002\196\000\000\002\181\002\182\002\187\0063\000\000\000\000\000\000\000\000\000\000\000\000\002\189\002\169\002\196\002f\002\181\002\182\002\187\000\000\002\214\000\000\000\000\000\000\0060\004\147\000\000\004\167\000\000\002\221\000\000\002\216\000\000\002\197\000\000\000\000\000\000\000\000\0069\000\000\000\000\004\187\000\000\000\000\000\000\000\000\000\000\002\197\000\000\000\000\002\198\003\134\002\203\000\000\000\000\000\000\000\000\004\006\000\000\004\177\002f\000\000\000\000\000\000\002\198\003\134\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\004\001\004\002\002\167\004\187\004\003\002\214\000\000\000\000\000\000\004\189\002\201\000\000\000\000\000\000\002\221\000\000\002\216\000\000\004\142\004\006\000\000\004\177\002f\000\000\002\201\000\000\002\189\004\148\000\000\002f\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006<\004\147\002\189\000\000\005\227\002f\004\207\002\165\000\000\000\000\002\166\002\167\004\178\002\168\000\000\004\147\000\000\004\189\000\000\000\000\000\000\004\208\004\167\002\216\004\180\000\000\000\000\000\000\002\203\000\000\000\000\000\000\000\000\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\002\203\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\227\004\210\004\207\000\000\000\000\000\000\000\000\000\000\004\178\006B\000\000\000\000\000\000\000\000\000\000\002\214\000\000\004\208\002\197\002\216\004\180\000\000\000\000\000\000\002\221\000\000\002\216\000\000\000\000\002\214\000\000\000\000\004\187\000\000\000\000\002\198\003\134\000\000\002\221\000\000\002\216\000\000\000\000\000\000\000\000\000\000\000\000\004\210\004\006\000\000\004\177\002f\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\002\165\000\000\000\000\002\166\002\167\000\000\002\168\000\000\000\000\000\000\000\000\000\000\000\000\004\142\000\000\000\000\000\000\000\000\000\000\002\201\000\000\000\000\004\148\000\000\004\189\000\000\000\000\002\169\002\196\000\000\002\181\002\182\002\187\006T\000\000\002\189\000\000\000\000\002f\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\147\000\000\000\000\000\000\006I\000\000\000\000\004\167\000\000\005\227\t\132\004\207\000\000\002\197\000\000\000\000\000\000\004\178\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\004\208\002\203\002\216\004\180\002\198\003\134\011\226\000\000\000\000\000\000\t\135\000\000\004\142\004\000\000\000\004\001\004\002\002\167\000\000\004\003\t\136\004\148\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\210\000\000\006W\004\142\000\000\000\000\000\000\000\000\002\214\000\000\000\000\004\187\004\148\000\000\000\000\000\000\000\000\002\221\002\201\002\216\000\000\000\000\000\000\006\183\004\167\000\000\t\137\004\006\000\000\004\177\002f\000\000\000\000\000\000\002\189\000\000\000\000\002f\000\000\000\000\002\165\000\000\000\000\002\166\002\167\004\167\002\168\004\147\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\189\000\000\000\000\t\138\002\169\002\196\000\000\002\181\002\182\002\187\000\000\002\203\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\139\004\187\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006s\000\000\000\000\000\000\005\227\000\000\004\207\000\000\004\006\002\197\004\177\002f\004\178\004\187\000\000\000\000\000\000\011\227\000\000\002\214\000\000\004\208\000\000\002\216\004\180\000\000\002\198\003\134\002\221\004\006\002\216\004\177\002f\000\000\000\000\000\000\000\000\t\141\000\000\000\000\000\000\000\000\000\000\000\000\004\189\000\000\000\000\000\000\000\000\t\142\000\000\004\210\000\000\t\143\000\000\000\000\t\145\000\000\000\000\t\150\002\165\000\000\000\000\002\166\002\167\004\189\002\168\000\000\000\000\000\000\002\201\000\000\000\000\000\000\t\162\000\000\000\000\005\227\000\000\004\207\000\000\000\000\000\000\000\000\000\000\004\178\002\189\002\169\002\196\002f\002\181\002\182\002\187\000\000\004\208\t\163\002\216\004\180\006\185\004\147\004\207\002\165\000\000\000\000\002\166\002\167\004\178\002\168\000\000\000\000\000\000\000\000\006x\000\000\000\000\004\208\000\000\002\216\004\180\000\000\000\000\002\197\000\000\000\000\004\210\000\000\002\203\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\000\000\002\198\003\134\000\000\000\000\000\000\000\000\000\000\004\210\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\132\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\219\002\197\002\214\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\221\000\000\002\216\000\000\000\000\000\000\000\000\002\198\003\134\000\000\002\201\000\000\000\000\002\165\000\000\000\000\002\166\002\167\000\000\002\168\000\000\000\000\000\000\n\220\000\000\n\221\002\189\002\165\000\000\002f\002\166\002\167\000\000\002\168\000\000\000\000\000\000\000\000\000\000\004\147\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\000\000\000\000\002\201\000\000\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\n\222\000\000\000\000\000\000\006\140\002\203\002\189\000\000\000\000\002f\000\000\000\000\000\000\002\197\000\000\000\000\000\000\000\000\006\148\004\147\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\197\000\000\000\000\002\198\003\134\000\000\000\000\002\165\000\000\000\000\002\166\002\167\n\223\002\168\000\000\002\214\000\000\002\198\003\134\002\203\000\000\000\000\000\000\000\000\002\221\000\000\002\216\000\000\000\000\n\224\n\225\000\000\n\226\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\201\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\214\000\000\000\000\006\155\n\227\002\201\000\000\002\189\000\000\002\221\002f\002\216\002\197\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\147\002\189\002\165\000\000\002f\002\166\002\167\000\000\002\168\002\198\003\134\000\000\n\228\000\000\004\147\000\000\n\229\000\000\000\000\n\231\000\000\000\000\n\237\n\239\000\000\000\000\000\000\002\203\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\n\251\000\000\000\000\000\000\002\203\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\201\006\161\000\000\000\000\000\000\n\252\000\000\000\000\000\000\000\000\002\197\002\214\000\000\000\000\000\000\000\000\002\189\000\000\000\000\002f\002\221\000\000\002\216\000\000\000\000\002\214\000\000\002\198\003\134\004\147\000\000\000\000\000\000\000\000\002\221\000\000\002\216\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\165\000\000\000\000\002\166\002\167\000\000\002\168\000\000\000\000\000\000\000\000\002\203\000\000\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\000\000\000\000\000\000\000\000\002\201\002\169\002\196\000\000\002\181\002\182\002\187\000\000\004\142\002\165\000\000\000\000\002\166\002\167\000\000\002\168\002\189\004\148\000\000\002f\000\000\000\000\002\214\000\000\000\000\000\000\006\166\000\000\006\196\004\147\000\000\002\221\000\000\002\216\000\000\002\197\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\002\165\000\000\000\000\002\166\002\167\004\167\002\168\002\198\003\134\000\000\000\000\002\203\000\000\000\000\000\000\000\000\006\173\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\197\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\002\198\003\134\000\000\000\000\000\000\000\000\002\214\000\000\000\000\002\201\006\192\000\000\004\142\000\000\000\000\002\221\000\000\002\216\000\000\002\197\000\000\004\148\000\000\004\187\000\000\002\189\000\000\000\000\002f\000\000\000\000\000\000\006\209\000\000\000\000\000\000\002\198\003\134\004\147\004\006\000\000\004\177\002f\000\000\002\201\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\167\000\000\000\000\000\000\000\000\000\000\002\189\000\000\000\000\002f\000\000\002\203\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\147\000\000\004\189\000\000\000\000\000\000\000\000\002\201\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\165\000\000\000\000\002\166\002\167\002\189\002\168\000\000\002f\002\203\000\000\002\214\000\000\000\000\000\000\000\000\000\000\006\198\004\147\004\207\002\221\000\000\002\216\004\187\000\000\004\178\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\004\208\000\000\002\216\004\180\000\000\004\006\000\000\004\177\002f\000\000\000\000\002\203\002\214\000\000\000\000\000\000\000\000\000\000\006\206\000\000\000\000\002\221\000\000\002\216\000\000\000\000\000\000\002\197\000\000\000\000\004\210\000\000\000\000\000\000\002\165\000\000\000\000\002\166\002\167\000\000\002\168\004\189\000\000\000\000\002\198\003\134\000\000\000\000\002\214\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\221\000\000\002\216\000\000\002\169\002\196\000\000\002\181\002\182\002\187\004\000\000\000\004\001\004\002\002\167\000\000\004\003\006\211\000\000\004\207\000\000\000\000\000\000\000\000\000\000\004\178\000\000\000\000\000\000\006\238\000\000\002\201\000\000\000\000\004\208\000\000\002\216\004\180\002\197\007\250\000\000\000\000\002\165\000\000\000\000\002\166\002\167\002\189\002\168\000\000\002f\000\000\000\000\000\000\000\000\002\198\003\134\000\000\000\000\000\000\004\147\000\000\000\000\000\000\004\210\000\000\000\000\000\000\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\002\165\000\000\000\000\002\166\002\167\000\000\002\168\000\000\000\000\002\203\000\000\000\000\000\000\000\000\000\000\000\000\006\255\000\000\000\000\000\000\000\000\002\201\000\000\000\000\000\000\002\197\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\000\000\002\189\000\000\000\000\002f\000\000\002\198\003\134\000\000\000\000\002\214\000\000\000\000\000\000\004\147\000\000\007\004\000\000\004\005\002\221\000\000\002\216\000\000\000\000\000\000\002\197\000\000\000\000\000\000\002\165\000\000\000\000\002\166\002\167\004\006\002\168\004\177\002f\000\000\000\000\000\000\002\203\002\198\003\134\000\000\000\000\000\000\000\000\000\000\000\000\002\201\000\000\000\000\000\000\000\000\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\000\000\002\189\002\165\000\000\002f\002\166\002\167\000\000\002\168\000\000\000\000\000\000\000\000\002\214\004\147\000\000\007\011\000\000\000\000\000\000\000\000\002\201\002\221\000\000\002\216\002\197\000\000\000\000\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\002\189\000\000\000\000\002f\002\203\002\198\003\134\000\000\000\000\004\178\000\000\000\000\000\000\004\147\000\000\000\000\000\000\007\029\004\179\000\000\002\216\004\180\000\000\000\000\000\000\000\000\002\197\000\000\000\000\000\000\002\165\000\000\000\000\002\166\002\167\000\000\002\168\000\000\000\000\000\000\002\203\002\214\000\000\002\198\003\134\000\000\000\000\000\000\000\000\002\201\002\221\000\000\002\216\000\000\000\000\000\000\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\002\189\002\165\000\000\002f\002\166\002\167\000\000\002\168\000\000\000\000\000\000\000\000\002\214\004\147\000\000\000\000\000\000\007\"\000\000\000\000\000\000\002\221\002\201\002\216\000\000\000\000\002\197\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\000\000\002\189\000\000\002\203\002f\000\000\002\198\003\134\000\000\000\000\000\000\000\000\000\000\000\000\004\147\000\000\007-\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\197\000\000\000\000\000\000\002\165\000\000\000\000\002\166\002\167\000\000\002\168\000\000\000\000\000\000\000\000\002\214\002\203\002\198\003\134\000\000\000\000\000\000\000\000\000\000\002\221\002\201\002\216\000\000\000\000\000\000\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\000\000\002\189\002\165\000\000\002f\002\166\002\167\000\000\002\168\000\000\000\000\000\000\000\000\002\214\004\147\000\000\0076\000\000\000\000\000\000\000\000\002\201\002\221\000\000\002\216\002\197\000\000\000\000\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\002\189\000\000\000\000\002f\002\203\002\198\003\134\000\000\000\000\000\000\000\000\000\000\000\000\004\147\000\000\000\000\000\000\007A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\197\001\007\001\b\001\t\002\165\000\000\001\n\002\166\002\167\001\015\002\168\000\000\000\000\000\000\002\203\002\214\001\029\002\198\003\134\000\000\000\000\000\000\000\000\002\201\002\221\000\000\002\216\000\000\000\000\000\000\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\002\189\002\165\000\000\002f\002\166\002\167\000\000\002\168\000\000\000\000\000\000\000\000\002\214\004\147\000\000\000\000\000\000\007L\000\000\000\000\000\000\002\221\002\201\002\216\000\000\000\000\002\197\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\000\000\002\189\000\000\002\203\002f\000\000\002\198\003\134\000\000\000\000\001\027\000\000\000\000\000\000\004\147\000\000\007X\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\197\000\000\000\000\000\000\001\011\000\000\000\000\000\000\0012\000\000\000\000\000\000\000\000\000\000\000\000\002\214\002\203\002\198\003\134\000\000\000\000\000\000\000\000\000\000\002\221\002\201\002\216\000\000\000\000\000\000\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\000\000\002\189\002\165\000\000\002f\002\166\002\167\000\000\002\168\000\000\000\000\000\000\000\000\002\214\004\147\000\000\000\000\000\000\000\000\000\000\000\000\002\201\002\221\000\000\002\216\000\000\000\000\000\000\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\002\189\000\000\000\000\002f\002\203\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\147\000\000\000\000\000\000\007\235\001>\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\197\001?\000\000\000\000\001@\000\000\000\000\001A\001B\007\202\000\000\000\000\000\000\000\000\002\203\002\214\000\000\002\198\003\134\000\000\000\000\000\000\000\000\000\000\002\221\000\000\002\216\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001Y\002\165\000\000\000\000\002\166\002\167\001s\002\168\002\165\000\000\000\000\002\166\002\167\000\000\002\168\002\214\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\221\002\201\002\216\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\002\169\002\196\000\000\002\181\002\182\002\187\002\189\000\000\002\165\002f\000\000\002\166\002\167\000\000\002\168\000\000\000\000\000\000\007\241\004\147\000\000\000\000\000\000\000\000\000\000\b\011\000\000\002\197\000\000\000\000\000\000\000\000\000\000\000\000\002\197\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\002\198\003\134\002\203\000\000\001\007\001\b\001\t\002\198\003\134\001\n\000\000\000\000\001\015\000\000\000\000\000\000\b\018\000\000\000\000\001\029\000\000\000\000\000\000\000\000\000\000\002\197\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001\015\000\000\000\000\000\000\000\000\002\214\000\000\001\029\002\198\003\134\002\201\000\000\000\000\000\000\002\221\000\000\002\216\002\201\000\000\000\000\000\000\000\000\001\007\001\b\001\t\000\000\002\189\001\n\000\000\002f\001\015\000\000\000\000\002\189\000\000\000\000\002f\001\029\000\000\004\147\000\000\000\000\000\000\000\000\000\000\000\000\004\147\000\000\000\000\000\000\000\000\000\000\002\201\000\000\000\000\001\027\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\203\000\000\002\189\000\000\000\000\002f\000\000\002\203\001\011\000\000\000\000\001\027\0012\000\000\000\000\004\147\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\011\000\000\000\000\000\000\0012\001\012\000\000\002\214\000\000\001(\001)\001\027\002\203\001\002\002\214\000\000\002\221\000\000\002\216\000\000\000\000\000\000\000\000\002\221\000\000\002\216\000\000\001\012\000\000\000\000\001\011\001(\001)\000\000\0012\001\002\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001\015\000\000\000\000\002\214\000\000\000\000\000\000\001\029\000\000\000\000\000\000\001\012\002\221\000\000\002\216\001(\001)\000\000\000\000\001\002\000\000\000\000\000\000\001>\000\000\000\000\000\000\000\000\001\007\001\b\001\t\000\000\001?\001\n\000\000\001@\001\015\000\000\001A\001B\bL\000\000\000\000\001\029\000\000\001>\000\000\000\000\000\000\000\000\001\007\001\b\001\t\000\000\001?\001\n\000\000\001@\001\015\000\000\001A\001B\by\000\000\000\000\001\029\000\000\001Y\000\000\000\000\000\000\000\000\000\000\001s\000\000\001>\000\000\001\027\000\000\000\000\000\000\000\000\000\000\000\000\001?\000\000\000\000\001@\000\000\001Y\001A\001B\b\133\000\000\000\000\001s\001\011\000\000\000\000\000\000\0012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\027\000\000\000\000\000\000\000\000\000\000\001Y\000\000\000\000\000\000\001\012\000\000\001s\000\000\001(\001)\000\000\000\000\001\002\001\011\000\000\000\000\001\027\0012\000\000\000\000\000\000\001\007\001\b\001\t\t\132\000\000\001\n\000\000\000\000\001\015\000\000\000\000\000\000\000\000\000\000\001\011\001\029\000\000\000\000\0012\001\012\000\000\000\000\011\235\001(\001)\011\236\000\000\001\002\000\000\t\135\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\136\000\000\001\012\000\000\000\000\000\000\001(\001)\001>\000\000\001\002\000\000\000\000\001\007\001\b\001\t\000\000\001?\001\n\000\000\001@\001\015\000\000\001A\001B\b\159\000\000\000\000\001\029\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\137\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001>\000\000\001\027\000\000\000\000\001\007\001\b\001\t\001Y\001?\001\n\000\000\001@\001\015\001s\001A\001B\b\175\000\000\000\000\001\029\001\011\001>\000\000\000\000\0012\000\000\000\000\000\000\000\000\000\000\001?\t\138\000\000\001@\000\000\000\000\001A\001B\b\228\000\000\000\000\000\000\000\000\001Y\000\000\000\000\000\000\001\012\t\139\001s\000\000\001(\001)\001\027\000\000\001\002\000\000\000\000\000\000\000\000\000\000\000\000\001\007\001\b\001\t\001Y\000\000\001\n\000\000\000\000\001\015\001s\001\011\011\246\000\000\000\000\0012\001\029\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\027\000\000\000\000\000\000\000\000\t\141\000\000\000\000\000\000\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\t\142\001\002\001\011\000\000\t\143\001>\0012\t\145\000\000\000\000\t\150\000\000\000\000\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\b\246\000\000\000\000\t\162\000\000\000\000\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\000\000\000\000\000\000\001\027\000\000\000\000\000\000\000\000\t\163\000\000\000\000\001Y\000\000\000\000\000\000\000\000\000\000\001s\000\000\001>\000\000\000\000\001\011\000\000\000\000\000\000\0012\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\t\014\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\012\000\000\000\000\000\000\001(\001)\001>\002\165\001\002\000\000\002\166\002\167\000\000\002\168\001Y\001?\000\000\000\000\001@\000\000\001s\001A\001B\t\232\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001Y\000\000\000\000\000\000\000\000\000\000\001s\000\000\000\000\t\250\000\000\000\000\000\000\000\000\001>\000\000\000\000\000\000\002\197\000\000\000\000\000\000\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\t\242\000\000\000\000\000\000\002\198\003\134\000\000\002\165\000\000\000\000\002\166\002\167\000\000\002\168\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\165\000\000\000\000\002\166\002\167\001Y\002\168\000\000\000\000\000\000\000\000\001s\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\201\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\000\000\n\004\000\000\000\000\000\000\000\000\002\189\000\000\000\000\002f\002\197\000\000\000\000\000\000\000\000\000\000\n\019\002\165\000\000\004\147\002\166\002\167\000\000\002\168\000\000\002\197\000\000\002\198\003\134\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\198\003\134\002\169\002\196\002\203\002\181\002\182\002\187\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001\015\000\000\000\000\n\023\000\000\002\201\000\000\001\029\000\000\000\000\002\165\000\000\002\197\002\166\002\167\000\000\002\168\002\214\000\000\000\000\002\201\002\189\000\000\000\000\002f\000\000\002\221\000\000\002\216\002\198\003\134\000\000\000\000\000\000\004\147\000\000\002\189\002\169\003\233\002f\002\181\002\182\002\187\000\000\000\000\001\007\001\b\001\t\000\000\004\147\001\n\000\000\000\000\001\015\000\000\000\000\000\000\000\000\000\000\000\000\001\029\002\203\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\007\001\b\001\t\002\201\000\000\001\n\002\203\001\027\001\015\000\000\000\000\000\000\000\000\000\000\000\000\001\029\000\000\000\000\000\000\002\189\000\000\000\000\002f\000\000\000\000\000\000\001\011\000\000\002\214\000\000\0012\000\000\004\147\000\000\000\000\000\000\000\000\002\221\000\000\002\216\000\000\000\000\000\000\002\214\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\221\001\012\002\216\000\000\000\000\001(\001)\002\203\001\027\001\002\002\188\000\000\000\000\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001\015\000\000\000\000\002\189\001\011\000\000\002f\001\029\0012\000\000\001\027\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\000\000\002\214\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\011\002\221\001\012\002\216\0012\000\000\001(\001)\000\000\000\000\001\002\000\000\006\218\001>\000\000\tw\000\000\000\000\000\000\000\000\006\227\000\000\001?\000\000\000\000\001@\000\000\001\012\001A\001B\n+\001(\001)\000\000\000\000\001\002\000\000\000\000\000\000\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\001\027\001\015\0071\002\214\000\000\000\000\000\000\000\000\001\029\001Y\000\000\000\000\002\215\000\000\002\216\001s\000\000\000\000\001>\001\011\000\000\000\000\000\000\0012\000\000\000\000\000\000\001?\000\000\t\128\001@\000\000\000\000\001A\001B\011\003\004\000\000\000\004\001\004\002\002\167\000\000\004\003\001>\000\000\000\000\001\012\000\000\000\000\000\000\001(\001)\001?\000\000\001\002\001@\004\142\004\005\001A\001B\011(\000\000\001Y\000\000\000\000\004\148\000\000\000\000\001s\000\000\000\000\000\000\000\000\006\230\000\000\004\177\002f\002\136\001\027\004\000\000\000\004\001\004\002\002\167\000\000\004\003\004\000\001Y\004\001\004\002\002\167\000\000\004\003\001s\000\000\000\000\000\000\001\011\004\167\004\142\000\000\0012\000\000\002\165\000\000\000\000\002\166\002\167\004\148\002\168\001>\000\000\000\000\000\000\000\000\007)\006\221\002\165\000\000\001?\002\166\002\167\001@\002\168\001\012\001A\001B\011}\001(\001)\002\169\002\196\001\002\002\181\002\182\002\187\000\000\000\000\000\000\000\000\000\000\004\167\000\000\000\000\002\169\002\196\000\000\002\181\002\182\002\187\004\178\000\000\000\000\000\000\001Y\003\025\000\000\000\000\004\187\004\179\001s\002\216\004\180\000\000\002\197\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\006\000\000\004\177\002f\002\197\000\000\000\000\002\198\003\134\000\000\000\000\000\000\000\000\000\000\001>\000\000\000\000\000\000\000\000\000\000\000\000\002\198\003\004\001?\000\000\000\000\001@\004\187\000\000\001A\001B\000\000\000\000\000\000\004\005\000\000\004\189\000\000\000\000\000\000\000\000\000\000\000\000\004\006\000\000\004\177\002f\000\000\000\000\000\000\004\006\002\201\004\177\002f\000\000\000\000\000\000\000\000\001Y\000\000\000\000\000\000\000\000\000\000\001\248\002\201\000\000\002\189\000\000\n\005\002f\004\207\002\165\000\000\000\000\002\166\002\167\004\178\002\168\004\189\006\248\002\189\000\000\000\000\002f\000\000\004\208\000\000\002\216\004\180\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\002\203\000\000\000\000\003\022\000\000\007\236\000\000\004\207\000\000\004\210\000\000\000\000\000\000\004\178\002\203\000\000\000\000\000\000\000\000\000\000\004\178\000\000\004\208\000\000\002\216\004\180\002\197\000\000\000\000\004\179\000\000\002\216\004\180\000\000\000\000\000\000\002\165\002\214\000\000\002\166\002\167\000\000\002\168\002\198\003\004\000\000\002\221\000\000\002\216\000\000\000\000\002\214\004\210\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\221\000\000\002\216\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\000\000\000\000\003\002\000\000\000\000\002\165\000\000\000\000\002\166\002\167\000\000\002\168\000\000\000\000\000\000\002\201\000\000\002\165\000\000\000\000\002\166\002\167\000\000\002\168\000\000\002\197\000\000\000\000\000\000\007\231\000\000\002\189\002\169\003\233\002f\002\181\002\182\002\187\000\000\000\000\000\000\000\000\002\198\003\004\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\000\000\000\000\003\006\004\000\000\000\004\001\004\002\002\167\000\000\004\003\003\234\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\203\000\000\000\000\000\000\000\000\004\142\004\000\002\197\004\001\004\002\002\167\000\000\004\003\000\000\004\148\002\201\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\002\198\003\004\000\000\000\000\000\000\000\000\000\000\002\189\000\000\000\000\002f\007&\004\142\002\214\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\148\002\221\004\167\002\216\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\188\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\201\000\000\000\000\002\203\002\189\000\000\000\000\002f\000\000\000\000\004\167\000\000\000\000\000\000\000\000\000\000\002\189\000\000\004\000\002f\004\001\004\002\002\167\000\000\004\003\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\142\004\187\002\214\000\000\000\000\000\000\000\000\003\235\000\000\004\148\000\000\002\221\000\000\002\216\000\000\000\000\000\000\004\006\002\203\004\177\002f\000\000\004\005\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\187\005x\005\128\000\000\000\000\000\000\004\006\000\000\004\177\002f\007.\002\214\000\000\000\000\000\000\000\000\004\006\000\000\004\177\002f\002\215\004\189\002\216\002\214\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\221\000\000\002\216\000\000\000\000\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\189\000\000\007c\000\000\004\207\000\000\004\142\000\000\000\000\000\000\004\178\000\000\000\000\000\000\000\000\004\148\000\000\000\000\004\187\004\208\000\000\002\216\004\180\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\178\000\000\0077\004\006\004\207\004\177\002f\000\000\000\000\004\179\004\178\002\216\004\180\000\000\000\000\000\000\000\000\004\167\004\210\004\208\002\165\002\216\004\180\002\166\002\167\000\000\002\168\002\165\000\000\000\000\002\166\002\167\000\000\002\168\000\000\000\000\000\000\000\000\000\000\004\189\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\169\002\196\004\210\002\181\002\182\002\187\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\007\001\b\001\t\000\000\0070\001\n\004\207\000\000\001\015\004\187\000\000\000\000\004\178\002\197\000\000\001\029\000\000\000\000\000\000\000\000\002\197\004\208\000\000\002\216\004\180\004\006\000\000\004\177\002f\000\000\002\198\003\157\000\000\000\000\000\000\000\000\000\000\002\198\003\220\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\000\000\000\000\000\000\000\000\004\210\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\142\004\000\004\189\004\001\004\002\002\167\000\000\004\003\000\000\004\148\000\000\000\000\000\000\000\000\000\000\002\201\000\000\000\000\000\000\000\000\000\000\004\142\002\201\000\000\000\000\000\000\001\027\000\000\000\000\000\000\004\148\002\189\000\000\000\000\002f\007$\000\000\004\207\002\189\000\000\000\000\002f\004\167\004\178\004\000\001\011\004\001\004\002\002\167\0012\004\003\000\000\004\208\000\000\002\216\004\180\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\167\004\142\003\167\000\000\000\000\000\000\000\000\003\228\002\203\001\012\004\148\000\000\000\000\001(\001)\002\203\000\000\001\002\000\000\004\210\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001\015\000\000\000\000\000\000\000\000\000\000\000\000\001\029\000\000\000\000\004\187\000\000\000\000\000\000\004\167\000\000\002\214\000\000\000\000\000\000\000\000\000\000\000\000\002\214\000\000\002\221\004\006\002\216\004\177\002f\000\000\004\187\002\221\000\000\002\216\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001>\000\000\000\000\004\006\000\000\004\177\002f\000\000\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\000\000\004\189\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\187\000\000\000\000\001\027\002\165\000\000\000\000\002\166\002\167\004\189\002\168\000\000\000\000\000\000\001Y\000\000\004\006\000\000\004\177\002f\004'\006\239\001\011\004\207\000\000\000\000\0012\000\000\000\000\004\178\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\004\208\000\000\002\216\004\180\006O\000\000\004\207\000\000\000\000\000\000\000\000\001\012\004\178\000\000\004\189\001(\001)\000\000\000\000\001\002\000\000\004\208\000\000\002\216\004\180\000\000\000\000\002\197\000\000\000\000\004\210\000\000\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\000\000\000\000\000\000\002\198\003\134\000\000\005\215\000\000\004\207\000\000\004\210\000\000\004\142\000\000\004\178\000\000\000\000\000\000\000\000\000\000\000\000\004\148\000\000\004\208\000\000\002\216\004\180\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001>\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\001?\000\000\000\000\001@\002\201\000\000\001A\001B\000\000\000\000\004\210\004\167\004\142\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\189\004\148\000\000\002f\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\186\000\000\001Y\000\000\000\000\000\000\000\000\000\000\004)\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\000\000\000\000\000\000\004\167\000\000\000\000\000\000\000\000\000\000\002\203\000\000\000\000\004\142\004\000\000\000\004\001\004\002\002\167\000\000\004\003\004\187\004\148\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\000\000\000\000\004\142\000\000\000\000\004\006\000\000\004\177\002f\000\000\000\000\004\148\004\142\000\000\000\000\002\214\000\000\000\000\000\000\000\000\000\000\004\148\000\000\004\167\002\221\000\000\002\216\000\000\000\000\000\000\000\000\000\000\004\187\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\189\000\000\004\000\004\167\004\001\004\002\002\167\004\006\004\003\004\177\002f\000\000\000\000\004\167\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\142\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\148\000\000\004\199\000\000\004\207\000\000\000\000\000\000\000\000\000\000\004\178\004\187\004\189\000\000\000\000\000\000\000\000\000\000\000\000\004\208\000\000\002\216\004\180\000\000\000\000\000\000\000\000\004\006\000\000\004\177\002f\000\000\004\187\004\167\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\187\000\000\000\000\004\205\000\000\004\207\004\006\004\210\004\177\002f\000\000\004\178\000\000\000\000\000\000\000\000\004\006\000\000\004\177\002f\004\208\004\189\002\216\004\180\004\000\000\000\004\001\004\002\002\167\004\000\004\003\004\001\004\002\002\167\000\000\004\003\000\000\000\000\000\000\000\000\000\000\000\000\004\189\000\000\004\142\000\000\000\000\000\000\000\000\004\142\004\210\004\187\004\189\004\148\004\215\000\000\004\207\000\000\004\148\000\000\000\000\000\000\004\178\000\000\000\000\000\000\000\000\004\006\000\000\004\177\002f\004\208\000\000\002\216\004\180\004\226\000\000\004\207\004\000\000\000\004\001\004\002\002\167\004\178\004\003\004\232\004\167\004\207\000\000\000\000\000\000\004\167\004\208\004\178\002\216\004\180\000\000\000\000\004\142\000\000\000\000\004\210\004\208\004\189\002\216\004\180\000\000\004\148\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\210\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\210\000\000\000\000\000\000\004\238\000\000\004\207\004\000\004\167\004\001\004\002\002\167\004\178\004\003\004\187\000\000\000\000\000\000\000\000\004\187\000\000\004\208\000\000\002\216\004\180\000\000\000\000\004\142\000\000\000\000\004\006\000\000\004\177\002f\000\000\004\006\004\148\004\177\002f\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\210\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\002\165\000\000\000\000\002\166\002\167\004\189\002\168\004\187\004\167\000\000\004\189\000\000\004\142\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\148\000\000\004\006\000\000\004\177\002f\002\169\002\213\000\000\002\181\002\182\002\187\000\000\000\000\000\000\000\000\000\000\004\244\000\000\004\207\000\000\000\000\004\250\000\000\004\207\004\178\000\000\000\000\000\000\000\000\004\178\000\000\000\000\004\167\004\208\000\000\002\216\004\180\004\189\004\208\000\000\002\216\004\180\000\000\000\000\000\000\000\000\004\187\000\000\000\000\000\000\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\000\000\000\000\000\000\004\006\004\210\004\177\002f\000\000\000\000\004\210\000\000\005\000\004\142\004\207\004\000\000\000\004\001\004\002\002\167\004\178\004\003\004\148\000\000\000\000\000\000\000\000\000\000\000\000\004\208\000\000\002\216\004\180\000\000\004\187\004\142\000\000\000\000\000\000\000\000\004\189\000\000\002\188\000\000\004\148\000\000\000\000\000\000\000\000\000\000\004\006\000\000\004\177\002f\000\000\004\167\000\000\000\000\002\189\004\210\000\000\002f\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\006\000\000\004\207\000\000\004\167\000\000\000\000\000\000\004\178\000\000\000\000\000\000\004\000\004\189\004\001\004\002\002\167\004\208\004\003\002\216\004\180\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\142\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\148\004\187\000\000\000\000\000\000\005\012\004\210\004\207\004\000\000\000\004\001\004\002\002\167\004\178\004\003\000\000\000\000\004\006\000\000\004\177\002f\002\214\004\208\004\187\002\216\004\180\000\000\000\000\004\142\000\000\002\215\000\000\002\216\004\167\000\000\000\000\000\000\004\148\000\000\004\006\000\000\004\177\002f\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\210\004\189\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\004\167\000\000\000\000\000\000\000\000\004\189\000\000\000\000\000\000\000\000\000\000\000\000\004\142\000\000\000\000\000\000\005\018\000\000\004\207\000\000\000\000\004\148\000\000\004\187\004\178\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\208\000\000\002\216\004\180\000\000\005\024\004\006\004\207\004\177\002f\000\000\000\000\000\000\004\178\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\167\004\208\000\000\002\216\004\180\000\000\004\187\000\000\004\000\004\210\004\001\004\002\002\167\000\000\004\003\000\000\000\000\000\000\000\000\000\000\000\000\004\189\004\006\000\000\004\177\002f\000\000\000\000\004\142\000\000\004\000\004\210\004\001\004\002\002\167\000\000\004\003\004\148\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\142\000\000\000\000\000\000\005\030\000\000\004\207\000\000\004\189\004\148\004\187\000\000\004\178\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\167\004\208\000\000\002\216\004\180\000\000\004\006\000\000\004\177\002f\000\000\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\005$\004\167\004\207\000\000\000\000\000\000\000\000\000\000\004\178\000\000\004\210\000\000\000\000\000\000\000\000\000\000\000\000\004\208\000\000\002\216\004\180\004\189\000\000\000\000\000\000\000\000\000\000\001b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\187\004\000\000\000\004\001\004\002\002\167\000\000\004\003\004\210\000\000\000\000\000\000\000\000\000\000\000\000\005*\004\006\004\207\004\177\002f\000\000\004\142\004\187\004\178\000\000\000\000\000\000\000\000\000\000\000\000\004\148\000\000\004\208\000\000\002\216\004\180\000\000\000\000\004\006\000\000\004\177\002f\000\000\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\004\189\000\000\000\000\000\000\000\000\001\011\000\000\000\000\000\000\000\000\004\210\004\167\004\142\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\004\148\004\189\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\012\0050\004\142\004\207\001(\001)\000\000\000\000\001\002\004\178\000\000\004\148\000\000\000\000\000\000\000\000\000\000\000\000\004\208\000\000\002\216\004\180\004\167\0056\000\000\004\207\000\000\000\000\000\000\000\000\000\000\004\178\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\187\004\208\000\000\002\216\004\180\004\167\000\000\000\000\000\000\004\210\000\000\000\000\000\000\000\000\000\000\000\000\004\006\000\000\004\177\002f\000\000\000\000\000\000\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\004\210\000\000\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\000\000\004\187\004\142\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\189\004\148\000\000\000\000\000\000\000\000\000\000\004\006\000\000\004\177\002f\000\000\000\000\004\187\000\000\000\000\000\000\001h\000\000\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\000\000\004\006\000\000\004\177\002f\005<\004\167\004\207\000\000\000\000\000\000\000\000\004\142\004\178\004\000\004\189\004\001\004\002\002\167\000\000\004\003\004\148\004\208\000\000\002\216\004\180\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\142\000\000\000\000\004\189\000\000\000\000\000\000\000\000\000\000\004\148\000\000\000\000\000\000\000\000\005B\000\000\004\207\000\000\004\210\000\000\004\167\000\000\004\178\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\208\004\187\002\216\004\180\000\000\005H\000\000\004\207\000\000\000\000\000\000\004\167\000\000\004\178\000\000\000\000\000\000\004\006\000\000\004\177\002f\000\000\004\208\000\000\002\216\004\180\000\000\000\000\000\000\000\000\004\210\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\187\000\000\000\000\004\210\004\189\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\000\000\000\000\004\006\000\000\004\177\002f\000\000\000\000\004\187\000\000\000\000\000\000\004\142\000\000\000\000\000\000\004\000\000\000\004\001\004\002\002\167\004\148\004\003\005N\004\006\004\207\004\177\002f\000\000\000\000\000\000\004\178\000\000\000\000\000\000\000\000\004\142\000\000\004\189\000\000\004\208\000\000\002\216\004\180\000\000\004\148\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\004\167\000\000\000\000\000\000\000\000\000\000\004\189\000\000\000\000\000\000\000\000\000\000\000\000\004\142\000\000\000\000\004\210\005T\000\000\004\207\000\000\000\000\004\148\000\000\004\167\004\178\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\208\000\000\002\216\004\180\000\000\005Z\000\000\004\207\000\000\000\000\000\000\000\000\000\000\004\178\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\167\004\208\000\000\002\216\004\180\004\187\000\000\000\000\002\165\004\210\000\000\005r\002\167\000\000\002\168\000\000\000\000\000\000\000\000\000\000\000\000\004\006\002\165\004\177\002f\002\166\002\167\000\000\002\168\004\187\000\000\004\210\000\000\000\000\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\000\000\004\006\005w\004\177\002f\002\169\003\233\000\000\002\181\002\182\002\187\000\000\000\000\004\189\000\000\000\000\004\187\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\002\197\000\000\000\000\000\000\000\000\000\000\000\000\004\006\000\000\004\177\002f\003\234\004\189\004\142\000\000\000\000\000\000\002\198\002\230\000\000\000\000\005h\004\148\004\207\000\000\000\000\000\000\000\000\000\000\004\178\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\208\000\000\002\216\004\180\000\000\004\189\000\000\005n\000\000\004\207\000n\000\000\000\000\000\000\000\000\004\178\004\000\004\167\004\001\004\002\002\167\000\000\004\003\002\201\004\208\000\000\002\216\004\180\000\000\000\000\004\210\000\000\000\000\000\000\000\000\000\000\004\142\002\188\005\248\002\189\004\207\000\000\002f\000\000\000\000\004\148\004\178\000\000\000\000\000\000\000\000\000\000\000\000\002\189\004\210\004\208\002f\002\216\004\180\000\000\000\000\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\187\004\167\002\203\000\000\000\000\004\142\000\000\000\000\004\210\004\000\000\000\004\001\004\002\002\167\004\148\004\003\004\006\003\235\004\177\002f\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\142\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\148\002\214\000\000\000\000\000\000\005x\005\128\000\000\000\000\004\167\002\221\000\000\002\216\000\000\004\189\002\214\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\187\002\215\000\000\002\216\000\000\004\000\000\000\004\001\004\002\002\167\004\167\004\003\000\000\000\000\000\000\000\000\004\006\000\000\004\177\002f\000\000\000\000\000\000\000\000\006\001\004\142\004\207\000\000\000\000\000\000\000\000\000\000\004\178\000\000\004\148\000\000\000\000\000\000\000\000\000\000\000\000\004\208\000\000\002\216\004\180\000\000\004\187\000\000\000\000\000\000\000\000\000\000\004\189\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\004\006\000\000\004\177\002f\000\000\004\167\000\000\000\000\004\187\004\210\000\000\000\000\004\142\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\148\000\000\006\n\004\006\004\207\004\177\002f\000\000\000\000\000\000\004\178\000\000\000\000\000\000\004\000\004\189\004\001\004\002\002\167\004\208\004\003\002\216\004\180\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\167\004\142\000\000\000\000\000\000\000\000\004\189\000\000\000\000\000\000\004\148\004\187\000\000\000\000\000\000\006\020\004\210\004\207\000\000\000\000\000\000\000\000\000\000\004\178\000\000\000\000\000\000\004\006\000\000\004\177\002f\000\000\004\208\000\000\002\216\004\180\000\000\000\000\000\000\006\029\000\000\004\207\000\000\004\167\000\000\000\000\004\000\004\178\004\001\004\002\002\167\000\000\004\003\000\000\000\000\000\000\004\208\000\000\002\216\004\180\004\187\000\000\004\210\004\189\000\000\000\000\004\142\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\148\004\006\000\000\004\177\002f\000\000\000\000\000\000\000\000\000\000\000\000\004\210\000\000\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\006&\000\000\004\207\000\000\000\000\000\000\000\000\004\187\004\178\000\000\000\000\000\000\004\167\004\142\000\000\000\000\004\189\004\208\000\000\002\216\004\180\000\000\004\148\004\006\000\000\004\177\002f\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\210\000\000\0061\000\000\004\207\000\000\000\000\000\000\004\167\000\000\004\178\000\000\004\189\000\000\000\000\000\000\000\000\000\000\000\000\004\208\000\000\002\216\004\180\000\000\000\000\004\187\000\000\000\000\002\165\000\000\000\000\003L\002\167\000\000\002\168\000\000\000\000\000\000\000\000\000\000\000\000\004\006\000\000\004\177\002f\006:\000\000\004\207\000\000\004\210\000\000\000\000\000\000\004\178\000\000\002\169\004u\000\000\002\181\002\182\002\187\000\000\004\208\000\000\002\216\004\180\000\000\000\000\004\187\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\004\189\000\000\000\000\000\000\000\000\000\000\000\000\004\006\000\000\004\177\002f\003\030\000\000\004\142\000\000\004\210\000\000\004\000\000\000\004\001\004\002\002\167\004\148\004\003\000\000\000\000\000\000\000\000\006c\003#\000\000\000\000\000\000\006C\000\000\004\207\000\000\004\142\000\000\000\000\000\000\004\178\000\000\004\189\000\000\000\000\004\148\000\000\000\000\000\000\004\208\000\000\002\216\004\180\004\000\004\167\004\001\004\002\002\167\000\000\004\003\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\201\004\142\000\000\006J\000\000\004\207\004\167\004\210\000\000\000\000\004\148\004\178\000\000\000\000\000\000\000\000\002\189\000\000\000\000\002f\004\208\000\000\002\216\004\180\000\000\000\000\000\000\000\000\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001P\000\000\000\000\000\000\004\187\004\167\000\000\000\000\000\000\006j\000\000\000\000\004\210\000\000\000\000\000\000\000\000\003$\000\000\000\000\004\006\000\000\004\177\002f\000\000\000\000\000\000\000\000\004\187\000\000\000\000\000\000\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\000\000\000\000\000\000\004\006\000\000\004\177\002f\000\000\000\000\000\000\000\000\000\000\004\142\000\000\002\214\004\189\000\000\000\000\000\000\000\000\000\000\004\148\000\000\002\221\004\187\002\216\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\004\189\004\006\000\000\004\177\002f\000\000\000\000\000\000\000\000\006y\000\000\004\207\000\000\004\142\000\000\004\167\001\011\004\178\000\000\000\000\000\000\000\000\004\148\000\000\000\000\000\000\004\208\000\000\002\216\004\180\000\000\000\000\000\000\006\133\000\000\004\207\000\000\004\189\000\000\000\000\000\000\004\178\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\004\208\001\002\002\216\004\180\000\000\004\167\004\210\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\006\141\000\000\004\207\000\000\000\000\004\187\000\000\000\000\004\178\000\000\004\210\000\000\000\000\004\142\000\000\000\000\000\000\004\208\000\000\002\216\004\180\004\006\004\148\004\177\002f\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\187\001?\004\210\000\000\001@\000\000\004\142\001A\001B\000\000\004\167\000\000\004\189\000\000\000\000\004\148\004\006\000\000\004\177\002f\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\001Y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\149\000\000\004\207\004\167\004\142\000\000\000\000\004\189\004\178\000\000\001\007\001\b\001\t\004\148\000\000\001\n\000\000\004\208\001W\002\216\004\180\000\000\000\000\000\000\000\000\004\187\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\006\156\004\006\004\207\004\177\002f\000\000\004\167\004\210\004\178\000\000\000\000\000\000\004\142\000\000\000\000\000\000\000\000\004\208\000\000\002\216\004\180\004\148\000\000\004\187\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\189\000\000\004\006\000\000\004\177\002f\000\000\000\000\000\000\000\000\004\210\001\007\001\b\001\t\000\000\000\000\001\n\004\167\000\000\001p\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\187\000\000\000\000\000\000\006\168\000\000\004\207\000\000\001\011\004\189\000\000\000\000\004\178\000\000\000\000\000\000\004\006\000\000\004\177\002f\000\000\004\208\000\000\002\216\004\180\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\006\167\001\002\004\207\000\000\004\142\000\000\004\187\000\000\004\178\004\210\004\189\000\000\000\000\004\148\000\000\000\000\000\000\004\208\000\000\002\216\004\180\000\000\004\006\000\000\004\177\002f\000\000\000\000\000\000\000\000\004\000\000\000\004\001\004\002\002\167\004\000\004\003\004\001\004\002\002\167\000\000\004\003\000\000\006\174\001\011\004\207\004\167\004\210\000\000\000\000\004\142\004\178\000\000\000\000\000\000\004\142\000\000\000\000\004\189\004\148\004\208\000\000\002\216\004\180\004\148\000\000\001?\000\000\000\000\001@\000\000\001\012\001A\001B\000\000\001(\001)\000\000\000\000\001\002\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001\015\004\210\007\006\004\167\004\207\000\000\000\000\001\029\004\167\000\000\004\178\000\000\001Y\000\000\000\000\000\000\000\000\004\187\000\000\004\208\000\000\002\216\004\180\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\006\000\000\004\177\002f\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\000\000\000\000\000\000\000\000\004\210\000\000\000\000\000\000\000\000\000\000\001?\000\000\004\142\001@\000\000\000\000\001A\001B\004\187\000\000\000\000\004\148\000\000\004\187\004\189\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\027\000\000\004\006\000\000\004\177\002f\000\000\004\006\000\000\004\177\002f\000\000\000\000\001Y\000\000\000\000\000\000\000\000\000\000\001\011\000\000\000\000\004\167\0012\000\000\007\005\000\000\004\207\000\000\000\000\000\000\000\000\000\000\004\178\000\000\000\000\000\000\000\000\004\189\000\000\000\000\000\000\004\208\004\189\002\216\004\180\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\000\000\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\tO\000\000\000\000\000\000\000\000\007\012\004\210\004\207\000\000\000\000\007\030\000\000\004\207\004\178\000\000\000\000\004\187\000\000\004\178\000\000\000\000\000\000\004\208\000\000\002\216\004\180\000\000\004\208\000\000\002\216\004\180\000\000\004\006\000\000\004\177\002f\000\000\000\000\000\000\002\165\000\000\000\000\002\166\002\167\001>\002\168\000\000\000\000\000\000\000\000\000\000\000\000\004\210\001?\000\000\000\000\001@\004\210\000\000\001A\001B\000\000\000\000\b\252\000\000\000\000\002\169\003\233\004\189\002\181\002\182\002\187\000\000\000\000\000\000\000\000\000\000\tQ\000\000\000\000\000\000\000\000\000\000\002\165\000\000\000\000\002\166\002\167\001Y\002\168\000\000\000\000\000\000\000\000\007\162\000\000\001\011\003\234\000\000\000\000\000\000\b\019\000\000\004\207\000\000\000\000\000\000\t\020\000\000\004\178\002\169\003\233\000\000\002\181\002\182\002\187\000\000\000\000\004\208\000\000\002\216\004\180\000\000\tT\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\001\005\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\003\234\000\000\tO\000\000\001\007\001\b\001\t\004\210\000\000\001\n\000\000\000\000\tO\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\188\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\189\000\000\000\000\002f\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\tO\000\000\000\000\000\000\000\000\000\000\001?\000\000\000\000\tW\000\000\000\000\001A\001B\000\000\002\188\000\000\000\000\000\000\000\000\002\165\000\000\000\000\002\166\002\167\b\162\002\168\t[\003\235\tY\tQ\002\189\000\000\000\000\002f\000\000\000\000\000\000\000\000\000\000\tQ\001Y\000\000\000\000\000\000\000\000\000\000\002\169\002\226\001\011\002\181\002\182\002\187\000\000\005x\005\128\001\007\001\b\001\t\001\011\000\000\001\n\000\000\000\000\002\214\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\235\002\215\000\000\002\216\tT\tQ\000\000\000\000\001(\001)\000\000\000\000\001\002\001\005\tT\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\001\005\001\011\000\000\005x\005\128\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\002\214\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\215\000\000\002\216\000\000\004\142\000\000\tT\000\000\000\000\000\000\001(\001)\000\000\004\148\001\002\001\005\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\tO\002\188\001\007\001\b\001\t\000\000\000\000\001\n\001?\000\000\tO\tW\000\000\000\000\001A\001B\000\000\002\189\001?\001\011\002f\tW\004\167\000\000\001A\001B\000\000\b\162\000\000\tZ\000\000\tY\000\000\000\000\000\000\000\000\000\000\b\162\000\000\tX\000\000\tY\000\000\001Y\000\000\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\001Y\001\002\001?\000\000\n\"\tW\000\000\000\000\001A\001B\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\162\000\000\tt\tQ\tY\000\000\000\000\000\000\004\187\000\000\000\000\002\165\000\000\tQ\002\166\002\167\001Y\002\168\000\000\000\000\002\214\000\000\001\011\000\000\004\006\000\000\004\177\002f\000\000\002\215\000\000\002\216\001\011\000\000\000\000\000\000\000\000\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\001?\000\000\000\000\001@\tT\000\000\001A\001B\001(\001)\000\000\000\000\001\002\001\005\tT\004\189\000\000\000\000\001(\001)\000\000\000\000\001\002\001\005\000\000\000\000\000\000\002\197\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n#\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\198\011\196\000\000\011\198\n\020\000\000\004\207\000\000\000\000\000\000\000\000\000\000\004\178\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\208\000\000\002\216\004\180\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001?\000\000\000\000\tW\000\000\000\000\001A\001B\000\000\000\000\001?\002\201\000\000\tW\000\000\000\000\001A\001B\004\210\b\162\000\000\n\207\002\165\tY\000\000\002\166\002\167\002\189\002\168\b\162\002f\n\215\000\000\tY\000\000\001Y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001Y\000\000\000\000\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\002\165\000\000\000\000\002\166\002\167\000\000\002\168\000\000\002\165\000\000\002\203\002\166\002\167\000\000\002\168\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\197\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\002\198\t\239\000\000\000\000\002\214\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\221\000\000\002\216\000\000\000\000\002\197\000\000\000\000\000\000\000\000\002\165\000\000\003\030\002\166\002\167\000\000\002\168\000\000\000\000\000\000\000\000\000\000\002\198\t\225\000\000\000\000\000\000\000\000\000\000\003\031\003#\002\201\000\000\000\000\000\000\000\000\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\000\000\002\189\000\000\002\165\002f\000\000\002\166\002\167\000\000\002\168\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\165\000\000\002\201\002\166\002\167\000\000\002\168\002\197\000\000\000\000\002\201\000\000\002\169\002\196\000\000\002\181\002\182\002\187\002\189\000\000\000\000\002f\000\000\002\203\002\198\003\014\002\189\002\169\002\196\002f\002\181\002\182\002\187\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\203\000\000\002\214\002\197\000\000\002\198\003\012\003$\000\000\000\000\002\201\002\221\000\000\002\216\000\000\000\000\000\000\000\000\000\000\000\000\002\198\003\t\000\000\000\000\000\000\000\000\002\189\000\000\000\000\002f\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\214\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\214\002\221\002\165\002\216\002\201\002\166\002\167\000\000\002\168\002\221\000\000\002\216\002\165\000\000\000\000\002\166\002\167\000\000\002\168\002\201\002\189\002\203\002\165\002f\000\000\002\166\002\167\000\000\002\168\002\169\002\196\000\000\002\181\002\182\002\187\002\189\000\000\000\000\002f\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\002\214\000\000\002\203\000\000\000\000\002\197\000\000\000\000\000\000\002\221\000\000\002\216\000\000\000\000\000\000\002\197\000\000\002\203\000\000\000\000\000\000\000\000\002\198\002\254\000\000\002\197\000\000\000\000\000\000\000\000\000\000\000\000\002\198\002\199\000\000\000\000\000\000\000\000\000\000\002\214\000\000\000\000\002\198\002\202\000\000\000\000\000\000\000\000\002\221\000\000\002\216\000\000\000\000\000\000\002\214\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\221\000\000\002\216\002\201\000\000\000\000\002\165\000\000\000\000\002\166\002\167\000\000\002\168\002\201\000\000\000\000\000\000\000\000\000\000\002\189\000\000\002\165\002f\002\201\002\166\002\167\000\000\002\168\000\000\002\189\000\000\000\000\002f\002\169\002\196\000\000\002\181\002\182\002\187\002\189\000\000\000\000\002f\000\000\000\000\000\000\000\000\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\000\000\000\000\002\203\002\165\000\000\000\000\002\166\002\167\000\000\002\168\002\197\000\000\002\203\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\203\000\000\000\000\002\197\000\000\002\198\002\218\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\002\214\000\000\000\000\002\198\002\220\000\000\000\000\000\000\000\000\002\221\002\214\002\216\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\221\002\214\002\216\000\000\000\000\000\000\002\197\000\000\000\000\000\000\002\221\002\165\002\216\002\201\002\166\002\167\000\000\002\168\000\000\000\000\000\000\000\000\000\000\002\198\002\251\000\000\000\000\000\000\002\201\002\189\000\000\000\000\002f\000\000\000\000\000\000\000\000\000\000\002\169\002\196\000\000\002\181\002\182\002\187\002\189\000\000\002\165\002f\000\000\002\166\002\167\000\000\002\168\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\201\000\000\002\203\000\000\000\000\002\197\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\000\000\002\189\002\203\000\000\002f\000\000\000\000\002\198\002\243\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\214\002\197\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\221\002\165\002\216\000\000\002\166\002\167\002\214\002\168\002\203\002\198\002\248\000\000\000\000\000\000\000\000\002\221\000\000\002\216\002\201\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\169\002\196\000\000\002\181\002\182\002\187\002\189\000\000\002\165\002f\000\000\002\166\002\167\000\000\002\168\000\000\000\000\002\214\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\201\002\221\000\000\002\216\000\000\000\000\000\000\000\000\000\000\002\197\002\169\002\196\000\000\002\181\002\182\002\187\002\189\000\000\000\000\002f\000\000\002\203\000\000\000\000\000\000\000\000\002\198\003!\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\030\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\165\000\000\000\000\002\166\002\167\002\203\002\168\002\214\000\000\0030\003#\000\000\000\000\000\000\000\000\000\000\002\221\000\000\002\216\002\201\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\002\189\000\000\002\165\002f\000\000\002\166\002\167\002\214\002\168\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\221\002\165\002\216\002\201\002\166\002\167\000\000\002\168\000\000\003\030\000\000\000\000\000\000\002\169\002\196\000\000\002\181\002\182\002\187\002\189\000\000\000\000\002f\000\000\002\203\000\000\003=\003#\002\169\003\233\000\000\002\181\002\182\002\187\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\030\000\000\000\000\000\000\002\165\000\000\000\000\002\166\002\167\000\000\002\168\000\000\003$\003\234\000\000\002\214\000\000\003K\003#\000\000\000\000\000\000\000\000\000\000\002\221\002\201\002\216\000\000\000\000\000\000\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\000\000\002\189\000\000\000\000\002f\000\000\000\000\000\000\000\000\000\000\002\214\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\221\000\000\002\216\002\201\000\000\000\000\002\197\000\000\001\007\001\b\001\t\002\165\000\000\001\n\002\166\002\167\001\152\002\168\002\188\002\189\000\000\003$\002f\002\198\004|\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\189\000\000\000\000\002f\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\003$\002\214\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\201\002\221\000\000\002\216\003\030\000\000\000\000\000\000\003\235\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\189\000\000\000\000\002f\002\165\005\183\003#\002\166\002\167\000\000\002\168\000\000\000\000\002\214\000\000\000\000\000\000\002\165\003\237\005\128\002\166\002\167\002\221\002\168\002\216\000\000\000\000\000\000\002\214\001\011\000\000\002\169\002\196\000\000\002\181\002\182\002\187\002\215\000\000\002\216\002\203\000\000\000\000\000\000\002\169\002\196\000\000\002\181\002\182\002\187\002\201\000\000\000\000\000\000\000\000\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\002\197\002\189\000\000\000\000\002f\002\165\000\000\001\011\002\166\002\167\000\000\002\168\002\214\002\197\000\000\000\000\000\000\002\198\005\185\000\000\000\000\002\221\000\000\002\216\000\000\000\000\000\000\000\000\000\000\000\000\002\198\006\150\002\169\002\196\001\012\002\181\002\182\002\187\001(\001)\003$\000\000\001\002\000\000\000\000\n%\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\007\001\b\001\t\000\000\002\201\001\n\000\000\001?\001\160\002\197\001@\000\000\000\000\001A\001B\000\000\000\000\002\201\000\000\000\000\002\189\002\214\000\000\002f\000\000\000\000\002\198\006\127\000\000\000\000\002\221\000\000\002\216\002\189\000\000\002\165\002f\000\000\002\166\002\167\000\000\002\168\001Y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\000\000\000\000\002\203\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\000\000\002\201\002\165\000\000\002\203\002\166\002\167\000\000\002\168\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n#\002\189\000\000\000\000\002f\000\000\000\000\000\000\000\000\000\000\000\000\002\197\002\214\002\169\002\196\000\000\002\181\002\182\002\187\001\011\000\000\002\221\000\000\002\216\000\000\002\214\000\000\000\000\002\198\006\135\000\000\000\000\000\000\000\000\002\221\000\000\002\216\000\000\000\000\002\165\000\000\002\203\002\166\002\167\000\000\002\168\001\012\002\197\000\000\000\000\001(\001)\000\000\002\165\001\002\000\000\002\166\002\167\000\000\002\168\000\000\000\000\000\000\000\000\002\198\006\143\002\169\002\196\000\000\002\181\002\182\002\187\002\201\000\000\000\000\000\000\000\000\000\000\002\214\000\000\002\169\002\196\000\000\002\181\002\182\002\187\000\000\002\221\002\189\002\216\000\000\002f\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\002\197\000\000\001L\000\000\000\000\001\007\001\b\001\t\002\201\001N\001\n\000\000\000\000\001S\002\197\000\000\000\000\002\198\b:\001?\001U\000\000\001@\000\000\002\189\001A\001B\002f\002\203\000\000\000\000\002\198\t\238\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001l\000\000\000\000\000\000\001\007\001\b\001\t\001n\000\000\001\n\000\000\001Y\001\148\000\000\000\000\000\000\000\000\000\000\002\201\001\150\000\000\002\203\002\214\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\221\002\201\002\216\002\189\000\000\001\027\002f\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\027\002\189\000\000\000\000\002f\000\000\000\000\000\000\001\011\000\000\000\000\002\214\001O\000\000\000\000\000\000\000\000\000\000\000\000\001\011\002\221\000\000\002\216\001V\000\000\000\000\000\000\002\203\000\000\000\000\001\027\000\000\000\000\000\000\000\000\001\012\000\000\000\000\000\000\001(\001)\002\203\001\027\001\002\000\000\000\000\001\012\000\000\000\000\001\011\001(\001)\000\000\001o\001\002\001\007\001\b\001\t\000\000\000\000\001\n\001\011\000\000\001\156\002\214\001\151\000\000\000\000\000\000\000\000\001\158\000\000\000\000\002\221\000\000\002\216\001\012\000\000\002\214\000\000\001(\001)\000\000\000\000\001\002\000\000\000\000\002\221\001\012\002\216\000\000\000\000\001(\001)\000\000\000\000\001\002\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001\164\000\000\000\000\001?\000\000\000\000\001@\001\166\000\000\001A\001B\000\000\000\000\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\000\000\000\000\000\000\000\000\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\001\027\001\172\000\000\001Y\000\000\001\007\001\b\001\t\001\174\001?\001\n\000\000\001@\001\185\001Y\001A\001B\000\000\000\000\001\011\001\187\001?\000\000\001\159\001@\000\000\000\000\001A\001B\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\027\000\000\001Y\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\000\000\001Y\000\000\000\000\000\000\000\000\001\011\000\000\000\000\000\000\001\167\000\000\000\000\000\000\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\001\027\001\193\000\000\000\000\000\000\000\000\000\000\000\000\001\195\000\000\001\012\000\000\001\027\000\000\001(\001)\000\000\000\000\001\002\001\011\000\000\000\000\000\000\001\175\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\011\000\000\000\000\000\000\001\188\000\000\000\000\000\000\000\000\000\000\001?\000\000\000\000\001@\000\000\001\012\001A\001B\000\000\001(\001)\000\000\000\000\001\002\000\000\000\000\000\000\001\012\001\007\001\b\001\t\001(\001)\001\n\000\000\001\002\001\201\000\000\000\000\000\000\000\000\000\000\000\000\001\203\000\000\001Y\000\000\001\027\001\007\001\b\001\t\000\000\001?\001\n\000\000\001@\001\209\000\000\001A\001B\000\000\000\000\000\000\001\211\000\000\000\000\001\011\000\000\000\000\000\000\001\196\000\000\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\004\000\000\000\004\001\004\002\002\167\000\000\004\003\001Y\001?\000\000\000\000\001@\000\000\001\012\001A\001B\000\000\001(\001)\000\000\001?\001\002\006\218\001@\000\000\000\000\001A\001B\000\000\006\218\006\227\000\000\000\000\001\027\000\000\000\000\000\000\006\227\000\000\000\000\000\000\000\000\000\000\001Y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\011\001\027\000\000\001Y\001\204\000\000\000\000\000\000\007'\000\000\000\000\001\007\001\b\001\t\000\000\006\228\001\n\000\000\000\000\n.\001\011\000\000\000\000\000\000\001\212\000\000\n0\001\012\000\000\000\000\000\000\001(\001)\000\000\001?\001\002\000\000\001@\000\000\000\000\001A\001B\000\000\000\000\000\000\000\000\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\001\007\001\b\001\t\000\000\000\000\001\n\000\000\004\005\n6\000\000\000\000\000\000\000\000\001Y\004\005\n8\001\007\001\b\001\t\000\000\000\000\001\n\000\000\006\230\011\006\004\177\002f\002\136\000\000\000\000\006\230\011\b\004\177\002f\002\136\000\000\000\000\001\007\001\b\001\t\001\027\000\000\001\n\000\000\001?\011\014\000\000\001@\000\000\000\000\001A\001B\011\016\001\007\001\b\001\t\000\000\000\000\001\n\001\011\000\000\011\022\000\000\n1\001?\000\000\006\221\001@\011\024\000\000\001A\001B\000\000\006\221\000\000\000\000\000\000\000\000\000\000\001Y\000\000\000\000\000\000\000\000\000\000\001\027\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\000\000\000\000\000\000\000\000\001Y\004\178\001\027\000\000\000\000\001\011\000\000\000\000\004\178\n9\004\179\000\000\002\216\004\180\000\000\000\000\000\000\004\179\000\000\002\216\004\180\001\011\000\000\001\027\000\000\011\t\000\000\000\000\000\000\000\000\000\000\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\001\027\001\002\000\000\001\011\000\000\000\000\000\000\011\017\000\000\001\012\001\007\001\b\001\t\001(\001)\001\n\000\000\001\002\011\030\001\011\000\000\001?\000\000\011\025\001@\011 \000\000\001A\001B\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\012\001\007\001\b\001\t\001(\001)\001\n\000\000\001\002\011+\001Y\000\000\000\000\001\007\001\b\001\t\011-\000\000\001\n\000\000\001?\0113\000\000\001@\000\000\000\000\001A\001B\0115\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\000\000\000\000\001\007\001\b\001\t\001\027\000\000\001\n\000\000\000\000\011;\001Y\000\000\001?\000\000\000\000\001@\011=\000\000\001A\001B\000\000\000\000\000\000\001\011\000\000\000\000\001Y\011!\001?\000\000\000\000\001@\000\000\000\000\001A\001B\000\000\000\000\000\000\000\000\000\000\001\027\000\000\000\000\000\000\000\000\000\000\001Y\000\000\000\000\001\012\000\000\000\000\001\027\001(\001)\000\000\000\000\001\002\000\000\001\011\000\000\000\000\001Y\011.\001\007\001\b\001\t\000\000\000\000\001\n\000\000\001\011\011C\000\000\000\000\0116\000\000\000\000\000\000\011E\000\000\000\000\000\000\000\000\000\000\001\027\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\000\000\000\000\000\000\001\012\000\000\000\000\000\000\001(\001)\001\011\000\000\001\002\000\000\011>\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\011M\000\000\000\000\001?\000\000\000\000\001@\011O\000\000\001A\001B\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\000\000\000\000\000\000\000\000\000\000\001\007\001\b\001\t\000\000\001\027\001\n\000\000\000\000\011U\000\000\000\000\000\000\001Y\000\000\001?\011W\000\000\001@\000\000\000\000\001A\001B\000\000\001\011\000\000\000\000\001?\011F\000\000\001@\000\000\000\000\001A\001B\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001Y\001\012\001\027\000\000\000\000\001(\001)\000\000\000\000\001\002\001?\000\000\001Y\001@\000\000\000\000\001A\001B\001\007\001\b\001\t\001\011\000\000\001\n\000\000\011P\011_\000\000\000\000\001\007\001\b\001\t\000\000\011a\001\n\000\000\001\027\011g\001\007\001\b\001\t\000\000\000\000\001\n\011i\001Y\001\168\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\001\011\001\002\000\000\000\000\011X\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001\176\001\007\001\b\001\t\001?\000\000\001\n\001@\000\000\001\199\001A\001B\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\000\000\000\000\000\000\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\001\027\001\189\000\000\000\000\000\000\000\000\001Y\000\000\000\000\000\000\000\000\001\027\001\007\001\b\001\t\000\000\000\000\001\n\001?\001\011\001\197\001@\000\000\011b\001A\001B\000\000\000\000\000\000\000\000\001\011\000\000\000\000\000\000\011j\000\000\000\000\000\000\000\000\001\011\000\000\000\000\000\000\000\000\000\000\000\000\001\012\000\000\000\000\000\000\001(\001)\001?\001Y\001\002\001@\000\000\001\012\001A\001B\000\000\001(\001)\001\011\000\000\001\002\001\012\000\000\000\000\000\000\001(\001)\001\011\000\000\001\002\000\000\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001\205\001Y\000\000\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\001\011\001\002\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\011\000\000\000\000\001?\000\000\000\000\001@\000\000\001\012\001A\001B\000\000\001(\001)\001?\000\000\001\002\001@\000\000\000\000\001A\001B\000\000\001?\000\000\000\000\001@\001\012\000\000\001A\001B\001(\001)\000\000\000\000\001\002\000\000\000\000\001Y\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\001?\001\213\001Y\001@\000\000\000\000\001A\001B\000\000\001?\000\000\001Y\001@\000\000\000\000\001A\001B\000\000\000\000\001\011\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\007\001\b\001\t\001?\001Y\001\n\001@\000\000\001\216\001A\001B\000\000\000\000\001Y\000\000\001\012\001\007\001\b\001\t\001(\001)\001\n\001?\001\002\001\220\001@\000\000\000\000\001A\001B\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001Y\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\002\165\000\000\001Y\002\166\002\167\000\000\002\168\000\000\000\000\000\000\000\000\001\011\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\227\002\165\000\000\000\000\002\166\002\167\000\000\002\168\002\169\002\241\001\231\002\181\002\182\002\187\001?\000\000\000\000\001@\000\000\001\012\001A\001B\000\000\001(\001)\000\000\000\000\001\002\002\169\003\028\001\011\002\181\002\182\002\187\000\000\000\000\002\165\000\000\000\000\002\166\002\167\000\000\002\168\000\000\000\000\000\000\001\011\000\000\000\000\001Y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\012\000\000\000\000\000\000\001(\001)\002\169\003.\001\002\002\181\002\182\002\187\001\011\000\000\000\000\000\000\001\012\000\000\000\000\000\000\001(\001)\001\011\000\000\001\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001?\000\000\000\000\001@\001\012\000\000\001A\001B\001(\001)\000\000\002\188\001\002\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\000\000\000\000\000\000\000\000\002\189\000\000\000\000\002f\002\188\000\000\000\000\000\000\001Y\000\000\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\000\000\002\189\000\000\000\000\002f\000\000\000\000\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\000\000\000\000\000\000\000\000\002\188\000\000\002\165\000\000\000\000\002\166\002\167\001Y\002\168\002\165\000\000\001?\002\166\002\167\001@\002\168\002\189\001A\001B\002f\000\000\001?\000\000\001Y\001@\000\000\000\000\001A\001B\002\169\003;\000\000\002\181\002\182\002\187\000\000\002\169\003?\002\214\002\181\002\182\002\187\000\000\000\000\000\000\000\000\001h\002\215\002\165\002\216\000\000\002\166\002\167\000\000\002\168\000\000\001h\000\000\002\214\000\000\002\165\000\000\000\000\002\166\002\167\000\000\002\168\002\215\002\165\002\216\000\000\002\166\002\167\000\000\002\168\002\169\003I\000\000\002\181\002\182\002\187\000\000\000\000\000\000\000\000\000\000\000\000\002\169\003\232\000\000\002\181\002\182\002\187\002\214\000\000\002\169\005\181\000\000\002\181\002\182\002\187\000\000\002\215\000\000\002\216\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\tK\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\tR\002\188\000\000\002\165\000\000\000\000\002\166\002\167\002\188\002\168\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\189\000\000\000\000\002f\000\000\000\000\000\000\002\189\000\000\000\000\002f\000\000\000\000\002\169\t\223\000\000\002\181\002\182\002\187\000\000\000\000\000\000\000\000\000\000\000\000\002\165\000\000\000\000\002\166\002\167\002\188\002\168\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\188\000\000\000\000\000\000\002\189\000\000\000\000\002f\002\188\000\000\002\169\t\236\000\000\002\181\002\182\002\187\002\189\000\000\000\000\002f\000\000\001\007\001\b\001\t\002\189\000\000\001\n\002f\001\011\n2\000\000\000\000\000\000\000\000\000\000\002\214\000\000\001\011\000\000\000\000\000\000\000\000\002\214\000\000\002\215\000\000\002\216\000\000\000\000\000\000\000\000\002\215\000\000\002\216\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\001\012\000\000\002\188\000\000\001(\001)\000\000\000\000\001\002\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\002\214\002\189\n:\000\000\002f\000\000\000\000\000\000\000\000\002\215\000\000\002\216\002\214\000\000\000\000\000\000\000\000\001\007\001\b\001\t\002\214\002\215\001\n\002\216\002\188\011\n\000\000\000\000\000\000\002\215\000\000\002\216\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\002\189\011\018\000\000\002f\001\011\000\000\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\012\001\007\001\b\001\t\001(\001)\001\n\002\214\001\002\011\026\000\000\001Y\000\000\000\000\000\000\000\000\002\215\000\000\002\216\000\000\001Y\000\000\000\000\000\000\001\007\001\b\001\t\001\011\000\000\001\n\000\000\000\000\011\"\000\000\000\000\000\000\000\000\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\002\214\0119\000\000\000\000\001\011\000\000\000\000\000\000\001\012\002\215\000\000\002\216\001(\001)\000\000\000\000\001\002\001\007\001\b\001\t\001\011\000\000\001\n\000\000\000\000\011/\000\000\001?\000\000\000\000\001@\001\012\000\000\001A\001B\001(\001)\000\000\000\000\001\002\001\007\001\b\001\t\000\000\000\000\001\n\000\000\001\012\0117\000\000\000\000\001(\001)\000\000\000\000\001\002\001\007\001\b\001\t\001\011\000\000\001\n\001Y\000\000\011?\000\000\000\000\000\000\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\011G\000\000\000\000\001?\001\011\000\000\001@\000\000\001\012\001A\001B\000\000\001(\001)\000\000\000\000\001\002\000\000\000\000\001\011\000\000\000\000\000\000\000\000\000\000\000\000\001?\000\000\000\000\001@\000\000\001\012\001A\001B\000\000\001(\001)\000\000\001Y\001\002\000\000\000\000\001?\001\011\000\000\001@\001\012\000\000\001A\001B\001(\001)\000\000\000\000\001\002\001\007\001\b\001\t\000\000\000\000\001\n\001Y\000\000\000\000\000\000\000\000\001\011\000\000\000\000\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\001Y\001\002\000\000\000\000\001?\001\011\000\000\001@\000\000\000\000\001A\001B\000\000\011K\000\000\000\000\001\012\000\000\000\000\001\011\001(\001)\000\000\000\000\001\002\000\000\000\000\001?\000\000\000\000\001@\000\000\001\012\001A\001B\000\000\001(\001)\000\000\001Y\001\002\000\000\001?\000\000\000\000\001@\001\012\000\000\001A\001B\001(\001)\000\000\000\000\001\002\001\007\001\b\001\t\000\000\000\000\001\n\000\000\001Y\011Q\000\000\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\000\000\000\000\000\000\011I\000\000\001\007\001\b\001\t\001\011\000\000\001\n\000\000\000\000\011Y\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\001\007\001\b\001\t\000\000\001Y\001\n\000\000\000\000\001?\000\000\000\000\001@\001\012\000\000\001A\001B\001(\001)\000\000\000\000\001\002\000\000\001?\000\000\000\000\001@\000\000\001Y\001A\001B\000\000\000\000\000\000\000\000\000\000\011]\001\007\001\b\001\t\000\000\000\000\001\n\000\000\001Y\011c\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\011k\000\000\000\000\000\000\001Y\000\000\001\007\001\b\001\t\001\011\000\000\001\n\000\000\000\000\000\000\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\001?\001\011\000\000\001@\001\012\000\000\001A\001B\001(\001)\000\000\000\000\001\002\000\000\000\000\000\000\000\000\000\000\000\000\001\011\000\000\000\000\007\016\000\000\000\000\000\000\000\000\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\001h\001\002\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\001\011\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\011\000\000\000\000\000\000\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\001?\001\011\000\000\001@\000\000\001\012\001A\001B\000\000\001(\001)\000\000\001\011\001\002\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\000\000\001?\000\000\000\000\001@\001\012\000\000\001A\001B\001(\001)\000\000\001Y\001\002\000\000\004\005\001\012\000\000\000\000\001?\001(\001)\001@\000\000\001\002\001A\001B\001\007\001\b\001\t\000\000\004\006\001\n\004\177\002f\000\000\001Y\000\000\000\000\000\000\000\000\001\011\000\000\000\000\000\000\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\001h\001?\000\000\000\000\001@\000\000\000\000\001A\001B\000\000\001?\000\000\000\000\001@\001\012\000\000\001A\001B\001(\001)\001\011\000\000\001\002\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\000\000\000\000\000\000\001?\001Y\000\000\001@\000\000\000\000\001A\001B\000\000\000\000\001Y\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\004\178\001\002\000\000\000\000\000\000\001\229\000\000\000\000\000\000\004\179\000\000\002\216\004\180\000\000\000\000\004\000\001\225\004\001\004\002\002\167\000\000\004\003\004\000\001\011\004\001\004\002\002\167\000\000\004\003\000\000\000\000\000\000\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\000\000\000\000\001\011\006\234\000\000\000\000\000\000\000\000\000\000\001\012\004\004\000\000\000\000\001(\001)\000\000\004\000\001\002\004\001\004\002\002\167\000\000\004\003\000\000\000\000\001?\000\000\001]\001@\001\012\000\000\001A\001B\001(\001)\000\000\004\000\001\002\004\001\004\002\002\167\000\000\004\003\000\000\004\000\004\130\004\001\004\002\002\167\000\000\004\003\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001g\000\000\000\000\000\000\000\000\004\134\000\000\000\000\000\000\000\000\000\000\000\000\004\000\004\158\004\001\004\002\002\167\004\000\004\003\004\001\004\002\002\167\001?\004\003\000\000\001@\000\000\000\000\001A\001B\000\000\000\000\000\000\000\000\000\000\000\000\004\005\000\000\000\000\000\000\000\000\004\176\001?\004\005\000\000\001@\004\188\000\000\001A\001B\000\000\000\000\004\006\000\000\004\177\002f\000\000\001f\000\000\004\006\000\000\004\177\002f\000\000\000\000\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\000\000\000\000\000\000\003\239\004\005\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\006\004\209\004\177\002f\004\005\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\005\000\000\005c\000\000\000\000\000\000\000\000\000\000\004\006\000\000\004\177\002f\001\007\001\b\001\t\000\000\004\006\001\n\004\177\002f\000\000\000\000\000\000\004\178\001\007\001\b\001\t\000\000\004\005\001\n\004\178\000\000\004\179\004\005\002\216\004\180\000\000\000\000\000\000\004\179\000\000\002\216\004\180\000\000\004\006\000\000\004\177\002f\000\000\004\006\000\000\004\177\002f\000\000\004\000\000\000\004\001\004\002\002\167\000\000\004\003\000\000\000\000\000\000\000\000\004\178\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\179\000\000\002\216\004\180\000\000\001\007\001\b\001\t\004\005\005\238\001\n\004\178\004\000\000\000\004\001\004\002\002\167\000\000\004\003\004\178\004\179\004\005\002\216\004\180\004\006\000\000\004\177\002f\004\179\000\000\002\216\004\180\000\000\000\000\000\000\000\000\000\000\004\006\000\000\004\177\002f\007\025\001\011\001\007\001\b\001\t\000\000\004\178\001\n\000\000\000\000\000\000\004\178\000\000\001\011\000\000\004\179\000\000\002\216\004\180\000\000\004\179\000\000\002\216\004\180\000\000\001\007\001\b\001\t\001\012\000\000\001\n\000\000\001(\001)\000\000\000\000\001\002\000\000\000\000\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\004\000\001\002\004\001\004\002\002\167\000\000\004\003\000\000\000\000\000\000\000\000\000\000\000\000\004\178\004\005\000\000\000\000\000\000\000\000\000\000\000\000\001\011\004\179\000\000\002\216\004\180\004\178\000\000\000\000\t\254\004\006\000\000\004\177\002f\000\000\004\179\000\000\002\216\004\180\004\000\000\000\004\001\004\002\002\167\000\000\004\003\004\005\000\000\001\012\000\000\000\000\000\000\001(\001)\001?\000\000\001\002\001@\000\000\001\011\001A\001B\004\006\000\000\004\177\002f\001?\000\000\n\000\001@\000\000\000\000\001A\001B\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\001\011\004\001\004\002\002\167\001\012\004\003\000\000\007\175\001(\001)\000\000\000\000\001\002\000\000\000\000\000\000\000\000\000\000\000\000\007\182\000\000\000\000\000\000\000\000\000\000\004\178\000\000\001\012\n\015\000\000\000\000\001(\001)\000\000\004\179\001\002\002\216\004\180\000\000\001?\004\005\000\000\001@\000\000\000\000\001A\001B\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\006\004\178\004\177\002f\000\000\000\000\000\000\000\000\000\000\000\000\004\179\000\000\002\216\004\180\000\000\000\000\000\000\000\000\007\180\000\000\000\000\001?\000\000\004\005\001@\000\000\000\000\001A\001B\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\006\000\000\004\177\002f\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\000\000\000\000\000\000\000\000\007\207\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\005\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\178\000\000\007\211\000\000\004\006\000\000\004\177\002f\000\000\004\179\000\000\002\216\004\180\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\178\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\179\000\000\002\216\004\180\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\178\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\179\000\000\002\216\004\180")) and semantic_action = [| @@ -25691,42 +25691,35 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _4; - MenhirLib.EngineTypes.startp = _startpos__4_; - MenhirLib.EngineTypes.endp = _endpos__4_; + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; }; }; } = _menhir_stack in - let _4 : (Parsetree.modalities) = Obj.magic _4 in let _3 : (Parsetree.core_type) = Obj.magic _3 in let _2 : unit = Obj.magic _2 in let _1 : (Parsetree.jkind_annotation) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos__4_ in + let _endpos = _endpos__3_ in let _v : (Parsetree.jkind_annotation_desc) = # 4159 "src/ocaml/preprocess/parser_raw.mly" - ( - With (_1, _3, _4) + ( + With (_1, _3) ) -# 25730 "src/ocaml/preprocess/parser_raw.ml" +# 25723 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -25753,7 +25746,7 @@ module Tables = struct ( Abbreviation _1 ) -# 25757 "src/ocaml/preprocess/parser_raw.ml" +# 25750 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -25787,7 +25780,7 @@ module Tables = struct ( Kind_of ty ) -# 25791 "src/ocaml/preprocess/parser_raw.ml" +# 25784 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -25814,7 +25807,7 @@ module Tables = struct ( Default ) -# 25818 "src/ocaml/preprocess/parser_raw.ml" +# 25811 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -25841,7 +25834,7 @@ module Tables = struct ( Product (List.rev _1) ) -# 25845 "src/ocaml/preprocess/parser_raw.ml" +# 25838 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -25882,7 +25875,7 @@ module Tables = struct ( _2 ) -# 25886 "src/ocaml/preprocess/parser_raw.ml" +# 25879 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -25923,7 +25916,7 @@ module Tables = struct let _1_inlined1 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 25927 "src/ocaml/preprocess/parser_raw.ml" +# 25920 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -25937,7 +25930,7 @@ module Tables = struct # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 25941 "src/ocaml/preprocess/parser_raw.ml" +# 25934 "src/ocaml/preprocess/parser_raw.ml" in @@ -25945,7 +25938,7 @@ module Tables = struct ( (abbrev, jkind) ) -# 25949 "src/ocaml/preprocess/parser_raw.ml" +# 25942 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -26000,7 +25993,7 @@ module Tables = struct let _1_inlined1 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 26004 "src/ocaml/preprocess/parser_raw.ml" +# 25997 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined1 in let _1 : (Asttypes.mutable_flag * Parsetree.modality Location.loc list) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -26011,7 +26004,7 @@ module Tables = struct # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 26015 "src/ocaml/preprocess/parser_raw.ml" +# 26008 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_attrs_ = _endpos__1_inlined3_ in @@ -26020,7 +26013,7 @@ module Tables = struct # 4500 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 26024 "src/ocaml/preprocess/parser_raw.ml" +# 26017 "src/ocaml/preprocess/parser_raw.ml" in let _2 = @@ -26028,7 +26021,7 @@ module Tables = struct let _1 = # 5010 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 26032 "src/ocaml/preprocess/parser_raw.ml" +# 26025 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in @@ -26036,7 +26029,7 @@ module Tables = struct # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 26040 "src/ocaml/preprocess/parser_raw.ml" +# 26033 "src/ocaml/preprocess/parser_raw.ml" in let _startpos__2_ = _startpos__1_inlined1_ in @@ -26052,7 +26045,7 @@ module Tables = struct let mut, m0 = _1 in let modalities = m0 @ m1 in Type.field _2 _4 ~mut ~modalities ~attrs ~loc:(make_loc _sloc) ~info) -# 26056 "src/ocaml/preprocess/parser_raw.ml" +# 26049 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -26121,7 +26114,7 @@ module Tables = struct let _1_inlined1 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 26125 "src/ocaml/preprocess/parser_raw.ml" +# 26118 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined1 in let _1 : (Asttypes.mutable_flag * Parsetree.modality Location.loc list) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -26132,7 +26125,7 @@ module Tables = struct # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 26136 "src/ocaml/preprocess/parser_raw.ml" +# 26129 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_attrs1_ = _endpos__1_inlined4_ in @@ -26141,7 +26134,7 @@ module Tables = struct # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 26145 "src/ocaml/preprocess/parser_raw.ml" +# 26138 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_attrs0_ = _endpos__1_inlined3_ in @@ -26150,7 +26143,7 @@ module Tables = struct # 4500 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 26154 "src/ocaml/preprocess/parser_raw.ml" +# 26147 "src/ocaml/preprocess/parser_raw.ml" in let _2 = @@ -26158,7 +26151,7 @@ module Tables = struct let _1 = # 5010 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 26162 "src/ocaml/preprocess/parser_raw.ml" +# 26155 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in @@ -26166,7 +26159,7 @@ module Tables = struct # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 26170 "src/ocaml/preprocess/parser_raw.ml" +# 26163 "src/ocaml/preprocess/parser_raw.ml" in let _startpos__2_ = _startpos__1_inlined1_ in @@ -26186,7 +26179,7 @@ module Tables = struct let mut, m0 = _1 in let modalities = m0 @ m1 in Type.field _2 _4 ~mut ~modalities ~attrs:(attrs0 @ attrs1) ~loc:(make_loc _sloc) ~info) -# 26190 "src/ocaml/preprocess/parser_raw.ml" +# 26183 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -26211,7 +26204,7 @@ module Tables = struct let _v : (Parsetree.label_declaration list) = # 4358 "src/ocaml/preprocess/parser_raw.mly" ( [_1] ) -# 26215 "src/ocaml/preprocess/parser_raw.ml" +# 26208 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -26236,7 +26229,7 @@ module Tables = struct let _v : (Parsetree.label_declaration list) = # 4359 "src/ocaml/preprocess/parser_raw.mly" ( [_1] ) -# 26240 "src/ocaml/preprocess/parser_raw.ml" +# 26233 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -26268,7 +26261,7 @@ module Tables = struct let _v : (Parsetree.label_declaration list) = # 4360 "src/ocaml/preprocess/parser_raw.mly" ( _1 :: _2 ) -# 26272 "src/ocaml/preprocess/parser_raw.ml" +# 26265 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -26289,7 +26282,7 @@ module Tables = struct let _1 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 26293 "src/ocaml/preprocess/parser_raw.ml" +# 26286 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -26297,7 +26290,7 @@ module Tables = struct let _v : (string * Parsetree.pattern * Parsetree.core_type option * Parsetree.modes) = let modes = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 26301 "src/ocaml/preprocess/parser_raw.ml" +# 26294 "src/ocaml/preprocess/parser_raw.ml" in let x = let _1 = @@ -26307,7 +26300,7 @@ module Tables = struct # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 26311 "src/ocaml/preprocess/parser_raw.ml" +# 26304 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in @@ -26316,7 +26309,7 @@ module Tables = struct # 2857 "src/ocaml/preprocess/parser_raw.mly" ( (_1.Location.txt, mkpat ~loc:_sloc (Ppat_var _1)) ) -# 26320 "src/ocaml/preprocess/parser_raw.ml" +# 26313 "src/ocaml/preprocess/parser_raw.ml" in @@ -26324,7 +26317,7 @@ module Tables = struct ( let lab, pat = x in lab, pat, None, modes ) -# 26328 "src/ocaml/preprocess/parser_raw.ml" +# 26321 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -26352,7 +26345,7 @@ module Tables = struct let _1 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 26356 "src/ocaml/preprocess/parser_raw.ml" +# 26349 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -26362,7 +26355,7 @@ module Tables = struct # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 26366 "src/ocaml/preprocess/parser_raw.ml" +# 26359 "src/ocaml/preprocess/parser_raw.ml" in let x = @@ -26373,7 +26366,7 @@ module Tables = struct # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 26377 "src/ocaml/preprocess/parser_raw.ml" +# 26370 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in @@ -26382,7 +26375,7 @@ module Tables = struct # 2857 "src/ocaml/preprocess/parser_raw.mly" ( (_1.Location.txt, mkpat ~loc:_sloc (Ppat_var _1)) ) -# 26386 "src/ocaml/preprocess/parser_raw.ml" +# 26379 "src/ocaml/preprocess/parser_raw.ml" in @@ -26390,7 +26383,7 @@ module Tables = struct ( let lab, pat = x in lab, pat, None, modes ) -# 26394 "src/ocaml/preprocess/parser_raw.ml" +# 26387 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -26425,7 +26418,7 @@ module Tables = struct let _1 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 26429 "src/ocaml/preprocess/parser_raw.ml" +# 26422 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -26433,7 +26426,7 @@ module Tables = struct let _v : (string * Parsetree.pattern * Parsetree.core_type option * Parsetree.modes) = let modes = # 4699 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 26437 "src/ocaml/preprocess/parser_raw.ml" +# 26430 "src/ocaml/preprocess/parser_raw.ml" in let x = let _1 = @@ -26443,7 +26436,7 @@ module Tables = struct # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 26447 "src/ocaml/preprocess/parser_raw.ml" +# 26440 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in @@ -26452,7 +26445,7 @@ module Tables = struct # 2857 "src/ocaml/preprocess/parser_raw.mly" ( (_1.Location.txt, mkpat ~loc:_sloc (Ppat_var _1)) ) -# 26456 "src/ocaml/preprocess/parser_raw.ml" +# 26449 "src/ocaml/preprocess/parser_raw.ml" in @@ -26460,7 +26453,7 @@ module Tables = struct ( let lab, pat = x in lab, pat, Some cty, modes ) -# 26464 "src/ocaml/preprocess/parser_raw.ml" +# 26457 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -26502,7 +26495,7 @@ module Tables = struct let _1 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 26506 "src/ocaml/preprocess/parser_raw.ml" +# 26499 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -26512,7 +26505,7 @@ module Tables = struct # 4700 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 26516 "src/ocaml/preprocess/parser_raw.ml" +# 26509 "src/ocaml/preprocess/parser_raw.ml" in let x = @@ -26523,7 +26516,7 @@ module Tables = struct # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 26527 "src/ocaml/preprocess/parser_raw.ml" +# 26520 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in @@ -26532,7 +26525,7 @@ module Tables = struct # 2857 "src/ocaml/preprocess/parser_raw.mly" ( (_1.Location.txt, mkpat ~loc:_sloc (Ppat_var _1)) ) -# 26536 "src/ocaml/preprocess/parser_raw.ml" +# 26529 "src/ocaml/preprocess/parser_raw.ml" in @@ -26540,7 +26533,7 @@ module Tables = struct ( let lab, pat = x in lab, pat, Some cty, modes ) -# 26544 "src/ocaml/preprocess/parser_raw.ml" +# 26537 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -26589,7 +26582,7 @@ module Tables = struct let _1 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 26593 "src/ocaml/preprocess/parser_raw.ml" +# 26586 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -26597,7 +26590,7 @@ module Tables = struct let _v : (string * Parsetree.pattern * Parsetree.core_type option * Parsetree.modes) = let modes = # 4699 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 26601 "src/ocaml/preprocess/parser_raw.ml" +# 26594 "src/ocaml/preprocess/parser_raw.ml" in let cty = let _1 = @@ -26606,24 +26599,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 26610 "src/ocaml/preprocess/parser_raw.ml" +# 26603 "src/ocaml/preprocess/parser_raw.ml" in # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 26615 "src/ocaml/preprocess/parser_raw.ml" +# 26608 "src/ocaml/preprocess/parser_raw.ml" in # 4481 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 26621 "src/ocaml/preprocess/parser_raw.ml" +# 26614 "src/ocaml/preprocess/parser_raw.ml" in # 2849 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 26627 "src/ocaml/preprocess/parser_raw.ml" +# 26620 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_inner_type_, _startpos_xs_) in @@ -26633,7 +26626,7 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 26637 "src/ocaml/preprocess/parser_raw.ml" +# 26630 "src/ocaml/preprocess/parser_raw.ml" in let x = @@ -26644,7 +26637,7 @@ module Tables = struct # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 26648 "src/ocaml/preprocess/parser_raw.ml" +# 26641 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in @@ -26653,7 +26646,7 @@ module Tables = struct # 2857 "src/ocaml/preprocess/parser_raw.mly" ( (_1.Location.txt, mkpat ~loc:_sloc (Ppat_var _1)) ) -# 26657 "src/ocaml/preprocess/parser_raw.ml" +# 26650 "src/ocaml/preprocess/parser_raw.ml" in @@ -26661,7 +26654,7 @@ module Tables = struct ( let lab, pat = x in lab, pat, Some cty, modes ) -# 26665 "src/ocaml/preprocess/parser_raw.ml" +# 26658 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -26717,7 +26710,7 @@ module Tables = struct let _1 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 26721 "src/ocaml/preprocess/parser_raw.ml" +# 26714 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -26727,7 +26720,7 @@ module Tables = struct # 4700 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 26731 "src/ocaml/preprocess/parser_raw.ml" +# 26724 "src/ocaml/preprocess/parser_raw.ml" in let cty = @@ -26737,24 +26730,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 26741 "src/ocaml/preprocess/parser_raw.ml" +# 26734 "src/ocaml/preprocess/parser_raw.ml" in # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 26746 "src/ocaml/preprocess/parser_raw.ml" +# 26739 "src/ocaml/preprocess/parser_raw.ml" in # 4481 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 26752 "src/ocaml/preprocess/parser_raw.ml" +# 26745 "src/ocaml/preprocess/parser_raw.ml" in # 2849 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 26758 "src/ocaml/preprocess/parser_raw.ml" +# 26751 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_inner_type_, _startpos_xs_) in @@ -26764,7 +26757,7 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 26768 "src/ocaml/preprocess/parser_raw.ml" +# 26761 "src/ocaml/preprocess/parser_raw.ml" in let x = @@ -26775,7 +26768,7 @@ module Tables = struct # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 26779 "src/ocaml/preprocess/parser_raw.ml" +# 26772 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in @@ -26784,7 +26777,7 @@ module Tables = struct # 2857 "src/ocaml/preprocess/parser_raw.mly" ( (_1.Location.txt, mkpat ~loc:_sloc (Ppat_var _1)) ) -# 26788 "src/ocaml/preprocess/parser_raw.ml" +# 26781 "src/ocaml/preprocess/parser_raw.ml" in @@ -26792,7 +26785,7 @@ module Tables = struct ( let lab, pat = x in lab, pat, Some cty, modes ) -# 26796 "src/ocaml/preprocess/parser_raw.ml" +# 26789 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -26817,7 +26810,7 @@ module Tables = struct let _v : (Longident.t) = # 5140 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 26821 "src/ocaml/preprocess/parser_raw.ml" +# 26814 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -26842,7 +26835,7 @@ module Tables = struct let _v : (Parsetree.arg_label * Parsetree.expression) = # 3315 "src/ocaml/preprocess/parser_raw.mly" ( (Nolabel, _1) ) -# 26846 "src/ocaml/preprocess/parser_raw.ml" +# 26839 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -26870,7 +26863,7 @@ module Tables = struct let _1 : ( # 1082 "src/ocaml/preprocess/parser_raw.mly" (string) -# 26874 "src/ocaml/preprocess/parser_raw.ml" +# 26867 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -26878,7 +26871,7 @@ module Tables = struct let _v : (Parsetree.arg_label * Parsetree.expression) = # 3317 "src/ocaml/preprocess/parser_raw.mly" ( (Labelled _1, _2) ) -# 26882 "src/ocaml/preprocess/parser_raw.ml" +# 26875 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -26905,7 +26898,7 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 26909 "src/ocaml/preprocess/parser_raw.ml" +# 26902 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -26916,7 +26909,7 @@ module Tables = struct # 3319 "src/ocaml/preprocess/parser_raw.mly" ( let loc = _loc_label_ in (Labelled label, mkexpvar ~loc label) ) -# 26920 "src/ocaml/preprocess/parser_raw.ml" +# 26913 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -26963,7 +26956,7 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 26967 "src/ocaml/preprocess/parser_raw.ml" +# 26960 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _2 : unit = Obj.magic _2 in let _1 : unit = Obj.magic _1 in @@ -26976,7 +26969,7 @@ module Tables = struct # 3322 "src/ocaml/preprocess/parser_raw.mly" ( (Labelled label, mkexp_type_constraint_with_modes ~loc:(_startpos__2_, _endpos) ~modes:[] (mkexpvar ~loc:_loc_label_ label) c) ) -# 26980 "src/ocaml/preprocess/parser_raw.ml" +# 26973 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -27003,7 +26996,7 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 27007 "src/ocaml/preprocess/parser_raw.ml" +# 27000 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -27014,7 +27007,7 @@ module Tables = struct # 3325 "src/ocaml/preprocess/parser_raw.mly" ( let loc = _loc_label_ in (Optional label, mkexpvar ~loc label) ) -# 27018 "src/ocaml/preprocess/parser_raw.ml" +# 27011 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -27042,7 +27035,7 @@ module Tables = struct let _1 : ( # 1116 "src/ocaml/preprocess/parser_raw.mly" (string) -# 27046 "src/ocaml/preprocess/parser_raw.ml" +# 27039 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -27050,7 +27043,7 @@ module Tables = struct let _v : (Parsetree.arg_label * Parsetree.expression) = # 3328 "src/ocaml/preprocess/parser_raw.mly" ( (Optional _1, _2) ) -# 27054 "src/ocaml/preprocess/parser_raw.ml" +# 27047 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -27105,13 +27098,13 @@ module Tables = struct # 2834 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 27109 "src/ocaml/preprocess/parser_raw.ml" +# 27102 "src/ocaml/preprocess/parser_raw.ml" in let modes0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 27115 "src/ocaml/preprocess/parser_raw.ml" +# 27108 "src/ocaml/preprocess/parser_raw.ml" in let _startpos_modes0_ = _endpos__2_ in @@ -27121,7 +27114,7 @@ module Tables = struct (Optional lbl, _5, mkpat_with_modes ~loc ~pat ~cty ~modes:(modes0 @ modes)) ) -# 27125 "src/ocaml/preprocess/parser_raw.ml" +# 27118 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -27183,7 +27176,7 @@ module Tables = struct # 2834 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 27187 "src/ocaml/preprocess/parser_raw.ml" +# 27180 "src/ocaml/preprocess/parser_raw.ml" in let modes0 = @@ -27191,12 +27184,12 @@ module Tables = struct let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 27195 "src/ocaml/preprocess/parser_raw.ml" +# 27188 "src/ocaml/preprocess/parser_raw.ml" in # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 27200 "src/ocaml/preprocess/parser_raw.ml" +# 27193 "src/ocaml/preprocess/parser_raw.ml" in let _startpos_modes0_ = _startpos__1_inlined1_ in @@ -27207,7 +27200,7 @@ module Tables = struct (Optional lbl, _5, mkpat_with_modes ~loc ~pat ~cty ~modes:(modes0 @ modes)) ) -# 27211 "src/ocaml/preprocess/parser_raw.ml" +# 27204 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -27234,7 +27227,7 @@ module Tables = struct let _1_inlined1 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 27238 "src/ocaml/preprocess/parser_raw.ml" +# 27231 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -27249,7 +27242,7 @@ module Tables = struct # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 27253 "src/ocaml/preprocess/parser_raw.ml" +# 27246 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in @@ -27258,13 +27251,13 @@ module Tables = struct # 2857 "src/ocaml/preprocess/parser_raw.mly" ( (_1.Location.txt, mkpat ~loc:_sloc (Ppat_var _1)) ) -# 27262 "src/ocaml/preprocess/parser_raw.ml" +# 27255 "src/ocaml/preprocess/parser_raw.ml" in # 2763 "src/ocaml/preprocess/parser_raw.mly" ( (Optional (fst _2), None, snd _2) ) -# 27268 "src/ocaml/preprocess/parser_raw.ml" +# 27261 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -27313,7 +27306,7 @@ module Tables = struct let _1 : ( # 1116 "src/ocaml/preprocess/parser_raw.mly" (string) -# 27317 "src/ocaml/preprocess/parser_raw.ml" +# 27310 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -27323,13 +27316,13 @@ module Tables = struct # 2834 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 27327 "src/ocaml/preprocess/parser_raw.ml" +# 27320 "src/ocaml/preprocess/parser_raw.ml" in let modes0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 27333 "src/ocaml/preprocess/parser_raw.ml" +# 27326 "src/ocaml/preprocess/parser_raw.ml" in let _startpos_modes0_ = _endpos__2_ in @@ -27339,7 +27332,7 @@ module Tables = struct (Optional _1, _5, mkpat_with_modes ~loc ~pat ~cty ~modes:(modes0 @ modes)) ) -# 27343 "src/ocaml/preprocess/parser_raw.ml" +# 27336 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -27395,7 +27388,7 @@ module Tables = struct let _1 : ( # 1116 "src/ocaml/preprocess/parser_raw.mly" (string) -# 27399 "src/ocaml/preprocess/parser_raw.ml" +# 27392 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -27405,7 +27398,7 @@ module Tables = struct # 2834 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 27409 "src/ocaml/preprocess/parser_raw.ml" +# 27402 "src/ocaml/preprocess/parser_raw.ml" in let modes0 = @@ -27413,12 +27406,12 @@ module Tables = struct let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 27417 "src/ocaml/preprocess/parser_raw.ml" +# 27410 "src/ocaml/preprocess/parser_raw.ml" in # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 27422 "src/ocaml/preprocess/parser_raw.ml" +# 27415 "src/ocaml/preprocess/parser_raw.ml" in let _startpos_modes0_ = _startpos__1_inlined1_ in @@ -27429,7 +27422,7 @@ module Tables = struct (Optional _1, _5, mkpat_with_modes ~loc ~pat ~cty ~modes:(modes0 @ modes)) ) -# 27433 "src/ocaml/preprocess/parser_raw.ml" +# 27426 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -27457,7 +27450,7 @@ module Tables = struct let _1 : ( # 1116 "src/ocaml/preprocess/parser_raw.mly" (string) -# 27461 "src/ocaml/preprocess/parser_raw.ml" +# 27454 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -27465,7 +27458,7 @@ module Tables = struct let _v : (Parsetree.arg_label * Parsetree.expression option * Parsetree.pattern) = # 2771 "src/ocaml/preprocess/parser_raw.mly" ( (Optional _1, None, _2) ) -# 27469 "src/ocaml/preprocess/parser_raw.ml" +# 27462 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -27511,7 +27504,7 @@ module Tables = struct let _v : (Parsetree.arg_label * Parsetree.expression option * Parsetree.pattern) = let modes0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 27515 "src/ocaml/preprocess/parser_raw.ml" +# 27508 "src/ocaml/preprocess/parser_raw.ml" in let _startpos_modes0_ = _endpos__2_ in @@ -27521,7 +27514,7 @@ module Tables = struct (Labelled lbl, None, mkpat_with_modes ~loc ~pat ~cty ~modes:(modes0 @ modes)) ) -# 27525 "src/ocaml/preprocess/parser_raw.ml" +# 27518 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -27576,12 +27569,12 @@ module Tables = struct let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 27580 "src/ocaml/preprocess/parser_raw.ml" +# 27573 "src/ocaml/preprocess/parser_raw.ml" in # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 27585 "src/ocaml/preprocess/parser_raw.ml" +# 27578 "src/ocaml/preprocess/parser_raw.ml" in let _startpos_modes0_ = _startpos__1_inlined1_ in @@ -27592,7 +27585,7 @@ module Tables = struct (Labelled lbl, None, mkpat_with_modes ~loc ~pat ~cty ~modes:(modes0 @ modes)) ) -# 27596 "src/ocaml/preprocess/parser_raw.ml" +# 27589 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -27619,7 +27612,7 @@ module Tables = struct let _1_inlined1 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 27623 "src/ocaml/preprocess/parser_raw.ml" +# 27616 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -27634,7 +27627,7 @@ module Tables = struct # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 27638 "src/ocaml/preprocess/parser_raw.ml" +# 27631 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in @@ -27643,13 +27636,13 @@ module Tables = struct # 2857 "src/ocaml/preprocess/parser_raw.mly" ( (_1.Location.txt, mkpat ~loc:_sloc (Ppat_var _1)) ) -# 27647 "src/ocaml/preprocess/parser_raw.ml" +# 27640 "src/ocaml/preprocess/parser_raw.ml" in # 2779 "src/ocaml/preprocess/parser_raw.mly" ( (Labelled (fst _2), None, snd _2) ) -# 27653 "src/ocaml/preprocess/parser_raw.ml" +# 27646 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -27677,7 +27670,7 @@ module Tables = struct let _1 : ( # 1082 "src/ocaml/preprocess/parser_raw.mly" (string) -# 27681 "src/ocaml/preprocess/parser_raw.ml" +# 27674 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -27685,7 +27678,7 @@ module Tables = struct let _v : (Parsetree.arg_label * Parsetree.expression option * Parsetree.pattern) = # 2781 "src/ocaml/preprocess/parser_raw.mly" ( (Labelled _1, None, _2) ) -# 27689 "src/ocaml/preprocess/parser_raw.ml" +# 27682 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -27727,7 +27720,7 @@ module Tables = struct let _1 : ( # 1082 "src/ocaml/preprocess/parser_raw.mly" (string) -# 27731 "src/ocaml/preprocess/parser_raw.ml" +# 27724 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -27735,7 +27728,7 @@ module Tables = struct let _v : (Parsetree.arg_label * Parsetree.expression option * Parsetree.pattern) = let modes0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 27739 "src/ocaml/preprocess/parser_raw.ml" +# 27732 "src/ocaml/preprocess/parser_raw.ml" in let _startpos_modes0_ = _endpos__2_ in @@ -27745,7 +27738,7 @@ module Tables = struct (Labelled _1, None, mkpat_with_modes ~loc ~pat ~cty ~modes:(modes0 @ modes)) ) -# 27749 "src/ocaml/preprocess/parser_raw.ml" +# 27742 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -27794,7 +27787,7 @@ module Tables = struct let _1 : ( # 1082 "src/ocaml/preprocess/parser_raw.mly" (string) -# 27798 "src/ocaml/preprocess/parser_raw.ml" +# 27791 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -27804,12 +27797,12 @@ module Tables = struct let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 27808 "src/ocaml/preprocess/parser_raw.ml" +# 27801 "src/ocaml/preprocess/parser_raw.ml" in # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 27813 "src/ocaml/preprocess/parser_raw.ml" +# 27806 "src/ocaml/preprocess/parser_raw.ml" in let _startpos_modes0_ = _startpos__1_inlined1_ in @@ -27820,7 +27813,7 @@ module Tables = struct (Labelled _1, None, mkpat_with_modes ~loc ~pat ~cty ~modes:(modes0 @ modes)) ) -# 27824 "src/ocaml/preprocess/parser_raw.ml" +# 27817 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -27869,7 +27862,7 @@ module Tables = struct let _1 : ( # 1082 "src/ocaml/preprocess/parser_raw.mly" (string) -# 27873 "src/ocaml/preprocess/parser_raw.ml" +# 27866 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -27879,7 +27872,7 @@ module Tables = struct # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 27883 "src/ocaml/preprocess/parser_raw.ml" +# 27876 "src/ocaml/preprocess/parser_raw.ml" in let _startpos_modes_ = _startpos__1_inlined1_ in @@ -27889,7 +27882,7 @@ module Tables = struct (Labelled _1, None, mkpat_with_modes ~loc ~pat ~cty:None ~modes) ) -# 27893 "src/ocaml/preprocess/parser_raw.ml" +# 27886 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -27914,7 +27907,7 @@ module Tables = struct let _v : (Parsetree.arg_label * Parsetree.expression option * Parsetree.pattern) = # 2794 "src/ocaml/preprocess/parser_raw.mly" ( (Nolabel, None, _1) ) -# 27918 "src/ocaml/preprocess/parser_raw.ml" +# 27911 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -27962,7 +27955,7 @@ module Tables = struct # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 27966 "src/ocaml/preprocess/parser_raw.ml" +# 27959 "src/ocaml/preprocess/parser_raw.ml" in let _startpos_modes_ = _startpos__1_inlined1_ in @@ -27973,7 +27966,7 @@ module Tables = struct (Nolabel, None, mkpat_with_modes ~loc ~pat ~cty ~modes) ) -# 27977 "src/ocaml/preprocess/parser_raw.ml" +# 27970 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -28012,7 +28005,7 @@ module Tables = struct let _v : (Parsetree.arg_label * Parsetree.expression option * Parsetree.pattern) = let modes0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 28016 "src/ocaml/preprocess/parser_raw.ml" +# 28009 "src/ocaml/preprocess/parser_raw.ml" in let _startpos_modes0_ = _endpos__1_ in @@ -28022,7 +28015,7 @@ module Tables = struct (Nolabel, None, mkpat_with_modes ~loc ~pat ~cty ~modes:(modes0 @ modes)) ) -# 28026 "src/ocaml/preprocess/parser_raw.ml" +# 28019 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -28070,12 +28063,12 @@ module Tables = struct let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 28074 "src/ocaml/preprocess/parser_raw.ml" +# 28067 "src/ocaml/preprocess/parser_raw.ml" in # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 28079 "src/ocaml/preprocess/parser_raw.ml" +# 28072 "src/ocaml/preprocess/parser_raw.ml" in let _startpos_modes0_ = _startpos__1_inlined1_ in @@ -28086,7 +28079,7 @@ module Tables = struct (Nolabel, None, mkpat_with_modes ~loc ~pat ~cty ~modes:(modes0 @ modes)) ) -# 28090 "src/ocaml/preprocess/parser_raw.ml" +# 28083 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -28156,7 +28149,7 @@ module Tables = struct let _1 : ( # 1082 "src/ocaml/preprocess/parser_raw.mly" (string) -# 28160 "src/ocaml/preprocess/parser_raw.ml" +# 28153 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -28169,24 +28162,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 28173 "src/ocaml/preprocess/parser_raw.ml" +# 28166 "src/ocaml/preprocess/parser_raw.ml" in # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 28178 "src/ocaml/preprocess/parser_raw.ml" +# 28171 "src/ocaml/preprocess/parser_raw.ml" in # 4481 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 28184 "src/ocaml/preprocess/parser_raw.ml" +# 28177 "src/ocaml/preprocess/parser_raw.ml" in # 2897 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 28190 "src/ocaml/preprocess/parser_raw.ml" +# 28183 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_inner_type_, _startpos_xs_) in @@ -28196,13 +28189,13 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 28200 "src/ocaml/preprocess/parser_raw.ml" +# 28193 "src/ocaml/preprocess/parser_raw.ml" in # 2898 "src/ocaml/preprocess/parser_raw.mly" ( pat, Some cty ) -# 28206 "src/ocaml/preprocess/parser_raw.ml" +# 28199 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_x_, _startpos_x_) = (_endpos_inner_type_, _startpos_pat_) in @@ -28213,7 +28206,7 @@ module Tables = struct (Labelled _1, None, mkpat_with_modes ~loc:_loc_x_ ~pat ~cty ~modes:[]) ) -# 28217 "src/ocaml/preprocess/parser_raw.ml" +# 28210 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -28290,7 +28283,7 @@ module Tables = struct let _1 : ( # 1082 "src/ocaml/preprocess/parser_raw.mly" (string) -# 28294 "src/ocaml/preprocess/parser_raw.ml" +# 28287 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -28303,24 +28296,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 28307 "src/ocaml/preprocess/parser_raw.ml" +# 28300 "src/ocaml/preprocess/parser_raw.ml" in # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 28312 "src/ocaml/preprocess/parser_raw.ml" +# 28305 "src/ocaml/preprocess/parser_raw.ml" in # 4481 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 28318 "src/ocaml/preprocess/parser_raw.ml" +# 28311 "src/ocaml/preprocess/parser_raw.ml" in # 2897 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 28324 "src/ocaml/preprocess/parser_raw.ml" +# 28317 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_inner_type_, _startpos_xs_) in @@ -28330,13 +28323,13 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 28334 "src/ocaml/preprocess/parser_raw.ml" +# 28327 "src/ocaml/preprocess/parser_raw.ml" in # 2898 "src/ocaml/preprocess/parser_raw.mly" ( pat, Some cty ) -# 28340 "src/ocaml/preprocess/parser_raw.ml" +# 28333 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_x_ = _endpos_inner_type_ in @@ -28345,7 +28338,7 @@ module Tables = struct # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 28349 "src/ocaml/preprocess/parser_raw.ml" +# 28342 "src/ocaml/preprocess/parser_raw.ml" in let _startpos_modes_ = _startpos__1_inlined1_ in @@ -28356,7 +28349,7 @@ module Tables = struct (Labelled _1, None, mkpat_with_modes ~loc ~pat ~cty ~modes) ) -# 28360 "src/ocaml/preprocess/parser_raw.ml" +# 28353 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -28428,24 +28421,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 28432 "src/ocaml/preprocess/parser_raw.ml" +# 28425 "src/ocaml/preprocess/parser_raw.ml" in # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 28437 "src/ocaml/preprocess/parser_raw.ml" +# 28430 "src/ocaml/preprocess/parser_raw.ml" in # 4481 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 28443 "src/ocaml/preprocess/parser_raw.ml" +# 28436 "src/ocaml/preprocess/parser_raw.ml" in # 2897 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 28449 "src/ocaml/preprocess/parser_raw.ml" +# 28442 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_inner_type_, _startpos_xs_) in @@ -28455,13 +28448,13 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 28459 "src/ocaml/preprocess/parser_raw.ml" +# 28452 "src/ocaml/preprocess/parser_raw.ml" in # 2898 "src/ocaml/preprocess/parser_raw.mly" ( pat, Some cty ) -# 28465 "src/ocaml/preprocess/parser_raw.ml" +# 28458 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_x_, _startpos_x_) = (_endpos_inner_type_, _startpos_pat_) in @@ -28472,7 +28465,7 @@ module Tables = struct (Nolabel, None, mkpat_with_modes ~loc:_loc_x_ ~pat ~cty ~modes:[]) ) -# 28476 "src/ocaml/preprocess/parser_raw.ml" +# 28469 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -28513,13 +28506,13 @@ module Tables = struct # 3782 "src/ocaml/preprocess/parser_raw.mly" ( None, _1 ) -# 28517 "src/ocaml/preprocess/parser_raw.ml" +# 28510 "src/ocaml/preprocess/parser_raw.ml" in # 3810 "src/ocaml/preprocess/parser_raw.mly" ( _3 :: _1 ) -# 28523 "src/ocaml/preprocess/parser_raw.ml" +# 28516 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -28559,7 +28552,7 @@ module Tables = struct let _1_inlined1 : ( # 1082 "src/ocaml/preprocess/parser_raw.mly" (string) -# 28563 "src/ocaml/preprocess/parser_raw.ml" +# 28556 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in let _1 : ((string option * Parsetree.pattern) list) = Obj.magic _1 in @@ -28571,13 +28564,13 @@ module Tables = struct # 3784 "src/ocaml/preprocess/parser_raw.mly" ( Some _1, _2 ) -# 28575 "src/ocaml/preprocess/parser_raw.ml" +# 28568 "src/ocaml/preprocess/parser_raw.ml" in # 3810 "src/ocaml/preprocess/parser_raw.mly" ( _3 :: _1 ) -# 28581 "src/ocaml/preprocess/parser_raw.ml" +# 28574 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -28616,7 +28609,7 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 28620 "src/ocaml/preprocess/parser_raw.ml" +# 28613 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in @@ -28630,13 +28623,13 @@ module Tables = struct # 3786 "src/ocaml/preprocess/parser_raw.mly" ( let loc = _loc_label_ in Some label, mkpatvar ~loc label ) -# 28634 "src/ocaml/preprocess/parser_raw.ml" +# 28627 "src/ocaml/preprocess/parser_raw.ml" in # 3810 "src/ocaml/preprocess/parser_raw.mly" ( _3 :: _1 ) -# 28640 "src/ocaml/preprocess/parser_raw.ml" +# 28633 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -28702,7 +28695,7 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 28706 "src/ocaml/preprocess/parser_raw.ml" +# 28699 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _2_inlined1 : unit = Obj.magic _2_inlined1 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in @@ -28721,13 +28714,13 @@ module Tables = struct let pat_loc = _startpos__2_, _endpos in let pat = mkpatvar ~loc:lbl_loc label in Some label, mkpat_with_modes ~loc:pat_loc ~modes:[] ~pat ~cty:(Some cty) ) -# 28725 "src/ocaml/preprocess/parser_raw.ml" +# 28718 "src/ocaml/preprocess/parser_raw.ml" in # 3810 "src/ocaml/preprocess/parser_raw.mly" ( _3 :: _1 ) -# 28731 "src/ocaml/preprocess/parser_raw.ml" +# 28724 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -28768,18 +28761,18 @@ module Tables = struct # 3782 "src/ocaml/preprocess/parser_raw.mly" ( None, _1 ) -# 28772 "src/ocaml/preprocess/parser_raw.ml" +# 28765 "src/ocaml/preprocess/parser_raw.ml" in let _1 = # 3796 "src/ocaml/preprocess/parser_raw.mly" ( None, _1 ) -# 28778 "src/ocaml/preprocess/parser_raw.ml" +# 28771 "src/ocaml/preprocess/parser_raw.ml" in # 3812 "src/ocaml/preprocess/parser_raw.mly" ( [ _3; _1 ] ) -# 28783 "src/ocaml/preprocess/parser_raw.ml" +# 28776 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -28819,7 +28812,7 @@ module Tables = struct let _1_inlined1 : ( # 1082 "src/ocaml/preprocess/parser_raw.mly" (string) -# 28823 "src/ocaml/preprocess/parser_raw.ml" +# 28816 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in let _1 : (Parsetree.pattern) = Obj.magic _1 in @@ -28831,18 +28824,18 @@ module Tables = struct # 3784 "src/ocaml/preprocess/parser_raw.mly" ( Some _1, _2 ) -# 28835 "src/ocaml/preprocess/parser_raw.ml" +# 28828 "src/ocaml/preprocess/parser_raw.ml" in let _1 = # 3796 "src/ocaml/preprocess/parser_raw.mly" ( None, _1 ) -# 28841 "src/ocaml/preprocess/parser_raw.ml" +# 28834 "src/ocaml/preprocess/parser_raw.ml" in # 3812 "src/ocaml/preprocess/parser_raw.mly" ( [ _3; _1 ] ) -# 28846 "src/ocaml/preprocess/parser_raw.ml" +# 28839 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -28881,7 +28874,7 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 28885 "src/ocaml/preprocess/parser_raw.ml" +# 28878 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in @@ -28895,18 +28888,18 @@ module Tables = struct # 3786 "src/ocaml/preprocess/parser_raw.mly" ( let loc = _loc_label_ in Some label, mkpatvar ~loc label ) -# 28899 "src/ocaml/preprocess/parser_raw.ml" +# 28892 "src/ocaml/preprocess/parser_raw.ml" in let _1 = # 3796 "src/ocaml/preprocess/parser_raw.mly" ( None, _1 ) -# 28905 "src/ocaml/preprocess/parser_raw.ml" +# 28898 "src/ocaml/preprocess/parser_raw.ml" in # 3812 "src/ocaml/preprocess/parser_raw.mly" ( [ _3; _1 ] ) -# 28910 "src/ocaml/preprocess/parser_raw.ml" +# 28903 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -28972,7 +28965,7 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 28976 "src/ocaml/preprocess/parser_raw.ml" +# 28969 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _2_inlined1 : unit = Obj.magic _2_inlined1 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in @@ -28991,18 +28984,18 @@ module Tables = struct let pat_loc = _startpos__2_, _endpos in let pat = mkpatvar ~loc:lbl_loc label in Some label, mkpat_with_modes ~loc:pat_loc ~modes:[] ~pat ~cty:(Some cty) ) -# 28995 "src/ocaml/preprocess/parser_raw.ml" +# 28988 "src/ocaml/preprocess/parser_raw.ml" in let _1 = # 3796 "src/ocaml/preprocess/parser_raw.mly" ( None, _1 ) -# 29001 "src/ocaml/preprocess/parser_raw.ml" +# 28994 "src/ocaml/preprocess/parser_raw.ml" in # 3812 "src/ocaml/preprocess/parser_raw.mly" ( [ _3; _1 ] ) -# 29006 "src/ocaml/preprocess/parser_raw.ml" +# 28999 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -29044,7 +29037,7 @@ module Tables = struct let _1 : ( # 1082 "src/ocaml/preprocess/parser_raw.mly" (string) -# 29048 "src/ocaml/preprocess/parser_raw.ml" +# 29041 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -29054,7 +29047,7 @@ module Tables = struct # 3782 "src/ocaml/preprocess/parser_raw.mly" ( None, _1 ) -# 29058 "src/ocaml/preprocess/parser_raw.ml" +# 29051 "src/ocaml/preprocess/parser_raw.ml" in let _1 = @@ -29062,13 +29055,13 @@ module Tables = struct # 3798 "src/ocaml/preprocess/parser_raw.mly" ( Some _1, _2 ) -# 29066 "src/ocaml/preprocess/parser_raw.ml" +# 29059 "src/ocaml/preprocess/parser_raw.ml" in # 3812 "src/ocaml/preprocess/parser_raw.mly" ( [ _3; _1 ] ) -# 29072 "src/ocaml/preprocess/parser_raw.ml" +# 29065 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -29114,14 +29107,14 @@ module Tables = struct let _1_inlined1 : ( # 1082 "src/ocaml/preprocess/parser_raw.mly" (string) -# 29118 "src/ocaml/preprocess/parser_raw.ml" +# 29111 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in let _2_inlined1 : (Parsetree.pattern) = Obj.magic _2_inlined1 in let _1 : ( # 1082 "src/ocaml/preprocess/parser_raw.mly" (string) -# 29125 "src/ocaml/preprocess/parser_raw.ml" +# 29118 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -29131,7 +29124,7 @@ module Tables = struct # 3784 "src/ocaml/preprocess/parser_raw.mly" ( Some _1, _2 ) -# 29135 "src/ocaml/preprocess/parser_raw.ml" +# 29128 "src/ocaml/preprocess/parser_raw.ml" in let _1 = @@ -29139,13 +29132,13 @@ module Tables = struct # 3798 "src/ocaml/preprocess/parser_raw.mly" ( Some _1, _2 ) -# 29143 "src/ocaml/preprocess/parser_raw.ml" +# 29136 "src/ocaml/preprocess/parser_raw.ml" in # 3812 "src/ocaml/preprocess/parser_raw.mly" ( [ _3; _1 ] ) -# 29149 "src/ocaml/preprocess/parser_raw.ml" +# 29142 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -29190,7 +29183,7 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 29194 "src/ocaml/preprocess/parser_raw.ml" +# 29187 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in @@ -29198,7 +29191,7 @@ module Tables = struct let _1 : ( # 1082 "src/ocaml/preprocess/parser_raw.mly" (string) -# 29202 "src/ocaml/preprocess/parser_raw.ml" +# 29195 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -29209,7 +29202,7 @@ module Tables = struct # 3786 "src/ocaml/preprocess/parser_raw.mly" ( let loc = _loc_label_ in Some label, mkpatvar ~loc label ) -# 29213 "src/ocaml/preprocess/parser_raw.ml" +# 29206 "src/ocaml/preprocess/parser_raw.ml" in let _1 = @@ -29217,13 +29210,13 @@ module Tables = struct # 3798 "src/ocaml/preprocess/parser_raw.mly" ( Some _1, _2 ) -# 29221 "src/ocaml/preprocess/parser_raw.ml" +# 29214 "src/ocaml/preprocess/parser_raw.ml" in # 3812 "src/ocaml/preprocess/parser_raw.mly" ( [ _3; _1 ] ) -# 29227 "src/ocaml/preprocess/parser_raw.ml" +# 29220 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -29295,7 +29288,7 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 29299 "src/ocaml/preprocess/parser_raw.ml" +# 29292 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _2_inlined2 : unit = Obj.magic _2_inlined2 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in @@ -29304,7 +29297,7 @@ module Tables = struct let _1 : ( # 1082 "src/ocaml/preprocess/parser_raw.mly" (string) -# 29308 "src/ocaml/preprocess/parser_raw.ml" +# 29301 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -29319,7 +29312,7 @@ module Tables = struct let pat_loc = _startpos__2_, _endpos in let pat = mkpatvar ~loc:lbl_loc label in Some label, mkpat_with_modes ~loc:pat_loc ~modes:[] ~pat ~cty:(Some cty) ) -# 29323 "src/ocaml/preprocess/parser_raw.ml" +# 29316 "src/ocaml/preprocess/parser_raw.ml" in let _1 = @@ -29327,13 +29320,13 @@ module Tables = struct # 3798 "src/ocaml/preprocess/parser_raw.mly" ( Some _1, _2 ) -# 29331 "src/ocaml/preprocess/parser_raw.ml" +# 29324 "src/ocaml/preprocess/parser_raw.ml" in # 3812 "src/ocaml/preprocess/parser_raw.mly" ( [ _3; _1 ] ) -# 29337 "src/ocaml/preprocess/parser_raw.ml" +# 29330 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -29374,7 +29367,7 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 29378 "src/ocaml/preprocess/parser_raw.ml" +# 29371 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -29385,7 +29378,7 @@ module Tables = struct # 3782 "src/ocaml/preprocess/parser_raw.mly" ( None, _1 ) -# 29389 "src/ocaml/preprocess/parser_raw.ml" +# 29382 "src/ocaml/preprocess/parser_raw.ml" in let _1 = @@ -29394,13 +29387,13 @@ module Tables = struct # 3800 "src/ocaml/preprocess/parser_raw.mly" ( let loc = _loc_label_ in Some label, mkpatvar ~loc label ) -# 29398 "src/ocaml/preprocess/parser_raw.ml" +# 29391 "src/ocaml/preprocess/parser_raw.ml" in # 3812 "src/ocaml/preprocess/parser_raw.mly" ( [ _3; _1 ] ) -# 29404 "src/ocaml/preprocess/parser_raw.ml" +# 29397 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -29446,13 +29439,13 @@ module Tables = struct let _1_inlined1 : ( # 1082 "src/ocaml/preprocess/parser_raw.mly" (string) -# 29450 "src/ocaml/preprocess/parser_raw.ml" +# 29443 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 29456 "src/ocaml/preprocess/parser_raw.ml" +# 29449 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -29463,7 +29456,7 @@ module Tables = struct # 3784 "src/ocaml/preprocess/parser_raw.mly" ( Some _1, _2 ) -# 29467 "src/ocaml/preprocess/parser_raw.ml" +# 29460 "src/ocaml/preprocess/parser_raw.ml" in let _1 = @@ -29472,13 +29465,13 @@ module Tables = struct # 3800 "src/ocaml/preprocess/parser_raw.mly" ( let loc = _loc_label_ in Some label, mkpatvar ~loc label ) -# 29476 "src/ocaml/preprocess/parser_raw.ml" +# 29469 "src/ocaml/preprocess/parser_raw.ml" in # 3812 "src/ocaml/preprocess/parser_raw.mly" ( [ _3; _1 ] ) -# 29482 "src/ocaml/preprocess/parser_raw.ml" +# 29475 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -29523,14 +29516,14 @@ module Tables = struct let label_inlined1 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 29527 "src/ocaml/preprocess/parser_raw.ml" +# 29520 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label_inlined1 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 29534 "src/ocaml/preprocess/parser_raw.ml" +# 29527 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -29543,7 +29536,7 @@ module Tables = struct # 3786 "src/ocaml/preprocess/parser_raw.mly" ( let loc = _loc_label_ in Some label, mkpatvar ~loc label ) -# 29547 "src/ocaml/preprocess/parser_raw.ml" +# 29540 "src/ocaml/preprocess/parser_raw.ml" in let _1 = @@ -29552,13 +29545,13 @@ module Tables = struct # 3800 "src/ocaml/preprocess/parser_raw.mly" ( let loc = _loc_label_ in Some label, mkpatvar ~loc label ) -# 29556 "src/ocaml/preprocess/parser_raw.ml" +# 29549 "src/ocaml/preprocess/parser_raw.ml" in # 3812 "src/ocaml/preprocess/parser_raw.mly" ( [ _3; _1 ] ) -# 29562 "src/ocaml/preprocess/parser_raw.ml" +# 29555 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -29630,7 +29623,7 @@ module Tables = struct let label_inlined1 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 29634 "src/ocaml/preprocess/parser_raw.ml" +# 29627 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label_inlined1 in let _2_inlined1 : unit = Obj.magic _2_inlined1 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in @@ -29638,7 +29631,7 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 29642 "src/ocaml/preprocess/parser_raw.ml" +# 29635 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -29654,7 +29647,7 @@ module Tables = struct let pat_loc = _startpos__2_, _endpos in let pat = mkpatvar ~loc:lbl_loc label in Some label, mkpat_with_modes ~loc:pat_loc ~modes:[] ~pat ~cty:(Some cty) ) -# 29658 "src/ocaml/preprocess/parser_raw.ml" +# 29651 "src/ocaml/preprocess/parser_raw.ml" in let _1 = @@ -29663,13 +29656,13 @@ module Tables = struct # 3800 "src/ocaml/preprocess/parser_raw.mly" ( let loc = _loc_label_ in Some label, mkpatvar ~loc label ) -# 29667 "src/ocaml/preprocess/parser_raw.ml" +# 29660 "src/ocaml/preprocess/parser_raw.ml" in # 3812 "src/ocaml/preprocess/parser_raw.mly" ( [ _3; _1 ] ) -# 29673 "src/ocaml/preprocess/parser_raw.ml" +# 29666 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -29737,7 +29730,7 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 29741 "src/ocaml/preprocess/parser_raw.ml" +# 29734 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _2_inlined1 : unit = Obj.magic _2_inlined1 in let _1 : unit = Obj.magic _1 in @@ -29749,7 +29742,7 @@ module Tables = struct # 3782 "src/ocaml/preprocess/parser_raw.mly" ( None, _1 ) -# 29753 "src/ocaml/preprocess/parser_raw.ml" +# 29746 "src/ocaml/preprocess/parser_raw.ml" in let _1 = @@ -29762,13 +29755,13 @@ module Tables = struct let pat_loc = _startpos__2_, _endpos in let pat = mkpatvar ~loc:lbl_loc label in Some label, mkpat_with_modes ~loc:pat_loc ~modes:[] ~pat ~cty:(Some cty) ) -# 29766 "src/ocaml/preprocess/parser_raw.ml" +# 29759 "src/ocaml/preprocess/parser_raw.ml" in # 3812 "src/ocaml/preprocess/parser_raw.mly" ( [ _3; _1 ] ) -# 29772 "src/ocaml/preprocess/parser_raw.ml" +# 29765 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -29838,7 +29831,7 @@ module Tables = struct let _1_inlined1 : ( # 1082 "src/ocaml/preprocess/parser_raw.mly" (string) -# 29842 "src/ocaml/preprocess/parser_raw.ml" +# 29835 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in let _6 : unit = Obj.magic _6 in @@ -29847,7 +29840,7 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 29851 "src/ocaml/preprocess/parser_raw.ml" +# 29844 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _2_inlined1 : unit = Obj.magic _2_inlined1 in let _1 : unit = Obj.magic _1 in @@ -29859,7 +29852,7 @@ module Tables = struct # 3784 "src/ocaml/preprocess/parser_raw.mly" ( Some _1, _2 ) -# 29863 "src/ocaml/preprocess/parser_raw.ml" +# 29856 "src/ocaml/preprocess/parser_raw.ml" in let _1 = @@ -29872,13 +29865,13 @@ module Tables = struct let pat_loc = _startpos__2_, _endpos in let pat = mkpatvar ~loc:lbl_loc label in Some label, mkpat_with_modes ~loc:pat_loc ~modes:[] ~pat ~cty:(Some cty) ) -# 29876 "src/ocaml/preprocess/parser_raw.ml" +# 29869 "src/ocaml/preprocess/parser_raw.ml" in # 3812 "src/ocaml/preprocess/parser_raw.mly" ( [ _3; _1 ] ) -# 29882 "src/ocaml/preprocess/parser_raw.ml" +# 29875 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -29947,7 +29940,7 @@ module Tables = struct let label_inlined1 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 29951 "src/ocaml/preprocess/parser_raw.ml" +# 29944 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label_inlined1 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in @@ -29957,7 +29950,7 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 29961 "src/ocaml/preprocess/parser_raw.ml" +# 29954 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _2_inlined1 : unit = Obj.magic _2_inlined1 in let _1 : unit = Obj.magic _1 in @@ -29971,7 +29964,7 @@ module Tables = struct # 3786 "src/ocaml/preprocess/parser_raw.mly" ( let loc = _loc_label_ in Some label, mkpatvar ~loc label ) -# 29975 "src/ocaml/preprocess/parser_raw.ml" +# 29968 "src/ocaml/preprocess/parser_raw.ml" in let _1 = @@ -29984,13 +29977,13 @@ module Tables = struct let pat_loc = _startpos__2_, _endpos in let pat = mkpatvar ~loc:lbl_loc label in Some label, mkpat_with_modes ~loc:pat_loc ~modes:[] ~pat ~cty:(Some cty) ) -# 29988 "src/ocaml/preprocess/parser_raw.ml" +# 29981 "src/ocaml/preprocess/parser_raw.ml" in # 3812 "src/ocaml/preprocess/parser_raw.mly" ( [ _3; _1 ] ) -# 29994 "src/ocaml/preprocess/parser_raw.ml" +# 29987 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -30086,7 +30079,7 @@ module Tables = struct let label_inlined1 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 30090 "src/ocaml/preprocess/parser_raw.ml" +# 30083 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label_inlined1 in let _2_inlined2 : unit = Obj.magic _2_inlined2 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in @@ -30097,7 +30090,7 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 30101 "src/ocaml/preprocess/parser_raw.ml" +# 30094 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _2_inlined1 : unit = Obj.magic _2_inlined1 in let _1 : unit = Obj.magic _1 in @@ -30114,7 +30107,7 @@ module Tables = struct let pat_loc = _startpos__2_, _endpos in let pat = mkpatvar ~loc:lbl_loc label in Some label, mkpat_with_modes ~loc:pat_loc ~modes:[] ~pat ~cty:(Some cty) ) -# 30118 "src/ocaml/preprocess/parser_raw.ml" +# 30111 "src/ocaml/preprocess/parser_raw.ml" in let _1 = @@ -30127,13 +30120,13 @@ module Tables = struct let pat_loc = _startpos__2_, _endpos in let pat = mkpatvar ~loc:lbl_loc label in Some label, mkpat_with_modes ~loc:pat_loc ~modes:[] ~pat ~cty:(Some cty) ) -# 30131 "src/ocaml/preprocess/parser_raw.ml" +# 30124 "src/ocaml/preprocess/parser_raw.ml" in # 3812 "src/ocaml/preprocess/parser_raw.mly" ( [ _3; _1 ] ) -# 30137 "src/ocaml/preprocess/parser_raw.ml" +# 30130 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -30174,13 +30167,13 @@ module Tables = struct # 3782 "src/ocaml/preprocess/parser_raw.mly" ( None, _1 ) -# 30178 "src/ocaml/preprocess/parser_raw.ml" +# 30171 "src/ocaml/preprocess/parser_raw.ml" in # 3810 "src/ocaml/preprocess/parser_raw.mly" ( _3 :: _1 ) -# 30184 "src/ocaml/preprocess/parser_raw.ml" +# 30177 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -30220,7 +30213,7 @@ module Tables = struct let _1_inlined1 : ( # 1082 "src/ocaml/preprocess/parser_raw.mly" (string) -# 30224 "src/ocaml/preprocess/parser_raw.ml" +# 30217 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in let _1 : ((string option * Parsetree.pattern) list) = Obj.magic _1 in @@ -30232,13 +30225,13 @@ module Tables = struct # 3784 "src/ocaml/preprocess/parser_raw.mly" ( Some _1, _2 ) -# 30236 "src/ocaml/preprocess/parser_raw.ml" +# 30229 "src/ocaml/preprocess/parser_raw.ml" in # 3810 "src/ocaml/preprocess/parser_raw.mly" ( _3 :: _1 ) -# 30242 "src/ocaml/preprocess/parser_raw.ml" +# 30235 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -30277,7 +30270,7 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 30281 "src/ocaml/preprocess/parser_raw.ml" +# 30274 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in @@ -30291,13 +30284,13 @@ module Tables = struct # 3786 "src/ocaml/preprocess/parser_raw.mly" ( let loc = _loc_label_ in Some label, mkpatvar ~loc label ) -# 30295 "src/ocaml/preprocess/parser_raw.ml" +# 30288 "src/ocaml/preprocess/parser_raw.ml" in # 3810 "src/ocaml/preprocess/parser_raw.mly" ( _3 :: _1 ) -# 30301 "src/ocaml/preprocess/parser_raw.ml" +# 30294 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -30363,7 +30356,7 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 30367 "src/ocaml/preprocess/parser_raw.ml" +# 30360 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _2_inlined1 : unit = Obj.magic _2_inlined1 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in @@ -30382,13 +30375,13 @@ module Tables = struct let pat_loc = _startpos__2_, _endpos in let pat = mkpatvar ~loc:lbl_loc label in Some label, mkpat_with_modes ~loc:pat_loc ~modes:[] ~pat ~cty:(Some cty) ) -# 30386 "src/ocaml/preprocess/parser_raw.ml" +# 30379 "src/ocaml/preprocess/parser_raw.ml" in # 3810 "src/ocaml/preprocess/parser_raw.mly" ( _3 :: _1 ) -# 30392 "src/ocaml/preprocess/parser_raw.ml" +# 30385 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -30429,18 +30422,18 @@ module Tables = struct # 3782 "src/ocaml/preprocess/parser_raw.mly" ( None, _1 ) -# 30433 "src/ocaml/preprocess/parser_raw.ml" +# 30426 "src/ocaml/preprocess/parser_raw.ml" in let _1 = # 3796 "src/ocaml/preprocess/parser_raw.mly" ( None, _1 ) -# 30439 "src/ocaml/preprocess/parser_raw.ml" +# 30432 "src/ocaml/preprocess/parser_raw.ml" in # 3812 "src/ocaml/preprocess/parser_raw.mly" ( [ _3; _1 ] ) -# 30444 "src/ocaml/preprocess/parser_raw.ml" +# 30437 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -30480,7 +30473,7 @@ module Tables = struct let _1_inlined1 : ( # 1082 "src/ocaml/preprocess/parser_raw.mly" (string) -# 30484 "src/ocaml/preprocess/parser_raw.ml" +# 30477 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in let _1 : (Parsetree.pattern) = Obj.magic _1 in @@ -30492,18 +30485,18 @@ module Tables = struct # 3784 "src/ocaml/preprocess/parser_raw.mly" ( Some _1, _2 ) -# 30496 "src/ocaml/preprocess/parser_raw.ml" +# 30489 "src/ocaml/preprocess/parser_raw.ml" in let _1 = # 3796 "src/ocaml/preprocess/parser_raw.mly" ( None, _1 ) -# 30502 "src/ocaml/preprocess/parser_raw.ml" +# 30495 "src/ocaml/preprocess/parser_raw.ml" in # 3812 "src/ocaml/preprocess/parser_raw.mly" ( [ _3; _1 ] ) -# 30507 "src/ocaml/preprocess/parser_raw.ml" +# 30500 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -30542,7 +30535,7 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 30546 "src/ocaml/preprocess/parser_raw.ml" +# 30539 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in @@ -30556,18 +30549,18 @@ module Tables = struct # 3786 "src/ocaml/preprocess/parser_raw.mly" ( let loc = _loc_label_ in Some label, mkpatvar ~loc label ) -# 30560 "src/ocaml/preprocess/parser_raw.ml" +# 30553 "src/ocaml/preprocess/parser_raw.ml" in let _1 = # 3796 "src/ocaml/preprocess/parser_raw.mly" ( None, _1 ) -# 30566 "src/ocaml/preprocess/parser_raw.ml" +# 30559 "src/ocaml/preprocess/parser_raw.ml" in # 3812 "src/ocaml/preprocess/parser_raw.mly" ( [ _3; _1 ] ) -# 30571 "src/ocaml/preprocess/parser_raw.ml" +# 30564 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -30633,7 +30626,7 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 30637 "src/ocaml/preprocess/parser_raw.ml" +# 30630 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _2_inlined1 : unit = Obj.magic _2_inlined1 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in @@ -30652,18 +30645,18 @@ module Tables = struct let pat_loc = _startpos__2_, _endpos in let pat = mkpatvar ~loc:lbl_loc label in Some label, mkpat_with_modes ~loc:pat_loc ~modes:[] ~pat ~cty:(Some cty) ) -# 30656 "src/ocaml/preprocess/parser_raw.ml" +# 30649 "src/ocaml/preprocess/parser_raw.ml" in let _1 = # 3796 "src/ocaml/preprocess/parser_raw.mly" ( None, _1 ) -# 30662 "src/ocaml/preprocess/parser_raw.ml" +# 30655 "src/ocaml/preprocess/parser_raw.ml" in # 3812 "src/ocaml/preprocess/parser_raw.mly" ( [ _3; _1 ] ) -# 30667 "src/ocaml/preprocess/parser_raw.ml" +# 30660 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -30705,7 +30698,7 @@ module Tables = struct let _1 : ( # 1082 "src/ocaml/preprocess/parser_raw.mly" (string) -# 30709 "src/ocaml/preprocess/parser_raw.ml" +# 30702 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -30715,7 +30708,7 @@ module Tables = struct # 3782 "src/ocaml/preprocess/parser_raw.mly" ( None, _1 ) -# 30719 "src/ocaml/preprocess/parser_raw.ml" +# 30712 "src/ocaml/preprocess/parser_raw.ml" in let _1 = @@ -30723,13 +30716,13 @@ module Tables = struct # 3798 "src/ocaml/preprocess/parser_raw.mly" ( Some _1, _2 ) -# 30727 "src/ocaml/preprocess/parser_raw.ml" +# 30720 "src/ocaml/preprocess/parser_raw.ml" in # 3812 "src/ocaml/preprocess/parser_raw.mly" ( [ _3; _1 ] ) -# 30733 "src/ocaml/preprocess/parser_raw.ml" +# 30726 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -30775,14 +30768,14 @@ module Tables = struct let _1_inlined1 : ( # 1082 "src/ocaml/preprocess/parser_raw.mly" (string) -# 30779 "src/ocaml/preprocess/parser_raw.ml" +# 30772 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in let _2_inlined1 : (Parsetree.pattern) = Obj.magic _2_inlined1 in let _1 : ( # 1082 "src/ocaml/preprocess/parser_raw.mly" (string) -# 30786 "src/ocaml/preprocess/parser_raw.ml" +# 30779 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -30792,7 +30785,7 @@ module Tables = struct # 3784 "src/ocaml/preprocess/parser_raw.mly" ( Some _1, _2 ) -# 30796 "src/ocaml/preprocess/parser_raw.ml" +# 30789 "src/ocaml/preprocess/parser_raw.ml" in let _1 = @@ -30800,13 +30793,13 @@ module Tables = struct # 3798 "src/ocaml/preprocess/parser_raw.mly" ( Some _1, _2 ) -# 30804 "src/ocaml/preprocess/parser_raw.ml" +# 30797 "src/ocaml/preprocess/parser_raw.ml" in # 3812 "src/ocaml/preprocess/parser_raw.mly" ( [ _3; _1 ] ) -# 30810 "src/ocaml/preprocess/parser_raw.ml" +# 30803 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -30851,7 +30844,7 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 30855 "src/ocaml/preprocess/parser_raw.ml" +# 30848 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in @@ -30859,7 +30852,7 @@ module Tables = struct let _1 : ( # 1082 "src/ocaml/preprocess/parser_raw.mly" (string) -# 30863 "src/ocaml/preprocess/parser_raw.ml" +# 30856 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -30870,7 +30863,7 @@ module Tables = struct # 3786 "src/ocaml/preprocess/parser_raw.mly" ( let loc = _loc_label_ in Some label, mkpatvar ~loc label ) -# 30874 "src/ocaml/preprocess/parser_raw.ml" +# 30867 "src/ocaml/preprocess/parser_raw.ml" in let _1 = @@ -30878,13 +30871,13 @@ module Tables = struct # 3798 "src/ocaml/preprocess/parser_raw.mly" ( Some _1, _2 ) -# 30882 "src/ocaml/preprocess/parser_raw.ml" +# 30875 "src/ocaml/preprocess/parser_raw.ml" in # 3812 "src/ocaml/preprocess/parser_raw.mly" ( [ _3; _1 ] ) -# 30888 "src/ocaml/preprocess/parser_raw.ml" +# 30881 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -30956,7 +30949,7 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 30960 "src/ocaml/preprocess/parser_raw.ml" +# 30953 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _2_inlined2 : unit = Obj.magic _2_inlined2 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in @@ -30965,7 +30958,7 @@ module Tables = struct let _1 : ( # 1082 "src/ocaml/preprocess/parser_raw.mly" (string) -# 30969 "src/ocaml/preprocess/parser_raw.ml" +# 30962 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -30980,7 +30973,7 @@ module Tables = struct let pat_loc = _startpos__2_, _endpos in let pat = mkpatvar ~loc:lbl_loc label in Some label, mkpat_with_modes ~loc:pat_loc ~modes:[] ~pat ~cty:(Some cty) ) -# 30984 "src/ocaml/preprocess/parser_raw.ml" +# 30977 "src/ocaml/preprocess/parser_raw.ml" in let _1 = @@ -30988,13 +30981,13 @@ module Tables = struct # 3798 "src/ocaml/preprocess/parser_raw.mly" ( Some _1, _2 ) -# 30992 "src/ocaml/preprocess/parser_raw.ml" +# 30985 "src/ocaml/preprocess/parser_raw.ml" in # 3812 "src/ocaml/preprocess/parser_raw.mly" ( [ _3; _1 ] ) -# 30998 "src/ocaml/preprocess/parser_raw.ml" +# 30991 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -31035,7 +31028,7 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 31039 "src/ocaml/preprocess/parser_raw.ml" +# 31032 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -31046,7 +31039,7 @@ module Tables = struct # 3782 "src/ocaml/preprocess/parser_raw.mly" ( None, _1 ) -# 31050 "src/ocaml/preprocess/parser_raw.ml" +# 31043 "src/ocaml/preprocess/parser_raw.ml" in let _1 = @@ -31055,13 +31048,13 @@ module Tables = struct # 3800 "src/ocaml/preprocess/parser_raw.mly" ( let loc = _loc_label_ in Some label, mkpatvar ~loc label ) -# 31059 "src/ocaml/preprocess/parser_raw.ml" +# 31052 "src/ocaml/preprocess/parser_raw.ml" in # 3812 "src/ocaml/preprocess/parser_raw.mly" ( [ _3; _1 ] ) -# 31065 "src/ocaml/preprocess/parser_raw.ml" +# 31058 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -31107,13 +31100,13 @@ module Tables = struct let _1_inlined1 : ( # 1082 "src/ocaml/preprocess/parser_raw.mly" (string) -# 31111 "src/ocaml/preprocess/parser_raw.ml" +# 31104 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 31117 "src/ocaml/preprocess/parser_raw.ml" +# 31110 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -31124,7 +31117,7 @@ module Tables = struct # 3784 "src/ocaml/preprocess/parser_raw.mly" ( Some _1, _2 ) -# 31128 "src/ocaml/preprocess/parser_raw.ml" +# 31121 "src/ocaml/preprocess/parser_raw.ml" in let _1 = @@ -31133,13 +31126,13 @@ module Tables = struct # 3800 "src/ocaml/preprocess/parser_raw.mly" ( let loc = _loc_label_ in Some label, mkpatvar ~loc label ) -# 31137 "src/ocaml/preprocess/parser_raw.ml" +# 31130 "src/ocaml/preprocess/parser_raw.ml" in # 3812 "src/ocaml/preprocess/parser_raw.mly" ( [ _3; _1 ] ) -# 31143 "src/ocaml/preprocess/parser_raw.ml" +# 31136 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -31184,14 +31177,14 @@ module Tables = struct let label_inlined1 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 31188 "src/ocaml/preprocess/parser_raw.ml" +# 31181 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label_inlined1 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 31195 "src/ocaml/preprocess/parser_raw.ml" +# 31188 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -31204,7 +31197,7 @@ module Tables = struct # 3786 "src/ocaml/preprocess/parser_raw.mly" ( let loc = _loc_label_ in Some label, mkpatvar ~loc label ) -# 31208 "src/ocaml/preprocess/parser_raw.ml" +# 31201 "src/ocaml/preprocess/parser_raw.ml" in let _1 = @@ -31213,13 +31206,13 @@ module Tables = struct # 3800 "src/ocaml/preprocess/parser_raw.mly" ( let loc = _loc_label_ in Some label, mkpatvar ~loc label ) -# 31217 "src/ocaml/preprocess/parser_raw.ml" +# 31210 "src/ocaml/preprocess/parser_raw.ml" in # 3812 "src/ocaml/preprocess/parser_raw.mly" ( [ _3; _1 ] ) -# 31223 "src/ocaml/preprocess/parser_raw.ml" +# 31216 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -31291,7 +31284,7 @@ module Tables = struct let label_inlined1 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 31295 "src/ocaml/preprocess/parser_raw.ml" +# 31288 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label_inlined1 in let _2_inlined1 : unit = Obj.magic _2_inlined1 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in @@ -31299,7 +31292,7 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 31303 "src/ocaml/preprocess/parser_raw.ml" +# 31296 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -31315,7 +31308,7 @@ module Tables = struct let pat_loc = _startpos__2_, _endpos in let pat = mkpatvar ~loc:lbl_loc label in Some label, mkpat_with_modes ~loc:pat_loc ~modes:[] ~pat ~cty:(Some cty) ) -# 31319 "src/ocaml/preprocess/parser_raw.ml" +# 31312 "src/ocaml/preprocess/parser_raw.ml" in let _1 = @@ -31324,13 +31317,13 @@ module Tables = struct # 3800 "src/ocaml/preprocess/parser_raw.mly" ( let loc = _loc_label_ in Some label, mkpatvar ~loc label ) -# 31328 "src/ocaml/preprocess/parser_raw.ml" +# 31321 "src/ocaml/preprocess/parser_raw.ml" in # 3812 "src/ocaml/preprocess/parser_raw.mly" ( [ _3; _1 ] ) -# 31334 "src/ocaml/preprocess/parser_raw.ml" +# 31327 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -31398,7 +31391,7 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 31402 "src/ocaml/preprocess/parser_raw.ml" +# 31395 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _2_inlined1 : unit = Obj.magic _2_inlined1 in let _1 : unit = Obj.magic _1 in @@ -31410,7 +31403,7 @@ module Tables = struct # 3782 "src/ocaml/preprocess/parser_raw.mly" ( None, _1 ) -# 31414 "src/ocaml/preprocess/parser_raw.ml" +# 31407 "src/ocaml/preprocess/parser_raw.ml" in let _1 = @@ -31423,13 +31416,13 @@ module Tables = struct let pat_loc = _startpos__2_, _endpos in let pat = mkpatvar ~loc:lbl_loc label in Some label, mkpat_with_modes ~loc:pat_loc ~modes:[] ~pat ~cty:(Some cty) ) -# 31427 "src/ocaml/preprocess/parser_raw.ml" +# 31420 "src/ocaml/preprocess/parser_raw.ml" in # 3812 "src/ocaml/preprocess/parser_raw.mly" ( [ _3; _1 ] ) -# 31433 "src/ocaml/preprocess/parser_raw.ml" +# 31426 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -31499,7 +31492,7 @@ module Tables = struct let _1_inlined1 : ( # 1082 "src/ocaml/preprocess/parser_raw.mly" (string) -# 31503 "src/ocaml/preprocess/parser_raw.ml" +# 31496 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in let _6 : unit = Obj.magic _6 in @@ -31508,7 +31501,7 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 31512 "src/ocaml/preprocess/parser_raw.ml" +# 31505 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _2_inlined1 : unit = Obj.magic _2_inlined1 in let _1 : unit = Obj.magic _1 in @@ -31520,7 +31513,7 @@ module Tables = struct # 3784 "src/ocaml/preprocess/parser_raw.mly" ( Some _1, _2 ) -# 31524 "src/ocaml/preprocess/parser_raw.ml" +# 31517 "src/ocaml/preprocess/parser_raw.ml" in let _1 = @@ -31533,13 +31526,13 @@ module Tables = struct let pat_loc = _startpos__2_, _endpos in let pat = mkpatvar ~loc:lbl_loc label in Some label, mkpat_with_modes ~loc:pat_loc ~modes:[] ~pat ~cty:(Some cty) ) -# 31537 "src/ocaml/preprocess/parser_raw.ml" +# 31530 "src/ocaml/preprocess/parser_raw.ml" in # 3812 "src/ocaml/preprocess/parser_raw.mly" ( [ _3; _1 ] ) -# 31543 "src/ocaml/preprocess/parser_raw.ml" +# 31536 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -31608,7 +31601,7 @@ module Tables = struct let label_inlined1 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 31612 "src/ocaml/preprocess/parser_raw.ml" +# 31605 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label_inlined1 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in @@ -31618,7 +31611,7 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 31622 "src/ocaml/preprocess/parser_raw.ml" +# 31615 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _2_inlined1 : unit = Obj.magic _2_inlined1 in let _1 : unit = Obj.magic _1 in @@ -31632,7 +31625,7 @@ module Tables = struct # 3786 "src/ocaml/preprocess/parser_raw.mly" ( let loc = _loc_label_ in Some label, mkpatvar ~loc label ) -# 31636 "src/ocaml/preprocess/parser_raw.ml" +# 31629 "src/ocaml/preprocess/parser_raw.ml" in let _1 = @@ -31645,13 +31638,13 @@ module Tables = struct let pat_loc = _startpos__2_, _endpos in let pat = mkpatvar ~loc:lbl_loc label in Some label, mkpat_with_modes ~loc:pat_loc ~modes:[] ~pat ~cty:(Some cty) ) -# 31649 "src/ocaml/preprocess/parser_raw.ml" +# 31642 "src/ocaml/preprocess/parser_raw.ml" in # 3812 "src/ocaml/preprocess/parser_raw.mly" ( [ _3; _1 ] ) -# 31655 "src/ocaml/preprocess/parser_raw.ml" +# 31648 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -31747,7 +31740,7 @@ module Tables = struct let label_inlined1 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 31751 "src/ocaml/preprocess/parser_raw.ml" +# 31744 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label_inlined1 in let _2_inlined2 : unit = Obj.magic _2_inlined2 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in @@ -31758,7 +31751,7 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 31762 "src/ocaml/preprocess/parser_raw.ml" +# 31755 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _2_inlined1 : unit = Obj.magic _2_inlined1 in let _1 : unit = Obj.magic _1 in @@ -31775,7 +31768,7 @@ module Tables = struct let pat_loc = _startpos__2_, _endpos in let pat = mkpatvar ~loc:lbl_loc label in Some label, mkpat_with_modes ~loc:pat_loc ~modes:[] ~pat ~cty:(Some cty) ) -# 31779 "src/ocaml/preprocess/parser_raw.ml" +# 31772 "src/ocaml/preprocess/parser_raw.ml" in let _1 = @@ -31788,13 +31781,13 @@ module Tables = struct let pat_loc = _startpos__2_, _endpos in let pat = mkpatvar ~loc:lbl_loc label in Some label, mkpat_with_modes ~loc:pat_loc ~modes:[] ~pat ~cty:(Some cty) ) -# 31792 "src/ocaml/preprocess/parser_raw.ml" +# 31785 "src/ocaml/preprocess/parser_raw.ml" in # 3812 "src/ocaml/preprocess/parser_raw.mly" ( [ _3; _1 ] ) -# 31798 "src/ocaml/preprocess/parser_raw.ml" +# 31791 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -31821,7 +31814,7 @@ module Tables = struct Parsetree.value_constraint option * Parsetree.modes * bool) = # 3409 "src/ocaml/preprocess/parser_raw.mly" ( let p,e,c,modes = _1 in (p,e,c,modes,false) ) -# 31825 "src/ocaml/preprocess/parser_raw.ml" +# 31818 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -31850,7 +31843,7 @@ module Tables = struct # 3412 "src/ocaml/preprocess/parser_raw.mly" ( (mkpatvar ~loc:_loc ~attrs:[pun_attr] _1, ghexpvar ~loc:_loc ~attrs:[pun_attr] _1, None, [], true) ) -# 31854 "src/ocaml/preprocess/parser_raw.ml" +# 31847 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -31885,7 +31878,7 @@ module Tables = struct # 3492 "src/ocaml/preprocess/parser_raw.mly" (_1 []) -# 31889 "src/ocaml/preprocess/parser_raw.ml" +# 31882 "src/ocaml/preprocess/parser_raw.ml" in let _1 = @@ -31895,13 +31888,13 @@ module Tables = struct # 3335 "src/ocaml/preprocess/parser_raw.mly" ( mkpatvar ~loc:_sloc _1 ) -# 31899 "src/ocaml/preprocess/parser_raw.ml" +# 31892 "src/ocaml/preprocess/parser_raw.ml" in # 3345 "src/ocaml/preprocess/parser_raw.mly" ( (_1, _2, None, []) ) -# 31905 "src/ocaml/preprocess/parser_raw.ml" +# 31898 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -31951,19 +31944,19 @@ module Tables = struct let _2 = # 4699 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 31955 "src/ocaml/preprocess/parser_raw.ml" +# 31948 "src/ocaml/preprocess/parser_raw.ml" in # 3686 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 31960 "src/ocaml/preprocess/parser_raw.ml" +# 31953 "src/ocaml/preprocess/parser_raw.ml" in # 3691 "src/ocaml/preprocess/parser_raw.mly" ( let ty, modes = _1 in Some ty, modes ) -# 31967 "src/ocaml/preprocess/parser_raw.ml" +# 31960 "src/ocaml/preprocess/parser_raw.ml" in let _2 = @@ -31973,13 +31966,13 @@ module Tables = struct # 3335 "src/ocaml/preprocess/parser_raw.mly" ( mkpatvar ~loc:_sloc _1 ) -# 31977 "src/ocaml/preprocess/parser_raw.ml" +# 31970 "src/ocaml/preprocess/parser_raw.ml" in let modes0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 31983 "src/ocaml/preprocess/parser_raw.ml" +# 31976 "src/ocaml/preprocess/parser_raw.ml" in # 3349 "src/ocaml/preprocess/parser_raw.mly" @@ -31995,7 +31988,7 @@ module Tables = struct let modes = modes0 @ modes1 in (v, _5, t, modes) ) -# 31999 "src/ocaml/preprocess/parser_raw.ml" +# 31992 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -32054,20 +32047,20 @@ module Tables = struct # 4700 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 32058 "src/ocaml/preprocess/parser_raw.ml" +# 32051 "src/ocaml/preprocess/parser_raw.ml" in # 3686 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 32064 "src/ocaml/preprocess/parser_raw.ml" +# 32057 "src/ocaml/preprocess/parser_raw.ml" in # 3691 "src/ocaml/preprocess/parser_raw.mly" ( let ty, modes = _1 in Some ty, modes ) -# 32071 "src/ocaml/preprocess/parser_raw.ml" +# 32064 "src/ocaml/preprocess/parser_raw.ml" in let _2 = @@ -32077,13 +32070,13 @@ module Tables = struct # 3335 "src/ocaml/preprocess/parser_raw.mly" ( mkpatvar ~loc:_sloc _1 ) -# 32081 "src/ocaml/preprocess/parser_raw.ml" +# 32074 "src/ocaml/preprocess/parser_raw.ml" in let modes0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 32087 "src/ocaml/preprocess/parser_raw.ml" +# 32080 "src/ocaml/preprocess/parser_raw.ml" in # 3349 "src/ocaml/preprocess/parser_raw.mly" @@ -32099,7 +32092,7 @@ module Tables = struct let modes = modes0 @ modes1 in (v, _5, t, modes) ) -# 32103 "src/ocaml/preprocess/parser_raw.ml" +# 32096 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -32148,7 +32141,7 @@ module Tables = struct # 3694 "src/ocaml/preprocess/parser_raw.mly" ( None, _1 ) -# 32152 "src/ocaml/preprocess/parser_raw.ml" +# 32145 "src/ocaml/preprocess/parser_raw.ml" in let _2 = @@ -32158,13 +32151,13 @@ module Tables = struct # 3335 "src/ocaml/preprocess/parser_raw.mly" ( mkpatvar ~loc:_sloc _1 ) -# 32162 "src/ocaml/preprocess/parser_raw.ml" +# 32155 "src/ocaml/preprocess/parser_raw.ml" in let modes0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 32168 "src/ocaml/preprocess/parser_raw.ml" +# 32161 "src/ocaml/preprocess/parser_raw.ml" in # 3349 "src/ocaml/preprocess/parser_raw.mly" @@ -32180,7 +32173,7 @@ module Tables = struct let modes = modes0 @ modes1 in (v, _5, t, modes) ) -# 32184 "src/ocaml/preprocess/parser_raw.ml" +# 32177 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -32237,19 +32230,19 @@ module Tables = struct let _2 = # 4699 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 32241 "src/ocaml/preprocess/parser_raw.ml" +# 32234 "src/ocaml/preprocess/parser_raw.ml" in # 3686 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 32246 "src/ocaml/preprocess/parser_raw.ml" +# 32239 "src/ocaml/preprocess/parser_raw.ml" in # 3691 "src/ocaml/preprocess/parser_raw.mly" ( let ty, modes = _1 in Some ty, modes ) -# 32253 "src/ocaml/preprocess/parser_raw.ml" +# 32246 "src/ocaml/preprocess/parser_raw.ml" in let _2 = @@ -32260,19 +32253,19 @@ module Tables = struct # 3335 "src/ocaml/preprocess/parser_raw.mly" ( mkpatvar ~loc:_sloc _1 ) -# 32264 "src/ocaml/preprocess/parser_raw.ml" +# 32257 "src/ocaml/preprocess/parser_raw.ml" in let modes0 = let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 32271 "src/ocaml/preprocess/parser_raw.ml" +# 32264 "src/ocaml/preprocess/parser_raw.ml" in # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 32276 "src/ocaml/preprocess/parser_raw.ml" +# 32269 "src/ocaml/preprocess/parser_raw.ml" in @@ -32289,7 +32282,7 @@ module Tables = struct let modes = modes0 @ modes1 in (v, _5, t, modes) ) -# 32293 "src/ocaml/preprocess/parser_raw.ml" +# 32286 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -32355,20 +32348,20 @@ module Tables = struct # 4700 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 32359 "src/ocaml/preprocess/parser_raw.ml" +# 32352 "src/ocaml/preprocess/parser_raw.ml" in # 3686 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 32365 "src/ocaml/preprocess/parser_raw.ml" +# 32358 "src/ocaml/preprocess/parser_raw.ml" in # 3691 "src/ocaml/preprocess/parser_raw.mly" ( let ty, modes = _1 in Some ty, modes ) -# 32372 "src/ocaml/preprocess/parser_raw.ml" +# 32365 "src/ocaml/preprocess/parser_raw.ml" in let _2 = @@ -32379,19 +32372,19 @@ module Tables = struct # 3335 "src/ocaml/preprocess/parser_raw.mly" ( mkpatvar ~loc:_sloc _1 ) -# 32383 "src/ocaml/preprocess/parser_raw.ml" +# 32376 "src/ocaml/preprocess/parser_raw.ml" in let modes0 = let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 32390 "src/ocaml/preprocess/parser_raw.ml" +# 32383 "src/ocaml/preprocess/parser_raw.ml" in # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 32395 "src/ocaml/preprocess/parser_raw.ml" +# 32388 "src/ocaml/preprocess/parser_raw.ml" in @@ -32408,7 +32401,7 @@ module Tables = struct let modes = modes0 @ modes1 in (v, _5, t, modes) ) -# 32412 "src/ocaml/preprocess/parser_raw.ml" +# 32405 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -32464,7 +32457,7 @@ module Tables = struct # 3694 "src/ocaml/preprocess/parser_raw.mly" ( None, _1 ) -# 32468 "src/ocaml/preprocess/parser_raw.ml" +# 32461 "src/ocaml/preprocess/parser_raw.ml" in let _2 = @@ -32475,19 +32468,19 @@ module Tables = struct # 3335 "src/ocaml/preprocess/parser_raw.mly" ( mkpatvar ~loc:_sloc _1 ) -# 32479 "src/ocaml/preprocess/parser_raw.ml" +# 32472 "src/ocaml/preprocess/parser_raw.ml" in let modes0 = let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 32486 "src/ocaml/preprocess/parser_raw.ml" +# 32479 "src/ocaml/preprocess/parser_raw.ml" in # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 32491 "src/ocaml/preprocess/parser_raw.ml" +# 32484 "src/ocaml/preprocess/parser_raw.ml" in @@ -32504,7 +32497,7 @@ module Tables = struct let modes = modes0 @ modes1 in (v, _5, t, modes) ) -# 32508 "src/ocaml/preprocess/parser_raw.ml" +# 32501 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -32572,7 +32565,7 @@ module Tables = struct Parsetree.value_constraint option * Parsetree.modes) = let modes1 = # 4699 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 32576 "src/ocaml/preprocess/parser_raw.ml" +# 32569 "src/ocaml/preprocess/parser_raw.ml" in let _4 = let _3 = _3_inlined1 in @@ -32581,24 +32574,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 32585 "src/ocaml/preprocess/parser_raw.ml" +# 32578 "src/ocaml/preprocess/parser_raw.ml" in # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 32590 "src/ocaml/preprocess/parser_raw.ml" +# 32583 "src/ocaml/preprocess/parser_raw.ml" in # 4481 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 32596 "src/ocaml/preprocess/parser_raw.ml" +# 32589 "src/ocaml/preprocess/parser_raw.ml" in # 4485 "src/ocaml/preprocess/parser_raw.mly" ( (_1, _3) ) -# 32602 "src/ocaml/preprocess/parser_raw.ml" +# 32595 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__4_, _startpos__4_) = (_endpos__3_inlined1_, _startpos_xs_) in @@ -32609,13 +32602,13 @@ module Tables = struct # 3335 "src/ocaml/preprocess/parser_raw.mly" ( mkpatvar ~loc:_sloc _1 ) -# 32613 "src/ocaml/preprocess/parser_raw.ml" +# 32606 "src/ocaml/preprocess/parser_raw.ml" in let modes0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 32619 "src/ocaml/preprocess/parser_raw.ml" +# 32612 "src/ocaml/preprocess/parser_raw.ml" in let _loc__4_ = (_startpos__4_, _endpos__4_) in @@ -32627,7 +32620,7 @@ module Tables = struct (_2, _7, Some (Pvc_constraint { locally_abstract_univars = []; typ }), modes) ) -# 32631 "src/ocaml/preprocess/parser_raw.ml" +# 32624 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -32704,7 +32697,7 @@ module Tables = struct # 4700 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 32708 "src/ocaml/preprocess/parser_raw.ml" +# 32701 "src/ocaml/preprocess/parser_raw.ml" in let _4 = @@ -32714,24 +32707,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 32718 "src/ocaml/preprocess/parser_raw.ml" +# 32711 "src/ocaml/preprocess/parser_raw.ml" in # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 32723 "src/ocaml/preprocess/parser_raw.ml" +# 32716 "src/ocaml/preprocess/parser_raw.ml" in # 4481 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 32729 "src/ocaml/preprocess/parser_raw.ml" +# 32722 "src/ocaml/preprocess/parser_raw.ml" in # 4485 "src/ocaml/preprocess/parser_raw.mly" ( (_1, _3) ) -# 32735 "src/ocaml/preprocess/parser_raw.ml" +# 32728 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__4_, _startpos__4_) = (_endpos__3_inlined1_, _startpos_xs_) in @@ -32742,13 +32735,13 @@ module Tables = struct # 3335 "src/ocaml/preprocess/parser_raw.mly" ( mkpatvar ~loc:_sloc _1 ) -# 32746 "src/ocaml/preprocess/parser_raw.ml" +# 32739 "src/ocaml/preprocess/parser_raw.ml" in let modes0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 32752 "src/ocaml/preprocess/parser_raw.ml" +# 32745 "src/ocaml/preprocess/parser_raw.ml" in let _loc__4_ = (_startpos__4_, _endpos__4_) in @@ -32760,7 +32753,7 @@ module Tables = struct (_2, _7, Some (Pvc_constraint { locally_abstract_univars = []; typ }), modes) ) -# 32764 "src/ocaml/preprocess/parser_raw.ml" +# 32757 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -32835,7 +32828,7 @@ module Tables = struct Parsetree.value_constraint option * Parsetree.modes) = let modes1 = # 4699 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 32839 "src/ocaml/preprocess/parser_raw.ml" +# 32832 "src/ocaml/preprocess/parser_raw.ml" in let _4 = let _3 = _3_inlined1 in @@ -32844,24 +32837,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 32848 "src/ocaml/preprocess/parser_raw.ml" +# 32841 "src/ocaml/preprocess/parser_raw.ml" in # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 32853 "src/ocaml/preprocess/parser_raw.ml" +# 32846 "src/ocaml/preprocess/parser_raw.ml" in # 4481 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 32859 "src/ocaml/preprocess/parser_raw.ml" +# 32852 "src/ocaml/preprocess/parser_raw.ml" in # 4485 "src/ocaml/preprocess/parser_raw.mly" ( (_1, _3) ) -# 32865 "src/ocaml/preprocess/parser_raw.ml" +# 32858 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__4_, _startpos__4_) = (_endpos__3_inlined1_, _startpos_xs_) in @@ -32873,19 +32866,19 @@ module Tables = struct # 3335 "src/ocaml/preprocess/parser_raw.mly" ( mkpatvar ~loc:_sloc _1 ) -# 32877 "src/ocaml/preprocess/parser_raw.ml" +# 32870 "src/ocaml/preprocess/parser_raw.ml" in let modes0 = let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 32884 "src/ocaml/preprocess/parser_raw.ml" +# 32877 "src/ocaml/preprocess/parser_raw.ml" in # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 32889 "src/ocaml/preprocess/parser_raw.ml" +# 32882 "src/ocaml/preprocess/parser_raw.ml" in let _loc__4_ = (_startpos__4_, _endpos__4_) in @@ -32898,7 +32891,7 @@ module Tables = struct (_2, _7, Some (Pvc_constraint { locally_abstract_univars = []; typ }), modes) ) -# 32902 "src/ocaml/preprocess/parser_raw.ml" +# 32895 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -32982,7 +32975,7 @@ module Tables = struct # 4700 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 32986 "src/ocaml/preprocess/parser_raw.ml" +# 32979 "src/ocaml/preprocess/parser_raw.ml" in let _4 = @@ -32992,24 +32985,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 32996 "src/ocaml/preprocess/parser_raw.ml" +# 32989 "src/ocaml/preprocess/parser_raw.ml" in # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 33001 "src/ocaml/preprocess/parser_raw.ml" +# 32994 "src/ocaml/preprocess/parser_raw.ml" in # 4481 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 33007 "src/ocaml/preprocess/parser_raw.ml" +# 33000 "src/ocaml/preprocess/parser_raw.ml" in # 4485 "src/ocaml/preprocess/parser_raw.mly" ( (_1, _3) ) -# 33013 "src/ocaml/preprocess/parser_raw.ml" +# 33006 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__4_, _startpos__4_) = (_endpos__3_inlined1_, _startpos_xs_) in @@ -33021,19 +33014,19 @@ module Tables = struct # 3335 "src/ocaml/preprocess/parser_raw.mly" ( mkpatvar ~loc:_sloc _1 ) -# 33025 "src/ocaml/preprocess/parser_raw.ml" +# 33018 "src/ocaml/preprocess/parser_raw.ml" in let modes0 = let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 33032 "src/ocaml/preprocess/parser_raw.ml" +# 33025 "src/ocaml/preprocess/parser_raw.ml" in # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 33037 "src/ocaml/preprocess/parser_raw.ml" +# 33030 "src/ocaml/preprocess/parser_raw.ml" in let _loc__4_ = (_startpos__4_, _endpos__4_) in @@ -33046,7 +33039,7 @@ module Tables = struct (_2, _7, Some (Pvc_constraint { locally_abstract_univars = []; typ }), modes) ) -# 33050 "src/ocaml/preprocess/parser_raw.ml" +# 33043 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -33121,7 +33114,7 @@ module Tables = struct Parsetree.value_constraint option * Parsetree.modes) = let modes = # 4699 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 33125 "src/ocaml/preprocess/parser_raw.ml" +# 33118 "src/ocaml/preprocess/parser_raw.ml" in let _1 = let _endpos = _endpos__1_ in @@ -33130,7 +33123,7 @@ module Tables = struct # 3335 "src/ocaml/preprocess/parser_raw.mly" ( mkpatvar ~loc:_sloc _1 ) -# 33134 "src/ocaml/preprocess/parser_raw.ml" +# 33127 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__9_ in @@ -33145,7 +33138,7 @@ module Tables = struct let loc = (_startpos__1_, _endpos__6_) in (ghpat_with_modes ~loc ~pat:_1 ~cty:(Some poly) ~modes:[], exp, None, modes) ) -# 33149 "src/ocaml/preprocess/parser_raw.ml" +# 33142 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -33229,7 +33222,7 @@ module Tables = struct # 4700 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 33233 "src/ocaml/preprocess/parser_raw.ml" +# 33226 "src/ocaml/preprocess/parser_raw.ml" in let _1 = @@ -33239,7 +33232,7 @@ module Tables = struct # 3335 "src/ocaml/preprocess/parser_raw.mly" ( mkpatvar ~loc:_sloc _1 ) -# 33243 "src/ocaml/preprocess/parser_raw.ml" +# 33236 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__9_ in @@ -33254,7 +33247,7 @@ module Tables = struct let loc = (_startpos__1_, _endpos__6_) in (ghpat_with_modes ~loc ~pat:_1 ~cty:(Some poly) ~modes:[], exp, None, modes) ) -# 33258 "src/ocaml/preprocess/parser_raw.ml" +# 33251 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -33294,7 +33287,7 @@ module Tables = struct Parsetree.value_constraint option * Parsetree.modes) = # 3392 "src/ocaml/preprocess/parser_raw.mly" ( (_1, _3, None, []) ) -# 33298 "src/ocaml/preprocess/parser_raw.ml" +# 33291 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -33343,7 +33336,7 @@ module Tables = struct # 3338 "src/ocaml/preprocess/parser_raw.mly" (None, _1) -# 33347 "src/ocaml/preprocess/parser_raw.ml" +# 33340 "src/ocaml/preprocess/parser_raw.ml" in @@ -33352,7 +33345,7 @@ module Tables = struct let pvc, modes = _2 in (_1, _4, pvc, modes) ) -# 33356 "src/ocaml/preprocess/parser_raw.ml" +# 33349 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -33407,14 +33400,14 @@ module Tables = struct let _3 = # 4699 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 33411 "src/ocaml/preprocess/parser_raw.ml" +# 33404 "src/ocaml/preprocess/parser_raw.ml" in # 3339 "src/ocaml/preprocess/parser_raw.mly" ( Some(Pvc_constraint { locally_abstract_univars=[]; typ=_2 }), _3 ) -# 33418 "src/ocaml/preprocess/parser_raw.ml" +# 33411 "src/ocaml/preprocess/parser_raw.ml" in @@ -33423,7 +33416,7 @@ module Tables = struct let pvc, modes = _2 in (_1, _4, pvc, modes) ) -# 33427 "src/ocaml/preprocess/parser_raw.ml" +# 33420 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -33488,7 +33481,7 @@ module Tables = struct # 4700 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 33492 "src/ocaml/preprocess/parser_raw.ml" +# 33485 "src/ocaml/preprocess/parser_raw.ml" in @@ -33496,7 +33489,7 @@ module Tables = struct ( Some(Pvc_constraint { locally_abstract_univars=[]; typ=_2 }), _3 ) -# 33500 "src/ocaml/preprocess/parser_raw.ml" +# 33493 "src/ocaml/preprocess/parser_raw.ml" in @@ -33505,7 +33498,7 @@ module Tables = struct let pvc, modes = _2 in (_1, _4, pvc, modes) ) -# 33509 "src/ocaml/preprocess/parser_raw.ml" +# 33502 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -33550,20 +33543,20 @@ module Tables = struct # 3335 "src/ocaml/preprocess/parser_raw.mly" ( mkpatvar ~loc:_sloc _1 ) -# 33554 "src/ocaml/preprocess/parser_raw.ml" +# 33547 "src/ocaml/preprocess/parser_raw.ml" in let modes = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 33560 "src/ocaml/preprocess/parser_raw.ml" +# 33553 "src/ocaml/preprocess/parser_raw.ml" in # 3399 "src/ocaml/preprocess/parser_raw.mly" ( (_2, _3 modes, None, modes) ) -# 33567 "src/ocaml/preprocess/parser_raw.ml" +# 33560 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -33622,7 +33615,7 @@ module Tables = struct # 3335 "src/ocaml/preprocess/parser_raw.mly" ( mkpatvar ~loc:_sloc _1 ) -# 33626 "src/ocaml/preprocess/parser_raw.ml" +# 33619 "src/ocaml/preprocess/parser_raw.ml" in @@ -33630,7 +33623,7 @@ module Tables = struct ( (_2, _5 modes, None, modes) ) -# 33634 "src/ocaml/preprocess/parser_raw.ml" +# 33627 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -33694,7 +33687,7 @@ module Tables = struct # 5399 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 33698 "src/ocaml/preprocess/parser_raw.ml" +# 33691 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_attrs2_ = _endpos__1_inlined2_ in @@ -33703,7 +33696,7 @@ module Tables = struct # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 33707 "src/ocaml/preprocess/parser_raw.ml" +# 33700 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_attrs2_ in @@ -33715,13 +33708,13 @@ module Tables = struct let attrs = attrs1 @ attrs2 in mklbs ext rec_flag (mklb ~loc:_sloc true body attrs) ) -# 33719 "src/ocaml/preprocess/parser_raw.ml" +# 33712 "src/ocaml/preprocess/parser_raw.ml" in # 3422 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 33725 "src/ocaml/preprocess/parser_raw.ml" +# 33718 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -33753,7 +33746,7 @@ module Tables = struct let _v : (Parser_types.let_bindings) = # 3423 "src/ocaml/preprocess/parser_raw.mly" ( addlb _1 _2 ) -# 33757 "src/ocaml/preprocess/parser_raw.ml" +# 33750 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -33810,7 +33803,7 @@ module Tables = struct # 5399 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 33814 "src/ocaml/preprocess/parser_raw.ml" +# 33807 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_attrs2_ = _endpos__1_inlined2_ in @@ -33819,13 +33812,13 @@ module Tables = struct # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 33823 "src/ocaml/preprocess/parser_raw.ml" +# 33816 "src/ocaml/preprocess/parser_raw.ml" in let ext = # 5410 "src/ocaml/preprocess/parser_raw.mly" ( None ) -# 33829 "src/ocaml/preprocess/parser_raw.ml" +# 33822 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_attrs2_ in let _symbolstartpos = _startpos__1_ in @@ -33836,13 +33829,13 @@ module Tables = struct let attrs = attrs1 @ attrs2 in mklbs ext rec_flag (mklb ~loc:_sloc true body attrs) ) -# 33840 "src/ocaml/preprocess/parser_raw.ml" +# 33833 "src/ocaml/preprocess/parser_raw.ml" in # 3422 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 33846 "src/ocaml/preprocess/parser_raw.ml" +# 33839 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -33913,7 +33906,7 @@ module Tables = struct # 5399 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 33917 "src/ocaml/preprocess/parser_raw.ml" +# 33910 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_attrs2_ = _endpos__1_inlined3_ in @@ -33922,7 +33915,7 @@ module Tables = struct # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 33926 "src/ocaml/preprocess/parser_raw.ml" +# 33919 "src/ocaml/preprocess/parser_raw.ml" in let ext = @@ -33933,7 +33926,7 @@ module Tables = struct # 5412 "src/ocaml/preprocess/parser_raw.mly" ( not_expecting _loc "extension"; None ) -# 33937 "src/ocaml/preprocess/parser_raw.ml" +# 33930 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_attrs2_ in @@ -33945,13 +33938,13 @@ module Tables = struct let attrs = attrs1 @ attrs2 in mklbs ext rec_flag (mklb ~loc:_sloc true body attrs) ) -# 33949 "src/ocaml/preprocess/parser_raw.ml" +# 33942 "src/ocaml/preprocess/parser_raw.ml" in # 3422 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 33955 "src/ocaml/preprocess/parser_raw.ml" +# 33948 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -33983,7 +33976,7 @@ module Tables = struct let _v : (Parser_types.let_bindings) = # 3423 "src/ocaml/preprocess/parser_raw.mly" ( addlb _1 _2 ) -# 33987 "src/ocaml/preprocess/parser_raw.ml" +# 33980 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -34008,17 +34001,17 @@ module Tables = struct let _v : (Parsetree.pattern * Parsetree.core_type option * Parsetree.modes) = let modes = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 34012 "src/ocaml/preprocess/parser_raw.ml" +# 34005 "src/ocaml/preprocess/parser_raw.ml" in let x = # 2888 "src/ocaml/preprocess/parser_raw.mly" ( pat, None ) -# 34017 "src/ocaml/preprocess/parser_raw.ml" +# 34010 "src/ocaml/preprocess/parser_raw.ml" in # 2861 "src/ocaml/preprocess/parser_raw.mly" ( let pat, cty = x in pat, cty, modes ) -# 34022 "src/ocaml/preprocess/parser_raw.ml" +# 34015 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -34050,17 +34043,17 @@ module Tables = struct let _v : (Parsetree.pattern * Parsetree.core_type option * Parsetree.modes) = let modes = # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 34054 "src/ocaml/preprocess/parser_raw.ml" +# 34047 "src/ocaml/preprocess/parser_raw.ml" in let x = # 2888 "src/ocaml/preprocess/parser_raw.mly" ( pat, None ) -# 34059 "src/ocaml/preprocess/parser_raw.ml" +# 34052 "src/ocaml/preprocess/parser_raw.ml" in # 2861 "src/ocaml/preprocess/parser_raw.mly" ( let pat, cty = x in pat, cty, modes ) -# 34064 "src/ocaml/preprocess/parser_raw.ml" +# 34057 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -34099,17 +34092,17 @@ module Tables = struct let _v : (Parsetree.pattern * Parsetree.core_type option * Parsetree.modes) = let modes = # 4699 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 34103 "src/ocaml/preprocess/parser_raw.ml" +# 34096 "src/ocaml/preprocess/parser_raw.ml" in let x = # 2882 "src/ocaml/preprocess/parser_raw.mly" ( pat, Some cty ) -# 34108 "src/ocaml/preprocess/parser_raw.ml" +# 34101 "src/ocaml/preprocess/parser_raw.ml" in # 2863 "src/ocaml/preprocess/parser_raw.mly" ( let pat, cty = x in pat, cty, modes ) -# 34113 "src/ocaml/preprocess/parser_raw.ml" +# 34106 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -34155,17 +34148,17 @@ module Tables = struct let _v : (Parsetree.pattern * Parsetree.core_type option * Parsetree.modes) = let modes = # 4700 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 34159 "src/ocaml/preprocess/parser_raw.ml" +# 34152 "src/ocaml/preprocess/parser_raw.ml" in let x = # 2882 "src/ocaml/preprocess/parser_raw.mly" ( pat, Some cty ) -# 34164 "src/ocaml/preprocess/parser_raw.ml" +# 34157 "src/ocaml/preprocess/parser_raw.ml" in # 2863 "src/ocaml/preprocess/parser_raw.mly" ( let pat, cty = x in pat, cty, modes ) -# 34169 "src/ocaml/preprocess/parser_raw.ml" +# 34162 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -34218,7 +34211,7 @@ module Tables = struct let _v : (Parsetree.pattern * Parsetree.core_type option * Parsetree.modes) = let modes = # 4699 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 34222 "src/ocaml/preprocess/parser_raw.ml" +# 34215 "src/ocaml/preprocess/parser_raw.ml" in let x = let _1 = @@ -34229,24 +34222,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 34233 "src/ocaml/preprocess/parser_raw.ml" +# 34226 "src/ocaml/preprocess/parser_raw.ml" in # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 34238 "src/ocaml/preprocess/parser_raw.ml" +# 34231 "src/ocaml/preprocess/parser_raw.ml" in # 4481 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 34244 "src/ocaml/preprocess/parser_raw.ml" +# 34237 "src/ocaml/preprocess/parser_raw.ml" in # 2897 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 34250 "src/ocaml/preprocess/parser_raw.ml" +# 34243 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_inner_type_, _startpos_xs_) in @@ -34256,25 +34249,25 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 34260 "src/ocaml/preprocess/parser_raw.ml" +# 34253 "src/ocaml/preprocess/parser_raw.ml" in # 2898 "src/ocaml/preprocess/parser_raw.mly" ( pat, Some cty ) -# 34266 "src/ocaml/preprocess/parser_raw.ml" +# 34259 "src/ocaml/preprocess/parser_raw.ml" in # 2884 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 34272 "src/ocaml/preprocess/parser_raw.ml" +# 34265 "src/ocaml/preprocess/parser_raw.ml" in # 2863 "src/ocaml/preprocess/parser_raw.mly" ( let pat, cty = x in pat, cty, modes ) -# 34278 "src/ocaml/preprocess/parser_raw.ml" +# 34271 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -34334,7 +34327,7 @@ module Tables = struct let _v : (Parsetree.pattern * Parsetree.core_type option * Parsetree.modes) = let modes = # 4700 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 34338 "src/ocaml/preprocess/parser_raw.ml" +# 34331 "src/ocaml/preprocess/parser_raw.ml" in let x = let _1 = @@ -34345,24 +34338,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 34349 "src/ocaml/preprocess/parser_raw.ml" +# 34342 "src/ocaml/preprocess/parser_raw.ml" in # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 34354 "src/ocaml/preprocess/parser_raw.ml" +# 34347 "src/ocaml/preprocess/parser_raw.ml" in # 4481 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 34360 "src/ocaml/preprocess/parser_raw.ml" +# 34353 "src/ocaml/preprocess/parser_raw.ml" in # 2897 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 34366 "src/ocaml/preprocess/parser_raw.ml" +# 34359 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_inner_type_, _startpos_xs_) in @@ -34372,25 +34365,25 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 34376 "src/ocaml/preprocess/parser_raw.ml" +# 34369 "src/ocaml/preprocess/parser_raw.ml" in # 2898 "src/ocaml/preprocess/parser_raw.mly" ( pat, Some cty ) -# 34382 "src/ocaml/preprocess/parser_raw.ml" +# 34375 "src/ocaml/preprocess/parser_raw.ml" in # 2884 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 34388 "src/ocaml/preprocess/parser_raw.ml" +# 34381 "src/ocaml/preprocess/parser_raw.ml" in # 2863 "src/ocaml/preprocess/parser_raw.mly" ( let pat, cty = x in pat, cty, modes ) -# 34394 "src/ocaml/preprocess/parser_raw.ml" +# 34387 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -34429,7 +34422,7 @@ module Tables = struct let _v : (Parsetree.pattern * Parsetree.core_type option * Parsetree.modes) = # 2864 "src/ocaml/preprocess/parser_raw.mly" ( _2 ) -# 34433 "src/ocaml/preprocess/parser_raw.ml" +# 34426 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -34454,12 +34447,12 @@ module Tables = struct let _v : (Parsetree.pattern * Parsetree.core_type option) = let x = # 2888 "src/ocaml/preprocess/parser_raw.mly" ( pat, None ) -# 34458 "src/ocaml/preprocess/parser_raw.ml" +# 34451 "src/ocaml/preprocess/parser_raw.ml" in # 2876 "src/ocaml/preprocess/parser_raw.mly" ( x ) -# 34463 "src/ocaml/preprocess/parser_raw.ml" +# 34456 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -34498,12 +34491,12 @@ module Tables = struct let _v : (Parsetree.pattern * Parsetree.core_type option) = let x = # 2882 "src/ocaml/preprocess/parser_raw.mly" ( pat, Some cty ) -# 34502 "src/ocaml/preprocess/parser_raw.ml" +# 34495 "src/ocaml/preprocess/parser_raw.ml" in # 2877 "src/ocaml/preprocess/parser_raw.mly" ( x ) -# 34507 "src/ocaml/preprocess/parser_raw.ml" +# 34500 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -34562,24 +34555,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 34566 "src/ocaml/preprocess/parser_raw.ml" +# 34559 "src/ocaml/preprocess/parser_raw.ml" in # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 34571 "src/ocaml/preprocess/parser_raw.ml" +# 34564 "src/ocaml/preprocess/parser_raw.ml" in # 4481 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 34577 "src/ocaml/preprocess/parser_raw.ml" +# 34570 "src/ocaml/preprocess/parser_raw.ml" in # 2897 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 34583 "src/ocaml/preprocess/parser_raw.ml" +# 34576 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_inner_type_, _startpos_xs_) in @@ -34589,25 +34582,25 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 34593 "src/ocaml/preprocess/parser_raw.ml" +# 34586 "src/ocaml/preprocess/parser_raw.ml" in # 2898 "src/ocaml/preprocess/parser_raw.mly" ( pat, Some cty ) -# 34599 "src/ocaml/preprocess/parser_raw.ml" +# 34592 "src/ocaml/preprocess/parser_raw.ml" in # 2884 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 34605 "src/ocaml/preprocess/parser_raw.ml" +# 34598 "src/ocaml/preprocess/parser_raw.ml" in # 2877 "src/ocaml/preprocess/parser_raw.mly" ( x ) -# 34611 "src/ocaml/preprocess/parser_raw.ml" +# 34604 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -34639,12 +34632,12 @@ module Tables = struct let _v : (Parsetree.pattern * Parsetree.core_type option * Parsetree.modes) = let x = # 2888 "src/ocaml/preprocess/parser_raw.mly" ( pat, None ) -# 34643 "src/ocaml/preprocess/parser_raw.ml" +# 34636 "src/ocaml/preprocess/parser_raw.ml" in # 2869 "src/ocaml/preprocess/parser_raw.mly" ( let pat, cty = x in pat, cty, modes ) -# 34648 "src/ocaml/preprocess/parser_raw.ml" +# 34641 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -34690,12 +34683,12 @@ module Tables = struct let _v : (Parsetree.pattern * Parsetree.core_type option * Parsetree.modes) = let x = # 2882 "src/ocaml/preprocess/parser_raw.mly" ( pat, Some cty ) -# 34694 "src/ocaml/preprocess/parser_raw.ml" +# 34687 "src/ocaml/preprocess/parser_raw.ml" in # 2871 "src/ocaml/preprocess/parser_raw.mly" ( let pat, cty = x in pat, cty, modes ) -# 34699 "src/ocaml/preprocess/parser_raw.ml" +# 34692 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -34761,24 +34754,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 34765 "src/ocaml/preprocess/parser_raw.ml" +# 34758 "src/ocaml/preprocess/parser_raw.ml" in # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 34770 "src/ocaml/preprocess/parser_raw.ml" +# 34763 "src/ocaml/preprocess/parser_raw.ml" in # 4481 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 34776 "src/ocaml/preprocess/parser_raw.ml" +# 34769 "src/ocaml/preprocess/parser_raw.ml" in # 2897 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 34782 "src/ocaml/preprocess/parser_raw.ml" +# 34775 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_inner_type_, _startpos_xs_) in @@ -34788,25 +34781,25 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 34792 "src/ocaml/preprocess/parser_raw.ml" +# 34785 "src/ocaml/preprocess/parser_raw.ml" in # 2898 "src/ocaml/preprocess/parser_raw.mly" ( pat, Some cty ) -# 34798 "src/ocaml/preprocess/parser_raw.ml" +# 34791 "src/ocaml/preprocess/parser_raw.ml" in # 2884 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 34804 "src/ocaml/preprocess/parser_raw.ml" +# 34797 "src/ocaml/preprocess/parser_raw.ml" in # 2871 "src/ocaml/preprocess/parser_raw.mly" ( let pat, cty = x in pat, cty, modes ) -# 34810 "src/ocaml/preprocess/parser_raw.ml" +# 34803 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -34845,7 +34838,7 @@ module Tables = struct let _v : (Parsetree.pattern * Parsetree.core_type option * Parsetree.modes) = # 2872 "src/ocaml/preprocess/parser_raw.mly" ( _2 ) -# 34849 "src/ocaml/preprocess/parser_raw.ml" +# 34842 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -34879,7 +34872,7 @@ module Tables = struct # 3492 "src/ocaml/preprocess/parser_raw.mly" (_1 []) -# 34883 "src/ocaml/preprocess/parser_raw.ml" +# 34876 "src/ocaml/preprocess/parser_raw.ml" in let pat = @@ -34889,13 +34882,13 @@ module Tables = struct # 3335 "src/ocaml/preprocess/parser_raw.mly" ( mkpatvar ~loc:_sloc _1 ) -# 34893 "src/ocaml/preprocess/parser_raw.ml" +# 34886 "src/ocaml/preprocess/parser_raw.ml" in # 3449 "src/ocaml/preprocess/parser_raw.mly" ( (pat, exp) ) -# 34899 "src/ocaml/preprocess/parser_raw.ml" +# 34892 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -34923,7 +34916,7 @@ module Tables = struct # 3452 "src/ocaml/preprocess/parser_raw.mly" ( (mkpatvar ~loc:_loc ~attrs:[pun_attr] _1, ghexpvar ~loc:_loc ~attrs:[pun_attr] _1) ) -# 34927 "src/ocaml/preprocess/parser_raw.ml" +# 34920 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -34977,7 +34970,7 @@ module Tables = struct # 3455 "src/ocaml/preprocess/parser_raw.mly" ( let loc = (_startpos_pat_, _endpos_typ_) in (ghpat_with_modes ~loc ~pat ~cty:(Some typ) ~modes:[], exp) ) -# 34981 "src/ocaml/preprocess/parser_raw.ml" +# 34974 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -35016,7 +35009,7 @@ module Tables = struct let _v : (Parsetree.pattern * Parsetree.expression) = # 3458 "src/ocaml/preprocess/parser_raw.mly" ( (pat, exp) ) -# 35020 "src/ocaml/preprocess/parser_raw.ml" +# 35013 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -35042,7 +35035,7 @@ module Tables = struct # 3462 "src/ocaml/preprocess/parser_raw.mly" ( let let_pat, let_exp = body in let_pat, let_exp, [] ) -# 35046 "src/ocaml/preprocess/parser_raw.ml" +# 35039 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -35076,7 +35069,7 @@ module Tables = struct let _1 : ( # 1075 "src/ocaml/preprocess/parser_raw.mly" (string) -# 35080 "src/ocaml/preprocess/parser_raw.ml" +# 35073 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let bindings : (Parsetree.pattern * Parsetree.expression * Parsetree.binding_op list) = Obj.magic bindings in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -35089,7 +35082,7 @@ module Tables = struct # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 35093 "src/ocaml/preprocess/parser_raw.ml" +# 35086 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_body_ in @@ -35102,7 +35095,7 @@ module Tables = struct let pbop_loc = make_loc _sloc in let and_ = {pbop_op; pbop_pat; pbop_exp; pbop_loc} in let_pat, let_exp, and_ :: rev_ands ) -# 35106 "src/ocaml/preprocess/parser_raw.ml" +# 35099 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -35120,7 +35113,7 @@ module Tables = struct let _v : (Parsetree.class_expr Parsetree.class_infos list) = # 211 "" ( [] ) -# 35124 "src/ocaml/preprocess/parser_raw.ml" +# 35117 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -35186,7 +35179,7 @@ module Tables = struct let _1_inlined2 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 35190 "src/ocaml/preprocess/parser_raw.ml" +# 35183 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined2 in let params : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = Obj.magic params in let virt : (Asttypes.virtual_flag) = Obj.magic virt in @@ -35201,7 +35194,7 @@ module Tables = struct # 5399 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 35205 "src/ocaml/preprocess/parser_raw.ml" +# 35198 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_attrs2_ = _endpos__1_inlined3_ in @@ -35213,7 +35206,7 @@ module Tables = struct # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 35217 "src/ocaml/preprocess/parser_raw.ml" +# 35210 "src/ocaml/preprocess/parser_raw.ml" in let attrs1 = @@ -35221,7 +35214,7 @@ module Tables = struct # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 35225 "src/ocaml/preprocess/parser_raw.ml" +# 35218 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_attrs2_ in @@ -35236,13 +35229,13 @@ module Tables = struct let text = symbol_text _symbolstartpos in Ci.mk id body ~virt ~params ~attrs ~loc ~text ~docs ) -# 35240 "src/ocaml/preprocess/parser_raw.ml" +# 35233 "src/ocaml/preprocess/parser_raw.ml" in # 213 "" ( x :: xs ) -# 35246 "src/ocaml/preprocess/parser_raw.ml" +# 35239 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -35260,7 +35253,7 @@ module Tables = struct let _v : (Parsetree.class_type Parsetree.class_infos list) = # 211 "" ( [] ) -# 35264 "src/ocaml/preprocess/parser_raw.ml" +# 35257 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -35333,7 +35326,7 @@ module Tables = struct let _1_inlined2 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 35337 "src/ocaml/preprocess/parser_raw.ml" +# 35330 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined2 in let params : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = Obj.magic params in let virt : (Asttypes.virtual_flag) = Obj.magic virt in @@ -35348,7 +35341,7 @@ module Tables = struct # 5399 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 35352 "src/ocaml/preprocess/parser_raw.ml" +# 35345 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_attrs2_ = _endpos__1_inlined3_ in @@ -35360,7 +35353,7 @@ module Tables = struct # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 35364 "src/ocaml/preprocess/parser_raw.ml" +# 35357 "src/ocaml/preprocess/parser_raw.ml" in let attrs1 = @@ -35368,7 +35361,7 @@ module Tables = struct # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 35372 "src/ocaml/preprocess/parser_raw.ml" +# 35365 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_attrs2_ in @@ -35383,13 +35376,13 @@ module Tables = struct let text = symbol_text _symbolstartpos in Ci.mk id cty ~virt ~params ~attrs ~loc ~text ~docs ) -# 35387 "src/ocaml/preprocess/parser_raw.ml" +# 35380 "src/ocaml/preprocess/parser_raw.ml" in # 213 "" ( x :: xs ) -# 35393 "src/ocaml/preprocess/parser_raw.ml" +# 35386 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -35407,7 +35400,7 @@ module Tables = struct let _v : (Parsetree.class_type Parsetree.class_infos list) = # 211 "" ( [] ) -# 35411 "src/ocaml/preprocess/parser_raw.ml" +# 35404 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -35480,7 +35473,7 @@ module Tables = struct let _1_inlined2 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 35484 "src/ocaml/preprocess/parser_raw.ml" +# 35477 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined2 in let params : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = Obj.magic params in let virt : (Asttypes.virtual_flag) = Obj.magic virt in @@ -35495,7 +35488,7 @@ module Tables = struct # 5399 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 35499 "src/ocaml/preprocess/parser_raw.ml" +# 35492 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_attrs2_ = _endpos__1_inlined3_ in @@ -35507,7 +35500,7 @@ module Tables = struct # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 35511 "src/ocaml/preprocess/parser_raw.ml" +# 35504 "src/ocaml/preprocess/parser_raw.ml" in let attrs1 = @@ -35515,7 +35508,7 @@ module Tables = struct # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 35519 "src/ocaml/preprocess/parser_raw.ml" +# 35512 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_attrs2_ in @@ -35530,13 +35523,13 @@ module Tables = struct let text = symbol_text _symbolstartpos in Ci.mk id csig ~virt ~params ~attrs ~loc ~text ~docs ) -# 35534 "src/ocaml/preprocess/parser_raw.ml" +# 35527 "src/ocaml/preprocess/parser_raw.ml" in # 213 "" ( x :: xs ) -# 35540 "src/ocaml/preprocess/parser_raw.ml" +# 35533 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -35554,7 +35547,7 @@ module Tables = struct let _v : (Parsetree.module_binding list) = # 211 "" ( [] ) -# 35558 "src/ocaml/preprocess/parser_raw.ml" +# 35551 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -35617,7 +35610,7 @@ module Tables = struct # 5399 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 35621 "src/ocaml/preprocess/parser_raw.ml" +# 35614 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_attrs2_ = _endpos__1_inlined2_ in @@ -35626,7 +35619,7 @@ module Tables = struct # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 35630 "src/ocaml/preprocess/parser_raw.ml" +# 35623 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_attrs2_ in @@ -35643,13 +35636,13 @@ module Tables = struct let body = maybe_pmod_constraint modes body in Mb.mk name body ~attrs ~loc ~text ~docs ) -# 35647 "src/ocaml/preprocess/parser_raw.ml" +# 35640 "src/ocaml/preprocess/parser_raw.ml" in # 213 "" ( x :: xs ) -# 35653 "src/ocaml/preprocess/parser_raw.ml" +# 35646 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -35667,7 +35660,7 @@ module Tables = struct let _v : (Parsetree.module_declaration list) = # 211 "" ( [] ) -# 35671 "src/ocaml/preprocess/parser_raw.ml" +# 35664 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -35744,7 +35737,7 @@ module Tables = struct # 5399 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 35748 "src/ocaml/preprocess/parser_raw.ml" +# 35741 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_attrs2_ = _endpos__1_inlined3_ in @@ -35756,7 +35749,7 @@ module Tables = struct # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 35760 "src/ocaml/preprocess/parser_raw.ml" +# 35753 "src/ocaml/preprocess/parser_raw.ml" in let attrs1 = @@ -35764,7 +35757,7 @@ module Tables = struct # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 35768 "src/ocaml/preprocess/parser_raw.ml" +# 35761 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_attrs2_ in @@ -35779,13 +35772,13 @@ module Tables = struct let text = symbol_text _symbolstartpos in Md.mk name mty ~attrs ~loc ~text ~docs ~modalities ) -# 35783 "src/ocaml/preprocess/parser_raw.ml" +# 35776 "src/ocaml/preprocess/parser_raw.ml" in # 213 "" ( x :: xs ) -# 35789 "src/ocaml/preprocess/parser_raw.ml" +# 35782 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -35803,7 +35796,7 @@ module Tables = struct let _v : (Parsetree.attributes) = # 211 "" ( [] ) -# 35807 "src/ocaml/preprocess/parser_raw.ml" +# 35800 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -35835,7 +35828,7 @@ module Tables = struct let _v : (Parsetree.attributes) = # 213 "" ( x :: xs ) -# 35839 "src/ocaml/preprocess/parser_raw.ml" +# 35832 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -35853,7 +35846,7 @@ module Tables = struct let _v : (Parsetree.type_declaration list) = # 211 "" ( [] ) -# 35857 "src/ocaml/preprocess/parser_raw.ml" +# 35850 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -35927,7 +35920,7 @@ module Tables = struct let _1_inlined2 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 35931 "src/ocaml/preprocess/parser_raw.ml" +# 35924 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined2 in let params : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = Obj.magic params in let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in @@ -35942,7 +35935,7 @@ module Tables = struct # 5399 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 35946 "src/ocaml/preprocess/parser_raw.ml" +# 35939 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_attrs2_ = _endpos__1_inlined3_ in @@ -35951,18 +35944,18 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 35955 "src/ocaml/preprocess/parser_raw.ml" +# 35948 "src/ocaml/preprocess/parser_raw.ml" in # 1380 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 35960 "src/ocaml/preprocess/parser_raw.ml" +# 35953 "src/ocaml/preprocess/parser_raw.ml" in # 4098 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 35966 "src/ocaml/preprocess/parser_raw.ml" +# 35959 "src/ocaml/preprocess/parser_raw.ml" in let id = @@ -35973,7 +35966,7 @@ module Tables = struct # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 35977 "src/ocaml/preprocess/parser_raw.ml" +# 35970 "src/ocaml/preprocess/parser_raw.ml" in let attrs1 = @@ -35981,7 +35974,7 @@ module Tables = struct # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 35985 "src/ocaml/preprocess/parser_raw.ml" +# 35978 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_attrs2_ in @@ -35998,13 +35991,13 @@ module Tables = struct Type.mk id ~params ~cstrs ~kind ~priv ?manifest ~attrs ~loc ~docs ~text ?jkind_annotation ) -# 36002 "src/ocaml/preprocess/parser_raw.ml" +# 35995 "src/ocaml/preprocess/parser_raw.ml" in # 213 "" ( x :: xs ) -# 36008 "src/ocaml/preprocess/parser_raw.ml" +# 36001 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -36022,7 +36015,7 @@ module Tables = struct let _v : (Parsetree.type_declaration list) = # 211 "" ( [] ) -# 36026 "src/ocaml/preprocess/parser_raw.ml" +# 36019 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -36103,7 +36096,7 @@ module Tables = struct let _1_inlined2 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 36107 "src/ocaml/preprocess/parser_raw.ml" +# 36100 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined2 in let params : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = Obj.magic params in let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in @@ -36118,7 +36111,7 @@ module Tables = struct # 5399 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 36122 "src/ocaml/preprocess/parser_raw.ml" +# 36115 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_attrs2_ = _endpos__1_inlined4_ in @@ -36127,24 +36120,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 36131 "src/ocaml/preprocess/parser_raw.ml" +# 36124 "src/ocaml/preprocess/parser_raw.ml" in # 1380 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 36136 "src/ocaml/preprocess/parser_raw.ml" +# 36129 "src/ocaml/preprocess/parser_raw.ml" in # 4098 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 36142 "src/ocaml/preprocess/parser_raw.ml" +# 36135 "src/ocaml/preprocess/parser_raw.ml" in let kind_priv_manifest = # 4137 "src/ocaml/preprocess/parser_raw.mly" ( _2 ) -# 36148 "src/ocaml/preprocess/parser_raw.ml" +# 36141 "src/ocaml/preprocess/parser_raw.ml" in let id = let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in @@ -36154,7 +36147,7 @@ module Tables = struct # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 36158 "src/ocaml/preprocess/parser_raw.ml" +# 36151 "src/ocaml/preprocess/parser_raw.ml" in let attrs1 = @@ -36162,7 +36155,7 @@ module Tables = struct # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 36166 "src/ocaml/preprocess/parser_raw.ml" +# 36159 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_attrs2_ in @@ -36179,13 +36172,13 @@ module Tables = struct Type.mk id ~params ~cstrs ~kind ~priv ?manifest ~attrs ~loc ~docs ~text ?jkind_annotation ) -# 36183 "src/ocaml/preprocess/parser_raw.ml" +# 36176 "src/ocaml/preprocess/parser_raw.ml" in # 213 "" ( x :: xs ) -# 36189 "src/ocaml/preprocess/parser_raw.ml" +# 36182 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -36203,7 +36196,7 @@ module Tables = struct let _v : (Parsetree.attributes) = # 211 "" ( [] ) -# 36207 "src/ocaml/preprocess/parser_raw.ml" +# 36200 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -36235,7 +36228,7 @@ module Tables = struct let _v : (Parsetree.attributes) = # 213 "" ( x :: xs ) -# 36239 "src/ocaml/preprocess/parser_raw.ml" +# 36232 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -36253,7 +36246,7 @@ module Tables = struct let _v : (Parsetree.signature_item list list) = # 211 "" ( [] ) -# 36257 "src/ocaml/preprocess/parser_raw.ml" +# 36250 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -36288,19 +36281,19 @@ module Tables = struct # 1306 "src/ocaml/preprocess/parser_raw.mly" ( text_sig _startpos ) -# 36292 "src/ocaml/preprocess/parser_raw.ml" +# 36285 "src/ocaml/preprocess/parser_raw.ml" in # 2144 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 36298 "src/ocaml/preprocess/parser_raw.ml" +# 36291 "src/ocaml/preprocess/parser_raw.ml" in # 213 "" ( x :: xs ) -# 36304 "src/ocaml/preprocess/parser_raw.ml" +# 36297 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -36335,19 +36328,19 @@ module Tables = struct # 1304 "src/ocaml/preprocess/parser_raw.mly" ( text_sig _startpos @ [_1] ) -# 36339 "src/ocaml/preprocess/parser_raw.ml" +# 36332 "src/ocaml/preprocess/parser_raw.ml" in # 2144 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 36345 "src/ocaml/preprocess/parser_raw.ml" +# 36338 "src/ocaml/preprocess/parser_raw.ml" in # 213 "" ( x :: xs ) -# 36351 "src/ocaml/preprocess/parser_raw.ml" +# 36344 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -36365,7 +36358,7 @@ module Tables = struct let _v : (Parsetree.structure_item list list) = # 211 "" ( [] ) -# 36369 "src/ocaml/preprocess/parser_raw.ml" +# 36362 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -36400,12 +36393,12 @@ module Tables = struct let items = # 1366 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 36404 "src/ocaml/preprocess/parser_raw.ml" +# 36397 "src/ocaml/preprocess/parser_raw.ml" in # 1842 "src/ocaml/preprocess/parser_raw.mly" ( items ) -# 36409 "src/ocaml/preprocess/parser_raw.ml" +# 36402 "src/ocaml/preprocess/parser_raw.ml" in let xs = @@ -36413,25 +36406,25 @@ module Tables = struct # 1302 "src/ocaml/preprocess/parser_raw.mly" ( text_str _startpos ) -# 36417 "src/ocaml/preprocess/parser_raw.ml" +# 36410 "src/ocaml/preprocess/parser_raw.ml" in # 267 "" ( xs @ ys ) -# 36423 "src/ocaml/preprocess/parser_raw.ml" +# 36416 "src/ocaml/preprocess/parser_raw.ml" in # 1858 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 36429 "src/ocaml/preprocess/parser_raw.ml" +# 36422 "src/ocaml/preprocess/parser_raw.ml" in # 213 "" ( x :: xs ) -# 36435 "src/ocaml/preprocess/parser_raw.ml" +# 36428 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -36485,12 +36478,12 @@ module Tables = struct let attrs = # 5399 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 36489 "src/ocaml/preprocess/parser_raw.ml" +# 36482 "src/ocaml/preprocess/parser_raw.ml" in # 1849 "src/ocaml/preprocess/parser_raw.mly" ( mkstrexp e attrs ) -# 36494 "src/ocaml/preprocess/parser_raw.ml" +# 36487 "src/ocaml/preprocess/parser_raw.ml" in let _startpos__1_ = _startpos_e_ in @@ -36498,7 +36491,7 @@ module Tables = struct # 1300 "src/ocaml/preprocess/parser_raw.mly" ( text_str _startpos @ [_1] ) -# 36502 "src/ocaml/preprocess/parser_raw.ml" +# 36495 "src/ocaml/preprocess/parser_raw.ml" in let _startpos__1_ = _startpos_e_ in @@ -36508,19 +36501,19 @@ module Tables = struct # 1319 "src/ocaml/preprocess/parser_raw.mly" ( mark_rhs_docs _startpos _endpos; _1 ) -# 36512 "src/ocaml/preprocess/parser_raw.ml" +# 36505 "src/ocaml/preprocess/parser_raw.ml" in # 1368 "src/ocaml/preprocess/parser_raw.mly" ( x ) -# 36518 "src/ocaml/preprocess/parser_raw.ml" +# 36511 "src/ocaml/preprocess/parser_raw.ml" in # 1842 "src/ocaml/preprocess/parser_raw.mly" ( items ) -# 36524 "src/ocaml/preprocess/parser_raw.ml" +# 36517 "src/ocaml/preprocess/parser_raw.ml" in let xs = @@ -36528,25 +36521,25 @@ module Tables = struct # 1302 "src/ocaml/preprocess/parser_raw.mly" ( text_str _startpos ) -# 36532 "src/ocaml/preprocess/parser_raw.ml" +# 36525 "src/ocaml/preprocess/parser_raw.ml" in # 267 "" ( xs @ ys ) -# 36538 "src/ocaml/preprocess/parser_raw.ml" +# 36531 "src/ocaml/preprocess/parser_raw.ml" in # 1858 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 36544 "src/ocaml/preprocess/parser_raw.ml" +# 36537 "src/ocaml/preprocess/parser_raw.ml" in # 213 "" ( x :: xs ) -# 36550 "src/ocaml/preprocess/parser_raw.ml" +# 36543 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -36581,19 +36574,19 @@ module Tables = struct # 1300 "src/ocaml/preprocess/parser_raw.mly" ( text_str _startpos @ [_1] ) -# 36585 "src/ocaml/preprocess/parser_raw.ml" +# 36578 "src/ocaml/preprocess/parser_raw.ml" in # 1858 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 36591 "src/ocaml/preprocess/parser_raw.ml" +# 36584 "src/ocaml/preprocess/parser_raw.ml" in # 213 "" ( x :: xs ) -# 36597 "src/ocaml/preprocess/parser_raw.ml" +# 36590 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -36611,7 +36604,7 @@ module Tables = struct let _v : (Parsetree.class_type_field list list) = # 211 "" ( [] ) -# 36615 "src/ocaml/preprocess/parser_raw.ml" +# 36608 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -36645,13 +36638,13 @@ module Tables = struct # 1314 "src/ocaml/preprocess/parser_raw.mly" ( text_csig _startpos @ [_1] ) -# 36649 "src/ocaml/preprocess/parser_raw.ml" +# 36642 "src/ocaml/preprocess/parser_raw.ml" in # 213 "" ( x :: xs ) -# 36655 "src/ocaml/preprocess/parser_raw.ml" +# 36648 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -36669,7 +36662,7 @@ module Tables = struct let _v : (Parsetree.class_field list list) = # 211 "" ( [] ) -# 36673 "src/ocaml/preprocess/parser_raw.ml" +# 36666 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -36703,13 +36696,13 @@ module Tables = struct # 1312 "src/ocaml/preprocess/parser_raw.mly" ( text_cstr _startpos @ [_1] ) -# 36707 "src/ocaml/preprocess/parser_raw.ml" +# 36700 "src/ocaml/preprocess/parser_raw.ml" in # 213 "" ( x :: xs ) -# 36713 "src/ocaml/preprocess/parser_raw.ml" +# 36706 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -36727,7 +36720,7 @@ module Tables = struct let _v : (Parsetree.structure_item list list) = # 211 "" ( [] ) -# 36731 "src/ocaml/preprocess/parser_raw.ml" +# 36724 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -36761,13 +36754,13 @@ module Tables = struct # 1300 "src/ocaml/preprocess/parser_raw.mly" ( text_str _startpos @ [_1] ) -# 36765 "src/ocaml/preprocess/parser_raw.ml" +# 36758 "src/ocaml/preprocess/parser_raw.ml" in # 213 "" ( x :: xs ) -# 36771 "src/ocaml/preprocess/parser_raw.ml" +# 36764 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -36785,7 +36778,7 @@ module Tables = struct let _v : (Parsetree.toplevel_phrase list list) = # 211 "" ( [] ) -# 36789 "src/ocaml/preprocess/parser_raw.ml" +# 36782 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -36820,30 +36813,30 @@ module Tables = struct let _1 = # 1366 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 36824 "src/ocaml/preprocess/parser_raw.ml" +# 36817 "src/ocaml/preprocess/parser_raw.ml" in # 1618 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 36829 "src/ocaml/preprocess/parser_raw.ml" +# 36822 "src/ocaml/preprocess/parser_raw.ml" in # 183 "" ( x ) -# 36835 "src/ocaml/preprocess/parser_raw.ml" +# 36828 "src/ocaml/preprocess/parser_raw.ml" in # 1630 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 36841 "src/ocaml/preprocess/parser_raw.ml" +# 36834 "src/ocaml/preprocess/parser_raw.ml" in # 213 "" ( x :: xs ) -# 36847 "src/ocaml/preprocess/parser_raw.ml" +# 36840 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -36897,18 +36890,18 @@ module Tables = struct let attrs = # 5399 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 36901 "src/ocaml/preprocess/parser_raw.ml" +# 36894 "src/ocaml/preprocess/parser_raw.ml" in # 1849 "src/ocaml/preprocess/parser_raw.mly" ( mkstrexp e attrs ) -# 36906 "src/ocaml/preprocess/parser_raw.ml" +# 36899 "src/ocaml/preprocess/parser_raw.ml" in # 1310 "src/ocaml/preprocess/parser_raw.mly" ( Ptop_def [_1] ) -# 36912 "src/ocaml/preprocess/parser_raw.ml" +# 36905 "src/ocaml/preprocess/parser_raw.ml" in let _startpos__1_ = _startpos_e_ in @@ -36916,37 +36909,37 @@ module Tables = struct # 1308 "src/ocaml/preprocess/parser_raw.mly" ( text_def _startpos @ [_1] ) -# 36920 "src/ocaml/preprocess/parser_raw.ml" +# 36913 "src/ocaml/preprocess/parser_raw.ml" in # 1368 "src/ocaml/preprocess/parser_raw.mly" ( x ) -# 36926 "src/ocaml/preprocess/parser_raw.ml" +# 36919 "src/ocaml/preprocess/parser_raw.ml" in # 1618 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 36932 "src/ocaml/preprocess/parser_raw.ml" +# 36925 "src/ocaml/preprocess/parser_raw.ml" in # 183 "" ( x ) -# 36938 "src/ocaml/preprocess/parser_raw.ml" +# 36931 "src/ocaml/preprocess/parser_raw.ml" in # 1630 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 36944 "src/ocaml/preprocess/parser_raw.ml" +# 36937 "src/ocaml/preprocess/parser_raw.ml" in # 213 "" ( x :: xs ) -# 36950 "src/ocaml/preprocess/parser_raw.ml" +# 36943 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -36980,25 +36973,25 @@ module Tables = struct let _1 = # 1310 "src/ocaml/preprocess/parser_raw.mly" ( Ptop_def [_1] ) -# 36984 "src/ocaml/preprocess/parser_raw.ml" +# 36977 "src/ocaml/preprocess/parser_raw.ml" in let _startpos = _startpos__1_ in # 1308 "src/ocaml/preprocess/parser_raw.mly" ( text_def _startpos @ [_1] ) -# 36990 "src/ocaml/preprocess/parser_raw.ml" +# 36983 "src/ocaml/preprocess/parser_raw.ml" in # 1630 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 36996 "src/ocaml/preprocess/parser_raw.ml" +# 36989 "src/ocaml/preprocess/parser_raw.ml" in # 213 "" ( x :: xs ) -# 37002 "src/ocaml/preprocess/parser_raw.ml" +# 36995 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -37036,26 +37029,26 @@ module Tables = struct # 1319 "src/ocaml/preprocess/parser_raw.mly" ( mark_rhs_docs _startpos _endpos; _1 ) -# 37040 "src/ocaml/preprocess/parser_raw.ml" +# 37033 "src/ocaml/preprocess/parser_raw.ml" in let _startpos = _startpos__1_ in # 1308 "src/ocaml/preprocess/parser_raw.mly" ( text_def _startpos @ [_1] ) -# 37047 "src/ocaml/preprocess/parser_raw.ml" +# 37040 "src/ocaml/preprocess/parser_raw.ml" in # 1630 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 37053 "src/ocaml/preprocess/parser_raw.ml" +# 37046 "src/ocaml/preprocess/parser_raw.ml" in # 213 "" ( x :: xs ) -# 37059 "src/ocaml/preprocess/parser_raw.ml" +# 37052 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -37094,7 +37087,7 @@ module Tables = struct let _v : ((Longident.t Location.loc * Parsetree.pattern) list * unit option) = let _2 = # 124 "" ( None ) -# 37098 "src/ocaml/preprocess/parser_raw.ml" +# 37091 "src/ocaml/preprocess/parser_raw.ml" in let x = let label = @@ -37104,7 +37097,7 @@ module Tables = struct # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 37108 "src/ocaml/preprocess/parser_raw.ml" +# 37101 "src/ocaml/preprocess/parser_raw.ml" in let _startpos_label_ = _startpos__1_ in @@ -37126,13 +37119,13 @@ module Tables = struct in label, mkpat_with_modes ~loc:constraint_loc ~modes:[] ~pat ~cty:octy ) -# 37130 "src/ocaml/preprocess/parser_raw.ml" +# 37123 "src/ocaml/preprocess/parser_raw.ml" in # 1555 "src/ocaml/preprocess/parser_raw.mly" ( [x], None ) -# 37136 "src/ocaml/preprocess/parser_raw.ml" +# 37129 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -37178,7 +37171,7 @@ module Tables = struct let _v : ((Longident.t Location.loc * Parsetree.pattern) list * unit option) = let _2 = # 126 "" ( Some x ) -# 37182 "src/ocaml/preprocess/parser_raw.ml" +# 37175 "src/ocaml/preprocess/parser_raw.ml" in let x = let label = @@ -37188,7 +37181,7 @@ module Tables = struct # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 37192 "src/ocaml/preprocess/parser_raw.ml" +# 37185 "src/ocaml/preprocess/parser_raw.ml" in let _startpos_label_ = _startpos__1_ in @@ -37210,13 +37203,13 @@ module Tables = struct in label, mkpat_with_modes ~loc:constraint_loc ~modes:[] ~pat ~cty:octy ) -# 37214 "src/ocaml/preprocess/parser_raw.ml" +# 37207 "src/ocaml/preprocess/parser_raw.ml" in # 1555 "src/ocaml/preprocess/parser_raw.mly" ( [x], None ) -# 37220 "src/ocaml/preprocess/parser_raw.ml" +# 37213 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -37281,7 +37274,7 @@ module Tables = struct # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 37285 "src/ocaml/preprocess/parser_raw.ml" +# 37278 "src/ocaml/preprocess/parser_raw.ml" in let _startpos_label_ = _startpos__1_ in @@ -37303,13 +37296,13 @@ module Tables = struct in label, mkpat_with_modes ~loc:constraint_loc ~modes:[] ~pat ~cty:octy ) -# 37307 "src/ocaml/preprocess/parser_raw.ml" +# 37300 "src/ocaml/preprocess/parser_raw.ml" in # 1557 "src/ocaml/preprocess/parser_raw.mly" ( [x], Some y ) -# 37313 "src/ocaml/preprocess/parser_raw.ml" +# 37306 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -37367,7 +37360,7 @@ module Tables = struct # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 37371 "src/ocaml/preprocess/parser_raw.ml" +# 37364 "src/ocaml/preprocess/parser_raw.ml" in let _startpos_label_ = _startpos__1_ in @@ -37389,14 +37382,14 @@ module Tables = struct in label, mkpat_with_modes ~loc:constraint_loc ~modes:[] ~pat ~cty:octy ) -# 37393 "src/ocaml/preprocess/parser_raw.ml" +# 37386 "src/ocaml/preprocess/parser_raw.ml" in # 1561 "src/ocaml/preprocess/parser_raw.mly" ( let xs, y = tail in x :: xs, y ) -# 37400 "src/ocaml/preprocess/parser_raw.ml" +# 37393 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -37435,7 +37428,7 @@ module Tables = struct let _v : (Parsetree.case) = # 3514 "src/ocaml/preprocess/parser_raw.mly" ( Exp.case _1 (merloc _endpos__2_ _3) ) -# 37439 "src/ocaml/preprocess/parser_raw.ml" +# 37432 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -37488,7 +37481,7 @@ module Tables = struct let _v : (Parsetree.case) = # 3516 "src/ocaml/preprocess/parser_raw.mly" ( Exp.case _1 ~guard:(merloc _endpos__2_ _3) (merloc _endpos__4_ _5) ) -# 37492 "src/ocaml/preprocess/parser_raw.ml" +# 37485 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -37529,7 +37522,7 @@ module Tables = struct # 3518 "src/ocaml/preprocess/parser_raw.mly" ( Exp.case _1 (merloc _endpos__2_ (Exp.unreachable ~loc:(make_loc _loc__3_) ())) ) -# 37533 "src/ocaml/preprocess/parser_raw.ml" +# 37526 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -37592,7 +37585,7 @@ module Tables = struct let _1 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 37596 "src/ocaml/preprocess/parser_raw.ml" +# 37589 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -37603,7 +37596,7 @@ module Tables = struct # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 37607 "src/ocaml/preprocess/parser_raw.ml" +# 37600 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__6_ = _endpos__1_inlined3_ in @@ -37612,7 +37605,7 @@ module Tables = struct # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 37616 "src/ocaml/preprocess/parser_raw.ml" +# 37609 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__4_ = _endpos__1_inlined2_ in @@ -37621,14 +37614,14 @@ module Tables = struct # 4500 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 37625 "src/ocaml/preprocess/parser_raw.ml" +# 37618 "src/ocaml/preprocess/parser_raw.ml" in let _1 = let _1 = # 5010 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 37632 "src/ocaml/preprocess/parser_raw.ml" +# 37625 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in @@ -37636,7 +37629,7 @@ module Tables = struct # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 37640 "src/ocaml/preprocess/parser_raw.ml" +# 37633 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__6_ in @@ -37651,13 +37644,13 @@ module Tables = struct in let attrs = add_info_attrs info (_4 @ _6) in Of.tag ~loc:(make_loc _sloc) ~attrs _1 _3 ) -# 37655 "src/ocaml/preprocess/parser_raw.ml" +# 37648 "src/ocaml/preprocess/parser_raw.ml" in # 4976 "src/ocaml/preprocess/parser_raw.mly" ( let (f, c) = tail in (head :: f, c) ) -# 37661 "src/ocaml/preprocess/parser_raw.ml" +# 37654 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -37700,13 +37693,13 @@ module Tables = struct # 5006 "src/ocaml/preprocess/parser_raw.mly" ( Of.inherit_ ~loc:(make_loc _sloc) ty ) -# 37704 "src/ocaml/preprocess/parser_raw.ml" +# 37697 "src/ocaml/preprocess/parser_raw.ml" in # 4976 "src/ocaml/preprocess/parser_raw.mly" ( let (f, c) = tail in (head :: f, c) ) -# 37710 "src/ocaml/preprocess/parser_raw.ml" +# 37703 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -37762,7 +37755,7 @@ module Tables = struct let _1 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 37766 "src/ocaml/preprocess/parser_raw.ml" +# 37759 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -37773,7 +37766,7 @@ module Tables = struct # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 37777 "src/ocaml/preprocess/parser_raw.ml" +# 37770 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__6_ = _endpos__1_inlined3_ in @@ -37782,7 +37775,7 @@ module Tables = struct # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 37786 "src/ocaml/preprocess/parser_raw.ml" +# 37779 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__4_ = _endpos__1_inlined2_ in @@ -37791,14 +37784,14 @@ module Tables = struct # 4500 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 37795 "src/ocaml/preprocess/parser_raw.ml" +# 37788 "src/ocaml/preprocess/parser_raw.ml" in let _1 = let _1 = # 5010 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 37802 "src/ocaml/preprocess/parser_raw.ml" +# 37795 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in @@ -37806,7 +37799,7 @@ module Tables = struct # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 37810 "src/ocaml/preprocess/parser_raw.ml" +# 37803 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__6_ in @@ -37821,13 +37814,13 @@ module Tables = struct in let attrs = add_info_attrs info (_4 @ _6) in Of.tag ~loc:(make_loc _sloc) ~attrs _1 _3 ) -# 37825 "src/ocaml/preprocess/parser_raw.ml" +# 37818 "src/ocaml/preprocess/parser_raw.ml" in # 4979 "src/ocaml/preprocess/parser_raw.mly" ( [head], Closed ) -# 37831 "src/ocaml/preprocess/parser_raw.ml" +# 37824 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -37863,13 +37856,13 @@ module Tables = struct # 5006 "src/ocaml/preprocess/parser_raw.mly" ( Of.inherit_ ~loc:(make_loc _sloc) ty ) -# 37867 "src/ocaml/preprocess/parser_raw.ml" +# 37860 "src/ocaml/preprocess/parser_raw.ml" in # 4979 "src/ocaml/preprocess/parser_raw.mly" ( [head], Closed ) -# 37873 "src/ocaml/preprocess/parser_raw.ml" +# 37866 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -37911,7 +37904,7 @@ module Tables = struct let _1 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 37915 "src/ocaml/preprocess/parser_raw.ml" +# 37908 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -37922,7 +37915,7 @@ module Tables = struct # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 37926 "src/ocaml/preprocess/parser_raw.ml" +# 37919 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__4_ = _endpos__1_inlined2_ in @@ -37931,14 +37924,14 @@ module Tables = struct # 4500 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 37935 "src/ocaml/preprocess/parser_raw.ml" +# 37928 "src/ocaml/preprocess/parser_raw.ml" in let _1 = let _1 = # 5010 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 37942 "src/ocaml/preprocess/parser_raw.ml" +# 37935 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in @@ -37946,7 +37939,7 @@ module Tables = struct # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 37950 "src/ocaml/preprocess/parser_raw.ml" +# 37943 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__4_ in @@ -37957,13 +37950,13 @@ module Tables = struct ( let info = symbol_info _endpos in let attrs = add_info_attrs info _4 in Of.tag ~loc:(make_loc _sloc) ~attrs _1 _3 ) -# 37961 "src/ocaml/preprocess/parser_raw.ml" +# 37954 "src/ocaml/preprocess/parser_raw.ml" in # 4982 "src/ocaml/preprocess/parser_raw.mly" ( [head], Closed ) -# 37967 "src/ocaml/preprocess/parser_raw.ml" +# 37960 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -37992,13 +37985,13 @@ module Tables = struct # 5006 "src/ocaml/preprocess/parser_raw.mly" ( Of.inherit_ ~loc:(make_loc _sloc) ty ) -# 37996 "src/ocaml/preprocess/parser_raw.ml" +# 37989 "src/ocaml/preprocess/parser_raw.ml" in # 4982 "src/ocaml/preprocess/parser_raw.mly" ( [head], Closed ) -# 38002 "src/ocaml/preprocess/parser_raw.ml" +# 37995 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -38023,7 +38016,7 @@ module Tables = struct let _v : (Parsetree.object_field list * Asttypes.closed_flag) = # 4984 "src/ocaml/preprocess/parser_raw.mly" ( [], Open ) -# 38027 "src/ocaml/preprocess/parser_raw.ml" +# 38020 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -38070,7 +38063,7 @@ module Tables = struct let _1_inlined1 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 38074 "src/ocaml/preprocess/parser_raw.ml" +# 38067 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined1 in let private_ : (Asttypes.private_flag) = Obj.magic private_ in let _1 : (Parsetree.attributes) = Obj.magic _1 in @@ -38083,7 +38076,7 @@ module Tables = struct # 4496 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 38087 "src/ocaml/preprocess/parser_raw.ml" +# 38080 "src/ocaml/preprocess/parser_raw.ml" in let label = @@ -38091,7 +38084,7 @@ module Tables = struct let _1 = # 5010 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 38095 "src/ocaml/preprocess/parser_raw.ml" +# 38088 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in @@ -38099,23 +38092,23 @@ module Tables = struct # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 38103 "src/ocaml/preprocess/parser_raw.ml" +# 38096 "src/ocaml/preprocess/parser_raw.ml" in let attrs = # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 38109 "src/ocaml/preprocess/parser_raw.ml" +# 38102 "src/ocaml/preprocess/parser_raw.ml" in let _1 = # 5301 "src/ocaml/preprocess/parser_raw.mly" ( Fresh ) -# 38114 "src/ocaml/preprocess/parser_raw.ml" +# 38107 "src/ocaml/preprocess/parser_raw.ml" in # 2509 "src/ocaml/preprocess/parser_raw.mly" ( (label, private_, Cfk_virtual ty), attrs ) -# 38119 "src/ocaml/preprocess/parser_raw.ml" +# 38112 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -38155,7 +38148,7 @@ module Tables = struct let _1_inlined1 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 38159 "src/ocaml/preprocess/parser_raw.ml" +# 38152 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined1 in let _3 : (Asttypes.private_flag) = Obj.magic _3 in let _1 : (Parsetree.attributes) = Obj.magic _1 in @@ -38168,7 +38161,7 @@ module Tables = struct # 3492 "src/ocaml/preprocess/parser_raw.mly" (_1 []) -# 38172 "src/ocaml/preprocess/parser_raw.ml" +# 38165 "src/ocaml/preprocess/parser_raw.ml" in let _4 = @@ -38176,7 +38169,7 @@ module Tables = struct let _1 = # 5010 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 38180 "src/ocaml/preprocess/parser_raw.ml" +# 38173 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in @@ -38184,18 +38177,18 @@ module Tables = struct # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 38188 "src/ocaml/preprocess/parser_raw.ml" +# 38181 "src/ocaml/preprocess/parser_raw.ml" in let _2 = # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 38194 "src/ocaml/preprocess/parser_raw.ml" +# 38187 "src/ocaml/preprocess/parser_raw.ml" in let _1 = # 5304 "src/ocaml/preprocess/parser_raw.mly" ( Fresh ) -# 38199 "src/ocaml/preprocess/parser_raw.ml" +# 38192 "src/ocaml/preprocess/parser_raw.ml" in # 2511 "src/ocaml/preprocess/parser_raw.mly" @@ -38203,7 +38196,7 @@ module Tables = struct let loc = Location.(e.pexp_loc.loc_start, e.pexp_loc.loc_end) in (_4, _3, Cfk_concrete (_1, ghexp ~loc (Pexp_poly (e, None)))), _2 ) -# 38207 "src/ocaml/preprocess/parser_raw.ml" +# 38200 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -38249,7 +38242,7 @@ module Tables = struct let _1_inlined2 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 38253 "src/ocaml/preprocess/parser_raw.ml" +# 38246 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined2 in let _3 : (Asttypes.private_flag) = Obj.magic _3 in let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in @@ -38263,7 +38256,7 @@ module Tables = struct # 3492 "src/ocaml/preprocess/parser_raw.mly" (_1 []) -# 38267 "src/ocaml/preprocess/parser_raw.ml" +# 38260 "src/ocaml/preprocess/parser_raw.ml" in let _4 = @@ -38271,7 +38264,7 @@ module Tables = struct let _1 = # 5010 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 38275 "src/ocaml/preprocess/parser_raw.ml" +# 38268 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in @@ -38279,7 +38272,7 @@ module Tables = struct # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 38283 "src/ocaml/preprocess/parser_raw.ml" +# 38276 "src/ocaml/preprocess/parser_raw.ml" in let _2 = @@ -38287,13 +38280,13 @@ module Tables = struct # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 38291 "src/ocaml/preprocess/parser_raw.ml" +# 38284 "src/ocaml/preprocess/parser_raw.ml" in let _1 = # 5305 "src/ocaml/preprocess/parser_raw.mly" ( Override ) -# 38297 "src/ocaml/preprocess/parser_raw.ml" +# 38290 "src/ocaml/preprocess/parser_raw.ml" in # 2511 "src/ocaml/preprocess/parser_raw.mly" @@ -38301,7 +38294,7 @@ module Tables = struct let loc = Location.(e.pexp_loc.loc_start, e.pexp_loc.loc_end) in (_4, _3, Cfk_concrete (_1, ghexp ~loc (Pexp_poly (e, None)))), _2 ) -# 38305 "src/ocaml/preprocess/parser_raw.ml" +# 38298 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -38362,7 +38355,7 @@ module Tables = struct let _1_inlined1 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 38366 "src/ocaml/preprocess/parser_raw.ml" +# 38359 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined1 in let _3 : (Asttypes.private_flag) = Obj.magic _3 in let _1 : (Parsetree.attributes) = Obj.magic _1 in @@ -38375,7 +38368,7 @@ module Tables = struct # 4496 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 38379 "src/ocaml/preprocess/parser_raw.ml" +# 38372 "src/ocaml/preprocess/parser_raw.ml" in let _startpos__6_ = _startpos__1_inlined2_ in @@ -38384,7 +38377,7 @@ module Tables = struct let _1 = # 5010 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 38388 "src/ocaml/preprocess/parser_raw.ml" +# 38381 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in @@ -38392,18 +38385,18 @@ module Tables = struct # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 38396 "src/ocaml/preprocess/parser_raw.ml" +# 38389 "src/ocaml/preprocess/parser_raw.ml" in let _2 = # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 38402 "src/ocaml/preprocess/parser_raw.ml" +# 38395 "src/ocaml/preprocess/parser_raw.ml" in let _1 = # 5304 "src/ocaml/preprocess/parser_raw.mly" ( Fresh ) -# 38407 "src/ocaml/preprocess/parser_raw.ml" +# 38400 "src/ocaml/preprocess/parser_raw.ml" in # 2517 "src/ocaml/preprocess/parser_raw.mly" @@ -38411,7 +38404,7 @@ module Tables = struct let loc = (_startpos__6_, _endpos__8_) in ghexp ~loc (Pexp_poly(_8, Some _6)) in (_4, _3, Cfk_concrete (_1, poly_exp)), _2 ) -# 38415 "src/ocaml/preprocess/parser_raw.ml" +# 38408 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -38478,7 +38471,7 @@ module Tables = struct let _1_inlined2 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 38482 "src/ocaml/preprocess/parser_raw.ml" +# 38475 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined2 in let _3 : (Asttypes.private_flag) = Obj.magic _3 in let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in @@ -38492,7 +38485,7 @@ module Tables = struct # 4496 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 38496 "src/ocaml/preprocess/parser_raw.ml" +# 38489 "src/ocaml/preprocess/parser_raw.ml" in let _startpos__6_ = _startpos__1_inlined3_ in @@ -38501,7 +38494,7 @@ module Tables = struct let _1 = # 5010 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 38505 "src/ocaml/preprocess/parser_raw.ml" +# 38498 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in @@ -38509,7 +38502,7 @@ module Tables = struct # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 38513 "src/ocaml/preprocess/parser_raw.ml" +# 38506 "src/ocaml/preprocess/parser_raw.ml" in let _2 = @@ -38517,13 +38510,13 @@ module Tables = struct # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 38521 "src/ocaml/preprocess/parser_raw.ml" +# 38514 "src/ocaml/preprocess/parser_raw.ml" in let _1 = # 5305 "src/ocaml/preprocess/parser_raw.mly" ( Override ) -# 38527 "src/ocaml/preprocess/parser_raw.ml" +# 38520 "src/ocaml/preprocess/parser_raw.ml" in # 2517 "src/ocaml/preprocess/parser_raw.mly" @@ -38531,7 +38524,7 @@ module Tables = struct let loc = (_startpos__6_, _endpos__8_) in ghexp ~loc (Pexp_poly(_8, Some _6)) in (_4, _3, Cfk_concrete (_1, poly_exp)), _2 ) -# 38535 "src/ocaml/preprocess/parser_raw.ml" +# 38528 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -38613,7 +38606,7 @@ module Tables = struct let _1_inlined1 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 38617 "src/ocaml/preprocess/parser_raw.ml" +# 38610 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined1 in let _3 : (Asttypes.private_flag) = Obj.magic _3 in let _1 : (Parsetree.attributes) = Obj.magic _1 in @@ -38626,7 +38619,7 @@ module Tables = struct let _1 = # 5010 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 38630 "src/ocaml/preprocess/parser_raw.ml" +# 38623 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in @@ -38634,20 +38627,20 @@ module Tables = struct # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 38638 "src/ocaml/preprocess/parser_raw.ml" +# 38631 "src/ocaml/preprocess/parser_raw.ml" in let _startpos__4_ = _startpos__1_inlined1_ in let _2 = # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 38645 "src/ocaml/preprocess/parser_raw.ml" +# 38638 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__2_, _startpos__2_) = (_endpos__1_, _startpos__1_) in let _1 = # 5304 "src/ocaml/preprocess/parser_raw.mly" ( Fresh ) -# 38651 "src/ocaml/preprocess/parser_raw.ml" +# 38644 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__0_, _endpos__0_) in let _endpos = _endpos__11_ in @@ -38674,7 +38667,7 @@ module Tables = struct ghexp ~loc:poly_exp_loc (Pexp_poly(exp, Some poly)) in (_4, _3, Cfk_concrete (_1, poly_exp)), _2 ) -# 38678 "src/ocaml/preprocess/parser_raw.ml" +# 38671 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -38762,7 +38755,7 @@ module Tables = struct let _1_inlined2 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 38766 "src/ocaml/preprocess/parser_raw.ml" +# 38759 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined2 in let _3 : (Asttypes.private_flag) = Obj.magic _3 in let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in @@ -38776,7 +38769,7 @@ module Tables = struct let _1 = # 5010 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 38780 "src/ocaml/preprocess/parser_raw.ml" +# 38773 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in @@ -38784,7 +38777,7 @@ module Tables = struct # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 38788 "src/ocaml/preprocess/parser_raw.ml" +# 38781 "src/ocaml/preprocess/parser_raw.ml" in let _startpos__4_ = _startpos__1_inlined2_ in @@ -38793,14 +38786,14 @@ module Tables = struct # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 38797 "src/ocaml/preprocess/parser_raw.ml" +# 38790 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__2_, _startpos__2_) = (_endpos__1_inlined1_, _startpos__1_inlined1_) in let _1 = # 5305 "src/ocaml/preprocess/parser_raw.mly" ( Override ) -# 38804 "src/ocaml/preprocess/parser_raw.ml" +# 38797 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__11_ in let _symbolstartpos = if _startpos__1_ != _endpos__1_ then @@ -38826,7 +38819,7 @@ module Tables = struct ghexp ~loc:poly_exp_loc (Pexp_poly(exp, Some poly)) in (_4, _3, Cfk_concrete (_1, poly_exp)), _2 ) -# 38830 "src/ocaml/preprocess/parser_raw.ml" +# 38823 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -38847,7 +38840,7 @@ module Tables = struct let _1 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 38851 "src/ocaml/preprocess/parser_raw.ml" +# 38844 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -38855,7 +38848,7 @@ module Tables = struct let _v : (Longident.t) = # 5133 "src/ocaml/preprocess/parser_raw.mly" ( Lident _1 ) -# 38859 "src/ocaml/preprocess/parser_raw.ml" +# 38852 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -38888,7 +38881,7 @@ module Tables = struct let _3 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 38892 "src/ocaml/preprocess/parser_raw.ml" +# 38885 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _3 in let _2 : unit = Obj.magic _2 in let _1 : (Longident.t) = Obj.magic _1 in @@ -38898,7 +38891,7 @@ module Tables = struct let _v : (Longident.t) = # 5134 "src/ocaml/preprocess/parser_raw.mly" ( Ldot(_1,_3) ) -# 38902 "src/ocaml/preprocess/parser_raw.ml" +# 38895 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -38919,7 +38912,7 @@ module Tables = struct let _1 : ( # 1155 "src/ocaml/preprocess/parser_raw.mly" (string) -# 38923 "src/ocaml/preprocess/parser_raw.ml" +# 38916 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -38927,7 +38920,7 @@ module Tables = struct let _v : (Longident.t) = # 5133 "src/ocaml/preprocess/parser_raw.mly" ( Lident _1 ) -# 38931 "src/ocaml/preprocess/parser_raw.ml" +# 38924 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -38960,7 +38953,7 @@ module Tables = struct let _3 : ( # 1155 "src/ocaml/preprocess/parser_raw.mly" (string) -# 38964 "src/ocaml/preprocess/parser_raw.ml" +# 38957 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _3 in let _2 : unit = Obj.magic _2 in let _1 : (Longident.t) = Obj.magic _1 in @@ -38970,7 +38963,7 @@ module Tables = struct let _v : (Longident.t) = # 5134 "src/ocaml/preprocess/parser_raw.mly" ( Ldot(_1,_3) ) -# 38974 "src/ocaml/preprocess/parser_raw.ml" +# 38967 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -38995,12 +38988,12 @@ module Tables = struct let _v : (Longident.t) = let _1 = # 5183 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 38999 "src/ocaml/preprocess/parser_raw.ml" +# 38992 "src/ocaml/preprocess/parser_raw.ml" in # 5133 "src/ocaml/preprocess/parser_raw.mly" ( Lident _1 ) -# 39004 "src/ocaml/preprocess/parser_raw.ml" +# 38997 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -39040,18 +39033,18 @@ module Tables = struct let _1 = # 5113 "src/ocaml/preprocess/parser_raw.mly" ( "::" ) -# 39044 "src/ocaml/preprocess/parser_raw.ml" +# 39037 "src/ocaml/preprocess/parser_raw.ml" in # 5183 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 39049 "src/ocaml/preprocess/parser_raw.ml" +# 39042 "src/ocaml/preprocess/parser_raw.ml" in # 5133 "src/ocaml/preprocess/parser_raw.mly" ( Lident _1 ) -# 39055 "src/ocaml/preprocess/parser_raw.ml" +# 39048 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -39076,12 +39069,12 @@ module Tables = struct let _v : (Longident.t) = let _1 = # 5183 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 39080 "src/ocaml/preprocess/parser_raw.ml" +# 39073 "src/ocaml/preprocess/parser_raw.ml" in # 5133 "src/ocaml/preprocess/parser_raw.mly" ( Lident _1 ) -# 39085 "src/ocaml/preprocess/parser_raw.ml" +# 39078 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -39122,13 +39115,13 @@ module Tables = struct # 5183 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 39126 "src/ocaml/preprocess/parser_raw.ml" +# 39119 "src/ocaml/preprocess/parser_raw.ml" in # 5134 "src/ocaml/preprocess/parser_raw.mly" ( Ldot(_1,_3) ) -# 39132 "src/ocaml/preprocess/parser_raw.ml" +# 39125 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -39182,18 +39175,18 @@ module Tables = struct let _1 = # 5113 "src/ocaml/preprocess/parser_raw.mly" ( "::" ) -# 39186 "src/ocaml/preprocess/parser_raw.ml" +# 39179 "src/ocaml/preprocess/parser_raw.ml" in # 5183 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 39191 "src/ocaml/preprocess/parser_raw.ml" +# 39184 "src/ocaml/preprocess/parser_raw.ml" in # 5134 "src/ocaml/preprocess/parser_raw.mly" ( Ldot(_1,_3) ) -# 39197 "src/ocaml/preprocess/parser_raw.ml" +# 39190 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -39234,13 +39227,13 @@ module Tables = struct # 5183 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 39238 "src/ocaml/preprocess/parser_raw.ml" +# 39231 "src/ocaml/preprocess/parser_raw.ml" in # 5134 "src/ocaml/preprocess/parser_raw.mly" ( Ldot(_1,_3) ) -# 39244 "src/ocaml/preprocess/parser_raw.ml" +# 39237 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -39265,7 +39258,7 @@ module Tables = struct let _v : (Longident.t) = # 5133 "src/ocaml/preprocess/parser_raw.mly" ( Lident _1 ) -# 39269 "src/ocaml/preprocess/parser_raw.ml" +# 39262 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -39304,7 +39297,7 @@ module Tables = struct let _v : (Longident.t) = # 5134 "src/ocaml/preprocess/parser_raw.mly" ( Ldot(_1,_3) ) -# 39308 "src/ocaml/preprocess/parser_raw.ml" +# 39301 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -39329,7 +39322,7 @@ module Tables = struct let _v : (Longident.t) = # 5133 "src/ocaml/preprocess/parser_raw.mly" ( Lident _1 ) -# 39333 "src/ocaml/preprocess/parser_raw.ml" +# 39326 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -39368,7 +39361,7 @@ module Tables = struct let _v : (Longident.t) = # 5134 "src/ocaml/preprocess/parser_raw.mly" ( Ldot(_1,_3) ) -# 39372 "src/ocaml/preprocess/parser_raw.ml" +# 39365 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -39393,7 +39386,7 @@ module Tables = struct let _v : (Longident.t) = # 5133 "src/ocaml/preprocess/parser_raw.mly" ( Lident _1 ) -# 39397 "src/ocaml/preprocess/parser_raw.ml" +# 39390 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -39432,7 +39425,7 @@ module Tables = struct let _v : (Longident.t) = # 5134 "src/ocaml/preprocess/parser_raw.mly" ( Ldot(_1,_3) ) -# 39436 "src/ocaml/preprocess/parser_raw.ml" +# 39429 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -39453,7 +39446,7 @@ module Tables = struct let _1 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 39457 "src/ocaml/preprocess/parser_raw.ml" +# 39450 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -39461,7 +39454,7 @@ module Tables = struct let _v : (Longident.t) = # 5133 "src/ocaml/preprocess/parser_raw.mly" ( Lident _1 ) -# 39465 "src/ocaml/preprocess/parser_raw.ml" +# 39458 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -39494,7 +39487,7 @@ module Tables = struct let _3 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 39498 "src/ocaml/preprocess/parser_raw.ml" +# 39491 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _3 in let _2 : unit = Obj.magic _2 in let _1 : (Longident.t) = Obj.magic _1 in @@ -39504,7 +39497,7 @@ module Tables = struct let _v : (Longident.t) = # 5134 "src/ocaml/preprocess/parser_raw.mly" ( Ldot(_1,_3) ) -# 39508 "src/ocaml/preprocess/parser_raw.ml" +# 39501 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -39525,7 +39518,7 @@ module Tables = struct let _1 : ( # 1155 "src/ocaml/preprocess/parser_raw.mly" (string) -# 39529 "src/ocaml/preprocess/parser_raw.ml" +# 39522 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -39533,7 +39526,7 @@ module Tables = struct let _v : (Longident.t) = # 5133 "src/ocaml/preprocess/parser_raw.mly" ( Lident _1 ) -# 39537 "src/ocaml/preprocess/parser_raw.ml" +# 39530 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -39566,7 +39559,7 @@ module Tables = struct let _3 : ( # 1155 "src/ocaml/preprocess/parser_raw.mly" (string) -# 39570 "src/ocaml/preprocess/parser_raw.ml" +# 39563 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _3 in let _2 : unit = Obj.magic _2 in let _1 : (Longident.t) = Obj.magic _1 in @@ -39576,7 +39569,7 @@ module Tables = struct let _v : (Longident.t) = # 5134 "src/ocaml/preprocess/parser_raw.mly" ( Ldot(_1,_3) ) -# 39580 "src/ocaml/preprocess/parser_raw.ml" +# 39573 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -39601,7 +39594,7 @@ module Tables = struct let _v : (Longident.t) = # 5133 "src/ocaml/preprocess/parser_raw.mly" ( Lident _1 ) -# 39605 "src/ocaml/preprocess/parser_raw.ml" +# 39598 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -39640,7 +39633,7 @@ module Tables = struct let _v : (Longident.t) = # 5134 "src/ocaml/preprocess/parser_raw.mly" ( Ldot(_1,_3) ) -# 39644 "src/ocaml/preprocess/parser_raw.ml" +# 39637 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -39665,7 +39658,7 @@ module Tables = struct let _v : (Longident.t) = # 5159 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 39669 "src/ocaml/preprocess/parser_raw.ml" +# 39662 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -39714,7 +39707,7 @@ module Tables = struct # 5161 "src/ocaml/preprocess/parser_raw.mly" ( lapply ~loc:_sloc _1 _3 ) -# 39718 "src/ocaml/preprocess/parser_raw.ml" +# 39711 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -39739,7 +39732,7 @@ module Tables = struct let _v : (Longident.t) = # 5156 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 39743 "src/ocaml/preprocess/parser_raw.ml" +# 39736 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -39771,7 +39764,7 @@ module Tables = struct let _v : (Parsetree.module_expr) = # 1926 "src/ocaml/preprocess/parser_raw.mly" ( me ) -# 39775 "src/ocaml/preprocess/parser_raw.ml" +# 39768 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -39819,12 +39812,12 @@ module Tables = struct let mm = # 4699 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 39823 "src/ocaml/preprocess/parser_raw.ml" +# 39816 "src/ocaml/preprocess/parser_raw.ml" in # 1933 "src/ocaml/preprocess/parser_raw.mly" ( Pmod_constraint(me, Some mty, mm) ) -# 39828 "src/ocaml/preprocess/parser_raw.ml" +# 39821 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_me_ in @@ -39834,13 +39827,13 @@ module Tables = struct # 1339 "src/ocaml/preprocess/parser_raw.mly" ( mkmod ~loc:_sloc _1 ) -# 39838 "src/ocaml/preprocess/parser_raw.ml" +# 39831 "src/ocaml/preprocess/parser_raw.ml" in # 1939 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 39844 "src/ocaml/preprocess/parser_raw.ml" +# 39837 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -39897,13 +39890,13 @@ module Tables = struct # 4700 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 39901 "src/ocaml/preprocess/parser_raw.ml" +# 39894 "src/ocaml/preprocess/parser_raw.ml" in # 1933 "src/ocaml/preprocess/parser_raw.mly" ( Pmod_constraint(me, Some mty, mm) ) -# 39907 "src/ocaml/preprocess/parser_raw.ml" +# 39900 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_me_ in @@ -39913,13 +39906,13 @@ module Tables = struct # 1339 "src/ocaml/preprocess/parser_raw.mly" ( mkmod ~loc:_sloc _1 ) -# 39917 "src/ocaml/preprocess/parser_raw.ml" +# 39910 "src/ocaml/preprocess/parser_raw.ml" in # 1939 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 39923 "src/ocaml/preprocess/parser_raw.ml" +# 39916 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -39959,7 +39952,7 @@ module Tables = struct let _1 = # 1935 "src/ocaml/preprocess/parser_raw.mly" ( Pmod_constraint(me, None, mm) ) -# 39963 "src/ocaml/preprocess/parser_raw.ml" +# 39956 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_me_, _startpos_mm_) in let _endpos = _endpos__1_ in @@ -39968,13 +39961,13 @@ module Tables = struct # 1339 "src/ocaml/preprocess/parser_raw.mly" ( mkmod ~loc:_sloc _1 ) -# 39972 "src/ocaml/preprocess/parser_raw.ml" +# 39965 "src/ocaml/preprocess/parser_raw.ml" in # 1939 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 39978 "src/ocaml/preprocess/parser_raw.ml" +# 39971 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -40008,7 +40001,7 @@ module Tables = struct # 1937 "src/ocaml/preprocess/parser_raw.mly" ( let (_, arg) = arg_and_pos in Pmod_functor(arg, body) ) -# 40012 "src/ocaml/preprocess/parser_raw.ml" +# 40005 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_body_, _startpos_arg_and_pos_) in let _endpos = _endpos__1_ in @@ -40017,13 +40010,13 @@ module Tables = struct # 1339 "src/ocaml/preprocess/parser_raw.mly" ( mkmod ~loc:_sloc _1 ) -# 40021 "src/ocaml/preprocess/parser_raw.ml" +# 40014 "src/ocaml/preprocess/parser_raw.ml" in # 1939 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 40027 "src/ocaml/preprocess/parser_raw.ml" +# 40020 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -40062,7 +40055,7 @@ module Tables = struct let _v : (Parsetree.module_type * Parsetree.modalities) = # 2221 "src/ocaml/preprocess/parser_raw.mly" ( mty, mm ) -# 40066 "src/ocaml/preprocess/parser_raw.ml" +# 40059 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -40097,7 +40090,7 @@ module Tables = struct ( let (_, arg) = arg_and_pos in let (ret, mret) = body in Pmty_functor(arg, ret, mret) ) -# 40101 "src/ocaml/preprocess/parser_raw.ml" +# 40094 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_body_, _startpos_arg_and_pos_) in let _endpos = _endpos__1_ in @@ -40106,13 +40099,13 @@ module Tables = struct # 1341 "src/ocaml/preprocess/parser_raw.mly" ( mkmty ~loc:_sloc _1 ) -# 40110 "src/ocaml/preprocess/parser_raw.ml" +# 40103 "src/ocaml/preprocess/parser_raw.ml" in # 2232 "src/ocaml/preprocess/parser_raw.mly" ( _1, [] ) -# 40116 "src/ocaml/preprocess/parser_raw.ml" +# 40109 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -40144,12 +40137,12 @@ module Tables = struct let _v : (Parsetree.module_type * Parsetree.modes) = let mm = # 4699 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 40148 "src/ocaml/preprocess/parser_raw.ml" +# 40141 "src/ocaml/preprocess/parser_raw.ml" in # 2221 "src/ocaml/preprocess/parser_raw.mly" ( mty, mm ) -# 40153 "src/ocaml/preprocess/parser_raw.ml" +# 40146 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -40190,13 +40183,13 @@ module Tables = struct # 4700 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 40194 "src/ocaml/preprocess/parser_raw.ml" +# 40187 "src/ocaml/preprocess/parser_raw.ml" in # 2221 "src/ocaml/preprocess/parser_raw.mly" ( mty, mm ) -# 40200 "src/ocaml/preprocess/parser_raw.ml" +# 40193 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -40231,7 +40224,7 @@ module Tables = struct ( let (_, arg) = arg_and_pos in let (ret, mret) = body in Pmty_functor(arg, ret, mret) ) -# 40235 "src/ocaml/preprocess/parser_raw.ml" +# 40228 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_body_, _startpos_arg_and_pos_) in let _endpos = _endpos__1_ in @@ -40240,13 +40233,13 @@ module Tables = struct # 1341 "src/ocaml/preprocess/parser_raw.mly" ( mkmty ~loc:_sloc _1 ) -# 40244 "src/ocaml/preprocess/parser_raw.ml" +# 40237 "src/ocaml/preprocess/parser_raw.ml" in # 2232 "src/ocaml/preprocess/parser_raw.mly" ( _1, [] ) -# 40250 "src/ocaml/preprocess/parser_raw.ml" +# 40243 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -40294,7 +40287,7 @@ module Tables = struct # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 40298 "src/ocaml/preprocess/parser_raw.ml" +# 40291 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__4_ in @@ -40303,7 +40296,7 @@ module Tables = struct # 1735 "src/ocaml/preprocess/parser_raw.mly" ( mkmod ~loc:_sloc ~attrs (Pmod_structure s) ) -# 40307 "src/ocaml/preprocess/parser_raw.ml" +# 40300 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -40358,7 +40351,7 @@ module Tables = struct # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 40362 "src/ocaml/preprocess/parser_raw.ml" +# 40355 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_me_ in @@ -40371,7 +40364,7 @@ module Tables = struct mkmod ~loc:(startpos, _endpos) (Pmod_functor (arg, acc)) ) me args ) ) -# 40375 "src/ocaml/preprocess/parser_raw.ml" +# 40368 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -40396,7 +40389,7 @@ module Tables = struct let _v : (Parsetree.module_expr) = # 1751 "src/ocaml/preprocess/parser_raw.mly" ( me ) -# 40400 "src/ocaml/preprocess/parser_raw.ml" +# 40393 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -40436,7 +40429,7 @@ module Tables = struct } -> mkmod ~loc:_sloc (pmod_instance me) | attr -> Mod.attr me attr ) -# 40440 "src/ocaml/preprocess/parser_raw.ml" +# 40433 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -40467,13 +40460,13 @@ module Tables = struct # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 40471 "src/ocaml/preprocess/parser_raw.ml" +# 40464 "src/ocaml/preprocess/parser_raw.ml" in # 1762 "src/ocaml/preprocess/parser_raw.mly" ( Pmod_ident x ) -# 40477 "src/ocaml/preprocess/parser_raw.ml" +# 40470 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in @@ -40482,13 +40475,13 @@ module Tables = struct # 1339 "src/ocaml/preprocess/parser_raw.mly" ( mkmod ~loc:_sloc _1 ) -# 40486 "src/ocaml/preprocess/parser_raw.ml" +# 40479 "src/ocaml/preprocess/parser_raw.ml" in # 1777 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 40492 "src/ocaml/preprocess/parser_raw.ml" +# 40485 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -40521,7 +40514,7 @@ module Tables = struct let _1 = # 1765 "src/ocaml/preprocess/parser_raw.mly" ( Pmod_apply(me1, me2) ) -# 40525 "src/ocaml/preprocess/parser_raw.ml" +# 40518 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_me2_, _startpos_me1_) in let _endpos = _endpos__1_ in @@ -40530,13 +40523,13 @@ module Tables = struct # 1339 "src/ocaml/preprocess/parser_raw.mly" ( mkmod ~loc:_sloc _1 ) -# 40534 "src/ocaml/preprocess/parser_raw.ml" +# 40527 "src/ocaml/preprocess/parser_raw.ml" in # 1777 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 40540 "src/ocaml/preprocess/parser_raw.ml" +# 40533 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -40576,7 +40569,7 @@ module Tables = struct let _1 = # 1768 "src/ocaml/preprocess/parser_raw.mly" ( Pmod_apply_unit me ) -# 40580 "src/ocaml/preprocess/parser_raw.ml" +# 40573 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__3_, _startpos_me_) in let _endpos = _endpos__1_ in @@ -40585,13 +40578,13 @@ module Tables = struct # 1339 "src/ocaml/preprocess/parser_raw.mly" ( mkmod ~loc:_sloc _1 ) -# 40589 "src/ocaml/preprocess/parser_raw.ml" +# 40582 "src/ocaml/preprocess/parser_raw.ml" in # 1777 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 40595 "src/ocaml/preprocess/parser_raw.ml" +# 40588 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -40617,7 +40610,7 @@ module Tables = struct let _1 = # 1771 "src/ocaml/preprocess/parser_raw.mly" ( Pmod_extension ex ) -# 40621 "src/ocaml/preprocess/parser_raw.ml" +# 40614 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_ex_, _startpos_ex_) in let _endpos = _endpos__1_ in @@ -40626,13 +40619,13 @@ module Tables = struct # 1339 "src/ocaml/preprocess/parser_raw.mly" ( mkmod ~loc:_sloc _1 ) -# 40630 "src/ocaml/preprocess/parser_raw.ml" +# 40623 "src/ocaml/preprocess/parser_raw.ml" in # 1777 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 40636 "src/ocaml/preprocess/parser_raw.ml" +# 40629 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -40663,7 +40656,7 @@ module Tables = struct # 1774 "src/ocaml/preprocess/parser_raw.mly" ( let id = mkrhs Ast_helper.hole_txt _loc in Pmod_extension (id, PStr []) ) -# 40667 "src/ocaml/preprocess/parser_raw.ml" +# 40660 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in @@ -40672,13 +40665,13 @@ module Tables = struct # 1339 "src/ocaml/preprocess/parser_raw.mly" ( mkmod ~loc:_sloc _1 ) -# 40676 "src/ocaml/preprocess/parser_raw.ml" +# 40669 "src/ocaml/preprocess/parser_raw.ml" in # 1777 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 40682 "src/ocaml/preprocess/parser_raw.ml" +# 40675 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -40699,7 +40692,7 @@ module Tables = struct let x : ( # 1155 "src/ocaml/preprocess/parser_raw.mly" (string) -# 40703 "src/ocaml/preprocess/parser_raw.ml" +# 40696 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic x in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_x_ in @@ -40707,7 +40700,7 @@ module Tables = struct let _v : (string option) = # 1714 "src/ocaml/preprocess/parser_raw.mly" ( Some x ) -# 40711 "src/ocaml/preprocess/parser_raw.ml" +# 40704 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -40732,7 +40725,7 @@ module Tables = struct let _v : (string option) = # 1717 "src/ocaml/preprocess/parser_raw.mly" ( None ) -# 40736 "src/ocaml/preprocess/parser_raw.ml" +# 40729 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -40761,13 +40754,13 @@ module Tables = struct # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 40765 "src/ocaml/preprocess/parser_raw.ml" +# 40758 "src/ocaml/preprocess/parser_raw.ml" in # 1721 "src/ocaml/preprocess/parser_raw.mly" ( _1, [] ) -# 40771 "src/ocaml/preprocess/parser_raw.ml" +# 40764 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -40818,13 +40811,13 @@ module Tables = struct # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 40822 "src/ocaml/preprocess/parser_raw.ml" +# 40815 "src/ocaml/preprocess/parser_raw.ml" in # 1722 "src/ocaml/preprocess/parser_raw.mly" ( _2, _3 ) -# 40828 "src/ocaml/preprocess/parser_raw.ml" +# 40821 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -40853,13 +40846,13 @@ module Tables = struct # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 40857 "src/ocaml/preprocess/parser_raw.ml" +# 40850 "src/ocaml/preprocess/parser_raw.ml" in # 1721 "src/ocaml/preprocess/parser_raw.mly" ( _1, [] ) -# 40863 "src/ocaml/preprocess/parser_raw.ml" +# 40856 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -40910,13 +40903,13 @@ module Tables = struct # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 40914 "src/ocaml/preprocess/parser_raw.ml" +# 40907 "src/ocaml/preprocess/parser_raw.ml" in # 1722 "src/ocaml/preprocess/parser_raw.mly" ( _2, _3 ) -# 40920 "src/ocaml/preprocess/parser_raw.ml" +# 40913 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -40976,7 +40969,7 @@ module Tables = struct let _1_inlined2 : ( # 1155 "src/ocaml/preprocess/parser_raw.mly" (string) -# 40980 "src/ocaml/preprocess/parser_raw.ml" +# 40973 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined2 in let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in let ext : (string Location.loc option) = Obj.magic ext in @@ -40989,7 +40982,7 @@ module Tables = struct # 5399 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 40993 "src/ocaml/preprocess/parser_raw.ml" +# 40986 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_attrs2_ = _endpos__1_inlined4_ in @@ -41001,7 +40994,7 @@ module Tables = struct # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 41005 "src/ocaml/preprocess/parser_raw.ml" +# 40998 "src/ocaml/preprocess/parser_raw.ml" in let uid = @@ -41012,7 +41005,7 @@ module Tables = struct # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 41016 "src/ocaml/preprocess/parser_raw.ml" +# 41009 "src/ocaml/preprocess/parser_raw.ml" in let attrs1 = @@ -41020,7 +41013,7 @@ module Tables = struct # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 41024 "src/ocaml/preprocess/parser_raw.ml" +# 41017 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_attrs2_ in @@ -41034,7 +41027,7 @@ module Tables = struct let docs = symbol_docs _sloc in Ms.mk uid body ~attrs ~loc ~docs, ext ) -# 41038 "src/ocaml/preprocess/parser_raw.ml" +# 41031 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -41082,7 +41075,7 @@ module Tables = struct # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 41086 "src/ocaml/preprocess/parser_raw.ml" +# 41079 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__4_ in @@ -41091,7 +41084,7 @@ module Tables = struct # 2076 "src/ocaml/preprocess/parser_raw.mly" ( mkmty ~loc:_sloc ~attrs (Pmty_signature s) ) -# 41095 "src/ocaml/preprocess/parser_raw.ml" +# 41088 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -41144,7 +41137,7 @@ module Tables = struct let _v : (Parsetree.module_type) = let mm = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 41148 "src/ocaml/preprocess/parser_raw.ml" +# 41141 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_mm_ = _endpos_mty_ in let attrs = @@ -41152,7 +41145,7 @@ module Tables = struct # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 41156 "src/ocaml/preprocess/parser_raw.ml" +# 41149 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_mm_ in @@ -41172,7 +41165,7 @@ module Tables = struct | [] -> mty | _ :: _ -> assert false ) ) -# 41176 "src/ocaml/preprocess/parser_raw.ml" +# 41169 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -41234,7 +41227,7 @@ module Tables = struct # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 41238 "src/ocaml/preprocess/parser_raw.ml" +# 41231 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_mm_ = _endpos__1_inlined2_ in @@ -41243,7 +41236,7 @@ module Tables = struct # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 41247 "src/ocaml/preprocess/parser_raw.ml" +# 41240 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_mm_ in @@ -41263,7 +41256,7 @@ module Tables = struct | [] -> mty | _ :: _ -> assert false ) ) -# 41267 "src/ocaml/preprocess/parser_raw.ml" +# 41260 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -41318,7 +41311,7 @@ module Tables = struct # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 41322 "src/ocaml/preprocess/parser_raw.ml" +# 41315 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__5_ in @@ -41327,7 +41320,7 @@ module Tables = struct # 2101 "src/ocaml/preprocess/parser_raw.mly" ( mkmty ~loc:_sloc ~attrs:_4 (Pmty_typeof _5) ) -# 41331 "src/ocaml/preprocess/parser_raw.ml" +# 41324 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -41366,7 +41359,7 @@ module Tables = struct let _v : (Parsetree.module_type) = # 2103 "src/ocaml/preprocess/parser_raw.mly" ( _2 ) -# 41370 "src/ocaml/preprocess/parser_raw.ml" +# 41363 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -41398,7 +41391,7 @@ module Tables = struct let _v : (Parsetree.module_type) = # 2109 "src/ocaml/preprocess/parser_raw.mly" ( Mty.attr _1 _2 ) -# 41402 "src/ocaml/preprocess/parser_raw.ml" +# 41395 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -41429,13 +41422,13 @@ module Tables = struct # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 41433 "src/ocaml/preprocess/parser_raw.ml" +# 41426 "src/ocaml/preprocess/parser_raw.ml" in # 2112 "src/ocaml/preprocess/parser_raw.mly" ( Pmty_ident _1 ) -# 41439 "src/ocaml/preprocess/parser_raw.ml" +# 41432 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in @@ -41444,13 +41437,13 @@ module Tables = struct # 1341 "src/ocaml/preprocess/parser_raw.mly" ( mkmty ~loc:_sloc _1 ) -# 41448 "src/ocaml/preprocess/parser_raw.ml" +# 41441 "src/ocaml/preprocess/parser_raw.ml" in # 2127 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 41454 "src/ocaml/preprocess/parser_raw.ml" +# 41447 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -41498,12 +41491,12 @@ module Tables = struct let _5 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 41502 "src/ocaml/preprocess/parser_raw.ml" +# 41495 "src/ocaml/preprocess/parser_raw.ml" in # 2114 "src/ocaml/preprocess/parser_raw.mly" ( Pmty_functor(Unit, _4, _5) ) -# 41507 "src/ocaml/preprocess/parser_raw.ml" +# 41500 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__4_ in @@ -41513,13 +41506,13 @@ module Tables = struct # 1341 "src/ocaml/preprocess/parser_raw.mly" ( mkmty ~loc:_sloc _1 ) -# 41517 "src/ocaml/preprocess/parser_raw.ml" +# 41510 "src/ocaml/preprocess/parser_raw.ml" in # 2127 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 41523 "src/ocaml/preprocess/parser_raw.ml" +# 41516 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -41576,13 +41569,13 @@ module Tables = struct # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 41580 "src/ocaml/preprocess/parser_raw.ml" +# 41573 "src/ocaml/preprocess/parser_raw.ml" in # 2114 "src/ocaml/preprocess/parser_raw.mly" ( Pmty_functor(Unit, _4, _5) ) -# 41586 "src/ocaml/preprocess/parser_raw.ml" +# 41579 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__1_inlined1_ in @@ -41592,13 +41585,13 @@ module Tables = struct # 1341 "src/ocaml/preprocess/parser_raw.mly" ( mkmty ~loc:_sloc _1 ) -# 41596 "src/ocaml/preprocess/parser_raw.ml" +# 41589 "src/ocaml/preprocess/parser_raw.ml" in # 2127 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 41602 "src/ocaml/preprocess/parser_raw.ml" +# 41595 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -41639,17 +41632,17 @@ module Tables = struct let m2 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 41643 "src/ocaml/preprocess/parser_raw.ml" +# 41636 "src/ocaml/preprocess/parser_raw.ml" in let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 41648 "src/ocaml/preprocess/parser_raw.ml" +# 41641 "src/ocaml/preprocess/parser_raw.ml" in # 2117 "src/ocaml/preprocess/parser_raw.mly" ( Pmty_functor(Named (mknoloc None, _1, m1), _4, m2) ) -# 41653 "src/ocaml/preprocess/parser_raw.ml" +# 41646 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__4_ in @@ -41659,13 +41652,13 @@ module Tables = struct # 1341 "src/ocaml/preprocess/parser_raw.mly" ( mkmty ~loc:_sloc _1 ) -# 41663 "src/ocaml/preprocess/parser_raw.ml" +# 41656 "src/ocaml/preprocess/parser_raw.ml" in # 2127 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 41669 "src/ocaml/preprocess/parser_raw.ml" +# 41662 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -41715,18 +41708,18 @@ module Tables = struct # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 41719 "src/ocaml/preprocess/parser_raw.ml" +# 41712 "src/ocaml/preprocess/parser_raw.ml" in let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 41725 "src/ocaml/preprocess/parser_raw.ml" +# 41718 "src/ocaml/preprocess/parser_raw.ml" in # 2117 "src/ocaml/preprocess/parser_raw.mly" ( Pmty_functor(Named (mknoloc None, _1, m1), _4, m2) ) -# 41730 "src/ocaml/preprocess/parser_raw.ml" +# 41723 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__1_inlined1_ in @@ -41736,13 +41729,13 @@ module Tables = struct # 1341 "src/ocaml/preprocess/parser_raw.mly" ( mkmty ~loc:_sloc _1 ) -# 41740 "src/ocaml/preprocess/parser_raw.ml" +# 41733 "src/ocaml/preprocess/parser_raw.ml" in # 2127 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 41746 "src/ocaml/preprocess/parser_raw.ml" +# 41739 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -41790,20 +41783,20 @@ module Tables = struct let m2 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 41794 "src/ocaml/preprocess/parser_raw.ml" +# 41787 "src/ocaml/preprocess/parser_raw.ml" in let m1 = let _1 = _1_inlined1 in # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 41801 "src/ocaml/preprocess/parser_raw.ml" +# 41794 "src/ocaml/preprocess/parser_raw.ml" in # 2117 "src/ocaml/preprocess/parser_raw.mly" ( Pmty_functor(Named (mknoloc None, _1, m1), _4, m2) ) -# 41807 "src/ocaml/preprocess/parser_raw.ml" +# 41800 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__4_ in @@ -41813,13 +41806,13 @@ module Tables = struct # 1341 "src/ocaml/preprocess/parser_raw.mly" ( mkmty ~loc:_sloc _1 ) -# 41817 "src/ocaml/preprocess/parser_raw.ml" +# 41810 "src/ocaml/preprocess/parser_raw.ml" in # 2127 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 41823 "src/ocaml/preprocess/parser_raw.ml" +# 41816 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -41876,7 +41869,7 @@ module Tables = struct # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 41880 "src/ocaml/preprocess/parser_raw.ml" +# 41873 "src/ocaml/preprocess/parser_raw.ml" in let m1 = @@ -41884,13 +41877,13 @@ module Tables = struct # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 41888 "src/ocaml/preprocess/parser_raw.ml" +# 41881 "src/ocaml/preprocess/parser_raw.ml" in # 2117 "src/ocaml/preprocess/parser_raw.mly" ( Pmty_functor(Named (mknoloc None, _1, m1), _4, m2) ) -# 41894 "src/ocaml/preprocess/parser_raw.ml" +# 41887 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__1_inlined2_ in @@ -41900,13 +41893,13 @@ module Tables = struct # 1341 "src/ocaml/preprocess/parser_raw.mly" ( mkmty ~loc:_sloc _1 ) -# 41904 "src/ocaml/preprocess/parser_raw.ml" +# 41897 "src/ocaml/preprocess/parser_raw.ml" in # 2127 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 41910 "src/ocaml/preprocess/parser_raw.ml" +# 41903 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -41948,18 +41941,18 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 41952 "src/ocaml/preprocess/parser_raw.ml" +# 41945 "src/ocaml/preprocess/parser_raw.ml" in # 1450 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 41957 "src/ocaml/preprocess/parser_raw.ml" +# 41950 "src/ocaml/preprocess/parser_raw.ml" in # 2119 "src/ocaml/preprocess/parser_raw.mly" ( Pmty_with(_1, _3) ) -# 41963 "src/ocaml/preprocess/parser_raw.ml" +# 41956 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_xs_ in @@ -41969,13 +41962,13 @@ module Tables = struct # 1341 "src/ocaml/preprocess/parser_raw.mly" ( mkmty ~loc:_sloc _1 ) -# 41973 "src/ocaml/preprocess/parser_raw.ml" +# 41966 "src/ocaml/preprocess/parser_raw.ml" in # 2127 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 41979 "src/ocaml/preprocess/parser_raw.ml" +# 41972 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -42001,7 +41994,7 @@ module Tables = struct let _1 = # 2123 "src/ocaml/preprocess/parser_raw.mly" ( Pmty_extension _1 ) -# 42005 "src/ocaml/preprocess/parser_raw.ml" +# 41998 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in @@ -42009,13 +42002,13 @@ module Tables = struct # 1341 "src/ocaml/preprocess/parser_raw.mly" ( mkmty ~loc:_sloc _1 ) -# 42013 "src/ocaml/preprocess/parser_raw.ml" +# 42006 "src/ocaml/preprocess/parser_raw.ml" in # 2127 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 42019 "src/ocaml/preprocess/parser_raw.ml" +# 42012 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -42061,13 +42054,13 @@ module Tables = struct # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 42065 "src/ocaml/preprocess/parser_raw.ml" +# 42058 "src/ocaml/preprocess/parser_raw.ml" in # 2125 "src/ocaml/preprocess/parser_raw.mly" ( Pmty_strengthen (_1, _3) ) -# 42071 "src/ocaml/preprocess/parser_raw.ml" +# 42064 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__1_inlined1_ in @@ -42077,13 +42070,13 @@ module Tables = struct # 1341 "src/ocaml/preprocess/parser_raw.mly" ( mkmty ~loc:_sloc _1 ) -# 42081 "src/ocaml/preprocess/parser_raw.ml" +# 42074 "src/ocaml/preprocess/parser_raw.ml" in # 2127 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 42087 "src/ocaml/preprocess/parser_raw.ml" +# 42080 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -42152,7 +42145,7 @@ module Tables = struct # 5399 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 42156 "src/ocaml/preprocess/parser_raw.ml" +# 42149 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_attrs2_ = _endpos__1_inlined3_ in @@ -42164,7 +42157,7 @@ module Tables = struct # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 42168 "src/ocaml/preprocess/parser_raw.ml" +# 42161 "src/ocaml/preprocess/parser_raw.ml" in let attrs1 = @@ -42172,7 +42165,7 @@ module Tables = struct # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 42176 "src/ocaml/preprocess/parser_raw.ml" +# 42169 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_attrs2_ in @@ -42186,7 +42179,7 @@ module Tables = struct let docs = symbol_docs _sloc in Mtd.mk id ?typ ~attrs ~loc ~docs, ext ) -# 42190 "src/ocaml/preprocess/parser_raw.ml" +# 42183 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -42262,7 +42255,7 @@ module Tables = struct # 5399 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 42266 "src/ocaml/preprocess/parser_raw.ml" +# 42259 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_attrs2_ = _endpos__1_inlined3_ in @@ -42274,7 +42267,7 @@ module Tables = struct # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 42278 "src/ocaml/preprocess/parser_raw.ml" +# 42271 "src/ocaml/preprocess/parser_raw.ml" in let attrs1 = @@ -42282,7 +42275,7 @@ module Tables = struct # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 42286 "src/ocaml/preprocess/parser_raw.ml" +# 42279 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_attrs2_ in @@ -42296,7 +42289,7 @@ module Tables = struct let docs = symbol_docs _sloc in Mtd.mk id ~typ ~attrs ~loc ~docs, ext ) -# 42300 "src/ocaml/preprocess/parser_raw.ml" +# 42293 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -42321,7 +42314,7 @@ module Tables = struct let _v : (Longident.t) = # 5168 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 42325 "src/ocaml/preprocess/parser_raw.ml" +# 42318 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -42339,7 +42332,7 @@ module Tables = struct let _v : (Asttypes.mutable_flag) = # 5249 "src/ocaml/preprocess/parser_raw.mly" ( Immutable ) -# 42343 "src/ocaml/preprocess/parser_raw.ml" +# 42336 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -42364,7 +42357,7 @@ module Tables = struct let _v : (Asttypes.mutable_flag) = # 5250 "src/ocaml/preprocess/parser_raw.mly" ( Mutable ) -# 42368 "src/ocaml/preprocess/parser_raw.ml" +# 42361 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -42382,7 +42375,7 @@ module Tables = struct let _v : (Asttypes.mutable_flag * Parsetree.modality Location.loc list) = # 5254 "src/ocaml/preprocess/parser_raw.mly" ( Immutable, [] ) -# 42386 "src/ocaml/preprocess/parser_raw.ml" +# 42379 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -42407,7 +42400,7 @@ module Tables = struct let _v : (Asttypes.mutable_flag * Parsetree.modality Location.loc list) = # 5256 "src/ocaml/preprocess/parser_raw.mly" ( Mutable, [] ) -# 42411 "src/ocaml/preprocess/parser_raw.ml" +# 42404 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -42435,7 +42428,7 @@ module Tables = struct # 5258 "src/ocaml/preprocess/parser_raw.mly" ( Immutable, [ mkloc (Modality "global") (make_loc _sloc)] ) -# 42439 "src/ocaml/preprocess/parser_raw.ml" +# 42432 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -42453,7 +42446,7 @@ module Tables = struct let _v : (Asttypes.mutable_flag * Asttypes.virtual_flag) = # 5270 "src/ocaml/preprocess/parser_raw.mly" ( Immutable, Concrete ) -# 42457 "src/ocaml/preprocess/parser_raw.ml" +# 42450 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -42478,7 +42471,7 @@ module Tables = struct let _v : (Asttypes.mutable_flag * Asttypes.virtual_flag) = # 5272 "src/ocaml/preprocess/parser_raw.mly" ( Mutable, Concrete ) -# 42482 "src/ocaml/preprocess/parser_raw.ml" +# 42475 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -42503,7 +42496,7 @@ module Tables = struct let _v : (Asttypes.mutable_flag * Asttypes.virtual_flag) = # 5274 "src/ocaml/preprocess/parser_raw.mly" ( Immutable, Virtual ) -# 42507 "src/ocaml/preprocess/parser_raw.ml" +# 42500 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -42535,7 +42528,7 @@ module Tables = struct let _v : (Asttypes.mutable_flag * Asttypes.virtual_flag) = # 5277 "src/ocaml/preprocess/parser_raw.mly" ( Mutable, Virtual ) -# 42539 "src/ocaml/preprocess/parser_raw.ml" +# 42532 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -42567,7 +42560,7 @@ module Tables = struct let _v : (Asttypes.mutable_flag * Asttypes.virtual_flag) = # 5277 "src/ocaml/preprocess/parser_raw.mly" ( Mutable, Virtual ) -# 42571 "src/ocaml/preprocess/parser_raw.ml" +# 42564 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -42599,7 +42592,7 @@ module Tables = struct let _v : (string) = # 5220 "src/ocaml/preprocess/parser_raw.mly" ( _2 ) -# 42603 "src/ocaml/preprocess/parser_raw.ml" +# 42596 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -42620,7 +42613,7 @@ module Tables = struct let _1 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 42624 "src/ocaml/preprocess/parser_raw.ml" +# 42617 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -42632,13 +42625,13 @@ module Tables = struct # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 42636 "src/ocaml/preprocess/parser_raw.ml" +# 42629 "src/ocaml/preprocess/parser_raw.ml" in # 3704 "src/ocaml/preprocess/parser_raw.mly" ( _1, None ) -# 42642 "src/ocaml/preprocess/parser_raw.ml" +# 42635 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -42686,7 +42679,7 @@ module Tables = struct let _1_inlined1 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 42690 "src/ocaml/preprocess/parser_raw.ml" +# 42683 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -42700,13 +42693,13 @@ module Tables = struct # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 42704 "src/ocaml/preprocess/parser_raw.ml" +# 42697 "src/ocaml/preprocess/parser_raw.ml" in # 3706 "src/ocaml/preprocess/parser_raw.mly" ( name, Some jkind ) -# 42710 "src/ocaml/preprocess/parser_raw.ml" +# 42703 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -42731,7 +42724,7 @@ module Tables = struct let _v : ((string Location.loc * Parsetree.jkind_annotation option) list) = # 3701 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 42735 "src/ocaml/preprocess/parser_raw.ml" +# 42728 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -42752,7 +42745,7 @@ module Tables = struct let _1 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 42756 "src/ocaml/preprocess/parser_raw.ml" +# 42749 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -42764,13 +42757,13 @@ module Tables = struct # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 42768 "src/ocaml/preprocess/parser_raw.ml" +# 42761 "src/ocaml/preprocess/parser_raw.ml" in # 221 "" ( [ x ] ) -# 42774 "src/ocaml/preprocess/parser_raw.ml" +# 42767 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -42798,7 +42791,7 @@ module Tables = struct let _1 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 42802 "src/ocaml/preprocess/parser_raw.ml" +# 42795 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -42810,13 +42803,13 @@ module Tables = struct # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 42814 "src/ocaml/preprocess/parser_raw.ml" +# 42807 "src/ocaml/preprocess/parser_raw.ml" in # 223 "" ( x :: xs ) -# 42820 "src/ocaml/preprocess/parser_raw.ml" +# 42813 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -42837,7 +42830,7 @@ module Tables = struct let _1 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 42841 "src/ocaml/preprocess/parser_raw.ml" +# 42834 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -42849,13 +42842,13 @@ module Tables = struct # 4706 "src/ocaml/preprocess/parser_raw.mly" ( mkloc (Modality _1) (make_loc _sloc) ) -# 42853 "src/ocaml/preprocess/parser_raw.ml" +# 42846 "src/ocaml/preprocess/parser_raw.ml" in # 221 "" ( [ x ] ) -# 42859 "src/ocaml/preprocess/parser_raw.ml" +# 42852 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -42883,7 +42876,7 @@ module Tables = struct let _1 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 42887 "src/ocaml/preprocess/parser_raw.ml" +# 42880 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -42895,13 +42888,13 @@ module Tables = struct # 4706 "src/ocaml/preprocess/parser_raw.mly" ( mkloc (Modality _1) (make_loc _sloc) ) -# 42899 "src/ocaml/preprocess/parser_raw.ml" +# 42892 "src/ocaml/preprocess/parser_raw.ml" in # 223 "" ( x :: xs ) -# 42905 "src/ocaml/preprocess/parser_raw.ml" +# 42898 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -42922,7 +42915,7 @@ module Tables = struct let _1 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 42926 "src/ocaml/preprocess/parser_raw.ml" +# 42919 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -42934,13 +42927,13 @@ module Tables = struct # 4669 "src/ocaml/preprocess/parser_raw.mly" ( mkloc (Mode _1) (make_loc _sloc) ) -# 42938 "src/ocaml/preprocess/parser_raw.ml" +# 42931 "src/ocaml/preprocess/parser_raw.ml" in # 221 "" ( [ x ] ) -# 42944 "src/ocaml/preprocess/parser_raw.ml" +# 42937 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -42968,7 +42961,7 @@ module Tables = struct let _1 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 42972 "src/ocaml/preprocess/parser_raw.ml" +# 42965 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -42980,13 +42973,13 @@ module Tables = struct # 4669 "src/ocaml/preprocess/parser_raw.mly" ( mkloc (Mode _1) (make_loc _sloc) ) -# 42984 "src/ocaml/preprocess/parser_raw.ml" +# 42977 "src/ocaml/preprocess/parser_raw.ml" in # 223 "" ( x :: xs ) -# 42990 "src/ocaml/preprocess/parser_raw.ml" +# 42983 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -43015,13 +43008,13 @@ module Tables = struct # 4651 "src/ocaml/preprocess/parser_raw.mly" ( mkloc (Mode "local") (make_loc _sloc) ) -# 43019 "src/ocaml/preprocess/parser_raw.ml" +# 43012 "src/ocaml/preprocess/parser_raw.ml" in # 221 "" ( [ x ] ) -# 43025 "src/ocaml/preprocess/parser_raw.ml" +# 43018 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -43050,13 +43043,13 @@ module Tables = struct # 4653 "src/ocaml/preprocess/parser_raw.mly" ( mkloc (Mode "unique") (make_loc _sloc) ) -# 43054 "src/ocaml/preprocess/parser_raw.ml" +# 43047 "src/ocaml/preprocess/parser_raw.ml" in # 221 "" ( [ x ] ) -# 43060 "src/ocaml/preprocess/parser_raw.ml" +# 43053 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -43085,13 +43078,13 @@ module Tables = struct # 4655 "src/ocaml/preprocess/parser_raw.mly" ( mkloc (Mode "once") (make_loc _sloc) ) -# 43089 "src/ocaml/preprocess/parser_raw.ml" +# 43082 "src/ocaml/preprocess/parser_raw.ml" in # 221 "" ( [ x ] ) -# 43095 "src/ocaml/preprocess/parser_raw.ml" +# 43088 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -43127,13 +43120,13 @@ module Tables = struct # 4651 "src/ocaml/preprocess/parser_raw.mly" ( mkloc (Mode "local") (make_loc _sloc) ) -# 43131 "src/ocaml/preprocess/parser_raw.ml" +# 43124 "src/ocaml/preprocess/parser_raw.ml" in # 223 "" ( x :: xs ) -# 43137 "src/ocaml/preprocess/parser_raw.ml" +# 43130 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -43169,13 +43162,13 @@ module Tables = struct # 4653 "src/ocaml/preprocess/parser_raw.mly" ( mkloc (Mode "unique") (make_loc _sloc) ) -# 43173 "src/ocaml/preprocess/parser_raw.ml" +# 43166 "src/ocaml/preprocess/parser_raw.ml" in # 223 "" ( x :: xs ) -# 43179 "src/ocaml/preprocess/parser_raw.ml" +# 43172 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -43211,13 +43204,13 @@ module Tables = struct # 4655 "src/ocaml/preprocess/parser_raw.mly" ( mkloc (Mode "once") (make_loc _sloc) ) -# 43215 "src/ocaml/preprocess/parser_raw.ml" +# 43208 "src/ocaml/preprocess/parser_raw.ml" in # 223 "" ( x :: xs ) -# 43221 "src/ocaml/preprocess/parser_raw.ml" +# 43214 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -43242,7 +43235,7 @@ module Tables = struct let _v : ((string Location.loc * Parsetree.jkind_annotation option) list) = # 221 "" ( [ x ] ) -# 43246 "src/ocaml/preprocess/parser_raw.ml" +# 43239 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -43274,7 +43267,7 @@ module Tables = struct let _v : ((string Location.loc * Parsetree.jkind_annotation option) list) = # 223 "" ( x :: xs ) -# 43278 "src/ocaml/preprocess/parser_raw.ml" +# 43271 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -43295,7 +43288,7 @@ module Tables = struct let s : ( # 1141 "src/ocaml/preprocess/parser_raw.mly" (string * Location.t * string option) -# 43299 "src/ocaml/preprocess/parser_raw.ml" +# 43292 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic s in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_s_ in @@ -43303,12 +43296,12 @@ module Tables = struct let _v : (string list) = let x = # 5216 "src/ocaml/preprocess/parser_raw.mly" ( let body, _, _ = s in body ) -# 43307 "src/ocaml/preprocess/parser_raw.ml" +# 43300 "src/ocaml/preprocess/parser_raw.ml" in # 221 "" ( [ x ] ) -# 43312 "src/ocaml/preprocess/parser_raw.ml" +# 43305 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -43336,7 +43329,7 @@ module Tables = struct let s : ( # 1141 "src/ocaml/preprocess/parser_raw.mly" (string * Location.t * string option) -# 43340 "src/ocaml/preprocess/parser_raw.ml" +# 43333 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic s in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_s_ in @@ -43344,12 +43337,12 @@ module Tables = struct let _v : (string list) = let x = # 5216 "src/ocaml/preprocess/parser_raw.mly" ( let body, _, _ = s in body ) -# 43348 "src/ocaml/preprocess/parser_raw.ml" +# 43341 "src/ocaml/preprocess/parser_raw.ml" in # 223 "" ( x :: xs ) -# 43353 "src/ocaml/preprocess/parser_raw.ml" +# 43346 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -43374,12 +43367,12 @@ module Tables = struct let _v : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) = let priv = # 5245 "src/ocaml/preprocess/parser_raw.mly" ( Public ) -# 43378 "src/ocaml/preprocess/parser_raw.ml" +# 43371 "src/ocaml/preprocess/parser_raw.ml" in # 4107 "src/ocaml/preprocess/parser_raw.mly" ( (Ptype_abstract, priv, Some ty) ) -# 43383 "src/ocaml/preprocess/parser_raw.ml" +# 43376 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -43411,12 +43404,12 @@ module Tables = struct let _v : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) = let priv = # 5246 "src/ocaml/preprocess/parser_raw.mly" ( Private ) -# 43415 "src/ocaml/preprocess/parser_raw.ml" +# 43408 "src/ocaml/preprocess/parser_raw.ml" in # 4107 "src/ocaml/preprocess/parser_raw.mly" ( (Ptype_abstract, priv, Some ty) ) -# 43420 "src/ocaml/preprocess/parser_raw.ml" +# 43413 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -43441,24 +43434,24 @@ module Tables = struct let _v : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) = let priv = # 5245 "src/ocaml/preprocess/parser_raw.mly" ( Public ) -# 43445 "src/ocaml/preprocess/parser_raw.ml" +# 43438 "src/ocaml/preprocess/parser_raw.ml" in let oty = let _1 = # 124 "" ( None ) -# 43451 "src/ocaml/preprocess/parser_raw.ml" +# 43444 "src/ocaml/preprocess/parser_raw.ml" in # 4127 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 43456 "src/ocaml/preprocess/parser_raw.ml" +# 43449 "src/ocaml/preprocess/parser_raw.ml" in # 4111 "src/ocaml/preprocess/parser_raw.mly" ( (Ptype_variant cs, priv, oty) ) -# 43462 "src/ocaml/preprocess/parser_raw.ml" +# 43455 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -43490,24 +43483,24 @@ module Tables = struct let _v : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) = let priv = # 5246 "src/ocaml/preprocess/parser_raw.mly" ( Private ) -# 43494 "src/ocaml/preprocess/parser_raw.ml" +# 43487 "src/ocaml/preprocess/parser_raw.ml" in let oty = let _1 = # 124 "" ( None ) -# 43500 "src/ocaml/preprocess/parser_raw.ml" +# 43493 "src/ocaml/preprocess/parser_raw.ml" in # 4127 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 43505 "src/ocaml/preprocess/parser_raw.ml" +# 43498 "src/ocaml/preprocess/parser_raw.ml" in # 4111 "src/ocaml/preprocess/parser_raw.mly" ( (Ptype_variant cs, priv, oty) ) -# 43511 "src/ocaml/preprocess/parser_raw.ml" +# 43504 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -43546,31 +43539,31 @@ module Tables = struct let _v : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) = let priv = # 5245 "src/ocaml/preprocess/parser_raw.mly" ( Public ) -# 43550 "src/ocaml/preprocess/parser_raw.ml" +# 43543 "src/ocaml/preprocess/parser_raw.ml" in let oty = let _1 = let x = # 191 "" ( x ) -# 43557 "src/ocaml/preprocess/parser_raw.ml" +# 43550 "src/ocaml/preprocess/parser_raw.ml" in # 126 "" ( Some x ) -# 43562 "src/ocaml/preprocess/parser_raw.ml" +# 43555 "src/ocaml/preprocess/parser_raw.ml" in # 4127 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 43568 "src/ocaml/preprocess/parser_raw.ml" +# 43561 "src/ocaml/preprocess/parser_raw.ml" in # 4111 "src/ocaml/preprocess/parser_raw.mly" ( (Ptype_variant cs, priv, oty) ) -# 43574 "src/ocaml/preprocess/parser_raw.ml" +# 43567 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -43616,31 +43609,31 @@ module Tables = struct let _v : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) = let priv = # 5246 "src/ocaml/preprocess/parser_raw.mly" ( Private ) -# 43620 "src/ocaml/preprocess/parser_raw.ml" +# 43613 "src/ocaml/preprocess/parser_raw.ml" in let oty = let _1 = let x = # 191 "" ( x ) -# 43627 "src/ocaml/preprocess/parser_raw.ml" +# 43620 "src/ocaml/preprocess/parser_raw.ml" in # 126 "" ( Some x ) -# 43632 "src/ocaml/preprocess/parser_raw.ml" +# 43625 "src/ocaml/preprocess/parser_raw.ml" in # 4127 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 43638 "src/ocaml/preprocess/parser_raw.ml" +# 43631 "src/ocaml/preprocess/parser_raw.ml" in # 4111 "src/ocaml/preprocess/parser_raw.mly" ( (Ptype_variant cs, priv, oty) ) -# 43644 "src/ocaml/preprocess/parser_raw.ml" +# 43637 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -43665,24 +43658,24 @@ module Tables = struct let _v : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) = let priv = # 5245 "src/ocaml/preprocess/parser_raw.mly" ( Public ) -# 43669 "src/ocaml/preprocess/parser_raw.ml" +# 43662 "src/ocaml/preprocess/parser_raw.ml" in let oty = let _1 = # 124 "" ( None ) -# 43675 "src/ocaml/preprocess/parser_raw.ml" +# 43668 "src/ocaml/preprocess/parser_raw.ml" in # 4127 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 43680 "src/ocaml/preprocess/parser_raw.ml" +# 43673 "src/ocaml/preprocess/parser_raw.ml" in # 4115 "src/ocaml/preprocess/parser_raw.mly" ( (Ptype_open, priv, oty) ) -# 43686 "src/ocaml/preprocess/parser_raw.ml" +# 43679 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -43714,24 +43707,24 @@ module Tables = struct let _v : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) = let priv = # 5246 "src/ocaml/preprocess/parser_raw.mly" ( Private ) -# 43718 "src/ocaml/preprocess/parser_raw.ml" +# 43711 "src/ocaml/preprocess/parser_raw.ml" in let oty = let _1 = # 124 "" ( None ) -# 43724 "src/ocaml/preprocess/parser_raw.ml" +# 43717 "src/ocaml/preprocess/parser_raw.ml" in # 4127 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 43729 "src/ocaml/preprocess/parser_raw.ml" +# 43722 "src/ocaml/preprocess/parser_raw.ml" in # 4115 "src/ocaml/preprocess/parser_raw.mly" ( (Ptype_open, priv, oty) ) -# 43735 "src/ocaml/preprocess/parser_raw.ml" +# 43728 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -43770,31 +43763,31 @@ module Tables = struct let _v : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) = let priv = # 5245 "src/ocaml/preprocess/parser_raw.mly" ( Public ) -# 43774 "src/ocaml/preprocess/parser_raw.ml" +# 43767 "src/ocaml/preprocess/parser_raw.ml" in let oty = let _1 = let x = # 191 "" ( x ) -# 43781 "src/ocaml/preprocess/parser_raw.ml" +# 43774 "src/ocaml/preprocess/parser_raw.ml" in # 126 "" ( Some x ) -# 43786 "src/ocaml/preprocess/parser_raw.ml" +# 43779 "src/ocaml/preprocess/parser_raw.ml" in # 4127 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 43792 "src/ocaml/preprocess/parser_raw.ml" +# 43785 "src/ocaml/preprocess/parser_raw.ml" in # 4115 "src/ocaml/preprocess/parser_raw.mly" ( (Ptype_open, priv, oty) ) -# 43798 "src/ocaml/preprocess/parser_raw.ml" +# 43791 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -43840,31 +43833,31 @@ module Tables = struct let _v : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) = let priv = # 5246 "src/ocaml/preprocess/parser_raw.mly" ( Private ) -# 43844 "src/ocaml/preprocess/parser_raw.ml" +# 43837 "src/ocaml/preprocess/parser_raw.ml" in let oty = let _1 = let x = # 191 "" ( x ) -# 43851 "src/ocaml/preprocess/parser_raw.ml" +# 43844 "src/ocaml/preprocess/parser_raw.ml" in # 126 "" ( Some x ) -# 43856 "src/ocaml/preprocess/parser_raw.ml" +# 43849 "src/ocaml/preprocess/parser_raw.ml" in # 4127 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 43862 "src/ocaml/preprocess/parser_raw.ml" +# 43855 "src/ocaml/preprocess/parser_raw.ml" in # 4115 "src/ocaml/preprocess/parser_raw.mly" ( (Ptype_open, priv, oty) ) -# 43868 "src/ocaml/preprocess/parser_raw.ml" +# 43861 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -43903,24 +43896,24 @@ module Tables = struct let _v : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) = let priv = # 5245 "src/ocaml/preprocess/parser_raw.mly" ( Public ) -# 43907 "src/ocaml/preprocess/parser_raw.ml" +# 43900 "src/ocaml/preprocess/parser_raw.ml" in let oty = let _1 = # 124 "" ( None ) -# 43913 "src/ocaml/preprocess/parser_raw.ml" +# 43906 "src/ocaml/preprocess/parser_raw.ml" in # 4127 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 43918 "src/ocaml/preprocess/parser_raw.ml" +# 43911 "src/ocaml/preprocess/parser_raw.ml" in # 4119 "src/ocaml/preprocess/parser_raw.mly" ( (Ptype_record ls, priv, oty) ) -# 43924 "src/ocaml/preprocess/parser_raw.ml" +# 43917 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -43966,24 +43959,24 @@ module Tables = struct let _v : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) = let priv = # 5246 "src/ocaml/preprocess/parser_raw.mly" ( Private ) -# 43970 "src/ocaml/preprocess/parser_raw.ml" +# 43963 "src/ocaml/preprocess/parser_raw.ml" in let oty = let _1 = # 124 "" ( None ) -# 43976 "src/ocaml/preprocess/parser_raw.ml" +# 43969 "src/ocaml/preprocess/parser_raw.ml" in # 4127 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 43981 "src/ocaml/preprocess/parser_raw.ml" +# 43974 "src/ocaml/preprocess/parser_raw.ml" in # 4119 "src/ocaml/preprocess/parser_raw.mly" ( (Ptype_record ls, priv, oty) ) -# 43987 "src/ocaml/preprocess/parser_raw.ml" +# 43980 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -44036,31 +44029,31 @@ module Tables = struct let _v : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) = let priv = # 5245 "src/ocaml/preprocess/parser_raw.mly" ( Public ) -# 44040 "src/ocaml/preprocess/parser_raw.ml" +# 44033 "src/ocaml/preprocess/parser_raw.ml" in let oty = let _1 = let x = # 191 "" ( x ) -# 44047 "src/ocaml/preprocess/parser_raw.ml" +# 44040 "src/ocaml/preprocess/parser_raw.ml" in # 126 "" ( Some x ) -# 44052 "src/ocaml/preprocess/parser_raw.ml" +# 44045 "src/ocaml/preprocess/parser_raw.ml" in # 4127 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 44058 "src/ocaml/preprocess/parser_raw.ml" +# 44051 "src/ocaml/preprocess/parser_raw.ml" in # 4119 "src/ocaml/preprocess/parser_raw.mly" ( (Ptype_record ls, priv, oty) ) -# 44064 "src/ocaml/preprocess/parser_raw.ml" +# 44057 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -44120,31 +44113,31 @@ module Tables = struct let _v : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) = let priv = # 5246 "src/ocaml/preprocess/parser_raw.mly" ( Private ) -# 44124 "src/ocaml/preprocess/parser_raw.ml" +# 44117 "src/ocaml/preprocess/parser_raw.ml" in let oty = let _1 = let x = # 191 "" ( x ) -# 44131 "src/ocaml/preprocess/parser_raw.ml" +# 44124 "src/ocaml/preprocess/parser_raw.ml" in # 126 "" ( Some x ) -# 44136 "src/ocaml/preprocess/parser_raw.ml" +# 44129 "src/ocaml/preprocess/parser_raw.ml" in # 4127 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 44142 "src/ocaml/preprocess/parser_raw.ml" +# 44135 "src/ocaml/preprocess/parser_raw.ml" in # 4119 "src/ocaml/preprocess/parser_raw.mly" ( (Ptype_record ls, priv, oty) ) -# 44148 "src/ocaml/preprocess/parser_raw.ml" +# 44141 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -44183,24 +44176,24 @@ module Tables = struct let _v : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) = let priv = # 5245 "src/ocaml/preprocess/parser_raw.mly" ( Public ) -# 44187 "src/ocaml/preprocess/parser_raw.ml" +# 44180 "src/ocaml/preprocess/parser_raw.ml" in let oty = let _1 = # 124 "" ( None ) -# 44193 "src/ocaml/preprocess/parser_raw.ml" +# 44186 "src/ocaml/preprocess/parser_raw.ml" in # 4127 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 44198 "src/ocaml/preprocess/parser_raw.ml" +# 44191 "src/ocaml/preprocess/parser_raw.ml" in # 4123 "src/ocaml/preprocess/parser_raw.mly" ( (Ptype_record_unboxed_product ls, priv, oty) ) -# 44204 "src/ocaml/preprocess/parser_raw.ml" +# 44197 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -44246,24 +44239,24 @@ module Tables = struct let _v : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) = let priv = # 5246 "src/ocaml/preprocess/parser_raw.mly" ( Private ) -# 44250 "src/ocaml/preprocess/parser_raw.ml" +# 44243 "src/ocaml/preprocess/parser_raw.ml" in let oty = let _1 = # 124 "" ( None ) -# 44256 "src/ocaml/preprocess/parser_raw.ml" +# 44249 "src/ocaml/preprocess/parser_raw.ml" in # 4127 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 44261 "src/ocaml/preprocess/parser_raw.ml" +# 44254 "src/ocaml/preprocess/parser_raw.ml" in # 4123 "src/ocaml/preprocess/parser_raw.mly" ( (Ptype_record_unboxed_product ls, priv, oty) ) -# 44267 "src/ocaml/preprocess/parser_raw.ml" +# 44260 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -44316,31 +44309,31 @@ module Tables = struct let _v : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) = let priv = # 5245 "src/ocaml/preprocess/parser_raw.mly" ( Public ) -# 44320 "src/ocaml/preprocess/parser_raw.ml" +# 44313 "src/ocaml/preprocess/parser_raw.ml" in let oty = let _1 = let x = # 191 "" ( x ) -# 44327 "src/ocaml/preprocess/parser_raw.ml" +# 44320 "src/ocaml/preprocess/parser_raw.ml" in # 126 "" ( Some x ) -# 44332 "src/ocaml/preprocess/parser_raw.ml" +# 44325 "src/ocaml/preprocess/parser_raw.ml" in # 4127 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 44338 "src/ocaml/preprocess/parser_raw.ml" +# 44331 "src/ocaml/preprocess/parser_raw.ml" in # 4123 "src/ocaml/preprocess/parser_raw.mly" ( (Ptype_record_unboxed_product ls, priv, oty) ) -# 44344 "src/ocaml/preprocess/parser_raw.ml" +# 44337 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -44400,31 +44393,31 @@ module Tables = struct let _v : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) = let priv = # 5246 "src/ocaml/preprocess/parser_raw.mly" ( Private ) -# 44404 "src/ocaml/preprocess/parser_raw.ml" +# 44397 "src/ocaml/preprocess/parser_raw.ml" in let oty = let _1 = let x = # 191 "" ( x ) -# 44411 "src/ocaml/preprocess/parser_raw.ml" +# 44404 "src/ocaml/preprocess/parser_raw.ml" in # 126 "" ( Some x ) -# 44416 "src/ocaml/preprocess/parser_raw.ml" +# 44409 "src/ocaml/preprocess/parser_raw.ml" in # 4127 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 44422 "src/ocaml/preprocess/parser_raw.ml" +# 44415 "src/ocaml/preprocess/parser_raw.ml" in # 4123 "src/ocaml/preprocess/parser_raw.mly" ( (Ptype_record_unboxed_product ls, priv, oty) ) -# 44428 "src/ocaml/preprocess/parser_raw.ml" +# 44421 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -44464,7 +44457,7 @@ module Tables = struct let _1 = # 4852 "src/ocaml/preprocess/parser_raw.mly" ( let (f, c) = meth_list in Ptyp_object (f, c) ) -# 44468 "src/ocaml/preprocess/parser_raw.ml" +# 44461 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__3_ in let _endpos = _endpos__1_ in @@ -44473,13 +44466,13 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 44477 "src/ocaml/preprocess/parser_raw.ml" +# 44470 "src/ocaml/preprocess/parser_raw.ml" in # 4856 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 44483 "src/ocaml/preprocess/parser_raw.ml" +# 44476 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -44512,7 +44505,7 @@ module Tables = struct let _1 = # 4854 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_object ([], Closed) ) -# 44516 "src/ocaml/preprocess/parser_raw.ml" +# 44509 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__2_ in let _endpos = _endpos__1_ in @@ -44521,13 +44514,13 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 44525 "src/ocaml/preprocess/parser_raw.ml" +# 44518 "src/ocaml/preprocess/parser_raw.ml" in # 4856 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 44531 "src/ocaml/preprocess/parser_raw.ml" +# 44524 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -44582,7 +44575,7 @@ module Tables = struct # 5399 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 44586 "src/ocaml/preprocess/parser_raw.ml" +# 44579 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_attrs2_ = _endpos__1_inlined2_ in @@ -44591,13 +44584,13 @@ module Tables = struct # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 44595 "src/ocaml/preprocess/parser_raw.ml" +# 44588 "src/ocaml/preprocess/parser_raw.ml" in let override = # 5304 "src/ocaml/preprocess/parser_raw.mly" ( Fresh ) -# 44601 "src/ocaml/preprocess/parser_raw.ml" +# 44594 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_attrs2_ in let _symbolstartpos = _startpos__1_ in @@ -44610,7 +44603,7 @@ module Tables = struct let docs = symbol_docs _sloc in Opn.mk me ~override ~attrs ~loc ~docs, ext ) -# 44614 "src/ocaml/preprocess/parser_raw.ml" +# 44607 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -44672,7 +44665,7 @@ module Tables = struct # 5399 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 44676 "src/ocaml/preprocess/parser_raw.ml" +# 44669 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_attrs2_ = _endpos__1_inlined3_ in @@ -44681,13 +44674,13 @@ module Tables = struct # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 44685 "src/ocaml/preprocess/parser_raw.ml" +# 44678 "src/ocaml/preprocess/parser_raw.ml" in let override = # 5305 "src/ocaml/preprocess/parser_raw.mly" ( Override ) -# 44691 "src/ocaml/preprocess/parser_raw.ml" +# 44684 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_attrs2_ in let _symbolstartpos = _startpos__1_ in @@ -44700,7 +44693,7 @@ module Tables = struct let docs = symbol_docs _sloc in Opn.mk me ~override ~attrs ~loc ~docs, ext ) -# 44704 "src/ocaml/preprocess/parser_raw.ml" +# 44697 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -44755,7 +44748,7 @@ module Tables = struct # 5399 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 44759 "src/ocaml/preprocess/parser_raw.ml" +# 44752 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_attrs2_ = _endpos__1_inlined3_ in @@ -44767,7 +44760,7 @@ module Tables = struct # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 44771 "src/ocaml/preprocess/parser_raw.ml" +# 44764 "src/ocaml/preprocess/parser_raw.ml" in let attrs1 = @@ -44775,13 +44768,13 @@ module Tables = struct # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 44779 "src/ocaml/preprocess/parser_raw.ml" +# 44772 "src/ocaml/preprocess/parser_raw.ml" in let override = # 5304 "src/ocaml/preprocess/parser_raw.mly" ( Fresh ) -# 44785 "src/ocaml/preprocess/parser_raw.ml" +# 44778 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_attrs2_ in let _symbolstartpos = _startpos__1_ in @@ -44794,7 +44787,7 @@ module Tables = struct let docs = symbol_docs _sloc in Opn.mk id ~override ~attrs ~loc ~docs, ext ) -# 44798 "src/ocaml/preprocess/parser_raw.ml" +# 44791 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -44856,7 +44849,7 @@ module Tables = struct # 5399 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 44860 "src/ocaml/preprocess/parser_raw.ml" +# 44853 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_attrs2_ = _endpos__1_inlined4_ in @@ -44868,7 +44861,7 @@ module Tables = struct # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 44872 "src/ocaml/preprocess/parser_raw.ml" +# 44865 "src/ocaml/preprocess/parser_raw.ml" in let attrs1 = @@ -44876,13 +44869,13 @@ module Tables = struct # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 44880 "src/ocaml/preprocess/parser_raw.ml" +# 44873 "src/ocaml/preprocess/parser_raw.ml" in let override = # 5305 "src/ocaml/preprocess/parser_raw.mly" ( Override ) -# 44886 "src/ocaml/preprocess/parser_raw.ml" +# 44879 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_attrs2_ in let _symbolstartpos = _startpos__1_ in @@ -44895,7 +44888,7 @@ module Tables = struct let docs = symbol_docs _sloc in Opn.mk id ~override ~attrs ~loc ~docs, ext ) -# 44899 "src/ocaml/preprocess/parser_raw.ml" +# 44892 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -44916,7 +44909,7 @@ module Tables = struct let _1 : ( # 1124 "src/ocaml/preprocess/parser_raw.mly" (string) -# 44920 "src/ocaml/preprocess/parser_raw.ml" +# 44913 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -44924,7 +44917,7 @@ module Tables = struct let _v : (string) = # 5065 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 44928 "src/ocaml/preprocess/parser_raw.ml" +# 44921 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -44945,7 +44938,7 @@ module Tables = struct let _1 : ( # 1074 "src/ocaml/preprocess/parser_raw.mly" (string) -# 44949 "src/ocaml/preprocess/parser_raw.ml" +# 44942 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -44953,7 +44946,7 @@ module Tables = struct let _v : (string) = # 5066 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 44957 "src/ocaml/preprocess/parser_raw.ml" +# 44950 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -44974,7 +44967,7 @@ module Tables = struct let _1 : ( # 1075 "src/ocaml/preprocess/parser_raw.mly" (string) -# 44978 "src/ocaml/preprocess/parser_raw.ml" +# 44971 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -44982,7 +44975,7 @@ module Tables = struct let _v : (string) = # 5067 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 44986 "src/ocaml/preprocess/parser_raw.ml" +# 44979 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -45024,7 +45017,7 @@ module Tables = struct let _1 : ( # 1073 "src/ocaml/preprocess/parser_raw.mly" (string) -# 45028 "src/ocaml/preprocess/parser_raw.ml" +# 45021 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -45032,7 +45025,7 @@ module Tables = struct let _v : (string) = # 5068 "src/ocaml/preprocess/parser_raw.mly" ( "."^ _1 ^"(" ^ _3 ^ ")" ) -# 45036 "src/ocaml/preprocess/parser_raw.ml" +# 45029 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -45081,7 +45074,7 @@ module Tables = struct let _1 : ( # 1073 "src/ocaml/preprocess/parser_raw.mly" (string) -# 45085 "src/ocaml/preprocess/parser_raw.ml" +# 45078 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -45089,7 +45082,7 @@ module Tables = struct let _v : (string) = # 5069 "src/ocaml/preprocess/parser_raw.mly" ( "."^ _1 ^ "(" ^ _3 ^ ")<-" ) -# 45093 "src/ocaml/preprocess/parser_raw.ml" +# 45086 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -45131,7 +45124,7 @@ module Tables = struct let _1 : ( # 1073 "src/ocaml/preprocess/parser_raw.mly" (string) -# 45135 "src/ocaml/preprocess/parser_raw.ml" +# 45128 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -45139,7 +45132,7 @@ module Tables = struct let _v : (string) = # 5070 "src/ocaml/preprocess/parser_raw.mly" ( "."^ _1 ^"[" ^ _3 ^ "]" ) -# 45143 "src/ocaml/preprocess/parser_raw.ml" +# 45136 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -45188,7 +45181,7 @@ module Tables = struct let _1 : ( # 1073 "src/ocaml/preprocess/parser_raw.mly" (string) -# 45192 "src/ocaml/preprocess/parser_raw.ml" +# 45185 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -45196,7 +45189,7 @@ module Tables = struct let _v : (string) = # 5071 "src/ocaml/preprocess/parser_raw.mly" ( "."^ _1 ^ "[" ^ _3 ^ "]<-" ) -# 45200 "src/ocaml/preprocess/parser_raw.ml" +# 45193 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -45238,7 +45231,7 @@ module Tables = struct let _1 : ( # 1073 "src/ocaml/preprocess/parser_raw.mly" (string) -# 45242 "src/ocaml/preprocess/parser_raw.ml" +# 45235 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -45246,7 +45239,7 @@ module Tables = struct let _v : (string) = # 5072 "src/ocaml/preprocess/parser_raw.mly" ( "."^ _1 ^"{" ^ _3 ^ "}" ) -# 45250 "src/ocaml/preprocess/parser_raw.ml" +# 45243 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -45295,7 +45288,7 @@ module Tables = struct let _1 : ( # 1073 "src/ocaml/preprocess/parser_raw.mly" (string) -# 45299 "src/ocaml/preprocess/parser_raw.ml" +# 45292 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -45303,7 +45296,7 @@ module Tables = struct let _v : (string) = # 5073 "src/ocaml/preprocess/parser_raw.mly" ( "."^ _1 ^ "{" ^ _3 ^ "}<-" ) -# 45307 "src/ocaml/preprocess/parser_raw.ml" +# 45300 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -45324,7 +45317,7 @@ module Tables = struct let _1 : ( # 1137 "src/ocaml/preprocess/parser_raw.mly" (string) -# 45328 "src/ocaml/preprocess/parser_raw.ml" +# 45321 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -45332,7 +45325,7 @@ module Tables = struct let _v : (string) = # 5074 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 45336 "src/ocaml/preprocess/parser_raw.ml" +# 45329 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -45357,7 +45350,7 @@ module Tables = struct let _v : (string) = # 5075 "src/ocaml/preprocess/parser_raw.mly" ( "!" ) -# 45361 "src/ocaml/preprocess/parser_raw.ml" +# 45354 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -45378,7 +45371,7 @@ module Tables = struct let op : ( # 1066 "src/ocaml/preprocess/parser_raw.mly" (string) -# 45382 "src/ocaml/preprocess/parser_raw.ml" +# 45375 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic op in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_op_ in @@ -45386,12 +45379,12 @@ module Tables = struct let _v : (string) = let _1 = # 5083 "src/ocaml/preprocess/parser_raw.mly" ( op ) -# 45390 "src/ocaml/preprocess/parser_raw.ml" +# 45383 "src/ocaml/preprocess/parser_raw.ml" in # 5076 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 45395 "src/ocaml/preprocess/parser_raw.ml" +# 45388 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -45416,12 +45409,12 @@ module Tables = struct let _v : (string) = let _1 = # 5085 "src/ocaml/preprocess/parser_raw.mly" ("@") -# 45420 "src/ocaml/preprocess/parser_raw.ml" +# 45413 "src/ocaml/preprocess/parser_raw.ml" in # 5076 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 45425 "src/ocaml/preprocess/parser_raw.ml" +# 45418 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -45446,12 +45439,12 @@ module Tables = struct let _v : (string) = let _1 = # 5086 "src/ocaml/preprocess/parser_raw.mly" ("@@") -# 45450 "src/ocaml/preprocess/parser_raw.ml" +# 45443 "src/ocaml/preprocess/parser_raw.ml" in # 5076 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 45455 "src/ocaml/preprocess/parser_raw.ml" +# 45448 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -45472,7 +45465,7 @@ module Tables = struct let op : ( # 1069 "src/ocaml/preprocess/parser_raw.mly" (string) -# 45476 "src/ocaml/preprocess/parser_raw.ml" +# 45469 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic op in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_op_ in @@ -45480,12 +45473,12 @@ module Tables = struct let _v : (string) = let _1 = # 5087 "src/ocaml/preprocess/parser_raw.mly" ( op ) -# 45484 "src/ocaml/preprocess/parser_raw.ml" +# 45477 "src/ocaml/preprocess/parser_raw.ml" in # 5076 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 45489 "src/ocaml/preprocess/parser_raw.ml" +# 45482 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -45506,7 +45499,7 @@ module Tables = struct let op : ( # 1070 "src/ocaml/preprocess/parser_raw.mly" (string) -# 45510 "src/ocaml/preprocess/parser_raw.ml" +# 45503 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic op in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_op_ in @@ -45514,12 +45507,12 @@ module Tables = struct let _v : (string) = let _1 = # 5088 "src/ocaml/preprocess/parser_raw.mly" ( op ) -# 45518 "src/ocaml/preprocess/parser_raw.ml" +# 45511 "src/ocaml/preprocess/parser_raw.ml" in # 5076 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 45523 "src/ocaml/preprocess/parser_raw.ml" +# 45516 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -45540,7 +45533,7 @@ module Tables = struct let op : ( # 1071 "src/ocaml/preprocess/parser_raw.mly" (string) -# 45544 "src/ocaml/preprocess/parser_raw.ml" +# 45537 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic op in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_op_ in @@ -45549,18 +45542,18 @@ module Tables = struct let op = # 5079 "src/ocaml/preprocess/parser_raw.mly" ( op ) -# 45553 "src/ocaml/preprocess/parser_raw.ml" +# 45546 "src/ocaml/preprocess/parser_raw.ml" in # 5089 "src/ocaml/preprocess/parser_raw.mly" ( op ) -# 45558 "src/ocaml/preprocess/parser_raw.ml" +# 45551 "src/ocaml/preprocess/parser_raw.ml" in # 5076 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 45564 "src/ocaml/preprocess/parser_raw.ml" +# 45557 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -45586,18 +45579,18 @@ module Tables = struct let op = # 5080 "src/ocaml/preprocess/parser_raw.mly" ( "mod" ) -# 45590 "src/ocaml/preprocess/parser_raw.ml" +# 45583 "src/ocaml/preprocess/parser_raw.ml" in # 5089 "src/ocaml/preprocess/parser_raw.mly" ( op ) -# 45595 "src/ocaml/preprocess/parser_raw.ml" +# 45588 "src/ocaml/preprocess/parser_raw.ml" in # 5076 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 45601 "src/ocaml/preprocess/parser_raw.ml" +# 45594 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -45618,7 +45611,7 @@ module Tables = struct let op : ( # 1072 "src/ocaml/preprocess/parser_raw.mly" (string) -# 45622 "src/ocaml/preprocess/parser_raw.ml" +# 45615 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic op in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_op_ in @@ -45626,12 +45619,12 @@ module Tables = struct let _v : (string) = let _1 = # 5090 "src/ocaml/preprocess/parser_raw.mly" ( op ) -# 45630 "src/ocaml/preprocess/parser_raw.ml" +# 45623 "src/ocaml/preprocess/parser_raw.ml" in # 5076 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 45635 "src/ocaml/preprocess/parser_raw.ml" +# 45628 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -45656,12 +45649,12 @@ module Tables = struct let _v : (string) = let _1 = # 5091 "src/ocaml/preprocess/parser_raw.mly" ("+") -# 45660 "src/ocaml/preprocess/parser_raw.ml" +# 45653 "src/ocaml/preprocess/parser_raw.ml" in # 5076 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 45665 "src/ocaml/preprocess/parser_raw.ml" +# 45658 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -45686,12 +45679,12 @@ module Tables = struct let _v : (string) = let _1 = # 5092 "src/ocaml/preprocess/parser_raw.mly" ("+.") -# 45690 "src/ocaml/preprocess/parser_raw.ml" +# 45683 "src/ocaml/preprocess/parser_raw.ml" in # 5076 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 45695 "src/ocaml/preprocess/parser_raw.ml" +# 45688 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -45716,12 +45709,12 @@ module Tables = struct let _v : (string) = let _1 = # 5093 "src/ocaml/preprocess/parser_raw.mly" ("+=") -# 45720 "src/ocaml/preprocess/parser_raw.ml" +# 45713 "src/ocaml/preprocess/parser_raw.ml" in # 5076 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 45725 "src/ocaml/preprocess/parser_raw.ml" +# 45718 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -45746,12 +45739,12 @@ module Tables = struct let _v : (string) = let _1 = # 5094 "src/ocaml/preprocess/parser_raw.mly" ("-") -# 45750 "src/ocaml/preprocess/parser_raw.ml" +# 45743 "src/ocaml/preprocess/parser_raw.ml" in # 5076 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 45755 "src/ocaml/preprocess/parser_raw.ml" +# 45748 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -45776,12 +45769,12 @@ module Tables = struct let _v : (string) = let _1 = # 5095 "src/ocaml/preprocess/parser_raw.mly" ("-.") -# 45780 "src/ocaml/preprocess/parser_raw.ml" +# 45773 "src/ocaml/preprocess/parser_raw.ml" in # 5076 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 45785 "src/ocaml/preprocess/parser_raw.ml" +# 45778 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -45806,12 +45799,12 @@ module Tables = struct let _v : (string) = let _1 = # 5096 "src/ocaml/preprocess/parser_raw.mly" ("*") -# 45810 "src/ocaml/preprocess/parser_raw.ml" +# 45803 "src/ocaml/preprocess/parser_raw.ml" in # 5076 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 45815 "src/ocaml/preprocess/parser_raw.ml" +# 45808 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -45836,12 +45829,12 @@ module Tables = struct let _v : (string) = let _1 = # 5097 "src/ocaml/preprocess/parser_raw.mly" ("%") -# 45840 "src/ocaml/preprocess/parser_raw.ml" +# 45833 "src/ocaml/preprocess/parser_raw.ml" in # 5076 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 45845 "src/ocaml/preprocess/parser_raw.ml" +# 45838 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -45866,12 +45859,12 @@ module Tables = struct let _v : (string) = let _1 = # 5098 "src/ocaml/preprocess/parser_raw.mly" ("=") -# 45870 "src/ocaml/preprocess/parser_raw.ml" +# 45863 "src/ocaml/preprocess/parser_raw.ml" in # 5076 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 45875 "src/ocaml/preprocess/parser_raw.ml" +# 45868 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -45896,12 +45889,12 @@ module Tables = struct let _v : (string) = let _1 = # 5099 "src/ocaml/preprocess/parser_raw.mly" ("<") -# 45900 "src/ocaml/preprocess/parser_raw.ml" +# 45893 "src/ocaml/preprocess/parser_raw.ml" in # 5076 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 45905 "src/ocaml/preprocess/parser_raw.ml" +# 45898 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -45926,12 +45919,12 @@ module Tables = struct let _v : (string) = let _1 = # 5100 "src/ocaml/preprocess/parser_raw.mly" (">") -# 45930 "src/ocaml/preprocess/parser_raw.ml" +# 45923 "src/ocaml/preprocess/parser_raw.ml" in # 5076 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 45935 "src/ocaml/preprocess/parser_raw.ml" +# 45928 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -45956,12 +45949,12 @@ module Tables = struct let _v : (string) = let _1 = # 5101 "src/ocaml/preprocess/parser_raw.mly" ("or") -# 45960 "src/ocaml/preprocess/parser_raw.ml" +# 45953 "src/ocaml/preprocess/parser_raw.ml" in # 5076 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 45965 "src/ocaml/preprocess/parser_raw.ml" +# 45958 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -45986,12 +45979,12 @@ module Tables = struct let _v : (string) = let _1 = # 5102 "src/ocaml/preprocess/parser_raw.mly" ("||") -# 45990 "src/ocaml/preprocess/parser_raw.ml" +# 45983 "src/ocaml/preprocess/parser_raw.ml" in # 5076 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 45995 "src/ocaml/preprocess/parser_raw.ml" +# 45988 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -46016,12 +46009,12 @@ module Tables = struct let _v : (string) = let _1 = # 5103 "src/ocaml/preprocess/parser_raw.mly" ("&") -# 46020 "src/ocaml/preprocess/parser_raw.ml" +# 46013 "src/ocaml/preprocess/parser_raw.ml" in # 5076 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 46025 "src/ocaml/preprocess/parser_raw.ml" +# 46018 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -46046,12 +46039,12 @@ module Tables = struct let _v : (string) = let _1 = # 5104 "src/ocaml/preprocess/parser_raw.mly" ("&&") -# 46050 "src/ocaml/preprocess/parser_raw.ml" +# 46043 "src/ocaml/preprocess/parser_raw.ml" in # 5076 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 46055 "src/ocaml/preprocess/parser_raw.ml" +# 46048 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -46076,12 +46069,12 @@ module Tables = struct let _v : (string) = let _1 = # 5105 "src/ocaml/preprocess/parser_raw.mly" (":=") -# 46080 "src/ocaml/preprocess/parser_raw.ml" +# 46073 "src/ocaml/preprocess/parser_raw.ml" in # 5076 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 46085 "src/ocaml/preprocess/parser_raw.ml" +# 46078 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -46106,7 +46099,7 @@ module Tables = struct let _v : (bool) = # 4961 "src/ocaml/preprocess/parser_raw.mly" ( true ) -# 46110 "src/ocaml/preprocess/parser_raw.ml" +# 46103 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -46124,7 +46117,7 @@ module Tables = struct let _v : (bool) = # 4962 "src/ocaml/preprocess/parser_raw.mly" ( false ) -# 46128 "src/ocaml/preprocess/parser_raw.ml" +# 46121 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -46142,7 +46135,7 @@ module Tables = struct let _v : (unit option) = # 114 "" ( None ) -# 46146 "src/ocaml/preprocess/parser_raw.ml" +# 46139 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -46167,7 +46160,7 @@ module Tables = struct let _v : (unit option) = # 116 "" ( Some x ) -# 46171 "src/ocaml/preprocess/parser_raw.ml" +# 46164 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -46185,7 +46178,7 @@ module Tables = struct let _v : (unit option) = # 114 "" ( None ) -# 46189 "src/ocaml/preprocess/parser_raw.ml" +# 46182 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -46210,7 +46203,7 @@ module Tables = struct let _v : (unit option) = # 116 "" ( Some x ) -# 46214 "src/ocaml/preprocess/parser_raw.ml" +# 46207 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -46228,7 +46221,7 @@ module Tables = struct let _v : ((Parsetree.type_constraint option * Parsetree.modes) option) = # 114 "" ( None ) -# 46232 "src/ocaml/preprocess/parser_raw.ml" +# 46225 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -46255,25 +46248,25 @@ module Tables = struct let _2 = # 4699 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 46259 "src/ocaml/preprocess/parser_raw.ml" +# 46252 "src/ocaml/preprocess/parser_raw.ml" in # 3686 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 46264 "src/ocaml/preprocess/parser_raw.ml" +# 46257 "src/ocaml/preprocess/parser_raw.ml" in # 3691 "src/ocaml/preprocess/parser_raw.mly" ( let ty, modes = _1 in Some ty, modes ) -# 46271 "src/ocaml/preprocess/parser_raw.ml" +# 46264 "src/ocaml/preprocess/parser_raw.ml" in # 116 "" ( Some x ) -# 46277 "src/ocaml/preprocess/parser_raw.ml" +# 46270 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -46309,26 +46302,26 @@ module Tables = struct # 4700 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 46313 "src/ocaml/preprocess/parser_raw.ml" +# 46306 "src/ocaml/preprocess/parser_raw.ml" in # 3686 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 46319 "src/ocaml/preprocess/parser_raw.ml" +# 46312 "src/ocaml/preprocess/parser_raw.ml" in # 3691 "src/ocaml/preprocess/parser_raw.mly" ( let ty, modes = _1 in Some ty, modes ) -# 46326 "src/ocaml/preprocess/parser_raw.ml" +# 46319 "src/ocaml/preprocess/parser_raw.ml" in # 116 "" ( Some x ) -# 46332 "src/ocaml/preprocess/parser_raw.ml" +# 46325 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -46353,12 +46346,12 @@ module Tables = struct let _v : ((Parsetree.type_constraint option * Parsetree.modes) option) = let x = # 3694 "src/ocaml/preprocess/parser_raw.mly" ( None, _1 ) -# 46357 "src/ocaml/preprocess/parser_raw.ml" +# 46350 "src/ocaml/preprocess/parser_raw.ml" in # 116 "" ( Some x ) -# 46362 "src/ocaml/preprocess/parser_raw.ml" +# 46355 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -46376,7 +46369,7 @@ module Tables = struct let _v : (Parsetree.jkind_annotation option) = # 114 "" ( None ) -# 46380 "src/ocaml/preprocess/parser_raw.ml" +# 46373 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -46401,7 +46394,7 @@ module Tables = struct let _v : (Parsetree.jkind_annotation option) = # 116 "" ( Some x ) -# 46405 "src/ocaml/preprocess/parser_raw.ml" +# 46398 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -46419,7 +46412,7 @@ module Tables = struct let _v : (string Location.loc option) = # 114 "" ( None ) -# 46423 "src/ocaml/preprocess/parser_raw.ml" +# 46416 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -46446,7 +46439,7 @@ module Tables = struct let _1_inlined1 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 46450 "src/ocaml/preprocess/parser_raw.ml" +# 46443 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -46461,19 +46454,19 @@ module Tables = struct # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 46465 "src/ocaml/preprocess/parser_raw.ml" +# 46458 "src/ocaml/preprocess/parser_raw.ml" in # 183 "" ( x ) -# 46471 "src/ocaml/preprocess/parser_raw.ml" +# 46464 "src/ocaml/preprocess/parser_raw.ml" in # 116 "" ( Some x ) -# 46477 "src/ocaml/preprocess/parser_raw.ml" +# 46470 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -46491,7 +46484,7 @@ module Tables = struct let _v : (Parsetree.core_type option) = # 114 "" ( None ) -# 46495 "src/ocaml/preprocess/parser_raw.ml" +# 46488 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -46523,12 +46516,12 @@ module Tables = struct let _v : (Parsetree.core_type option) = let x = # 183 "" ( x ) -# 46527 "src/ocaml/preprocess/parser_raw.ml" +# 46520 "src/ocaml/preprocess/parser_raw.ml" in # 116 "" ( Some x ) -# 46532 "src/ocaml/preprocess/parser_raw.ml" +# 46525 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -46546,7 +46539,7 @@ module Tables = struct let _v : (Parsetree.expression option) = # 114 "" ( None ) -# 46550 "src/ocaml/preprocess/parser_raw.ml" +# 46543 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -46581,24 +46574,24 @@ module Tables = struct let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 46585 "src/ocaml/preprocess/parser_raw.ml" +# 46578 "src/ocaml/preprocess/parser_raw.ml" in # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 46590 "src/ocaml/preprocess/parser_raw.ml" +# 46583 "src/ocaml/preprocess/parser_raw.ml" in # 183 "" ( x ) -# 46596 "src/ocaml/preprocess/parser_raw.ml" +# 46589 "src/ocaml/preprocess/parser_raw.ml" in # 116 "" ( Some x ) -# 46602 "src/ocaml/preprocess/parser_raw.ml" +# 46595 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -46657,18 +46650,18 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 46661 "src/ocaml/preprocess/parser_raw.ml" +# 46654 "src/ocaml/preprocess/parser_raw.ml" in # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 46666 "src/ocaml/preprocess/parser_raw.ml" +# 46659 "src/ocaml/preprocess/parser_raw.ml" in # 3510 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 46672 "src/ocaml/preprocess/parser_raw.ml" +# 46665 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -46679,13 +46672,13 @@ module Tables = struct # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 46683 "src/ocaml/preprocess/parser_raw.ml" +# 46676 "src/ocaml/preprocess/parser_raw.ml" in # 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 46689 "src/ocaml/preprocess/parser_raw.ml" +# 46682 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in @@ -46705,25 +46698,25 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 46709 "src/ocaml/preprocess/parser_raw.ml" +# 46702 "src/ocaml/preprocess/parser_raw.ml" in # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 46715 "src/ocaml/preprocess/parser_raw.ml" +# 46708 "src/ocaml/preprocess/parser_raw.ml" in # 183 "" ( x ) -# 46721 "src/ocaml/preprocess/parser_raw.ml" +# 46714 "src/ocaml/preprocess/parser_raw.ml" in # 116 "" ( Some x ) -# 46727 "src/ocaml/preprocess/parser_raw.ml" +# 46720 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -46741,7 +46734,7 @@ module Tables = struct let _v : (Parsetree.module_type option) = # 114 "" ( None ) -# 46745 "src/ocaml/preprocess/parser_raw.ml" +# 46738 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -46773,12 +46766,12 @@ module Tables = struct let _v : (Parsetree.module_type option) = let x = # 183 "" ( x ) -# 46777 "src/ocaml/preprocess/parser_raw.ml" +# 46770 "src/ocaml/preprocess/parser_raw.ml" in # 116 "" ( Some x ) -# 46782 "src/ocaml/preprocess/parser_raw.ml" +# 46775 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -46796,7 +46789,7 @@ module Tables = struct let _v : (Parsetree.pattern option) = # 114 "" ( None ) -# 46800 "src/ocaml/preprocess/parser_raw.ml" +# 46793 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -46828,12 +46821,12 @@ module Tables = struct let _v : (Parsetree.pattern option) = let x = # 183 "" ( x ) -# 46832 "src/ocaml/preprocess/parser_raw.ml" +# 46825 "src/ocaml/preprocess/parser_raw.ml" in # 116 "" ( Some x ) -# 46837 "src/ocaml/preprocess/parser_raw.ml" +# 46830 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -46851,7 +46844,7 @@ module Tables = struct let _v : (Parsetree.expression option) = # 114 "" ( None ) -# 46855 "src/ocaml/preprocess/parser_raw.ml" +# 46848 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -46883,12 +46876,12 @@ module Tables = struct let _v : (Parsetree.expression option) = let x = # 183 "" ( x ) -# 46887 "src/ocaml/preprocess/parser_raw.ml" +# 46880 "src/ocaml/preprocess/parser_raw.ml" in # 116 "" ( Some x ) -# 46892 "src/ocaml/preprocess/parser_raw.ml" +# 46885 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -46906,7 +46899,7 @@ module Tables = struct let _v : (Parsetree.type_constraint option) = # 114 "" ( None ) -# 46910 "src/ocaml/preprocess/parser_raw.ml" +# 46903 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -46931,7 +46924,7 @@ module Tables = struct let _v : (Parsetree.type_constraint option) = # 116 "" ( Some x ) -# 46935 "src/ocaml/preprocess/parser_raw.ml" +# 46928 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -46949,7 +46942,7 @@ module Tables = struct let _v : (Parsetree.modalities) = # 4724 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 46953 "src/ocaml/preprocess/parser_raw.ml" +# 46946 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -46983,13 +46976,13 @@ module Tables = struct # 4709 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 46987 "src/ocaml/preprocess/parser_raw.ml" +# 46980 "src/ocaml/preprocess/parser_raw.ml" in # 4725 "src/ocaml/preprocess/parser_raw.mly" ( _2 ) -# 46993 "src/ocaml/preprocess/parser_raw.ml" +# 46986 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -47007,7 +47000,7 @@ module Tables = struct let _v : (Parsetree.modalities) = # 4718 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 47011 "src/ocaml/preprocess/parser_raw.ml" +# 47004 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -47041,13 +47034,13 @@ module Tables = struct # 4709 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 47045 "src/ocaml/preprocess/parser_raw.ml" +# 47038 "src/ocaml/preprocess/parser_raw.ml" in # 4719 "src/ocaml/preprocess/parser_raw.mly" ( _2 ) -# 47051 "src/ocaml/preprocess/parser_raw.ml" +# 47044 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -47079,7 +47072,7 @@ module Tables = struct let _v : (Parsetree.function_constraint) = let _3 = # 4699 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 47083 "src/ocaml/preprocess/parser_raw.ml" +# 47076 "src/ocaml/preprocess/parser_raw.ml" in # 2922 "src/ocaml/preprocess/parser_raw.mly" @@ -47089,7 +47082,7 @@ module Tables = struct ; ret_mode_annotations = _3 } ) -# 47093 "src/ocaml/preprocess/parser_raw.ml" +# 47086 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -47130,7 +47123,7 @@ module Tables = struct # 4700 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 47134 "src/ocaml/preprocess/parser_raw.ml" +# 47127 "src/ocaml/preprocess/parser_raw.ml" in @@ -47141,7 +47134,7 @@ module Tables = struct ; ret_mode_annotations = _3 } ) -# 47145 "src/ocaml/preprocess/parser_raw.ml" +# 47138 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -47171,7 +47164,7 @@ module Tables = struct ; ret_mode_annotations = _1 } ) -# 47175 "src/ocaml/preprocess/parser_raw.ml" +# 47168 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -47189,7 +47182,7 @@ module Tables = struct let _v : (Parsetree.function_constraint) = # 2934 "src/ocaml/preprocess/parser_raw.mly" ( empty_body_constraint ) -# 47193 "src/ocaml/preprocess/parser_raw.ml" +# 47186 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -47210,7 +47203,7 @@ module Tables = struct let _1 : ( # 1116 "src/ocaml/preprocess/parser_raw.mly" (string) -# 47214 "src/ocaml/preprocess/parser_raw.ml" +# 47207 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -47218,7 +47211,7 @@ module Tables = struct let _v : (string) = # 5316 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 47222 "src/ocaml/preprocess/parser_raw.ml" +# 47215 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -47252,7 +47245,7 @@ module Tables = struct let _2 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 47256 "src/ocaml/preprocess/parser_raw.ml" +# 47249 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _2 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -47261,7 +47254,7 @@ module Tables = struct let _v : (string) = # 5317 "src/ocaml/preprocess/parser_raw.mly" ( _2 ) -# 47265 "src/ocaml/preprocess/parser_raw.ml" +# 47258 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -47314,7 +47307,7 @@ module Tables = struct let _v : (Parsetree.module_expr) = let mm = # 4699 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 47318 "src/ocaml/preprocess/parser_raw.ml" +# 47311 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__6_ in let _symbolstartpos = _startpos__1_ in @@ -47322,7 +47315,7 @@ module Tables = struct # 1786 "src/ocaml/preprocess/parser_raw.mly" ( mkmod ~loc:_sloc (Pmod_constraint(me, Some mty, mm)) ) -# 47326 "src/ocaml/preprocess/parser_raw.ml" +# 47319 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -47384,7 +47377,7 @@ module Tables = struct # 4700 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 47388 "src/ocaml/preprocess/parser_raw.ml" +# 47381 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__6_ in @@ -47393,7 +47386,7 @@ module Tables = struct # 1786 "src/ocaml/preprocess/parser_raw.mly" ( mkmod ~loc:_sloc (Pmod_constraint(me, Some mty, mm)) ) -# 47397 "src/ocaml/preprocess/parser_raw.ml" +# 47390 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -47442,7 +47435,7 @@ module Tables = struct # 1788 "src/ocaml/preprocess/parser_raw.mly" ( mkmod ~loc:_sloc (Pmod_constraint(me, None, mm)) ) -# 47446 "src/ocaml/preprocess/parser_raw.ml" +# 47439 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -47481,7 +47474,7 @@ module Tables = struct let _v : (Parsetree.module_expr) = # 1795 "src/ocaml/preprocess/parser_raw.mly" ( me (* TODO consider reloc *) ) -# 47485 "src/ocaml/preprocess/parser_raw.ml" +# 47478 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -47537,18 +47530,18 @@ module Tables = struct let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 47541 "src/ocaml/preprocess/parser_raw.ml" +# 47534 "src/ocaml/preprocess/parser_raw.ml" in # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 47546 "src/ocaml/preprocess/parser_raw.ml" +# 47539 "src/ocaml/preprocess/parser_raw.ml" in # 1818 "src/ocaml/preprocess/parser_raw.mly" ( e ) -# 47552 "src/ocaml/preprocess/parser_raw.ml" +# 47545 "src/ocaml/preprocess/parser_raw.ml" in let attrs = @@ -47556,7 +47549,7 @@ module Tables = struct # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 47560 "src/ocaml/preprocess/parser_raw.ml" +# 47553 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__5_ in @@ -47565,7 +47558,7 @@ module Tables = struct # 1803 "src/ocaml/preprocess/parser_raw.mly" ( mkmod ~loc:_sloc ~attrs (Pmod_unpack e) ) -# 47569 "src/ocaml/preprocess/parser_raw.ml" +# 47562 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -47645,18 +47638,18 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 47649 "src/ocaml/preprocess/parser_raw.ml" +# 47642 "src/ocaml/preprocess/parser_raw.ml" in # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 47654 "src/ocaml/preprocess/parser_raw.ml" +# 47647 "src/ocaml/preprocess/parser_raw.ml" in # 3510 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 47660 "src/ocaml/preprocess/parser_raw.ml" +# 47653 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -47667,13 +47660,13 @@ module Tables = struct # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 47671 "src/ocaml/preprocess/parser_raw.ml" +# 47664 "src/ocaml/preprocess/parser_raw.ml" in # 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 47677 "src/ocaml/preprocess/parser_raw.ml" +# 47670 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in @@ -47693,19 +47686,19 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 47697 "src/ocaml/preprocess/parser_raw.ml" +# 47690 "src/ocaml/preprocess/parser_raw.ml" in # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 47703 "src/ocaml/preprocess/parser_raw.ml" +# 47696 "src/ocaml/preprocess/parser_raw.ml" in # 1818 "src/ocaml/preprocess/parser_raw.mly" ( e ) -# 47709 "src/ocaml/preprocess/parser_raw.ml" +# 47702 "src/ocaml/preprocess/parser_raw.ml" in let attrs = @@ -47713,7 +47706,7 @@ module Tables = struct # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 47717 "src/ocaml/preprocess/parser_raw.ml" +# 47710 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__5_ in @@ -47722,7 +47715,7 @@ module Tables = struct # 1803 "src/ocaml/preprocess/parser_raw.mly" ( mkmod ~loc:_sloc ~attrs (Pmod_unpack e) ) -# 47726 "src/ocaml/preprocess/parser_raw.ml" +# 47719 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -47798,7 +47791,7 @@ module Tables = struct ( let (lid, cstrs, attrs) = package_type_of_module_type _1 in let descr = Ptyp_package (lid, cstrs) in mktyp ~loc:_sloc ~attrs descr ) -# 47802 "src/ocaml/preprocess/parser_raw.ml" +# 47795 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_ty_ = _endpos__1_inlined1_ in @@ -47806,12 +47799,12 @@ module Tables = struct let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 47810 "src/ocaml/preprocess/parser_raw.ml" +# 47803 "src/ocaml/preprocess/parser_raw.ml" in # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 47815 "src/ocaml/preprocess/parser_raw.ml" +# 47808 "src/ocaml/preprocess/parser_raw.ml" in let _startpos_e_ = _startpos__1_ in @@ -47821,7 +47814,7 @@ module Tables = struct # 1820 "src/ocaml/preprocess/parser_raw.mly" ( ghexp_constraint ~loc:_loc ~exp:e ~cty:(Some ty) ~modes:[] ) -# 47825 "src/ocaml/preprocess/parser_raw.ml" +# 47818 "src/ocaml/preprocess/parser_raw.ml" in let attrs = @@ -47829,7 +47822,7 @@ module Tables = struct # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 47833 "src/ocaml/preprocess/parser_raw.ml" +# 47826 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__5_ in @@ -47838,7 +47831,7 @@ module Tables = struct # 1803 "src/ocaml/preprocess/parser_raw.mly" ( mkmod ~loc:_sloc ~attrs (Pmod_unpack e) ) -# 47842 "src/ocaml/preprocess/parser_raw.ml" +# 47835 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -47935,7 +47928,7 @@ module Tables = struct ( let (lid, cstrs, attrs) = package_type_of_module_type _1 in let descr = Ptyp_package (lid, cstrs) in mktyp ~loc:_sloc ~attrs descr ) -# 47939 "src/ocaml/preprocess/parser_raw.ml" +# 47932 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_ty_ = _endpos__1_inlined3_ in @@ -47946,18 +47939,18 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 47950 "src/ocaml/preprocess/parser_raw.ml" +# 47943 "src/ocaml/preprocess/parser_raw.ml" in # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 47955 "src/ocaml/preprocess/parser_raw.ml" +# 47948 "src/ocaml/preprocess/parser_raw.ml" in # 3510 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 47961 "src/ocaml/preprocess/parser_raw.ml" +# 47954 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -47968,13 +47961,13 @@ module Tables = struct # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 47972 "src/ocaml/preprocess/parser_raw.ml" +# 47965 "src/ocaml/preprocess/parser_raw.ml" in # 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 47978 "src/ocaml/preprocess/parser_raw.ml" +# 47971 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in @@ -47994,13 +47987,13 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 47998 "src/ocaml/preprocess/parser_raw.ml" +# 47991 "src/ocaml/preprocess/parser_raw.ml" in # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 48004 "src/ocaml/preprocess/parser_raw.ml" +# 47997 "src/ocaml/preprocess/parser_raw.ml" in let _startpos_e_ = _startpos__1_ in @@ -48010,7 +48003,7 @@ module Tables = struct # 1820 "src/ocaml/preprocess/parser_raw.mly" ( ghexp_constraint ~loc:_loc ~exp:e ~cty:(Some ty) ~modes:[] ) -# 48014 "src/ocaml/preprocess/parser_raw.ml" +# 48007 "src/ocaml/preprocess/parser_raw.ml" in let attrs = @@ -48018,7 +48011,7 @@ module Tables = struct # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 48022 "src/ocaml/preprocess/parser_raw.ml" +# 48015 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__5_ in @@ -48027,7 +48020,7 @@ module Tables = struct # 1803 "src/ocaml/preprocess/parser_raw.mly" ( mkmod ~loc:_sloc ~attrs (Pmod_unpack e) ) -# 48031 "src/ocaml/preprocess/parser_raw.ml" +# 48024 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -48117,7 +48110,7 @@ module Tables = struct ( let (lid, cstrs, attrs) = package_type_of_module_type _1 in let descr = Ptyp_package (lid, cstrs) in mktyp ~loc:_sloc ~attrs descr ) -# 48121 "src/ocaml/preprocess/parser_raw.ml" +# 48114 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_ty2_ = _endpos__1_inlined2_ in @@ -48131,19 +48124,19 @@ module Tables = struct ( let (lid, cstrs, attrs) = package_type_of_module_type _1 in let descr = Ptyp_package (lid, cstrs) in mktyp ~loc:_sloc ~attrs descr ) -# 48135 "src/ocaml/preprocess/parser_raw.ml" +# 48128 "src/ocaml/preprocess/parser_raw.ml" in let e = let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 48142 "src/ocaml/preprocess/parser_raw.ml" +# 48135 "src/ocaml/preprocess/parser_raw.ml" in # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 48147 "src/ocaml/preprocess/parser_raw.ml" +# 48140 "src/ocaml/preprocess/parser_raw.ml" in let _startpos_e_ = _startpos__1_ in @@ -48153,7 +48146,7 @@ module Tables = struct # 1822 "src/ocaml/preprocess/parser_raw.mly" ( ghexp ~loc:_loc (Pexp_coerce (e, Some ty1, ty2)) ) -# 48157 "src/ocaml/preprocess/parser_raw.ml" +# 48150 "src/ocaml/preprocess/parser_raw.ml" in let attrs = @@ -48161,7 +48154,7 @@ module Tables = struct # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 48165 "src/ocaml/preprocess/parser_raw.ml" +# 48158 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__5_ in @@ -48170,7 +48163,7 @@ module Tables = struct # 1803 "src/ocaml/preprocess/parser_raw.mly" ( mkmod ~loc:_sloc ~attrs (Pmod_unpack e) ) -# 48174 "src/ocaml/preprocess/parser_raw.ml" +# 48167 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -48281,7 +48274,7 @@ module Tables = struct ( let (lid, cstrs, attrs) = package_type_of_module_type _1 in let descr = Ptyp_package (lid, cstrs) in mktyp ~loc:_sloc ~attrs descr ) -# 48285 "src/ocaml/preprocess/parser_raw.ml" +# 48278 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_ty2_ = _endpos__1_inlined4_ in @@ -48295,7 +48288,7 @@ module Tables = struct ( let (lid, cstrs, attrs) = package_type_of_module_type _1 in let descr = Ptyp_package (lid, cstrs) in mktyp ~loc:_sloc ~attrs descr ) -# 48299 "src/ocaml/preprocess/parser_raw.ml" +# 48292 "src/ocaml/preprocess/parser_raw.ml" in let e = @@ -48305,18 +48298,18 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 48309 "src/ocaml/preprocess/parser_raw.ml" +# 48302 "src/ocaml/preprocess/parser_raw.ml" in # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 48314 "src/ocaml/preprocess/parser_raw.ml" +# 48307 "src/ocaml/preprocess/parser_raw.ml" in # 3510 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 48320 "src/ocaml/preprocess/parser_raw.ml" +# 48313 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -48327,13 +48320,13 @@ module Tables = struct # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 48331 "src/ocaml/preprocess/parser_raw.ml" +# 48324 "src/ocaml/preprocess/parser_raw.ml" in # 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 48337 "src/ocaml/preprocess/parser_raw.ml" +# 48330 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in @@ -48353,13 +48346,13 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 48357 "src/ocaml/preprocess/parser_raw.ml" +# 48350 "src/ocaml/preprocess/parser_raw.ml" in # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 48363 "src/ocaml/preprocess/parser_raw.ml" +# 48356 "src/ocaml/preprocess/parser_raw.ml" in let _startpos_e_ = _startpos__1_ in @@ -48369,7 +48362,7 @@ module Tables = struct # 1822 "src/ocaml/preprocess/parser_raw.mly" ( ghexp ~loc:_loc (Pexp_coerce (e, Some ty1, ty2)) ) -# 48373 "src/ocaml/preprocess/parser_raw.ml" +# 48366 "src/ocaml/preprocess/parser_raw.ml" in let attrs = @@ -48377,7 +48370,7 @@ module Tables = struct # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 48381 "src/ocaml/preprocess/parser_raw.ml" +# 48374 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__5_ in @@ -48386,7 +48379,7 @@ module Tables = struct # 1803 "src/ocaml/preprocess/parser_raw.mly" ( mkmod ~loc:_sloc ~attrs (Pmod_unpack e) ) -# 48390 "src/ocaml/preprocess/parser_raw.ml" +# 48383 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -48462,7 +48455,7 @@ module Tables = struct ( let (lid, cstrs, attrs) = package_type_of_module_type _1 in let descr = Ptyp_package (lid, cstrs) in mktyp ~loc:_sloc ~attrs descr ) -# 48466 "src/ocaml/preprocess/parser_raw.ml" +# 48459 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_ty2_ = _endpos__1_inlined1_ in @@ -48470,12 +48463,12 @@ module Tables = struct let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 48474 "src/ocaml/preprocess/parser_raw.ml" +# 48467 "src/ocaml/preprocess/parser_raw.ml" in # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 48479 "src/ocaml/preprocess/parser_raw.ml" +# 48472 "src/ocaml/preprocess/parser_raw.ml" in let _startpos_e_ = _startpos__1_ in @@ -48485,7 +48478,7 @@ module Tables = struct # 1824 "src/ocaml/preprocess/parser_raw.mly" ( ghexp ~loc:_loc (Pexp_coerce (e, None, ty2)) ) -# 48489 "src/ocaml/preprocess/parser_raw.ml" +# 48482 "src/ocaml/preprocess/parser_raw.ml" in let attrs = @@ -48493,7 +48486,7 @@ module Tables = struct # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 48497 "src/ocaml/preprocess/parser_raw.ml" +# 48490 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__5_ in @@ -48502,7 +48495,7 @@ module Tables = struct # 1803 "src/ocaml/preprocess/parser_raw.mly" ( mkmod ~loc:_sloc ~attrs (Pmod_unpack e) ) -# 48506 "src/ocaml/preprocess/parser_raw.ml" +# 48499 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -48599,7 +48592,7 @@ module Tables = struct ( let (lid, cstrs, attrs) = package_type_of_module_type _1 in let descr = Ptyp_package (lid, cstrs) in mktyp ~loc:_sloc ~attrs descr ) -# 48603 "src/ocaml/preprocess/parser_raw.ml" +# 48596 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_ty2_ = _endpos__1_inlined3_ in @@ -48610,18 +48603,18 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 48614 "src/ocaml/preprocess/parser_raw.ml" +# 48607 "src/ocaml/preprocess/parser_raw.ml" in # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 48619 "src/ocaml/preprocess/parser_raw.ml" +# 48612 "src/ocaml/preprocess/parser_raw.ml" in # 3510 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 48625 "src/ocaml/preprocess/parser_raw.ml" +# 48618 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -48632,13 +48625,13 @@ module Tables = struct # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 48636 "src/ocaml/preprocess/parser_raw.ml" +# 48629 "src/ocaml/preprocess/parser_raw.ml" in # 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 48642 "src/ocaml/preprocess/parser_raw.ml" +# 48635 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in @@ -48658,13 +48651,13 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 48662 "src/ocaml/preprocess/parser_raw.ml" +# 48655 "src/ocaml/preprocess/parser_raw.ml" in # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 48668 "src/ocaml/preprocess/parser_raw.ml" +# 48661 "src/ocaml/preprocess/parser_raw.ml" in let _startpos_e_ = _startpos__1_ in @@ -48674,7 +48667,7 @@ module Tables = struct # 1824 "src/ocaml/preprocess/parser_raw.mly" ( ghexp ~loc:_loc (Pexp_coerce (e, None, ty2)) ) -# 48678 "src/ocaml/preprocess/parser_raw.ml" +# 48671 "src/ocaml/preprocess/parser_raw.ml" in let attrs = @@ -48682,7 +48675,7 @@ module Tables = struct # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 48686 "src/ocaml/preprocess/parser_raw.ml" +# 48679 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__5_ in @@ -48691,7 +48684,7 @@ module Tables = struct # 1803 "src/ocaml/preprocess/parser_raw.mly" ( mkmod ~loc:_sloc ~attrs (Pmod_unpack e) ) -# 48695 "src/ocaml/preprocess/parser_raw.ml" +# 48688 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -48716,7 +48709,7 @@ module Tables = struct let _v : (Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) = # 4212 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 48720 "src/ocaml/preprocess/parser_raw.ml" +# 48713 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -48780,13 +48773,13 @@ module Tables = struct # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 48784 "src/ocaml/preprocess/parser_raw.ml" +# 48777 "src/ocaml/preprocess/parser_raw.ml" in let name = # 4233 "src/ocaml/preprocess/parser_raw.mly" ( Some _2 ) -# 48790 "src/ocaml/preprocess/parser_raw.ml" +# 48783 "src/ocaml/preprocess/parser_raw.ml" in let _startpos_name_ = _startpos__1_ in let _endpos = _endpos_jkind_ in @@ -48797,13 +48790,13 @@ module Tables = struct ( match name with | None -> mktyp ~loc:_sloc ~attrs (Ptyp_any (Some jkind)) | Some name -> mktyp ~loc:_sloc ~attrs (Ptyp_var (name, Some jkind)) ) -# 48801 "src/ocaml/preprocess/parser_raw.ml" +# 48794 "src/ocaml/preprocess/parser_raw.ml" in # 4214 "src/ocaml/preprocess/parser_raw.mly" ( _2, _1 ) -# 48807 "src/ocaml/preprocess/parser_raw.ml" +# 48800 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -48860,13 +48853,13 @@ module Tables = struct # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 48864 "src/ocaml/preprocess/parser_raw.ml" +# 48857 "src/ocaml/preprocess/parser_raw.ml" in let name = # 4235 "src/ocaml/preprocess/parser_raw.mly" ( None ) -# 48870 "src/ocaml/preprocess/parser_raw.ml" +# 48863 "src/ocaml/preprocess/parser_raw.ml" in let _startpos_name_ = _startpos__1_ in let _endpos = _endpos_jkind_ in @@ -48877,13 +48870,13 @@ module Tables = struct ( match name with | None -> mktyp ~loc:_sloc ~attrs (Ptyp_any (Some jkind)) | Some name -> mktyp ~loc:_sloc ~attrs (Ptyp_var (name, Some jkind)) ) -# 48881 "src/ocaml/preprocess/parser_raw.ml" +# 48874 "src/ocaml/preprocess/parser_raw.ml" in # 4214 "src/ocaml/preprocess/parser_raw.mly" ( _2, _1 ) -# 48887 "src/ocaml/preprocess/parser_raw.ml" +# 48880 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -48915,7 +48908,7 @@ module Tables = struct let _v : (Longident.t) = # 1686 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 48919 "src/ocaml/preprocess/parser_raw.ml" +# 48912 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -48947,7 +48940,7 @@ module Tables = struct let _v : (Longident.t) = # 1671 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 48951 "src/ocaml/preprocess/parser_raw.ml" +# 48944 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -48979,7 +48972,7 @@ module Tables = struct let _v : (Parsetree.core_type) = # 1646 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 48983 "src/ocaml/preprocess/parser_raw.ml" +# 48976 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -49011,7 +49004,7 @@ module Tables = struct let _v : (Parsetree.expression) = # 1651 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 49015 "src/ocaml/preprocess/parser_raw.ml" +# 49008 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -49043,7 +49036,7 @@ module Tables = struct let _v : (Longident.t) = # 1676 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 49047 "src/ocaml/preprocess/parser_raw.ml" +# 49040 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -49075,7 +49068,7 @@ module Tables = struct let _v : (Longident.t) = # 1681 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 49079 "src/ocaml/preprocess/parser_raw.ml" +# 49072 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -49107,7 +49100,7 @@ module Tables = struct let _v : (Parsetree.module_expr) = # 1641 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 49111 "src/ocaml/preprocess/parser_raw.ml" +# 49104 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -49139,7 +49132,7 @@ module Tables = struct let _v : (Parsetree.module_type) = # 1636 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 49143 "src/ocaml/preprocess/parser_raw.ml" +# 49136 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -49171,7 +49164,7 @@ module Tables = struct let _v : (Longident.t) = # 1661 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 49175 "src/ocaml/preprocess/parser_raw.ml" +# 49168 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -49203,7 +49196,7 @@ module Tables = struct let _v : (Parsetree.pattern) = # 1656 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 49207 "src/ocaml/preprocess/parser_raw.ml" +# 49200 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -49235,7 +49228,7 @@ module Tables = struct let _v : (Longident.t) = # 1666 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 49239 "src/ocaml/preprocess/parser_raw.ml" +# 49232 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -49281,13 +49274,13 @@ module Tables = struct ( mkpat_cons ~loc:_sloc _loc__2_ (ghpat ~loc:_sloc (Ppat_tuple ([None, _1;None, _3], Closed))) ) -# 49285 "src/ocaml/preprocess/parser_raw.ml" +# 49278 "src/ocaml/preprocess/parser_raw.ml" in # 3731 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 49291 "src/ocaml/preprocess/parser_raw.ml" +# 49284 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -49319,12 +49312,12 @@ module Tables = struct let _v : (Parsetree.pattern) = let _1 = # 3747 "src/ocaml/preprocess/parser_raw.mly" ( Pat.attr _1 _2 ) -# 49323 "src/ocaml/preprocess/parser_raw.ml" +# 49316 "src/ocaml/preprocess/parser_raw.ml" in # 3731 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 49328 "src/ocaml/preprocess/parser_raw.ml" +# 49321 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -49349,12 +49342,12 @@ module Tables = struct let _v : (Parsetree.pattern) = let _1 = # 3749 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 49353 "src/ocaml/preprocess/parser_raw.ml" +# 49346 "src/ocaml/preprocess/parser_raw.ml" in # 3731 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 49358 "src/ocaml/preprocess/parser_raw.ml" +# 49351 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -49401,13 +49394,13 @@ module Tables = struct # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 49405 "src/ocaml/preprocess/parser_raw.ml" +# 49398 "src/ocaml/preprocess/parser_raw.ml" in # 3752 "src/ocaml/preprocess/parser_raw.mly" ( Ppat_alias(_1, _3) ) -# 49411 "src/ocaml/preprocess/parser_raw.ml" +# 49404 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__1_inlined1_ in @@ -49417,19 +49410,19 @@ module Tables = struct # 1331 "src/ocaml/preprocess/parser_raw.mly" ( mkpat ~loc:_sloc _1 ) -# 49421 "src/ocaml/preprocess/parser_raw.ml" +# 49414 "src/ocaml/preprocess/parser_raw.ml" in # 3761 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 49427 "src/ocaml/preprocess/parser_raw.ml" +# 49420 "src/ocaml/preprocess/parser_raw.ml" in # 3731 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 49433 "src/ocaml/preprocess/parser_raw.ml" +# 49426 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -49470,7 +49463,7 @@ module Tables = struct let _1 = # 3758 "src/ocaml/preprocess/parser_raw.mly" ( Ppat_or(_1, _3) ) -# 49474 "src/ocaml/preprocess/parser_raw.ml" +# 49467 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__3_ in let _endpos = _endpos__1_ in @@ -49479,19 +49472,19 @@ module Tables = struct # 1331 "src/ocaml/preprocess/parser_raw.mly" ( mkpat ~loc:_sloc _1 ) -# 49483 "src/ocaml/preprocess/parser_raw.ml" +# 49476 "src/ocaml/preprocess/parser_raw.ml" in # 3761 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 49489 "src/ocaml/preprocess/parser_raw.ml" +# 49482 "src/ocaml/preprocess/parser_raw.ml" in # 3731 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 49495 "src/ocaml/preprocess/parser_raw.ml" +# 49488 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -49522,13 +49515,13 @@ module Tables = struct ( let closed, pats = _1 in mkpat ~loc:_sloc (Ppat_tuple (List.rev pats, closed)) ) -# 49526 "src/ocaml/preprocess/parser_raw.ml" +# 49519 "src/ocaml/preprocess/parser_raw.ml" in # 3731 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 49532 "src/ocaml/preprocess/parser_raw.ml" +# 49525 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -49578,13 +49571,13 @@ module Tables = struct # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 49582 "src/ocaml/preprocess/parser_raw.ml" +# 49575 "src/ocaml/preprocess/parser_raw.ml" in # 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 49588 "src/ocaml/preprocess/parser_raw.ml" +# 49581 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in @@ -49593,7 +49586,7 @@ module Tables = struct # 3733 "src/ocaml/preprocess/parser_raw.mly" ( mkpat_attrs ~loc:_sloc (Ppat_exception _3) _2) -# 49597 "src/ocaml/preprocess/parser_raw.ml" +# 49590 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -49618,7 +49611,7 @@ module Tables = struct let _v : (Parsetree.pattern) = # 3827 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 49622 "src/ocaml/preprocess/parser_raw.ml" +# 49615 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -49656,13 +49649,13 @@ module Tables = struct # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 49660 "src/ocaml/preprocess/parser_raw.ml" +# 49653 "src/ocaml/preprocess/parser_raw.ml" in # 3830 "src/ocaml/preprocess/parser_raw.mly" ( Ppat_construct(_1, Some ([], _2)) ) -# 49666 "src/ocaml/preprocess/parser_raw.ml" +# 49659 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__2_ in @@ -49672,13 +49665,13 @@ module Tables = struct # 1331 "src/ocaml/preprocess/parser_raw.mly" ( mkpat ~loc:_sloc _1 ) -# 49676 "src/ocaml/preprocess/parser_raw.ml" +# 49669 "src/ocaml/preprocess/parser_raw.ml" in # 3836 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 49682 "src/ocaml/preprocess/parser_raw.ml" +# 49675 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -49740,7 +49733,7 @@ module Tables = struct let newtypes = # 3332 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 49744 "src/ocaml/preprocess/parser_raw.ml" +# 49737 "src/ocaml/preprocess/parser_raw.ml" in let constr = let _endpos = _endpos__1_ in @@ -49749,13 +49742,13 @@ module Tables = struct # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 49753 "src/ocaml/preprocess/parser_raw.ml" +# 49746 "src/ocaml/preprocess/parser_raw.ml" in # 3833 "src/ocaml/preprocess/parser_raw.mly" ( Ppat_construct(constr, Some (newtypes, pat)) ) -# 49759 "src/ocaml/preprocess/parser_raw.ml" +# 49752 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_pat_ in @@ -49765,13 +49758,13 @@ module Tables = struct # 1331 "src/ocaml/preprocess/parser_raw.mly" ( mkpat ~loc:_sloc _1 ) -# 49769 "src/ocaml/preprocess/parser_raw.ml" +# 49762 "src/ocaml/preprocess/parser_raw.ml" in # 3836 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 49775 "src/ocaml/preprocess/parser_raw.ml" +# 49768 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -49804,7 +49797,7 @@ module Tables = struct let _1 = # 3835 "src/ocaml/preprocess/parser_raw.mly" ( Ppat_variant(_1, Some _2) ) -# 49808 "src/ocaml/preprocess/parser_raw.ml" +# 49801 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__2_ in let _endpos = _endpos__1_ in @@ -49813,13 +49806,13 @@ module Tables = struct # 1331 "src/ocaml/preprocess/parser_raw.mly" ( mkpat ~loc:_sloc _1 ) -# 49817 "src/ocaml/preprocess/parser_raw.ml" +# 49810 "src/ocaml/preprocess/parser_raw.ml" in # 3836 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 49823 "src/ocaml/preprocess/parser_raw.ml" +# 49816 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -49869,13 +49862,13 @@ module Tables = struct # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 49873 "src/ocaml/preprocess/parser_raw.ml" +# 49866 "src/ocaml/preprocess/parser_raw.ml" in # 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 49879 "src/ocaml/preprocess/parser_raw.ml" +# 49872 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in @@ -49884,7 +49877,7 @@ module Tables = struct # 3838 "src/ocaml/preprocess/parser_raw.mly" ( mkpat_attrs ~loc:_sloc (Ppat_lazy _3) _2) -# 49888 "src/ocaml/preprocess/parser_raw.ml" +# 49881 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -49930,13 +49923,13 @@ module Tables = struct ( mkpat_cons ~loc:_sloc _loc__2_ (ghpat ~loc:_sloc (Ppat_tuple ([None, _1;None, _3], Closed))) ) -# 49934 "src/ocaml/preprocess/parser_raw.ml" +# 49927 "src/ocaml/preprocess/parser_raw.ml" in # 3738 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 49940 "src/ocaml/preprocess/parser_raw.ml" +# 49933 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -49968,12 +49961,12 @@ module Tables = struct let _v : (Parsetree.pattern) = let _1 = # 3747 "src/ocaml/preprocess/parser_raw.mly" ( Pat.attr _1 _2 ) -# 49972 "src/ocaml/preprocess/parser_raw.ml" +# 49965 "src/ocaml/preprocess/parser_raw.ml" in # 3738 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 49977 "src/ocaml/preprocess/parser_raw.ml" +# 49970 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -49998,12 +49991,12 @@ module Tables = struct let _v : (Parsetree.pattern) = let _1 = # 3749 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 50002 "src/ocaml/preprocess/parser_raw.ml" +# 49995 "src/ocaml/preprocess/parser_raw.ml" in # 3738 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 50007 "src/ocaml/preprocess/parser_raw.ml" +# 50000 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -50050,13 +50043,13 @@ module Tables = struct # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 50054 "src/ocaml/preprocess/parser_raw.ml" +# 50047 "src/ocaml/preprocess/parser_raw.ml" in # 3752 "src/ocaml/preprocess/parser_raw.mly" ( Ppat_alias(_1, _3) ) -# 50060 "src/ocaml/preprocess/parser_raw.ml" +# 50053 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__1_inlined1_ in @@ -50066,19 +50059,19 @@ module Tables = struct # 1331 "src/ocaml/preprocess/parser_raw.mly" ( mkpat ~loc:_sloc _1 ) -# 50070 "src/ocaml/preprocess/parser_raw.ml" +# 50063 "src/ocaml/preprocess/parser_raw.ml" in # 3761 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 50076 "src/ocaml/preprocess/parser_raw.ml" +# 50069 "src/ocaml/preprocess/parser_raw.ml" in # 3738 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 50082 "src/ocaml/preprocess/parser_raw.ml" +# 50075 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -50119,7 +50112,7 @@ module Tables = struct let _1 = # 3758 "src/ocaml/preprocess/parser_raw.mly" ( Ppat_or(_1, _3) ) -# 50123 "src/ocaml/preprocess/parser_raw.ml" +# 50116 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__3_ in let _endpos = _endpos__1_ in @@ -50128,19 +50121,19 @@ module Tables = struct # 1331 "src/ocaml/preprocess/parser_raw.mly" ( mkpat ~loc:_sloc _1 ) -# 50132 "src/ocaml/preprocess/parser_raw.ml" +# 50125 "src/ocaml/preprocess/parser_raw.ml" in # 3761 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 50138 "src/ocaml/preprocess/parser_raw.ml" +# 50131 "src/ocaml/preprocess/parser_raw.ml" in # 3738 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 50144 "src/ocaml/preprocess/parser_raw.ml" +# 50137 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -50171,13 +50164,13 @@ module Tables = struct ( let closed, pats = _1 in mkpat ~loc:_sloc (Ppat_tuple (List.rev pats, closed)) ) -# 50175 "src/ocaml/preprocess/parser_raw.ml" +# 50168 "src/ocaml/preprocess/parser_raw.ml" in # 3738 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 50181 "src/ocaml/preprocess/parser_raw.ml" +# 50174 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -50198,7 +50191,7 @@ module Tables = struct let _1 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 50202 "src/ocaml/preprocess/parser_raw.ml" +# 50195 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -50212,13 +50205,13 @@ module Tables = struct # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 50216 "src/ocaml/preprocess/parser_raw.ml" +# 50209 "src/ocaml/preprocess/parser_raw.ml" in # 2827 "src/ocaml/preprocess/parser_raw.mly" ( Ppat_var _1 ) -# 50222 "src/ocaml/preprocess/parser_raw.ml" +# 50215 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in @@ -50227,13 +50220,13 @@ module Tables = struct # 1331 "src/ocaml/preprocess/parser_raw.mly" ( mkpat ~loc:_sloc _1 ) -# 50231 "src/ocaml/preprocess/parser_raw.ml" +# 50224 "src/ocaml/preprocess/parser_raw.ml" in # 2829 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 50237 "src/ocaml/preprocess/parser_raw.ml" +# 50230 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -50259,7 +50252,7 @@ module Tables = struct let _1 = # 2828 "src/ocaml/preprocess/parser_raw.mly" ( Ppat_any ) -# 50263 "src/ocaml/preprocess/parser_raw.ml" +# 50256 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in @@ -50267,13 +50260,13 @@ module Tables = struct # 1331 "src/ocaml/preprocess/parser_raw.mly" ( mkpat ~loc:_sloc _1 ) -# 50271 "src/ocaml/preprocess/parser_raw.ml" +# 50264 "src/ocaml/preprocess/parser_raw.ml" in # 2829 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 50277 "src/ocaml/preprocess/parser_raw.ml" +# 50270 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -50298,7 +50291,7 @@ module Tables = struct let _v : (Parsetree.payload) = # 5429 "src/ocaml/preprocess/parser_raw.mly" ( PStr _1 ) -# 50302 "src/ocaml/preprocess/parser_raw.ml" +# 50295 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -50330,7 +50323,7 @@ module Tables = struct let _v : (Parsetree.payload) = # 5430 "src/ocaml/preprocess/parser_raw.mly" ( PSig _2 ) -# 50334 "src/ocaml/preprocess/parser_raw.ml" +# 50327 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -50362,7 +50355,7 @@ module Tables = struct let _v : (Parsetree.payload) = # 5431 "src/ocaml/preprocess/parser_raw.mly" ( PTyp _2 ) -# 50366 "src/ocaml/preprocess/parser_raw.ml" +# 50359 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -50394,7 +50387,7 @@ module Tables = struct let _v : (Parsetree.payload) = # 5432 "src/ocaml/preprocess/parser_raw.mly" ( PPat (_2, None) ) -# 50398 "src/ocaml/preprocess/parser_raw.ml" +# 50391 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -50440,7 +50433,7 @@ module Tables = struct let _v : (Parsetree.payload) = # 5433 "src/ocaml/preprocess/parser_raw.mly" ( PPat (_2, Some _4) ) -# 50444 "src/ocaml/preprocess/parser_raw.ml" +# 50437 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -50465,7 +50458,7 @@ module Tables = struct let _v : (Parsetree.core_type) = # 4489 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 50469 "src/ocaml/preprocess/parser_raw.ml" +# 50462 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -50507,24 +50500,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 50511 "src/ocaml/preprocess/parser_raw.ml" +# 50504 "src/ocaml/preprocess/parser_raw.ml" in # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 50516 "src/ocaml/preprocess/parser_raw.ml" +# 50509 "src/ocaml/preprocess/parser_raw.ml" in # 4481 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 50522 "src/ocaml/preprocess/parser_raw.ml" +# 50515 "src/ocaml/preprocess/parser_raw.ml" in # 4485 "src/ocaml/preprocess/parser_raw.mly" ( (_1, _3) ) -# 50528 "src/ocaml/preprocess/parser_raw.ml" +# 50521 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__3_, _startpos_xs_) in @@ -50535,7 +50528,7 @@ module Tables = struct # 4491 "src/ocaml/preprocess/parser_raw.mly" ( let bound_vars, inner_type = _1 in mktyp ~loc:_sloc (Ptyp_poly (bound_vars, inner_type)) ) -# 50539 "src/ocaml/preprocess/parser_raw.ml" +# 50532 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -50560,12 +50553,12 @@ module Tables = struct let _v : (Parsetree.core_type) = let _1 = # 4521 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 50564 "src/ocaml/preprocess/parser_raw.ml" +# 50557 "src/ocaml/preprocess/parser_raw.ml" in # 4489 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 50569 "src/ocaml/preprocess/parser_raw.ml" +# 50562 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -50605,31 +50598,31 @@ module Tables = struct let _3 = # 4521 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 50609 "src/ocaml/preprocess/parser_raw.ml" +# 50602 "src/ocaml/preprocess/parser_raw.ml" in let _1 = let _1 = let xs = # 253 "" ( List.rev xs ) -# 50616 "src/ocaml/preprocess/parser_raw.ml" +# 50609 "src/ocaml/preprocess/parser_raw.ml" in # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 50621 "src/ocaml/preprocess/parser_raw.ml" +# 50614 "src/ocaml/preprocess/parser_raw.ml" in # 4481 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 50627 "src/ocaml/preprocess/parser_raw.ml" +# 50620 "src/ocaml/preprocess/parser_raw.ml" in # 4485 "src/ocaml/preprocess/parser_raw.mly" ( (_1, _3) ) -# 50633 "src/ocaml/preprocess/parser_raw.ml" +# 50626 "src/ocaml/preprocess/parser_raw.ml" in let _startpos__1_ = _startpos_xs_ in @@ -50640,7 +50633,7 @@ module Tables = struct # 4491 "src/ocaml/preprocess/parser_raw.mly" ( let bound_vars, inner_type = _1 in mktyp ~loc:_sloc (Ptyp_poly (bound_vars, inner_type)) ) -# 50644 "src/ocaml/preprocess/parser_raw.ml" +# 50637 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -50689,7 +50682,7 @@ module Tables = struct # 5390 "src/ocaml/preprocess/parser_raw.mly" ( mk_attr ~loc:(make_loc _sloc) _2 _3 ) -# 50693 "src/ocaml/preprocess/parser_raw.ml" +# 50686 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -50779,7 +50772,7 @@ module Tables = struct # 5399 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 50783 "src/ocaml/preprocess/parser_raw.ml" +# 50776 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_attrs2_ = _endpos__1_inlined3_ in @@ -50791,7 +50784,7 @@ module Tables = struct # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 50795 "src/ocaml/preprocess/parser_raw.ml" +# 50788 "src/ocaml/preprocess/parser_raw.ml" in let attrs1 = @@ -50799,7 +50792,7 @@ module Tables = struct # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 50803 "src/ocaml/preprocess/parser_raw.ml" +# 50796 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_attrs2_ in @@ -50812,7 +50805,7 @@ module Tables = struct let docs = symbol_docs _sloc in Val.mk id ty ~prim ~attrs ~modalities ~loc ~docs, ext ) -# 50816 "src/ocaml/preprocess/parser_raw.ml" +# 50809 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -50830,12 +50823,12 @@ module Tables = struct let _v : (Asttypes.private_flag) = let _1 = # 5245 "src/ocaml/preprocess/parser_raw.mly" ( Public ) -# 50834 "src/ocaml/preprocess/parser_raw.ml" +# 50827 "src/ocaml/preprocess/parser_raw.ml" in # 5242 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 50839 "src/ocaml/preprocess/parser_raw.ml" +# 50832 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -50860,12 +50853,12 @@ module Tables = struct let _v : (Asttypes.private_flag) = let _1 = # 5246 "src/ocaml/preprocess/parser_raw.mly" ( Private ) -# 50864 "src/ocaml/preprocess/parser_raw.ml" +# 50857 "src/ocaml/preprocess/parser_raw.ml" in # 5242 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 50869 "src/ocaml/preprocess/parser_raw.ml" +# 50862 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -50883,7 +50876,7 @@ module Tables = struct let _v : (Asttypes.private_flag * Asttypes.virtual_flag) = # 5280 "src/ocaml/preprocess/parser_raw.mly" ( Public, Concrete ) -# 50887 "src/ocaml/preprocess/parser_raw.ml" +# 50880 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -50908,7 +50901,7 @@ module Tables = struct let _v : (Asttypes.private_flag * Asttypes.virtual_flag) = # 5281 "src/ocaml/preprocess/parser_raw.mly" ( Private, Concrete ) -# 50912 "src/ocaml/preprocess/parser_raw.ml" +# 50905 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -50933,7 +50926,7 @@ module Tables = struct let _v : (Asttypes.private_flag * Asttypes.virtual_flag) = # 5282 "src/ocaml/preprocess/parser_raw.mly" ( Public, Virtual ) -# 50937 "src/ocaml/preprocess/parser_raw.ml" +# 50930 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -50965,7 +50958,7 @@ module Tables = struct let _v : (Asttypes.private_flag * Asttypes.virtual_flag) = # 5283 "src/ocaml/preprocess/parser_raw.mly" ( Private, Virtual ) -# 50969 "src/ocaml/preprocess/parser_raw.ml" +# 50962 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -50997,7 +50990,7 @@ module Tables = struct let _v : (Asttypes.private_flag * Asttypes.virtual_flag) = # 5284 "src/ocaml/preprocess/parser_raw.mly" ( Private, Virtual ) -# 51001 "src/ocaml/preprocess/parser_raw.ml" +# 50994 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -51015,7 +51008,7 @@ module Tables = struct let _v : (Asttypes.rec_flag) = # 5223 "src/ocaml/preprocess/parser_raw.mly" ( Nonrecursive ) -# 51019 "src/ocaml/preprocess/parser_raw.ml" +# 51012 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -51040,7 +51033,7 @@ module Tables = struct let _v : (Asttypes.rec_flag) = # 5224 "src/ocaml/preprocess/parser_raw.mly" ( Recursive ) -# 51044 "src/ocaml/preprocess/parser_raw.ml" +# 51037 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -51066,12 +51059,12 @@ module Tables = struct (Longident.t Location.loc * Parsetree.expression) list) = let eo = # 124 "" ( None ) -# 51070 "src/ocaml/preprocess/parser_raw.ml" +# 51063 "src/ocaml/preprocess/parser_raw.ml" in # 3639 "src/ocaml/preprocess/parser_raw.mly" ( eo, fields ) -# 51075 "src/ocaml/preprocess/parser_raw.ml" +# 51068 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -51112,18 +51105,18 @@ module Tables = struct let x = # 191 "" ( x ) -# 51116 "src/ocaml/preprocess/parser_raw.ml" +# 51109 "src/ocaml/preprocess/parser_raw.ml" in # 126 "" ( Some x ) -# 51121 "src/ocaml/preprocess/parser_raw.ml" +# 51114 "src/ocaml/preprocess/parser_raw.ml" in # 3639 "src/ocaml/preprocess/parser_raw.mly" ( eo, fields ) -# 51127 "src/ocaml/preprocess/parser_raw.ml" +# 51120 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -51162,7 +51155,7 @@ module Tables = struct let _v : (Parsetree.jkind_annotation list) = # 4181 "src/ocaml/preprocess/parser_raw.mly" ( [jkind2; jkind1] ) -# 51166 "src/ocaml/preprocess/parser_raw.ml" +# 51159 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -51201,7 +51194,7 @@ module Tables = struct let _v : (Parsetree.jkind_annotation list) = # 4185 "src/ocaml/preprocess/parser_raw.mly" ( jkind :: jkinds ) -# 51205 "src/ocaml/preprocess/parser_raw.ml" +# 51198 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -51232,12 +51225,12 @@ module Tables = struct let cid, vars, args, res, attrs, loc, info = d in Type.constructor cid ~vars ~args ?res ~attrs ~loc ~info ) -# 51236 "src/ocaml/preprocess/parser_raw.ml" +# 51229 "src/ocaml/preprocess/parser_raw.ml" in # 1528 "src/ocaml/preprocess/parser_raw.mly" ( [x] ) -# 51241 "src/ocaml/preprocess/parser_raw.ml" +# 51234 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -51268,12 +51261,12 @@ module Tables = struct let cid, vars, args, res, attrs, loc, info = d in Type.constructor cid ~vars ~args ?res ~attrs ~loc ~info ) -# 51272 "src/ocaml/preprocess/parser_raw.ml" +# 51265 "src/ocaml/preprocess/parser_raw.ml" in # 1531 "src/ocaml/preprocess/parser_raw.mly" ( [x] ) -# 51277 "src/ocaml/preprocess/parser_raw.ml" +# 51270 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -51311,12 +51304,12 @@ module Tables = struct let cid, vars, args, res, attrs, loc, info = d in Type.constructor cid ~vars ~args ?res ~attrs ~loc ~info ) -# 51315 "src/ocaml/preprocess/parser_raw.ml" +# 51308 "src/ocaml/preprocess/parser_raw.ml" in # 1535 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 51320 "src/ocaml/preprocess/parser_raw.ml" +# 51313 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -51348,18 +51341,18 @@ module Tables = struct let name, vars, args, res, attrs, loc, info = d in Te.decl name ~vars ~args ?res ~attrs ~loc ~info ) -# 51352 "src/ocaml/preprocess/parser_raw.ml" +# 51345 "src/ocaml/preprocess/parser_raw.ml" in # 4410 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 51357 "src/ocaml/preprocess/parser_raw.ml" +# 51350 "src/ocaml/preprocess/parser_raw.ml" in # 1528 "src/ocaml/preprocess/parser_raw.mly" ( [x] ) -# 51363 "src/ocaml/preprocess/parser_raw.ml" +# 51356 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -51384,12 +51377,12 @@ module Tables = struct let _v : (Parsetree.extension_constructor list) = let x = # 4412 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 51388 "src/ocaml/preprocess/parser_raw.ml" +# 51381 "src/ocaml/preprocess/parser_raw.ml" in # 1528 "src/ocaml/preprocess/parser_raw.mly" ( [x] ) -# 51393 "src/ocaml/preprocess/parser_raw.ml" +# 51386 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -51421,18 +51414,18 @@ module Tables = struct let name, vars, args, res, attrs, loc, info = d in Te.decl name ~vars ~args ?res ~attrs ~loc ~info ) -# 51425 "src/ocaml/preprocess/parser_raw.ml" +# 51418 "src/ocaml/preprocess/parser_raw.ml" in # 4410 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 51430 "src/ocaml/preprocess/parser_raw.ml" +# 51423 "src/ocaml/preprocess/parser_raw.ml" in # 1531 "src/ocaml/preprocess/parser_raw.mly" ( [x] ) -# 51436 "src/ocaml/preprocess/parser_raw.ml" +# 51429 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -51457,12 +51450,12 @@ module Tables = struct let _v : (Parsetree.extension_constructor list) = let x = # 4412 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 51461 "src/ocaml/preprocess/parser_raw.ml" +# 51454 "src/ocaml/preprocess/parser_raw.ml" in # 1531 "src/ocaml/preprocess/parser_raw.mly" ( [x] ) -# 51466 "src/ocaml/preprocess/parser_raw.ml" +# 51459 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -51501,18 +51494,18 @@ module Tables = struct let name, vars, args, res, attrs, loc, info = d in Te.decl name ~vars ~args ?res ~attrs ~loc ~info ) -# 51505 "src/ocaml/preprocess/parser_raw.ml" +# 51498 "src/ocaml/preprocess/parser_raw.ml" in # 4410 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 51510 "src/ocaml/preprocess/parser_raw.ml" +# 51503 "src/ocaml/preprocess/parser_raw.ml" in # 1535 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 51516 "src/ocaml/preprocess/parser_raw.ml" +# 51509 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -51544,12 +51537,12 @@ module Tables = struct let _v : (Parsetree.extension_constructor list) = let x = # 4412 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 51548 "src/ocaml/preprocess/parser_raw.ml" +# 51541 "src/ocaml/preprocess/parser_raw.ml" in # 1535 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 51553 "src/ocaml/preprocess/parser_raw.ml" +# 51546 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -51580,12 +51573,12 @@ module Tables = struct let name, vars, args, res, attrs, loc, info = d in Te.decl name ~vars ~args ?res ~attrs ~loc ~info ) -# 51584 "src/ocaml/preprocess/parser_raw.ml" +# 51577 "src/ocaml/preprocess/parser_raw.ml" in # 1528 "src/ocaml/preprocess/parser_raw.mly" ( [x] ) -# 51589 "src/ocaml/preprocess/parser_raw.ml" +# 51582 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -51616,12 +51609,12 @@ module Tables = struct let name, vars, args, res, attrs, loc, info = d in Te.decl name ~vars ~args ?res ~attrs ~loc ~info ) -# 51620 "src/ocaml/preprocess/parser_raw.ml" +# 51613 "src/ocaml/preprocess/parser_raw.ml" in # 1531 "src/ocaml/preprocess/parser_raw.mly" ( [x] ) -# 51625 "src/ocaml/preprocess/parser_raw.ml" +# 51618 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -51659,12 +51652,12 @@ module Tables = struct let name, vars, args, res, attrs, loc, info = d in Te.decl name ~vars ~args ?res ~attrs ~loc ~info ) -# 51663 "src/ocaml/preprocess/parser_raw.ml" +# 51656 "src/ocaml/preprocess/parser_raw.ml" in # 1535 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 51668 "src/ocaml/preprocess/parser_raw.ml" +# 51661 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -51705,24 +51698,24 @@ module Tables = struct let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 51709 "src/ocaml/preprocess/parser_raw.ml" +# 51702 "src/ocaml/preprocess/parser_raw.ml" in # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 51714 "src/ocaml/preprocess/parser_raw.ml" +# 51707 "src/ocaml/preprocess/parser_raw.ml" in # 3591 "src/ocaml/preprocess/parser_raw.mly" ( None, _1 ) -# 51720 "src/ocaml/preprocess/parser_raw.ml" +# 51713 "src/ocaml/preprocess/parser_raw.ml" in # 3607 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 51726 "src/ocaml/preprocess/parser_raw.ml" +# 51719 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -51788,18 +51781,18 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 51792 "src/ocaml/preprocess/parser_raw.ml" +# 51785 "src/ocaml/preprocess/parser_raw.ml" in # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 51797 "src/ocaml/preprocess/parser_raw.ml" +# 51790 "src/ocaml/preprocess/parser_raw.ml" in # 3510 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 51803 "src/ocaml/preprocess/parser_raw.ml" +# 51796 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -51810,13 +51803,13 @@ module Tables = struct # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 51814 "src/ocaml/preprocess/parser_raw.ml" +# 51807 "src/ocaml/preprocess/parser_raw.ml" in # 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 51820 "src/ocaml/preprocess/parser_raw.ml" +# 51813 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in @@ -51836,25 +51829,25 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 51840 "src/ocaml/preprocess/parser_raw.ml" +# 51833 "src/ocaml/preprocess/parser_raw.ml" in # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 51846 "src/ocaml/preprocess/parser_raw.ml" +# 51839 "src/ocaml/preprocess/parser_raw.ml" in # 3591 "src/ocaml/preprocess/parser_raw.mly" ( None, _1 ) -# 51852 "src/ocaml/preprocess/parser_raw.ml" +# 51845 "src/ocaml/preprocess/parser_raw.ml" in # 3607 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 51858 "src/ocaml/preprocess/parser_raw.ml" +# 51851 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -51894,7 +51887,7 @@ module Tables = struct let _1 : ( # 1082 "src/ocaml/preprocess/parser_raw.mly" (string) -# 51898 "src/ocaml/preprocess/parser_raw.ml" +# 51891 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _2 : unit = Obj.magic _2 in let xs : ((string option * Parsetree.expression) list) = Obj.magic xs in @@ -51906,13 +51899,13 @@ module Tables = struct # 3593 "src/ocaml/preprocess/parser_raw.mly" ( Some _1, _2 ) -# 51910 "src/ocaml/preprocess/parser_raw.ml" +# 51903 "src/ocaml/preprocess/parser_raw.ml" in # 3607 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 51916 "src/ocaml/preprocess/parser_raw.ml" +# 51909 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -51951,7 +51944,7 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 51955 "src/ocaml/preprocess/parser_raw.ml" +# 51948 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _1 : unit = Obj.magic _1 in let _2 : unit = Obj.magic _2 in @@ -51965,13 +51958,13 @@ module Tables = struct # 3595 "src/ocaml/preprocess/parser_raw.mly" ( let loc = _loc_label_ in Some label, mkexpvar ~loc label ) -# 51969 "src/ocaml/preprocess/parser_raw.ml" +# 51962 "src/ocaml/preprocess/parser_raw.ml" in # 3607 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 51975 "src/ocaml/preprocess/parser_raw.ml" +# 51968 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -52030,7 +52023,7 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 52034 "src/ocaml/preprocess/parser_raw.ml" +# 52027 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _2_inlined1 : unit = Obj.magic _2_inlined1 in let _1 : unit = Obj.magic _1 in @@ -52048,13 +52041,13 @@ module Tables = struct ( Some label, mkexp_type_constraint_with_modes ~loc:(_startpos__2_, _endpos) ~modes:[] (mkexpvar ~loc:_loc_label_ label) c ) -# 52052 "src/ocaml/preprocess/parser_raw.ml" +# 52045 "src/ocaml/preprocess/parser_raw.ml" in # 3607 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 52058 "src/ocaml/preprocess/parser_raw.ml" +# 52051 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -52096,36 +52089,36 @@ module Tables = struct let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 52100 "src/ocaml/preprocess/parser_raw.ml" +# 52093 "src/ocaml/preprocess/parser_raw.ml" in # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 52105 "src/ocaml/preprocess/parser_raw.ml" +# 52098 "src/ocaml/preprocess/parser_raw.ml" in # 3591 "src/ocaml/preprocess/parser_raw.mly" ( None, _1 ) -# 52111 "src/ocaml/preprocess/parser_raw.ml" +# 52104 "src/ocaml/preprocess/parser_raw.ml" in let x1 = let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 52118 "src/ocaml/preprocess/parser_raw.ml" +# 52111 "src/ocaml/preprocess/parser_raw.ml" in # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 52123 "src/ocaml/preprocess/parser_raw.ml" +# 52116 "src/ocaml/preprocess/parser_raw.ml" in # 3612 "src/ocaml/preprocess/parser_raw.mly" ( [ x2; None, x1 ] ) -# 52129 "src/ocaml/preprocess/parser_raw.ml" +# 52122 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -52191,18 +52184,18 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 52195 "src/ocaml/preprocess/parser_raw.ml" +# 52188 "src/ocaml/preprocess/parser_raw.ml" in # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 52200 "src/ocaml/preprocess/parser_raw.ml" +# 52193 "src/ocaml/preprocess/parser_raw.ml" in # 3510 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 52206 "src/ocaml/preprocess/parser_raw.ml" +# 52199 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -52213,13 +52206,13 @@ module Tables = struct # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 52217 "src/ocaml/preprocess/parser_raw.ml" +# 52210 "src/ocaml/preprocess/parser_raw.ml" in # 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 52223 "src/ocaml/preprocess/parser_raw.ml" +# 52216 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in @@ -52239,37 +52232,37 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 52243 "src/ocaml/preprocess/parser_raw.ml" +# 52236 "src/ocaml/preprocess/parser_raw.ml" in # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 52249 "src/ocaml/preprocess/parser_raw.ml" +# 52242 "src/ocaml/preprocess/parser_raw.ml" in # 3591 "src/ocaml/preprocess/parser_raw.mly" ( None, _1 ) -# 52255 "src/ocaml/preprocess/parser_raw.ml" +# 52248 "src/ocaml/preprocess/parser_raw.ml" in let x1 = let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 52262 "src/ocaml/preprocess/parser_raw.ml" +# 52255 "src/ocaml/preprocess/parser_raw.ml" in # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 52267 "src/ocaml/preprocess/parser_raw.ml" +# 52260 "src/ocaml/preprocess/parser_raw.ml" in # 3612 "src/ocaml/preprocess/parser_raw.mly" ( [ x2; None, x1 ] ) -# 52273 "src/ocaml/preprocess/parser_raw.ml" +# 52266 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -52309,7 +52302,7 @@ module Tables = struct let _1_inlined1 : ( # 1082 "src/ocaml/preprocess/parser_raw.mly" (string) -# 52313 "src/ocaml/preprocess/parser_raw.ml" +# 52306 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in let _1 : (Parsetree.expression) = Obj.magic _1 in @@ -52321,25 +52314,25 @@ module Tables = struct # 3593 "src/ocaml/preprocess/parser_raw.mly" ( Some _1, _2 ) -# 52325 "src/ocaml/preprocess/parser_raw.ml" +# 52318 "src/ocaml/preprocess/parser_raw.ml" in let x1 = let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 52332 "src/ocaml/preprocess/parser_raw.ml" +# 52325 "src/ocaml/preprocess/parser_raw.ml" in # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 52337 "src/ocaml/preprocess/parser_raw.ml" +# 52330 "src/ocaml/preprocess/parser_raw.ml" in # 3612 "src/ocaml/preprocess/parser_raw.mly" ( [ x2; None, x1 ] ) -# 52343 "src/ocaml/preprocess/parser_raw.ml" +# 52336 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -52378,7 +52371,7 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 52382 "src/ocaml/preprocess/parser_raw.ml" +# 52375 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in @@ -52392,25 +52385,25 @@ module Tables = struct # 3595 "src/ocaml/preprocess/parser_raw.mly" ( let loc = _loc_label_ in Some label, mkexpvar ~loc label ) -# 52396 "src/ocaml/preprocess/parser_raw.ml" +# 52389 "src/ocaml/preprocess/parser_raw.ml" in let x1 = let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 52403 "src/ocaml/preprocess/parser_raw.ml" +# 52396 "src/ocaml/preprocess/parser_raw.ml" in # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 52408 "src/ocaml/preprocess/parser_raw.ml" +# 52401 "src/ocaml/preprocess/parser_raw.ml" in # 3612 "src/ocaml/preprocess/parser_raw.mly" ( [ x2; None, x1 ] ) -# 52414 "src/ocaml/preprocess/parser_raw.ml" +# 52407 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -52469,7 +52462,7 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 52473 "src/ocaml/preprocess/parser_raw.ml" +# 52466 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _2_inlined1 : unit = Obj.magic _2_inlined1 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in @@ -52487,25 +52480,25 @@ module Tables = struct ( Some label, mkexp_type_constraint_with_modes ~loc:(_startpos__2_, _endpos) ~modes:[] (mkexpvar ~loc:_loc_label_ label) c ) -# 52491 "src/ocaml/preprocess/parser_raw.ml" +# 52484 "src/ocaml/preprocess/parser_raw.ml" in let x1 = let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 52498 "src/ocaml/preprocess/parser_raw.ml" +# 52491 "src/ocaml/preprocess/parser_raw.ml" in # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 52503 "src/ocaml/preprocess/parser_raw.ml" +# 52496 "src/ocaml/preprocess/parser_raw.ml" in # 3612 "src/ocaml/preprocess/parser_raw.mly" ( [ x2; None, x1 ] ) -# 52509 "src/ocaml/preprocess/parser_raw.ml" +# 52502 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -52568,18 +52561,18 @@ module Tables = struct let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 52572 "src/ocaml/preprocess/parser_raw.ml" +# 52565 "src/ocaml/preprocess/parser_raw.ml" in # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 52577 "src/ocaml/preprocess/parser_raw.ml" +# 52570 "src/ocaml/preprocess/parser_raw.ml" in # 3591 "src/ocaml/preprocess/parser_raw.mly" ( None, _1 ) -# 52583 "src/ocaml/preprocess/parser_raw.ml" +# 52576 "src/ocaml/preprocess/parser_raw.ml" in let x1 = @@ -52589,18 +52582,18 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 52593 "src/ocaml/preprocess/parser_raw.ml" +# 52586 "src/ocaml/preprocess/parser_raw.ml" in # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 52598 "src/ocaml/preprocess/parser_raw.ml" +# 52591 "src/ocaml/preprocess/parser_raw.ml" in # 3510 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 52604 "src/ocaml/preprocess/parser_raw.ml" +# 52597 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -52611,13 +52604,13 @@ module Tables = struct # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 52615 "src/ocaml/preprocess/parser_raw.ml" +# 52608 "src/ocaml/preprocess/parser_raw.ml" in # 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 52621 "src/ocaml/preprocess/parser_raw.ml" +# 52614 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in @@ -52637,19 +52630,19 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 52641 "src/ocaml/preprocess/parser_raw.ml" +# 52634 "src/ocaml/preprocess/parser_raw.ml" in # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 52647 "src/ocaml/preprocess/parser_raw.ml" +# 52640 "src/ocaml/preprocess/parser_raw.ml" in # 3612 "src/ocaml/preprocess/parser_raw.mly" ( [ x2; None, x1 ] ) -# 52653 "src/ocaml/preprocess/parser_raw.ml" +# 52646 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -52736,18 +52729,18 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 52740 "src/ocaml/preprocess/parser_raw.ml" +# 52733 "src/ocaml/preprocess/parser_raw.ml" in # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 52745 "src/ocaml/preprocess/parser_raw.ml" +# 52738 "src/ocaml/preprocess/parser_raw.ml" in # 3510 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 52751 "src/ocaml/preprocess/parser_raw.ml" +# 52744 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -52758,13 +52751,13 @@ module Tables = struct # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 52762 "src/ocaml/preprocess/parser_raw.ml" +# 52755 "src/ocaml/preprocess/parser_raw.ml" in # 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 52768 "src/ocaml/preprocess/parser_raw.ml" +# 52761 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in @@ -52784,19 +52777,19 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 52788 "src/ocaml/preprocess/parser_raw.ml" +# 52781 "src/ocaml/preprocess/parser_raw.ml" in # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 52794 "src/ocaml/preprocess/parser_raw.ml" +# 52787 "src/ocaml/preprocess/parser_raw.ml" in # 3591 "src/ocaml/preprocess/parser_raw.mly" ( None, _1 ) -# 52800 "src/ocaml/preprocess/parser_raw.ml" +# 52793 "src/ocaml/preprocess/parser_raw.ml" in let x1 = @@ -52806,18 +52799,18 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 52810 "src/ocaml/preprocess/parser_raw.ml" +# 52803 "src/ocaml/preprocess/parser_raw.ml" in # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 52815 "src/ocaml/preprocess/parser_raw.ml" +# 52808 "src/ocaml/preprocess/parser_raw.ml" in # 3510 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 52821 "src/ocaml/preprocess/parser_raw.ml" +# 52814 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -52828,13 +52821,13 @@ module Tables = struct # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 52832 "src/ocaml/preprocess/parser_raw.ml" +# 52825 "src/ocaml/preprocess/parser_raw.ml" in # 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 52838 "src/ocaml/preprocess/parser_raw.ml" +# 52831 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in @@ -52854,19 +52847,19 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 52858 "src/ocaml/preprocess/parser_raw.ml" +# 52851 "src/ocaml/preprocess/parser_raw.ml" in # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 52864 "src/ocaml/preprocess/parser_raw.ml" +# 52857 "src/ocaml/preprocess/parser_raw.ml" in # 3612 "src/ocaml/preprocess/parser_raw.mly" ( [ x2; None, x1 ] ) -# 52870 "src/ocaml/preprocess/parser_raw.ml" +# 52863 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -52924,7 +52917,7 @@ module Tables = struct let _1_inlined3 : ( # 1082 "src/ocaml/preprocess/parser_raw.mly" (string) -# 52928 "src/ocaml/preprocess/parser_raw.ml" +# 52921 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined3 in let _2 : unit = Obj.magic _2 in let xs : (Parsetree.case list) = Obj.magic xs in @@ -52939,7 +52932,7 @@ module Tables = struct # 3593 "src/ocaml/preprocess/parser_raw.mly" ( Some _1, _2 ) -# 52943 "src/ocaml/preprocess/parser_raw.ml" +# 52936 "src/ocaml/preprocess/parser_raw.ml" in let x1 = @@ -52949,18 +52942,18 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 52953 "src/ocaml/preprocess/parser_raw.ml" +# 52946 "src/ocaml/preprocess/parser_raw.ml" in # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 52958 "src/ocaml/preprocess/parser_raw.ml" +# 52951 "src/ocaml/preprocess/parser_raw.ml" in # 3510 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 52964 "src/ocaml/preprocess/parser_raw.ml" +# 52957 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -52971,13 +52964,13 @@ module Tables = struct # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 52975 "src/ocaml/preprocess/parser_raw.ml" +# 52968 "src/ocaml/preprocess/parser_raw.ml" in # 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 52981 "src/ocaml/preprocess/parser_raw.ml" +# 52974 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in @@ -52997,19 +52990,19 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 53001 "src/ocaml/preprocess/parser_raw.ml" +# 52994 "src/ocaml/preprocess/parser_raw.ml" in # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 53007 "src/ocaml/preprocess/parser_raw.ml" +# 53000 "src/ocaml/preprocess/parser_raw.ml" in # 3612 "src/ocaml/preprocess/parser_raw.mly" ( [ x2; None, x1 ] ) -# 53013 "src/ocaml/preprocess/parser_raw.ml" +# 53006 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -53066,7 +53059,7 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 53070 "src/ocaml/preprocess/parser_raw.ml" +# 53063 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _1_inlined3 : unit = Obj.magic _1_inlined3 in let _2 : unit = Obj.magic _2 in @@ -53083,7 +53076,7 @@ module Tables = struct # 3595 "src/ocaml/preprocess/parser_raw.mly" ( let loc = _loc_label_ in Some label, mkexpvar ~loc label ) -# 53087 "src/ocaml/preprocess/parser_raw.ml" +# 53080 "src/ocaml/preprocess/parser_raw.ml" in let x1 = @@ -53093,18 +53086,18 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 53097 "src/ocaml/preprocess/parser_raw.ml" +# 53090 "src/ocaml/preprocess/parser_raw.ml" in # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 53102 "src/ocaml/preprocess/parser_raw.ml" +# 53095 "src/ocaml/preprocess/parser_raw.ml" in # 3510 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 53108 "src/ocaml/preprocess/parser_raw.ml" +# 53101 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -53115,13 +53108,13 @@ module Tables = struct # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 53119 "src/ocaml/preprocess/parser_raw.ml" +# 53112 "src/ocaml/preprocess/parser_raw.ml" in # 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 53125 "src/ocaml/preprocess/parser_raw.ml" +# 53118 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in @@ -53141,19 +53134,19 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 53145 "src/ocaml/preprocess/parser_raw.ml" +# 53138 "src/ocaml/preprocess/parser_raw.ml" in # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 53151 "src/ocaml/preprocess/parser_raw.ml" +# 53144 "src/ocaml/preprocess/parser_raw.ml" in # 3612 "src/ocaml/preprocess/parser_raw.mly" ( [ x2; None, x1 ] ) -# 53157 "src/ocaml/preprocess/parser_raw.ml" +# 53150 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -53230,7 +53223,7 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 53234 "src/ocaml/preprocess/parser_raw.ml" +# 53227 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _2_inlined1 : unit = Obj.magic _2_inlined1 in let _1_inlined3 : unit = Obj.magic _1_inlined3 in @@ -53251,7 +53244,7 @@ module Tables = struct ( Some label, mkexp_type_constraint_with_modes ~loc:(_startpos__2_, _endpos) ~modes:[] (mkexpvar ~loc:_loc_label_ label) c ) -# 53255 "src/ocaml/preprocess/parser_raw.ml" +# 53248 "src/ocaml/preprocess/parser_raw.ml" in let x1 = @@ -53261,18 +53254,18 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 53265 "src/ocaml/preprocess/parser_raw.ml" +# 53258 "src/ocaml/preprocess/parser_raw.ml" in # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 53270 "src/ocaml/preprocess/parser_raw.ml" +# 53263 "src/ocaml/preprocess/parser_raw.ml" in # 3510 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 53276 "src/ocaml/preprocess/parser_raw.ml" +# 53269 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -53283,13 +53276,13 @@ module Tables = struct # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 53287 "src/ocaml/preprocess/parser_raw.ml" +# 53280 "src/ocaml/preprocess/parser_raw.ml" in # 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 53293 "src/ocaml/preprocess/parser_raw.ml" +# 53286 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in @@ -53309,19 +53302,19 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 53313 "src/ocaml/preprocess/parser_raw.ml" +# 53306 "src/ocaml/preprocess/parser_raw.ml" in # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 53319 "src/ocaml/preprocess/parser_raw.ml" +# 53312 "src/ocaml/preprocess/parser_raw.ml" in # 3612 "src/ocaml/preprocess/parser_raw.mly" ( [ x2; None, x1 ] ) -# 53325 "src/ocaml/preprocess/parser_raw.ml" +# 53318 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -53363,7 +53356,7 @@ module Tables = struct let l1 : ( # 1082 "src/ocaml/preprocess/parser_raw.mly" (string) -# 53367 "src/ocaml/preprocess/parser_raw.ml" +# 53360 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic l1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_l1_ in @@ -53373,24 +53366,24 @@ module Tables = struct let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 53377 "src/ocaml/preprocess/parser_raw.ml" +# 53370 "src/ocaml/preprocess/parser_raw.ml" in # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 53382 "src/ocaml/preprocess/parser_raw.ml" +# 53375 "src/ocaml/preprocess/parser_raw.ml" in # 3591 "src/ocaml/preprocess/parser_raw.mly" ( None, _1 ) -# 53388 "src/ocaml/preprocess/parser_raw.ml" +# 53381 "src/ocaml/preprocess/parser_raw.ml" in # 3616 "src/ocaml/preprocess/parser_raw.mly" ( [ x2; Some l1, x1 ] ) -# 53394 "src/ocaml/preprocess/parser_raw.ml" +# 53387 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -53453,7 +53446,7 @@ module Tables = struct let l1 : ( # 1082 "src/ocaml/preprocess/parser_raw.mly" (string) -# 53457 "src/ocaml/preprocess/parser_raw.ml" +# 53450 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic l1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_l1_ in @@ -53466,18 +53459,18 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 53470 "src/ocaml/preprocess/parser_raw.ml" +# 53463 "src/ocaml/preprocess/parser_raw.ml" in # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 53475 "src/ocaml/preprocess/parser_raw.ml" +# 53468 "src/ocaml/preprocess/parser_raw.ml" in # 3510 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 53481 "src/ocaml/preprocess/parser_raw.ml" +# 53474 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -53488,13 +53481,13 @@ module Tables = struct # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 53492 "src/ocaml/preprocess/parser_raw.ml" +# 53485 "src/ocaml/preprocess/parser_raw.ml" in # 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 53498 "src/ocaml/preprocess/parser_raw.ml" +# 53491 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in @@ -53514,25 +53507,25 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 53518 "src/ocaml/preprocess/parser_raw.ml" +# 53511 "src/ocaml/preprocess/parser_raw.ml" in # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 53524 "src/ocaml/preprocess/parser_raw.ml" +# 53517 "src/ocaml/preprocess/parser_raw.ml" in # 3591 "src/ocaml/preprocess/parser_raw.mly" ( None, _1 ) -# 53530 "src/ocaml/preprocess/parser_raw.ml" +# 53523 "src/ocaml/preprocess/parser_raw.ml" in # 3616 "src/ocaml/preprocess/parser_raw.mly" ( [ x2; Some l1, x1 ] ) -# 53536 "src/ocaml/preprocess/parser_raw.ml" +# 53529 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -53578,14 +53571,14 @@ module Tables = struct let _1 : ( # 1082 "src/ocaml/preprocess/parser_raw.mly" (string) -# 53582 "src/ocaml/preprocess/parser_raw.ml" +# 53575 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _3 : unit = Obj.magic _3 in let x1 : (Parsetree.expression) = Obj.magic x1 in let l1 : ( # 1082 "src/ocaml/preprocess/parser_raw.mly" (string) -# 53589 "src/ocaml/preprocess/parser_raw.ml" +# 53582 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic l1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_l1_ in @@ -53593,12 +53586,12 @@ module Tables = struct let _v : ((string option * Parsetree.expression) list) = let x2 = # 3593 "src/ocaml/preprocess/parser_raw.mly" ( Some _1, _2 ) -# 53597 "src/ocaml/preprocess/parser_raw.ml" +# 53590 "src/ocaml/preprocess/parser_raw.ml" in # 3616 "src/ocaml/preprocess/parser_raw.mly" ( [ x2; Some l1, x1 ] ) -# 53602 "src/ocaml/preprocess/parser_raw.ml" +# 53595 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -53643,7 +53636,7 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 53647 "src/ocaml/preprocess/parser_raw.ml" +# 53640 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _1 : unit = Obj.magic _1 in let _3 : unit = Obj.magic _3 in @@ -53651,7 +53644,7 @@ module Tables = struct let l1 : ( # 1082 "src/ocaml/preprocess/parser_raw.mly" (string) -# 53655 "src/ocaml/preprocess/parser_raw.ml" +# 53648 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic l1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_l1_ in @@ -53662,13 +53655,13 @@ module Tables = struct # 3595 "src/ocaml/preprocess/parser_raw.mly" ( let loc = _loc_label_ in Some label, mkexpvar ~loc label ) -# 53666 "src/ocaml/preprocess/parser_raw.ml" +# 53659 "src/ocaml/preprocess/parser_raw.ml" in # 3616 "src/ocaml/preprocess/parser_raw.mly" ( [ x2; Some l1, x1 ] ) -# 53672 "src/ocaml/preprocess/parser_raw.ml" +# 53665 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -53733,7 +53726,7 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 53737 "src/ocaml/preprocess/parser_raw.ml" +# 53730 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _2 : unit = Obj.magic _2 in let _1 : unit = Obj.magic _1 in @@ -53742,7 +53735,7 @@ module Tables = struct let l1 : ( # 1082 "src/ocaml/preprocess/parser_raw.mly" (string) -# 53746 "src/ocaml/preprocess/parser_raw.ml" +# 53739 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic l1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_l1_ in @@ -53755,13 +53748,13 @@ module Tables = struct ( Some label, mkexp_type_constraint_with_modes ~loc:(_startpos__2_, _endpos) ~modes:[] (mkexpvar ~loc:_loc_label_ label) c ) -# 53759 "src/ocaml/preprocess/parser_raw.ml" +# 53752 "src/ocaml/preprocess/parser_raw.ml" in # 3616 "src/ocaml/preprocess/parser_raw.mly" ( [ x2; Some l1, x1 ] ) -# 53765 "src/ocaml/preprocess/parser_raw.ml" +# 53758 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -53802,7 +53795,7 @@ module Tables = struct let l1 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 53806 "src/ocaml/preprocess/parser_raw.ml" +# 53799 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic l1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -53814,18 +53807,18 @@ module Tables = struct let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 53818 "src/ocaml/preprocess/parser_raw.ml" +# 53811 "src/ocaml/preprocess/parser_raw.ml" in # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 53823 "src/ocaml/preprocess/parser_raw.ml" +# 53816 "src/ocaml/preprocess/parser_raw.ml" in # 3591 "src/ocaml/preprocess/parser_raw.mly" ( None, _1 ) -# 53829 "src/ocaml/preprocess/parser_raw.ml" +# 53822 "src/ocaml/preprocess/parser_raw.ml" in let _loc_l1_ = (_startpos_l1_, _endpos_l1_) in @@ -53833,7 +53826,7 @@ module Tables = struct # 3620 "src/ocaml/preprocess/parser_raw.mly" ( let loc = _loc_l1_ in [ x2; Some l1, mkexpvar ~loc l1] ) -# 53837 "src/ocaml/preprocess/parser_raw.ml" +# 53830 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -53895,7 +53888,7 @@ module Tables = struct let l1 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 53899 "src/ocaml/preprocess/parser_raw.ml" +# 53892 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic l1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -53910,18 +53903,18 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 53914 "src/ocaml/preprocess/parser_raw.ml" +# 53907 "src/ocaml/preprocess/parser_raw.ml" in # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 53919 "src/ocaml/preprocess/parser_raw.ml" +# 53912 "src/ocaml/preprocess/parser_raw.ml" in # 3510 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 53925 "src/ocaml/preprocess/parser_raw.ml" +# 53918 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -53932,13 +53925,13 @@ module Tables = struct # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 53936 "src/ocaml/preprocess/parser_raw.ml" +# 53929 "src/ocaml/preprocess/parser_raw.ml" in # 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 53942 "src/ocaml/preprocess/parser_raw.ml" +# 53935 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in @@ -53958,19 +53951,19 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 53962 "src/ocaml/preprocess/parser_raw.ml" +# 53955 "src/ocaml/preprocess/parser_raw.ml" in # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 53968 "src/ocaml/preprocess/parser_raw.ml" +# 53961 "src/ocaml/preprocess/parser_raw.ml" in # 3591 "src/ocaml/preprocess/parser_raw.mly" ( None, _1 ) -# 53974 "src/ocaml/preprocess/parser_raw.ml" +# 53967 "src/ocaml/preprocess/parser_raw.ml" in let _loc_l1_ = (_startpos_l1_, _endpos_l1_) in @@ -53978,7 +53971,7 @@ module Tables = struct # 3620 "src/ocaml/preprocess/parser_raw.mly" ( let loc = _loc_l1_ in [ x2; Some l1, mkexpvar ~loc l1] ) -# 53982 "src/ocaml/preprocess/parser_raw.ml" +# 53975 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -54024,13 +54017,13 @@ module Tables = struct let _1_inlined1 : ( # 1082 "src/ocaml/preprocess/parser_raw.mly" (string) -# 54028 "src/ocaml/preprocess/parser_raw.ml" +# 54021 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined1 in let _3 : unit = Obj.magic _3 in let l1 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 54034 "src/ocaml/preprocess/parser_raw.ml" +# 54027 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic l1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -54041,7 +54034,7 @@ module Tables = struct # 3593 "src/ocaml/preprocess/parser_raw.mly" ( Some _1, _2 ) -# 54045 "src/ocaml/preprocess/parser_raw.ml" +# 54038 "src/ocaml/preprocess/parser_raw.ml" in let _loc_l1_ = (_startpos_l1_, _endpos_l1_) in @@ -54049,7 +54042,7 @@ module Tables = struct # 3620 "src/ocaml/preprocess/parser_raw.mly" ( let loc = _loc_l1_ in [ x2; Some l1, mkexpvar ~loc l1] ) -# 54053 "src/ocaml/preprocess/parser_raw.ml" +# 54046 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -54094,14 +54087,14 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 54098 "src/ocaml/preprocess/parser_raw.ml" +# 54091 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _3 : unit = Obj.magic _3 in let l1 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 54105 "src/ocaml/preprocess/parser_raw.ml" +# 54098 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic l1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -54113,7 +54106,7 @@ module Tables = struct # 3595 "src/ocaml/preprocess/parser_raw.mly" ( let loc = _loc_label_ in Some label, mkexpvar ~loc label ) -# 54117 "src/ocaml/preprocess/parser_raw.ml" +# 54110 "src/ocaml/preprocess/parser_raw.ml" in let _loc_l1_ = (_startpos_l1_, _endpos_l1_) in @@ -54121,7 +54114,7 @@ module Tables = struct # 3620 "src/ocaml/preprocess/parser_raw.mly" ( let loc = _loc_l1_ in [ x2; Some l1, mkexpvar ~loc l1] ) -# 54125 "src/ocaml/preprocess/parser_raw.ml" +# 54118 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -54186,7 +54179,7 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 54190 "src/ocaml/preprocess/parser_raw.ml" +# 54183 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _2 : unit = Obj.magic _2 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in @@ -54194,7 +54187,7 @@ module Tables = struct let l1 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 54198 "src/ocaml/preprocess/parser_raw.ml" +# 54191 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic l1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -54208,7 +54201,7 @@ module Tables = struct ( Some label, mkexp_type_constraint_with_modes ~loc:(_startpos__2_, _endpos) ~modes:[] (mkexpvar ~loc:_loc_label_ label) c ) -# 54212 "src/ocaml/preprocess/parser_raw.ml" +# 54205 "src/ocaml/preprocess/parser_raw.ml" in let _loc_l1_ = (_startpos_l1_, _endpos_l1_) in @@ -54216,7 +54209,7 @@ module Tables = struct # 3620 "src/ocaml/preprocess/parser_raw.mly" ( let loc = _loc_l1_ in [ x2; Some l1, mkexpvar ~loc l1] ) -# 54220 "src/ocaml/preprocess/parser_raw.ml" +# 54213 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -54277,7 +54270,7 @@ module Tables = struct let l1 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 54281 "src/ocaml/preprocess/parser_raw.ml" +# 54274 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic l1 in let _2 : unit = Obj.magic _2 in let _1 : unit = Obj.magic _1 in @@ -54290,18 +54283,18 @@ module Tables = struct let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 54294 "src/ocaml/preprocess/parser_raw.ml" +# 54287 "src/ocaml/preprocess/parser_raw.ml" in # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 54299 "src/ocaml/preprocess/parser_raw.ml" +# 54292 "src/ocaml/preprocess/parser_raw.ml" in # 3591 "src/ocaml/preprocess/parser_raw.mly" ( None, _1 ) -# 54305 "src/ocaml/preprocess/parser_raw.ml" +# 54298 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_x2_ = _endpos__1_inlined1_ in @@ -54314,7 +54307,7 @@ module Tables = struct ~loc:(_startpos__2_, _endpos) ~modes:[] (mkexpvar ~loc:_loc_l1_ l1) c in [ x2; Some l1, x1] ) -# 54318 "src/ocaml/preprocess/parser_raw.ml" +# 54311 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -54396,7 +54389,7 @@ module Tables = struct let l1 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 54400 "src/ocaml/preprocess/parser_raw.ml" +# 54393 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic l1 in let _2 : unit = Obj.magic _2 in let _1 : unit = Obj.magic _1 in @@ -54412,18 +54405,18 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 54416 "src/ocaml/preprocess/parser_raw.ml" +# 54409 "src/ocaml/preprocess/parser_raw.ml" in # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 54421 "src/ocaml/preprocess/parser_raw.ml" +# 54414 "src/ocaml/preprocess/parser_raw.ml" in # 3510 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 54427 "src/ocaml/preprocess/parser_raw.ml" +# 54420 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -54434,13 +54427,13 @@ module Tables = struct # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 54438 "src/ocaml/preprocess/parser_raw.ml" +# 54431 "src/ocaml/preprocess/parser_raw.ml" in # 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 54444 "src/ocaml/preprocess/parser_raw.ml" +# 54437 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in @@ -54460,19 +54453,19 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 54464 "src/ocaml/preprocess/parser_raw.ml" +# 54457 "src/ocaml/preprocess/parser_raw.ml" in # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 54470 "src/ocaml/preprocess/parser_raw.ml" +# 54463 "src/ocaml/preprocess/parser_raw.ml" in # 3591 "src/ocaml/preprocess/parser_raw.mly" ( None, _1 ) -# 54476 "src/ocaml/preprocess/parser_raw.ml" +# 54469 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_x2_ = _endpos_xs_ in @@ -54485,7 +54478,7 @@ module Tables = struct ~loc:(_startpos__2_, _endpos) ~modes:[] (mkexpvar ~loc:_loc_l1_ l1) c in [ x2; Some l1, x1] ) -# 54489 "src/ocaml/preprocess/parser_raw.ml" +# 54482 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -54549,7 +54542,7 @@ module Tables = struct let _1_inlined1 : ( # 1082 "src/ocaml/preprocess/parser_raw.mly" (string) -# 54553 "src/ocaml/preprocess/parser_raw.ml" +# 54546 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined1 in let _6 : unit = Obj.magic _6 in let _5 : unit = Obj.magic _5 in @@ -54557,7 +54550,7 @@ module Tables = struct let l1 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 54561 "src/ocaml/preprocess/parser_raw.ml" +# 54554 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic l1 in let _2 : unit = Obj.magic _2 in let _1 : unit = Obj.magic _1 in @@ -54569,7 +54562,7 @@ module Tables = struct # 3593 "src/ocaml/preprocess/parser_raw.mly" ( Some _1, _2 ) -# 54573 "src/ocaml/preprocess/parser_raw.ml" +# 54566 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_x2_ = _endpos__2_inlined1_ in @@ -54582,7 +54575,7 @@ module Tables = struct ~loc:(_startpos__2_, _endpos) ~modes:[] (mkexpvar ~loc:_loc_l1_ l1) c in [ x2; Some l1, x1] ) -# 54586 "src/ocaml/preprocess/parser_raw.ml" +# 54579 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -54645,7 +54638,7 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 54649 "src/ocaml/preprocess/parser_raw.ml" +# 54642 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _6 : unit = Obj.magic _6 in @@ -54654,7 +54647,7 @@ module Tables = struct let l1 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 54658 "src/ocaml/preprocess/parser_raw.ml" +# 54651 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic l1 in let _2 : unit = Obj.magic _2 in let _1 : unit = Obj.magic _1 in @@ -54667,7 +54660,7 @@ module Tables = struct # 3595 "src/ocaml/preprocess/parser_raw.mly" ( let loc = _loc_label_ in Some label, mkexpvar ~loc label ) -# 54671 "src/ocaml/preprocess/parser_raw.ml" +# 54664 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_x2_ = _endpos_label_ in @@ -54680,7 +54673,7 @@ module Tables = struct ~loc:(_startpos__2_, _endpos) ~modes:[] (mkexpvar ~loc:_loc_l1_ l1) c in [ x2; Some l1, x1] ) -# 54684 "src/ocaml/preprocess/parser_raw.ml" +# 54677 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -54763,7 +54756,7 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 54767 "src/ocaml/preprocess/parser_raw.ml" +# 54760 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _2_inlined1 : unit = Obj.magic _2_inlined1 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in @@ -54773,7 +54766,7 @@ module Tables = struct let l1 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 54777 "src/ocaml/preprocess/parser_raw.ml" +# 54770 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic l1 in let _2 : unit = Obj.magic _2 in let _1 : unit = Obj.magic _1 in @@ -54789,7 +54782,7 @@ module Tables = struct ( Some label, mkexp_type_constraint_with_modes ~loc:(_startpos__2_, _endpos) ~modes:[] (mkexpvar ~loc:_loc_label_ label) c ) -# 54793 "src/ocaml/preprocess/parser_raw.ml" +# 54786 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_x2_ = _endpos__5_inlined1_ in @@ -54802,7 +54795,7 @@ module Tables = struct ~loc:(_startpos__2_, _endpos) ~modes:[] (mkexpvar ~loc:_loc_l1_ l1) c in [ x2; Some l1, x1] ) -# 54806 "src/ocaml/preprocess/parser_raw.ml" +# 54799 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -54827,7 +54820,7 @@ module Tables = struct let _v : (Asttypes.closed_flag * (string option * Parsetree.pattern) list) = # 3819 "src/ocaml/preprocess/parser_raw.mly" ( Closed, _1 ) -# 54831 "src/ocaml/preprocess/parser_raw.ml" +# 54824 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -54866,7 +54859,7 @@ module Tables = struct let _v : (Asttypes.closed_flag * (string option * Parsetree.pattern) list) = # 3821 "src/ocaml/preprocess/parser_raw.mly" ( Open, _1 ) -# 54870 "src/ocaml/preprocess/parser_raw.ml" +# 54863 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -54905,12 +54898,12 @@ module Tables = struct let _v : (Asttypes.closed_flag * (string option * Parsetree.pattern) list) = let _1 = # 3796 "src/ocaml/preprocess/parser_raw.mly" ( None, _1 ) -# 54909 "src/ocaml/preprocess/parser_raw.ml" +# 54902 "src/ocaml/preprocess/parser_raw.ml" in # 3823 "src/ocaml/preprocess/parser_raw.mly" ( Open, [ _1 ] ) -# 54914 "src/ocaml/preprocess/parser_raw.ml" +# 54907 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -54952,7 +54945,7 @@ module Tables = struct let _1 : ( # 1082 "src/ocaml/preprocess/parser_raw.mly" (string) -# 54956 "src/ocaml/preprocess/parser_raw.ml" +# 54949 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -54962,13 +54955,13 @@ module Tables = struct # 3798 "src/ocaml/preprocess/parser_raw.mly" ( Some _1, _2 ) -# 54966 "src/ocaml/preprocess/parser_raw.ml" +# 54959 "src/ocaml/preprocess/parser_raw.ml" in # 3823 "src/ocaml/preprocess/parser_raw.mly" ( Open, [ _1 ] ) -# 54972 "src/ocaml/preprocess/parser_raw.ml" +# 54965 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -55009,7 +55002,7 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 55013 "src/ocaml/preprocess/parser_raw.ml" +# 55006 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -55021,13 +55014,13 @@ module Tables = struct # 3800 "src/ocaml/preprocess/parser_raw.mly" ( let loc = _loc_label_ in Some label, mkpatvar ~loc label ) -# 55025 "src/ocaml/preprocess/parser_raw.ml" +# 55018 "src/ocaml/preprocess/parser_raw.ml" in # 3823 "src/ocaml/preprocess/parser_raw.mly" ( Open, [ _1 ] ) -# 55031 "src/ocaml/preprocess/parser_raw.ml" +# 55024 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -55095,7 +55088,7 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 55099 "src/ocaml/preprocess/parser_raw.ml" +# 55092 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _2_inlined1 : unit = Obj.magic _2_inlined1 in let _1 : unit = Obj.magic _1 in @@ -55112,13 +55105,13 @@ module Tables = struct let pat_loc = _startpos__2_, _endpos in let pat = mkpatvar ~loc:lbl_loc label in Some label, mkpat_with_modes ~loc:pat_loc ~modes:[] ~pat ~cty:(Some cty) ) -# 55116 "src/ocaml/preprocess/parser_raw.ml" +# 55109 "src/ocaml/preprocess/parser_raw.ml" in # 3823 "src/ocaml/preprocess/parser_raw.mly" ( Open, [ _1 ] ) -# 55122 "src/ocaml/preprocess/parser_raw.ml" +# 55115 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -55143,7 +55136,7 @@ module Tables = struct let _v : (Asttypes.closed_flag * (string option * Parsetree.pattern) list) = # 3819 "src/ocaml/preprocess/parser_raw.mly" ( Closed, _1 ) -# 55147 "src/ocaml/preprocess/parser_raw.ml" +# 55140 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -55182,7 +55175,7 @@ module Tables = struct let _v : (Asttypes.closed_flag * (string option * Parsetree.pattern) list) = # 3821 "src/ocaml/preprocess/parser_raw.mly" ( Open, _1 ) -# 55186 "src/ocaml/preprocess/parser_raw.ml" +# 55179 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -55221,12 +55214,12 @@ module Tables = struct let _v : (Asttypes.closed_flag * (string option * Parsetree.pattern) list) = let _1 = # 3796 "src/ocaml/preprocess/parser_raw.mly" ( None, _1 ) -# 55225 "src/ocaml/preprocess/parser_raw.ml" +# 55218 "src/ocaml/preprocess/parser_raw.ml" in # 3823 "src/ocaml/preprocess/parser_raw.mly" ( Open, [ _1 ] ) -# 55230 "src/ocaml/preprocess/parser_raw.ml" +# 55223 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -55268,7 +55261,7 @@ module Tables = struct let _1 : ( # 1082 "src/ocaml/preprocess/parser_raw.mly" (string) -# 55272 "src/ocaml/preprocess/parser_raw.ml" +# 55265 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -55278,13 +55271,13 @@ module Tables = struct # 3798 "src/ocaml/preprocess/parser_raw.mly" ( Some _1, _2 ) -# 55282 "src/ocaml/preprocess/parser_raw.ml" +# 55275 "src/ocaml/preprocess/parser_raw.ml" in # 3823 "src/ocaml/preprocess/parser_raw.mly" ( Open, [ _1 ] ) -# 55288 "src/ocaml/preprocess/parser_raw.ml" +# 55281 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -55325,7 +55318,7 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 55329 "src/ocaml/preprocess/parser_raw.ml" +# 55322 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -55337,13 +55330,13 @@ module Tables = struct # 3800 "src/ocaml/preprocess/parser_raw.mly" ( let loc = _loc_label_ in Some label, mkpatvar ~loc label ) -# 55341 "src/ocaml/preprocess/parser_raw.ml" +# 55334 "src/ocaml/preprocess/parser_raw.ml" in # 3823 "src/ocaml/preprocess/parser_raw.mly" ( Open, [ _1 ] ) -# 55347 "src/ocaml/preprocess/parser_raw.ml" +# 55340 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -55411,7 +55404,7 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 55415 "src/ocaml/preprocess/parser_raw.ml" +# 55408 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _2_inlined1 : unit = Obj.magic _2_inlined1 in let _1 : unit = Obj.magic _1 in @@ -55428,13 +55421,13 @@ module Tables = struct let pat_loc = _startpos__2_, _endpos in let pat = mkpatvar ~loc:lbl_loc label in Some label, mkpat_with_modes ~loc:pat_loc ~modes:[] ~pat ~cty:(Some cty) ) -# 55432 "src/ocaml/preprocess/parser_raw.ml" +# 55425 "src/ocaml/preprocess/parser_raw.ml" in # 3823 "src/ocaml/preprocess/parser_raw.mly" ( Open, [ _1 ] ) -# 55438 "src/ocaml/preprocess/parser_raw.ml" +# 55431 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -55452,7 +55445,7 @@ module Tables = struct let _v : ((Parsetree.core_type * Parsetree.core_type * Location.t) list) = # 1374 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 55456 "src/ocaml/preprocess/parser_raw.ml" +# 55449 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -55511,19 +55504,19 @@ module Tables = struct # 2626 "src/ocaml/preprocess/parser_raw.mly" ( _1, _3, make_loc _sloc ) -# 55515 "src/ocaml/preprocess/parser_raw.ml" +# 55508 "src/ocaml/preprocess/parser_raw.ml" in # 183 "" ( x ) -# 55521 "src/ocaml/preprocess/parser_raw.ml" +# 55514 "src/ocaml/preprocess/parser_raw.ml" in # 1376 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 55527 "src/ocaml/preprocess/parser_raw.ml" +# 55520 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -55548,7 +55541,7 @@ module Tables = struct let _v : (Parsetree.function_param list) = # 1407 "src/ocaml/preprocess/parser_raw.mly" ( List.rev x ) -# 55552 "src/ocaml/preprocess/parser_raw.ml" +# 55545 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -55580,7 +55573,7 @@ module Tables = struct let _v : (Parsetree.function_param list) = # 1409 "src/ocaml/preprocess/parser_raw.mly" ( List.rev_append x xs ) -# 55584 "src/ocaml/preprocess/parser_raw.ml" +# 55577 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -55605,7 +55598,7 @@ module Tables = struct let _v : (Parsetree.comprehension_clause list) = # 1388 "src/ocaml/preprocess/parser_raw.mly" ( [ x ] ) -# 55609 "src/ocaml/preprocess/parser_raw.ml" +# 55602 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -55637,7 +55630,7 @@ module Tables = struct let _v : (Parsetree.comprehension_clause list) = # 1390 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 55641 "src/ocaml/preprocess/parser_raw.ml" +# 55634 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -55662,7 +55655,7 @@ module Tables = struct let _v : ((Lexing.position * Parsetree.functor_parameter) list) = # 1388 "src/ocaml/preprocess/parser_raw.mly" ( [ x ] ) -# 55666 "src/ocaml/preprocess/parser_raw.ml" +# 55659 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -55694,7 +55687,7 @@ module Tables = struct let _v : ((Lexing.position * Parsetree.functor_parameter) list) = # 1390 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 55698 "src/ocaml/preprocess/parser_raw.ml" +# 55691 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -55719,7 +55712,7 @@ module Tables = struct let _v : ((Parsetree.arg_label * Parsetree.expression) list) = # 1388 "src/ocaml/preprocess/parser_raw.mly" ( [ x ] ) -# 55723 "src/ocaml/preprocess/parser_raw.ml" +# 55716 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -55751,7 +55744,7 @@ module Tables = struct let _v : ((Parsetree.arg_label * Parsetree.expression) list) = # 1390 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 55755 "src/ocaml/preprocess/parser_raw.ml" +# 55748 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -55776,7 +55769,7 @@ module Tables = struct let _v : (string list) = # 1388 "src/ocaml/preprocess/parser_raw.mly" ( [ x ] ) -# 55780 "src/ocaml/preprocess/parser_raw.ml" +# 55773 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -55808,7 +55801,7 @@ module Tables = struct let _v : (string list) = # 1390 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 55812 "src/ocaml/preprocess/parser_raw.ml" +# 55805 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -55846,19 +55839,19 @@ module Tables = struct # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 55850 "src/ocaml/preprocess/parser_raw.ml" +# 55843 "src/ocaml/preprocess/parser_raw.ml" in # 4474 "src/ocaml/preprocess/parser_raw.mly" ( (_2, None) ) -# 55856 "src/ocaml/preprocess/parser_raw.ml" +# 55849 "src/ocaml/preprocess/parser_raw.ml" in # 1388 "src/ocaml/preprocess/parser_raw.mly" ( [ x ] ) -# 55862 "src/ocaml/preprocess/parser_raw.ml" +# 55855 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -55924,19 +55917,19 @@ module Tables = struct # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 55928 "src/ocaml/preprocess/parser_raw.ml" +# 55921 "src/ocaml/preprocess/parser_raw.ml" in # 4476 "src/ocaml/preprocess/parser_raw.mly" ( (tyvar, Some jkind) ) -# 55934 "src/ocaml/preprocess/parser_raw.ml" +# 55927 "src/ocaml/preprocess/parser_raw.ml" in # 1388 "src/ocaml/preprocess/parser_raw.mly" ( [ x ] ) -# 55940 "src/ocaml/preprocess/parser_raw.ml" +# 55933 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -55981,19 +55974,19 @@ module Tables = struct # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 55985 "src/ocaml/preprocess/parser_raw.ml" +# 55978 "src/ocaml/preprocess/parser_raw.ml" in # 4474 "src/ocaml/preprocess/parser_raw.mly" ( (_2, None) ) -# 55991 "src/ocaml/preprocess/parser_raw.ml" +# 55984 "src/ocaml/preprocess/parser_raw.ml" in # 1390 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 55997 "src/ocaml/preprocess/parser_raw.ml" +# 55990 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -56066,19 +56059,19 @@ module Tables = struct # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 56070 "src/ocaml/preprocess/parser_raw.ml" +# 56063 "src/ocaml/preprocess/parser_raw.ml" in # 4476 "src/ocaml/preprocess/parser_raw.mly" ( (tyvar, Some jkind) ) -# 56076 "src/ocaml/preprocess/parser_raw.ml" +# 56069 "src/ocaml/preprocess/parser_raw.ml" in # 1390 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 56082 "src/ocaml/preprocess/parser_raw.ml" +# 56075 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -56103,12 +56096,12 @@ module Tables = struct let _v : (Parsetree.case list) = let _1 = # 124 "" ( None ) -# 56107 "src/ocaml/preprocess/parser_raw.ml" +# 56100 "src/ocaml/preprocess/parser_raw.ml" in # 1499 "src/ocaml/preprocess/parser_raw.mly" ( [x] ) -# 56112 "src/ocaml/preprocess/parser_raw.ml" +# 56105 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -56142,13 +56135,13 @@ module Tables = struct # 126 "" ( Some x ) -# 56146 "src/ocaml/preprocess/parser_raw.ml" +# 56139 "src/ocaml/preprocess/parser_raw.ml" in # 1499 "src/ocaml/preprocess/parser_raw.mly" ( [x] ) -# 56152 "src/ocaml/preprocess/parser_raw.ml" +# 56145 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -56187,7 +56180,7 @@ module Tables = struct let _v : (Parsetree.case list) = # 1503 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 56191 "src/ocaml/preprocess/parser_raw.ml" +# 56184 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -56213,18 +56206,18 @@ module Tables = struct let x = # 4521 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 56217 "src/ocaml/preprocess/parser_raw.ml" +# 56210 "src/ocaml/preprocess/parser_raw.ml" in # 1434 "src/ocaml/preprocess/parser_raw.mly" ( [ x ] ) -# 56222 "src/ocaml/preprocess/parser_raw.ml" +# 56215 "src/ocaml/preprocess/parser_raw.ml" in # 1442 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 56228 "src/ocaml/preprocess/parser_raw.ml" +# 56221 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -56264,18 +56257,18 @@ module Tables = struct let x = # 4521 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 56268 "src/ocaml/preprocess/parser_raw.ml" +# 56261 "src/ocaml/preprocess/parser_raw.ml" in # 1438 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 56273 "src/ocaml/preprocess/parser_raw.ml" +# 56266 "src/ocaml/preprocess/parser_raw.ml" in # 1442 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 56279 "src/ocaml/preprocess/parser_raw.ml" +# 56272 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -56300,12 +56293,12 @@ module Tables = struct let _v : (Parsetree.comprehension_clause_binding list) = let xs = # 1434 "src/ocaml/preprocess/parser_raw.mly" ( [ x ] ) -# 56304 "src/ocaml/preprocess/parser_raw.ml" +# 56297 "src/ocaml/preprocess/parser_raw.ml" in # 1442 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 56309 "src/ocaml/preprocess/parser_raw.ml" +# 56302 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -56344,12 +56337,12 @@ module Tables = struct let _v : (Parsetree.comprehension_clause_binding list) = let xs = # 1438 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 56348 "src/ocaml/preprocess/parser_raw.ml" +# 56341 "src/ocaml/preprocess/parser_raw.ml" in # 1442 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 56353 "src/ocaml/preprocess/parser_raw.ml" +# 56346 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -56374,12 +56367,12 @@ module Tables = struct let _v : (Parsetree.with_constraint list) = let xs = # 1434 "src/ocaml/preprocess/parser_raw.mly" ( [ x ] ) -# 56378 "src/ocaml/preprocess/parser_raw.ml" +# 56371 "src/ocaml/preprocess/parser_raw.ml" in # 1442 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 56383 "src/ocaml/preprocess/parser_raw.ml" +# 56376 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -56418,12 +56411,12 @@ module Tables = struct let _v : (Parsetree.with_constraint list) = let xs = # 1438 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 56422 "src/ocaml/preprocess/parser_raw.ml" +# 56415 "src/ocaml/preprocess/parser_raw.ml" in # 1442 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 56427 "src/ocaml/preprocess/parser_raw.ml" +# 56420 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -56448,12 +56441,12 @@ module Tables = struct let _v : (Parsetree.row_field list) = let xs = # 1434 "src/ocaml/preprocess/parser_raw.mly" ( [ x ] ) -# 56452 "src/ocaml/preprocess/parser_raw.ml" +# 56445 "src/ocaml/preprocess/parser_raw.ml" in # 1442 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 56457 "src/ocaml/preprocess/parser_raw.ml" +# 56450 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -56492,12 +56485,12 @@ module Tables = struct let _v : (Parsetree.row_field list) = let xs = # 1438 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 56496 "src/ocaml/preprocess/parser_raw.ml" +# 56489 "src/ocaml/preprocess/parser_raw.ml" in # 1442 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 56501 "src/ocaml/preprocess/parser_raw.ml" +# 56494 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -56522,12 +56515,12 @@ module Tables = struct let _v : (Parsetree.core_type list) = let xs = # 1434 "src/ocaml/preprocess/parser_raw.mly" ( [ x ] ) -# 56526 "src/ocaml/preprocess/parser_raw.ml" +# 56519 "src/ocaml/preprocess/parser_raw.ml" in # 1442 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 56531 "src/ocaml/preprocess/parser_raw.ml" +# 56524 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -56566,12 +56559,12 @@ module Tables = struct let _v : (Parsetree.core_type list) = let xs = # 1438 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 56570 "src/ocaml/preprocess/parser_raw.ml" +# 56563 "src/ocaml/preprocess/parser_raw.ml" in # 1442 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 56575 "src/ocaml/preprocess/parser_raw.ml" +# 56568 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -56596,12 +56589,12 @@ module Tables = struct let _v : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = let xs = # 1434 "src/ocaml/preprocess/parser_raw.mly" ( [ x ] ) -# 56600 "src/ocaml/preprocess/parser_raw.ml" +# 56593 "src/ocaml/preprocess/parser_raw.ml" in # 1442 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 56605 "src/ocaml/preprocess/parser_raw.ml" +# 56598 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -56640,12 +56633,12 @@ module Tables = struct let _v : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = let xs = # 1438 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 56644 "src/ocaml/preprocess/parser_raw.ml" +# 56637 "src/ocaml/preprocess/parser_raw.ml" in # 1442 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 56649 "src/ocaml/preprocess/parser_raw.ml" +# 56642 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -56670,12 +56663,12 @@ module Tables = struct let _v : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = let xs = # 1434 "src/ocaml/preprocess/parser_raw.mly" ( [ x ] ) -# 56674 "src/ocaml/preprocess/parser_raw.ml" +# 56667 "src/ocaml/preprocess/parser_raw.ml" in # 1442 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 56679 "src/ocaml/preprocess/parser_raw.ml" +# 56672 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -56714,12 +56707,12 @@ module Tables = struct let _v : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = let xs = # 1438 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 56718 "src/ocaml/preprocess/parser_raw.ml" +# 56711 "src/ocaml/preprocess/parser_raw.ml" in # 1442 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 56723 "src/ocaml/preprocess/parser_raw.ml" +# 56716 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -56753,7 +56746,7 @@ module Tables = struct let gbl = # 5261 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 56757 "src/ocaml/preprocess/parser_raw.ml" +# 56750 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_gbl_, _startpos_gbl_) = (_endpos__0_, _endpos__0_) in let _endpos = _endpos_m1_ in @@ -56768,19 +56761,19 @@ module Tables = struct let modalities = gbl @ m1 in Type.constructor_arg cty ~modalities ~loc:(make_loc _sloc) ) -# 56772 "src/ocaml/preprocess/parser_raw.ml" +# 56765 "src/ocaml/preprocess/parser_raw.ml" in # 1434 "src/ocaml/preprocess/parser_raw.mly" ( [ x ] ) -# 56778 "src/ocaml/preprocess/parser_raw.ml" +# 56771 "src/ocaml/preprocess/parser_raw.ml" in # 1442 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 56784 "src/ocaml/preprocess/parser_raw.ml" +# 56777 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -56825,7 +56818,7 @@ module Tables = struct # 5262 "src/ocaml/preprocess/parser_raw.mly" ( [ mkloc (Modality "global") (make_loc _sloc)] ) -# 56829 "src/ocaml/preprocess/parser_raw.ml" +# 56822 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_gbl_, _startpos_gbl_) = (_endpos__1_, _startpos__1_) in @@ -56841,19 +56834,19 @@ module Tables = struct let modalities = gbl @ m1 in Type.constructor_arg cty ~modalities ~loc:(make_loc _sloc) ) -# 56845 "src/ocaml/preprocess/parser_raw.ml" +# 56838 "src/ocaml/preprocess/parser_raw.ml" in # 1434 "src/ocaml/preprocess/parser_raw.mly" ( [ x ] ) -# 56851 "src/ocaml/preprocess/parser_raw.ml" +# 56844 "src/ocaml/preprocess/parser_raw.ml" in # 1442 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 56857 "src/ocaml/preprocess/parser_raw.ml" +# 56850 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -56902,7 +56895,7 @@ module Tables = struct let gbl = # 5261 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 56906 "src/ocaml/preprocess/parser_raw.ml" +# 56899 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_gbl_, _startpos_gbl_) = (_endpos__0_, _endpos__0_) in let _endpos = _endpos_m1_ in @@ -56917,19 +56910,19 @@ module Tables = struct let modalities = gbl @ m1 in Type.constructor_arg cty ~modalities ~loc:(make_loc _sloc) ) -# 56921 "src/ocaml/preprocess/parser_raw.ml" +# 56914 "src/ocaml/preprocess/parser_raw.ml" in # 1438 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 56927 "src/ocaml/preprocess/parser_raw.ml" +# 56920 "src/ocaml/preprocess/parser_raw.ml" in # 1442 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 56933 "src/ocaml/preprocess/parser_raw.ml" +# 56926 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -56988,7 +56981,7 @@ module Tables = struct # 5262 "src/ocaml/preprocess/parser_raw.mly" ( [ mkloc (Modality "global") (make_loc _sloc)] ) -# 56992 "src/ocaml/preprocess/parser_raw.ml" +# 56985 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_gbl_, _startpos_gbl_) = (_endpos__1_, _startpos__1_) in @@ -57004,19 +56997,19 @@ module Tables = struct let modalities = gbl @ m1 in Type.constructor_arg cty ~modalities ~loc:(make_loc _sloc) ) -# 57008 "src/ocaml/preprocess/parser_raw.ml" +# 57001 "src/ocaml/preprocess/parser_raw.ml" in # 1438 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 57014 "src/ocaml/preprocess/parser_raw.ml" +# 57007 "src/ocaml/preprocess/parser_raw.ml" in # 1442 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 57020 "src/ocaml/preprocess/parser_raw.ml" +# 57013 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -57042,18 +57035,18 @@ module Tables = struct let x = # 4785 "src/ocaml/preprocess/parser_raw.mly" ( None, _1 ) -# 57046 "src/ocaml/preprocess/parser_raw.ml" +# 57039 "src/ocaml/preprocess/parser_raw.ml" in # 1434 "src/ocaml/preprocess/parser_raw.mly" ( [ x ] ) -# 57051 "src/ocaml/preprocess/parser_raw.ml" +# 57044 "src/ocaml/preprocess/parser_raw.ml" in # 1442 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 57057 "src/ocaml/preprocess/parser_raw.ml" +# 57050 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -57088,7 +57081,7 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 57092 "src/ocaml/preprocess/parser_raw.ml" +# 57085 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -57097,18 +57090,18 @@ module Tables = struct let x = # 4787 "src/ocaml/preprocess/parser_raw.mly" ( Some label, ty ) -# 57101 "src/ocaml/preprocess/parser_raw.ml" +# 57094 "src/ocaml/preprocess/parser_raw.ml" in # 1434 "src/ocaml/preprocess/parser_raw.mly" ( [ x ] ) -# 57106 "src/ocaml/preprocess/parser_raw.ml" +# 57099 "src/ocaml/preprocess/parser_raw.ml" in # 1442 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 57112 "src/ocaml/preprocess/parser_raw.ml" +# 57105 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -57148,18 +57141,18 @@ module Tables = struct let x = # 4785 "src/ocaml/preprocess/parser_raw.mly" ( None, _1 ) -# 57152 "src/ocaml/preprocess/parser_raw.ml" +# 57145 "src/ocaml/preprocess/parser_raw.ml" in # 1438 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 57157 "src/ocaml/preprocess/parser_raw.ml" +# 57150 "src/ocaml/preprocess/parser_raw.ml" in # 1442 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 57163 "src/ocaml/preprocess/parser_raw.ml" +# 57156 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -57206,7 +57199,7 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 57210 "src/ocaml/preprocess/parser_raw.ml" +# 57203 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _2 : unit = Obj.magic _2 in let xs : ((string option * Parsetree.core_type) list) = Obj.magic xs in @@ -57217,18 +57210,18 @@ module Tables = struct let x = # 4787 "src/ocaml/preprocess/parser_raw.mly" ( Some label, ty ) -# 57221 "src/ocaml/preprocess/parser_raw.ml" +# 57214 "src/ocaml/preprocess/parser_raw.ml" in # 1438 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 57226 "src/ocaml/preprocess/parser_raw.ml" +# 57219 "src/ocaml/preprocess/parser_raw.ml" in # 1442 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 57232 "src/ocaml/preprocess/parser_raw.ml" +# 57225 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -57267,12 +57260,12 @@ module Tables = struct let _v : (Parsetree.core_type list) = let x = # 4929 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 57271 "src/ocaml/preprocess/parser_raw.ml" +# 57264 "src/ocaml/preprocess/parser_raw.ml" in # 1465 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 57276 "src/ocaml/preprocess/parser_raw.ml" +# 57269 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -57336,13 +57329,13 @@ module Tables = struct # 4931 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc (Ptyp_var (id, (Some jkind))) ) -# 57340 "src/ocaml/preprocess/parser_raw.ml" +# 57333 "src/ocaml/preprocess/parser_raw.ml" in # 1465 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 57346 "src/ocaml/preprocess/parser_raw.ml" +# 57339 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -57399,13 +57392,13 @@ module Tables = struct # 4933 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc (Ptyp_any (Some jkind)) ) -# 57403 "src/ocaml/preprocess/parser_raw.ml" +# 57396 "src/ocaml/preprocess/parser_raw.ml" in # 1465 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 57409 "src/ocaml/preprocess/parser_raw.ml" +# 57402 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -57446,18 +57439,18 @@ module Tables = struct # 4929 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 57450 "src/ocaml/preprocess/parser_raw.ml" +# 57443 "src/ocaml/preprocess/parser_raw.ml" in let x1 = # 4929 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 57456 "src/ocaml/preprocess/parser_raw.ml" +# 57449 "src/ocaml/preprocess/parser_raw.ml" in # 1469 "src/ocaml/preprocess/parser_raw.mly" ( [ x2; x1 ] ) -# 57461 "src/ocaml/preprocess/parser_raw.ml" +# 57454 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -57522,18 +57515,18 @@ module Tables = struct # 4931 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc (Ptyp_var (id, (Some jkind))) ) -# 57526 "src/ocaml/preprocess/parser_raw.ml" +# 57519 "src/ocaml/preprocess/parser_raw.ml" in let x1 = # 4929 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 57532 "src/ocaml/preprocess/parser_raw.ml" +# 57525 "src/ocaml/preprocess/parser_raw.ml" in # 1469 "src/ocaml/preprocess/parser_raw.mly" ( [ x2; x1 ] ) -# 57537 "src/ocaml/preprocess/parser_raw.ml" +# 57530 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -57591,18 +57584,18 @@ module Tables = struct # 4933 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc (Ptyp_any (Some jkind)) ) -# 57595 "src/ocaml/preprocess/parser_raw.ml" +# 57588 "src/ocaml/preprocess/parser_raw.ml" in let x1 = # 4929 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 57601 "src/ocaml/preprocess/parser_raw.ml" +# 57594 "src/ocaml/preprocess/parser_raw.ml" in # 1469 "src/ocaml/preprocess/parser_raw.mly" ( [ x2; x1 ] ) -# 57606 "src/ocaml/preprocess/parser_raw.ml" +# 57599 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -57664,7 +57657,7 @@ module Tables = struct # 4929 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 57668 "src/ocaml/preprocess/parser_raw.ml" +# 57661 "src/ocaml/preprocess/parser_raw.ml" in let x1 = @@ -57674,13 +57667,13 @@ module Tables = struct # 4931 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc (Ptyp_var (id, (Some jkind))) ) -# 57678 "src/ocaml/preprocess/parser_raw.ml" +# 57671 "src/ocaml/preprocess/parser_raw.ml" in # 1469 "src/ocaml/preprocess/parser_raw.mly" ( [ x2; x1 ] ) -# 57684 "src/ocaml/preprocess/parser_raw.ml" +# 57677 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -57766,7 +57759,7 @@ module Tables = struct # 4931 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc (Ptyp_var (id, (Some jkind))) ) -# 57770 "src/ocaml/preprocess/parser_raw.ml" +# 57763 "src/ocaml/preprocess/parser_raw.ml" in let x1 = @@ -57776,13 +57769,13 @@ module Tables = struct # 4931 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc (Ptyp_var (id, (Some jkind))) ) -# 57780 "src/ocaml/preprocess/parser_raw.ml" +# 57773 "src/ocaml/preprocess/parser_raw.ml" in # 1469 "src/ocaml/preprocess/parser_raw.mly" ( [ x2; x1 ] ) -# 57786 "src/ocaml/preprocess/parser_raw.ml" +# 57779 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -57861,7 +57854,7 @@ module Tables = struct # 4933 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc (Ptyp_any (Some jkind)) ) -# 57865 "src/ocaml/preprocess/parser_raw.ml" +# 57858 "src/ocaml/preprocess/parser_raw.ml" in let x1 = @@ -57871,13 +57864,13 @@ module Tables = struct # 4931 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc (Ptyp_var (id, (Some jkind))) ) -# 57875 "src/ocaml/preprocess/parser_raw.ml" +# 57868 "src/ocaml/preprocess/parser_raw.ml" in # 1469 "src/ocaml/preprocess/parser_raw.mly" ( [ x2; x1 ] ) -# 57881 "src/ocaml/preprocess/parser_raw.ml" +# 57874 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -57932,7 +57925,7 @@ module Tables = struct # 4929 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 57936 "src/ocaml/preprocess/parser_raw.ml" +# 57929 "src/ocaml/preprocess/parser_raw.ml" in let x1 = @@ -57942,13 +57935,13 @@ module Tables = struct # 4933 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc (Ptyp_any (Some jkind)) ) -# 57946 "src/ocaml/preprocess/parser_raw.ml" +# 57939 "src/ocaml/preprocess/parser_raw.ml" in # 1469 "src/ocaml/preprocess/parser_raw.mly" ( [ x2; x1 ] ) -# 57952 "src/ocaml/preprocess/parser_raw.ml" +# 57945 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -58027,7 +58020,7 @@ module Tables = struct # 4931 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc (Ptyp_var (id, (Some jkind))) ) -# 58031 "src/ocaml/preprocess/parser_raw.ml" +# 58024 "src/ocaml/preprocess/parser_raw.ml" in let x1 = @@ -58037,13 +58030,13 @@ module Tables = struct # 4933 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc (Ptyp_any (Some jkind)) ) -# 58041 "src/ocaml/preprocess/parser_raw.ml" +# 58034 "src/ocaml/preprocess/parser_raw.ml" in # 1469 "src/ocaml/preprocess/parser_raw.mly" ( [ x2; x1 ] ) -# 58047 "src/ocaml/preprocess/parser_raw.ml" +# 58040 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -58115,7 +58108,7 @@ module Tables = struct # 4933 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc (Ptyp_any (Some jkind)) ) -# 58119 "src/ocaml/preprocess/parser_raw.ml" +# 58112 "src/ocaml/preprocess/parser_raw.ml" in let x1 = @@ -58125,13 +58118,13 @@ module Tables = struct # 4933 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc (Ptyp_any (Some jkind)) ) -# 58129 "src/ocaml/preprocess/parser_raw.ml" +# 58122 "src/ocaml/preprocess/parser_raw.ml" in # 1469 "src/ocaml/preprocess/parser_raw.mly" ( [ x2; x1 ] ) -# 58135 "src/ocaml/preprocess/parser_raw.ml" +# 58128 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -58156,7 +58149,7 @@ module Tables = struct let _v : (Parsetree.row_field) = # 4946 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 58160 "src/ocaml/preprocess/parser_raw.ml" +# 58153 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -58184,7 +58177,7 @@ module Tables = struct # 4948 "src/ocaml/preprocess/parser_raw.mly" ( Rf.inherit_ ~loc:(make_loc _sloc) _1 ) -# 58188 "src/ocaml/preprocess/parser_raw.ml" +# 58181 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -58209,24 +58202,24 @@ module Tables = struct let _v : (Parsetree.expression list) = let _2 = # 124 "" ( None ) -# 58213 "src/ocaml/preprocess/parser_raw.ml" +# 58206 "src/ocaml/preprocess/parser_raw.ml" in let x = let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 58219 "src/ocaml/preprocess/parser_raw.ml" +# 58212 "src/ocaml/preprocess/parser_raw.ml" in # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 58224 "src/ocaml/preprocess/parser_raw.ml" +# 58217 "src/ocaml/preprocess/parser_raw.ml" in # 1486 "src/ocaml/preprocess/parser_raw.mly" ( [x] ) -# 58230 "src/ocaml/preprocess/parser_raw.ml" +# 58223 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -58258,24 +58251,24 @@ module Tables = struct let _v : (Parsetree.expression list) = let _2 = # 126 "" ( Some x ) -# 58262 "src/ocaml/preprocess/parser_raw.ml" +# 58255 "src/ocaml/preprocess/parser_raw.ml" in let x = let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 58268 "src/ocaml/preprocess/parser_raw.ml" +# 58261 "src/ocaml/preprocess/parser_raw.ml" in # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 58273 "src/ocaml/preprocess/parser_raw.ml" +# 58266 "src/ocaml/preprocess/parser_raw.ml" in # 1486 "src/ocaml/preprocess/parser_raw.mly" ( [x] ) -# 58279 "src/ocaml/preprocess/parser_raw.ml" +# 58272 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -58321,7 +58314,7 @@ module Tables = struct let _v : (Parsetree.expression list) = let _2 = # 124 "" ( None ) -# 58325 "src/ocaml/preprocess/parser_raw.ml" +# 58318 "src/ocaml/preprocess/parser_raw.ml" in let x = let _1 = @@ -58330,18 +58323,18 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 58334 "src/ocaml/preprocess/parser_raw.ml" +# 58327 "src/ocaml/preprocess/parser_raw.ml" in # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 58339 "src/ocaml/preprocess/parser_raw.ml" +# 58332 "src/ocaml/preprocess/parser_raw.ml" in # 3510 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 58345 "src/ocaml/preprocess/parser_raw.ml" +# 58338 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -58352,13 +58345,13 @@ module Tables = struct # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 58356 "src/ocaml/preprocess/parser_raw.ml" +# 58349 "src/ocaml/preprocess/parser_raw.ml" in # 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 58362 "src/ocaml/preprocess/parser_raw.ml" +# 58355 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in @@ -58378,19 +58371,19 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 58382 "src/ocaml/preprocess/parser_raw.ml" +# 58375 "src/ocaml/preprocess/parser_raw.ml" in # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 58388 "src/ocaml/preprocess/parser_raw.ml" +# 58381 "src/ocaml/preprocess/parser_raw.ml" in # 1486 "src/ocaml/preprocess/parser_raw.mly" ( [x] ) -# 58394 "src/ocaml/preprocess/parser_raw.ml" +# 58387 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -58443,7 +58436,7 @@ module Tables = struct let _v : (Parsetree.expression list) = let _2 = # 126 "" ( Some x ) -# 58447 "src/ocaml/preprocess/parser_raw.ml" +# 58440 "src/ocaml/preprocess/parser_raw.ml" in let x = let _1 = @@ -58452,18 +58445,18 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 58456 "src/ocaml/preprocess/parser_raw.ml" +# 58449 "src/ocaml/preprocess/parser_raw.ml" in # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 58461 "src/ocaml/preprocess/parser_raw.ml" +# 58454 "src/ocaml/preprocess/parser_raw.ml" in # 3510 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 58467 "src/ocaml/preprocess/parser_raw.ml" +# 58460 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -58474,13 +58467,13 @@ module Tables = struct # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 58478 "src/ocaml/preprocess/parser_raw.ml" +# 58471 "src/ocaml/preprocess/parser_raw.ml" in # 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 58484 "src/ocaml/preprocess/parser_raw.ml" +# 58477 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in @@ -58500,19 +58493,19 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 58504 "src/ocaml/preprocess/parser_raw.ml" +# 58497 "src/ocaml/preprocess/parser_raw.ml" in # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 58510 "src/ocaml/preprocess/parser_raw.ml" +# 58503 "src/ocaml/preprocess/parser_raw.ml" in # 1486 "src/ocaml/preprocess/parser_raw.mly" ( [x] ) -# 58516 "src/ocaml/preprocess/parser_raw.ml" +# 58509 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -58552,18 +58545,18 @@ module Tables = struct let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 58556 "src/ocaml/preprocess/parser_raw.ml" +# 58549 "src/ocaml/preprocess/parser_raw.ml" in # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 58561 "src/ocaml/preprocess/parser_raw.ml" +# 58554 "src/ocaml/preprocess/parser_raw.ml" in # 1490 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 58567 "src/ocaml/preprocess/parser_raw.ml" +# 58560 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -58628,18 +58621,18 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 58632 "src/ocaml/preprocess/parser_raw.ml" +# 58625 "src/ocaml/preprocess/parser_raw.ml" in # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 58637 "src/ocaml/preprocess/parser_raw.ml" +# 58630 "src/ocaml/preprocess/parser_raw.ml" in # 3510 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 58643 "src/ocaml/preprocess/parser_raw.ml" +# 58636 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -58650,13 +58643,13 @@ module Tables = struct # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 58654 "src/ocaml/preprocess/parser_raw.ml" +# 58647 "src/ocaml/preprocess/parser_raw.ml" in # 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 58660 "src/ocaml/preprocess/parser_raw.ml" +# 58653 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in @@ -58676,19 +58669,19 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 58680 "src/ocaml/preprocess/parser_raw.ml" +# 58673 "src/ocaml/preprocess/parser_raw.ml" in # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 58686 "src/ocaml/preprocess/parser_raw.ml" +# 58679 "src/ocaml/preprocess/parser_raw.ml" in # 1490 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 58692 "src/ocaml/preprocess/parser_raw.ml" +# 58685 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -58716,7 +58709,7 @@ module Tables = struct let _1 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 58720 "src/ocaml/preprocess/parser_raw.ml" +# 58713 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -58724,14 +58717,14 @@ module Tables = struct let _v : ((string Location.loc * Parsetree.expression) list) = let _2 = # 124 "" ( None ) -# 58728 "src/ocaml/preprocess/parser_raw.ml" +# 58721 "src/ocaml/preprocess/parser_raw.ml" in let x = let label = let _1 = # 5010 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 58735 "src/ocaml/preprocess/parser_raw.ml" +# 58728 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in @@ -58739,7 +58732,7 @@ module Tables = struct # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 58743 "src/ocaml/preprocess/parser_raw.ml" +# 58736 "src/ocaml/preprocess/parser_raw.ml" in @@ -58753,13 +58746,13 @@ module Tables = struct label, e in label, e ) -# 58757 "src/ocaml/preprocess/parser_raw.ml" +# 58750 "src/ocaml/preprocess/parser_raw.ml" in # 1486 "src/ocaml/preprocess/parser_raw.mly" ( [x] ) -# 58763 "src/ocaml/preprocess/parser_raw.ml" +# 58756 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -58794,7 +58787,7 @@ module Tables = struct let _1 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 58798 "src/ocaml/preprocess/parser_raw.ml" +# 58791 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -58802,14 +58795,14 @@ module Tables = struct let _v : ((string Location.loc * Parsetree.expression) list) = let _2 = # 126 "" ( Some x ) -# 58806 "src/ocaml/preprocess/parser_raw.ml" +# 58799 "src/ocaml/preprocess/parser_raw.ml" in let x = let label = let _1 = # 5010 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 58813 "src/ocaml/preprocess/parser_raw.ml" +# 58806 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in @@ -58817,7 +58810,7 @@ module Tables = struct # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 58821 "src/ocaml/preprocess/parser_raw.ml" +# 58814 "src/ocaml/preprocess/parser_raw.ml" in @@ -58831,13 +58824,13 @@ module Tables = struct label, e in label, e ) -# 58835 "src/ocaml/preprocess/parser_raw.ml" +# 58828 "src/ocaml/preprocess/parser_raw.ml" in # 1486 "src/ocaml/preprocess/parser_raw.mly" ( [x] ) -# 58841 "src/ocaml/preprocess/parser_raw.ml" +# 58834 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -58879,7 +58872,7 @@ module Tables = struct let _1 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 58883 "src/ocaml/preprocess/parser_raw.ml" +# 58876 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -58889,7 +58882,7 @@ module Tables = struct let _1 = # 5010 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 58893 "src/ocaml/preprocess/parser_raw.ml" +# 58886 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in @@ -58897,7 +58890,7 @@ module Tables = struct # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 58901 "src/ocaml/preprocess/parser_raw.ml" +# 58894 "src/ocaml/preprocess/parser_raw.ml" in @@ -58911,13 +58904,13 @@ module Tables = struct label, e in label, e ) -# 58915 "src/ocaml/preprocess/parser_raw.ml" +# 58908 "src/ocaml/preprocess/parser_raw.ml" in # 1490 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 58921 "src/ocaml/preprocess/parser_raw.ml" +# 58914 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -58942,12 +58935,12 @@ module Tables = struct let _v : (Parsetree.pattern list) = let _2 = # 124 "" ( None ) -# 58946 "src/ocaml/preprocess/parser_raw.ml" +# 58939 "src/ocaml/preprocess/parser_raw.ml" in # 1486 "src/ocaml/preprocess/parser_raw.mly" ( [x] ) -# 58951 "src/ocaml/preprocess/parser_raw.ml" +# 58944 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -58981,13 +58974,13 @@ module Tables = struct # 126 "" ( Some x ) -# 58985 "src/ocaml/preprocess/parser_raw.ml" +# 58978 "src/ocaml/preprocess/parser_raw.ml" in # 1486 "src/ocaml/preprocess/parser_raw.mly" ( [x] ) -# 58991 "src/ocaml/preprocess/parser_raw.ml" +# 58984 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -59026,7 +59019,7 @@ module Tables = struct let _v : (Parsetree.pattern list) = # 1490 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 59030 "src/ocaml/preprocess/parser_raw.ml" +# 59023 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -59065,7 +59058,7 @@ module Tables = struct let _v : ((Longident.t Location.loc * Parsetree.expression) list) = let _2 = # 124 "" ( None ) -# 59069 "src/ocaml/preprocess/parser_raw.ml" +# 59062 "src/ocaml/preprocess/parser_raw.ml" in let x = let label = @@ -59075,7 +59068,7 @@ module Tables = struct # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 59079 "src/ocaml/preprocess/parser_raw.ml" +# 59072 "src/ocaml/preprocess/parser_raw.ml" in let _startpos_label_ = _startpos__1_ in @@ -59093,13 +59086,13 @@ module Tables = struct (_startpos_c_, _endpos), label, e in label, mkexp_opt_type_constraint_with_modes ~loc:constraint_loc ~modes:[] e c ) -# 59097 "src/ocaml/preprocess/parser_raw.ml" +# 59090 "src/ocaml/preprocess/parser_raw.ml" in # 1486 "src/ocaml/preprocess/parser_raw.mly" ( [x] ) -# 59103 "src/ocaml/preprocess/parser_raw.ml" +# 59096 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -59145,7 +59138,7 @@ module Tables = struct let _v : ((Longident.t Location.loc * Parsetree.expression) list) = let _2 = # 126 "" ( Some x ) -# 59149 "src/ocaml/preprocess/parser_raw.ml" +# 59142 "src/ocaml/preprocess/parser_raw.ml" in let x = let label = @@ -59155,7 +59148,7 @@ module Tables = struct # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 59159 "src/ocaml/preprocess/parser_raw.ml" +# 59152 "src/ocaml/preprocess/parser_raw.ml" in let _startpos_label_ = _startpos__1_ in @@ -59173,13 +59166,13 @@ module Tables = struct (_startpos_c_, _endpos), label, e in label, mkexp_opt_type_constraint_with_modes ~loc:constraint_loc ~modes:[] e c ) -# 59177 "src/ocaml/preprocess/parser_raw.ml" +# 59170 "src/ocaml/preprocess/parser_raw.ml" in # 1486 "src/ocaml/preprocess/parser_raw.mly" ( [x] ) -# 59183 "src/ocaml/preprocess/parser_raw.ml" +# 59176 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -59237,7 +59230,7 @@ module Tables = struct # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 59241 "src/ocaml/preprocess/parser_raw.ml" +# 59234 "src/ocaml/preprocess/parser_raw.ml" in let _startpos_label_ = _startpos__1_ in @@ -59255,13 +59248,13 @@ module Tables = struct (_startpos_c_, _endpos), label, e in label, mkexp_opt_type_constraint_with_modes ~loc:constraint_loc ~modes:[] e c ) -# 59259 "src/ocaml/preprocess/parser_raw.ml" +# 59252 "src/ocaml/preprocess/parser_raw.ml" in # 1490 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 59265 "src/ocaml/preprocess/parser_raw.ml" +# 59258 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -59286,12 +59279,12 @@ module Tables = struct let _v : (Parsetree.expression) = let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 59290 "src/ocaml/preprocess/parser_raw.ml" +# 59283 "src/ocaml/preprocess/parser_raw.ml" in # 2752 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 59295 "src/ocaml/preprocess/parser_raw.ml" +# 59288 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -59340,18 +59333,18 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 59344 "src/ocaml/preprocess/parser_raw.ml" +# 59337 "src/ocaml/preprocess/parser_raw.ml" in # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 59349 "src/ocaml/preprocess/parser_raw.ml" +# 59342 "src/ocaml/preprocess/parser_raw.ml" in # 3510 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 59355 "src/ocaml/preprocess/parser_raw.ml" +# 59348 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -59362,13 +59355,13 @@ module Tables = struct # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 59366 "src/ocaml/preprocess/parser_raw.ml" +# 59359 "src/ocaml/preprocess/parser_raw.ml" in # 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 59372 "src/ocaml/preprocess/parser_raw.ml" +# 59365 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in @@ -59388,13 +59381,13 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 59392 "src/ocaml/preprocess/parser_raw.ml" +# 59385 "src/ocaml/preprocess/parser_raw.ml" in # 2752 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 59398 "src/ocaml/preprocess/parser_raw.ml" +# 59391 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -59464,7 +59457,7 @@ module Tables = struct # 5399 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 59468 "src/ocaml/preprocess/parser_raw.ml" +# 59461 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_attrs_ = _endpos__1_inlined4_ in @@ -59473,7 +59466,7 @@ module Tables = struct # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 59477 "src/ocaml/preprocess/parser_raw.ml" +# 59470 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_attrs2_ = _endpos__1_inlined3_ in @@ -59485,7 +59478,7 @@ module Tables = struct # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 59489 "src/ocaml/preprocess/parser_raw.ml" +# 59482 "src/ocaml/preprocess/parser_raw.ml" in let attrs1 = @@ -59493,7 +59486,7 @@ module Tables = struct # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 59497 "src/ocaml/preprocess/parser_raw.ml" +# 59490 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_attrs_ in @@ -59508,7 +59501,7 @@ module Tables = struct Te.mk_exception ~attrs (Te.decl id ~vars ~args ?res ~attrs:(attrs1 @ attrs2) ~loc ~docs) , ext ) -# 59512 "src/ocaml/preprocess/parser_raw.ml" +# 59505 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -59541,7 +59534,7 @@ module Tables = struct let _1 = # 260 "" ( List.flatten xss ) -# 59545 "src/ocaml/preprocess/parser_raw.ml" +# 59538 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_xss_, _startpos_xss_) in let _endpos = _endpos__1_ in @@ -59549,7 +59542,7 @@ module Tables = struct # 1289 "src/ocaml/preprocess/parser_raw.mly" ( extra_sig _startpos _endpos _1 ) -# 59553 "src/ocaml/preprocess/parser_raw.ml" +# 59546 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__2_, _startpos__2_) = (_endpos_xss_, _startpos_xss_) in @@ -59567,7 +59560,7 @@ module Tables = struct ( { psg_modalities = _1; psg_items = _2; psg_loc = make_loc _sloc; } ) -# 59571 "src/ocaml/preprocess/parser_raw.ml" +# 59564 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -59601,7 +59594,7 @@ module Tables = struct # 5399 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 59605 "src/ocaml/preprocess/parser_raw.ml" +# 59598 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__2_ = _endpos__1_inlined1_ in @@ -59612,7 +59605,7 @@ module Tables = struct # 2150 "src/ocaml/preprocess/parser_raw.mly" ( let docs = symbol_docs _sloc in mksig ~loc:_sloc (Psig_extension (_1, (add_docs_attrs docs _2))) ) -# 59616 "src/ocaml/preprocess/parser_raw.ml" +# 59609 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -59638,7 +59631,7 @@ module Tables = struct let _1 = # 2154 "src/ocaml/preprocess/parser_raw.mly" ( Psig_attribute _1 ) -# 59642 "src/ocaml/preprocess/parser_raw.ml" +# 59635 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in @@ -59646,13 +59639,13 @@ module Tables = struct # 1337 "src/ocaml/preprocess/parser_raw.mly" ( mksig ~loc:_sloc _1 ) -# 59650 "src/ocaml/preprocess/parser_raw.ml" +# 59643 "src/ocaml/preprocess/parser_raw.ml" in # 2160 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 59656 "src/ocaml/preprocess/parser_raw.ml" +# 59649 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -59680,7 +59673,7 @@ module Tables = struct ( let name, jkind = _1 in Psig_kind_abbrev (name, jkind) ) -# 59684 "src/ocaml/preprocess/parser_raw.ml" +# 59677 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in @@ -59688,13 +59681,13 @@ module Tables = struct # 1337 "src/ocaml/preprocess/parser_raw.mly" ( mksig ~loc:_sloc _1 ) -# 59692 "src/ocaml/preprocess/parser_raw.ml" +# 59685 "src/ocaml/preprocess/parser_raw.ml" in # 2160 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 59698 "src/ocaml/preprocess/parser_raw.ml" +# 59691 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -59720,7 +59713,7 @@ module Tables = struct let _1 = # 2163 "src/ocaml/preprocess/parser_raw.mly" ( psig_value _1 ) -# 59724 "src/ocaml/preprocess/parser_raw.ml" +# 59717 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in @@ -59728,13 +59721,13 @@ module Tables = struct # 1354 "src/ocaml/preprocess/parser_raw.mly" ( wrap_mksig_ext ~loc:_sloc _1 ) -# 59732 "src/ocaml/preprocess/parser_raw.ml" +# 59725 "src/ocaml/preprocess/parser_raw.ml" in # 2193 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 59738 "src/ocaml/preprocess/parser_raw.ml" +# 59731 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -59760,7 +59753,7 @@ module Tables = struct let _1 = # 2165 "src/ocaml/preprocess/parser_raw.mly" ( psig_value _1 ) -# 59764 "src/ocaml/preprocess/parser_raw.ml" +# 59757 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in @@ -59768,13 +59761,13 @@ module Tables = struct # 1354 "src/ocaml/preprocess/parser_raw.mly" ( wrap_mksig_ext ~loc:_sloc _1 ) -# 59772 "src/ocaml/preprocess/parser_raw.ml" +# 59765 "src/ocaml/preprocess/parser_raw.ml" in # 2193 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 59778 "src/ocaml/preprocess/parser_raw.ml" +# 59771 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -59811,24 +59804,24 @@ module Tables = struct let _1 = # 1547 "src/ocaml/preprocess/parser_raw.mly" ( let (x, b) = a in x, b :: bs ) -# 59815 "src/ocaml/preprocess/parser_raw.ml" +# 59808 "src/ocaml/preprocess/parser_raw.ml" in # 4049 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 59820 "src/ocaml/preprocess/parser_raw.ml" +# 59813 "src/ocaml/preprocess/parser_raw.ml" in # 4032 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 59826 "src/ocaml/preprocess/parser_raw.ml" +# 59819 "src/ocaml/preprocess/parser_raw.ml" in # 2167 "src/ocaml/preprocess/parser_raw.mly" ( psig_type _1 ) -# 59832 "src/ocaml/preprocess/parser_raw.ml" +# 59825 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_bs_, _startpos_a_) in @@ -59838,13 +59831,13 @@ module Tables = struct # 1354 "src/ocaml/preprocess/parser_raw.mly" ( wrap_mksig_ext ~loc:_sloc _1 ) -# 59842 "src/ocaml/preprocess/parser_raw.ml" +# 59835 "src/ocaml/preprocess/parser_raw.ml" in # 2193 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 59848 "src/ocaml/preprocess/parser_raw.ml" +# 59841 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -59881,24 +59874,24 @@ module Tables = struct let _1 = # 1547 "src/ocaml/preprocess/parser_raw.mly" ( let (x, b) = a in x, b :: bs ) -# 59885 "src/ocaml/preprocess/parser_raw.ml" +# 59878 "src/ocaml/preprocess/parser_raw.ml" in # 4049 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 59890 "src/ocaml/preprocess/parser_raw.ml" +# 59883 "src/ocaml/preprocess/parser_raw.ml" in # 4037 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 59896 "src/ocaml/preprocess/parser_raw.ml" +# 59889 "src/ocaml/preprocess/parser_raw.ml" in # 2169 "src/ocaml/preprocess/parser_raw.mly" ( psig_typesubst _1 ) -# 59902 "src/ocaml/preprocess/parser_raw.ml" +# 59895 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_bs_, _startpos_a_) in @@ -59908,13 +59901,13 @@ module Tables = struct # 1354 "src/ocaml/preprocess/parser_raw.mly" ( wrap_mksig_ext ~loc:_sloc _1 ) -# 59912 "src/ocaml/preprocess/parser_raw.ml" +# 59905 "src/ocaml/preprocess/parser_raw.ml" in # 2193 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 59918 "src/ocaml/preprocess/parser_raw.ml" +# 59911 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -60001,14 +59994,14 @@ module Tables = struct # 5399 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 60005 "src/ocaml/preprocess/parser_raw.ml" +# 59998 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_attrs2_ = _endpos__1_inlined3_ in let cs = # 1539 "src/ocaml/preprocess/parser_raw.mly" ( List.rev xs ) -# 60012 "src/ocaml/preprocess/parser_raw.ml" +# 60005 "src/ocaml/preprocess/parser_raw.ml" in let tid = let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in @@ -60018,20 +60011,20 @@ module Tables = struct # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 60022 "src/ocaml/preprocess/parser_raw.ml" +# 60015 "src/ocaml/preprocess/parser_raw.ml" in let _4 = # 5231 "src/ocaml/preprocess/parser_raw.mly" ( Recursive ) -# 60028 "src/ocaml/preprocess/parser_raw.ml" +# 60021 "src/ocaml/preprocess/parser_raw.ml" in let attrs1 = let _1 = _1_inlined1 in # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 60035 "src/ocaml/preprocess/parser_raw.ml" +# 60028 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_attrs2_ in @@ -60043,19 +60036,19 @@ module Tables = struct let attrs = attrs1 @ attrs2 in Te.mk tid cs ~params ~priv ~attrs ~docs, ext ) -# 60047 "src/ocaml/preprocess/parser_raw.ml" +# 60040 "src/ocaml/preprocess/parser_raw.ml" in # 4390 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 60053 "src/ocaml/preprocess/parser_raw.ml" +# 60046 "src/ocaml/preprocess/parser_raw.ml" in # 2171 "src/ocaml/preprocess/parser_raw.mly" ( psig_typext _1 ) -# 60059 "src/ocaml/preprocess/parser_raw.ml" +# 60052 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__1_inlined3_ in @@ -60065,13 +60058,13 @@ module Tables = struct # 1354 "src/ocaml/preprocess/parser_raw.mly" ( wrap_mksig_ext ~loc:_sloc _1 ) -# 60069 "src/ocaml/preprocess/parser_raw.ml" +# 60062 "src/ocaml/preprocess/parser_raw.ml" in # 2193 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 60075 "src/ocaml/preprocess/parser_raw.ml" +# 60068 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -60165,14 +60158,14 @@ module Tables = struct # 5399 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 60169 "src/ocaml/preprocess/parser_raw.ml" +# 60162 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_attrs2_ = _endpos__1_inlined4_ in let cs = # 1539 "src/ocaml/preprocess/parser_raw.mly" ( List.rev xs ) -# 60176 "src/ocaml/preprocess/parser_raw.ml" +# 60169 "src/ocaml/preprocess/parser_raw.ml" in let tid = let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined3_, _startpos__1_inlined3_, _1_inlined3) in @@ -60182,7 +60175,7 @@ module Tables = struct # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 60186 "src/ocaml/preprocess/parser_raw.ml" +# 60179 "src/ocaml/preprocess/parser_raw.ml" in let _4 = @@ -60193,7 +60186,7 @@ module Tables = struct # 5233 "src/ocaml/preprocess/parser_raw.mly" ( not_expecting _loc "nonrec flag"; Recursive ) -# 60197 "src/ocaml/preprocess/parser_raw.ml" +# 60190 "src/ocaml/preprocess/parser_raw.ml" in let attrs1 = @@ -60201,7 +60194,7 @@ module Tables = struct # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 60205 "src/ocaml/preprocess/parser_raw.ml" +# 60198 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_attrs2_ in @@ -60213,19 +60206,19 @@ module Tables = struct let attrs = attrs1 @ attrs2 in Te.mk tid cs ~params ~priv ~attrs ~docs, ext ) -# 60217 "src/ocaml/preprocess/parser_raw.ml" +# 60210 "src/ocaml/preprocess/parser_raw.ml" in # 4390 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 60223 "src/ocaml/preprocess/parser_raw.ml" +# 60216 "src/ocaml/preprocess/parser_raw.ml" in # 2171 "src/ocaml/preprocess/parser_raw.mly" ( psig_typext _1 ) -# 60229 "src/ocaml/preprocess/parser_raw.ml" +# 60222 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__1_inlined4_ in @@ -60235,13 +60228,13 @@ module Tables = struct # 1354 "src/ocaml/preprocess/parser_raw.mly" ( wrap_mksig_ext ~loc:_sloc _1 ) -# 60239 "src/ocaml/preprocess/parser_raw.ml" +# 60232 "src/ocaml/preprocess/parser_raw.ml" in # 2193 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 60245 "src/ocaml/preprocess/parser_raw.ml" +# 60238 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -60267,7 +60260,7 @@ module Tables = struct let _1 = # 2173 "src/ocaml/preprocess/parser_raw.mly" ( psig_exception _1 ) -# 60271 "src/ocaml/preprocess/parser_raw.ml" +# 60264 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in @@ -60275,13 +60268,13 @@ module Tables = struct # 1354 "src/ocaml/preprocess/parser_raw.mly" ( wrap_mksig_ext ~loc:_sloc _1 ) -# 60279 "src/ocaml/preprocess/parser_raw.ml" +# 60272 "src/ocaml/preprocess/parser_raw.ml" in # 2193 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 60285 "src/ocaml/preprocess/parser_raw.ml" +# 60278 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -60346,7 +60339,7 @@ module Tables = struct # 5399 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 60350 "src/ocaml/preprocess/parser_raw.ml" +# 60343 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_attrs2_ = _endpos__1_inlined2_ in @@ -60355,7 +60348,7 @@ module Tables = struct # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 60359 "src/ocaml/preprocess/parser_raw.ml" +# 60352 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_attrs2_ in @@ -60372,13 +60365,13 @@ module Tables = struct let modalities = modalities' @ modalities in Md.mk name mty ~attrs ~loc ~docs ~modalities, ext ) -# 60376 "src/ocaml/preprocess/parser_raw.ml" +# 60369 "src/ocaml/preprocess/parser_raw.ml" in # 2175 "src/ocaml/preprocess/parser_raw.mly" ( let (body, ext) = _1 in (Psig_module body, ext) ) -# 60382 "src/ocaml/preprocess/parser_raw.ml" +# 60375 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__1_inlined2_ in @@ -60388,13 +60381,13 @@ module Tables = struct # 1354 "src/ocaml/preprocess/parser_raw.mly" ( wrap_mksig_ext ~loc:_sloc _1 ) -# 60392 "src/ocaml/preprocess/parser_raw.ml" +# 60385 "src/ocaml/preprocess/parser_raw.ml" in # 2193 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 60398 "src/ocaml/preprocess/parser_raw.ml" +# 60391 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -60473,7 +60466,7 @@ module Tables = struct # 5399 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 60477 "src/ocaml/preprocess/parser_raw.ml" +# 60470 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_attrs2_ = _endpos__1_inlined3_ in @@ -60486,7 +60479,7 @@ module Tables = struct # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 60490 "src/ocaml/preprocess/parser_raw.ml" +# 60483 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_id_, _startpos_id_) = (_endpos__1_, _startpos__1_) in @@ -60496,7 +60489,7 @@ module Tables = struct # 2255 "src/ocaml/preprocess/parser_raw.mly" ( Mty.alias ~loc:(make_loc _sloc) id ) -# 60500 "src/ocaml/preprocess/parser_raw.ml" +# 60493 "src/ocaml/preprocess/parser_raw.ml" in let attrs1 = @@ -60504,7 +60497,7 @@ module Tables = struct # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 60508 "src/ocaml/preprocess/parser_raw.ml" +# 60501 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_attrs2_ in @@ -60520,13 +60513,13 @@ module Tables = struct let modalities = modalities' @ modalities in Md.mk name body ~attrs ~modalities ~loc ~docs, ext ) -# 60524 "src/ocaml/preprocess/parser_raw.ml" +# 60517 "src/ocaml/preprocess/parser_raw.ml" in # 2177 "src/ocaml/preprocess/parser_raw.mly" ( let (body, ext) = _1 in (Psig_module body, ext) ) -# 60530 "src/ocaml/preprocess/parser_raw.ml" +# 60523 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__1_inlined3_ in @@ -60536,13 +60529,13 @@ module Tables = struct # 1354 "src/ocaml/preprocess/parser_raw.mly" ( wrap_mksig_ext ~loc:_sloc _1 ) -# 60540 "src/ocaml/preprocess/parser_raw.ml" +# 60533 "src/ocaml/preprocess/parser_raw.ml" in # 2193 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 60546 "src/ocaml/preprocess/parser_raw.ml" +# 60539 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -60568,7 +60561,7 @@ module Tables = struct let _1 = # 2179 "src/ocaml/preprocess/parser_raw.mly" ( let (body, ext) = _1 in (Psig_modsubst body, ext) ) -# 60572 "src/ocaml/preprocess/parser_raw.ml" +# 60565 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in @@ -60576,13 +60569,13 @@ module Tables = struct # 1354 "src/ocaml/preprocess/parser_raw.mly" ( wrap_mksig_ext ~loc:_sloc _1 ) -# 60580 "src/ocaml/preprocess/parser_raw.ml" +# 60573 "src/ocaml/preprocess/parser_raw.ml" in # 2193 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 60586 "src/ocaml/preprocess/parser_raw.ml" +# 60579 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -60677,7 +60670,7 @@ module Tables = struct # 5399 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 60681 "src/ocaml/preprocess/parser_raw.ml" +# 60674 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_attrs2_ = _endpos__1_inlined3_ in @@ -60689,7 +60682,7 @@ module Tables = struct # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 60693 "src/ocaml/preprocess/parser_raw.ml" +# 60686 "src/ocaml/preprocess/parser_raw.ml" in let attrs1 = @@ -60697,7 +60690,7 @@ module Tables = struct # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 60701 "src/ocaml/preprocess/parser_raw.ml" +# 60694 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_attrs2_ in @@ -60711,25 +60704,25 @@ module Tables = struct let docs = symbol_docs _sloc in ext, Md.mk name mty ~attrs ~loc ~docs ~modalities ) -# 60715 "src/ocaml/preprocess/parser_raw.ml" +# 60708 "src/ocaml/preprocess/parser_raw.ml" in # 1547 "src/ocaml/preprocess/parser_raw.mly" ( let (x, b) = a in x, b :: bs ) -# 60721 "src/ocaml/preprocess/parser_raw.ml" +# 60714 "src/ocaml/preprocess/parser_raw.ml" in # 2280 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 60727 "src/ocaml/preprocess/parser_raw.ml" +# 60720 "src/ocaml/preprocess/parser_raw.ml" in # 2181 "src/ocaml/preprocess/parser_raw.mly" ( let (ext, l) = _1 in (Psig_recmodule l, ext) ) -# 60733 "src/ocaml/preprocess/parser_raw.ml" +# 60726 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_bs_ in @@ -60739,13 +60732,13 @@ module Tables = struct # 1354 "src/ocaml/preprocess/parser_raw.mly" ( wrap_mksig_ext ~loc:_sloc _1 ) -# 60743 "src/ocaml/preprocess/parser_raw.ml" +# 60736 "src/ocaml/preprocess/parser_raw.ml" in # 2193 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 60749 "src/ocaml/preprocess/parser_raw.ml" +# 60742 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -60771,7 +60764,7 @@ module Tables = struct let _1 = # 2183 "src/ocaml/preprocess/parser_raw.mly" ( let (body, ext) = _1 in (Psig_modtype body, ext) ) -# 60775 "src/ocaml/preprocess/parser_raw.ml" +# 60768 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in @@ -60779,13 +60772,13 @@ module Tables = struct # 1354 "src/ocaml/preprocess/parser_raw.mly" ( wrap_mksig_ext ~loc:_sloc _1 ) -# 60783 "src/ocaml/preprocess/parser_raw.ml" +# 60776 "src/ocaml/preprocess/parser_raw.ml" in # 2193 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 60789 "src/ocaml/preprocess/parser_raw.ml" +# 60782 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -60811,7 +60804,7 @@ module Tables = struct let _1 = # 2185 "src/ocaml/preprocess/parser_raw.mly" ( let (body, ext) = _1 in (Psig_modtypesubst body, ext) ) -# 60815 "src/ocaml/preprocess/parser_raw.ml" +# 60808 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in @@ -60819,13 +60812,13 @@ module Tables = struct # 1354 "src/ocaml/preprocess/parser_raw.mly" ( wrap_mksig_ext ~loc:_sloc _1 ) -# 60823 "src/ocaml/preprocess/parser_raw.ml" +# 60816 "src/ocaml/preprocess/parser_raw.ml" in # 2193 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 60829 "src/ocaml/preprocess/parser_raw.ml" +# 60822 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -60851,7 +60844,7 @@ module Tables = struct let _1 = # 2187 "src/ocaml/preprocess/parser_raw.mly" ( let (body, ext) = _1 in (Psig_open body, ext) ) -# 60855 "src/ocaml/preprocess/parser_raw.ml" +# 60848 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in @@ -60859,13 +60852,13 @@ module Tables = struct # 1354 "src/ocaml/preprocess/parser_raw.mly" ( wrap_mksig_ext ~loc:_sloc _1 ) -# 60863 "src/ocaml/preprocess/parser_raw.ml" +# 60856 "src/ocaml/preprocess/parser_raw.ml" in # 2193 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 60869 "src/ocaml/preprocess/parser_raw.ml" +# 60862 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -60944,7 +60937,7 @@ module Tables = struct let _1_inlined2 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 60948 "src/ocaml/preprocess/parser_raw.ml" +# 60941 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined2 in let params : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = Obj.magic params in let virt : (Asttypes.virtual_flag) = Obj.magic virt in @@ -60964,7 +60957,7 @@ module Tables = struct # 5399 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 60968 "src/ocaml/preprocess/parser_raw.ml" +# 60961 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_attrs2_ = _endpos__1_inlined3_ in @@ -60976,7 +60969,7 @@ module Tables = struct # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 60980 "src/ocaml/preprocess/parser_raw.ml" +# 60973 "src/ocaml/preprocess/parser_raw.ml" in let attrs1 = @@ -60984,7 +60977,7 @@ module Tables = struct # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 60988 "src/ocaml/preprocess/parser_raw.ml" +# 60981 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_attrs2_ in @@ -60999,25 +60992,25 @@ module Tables = struct ext, Ci.mk id cty ~virt ~params ~attrs ~loc ~docs ) -# 61003 "src/ocaml/preprocess/parser_raw.ml" +# 60996 "src/ocaml/preprocess/parser_raw.ml" in # 1547 "src/ocaml/preprocess/parser_raw.mly" ( let (x, b) = a in x, b :: bs ) -# 61009 "src/ocaml/preprocess/parser_raw.ml" +# 61002 "src/ocaml/preprocess/parser_raw.ml" in # 2635 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 61015 "src/ocaml/preprocess/parser_raw.ml" +# 61008 "src/ocaml/preprocess/parser_raw.ml" in # 2189 "src/ocaml/preprocess/parser_raw.mly" ( let (ext, l) = _1 in (Psig_class l, ext) ) -# 61021 "src/ocaml/preprocess/parser_raw.ml" +# 61014 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_bs_ in @@ -61027,13 +61020,13 @@ module Tables = struct # 1354 "src/ocaml/preprocess/parser_raw.mly" ( wrap_mksig_ext ~loc:_sloc _1 ) -# 61031 "src/ocaml/preprocess/parser_raw.ml" +# 61024 "src/ocaml/preprocess/parser_raw.ml" in # 2193 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 61037 "src/ocaml/preprocess/parser_raw.ml" +# 61030 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -61059,7 +61052,7 @@ module Tables = struct let _1 = # 2191 "src/ocaml/preprocess/parser_raw.mly" ( let (ext, l) = _1 in (Psig_class_type l, ext) ) -# 61063 "src/ocaml/preprocess/parser_raw.ml" +# 61056 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in @@ -61067,13 +61060,13 @@ module Tables = struct # 1354 "src/ocaml/preprocess/parser_raw.mly" ( wrap_mksig_ext ~loc:_sloc _1 ) -# 61071 "src/ocaml/preprocess/parser_raw.ml" +# 61064 "src/ocaml/preprocess/parser_raw.ml" in # 2193 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 61077 "src/ocaml/preprocess/parser_raw.ml" +# 61070 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -61136,14 +61129,14 @@ module Tables = struct # 5399 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 61140 "src/ocaml/preprocess/parser_raw.ml" +# 61133 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_attrs2_ = _endpos__1_inlined1_ in let attrs1 = # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 61147 "src/ocaml/preprocess/parser_raw.ml" +# 61140 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_attrs2_ in let _symbolstartpos = _startpos_kind_ in @@ -61157,7 +61150,7 @@ module Tables = struct let incl = Incl.mk ~kind thing ~attrs ~loc ~docs in incl, ext ) -# 61161 "src/ocaml/preprocess/parser_raw.ml" +# 61154 "src/ocaml/preprocess/parser_raw.ml" in let _startpos__1_ = _startpos_kind_ in @@ -61170,7 +61163,7 @@ module Tables = struct let item = mksig ~loc:_sloc (Psig_include (incl, modalities)) in wrap_sig_ext ~loc:_sloc item ext ) -# 61174 "src/ocaml/preprocess/parser_raw.ml" +# 61167 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -61195,7 +61188,7 @@ module Tables = struct let _v : (Parsetree.constant) = # 5038 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 61199 "src/ocaml/preprocess/parser_raw.ml" +# 61192 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -61220,7 +61213,7 @@ module Tables = struct let _v : (Parsetree.constant) = # 5039 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 61224 "src/ocaml/preprocess/parser_raw.ml" +# 61217 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -61247,7 +61240,7 @@ module Tables = struct let _2 : ( # 1079 "src/ocaml/preprocess/parser_raw.mly" (string * char option) -# 61251 "src/ocaml/preprocess/parser_raw.ml" +# 61244 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _2 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -61260,7 +61253,7 @@ module Tables = struct # 5040 "src/ocaml/preprocess/parser_raw.mly" ( unboxed_int _sloc _loc__2_ Negative _2 ) -# 61264 "src/ocaml/preprocess/parser_raw.ml" +# 61257 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -61287,7 +61280,7 @@ module Tables = struct let _2 : ( # 1052 "src/ocaml/preprocess/parser_raw.mly" (string * char option) -# 61291 "src/ocaml/preprocess/parser_raw.ml" +# 61284 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _2 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -61296,7 +61289,7 @@ module Tables = struct let _v : (Parsetree.constant) = # 5041 "src/ocaml/preprocess/parser_raw.mly" ( unboxed_float Negative _2 ) -# 61300 "src/ocaml/preprocess/parser_raw.ml" +# 61293 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -61323,7 +61316,7 @@ module Tables = struct let _2 : ( # 1079 "src/ocaml/preprocess/parser_raw.mly" (string * char option) -# 61327 "src/ocaml/preprocess/parser_raw.ml" +# 61320 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _2 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -61336,7 +61329,7 @@ module Tables = struct # 5042 "src/ocaml/preprocess/parser_raw.mly" ( unboxed_int _sloc _loc__2_ Positive _2 ) -# 61340 "src/ocaml/preprocess/parser_raw.ml" +# 61333 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -61363,7 +61356,7 @@ module Tables = struct let _2 : ( # 1052 "src/ocaml/preprocess/parser_raw.mly" (string * char option) -# 61367 "src/ocaml/preprocess/parser_raw.ml" +# 61360 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _2 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -61372,7 +61365,7 @@ module Tables = struct let _v : (Parsetree.constant) = # 5043 "src/ocaml/preprocess/parser_raw.mly" ( unboxed_float Positive _2 ) -# 61376 "src/ocaml/preprocess/parser_raw.ml" +# 61369 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -61397,7 +61390,7 @@ module Tables = struct let _v : (Parsetree.constant) = # 5031 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 61401 "src/ocaml/preprocess/parser_raw.ml" +# 61394 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -61424,7 +61417,7 @@ module Tables = struct let _2 : ( # 1078 "src/ocaml/preprocess/parser_raw.mly" (string * char option) -# 61428 "src/ocaml/preprocess/parser_raw.ml" +# 61421 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _2 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -61433,7 +61426,7 @@ module Tables = struct let _v : (Parsetree.constant) = # 5032 "src/ocaml/preprocess/parser_raw.mly" ( let (n, m) = _2 in Pconst_integer("-" ^ n, m) ) -# 61437 "src/ocaml/preprocess/parser_raw.ml" +# 61430 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -61460,7 +61453,7 @@ module Tables = struct let _2 : ( # 1051 "src/ocaml/preprocess/parser_raw.mly" (string * char option) -# 61464 "src/ocaml/preprocess/parser_raw.ml" +# 61457 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _2 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -61469,7 +61462,7 @@ module Tables = struct let _v : (Parsetree.constant) = # 5033 "src/ocaml/preprocess/parser_raw.mly" ( let (f, m) = _2 in Pconst_float("-" ^ f, m) ) -# 61473 "src/ocaml/preprocess/parser_raw.ml" +# 61466 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -61496,7 +61489,7 @@ module Tables = struct let _2 : ( # 1078 "src/ocaml/preprocess/parser_raw.mly" (string * char option) -# 61500 "src/ocaml/preprocess/parser_raw.ml" +# 61493 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _2 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -61505,7 +61498,7 @@ module Tables = struct let _v : (Parsetree.constant) = # 5034 "src/ocaml/preprocess/parser_raw.mly" ( let (n, m) = _2 in Pconst_integer (n, m) ) -# 61509 "src/ocaml/preprocess/parser_raw.ml" +# 61502 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -61532,7 +61525,7 @@ module Tables = struct let _2 : ( # 1051 "src/ocaml/preprocess/parser_raw.mly" (string * char option) -# 61536 "src/ocaml/preprocess/parser_raw.ml" +# 61529 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _2 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -61541,7 +61534,7 @@ module Tables = struct let _v : (Parsetree.constant) = # 5035 "src/ocaml/preprocess/parser_raw.mly" ( let (f, m) = _2 in Pconst_float(f, m) ) -# 61545 "src/ocaml/preprocess/parser_raw.ml" +# 61538 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -61586,14 +61579,14 @@ module Tables = struct ( let fields, closed = _1 in let closed = match closed with Some () -> Open | None -> Closed in fields, closed ) -# 61590 "src/ocaml/preprocess/parser_raw.ml" +# 61583 "src/ocaml/preprocess/parser_raw.ml" in # 3923 "src/ocaml/preprocess/parser_raw.mly" ( let (fields, closed) = _2 in Ppat_record(fields, closed) ) -# 61597 "src/ocaml/preprocess/parser_raw.ml" +# 61590 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__3_ in @@ -61603,13 +61596,13 @@ module Tables = struct # 1331 "src/ocaml/preprocess/parser_raw.mly" ( mkpat ~loc:_sloc _1 ) -# 61607 "src/ocaml/preprocess/parser_raw.ml" +# 61600 "src/ocaml/preprocess/parser_raw.ml" in # 3949 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 61613 "src/ocaml/preprocess/parser_raw.ml" +# 61606 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -61654,14 +61647,14 @@ module Tables = struct ( let fields, closed = _1 in let closed = match closed with Some () -> Open | None -> Closed in fields, closed ) -# 61658 "src/ocaml/preprocess/parser_raw.ml" +# 61651 "src/ocaml/preprocess/parser_raw.ml" in # 3926 "src/ocaml/preprocess/parser_raw.mly" ( let (fields, closed) = _2 in Ppat_record_unboxed_product(fields, closed) ) -# 61665 "src/ocaml/preprocess/parser_raw.ml" +# 61658 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__3_ in @@ -61671,13 +61664,13 @@ module Tables = struct # 1331 "src/ocaml/preprocess/parser_raw.mly" ( mkpat ~loc:_sloc _1 ) -# 61675 "src/ocaml/preprocess/parser_raw.ml" +# 61668 "src/ocaml/preprocess/parser_raw.ml" in # 3949 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 61681 "src/ocaml/preprocess/parser_raw.ml" +# 61674 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -61718,13 +61711,13 @@ module Tables = struct let _2 = # 3953 "src/ocaml/preprocess/parser_raw.mly" ( ps ) -# 61722 "src/ocaml/preprocess/parser_raw.ml" +# 61715 "src/ocaml/preprocess/parser_raw.ml" in let _loc__3_ = (_startpos__3_, _endpos__3_) in # 3931 "src/ocaml/preprocess/parser_raw.mly" ( fst (mktailpat _loc__3_ _2) ) -# 61728 "src/ocaml/preprocess/parser_raw.ml" +# 61721 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__3_ in @@ -61734,13 +61727,13 @@ module Tables = struct # 1331 "src/ocaml/preprocess/parser_raw.mly" ( mkpat ~loc:_sloc _1 ) -# 61738 "src/ocaml/preprocess/parser_raw.ml" +# 61731 "src/ocaml/preprocess/parser_raw.ml" in # 3949 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 61744 "src/ocaml/preprocess/parser_raw.ml" +# 61737 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -61783,18 +61776,18 @@ module Tables = struct let _2 = # 3953 "src/ocaml/preprocess/parser_raw.mly" ( ps ) -# 61787 "src/ocaml/preprocess/parser_raw.ml" +# 61780 "src/ocaml/preprocess/parser_raw.ml" in # 3173 "src/ocaml/preprocess/parser_raw.mly" ( Generic_array.Simple.Literal _2 ) -# 61792 "src/ocaml/preprocess/parser_raw.ml" +# 61785 "src/ocaml/preprocess/parser_raw.ml" in # 3200 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 61798 "src/ocaml/preprocess/parser_raw.ml" +# 61791 "src/ocaml/preprocess/parser_raw.ml" in @@ -61804,7 +61797,7 @@ module Tables = struct Mutable _1 ) -# 61808 "src/ocaml/preprocess/parser_raw.ml" +# 61801 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__3_ in @@ -61814,13 +61807,13 @@ module Tables = struct # 1331 "src/ocaml/preprocess/parser_raw.mly" ( mkpat ~loc:_sloc _1 ) -# 61818 "src/ocaml/preprocess/parser_raw.ml" +# 61811 "src/ocaml/preprocess/parser_raw.ml" in # 3949 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 61824 "src/ocaml/preprocess/parser_raw.ml" +# 61817 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -61855,12 +61848,12 @@ module Tables = struct let _1 = # 3179 "src/ocaml/preprocess/parser_raw.mly" ( Generic_array.Simple.Literal [] ) -# 61859 "src/ocaml/preprocess/parser_raw.ml" +# 61852 "src/ocaml/preprocess/parser_raw.ml" in # 3200 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 61864 "src/ocaml/preprocess/parser_raw.ml" +# 61857 "src/ocaml/preprocess/parser_raw.ml" in @@ -61870,7 +61863,7 @@ module Tables = struct Mutable _1 ) -# 61874 "src/ocaml/preprocess/parser_raw.ml" +# 61867 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__2_ in @@ -61880,13 +61873,13 @@ module Tables = struct # 1331 "src/ocaml/preprocess/parser_raw.mly" ( mkpat ~loc:_sloc _1 ) -# 61884 "src/ocaml/preprocess/parser_raw.ml" +# 61877 "src/ocaml/preprocess/parser_raw.ml" in # 3949 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 61890 "src/ocaml/preprocess/parser_raw.ml" +# 61883 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -61929,18 +61922,18 @@ module Tables = struct let _2 = # 3953 "src/ocaml/preprocess/parser_raw.mly" ( ps ) -# 61933 "src/ocaml/preprocess/parser_raw.ml" +# 61926 "src/ocaml/preprocess/parser_raw.ml" in # 3173 "src/ocaml/preprocess/parser_raw.mly" ( Generic_array.Simple.Literal _2 ) -# 61938 "src/ocaml/preprocess/parser_raw.ml" +# 61931 "src/ocaml/preprocess/parser_raw.ml" in # 3200 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 61944 "src/ocaml/preprocess/parser_raw.ml" +# 61937 "src/ocaml/preprocess/parser_raw.ml" in @@ -61950,7 +61943,7 @@ module Tables = struct Immutable _1 ) -# 61954 "src/ocaml/preprocess/parser_raw.ml" +# 61947 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__3_ in @@ -61960,13 +61953,13 @@ module Tables = struct # 1331 "src/ocaml/preprocess/parser_raw.mly" ( mkpat ~loc:_sloc _1 ) -# 61964 "src/ocaml/preprocess/parser_raw.ml" +# 61957 "src/ocaml/preprocess/parser_raw.ml" in # 3949 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 61970 "src/ocaml/preprocess/parser_raw.ml" +# 61963 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -62001,12 +61994,12 @@ module Tables = struct let _1 = # 3179 "src/ocaml/preprocess/parser_raw.mly" ( Generic_array.Simple.Literal [] ) -# 62005 "src/ocaml/preprocess/parser_raw.ml" +# 61998 "src/ocaml/preprocess/parser_raw.ml" in # 3200 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 62010 "src/ocaml/preprocess/parser_raw.ml" +# 62003 "src/ocaml/preprocess/parser_raw.ml" in @@ -62016,7 +62009,7 @@ module Tables = struct Immutable _1 ) -# 62020 "src/ocaml/preprocess/parser_raw.ml" +# 62013 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__2_ in @@ -62026,13 +62019,13 @@ module Tables = struct # 1331 "src/ocaml/preprocess/parser_raw.mly" ( mkpat ~loc:_sloc _1 ) -# 62030 "src/ocaml/preprocess/parser_raw.ml" +# 62023 "src/ocaml/preprocess/parser_raw.ml" in # 3949 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 62036 "src/ocaml/preprocess/parser_raw.ml" +# 62029 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -62073,7 +62066,7 @@ module Tables = struct # 3947 "src/ocaml/preprocess/parser_raw.mly" ( let (closed, fields) = _2 in Ppat_unboxed_tuple (List.rev fields, closed) ) -# 62077 "src/ocaml/preprocess/parser_raw.ml" +# 62070 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__3_ in let _endpos = _endpos__1_ in @@ -62082,13 +62075,13 @@ module Tables = struct # 1331 "src/ocaml/preprocess/parser_raw.mly" ( mkpat ~loc:_sloc _1 ) -# 62086 "src/ocaml/preprocess/parser_raw.ml" +# 62079 "src/ocaml/preprocess/parser_raw.ml" in # 3949 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 62092 "src/ocaml/preprocess/parser_raw.ml" +# 62085 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -62129,12 +62122,12 @@ module Tables = struct let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 62133 "src/ocaml/preprocess/parser_raw.ml" +# 62126 "src/ocaml/preprocess/parser_raw.ml" in # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 62138 "src/ocaml/preprocess/parser_raw.ml" +# 62131 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in @@ -62142,7 +62135,7 @@ module Tables = struct # 5444 "src/ocaml/preprocess/parser_raw.mly" ( Fake.Meta.code _startpos _endpos _2 ) -# 62146 "src/ocaml/preprocess/parser_raw.ml" +# 62139 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -62207,18 +62200,18 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 62211 "src/ocaml/preprocess/parser_raw.ml" +# 62204 "src/ocaml/preprocess/parser_raw.ml" in # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 62216 "src/ocaml/preprocess/parser_raw.ml" +# 62209 "src/ocaml/preprocess/parser_raw.ml" in # 3510 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 62222 "src/ocaml/preprocess/parser_raw.ml" +# 62215 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -62229,13 +62222,13 @@ module Tables = struct # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 62233 "src/ocaml/preprocess/parser_raw.ml" +# 62226 "src/ocaml/preprocess/parser_raw.ml" in # 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 62239 "src/ocaml/preprocess/parser_raw.ml" +# 62232 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in @@ -62255,13 +62248,13 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 62259 "src/ocaml/preprocess/parser_raw.ml" +# 62252 "src/ocaml/preprocess/parser_raw.ml" in # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 62265 "src/ocaml/preprocess/parser_raw.ml" +# 62258 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in @@ -62269,7 +62262,7 @@ module Tables = struct # 5444 "src/ocaml/preprocess/parser_raw.mly" ( Fake.Meta.code _startpos _endpos _2 ) -# 62273 "src/ocaml/preprocess/parser_raw.ml" +# 62266 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -62303,7 +62296,7 @@ module Tables = struct # 5446 "src/ocaml/preprocess/parser_raw.mly" ( Fake.Meta.uncode _startpos _endpos _2 ) -# 62307 "src/ocaml/preprocess/parser_raw.ml" +# 62300 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -62345,7 +62338,7 @@ module Tables = struct # 3057 "src/ocaml/preprocess/parser_raw.mly" ( reloc_exp ~loc:_sloc _2 ) -# 62349 "src/ocaml/preprocess/parser_raw.ml" +# 62342 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -62393,12 +62386,12 @@ module Tables = struct let _2 = # 4699 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 62397 "src/ocaml/preprocess/parser_raw.ml" +# 62390 "src/ocaml/preprocess/parser_raw.ml" in # 3686 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 62402 "src/ocaml/preprocess/parser_raw.ml" +# 62395 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__4_ in @@ -62408,7 +62401,7 @@ module Tables = struct # 3063 "src/ocaml/preprocess/parser_raw.mly" ( let (t, m) = _3 in mkexp_type_constraint_with_modes ~ghost:true ~loc:_sloc ~modes:m _2 t ) -# 62412 "src/ocaml/preprocess/parser_raw.ml" +# 62405 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -62465,13 +62458,13 @@ module Tables = struct # 4700 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 62469 "src/ocaml/preprocess/parser_raw.ml" +# 62462 "src/ocaml/preprocess/parser_raw.ml" in # 3686 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 62475 "src/ocaml/preprocess/parser_raw.ml" +# 62468 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__4_ in @@ -62481,7 +62474,7 @@ module Tables = struct # 3063 "src/ocaml/preprocess/parser_raw.mly" ( let (t, m) = _3 in mkexp_type_constraint_with_modes ~ghost:true ~loc:_sloc ~modes:m _2 t ) -# 62485 "src/ocaml/preprocess/parser_raw.ml" +# 62478 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -62535,12 +62528,12 @@ module Tables = struct let r = # 3065 "src/ocaml/preprocess/parser_raw.mly" ( None ) -# 62539 "src/ocaml/preprocess/parser_raw.ml" +# 62532 "src/ocaml/preprocess/parser_raw.ml" in # 2903 "src/ocaml/preprocess/parser_raw.mly" ( array, d, Paren, i, r ) -# 62544 "src/ocaml/preprocess/parser_raw.ml" +# 62537 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__5_, _startpos_array_) in @@ -62550,7 +62543,7 @@ module Tables = struct # 3066 "src/ocaml/preprocess/parser_raw.mly" ( mk_indexop_expr builtin_indexing_operators ~loc:_sloc _1 ) -# 62554 "src/ocaml/preprocess/parser_raw.ml" +# 62547 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -62604,12 +62597,12 @@ module Tables = struct let r = # 3065 "src/ocaml/preprocess/parser_raw.mly" ( None ) -# 62608 "src/ocaml/preprocess/parser_raw.ml" +# 62601 "src/ocaml/preprocess/parser_raw.ml" in # 2905 "src/ocaml/preprocess/parser_raw.mly" ( array, d, Brace, i, r ) -# 62613 "src/ocaml/preprocess/parser_raw.ml" +# 62606 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__5_, _startpos_array_) in @@ -62619,7 +62612,7 @@ module Tables = struct # 3066 "src/ocaml/preprocess/parser_raw.mly" ( mk_indexop_expr builtin_indexing_operators ~loc:_sloc _1 ) -# 62623 "src/ocaml/preprocess/parser_raw.ml" +# 62616 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -62673,12 +62666,12 @@ module Tables = struct let r = # 3065 "src/ocaml/preprocess/parser_raw.mly" ( None ) -# 62677 "src/ocaml/preprocess/parser_raw.ml" +# 62670 "src/ocaml/preprocess/parser_raw.ml" in # 2907 "src/ocaml/preprocess/parser_raw.mly" ( array, d, Bracket, i, r ) -# 62682 "src/ocaml/preprocess/parser_raw.ml" +# 62675 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__5_, _startpos_array_) in @@ -62688,7 +62681,7 @@ module Tables = struct # 3066 "src/ocaml/preprocess/parser_raw.mly" ( mk_indexop_expr builtin_indexing_operators ~loc:_sloc _1 ) -# 62692 "src/ocaml/preprocess/parser_raw.ml" +# 62685 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -62736,7 +62729,7 @@ module Tables = struct let _2 : ( # 1073 "src/ocaml/preprocess/parser_raw.mly" (string) -# 62740 "src/ocaml/preprocess/parser_raw.ml" +# 62733 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _2 in let array : (Parsetree.expression) = Obj.magic array in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -62746,29 +62739,29 @@ module Tables = struct let r = # 3069 "src/ocaml/preprocess/parser_raw.mly" ( None ) -# 62750 "src/ocaml/preprocess/parser_raw.ml" +# 62743 "src/ocaml/preprocess/parser_raw.ml" in let i = # 3674 "src/ocaml/preprocess/parser_raw.mly" ( es ) -# 62755 "src/ocaml/preprocess/parser_raw.ml" +# 62748 "src/ocaml/preprocess/parser_raw.ml" in let d = let _1 = # 124 "" ( None ) -# 62761 "src/ocaml/preprocess/parser_raw.ml" +# 62754 "src/ocaml/preprocess/parser_raw.ml" in # 2919 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 62766 "src/ocaml/preprocess/parser_raw.ml" +# 62759 "src/ocaml/preprocess/parser_raw.ml" in # 2903 "src/ocaml/preprocess/parser_raw.mly" ( array, d, Paren, i, r ) -# 62772 "src/ocaml/preprocess/parser_raw.ml" +# 62765 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__5_, _startpos_array_) in @@ -62778,7 +62771,7 @@ module Tables = struct # 3070 "src/ocaml/preprocess/parser_raw.mly" ( mk_indexop_expr user_indexing_operators ~loc:_sloc _1 ) -# 62782 "src/ocaml/preprocess/parser_raw.ml" +# 62775 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -62838,7 +62831,7 @@ module Tables = struct let _2 : ( # 1073 "src/ocaml/preprocess/parser_raw.mly" (string) -# 62842 "src/ocaml/preprocess/parser_raw.ml" +# 62835 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _2 in let _2_inlined1 : (Longident.t) = Obj.magic _2_inlined1 in let _1 : unit = Obj.magic _1 in @@ -62850,12 +62843,12 @@ module Tables = struct let r = # 3069 "src/ocaml/preprocess/parser_raw.mly" ( None ) -# 62854 "src/ocaml/preprocess/parser_raw.ml" +# 62847 "src/ocaml/preprocess/parser_raw.ml" in let i = # 3674 "src/ocaml/preprocess/parser_raw.mly" ( es ) -# 62859 "src/ocaml/preprocess/parser_raw.ml" +# 62852 "src/ocaml/preprocess/parser_raw.ml" in let d = let _1 = @@ -62863,24 +62856,24 @@ module Tables = struct let x = # 2919 "src/ocaml/preprocess/parser_raw.mly" (_2) -# 62867 "src/ocaml/preprocess/parser_raw.ml" +# 62860 "src/ocaml/preprocess/parser_raw.ml" in # 126 "" ( Some x ) -# 62872 "src/ocaml/preprocess/parser_raw.ml" +# 62865 "src/ocaml/preprocess/parser_raw.ml" in # 2919 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 62878 "src/ocaml/preprocess/parser_raw.ml" +# 62871 "src/ocaml/preprocess/parser_raw.ml" in # 2903 "src/ocaml/preprocess/parser_raw.mly" ( array, d, Paren, i, r ) -# 62884 "src/ocaml/preprocess/parser_raw.ml" +# 62877 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__5_, _startpos_array_) in @@ -62890,7 +62883,7 @@ module Tables = struct # 3070 "src/ocaml/preprocess/parser_raw.mly" ( mk_indexop_expr user_indexing_operators ~loc:_sloc _1 ) -# 62894 "src/ocaml/preprocess/parser_raw.ml" +# 62887 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -62938,7 +62931,7 @@ module Tables = struct let _2 : ( # 1073 "src/ocaml/preprocess/parser_raw.mly" (string) -# 62942 "src/ocaml/preprocess/parser_raw.ml" +# 62935 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _2 in let array : (Parsetree.expression) = Obj.magic array in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -62948,29 +62941,29 @@ module Tables = struct let r = # 3069 "src/ocaml/preprocess/parser_raw.mly" ( None ) -# 62952 "src/ocaml/preprocess/parser_raw.ml" +# 62945 "src/ocaml/preprocess/parser_raw.ml" in let i = # 3674 "src/ocaml/preprocess/parser_raw.mly" ( es ) -# 62957 "src/ocaml/preprocess/parser_raw.ml" +# 62950 "src/ocaml/preprocess/parser_raw.ml" in let d = let _1 = # 124 "" ( None ) -# 62963 "src/ocaml/preprocess/parser_raw.ml" +# 62956 "src/ocaml/preprocess/parser_raw.ml" in # 2919 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 62968 "src/ocaml/preprocess/parser_raw.ml" +# 62961 "src/ocaml/preprocess/parser_raw.ml" in # 2905 "src/ocaml/preprocess/parser_raw.mly" ( array, d, Brace, i, r ) -# 62974 "src/ocaml/preprocess/parser_raw.ml" +# 62967 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__5_, _startpos_array_) in @@ -62980,7 +62973,7 @@ module Tables = struct # 3070 "src/ocaml/preprocess/parser_raw.mly" ( mk_indexop_expr user_indexing_operators ~loc:_sloc _1 ) -# 62984 "src/ocaml/preprocess/parser_raw.ml" +# 62977 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -63040,7 +63033,7 @@ module Tables = struct let _2 : ( # 1073 "src/ocaml/preprocess/parser_raw.mly" (string) -# 63044 "src/ocaml/preprocess/parser_raw.ml" +# 63037 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _2 in let _2_inlined1 : (Longident.t) = Obj.magic _2_inlined1 in let _1 : unit = Obj.magic _1 in @@ -63052,12 +63045,12 @@ module Tables = struct let r = # 3069 "src/ocaml/preprocess/parser_raw.mly" ( None ) -# 63056 "src/ocaml/preprocess/parser_raw.ml" +# 63049 "src/ocaml/preprocess/parser_raw.ml" in let i = # 3674 "src/ocaml/preprocess/parser_raw.mly" ( es ) -# 63061 "src/ocaml/preprocess/parser_raw.ml" +# 63054 "src/ocaml/preprocess/parser_raw.ml" in let d = let _1 = @@ -63065,24 +63058,24 @@ module Tables = struct let x = # 2919 "src/ocaml/preprocess/parser_raw.mly" (_2) -# 63069 "src/ocaml/preprocess/parser_raw.ml" +# 63062 "src/ocaml/preprocess/parser_raw.ml" in # 126 "" ( Some x ) -# 63074 "src/ocaml/preprocess/parser_raw.ml" +# 63067 "src/ocaml/preprocess/parser_raw.ml" in # 2919 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 63080 "src/ocaml/preprocess/parser_raw.ml" +# 63073 "src/ocaml/preprocess/parser_raw.ml" in # 2905 "src/ocaml/preprocess/parser_raw.mly" ( array, d, Brace, i, r ) -# 63086 "src/ocaml/preprocess/parser_raw.ml" +# 63079 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__5_, _startpos_array_) in @@ -63092,7 +63085,7 @@ module Tables = struct # 3070 "src/ocaml/preprocess/parser_raw.mly" ( mk_indexop_expr user_indexing_operators ~loc:_sloc _1 ) -# 63096 "src/ocaml/preprocess/parser_raw.ml" +# 63089 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -63140,7 +63133,7 @@ module Tables = struct let _2 : ( # 1073 "src/ocaml/preprocess/parser_raw.mly" (string) -# 63144 "src/ocaml/preprocess/parser_raw.ml" +# 63137 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _2 in let array : (Parsetree.expression) = Obj.magic array in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -63150,29 +63143,29 @@ module Tables = struct let r = # 3069 "src/ocaml/preprocess/parser_raw.mly" ( None ) -# 63154 "src/ocaml/preprocess/parser_raw.ml" +# 63147 "src/ocaml/preprocess/parser_raw.ml" in let i = # 3674 "src/ocaml/preprocess/parser_raw.mly" ( es ) -# 63159 "src/ocaml/preprocess/parser_raw.ml" +# 63152 "src/ocaml/preprocess/parser_raw.ml" in let d = let _1 = # 124 "" ( None ) -# 63165 "src/ocaml/preprocess/parser_raw.ml" +# 63158 "src/ocaml/preprocess/parser_raw.ml" in # 2919 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 63170 "src/ocaml/preprocess/parser_raw.ml" +# 63163 "src/ocaml/preprocess/parser_raw.ml" in # 2907 "src/ocaml/preprocess/parser_raw.mly" ( array, d, Bracket, i, r ) -# 63176 "src/ocaml/preprocess/parser_raw.ml" +# 63169 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__5_, _startpos_array_) in @@ -63182,7 +63175,7 @@ module Tables = struct # 3070 "src/ocaml/preprocess/parser_raw.mly" ( mk_indexop_expr user_indexing_operators ~loc:_sloc _1 ) -# 63186 "src/ocaml/preprocess/parser_raw.ml" +# 63179 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -63242,7 +63235,7 @@ module Tables = struct let _2 : ( # 1073 "src/ocaml/preprocess/parser_raw.mly" (string) -# 63246 "src/ocaml/preprocess/parser_raw.ml" +# 63239 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _2 in let _2_inlined1 : (Longident.t) = Obj.magic _2_inlined1 in let _1 : unit = Obj.magic _1 in @@ -63254,12 +63247,12 @@ module Tables = struct let r = # 3069 "src/ocaml/preprocess/parser_raw.mly" ( None ) -# 63258 "src/ocaml/preprocess/parser_raw.ml" +# 63251 "src/ocaml/preprocess/parser_raw.ml" in let i = # 3674 "src/ocaml/preprocess/parser_raw.mly" ( es ) -# 63263 "src/ocaml/preprocess/parser_raw.ml" +# 63256 "src/ocaml/preprocess/parser_raw.ml" in let d = let _1 = @@ -63267,24 +63260,24 @@ module Tables = struct let x = # 2919 "src/ocaml/preprocess/parser_raw.mly" (_2) -# 63271 "src/ocaml/preprocess/parser_raw.ml" +# 63264 "src/ocaml/preprocess/parser_raw.ml" in # 126 "" ( Some x ) -# 63276 "src/ocaml/preprocess/parser_raw.ml" +# 63269 "src/ocaml/preprocess/parser_raw.ml" in # 2919 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 63282 "src/ocaml/preprocess/parser_raw.ml" +# 63275 "src/ocaml/preprocess/parser_raw.ml" in # 2907 "src/ocaml/preprocess/parser_raw.mly" ( array, d, Bracket, i, r ) -# 63288 "src/ocaml/preprocess/parser_raw.ml" +# 63281 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__5_, _startpos_array_) in @@ -63294,7 +63287,7 @@ module Tables = struct # 3070 "src/ocaml/preprocess/parser_raw.mly" ( mk_indexop_expr user_indexing_operators ~loc:_sloc _1 ) -# 63298 "src/ocaml/preprocess/parser_raw.ml" +# 63291 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -63350,13 +63343,13 @@ module Tables = struct # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 63354 "src/ocaml/preprocess/parser_raw.ml" +# 63347 "src/ocaml/preprocess/parser_raw.ml" in # 3095 "src/ocaml/preprocess/parser_raw.mly" ( e.pexp_desc, (ext, attrs @ e.pexp_attributes) ) -# 63360 "src/ocaml/preprocess/parser_raw.ml" +# 63353 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -63367,7 +63360,7 @@ module Tables = struct # 3076 "src/ocaml/preprocess/parser_raw.mly" ( let desc, attrs = _1 in mkexp_attrs ~loc:_sloc desc attrs ) -# 63371 "src/ocaml/preprocess/parser_raw.ml" +# 63364 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -63418,13 +63411,13 @@ module Tables = struct # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 63422 "src/ocaml/preprocess/parser_raw.ml" +# 63415 "src/ocaml/preprocess/parser_raw.ml" in # 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 63428 "src/ocaml/preprocess/parser_raw.ml" +# 63421 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in @@ -63433,7 +63426,7 @@ module Tables = struct # 3097 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_construct (mkloc (Lident "()") (make_loc _sloc), None), _2 ) -# 63437 "src/ocaml/preprocess/parser_raw.ml" +# 63430 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__3_ in @@ -63444,7 +63437,7 @@ module Tables = struct # 3076 "src/ocaml/preprocess/parser_raw.mly" ( let desc, attrs = _1 in mkexp_attrs ~loc:_sloc desc attrs ) -# 63448 "src/ocaml/preprocess/parser_raw.ml" +# 63441 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -63496,7 +63489,7 @@ module Tables = struct # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 63500 "src/ocaml/preprocess/parser_raw.ml" +# 63493 "src/ocaml/preprocess/parser_raw.ml" in let _2 = @@ -63506,19 +63499,19 @@ module Tables = struct # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 63510 "src/ocaml/preprocess/parser_raw.ml" +# 63503 "src/ocaml/preprocess/parser_raw.ml" in # 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 63516 "src/ocaml/preprocess/parser_raw.ml" +# 63509 "src/ocaml/preprocess/parser_raw.ml" in # 3103 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_new(_3), _2 ) -# 63522 "src/ocaml/preprocess/parser_raw.ml" +# 63515 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__1_inlined3_ in @@ -63529,7 +63522,7 @@ module Tables = struct # 3076 "src/ocaml/preprocess/parser_raw.mly" ( let desc, attrs = _1 in mkexp_attrs ~loc:_sloc desc attrs ) -# 63533 "src/ocaml/preprocess/parser_raw.ml" +# 63526 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -63594,19 +63587,19 @@ module Tables = struct # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 63598 "src/ocaml/preprocess/parser_raw.ml" +# 63591 "src/ocaml/preprocess/parser_raw.ml" in # 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 63604 "src/ocaml/preprocess/parser_raw.ml" +# 63597 "src/ocaml/preprocess/parser_raw.ml" in # 3105 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_pack _4, _3 ) -# 63610 "src/ocaml/preprocess/parser_raw.ml" +# 63603 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -63617,7 +63610,7 @@ module Tables = struct # 3076 "src/ocaml/preprocess/parser_raw.mly" ( let desc, attrs = _1 in mkexp_attrs ~loc:_sloc desc attrs ) -# 63621 "src/ocaml/preprocess/parser_raw.ml" +# 63614 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -63699,7 +63692,7 @@ module Tables = struct ( let (lid, cstrs, attrs) = package_type_of_module_type _1 in let descr = Ptyp_package (lid, cstrs) in mktyp ~loc:_sloc ~attrs descr ) -# 63703 "src/ocaml/preprocess/parser_raw.ml" +# 63696 "src/ocaml/preprocess/parser_raw.ml" in let _3 = @@ -63709,13 +63702,13 @@ module Tables = struct # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 63713 "src/ocaml/preprocess/parser_raw.ml" +# 63706 "src/ocaml/preprocess/parser_raw.ml" in # 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 63719 "src/ocaml/preprocess/parser_raw.ml" +# 63712 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__7_ in @@ -63724,7 +63717,7 @@ module Tables = struct # 3107 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_constraint (ghexp ~loc:_sloc (Pexp_pack _4), Some _6, []), _3 ) -# 63728 "src/ocaml/preprocess/parser_raw.ml" +# 63721 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__7_ in @@ -63735,7 +63728,7 @@ module Tables = struct # 3076 "src/ocaml/preprocess/parser_raw.mly" ( let desc, attrs = _1 in mkexp_attrs ~loc:_sloc desc attrs ) -# 63739 "src/ocaml/preprocess/parser_raw.ml" +# 63732 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -63800,12 +63793,12 @@ module Tables = struct let _1 = # 260 "" ( List.flatten xss ) -# 63804 "src/ocaml/preprocess/parser_raw.ml" +# 63797 "src/ocaml/preprocess/parser_raw.ml" in # 2461 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 63809 "src/ocaml/preprocess/parser_raw.ml" +# 63802 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_xss_, _startpos_xss_) in @@ -63814,13 +63807,13 @@ module Tables = struct # 1290 "src/ocaml/preprocess/parser_raw.mly" ( extra_cstr _startpos _endpos _1 ) -# 63818 "src/ocaml/preprocess/parser_raw.ml" +# 63811 "src/ocaml/preprocess/parser_raw.ml" in # 2449 "src/ocaml/preprocess/parser_raw.mly" ( Cstr.mk _1 _2 ) -# 63824 "src/ocaml/preprocess/parser_raw.ml" +# 63817 "src/ocaml/preprocess/parser_raw.ml" in let _2 = @@ -63830,19 +63823,19 @@ module Tables = struct # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 63834 "src/ocaml/preprocess/parser_raw.ml" +# 63827 "src/ocaml/preprocess/parser_raw.ml" in # 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 63840 "src/ocaml/preprocess/parser_raw.ml" +# 63833 "src/ocaml/preprocess/parser_raw.ml" in # 3113 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_object _3, _2 ) -# 63846 "src/ocaml/preprocess/parser_raw.ml" +# 63839 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__4_ in @@ -63853,7 +63846,7 @@ module Tables = struct # 3076 "src/ocaml/preprocess/parser_raw.mly" ( let desc, attrs = _1 in mkexp_attrs ~loc:_sloc desc attrs ) -# 63857 "src/ocaml/preprocess/parser_raw.ml" +# 63850 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -63884,13 +63877,13 @@ module Tables = struct # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 63888 "src/ocaml/preprocess/parser_raw.ml" +# 63881 "src/ocaml/preprocess/parser_raw.ml" in # 3210 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_ident (_1) ) -# 63894 "src/ocaml/preprocess/parser_raw.ml" +# 63887 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in @@ -63899,13 +63892,13 @@ module Tables = struct # 1329 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc _1 ) -# 63903 "src/ocaml/preprocess/parser_raw.ml" +# 63896 "src/ocaml/preprocess/parser_raw.ml" in # 3079 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 63909 "src/ocaml/preprocess/parser_raw.ml" +# 63902 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -63936,13 +63929,13 @@ module Tables = struct # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 63940 "src/ocaml/preprocess/parser_raw.ml" +# 63933 "src/ocaml/preprocess/parser_raw.ml" in # 3212 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_construct(_1, None) ) -# 63946 "src/ocaml/preprocess/parser_raw.ml" +# 63939 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in @@ -63951,13 +63944,13 @@ module Tables = struct # 1329 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc _1 ) -# 63955 "src/ocaml/preprocess/parser_raw.ml" +# 63948 "src/ocaml/preprocess/parser_raw.ml" in # 3079 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 63961 "src/ocaml/preprocess/parser_raw.ml" +# 63954 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -63983,7 +63976,7 @@ module Tables = struct let _1 = # 3214 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_variant(_1, None) ) -# 63987 "src/ocaml/preprocess/parser_raw.ml" +# 63980 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in @@ -63991,13 +63984,13 @@ module Tables = struct # 1329 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc _1 ) -# 63995 "src/ocaml/preprocess/parser_raw.ml" +# 63988 "src/ocaml/preprocess/parser_raw.ml" in # 3079 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 64001 "src/ocaml/preprocess/parser_raw.ml" +# 63994 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -64025,7 +64018,7 @@ module Tables = struct let _1 : ( # 1124 "src/ocaml/preprocess/parser_raw.mly" (string) -# 64029 "src/ocaml/preprocess/parser_raw.ml" +# 64022 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -64039,13 +64032,13 @@ module Tables = struct # 1323 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 64043 "src/ocaml/preprocess/parser_raw.ml" +# 64036 "src/ocaml/preprocess/parser_raw.ml" in # 3216 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_apply(_1, [Nolabel,_2]) ) -# 64049 "src/ocaml/preprocess/parser_raw.ml" +# 64042 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__2_ in @@ -64055,13 +64048,13 @@ module Tables = struct # 1329 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc _1 ) -# 64059 "src/ocaml/preprocess/parser_raw.ml" +# 64052 "src/ocaml/preprocess/parser_raw.ml" in # 3079 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 64065 "src/ocaml/preprocess/parser_raw.ml" +# 64058 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -64096,7 +64089,7 @@ module Tables = struct let _1 = # 3217 "src/ocaml/preprocess/parser_raw.mly" ("!") -# 64100 "src/ocaml/preprocess/parser_raw.ml" +# 64093 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in @@ -64104,13 +64097,13 @@ module Tables = struct # 1323 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 64108 "src/ocaml/preprocess/parser_raw.ml" +# 64101 "src/ocaml/preprocess/parser_raw.ml" in # 3218 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_apply(_1, [Nolabel,_2]) ) -# 64114 "src/ocaml/preprocess/parser_raw.ml" +# 64107 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__2_ in @@ -64120,13 +64113,13 @@ module Tables = struct # 1329 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc _1 ) -# 64124 "src/ocaml/preprocess/parser_raw.ml" +# 64117 "src/ocaml/preprocess/parser_raw.ml" in # 3079 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 64130 "src/ocaml/preprocess/parser_raw.ml" +# 64123 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -64167,12 +64160,12 @@ module Tables = struct let _2 = # 3657 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 64171 "src/ocaml/preprocess/parser_raw.ml" +# 64164 "src/ocaml/preprocess/parser_raw.ml" in # 3220 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_override _2 ) -# 64176 "src/ocaml/preprocess/parser_raw.ml" +# 64169 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__3_ in @@ -64182,13 +64175,13 @@ module Tables = struct # 1329 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc _1 ) -# 64186 "src/ocaml/preprocess/parser_raw.ml" +# 64179 "src/ocaml/preprocess/parser_raw.ml" in # 3079 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 64192 "src/ocaml/preprocess/parser_raw.ml" +# 64185 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -64221,7 +64214,7 @@ module Tables = struct let _1 = # 3226 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_override [] ) -# 64225 "src/ocaml/preprocess/parser_raw.ml" +# 64218 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__2_ in let _endpos = _endpos__1_ in @@ -64230,13 +64223,13 @@ module Tables = struct # 1329 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc _1 ) -# 64234 "src/ocaml/preprocess/parser_raw.ml" +# 64227 "src/ocaml/preprocess/parser_raw.ml" in # 3079 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 64240 "src/ocaml/preprocess/parser_raw.ml" +# 64233 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -64282,13 +64275,13 @@ module Tables = struct # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 64286 "src/ocaml/preprocess/parser_raw.ml" +# 64279 "src/ocaml/preprocess/parser_raw.ml" in # 3228 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_field(_1, _3) ) -# 64292 "src/ocaml/preprocess/parser_raw.ml" +# 64285 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__1_inlined1_ in @@ -64298,13 +64291,13 @@ module Tables = struct # 1329 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc _1 ) -# 64302 "src/ocaml/preprocess/parser_raw.ml" +# 64295 "src/ocaml/preprocess/parser_raw.ml" in # 3079 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 64308 "src/ocaml/preprocess/parser_raw.ml" +# 64301 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -64350,13 +64343,13 @@ module Tables = struct # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 64354 "src/ocaml/preprocess/parser_raw.ml" +# 64347 "src/ocaml/preprocess/parser_raw.ml" in # 3230 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_unboxed_field(_1, _3) ) -# 64360 "src/ocaml/preprocess/parser_raw.ml" +# 64353 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__1_inlined1_ in @@ -64366,13 +64359,13 @@ module Tables = struct # 1329 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc _1 ) -# 64370 "src/ocaml/preprocess/parser_raw.ml" +# 64363 "src/ocaml/preprocess/parser_raw.ml" in # 3079 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 64376 "src/ocaml/preprocess/parser_raw.ml" +# 64369 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -64432,7 +64425,7 @@ module Tables = struct # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 64436 "src/ocaml/preprocess/parser_raw.ml" +# 64429 "src/ocaml/preprocess/parser_raw.ml" in let _loc__1_ = (_startpos__1_, _endpos__1_) in @@ -64441,13 +64434,13 @@ module Tables = struct ( let loc = make_loc _loc__1_ in let me = Mod.ident ~loc _1 in Opn.mk ~loc me ) -# 64445 "src/ocaml/preprocess/parser_raw.ml" +# 64438 "src/ocaml/preprocess/parser_raw.ml" in # 3232 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_open(od, _4) ) -# 64451 "src/ocaml/preprocess/parser_raw.ml" +# 64444 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -64457,13 +64450,13 @@ module Tables = struct # 1329 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc _1 ) -# 64461 "src/ocaml/preprocess/parser_raw.ml" +# 64454 "src/ocaml/preprocess/parser_raw.ml" in # 3079 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 64467 "src/ocaml/preprocess/parser_raw.ml" +# 64460 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -64518,7 +64511,7 @@ module Tables = struct let _4 = # 3657 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 64522 "src/ocaml/preprocess/parser_raw.ml" +# 64515 "src/ocaml/preprocess/parser_raw.ml" in let od = let _1 = @@ -64528,7 +64521,7 @@ module Tables = struct # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 64532 "src/ocaml/preprocess/parser_raw.ml" +# 64525 "src/ocaml/preprocess/parser_raw.ml" in let _loc__1_ = (_startpos__1_, _endpos__1_) in @@ -64537,7 +64530,7 @@ module Tables = struct ( let loc = make_loc _loc__1_ in let me = Mod.ident ~loc _1 in Opn.mk ~loc me ) -# 64541 "src/ocaml/preprocess/parser_raw.ml" +# 64534 "src/ocaml/preprocess/parser_raw.ml" in let _startpos_od_ = _startpos__1_ in @@ -64548,7 +64541,7 @@ module Tables = struct # 3234 "src/ocaml/preprocess/parser_raw.mly" ( (* TODO: review the location of Pexp_override *) Pexp_open(od, mkexp ~loc:_sloc (Pexp_override _4)) ) -# 64552 "src/ocaml/preprocess/parser_raw.ml" +# 64545 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -64558,13 +64551,13 @@ module Tables = struct # 1329 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc _1 ) -# 64562 "src/ocaml/preprocess/parser_raw.ml" +# 64555 "src/ocaml/preprocess/parser_raw.ml" in # 3079 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 64568 "src/ocaml/preprocess/parser_raw.ml" +# 64561 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -64597,7 +64590,7 @@ module Tables = struct let _1_inlined2 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 64601 "src/ocaml/preprocess/parser_raw.ml" +# 64594 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined2 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _1 : (Parsetree.expression) = Obj.magic _1 in @@ -64611,7 +64604,7 @@ module Tables = struct let _1 = # 5010 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 64615 "src/ocaml/preprocess/parser_raw.ml" +# 64608 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in @@ -64619,18 +64612,18 @@ module Tables = struct # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 64623 "src/ocaml/preprocess/parser_raw.ml" +# 64616 "src/ocaml/preprocess/parser_raw.ml" in let _2 = # 3204 "src/ocaml/preprocess/parser_raw.mly" ( () ) -# 64629 "src/ocaml/preprocess/parser_raw.ml" +# 64622 "src/ocaml/preprocess/parser_raw.ml" in # 3241 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_send(_1, _3) ) -# 64634 "src/ocaml/preprocess/parser_raw.ml" +# 64627 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__1_inlined2_ in @@ -64640,13 +64633,13 @@ module Tables = struct # 1329 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc _1 ) -# 64644 "src/ocaml/preprocess/parser_raw.ml" +# 64637 "src/ocaml/preprocess/parser_raw.ml" in # 3079 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 64650 "src/ocaml/preprocess/parser_raw.ml" +# 64643 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -64679,7 +64672,7 @@ module Tables = struct let _1_inlined2 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 64683 "src/ocaml/preprocess/parser_raw.ml" +# 64676 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined2 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _1 : (Parsetree.expression) = Obj.magic _1 in @@ -64693,7 +64686,7 @@ module Tables = struct let _1 = # 5010 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 64697 "src/ocaml/preprocess/parser_raw.ml" +# 64690 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in @@ -64701,18 +64694,18 @@ module Tables = struct # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 64705 "src/ocaml/preprocess/parser_raw.ml" +# 64698 "src/ocaml/preprocess/parser_raw.ml" in let _2 = # 3205 "src/ocaml/preprocess/parser_raw.mly" ( () ) -# 64711 "src/ocaml/preprocess/parser_raw.ml" +# 64704 "src/ocaml/preprocess/parser_raw.ml" in # 3241 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_send(_1, _3) ) -# 64716 "src/ocaml/preprocess/parser_raw.ml" +# 64709 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__1_inlined2_ in @@ -64722,13 +64715,13 @@ module Tables = struct # 1329 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc _1 ) -# 64726 "src/ocaml/preprocess/parser_raw.ml" +# 64719 "src/ocaml/preprocess/parser_raw.ml" in # 3079 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 64732 "src/ocaml/preprocess/parser_raw.ml" +# 64725 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -64762,7 +64755,7 @@ module Tables = struct let _1_inlined1 : ( # 1137 "src/ocaml/preprocess/parser_raw.mly" (string) -# 64766 "src/ocaml/preprocess/parser_raw.ml" +# 64759 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined1 in let _1 : (Parsetree.expression) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -64778,13 +64771,13 @@ module Tables = struct # 1323 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 64782 "src/ocaml/preprocess/parser_raw.ml" +# 64775 "src/ocaml/preprocess/parser_raw.ml" in # 3243 "src/ocaml/preprocess/parser_raw.mly" ( mkinfix _1 _2 _3 ) -# 64788 "src/ocaml/preprocess/parser_raw.ml" +# 64781 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__3_ in @@ -64794,13 +64787,13 @@ module Tables = struct # 1329 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc _1 ) -# 64798 "src/ocaml/preprocess/parser_raw.ml" +# 64791 "src/ocaml/preprocess/parser_raw.ml" in # 3079 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 64804 "src/ocaml/preprocess/parser_raw.ml" +# 64797 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -64826,7 +64819,7 @@ module Tables = struct let _1 = # 3245 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_extension _1 ) -# 64830 "src/ocaml/preprocess/parser_raw.ml" +# 64823 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in @@ -64834,13 +64827,13 @@ module Tables = struct # 1329 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc _1 ) -# 64838 "src/ocaml/preprocess/parser_raw.ml" +# 64831 "src/ocaml/preprocess/parser_raw.ml" in # 3079 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 64844 "src/ocaml/preprocess/parser_raw.ml" +# 64837 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -64866,7 +64859,7 @@ module Tables = struct let _1 = # 3247 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_hole ) -# 64870 "src/ocaml/preprocess/parser_raw.ml" +# 64863 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in @@ -64874,13 +64867,13 @@ module Tables = struct # 1329 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc _1 ) -# 64878 "src/ocaml/preprocess/parser_raw.ml" +# 64871 "src/ocaml/preprocess/parser_raw.ml" in # 3079 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 64884 "src/ocaml/preprocess/parser_raw.ml" +# 64877 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -64930,7 +64923,7 @@ module Tables = struct let _1 = # 3248 "src/ocaml/preprocess/parser_raw.mly" (Lident "()") -# 64934 "src/ocaml/preprocess/parser_raw.ml" +# 64927 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__2_ in let _endpos = _endpos__1_ in @@ -64939,7 +64932,7 @@ module Tables = struct # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 64943 "src/ocaml/preprocess/parser_raw.ml" +# 64936 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__3_, _startpos__3_) = (_endpos__2_inlined1_, _startpos__1_inlined1_) in @@ -64951,7 +64944,7 @@ module Tables = struct # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 64955 "src/ocaml/preprocess/parser_raw.ml" +# 64948 "src/ocaml/preprocess/parser_raw.ml" in let _loc__1_ = (_startpos__1_, _endpos__1_) in @@ -64960,14 +64953,14 @@ module Tables = struct ( let loc = make_loc _loc__1_ in let me = Mod.ident ~loc _1 in Opn.mk ~loc me ) -# 64964 "src/ocaml/preprocess/parser_raw.ml" +# 64957 "src/ocaml/preprocess/parser_raw.ml" in let _loc__3_ = (_startpos__3_, _endpos__3_) in # 3249 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_open(od, mkexp ~loc:(_loc__3_) (Pexp_construct(_3, None))) ) -# 64971 "src/ocaml/preprocess/parser_raw.ml" +# 64964 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__2_inlined1_ in @@ -64977,13 +64970,13 @@ module Tables = struct # 1329 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc _1 ) -# 64981 "src/ocaml/preprocess/parser_raw.ml" +# 64974 "src/ocaml/preprocess/parser_raw.ml" in # 3079 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 64987 "src/ocaml/preprocess/parser_raw.ml" +# 64980 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -65025,7 +65018,7 @@ module Tables = struct # 3255 "src/ocaml/preprocess/parser_raw.mly" ( let (exten, fields) = _2 in Pexp_record(fields, exten) ) -# 65029 "src/ocaml/preprocess/parser_raw.ml" +# 65022 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__3_ in let _endpos = _endpos__1_ in @@ -65034,13 +65027,13 @@ module Tables = struct # 1329 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc _1 ) -# 65038 "src/ocaml/preprocess/parser_raw.ml" +# 65031 "src/ocaml/preprocess/parser_raw.ml" in # 3079 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 65044 "src/ocaml/preprocess/parser_raw.ml" +# 65037 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -65082,7 +65075,7 @@ module Tables = struct # 3258 "src/ocaml/preprocess/parser_raw.mly" ( let (exten, fields) = _2 in Pexp_record_unboxed_product(fields, exten) ) -# 65086 "src/ocaml/preprocess/parser_raw.ml" +# 65079 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__3_ in let _endpos = _endpos__1_ in @@ -65091,13 +65084,13 @@ module Tables = struct # 1329 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc _1 ) -# 65095 "src/ocaml/preprocess/parser_raw.ml" +# 65088 "src/ocaml/preprocess/parser_raw.ml" in # 3079 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 65101 "src/ocaml/preprocess/parser_raw.ml" +# 65094 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -65158,7 +65151,7 @@ module Tables = struct # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 65162 "src/ocaml/preprocess/parser_raw.ml" +# 65155 "src/ocaml/preprocess/parser_raw.ml" in let _loc__1_ = (_startpos__1_, _endpos__1_) in @@ -65167,7 +65160,7 @@ module Tables = struct ( let loc = make_loc _loc__1_ in let me = Mod.ident ~loc _1 in Opn.mk ~loc me ) -# 65171 "src/ocaml/preprocess/parser_raw.ml" +# 65164 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__5_ in @@ -65176,7 +65169,7 @@ module Tables = struct ( let (exten, fields) = _4 in Pexp_open(od, mkexp ~loc:(_startpos__3_, _endpos) (Pexp_record(fields, exten))) ) -# 65180 "src/ocaml/preprocess/parser_raw.ml" +# 65173 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -65186,13 +65179,13 @@ module Tables = struct # 1329 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc _1 ) -# 65190 "src/ocaml/preprocess/parser_raw.ml" +# 65183 "src/ocaml/preprocess/parser_raw.ml" in # 3079 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 65196 "src/ocaml/preprocess/parser_raw.ml" +# 65189 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -65235,18 +65228,18 @@ module Tables = struct let _2 = # 3674 "src/ocaml/preprocess/parser_raw.mly" ( es ) -# 65239 "src/ocaml/preprocess/parser_raw.ml" +# 65232 "src/ocaml/preprocess/parser_raw.ml" in # 3173 "src/ocaml/preprocess/parser_raw.mly" ( Generic_array.Simple.Literal _2 ) -# 65244 "src/ocaml/preprocess/parser_raw.ml" +# 65237 "src/ocaml/preprocess/parser_raw.ml" in # 3184 "src/ocaml/preprocess/parser_raw.mly" ( Generic_array.Expression.Simple _1 ) -# 65250 "src/ocaml/preprocess/parser_raw.ml" +# 65243 "src/ocaml/preprocess/parser_raw.ml" in @@ -65256,7 +65249,7 @@ module Tables = struct Mutable _1 ) -# 65260 "src/ocaml/preprocess/parser_raw.ml" +# 65253 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__3_ in @@ -65266,13 +65259,13 @@ module Tables = struct # 1329 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc _1 ) -# 65270 "src/ocaml/preprocess/parser_raw.ml" +# 65263 "src/ocaml/preprocess/parser_raw.ml" in # 3079 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 65276 "src/ocaml/preprocess/parser_raw.ml" +# 65269 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -65307,12 +65300,12 @@ module Tables = struct let _1 = # 3179 "src/ocaml/preprocess/parser_raw.mly" ( Generic_array.Simple.Literal [] ) -# 65311 "src/ocaml/preprocess/parser_raw.ml" +# 65304 "src/ocaml/preprocess/parser_raw.ml" in # 3184 "src/ocaml/preprocess/parser_raw.mly" ( Generic_array.Expression.Simple _1 ) -# 65316 "src/ocaml/preprocess/parser_raw.ml" +# 65309 "src/ocaml/preprocess/parser_raw.ml" in @@ -65322,7 +65315,7 @@ module Tables = struct Mutable _1 ) -# 65326 "src/ocaml/preprocess/parser_raw.ml" +# 65319 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__2_ in @@ -65332,13 +65325,13 @@ module Tables = struct # 1329 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc _1 ) -# 65336 "src/ocaml/preprocess/parser_raw.ml" +# 65329 "src/ocaml/preprocess/parser_raw.ml" in # 3079 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 65342 "src/ocaml/preprocess/parser_raw.ml" +# 65335 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -65394,7 +65387,7 @@ module Tables = struct let _4 = # 3674 "src/ocaml/preprocess/parser_raw.mly" ( es ) -# 65398 "src/ocaml/preprocess/parser_raw.ml" +# 65391 "src/ocaml/preprocess/parser_raw.ml" in let od = let _1 = @@ -65404,7 +65397,7 @@ module Tables = struct # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 65408 "src/ocaml/preprocess/parser_raw.ml" +# 65401 "src/ocaml/preprocess/parser_raw.ml" in let _loc__1_ = (_startpos__1_, _endpos__1_) in @@ -65413,7 +65406,7 @@ module Tables = struct ( let loc = make_loc _loc__1_ in let me = Mod.ident ~loc _1 in Opn.mk ~loc me ) -# 65417 "src/ocaml/preprocess/parser_raw.ml" +# 65410 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__5_ in @@ -65421,7 +65414,7 @@ module Tables = struct # 3186 "src/ocaml/preprocess/parser_raw.mly" ( Generic_array.Expression.Opened_literal(od, _startpos__3_, _endpos, _4) ) -# 65425 "src/ocaml/preprocess/parser_raw.ml" +# 65418 "src/ocaml/preprocess/parser_raw.ml" in @@ -65431,7 +65424,7 @@ module Tables = struct Mutable _1 ) -# 65435 "src/ocaml/preprocess/parser_raw.ml" +# 65428 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -65441,13 +65434,13 @@ module Tables = struct # 1329 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc _1 ) -# 65445 "src/ocaml/preprocess/parser_raw.ml" +# 65438 "src/ocaml/preprocess/parser_raw.ml" in # 3079 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 65451 "src/ocaml/preprocess/parser_raw.ml" +# 65444 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -65501,7 +65494,7 @@ module Tables = struct # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 65505 "src/ocaml/preprocess/parser_raw.ml" +# 65498 "src/ocaml/preprocess/parser_raw.ml" in let _loc__1_ = (_startpos__1_, _endpos__1_) in @@ -65510,7 +65503,7 @@ module Tables = struct ( let loc = make_loc _loc__1_ in let me = Mod.ident ~loc _1 in Opn.mk ~loc me ) -# 65514 "src/ocaml/preprocess/parser_raw.ml" +# 65507 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__4_ in @@ -65518,7 +65511,7 @@ module Tables = struct # 3189 "src/ocaml/preprocess/parser_raw.mly" ( (* TODO: review the location of Pexp_array *) Generic_array.Expression.Opened_literal(od, _startpos__3_, _endpos, []) ) -# 65522 "src/ocaml/preprocess/parser_raw.ml" +# 65515 "src/ocaml/preprocess/parser_raw.ml" in @@ -65528,7 +65521,7 @@ module Tables = struct Mutable _1 ) -# 65532 "src/ocaml/preprocess/parser_raw.ml" +# 65525 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__4_ in @@ -65538,13 +65531,13 @@ module Tables = struct # 1329 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc _1 ) -# 65542 "src/ocaml/preprocess/parser_raw.ml" +# 65535 "src/ocaml/preprocess/parser_raw.ml" in # 3079 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 65548 "src/ocaml/preprocess/parser_raw.ml" +# 65541 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -65585,13 +65578,13 @@ module Tables = struct let _2 = # 3674 "src/ocaml/preprocess/parser_raw.mly" ( es ) -# 65589 "src/ocaml/preprocess/parser_raw.ml" +# 65582 "src/ocaml/preprocess/parser_raw.ml" in let _loc__3_ = (_startpos__3_, _endpos__3_) in # 3279 "src/ocaml/preprocess/parser_raw.mly" ( fst (mktailexp _loc__3_ _2) ) -# 65595 "src/ocaml/preprocess/parser_raw.ml" +# 65588 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__3_ in @@ -65601,13 +65594,13 @@ module Tables = struct # 1329 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc _1 ) -# 65605 "src/ocaml/preprocess/parser_raw.ml" +# 65598 "src/ocaml/preprocess/parser_raw.ml" in # 3079 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 65611 "src/ocaml/preprocess/parser_raw.ml" +# 65604 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -65674,12 +65667,12 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 65678 "src/ocaml/preprocess/parser_raw.ml" +# 65671 "src/ocaml/preprocess/parser_raw.ml" in # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 65683 "src/ocaml/preprocess/parser_raw.ml" +# 65676 "src/ocaml/preprocess/parser_raw.ml" in let _2 = @@ -65687,24 +65680,24 @@ module Tables = struct let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 65691 "src/ocaml/preprocess/parser_raw.ml" +# 65684 "src/ocaml/preprocess/parser_raw.ml" in # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 65696 "src/ocaml/preprocess/parser_raw.ml" +# 65689 "src/ocaml/preprocess/parser_raw.ml" in # 3154 "src/ocaml/preprocess/parser_raw.mly" ( { pcomp_body = _2; pcomp_clauses = _3 } ) -# 65702 "src/ocaml/preprocess/parser_raw.ml" +# 65695 "src/ocaml/preprocess/parser_raw.ml" in # 3159 "src/ocaml/preprocess/parser_raw.mly" ( Pcomp_list_comprehension _1 ) -# 65708 "src/ocaml/preprocess/parser_raw.ml" +# 65701 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__4_ in @@ -65714,7 +65707,7 @@ module Tables = struct # 3168 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (Pexp_comprehension _1) ) -# 65718 "src/ocaml/preprocess/parser_raw.ml" +# 65711 "src/ocaml/preprocess/parser_raw.ml" in let od = @@ -65725,7 +65718,7 @@ module Tables = struct # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 65729 "src/ocaml/preprocess/parser_raw.ml" +# 65722 "src/ocaml/preprocess/parser_raw.ml" in let _loc__1_ = (_startpos__1_, _endpos__1_) in @@ -65734,13 +65727,13 @@ module Tables = struct ( let loc = make_loc _loc__1_ in let me = Mod.ident ~loc _1 in Opn.mk ~loc me ) -# 65738 "src/ocaml/preprocess/parser_raw.ml" +# 65731 "src/ocaml/preprocess/parser_raw.ml" in # 3285 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_open(od, _3) ) -# 65744 "src/ocaml/preprocess/parser_raw.ml" +# 65737 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__4_ in @@ -65750,13 +65743,13 @@ module Tables = struct # 1329 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc _1 ) -# 65754 "src/ocaml/preprocess/parser_raw.ml" +# 65747 "src/ocaml/preprocess/parser_raw.ml" in # 3079 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 65760 "src/ocaml/preprocess/parser_raw.ml" +# 65753 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -65845,12 +65838,12 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 65849 "src/ocaml/preprocess/parser_raw.ml" +# 65842 "src/ocaml/preprocess/parser_raw.ml" in # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 65854 "src/ocaml/preprocess/parser_raw.ml" +# 65847 "src/ocaml/preprocess/parser_raw.ml" in let _2 = @@ -65861,18 +65854,18 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 65865 "src/ocaml/preprocess/parser_raw.ml" +# 65858 "src/ocaml/preprocess/parser_raw.ml" in # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 65870 "src/ocaml/preprocess/parser_raw.ml" +# 65863 "src/ocaml/preprocess/parser_raw.ml" in # 3510 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 65876 "src/ocaml/preprocess/parser_raw.ml" +# 65869 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -65883,13 +65876,13 @@ module Tables = struct # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 65887 "src/ocaml/preprocess/parser_raw.ml" +# 65880 "src/ocaml/preprocess/parser_raw.ml" in # 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 65893 "src/ocaml/preprocess/parser_raw.ml" +# 65886 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in @@ -65909,25 +65902,25 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 65913 "src/ocaml/preprocess/parser_raw.ml" +# 65906 "src/ocaml/preprocess/parser_raw.ml" in # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 65919 "src/ocaml/preprocess/parser_raw.ml" +# 65912 "src/ocaml/preprocess/parser_raw.ml" in # 3154 "src/ocaml/preprocess/parser_raw.mly" ( { pcomp_body = _2; pcomp_clauses = _3 } ) -# 65925 "src/ocaml/preprocess/parser_raw.ml" +# 65918 "src/ocaml/preprocess/parser_raw.ml" in # 3159 "src/ocaml/preprocess/parser_raw.mly" ( Pcomp_list_comprehension _1 ) -# 65931 "src/ocaml/preprocess/parser_raw.ml" +# 65924 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__4_ in @@ -65937,7 +65930,7 @@ module Tables = struct # 3168 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (Pexp_comprehension _1) ) -# 65941 "src/ocaml/preprocess/parser_raw.ml" +# 65934 "src/ocaml/preprocess/parser_raw.ml" in let od = @@ -65948,7 +65941,7 @@ module Tables = struct # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 65952 "src/ocaml/preprocess/parser_raw.ml" +# 65945 "src/ocaml/preprocess/parser_raw.ml" in let _loc__1_ = (_startpos__1_, _endpos__1_) in @@ -65957,13 +65950,13 @@ module Tables = struct ( let loc = make_loc _loc__1_ in let me = Mod.ident ~loc _1 in Opn.mk ~loc me ) -# 65961 "src/ocaml/preprocess/parser_raw.ml" +# 65954 "src/ocaml/preprocess/parser_raw.ml" in # 3285 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_open(od, _3) ) -# 65967 "src/ocaml/preprocess/parser_raw.ml" +# 65960 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__4_ in @@ -65973,13 +65966,13 @@ module Tables = struct # 1329 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc _1 ) -# 65977 "src/ocaml/preprocess/parser_raw.ml" +# 65970 "src/ocaml/preprocess/parser_raw.ml" in # 3079 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 65983 "src/ocaml/preprocess/parser_raw.ml" +# 65976 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -66046,12 +66039,12 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 66050 "src/ocaml/preprocess/parser_raw.ml" +# 66043 "src/ocaml/preprocess/parser_raw.ml" in # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 66055 "src/ocaml/preprocess/parser_raw.ml" +# 66048 "src/ocaml/preprocess/parser_raw.ml" in let _2 = @@ -66059,24 +66052,24 @@ module Tables = struct let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 66063 "src/ocaml/preprocess/parser_raw.ml" +# 66056 "src/ocaml/preprocess/parser_raw.ml" in # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 66068 "src/ocaml/preprocess/parser_raw.ml" +# 66061 "src/ocaml/preprocess/parser_raw.ml" in # 3154 "src/ocaml/preprocess/parser_raw.mly" ( { pcomp_body = _2; pcomp_clauses = _3 } ) -# 66074 "src/ocaml/preprocess/parser_raw.ml" +# 66067 "src/ocaml/preprocess/parser_raw.ml" in # 3161 "src/ocaml/preprocess/parser_raw.mly" ( Pcomp_array_comprehension (Mutable, _1) ) -# 66080 "src/ocaml/preprocess/parser_raw.ml" +# 66073 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__4_ in @@ -66086,7 +66079,7 @@ module Tables = struct # 3168 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (Pexp_comprehension _1) ) -# 66090 "src/ocaml/preprocess/parser_raw.ml" +# 66083 "src/ocaml/preprocess/parser_raw.ml" in let od = @@ -66097,7 +66090,7 @@ module Tables = struct # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 66101 "src/ocaml/preprocess/parser_raw.ml" +# 66094 "src/ocaml/preprocess/parser_raw.ml" in let _loc__1_ = (_startpos__1_, _endpos__1_) in @@ -66106,13 +66099,13 @@ module Tables = struct ( let loc = make_loc _loc__1_ in let me = Mod.ident ~loc _1 in Opn.mk ~loc me ) -# 66110 "src/ocaml/preprocess/parser_raw.ml" +# 66103 "src/ocaml/preprocess/parser_raw.ml" in # 3285 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_open(od, _3) ) -# 66116 "src/ocaml/preprocess/parser_raw.ml" +# 66109 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__4_ in @@ -66122,13 +66115,13 @@ module Tables = struct # 1329 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc _1 ) -# 66126 "src/ocaml/preprocess/parser_raw.ml" +# 66119 "src/ocaml/preprocess/parser_raw.ml" in # 3079 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 66132 "src/ocaml/preprocess/parser_raw.ml" +# 66125 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -66217,12 +66210,12 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 66221 "src/ocaml/preprocess/parser_raw.ml" +# 66214 "src/ocaml/preprocess/parser_raw.ml" in # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 66226 "src/ocaml/preprocess/parser_raw.ml" +# 66219 "src/ocaml/preprocess/parser_raw.ml" in let _2 = @@ -66233,18 +66226,18 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 66237 "src/ocaml/preprocess/parser_raw.ml" +# 66230 "src/ocaml/preprocess/parser_raw.ml" in # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 66242 "src/ocaml/preprocess/parser_raw.ml" +# 66235 "src/ocaml/preprocess/parser_raw.ml" in # 3510 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 66248 "src/ocaml/preprocess/parser_raw.ml" +# 66241 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -66255,13 +66248,13 @@ module Tables = struct # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 66259 "src/ocaml/preprocess/parser_raw.ml" +# 66252 "src/ocaml/preprocess/parser_raw.ml" in # 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 66265 "src/ocaml/preprocess/parser_raw.ml" +# 66258 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in @@ -66281,25 +66274,25 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 66285 "src/ocaml/preprocess/parser_raw.ml" +# 66278 "src/ocaml/preprocess/parser_raw.ml" in # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 66291 "src/ocaml/preprocess/parser_raw.ml" +# 66284 "src/ocaml/preprocess/parser_raw.ml" in # 3154 "src/ocaml/preprocess/parser_raw.mly" ( { pcomp_body = _2; pcomp_clauses = _3 } ) -# 66297 "src/ocaml/preprocess/parser_raw.ml" +# 66290 "src/ocaml/preprocess/parser_raw.ml" in # 3161 "src/ocaml/preprocess/parser_raw.mly" ( Pcomp_array_comprehension (Mutable, _1) ) -# 66303 "src/ocaml/preprocess/parser_raw.ml" +# 66296 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__4_ in @@ -66309,7 +66302,7 @@ module Tables = struct # 3168 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (Pexp_comprehension _1) ) -# 66313 "src/ocaml/preprocess/parser_raw.ml" +# 66306 "src/ocaml/preprocess/parser_raw.ml" in let od = @@ -66320,7 +66313,7 @@ module Tables = struct # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 66324 "src/ocaml/preprocess/parser_raw.ml" +# 66317 "src/ocaml/preprocess/parser_raw.ml" in let _loc__1_ = (_startpos__1_, _endpos__1_) in @@ -66329,13 +66322,13 @@ module Tables = struct ( let loc = make_loc _loc__1_ in let me = Mod.ident ~loc _1 in Opn.mk ~loc me ) -# 66333 "src/ocaml/preprocess/parser_raw.ml" +# 66326 "src/ocaml/preprocess/parser_raw.ml" in # 3285 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_open(od, _3) ) -# 66339 "src/ocaml/preprocess/parser_raw.ml" +# 66332 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__4_ in @@ -66345,13 +66338,13 @@ module Tables = struct # 1329 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc _1 ) -# 66349 "src/ocaml/preprocess/parser_raw.ml" +# 66342 "src/ocaml/preprocess/parser_raw.ml" in # 3079 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 66355 "src/ocaml/preprocess/parser_raw.ml" +# 66348 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -66418,12 +66411,12 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 66422 "src/ocaml/preprocess/parser_raw.ml" +# 66415 "src/ocaml/preprocess/parser_raw.ml" in # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 66427 "src/ocaml/preprocess/parser_raw.ml" +# 66420 "src/ocaml/preprocess/parser_raw.ml" in let _2 = @@ -66431,24 +66424,24 @@ module Tables = struct let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 66435 "src/ocaml/preprocess/parser_raw.ml" +# 66428 "src/ocaml/preprocess/parser_raw.ml" in # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 66440 "src/ocaml/preprocess/parser_raw.ml" +# 66433 "src/ocaml/preprocess/parser_raw.ml" in # 3154 "src/ocaml/preprocess/parser_raw.mly" ( { pcomp_body = _2; pcomp_clauses = _3 } ) -# 66446 "src/ocaml/preprocess/parser_raw.ml" +# 66439 "src/ocaml/preprocess/parser_raw.ml" in # 3163 "src/ocaml/preprocess/parser_raw.mly" ( Pcomp_array_comprehension (Immutable, _1) ) -# 66452 "src/ocaml/preprocess/parser_raw.ml" +# 66445 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__4_ in @@ -66458,7 +66451,7 @@ module Tables = struct # 3168 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (Pexp_comprehension _1) ) -# 66462 "src/ocaml/preprocess/parser_raw.ml" +# 66455 "src/ocaml/preprocess/parser_raw.ml" in let od = @@ -66469,7 +66462,7 @@ module Tables = struct # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 66473 "src/ocaml/preprocess/parser_raw.ml" +# 66466 "src/ocaml/preprocess/parser_raw.ml" in let _loc__1_ = (_startpos__1_, _endpos__1_) in @@ -66478,13 +66471,13 @@ module Tables = struct ( let loc = make_loc _loc__1_ in let me = Mod.ident ~loc _1 in Opn.mk ~loc me ) -# 66482 "src/ocaml/preprocess/parser_raw.ml" +# 66475 "src/ocaml/preprocess/parser_raw.ml" in # 3285 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_open(od, _3) ) -# 66488 "src/ocaml/preprocess/parser_raw.ml" +# 66481 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__4_ in @@ -66494,13 +66487,13 @@ module Tables = struct # 1329 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc _1 ) -# 66498 "src/ocaml/preprocess/parser_raw.ml" +# 66491 "src/ocaml/preprocess/parser_raw.ml" in # 3079 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 66504 "src/ocaml/preprocess/parser_raw.ml" +# 66497 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -66589,12 +66582,12 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 66593 "src/ocaml/preprocess/parser_raw.ml" +# 66586 "src/ocaml/preprocess/parser_raw.ml" in # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 66598 "src/ocaml/preprocess/parser_raw.ml" +# 66591 "src/ocaml/preprocess/parser_raw.ml" in let _2 = @@ -66605,18 +66598,18 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 66609 "src/ocaml/preprocess/parser_raw.ml" +# 66602 "src/ocaml/preprocess/parser_raw.ml" in # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 66614 "src/ocaml/preprocess/parser_raw.ml" +# 66607 "src/ocaml/preprocess/parser_raw.ml" in # 3510 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 66620 "src/ocaml/preprocess/parser_raw.ml" +# 66613 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -66627,13 +66620,13 @@ module Tables = struct # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 66631 "src/ocaml/preprocess/parser_raw.ml" +# 66624 "src/ocaml/preprocess/parser_raw.ml" in # 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 66637 "src/ocaml/preprocess/parser_raw.ml" +# 66630 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in @@ -66653,25 +66646,25 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 66657 "src/ocaml/preprocess/parser_raw.ml" +# 66650 "src/ocaml/preprocess/parser_raw.ml" in # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 66663 "src/ocaml/preprocess/parser_raw.ml" +# 66656 "src/ocaml/preprocess/parser_raw.ml" in # 3154 "src/ocaml/preprocess/parser_raw.mly" ( { pcomp_body = _2; pcomp_clauses = _3 } ) -# 66669 "src/ocaml/preprocess/parser_raw.ml" +# 66662 "src/ocaml/preprocess/parser_raw.ml" in # 3163 "src/ocaml/preprocess/parser_raw.mly" ( Pcomp_array_comprehension (Immutable, _1) ) -# 66675 "src/ocaml/preprocess/parser_raw.ml" +# 66668 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__4_ in @@ -66681,7 +66674,7 @@ module Tables = struct # 3168 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (Pexp_comprehension _1) ) -# 66685 "src/ocaml/preprocess/parser_raw.ml" +# 66678 "src/ocaml/preprocess/parser_raw.ml" in let od = @@ -66692,7 +66685,7 @@ module Tables = struct # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 66696 "src/ocaml/preprocess/parser_raw.ml" +# 66689 "src/ocaml/preprocess/parser_raw.ml" in let _loc__1_ = (_startpos__1_, _endpos__1_) in @@ -66701,13 +66694,13 @@ module Tables = struct ( let loc = make_loc _loc__1_ in let me = Mod.ident ~loc _1 in Opn.mk ~loc me ) -# 66705 "src/ocaml/preprocess/parser_raw.ml" +# 66698 "src/ocaml/preprocess/parser_raw.ml" in # 3285 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_open(od, _3) ) -# 66711 "src/ocaml/preprocess/parser_raw.ml" +# 66704 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__4_ in @@ -66717,13 +66710,13 @@ module Tables = struct # 1329 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc _1 ) -# 66721 "src/ocaml/preprocess/parser_raw.ml" +# 66714 "src/ocaml/preprocess/parser_raw.ml" in # 3079 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 66727 "src/ocaml/preprocess/parser_raw.ml" +# 66720 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -66778,7 +66771,7 @@ module Tables = struct let _4 = # 3674 "src/ocaml/preprocess/parser_raw.mly" ( es ) -# 66782 "src/ocaml/preprocess/parser_raw.ml" +# 66775 "src/ocaml/preprocess/parser_raw.ml" in let od = let _1 = @@ -66788,7 +66781,7 @@ module Tables = struct # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 66792 "src/ocaml/preprocess/parser_raw.ml" +# 66785 "src/ocaml/preprocess/parser_raw.ml" in let _loc__1_ = (_startpos__1_, _endpos__1_) in @@ -66797,7 +66790,7 @@ module Tables = struct ( let loc = make_loc _loc__1_ in let me = Mod.ident ~loc _1 in Opn.mk ~loc me ) -# 66801 "src/ocaml/preprocess/parser_raw.ml" +# 66794 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__5_ in @@ -66809,7 +66802,7 @@ module Tables = struct let tail_exp, _tail_loc = mktailexp _loc__5_ _4 in mkexp ~loc:(_startpos__3_, _endpos) tail_exp in Pexp_open(od, list_exp) ) -# 66813 "src/ocaml/preprocess/parser_raw.ml" +# 66806 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -66819,13 +66812,13 @@ module Tables = struct # 1329 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc _1 ) -# 66823 "src/ocaml/preprocess/parser_raw.ml" +# 66816 "src/ocaml/preprocess/parser_raw.ml" in # 3079 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 66829 "src/ocaml/preprocess/parser_raw.ml" +# 66822 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -66875,7 +66868,7 @@ module Tables = struct let _1 = # 3292 "src/ocaml/preprocess/parser_raw.mly" (Lident "[]") -# 66879 "src/ocaml/preprocess/parser_raw.ml" +# 66872 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__2_ in let _endpos = _endpos__1_ in @@ -66884,7 +66877,7 @@ module Tables = struct # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 66888 "src/ocaml/preprocess/parser_raw.ml" +# 66881 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__3_, _startpos__3_) = (_endpos__2_inlined1_, _startpos__1_inlined1_) in @@ -66896,7 +66889,7 @@ module Tables = struct # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 66900 "src/ocaml/preprocess/parser_raw.ml" +# 66893 "src/ocaml/preprocess/parser_raw.ml" in let _loc__1_ = (_startpos__1_, _endpos__1_) in @@ -66905,14 +66898,14 @@ module Tables = struct ( let loc = make_loc _loc__1_ in let me = Mod.ident ~loc _1 in Opn.mk ~loc me ) -# 66909 "src/ocaml/preprocess/parser_raw.ml" +# 66902 "src/ocaml/preprocess/parser_raw.ml" in let _loc__3_ = (_startpos__3_, _endpos__3_) in # 3293 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_open(od, mkexp ~loc:_loc__3_ (Pexp_construct(_3, None))) ) -# 66916 "src/ocaml/preprocess/parser_raw.ml" +# 66909 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__2_inlined1_ in @@ -66922,13 +66915,13 @@ module Tables = struct # 1329 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc _1 ) -# 66926 "src/ocaml/preprocess/parser_raw.ml" +# 66919 "src/ocaml/preprocess/parser_raw.ml" in # 3079 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 66932 "src/ocaml/preprocess/parser_raw.ml" +# 66925 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -67025,7 +67018,7 @@ module Tables = struct ( let (lid, cstrs, attrs) = package_type_of_module_type _1 in let descr = Ptyp_package (lid, cstrs) in mktyp ~loc:_sloc ~attrs descr ) -# 67029 "src/ocaml/preprocess/parser_raw.ml" +# 67022 "src/ocaml/preprocess/parser_raw.ml" in let _5 = @@ -67035,13 +67028,13 @@ module Tables = struct # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 67039 "src/ocaml/preprocess/parser_raw.ml" +# 67032 "src/ocaml/preprocess/parser_raw.ml" in # 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 67045 "src/ocaml/preprocess/parser_raw.ml" +# 67038 "src/ocaml/preprocess/parser_raw.ml" in let od = @@ -67052,7 +67045,7 @@ module Tables = struct # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 67056 "src/ocaml/preprocess/parser_raw.ml" +# 67049 "src/ocaml/preprocess/parser_raw.ml" in let _loc__1_ = (_startpos__1_, _endpos__1_) in @@ -67061,7 +67054,7 @@ module Tables = struct ( let loc = make_loc _loc__1_ in let me = Mod.ident ~loc _1 in Opn.mk ~loc me ) -# 67065 "src/ocaml/preprocess/parser_raw.ml" +# 67058 "src/ocaml/preprocess/parser_raw.ml" in let _startpos_od_ = _startpos__1_ in @@ -67074,7 +67067,7 @@ module Tables = struct mkexp_attrs ~loc:(_startpos__3_, _endpos) (Pexp_constraint (ghexp ~loc:_sloc (Pexp_pack _6), Some _8, [])) _5 in Pexp_open(od, modexp) ) -# 67078 "src/ocaml/preprocess/parser_raw.ml" +# 67071 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__9_ in @@ -67084,13 +67077,13 @@ module Tables = struct # 1329 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc _1 ) -# 67088 "src/ocaml/preprocess/parser_raw.ml" +# 67081 "src/ocaml/preprocess/parser_raw.ml" in # 3079 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 67094 "src/ocaml/preprocess/parser_raw.ml" +# 67087 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -67132,18 +67125,18 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 67136 "src/ocaml/preprocess/parser_raw.ml" +# 67129 "src/ocaml/preprocess/parser_raw.ml" in # 3633 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 67141 "src/ocaml/preprocess/parser_raw.ml" +# 67134 "src/ocaml/preprocess/parser_raw.ml" in # 3311 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_unboxed_tuple _2 ) -# 67147 "src/ocaml/preprocess/parser_raw.ml" +# 67140 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__3_ in @@ -67153,13 +67146,13 @@ module Tables = struct # 1329 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc _1 ) -# 67157 "src/ocaml/preprocess/parser_raw.ml" +# 67150 "src/ocaml/preprocess/parser_raw.ml" in # 3079 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 67163 "src/ocaml/preprocess/parser_raw.ml" +# 67156 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -67200,18 +67193,18 @@ module Tables = struct let _2 = # 3674 "src/ocaml/preprocess/parser_raw.mly" ( es ) -# 67204 "src/ocaml/preprocess/parser_raw.ml" +# 67197 "src/ocaml/preprocess/parser_raw.ml" in # 3173 "src/ocaml/preprocess/parser_raw.mly" ( Generic_array.Simple.Literal _2 ) -# 67209 "src/ocaml/preprocess/parser_raw.ml" +# 67202 "src/ocaml/preprocess/parser_raw.ml" in # 3184 "src/ocaml/preprocess/parser_raw.mly" ( Generic_array.Expression.Simple _1 ) -# 67215 "src/ocaml/preprocess/parser_raw.ml" +# 67208 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__3_ in @@ -67226,7 +67219,7 @@ module Tables = struct Immutable _1 ) -# 67230 "src/ocaml/preprocess/parser_raw.ml" +# 67223 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -67259,12 +67252,12 @@ module Tables = struct let _1 = # 3179 "src/ocaml/preprocess/parser_raw.mly" ( Generic_array.Simple.Literal [] ) -# 67263 "src/ocaml/preprocess/parser_raw.ml" +# 67256 "src/ocaml/preprocess/parser_raw.ml" in # 3184 "src/ocaml/preprocess/parser_raw.mly" ( Generic_array.Expression.Simple _1 ) -# 67268 "src/ocaml/preprocess/parser_raw.ml" +# 67261 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__2_ in @@ -67279,7 +67272,7 @@ module Tables = struct Immutable _1 ) -# 67283 "src/ocaml/preprocess/parser_raw.ml" +# 67276 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -67333,7 +67326,7 @@ module Tables = struct let _4 = # 3674 "src/ocaml/preprocess/parser_raw.mly" ( es ) -# 67337 "src/ocaml/preprocess/parser_raw.ml" +# 67330 "src/ocaml/preprocess/parser_raw.ml" in let od = let _1 = @@ -67343,7 +67336,7 @@ module Tables = struct # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 67347 "src/ocaml/preprocess/parser_raw.ml" +# 67340 "src/ocaml/preprocess/parser_raw.ml" in let _loc__1_ = (_startpos__1_, _endpos__1_) in @@ -67352,7 +67345,7 @@ module Tables = struct ( let loc = make_loc _loc__1_ in let me = Mod.ident ~loc _1 in Opn.mk ~loc me ) -# 67356 "src/ocaml/preprocess/parser_raw.ml" +# 67349 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__5_ in @@ -67360,7 +67353,7 @@ module Tables = struct # 3186 "src/ocaml/preprocess/parser_raw.mly" ( Generic_array.Expression.Opened_literal(od, _startpos__3_, _endpos, _4) ) -# 67364 "src/ocaml/preprocess/parser_raw.ml" +# 67357 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -67375,7 +67368,7 @@ module Tables = struct Immutable _1 ) -# 67379 "src/ocaml/preprocess/parser_raw.ml" +# 67372 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -67427,7 +67420,7 @@ module Tables = struct # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 67431 "src/ocaml/preprocess/parser_raw.ml" +# 67424 "src/ocaml/preprocess/parser_raw.ml" in let _loc__1_ = (_startpos__1_, _endpos__1_) in @@ -67436,7 +67429,7 @@ module Tables = struct ( let loc = make_loc _loc__1_ in let me = Mod.ident ~loc _1 in Opn.mk ~loc me ) -# 67440 "src/ocaml/preprocess/parser_raw.ml" +# 67433 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__4_ in @@ -67444,7 +67437,7 @@ module Tables = struct # 3189 "src/ocaml/preprocess/parser_raw.mly" ( (* TODO: review the location of Pexp_array *) Generic_array.Expression.Opened_literal(od, _startpos__3_, _endpos, []) ) -# 67448 "src/ocaml/preprocess/parser_raw.ml" +# 67441 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__4_ in @@ -67459,7 +67452,7 @@ module Tables = struct Immutable _1 ) -# 67463 "src/ocaml/preprocess/parser_raw.ml" +# 67456 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -67487,7 +67480,7 @@ module Tables = struct # 3090 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (Pexp_constant _1) ) -# 67491 "src/ocaml/preprocess/parser_raw.ml" +# 67484 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -67537,12 +67530,12 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 67541 "src/ocaml/preprocess/parser_raw.ml" +# 67534 "src/ocaml/preprocess/parser_raw.ml" in # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 67546 "src/ocaml/preprocess/parser_raw.ml" +# 67539 "src/ocaml/preprocess/parser_raw.ml" in let _2 = @@ -67550,24 +67543,24 @@ module Tables = struct let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 67554 "src/ocaml/preprocess/parser_raw.ml" +# 67547 "src/ocaml/preprocess/parser_raw.ml" in # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 67559 "src/ocaml/preprocess/parser_raw.ml" +# 67552 "src/ocaml/preprocess/parser_raw.ml" in # 3154 "src/ocaml/preprocess/parser_raw.mly" ( { pcomp_body = _2; pcomp_clauses = _3 } ) -# 67565 "src/ocaml/preprocess/parser_raw.ml" +# 67558 "src/ocaml/preprocess/parser_raw.ml" in # 3159 "src/ocaml/preprocess/parser_raw.mly" ( Pcomp_list_comprehension _1 ) -# 67571 "src/ocaml/preprocess/parser_raw.ml" +# 67564 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__4_ in @@ -67577,13 +67570,13 @@ module Tables = struct # 3168 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (Pexp_comprehension _1) ) -# 67581 "src/ocaml/preprocess/parser_raw.ml" +# 67574 "src/ocaml/preprocess/parser_raw.ml" in # 3091 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 67587 "src/ocaml/preprocess/parser_raw.ml" +# 67580 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -67655,12 +67648,12 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 67659 "src/ocaml/preprocess/parser_raw.ml" +# 67652 "src/ocaml/preprocess/parser_raw.ml" in # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 67664 "src/ocaml/preprocess/parser_raw.ml" +# 67657 "src/ocaml/preprocess/parser_raw.ml" in let _2 = @@ -67671,18 +67664,18 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 67675 "src/ocaml/preprocess/parser_raw.ml" +# 67668 "src/ocaml/preprocess/parser_raw.ml" in # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 67680 "src/ocaml/preprocess/parser_raw.ml" +# 67673 "src/ocaml/preprocess/parser_raw.ml" in # 3510 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 67686 "src/ocaml/preprocess/parser_raw.ml" +# 67679 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -67693,13 +67686,13 @@ module Tables = struct # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 67697 "src/ocaml/preprocess/parser_raw.ml" +# 67690 "src/ocaml/preprocess/parser_raw.ml" in # 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 67703 "src/ocaml/preprocess/parser_raw.ml" +# 67696 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in @@ -67719,25 +67712,25 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 67723 "src/ocaml/preprocess/parser_raw.ml" +# 67716 "src/ocaml/preprocess/parser_raw.ml" in # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 67729 "src/ocaml/preprocess/parser_raw.ml" +# 67722 "src/ocaml/preprocess/parser_raw.ml" in # 3154 "src/ocaml/preprocess/parser_raw.mly" ( { pcomp_body = _2; pcomp_clauses = _3 } ) -# 67735 "src/ocaml/preprocess/parser_raw.ml" +# 67728 "src/ocaml/preprocess/parser_raw.ml" in # 3159 "src/ocaml/preprocess/parser_raw.mly" ( Pcomp_list_comprehension _1 ) -# 67741 "src/ocaml/preprocess/parser_raw.ml" +# 67734 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__4_ in @@ -67747,13 +67740,13 @@ module Tables = struct # 3168 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (Pexp_comprehension _1) ) -# 67751 "src/ocaml/preprocess/parser_raw.ml" +# 67744 "src/ocaml/preprocess/parser_raw.ml" in # 3091 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 67757 "src/ocaml/preprocess/parser_raw.ml" +# 67750 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -67803,12 +67796,12 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 67807 "src/ocaml/preprocess/parser_raw.ml" +# 67800 "src/ocaml/preprocess/parser_raw.ml" in # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 67812 "src/ocaml/preprocess/parser_raw.ml" +# 67805 "src/ocaml/preprocess/parser_raw.ml" in let _2 = @@ -67816,24 +67809,24 @@ module Tables = struct let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 67820 "src/ocaml/preprocess/parser_raw.ml" +# 67813 "src/ocaml/preprocess/parser_raw.ml" in # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 67825 "src/ocaml/preprocess/parser_raw.ml" +# 67818 "src/ocaml/preprocess/parser_raw.ml" in # 3154 "src/ocaml/preprocess/parser_raw.mly" ( { pcomp_body = _2; pcomp_clauses = _3 } ) -# 67831 "src/ocaml/preprocess/parser_raw.ml" +# 67824 "src/ocaml/preprocess/parser_raw.ml" in # 3161 "src/ocaml/preprocess/parser_raw.mly" ( Pcomp_array_comprehension (Mutable, _1) ) -# 67837 "src/ocaml/preprocess/parser_raw.ml" +# 67830 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__4_ in @@ -67843,13 +67836,13 @@ module Tables = struct # 3168 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (Pexp_comprehension _1) ) -# 67847 "src/ocaml/preprocess/parser_raw.ml" +# 67840 "src/ocaml/preprocess/parser_raw.ml" in # 3091 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 67853 "src/ocaml/preprocess/parser_raw.ml" +# 67846 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -67921,12 +67914,12 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 67925 "src/ocaml/preprocess/parser_raw.ml" +# 67918 "src/ocaml/preprocess/parser_raw.ml" in # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 67930 "src/ocaml/preprocess/parser_raw.ml" +# 67923 "src/ocaml/preprocess/parser_raw.ml" in let _2 = @@ -67937,18 +67930,18 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 67941 "src/ocaml/preprocess/parser_raw.ml" +# 67934 "src/ocaml/preprocess/parser_raw.ml" in # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 67946 "src/ocaml/preprocess/parser_raw.ml" +# 67939 "src/ocaml/preprocess/parser_raw.ml" in # 3510 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 67952 "src/ocaml/preprocess/parser_raw.ml" +# 67945 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -67959,13 +67952,13 @@ module Tables = struct # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 67963 "src/ocaml/preprocess/parser_raw.ml" +# 67956 "src/ocaml/preprocess/parser_raw.ml" in # 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 67969 "src/ocaml/preprocess/parser_raw.ml" +# 67962 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in @@ -67985,25 +67978,25 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 67989 "src/ocaml/preprocess/parser_raw.ml" +# 67982 "src/ocaml/preprocess/parser_raw.ml" in # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 67995 "src/ocaml/preprocess/parser_raw.ml" +# 67988 "src/ocaml/preprocess/parser_raw.ml" in # 3154 "src/ocaml/preprocess/parser_raw.mly" ( { pcomp_body = _2; pcomp_clauses = _3 } ) -# 68001 "src/ocaml/preprocess/parser_raw.ml" +# 67994 "src/ocaml/preprocess/parser_raw.ml" in # 3161 "src/ocaml/preprocess/parser_raw.mly" ( Pcomp_array_comprehension (Mutable, _1) ) -# 68007 "src/ocaml/preprocess/parser_raw.ml" +# 68000 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__4_ in @@ -68013,13 +68006,13 @@ module Tables = struct # 3168 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (Pexp_comprehension _1) ) -# 68017 "src/ocaml/preprocess/parser_raw.ml" +# 68010 "src/ocaml/preprocess/parser_raw.ml" in # 3091 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 68023 "src/ocaml/preprocess/parser_raw.ml" +# 68016 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -68069,12 +68062,12 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 68073 "src/ocaml/preprocess/parser_raw.ml" +# 68066 "src/ocaml/preprocess/parser_raw.ml" in # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 68078 "src/ocaml/preprocess/parser_raw.ml" +# 68071 "src/ocaml/preprocess/parser_raw.ml" in let _2 = @@ -68082,24 +68075,24 @@ module Tables = struct let _1 = # 2716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 68086 "src/ocaml/preprocess/parser_raw.ml" +# 68079 "src/ocaml/preprocess/parser_raw.ml" in # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 68091 "src/ocaml/preprocess/parser_raw.ml" +# 68084 "src/ocaml/preprocess/parser_raw.ml" in # 3154 "src/ocaml/preprocess/parser_raw.mly" ( { pcomp_body = _2; pcomp_clauses = _3 } ) -# 68097 "src/ocaml/preprocess/parser_raw.ml" +# 68090 "src/ocaml/preprocess/parser_raw.ml" in # 3163 "src/ocaml/preprocess/parser_raw.mly" ( Pcomp_array_comprehension (Immutable, _1) ) -# 68103 "src/ocaml/preprocess/parser_raw.ml" +# 68096 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__4_ in @@ -68109,13 +68102,13 @@ module Tables = struct # 3168 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (Pexp_comprehension _1) ) -# 68113 "src/ocaml/preprocess/parser_raw.ml" +# 68106 "src/ocaml/preprocess/parser_raw.ml" in # 3091 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 68119 "src/ocaml/preprocess/parser_raw.ml" +# 68112 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -68187,12 +68180,12 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 68191 "src/ocaml/preprocess/parser_raw.ml" +# 68184 "src/ocaml/preprocess/parser_raw.ml" in # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 68196 "src/ocaml/preprocess/parser_raw.ml" +# 68189 "src/ocaml/preprocess/parser_raw.ml" in let _2 = @@ -68203,18 +68196,18 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 68207 "src/ocaml/preprocess/parser_raw.ml" +# 68200 "src/ocaml/preprocess/parser_raw.ml" in # 1511 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 68212 "src/ocaml/preprocess/parser_raw.ml" +# 68205 "src/ocaml/preprocess/parser_raw.ml" in # 3510 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 68218 "src/ocaml/preprocess/parser_raw.ml" +# 68211 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -68225,13 +68218,13 @@ module Tables = struct # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 68229 "src/ocaml/preprocess/parser_raw.ml" +# 68222 "src/ocaml/preprocess/parser_raw.ml" in # 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 68235 "src/ocaml/preprocess/parser_raw.ml" +# 68228 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in @@ -68251,25 +68244,25 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 68255 "src/ocaml/preprocess/parser_raw.ml" +# 68248 "src/ocaml/preprocess/parser_raw.ml" in # 2985 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 68261 "src/ocaml/preprocess/parser_raw.ml" +# 68254 "src/ocaml/preprocess/parser_raw.ml" in # 3154 "src/ocaml/preprocess/parser_raw.mly" ( { pcomp_body = _2; pcomp_clauses = _3 } ) -# 68267 "src/ocaml/preprocess/parser_raw.ml" +# 68260 "src/ocaml/preprocess/parser_raw.ml" in # 3163 "src/ocaml/preprocess/parser_raw.mly" ( Pcomp_array_comprehension (Immutable, _1) ) -# 68273 "src/ocaml/preprocess/parser_raw.ml" +# 68266 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__4_ in @@ -68279,13 +68272,13 @@ module Tables = struct # 3168 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (Pexp_comprehension _1) ) -# 68283 "src/ocaml/preprocess/parser_raw.ml" +# 68276 "src/ocaml/preprocess/parser_raw.ml" in # 3091 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 68289 "src/ocaml/preprocess/parser_raw.ml" +# 68282 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -68316,13 +68309,13 @@ module Tables = struct # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 68320 "src/ocaml/preprocess/parser_raw.ml" +# 68313 "src/ocaml/preprocess/parser_raw.ml" in # 3842 "src/ocaml/preprocess/parser_raw.mly" ( Ppat_var (_1) ) -# 68326 "src/ocaml/preprocess/parser_raw.ml" +# 68319 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in @@ -68331,13 +68324,13 @@ module Tables = struct # 1331 "src/ocaml/preprocess/parser_raw.mly" ( mkpat ~loc:_sloc _1 ) -# 68335 "src/ocaml/preprocess/parser_raw.ml" +# 68328 "src/ocaml/preprocess/parser_raw.ml" in # 3843 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 68341 "src/ocaml/preprocess/parser_raw.ml" +# 68334 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -68362,7 +68355,7 @@ module Tables = struct let _v : (Parsetree.pattern) = # 3844 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 68366 "src/ocaml/preprocess/parser_raw.ml" +# 68359 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -68404,7 +68397,7 @@ module Tables = struct # 3849 "src/ocaml/preprocess/parser_raw.mly" ( reloc_pat ~loc:_sloc _2 ) -# 68408 "src/ocaml/preprocess/parser_raw.ml" +# 68401 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -68429,7 +68422,7 @@ module Tables = struct let _v : (Parsetree.pattern) = # 3851 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 68433 "src/ocaml/preprocess/parser_raw.ml" +# 68426 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -68494,7 +68487,7 @@ module Tables = struct # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 68498 "src/ocaml/preprocess/parser_raw.ml" +# 68491 "src/ocaml/preprocess/parser_raw.ml" in let _3 = @@ -68504,13 +68497,13 @@ module Tables = struct # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 68508 "src/ocaml/preprocess/parser_raw.ml" +# 68501 "src/ocaml/preprocess/parser_raw.ml" in # 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 68514 "src/ocaml/preprocess/parser_raw.ml" +# 68507 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__5_ in @@ -68519,7 +68512,7 @@ module Tables = struct # 3853 "src/ocaml/preprocess/parser_raw.mly" ( mkpat_attrs ~loc:_sloc (Ppat_unpack _4) _3 ) -# 68523 "src/ocaml/preprocess/parser_raw.ml" +# 68516 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -68600,7 +68593,7 @@ module Tables = struct ( let (lid, cstrs, attrs) = package_type_of_module_type _1 in let descr = Ptyp_package (lid, cstrs) in mktyp ~loc:_sloc ~attrs descr ) -# 68604 "src/ocaml/preprocess/parser_raw.ml" +# 68597 "src/ocaml/preprocess/parser_raw.ml" in let _4 = @@ -68611,7 +68604,7 @@ module Tables = struct # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 68615 "src/ocaml/preprocess/parser_raw.ml" +# 68608 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__4_, _startpos__4_) = (_endpos__1_inlined3_, _startpos__1_inlined3_) in @@ -68622,13 +68615,13 @@ module Tables = struct # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 68626 "src/ocaml/preprocess/parser_raw.ml" +# 68619 "src/ocaml/preprocess/parser_raw.ml" in # 5416 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 68632 "src/ocaml/preprocess/parser_raw.ml" +# 68625 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__7_ in @@ -68640,7 +68633,7 @@ module Tables = struct ( mkpat_attrs ~loc:_sloc (Ppat_constraint(mkpat ~loc:_loc__4_ (Ppat_unpack _4), Some _6, [])) _3 ) -# 68644 "src/ocaml/preprocess/parser_raw.ml" +# 68637 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -68667,7 +68660,7 @@ module Tables = struct let _1 = # 3865 "src/ocaml/preprocess/parser_raw.mly" ( Ppat_any ) -# 68671 "src/ocaml/preprocess/parser_raw.ml" +# 68664 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in @@ -68675,19 +68668,19 @@ module Tables = struct # 1331 "src/ocaml/preprocess/parser_raw.mly" ( mkpat ~loc:_sloc _1 ) -# 68679 "src/ocaml/preprocess/parser_raw.ml" +# 68672 "src/ocaml/preprocess/parser_raw.ml" in # 3899 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 68685 "src/ocaml/preprocess/parser_raw.ml" +# 68678 "src/ocaml/preprocess/parser_raw.ml" in # 3859 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 68691 "src/ocaml/preprocess/parser_raw.ml" +# 68684 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -68728,7 +68721,7 @@ module Tables = struct let _1 = # 3867 "src/ocaml/preprocess/parser_raw.mly" ( Ppat_interval (_1, _3) ) -# 68732 "src/ocaml/preprocess/parser_raw.ml" +# 68725 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__3_ in let _endpos = _endpos__1_ in @@ -68737,19 +68730,19 @@ module Tables = struct # 1331 "src/ocaml/preprocess/parser_raw.mly" ( mkpat ~loc:_sloc _1 ) -# 68741 "src/ocaml/preprocess/parser_raw.ml" +# 68734 "src/ocaml/preprocess/parser_raw.ml" in # 3899 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 68747 "src/ocaml/preprocess/parser_raw.ml" +# 68740 "src/ocaml/preprocess/parser_raw.ml" in # 3859 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 68753 "src/ocaml/preprocess/parser_raw.ml" +# 68746 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -68781,13 +68774,13 @@ module Tables = struct # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 68785 "src/ocaml/preprocess/parser_raw.ml" +# 68778 "src/ocaml/preprocess/parser_raw.ml" in # 3869 "src/ocaml/preprocess/parser_raw.mly" ( Ppat_construct(_1, None) ) -# 68791 "src/ocaml/preprocess/parser_raw.ml" +# 68784 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in @@ -68796,19 +68789,19 @@ module Tables = struct # 1331 "src/ocaml/preprocess/parser_raw.mly" ( mkpat ~loc:_sloc _1 ) -# 68800 "src/ocaml/preprocess/parser_raw.ml" +# 68793 "src/ocaml/preprocess/parser_raw.ml" in # 3899 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 68806 "src/ocaml/preprocess/parser_raw.ml" +# 68799 "src/ocaml/preprocess/parser_raw.ml" in # 3859 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 68812 "src/ocaml/preprocess/parser_raw.ml" +# 68805 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -68835,7 +68828,7 @@ module Tables = struct let _1 = # 3871 "src/ocaml/preprocess/parser_raw.mly" ( Ppat_variant(_1, None) ) -# 68839 "src/ocaml/preprocess/parser_raw.ml" +# 68832 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in @@ -68843,19 +68836,19 @@ module Tables = struct # 1331 "src/ocaml/preprocess/parser_raw.mly" ( mkpat ~loc:_sloc _1 ) -# 68847 "src/ocaml/preprocess/parser_raw.ml" +# 68840 "src/ocaml/preprocess/parser_raw.ml" in # 3899 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 68853 "src/ocaml/preprocess/parser_raw.ml" +# 68846 "src/ocaml/preprocess/parser_raw.ml" in # 3859 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 68859 "src/ocaml/preprocess/parser_raw.ml" +# 68852 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -68895,18 +68888,18 @@ module Tables = struct # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 68899 "src/ocaml/preprocess/parser_raw.ml" +# 68892 "src/ocaml/preprocess/parser_raw.ml" in let _1 = # 3204 "src/ocaml/preprocess/parser_raw.mly" ( () ) -# 68905 "src/ocaml/preprocess/parser_raw.ml" +# 68898 "src/ocaml/preprocess/parser_raw.ml" in # 3873 "src/ocaml/preprocess/parser_raw.mly" ( Ppat_type (_2) ) -# 68910 "src/ocaml/preprocess/parser_raw.ml" +# 68903 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__1_inlined1_ in @@ -68916,19 +68909,19 @@ module Tables = struct # 1331 "src/ocaml/preprocess/parser_raw.mly" ( mkpat ~loc:_sloc _1 ) -# 68920 "src/ocaml/preprocess/parser_raw.ml" +# 68913 "src/ocaml/preprocess/parser_raw.ml" in # 3899 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 68926 "src/ocaml/preprocess/parser_raw.ml" +# 68919 "src/ocaml/preprocess/parser_raw.ml" in # 3859 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 68932 "src/ocaml/preprocess/parser_raw.ml" +# 68925 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -68968,18 +68961,18 @@ module Tables = struct # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 68972 "src/ocaml/preprocess/parser_raw.ml" +# 68965 "src/ocaml/preprocess/parser_raw.ml" in let _1 = # 3205 "src/ocaml/preprocess/parser_raw.mly" ( () ) -# 68978 "src/ocaml/preprocess/parser_raw.ml" +# 68971 "src/ocaml/preprocess/parser_raw.ml" in # 3873 "src/ocaml/preprocess/parser_raw.mly" ( Ppat_type (_2) ) -# 68983 "src/ocaml/preprocess/parser_raw.ml" +# 68976 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__1_inlined1_ in @@ -68989,19 +68982,19 @@ module Tables = struct # 1331 "src/ocaml/preprocess/parser_raw.mly" ( mkpat ~loc:_sloc _1 ) -# 68993 "src/ocaml/preprocess/parser_raw.ml" +# 68986 "src/ocaml/preprocess/parser_raw.ml" in # 3899 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 68999 "src/ocaml/preprocess/parser_raw.ml" +# 68992 "src/ocaml/preprocess/parser_raw.ml" in # 3859 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 69005 "src/ocaml/preprocess/parser_raw.ml" +# 68998 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -69047,13 +69040,13 @@ module Tables = struct # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 69051 "src/ocaml/preprocess/parser_raw.ml" +# 69044 "src/ocaml/preprocess/parser_raw.ml" in # 3875 "src/ocaml/preprocess/parser_raw.mly" ( Ppat_open(_1, _3) ) -# 69057 "src/ocaml/preprocess/parser_raw.ml" +# 69050 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__3_ in @@ -69063,19 +69056,19 @@ module Tables = struct # 1331 "src/ocaml/preprocess/parser_raw.mly" ( mkpat ~loc:_sloc _1 ) -# 69067 "src/ocaml/preprocess/parser_raw.ml" +# 69060 "src/ocaml/preprocess/parser_raw.ml" in # 3899 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 69073 "src/ocaml/preprocess/parser_raw.ml" +# 69066 "src/ocaml/preprocess/parser_raw.ml" in # 3859 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 69079 "src/ocaml/preprocess/parser_raw.ml" +# 69072 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -69126,7 +69119,7 @@ module Tables = struct let _1 = # 3876 "src/ocaml/preprocess/parser_raw.mly" (Lident "[]") -# 69130 "src/ocaml/preprocess/parser_raw.ml" +# 69123 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__2_ in let _endpos = _endpos__1_ in @@ -69135,7 +69128,7 @@ module Tables = struct # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 69139 "src/ocaml/preprocess/parser_raw.ml" +# 69132 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos__2_inlined1_ in @@ -69146,7 +69139,7 @@ module Tables = struct # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 69150 "src/ocaml/preprocess/parser_raw.ml" +# 69143 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in @@ -69155,7 +69148,7 @@ module Tables = struct # 3877 "src/ocaml/preprocess/parser_raw.mly" ( Ppat_open(_1, mkpat ~loc:_sloc (Ppat_construct(_3, None))) ) -# 69159 "src/ocaml/preprocess/parser_raw.ml" +# 69152 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__2_inlined1_ in @@ -69165,19 +69158,19 @@ module Tables = struct # 1331 "src/ocaml/preprocess/parser_raw.mly" ( mkpat ~loc:_sloc _1 ) -# 69169 "src/ocaml/preprocess/parser_raw.ml" +# 69162 "src/ocaml/preprocess/parser_raw.ml" in # 3899 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 69175 "src/ocaml/preprocess/parser_raw.ml" +# 69168 "src/ocaml/preprocess/parser_raw.ml" in # 3859 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 69181 "src/ocaml/preprocess/parser_raw.ml" +# 69174 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -69228,7 +69221,7 @@ module Tables = struct let _1 = # 3878 "src/ocaml/preprocess/parser_raw.mly" (Lident "()") -# 69232 "src/ocaml/preprocess/parser_raw.ml" +# 69225 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__2_ in let _endpos = _endpos__1_ in @@ -69237,7 +69230,7 @@ module Tables = struct # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 69241 "src/ocaml/preprocess/parser_raw.ml" +# 69234 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos__2_inlined1_ in @@ -69248,7 +69241,7 @@ module Tables = struct # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 69252 "src/ocaml/preprocess/parser_raw.ml" +# 69245 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in @@ -69257,7 +69250,7 @@ module Tables = struct # 3879 "src/ocaml/preprocess/parser_raw.mly" ( Ppat_open(_1, mkpat ~loc:_sloc (Ppat_construct(_3, None))) ) -# 69261 "src/ocaml/preprocess/parser_raw.ml" +# 69254 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__2_inlined1_ in @@ -69267,19 +69260,19 @@ module Tables = struct # 1331 "src/ocaml/preprocess/parser_raw.mly" ( mkpat ~loc:_sloc _1 ) -# 69271 "src/ocaml/preprocess/parser_raw.ml" +# 69264 "src/ocaml/preprocess/parser_raw.ml" in # 3899 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 69277 "src/ocaml/preprocess/parser_raw.ml" +# 69270 "src/ocaml/preprocess/parser_raw.ml" in # 3859 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 69283 "src/ocaml/preprocess/parser_raw.ml" +# 69276 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -69339,13 +69332,13 @@ module Tables = struct # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 69343 "src/ocaml/preprocess/parser_raw.ml" +# 69336 "src/ocaml/preprocess/parser_raw.ml" in # 3881 "src/ocaml/preprocess/parser_raw.mly" ( Ppat_open (_1, _4) ) -# 69349 "src/ocaml/preprocess/parser_raw.ml" +# 69342 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -69355,19 +69348,19 @@ module Tables = struct # 1331 "src/ocaml/preprocess/parser_raw.mly" ( mkpat ~loc:_sloc _1 ) -# 69359 "src/ocaml/preprocess/parser_raw.ml" +# 69352 "src/ocaml/preprocess/parser_raw.ml" in # 3899 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 69365 "src/ocaml/preprocess/parser_raw.ml" +# 69358 "src/ocaml/preprocess/parser_raw.ml" in # 3859 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 69371 "src/ocaml/preprocess/parser_raw.ml" +# 69364 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -69394,7 +69387,7 @@ module Tables = struct let _1 = # 3898 "src/ocaml/preprocess/parser_raw.mly" ( Ppat_extension _1 ) -# 69398 "src/ocaml/preprocess/parser_raw.ml" +# 69391 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in @@ -69402,19 +69395,19 @@ module Tables = struct # 1331 "src/ocaml/preprocess/parser_raw.mly" ( mkpat ~loc:_sloc _1 ) -# 69406 "src/ocaml/preprocess/parser_raw.ml" +# 69399 "src/ocaml/preprocess/parser_raw.ml" in # 3899 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 69412 "src/ocaml/preprocess/parser_raw.ml" +# 69405 "src/ocaml/preprocess/parser_raw.ml" in # 3859 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 69418 "src/ocaml/preprocess/parser_raw.ml" +# 69411 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -69471,13 +69464,13 @@ module Tables = struct # 3907 "src/ocaml/preprocess/parser_raw.mly" ( mkpat_with_modes ~loc:_sloc ~pat:_2 ~cty:(Some _4) ~modes:[] ) -# 69475 "src/ocaml/preprocess/parser_raw.ml" +# 69468 "src/ocaml/preprocess/parser_raw.ml" in # 3859 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 69481 "src/ocaml/preprocess/parser_raw.ml" +# 69474 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -69505,7 +69498,7 @@ module Tables = struct # 3860 "src/ocaml/preprocess/parser_raw.mly" ( mkpat (Ppat_constant _1) ~loc:_sloc ) -# 69509 "src/ocaml/preprocess/parser_raw.ml" +# 69502 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -69526,7 +69519,7 @@ module Tables = struct let _1 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 69530 "src/ocaml/preprocess/parser_raw.ml" +# 69523 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -69534,7 +69527,7 @@ module Tables = struct let _v : (string) = # 5323 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 69538 "src/ocaml/preprocess/parser_raw.ml" +# 69531 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -69555,7 +69548,7 @@ module Tables = struct let _1 : ( # 1155 "src/ocaml/preprocess/parser_raw.mly" (string) -# 69559 "src/ocaml/preprocess/parser_raw.ml" +# 69552 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -69563,7 +69556,7 @@ module Tables = struct let _v : (string) = # 5324 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 69567 "src/ocaml/preprocess/parser_raw.ml" +# 69560 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -69588,7 +69581,7 @@ module Tables = struct let _v : (string) = # 5325 "src/ocaml/preprocess/parser_raw.mly" ( "and" ) -# 69592 "src/ocaml/preprocess/parser_raw.ml" +# 69585 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -69613,7 +69606,7 @@ module Tables = struct let _v : (string) = # 5326 "src/ocaml/preprocess/parser_raw.mly" ( "as" ) -# 69617 "src/ocaml/preprocess/parser_raw.ml" +# 69610 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -69638,7 +69631,7 @@ module Tables = struct let _v : (string) = # 5327 "src/ocaml/preprocess/parser_raw.mly" ( "assert" ) -# 69642 "src/ocaml/preprocess/parser_raw.ml" +# 69635 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -69663,7 +69656,7 @@ module Tables = struct let _v : (string) = # 5328 "src/ocaml/preprocess/parser_raw.mly" ( "begin" ) -# 69667 "src/ocaml/preprocess/parser_raw.ml" +# 69660 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -69688,7 +69681,7 @@ module Tables = struct let _v : (string) = # 5329 "src/ocaml/preprocess/parser_raw.mly" ( "class" ) -# 69692 "src/ocaml/preprocess/parser_raw.ml" +# 69685 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -69713,7 +69706,7 @@ module Tables = struct let _v : (string) = # 5330 "src/ocaml/preprocess/parser_raw.mly" ( "constraint" ) -# 69717 "src/ocaml/preprocess/parser_raw.ml" +# 69710 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -69738,7 +69731,7 @@ module Tables = struct let _v : (string) = # 5331 "src/ocaml/preprocess/parser_raw.mly" ( "do" ) -# 69742 "src/ocaml/preprocess/parser_raw.ml" +# 69735 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -69763,7 +69756,7 @@ module Tables = struct let _v : (string) = # 5332 "src/ocaml/preprocess/parser_raw.mly" ( "done" ) -# 69767 "src/ocaml/preprocess/parser_raw.ml" +# 69760 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -69788,7 +69781,7 @@ module Tables = struct let _v : (string) = # 5333 "src/ocaml/preprocess/parser_raw.mly" ( "downto" ) -# 69792 "src/ocaml/preprocess/parser_raw.ml" +# 69785 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -69813,7 +69806,7 @@ module Tables = struct let _v : (string) = # 5334 "src/ocaml/preprocess/parser_raw.mly" ( "else" ) -# 69817 "src/ocaml/preprocess/parser_raw.ml" +# 69810 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -69838,7 +69831,7 @@ module Tables = struct let _v : (string) = # 5335 "src/ocaml/preprocess/parser_raw.mly" ( "end" ) -# 69842 "src/ocaml/preprocess/parser_raw.ml" +# 69835 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -69863,7 +69856,7 @@ module Tables = struct let _v : (string) = # 5336 "src/ocaml/preprocess/parser_raw.mly" ( "exception" ) -# 69867 "src/ocaml/preprocess/parser_raw.ml" +# 69860 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -69888,7 +69881,7 @@ module Tables = struct let _v : (string) = # 5337 "src/ocaml/preprocess/parser_raw.mly" ( "external" ) -# 69892 "src/ocaml/preprocess/parser_raw.ml" +# 69885 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -69913,7 +69906,7 @@ module Tables = struct let _v : (string) = # 5338 "src/ocaml/preprocess/parser_raw.mly" ( "false" ) -# 69917 "src/ocaml/preprocess/parser_raw.ml" +# 69910 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -69938,7 +69931,7 @@ module Tables = struct let _v : (string) = # 5339 "src/ocaml/preprocess/parser_raw.mly" ( "for" ) -# 69942 "src/ocaml/preprocess/parser_raw.ml" +# 69935 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -69963,7 +69956,7 @@ module Tables = struct let _v : (string) = # 5340 "src/ocaml/preprocess/parser_raw.mly" ( "fun" ) -# 69967 "src/ocaml/preprocess/parser_raw.ml" +# 69960 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -69988,7 +69981,7 @@ module Tables = struct let _v : (string) = # 5341 "src/ocaml/preprocess/parser_raw.mly" ( "function" ) -# 69992 "src/ocaml/preprocess/parser_raw.ml" +# 69985 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -70013,7 +70006,7 @@ module Tables = struct let _v : (string) = # 5342 "src/ocaml/preprocess/parser_raw.mly" ( "functor" ) -# 70017 "src/ocaml/preprocess/parser_raw.ml" +# 70010 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -70038,7 +70031,7 @@ module Tables = struct let _v : (string) = # 5343 "src/ocaml/preprocess/parser_raw.mly" ( "if" ) -# 70042 "src/ocaml/preprocess/parser_raw.ml" +# 70035 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -70063,7 +70056,7 @@ module Tables = struct let _v : (string) = # 5344 "src/ocaml/preprocess/parser_raw.mly" ( "in" ) -# 70067 "src/ocaml/preprocess/parser_raw.ml" +# 70060 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -70088,7 +70081,7 @@ module Tables = struct let _v : (string) = # 5345 "src/ocaml/preprocess/parser_raw.mly" ( "include" ) -# 70092 "src/ocaml/preprocess/parser_raw.ml" +# 70085 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -70113,7 +70106,7 @@ module Tables = struct let _v : (string) = # 5346 "src/ocaml/preprocess/parser_raw.mly" ( "inherit" ) -# 70117 "src/ocaml/preprocess/parser_raw.ml" +# 70110 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -70138,7 +70131,7 @@ module Tables = struct let _v : (string) = # 5347 "src/ocaml/preprocess/parser_raw.mly" ( "initializer" ) -# 70142 "src/ocaml/preprocess/parser_raw.ml" +# 70135 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -70163,7 +70156,7 @@ module Tables = struct let _v : (string) = # 5348 "src/ocaml/preprocess/parser_raw.mly" ( "lazy" ) -# 70167 "src/ocaml/preprocess/parser_raw.ml" +# 70160 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -70188,7 +70181,7 @@ module Tables = struct let _v : (string) = # 5349 "src/ocaml/preprocess/parser_raw.mly" ( "let" ) -# 70192 "src/ocaml/preprocess/parser_raw.ml" +# 70185 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -70213,7 +70206,7 @@ module Tables = struct let _v : (string) = # 5350 "src/ocaml/preprocess/parser_raw.mly" ( "local_" ) -# 70217 "src/ocaml/preprocess/parser_raw.ml" +# 70210 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -70238,7 +70231,7 @@ module Tables = struct let _v : (string) = # 5351 "src/ocaml/preprocess/parser_raw.mly" ( "match" ) -# 70242 "src/ocaml/preprocess/parser_raw.ml" +# 70235 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -70263,7 +70256,7 @@ module Tables = struct let _v : (string) = # 5352 "src/ocaml/preprocess/parser_raw.mly" ( "method" ) -# 70267 "src/ocaml/preprocess/parser_raw.ml" +# 70260 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -70288,7 +70281,7 @@ module Tables = struct let _v : (string) = # 5353 "src/ocaml/preprocess/parser_raw.mly" ( "module" ) -# 70292 "src/ocaml/preprocess/parser_raw.ml" +# 70285 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -70313,7 +70306,7 @@ module Tables = struct let _v : (string) = # 5354 "src/ocaml/preprocess/parser_raw.mly" ( "mutable" ) -# 70317 "src/ocaml/preprocess/parser_raw.ml" +# 70310 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -70338,7 +70331,7 @@ module Tables = struct let _v : (string) = # 5355 "src/ocaml/preprocess/parser_raw.mly" ( "new" ) -# 70342 "src/ocaml/preprocess/parser_raw.ml" +# 70335 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -70363,7 +70356,7 @@ module Tables = struct let _v : (string) = # 5356 "src/ocaml/preprocess/parser_raw.mly" ( "nonrec" ) -# 70367 "src/ocaml/preprocess/parser_raw.ml" +# 70360 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -70388,7 +70381,7 @@ module Tables = struct let _v : (string) = # 5357 "src/ocaml/preprocess/parser_raw.mly" ( "object" ) -# 70392 "src/ocaml/preprocess/parser_raw.ml" +# 70385 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -70413,7 +70406,7 @@ module Tables = struct let _v : (string) = # 5358 "src/ocaml/preprocess/parser_raw.mly" ( "of" ) -# 70417 "src/ocaml/preprocess/parser_raw.ml" +# 70410 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -70438,7 +70431,7 @@ module Tables = struct let _v : (string) = # 5359 "src/ocaml/preprocess/parser_raw.mly" ( "open" ) -# 70442 "src/ocaml/preprocess/parser_raw.ml" +# 70435 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -70463,7 +70456,7 @@ module Tables = struct let _v : (string) = # 5360 "src/ocaml/preprocess/parser_raw.mly" ( "or" ) -# 70467 "src/ocaml/preprocess/parser_raw.ml" +# 70460 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -70488,7 +70481,7 @@ module Tables = struct let _v : (string) = # 5361 "src/ocaml/preprocess/parser_raw.mly" ( "private" ) -# 70492 "src/ocaml/preprocess/parser_raw.ml" +# 70485 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -70513,7 +70506,7 @@ module Tables = struct let _v : (string) = # 5362 "src/ocaml/preprocess/parser_raw.mly" ( "rec" ) -# 70517 "src/ocaml/preprocess/parser_raw.ml" +# 70510 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -70538,7 +70531,7 @@ module Tables = struct let _v : (string) = # 5363 "src/ocaml/preprocess/parser_raw.mly" ( "sig" ) -# 70542 "src/ocaml/preprocess/parser_raw.ml" +# 70535 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -70563,7 +70556,7 @@ module Tables = struct let _v : (string) = # 5364 "src/ocaml/preprocess/parser_raw.mly" ( "struct" ) -# 70567 "src/ocaml/preprocess/parser_raw.ml" +# 70560 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -70588,7 +70581,7 @@ module Tables = struct let _v : (string) = # 5365 "src/ocaml/preprocess/parser_raw.mly" ( "then" ) -# 70592 "src/ocaml/preprocess/parser_raw.ml" +# 70585 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -70613,7 +70606,7 @@ module Tables = struct let _v : (string) = # 5366 "src/ocaml/preprocess/parser_raw.mly" ( "to" ) -# 70617 "src/ocaml/preprocess/parser_raw.ml" +# 70610 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -70638,7 +70631,7 @@ module Tables = struct let _v : (string) = # 5367 "src/ocaml/preprocess/parser_raw.mly" ( "true" ) -# 70642 "src/ocaml/preprocess/parser_raw.ml" +# 70635 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -70663,7 +70656,7 @@ module Tables = struct let _v : (string) = # 5368 "src/ocaml/preprocess/parser_raw.mly" ( "try" ) -# 70667 "src/ocaml/preprocess/parser_raw.ml" +# 70660 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -70688,7 +70681,7 @@ module Tables = struct let _v : (string) = # 5369 "src/ocaml/preprocess/parser_raw.mly" ( "type" ) -# 70692 "src/ocaml/preprocess/parser_raw.ml" +# 70685 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -70713,7 +70706,7 @@ module Tables = struct let _v : (string) = # 5370 "src/ocaml/preprocess/parser_raw.mly" ( "val" ) -# 70717 "src/ocaml/preprocess/parser_raw.ml" +# 70710 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -70738,7 +70731,7 @@ module Tables = struct let _v : (string) = # 5371 "src/ocaml/preprocess/parser_raw.mly" ( "virtual" ) -# 70742 "src/ocaml/preprocess/parser_raw.ml" +# 70735 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -70763,7 +70756,7 @@ module Tables = struct let _v : (string) = # 5372 "src/ocaml/preprocess/parser_raw.mly" ( "when" ) -# 70767 "src/ocaml/preprocess/parser_raw.ml" +# 70760 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -70788,7 +70781,7 @@ module Tables = struct let _v : (string) = # 5373 "src/ocaml/preprocess/parser_raw.mly" ( "while" ) -# 70792 "src/ocaml/preprocess/parser_raw.ml" +# 70785 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -70813,7 +70806,7 @@ module Tables = struct let _v : (string) = # 5374 "src/ocaml/preprocess/parser_raw.mly" ( "with" ) -# 70817 "src/ocaml/preprocess/parser_raw.ml" +# 70810 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -70838,7 +70831,7 @@ module Tables = struct let _v : (Parsetree.type_exception * string Location.loc option) = # 4294 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 70842 "src/ocaml/preprocess/parser_raw.ml" +# 70835 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -70914,7 +70907,7 @@ module Tables = struct # 5399 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 70918 "src/ocaml/preprocess/parser_raw.ml" +# 70911 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_attrs_ = _endpos__1_inlined5_ in @@ -70923,7 +70916,7 @@ module Tables = struct # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 70927 "src/ocaml/preprocess/parser_raw.ml" +# 70920 "src/ocaml/preprocess/parser_raw.ml" in let lid = @@ -70934,7 +70927,7 @@ module Tables = struct # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 70938 "src/ocaml/preprocess/parser_raw.ml" +# 70931 "src/ocaml/preprocess/parser_raw.ml" in let id = @@ -70945,7 +70938,7 @@ module Tables = struct # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 70949 "src/ocaml/preprocess/parser_raw.ml" +# 70942 "src/ocaml/preprocess/parser_raw.ml" in let attrs1 = @@ -70953,7 +70946,7 @@ module Tables = struct # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 70957 "src/ocaml/preprocess/parser_raw.ml" +# 70950 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_attrs_ in @@ -70966,7 +70959,7 @@ module Tables = struct Te.mk_exception ~attrs (Te.rebind id lid ~attrs:(attrs1 @ attrs2) ~loc ~docs) , ext ) -# 70970 "src/ocaml/preprocess/parser_raw.ml" +# 70963 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -70998,7 +70991,7 @@ module Tables = struct let _v : (Parsetree.modes -> Parsetree.expression) = # 3473 "src/ocaml/preprocess/parser_raw.mly" ( fun _ -> _2 ) -# 71002 "src/ocaml/preprocess/parser_raw.ml" +# 70995 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -71060,7 +71053,7 @@ module Tables = struct { exp with pexp_loc = { exp.pexp_loc with loc_ghost = true } } ) -# 71064 "src/ocaml/preprocess/parser_raw.ml" +# 71057 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -71137,7 +71130,7 @@ module Tables = struct let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 71141 "src/ocaml/preprocess/parser_raw.ml" +# 71134 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = @@ -71148,24 +71141,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 71152 "src/ocaml/preprocess/parser_raw.ml" +# 71145 "src/ocaml/preprocess/parser_raw.ml" in # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 71157 "src/ocaml/preprocess/parser_raw.ml" +# 71150 "src/ocaml/preprocess/parser_raw.ml" in # 4481 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 71163 "src/ocaml/preprocess/parser_raw.ml" +# 71156 "src/ocaml/preprocess/parser_raw.ml" in # 4732 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 71169 "src/ocaml/preprocess/parser_raw.ml" +# 71162 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -71175,27 +71168,27 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 71179 "src/ocaml/preprocess/parser_raw.ml" +# 71172 "src/ocaml/preprocess/parser_raw.ml" in # 4734 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 71185 "src/ocaml/preprocess/parser_raw.ml" +# 71178 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 71192 "src/ocaml/preprocess/parser_raw.ml" +# 71185 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 71199 "src/ocaml/preprocess/parser_raw.ml" +# 71192 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -71204,26 +71197,26 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 71208 "src/ocaml/preprocess/parser_raw.ml" +# 71201 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = # 4637 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 71215 "src/ocaml/preprocess/parser_raw.ml" +# 71208 "src/ocaml/preprocess/parser_raw.ml" in # 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 71220 "src/ocaml/preprocess/parser_raw.ml" +# 71213 "src/ocaml/preprocess/parser_raw.ml" in # 4566 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in Ptyp_arrow(label, domain , codomain, arg_modes, []) ) -# 71227 "src/ocaml/preprocess/parser_raw.ml" +# 71220 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in @@ -71233,13 +71226,13 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 71237 "src/ocaml/preprocess/parser_raw.ml" +# 71230 "src/ocaml/preprocess/parser_raw.ml" in # 4569 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 71243 "src/ocaml/preprocess/parser_raw.ml" +# 71236 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -71325,7 +71318,7 @@ module Tables = struct # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 71329 "src/ocaml/preprocess/parser_raw.ml" +# 71322 "src/ocaml/preprocess/parser_raw.ml" in let ty = @@ -71337,24 +71330,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 71341 "src/ocaml/preprocess/parser_raw.ml" +# 71334 "src/ocaml/preprocess/parser_raw.ml" in # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 71346 "src/ocaml/preprocess/parser_raw.ml" +# 71339 "src/ocaml/preprocess/parser_raw.ml" in # 4481 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 71352 "src/ocaml/preprocess/parser_raw.ml" +# 71345 "src/ocaml/preprocess/parser_raw.ml" in # 4732 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 71358 "src/ocaml/preprocess/parser_raw.ml" +# 71351 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -71364,27 +71357,27 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 71368 "src/ocaml/preprocess/parser_raw.ml" +# 71361 "src/ocaml/preprocess/parser_raw.ml" in # 4734 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 71374 "src/ocaml/preprocess/parser_raw.ml" +# 71367 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 71381 "src/ocaml/preprocess/parser_raw.ml" +# 71374 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 71388 "src/ocaml/preprocess/parser_raw.ml" +# 71381 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -71393,26 +71386,26 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 71397 "src/ocaml/preprocess/parser_raw.ml" +# 71390 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = # 4637 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 71404 "src/ocaml/preprocess/parser_raw.ml" +# 71397 "src/ocaml/preprocess/parser_raw.ml" in # 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 71409 "src/ocaml/preprocess/parser_raw.ml" +# 71402 "src/ocaml/preprocess/parser_raw.ml" in # 4566 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in Ptyp_arrow(label, domain , codomain, arg_modes, []) ) -# 71416 "src/ocaml/preprocess/parser_raw.ml" +# 71409 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in @@ -71422,13 +71415,13 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 71426 "src/ocaml/preprocess/parser_raw.ml" +# 71419 "src/ocaml/preprocess/parser_raw.ml" in # 4569 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 71432 "src/ocaml/preprocess/parser_raw.ml" +# 71425 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -71477,25 +71470,25 @@ module Tables = struct let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 71481 "src/ocaml/preprocess/parser_raw.ml" +# 71474 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = # 4736 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 71487 "src/ocaml/preprocess/parser_raw.ml" +# 71480 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 71493 "src/ocaml/preprocess/parser_raw.ml" +# 71486 "src/ocaml/preprocess/parser_raw.ml" in let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 71499 "src/ocaml/preprocess/parser_raw.ml" +# 71492 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -71504,26 +71497,26 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 71508 "src/ocaml/preprocess/parser_raw.ml" +# 71501 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = # 4637 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 71515 "src/ocaml/preprocess/parser_raw.ml" +# 71508 "src/ocaml/preprocess/parser_raw.ml" in # 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 71520 "src/ocaml/preprocess/parser_raw.ml" +# 71513 "src/ocaml/preprocess/parser_raw.ml" in # 4566 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in Ptyp_arrow(label, domain , codomain, arg_modes, []) ) -# 71527 "src/ocaml/preprocess/parser_raw.ml" +# 71520 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in @@ -71533,13 +71526,13 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 71537 "src/ocaml/preprocess/parser_raw.ml" +# 71530 "src/ocaml/preprocess/parser_raw.ml" in # 4569 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 71543 "src/ocaml/preprocess/parser_raw.ml" +# 71536 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -71595,25 +71588,25 @@ module Tables = struct let m1 = # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 71599 "src/ocaml/preprocess/parser_raw.ml" +# 71592 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = # 4736 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 71605 "src/ocaml/preprocess/parser_raw.ml" +# 71598 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 71611 "src/ocaml/preprocess/parser_raw.ml" +# 71604 "src/ocaml/preprocess/parser_raw.ml" in let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 71617 "src/ocaml/preprocess/parser_raw.ml" +# 71610 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -71622,26 +71615,26 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 71626 "src/ocaml/preprocess/parser_raw.ml" +# 71619 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = # 4637 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 71633 "src/ocaml/preprocess/parser_raw.ml" +# 71626 "src/ocaml/preprocess/parser_raw.ml" in # 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 71638 "src/ocaml/preprocess/parser_raw.ml" +# 71631 "src/ocaml/preprocess/parser_raw.ml" in # 4566 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in Ptyp_arrow(label, domain , codomain, arg_modes, []) ) -# 71645 "src/ocaml/preprocess/parser_raw.ml" +# 71638 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in @@ -71651,13 +71644,13 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 71655 "src/ocaml/preprocess/parser_raw.ml" +# 71648 "src/ocaml/preprocess/parser_raw.ml" in # 4569 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 71661 "src/ocaml/preprocess/parser_raw.ml" +# 71654 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -71741,7 +71734,7 @@ module Tables = struct let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 71745 "src/ocaml/preprocess/parser_raw.ml" +# 71738 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _startpos__1_ = _startpos__1_inlined1_ in @@ -71753,24 +71746,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 71757 "src/ocaml/preprocess/parser_raw.ml" +# 71750 "src/ocaml/preprocess/parser_raw.ml" in # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 71762 "src/ocaml/preprocess/parser_raw.ml" +# 71755 "src/ocaml/preprocess/parser_raw.ml" in # 4481 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 71768 "src/ocaml/preprocess/parser_raw.ml" +# 71761 "src/ocaml/preprocess/parser_raw.ml" in # 4732 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 71774 "src/ocaml/preprocess/parser_raw.ml" +# 71767 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -71780,20 +71773,20 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 71784 "src/ocaml/preprocess/parser_raw.ml" +# 71777 "src/ocaml/preprocess/parser_raw.ml" in # 4734 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 71790 "src/ocaml/preprocess/parser_raw.ml" +# 71783 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 71797 "src/ocaml/preprocess/parser_raw.ml" +# 71790 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in @@ -71801,12 +71794,12 @@ module Tables = struct let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 71805 "src/ocaml/preprocess/parser_raw.ml" +# 71798 "src/ocaml/preprocess/parser_raw.ml" in # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 71810 "src/ocaml/preprocess/parser_raw.ml" +# 71803 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -71816,26 +71809,26 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 71820 "src/ocaml/preprocess/parser_raw.ml" +# 71813 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = # 4637 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 71827 "src/ocaml/preprocess/parser_raw.ml" +# 71820 "src/ocaml/preprocess/parser_raw.ml" in # 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 71832 "src/ocaml/preprocess/parser_raw.ml" +# 71825 "src/ocaml/preprocess/parser_raw.ml" in # 4566 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in Ptyp_arrow(label, domain , codomain, arg_modes, []) ) -# 71839 "src/ocaml/preprocess/parser_raw.ml" +# 71832 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in @@ -71845,13 +71838,13 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 71849 "src/ocaml/preprocess/parser_raw.ml" +# 71842 "src/ocaml/preprocess/parser_raw.ml" in # 4569 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 71855 "src/ocaml/preprocess/parser_raw.ml" +# 71848 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -71944,7 +71937,7 @@ module Tables = struct # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 71948 "src/ocaml/preprocess/parser_raw.ml" +# 71941 "src/ocaml/preprocess/parser_raw.ml" in let ty = @@ -71957,24 +71950,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 71961 "src/ocaml/preprocess/parser_raw.ml" +# 71954 "src/ocaml/preprocess/parser_raw.ml" in # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 71966 "src/ocaml/preprocess/parser_raw.ml" +# 71959 "src/ocaml/preprocess/parser_raw.ml" in # 4481 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 71972 "src/ocaml/preprocess/parser_raw.ml" +# 71965 "src/ocaml/preprocess/parser_raw.ml" in # 4732 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 71978 "src/ocaml/preprocess/parser_raw.ml" +# 71971 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -71984,20 +71977,20 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 71988 "src/ocaml/preprocess/parser_raw.ml" +# 71981 "src/ocaml/preprocess/parser_raw.ml" in # 4734 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 71994 "src/ocaml/preprocess/parser_raw.ml" +# 71987 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 72001 "src/ocaml/preprocess/parser_raw.ml" +# 71994 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in @@ -72005,12 +71998,12 @@ module Tables = struct let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 72009 "src/ocaml/preprocess/parser_raw.ml" +# 72002 "src/ocaml/preprocess/parser_raw.ml" in # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 72014 "src/ocaml/preprocess/parser_raw.ml" +# 72007 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -72020,26 +72013,26 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 72024 "src/ocaml/preprocess/parser_raw.ml" +# 72017 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = # 4637 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 72031 "src/ocaml/preprocess/parser_raw.ml" +# 72024 "src/ocaml/preprocess/parser_raw.ml" in # 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 72036 "src/ocaml/preprocess/parser_raw.ml" +# 72029 "src/ocaml/preprocess/parser_raw.ml" in # 4566 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in Ptyp_arrow(label, domain , codomain, arg_modes, []) ) -# 72043 "src/ocaml/preprocess/parser_raw.ml" +# 72036 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in @@ -72049,13 +72042,13 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 72053 "src/ocaml/preprocess/parser_raw.ml" +# 72046 "src/ocaml/preprocess/parser_raw.ml" in # 4569 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 72059 "src/ocaml/preprocess/parser_raw.ml" +# 72052 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -72111,31 +72104,31 @@ module Tables = struct let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 72115 "src/ocaml/preprocess/parser_raw.ml" +# 72108 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = # 4736 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 72121 "src/ocaml/preprocess/parser_raw.ml" +# 72114 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 72127 "src/ocaml/preprocess/parser_raw.ml" +# 72120 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 72134 "src/ocaml/preprocess/parser_raw.ml" +# 72127 "src/ocaml/preprocess/parser_raw.ml" in # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 72139 "src/ocaml/preprocess/parser_raw.ml" +# 72132 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -72145,26 +72138,26 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 72149 "src/ocaml/preprocess/parser_raw.ml" +# 72142 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = # 4637 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 72156 "src/ocaml/preprocess/parser_raw.ml" +# 72149 "src/ocaml/preprocess/parser_raw.ml" in # 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 72161 "src/ocaml/preprocess/parser_raw.ml" +# 72154 "src/ocaml/preprocess/parser_raw.ml" in # 4566 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in Ptyp_arrow(label, domain , codomain, arg_modes, []) ) -# 72168 "src/ocaml/preprocess/parser_raw.ml" +# 72161 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in @@ -72174,13 +72167,13 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 72178 "src/ocaml/preprocess/parser_raw.ml" +# 72171 "src/ocaml/preprocess/parser_raw.ml" in # 4569 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 72184 "src/ocaml/preprocess/parser_raw.ml" +# 72177 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -72245,32 +72238,32 @@ module Tables = struct # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 72249 "src/ocaml/preprocess/parser_raw.ml" +# 72242 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = # 4736 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 72256 "src/ocaml/preprocess/parser_raw.ml" +# 72249 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 72262 "src/ocaml/preprocess/parser_raw.ml" +# 72255 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 72269 "src/ocaml/preprocess/parser_raw.ml" +# 72262 "src/ocaml/preprocess/parser_raw.ml" in # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 72274 "src/ocaml/preprocess/parser_raw.ml" +# 72267 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -72280,26 +72273,26 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 72284 "src/ocaml/preprocess/parser_raw.ml" +# 72277 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = # 4637 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 72291 "src/ocaml/preprocess/parser_raw.ml" +# 72284 "src/ocaml/preprocess/parser_raw.ml" in # 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 72296 "src/ocaml/preprocess/parser_raw.ml" +# 72289 "src/ocaml/preprocess/parser_raw.ml" in # 4566 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in Ptyp_arrow(label, domain , codomain, arg_modes, []) ) -# 72303 "src/ocaml/preprocess/parser_raw.ml" +# 72296 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in @@ -72309,13 +72302,13 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 72313 "src/ocaml/preprocess/parser_raw.ml" +# 72306 "src/ocaml/preprocess/parser_raw.ml" in # 4569 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 72319 "src/ocaml/preprocess/parser_raw.ml" +# 72312 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -72392,7 +72385,7 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 72396 "src/ocaml/preprocess/parser_raw.ml" +# 72389 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -72403,7 +72396,7 @@ module Tables = struct let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 72407 "src/ocaml/preprocess/parser_raw.ml" +# 72400 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = @@ -72414,24 +72407,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 72418 "src/ocaml/preprocess/parser_raw.ml" +# 72411 "src/ocaml/preprocess/parser_raw.ml" in # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 72423 "src/ocaml/preprocess/parser_raw.ml" +# 72416 "src/ocaml/preprocess/parser_raw.ml" in # 4481 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 72429 "src/ocaml/preprocess/parser_raw.ml" +# 72422 "src/ocaml/preprocess/parser_raw.ml" in # 4732 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 72435 "src/ocaml/preprocess/parser_raw.ml" +# 72428 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -72441,27 +72434,27 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 72445 "src/ocaml/preprocess/parser_raw.ml" +# 72438 "src/ocaml/preprocess/parser_raw.ml" in # 4734 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 72451 "src/ocaml/preprocess/parser_raw.ml" +# 72444 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 72458 "src/ocaml/preprocess/parser_raw.ml" +# 72451 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 72465 "src/ocaml/preprocess/parser_raw.ml" +# 72458 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -72470,26 +72463,26 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 72474 "src/ocaml/preprocess/parser_raw.ml" +# 72467 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = # 4639 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 72481 "src/ocaml/preprocess/parser_raw.ml" +# 72474 "src/ocaml/preprocess/parser_raw.ml" in # 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 72486 "src/ocaml/preprocess/parser_raw.ml" +# 72479 "src/ocaml/preprocess/parser_raw.ml" in # 4566 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in Ptyp_arrow(label, domain , codomain, arg_modes, []) ) -# 72493 "src/ocaml/preprocess/parser_raw.ml" +# 72486 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in @@ -72499,13 +72492,13 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 72503 "src/ocaml/preprocess/parser_raw.ml" +# 72496 "src/ocaml/preprocess/parser_raw.ml" in # 4569 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 72509 "src/ocaml/preprocess/parser_raw.ml" +# 72502 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -72589,7 +72582,7 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 72593 "src/ocaml/preprocess/parser_raw.ml" +# 72586 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -72602,7 +72595,7 @@ module Tables = struct # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 72606 "src/ocaml/preprocess/parser_raw.ml" +# 72599 "src/ocaml/preprocess/parser_raw.ml" in let ty = @@ -72614,24 +72607,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 72618 "src/ocaml/preprocess/parser_raw.ml" +# 72611 "src/ocaml/preprocess/parser_raw.ml" in # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 72623 "src/ocaml/preprocess/parser_raw.ml" +# 72616 "src/ocaml/preprocess/parser_raw.ml" in # 4481 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 72629 "src/ocaml/preprocess/parser_raw.ml" +# 72622 "src/ocaml/preprocess/parser_raw.ml" in # 4732 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 72635 "src/ocaml/preprocess/parser_raw.ml" +# 72628 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -72641,27 +72634,27 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 72645 "src/ocaml/preprocess/parser_raw.ml" +# 72638 "src/ocaml/preprocess/parser_raw.ml" in # 4734 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 72651 "src/ocaml/preprocess/parser_raw.ml" +# 72644 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 72658 "src/ocaml/preprocess/parser_raw.ml" +# 72651 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 72665 "src/ocaml/preprocess/parser_raw.ml" +# 72658 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -72670,26 +72663,26 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 72674 "src/ocaml/preprocess/parser_raw.ml" +# 72667 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = # 4639 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 72681 "src/ocaml/preprocess/parser_raw.ml" +# 72674 "src/ocaml/preprocess/parser_raw.ml" in # 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 72686 "src/ocaml/preprocess/parser_raw.ml" +# 72679 "src/ocaml/preprocess/parser_raw.ml" in # 4566 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in Ptyp_arrow(label, domain , codomain, arg_modes, []) ) -# 72693 "src/ocaml/preprocess/parser_raw.ml" +# 72686 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in @@ -72699,13 +72692,13 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 72703 "src/ocaml/preprocess/parser_raw.ml" +# 72696 "src/ocaml/preprocess/parser_raw.ml" in # 4569 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 72709 "src/ocaml/preprocess/parser_raw.ml" +# 72702 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -72754,7 +72747,7 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 72758 "src/ocaml/preprocess/parser_raw.ml" +# 72751 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -72765,25 +72758,25 @@ module Tables = struct let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 72769 "src/ocaml/preprocess/parser_raw.ml" +# 72762 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = # 4736 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 72775 "src/ocaml/preprocess/parser_raw.ml" +# 72768 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 72781 "src/ocaml/preprocess/parser_raw.ml" +# 72774 "src/ocaml/preprocess/parser_raw.ml" in let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 72787 "src/ocaml/preprocess/parser_raw.ml" +# 72780 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -72792,26 +72785,26 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 72796 "src/ocaml/preprocess/parser_raw.ml" +# 72789 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = # 4639 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 72803 "src/ocaml/preprocess/parser_raw.ml" +# 72796 "src/ocaml/preprocess/parser_raw.ml" in # 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 72808 "src/ocaml/preprocess/parser_raw.ml" +# 72801 "src/ocaml/preprocess/parser_raw.ml" in # 4566 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in Ptyp_arrow(label, domain , codomain, arg_modes, []) ) -# 72815 "src/ocaml/preprocess/parser_raw.ml" +# 72808 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in @@ -72821,13 +72814,13 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 72825 "src/ocaml/preprocess/parser_raw.ml" +# 72818 "src/ocaml/preprocess/parser_raw.ml" in # 4569 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 72831 "src/ocaml/preprocess/parser_raw.ml" +# 72824 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -72883,7 +72876,7 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 72887 "src/ocaml/preprocess/parser_raw.ml" +# 72880 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -72894,25 +72887,25 @@ module Tables = struct let m1 = # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 72898 "src/ocaml/preprocess/parser_raw.ml" +# 72891 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = # 4736 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 72904 "src/ocaml/preprocess/parser_raw.ml" +# 72897 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 72910 "src/ocaml/preprocess/parser_raw.ml" +# 72903 "src/ocaml/preprocess/parser_raw.ml" in let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 72916 "src/ocaml/preprocess/parser_raw.ml" +# 72909 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -72921,26 +72914,26 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 72925 "src/ocaml/preprocess/parser_raw.ml" +# 72918 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = # 4639 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 72932 "src/ocaml/preprocess/parser_raw.ml" +# 72925 "src/ocaml/preprocess/parser_raw.ml" in # 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 72937 "src/ocaml/preprocess/parser_raw.ml" +# 72930 "src/ocaml/preprocess/parser_raw.ml" in # 4566 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in Ptyp_arrow(label, domain , codomain, arg_modes, []) ) -# 72944 "src/ocaml/preprocess/parser_raw.ml" +# 72937 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in @@ -72950,13 +72943,13 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 72954 "src/ocaml/preprocess/parser_raw.ml" +# 72947 "src/ocaml/preprocess/parser_raw.ml" in # 4569 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 72960 "src/ocaml/preprocess/parser_raw.ml" +# 72953 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -73040,7 +73033,7 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 73044 "src/ocaml/preprocess/parser_raw.ml" +# 73037 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -73051,7 +73044,7 @@ module Tables = struct let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 73055 "src/ocaml/preprocess/parser_raw.ml" +# 73048 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _startpos__1_ = _startpos__1_inlined1_ in @@ -73063,24 +73056,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 73067 "src/ocaml/preprocess/parser_raw.ml" +# 73060 "src/ocaml/preprocess/parser_raw.ml" in # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 73072 "src/ocaml/preprocess/parser_raw.ml" +# 73065 "src/ocaml/preprocess/parser_raw.ml" in # 4481 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 73078 "src/ocaml/preprocess/parser_raw.ml" +# 73071 "src/ocaml/preprocess/parser_raw.ml" in # 4732 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 73084 "src/ocaml/preprocess/parser_raw.ml" +# 73077 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -73090,20 +73083,20 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 73094 "src/ocaml/preprocess/parser_raw.ml" +# 73087 "src/ocaml/preprocess/parser_raw.ml" in # 4734 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 73100 "src/ocaml/preprocess/parser_raw.ml" +# 73093 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 73107 "src/ocaml/preprocess/parser_raw.ml" +# 73100 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in @@ -73111,12 +73104,12 @@ module Tables = struct let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 73115 "src/ocaml/preprocess/parser_raw.ml" +# 73108 "src/ocaml/preprocess/parser_raw.ml" in # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 73120 "src/ocaml/preprocess/parser_raw.ml" +# 73113 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -73126,26 +73119,26 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 73130 "src/ocaml/preprocess/parser_raw.ml" +# 73123 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = # 4639 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 73137 "src/ocaml/preprocess/parser_raw.ml" +# 73130 "src/ocaml/preprocess/parser_raw.ml" in # 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 73142 "src/ocaml/preprocess/parser_raw.ml" +# 73135 "src/ocaml/preprocess/parser_raw.ml" in # 4566 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in Ptyp_arrow(label, domain , codomain, arg_modes, []) ) -# 73149 "src/ocaml/preprocess/parser_raw.ml" +# 73142 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in @@ -73155,13 +73148,13 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 73159 "src/ocaml/preprocess/parser_raw.ml" +# 73152 "src/ocaml/preprocess/parser_raw.ml" in # 4569 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 73165 "src/ocaml/preprocess/parser_raw.ml" +# 73158 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -73252,7 +73245,7 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 73256 "src/ocaml/preprocess/parser_raw.ml" +# 73249 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -73265,7 +73258,7 @@ module Tables = struct # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 73269 "src/ocaml/preprocess/parser_raw.ml" +# 73262 "src/ocaml/preprocess/parser_raw.ml" in let ty = @@ -73278,24 +73271,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 73282 "src/ocaml/preprocess/parser_raw.ml" +# 73275 "src/ocaml/preprocess/parser_raw.ml" in # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 73287 "src/ocaml/preprocess/parser_raw.ml" +# 73280 "src/ocaml/preprocess/parser_raw.ml" in # 4481 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 73293 "src/ocaml/preprocess/parser_raw.ml" +# 73286 "src/ocaml/preprocess/parser_raw.ml" in # 4732 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 73299 "src/ocaml/preprocess/parser_raw.ml" +# 73292 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -73305,20 +73298,20 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 73309 "src/ocaml/preprocess/parser_raw.ml" +# 73302 "src/ocaml/preprocess/parser_raw.ml" in # 4734 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 73315 "src/ocaml/preprocess/parser_raw.ml" +# 73308 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 73322 "src/ocaml/preprocess/parser_raw.ml" +# 73315 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in @@ -73326,12 +73319,12 @@ module Tables = struct let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 73330 "src/ocaml/preprocess/parser_raw.ml" +# 73323 "src/ocaml/preprocess/parser_raw.ml" in # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 73335 "src/ocaml/preprocess/parser_raw.ml" +# 73328 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -73341,26 +73334,26 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 73345 "src/ocaml/preprocess/parser_raw.ml" +# 73338 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = # 4639 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 73352 "src/ocaml/preprocess/parser_raw.ml" +# 73345 "src/ocaml/preprocess/parser_raw.ml" in # 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 73357 "src/ocaml/preprocess/parser_raw.ml" +# 73350 "src/ocaml/preprocess/parser_raw.ml" in # 4566 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in Ptyp_arrow(label, domain , codomain, arg_modes, []) ) -# 73364 "src/ocaml/preprocess/parser_raw.ml" +# 73357 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in @@ -73370,13 +73363,13 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 73374 "src/ocaml/preprocess/parser_raw.ml" +# 73367 "src/ocaml/preprocess/parser_raw.ml" in # 4569 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 73380 "src/ocaml/preprocess/parser_raw.ml" +# 73373 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -73432,7 +73425,7 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 73436 "src/ocaml/preprocess/parser_raw.ml" +# 73429 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -73443,31 +73436,31 @@ module Tables = struct let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 73447 "src/ocaml/preprocess/parser_raw.ml" +# 73440 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = # 4736 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 73453 "src/ocaml/preprocess/parser_raw.ml" +# 73446 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 73459 "src/ocaml/preprocess/parser_raw.ml" +# 73452 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 73466 "src/ocaml/preprocess/parser_raw.ml" +# 73459 "src/ocaml/preprocess/parser_raw.ml" in # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 73471 "src/ocaml/preprocess/parser_raw.ml" +# 73464 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -73477,26 +73470,26 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 73481 "src/ocaml/preprocess/parser_raw.ml" +# 73474 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = # 4639 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 73488 "src/ocaml/preprocess/parser_raw.ml" +# 73481 "src/ocaml/preprocess/parser_raw.ml" in # 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 73493 "src/ocaml/preprocess/parser_raw.ml" +# 73486 "src/ocaml/preprocess/parser_raw.ml" in # 4566 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in Ptyp_arrow(label, domain , codomain, arg_modes, []) ) -# 73500 "src/ocaml/preprocess/parser_raw.ml" +# 73493 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in @@ -73506,13 +73499,13 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 73510 "src/ocaml/preprocess/parser_raw.ml" +# 73503 "src/ocaml/preprocess/parser_raw.ml" in # 4569 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 73516 "src/ocaml/preprocess/parser_raw.ml" +# 73509 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -73575,7 +73568,7 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 73579 "src/ocaml/preprocess/parser_raw.ml" +# 73572 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -73588,32 +73581,32 @@ module Tables = struct # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 73592 "src/ocaml/preprocess/parser_raw.ml" +# 73585 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = # 4736 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 73599 "src/ocaml/preprocess/parser_raw.ml" +# 73592 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 73605 "src/ocaml/preprocess/parser_raw.ml" +# 73598 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 73612 "src/ocaml/preprocess/parser_raw.ml" +# 73605 "src/ocaml/preprocess/parser_raw.ml" in # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 73617 "src/ocaml/preprocess/parser_raw.ml" +# 73610 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -73623,26 +73616,26 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 73627 "src/ocaml/preprocess/parser_raw.ml" +# 73620 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = # 4639 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 73634 "src/ocaml/preprocess/parser_raw.ml" +# 73627 "src/ocaml/preprocess/parser_raw.ml" in # 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 73639 "src/ocaml/preprocess/parser_raw.ml" +# 73632 "src/ocaml/preprocess/parser_raw.ml" in # 4566 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in Ptyp_arrow(label, domain , codomain, arg_modes, []) ) -# 73646 "src/ocaml/preprocess/parser_raw.ml" +# 73639 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in @@ -73652,13 +73645,13 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 73656 "src/ocaml/preprocess/parser_raw.ml" +# 73649 "src/ocaml/preprocess/parser_raw.ml" in # 4569 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 73662 "src/ocaml/preprocess/parser_raw.ml" +# 73655 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -73728,7 +73721,7 @@ module Tables = struct let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 73732 "src/ocaml/preprocess/parser_raw.ml" +# 73725 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = @@ -73739,24 +73732,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 73743 "src/ocaml/preprocess/parser_raw.ml" +# 73736 "src/ocaml/preprocess/parser_raw.ml" in # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 73748 "src/ocaml/preprocess/parser_raw.ml" +# 73741 "src/ocaml/preprocess/parser_raw.ml" in # 4481 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 73754 "src/ocaml/preprocess/parser_raw.ml" +# 73747 "src/ocaml/preprocess/parser_raw.ml" in # 4732 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 73760 "src/ocaml/preprocess/parser_raw.ml" +# 73753 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -73766,27 +73759,27 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 73770 "src/ocaml/preprocess/parser_raw.ml" +# 73763 "src/ocaml/preprocess/parser_raw.ml" in # 4734 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 73776 "src/ocaml/preprocess/parser_raw.ml" +# 73769 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 73783 "src/ocaml/preprocess/parser_raw.ml" +# 73776 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 73790 "src/ocaml/preprocess/parser_raw.ml" +# 73783 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -73795,19 +73788,19 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 73799 "src/ocaml/preprocess/parser_raw.ml" +# 73792 "src/ocaml/preprocess/parser_raw.ml" in let label = # 4646 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 73805 "src/ocaml/preprocess/parser_raw.ml" +# 73798 "src/ocaml/preprocess/parser_raw.ml" in # 4566 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in Ptyp_arrow(label, domain , codomain, arg_modes, []) ) -# 73811 "src/ocaml/preprocess/parser_raw.ml" +# 73804 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_codomain_ in @@ -73817,13 +73810,13 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 73821 "src/ocaml/preprocess/parser_raw.ml" +# 73814 "src/ocaml/preprocess/parser_raw.ml" in # 4569 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 73827 "src/ocaml/preprocess/parser_raw.ml" +# 73820 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -73902,7 +73895,7 @@ module Tables = struct # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 73906 "src/ocaml/preprocess/parser_raw.ml" +# 73899 "src/ocaml/preprocess/parser_raw.ml" in let ty = @@ -73914,24 +73907,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 73918 "src/ocaml/preprocess/parser_raw.ml" +# 73911 "src/ocaml/preprocess/parser_raw.ml" in # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 73923 "src/ocaml/preprocess/parser_raw.ml" +# 73916 "src/ocaml/preprocess/parser_raw.ml" in # 4481 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 73929 "src/ocaml/preprocess/parser_raw.ml" +# 73922 "src/ocaml/preprocess/parser_raw.ml" in # 4732 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 73935 "src/ocaml/preprocess/parser_raw.ml" +# 73928 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -73941,27 +73934,27 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 73945 "src/ocaml/preprocess/parser_raw.ml" +# 73938 "src/ocaml/preprocess/parser_raw.ml" in # 4734 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 73951 "src/ocaml/preprocess/parser_raw.ml" +# 73944 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 73958 "src/ocaml/preprocess/parser_raw.ml" +# 73951 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 73965 "src/ocaml/preprocess/parser_raw.ml" +# 73958 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -73970,19 +73963,19 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 73974 "src/ocaml/preprocess/parser_raw.ml" +# 73967 "src/ocaml/preprocess/parser_raw.ml" in let label = # 4646 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 73980 "src/ocaml/preprocess/parser_raw.ml" +# 73973 "src/ocaml/preprocess/parser_raw.ml" in # 4566 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in Ptyp_arrow(label, domain , codomain, arg_modes, []) ) -# 73986 "src/ocaml/preprocess/parser_raw.ml" +# 73979 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_codomain_ in @@ -73992,13 +73985,13 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 73996 "src/ocaml/preprocess/parser_raw.ml" +# 73989 "src/ocaml/preprocess/parser_raw.ml" in # 4569 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 74002 "src/ocaml/preprocess/parser_raw.ml" +# 73995 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -74040,25 +74033,25 @@ module Tables = struct let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 74044 "src/ocaml/preprocess/parser_raw.ml" +# 74037 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = # 4736 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 74050 "src/ocaml/preprocess/parser_raw.ml" +# 74043 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 74056 "src/ocaml/preprocess/parser_raw.ml" +# 74049 "src/ocaml/preprocess/parser_raw.ml" in let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 74062 "src/ocaml/preprocess/parser_raw.ml" +# 74055 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -74067,19 +74060,19 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 74071 "src/ocaml/preprocess/parser_raw.ml" +# 74064 "src/ocaml/preprocess/parser_raw.ml" in let label = # 4646 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 74077 "src/ocaml/preprocess/parser_raw.ml" +# 74070 "src/ocaml/preprocess/parser_raw.ml" in # 4566 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in Ptyp_arrow(label, domain , codomain, arg_modes, []) ) -# 74083 "src/ocaml/preprocess/parser_raw.ml" +# 74076 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_ty_) in @@ -74089,13 +74082,13 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 74093 "src/ocaml/preprocess/parser_raw.ml" +# 74086 "src/ocaml/preprocess/parser_raw.ml" in # 4569 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 74099 "src/ocaml/preprocess/parser_raw.ml" +# 74092 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -74144,25 +74137,25 @@ module Tables = struct let m1 = # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 74148 "src/ocaml/preprocess/parser_raw.ml" +# 74141 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = # 4736 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 74154 "src/ocaml/preprocess/parser_raw.ml" +# 74147 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 74160 "src/ocaml/preprocess/parser_raw.ml" +# 74153 "src/ocaml/preprocess/parser_raw.ml" in let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 74166 "src/ocaml/preprocess/parser_raw.ml" +# 74159 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -74171,19 +74164,19 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 74175 "src/ocaml/preprocess/parser_raw.ml" +# 74168 "src/ocaml/preprocess/parser_raw.ml" in let label = # 4646 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 74181 "src/ocaml/preprocess/parser_raw.ml" +# 74174 "src/ocaml/preprocess/parser_raw.ml" in # 4566 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in Ptyp_arrow(label, domain , codomain, arg_modes, []) ) -# 74187 "src/ocaml/preprocess/parser_raw.ml" +# 74180 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_ty_) in @@ -74193,13 +74186,13 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 74197 "src/ocaml/preprocess/parser_raw.ml" +# 74190 "src/ocaml/preprocess/parser_raw.ml" in # 4569 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 74203 "src/ocaml/preprocess/parser_raw.ml" +# 74196 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -74276,7 +74269,7 @@ module Tables = struct let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 74280 "src/ocaml/preprocess/parser_raw.ml" +# 74273 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _startpos__1_ = _startpos__1_inlined1_ in @@ -74288,24 +74281,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 74292 "src/ocaml/preprocess/parser_raw.ml" +# 74285 "src/ocaml/preprocess/parser_raw.ml" in # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 74297 "src/ocaml/preprocess/parser_raw.ml" +# 74290 "src/ocaml/preprocess/parser_raw.ml" in # 4481 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 74303 "src/ocaml/preprocess/parser_raw.ml" +# 74296 "src/ocaml/preprocess/parser_raw.ml" in # 4732 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 74309 "src/ocaml/preprocess/parser_raw.ml" +# 74302 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -74315,20 +74308,20 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 74319 "src/ocaml/preprocess/parser_raw.ml" +# 74312 "src/ocaml/preprocess/parser_raw.ml" in # 4734 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 74325 "src/ocaml/preprocess/parser_raw.ml" +# 74318 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 74332 "src/ocaml/preprocess/parser_raw.ml" +# 74325 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in @@ -74336,12 +74329,12 @@ module Tables = struct let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 74340 "src/ocaml/preprocess/parser_raw.ml" +# 74333 "src/ocaml/preprocess/parser_raw.ml" in # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 74345 "src/ocaml/preprocess/parser_raw.ml" +# 74338 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -74351,19 +74344,19 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 74355 "src/ocaml/preprocess/parser_raw.ml" +# 74348 "src/ocaml/preprocess/parser_raw.ml" in let label = # 4646 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 74361 "src/ocaml/preprocess/parser_raw.ml" +# 74354 "src/ocaml/preprocess/parser_raw.ml" in # 4566 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in Ptyp_arrow(label, domain , codomain, arg_modes, []) ) -# 74367 "src/ocaml/preprocess/parser_raw.ml" +# 74360 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_codomain_ in @@ -74373,13 +74366,13 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 74377 "src/ocaml/preprocess/parser_raw.ml" +# 74370 "src/ocaml/preprocess/parser_raw.ml" in # 4569 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 74383 "src/ocaml/preprocess/parser_raw.ml" +# 74376 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -74465,7 +74458,7 @@ module Tables = struct # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 74469 "src/ocaml/preprocess/parser_raw.ml" +# 74462 "src/ocaml/preprocess/parser_raw.ml" in let ty = @@ -74478,24 +74471,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 74482 "src/ocaml/preprocess/parser_raw.ml" +# 74475 "src/ocaml/preprocess/parser_raw.ml" in # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 74487 "src/ocaml/preprocess/parser_raw.ml" +# 74480 "src/ocaml/preprocess/parser_raw.ml" in # 4481 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 74493 "src/ocaml/preprocess/parser_raw.ml" +# 74486 "src/ocaml/preprocess/parser_raw.ml" in # 4732 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 74499 "src/ocaml/preprocess/parser_raw.ml" +# 74492 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -74505,20 +74498,20 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 74509 "src/ocaml/preprocess/parser_raw.ml" +# 74502 "src/ocaml/preprocess/parser_raw.ml" in # 4734 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 74515 "src/ocaml/preprocess/parser_raw.ml" +# 74508 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 74522 "src/ocaml/preprocess/parser_raw.ml" +# 74515 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in @@ -74526,12 +74519,12 @@ module Tables = struct let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 74530 "src/ocaml/preprocess/parser_raw.ml" +# 74523 "src/ocaml/preprocess/parser_raw.ml" in # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 74535 "src/ocaml/preprocess/parser_raw.ml" +# 74528 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -74541,19 +74534,19 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 74545 "src/ocaml/preprocess/parser_raw.ml" +# 74538 "src/ocaml/preprocess/parser_raw.ml" in let label = # 4646 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 74551 "src/ocaml/preprocess/parser_raw.ml" +# 74544 "src/ocaml/preprocess/parser_raw.ml" in # 4566 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in Ptyp_arrow(label, domain , codomain, arg_modes, []) ) -# 74557 "src/ocaml/preprocess/parser_raw.ml" +# 74550 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_codomain_ in @@ -74563,13 +74556,13 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 74567 "src/ocaml/preprocess/parser_raw.ml" +# 74560 "src/ocaml/preprocess/parser_raw.ml" in # 4569 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 74573 "src/ocaml/preprocess/parser_raw.ml" +# 74566 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -74618,31 +74611,31 @@ module Tables = struct let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 74622 "src/ocaml/preprocess/parser_raw.ml" +# 74615 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = # 4736 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 74628 "src/ocaml/preprocess/parser_raw.ml" +# 74621 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 74634 "src/ocaml/preprocess/parser_raw.ml" +# 74627 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 74641 "src/ocaml/preprocess/parser_raw.ml" +# 74634 "src/ocaml/preprocess/parser_raw.ml" in # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 74646 "src/ocaml/preprocess/parser_raw.ml" +# 74639 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -74652,19 +74645,19 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 74656 "src/ocaml/preprocess/parser_raw.ml" +# 74649 "src/ocaml/preprocess/parser_raw.ml" in let label = # 4646 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 74662 "src/ocaml/preprocess/parser_raw.ml" +# 74655 "src/ocaml/preprocess/parser_raw.ml" in # 4566 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in Ptyp_arrow(label, domain , codomain, arg_modes, []) ) -# 74668 "src/ocaml/preprocess/parser_raw.ml" +# 74661 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_codomain_ in @@ -74674,13 +74667,13 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 74678 "src/ocaml/preprocess/parser_raw.ml" +# 74671 "src/ocaml/preprocess/parser_raw.ml" in # 4569 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 74684 "src/ocaml/preprocess/parser_raw.ml" +# 74677 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -74738,32 +74731,32 @@ module Tables = struct # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 74742 "src/ocaml/preprocess/parser_raw.ml" +# 74735 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = # 4736 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 74749 "src/ocaml/preprocess/parser_raw.ml" +# 74742 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 74755 "src/ocaml/preprocess/parser_raw.ml" +# 74748 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 74762 "src/ocaml/preprocess/parser_raw.ml" +# 74755 "src/ocaml/preprocess/parser_raw.ml" in # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 74767 "src/ocaml/preprocess/parser_raw.ml" +# 74760 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -74773,19 +74766,19 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 74777 "src/ocaml/preprocess/parser_raw.ml" +# 74770 "src/ocaml/preprocess/parser_raw.ml" in let label = # 4646 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 74783 "src/ocaml/preprocess/parser_raw.ml" +# 74776 "src/ocaml/preprocess/parser_raw.ml" in # 4566 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in Ptyp_arrow(label, domain , codomain, arg_modes, []) ) -# 74789 "src/ocaml/preprocess/parser_raw.ml" +# 74782 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_codomain_ in @@ -74795,13 +74788,13 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 74799 "src/ocaml/preprocess/parser_raw.ml" +# 74792 "src/ocaml/preprocess/parser_raw.ml" in # 4569 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 74805 "src/ocaml/preprocess/parser_raw.ml" +# 74798 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -74878,12 +74871,12 @@ module Tables = struct let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 74882 "src/ocaml/preprocess/parser_raw.ml" +# 74875 "src/ocaml/preprocess/parser_raw.ml" in let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 74887 "src/ocaml/preprocess/parser_raw.ml" +# 74880 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -74892,14 +74885,14 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 74896 "src/ocaml/preprocess/parser_raw.ml" +# 74889 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 74903 "src/ocaml/preprocess/parser_raw.ml" +# 74896 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = @@ -74910,24 +74903,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 74914 "src/ocaml/preprocess/parser_raw.ml" +# 74907 "src/ocaml/preprocess/parser_raw.ml" in # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 74919 "src/ocaml/preprocess/parser_raw.ml" +# 74912 "src/ocaml/preprocess/parser_raw.ml" in # 4481 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 74925 "src/ocaml/preprocess/parser_raw.ml" +# 74918 "src/ocaml/preprocess/parser_raw.ml" in # 4732 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 74931 "src/ocaml/preprocess/parser_raw.ml" +# 74924 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -74937,27 +74930,27 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 74941 "src/ocaml/preprocess/parser_raw.ml" +# 74934 "src/ocaml/preprocess/parser_raw.ml" in # 4734 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 74947 "src/ocaml/preprocess/parser_raw.ml" +# 74940 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 74954 "src/ocaml/preprocess/parser_raw.ml" +# 74947 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 74961 "src/ocaml/preprocess/parser_raw.ml" +# 74954 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -74966,19 +74959,19 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 74970 "src/ocaml/preprocess/parser_raw.ml" +# 74963 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = # 4637 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 74977 "src/ocaml/preprocess/parser_raw.ml" +# 74970 "src/ocaml/preprocess/parser_raw.ml" in # 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 74982 "src/ocaml/preprocess/parser_raw.ml" +# 74975 "src/ocaml/preprocess/parser_raw.ml" in @@ -74988,7 +74981,7 @@ module Tables = struct Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 74992 "src/ocaml/preprocess/parser_raw.ml" +# 74985 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_ty_, _startpos_label_) in @@ -74998,13 +74991,13 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 75002 "src/ocaml/preprocess/parser_raw.ml" +# 74995 "src/ocaml/preprocess/parser_raw.ml" in # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 75008 "src/ocaml/preprocess/parser_raw.ml" +# 75001 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -75089,12 +75082,12 @@ module Tables = struct let m1 = # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 75093 "src/ocaml/preprocess/parser_raw.ml" +# 75086 "src/ocaml/preprocess/parser_raw.ml" in let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 75098 "src/ocaml/preprocess/parser_raw.ml" +# 75091 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -75103,14 +75096,14 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 75107 "src/ocaml/preprocess/parser_raw.ml" +# 75100 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 75114 "src/ocaml/preprocess/parser_raw.ml" +# 75107 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = @@ -75121,24 +75114,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 75125 "src/ocaml/preprocess/parser_raw.ml" +# 75118 "src/ocaml/preprocess/parser_raw.ml" in # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 75130 "src/ocaml/preprocess/parser_raw.ml" +# 75123 "src/ocaml/preprocess/parser_raw.ml" in # 4481 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 75136 "src/ocaml/preprocess/parser_raw.ml" +# 75129 "src/ocaml/preprocess/parser_raw.ml" in # 4732 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 75142 "src/ocaml/preprocess/parser_raw.ml" +# 75135 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -75148,27 +75141,27 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 75152 "src/ocaml/preprocess/parser_raw.ml" +# 75145 "src/ocaml/preprocess/parser_raw.ml" in # 4734 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 75158 "src/ocaml/preprocess/parser_raw.ml" +# 75151 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 75165 "src/ocaml/preprocess/parser_raw.ml" +# 75158 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 75172 "src/ocaml/preprocess/parser_raw.ml" +# 75165 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -75177,19 +75170,19 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 75181 "src/ocaml/preprocess/parser_raw.ml" +# 75174 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = # 4637 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 75188 "src/ocaml/preprocess/parser_raw.ml" +# 75181 "src/ocaml/preprocess/parser_raw.ml" in # 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 75193 "src/ocaml/preprocess/parser_raw.ml" +# 75186 "src/ocaml/preprocess/parser_raw.ml" in @@ -75199,7 +75192,7 @@ module Tables = struct Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 75203 "src/ocaml/preprocess/parser_raw.ml" +# 75196 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos_label_) in @@ -75209,13 +75202,13 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 75213 "src/ocaml/preprocess/parser_raw.ml" +# 75206 "src/ocaml/preprocess/parser_raw.ml" in # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 75219 "src/ocaml/preprocess/parser_raw.ml" +# 75212 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -75300,18 +75293,18 @@ module Tables = struct let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 75304 "src/ocaml/preprocess/parser_raw.ml" +# 75297 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 75310 "src/ocaml/preprocess/parser_raw.ml" +# 75303 "src/ocaml/preprocess/parser_raw.ml" in # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 75315 "src/ocaml/preprocess/parser_raw.ml" +# 75308 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -75321,14 +75314,14 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 75325 "src/ocaml/preprocess/parser_raw.ml" +# 75318 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 75332 "src/ocaml/preprocess/parser_raw.ml" +# 75325 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = @@ -75339,24 +75332,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 75343 "src/ocaml/preprocess/parser_raw.ml" +# 75336 "src/ocaml/preprocess/parser_raw.ml" in # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 75348 "src/ocaml/preprocess/parser_raw.ml" +# 75341 "src/ocaml/preprocess/parser_raw.ml" in # 4481 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 75354 "src/ocaml/preprocess/parser_raw.ml" +# 75347 "src/ocaml/preprocess/parser_raw.ml" in # 4732 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 75360 "src/ocaml/preprocess/parser_raw.ml" +# 75353 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -75366,27 +75359,27 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 75370 "src/ocaml/preprocess/parser_raw.ml" +# 75363 "src/ocaml/preprocess/parser_raw.ml" in # 4734 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 75376 "src/ocaml/preprocess/parser_raw.ml" +# 75369 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 75383 "src/ocaml/preprocess/parser_raw.ml" +# 75376 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 75390 "src/ocaml/preprocess/parser_raw.ml" +# 75383 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -75395,19 +75388,19 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 75399 "src/ocaml/preprocess/parser_raw.ml" +# 75392 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = # 4637 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 75406 "src/ocaml/preprocess/parser_raw.ml" +# 75399 "src/ocaml/preprocess/parser_raw.ml" in # 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 75411 "src/ocaml/preprocess/parser_raw.ml" +# 75404 "src/ocaml/preprocess/parser_raw.ml" in @@ -75417,7 +75410,7 @@ module Tables = struct Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 75421 "src/ocaml/preprocess/parser_raw.ml" +# 75414 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_ty_, _startpos_label_) in @@ -75427,13 +75420,13 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 75431 "src/ocaml/preprocess/parser_raw.ml" +# 75424 "src/ocaml/preprocess/parser_raw.ml" in # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 75437 "src/ocaml/preprocess/parser_raw.ml" +# 75430 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -75527,19 +75520,19 @@ module Tables = struct # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 75531 "src/ocaml/preprocess/parser_raw.ml" +# 75524 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 75538 "src/ocaml/preprocess/parser_raw.ml" +# 75531 "src/ocaml/preprocess/parser_raw.ml" in # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 75543 "src/ocaml/preprocess/parser_raw.ml" +# 75536 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -75549,14 +75542,14 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 75553 "src/ocaml/preprocess/parser_raw.ml" +# 75546 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 75560 "src/ocaml/preprocess/parser_raw.ml" +# 75553 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = @@ -75567,24 +75560,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 75571 "src/ocaml/preprocess/parser_raw.ml" +# 75564 "src/ocaml/preprocess/parser_raw.ml" in # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 75576 "src/ocaml/preprocess/parser_raw.ml" +# 75569 "src/ocaml/preprocess/parser_raw.ml" in # 4481 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 75582 "src/ocaml/preprocess/parser_raw.ml" +# 75575 "src/ocaml/preprocess/parser_raw.ml" in # 4732 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 75588 "src/ocaml/preprocess/parser_raw.ml" +# 75581 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -75594,27 +75587,27 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 75598 "src/ocaml/preprocess/parser_raw.ml" +# 75591 "src/ocaml/preprocess/parser_raw.ml" in # 4734 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 75604 "src/ocaml/preprocess/parser_raw.ml" +# 75597 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 75611 "src/ocaml/preprocess/parser_raw.ml" +# 75604 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 75618 "src/ocaml/preprocess/parser_raw.ml" +# 75611 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -75623,19 +75616,19 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 75627 "src/ocaml/preprocess/parser_raw.ml" +# 75620 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = # 4637 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 75634 "src/ocaml/preprocess/parser_raw.ml" +# 75627 "src/ocaml/preprocess/parser_raw.ml" in # 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 75639 "src/ocaml/preprocess/parser_raw.ml" +# 75632 "src/ocaml/preprocess/parser_raw.ml" in @@ -75645,7 +75638,7 @@ module Tables = struct Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 75649 "src/ocaml/preprocess/parser_raw.ml" +# 75642 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined2_, _startpos_label_) in @@ -75655,13 +75648,13 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 75659 "src/ocaml/preprocess/parser_raw.ml" +# 75652 "src/ocaml/preprocess/parser_raw.ml" in # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 75665 "src/ocaml/preprocess/parser_raw.ml" +# 75658 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -75745,12 +75738,12 @@ module Tables = struct let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 75749 "src/ocaml/preprocess/parser_raw.ml" +# 75742 "src/ocaml/preprocess/parser_raw.ml" in let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 75754 "src/ocaml/preprocess/parser_raw.ml" +# 75747 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -75759,7 +75752,7 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 75763 "src/ocaml/preprocess/parser_raw.ml" +# 75756 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = @@ -75768,7 +75761,7 @@ module Tables = struct # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 75772 "src/ocaml/preprocess/parser_raw.ml" +# 75765 "src/ocaml/preprocess/parser_raw.ml" in let ty = @@ -75780,24 +75773,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 75784 "src/ocaml/preprocess/parser_raw.ml" +# 75777 "src/ocaml/preprocess/parser_raw.ml" in # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 75789 "src/ocaml/preprocess/parser_raw.ml" +# 75782 "src/ocaml/preprocess/parser_raw.ml" in # 4481 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 75795 "src/ocaml/preprocess/parser_raw.ml" +# 75788 "src/ocaml/preprocess/parser_raw.ml" in # 4732 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 75801 "src/ocaml/preprocess/parser_raw.ml" +# 75794 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -75807,27 +75800,27 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 75811 "src/ocaml/preprocess/parser_raw.ml" +# 75804 "src/ocaml/preprocess/parser_raw.ml" in # 4734 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 75817 "src/ocaml/preprocess/parser_raw.ml" +# 75810 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 75824 "src/ocaml/preprocess/parser_raw.ml" +# 75817 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 75831 "src/ocaml/preprocess/parser_raw.ml" +# 75824 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -75836,19 +75829,19 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 75840 "src/ocaml/preprocess/parser_raw.ml" +# 75833 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = # 4637 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 75847 "src/ocaml/preprocess/parser_raw.ml" +# 75840 "src/ocaml/preprocess/parser_raw.ml" in # 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 75852 "src/ocaml/preprocess/parser_raw.ml" +# 75845 "src/ocaml/preprocess/parser_raw.ml" in @@ -75858,7 +75851,7 @@ module Tables = struct Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 75862 "src/ocaml/preprocess/parser_raw.ml" +# 75855 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_ty_, _startpos_label_) in @@ -75868,13 +75861,13 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 75872 "src/ocaml/preprocess/parser_raw.ml" +# 75865 "src/ocaml/preprocess/parser_raw.ml" in # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 75878 "src/ocaml/preprocess/parser_raw.ml" +# 75871 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -75966,12 +75959,12 @@ module Tables = struct let m1 = # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 75970 "src/ocaml/preprocess/parser_raw.ml" +# 75963 "src/ocaml/preprocess/parser_raw.ml" in let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 75975 "src/ocaml/preprocess/parser_raw.ml" +# 75968 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -75980,7 +75973,7 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 75984 "src/ocaml/preprocess/parser_raw.ml" +# 75977 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = @@ -75989,7 +75982,7 @@ module Tables = struct # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 75993 "src/ocaml/preprocess/parser_raw.ml" +# 75986 "src/ocaml/preprocess/parser_raw.ml" in let ty = @@ -76001,24 +75994,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 76005 "src/ocaml/preprocess/parser_raw.ml" +# 75998 "src/ocaml/preprocess/parser_raw.ml" in # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 76010 "src/ocaml/preprocess/parser_raw.ml" +# 76003 "src/ocaml/preprocess/parser_raw.ml" in # 4481 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 76016 "src/ocaml/preprocess/parser_raw.ml" +# 76009 "src/ocaml/preprocess/parser_raw.ml" in # 4732 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 76022 "src/ocaml/preprocess/parser_raw.ml" +# 76015 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -76028,27 +76021,27 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 76032 "src/ocaml/preprocess/parser_raw.ml" +# 76025 "src/ocaml/preprocess/parser_raw.ml" in # 4734 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 76038 "src/ocaml/preprocess/parser_raw.ml" +# 76031 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 76045 "src/ocaml/preprocess/parser_raw.ml" +# 76038 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 76052 "src/ocaml/preprocess/parser_raw.ml" +# 76045 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -76057,19 +76050,19 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 76061 "src/ocaml/preprocess/parser_raw.ml" +# 76054 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = # 4637 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 76068 "src/ocaml/preprocess/parser_raw.ml" +# 76061 "src/ocaml/preprocess/parser_raw.ml" in # 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 76073 "src/ocaml/preprocess/parser_raw.ml" +# 76066 "src/ocaml/preprocess/parser_raw.ml" in @@ -76079,7 +76072,7 @@ module Tables = struct Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 76083 "src/ocaml/preprocess/parser_raw.ml" +# 76076 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined2_, _startpos_label_) in @@ -76089,13 +76082,13 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 76093 "src/ocaml/preprocess/parser_raw.ml" +# 76086 "src/ocaml/preprocess/parser_raw.ml" in # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 76099 "src/ocaml/preprocess/parser_raw.ml" +# 76092 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -76187,18 +76180,18 @@ module Tables = struct let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 76191 "src/ocaml/preprocess/parser_raw.ml" +# 76184 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 76197 "src/ocaml/preprocess/parser_raw.ml" +# 76190 "src/ocaml/preprocess/parser_raw.ml" in # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 76202 "src/ocaml/preprocess/parser_raw.ml" +# 76195 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -76208,7 +76201,7 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 76212 "src/ocaml/preprocess/parser_raw.ml" +# 76205 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = @@ -76217,7 +76210,7 @@ module Tables = struct # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 76221 "src/ocaml/preprocess/parser_raw.ml" +# 76214 "src/ocaml/preprocess/parser_raw.ml" in let ty = @@ -76229,24 +76222,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 76233 "src/ocaml/preprocess/parser_raw.ml" +# 76226 "src/ocaml/preprocess/parser_raw.ml" in # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 76238 "src/ocaml/preprocess/parser_raw.ml" +# 76231 "src/ocaml/preprocess/parser_raw.ml" in # 4481 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 76244 "src/ocaml/preprocess/parser_raw.ml" +# 76237 "src/ocaml/preprocess/parser_raw.ml" in # 4732 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 76250 "src/ocaml/preprocess/parser_raw.ml" +# 76243 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -76256,27 +76249,27 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 76260 "src/ocaml/preprocess/parser_raw.ml" +# 76253 "src/ocaml/preprocess/parser_raw.ml" in # 4734 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 76266 "src/ocaml/preprocess/parser_raw.ml" +# 76259 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 76273 "src/ocaml/preprocess/parser_raw.ml" +# 76266 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 76280 "src/ocaml/preprocess/parser_raw.ml" +# 76273 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -76285,19 +76278,19 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 76289 "src/ocaml/preprocess/parser_raw.ml" +# 76282 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = # 4637 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 76296 "src/ocaml/preprocess/parser_raw.ml" +# 76289 "src/ocaml/preprocess/parser_raw.ml" in # 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 76301 "src/ocaml/preprocess/parser_raw.ml" +# 76294 "src/ocaml/preprocess/parser_raw.ml" in @@ -76307,7 +76300,7 @@ module Tables = struct Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 76311 "src/ocaml/preprocess/parser_raw.ml" +# 76304 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_ty_, _startpos_label_) in @@ -76317,13 +76310,13 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 76321 "src/ocaml/preprocess/parser_raw.ml" +# 76314 "src/ocaml/preprocess/parser_raw.ml" in # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 76327 "src/ocaml/preprocess/parser_raw.ml" +# 76320 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -76424,19 +76417,19 @@ module Tables = struct # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 76428 "src/ocaml/preprocess/parser_raw.ml" +# 76421 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 76435 "src/ocaml/preprocess/parser_raw.ml" +# 76428 "src/ocaml/preprocess/parser_raw.ml" in # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 76440 "src/ocaml/preprocess/parser_raw.ml" +# 76433 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -76446,7 +76439,7 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 76450 "src/ocaml/preprocess/parser_raw.ml" +# 76443 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = @@ -76455,7 +76448,7 @@ module Tables = struct # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 76459 "src/ocaml/preprocess/parser_raw.ml" +# 76452 "src/ocaml/preprocess/parser_raw.ml" in let ty = @@ -76467,24 +76460,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 76471 "src/ocaml/preprocess/parser_raw.ml" +# 76464 "src/ocaml/preprocess/parser_raw.ml" in # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 76476 "src/ocaml/preprocess/parser_raw.ml" +# 76469 "src/ocaml/preprocess/parser_raw.ml" in # 4481 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 76482 "src/ocaml/preprocess/parser_raw.ml" +# 76475 "src/ocaml/preprocess/parser_raw.ml" in # 4732 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 76488 "src/ocaml/preprocess/parser_raw.ml" +# 76481 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -76494,27 +76487,27 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 76498 "src/ocaml/preprocess/parser_raw.ml" +# 76491 "src/ocaml/preprocess/parser_raw.ml" in # 4734 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 76504 "src/ocaml/preprocess/parser_raw.ml" +# 76497 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 76511 "src/ocaml/preprocess/parser_raw.ml" +# 76504 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 76518 "src/ocaml/preprocess/parser_raw.ml" +# 76511 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -76523,19 +76516,19 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 76527 "src/ocaml/preprocess/parser_raw.ml" +# 76520 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = # 4637 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 76534 "src/ocaml/preprocess/parser_raw.ml" +# 76527 "src/ocaml/preprocess/parser_raw.ml" in # 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 76539 "src/ocaml/preprocess/parser_raw.ml" +# 76532 "src/ocaml/preprocess/parser_raw.ml" in @@ -76545,7 +76538,7 @@ module Tables = struct Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 76549 "src/ocaml/preprocess/parser_raw.ml" +# 76542 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined3_, _startpos_label_) in @@ -76555,13 +76548,13 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 76559 "src/ocaml/preprocess/parser_raw.ml" +# 76552 "src/ocaml/preprocess/parser_raw.ml" in # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 76565 "src/ocaml/preprocess/parser_raw.ml" +# 76558 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -76611,12 +76604,12 @@ module Tables = struct let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 76615 "src/ocaml/preprocess/parser_raw.ml" +# 76608 "src/ocaml/preprocess/parser_raw.ml" in let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 76620 "src/ocaml/preprocess/parser_raw.ml" +# 76613 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -76625,32 +76618,32 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 76629 "src/ocaml/preprocess/parser_raw.ml" +# 76622 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 76636 "src/ocaml/preprocess/parser_raw.ml" +# 76629 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = # 4736 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 76642 "src/ocaml/preprocess/parser_raw.ml" +# 76635 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 76648 "src/ocaml/preprocess/parser_raw.ml" +# 76641 "src/ocaml/preprocess/parser_raw.ml" in let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 76654 "src/ocaml/preprocess/parser_raw.ml" +# 76647 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -76659,19 +76652,19 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 76663 "src/ocaml/preprocess/parser_raw.ml" +# 76656 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = # 4637 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 76670 "src/ocaml/preprocess/parser_raw.ml" +# 76663 "src/ocaml/preprocess/parser_raw.ml" in # 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 76675 "src/ocaml/preprocess/parser_raw.ml" +# 76668 "src/ocaml/preprocess/parser_raw.ml" in @@ -76681,7 +76674,7 @@ module Tables = struct Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 76685 "src/ocaml/preprocess/parser_raw.ml" +# 76678 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_label_) in @@ -76691,13 +76684,13 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 76695 "src/ocaml/preprocess/parser_raw.ml" +# 76688 "src/ocaml/preprocess/parser_raw.ml" in # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 76701 "src/ocaml/preprocess/parser_raw.ml" +# 76694 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -76754,12 +76747,12 @@ module Tables = struct let m1 = # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 76758 "src/ocaml/preprocess/parser_raw.ml" +# 76751 "src/ocaml/preprocess/parser_raw.ml" in let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 76763 "src/ocaml/preprocess/parser_raw.ml" +# 76756 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -76768,32 +76761,32 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 76772 "src/ocaml/preprocess/parser_raw.ml" +# 76765 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 76779 "src/ocaml/preprocess/parser_raw.ml" +# 76772 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = # 4736 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 76785 "src/ocaml/preprocess/parser_raw.ml" +# 76778 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 76791 "src/ocaml/preprocess/parser_raw.ml" +# 76784 "src/ocaml/preprocess/parser_raw.ml" in let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 76797 "src/ocaml/preprocess/parser_raw.ml" +# 76790 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -76802,19 +76795,19 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 76806 "src/ocaml/preprocess/parser_raw.ml" +# 76799 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = # 4637 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 76813 "src/ocaml/preprocess/parser_raw.ml" +# 76806 "src/ocaml/preprocess/parser_raw.ml" in # 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 76818 "src/ocaml/preprocess/parser_raw.ml" +# 76811 "src/ocaml/preprocess/parser_raw.ml" in @@ -76824,7 +76817,7 @@ module Tables = struct Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 76828 "src/ocaml/preprocess/parser_raw.ml" +# 76821 "src/ocaml/preprocess/parser_raw.ml" in let _startpos__1_ = _startpos_label_ in @@ -76834,13 +76827,13 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 76838 "src/ocaml/preprocess/parser_raw.ml" +# 76831 "src/ocaml/preprocess/parser_raw.ml" in # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 76844 "src/ocaml/preprocess/parser_raw.ml" +# 76837 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -76897,18 +76890,18 @@ module Tables = struct let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 76901 "src/ocaml/preprocess/parser_raw.ml" +# 76894 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 76907 "src/ocaml/preprocess/parser_raw.ml" +# 76900 "src/ocaml/preprocess/parser_raw.ml" in # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 76912 "src/ocaml/preprocess/parser_raw.ml" +# 76905 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -76918,32 +76911,32 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 76922 "src/ocaml/preprocess/parser_raw.ml" +# 76915 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 76929 "src/ocaml/preprocess/parser_raw.ml" +# 76922 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = # 4736 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 76935 "src/ocaml/preprocess/parser_raw.ml" +# 76928 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 76941 "src/ocaml/preprocess/parser_raw.ml" +# 76934 "src/ocaml/preprocess/parser_raw.ml" in let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 76947 "src/ocaml/preprocess/parser_raw.ml" +# 76940 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -76952,19 +76945,19 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 76956 "src/ocaml/preprocess/parser_raw.ml" +# 76949 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = # 4637 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 76963 "src/ocaml/preprocess/parser_raw.ml" +# 76956 "src/ocaml/preprocess/parser_raw.ml" in # 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 76968 "src/ocaml/preprocess/parser_raw.ml" +# 76961 "src/ocaml/preprocess/parser_raw.ml" in @@ -76974,7 +76967,7 @@ module Tables = struct Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 76978 "src/ocaml/preprocess/parser_raw.ml" +# 76971 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_label_) in @@ -76984,13 +76977,13 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 76988 "src/ocaml/preprocess/parser_raw.ml" +# 76981 "src/ocaml/preprocess/parser_raw.ml" in # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 76994 "src/ocaml/preprocess/parser_raw.ml" +# 76987 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -77056,19 +77049,19 @@ module Tables = struct # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 77060 "src/ocaml/preprocess/parser_raw.ml" +# 77053 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 77067 "src/ocaml/preprocess/parser_raw.ml" +# 77060 "src/ocaml/preprocess/parser_raw.ml" in # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 77072 "src/ocaml/preprocess/parser_raw.ml" +# 77065 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -77078,32 +77071,32 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 77082 "src/ocaml/preprocess/parser_raw.ml" +# 77075 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 77089 "src/ocaml/preprocess/parser_raw.ml" +# 77082 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = # 4736 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 77095 "src/ocaml/preprocess/parser_raw.ml" +# 77088 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 77101 "src/ocaml/preprocess/parser_raw.ml" +# 77094 "src/ocaml/preprocess/parser_raw.ml" in let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 77107 "src/ocaml/preprocess/parser_raw.ml" +# 77100 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -77112,19 +77105,19 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 77116 "src/ocaml/preprocess/parser_raw.ml" +# 77109 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = # 4637 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 77123 "src/ocaml/preprocess/parser_raw.ml" +# 77116 "src/ocaml/preprocess/parser_raw.ml" in # 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 77128 "src/ocaml/preprocess/parser_raw.ml" +# 77121 "src/ocaml/preprocess/parser_raw.ml" in @@ -77134,7 +77127,7 @@ module Tables = struct Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 77138 "src/ocaml/preprocess/parser_raw.ml" +# 77131 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos_label_) in @@ -77144,13 +77137,13 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 77148 "src/ocaml/preprocess/parser_raw.ml" +# 77141 "src/ocaml/preprocess/parser_raw.ml" in # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 77154 "src/ocaml/preprocess/parser_raw.ml" +# 77147 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -77207,12 +77200,12 @@ module Tables = struct let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 77211 "src/ocaml/preprocess/parser_raw.ml" +# 77204 "src/ocaml/preprocess/parser_raw.ml" in let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 77216 "src/ocaml/preprocess/parser_raw.ml" +# 77209 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -77221,32 +77214,32 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 77225 "src/ocaml/preprocess/parser_raw.ml" +# 77218 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 77232 "src/ocaml/preprocess/parser_raw.ml" +# 77225 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = # 4736 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 77238 "src/ocaml/preprocess/parser_raw.ml" +# 77231 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 77244 "src/ocaml/preprocess/parser_raw.ml" +# 77237 "src/ocaml/preprocess/parser_raw.ml" in let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 77250 "src/ocaml/preprocess/parser_raw.ml" +# 77243 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -77255,19 +77248,19 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 77259 "src/ocaml/preprocess/parser_raw.ml" +# 77252 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = # 4637 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 77266 "src/ocaml/preprocess/parser_raw.ml" +# 77259 "src/ocaml/preprocess/parser_raw.ml" in # 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 77271 "src/ocaml/preprocess/parser_raw.ml" +# 77264 "src/ocaml/preprocess/parser_raw.ml" in @@ -77277,7 +77270,7 @@ module Tables = struct Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 77281 "src/ocaml/preprocess/parser_raw.ml" +# 77274 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_label_) in @@ -77287,13 +77280,13 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 77291 "src/ocaml/preprocess/parser_raw.ml" +# 77284 "src/ocaml/preprocess/parser_raw.ml" in # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 77297 "src/ocaml/preprocess/parser_raw.ml" +# 77290 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -77357,12 +77350,12 @@ module Tables = struct let m1 = # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 77361 "src/ocaml/preprocess/parser_raw.ml" +# 77354 "src/ocaml/preprocess/parser_raw.ml" in let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 77366 "src/ocaml/preprocess/parser_raw.ml" +# 77359 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -77371,32 +77364,32 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 77375 "src/ocaml/preprocess/parser_raw.ml" +# 77368 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 77382 "src/ocaml/preprocess/parser_raw.ml" +# 77375 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = # 4736 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 77388 "src/ocaml/preprocess/parser_raw.ml" +# 77381 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 77394 "src/ocaml/preprocess/parser_raw.ml" +# 77387 "src/ocaml/preprocess/parser_raw.ml" in let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 77400 "src/ocaml/preprocess/parser_raw.ml" +# 77393 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -77405,19 +77398,19 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 77409 "src/ocaml/preprocess/parser_raw.ml" +# 77402 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = # 4637 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 77416 "src/ocaml/preprocess/parser_raw.ml" +# 77409 "src/ocaml/preprocess/parser_raw.ml" in # 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 77421 "src/ocaml/preprocess/parser_raw.ml" +# 77414 "src/ocaml/preprocess/parser_raw.ml" in @@ -77427,7 +77420,7 @@ module Tables = struct Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 77431 "src/ocaml/preprocess/parser_raw.ml" +# 77424 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos_label_) in @@ -77437,13 +77430,13 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 77441 "src/ocaml/preprocess/parser_raw.ml" +# 77434 "src/ocaml/preprocess/parser_raw.ml" in # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 77447 "src/ocaml/preprocess/parser_raw.ml" +# 77440 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -77507,18 +77500,18 @@ module Tables = struct let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 77511 "src/ocaml/preprocess/parser_raw.ml" +# 77504 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 77517 "src/ocaml/preprocess/parser_raw.ml" +# 77510 "src/ocaml/preprocess/parser_raw.ml" in # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 77522 "src/ocaml/preprocess/parser_raw.ml" +# 77515 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -77528,32 +77521,32 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 77532 "src/ocaml/preprocess/parser_raw.ml" +# 77525 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 77539 "src/ocaml/preprocess/parser_raw.ml" +# 77532 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = # 4736 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 77545 "src/ocaml/preprocess/parser_raw.ml" +# 77538 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 77551 "src/ocaml/preprocess/parser_raw.ml" +# 77544 "src/ocaml/preprocess/parser_raw.ml" in let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 77557 "src/ocaml/preprocess/parser_raw.ml" +# 77550 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -77562,19 +77555,19 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 77566 "src/ocaml/preprocess/parser_raw.ml" +# 77559 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = # 4637 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 77573 "src/ocaml/preprocess/parser_raw.ml" +# 77566 "src/ocaml/preprocess/parser_raw.ml" in # 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 77578 "src/ocaml/preprocess/parser_raw.ml" +# 77571 "src/ocaml/preprocess/parser_raw.ml" in @@ -77584,7 +77577,7 @@ module Tables = struct Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 77588 "src/ocaml/preprocess/parser_raw.ml" +# 77581 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_label_) in @@ -77594,13 +77587,13 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 77598 "src/ocaml/preprocess/parser_raw.ml" +# 77591 "src/ocaml/preprocess/parser_raw.ml" in # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 77604 "src/ocaml/preprocess/parser_raw.ml" +# 77597 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -77673,19 +77666,19 @@ module Tables = struct # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 77677 "src/ocaml/preprocess/parser_raw.ml" +# 77670 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 77684 "src/ocaml/preprocess/parser_raw.ml" +# 77677 "src/ocaml/preprocess/parser_raw.ml" in # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 77689 "src/ocaml/preprocess/parser_raw.ml" +# 77682 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -77695,32 +77688,32 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 77699 "src/ocaml/preprocess/parser_raw.ml" +# 77692 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 77706 "src/ocaml/preprocess/parser_raw.ml" +# 77699 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = # 4736 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 77712 "src/ocaml/preprocess/parser_raw.ml" +# 77705 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 77718 "src/ocaml/preprocess/parser_raw.ml" +# 77711 "src/ocaml/preprocess/parser_raw.ml" in let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 77724 "src/ocaml/preprocess/parser_raw.ml" +# 77717 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -77729,19 +77722,19 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 77733 "src/ocaml/preprocess/parser_raw.ml" +# 77726 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = # 4637 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 77740 "src/ocaml/preprocess/parser_raw.ml" +# 77733 "src/ocaml/preprocess/parser_raw.ml" in # 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 77745 "src/ocaml/preprocess/parser_raw.ml" +# 77738 "src/ocaml/preprocess/parser_raw.ml" in @@ -77751,7 +77744,7 @@ module Tables = struct Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 77755 "src/ocaml/preprocess/parser_raw.ml" +# 77748 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined2_, _startpos_label_) in @@ -77761,13 +77754,13 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 77765 "src/ocaml/preprocess/parser_raw.ml" +# 77758 "src/ocaml/preprocess/parser_raw.ml" in # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 77771 "src/ocaml/preprocess/parser_raw.ml" +# 77764 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -77851,12 +77844,12 @@ module Tables = struct let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 77855 "src/ocaml/preprocess/parser_raw.ml" +# 77848 "src/ocaml/preprocess/parser_raw.ml" in let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 77860 "src/ocaml/preprocess/parser_raw.ml" +# 77853 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -77865,14 +77858,14 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 77869 "src/ocaml/preprocess/parser_raw.ml" +# 77862 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 77876 "src/ocaml/preprocess/parser_raw.ml" +# 77869 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _startpos__1_ = _startpos__1_inlined1_ in @@ -77884,24 +77877,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 77888 "src/ocaml/preprocess/parser_raw.ml" +# 77881 "src/ocaml/preprocess/parser_raw.ml" in # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 77893 "src/ocaml/preprocess/parser_raw.ml" +# 77886 "src/ocaml/preprocess/parser_raw.ml" in # 4481 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 77899 "src/ocaml/preprocess/parser_raw.ml" +# 77892 "src/ocaml/preprocess/parser_raw.ml" in # 4732 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 77905 "src/ocaml/preprocess/parser_raw.ml" +# 77898 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -77911,20 +77904,20 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 77915 "src/ocaml/preprocess/parser_raw.ml" +# 77908 "src/ocaml/preprocess/parser_raw.ml" in # 4734 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 77921 "src/ocaml/preprocess/parser_raw.ml" +# 77914 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 77928 "src/ocaml/preprocess/parser_raw.ml" +# 77921 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in @@ -77932,12 +77925,12 @@ module Tables = struct let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 77936 "src/ocaml/preprocess/parser_raw.ml" +# 77929 "src/ocaml/preprocess/parser_raw.ml" in # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 77941 "src/ocaml/preprocess/parser_raw.ml" +# 77934 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -77947,19 +77940,19 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 77951 "src/ocaml/preprocess/parser_raw.ml" +# 77944 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = # 4637 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 77958 "src/ocaml/preprocess/parser_raw.ml" +# 77951 "src/ocaml/preprocess/parser_raw.ml" in # 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 77963 "src/ocaml/preprocess/parser_raw.ml" +# 77956 "src/ocaml/preprocess/parser_raw.ml" in @@ -77969,7 +77962,7 @@ module Tables = struct Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 77973 "src/ocaml/preprocess/parser_raw.ml" +# 77966 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_ty_, _startpos_label_) in @@ -77979,13 +77972,13 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 77983 "src/ocaml/preprocess/parser_raw.ml" +# 77976 "src/ocaml/preprocess/parser_raw.ml" in # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 77989 "src/ocaml/preprocess/parser_raw.ml" +# 77982 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -78077,12 +78070,12 @@ module Tables = struct let m1 = # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 78081 "src/ocaml/preprocess/parser_raw.ml" +# 78074 "src/ocaml/preprocess/parser_raw.ml" in let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 78086 "src/ocaml/preprocess/parser_raw.ml" +# 78079 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -78091,14 +78084,14 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 78095 "src/ocaml/preprocess/parser_raw.ml" +# 78088 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 78102 "src/ocaml/preprocess/parser_raw.ml" +# 78095 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _startpos__1_ = _startpos__1_inlined1_ in @@ -78110,24 +78103,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 78114 "src/ocaml/preprocess/parser_raw.ml" +# 78107 "src/ocaml/preprocess/parser_raw.ml" in # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 78119 "src/ocaml/preprocess/parser_raw.ml" +# 78112 "src/ocaml/preprocess/parser_raw.ml" in # 4481 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 78125 "src/ocaml/preprocess/parser_raw.ml" +# 78118 "src/ocaml/preprocess/parser_raw.ml" in # 4732 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 78131 "src/ocaml/preprocess/parser_raw.ml" +# 78124 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -78137,20 +78130,20 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 78141 "src/ocaml/preprocess/parser_raw.ml" +# 78134 "src/ocaml/preprocess/parser_raw.ml" in # 4734 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 78147 "src/ocaml/preprocess/parser_raw.ml" +# 78140 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 78154 "src/ocaml/preprocess/parser_raw.ml" +# 78147 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in @@ -78158,12 +78151,12 @@ module Tables = struct let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 78162 "src/ocaml/preprocess/parser_raw.ml" +# 78155 "src/ocaml/preprocess/parser_raw.ml" in # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 78167 "src/ocaml/preprocess/parser_raw.ml" +# 78160 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -78173,19 +78166,19 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 78177 "src/ocaml/preprocess/parser_raw.ml" +# 78170 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = # 4637 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 78184 "src/ocaml/preprocess/parser_raw.ml" +# 78177 "src/ocaml/preprocess/parser_raw.ml" in # 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 78189 "src/ocaml/preprocess/parser_raw.ml" +# 78182 "src/ocaml/preprocess/parser_raw.ml" in @@ -78195,7 +78188,7 @@ module Tables = struct Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 78199 "src/ocaml/preprocess/parser_raw.ml" +# 78192 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined2_, _startpos_label_) in @@ -78205,13 +78198,13 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 78209 "src/ocaml/preprocess/parser_raw.ml" +# 78202 "src/ocaml/preprocess/parser_raw.ml" in # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 78215 "src/ocaml/preprocess/parser_raw.ml" +# 78208 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -78303,18 +78296,18 @@ module Tables = struct let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 78307 "src/ocaml/preprocess/parser_raw.ml" +# 78300 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 78313 "src/ocaml/preprocess/parser_raw.ml" +# 78306 "src/ocaml/preprocess/parser_raw.ml" in # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 78318 "src/ocaml/preprocess/parser_raw.ml" +# 78311 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -78324,14 +78317,14 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 78328 "src/ocaml/preprocess/parser_raw.ml" +# 78321 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 78335 "src/ocaml/preprocess/parser_raw.ml" +# 78328 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _startpos__1_ = _startpos__1_inlined1_ in @@ -78343,24 +78336,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 78347 "src/ocaml/preprocess/parser_raw.ml" +# 78340 "src/ocaml/preprocess/parser_raw.ml" in # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 78352 "src/ocaml/preprocess/parser_raw.ml" +# 78345 "src/ocaml/preprocess/parser_raw.ml" in # 4481 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 78358 "src/ocaml/preprocess/parser_raw.ml" +# 78351 "src/ocaml/preprocess/parser_raw.ml" in # 4732 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 78364 "src/ocaml/preprocess/parser_raw.ml" +# 78357 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -78370,20 +78363,20 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 78374 "src/ocaml/preprocess/parser_raw.ml" +# 78367 "src/ocaml/preprocess/parser_raw.ml" in # 4734 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 78380 "src/ocaml/preprocess/parser_raw.ml" +# 78373 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 78387 "src/ocaml/preprocess/parser_raw.ml" +# 78380 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in @@ -78391,12 +78384,12 @@ module Tables = struct let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 78395 "src/ocaml/preprocess/parser_raw.ml" +# 78388 "src/ocaml/preprocess/parser_raw.ml" in # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 78400 "src/ocaml/preprocess/parser_raw.ml" +# 78393 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -78406,19 +78399,19 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 78410 "src/ocaml/preprocess/parser_raw.ml" +# 78403 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = # 4637 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 78417 "src/ocaml/preprocess/parser_raw.ml" +# 78410 "src/ocaml/preprocess/parser_raw.ml" in # 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 78422 "src/ocaml/preprocess/parser_raw.ml" +# 78415 "src/ocaml/preprocess/parser_raw.ml" in @@ -78428,7 +78421,7 @@ module Tables = struct Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 78432 "src/ocaml/preprocess/parser_raw.ml" +# 78425 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_ty_, _startpos_label_) in @@ -78438,13 +78431,13 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 78442 "src/ocaml/preprocess/parser_raw.ml" +# 78435 "src/ocaml/preprocess/parser_raw.ml" in # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 78448 "src/ocaml/preprocess/parser_raw.ml" +# 78441 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -78545,19 +78538,19 @@ module Tables = struct # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 78549 "src/ocaml/preprocess/parser_raw.ml" +# 78542 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 78556 "src/ocaml/preprocess/parser_raw.ml" +# 78549 "src/ocaml/preprocess/parser_raw.ml" in # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 78561 "src/ocaml/preprocess/parser_raw.ml" +# 78554 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -78567,14 +78560,14 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 78571 "src/ocaml/preprocess/parser_raw.ml" +# 78564 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 78578 "src/ocaml/preprocess/parser_raw.ml" +# 78571 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _startpos__1_ = _startpos__1_inlined1_ in @@ -78586,24 +78579,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 78590 "src/ocaml/preprocess/parser_raw.ml" +# 78583 "src/ocaml/preprocess/parser_raw.ml" in # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 78595 "src/ocaml/preprocess/parser_raw.ml" +# 78588 "src/ocaml/preprocess/parser_raw.ml" in # 4481 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 78601 "src/ocaml/preprocess/parser_raw.ml" +# 78594 "src/ocaml/preprocess/parser_raw.ml" in # 4732 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 78607 "src/ocaml/preprocess/parser_raw.ml" +# 78600 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -78613,20 +78606,20 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 78617 "src/ocaml/preprocess/parser_raw.ml" +# 78610 "src/ocaml/preprocess/parser_raw.ml" in # 4734 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 78623 "src/ocaml/preprocess/parser_raw.ml" +# 78616 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 78630 "src/ocaml/preprocess/parser_raw.ml" +# 78623 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in @@ -78634,12 +78627,12 @@ module Tables = struct let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 78638 "src/ocaml/preprocess/parser_raw.ml" +# 78631 "src/ocaml/preprocess/parser_raw.ml" in # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 78643 "src/ocaml/preprocess/parser_raw.ml" +# 78636 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -78649,19 +78642,19 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 78653 "src/ocaml/preprocess/parser_raw.ml" +# 78646 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = # 4637 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 78660 "src/ocaml/preprocess/parser_raw.ml" +# 78653 "src/ocaml/preprocess/parser_raw.ml" in # 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 78665 "src/ocaml/preprocess/parser_raw.ml" +# 78658 "src/ocaml/preprocess/parser_raw.ml" in @@ -78671,7 +78664,7 @@ module Tables = struct Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 78675 "src/ocaml/preprocess/parser_raw.ml" +# 78668 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined3_, _startpos_label_) in @@ -78681,13 +78674,13 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 78685 "src/ocaml/preprocess/parser_raw.ml" +# 78678 "src/ocaml/preprocess/parser_raw.ml" in # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 78691 "src/ocaml/preprocess/parser_raw.ml" +# 78684 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -78778,12 +78771,12 @@ module Tables = struct let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 78782 "src/ocaml/preprocess/parser_raw.ml" +# 78775 "src/ocaml/preprocess/parser_raw.ml" in let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 78787 "src/ocaml/preprocess/parser_raw.ml" +# 78780 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -78792,7 +78785,7 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 78796 "src/ocaml/preprocess/parser_raw.ml" +# 78789 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = @@ -78801,7 +78794,7 @@ module Tables = struct # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 78805 "src/ocaml/preprocess/parser_raw.ml" +# 78798 "src/ocaml/preprocess/parser_raw.ml" in let ty = @@ -78814,24 +78807,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 78818 "src/ocaml/preprocess/parser_raw.ml" +# 78811 "src/ocaml/preprocess/parser_raw.ml" in # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 78823 "src/ocaml/preprocess/parser_raw.ml" +# 78816 "src/ocaml/preprocess/parser_raw.ml" in # 4481 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 78829 "src/ocaml/preprocess/parser_raw.ml" +# 78822 "src/ocaml/preprocess/parser_raw.ml" in # 4732 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 78835 "src/ocaml/preprocess/parser_raw.ml" +# 78828 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -78841,20 +78834,20 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 78845 "src/ocaml/preprocess/parser_raw.ml" +# 78838 "src/ocaml/preprocess/parser_raw.ml" in # 4734 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 78851 "src/ocaml/preprocess/parser_raw.ml" +# 78844 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 78858 "src/ocaml/preprocess/parser_raw.ml" +# 78851 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in @@ -78862,12 +78855,12 @@ module Tables = struct let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 78866 "src/ocaml/preprocess/parser_raw.ml" +# 78859 "src/ocaml/preprocess/parser_raw.ml" in # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 78871 "src/ocaml/preprocess/parser_raw.ml" +# 78864 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -78877,19 +78870,19 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 78881 "src/ocaml/preprocess/parser_raw.ml" +# 78874 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = # 4637 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 78888 "src/ocaml/preprocess/parser_raw.ml" +# 78881 "src/ocaml/preprocess/parser_raw.ml" in # 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 78893 "src/ocaml/preprocess/parser_raw.ml" +# 78886 "src/ocaml/preprocess/parser_raw.ml" in @@ -78899,7 +78892,7 @@ module Tables = struct Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 78903 "src/ocaml/preprocess/parser_raw.ml" +# 78896 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_ty_, _startpos_label_) in @@ -78909,13 +78902,13 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 78913 "src/ocaml/preprocess/parser_raw.ml" +# 78906 "src/ocaml/preprocess/parser_raw.ml" in # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 78919 "src/ocaml/preprocess/parser_raw.ml" +# 78912 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -79014,12 +79007,12 @@ module Tables = struct let m1 = # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 79018 "src/ocaml/preprocess/parser_raw.ml" +# 79011 "src/ocaml/preprocess/parser_raw.ml" in let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 79023 "src/ocaml/preprocess/parser_raw.ml" +# 79016 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -79028,7 +79021,7 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 79032 "src/ocaml/preprocess/parser_raw.ml" +# 79025 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = @@ -79037,7 +79030,7 @@ module Tables = struct # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 79041 "src/ocaml/preprocess/parser_raw.ml" +# 79034 "src/ocaml/preprocess/parser_raw.ml" in let ty = @@ -79050,24 +79043,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 79054 "src/ocaml/preprocess/parser_raw.ml" +# 79047 "src/ocaml/preprocess/parser_raw.ml" in # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 79059 "src/ocaml/preprocess/parser_raw.ml" +# 79052 "src/ocaml/preprocess/parser_raw.ml" in # 4481 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 79065 "src/ocaml/preprocess/parser_raw.ml" +# 79058 "src/ocaml/preprocess/parser_raw.ml" in # 4732 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 79071 "src/ocaml/preprocess/parser_raw.ml" +# 79064 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -79077,20 +79070,20 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 79081 "src/ocaml/preprocess/parser_raw.ml" +# 79074 "src/ocaml/preprocess/parser_raw.ml" in # 4734 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 79087 "src/ocaml/preprocess/parser_raw.ml" +# 79080 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 79094 "src/ocaml/preprocess/parser_raw.ml" +# 79087 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in @@ -79098,12 +79091,12 @@ module Tables = struct let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 79102 "src/ocaml/preprocess/parser_raw.ml" +# 79095 "src/ocaml/preprocess/parser_raw.ml" in # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 79107 "src/ocaml/preprocess/parser_raw.ml" +# 79100 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -79113,19 +79106,19 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 79117 "src/ocaml/preprocess/parser_raw.ml" +# 79110 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = # 4637 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 79124 "src/ocaml/preprocess/parser_raw.ml" +# 79117 "src/ocaml/preprocess/parser_raw.ml" in # 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 79129 "src/ocaml/preprocess/parser_raw.ml" +# 79122 "src/ocaml/preprocess/parser_raw.ml" in @@ -79135,7 +79128,7 @@ module Tables = struct Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 79139 "src/ocaml/preprocess/parser_raw.ml" +# 79132 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined3_, _startpos_label_) in @@ -79145,13 +79138,13 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 79149 "src/ocaml/preprocess/parser_raw.ml" +# 79142 "src/ocaml/preprocess/parser_raw.ml" in # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 79155 "src/ocaml/preprocess/parser_raw.ml" +# 79148 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -79250,18 +79243,18 @@ module Tables = struct let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 79254 "src/ocaml/preprocess/parser_raw.ml" +# 79247 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 79260 "src/ocaml/preprocess/parser_raw.ml" +# 79253 "src/ocaml/preprocess/parser_raw.ml" in # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 79265 "src/ocaml/preprocess/parser_raw.ml" +# 79258 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -79271,7 +79264,7 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 79275 "src/ocaml/preprocess/parser_raw.ml" +# 79268 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = @@ -79280,7 +79273,7 @@ module Tables = struct # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 79284 "src/ocaml/preprocess/parser_raw.ml" +# 79277 "src/ocaml/preprocess/parser_raw.ml" in let ty = @@ -79293,24 +79286,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 79297 "src/ocaml/preprocess/parser_raw.ml" +# 79290 "src/ocaml/preprocess/parser_raw.ml" in # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 79302 "src/ocaml/preprocess/parser_raw.ml" +# 79295 "src/ocaml/preprocess/parser_raw.ml" in # 4481 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 79308 "src/ocaml/preprocess/parser_raw.ml" +# 79301 "src/ocaml/preprocess/parser_raw.ml" in # 4732 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 79314 "src/ocaml/preprocess/parser_raw.ml" +# 79307 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -79320,20 +79313,20 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 79324 "src/ocaml/preprocess/parser_raw.ml" +# 79317 "src/ocaml/preprocess/parser_raw.ml" in # 4734 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 79330 "src/ocaml/preprocess/parser_raw.ml" +# 79323 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 79337 "src/ocaml/preprocess/parser_raw.ml" +# 79330 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in @@ -79341,12 +79334,12 @@ module Tables = struct let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 79345 "src/ocaml/preprocess/parser_raw.ml" +# 79338 "src/ocaml/preprocess/parser_raw.ml" in # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 79350 "src/ocaml/preprocess/parser_raw.ml" +# 79343 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -79356,19 +79349,19 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 79360 "src/ocaml/preprocess/parser_raw.ml" +# 79353 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = # 4637 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 79367 "src/ocaml/preprocess/parser_raw.ml" +# 79360 "src/ocaml/preprocess/parser_raw.ml" in # 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 79372 "src/ocaml/preprocess/parser_raw.ml" +# 79365 "src/ocaml/preprocess/parser_raw.ml" in @@ -79378,7 +79371,7 @@ module Tables = struct Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 79382 "src/ocaml/preprocess/parser_raw.ml" +# 79375 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_ty_, _startpos_label_) in @@ -79388,13 +79381,13 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 79392 "src/ocaml/preprocess/parser_raw.ml" +# 79385 "src/ocaml/preprocess/parser_raw.ml" in # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 79398 "src/ocaml/preprocess/parser_raw.ml" +# 79391 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -79502,19 +79495,19 @@ module Tables = struct # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 79506 "src/ocaml/preprocess/parser_raw.ml" +# 79499 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 79513 "src/ocaml/preprocess/parser_raw.ml" +# 79506 "src/ocaml/preprocess/parser_raw.ml" in # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 79518 "src/ocaml/preprocess/parser_raw.ml" +# 79511 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -79524,7 +79517,7 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 79528 "src/ocaml/preprocess/parser_raw.ml" +# 79521 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = @@ -79533,7 +79526,7 @@ module Tables = struct # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 79537 "src/ocaml/preprocess/parser_raw.ml" +# 79530 "src/ocaml/preprocess/parser_raw.ml" in let ty = @@ -79546,24 +79539,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 79550 "src/ocaml/preprocess/parser_raw.ml" +# 79543 "src/ocaml/preprocess/parser_raw.ml" in # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 79555 "src/ocaml/preprocess/parser_raw.ml" +# 79548 "src/ocaml/preprocess/parser_raw.ml" in # 4481 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 79561 "src/ocaml/preprocess/parser_raw.ml" +# 79554 "src/ocaml/preprocess/parser_raw.ml" in # 4732 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 79567 "src/ocaml/preprocess/parser_raw.ml" +# 79560 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -79573,20 +79566,20 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 79577 "src/ocaml/preprocess/parser_raw.ml" +# 79570 "src/ocaml/preprocess/parser_raw.ml" in # 4734 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 79583 "src/ocaml/preprocess/parser_raw.ml" +# 79576 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 79590 "src/ocaml/preprocess/parser_raw.ml" +# 79583 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in @@ -79594,12 +79587,12 @@ module Tables = struct let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 79598 "src/ocaml/preprocess/parser_raw.ml" +# 79591 "src/ocaml/preprocess/parser_raw.ml" in # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 79603 "src/ocaml/preprocess/parser_raw.ml" +# 79596 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -79609,19 +79602,19 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 79613 "src/ocaml/preprocess/parser_raw.ml" +# 79606 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = # 4637 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 79620 "src/ocaml/preprocess/parser_raw.ml" +# 79613 "src/ocaml/preprocess/parser_raw.ml" in # 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 79625 "src/ocaml/preprocess/parser_raw.ml" +# 79618 "src/ocaml/preprocess/parser_raw.ml" in @@ -79631,7 +79624,7 @@ module Tables = struct Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 79635 "src/ocaml/preprocess/parser_raw.ml" +# 79628 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined4_, _startpos_label_) in @@ -79641,13 +79634,13 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 79645 "src/ocaml/preprocess/parser_raw.ml" +# 79638 "src/ocaml/preprocess/parser_raw.ml" in # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 79651 "src/ocaml/preprocess/parser_raw.ml" +# 79644 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -79704,12 +79697,12 @@ module Tables = struct let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 79708 "src/ocaml/preprocess/parser_raw.ml" +# 79701 "src/ocaml/preprocess/parser_raw.ml" in let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 79713 "src/ocaml/preprocess/parser_raw.ml" +# 79706 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -79718,38 +79711,38 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 79722 "src/ocaml/preprocess/parser_raw.ml" +# 79715 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 79729 "src/ocaml/preprocess/parser_raw.ml" +# 79722 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = # 4736 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 79735 "src/ocaml/preprocess/parser_raw.ml" +# 79728 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 79741 "src/ocaml/preprocess/parser_raw.ml" +# 79734 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 79748 "src/ocaml/preprocess/parser_raw.ml" +# 79741 "src/ocaml/preprocess/parser_raw.ml" in # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 79753 "src/ocaml/preprocess/parser_raw.ml" +# 79746 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -79759,19 +79752,19 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 79763 "src/ocaml/preprocess/parser_raw.ml" +# 79756 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = # 4637 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 79770 "src/ocaml/preprocess/parser_raw.ml" +# 79763 "src/ocaml/preprocess/parser_raw.ml" in # 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 79775 "src/ocaml/preprocess/parser_raw.ml" +# 79768 "src/ocaml/preprocess/parser_raw.ml" in @@ -79781,7 +79774,7 @@ module Tables = struct Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 79785 "src/ocaml/preprocess/parser_raw.ml" +# 79778 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_label_) in @@ -79791,13 +79784,13 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 79795 "src/ocaml/preprocess/parser_raw.ml" +# 79788 "src/ocaml/preprocess/parser_raw.ml" in # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 79801 "src/ocaml/preprocess/parser_raw.ml" +# 79794 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -79861,12 +79854,12 @@ module Tables = struct let m1 = # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 79865 "src/ocaml/preprocess/parser_raw.ml" +# 79858 "src/ocaml/preprocess/parser_raw.ml" in let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 79870 "src/ocaml/preprocess/parser_raw.ml" +# 79863 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -79875,38 +79868,38 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 79879 "src/ocaml/preprocess/parser_raw.ml" +# 79872 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 79886 "src/ocaml/preprocess/parser_raw.ml" +# 79879 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = # 4736 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 79892 "src/ocaml/preprocess/parser_raw.ml" +# 79885 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 79898 "src/ocaml/preprocess/parser_raw.ml" +# 79891 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 79905 "src/ocaml/preprocess/parser_raw.ml" +# 79898 "src/ocaml/preprocess/parser_raw.ml" in # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 79910 "src/ocaml/preprocess/parser_raw.ml" +# 79903 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -79916,19 +79909,19 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 79920 "src/ocaml/preprocess/parser_raw.ml" +# 79913 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = # 4637 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 79927 "src/ocaml/preprocess/parser_raw.ml" +# 79920 "src/ocaml/preprocess/parser_raw.ml" in # 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 79932 "src/ocaml/preprocess/parser_raw.ml" +# 79925 "src/ocaml/preprocess/parser_raw.ml" in @@ -79938,7 +79931,7 @@ module Tables = struct Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 79942 "src/ocaml/preprocess/parser_raw.ml" +# 79935 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos_label_) in @@ -79948,13 +79941,13 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 79952 "src/ocaml/preprocess/parser_raw.ml" +# 79945 "src/ocaml/preprocess/parser_raw.ml" in # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 79958 "src/ocaml/preprocess/parser_raw.ml" +# 79951 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -80018,18 +80011,18 @@ module Tables = struct let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 80022 "src/ocaml/preprocess/parser_raw.ml" +# 80015 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 80028 "src/ocaml/preprocess/parser_raw.ml" +# 80021 "src/ocaml/preprocess/parser_raw.ml" in # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 80033 "src/ocaml/preprocess/parser_raw.ml" +# 80026 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -80039,38 +80032,38 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 80043 "src/ocaml/preprocess/parser_raw.ml" +# 80036 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 80050 "src/ocaml/preprocess/parser_raw.ml" +# 80043 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = # 4736 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 80056 "src/ocaml/preprocess/parser_raw.ml" +# 80049 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 80062 "src/ocaml/preprocess/parser_raw.ml" +# 80055 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 80069 "src/ocaml/preprocess/parser_raw.ml" +# 80062 "src/ocaml/preprocess/parser_raw.ml" in # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 80074 "src/ocaml/preprocess/parser_raw.ml" +# 80067 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -80080,19 +80073,19 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 80084 "src/ocaml/preprocess/parser_raw.ml" +# 80077 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = # 4637 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 80091 "src/ocaml/preprocess/parser_raw.ml" +# 80084 "src/ocaml/preprocess/parser_raw.ml" in # 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 80096 "src/ocaml/preprocess/parser_raw.ml" +# 80089 "src/ocaml/preprocess/parser_raw.ml" in @@ -80102,7 +80095,7 @@ module Tables = struct Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 80106 "src/ocaml/preprocess/parser_raw.ml" +# 80099 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_label_) in @@ -80112,13 +80105,13 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 80116 "src/ocaml/preprocess/parser_raw.ml" +# 80109 "src/ocaml/preprocess/parser_raw.ml" in # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 80122 "src/ocaml/preprocess/parser_raw.ml" +# 80115 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -80191,19 +80184,19 @@ module Tables = struct # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 80195 "src/ocaml/preprocess/parser_raw.ml" +# 80188 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 80202 "src/ocaml/preprocess/parser_raw.ml" +# 80195 "src/ocaml/preprocess/parser_raw.ml" in # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 80207 "src/ocaml/preprocess/parser_raw.ml" +# 80200 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -80213,38 +80206,38 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 80217 "src/ocaml/preprocess/parser_raw.ml" +# 80210 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 80224 "src/ocaml/preprocess/parser_raw.ml" +# 80217 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = # 4736 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 80230 "src/ocaml/preprocess/parser_raw.ml" +# 80223 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 80236 "src/ocaml/preprocess/parser_raw.ml" +# 80229 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 80243 "src/ocaml/preprocess/parser_raw.ml" +# 80236 "src/ocaml/preprocess/parser_raw.ml" in # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 80248 "src/ocaml/preprocess/parser_raw.ml" +# 80241 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -80254,19 +80247,19 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 80258 "src/ocaml/preprocess/parser_raw.ml" +# 80251 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = # 4637 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 80265 "src/ocaml/preprocess/parser_raw.ml" +# 80258 "src/ocaml/preprocess/parser_raw.ml" in # 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 80270 "src/ocaml/preprocess/parser_raw.ml" +# 80263 "src/ocaml/preprocess/parser_raw.ml" in @@ -80276,7 +80269,7 @@ module Tables = struct Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 80280 "src/ocaml/preprocess/parser_raw.ml" +# 80273 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined2_, _startpos_label_) in @@ -80286,13 +80279,13 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 80290 "src/ocaml/preprocess/parser_raw.ml" +# 80283 "src/ocaml/preprocess/parser_raw.ml" in # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 80296 "src/ocaml/preprocess/parser_raw.ml" +# 80289 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -80356,12 +80349,12 @@ module Tables = struct let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 80360 "src/ocaml/preprocess/parser_raw.ml" +# 80353 "src/ocaml/preprocess/parser_raw.ml" in let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 80365 "src/ocaml/preprocess/parser_raw.ml" +# 80358 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -80370,7 +80363,7 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 80374 "src/ocaml/preprocess/parser_raw.ml" +# 80367 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = @@ -80379,32 +80372,32 @@ module Tables = struct # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 80383 "src/ocaml/preprocess/parser_raw.ml" +# 80376 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = # 4736 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 80390 "src/ocaml/preprocess/parser_raw.ml" +# 80383 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 80396 "src/ocaml/preprocess/parser_raw.ml" +# 80389 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 80403 "src/ocaml/preprocess/parser_raw.ml" +# 80396 "src/ocaml/preprocess/parser_raw.ml" in # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 80408 "src/ocaml/preprocess/parser_raw.ml" +# 80401 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -80414,19 +80407,19 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 80418 "src/ocaml/preprocess/parser_raw.ml" +# 80411 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = # 4637 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 80425 "src/ocaml/preprocess/parser_raw.ml" +# 80418 "src/ocaml/preprocess/parser_raw.ml" in # 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 80430 "src/ocaml/preprocess/parser_raw.ml" +# 80423 "src/ocaml/preprocess/parser_raw.ml" in @@ -80436,7 +80429,7 @@ module Tables = struct Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 80440 "src/ocaml/preprocess/parser_raw.ml" +# 80433 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_label_) in @@ -80446,13 +80439,13 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 80450 "src/ocaml/preprocess/parser_raw.ml" +# 80443 "src/ocaml/preprocess/parser_raw.ml" in # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 80456 "src/ocaml/preprocess/parser_raw.ml" +# 80449 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -80523,12 +80516,12 @@ module Tables = struct let m1 = # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 80527 "src/ocaml/preprocess/parser_raw.ml" +# 80520 "src/ocaml/preprocess/parser_raw.ml" in let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 80532 "src/ocaml/preprocess/parser_raw.ml" +# 80525 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -80537,7 +80530,7 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 80541 "src/ocaml/preprocess/parser_raw.ml" +# 80534 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = @@ -80546,32 +80539,32 @@ module Tables = struct # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 80550 "src/ocaml/preprocess/parser_raw.ml" +# 80543 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = # 4736 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 80557 "src/ocaml/preprocess/parser_raw.ml" +# 80550 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 80563 "src/ocaml/preprocess/parser_raw.ml" +# 80556 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 80570 "src/ocaml/preprocess/parser_raw.ml" +# 80563 "src/ocaml/preprocess/parser_raw.ml" in # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 80575 "src/ocaml/preprocess/parser_raw.ml" +# 80568 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -80581,19 +80574,19 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 80585 "src/ocaml/preprocess/parser_raw.ml" +# 80578 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = # 4637 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 80592 "src/ocaml/preprocess/parser_raw.ml" +# 80585 "src/ocaml/preprocess/parser_raw.ml" in # 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 80597 "src/ocaml/preprocess/parser_raw.ml" +# 80590 "src/ocaml/preprocess/parser_raw.ml" in @@ -80603,7 +80596,7 @@ module Tables = struct Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 80607 "src/ocaml/preprocess/parser_raw.ml" +# 80600 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined2_, _startpos_label_) in @@ -80613,13 +80606,13 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 80617 "src/ocaml/preprocess/parser_raw.ml" +# 80610 "src/ocaml/preprocess/parser_raw.ml" in # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 80623 "src/ocaml/preprocess/parser_raw.ml" +# 80616 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -80690,18 +80683,18 @@ module Tables = struct let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 80694 "src/ocaml/preprocess/parser_raw.ml" +# 80687 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 80700 "src/ocaml/preprocess/parser_raw.ml" +# 80693 "src/ocaml/preprocess/parser_raw.ml" in # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 80705 "src/ocaml/preprocess/parser_raw.ml" +# 80698 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -80711,7 +80704,7 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 80715 "src/ocaml/preprocess/parser_raw.ml" +# 80708 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = @@ -80720,32 +80713,32 @@ module Tables = struct # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 80724 "src/ocaml/preprocess/parser_raw.ml" +# 80717 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = # 4736 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 80731 "src/ocaml/preprocess/parser_raw.ml" +# 80724 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 80737 "src/ocaml/preprocess/parser_raw.ml" +# 80730 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 80744 "src/ocaml/preprocess/parser_raw.ml" +# 80737 "src/ocaml/preprocess/parser_raw.ml" in # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 80749 "src/ocaml/preprocess/parser_raw.ml" +# 80742 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -80755,19 +80748,19 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 80759 "src/ocaml/preprocess/parser_raw.ml" +# 80752 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = # 4637 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 80766 "src/ocaml/preprocess/parser_raw.ml" +# 80759 "src/ocaml/preprocess/parser_raw.ml" in # 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 80771 "src/ocaml/preprocess/parser_raw.ml" +# 80764 "src/ocaml/preprocess/parser_raw.ml" in @@ -80777,7 +80770,7 @@ module Tables = struct Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 80781 "src/ocaml/preprocess/parser_raw.ml" +# 80774 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_label_) in @@ -80787,13 +80780,13 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 80791 "src/ocaml/preprocess/parser_raw.ml" +# 80784 "src/ocaml/preprocess/parser_raw.ml" in # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 80797 "src/ocaml/preprocess/parser_raw.ml" +# 80790 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -80873,19 +80866,19 @@ module Tables = struct # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 80877 "src/ocaml/preprocess/parser_raw.ml" +# 80870 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 80884 "src/ocaml/preprocess/parser_raw.ml" +# 80877 "src/ocaml/preprocess/parser_raw.ml" in # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 80889 "src/ocaml/preprocess/parser_raw.ml" +# 80882 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -80895,7 +80888,7 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 80899 "src/ocaml/preprocess/parser_raw.ml" +# 80892 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = @@ -80904,32 +80897,32 @@ module Tables = struct # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 80908 "src/ocaml/preprocess/parser_raw.ml" +# 80901 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = # 4736 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 80915 "src/ocaml/preprocess/parser_raw.ml" +# 80908 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 80921 "src/ocaml/preprocess/parser_raw.ml" +# 80914 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 80928 "src/ocaml/preprocess/parser_raw.ml" +# 80921 "src/ocaml/preprocess/parser_raw.ml" in # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 80933 "src/ocaml/preprocess/parser_raw.ml" +# 80926 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -80939,19 +80932,19 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 80943 "src/ocaml/preprocess/parser_raw.ml" +# 80936 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = # 4637 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 80950 "src/ocaml/preprocess/parser_raw.ml" +# 80943 "src/ocaml/preprocess/parser_raw.ml" in # 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 80955 "src/ocaml/preprocess/parser_raw.ml" +# 80948 "src/ocaml/preprocess/parser_raw.ml" in @@ -80961,7 +80954,7 @@ module Tables = struct Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 80965 "src/ocaml/preprocess/parser_raw.ml" +# 80958 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined3_, _startpos_label_) in @@ -80971,13 +80964,13 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 80975 "src/ocaml/preprocess/parser_raw.ml" +# 80968 "src/ocaml/preprocess/parser_raw.ml" in # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 80981 "src/ocaml/preprocess/parser_raw.ml" +# 80974 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -81054,7 +81047,7 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 81058 "src/ocaml/preprocess/parser_raw.ml" +# 81051 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -81065,12 +81058,12 @@ module Tables = struct let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 81069 "src/ocaml/preprocess/parser_raw.ml" +# 81062 "src/ocaml/preprocess/parser_raw.ml" in let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 81074 "src/ocaml/preprocess/parser_raw.ml" +# 81067 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -81079,14 +81072,14 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 81083 "src/ocaml/preprocess/parser_raw.ml" +# 81076 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 81090 "src/ocaml/preprocess/parser_raw.ml" +# 81083 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = @@ -81097,24 +81090,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 81101 "src/ocaml/preprocess/parser_raw.ml" +# 81094 "src/ocaml/preprocess/parser_raw.ml" in # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 81106 "src/ocaml/preprocess/parser_raw.ml" +# 81099 "src/ocaml/preprocess/parser_raw.ml" in # 4481 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 81112 "src/ocaml/preprocess/parser_raw.ml" +# 81105 "src/ocaml/preprocess/parser_raw.ml" in # 4732 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 81118 "src/ocaml/preprocess/parser_raw.ml" +# 81111 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -81124,27 +81117,27 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 81128 "src/ocaml/preprocess/parser_raw.ml" +# 81121 "src/ocaml/preprocess/parser_raw.ml" in # 4734 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 81134 "src/ocaml/preprocess/parser_raw.ml" +# 81127 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 81141 "src/ocaml/preprocess/parser_raw.ml" +# 81134 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 81148 "src/ocaml/preprocess/parser_raw.ml" +# 81141 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -81153,19 +81146,19 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 81157 "src/ocaml/preprocess/parser_raw.ml" +# 81150 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = # 4639 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 81164 "src/ocaml/preprocess/parser_raw.ml" +# 81157 "src/ocaml/preprocess/parser_raw.ml" in # 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 81169 "src/ocaml/preprocess/parser_raw.ml" +# 81162 "src/ocaml/preprocess/parser_raw.ml" in @@ -81175,7 +81168,7 @@ module Tables = struct Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 81179 "src/ocaml/preprocess/parser_raw.ml" +# 81172 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_ty_, _startpos_label_) in @@ -81185,13 +81178,13 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 81189 "src/ocaml/preprocess/parser_raw.ml" +# 81182 "src/ocaml/preprocess/parser_raw.ml" in # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 81195 "src/ocaml/preprocess/parser_raw.ml" +# 81188 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -81275,7 +81268,7 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 81279 "src/ocaml/preprocess/parser_raw.ml" +# 81272 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -81287,12 +81280,12 @@ module Tables = struct let m1 = # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 81291 "src/ocaml/preprocess/parser_raw.ml" +# 81284 "src/ocaml/preprocess/parser_raw.ml" in let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 81296 "src/ocaml/preprocess/parser_raw.ml" +# 81289 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -81301,14 +81294,14 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 81305 "src/ocaml/preprocess/parser_raw.ml" +# 81298 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 81312 "src/ocaml/preprocess/parser_raw.ml" +# 81305 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = @@ -81319,24 +81312,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 81323 "src/ocaml/preprocess/parser_raw.ml" +# 81316 "src/ocaml/preprocess/parser_raw.ml" in # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 81328 "src/ocaml/preprocess/parser_raw.ml" +# 81321 "src/ocaml/preprocess/parser_raw.ml" in # 4481 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 81334 "src/ocaml/preprocess/parser_raw.ml" +# 81327 "src/ocaml/preprocess/parser_raw.ml" in # 4732 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 81340 "src/ocaml/preprocess/parser_raw.ml" +# 81333 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -81346,27 +81339,27 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 81350 "src/ocaml/preprocess/parser_raw.ml" +# 81343 "src/ocaml/preprocess/parser_raw.ml" in # 4734 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 81356 "src/ocaml/preprocess/parser_raw.ml" +# 81349 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 81363 "src/ocaml/preprocess/parser_raw.ml" +# 81356 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 81370 "src/ocaml/preprocess/parser_raw.ml" +# 81363 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -81375,19 +81368,19 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 81379 "src/ocaml/preprocess/parser_raw.ml" +# 81372 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = # 4639 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 81386 "src/ocaml/preprocess/parser_raw.ml" +# 81379 "src/ocaml/preprocess/parser_raw.ml" in # 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 81391 "src/ocaml/preprocess/parser_raw.ml" +# 81384 "src/ocaml/preprocess/parser_raw.ml" in @@ -81397,7 +81390,7 @@ module Tables = struct Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 81401 "src/ocaml/preprocess/parser_raw.ml" +# 81394 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos_label_) in @@ -81407,13 +81400,13 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 81411 "src/ocaml/preprocess/parser_raw.ml" +# 81404 "src/ocaml/preprocess/parser_raw.ml" in # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 81417 "src/ocaml/preprocess/parser_raw.ml" +# 81410 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -81497,7 +81490,7 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 81501 "src/ocaml/preprocess/parser_raw.ml" +# 81494 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -81509,18 +81502,18 @@ module Tables = struct let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 81513 "src/ocaml/preprocess/parser_raw.ml" +# 81506 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 81519 "src/ocaml/preprocess/parser_raw.ml" +# 81512 "src/ocaml/preprocess/parser_raw.ml" in # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 81524 "src/ocaml/preprocess/parser_raw.ml" +# 81517 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -81530,14 +81523,14 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 81534 "src/ocaml/preprocess/parser_raw.ml" +# 81527 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 81541 "src/ocaml/preprocess/parser_raw.ml" +# 81534 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = @@ -81548,24 +81541,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 81552 "src/ocaml/preprocess/parser_raw.ml" +# 81545 "src/ocaml/preprocess/parser_raw.ml" in # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 81557 "src/ocaml/preprocess/parser_raw.ml" +# 81550 "src/ocaml/preprocess/parser_raw.ml" in # 4481 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 81563 "src/ocaml/preprocess/parser_raw.ml" +# 81556 "src/ocaml/preprocess/parser_raw.ml" in # 4732 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 81569 "src/ocaml/preprocess/parser_raw.ml" +# 81562 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -81575,27 +81568,27 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 81579 "src/ocaml/preprocess/parser_raw.ml" +# 81572 "src/ocaml/preprocess/parser_raw.ml" in # 4734 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 81585 "src/ocaml/preprocess/parser_raw.ml" +# 81578 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 81592 "src/ocaml/preprocess/parser_raw.ml" +# 81585 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 81599 "src/ocaml/preprocess/parser_raw.ml" +# 81592 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -81604,19 +81597,19 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 81608 "src/ocaml/preprocess/parser_raw.ml" +# 81601 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = # 4639 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 81615 "src/ocaml/preprocess/parser_raw.ml" +# 81608 "src/ocaml/preprocess/parser_raw.ml" in # 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 81620 "src/ocaml/preprocess/parser_raw.ml" +# 81613 "src/ocaml/preprocess/parser_raw.ml" in @@ -81626,7 +81619,7 @@ module Tables = struct Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 81630 "src/ocaml/preprocess/parser_raw.ml" +# 81623 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_ty_, _startpos_label_) in @@ -81636,13 +81629,13 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 81640 "src/ocaml/preprocess/parser_raw.ml" +# 81633 "src/ocaml/preprocess/parser_raw.ml" in # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 81646 "src/ocaml/preprocess/parser_raw.ml" +# 81639 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -81733,7 +81726,7 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 81737 "src/ocaml/preprocess/parser_raw.ml" +# 81730 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -81747,19 +81740,19 @@ module Tables = struct # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 81751 "src/ocaml/preprocess/parser_raw.ml" +# 81744 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 81758 "src/ocaml/preprocess/parser_raw.ml" +# 81751 "src/ocaml/preprocess/parser_raw.ml" in # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 81763 "src/ocaml/preprocess/parser_raw.ml" +# 81756 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -81769,14 +81762,14 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 81773 "src/ocaml/preprocess/parser_raw.ml" +# 81766 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 81780 "src/ocaml/preprocess/parser_raw.ml" +# 81773 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = @@ -81787,24 +81780,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 81791 "src/ocaml/preprocess/parser_raw.ml" +# 81784 "src/ocaml/preprocess/parser_raw.ml" in # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 81796 "src/ocaml/preprocess/parser_raw.ml" +# 81789 "src/ocaml/preprocess/parser_raw.ml" in # 4481 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 81802 "src/ocaml/preprocess/parser_raw.ml" +# 81795 "src/ocaml/preprocess/parser_raw.ml" in # 4732 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 81808 "src/ocaml/preprocess/parser_raw.ml" +# 81801 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -81814,27 +81807,27 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 81818 "src/ocaml/preprocess/parser_raw.ml" +# 81811 "src/ocaml/preprocess/parser_raw.ml" in # 4734 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 81824 "src/ocaml/preprocess/parser_raw.ml" +# 81817 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 81831 "src/ocaml/preprocess/parser_raw.ml" +# 81824 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 81838 "src/ocaml/preprocess/parser_raw.ml" +# 81831 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -81843,19 +81836,19 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 81847 "src/ocaml/preprocess/parser_raw.ml" +# 81840 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = # 4639 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 81854 "src/ocaml/preprocess/parser_raw.ml" +# 81847 "src/ocaml/preprocess/parser_raw.ml" in # 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 81859 "src/ocaml/preprocess/parser_raw.ml" +# 81852 "src/ocaml/preprocess/parser_raw.ml" in @@ -81865,7 +81858,7 @@ module Tables = struct Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 81869 "src/ocaml/preprocess/parser_raw.ml" +# 81862 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined2_, _startpos_label_) in @@ -81875,13 +81868,13 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 81879 "src/ocaml/preprocess/parser_raw.ml" +# 81872 "src/ocaml/preprocess/parser_raw.ml" in # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 81885 "src/ocaml/preprocess/parser_raw.ml" +# 81878 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -81965,7 +81958,7 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 81969 "src/ocaml/preprocess/parser_raw.ml" +# 81962 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -81976,12 +81969,12 @@ module Tables = struct let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 81980 "src/ocaml/preprocess/parser_raw.ml" +# 81973 "src/ocaml/preprocess/parser_raw.ml" in let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 81985 "src/ocaml/preprocess/parser_raw.ml" +# 81978 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -81990,7 +81983,7 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 81994 "src/ocaml/preprocess/parser_raw.ml" +# 81987 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = @@ -81999,7 +81992,7 @@ module Tables = struct # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 82003 "src/ocaml/preprocess/parser_raw.ml" +# 81996 "src/ocaml/preprocess/parser_raw.ml" in let ty = @@ -82011,24 +82004,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 82015 "src/ocaml/preprocess/parser_raw.ml" +# 82008 "src/ocaml/preprocess/parser_raw.ml" in # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 82020 "src/ocaml/preprocess/parser_raw.ml" +# 82013 "src/ocaml/preprocess/parser_raw.ml" in # 4481 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 82026 "src/ocaml/preprocess/parser_raw.ml" +# 82019 "src/ocaml/preprocess/parser_raw.ml" in # 4732 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 82032 "src/ocaml/preprocess/parser_raw.ml" +# 82025 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -82038,27 +82031,27 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 82042 "src/ocaml/preprocess/parser_raw.ml" +# 82035 "src/ocaml/preprocess/parser_raw.ml" in # 4734 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 82048 "src/ocaml/preprocess/parser_raw.ml" +# 82041 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 82055 "src/ocaml/preprocess/parser_raw.ml" +# 82048 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 82062 "src/ocaml/preprocess/parser_raw.ml" +# 82055 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -82067,19 +82060,19 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 82071 "src/ocaml/preprocess/parser_raw.ml" +# 82064 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = # 4639 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 82078 "src/ocaml/preprocess/parser_raw.ml" +# 82071 "src/ocaml/preprocess/parser_raw.ml" in # 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 82083 "src/ocaml/preprocess/parser_raw.ml" +# 82076 "src/ocaml/preprocess/parser_raw.ml" in @@ -82089,7 +82082,7 @@ module Tables = struct Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 82093 "src/ocaml/preprocess/parser_raw.ml" +# 82086 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_ty_, _startpos_label_) in @@ -82099,13 +82092,13 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 82103 "src/ocaml/preprocess/parser_raw.ml" +# 82096 "src/ocaml/preprocess/parser_raw.ml" in # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 82109 "src/ocaml/preprocess/parser_raw.ml" +# 82102 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -82196,7 +82189,7 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 82200 "src/ocaml/preprocess/parser_raw.ml" +# 82193 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -82208,12 +82201,12 @@ module Tables = struct let m1 = # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 82212 "src/ocaml/preprocess/parser_raw.ml" +# 82205 "src/ocaml/preprocess/parser_raw.ml" in let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 82217 "src/ocaml/preprocess/parser_raw.ml" +# 82210 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -82222,7 +82215,7 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 82226 "src/ocaml/preprocess/parser_raw.ml" +# 82219 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = @@ -82231,7 +82224,7 @@ module Tables = struct # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 82235 "src/ocaml/preprocess/parser_raw.ml" +# 82228 "src/ocaml/preprocess/parser_raw.ml" in let ty = @@ -82243,24 +82236,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 82247 "src/ocaml/preprocess/parser_raw.ml" +# 82240 "src/ocaml/preprocess/parser_raw.ml" in # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 82252 "src/ocaml/preprocess/parser_raw.ml" +# 82245 "src/ocaml/preprocess/parser_raw.ml" in # 4481 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 82258 "src/ocaml/preprocess/parser_raw.ml" +# 82251 "src/ocaml/preprocess/parser_raw.ml" in # 4732 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 82264 "src/ocaml/preprocess/parser_raw.ml" +# 82257 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -82270,27 +82263,27 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 82274 "src/ocaml/preprocess/parser_raw.ml" +# 82267 "src/ocaml/preprocess/parser_raw.ml" in # 4734 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 82280 "src/ocaml/preprocess/parser_raw.ml" +# 82273 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 82287 "src/ocaml/preprocess/parser_raw.ml" +# 82280 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 82294 "src/ocaml/preprocess/parser_raw.ml" +# 82287 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -82299,19 +82292,19 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 82303 "src/ocaml/preprocess/parser_raw.ml" +# 82296 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = # 4639 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 82310 "src/ocaml/preprocess/parser_raw.ml" +# 82303 "src/ocaml/preprocess/parser_raw.ml" in # 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 82315 "src/ocaml/preprocess/parser_raw.ml" +# 82308 "src/ocaml/preprocess/parser_raw.ml" in @@ -82321,7 +82314,7 @@ module Tables = struct Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 82325 "src/ocaml/preprocess/parser_raw.ml" +# 82318 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined2_, _startpos_label_) in @@ -82331,13 +82324,13 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 82335 "src/ocaml/preprocess/parser_raw.ml" +# 82328 "src/ocaml/preprocess/parser_raw.ml" in # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 82341 "src/ocaml/preprocess/parser_raw.ml" +# 82334 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -82428,7 +82421,7 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 82432 "src/ocaml/preprocess/parser_raw.ml" +# 82425 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -82440,18 +82433,18 @@ module Tables = struct let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 82444 "src/ocaml/preprocess/parser_raw.ml" +# 82437 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 82450 "src/ocaml/preprocess/parser_raw.ml" +# 82443 "src/ocaml/preprocess/parser_raw.ml" in # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 82455 "src/ocaml/preprocess/parser_raw.ml" +# 82448 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -82461,7 +82454,7 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 82465 "src/ocaml/preprocess/parser_raw.ml" +# 82458 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = @@ -82470,7 +82463,7 @@ module Tables = struct # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 82474 "src/ocaml/preprocess/parser_raw.ml" +# 82467 "src/ocaml/preprocess/parser_raw.ml" in let ty = @@ -82482,24 +82475,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 82486 "src/ocaml/preprocess/parser_raw.ml" +# 82479 "src/ocaml/preprocess/parser_raw.ml" in # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 82491 "src/ocaml/preprocess/parser_raw.ml" +# 82484 "src/ocaml/preprocess/parser_raw.ml" in # 4481 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 82497 "src/ocaml/preprocess/parser_raw.ml" +# 82490 "src/ocaml/preprocess/parser_raw.ml" in # 4732 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 82503 "src/ocaml/preprocess/parser_raw.ml" +# 82496 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -82509,27 +82502,27 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 82513 "src/ocaml/preprocess/parser_raw.ml" +# 82506 "src/ocaml/preprocess/parser_raw.ml" in # 4734 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 82519 "src/ocaml/preprocess/parser_raw.ml" +# 82512 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 82526 "src/ocaml/preprocess/parser_raw.ml" +# 82519 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 82533 "src/ocaml/preprocess/parser_raw.ml" +# 82526 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -82538,19 +82531,19 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 82542 "src/ocaml/preprocess/parser_raw.ml" +# 82535 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = # 4639 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 82549 "src/ocaml/preprocess/parser_raw.ml" +# 82542 "src/ocaml/preprocess/parser_raw.ml" in # 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 82554 "src/ocaml/preprocess/parser_raw.ml" +# 82547 "src/ocaml/preprocess/parser_raw.ml" in @@ -82560,7 +82553,7 @@ module Tables = struct Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 82564 "src/ocaml/preprocess/parser_raw.ml" +# 82557 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_ty_, _startpos_label_) in @@ -82570,13 +82563,13 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 82574 "src/ocaml/preprocess/parser_raw.ml" +# 82567 "src/ocaml/preprocess/parser_raw.ml" in # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 82580 "src/ocaml/preprocess/parser_raw.ml" +# 82573 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -82674,7 +82667,7 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 82678 "src/ocaml/preprocess/parser_raw.ml" +# 82671 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -82688,19 +82681,19 @@ module Tables = struct # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 82692 "src/ocaml/preprocess/parser_raw.ml" +# 82685 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 82699 "src/ocaml/preprocess/parser_raw.ml" +# 82692 "src/ocaml/preprocess/parser_raw.ml" in # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 82704 "src/ocaml/preprocess/parser_raw.ml" +# 82697 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -82710,7 +82703,7 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 82714 "src/ocaml/preprocess/parser_raw.ml" +# 82707 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = @@ -82719,7 +82712,7 @@ module Tables = struct # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 82723 "src/ocaml/preprocess/parser_raw.ml" +# 82716 "src/ocaml/preprocess/parser_raw.ml" in let ty = @@ -82731,24 +82724,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 82735 "src/ocaml/preprocess/parser_raw.ml" +# 82728 "src/ocaml/preprocess/parser_raw.ml" in # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 82740 "src/ocaml/preprocess/parser_raw.ml" +# 82733 "src/ocaml/preprocess/parser_raw.ml" in # 4481 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 82746 "src/ocaml/preprocess/parser_raw.ml" +# 82739 "src/ocaml/preprocess/parser_raw.ml" in # 4732 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 82752 "src/ocaml/preprocess/parser_raw.ml" +# 82745 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -82758,27 +82751,27 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 82762 "src/ocaml/preprocess/parser_raw.ml" +# 82755 "src/ocaml/preprocess/parser_raw.ml" in # 4734 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 82768 "src/ocaml/preprocess/parser_raw.ml" +# 82761 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 82775 "src/ocaml/preprocess/parser_raw.ml" +# 82768 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 82782 "src/ocaml/preprocess/parser_raw.ml" +# 82775 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -82787,19 +82780,19 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 82791 "src/ocaml/preprocess/parser_raw.ml" +# 82784 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = # 4639 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 82798 "src/ocaml/preprocess/parser_raw.ml" +# 82791 "src/ocaml/preprocess/parser_raw.ml" in # 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 82803 "src/ocaml/preprocess/parser_raw.ml" +# 82796 "src/ocaml/preprocess/parser_raw.ml" in @@ -82809,7 +82802,7 @@ module Tables = struct Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 82813 "src/ocaml/preprocess/parser_raw.ml" +# 82806 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined3_, _startpos_label_) in @@ -82819,13 +82812,13 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 82823 "src/ocaml/preprocess/parser_raw.ml" +# 82816 "src/ocaml/preprocess/parser_raw.ml" in # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 82829 "src/ocaml/preprocess/parser_raw.ml" +# 82822 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -82874,7 +82867,7 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 82878 "src/ocaml/preprocess/parser_raw.ml" +# 82871 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -82886,12 +82879,12 @@ module Tables = struct let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 82890 "src/ocaml/preprocess/parser_raw.ml" +# 82883 "src/ocaml/preprocess/parser_raw.ml" in let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 82895 "src/ocaml/preprocess/parser_raw.ml" +# 82888 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -82900,32 +82893,32 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 82904 "src/ocaml/preprocess/parser_raw.ml" +# 82897 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 82911 "src/ocaml/preprocess/parser_raw.ml" +# 82904 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = # 4736 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 82917 "src/ocaml/preprocess/parser_raw.ml" +# 82910 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 82923 "src/ocaml/preprocess/parser_raw.ml" +# 82916 "src/ocaml/preprocess/parser_raw.ml" in let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 82929 "src/ocaml/preprocess/parser_raw.ml" +# 82922 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -82934,19 +82927,19 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 82938 "src/ocaml/preprocess/parser_raw.ml" +# 82931 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = # 4639 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 82945 "src/ocaml/preprocess/parser_raw.ml" +# 82938 "src/ocaml/preprocess/parser_raw.ml" in # 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 82950 "src/ocaml/preprocess/parser_raw.ml" +# 82943 "src/ocaml/preprocess/parser_raw.ml" in @@ -82956,7 +82949,7 @@ module Tables = struct Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 82960 "src/ocaml/preprocess/parser_raw.ml" +# 82953 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_label_) in @@ -82966,13 +82959,13 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 82970 "src/ocaml/preprocess/parser_raw.ml" +# 82963 "src/ocaml/preprocess/parser_raw.ml" in # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 82976 "src/ocaml/preprocess/parser_raw.ml" +# 82969 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -83028,7 +83021,7 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 83032 "src/ocaml/preprocess/parser_raw.ml" +# 83025 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -83040,12 +83033,12 @@ module Tables = struct let m1 = # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 83044 "src/ocaml/preprocess/parser_raw.ml" +# 83037 "src/ocaml/preprocess/parser_raw.ml" in let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 83049 "src/ocaml/preprocess/parser_raw.ml" +# 83042 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -83054,32 +83047,32 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 83058 "src/ocaml/preprocess/parser_raw.ml" +# 83051 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 83065 "src/ocaml/preprocess/parser_raw.ml" +# 83058 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = # 4736 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 83071 "src/ocaml/preprocess/parser_raw.ml" +# 83064 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 83077 "src/ocaml/preprocess/parser_raw.ml" +# 83070 "src/ocaml/preprocess/parser_raw.ml" in let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 83083 "src/ocaml/preprocess/parser_raw.ml" +# 83076 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -83088,19 +83081,19 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 83092 "src/ocaml/preprocess/parser_raw.ml" +# 83085 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = # 4639 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 83099 "src/ocaml/preprocess/parser_raw.ml" +# 83092 "src/ocaml/preprocess/parser_raw.ml" in # 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 83104 "src/ocaml/preprocess/parser_raw.ml" +# 83097 "src/ocaml/preprocess/parser_raw.ml" in @@ -83110,7 +83103,7 @@ module Tables = struct Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 83114 "src/ocaml/preprocess/parser_raw.ml" +# 83107 "src/ocaml/preprocess/parser_raw.ml" in let _startpos__1_ = _startpos_label_ in @@ -83120,13 +83113,13 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 83124 "src/ocaml/preprocess/parser_raw.ml" +# 83117 "src/ocaml/preprocess/parser_raw.ml" in # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 83130 "src/ocaml/preprocess/parser_raw.ml" +# 83123 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -83182,7 +83175,7 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 83186 "src/ocaml/preprocess/parser_raw.ml" +# 83179 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -83194,18 +83187,18 @@ module Tables = struct let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 83198 "src/ocaml/preprocess/parser_raw.ml" +# 83191 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 83204 "src/ocaml/preprocess/parser_raw.ml" +# 83197 "src/ocaml/preprocess/parser_raw.ml" in # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 83209 "src/ocaml/preprocess/parser_raw.ml" +# 83202 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -83215,32 +83208,32 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 83219 "src/ocaml/preprocess/parser_raw.ml" +# 83212 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 83226 "src/ocaml/preprocess/parser_raw.ml" +# 83219 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = # 4736 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 83232 "src/ocaml/preprocess/parser_raw.ml" +# 83225 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 83238 "src/ocaml/preprocess/parser_raw.ml" +# 83231 "src/ocaml/preprocess/parser_raw.ml" in let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 83244 "src/ocaml/preprocess/parser_raw.ml" +# 83237 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -83249,19 +83242,19 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 83253 "src/ocaml/preprocess/parser_raw.ml" +# 83246 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = # 4639 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 83260 "src/ocaml/preprocess/parser_raw.ml" +# 83253 "src/ocaml/preprocess/parser_raw.ml" in # 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 83265 "src/ocaml/preprocess/parser_raw.ml" +# 83258 "src/ocaml/preprocess/parser_raw.ml" in @@ -83271,7 +83264,7 @@ module Tables = struct Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 83275 "src/ocaml/preprocess/parser_raw.ml" +# 83268 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_label_) in @@ -83281,13 +83274,13 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 83285 "src/ocaml/preprocess/parser_raw.ml" +# 83278 "src/ocaml/preprocess/parser_raw.ml" in # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 83291 "src/ocaml/preprocess/parser_raw.ml" +# 83284 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -83350,7 +83343,7 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 83354 "src/ocaml/preprocess/parser_raw.ml" +# 83347 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -83364,19 +83357,19 @@ module Tables = struct # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 83368 "src/ocaml/preprocess/parser_raw.ml" +# 83361 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 83375 "src/ocaml/preprocess/parser_raw.ml" +# 83368 "src/ocaml/preprocess/parser_raw.ml" in # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 83380 "src/ocaml/preprocess/parser_raw.ml" +# 83373 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -83386,32 +83379,32 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 83390 "src/ocaml/preprocess/parser_raw.ml" +# 83383 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 83397 "src/ocaml/preprocess/parser_raw.ml" +# 83390 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = # 4736 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 83403 "src/ocaml/preprocess/parser_raw.ml" +# 83396 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 83409 "src/ocaml/preprocess/parser_raw.ml" +# 83402 "src/ocaml/preprocess/parser_raw.ml" in let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 83415 "src/ocaml/preprocess/parser_raw.ml" +# 83408 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -83420,19 +83413,19 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 83424 "src/ocaml/preprocess/parser_raw.ml" +# 83417 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = # 4639 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 83431 "src/ocaml/preprocess/parser_raw.ml" +# 83424 "src/ocaml/preprocess/parser_raw.ml" in # 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 83436 "src/ocaml/preprocess/parser_raw.ml" +# 83429 "src/ocaml/preprocess/parser_raw.ml" in @@ -83442,7 +83435,7 @@ module Tables = struct Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 83446 "src/ocaml/preprocess/parser_raw.ml" +# 83439 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos_label_) in @@ -83452,13 +83445,13 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 83456 "src/ocaml/preprocess/parser_raw.ml" +# 83449 "src/ocaml/preprocess/parser_raw.ml" in # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 83462 "src/ocaml/preprocess/parser_raw.ml" +# 83455 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -83514,7 +83507,7 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 83518 "src/ocaml/preprocess/parser_raw.ml" +# 83511 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -83526,12 +83519,12 @@ module Tables = struct let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 83530 "src/ocaml/preprocess/parser_raw.ml" +# 83523 "src/ocaml/preprocess/parser_raw.ml" in let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 83535 "src/ocaml/preprocess/parser_raw.ml" +# 83528 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -83540,32 +83533,32 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 83544 "src/ocaml/preprocess/parser_raw.ml" +# 83537 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 83551 "src/ocaml/preprocess/parser_raw.ml" +# 83544 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = # 4736 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 83557 "src/ocaml/preprocess/parser_raw.ml" +# 83550 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 83563 "src/ocaml/preprocess/parser_raw.ml" +# 83556 "src/ocaml/preprocess/parser_raw.ml" in let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 83569 "src/ocaml/preprocess/parser_raw.ml" +# 83562 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -83574,19 +83567,19 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 83578 "src/ocaml/preprocess/parser_raw.ml" +# 83571 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = # 4639 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 83585 "src/ocaml/preprocess/parser_raw.ml" +# 83578 "src/ocaml/preprocess/parser_raw.ml" in # 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 83590 "src/ocaml/preprocess/parser_raw.ml" +# 83583 "src/ocaml/preprocess/parser_raw.ml" in @@ -83596,7 +83589,7 @@ module Tables = struct Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 83600 "src/ocaml/preprocess/parser_raw.ml" +# 83593 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_label_) in @@ -83606,13 +83599,13 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 83610 "src/ocaml/preprocess/parser_raw.ml" +# 83603 "src/ocaml/preprocess/parser_raw.ml" in # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 83616 "src/ocaml/preprocess/parser_raw.ml" +# 83609 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -83675,7 +83668,7 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 83679 "src/ocaml/preprocess/parser_raw.ml" +# 83672 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -83687,12 +83680,12 @@ module Tables = struct let m1 = # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 83691 "src/ocaml/preprocess/parser_raw.ml" +# 83684 "src/ocaml/preprocess/parser_raw.ml" in let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 83696 "src/ocaml/preprocess/parser_raw.ml" +# 83689 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -83701,32 +83694,32 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 83705 "src/ocaml/preprocess/parser_raw.ml" +# 83698 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 83712 "src/ocaml/preprocess/parser_raw.ml" +# 83705 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = # 4736 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 83718 "src/ocaml/preprocess/parser_raw.ml" +# 83711 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 83724 "src/ocaml/preprocess/parser_raw.ml" +# 83717 "src/ocaml/preprocess/parser_raw.ml" in let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 83730 "src/ocaml/preprocess/parser_raw.ml" +# 83723 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -83735,19 +83728,19 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 83739 "src/ocaml/preprocess/parser_raw.ml" +# 83732 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = # 4639 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 83746 "src/ocaml/preprocess/parser_raw.ml" +# 83739 "src/ocaml/preprocess/parser_raw.ml" in # 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 83751 "src/ocaml/preprocess/parser_raw.ml" +# 83744 "src/ocaml/preprocess/parser_raw.ml" in @@ -83757,7 +83750,7 @@ module Tables = struct Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 83761 "src/ocaml/preprocess/parser_raw.ml" +# 83754 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos_label_) in @@ -83767,13 +83760,13 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 83771 "src/ocaml/preprocess/parser_raw.ml" +# 83764 "src/ocaml/preprocess/parser_raw.ml" in # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 83777 "src/ocaml/preprocess/parser_raw.ml" +# 83770 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -83836,7 +83829,7 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 83840 "src/ocaml/preprocess/parser_raw.ml" +# 83833 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -83848,18 +83841,18 @@ module Tables = struct let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 83852 "src/ocaml/preprocess/parser_raw.ml" +# 83845 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 83858 "src/ocaml/preprocess/parser_raw.ml" +# 83851 "src/ocaml/preprocess/parser_raw.ml" in # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 83863 "src/ocaml/preprocess/parser_raw.ml" +# 83856 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -83869,32 +83862,32 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 83873 "src/ocaml/preprocess/parser_raw.ml" +# 83866 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 83880 "src/ocaml/preprocess/parser_raw.ml" +# 83873 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = # 4736 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 83886 "src/ocaml/preprocess/parser_raw.ml" +# 83879 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 83892 "src/ocaml/preprocess/parser_raw.ml" +# 83885 "src/ocaml/preprocess/parser_raw.ml" in let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 83898 "src/ocaml/preprocess/parser_raw.ml" +# 83891 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -83903,19 +83896,19 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 83907 "src/ocaml/preprocess/parser_raw.ml" +# 83900 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = # 4639 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 83914 "src/ocaml/preprocess/parser_raw.ml" +# 83907 "src/ocaml/preprocess/parser_raw.ml" in # 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 83919 "src/ocaml/preprocess/parser_raw.ml" +# 83912 "src/ocaml/preprocess/parser_raw.ml" in @@ -83925,7 +83918,7 @@ module Tables = struct Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 83929 "src/ocaml/preprocess/parser_raw.ml" +# 83922 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_label_) in @@ -83935,13 +83928,13 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 83939 "src/ocaml/preprocess/parser_raw.ml" +# 83932 "src/ocaml/preprocess/parser_raw.ml" in # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 83945 "src/ocaml/preprocess/parser_raw.ml" +# 83938 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -84011,7 +84004,7 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 84015 "src/ocaml/preprocess/parser_raw.ml" +# 84008 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -84025,19 +84018,19 @@ module Tables = struct # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 84029 "src/ocaml/preprocess/parser_raw.ml" +# 84022 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 84036 "src/ocaml/preprocess/parser_raw.ml" +# 84029 "src/ocaml/preprocess/parser_raw.ml" in # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 84041 "src/ocaml/preprocess/parser_raw.ml" +# 84034 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -84047,32 +84040,32 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 84051 "src/ocaml/preprocess/parser_raw.ml" +# 84044 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 84058 "src/ocaml/preprocess/parser_raw.ml" +# 84051 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = # 4736 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 84064 "src/ocaml/preprocess/parser_raw.ml" +# 84057 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 84070 "src/ocaml/preprocess/parser_raw.ml" +# 84063 "src/ocaml/preprocess/parser_raw.ml" in let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 84076 "src/ocaml/preprocess/parser_raw.ml" +# 84069 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -84081,19 +84074,19 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 84085 "src/ocaml/preprocess/parser_raw.ml" +# 84078 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = # 4639 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 84092 "src/ocaml/preprocess/parser_raw.ml" +# 84085 "src/ocaml/preprocess/parser_raw.ml" in # 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 84097 "src/ocaml/preprocess/parser_raw.ml" +# 84090 "src/ocaml/preprocess/parser_raw.ml" in @@ -84103,7 +84096,7 @@ module Tables = struct Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 84107 "src/ocaml/preprocess/parser_raw.ml" +# 84100 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined2_, _startpos_label_) in @@ -84113,13 +84106,13 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 84117 "src/ocaml/preprocess/parser_raw.ml" +# 84110 "src/ocaml/preprocess/parser_raw.ml" in # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 84123 "src/ocaml/preprocess/parser_raw.ml" +# 84116 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -84203,7 +84196,7 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 84207 "src/ocaml/preprocess/parser_raw.ml" +# 84200 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -84214,12 +84207,12 @@ module Tables = struct let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 84218 "src/ocaml/preprocess/parser_raw.ml" +# 84211 "src/ocaml/preprocess/parser_raw.ml" in let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 84223 "src/ocaml/preprocess/parser_raw.ml" +# 84216 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -84228,14 +84221,14 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 84232 "src/ocaml/preprocess/parser_raw.ml" +# 84225 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 84239 "src/ocaml/preprocess/parser_raw.ml" +# 84232 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _startpos__1_ = _startpos__1_inlined1_ in @@ -84247,24 +84240,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 84251 "src/ocaml/preprocess/parser_raw.ml" +# 84244 "src/ocaml/preprocess/parser_raw.ml" in # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 84256 "src/ocaml/preprocess/parser_raw.ml" +# 84249 "src/ocaml/preprocess/parser_raw.ml" in # 4481 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 84262 "src/ocaml/preprocess/parser_raw.ml" +# 84255 "src/ocaml/preprocess/parser_raw.ml" in # 4732 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 84268 "src/ocaml/preprocess/parser_raw.ml" +# 84261 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -84274,20 +84267,20 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 84278 "src/ocaml/preprocess/parser_raw.ml" +# 84271 "src/ocaml/preprocess/parser_raw.ml" in # 4734 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 84284 "src/ocaml/preprocess/parser_raw.ml" +# 84277 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 84291 "src/ocaml/preprocess/parser_raw.ml" +# 84284 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in @@ -84295,12 +84288,12 @@ module Tables = struct let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 84299 "src/ocaml/preprocess/parser_raw.ml" +# 84292 "src/ocaml/preprocess/parser_raw.ml" in # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 84304 "src/ocaml/preprocess/parser_raw.ml" +# 84297 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -84310,19 +84303,19 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 84314 "src/ocaml/preprocess/parser_raw.ml" +# 84307 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = # 4639 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 84321 "src/ocaml/preprocess/parser_raw.ml" +# 84314 "src/ocaml/preprocess/parser_raw.ml" in # 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 84326 "src/ocaml/preprocess/parser_raw.ml" +# 84319 "src/ocaml/preprocess/parser_raw.ml" in @@ -84332,7 +84325,7 @@ module Tables = struct Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 84336 "src/ocaml/preprocess/parser_raw.ml" +# 84329 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_ty_, _startpos_label_) in @@ -84342,13 +84335,13 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 84346 "src/ocaml/preprocess/parser_raw.ml" +# 84339 "src/ocaml/preprocess/parser_raw.ml" in # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 84352 "src/ocaml/preprocess/parser_raw.ml" +# 84345 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -84439,7 +84432,7 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 84443 "src/ocaml/preprocess/parser_raw.ml" +# 84436 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -84451,12 +84444,12 @@ module Tables = struct let m1 = # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 84455 "src/ocaml/preprocess/parser_raw.ml" +# 84448 "src/ocaml/preprocess/parser_raw.ml" in let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 84460 "src/ocaml/preprocess/parser_raw.ml" +# 84453 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -84465,14 +84458,14 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 84469 "src/ocaml/preprocess/parser_raw.ml" +# 84462 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 84476 "src/ocaml/preprocess/parser_raw.ml" +# 84469 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _startpos__1_ = _startpos__1_inlined1_ in @@ -84484,24 +84477,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 84488 "src/ocaml/preprocess/parser_raw.ml" +# 84481 "src/ocaml/preprocess/parser_raw.ml" in # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 84493 "src/ocaml/preprocess/parser_raw.ml" +# 84486 "src/ocaml/preprocess/parser_raw.ml" in # 4481 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 84499 "src/ocaml/preprocess/parser_raw.ml" +# 84492 "src/ocaml/preprocess/parser_raw.ml" in # 4732 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 84505 "src/ocaml/preprocess/parser_raw.ml" +# 84498 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -84511,20 +84504,20 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 84515 "src/ocaml/preprocess/parser_raw.ml" +# 84508 "src/ocaml/preprocess/parser_raw.ml" in # 4734 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 84521 "src/ocaml/preprocess/parser_raw.ml" +# 84514 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 84528 "src/ocaml/preprocess/parser_raw.ml" +# 84521 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in @@ -84532,12 +84525,12 @@ module Tables = struct let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 84536 "src/ocaml/preprocess/parser_raw.ml" +# 84529 "src/ocaml/preprocess/parser_raw.ml" in # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 84541 "src/ocaml/preprocess/parser_raw.ml" +# 84534 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -84547,19 +84540,19 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 84551 "src/ocaml/preprocess/parser_raw.ml" +# 84544 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = # 4639 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 84558 "src/ocaml/preprocess/parser_raw.ml" +# 84551 "src/ocaml/preprocess/parser_raw.ml" in # 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 84563 "src/ocaml/preprocess/parser_raw.ml" +# 84556 "src/ocaml/preprocess/parser_raw.ml" in @@ -84569,7 +84562,7 @@ module Tables = struct Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 84573 "src/ocaml/preprocess/parser_raw.ml" +# 84566 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined2_, _startpos_label_) in @@ -84579,13 +84572,13 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 84583 "src/ocaml/preprocess/parser_raw.ml" +# 84576 "src/ocaml/preprocess/parser_raw.ml" in # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 84589 "src/ocaml/preprocess/parser_raw.ml" +# 84582 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -84676,7 +84669,7 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 84680 "src/ocaml/preprocess/parser_raw.ml" +# 84673 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -84688,18 +84681,18 @@ module Tables = struct let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 84692 "src/ocaml/preprocess/parser_raw.ml" +# 84685 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 84698 "src/ocaml/preprocess/parser_raw.ml" +# 84691 "src/ocaml/preprocess/parser_raw.ml" in # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 84703 "src/ocaml/preprocess/parser_raw.ml" +# 84696 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -84709,14 +84702,14 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 84713 "src/ocaml/preprocess/parser_raw.ml" +# 84706 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 84720 "src/ocaml/preprocess/parser_raw.ml" +# 84713 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _startpos__1_ = _startpos__1_inlined1_ in @@ -84728,24 +84721,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 84732 "src/ocaml/preprocess/parser_raw.ml" +# 84725 "src/ocaml/preprocess/parser_raw.ml" in # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 84737 "src/ocaml/preprocess/parser_raw.ml" +# 84730 "src/ocaml/preprocess/parser_raw.ml" in # 4481 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 84743 "src/ocaml/preprocess/parser_raw.ml" +# 84736 "src/ocaml/preprocess/parser_raw.ml" in # 4732 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 84749 "src/ocaml/preprocess/parser_raw.ml" +# 84742 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -84755,20 +84748,20 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 84759 "src/ocaml/preprocess/parser_raw.ml" +# 84752 "src/ocaml/preprocess/parser_raw.ml" in # 4734 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 84765 "src/ocaml/preprocess/parser_raw.ml" +# 84758 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 84772 "src/ocaml/preprocess/parser_raw.ml" +# 84765 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in @@ -84776,12 +84769,12 @@ module Tables = struct let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 84780 "src/ocaml/preprocess/parser_raw.ml" +# 84773 "src/ocaml/preprocess/parser_raw.ml" in # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 84785 "src/ocaml/preprocess/parser_raw.ml" +# 84778 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -84791,19 +84784,19 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 84795 "src/ocaml/preprocess/parser_raw.ml" +# 84788 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = # 4639 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 84802 "src/ocaml/preprocess/parser_raw.ml" +# 84795 "src/ocaml/preprocess/parser_raw.ml" in # 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 84807 "src/ocaml/preprocess/parser_raw.ml" +# 84800 "src/ocaml/preprocess/parser_raw.ml" in @@ -84813,7 +84806,7 @@ module Tables = struct Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 84817 "src/ocaml/preprocess/parser_raw.ml" +# 84810 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_ty_, _startpos_label_) in @@ -84823,13 +84816,13 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 84827 "src/ocaml/preprocess/parser_raw.ml" +# 84820 "src/ocaml/preprocess/parser_raw.ml" in # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 84833 "src/ocaml/preprocess/parser_raw.ml" +# 84826 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -84927,7 +84920,7 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 84931 "src/ocaml/preprocess/parser_raw.ml" +# 84924 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -84941,19 +84934,19 @@ module Tables = struct # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 84945 "src/ocaml/preprocess/parser_raw.ml" +# 84938 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 84952 "src/ocaml/preprocess/parser_raw.ml" +# 84945 "src/ocaml/preprocess/parser_raw.ml" in # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 84957 "src/ocaml/preprocess/parser_raw.ml" +# 84950 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -84963,14 +84956,14 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 84967 "src/ocaml/preprocess/parser_raw.ml" +# 84960 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 84974 "src/ocaml/preprocess/parser_raw.ml" +# 84967 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _startpos__1_ = _startpos__1_inlined1_ in @@ -84982,24 +84975,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 84986 "src/ocaml/preprocess/parser_raw.ml" +# 84979 "src/ocaml/preprocess/parser_raw.ml" in # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 84991 "src/ocaml/preprocess/parser_raw.ml" +# 84984 "src/ocaml/preprocess/parser_raw.ml" in # 4481 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 84997 "src/ocaml/preprocess/parser_raw.ml" +# 84990 "src/ocaml/preprocess/parser_raw.ml" in # 4732 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 85003 "src/ocaml/preprocess/parser_raw.ml" +# 84996 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -85009,20 +85002,20 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 85013 "src/ocaml/preprocess/parser_raw.ml" +# 85006 "src/ocaml/preprocess/parser_raw.ml" in # 4734 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 85019 "src/ocaml/preprocess/parser_raw.ml" +# 85012 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 85026 "src/ocaml/preprocess/parser_raw.ml" +# 85019 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in @@ -85030,12 +85023,12 @@ module Tables = struct let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 85034 "src/ocaml/preprocess/parser_raw.ml" +# 85027 "src/ocaml/preprocess/parser_raw.ml" in # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 85039 "src/ocaml/preprocess/parser_raw.ml" +# 85032 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -85045,19 +85038,19 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 85049 "src/ocaml/preprocess/parser_raw.ml" +# 85042 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = # 4639 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 85056 "src/ocaml/preprocess/parser_raw.ml" +# 85049 "src/ocaml/preprocess/parser_raw.ml" in # 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 85061 "src/ocaml/preprocess/parser_raw.ml" +# 85054 "src/ocaml/preprocess/parser_raw.ml" in @@ -85067,7 +85060,7 @@ module Tables = struct Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 85071 "src/ocaml/preprocess/parser_raw.ml" +# 85064 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined3_, _startpos_label_) in @@ -85077,13 +85070,13 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 85081 "src/ocaml/preprocess/parser_raw.ml" +# 85074 "src/ocaml/preprocess/parser_raw.ml" in # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 85087 "src/ocaml/preprocess/parser_raw.ml" +# 85080 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -85174,7 +85167,7 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 85178 "src/ocaml/preprocess/parser_raw.ml" +# 85171 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -85185,12 +85178,12 @@ module Tables = struct let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 85189 "src/ocaml/preprocess/parser_raw.ml" +# 85182 "src/ocaml/preprocess/parser_raw.ml" in let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 85194 "src/ocaml/preprocess/parser_raw.ml" +# 85187 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -85199,7 +85192,7 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 85203 "src/ocaml/preprocess/parser_raw.ml" +# 85196 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = @@ -85208,7 +85201,7 @@ module Tables = struct # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 85212 "src/ocaml/preprocess/parser_raw.ml" +# 85205 "src/ocaml/preprocess/parser_raw.ml" in let ty = @@ -85221,24 +85214,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 85225 "src/ocaml/preprocess/parser_raw.ml" +# 85218 "src/ocaml/preprocess/parser_raw.ml" in # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 85230 "src/ocaml/preprocess/parser_raw.ml" +# 85223 "src/ocaml/preprocess/parser_raw.ml" in # 4481 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 85236 "src/ocaml/preprocess/parser_raw.ml" +# 85229 "src/ocaml/preprocess/parser_raw.ml" in # 4732 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 85242 "src/ocaml/preprocess/parser_raw.ml" +# 85235 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -85248,20 +85241,20 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 85252 "src/ocaml/preprocess/parser_raw.ml" +# 85245 "src/ocaml/preprocess/parser_raw.ml" in # 4734 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 85258 "src/ocaml/preprocess/parser_raw.ml" +# 85251 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 85265 "src/ocaml/preprocess/parser_raw.ml" +# 85258 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in @@ -85269,12 +85262,12 @@ module Tables = struct let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 85273 "src/ocaml/preprocess/parser_raw.ml" +# 85266 "src/ocaml/preprocess/parser_raw.ml" in # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 85278 "src/ocaml/preprocess/parser_raw.ml" +# 85271 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -85284,19 +85277,19 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 85288 "src/ocaml/preprocess/parser_raw.ml" +# 85281 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = # 4639 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 85295 "src/ocaml/preprocess/parser_raw.ml" +# 85288 "src/ocaml/preprocess/parser_raw.ml" in # 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 85300 "src/ocaml/preprocess/parser_raw.ml" +# 85293 "src/ocaml/preprocess/parser_raw.ml" in @@ -85306,7 +85299,7 @@ module Tables = struct Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 85310 "src/ocaml/preprocess/parser_raw.ml" +# 85303 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_ty_, _startpos_label_) in @@ -85316,13 +85309,13 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 85320 "src/ocaml/preprocess/parser_raw.ml" +# 85313 "src/ocaml/preprocess/parser_raw.ml" in # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 85326 "src/ocaml/preprocess/parser_raw.ml" +# 85319 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -85420,7 +85413,7 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 85424 "src/ocaml/preprocess/parser_raw.ml" +# 85417 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -85432,12 +85425,12 @@ module Tables = struct let m1 = # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 85436 "src/ocaml/preprocess/parser_raw.ml" +# 85429 "src/ocaml/preprocess/parser_raw.ml" in let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 85441 "src/ocaml/preprocess/parser_raw.ml" +# 85434 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -85446,7 +85439,7 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 85450 "src/ocaml/preprocess/parser_raw.ml" +# 85443 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = @@ -85455,7 +85448,7 @@ module Tables = struct # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 85459 "src/ocaml/preprocess/parser_raw.ml" +# 85452 "src/ocaml/preprocess/parser_raw.ml" in let ty = @@ -85468,24 +85461,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 85472 "src/ocaml/preprocess/parser_raw.ml" +# 85465 "src/ocaml/preprocess/parser_raw.ml" in # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 85477 "src/ocaml/preprocess/parser_raw.ml" +# 85470 "src/ocaml/preprocess/parser_raw.ml" in # 4481 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 85483 "src/ocaml/preprocess/parser_raw.ml" +# 85476 "src/ocaml/preprocess/parser_raw.ml" in # 4732 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 85489 "src/ocaml/preprocess/parser_raw.ml" +# 85482 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -85495,20 +85488,20 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 85499 "src/ocaml/preprocess/parser_raw.ml" +# 85492 "src/ocaml/preprocess/parser_raw.ml" in # 4734 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 85505 "src/ocaml/preprocess/parser_raw.ml" +# 85498 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 85512 "src/ocaml/preprocess/parser_raw.ml" +# 85505 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in @@ -85516,12 +85509,12 @@ module Tables = struct let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 85520 "src/ocaml/preprocess/parser_raw.ml" +# 85513 "src/ocaml/preprocess/parser_raw.ml" in # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 85525 "src/ocaml/preprocess/parser_raw.ml" +# 85518 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -85531,19 +85524,19 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 85535 "src/ocaml/preprocess/parser_raw.ml" +# 85528 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = # 4639 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 85542 "src/ocaml/preprocess/parser_raw.ml" +# 85535 "src/ocaml/preprocess/parser_raw.ml" in # 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 85547 "src/ocaml/preprocess/parser_raw.ml" +# 85540 "src/ocaml/preprocess/parser_raw.ml" in @@ -85553,7 +85546,7 @@ module Tables = struct Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 85557 "src/ocaml/preprocess/parser_raw.ml" +# 85550 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined3_, _startpos_label_) in @@ -85563,13 +85556,13 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 85567 "src/ocaml/preprocess/parser_raw.ml" +# 85560 "src/ocaml/preprocess/parser_raw.ml" in # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 85573 "src/ocaml/preprocess/parser_raw.ml" +# 85566 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -85667,7 +85660,7 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 85671 "src/ocaml/preprocess/parser_raw.ml" +# 85664 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -85679,18 +85672,18 @@ module Tables = struct let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 85683 "src/ocaml/preprocess/parser_raw.ml" +# 85676 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 85689 "src/ocaml/preprocess/parser_raw.ml" +# 85682 "src/ocaml/preprocess/parser_raw.ml" in # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 85694 "src/ocaml/preprocess/parser_raw.ml" +# 85687 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -85700,7 +85693,7 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 85704 "src/ocaml/preprocess/parser_raw.ml" +# 85697 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = @@ -85709,7 +85702,7 @@ module Tables = struct # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 85713 "src/ocaml/preprocess/parser_raw.ml" +# 85706 "src/ocaml/preprocess/parser_raw.ml" in let ty = @@ -85722,24 +85715,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 85726 "src/ocaml/preprocess/parser_raw.ml" +# 85719 "src/ocaml/preprocess/parser_raw.ml" in # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 85731 "src/ocaml/preprocess/parser_raw.ml" +# 85724 "src/ocaml/preprocess/parser_raw.ml" in # 4481 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 85737 "src/ocaml/preprocess/parser_raw.ml" +# 85730 "src/ocaml/preprocess/parser_raw.ml" in # 4732 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 85743 "src/ocaml/preprocess/parser_raw.ml" +# 85736 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -85749,20 +85742,20 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 85753 "src/ocaml/preprocess/parser_raw.ml" +# 85746 "src/ocaml/preprocess/parser_raw.ml" in # 4734 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 85759 "src/ocaml/preprocess/parser_raw.ml" +# 85752 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 85766 "src/ocaml/preprocess/parser_raw.ml" +# 85759 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in @@ -85770,12 +85763,12 @@ module Tables = struct let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 85774 "src/ocaml/preprocess/parser_raw.ml" +# 85767 "src/ocaml/preprocess/parser_raw.ml" in # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 85779 "src/ocaml/preprocess/parser_raw.ml" +# 85772 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -85785,19 +85778,19 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 85789 "src/ocaml/preprocess/parser_raw.ml" +# 85782 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = # 4639 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 85796 "src/ocaml/preprocess/parser_raw.ml" +# 85789 "src/ocaml/preprocess/parser_raw.ml" in # 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 85801 "src/ocaml/preprocess/parser_raw.ml" +# 85794 "src/ocaml/preprocess/parser_raw.ml" in @@ -85807,7 +85800,7 @@ module Tables = struct Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 85811 "src/ocaml/preprocess/parser_raw.ml" +# 85804 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_ty_, _startpos_label_) in @@ -85817,13 +85810,13 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 85821 "src/ocaml/preprocess/parser_raw.ml" +# 85814 "src/ocaml/preprocess/parser_raw.ml" in # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 85827 "src/ocaml/preprocess/parser_raw.ml" +# 85820 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -85928,7 +85921,7 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 85932 "src/ocaml/preprocess/parser_raw.ml" +# 85925 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -85942,19 +85935,19 @@ module Tables = struct # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 85946 "src/ocaml/preprocess/parser_raw.ml" +# 85939 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 85953 "src/ocaml/preprocess/parser_raw.ml" +# 85946 "src/ocaml/preprocess/parser_raw.ml" in # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 85958 "src/ocaml/preprocess/parser_raw.ml" +# 85951 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -85964,7 +85957,7 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 85968 "src/ocaml/preprocess/parser_raw.ml" +# 85961 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = @@ -85973,7 +85966,7 @@ module Tables = struct # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 85977 "src/ocaml/preprocess/parser_raw.ml" +# 85970 "src/ocaml/preprocess/parser_raw.ml" in let ty = @@ -85986,24 +85979,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 85990 "src/ocaml/preprocess/parser_raw.ml" +# 85983 "src/ocaml/preprocess/parser_raw.ml" in # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 85995 "src/ocaml/preprocess/parser_raw.ml" +# 85988 "src/ocaml/preprocess/parser_raw.ml" in # 4481 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 86001 "src/ocaml/preprocess/parser_raw.ml" +# 85994 "src/ocaml/preprocess/parser_raw.ml" in # 4732 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 86007 "src/ocaml/preprocess/parser_raw.ml" +# 86000 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -86013,20 +86006,20 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 86017 "src/ocaml/preprocess/parser_raw.ml" +# 86010 "src/ocaml/preprocess/parser_raw.ml" in # 4734 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 86023 "src/ocaml/preprocess/parser_raw.ml" +# 86016 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 86030 "src/ocaml/preprocess/parser_raw.ml" +# 86023 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in @@ -86034,12 +86027,12 @@ module Tables = struct let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 86038 "src/ocaml/preprocess/parser_raw.ml" +# 86031 "src/ocaml/preprocess/parser_raw.ml" in # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 86043 "src/ocaml/preprocess/parser_raw.ml" +# 86036 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -86049,19 +86042,19 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 86053 "src/ocaml/preprocess/parser_raw.ml" +# 86046 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = # 4639 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 86060 "src/ocaml/preprocess/parser_raw.ml" +# 86053 "src/ocaml/preprocess/parser_raw.ml" in # 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 86065 "src/ocaml/preprocess/parser_raw.ml" +# 86058 "src/ocaml/preprocess/parser_raw.ml" in @@ -86071,7 +86064,7 @@ module Tables = struct Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 86075 "src/ocaml/preprocess/parser_raw.ml" +# 86068 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined4_, _startpos_label_) in @@ -86081,13 +86074,13 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 86085 "src/ocaml/preprocess/parser_raw.ml" +# 86078 "src/ocaml/preprocess/parser_raw.ml" in # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 86091 "src/ocaml/preprocess/parser_raw.ml" +# 86084 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -86143,7 +86136,7 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 86147 "src/ocaml/preprocess/parser_raw.ml" +# 86140 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -86155,12 +86148,12 @@ module Tables = struct let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 86159 "src/ocaml/preprocess/parser_raw.ml" +# 86152 "src/ocaml/preprocess/parser_raw.ml" in let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 86164 "src/ocaml/preprocess/parser_raw.ml" +# 86157 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -86169,38 +86162,38 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 86173 "src/ocaml/preprocess/parser_raw.ml" +# 86166 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 86180 "src/ocaml/preprocess/parser_raw.ml" +# 86173 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = # 4736 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 86186 "src/ocaml/preprocess/parser_raw.ml" +# 86179 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 86192 "src/ocaml/preprocess/parser_raw.ml" +# 86185 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 86199 "src/ocaml/preprocess/parser_raw.ml" +# 86192 "src/ocaml/preprocess/parser_raw.ml" in # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 86204 "src/ocaml/preprocess/parser_raw.ml" +# 86197 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -86210,19 +86203,19 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 86214 "src/ocaml/preprocess/parser_raw.ml" +# 86207 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = # 4639 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 86221 "src/ocaml/preprocess/parser_raw.ml" +# 86214 "src/ocaml/preprocess/parser_raw.ml" in # 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 86226 "src/ocaml/preprocess/parser_raw.ml" +# 86219 "src/ocaml/preprocess/parser_raw.ml" in @@ -86232,7 +86225,7 @@ module Tables = struct Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 86236 "src/ocaml/preprocess/parser_raw.ml" +# 86229 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_label_) in @@ -86242,13 +86235,13 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 86246 "src/ocaml/preprocess/parser_raw.ml" +# 86239 "src/ocaml/preprocess/parser_raw.ml" in # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 86252 "src/ocaml/preprocess/parser_raw.ml" +# 86245 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -86311,7 +86304,7 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 86315 "src/ocaml/preprocess/parser_raw.ml" +# 86308 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -86323,12 +86316,12 @@ module Tables = struct let m1 = # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 86327 "src/ocaml/preprocess/parser_raw.ml" +# 86320 "src/ocaml/preprocess/parser_raw.ml" in let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 86332 "src/ocaml/preprocess/parser_raw.ml" +# 86325 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -86337,38 +86330,38 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 86341 "src/ocaml/preprocess/parser_raw.ml" +# 86334 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 86348 "src/ocaml/preprocess/parser_raw.ml" +# 86341 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = # 4736 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 86354 "src/ocaml/preprocess/parser_raw.ml" +# 86347 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 86360 "src/ocaml/preprocess/parser_raw.ml" +# 86353 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 86367 "src/ocaml/preprocess/parser_raw.ml" +# 86360 "src/ocaml/preprocess/parser_raw.ml" in # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 86372 "src/ocaml/preprocess/parser_raw.ml" +# 86365 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -86378,19 +86371,19 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 86382 "src/ocaml/preprocess/parser_raw.ml" +# 86375 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = # 4639 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 86389 "src/ocaml/preprocess/parser_raw.ml" +# 86382 "src/ocaml/preprocess/parser_raw.ml" in # 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 86394 "src/ocaml/preprocess/parser_raw.ml" +# 86387 "src/ocaml/preprocess/parser_raw.ml" in @@ -86400,7 +86393,7 @@ module Tables = struct Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 86404 "src/ocaml/preprocess/parser_raw.ml" +# 86397 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos_label_) in @@ -86410,13 +86403,13 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 86414 "src/ocaml/preprocess/parser_raw.ml" +# 86407 "src/ocaml/preprocess/parser_raw.ml" in # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 86420 "src/ocaml/preprocess/parser_raw.ml" +# 86413 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -86479,7 +86472,7 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 86483 "src/ocaml/preprocess/parser_raw.ml" +# 86476 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -86491,18 +86484,18 @@ module Tables = struct let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 86495 "src/ocaml/preprocess/parser_raw.ml" +# 86488 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 86501 "src/ocaml/preprocess/parser_raw.ml" +# 86494 "src/ocaml/preprocess/parser_raw.ml" in # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 86506 "src/ocaml/preprocess/parser_raw.ml" +# 86499 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -86512,38 +86505,38 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 86516 "src/ocaml/preprocess/parser_raw.ml" +# 86509 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 86523 "src/ocaml/preprocess/parser_raw.ml" +# 86516 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = # 4736 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 86529 "src/ocaml/preprocess/parser_raw.ml" +# 86522 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 86535 "src/ocaml/preprocess/parser_raw.ml" +# 86528 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 86542 "src/ocaml/preprocess/parser_raw.ml" +# 86535 "src/ocaml/preprocess/parser_raw.ml" in # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 86547 "src/ocaml/preprocess/parser_raw.ml" +# 86540 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -86553,19 +86546,19 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 86557 "src/ocaml/preprocess/parser_raw.ml" +# 86550 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = # 4639 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 86564 "src/ocaml/preprocess/parser_raw.ml" +# 86557 "src/ocaml/preprocess/parser_raw.ml" in # 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 86569 "src/ocaml/preprocess/parser_raw.ml" +# 86562 "src/ocaml/preprocess/parser_raw.ml" in @@ -86575,7 +86568,7 @@ module Tables = struct Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 86579 "src/ocaml/preprocess/parser_raw.ml" +# 86572 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_label_) in @@ -86585,13 +86578,13 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 86589 "src/ocaml/preprocess/parser_raw.ml" +# 86582 "src/ocaml/preprocess/parser_raw.ml" in # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 86595 "src/ocaml/preprocess/parser_raw.ml" +# 86588 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -86661,7 +86654,7 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 86665 "src/ocaml/preprocess/parser_raw.ml" +# 86658 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -86675,19 +86668,19 @@ module Tables = struct # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 86679 "src/ocaml/preprocess/parser_raw.ml" +# 86672 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 86686 "src/ocaml/preprocess/parser_raw.ml" +# 86679 "src/ocaml/preprocess/parser_raw.ml" in # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 86691 "src/ocaml/preprocess/parser_raw.ml" +# 86684 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -86697,38 +86690,38 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 86701 "src/ocaml/preprocess/parser_raw.ml" +# 86694 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 86708 "src/ocaml/preprocess/parser_raw.ml" +# 86701 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = # 4736 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 86714 "src/ocaml/preprocess/parser_raw.ml" +# 86707 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 86720 "src/ocaml/preprocess/parser_raw.ml" +# 86713 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 86727 "src/ocaml/preprocess/parser_raw.ml" +# 86720 "src/ocaml/preprocess/parser_raw.ml" in # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 86732 "src/ocaml/preprocess/parser_raw.ml" +# 86725 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -86738,19 +86731,19 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 86742 "src/ocaml/preprocess/parser_raw.ml" +# 86735 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = # 4639 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 86749 "src/ocaml/preprocess/parser_raw.ml" +# 86742 "src/ocaml/preprocess/parser_raw.ml" in # 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 86754 "src/ocaml/preprocess/parser_raw.ml" +# 86747 "src/ocaml/preprocess/parser_raw.ml" in @@ -86760,7 +86753,7 @@ module Tables = struct Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 86764 "src/ocaml/preprocess/parser_raw.ml" +# 86757 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined2_, _startpos_label_) in @@ -86770,13 +86763,13 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 86774 "src/ocaml/preprocess/parser_raw.ml" +# 86767 "src/ocaml/preprocess/parser_raw.ml" in # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 86780 "src/ocaml/preprocess/parser_raw.ml" +# 86773 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -86839,7 +86832,7 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 86843 "src/ocaml/preprocess/parser_raw.ml" +# 86836 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -86851,12 +86844,12 @@ module Tables = struct let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 86855 "src/ocaml/preprocess/parser_raw.ml" +# 86848 "src/ocaml/preprocess/parser_raw.ml" in let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 86860 "src/ocaml/preprocess/parser_raw.ml" +# 86853 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -86865,7 +86858,7 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 86869 "src/ocaml/preprocess/parser_raw.ml" +# 86862 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = @@ -86874,32 +86867,32 @@ module Tables = struct # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 86878 "src/ocaml/preprocess/parser_raw.ml" +# 86871 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = # 4736 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 86885 "src/ocaml/preprocess/parser_raw.ml" +# 86878 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 86891 "src/ocaml/preprocess/parser_raw.ml" +# 86884 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 86898 "src/ocaml/preprocess/parser_raw.ml" +# 86891 "src/ocaml/preprocess/parser_raw.ml" in # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 86903 "src/ocaml/preprocess/parser_raw.ml" +# 86896 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -86909,19 +86902,19 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 86913 "src/ocaml/preprocess/parser_raw.ml" +# 86906 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = # 4639 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 86920 "src/ocaml/preprocess/parser_raw.ml" +# 86913 "src/ocaml/preprocess/parser_raw.ml" in # 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 86925 "src/ocaml/preprocess/parser_raw.ml" +# 86918 "src/ocaml/preprocess/parser_raw.ml" in @@ -86931,7 +86924,7 @@ module Tables = struct Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 86935 "src/ocaml/preprocess/parser_raw.ml" +# 86928 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_label_) in @@ -86941,13 +86934,13 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 86945 "src/ocaml/preprocess/parser_raw.ml" +# 86938 "src/ocaml/preprocess/parser_raw.ml" in # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 86951 "src/ocaml/preprocess/parser_raw.ml" +# 86944 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -87017,7 +87010,7 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 87021 "src/ocaml/preprocess/parser_raw.ml" +# 87014 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -87029,12 +87022,12 @@ module Tables = struct let m1 = # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 87033 "src/ocaml/preprocess/parser_raw.ml" +# 87026 "src/ocaml/preprocess/parser_raw.ml" in let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 87038 "src/ocaml/preprocess/parser_raw.ml" +# 87031 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -87043,7 +87036,7 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 87047 "src/ocaml/preprocess/parser_raw.ml" +# 87040 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = @@ -87052,32 +87045,32 @@ module Tables = struct # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 87056 "src/ocaml/preprocess/parser_raw.ml" +# 87049 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = # 4736 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 87063 "src/ocaml/preprocess/parser_raw.ml" +# 87056 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 87069 "src/ocaml/preprocess/parser_raw.ml" +# 87062 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 87076 "src/ocaml/preprocess/parser_raw.ml" +# 87069 "src/ocaml/preprocess/parser_raw.ml" in # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 87081 "src/ocaml/preprocess/parser_raw.ml" +# 87074 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -87087,19 +87080,19 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 87091 "src/ocaml/preprocess/parser_raw.ml" +# 87084 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = # 4639 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 87098 "src/ocaml/preprocess/parser_raw.ml" +# 87091 "src/ocaml/preprocess/parser_raw.ml" in # 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 87103 "src/ocaml/preprocess/parser_raw.ml" +# 87096 "src/ocaml/preprocess/parser_raw.ml" in @@ -87109,7 +87102,7 @@ module Tables = struct Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 87113 "src/ocaml/preprocess/parser_raw.ml" +# 87106 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined2_, _startpos_label_) in @@ -87119,13 +87112,13 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 87123 "src/ocaml/preprocess/parser_raw.ml" +# 87116 "src/ocaml/preprocess/parser_raw.ml" in # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 87129 "src/ocaml/preprocess/parser_raw.ml" +# 87122 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -87195,7 +87188,7 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 87199 "src/ocaml/preprocess/parser_raw.ml" +# 87192 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -87207,18 +87200,18 @@ module Tables = struct let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 87211 "src/ocaml/preprocess/parser_raw.ml" +# 87204 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 87217 "src/ocaml/preprocess/parser_raw.ml" +# 87210 "src/ocaml/preprocess/parser_raw.ml" in # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 87222 "src/ocaml/preprocess/parser_raw.ml" +# 87215 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -87228,7 +87221,7 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 87232 "src/ocaml/preprocess/parser_raw.ml" +# 87225 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = @@ -87237,32 +87230,32 @@ module Tables = struct # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 87241 "src/ocaml/preprocess/parser_raw.ml" +# 87234 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = # 4736 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 87248 "src/ocaml/preprocess/parser_raw.ml" +# 87241 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 87254 "src/ocaml/preprocess/parser_raw.ml" +# 87247 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 87261 "src/ocaml/preprocess/parser_raw.ml" +# 87254 "src/ocaml/preprocess/parser_raw.ml" in # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 87266 "src/ocaml/preprocess/parser_raw.ml" +# 87259 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -87272,19 +87265,19 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 87276 "src/ocaml/preprocess/parser_raw.ml" +# 87269 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = # 4639 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 87283 "src/ocaml/preprocess/parser_raw.ml" +# 87276 "src/ocaml/preprocess/parser_raw.ml" in # 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 87288 "src/ocaml/preprocess/parser_raw.ml" +# 87281 "src/ocaml/preprocess/parser_raw.ml" in @@ -87294,7 +87287,7 @@ module Tables = struct Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 87298 "src/ocaml/preprocess/parser_raw.ml" +# 87291 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_label_) in @@ -87304,13 +87297,13 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 87308 "src/ocaml/preprocess/parser_raw.ml" +# 87301 "src/ocaml/preprocess/parser_raw.ml" in # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 87314 "src/ocaml/preprocess/parser_raw.ml" +# 87307 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -87387,7 +87380,7 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 87391 "src/ocaml/preprocess/parser_raw.ml" +# 87384 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -87401,19 +87394,19 @@ module Tables = struct # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 87405 "src/ocaml/preprocess/parser_raw.ml" +# 87398 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 87412 "src/ocaml/preprocess/parser_raw.ml" +# 87405 "src/ocaml/preprocess/parser_raw.ml" in # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 87417 "src/ocaml/preprocess/parser_raw.ml" +# 87410 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -87423,7 +87416,7 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 87427 "src/ocaml/preprocess/parser_raw.ml" +# 87420 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = @@ -87432,32 +87425,32 @@ module Tables = struct # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 87436 "src/ocaml/preprocess/parser_raw.ml" +# 87429 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = # 4736 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 87443 "src/ocaml/preprocess/parser_raw.ml" +# 87436 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 87449 "src/ocaml/preprocess/parser_raw.ml" +# 87442 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 87456 "src/ocaml/preprocess/parser_raw.ml" +# 87449 "src/ocaml/preprocess/parser_raw.ml" in # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 87461 "src/ocaml/preprocess/parser_raw.ml" +# 87454 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -87467,19 +87460,19 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 87471 "src/ocaml/preprocess/parser_raw.ml" +# 87464 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = # 4639 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 87478 "src/ocaml/preprocess/parser_raw.ml" +# 87471 "src/ocaml/preprocess/parser_raw.ml" in # 4644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 87483 "src/ocaml/preprocess/parser_raw.ml" +# 87476 "src/ocaml/preprocess/parser_raw.ml" in @@ -87489,7 +87482,7 @@ module Tables = struct Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 87493 "src/ocaml/preprocess/parser_raw.ml" +# 87486 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined3_, _startpos_label_) in @@ -87499,13 +87492,13 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 87503 "src/ocaml/preprocess/parser_raw.ml" +# 87496 "src/ocaml/preprocess/parser_raw.ml" in # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 87509 "src/ocaml/preprocess/parser_raw.ml" +# 87502 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -87575,12 +87568,12 @@ module Tables = struct let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 87579 "src/ocaml/preprocess/parser_raw.ml" +# 87572 "src/ocaml/preprocess/parser_raw.ml" in let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 87584 "src/ocaml/preprocess/parser_raw.ml" +# 87577 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -87589,14 +87582,14 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 87593 "src/ocaml/preprocess/parser_raw.ml" +# 87586 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 87600 "src/ocaml/preprocess/parser_raw.ml" +# 87593 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = @@ -87607,24 +87600,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 87611 "src/ocaml/preprocess/parser_raw.ml" +# 87604 "src/ocaml/preprocess/parser_raw.ml" in # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 87616 "src/ocaml/preprocess/parser_raw.ml" +# 87609 "src/ocaml/preprocess/parser_raw.ml" in # 4481 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 87622 "src/ocaml/preprocess/parser_raw.ml" +# 87615 "src/ocaml/preprocess/parser_raw.ml" in # 4732 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 87628 "src/ocaml/preprocess/parser_raw.ml" +# 87621 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -87634,27 +87627,27 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 87638 "src/ocaml/preprocess/parser_raw.ml" +# 87631 "src/ocaml/preprocess/parser_raw.ml" in # 4734 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 87644 "src/ocaml/preprocess/parser_raw.ml" +# 87637 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 87651 "src/ocaml/preprocess/parser_raw.ml" +# 87644 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 87658 "src/ocaml/preprocess/parser_raw.ml" +# 87651 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -87663,13 +87656,13 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 87667 "src/ocaml/preprocess/parser_raw.ml" +# 87660 "src/ocaml/preprocess/parser_raw.ml" in let label = # 4646 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 87673 "src/ocaml/preprocess/parser_raw.ml" +# 87666 "src/ocaml/preprocess/parser_raw.ml" in # 4576 "src/ocaml/preprocess/parser_raw.mly" @@ -87678,7 +87671,7 @@ module Tables = struct Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 87682 "src/ocaml/preprocess/parser_raw.ml" +# 87675 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in @@ -87688,13 +87681,13 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 87692 "src/ocaml/preprocess/parser_raw.ml" +# 87685 "src/ocaml/preprocess/parser_raw.ml" in # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 87698 "src/ocaml/preprocess/parser_raw.ml" +# 87691 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -87772,12 +87765,12 @@ module Tables = struct let m1 = # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 87776 "src/ocaml/preprocess/parser_raw.ml" +# 87769 "src/ocaml/preprocess/parser_raw.ml" in let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 87781 "src/ocaml/preprocess/parser_raw.ml" +# 87774 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -87786,14 +87779,14 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 87790 "src/ocaml/preprocess/parser_raw.ml" +# 87783 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 87797 "src/ocaml/preprocess/parser_raw.ml" +# 87790 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = @@ -87804,24 +87797,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 87808 "src/ocaml/preprocess/parser_raw.ml" +# 87801 "src/ocaml/preprocess/parser_raw.ml" in # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 87813 "src/ocaml/preprocess/parser_raw.ml" +# 87806 "src/ocaml/preprocess/parser_raw.ml" in # 4481 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 87819 "src/ocaml/preprocess/parser_raw.ml" +# 87812 "src/ocaml/preprocess/parser_raw.ml" in # 4732 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 87825 "src/ocaml/preprocess/parser_raw.ml" +# 87818 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -87831,27 +87824,27 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 87835 "src/ocaml/preprocess/parser_raw.ml" +# 87828 "src/ocaml/preprocess/parser_raw.ml" in # 4734 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 87841 "src/ocaml/preprocess/parser_raw.ml" +# 87834 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 87848 "src/ocaml/preprocess/parser_raw.ml" +# 87841 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 87855 "src/ocaml/preprocess/parser_raw.ml" +# 87848 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -87860,13 +87853,13 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 87864 "src/ocaml/preprocess/parser_raw.ml" +# 87857 "src/ocaml/preprocess/parser_raw.ml" in let label = # 4646 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 87870 "src/ocaml/preprocess/parser_raw.ml" +# 87863 "src/ocaml/preprocess/parser_raw.ml" in # 4576 "src/ocaml/preprocess/parser_raw.mly" @@ -87875,7 +87868,7 @@ module Tables = struct Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 87879 "src/ocaml/preprocess/parser_raw.ml" +# 87872 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__1_inlined1_ in @@ -87885,13 +87878,13 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 87889 "src/ocaml/preprocess/parser_raw.ml" +# 87882 "src/ocaml/preprocess/parser_raw.ml" in # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 87895 "src/ocaml/preprocess/parser_raw.ml" +# 87888 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -87969,18 +87962,18 @@ module Tables = struct let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 87973 "src/ocaml/preprocess/parser_raw.ml" +# 87966 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 87979 "src/ocaml/preprocess/parser_raw.ml" +# 87972 "src/ocaml/preprocess/parser_raw.ml" in # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 87984 "src/ocaml/preprocess/parser_raw.ml" +# 87977 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -87990,14 +87983,14 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 87994 "src/ocaml/preprocess/parser_raw.ml" +# 87987 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 88001 "src/ocaml/preprocess/parser_raw.ml" +# 87994 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = @@ -88008,24 +88001,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 88012 "src/ocaml/preprocess/parser_raw.ml" +# 88005 "src/ocaml/preprocess/parser_raw.ml" in # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 88017 "src/ocaml/preprocess/parser_raw.ml" +# 88010 "src/ocaml/preprocess/parser_raw.ml" in # 4481 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 88023 "src/ocaml/preprocess/parser_raw.ml" +# 88016 "src/ocaml/preprocess/parser_raw.ml" in # 4732 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 88029 "src/ocaml/preprocess/parser_raw.ml" +# 88022 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -88035,27 +88028,27 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 88039 "src/ocaml/preprocess/parser_raw.ml" +# 88032 "src/ocaml/preprocess/parser_raw.ml" in # 4734 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 88045 "src/ocaml/preprocess/parser_raw.ml" +# 88038 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 88052 "src/ocaml/preprocess/parser_raw.ml" +# 88045 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 88059 "src/ocaml/preprocess/parser_raw.ml" +# 88052 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -88064,13 +88057,13 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 88068 "src/ocaml/preprocess/parser_raw.ml" +# 88061 "src/ocaml/preprocess/parser_raw.ml" in let label = # 4646 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 88074 "src/ocaml/preprocess/parser_raw.ml" +# 88067 "src/ocaml/preprocess/parser_raw.ml" in # 4576 "src/ocaml/preprocess/parser_raw.mly" @@ -88079,7 +88072,7 @@ module Tables = struct Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 88083 "src/ocaml/preprocess/parser_raw.ml" +# 88076 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in @@ -88089,13 +88082,13 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 88093 "src/ocaml/preprocess/parser_raw.ml" +# 88086 "src/ocaml/preprocess/parser_raw.ml" in # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 88099 "src/ocaml/preprocess/parser_raw.ml" +# 88092 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -88182,19 +88175,19 @@ module Tables = struct # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 88186 "src/ocaml/preprocess/parser_raw.ml" +# 88179 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 88193 "src/ocaml/preprocess/parser_raw.ml" +# 88186 "src/ocaml/preprocess/parser_raw.ml" in # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 88198 "src/ocaml/preprocess/parser_raw.ml" +# 88191 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -88204,14 +88197,14 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 88208 "src/ocaml/preprocess/parser_raw.ml" +# 88201 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 88215 "src/ocaml/preprocess/parser_raw.ml" +# 88208 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = @@ -88222,24 +88215,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 88226 "src/ocaml/preprocess/parser_raw.ml" +# 88219 "src/ocaml/preprocess/parser_raw.ml" in # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 88231 "src/ocaml/preprocess/parser_raw.ml" +# 88224 "src/ocaml/preprocess/parser_raw.ml" in # 4481 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 88237 "src/ocaml/preprocess/parser_raw.ml" +# 88230 "src/ocaml/preprocess/parser_raw.ml" in # 4732 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 88243 "src/ocaml/preprocess/parser_raw.ml" +# 88236 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -88249,27 +88242,27 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 88253 "src/ocaml/preprocess/parser_raw.ml" +# 88246 "src/ocaml/preprocess/parser_raw.ml" in # 4734 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 88259 "src/ocaml/preprocess/parser_raw.ml" +# 88252 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 88266 "src/ocaml/preprocess/parser_raw.ml" +# 88259 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 88273 "src/ocaml/preprocess/parser_raw.ml" +# 88266 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -88278,13 +88271,13 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 88282 "src/ocaml/preprocess/parser_raw.ml" +# 88275 "src/ocaml/preprocess/parser_raw.ml" in let label = # 4646 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 88288 "src/ocaml/preprocess/parser_raw.ml" +# 88281 "src/ocaml/preprocess/parser_raw.ml" in # 4576 "src/ocaml/preprocess/parser_raw.mly" @@ -88293,7 +88286,7 @@ module Tables = struct Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 88297 "src/ocaml/preprocess/parser_raw.ml" +# 88290 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__1_inlined2_ in @@ -88303,13 +88296,13 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 88307 "src/ocaml/preprocess/parser_raw.ml" +# 88300 "src/ocaml/preprocess/parser_raw.ml" in # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 88313 "src/ocaml/preprocess/parser_raw.ml" +# 88306 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -88386,12 +88379,12 @@ module Tables = struct let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 88390 "src/ocaml/preprocess/parser_raw.ml" +# 88383 "src/ocaml/preprocess/parser_raw.ml" in let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 88395 "src/ocaml/preprocess/parser_raw.ml" +# 88388 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -88400,7 +88393,7 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 88404 "src/ocaml/preprocess/parser_raw.ml" +# 88397 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = @@ -88409,7 +88402,7 @@ module Tables = struct # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 88413 "src/ocaml/preprocess/parser_raw.ml" +# 88406 "src/ocaml/preprocess/parser_raw.ml" in let ty = @@ -88421,24 +88414,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 88425 "src/ocaml/preprocess/parser_raw.ml" +# 88418 "src/ocaml/preprocess/parser_raw.ml" in # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 88430 "src/ocaml/preprocess/parser_raw.ml" +# 88423 "src/ocaml/preprocess/parser_raw.ml" in # 4481 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 88436 "src/ocaml/preprocess/parser_raw.ml" +# 88429 "src/ocaml/preprocess/parser_raw.ml" in # 4732 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 88442 "src/ocaml/preprocess/parser_raw.ml" +# 88435 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -88448,27 +88441,27 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 88452 "src/ocaml/preprocess/parser_raw.ml" +# 88445 "src/ocaml/preprocess/parser_raw.ml" in # 4734 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 88458 "src/ocaml/preprocess/parser_raw.ml" +# 88451 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 88465 "src/ocaml/preprocess/parser_raw.ml" +# 88458 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 88472 "src/ocaml/preprocess/parser_raw.ml" +# 88465 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -88477,13 +88470,13 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 88481 "src/ocaml/preprocess/parser_raw.ml" +# 88474 "src/ocaml/preprocess/parser_raw.ml" in let label = # 4646 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 88487 "src/ocaml/preprocess/parser_raw.ml" +# 88480 "src/ocaml/preprocess/parser_raw.ml" in # 4576 "src/ocaml/preprocess/parser_raw.mly" @@ -88492,7 +88485,7 @@ module Tables = struct Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 88496 "src/ocaml/preprocess/parser_raw.ml" +# 88489 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in @@ -88502,13 +88495,13 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 88506 "src/ocaml/preprocess/parser_raw.ml" +# 88499 "src/ocaml/preprocess/parser_raw.ml" in # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 88512 "src/ocaml/preprocess/parser_raw.ml" +# 88505 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -88593,12 +88586,12 @@ module Tables = struct let m1 = # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 88597 "src/ocaml/preprocess/parser_raw.ml" +# 88590 "src/ocaml/preprocess/parser_raw.ml" in let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 88602 "src/ocaml/preprocess/parser_raw.ml" +# 88595 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -88607,7 +88600,7 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 88611 "src/ocaml/preprocess/parser_raw.ml" +# 88604 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = @@ -88616,7 +88609,7 @@ module Tables = struct # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 88620 "src/ocaml/preprocess/parser_raw.ml" +# 88613 "src/ocaml/preprocess/parser_raw.ml" in let ty = @@ -88628,24 +88621,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 88632 "src/ocaml/preprocess/parser_raw.ml" +# 88625 "src/ocaml/preprocess/parser_raw.ml" in # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 88637 "src/ocaml/preprocess/parser_raw.ml" +# 88630 "src/ocaml/preprocess/parser_raw.ml" in # 4481 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 88643 "src/ocaml/preprocess/parser_raw.ml" +# 88636 "src/ocaml/preprocess/parser_raw.ml" in # 4732 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 88649 "src/ocaml/preprocess/parser_raw.ml" +# 88642 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -88655,27 +88648,27 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 88659 "src/ocaml/preprocess/parser_raw.ml" +# 88652 "src/ocaml/preprocess/parser_raw.ml" in # 4734 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 88665 "src/ocaml/preprocess/parser_raw.ml" +# 88658 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 88672 "src/ocaml/preprocess/parser_raw.ml" +# 88665 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 88679 "src/ocaml/preprocess/parser_raw.ml" +# 88672 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -88684,13 +88677,13 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 88688 "src/ocaml/preprocess/parser_raw.ml" +# 88681 "src/ocaml/preprocess/parser_raw.ml" in let label = # 4646 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 88694 "src/ocaml/preprocess/parser_raw.ml" +# 88687 "src/ocaml/preprocess/parser_raw.ml" in # 4576 "src/ocaml/preprocess/parser_raw.mly" @@ -88699,7 +88692,7 @@ module Tables = struct Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 88703 "src/ocaml/preprocess/parser_raw.ml" +# 88696 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__1_inlined2_ in @@ -88709,13 +88702,13 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 88713 "src/ocaml/preprocess/parser_raw.ml" +# 88706 "src/ocaml/preprocess/parser_raw.ml" in # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 88719 "src/ocaml/preprocess/parser_raw.ml" +# 88712 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -88800,18 +88793,18 @@ module Tables = struct let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 88804 "src/ocaml/preprocess/parser_raw.ml" +# 88797 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 88810 "src/ocaml/preprocess/parser_raw.ml" +# 88803 "src/ocaml/preprocess/parser_raw.ml" in # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 88815 "src/ocaml/preprocess/parser_raw.ml" +# 88808 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -88821,7 +88814,7 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 88825 "src/ocaml/preprocess/parser_raw.ml" +# 88818 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = @@ -88830,7 +88823,7 @@ module Tables = struct # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 88834 "src/ocaml/preprocess/parser_raw.ml" +# 88827 "src/ocaml/preprocess/parser_raw.ml" in let ty = @@ -88842,24 +88835,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 88846 "src/ocaml/preprocess/parser_raw.ml" +# 88839 "src/ocaml/preprocess/parser_raw.ml" in # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 88851 "src/ocaml/preprocess/parser_raw.ml" +# 88844 "src/ocaml/preprocess/parser_raw.ml" in # 4481 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 88857 "src/ocaml/preprocess/parser_raw.ml" +# 88850 "src/ocaml/preprocess/parser_raw.ml" in # 4732 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 88863 "src/ocaml/preprocess/parser_raw.ml" +# 88856 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -88869,27 +88862,27 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 88873 "src/ocaml/preprocess/parser_raw.ml" +# 88866 "src/ocaml/preprocess/parser_raw.ml" in # 4734 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 88879 "src/ocaml/preprocess/parser_raw.ml" +# 88872 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 88886 "src/ocaml/preprocess/parser_raw.ml" +# 88879 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 88893 "src/ocaml/preprocess/parser_raw.ml" +# 88886 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -88898,13 +88891,13 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 88902 "src/ocaml/preprocess/parser_raw.ml" +# 88895 "src/ocaml/preprocess/parser_raw.ml" in let label = # 4646 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 88908 "src/ocaml/preprocess/parser_raw.ml" +# 88901 "src/ocaml/preprocess/parser_raw.ml" in # 4576 "src/ocaml/preprocess/parser_raw.mly" @@ -88913,7 +88906,7 @@ module Tables = struct Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 88917 "src/ocaml/preprocess/parser_raw.ml" +# 88910 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in @@ -88923,13 +88916,13 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 88927 "src/ocaml/preprocess/parser_raw.ml" +# 88920 "src/ocaml/preprocess/parser_raw.ml" in # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 88933 "src/ocaml/preprocess/parser_raw.ml" +# 88926 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -89023,19 +89016,19 @@ module Tables = struct # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 89027 "src/ocaml/preprocess/parser_raw.ml" +# 89020 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 89034 "src/ocaml/preprocess/parser_raw.ml" +# 89027 "src/ocaml/preprocess/parser_raw.ml" in # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 89039 "src/ocaml/preprocess/parser_raw.ml" +# 89032 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -89045,7 +89038,7 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 89049 "src/ocaml/preprocess/parser_raw.ml" +# 89042 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = @@ -89054,7 +89047,7 @@ module Tables = struct # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 89058 "src/ocaml/preprocess/parser_raw.ml" +# 89051 "src/ocaml/preprocess/parser_raw.ml" in let ty = @@ -89066,24 +89059,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 89070 "src/ocaml/preprocess/parser_raw.ml" +# 89063 "src/ocaml/preprocess/parser_raw.ml" in # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 89075 "src/ocaml/preprocess/parser_raw.ml" +# 89068 "src/ocaml/preprocess/parser_raw.ml" in # 4481 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 89081 "src/ocaml/preprocess/parser_raw.ml" +# 89074 "src/ocaml/preprocess/parser_raw.ml" in # 4732 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 89087 "src/ocaml/preprocess/parser_raw.ml" +# 89080 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -89093,27 +89086,27 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 89097 "src/ocaml/preprocess/parser_raw.ml" +# 89090 "src/ocaml/preprocess/parser_raw.ml" in # 4734 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 89103 "src/ocaml/preprocess/parser_raw.ml" +# 89096 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 89110 "src/ocaml/preprocess/parser_raw.ml" +# 89103 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 89117 "src/ocaml/preprocess/parser_raw.ml" +# 89110 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -89122,13 +89115,13 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 89126 "src/ocaml/preprocess/parser_raw.ml" +# 89119 "src/ocaml/preprocess/parser_raw.ml" in let label = # 4646 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 89132 "src/ocaml/preprocess/parser_raw.ml" +# 89125 "src/ocaml/preprocess/parser_raw.ml" in # 4576 "src/ocaml/preprocess/parser_raw.mly" @@ -89137,7 +89130,7 @@ module Tables = struct Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 89141 "src/ocaml/preprocess/parser_raw.ml" +# 89134 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__1_inlined3_ in @@ -89147,13 +89140,13 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 89151 "src/ocaml/preprocess/parser_raw.ml" +# 89144 "src/ocaml/preprocess/parser_raw.ml" in # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 89157 "src/ocaml/preprocess/parser_raw.ml" +# 89150 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -89196,12 +89189,12 @@ module Tables = struct let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 89200 "src/ocaml/preprocess/parser_raw.ml" +# 89193 "src/ocaml/preprocess/parser_raw.ml" in let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 89205 "src/ocaml/preprocess/parser_raw.ml" +# 89198 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -89210,32 +89203,32 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 89214 "src/ocaml/preprocess/parser_raw.ml" +# 89207 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 89221 "src/ocaml/preprocess/parser_raw.ml" +# 89214 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = # 4736 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 89227 "src/ocaml/preprocess/parser_raw.ml" +# 89220 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 89233 "src/ocaml/preprocess/parser_raw.ml" +# 89226 "src/ocaml/preprocess/parser_raw.ml" in let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 89239 "src/ocaml/preprocess/parser_raw.ml" +# 89232 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -89244,13 +89237,13 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 89248 "src/ocaml/preprocess/parser_raw.ml" +# 89241 "src/ocaml/preprocess/parser_raw.ml" in let label = # 4646 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 89254 "src/ocaml/preprocess/parser_raw.ml" +# 89247 "src/ocaml/preprocess/parser_raw.ml" in # 4576 "src/ocaml/preprocess/parser_raw.mly" @@ -89259,7 +89252,7 @@ module Tables = struct Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 89263 "src/ocaml/preprocess/parser_raw.ml" +# 89256 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_ty_) in @@ -89269,13 +89262,13 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 89273 "src/ocaml/preprocess/parser_raw.ml" +# 89266 "src/ocaml/preprocess/parser_raw.ml" in # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 89279 "src/ocaml/preprocess/parser_raw.ml" +# 89272 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -89325,12 +89318,12 @@ module Tables = struct let m1 = # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 89329 "src/ocaml/preprocess/parser_raw.ml" +# 89322 "src/ocaml/preprocess/parser_raw.ml" in let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 89334 "src/ocaml/preprocess/parser_raw.ml" +# 89327 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -89339,32 +89332,32 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 89343 "src/ocaml/preprocess/parser_raw.ml" +# 89336 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 89350 "src/ocaml/preprocess/parser_raw.ml" +# 89343 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = # 4736 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 89356 "src/ocaml/preprocess/parser_raw.ml" +# 89349 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 89362 "src/ocaml/preprocess/parser_raw.ml" +# 89355 "src/ocaml/preprocess/parser_raw.ml" in let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 89368 "src/ocaml/preprocess/parser_raw.ml" +# 89361 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -89373,13 +89366,13 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 89377 "src/ocaml/preprocess/parser_raw.ml" +# 89370 "src/ocaml/preprocess/parser_raw.ml" in let label = # 4646 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 89383 "src/ocaml/preprocess/parser_raw.ml" +# 89376 "src/ocaml/preprocess/parser_raw.ml" in # 4576 "src/ocaml/preprocess/parser_raw.mly" @@ -89388,7 +89381,7 @@ module Tables = struct Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 89392 "src/ocaml/preprocess/parser_raw.ml" +# 89385 "src/ocaml/preprocess/parser_raw.ml" in let _startpos__1_ = _startpos_ty_ in @@ -89398,13 +89391,13 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 89402 "src/ocaml/preprocess/parser_raw.ml" +# 89395 "src/ocaml/preprocess/parser_raw.ml" in # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 89408 "src/ocaml/preprocess/parser_raw.ml" +# 89401 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -89454,18 +89447,18 @@ module Tables = struct let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 89458 "src/ocaml/preprocess/parser_raw.ml" +# 89451 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 89464 "src/ocaml/preprocess/parser_raw.ml" +# 89457 "src/ocaml/preprocess/parser_raw.ml" in # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 89469 "src/ocaml/preprocess/parser_raw.ml" +# 89462 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -89475,32 +89468,32 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 89479 "src/ocaml/preprocess/parser_raw.ml" +# 89472 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 89486 "src/ocaml/preprocess/parser_raw.ml" +# 89479 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = # 4736 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 89492 "src/ocaml/preprocess/parser_raw.ml" +# 89485 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 89498 "src/ocaml/preprocess/parser_raw.ml" +# 89491 "src/ocaml/preprocess/parser_raw.ml" in let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 89504 "src/ocaml/preprocess/parser_raw.ml" +# 89497 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -89509,13 +89502,13 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 89513 "src/ocaml/preprocess/parser_raw.ml" +# 89506 "src/ocaml/preprocess/parser_raw.ml" in let label = # 4646 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 89519 "src/ocaml/preprocess/parser_raw.ml" +# 89512 "src/ocaml/preprocess/parser_raw.ml" in # 4576 "src/ocaml/preprocess/parser_raw.mly" @@ -89524,7 +89517,7 @@ module Tables = struct Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 89528 "src/ocaml/preprocess/parser_raw.ml" +# 89521 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_ty_) in @@ -89534,13 +89527,13 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 89538 "src/ocaml/preprocess/parser_raw.ml" +# 89531 "src/ocaml/preprocess/parser_raw.ml" in # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 89544 "src/ocaml/preprocess/parser_raw.ml" +# 89537 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -89599,19 +89592,19 @@ module Tables = struct # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 89603 "src/ocaml/preprocess/parser_raw.ml" +# 89596 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 89610 "src/ocaml/preprocess/parser_raw.ml" +# 89603 "src/ocaml/preprocess/parser_raw.ml" in # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 89615 "src/ocaml/preprocess/parser_raw.ml" +# 89608 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -89621,32 +89614,32 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 89625 "src/ocaml/preprocess/parser_raw.ml" +# 89618 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 89632 "src/ocaml/preprocess/parser_raw.ml" +# 89625 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = # 4736 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 89638 "src/ocaml/preprocess/parser_raw.ml" +# 89631 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 89644 "src/ocaml/preprocess/parser_raw.ml" +# 89637 "src/ocaml/preprocess/parser_raw.ml" in let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 89650 "src/ocaml/preprocess/parser_raw.ml" +# 89643 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -89655,13 +89648,13 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 89659 "src/ocaml/preprocess/parser_raw.ml" +# 89652 "src/ocaml/preprocess/parser_raw.ml" in let label = # 4646 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 89665 "src/ocaml/preprocess/parser_raw.ml" +# 89658 "src/ocaml/preprocess/parser_raw.ml" in # 4576 "src/ocaml/preprocess/parser_raw.mly" @@ -89670,7 +89663,7 @@ module Tables = struct Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 89674 "src/ocaml/preprocess/parser_raw.ml" +# 89667 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos_ty_) in @@ -89680,13 +89673,13 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 89684 "src/ocaml/preprocess/parser_raw.ml" +# 89677 "src/ocaml/preprocess/parser_raw.ml" in # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 89690 "src/ocaml/preprocess/parser_raw.ml" +# 89683 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -89736,12 +89729,12 @@ module Tables = struct let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 89740 "src/ocaml/preprocess/parser_raw.ml" +# 89733 "src/ocaml/preprocess/parser_raw.ml" in let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 89745 "src/ocaml/preprocess/parser_raw.ml" +# 89738 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -89750,32 +89743,32 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 89754 "src/ocaml/preprocess/parser_raw.ml" +# 89747 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 89761 "src/ocaml/preprocess/parser_raw.ml" +# 89754 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = # 4736 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 89767 "src/ocaml/preprocess/parser_raw.ml" +# 89760 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 89773 "src/ocaml/preprocess/parser_raw.ml" +# 89766 "src/ocaml/preprocess/parser_raw.ml" in let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 89779 "src/ocaml/preprocess/parser_raw.ml" +# 89772 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -89784,13 +89777,13 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 89788 "src/ocaml/preprocess/parser_raw.ml" +# 89781 "src/ocaml/preprocess/parser_raw.ml" in let label = # 4646 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 89794 "src/ocaml/preprocess/parser_raw.ml" +# 89787 "src/ocaml/preprocess/parser_raw.ml" in # 4576 "src/ocaml/preprocess/parser_raw.mly" @@ -89799,7 +89792,7 @@ module Tables = struct Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 89803 "src/ocaml/preprocess/parser_raw.ml" +# 89796 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_ty_) in @@ -89809,13 +89802,13 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 89813 "src/ocaml/preprocess/parser_raw.ml" +# 89806 "src/ocaml/preprocess/parser_raw.ml" in # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 89819 "src/ocaml/preprocess/parser_raw.ml" +# 89812 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -89872,12 +89865,12 @@ module Tables = struct let m1 = # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 89876 "src/ocaml/preprocess/parser_raw.ml" +# 89869 "src/ocaml/preprocess/parser_raw.ml" in let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 89881 "src/ocaml/preprocess/parser_raw.ml" +# 89874 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -89886,32 +89879,32 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 89890 "src/ocaml/preprocess/parser_raw.ml" +# 89883 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 89897 "src/ocaml/preprocess/parser_raw.ml" +# 89890 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = # 4736 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 89903 "src/ocaml/preprocess/parser_raw.ml" +# 89896 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 89909 "src/ocaml/preprocess/parser_raw.ml" +# 89902 "src/ocaml/preprocess/parser_raw.ml" in let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 89915 "src/ocaml/preprocess/parser_raw.ml" +# 89908 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -89920,13 +89913,13 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 89924 "src/ocaml/preprocess/parser_raw.ml" +# 89917 "src/ocaml/preprocess/parser_raw.ml" in let label = # 4646 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 89930 "src/ocaml/preprocess/parser_raw.ml" +# 89923 "src/ocaml/preprocess/parser_raw.ml" in # 4576 "src/ocaml/preprocess/parser_raw.mly" @@ -89935,7 +89928,7 @@ module Tables = struct Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 89939 "src/ocaml/preprocess/parser_raw.ml" +# 89932 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos_ty_) in @@ -89945,13 +89938,13 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 89949 "src/ocaml/preprocess/parser_raw.ml" +# 89942 "src/ocaml/preprocess/parser_raw.ml" in # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 89955 "src/ocaml/preprocess/parser_raw.ml" +# 89948 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -90008,18 +90001,18 @@ module Tables = struct let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 90012 "src/ocaml/preprocess/parser_raw.ml" +# 90005 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 90018 "src/ocaml/preprocess/parser_raw.ml" +# 90011 "src/ocaml/preprocess/parser_raw.ml" in # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 90023 "src/ocaml/preprocess/parser_raw.ml" +# 90016 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -90029,32 +90022,32 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 90033 "src/ocaml/preprocess/parser_raw.ml" +# 90026 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 90040 "src/ocaml/preprocess/parser_raw.ml" +# 90033 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = # 4736 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 90046 "src/ocaml/preprocess/parser_raw.ml" +# 90039 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 90052 "src/ocaml/preprocess/parser_raw.ml" +# 90045 "src/ocaml/preprocess/parser_raw.ml" in let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 90058 "src/ocaml/preprocess/parser_raw.ml" +# 90051 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -90063,13 +90056,13 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 90067 "src/ocaml/preprocess/parser_raw.ml" +# 90060 "src/ocaml/preprocess/parser_raw.ml" in let label = # 4646 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 90073 "src/ocaml/preprocess/parser_raw.ml" +# 90066 "src/ocaml/preprocess/parser_raw.ml" in # 4576 "src/ocaml/preprocess/parser_raw.mly" @@ -90078,7 +90071,7 @@ module Tables = struct Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 90082 "src/ocaml/preprocess/parser_raw.ml" +# 90075 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_ty_) in @@ -90088,13 +90081,13 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 90092 "src/ocaml/preprocess/parser_raw.ml" +# 90085 "src/ocaml/preprocess/parser_raw.ml" in # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 90098 "src/ocaml/preprocess/parser_raw.ml" +# 90091 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -90160,19 +90153,19 @@ module Tables = struct # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 90164 "src/ocaml/preprocess/parser_raw.ml" +# 90157 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 90171 "src/ocaml/preprocess/parser_raw.ml" +# 90164 "src/ocaml/preprocess/parser_raw.ml" in # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 90176 "src/ocaml/preprocess/parser_raw.ml" +# 90169 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -90182,32 +90175,32 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 90186 "src/ocaml/preprocess/parser_raw.ml" +# 90179 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 90193 "src/ocaml/preprocess/parser_raw.ml" +# 90186 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = # 4736 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 90199 "src/ocaml/preprocess/parser_raw.ml" +# 90192 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 90205 "src/ocaml/preprocess/parser_raw.ml" +# 90198 "src/ocaml/preprocess/parser_raw.ml" in let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 90211 "src/ocaml/preprocess/parser_raw.ml" +# 90204 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -90216,13 +90209,13 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 90220 "src/ocaml/preprocess/parser_raw.ml" +# 90213 "src/ocaml/preprocess/parser_raw.ml" in let label = # 4646 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 90226 "src/ocaml/preprocess/parser_raw.ml" +# 90219 "src/ocaml/preprocess/parser_raw.ml" in # 4576 "src/ocaml/preprocess/parser_raw.mly" @@ -90231,7 +90224,7 @@ module Tables = struct Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 90235 "src/ocaml/preprocess/parser_raw.ml" +# 90228 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined2_, _startpos_ty_) in @@ -90241,13 +90234,13 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 90245 "src/ocaml/preprocess/parser_raw.ml" +# 90238 "src/ocaml/preprocess/parser_raw.ml" in # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 90251 "src/ocaml/preprocess/parser_raw.ml" +# 90244 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -90324,12 +90317,12 @@ module Tables = struct let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 90328 "src/ocaml/preprocess/parser_raw.ml" +# 90321 "src/ocaml/preprocess/parser_raw.ml" in let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 90333 "src/ocaml/preprocess/parser_raw.ml" +# 90326 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -90338,14 +90331,14 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 90342 "src/ocaml/preprocess/parser_raw.ml" +# 90335 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 90349 "src/ocaml/preprocess/parser_raw.ml" +# 90342 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _startpos__1_ = _startpos__1_inlined1_ in @@ -90357,24 +90350,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 90361 "src/ocaml/preprocess/parser_raw.ml" +# 90354 "src/ocaml/preprocess/parser_raw.ml" in # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 90366 "src/ocaml/preprocess/parser_raw.ml" +# 90359 "src/ocaml/preprocess/parser_raw.ml" in # 4481 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 90372 "src/ocaml/preprocess/parser_raw.ml" +# 90365 "src/ocaml/preprocess/parser_raw.ml" in # 4732 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 90378 "src/ocaml/preprocess/parser_raw.ml" +# 90371 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -90384,20 +90377,20 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 90388 "src/ocaml/preprocess/parser_raw.ml" +# 90381 "src/ocaml/preprocess/parser_raw.ml" in # 4734 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 90394 "src/ocaml/preprocess/parser_raw.ml" +# 90387 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 90401 "src/ocaml/preprocess/parser_raw.ml" +# 90394 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in @@ -90405,12 +90398,12 @@ module Tables = struct let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 90409 "src/ocaml/preprocess/parser_raw.ml" +# 90402 "src/ocaml/preprocess/parser_raw.ml" in # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 90414 "src/ocaml/preprocess/parser_raw.ml" +# 90407 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -90420,13 +90413,13 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 90424 "src/ocaml/preprocess/parser_raw.ml" +# 90417 "src/ocaml/preprocess/parser_raw.ml" in let label = # 4646 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 90430 "src/ocaml/preprocess/parser_raw.ml" +# 90423 "src/ocaml/preprocess/parser_raw.ml" in # 4576 "src/ocaml/preprocess/parser_raw.mly" @@ -90435,7 +90428,7 @@ module Tables = struct Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 90439 "src/ocaml/preprocess/parser_raw.ml" +# 90432 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in @@ -90445,13 +90438,13 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 90449 "src/ocaml/preprocess/parser_raw.ml" +# 90442 "src/ocaml/preprocess/parser_raw.ml" in # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 90455 "src/ocaml/preprocess/parser_raw.ml" +# 90448 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -90536,12 +90529,12 @@ module Tables = struct let m1 = # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 90540 "src/ocaml/preprocess/parser_raw.ml" +# 90533 "src/ocaml/preprocess/parser_raw.ml" in let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 90545 "src/ocaml/preprocess/parser_raw.ml" +# 90538 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -90550,14 +90543,14 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 90554 "src/ocaml/preprocess/parser_raw.ml" +# 90547 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 90561 "src/ocaml/preprocess/parser_raw.ml" +# 90554 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _startpos__1_ = _startpos__1_inlined1_ in @@ -90569,24 +90562,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 90573 "src/ocaml/preprocess/parser_raw.ml" +# 90566 "src/ocaml/preprocess/parser_raw.ml" in # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 90578 "src/ocaml/preprocess/parser_raw.ml" +# 90571 "src/ocaml/preprocess/parser_raw.ml" in # 4481 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 90584 "src/ocaml/preprocess/parser_raw.ml" +# 90577 "src/ocaml/preprocess/parser_raw.ml" in # 4732 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 90590 "src/ocaml/preprocess/parser_raw.ml" +# 90583 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -90596,20 +90589,20 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 90600 "src/ocaml/preprocess/parser_raw.ml" +# 90593 "src/ocaml/preprocess/parser_raw.ml" in # 4734 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 90606 "src/ocaml/preprocess/parser_raw.ml" +# 90599 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 90613 "src/ocaml/preprocess/parser_raw.ml" +# 90606 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in @@ -90617,12 +90610,12 @@ module Tables = struct let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 90621 "src/ocaml/preprocess/parser_raw.ml" +# 90614 "src/ocaml/preprocess/parser_raw.ml" in # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 90626 "src/ocaml/preprocess/parser_raw.ml" +# 90619 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -90632,13 +90625,13 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 90636 "src/ocaml/preprocess/parser_raw.ml" +# 90629 "src/ocaml/preprocess/parser_raw.ml" in let label = # 4646 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 90642 "src/ocaml/preprocess/parser_raw.ml" +# 90635 "src/ocaml/preprocess/parser_raw.ml" in # 4576 "src/ocaml/preprocess/parser_raw.mly" @@ -90647,7 +90640,7 @@ module Tables = struct Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 90651 "src/ocaml/preprocess/parser_raw.ml" +# 90644 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__1_inlined2_ in @@ -90657,13 +90650,13 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 90661 "src/ocaml/preprocess/parser_raw.ml" +# 90654 "src/ocaml/preprocess/parser_raw.ml" in # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 90667 "src/ocaml/preprocess/parser_raw.ml" +# 90660 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -90748,18 +90741,18 @@ module Tables = struct let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 90752 "src/ocaml/preprocess/parser_raw.ml" +# 90745 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 90758 "src/ocaml/preprocess/parser_raw.ml" +# 90751 "src/ocaml/preprocess/parser_raw.ml" in # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 90763 "src/ocaml/preprocess/parser_raw.ml" +# 90756 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -90769,14 +90762,14 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 90773 "src/ocaml/preprocess/parser_raw.ml" +# 90766 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 90780 "src/ocaml/preprocess/parser_raw.ml" +# 90773 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _startpos__1_ = _startpos__1_inlined1_ in @@ -90788,24 +90781,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 90792 "src/ocaml/preprocess/parser_raw.ml" +# 90785 "src/ocaml/preprocess/parser_raw.ml" in # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 90797 "src/ocaml/preprocess/parser_raw.ml" +# 90790 "src/ocaml/preprocess/parser_raw.ml" in # 4481 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 90803 "src/ocaml/preprocess/parser_raw.ml" +# 90796 "src/ocaml/preprocess/parser_raw.ml" in # 4732 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 90809 "src/ocaml/preprocess/parser_raw.ml" +# 90802 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -90815,20 +90808,20 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 90819 "src/ocaml/preprocess/parser_raw.ml" +# 90812 "src/ocaml/preprocess/parser_raw.ml" in # 4734 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 90825 "src/ocaml/preprocess/parser_raw.ml" +# 90818 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 90832 "src/ocaml/preprocess/parser_raw.ml" +# 90825 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in @@ -90836,12 +90829,12 @@ module Tables = struct let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 90840 "src/ocaml/preprocess/parser_raw.ml" +# 90833 "src/ocaml/preprocess/parser_raw.ml" in # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 90845 "src/ocaml/preprocess/parser_raw.ml" +# 90838 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -90851,13 +90844,13 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 90855 "src/ocaml/preprocess/parser_raw.ml" +# 90848 "src/ocaml/preprocess/parser_raw.ml" in let label = # 4646 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 90861 "src/ocaml/preprocess/parser_raw.ml" +# 90854 "src/ocaml/preprocess/parser_raw.ml" in # 4576 "src/ocaml/preprocess/parser_raw.mly" @@ -90866,7 +90859,7 @@ module Tables = struct Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 90870 "src/ocaml/preprocess/parser_raw.ml" +# 90863 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in @@ -90876,13 +90869,13 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 90880 "src/ocaml/preprocess/parser_raw.ml" +# 90873 "src/ocaml/preprocess/parser_raw.ml" in # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 90886 "src/ocaml/preprocess/parser_raw.ml" +# 90879 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -90976,19 +90969,19 @@ module Tables = struct # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 90980 "src/ocaml/preprocess/parser_raw.ml" +# 90973 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 90987 "src/ocaml/preprocess/parser_raw.ml" +# 90980 "src/ocaml/preprocess/parser_raw.ml" in # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 90992 "src/ocaml/preprocess/parser_raw.ml" +# 90985 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -90998,14 +90991,14 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 91002 "src/ocaml/preprocess/parser_raw.ml" +# 90995 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 91009 "src/ocaml/preprocess/parser_raw.ml" +# 91002 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _startpos__1_ = _startpos__1_inlined1_ in @@ -91017,24 +91010,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 91021 "src/ocaml/preprocess/parser_raw.ml" +# 91014 "src/ocaml/preprocess/parser_raw.ml" in # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 91026 "src/ocaml/preprocess/parser_raw.ml" +# 91019 "src/ocaml/preprocess/parser_raw.ml" in # 4481 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 91032 "src/ocaml/preprocess/parser_raw.ml" +# 91025 "src/ocaml/preprocess/parser_raw.ml" in # 4732 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 91038 "src/ocaml/preprocess/parser_raw.ml" +# 91031 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -91044,20 +91037,20 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 91048 "src/ocaml/preprocess/parser_raw.ml" +# 91041 "src/ocaml/preprocess/parser_raw.ml" in # 4734 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 91054 "src/ocaml/preprocess/parser_raw.ml" +# 91047 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 91061 "src/ocaml/preprocess/parser_raw.ml" +# 91054 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in @@ -91065,12 +91058,12 @@ module Tables = struct let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 91069 "src/ocaml/preprocess/parser_raw.ml" +# 91062 "src/ocaml/preprocess/parser_raw.ml" in # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 91074 "src/ocaml/preprocess/parser_raw.ml" +# 91067 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -91080,13 +91073,13 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 91084 "src/ocaml/preprocess/parser_raw.ml" +# 91077 "src/ocaml/preprocess/parser_raw.ml" in let label = # 4646 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 91090 "src/ocaml/preprocess/parser_raw.ml" +# 91083 "src/ocaml/preprocess/parser_raw.ml" in # 4576 "src/ocaml/preprocess/parser_raw.mly" @@ -91095,7 +91088,7 @@ module Tables = struct Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 91099 "src/ocaml/preprocess/parser_raw.ml" +# 91092 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__1_inlined3_ in @@ -91105,13 +91098,13 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 91109 "src/ocaml/preprocess/parser_raw.ml" +# 91102 "src/ocaml/preprocess/parser_raw.ml" in # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 91115 "src/ocaml/preprocess/parser_raw.ml" +# 91108 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -91195,12 +91188,12 @@ module Tables = struct let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 91199 "src/ocaml/preprocess/parser_raw.ml" +# 91192 "src/ocaml/preprocess/parser_raw.ml" in let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 91204 "src/ocaml/preprocess/parser_raw.ml" +# 91197 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -91209,7 +91202,7 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 91213 "src/ocaml/preprocess/parser_raw.ml" +# 91206 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = @@ -91218,7 +91211,7 @@ module Tables = struct # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 91222 "src/ocaml/preprocess/parser_raw.ml" +# 91215 "src/ocaml/preprocess/parser_raw.ml" in let ty = @@ -91231,24 +91224,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 91235 "src/ocaml/preprocess/parser_raw.ml" +# 91228 "src/ocaml/preprocess/parser_raw.ml" in # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 91240 "src/ocaml/preprocess/parser_raw.ml" +# 91233 "src/ocaml/preprocess/parser_raw.ml" in # 4481 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 91246 "src/ocaml/preprocess/parser_raw.ml" +# 91239 "src/ocaml/preprocess/parser_raw.ml" in # 4732 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 91252 "src/ocaml/preprocess/parser_raw.ml" +# 91245 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -91258,20 +91251,20 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 91262 "src/ocaml/preprocess/parser_raw.ml" +# 91255 "src/ocaml/preprocess/parser_raw.ml" in # 4734 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 91268 "src/ocaml/preprocess/parser_raw.ml" +# 91261 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 91275 "src/ocaml/preprocess/parser_raw.ml" +# 91268 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in @@ -91279,12 +91272,12 @@ module Tables = struct let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 91283 "src/ocaml/preprocess/parser_raw.ml" +# 91276 "src/ocaml/preprocess/parser_raw.ml" in # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 91288 "src/ocaml/preprocess/parser_raw.ml" +# 91281 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -91294,13 +91287,13 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 91298 "src/ocaml/preprocess/parser_raw.ml" +# 91291 "src/ocaml/preprocess/parser_raw.ml" in let label = # 4646 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 91304 "src/ocaml/preprocess/parser_raw.ml" +# 91297 "src/ocaml/preprocess/parser_raw.ml" in # 4576 "src/ocaml/preprocess/parser_raw.mly" @@ -91309,7 +91302,7 @@ module Tables = struct Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 91313 "src/ocaml/preprocess/parser_raw.ml" +# 91306 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in @@ -91319,13 +91312,13 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 91323 "src/ocaml/preprocess/parser_raw.ml" +# 91316 "src/ocaml/preprocess/parser_raw.ml" in # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 91329 "src/ocaml/preprocess/parser_raw.ml" +# 91322 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -91417,12 +91410,12 @@ module Tables = struct let m1 = # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 91421 "src/ocaml/preprocess/parser_raw.ml" +# 91414 "src/ocaml/preprocess/parser_raw.ml" in let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 91426 "src/ocaml/preprocess/parser_raw.ml" +# 91419 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -91431,7 +91424,7 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 91435 "src/ocaml/preprocess/parser_raw.ml" +# 91428 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = @@ -91440,7 +91433,7 @@ module Tables = struct # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 91444 "src/ocaml/preprocess/parser_raw.ml" +# 91437 "src/ocaml/preprocess/parser_raw.ml" in let ty = @@ -91453,24 +91446,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 91457 "src/ocaml/preprocess/parser_raw.ml" +# 91450 "src/ocaml/preprocess/parser_raw.ml" in # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 91462 "src/ocaml/preprocess/parser_raw.ml" +# 91455 "src/ocaml/preprocess/parser_raw.ml" in # 4481 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 91468 "src/ocaml/preprocess/parser_raw.ml" +# 91461 "src/ocaml/preprocess/parser_raw.ml" in # 4732 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 91474 "src/ocaml/preprocess/parser_raw.ml" +# 91467 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -91480,20 +91473,20 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 91484 "src/ocaml/preprocess/parser_raw.ml" +# 91477 "src/ocaml/preprocess/parser_raw.ml" in # 4734 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 91490 "src/ocaml/preprocess/parser_raw.ml" +# 91483 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 91497 "src/ocaml/preprocess/parser_raw.ml" +# 91490 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in @@ -91501,12 +91494,12 @@ module Tables = struct let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 91505 "src/ocaml/preprocess/parser_raw.ml" +# 91498 "src/ocaml/preprocess/parser_raw.ml" in # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 91510 "src/ocaml/preprocess/parser_raw.ml" +# 91503 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -91516,13 +91509,13 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 91520 "src/ocaml/preprocess/parser_raw.ml" +# 91513 "src/ocaml/preprocess/parser_raw.ml" in let label = # 4646 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 91526 "src/ocaml/preprocess/parser_raw.ml" +# 91519 "src/ocaml/preprocess/parser_raw.ml" in # 4576 "src/ocaml/preprocess/parser_raw.mly" @@ -91531,7 +91524,7 @@ module Tables = struct Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 91535 "src/ocaml/preprocess/parser_raw.ml" +# 91528 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__1_inlined3_ in @@ -91541,13 +91534,13 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 91545 "src/ocaml/preprocess/parser_raw.ml" +# 91538 "src/ocaml/preprocess/parser_raw.ml" in # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 91551 "src/ocaml/preprocess/parser_raw.ml" +# 91544 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -91639,18 +91632,18 @@ module Tables = struct let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 91643 "src/ocaml/preprocess/parser_raw.ml" +# 91636 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 91649 "src/ocaml/preprocess/parser_raw.ml" +# 91642 "src/ocaml/preprocess/parser_raw.ml" in # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 91654 "src/ocaml/preprocess/parser_raw.ml" +# 91647 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -91660,7 +91653,7 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 91664 "src/ocaml/preprocess/parser_raw.ml" +# 91657 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = @@ -91669,7 +91662,7 @@ module Tables = struct # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 91673 "src/ocaml/preprocess/parser_raw.ml" +# 91666 "src/ocaml/preprocess/parser_raw.ml" in let ty = @@ -91682,24 +91675,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 91686 "src/ocaml/preprocess/parser_raw.ml" +# 91679 "src/ocaml/preprocess/parser_raw.ml" in # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 91691 "src/ocaml/preprocess/parser_raw.ml" +# 91684 "src/ocaml/preprocess/parser_raw.ml" in # 4481 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 91697 "src/ocaml/preprocess/parser_raw.ml" +# 91690 "src/ocaml/preprocess/parser_raw.ml" in # 4732 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 91703 "src/ocaml/preprocess/parser_raw.ml" +# 91696 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -91709,20 +91702,20 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 91713 "src/ocaml/preprocess/parser_raw.ml" +# 91706 "src/ocaml/preprocess/parser_raw.ml" in # 4734 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 91719 "src/ocaml/preprocess/parser_raw.ml" +# 91712 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 91726 "src/ocaml/preprocess/parser_raw.ml" +# 91719 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in @@ -91730,12 +91723,12 @@ module Tables = struct let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 91734 "src/ocaml/preprocess/parser_raw.ml" +# 91727 "src/ocaml/preprocess/parser_raw.ml" in # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 91739 "src/ocaml/preprocess/parser_raw.ml" +# 91732 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -91745,13 +91738,13 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 91749 "src/ocaml/preprocess/parser_raw.ml" +# 91742 "src/ocaml/preprocess/parser_raw.ml" in let label = # 4646 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 91755 "src/ocaml/preprocess/parser_raw.ml" +# 91748 "src/ocaml/preprocess/parser_raw.ml" in # 4576 "src/ocaml/preprocess/parser_raw.mly" @@ -91760,7 +91753,7 @@ module Tables = struct Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 91764 "src/ocaml/preprocess/parser_raw.ml" +# 91757 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in @@ -91770,13 +91763,13 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 91774 "src/ocaml/preprocess/parser_raw.ml" +# 91767 "src/ocaml/preprocess/parser_raw.ml" in # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 91780 "src/ocaml/preprocess/parser_raw.ml" +# 91773 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -91877,19 +91870,19 @@ module Tables = struct # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 91881 "src/ocaml/preprocess/parser_raw.ml" +# 91874 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 91888 "src/ocaml/preprocess/parser_raw.ml" +# 91881 "src/ocaml/preprocess/parser_raw.ml" in # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 91893 "src/ocaml/preprocess/parser_raw.ml" +# 91886 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -91899,7 +91892,7 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 91903 "src/ocaml/preprocess/parser_raw.ml" +# 91896 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = @@ -91908,7 +91901,7 @@ module Tables = struct # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 91912 "src/ocaml/preprocess/parser_raw.ml" +# 91905 "src/ocaml/preprocess/parser_raw.ml" in let ty = @@ -91921,24 +91914,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 91925 "src/ocaml/preprocess/parser_raw.ml" +# 91918 "src/ocaml/preprocess/parser_raw.ml" in # 1398 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 91930 "src/ocaml/preprocess/parser_raw.ml" +# 91923 "src/ocaml/preprocess/parser_raw.ml" in # 4481 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 91936 "src/ocaml/preprocess/parser_raw.ml" +# 91929 "src/ocaml/preprocess/parser_raw.ml" in # 4732 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 91942 "src/ocaml/preprocess/parser_raw.ml" +# 91935 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -91948,20 +91941,20 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 91952 "src/ocaml/preprocess/parser_raw.ml" +# 91945 "src/ocaml/preprocess/parser_raw.ml" in # 4734 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 91958 "src/ocaml/preprocess/parser_raw.ml" +# 91951 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 91965 "src/ocaml/preprocess/parser_raw.ml" +# 91958 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in @@ -91969,12 +91962,12 @@ module Tables = struct let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 91973 "src/ocaml/preprocess/parser_raw.ml" +# 91966 "src/ocaml/preprocess/parser_raw.ml" in # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 91978 "src/ocaml/preprocess/parser_raw.ml" +# 91971 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -91984,13 +91977,13 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 91988 "src/ocaml/preprocess/parser_raw.ml" +# 91981 "src/ocaml/preprocess/parser_raw.ml" in let label = # 4646 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 91994 "src/ocaml/preprocess/parser_raw.ml" +# 91987 "src/ocaml/preprocess/parser_raw.ml" in # 4576 "src/ocaml/preprocess/parser_raw.mly" @@ -91999,7 +91992,7 @@ module Tables = struct Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 92003 "src/ocaml/preprocess/parser_raw.ml" +# 91996 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__1_inlined4_ in @@ -92009,13 +92002,13 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 92013 "src/ocaml/preprocess/parser_raw.ml" +# 92006 "src/ocaml/preprocess/parser_raw.ml" in # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 92019 "src/ocaml/preprocess/parser_raw.ml" +# 92012 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -92065,12 +92058,12 @@ module Tables = struct let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 92069 "src/ocaml/preprocess/parser_raw.ml" +# 92062 "src/ocaml/preprocess/parser_raw.ml" in let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 92074 "src/ocaml/preprocess/parser_raw.ml" +# 92067 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -92079,38 +92072,38 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 92083 "src/ocaml/preprocess/parser_raw.ml" +# 92076 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 92090 "src/ocaml/preprocess/parser_raw.ml" +# 92083 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = # 4736 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 92096 "src/ocaml/preprocess/parser_raw.ml" +# 92089 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 92102 "src/ocaml/preprocess/parser_raw.ml" +# 92095 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 92109 "src/ocaml/preprocess/parser_raw.ml" +# 92102 "src/ocaml/preprocess/parser_raw.ml" in # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 92114 "src/ocaml/preprocess/parser_raw.ml" +# 92107 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -92120,13 +92113,13 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 92124 "src/ocaml/preprocess/parser_raw.ml" +# 92117 "src/ocaml/preprocess/parser_raw.ml" in let label = # 4646 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 92130 "src/ocaml/preprocess/parser_raw.ml" +# 92123 "src/ocaml/preprocess/parser_raw.ml" in # 4576 "src/ocaml/preprocess/parser_raw.mly" @@ -92135,7 +92128,7 @@ module Tables = struct Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 92139 "src/ocaml/preprocess/parser_raw.ml" +# 92132 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_inlined1_ in @@ -92145,13 +92138,13 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 92149 "src/ocaml/preprocess/parser_raw.ml" +# 92142 "src/ocaml/preprocess/parser_raw.ml" in # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 92155 "src/ocaml/preprocess/parser_raw.ml" +# 92148 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -92208,12 +92201,12 @@ module Tables = struct let m1 = # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 92212 "src/ocaml/preprocess/parser_raw.ml" +# 92205 "src/ocaml/preprocess/parser_raw.ml" in let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 92217 "src/ocaml/preprocess/parser_raw.ml" +# 92210 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -92222,38 +92215,38 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 92226 "src/ocaml/preprocess/parser_raw.ml" +# 92219 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 92233 "src/ocaml/preprocess/parser_raw.ml" +# 92226 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = # 4736 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 92239 "src/ocaml/preprocess/parser_raw.ml" +# 92232 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 92245 "src/ocaml/preprocess/parser_raw.ml" +# 92238 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 92252 "src/ocaml/preprocess/parser_raw.ml" +# 92245 "src/ocaml/preprocess/parser_raw.ml" in # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 92257 "src/ocaml/preprocess/parser_raw.ml" +# 92250 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -92263,13 +92256,13 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 92267 "src/ocaml/preprocess/parser_raw.ml" +# 92260 "src/ocaml/preprocess/parser_raw.ml" in let label = # 4646 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 92273 "src/ocaml/preprocess/parser_raw.ml" +# 92266 "src/ocaml/preprocess/parser_raw.ml" in # 4576 "src/ocaml/preprocess/parser_raw.mly" @@ -92278,7 +92271,7 @@ module Tables = struct Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 92282 "src/ocaml/preprocess/parser_raw.ml" +# 92275 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__1_inlined1_ in @@ -92288,13 +92281,13 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 92292 "src/ocaml/preprocess/parser_raw.ml" +# 92285 "src/ocaml/preprocess/parser_raw.ml" in # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 92298 "src/ocaml/preprocess/parser_raw.ml" +# 92291 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -92351,18 +92344,18 @@ module Tables = struct let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 92355 "src/ocaml/preprocess/parser_raw.ml" +# 92348 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 92361 "src/ocaml/preprocess/parser_raw.ml" +# 92354 "src/ocaml/preprocess/parser_raw.ml" in # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 92366 "src/ocaml/preprocess/parser_raw.ml" +# 92359 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -92372,38 +92365,38 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 92376 "src/ocaml/preprocess/parser_raw.ml" +# 92369 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 92383 "src/ocaml/preprocess/parser_raw.ml" +# 92376 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = # 4736 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 92389 "src/ocaml/preprocess/parser_raw.ml" +# 92382 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 92395 "src/ocaml/preprocess/parser_raw.ml" +# 92388 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 92402 "src/ocaml/preprocess/parser_raw.ml" +# 92395 "src/ocaml/preprocess/parser_raw.ml" in # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 92407 "src/ocaml/preprocess/parser_raw.ml" +# 92400 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -92413,13 +92406,13 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 92417 "src/ocaml/preprocess/parser_raw.ml" +# 92410 "src/ocaml/preprocess/parser_raw.ml" in let label = # 4646 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 92423 "src/ocaml/preprocess/parser_raw.ml" +# 92416 "src/ocaml/preprocess/parser_raw.ml" in # 4576 "src/ocaml/preprocess/parser_raw.mly" @@ -92428,7 +92421,7 @@ module Tables = struct Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 92432 "src/ocaml/preprocess/parser_raw.ml" +# 92425 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_inlined1_ in @@ -92438,13 +92431,13 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 92442 "src/ocaml/preprocess/parser_raw.ml" +# 92435 "src/ocaml/preprocess/parser_raw.ml" in # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 92448 "src/ocaml/preprocess/parser_raw.ml" +# 92441 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -92510,19 +92503,19 @@ module Tables = struct # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 92514 "src/ocaml/preprocess/parser_raw.ml" +# 92507 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 92521 "src/ocaml/preprocess/parser_raw.ml" +# 92514 "src/ocaml/preprocess/parser_raw.ml" in # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 92526 "src/ocaml/preprocess/parser_raw.ml" +# 92519 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -92532,38 +92525,38 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 92536 "src/ocaml/preprocess/parser_raw.ml" +# 92529 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 92543 "src/ocaml/preprocess/parser_raw.ml" +# 92536 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = # 4736 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 92549 "src/ocaml/preprocess/parser_raw.ml" +# 92542 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 92555 "src/ocaml/preprocess/parser_raw.ml" +# 92548 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 92562 "src/ocaml/preprocess/parser_raw.ml" +# 92555 "src/ocaml/preprocess/parser_raw.ml" in # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 92567 "src/ocaml/preprocess/parser_raw.ml" +# 92560 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -92573,13 +92566,13 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 92577 "src/ocaml/preprocess/parser_raw.ml" +# 92570 "src/ocaml/preprocess/parser_raw.ml" in let label = # 4646 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 92583 "src/ocaml/preprocess/parser_raw.ml" +# 92576 "src/ocaml/preprocess/parser_raw.ml" in # 4576 "src/ocaml/preprocess/parser_raw.mly" @@ -92588,7 +92581,7 @@ module Tables = struct Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 92592 "src/ocaml/preprocess/parser_raw.ml" +# 92585 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__1_inlined2_ in @@ -92598,13 +92591,13 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 92602 "src/ocaml/preprocess/parser_raw.ml" +# 92595 "src/ocaml/preprocess/parser_raw.ml" in # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 92608 "src/ocaml/preprocess/parser_raw.ml" +# 92601 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -92661,12 +92654,12 @@ module Tables = struct let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 92665 "src/ocaml/preprocess/parser_raw.ml" +# 92658 "src/ocaml/preprocess/parser_raw.ml" in let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 92670 "src/ocaml/preprocess/parser_raw.ml" +# 92663 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -92675,7 +92668,7 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 92679 "src/ocaml/preprocess/parser_raw.ml" +# 92672 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = @@ -92684,32 +92677,32 @@ module Tables = struct # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 92688 "src/ocaml/preprocess/parser_raw.ml" +# 92681 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = # 4736 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 92695 "src/ocaml/preprocess/parser_raw.ml" +# 92688 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 92701 "src/ocaml/preprocess/parser_raw.ml" +# 92694 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 92708 "src/ocaml/preprocess/parser_raw.ml" +# 92701 "src/ocaml/preprocess/parser_raw.ml" in # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 92713 "src/ocaml/preprocess/parser_raw.ml" +# 92706 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -92719,13 +92712,13 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 92723 "src/ocaml/preprocess/parser_raw.ml" +# 92716 "src/ocaml/preprocess/parser_raw.ml" in let label = # 4646 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 92729 "src/ocaml/preprocess/parser_raw.ml" +# 92722 "src/ocaml/preprocess/parser_raw.ml" in # 4576 "src/ocaml/preprocess/parser_raw.mly" @@ -92734,7 +92727,7 @@ module Tables = struct Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 92738 "src/ocaml/preprocess/parser_raw.ml" +# 92731 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_inlined1_ in @@ -92744,13 +92737,13 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 92748 "src/ocaml/preprocess/parser_raw.ml" +# 92741 "src/ocaml/preprocess/parser_raw.ml" in # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 92754 "src/ocaml/preprocess/parser_raw.ml" +# 92747 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -92814,12 +92807,12 @@ module Tables = struct let m1 = # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 92818 "src/ocaml/preprocess/parser_raw.ml" +# 92811 "src/ocaml/preprocess/parser_raw.ml" in let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 92823 "src/ocaml/preprocess/parser_raw.ml" +# 92816 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -92828,7 +92821,7 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 92832 "src/ocaml/preprocess/parser_raw.ml" +# 92825 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = @@ -92837,32 +92830,32 @@ module Tables = struct # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 92841 "src/ocaml/preprocess/parser_raw.ml" +# 92834 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = # 4736 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 92848 "src/ocaml/preprocess/parser_raw.ml" +# 92841 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 92854 "src/ocaml/preprocess/parser_raw.ml" +# 92847 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 92861 "src/ocaml/preprocess/parser_raw.ml" +# 92854 "src/ocaml/preprocess/parser_raw.ml" in # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 92866 "src/ocaml/preprocess/parser_raw.ml" +# 92859 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -92872,13 +92865,13 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 92876 "src/ocaml/preprocess/parser_raw.ml" +# 92869 "src/ocaml/preprocess/parser_raw.ml" in let label = # 4646 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 92882 "src/ocaml/preprocess/parser_raw.ml" +# 92875 "src/ocaml/preprocess/parser_raw.ml" in # 4576 "src/ocaml/preprocess/parser_raw.mly" @@ -92887,7 +92880,7 @@ module Tables = struct Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 92891 "src/ocaml/preprocess/parser_raw.ml" +# 92884 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__1_inlined2_ in @@ -92897,13 +92890,13 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 92901 "src/ocaml/preprocess/parser_raw.ml" +# 92894 "src/ocaml/preprocess/parser_raw.ml" in # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 92907 "src/ocaml/preprocess/parser_raw.ml" +# 92900 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -92967,18 +92960,18 @@ module Tables = struct let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 92971 "src/ocaml/preprocess/parser_raw.ml" +# 92964 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 92977 "src/ocaml/preprocess/parser_raw.ml" +# 92970 "src/ocaml/preprocess/parser_raw.ml" in # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 92982 "src/ocaml/preprocess/parser_raw.ml" +# 92975 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -92988,7 +92981,7 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 92992 "src/ocaml/preprocess/parser_raw.ml" +# 92985 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = @@ -92997,32 +92990,32 @@ module Tables = struct # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 93001 "src/ocaml/preprocess/parser_raw.ml" +# 92994 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = # 4736 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 93008 "src/ocaml/preprocess/parser_raw.ml" +# 93001 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 93014 "src/ocaml/preprocess/parser_raw.ml" +# 93007 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 93021 "src/ocaml/preprocess/parser_raw.ml" +# 93014 "src/ocaml/preprocess/parser_raw.ml" in # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 93026 "src/ocaml/preprocess/parser_raw.ml" +# 93019 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -93032,13 +93025,13 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 93036 "src/ocaml/preprocess/parser_raw.ml" +# 93029 "src/ocaml/preprocess/parser_raw.ml" in let label = # 4646 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 93042 "src/ocaml/preprocess/parser_raw.ml" +# 93035 "src/ocaml/preprocess/parser_raw.ml" in # 4576 "src/ocaml/preprocess/parser_raw.mly" @@ -93047,7 +93040,7 @@ module Tables = struct Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 93051 "src/ocaml/preprocess/parser_raw.ml" +# 93044 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_inlined1_ in @@ -93057,13 +93050,13 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 93061 "src/ocaml/preprocess/parser_raw.ml" +# 93054 "src/ocaml/preprocess/parser_raw.ml" in # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 93067 "src/ocaml/preprocess/parser_raw.ml" +# 93060 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -93136,19 +93129,19 @@ module Tables = struct # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 93140 "src/ocaml/preprocess/parser_raw.ml" +# 93133 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 93147 "src/ocaml/preprocess/parser_raw.ml" +# 93140 "src/ocaml/preprocess/parser_raw.ml" in # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 93152 "src/ocaml/preprocess/parser_raw.ml" +# 93145 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -93158,7 +93151,7 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 93162 "src/ocaml/preprocess/parser_raw.ml" +# 93155 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = @@ -93167,32 +93160,32 @@ module Tables = struct # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 93171 "src/ocaml/preprocess/parser_raw.ml" +# 93164 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = # 4736 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 93178 "src/ocaml/preprocess/parser_raw.ml" +# 93171 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in # 1294 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 93184 "src/ocaml/preprocess/parser_raw.ml" +# 93177 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 93191 "src/ocaml/preprocess/parser_raw.ml" +# 93184 "src/ocaml/preprocess/parser_raw.ml" in # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 93196 "src/ocaml/preprocess/parser_raw.ml" +# 93189 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -93202,13 +93195,13 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 93206 "src/ocaml/preprocess/parser_raw.ml" +# 93199 "src/ocaml/preprocess/parser_raw.ml" in let label = # 4646 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 93212 "src/ocaml/preprocess/parser_raw.ml" +# 93205 "src/ocaml/preprocess/parser_raw.ml" in # 4576 "src/ocaml/preprocess/parser_raw.mly" @@ -93217,7 +93210,7 @@ module Tables = struct Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 93221 "src/ocaml/preprocess/parser_raw.ml" +# 93214 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__1_inlined3_ in @@ -93227,13 +93220,13 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 93231 "src/ocaml/preprocess/parser_raw.ml" +# 93224 "src/ocaml/preprocess/parser_raw.ml" in # 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 93237 "src/ocaml/preprocess/parser_raw.ml" +# 93230 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -93296,7 +93289,7 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 93300 "src/ocaml/preprocess/parser_raw.ml" +# 93293 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -93307,32 +93300,32 @@ module Tables = struct let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 93311 "src/ocaml/preprocess/parser_raw.ml" +# 93304 "src/ocaml/preprocess/parser_raw.ml" in let ty = let ltys = let xs = # 253 "" ( List.rev xs ) -# 93318 "src/ocaml/preprocess/parser_raw.ml" +# 93311 "src/ocaml/preprocess/parser_raw.ml" in # 1450 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 93323 "src/ocaml/preprocess/parser_raw.ml" +# 93316 "src/ocaml/preprocess/parser_raw.ml" in # 4765 "src/ocaml/preprocess/parser_raw.mly" ( ty, ltys ) -# 93329 "src/ocaml/preprocess/parser_raw.ml" +# 93322 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_ty_ = _endpos_xs_ in let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 93336 "src/ocaml/preprocess/parser_raw.ml" +# 93329 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -93341,7 +93334,7 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 93345 "src/ocaml/preprocess/parser_raw.ml" +# 93338 "src/ocaml/preprocess/parser_raw.ml" in @@ -93353,7 +93346,7 @@ module Tables = struct let domain = mktyp ~loc:tuple_loc (Ptyp_tuple ((None, ty) :: ltys)) in let domain = extra_rhs_core_type domain ~pos:(snd tuple_loc) in Ptyp_arrow(label, domain, codomain, arg_modes, []) ) -# 93357 "src/ocaml/preprocess/parser_raw.ml" +# 93350 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in @@ -93363,13 +93356,13 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 93367 "src/ocaml/preprocess/parser_raw.ml" +# 93360 "src/ocaml/preprocess/parser_raw.ml" in # 4608 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 93373 "src/ocaml/preprocess/parser_raw.ml" +# 93366 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -93439,7 +93432,7 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 93443 "src/ocaml/preprocess/parser_raw.ml" +# 93436 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -93450,32 +93443,32 @@ module Tables = struct let m1 = # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 93454 "src/ocaml/preprocess/parser_raw.ml" +# 93447 "src/ocaml/preprocess/parser_raw.ml" in let ty = let ltys = let xs = # 253 "" ( List.rev xs ) -# 93461 "src/ocaml/preprocess/parser_raw.ml" +# 93454 "src/ocaml/preprocess/parser_raw.ml" in # 1450 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 93466 "src/ocaml/preprocess/parser_raw.ml" +# 93459 "src/ocaml/preprocess/parser_raw.ml" in # 4765 "src/ocaml/preprocess/parser_raw.mly" ( ty, ltys ) -# 93472 "src/ocaml/preprocess/parser_raw.ml" +# 93465 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_ty_ = _endpos_xs_ in let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 93479 "src/ocaml/preprocess/parser_raw.ml" +# 93472 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -93484,7 +93477,7 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 93488 "src/ocaml/preprocess/parser_raw.ml" +# 93481 "src/ocaml/preprocess/parser_raw.ml" in @@ -93496,7 +93489,7 @@ module Tables = struct let domain = mktyp ~loc:tuple_loc (Ptyp_tuple ((None, ty) :: ltys)) in let domain = extra_rhs_core_type domain ~pos:(snd tuple_loc) in Ptyp_arrow(label, domain, codomain, arg_modes, []) ) -# 93500 "src/ocaml/preprocess/parser_raw.ml" +# 93493 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in @@ -93506,13 +93499,13 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 93510 "src/ocaml/preprocess/parser_raw.ml" +# 93503 "src/ocaml/preprocess/parser_raw.ml" in # 4608 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 93516 "src/ocaml/preprocess/parser_raw.ml" +# 93509 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -93582,7 +93575,7 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 93586 "src/ocaml/preprocess/parser_raw.ml" +# 93579 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -93593,25 +93586,25 @@ module Tables = struct let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 93597 "src/ocaml/preprocess/parser_raw.ml" +# 93590 "src/ocaml/preprocess/parser_raw.ml" in let ty = let ltys = let xs = # 253 "" ( List.rev xs ) -# 93604 "src/ocaml/preprocess/parser_raw.ml" +# 93597 "src/ocaml/preprocess/parser_raw.ml" in # 1450 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 93609 "src/ocaml/preprocess/parser_raw.ml" +# 93602 "src/ocaml/preprocess/parser_raw.ml" in # 4765 "src/ocaml/preprocess/parser_raw.mly" ( ty, ltys ) -# 93615 "src/ocaml/preprocess/parser_raw.ml" +# 93608 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_ty_ = _endpos_xs_ in @@ -93619,12 +93612,12 @@ module Tables = struct let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 93623 "src/ocaml/preprocess/parser_raw.ml" +# 93616 "src/ocaml/preprocess/parser_raw.ml" in # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 93628 "src/ocaml/preprocess/parser_raw.ml" +# 93621 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -93634,7 +93627,7 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 93638 "src/ocaml/preprocess/parser_raw.ml" +# 93631 "src/ocaml/preprocess/parser_raw.ml" in @@ -93646,7 +93639,7 @@ module Tables = struct let domain = mktyp ~loc:tuple_loc (Ptyp_tuple ((None, ty) :: ltys)) in let domain = extra_rhs_core_type domain ~pos:(snd tuple_loc) in Ptyp_arrow(label, domain, codomain, arg_modes, []) ) -# 93650 "src/ocaml/preprocess/parser_raw.ml" +# 93643 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in @@ -93656,13 +93649,13 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 93660 "src/ocaml/preprocess/parser_raw.ml" +# 93653 "src/ocaml/preprocess/parser_raw.ml" in # 4608 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 93666 "src/ocaml/preprocess/parser_raw.ml" +# 93659 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -93739,7 +93732,7 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 93743 "src/ocaml/preprocess/parser_raw.ml" +# 93736 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -93752,7 +93745,7 @@ module Tables = struct # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 93756 "src/ocaml/preprocess/parser_raw.ml" +# 93749 "src/ocaml/preprocess/parser_raw.ml" in let ty = @@ -93760,18 +93753,18 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 93764 "src/ocaml/preprocess/parser_raw.ml" +# 93757 "src/ocaml/preprocess/parser_raw.ml" in # 1450 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 93769 "src/ocaml/preprocess/parser_raw.ml" +# 93762 "src/ocaml/preprocess/parser_raw.ml" in # 4765 "src/ocaml/preprocess/parser_raw.mly" ( ty, ltys ) -# 93775 "src/ocaml/preprocess/parser_raw.ml" +# 93768 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_ty_ = _endpos_xs_ in @@ -93779,12 +93772,12 @@ module Tables = struct let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 93783 "src/ocaml/preprocess/parser_raw.ml" +# 93776 "src/ocaml/preprocess/parser_raw.ml" in # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 93788 "src/ocaml/preprocess/parser_raw.ml" +# 93781 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -93794,7 +93787,7 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 93798 "src/ocaml/preprocess/parser_raw.ml" +# 93791 "src/ocaml/preprocess/parser_raw.ml" in @@ -93806,7 +93799,7 @@ module Tables = struct let domain = mktyp ~loc:tuple_loc (Ptyp_tuple ((None, ty) :: ltys)) in let domain = extra_rhs_core_type domain ~pos:(snd tuple_loc) in Ptyp_arrow(label, domain, codomain, arg_modes, []) ) -# 93810 "src/ocaml/preprocess/parser_raw.ml" +# 93803 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in @@ -93816,13 +93809,13 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 93820 "src/ocaml/preprocess/parser_raw.ml" +# 93813 "src/ocaml/preprocess/parser_raw.ml" in # 4608 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 93826 "src/ocaml/preprocess/parser_raw.ml" +# 93819 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -93885,7 +93878,7 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 93889 "src/ocaml/preprocess/parser_raw.ml" +# 93882 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -93897,12 +93890,12 @@ module Tables = struct let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 93901 "src/ocaml/preprocess/parser_raw.ml" +# 93894 "src/ocaml/preprocess/parser_raw.ml" in let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 93906 "src/ocaml/preprocess/parser_raw.ml" +# 93899 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -93911,39 +93904,39 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 93915 "src/ocaml/preprocess/parser_raw.ml" +# 93908 "src/ocaml/preprocess/parser_raw.ml" in let tuple_with_modes = let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 93922 "src/ocaml/preprocess/parser_raw.ml" +# 93915 "src/ocaml/preprocess/parser_raw.ml" in let ty = let ltys = let xs = # 253 "" ( List.rev xs ) -# 93929 "src/ocaml/preprocess/parser_raw.ml" +# 93922 "src/ocaml/preprocess/parser_raw.ml" in # 1450 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 93934 "src/ocaml/preprocess/parser_raw.ml" +# 93927 "src/ocaml/preprocess/parser_raw.ml" in # 4765 "src/ocaml/preprocess/parser_raw.mly" ( ty, ltys ) -# 93940 "src/ocaml/preprocess/parser_raw.ml" +# 93933 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_ty_ = _endpos_xs_ in let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 93947 "src/ocaml/preprocess/parser_raw.ml" +# 93940 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -93952,7 +93945,7 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 93956 "src/ocaml/preprocess/parser_raw.ml" +# 93949 "src/ocaml/preprocess/parser_raw.ml" in @@ -93969,7 +93962,7 @@ module Tables = struct arg_modes, ret_modes) ) -# 93973 "src/ocaml/preprocess/parser_raw.ml" +# 93966 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_label_) in @@ -93979,13 +93972,13 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 93983 "src/ocaml/preprocess/parser_raw.ml" +# 93976 "src/ocaml/preprocess/parser_raw.ml" in # 4628 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 93989 "src/ocaml/preprocess/parser_raw.ml" +# 93982 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -94055,7 +94048,7 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 94059 "src/ocaml/preprocess/parser_raw.ml" +# 94052 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -94067,12 +94060,12 @@ module Tables = struct let m1 = # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 94071 "src/ocaml/preprocess/parser_raw.ml" +# 94064 "src/ocaml/preprocess/parser_raw.ml" in let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 94076 "src/ocaml/preprocess/parser_raw.ml" +# 94069 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -94081,39 +94074,39 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 94085 "src/ocaml/preprocess/parser_raw.ml" +# 94078 "src/ocaml/preprocess/parser_raw.ml" in let tuple_with_modes = let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 94092 "src/ocaml/preprocess/parser_raw.ml" +# 94085 "src/ocaml/preprocess/parser_raw.ml" in let ty = let ltys = let xs = # 253 "" ( List.rev xs ) -# 94099 "src/ocaml/preprocess/parser_raw.ml" +# 94092 "src/ocaml/preprocess/parser_raw.ml" in # 1450 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 94104 "src/ocaml/preprocess/parser_raw.ml" +# 94097 "src/ocaml/preprocess/parser_raw.ml" in # 4765 "src/ocaml/preprocess/parser_raw.mly" ( ty, ltys ) -# 94110 "src/ocaml/preprocess/parser_raw.ml" +# 94103 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_ty_ = _endpos_xs_ in let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 94117 "src/ocaml/preprocess/parser_raw.ml" +# 94110 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -94122,7 +94115,7 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 94126 "src/ocaml/preprocess/parser_raw.ml" +# 94119 "src/ocaml/preprocess/parser_raw.ml" in @@ -94139,7 +94132,7 @@ module Tables = struct arg_modes, ret_modes) ) -# 94143 "src/ocaml/preprocess/parser_raw.ml" +# 94136 "src/ocaml/preprocess/parser_raw.ml" in let _startpos__1_ = _startpos_label_ in @@ -94149,13 +94142,13 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 94153 "src/ocaml/preprocess/parser_raw.ml" +# 94146 "src/ocaml/preprocess/parser_raw.ml" in # 4628 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 94159 "src/ocaml/preprocess/parser_raw.ml" +# 94152 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -94225,7 +94218,7 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 94229 "src/ocaml/preprocess/parser_raw.ml" +# 94222 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -94237,18 +94230,18 @@ module Tables = struct let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 94241 "src/ocaml/preprocess/parser_raw.ml" +# 94234 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 94247 "src/ocaml/preprocess/parser_raw.ml" +# 94240 "src/ocaml/preprocess/parser_raw.ml" in # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 94252 "src/ocaml/preprocess/parser_raw.ml" +# 94245 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -94258,39 +94251,39 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 94262 "src/ocaml/preprocess/parser_raw.ml" +# 94255 "src/ocaml/preprocess/parser_raw.ml" in let tuple_with_modes = let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 94269 "src/ocaml/preprocess/parser_raw.ml" +# 94262 "src/ocaml/preprocess/parser_raw.ml" in let ty = let ltys = let xs = # 253 "" ( List.rev xs ) -# 94276 "src/ocaml/preprocess/parser_raw.ml" +# 94269 "src/ocaml/preprocess/parser_raw.ml" in # 1450 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 94281 "src/ocaml/preprocess/parser_raw.ml" +# 94274 "src/ocaml/preprocess/parser_raw.ml" in # 4765 "src/ocaml/preprocess/parser_raw.mly" ( ty, ltys ) -# 94287 "src/ocaml/preprocess/parser_raw.ml" +# 94280 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_ty_ = _endpos_xs_ in let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 94294 "src/ocaml/preprocess/parser_raw.ml" +# 94287 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -94299,7 +94292,7 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 94303 "src/ocaml/preprocess/parser_raw.ml" +# 94296 "src/ocaml/preprocess/parser_raw.ml" in @@ -94316,7 +94309,7 @@ module Tables = struct arg_modes, ret_modes) ) -# 94320 "src/ocaml/preprocess/parser_raw.ml" +# 94313 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_label_) in @@ -94326,13 +94319,13 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 94330 "src/ocaml/preprocess/parser_raw.ml" +# 94323 "src/ocaml/preprocess/parser_raw.ml" in # 4628 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 94336 "src/ocaml/preprocess/parser_raw.ml" +# 94329 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -94409,7 +94402,7 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 94413 "src/ocaml/preprocess/parser_raw.ml" +# 94406 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -94423,19 +94416,19 @@ module Tables = struct # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 94427 "src/ocaml/preprocess/parser_raw.ml" +# 94420 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 94434 "src/ocaml/preprocess/parser_raw.ml" +# 94427 "src/ocaml/preprocess/parser_raw.ml" in # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 94439 "src/ocaml/preprocess/parser_raw.ml" +# 94432 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -94445,39 +94438,39 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 94449 "src/ocaml/preprocess/parser_raw.ml" +# 94442 "src/ocaml/preprocess/parser_raw.ml" in let tuple_with_modes = let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 94456 "src/ocaml/preprocess/parser_raw.ml" +# 94449 "src/ocaml/preprocess/parser_raw.ml" in let ty = let ltys = let xs = # 253 "" ( List.rev xs ) -# 94463 "src/ocaml/preprocess/parser_raw.ml" +# 94456 "src/ocaml/preprocess/parser_raw.ml" in # 1450 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 94468 "src/ocaml/preprocess/parser_raw.ml" +# 94461 "src/ocaml/preprocess/parser_raw.ml" in # 4765 "src/ocaml/preprocess/parser_raw.mly" ( ty, ltys ) -# 94474 "src/ocaml/preprocess/parser_raw.ml" +# 94467 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_ty_ = _endpos_xs_ in let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 94481 "src/ocaml/preprocess/parser_raw.ml" +# 94474 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -94486,7 +94479,7 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 94490 "src/ocaml/preprocess/parser_raw.ml" +# 94483 "src/ocaml/preprocess/parser_raw.ml" in @@ -94503,7 +94496,7 @@ module Tables = struct arg_modes, ret_modes) ) -# 94507 "src/ocaml/preprocess/parser_raw.ml" +# 94500 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos_label_) in @@ -94513,13 +94506,13 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 94517 "src/ocaml/preprocess/parser_raw.ml" +# 94510 "src/ocaml/preprocess/parser_raw.ml" in # 4628 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 94523 "src/ocaml/preprocess/parser_raw.ml" +# 94516 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -94589,7 +94582,7 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 94593 "src/ocaml/preprocess/parser_raw.ml" +# 94586 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -94601,12 +94594,12 @@ module Tables = struct let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 94605 "src/ocaml/preprocess/parser_raw.ml" +# 94598 "src/ocaml/preprocess/parser_raw.ml" in let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 94610 "src/ocaml/preprocess/parser_raw.ml" +# 94603 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -94615,39 +94608,39 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 94619 "src/ocaml/preprocess/parser_raw.ml" +# 94612 "src/ocaml/preprocess/parser_raw.ml" in let tuple_with_modes = let m1 = # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 94626 "src/ocaml/preprocess/parser_raw.ml" +# 94619 "src/ocaml/preprocess/parser_raw.ml" in let ty = let ltys = let xs = # 253 "" ( List.rev xs ) -# 94633 "src/ocaml/preprocess/parser_raw.ml" +# 94626 "src/ocaml/preprocess/parser_raw.ml" in # 1450 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 94638 "src/ocaml/preprocess/parser_raw.ml" +# 94631 "src/ocaml/preprocess/parser_raw.ml" in # 4765 "src/ocaml/preprocess/parser_raw.mly" ( ty, ltys ) -# 94644 "src/ocaml/preprocess/parser_raw.ml" +# 94637 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_ty_ = _endpos_xs_ in let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 94651 "src/ocaml/preprocess/parser_raw.ml" +# 94644 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -94656,7 +94649,7 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 94660 "src/ocaml/preprocess/parser_raw.ml" +# 94653 "src/ocaml/preprocess/parser_raw.ml" in @@ -94673,7 +94666,7 @@ module Tables = struct arg_modes, ret_modes) ) -# 94677 "src/ocaml/preprocess/parser_raw.ml" +# 94670 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_label_) in @@ -94683,13 +94676,13 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 94687 "src/ocaml/preprocess/parser_raw.ml" +# 94680 "src/ocaml/preprocess/parser_raw.ml" in # 4628 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 94693 "src/ocaml/preprocess/parser_raw.ml" +# 94686 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -94766,7 +94759,7 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 94770 "src/ocaml/preprocess/parser_raw.ml" +# 94763 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -94778,12 +94771,12 @@ module Tables = struct let m1 = # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 94782 "src/ocaml/preprocess/parser_raw.ml" +# 94775 "src/ocaml/preprocess/parser_raw.ml" in let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 94787 "src/ocaml/preprocess/parser_raw.ml" +# 94780 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -94792,39 +94785,39 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 94796 "src/ocaml/preprocess/parser_raw.ml" +# 94789 "src/ocaml/preprocess/parser_raw.ml" in let tuple_with_modes = let m1 = # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 94803 "src/ocaml/preprocess/parser_raw.ml" +# 94796 "src/ocaml/preprocess/parser_raw.ml" in let ty = let ltys = let xs = # 253 "" ( List.rev xs ) -# 94810 "src/ocaml/preprocess/parser_raw.ml" +# 94803 "src/ocaml/preprocess/parser_raw.ml" in # 1450 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 94815 "src/ocaml/preprocess/parser_raw.ml" +# 94808 "src/ocaml/preprocess/parser_raw.ml" in # 4765 "src/ocaml/preprocess/parser_raw.mly" ( ty, ltys ) -# 94821 "src/ocaml/preprocess/parser_raw.ml" +# 94814 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_ty_ = _endpos_xs_ in let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 94828 "src/ocaml/preprocess/parser_raw.ml" +# 94821 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -94833,7 +94826,7 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 94837 "src/ocaml/preprocess/parser_raw.ml" +# 94830 "src/ocaml/preprocess/parser_raw.ml" in @@ -94850,7 +94843,7 @@ module Tables = struct arg_modes, ret_modes) ) -# 94854 "src/ocaml/preprocess/parser_raw.ml" +# 94847 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos_label_) in @@ -94860,13 +94853,13 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 94864 "src/ocaml/preprocess/parser_raw.ml" +# 94857 "src/ocaml/preprocess/parser_raw.ml" in # 4628 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 94870 "src/ocaml/preprocess/parser_raw.ml" +# 94863 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -94943,7 +94936,7 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 94947 "src/ocaml/preprocess/parser_raw.ml" +# 94940 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -94955,18 +94948,18 @@ module Tables = struct let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 94959 "src/ocaml/preprocess/parser_raw.ml" +# 94952 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 94965 "src/ocaml/preprocess/parser_raw.ml" +# 94958 "src/ocaml/preprocess/parser_raw.ml" in # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 94970 "src/ocaml/preprocess/parser_raw.ml" +# 94963 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -94976,39 +94969,39 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 94980 "src/ocaml/preprocess/parser_raw.ml" +# 94973 "src/ocaml/preprocess/parser_raw.ml" in let tuple_with_modes = let m1 = # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 94987 "src/ocaml/preprocess/parser_raw.ml" +# 94980 "src/ocaml/preprocess/parser_raw.ml" in let ty = let ltys = let xs = # 253 "" ( List.rev xs ) -# 94994 "src/ocaml/preprocess/parser_raw.ml" +# 94987 "src/ocaml/preprocess/parser_raw.ml" in # 1450 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 94999 "src/ocaml/preprocess/parser_raw.ml" +# 94992 "src/ocaml/preprocess/parser_raw.ml" in # 4765 "src/ocaml/preprocess/parser_raw.mly" ( ty, ltys ) -# 95005 "src/ocaml/preprocess/parser_raw.ml" +# 94998 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_ty_ = _endpos_xs_ in let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 95012 "src/ocaml/preprocess/parser_raw.ml" +# 95005 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -95017,7 +95010,7 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 95021 "src/ocaml/preprocess/parser_raw.ml" +# 95014 "src/ocaml/preprocess/parser_raw.ml" in @@ -95034,7 +95027,7 @@ module Tables = struct arg_modes, ret_modes) ) -# 95038 "src/ocaml/preprocess/parser_raw.ml" +# 95031 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_label_) in @@ -95044,13 +95037,13 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 95048 "src/ocaml/preprocess/parser_raw.ml" +# 95041 "src/ocaml/preprocess/parser_raw.ml" in # 4628 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 95054 "src/ocaml/preprocess/parser_raw.ml" +# 95047 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -95134,7 +95127,7 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 95138 "src/ocaml/preprocess/parser_raw.ml" +# 95131 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -95148,19 +95141,19 @@ module Tables = struct # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 95152 "src/ocaml/preprocess/parser_raw.ml" +# 95145 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 95159 "src/ocaml/preprocess/parser_raw.ml" +# 95152 "src/ocaml/preprocess/parser_raw.ml" in # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 95164 "src/ocaml/preprocess/parser_raw.ml" +# 95157 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -95170,39 +95163,39 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 95174 "src/ocaml/preprocess/parser_raw.ml" +# 95167 "src/ocaml/preprocess/parser_raw.ml" in let tuple_with_modes = let m1 = # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 95181 "src/ocaml/preprocess/parser_raw.ml" +# 95174 "src/ocaml/preprocess/parser_raw.ml" in let ty = let ltys = let xs = # 253 "" ( List.rev xs ) -# 95188 "src/ocaml/preprocess/parser_raw.ml" +# 95181 "src/ocaml/preprocess/parser_raw.ml" in # 1450 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 95193 "src/ocaml/preprocess/parser_raw.ml" +# 95186 "src/ocaml/preprocess/parser_raw.ml" in # 4765 "src/ocaml/preprocess/parser_raw.mly" ( ty, ltys ) -# 95199 "src/ocaml/preprocess/parser_raw.ml" +# 95192 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_ty_ = _endpos_xs_ in let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 95206 "src/ocaml/preprocess/parser_raw.ml" +# 95199 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -95211,7 +95204,7 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 95215 "src/ocaml/preprocess/parser_raw.ml" +# 95208 "src/ocaml/preprocess/parser_raw.ml" in @@ -95228,7 +95221,7 @@ module Tables = struct arg_modes, ret_modes) ) -# 95232 "src/ocaml/preprocess/parser_raw.ml" +# 95225 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined2_, _startpos_label_) in @@ -95238,13 +95231,13 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 95242 "src/ocaml/preprocess/parser_raw.ml" +# 95235 "src/ocaml/preprocess/parser_raw.ml" in # 4628 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 95248 "src/ocaml/preprocess/parser_raw.ml" +# 95241 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -95314,7 +95307,7 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 95318 "src/ocaml/preprocess/parser_raw.ml" +# 95311 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -95326,12 +95319,12 @@ module Tables = struct let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 95330 "src/ocaml/preprocess/parser_raw.ml" +# 95323 "src/ocaml/preprocess/parser_raw.ml" in let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 95335 "src/ocaml/preprocess/parser_raw.ml" +# 95328 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -95340,32 +95333,32 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 95344 "src/ocaml/preprocess/parser_raw.ml" +# 95337 "src/ocaml/preprocess/parser_raw.ml" in let tuple_with_modes = let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 95351 "src/ocaml/preprocess/parser_raw.ml" +# 95344 "src/ocaml/preprocess/parser_raw.ml" in let ty = let ltys = let xs = # 253 "" ( List.rev xs ) -# 95358 "src/ocaml/preprocess/parser_raw.ml" +# 95351 "src/ocaml/preprocess/parser_raw.ml" in # 1450 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 95363 "src/ocaml/preprocess/parser_raw.ml" +# 95356 "src/ocaml/preprocess/parser_raw.ml" in # 4765 "src/ocaml/preprocess/parser_raw.mly" ( ty, ltys ) -# 95369 "src/ocaml/preprocess/parser_raw.ml" +# 95362 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_ty_ = _endpos_xs_ in @@ -95373,12 +95366,12 @@ module Tables = struct let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 95377 "src/ocaml/preprocess/parser_raw.ml" +# 95370 "src/ocaml/preprocess/parser_raw.ml" in # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 95382 "src/ocaml/preprocess/parser_raw.ml" +# 95375 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -95388,7 +95381,7 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 95392 "src/ocaml/preprocess/parser_raw.ml" +# 95385 "src/ocaml/preprocess/parser_raw.ml" in @@ -95405,7 +95398,7 @@ module Tables = struct arg_modes, ret_modes) ) -# 95409 "src/ocaml/preprocess/parser_raw.ml" +# 95402 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_label_) in @@ -95415,13 +95408,13 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 95419 "src/ocaml/preprocess/parser_raw.ml" +# 95412 "src/ocaml/preprocess/parser_raw.ml" in # 4628 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 95425 "src/ocaml/preprocess/parser_raw.ml" +# 95418 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -95498,7 +95491,7 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 95502 "src/ocaml/preprocess/parser_raw.ml" +# 95495 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -95510,12 +95503,12 @@ module Tables = struct let m1 = # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 95514 "src/ocaml/preprocess/parser_raw.ml" +# 95507 "src/ocaml/preprocess/parser_raw.ml" in let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 95519 "src/ocaml/preprocess/parser_raw.ml" +# 95512 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -95524,32 +95517,32 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 95528 "src/ocaml/preprocess/parser_raw.ml" +# 95521 "src/ocaml/preprocess/parser_raw.ml" in let tuple_with_modes = let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 95535 "src/ocaml/preprocess/parser_raw.ml" +# 95528 "src/ocaml/preprocess/parser_raw.ml" in let ty = let ltys = let xs = # 253 "" ( List.rev xs ) -# 95542 "src/ocaml/preprocess/parser_raw.ml" +# 95535 "src/ocaml/preprocess/parser_raw.ml" in # 1450 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 95547 "src/ocaml/preprocess/parser_raw.ml" +# 95540 "src/ocaml/preprocess/parser_raw.ml" in # 4765 "src/ocaml/preprocess/parser_raw.mly" ( ty, ltys ) -# 95553 "src/ocaml/preprocess/parser_raw.ml" +# 95546 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_ty_ = _endpos_xs_ in @@ -95557,12 +95550,12 @@ module Tables = struct let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 95561 "src/ocaml/preprocess/parser_raw.ml" +# 95554 "src/ocaml/preprocess/parser_raw.ml" in # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 95566 "src/ocaml/preprocess/parser_raw.ml" +# 95559 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -95572,7 +95565,7 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 95576 "src/ocaml/preprocess/parser_raw.ml" +# 95569 "src/ocaml/preprocess/parser_raw.ml" in @@ -95589,7 +95582,7 @@ module Tables = struct arg_modes, ret_modes) ) -# 95593 "src/ocaml/preprocess/parser_raw.ml" +# 95586 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos_label_) in @@ -95599,13 +95592,13 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 95603 "src/ocaml/preprocess/parser_raw.ml" +# 95596 "src/ocaml/preprocess/parser_raw.ml" in # 4628 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 95609 "src/ocaml/preprocess/parser_raw.ml" +# 95602 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -95682,7 +95675,7 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 95686 "src/ocaml/preprocess/parser_raw.ml" +# 95679 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -95694,18 +95687,18 @@ module Tables = struct let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 95698 "src/ocaml/preprocess/parser_raw.ml" +# 95691 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 95704 "src/ocaml/preprocess/parser_raw.ml" +# 95697 "src/ocaml/preprocess/parser_raw.ml" in # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 95709 "src/ocaml/preprocess/parser_raw.ml" +# 95702 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -95715,32 +95708,32 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 95719 "src/ocaml/preprocess/parser_raw.ml" +# 95712 "src/ocaml/preprocess/parser_raw.ml" in let tuple_with_modes = let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 95726 "src/ocaml/preprocess/parser_raw.ml" +# 95719 "src/ocaml/preprocess/parser_raw.ml" in let ty = let ltys = let xs = # 253 "" ( List.rev xs ) -# 95733 "src/ocaml/preprocess/parser_raw.ml" +# 95726 "src/ocaml/preprocess/parser_raw.ml" in # 1450 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 95738 "src/ocaml/preprocess/parser_raw.ml" +# 95731 "src/ocaml/preprocess/parser_raw.ml" in # 4765 "src/ocaml/preprocess/parser_raw.mly" ( ty, ltys ) -# 95744 "src/ocaml/preprocess/parser_raw.ml" +# 95737 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_ty_ = _endpos_xs_ in @@ -95748,12 +95741,12 @@ module Tables = struct let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 95752 "src/ocaml/preprocess/parser_raw.ml" +# 95745 "src/ocaml/preprocess/parser_raw.ml" in # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 95757 "src/ocaml/preprocess/parser_raw.ml" +# 95750 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -95763,7 +95756,7 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 95767 "src/ocaml/preprocess/parser_raw.ml" +# 95760 "src/ocaml/preprocess/parser_raw.ml" in @@ -95780,7 +95773,7 @@ module Tables = struct arg_modes, ret_modes) ) -# 95784 "src/ocaml/preprocess/parser_raw.ml" +# 95777 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_label_) in @@ -95790,13 +95783,13 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 95794 "src/ocaml/preprocess/parser_raw.ml" +# 95787 "src/ocaml/preprocess/parser_raw.ml" in # 4628 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 95800 "src/ocaml/preprocess/parser_raw.ml" +# 95793 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -95880,7 +95873,7 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 95884 "src/ocaml/preprocess/parser_raw.ml" +# 95877 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -95894,19 +95887,19 @@ module Tables = struct # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 95898 "src/ocaml/preprocess/parser_raw.ml" +# 95891 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 95905 "src/ocaml/preprocess/parser_raw.ml" +# 95898 "src/ocaml/preprocess/parser_raw.ml" in # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 95910 "src/ocaml/preprocess/parser_raw.ml" +# 95903 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -95916,32 +95909,32 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 95920 "src/ocaml/preprocess/parser_raw.ml" +# 95913 "src/ocaml/preprocess/parser_raw.ml" in let tuple_with_modes = let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 95927 "src/ocaml/preprocess/parser_raw.ml" +# 95920 "src/ocaml/preprocess/parser_raw.ml" in let ty = let ltys = let xs = # 253 "" ( List.rev xs ) -# 95934 "src/ocaml/preprocess/parser_raw.ml" +# 95927 "src/ocaml/preprocess/parser_raw.ml" in # 1450 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 95939 "src/ocaml/preprocess/parser_raw.ml" +# 95932 "src/ocaml/preprocess/parser_raw.ml" in # 4765 "src/ocaml/preprocess/parser_raw.mly" ( ty, ltys ) -# 95945 "src/ocaml/preprocess/parser_raw.ml" +# 95938 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_ty_ = _endpos_xs_ in @@ -95949,12 +95942,12 @@ module Tables = struct let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 95953 "src/ocaml/preprocess/parser_raw.ml" +# 95946 "src/ocaml/preprocess/parser_raw.ml" in # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 95958 "src/ocaml/preprocess/parser_raw.ml" +# 95951 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -95964,7 +95957,7 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 95968 "src/ocaml/preprocess/parser_raw.ml" +# 95961 "src/ocaml/preprocess/parser_raw.ml" in @@ -95981,7 +95974,7 @@ module Tables = struct arg_modes, ret_modes) ) -# 95985 "src/ocaml/preprocess/parser_raw.ml" +# 95978 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined2_, _startpos_label_) in @@ -95991,13 +95984,13 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 95995 "src/ocaml/preprocess/parser_raw.ml" +# 95988 "src/ocaml/preprocess/parser_raw.ml" in # 4628 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 96001 "src/ocaml/preprocess/parser_raw.ml" +# 95994 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -96074,7 +96067,7 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 96078 "src/ocaml/preprocess/parser_raw.ml" +# 96071 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -96086,12 +96079,12 @@ module Tables = struct let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 96090 "src/ocaml/preprocess/parser_raw.ml" +# 96083 "src/ocaml/preprocess/parser_raw.ml" in let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 96095 "src/ocaml/preprocess/parser_raw.ml" +# 96088 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -96100,7 +96093,7 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 96104 "src/ocaml/preprocess/parser_raw.ml" +# 96097 "src/ocaml/preprocess/parser_raw.ml" in let tuple_with_modes = @@ -96109,7 +96102,7 @@ module Tables = struct # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 96113 "src/ocaml/preprocess/parser_raw.ml" +# 96106 "src/ocaml/preprocess/parser_raw.ml" in let ty = @@ -96117,18 +96110,18 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 96121 "src/ocaml/preprocess/parser_raw.ml" +# 96114 "src/ocaml/preprocess/parser_raw.ml" in # 1450 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 96126 "src/ocaml/preprocess/parser_raw.ml" +# 96119 "src/ocaml/preprocess/parser_raw.ml" in # 4765 "src/ocaml/preprocess/parser_raw.mly" ( ty, ltys ) -# 96132 "src/ocaml/preprocess/parser_raw.ml" +# 96125 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_ty_ = _endpos_xs_ in @@ -96136,12 +96129,12 @@ module Tables = struct let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 96140 "src/ocaml/preprocess/parser_raw.ml" +# 96133 "src/ocaml/preprocess/parser_raw.ml" in # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 96145 "src/ocaml/preprocess/parser_raw.ml" +# 96138 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -96151,7 +96144,7 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 96155 "src/ocaml/preprocess/parser_raw.ml" +# 96148 "src/ocaml/preprocess/parser_raw.ml" in @@ -96168,7 +96161,7 @@ module Tables = struct arg_modes, ret_modes) ) -# 96172 "src/ocaml/preprocess/parser_raw.ml" +# 96165 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_label_) in @@ -96178,13 +96171,13 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 96182 "src/ocaml/preprocess/parser_raw.ml" +# 96175 "src/ocaml/preprocess/parser_raw.ml" in # 4628 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 96188 "src/ocaml/preprocess/parser_raw.ml" +# 96181 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -96268,7 +96261,7 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 96272 "src/ocaml/preprocess/parser_raw.ml" +# 96265 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -96280,12 +96273,12 @@ module Tables = struct let m1 = # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 96284 "src/ocaml/preprocess/parser_raw.ml" +# 96277 "src/ocaml/preprocess/parser_raw.ml" in let m0 = # 4663 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 96289 "src/ocaml/preprocess/parser_raw.ml" +# 96282 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -96294,7 +96287,7 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 96298 "src/ocaml/preprocess/parser_raw.ml" +# 96291 "src/ocaml/preprocess/parser_raw.ml" in let tuple_with_modes = @@ -96303,7 +96296,7 @@ module Tables = struct # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 96307 "src/ocaml/preprocess/parser_raw.ml" +# 96300 "src/ocaml/preprocess/parser_raw.ml" in let ty = @@ -96311,18 +96304,18 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 96315 "src/ocaml/preprocess/parser_raw.ml" +# 96308 "src/ocaml/preprocess/parser_raw.ml" in # 1450 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 96320 "src/ocaml/preprocess/parser_raw.ml" +# 96313 "src/ocaml/preprocess/parser_raw.ml" in # 4765 "src/ocaml/preprocess/parser_raw.mly" ( ty, ltys ) -# 96326 "src/ocaml/preprocess/parser_raw.ml" +# 96319 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_ty_ = _endpos_xs_ in @@ -96330,12 +96323,12 @@ module Tables = struct let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 96334 "src/ocaml/preprocess/parser_raw.ml" +# 96327 "src/ocaml/preprocess/parser_raw.ml" in # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 96339 "src/ocaml/preprocess/parser_raw.ml" +# 96332 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -96345,7 +96338,7 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 96349 "src/ocaml/preprocess/parser_raw.ml" +# 96342 "src/ocaml/preprocess/parser_raw.ml" in @@ -96362,7 +96355,7 @@ module Tables = struct arg_modes, ret_modes) ) -# 96366 "src/ocaml/preprocess/parser_raw.ml" +# 96359 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined2_, _startpos_label_) in @@ -96372,13 +96365,13 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 96376 "src/ocaml/preprocess/parser_raw.ml" +# 96369 "src/ocaml/preprocess/parser_raw.ml" in # 4628 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 96382 "src/ocaml/preprocess/parser_raw.ml" +# 96375 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -96462,7 +96455,7 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 96466 "src/ocaml/preprocess/parser_raw.ml" +# 96459 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -96474,18 +96467,18 @@ module Tables = struct let m1 = # 4682 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 96478 "src/ocaml/preprocess/parser_raw.ml" +# 96471 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 96484 "src/ocaml/preprocess/parser_raw.ml" +# 96477 "src/ocaml/preprocess/parser_raw.ml" in # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 96489 "src/ocaml/preprocess/parser_raw.ml" +# 96482 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -96495,7 +96488,7 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 96499 "src/ocaml/preprocess/parser_raw.ml" +# 96492 "src/ocaml/preprocess/parser_raw.ml" in let tuple_with_modes = @@ -96504,7 +96497,7 @@ module Tables = struct # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 96508 "src/ocaml/preprocess/parser_raw.ml" +# 96501 "src/ocaml/preprocess/parser_raw.ml" in let ty = @@ -96512,18 +96505,18 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 96516 "src/ocaml/preprocess/parser_raw.ml" +# 96509 "src/ocaml/preprocess/parser_raw.ml" in # 1450 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 96521 "src/ocaml/preprocess/parser_raw.ml" +# 96514 "src/ocaml/preprocess/parser_raw.ml" in # 4765 "src/ocaml/preprocess/parser_raw.mly" ( ty, ltys ) -# 96527 "src/ocaml/preprocess/parser_raw.ml" +# 96520 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_ty_ = _endpos_xs_ in @@ -96531,12 +96524,12 @@ module Tables = struct let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 96535 "src/ocaml/preprocess/parser_raw.ml" +# 96528 "src/ocaml/preprocess/parser_raw.ml" in # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 96540 "src/ocaml/preprocess/parser_raw.ml" +# 96533 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -96546,7 +96539,7 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 96550 "src/ocaml/preprocess/parser_raw.ml" +# 96543 "src/ocaml/preprocess/parser_raw.ml" in @@ -96563,7 +96556,7 @@ module Tables = struct arg_modes, ret_modes) ) -# 96567 "src/ocaml/preprocess/parser_raw.ml" +# 96560 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_label_) in @@ -96573,13 +96566,13 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 96577 "src/ocaml/preprocess/parser_raw.ml" +# 96570 "src/ocaml/preprocess/parser_raw.ml" in # 4628 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 96583 "src/ocaml/preprocess/parser_raw.ml" +# 96576 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -96670,7 +96663,7 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 96674 "src/ocaml/preprocess/parser_raw.ml" +# 96667 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -96684,19 +96677,19 @@ module Tables = struct # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 96688 "src/ocaml/preprocess/parser_raw.ml" +# 96681 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 96695 "src/ocaml/preprocess/parser_raw.ml" +# 96688 "src/ocaml/preprocess/parser_raw.ml" in # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 96700 "src/ocaml/preprocess/parser_raw.ml" +# 96693 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -96706,7 +96699,7 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 96710 "src/ocaml/preprocess/parser_raw.ml" +# 96703 "src/ocaml/preprocess/parser_raw.ml" in let tuple_with_modes = @@ -96715,7 +96708,7 @@ module Tables = struct # 4683 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 96719 "src/ocaml/preprocess/parser_raw.ml" +# 96712 "src/ocaml/preprocess/parser_raw.ml" in let ty = @@ -96723,18 +96716,18 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 96727 "src/ocaml/preprocess/parser_raw.ml" +# 96720 "src/ocaml/preprocess/parser_raw.ml" in # 1450 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 96732 "src/ocaml/preprocess/parser_raw.ml" +# 96725 "src/ocaml/preprocess/parser_raw.ml" in # 4765 "src/ocaml/preprocess/parser_raw.mly" ( ty, ltys ) -# 96738 "src/ocaml/preprocess/parser_raw.ml" +# 96731 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_ty_ = _endpos_xs_ in @@ -96742,12 +96735,12 @@ module Tables = struct let _1 = # 4659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 96746 "src/ocaml/preprocess/parser_raw.ml" +# 96739 "src/ocaml/preprocess/parser_raw.ml" in # 4664 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 96751 "src/ocaml/preprocess/parser_raw.ml" +# 96744 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in @@ -96757,7 +96750,7 @@ module Tables = struct let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 96761 "src/ocaml/preprocess/parser_raw.ml" +# 96754 "src/ocaml/preprocess/parser_raw.ml" in @@ -96774,7 +96767,7 @@ module Tables = struct arg_modes, ret_modes) ) -# 96778 "src/ocaml/preprocess/parser_raw.ml" +# 96771 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined3_, _startpos_label_) in @@ -96784,13 +96777,13 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 96788 "src/ocaml/preprocess/parser_raw.ml" +# 96781 "src/ocaml/preprocess/parser_raw.ml" in # 4628 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 96794 "src/ocaml/preprocess/parser_raw.ml" +# 96787 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -96839,7 +96832,7 @@ module Tables = struct let label : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 96843 "src/ocaml/preprocess/parser_raw.ml" +# 96836 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -96849,18 +96842,18 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 96853 "src/ocaml/preprocess/parser_raw.ml" +# 96846 "src/ocaml/preprocess/parser_raw.ml" in # 1450 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 96858 "src/ocaml/preprocess/parser_raw.ml" +# 96851 "src/ocaml/preprocess/parser_raw.ml" in # 4765 "src/ocaml/preprocess/parser_raw.mly" ( ty, ltys ) -# 96864 "src/ocaml/preprocess/parser_raw.ml" +# 96857 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -96872,7 +96865,7 @@ module Tables = struct ( let ty, ltys = _3 in mktyp ~loc:_sloc (Ptyp_tuple ((Some label, ty) :: ltys)) ) -# 96876 "src/ocaml/preprocess/parser_raw.ml" +# 96869 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -96899,24 +96892,24 @@ module Tables = struct let ys = # 260 "" ( List.flatten xss ) -# 96903 "src/ocaml/preprocess/parser_raw.ml" +# 96896 "src/ocaml/preprocess/parser_raw.ml" in let xs = let items = # 1366 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 96909 "src/ocaml/preprocess/parser_raw.ml" +# 96902 "src/ocaml/preprocess/parser_raw.ml" in # 1842 "src/ocaml/preprocess/parser_raw.mly" ( items ) -# 96914 "src/ocaml/preprocess/parser_raw.ml" +# 96907 "src/ocaml/preprocess/parser_raw.ml" in # 267 "" ( xs @ ys ) -# 96920 "src/ocaml/preprocess/parser_raw.ml" +# 96913 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_xss_, _startpos_xss_) in @@ -96925,13 +96918,13 @@ module Tables = struct # 1288 "src/ocaml/preprocess/parser_raw.mly" ( extra_str _startpos _endpos _1 ) -# 96929 "src/ocaml/preprocess/parser_raw.ml" +# 96922 "src/ocaml/preprocess/parser_raw.ml" in # 1835 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 96935 "src/ocaml/preprocess/parser_raw.ml" +# 96928 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -96972,7 +96965,7 @@ module Tables = struct let ys = # 260 "" ( List.flatten xss ) -# 96976 "src/ocaml/preprocess/parser_raw.ml" +# 96969 "src/ocaml/preprocess/parser_raw.ml" in let xs = let items = @@ -96982,12 +96975,12 @@ module Tables = struct let attrs = # 5399 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 96986 "src/ocaml/preprocess/parser_raw.ml" +# 96979 "src/ocaml/preprocess/parser_raw.ml" in # 1849 "src/ocaml/preprocess/parser_raw.mly" ( mkstrexp e attrs ) -# 96991 "src/ocaml/preprocess/parser_raw.ml" +# 96984 "src/ocaml/preprocess/parser_raw.ml" in let _startpos__1_ = _startpos_e_ in @@ -96995,7 +96988,7 @@ module Tables = struct # 1300 "src/ocaml/preprocess/parser_raw.mly" ( text_str _startpos @ [_1] ) -# 96999 "src/ocaml/preprocess/parser_raw.ml" +# 96992 "src/ocaml/preprocess/parser_raw.ml" in let _startpos__1_ = _startpos_e_ in @@ -97005,25 +96998,25 @@ module Tables = struct # 1319 "src/ocaml/preprocess/parser_raw.mly" ( mark_rhs_docs _startpos _endpos; _1 ) -# 97009 "src/ocaml/preprocess/parser_raw.ml" +# 97002 "src/ocaml/preprocess/parser_raw.ml" in # 1368 "src/ocaml/preprocess/parser_raw.mly" ( x ) -# 97015 "src/ocaml/preprocess/parser_raw.ml" +# 97008 "src/ocaml/preprocess/parser_raw.ml" in # 1842 "src/ocaml/preprocess/parser_raw.mly" ( items ) -# 97021 "src/ocaml/preprocess/parser_raw.ml" +# 97014 "src/ocaml/preprocess/parser_raw.ml" in # 267 "" ( xs @ ys ) -# 97027 "src/ocaml/preprocess/parser_raw.ml" +# 97020 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_xss_, _startpos_e_) in @@ -97032,13 +97025,13 @@ module Tables = struct # 1288 "src/ocaml/preprocess/parser_raw.mly" ( extra_str _startpos _endpos _1 ) -# 97036 "src/ocaml/preprocess/parser_raw.ml" +# 97029 "src/ocaml/preprocess/parser_raw.ml" in # 1835 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 97042 "src/ocaml/preprocess/parser_raw.ml" +# 97035 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -97066,7 +97059,7 @@ module Tables = struct # 1864 "src/ocaml/preprocess/parser_raw.mly" ( val_of_let_bindings ~loc:_sloc _1 ) -# 97070 "src/ocaml/preprocess/parser_raw.ml" +# 97063 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -97102,7 +97095,7 @@ module Tables = struct # 5399 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 97106 "src/ocaml/preprocess/parser_raw.ml" +# 97099 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__2_ = _endpos__1_inlined1_ in @@ -97113,7 +97106,7 @@ module Tables = struct # 1867 "src/ocaml/preprocess/parser_raw.mly" ( let docs = symbol_docs _sloc in Pstr_extension (_1, add_docs_attrs docs _2) ) -# 97117 "src/ocaml/preprocess/parser_raw.ml" +# 97110 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__1_inlined1_ in @@ -97123,13 +97116,13 @@ module Tables = struct # 1335 "src/ocaml/preprocess/parser_raw.mly" ( mkstr ~loc:_sloc _1 ) -# 97127 "src/ocaml/preprocess/parser_raw.ml" +# 97120 "src/ocaml/preprocess/parser_raw.ml" in # 1899 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 97133 "src/ocaml/preprocess/parser_raw.ml" +# 97126 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -97155,7 +97148,7 @@ module Tables = struct let _1 = # 1870 "src/ocaml/preprocess/parser_raw.mly" ( Pstr_attribute _1 ) -# 97159 "src/ocaml/preprocess/parser_raw.ml" +# 97152 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in @@ -97163,13 +97156,13 @@ module Tables = struct # 1335 "src/ocaml/preprocess/parser_raw.mly" ( mkstr ~loc:_sloc _1 ) -# 97167 "src/ocaml/preprocess/parser_raw.ml" +# 97160 "src/ocaml/preprocess/parser_raw.ml" in # 1899 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 97173 "src/ocaml/preprocess/parser_raw.ml" +# 97166 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -97197,7 +97190,7 @@ module Tables = struct ( let name, jkind = _1 in Pstr_kind_abbrev (name, jkind) ) -# 97201 "src/ocaml/preprocess/parser_raw.ml" +# 97194 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in @@ -97205,13 +97198,13 @@ module Tables = struct # 1335 "src/ocaml/preprocess/parser_raw.mly" ( mkstr ~loc:_sloc _1 ) -# 97209 "src/ocaml/preprocess/parser_raw.ml" +# 97202 "src/ocaml/preprocess/parser_raw.ml" in # 1899 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 97215 "src/ocaml/preprocess/parser_raw.ml" +# 97208 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -97237,7 +97230,7 @@ module Tables = struct let _1 = # 1877 "src/ocaml/preprocess/parser_raw.mly" ( pstr_primitive _1 ) -# 97241 "src/ocaml/preprocess/parser_raw.ml" +# 97234 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in @@ -97245,13 +97238,13 @@ module Tables = struct # 1352 "src/ocaml/preprocess/parser_raw.mly" ( wrap_mkstr_ext ~loc:_sloc _1 ) -# 97249 "src/ocaml/preprocess/parser_raw.ml" +# 97242 "src/ocaml/preprocess/parser_raw.ml" in # 1899 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 97255 "src/ocaml/preprocess/parser_raw.ml" +# 97248 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -97277,7 +97270,7 @@ module Tables = struct let _1 = # 1879 "src/ocaml/preprocess/parser_raw.mly" ( pstr_primitive _1 ) -# 97281 "src/ocaml/preprocess/parser_raw.ml" +# 97274 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in @@ -97285,13 +97278,13 @@ module Tables = struct # 1352 "src/ocaml/preprocess/parser_raw.mly" ( wrap_mkstr_ext ~loc:_sloc _1 ) -# 97289 "src/ocaml/preprocess/parser_raw.ml" +# 97282 "src/ocaml/preprocess/parser_raw.ml" in # 1899 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 97295 "src/ocaml/preprocess/parser_raw.ml" +# 97288 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -97328,24 +97321,24 @@ module Tables = struct let _1 = # 1547 "src/ocaml/preprocess/parser_raw.mly" ( let (x, b) = a in x, b :: bs ) -# 97332 "src/ocaml/preprocess/parser_raw.ml" +# 97325 "src/ocaml/preprocess/parser_raw.ml" in # 4049 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 97337 "src/ocaml/preprocess/parser_raw.ml" +# 97330 "src/ocaml/preprocess/parser_raw.ml" in # 4032 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 97343 "src/ocaml/preprocess/parser_raw.ml" +# 97336 "src/ocaml/preprocess/parser_raw.ml" in # 1881 "src/ocaml/preprocess/parser_raw.mly" ( pstr_type _1 ) -# 97349 "src/ocaml/preprocess/parser_raw.ml" +# 97342 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_bs_, _startpos_a_) in @@ -97355,13 +97348,13 @@ module Tables = struct # 1352 "src/ocaml/preprocess/parser_raw.mly" ( wrap_mkstr_ext ~loc:_sloc _1 ) -# 97359 "src/ocaml/preprocess/parser_raw.ml" +# 97352 "src/ocaml/preprocess/parser_raw.ml" in # 1899 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 97365 "src/ocaml/preprocess/parser_raw.ml" +# 97358 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -97448,14 +97441,14 @@ module Tables = struct # 5399 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 97452 "src/ocaml/preprocess/parser_raw.ml" +# 97445 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_attrs2_ = _endpos__1_inlined3_ in let cs = # 1539 "src/ocaml/preprocess/parser_raw.mly" ( List.rev xs ) -# 97459 "src/ocaml/preprocess/parser_raw.ml" +# 97452 "src/ocaml/preprocess/parser_raw.ml" in let tid = let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in @@ -97465,20 +97458,20 @@ module Tables = struct # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 97469 "src/ocaml/preprocess/parser_raw.ml" +# 97462 "src/ocaml/preprocess/parser_raw.ml" in let _4 = # 5231 "src/ocaml/preprocess/parser_raw.mly" ( Recursive ) -# 97475 "src/ocaml/preprocess/parser_raw.ml" +# 97468 "src/ocaml/preprocess/parser_raw.ml" in let attrs1 = let _1 = _1_inlined1 in # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 97482 "src/ocaml/preprocess/parser_raw.ml" +# 97475 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_attrs2_ in @@ -97490,19 +97483,19 @@ module Tables = struct let attrs = attrs1 @ attrs2 in Te.mk tid cs ~params ~priv ~attrs ~docs, ext ) -# 97494 "src/ocaml/preprocess/parser_raw.ml" +# 97487 "src/ocaml/preprocess/parser_raw.ml" in # 4386 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 97500 "src/ocaml/preprocess/parser_raw.ml" +# 97493 "src/ocaml/preprocess/parser_raw.ml" in # 1883 "src/ocaml/preprocess/parser_raw.mly" ( pstr_typext _1 ) -# 97506 "src/ocaml/preprocess/parser_raw.ml" +# 97499 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__1_inlined3_ in @@ -97512,13 +97505,13 @@ module Tables = struct # 1352 "src/ocaml/preprocess/parser_raw.mly" ( wrap_mkstr_ext ~loc:_sloc _1 ) -# 97516 "src/ocaml/preprocess/parser_raw.ml" +# 97509 "src/ocaml/preprocess/parser_raw.ml" in # 1899 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 97522 "src/ocaml/preprocess/parser_raw.ml" +# 97515 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -97612,14 +97605,14 @@ module Tables = struct # 5399 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 97616 "src/ocaml/preprocess/parser_raw.ml" +# 97609 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_attrs2_ = _endpos__1_inlined4_ in let cs = # 1539 "src/ocaml/preprocess/parser_raw.mly" ( List.rev xs ) -# 97623 "src/ocaml/preprocess/parser_raw.ml" +# 97616 "src/ocaml/preprocess/parser_raw.ml" in let tid = let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined3_, _startpos__1_inlined3_, _1_inlined3) in @@ -97629,7 +97622,7 @@ module Tables = struct # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 97633 "src/ocaml/preprocess/parser_raw.ml" +# 97626 "src/ocaml/preprocess/parser_raw.ml" in let _4 = @@ -97640,7 +97633,7 @@ module Tables = struct # 5233 "src/ocaml/preprocess/parser_raw.mly" ( not_expecting _loc "nonrec flag"; Recursive ) -# 97644 "src/ocaml/preprocess/parser_raw.ml" +# 97637 "src/ocaml/preprocess/parser_raw.ml" in let attrs1 = @@ -97648,7 +97641,7 @@ module Tables = struct # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 97652 "src/ocaml/preprocess/parser_raw.ml" +# 97645 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_attrs2_ in @@ -97660,19 +97653,19 @@ module Tables = struct let attrs = attrs1 @ attrs2 in Te.mk tid cs ~params ~priv ~attrs ~docs, ext ) -# 97664 "src/ocaml/preprocess/parser_raw.ml" +# 97657 "src/ocaml/preprocess/parser_raw.ml" in # 4386 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 97670 "src/ocaml/preprocess/parser_raw.ml" +# 97663 "src/ocaml/preprocess/parser_raw.ml" in # 1883 "src/ocaml/preprocess/parser_raw.mly" ( pstr_typext _1 ) -# 97676 "src/ocaml/preprocess/parser_raw.ml" +# 97669 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__1_inlined4_ in @@ -97682,13 +97675,13 @@ module Tables = struct # 1352 "src/ocaml/preprocess/parser_raw.mly" ( wrap_mkstr_ext ~loc:_sloc _1 ) -# 97686 "src/ocaml/preprocess/parser_raw.ml" +# 97679 "src/ocaml/preprocess/parser_raw.ml" in # 1899 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 97692 "src/ocaml/preprocess/parser_raw.ml" +# 97685 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -97714,7 +97707,7 @@ module Tables = struct let _1 = # 1885 "src/ocaml/preprocess/parser_raw.mly" ( pstr_exception _1 ) -# 97718 "src/ocaml/preprocess/parser_raw.ml" +# 97711 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in @@ -97722,13 +97715,13 @@ module Tables = struct # 1352 "src/ocaml/preprocess/parser_raw.mly" ( wrap_mkstr_ext ~loc:_sloc _1 ) -# 97726 "src/ocaml/preprocess/parser_raw.ml" +# 97719 "src/ocaml/preprocess/parser_raw.ml" in # 1899 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 97732 "src/ocaml/preprocess/parser_raw.ml" +# 97725 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -97793,7 +97786,7 @@ module Tables = struct # 5399 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 97797 "src/ocaml/preprocess/parser_raw.ml" +# 97790 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_attrs2_ = _endpos__1_inlined2_ in @@ -97802,7 +97795,7 @@ module Tables = struct # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 97806 "src/ocaml/preprocess/parser_raw.ml" +# 97799 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_attrs2_ in @@ -97817,13 +97810,13 @@ module Tables = struct let body = maybe_pmod_constraint modes body in let body = Mb.mk name body ~attrs ~loc ~docs in Pstr_module body, ext ) -# 97821 "src/ocaml/preprocess/parser_raw.ml" +# 97814 "src/ocaml/preprocess/parser_raw.ml" in # 1887 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 97827 "src/ocaml/preprocess/parser_raw.ml" +# 97820 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__1_inlined2_ in @@ -97833,13 +97826,13 @@ module Tables = struct # 1352 "src/ocaml/preprocess/parser_raw.mly" ( wrap_mkstr_ext ~loc:_sloc _1 ) -# 97837 "src/ocaml/preprocess/parser_raw.ml" +# 97830 "src/ocaml/preprocess/parser_raw.ml" in # 1899 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 97843 "src/ocaml/preprocess/parser_raw.ml" +# 97836 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -97920,7 +97913,7 @@ module Tables = struct # 5399 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 97924 "src/ocaml/preprocess/parser_raw.ml" +# 97917 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_attrs2_ = _endpos__1_inlined2_ in @@ -97929,7 +97922,7 @@ module Tables = struct # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 97933 "src/ocaml/preprocess/parser_raw.ml" +# 97926 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_attrs2_ in @@ -97946,25 +97939,25 @@ module Tables = struct ext, Mb.mk name body ~attrs ~loc ~docs ) -# 97950 "src/ocaml/preprocess/parser_raw.ml" +# 97943 "src/ocaml/preprocess/parser_raw.ml" in # 1547 "src/ocaml/preprocess/parser_raw.mly" ( let (x, b) = a in x, b :: bs ) -# 97956 "src/ocaml/preprocess/parser_raw.ml" +# 97949 "src/ocaml/preprocess/parser_raw.ml" in # 1945 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 97962 "src/ocaml/preprocess/parser_raw.ml" +# 97955 "src/ocaml/preprocess/parser_raw.ml" in # 1889 "src/ocaml/preprocess/parser_raw.mly" ( pstr_recmodule _1 ) -# 97968 "src/ocaml/preprocess/parser_raw.ml" +# 97961 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_bs_ in @@ -97974,13 +97967,13 @@ module Tables = struct # 1352 "src/ocaml/preprocess/parser_raw.mly" ( wrap_mkstr_ext ~loc:_sloc _1 ) -# 97978 "src/ocaml/preprocess/parser_raw.ml" +# 97971 "src/ocaml/preprocess/parser_raw.ml" in # 1899 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 97984 "src/ocaml/preprocess/parser_raw.ml" +# 97977 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -98006,7 +97999,7 @@ module Tables = struct let _1 = # 1891 "src/ocaml/preprocess/parser_raw.mly" ( let (body, ext) = _1 in (Pstr_modtype body, ext) ) -# 98010 "src/ocaml/preprocess/parser_raw.ml" +# 98003 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in @@ -98014,13 +98007,13 @@ module Tables = struct # 1352 "src/ocaml/preprocess/parser_raw.mly" ( wrap_mkstr_ext ~loc:_sloc _1 ) -# 98018 "src/ocaml/preprocess/parser_raw.ml" +# 98011 "src/ocaml/preprocess/parser_raw.ml" in # 1899 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 98024 "src/ocaml/preprocess/parser_raw.ml" +# 98017 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -98046,7 +98039,7 @@ module Tables = struct let _1 = # 1893 "src/ocaml/preprocess/parser_raw.mly" ( let (body, ext) = _1 in (Pstr_open body, ext) ) -# 98050 "src/ocaml/preprocess/parser_raw.ml" +# 98043 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in @@ -98054,13 +98047,13 @@ module Tables = struct # 1352 "src/ocaml/preprocess/parser_raw.mly" ( wrap_mkstr_ext ~loc:_sloc _1 ) -# 98058 "src/ocaml/preprocess/parser_raw.ml" +# 98051 "src/ocaml/preprocess/parser_raw.ml" in # 1899 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 98064 "src/ocaml/preprocess/parser_raw.ml" +# 98057 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -98132,7 +98125,7 @@ module Tables = struct let _1_inlined2 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 98136 "src/ocaml/preprocess/parser_raw.ml" +# 98129 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined2 in let params : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = Obj.magic params in let virt : (Asttypes.virtual_flag) = Obj.magic virt in @@ -98152,7 +98145,7 @@ module Tables = struct # 5399 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 98156 "src/ocaml/preprocess/parser_raw.ml" +# 98149 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_attrs2_ = _endpos__1_inlined3_ in @@ -98164,7 +98157,7 @@ module Tables = struct # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 98168 "src/ocaml/preprocess/parser_raw.ml" +# 98161 "src/ocaml/preprocess/parser_raw.ml" in let attrs1 = @@ -98172,7 +98165,7 @@ module Tables = struct # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 98176 "src/ocaml/preprocess/parser_raw.ml" +# 98169 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_attrs2_ in @@ -98187,25 +98180,25 @@ module Tables = struct ext, Ci.mk id body ~virt ~params ~attrs ~loc ~docs ) -# 98191 "src/ocaml/preprocess/parser_raw.ml" +# 98184 "src/ocaml/preprocess/parser_raw.ml" in # 1547 "src/ocaml/preprocess/parser_raw.mly" ( let (x, b) = a in x, b :: bs ) -# 98197 "src/ocaml/preprocess/parser_raw.ml" +# 98190 "src/ocaml/preprocess/parser_raw.ml" in # 2339 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 98203 "src/ocaml/preprocess/parser_raw.ml" +# 98196 "src/ocaml/preprocess/parser_raw.ml" in # 1895 "src/ocaml/preprocess/parser_raw.mly" ( let (ext, l) = _1 in (Pstr_class l, ext) ) -# 98209 "src/ocaml/preprocess/parser_raw.ml" +# 98202 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_bs_ in @@ -98215,13 +98208,13 @@ module Tables = struct # 1352 "src/ocaml/preprocess/parser_raw.mly" ( wrap_mkstr_ext ~loc:_sloc _1 ) -# 98219 "src/ocaml/preprocess/parser_raw.ml" +# 98212 "src/ocaml/preprocess/parser_raw.ml" in # 1899 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 98225 "src/ocaml/preprocess/parser_raw.ml" +# 98218 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -98247,7 +98240,7 @@ module Tables = struct let _1 = # 1897 "src/ocaml/preprocess/parser_raw.mly" ( let (ext, l) = _1 in (Pstr_class_type l, ext) ) -# 98251 "src/ocaml/preprocess/parser_raw.ml" +# 98244 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in @@ -98255,13 +98248,13 @@ module Tables = struct # 1352 "src/ocaml/preprocess/parser_raw.mly" ( wrap_mkstr_ext ~loc:_sloc _1 ) -# 98259 "src/ocaml/preprocess/parser_raw.ml" +# 98252 "src/ocaml/preprocess/parser_raw.ml" in # 1899 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 98265 "src/ocaml/preprocess/parser_raw.ml" +# 98258 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -98317,14 +98310,14 @@ module Tables = struct # 5399 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 98321 "src/ocaml/preprocess/parser_raw.ml" +# 98314 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_attrs2_ = _endpos__1_inlined1_ in let attrs1 = # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 98328 "src/ocaml/preprocess/parser_raw.ml" +# 98321 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_attrs2_ in let _symbolstartpos = _startpos_kind_ in @@ -98338,7 +98331,7 @@ module Tables = struct let incl = Incl.mk ~kind thing ~attrs ~loc ~docs in incl, ext ) -# 98342 "src/ocaml/preprocess/parser_raw.ml" +# 98335 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos_kind_) in @@ -98351,7 +98344,7 @@ module Tables = struct let item = mkstr ~loc:_sloc (Pstr_include incl) in wrap_str_ext ~loc:_sloc item ext ) -# 98355 "src/ocaml/preprocess/parser_raw.ml" +# 98348 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -98376,7 +98369,7 @@ module Tables = struct let _v : (string) = # 5308 "src/ocaml/preprocess/parser_raw.mly" ( "-" ) -# 98380 "src/ocaml/preprocess/parser_raw.ml" +# 98373 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -98401,7 +98394,7 @@ module Tables = struct let _v : (string) = # 5309 "src/ocaml/preprocess/parser_raw.mly" ( "-." ) -# 98405 "src/ocaml/preprocess/parser_raw.ml" +# 98398 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -98456,7 +98449,7 @@ module Tables = struct # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 98460 "src/ocaml/preprocess/parser_raw.ml" +# 98453 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__5_ = _endpos__1_inlined1_ in @@ -98465,18 +98458,18 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 98469 "src/ocaml/preprocess/parser_raw.ml" +# 98462 "src/ocaml/preprocess/parser_raw.ml" in # 1450 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 98474 "src/ocaml/preprocess/parser_raw.ml" +# 98467 "src/ocaml/preprocess/parser_raw.ml" in # 4966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 98480 "src/ocaml/preprocess/parser_raw.ml" +# 98473 "src/ocaml/preprocess/parser_raw.ml" in let _1 = @@ -98486,7 +98479,7 @@ module Tables = struct # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 98490 "src/ocaml/preprocess/parser_raw.ml" +# 98483 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__5_ in @@ -98497,7 +98490,7 @@ module Tables = struct ( let info = symbol_info _endpos in let attrs = add_info_attrs info _5 in Rf.tag ~loc:(make_loc _sloc) ~attrs _1 _3 _4 ) -# 98501 "src/ocaml/preprocess/parser_raw.ml" +# 98494 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -98531,7 +98524,7 @@ module Tables = struct # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 98535 "src/ocaml/preprocess/parser_raw.ml" +# 98528 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__2_ = _endpos__1_inlined1_ in @@ -98542,7 +98535,7 @@ module Tables = struct # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 98546 "src/ocaml/preprocess/parser_raw.ml" +# 98539 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__2_ in @@ -98553,7 +98546,7 @@ module Tables = struct ( let info = symbol_info _endpos in let attrs = add_info_attrs info _2 in Rf.tag ~loc:(make_loc _sloc) ~attrs _1 true [] ) -# 98557 "src/ocaml/preprocess/parser_raw.ml" +# 98550 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -98585,7 +98578,7 @@ module Tables = struct let _v : (Parsetree.toplevel_phrase) = let arg = # 124 "" ( None ) -# 98589 "src/ocaml/preprocess/parser_raw.ml" +# 98582 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_arg_ = _endpos__1_inlined1_ in let dir = @@ -98596,13 +98589,13 @@ module Tables = struct # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 98600 "src/ocaml/preprocess/parser_raw.ml" +# 98593 "src/ocaml/preprocess/parser_raw.ml" in let _1 = # 3204 "src/ocaml/preprocess/parser_raw.mly" ( () ) -# 98606 "src/ocaml/preprocess/parser_raw.ml" +# 98599 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_arg_ in let _symbolstartpos = _startpos__1_ in @@ -98610,7 +98603,7 @@ module Tables = struct # 5194 "src/ocaml/preprocess/parser_raw.mly" ( mk_directive ~loc:_sloc dir arg ) -# 98614 "src/ocaml/preprocess/parser_raw.ml" +# 98607 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -98643,7 +98636,7 @@ module Tables = struct let _1_inlined2 : ( # 1141 "src/ocaml/preprocess/parser_raw.mly" (string * Location.t * string option) -# 98647 "src/ocaml/preprocess/parser_raw.ml" +# 98640 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined2 in let _1_inlined1 : (string) = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in @@ -98656,7 +98649,7 @@ module Tables = struct let _1 = # 5198 "src/ocaml/preprocess/parser_raw.mly" ( let (s, _, _) = _1 in Pdir_string s ) -# 98660 "src/ocaml/preprocess/parser_raw.ml" +# 98653 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in @@ -98664,13 +98657,13 @@ module Tables = struct # 1357 "src/ocaml/preprocess/parser_raw.mly" ( mk_directive_arg ~loc:_sloc _1 ) -# 98668 "src/ocaml/preprocess/parser_raw.ml" +# 98661 "src/ocaml/preprocess/parser_raw.ml" in # 126 "" ( Some x ) -# 98674 "src/ocaml/preprocess/parser_raw.ml" +# 98667 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_arg_ = _endpos__1_inlined2_ in @@ -98682,13 +98675,13 @@ module Tables = struct # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 98686 "src/ocaml/preprocess/parser_raw.ml" +# 98679 "src/ocaml/preprocess/parser_raw.ml" in let _1 = # 3204 "src/ocaml/preprocess/parser_raw.mly" ( () ) -# 98692 "src/ocaml/preprocess/parser_raw.ml" +# 98685 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_arg_ in let _symbolstartpos = _startpos__1_ in @@ -98696,7 +98689,7 @@ module Tables = struct # 5194 "src/ocaml/preprocess/parser_raw.mly" ( mk_directive ~loc:_sloc dir arg ) -# 98700 "src/ocaml/preprocess/parser_raw.ml" +# 98693 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -98729,7 +98722,7 @@ module Tables = struct let _1_inlined2 : ( # 1078 "src/ocaml/preprocess/parser_raw.mly" (string * char option) -# 98733 "src/ocaml/preprocess/parser_raw.ml" +# 98726 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined2 in let _1_inlined1 : (string) = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in @@ -98742,7 +98735,7 @@ module Tables = struct let _1 = # 5199 "src/ocaml/preprocess/parser_raw.mly" ( let (n, m) = _1 in Pdir_int (n ,m) ) -# 98746 "src/ocaml/preprocess/parser_raw.ml" +# 98739 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in @@ -98750,13 +98743,13 @@ module Tables = struct # 1357 "src/ocaml/preprocess/parser_raw.mly" ( mk_directive_arg ~loc:_sloc _1 ) -# 98754 "src/ocaml/preprocess/parser_raw.ml" +# 98747 "src/ocaml/preprocess/parser_raw.ml" in # 126 "" ( Some x ) -# 98760 "src/ocaml/preprocess/parser_raw.ml" +# 98753 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_arg_ = _endpos__1_inlined2_ in @@ -98768,13 +98761,13 @@ module Tables = struct # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 98772 "src/ocaml/preprocess/parser_raw.ml" +# 98765 "src/ocaml/preprocess/parser_raw.ml" in let _1 = # 3204 "src/ocaml/preprocess/parser_raw.mly" ( () ) -# 98778 "src/ocaml/preprocess/parser_raw.ml" +# 98771 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_arg_ in let _symbolstartpos = _startpos__1_ in @@ -98782,7 +98775,7 @@ module Tables = struct # 5194 "src/ocaml/preprocess/parser_raw.mly" ( mk_directive ~loc:_sloc dir arg ) -# 98786 "src/ocaml/preprocess/parser_raw.ml" +# 98779 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -98824,7 +98817,7 @@ module Tables = struct let _1 = # 5200 "src/ocaml/preprocess/parser_raw.mly" ( Pdir_ident _1 ) -# 98828 "src/ocaml/preprocess/parser_raw.ml" +# 98821 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in @@ -98832,13 +98825,13 @@ module Tables = struct # 1357 "src/ocaml/preprocess/parser_raw.mly" ( mk_directive_arg ~loc:_sloc _1 ) -# 98836 "src/ocaml/preprocess/parser_raw.ml" +# 98829 "src/ocaml/preprocess/parser_raw.ml" in # 126 "" ( Some x ) -# 98842 "src/ocaml/preprocess/parser_raw.ml" +# 98835 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_arg_ = _endpos__1_inlined2_ in @@ -98850,13 +98843,13 @@ module Tables = struct # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 98854 "src/ocaml/preprocess/parser_raw.ml" +# 98847 "src/ocaml/preprocess/parser_raw.ml" in let _1 = # 3204 "src/ocaml/preprocess/parser_raw.mly" ( () ) -# 98860 "src/ocaml/preprocess/parser_raw.ml" +# 98853 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_arg_ in let _symbolstartpos = _startpos__1_ in @@ -98864,7 +98857,7 @@ module Tables = struct # 5194 "src/ocaml/preprocess/parser_raw.mly" ( mk_directive ~loc:_sloc dir arg ) -# 98868 "src/ocaml/preprocess/parser_raw.ml" +# 98861 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -98906,7 +98899,7 @@ module Tables = struct let _1 = # 5201 "src/ocaml/preprocess/parser_raw.mly" ( Pdir_ident _1 ) -# 98910 "src/ocaml/preprocess/parser_raw.ml" +# 98903 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in @@ -98914,13 +98907,13 @@ module Tables = struct # 1357 "src/ocaml/preprocess/parser_raw.mly" ( mk_directive_arg ~loc:_sloc _1 ) -# 98918 "src/ocaml/preprocess/parser_raw.ml" +# 98911 "src/ocaml/preprocess/parser_raw.ml" in # 126 "" ( Some x ) -# 98924 "src/ocaml/preprocess/parser_raw.ml" +# 98917 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_arg_ = _endpos__1_inlined2_ in @@ -98932,13 +98925,13 @@ module Tables = struct # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 98936 "src/ocaml/preprocess/parser_raw.ml" +# 98929 "src/ocaml/preprocess/parser_raw.ml" in let _1 = # 3204 "src/ocaml/preprocess/parser_raw.mly" ( () ) -# 98942 "src/ocaml/preprocess/parser_raw.ml" +# 98935 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_arg_ in let _symbolstartpos = _startpos__1_ in @@ -98946,7 +98939,7 @@ module Tables = struct # 5194 "src/ocaml/preprocess/parser_raw.mly" ( mk_directive ~loc:_sloc dir arg ) -# 98950 "src/ocaml/preprocess/parser_raw.ml" +# 98943 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -98988,7 +98981,7 @@ module Tables = struct let _1 = # 5202 "src/ocaml/preprocess/parser_raw.mly" ( Pdir_bool false ) -# 98992 "src/ocaml/preprocess/parser_raw.ml" +# 98985 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in @@ -98996,13 +98989,13 @@ module Tables = struct # 1357 "src/ocaml/preprocess/parser_raw.mly" ( mk_directive_arg ~loc:_sloc _1 ) -# 99000 "src/ocaml/preprocess/parser_raw.ml" +# 98993 "src/ocaml/preprocess/parser_raw.ml" in # 126 "" ( Some x ) -# 99006 "src/ocaml/preprocess/parser_raw.ml" +# 98999 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_arg_ = _endpos__1_inlined2_ in @@ -99014,13 +99007,13 @@ module Tables = struct # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 99018 "src/ocaml/preprocess/parser_raw.ml" +# 99011 "src/ocaml/preprocess/parser_raw.ml" in let _1 = # 3204 "src/ocaml/preprocess/parser_raw.mly" ( () ) -# 99024 "src/ocaml/preprocess/parser_raw.ml" +# 99017 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_arg_ in let _symbolstartpos = _startpos__1_ in @@ -99028,7 +99021,7 @@ module Tables = struct # 5194 "src/ocaml/preprocess/parser_raw.mly" ( mk_directive ~loc:_sloc dir arg ) -# 99032 "src/ocaml/preprocess/parser_raw.ml" +# 99025 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -99070,7 +99063,7 @@ module Tables = struct let _1 = # 5203 "src/ocaml/preprocess/parser_raw.mly" ( Pdir_bool true ) -# 99074 "src/ocaml/preprocess/parser_raw.ml" +# 99067 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in @@ -99078,13 +99071,13 @@ module Tables = struct # 1357 "src/ocaml/preprocess/parser_raw.mly" ( mk_directive_arg ~loc:_sloc _1 ) -# 99082 "src/ocaml/preprocess/parser_raw.ml" +# 99075 "src/ocaml/preprocess/parser_raw.ml" in # 126 "" ( Some x ) -# 99088 "src/ocaml/preprocess/parser_raw.ml" +# 99081 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_arg_ = _endpos__1_inlined2_ in @@ -99096,13 +99089,13 @@ module Tables = struct # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 99100 "src/ocaml/preprocess/parser_raw.ml" +# 99093 "src/ocaml/preprocess/parser_raw.ml" in let _1 = # 3204 "src/ocaml/preprocess/parser_raw.mly" ( () ) -# 99106 "src/ocaml/preprocess/parser_raw.ml" +# 99099 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_arg_ in let _symbolstartpos = _startpos__1_ in @@ -99110,7 +99103,7 @@ module Tables = struct # 5194 "src/ocaml/preprocess/parser_raw.mly" ( mk_directive ~loc:_sloc dir arg ) -# 99114 "src/ocaml/preprocess/parser_raw.ml" +# 99107 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -99142,7 +99135,7 @@ module Tables = struct let _v : (Parsetree.toplevel_phrase) = let arg = # 124 "" ( None ) -# 99146 "src/ocaml/preprocess/parser_raw.ml" +# 99139 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_arg_ = _endpos__1_inlined1_ in let dir = @@ -99153,13 +99146,13 @@ module Tables = struct # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 99157 "src/ocaml/preprocess/parser_raw.ml" +# 99150 "src/ocaml/preprocess/parser_raw.ml" in let _1 = # 3205 "src/ocaml/preprocess/parser_raw.mly" ( () ) -# 99163 "src/ocaml/preprocess/parser_raw.ml" +# 99156 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_arg_ in let _symbolstartpos = _startpos__1_ in @@ -99167,7 +99160,7 @@ module Tables = struct # 5194 "src/ocaml/preprocess/parser_raw.mly" ( mk_directive ~loc:_sloc dir arg ) -# 99171 "src/ocaml/preprocess/parser_raw.ml" +# 99164 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -99200,7 +99193,7 @@ module Tables = struct let _1_inlined2 : ( # 1141 "src/ocaml/preprocess/parser_raw.mly" (string * Location.t * string option) -# 99204 "src/ocaml/preprocess/parser_raw.ml" +# 99197 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined2 in let _1_inlined1 : (string) = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in @@ -99213,7 +99206,7 @@ module Tables = struct let _1 = # 5198 "src/ocaml/preprocess/parser_raw.mly" ( let (s, _, _) = _1 in Pdir_string s ) -# 99217 "src/ocaml/preprocess/parser_raw.ml" +# 99210 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in @@ -99221,13 +99214,13 @@ module Tables = struct # 1357 "src/ocaml/preprocess/parser_raw.mly" ( mk_directive_arg ~loc:_sloc _1 ) -# 99225 "src/ocaml/preprocess/parser_raw.ml" +# 99218 "src/ocaml/preprocess/parser_raw.ml" in # 126 "" ( Some x ) -# 99231 "src/ocaml/preprocess/parser_raw.ml" +# 99224 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_arg_ = _endpos__1_inlined2_ in @@ -99239,13 +99232,13 @@ module Tables = struct # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 99243 "src/ocaml/preprocess/parser_raw.ml" +# 99236 "src/ocaml/preprocess/parser_raw.ml" in let _1 = # 3205 "src/ocaml/preprocess/parser_raw.mly" ( () ) -# 99249 "src/ocaml/preprocess/parser_raw.ml" +# 99242 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_arg_ in let _symbolstartpos = _startpos__1_ in @@ -99253,7 +99246,7 @@ module Tables = struct # 5194 "src/ocaml/preprocess/parser_raw.mly" ( mk_directive ~loc:_sloc dir arg ) -# 99257 "src/ocaml/preprocess/parser_raw.ml" +# 99250 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -99286,7 +99279,7 @@ module Tables = struct let _1_inlined2 : ( # 1078 "src/ocaml/preprocess/parser_raw.mly" (string * char option) -# 99290 "src/ocaml/preprocess/parser_raw.ml" +# 99283 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined2 in let _1_inlined1 : (string) = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in @@ -99299,7 +99292,7 @@ module Tables = struct let _1 = # 5199 "src/ocaml/preprocess/parser_raw.mly" ( let (n, m) = _1 in Pdir_int (n ,m) ) -# 99303 "src/ocaml/preprocess/parser_raw.ml" +# 99296 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in @@ -99307,13 +99300,13 @@ module Tables = struct # 1357 "src/ocaml/preprocess/parser_raw.mly" ( mk_directive_arg ~loc:_sloc _1 ) -# 99311 "src/ocaml/preprocess/parser_raw.ml" +# 99304 "src/ocaml/preprocess/parser_raw.ml" in # 126 "" ( Some x ) -# 99317 "src/ocaml/preprocess/parser_raw.ml" +# 99310 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_arg_ = _endpos__1_inlined2_ in @@ -99325,13 +99318,13 @@ module Tables = struct # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 99329 "src/ocaml/preprocess/parser_raw.ml" +# 99322 "src/ocaml/preprocess/parser_raw.ml" in let _1 = # 3205 "src/ocaml/preprocess/parser_raw.mly" ( () ) -# 99335 "src/ocaml/preprocess/parser_raw.ml" +# 99328 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_arg_ in let _symbolstartpos = _startpos__1_ in @@ -99339,7 +99332,7 @@ module Tables = struct # 5194 "src/ocaml/preprocess/parser_raw.mly" ( mk_directive ~loc:_sloc dir arg ) -# 99343 "src/ocaml/preprocess/parser_raw.ml" +# 99336 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -99381,7 +99374,7 @@ module Tables = struct let _1 = # 5200 "src/ocaml/preprocess/parser_raw.mly" ( Pdir_ident _1 ) -# 99385 "src/ocaml/preprocess/parser_raw.ml" +# 99378 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in @@ -99389,13 +99382,13 @@ module Tables = struct # 1357 "src/ocaml/preprocess/parser_raw.mly" ( mk_directive_arg ~loc:_sloc _1 ) -# 99393 "src/ocaml/preprocess/parser_raw.ml" +# 99386 "src/ocaml/preprocess/parser_raw.ml" in # 126 "" ( Some x ) -# 99399 "src/ocaml/preprocess/parser_raw.ml" +# 99392 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_arg_ = _endpos__1_inlined2_ in @@ -99407,13 +99400,13 @@ module Tables = struct # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 99411 "src/ocaml/preprocess/parser_raw.ml" +# 99404 "src/ocaml/preprocess/parser_raw.ml" in let _1 = # 3205 "src/ocaml/preprocess/parser_raw.mly" ( () ) -# 99417 "src/ocaml/preprocess/parser_raw.ml" +# 99410 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_arg_ in let _symbolstartpos = _startpos__1_ in @@ -99421,7 +99414,7 @@ module Tables = struct # 5194 "src/ocaml/preprocess/parser_raw.mly" ( mk_directive ~loc:_sloc dir arg ) -# 99425 "src/ocaml/preprocess/parser_raw.ml" +# 99418 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -99463,7 +99456,7 @@ module Tables = struct let _1 = # 5201 "src/ocaml/preprocess/parser_raw.mly" ( Pdir_ident _1 ) -# 99467 "src/ocaml/preprocess/parser_raw.ml" +# 99460 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in @@ -99471,13 +99464,13 @@ module Tables = struct # 1357 "src/ocaml/preprocess/parser_raw.mly" ( mk_directive_arg ~loc:_sloc _1 ) -# 99475 "src/ocaml/preprocess/parser_raw.ml" +# 99468 "src/ocaml/preprocess/parser_raw.ml" in # 126 "" ( Some x ) -# 99481 "src/ocaml/preprocess/parser_raw.ml" +# 99474 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_arg_ = _endpos__1_inlined2_ in @@ -99489,13 +99482,13 @@ module Tables = struct # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 99493 "src/ocaml/preprocess/parser_raw.ml" +# 99486 "src/ocaml/preprocess/parser_raw.ml" in let _1 = # 3205 "src/ocaml/preprocess/parser_raw.mly" ( () ) -# 99499 "src/ocaml/preprocess/parser_raw.ml" +# 99492 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_arg_ in let _symbolstartpos = _startpos__1_ in @@ -99503,7 +99496,7 @@ module Tables = struct # 5194 "src/ocaml/preprocess/parser_raw.mly" ( mk_directive ~loc:_sloc dir arg ) -# 99507 "src/ocaml/preprocess/parser_raw.ml" +# 99500 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -99545,7 +99538,7 @@ module Tables = struct let _1 = # 5202 "src/ocaml/preprocess/parser_raw.mly" ( Pdir_bool false ) -# 99549 "src/ocaml/preprocess/parser_raw.ml" +# 99542 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in @@ -99553,13 +99546,13 @@ module Tables = struct # 1357 "src/ocaml/preprocess/parser_raw.mly" ( mk_directive_arg ~loc:_sloc _1 ) -# 99557 "src/ocaml/preprocess/parser_raw.ml" +# 99550 "src/ocaml/preprocess/parser_raw.ml" in # 126 "" ( Some x ) -# 99563 "src/ocaml/preprocess/parser_raw.ml" +# 99556 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_arg_ = _endpos__1_inlined2_ in @@ -99571,13 +99564,13 @@ module Tables = struct # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 99575 "src/ocaml/preprocess/parser_raw.ml" +# 99568 "src/ocaml/preprocess/parser_raw.ml" in let _1 = # 3205 "src/ocaml/preprocess/parser_raw.mly" ( () ) -# 99581 "src/ocaml/preprocess/parser_raw.ml" +# 99574 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_arg_ in let _symbolstartpos = _startpos__1_ in @@ -99585,7 +99578,7 @@ module Tables = struct # 5194 "src/ocaml/preprocess/parser_raw.mly" ( mk_directive ~loc:_sloc dir arg ) -# 99589 "src/ocaml/preprocess/parser_raw.ml" +# 99582 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -99627,7 +99620,7 @@ module Tables = struct let _1 = # 5203 "src/ocaml/preprocess/parser_raw.mly" ( Pdir_bool true ) -# 99631 "src/ocaml/preprocess/parser_raw.ml" +# 99624 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in @@ -99635,13 +99628,13 @@ module Tables = struct # 1357 "src/ocaml/preprocess/parser_raw.mly" ( mk_directive_arg ~loc:_sloc _1 ) -# 99639 "src/ocaml/preprocess/parser_raw.ml" +# 99632 "src/ocaml/preprocess/parser_raw.ml" in # 126 "" ( Some x ) -# 99645 "src/ocaml/preprocess/parser_raw.ml" +# 99638 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_arg_ = _endpos__1_inlined2_ in @@ -99653,13 +99646,13 @@ module Tables = struct # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 99657 "src/ocaml/preprocess/parser_raw.ml" +# 99650 "src/ocaml/preprocess/parser_raw.ml" in let _1 = # 3205 "src/ocaml/preprocess/parser_raw.mly" ( () ) -# 99663 "src/ocaml/preprocess/parser_raw.ml" +# 99656 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_arg_ in let _symbolstartpos = _startpos__1_ in @@ -99667,7 +99660,7 @@ module Tables = struct # 5194 "src/ocaml/preprocess/parser_raw.mly" ( mk_directive ~loc:_sloc dir arg ) -# 99671 "src/ocaml/preprocess/parser_raw.ml" +# 99664 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -99709,12 +99702,12 @@ module Tables = struct let attrs = # 5399 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 99713 "src/ocaml/preprocess/parser_raw.ml" +# 99706 "src/ocaml/preprocess/parser_raw.ml" in # 1849 "src/ocaml/preprocess/parser_raw.mly" ( mkstrexp e attrs ) -# 99718 "src/ocaml/preprocess/parser_raw.ml" +# 99711 "src/ocaml/preprocess/parser_raw.ml" in let _startpos__1_ = _startpos_e_ in @@ -99722,7 +99715,7 @@ module Tables = struct # 1300 "src/ocaml/preprocess/parser_raw.mly" ( text_str _startpos @ [_1] ) -# 99726 "src/ocaml/preprocess/parser_raw.ml" +# 99719 "src/ocaml/preprocess/parser_raw.ml" in let _startpos__1_ = _startpos_e_ in @@ -99731,13 +99724,13 @@ module Tables = struct # 1288 "src/ocaml/preprocess/parser_raw.mly" ( extra_str _startpos _endpos _1 ) -# 99735 "src/ocaml/preprocess/parser_raw.ml" +# 99728 "src/ocaml/preprocess/parser_raw.ml" in # 1587 "src/ocaml/preprocess/parser_raw.mly" ( Ptop_def _1 ) -# 99741 "src/ocaml/preprocess/parser_raw.ml" +# 99734 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -99770,7 +99763,7 @@ module Tables = struct let _1 = # 260 "" ( List.flatten xss ) -# 99774 "src/ocaml/preprocess/parser_raw.ml" +# 99767 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_xss_, _startpos_xss_) in let _endpos = _endpos__1_ in @@ -99778,13 +99771,13 @@ module Tables = struct # 1288 "src/ocaml/preprocess/parser_raw.mly" ( extra_str _startpos _endpos _1 ) -# 99782 "src/ocaml/preprocess/parser_raw.ml" +# 99775 "src/ocaml/preprocess/parser_raw.ml" in # 1591 "src/ocaml/preprocess/parser_raw.mly" ( Ptop_def _1 ) -# 99788 "src/ocaml/preprocess/parser_raw.ml" +# 99781 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -99816,7 +99809,7 @@ module Tables = struct let _v : (Parsetree.toplevel_phrase) = # 1595 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 99820 "src/ocaml/preprocess/parser_raw.ml" +# 99813 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -99841,7 +99834,7 @@ module Tables = struct let _v : (Parsetree.toplevel_phrase) = # 1598 "src/ocaml/preprocess/parser_raw.mly" ( raise End_of_file ) -# 99845 "src/ocaml/preprocess/parser_raw.ml" +# 99838 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -99866,7 +99859,7 @@ module Tables = struct let _v : (Parsetree.core_type) = # 4754 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 99870 "src/ocaml/preprocess/parser_raw.ml" +# 99863 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -99907,18 +99900,18 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 99911 "src/ocaml/preprocess/parser_raw.ml" +# 99904 "src/ocaml/preprocess/parser_raw.ml" in # 1450 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 99916 "src/ocaml/preprocess/parser_raw.ml" +# 99909 "src/ocaml/preprocess/parser_raw.ml" in # 4765 "src/ocaml/preprocess/parser_raw.mly" ( ty, ltys ) -# 99922 "src/ocaml/preprocess/parser_raw.ml" +# 99915 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_xs_, _startpos_ty_) in @@ -99930,7 +99923,7 @@ module Tables = struct ( let ty, ltys = _1 in mktyp ~loc:_sloc (Ptyp_tuple ((None, ty) :: ltys)) ) -# 99934 "src/ocaml/preprocess/parser_raw.ml" +# 99927 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -99962,7 +99955,7 @@ module Tables = struct let _v : (Parsetree.type_constraint) = # 3677 "src/ocaml/preprocess/parser_raw.mly" ( Pconstraint _2 ) -# 99966 "src/ocaml/preprocess/parser_raw.ml" +# 99959 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -100008,7 +100001,7 @@ module Tables = struct let _v : (Parsetree.type_constraint) = # 3678 "src/ocaml/preprocess/parser_raw.mly" ( Pcoerce (Some _2, _4) ) -# 100012 "src/ocaml/preprocess/parser_raw.ml" +# 100005 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -100040,7 +100033,7 @@ module Tables = struct let _v : (Parsetree.type_constraint) = # 3679 "src/ocaml/preprocess/parser_raw.mly" ( Pcoerce (None, _2) ) -# 100044 "src/ocaml/preprocess/parser_raw.ml" +# 100037 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -100058,7 +100051,7 @@ module Tables = struct let _v : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) = # 4131 "src/ocaml/preprocess/parser_raw.mly" ( (Ptype_abstract, Public, None) ) -# 100062 "src/ocaml/preprocess/parser_raw.ml" +# 100055 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -100090,7 +100083,7 @@ module Tables = struct let _v : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) = # 4133 "src/ocaml/preprocess/parser_raw.mly" ( _2 ) -# 100094 "src/ocaml/preprocess/parser_raw.ml" +# 100087 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -100115,7 +100108,7 @@ module Tables = struct let _v : (Longident.t) = # 5149 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 100119 "src/ocaml/preprocess/parser_raw.ml" +# 100112 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -100163,7 +100156,7 @@ module Tables = struct # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 100167 "src/ocaml/preprocess/parser_raw.ml" +# 100160 "src/ocaml/preprocess/parser_raw.ml" in let _2 = @@ -100172,7 +100165,7 @@ module Tables = struct let _1 = # 4225 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_var (tyvar, None) ) -# 100176 "src/ocaml/preprocess/parser_raw.ml" +# 100169 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_tyvar_ in let _endpos = _endpos__1_ in @@ -100181,19 +100174,19 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 100185 "src/ocaml/preprocess/parser_raw.ml" +# 100178 "src/ocaml/preprocess/parser_raw.ml" in # 4228 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 100191 "src/ocaml/preprocess/parser_raw.ml" +# 100184 "src/ocaml/preprocess/parser_raw.ml" in # 4219 "src/ocaml/preprocess/parser_raw.mly" ( {_2 with ptyp_attributes = _3}, _1 ) -# 100197 "src/ocaml/preprocess/parser_raw.ml" +# 100190 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -100234,7 +100227,7 @@ module Tables = struct # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 100238 "src/ocaml/preprocess/parser_raw.ml" +# 100231 "src/ocaml/preprocess/parser_raw.ml" in let _2 = @@ -100243,7 +100236,7 @@ module Tables = struct let _1 = # 4227 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_any None ) -# 100247 "src/ocaml/preprocess/parser_raw.ml" +# 100240 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in @@ -100251,19 +100244,19 @@ module Tables = struct # 1333 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 100255 "src/ocaml/preprocess/parser_raw.ml" +# 100248 "src/ocaml/preprocess/parser_raw.ml" in # 4228 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 100261 "src/ocaml/preprocess/parser_raw.ml" +# 100254 "src/ocaml/preprocess/parser_raw.ml" in # 4219 "src/ocaml/preprocess/parser_raw.mly" ( {_2 with ptyp_attributes = _3}, _1 ) -# 100267 "src/ocaml/preprocess/parser_raw.ml" +# 100260 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -100281,7 +100274,7 @@ module Tables = struct let _v : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = # 4141 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 100285 "src/ocaml/preprocess/parser_raw.ml" +# 100278 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -100306,7 +100299,7 @@ module Tables = struct let _v : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = # 4143 "src/ocaml/preprocess/parser_raw.mly" ( [p] ) -# 100310 "src/ocaml/preprocess/parser_raw.ml" +# 100303 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -100346,18 +100339,18 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 100350 "src/ocaml/preprocess/parser_raw.ml" +# 100343 "src/ocaml/preprocess/parser_raw.ml" in # 1450 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 100355 "src/ocaml/preprocess/parser_raw.ml" +# 100348 "src/ocaml/preprocess/parser_raw.ml" in # 4147 "src/ocaml/preprocess/parser_raw.mly" ( ps ) -# 100361 "src/ocaml/preprocess/parser_raw.ml" +# 100354 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -100385,7 +100378,7 @@ module Tables = struct let _1 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 100389 "src/ocaml/preprocess/parser_raw.ml" +# 100382 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -100393,7 +100386,7 @@ module Tables = struct let _v : (string) = # 5146 "src/ocaml/preprocess/parser_raw.mly" ( _1 ^ "#" ) -# 100397 "src/ocaml/preprocess/parser_raw.ml" +# 100390 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -100414,7 +100407,7 @@ module Tables = struct let _1 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 100418 "src/ocaml/preprocess/parser_raw.ml" +# 100411 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -100422,7 +100415,7 @@ module Tables = struct let _v : (string) = # 5143 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 100426 "src/ocaml/preprocess/parser_raw.ml" +# 100419 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -100447,7 +100440,7 @@ module Tables = struct let _v : (Longident.t) = # 5152 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 100451 "src/ocaml/preprocess/parser_raw.ml" +# 100444 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -100465,7 +100458,7 @@ module Tables = struct let _v : (Asttypes.variance * Asttypes.injectivity) = # 4239 "src/ocaml/preprocess/parser_raw.mly" ( NoVariance, NoInjectivity ) -# 100469 "src/ocaml/preprocess/parser_raw.ml" +# 100462 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -100490,7 +100483,7 @@ module Tables = struct let _v : (Asttypes.variance * Asttypes.injectivity) = # 4240 "src/ocaml/preprocess/parser_raw.mly" ( Covariant, NoInjectivity ) -# 100494 "src/ocaml/preprocess/parser_raw.ml" +# 100487 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -100515,7 +100508,7 @@ module Tables = struct let _v : (Asttypes.variance * Asttypes.injectivity) = # 4241 "src/ocaml/preprocess/parser_raw.mly" ( Contravariant, NoInjectivity ) -# 100519 "src/ocaml/preprocess/parser_raw.ml" +# 100512 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -100540,7 +100533,7 @@ module Tables = struct let _v : (Asttypes.variance * Asttypes.injectivity) = # 4242 "src/ocaml/preprocess/parser_raw.mly" ( NoVariance, Injective ) -# 100544 "src/ocaml/preprocess/parser_raw.ml" +# 100537 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -100572,7 +100565,7 @@ module Tables = struct let _v : (Asttypes.variance * Asttypes.injectivity) = # 4243 "src/ocaml/preprocess/parser_raw.mly" ( Covariant, Injective ) -# 100576 "src/ocaml/preprocess/parser_raw.ml" +# 100569 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -100604,7 +100597,7 @@ module Tables = struct let _v : (Asttypes.variance * Asttypes.injectivity) = # 4243 "src/ocaml/preprocess/parser_raw.mly" ( Covariant, Injective ) -# 100608 "src/ocaml/preprocess/parser_raw.ml" +# 100601 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -100636,7 +100629,7 @@ module Tables = struct let _v : (Asttypes.variance * Asttypes.injectivity) = # 4244 "src/ocaml/preprocess/parser_raw.mly" ( Contravariant, Injective ) -# 100640 "src/ocaml/preprocess/parser_raw.ml" +# 100633 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -100668,7 +100661,7 @@ module Tables = struct let _v : (Asttypes.variance * Asttypes.injectivity) = # 4244 "src/ocaml/preprocess/parser_raw.mly" ( Contravariant, Injective ) -# 100672 "src/ocaml/preprocess/parser_raw.ml" +# 100665 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -100689,7 +100682,7 @@ module Tables = struct let _1 : ( # 1070 "src/ocaml/preprocess/parser_raw.mly" (string) -# 100693 "src/ocaml/preprocess/parser_raw.ml" +# 100686 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -100701,7 +100694,7 @@ module Tables = struct if _1 = "-!" then Contravariant, Injective else (expecting _loc__1_ "type_variance"; NoVariance, NoInjectivity) ) -# 100705 "src/ocaml/preprocess/parser_raw.ml" +# 100698 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -100722,7 +100715,7 @@ module Tables = struct let _1 : ( # 1124 "src/ocaml/preprocess/parser_raw.mly" (string) -# 100726 "src/ocaml/preprocess/parser_raw.ml" +# 100719 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -100734,7 +100727,7 @@ module Tables = struct if _1 = "!-" then Contravariant, Injective else (expecting _loc__1_ "type_variance"; NoVariance, NoInjectivity) ) -# 100738 "src/ocaml/preprocess/parser_raw.ml" +# 100731 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -100755,7 +100748,7 @@ module Tables = struct let _1 : ( # 1079 "src/ocaml/preprocess/parser_raw.mly" (string * char option) -# 100759 "src/ocaml/preprocess/parser_raw.ml" +# 100752 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -100766,7 +100759,7 @@ module Tables = struct # 5023 "src/ocaml/preprocess/parser_raw.mly" ( unboxed_int _sloc _sloc Positive _1 ) -# 100770 "src/ocaml/preprocess/parser_raw.ml" +# 100763 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -100787,7 +100780,7 @@ module Tables = struct let _1 : ( # 1052 "src/ocaml/preprocess/parser_raw.mly" (string * char option) -# 100791 "src/ocaml/preprocess/parser_raw.ml" +# 100784 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -100795,7 +100788,7 @@ module Tables = struct let _v : (Parsetree.constant) = # 5024 "src/ocaml/preprocess/parser_raw.mly" ( unboxed_float Positive _1 ) -# 100799 "src/ocaml/preprocess/parser_raw.ml" +# 100792 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -100829,24 +100822,24 @@ module Tables = struct let ys = # 260 "" ( List.flatten xss ) -# 100833 "src/ocaml/preprocess/parser_raw.ml" +# 100826 "src/ocaml/preprocess/parser_raw.ml" in let xs = let _1 = # 1366 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 100839 "src/ocaml/preprocess/parser_raw.ml" +# 100832 "src/ocaml/preprocess/parser_raw.ml" in # 1618 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 100844 "src/ocaml/preprocess/parser_raw.ml" +# 100837 "src/ocaml/preprocess/parser_raw.ml" in # 267 "" ( xs @ ys ) -# 100850 "src/ocaml/preprocess/parser_raw.ml" +# 100843 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_xss_, _startpos_xss_) in @@ -100855,13 +100848,13 @@ module Tables = struct # 1292 "src/ocaml/preprocess/parser_raw.mly" ( extra_def _startpos _endpos _1 ) -# 100859 "src/ocaml/preprocess/parser_raw.ml" +# 100852 "src/ocaml/preprocess/parser_raw.ml" in # 1611 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 100865 "src/ocaml/preprocess/parser_raw.ml" +# 100858 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -100909,7 +100902,7 @@ module Tables = struct let ys = # 260 "" ( List.flatten xss ) -# 100913 "src/ocaml/preprocess/parser_raw.ml" +# 100906 "src/ocaml/preprocess/parser_raw.ml" in let xs = let _1 = @@ -100919,18 +100912,18 @@ module Tables = struct let attrs = # 5399 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 100923 "src/ocaml/preprocess/parser_raw.ml" +# 100916 "src/ocaml/preprocess/parser_raw.ml" in # 1849 "src/ocaml/preprocess/parser_raw.mly" ( mkstrexp e attrs ) -# 100928 "src/ocaml/preprocess/parser_raw.ml" +# 100921 "src/ocaml/preprocess/parser_raw.ml" in # 1310 "src/ocaml/preprocess/parser_raw.mly" ( Ptop_def [_1] ) -# 100934 "src/ocaml/preprocess/parser_raw.ml" +# 100927 "src/ocaml/preprocess/parser_raw.ml" in let _startpos__1_ = _startpos_e_ in @@ -100938,25 +100931,25 @@ module Tables = struct # 1308 "src/ocaml/preprocess/parser_raw.mly" ( text_def _startpos @ [_1] ) -# 100942 "src/ocaml/preprocess/parser_raw.ml" +# 100935 "src/ocaml/preprocess/parser_raw.ml" in # 1368 "src/ocaml/preprocess/parser_raw.mly" ( x ) -# 100948 "src/ocaml/preprocess/parser_raw.ml" +# 100941 "src/ocaml/preprocess/parser_raw.ml" in # 1618 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 100954 "src/ocaml/preprocess/parser_raw.ml" +# 100947 "src/ocaml/preprocess/parser_raw.ml" in # 267 "" ( xs @ ys ) -# 100960 "src/ocaml/preprocess/parser_raw.ml" +# 100953 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_xss_, _startpos_e_) in @@ -100965,13 +100958,13 @@ module Tables = struct # 1292 "src/ocaml/preprocess/parser_raw.mly" ( extra_def _startpos _endpos _1 ) -# 100969 "src/ocaml/preprocess/parser_raw.ml" +# 100962 "src/ocaml/preprocess/parser_raw.ml" in # 1611 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 100975 "src/ocaml/preprocess/parser_raw.ml" +# 100968 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -101010,7 +101003,7 @@ module Tables = struct let _v : (string) = # 5053 "src/ocaml/preprocess/parser_raw.mly" ( _2 ) -# 101014 "src/ocaml/preprocess/parser_raw.ml" +# 101007 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -101031,7 +101024,7 @@ module Tables = struct let _1 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 101035 "src/ocaml/preprocess/parser_raw.ml" +# 101028 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -101039,7 +101032,7 @@ module Tables = struct let _v : (string) = # 5061 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 101043 "src/ocaml/preprocess/parser_raw.ml" +# 101036 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -101064,7 +101057,7 @@ module Tables = struct let _v : (string) = # 5062 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 101068 "src/ocaml/preprocess/parser_raw.ml" +# 101061 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -101089,7 +101082,7 @@ module Tables = struct let _v : (Longident.t) = # 5137 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 101093 "src/ocaml/preprocess/parser_raw.ml" +# 101086 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -101136,7 +101129,7 @@ module Tables = struct let _1_inlined1 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 101140 "src/ocaml/preprocess/parser_raw.ml" +# 101133 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined1 in let mutable_ : (Asttypes.mutable_flag) = Obj.magic mutable_ in let _1 : (Parsetree.attributes) = Obj.magic _1 in @@ -101149,7 +101142,7 @@ module Tables = struct let _1 = # 5010 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 101153 "src/ocaml/preprocess/parser_raw.ml" +# 101146 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in @@ -101157,23 +101150,23 @@ module Tables = struct # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 101161 "src/ocaml/preprocess/parser_raw.ml" +# 101154 "src/ocaml/preprocess/parser_raw.ml" in let attrs = # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 101167 "src/ocaml/preprocess/parser_raw.ml" +# 101160 "src/ocaml/preprocess/parser_raw.ml" in let _1 = # 5301 "src/ocaml/preprocess/parser_raw.mly" ( Fresh ) -# 101172 "src/ocaml/preprocess/parser_raw.ml" +# 101165 "src/ocaml/preprocess/parser_raw.ml" in # 2495 "src/ocaml/preprocess/parser_raw.mly" ( (label, mutable_, Cfk_virtual ty), attrs ) -# 101177 "src/ocaml/preprocess/parser_raw.ml" +# 101170 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -101220,7 +101213,7 @@ module Tables = struct let _1_inlined1 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 101224 "src/ocaml/preprocess/parser_raw.ml" +# 101217 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined1 in let _3 : (Asttypes.mutable_flag) = Obj.magic _3 in let _1 : (Parsetree.attributes) = Obj.magic _1 in @@ -101233,7 +101226,7 @@ module Tables = struct let _1 = # 5010 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 101237 "src/ocaml/preprocess/parser_raw.ml" +# 101230 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in @@ -101241,23 +101234,23 @@ module Tables = struct # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 101245 "src/ocaml/preprocess/parser_raw.ml" +# 101238 "src/ocaml/preprocess/parser_raw.ml" in let _2 = # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 101251 "src/ocaml/preprocess/parser_raw.ml" +# 101244 "src/ocaml/preprocess/parser_raw.ml" in let _1 = # 5304 "src/ocaml/preprocess/parser_raw.mly" ( Fresh ) -# 101256 "src/ocaml/preprocess/parser_raw.ml" +# 101249 "src/ocaml/preprocess/parser_raw.ml" in # 2497 "src/ocaml/preprocess/parser_raw.mly" ( (_4, _3, Cfk_concrete (_1, _6)), _2 ) -# 101261 "src/ocaml/preprocess/parser_raw.ml" +# 101254 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -101310,7 +101303,7 @@ module Tables = struct let _1_inlined2 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 101314 "src/ocaml/preprocess/parser_raw.ml" +# 101307 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined2 in let _3 : (Asttypes.mutable_flag) = Obj.magic _3 in let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in @@ -101324,7 +101317,7 @@ module Tables = struct let _1 = # 5010 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 101328 "src/ocaml/preprocess/parser_raw.ml" +# 101321 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in @@ -101332,7 +101325,7 @@ module Tables = struct # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 101336 "src/ocaml/preprocess/parser_raw.ml" +# 101329 "src/ocaml/preprocess/parser_raw.ml" in let _2 = @@ -101340,18 +101333,18 @@ module Tables = struct # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 101344 "src/ocaml/preprocess/parser_raw.ml" +# 101337 "src/ocaml/preprocess/parser_raw.ml" in let _1 = # 5305 "src/ocaml/preprocess/parser_raw.mly" ( Override ) -# 101350 "src/ocaml/preprocess/parser_raw.ml" +# 101343 "src/ocaml/preprocess/parser_raw.ml" in # 2497 "src/ocaml/preprocess/parser_raw.mly" ( (_4, _3, Cfk_concrete (_1, _6)), _2 ) -# 101355 "src/ocaml/preprocess/parser_raw.ml" +# 101348 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -101405,7 +101398,7 @@ module Tables = struct let _1_inlined1 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 101409 "src/ocaml/preprocess/parser_raw.ml" +# 101402 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined1 in let _3 : (Asttypes.mutable_flag) = Obj.magic _3 in let _1 : (Parsetree.attributes) = Obj.magic _1 in @@ -101418,7 +101411,7 @@ module Tables = struct let _1 = # 5010 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 101422 "src/ocaml/preprocess/parser_raw.ml" +# 101415 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in @@ -101426,20 +101419,20 @@ module Tables = struct # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 101430 "src/ocaml/preprocess/parser_raw.ml" +# 101423 "src/ocaml/preprocess/parser_raw.ml" in let _startpos__4_ = _startpos__1_inlined1_ in let _2 = # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 101437 "src/ocaml/preprocess/parser_raw.ml" +# 101430 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__2_, _startpos__2_) = (_endpos__1_, _startpos__1_) in let _1 = # 5304 "src/ocaml/preprocess/parser_raw.mly" ( Fresh ) -# 101443 "src/ocaml/preprocess/parser_raw.ml" +# 101436 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__0_, _endpos__0_) in let _endpos = _endpos__7_ in @@ -101459,7 +101452,7 @@ module Tables = struct ( let e = mkexp_type_constraint_with_modes ~loc:_sloc ~modes:[] _7 _5 in (_4, _3, Cfk_concrete (_1, e)), _2 ) -# 101463 "src/ocaml/preprocess/parser_raw.ml" +# 101456 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -101519,7 +101512,7 @@ module Tables = struct let _1_inlined2 : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 101523 "src/ocaml/preprocess/parser_raw.ml" +# 101516 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined2 in let _3 : (Asttypes.mutable_flag) = Obj.magic _3 in let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in @@ -101533,7 +101526,7 @@ module Tables = struct let _1 = # 5010 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 101537 "src/ocaml/preprocess/parser_raw.ml" +# 101530 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in @@ -101541,7 +101534,7 @@ module Tables = struct # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 101545 "src/ocaml/preprocess/parser_raw.ml" +# 101538 "src/ocaml/preprocess/parser_raw.ml" in let _startpos__4_ = _startpos__1_inlined2_ in @@ -101550,14 +101543,14 @@ module Tables = struct # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 101554 "src/ocaml/preprocess/parser_raw.ml" +# 101547 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__2_, _startpos__2_) = (_endpos__1_inlined1_, _startpos__1_inlined1_) in let _1 = # 5305 "src/ocaml/preprocess/parser_raw.mly" ( Override ) -# 101561 "src/ocaml/preprocess/parser_raw.ml" +# 101554 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__7_ in let _symbolstartpos = if _startpos__1_ != _endpos__1_ then @@ -101576,7 +101569,7 @@ module Tables = struct ( let e = mkexp_type_constraint_with_modes ~loc:_sloc ~modes:[] _7 _5 in (_4, _3, Cfk_concrete (_1, e)), _2 ) -# 101580 "src/ocaml/preprocess/parser_raw.ml" +# 101573 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -101597,7 +101590,7 @@ module Tables = struct let _1 : ( # 1078 "src/ocaml/preprocess/parser_raw.mly" (string * char option) -# 101601 "src/ocaml/preprocess/parser_raw.ml" +# 101594 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -101605,7 +101598,7 @@ module Tables = struct let _v : (Parsetree.constant) = # 5016 "src/ocaml/preprocess/parser_raw.mly" ( let (n, m) = _1 in Pconst_integer (n, m) ) -# 101609 "src/ocaml/preprocess/parser_raw.ml" +# 101602 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -101626,7 +101619,7 @@ module Tables = struct let _1 : ( # 1028 "src/ocaml/preprocess/parser_raw.mly" (char) -# 101630 "src/ocaml/preprocess/parser_raw.ml" +# 101623 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -101634,7 +101627,7 @@ module Tables = struct let _v : (Parsetree.constant) = # 5017 "src/ocaml/preprocess/parser_raw.mly" ( Pconst_char _1 ) -# 101638 "src/ocaml/preprocess/parser_raw.ml" +# 101631 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -101655,7 +101648,7 @@ module Tables = struct let _1 : ( # 1141 "src/ocaml/preprocess/parser_raw.mly" (string * Location.t * string option) -# 101659 "src/ocaml/preprocess/parser_raw.ml" +# 101652 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -101664,7 +101657,7 @@ module Tables = struct # 5018 "src/ocaml/preprocess/parser_raw.mly" ( let (s, strloc, d) = _1 in Pconst_string (s, strloc, d) ) -# 101668 "src/ocaml/preprocess/parser_raw.ml" +# 101661 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -101685,7 +101678,7 @@ module Tables = struct let _1 : ( # 1051 "src/ocaml/preprocess/parser_raw.mly" (string * char option) -# 101689 "src/ocaml/preprocess/parser_raw.ml" +# 101682 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -101693,7 +101686,7 @@ module Tables = struct let _v : (Parsetree.constant) = # 5020 "src/ocaml/preprocess/parser_raw.mly" ( let (f, m) = _1 in Pconst_float (f, m) ) -# 101697 "src/ocaml/preprocess/parser_raw.ml" +# 101690 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -101769,7 +101762,7 @@ module Tables = struct # 5399 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 101773 "src/ocaml/preprocess/parser_raw.ml" +# 101766 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_attrs2_ = _endpos__1_inlined3_ in @@ -101781,7 +101774,7 @@ module Tables = struct # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 101785 "src/ocaml/preprocess/parser_raw.ml" +# 101778 "src/ocaml/preprocess/parser_raw.ml" in let attrs1 = @@ -101789,7 +101782,7 @@ module Tables = struct # 5403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 101793 "src/ocaml/preprocess/parser_raw.ml" +# 101786 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_attrs2_ in @@ -101802,7 +101795,7 @@ module Tables = struct let docs = symbol_docs _sloc in Val.mk id ty ~attrs ~modalities ~loc ~docs, ext ) -# 101806 "src/ocaml/preprocess/parser_raw.ml" +# 101799 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -101820,7 +101813,7 @@ module Tables = struct let _v : (Asttypes.virtual_flag) = # 5265 "src/ocaml/preprocess/parser_raw.mly" ( Concrete ) -# 101824 "src/ocaml/preprocess/parser_raw.ml" +# 101817 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -101845,7 +101838,7 @@ module Tables = struct let _v : (Asttypes.virtual_flag) = # 5266 "src/ocaml/preprocess/parser_raw.mly" ( Virtual ) -# 101849 "src/ocaml/preprocess/parser_raw.ml" +# 101842 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -101870,7 +101863,7 @@ module Tables = struct let _v : (Asttypes.mutable_flag) = # 5289 "src/ocaml/preprocess/parser_raw.mly" ( Immutable ) -# 101874 "src/ocaml/preprocess/parser_raw.ml" +# 101867 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -101902,7 +101895,7 @@ module Tables = struct let _v : (Asttypes.mutable_flag) = # 5290 "src/ocaml/preprocess/parser_raw.mly" ( Mutable ) -# 101906 "src/ocaml/preprocess/parser_raw.ml" +# 101899 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -101934,7 +101927,7 @@ module Tables = struct let _v : (Asttypes.mutable_flag) = # 5291 "src/ocaml/preprocess/parser_raw.mly" ( Mutable ) -# 101938 "src/ocaml/preprocess/parser_raw.ml" +# 101931 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -101959,7 +101952,7 @@ module Tables = struct let _v : (Asttypes.private_flag) = # 5296 "src/ocaml/preprocess/parser_raw.mly" ( Public ) -# 101963 "src/ocaml/preprocess/parser_raw.ml" +# 101956 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -101991,7 +101984,7 @@ module Tables = struct let _v : (Asttypes.private_flag) = # 5297 "src/ocaml/preprocess/parser_raw.mly" ( Private ) -# 101995 "src/ocaml/preprocess/parser_raw.ml" +# 101988 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -102023,7 +102016,7 @@ module Tables = struct let _v : (Asttypes.private_flag) = # 5298 "src/ocaml/preprocess/parser_raw.mly" ( Private ) -# 102027 "src/ocaml/preprocess/parser_raw.ml" +# 102020 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -102085,18 +102078,18 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 102089 "src/ocaml/preprocess/parser_raw.ml" +# 102082 "src/ocaml/preprocess/parser_raw.ml" in # 1380 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 102094 "src/ocaml/preprocess/parser_raw.ml" +# 102087 "src/ocaml/preprocess/parser_raw.ml" in # 4098 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 102100 "src/ocaml/preprocess/parser_raw.ml" +# 102093 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__6_ = _endpos_xs_ in @@ -102105,7 +102098,7 @@ module Tables = struct # 4521 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 102109 "src/ocaml/preprocess/parser_raw.ml" +# 102102 "src/ocaml/preprocess/parser_raw.ml" in let _3 = @@ -102116,7 +102109,7 @@ module Tables = struct # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 102120 "src/ocaml/preprocess/parser_raw.ml" +# 102113 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__6_ in @@ -102133,7 +102126,7 @@ module Tables = struct ~manifest:_5 ~priv:_4 ~loc:(make_loc _sloc))) ) -# 102137 "src/ocaml/preprocess/parser_raw.ml" +# 102130 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -102188,7 +102181,7 @@ module Tables = struct # 4521 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 102192 "src/ocaml/preprocess/parser_raw.ml" +# 102185 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__5_ = _endpos__1_inlined2_ in @@ -102200,7 +102193,7 @@ module Tables = struct # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 102204 "src/ocaml/preprocess/parser_raw.ml" +# 102197 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__5_ in @@ -102215,7 +102208,7 @@ module Tables = struct ~params:_2 ~manifest:_5 ~loc:(make_loc _sloc))) ) -# 102219 "src/ocaml/preprocess/parser_raw.ml" +# 102212 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -102266,7 +102259,7 @@ module Tables = struct # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 102270 "src/ocaml/preprocess/parser_raw.ml" +# 102263 "src/ocaml/preprocess/parser_raw.ml" in let _2 = @@ -102277,13 +102270,13 @@ module Tables = struct # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 102281 "src/ocaml/preprocess/parser_raw.ml" +# 102274 "src/ocaml/preprocess/parser_raw.ml" in # 4457 "src/ocaml/preprocess/parser_raw.mly" ( Pwith_module (_2, _4) ) -# 102287 "src/ocaml/preprocess/parser_raw.ml" +# 102280 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -102334,7 +102327,7 @@ module Tables = struct # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 102338 "src/ocaml/preprocess/parser_raw.ml" +# 102331 "src/ocaml/preprocess/parser_raw.ml" in let _2 = @@ -102345,13 +102338,13 @@ module Tables = struct # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 102349 "src/ocaml/preprocess/parser_raw.ml" +# 102342 "src/ocaml/preprocess/parser_raw.ml" in # 4459 "src/ocaml/preprocess/parser_raw.mly" ( Pwith_modsubst (_2, _4) ) -# 102355 "src/ocaml/preprocess/parser_raw.ml" +# 102348 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -102409,13 +102402,13 @@ module Tables = struct # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 102413 "src/ocaml/preprocess/parser_raw.ml" +# 102406 "src/ocaml/preprocess/parser_raw.ml" in # 4461 "src/ocaml/preprocess/parser_raw.mly" ( Pwith_modtype (l, rhs) ) -# 102419 "src/ocaml/preprocess/parser_raw.ml" +# 102412 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -102473,13 +102466,13 @@ module Tables = struct # 1296 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 102477 "src/ocaml/preprocess/parser_raw.ml" +# 102470 "src/ocaml/preprocess/parser_raw.ml" in # 4463 "src/ocaml/preprocess/parser_raw.mly" ( Pwith_modtypesubst (l, rhs) ) -# 102483 "src/ocaml/preprocess/parser_raw.ml" +# 102476 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -102504,7 +102497,7 @@ module Tables = struct let _v : (Asttypes.private_flag) = # 4466 "src/ocaml/preprocess/parser_raw.mly" ( Public ) -# 102508 "src/ocaml/preprocess/parser_raw.ml" +# 102501 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -102536,7 +102529,7 @@ module Tables = struct let _v : (Asttypes.private_flag) = # 4467 "src/ocaml/preprocess/parser_raw.mly" ( Private ) -# 102540 "src/ocaml/preprocess/parser_raw.ml" +# 102533 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -102574,7 +102567,7 @@ module MenhirInterpreter = struct | T_UIDENT : ( # 1155 "src/ocaml/preprocess/parser_raw.mly" (string) -# 102578 "src/ocaml/preprocess/parser_raw.ml" +# 102571 "src/ocaml/preprocess/parser_raw.ml" ) terminal | T_TYPE : unit terminal | T_TRY : unit terminal @@ -102586,7 +102579,7 @@ module MenhirInterpreter = struct | T_STRING : ( # 1141 "src/ocaml/preprocess/parser_raw.mly" (string * Location.t * string option) -# 102590 "src/ocaml/preprocess/parser_raw.ml" +# 102583 "src/ocaml/preprocess/parser_raw.ml" ) terminal | T_STAR : unit terminal | T_STACK : unit terminal @@ -102600,12 +102593,12 @@ module MenhirInterpreter = struct | T_QUOTED_STRING_ITEM : ( # 1146 "src/ocaml/preprocess/parser_raw.mly" (string * Location.t * string * Location.t * string option) -# 102604 "src/ocaml/preprocess/parser_raw.ml" +# 102597 "src/ocaml/preprocess/parser_raw.ml" ) terminal | T_QUOTED_STRING_EXPR : ( # 1143 "src/ocaml/preprocess/parser_raw.mly" (string * Location.t * string * Location.t * string option) -# 102609 "src/ocaml/preprocess/parser_raw.ml" +# 102602 "src/ocaml/preprocess/parser_raw.ml" ) terminal | T_QUOTE : unit terminal | T_QUESTION : unit terminal @@ -102613,7 +102606,7 @@ module MenhirInterpreter = struct | T_PREFIXOP : ( # 1124 "src/ocaml/preprocess/parser_raw.mly" (string) -# 102617 "src/ocaml/preprocess/parser_raw.ml" +# 102610 "src/ocaml/preprocess/parser_raw.ml" ) terminal | T_PLUSEQ : unit terminal | T_PLUSDOT : unit terminal @@ -102624,7 +102617,7 @@ module MenhirInterpreter = struct | T_OPTLABEL : ( # 1116 "src/ocaml/preprocess/parser_raw.mly" (string) -# 102628 "src/ocaml/preprocess/parser_raw.ml" +# 102621 "src/ocaml/preprocess/parser_raw.ml" ) terminal | T_OPEN : unit terminal | T_ONCE : unit terminal @@ -102645,12 +102638,12 @@ module MenhirInterpreter = struct | T_LIDENT : ( # 1096 "src/ocaml/preprocess/parser_raw.mly" (string) -# 102649 "src/ocaml/preprocess/parser_raw.ml" +# 102642 "src/ocaml/preprocess/parser_raw.ml" ) terminal | T_LETOP : ( # 1074 "src/ocaml/preprocess/parser_raw.mly" (string) -# 102654 "src/ocaml/preprocess/parser_raw.ml" +# 102647 "src/ocaml/preprocess/parser_raw.ml" ) terminal | T_LET : unit terminal | T_LESSMINUS : unit terminal @@ -102671,41 +102664,41 @@ module MenhirInterpreter = struct | T_LABEL : ( # 1082 "src/ocaml/preprocess/parser_raw.mly" (string) -# 102675 "src/ocaml/preprocess/parser_raw.ml" +# 102668 "src/ocaml/preprocess/parser_raw.ml" ) terminal | T_KIND_OF : unit terminal | T_KIND_ABBREV : unit terminal | T_INT : ( # 1078 "src/ocaml/preprocess/parser_raw.mly" (string * char option) -# 102682 "src/ocaml/preprocess/parser_raw.ml" +# 102675 "src/ocaml/preprocess/parser_raw.ml" ) terminal | T_INITIALIZER : unit terminal | T_INHERIT : unit terminal | T_INFIXOP4 : ( # 1072 "src/ocaml/preprocess/parser_raw.mly" (string) -# 102689 "src/ocaml/preprocess/parser_raw.ml" +# 102682 "src/ocaml/preprocess/parser_raw.ml" ) terminal | T_INFIXOP3 : ( # 1071 "src/ocaml/preprocess/parser_raw.mly" (string) -# 102694 "src/ocaml/preprocess/parser_raw.ml" +# 102687 "src/ocaml/preprocess/parser_raw.ml" ) terminal | T_INFIXOP2 : ( # 1070 "src/ocaml/preprocess/parser_raw.mly" (string) -# 102699 "src/ocaml/preprocess/parser_raw.ml" +# 102692 "src/ocaml/preprocess/parser_raw.ml" ) terminal | T_INFIXOP1 : ( # 1069 "src/ocaml/preprocess/parser_raw.mly" (string) -# 102704 "src/ocaml/preprocess/parser_raw.ml" +# 102697 "src/ocaml/preprocess/parser_raw.ml" ) terminal | T_INFIXOP0 : ( # 1066 "src/ocaml/preprocess/parser_raw.mly" (string) -# 102709 "src/ocaml/preprocess/parser_raw.ml" +# 102702 "src/ocaml/preprocess/parser_raw.ml" ) terminal | T_INCLUDE : unit terminal | T_IN : unit terminal @@ -102714,17 +102707,17 @@ module MenhirInterpreter = struct | T_HASH_INT : ( # 1079 "src/ocaml/preprocess/parser_raw.mly" (string * char option) -# 102718 "src/ocaml/preprocess/parser_raw.ml" +# 102711 "src/ocaml/preprocess/parser_raw.ml" ) terminal | T_HASH_FLOAT : ( # 1052 "src/ocaml/preprocess/parser_raw.mly" (string * char option) -# 102723 "src/ocaml/preprocess/parser_raw.ml" +# 102716 "src/ocaml/preprocess/parser_raw.ml" ) terminal | T_HASHOP : ( # 1137 "src/ocaml/preprocess/parser_raw.mly" (string) -# 102728 "src/ocaml/preprocess/parser_raw.ml" +# 102721 "src/ocaml/preprocess/parser_raw.ml" ) terminal | T_HASHLPAREN : unit terminal | T_HASHLBRACE : unit terminal @@ -102741,7 +102734,7 @@ module MenhirInterpreter = struct | T_FLOAT : ( # 1051 "src/ocaml/preprocess/parser_raw.mly" (string * char option) -# 102745 "src/ocaml/preprocess/parser_raw.ml" +# 102738 "src/ocaml/preprocess/parser_raw.ml" ) terminal | T_FALSE : unit terminal | T_EXTERNAL : unit terminal @@ -102757,7 +102750,7 @@ module MenhirInterpreter = struct | T_DOTOP : ( # 1073 "src/ocaml/preprocess/parser_raw.mly" (string) -# 102761 "src/ocaml/preprocess/parser_raw.ml" +# 102754 "src/ocaml/preprocess/parser_raw.ml" ) terminal | T_DOTLESS : unit terminal | T_DOTHASH : unit terminal @@ -102767,14 +102760,14 @@ module MenhirInterpreter = struct | T_DOCSTRING : ( # 1163 "src/ocaml/preprocess/parser_raw.mly" (Docstrings.docstring) -# 102771 "src/ocaml/preprocess/parser_raw.ml" +# 102764 "src/ocaml/preprocess/parser_raw.ml" ) terminal | T_DO : unit terminal | T_CONSTRAINT : unit terminal | T_COMMENT : ( # 1162 "src/ocaml/preprocess/parser_raw.mly" (string * Location.t) -# 102778 "src/ocaml/preprocess/parser_raw.ml" +# 102771 "src/ocaml/preprocess/parser_raw.ml" ) terminal | T_COMMA : unit terminal | T_COLONRBRACKET : unit terminal @@ -102786,7 +102779,7 @@ module MenhirInterpreter = struct | T_CHAR : ( # 1028 "src/ocaml/preprocess/parser_raw.mly" (char) -# 102790 "src/ocaml/preprocess/parser_raw.ml" +# 102783 "src/ocaml/preprocess/parser_raw.ml" ) terminal | T_BEGIN : unit terminal | T_BARRBRACKET : unit terminal @@ -102801,7 +102794,7 @@ module MenhirInterpreter = struct | T_ANDOP : ( # 1075 "src/ocaml/preprocess/parser_raw.mly" (string) -# 102805 "src/ocaml/preprocess/parser_raw.ml" +# 102798 "src/ocaml/preprocess/parser_raw.ml" ) terminal | T_AND : unit terminal | T_AMPERSAND : unit terminal @@ -103925,16 +103918,16 @@ module MenhirInterpreter = struct assert false and lr0_incoming = - (16, "\000\000\000\006\000H\000\004\000\006\000\b\000\n\000\012\000\018\000\020\000\022\000\024\000\026\000\030\000 \000(\0000\000>\000L\000P\000T\000V\000X\000Z\000\\\000^\000h\000j\000n\000p\000t\000\146\000\156\000\158\000\170\000\172\000\174\000\200\000\202\000\204\000\206\000\210\000\212\000\216\000\224\000\226\000\228\000\242\000\246\000\248\001\b\001\012\001\028\001\030\001\"\000_\000\240\002\023\002\023\001\219\000\138\002\023\000\012\001\219\001o\000l\000$\000@\000B\000D\000F\000H\000L\000`\000d\000f\000r\000x\000\160\000\162\000\164\000\166\000\168\000\182\000\196\000\218\000\232\000l\000,\000\238\001\171\000.\000v\000\140\001\171\0002\000v\000\144\001\171\0004\000v\001\002\001\016\001\020\001\024\001\026\001 \001$\001&\001\005\000.\000p\0001\001\006\000\014\000R\000n\001\019\001\019\001\019\000\016\000\018\0008\000:\000\018\000p\001\177\000<\000p\001\006\000N\000l\000\016\001\006\000\016\000l\000\150\000:\001\177\000l\000:\001\177\001\006\000\175\001$\001\161\001\165\000\004\000p\000\176\001\006\000l\000^\001\219\001o\000\018\000(\001o\001\024\000p\001\023\001\023\000o\000\224\000\233\000\020\001\219\001o\000@\000F\001\020\000X\000f\001\020\000l\000\164\001\020\000F\000f\0009\000\016\001o\001\006\001\165\000`\000p\001\025\001\025\001$\001\165\001\177\002\019\001o\000:\001\177\001o\001\006\001\165\000C\000\135\000.\000\252\000\225\000\225\0009\000\016\001o\000:\001\177\001o\000A\000p\001\006\001\165\000\251\000\218\000\018\000\024\000>\000l\000.\000x\000l\000:\001\177\000|\002\023\000\014\000\016\000\018\000\022\001\219\001o\000\028\000l\000p\001\000\000~\001\018\001\001\000\128\0002\001\001\000\140\000\184\000p\001\006\000p\000\188\000p\001A\000l\001A\000.\000\240\000\018\001Q\000\240\000p\001S\001\249\000;\000=\000?\000E\001\011\001A\000\240\000l\000K\000b\000K\001\026\000p\001\021\001\021\002\029\000b\000K\002\029\000Y\000\229\000l\000Y\000\127\000.\000\188\001\249\000;\000E\001A\000\240\000=\000?\001I\001K\000\252\000\016\001\006\001\165\000:\001\177\001\006\001\165\001\019\000l\000\149\000:\001\177\000l\000:\001\177\001\006\001\165\000.\000\240\001\193\001\211\001\217\001\223\001\225\001\227\000.\000b\000K\002\029\000Y\001\019\000K\000b\000K\002\029\000Y\001\019\000K\002\029\000b\000K\002\029\000Y\001\019\000K\002\029\002\025\000$\000p\001\006\002\025\000\188\001\249\000;\000E\000\129\000$\000p\001\006\002\025\002\025\002\025\002\029\002\029\000b\000K\002\029\000Y\001\019\000K\002\029\002\019\002%\001\030\000:\001\177\000l\000\016\001\006\001\165\000.\000:\001\177\001\006\001\165\000.\001\227\000.\000\252\000\016\001\006\001\165\000:\001\177\001\006\001\165\001\227\000K\002\029\001\227\000\149\000\240\001\227\000.\000b\000K\002\029\000Y\001\019\000K\002\029\002\029\000b\000K\002\029\000Y\001\019\000K\002\029\000K\000b\000K\002\029\000Y\001\019\000K\002\029\002\029\000b\000K\002\029\000Y\001\019\000K\002\029\001\019\000l\000\149\000\240\001\227\000.\000b\000K\002\029\000Y\001\019\000K\002\029\002\029\000b\000K\002\029\000Y\001\019\000K\002\029\000K\000b\000K\002\029\000Y\001\019\000K\002\029\002\029\000b\000K\002\029\000Y\001\019\000K\002\029\001\019\000K\002\029\000Y\001\019\000K\002\029\002\029\001\227\001\223\002\025\000$\000\129\000.\002\025\000$\000\129\000.\001\018\001\022\001\177\000Q\000}\000\139\0002\001\018\000}\001\031\000T\001$\001\003\000\145\001$\002%\001o\002%\001o\001\227\000Q\0002\000}\001\018\000\139\0002\000\139\0002\000\139\0002\000\196\000\151\0002\001\031\001\031\001\227\001\006\001\227\001\000\001\227\000I\000.\000\252\000\028\000l\000p\000I\000.\000p\000\252\000\028\000l\000p\000I\000.\000p\000\"\000&\000@\000V\001\219\001o\000l\000\016\000\028\000l\000p\001\006\001\227\000.\000\252\000\028\000l\000p\001\006\001\227\000.\000p\000\252\000\028\000l\000p\001\006\001\227\000.\000p\000F\000\154\000\178\000\180\000\208\000f\000\154\000\178\000\180\000\208\000l\000F\000^\001\219\001o\000\016\000\018\0015\000.\001\006\000^\000\020\000T\001o\000\016\000 \001o\000\020\001\219\001o\000X\000A\000p\000\251\000G\000\161\000\136\002\023\000*\0006\000D\000F\000J\001\219\001o\000R\000Z\001\219\001o\000p\001?\000\240\000\018\000p\001E\001G\002\t\000d\000f\000j\001\219\001o\000l\000@\000\130\000n\000p\000v\000r\000\028\000l\000p\001\006\001\227\000.\000\252\000\028\000l\000p\001\006\001\227\000.\000p\000\252\000\028\000l\000p\001\006\001\227\000.\000p\000\130\000\132\000\140\0002\000\144\001G\001[\0004\001\149\001\006\001\227\000\247\000\218\000\146\001\219\001o\000\154\000\176\000p\000E\001A\000\240\000\178\000\180\000\184\000\148\000\186\001[\0004\000\188\000E\000\208\000\210\001\n\000+\0001\0003\0007\000a\000c\000\252\000\028\000l\000p\001\006\001\227\000.\000p\000\148\000c\000g\000i\000\238\000F\000f\000i\000k\001\031\001?\000\240\000l\000.\000\216\001\219\001o\000c\000\165\000\199\000\201\000\252\000\028\000l\000p\001\006\001\227\000.\000p\000\148\000c\001\217\001\235\001\239\000\238\000\201\001\004\000\201\001\018\000\201\001\030\0001\002\019\001\031\000\201\001\143\000\252\000\028\000l\000p\001\006\001\227\000.\000p\000\148\000c\000\238\000\201\001\235\000l\000\020\001\025\000.\000c\000f\001\004\000.\000\201\000.\001\006\001\227\000.\000\201\001\004\000.\000\201\000.\000\140\0002\000w\0002\000\201\000,\000w\000g\000\238\000\201\000\165\000.\000\201\000c\000\201\000\241\000,\000\016\000,\000\255\001[\001\014\000w\001\014\000\254\000w\000\254\000\148\000c\000\252\000\028\000l\000p\001\006\001\227\000.\000p\000\148\000c\000\238\000\163\000\197\000\252\000\028\000l\000p\001\006\001\227\000.\000p\000\148\000c\000\238\000\197\001\004\000\201\001\018\000\201\001\030\0001\002\019\000\199\001\141\000\252\000\028\000l\000p\001\006\001\227\000.\000p\000\148\000c\000\238\000\197\000\238\000\197\000\148\000c\000\238\000\197\000p\000\148\000c\0001\000\028\000l\000p\001\006\000\149\000\240\001\227\001\024\001\021\002\027\001\227\002\027\002\029\001\019\001\151\000.\001\151\000.\000p\000<\000l\001\019\001\151\000\218\000t\000P\001\020\001\219\001o\000l\000\012\001o\000\132\000\140\000\142\000p\000\218\000\144\000p\000\184\000\146\001\219\001o\000\186\000\230\000\234\000\148\001\012\001\219\001o\000\174\001\219\001o\000\202\001\219\001o\001\018\000\201\000\b\000\204\001\219\001o\000N\000\016\000l\000l\000l\000\201\001\006\000\149\000\240\001\227\002\027\001\227\002\027\002\029\001\127\000.\001\127\000.\000\201\001\006\000\149\000\240\001\227\002\027\001\227\002\027\002\029\001\019\001\131\000\239\000.\001\131\000\239\000.\000p\000\195\000l\000\020\000l\000p\001\006\001\165\000.\000p\001\006\001\165\000.\001\017\001\027\000.\001\029\000p\001\017\000\201\001\006\000\149\000\240\001\227\000.\001\019\000\201\001\006\000\149\000\240\001\227\001\227\001\127\000.\001\129\000.\001\127\000.\000\148\000l\000\201\001\006\000\149\000\240\001\227\000.\001\019\000\201\000.\001\006\000\149\000\240\001\227\000.\001\227\001\127\000.\001\127\000.\000c\000c\000\159\001\145\001\199\001\197\001\006\002\025\002\027\000\231\000b\000\202\001\219\001o\000\147\000\252\000\028\000l\000p\000I\000.\000p\000\148\001\020\000+\000/\0001\0007\000e\000\176\000p\000\182\000e\000\188\000p\000\232\000l\000\202\001\219\001o\000\147\000,\000\206\001\219\001o\000\201\000\218\000\214\001\028\001\219\001o\000e\000\236\001\149\000\240\000l\000S\000\202\001\219\001o\000\147\001\018\001Y\001Y\000e\000\028\000l\000p\000I\000.\000p\000<\000p\000N\000e\001\031\001?\000\240\000l\000.\000D\000F\000^\001\219\001o\000\200\001o\000l\000.\0015\001\006\000l\000.\000b\000\200\001o\000\155\001\191\001\189\000b\001'\001-\000\004\000\020\000A\001\149\000\218\000>\001\002\002%\000\031\002%\000\161\000\248\001\227\000\218\001\227\000C\000^\000\020\001'\000\218\001-\000b\001-\002\019\002\029\000b\001-\002\029\001A\000\240\000\018\001\177\001M\001\177\001\217\002\029\001\002\001-\001?\000\218\001A\000\240\001\002\001A\000!\000\141\001\"\000!\001A\002\029\001\191\001-\002\029\001-\000.\001-\000.\002\027\000.\001\189\000b\000\227\0017\000l\000.\0017\000.\001\006\001-\000.\002\027\000.\000\227\002\019\002\029\000.\001?\001\217\0017\001\006\001-\000.\000d\000f\000r\000c\001\006\001\227\000\218\000s\000\167\000\252\000\028\000l\000p\000I\000.\000p\000\148\000e\000\252\000\028\000l\000p\000I\000.\000p\000\148\000e\001C\001\217\001\235\001\241\000\202\001\219\001o\000\147\001\031\000e\001\135\000\172\000s\001\195\001\201\000$\000\202\001\219\001o\000\147\001\201\000B\000\202\001\219\001o\000\147\001\201\000D\000\202\001\219\001o\000\147\001\201\000F\000\202\001\219\001o\000\147\001\201\000H\000\202\001\219\001o\000\147\001\201\000L\000\202\001\219\001o\000\147\001\201\000`\000\202\001\219\001o\000\147\001\201\000d\000\202\001\219\001o\000\147\001\201\000f\000\202\001\219\001o\000\147\001\201\000x\000\202\001\219\001o\000\147\001\201\000\160\000\202\001\219\001o\000\147\001\201\000\162\000\202\001\219\001o\000\147\001\201\000\164\000\202\001\219\001o\000\147\001\201\000\166\000\202\001\219\001o\000\147\001\201\000\168\000\202\001\219\001o\000\147\001\201\000\196\000\202\001\219\001o\000\147\001\201\000\218\000\202\001\219\001o\000\147\001\201\000\252\000\028\000l\000p\000I\000.\000p\000\148\000e\000\202\001\219\001o\000\147\001\201\001\002\000\202\001\219\001o\000\147\001\201\001\004\000\202\001\219\001o\000\147\001\201\001\016\000\202\001\219\001o\000\147\001\201\001\024\000\202\001\219\001o\000\147\001\201\001\026\000\202\001\219\001o\000\147\001\201\001$\000\202\001\219\001o\000\147\001\201\001&\000\202\001\219\001o\000\147\001\201\002\019\001\205\001\235\000e\002'\000\202\001\219\001o\000\147\001\201\000,\000H\002\023\000s\000s\001\"\001o\000l\0001\002\029\000.\000\218\000s\000[\001\197\000I\002\027\000\253\000\218\001\195\001\203\002\029\001\199\0001\001\006\000\020\001\027\000\240\001\227\000\218\000s\002\027\000\218\000s\000\149\000\240\001\227\000\218\000s\002\027\000\218\000s\000I\000\218\000s\002\027\000\218\000s\000[\002\029\000\218\000s\000a\001\006\001\227\000\218\000s\002\027\000\218\000s\002\029\000\218\000s\000\197\000\218\000s\001\019\0001\001\006\000\149\000\240\001\227\000\218\000s\002\027\000\218\000s\000I\000\218\000s\002\027\000\218\000s\000[\002\029\000\218\000s\001\137\001\139\000\187\001i\001i\002#\001\201\000\202\001\219\001o\000\147\001\201\000\197\000\218\000s\001{\000\172\000s\001 \001}\001}\001\020\000s\000.\000\130\000\202\001\219\001o\000\147\000\b\000\202\001\219\001o\000\147\001\201\000\206\000\143\001\"\001o\000\014\000\201\000\172\000\202\001\219\001o\000\147\001\201\000R\000\201\000\172\000\202\001\219\001o\000\147\001\201\000n\000\201\000\172\000\202\001\219\001o\000\147\001\201\000\201\000\172\000\202\001\219\001o\000\147\001\201\000\218\000\202\001\219\001o\000\147\000\026\000\228\001\221\000\202\001\219\001o\000\147\001\201\001\201\001\221\000\202\001\219\001o\000\147\001\201\001\243\001\245\001\245\000\157\000\254\001\247\001\247\000\254\000{\000\254\001\201\000,\000{\001\201\000\157\000\254\000\132\000\202\001\219\001o\000\147\000\157\001\014\001\014\000{\001\014\001\201\000\157\001\014\000\140\0002\000\202\001\219\001o\000\147\000\157\0002\000{\0002\001\201\000\157\0002\000\142\000y\000\192\000\144\000e\000\004\000u\001\149\000I\000\237\000\245\000,\000u\000u\000\177\0004\001?\000\240\000p\0001\000\148\000e\000\232\000l\000{\000.\000v\000\202\001\219\001o\000\147\001\201\000\140\000{\0002\000v\000\202\001\219\001o\000\147\001\201\000\144\000{\0004\000v\000\202\001\219\001o\000\147\001\201\000\240\000l\000s\000.\000v\000\202\001\219\001o\000\147\001\201\000\140\000s\0002\000v\000\202\001\219\001o\000\147\001\201\000\144\000s\0004\000v\000\202\001\219\001o\000\147\001\201\001?\000\232\000l\000{\000.\000v\000\202\001\219\001o\000\147\001\201\000\140\000{\0002\000v\000\202\001\219\001o\000\147\001\201\000\144\000{\0004\000v\000\202\001\219\001o\000\147\001\201\001\149\000v\000\202\001\219\001o\000\147\001\201\000e\000\153\001\147\001\147\001\201\000s\000.\000\140\000s\0002\000\144\000s\0004\001?\000\232\000l\000{\000.\000\140\000{\0002\000\144\000{\0004\001\149\000s\000s\001\221\000s\000\246\000s\000\242\000{\000{\000.\000\140\000{\0002\000\144\000{\0004\000e\000\202\001\219\001o\000\147\001\201\001\203\002\029\000s\000b\000s\000b\000\240\000s\001Y\000\147\000s\000\030\000\202\001\219\001o\000\147\000\226\000\202\001\219\001o\000\147\001\201\001\201\000\226\000\202\001\219\001o\000\147\001\201\000\224\000s\000\224\000e\000\202\001\219\001o\000\147\000\194\001\201\000\194\000e\000\177\0004\000e\000\202\001\219\001o\000\147\000\167\000.\001\201\000\177\0004\000\202\001\219\001o\000\147\001\201\000\245\000,\000y\000\192\000y\000\192\000\202\001\219\001o\000\147\000\157\0002\000{\0002\001\201\000\157\0002\000\202\001\219\001o\000\147\000\157\001\014\001\014\000{\001\014\001\201\000\157\001\014\000\202\001\219\001o\000\147\000.\001\000\001-\000.\001\006\001-\000.\001\000\001-\000.\001\201\000.\001\000\001-\000.\001\006\001-\000.\001\000\001-\000.\0017\000\172\000s\001\219\001o\0017\000\172\000s\000^\001\219\001o\000l\0015\002\029\000.\0011\000\218\0017\001\006\001-\000\218\0017\002\027\000\218\0017\001=\000\172\000s\001\191\001=\002\029\000\218\0017\0015\000\216\001\219\001o\000\018\000l\001\004\000.\000\140\001\237\000T\000\144\000\\\000\198\001#\000p\001\006\000\149\000\240\002%\000\189\000\233\001o\000,\001o\002%\001\153\0004\001\155\001\153\001\157\000\198\002\025\000\233\000\131\000$\000\198\002\025\000\233\002\025\000\233\001\231\002\025\000\233\001\006\000l\000:\001\177\001\006\001\165\000.\000\252\000\016\001\006\001\165\000:\001\177\001\006\001\165\001\227\000\149\000\240\001\231\000b\002\025\002\025\001\231\000b\002\025\002\025\001\187\001o\000\172\000s\001\239\001\219\001o\0000\000\179\001\139\001i\000s\000\239\000.\001\151\000\239\000.\000p\000[\000\202\001\219\001o\000\147\001\201\000s\000\202\001\219\001o\000\147\000\157\000\254\000\254\000{\000\254\001\201\000\157\000\254\000e\000^\001\219\001o\0017\000.\001\006\001-\000.\000s\000.\000I\000.\002\027\000.\000s\000\004\000\147\000s\000s\000\004\000\202\001\219\001o\000\147\001\201\000P\001\020\001\219\001o\0017\001i\001\219\001o\0017\001i\000^\000\020\001\219\001o\001\177\000\218\001-\000\243\001i\001\219\001o\0000\0011\001=\001i\001\"\001o\0011\001=\001i\001s\001s\0011\001=\001i\000z\002\023\000<\000\201\000\b\000s\000\134\002\023\000\152\000p\000\218\001\165\000\170\000\200\000\212\001\219\001o\0001\001\006\000\149\000\240\001\227\000\191\000\233\000\218\000\"\001\015\001\015\001i\001\227\000\216\001\219\001o\001\237\000\218\000l\001?\000\240\000l\001\235\001o\001i\001\187\001o\001i\001\006\000o\001\227\001\b\000\020\001\219\001o\000\n\000'\000\140\000C\000\133\0002\000\252\000C\001\207\000p\000\218\000V\001o\000l\001\227\000.\002\005\000\012\001o\000\n\000\\\000\\\000\n\001!\000p\001\006\001\227\001i\000h\001o\000\n\000>\000>\000\n\000\181\000p\001\006\000\191\001i\000\158\001o\000t\000P\001\020\001o\001?\000\172\000\140\000\137\0002\001\249\000\252\001\227\001\227\001\217\001\249\002\001\002\019\001o\001?\000\172\002\001\002\001\001i\000\248\001o\001\227\000\218\001\227\001\233\001i\001c\000\224\001\167\001i\001\209\002\003\001c\002\001\001i\001\"\001o\000'\001\207\000p\000\218\002\001\001i\001u\001u\001\219\001o\000'\001\207\000p\000l\000\218\000V\001o\002\007\000\012\001\020\001o\000\\\001%\000p\000\218\000s\000I\000\218\000s\000-\001i\001o\000\n\000\\\000\\\000\n\000%\000p\001\006\001\227\001%\000p\000\218\000s\000I\000\218\000s\000h\001\020\001o\000>\000\183\000p\001\006\000\020\001\027\000\240\001\227\000\218\000s\000\191\000\218\000s\000[\001U\001i\001o\000\n\000>\000>\000\n\000#\000p\001\006\000\191\000\183\000p\001\006\000\020\001\027\000\240\001\227\000\218\000s\000\191\000\218\000s\000[\000\156\001o\000s\001i\000\158\001\020\001o\000l\000t\000H\002\023\001o\000\179\001\139\001i\000P\001\020\001o\001?\000\172\000\140\000\137\0002\002\t\000\204\001o\001\145\000b\001\133\000\172\001\217\001\255\000\153\002\t\002\017\002\019\002#\002\017\002\011\002\011\002\017\001o\001?\000\172\002\017\001o\000\179\001\139\001i\002\017\000.\001\006\000p\001\006\000K\000b\000\140\001\227\000K\000b\000\229\000K\000b\001A\000\240\000p\001\217\001\253\002\001\001\253\001\253\001\253\000.\002\017\001\030\000p\000\249\001i\001o\002\017\000\249\001i\000\248\001o\001\233\001i\001a\000\224\001\167\001i\001\209\002\015\001a\002\017\001\006\001\253\000\218\002\017\001\145\002\r\002\r\001i\001\"\001o\000'\001\207\000p\002\r\001i\001y\001y\000)\000U\000t\000]\000q\000\185\001\t\001+\001e\001\135\001\159\001\167\001i\001\173\001\219\001o\0017\001i\001\179\001\"\001o\000A\000p\000\251\000G\000\161\001i\001m\001\163\001m\001\209\001\251\000W\000s\001i\001e\000\193\001e\001\135\002\021\0002\000\193\0002\000s\001i\001e\001e\002\021\0002\001i\000E\000B\000\183\001\018\001\237\000\218\001\235\001o\001\187\001o\000\171\001i\001\185\001\215\001\183\001\185\001\213\001\215\001\237\000\218\001\235\001o\001\187\001o\000A\000p\000\251\000G\000\161\001i\000E\000B\000\183\000\171\001i\000W\000\224\0017\001-\000.\000\148\000c\000\238\000\201\000\148\000c\000\238\000\201\000p\000\201\000.\001\006\001\227\000.\002\007\001a\000\224\000\202\001\219\001o\000\147\000e\001\205\001\235\000e\000\148\000e\000\202\001\219\001o\000\147\001\201\000\148\000e\000\202\001\219\001o\000\147\001\201\000p\000s\000\004\000\147\000s\000\193\0002\000p\001\006\000\189\001o\000,\001o\000\238\001W\002\025\000,\001W\000\196\001W\000\196\000\149\000\240\001\227\000.\000b\000K\002\029\000Y\001\019\000K\002\029\002\029\000b\000K\002\029\000Y\001\019\000K\002\029\000\140\000\144\001\153\0004\000\186\001\153\0004\000\238\001\018\001\237\000\173\001\018\001\185\001\183\001\185\001\227\001\229\001\237\000\144\001\153\0004\000\186\001\153\0004\000\238\001\r\001\227\000\218\000>\000\144\001\153\0004\000\186\001\153\0004\000\238\001\229\000\144\001\153\0004\000\186\001\153\0004\000\238\001\229\001\229\001\002\001\r\000\161\001i\000E\000B\000\183\000\169\001i\001\185\001\183\001\185\000A\000p\000\251\001\002\001\r\000\161\001i\000E\000B\000\183\000\169\001i\000*\000P\001\020\001\219\001o\001A\001i\001\219\001o\001A\001i\000^\000\020\001\219\001o\001\177\001\002\001-\001i\001\219\001o\000\018\001\002\001A\001i\0000\0015\001\006\001-\000\233\001i\001\"\001o\0015\001\006\001-\000\233\001i\001q\001q\000l\0015\001\026\001\023\002\031\000.\0013\000\218\001?\001\026\001\023\000\235\001i\001\006\001-\000\233\001;\001i\001\191\001\006\001-\002\027\0019\001\191\0019\0015\000\216\001\219\001o\001\237\001\b\001\219\001o\000'\001\207\000p\001\006\001\253\001i\001\"\001o\000'\001\207\000p\001\006\001\253\001i\001w\001w\000)\000m\000q\000\185\001\007\001)\001+\001/\001g\001\159\001\167\001i\001\173\001\219\001o\001-\001i\000\233\001\179\001m\001\181\001\"\001o\000A\000p\000\251\001\002\001\r\000\161\001i\001k\001k\001\209\001\251\001g\001g\001-\000.\000\149\000\240\001\227\000.\000b\000K\002\029\000Y\001\019\000K\002\029\002\029\000b\000K\002\029\000Y\001\019\000K\002\029\000K\000b\000K\002\029\000Y\001\019\000K\002\029\002\029\000b\000K\002\029\000Y\001\019\000K\002\029\001\019\000l\000\149\000\240\001\227\000.\000b\000K\002\029\000Y\001\019\000K\002\029\002\029\000b\000K\002\029\000Y\001\019\000K\002\029\000K\000b\000K\002\029\000Y\001\019\000K\002\029\002\029\000b\000K\002\029\000Y\001\019\000K\002\029\002\025\000$\000\129\000b\000K\002\029\000Y\001\019\000K\002\029\002\029\000b\000K\002\029\000Y\001\019\000K\002\029\002\025\000$\000\129\000b\000K\002\029\000Y\001\019\000K\002\029\002\029\000b\000K\002\029\000Y\001\019\000K\002\029\001\227\000\233\001\165\000.\001\227\001\161\000.\001\165\001\165\000.\000\252\000\016\001\006\001\165\000:\001\177\001\006\001\165\001\227\000:\001\177\000\191\000\233\001i\002\021\0002\001o\000s\000\246\000s\000\242\000W\000\222\001\175\000\000\000o\000\222\001\169\000\000\000l\001\004\000.\0003\000\223\001A\000\240\000l\001\004\000.\0003\001\177\001O\001\177\001\239\002!\000\222\000\000\000\221\001\235\000\222\000\000\000\219\001\227\000\222\000\000\000s\000\222\000\217\000\000\000\215\001A\000\222\000\000\000\213\001?\000\222\000\000\000\211\0017\000\222\000\000\000\209\001-\000\222\000\000\000\207\001'\000\222\000\000\000\201\000\222\000\205\000\000\000/\000\222\000\203\001?\000\240\000\000\000\176\001\177\000\024\000\"\000\154\000\210\000/\001?\000\188\001\177\000\024\000\"\000\154\000\210\000/\001?\000\222\000M\000O\000*\000U\001_\000s\001i\000*\001_\000*\000\000\000*\000O\000U\001]\001]\000s\001i\001]\001]\0005\000s\001i\001]\000\222\001]\000\222") + (16, "\000\000\000\006\000H\000\004\000\006\000\b\000\n\000\012\000\018\000\020\000\022\000\024\000\026\000\030\000 \000(\0000\000>\000L\000P\000T\000V\000X\000Z\000\\\000^\000h\000j\000n\000p\000t\000\146\000\156\000\158\000\170\000\172\000\174\000\200\000\202\000\204\000\206\000\210\000\212\000\216\000\224\000\226\000\228\000\242\000\246\000\248\001\b\001\012\001\028\001\030\001\"\000_\000\240\002\023\002\023\001\219\000\138\002\023\000\012\001\219\001o\000l\000$\000@\000B\000D\000F\000H\000L\000`\000d\000f\000r\000x\000\160\000\162\000\164\000\166\000\168\000\182\000\196\000\218\000\232\000l\000,\000\238\001\171\000.\000v\000\140\001\171\0002\000v\000\144\001\171\0004\000v\001\002\001\016\001\020\001\024\001\026\001 \001$\001&\001\005\000.\000p\0001\001\006\000\014\000R\000n\001\019\001\019\001\019\000\016\000\018\0008\000:\000\018\000p\001\177\000<\000p\001\006\000N\000l\000\016\001\006\000\016\000l\000\150\000:\001\177\000l\000:\001\177\001\006\000\175\001$\001\161\001\165\000\004\000p\000\176\001\006\000l\000^\001\219\001o\000\018\000(\001o\001\024\000p\001\023\001\023\000o\000\224\000\233\000\020\001\219\001o\000@\000F\001\020\000X\000f\001\020\000l\000\164\001\020\000F\000f\0009\000\016\001o\001\006\001\165\000`\000p\001\025\001\025\001$\001\165\001\177\002\019\001o\000:\001\177\001o\001\006\001\165\000C\000\135\000.\000\252\000\225\000\225\0009\000\016\001o\000:\001\177\001o\000A\000p\001\006\001\165\000\251\000\218\000\018\000\024\000>\000l\000.\000x\000l\000:\001\177\000|\002\023\000\014\000\016\000\018\000\022\001\219\001o\000\028\000l\000p\001\000\000~\001\018\001\001\000\128\0002\001\001\000\140\000\184\000p\001\006\000p\000\188\000p\001A\000l\001A\000.\000\240\000\018\001Q\000\240\000p\001S\001\249\000;\000=\000?\000E\001\011\001A\000\240\000l\000K\000b\000K\001\026\000p\001\021\001\021\002\029\000b\000K\002\029\000Y\000\229\000l\000Y\000\127\000.\000\188\001\249\000;\000E\001A\000\240\000=\000?\001I\001K\000\252\000\016\001\006\001\165\000:\001\177\001\006\001\165\001\019\000l\000\149\000:\001\177\000l\000:\001\177\001\006\001\165\000.\000\240\001\193\001\211\001\217\001\223\001\225\001\227\000.\000b\000K\002\029\000Y\001\019\000K\000b\000K\002\029\000Y\001\019\000K\002\029\000b\000K\002\029\000Y\001\019\000K\002\029\002\025\000$\000p\001\006\002\025\000\188\001\249\000;\000E\000\129\000$\000p\001\006\002\025\002\025\002\025\002\029\002\029\000b\000K\002\029\000Y\001\019\000K\002\029\002\019\002%\001\030\000:\001\177\000l\000\016\001\006\001\165\000.\000:\001\177\001\006\001\165\000.\001\227\000.\000\252\000\016\001\006\001\165\000:\001\177\001\006\001\165\001\227\000K\002\029\001\227\000\149\000\240\001\227\000.\000b\000K\002\029\000Y\001\019\000K\002\029\002\029\000b\000K\002\029\000Y\001\019\000K\002\029\000K\000b\000K\002\029\000Y\001\019\000K\002\029\002\029\000b\000K\002\029\000Y\001\019\000K\002\029\001\019\000l\000\149\000\240\001\227\000.\000b\000K\002\029\000Y\001\019\000K\002\029\002\029\000b\000K\002\029\000Y\001\019\000K\002\029\000K\000b\000K\002\029\000Y\001\019\000K\002\029\002\029\000b\000K\002\029\000Y\001\019\000K\002\029\001\019\000K\002\029\000Y\001\019\000K\002\029\002\029\001\227\001\223\002\025\000$\000\129\000.\002\025\000$\000\129\000.\001\018\001\022\001\177\000Q\000}\000\139\0002\001\018\000}\001\031\000T\001$\001\003\000\145\001$\002%\001o\002%\001o\001\227\000Q\0002\000}\001\018\000\139\0002\000\139\0002\000\139\0002\000\196\000\151\0002\001\031\001\031\001\227\001\006\001\227\001\000\001\227\000I\000.\000\252\000\028\000l\000p\000I\000.\000p\000\252\000\028\000l\000p\000I\000.\000p\000\"\000&\000@\000V\001\219\001o\000l\000\016\000\028\000l\000p\001\006\001\227\000.\000\252\000\028\000l\000p\001\006\001\227\000.\000p\000\252\000\028\000l\000p\001\006\001\227\000.\000p\000F\000\154\000\178\000\180\000\208\000f\000\154\000\178\000\180\000\208\000l\000F\000^\001\219\001o\000\016\000\018\0015\000.\001\006\000^\000\020\000T\001o\000\016\000 \001o\000\020\001\219\001o\000X\000A\000p\000\251\000G\000\161\000\136\002\023\000*\0006\000D\000F\000J\001\219\001o\000R\000Z\001\219\001o\000p\001?\000\240\000\018\000p\001E\001G\002\t\000d\000f\000j\001\219\001o\000l\000@\000\130\000n\000p\000v\000r\000\028\000l\000p\001\006\001\227\000.\000\252\000\028\000l\000p\001\006\001\227\000.\000p\000\252\000\028\000l\000p\001\006\001\227\000.\000p\000\130\000\132\000\140\0002\000\144\001G\001[\0004\001\149\001\006\001\227\000\247\000\218\000\146\001\219\001o\000\154\000\176\000p\000E\001A\000\240\000\178\000\180\000\184\000\148\000\186\001[\0004\000\188\000E\000\208\000\210\001\n\000+\0001\0003\0007\000a\000c\000\252\000\028\000l\000p\001\006\001\227\000.\000p\000\148\000c\000g\000i\000\238\000F\000f\000i\000k\001\031\001?\000\240\000l\000.\000\216\001\219\001o\000c\000\165\000\199\000\201\000\252\000\028\000l\000p\001\006\001\227\000.\000p\000\148\000c\001\217\001\235\001\239\000\238\000\201\001\004\000\201\001\018\000\201\001\030\0001\002\019\001\031\000\201\001\143\000\252\000\028\000l\000p\001\006\001\227\000.\000p\000\148\000c\000\238\000\201\001\235\000l\000\020\001\025\000.\000c\000f\001\004\000.\000\201\000.\001\006\001\227\000.\000\201\001\004\000.\000\201\000.\000\140\0002\000w\0002\000\201\000,\000w\000g\000\238\000\201\000\165\000.\000\201\000c\000\201\000\241\000,\000\016\000,\000\255\001[\001\014\000w\001\014\000\254\000w\000\254\000\148\000c\000\252\000\028\000l\000p\001\006\001\227\000.\000p\000\148\000c\000\238\000\163\000\197\000\252\000\028\000l\000p\001\006\001\227\000.\000p\000\148\000c\000\238\000\197\001\004\000\201\001\018\000\201\001\030\0001\002\019\000\199\001\141\000\252\000\028\000l\000p\001\006\001\227\000.\000p\000\148\000c\000\238\000\197\000\238\000\197\000\148\000c\000\238\000\197\000p\000\148\000c\0001\000\028\000l\000p\001\006\000\149\000\240\001\227\001\024\001\021\002\027\001\227\002\027\002\029\001\019\001\151\000.\001\151\000.\000p\000<\000l\001\019\001\151\000\218\000t\000P\001\020\001\219\001o\000l\000\012\001o\000\132\000\140\000\142\000p\000\218\000\144\000p\000\184\000\146\001\219\001o\000\186\000\230\000\234\000\148\001\012\001\219\001o\000\174\001\219\001o\000\202\001\219\001o\001\018\000\201\000\b\000\204\001\219\001o\000N\000\016\000l\000l\000l\000\201\001\006\000\149\000\240\001\227\002\027\001\227\002\027\002\029\001\127\000.\001\127\000.\000\201\001\006\000\149\000\240\001\227\002\027\001\227\002\027\002\029\001\019\001\131\000\239\000.\001\131\000\239\000.\000p\000\195\000l\000\020\000l\000p\001\006\001\165\000.\000p\001\006\001\165\000.\001\017\001\027\000.\001\029\000p\001\017\000\201\001\006\000\149\000\240\001\227\000.\001\019\000\201\001\006\000\149\000\240\001\227\001\227\001\127\000.\001\129\000.\001\127\000.\000\148\000l\000\201\001\006\000\149\000\240\001\227\000.\001\019\000\201\000.\001\006\000\149\000\240\001\227\000.\001\227\001\127\000.\001\127\000.\000c\000c\000\159\001\145\001\199\001\197\001\006\002\025\002\027\000\231\000b\000\202\001\219\001o\000\147\000\252\000\028\000l\000p\000I\000.\000p\000\148\001\020\000+\000/\0001\0007\000e\000\176\000p\000\182\000e\000\188\000p\000\232\000l\000\202\001\219\001o\000\147\000,\000\206\001\219\001o\000\201\000\218\000\214\001\028\001\219\001o\000e\000\236\001\149\000\240\000l\000S\000\202\001\219\001o\000\147\001\018\001Y\001Y\000e\000\028\000l\000p\000I\000.\000p\000<\000p\000N\000e\001\031\001?\000\240\000l\000.\000D\000F\000^\001\219\001o\000\200\001o\000l\000.\0015\001\006\000l\000.\000b\000\200\001o\000\155\001\191\001\189\000b\001'\001-\000\004\000\020\000A\001\149\000\218\000>\001\002\002%\000\031\002%\000\161\000\248\001\227\000\218\001\227\000C\000^\000\020\001'\000\218\001-\000b\001-\002\019\002\029\000b\001-\002\029\001A\000\240\000\018\001\177\001M\001\177\001\217\002\029\001\002\001-\001?\000\218\001A\000\240\001\002\001A\000!\000\141\001\"\000!\001A\002\029\001\191\001-\002\029\001-\000.\001-\000.\002\027\000.\001\189\000b\000\227\0017\000l\000.\0017\000.\001\006\001-\000.\002\027\000.\000\227\002\019\002\029\000.\001?\001\217\0017\001\006\001-\000.\000d\000f\000r\000c\001\006\001\227\000\218\000s\000\167\000\252\000\028\000l\000p\000I\000.\000p\000\148\000e\000\252\000\028\000l\000p\000I\000.\000p\000\148\000e\001C\001\217\001\235\001\241\000\202\001\219\001o\000\147\001\031\000e\001\135\000\172\000s\001\195\001\201\000$\000\202\001\219\001o\000\147\001\201\000B\000\202\001\219\001o\000\147\001\201\000D\000\202\001\219\001o\000\147\001\201\000F\000\202\001\219\001o\000\147\001\201\000H\000\202\001\219\001o\000\147\001\201\000L\000\202\001\219\001o\000\147\001\201\000`\000\202\001\219\001o\000\147\001\201\000d\000\202\001\219\001o\000\147\001\201\000f\000\202\001\219\001o\000\147\001\201\000x\000\202\001\219\001o\000\147\001\201\000\160\000\202\001\219\001o\000\147\001\201\000\162\000\202\001\219\001o\000\147\001\201\000\164\000\202\001\219\001o\000\147\001\201\000\166\000\202\001\219\001o\000\147\001\201\000\168\000\202\001\219\001o\000\147\001\201\000\196\000\202\001\219\001o\000\147\001\201\000\218\000\202\001\219\001o\000\147\001\201\000\252\000\028\000l\000p\000I\000.\000p\000\148\000e\000\202\001\219\001o\000\147\001\201\001\002\000\202\001\219\001o\000\147\001\201\001\004\000\202\001\219\001o\000\147\001\201\001\016\000\202\001\219\001o\000\147\001\201\001\024\000\202\001\219\001o\000\147\001\201\001\026\000\202\001\219\001o\000\147\001\201\001$\000\202\001\219\001o\000\147\001\201\001&\000\202\001\219\001o\000\147\001\201\002\019\001\205\001\235\000e\002'\000\202\001\219\001o\000\147\001\201\000,\000H\002\023\000s\000s\001\"\001o\000l\0001\002\029\000.\000\218\000s\000[\001\197\000I\002\027\000\253\000\218\001\195\001\203\002\029\001\199\0001\001\006\000\020\001\027\000\240\001\227\000\218\000s\002\027\000\218\000s\000\149\000\240\001\227\000\218\000s\002\027\000\218\000s\000I\000\218\000s\002\027\000\218\000s\000[\002\029\000\218\000s\000a\001\006\001\227\000\218\000s\002\027\000\218\000s\002\029\000\218\000s\000\197\000\218\000s\001\019\0001\001\006\000\149\000\240\001\227\000\218\000s\002\027\000\218\000s\000I\000\218\000s\002\027\000\218\000s\000[\002\029\000\218\000s\001\137\001\139\000\187\001i\001i\002#\001\201\000\202\001\219\001o\000\147\001\201\000\197\000\218\000s\001{\000\172\000s\001 \001}\001}\001\020\000s\000.\000\130\000\202\001\219\001o\000\147\000\b\000\202\001\219\001o\000\147\001\201\000\206\000\143\001\"\001o\000\014\000\201\000\172\000\202\001\219\001o\000\147\001\201\000R\000\201\000\172\000\202\001\219\001o\000\147\001\201\000n\000\201\000\172\000\202\001\219\001o\000\147\001\201\000\201\000\172\000\202\001\219\001o\000\147\001\201\000\218\000\202\001\219\001o\000\147\000\026\000\228\001\221\000\202\001\219\001o\000\147\001\201\001\201\001\221\000\202\001\219\001o\000\147\001\201\001\243\001\245\001\245\000\157\000\254\001\247\001\247\000\254\000{\000\254\001\201\000,\000{\001\201\000\157\000\254\000\132\000\202\001\219\001o\000\147\000\157\001\014\001\014\000{\001\014\001\201\000\157\001\014\000\140\0002\000\202\001\219\001o\000\147\000\157\0002\000{\0002\001\201\000\157\0002\000\142\000y\000\192\000\144\000e\000\004\000u\001\149\000I\000\237\000\245\000,\000u\000u\000\177\0004\001?\000\240\000p\0001\000\148\000e\000\232\000l\000{\000.\000v\000\202\001\219\001o\000\147\001\201\000\140\000{\0002\000v\000\202\001\219\001o\000\147\001\201\000\144\000{\0004\000v\000\202\001\219\001o\000\147\001\201\000\240\000l\000s\000.\000v\000\202\001\219\001o\000\147\001\201\000\140\000s\0002\000v\000\202\001\219\001o\000\147\001\201\000\144\000s\0004\000v\000\202\001\219\001o\000\147\001\201\001?\000\232\000l\000{\000.\000v\000\202\001\219\001o\000\147\001\201\000\140\000{\0002\000v\000\202\001\219\001o\000\147\001\201\000\144\000{\0004\000v\000\202\001\219\001o\000\147\001\201\001\149\000v\000\202\001\219\001o\000\147\001\201\000e\000\153\001\147\001\147\001\201\000s\000.\000\140\000s\0002\000\144\000s\0004\001?\000\232\000l\000{\000.\000\140\000{\0002\000\144\000{\0004\001\149\000s\000s\001\221\000s\000\246\000s\000\242\000{\000{\000.\000\140\000{\0002\000\144\000{\0004\000e\000\202\001\219\001o\000\147\001\201\001\203\002\029\000s\000b\000s\000b\000\240\000s\001Y\000\147\000s\000\030\000\202\001\219\001o\000\147\000\226\000\202\001\219\001o\000\147\001\201\001\201\000\226\000\202\001\219\001o\000\147\001\201\000\224\000s\000\224\000e\000\202\001\219\001o\000\147\000\194\001\201\000\194\000e\000\177\0004\000e\000\202\001\219\001o\000\147\000\167\000.\001\201\000\177\0004\000\202\001\219\001o\000\147\001\201\000\245\000,\000y\000\192\000y\000\192\000\202\001\219\001o\000\147\000\157\0002\000{\0002\001\201\000\157\0002\000\202\001\219\001o\000\147\000\157\001\014\001\014\000{\001\014\001\201\000\157\001\014\000\202\001\219\001o\000\147\000.\001\000\001-\000.\001\006\001-\000.\001\000\001-\000.\001\201\000.\001\000\001-\000.\001\006\001-\000.\001\000\001-\000.\0017\000\172\000s\001\219\001o\0017\000\172\000s\000^\001\219\001o\000l\0015\002\029\000.\0011\000\218\0017\001\006\001-\000\218\0017\002\027\000\218\0017\001=\000\172\000s\001\191\001=\002\029\000\218\0017\0015\000\216\001\219\001o\000\018\000l\001\004\000.\000\140\001\237\000T\000\144\000\\\000\198\001#\000p\001\006\000\149\000\240\002%\000\189\000\233\001o\000,\001o\002%\001\153\0004\001\155\001\153\001\157\000\198\002\025\000\233\000\131\000$\000\198\002\025\000\233\002\025\000\233\001\231\002\025\000\233\001\006\000l\000:\001\177\001\006\001\165\000.\000\252\000\016\001\006\001\165\000:\001\177\001\006\001\165\001\227\000\149\000\240\001\231\000b\002\025\002\025\001\231\000b\002\025\002\025\001\187\001o\000\172\000s\001\239\001\219\001o\0000\000\179\001\139\001i\000s\000\239\000.\001\151\000\239\000.\000p\000[\000\202\001\219\001o\000\147\001\201\000s\000\202\001\219\001o\000\147\000\157\000\254\000\254\000{\000\254\001\201\000\157\000\254\000e\000^\001\219\001o\0017\000.\001\006\001-\000.\000s\000.\000I\000.\002\027\000.\000s\000\004\000\147\000s\000s\000\004\000\202\001\219\001o\000\147\001\201\000P\001\020\001\219\001o\0017\001i\001\219\001o\0017\001i\000^\000\020\001\219\001o\001\177\000\218\001-\000\243\001i\001\219\001o\0000\0011\001=\001i\001\"\001o\0011\001=\001i\001s\001s\0011\001=\001i\000z\002\023\000<\000\201\000\b\000s\000\134\002\023\000\152\000p\000\218\001\165\000\170\000\200\000\212\001\219\001o\0001\001\006\000\149\000\240\001\227\000\191\000\233\000\218\000\"\001\015\001\015\001i\001\227\000\216\001\219\001o\001\237\000\218\000l\001?\000\240\000l\001\235\001o\001i\001\187\001o\001i\001\006\000o\001\227\001\b\000\020\001\219\001o\000\n\000'\000\140\000C\000\133\0002\000\252\000C\001\207\000p\000\218\000V\001o\000l\001\227\000.\002\005\000\012\001o\000\n\000\\\000\\\000\n\001!\000p\001\006\001\227\001i\000h\001o\000\n\000>\000>\000\n\000\181\000p\001\006\000\191\001i\000\158\001o\000t\000P\001\020\001o\001?\000\172\000\140\000\137\0002\001\249\000\252\001\227\001\227\001\217\001\249\002\001\002\019\001o\001?\000\172\002\001\002\001\001i\000\248\001o\001\227\000\218\001\227\001\233\001i\001c\000\224\001\167\001i\001\209\002\003\001c\002\001\001i\001\"\001o\000'\001\207\000p\000\218\002\001\001i\001u\001u\001\219\001o\000'\001\207\000p\000l\000\218\000V\001o\002\007\000\012\001\020\001o\000\\\001%\000p\000\218\000s\000I\000\218\000s\000-\001i\001o\000\n\000\\\000\\\000\n\000%\000p\001\006\001\227\001%\000p\000\218\000s\000I\000\218\000s\000h\001\020\001o\000>\000\183\000p\001\006\000\020\001\027\000\240\001\227\000\218\000s\000\191\000\218\000s\000[\001U\001i\001o\000\n\000>\000>\000\n\000#\000p\001\006\000\191\000\183\000p\001\006\000\020\001\027\000\240\001\227\000\218\000s\000\191\000\218\000s\000[\000\156\001o\000s\001i\000\158\001\020\001o\000l\000t\000H\002\023\001o\000\179\001\139\001i\000P\001\020\001o\001?\000\172\000\140\000\137\0002\002\t\000\204\001o\001\145\000b\001\133\000\172\001\217\001\255\000\153\002\t\002\017\002\019\002#\002\017\002\011\002\011\002\017\001o\001?\000\172\002\017\001o\000\179\001\139\001i\002\017\000.\001\006\000p\001\006\000K\000b\000\140\001\227\000K\000b\000\229\000K\000b\001A\000\240\000p\001\217\001\253\002\001\001\253\001\253\001\253\000.\002\017\001\030\000p\000\249\001i\001o\002\017\000\249\001i\000\248\001o\001\233\001i\001a\000\224\001\167\001i\001\209\002\015\001a\002\017\001\006\001\253\000\218\002\017\001\145\002\r\002\r\001i\001\"\001o\000'\001\207\000p\002\r\001i\001y\001y\000)\000U\000t\000]\000q\000\185\001\t\001+\001e\001\135\001\159\001\167\001i\001\173\001\219\001o\0017\001i\001\179\001\"\001o\000A\000p\000\251\000G\000\161\001i\001m\001\163\001m\001\209\001\251\000W\000s\001i\001e\000\193\001e\001\135\002\021\0002\000\193\0002\000s\001i\001e\001e\002\021\0002\001i\000E\000B\000\183\001\018\001\237\000\218\001\235\001o\001\187\001o\000\171\001i\001\185\001\215\001\183\001\185\001\213\001\215\001\237\000\218\001\235\001o\001\187\001o\000A\000p\000\251\000G\000\161\001i\000E\000B\000\183\000\171\001i\000W\000\224\0017\001-\000.\000\148\000c\000\238\000\201\000\148\000c\000\238\000\201\000p\000\201\000.\001\006\001\227\000.\002\007\001a\000\224\000\202\001\219\001o\000\147\000e\001\205\001\235\000e\000\148\000e\000\202\001\219\001o\000\147\001\201\000\148\000e\000\202\001\219\001o\000\147\001\201\000p\000s\000\004\000\147\000s\000\193\0002\000p\001\006\000\189\001o\000,\001o\000\238\001W\002\025\000,\001W\000\196\001W\000\196\000\149\000\240\001\227\000.\000b\000K\002\029\000Y\001\019\000K\002\029\002\029\000b\000K\002\029\000Y\001\019\000K\002\029\000\140\000\144\001\153\0004\000\186\001\153\0004\000\238\001\018\001\237\000\173\001\018\001\185\001\183\001\185\001\227\001\229\001\237\000\144\001\153\0004\000\186\001\153\0004\000\238\001\r\001\227\000\218\000>\000\144\001\153\0004\000\186\001\153\0004\000\238\001\229\000\144\001\153\0004\000\186\001\153\0004\000\238\001\229\001\229\001\002\001\r\000\161\001i\000E\000B\000\183\000\169\001i\001\185\001\183\001\185\000A\000p\000\251\001\002\001\r\000\161\001i\000E\000B\000\183\000\169\001i\000*\000P\001\020\001\219\001o\001A\001i\001\219\001o\001A\001i\000^\000\020\001\219\001o\001\177\001\002\001-\001i\001\219\001o\000\018\001\002\001A\001i\0000\0015\001\006\001-\000\233\001i\001\"\001o\0015\001\006\001-\000\233\001i\001q\001q\000l\0015\001\026\001\023\002\031\000.\0013\000\218\001?\001\026\001\023\000\235\001i\001\006\001-\000\233\001;\001i\001\191\001\006\001-\002\027\0019\001\191\0019\0015\000\216\001\219\001o\001\237\001\b\001\219\001o\000'\001\207\000p\001\006\001\253\001i\001\"\001o\000'\001\207\000p\001\006\001\253\001i\001w\001w\000)\000m\000q\000\185\001\007\001)\001+\001/\001g\001\159\001\167\001i\001\173\001\219\001o\001-\001i\000\233\001\179\001m\001\181\001\"\001o\000A\000p\000\251\001\002\001\r\000\161\001i\001k\001k\001\209\001\251\001g\001g\001-\000.\000\149\000\240\001\227\000.\000b\000K\002\029\000Y\001\019\000K\002\029\002\029\000b\000K\002\029\000Y\001\019\000K\002\029\000K\000b\000K\002\029\000Y\001\019\000K\002\029\002\029\000b\000K\002\029\000Y\001\019\000K\002\029\001\019\000l\000\149\000\240\001\227\000.\000b\000K\002\029\000Y\001\019\000K\002\029\002\029\000b\000K\002\029\000Y\001\019\000K\002\029\000K\000b\000K\002\029\000Y\001\019\000K\002\029\002\029\000b\000K\002\029\000Y\001\019\000K\002\029\002\025\000$\000\129\000b\000K\002\029\000Y\001\019\000K\002\029\002\029\000b\000K\002\029\000Y\001\019\000K\002\029\002\025\000$\000\129\000b\000K\002\029\000Y\001\019\000K\002\029\002\029\000b\000K\002\029\000Y\001\019\000K\002\029\001\227\001\165\000.\001\227\001\161\000.\001\165\001\165\000.\000\252\000\016\001\006\001\165\000:\001\177\001\006\001\165\001\227\000:\001\177\000\191\000\233\001i\002\021\0002\001o\000s\000\246\000s\000\242\000W\000\222\001\175\000\000\000o\000\222\001\169\000\000\000l\001\004\000.\0003\000\223\001A\000\240\000l\001\004\000.\0003\001\177\001O\001\177\001\239\002!\000\222\000\000\000\221\001\235\000\222\000\000\000\219\001\227\000\222\000\000\000s\000\222\000\217\000\000\000\215\001A\000\222\000\000\000\213\001?\000\222\000\000\000\211\0017\000\222\000\000\000\209\001-\000\222\000\000\000\207\001'\000\222\000\000\000\201\000\222\000\205\000\000\000/\000\222\000\203\001?\000\240\000\000\000\176\001\177\000\024\000\"\000\154\000\210\000/\001?\000\188\001\177\000\024\000\"\000\154\000\210\000/\001?\000\222\000M\000O\000*\000U\001_\000s\001i\000*\001_\000*\000\000\000*\000O\000U\001]\001]\000s\001i\001]\001]\0005\000s\001i\001]\000\222\001]\000\222") and rhs = - ((16, "\001\175\001\169\000\223\000\221\000\219\000\217\000\215\000\213\000\211\000\209\000\207\000\205\000\203\000M\0005\000F\000D\001\193\002%\001\030\000:\001\177\002%\001\030\000l\000:\001\177\001\006\001\165\000.\002%\001\030\000l\000\016\001\006\001\165\000.\001\"\001o\001\139\001i\001O\001\239\001\026\001\023\001\026\001\021\001\024\001\021\001\225\000E\002\025\000E\000l\000\127\000.\000E\000;\002\025\000;\000l\000\127\000.\000;\000\188\001\249\002\025\000\188\001\249\000l\000\127\000.\000\188\001\249\001A\000\240\001\223\000:\001\177\000\016\000l\000:\001\177\001\006\001\165\000.\000l\000\016\001\006\001\165\000.\000_\000_\000\240\002\023\000\193\000\138\002\023\002\021\0002\001\255\000\204\001o\002\011\001\133\000\172\002\017\000t\000P\001o\001?\000\172\002\017\000t\000P\001\020\001o\001?\000\172\002\017\002\017\002\019\001\255\000\153\001\217\000\158\001o\002\017\000\249\001i\000\158\001\020\001o\002\017\000\249\001i\000\012\000-\001i\000h\001U\001i\000\248\001o\001\233\001i\000\156\001o\000s\001i\001\167\001i\001\209\000\218\002\017\001\006\001\253\000\218\002\017\001\145\002\r\001\145\000b\002\017\001\145\002\011\001G\000l\000\201\000.\000l\000\201\001\006\001\227\000.\000l\001\227\000.\000\158\001o\002\001\001i\000\012\001o\001!\000p\001\006\001\227\001i\000h\001o\000\181\000p\001\006\000\191\001i\000\248\001o\001\233\001i\001\167\001i\001\209\001\249\000\140\000\137\0002\001\249\001\217\000V\001o\002\005\001c\000\224\002\001\002\019\000t\000P\001o\001?\000\172\002\001\000t\000P\001\020\001o\001?\000\172\002\001\000l\002\017\000.\002\t\000\140\000\137\0002\002\t\000l\002\017\001\006\001\253\000.\000V\001o\002\007\001a\000\224\002\001\000\229\000K\000b\001\253\000p\001\006\000K\000b\001\253\000K\000b\001\253\001\b\000\020\001\219\001o\000'\001\207\000p\000\218\002\001\001i\001u\001S\000\206\000\143\000\b\001\201\000\b\000\202\001\219\001o\000\147\001o\000\201\001\243\001o\000n\000\201\000\172\001\201\001o\000n\000\201\000\172\000\202\001\219\001o\000\147\001o\000\014\000\201\000\172\001\201\001o\000\014\000\201\000\172\000\202\001\219\001o\000\147\001o\000R\000\201\000\172\001\201\001o\000R\000\201\000\172\000\202\001\219\001o\000\147\000\218\001\201\001\221\001\201\000\218\001\201\001\221\000\202\001\219\001o\000\147\000\218\000\202\001\219\001o\000\147\001\221\001\201\000\218\000\202\001\219\001o\000\147\001\221\000\202\001\219\001o\000\147\000\172\001\201\000\172\000\202\001\219\001o\000\147\000+\0007\000\140\0002\000l\000.\000\210\000\024\000\018\000l\001\004\000.\001\239\001?\001?\000\240\000l\001\004\000.\000l\001\004\000.\001\239\001\227\000\218\001\227\002\025\000\233\000\198\002\025\000\233\000\131\000$\002\025\000\233\000\131\000$\000\198\002\025\000\233\000\144\001\153\0004\001\018\000\173\002%\001\227\002\019\001\011\001\211\001\223\000l\001\227\000.\000l\000^\001\219\001o\001-\000.\000\140\000Q\0002\000\140\001\018\000\139\0002\000\140\000}\001\018\000\139\0002\000\128\001\001\000\139\0002\000\128\0002\000~\001\001\000\139\0002\000~\001\001\000\139\000\196\000\151\0002\000\184\002\025\000$\000\129\000.\000\184\000p\001\006\002\025\000$\000\129\000.\000\026\000\228\000H\002\023\000|\002\023\000\193\0002\0008\001\018\001\237\000\218\001\235\001o\001\237\000\218\001\235\001o\001\217\000\134\002\023\002\021\0002\000\140\000\133\0002\000\204\001\219\001o\001\197\000\231\000b\001\203\000\202\001\219\001o\000\147\001\195\000e\000t\000^\001\219\001o\0011\001=\000\172\000s\000t\000\216\001\219\001o\001\237\001\187\001o\000\172\000s\000t\000P\001\219\001o\0017\000\172\000s\000t\000P\001\020\001\219\001o\0017\000\172\000s\000j\001\219\001o\000s\000\004\000\147\000\022\001\219\001o\000s\000\004\000\147\000J\001\219\001o\000s\000\004\001\201\000J\001\219\001o\000s\000\004\000\202\001\219\001o\000\147\000\174\001\219\001o\000s\000\030\001\201\000\226\001\201\000\174\001\219\001o\000s\000\030\001\201\000\226\000\202\001\219\001o\000\147\000\174\001\219\001o\000s\000\030\000\202\001\219\001o\000\147\000\226\001\201\000\174\001\219\001o\000s\000\030\000\202\001\219\001o\000\147\000\226\000\202\001\219\001o\000\147\000\174\001\219\001o\000s\000\030\001\201\000\174\001\219\001o\000s\000\030\000\202\001\219\001o\000\147\000\006\001\219\001o\000s\000\246\000s\000\242\000\206\001\219\001o\000\201\000\218\000s\001\221\000s\000\246\000s\000\242\001\028\001\219\001o\000e\000\146\001\219\001o\000e\000S\001\201\000S\000\202\001\219\001o\000\147\002'\001\201\002'\000\202\001\219\001o\000\147\001\205\000e\000\153\000&\000e\000&\001\205\000&\000\202\001\219\001o\000\147\000\167\001\235\000e\000&\001\235\000e\001\031\000e\001\201\000\168\001\201\001\201\000\168\000\202\001\219\001o\000\147\001\201\001\026\001\201\001\201\001\026\000\202\001\219\001o\000\147\001\201\001\024\001\201\001\201\001\024\000\202\001\219\001o\000\147\001\201\000\166\001\201\001\201\000\166\000\202\001\219\001o\000\147\001\201\000\164\001\201\001\201\000\164\000\202\001\219\001o\000\147\001\201\000\162\001\201\001\201\000\162\000\202\001\219\001o\000\147\001\201\000`\001\201\001\201\000`\000\202\001\219\001o\000\147\001\201\000\160\001\201\001\201\000\160\000\202\001\219\001o\000\147\001\201\000F\001\201\001\201\000F\000\202\001\219\001o\000\147\001\201\000D\001\201\001\201\000D\000\202\001\219\001o\000\147\001\201\000B\001\201\001\201\000B\000\202\001\219\001o\000\147\001\201\000f\001\201\001\201\000f\000\202\001\219\001o\000\147\001\201\000d\001\201\001\201\000d\000\202\001\219\001o\000\147\001\201\000$\001\201\001\201\000$\000\202\001\219\001o\000\147\001\201\000H\001\201\001\201\000H\000\202\001\219\001o\000\147\001\201\000\218\001\201\001\201\000\218\000\202\001\219\001o\000\147\001\201\000x\001\201\001\201\000x\000\202\001\219\001o\000\147\001\201\000\196\001\201\001\201\000\196\000\202\001\219\001o\000\147\001\201\000L\001\201\001\201\000L\000\202\001\219\001o\000\147\001\201\001\016\001\201\001\201\001\016\000\202\001\219\001o\000\147\001\201\001$\001\201\001\201\001$\000\202\001\219\001o\000\147\001\201\001&\001\201\001\201\001&\000\202\001\219\001o\000\147\001\201\001\002\001\201\001\201\001\002\000\202\001\219\001o\000\147\001\135\000\172\000s\000r\001{\000\172\000s\001\201\001\004\001\201\001\201\001\004\000\202\001\219\001o\000\147\000p\000v\001\201\000p\000v\000\202\001\219\001o\000\147\000e\000\240\001\149\000v\001\201\000e\000\240\001\149\000v\000\202\001\219\001o\000\147\000e\000\240\000l\000s\000.\000v\001\201\000e\000\240\000l\000s\000.\000v\000\202\001\219\001o\000\147\000e\000\240\000\144\000s\0004\000v\001\201\000e\000\240\000\144\000s\0004\000v\000\202\001\219\001o\000\147\000e\000\240\000\140\000s\0002\000v\001\201\000e\000\240\000\140\000s\0002\000v\000\202\001\219\001o\000\147\000e\000\232\000l\000{\000.\000v\001\201\000e\000\232\000l\000{\000.\000v\000\202\001\219\001o\000\147\000e\000\240\001?\000\232\000l\000{\000.\000v\001\201\000e\000\240\001?\000\232\000l\000{\000.\000v\000\202\001\219\001o\000\147\000e\000\232\000\144\000{\0004\000v\001\201\000e\000\232\000\144\000{\0004\000v\000\202\001\219\001o\000\147\000e\000\240\001?\000\232\000\144\000{\0004\000v\001\201\000e\000\240\001?\000\232\000\144\000{\0004\000v\000\202\001\219\001o\000\147\000e\000\232\000\140\000{\0002\000v\001\201\000e\000\232\000\140\000{\0002\000v\000\202\001\219\001o\000\147\000e\000\240\001?\000\232\000\140\000{\0002\000v\001\201\000e\000\240\001?\000\232\000\140\000{\0002\000v\000\202\001\219\001o\000\147\001\201\002\019\000n\000s\000\014\000s\000R\000s\000\214\000s\000l\000\020\001\027\000.\000l\000\020\000p\001\006\001\165\000.\001\145\000\159\001\201\001\201\000,\001\201\000,\000s\001\201\000,\000H\002\023\000s\000K\000Y\000l\000.\000l\0015\001\006\001-\000.\000l\0015\001\006\001-\002\027\000.\000\155\000T\001\231\001\006\001\231\000b\002\025\001\006\000\149\000\240\001\231\000b\002\025\001\006\002\025\001\006\000\149\000\240\002\025\001\018\001\237\001\187\001o\001\237\001\187\001o\000\020\001\219\001o\000A\000p\000\251\001\002\001\r\000\161\001i\000\020\001\219\001o\000X\000A\000p\000\251\001\002\001\r\000\161\001i\000\020\001\219\001o\000A\000p\000\251\000G\000\161\001i\000\020\001\219\001o\000X\000A\000p\000\251\000G\000\161\001i\000\018\000p\000W\000\222\000\170\000\170\000\200\000,\000\238\000o\000\222\000z\002\023\000\193\0002\0006\001\161\001\006\001\165\001\165\000`\001\025\001\165\000\004\001\227\000\233\001\177\000\150\001\227\000\016\000\175\000l\001\161\000.\000\152\000p\000\218\001\165\001#\000p\001\006\000\189\000\233\001o\001#\000p\001\006\000\189\000\233\001o\000,\001o\001\157\001\155\001\155\001\153\000p\000p\002\029\000p\001\006\001\227\000p\001\006\001\227\002\027\000p\001\006\000\149\000\240\001\227\000p\001\006\000\149\000\240\001\227\002\027\001G\000e\000\148\000e\000\028\000p\000\028\000l\000p\000I\000.\000<\000p\000N\000e\000<\000l\001\151\000\239\000.\000<\000l\001\019\001\151\000\239\000.\000<\000p\000N\000l\001\131\000\239\000.\000N\000l\001\019\001\131\000\239\000.\000N\000\195\000\028\000l\001\151\000.\000\028\000l\001\019\001\151\000.\000\028\000p\000\148\000c\000\148\000l\001\127\000.\000\148\000l\001\019\001\127\000.\000\148\000l\001\019\000\201\000.\000c\000l\001\019\001\129\000.\000l\001\127\000.\000l\001\019\001\127\000.\000\148\000l\000\201\001\006\000\149\000\240\001\227\000.\000\148\000l\001\019\000\201\001\006\000\149\000\240\001\227\000.\000l\000\201\001\006\000\149\000\240\001\227\000.\001\143\000\252\000\201\001\143\000\252\000\148\000c\001\143\000\252\000\028\000p\001\143\000\252\000\028\000l\000p\001\006\001\227\000.\000\201\000\252\000\201\000\201\000\252\000\148\000c\000\201\000\252\000\028\000p\000\201\000\252\000\028\000l\000p\001\006\001\227\000.\000\148\000c\000\252\000\201\000\148\000c\000\252\000\148\000c\000\148\000c\000\252\000\028\000p\000\148\000c\000\252\000\028\000l\000p\001\006\001\227\000.\000\028\000p\000\252\000\201\000\028\000p\000\252\000\148\000c\000\028\000p\000\252\000\028\000p\000\028\000p\000\252\000\028\000l\000p\001\006\001\227\000.\000\028\000l\000p\001\006\001\227\000.\000\252\000\201\000\028\000l\000p\001\006\001\227\000.\000\252\000\148\000c\000\028\000l\000p\001\006\001\227\000.\000\252\000\028\000p\000\028\000l\000p\001\006\001\227\000.\000\252\000\028\000l\000p\001\006\001\227\000.\001\141\000\252\000\197\001\141\000\252\000\148\000c\001\141\000\252\000\028\000p\001\141\000\252\000\028\000l\000p\001\006\001\227\000.\000\197\000\252\000\197\000\197\000\252\000\148\000c\000\197\000\252\000\028\000p\000\197\000\252\000\028\000l\000p\001\006\001\227\000.\000\148\000c\000\252\000\197\000\148\000c\000\252\000\148\000c\000\148\000c\000\252\000\028\000p\000\148\000c\000\252\000\028\000l\000p\001\006\001\227\000.\000\028\000p\000\252\000\197\000\028\000p\000\252\000\148\000c\000\028\000p\000\252\000\028\000p\000\028\000p\000\252\000\028\000l\000p\001\006\001\227\000.\000\028\000l\000p\001\006\001\227\000.\000\252\000\197\000\028\000l\000p\001\006\001\227\000.\000\252\000\148\000c\000\028\000l\000p\001\006\001\227\000.\000\252\000\028\000p\000\028\000l\000p\001\006\001\227\000.\000\252\000\028\000l\000p\001\006\001\227\000.\001\137\0001\0001\000[\0001\000I\000\218\000s\0001\000I\002\027\000\218\000s\0001\002\029\000\218\000s\001\019\0001\000I\000\218\000s\001\019\0001\000I\002\027\000\218\000s\001\019\0001\002\029\000\218\000s\0001\001\006\000\149\000\240\001\227\000\218\000s\0001\001\006\000\149\000\240\001\227\002\027\000\218\000s\001\019\0001\001\006\000\149\000\240\001\227\000\218\000s\001\019\0001\001\006\000\149\000\240\001\227\002\027\000\218\000s\0001\001\006\000\020\001\027\000\240\001\227\000\218\000s\0001\001\006\000\020\001\027\000\240\001\227\002\027\000\218\000s\000\197\000\218\000s\000a\002\029\000\218\000s\000a\001\006\001\227\000\218\000s\000a\001\006\001\227\002\027\000\218\000s\001\019\0001\000[\000l\0001\002\029\000.\000[\000t\001\219\001o\000\179\001\139\001i\001\135\002#\000t\001o\000\179\001\139\001i\000t\000H\002\023\001o\000\179\001\139\001i\001\133\002#\000\201\000\201\002\029\000\201\001\006\001\227\000\201\001\006\001\227\002\027\000\201\001\006\000\149\000\240\001\227\000\201\001\006\000\149\000\240\001\227\002\027\000l\001\127\000.\000\201\000\201\001\006\001\227\000\201\001\006\000\149\000\240\001\227\000\201\002\029\000\201\001\006\001\227\002\027\000\201\001\006\000\149\000\240\001\227\002\027\000l\001\127\000.\0001\000[\0001\000c\001\006\001\227\000\218\000s\000\197\000\218\000s\001}\001{\001 \001}\001\"\001o\000'\001\207\000p\002\r\001i\001y\001\"\001o\000'\001\207\000p\001\006\001\253\001i\001w\001\"\001o\000'\001\207\000p\000\218\002\001\001i\001u\001\"\001o\0011\001=\001i\001s\001\"\001o\0015\001\006\001-\000\233\001i\001q\002\019\001o\001\"\001o\000A\000p\000\251\000G\000\161\001i\001m\001\"\001o\000A\000p\000\251\001\002\001\r\000\161\001i\001k\000\187\001i\000*\001g\000m\001g\000*\001e\000*\000s\001i\001e\000U\001e\002\003\001c\002\015\001a\000U\001_\000*\001]\000*\000s\001i\001]\000U\001]\000O\001]\001\149\000\247\000\241\001\149\000\247\000\241\000,\001\149\000\247\000\241\000,\000\016\000\255\001\149\000\247\000\241\000,\001[\000\201\000b\000s\000\201\000\b\000s\000b\000s\000\201\000b\000\240\000p\001\006\000\189\001o\000,\001o\001W\002\025\000,\001W\000p\001\006\000\189\001o\000,\001o\002\025\000,\000p\001\006\000\189\001o\002\025\000\238\001o\000#\000p\001\006\000\191\001o\000\183\000p\000[\001\020\001o\000\183\000p\000[\001o\000\183\000p\001\006\000\191\000\218\000s\001\020\001o\000\183\000p\001\006\000\191\000\218\000s\001o\000\183\000p\001\006\000\020\001\027\000\240\001\227\000\218\000s\001\020\001o\000\183\000p\001\006\000\020\001\027\000\240\001\227\000\218\000s\000p\001A\000\240\000p\000\018\001A\000\240\000\018\001\177\000l\001\004\000.\0003\001A\000\240\001\177\001A\000\240\000l\001\004\000.\001A\000\240\0003\001\177\001A\000\240\001\177\000?\001A\000\240\000?\000=\001A\000\240\000=\000p\001?\000\240\000p\000\018\001?\000\240\000\018\0001\001?\000\240\0001\001Q\001A\000l\001A\000.\001E\000\218\0017\001\006\001-\000\218\0017\001\006\001-\002\027\000\218\0017\002\029\000\218\0017\001\191\001=\001\006\001-\000\233\001\191\0019\001\006\001-\001\006\001-\002\027\001\191\0019\000 \001o\000W\000\224\000\200\001o\001\189\000b\0017\000\227\0017\002\019\001?\0017\000\227\0017\000l\000.\001\217\000\016\000\018\000\016\0015\000l\0015\002\031\000.\0015\000l\0015\002\029\000.\000^\001\219\001o\000\018\001\002\001A\001i\000(\001o\000o\000\224\000\200\001o\001\189\000b\001-\000\200\001o\001\189\000b\001-\002\029\000^\000\020\000T\001o\0017\000l\001-\000.\001-\002\019\001'\000l\000.\000b\001-\000l\000.\000b\001-\002\029\001-\000b\001-\001-\000b\001-\002\029\001-\002\029\000b\001-\001-\002\029\000b\001-\002\029\001-\000\004\000\141\001\217\001-\000\004\001A\000^\000\020\001\219\001o\001\177\000\243\001i\000^\000\020\001\219\001o\001\177\001\002\001-\001i\001M\000\\\000\\\000\198\000\\\000\n\000\\\000\n\000\n\000\\\001\022\001\177\000p\000l\000p\001\006\001\165\000.\001\017\000p\000p\001\025\000p\000p\001\023\000p\000p\001\021\000n\000\014\000R\000n\001\019\000\014\001\019\000R\001\019\001\029\001\029\001\017\000\"\000\"\001\015\001\227\000>\001\227\001\229\000>\001\229\001\227\000\218\001\229\001\227\000\218\000>\001\229\000\238\000>\000\238\001\227\000\218\000\238\001\227\000\218\000>\000\238\000\144\001\153\0004\000>\000\144\001\153\0004\001\227\000\218\000\144\001\153\0004\001\227\000\218\000>\000\144\001\153\0004\000\186\001\153\0004\000>\000\186\001\153\0004\001\227\000\218\000\186\001\153\0004\001\227\000\218\000>\000\186\001\153\0004\000x\001W\000\196\000x\000\196\000P\001\219\001o\0017\001i\000P\001\020\001\219\001o\0017\001i\000P\001\219\001o\001A\001i\000P\001\020\001\219\001o\001A\001i\000@\000r\001 \000\232\000l\001\171\000.\000\232\000l\001\171\000.\000v\000\232\000\140\001\171\0002\000\232\000\140\001\171\0002\000v\000\232\000\144\001\171\0004\000\232\000\144\001\171\0004\000v\000\182\001\020\000\168\001\026\001\024\000\166\000\164\000\162\000`\000\160\000F\000D\000B\000f\000d\000$\000H\000\218\000x\000\196\000L\001\016\001$\001&\001\002\001$\001\018\000,\000I\000I\002\027\002\029\001\163\001\030\000p\001\006\001\227\000\218\001\201\000\218\000\202\001\219\001o\000\147\000\218\001-\000\218\000\201\000\218\000s\000I\001\026\001\023\001\024\001\023\001\006\002\025\001\006\002\025\002\027\002\029\000N\000<\000p\001\006\000l\0017\001\006\001-\000.\000l\0017\001\006\001-\002\027\000.\000l\0017\002\029\000.\000l\0017\000.\000l\000\012\001o\001\201\000.\000l\000\012\001o\000\202\001\219\001o\000\147\000.\000l\000\012\001o\001\201\001\006\001-\000.\000l\000\012\001o\000\202\001\219\001o\000\147\001\006\001-\000.\000l\000\012\001o\001\201\001\006\001-\001\000\001-\000.\000l\000\012\001o\000\202\001\219\001o\000\147\001\006\001-\001\000\001-\000.\000l\000\012\001o\001\201\001\000\001-\000.\000l\000\012\001o\000\202\001\219\001o\000\147\001\000\001-\000.\000C\0009\000:\001\177\001o\001\006\001\165\0009\000\016\001o\001\006\001\165\002!\000\222\001\235\000\222\001\227\000\222\000s\000\222\001A\000\222\001?\000\222\0017\000\222\001-\000\222\001'\000\222\000\201\000\222\000/\000\222\000\201\001\004\000\201\000\201\002\019\000\199\000\201\001\030\0001\000\201\001\018\000\201\000\165\000\216\001\219\001o\000\201\000c\001\235\000\201\001\235\000l\000\020\001\025\000.\000c\001\031\000\201\000\146\001\219\001o\000c\000\197\001\004\000\201\000\197\002\019\000\199\000\197\001\030\0001\000\197\001\018\000\201\000\163\000p\000\016\000W\001\006\000o\001\006\001\227\000<\000\201\000<\000\201\000\b\000s\001\227\000\149\000\240\001\227\002%\000\149\000\240\002%\000\136\002\023\002\021\0002\000\212\001\219\001o\0001\001\006\000\191\000\233\000\218\001\015\001i\000>\000>\000\n\000>\000\n\000\n\000>\0000\000u\000e\000\004\000u\001\165\001$\001\165\000\175\001$\001\165\001\183\001\185\000\173\001\185\001\183\001\213\001\185\001\215\000\171\001\185\000\171\001\215\001\183\001\185\000\169\001\185\000\167\000\252\001\201\000\167\000\252\000\202\001\219\001o\000\147\000\167\000\252\000\148\000e\000\167\000\252\000\028\000p\000\167\000\252\000\028\000l\000p\000I\000.\001\201\000\252\001\201\001\201\000\252\000\202\001\219\001o\000\147\001\201\000\252\000\148\000e\001\201\000\252\000\028\000p\001\201\000\252\000\028\000l\000p\000I\000.\000\202\001\219\001o\000\147\000\252\001\201\000\202\001\219\001o\000\147\000\252\000\202\001\219\001o\000\147\000\202\001\219\001o\000\147\000\252\000\148\000e\000\202\001\219\001o\000\147\000\252\000\028\000p\000\202\001\219\001o\000\147\000\252\000\028\000l\000p\000I\000.\000\148\000e\000\252\001\201\000\148\000e\000\252\000\202\001\219\001o\000\147\000\148\000e\000\252\000\148\000e\000\148\000e\000\252\000\028\000p\000\148\000e\000\252\000\028\000l\000p\000I\000.\000\028\000p\000\252\001\201\000\028\000p\000\252\000\202\001\219\001o\000\147\000\028\000p\000\252\000\148\000e\000\028\000p\000\252\000\028\000p\000\028\000p\000\252\000\028\000l\000p\000I\000.\000\028\000l\000p\000I\000.\000\252\001\201\000\028\000l\000p\000I\000.\000\252\000\202\001\219\001o\000\147\000\028\000l\000p\000I\000.\000\252\000\148\000e\000\028\000l\000p\000I\000.\000\252\000\028\000p\000\028\000l\000p\000I\000.\000\252\000\028\000l\000p\000I\000.\001\143\001\143\000\252\000\238\000\201\000\252\000\238\000\148\000c\000\252\000\238\000\028\000p\000\252\000\238\000\028\000l\000p\001\006\001\227\000.\000\252\000\238\001\141\001\141\000\252\000\238\000\197\000\252\000\238\000\148\000c\000\252\000\238\000\028\000p\000\252\000\238\000\028\000l\000p\001\006\001\227\000.\000\252\000\238\000\161\000\248\001\227\000\218\001\227\001\199\000\159\001\199\001\247\000\157\001\247\001\191\000\155\001\191\001\147\000\153\001\147\001\031\000\151\001\031\000:\001\177\000l\000:\001\177\001\006\001\165\000.\000\149\000:\001\177\000\149\000l\000:\001\177\001\006\001\165\000.\001Y\001\018\001Y\000\147\001\018\001Y\002%\000\145\001$\002%\001\245\000\143\001\"\001\245\000!\000\141\001\"\000!\000}\000\139\001\018\000}\001\227\000\137\000\252\001\227\000\225\000\135\000\252\000\225\000C\000\133\000\252\000C\002\025\000\233\000\198\002\025\000\233\000\131\000$\002\025\000\233\000\131\000$\000\198\002\025\000\233\002\025\000p\001\006\002\025\000\129\000$\002\025\000\129\000$\000p\001\006\002\025\000\127\000\252\001\227\000\127\000\252\000:\001\177\001\006\001\165\000\127\000\252\000\016\001\006\001\165\001\227\000\252\001\227\001\227\000\252\000:\001\177\001\006\001\165\001\227\000\252\000\016\001\006\001\165\000:\001\177\001\006\001\165\000\252\001\227\000:\001\177\001\006\001\165\000\252\000:\001\177\001\006\001\165\000:\001\177\001\006\001\165\000\252\000\016\001\006\001\165\000\016\001\006\001\165\000\252\001\227\000\016\001\006\001\165\000\252\000:\001\177\001\006\001\165\000\016\001\006\001\165\000\252\000\016\001\006\001\165\000Q\001\227\001\201\001\201\000,\000\202\001\219\001o\000\147\000\202\001\219\001o\000\147\000,\001\201\000,\000{\000\202\001\219\001o\000\147\000,\000{\000p\000\245\000p\000\245\000,\000p\000\245\000,\000y\000\201\000\201\000,\000\201\000,\000w\001\149\000\237\000\245\001\149\000\237\000\245\000,\001\149\000\237\000\245\000,\000u\001\195\000\202\001\219\001o\000\147\000\216\001\219\001o\001\237\001\187\001o\001i\000\233\001g\001\167\001i\001\209\001\159\000)\000\185\001\179\001m\001\181\001k\000\020\001\219\001o\000A\000E\000B\000\183\000\169\001i\000\020\001\219\001o\000X\000A\000E\000B\000\183\000\169\001i\000q\000^\001\219\001o\0013\001;\001i\000^\001\219\001o\0013\000\218\001?\000\235\001i\001/\000^\001\219\001o\0000\0015\001\006\001-\000\233\001i\001q\001+\001)\001\007\001\b\001\219\001o\000'\001\207\000p\001\006\001\253\001i\001w\001\251\001\173\001\219\001o\001-\001i\000\233\000i\0007\000f\000\178\000f\000\180\000F\000\178\000F\000\180\000+\000f\000\154\000f\000\208\000F\000\154\000F\000\208\000\144\001[\0004\000\186\001[\0004\000\140\000w\0002\000\132\000w\001\014\000\132\001\014\000\130\000w\000\254\000\130\000\254\000\184\000\165\000.\000\234\001\201\000\194\000\234\000\202\001\219\001o\000\147\000\194\000\230\000e\000l\000s\000.\000l\000s\000I\000.\000l\000s\000I\002\027\000.\000e\000\240\000l\000s\000.\000e\000\240\000\144\000s\0004\000e\000\240\000\140\000s\0002\000e\000\232\000l\000{\000.\000e\000\240\001?\000\232\000l\000{\000.\000e\000\232\000\144\000{\0004\000e\000\240\001?\000\232\000\144\000{\0004\000e\000\232\000\140\000{\0002\000e\000\240\001?\000\232\000\140\000{\0002\001\012\001\219\001o\000s\000\224\001\012\001\219\001o\000\224\000Z\001\219\001o\002\t\000l\000^\001\219\001o\0017\000.\000l\000^\001\219\001o\0017\001\006\001-\000.\000V\001\219\001o\002\007\001a\000\224\000/\001\235\001\031\000@\000e\001\020\000e\000\142\000y\000\192\000\142\000\192\000e\000\240\001\149\000e\000\236\001\149\001?\000\240\000l\000s\000.\001?\000\240\000\142\000y\000\192\000e\000\188\000p\000e\000\176\000p\000e\000\182\000e\001\217\000\016\001?\000\240\000l\000.\000\144\000\177\0004\000\186\000\177\0004\001?\000\240\000\144\000\177\0004\000\132\000{\001\014\000\132\001\014\001?\000\240\000\132\000{\001\014\001?\000\240\000\132\001\014\000\140\000{\0002\001?\000\240\000\140\001\201\000\157\0002\001?\000\240\000\140\000\202\001\219\001o\000\147\000\157\0002\001?\000\240\000\132\001\201\000\157\001\014\001?\000\240\000\132\000\202\001\219\001o\000\147\000\157\001\014\001?\000\240\000\130\001\201\000\157\000\254\001?\000\240\000\130\000\202\001\219\001o\000\147\000\157\000\254\001?\000\240\000\140\000{\0002\001?\000\240\000\140\0002\001?\000\240\000l\000^\001\219\001o\0017\001\006\001-\000.\000\184\000\167\000.\000\130\000{\000\254\000\130\000\254\001?\000\240\000\130\000{\000\254\001?\000\240\000\130\000\254\001\241\000\140\001\201\000\157\0002\000\140\000\202\001\219\001o\000\147\000\157\0002\000\132\001\201\000\157\001\014\000\132\000\202\001\219\001o\000\147\000\157\001\014\000\130\001\201\000\157\000\254\000\130\000\202\001\219\001o\000\147\000\157\000\254\0001\000a\000l\000\201\000.\000g\000l\000^\001\219\001o\0015\000.\000l\000^\001\219\001o\0015\001\006\001-\000.\000\016\000i\000\238\000i\001\235\001\031\000\188\000E\000\176\000E\001?\000\240\000g\001?\000\240\000\140\0002\001?\000\240\000l\000.\001?\000\240\000l\000\201\000.\001\217\000l\000\201\001\006\001\227\000.\000k\000p\000\018\001\"\001\030\001\028\001\012\001\b\000\248\000\246\000\242\000\228\000\226\000\224\000\216\000\212\000\210\000\206\000\204\000\202\000\200\000\174\000\172\000\170\000\158\000\156\000\146\000t\000n\000j\000h\000^\000\\\000Z\000X\000V\000T\000P\000L\000>\0000\000(\000 \000\030\000\026\000\024\000\022\000\020\000\012\000\n\000\b\000\006\000\004\000q\000\216\001\219\001o\001\237\000\218\001\235\001o\001i\000\218\000s\001\197\000\253\000\218\001\203\000\229\000l\000\149\000\240\001\227\000.\000b\000Y\000\229\000l\000\149\000\240\001\227\000.\002\029\000b\000Y\000\229\000K\000b\000Y\000\229\000K\002\029\000b\000Y\000\229\001\019\000l\000\149\000\240\001\227\000.\000b\000Y\000\229\001\019\000l\000\149\000\240\001\227\000.\002\029\000b\000Y\000\229\001\019\000K\000b\000Y\000\229\001\019\000K\002\029\000b\000Y\000p\001\006\000l\000\149\000\240\001\227\000.\000b\000Y\000p\001\006\000l\000\149\000\240\001\227\000.\002\029\000b\000Y\000p\001\006\000K\000b\000Y\000p\001\006\000K\002\029\000b\000Y\000p\001\006\001\019\000l\000\149\000\240\001\227\000.\000b\000Y\000p\001\006\001\019\000l\000\149\000\240\001\227\000.\002\029\000b\000Y\000p\001\006\001\019\000K\000b\000Y\000p\001\006\001\019\000K\002\029\000b\000Y\000l\000\149\000\240\001\227\000.\000b\000Y\000l\000\149\000\240\001\227\000.\002\029\000b\000Y\000K\000b\000Y\000K\002\029\000b\000Y\001\019\000l\000\149\000\240\001\227\000.\000b\000Y\001\019\000l\000\149\000\240\001\227\000.\002\029\000b\000Y\001\019\000K\000b\000Y\001\019\000K\002\029\000b\000Y\000\229\000l\000\149\000\240\001\227\000.\000b\000K\000\229\000l\000\149\000\240\001\227\000.\000b\000K\002\029\000\229\000l\000\149\000\240\001\227\000.\000b\001\019\000K\000\229\000l\000\149\000\240\001\227\000.\000b\001\019\000K\002\029\000\229\000l\000\149\000\240\001\227\000.\002\029\000b\000K\000\229\000l\000\149\000\240\001\227\000.\002\029\000b\000K\002\029\000\229\000l\000\149\000\240\001\227\000.\002\029\000b\001\019\000K\000\229\000l\000\149\000\240\001\227\000.\002\029\000b\001\019\000K\002\029\000\229\000K\000b\000K\000\229\000K\000b\000K\002\029\000\229\000K\000b\001\019\000K\000\229\000K\000b\001\019\000K\002\029\000\229\000K\002\029\000b\000K\000\229\000K\002\029\000b\000K\002\029\000\229\000K\002\029\000b\001\019\000K\000\229\000K\002\029\000b\001\019\000K\002\029\000\229\001\019\000l\000\149\000\240\001\227\000.\000b\000K\000\229\001\019\000l\000\149\000\240\001\227\000.\000b\000K\002\029\000\229\001\019\000l\000\149\000\240\001\227\000.\000b\001\019\000K\000\229\001\019\000l\000\149\000\240\001\227\000.\000b\001\019\000K\002\029\000\229\001\019\000l\000\149\000\240\001\227\000.\002\029\000b\000K\000\229\001\019\000l\000\149\000\240\001\227\000.\002\029\000b\000K\002\029\000\229\001\019\000l\000\149\000\240\001\227\000.\002\029\000b\001\019\000K\000\229\001\019\000l\000\149\000\240\001\227\000.\002\029\000b\001\019\000K\002\029\000\229\001\019\000K\000b\000K\000\229\001\019\000K\000b\000K\002\029\000\229\001\019\000K\000b\001\019\000K\000\229\001\019\000K\000b\001\019\000K\002\029\000\229\001\019\000K\002\029\000b\000K\000\229\001\019\000K\002\029\000b\000K\002\029\000\229\001\019\000K\002\029\000b\001\019\000K\000\229\001\019\000K\002\029\000b\001\019\000K\002\029\000p\001\006\000l\000\149\000\240\001\227\000.\000b\000K\000p\001\006\000l\000\149\000\240\001\227\000.\000b\000K\002\029\000p\001\006\000l\000\149\000\240\001\227\000.\000b\001\019\000K\000p\001\006\000l\000\149\000\240\001\227\000.\000b\001\019\000K\002\029\000p\001\006\000l\000\149\000\240\001\227\000.\002\029\000b\000K\000p\001\006\000l\000\149\000\240\001\227\000.\002\029\000b\000K\002\029\000p\001\006\000l\000\149\000\240\001\227\000.\002\029\000b\001\019\000K\000p\001\006\000l\000\149\000\240\001\227\000.\002\029\000b\001\019\000K\002\029\000p\001\006\000K\000b\000K\000p\001\006\000K\000b\000K\002\029\000p\001\006\000K\000b\001\019\000K\000p\001\006\000K\000b\001\019\000K\002\029\000p\001\006\000K\002\029\000b\000K\000p\001\006\000K\002\029\000b\000K\002\029\000p\001\006\000K\002\029\000b\001\019\000K\000p\001\006\000K\002\029\000b\001\019\000K\002\029\000p\001\006\001\019\000l\000\149\000\240\001\227\000.\000b\000K\000p\001\006\001\019\000l\000\149\000\240\001\227\000.\000b\000K\002\029\000p\001\006\001\019\000l\000\149\000\240\001\227\000.\000b\001\019\000K\000p\001\006\001\019\000l\000\149\000\240\001\227\000.\000b\001\019\000K\002\029\000p\001\006\001\019\000l\000\149\000\240\001\227\000.\002\029\000b\000K\000p\001\006\001\019\000l\000\149\000\240\001\227\000.\002\029\000b\000K\002\029\000p\001\006\001\019\000l\000\149\000\240\001\227\000.\002\029\000b\001\019\000K\000p\001\006\001\019\000l\000\149\000\240\001\227\000.\002\029\000b\001\019\000K\002\029\000p\001\006\001\019\000K\000b\000K\000p\001\006\001\019\000K\000b\000K\002\029\000p\001\006\001\019\000K\000b\001\019\000K\000p\001\006\001\019\000K\000b\001\019\000K\002\029\000p\001\006\001\019\000K\002\029\000b\000K\000p\001\006\001\019\000K\002\029\000b\000K\002\029\000p\001\006\001\019\000K\002\029\000b\001\019\000K\000p\001\006\001\019\000K\002\029\000b\001\019\000K\002\029\000l\000\149\000\240\001\227\000.\000b\000K\000l\000\149\000\240\001\227\000.\000b\000K\002\029\000l\000\149\000\240\001\227\000.\000b\001\019\000K\000l\000\149\000\240\001\227\000.\000b\001\019\000K\002\029\000l\000\149\000\240\001\227\000.\002\029\000b\000K\000l\000\149\000\240\001\227\000.\002\029\000b\000K\002\029\000l\000\149\000\240\001\227\000.\002\029\000b\001\019\000K\000l\000\149\000\240\001\227\000.\002\029\000b\001\019\000K\002\029\000K\000b\000K\000K\000b\000K\002\029\000K\000b\001\019\000K\000K\000b\001\019\000K\002\029\000K\002\029\000b\000K\000K\002\029\000b\000K\002\029\000K\002\029\000b\001\019\000K\000K\002\029\000b\001\019\000K\002\029\001\019\000l\000\149\000\240\001\227\000.\000b\000K\001\019\000l\000\149\000\240\001\227\000.\000b\000K\002\029\001\019\000l\000\149\000\240\001\227\000.\000b\001\019\000K\001\019\000l\000\149\000\240\001\227\000.\000b\001\019\000K\002\029\001\019\000l\000\149\000\240\001\227\000.\002\029\000b\000K\001\019\000l\000\149\000\240\001\227\000.\002\029\000b\000K\002\029\001\019\000l\000\149\000\240\001\227\000.\002\029\000b\001\019\000K\001\019\000l\000\149\000\240\001\227\000.\002\029\000b\001\019\000K\002\029\001\019\000K\000b\000K\001\019\000K\000b\000K\002\029\001\019\000K\000b\001\019\000K\001\019\000K\000b\001\019\000K\002\029\001\019\000K\002\029\000b\000K\001\019\000K\002\029\000b\000K\002\029\001\019\000K\002\029\000b\001\019\000K\001\019\000K\002\029\000b\001\019\000K\002\029\000p\001\006\002\025\000$\000\129\000b\000Y\000p\001\006\002\025\000$\000\129\002\029\000b\000Y\000p\001\006\001\019\002\025\000$\000\129\000b\000Y\000p\001\006\001\019\002\025\000$\000\129\002\029\000b\000Y\000p\001\006\002\025\000$\000\129\000b\000K\000p\001\006\002\025\000$\000\129\000b\000K\002\029\000p\001\006\002\025\000$\000\129\000b\001\019\000K\000p\001\006\002\025\000$\000\129\000b\001\019\000K\002\029\000p\001\006\002\025\000$\000\129\002\029\000b\000K\000p\001\006\002\025\000$\000\129\002\029\000b\000K\002\029\000p\001\006\002\025\000$\000\129\002\029\000b\001\019\000K\000p\001\006\002\025\000$\000\129\002\029\000b\001\019\000K\002\029\000p\001\006\001\019\002\025\000$\000\129\000b\000K\000p\001\006\001\019\002\025\000$\000\129\000b\000K\002\029\000p\001\006\001\019\002\025\000$\000\129\000b\001\019\000K\000p\001\006\001\019\002\025\000$\000\129\000b\001\019\000K\002\029\000p\001\006\001\019\002\025\000$\000\129\002\029\000b\000K\000p\001\006\001\019\002\025\000$\000\129\002\029\000b\000K\002\029\000p\001\006\001\019\002\025\000$\000\129\002\029\000b\001\019\000K\000p\001\006\001\019\002\025\000$\000\129\002\029\000b\001\019\000K\002\029\000p\001\006\002\025\000$\000\129\001e\000s\001i\001e\001\135\001\167\001i\001\209\001\159\000\185\000)\001\179\001m\000\020\001\219\001o\000A\000E\000B\000\183\000\171\001i\000\020\001\219\001o\000X\000A\000E\000B\000\183\000\171\001i\000]\000^\001\219\001o\0011\001=\001i\000^\001\219\001o\0000\0011\001=\001i\001s\001+\001\t\001\b\001\219\001o\000'\001\207\000p\002\r\001i\001y\001\251\001\173\001\219\001o\0017\001i\000f\000d\001\031\000T\001\003\000\145\001o\001\031\001o\000\188\001\177\000\188\001\177\000\"\000\188\001\177\000\154\000\188\001\177\000/\000\188\001\177\001?\000\188\001\177\000\210\000\188\001\177\000\024\000\176\001\177\000\176\001\177\000\"\000\176\001\177\000\154\000\176\001\177\000/\000\176\001\177\001?\000\176\001\177\000\210\000\176\001\177\000\024\000s\001i\000*\001_\000*\000O\000*\000\222\002\025\002\025\000$\000\129\001\006\001\227\001\006\001\227\001\000\001\227\001\000\001\227\000\218\001\r\001I\0009\000:\001\177\001o\0009\000\016\001o\000C\000l\000\135\000.\000p\000\176\000p\001K\000F\000f\001\020\000F\001\020\001\020\000F\000f\001\020\001\020\000f\000\164\000@\000\178\000\180\001]\000\222\000s\001i\001]\000\222\000l\001\005\000.\000p\0003\001C\001o\000%\000p\001\006\001\227\001o\001%\000p\000\218\000s\001\020\001o\001%\000p\000\218\000s\001o\001%\000p\000I\000\218\000s\001\020\001o\001%\000p\000I\000\218\000s\000\154\001\n\000\"\000\208\000\012\001\219\001o\0001\001\006\000\191\000\233\001i\000\n\000\n\000\\\000\n\000\n\000\\\000\n\000>\000\n\000\n\000>\000\020\000A\001\149\000\031\002%\000\161\000\020\000A\001\149\001\002\002%\000^\001?\000\218\001A\000^\001?\001\002\001A\000^\000\020\001'\000\218\001-\000^\000\020\001'\001\002\001-\000\218\000\218\000>"), (16, "\000\000\000\001\000\002\000\003\000\004\000\005\000\006\000\007\000\b\000\t\000\n\000\011\000\012\000\r\000\014\000\015\000\016\000\017\000\018\000\022\000\030\000%\000)\000*\000+\000-\000/\0001\0002\0003\0005\0009\000:\000<\000@\000B\000E\000J\000M\000O\000P\000V\000[\000\\\000_\000`\000d\000e\000h\000k\000q\000x\000z\000|\000}\000\130\000\136\000\139\000\142\000\146\000\150\000\152\000\153\000\155\000\159\000\161\000\164\000\166\000\167\000\170\000\175\000\175\000\178\000\178\000\182\000\189\000\196\000\200\000\202\000\203\000\204\000\208\000\209\000\214\000\216\000\222\000\229\000\232\000\233\000\237\000\242\000\247\000\248\000\252\001\001\001\004\001\015\001\016\001\018\001\020\001\025\001\028\001!\001)\001.\0016\001;\001C\001G\001N\001U\001_\001a\001f\001g\001h\001j\001l\001m\001n\001o\001r\001s\001t\001y\001|\001}\001\128\001\130\001\133\001\137\001\142\001\145\001\146\001\147\001\148\001\150\001\151\001\152\001\153\001\156\001\162\001\165\001\169\001\174\001\178\001\180\001\184\001\190\001\195\001\202\001\203\001\204\001\204\001\206\001\210\001\211\001\216\001\220\001\221\001\225\001\225\001\228\001\235\001\239\001\240\001\241\001\249\002\002\002\t\002\017\002\023\002\029\002#\002,\0024\002?\002J\002X\002^\002g\002n\002y\002}\002\129\002\131\002\136\002\138\002\143\002\144\002\146\002\148\002\150\002\155\002\156\002\158\002\161\002\163\002\166\002\172\002\175\002\181\002\184\002\190\002\193\002\199\002\202\002\208\002\211\002\217\002\220\002\226\002\229\002\235\002\238\002\244\002\247\002\253\003\000\003\006\003\t\003\015\003\018\003\024\003\027\003!\003$\003*\003-\0033\0036\003<\003?\003E\003H\003N\003Q\003W\003Z\003`\003c\003i\003l\003r\003u\003y\003|\003\130\003\133\003\139\003\144\003\152\003\159\003\169\003\176\003\186\003\193\003\203\003\210\003\220\003\229\003\241\003\248\004\002\004\011\004\023\004\030\004(\0041\004=\004?\004A\004C\004E\004G\004K\004Q\004R\004S\004T\004V\004Y\004^\004_\004`\004b\004g\004m\004n\004n\004p\004t\004z\004|\004\128\004\132\004\135\004\145\004\156\004\165\004\175\004\176\004\177\004\179\004\180\004\182\004\182\004\184\004\186\004\190\004\191\004\192\004\194\004\197\004\201\004\202\004\204\004\205\004\206\004\209\004\213\004\219\004\227\004\228\004\229\004\231\004\232\004\234\004\237\004\241\004\246\004\252\004\253\004\254\005\000\005\002\005\007\005\t\005\011\005\016\005\022\005\024\005\029\005#\005%\005)\005.\0050\0052\0056\005;\005@\005A\005E\005H\005L\005T\005]\005d\005g\005k\005o\005w\005z\005~\005\130\005\138\005\142\005\147\005\152\005\161\005\165\005\170\005\175\005\184\005\192\005\201\005\210\005\223\005\226\005\230\005\234\005\242\005\245\005\249\005\253\006\005\006\t\006\014\006\019\006\028\006 \006%\006*\0063\006;\006D\006M\006Z\006[\006\\\006^\006b\006g\006k\006p\006v\006{\006\130\006\138\006\146\006\155\006\163\006\172\006\175\006\179\006\184\006\190\006\193\006\198\006\204\006\206\006\211\006\218\006\220\006\221\006\223\006\226\006\230\006\235\006\241\006\244\006\245\006\248\006\253\006\255\007\003\007\t\007\012\007\014\007\015\007\020\007\023\007\024\007\027\007\027\007#\007#\007,\007,\0075\0075\007;\007;\007C\007C\007E\007E\007N\007N\007X\007X\007Z\007Z\007\\\007^\007^\007`\007d\007f\007f\007h\007h\007j\007j\007l\007l\007n\007r\007t\007v\007y\007}\007\131\007\136\007\139\007\144\007\147\007\154\007\157\007\163\007\165\007\169\007\170\007\171\007\176\007\180\007\185\007\192\007\200\007\210\007\221\007\222\007\225\007\226\007\229\007\230\007\233\007\234\007\237\007\242\007\245\007\246\007\249\007\250\007\253\007\254\b\001\b\002\b\005\b\006\b\t\b\n\b\r\b\014\b\018\b\019\b\021\b\025\b\030\b!\b#\b&\b(\b*\b-\b/\b3\b8\b9\b;\b<\b>\bA\bB\bC\bD\bE\bF\bJ\bK\bO\bV\bZ\b_\be\bj\bm\bo\bp\bt\by\b|\b\128\b\132\b\137\b\140\b\141\b\144\b\151\b\159\b\160\b\160\b\161\b\161\b\162\b\163\b\163\b\164\b\165\b\167\b\169\b\171\b\172\b\177\b\178\b\179\b\181\b\182\b\184\b\185\b\187\b\188\b\189\b\190\b\192\b\194\b\196\b\197\b\199\b\200\b\202\b\203\b\205\b\206\b\208\b\211\b\215\b\216\b\218\b\221\b\225\b\228\b\232\b\237\b\243\b\246\b\250\b\255\t\005\t\b\t\n\t\015\t\021\t\026\t \t!\t\"\t#\t'\t,\t0\t5\t9\t>\t?\t@\tA\tB\tC\tD\tE\tF\tG\tH\tI\tJ\tK\tL\tM\tN\tO\tP\tQ\tR\tS\tT\tU\tV\tW\tX\tX\tX\tY\tY\tZ\tZ\t[\t]\t^\t^\t_\t_\ta\ta\tc\tc\te\tj\tj\tl\tl\tn\tn\tp\tp\tq\tq\ts\ts\tu\tw\tz\t{\t{\t|\t\127\t\132\t\138\t\142\t\145\t\150\t\158\t\165\t\175\t\184\t\196\t\203\t\213\t\214\t\220\t\225\t\227\t\229\t\231\t\233\t\235\t\237\t\239\t\241\t\243\t\245\t\247\t\250\t\252\t\253\n\000\n\003\n\004\n\b\n\t\n\011\n\017\n\019\n\023\n\026\n\028\n\029\n \n#\n$\n%\n&\n'\n)\n+\n-\n1\n2\n5\n6\n9\n=\nG\nG\nH\nH\nI\nJ\nL\nN\nN\nO\nP\nS\nV\nY\nZ\n[\n]\n^\n_\n`\na\nc\ne\nf\ng\ni\nl\nr\nv\nz\n\129\n\132\n\138\n\142\n\146\n\153\n\159\n\168\n\175\n\182\n\192\n\196\n\203\n\208\n\213\n\221\n\225\n\232\n\237\n\242\n\250\011\001\011\011\011\019\011\027\011&\011'\011*\011-\0111\0115\011=\011>\011A\011D\011H\011L\011T\011T\011Y\011Z\011\\\011]\011_\011`\011b\011c\011e\011f\011h\011j\011p\011s\011z\011{\011}\011\128\011\129\011\132\011\133\011\136\011\137\011\140\011\141\011\144\011\145\011\148\011\149\011\152\011\153\011\156\011\158\011\161\011\165\011\170\011\171\011\174\011\177\011\182\011\185\011\191\011\196\011\199\011\205\011\210\011\216\011\225\011\233\011\238\011\246\011\253\011\254\011\255\012\000\012\002\012\006\012\011\012\014\012\020\012\022\012\025\012\029\012\030\012 \012#\012&\012*\012/\0120\0124\012;\012=\012?\012@\012A\012B\012C\012E\012G\012P\012Z\012[\012a\012i\012j\012t\012u\012v\012w\012\129\012\130\012\136\012\137\012\138\012\140\012\142\012\144\012\146\012\147\012\149\012\151\012\153\012\155\012\158\012\161\012\164\012\167\012\169\012\172\012\174\012\177\012\180\012\186\012\188\012\191\012\195\012\200\012\205\012\210\012\215\012\220\012\227\012\232\012\239\012\244\012\251\r\000\r\004\r\b\r\014\r\022\r\028\r\029\r\030\r\031\r!\r#\r&\r(\r+\r.\r3\r8\r;\r>\rA\rB\rC\rG\rJ\rM\rR\rU\rW\r\\\r`\rc\ri\rr\rx\r\129\r\135\r\144\r\149\r\153\r\163\r\166\r\169\r\171\r\176\r\180\r\181\r\185\r\192\r\196\r\203\r\207\r\214\r\215\r\216\r\219\r\220\r\226\r\234\r\235\r\238\r\239\r\240\r\242\r\244\r\247\r\251\r\255\014\004\014\005\014\n\014\011\014\012\014\r\014\014\014\015\014\016\014\017\014\018\014\019\014\020\014\021\014\022\014\023\014\024\014\025\014\026\014\027\014\028\014\029\014\030\014\031\014 \014!\014\"\014#\014$\014%\014&\014'\014(\014)\014*\014+\014,\014-\014.\014/\0140\0141\0142\0143\0144\0145\0146\0147\0148\0149\014:\014;\014<\014=\014>\014?\014@\014H\014J\014N\014V\014_\014c\014h\014q\014{\014\128\014\134\014\143\014\153\014\158\014\164\014\174\014\185\014\191\014\198\014\205\014\213\014\216\014\220\014\228\014\237\014\241\014\246\014\254\015\007\015\016\015\026\015#\015-\0157\015B\015F\015K\015P\015V\015[\015a\015g\015n\015w\015\129\015\139\015\150\015\160\015\171\015\182\015\194\015\199\015\205\015\211\015\218\015\224\015\231\015\238\015\246\015\255\016\t\016\019\016\030\016(\0163\016>\016J\016O\016U\016[\016b\016h\016o\016v\016~\016\136\016\147\016\158\016\170\016\181\016\193\016\205\016\218\016\224\016\231\016\238\016\246\016\253\017\005\017\r\017\022\017\029\017%\017-\0176\017>\017G\017P\017Z\017]\017a\017e\017j\017n\017s\017x\017~\017\134\017\143\017\152\017\162\017\171\017\181\017\191\017\202\017\206\017\211\017\216\017\222\017\227\017\233\017\239\017\246\017\253\018\005\018\r\018\022\018\029\018%\018-\0186\018>\018G\018P\018Z\018b\018k\018t\018~\018\135\018\145\018\155\018\166\018\171\018\172\018\175\018\176\018\178\018\179\018\180\018\181\018\182\018\184\018\193\018\203\018\204\018\210\018\218\018\219\018\220\018\229\018\230\018\235\018\236\018\237\018\242\018\244\018\246\018\249\018\252\018\255\019\002\019\005\019\b\019\n\019\r\019\016\019\019\019\022\019\025\019\028\019\031\019!\019#\019$\019%\019(\019*\019.\0190\0190\0192\0193\0197\019:\019:\019;\019>\019@\019A\019B\019B\019C\019D\019E\019G\019I\019K\019M\019N\019O\019P\019Q\019S\019W\019Z\019[\019\\\019]\019b\019g\019m\019s\019z\019{\019|\019}\019~\019\134\019\134\019\135\019\136\019\138\019\140\019\141\019\143\019\145\019\151\019\156\019\160\019\164\019\169\019\174\019\175\019\177")) + ((16, "\001\175\001\169\000\223\000\221\000\219\000\217\000\215\000\213\000\211\000\209\000\207\000\205\000\203\000M\0005\000F\000D\001\193\002%\001\030\000:\001\177\002%\001\030\000l\000:\001\177\001\006\001\165\000.\002%\001\030\000l\000\016\001\006\001\165\000.\001\"\001o\001\139\001i\001O\001\239\001\026\001\023\001\026\001\021\001\024\001\021\001\225\000E\002\025\000E\000l\000\127\000.\000E\000;\002\025\000;\000l\000\127\000.\000;\000\188\001\249\002\025\000\188\001\249\000l\000\127\000.\000\188\001\249\001A\000\240\001\223\000:\001\177\000\016\000l\000:\001\177\001\006\001\165\000.\000l\000\016\001\006\001\165\000.\000_\000_\000\240\002\023\000\193\000\138\002\023\002\021\0002\001\255\000\204\001o\002\011\001\133\000\172\002\017\000t\000P\001o\001?\000\172\002\017\000t\000P\001\020\001o\001?\000\172\002\017\002\017\002\019\001\255\000\153\001\217\000\158\001o\002\017\000\249\001i\000\158\001\020\001o\002\017\000\249\001i\000\012\000-\001i\000h\001U\001i\000\248\001o\001\233\001i\000\156\001o\000s\001i\001\167\001i\001\209\000\218\002\017\001\006\001\253\000\218\002\017\001\145\002\r\001\145\000b\002\017\001\145\002\011\001G\000l\000\201\000.\000l\000\201\001\006\001\227\000.\000l\001\227\000.\000\158\001o\002\001\001i\000\012\001o\001!\000p\001\006\001\227\001i\000h\001o\000\181\000p\001\006\000\191\001i\000\248\001o\001\233\001i\001\167\001i\001\209\001\249\000\140\000\137\0002\001\249\001\217\000V\001o\002\005\001c\000\224\002\001\002\019\000t\000P\001o\001?\000\172\002\001\000t\000P\001\020\001o\001?\000\172\002\001\000l\002\017\000.\002\t\000\140\000\137\0002\002\t\000l\002\017\001\006\001\253\000.\000V\001o\002\007\001a\000\224\002\001\000\229\000K\000b\001\253\000p\001\006\000K\000b\001\253\000K\000b\001\253\001\b\000\020\001\219\001o\000'\001\207\000p\000\218\002\001\001i\001u\001S\000\206\000\143\000\b\001\201\000\b\000\202\001\219\001o\000\147\001o\000\201\001\243\001o\000n\000\201\000\172\001\201\001o\000n\000\201\000\172\000\202\001\219\001o\000\147\001o\000\014\000\201\000\172\001\201\001o\000\014\000\201\000\172\000\202\001\219\001o\000\147\001o\000R\000\201\000\172\001\201\001o\000R\000\201\000\172\000\202\001\219\001o\000\147\000\218\001\201\001\221\001\201\000\218\001\201\001\221\000\202\001\219\001o\000\147\000\218\000\202\001\219\001o\000\147\001\221\001\201\000\218\000\202\001\219\001o\000\147\001\221\000\202\001\219\001o\000\147\000\172\001\201\000\172\000\202\001\219\001o\000\147\000+\0007\000\140\0002\000l\000.\000\210\000\024\000\018\000l\001\004\000.\001\239\001?\001?\000\240\000l\001\004\000.\000l\001\004\000.\001\239\001\227\000\218\001\227\002\025\000\233\000\198\002\025\000\233\000\131\000$\002\025\000\233\000\131\000$\000\198\002\025\000\233\000\144\001\153\0004\001\018\000\173\002%\001\227\002\019\001\011\001\211\001\223\000l\001\227\000.\000l\000^\001\219\001o\001-\000.\000\140\000Q\0002\000\140\001\018\000\139\0002\000\140\000}\001\018\000\139\0002\000\128\001\001\000\139\0002\000\128\0002\000~\001\001\000\139\0002\000~\001\001\000\139\000\196\000\151\0002\000\184\002\025\000$\000\129\000.\000\184\000p\001\006\002\025\000$\000\129\000.\000\026\000\228\000H\002\023\000|\002\023\000\193\0002\0008\001\018\001\237\000\218\001\235\001o\001\237\000\218\001\235\001o\001\217\000\134\002\023\002\021\0002\000\140\000\133\0002\000\204\001\219\001o\001\197\000\231\000b\001\203\000\202\001\219\001o\000\147\001\195\000e\000t\000^\001\219\001o\0011\001=\000\172\000s\000t\000\216\001\219\001o\001\237\001\187\001o\000\172\000s\000t\000P\001\219\001o\0017\000\172\000s\000t\000P\001\020\001\219\001o\0017\000\172\000s\000j\001\219\001o\000s\000\004\000\147\000\022\001\219\001o\000s\000\004\000\147\000J\001\219\001o\000s\000\004\001\201\000J\001\219\001o\000s\000\004\000\202\001\219\001o\000\147\000\174\001\219\001o\000s\000\030\001\201\000\226\001\201\000\174\001\219\001o\000s\000\030\001\201\000\226\000\202\001\219\001o\000\147\000\174\001\219\001o\000s\000\030\000\202\001\219\001o\000\147\000\226\001\201\000\174\001\219\001o\000s\000\030\000\202\001\219\001o\000\147\000\226\000\202\001\219\001o\000\147\000\174\001\219\001o\000s\000\030\001\201\000\174\001\219\001o\000s\000\030\000\202\001\219\001o\000\147\000\006\001\219\001o\000s\000\246\000s\000\242\000\206\001\219\001o\000\201\000\218\000s\001\221\000s\000\246\000s\000\242\001\028\001\219\001o\000e\000\146\001\219\001o\000e\000S\001\201\000S\000\202\001\219\001o\000\147\002'\001\201\002'\000\202\001\219\001o\000\147\001\205\000e\000\153\000&\000e\000&\001\205\000&\000\202\001\219\001o\000\147\000\167\001\235\000e\000&\001\235\000e\001\031\000e\001\201\000\168\001\201\001\201\000\168\000\202\001\219\001o\000\147\001\201\001\026\001\201\001\201\001\026\000\202\001\219\001o\000\147\001\201\001\024\001\201\001\201\001\024\000\202\001\219\001o\000\147\001\201\000\166\001\201\001\201\000\166\000\202\001\219\001o\000\147\001\201\000\164\001\201\001\201\000\164\000\202\001\219\001o\000\147\001\201\000\162\001\201\001\201\000\162\000\202\001\219\001o\000\147\001\201\000`\001\201\001\201\000`\000\202\001\219\001o\000\147\001\201\000\160\001\201\001\201\000\160\000\202\001\219\001o\000\147\001\201\000F\001\201\001\201\000F\000\202\001\219\001o\000\147\001\201\000D\001\201\001\201\000D\000\202\001\219\001o\000\147\001\201\000B\001\201\001\201\000B\000\202\001\219\001o\000\147\001\201\000f\001\201\001\201\000f\000\202\001\219\001o\000\147\001\201\000d\001\201\001\201\000d\000\202\001\219\001o\000\147\001\201\000$\001\201\001\201\000$\000\202\001\219\001o\000\147\001\201\000H\001\201\001\201\000H\000\202\001\219\001o\000\147\001\201\000\218\001\201\001\201\000\218\000\202\001\219\001o\000\147\001\201\000x\001\201\001\201\000x\000\202\001\219\001o\000\147\001\201\000\196\001\201\001\201\000\196\000\202\001\219\001o\000\147\001\201\000L\001\201\001\201\000L\000\202\001\219\001o\000\147\001\201\001\016\001\201\001\201\001\016\000\202\001\219\001o\000\147\001\201\001$\001\201\001\201\001$\000\202\001\219\001o\000\147\001\201\001&\001\201\001\201\001&\000\202\001\219\001o\000\147\001\201\001\002\001\201\001\201\001\002\000\202\001\219\001o\000\147\001\135\000\172\000s\000r\001{\000\172\000s\001\201\001\004\001\201\001\201\001\004\000\202\001\219\001o\000\147\000p\000v\001\201\000p\000v\000\202\001\219\001o\000\147\000e\000\240\001\149\000v\001\201\000e\000\240\001\149\000v\000\202\001\219\001o\000\147\000e\000\240\000l\000s\000.\000v\001\201\000e\000\240\000l\000s\000.\000v\000\202\001\219\001o\000\147\000e\000\240\000\144\000s\0004\000v\001\201\000e\000\240\000\144\000s\0004\000v\000\202\001\219\001o\000\147\000e\000\240\000\140\000s\0002\000v\001\201\000e\000\240\000\140\000s\0002\000v\000\202\001\219\001o\000\147\000e\000\232\000l\000{\000.\000v\001\201\000e\000\232\000l\000{\000.\000v\000\202\001\219\001o\000\147\000e\000\240\001?\000\232\000l\000{\000.\000v\001\201\000e\000\240\001?\000\232\000l\000{\000.\000v\000\202\001\219\001o\000\147\000e\000\232\000\144\000{\0004\000v\001\201\000e\000\232\000\144\000{\0004\000v\000\202\001\219\001o\000\147\000e\000\240\001?\000\232\000\144\000{\0004\000v\001\201\000e\000\240\001?\000\232\000\144\000{\0004\000v\000\202\001\219\001o\000\147\000e\000\232\000\140\000{\0002\000v\001\201\000e\000\232\000\140\000{\0002\000v\000\202\001\219\001o\000\147\000e\000\240\001?\000\232\000\140\000{\0002\000v\001\201\000e\000\240\001?\000\232\000\140\000{\0002\000v\000\202\001\219\001o\000\147\001\201\002\019\000n\000s\000\014\000s\000R\000s\000\214\000s\000l\000\020\001\027\000.\000l\000\020\000p\001\006\001\165\000.\001\145\000\159\001\201\001\201\000,\001\201\000,\000s\001\201\000,\000H\002\023\000s\000K\000Y\000l\000.\000l\0015\001\006\001-\000.\000l\0015\001\006\001-\002\027\000.\000\155\000T\001\231\001\006\001\231\000b\002\025\001\006\000\149\000\240\001\231\000b\002\025\001\006\002\025\001\006\000\149\000\240\002\025\001\018\001\237\001\187\001o\001\237\001\187\001o\000\020\001\219\001o\000A\000p\000\251\001\002\001\r\000\161\001i\000\020\001\219\001o\000X\000A\000p\000\251\001\002\001\r\000\161\001i\000\020\001\219\001o\000A\000p\000\251\000G\000\161\001i\000\020\001\219\001o\000X\000A\000p\000\251\000G\000\161\001i\000\018\000p\000W\000\222\000\170\000\170\000\200\000,\000\238\000o\000\222\000z\002\023\000\193\0002\0006\001\161\001\006\001\165\001\165\000`\001\025\001\165\000\004\001\227\001\177\000\150\001\227\000\016\000\175\000l\001\161\000.\000\152\000p\000\218\001\165\001#\000p\001\006\000\189\000\233\001o\001#\000p\001\006\000\189\000\233\001o\000,\001o\001\157\001\155\001\155\001\153\000p\000p\002\029\000p\001\006\001\227\000p\001\006\001\227\002\027\000p\001\006\000\149\000\240\001\227\000p\001\006\000\149\000\240\001\227\002\027\001G\000e\000\148\000e\000\028\000p\000\028\000l\000p\000I\000.\000<\000p\000N\000e\000<\000l\001\151\000\239\000.\000<\000l\001\019\001\151\000\239\000.\000<\000p\000N\000l\001\131\000\239\000.\000N\000l\001\019\001\131\000\239\000.\000N\000\195\000\028\000l\001\151\000.\000\028\000l\001\019\001\151\000.\000\028\000p\000\148\000c\000\148\000l\001\127\000.\000\148\000l\001\019\001\127\000.\000\148\000l\001\019\000\201\000.\000c\000l\001\019\001\129\000.\000l\001\127\000.\000l\001\019\001\127\000.\000\148\000l\000\201\001\006\000\149\000\240\001\227\000.\000\148\000l\001\019\000\201\001\006\000\149\000\240\001\227\000.\000l\000\201\001\006\000\149\000\240\001\227\000.\001\143\000\252\000\201\001\143\000\252\000\148\000c\001\143\000\252\000\028\000p\001\143\000\252\000\028\000l\000p\001\006\001\227\000.\000\201\000\252\000\201\000\201\000\252\000\148\000c\000\201\000\252\000\028\000p\000\201\000\252\000\028\000l\000p\001\006\001\227\000.\000\148\000c\000\252\000\201\000\148\000c\000\252\000\148\000c\000\148\000c\000\252\000\028\000p\000\148\000c\000\252\000\028\000l\000p\001\006\001\227\000.\000\028\000p\000\252\000\201\000\028\000p\000\252\000\148\000c\000\028\000p\000\252\000\028\000p\000\028\000p\000\252\000\028\000l\000p\001\006\001\227\000.\000\028\000l\000p\001\006\001\227\000.\000\252\000\201\000\028\000l\000p\001\006\001\227\000.\000\252\000\148\000c\000\028\000l\000p\001\006\001\227\000.\000\252\000\028\000p\000\028\000l\000p\001\006\001\227\000.\000\252\000\028\000l\000p\001\006\001\227\000.\001\141\000\252\000\197\001\141\000\252\000\148\000c\001\141\000\252\000\028\000p\001\141\000\252\000\028\000l\000p\001\006\001\227\000.\000\197\000\252\000\197\000\197\000\252\000\148\000c\000\197\000\252\000\028\000p\000\197\000\252\000\028\000l\000p\001\006\001\227\000.\000\148\000c\000\252\000\197\000\148\000c\000\252\000\148\000c\000\148\000c\000\252\000\028\000p\000\148\000c\000\252\000\028\000l\000p\001\006\001\227\000.\000\028\000p\000\252\000\197\000\028\000p\000\252\000\148\000c\000\028\000p\000\252\000\028\000p\000\028\000p\000\252\000\028\000l\000p\001\006\001\227\000.\000\028\000l\000p\001\006\001\227\000.\000\252\000\197\000\028\000l\000p\001\006\001\227\000.\000\252\000\148\000c\000\028\000l\000p\001\006\001\227\000.\000\252\000\028\000p\000\028\000l\000p\001\006\001\227\000.\000\252\000\028\000l\000p\001\006\001\227\000.\001\137\0001\0001\000[\0001\000I\000\218\000s\0001\000I\002\027\000\218\000s\0001\002\029\000\218\000s\001\019\0001\000I\000\218\000s\001\019\0001\000I\002\027\000\218\000s\001\019\0001\002\029\000\218\000s\0001\001\006\000\149\000\240\001\227\000\218\000s\0001\001\006\000\149\000\240\001\227\002\027\000\218\000s\001\019\0001\001\006\000\149\000\240\001\227\000\218\000s\001\019\0001\001\006\000\149\000\240\001\227\002\027\000\218\000s\0001\001\006\000\020\001\027\000\240\001\227\000\218\000s\0001\001\006\000\020\001\027\000\240\001\227\002\027\000\218\000s\000\197\000\218\000s\000a\002\029\000\218\000s\000a\001\006\001\227\000\218\000s\000a\001\006\001\227\002\027\000\218\000s\001\019\0001\000[\000l\0001\002\029\000.\000[\000t\001\219\001o\000\179\001\139\001i\001\135\002#\000t\001o\000\179\001\139\001i\000t\000H\002\023\001o\000\179\001\139\001i\001\133\002#\000\201\000\201\002\029\000\201\001\006\001\227\000\201\001\006\001\227\002\027\000\201\001\006\000\149\000\240\001\227\000\201\001\006\000\149\000\240\001\227\002\027\000l\001\127\000.\000\201\000\201\001\006\001\227\000\201\001\006\000\149\000\240\001\227\000\201\002\029\000\201\001\006\001\227\002\027\000\201\001\006\000\149\000\240\001\227\002\027\000l\001\127\000.\0001\000[\0001\000c\001\006\001\227\000\218\000s\000\197\000\218\000s\001}\001{\001 \001}\001\"\001o\000'\001\207\000p\002\r\001i\001y\001\"\001o\000'\001\207\000p\001\006\001\253\001i\001w\001\"\001o\000'\001\207\000p\000\218\002\001\001i\001u\001\"\001o\0011\001=\001i\001s\001\"\001o\0015\001\006\001-\000\233\001i\001q\002\019\001o\001\"\001o\000A\000p\000\251\000G\000\161\001i\001m\001\"\001o\000A\000p\000\251\001\002\001\r\000\161\001i\001k\000\187\001i\000*\001g\000m\001g\000*\001e\000*\000s\001i\001e\000U\001e\002\003\001c\002\015\001a\000U\001_\000*\001]\000*\000s\001i\001]\000U\001]\000O\001]\001\149\000\247\000\241\001\149\000\247\000\241\000,\001\149\000\247\000\241\000,\000\016\000\255\001\149\000\247\000\241\000,\001[\000\201\000b\000s\000\201\000\b\000s\000b\000s\000\201\000b\000\240\000p\001\006\000\189\001o\000,\001o\001W\002\025\000,\001W\000p\001\006\000\189\001o\000,\001o\002\025\000,\000p\001\006\000\189\001o\002\025\000\238\001o\000#\000p\001\006\000\191\001o\000\183\000p\000[\001\020\001o\000\183\000p\000[\001o\000\183\000p\001\006\000\191\000\218\000s\001\020\001o\000\183\000p\001\006\000\191\000\218\000s\001o\000\183\000p\001\006\000\020\001\027\000\240\001\227\000\218\000s\001\020\001o\000\183\000p\001\006\000\020\001\027\000\240\001\227\000\218\000s\000p\001A\000\240\000p\000\018\001A\000\240\000\018\001\177\000l\001\004\000.\0003\001A\000\240\001\177\001A\000\240\000l\001\004\000.\001A\000\240\0003\001\177\001A\000\240\001\177\000?\001A\000\240\000?\000=\001A\000\240\000=\000p\001?\000\240\000p\000\018\001?\000\240\000\018\0001\001?\000\240\0001\001Q\001A\000l\001A\000.\001E\000\218\0017\001\006\001-\000\218\0017\001\006\001-\002\027\000\218\0017\002\029\000\218\0017\001\191\001=\001\006\001-\000\233\001\191\0019\001\006\001-\001\006\001-\002\027\001\191\0019\000 \001o\000W\000\224\000\200\001o\001\189\000b\0017\000\227\0017\002\019\001?\0017\000\227\0017\000l\000.\001\217\000\016\000\018\000\016\0015\000l\0015\002\031\000.\0015\000l\0015\002\029\000.\000^\001\219\001o\000\018\001\002\001A\001i\000(\001o\000o\000\224\000\200\001o\001\189\000b\001-\000\200\001o\001\189\000b\001-\002\029\000^\000\020\000T\001o\0017\000l\001-\000.\001-\002\019\001'\000l\000.\000b\001-\000l\000.\000b\001-\002\029\001-\000b\001-\001-\000b\001-\002\029\001-\002\029\000b\001-\001-\002\029\000b\001-\002\029\001-\000\004\000\141\001\217\001-\000\004\001A\000^\000\020\001\219\001o\001\177\000\243\001i\000^\000\020\001\219\001o\001\177\001\002\001-\001i\001M\000\\\000\\\000\198\000\\\000\n\000\\\000\n\000\n\000\\\001\022\001\177\000p\000l\000p\001\006\001\165\000.\001\017\000p\000p\001\025\000p\000p\001\023\000p\000p\001\021\000n\000\014\000R\000n\001\019\000\014\001\019\000R\001\019\001\029\001\029\001\017\000\"\000\"\001\015\001\227\000>\001\227\001\229\000>\001\229\001\227\000\218\001\229\001\227\000\218\000>\001\229\000\238\000>\000\238\001\227\000\218\000\238\001\227\000\218\000>\000\238\000\144\001\153\0004\000>\000\144\001\153\0004\001\227\000\218\000\144\001\153\0004\001\227\000\218\000>\000\144\001\153\0004\000\186\001\153\0004\000>\000\186\001\153\0004\001\227\000\218\000\186\001\153\0004\001\227\000\218\000>\000\186\001\153\0004\000x\001W\000\196\000x\000\196\000P\001\219\001o\0017\001i\000P\001\020\001\219\001o\0017\001i\000P\001\219\001o\001A\001i\000P\001\020\001\219\001o\001A\001i\000@\000r\001 \000\232\000l\001\171\000.\000\232\000l\001\171\000.\000v\000\232\000\140\001\171\0002\000\232\000\140\001\171\0002\000v\000\232\000\144\001\171\0004\000\232\000\144\001\171\0004\000v\000\182\001\020\000\168\001\026\001\024\000\166\000\164\000\162\000`\000\160\000F\000D\000B\000f\000d\000$\000H\000\218\000x\000\196\000L\001\016\001$\001&\001\002\001$\001\018\000,\000I\000I\002\027\002\029\001\163\001\030\000p\001\006\001\227\000\218\001\201\000\218\000\202\001\219\001o\000\147\000\218\001-\000\218\000\201\000\218\000s\000I\001\026\001\023\001\024\001\023\001\006\002\025\001\006\002\025\002\027\002\029\000N\000<\000p\001\006\000l\0017\001\006\001-\000.\000l\0017\001\006\001-\002\027\000.\000l\0017\002\029\000.\000l\0017\000.\000l\000\012\001o\001\201\000.\000l\000\012\001o\000\202\001\219\001o\000\147\000.\000l\000\012\001o\001\201\001\006\001-\000.\000l\000\012\001o\000\202\001\219\001o\000\147\001\006\001-\000.\000l\000\012\001o\001\201\001\006\001-\001\000\001-\000.\000l\000\012\001o\000\202\001\219\001o\000\147\001\006\001-\001\000\001-\000.\000l\000\012\001o\001\201\001\000\001-\000.\000l\000\012\001o\000\202\001\219\001o\000\147\001\000\001-\000.\000C\0009\000:\001\177\001o\001\006\001\165\0009\000\016\001o\001\006\001\165\002!\000\222\001\235\000\222\001\227\000\222\000s\000\222\001A\000\222\001?\000\222\0017\000\222\001-\000\222\001'\000\222\000\201\000\222\000/\000\222\000\201\001\004\000\201\000\201\002\019\000\199\000\201\001\030\0001\000\201\001\018\000\201\000\165\000\216\001\219\001o\000\201\000c\001\235\000\201\001\235\000l\000\020\001\025\000.\000c\001\031\000\201\000\146\001\219\001o\000c\000\197\001\004\000\201\000\197\002\019\000\199\000\197\001\030\0001\000\197\001\018\000\201\000\163\000p\000\016\000W\001\006\000o\001\006\001\227\000<\000\201\000<\000\201\000\b\000s\001\227\000\149\000\240\001\227\002%\000\149\000\240\002%\000\136\002\023\002\021\0002\000\212\001\219\001o\0001\001\006\000\191\000\233\000\218\001\015\001i\000>\000>\000\n\000>\000\n\000\n\000>\0000\000u\000e\000\004\000u\001\165\001$\001\165\000\175\001$\001\165\001\183\001\185\000\173\001\185\001\183\001\213\001\185\001\215\000\171\001\185\000\171\001\215\001\183\001\185\000\169\001\185\000\167\000\252\001\201\000\167\000\252\000\202\001\219\001o\000\147\000\167\000\252\000\148\000e\000\167\000\252\000\028\000p\000\167\000\252\000\028\000l\000p\000I\000.\001\201\000\252\001\201\001\201\000\252\000\202\001\219\001o\000\147\001\201\000\252\000\148\000e\001\201\000\252\000\028\000p\001\201\000\252\000\028\000l\000p\000I\000.\000\202\001\219\001o\000\147\000\252\001\201\000\202\001\219\001o\000\147\000\252\000\202\001\219\001o\000\147\000\202\001\219\001o\000\147\000\252\000\148\000e\000\202\001\219\001o\000\147\000\252\000\028\000p\000\202\001\219\001o\000\147\000\252\000\028\000l\000p\000I\000.\000\148\000e\000\252\001\201\000\148\000e\000\252\000\202\001\219\001o\000\147\000\148\000e\000\252\000\148\000e\000\148\000e\000\252\000\028\000p\000\148\000e\000\252\000\028\000l\000p\000I\000.\000\028\000p\000\252\001\201\000\028\000p\000\252\000\202\001\219\001o\000\147\000\028\000p\000\252\000\148\000e\000\028\000p\000\252\000\028\000p\000\028\000p\000\252\000\028\000l\000p\000I\000.\000\028\000l\000p\000I\000.\000\252\001\201\000\028\000l\000p\000I\000.\000\252\000\202\001\219\001o\000\147\000\028\000l\000p\000I\000.\000\252\000\148\000e\000\028\000l\000p\000I\000.\000\252\000\028\000p\000\028\000l\000p\000I\000.\000\252\000\028\000l\000p\000I\000.\001\143\001\143\000\252\000\238\000\201\000\252\000\238\000\148\000c\000\252\000\238\000\028\000p\000\252\000\238\000\028\000l\000p\001\006\001\227\000.\000\252\000\238\001\141\001\141\000\252\000\238\000\197\000\252\000\238\000\148\000c\000\252\000\238\000\028\000p\000\252\000\238\000\028\000l\000p\001\006\001\227\000.\000\252\000\238\000\161\000\248\001\227\000\218\001\227\001\199\000\159\001\199\001\247\000\157\001\247\001\191\000\155\001\191\001\147\000\153\001\147\001\031\000\151\001\031\000:\001\177\000l\000:\001\177\001\006\001\165\000.\000\149\000:\001\177\000\149\000l\000:\001\177\001\006\001\165\000.\001Y\001\018\001Y\000\147\001\018\001Y\002%\000\145\001$\002%\001\245\000\143\001\"\001\245\000!\000\141\001\"\000!\000}\000\139\001\018\000}\001\227\000\137\000\252\001\227\000\225\000\135\000\252\000\225\000C\000\133\000\252\000C\002\025\000\233\000\198\002\025\000\233\000\131\000$\002\025\000\233\000\131\000$\000\198\002\025\000\233\002\025\000p\001\006\002\025\000\129\000$\002\025\000\129\000$\000p\001\006\002\025\000\127\000\252\001\227\000\127\000\252\000:\001\177\001\006\001\165\000\127\000\252\000\016\001\006\001\165\001\227\000\252\001\227\001\227\000\252\000:\001\177\001\006\001\165\001\227\000\252\000\016\001\006\001\165\000:\001\177\001\006\001\165\000\252\001\227\000:\001\177\001\006\001\165\000\252\000:\001\177\001\006\001\165\000:\001\177\001\006\001\165\000\252\000\016\001\006\001\165\000\016\001\006\001\165\000\252\001\227\000\016\001\006\001\165\000\252\000:\001\177\001\006\001\165\000\016\001\006\001\165\000\252\000\016\001\006\001\165\000Q\001\227\001\201\001\201\000,\000\202\001\219\001o\000\147\000\202\001\219\001o\000\147\000,\001\201\000,\000{\000\202\001\219\001o\000\147\000,\000{\000p\000\245\000p\000\245\000,\000p\000\245\000,\000y\000\201\000\201\000,\000\201\000,\000w\001\149\000\237\000\245\001\149\000\237\000\245\000,\001\149\000\237\000\245\000,\000u\001\195\000\202\001\219\001o\000\147\000\216\001\219\001o\001\237\001\187\001o\001i\000\233\001g\001\167\001i\001\209\001\159\000)\000\185\001\179\001m\001\181\001k\000\020\001\219\001o\000A\000E\000B\000\183\000\169\001i\000\020\001\219\001o\000X\000A\000E\000B\000\183\000\169\001i\000q\000^\001\219\001o\0013\001;\001i\000^\001\219\001o\0013\000\218\001?\000\235\001i\001/\000^\001\219\001o\0000\0015\001\006\001-\000\233\001i\001q\001+\001)\001\007\001\b\001\219\001o\000'\001\207\000p\001\006\001\253\001i\001w\001\251\001\173\001\219\001o\001-\001i\000\233\000i\0007\000f\000\178\000f\000\180\000F\000\178\000F\000\180\000+\000f\000\154\000f\000\208\000F\000\154\000F\000\208\000\144\001[\0004\000\186\001[\0004\000\140\000w\0002\000\132\000w\001\014\000\132\001\014\000\130\000w\000\254\000\130\000\254\000\184\000\165\000.\000\234\001\201\000\194\000\234\000\202\001\219\001o\000\147\000\194\000\230\000e\000l\000s\000.\000l\000s\000I\000.\000l\000s\000I\002\027\000.\000e\000\240\000l\000s\000.\000e\000\240\000\144\000s\0004\000e\000\240\000\140\000s\0002\000e\000\232\000l\000{\000.\000e\000\240\001?\000\232\000l\000{\000.\000e\000\232\000\144\000{\0004\000e\000\240\001?\000\232\000\144\000{\0004\000e\000\232\000\140\000{\0002\000e\000\240\001?\000\232\000\140\000{\0002\001\012\001\219\001o\000s\000\224\001\012\001\219\001o\000\224\000Z\001\219\001o\002\t\000l\000^\001\219\001o\0017\000.\000l\000^\001\219\001o\0017\001\006\001-\000.\000V\001\219\001o\002\007\001a\000\224\000/\001\235\001\031\000@\000e\001\020\000e\000\142\000y\000\192\000\142\000\192\000e\000\240\001\149\000e\000\236\001\149\001?\000\240\000l\000s\000.\001?\000\240\000\142\000y\000\192\000e\000\188\000p\000e\000\176\000p\000e\000\182\000e\001\217\000\016\001?\000\240\000l\000.\000\144\000\177\0004\000\186\000\177\0004\001?\000\240\000\144\000\177\0004\000\132\000{\001\014\000\132\001\014\001?\000\240\000\132\000{\001\014\001?\000\240\000\132\001\014\000\140\000{\0002\001?\000\240\000\140\001\201\000\157\0002\001?\000\240\000\140\000\202\001\219\001o\000\147\000\157\0002\001?\000\240\000\132\001\201\000\157\001\014\001?\000\240\000\132\000\202\001\219\001o\000\147\000\157\001\014\001?\000\240\000\130\001\201\000\157\000\254\001?\000\240\000\130\000\202\001\219\001o\000\147\000\157\000\254\001?\000\240\000\140\000{\0002\001?\000\240\000\140\0002\001?\000\240\000l\000^\001\219\001o\0017\001\006\001-\000.\000\184\000\167\000.\000\130\000{\000\254\000\130\000\254\001?\000\240\000\130\000{\000\254\001?\000\240\000\130\000\254\001\241\000\140\001\201\000\157\0002\000\140\000\202\001\219\001o\000\147\000\157\0002\000\132\001\201\000\157\001\014\000\132\000\202\001\219\001o\000\147\000\157\001\014\000\130\001\201\000\157\000\254\000\130\000\202\001\219\001o\000\147\000\157\000\254\0001\000a\000l\000\201\000.\000g\000l\000^\001\219\001o\0015\000.\000l\000^\001\219\001o\0015\001\006\001-\000.\000\016\000i\000\238\000i\001\235\001\031\000\188\000E\000\176\000E\001?\000\240\000g\001?\000\240\000\140\0002\001?\000\240\000l\000.\001?\000\240\000l\000\201\000.\001\217\000l\000\201\001\006\001\227\000.\000k\000p\000\018\001\"\001\030\001\028\001\012\001\b\000\248\000\246\000\242\000\228\000\226\000\224\000\216\000\212\000\210\000\206\000\204\000\202\000\200\000\174\000\172\000\170\000\158\000\156\000\146\000t\000n\000j\000h\000^\000\\\000Z\000X\000V\000T\000P\000L\000>\0000\000(\000 \000\030\000\026\000\024\000\022\000\020\000\012\000\n\000\b\000\006\000\004\000q\000\216\001\219\001o\001\237\000\218\001\235\001o\001i\000\218\000s\001\197\000\253\000\218\001\203\000\229\000l\000\149\000\240\001\227\000.\000b\000Y\000\229\000l\000\149\000\240\001\227\000.\002\029\000b\000Y\000\229\000K\000b\000Y\000\229\000K\002\029\000b\000Y\000\229\001\019\000l\000\149\000\240\001\227\000.\000b\000Y\000\229\001\019\000l\000\149\000\240\001\227\000.\002\029\000b\000Y\000\229\001\019\000K\000b\000Y\000\229\001\019\000K\002\029\000b\000Y\000p\001\006\000l\000\149\000\240\001\227\000.\000b\000Y\000p\001\006\000l\000\149\000\240\001\227\000.\002\029\000b\000Y\000p\001\006\000K\000b\000Y\000p\001\006\000K\002\029\000b\000Y\000p\001\006\001\019\000l\000\149\000\240\001\227\000.\000b\000Y\000p\001\006\001\019\000l\000\149\000\240\001\227\000.\002\029\000b\000Y\000p\001\006\001\019\000K\000b\000Y\000p\001\006\001\019\000K\002\029\000b\000Y\000l\000\149\000\240\001\227\000.\000b\000Y\000l\000\149\000\240\001\227\000.\002\029\000b\000Y\000K\000b\000Y\000K\002\029\000b\000Y\001\019\000l\000\149\000\240\001\227\000.\000b\000Y\001\019\000l\000\149\000\240\001\227\000.\002\029\000b\000Y\001\019\000K\000b\000Y\001\019\000K\002\029\000b\000Y\000\229\000l\000\149\000\240\001\227\000.\000b\000K\000\229\000l\000\149\000\240\001\227\000.\000b\000K\002\029\000\229\000l\000\149\000\240\001\227\000.\000b\001\019\000K\000\229\000l\000\149\000\240\001\227\000.\000b\001\019\000K\002\029\000\229\000l\000\149\000\240\001\227\000.\002\029\000b\000K\000\229\000l\000\149\000\240\001\227\000.\002\029\000b\000K\002\029\000\229\000l\000\149\000\240\001\227\000.\002\029\000b\001\019\000K\000\229\000l\000\149\000\240\001\227\000.\002\029\000b\001\019\000K\002\029\000\229\000K\000b\000K\000\229\000K\000b\000K\002\029\000\229\000K\000b\001\019\000K\000\229\000K\000b\001\019\000K\002\029\000\229\000K\002\029\000b\000K\000\229\000K\002\029\000b\000K\002\029\000\229\000K\002\029\000b\001\019\000K\000\229\000K\002\029\000b\001\019\000K\002\029\000\229\001\019\000l\000\149\000\240\001\227\000.\000b\000K\000\229\001\019\000l\000\149\000\240\001\227\000.\000b\000K\002\029\000\229\001\019\000l\000\149\000\240\001\227\000.\000b\001\019\000K\000\229\001\019\000l\000\149\000\240\001\227\000.\000b\001\019\000K\002\029\000\229\001\019\000l\000\149\000\240\001\227\000.\002\029\000b\000K\000\229\001\019\000l\000\149\000\240\001\227\000.\002\029\000b\000K\002\029\000\229\001\019\000l\000\149\000\240\001\227\000.\002\029\000b\001\019\000K\000\229\001\019\000l\000\149\000\240\001\227\000.\002\029\000b\001\019\000K\002\029\000\229\001\019\000K\000b\000K\000\229\001\019\000K\000b\000K\002\029\000\229\001\019\000K\000b\001\019\000K\000\229\001\019\000K\000b\001\019\000K\002\029\000\229\001\019\000K\002\029\000b\000K\000\229\001\019\000K\002\029\000b\000K\002\029\000\229\001\019\000K\002\029\000b\001\019\000K\000\229\001\019\000K\002\029\000b\001\019\000K\002\029\000p\001\006\000l\000\149\000\240\001\227\000.\000b\000K\000p\001\006\000l\000\149\000\240\001\227\000.\000b\000K\002\029\000p\001\006\000l\000\149\000\240\001\227\000.\000b\001\019\000K\000p\001\006\000l\000\149\000\240\001\227\000.\000b\001\019\000K\002\029\000p\001\006\000l\000\149\000\240\001\227\000.\002\029\000b\000K\000p\001\006\000l\000\149\000\240\001\227\000.\002\029\000b\000K\002\029\000p\001\006\000l\000\149\000\240\001\227\000.\002\029\000b\001\019\000K\000p\001\006\000l\000\149\000\240\001\227\000.\002\029\000b\001\019\000K\002\029\000p\001\006\000K\000b\000K\000p\001\006\000K\000b\000K\002\029\000p\001\006\000K\000b\001\019\000K\000p\001\006\000K\000b\001\019\000K\002\029\000p\001\006\000K\002\029\000b\000K\000p\001\006\000K\002\029\000b\000K\002\029\000p\001\006\000K\002\029\000b\001\019\000K\000p\001\006\000K\002\029\000b\001\019\000K\002\029\000p\001\006\001\019\000l\000\149\000\240\001\227\000.\000b\000K\000p\001\006\001\019\000l\000\149\000\240\001\227\000.\000b\000K\002\029\000p\001\006\001\019\000l\000\149\000\240\001\227\000.\000b\001\019\000K\000p\001\006\001\019\000l\000\149\000\240\001\227\000.\000b\001\019\000K\002\029\000p\001\006\001\019\000l\000\149\000\240\001\227\000.\002\029\000b\000K\000p\001\006\001\019\000l\000\149\000\240\001\227\000.\002\029\000b\000K\002\029\000p\001\006\001\019\000l\000\149\000\240\001\227\000.\002\029\000b\001\019\000K\000p\001\006\001\019\000l\000\149\000\240\001\227\000.\002\029\000b\001\019\000K\002\029\000p\001\006\001\019\000K\000b\000K\000p\001\006\001\019\000K\000b\000K\002\029\000p\001\006\001\019\000K\000b\001\019\000K\000p\001\006\001\019\000K\000b\001\019\000K\002\029\000p\001\006\001\019\000K\002\029\000b\000K\000p\001\006\001\019\000K\002\029\000b\000K\002\029\000p\001\006\001\019\000K\002\029\000b\001\019\000K\000p\001\006\001\019\000K\002\029\000b\001\019\000K\002\029\000l\000\149\000\240\001\227\000.\000b\000K\000l\000\149\000\240\001\227\000.\000b\000K\002\029\000l\000\149\000\240\001\227\000.\000b\001\019\000K\000l\000\149\000\240\001\227\000.\000b\001\019\000K\002\029\000l\000\149\000\240\001\227\000.\002\029\000b\000K\000l\000\149\000\240\001\227\000.\002\029\000b\000K\002\029\000l\000\149\000\240\001\227\000.\002\029\000b\001\019\000K\000l\000\149\000\240\001\227\000.\002\029\000b\001\019\000K\002\029\000K\000b\000K\000K\000b\000K\002\029\000K\000b\001\019\000K\000K\000b\001\019\000K\002\029\000K\002\029\000b\000K\000K\002\029\000b\000K\002\029\000K\002\029\000b\001\019\000K\000K\002\029\000b\001\019\000K\002\029\001\019\000l\000\149\000\240\001\227\000.\000b\000K\001\019\000l\000\149\000\240\001\227\000.\000b\000K\002\029\001\019\000l\000\149\000\240\001\227\000.\000b\001\019\000K\001\019\000l\000\149\000\240\001\227\000.\000b\001\019\000K\002\029\001\019\000l\000\149\000\240\001\227\000.\002\029\000b\000K\001\019\000l\000\149\000\240\001\227\000.\002\029\000b\000K\002\029\001\019\000l\000\149\000\240\001\227\000.\002\029\000b\001\019\000K\001\019\000l\000\149\000\240\001\227\000.\002\029\000b\001\019\000K\002\029\001\019\000K\000b\000K\001\019\000K\000b\000K\002\029\001\019\000K\000b\001\019\000K\001\019\000K\000b\001\019\000K\002\029\001\019\000K\002\029\000b\000K\001\019\000K\002\029\000b\000K\002\029\001\019\000K\002\029\000b\001\019\000K\001\019\000K\002\029\000b\001\019\000K\002\029\000p\001\006\002\025\000$\000\129\000b\000Y\000p\001\006\002\025\000$\000\129\002\029\000b\000Y\000p\001\006\001\019\002\025\000$\000\129\000b\000Y\000p\001\006\001\019\002\025\000$\000\129\002\029\000b\000Y\000p\001\006\002\025\000$\000\129\000b\000K\000p\001\006\002\025\000$\000\129\000b\000K\002\029\000p\001\006\002\025\000$\000\129\000b\001\019\000K\000p\001\006\002\025\000$\000\129\000b\001\019\000K\002\029\000p\001\006\002\025\000$\000\129\002\029\000b\000K\000p\001\006\002\025\000$\000\129\002\029\000b\000K\002\029\000p\001\006\002\025\000$\000\129\002\029\000b\001\019\000K\000p\001\006\002\025\000$\000\129\002\029\000b\001\019\000K\002\029\000p\001\006\001\019\002\025\000$\000\129\000b\000K\000p\001\006\001\019\002\025\000$\000\129\000b\000K\002\029\000p\001\006\001\019\002\025\000$\000\129\000b\001\019\000K\000p\001\006\001\019\002\025\000$\000\129\000b\001\019\000K\002\029\000p\001\006\001\019\002\025\000$\000\129\002\029\000b\000K\000p\001\006\001\019\002\025\000$\000\129\002\029\000b\000K\002\029\000p\001\006\001\019\002\025\000$\000\129\002\029\000b\001\019\000K\000p\001\006\001\019\002\025\000$\000\129\002\029\000b\001\019\000K\002\029\000p\001\006\002\025\000$\000\129\001e\000s\001i\001e\001\135\001\167\001i\001\209\001\159\000\185\000)\001\179\001m\000\020\001\219\001o\000A\000E\000B\000\183\000\171\001i\000\020\001\219\001o\000X\000A\000E\000B\000\183\000\171\001i\000]\000^\001\219\001o\0011\001=\001i\000^\001\219\001o\0000\0011\001=\001i\001s\001+\001\t\001\b\001\219\001o\000'\001\207\000p\002\r\001i\001y\001\251\001\173\001\219\001o\0017\001i\000f\000d\001\031\000T\001\003\000\145\001o\001\031\001o\000\188\001\177\000\188\001\177\000\"\000\188\001\177\000\154\000\188\001\177\000/\000\188\001\177\001?\000\188\001\177\000\210\000\188\001\177\000\024\000\176\001\177\000\176\001\177\000\"\000\176\001\177\000\154\000\176\001\177\000/\000\176\001\177\001?\000\176\001\177\000\210\000\176\001\177\000\024\000s\001i\000*\001_\000*\000O\000*\000\222\002\025\002\025\000$\000\129\001\006\001\227\001\006\001\227\001\000\001\227\001\000\001\227\000\218\001\r\001I\0009\000:\001\177\001o\0009\000\016\001o\000C\000l\000\135\000.\000p\000\176\000p\001K\000F\000f\001\020\000F\001\020\001\020\000F\000f\001\020\001\020\000f\000\164\000@\000\178\000\180\001]\000\222\000s\001i\001]\000\222\000l\001\005\000.\000p\0003\001C\001o\000%\000p\001\006\001\227\001o\001%\000p\000\218\000s\001\020\001o\001%\000p\000\218\000s\001o\001%\000p\000I\000\218\000s\001\020\001o\001%\000p\000I\000\218\000s\000\154\001\n\000\"\000\208\000\012\001\219\001o\0001\001\006\000\191\000\233\001i\000\n\000\n\000\\\000\n\000\n\000\\\000\n\000>\000\n\000\n\000>\000\020\000A\001\149\000\031\002%\000\161\000\020\000A\001\149\001\002\002%\000^\001?\000\218\001A\000^\001?\001\002\001A\000^\000\020\001'\000\218\001-\000^\000\020\001'\001\002\001-\000\218\000\218\000>"), (16, "\000\000\000\001\000\002\000\003\000\004\000\005\000\006\000\007\000\b\000\t\000\n\000\011\000\012\000\r\000\014\000\015\000\016\000\017\000\018\000\022\000\030\000%\000)\000*\000+\000-\000/\0001\0002\0003\0005\0009\000:\000<\000@\000B\000E\000J\000M\000O\000P\000V\000[\000\\\000_\000`\000d\000e\000h\000k\000q\000x\000z\000|\000}\000\130\000\136\000\139\000\142\000\146\000\150\000\152\000\153\000\155\000\159\000\161\000\164\000\166\000\167\000\170\000\175\000\175\000\178\000\178\000\182\000\189\000\196\000\200\000\202\000\203\000\204\000\208\000\209\000\214\000\216\000\222\000\229\000\232\000\233\000\237\000\242\000\247\000\248\000\252\001\001\001\004\001\015\001\016\001\018\001\020\001\025\001\028\001!\001)\001.\0016\001;\001C\001G\001N\001U\001_\001a\001f\001g\001h\001j\001l\001m\001n\001o\001r\001s\001t\001y\001|\001}\001\128\001\130\001\133\001\137\001\142\001\145\001\146\001\147\001\148\001\150\001\151\001\152\001\153\001\156\001\162\001\165\001\169\001\174\001\178\001\180\001\184\001\190\001\195\001\202\001\203\001\204\001\204\001\206\001\210\001\211\001\216\001\220\001\221\001\225\001\225\001\228\001\235\001\239\001\240\001\241\001\249\002\002\002\t\002\017\002\023\002\029\002#\002,\0024\002?\002J\002X\002^\002g\002n\002y\002}\002\129\002\131\002\136\002\138\002\143\002\144\002\146\002\148\002\150\002\155\002\156\002\158\002\161\002\163\002\166\002\172\002\175\002\181\002\184\002\190\002\193\002\199\002\202\002\208\002\211\002\217\002\220\002\226\002\229\002\235\002\238\002\244\002\247\002\253\003\000\003\006\003\t\003\015\003\018\003\024\003\027\003!\003$\003*\003-\0033\0036\003<\003?\003E\003H\003N\003Q\003W\003Z\003`\003c\003i\003l\003r\003u\003y\003|\003\130\003\133\003\139\003\144\003\152\003\159\003\169\003\176\003\186\003\193\003\203\003\210\003\220\003\229\003\241\003\248\004\002\004\011\004\023\004\030\004(\0041\004=\004?\004A\004C\004E\004G\004K\004Q\004R\004S\004T\004V\004Y\004^\004_\004`\004b\004g\004m\004n\004n\004p\004t\004z\004|\004\128\004\132\004\135\004\145\004\156\004\165\004\175\004\176\004\177\004\179\004\180\004\182\004\182\004\184\004\186\004\190\004\191\004\192\004\194\004\197\004\200\004\201\004\203\004\204\004\205\004\208\004\212\004\218\004\226\004\227\004\228\004\230\004\231\004\233\004\236\004\240\004\245\004\251\004\252\004\253\004\255\005\001\005\006\005\b\005\n\005\015\005\021\005\023\005\028\005\"\005$\005(\005-\005/\0051\0055\005:\005?\005@\005D\005G\005K\005S\005\\\005c\005f\005j\005n\005v\005y\005}\005\129\005\137\005\141\005\146\005\151\005\160\005\164\005\169\005\174\005\183\005\191\005\200\005\209\005\222\005\225\005\229\005\233\005\241\005\244\005\248\005\252\006\004\006\b\006\r\006\018\006\027\006\031\006$\006)\0062\006:\006C\006L\006Y\006Z\006[\006]\006a\006f\006j\006o\006u\006z\006\129\006\137\006\145\006\154\006\162\006\171\006\174\006\178\006\183\006\189\006\192\006\197\006\203\006\205\006\210\006\217\006\219\006\220\006\222\006\225\006\229\006\234\006\240\006\243\006\244\006\247\006\252\006\254\007\002\007\b\007\011\007\r\007\014\007\019\007\022\007\023\007\026\007\026\007\"\007\"\007+\007+\0074\0074\007:\007:\007B\007B\007D\007D\007M\007M\007W\007W\007Y\007Y\007[\007]\007]\007_\007c\007e\007e\007g\007g\007i\007i\007k\007k\007m\007q\007s\007u\007x\007|\007\130\007\135\007\138\007\143\007\146\007\153\007\156\007\162\007\164\007\168\007\169\007\170\007\175\007\179\007\184\007\191\007\199\007\209\007\220\007\221\007\224\007\225\007\228\007\229\007\232\007\233\007\236\007\241\007\244\007\245\007\248\007\249\007\252\007\253\b\000\b\001\b\004\b\005\b\b\b\t\b\012\b\r\b\017\b\018\b\020\b\024\b\029\b \b\"\b%\b'\b)\b,\b.\b2\b7\b8\b:\b;\b=\b@\bA\bB\bC\bD\bE\bI\bJ\bN\bU\bY\b^\bd\bi\bl\bn\bo\bs\bx\b{\b\127\b\131\b\136\b\139\b\140\b\143\b\150\b\158\b\159\b\159\b\160\b\160\b\161\b\162\b\162\b\163\b\164\b\166\b\168\b\170\b\171\b\176\b\177\b\178\b\180\b\181\b\183\b\184\b\186\b\187\b\188\b\189\b\191\b\193\b\195\b\196\b\198\b\199\b\201\b\202\b\204\b\205\b\207\b\210\b\214\b\215\b\217\b\220\b\224\b\227\b\231\b\236\b\242\b\245\b\249\b\254\t\004\t\007\t\t\t\014\t\020\t\025\t\031\t \t!\t\"\t&\t+\t/\t4\t8\t=\t>\t?\t@\tA\tB\tC\tD\tE\tF\tG\tH\tI\tJ\tK\tL\tM\tN\tO\tP\tQ\tR\tS\tT\tU\tV\tW\tW\tW\tX\tX\tY\tY\tZ\t\\\t]\t]\t^\t^\t`\t`\tb\tb\td\ti\ti\tk\tk\tm\tm\to\to\tp\tp\tr\tr\tt\tv\ty\tz\tz\t{\t~\t\131\t\137\t\141\t\144\t\149\t\157\t\164\t\174\t\183\t\195\t\202\t\212\t\213\t\219\t\224\t\226\t\228\t\230\t\232\t\234\t\236\t\238\t\240\t\242\t\244\t\246\t\249\t\251\t\252\t\255\n\002\n\003\n\007\n\b\n\n\n\016\n\018\n\022\n\025\n\027\n\028\n\031\n\"\n#\n$\n%\n&\n(\n*\n,\n0\n1\n4\n5\n8\n<\nF\nF\nG\nG\nH\nI\nK\nM\nM\nN\nO\nR\nU\nX\nY\nZ\n\\\n]\n^\n_\n`\nb\nd\ne\nf\nh\nk\nq\nu\ny\n\128\n\131\n\137\n\141\n\145\n\152\n\158\n\167\n\174\n\181\n\191\n\195\n\202\n\207\n\212\n\220\n\224\n\231\n\236\n\241\n\249\011\000\011\n\011\018\011\026\011%\011&\011)\011,\0110\0114\011<\011=\011@\011C\011G\011K\011S\011S\011X\011Y\011[\011\\\011^\011_\011a\011b\011d\011e\011g\011i\011o\011r\011y\011z\011|\011\127\011\128\011\131\011\132\011\135\011\136\011\139\011\140\011\143\011\144\011\147\011\148\011\151\011\152\011\155\011\157\011\160\011\164\011\169\011\170\011\173\011\176\011\181\011\184\011\190\011\195\011\198\011\204\011\209\011\215\011\224\011\232\011\237\011\245\011\252\011\253\011\254\011\255\012\001\012\005\012\n\012\r\012\019\012\021\012\024\012\028\012\029\012\031\012\"\012%\012)\012.\012/\0123\012:\012<\012>\012?\012@\012A\012B\012D\012F\012O\012Y\012Z\012`\012h\012i\012s\012t\012u\012v\012\128\012\129\012\135\012\136\012\137\012\139\012\141\012\143\012\145\012\146\012\148\012\150\012\152\012\154\012\157\012\160\012\163\012\166\012\168\012\171\012\173\012\176\012\179\012\185\012\187\012\190\012\194\012\199\012\204\012\209\012\214\012\219\012\226\012\231\012\238\012\243\012\250\012\255\r\003\r\007\r\r\r\021\r\027\r\028\r\029\r\030\r \r\"\r%\r'\r*\r-\r2\r7\r:\r=\r@\rA\rB\rF\rI\rL\rQ\rT\rV\r[\r_\rb\rh\rq\rw\r\128\r\134\r\143\r\148\r\152\r\162\r\165\r\168\r\170\r\175\r\179\r\180\r\184\r\191\r\195\r\202\r\206\r\213\r\214\r\215\r\218\r\219\r\225\r\233\r\234\r\237\r\238\r\239\r\241\r\243\r\246\r\250\r\254\014\003\014\004\014\t\014\n\014\011\014\012\014\r\014\014\014\015\014\016\014\017\014\018\014\019\014\020\014\021\014\022\014\023\014\024\014\025\014\026\014\027\014\028\014\029\014\030\014\031\014 \014!\014\"\014#\014$\014%\014&\014'\014(\014)\014*\014+\014,\014-\014.\014/\0140\0141\0142\0143\0144\0145\0146\0147\0148\0149\014:\014;\014<\014=\014>\014?\014G\014I\014M\014U\014^\014b\014g\014p\014z\014\127\014\133\014\142\014\152\014\157\014\163\014\173\014\184\014\190\014\197\014\204\014\212\014\215\014\219\014\227\014\236\014\240\014\245\014\253\015\006\015\015\015\025\015\"\015,\0156\015A\015E\015J\015O\015U\015Z\015`\015f\015m\015v\015\128\015\138\015\149\015\159\015\170\015\181\015\193\015\198\015\204\015\210\015\217\015\223\015\230\015\237\015\245\015\254\016\b\016\018\016\029\016'\0162\016=\016I\016N\016T\016Z\016a\016g\016n\016u\016}\016\135\016\146\016\157\016\169\016\180\016\192\016\204\016\217\016\223\016\230\016\237\016\245\016\252\017\004\017\012\017\021\017\028\017$\017,\0175\017=\017F\017O\017Y\017\\\017`\017d\017i\017m\017r\017w\017}\017\133\017\142\017\151\017\161\017\170\017\180\017\190\017\201\017\205\017\210\017\215\017\221\017\226\017\232\017\238\017\245\017\252\018\004\018\012\018\021\018\028\018$\018,\0185\018=\018F\018O\018Y\018a\018j\018s\018}\018\134\018\144\018\154\018\165\018\170\018\171\018\174\018\175\018\177\018\178\018\179\018\180\018\181\018\183\018\192\018\202\018\203\018\209\018\217\018\218\018\219\018\228\018\229\018\234\018\235\018\236\018\241\018\243\018\245\018\248\018\251\018\254\019\001\019\004\019\007\019\t\019\012\019\015\019\018\019\021\019\024\019\027\019\030\019 \019\"\019#\019$\019'\019)\019-\019/\019/\0191\0192\0196\0199\0199\019:\019=\019?\019@\019A\019A\019B\019C\019D\019F\019H\019J\019L\019M\019N\019O\019P\019R\019V\019Y\019Z\019[\019\\\019a\019f\019l\019r\019y\019z\019{\019|\019}\019\133\019\133\019\134\019\135\019\137\019\139\019\140\019\142\019\144\019\150\019\155\019\159\019\163\019\168\019\173\019\174\019\176")) and lr0_core = - (16, "\000\000\000\001\000\002\000\003\000\004\000\005\000\006\000\007\000\b\000\t\000\n\000\011\000\012\000\r\000\014\000\015\000\016\000\017\000\018\000\019\000\020\000\021\000\022\000\023\000\024\000\025\000\026\000\027\000\028\000\029\000\030\000\031\000 \000!\000\"\000#\000$\000%\000&\000'\000(\000)\000*\000+\000,\000-\000.\000/\0000\0001\0002\0003\0004\0005\0006\0007\0008\0009\000:\000;\000<\000=\000>\000?\000@\000A\000B\000C\000D\000E\000F\000G\000H\000I\000J\000K\000L\000M\000N\000O\000P\000Q\000R\000S\000T\000U\000V\000W\000X\000Y\000Z\000[\000\\\000]\000^\000_\000`\000a\000b\000c\000d\000e\000f\000g\000h\000i\000j\000k\000l\000m\000n\000o\000p\000q\000r\000s\000t\000u\000v\000w\000x\000y\000z\000{\000|\000}\000~\000\127\000\128\000\129\000\130\000\131\000\132\000\133\000\134\000\135\000\136\000\137\000\138\000\139\000\140\000\141\000\142\000\143\000\144\000\145\000\146\000\190\011m\000\147\000\148\000\149\000\150\000\151\000\152\000\153\000\154\000\155\000\156\000\157\000\158\000\159\000\160\000\161\000\162\000\163\000\164\000\165\000\166\000\167\000\168\000\169\000\170\000\171\000\172\000\173\000\174\000\175\000\176\000\177\000\178\000\179\000\180\000\181\000\182\000\183\000\184\000\185\000\186\000\187\000\188\000\189\000\191\000\192\000\193\000\194\000\195\000\196\000\197\000\198\000\199\000\200\000\201\000\202\000\203\000\204\000\205\000\206\000\207\000\208\000\209\000\210\000\211\000\212\000\213\000\214\000\215\000\216\000\217\000\218\000\219\000\220\000\221\000\222\000\223\000\224\000\225\000\226\000\227\000\228\000\229\000\230\000\231\000\232\000\233\000\234\000\235\000\236\000\237\000\238\000\239\000\240\000\241\000\242\000\243\000\244\000\245\000\246\000\247\000\248\000\249\000\250\000\251\000\252\000\253\000\254\000\255\001\000\001\001\001\002\001\003\001\004\001\005\001\006\001\007\001\b\001\t\001\n\001\011\001\012\001\r\001\014\001\015\001\016\001\017\001\018\001\019\001\020\001\021\001\022\001\023\001\024\001\025\001\026\001\027\001\028\001\029\001\030\001\031\001 \001!\001\"\001#\001$\001%\001&\001'\001(\001)\001*\001+\001,\001-\001.\001/\0010\0011\0012\0013\0014\0015\0016\0017\0018\0019\001:\001;\001<\001=\001>\001?\001@\001A\001B\001C\001D\001E\001F\001G\001H\001I\001J\001K\001L\001M\001N\001O\001P\001Q\001R\001S\001T\001U\001V\001W\001X\001Y\001Z\001[\001\\\001]\001^\001_\001`\001a\001b\001c\001d\001e\001f\001g\001h\001i\001j\001k\001l\001m\001n\001o\001p\001q\001r\001s\001t\001u\001v\001w\001x\001y\001z\001{\001|\001}\001~\001\127\001\128\001\129\001\130\001\131\001\132\001\133\001\134\001\135\001\136\001\137\001\138\001\139\001\140\001\141\001\142\001\143\001\144\001\145\001\146\001\147\001\148\001\149\001\150\001\151\001\152\001\153\001\154\001\155\001\156\001\157\001\158\001\159\001\160\001\161\001\162\001\163\001\164\001\165\001\166\001\167\001\168\001\169\001\170\001\171\001\172\001\173\001\174\001\175\001\176\001\177\001\178\001\179\001\180\001\181\001\182\001\183\001\184\001\185\001\186\001\187\001\188\001\189\001\190\001\191\001\192\001\193\001\194\001\195\001\196\001\197\001\198\001\199\001\200\001\201\001\202\001\203\001\204\001\205\001\206\001\207\001\208\001\209\001\210\001\211\001\212\001\213\001\214\001\215\001\216\001\217\001\218\001\219\001\220\001\221\001\222\001\223\001\224\001\225\001\226\001\227\001\228\001\229\001\230\001\231\001\232\001\233\001\234\001\235\001\236\001\237\001\238\001\239\001\240\001\241\001\242\001\243\001\244\001\245\001\246\001\247\001\248\001\249\001\250\001\251\001\252\001\253\001\254\001\255\002\000\002\001\002\002\002\003\002\004\002\005\002\006\002\007\002\b\002\t\002\n\002\011\002\012\002\r\002\014\002\015\002\016\002\017\002\018\002\019\002\020\002\021\002\022\002\023\002\031\002 \002!\002\"\002#\002$\002%\002&\002'\002(\002)\002*\002+\002,\002-\002.\002/\0020\0021\0022\0023\0024\002=\002>\002?\002@\002A\002B\002C\002D\002E\002F\002G\002H\002I\002J\002K\002L\002M\002N\002O\002P\002Q\002R\002S\002T\002U\002V\002W\002X\002Y\002Z\002[\002\\\002]\002^\002_\002`\002a\002b\002c\002d\002e\002f\002g\002h\002i\002j\002k\002l\002m\002n\002o\002p\002q\002r\002s\002t\002u\002v\002w\002x\002y\002z\002{\002|\002}\002~\002\127\002\128\002\129\002\130\002\131\002\132\002\133\002\134\002\135\002\136\002\137\002\138\002\139\002\140\002\141\002\142\002\143\002\152\002\153\002\154\002\155\002\156\002\157\002\158\002\159\002\160\002\161\002\162\002\163\002\164\002\165\002\166\002\167\002\168\002\169\002\170\002\171\002\172\002\173\002\174\002\175\002\176\002\177\002\178\002\179\002\180\002\181\002\182\002\183\002\184\002\185\002\186\002\187\002\188\002\189\002\190\002\191\002\192\002\193\002\194\002\195\002\196\002\197\002\198\002\199\002\200\002\201\002\202\002\203\002\204\002\205\002\206\002\207\002\208\002\209\002\210\002\211\002\212\002\213\002\214\002\215\002\216\002\217\002\218\002\219\002\220\002\242\002\243\002\244\002\245\002\246\002\247\002\248\002\249\002\250\002\251\002\252\002\253\002\254\002\255\002\231\002\232\002\233\003\000\003\001\002\236\002\237\003\002\003\003\003\004\003\005\003\006\003\007\003\b\003\t\003\n\003\011\003\012\002\221\002\222\002\223\002\224\002\225\002\226\002\227\002\228\002\229\002\230\002\234\002\235\003\r\003\014\003\015\002\238\002\239\002\240\002\241\003\016\003\017\003\018\003\019\003\020\003\021\003\022\003\023\003\024\003\025\003\026\003\027\003\028\003\029\003\030\003\031\003 \003!\003\"\003#\003$\003%\003&\003'\003(\003)\003*\003+\003,\003-\003.\003/\003b\003c\003d\003=\003e\003K\003L\003Q\003R\003S\003T\003U\003V\003W\003X\003Y\003Z\003[\003\\\003]\003^\003_\003f\002\144\002\145\002\146\002\147\002\148\002\149\002\150\002\151\0030\0031\003`\003a\003g\003h\0032\0033\0034\0035\0036\0037\0038\0039\003:\003;\003<\003>\003i\003j\003k\003l\003m\003n\003o\003p\003q\003r\003s\003t\003u\003v\003w\003x\003y\003z\003{\003|\003}\003~\003\127\003\128\003\129\003\130\003\131\003\132\003\133\003\134\003\135\003\136\003\137\003\138\003\139\003\140\003\141\003\142\003\143\003\144\003\145\003\146\003\147\003\148\003\149\003\150\003\151\003\152\003\153\003\154\003\155\003\156\003\157\003\158\003\159\003\160\003\161\003\162\003\163\003\164\003\165\003\166\003\167\003\168\003\169\003\170\003\171\003\172\003\173\003\174\003\175\003\176\003\177\003\178\003\179\003\180\003\181\003\182\003\183\003\184\003\185\003\186\003\187\003\188\003\189\003\190\003\191\003\192\003\193\003\194\003\195\003\196\003\197\003\198\003\199\003\200\003\201\003\202\003\203\003\204\003\205\003\206\003\207\003\208\003\209\003\210\003\211\003\212\003\213\003\214\003\215\003\216\003\217\003\218\003\219\003\220\003\221\003\222\003\223\003\224\003\225\003\226\003\227\003\228\003\229\003\230\003\231\003\232\003\233\003\234\003\235\003\236\003\237\003\238\003\239\003\240\003\241\003\242\003\243\003\244\003\245\003\246\003\247\003\248\003\249\003\250\003\251\003\252\003\253\003\254\003\255\004\000\004\001\004\002\004\003\004\004\004\005\004\006\004\007\004\b\004\t\004\n\004\011\004\012\004\r\004\014\004\015\004\016\004\017\004\018\004\019\004\020\004\021\004\022\004\023\004\024\004\025\004\026\004\027\004\028\004\029\004\030\004\031\004 \004!\004P\004Q\004R\004S\004T\004U\004V\004W\004X\004Y\004Z\004[\004\\\004]\004^\004_\004`\004a\004b\004c\004d\004e\004f\004g\004h\004i\004j\004k\004l\004m\004n\004o\004p\004q\004r\004s\004t\004u\004v\004w\004x\004y\004z\004{\004|\004}\004~\004\127\004\130\004\142\004\132\004\133\004\128\004\129\004\131\004\135\004\136\004\137\004\138\004\139\004\140\004\141\004\134\004\143\004\144\004\145\004\146\004\147\004\148\004\149\004\150\004\151\004\152\004\153\004\154\004\155\004\156\004\157\004\158\004\159\004\160\004\161\004\162\004\163\004\164\004\165\004\166\004\167\004\168\004\169\004\170\004\171\004\172\004\173\004\174\004\175\004\176\004\177\004\178\004\179\004\180\004\181\004\182\004\183\004\184\004\185\004\186\004\187\004\188\004\189\004\190\004\191\004\192\004\193\004\194\004\195\004/\0040\0041\0042\0043\0044\0045\0046\0047\0048\004\"\004#\004$\004%\004(\004)\004*\004+\004,\004-\004.\004=\004>\004?\004@\004A\004D\004E\004F\004G\004H\004I\004J\004K\004L\004M\004N\004O\004&\004'\0049\004:\004;\004<\006\225\006\226\004\197\004\198\004\199\004\200\004\201\004\202\004\203\004\204\004\205\004\206\004\216\004\217\004\218\004\219\005\237\005\238\005\239\005\240\004B\004C\004\224\004\225\004\226\004\227\004\228\004\229\004\230\004\231\004\232\004\233\004\234\004\235\004\236\005#\005$\005%\005&\005'\005(\005\133\005\134\005\135\005\136\005\137\005\138\005\139\005\140\005\141\005\142\005\143\005\144\005\145\005\146\005\147\004\237\004\238\004\239\004\240\004\241\004\242\004\255\005\000\005\001\005\002\005\003\005\004\005\011\005\012\005\r\005\014\005\015\005\016\005)\005*\005+\005,\005-\005.\004\243\004\244\004\245\004\246\004\247\004\248\004\249\004\250\004\251\004\252\004\253\004\254\005\005\005\006\005\007\005\b\005\t\005\n\005\017\005\018\005\019\005\020\005\021\005\022\005\023\005\024\005\025\005\026\005\027\005\028\005\029\005\030\005\031\005 \005!\005\"\005/\0050\0051\0052\0053\0054\0055\0056\0057\0058\0059\005:\005a\005b\005c\005d\005e\005f\005m\005n\005o\005p\005q\005r\005s\005t\005u\005v\005w\005x\005;\005<\005=\005>\005?\005@\005A\005B\005C\005D\005E\005F\005G\005H\005I\005J\005K\005L\005g\005h\005i\005j\005k\005l\005y\005z\005{\005|\005}\005~\005\127\005\128\005\129\005\130\005\131\005\132\005M\005N\005O\005P\005Q\005R\005S\005T\005U\005V\005W\005X\005Y\005Z\005[\005\\\005]\005^\005_\005`\005\148\005\149\005\150\005\151\005\152\005\153\005\154\005\155\005\156\005\157\005\158\005\159\005\160\005\161\005\162\005\163\005\164\005\165\005\166\005\167\005\168\005\169\005\170\005\171\005\172\005\173\005\174\005\175\005\176\005\177\005\178\005\179\005\180\005\181\005\182\005\183\005\184\005\185\005\186\005\187\005\188\005\189\005\190\005\191\005\192\005\193\005\194\005\195\005\196\005\197\005\198\005\199\005\200\005\201\005\202\005\203\005\204\005\205\005\206\005\207\005\208\003?\003@\003A\003B\003C\003D\003E\003F\003G\003H\003I\003J\003M\003N\003O\003P\005\209\005\210\005\211\005\212\005\213\005\214\005\215\005\216\005\217\005\218\005\219\005\220\005\221\005\222\005\223\005\224\005\225\005\226\005\227\005\228\005\229\005\230\005\231\005\232\005\233\005\234\005\235\005\241\006\227\006\228\006\229\006\230\006\231\006\232\006\233\006\234\006\235\006\236\006\237\006M\006K\006L\006\238\006\239\006\240\006\241\006\242\006\243\006\244\006~\006\127\006\128\006\129\006\130\006\131\006\132\006\133\006\134\006\135\006\136\006\137\006\138\006\139\006\140\006\141\006\142\006\143\006\144\006\145\006\146\006\147\006\148\006\149\006\150\006\151\006\152\006\153\006\154\006\155\006\156\006\157\006\158\006\159\006\160\006\161\006\162\006\163\006\164\006\165\006\166\006\167\006\168\006\169\006\170\006\171\006\172\006\173\006\174\006\175\006\176\006\177\006\178\006\179\006\180\006\181\006\182\006\183\006\184\006\185\006\186\006\187\006\188\006\189\006\190\006\191\006\192\006\193\006\194\006\195\006\196\006\197\006\198\006\199\006\200\006\201\006\202\006\203\006\204\006\205\006\206\006\207\006\208\006\209\006\210\006\211\006\212\006\213\006\214\006\215\006\216\006\217\006\218\006\219\006\220\006\221\006\222\006\223\006\224\006\252\006\253\006\254\006\255\007\000\007\001\007\002\007\003\007\004\006\245\006\246\0061\0062\006\247\006\248\006\249\006\250\006\251\004\196\005\242\005\243\005\244\005\245\005\246\005\247\005\248\005\249\005\250\005\251\005\252\005\253\005\254\005\255\006\000\006\001\006\002\006\003\006\004\006\005\006\006\006\007\006\b\006\t\006\n\006\011\006\012\006\r\006\014\006\015\006\016\006\017\006\018\006\019\006\020\006\021\006\022\006\023\006\024\006\025\006\026\006\027\006\028\006\029\006\030\006\031\006 \006!\006\"\006#\006$\006%\006&\006'\006(\006)\006*\006+\006,\006-\006.\006/\0060\0063\0064\0065\0066\0067\0068\0069\006:\006;\006<\006=\006>\006?\006@\006A\006B\006C\006D\006E\006F\006G\006H\006I\006J\006N\006O\006P\006Q\006R\006S\006T\006U\006V\006W\006X\006Y\006Z\006[\006\\\006]\006^\006_\006`\006a\006b\006c\006d\006e\006f\006g\006h\006i\006j\006k\006l\006m\006n\006o\006p\006q\006r\006s\006t\006u\006v\006w\006x\006y\006z\006{\006|\006}\007\005\007\006\007\007\007\b\007\t\007\n\007\011\007\012\007\r\007\014\007\015\007\016\007\017\007\018\007\019\007\020\007\021\007\022\007\023\007\024\007\025\007\026\007\027\007\028\007\029\007\030\007\031\007 \007!\007\"\007#\007$\007%\007&\007'\007(\007)\007*\007+\004\207\004\208\004\209\004\210\004\211\004\212\004\213\004\214\004\215\004\220\004\221\004\222\004\223\005\236\007,\007-\007.\007/\0070\0071\0072\0073\0074\0075\0076\0077\0078\0079\007:\007;\007<\007=\007>\007?\007@\007A\007B\007C\007D\007E\007F\007G\007H\007I\007J\007K\007L\007M\007N\007O\007P\007Q\007R\007S\007T\007U\007V\007W\007X\007Y\007Z\007[\007\\\007]\007^\007_\007`\007a\007b\007c\007d\007e\007f\007g\007h\007i\007j\007k\007l\007m\007n\007o\007p\007q\007r\007s\007t\007u\007v\007w\007x\007y\007z\007{\007|\007}\007~\007\127\007\128\007\129\007\130\007\131\007\132\007\133\007\134\007\135\007\136\007\137\007\138\007\139\007\140\007\141\007\142\007\143\007\144\007\145\007\146\007\147\007\148\007\149\007\150\007\151\007\152\007\153\007\154\007\155\007\156\007\157\007\158\007\159\007\160\007\161\007\162\007\163\007\164\007\165\007\166\007\167\007\168\007\169\007\170\007\171\007\172\007\173\007\174\007\175\007\176\007\177\007\178\007\179\007\180\007\181\007\182\007\183\007\184\007\185\007\186\007\187\007\188\007\189\007\190\007\191\007\192\007\193\007\194\007\195\007\196\007\197\007\198\007\199\007\200\007\201\007\202\007\203\007\204\007\205\007\206\007\207\007\208\007\209\007\210\007\211\007\212\007\213\007\214\007\215\007\216\007\217\007\218\007\219\007\220\007\221\007\222\007\223\007\224\007\225\007\226\007\227\007\228\007\229\007\230\007\231\007\232\007\233\007\234\007\235\007\236\007\237\007\238\007\239\007\240\007\241\007\242\007\243\007\244\007\245\007\246\007\247\007\248\007\249\007\250\007\251\007\252\007\253\007\254\007\255\b\000\b\001\b\002\b\003\b\004\b\005\b\006\b\007\b\b\b\t\b\n\b\011\b\012\b\r\b\014\b\015\b\016\b\017\b\018\b\019\b\020\b\021\b\022\b\023\b\024\b\025\b\026\b\027\b\028\b\029\b\030\b\031\b \b!\b\"\b#\b$\b%\b&\b'\b(\b)\b*\b+\b,\b-\b.\b/\b0\b1\b2\b3\b4\b5\b6\b7\b8\b9\b:\b;\b<\b=\b>\b?\b@\bA\bB\bC\bD\bE\bF\bG\bH\bI\bJ\bK\bL\bM\bN\bO\bP\bQ\bR\bS\bT\bU\bV\bW\bX\bY\bZ\b[\b\\\b]\b^\b_\b`\ba\bb\bc\bd\be\bf\bg\bh\bi\bj\bk\bl\bm\bn\bo\bp\bq\br\bs\bt\bu\bv\bw\bx\by\bz\b{\b|\b}\b~\b\127\b\128\b\129\b\130\b\131\b\132\b\133\b\134\b\135\b\136\b\137\b\138\b\139\b\140\b\141\b\142\b\143\b\144\b\145\b\146\b\147\b\148\b\149\b\150\b\151\b\152\b\153\b\154\b\155\b\156\b\157\b\158\b\159\b\160\b\161\b\162\b\163\b\164\b\165\b\166\b\167\b\168\b\169\b\170\b\171\b\172\b\173\b\174\b\175\b\176\b\177\b\178\b\179\b\180\b\181\b\182\b\183\b\184\b\185\b\186\b\187\b\188\b\189\b\190\b\191\b\192\b\193\b\194\b\195\b\196\b\197\b\198\b\199\b\200\b\201\b\202\b\203\b\204\b\205\b\206\b\207\b\208\b\209\b\210\b\211\b\212\b\213\b\214\b\215\b\216\b\217\b\218\b\219\b\220\b\221\b\222\b\223\b\224\b\225\b\226\b\227\b\228\b\229\b\230\b\231\b\232\b\233\b\234\b\235\b\236\b\237\b\238\b\239\b\240\b\241\b\242\b\243\b\244\b\245\b\246\b\247\b\248\b\249\b\250\b\251\b\252\b\253\b\254\b\255\t\000\t\001\t\002\t\003\t\004\t\005\t\006\t\007\t\b\t\t\t\n\t\011\t\012\t\r\t\014\t\015\t\016\t\017\t\018\t\019\t\020\t\021\t\022\t\023\t\024\t\025\t\026\t\027\t\028\t\029\t\030\t\031\t \t!\t\"\t#\t$\t%\t&\t'\t(\t)\t*\t+\t,\t-\t.\t/\t0\t1\t2\t3\t4\t5\t6\t7\t8\t9\t:\t;\t<\t=\t>\t?\t@\tA\tB\tC\tD\tE\tF\tG\tH\tI\tJ\tK\tL\tM\tN\tO\tP\tQ\tR\tS\tT\tU\tV\tW\tX\tY\tZ\t[\t\\\t]\t^\t_\t`\ta\tb\tc\td\te\tf\tg\th\ti\tj\tk\tl\tm\tn\to\tp\tq\tr\ts\tt\tu\tv\tw\tx\ty\tz\t{\t|\t}\t~\t\127\t\128\t\129\t\130\t\131\t\132\t\133\t\134\t\135\t\136\t\137\t\138\t\139\t\140\t\141\t\142\t\143\t\144\t\145\t\146\t\147\t\148\t\149\t\150\t\151\t\152\t\153\t\154\t\155\t\156\t\157\t\158\t\159\t\160\t\161\t\162\t\163\t\164\t\165\t\166\t\167\t\168\t\169\t\170\t\171\t\172\t\173\t\174\t\175\t\176\t\177\t\178\t\179\t\180\t\181\t\182\t\183\t\184\t\185\t\186\t\187\t\188\t\189\t\190\t\191\t\192\t\193\t\194\t\195\t\196\t\197\t\198\t\199\t\200\t\201\t\202\t\203\t\204\t\205\t\206\t\207\t\208\t\209\t\210\t\211\t\212\t\213\t\214\t\215\t\216\t\217\t\218\t\219\t\220\t\221\t\222\t\223\t\224\t\225\t\226\t\227\t\228\t\229\t\230\t\231\t\232\t\233\t\234\t\239\t\240\t\241\t\242\t\243\0025\0026\0027\0028\0029\002:\002;\002<\t\235\t\236\t\237\t\238\t\244\t\245\t\246\t\247\t\248\t\249\t\250\t\251\t\252\t\253\t\254\t\255\n\000\n\001\n\002\n\003\n\011\n\012\n\r\n\014\n\015\n\016\n\017\n\018\002\024\002\025\002\026\002\027\002\028\002\029\002\030\n\004\n\005\n\006\n\007\n\b\n\t\n\n\n\019\n\020\n\021\n\022\n\023\n\024\n\025\n\026\n\027\n\028\n\029\n\030\n\031\n \n!\n\"\n#\n$\n%\n&\n'\n(\n)\n*\n+\n,\n-\n.\n/\n0\n1\n2\n3\n4\n5\n6\n7\n8\n9\n:\n;\n<\n=\n>\n?\n@\nA\nB\nC\nD\nE\nF\nG\nH\nI\nJ\nK\nL\nM\nN\nO\nP\nQ\nR\nS\nT\nU\nV\nW\nX\nY\nZ\n[\n\\\n]\n^\n_\n`\na\nb\nc\nd\ne\nf\ng\nh\ni\nj\nk\nl\nm\nn\no\np\nq\nr\ns\nt\nu\nv\nw\nx\ny\nz\n{\n|\n}\n~\n\127\n\128\n\129\n\130\n\131\n\132\n\133\n\134\n\135\n\136\n\137\n\138\n\139\n\140\n\141\n\142\n\143\n\144\n\145\n\146\n\147\n\148\n\149\n\150\n\151\n\152\n\153\n\154\n\155\n\156\n\157\n\158\n\159\n\160\n\161\n\162\n\163\n\164\n\165\n\166\n\167\n\168\n\169\n\170\n\171\n\172\n\173\n\174\n\175\n\176\n\177\n\178\n\179\n\180\n\181\n\182\n\183\n\184\n\185\n\186\n\187\n\188\n\189\n\190\n\191\n\192\n\193\n\194\n\195\n\196\n\197\n\198\n\199\n\200\n\201\n\202\n\203\n\204\n\205\n\206\n\207\n\208\n\209\n\210\n\211\n\212\n\213\n\214\n\215\n\216\n\217\n\218\n\219\n\220\n\221\n\222\n\223\n\224\n\225\n\226\n\227\n\228\n\229\n\230\n\231\n\232\n\233\n\234\n\235\n\236\n\237\n\238\n\239\n\240\n\241\n\242\n\243\n\244\n\245\n\246\n\247\n\248\n\249\n\250\n\251\n\252\n\253\n\254\n\255\011\000\011\001\011\002\011\003\011\004\011\005\011\006\011\007\011\b\011\t\011\n\011\011\011\012\011\r\011\014\011\015\011\016\011\017\011\018\011\019\011\020\011\021\011\022\011\023\011\024\011\025\011\026\011\027\011\028\011\029\011\030\011\031\011 \011!\011\"\011#\011$\011%\011&\011'\011(\011)\011*\011+\011,\011-\011.\011/\0110\0111\0112\0113\0114\0115\0116\0117\0118\0119\011:\011;\011<\011=\011>\011?\011@\011A\011B\011C\011D\011E\011F\011G\011H\011I\011J\011K\011L\011M\011N\011O\011P\011Q\011R\011S\011T\011U\011V\011W\011X\011Y\011Z\011[\011\\\011]\011^\011_\011`\011a\011b\011c\011d\011e\011f\011g\011h\011i\011j\011k\011l\011n\011o\011p\011q\011r\011s\011t\011u\011v\011w\011x\011y\011z\011{\011|\011}\011~\011\127\011\128\011\129\011\130\011\131\011\132\011\133\011\134\011\135\011\136\011\137\011\138\011\139\011\140\011\141\011\142\011\143\011\144\011\145\011\146\011\147\011\148\011\149\011\150\011\151\011\152\011\153\011\154\011\155\011\156\011\157\011\158\011\159\011\160\011\161\011\162\011\163\011\164\011\165\011\166\011\167\011\168\011\169\011\170\011\171\011\172\011\173\011\174\011\175\011\176\011\177\011\178\011\179\011\180\011\181\011\182\011\183\011\184\011\185\011\186\011\187\011\188\011\189\011\190\011\191\011\192\011\193\011\194\011\195\011\196\011\197\011\198\011\199\011\200\011\201\011\202\011\203\011\204\011\205\011\206\011\207\011\208\011\209\011\210\011\211\011\212\011\213\011\214\011\215\011\216\011\217\011\218\011\219\011\220\011\221\011\222\011\223\011\224\011\225\011\226\011\227\011\228\011\229\011\230\011\231\011\232\011\233\011\234\011\235\011\236\011\237\011\238\011\239\011\240\011\241\011\242\011\243\011\244\011\245\011\246\011\247\011\248\011\249") + (16, "\000\000\000\001\000\002\000\003\000\004\000\005\000\006\000\007\000\b\000\t\000\n\000\011\000\012\000\r\000\014\000\015\000\016\000\017\000\018\000\019\000\020\000\021\000\022\000\023\000\024\000\025\000\026\000\027\000\028\000\029\000\030\000\031\000 \000!\000\"\000#\000$\000%\000&\000'\000(\000)\000*\000+\000,\000-\000.\000/\0000\0001\0002\0003\0004\0005\0006\0007\0008\0009\000:\000;\000<\000=\000>\000?\000@\000A\000B\000C\000D\000E\000F\000G\000H\000I\000J\000K\000L\000M\000N\000O\000P\000Q\000R\000S\000T\000U\000V\000W\000X\000Y\000Z\000[\000\\\000]\000^\000_\000`\000a\000b\000c\000d\000e\000f\000g\000h\000i\000j\000k\000l\000m\000n\000o\000p\000q\000r\000s\000t\000u\000v\000w\000x\000y\000z\000{\000|\000}\000~\000\127\000\128\000\129\000\130\000\131\000\132\000\133\000\134\000\135\000\136\000\137\000\138\000\139\000\140\000\141\000\142\000\143\000\144\000\145\000\146\000\190\011l\000\147\000\148\000\149\000\150\000\151\000\152\000\153\000\154\000\155\000\156\000\157\000\158\000\159\000\160\000\161\000\162\000\163\000\164\000\165\000\166\000\167\000\168\000\169\000\170\000\171\000\172\000\173\000\174\000\175\000\176\000\177\000\178\000\179\000\180\000\181\000\182\000\183\000\184\000\185\000\186\000\187\000\188\000\189\000\191\000\192\000\193\000\194\000\195\000\196\000\197\000\198\000\199\000\200\000\201\000\202\000\203\000\204\000\205\000\206\000\207\000\208\000\209\000\210\000\211\000\212\000\213\000\214\000\215\000\216\000\217\000\218\000\219\000\220\000\221\000\222\000\223\000\224\000\225\000\226\000\227\000\228\000\229\000\230\000\231\000\232\000\233\000\234\000\235\000\236\000\237\000\238\000\239\000\240\000\241\000\242\000\243\000\244\000\245\000\246\000\247\000\248\000\249\000\250\000\251\000\252\000\253\000\254\000\255\001\000\001\001\001\002\001\003\001\004\001\005\001\006\001\007\001\b\001\t\001\n\001\011\001\012\001\r\001\014\001\015\001\016\001\017\001\018\001\019\001\020\001\021\001\022\001\023\001\024\001\025\001\026\001\027\001\028\001\029\001\030\001\031\001 \001!\001\"\001#\001$\001%\001&\001'\001(\001)\001*\001+\001,\001-\001.\001/\0010\0011\0012\0013\0014\0015\0016\0017\0018\0019\001:\001;\001<\001=\001>\001?\001@\001A\001B\001C\001D\001E\001F\001G\001H\001I\001J\001K\001L\001M\001N\001O\001P\001Q\001R\001S\001T\001U\001V\001W\001X\001Y\001Z\001[\001\\\001]\001^\001_\001`\001a\001b\001c\001d\001e\001f\001g\001h\001i\001j\001k\001l\001m\001n\001o\001p\001q\001r\001s\001t\001u\001v\001w\001x\001y\001z\001{\001|\001}\001~\001\127\001\128\001\129\001\130\001\131\001\132\001\133\001\134\001\135\001\136\001\137\001\138\001\139\001\140\001\141\001\142\001\143\001\144\001\145\001\146\001\147\001\148\001\149\001\150\001\151\001\152\001\153\001\154\001\155\001\156\001\157\001\158\001\159\001\160\001\161\001\162\001\163\001\164\001\165\001\166\001\167\001\168\001\169\001\170\001\171\001\172\001\173\001\174\001\175\001\176\001\177\001\178\001\179\001\180\001\181\001\182\001\183\001\184\001\185\001\186\001\187\001\188\001\189\001\190\001\191\001\192\001\193\001\194\001\195\001\196\001\197\001\198\001\199\001\200\001\201\001\202\001\203\001\204\001\205\001\206\001\207\001\208\001\209\001\210\001\211\001\212\001\213\001\214\001\215\001\216\001\217\001\218\001\219\001\220\001\221\001\222\001\223\001\224\001\225\001\226\001\227\001\228\001\229\001\230\001\231\001\232\001\233\001\234\001\235\001\236\001\237\001\238\001\239\001\240\001\241\001\242\001\243\001\244\001\245\001\246\001\247\001\248\001\249\001\250\001\251\001\252\001\253\001\254\001\255\002\000\002\001\002\002\002\003\002\004\002\005\002\006\002\007\002\b\002\t\002\n\002\011\002\012\002\r\002\014\002\015\002\016\002\017\002\018\002\019\002\020\002\021\002\022\002\023\002\031\002 \002!\002\"\002#\002$\002%\002&\002'\002(\002)\002*\002+\002,\002-\002.\002/\0020\0021\0022\0023\0024\002=\002>\002?\002@\002A\002B\002C\002D\002E\002F\002G\002H\002I\002J\002K\002L\002M\002N\002O\002P\002Q\002R\002S\002T\002U\002V\002W\002X\002Y\002Z\002[\002\\\002]\002^\002_\002`\002a\002b\002c\002d\002e\002f\002g\002h\002i\002j\002k\002l\002m\002n\002o\002p\002q\002r\002s\002t\002u\002v\002w\002x\002y\002z\002{\002|\002}\002~\002\127\002\128\002\129\002\130\002\131\002\132\002\133\002\134\002\135\002\136\002\137\002\138\002\139\002\140\002\141\002\142\002\143\002\152\002\153\002\154\002\155\002\156\002\157\002\158\002\159\002\160\002\161\002\162\002\163\002\164\002\165\002\166\002\167\002\168\002\169\002\170\002\171\002\172\002\173\002\174\002\175\002\176\002\177\002\178\002\179\002\180\002\181\002\182\002\183\002\184\002\185\002\186\002\187\002\188\002\189\002\190\002\191\002\192\002\193\002\194\002\195\002\196\002\197\002\198\002\199\002\200\002\201\002\202\002\203\002\204\002\205\002\206\002\207\002\208\002\209\002\210\002\211\002\212\002\213\002\214\002\215\002\216\002\217\002\218\002\219\002\220\002\242\002\243\002\244\002\245\002\246\002\247\002\248\002\249\002\250\002\251\002\252\002\253\002\254\002\255\002\231\002\232\002\233\003\000\003\001\002\236\002\237\003\002\003\003\003\004\003\005\003\006\003\007\003\b\003\t\003\n\003\011\003\012\002\221\002\222\002\223\002\224\002\225\002\226\002\227\002\228\002\229\002\230\002\234\002\235\003\r\003\014\003\015\002\238\002\239\002\240\002\241\003\016\003\017\003\018\003\019\003\020\003\021\003\022\003\023\003\024\003\025\003\026\003\027\003\028\003\029\003\030\003\031\003 \003!\003\"\003#\003$\003%\003&\003'\003(\003)\003*\003+\003,\003-\003.\003/\003b\003c\003d\003=\003e\003K\003L\003Q\003R\003S\003T\003U\003V\003W\003X\003Y\003Z\003[\003\\\003]\003^\003_\003f\002\144\002\145\002\146\002\147\002\148\002\149\002\150\002\151\0030\0031\003`\003a\003g\003h\0032\0033\0034\0035\0036\0037\0038\0039\003:\003;\003<\003>\003i\003j\003k\003l\003m\003n\003o\003p\003q\003r\003s\003t\003u\003v\003w\003x\003y\003z\003{\003|\003}\003~\003\127\003\128\003\129\003\130\003\131\003\132\003\133\003\134\003\135\003\136\003\137\003\138\003\139\003\140\003\141\003\142\003\143\003\144\003\145\003\146\003\147\003\148\003\149\003\150\003\151\003\152\003\153\003\154\003\155\003\156\003\157\003\158\003\159\003\160\003\161\003\162\003\163\003\164\003\165\003\166\003\167\003\168\003\169\003\170\003\171\003\172\003\173\003\174\003\175\003\176\003\177\003\178\003\179\003\180\003\181\003\182\003\183\003\184\003\185\003\186\003\187\003\188\003\189\003\190\003\191\003\192\003\193\003\194\003\195\003\196\003\197\003\198\003\199\003\200\003\201\003\202\003\203\003\204\003\205\003\206\003\207\003\208\003\209\003\210\003\211\003\212\003\213\003\214\003\215\003\216\003\217\003\218\003\219\003\220\003\221\003\222\003\223\003\224\003\225\003\226\003\227\003\228\003\229\003\230\003\231\003\232\003\233\003\234\003\235\003\236\003\237\003\238\003\239\003\240\003\241\003\242\003\243\003\244\003\245\003\246\003\247\003\248\003\249\003\250\003\251\003\252\003\253\003\254\003\255\004\000\004\001\004\002\004\003\004\004\004\005\004\006\004\007\004\b\004\t\004\n\004\011\004\012\004\r\004\014\004\015\004\016\004\017\004\018\004\019\004\020\004\021\004\022\004\023\004\024\004\025\004\026\004\027\004\028\004\029\004\030\004\031\004 \004!\004P\004Q\004R\004S\004T\004U\004V\004W\004X\004Y\004Z\004[\004\\\004]\004^\004_\004`\004a\004b\004c\004d\004e\004f\004g\004h\004i\004j\004k\004l\004m\004n\004o\004p\004q\004r\004s\004t\004u\004v\004w\004x\004y\004z\004{\004|\004}\004~\004\127\004\130\004\142\004\132\004\133\004\128\004\129\004\131\004\135\004\136\004\137\004\138\004\139\004\140\004\141\004\134\004\143\004\144\004\145\004\146\004\147\004\148\004\149\004\150\004\151\004\152\004\153\004\154\004\155\004\156\004\157\004\158\004\159\004\160\004\161\004\162\004\163\004\164\004\165\004\166\004\167\004\168\004\169\004\170\004\171\004\172\004\173\004\174\004\175\004\176\004\177\004\178\004\179\004\180\004\181\004\182\004\183\004\184\004\185\004\186\004\187\004\188\004\189\004\190\004\191\004\192\004\193\004\194\004\195\004/\0040\0041\0042\0043\0044\0045\0046\0047\0048\004\"\004#\004$\004%\004(\004)\004*\004+\004,\004-\004.\004=\004>\004?\004@\004A\004D\004E\004F\004G\004H\004I\004J\004K\004L\004M\004N\004O\004&\004'\0049\004:\004;\004<\006\225\006\226\004\197\004\198\004\199\004\200\004\201\004\202\004\203\004\204\004\205\004\206\004\216\004\217\004\218\004\219\005\237\005\238\005\239\005\240\004B\004C\004\224\004\225\004\226\004\227\004\228\004\229\004\230\004\231\004\232\004\233\004\234\004\235\004\236\005#\005$\005%\005&\005'\005(\005\133\005\134\005\135\005\136\005\137\005\138\005\139\005\140\005\141\005\142\005\143\005\144\005\145\005\146\005\147\004\237\004\238\004\239\004\240\004\241\004\242\004\255\005\000\005\001\005\002\005\003\005\004\005\011\005\012\005\r\005\014\005\015\005\016\005)\005*\005+\005,\005-\005.\004\243\004\244\004\245\004\246\004\247\004\248\004\249\004\250\004\251\004\252\004\253\004\254\005\005\005\006\005\007\005\b\005\t\005\n\005\017\005\018\005\019\005\020\005\021\005\022\005\023\005\024\005\025\005\026\005\027\005\028\005\029\005\030\005\031\005 \005!\005\"\005/\0050\0051\0052\0053\0054\0055\0056\0057\0058\0059\005:\005a\005b\005c\005d\005e\005f\005m\005n\005o\005p\005q\005r\005s\005t\005u\005v\005w\005x\005;\005<\005=\005>\005?\005@\005A\005B\005C\005D\005E\005F\005G\005H\005I\005J\005K\005L\005g\005h\005i\005j\005k\005l\005y\005z\005{\005|\005}\005~\005\127\005\128\005\129\005\130\005\131\005\132\005M\005N\005O\005P\005Q\005R\005S\005T\005U\005V\005W\005X\005Y\005Z\005[\005\\\005]\005^\005_\005`\005\148\005\149\005\150\005\151\005\152\005\153\005\154\005\155\005\156\005\157\005\158\005\159\005\160\005\161\005\162\005\163\005\164\005\165\005\166\005\167\005\168\005\169\005\170\005\171\005\172\005\173\005\174\005\175\005\176\005\177\005\178\005\179\005\180\005\181\005\182\005\183\005\184\005\185\005\186\005\187\005\188\005\189\005\190\005\191\005\192\005\193\005\194\005\195\005\196\005\197\005\198\005\199\005\200\005\201\005\202\005\203\005\204\005\205\005\206\005\207\005\208\003?\003@\003A\003B\003C\003D\003E\003F\003G\003H\003I\003J\003M\003N\003O\003P\005\209\005\210\005\211\005\212\005\213\005\214\005\215\005\216\005\217\005\218\005\219\005\220\005\221\005\222\005\223\005\224\005\225\005\226\005\227\005\228\005\229\005\230\005\231\005\232\005\233\005\234\005\235\005\241\006\227\006\228\006\229\006\230\006\231\006\232\006\233\006\234\006\235\006\236\006\237\006M\006K\006L\006\238\006\239\006\240\006\241\006\242\006\243\006\244\006~\006\127\006\128\006\129\006\130\006\131\006\132\006\133\006\134\006\135\006\136\006\137\006\138\006\139\006\140\006\141\006\142\006\143\006\144\006\145\006\146\006\147\006\148\006\149\006\150\006\151\006\152\006\153\006\154\006\155\006\156\006\157\006\158\006\159\006\160\006\161\006\162\006\163\006\164\006\165\006\166\006\167\006\168\006\169\006\170\006\171\006\172\006\173\006\174\006\175\006\176\006\177\006\178\006\179\006\180\006\181\006\182\006\183\006\184\006\185\006\186\006\187\006\188\006\189\006\190\006\191\006\192\006\193\006\194\006\195\006\196\006\197\006\198\006\199\006\200\006\201\006\202\006\203\006\204\006\205\006\206\006\207\006\208\006\209\006\210\006\211\006\212\006\213\006\214\006\215\006\216\006\217\006\218\006\219\006\220\006\221\006\222\006\223\006\224\006\252\006\253\006\254\006\255\007\000\007\001\007\002\007\003\007\004\006\245\006\246\0061\0062\006\247\006\248\006\249\006\250\006\251\004\196\005\242\005\243\005\244\005\245\005\246\005\247\005\248\005\249\005\250\005\251\005\252\005\253\005\254\005\255\006\000\006\001\006\002\006\003\006\004\006\005\006\006\006\007\006\b\006\t\006\n\006\011\006\012\006\r\006\014\006\015\006\016\006\017\006\018\006\019\006\020\006\021\006\022\006\023\006\024\006\025\006\026\006\027\006\028\006\029\006\030\006\031\006 \006!\006\"\006#\006$\006%\006&\006'\006(\006)\006*\006+\006,\006-\006.\006/\0060\0063\0064\0065\0066\0067\0068\0069\006:\006;\006<\006=\006>\006?\006@\006A\006B\006C\006D\006E\006F\006G\006H\006I\006J\006N\006O\006P\006Q\006R\006S\006T\006U\006V\006W\006X\006Y\006Z\006[\006\\\006]\006^\006_\006`\006a\006b\006c\006d\006e\006f\006g\006h\006i\006j\006k\006l\006m\006n\006o\006p\006q\006r\006s\006t\006u\006v\006w\006x\006y\006z\006{\006|\006}\007\005\007\006\007\007\007\b\007\t\007\n\007\011\007\012\007\r\007\014\007\015\007\016\007\017\007\018\007\019\007\020\007\021\007\022\007\023\007\024\007\025\007\026\007\027\007\028\007\029\007\030\007\031\007 \007!\007\"\007#\007$\007%\007&\007'\007(\007)\007*\007+\004\207\004\208\004\209\004\210\004\211\004\212\004\213\004\214\004\215\004\220\004\221\004\222\004\223\005\236\007,\007-\007.\007/\0070\0071\0072\0073\0074\0075\0076\0077\0078\0079\007:\007;\007<\007=\007>\007?\007@\007A\007B\007C\007D\007E\007F\007G\007H\007I\007J\007K\007L\007M\007N\007O\007P\007Q\007R\007S\007T\007U\007V\007W\007X\007Y\007Z\007[\007\\\007]\007^\007_\007`\007a\007b\007c\007d\007e\007f\007g\007h\007i\007j\007k\007l\007m\007n\007o\007p\007q\007r\007s\007t\007u\007v\007w\007x\007y\007z\007{\007|\007}\007~\007\127\007\128\007\129\007\130\007\131\007\132\007\133\007\134\007\135\007\136\007\137\007\138\007\139\007\140\007\141\007\142\007\143\007\144\007\145\007\146\007\147\007\148\007\149\007\150\007\151\007\152\007\153\007\154\007\155\007\156\007\157\007\158\007\159\007\160\007\161\007\162\007\163\007\164\007\165\007\166\007\167\007\168\007\169\007\170\007\171\007\172\007\173\007\174\007\175\007\176\007\177\007\178\007\179\007\180\007\181\007\182\007\183\007\184\007\185\007\186\007\187\007\188\007\189\007\190\007\191\007\192\007\193\007\194\007\195\007\196\007\197\007\198\007\199\007\200\007\201\007\202\007\203\007\204\007\205\007\206\007\207\007\208\007\209\007\210\007\211\007\212\007\213\007\214\007\215\007\216\007\217\007\218\007\219\007\220\007\221\007\222\007\223\007\224\007\225\007\226\007\227\007\228\007\229\007\230\007\231\007\232\007\233\007\234\007\235\007\236\007\237\007\238\007\239\007\240\007\241\007\242\007\243\007\244\007\245\007\246\007\247\007\248\007\249\007\250\007\251\007\252\007\253\007\254\007\255\b\000\b\001\b\002\b\003\b\004\b\005\b\006\b\007\b\b\b\t\b\n\b\011\b\012\b\r\b\014\b\015\b\016\b\017\b\018\b\019\b\020\b\021\b\022\b\023\b\024\b\025\b\026\b\027\b\028\b\029\b\030\b\031\b \b!\b\"\b#\b$\b%\b&\b'\b(\b)\b*\b+\b,\b-\b.\b/\b0\b1\b2\b3\b4\b5\b6\b7\b8\b9\b:\b;\b<\b=\b>\b?\b@\bA\bB\bC\bD\bE\bF\bG\bH\bI\bJ\bK\bL\bM\bN\bO\bP\bQ\bR\bS\bT\bU\bV\bW\bX\bY\bZ\b[\b\\\b]\b^\b_\b`\ba\bb\bc\bd\be\bf\bg\bh\bi\bj\bk\bl\bm\bn\bo\bp\bq\br\bs\bt\bu\bv\bw\bx\by\bz\b{\b|\b}\b~\b\127\b\128\b\129\b\130\b\131\b\132\b\133\b\134\b\135\b\136\b\137\b\138\b\139\b\140\b\141\b\142\b\143\b\144\b\145\b\146\b\147\b\148\b\149\b\150\b\151\b\152\b\153\b\154\b\155\b\156\b\157\b\158\b\159\b\160\b\161\b\162\b\163\b\164\b\165\b\166\b\167\b\168\b\169\b\170\b\171\b\172\b\173\b\174\b\175\b\176\b\177\b\178\b\179\b\180\b\181\b\182\b\183\b\184\b\185\b\186\b\187\b\188\b\189\b\190\b\191\b\192\b\193\b\194\b\195\b\196\b\197\b\198\b\199\b\200\b\201\b\202\b\203\b\204\b\205\b\206\b\207\b\208\b\209\b\210\b\211\b\212\b\213\b\214\b\215\b\216\b\217\b\218\b\219\b\220\b\221\b\222\b\223\b\224\b\225\b\226\b\227\b\228\b\229\b\230\b\231\b\232\b\233\b\234\b\235\b\236\b\237\b\238\b\239\b\240\b\241\b\242\b\243\b\244\b\245\b\246\b\247\b\248\b\249\b\250\b\251\b\252\b\253\b\254\b\255\t\000\t\001\t\002\t\003\t\004\t\005\t\006\t\007\t\b\t\t\t\n\t\011\t\012\t\r\t\014\t\015\t\016\t\017\t\018\t\019\t\020\t\021\t\022\t\023\t\024\t\025\t\026\t\027\t\028\t\029\t\030\t\031\t \t!\t\"\t#\t$\t%\t&\t'\t(\t)\t*\t+\t,\t-\t.\t/\t0\t1\t2\t3\t4\t5\t6\t7\t8\t9\t:\t;\t<\t=\t>\t?\t@\tA\tB\tC\tD\tE\tF\tG\tH\tI\tJ\tK\tL\tM\tN\tO\tP\tQ\tR\tS\tT\tU\tV\tW\tX\tY\tZ\t[\t\\\t]\t^\t_\t`\ta\tb\tc\td\te\tf\tg\th\ti\tj\tk\tl\tm\tn\to\tp\tq\tr\ts\tt\tu\tv\tw\tx\ty\tz\t{\t|\t}\t~\t\127\t\128\t\129\t\130\t\131\t\132\t\133\t\134\t\135\t\136\t\137\t\138\t\139\t\140\t\141\t\142\t\143\t\144\t\145\t\146\t\147\t\148\t\149\t\150\t\151\t\152\t\153\t\154\t\155\t\156\t\157\t\158\t\159\t\160\t\161\t\162\t\163\t\164\t\165\t\166\t\167\t\168\t\169\t\170\t\171\t\172\t\173\t\174\t\175\t\176\t\177\t\178\t\179\t\180\t\181\t\182\t\183\t\184\t\185\t\186\t\187\t\188\t\189\t\190\t\191\t\192\t\193\t\194\t\195\t\196\t\197\t\198\t\199\t\200\t\201\t\202\t\203\t\204\t\205\t\206\t\207\t\208\t\209\t\210\t\211\t\212\t\213\t\214\t\215\t\216\t\217\t\218\t\219\t\220\t\221\t\222\t\223\t\224\t\225\t\226\t\227\t\228\t\229\t\230\t\231\t\232\t\233\t\234\t\239\t\240\t\241\t\242\t\243\0025\0026\0027\0028\0029\002:\002;\002<\t\235\t\236\t\237\t\238\t\244\t\245\t\246\t\247\t\248\t\249\t\250\t\251\t\252\t\253\t\254\t\255\n\000\n\001\n\002\n\003\n\011\n\012\n\r\n\014\n\015\n\016\n\017\n\018\002\024\002\025\002\026\002\027\002\028\002\029\002\030\n\004\n\005\n\006\n\007\n\b\n\t\n\n\n\019\n\020\n\021\n\022\n\023\n\024\n\025\n\026\n\027\n\028\n\029\n\030\n\031\n \n!\n\"\n#\n$\n%\n&\n'\n(\n)\n*\n+\n,\n-\n.\n/\n0\n1\n2\n3\n4\n5\n6\n7\n8\n9\n:\n;\n<\n=\n>\n?\n@\nA\nB\nC\nD\nE\nF\nG\nH\nI\nJ\nK\nL\nM\nN\nO\nP\nQ\nR\nS\nT\nU\nV\nW\nX\nY\nZ\n[\n\\\n]\n^\n_\n`\na\nb\nc\nd\ne\nf\ng\nh\ni\nj\nk\nl\nm\nn\no\np\nq\nr\ns\nt\nu\nv\nw\nx\ny\nz\n{\n|\n}\n~\n\127\n\128\n\129\n\130\n\131\n\132\n\133\n\134\n\135\n\136\n\137\n\138\n\139\n\140\n\141\n\142\n\143\n\144\n\145\n\146\n\147\n\148\n\149\n\150\n\151\n\152\n\153\n\154\n\155\n\156\n\157\n\158\n\159\n\160\n\161\n\162\n\163\n\164\n\165\n\166\n\167\n\168\n\169\n\170\n\171\n\172\n\173\n\174\n\175\n\176\n\177\n\178\n\179\n\180\n\181\n\182\n\183\n\184\n\185\n\186\n\187\n\188\n\189\n\190\n\191\n\192\n\193\n\194\n\195\n\196\n\197\n\198\n\199\n\200\n\201\n\202\n\203\n\204\n\205\n\206\n\207\n\208\n\209\n\210\n\211\n\212\n\213\n\214\n\215\n\216\n\217\n\218\n\219\n\220\n\221\n\222\n\223\n\224\n\225\n\226\n\227\n\228\n\229\n\230\n\231\n\232\n\233\n\234\n\235\n\236\n\237\n\238\n\239\n\240\n\241\n\242\n\243\n\244\n\245\n\246\n\247\n\248\n\249\n\250\n\251\n\252\n\253\n\254\n\255\011\000\011\001\011\002\011\003\011\004\011\005\011\006\011\007\011\b\011\t\011\n\011\011\011\012\011\r\011\014\011\015\011\016\011\017\011\018\011\019\011\020\011\021\011\022\011\023\011\024\011\025\011\026\011\027\011\028\011\029\011\030\011\031\011 \011!\011\"\011#\011$\011%\011&\011'\011(\011)\011*\011+\011,\011-\011.\011/\0110\0111\0112\0113\0114\0115\0116\0117\0118\0119\011:\011;\011<\011=\011>\011?\011@\011A\011B\011C\011D\011E\011F\011G\011H\011I\011J\011K\011L\011M\011N\011O\011P\011Q\011R\011S\011T\011U\011V\011W\011X\011Y\011Z\011[\011\\\011]\011^\011_\011`\011a\011b\011c\011d\011e\011f\011g\011h\011i\011j\011k\011m\011n\011o\011p\011q\011r\011s\011t\011u\011v\011w\011x\011y\011z\011{\011|\011}\011~\011\127\011\128\011\129\011\130\011\131\011\132\011\133\011\134\011\135\011\136\011\137\011\138\011\139\011\140\011\141\011\142\011\143\011\144\011\145\011\146\011\147\011\148\011\149\011\150\011\151\011\152\011\153\011\154\011\155\011\156\011\157\011\158\011\159\011\160\011\161\011\162\011\163\011\164\011\165\011\166\011\167\011\168\011\169\011\170\011\171\011\172\011\173\011\174\011\175\011\176\011\177\011\178\011\179\011\180\011\181\011\182\011\183\011\184\011\185\011\186\011\187\011\188\011\189\011\190\011\191\011\192\011\193\011\194\011\195\011\196\011\197\011\198\011\199\011\200\011\201\011\202\011\203\011\204\011\205\011\206\011\207\011\208\011\209\011\210\011\211\011\212\011\213\011\214\011\215\011\216\011\217\011\218\011\219\011\220\011\221\011\222\011\223\011\224\011\225\011\226\011\227\011\228\011\229\011\230\011\231\011\232\011\233\011\234\011\235\011\236\011\237\011\238\011\239\011\240\011\241\011\242\011\243\011\244\011\245\011\246\011\247\011\248") and lr0_items = - ((32, "\000\000\000\000\000\002\208\001\000\002d\001\000\016\184\001\000\016\180\001\000\016\176\001\000\016\172\001\000\016\168\001\000\015\240\001\000\016\164\001\000\016\160\001\000\016\156\001\000\016\152\001\000\016\148\001\000\016\144\001\000\016\140\001\000\016\136\001\000\016\132\001\000\016\128\001\000\016|\001\000\016x\001\000\016t\001\000\016p\001\000\016l\001\000\016h\001\000\016d\001\000\016`\001\000\016\\\001\000\016X\001\000\015\236\001\000\016T\001\000\016P\001\000\016L\001\000\016H\001\000\016D\001\000\016@\001\000\016<\001\000\0168\001\000\0164\001\000\0160\001\000\016,\001\000\016(\001\000\016$\001\000\016 \001\000\016\028\001\000\016\024\001\000\016\020\001\000\016\016\001\000\016\012\001\000\016\b\001\000\016\004\001\000\016\000\001\000\015\252\001\000\015\248\001\000\015\244\001\000\000\172\001\000\000\168\001\000\000\172\002\000\000\172\003\000\002d\002\000\002\208\002\000\000\180\001\000\000\180\002\000\020P\001\000\020P\002\000\020P\003\000\020\028\001\000\n$\001\000\t\196\001\000\n\024\001\000\n\020\001\000\n\016\001\000\n(\001\000\n8\001\000\n\b\001\000\n \001\000\n\028\001\000\t\200\001\000\n0\001\000\n\012\001\000\n\004\001\000\n\000\001\000\t\252\001\000\t\240\001\000\t\232\001\000\n4\001\000\n,\001\000\t\228\001\000\t\224\001\000\t\220\001\000\t\216\001\000\t\212\001\000\t\208\001\000\t\212\002\000\t\208\002\000\004\200\001\000\004\200\002\000\t\212\003\000\t\208\003\000\t\212\004\000\t\208\004\000\t\212\005\000\t\220\002\000\t\216\002\000\t\220\003\000\t\216\003\000\t\220\004\000\t\216\004\000\t\220\005\000\t\228\002\000\t\224\002\000\t\228\003\000\t\224\003\000\t\228\004\000\t\224\004\000\t\228\005\000\nH\001\000\n<\001\000\t\236\001\000\t\248\001\000\t\244\001\000\t\204\001\000\n@\001\000\nD\001\000\020\028\002\000\020\028\003\000\020 \001\000\020P\004\000\020P\005\000\tL\001\000\t@\001\000\tP\001\000\tD\001\000\tH\001\000\t<\001\000\tH\002\000\tP\002\000\tL\002\000\000\156\001\000\007\220\001\000\002l\001\000\r\000\001\000\000\152\001\000\004\176\001\000\004\180\001\000\r\000\002\000\000\152\002\000\n\220\001\000\n\220\002\000\n\220\003\000\n\216\001\000\018H\001\000\018D\001\000\018@\001\000\018<\001\000\0188\001\000\0184\001\000\0180\001\000\018,\001\000\017\016\001\000\017\012\001\000\r\004\001\000\0020\001\000\002,\001\000\000\164\001\000\000\160\001\000\000\144\001\000\000\132\001\000\000x\001\000\r\160\001\000\r\156\001\000\r\152\001\000\000\164\002\000\000\156\001\000\r\160\002\000\r\156\002\000\r\152\002\000\000\164\003\000\004\240\001\000\004\248\001\000\004\236\001\000\000\152\001\000\000\152\002\000\018H\001\000\018D\001\000\018@\001\000\018<\001\000\0188\001\000\0184\001\000\0180\001\000\018,\001\000\017\016\001\000\017\012\001\000\0020\001\000\002,\001\000\000\164\001\000\000\160\001\000\000\144\001\000\000\132\001\000\000x\001\000\r\148\001\000\r\144\001\000\r\140\001\000\r\000\001\000\000\160\002\000\000\152\001\000\r\148\002\000\r\144\002\000\r\140\002\000\r\000\002\000\000\160\003\000\000\152\002\000\r\148\003\000\r\144\003\000\r\140\003\000\000\160\004\000\011\244\001\000\004\244\001\000\011\244\002\000\004\216\001\000\011\244\003\000\011\240\001\000\004\228\001\000\004\224\001\000\004\228\002\000\019\220\001\000\019\216\001\000\018\252\001\000\018\248\001\000\018\244\001\000\018\240\001\000\018\236\001\000\018\232\001\000\018\228\001\000\018\224\001\000\018\220\001\000\018\216\001\000\018\212\001\000\018\208\001\000\018\204\001\000\018\200\001\000\018\196\001\000\018\192\001\000\018\188\001\000\018\184\001\000\018\180\001\000\018\176\001\000\018\172\001\000\018(\001\000\018$\001\000\018 \001\000\018\028\001\000\018\024\001\000\018\020\001\000\018\016\001\000\018\012\001\000\018\b\001\000\018\004\001\000\018\000\001\000\017\252\001\000\017\248\001\000\017\244\001\000\017\240\001\000\017\236\001\000\017\232\001\000\017\228\001\000\017\224\001\000\017\220\001\000\017\216\001\000\017\212\001\000\017\208\001\000\017\204\001\000\017\200\001\000\017\196\001\000\017\192\001\000\017\188\001\000\017\184\001\000\017\180\001\000\017\176\001\000\017\172\001\000\017\b\001\000\017\004\001\000\017\000\001\000\016\252\001\000\016\248\001\000\016\244\001\000\016\240\001\000\016\236\001\000\019\216\002\000\018\252\002\000\018\248\002\000\018\244\002\000\018\240\002\000\018\236\002\000\018\232\002\000\018\228\002\000\018\224\002\000\018\220\002\000\018\216\002\000\018\212\002\000\018\208\002\000\018\204\002\000\018\200\002\000\018\196\002\000\018\192\002\000\018\188\002\000\018\184\002\000\018\180\002\000\018\176\002\000\018\172\002\000\018(\002\000\018$\002\000\018 \002\000\018\028\002\000\018\024\002\000\018\020\002\000\018\016\002\000\018\012\002\000\018\b\002\000\018\004\002\000\018\000\002\000\017\252\002\000\017\248\002\000\017\244\002\000\017\240\002\000\017\236\002\000\017\232\002\000\017\228\002\000\017\224\002\000\017\220\002\000\017\216\002\000\017\212\002\000\017\208\002\000\017\204\002\000\017\200\002\000\017\196\002\000\017\192\002\000\017\188\002\000\017\184\002\000\017\180\002\000\017\176\002\000\017\172\002\000\017\b\002\000\017\004\002\000\017\000\002\000\016\252\002\000\016\248\002\000\016\244\002\000\016\240\002\000\016\236\002\000\017\200\003\000\017\196\003\000\017\192\003\000\017\188\003\000\017\184\003\000\017\180\003\000\017\176\003\000\017\172\003\000\016\240\003\000\016\236\003\000\0020\001\000\002,\001\000\000\164\001\000\000\160\001\000\000\144\001\000\000\132\001\000\000x\001\000\0020\002\000\0020\003\000\0020\004\000\007\220\001\000\004\176\001\000\b\160\001\000\b\160\002\000\n\196\001\000\t0\001\000\t,\001\000\t0\002\000\n\196\002\000\b\160\003\000\b\160\004\000\r\244\001\000\014\024\001\000\014\020\001\000\004\172\001\000\004\168\001\000\004\164\001\000\004\160\001\000\014\024\002\000\014\020\002\000\004\172\002\000\004\168\002\000\004\164\002\000\004\160\002\000\014\024\003\000\014\020\003\000\004\172\003\000\004\168\003\000\004\164\003\000\004\160\003\000\020\b\001\000\019\244\001\000\019\232\001\000\019\244\002\000\014\024\004\000\004\172\004\000\004\164\004\000\019\252\001\000\019\236\001\000\019\252\002\000\019\212\001\000\020\004\001\000\020\000\001\000\019\248\001\000\019\240\001\000\019\248\002\000\020\000\002\000\019\200\001\000\019\196\001\000\011\024\001\000\011\020\001\000\019\200\002\000\011\024\002\000\019\200\003\000\011\024\003\000\011\024\004\000\011\240\001\000\011\024\005\000\004\228\001\000\004\224\001\000\004\224\002\000\t(\001\000\t$\001\000\t(\002\000\004\224\003\000\011\240\002\000\011\240\003\000\011\240\001\000\004\228\001\000\004\224\001\000\004\232\001\000\007\028\001\000\007\028\002\000\019\196\002\000\011\020\002\000\019\196\003\000\011\020\003\000\019\196\004\000\011\020\004\000\011\020\005\000\011\240\001\000\011\020\006\000\004\228\001\000\004\224\001\000\011\016\001\000\019\212\002\000\rH\001\000\019\212\003\000\rH\002\000\rH\003\000\rD\001\000\019\200\001\000\019\196\001\000\019\200\002\000\019\200\003\000\019\196\002\000\019\196\003\000\019\196\004\000\014\024\005\000\004\172\005\000\004\164\005\000\019\220\001\000\004\172\006\000\004\164\006\000\004\220\001\000\011\240\001\000\004\228\001\000\004\224\001\000\004\220\002\000\004\172\007\000\004\164\007\000\019\188\001\000\007\220\001\000\001\220\001\000\001\216\001\000\t\160\001\000\t\144\001\000\t\128\001\000\tp\001\000\th\001\000\018H\001\000\018D\001\000\018@\001\000\018<\001\000\0188\001\000\0184\001\000\0180\001\000\018,\001\000\017\016\001\000\017\012\001\000\0020\001\000\002,\001\000\001\224\001\000\001\208\001\000\000\164\001\000\000\160\001\000\000\144\001\000\000\132\001\000\000x\001\000\001\208\002\000\t\176\001\000\t\172\001\000\0020\001\000\002,\001\000\000\164\001\000\000\160\001\000\000\144\001\000\000\132\001\000\000x\001\000\r\148\001\000\r\144\001\000\r\140\001\000\000\160\002\000\000\152\001\000\r\148\002\000\r\144\002\000\r\140\002\000\000\160\003\000\000\152\002\000\002h\001\000\002h\002\000\004<\001\000\015$\001\000\b\028\001\000\002\172\001\000\002\172\002\000\002\172\003\000\012\156\001\000\012\152\001\000\012\148\001\000\012\144\001\000\012\140\001\000\012\136\001\000\012\132\001\000\012\128\001\000\012|\001\000\012x\001\000\012\156\002\000\012\152\002\000\012\148\002\000\012\144\002\000\012\140\002\000\012\156\003\000\012\152\003\000\012\148\003\000\012\144\003\000\012\140\003\000\019\180\001\000\002L\001\000\002H\001\000\nX\001\000\002L\002\000\002H\002\000\002D\001\000\002@\001\000\002D\002\000\002@\002\000\002<\001\000\0028\001\000\0024\001\000\002T\001\000\002P\001\000\019\220\001\000\019\216\001\000\002T\002\000\002T\003\000\019\220\001\000\019\216\001\000\000\136\001\000\007\212\001\000\b0\001\000\007\224\001\000\007\216\001\000\b0\002\000\b0\003\000\b0\001\000\007\224\001\000\b0\004\000\007\224\002\000\007\224\003\000\b,\001\000\007\224\002\000\007\216\002\000\007\216\003\000\001\128\001\000\000\136\002\000\000|\001\000\b\012\001\000\b\004\001\000\000p\001\000\002 \001\000\b0\001\000\b\016\001\000\b\b\001\000\007\224\001\000\000\148\001\000\b\016\002\000\b\b\002\000\007\224\002\000\000\148\002\000\0020\001\000\002,\001\000\018h\001\000\018d\001\000\018`\001\000\018\\\001\000\018X\001\000\018T\001\000\018P\001\000\018L\001\000\017\024\001\000\017\020\001\000\004h\001\000\018X\002\000\018T\002\000\018P\002\000\018L\002\000\017\020\002\000\018h\001\000\018d\001\000\018`\001\000\018\\\001\000\018X\001\000\018T\001\000\018P\003\000\018P\001\000\018L\003\000\018L\001\000\017\024\001\000\017\020\001\000\000d\001\000\t8\001\000\t4\001\000\t8\002\000\000d\002\000\018h\002\000\018d\002\000\018`\002\000\018\\\002\000\018P\004\000\017\024\002\000\018h\003\000\018d\003\000\018`\003\000\018\\\003\000\017\024\003\000\018h\001\000\018d\001\000\018`\004\000\018`\001\000\018\\\004\000\018\\\001\000\018X\001\000\018T\001\000\018P\001\000\018L\001\000\017\024\001\000\017\020\001\000\018h\002\000\018d\002\000\018`\005\000\018`\002\000\018\\\002\000\017\024\002\000\017\024\004\000\017\168\001\000\017\164\001\000\017\160\001\000\017\156\001\000\017\152\001\000\017\148\001\000\017\144\001\000\017\140\001\000\017\136\001\000\017\132\001\000\017\128\001\000\017|\001\000\017x\001\000\017t\001\000\017p\001\000\017l\001\000\017h\001\000\017d\001\000\017`\001\000\017\\\001\000\017X\001\000\017T\001\000\017P\001\000\017L\001\000\017H\001\000\017D\001\000\017@\001\000\017<\001\000\0178\001\000\0174\001\000\0170\001\000\017,\001\000\016\232\001\000\016\228\001\000\016\224\001\000\016\220\001\000\016\216\001\000\016\212\001\000\016\208\001\000\016\204\001\000\017H\002\000\017D\002\000\017@\002\000\017<\002\000\0178\002\000\0174\002\000\0170\002\000\017,\002\000\016\208\002\000\016\204\002\000\0020\001\000\002,\001\000\000\164\001\000\000\160\001\000\000\144\001\000\000\132\001\000\000x\001\000\004l\001\000\r|\001\000\rx\001\000\rt\001\000\000\144\002\000\000\132\002\000\000x\002\000\000\144\003\000\000\132\003\000\000x\003\000\000\144\004\000\000\144\005\000\000\132\004\000\000x\004\000\b0\001\000\b\016\001\000\b\b\001\000\007\224\001\000\b\016\002\000\b\b\002\000\007\224\002\000\b\016\003\000\b\b\003\000\019\192\001\000\019\224\001\000\r|\002\000\rx\002\000\rt\002\000\r|\003\000\000\156\001\000\r|\004\000\r|\005\000\011\240\001\000\004\228\001\000\004\224\001\000\rx\003\000\000\152\001\000\rx\004\000\000\152\002\000\rx\005\000\rx\006\000\011\240\001\000\004\228\001\000\004\224\001\000\018\168\001\000\018\164\001\000\018\160\001\000\018\156\001\000\018\152\001\000\018\148\001\000\018\144\001\000\018\140\001\000\018\136\001\000\018\132\001\000\018\128\001\000\018|\001\000\018x\001\000\018t\001\000\018p\001\000\018l\001\000\017(\001\000\017$\001\000\017 \001\000\017\028\001\000\018\136\002\000\018\132\002\000\018\128\002\000\018|\002\000\018x\002\000\018t\002\000\018p\002\000\018l\002\000\017 \002\000\017\028\002\000\0020\001\000\002,\001\000\000\164\001\000\000\160\001\000\000\144\001\000\000\132\001\000\000x\001\000\018\136\003\000\018\132\003\000\018\128\003\000\018|\003\000\018x\003\000\018t\003\000\018p\003\000\018l\003\000\017 \003\000\017\028\003\000\r\012\001\000\r\b\001\000\r\b\002\000\r\b\003\000\r\012\002\000\r\012\003\000\r\012\004\000\r\012\005\000\r\012\006\000\011\240\001\000\004\228\001\000\004\224\001\000\r\012\007\000\018\136\004\000\018\132\004\000\018\128\004\000\018|\004\000\018x\004\000\018t\004\000\018p\004\000\018l\004\000\017 \004\000\017\028\004\000\000D\001\000\002$\001\000\002x\001\000\002(\001\000\000l\001\000\018\136\005\000\018\132\005\000\018\128\005\000\018|\005\000\018x\005\000\018t\005\000\018p\005\000\018l\005\000\017 \005\000\017\028\005\000\002\028\001\000\018\136\006\000\018\132\006\000\018\128\006\000\018|\006\000\018x\006\000\018t\006\000\018p\006\000\018l\006\000\017 \006\000\017\028\006\000\018x\007\000\018t\007\000\018p\007\000\018l\007\000\017\028\007\000\018p\b\000\018l\b\000\018h\001\000\018d\001\000\018`\001\000\018\\\001\000\018X\001\000\018T\001\000\018P\001\000\018L\001\000\017\024\001\000\017\020\001\000\018p\t\000\018h\002\000\018d\002\000\018`\002\000\018\\\002\000\017\024\002\000\017\028\b\000\018\168\001\000\018\164\001\000\018\160\001\000\018\156\001\000\018\152\001\000\018\148\001\000\018\144\001\000\018\140\001\000\018\136\001\000\018\132\001\000\018\128\001\000\018|\001\000\018x\b\000\018x\001\000\018t\b\000\018t\001\000\018p\001\000\018l\001\000\017(\001\000\017$\001\000\017 \001\000\017\028\001\000\018\168\002\000\018\164\002\000\018\160\002\000\018\156\002\000\018\152\002\000\018\148\002\000\018\144\002\000\018\140\002\000\018x\t\000\018t\t\000\017(\002\000\017$\002\000\018\152\003\000\018\148\003\000\018\144\003\000\018\140\003\000\017$\003\000\018\144\004\000\018\140\004\000\018h\001\000\018d\001\000\018`\001\000\018\\\001\000\018X\001\000\018T\001\000\018P\001\000\018L\001\000\017\024\001\000\017\020\001\000\018\144\005\000\018h\002\000\018d\002\000\018`\002\000\018\\\002\000\017\024\002\000\017$\004\000\018\168\001\000\018\164\001\000\018\160\001\000\018\156\001\000\018\152\004\000\018\152\001\000\018\148\004\000\018\148\001\000\018\144\001\000\018\140\001\000\018\136\001\000\018\132\001\000\018\128\001\000\018|\001\000\018x\001\000\018t\001\000\018p\001\000\018l\001\000\017(\001\000\017$\001\000\017 \001\000\017\028\001\000\018\168\002\000\018\164\002\000\018\160\002\000\018\156\002\000\018\152\005\000\018\152\002\000\018\148\005\000\018\148\002\000\018\144\002\000\018\140\002\000\017(\002\000\017$\002\000\018\168\003\000\018\164\003\000\018\160\003\000\018\156\003\000\018\152\006\000\017(\003\000\018\168\004\000\018\164\004\000\018\160\004\000\018\156\004\000\017(\004\000\018\160\005\000\018\156\005\000\018h\001\000\018d\001\000\018`\001\000\018\\\001\000\018X\001\000\018T\001\000\018P\001\000\018L\001\000\017\024\001\000\017\020\001\000\018\160\006\000\018h\002\000\018d\002\000\018`\002\000\018\\\002\000\017\024\002\000\017(\005\000\018\168\005\000\018\168\001\000\018\164\005\000\018\164\001\000\018\160\001\000\018\156\001\000\018\152\001\000\018\148\001\000\018\144\001\000\018\140\001\000\018\136\001\000\018\132\001\000\018\128\001\000\018|\001\000\018x\001\000\018t\001\000\018p\001\000\018l\001\000\017(\001\000\017$\001\000\017 \001\000\017\028\001\000\018\168\006\000\018\168\002\000\018\164\006\000\018\164\002\000\018\160\002\000\018\156\002\000\018\152\002\000\018\148\002\000\018\144\002\000\018\140\002\000\017(\002\000\017$\002\000\018\168\007\000\018\168\003\000\018\164\003\000\018\160\003\000\018\156\003\000\017(\003\000\019\168\001\000\019\164\001\000\000\140\001\000\000\128\001\000\000t\001\000\019\168\002\000\019\220\001\000\019\216\001\000\rh\001\000\rh\002\000\rh\003\000\000\140\001\000\000\128\001\000\000t\001\000\000\140\002\000\000\140\003\000\000\128\002\000\000t\002\000\019\168\003\000\rp\001\000\rl\001\000\rp\002\000\rl\002\000\019\220\001\000\019\216\001\000\rp\003\000\rp\004\000\rp\005\000\000\140\001\000\000\128\001\000\000t\001\000\rl\003\000\000\140\001\000\000\128\001\000\000t\001\000\rd\001\000\000\140\001\000\000\128\001\000\000t\001\000\018\168\003\000\018\164\003\000\018\160\003\000\018\156\003\000\018x\n\000\017(\003\000\018\136\007\000\018\132\007\000\018\128\007\000\018|\007\000\017 \007\000\018\136\b\000\018\132\b\000\018\128\b\000\018|\b\000\017 \b\000\018\128\t\000\018|\t\000\018h\001\000\018d\001\000\018`\001\000\018\\\001\000\018X\001\000\018T\001\000\018P\001\000\018L\001\000\017\024\001\000\017\020\001\000\018\128\n\000\018h\002\000\018d\002\000\018`\002\000\018\\\002\000\017\024\002\000\017 \t\000\018\168\001\000\018\164\001\000\018\160\001\000\018\156\001\000\018\152\001\000\018\148\001\000\018\144\001\000\018\140\001\000\018\136\t\000\018\136\001\000\018\132\t\000\018\132\001\000\018\128\001\000\018|\001\000\018x\001\000\018t\001\000\018p\001\000\018l\001\000\017(\001\000\017$\001\000\017 \001\000\017\028\001\000\018\168\002\000\018\164\002\000\018\160\002\000\018\156\002\000\018\152\002\000\018\148\002\000\018\144\002\000\018\140\002\000\018\136\n\000\018\132\n\000\017(\002\000\017$\002\000\018\168\003\000\018\164\003\000\018\160\003\000\018\156\003\000\018\136\011\000\017(\003\000\002\028\002\000\002\024\001\000\000P\001\000\000L\001\000\000H\001\000\000P\002\000\000L\002\000\000H\002\000\000H\003\000\000H\004\000\000P\003\000\000L\003\000\000P\004\000\000P\005\000\011\240\001\000\004\228\001\000\004\224\001\000\000P\006\000\000P\007\000\000L\004\000\000L\005\000\000L\006\000\011\240\001\000\004\228\001\000\004\224\001\000\000L\007\000\000L\b\000\r\136\001\000\r\132\001\000\r\128\001\000\002,\002\000\002\028\001\000\002,\003\000\r\136\002\000\r\132\002\000\r\128\002\000\r\136\003\000\000\156\001\000\r\136\004\000\r\136\005\000\011\240\001\000\004\228\001\000\004\224\001\000\r\132\003\000\000\152\001\000\r\132\004\000\000\152\002\000\r\132\005\000\r\132\006\000\011\240\001\000\004\228\001\000\004\224\001\000\r\128\003\000\002\028\001\000\018\168\002\000\018\164\002\000\018\160\002\000\018\156\002\000\018\152\002\000\018\148\002\000\018\144\002\000\018\140\002\000\017(\002\000\017$\002\000\018\168\003\000\018\164\003\000\018\160\003\000\018\156\003\000\017(\003\000\rt\003\000\002\028\001\000\017H\003\000\017D\003\000\017@\003\000\017<\003\000\0178\003\000\0174\003\000\0170\003\000\017,\003\000\016\208\003\000\016\204\003\000\r\012\001\000\r\b\001\000\017H\004\000\017D\004\000\017@\004\000\017<\004\000\0178\004\000\0174\004\000\0170\004\000\017,\004\000\016\208\004\000\016\204\004\000\017H\005\000\017D\005\000\017@\005\000\017<\005\000\0178\005\000\0174\005\000\0170\005\000\017,\005\000\016\208\005\000\016\204\005\000\002\028\001\000\017H\006\000\017D\006\000\017@\006\000\017<\006\000\0178\006\000\0174\006\000\0170\006\000\017,\006\000\016\208\006\000\016\204\006\000\0178\007\000\0174\007\000\0170\007\000\017,\007\000\016\204\007\000\018h\001\000\018d\001\000\018`\001\000\018\\\001\000\018X\001\000\018T\001\000\018P\001\000\018L\001\000\0170\b\000\017,\b\000\017\024\001\000\017\020\001\000\018h\002\000\018d\002\000\018`\002\000\018\\\002\000\0170\t\000\017\024\002\000\016\204\b\000\018\168\001\000\018\164\001\000\018\160\001\000\018\156\001\000\018\152\001\000\018\148\001\000\018\144\001\000\018\140\001\000\018\136\001\000\018\132\001\000\018\128\001\000\018|\001\000\018x\001\000\018t\001\000\018p\001\000\018l\001\000\0178\b\000\0174\b\000\017(\001\000\017$\001\000\017 \001\000\017\028\001\000\018\168\002\000\018\164\002\000\018\160\002\000\018\156\002\000\018\152\002\000\018\148\002\000\018\144\002\000\018\140\002\000\0178\t\000\0174\t\000\017(\002\000\017$\002\000\018\168\003\000\018\164\003\000\018\160\003\000\018\156\003\000\0178\n\000\017(\003\000\017H\007\000\017D\007\000\017@\007\000\017<\007\000\016\208\007\000\017H\b\000\017D\b\000\017@\b\000\017<\b\000\016\208\b\000\018h\001\000\018d\001\000\018`\001\000\018\\\001\000\018X\001\000\018T\001\000\018P\001\000\018L\001\000\017@\t\000\017<\t\000\017\024\001\000\017\020\001\000\018h\002\000\018d\002\000\018`\002\000\018\\\002\000\017@\n\000\017\024\002\000\016\208\t\000\018\168\001\000\018\164\001\000\018\160\001\000\018\156\001\000\018\152\001\000\018\148\001\000\018\144\001\000\018\140\001\000\018\136\001\000\018\132\001\000\018\128\001\000\018|\001\000\018x\001\000\018t\001\000\018p\001\000\018l\001\000\017H\t\000\017D\t\000\017(\001\000\017$\001\000\017 \001\000\017\028\001\000\018\168\002\000\018\164\002\000\018\160\002\000\018\156\002\000\018\152\002\000\018\148\002\000\018\144\002\000\018\140\002\000\017H\n\000\017D\n\000\017(\002\000\017$\002\000\018\168\003\000\018\164\003\000\018\160\003\000\018\156\003\000\017H\011\000\017(\003\000\017h\002\000\017d\002\000\017`\002\000\017\\\002\000\017X\002\000\017T\002\000\017P\002\000\017L\002\000\016\216\002\000\016\212\002\000\017X\003\000\017T\003\000\017P\003\000\017L\003\000\016\212\003\000\018h\001\000\018d\001\000\018`\001\000\018\\\001\000\018X\001\000\018T\001\000\018P\001\000\018L\001\000\017P\004\000\017L\004\000\017\024\001\000\017\020\001\000\018h\002\000\018d\002\000\018`\002\000\018\\\002\000\017P\005\000\017\024\002\000\016\212\004\000\018\168\001\000\018\164\001\000\018\160\001\000\018\156\001\000\018\152\001\000\018\148\001\000\018\144\001\000\018\140\001\000\018\136\001\000\018\132\001\000\018\128\001\000\018|\001\000\018x\001\000\018t\001\000\018p\001\000\018l\001\000\017X\004\000\017T\004\000\017(\001\000\017$\001\000\017 \001\000\017\028\001\000\018\168\002\000\018\164\002\000\018\160\002\000\018\156\002\000\018\152\002\000\018\148\002\000\018\144\002\000\018\140\002\000\017X\005\000\017T\005\000\017(\002\000\017$\002\000\018\168\003\000\018\164\003\000\018\160\003\000\018\156\003\000\017X\006\000\017(\003\000\017h\003\000\017d\003\000\017`\003\000\017\\\003\000\016\216\003\000\017h\004\000\017d\004\000\017`\004\000\017\\\004\000\016\216\004\000\018h\001\000\018d\001\000\018`\001\000\018\\\001\000\018X\001\000\018T\001\000\018P\001\000\018L\001\000\017`\005\000\017\\\005\000\017\024\001\000\017\020\001\000\018h\002\000\018d\002\000\018`\002\000\018\\\002\000\017`\006\000\017\024\002\000\016\216\005\000\018\168\001\000\018\164\001\000\018\160\001\000\018\156\001\000\018\152\001\000\018\148\001\000\018\144\001\000\018\140\001\000\018\136\001\000\018\132\001\000\018\128\001\000\018|\001\000\018x\001\000\018t\001\000\018p\001\000\018l\001\000\017h\005\000\017d\005\000\017(\001\000\017$\001\000\017 \001\000\017\028\001\000\018\168\002\000\018\164\002\000\018\160\002\000\018\156\002\000\018\152\002\000\018\148\002\000\018\144\002\000\018\140\002\000\017h\006\000\017d\006\000\017(\002\000\017$\002\000\018\168\003\000\018\164\003\000\018\160\003\000\018\156\003\000\017h\007\000\017(\003\000\017\168\002\000\017\164\002\000\017\160\002\000\017\156\002\000\017\152\002\000\017\148\002\000\017\144\002\000\017\140\002\000\017\136\002\000\017\132\002\000\017\128\002\000\017|\002\000\017x\002\000\017t\002\000\017p\002\000\017l\002\000\016\232\002\000\016\228\002\000\016\224\002\000\016\220\002\000\017\136\003\000\017\132\003\000\017\128\003\000\017|\003\000\017x\003\000\017t\003\000\017p\003\000\017l\003\000\016\224\003\000\016\220\003\000\0020\001\000\002,\001\000\000\164\001\000\000\160\001\000\000\144\001\000\000\132\001\000\000x\001\000\017\136\004\000\017\132\004\000\017\128\004\000\017|\004\000\017x\004\000\017t\004\000\017p\004\000\017l\004\000\016\224\004\000\016\220\004\000\r\012\001\000\r\b\001\000\017\136\005\000\017\132\005\000\017\128\005\000\017|\005\000\017x\005\000\017t\005\000\017p\005\000\017l\005\000\016\224\005\000\016\220\005\000\017\136\006\000\017\132\006\000\017\128\006\000\017|\006\000\017x\006\000\017t\006\000\017p\006\000\017l\006\000\016\224\006\000\016\220\006\000\002\028\001\000\017\136\007\000\017\132\007\000\017\128\007\000\017|\007\000\017x\007\000\017t\007\000\017p\007\000\017l\007\000\016\224\007\000\016\220\007\000\017x\b\000\017t\b\000\017p\b\000\017l\b\000\016\220\b\000\018h\001\000\018d\001\000\018`\001\000\018\\\001\000\018X\001\000\018T\001\000\018P\001\000\018L\001\000\017p\t\000\017l\t\000\017\024\001\000\017\020\001\000\018h\002\000\018d\002\000\018`\002\000\018\\\002\000\017p\n\000\017\024\002\000\016\220\t\000\018\168\001\000\018\164\001\000\018\160\001\000\018\156\001\000\018\152\001\000\018\148\001\000\018\144\001\000\018\140\001\000\018\136\001\000\018\132\001\000\018\128\001\000\018|\001\000\018x\001\000\018t\001\000\018p\001\000\018l\001\000\017x\t\000\017t\t\000\017(\001\000\017$\001\000\017 \001\000\017\028\001\000\018\168\002\000\018\164\002\000\018\160\002\000\018\156\002\000\018\152\002\000\018\148\002\000\018\144\002\000\018\140\002\000\017x\n\000\017t\n\000\017(\002\000\017$\002\000\018\168\003\000\018\164\003\000\018\160\003\000\018\156\003\000\017x\011\000\017(\003\000\017\136\b\000\017\132\b\000\017\128\b\000\017|\b\000\016\224\b\000\017\136\t\000\017\132\t\000\017\128\t\000\017|\t\000\016\224\t\000\018h\001\000\018d\001\000\018`\001\000\018\\\001\000\018X\001\000\018T\001\000\018P\001\000\018L\001\000\017\128\n\000\017|\n\000\017\024\001\000\017\020\001\000\018h\002\000\018d\002\000\018`\002\000\018\\\002\000\017\128\011\000\017\024\002\000\016\224\n\000\018\168\001\000\018\164\001\000\018\160\001\000\018\156\001\000\018\152\001\000\018\148\001\000\018\144\001\000\018\140\001\000\018\136\001\000\018\132\001\000\018\128\001\000\018|\001\000\018x\001\000\018t\001\000\018p\001\000\018l\001\000\017\136\n\000\017\132\n\000\017(\001\000\017$\001\000\017 \001\000\017\028\001\000\018\168\002\000\018\164\002\000\018\160\002\000\018\156\002\000\018\152\002\000\018\148\002\000\018\144\002\000\018\140\002\000\017\136\011\000\017\132\011\000\017(\002\000\017$\002\000\018\168\003\000\018\164\003\000\018\160\003\000\018\156\003\000\017\136\012\000\017(\003\000\017\168\003\000\017\164\003\000\017\160\003\000\017\156\003\000\017\152\003\000\017\148\003\000\017\144\003\000\017\140\003\000\016\232\003\000\016\228\003\000\017\152\004\000\017\148\004\000\017\144\004\000\017\140\004\000\016\228\004\000\018h\001\000\018d\001\000\018`\001\000\018\\\001\000\018X\001\000\018T\001\000\018P\001\000\018L\001\000\017\144\005\000\017\140\005\000\017\024\001\000\017\020\001\000\018h\002\000\018d\002\000\018`\002\000\018\\\002\000\017\144\006\000\017\024\002\000\016\228\005\000\018\168\001\000\018\164\001\000\018\160\001\000\018\156\001\000\018\152\001\000\018\148\001\000\018\144\001\000\018\140\001\000\018\136\001\000\018\132\001\000\018\128\001\000\018|\001\000\018x\001\000\018t\001\000\018p\001\000\018l\001\000\017\152\005\000\017\148\005\000\017(\001\000\017$\001\000\017 \001\000\017\028\001\000\018\168\002\000\018\164\002\000\018\160\002\000\018\156\002\000\018\152\002\000\018\148\002\000\018\144\002\000\018\140\002\000\017\152\006\000\017\148\006\000\017(\002\000\017$\002\000\018\168\003\000\018\164\003\000\018\160\003\000\018\156\003\000\017\152\007\000\017(\003\000\017\168\004\000\017\164\004\000\017\160\004\000\017\156\004\000\016\232\004\000\017\168\005\000\017\164\005\000\017\160\005\000\017\156\005\000\016\232\005\000\018h\001\000\018d\001\000\018`\001\000\018\\\001\000\018X\001\000\018T\001\000\018P\001\000\018L\001\000\017\160\006\000\017\156\006\000\017\024\001\000\017\020\001\000\018h\002\000\018d\002\000\018`\002\000\018\\\002\000\017\160\007\000\017\024\002\000\016\232\006\000\018\168\001\000\018\164\001\000\018\160\001\000\018\156\001\000\018\152\001\000\018\148\001\000\018\144\001\000\018\140\001\000\018\136\001\000\018\132\001\000\018\128\001\000\018|\001\000\018x\001\000\018t\001\000\018p\001\000\018l\001\000\017\168\006\000\017\164\006\000\017(\001\000\017$\001\000\017 \001\000\017\028\001\000\018\168\002\000\018\164\002\000\018\160\002\000\018\156\002\000\018\152\002\000\018\148\002\000\018\144\002\000\018\140\002\000\017\168\007\000\017\164\007\000\017(\002\000\017$\002\000\018\168\003\000\018\164\003\000\018\160\003\000\018\156\003\000\017\168\b\000\017(\003\000\018\168\001\000\018\164\001\000\018\160\001\000\018\156\001\000\018\152\001\000\018\148\001\000\018\144\001\000\018\140\001\000\018\136\001\000\018\132\001\000\018\128\001\000\018|\001\000\018x\001\000\018t\001\000\018p\001\000\018l\001\000\018h\004\000\018d\004\000\017(\001\000\017$\001\000\017 \001\000\017\028\001\000\018\168\002\000\018\164\002\000\018\160\002\000\018\156\002\000\018\152\002\000\018\148\002\000\018\144\002\000\018\140\002\000\018h\005\000\018d\005\000\017(\002\000\017$\002\000\018\168\003\000\018\164\003\000\018\160\003\000\018\156\003\000\018h\006\000\017(\003\000\017\020\003\000\018\168\001\000\018\164\001\000\018\160\001\000\018\156\001\000\018\152\001\000\018\148\001\000\018\144\001\000\018\140\001\000\018\136\001\000\018\132\001\000\018\128\001\000\018|\001\000\018x\001\000\018t\001\000\018p\001\000\018l\001\000\018X\003\000\018T\003\000\017(\001\000\017$\001\000\017 \001\000\017\028\001\000\018\168\002\000\018\164\002\000\018\160\002\000\018\156\002\000\018\152\002\000\018\148\002\000\018\144\002\000\018\140\002\000\018X\004\000\018T\004\000\017(\002\000\017$\002\000\018\168\003\000\018\164\003\000\018\160\003\000\018\156\003\000\018X\005\000\017(\003\000\018h\002\000\018d\002\000\018`\002\000\018\\\002\000\017\024\002\000\002,\002\000\002\028\001\000\000\148\003\000\002T\004\000\000\140\001\000\000\128\001\000\000t\001\000\002T\005\000\rp\001\000\rl\001\000\002T\006\000\002T\007\000\002P\002\000\000\140\001\000\000\128\001\000\000t\001\000\002P\003\000\rp\001\000\rl\001\000\002P\004\000\002P\005\000\0028\002\000\t\020\001\000\t\020\002\000\r\164\001\000\r4\001\000\r8\001\000\0028\003\000\0028\004\000\r8\002\000\r8\003\000\019X\001\000\019T\001\000\019T\002\000\nL\001\000\019T\003\000\019T\004\000\r \001\000\r \002\000\r \003\000\000P\001\000\000L\001\000\000H\001\000\019T\005\000\r\028\001\000\000P\001\000\000L\001\000\000H\001\000\019X\002\000\r\168\001\000\002\028\001\000\r\164\001\000\0024\002\000\0024\003\000\002<\002\000\002<\003\000\r8\001\000\002<\004\000\002<\005\000\r8\001\000\002@\003\000\002@\004\000\r8\001\000\002L\003\000\002H\003\000\002H\004\000\002L\004\000\012\252\001\000\002L\005\000\002L\006\000\012\252\002\000\012\248\001\000\019\180\002\000\002\028\001\000\019\176\001\000\019\172\001\000\019\176\002\000\019\172\002\000\002\028\001\000\019\176\003\000\019\176\004\000\002\028\001\000\012\156\004\000\012\152\004\000\012\148\004\000\012\144\004\000\012\140\004\000\012\156\005\000\012\152\005\000\012\148\005\000\012\144\005\000\012\140\005\000\012\156\006\000\012\152\006\000\012\148\006\000\012\144\006\000\012\140\006\000\012\156\007\000\012\156\001\000\012\152\007\000\012\152\001\000\012\148\001\000\012\144\001\000\012\140\001\000\012\136\001\000\012\132\001\000\012\128\001\000\012|\001\000\012x\001\000\012\156\b\000\012\156\002\000\012\152\002\000\012\148\002\000\012\144\002\000\012\140\002\000\012\156\t\000\012\156\003\000\012\152\003\000\012\148\003\000\012\144\003\000\012\140\003\000\012\156\n\000\012\156\004\000\012\152\004\000\012\148\004\000\012\144\004\000\012\140\004\000\012\156\011\000\012\156\005\000\012\152\005\000\012\148\005\000\012\144\005\000\012\140\005\000\012\152\b\000\012\136\002\000\012\132\002\000\012\128\002\000\012|\002\000\012x\002\000\012\136\003\000\012\132\003\000\012\128\003\000\012|\003\000\012x\003\000\012\156\001\000\012\152\001\000\012\148\001\000\012\144\001\000\012\140\001\000\012\136\004\000\012\136\001\000\012\132\004\000\012\132\001\000\012\128\001\000\012|\001\000\012x\001\000\012\156\002\000\012\152\002\000\012\148\002\000\012\144\002\000\012\140\002\000\012\136\005\000\012\156\003\000\012\152\003\000\012\148\003\000\012\144\003\000\012\140\003\000\012\136\006\000\012\156\004\000\012\152\004\000\012\148\004\000\012\144\004\000\012\140\004\000\012\136\007\000\012\156\005\000\012\152\005\000\012\148\005\000\012\144\005\000\012\140\005\000\012\136\b\000\012\136\002\000\012\132\005\000\012\132\002\000\012\128\002\000\012|\002\000\012x\002\000\020H\001\000\003\012\001\000\003\000\001\000\002\252\001\000\002\248\001\000\014\244\001\000\014\228\001\000\014\228\002\000\014\228\003\000\001\020\001\000\001\016\001\000\015\184\001\000\012\180\001\000\012\176\001\000\005\228\001\000\005\224\001\000\005\220\001\000\005\216\001\000\005\212\001\000\005\208\001\000\005\204\001\000\005\200\001\000\012\180\002\000\005\228\002\000\005\224\002\000\005\220\002\000\005\216\002\000\012\180\003\000\005\228\003\000\005\224\003\000\005\220\003\000\005\216\003\000\012\180\004\000\005\228\004\000\005\224\004\000\005\220\004\000\005\216\004\000\012\180\005\000\005\228\005\000\005\224\005\000\005\220\005\000\005\216\005\000\002\028\001\000\012\180\006\000\005\228\006\000\005\224\006\000\005\220\006\000\005\216\006\000\012\180\007\000\005\228\007\000\005\224\007\000\005\220\007\000\005\216\007\000\012\180\001\000\012\176\001\000\005\228\b\000\005\228\001\000\005\224\b\000\005\224\001\000\005\220\001\000\005\216\001\000\005\212\001\000\005\208\001\000\005\204\001\000\005\200\001\000\012\180\002\000\005\228\t\000\005\228\002\000\005\224\002\000\005\220\002\000\005\216\002\000\012\180\003\000\005\228\n\000\005\228\003\000\005\224\003\000\005\220\003\000\005\216\003\000\012\180\004\000\005\228\011\000\005\228\004\000\005\224\004\000\005\220\004\000\005\216\004\000\012\180\005\000\005\228\012\000\005\228\005\000\005\224\005\000\005\220\005\000\005\216\005\000\002\028\001\000\012\180\006\000\005\228\r\000\005\228\006\000\005\224\006\000\005\220\006\000\005\216\006\000\012\176\002\000\005\224\t\000\005\212\002\000\005\208\002\000\005\204\002\000\005\200\002\000\012\176\003\000\005\212\003\000\005\208\003\000\005\204\003\000\005\200\003\000\012\180\001\000\012\176\001\000\005\228\001\000\005\224\001\000\005\220\001\000\005\216\001\000\005\212\004\000\005\212\001\000\005\208\004\000\005\208\001\000\005\204\001\000\005\200\001\000\012\180\002\000\005\228\002\000\005\224\002\000\005\220\002\000\005\216\002\000\005\212\005\000\012\180\003\000\005\228\003\000\005\224\003\000\005\220\003\000\005\216\003\000\005\212\006\000\012\180\004\000\005\228\004\000\005\224\004\000\005\220\004\000\005\216\004\000\005\212\007\000\012\180\005\000\005\228\005\000\005\224\005\000\005\220\005\000\005\216\005\000\005\212\b\000\002\028\001\000\012\180\006\000\005\228\006\000\005\224\006\000\005\220\006\000\005\216\006\000\005\212\t\000\012\176\002\000\005\212\002\000\005\208\005\000\005\208\002\000\005\204\002\000\005\200\002\000\014p\001\000\014l\001\000\014\\\001\000\014X\001\000\014l\002\000\014X\002\000\014\\\002\000\014p\002\000\014h\001\000\014d\001\000\014T\001\000\014P\001\000\014d\002\000\014P\002\000\014T\002\000\014h\002\000\020\028\001\000\015\228\001\000\015\180\001\000\015\176\001\000\015\168\001\000\001\240\001\000\001\208\001\000\014p\001\000\014l\001\000\014\\\001\000\014X\001\000\n\016\001\000\015\180\002\000\015\176\002\000\015\180\003\000\015\176\003\000\015\180\004\000\015\176\004\000\b\136\001\000\b\132\001\000\015\180\005\000\015\176\005\000\015\176\006\000\015\180\006\000\b\172\001\000\b\172\002\000\b\172\003\000\b\172\004\000\b\128\001\000\b`\001\000\b`\002\000\019(\001\000\019$\001\000\004\172\001\000\004\168\001\000\019(\002\000\019$\002\000\004\172\002\000\004\168\002\000\019(\003\000\019$\003\000\004\172\003\000\004\168\003\000\019(\004\000\004\172\004\000\019(\005\000\004\172\005\000\019\220\001\000\004\172\006\000\004\172\007\000\004\172\b\000\012\212\001\000\004\172\t\000\011\188\001\000\011\188\002\000\007L\001\000\007H\001\000\004\212\001\000\000@\001\000\000<\001\000\002\180\001\000\002\176\001\000\002\180\002\000\002\176\002\000\002\180\003\000\002\176\003\000\004@\001\000\014\216\001\000\014\216\002\000\014\216\003\000\b\020\001\000\b \001\000\b\024\001\000\b \002\000\b\024\002\000\b \003\000\b\024\003\000\b4\001\000\001\012\001\000\014\216\004\000\019P\001\000\019L\001\000\002\168\001\000\002\168\002\000\002\168\003\000\020\028\001\000\014\224\001\000\014\220\001\000\014\168\001\000\014\164\001\000\014\160\001\000\001\240\001\000\001\208\001\000\014\244\001\000\t\196\001\000\015\156\001\000\015\152\001\000\015x\001\000\015t\001\000\0048\001\000\020 \001\000\003\224\001\000\003\220\001\000\003\224\002\000\003\220\002\000\003\208\001\000\012\204\001\000\012\200\001\000\0064\001\000\0060\001\000\006,\001\000\006(\001\000\006$\001\000\006 \001\000\006\028\001\000\006\024\001\000\012\204\002\000\0064\002\000\0060\002\000\006,\002\000\006(\002\000\012\204\003\000\0064\003\000\0060\003\000\006,\003\000\006(\003\000\012\204\004\000\0064\004\000\0060\004\000\006,\004\000\006(\004\000\012\204\005\000\0064\005\000\0060\005\000\006,\005\000\006(\005\000\002\028\001\000\012\204\006\000\0064\006\000\0060\006\000\006,\006\000\006(\006\000\012\204\007\000\0064\007\000\0060\007\000\006,\007\000\006(\007\000\012\204\001\000\012\200\001\000\0064\b\000\0064\001\000\0060\b\000\0060\001\000\006,\001\000\006(\001\000\006$\001\000\006 \001\000\006\028\001\000\006\024\001\000\012\204\002\000\0064\t\000\0064\002\000\0060\002\000\006,\002\000\006(\002\000\012\204\003\000\0064\n\000\0064\003\000\0060\003\000\006,\003\000\006(\003\000\012\204\004\000\0064\011\000\0064\004\000\0060\004\000\006,\004\000\006(\004\000\012\204\005\000\0064\012\000\0064\005\000\0060\005\000\006,\005\000\006(\005\000\002\028\001\000\012\204\006\000\0064\r\000\0064\006\000\0060\006\000\006,\006\000\006(\006\000\012\200\002\000\0060\t\000\006$\002\000\006 \002\000\006\028\002\000\006\024\002\000\012\200\003\000\006$\003\000\006 \003\000\006\028\003\000\006\024\003\000\012\204\001\000\012\200\001\000\0064\001\000\0060\001\000\006,\001\000\006(\001\000\006$\004\000\006$\001\000\006 \004\000\006 \001\000\006\028\001\000\006\024\001\000\012\204\002\000\0064\002\000\0060\002\000\006,\002\000\006(\002\000\006$\005\000\012\204\003\000\0064\003\000\0060\003\000\006,\003\000\006(\003\000\006$\006\000\012\204\004\000\0064\004\000\0060\004\000\006,\004\000\006(\004\000\006$\007\000\012\204\005\000\0064\005\000\0060\005\000\006,\005\000\006(\005\000\006$\b\000\002\028\001\000\012\204\006\000\0064\006\000\0060\006\000\006,\006\000\006(\006\000\006$\t\000\012\200\002\000\006$\002\000\006 \005\000\006 \002\000\006\028\002\000\006\024\002\000\014\140\001\000\014\136\001\000\014\132\001\000\014\128\001\000\014|\001\000\001\204\001\000\001\204\002\000\014t\001\000\005,\001\000\014t\002\000\014t\003\000\007\140\001\000\007\136\001\000\007\132\001\000\007\128\001\000\n\136\001\000\n\136\002\000\002\028\001\000\007\140\002\000\007\136\002\000\007\132\002\000\007\128\002\000\n\164\001\000\011t\001\000\011t\002\000\011t\003\000\020@\001\000\015\204\001\000\019\220\001\000\015\204\002\000\b0\001\000\b\016\001\000\007\224\001\000\b\016\002\000\007\224\002\000\020\012\001\000\020\016\001\000\014\144\001\000\012\172\001\000\005\196\001\000\005\192\001\000\005\188\001\000\005\184\001\000\014x\001\000\014x\002\000\014x\003\000\015\200\001\000\015\200\002\000\020L\001\000\001\212\001\000\020D\001\000\014`\001\000\015\160\001\000\020$\001\000\014L\001\000\015\164\001\000\012\172\002\000\005\196\002\000\005\192\002\000\005\188\002\000\005\184\002\000\012\172\003\000\005\196\003\000\005\192\003\000\005\188\003\000\005\184\003\000\012\180\001\000\012\176\001\000\005\228\001\000\005\224\001\000\005\220\001\000\005\216\001\000\005\212\001\000\005\208\001\000\005\204\001\000\005\200\001\000\005\196\004\000\005\192\004\000\012\180\002\000\005\228\002\000\005\224\002\000\005\220\002\000\005\216\002\000\005\196\005\000\012\180\003\000\005\228\003\000\005\224\003\000\005\220\003\000\005\216\003\000\005\196\006\000\012\180\004\000\005\228\004\000\005\224\004\000\005\220\004\000\005\216\004\000\005\196\007\000\012\180\005\000\005\228\005\000\005\224\005\000\005\220\005\000\005\216\005\000\005\196\b\000\002\028\001\000\012\180\006\000\005\228\006\000\005\224\006\000\005\220\006\000\005\216\006\000\005\196\t\000\012\176\002\000\005\212\002\000\005\208\002\000\005\204\002\000\005\200\002\000\005\192\005\000\012\172\001\000\005\196\001\000\005\192\001\000\005\188\004\000\005\188\001\000\005\184\001\000\012\172\002\000\005\196\002\000\005\192\002\000\005\188\005\000\005\188\002\000\005\184\002\000\015\172\001\000\015\188\001\000\014H\001\000\015\188\002\000\014p\001\000\014l\001\000\014h\001\000\014d\001\000\015\188\003\000\015\232\001\000\015\196\001\000\015\220\001\000\015\216\001\000\015\212\001\000\015\208\001\000\b \001\000\001\236\001\000\001\232\001\000\015\220\002\000\015\216\002\000\015\212\002\000\015\208\002\000\b \002\000\001\236\002\000\015\220\003\000\015\216\003\000\001\236\003\000\015\216\004\000\011`\001\000\011`\002\000\011`\003\000\011d\001\000\011\\\001\000\011P\001\000\012\168\001\000\011`\004\000\011X\001\000\011T\001\000\011L\001\000\011H\001\000\005\180\001\000\005\176\001\000\005\172\001\000\005\168\001\000\012\168\002\000\005\180\002\000\005\176\002\000\005\172\002\000\005\168\002\000\012\180\001\000\012\176\001\000\005\228\001\000\005\224\001\000\005\220\001\000\005\216\001\000\005\212\001\000\005\208\001\000\005\204\001\000\005\200\001\000\005\180\003\000\005\176\003\000\012\180\002\000\005\228\002\000\005\224\002\000\005\220\002\000\005\216\002\000\005\180\004\000\012\180\003\000\005\228\003\000\005\224\003\000\005\220\003\000\005\216\003\000\005\180\005\000\012\180\004\000\005\228\004\000\005\224\004\000\005\220\004\000\005\216\004\000\005\180\006\000\012\180\005\000\005\228\005\000\005\224\005\000\005\220\005\000\005\216\005\000\005\180\007\000\002\028\001\000\012\180\006\000\005\228\006\000\005\224\006\000\005\220\006\000\005\216\006\000\005\180\b\000\012\176\002\000\005\212\002\000\005\208\002\000\005\204\002\000\005\200\002\000\005\176\004\000\012\172\001\000\005\196\001\000\005\192\001\000\005\188\001\000\005\184\001\000\005\172\003\000\012\172\002\000\005\196\002\000\005\192\002\000\005\188\002\000\005\184\002\000\005\172\004\000\015\224\001\000\015\192\001\000\001\244\001\000\012\168\003\000\012\168\001\000\011X\001\000\011T\001\000\011L\001\000\011H\001\000\005\180\001\000\005\176\001\000\005\172\001\000\005\168\003\000\005\168\001\000\011H\002\000\012\168\001\000\011X\001\000\011T\001\000\011L\001\000\011H\003\000\011H\001\000\005\180\001\000\005\176\001\000\005\172\001\000\005\168\001\000\011X\002\000\012\168\001\000\011X\003\000\011X\001\000\011T\001\000\011L\001\000\011H\001\000\005\180\001\000\005\176\001\000\005\172\001\000\005\168\001\000\011T\002\000\011T\003\000\011L\002\000\015\196\001\000\011p\001\000\012\168\001\000\011p\002\000\011X\001\000\011T\001\000\011L\001\000\011H\001\000\005\180\001\000\005\176\001\000\005\172\001\000\005\168\001\000\012\164\001\000\012\160\001\000\005\164\001\000\005\160\001\000\005\156\001\000\005\152\001\000\012\164\002\000\005\164\002\000\005\160\002\000\005\156\002\000\005\152\002\000\012\180\001\000\012\176\001\000\005\228\001\000\005\224\001\000\005\220\001\000\005\216\001\000\005\212\001\000\005\208\001\000\005\204\001\000\005\200\001\000\005\164\003\000\005\160\003\000\012\180\002\000\005\228\002\000\005\224\002\000\005\220\002\000\005\216\002\000\005\164\004\000\012\180\003\000\005\228\003\000\005\224\003\000\005\220\003\000\005\216\003\000\005\164\005\000\012\180\004\000\005\228\004\000\005\224\004\000\005\220\004\000\005\216\004\000\005\164\006\000\012\180\005\000\005\228\005\000\005\224\005\000\005\220\005\000\005\216\005\000\005\164\007\000\002\028\001\000\012\180\006\000\005\228\006\000\005\224\006\000\005\220\006\000\005\216\006\000\005\164\b\000\012\176\002\000\005\212\002\000\005\208\002\000\005\204\002\000\005\200\002\000\005\160\004\000\012\172\001\000\005\196\001\000\005\192\001\000\005\188\001\000\005\184\001\000\005\156\003\000\012\172\002\000\005\196\002\000\005\192\002\000\005\188\002\000\005\184\002\000\005\156\004\000\012\164\003\000\012\168\001\000\011X\001\000\011T\001\000\011L\001\000\011H\001\000\005\180\001\000\005\176\001\000\005\172\001\000\005\168\001\000\005\152\003\000\015\192\001\000\011l\001\000\011h\001\000\020\028\001\000\015\228\001\000\015\180\001\000\015\176\001\000\015\168\001\000\011l\002\000\001\240\001\000\001\208\001\000\011l\003\000\011l\004\000\011l\005\000\011l\006\000\014h\001\000\014d\001\000\014T\001\000\014P\001\000\n\028\001\000\001\240\002\000\001\240\003\000\015\228\002\000\015\168\002\000\012\168\001\000\011X\001\000\011T\001\000\011L\001\000\011H\001\000\005\180\001\000\005\176\001\000\005\172\001\000\005\168\001\000\015\168\003\000\015\228\003\000\015\228\004\000\002\028\001\000\015\228\005\000\012\168\001\000\011h\002\000\011X\001\000\011T\001\000\011L\001\000\011H\001\000\005\180\001\000\005\176\001\000\005\172\001\000\005\168\001\000\001\236\004\000\001\236\005\000\015\220\004\000\012\168\001\000\011X\001\000\011T\001\000\011L\001\000\011H\001\000\005\180\001\000\005\176\001\000\005\172\001\000\005\168\001\000\015\220\005\000\015\212\003\000\014|\001\000\015\212\004\000\014|\002\000\014|\003\000\r\216\001\000\r\212\001\000\r\208\001\000\012\168\001\000\011X\001\000\011T\001\000\011L\001\000\011H\001\000\005\180\001\000\005\176\001\000\005\172\001\000\005\168\001\000\r\216\002\000\r\212\002\000\r\216\003\000\015\208\003\000\012\172\004\000\012\168\001\000\011X\001\000\011T\001\000\011L\001\000\011H\001\000\005\184\004\000\005\180\001\000\005\176\001\000\005\172\001\000\005\168\001\000\014\144\002\000\011\\\001\000\014\144\003\000\012\168\001\000\011X\001\000\011T\001\000\011L\001\000\011H\001\000\005\180\001\000\005\176\001\000\005\172\001\000\005\168\001\000\011t\004\000\012\168\001\000\011X\001\000\011T\001\000\011L\001\000\011H\001\000\n\164\002\000\005\180\001\000\005\176\001\000\005\172\001\000\005\168\001\000\007\140\003\000\007\136\003\000\007\132\003\000\007\128\003\000\007\140\004\000\007\136\004\000\007\132\004\000\007\136\005\000\n`\001\000\007\136\006\000\007\140\005\000\014\132\002\000\014\128\002\000\014\128\003\000\014\140\002\000\014\136\002\000\014\136\003\000\012\196\001\000\006\028\004\000\006\020\001\000\006\016\001\000\006\012\001\000\006\b\001\000\012\196\002\000\006\028\005\000\006\020\002\000\006\016\002\000\006\012\002\000\006\b\002\000\012\196\003\000\006\020\003\000\006\016\003\000\006\012\003\000\006\b\003\000\012\204\001\000\012\200\001\000\0064\001\000\0060\001\000\006,\001\000\006(\001\000\006$\001\000\006 \001\000\006\028\001\000\006\024\001\000\006\020\004\000\006\016\004\000\012\204\002\000\0064\002\000\0060\002\000\006,\002\000\006(\002\000\006\020\005\000\012\204\003\000\0064\003\000\0060\003\000\006,\003\000\006(\003\000\006\020\006\000\012\204\004\000\0064\004\000\0060\004\000\006,\004\000\006(\004\000\006\020\007\000\012\204\005\000\0064\005\000\0060\005\000\006,\005\000\006(\005\000\006\020\b\000\002\028\001\000\012\204\006\000\0064\006\000\0060\006\000\006,\006\000\006(\006\000\006\020\t\000\012\200\002\000\006$\002\000\006 \002\000\006\028\002\000\006\024\002\000\006\016\005\000\012\196\001\000\006\020\001\000\006\016\001\000\006\012\004\000\006\012\001\000\006\b\001\000\012\196\002\000\006\020\002\000\006\016\002\000\006\012\005\000\006\012\002\000\006\b\002\000\012\196\004\000\011\140\001\000\012\192\001\000\011\136\001\000\011\132\001\000\011|\001\000\011x\001\000\006\b\004\000\006\004\001\000\006\000\001\000\005\252\001\000\005\248\001\000\012\192\002\000\006\004\002\000\006\000\002\000\005\252\002\000\005\248\002\000\012\204\001\000\012\200\001\000\0064\001\000\0060\001\000\006,\001\000\006(\001\000\006$\001\000\006 \001\000\006\028\001\000\006\024\001\000\006\004\003\000\006\000\003\000\012\204\002\000\0064\002\000\0060\002\000\006,\002\000\006(\002\000\006\004\004\000\012\204\003\000\0064\003\000\0060\003\000\006,\003\000\006(\003\000\006\004\005\000\012\204\004\000\0064\004\000\0060\004\000\006,\004\000\006(\004\000\006\004\006\000\012\204\005\000\0064\005\000\0060\005\000\006,\005\000\006(\005\000\006\004\007\000\002\028\001\000\012\204\006\000\0064\006\000\0060\006\000\006,\006\000\006(\006\000\006\004\b\000\012\200\002\000\006$\002\000\006 \002\000\006\028\002\000\006\024\002\000\006\000\004\000\012\196\001\000\006\020\001\000\006\016\001\000\006\012\001\000\006\b\001\000\005\252\003\000\012\196\002\000\006\020\002\000\006\016\002\000\006\012\002\000\006\b\002\000\005\252\004\000\012\192\003\000\012\192\001\000\011\136\001\000\011\132\001\000\011|\001\000\011x\001\000\006\004\001\000\006\000\001\000\005\252\001\000\005\248\003\000\005\248\001\000\011x\002\000\012\168\001\000\011x\003\000\011X\001\000\011T\001\000\011L\001\000\011H\001\000\005\180\001\000\005\176\001\000\005\172\001\000\005\168\001\000\011\136\002\000\012\168\001\000\011\136\003\000\011X\001\000\011T\001\000\011L\001\000\011H\001\000\005\180\001\000\005\176\001\000\005\172\001\000\005\168\001\000\011\132\002\000\011\132\003\000\011|\002\000\011\128\001\000\012\188\001\000\012\184\001\000\005\244\001\000\005\240\001\000\005\236\001\000\005\232\001\000\012\188\002\000\005\244\002\000\005\240\002\000\005\236\002\000\005\232\002\000\012\204\001\000\012\200\001\000\0064\001\000\0060\001\000\006,\001\000\006(\001\000\006$\001\000\006 \001\000\006\028\001\000\006\024\001\000\005\244\003\000\005\240\003\000\012\204\002\000\0064\002\000\0060\002\000\006,\002\000\006(\002\000\005\244\004\000\012\204\003\000\0064\003\000\0060\003\000\006,\003\000\006(\003\000\005\244\005\000\012\204\004\000\0064\004\000\0060\004\000\006,\004\000\006(\004\000\005\244\006\000\012\204\005\000\0064\005\000\0060\005\000\006,\005\000\006(\005\000\005\244\007\000\002\028\001\000\012\204\006\000\0064\006\000\0060\006\000\006,\006\000\006(\006\000\005\244\b\000\012\200\002\000\006$\002\000\006 \002\000\006\028\002\000\006\024\002\000\005\240\004\000\012\196\001\000\006\020\001\000\006\016\001\000\006\012\001\000\006\b\001\000\005\236\003\000\012\196\002\000\006\020\002\000\006\016\002\000\006\012\002\000\006\b\002\000\005\236\004\000\012\188\003\000\012\192\001\000\011\136\001\000\011\132\001\000\011|\001\000\011x\001\000\006\004\001\000\006\000\001\000\005\252\001\000\005\248\001\000\005\232\003\000\012\200\004\000\012\192\001\000\011\136\001\000\011\132\001\000\011|\001\000\011x\001\000\006\024\004\000\006\004\001\000\006\000\001\000\005\252\001\000\005\248\001\000\012\196\001\000\006,\b\000\006\020\001\000\006\016\001\000\006\012\001\000\006\b\001\000\012\196\002\000\006,\t\000\006\020\002\000\006\016\002\000\006\012\002\000\006\b\002\000\012\204\b\000\012\192\001\000\011\136\001\000\011\132\001\000\011|\001\000\011x\001\000\006(\b\000\006\004\001\000\006\000\001\000\005\252\001\000\005\248\001\000\012\200\002\000\006$\002\000\006 \002\000\006\028\002\000\006\024\002\000\012\196\001\000\006\020\001\000\006\016\001\000\006\012\001\000\006\b\001\000\012\196\002\000\006\020\002\000\006\016\002\000\006\012\002\000\006\b\002\000\015\160\001\000\006\220\001\000\006\216\001\000\005h\001\000\005d\001\000\005`\001\000\005d\002\000\005`\002\000\005(\001\000\005$\001\000\005 \001\000\005\028\001\000\005\024\001\000\005\020\001\000\005(\002\000\005$\002\000\005 \002\000\005\028\002\000\r\012\001\000\r\b\001\000\005(\003\000\005$\003\000\005(\004\000\005$\004\000\005(\005\000\005$\005\000\002\028\001\000\000h\001\000\000h\002\000\005(\006\000\005 \003\000\005\028\003\000\002\028\001\000\005 \004\000\005\024\002\000\005d\003\000\005d\004\000\005d\005\000\005`\003\000\005`\004\000\005h\002\000\005P\001\000\005L\001\000\005H\001\000\005L\002\000\005H\002\000\005L\003\000\005L\004\000\n\172\001\000\006\140\001\000\002\164\001\000\002\160\001\000\002\156\001\000\002\152\001\000\002\164\002\000\002\160\002\000\002\164\003\000\002\164\004\000\002\164\005\000\011\012\001\000\011\b\001\000\011\004\001\000\011\000\001\000\n\252\001\000\n\248\001\000\n\244\001\000\n\240\001\000\n\236\001\000\n\232\001\000\n\228\001\000\n\224\001\000\011\012\002\000\011\b\002\000\011\004\002\000\011\000\002\000\n\252\002\000\n\248\002\000\n\244\002\000\n\240\002\000\011\012\003\000\011\b\003\000\011\004\003\000\011\000\003\000\n\252\003\000\n\248\003\000\n\244\003\000\n\240\003\000\015\148\001\000\015\144\001\000\015<\001\000\0158\001\000\015\140\001\000\015\136\001\000\015H\001\000\001\204\001\000\015\000\001\000\014\252\001\000\r\204\001\000\r\200\001\000\r\196\001\000\n\148\001\000\n\144\001\000\015,\001\000\020 \001\000\b\020\001\000\015p\001\000\002\220\001\000\002\220\002\000\002\220\003\000\0150\001\000\014\156\001\000\014\152\001\000\014\148\001\000\012t\001\000\012p\001\000\012l\001\000\012h\001\000\012d\001\000\014\212\001\000\014\208\001\000\014\212\002\000\014\208\002\000\014\212\003\000\014\208\003\000\002\204\001\000\002\200\001\000\002\196\001\000\002\192\001\000\002\188\001\000\002\184\001\000\002\204\002\000\002\200\002\000\002\196\002\000\002\192\002\000\002\188\002\000\002\184\002\000\002\204\003\000\002\200\003\000\002\196\003\000\002\192\003\000\002\188\003\000\002\184\003\000\r\236\001\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\r\236\002\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\r\236\003\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\r\020\001\000\012\168\001\000\011X\001\000\011T\001\000\011L\001\000\011H\001\000\007\152\001\000\007\148\001\000\007\144\001\000\005\180\001\000\005\176\001\000\005\172\001\000\005\168\001\000\007\148\002\000\002\136\001\000\002\136\002\000\002\136\003\000\005\\\001\000\005X\001\000\005T\001\000\011\148\001\000\005X\002\000\005T\002\000\020\028\001\000\015\228\001\000\015\180\001\000\015\176\001\000\015\168\001\000\006\184\001\000\001\240\001\000\001\208\001\000\020\028\001\000\015\228\001\000\015\180\001\000\015\176\001\000\015\168\001\000\006\212\001\000\001\240\001\000\001\208\001\000\015\228\002\000\015\168\002\000\012\168\001\000\011X\001\000\011T\001\000\011L\001\000\011H\001\000\006\208\001\000\006\204\001\000\006\200\001\000\005\180\001\000\005\176\001\000\005\172\001\000\005\168\001\000\015\228\003\000\006\208\002\000\006\204\002\000\r\012\001\000\r\b\001\000\006\208\003\000\006\208\004\000\006\208\005\000\002\028\001\000\006\208\006\000\015\228\004\000\006\204\003\000\002\028\001\000\006\204\004\000\006\200\002\000\006\212\002\000\006\212\003\000\006\184\002\000\006\184\003\000\012\168\001\000\011X\001\000\011T\001\000\011L\001\000\011H\001\000\006\180\001\000\006\176\001\000\006\172\001\000\006\168\001\000\006\164\001\000\006\160\001\000\005\180\001\000\005\176\001\000\005\172\001\000\005\168\001\000\006\180\002\000\006\176\002\000\006\172\002\000\006\168\002\000\r\012\001\000\r\b\001\000\006\180\003\000\006\176\003\000\006\180\004\000\006\176\004\000\006\180\005\000\006\176\005\000\002\028\001\000\006\180\006\000\006\172\003\000\006\168\003\000\002\028\001\000\006\172\004\000\006\164\002\000\005X\003\000\005X\004\000\005X\005\000\005X\006\000\005T\003\000\005T\004\000\005T\005\000\011\144\001\000\005\\\002\000\020\028\001\000\015\228\001\000\015\180\001\000\015\176\001\000\015\168\001\000\005\148\001\000\005\136\001\000\005\132\001\000\005\128\001\000\004L\001\000\004H\001\000\001\240\001\000\001\208\001\000\004L\002\000\004H\002\000\t\028\001\000\t\028\002\000\t\028\003\000\011\240\001\000\t\028\004\000\004\228\001\000\004\224\001\000\t\028\005\000\t\024\001\000\004L\003\000\004L\004\000\011\240\001\000\004\228\001\000\004\224\001\000\004L\005\000\004L\006\000\t \001\000\004H\003\000\004H\004\000\tX\001\000\tT\001\000\t\024\001\000\tX\002\000\015\228\002\000\015\168\002\000\012\168\001\000\011X\001\000\011T\001\000\011L\001\000\011H\001\000\006\208\001\000\006\204\001\000\006\200\001\000\005\180\001\000\005\176\001\000\005\172\001\000\005\168\001\000\005\148\002\000\015\228\003\000\006\208\002\000\006\204\002\000\005\148\003\000\r\012\001\000\r\b\001\000\006\208\003\000\005\148\004\000\006\208\004\000\005\148\005\000\006\208\005\000\005\148\006\000\002\028\001\000\005\148\007\000\005\136\002\000\005\128\002\000\012\168\001\000\011X\001\000\011T\001\000\011L\001\000\011H\001\000\006\208\001\000\006\204\001\000\006\200\001\000\006\196\001\000\006\192\001\000\006\188\001\000\005\180\001\000\005\176\001\000\005\172\001\000\005\168\001\000\006\208\002\000\006\204\002\000\006\196\002\000\006\192\002\000\r\012\001\000\r\b\001\000\006\208\003\000\006\196\003\000\006\208\004\000\006\196\004\000\006\208\005\000\006\196\005\000\002\028\001\000\006\204\003\000\006\192\003\000\002\028\001\000\005\136\003\000\005\136\004\000\005\128\003\000\005\128\004\000\005\132\002\000\005\132\003\000\005\144\001\000\005\140\001\000\005x\001\000\005t\001\000\005p\001\000\005l\001\000\020\028\001\000\015\228\001\000\015\180\001\000\015\176\001\000\015\168\001\000\005\144\002\000\005\140\002\000\005x\002\000\005t\002\000\005p\002\000\001\240\001\000\001\208\001\000\015\228\002\000\015\168\002\000\012\168\001\000\011X\001\000\011T\001\000\011L\001\000\011H\001\000\006\208\001\000\006\204\001\000\006\200\001\000\005\180\001\000\005\176\001\000\005\172\001\000\005\168\001\000\005\140\003\000\015\228\003\000\006\208\002\000\006\204\002\000\005\140\004\000\r\012\001\000\r\b\001\000\006\208\003\000\005\140\005\000\006\208\004\000\005\140\006\000\006\208\005\000\005\140\007\000\002\028\001\000\005\140\b\000\005\144\003\000\005x\003\000\005t\003\000\012\168\001\000\011X\001\000\011T\001\000\011L\001\000\011H\001\000\006\208\001\000\006\204\001\000\006\200\001\000\005\180\001\000\005\176\001\000\005\172\001\000\005\168\001\000\005\144\004\000\005x\004\000\005x\005\000\006\208\002\000\006\204\002\000\005\144\005\000\r\012\001\000\r\b\001\000\006\208\003\000\005\144\006\000\006\208\004\000\005\144\007\000\006\208\005\000\005\144\b\000\002\028\001\000\005\144\t\000\006\204\003\000\002\028\001\000\005t\004\000\005t\005\000\005p\003\000\005p\004\000\005l\002\000\005|\001\000\012\220\001\000\004T\001\000\004P\001\000\012\220\002\000\002\136\004\000\n\204\001\000\n\200\001\000\n\204\002\000\n\200\002\000\000\140\001\000\000\128\001\000\000t\001\000\n\204\003\000\002\136\005\000\002\136\006\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\002\140\001\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\002\140\002\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\002\140\003\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\002\140\004\000\012`\005\000\012\\\005\000\012X\005\000\012T\005\000\012P\005\000\012\156\001\000\012\152\001\000\012\148\001\000\012\144\001\000\012\140\001\000\012\136\001\000\012\132\001\000\012\128\001\000\012|\001\000\012x\001\000\012`\006\000\012\\\006\000\012\156\002\000\012\152\002\000\012\148\002\000\012\144\002\000\012\140\002\000\012`\007\000\012\156\003\000\012\152\003\000\012\148\003\000\012\144\003\000\012\140\003\000\012`\b\000\012\156\004\000\012\152\004\000\012\148\004\000\012\144\004\000\012\140\004\000\012`\t\000\012\156\005\000\012\152\005\000\012\148\005\000\012\144\005\000\012\140\005\000\012`\n\000\012\136\002\000\012\132\002\000\012\128\002\000\012|\002\000\012x\002\000\012\\\007\000\012t\001\000\012p\001\000\012l\001\000\012h\001\000\012d\001\000\012X\006\000\014\248\001\000\001\196\001\000\014\232\001\000\b$\001\000\001\200\001\000\015\028\001\000\015\024\001\000\015\020\001\000\015\b\001\000\015\004\001\000\014\248\002\000\014\204\001\000\014\200\001\000\014\196\001\000\014\192\001\000\014\188\001\000\014\184\001\000\014\180\001\000\014\176\001\000\014\172\001\000\015\024\002\000\015\024\003\000\015\028\002\000\015\028\003\000\015\028\001\000\015\024\001\000\015\020\001\000\015\b\001\000\015\004\001\000\014\204\001\000\014\200\001\000\014\196\001\000\014\192\001\000\014\188\001\000\014\184\001\000\014\180\001\000\014\176\001\000\014\172\001\000\015\020\002\000\015\020\003\000\014\200\002\000\014\192\002\000\014\184\002\000\014\184\003\000\r\192\001\000\r\184\001\000\r\180\001\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\r\192\002\000\r\184\002\000\r\180\002\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\r\192\003\000\r\184\003\000\r\180\003\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\r\192\004\000\r\184\004\000\r\180\004\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\r\192\005\000\r\184\005\000\002\212\001\000\002\212\002\000\002\212\003\000\012\168\001\000\011X\001\000\011T\001\000\011L\001\000\011H\001\000\005\180\001\000\005\176\001\000\005\172\001\000\005\168\001\000\002\212\004\000\002\212\005\000\004D\001\000\002\216\001\000\002\216\002\000\002\216\003\000\015\028\001\000\015\024\001\000\015\020\001\000\015\b\001\000\015\004\001\000\014\204\001\000\014\200\001\000\014\196\001\000\014\192\001\000\014\188\001\000\014\184\001\000\014\180\001\000\014\176\001\000\014\172\001\000\002\216\004\000\015\b\002\000\015\b\003\000\015\004\002\000\014\204\002\000\014\196\002\000\014\188\002\000\014\180\002\000\014\176\002\000\014\172\002\000\014\172\003\000\002\228\001\000\002\224\001\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\002\228\002\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\002\228\003\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\002\228\004\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\002\228\005\000\r\024\002\000\r\024\003\000\r\016\001\000\015\028\001\000\015\024\001\000\015\020\001\000\015\b\001\000\015\004\001\000\014\204\001\000\014\200\001\000\014\196\001\000\014\192\001\000\014\188\001\000\014\184\001\000\014\180\001\000\014\176\001\000\014\172\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\002\244\001\000\002\148\001\000\005<\001\000\0058\001\000\005<\002\000\005<\003\000\005<\004\000\005<\005\000\0058\002\000\005@\001\000\005@\002\000\005D\001\000\015\028\001\000\015\024\001\000\015\020\001\000\015\b\001\000\015\004\001\000\014\204\001\000\014\200\001\000\014\196\001\000\014\192\001\000\014\188\001\000\014\184\001\000\014\180\001\000\014\176\001\000\014\172\001\000\005D\002\000\014\240\001\000\015\128\001\000\015|\001\000\015l\001\000\015h\001\000\015d\001\000\015`\001\000\015\\\001\000\015X\001\000\015T\001\000\015P\001\000\015L\001\000\015D\001\000\015@\001\000\0154\001\000\015(\001\000\015\016\001\000\015\012\001\000\b(\001\000\b \001\000\001\236\001\000\001\232\001\000\015\128\002\000\015|\002\000\015l\002\000\015h\002\000\015d\002\000\015`\002\000\015\\\002\000\015X\002\000\015T\002\000\015P\002\000\015L\002\000\015D\002\000\015@\002\000\0154\002\000\015(\002\000\015\016\002\000\015\012\002\000\b(\002\000\b \002\000\001\236\002\000\020\028\001\000\015l\003\000\015(\003\000\015\012\003\000\001\236\003\000\015(\004\000\n\020\001\000\000@\001\000\n\016\001\000\000<\001\000\015l\004\000\015l\005\000\015l\006\000\bd\001\000\bd\002\000\004x\001\000\004t\001\000\004p\001\000\004p\002\000\004x\002\000\004t\002\000\004x\003\000\004t\003\000\b\192\001\000\b\188\001\000\b\176\001\000\b\192\002\000\b\188\002\000\b\192\003\000\b\188\003\000\b\168\001\000\b\164\001\000\b\168\002\000\b\164\002\000\012\236\001\000\004|\001\000\012\236\002\000\b\168\003\000\b\164\003\000\b\168\004\000\b\164\004\000\b\184\001\000\b\220\001\000\b\212\001\000\b\208\001\000\b\204\001\000\b\200\001\000\b\196\001\000\b\180\001\000\b\168\005\000\b\164\005\000\b\220\002\000\b\212\002\000\020x\001\000\020t\001\000\020x\002\000\020t\002\000\020x\003\000\020t\003\000\020\144\001\000\020\140\001\000\020\144\002\000\020x\004\000\020x\005\000\000P\001\000\000L\001\000\000H\001\000\020t\004\000\020t\005\000\000P\001\000\000L\001\000\000H\001\000\020t\006\000\012\212\001\000\012\212\002\000\012\212\003\000\002\028\001\000\012\212\004\000\012\212\005\000\002\028\001\000\019\208\001\000\020\136\001\000\020\132\001\000\020\128\001\000\020|\001\000\020\136\002\000\020\132\002\000\020\136\003\000\020\132\003\000\020\132\004\000\020\132\005\000\b\220\001\000\b\212\001\000\b\208\001\000\b\204\001\000\b\200\001\000\b\196\001\000\b\180\001\000\b\200\002\000\b\196\002\000\b\220\001\000\b\212\001\000\b\208\001\000\b\204\001\000\b\200\003\000\b\200\001\000\b\196\003\000\b\196\001\000\b\180\001\000\b\180\002\000\b\208\002\000\b\204\002\000\b\200\004\000\b\208\003\000\b\204\003\000\b\220\001\000\b\212\001\000\b\208\004\000\b\208\001\000\b\204\004\000\b\204\001\000\b\200\001\000\b\196\001\000\b\180\001\000\b\208\005\000\b\208\002\000\b\204\002\000\b0\001\000\b\000\001\000\007\224\001\000\b\000\002\000\007\224\002\000\007\224\003\000\004\176\001\000\b\000\003\000\b\232\001\000\007\252\001\000\b\216\001\000\b\208\002\000\b\204\002\000\020\136\004\000\020\136\005\000\b\220\001\000\b\212\001\000\b\208\001\000\b\204\001\000\b\200\001\000\b\196\001\000\b\180\001\000\020\128\002\000\020|\002\000\b \001\000\020|\003\000\020|\004\000\b0\001\000\007\224\001\000\b \002\000\020\128\003\000\020\128\004\000\b0\001\000\007\224\001\000\r,\001\000\r0\001\000\b\212\003\000\r0\002\000\r0\003\000\b\220\003\000\b0\001\000\007\224\001\000\b\208\002\000\b\204\002\000\b\168\006\000\012\232\001\000\b\220\001\000\b\212\001\000\b\208\001\000\b\204\001\000\b\200\001\000\b\196\001\000\b\192\004\000\b\188\004\000\b\180\001\000\b\208\002\000\b\204\002\000\b\192\005\000\b\220\001\000\b\212\001\000\b\208\001\000\b\204\001\000\b\200\001\000\b\196\001\000\b\180\001\000\b\176\002\000\b\176\003\000\b\220\001\000\b\212\001\000\b\208\001\000\b\204\001\000\b\200\001\000\b\196\001\000\b\180\001\000\004x\004\000\004t\004\000\004t\005\000\004x\005\000\004x\006\000\bd\003\000\bd\004\000\bh\001\000\bx\001\000\bt\001\000\bl\001\000\bd\005\000\011\012\001\000\011\b\001\000\011\004\001\000\011\000\001\000\n\252\001\000\n\248\001\000\n\244\001\000\n\240\001\000\n\236\001\000\n\232\001\000\n\228\001\000\n\224\001\000\bx\002\000\bx\003\000\n\236\002\000\n\232\002\000\n\228\002\000\n\224\002\000\bx\001\000\bt\001\000\bl\001\000\n\236\003\000\n\228\003\000\n\224\003\000\n\228\004\000\n\224\004\000\b\220\001\000\b\212\001\000\b\208\001\000\b\204\001\000\b\200\001\000\b\196\001\000\b\180\001\000\n\224\005\000\n\228\005\000\n\228\006\000\bt\002\000\bl\002\000\n\232\003\000\n\232\004\000\bp\001\000\b \001\000\b|\001\000\015l\007\000\bx\001\000\bt\001\000\bl\001\000\015l\b\000\015l\t\000\b\220\001\000\b\212\001\000\b\208\001\000\b\204\001\000\b\200\001\000\b\196\001\000\b\180\001\000\015l\n\000\019P\001\000\n \001\000\019L\001\000\n\028\001\000\t\200\001\000\003\208\001\000\011d\001\000\006\224\001\000\006\224\002\000\006\224\003\000\002\028\001\000\006\224\004\000\006\224\005\000\0128\001\000\0124\001\000\0120\001\000\012,\001\000\012(\001\000\003\004\001\000\0128\002\000\0124\002\000\0120\002\000\012,\002\000\012(\002\000\012\156\001\000\012\152\001\000\012\148\001\000\012\144\001\000\012\140\001\000\012\136\001\000\012\132\001\000\012\128\001\000\012|\001\000\012x\001\000\0128\003\000\0124\003\000\012\156\002\000\012\152\002\000\012\148\002\000\012\144\002\000\012\140\002\000\0128\004\000\012\156\003\000\012\152\003\000\012\148\003\000\012\144\003\000\012\140\003\000\0128\005\000\012\156\004\000\012\152\004\000\012\148\004\000\012\144\004\000\012\140\004\000\0128\006\000\012\156\005\000\012\152\005\000\012\148\005\000\012\144\005\000\012\140\005\000\0128\007\000\012\136\002\000\012\132\002\000\012\128\002\000\012|\002\000\012x\002\000\0124\004\000\012t\001\000\012p\001\000\012l\001\000\012h\001\000\012d\001\000\0120\003\000\015\028\001\000\015\024\001\000\015\020\001\000\015\b\001\000\015\004\001\000\014\204\001\000\014\200\001\000\014\196\001\000\014\192\001\000\014\188\001\000\014\184\001\000\014\180\001\000\014\176\001\000\014\172\001\000\012t\002\000\012p\002\000\012l\002\000\012h\002\000\012d\002\000\0120\004\000\012t\003\000\012p\003\000\012l\003\000\012h\003\000\012d\003\000\012\156\001\000\012\152\001\000\012\148\001\000\012\144\001\000\012\140\001\000\012\136\001\000\012\132\001\000\012\128\001\000\012|\001\000\012x\001\000\012t\004\000\012p\004\000\012\156\002\000\012\152\002\000\012\148\002\000\012\144\002\000\012\140\002\000\012t\005\000\012\156\003\000\012\152\003\000\012\148\003\000\012\144\003\000\012\140\003\000\012t\006\000\012\156\004\000\012\152\004\000\012\148\004\000\012\144\004\000\012\140\004\000\012t\007\000\012\156\005\000\012\152\005\000\012\148\005\000\012\144\005\000\012\140\005\000\012t\b\000\012\136\002\000\012\132\002\000\012\128\002\000\012|\002\000\012x\002\000\012p\005\000\012t\001\000\012p\001\000\012l\004\000\012l\001\000\012h\001\000\012d\001\000\015\028\001\000\015\024\001\000\015\020\001\000\015\b\001\000\015\004\001\000\014\204\001\000\014\200\001\000\014\196\001\000\014\192\001\000\014\188\001\000\014\184\001\000\014\180\001\000\014\176\001\000\014\172\001\000\012t\002\000\012p\002\000\012l\005\000\012l\002\000\012h\002\000\012d\002\000\020(\001\000\015 \001\000\014\236\001\000\015\132\001\000\012h\004\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\012h\005\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\012h\006\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\r\024\001\000\012h\007\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\014\240\001\000\003\016\001\000\015\028\001\000\015\024\001\000\015\020\001\000\015\b\001\000\015\004\001\000\014\204\001\000\014\200\001\000\014\196\001\000\014\192\001\000\014\188\001\000\014\184\001\000\014\180\001\000\014\176\001\000\014\172\001\000\003\016\002\000\006\144\001\000\003\204\001\000\003\204\002\000\003\204\003\000\r\232\001\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\004d\001\000\004`\001\000\004\\\001\000\004X\001\000\0044\001\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\128\002\000\003|\002\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\003\128\003\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\003\128\004\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\003\128\005\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\003\128\006\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\003\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003h\002\000\003d\002\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\003h\003\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\003h\004\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\003h\005\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\003h\006\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\003\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003`\002\000\003\\\002\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\003`\003\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\003`\004\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\003`\005\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\003`\006\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\003\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003X\002\000\003T\002\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\003X\003\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\003X\004\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\003X\005\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\003X\006\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\003\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\136\002\000\003\132\002\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\003\136\003\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\003\136\004\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\003\136\005\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\003\136\006\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\003\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\168\002\000\003\164\002\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\003\168\003\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\003\168\004\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\003\168\005\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\003\168\006\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\003\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003H\002\000\003D\002\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\003H\003\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\003H\004\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\003H\005\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\003H\006\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\003\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003x\002\000\003t\002\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\003x\003\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\003x\004\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\003x\005\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\003x\006\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\003\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003p\002\000\003l\002\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\003p\003\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\003p\004\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\003p\005\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\003p\006\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\003\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\152\002\000\003\148\002\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\003\152\003\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\003\152\004\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\003\152\005\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\003\152\006\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\003\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003P\002\000\003L\002\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\003P\003\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\003P\004\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\003P\005\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\003P\006\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\003\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003@\002\000\003<\002\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\003@\003\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\003@\004\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\003@\005\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\003@\006\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\003\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\0038\002\000\0034\002\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\0038\003\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\0038\004\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\0038\005\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\0038\006\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\003\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\0030\002\000\003,\002\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\0030\003\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\0030\004\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\0030\005\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\0030\006\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\003\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\024\002\000\003\020\002\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\003\024\003\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\003\024\004\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\003\024\005\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\003\024\006\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\003\000\003\020\001\000\003\160\002\000\003\156\002\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\003\160\003\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\003\160\004\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\003\160\005\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\003\160\006\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\003\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\144\002\000\003\140\002\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\003\144\003\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\003\144\004\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\003\144\005\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\003\144\006\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\003\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\012L\002\000\012H\002\000\012D\002\000\012@\002\000\012<\002\000\012\156\001\000\012\152\001\000\012\148\001\000\012\144\001\000\012\140\001\000\012\136\001\000\012\132\001\000\012\128\001\000\012|\001\000\012x\001\000\012L\003\000\012H\003\000\012\156\002\000\012\152\002\000\012\148\002\000\012\144\002\000\012\140\002\000\012L\004\000\012\156\003\000\012\152\003\000\012\148\003\000\012\144\003\000\012\140\003\000\012L\005\000\012\156\004\000\012\152\004\000\012\148\004\000\012\144\004\000\012\140\004\000\012L\006\000\012\156\005\000\012\152\005\000\012\148\005\000\012\144\005\000\012\140\005\000\012L\007\000\012\136\002\000\012\132\002\000\012\128\002\000\012|\002\000\012x\002\000\012H\004\000\012t\001\000\012p\001\000\012l\001\000\012h\001\000\012d\001\000\012D\003\000\015\028\001\000\015\024\001\000\015\020\001\000\015\b\001\000\015\004\001\000\014\204\001\000\014\200\001\000\014\196\001\000\014\192\001\000\014\188\001\000\014\184\001\000\014\180\001\000\014\176\001\000\014\172\001\000\012t\002\000\012p\002\000\012l\002\000\012h\002\000\012d\002\000\012D\004\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\012@\003\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\012@\004\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\012@\005\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\012@\006\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\003\000\012<\001\000\0044\001\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\200\002\000\003\196\002\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\003\200\003\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\003\200\004\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\003\200\005\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\003\200\006\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\003\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\216\002\000\003\212\002\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\003\216\003\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\003\216\004\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\003\216\005\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\003\216\006\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\003\216\001\000\003\212\003\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\176\002\000\003\172\002\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\003\176\003\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\003\176\004\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\003\176\005\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\003\176\006\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\003\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003(\002\000\003$\002\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\003(\003\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\003(\004\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\003(\005\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\003(\006\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\003\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003 \002\000\003\028\002\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\003 \003\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\003 \004\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\003 \005\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\003 \006\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\003\000\003\028\001\000\003\024\001\000\003\020\001\000\003\184\002\000\003\180\002\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\003\184\003\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\003\184\004\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\003\184\005\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\003\184\006\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\003\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\192\002\000\003\188\002\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\003\192\003\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\003\192\004\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\003\192\005\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\003\192\006\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\003\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\0044\002\000\002\240\001\000\014\236\001\000\003\b\001\000\015\028\001\000\015\024\001\000\015\020\001\000\015\b\001\000\015\004\001\000\014\204\001\000\014\200\001\000\014\196\001\000\014\192\001\000\014\188\001\000\014\184\001\000\014\180\001\000\014\176\001\000\014\172\001\000\003\b\002\000\002\236\001\000\002\232\001\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\002\236\002\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\002\236\003\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\002\236\004\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\002\236\005\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\002\232\002\000\004d\002\000\004`\002\000\004\\\002\000\004d\003\000\004d\004\000\004d\005\000\004`\003\000\000T\001\000\000T\002\000\020\028\001\000\015\228\001\000\015\180\001\000\015\176\001\000\015\168\001\000\006\136\001\000\001\240\001\000\001\208\001\000\015\160\001\000\006\136\002\000\006\136\003\000\006\136\004\000\016\196\001\000\016\196\002\000\006\136\005\000\016\200\001\000\nl\001\000\nh\001\000\nl\002\000\016\200\002\000\016\200\003\000\002\144\001\000\016\200\004\000\np\001\000\012\216\001\000\015\160\001\000\006p\001\000\006l\001\000\006`\001\000\006\\\001\000\006L\001\000\006H\001\000\006D\001\000\006@\001\000\006<\001\000\019\176\001\000\019\172\001\000\006p\002\000\006l\002\000\006`\002\000\006\\\002\000\006p\003\000\006l\003\000\006p\004\000\006l\004\000\006p\005\000\006l\005\000\006p\006\000\006l\006\000\002\028\001\000\006l\007\000\006l\b\000\006p\007\000\006p\b\000\006p\t\000\r\012\001\000\r\b\001\000\006`\003\000\006\\\003\000\006`\004\000\006\\\004\000\006`\005\000\006\\\005\000\002\028\001\000\006\\\006\000\006\\\007\000\006`\006\000\006`\007\000\006`\b\000\006H\002\000\006D\002\000\006D\003\000\006D\004\000\006H\003\000\006H\004\000\006H\005\000\006@\002\000\006L\002\000\006L\003\000\006L\004\000\015\164\001\000\006\128\001\000\006|\001\000\006x\001\000\006\128\002\000\006|\002\000\006\128\003\000\006|\003\000\002\028\001\000\006|\004\000\006|\005\000\006\128\004\000\006\128\005\000\006\128\006\000\006x\002\000\006x\003\000\006x\004\000\012\192\001\000\011\136\001\000\011\132\001\000\011|\001\000\011x\001\000\006t\001\000\006\004\001\000\006\000\001\000\005\252\001\000\005\248\001\000\006t\002\000\006t\003\000\006\132\001\000\006h\001\000\006d\001\000\006X\001\000\006T\001\000\006P\001\000\006\132\002\000\006h\002\000\006d\002\000\006X\002\000\006T\002\000\006P\002\000\019\176\001\000\019\172\001\000\006h\003\000\006d\003\000\r\012\001\000\r\b\001\000\006h\004\000\006d\004\000\006h\005\000\006d\005\000\006h\006\000\006d\006\000\002\028\001\000\006d\007\000\006d\b\000\006h\007\000\006h\b\000\006h\t\000\006T\003\000\006P\003\000\006P\004\000\006P\005\000\006T\004\000\006T\005\000\006T\006\000\006\132\003\000\006X\003\000\006X\004\000\006X\005\000\0068\001\000\000T\003\000\0074\001\000\0074\002\000\000T\004\000\006\144\002\000\012d\004\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\012,\003\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\012,\004\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\012,\005\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\012,\006\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\012(\003\000\0044\001\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\012\192\001\000\011\136\001\000\011\132\001\000\011|\001\000\011x\001\000\006\228\001\000\006\004\001\000\006\000\001\000\005\252\001\000\005\248\001\000\006\228\002\000\006\228\003\000\006\236\001\000\003\208\002\000\003\208\003\000\003\208\004\000\006\236\002\000\006\236\003\000\006\232\001\000\014\248\001\000\t\236\001\000\015\012\004\000\015\012\005\000\015\128\003\000\015|\003\000\015`\003\000\015\\\003\000\015`\004\000\r\192\001\000\r\184\001\000\r\180\001\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\015`\005\000\r\192\002\000\r\184\002\000\r\180\002\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\015`\006\000\r\192\003\000\r\184\003\000\r\180\003\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\015`\007\000\r\192\004\000\r\184\004\000\r\180\004\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\001\140\001\000\001\136\001\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\001\140\002\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\001\140\003\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\001\140\004\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\001\140\005\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\001\136\002\000\001\132\001\000\r(\001\000\001\132\002\000\r(\002\000\001\168\001\000\001\164\001\000\001\160\001\000\001\156\001\000\001\152\001\000\001\148\001\000\001\144\001\000\001\160\002\000\001\156\002\000\012\168\001\000\011X\001\000\011T\001\000\011L\001\000\011H\001\000\005\180\001\000\005\176\001\000\005\172\001\000\005\168\001\000\001\160\003\000\001\156\003\000\001\160\004\000\001\156\004\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\001\160\005\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\001\160\006\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\001\160\007\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\001\160\b\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\001\156\005\000\001\168\002\000\001\164\002\000\012\168\001\000\011X\001\000\011T\001\000\011L\001\000\011H\001\000\005\180\001\000\005\176\001\000\005\172\001\000\005\168\001\000\001\168\003\000\001\164\003\000\001\168\004\000\001\164\004\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\001\168\005\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\001\168\006\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\001\168\007\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\001\168\b\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\001\164\005\000\001\152\002\000\001\148\002\000\012\168\001\000\011X\001\000\011T\001\000\011L\001\000\011H\001\000\005\180\001\000\005\176\001\000\005\172\001\000\005\168\001\000\001\152\003\000\001\148\003\000\001\152\004\000\001\148\004\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\001\152\005\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\001\152\006\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\001\152\007\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\001\152\b\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\001\148\005\000\012\168\001\000\011X\001\000\011T\001\000\011L\001\000\011H\001\000\005\180\001\000\005\176\001\000\005\172\001\000\005\168\001\000\001\144\002\000\001\192\001\000\001\188\001\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\001\192\002\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\001\192\003\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\001\192\004\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\001\192\005\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\001\188\002\000\001\184\001\000\001\180\001\000\001\176\001\000\001\172\001\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\001\184\002\000\001\180\002\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\001\184\003\000\001\180\003\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\001\184\004\000\001\180\004\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\001\184\005\000\001\180\005\000\002X\001\000\002\\\001\000\001\184\006\000\001\180\006\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\001\184\007\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\001\184\b\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\001\184\t\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\001\184\n\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\001\180\007\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\001\176\002\000\001\172\002\000\001\176\003\000\001\172\003\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\001\176\004\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\001\176\005\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\001\176\006\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\001\176\007\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\001\172\004\000\001\144\003\000\r(\003\000\r$\001\000\015`\b\000\012\228\001\000\015`\t\000\012\228\002\000\012\224\001\000\015\128\004\000\015|\004\000\015|\005\000\015\\\004\000\r\188\001\000\r\176\001\000\r\172\001\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\r\188\002\000\r\176\002\000\r\188\003\000\r\188\001\000\r\176\001\000\r\172\001\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\015\\\005\000\012\228\001\000\015\\\006\000\015X\003\000\015T\003\000\015D\003\000\015@\003\000\015X\004\000\r\192\001\000\r\184\001\000\r\180\001\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\015X\005\000\r\192\002\000\r\184\002\000\r\180\002\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\015X\006\000\r\192\003\000\r\184\003\000\r\180\003\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\015X\007\000\r\192\004\000\r\184\004\000\r\180\004\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\015X\b\000\012\228\001\000\015X\t\000\015D\004\000\015@\004\000\015@\005\000\015T\004\000\r\188\001\000\r\176\001\000\r\172\001\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\015T\005\000\012\228\001\000\015T\006\000\015h\003\000\015d\003\000\015P\003\000\015L\003\000\015h\004\000\015P\004\000\r\192\001\000\r\184\001\000\r\180\001\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\015P\005\000\r\192\002\000\r\184\002\000\r\180\002\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\015P\006\000\r\192\003\000\r\184\003\000\r\180\003\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\015P\007\000\r\192\004\000\r\184\004\000\r\180\004\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\015P\b\000\012\228\001\000\015P\t\000\015d\004\000\015d\005\000\015L\004\000\r\188\001\000\r\176\001\000\r\172\001\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\015L\005\000\012\228\001\000\015L\006\000\015\016\003\000\015\016\004\000\015\016\005\000\0154\003\000\015\028\001\000\015\024\001\000\015\020\001\000\015\b\001\000\015\004\001\000\014\204\001\000\014\200\001\000\014\196\001\000\014\192\001\000\014\188\001\000\014\184\001\000\014\180\001\000\014\176\001\000\014\172\001\000\011\236\001\000\011\236\002\000\011\236\003\000\r\228\001\000\r\224\001\000\r\220\001\000\n\180\001\000\r\228\002\000\r\224\002\000\r\220\002\000\r\228\003\000\r\224\003\000\r\220\003\000\r\228\004\000\r\224\004\000\r\228\005\000\011\232\001\000\0154\004\000\0154\005\000\015\128\001\000\015|\001\000\015l\001\000\015h\001\000\015d\001\000\015`\001\000\015\\\001\000\015X\001\000\015T\001\000\015P\001\000\015L\001\000\015D\001\000\015@\001\000\0154\001\000\015(\001\000\015\016\001\000\015\012\001\000\b(\001\000\b \001\000\b\024\001\000\001\236\001\000\001\232\001\000\015\128\002\000\015|\002\000\015l\002\000\015h\002\000\015d\002\000\015`\002\000\015\\\002\000\015X\002\000\015T\002\000\015P\002\000\015L\002\000\015D\002\000\015@\002\000\0154\002\000\015(\002\000\015\016\002\000\015\012\002\000\b(\002\000\b \002\000\b\024\002\000\001\236\002\000\020 \001\000\b\024\003\000\b(\003\000\0054\001\000\015\028\001\000\015\024\001\000\015\020\001\000\015\b\001\000\015\004\001\000\014\204\001\000\014\200\001\000\014\196\001\000\014\192\001\000\014\188\001\000\014\184\001\000\014\180\001\000\014\176\001\000\014\172\001\000\0054\002\000\014\200\002\000\014\192\002\000\014\184\002\000\004(\002\000\004$\002\000\004\024\002\000\004\020\002\000\004\b\002\000\004\004\002\000\014\184\003\000\004\b\003\000\004\004\003\000\014\184\004\000\004\b\004\000\004\004\004\000\014\184\005\000\004\b\005\000\004\004\005\000\004\b\006\000\004\004\006\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\004\b\007\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\004\b\b\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\004\b\t\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\004\b\n\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\004\004\007\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\014\200\003\000\004(\003\000\004$\003\000\014\200\004\000\004(\004\000\004$\004\000\014\200\005\000\004(\005\000\004$\005\000\004(\006\000\004$\006\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\004(\007\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\004(\b\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\004(\t\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\004(\n\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\004$\007\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\014\192\003\000\004\024\003\000\004\020\003\000\014\192\004\000\004\024\004\000\004\020\004\000\014\192\005\000\004\024\005\000\004\020\005\000\004\024\006\000\004\020\006\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\004\024\007\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\004\024\b\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\004\024\t\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\004\024\n\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\004\020\007\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\015\004\002\000\014\204\002\000\014\196\002\000\014\188\002\000\014\180\002\000\014\176\002\000\014\172\002\000\0040\002\000\004,\002\000\004 \002\000\004\028\002\000\004\016\002\000\004\012\002\000\004\000\002\000\003\252\002\000\003\248\002\000\003\244\002\000\003\240\002\000\003\236\002\000\003\232\002\000\003\228\002\000\014\172\003\000\003\240\003\000\003\236\003\000\014\172\004\000\003\240\004\000\003\236\004\000\014\172\005\000\003\240\005\000\003\236\005\000\003\240\006\000\003\236\006\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\003\240\007\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\003\240\b\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\003\240\t\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\003\240\n\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\003\236\007\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\014\180\003\000\004\000\003\000\003\252\003\000\014\180\004\000\004\000\004\000\003\252\004\000\014\180\005\000\004\000\005\000\003\252\005\000\004\000\006\000\003\252\006\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\004\000\007\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\004\000\b\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\004\000\t\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\004\000\n\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\003\252\007\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\014\176\003\000\003\248\003\000\003\244\003\000\014\176\004\000\003\248\004\000\003\244\004\000\014\176\005\000\003\248\005\000\003\244\005\000\003\248\006\000\003\244\006\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\003\248\007\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\003\248\b\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\003\248\t\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\003\248\n\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\003\244\007\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\014\204\003\000\014\196\003\000\014\188\003\000\b \001\000\b\024\001\000\0040\003\000\004,\003\000\004 \003\000\004\028\003\000\004\016\003\000\004\012\003\000\014\204\004\000\014\196\004\000\014\188\004\000\0040\004\000\004,\004\000\004 \004\000\004\028\004\000\004\016\004\000\004\012\004\000\014\188\005\000\004\016\005\000\004\012\005\000\014\188\006\000\004\016\006\000\004\012\006\000\014\188\007\000\004\016\007\000\004\012\007\000\004\016\b\000\004\012\b\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\004\016\t\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\004\016\n\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\004\016\011\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\004\016\012\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\004\012\t\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\014\204\005\000\0040\005\000\004,\005\000\014\204\006\000\0040\006\000\004,\006\000\014\204\007\000\0040\007\000\004,\007\000\0040\b\000\004,\b\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\0040\t\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\0040\n\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\0040\011\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\0040\012\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\004,\t\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\014\196\005\000\004 \005\000\004\028\005\000\014\196\006\000\004 \006\000\004\028\006\000\014\196\007\000\004 \007\000\004\028\007\000\004 \b\000\004\028\b\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\004 \t\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\004 \n\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\004 \011\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\004 \012\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\004\028\t\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\015\004\003\000\003\232\003\000\003\228\003\000\003\232\004\000\003\228\004\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\003\232\005\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\003\232\006\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\003\232\007\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\003\232\b\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\003\228\005\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\015\028\001\000\015\024\001\000\015\020\001\000\015\b\001\000\015\004\001\000\014\204\001\000\014\200\001\000\014\196\001\000\014\192\001\000\014\188\001\000\014\184\001\000\014\180\001\000\014\176\001\000\014\172\001\000\0050\001\000\012\244\001\000\002\244\002\000\012\244\002\000\012\240\001\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\002\224\002\000\014\172\004\000\014\172\005\000\014\180\003\000\014\180\004\000\014\180\005\000\014\176\003\000\014\176\004\000\014\176\005\000\014\204\003\000\014\196\003\000\014\188\003\000\b \001\000\b\024\001\000\014\204\004\000\014\196\004\000\014\188\004\000\014\188\005\000\014\188\006\000\014\188\007\000\014\204\005\000\014\204\006\000\014\204\007\000\014\196\005\000\014\196\006\000\014\196\007\000\015\004\003\000\004D\002\000\002\212\006\000\002\212\007\000\002\212\b\000\002\212\t\000\002\212\n\000\002\212\011\000\r\192\006\000\014\184\004\000\014\184\005\000\014\200\003\000\014\200\004\000\014\200\005\000\014\192\003\000\014\192\004\000\014\192\005\000\015\028\001\000\015\024\001\000\015\020\001\000\015\b\001\000\015\004\001\000\014\204\001\000\014\200\001\000\014\196\001\000\014\192\001\000\014\188\001\000\014\184\001\000\014\180\001\000\014\176\001\000\014\172\001\000\012t\002\000\012p\002\000\012l\002\000\012h\002\000\012d\002\000\012X\007\000\012`\001\000\012\\\001\000\012X\001\000\012T\006\000\012T\001\000\012P\001\000\012`\002\000\012\\\002\000\012X\002\000\012T\007\000\012T\002\000\012P\002\000\012`\003\000\012\\\003\000\012X\003\000\012T\b\000\012T\003\000\012P\003\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\t\000\012T\004\000\012P\004\000\012P\006\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\002\136\007\000\n\208\001\000\007\148\003\000\007\148\004\000\007\148\005\000\007\152\002\000\007\144\002\000\007\152\003\000\007\144\003\000\r\020\002\000\r\236\004\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\002\204\004\000\002\200\004\000\002\196\004\000\002\192\004\000\002\188\004\000\002\184\004\000\002\204\005\000\002\200\005\000\002\196\005\000\002\192\005\000\002\188\005\000\002\184\005\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\002\204\006\000\002\196\006\000\002\192\006\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\002\204\007\000\002\196\007\000\002\192\007\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\002\204\b\000\002\196\b\000\002\192\b\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\002\204\t\000\002\196\t\000\002\192\t\000\002\196\n\000\002\192\n\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\002\196\011\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\002\196\012\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\002\196\r\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\002\196\014\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\002\192\011\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\002\200\006\000\002\188\006\000\002\184\006\000\002\188\007\000\002\184\007\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\002\188\b\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\002\188\t\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\002\188\n\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\002\188\011\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\002\184\b\000\014\212\004\000\014\208\004\000\014\208\005\000\015\028\001\000\015\024\001\000\015\020\001\000\015\b\001\000\015\004\001\000\014\204\001\000\014\200\001\000\014\196\001\000\014\192\001\000\014\188\001\000\014\184\001\000\014\180\001\000\014\176\001\000\014\172\001\000\012t\002\000\012p\002\000\012l\002\000\012h\002\000\012d\002\000\014\152\002\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\014\152\003\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\014\152\004\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\014\152\005\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\014\152\006\000\014\148\002\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\014\148\003\000\015\028\001\000\015\024\001\000\015\020\001\000\015\b\001\000\015\004\001\000\014\204\001\000\014\200\001\000\014\196\001\000\014\192\001\000\014\188\001\000\014\184\001\000\014\180\001\000\014\176\001\000\014\172\001\000\014\156\002\000\0150\002\000\0150\003\000\015\028\001\000\015\024\001\000\015\020\001\000\015\b\001\000\015\004\001\000\014\204\001\000\014\200\001\000\014\196\001\000\014\192\001\000\014\188\001\000\014\184\001\000\014\180\001\000\014\176\001\000\014\172\001\000\002\220\004\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\015p\002\000\0128\001\000\0124\001\000\0120\001\000\012,\001\000\012(\001\000\003\004\001\000\015p\003\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\015,\002\000\015,\003\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\n\148\002\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\n\148\003\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\n\148\004\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\n\148\005\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\n\144\002\000\0044\001\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\r\204\002\000\r\200\002\000\r\196\002\000\r\204\003\000\r\200\003\000\r\204\004\000\015\000\002\000\014\252\002\000\014\252\003\000\015\140\002\000\r\192\001\000\r\184\001\000\r\180\001\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\015\140\003\000\r\192\002\000\r\184\002\000\r\180\002\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\015\140\004\000\r\192\003\000\r\184\003\000\r\180\003\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\015\140\005\000\r\192\004\000\r\184\004\000\r\180\004\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\015\140\006\000\012\228\001\000\015\140\007\000\015H\002\000\015H\003\000\015\136\002\000\r\188\001\000\r\176\001\000\r\172\001\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\015\136\003\000\012\228\001\000\015\136\004\000\015\148\002\000\r\192\001\000\r\184\001\000\r\180\001\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\015\148\003\000\r\192\002\000\r\184\002\000\r\180\002\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\015\148\004\000\r\192\003\000\r\184\003\000\r\180\003\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\015\148\005\000\r\192\004\000\r\184\004\000\r\180\004\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\015\148\006\000\012\228\001\000\015\148\007\000\015<\002\000\0158\002\000\0158\003\000\015\144\002\000\r\188\001\000\r\176\001\000\r\172\001\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\015\144\003\000\012\228\001\000\015\144\004\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\011\012\004\000\011\004\004\000\n\252\004\000\n\244\004\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\011\012\005\000\011\004\005\000\n\252\005\000\n\244\005\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\011\012\006\000\011\004\006\000\n\252\006\000\n\244\006\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\011\012\007\000\011\004\007\000\n\252\007\000\n\244\007\000\n\244\b\000\011\012\b\000\011\012\t\000\b\220\001\000\b\212\001\000\b\208\001\000\b\204\001\000\b\200\001\000\b\196\001\000\b\180\001\000\011\012\n\000\011\004\b\000\n\252\b\000\011\004\t\000\n\252\t\000\b\220\001\000\b\212\001\000\b\208\001\000\b\204\001\000\b\200\001\000\b\196\001\000\b\180\001\000\n\252\n\000\011\004\n\000\011\004\011\000\b\220\001\000\b\212\001\000\b\208\001\000\b\204\001\000\b\200\001\000\b\196\001\000\b\180\001\000\011\004\012\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\011\b\004\000\011\000\004\000\n\248\004\000\n\240\004\000\0044\001\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\n\240\005\000\011\b\005\000\011\b\006\000\b\220\001\000\b\212\001\000\b\208\001\000\b\204\001\000\b\200\001\000\b\196\001\000\b\180\001\000\011\b\007\000\011\000\005\000\n\248\005\000\011\000\006\000\n\248\006\000\b\220\001\000\b\212\001\000\b\208\001\000\b\204\001\000\b\200\001\000\b\196\001\000\b\180\001\000\n\248\007\000\011\000\007\000\011\000\b\000\b\220\001\000\b\212\001\000\b\208\001\000\b\204\001\000\b\200\001\000\b\196\001\000\b\180\001\000\011\000\t\000\bx\001\000\bt\001\000\bl\001\000\002\164\006\000\002\164\007\000\002\164\b\000\002\160\003\000\002\160\004\000\bx\001\000\bt\001\000\bl\001\000\002\160\005\000\002\160\006\000\002\160\007\000\002\152\002\000\002\152\003\000\002\152\004\000\b\152\001\000\b\152\002\000\b\152\003\000\b\152\004\000\002\152\005\000\b8\001\000\bx\001\000\bt\001\000\bl\001\000\b8\002\000\b@\001\000\b<\001\000\b\220\001\000\b\212\001\000\b\208\001\000\b\204\001\000\b\200\001\000\b\196\001\000\b\180\001\000\b@\002\000\b<\002\000\b<\003\000\bx\001\000\bt\001\000\bl\001\000\b<\004\000\b@\003\000\b@\004\000\bx\001\000\bt\001\000\bl\001\000\b@\005\000\002\152\006\000\002\152\007\000\002\152\b\000\bH\001\000\bH\002\000\bD\001\000\bD\002\000\bx\001\000\bt\001\000\bl\001\000\bD\003\000\b\148\001\000\002\156\002\000\002\156\003\000\002\156\004\000\001\220\001\000\001\224\001\000\001\208\001\000\001\224\002\000\001\224\003\000\001\204\001\000\002\156\005\000\004\132\001\000\002\012\001\000\b\248\001\000\b\252\001\000\005\004\001\000\005\000\001\000\005\004\002\000\005\000\002\000\005\004\003\000\005\000\003\000\r\012\001\000\r\b\001\000\011\184\001\000\011\184\002\000\011\184\003\000\000P\001\000\000L\001\000\000H\001\000\005\004\004\000\005\000\004\000\005\004\005\000\005\000\005\000\005\004\006\000\005\000\006\000\005\004\007\000\005\004\b\000\011\180\001\000\000P\001\000\000L\001\000\000H\001\000\002\012\002\000\002\012\003\000\005\016\001\000\005\012\001\000\005\016\002\000\005\b\001\000\rX\001\000\002\000\001\000\rX\002\000\002\000\002\000\000\140\001\000\000\128\001\000\000t\001\000\rX\003\000\002\000\003\000\r`\001\000\r\\\001\000\002\b\001\000\002\004\001\000\r`\002\000\r\\\002\000\002\b\002\000\002\004\002\000\r`\003\000\002\b\003\000\r`\004\000\002\b\004\000\000\140\001\000\000\128\001\000\000t\001\000\r`\005\000\002\b\005\000\r\\\003\000\002\004\003\000\000\140\001\000\000\128\001\000\000t\001\000\r\\\004\000\002\004\004\000\004\132\002\000\rT\001\000\001\252\001\000\000\140\001\000\000\128\001\000\000t\001\000\rT\002\000\001\252\002\000\004\148\001\000\004\144\001\000\004\140\001\000\004\136\001\000\r\004\001\000\0020\001\000\002,\001\000\000\164\001\000\000\160\001\000\000\144\001\000\000\132\001\000\000x\001\000\r\148\001\000\r\144\001\000\r\140\001\000\r\004\002\000\000\160\002\000\000\152\001\000\r\148\002\000\r\144\002\000\r\140\002\000\r\004\003\000\000\160\003\000\000\152\002\000\r\148\003\000\r\144\003\000\r\140\003\000\r\004\004\000\000\160\004\000\r\148\004\000\r\144\004\000\r\140\004\000\r\004\005\000\011\240\001\000\004\228\001\000\004\224\001\000\000\160\005\000\r\004\006\000\000\160\006\000\r\148\005\000\r\144\005\000\r\140\005\000\r\148\006\000\000\156\001\000\r\148\007\000\r\148\b\000\011\240\001\000\004\228\001\000\004\224\001\000\r\144\006\000\000\152\001\000\r\144\007\000\000\152\002\000\r\144\b\000\r\144\t\000\011\240\001\000\004\228\001\000\004\224\001\000\r\140\006\000\002\028\001\000\r\012\001\000\r\b\001\000\004\148\002\000\004\140\002\000\004\148\003\000\004\140\003\000\004\140\004\000\004\140\005\000\004\140\006\000\000\140\001\000\000\128\001\000\000t\001\000\rT\001\000\004\148\004\000\001\252\001\000\000\140\001\000\000\128\001\000\000t\001\000\004\136\002\000\004\136\003\000\004\136\004\000\000\140\001\000\000\128\001\000\000t\001\000\rT\001\000\004\144\002\000\001\252\001\000\000\140\001\000\000\128\001\000\000t\001\000\002\156\006\000\002\156\007\000\002\156\b\000\002\156\t\000\001\228\001\000\006\140\002\000\006\140\003\000\011\228\001\000\006\140\004\000\006\140\005\000\006\140\006\000\n\172\002\000\005L\005\000\005L\006\000\005H\003\000\005H\004\000\005H\005\000\005P\002\000\006\216\002\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\003\224\003\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\003\224\004\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\003\224\005\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\003\224\006\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\003\220\003\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\0048\002\000\015\156\002\000\r\192\001\000\r\184\001\000\r\180\001\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\015\156\003\000\r\192\002\000\r\184\002\000\r\180\002\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\015\156\004\000\r\192\003\000\r\184\003\000\r\180\003\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\015\156\005\000\r\192\004\000\r\184\004\000\r\180\004\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\015\156\006\000\012\228\001\000\015\156\007\000\015x\002\000\015t\002\000\015t\003\000\015\152\002\000\r\188\001\000\r\176\001\000\r\172\001\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\015\152\003\000\012\228\001\000\015\152\004\000\015\028\001\000\015\024\001\000\015\020\001\000\015\b\001\000\015\004\001\000\014\244\002\000\014\204\001\000\014\200\001\000\014\196\001\000\014\192\001\000\014\188\001\000\014\184\001\000\014\180\001\000\014\176\001\000\014\172\001\000\014\224\002\000\014\220\002\000\014\224\003\000\014\220\003\000\014\224\004\000\014\220\004\000\014\224\005\000\014\220\005\000\bx\001\000\bt\001\000\bl\001\000\014\220\006\000\014\224\006\000\014\224\007\000\b\220\001\000\b\212\001\000\b\208\001\000\b\204\001\000\b\200\001\000\b\196\001\000\b\180\001\000\014\224\b\000\014\168\002\000\014\164\002\000\014\160\002\000\014\160\003\000\014\168\003\000\014\164\003\000\014\164\004\000\014\168\004\000\014\168\005\000\002\168\004\000\002\168\005\000\r\024\001\000\002\168\006\000\004@\002\000\002\180\004\000\002\176\004\000\002\180\005\000\002\176\005\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\002\180\006\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\002\180\007\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\002\180\b\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\002\180\t\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\002\176\006\000\t\184\001\000\t\180\001\000\t\184\002\000\t\184\003\000\t\184\004\000\t\184\005\000\bx\001\000\bt\001\000\bl\001\000\t\184\006\000\t\180\002\000\t\180\003\000\t\180\004\000\bx\001\000\bt\001\000\bl\001\000\t\180\005\000\0194\001\000\0190\001\000\b\224\001\000\b\224\002\000\b\224\003\000\b\224\004\000\b\224\005\000\n\156\001\000\n\156\002\000\b\220\001\000\b\212\001\000\b\208\001\000\b\204\001\000\b\200\001\000\b\196\001\000\b\180\001\000\b\224\006\000\b\224\007\000\0194\002\000\0190\002\000\0194\003\000\0190\003\000\0194\004\000\0194\005\000\0194\006\000\0194\007\000\007\012\001\000\007\012\002\000\007\012\003\000\007\012\004\000\007\012\005\000\007\012\006\000\0194\b\000\0190\004\000\0190\005\000\0190\006\000\004\208\001\000\004\208\002\000\011\168\001\000\011\164\001\000\012\168\001\000\011\168\002\000\011\164\002\000\011X\001\000\011T\001\000\011L\001\000\011H\001\000\005\180\001\000\005\176\001\000\005\172\001\000\005\168\001\000\011\168\003\000\011\168\004\000\002|\001\000\002|\002\000\004\252\001\000\004\252\002\000\004\252\003\000\011\240\001\000\004\252\004\000\004\228\001\000\004\224\001\000\004\192\001\000\004\188\001\000\004\192\002\000\011\192\001\000\011\192\002\000\011\192\003\000\011\192\004\000\011\192\005\000\r\012\001\000\r\b\001\000\011\176\001\000\011\176\002\000\011\176\003\000\002\028\001\000\011\192\006\000\011\192\007\000\011\192\b\000\t`\001\000\t\\\001\000\t`\002\000\011\192\t\000\011\192\n\000\011\172\001\000\002\028\001\000\016\192\001\000\r\240\001\000\016\192\002\000\r\240\002\000\016\192\003\000\r\240\003\000\016\192\004\000\r\240\004\000\016\192\005\000\001\240\001\000\001\208\001\000\b \001\000\001\236\001\000\001\232\001\000\b \002\000\001\236\002\000\001\236\003\000\016\192\006\000\016\192\007\000\016\192\b\000\r\240\005\000\r\240\006\000\r\240\007\000\011\160\001\000\011\156\001\000\011\156\002\000\011\160\002\000\002\028\001\000\019@\001\000\001|\001\000\001|\002\000\001|\003\000\001|\004\000\020X\001\000\001|\005\000\002\132\001\000\rL\001\000\rP\001\000\002\132\002\000\002\132\003\000\rP\002\000\rP\003\000\001|\006\000\001|\007\000\001|\b\000\001H\001\000\001H\002\000\001\028\001\000\002\028\001\000\001\028\002\000\001\028\003\000\001H\003\000\001(\001\000\001(\002\000\t\016\001\000\t\b\001\000\t\016\002\000\t\012\001\000\t\004\001\000\t\012\002\000\001(\003\000\001(\004\000\001(\005\000\002\028\001\000\001(\006\000\001(\007\000\001,\001\000\001,\002\000\011\220\001\000\011\212\001\000\011\220\002\000\011\216\001\000\011\208\001\000\011\216\002\000\001,\003\000\001,\004\000\001,\005\000\001,\006\000\001,\007\000\001$\001\000\001$\002\000\001T\001\000\001P\001\000\001T\002\000\001P\002\000\001T\003\000\001T\004\000\b \001\000\001T\005\000\001T\006\000\001@\001\000\r@\001\000\001@\002\000\001@\003\000\001@\004\000\r@\002\000\r@\003\000\002\028\001\000\r<\001\000\002\028\001\000\001D\001\000\001<\001\000\001T\007\000\001L\001\000\001L\002\000\001P\003\000\b \001\000\001P\004\000\001P\005\000\001P\006\000\001L\001\000\001L\001\000\001$\003\000\001$\004\000\0010\001\000\0010\002\000\002\028\001\000\001\248\001\000\001\248\002\000\002\028\001\000\001\248\003\000\0010\003\000\0010\004\000\001H\004\000\001H\005\000\0014\001\000\0014\002\000\0018\001\000\007X\001\000\007X\002\000\001|\t\000\001L\001\000\001|\n\000\007\004\001\000\007\004\002\000\007\004\003\000\007\004\004\000\007\004\005\000\007\004\006\000\007\004\007\000\001L\001\000\007\004\b\000\007\004\t\000\001|\011\000\019@\002\000\019@\003\000\019@\004\000\019@\005\000\019@\006\000\020\028\001\000\015\228\001\000\015\180\001\000\015\176\001\000\015\168\001\000\005\148\001\000\005\136\001\000\005\132\001\000\005\128\001\000\001\240\001\000\001\208\001\000\000\248\001\000\001h\001\000\001h\002\000\001h\003\000\000\224\001\000\020<\001\000\0204\001\000\020<\002\000\0204\002\000\b\240\001\000\020<\003\000\0204\003\000\020<\004\000\0204\004\000\0204\005\000\0204\006\000\020<\005\000\020<\006\000\020<\007\000\000\224\002\000\000\224\003\000\0208\001\000\0200\001\000\020,\001\000\020d\001\000\020\\\001\000\020d\002\000\020`\001\000\b\240\001\000\020`\002\000\020,\002\000\020,\003\000\020,\004\000\020,\005\000\002\028\001\000\0208\002\000\0200\002\000\0208\003\000\0200\003\000\0200\004\000\0200\005\000\0208\004\000\0208\005\000\0208\006\000\000\228\001\000\007\208\001\000\007\200\001\000\007\192\001\000\007\208\002\000\007\200\002\000\007\192\002\000\011\200\001\000\007\208\003\000\007\200\003\000\007\192\003\000\007\208\004\000\007\200\004\000\007\192\004\000\007\208\005\000\007\200\005\000\007\208\006\000\007\208\007\000\007\208\b\000\007\208\t\000\002\028\001\000\007\208\n\000\007\208\011\000\007\200\006\000\007\200\007\000\007\200\b\000\007\192\005\000\000\228\002\000\000\228\003\000\007\204\001\000\007\196\001\000\007\188\001\000\007\184\001\000\020p\001\000\020h\001\000\020p\002\000\020l\001\000\011\200\001\000\020l\002\000\007\184\002\000\007\184\003\000\007\184\004\000\007\184\005\000\007\204\002\000\007\196\002\000\007\188\002\000\007\204\003\000\007\196\003\000\007\188\003\000\007\204\004\000\007\196\004\000\007\204\005\000\007\204\006\000\007\204\007\000\007\204\b\000\002\028\001\000\007\204\t\000\007\204\n\000\007\196\005\000\007\196\006\000\007\196\007\000\007\188\004\000\000\236\001\000\000\236\002\000\000\236\003\000\000\236\004\000\000\220\001\000\000\216\001\000\000\220\002\000\000\220\003\000\001d\001\000\001X\001\000\006\152\001\000\006\148\001\000\000\200\001\000\000\196\001\000\006\152\002\000\006\152\003\000\006\152\004\000\006\152\005\000\006\152\006\000\006\152\007\000\000\200\002\000\000\196\002\000\000\200\003\000\000\200\004\000\b \001\000\000\200\005\000\000\200\006\000\001`\001\000\r@\001\000\001`\002\000\001`\003\000\001`\004\000\000\188\001\000\000\188\002\000\001\b\001\000\001\004\001\000\001\004\002\000\006\156\001\000\000\192\001\000\000\192\002\000\000\212\001\000\000\208\001\000\000\184\001\000\012\244\001\000\000\208\002\000\001\\\001\000\000\204\001\000\000\192\003\000\000\204\002\000\006\156\002\000\001\004\003\000\000\204\001\000\001\b\002\000\000\188\003\000\000\204\001\000\000\200\007\000\000\196\003\000\b \001\000\000\196\004\000\000\196\005\000\000\204\001\000\000\196\006\000\006\148\002\000\006\148\003\000\006\148\004\000\006\148\005\000\001d\002\000\001X\002\000\000\204\001\000\001X\003\000\001d\003\000\019\220\001\000\019\216\001\000\007\212\001\000\001t\001\000\001t\002\000\001t\003\000\001t\004\000\002<\001\000\0028\001\000\0024\001\000\001@\001\000\r\168\001\000\r<\001\000\002\028\001\000\001x\001\000\001x\002\000\001p\001\000\001p\002\000\001p\003\000\b0\001\000\b\016\001\000\b\b\001\000\007\224\001\000\007\216\001\000\000\148\001\000\b\016\002\000\b\b\002\000\007\224\002\000\007\216\002\000\000\148\002\000\019\220\001\000\019\216\001\000\007\216\003\000\002x\001\000\001D\001\000\001p\004\000\001l\001\000\001L\001\000\001x\003\000\001t\005\000\001d\004\000\001d\005\000\000\220\004\000\000\204\001\000\n\128\001\000\n\128\002\000\000\220\005\000\000\220\006\000\000\216\002\000\000\216\003\000\000\204\001\000\000\216\004\000\000\216\005\000\000\232\001\000\000\232\002\000\000\232\003\000\000\232\004\000\001h\004\000\001h\005\000\000\240\001\000\000\240\002\000\000\244\001\000\007`\001\000\007`\002\000\000\248\002\000\000\204\001\000\000\252\001\000\000\252\002\000\000\252\003\000\000\252\004\000\000\204\001\000\001\000\001\000\001\000\002\000\019@\007\000\019@\b\000\006\244\001\000\006\244\002\000\006\244\003\000\006\244\004\000\006\244\005\000\006\244\006\000\006\244\007\000\006\244\b\000\019@\t\000\019\028\001\000\007P\001\000\006\140\001\000\019,\001\000\016\188\001\000\019\024\001\000\019<\001\000\0198\001\000\007P\002\000\019\b\001\000\006\144\001\000\019\020\001\000\019\012\001\000\019\012\002\000\019H\001\000\019H\002\000\019H\003\000\019H\004\000\bx\001\000\bt\001\000\bl\001\000\019H\005\000\019 \001\000\007$\001\000\007$\002\000\007$\003\000\007$\004\000\007$\005\000\007$\006\000\012\212\001\000\007$\007\000\007$\b\000\007$\t\000\nx\001\000\019 \002\000\019\016\001\000\019D\001\000\011\152\001\000\019\004\001\000\019\004\002\000\019\004\003\000\000\176\001\000\019\000\001\000\019\b\001\000\006\144\001\000\003\204\001\000\002|\003\000\002|\004\000\004\208\003\000\004\208\004\000\007L\002\000\007L\003\000\007L\004\000\007H\002\000\011\188\003\000\011\188\004\000\004\172\n\000\019(\006\000\019(\007\000\019(\b\000\004\152\001\000\002p\001\000\004\152\002\000\002p\002\000\002p\003\000\002p\004\000\002p\005\000\004\152\003\000\004\152\004\000\019(\t\000\012\024\001\000\012\020\001\000\019(\n\000\012\020\002\000\012\024\002\000\012\004\001\000\012\012\001\000\012\b\001\000\012\016\001\000\004\156\001\000\002t\001\000\002t\002\000\002t\003\000\002t\004\000\004\156\002\000\004\156\003\000\019$\004\000\004\168\004\000\019\220\001\000\004\168\005\000\004\168\006\000\004\168\007\000\012\212\001\000\004\168\b\000\004\168\t\000\019$\005\000\019$\006\000\019$\007\000\019$\b\000\012\024\001\000\012\020\001\000\019$\t\000\b`\003\000\b`\004\000\b\172\005\000\bx\001\000\bt\001\000\bl\001\000\015\180\007\000\b\220\001\000\b\212\001\000\b\208\001\000\b\204\001\000\b\200\001\000\b\196\001\000\b\180\001\000\015\180\b\000\012\172\001\000\005\204\004\000\005\196\001\000\005\192\001\000\005\188\001\000\005\184\001\000\012\172\002\000\005\204\005\000\005\196\002\000\005\192\002\000\005\188\002\000\005\184\002\000\012\176\004\000\012\168\001\000\011X\001\000\011T\001\000\011L\001\000\011H\001\000\005\200\004\000\005\180\001\000\005\176\001\000\005\172\001\000\005\168\001\000\012\172\001\000\005\220\b\000\005\196\001\000\005\192\001\000\005\188\001\000\005\184\001\000\012\172\002\000\005\220\t\000\005\196\002\000\005\192\002\000\005\188\002\000\005\184\002\000\012\180\b\000\012\168\001\000\011X\001\000\011T\001\000\011L\001\000\011H\001\000\005\216\b\000\005\180\001\000\005\176\001\000\005\172\001\000\005\168\001\000\012\176\002\000\005\212\002\000\005\208\002\000\005\204\002\000\005\200\002\000\012\168\001\000\011X\001\000\011T\001\000\011L\001\000\011H\001\000\005\180\001\000\005\176\001\000\005\172\001\000\005\168\001\000\001\020\002\000\001\016\002\000\001\016\003\000\001\020\003\000\002\028\001\000\001\020\004\000\001\020\005\000\014\228\004\000\014\228\005\000\014\228\006\000\003\000\002\000\003\000\003\000\003\000\004\000\r\024\001\000\003\000\005\000\015\028\001\000\015\024\001\000\015\020\001\000\015\b\001\000\015\004\001\000\014\204\001\000\014\200\001\000\014\196\001\000\014\192\001\000\014\188\001\000\014\184\001\000\014\180\001\000\014\176\001\000\014\172\001\000\002\248\002\000\002\252\002\000\014\236\001\000\003\012\002\000\015\028\001\000\015\024\001\000\015\020\001\000\015\b\001\000\015\004\001\000\014\204\001\000\014\200\001\000\014\196\001\000\014\192\001\000\014\188\001\000\014\184\001\000\014\180\001\000\014\176\001\000\014\172\001\000\003\012\003\000\012\128\004\000\012t\001\000\012p\001\000\012l\001\000\012h\001\000\012d\001\000\015\028\001\000\015\024\001\000\015\020\001\000\015\b\001\000\015\004\001\000\014\204\001\000\014\200\001\000\014\196\001\000\014\192\001\000\014\188\001\000\014\184\001\000\014\180\001\000\014\176\001\000\014\172\001\000\012\128\005\000\012t\002\000\012p\002\000\012l\002\000\012h\002\000\012d\002\000\012|\004\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\012|\005\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\012|\006\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\r\024\001\000\012|\007\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\012x\004\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\012\148\007\000\012t\001\000\012p\001\000\012l\001\000\012h\001\000\012d\001\000\015\028\001\000\015\024\001\000\015\020\001\000\015\b\001\000\015\004\001\000\014\204\001\000\014\200\001\000\014\196\001\000\014\192\001\000\014\188\001\000\014\184\001\000\014\180\001\000\014\176\001\000\014\172\001\000\012\148\b\000\012t\002\000\012p\002\000\012l\002\000\012h\002\000\012d\002\000\012\144\007\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\012\144\b\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\012\144\t\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\r\024\001\000\012\144\n\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\012\140\007\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\012\136\002\000\012\132\002\000\012\128\002\000\012|\002\000\012x\002\000\002\172\004\000\002\172\005\000\r\024\001\000\002\172\006\000\004<\002\000\002h\003\000\002h\004\000\019\220\001\000\019\216\001\000\007\172\001\000\007\164\001\000\007\156\001\000\007\172\002\000\007\164\002\000\007\156\002\000\007\172\003\000\007\164\003\000\007\156\003\000\007\172\004\000\007\164\004\000\007\156\004\000\007\164\005\000\007\156\005\000\007\164\006\000\007\156\006\000\007\180\001\000\007\156\007\000\007\176\001\000\007\168\001\000\007\160\001\000\000\140\001\000\000\128\001\000\000t\001\000\007\168\002\000\007\160\002\000\007\160\003\000\t\176\002\000\t\172\002\000\t\172\003\000\018H\002\000\018D\002\000\018@\002\000\018<\002\000\0188\002\000\0184\002\000\0180\002\000\018,\002\000\017\016\002\000\017\012\002\000\r\012\001\000\r\b\001\000\018H\003\000\018D\003\000\018@\003\000\018<\003\000\0188\003\000\0184\003\000\0180\003\000\018,\003\000\017\016\003\000\017\012\003\000\018H\004\000\018D\004\000\018@\004\000\018<\004\000\0188\004\000\0184\004\000\0180\004\000\018,\004\000\017\016\004\000\017\012\004\000\002\028\001\000\018H\005\000\018D\005\000\018@\005\000\018<\005\000\0188\005\000\0184\005\000\0180\005\000\018,\005\000\017\016\005\000\017\012\005\000\0188\006\000\0184\006\000\0180\006\000\018,\006\000\017\012\006\000\018h\001\000\018d\001\000\018`\001\000\018\\\001\000\018X\001\000\018T\001\000\018P\001\000\018L\001\000\0180\007\000\018,\007\000\017\024\001\000\017\020\001\000\018h\002\000\018d\002\000\018`\002\000\018\\\002\000\0180\b\000\017\024\002\000\017\012\007\000\018\168\001\000\018\164\001\000\018\160\001\000\018\156\001\000\018\152\001\000\018\148\001\000\018\144\001\000\018\140\001\000\018\136\001\000\018\132\001\000\018\128\001\000\018|\001\000\018x\001\000\018t\001\000\018p\001\000\018l\001\000\0188\007\000\0184\007\000\017(\001\000\017$\001\000\017 \001\000\017\028\001\000\018\168\002\000\018\164\002\000\018\160\002\000\018\156\002\000\018\152\002\000\018\148\002\000\018\144\002\000\018\140\002\000\0188\b\000\0184\b\000\017(\002\000\017$\002\000\018\168\003\000\018\164\003\000\018\160\003\000\018\156\003\000\0188\t\000\017(\003\000\018H\006\000\018D\006\000\018@\006\000\018<\006\000\017\016\006\000\018H\007\000\018D\007\000\018@\007\000\018<\007\000\017\016\007\000\018h\001\000\018d\001\000\018`\001\000\018\\\001\000\018X\001\000\018T\001\000\018P\001\000\018L\001\000\018@\b\000\018<\b\000\017\024\001\000\017\020\001\000\018h\002\000\018d\002\000\018`\002\000\018\\\002\000\018@\t\000\017\024\002\000\017\016\b\000\018\168\001\000\018\164\001\000\018\160\001\000\018\156\001\000\018\152\001\000\018\148\001\000\018\144\001\000\018\140\001\000\018\136\001\000\018\132\001\000\018\128\001\000\018|\001\000\018x\001\000\018t\001\000\018p\001\000\018l\001\000\018H\b\000\018D\b\000\017(\001\000\017$\001\000\017 \001\000\017\028\001\000\018\168\002\000\018\164\002\000\018\160\002\000\018\156\002\000\018\152\002\000\018\148\002\000\018\144\002\000\018\140\002\000\018H\t\000\018D\t\000\017(\002\000\017$\002\000\018\168\003\000\018\164\003\000\018\160\003\000\018\156\003\000\018H\n\000\017(\003\000\002<\001\000\0028\001\000\0024\001\000\001\204\001\000\t\144\002\000\t\144\003\000\t\144\004\000\t\160\002\000\t\160\003\000\t\160\004\000\t\128\002\000\004\152\001\000\002\016\001\000\004\152\002\000\012\000\001\000\002\020\001\000\004\152\001\000\012\000\002\000\011\248\001\000\011\252\001\000\th\002\000\002\028\001\000\tp\002\000\004\156\001\000\t\140\001\000\t\140\002\000\t\140\003\000\t\156\001\000\t\156\002\000\t\156\003\000\t|\001\000\019\188\002\000\t\168\001\000\t\164\001\000\t\152\001\000\t\148\001\000\t\136\001\000\t\132\001\000\tx\001\000\tt\001\000\td\001\000\002\028\001\000\t\168\002\000\t\164\002\000\t\152\002\000\t\148\002\000\t\136\002\000\t\132\002\000\tx\002\000\tt\002\000\t\168\003\000\t\152\003\000\t\136\003\000\tx\003\000\t\152\004\000\t\152\005\000\t\152\006\000\t\168\004\000\t\168\005\000\t\168\006\000\t\136\004\000\tx\004\000\t\148\003\000\t\148\004\000\t\148\005\000\t\164\003\000\t\164\004\000\t\164\005\000\t\132\003\000\tt\003\000\tl\001\000\004\164\b\000\004\164\t\000\012\212\001\000\004\164\n\000\004\164\011\000\014\024\006\000\014\024\007\000\014\024\b\000\014\024\t\000\012$\001\000\014\024\n\000\012$\002\000\012\028\001\000\012 \001\000\014\020\004\000\004\168\004\000\004\160\004\000\019\220\001\000\004\168\005\000\004\160\005\000\004\168\006\000\004\160\006\000\004\160\007\000\004\160\b\000\012\212\001\000\004\160\t\000\004\160\n\000\014\020\005\000\014\020\006\000\014\020\007\000\014\020\b\000\012$\001\000\014\020\t\000\007<\001\000\t\192\001\000\t\188\001\000\t\192\002\000\t\192\003\000\t\192\004\000\t\192\005\000\b0\001\000\007\224\001\000\t\192\006\000\t\188\002\000\t\188\003\000\t\188\004\000\b0\001\000\007\224\001\000\t\188\005\000\014,\001\000\014$\001\000\014 \001\000\b\228\001\000\b\224\001\000\b\156\001\000\b\228\002\000\b\224\002\000\b\228\003\000\b\224\003\000\b\228\004\000\b\224\004\000\b\228\005\000\b\224\005\000\b\228\006\000\b\228\007\000\b\220\001\000\b\212\001\000\b\208\001\000\b\204\001\000\b\200\001\000\b\196\001\000\b\180\001\000\b\228\b\000\014,\002\000\014$\002\000\014 \002\000\b\156\002\000\014,\003\000\014$\003\000\014 \003\000\b\156\003\000\b\156\004\000\b\132\001\000\b\156\005\000\b\156\006\000\b0\001\000\007\224\001\000\b\156\007\000\014,\004\000\014,\005\000\014,\006\000\014,\007\000\b\220\001\000\b\212\001\000\b\208\001\000\b\204\001\000\b\200\001\000\b\196\001\000\b\180\001\000\014,\b\000\014,\t\000\007\020\001\000\007\020\002\000\007\020\003\000\007\020\004\000\b\220\001\000\b\212\001\000\b\208\001\000\b\204\001\000\b\200\001\000\b\196\001\000\b\180\001\000\007\020\005\000\007\020\006\000\007\020\007\000\007\020\b\000\014,\n\000\b\144\001\000\b\144\002\000\000`\001\000\000`\002\000\b\144\003\000\b\144\004\000\014$\004\000\014 \004\000\014$\005\000\014$\006\000\b \001\000\n\188\001\000\n\188\002\000\014$\007\000\014$\b\000\bL\001\000\b\220\001\000\b\212\001\000\b\208\001\000\b\204\001\000\b\200\001\000\b\196\001\000\b\180\001\000\bL\002\000\bL\003\000\014 \005\000\014 \006\000\bP\001\000\bX\001\000\bT\001\000\b\220\001\000\b\212\001\000\b\208\001\000\b\204\001\000\b\200\001\000\b\196\001\000\b\180\001\000\bX\002\000\bT\002\000\bX\003\000\bP\002\000\b\\\001\000\b\\\002\000\b\140\001\000\r\240\001\000\r\240\002\000\r\240\003\000\r\240\004\000\014<\001\000\001|\001\000\014<\002\000\014<\003\000\014<\004\000\014<\005\000\014<\006\000\014<\007\000\014<\b\000\014<\t\000\006\252\001\000\006\252\002\000\006\252\003\000\006\252\004\000\006\252\005\000\006\252\006\000\006\252\007\000\006\252\b\000\006\252\t\000\014<\n\000\014\004\001\000\007@\001\000\014\028\001\000\014\b\001\000\0148\001\000\0144\001\000\0140\001\000\014(\001\000\007@\002\000\014\000\001\000\r\248\001\000\r\248\002\000\014D\001\000\014D\002\000\014D\003\000\014D\004\000\b\220\001\000\b\212\001\000\b\208\001\000\b\204\001\000\b\200\001\000\b\196\001\000\b\180\001\000\014D\005\000\014D\006\000\014\012\001\000\014\012\002\000\014\016\001\000\007,\001\000\007,\002\000\007,\003\000\007,\004\000\007,\005\000\007,\006\000\007,\007\000\012\212\001\000\007,\b\000\007,\t\000\007,\n\000\014\016\002\000\r\252\001\000\014@\001\000\007<\002\000\r\244\002\000\b\220\001\000\b\212\001\000\b\208\001\000\b\204\001\000\b\200\001\000\b\196\001\000\b\180\001\000\0020\005\000\0020\006\000\017\200\004\000\017\196\004\000\017\192\004\000\017\188\004\000\017\184\004\000\017\180\004\000\017\176\004\000\017\172\004\000\016\240\004\000\016\236\004\000\r\012\001\000\r\b\001\000\017\200\005\000\017\196\005\000\017\192\005\000\017\188\005\000\017\184\005\000\017\180\005\000\017\176\005\000\017\172\005\000\016\240\005\000\016\236\005\000\017\200\006\000\017\196\006\000\017\192\006\000\017\188\006\000\017\184\006\000\017\180\006\000\017\176\006\000\017\172\006\000\016\240\006\000\016\236\006\000\002\028\001\000\017\200\007\000\017\196\007\000\017\192\007\000\017\188\007\000\017\184\007\000\017\180\007\000\017\176\007\000\017\172\007\000\016\240\007\000\016\236\007\000\017\184\b\000\017\180\b\000\017\176\b\000\017\172\b\000\016\236\b\000\018h\001\000\018d\001\000\018`\001\000\018\\\001\000\018X\001\000\018T\001\000\018P\001\000\018L\001\000\017\176\t\000\017\172\t\000\017\024\001\000\017\020\001\000\018h\002\000\018d\002\000\018`\002\000\018\\\002\000\017\176\n\000\017\024\002\000\016\236\t\000\018\168\001\000\018\164\001\000\018\160\001\000\018\156\001\000\018\152\001\000\018\148\001\000\018\144\001\000\018\140\001\000\018\136\001\000\018\132\001\000\018\128\001\000\018|\001\000\018x\001\000\018t\001\000\018p\001\000\018l\001\000\017\184\t\000\017\180\t\000\017(\001\000\017$\001\000\017 \001\000\017\028\001\000\018\168\002\000\018\164\002\000\018\160\002\000\018\156\002\000\018\152\002\000\018\148\002\000\018\144\002\000\018\140\002\000\017\184\n\000\017\180\n\000\017(\002\000\017$\002\000\018\168\003\000\018\164\003\000\018\160\003\000\018\156\003\000\017\184\011\000\017(\003\000\017\200\b\000\017\196\b\000\017\192\b\000\017\188\b\000\016\240\b\000\017\200\t\000\017\196\t\000\017\192\t\000\017\188\t\000\016\240\t\000\018h\001\000\018d\001\000\018`\001\000\018\\\001\000\018X\001\000\018T\001\000\018P\001\000\018L\001\000\017\192\n\000\017\188\n\000\017\024\001\000\017\020\001\000\018h\002\000\018d\002\000\018`\002\000\018\\\002\000\017\192\011\000\017\024\002\000\016\240\n\000\018\168\001\000\018\164\001\000\018\160\001\000\018\156\001\000\018\152\001\000\018\148\001\000\018\144\001\000\018\140\001\000\018\136\001\000\018\132\001\000\018\128\001\000\018|\001\000\018x\001\000\018t\001\000\018p\001\000\018l\001\000\017\200\n\000\017\196\n\000\017(\001\000\017$\001\000\017 \001\000\017\028\001\000\018\168\002\000\018\164\002\000\018\160\002\000\018\156\002\000\018\152\002\000\018\148\002\000\018\144\002\000\018\140\002\000\017\200\011\000\017\196\011\000\017(\002\000\017$\002\000\018\168\003\000\018\164\003\000\018\160\003\000\018\156\003\000\017\200\012\000\017(\003\000\017\232\003\000\017\228\003\000\017\224\003\000\017\220\003\000\017\216\003\000\017\212\003\000\017\208\003\000\017\204\003\000\016\248\003\000\016\244\003\000\017\216\004\000\017\212\004\000\017\208\004\000\017\204\004\000\016\244\004\000\018h\001\000\018d\001\000\018`\001\000\018\\\001\000\018X\001\000\018T\001\000\018P\001\000\018L\001\000\017\208\005\000\017\204\005\000\017\024\001\000\017\020\001\000\018h\002\000\018d\002\000\018`\002\000\018\\\002\000\017\208\006\000\017\024\002\000\016\244\005\000\018\168\001\000\018\164\001\000\018\160\001\000\018\156\001\000\018\152\001\000\018\148\001\000\018\144\001\000\018\140\001\000\018\136\001\000\018\132\001\000\018\128\001\000\018|\001\000\018x\001\000\018t\001\000\018p\001\000\018l\001\000\017\216\005\000\017\212\005\000\017(\001\000\017$\001\000\017 \001\000\017\028\001\000\018\168\002\000\018\164\002\000\018\160\002\000\018\156\002\000\018\152\002\000\018\148\002\000\018\144\002\000\018\140\002\000\017\216\006\000\017\212\006\000\017(\002\000\017$\002\000\018\168\003\000\018\164\003\000\018\160\003\000\018\156\003\000\017\216\007\000\017(\003\000\017\232\004\000\017\228\004\000\017\224\004\000\017\220\004\000\016\248\004\000\017\232\005\000\017\228\005\000\017\224\005\000\017\220\005\000\016\248\005\000\018h\001\000\018d\001\000\018`\001\000\018\\\001\000\018X\001\000\018T\001\000\018P\001\000\018L\001\000\017\224\006\000\017\220\006\000\017\024\001\000\017\020\001\000\018h\002\000\018d\002\000\018`\002\000\018\\\002\000\017\224\007\000\017\024\002\000\016\248\006\000\018\168\001\000\018\164\001\000\018\160\001\000\018\156\001\000\018\152\001\000\018\148\001\000\018\144\001\000\018\140\001\000\018\136\001\000\018\132\001\000\018\128\001\000\018|\001\000\018x\001\000\018t\001\000\018p\001\000\018l\001\000\017\232\006\000\017\228\006\000\017(\001\000\017$\001\000\017 \001\000\017\028\001\000\018\168\002\000\018\164\002\000\018\160\002\000\018\156\002\000\018\152\002\000\018\148\002\000\018\144\002\000\018\140\002\000\017\232\007\000\017\228\007\000\017(\002\000\017$\002\000\018\168\003\000\018\164\003\000\018\160\003\000\018\156\003\000\017\232\b\000\017(\003\000\018\248\003\000\018\244\003\000\018\240\003\000\018\236\003\000\018\232\003\000\018\228\003\000\018\224\003\000\018\220\003\000\018\184\003\000\018\180\003\000\018(\003\000\018$\003\000\018 \003\000\018\028\003\000\018\024\003\000\018\020\003\000\018\016\003\000\018\012\003\000\018\b\003\000\018\004\003\000\018\000\003\000\017\252\003\000\017\248\003\000\017\244\003\000\017\240\003\000\017\236\003\000\017\b\003\000\017\004\003\000\017\000\003\000\016\252\003\000\018\b\004\000\018\004\004\000\018\000\004\000\017\252\004\000\017\248\004\000\017\244\004\000\017\240\004\000\017\236\004\000\017\000\004\000\016\252\004\000\0020\001\000\002,\001\000\000\164\001\000\000\160\001\000\000\144\001\000\000\132\001\000\000x\001\000\018\b\005\000\018\004\005\000\018\000\005\000\017\252\005\000\017\248\005\000\017\244\005\000\017\240\005\000\017\236\005\000\017\000\005\000\016\252\005\000\r\012\001\000\r\b\001\000\018\b\006\000\018\004\006\000\018\000\006\000\017\252\006\000\017\248\006\000\017\244\006\000\017\240\006\000\017\236\006\000\017\000\006\000\016\252\006\000\018\b\007\000\018\004\007\000\018\000\007\000\017\252\007\000\017\248\007\000\017\244\007\000\017\240\007\000\017\236\007\000\017\000\007\000\016\252\007\000\002\028\001\000\018\b\b\000\018\004\b\000\018\000\b\000\017\252\b\000\017\248\b\000\017\244\b\000\017\240\b\000\017\236\b\000\017\000\b\000\016\252\b\000\017\248\t\000\017\244\t\000\017\240\t\000\017\236\t\000\016\252\t\000\018h\001\000\018d\001\000\018`\001\000\018\\\001\000\018X\001\000\018T\001\000\018P\001\000\018L\001\000\017\240\n\000\017\236\n\000\017\024\001\000\017\020\001\000\018h\002\000\018d\002\000\018`\002\000\018\\\002\000\017\240\011\000\017\024\002\000\016\252\n\000\018\168\001\000\018\164\001\000\018\160\001\000\018\156\001\000\018\152\001\000\018\148\001\000\018\144\001\000\018\140\001\000\018\136\001\000\018\132\001\000\018\128\001\000\018|\001\000\018x\001\000\018t\001\000\018p\001\000\018l\001\000\017\248\n\000\017\244\n\000\017(\001\000\017$\001\000\017 \001\000\017\028\001\000\018\168\002\000\018\164\002\000\018\160\002\000\018\156\002\000\018\152\002\000\018\148\002\000\018\144\002\000\018\140\002\000\017\248\011\000\017\244\011\000\017(\002\000\017$\002\000\018\168\003\000\018\164\003\000\018\160\003\000\018\156\003\000\017\248\012\000\017(\003\000\018\b\t\000\018\004\t\000\018\000\t\000\017\252\t\000\017\000\t\000\018\b\n\000\018\004\n\000\018\000\n\000\017\252\n\000\017\000\n\000\018h\001\000\018d\001\000\018`\001\000\018\\\001\000\018X\001\000\018T\001\000\018P\001\000\018L\001\000\018\000\011\000\017\252\011\000\017\024\001\000\017\020\001\000\018h\002\000\018d\002\000\018`\002\000\018\\\002\000\018\000\012\000\017\024\002\000\017\000\011\000\018\168\001\000\018\164\001\000\018\160\001\000\018\156\001\000\018\152\001\000\018\148\001\000\018\144\001\000\018\140\001\000\018\136\001\000\018\132\001\000\018\128\001\000\018|\001\000\018x\001\000\018t\001\000\018p\001\000\018l\001\000\018\b\011\000\018\004\011\000\017(\001\000\017$\001\000\017 \001\000\017\028\001\000\018\168\002\000\018\164\002\000\018\160\002\000\018\156\002\000\018\152\002\000\018\148\002\000\018\144\002\000\018\140\002\000\018\b\012\000\018\004\012\000\017(\002\000\017$\002\000\018\168\003\000\018\164\003\000\018\160\003\000\018\156\003\000\018\b\r\000\017(\003\000\018(\004\000\018$\004\000\018 \004\000\018\028\004\000\018\024\004\000\018\020\004\000\018\016\004\000\018\012\004\000\017\b\004\000\017\004\004\000\018\024\005\000\018\020\005\000\018\016\005\000\018\012\005\000\017\004\005\000\018h\001\000\018d\001\000\018`\001\000\018\\\001\000\018X\001\000\018T\001\000\018P\001\000\018L\001\000\018\016\006\000\018\012\006\000\017\024\001\000\017\020\001\000\018h\002\000\018d\002\000\018`\002\000\018\\\002\000\018\016\007\000\017\024\002\000\017\004\006\000\018\168\001\000\018\164\001\000\018\160\001\000\018\156\001\000\018\152\001\000\018\148\001\000\018\144\001\000\018\140\001\000\018\136\001\000\018\132\001\000\018\128\001\000\018|\001\000\018x\001\000\018t\001\000\018p\001\000\018l\001\000\018\024\006\000\018\020\006\000\017(\001\000\017$\001\000\017 \001\000\017\028\001\000\018\168\002\000\018\164\002\000\018\160\002\000\018\156\002\000\018\152\002\000\018\148\002\000\018\144\002\000\018\140\002\000\018\024\007\000\018\020\007\000\017(\002\000\017$\002\000\018\168\003\000\018\164\003\000\018\160\003\000\018\156\003\000\018\024\b\000\017(\003\000\018(\005\000\018$\005\000\018 \005\000\018\028\005\000\017\b\005\000\018(\006\000\018$\006\000\018 \006\000\018\028\006\000\017\b\006\000\018h\001\000\018d\001\000\018`\001\000\018\\\001\000\018X\001\000\018T\001\000\018P\001\000\018L\001\000\018 \007\000\018\028\007\000\017\024\001\000\017\020\001\000\018h\002\000\018d\002\000\018`\002\000\018\\\002\000\018 \b\000\017\024\002\000\017\b\007\000\018\168\001\000\018\164\001\000\018\160\001\000\018\156\001\000\018\152\001\000\018\148\001\000\018\144\001\000\018\140\001\000\018\136\001\000\018\132\001\000\018\128\001\000\018|\001\000\018x\001\000\018t\001\000\018p\001\000\018l\001\000\018(\007\000\018$\007\000\017(\001\000\017$\001\000\017 \001\000\017\028\001\000\018\168\002\000\018\164\002\000\018\160\002\000\018\156\002\000\018\152\002\000\018\148\002\000\018\144\002\000\018\140\002\000\018(\b\000\018$\b\000\017(\002\000\017$\002\000\018\168\003\000\018\164\003\000\018\160\003\000\018\156\003\000\018(\t\000\017(\003\000\019\168\001\000\019\164\001\000\018\248\004\000\018\244\004\000\018\240\004\000\018\236\004\000\018\232\004\000\018\228\004\000\018\224\004\000\018\220\004\000\018\184\004\000\018\180\004\000\000\140\001\000\000\128\001\000\000t\001\000\019\168\002\000\018\248\005\000\018\244\005\000\018\240\005\000\018\236\005\000\018\232\005\000\018\228\005\000\018\224\005\000\018\220\005\000\018\184\005\000\018\180\005\000\019\168\003\000\018\248\006\000\018\244\006\000\018\240\006\000\018\236\006\000\018\232\006\000\018\228\006\000\018\224\006\000\018\220\006\000\018\184\006\000\018\180\006\000\rp\001\000\rl\001\000\018\232\007\000\018\228\007\000\018\224\007\000\018\220\007\000\018\180\007\000\018\224\b\000\018\220\b\000\018h\001\000\018d\001\000\018`\001\000\018\\\001\000\018X\001\000\018T\001\000\018P\001\000\018L\001\000\017\024\001\000\017\020\001\000\018\224\t\000\018h\002\000\018d\002\000\018`\002\000\018\\\002\000\017\024\002\000\018\180\b\000\018\232\b\000\018\228\b\000\018\168\001\000\018\164\001\000\018\160\001\000\018\156\001\000\018\152\001\000\018\148\001\000\018\144\001\000\018\140\001\000\018\136\001\000\018\132\001\000\018\128\001\000\018|\001\000\018x\001\000\018t\001\000\018p\001\000\018l\001\000\017(\001\000\017$\001\000\017 \001\000\017\028\001\000\018\232\t\000\018\228\t\000\018\168\002\000\018\164\002\000\018\160\002\000\018\156\002\000\018\152\002\000\018\148\002\000\018\144\002\000\018\140\002\000\017(\002\000\017$\002\000\018\232\n\000\018\168\003\000\018\164\003\000\018\160\003\000\018\156\003\000\017(\003\000\018\248\007\000\018\244\007\000\018\240\007\000\018\236\007\000\018\184\007\000\018\248\b\000\018\244\b\000\018\240\b\000\018\236\b\000\018\184\b\000\018\240\t\000\018\236\t\000\018h\001\000\018d\001\000\018`\001\000\018\\\001\000\018X\001\000\018T\001\000\018P\001\000\018L\001\000\017\024\001\000\017\020\001\000\018\240\n\000\018h\002\000\018d\002\000\018`\002\000\018\\\002\000\017\024\002\000\018\184\t\000\018\248\t\000\018\244\t\000\018\168\001\000\018\164\001\000\018\160\001\000\018\156\001\000\018\152\001\000\018\148\001\000\018\144\001\000\018\140\001\000\018\136\001\000\018\132\001\000\018\128\001\000\018|\001\000\018x\001\000\018t\001\000\018p\001\000\018l\001\000\017(\001\000\017$\001\000\017 \001\000\017\028\001\000\018\248\n\000\018\244\n\000\018\168\002\000\018\164\002\000\018\160\002\000\018\156\002\000\018\152\002\000\018\148\002\000\018\144\002\000\018\140\002\000\017(\002\000\017$\002\000\018\248\011\000\018\168\003\000\018\164\003\000\018\160\003\000\018\156\003\000\017(\003\000\019\168\001\000\019\164\001\000\018\252\003\000\018\216\003\000\018\212\003\000\018\208\003\000\018\204\003\000\018\200\003\000\018\196\003\000\018\192\003\000\018\188\003\000\018\176\003\000\018\172\003\000\000\140\001\000\000\128\001\000\000t\001\000\019\168\002\000\018\252\004\000\018\216\004\000\018\212\004\000\018\208\004\000\018\204\004\000\018\200\004\000\018\196\004\000\018\192\004\000\018\188\004\000\018\176\004\000\018\172\004\000\019\168\003\000\018\252\005\000\018\216\005\000\018\212\005\000\018\208\005\000\018\204\005\000\018\200\005\000\018\196\005\000\018\192\005\000\018\188\005\000\018\176\005\000\018\172\005\000\rp\001\000\rl\001\000\018\200\006\000\018\196\006\000\018\192\006\000\018\188\006\000\018\172\006\000\018\192\007\000\018\188\007\000\018h\001\000\018d\001\000\018`\001\000\018\\\001\000\018X\001\000\018T\001\000\018P\001\000\018L\001\000\017\024\001\000\017\020\001\000\018\192\b\000\018h\002\000\018d\002\000\018`\002\000\018\\\002\000\017\024\002\000\018\172\007\000\018\200\007\000\018\196\007\000\018\168\001\000\018\164\001\000\018\160\001\000\018\156\001\000\018\152\001\000\018\148\001\000\018\144\001\000\018\140\001\000\018\136\001\000\018\132\001\000\018\128\001\000\018|\001\000\018x\001\000\018t\001\000\018p\001\000\018l\001\000\017(\001\000\017$\001\000\017 \001\000\017\028\001\000\018\200\b\000\018\196\b\000\018\168\002\000\018\164\002\000\018\160\002\000\018\156\002\000\018\152\002\000\018\148\002\000\018\144\002\000\018\140\002\000\017(\002\000\017$\002\000\018\200\t\000\018\168\003\000\018\164\003\000\018\160\003\000\018\156\003\000\017(\003\000\018\216\006\000\018\212\006\000\018\208\006\000\018\204\006\000\018\176\006\000\018\216\007\000\018\212\007\000\018\208\007\000\018\204\007\000\018\176\007\000\018\208\b\000\018\204\b\000\018h\001\000\018d\001\000\018`\001\000\018\\\001\000\018X\001\000\018T\001\000\018P\001\000\018L\001\000\017\024\001\000\017\020\001\000\018\208\t\000\018h\002\000\018d\002\000\018`\002\000\018\\\002\000\017\024\002\000\018\176\b\000\018\216\b\000\018\212\b\000\018\168\001\000\018\164\001\000\018\160\001\000\018\156\001\000\018\152\001\000\018\148\001\000\018\144\001\000\018\140\001\000\018\136\001\000\018\132\001\000\018\128\001\000\018|\001\000\018x\001\000\018t\001\000\018p\001\000\018l\001\000\017(\001\000\017$\001\000\017 \001\000\017\028\001\000\018\216\t\000\018\212\t\000\018\168\002\000\018\164\002\000\018\160\002\000\018\156\002\000\018\152\002\000\018\148\002\000\018\144\002\000\018\140\002\000\017(\002\000\017$\002\000\018\216\n\000\018\168\003\000\018\164\003\000\018\160\003\000\018\156\003\000\017(\003\000\004\228\003\000\002\028\001\000\004\228\004\000\r\148\004\000\r\144\004\000\r\140\004\000\011\240\001\000\004\228\001\000\004\224\001\000\000\160\005\000\000\160\006\000\004\236\002\000\002\028\001\000\004\248\002\000\004\216\001\000\004\248\003\000\011\240\001\000\004\228\001\000\004\224\001\000\r\160\003\000\r\156\003\000\r\152\003\000\011\240\001\000\004\228\001\000\004\224\001\000\000\164\004\000\000\164\005\000\r\160\004\000\r\156\004\000\r\152\004\000\r\160\005\000\000\156\001\000\r\160\006\000\r\160\007\000\011\240\001\000\004\228\001\000\004\224\001\000\r\156\005\000\000\152\001\000\r\156\006\000\000\152\002\000\r\156\007\000\r\156\b\000\011\240\001\000\004\228\001\000\004\224\001\000\r\152\005\000\002\028\001\000\r\148\001\000\r\144\001\000\r\140\001\000\r\004\002\000\r\000\001\000\000\160\002\000\000\152\001\000\r\148\002\000\r\144\002\000\r\140\002\000\r\004\003\000\r\000\002\000\000\160\003\000\000\152\002\000\020P\006\000\020P\007\000\020P\b\000\000\180\003\000\000\180\004\000\002\208\003\000\002\208\004\000\002\208\005\000\002\208\006\000\002\208\007\000\004\184\001\000\004\184\002\000\000\000\001\000\000\004\000\000\004\204\001\000\004\204\002\000\000\004\001\000\000\b\000\000\020\028\001\000\007\232\001\000\001\208\001\000\007\232\002\000\007\232\003\000\007\236\001\000\000\b\001\000\b0\001\000\007\248\001\000\007\244\001\000\007\240\001\000\007\224\001\000\007\248\002\000\007\244\002\000\007\240\002\000\007\224\002\000\020\028\001\000\007\244\003\000\007\244\004\000\007\244\005\000\007\248\003\000\007\240\003\000\000X\001\000\007\228\001\000\000\\\001\000\011\028\001\000\011\028\002\000\000\012\000\000\000\012\001\000\011 \001\000\011 \002\000\000\016\000\000\000\016\001\000\011$\001\000\002\028\001\000\011$\002\000\000\020\000\000\011(\001\000\011(\002\000\000\020\001\000\000\024\000\000\000\024\001\000\011,\001\000\b0\001\000\007\224\001\000\011,\002\000\000\028\000\000\000\028\001\000\0110\001\000\b \001\000\0110\002\000\000 \000\000\000 \001\000\0114\001\000\bx\001\000\bt\001\000\bl\001\000\0114\002\000\000$\000\000\000$\001\000\0118\001\000\b\220\001\000\b\212\001\000\b\208\001\000\b\204\001\000\b\200\001\000\b\196\001\000\b\180\001\000\0118\002\000\000(\000\000\000(\001\000\011<\001\000\011<\002\000\000,\000\000\012\168\001\000\011X\001\000\011T\001\000\011L\001\000\011H\001\000\011@\001\000\005\180\001\000\005\176\001\000\005\172\001\000\005\168\001\000\011@\002\000\000,\001\000\0000\000\000\011D\001\000\011D\002\000\0000\001\000\b(\001\000\b \001\000\b(\002\000\b \002\000\0004\000\000\019\144\001\000\019\140\001\000\019\136\001\000\019\132\001\000\019\128\001\000\019|\001\000\019x\001\000\019\144\002\000\019\140\002\000\019\136\002\000\019\132\002\000\019\128\002\000\019|\002\000\019x\002\000\019\144\003\000\019|\003\000\019\128\003\000\019\140\003\000\019\132\003\000\019\136\003\000\b(\001\000\b \001\000\019t\001\000\019p\001\000\019l\001\000\019h\001\000\019d\001\000\019`\001\000\019\\\001\000\019t\002\000\019p\002\000\019l\002\000\019h\002\000\019d\002\000\019`\002\000\019\\\002\000\019t\003\000\019`\003\000\019d\003\000\019p\003\000\019h\003\000\019l\003\000\b(\001\000\b \001\000\019\160\001\000\0004\001\000\019\156\001\000\019\156\002\000\007h\001\000\007h\002\000\019\148\001\000\019\148\002\000\019\148\003\000\019\152\001\000\019\152\002\000\0008\000\000\007t\001\000\007p\001\000\007|\001\000\007x\001\000\007x\002\000\007|\002\000\007t\002\000\007t\003\000\007t\004\000\007p\002\000\0008\001\000\020\024\001\000\020\024\002\000\020\024\003\000\020\024\004\000\020\020\001\000\020\020\002"), (16, "\000\000\000\001\000\002\000\003\000\004\000\005\000\006\000\007\000\b\000\t\000\n\000\011\000\012\000\r\000\014\000\015\000\016\000\017\000\018\000\019\000\020\000\021\000\022\000\023\000\024\000\025\000\026\000\027\000\028\000\029\000\030\000\031\000 \000!\000\"\000#\000$\000%\000&\000'\000(\000)\000*\000+\000,\000-\000.\000/\0000\0001\0002\0003\0004\0005\0006\0007\0009\000:\000;\000<\000=\000>\000?\000@\000A\000B\000C\000D\000E\000F\000G\000H\000I\000J\000K\000L\000M\000N\000O\000P\000Q\000R\000S\000T\000U\000V\000W\000]\000_\000`\000a\000c\000e\000f\000h\000j\000l\000m\000o\000q\000s\000t\000u\000v\000w\000x\000y\000z\000{\000|\000}\000~\000\127\000\128\000\129\000\131\000\133\000\135\000\136\000\137\000\138\000\139\000\140\000\141\000\143\000\144\000\145\000\147\000\148\000\149\000\150\000\151\000\169\000\174\000\178\000\179\000\180\000\181\000\182\000\183\000\200\000\206\000\212\000\216\000\218\000\219\000\220\000\224\000\225\001 \001!\001^\001o\001p\001q\001r\001t\001u\001v\001w\001y\001z\001{\001|\001}\001~\001\132\001\138\001\144\001\145\001\147\001\148\001\151\001\153\001\154\001\155\001\156\001\159\001\160\001\161\001\165\001\167\001\169\001\170\001\174\001\175\001\177\001\178\001\179\001\180\001\184\001\185\001\186\001\187\001\189\001\191\001\193\001\194\001\198\001\199\001\201\001\202\001\203\001\204\001\205\001\207\001\208\001\209\001\210\001\211\001\212\001\215\001\218\001\219\001\223\001\225\001\226\001\228\001\229\001\234\001\253\001\254\002\000\002\007\002\012\002\017\002\018\002\019\002\020\002\021\002\022\002\023\002\024\002\025\002#\002(\002-\002.\0020\0021\0023\0025\0026\0027\002:\002<\002?\002@\002B\002C\002D\002G\002H\002K\002L\002M\002N\002O\002Q\002R\002S\002T\002U\002V\002W\002X\002Y\002^\002b\002d\002o\002t\002\128\002\129\002\131\002\132\002\133\002\139\002\144\002\156\002\162\002\163\002\203\002\220\002\221\002\227\002\230\002\231\002\232\002\233\002\234\002\238\002\241\002\242\002\243\002\244\002\245\002\248\002\250\002\251\002\255\003\001\003\003\003\004\003\b\003\028\003-\0039\003:\003;\003<\003=\003>\003?\003C\003D\003N\003O\003P\003Q\003R\003S\003^\003h\003m\003y\003\127\003\128\003\150\003\162\003\167\003\179\003\185\003\186\003\208\003\220\003\226\003\231\003\243\003\249\003\250\004\016\004\028\004\"\004'\004(\004+\004,\0040\0041\0042\0043\0044\0047\0049\004<\004=\004A\004E\004I\004O\004T\004Y\004e\004k\004l\004\130\004\142\004\148\004\149\004\153\004\156\004\157\004\158\004\160\004\161\004\162\004\166\004\167\004\168\004\169\004\170\004\174\004\175\004\180\004\181\004\184\004\186\004\187\004\191\004\193\004\195\004\196\004\200\004\202\004\212\004\217\004\219\004\231\004\241\004\252\005\006\005\011\005\023\005\029\005\030\0054\005@\005F\005K\005P\005\\\005b\005c\005y\005\133\005\139\005\149\005\154\005\166\005\172\005\173\005\195\005\207\005\213\005\218\005\223\005\235\005\241\005\242\006\b\006\020\006\026\006.\006?\006K\006U\006`\006j\006o\006{\006\129\006\130\006\152\006\164\006\170\006\175\006\180\006\192\006\198\006\199\006\221\006\233\006\239\006\249\006\254\007\n\007\016\007\017\007'\0073\0079\007>\007C\007O\007U\007V\007l\007x\007~\007\148\007\160\007\166\007\167\007\189\007\201\007\207\007\212\007\214\007\215\007\219\007\220\007\223\007\224\007\228\007\229\007\232\007\233\007\234\007\235\007\236\007\237\007\238\007\240\007\241\007\242\007\243\007\245\007\246\007\247\007\248\007\250\007\251\007\255\b\000\b\004\b\005\b\007\b\t\b\n\b\011\b\012\b\014\b\015\b\017\b\018\b\021\b\022\b\023\b\025\b\026\b\027\b\028\b\030\b \b#\b$\b&\b+\b0\b5\bA\bG\bM\bS\bY\b_\bd\bp\bv\b|\b\130\b\136\b\142\b\143\b\147\b\148\b\149\b\150\b\151\b\153\b\154\b\164\b\169\b\174\b\179\b\185\b\190\b\195\b\207\b\213\b\219\b\225\b\232\b\238\b\244\b\249\t\005\t\011\t\017\t\023\t\030\t$\t*\t.\t/\t0\t1\t2\t6\t7\t8\t9\t:\tA\tF\tH\tJ\tL\tM\tN\tP\tQ\tR\tS\tT\tU\tV\tW\tX\tY\t]\ta\te\tg\ti\tk\tl\tm\to\tp\tq\ts\tt\tu\tv\tx\tz\t|\t}\t~\t\127\t\128\t\129\t\131\t\133\t\134\t\135\t\136\t\137\t\138\t\139\t\140\t\141\t\142\t\143\t\151\t\153\t\157\t\158\t\161\t\163\t\164\t\174\t\179\t\184\t\189\t\195\t\200\t\205\t\217\t\223\t\229\t\235\t\242\t\248\t\254\n\003\n\015\n\021\n\027\n!\n(\n.\n4\n6\n8\n:\n;\n<\n=\n>\n?\nC\nD\nF\nJ\nK\nL\nM\nN\nO\nP\nQ\nR\nU\nW\nX\nY\nZ\n_\n`\na\nb\nc\nd\ne\nf\ng\nh\ni\nj\nk\nl\nq\nv\n\130\n\136\n\142\n\148\n\155\n\161\n\167\n\173\n\179\n\180\n\182\n\183\n\185\n\187\n\188\n\189\n\190\n\197\n\203\n\206\n\207\n\208\n\209\n\210\n\211\n\212\n\213\n\223\n\228\n\240\n\246\n\252\011\002\011\t\011\015\011\021\011\027\011!\011\"\011#\011$\011%\011/\0110\011:\011;\011E\011F\011G\011H\011J\011T\011Z\011_\011k\011q\011w\011}\011\132\011\138\011\144\011\150\011\156\011\157\011\167\011\170\011\178\011\179\011\180\011\181\011\182\011\187\011\188\011\189\011\200\011\201\011\202\011\204\011\205\011\215\011\216\011\217\011\227\011\228\011\230\011\231\011\232\011\233\011\245\011\247\011\248\011\249\011\250\012\004\012\006\012\007\012\016\012\017\012\027\012\031\012\"\012#\012$\012%\012&\012'\012(\012)\012*\012+\012,\0122\0128\012=\012I\012O\012U\012[\012b\012h\012n\012t\012z\012{\012|\012\134\012\139\012\151\012\157\012\163\012\169\012\176\012\182\012\188\012\194\012\200\012\201\012\211\012\212\012\222\012\223\012\233\012\234\012\235\012\236\012\237\012\243\012\248\r\004\r\n\r\016\r\022\r\029\r#\r)\r/\r5\r6\r@\rA\rK\rQ\rW\rX\rb\rg\rl\rq\rt\rw\ry\r\127\r\131\r\135\r\137\r\140\r\141\r\142\r\143\r\146\r\147\r\148\r\149\r\150\r\151\r\152\r\153\r\154\r\157\r\159\r\160\r\161\r\162\r\167\r\169\r\170\r\171\r\172\r\184\r\192\r\200\r\204\r\208\r\210\r\213\r\215\r\216\r\218\r\219\r\220\r\221\r\222\r\223\r\224\r\226\r\231\r\233\r\235\r\237\r\243\r\249\r\255\014\005\014\011\014\017\014\018\014\030\014\031\014 \014!\014\"\014%\014&\014(\0140\0148\014F\014I\014L\014M\014O\014P\014S\014T\014U\014V\014W\014X\014Y\014h\014l\014p\014r\014u\014v\014y\014z\014{\014|\014}\014~\014\127\014\128\014\129\014\130\014\131\014\132\014\145\014\147\014\148\014\149\014\150\014\154\014\155\014\157\014\158\014\162\014\163\014\164\014\165\014\166\014\168\014\169\014\170\014\185\014\189\014\193\014\195\014\198\014\199\014\201\014\216\014\220\014\224\014\226\014\229\014\232\014\233\014\234\014\235\014\236\014\237\014\238\014\244\015\000\015\015\015\019\015\023\015\025\015\028\015\029\015 \015.\015/\0152\0156\0158\015;\015<\015>\015?\015@\015A\015B\015C\015D\015F\015G\015H\015I\015K\015P\015Q\015R\015S\015Y\015_\015e\015l\015q\015}\015\131\015\137\015\143\015\149\015\155\015\161\015\162\015\163\015\164\015\165\015\166\015\181\015\182\015\183\015\184\015\199\015\200\015\201\015\204\015\205\015\213\015\221\015\229\015\238\015\240\015\241\015\242\015\243\015\253\015\254\015\255\016\000\016\001\016\002\016\017\016\018\016\019\016\026\016\027\016\029\016#\016)\016/\0166\0167\0168\0169\016]\016_\016`\016a\016b\016c\016d\016e\016f\016g\016v\016w\016\140\016\160\016\165\016\166\016\168\016\170\016\171\016\172\016\173\016\174\016\175\016\178\016\179\016\181\016\183\016\186\016\188\016\190\016\192\016\194\016\196\016\197\016\199\016\201\016\202\016\211\016\213\016\215\016\217\016\219\016\221\016\222\016\223\016\227\016\228\016\232\016\234\016\235\016\237\016\238\016\240\016\241\016\245\016\247\016\249\016\250\017\002\017\004\017\r\017\014\017\017\017\019\017\028\017\031\017\"\017$\017&\017'\017(\017)\017*\017,\017-\0175\0178\0179\017<\017=\017>\017A\017B\017D\017E\017F\017I\017L\017M\017V\017Y\017a\017b\017k\017l\017m\017n\017o\017p\017q\017u\017\130\017\131\017\138\017\139\017\141\017\150\017\151\017\152\017\153\017\154\017\155\017\156\017\157\017\159\017\160\017\164\017\165\017\173\017\174\017\176\017\178\017\180\017\182\017\183\017\185\017\186\017\187\017\193\017\198\017\210\017\216\017\222\017\228\017\234\017\240\017\246\018\n\018\015\018\027\018!\018'\018-\0183\0189\018?\018S\018T\018U\018V\018W\018]\018c\018i\018p\018r\018\129\018\131\018\132\018\133\018\134\018\192\018\194\018\200\018\206\018\212\018\219\019\018\019\020\019\026\019 \019&\019-\019d\019f\019l\019r\019x\019\127\019\182\019\184\019\190\019\196\019\202\019\209\020\b\020\n\020\016\020\022\020\028\020#\020Z\020\\\020b\020h\020n\020u\020\172\020\174\020\180\020\186\020\192\020\199\020\254\021\000\021\006\021\012\021\018\021\025\021P\021R\021X\021^\021d\021k\021\162\021\164\021\170\021\176\021\182\021\189\021\244\021\246\021\252\022\002\022\b\022\015\022F\022H\022N\022T\022Z\022a\022\152\022\154\022\160\022\166\022\172\022\179\022\234\022\236\022\242\022\248\022\254\023\005\023<\023>\023D\023J\023P\023W\023\142\023\144\023\150\023\156\023\162\023\169\023\224\023\226\023\232\023\238\023\244\023\251\0242\0247\024C\024I\024O\024U\024[\024a\024g\024{\024\129\024\135\024\141\024\148\024\203\024\205\024\211\024\217\024\223\024\230\025\029\025\031\025%\025+\0251\0258\025o\025q\025w\025}\025\131\025\138\025\193\025\195\025\201\025\207\025\213\025\220\026\019\026\021\026\027\026!\026'\026.\026e\026g\026m\026s\026y\026\128\026\183\026\185\026\191\026\197\026\203\026\210\027\t\027\n\027\011\027\r\027\028\027\030\027$\027*\0270\0277\027n\027q\027r\027s\027t\027u\027v\027w\027\127\027\129\027\130\027\131\027\132\027\133\027\134\027\135\027\137\027\138\027\139\027\140\027\141\027\142\027\143\027\144\027\154\027\160\027\162\027\164\027\166\027\169\027\170\027\171\027\172\027\173\027\174\027\178\027\180\027\183\027\184\027\185\027\186\027\187\027\188\027\190\027\191\027\192\027\193\027\194\027\195\027\196\027\197\027\198\027\199\027\203\027\205\027\208\027\209\027\210\027\211\027\212\027\213\027\214\027\215\027\216\027\226\027\227\027\228\027\234\027\240\027\244\027\248\027\250\027\253\027\254\027\255\028\000\028\001\028\002\028\004\028\005\028\006\028\007\028\b\028\t\028\n\028\011\028\012\028\r\028\014\028\015\028\016\028\017\028\018\028\019\028J\028P\028V\028\\\028c\028\154\028\164\028\165\028\166\028\168\028\169\028\170\028\171\028\172\028\173\028\175\028\176\028\177\028\181\028\190\028\199\028\208\028\218\028\220\028\226\028\232\028\238\028\245\029,\029-\029/\0290\0297\0299\029D\029F\029L\029R\029X\029_\029\150\029\152\029\163\029\165\029\171\029\177\029\183\029\190\029\245\029\247\030\002\030\004\030\n\030\016\030\022\030\029\030T\030^\030`\030f\030l\030r\030y\030\176\030\180\030\187\030\194\030\201\030\209\030\210\030\211\030\213\030\219\030\225\030\231\030\238\031%\031]\031_\031e\031k\031q\031x\031\175\031\176\031\177\031\178\031\180\031\181\031\182\031\183\031\184\031\185\031\186\031\244\031\246\031\247 0 2 3 7 @ I R \\ ^ _ ` a b \156 \158 \159 \163 \164 \173 \182 \191 \201 \203 \204 \205 \206!\b!\n!\011!\012!\r!\014!\015!\030!\031! !#!$!'!*!,!-!.!/!0!F![!]!^!_!n!w!z!}!\128!\130!\136!\142!\148!\155!\210!\213!\216!\219!\221!\227!\233!\239!\246\"-\"0\"3\"6\"8\">\"D\"J\"Q\"\136\"\157\"\160\"\163\"\166\"\168\"\174\"\180\"\186\"\193\"\248\"\251\"\254#\001#\003#\t#\015#\021#\028#S#V#Y#\\#^#d#j#p#w#\174#\185#\194#\197#\200#\203#\205#\211#\217#\223#\230$\029$ $#$&$($.$4$:$A$x${$~$\129$\131$\137$\143$\149$\156$\211$\214$\216$\222$\228$\234$\241%(%7%9%:%;%r%s%t%u%v%w%x%y%z%\127%\130%\131%\132%\133%\134%\135%\136%\137%\138%\139%\140%\141%\142%\143%\144%\145%\146%\147%\148%\149%\150%\151%\152%\153%\154%\155%\156%\176%\182%\188%\194%\201&\000&\001&\002&\003&\004&\005&\007&\b&\t&\n&\017&\023&\029&%&-&5&>&@&F&L&R&Y&\144&\201&\203&\209&\215&\221&\228'\027'\028'\029'\030'1'7'='C'J'K'\130'\131'\146'\147'\148'\163'\168'\173'\178'\184'\191'\192'\246'\247'\248'\254(\004(\n(\017(H(K(M(N(O(P(Q(Z(c(l(v(x(y(z({(\181(\183(\184(\193(\202(\211(\221(\223(\224(\225(\226(\227)\029)\031) )))2);)E)F)G)O)P)R)[)\\)])e)f)\160)\161)\162)\170)\171)\173)\182)\183)\184)\192)\193)\197)\198)\199)\200)\201)\205)\206)\207)\208)\209)\210)\211)\212)\213)\214)\215)\216)\220)\222)\231)\232)\236)\237)\238)\242)\243)\244)\245)\246)\247)\248)\249)\253)\254)\255*\000*\001*\002*\004*\005*\006*\007*\b*\t*\n*\011*\012*\014*\016*\018*\021*\022*\026*\028*\030* *!*\"*&*'*(***+*,*.*3*5*9*=*?*D*F*K*M*N*S*U*Y*a*g*m*r*z*|*\127*\129*\130*\134*\136*\138*\139*\143*\145*\149*\151*\152*\153*\157*\163*\164*\165*\169*\175*\176*\177*\178*\179*\180*\181*\182*\183*\184*\185*\186*\187*\188*\189*\190*\191*\192*\193*\194*\200*\206*\212*\219+\018+\019+\028+%+.+8+:+;+<+=+>+x+z+{+\138+\140+\142+\144+\149+\150+\151+\159+\160+\163+\164+\166+\167+\168+\169+\170+\171+\173+\174+\176+\178+\184+\190+\196+\203,\002,\004,\005,\006,\007,\011,\012,\r,\014,\018,\019,\022,\023,\024,\025,\026,\027,#,$,%,',),*,+,,,-,.,/,0,1,2,3,4,5,6,7,8,9,;,F,G,H,I,J,K,L,M,Q,S,T,U,V,W,X,Y,\\,],_,`,a,b,d,e,f,g,i,k,m,o,q,r,t,w,y,z,{,|,},~,\127,\128,\130,\131,\133,\135,\136,\137,\138,\139,\140,\141,\142,\144,\145,\146,\147,\148,\149,\150,\151,\152,\153,\155,\156,\157,\158,\159,\161,\162,\164,\165,\166,\167,\168,\170,\171,\172,\173,\175,\176,\178,\179,\180,\181,\182,\183,\184,\185,\186,\188,\190,\191,\192,\194,\195,\196,\198,\199,\200,\201,\203,\205,\206,\207,\209,\210,\211,\213,\214,\216,\218,\219,\220,\221,\223,\224,\226,\227,\228,\229,\230,\231,\232,\233,\234,\235,\237,\238,\239,\240,\241,\242,\243,\244,\246,\247,\248,\249,\250,\251,\252,\253,\254-\t-\n-\011-\012-\r-\014-\016-\018-\019-\021-\023-\024-\025-\026-\027-\028-\029-\030-!-#-$-&-'-(-)-*-,-.-0-1-2-3-4-5-6-9-<-=-@-C-E-F-G-H-J-K-L-M-N-O-P-Q-R-V-X-Y-[-\\-]-^-_-`-c-f-h-i-j-k-m-n-o-p-q-r-s-t-u-v-w-y-z-{-}-\129-\130-\131-\132-\133-\134-\135-\137-\138-\139-\141-\142-\143-\145-\146-\147-\148-\149-\151-\152-\154-\155-\156-\158-\160-\161-\163-\164-\165-\167-\168-\169-\171-\172-\174-\175-\177-\178-\179-\180-\181-\184-\185-\186-\190-\191-\192-\193-\197-\200-\201-\202-\203-\204-\205-\211-\216-\219-\221-\222-\224-\225-\226-\227-\228-\230-\231-\232-\233-\234-\235-\237-\238-\239-\240-\241-\242-\243-\244-\245-\246-\247-\248-\249-\250-\252-\253-\254-\255.\001.\002.\003.\004.\005.\006.\007.\b.\t.\n.\011.\012.\r.\014.\015.\016.\017.\018.\019.\020.\021.\022.\023.\025.\026.\027.\028.\029.\030.\031.#.$.%.&.'.(.).*.+.-.../.0.1.2.3.4.5.6.7.8.9.<.=.>.?.@.A.B.C.D.E.F.G.H.I.J.L.N.O.P.Q.R.S.V.W.X.Y.Z.[.\\.]._.`.a.b.c.d.f.h.i.j.l.m.n.o.p.s.t.u.v.z.\130.\131.\137.\143.\144.\154.\160.\166.\167.\177.\182.\193.\194.\195.\197.\198.\199.\200.\201.\202.\203.\204.\206.\221.\222.\224.\239.\245/\t/\015/\021/\027/\"/Y/_/s/y/\127/\133/\140/\195/\200/\201/\202/\204/\205/\206/\207/\212/\215/\218/\221/\223/\225/\226/\227/\233/\235/\236/\237/\238/\239/\2510\0050\0160\0260\0310+01020H0T0Z0_0d0p0v0w0\1410\1530\1590\1630\1640\1650\1660\1670\1680\1690\1700\1720\1730\1750\1760\1770\1780\1790\1810\1820\1830\1840\1850\1860\1870\1880\1890\1900\1910\2010\2090\2130\2140\2150\2160\2170\2180\2190\2200\2210\2220\2230\2240\2250\2260\2270\2280\2290\2300\2310\2320\2340\2350\2360\2370\2380\2400\2410\2420\2430\2440\2470\2500\2520\2530\2541\0001\0011\0021\0031\0041\0061\0071\b1\n1\0111\0121\r1\0161\0171\0181\0191\0221\0231\0291\0311!1#1%1&1.1/1317191:1=1>1?1@1A1I1J1K1L1M1N1O1W1X1Y1Z1[1\\1]1^1_1`1a1c1d1f1g1h1i1j1k1s1t1u1v1w1y1\1301\1311\1321\1331\1341\1351\1361\1371\1381\1391\1411\1421\1431\1441\1451\1461\1471\1481\1491\1501\1511\1521\1531\1541\1551\1561\1571\1581\1591\1601\1611\1621\1631\1641\1651\1661\1671\1681\1691\1701\1711\1721\1731\1741\1821\1831\1841\1851\1861\1871\1881\1891\1901\1911\1921\1931\1941\1961\1971\1981\1991\2001\2011\2021\2031\2111\2121\2241\2341\2451\2552\0042\0162\0222\0232-292?2D2I2U2[2\\2r2~2\1322\1422\1472\1592\1652\1662\1882\2002\2062\2112\2162\2282\2342\2353\0013\r3\019313B3N3X3c3m3r3~3\1323\1333\1553\1673\1733\1783\1833\1953\2013\2023\2243\2363\2423\2524\0014\r4\0194\0204*464<4A4F4R4X4Y4o4{4\1294\1444\1554\1684\1734\1854\1914\1924\2144\2264\2324\2374\2424\2545\0045\0055\0275'5-5=5I5W5\\5h5n5o5\1335\1455\1515\1565\1615\1735\1795\1805\2025\2145\2205\2225\2235\2305\2315\2335\2355\2365\2395\2465\2475\2505\2525\2536\0016\0036\0056\0066\n6\0126\0196\0266\0276\0286\0296\0306\0316 6!6\"6#6$6%6&6'6(6)6*6+6,6/60616263686<6>6?6@6A6B6C6D6E6F6G6H6I6J6K6L6M6O6P6Q6R6S6T6U6V6Y6Z6[6\\6^6_6`6a6e6f6g6h6p6q6r6s6t6u6v6\1286\1296\1306\1316\1326\1336\1346\1366\1386\1396\1466\1536\1546\1556\1566\1576\1586\1616\1686\1756\1766\1776\1786\1796\1806\1836\1846\1856\1866\1876\1886\1896\1906\1916\1926\1936\1946\1956\1976\1986\1996\2006\2016\2026\2036\2046\2056\2066\2076\2086\2096\2106\2116\212")) + ((32, "\000\000\000\000\000\002\208\001\000\002d\001\000\016\184\001\000\016\180\001\000\016\176\001\000\016\172\001\000\016\168\001\000\015\240\001\000\016\164\001\000\016\160\001\000\016\156\001\000\016\152\001\000\016\148\001\000\016\144\001\000\016\140\001\000\016\136\001\000\016\132\001\000\016\128\001\000\016|\001\000\016x\001\000\016t\001\000\016p\001\000\016l\001\000\016h\001\000\016d\001\000\016`\001\000\016\\\001\000\016X\001\000\015\236\001\000\016T\001\000\016P\001\000\016L\001\000\016H\001\000\016D\001\000\016@\001\000\016<\001\000\0168\001\000\0164\001\000\0160\001\000\016,\001\000\016(\001\000\016$\001\000\016 \001\000\016\028\001\000\016\024\001\000\016\020\001\000\016\016\001\000\016\012\001\000\016\b\001\000\016\004\001\000\016\000\001\000\015\252\001\000\015\248\001\000\015\244\001\000\000\172\001\000\000\168\001\000\000\172\002\000\000\172\003\000\002d\002\000\002\208\002\000\000\180\001\000\000\180\002\000\020P\001\000\020P\002\000\020P\003\000\020\028\001\000\n$\001\000\t\196\001\000\n\024\001\000\n\020\001\000\n\016\001\000\n(\001\000\n8\001\000\n\b\001\000\n \001\000\n\028\001\000\t\200\001\000\n0\001\000\n\012\001\000\n\004\001\000\n\000\001\000\t\252\001\000\t\240\001\000\t\232\001\000\n4\001\000\n,\001\000\t\228\001\000\t\224\001\000\t\220\001\000\t\216\001\000\t\212\001\000\t\208\001\000\t\212\002\000\t\208\002\000\004\200\001\000\004\200\002\000\t\212\003\000\t\208\003\000\t\212\004\000\t\208\004\000\t\212\005\000\t\220\002\000\t\216\002\000\t\220\003\000\t\216\003\000\t\220\004\000\t\216\004\000\t\220\005\000\t\228\002\000\t\224\002\000\t\228\003\000\t\224\003\000\t\228\004\000\t\224\004\000\t\228\005\000\nH\001\000\n<\001\000\t\236\001\000\t\248\001\000\t\244\001\000\t\204\001\000\n@\001\000\nD\001\000\020\028\002\000\020\028\003\000\020 \001\000\020P\004\000\020P\005\000\tL\001\000\t@\001\000\tP\001\000\tD\001\000\tH\001\000\t<\001\000\tH\002\000\tP\002\000\tL\002\000\000\156\001\000\007\220\001\000\002l\001\000\r\000\001\000\000\152\001\000\004\176\001\000\004\180\001\000\r\000\002\000\000\152\002\000\n\220\001\000\n\220\002\000\n\220\003\000\n\216\001\000\018H\001\000\018D\001\000\018@\001\000\018<\001\000\0188\001\000\0184\001\000\0180\001\000\018,\001\000\017\016\001\000\017\012\001\000\r\004\001\000\0020\001\000\002,\001\000\000\164\001\000\000\160\001\000\000\144\001\000\000\132\001\000\000x\001\000\r\160\001\000\r\156\001\000\r\152\001\000\000\164\002\000\000\156\001\000\r\160\002\000\r\156\002\000\r\152\002\000\000\164\003\000\004\240\001\000\004\248\001\000\004\236\001\000\000\152\001\000\000\152\002\000\018H\001\000\018D\001\000\018@\001\000\018<\001\000\0188\001\000\0184\001\000\0180\001\000\018,\001\000\017\016\001\000\017\012\001\000\0020\001\000\002,\001\000\000\164\001\000\000\160\001\000\000\144\001\000\000\132\001\000\000x\001\000\r\148\001\000\r\144\001\000\r\140\001\000\r\000\001\000\000\160\002\000\000\152\001\000\r\148\002\000\r\144\002\000\r\140\002\000\r\000\002\000\000\160\003\000\000\152\002\000\r\148\003\000\r\144\003\000\r\140\003\000\000\160\004\000\011\244\001\000\004\244\001\000\011\244\002\000\004\216\001\000\011\244\003\000\011\240\001\000\004\228\001\000\004\224\001\000\004\228\002\000\019\220\001\000\019\216\001\000\018\252\001\000\018\248\001\000\018\244\001\000\018\240\001\000\018\236\001\000\018\232\001\000\018\228\001\000\018\224\001\000\018\220\001\000\018\216\001\000\018\212\001\000\018\208\001\000\018\204\001\000\018\200\001\000\018\196\001\000\018\192\001\000\018\188\001\000\018\184\001\000\018\180\001\000\018\176\001\000\018\172\001\000\018(\001\000\018$\001\000\018 \001\000\018\028\001\000\018\024\001\000\018\020\001\000\018\016\001\000\018\012\001\000\018\b\001\000\018\004\001\000\018\000\001\000\017\252\001\000\017\248\001\000\017\244\001\000\017\240\001\000\017\236\001\000\017\232\001\000\017\228\001\000\017\224\001\000\017\220\001\000\017\216\001\000\017\212\001\000\017\208\001\000\017\204\001\000\017\200\001\000\017\196\001\000\017\192\001\000\017\188\001\000\017\184\001\000\017\180\001\000\017\176\001\000\017\172\001\000\017\b\001\000\017\004\001\000\017\000\001\000\016\252\001\000\016\248\001\000\016\244\001\000\016\240\001\000\016\236\001\000\019\216\002\000\018\252\002\000\018\248\002\000\018\244\002\000\018\240\002\000\018\236\002\000\018\232\002\000\018\228\002\000\018\224\002\000\018\220\002\000\018\216\002\000\018\212\002\000\018\208\002\000\018\204\002\000\018\200\002\000\018\196\002\000\018\192\002\000\018\188\002\000\018\184\002\000\018\180\002\000\018\176\002\000\018\172\002\000\018(\002\000\018$\002\000\018 \002\000\018\028\002\000\018\024\002\000\018\020\002\000\018\016\002\000\018\012\002\000\018\b\002\000\018\004\002\000\018\000\002\000\017\252\002\000\017\248\002\000\017\244\002\000\017\240\002\000\017\236\002\000\017\232\002\000\017\228\002\000\017\224\002\000\017\220\002\000\017\216\002\000\017\212\002\000\017\208\002\000\017\204\002\000\017\200\002\000\017\196\002\000\017\192\002\000\017\188\002\000\017\184\002\000\017\180\002\000\017\176\002\000\017\172\002\000\017\b\002\000\017\004\002\000\017\000\002\000\016\252\002\000\016\248\002\000\016\244\002\000\016\240\002\000\016\236\002\000\017\200\003\000\017\196\003\000\017\192\003\000\017\188\003\000\017\184\003\000\017\180\003\000\017\176\003\000\017\172\003\000\016\240\003\000\016\236\003\000\0020\001\000\002,\001\000\000\164\001\000\000\160\001\000\000\144\001\000\000\132\001\000\000x\001\000\0020\002\000\0020\003\000\0020\004\000\007\220\001\000\004\176\001\000\b\160\001\000\b\160\002\000\n\196\001\000\t0\001\000\t,\001\000\t0\002\000\n\196\002\000\b\160\003\000\b\160\004\000\r\244\001\000\014\024\001\000\014\020\001\000\004\172\001\000\004\168\001\000\004\164\001\000\004\160\001\000\014\024\002\000\014\020\002\000\004\172\002\000\004\168\002\000\004\164\002\000\004\160\002\000\014\024\003\000\014\020\003\000\004\172\003\000\004\168\003\000\004\164\003\000\004\160\003\000\020\b\001\000\019\244\001\000\019\232\001\000\019\244\002\000\014\024\004\000\004\172\004\000\004\164\004\000\019\252\001\000\019\236\001\000\019\252\002\000\019\212\001\000\020\004\001\000\020\000\001\000\019\248\001\000\019\240\001\000\019\248\002\000\020\000\002\000\019\200\001\000\019\196\001\000\011\024\001\000\011\020\001\000\019\200\002\000\011\024\002\000\019\200\003\000\011\024\003\000\011\024\004\000\011\240\001\000\011\024\005\000\004\228\001\000\004\224\001\000\004\224\002\000\t(\001\000\t$\001\000\t(\002\000\004\224\003\000\011\240\002\000\011\240\003\000\011\240\001\000\004\228\001\000\004\224\001\000\004\232\001\000\007\028\001\000\007\028\002\000\019\196\002\000\011\020\002\000\019\196\003\000\011\020\003\000\019\196\004\000\011\020\004\000\011\020\005\000\011\240\001\000\011\020\006\000\004\228\001\000\004\224\001\000\011\016\001\000\019\212\002\000\rH\001\000\019\212\003\000\rH\002\000\rH\003\000\rD\001\000\019\200\001\000\019\196\001\000\019\200\002\000\019\200\003\000\019\196\002\000\019\196\003\000\019\196\004\000\014\024\005\000\004\172\005\000\004\164\005\000\019\220\001\000\004\172\006\000\004\164\006\000\004\220\001\000\011\240\001\000\004\228\001\000\004\224\001\000\004\220\002\000\004\172\007\000\004\164\007\000\019\188\001\000\007\220\001\000\001\220\001\000\001\216\001\000\t\160\001\000\t\144\001\000\t\128\001\000\tp\001\000\th\001\000\018H\001\000\018D\001\000\018@\001\000\018<\001\000\0188\001\000\0184\001\000\0180\001\000\018,\001\000\017\016\001\000\017\012\001\000\0020\001\000\002,\001\000\001\224\001\000\001\208\001\000\000\164\001\000\000\160\001\000\000\144\001\000\000\132\001\000\000x\001\000\001\208\002\000\t\176\001\000\t\172\001\000\0020\001\000\002,\001\000\000\164\001\000\000\160\001\000\000\144\001\000\000\132\001\000\000x\001\000\r\148\001\000\r\144\001\000\r\140\001\000\000\160\002\000\000\152\001\000\r\148\002\000\r\144\002\000\r\140\002\000\000\160\003\000\000\152\002\000\002h\001\000\002h\002\000\004<\001\000\015$\001\000\b\028\001\000\002\172\001\000\002\172\002\000\002\172\003\000\012\156\001\000\012\152\001\000\012\148\001\000\012\144\001\000\012\140\001\000\012\136\001\000\012\132\001\000\012\128\001\000\012|\001\000\012x\001\000\012\156\002\000\012\152\002\000\012\148\002\000\012\144\002\000\012\140\002\000\012\156\003\000\012\152\003\000\012\148\003\000\012\144\003\000\012\140\003\000\019\180\001\000\002L\001\000\002H\001\000\nX\001\000\002L\002\000\002H\002\000\002D\001\000\002@\001\000\002D\002\000\002@\002\000\002<\001\000\0028\001\000\0024\001\000\002T\001\000\002P\001\000\019\220\001\000\019\216\001\000\002T\002\000\002T\003\000\019\220\001\000\019\216\001\000\000\136\001\000\007\212\001\000\b0\001\000\007\224\001\000\007\216\001\000\b0\002\000\b0\003\000\b0\001\000\007\224\001\000\b0\004\000\007\224\002\000\007\224\003\000\b,\001\000\007\224\002\000\007\216\002\000\007\216\003\000\001\128\001\000\000\136\002\000\000|\001\000\b\012\001\000\b\004\001\000\000p\001\000\002 \001\000\b0\001\000\b\016\001\000\b\b\001\000\007\224\001\000\000\148\001\000\b\016\002\000\b\b\002\000\007\224\002\000\000\148\002\000\0020\001\000\002,\001\000\018h\001\000\018d\001\000\018`\001\000\018\\\001\000\018X\001\000\018T\001\000\018P\001\000\018L\001\000\017\024\001\000\017\020\001\000\004h\001\000\018X\002\000\018T\002\000\018P\002\000\018L\002\000\017\020\002\000\018h\001\000\018d\001\000\018`\001\000\018\\\001\000\018X\001\000\018T\001\000\018P\003\000\018P\001\000\018L\003\000\018L\001\000\017\024\001\000\017\020\001\000\000d\001\000\t8\001\000\t4\001\000\t8\002\000\000d\002\000\018h\002\000\018d\002\000\018`\002\000\018\\\002\000\018P\004\000\017\024\002\000\018h\003\000\018d\003\000\018`\003\000\018\\\003\000\017\024\003\000\018h\001\000\018d\001\000\018`\004\000\018`\001\000\018\\\004\000\018\\\001\000\018X\001\000\018T\001\000\018P\001\000\018L\001\000\017\024\001\000\017\020\001\000\018h\002\000\018d\002\000\018`\005\000\018`\002\000\018\\\002\000\017\024\002\000\017\024\004\000\017\168\001\000\017\164\001\000\017\160\001\000\017\156\001\000\017\152\001\000\017\148\001\000\017\144\001\000\017\140\001\000\017\136\001\000\017\132\001\000\017\128\001\000\017|\001\000\017x\001\000\017t\001\000\017p\001\000\017l\001\000\017h\001\000\017d\001\000\017`\001\000\017\\\001\000\017X\001\000\017T\001\000\017P\001\000\017L\001\000\017H\001\000\017D\001\000\017@\001\000\017<\001\000\0178\001\000\0174\001\000\0170\001\000\017,\001\000\016\232\001\000\016\228\001\000\016\224\001\000\016\220\001\000\016\216\001\000\016\212\001\000\016\208\001\000\016\204\001\000\017H\002\000\017D\002\000\017@\002\000\017<\002\000\0178\002\000\0174\002\000\0170\002\000\017,\002\000\016\208\002\000\016\204\002\000\0020\001\000\002,\001\000\000\164\001\000\000\160\001\000\000\144\001\000\000\132\001\000\000x\001\000\004l\001\000\r|\001\000\rx\001\000\rt\001\000\000\144\002\000\000\132\002\000\000x\002\000\000\144\003\000\000\132\003\000\000x\003\000\000\144\004\000\000\144\005\000\000\132\004\000\000x\004\000\b0\001\000\b\016\001\000\b\b\001\000\007\224\001\000\b\016\002\000\b\b\002\000\007\224\002\000\b\016\003\000\b\b\003\000\019\192\001\000\019\224\001\000\r|\002\000\rx\002\000\rt\002\000\r|\003\000\000\156\001\000\r|\004\000\r|\005\000\011\240\001\000\004\228\001\000\004\224\001\000\rx\003\000\000\152\001\000\rx\004\000\000\152\002\000\rx\005\000\rx\006\000\011\240\001\000\004\228\001\000\004\224\001\000\018\168\001\000\018\164\001\000\018\160\001\000\018\156\001\000\018\152\001\000\018\148\001\000\018\144\001\000\018\140\001\000\018\136\001\000\018\132\001\000\018\128\001\000\018|\001\000\018x\001\000\018t\001\000\018p\001\000\018l\001\000\017(\001\000\017$\001\000\017 \001\000\017\028\001\000\018\136\002\000\018\132\002\000\018\128\002\000\018|\002\000\018x\002\000\018t\002\000\018p\002\000\018l\002\000\017 \002\000\017\028\002\000\0020\001\000\002,\001\000\000\164\001\000\000\160\001\000\000\144\001\000\000\132\001\000\000x\001\000\018\136\003\000\018\132\003\000\018\128\003\000\018|\003\000\018x\003\000\018t\003\000\018p\003\000\018l\003\000\017 \003\000\017\028\003\000\r\012\001\000\r\b\001\000\r\b\002\000\r\b\003\000\r\012\002\000\r\012\003\000\r\012\004\000\r\012\005\000\r\012\006\000\011\240\001\000\004\228\001\000\004\224\001\000\r\012\007\000\018\136\004\000\018\132\004\000\018\128\004\000\018|\004\000\018x\004\000\018t\004\000\018p\004\000\018l\004\000\017 \004\000\017\028\004\000\000D\001\000\002$\001\000\002x\001\000\002(\001\000\000l\001\000\018\136\005\000\018\132\005\000\018\128\005\000\018|\005\000\018x\005\000\018t\005\000\018p\005\000\018l\005\000\017 \005\000\017\028\005\000\002\028\001\000\018\136\006\000\018\132\006\000\018\128\006\000\018|\006\000\018x\006\000\018t\006\000\018p\006\000\018l\006\000\017 \006\000\017\028\006\000\018x\007\000\018t\007\000\018p\007\000\018l\007\000\017\028\007\000\018p\b\000\018l\b\000\018h\001\000\018d\001\000\018`\001\000\018\\\001\000\018X\001\000\018T\001\000\018P\001\000\018L\001\000\017\024\001\000\017\020\001\000\018p\t\000\018h\002\000\018d\002\000\018`\002\000\018\\\002\000\017\024\002\000\017\028\b\000\018\168\001\000\018\164\001\000\018\160\001\000\018\156\001\000\018\152\001\000\018\148\001\000\018\144\001\000\018\140\001\000\018\136\001\000\018\132\001\000\018\128\001\000\018|\001\000\018x\b\000\018x\001\000\018t\b\000\018t\001\000\018p\001\000\018l\001\000\017(\001\000\017$\001\000\017 \001\000\017\028\001\000\018\168\002\000\018\164\002\000\018\160\002\000\018\156\002\000\018\152\002\000\018\148\002\000\018\144\002\000\018\140\002\000\018x\t\000\018t\t\000\017(\002\000\017$\002\000\018\152\003\000\018\148\003\000\018\144\003\000\018\140\003\000\017$\003\000\018\144\004\000\018\140\004\000\018h\001\000\018d\001\000\018`\001\000\018\\\001\000\018X\001\000\018T\001\000\018P\001\000\018L\001\000\017\024\001\000\017\020\001\000\018\144\005\000\018h\002\000\018d\002\000\018`\002\000\018\\\002\000\017\024\002\000\017$\004\000\018\168\001\000\018\164\001\000\018\160\001\000\018\156\001\000\018\152\004\000\018\152\001\000\018\148\004\000\018\148\001\000\018\144\001\000\018\140\001\000\018\136\001\000\018\132\001\000\018\128\001\000\018|\001\000\018x\001\000\018t\001\000\018p\001\000\018l\001\000\017(\001\000\017$\001\000\017 \001\000\017\028\001\000\018\168\002\000\018\164\002\000\018\160\002\000\018\156\002\000\018\152\005\000\018\152\002\000\018\148\005\000\018\148\002\000\018\144\002\000\018\140\002\000\017(\002\000\017$\002\000\018\168\003\000\018\164\003\000\018\160\003\000\018\156\003\000\018\152\006\000\017(\003\000\018\168\004\000\018\164\004\000\018\160\004\000\018\156\004\000\017(\004\000\018\160\005\000\018\156\005\000\018h\001\000\018d\001\000\018`\001\000\018\\\001\000\018X\001\000\018T\001\000\018P\001\000\018L\001\000\017\024\001\000\017\020\001\000\018\160\006\000\018h\002\000\018d\002\000\018`\002\000\018\\\002\000\017\024\002\000\017(\005\000\018\168\005\000\018\168\001\000\018\164\005\000\018\164\001\000\018\160\001\000\018\156\001\000\018\152\001\000\018\148\001\000\018\144\001\000\018\140\001\000\018\136\001\000\018\132\001\000\018\128\001\000\018|\001\000\018x\001\000\018t\001\000\018p\001\000\018l\001\000\017(\001\000\017$\001\000\017 \001\000\017\028\001\000\018\168\006\000\018\168\002\000\018\164\006\000\018\164\002\000\018\160\002\000\018\156\002\000\018\152\002\000\018\148\002\000\018\144\002\000\018\140\002\000\017(\002\000\017$\002\000\018\168\007\000\018\168\003\000\018\164\003\000\018\160\003\000\018\156\003\000\017(\003\000\019\168\001\000\019\164\001\000\000\140\001\000\000\128\001\000\000t\001\000\019\168\002\000\019\220\001\000\019\216\001\000\rh\001\000\rh\002\000\rh\003\000\000\140\001\000\000\128\001\000\000t\001\000\000\140\002\000\000\140\003\000\000\128\002\000\000t\002\000\019\168\003\000\rp\001\000\rl\001\000\rp\002\000\rl\002\000\019\220\001\000\019\216\001\000\rp\003\000\rp\004\000\rp\005\000\000\140\001\000\000\128\001\000\000t\001\000\rl\003\000\000\140\001\000\000\128\001\000\000t\001\000\rd\001\000\000\140\001\000\000\128\001\000\000t\001\000\018\168\003\000\018\164\003\000\018\160\003\000\018\156\003\000\018x\n\000\017(\003\000\018\136\007\000\018\132\007\000\018\128\007\000\018|\007\000\017 \007\000\018\136\b\000\018\132\b\000\018\128\b\000\018|\b\000\017 \b\000\018\128\t\000\018|\t\000\018h\001\000\018d\001\000\018`\001\000\018\\\001\000\018X\001\000\018T\001\000\018P\001\000\018L\001\000\017\024\001\000\017\020\001\000\018\128\n\000\018h\002\000\018d\002\000\018`\002\000\018\\\002\000\017\024\002\000\017 \t\000\018\168\001\000\018\164\001\000\018\160\001\000\018\156\001\000\018\152\001\000\018\148\001\000\018\144\001\000\018\140\001\000\018\136\t\000\018\136\001\000\018\132\t\000\018\132\001\000\018\128\001\000\018|\001\000\018x\001\000\018t\001\000\018p\001\000\018l\001\000\017(\001\000\017$\001\000\017 \001\000\017\028\001\000\018\168\002\000\018\164\002\000\018\160\002\000\018\156\002\000\018\152\002\000\018\148\002\000\018\144\002\000\018\140\002\000\018\136\n\000\018\132\n\000\017(\002\000\017$\002\000\018\168\003\000\018\164\003\000\018\160\003\000\018\156\003\000\018\136\011\000\017(\003\000\002\028\002\000\002\024\001\000\000P\001\000\000L\001\000\000H\001\000\000P\002\000\000L\002\000\000H\002\000\000H\003\000\000H\004\000\000P\003\000\000L\003\000\000P\004\000\000P\005\000\011\240\001\000\004\228\001\000\004\224\001\000\000P\006\000\000P\007\000\000L\004\000\000L\005\000\000L\006\000\011\240\001\000\004\228\001\000\004\224\001\000\000L\007\000\000L\b\000\r\136\001\000\r\132\001\000\r\128\001\000\002,\002\000\002\028\001\000\002,\003\000\r\136\002\000\r\132\002\000\r\128\002\000\r\136\003\000\000\156\001\000\r\136\004\000\r\136\005\000\011\240\001\000\004\228\001\000\004\224\001\000\r\132\003\000\000\152\001\000\r\132\004\000\000\152\002\000\r\132\005\000\r\132\006\000\011\240\001\000\004\228\001\000\004\224\001\000\r\128\003\000\002\028\001\000\018\168\002\000\018\164\002\000\018\160\002\000\018\156\002\000\018\152\002\000\018\148\002\000\018\144\002\000\018\140\002\000\017(\002\000\017$\002\000\018\168\003\000\018\164\003\000\018\160\003\000\018\156\003\000\017(\003\000\rt\003\000\002\028\001\000\017H\003\000\017D\003\000\017@\003\000\017<\003\000\0178\003\000\0174\003\000\0170\003\000\017,\003\000\016\208\003\000\016\204\003\000\r\012\001\000\r\b\001\000\017H\004\000\017D\004\000\017@\004\000\017<\004\000\0178\004\000\0174\004\000\0170\004\000\017,\004\000\016\208\004\000\016\204\004\000\017H\005\000\017D\005\000\017@\005\000\017<\005\000\0178\005\000\0174\005\000\0170\005\000\017,\005\000\016\208\005\000\016\204\005\000\002\028\001\000\017H\006\000\017D\006\000\017@\006\000\017<\006\000\0178\006\000\0174\006\000\0170\006\000\017,\006\000\016\208\006\000\016\204\006\000\0178\007\000\0174\007\000\0170\007\000\017,\007\000\016\204\007\000\018h\001\000\018d\001\000\018`\001\000\018\\\001\000\018X\001\000\018T\001\000\018P\001\000\018L\001\000\0170\b\000\017,\b\000\017\024\001\000\017\020\001\000\018h\002\000\018d\002\000\018`\002\000\018\\\002\000\0170\t\000\017\024\002\000\016\204\b\000\018\168\001\000\018\164\001\000\018\160\001\000\018\156\001\000\018\152\001\000\018\148\001\000\018\144\001\000\018\140\001\000\018\136\001\000\018\132\001\000\018\128\001\000\018|\001\000\018x\001\000\018t\001\000\018p\001\000\018l\001\000\0178\b\000\0174\b\000\017(\001\000\017$\001\000\017 \001\000\017\028\001\000\018\168\002\000\018\164\002\000\018\160\002\000\018\156\002\000\018\152\002\000\018\148\002\000\018\144\002\000\018\140\002\000\0178\t\000\0174\t\000\017(\002\000\017$\002\000\018\168\003\000\018\164\003\000\018\160\003\000\018\156\003\000\0178\n\000\017(\003\000\017H\007\000\017D\007\000\017@\007\000\017<\007\000\016\208\007\000\017H\b\000\017D\b\000\017@\b\000\017<\b\000\016\208\b\000\018h\001\000\018d\001\000\018`\001\000\018\\\001\000\018X\001\000\018T\001\000\018P\001\000\018L\001\000\017@\t\000\017<\t\000\017\024\001\000\017\020\001\000\018h\002\000\018d\002\000\018`\002\000\018\\\002\000\017@\n\000\017\024\002\000\016\208\t\000\018\168\001\000\018\164\001\000\018\160\001\000\018\156\001\000\018\152\001\000\018\148\001\000\018\144\001\000\018\140\001\000\018\136\001\000\018\132\001\000\018\128\001\000\018|\001\000\018x\001\000\018t\001\000\018p\001\000\018l\001\000\017H\t\000\017D\t\000\017(\001\000\017$\001\000\017 \001\000\017\028\001\000\018\168\002\000\018\164\002\000\018\160\002\000\018\156\002\000\018\152\002\000\018\148\002\000\018\144\002\000\018\140\002\000\017H\n\000\017D\n\000\017(\002\000\017$\002\000\018\168\003\000\018\164\003\000\018\160\003\000\018\156\003\000\017H\011\000\017(\003\000\017h\002\000\017d\002\000\017`\002\000\017\\\002\000\017X\002\000\017T\002\000\017P\002\000\017L\002\000\016\216\002\000\016\212\002\000\017X\003\000\017T\003\000\017P\003\000\017L\003\000\016\212\003\000\018h\001\000\018d\001\000\018`\001\000\018\\\001\000\018X\001\000\018T\001\000\018P\001\000\018L\001\000\017P\004\000\017L\004\000\017\024\001\000\017\020\001\000\018h\002\000\018d\002\000\018`\002\000\018\\\002\000\017P\005\000\017\024\002\000\016\212\004\000\018\168\001\000\018\164\001\000\018\160\001\000\018\156\001\000\018\152\001\000\018\148\001\000\018\144\001\000\018\140\001\000\018\136\001\000\018\132\001\000\018\128\001\000\018|\001\000\018x\001\000\018t\001\000\018p\001\000\018l\001\000\017X\004\000\017T\004\000\017(\001\000\017$\001\000\017 \001\000\017\028\001\000\018\168\002\000\018\164\002\000\018\160\002\000\018\156\002\000\018\152\002\000\018\148\002\000\018\144\002\000\018\140\002\000\017X\005\000\017T\005\000\017(\002\000\017$\002\000\018\168\003\000\018\164\003\000\018\160\003\000\018\156\003\000\017X\006\000\017(\003\000\017h\003\000\017d\003\000\017`\003\000\017\\\003\000\016\216\003\000\017h\004\000\017d\004\000\017`\004\000\017\\\004\000\016\216\004\000\018h\001\000\018d\001\000\018`\001\000\018\\\001\000\018X\001\000\018T\001\000\018P\001\000\018L\001\000\017`\005\000\017\\\005\000\017\024\001\000\017\020\001\000\018h\002\000\018d\002\000\018`\002\000\018\\\002\000\017`\006\000\017\024\002\000\016\216\005\000\018\168\001\000\018\164\001\000\018\160\001\000\018\156\001\000\018\152\001\000\018\148\001\000\018\144\001\000\018\140\001\000\018\136\001\000\018\132\001\000\018\128\001\000\018|\001\000\018x\001\000\018t\001\000\018p\001\000\018l\001\000\017h\005\000\017d\005\000\017(\001\000\017$\001\000\017 \001\000\017\028\001\000\018\168\002\000\018\164\002\000\018\160\002\000\018\156\002\000\018\152\002\000\018\148\002\000\018\144\002\000\018\140\002\000\017h\006\000\017d\006\000\017(\002\000\017$\002\000\018\168\003\000\018\164\003\000\018\160\003\000\018\156\003\000\017h\007\000\017(\003\000\017\168\002\000\017\164\002\000\017\160\002\000\017\156\002\000\017\152\002\000\017\148\002\000\017\144\002\000\017\140\002\000\017\136\002\000\017\132\002\000\017\128\002\000\017|\002\000\017x\002\000\017t\002\000\017p\002\000\017l\002\000\016\232\002\000\016\228\002\000\016\224\002\000\016\220\002\000\017\136\003\000\017\132\003\000\017\128\003\000\017|\003\000\017x\003\000\017t\003\000\017p\003\000\017l\003\000\016\224\003\000\016\220\003\000\0020\001\000\002,\001\000\000\164\001\000\000\160\001\000\000\144\001\000\000\132\001\000\000x\001\000\017\136\004\000\017\132\004\000\017\128\004\000\017|\004\000\017x\004\000\017t\004\000\017p\004\000\017l\004\000\016\224\004\000\016\220\004\000\r\012\001\000\r\b\001\000\017\136\005\000\017\132\005\000\017\128\005\000\017|\005\000\017x\005\000\017t\005\000\017p\005\000\017l\005\000\016\224\005\000\016\220\005\000\017\136\006\000\017\132\006\000\017\128\006\000\017|\006\000\017x\006\000\017t\006\000\017p\006\000\017l\006\000\016\224\006\000\016\220\006\000\002\028\001\000\017\136\007\000\017\132\007\000\017\128\007\000\017|\007\000\017x\007\000\017t\007\000\017p\007\000\017l\007\000\016\224\007\000\016\220\007\000\017x\b\000\017t\b\000\017p\b\000\017l\b\000\016\220\b\000\018h\001\000\018d\001\000\018`\001\000\018\\\001\000\018X\001\000\018T\001\000\018P\001\000\018L\001\000\017p\t\000\017l\t\000\017\024\001\000\017\020\001\000\018h\002\000\018d\002\000\018`\002\000\018\\\002\000\017p\n\000\017\024\002\000\016\220\t\000\018\168\001\000\018\164\001\000\018\160\001\000\018\156\001\000\018\152\001\000\018\148\001\000\018\144\001\000\018\140\001\000\018\136\001\000\018\132\001\000\018\128\001\000\018|\001\000\018x\001\000\018t\001\000\018p\001\000\018l\001\000\017x\t\000\017t\t\000\017(\001\000\017$\001\000\017 \001\000\017\028\001\000\018\168\002\000\018\164\002\000\018\160\002\000\018\156\002\000\018\152\002\000\018\148\002\000\018\144\002\000\018\140\002\000\017x\n\000\017t\n\000\017(\002\000\017$\002\000\018\168\003\000\018\164\003\000\018\160\003\000\018\156\003\000\017x\011\000\017(\003\000\017\136\b\000\017\132\b\000\017\128\b\000\017|\b\000\016\224\b\000\017\136\t\000\017\132\t\000\017\128\t\000\017|\t\000\016\224\t\000\018h\001\000\018d\001\000\018`\001\000\018\\\001\000\018X\001\000\018T\001\000\018P\001\000\018L\001\000\017\128\n\000\017|\n\000\017\024\001\000\017\020\001\000\018h\002\000\018d\002\000\018`\002\000\018\\\002\000\017\128\011\000\017\024\002\000\016\224\n\000\018\168\001\000\018\164\001\000\018\160\001\000\018\156\001\000\018\152\001\000\018\148\001\000\018\144\001\000\018\140\001\000\018\136\001\000\018\132\001\000\018\128\001\000\018|\001\000\018x\001\000\018t\001\000\018p\001\000\018l\001\000\017\136\n\000\017\132\n\000\017(\001\000\017$\001\000\017 \001\000\017\028\001\000\018\168\002\000\018\164\002\000\018\160\002\000\018\156\002\000\018\152\002\000\018\148\002\000\018\144\002\000\018\140\002\000\017\136\011\000\017\132\011\000\017(\002\000\017$\002\000\018\168\003\000\018\164\003\000\018\160\003\000\018\156\003\000\017\136\012\000\017(\003\000\017\168\003\000\017\164\003\000\017\160\003\000\017\156\003\000\017\152\003\000\017\148\003\000\017\144\003\000\017\140\003\000\016\232\003\000\016\228\003\000\017\152\004\000\017\148\004\000\017\144\004\000\017\140\004\000\016\228\004\000\018h\001\000\018d\001\000\018`\001\000\018\\\001\000\018X\001\000\018T\001\000\018P\001\000\018L\001\000\017\144\005\000\017\140\005\000\017\024\001\000\017\020\001\000\018h\002\000\018d\002\000\018`\002\000\018\\\002\000\017\144\006\000\017\024\002\000\016\228\005\000\018\168\001\000\018\164\001\000\018\160\001\000\018\156\001\000\018\152\001\000\018\148\001\000\018\144\001\000\018\140\001\000\018\136\001\000\018\132\001\000\018\128\001\000\018|\001\000\018x\001\000\018t\001\000\018p\001\000\018l\001\000\017\152\005\000\017\148\005\000\017(\001\000\017$\001\000\017 \001\000\017\028\001\000\018\168\002\000\018\164\002\000\018\160\002\000\018\156\002\000\018\152\002\000\018\148\002\000\018\144\002\000\018\140\002\000\017\152\006\000\017\148\006\000\017(\002\000\017$\002\000\018\168\003\000\018\164\003\000\018\160\003\000\018\156\003\000\017\152\007\000\017(\003\000\017\168\004\000\017\164\004\000\017\160\004\000\017\156\004\000\016\232\004\000\017\168\005\000\017\164\005\000\017\160\005\000\017\156\005\000\016\232\005\000\018h\001\000\018d\001\000\018`\001\000\018\\\001\000\018X\001\000\018T\001\000\018P\001\000\018L\001\000\017\160\006\000\017\156\006\000\017\024\001\000\017\020\001\000\018h\002\000\018d\002\000\018`\002\000\018\\\002\000\017\160\007\000\017\024\002\000\016\232\006\000\018\168\001\000\018\164\001\000\018\160\001\000\018\156\001\000\018\152\001\000\018\148\001\000\018\144\001\000\018\140\001\000\018\136\001\000\018\132\001\000\018\128\001\000\018|\001\000\018x\001\000\018t\001\000\018p\001\000\018l\001\000\017\168\006\000\017\164\006\000\017(\001\000\017$\001\000\017 \001\000\017\028\001\000\018\168\002\000\018\164\002\000\018\160\002\000\018\156\002\000\018\152\002\000\018\148\002\000\018\144\002\000\018\140\002\000\017\168\007\000\017\164\007\000\017(\002\000\017$\002\000\018\168\003\000\018\164\003\000\018\160\003\000\018\156\003\000\017\168\b\000\017(\003\000\018\168\001\000\018\164\001\000\018\160\001\000\018\156\001\000\018\152\001\000\018\148\001\000\018\144\001\000\018\140\001\000\018\136\001\000\018\132\001\000\018\128\001\000\018|\001\000\018x\001\000\018t\001\000\018p\001\000\018l\001\000\018h\004\000\018d\004\000\017(\001\000\017$\001\000\017 \001\000\017\028\001\000\018\168\002\000\018\164\002\000\018\160\002\000\018\156\002\000\018\152\002\000\018\148\002\000\018\144\002\000\018\140\002\000\018h\005\000\018d\005\000\017(\002\000\017$\002\000\018\168\003\000\018\164\003\000\018\160\003\000\018\156\003\000\018h\006\000\017(\003\000\017\020\003\000\018\168\001\000\018\164\001\000\018\160\001\000\018\156\001\000\018\152\001\000\018\148\001\000\018\144\001\000\018\140\001\000\018\136\001\000\018\132\001\000\018\128\001\000\018|\001\000\018x\001\000\018t\001\000\018p\001\000\018l\001\000\018X\003\000\018T\003\000\017(\001\000\017$\001\000\017 \001\000\017\028\001\000\018\168\002\000\018\164\002\000\018\160\002\000\018\156\002\000\018\152\002\000\018\148\002\000\018\144\002\000\018\140\002\000\018X\004\000\018T\004\000\017(\002\000\017$\002\000\018\168\003\000\018\164\003\000\018\160\003\000\018\156\003\000\018X\005\000\017(\003\000\018h\002\000\018d\002\000\018`\002\000\018\\\002\000\017\024\002\000\002,\002\000\002\028\001\000\000\148\003\000\002T\004\000\000\140\001\000\000\128\001\000\000t\001\000\002T\005\000\rp\001\000\rl\001\000\002T\006\000\002T\007\000\002P\002\000\000\140\001\000\000\128\001\000\000t\001\000\002P\003\000\rp\001\000\rl\001\000\002P\004\000\002P\005\000\0028\002\000\t\020\001\000\t\020\002\000\r\164\001\000\r4\001\000\r8\001\000\0028\003\000\0028\004\000\r8\002\000\r8\003\000\019X\001\000\019T\001\000\019T\002\000\nL\001\000\019T\003\000\019T\004\000\r \001\000\r \002\000\r \003\000\000P\001\000\000L\001\000\000H\001\000\019T\005\000\r\028\001\000\000P\001\000\000L\001\000\000H\001\000\019X\002\000\r\168\001\000\002\028\001\000\r\164\001\000\0024\002\000\0024\003\000\002<\002\000\002<\003\000\r8\001\000\002<\004\000\002<\005\000\r8\001\000\002@\003\000\002@\004\000\r8\001\000\002L\003\000\002H\003\000\002H\004\000\002L\004\000\012\252\001\000\002L\005\000\002L\006\000\012\252\002\000\012\248\001\000\019\180\002\000\002\028\001\000\019\176\001\000\019\172\001\000\019\176\002\000\019\172\002\000\002\028\001\000\019\176\003\000\019\176\004\000\002\028\001\000\012\156\004\000\012\152\004\000\012\148\004\000\012\144\004\000\012\140\004\000\012\156\005\000\012\152\005\000\012\148\005\000\012\144\005\000\012\140\005\000\012\156\006\000\012\152\006\000\012\148\006\000\012\144\006\000\012\140\006\000\012\156\007\000\012\156\001\000\012\152\007\000\012\152\001\000\012\148\001\000\012\144\001\000\012\140\001\000\012\136\001\000\012\132\001\000\012\128\001\000\012|\001\000\012x\001\000\012\156\b\000\012\156\002\000\012\152\002\000\012\148\002\000\012\144\002\000\012\140\002\000\012\156\t\000\012\156\003\000\012\152\003\000\012\148\003\000\012\144\003\000\012\140\003\000\012\156\n\000\012\156\004\000\012\152\004\000\012\148\004\000\012\144\004\000\012\140\004\000\012\156\011\000\012\156\005\000\012\152\005\000\012\148\005\000\012\144\005\000\012\140\005\000\012\152\b\000\012\136\002\000\012\132\002\000\012\128\002\000\012|\002\000\012x\002\000\012\136\003\000\012\132\003\000\012\128\003\000\012|\003\000\012x\003\000\012\156\001\000\012\152\001\000\012\148\001\000\012\144\001\000\012\140\001\000\012\136\004\000\012\136\001\000\012\132\004\000\012\132\001\000\012\128\001\000\012|\001\000\012x\001\000\012\156\002\000\012\152\002\000\012\148\002\000\012\144\002\000\012\140\002\000\012\136\005\000\012\156\003\000\012\152\003\000\012\148\003\000\012\144\003\000\012\140\003\000\012\136\006\000\012\156\004\000\012\152\004\000\012\148\004\000\012\144\004\000\012\140\004\000\012\136\007\000\012\156\005\000\012\152\005\000\012\148\005\000\012\144\005\000\012\140\005\000\012\136\b\000\012\136\002\000\012\132\005\000\012\132\002\000\012\128\002\000\012|\002\000\012x\002\000\020H\001\000\003\012\001\000\003\000\001\000\002\252\001\000\002\248\001\000\014\244\001\000\014\228\001\000\014\228\002\000\014\228\003\000\001\020\001\000\001\016\001\000\015\184\001\000\012\180\001\000\012\176\001\000\005\228\001\000\005\224\001\000\005\220\001\000\005\216\001\000\005\212\001\000\005\208\001\000\005\204\001\000\005\200\001\000\012\180\002\000\005\228\002\000\005\224\002\000\005\220\002\000\005\216\002\000\012\180\003\000\005\228\003\000\005\224\003\000\005\220\003\000\005\216\003\000\012\180\004\000\005\228\004\000\005\224\004\000\005\220\004\000\005\216\004\000\012\180\005\000\005\228\005\000\005\224\005\000\005\220\005\000\005\216\005\000\002\028\001\000\012\180\006\000\005\228\006\000\005\224\006\000\005\220\006\000\005\216\006\000\012\180\007\000\005\228\007\000\005\224\007\000\005\220\007\000\005\216\007\000\012\180\001\000\012\176\001\000\005\228\b\000\005\228\001\000\005\224\b\000\005\224\001\000\005\220\001\000\005\216\001\000\005\212\001\000\005\208\001\000\005\204\001\000\005\200\001\000\012\180\002\000\005\228\t\000\005\228\002\000\005\224\002\000\005\220\002\000\005\216\002\000\012\180\003\000\005\228\n\000\005\228\003\000\005\224\003\000\005\220\003\000\005\216\003\000\012\180\004\000\005\228\011\000\005\228\004\000\005\224\004\000\005\220\004\000\005\216\004\000\012\180\005\000\005\228\012\000\005\228\005\000\005\224\005\000\005\220\005\000\005\216\005\000\002\028\001\000\012\180\006\000\005\228\r\000\005\228\006\000\005\224\006\000\005\220\006\000\005\216\006\000\012\176\002\000\005\224\t\000\005\212\002\000\005\208\002\000\005\204\002\000\005\200\002\000\012\176\003\000\005\212\003\000\005\208\003\000\005\204\003\000\005\200\003\000\012\180\001\000\012\176\001\000\005\228\001\000\005\224\001\000\005\220\001\000\005\216\001\000\005\212\004\000\005\212\001\000\005\208\004\000\005\208\001\000\005\204\001\000\005\200\001\000\012\180\002\000\005\228\002\000\005\224\002\000\005\220\002\000\005\216\002\000\005\212\005\000\012\180\003\000\005\228\003\000\005\224\003\000\005\220\003\000\005\216\003\000\005\212\006\000\012\180\004\000\005\228\004\000\005\224\004\000\005\220\004\000\005\216\004\000\005\212\007\000\012\180\005\000\005\228\005\000\005\224\005\000\005\220\005\000\005\216\005\000\005\212\b\000\002\028\001\000\012\180\006\000\005\228\006\000\005\224\006\000\005\220\006\000\005\216\006\000\005\212\t\000\012\176\002\000\005\212\002\000\005\208\005\000\005\208\002\000\005\204\002\000\005\200\002\000\014p\001\000\014l\001\000\014\\\001\000\014X\001\000\014l\002\000\014X\002\000\014\\\002\000\014p\002\000\014h\001\000\014d\001\000\014T\001\000\014P\001\000\014d\002\000\014P\002\000\014T\002\000\014h\002\000\020\028\001\000\015\228\001\000\015\180\001\000\015\176\001\000\015\168\001\000\001\240\001\000\001\208\001\000\014p\001\000\014l\001\000\014\\\001\000\014X\001\000\n\016\001\000\015\180\002\000\015\176\002\000\015\180\003\000\015\176\003\000\015\180\004\000\015\176\004\000\b\136\001\000\b\132\001\000\015\180\005\000\015\176\005\000\015\176\006\000\015\180\006\000\b\172\001\000\b\172\002\000\b\172\003\000\b\172\004\000\b\128\001\000\b`\001\000\b`\002\000\019(\001\000\019$\001\000\004\172\001\000\004\168\001\000\019(\002\000\019$\002\000\004\172\002\000\004\168\002\000\019(\003\000\019$\003\000\004\172\003\000\004\168\003\000\019(\004\000\004\172\004\000\019(\005\000\004\172\005\000\019\220\001\000\004\172\006\000\004\172\007\000\004\172\b\000\012\212\001\000\004\172\t\000\011\188\001\000\011\188\002\000\007L\001\000\007H\001\000\004\212\001\000\000@\001\000\000<\001\000\002\180\001\000\002\176\001\000\002\180\002\000\002\176\002\000\002\180\003\000\002\176\003\000\004@\001\000\014\216\001\000\014\216\002\000\014\216\003\000\b\020\001\000\b \001\000\b\024\001\000\b \002\000\b\024\002\000\b \003\000\b\024\003\000\b4\001\000\001\012\001\000\014\216\004\000\019P\001\000\019L\001\000\002\168\001\000\002\168\002\000\002\168\003\000\020\028\001\000\014\224\001\000\014\220\001\000\014\168\001\000\014\164\001\000\014\160\001\000\001\240\001\000\001\208\001\000\014\244\001\000\t\196\001\000\015\156\001\000\015\152\001\000\015x\001\000\015t\001\000\0048\001\000\020 \001\000\003\224\001\000\003\220\001\000\003\224\002\000\003\220\002\000\003\208\001\000\012\204\001\000\012\200\001\000\0064\001\000\0060\001\000\006,\001\000\006(\001\000\006$\001\000\006 \001\000\006\028\001\000\006\024\001\000\012\204\002\000\0064\002\000\0060\002\000\006,\002\000\006(\002\000\012\204\003\000\0064\003\000\0060\003\000\006,\003\000\006(\003\000\012\204\004\000\0064\004\000\0060\004\000\006,\004\000\006(\004\000\012\204\005\000\0064\005\000\0060\005\000\006,\005\000\006(\005\000\002\028\001\000\012\204\006\000\0064\006\000\0060\006\000\006,\006\000\006(\006\000\012\204\007\000\0064\007\000\0060\007\000\006,\007\000\006(\007\000\012\204\001\000\012\200\001\000\0064\b\000\0064\001\000\0060\b\000\0060\001\000\006,\001\000\006(\001\000\006$\001\000\006 \001\000\006\028\001\000\006\024\001\000\012\204\002\000\0064\t\000\0064\002\000\0060\002\000\006,\002\000\006(\002\000\012\204\003\000\0064\n\000\0064\003\000\0060\003\000\006,\003\000\006(\003\000\012\204\004\000\0064\011\000\0064\004\000\0060\004\000\006,\004\000\006(\004\000\012\204\005\000\0064\012\000\0064\005\000\0060\005\000\006,\005\000\006(\005\000\002\028\001\000\012\204\006\000\0064\r\000\0064\006\000\0060\006\000\006,\006\000\006(\006\000\012\200\002\000\0060\t\000\006$\002\000\006 \002\000\006\028\002\000\006\024\002\000\012\200\003\000\006$\003\000\006 \003\000\006\028\003\000\006\024\003\000\012\204\001\000\012\200\001\000\0064\001\000\0060\001\000\006,\001\000\006(\001\000\006$\004\000\006$\001\000\006 \004\000\006 \001\000\006\028\001\000\006\024\001\000\012\204\002\000\0064\002\000\0060\002\000\006,\002\000\006(\002\000\006$\005\000\012\204\003\000\0064\003\000\0060\003\000\006,\003\000\006(\003\000\006$\006\000\012\204\004\000\0064\004\000\0060\004\000\006,\004\000\006(\004\000\006$\007\000\012\204\005\000\0064\005\000\0060\005\000\006,\005\000\006(\005\000\006$\b\000\002\028\001\000\012\204\006\000\0064\006\000\0060\006\000\006,\006\000\006(\006\000\006$\t\000\012\200\002\000\006$\002\000\006 \005\000\006 \002\000\006\028\002\000\006\024\002\000\014\140\001\000\014\136\001\000\014\132\001\000\014\128\001\000\014|\001\000\001\204\001\000\001\204\002\000\014t\001\000\005,\001\000\014t\002\000\014t\003\000\007\140\001\000\007\136\001\000\007\132\001\000\007\128\001\000\n\136\001\000\n\136\002\000\002\028\001\000\007\140\002\000\007\136\002\000\007\132\002\000\007\128\002\000\n\164\001\000\011t\001\000\011t\002\000\011t\003\000\020@\001\000\015\204\001\000\019\220\001\000\015\204\002\000\b0\001\000\b\016\001\000\007\224\001\000\b\016\002\000\007\224\002\000\020\012\001\000\020\016\001\000\014\144\001\000\012\172\001\000\005\196\001\000\005\192\001\000\005\188\001\000\005\184\001\000\014x\001\000\014x\002\000\014x\003\000\015\200\001\000\015\200\002\000\020L\001\000\001\212\001\000\020D\001\000\014`\001\000\015\160\001\000\020$\001\000\014L\001\000\015\164\001\000\012\172\002\000\005\196\002\000\005\192\002\000\005\188\002\000\005\184\002\000\012\172\003\000\005\196\003\000\005\192\003\000\005\188\003\000\005\184\003\000\012\180\001\000\012\176\001\000\005\228\001\000\005\224\001\000\005\220\001\000\005\216\001\000\005\212\001\000\005\208\001\000\005\204\001\000\005\200\001\000\005\196\004\000\005\192\004\000\012\180\002\000\005\228\002\000\005\224\002\000\005\220\002\000\005\216\002\000\005\196\005\000\012\180\003\000\005\228\003\000\005\224\003\000\005\220\003\000\005\216\003\000\005\196\006\000\012\180\004\000\005\228\004\000\005\224\004\000\005\220\004\000\005\216\004\000\005\196\007\000\012\180\005\000\005\228\005\000\005\224\005\000\005\220\005\000\005\216\005\000\005\196\b\000\002\028\001\000\012\180\006\000\005\228\006\000\005\224\006\000\005\220\006\000\005\216\006\000\005\196\t\000\012\176\002\000\005\212\002\000\005\208\002\000\005\204\002\000\005\200\002\000\005\192\005\000\012\172\001\000\005\196\001\000\005\192\001\000\005\188\004\000\005\188\001\000\005\184\001\000\012\172\002\000\005\196\002\000\005\192\002\000\005\188\005\000\005\188\002\000\005\184\002\000\015\172\001\000\015\188\001\000\014H\001\000\015\188\002\000\014p\001\000\014l\001\000\014h\001\000\014d\001\000\015\188\003\000\015\232\001\000\015\196\001\000\015\220\001\000\015\216\001\000\015\212\001\000\015\208\001\000\b \001\000\001\236\001\000\001\232\001\000\015\220\002\000\015\216\002\000\015\212\002\000\015\208\002\000\b \002\000\001\236\002\000\015\220\003\000\015\216\003\000\001\236\003\000\015\216\004\000\011`\001\000\011`\002\000\011`\003\000\011d\001\000\011\\\001\000\011P\001\000\012\168\001\000\011`\004\000\011X\001\000\011T\001\000\011L\001\000\011H\001\000\005\180\001\000\005\176\001\000\005\172\001\000\005\168\001\000\012\168\002\000\005\180\002\000\005\176\002\000\005\172\002\000\005\168\002\000\012\180\001\000\012\176\001\000\005\228\001\000\005\224\001\000\005\220\001\000\005\216\001\000\005\212\001\000\005\208\001\000\005\204\001\000\005\200\001\000\005\180\003\000\005\176\003\000\012\180\002\000\005\228\002\000\005\224\002\000\005\220\002\000\005\216\002\000\005\180\004\000\012\180\003\000\005\228\003\000\005\224\003\000\005\220\003\000\005\216\003\000\005\180\005\000\012\180\004\000\005\228\004\000\005\224\004\000\005\220\004\000\005\216\004\000\005\180\006\000\012\180\005\000\005\228\005\000\005\224\005\000\005\220\005\000\005\216\005\000\005\180\007\000\002\028\001\000\012\180\006\000\005\228\006\000\005\224\006\000\005\220\006\000\005\216\006\000\005\180\b\000\012\176\002\000\005\212\002\000\005\208\002\000\005\204\002\000\005\200\002\000\005\176\004\000\012\172\001\000\005\196\001\000\005\192\001\000\005\188\001\000\005\184\001\000\005\172\003\000\012\172\002\000\005\196\002\000\005\192\002\000\005\188\002\000\005\184\002\000\005\172\004\000\015\224\001\000\015\192\001\000\001\244\001\000\012\168\003\000\012\168\001\000\011X\001\000\011T\001\000\011L\001\000\011H\001\000\005\180\001\000\005\176\001\000\005\172\001\000\005\168\003\000\005\168\001\000\011H\002\000\012\168\001\000\011X\001\000\011T\001\000\011L\001\000\011H\003\000\011H\001\000\005\180\001\000\005\176\001\000\005\172\001\000\005\168\001\000\011X\002\000\012\168\001\000\011X\003\000\011X\001\000\011T\001\000\011L\001\000\011H\001\000\005\180\001\000\005\176\001\000\005\172\001\000\005\168\001\000\011T\002\000\011T\003\000\011L\002\000\015\196\001\000\011p\001\000\012\168\001\000\011p\002\000\011X\001\000\011T\001\000\011L\001\000\011H\001\000\005\180\001\000\005\176\001\000\005\172\001\000\005\168\001\000\012\164\001\000\012\160\001\000\005\164\001\000\005\160\001\000\005\156\001\000\005\152\001\000\012\164\002\000\005\164\002\000\005\160\002\000\005\156\002\000\005\152\002\000\012\180\001\000\012\176\001\000\005\228\001\000\005\224\001\000\005\220\001\000\005\216\001\000\005\212\001\000\005\208\001\000\005\204\001\000\005\200\001\000\005\164\003\000\005\160\003\000\012\180\002\000\005\228\002\000\005\224\002\000\005\220\002\000\005\216\002\000\005\164\004\000\012\180\003\000\005\228\003\000\005\224\003\000\005\220\003\000\005\216\003\000\005\164\005\000\012\180\004\000\005\228\004\000\005\224\004\000\005\220\004\000\005\216\004\000\005\164\006\000\012\180\005\000\005\228\005\000\005\224\005\000\005\220\005\000\005\216\005\000\005\164\007\000\002\028\001\000\012\180\006\000\005\228\006\000\005\224\006\000\005\220\006\000\005\216\006\000\005\164\b\000\012\176\002\000\005\212\002\000\005\208\002\000\005\204\002\000\005\200\002\000\005\160\004\000\012\172\001\000\005\196\001\000\005\192\001\000\005\188\001\000\005\184\001\000\005\156\003\000\012\172\002\000\005\196\002\000\005\192\002\000\005\188\002\000\005\184\002\000\005\156\004\000\012\164\003\000\012\168\001\000\011X\001\000\011T\001\000\011L\001\000\011H\001\000\005\180\001\000\005\176\001\000\005\172\001\000\005\168\001\000\005\152\003\000\015\192\001\000\011l\001\000\011h\001\000\020\028\001\000\015\228\001\000\015\180\001\000\015\176\001\000\015\168\001\000\011l\002\000\001\240\001\000\001\208\001\000\011l\003\000\011l\004\000\011l\005\000\011l\006\000\014h\001\000\014d\001\000\014T\001\000\014P\001\000\n\028\001\000\001\240\002\000\001\240\003\000\015\228\002\000\015\168\002\000\012\168\001\000\011X\001\000\011T\001\000\011L\001\000\011H\001\000\005\180\001\000\005\176\001\000\005\172\001\000\005\168\001\000\015\168\003\000\015\228\003\000\015\228\004\000\002\028\001\000\015\228\005\000\012\168\001\000\011h\002\000\011X\001\000\011T\001\000\011L\001\000\011H\001\000\005\180\001\000\005\176\001\000\005\172\001\000\005\168\001\000\001\236\004\000\001\236\005\000\015\220\004\000\012\168\001\000\011X\001\000\011T\001\000\011L\001\000\011H\001\000\005\180\001\000\005\176\001\000\005\172\001\000\005\168\001\000\015\220\005\000\015\212\003\000\014|\001\000\015\212\004\000\014|\002\000\014|\003\000\r\216\001\000\r\212\001\000\r\208\001\000\012\168\001\000\011X\001\000\011T\001\000\011L\001\000\011H\001\000\005\180\001\000\005\176\001\000\005\172\001\000\005\168\001\000\r\216\002\000\r\212\002\000\r\216\003\000\015\208\003\000\012\172\004\000\012\168\001\000\011X\001\000\011T\001\000\011L\001\000\011H\001\000\005\184\004\000\005\180\001\000\005\176\001\000\005\172\001\000\005\168\001\000\014\144\002\000\011\\\001\000\014\144\003\000\012\168\001\000\011X\001\000\011T\001\000\011L\001\000\011H\001\000\005\180\001\000\005\176\001\000\005\172\001\000\005\168\001\000\011t\004\000\012\168\001\000\011X\001\000\011T\001\000\011L\001\000\011H\001\000\n\164\002\000\005\180\001\000\005\176\001\000\005\172\001\000\005\168\001\000\007\140\003\000\007\136\003\000\007\132\003\000\007\128\003\000\007\140\004\000\007\136\004\000\007\132\004\000\007\136\005\000\n`\001\000\007\136\006\000\007\140\005\000\014\132\002\000\014\128\002\000\014\128\003\000\014\140\002\000\014\136\002\000\014\136\003\000\012\196\001\000\006\028\004\000\006\020\001\000\006\016\001\000\006\012\001\000\006\b\001\000\012\196\002\000\006\028\005\000\006\020\002\000\006\016\002\000\006\012\002\000\006\b\002\000\012\196\003\000\006\020\003\000\006\016\003\000\006\012\003\000\006\b\003\000\012\204\001\000\012\200\001\000\0064\001\000\0060\001\000\006,\001\000\006(\001\000\006$\001\000\006 \001\000\006\028\001\000\006\024\001\000\006\020\004\000\006\016\004\000\012\204\002\000\0064\002\000\0060\002\000\006,\002\000\006(\002\000\006\020\005\000\012\204\003\000\0064\003\000\0060\003\000\006,\003\000\006(\003\000\006\020\006\000\012\204\004\000\0064\004\000\0060\004\000\006,\004\000\006(\004\000\006\020\007\000\012\204\005\000\0064\005\000\0060\005\000\006,\005\000\006(\005\000\006\020\b\000\002\028\001\000\012\204\006\000\0064\006\000\0060\006\000\006,\006\000\006(\006\000\006\020\t\000\012\200\002\000\006$\002\000\006 \002\000\006\028\002\000\006\024\002\000\006\016\005\000\012\196\001\000\006\020\001\000\006\016\001\000\006\012\004\000\006\012\001\000\006\b\001\000\012\196\002\000\006\020\002\000\006\016\002\000\006\012\005\000\006\012\002\000\006\b\002\000\012\196\004\000\011\140\001\000\012\192\001\000\011\136\001\000\011\132\001\000\011|\001\000\011x\001\000\006\b\004\000\006\004\001\000\006\000\001\000\005\252\001\000\005\248\001\000\012\192\002\000\006\004\002\000\006\000\002\000\005\252\002\000\005\248\002\000\012\204\001\000\012\200\001\000\0064\001\000\0060\001\000\006,\001\000\006(\001\000\006$\001\000\006 \001\000\006\028\001\000\006\024\001\000\006\004\003\000\006\000\003\000\012\204\002\000\0064\002\000\0060\002\000\006,\002\000\006(\002\000\006\004\004\000\012\204\003\000\0064\003\000\0060\003\000\006,\003\000\006(\003\000\006\004\005\000\012\204\004\000\0064\004\000\0060\004\000\006,\004\000\006(\004\000\006\004\006\000\012\204\005\000\0064\005\000\0060\005\000\006,\005\000\006(\005\000\006\004\007\000\002\028\001\000\012\204\006\000\0064\006\000\0060\006\000\006,\006\000\006(\006\000\006\004\b\000\012\200\002\000\006$\002\000\006 \002\000\006\028\002\000\006\024\002\000\006\000\004\000\012\196\001\000\006\020\001\000\006\016\001\000\006\012\001\000\006\b\001\000\005\252\003\000\012\196\002\000\006\020\002\000\006\016\002\000\006\012\002\000\006\b\002\000\005\252\004\000\012\192\003\000\012\192\001\000\011\136\001\000\011\132\001\000\011|\001\000\011x\001\000\006\004\001\000\006\000\001\000\005\252\001\000\005\248\003\000\005\248\001\000\011x\002\000\012\168\001\000\011x\003\000\011X\001\000\011T\001\000\011L\001\000\011H\001\000\005\180\001\000\005\176\001\000\005\172\001\000\005\168\001\000\011\136\002\000\012\168\001\000\011\136\003\000\011X\001\000\011T\001\000\011L\001\000\011H\001\000\005\180\001\000\005\176\001\000\005\172\001\000\005\168\001\000\011\132\002\000\011\132\003\000\011|\002\000\011\128\001\000\012\188\001\000\012\184\001\000\005\244\001\000\005\240\001\000\005\236\001\000\005\232\001\000\012\188\002\000\005\244\002\000\005\240\002\000\005\236\002\000\005\232\002\000\012\204\001\000\012\200\001\000\0064\001\000\0060\001\000\006,\001\000\006(\001\000\006$\001\000\006 \001\000\006\028\001\000\006\024\001\000\005\244\003\000\005\240\003\000\012\204\002\000\0064\002\000\0060\002\000\006,\002\000\006(\002\000\005\244\004\000\012\204\003\000\0064\003\000\0060\003\000\006,\003\000\006(\003\000\005\244\005\000\012\204\004\000\0064\004\000\0060\004\000\006,\004\000\006(\004\000\005\244\006\000\012\204\005\000\0064\005\000\0060\005\000\006,\005\000\006(\005\000\005\244\007\000\002\028\001\000\012\204\006\000\0064\006\000\0060\006\000\006,\006\000\006(\006\000\005\244\b\000\012\200\002\000\006$\002\000\006 \002\000\006\028\002\000\006\024\002\000\005\240\004\000\012\196\001\000\006\020\001\000\006\016\001\000\006\012\001\000\006\b\001\000\005\236\003\000\012\196\002\000\006\020\002\000\006\016\002\000\006\012\002\000\006\b\002\000\005\236\004\000\012\188\003\000\012\192\001\000\011\136\001\000\011\132\001\000\011|\001\000\011x\001\000\006\004\001\000\006\000\001\000\005\252\001\000\005\248\001\000\005\232\003\000\012\200\004\000\012\192\001\000\011\136\001\000\011\132\001\000\011|\001\000\011x\001\000\006\024\004\000\006\004\001\000\006\000\001\000\005\252\001\000\005\248\001\000\012\196\001\000\006,\b\000\006\020\001\000\006\016\001\000\006\012\001\000\006\b\001\000\012\196\002\000\006,\t\000\006\020\002\000\006\016\002\000\006\012\002\000\006\b\002\000\012\204\b\000\012\192\001\000\011\136\001\000\011\132\001\000\011|\001\000\011x\001\000\006(\b\000\006\004\001\000\006\000\001\000\005\252\001\000\005\248\001\000\012\200\002\000\006$\002\000\006 \002\000\006\028\002\000\006\024\002\000\012\196\001\000\006\020\001\000\006\016\001\000\006\012\001\000\006\b\001\000\012\196\002\000\006\020\002\000\006\016\002\000\006\012\002\000\006\b\002\000\015\160\001\000\006\220\001\000\006\216\001\000\005h\001\000\005d\001\000\005`\001\000\005d\002\000\005`\002\000\005(\001\000\005$\001\000\005 \001\000\005\028\001\000\005\024\001\000\005\020\001\000\005(\002\000\005$\002\000\005 \002\000\005\028\002\000\r\012\001\000\r\b\001\000\005(\003\000\005$\003\000\005(\004\000\005$\004\000\005(\005\000\005$\005\000\002\028\001\000\000h\001\000\000h\002\000\005(\006\000\005 \003\000\005\028\003\000\002\028\001\000\005 \004\000\005\024\002\000\005d\003\000\005d\004\000\005d\005\000\005`\003\000\005`\004\000\005h\002\000\005P\001\000\005L\001\000\005H\001\000\005L\002\000\005H\002\000\005L\003\000\005L\004\000\n\172\001\000\006\140\001\000\002\164\001\000\002\160\001\000\002\156\001\000\002\152\001\000\002\164\002\000\002\160\002\000\002\164\003\000\002\164\004\000\002\164\005\000\011\012\001\000\011\b\001\000\011\004\001\000\011\000\001\000\n\252\001\000\n\248\001\000\n\244\001\000\n\240\001\000\n\236\001\000\n\232\001\000\n\228\001\000\n\224\001\000\011\012\002\000\011\b\002\000\011\004\002\000\011\000\002\000\n\252\002\000\n\248\002\000\n\244\002\000\n\240\002\000\011\012\003\000\011\b\003\000\011\004\003\000\011\000\003\000\n\252\003\000\n\248\003\000\n\244\003\000\n\240\003\000\015\148\001\000\015\144\001\000\015<\001\000\0158\001\000\015\140\001\000\015\136\001\000\015H\001\000\001\204\001\000\015\000\001\000\014\252\001\000\r\204\001\000\r\200\001\000\r\196\001\000\n\148\001\000\n\144\001\000\015,\001\000\020 \001\000\b\020\001\000\015p\001\000\002\220\001\000\002\220\002\000\002\220\003\000\0150\001\000\014\156\001\000\014\152\001\000\014\148\001\000\012t\001\000\012p\001\000\012l\001\000\012h\001\000\012d\001\000\014\212\001\000\014\208\001\000\014\212\002\000\014\208\002\000\014\212\003\000\014\208\003\000\002\204\001\000\002\200\001\000\002\196\001\000\002\192\001\000\002\188\001\000\002\184\001\000\002\204\002\000\002\200\002\000\002\196\002\000\002\192\002\000\002\188\002\000\002\184\002\000\002\204\003\000\002\200\003\000\002\196\003\000\002\192\003\000\002\188\003\000\002\184\003\000\r\236\001\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\r\236\002\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\r\236\003\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\r\020\001\000\012\168\001\000\011X\001\000\011T\001\000\011L\001\000\011H\001\000\007\152\001\000\007\148\001\000\007\144\001\000\005\180\001\000\005\176\001\000\005\172\001\000\005\168\001\000\007\148\002\000\002\136\001\000\002\136\002\000\002\136\003\000\005\\\001\000\005X\001\000\005T\001\000\011\148\001\000\005X\002\000\005T\002\000\020\028\001\000\015\228\001\000\015\180\001\000\015\176\001\000\015\168\001\000\006\184\001\000\001\240\001\000\001\208\001\000\020\028\001\000\015\228\001\000\015\180\001\000\015\176\001\000\015\168\001\000\006\212\001\000\001\240\001\000\001\208\001\000\015\228\002\000\015\168\002\000\012\168\001\000\011X\001\000\011T\001\000\011L\001\000\011H\001\000\006\208\001\000\006\204\001\000\006\200\001\000\005\180\001\000\005\176\001\000\005\172\001\000\005\168\001\000\015\228\003\000\006\208\002\000\006\204\002\000\r\012\001\000\r\b\001\000\006\208\003\000\006\208\004\000\006\208\005\000\002\028\001\000\006\208\006\000\015\228\004\000\006\204\003\000\002\028\001\000\006\204\004\000\006\200\002\000\006\212\002\000\006\212\003\000\006\184\002\000\006\184\003\000\012\168\001\000\011X\001\000\011T\001\000\011L\001\000\011H\001\000\006\180\001\000\006\176\001\000\006\172\001\000\006\168\001\000\006\164\001\000\006\160\001\000\005\180\001\000\005\176\001\000\005\172\001\000\005\168\001\000\006\180\002\000\006\176\002\000\006\172\002\000\006\168\002\000\r\012\001\000\r\b\001\000\006\180\003\000\006\176\003\000\006\180\004\000\006\176\004\000\006\180\005\000\006\176\005\000\002\028\001\000\006\180\006\000\006\172\003\000\006\168\003\000\002\028\001\000\006\172\004\000\006\164\002\000\005X\003\000\005X\004\000\005X\005\000\005X\006\000\005T\003\000\005T\004\000\005T\005\000\011\144\001\000\005\\\002\000\020\028\001\000\015\228\001\000\015\180\001\000\015\176\001\000\015\168\001\000\005\148\001\000\005\136\001\000\005\132\001\000\005\128\001\000\004L\001\000\004H\001\000\001\240\001\000\001\208\001\000\004L\002\000\004H\002\000\t\028\001\000\t\028\002\000\t\028\003\000\011\240\001\000\t\028\004\000\004\228\001\000\004\224\001\000\t\028\005\000\t\024\001\000\004L\003\000\004L\004\000\011\240\001\000\004\228\001\000\004\224\001\000\004L\005\000\004L\006\000\t \001\000\004H\003\000\004H\004\000\tX\001\000\tT\001\000\t\024\001\000\tX\002\000\015\228\002\000\015\168\002\000\012\168\001\000\011X\001\000\011T\001\000\011L\001\000\011H\001\000\006\208\001\000\006\204\001\000\006\200\001\000\005\180\001\000\005\176\001\000\005\172\001\000\005\168\001\000\005\148\002\000\015\228\003\000\006\208\002\000\006\204\002\000\005\148\003\000\r\012\001\000\r\b\001\000\006\208\003\000\005\148\004\000\006\208\004\000\005\148\005\000\006\208\005\000\005\148\006\000\002\028\001\000\005\148\007\000\005\136\002\000\005\128\002\000\012\168\001\000\011X\001\000\011T\001\000\011L\001\000\011H\001\000\006\208\001\000\006\204\001\000\006\200\001\000\006\196\001\000\006\192\001\000\006\188\001\000\005\180\001\000\005\176\001\000\005\172\001\000\005\168\001\000\006\208\002\000\006\204\002\000\006\196\002\000\006\192\002\000\r\012\001\000\r\b\001\000\006\208\003\000\006\196\003\000\006\208\004\000\006\196\004\000\006\208\005\000\006\196\005\000\002\028\001\000\006\204\003\000\006\192\003\000\002\028\001\000\005\136\003\000\005\136\004\000\005\128\003\000\005\128\004\000\005\132\002\000\005\132\003\000\005\144\001\000\005\140\001\000\005x\001\000\005t\001\000\005p\001\000\005l\001\000\020\028\001\000\015\228\001\000\015\180\001\000\015\176\001\000\015\168\001\000\005\144\002\000\005\140\002\000\005x\002\000\005t\002\000\005p\002\000\001\240\001\000\001\208\001\000\015\228\002\000\015\168\002\000\012\168\001\000\011X\001\000\011T\001\000\011L\001\000\011H\001\000\006\208\001\000\006\204\001\000\006\200\001\000\005\180\001\000\005\176\001\000\005\172\001\000\005\168\001\000\005\140\003\000\015\228\003\000\006\208\002\000\006\204\002\000\005\140\004\000\r\012\001\000\r\b\001\000\006\208\003\000\005\140\005\000\006\208\004\000\005\140\006\000\006\208\005\000\005\140\007\000\002\028\001\000\005\140\b\000\005\144\003\000\005x\003\000\005t\003\000\012\168\001\000\011X\001\000\011T\001\000\011L\001\000\011H\001\000\006\208\001\000\006\204\001\000\006\200\001\000\005\180\001\000\005\176\001\000\005\172\001\000\005\168\001\000\005\144\004\000\005x\004\000\005x\005\000\006\208\002\000\006\204\002\000\005\144\005\000\r\012\001\000\r\b\001\000\006\208\003\000\005\144\006\000\006\208\004\000\005\144\007\000\006\208\005\000\005\144\b\000\002\028\001\000\005\144\t\000\006\204\003\000\002\028\001\000\005t\004\000\005t\005\000\005p\003\000\005p\004\000\005l\002\000\005|\001\000\012\220\001\000\004T\001\000\004P\001\000\012\220\002\000\002\136\004\000\n\204\001\000\n\200\001\000\n\204\002\000\n\200\002\000\000\140\001\000\000\128\001\000\000t\001\000\n\204\003\000\002\136\005\000\002\136\006\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\002\140\001\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\002\140\002\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\002\140\003\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\002\140\004\000\012`\005\000\012\\\005\000\012X\005\000\012T\005\000\012P\005\000\012\156\001\000\012\152\001\000\012\148\001\000\012\144\001\000\012\140\001\000\012\136\001\000\012\132\001\000\012\128\001\000\012|\001\000\012x\001\000\012`\006\000\012\\\006\000\012\156\002\000\012\152\002\000\012\148\002\000\012\144\002\000\012\140\002\000\012`\007\000\012\156\003\000\012\152\003\000\012\148\003\000\012\144\003\000\012\140\003\000\012`\b\000\012\156\004\000\012\152\004\000\012\148\004\000\012\144\004\000\012\140\004\000\012`\t\000\012\156\005\000\012\152\005\000\012\148\005\000\012\144\005\000\012\140\005\000\012`\n\000\012\136\002\000\012\132\002\000\012\128\002\000\012|\002\000\012x\002\000\012\\\007\000\012t\001\000\012p\001\000\012l\001\000\012h\001\000\012d\001\000\012X\006\000\014\248\001\000\001\196\001\000\014\232\001\000\b$\001\000\001\200\001\000\015\028\001\000\015\024\001\000\015\020\001\000\015\b\001\000\015\004\001\000\014\248\002\000\014\204\001\000\014\200\001\000\014\196\001\000\014\192\001\000\014\188\001\000\014\184\001\000\014\180\001\000\014\176\001\000\014\172\001\000\015\024\002\000\015\024\003\000\015\028\002\000\015\028\003\000\015\028\001\000\015\024\001\000\015\020\001\000\015\b\001\000\015\004\001\000\014\204\001\000\014\200\001\000\014\196\001\000\014\192\001\000\014\188\001\000\014\184\001\000\014\180\001\000\014\176\001\000\014\172\001\000\015\020\002\000\015\020\003\000\014\200\002\000\014\192\002\000\014\184\002\000\014\184\003\000\r\192\001\000\r\184\001\000\r\180\001\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\r\192\002\000\r\184\002\000\r\180\002\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\r\192\003\000\r\184\003\000\r\180\003\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\r\192\004\000\r\184\004\000\r\180\004\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\r\192\005\000\r\184\005\000\002\212\001\000\002\212\002\000\002\212\003\000\012\168\001\000\011X\001\000\011T\001\000\011L\001\000\011H\001\000\005\180\001\000\005\176\001\000\005\172\001\000\005\168\001\000\002\212\004\000\002\212\005\000\004D\001\000\002\216\001\000\002\216\002\000\002\216\003\000\015\028\001\000\015\024\001\000\015\020\001\000\015\b\001\000\015\004\001\000\014\204\001\000\014\200\001\000\014\196\001\000\014\192\001\000\014\188\001\000\014\184\001\000\014\180\001\000\014\176\001\000\014\172\001\000\002\216\004\000\015\b\002\000\015\b\003\000\015\004\002\000\014\204\002\000\014\196\002\000\014\188\002\000\014\180\002\000\014\176\002\000\014\172\002\000\014\172\003\000\002\228\001\000\002\224\001\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\002\228\002\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\002\228\003\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\002\228\004\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\002\228\005\000\r\024\002\000\r\024\003\000\r\016\001\000\015\028\001\000\015\024\001\000\015\020\001\000\015\b\001\000\015\004\001\000\014\204\001\000\014\200\001\000\014\196\001\000\014\192\001\000\014\188\001\000\014\184\001\000\014\180\001\000\014\176\001\000\014\172\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\002\244\001\000\002\148\001\000\005<\001\000\0058\001\000\005<\002\000\005<\003\000\005<\004\000\005<\005\000\0058\002\000\005@\001\000\005@\002\000\005D\001\000\015\028\001\000\015\024\001\000\015\020\001\000\015\b\001\000\015\004\001\000\014\204\001\000\014\200\001\000\014\196\001\000\014\192\001\000\014\188\001\000\014\184\001\000\014\180\001\000\014\176\001\000\014\172\001\000\005D\002\000\014\240\001\000\015\128\001\000\015|\001\000\015l\001\000\015h\001\000\015d\001\000\015`\001\000\015\\\001\000\015X\001\000\015T\001\000\015P\001\000\015L\001\000\015D\001\000\015@\001\000\0154\001\000\015(\001\000\015\016\001\000\015\012\001\000\b(\001\000\b \001\000\001\236\001\000\001\232\001\000\015\128\002\000\015|\002\000\015l\002\000\015h\002\000\015d\002\000\015`\002\000\015\\\002\000\015X\002\000\015T\002\000\015P\002\000\015L\002\000\015D\002\000\015@\002\000\0154\002\000\015(\002\000\015\016\002\000\015\012\002\000\b(\002\000\b \002\000\001\236\002\000\020\028\001\000\015l\003\000\015(\003\000\015\012\003\000\001\236\003\000\015(\004\000\n\020\001\000\000@\001\000\n\016\001\000\000<\001\000\015l\004\000\015l\005\000\015l\006\000\bd\001\000\bd\002\000\004x\001\000\004t\001\000\004p\001\000\004p\002\000\004x\002\000\004t\002\000\004x\003\000\004t\003\000\b\192\001\000\b\188\001\000\b\176\001\000\b\192\002\000\b\188\002\000\b\192\003\000\b\188\003\000\b\168\001\000\b\164\001\000\b\168\002\000\b\164\002\000\012\236\001\000\004|\001\000\012\236\002\000\b\168\003\000\b\164\003\000\b\168\004\000\b\164\004\000\b\184\001\000\b\220\001\000\b\212\001\000\b\208\001\000\b\204\001\000\b\200\001\000\b\196\001\000\b\180\001\000\b\168\005\000\b\164\005\000\b\220\002\000\b\212\002\000\020x\001\000\020t\001\000\020x\002\000\020t\002\000\020x\003\000\020t\003\000\020\144\001\000\020\140\001\000\020\144\002\000\020x\004\000\020x\005\000\000P\001\000\000L\001\000\000H\001\000\020t\004\000\020t\005\000\000P\001\000\000L\001\000\000H\001\000\020t\006\000\012\212\001\000\012\212\002\000\012\212\003\000\002\028\001\000\012\212\004\000\012\212\005\000\002\028\001\000\019\208\001\000\020\136\001\000\020\132\001\000\020\128\001\000\020|\001\000\020\136\002\000\020\132\002\000\020\136\003\000\020\132\003\000\020\132\004\000\020\132\005\000\b\220\001\000\b\212\001\000\b\208\001\000\b\204\001\000\b\200\001\000\b\196\001\000\b\180\001\000\b\200\002\000\b\196\002\000\b\220\001\000\b\212\001\000\b\208\001\000\b\204\001\000\b\200\003\000\b\200\001\000\b\196\003\000\b\196\001\000\b\180\001\000\b\180\002\000\b\208\002\000\b\204\002\000\b\200\004\000\b\208\003\000\b\204\003\000\b\220\001\000\b\212\001\000\b\208\004\000\b\208\001\000\b\204\004\000\b\204\001\000\b\200\001\000\b\196\001\000\b\180\001\000\b\208\005\000\b\208\002\000\b\204\002\000\b0\001\000\b\000\001\000\007\224\001\000\b\000\002\000\007\224\002\000\007\224\003\000\004\176\001\000\b\000\003\000\b\232\001\000\007\252\001\000\b\216\001\000\b\208\002\000\b\204\002\000\020\136\004\000\020\136\005\000\b\220\001\000\b\212\001\000\b\208\001\000\b\204\001\000\b\200\001\000\b\196\001\000\b\180\001\000\020\128\002\000\020|\002\000\b \001\000\020|\003\000\020|\004\000\b0\001\000\007\224\001\000\b \002\000\020\128\003\000\020\128\004\000\b0\001\000\007\224\001\000\r,\001\000\r0\001\000\b\212\003\000\r0\002\000\r0\003\000\b\220\003\000\b0\001\000\007\224\001\000\b\208\002\000\b\204\002\000\b\168\006\000\012\232\001\000\b\220\001\000\b\212\001\000\b\208\001\000\b\204\001\000\b\200\001\000\b\196\001\000\b\192\004\000\b\188\004\000\b\180\001\000\b\208\002\000\b\204\002\000\b\192\005\000\b\220\001\000\b\212\001\000\b\208\001\000\b\204\001\000\b\200\001\000\b\196\001\000\b\180\001\000\b\176\002\000\b\176\003\000\b\220\001\000\b\212\001\000\b\208\001\000\b\204\001\000\b\200\001\000\b\196\001\000\b\180\001\000\004x\004\000\004t\004\000\004t\005\000\004x\005\000\004x\006\000\bd\003\000\bd\004\000\bh\001\000\bx\001\000\bt\001\000\bl\001\000\bd\005\000\011\012\001\000\011\b\001\000\011\004\001\000\011\000\001\000\n\252\001\000\n\248\001\000\n\244\001\000\n\240\001\000\n\236\001\000\n\232\001\000\n\228\001\000\n\224\001\000\bx\002\000\bx\003\000\n\236\002\000\n\232\002\000\n\228\002\000\n\224\002\000\bx\001\000\bt\001\000\bl\001\000\n\236\003\000\n\228\003\000\n\224\003\000\n\228\004\000\n\224\004\000\b\220\001\000\b\212\001\000\b\208\001\000\b\204\001\000\b\200\001\000\b\196\001\000\b\180\001\000\n\224\005\000\n\228\005\000\n\228\006\000\bt\002\000\bl\002\000\n\232\003\000\n\232\004\000\bp\001\000\b \001\000\b|\001\000\015l\007\000\bx\001\000\bt\001\000\bl\001\000\015l\b\000\015l\t\000\b\220\001\000\b\212\001\000\b\208\001\000\b\204\001\000\b\200\001\000\b\196\001\000\b\180\001\000\015l\n\000\019P\001\000\n \001\000\019L\001\000\n\028\001\000\t\200\001\000\003\208\001\000\011d\001\000\006\224\001\000\006\224\002\000\006\224\003\000\002\028\001\000\006\224\004\000\006\224\005\000\0128\001\000\0124\001\000\0120\001\000\012,\001\000\012(\001\000\003\004\001\000\0128\002\000\0124\002\000\0120\002\000\012,\002\000\012(\002\000\012\156\001\000\012\152\001\000\012\148\001\000\012\144\001\000\012\140\001\000\012\136\001\000\012\132\001\000\012\128\001\000\012|\001\000\012x\001\000\0128\003\000\0124\003\000\012\156\002\000\012\152\002\000\012\148\002\000\012\144\002\000\012\140\002\000\0128\004\000\012\156\003\000\012\152\003\000\012\148\003\000\012\144\003\000\012\140\003\000\0128\005\000\012\156\004\000\012\152\004\000\012\148\004\000\012\144\004\000\012\140\004\000\0128\006\000\012\156\005\000\012\152\005\000\012\148\005\000\012\144\005\000\012\140\005\000\0128\007\000\012\136\002\000\012\132\002\000\012\128\002\000\012|\002\000\012x\002\000\0124\004\000\012t\001\000\012p\001\000\012l\001\000\012h\001\000\012d\001\000\0120\003\000\015\028\001\000\015\024\001\000\015\020\001\000\015\b\001\000\015\004\001\000\014\204\001\000\014\200\001\000\014\196\001\000\014\192\001\000\014\188\001\000\014\184\001\000\014\180\001\000\014\176\001\000\014\172\001\000\012t\002\000\012p\002\000\012l\002\000\012h\002\000\012d\002\000\0120\004\000\012t\003\000\012p\003\000\012l\003\000\012h\003\000\012d\003\000\012\156\001\000\012\152\001\000\012\148\001\000\012\144\001\000\012\140\001\000\012\136\001\000\012\132\001\000\012\128\001\000\012|\001\000\012x\001\000\012t\004\000\012p\004\000\012\156\002\000\012\152\002\000\012\148\002\000\012\144\002\000\012\140\002\000\012t\005\000\012\156\003\000\012\152\003\000\012\148\003\000\012\144\003\000\012\140\003\000\012t\006\000\012\156\004\000\012\152\004\000\012\148\004\000\012\144\004\000\012\140\004\000\012t\007\000\012\156\005\000\012\152\005\000\012\148\005\000\012\144\005\000\012\140\005\000\012t\b\000\012\136\002\000\012\132\002\000\012\128\002\000\012|\002\000\012x\002\000\012p\005\000\012t\001\000\012p\001\000\012l\004\000\012l\001\000\012h\001\000\012d\001\000\015\028\001\000\015\024\001\000\015\020\001\000\015\b\001\000\015\004\001\000\014\204\001\000\014\200\001\000\014\196\001\000\014\192\001\000\014\188\001\000\014\184\001\000\014\180\001\000\014\176\001\000\014\172\001\000\012t\002\000\012p\002\000\012l\005\000\012l\002\000\012h\002\000\012d\002\000\020(\001\000\015 \001\000\014\236\001\000\015\132\001\000\012h\004\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\012h\005\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\012h\006\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\r\024\001\000\012h\007\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\014\240\001\000\003\016\001\000\015\028\001\000\015\024\001\000\015\020\001\000\015\b\001\000\015\004\001\000\014\204\001\000\014\200\001\000\014\196\001\000\014\192\001\000\014\188\001\000\014\184\001\000\014\180\001\000\014\176\001\000\014\172\001\000\003\016\002\000\006\144\001\000\003\204\001\000\003\204\002\000\003\204\003\000\r\232\001\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\004d\001\000\004`\001\000\004\\\001\000\004X\001\000\0044\001\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\128\002\000\003|\002\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\003\128\003\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\003\128\004\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\003\128\005\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\003\128\006\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\003\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003h\002\000\003d\002\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\003h\003\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\003h\004\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\003h\005\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\003h\006\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\003\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003`\002\000\003\\\002\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\003`\003\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\003`\004\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\003`\005\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\003`\006\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\003\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003X\002\000\003T\002\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\003X\003\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\003X\004\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\003X\005\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\003X\006\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\003\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\136\002\000\003\132\002\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\003\136\003\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\003\136\004\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\003\136\005\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\003\136\006\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\003\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\168\002\000\003\164\002\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\003\168\003\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\003\168\004\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\003\168\005\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\003\168\006\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\003\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003H\002\000\003D\002\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\003H\003\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\003H\004\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\003H\005\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\003H\006\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\003\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003x\002\000\003t\002\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\003x\003\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\003x\004\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\003x\005\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\003x\006\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\003\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003p\002\000\003l\002\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\003p\003\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\003p\004\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\003p\005\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\003p\006\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\003\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\152\002\000\003\148\002\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\003\152\003\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\003\152\004\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\003\152\005\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\003\152\006\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\003\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003P\002\000\003L\002\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\003P\003\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\003P\004\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\003P\005\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\003P\006\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\003\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003@\002\000\003<\002\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\003@\003\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\003@\004\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\003@\005\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\003@\006\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\003\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\0038\002\000\0034\002\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\0038\003\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\0038\004\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\0038\005\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\0038\006\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\003\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\0030\002\000\003,\002\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\0030\003\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\0030\004\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\0030\005\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\0030\006\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\003\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\024\002\000\003\020\002\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\003\024\003\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\003\024\004\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\003\024\005\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\003\024\006\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\003\000\003\020\001\000\003\160\002\000\003\156\002\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\003\160\003\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\003\160\004\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\003\160\005\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\003\160\006\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\003\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\144\002\000\003\140\002\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\003\144\003\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\003\144\004\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\003\144\005\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\003\144\006\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\003\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\012L\002\000\012H\002\000\012D\002\000\012@\002\000\012<\002\000\012\156\001\000\012\152\001\000\012\148\001\000\012\144\001\000\012\140\001\000\012\136\001\000\012\132\001\000\012\128\001\000\012|\001\000\012x\001\000\012L\003\000\012H\003\000\012\156\002\000\012\152\002\000\012\148\002\000\012\144\002\000\012\140\002\000\012L\004\000\012\156\003\000\012\152\003\000\012\148\003\000\012\144\003\000\012\140\003\000\012L\005\000\012\156\004\000\012\152\004\000\012\148\004\000\012\144\004\000\012\140\004\000\012L\006\000\012\156\005\000\012\152\005\000\012\148\005\000\012\144\005\000\012\140\005\000\012L\007\000\012\136\002\000\012\132\002\000\012\128\002\000\012|\002\000\012x\002\000\012H\004\000\012t\001\000\012p\001\000\012l\001\000\012h\001\000\012d\001\000\012D\003\000\015\028\001\000\015\024\001\000\015\020\001\000\015\b\001\000\015\004\001\000\014\204\001\000\014\200\001\000\014\196\001\000\014\192\001\000\014\188\001\000\014\184\001\000\014\180\001\000\014\176\001\000\014\172\001\000\012t\002\000\012p\002\000\012l\002\000\012h\002\000\012d\002\000\012D\004\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\012@\003\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\012@\004\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\012@\005\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\012@\006\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\003\000\012<\001\000\0044\001\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\200\002\000\003\196\002\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\003\200\003\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\003\200\004\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\003\200\005\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\003\200\006\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\003\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\216\002\000\003\212\002\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\003\216\003\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\003\216\004\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\003\216\005\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\003\216\006\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\003\216\001\000\003\212\003\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\176\002\000\003\172\002\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\003\176\003\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\003\176\004\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\003\176\005\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\003\176\006\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\003\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003(\002\000\003$\002\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\003(\003\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\003(\004\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\003(\005\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\003(\006\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\003\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003 \002\000\003\028\002\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\003 \003\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\003 \004\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\003 \005\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\003 \006\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\003\000\003\028\001\000\003\024\001\000\003\020\001\000\003\184\002\000\003\180\002\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\003\184\003\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\003\184\004\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\003\184\005\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\003\184\006\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\003\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\192\002\000\003\188\002\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\003\192\003\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\003\192\004\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\003\192\005\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\003\192\006\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\003\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\0044\002\000\002\240\001\000\014\236\001\000\003\b\001\000\015\028\001\000\015\024\001\000\015\020\001\000\015\b\001\000\015\004\001\000\014\204\001\000\014\200\001\000\014\196\001\000\014\192\001\000\014\188\001\000\014\184\001\000\014\180\001\000\014\176\001\000\014\172\001\000\003\b\002\000\002\236\001\000\002\232\001\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\002\236\002\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\002\236\003\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\002\236\004\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\002\236\005\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\002\232\002\000\004d\002\000\004`\002\000\004\\\002\000\004d\003\000\004d\004\000\004d\005\000\004`\003\000\000T\001\000\000T\002\000\020\028\001\000\015\228\001\000\015\180\001\000\015\176\001\000\015\168\001\000\006\136\001\000\001\240\001\000\001\208\001\000\015\160\001\000\006\136\002\000\006\136\003\000\006\136\004\000\016\196\001\000\016\196\002\000\006\136\005\000\016\200\001\000\nl\001\000\nh\001\000\nl\002\000\016\200\002\000\016\200\003\000\002\144\001\000\016\200\004\000\np\001\000\012\216\001\000\015\160\001\000\006p\001\000\006l\001\000\006`\001\000\006\\\001\000\006L\001\000\006H\001\000\006D\001\000\006@\001\000\006<\001\000\019\176\001\000\019\172\001\000\006p\002\000\006l\002\000\006`\002\000\006\\\002\000\006p\003\000\006l\003\000\006p\004\000\006l\004\000\006p\005\000\006l\005\000\006p\006\000\006l\006\000\002\028\001\000\006l\007\000\006l\b\000\006p\007\000\006p\b\000\006p\t\000\r\012\001\000\r\b\001\000\006`\003\000\006\\\003\000\006`\004\000\006\\\004\000\006`\005\000\006\\\005\000\002\028\001\000\006\\\006\000\006\\\007\000\006`\006\000\006`\007\000\006`\b\000\006H\002\000\006D\002\000\006D\003\000\006D\004\000\006H\003\000\006H\004\000\006H\005\000\006@\002\000\006L\002\000\006L\003\000\006L\004\000\015\164\001\000\006\128\001\000\006|\001\000\006x\001\000\006\128\002\000\006|\002\000\006\128\003\000\006|\003\000\002\028\001\000\006|\004\000\006|\005\000\006\128\004\000\006\128\005\000\006\128\006\000\006x\002\000\006x\003\000\006x\004\000\012\192\001\000\011\136\001\000\011\132\001\000\011|\001\000\011x\001\000\006t\001\000\006\004\001\000\006\000\001\000\005\252\001\000\005\248\001\000\006t\002\000\006t\003\000\006\132\001\000\006h\001\000\006d\001\000\006X\001\000\006T\001\000\006P\001\000\006\132\002\000\006h\002\000\006d\002\000\006X\002\000\006T\002\000\006P\002\000\019\176\001\000\019\172\001\000\006h\003\000\006d\003\000\r\012\001\000\r\b\001\000\006h\004\000\006d\004\000\006h\005\000\006d\005\000\006h\006\000\006d\006\000\002\028\001\000\006d\007\000\006d\b\000\006h\007\000\006h\b\000\006h\t\000\006T\003\000\006P\003\000\006P\004\000\006P\005\000\006T\004\000\006T\005\000\006T\006\000\006\132\003\000\006X\003\000\006X\004\000\006X\005\000\0068\001\000\000T\003\000\0074\001\000\0074\002\000\000T\004\000\006\144\002\000\012d\004\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\012,\003\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\012,\004\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\012,\005\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\012,\006\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\012(\003\000\0044\001\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\012\192\001\000\011\136\001\000\011\132\001\000\011|\001\000\011x\001\000\006\228\001\000\006\004\001\000\006\000\001\000\005\252\001\000\005\248\001\000\006\228\002\000\006\228\003\000\006\236\001\000\003\208\002\000\003\208\003\000\003\208\004\000\006\236\002\000\006\236\003\000\006\232\001\000\014\248\001\000\t\236\001\000\015\012\004\000\015\012\005\000\015\128\003\000\015|\003\000\015`\003\000\015\\\003\000\015`\004\000\r\192\001\000\r\184\001\000\r\180\001\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\015`\005\000\r\192\002\000\r\184\002\000\r\180\002\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\015`\006\000\r\192\003\000\r\184\003\000\r\180\003\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\015`\007\000\r\192\004\000\r\184\004\000\r\180\004\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\001\140\001\000\001\136\001\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\001\140\002\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\001\140\003\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\001\140\004\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\001\140\005\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\001\136\002\000\001\132\001\000\r(\001\000\001\132\002\000\r(\002\000\001\168\001\000\001\164\001\000\001\160\001\000\001\156\001\000\001\152\001\000\001\148\001\000\001\144\001\000\001\160\002\000\001\156\002\000\012\168\001\000\011X\001\000\011T\001\000\011L\001\000\011H\001\000\005\180\001\000\005\176\001\000\005\172\001\000\005\168\001\000\001\160\003\000\001\156\003\000\001\160\004\000\001\156\004\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\001\160\005\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\001\160\006\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\001\160\007\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\001\160\b\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\001\156\005\000\001\168\002\000\001\164\002\000\012\168\001\000\011X\001\000\011T\001\000\011L\001\000\011H\001\000\005\180\001\000\005\176\001\000\005\172\001\000\005\168\001\000\001\168\003\000\001\164\003\000\001\168\004\000\001\164\004\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\001\168\005\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\001\168\006\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\001\168\007\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\001\168\b\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\001\164\005\000\001\152\002\000\001\148\002\000\012\168\001\000\011X\001\000\011T\001\000\011L\001\000\011H\001\000\005\180\001\000\005\176\001\000\005\172\001\000\005\168\001\000\001\152\003\000\001\148\003\000\001\152\004\000\001\148\004\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\001\152\005\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\001\152\006\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\001\152\007\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\001\152\b\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\001\148\005\000\012\168\001\000\011X\001\000\011T\001\000\011L\001\000\011H\001\000\005\180\001\000\005\176\001\000\005\172\001\000\005\168\001\000\001\144\002\000\001\192\001\000\001\188\001\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\001\192\002\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\001\192\003\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\001\192\004\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\001\192\005\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\001\188\002\000\001\184\001\000\001\180\001\000\001\176\001\000\001\172\001\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\001\184\002\000\001\180\002\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\001\184\003\000\001\180\003\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\001\184\004\000\001\180\004\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\001\184\005\000\001\180\005\000\002X\001\000\002\\\001\000\001\184\006\000\001\180\006\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\001\184\007\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\001\184\b\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\001\184\t\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\001\184\n\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\001\180\007\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\001\176\002\000\001\172\002\000\001\176\003\000\001\172\003\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\001\176\004\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\001\176\005\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\001\176\006\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\001\176\007\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\001\172\004\000\001\144\003\000\r(\003\000\r$\001\000\015`\b\000\012\228\001\000\015`\t\000\012\228\002\000\012\224\001\000\015\128\004\000\015|\004\000\015|\005\000\015\\\004\000\r\188\001\000\r\176\001\000\r\172\001\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\r\188\002\000\r\176\002\000\r\188\003\000\r\188\001\000\r\176\001\000\r\172\001\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\015\\\005\000\012\228\001\000\015\\\006\000\015X\003\000\015T\003\000\015D\003\000\015@\003\000\015X\004\000\r\192\001\000\r\184\001\000\r\180\001\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\015X\005\000\r\192\002\000\r\184\002\000\r\180\002\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\015X\006\000\r\192\003\000\r\184\003\000\r\180\003\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\015X\007\000\r\192\004\000\r\184\004\000\r\180\004\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\015X\b\000\012\228\001\000\015X\t\000\015D\004\000\015@\004\000\015@\005\000\015T\004\000\r\188\001\000\r\176\001\000\r\172\001\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\015T\005\000\012\228\001\000\015T\006\000\015h\003\000\015d\003\000\015P\003\000\015L\003\000\015h\004\000\015P\004\000\r\192\001\000\r\184\001\000\r\180\001\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\015P\005\000\r\192\002\000\r\184\002\000\r\180\002\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\015P\006\000\r\192\003\000\r\184\003\000\r\180\003\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\015P\007\000\r\192\004\000\r\184\004\000\r\180\004\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\015P\b\000\012\228\001\000\015P\t\000\015d\004\000\015d\005\000\015L\004\000\r\188\001\000\r\176\001\000\r\172\001\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\015L\005\000\012\228\001\000\015L\006\000\015\016\003\000\015\016\004\000\015\016\005\000\0154\003\000\015\028\001\000\015\024\001\000\015\020\001\000\015\b\001\000\015\004\001\000\014\204\001\000\014\200\001\000\014\196\001\000\014\192\001\000\014\188\001\000\014\184\001\000\014\180\001\000\014\176\001\000\014\172\001\000\011\236\001\000\011\236\002\000\011\236\003\000\r\228\001\000\r\224\001\000\r\220\001\000\n\180\001\000\r\228\002\000\r\224\002\000\r\220\002\000\r\228\003\000\r\224\003\000\r\220\003\000\r\228\004\000\r\224\004\000\r\228\005\000\011\232\001\000\0154\004\000\0154\005\000\015\128\001\000\015|\001\000\015l\001\000\015h\001\000\015d\001\000\015`\001\000\015\\\001\000\015X\001\000\015T\001\000\015P\001\000\015L\001\000\015D\001\000\015@\001\000\0154\001\000\015(\001\000\015\016\001\000\015\012\001\000\b(\001\000\b \001\000\b\024\001\000\001\236\001\000\001\232\001\000\015\128\002\000\015|\002\000\015l\002\000\015h\002\000\015d\002\000\015`\002\000\015\\\002\000\015X\002\000\015T\002\000\015P\002\000\015L\002\000\015D\002\000\015@\002\000\0154\002\000\015(\002\000\015\016\002\000\015\012\002\000\b(\002\000\b \002\000\b\024\002\000\001\236\002\000\020 \001\000\b\024\003\000\b(\003\000\0054\001\000\015\028\001\000\015\024\001\000\015\020\001\000\015\b\001\000\015\004\001\000\014\204\001\000\014\200\001\000\014\196\001\000\014\192\001\000\014\188\001\000\014\184\001\000\014\180\001\000\014\176\001\000\014\172\001\000\0054\002\000\014\200\002\000\014\192\002\000\014\184\002\000\004(\002\000\004$\002\000\004\024\002\000\004\020\002\000\004\b\002\000\004\004\002\000\014\184\003\000\004\b\003\000\004\004\003\000\014\184\004\000\004\b\004\000\004\004\004\000\014\184\005\000\004\b\005\000\004\004\005\000\004\b\006\000\004\004\006\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\004\b\007\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\004\b\b\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\004\b\t\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\004\b\n\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\004\004\007\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\014\200\003\000\004(\003\000\004$\003\000\014\200\004\000\004(\004\000\004$\004\000\014\200\005\000\004(\005\000\004$\005\000\004(\006\000\004$\006\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\004(\007\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\004(\b\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\004(\t\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\004(\n\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\004$\007\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\014\192\003\000\004\024\003\000\004\020\003\000\014\192\004\000\004\024\004\000\004\020\004\000\014\192\005\000\004\024\005\000\004\020\005\000\004\024\006\000\004\020\006\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\004\024\007\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\004\024\b\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\004\024\t\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\004\024\n\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\004\020\007\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\015\004\002\000\014\204\002\000\014\196\002\000\014\188\002\000\014\180\002\000\014\176\002\000\014\172\002\000\0040\002\000\004,\002\000\004 \002\000\004\028\002\000\004\016\002\000\004\012\002\000\004\000\002\000\003\252\002\000\003\248\002\000\003\244\002\000\003\240\002\000\003\236\002\000\003\232\002\000\003\228\002\000\014\172\003\000\003\240\003\000\003\236\003\000\014\172\004\000\003\240\004\000\003\236\004\000\014\172\005\000\003\240\005\000\003\236\005\000\003\240\006\000\003\236\006\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\003\240\007\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\003\240\b\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\003\240\t\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\003\240\n\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\003\236\007\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\014\180\003\000\004\000\003\000\003\252\003\000\014\180\004\000\004\000\004\000\003\252\004\000\014\180\005\000\004\000\005\000\003\252\005\000\004\000\006\000\003\252\006\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\004\000\007\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\004\000\b\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\004\000\t\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\004\000\n\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\003\252\007\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\014\176\003\000\003\248\003\000\003\244\003\000\014\176\004\000\003\248\004\000\003\244\004\000\014\176\005\000\003\248\005\000\003\244\005\000\003\248\006\000\003\244\006\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\003\248\007\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\003\248\b\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\003\248\t\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\003\248\n\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\003\244\007\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\014\204\003\000\014\196\003\000\014\188\003\000\b \001\000\b\024\001\000\0040\003\000\004,\003\000\004 \003\000\004\028\003\000\004\016\003\000\004\012\003\000\014\204\004\000\014\196\004\000\014\188\004\000\0040\004\000\004,\004\000\004 \004\000\004\028\004\000\004\016\004\000\004\012\004\000\014\188\005\000\004\016\005\000\004\012\005\000\014\188\006\000\004\016\006\000\004\012\006\000\014\188\007\000\004\016\007\000\004\012\007\000\004\016\b\000\004\012\b\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\004\016\t\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\004\016\n\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\004\016\011\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\004\016\012\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\004\012\t\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\014\204\005\000\0040\005\000\004,\005\000\014\204\006\000\0040\006\000\004,\006\000\014\204\007\000\0040\007\000\004,\007\000\0040\b\000\004,\b\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\0040\t\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\0040\n\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\0040\011\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\0040\012\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\004,\t\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\014\196\005\000\004 \005\000\004\028\005\000\014\196\006\000\004 \006\000\004\028\006\000\014\196\007\000\004 \007\000\004\028\007\000\004 \b\000\004\028\b\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\004 \t\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\004 \n\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\004 \011\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\004 \012\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\004\028\t\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\015\004\003\000\003\232\003\000\003\228\003\000\003\232\004\000\003\228\004\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\003\232\005\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\003\232\006\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\003\232\007\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\003\232\b\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\003\228\005\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\015\028\001\000\015\024\001\000\015\020\001\000\015\b\001\000\015\004\001\000\014\204\001\000\014\200\001\000\014\196\001\000\014\192\001\000\014\188\001\000\014\184\001\000\014\180\001\000\014\176\001\000\014\172\001\000\0050\001\000\012\244\001\000\002\244\002\000\012\244\002\000\012\240\001\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\002\224\002\000\014\172\004\000\014\172\005\000\014\180\003\000\014\180\004\000\014\180\005\000\014\176\003\000\014\176\004\000\014\176\005\000\014\204\003\000\014\196\003\000\014\188\003\000\b \001\000\b\024\001\000\014\204\004\000\014\196\004\000\014\188\004\000\014\188\005\000\014\188\006\000\014\188\007\000\014\204\005\000\014\204\006\000\014\204\007\000\014\196\005\000\014\196\006\000\014\196\007\000\015\004\003\000\004D\002\000\002\212\006\000\002\212\007\000\002\212\b\000\002\212\t\000\002\212\n\000\002\212\011\000\r\192\006\000\014\184\004\000\014\184\005\000\014\200\003\000\014\200\004\000\014\200\005\000\014\192\003\000\014\192\004\000\014\192\005\000\015\028\001\000\015\024\001\000\015\020\001\000\015\b\001\000\015\004\001\000\014\204\001\000\014\200\001\000\014\196\001\000\014\192\001\000\014\188\001\000\014\184\001\000\014\180\001\000\014\176\001\000\014\172\001\000\012t\002\000\012p\002\000\012l\002\000\012h\002\000\012d\002\000\012X\007\000\012`\001\000\012\\\001\000\012X\001\000\012T\006\000\012T\001\000\012P\001\000\012`\002\000\012\\\002\000\012X\002\000\012T\007\000\012T\002\000\012P\002\000\012`\003\000\012\\\003\000\012X\003\000\012T\b\000\012T\003\000\012P\003\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\t\000\012T\004\000\012P\004\000\012P\006\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\002\136\007\000\n\208\001\000\007\148\003\000\007\148\004\000\007\148\005\000\007\152\002\000\007\144\002\000\007\152\003\000\007\144\003\000\r\020\002\000\r\236\004\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\002\204\004\000\002\200\004\000\002\196\004\000\002\192\004\000\002\188\004\000\002\184\004\000\002\204\005\000\002\200\005\000\002\196\005\000\002\192\005\000\002\188\005\000\002\184\005\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\002\204\006\000\002\196\006\000\002\192\006\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\002\204\007\000\002\196\007\000\002\192\007\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\002\204\b\000\002\196\b\000\002\192\b\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\002\204\t\000\002\196\t\000\002\192\t\000\002\196\n\000\002\192\n\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\002\196\011\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\002\196\012\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\002\196\r\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\002\196\014\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\002\192\011\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\002\200\006\000\002\188\006\000\002\184\006\000\002\188\007\000\002\184\007\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\002\188\b\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\002\188\t\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\002\188\n\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\002\188\011\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\002\184\b\000\014\212\004\000\014\208\004\000\014\208\005\000\015\028\001\000\015\024\001\000\015\020\001\000\015\b\001\000\015\004\001\000\014\204\001\000\014\200\001\000\014\196\001\000\014\192\001\000\014\188\001\000\014\184\001\000\014\180\001\000\014\176\001\000\014\172\001\000\012t\002\000\012p\002\000\012l\002\000\012h\002\000\012d\002\000\014\152\002\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\014\152\003\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\014\152\004\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\014\152\005\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\014\152\006\000\014\148\002\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\014\148\003\000\015\028\001\000\015\024\001\000\015\020\001\000\015\b\001\000\015\004\001\000\014\204\001\000\014\200\001\000\014\196\001\000\014\192\001\000\014\188\001\000\014\184\001\000\014\180\001\000\014\176\001\000\014\172\001\000\014\156\002\000\0150\002\000\0150\003\000\015\028\001\000\015\024\001\000\015\020\001\000\015\b\001\000\015\004\001\000\014\204\001\000\014\200\001\000\014\196\001\000\014\192\001\000\014\188\001\000\014\184\001\000\014\180\001\000\014\176\001\000\014\172\001\000\002\220\004\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\015p\002\000\0128\001\000\0124\001\000\0120\001\000\012,\001\000\012(\001\000\003\004\001\000\015p\003\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\015,\002\000\015,\003\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\n\148\002\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\n\148\003\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\n\148\004\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\n\148\005\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\n\144\002\000\0044\001\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\r\204\002\000\r\200\002\000\r\196\002\000\r\204\003\000\r\200\003\000\r\204\004\000\015\000\002\000\014\252\002\000\014\252\003\000\015\140\002\000\r\192\001\000\r\184\001\000\r\180\001\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\015\140\003\000\r\192\002\000\r\184\002\000\r\180\002\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\015\140\004\000\r\192\003\000\r\184\003\000\r\180\003\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\015\140\005\000\r\192\004\000\r\184\004\000\r\180\004\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\015\140\006\000\012\228\001\000\015\140\007\000\015H\002\000\015H\003\000\015\136\002\000\r\188\001\000\r\176\001\000\r\172\001\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\015\136\003\000\012\228\001\000\015\136\004\000\015\148\002\000\r\192\001\000\r\184\001\000\r\180\001\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\015\148\003\000\r\192\002\000\r\184\002\000\r\180\002\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\015\148\004\000\r\192\003\000\r\184\003\000\r\180\003\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\015\148\005\000\r\192\004\000\r\184\004\000\r\180\004\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\015\148\006\000\012\228\001\000\015\148\007\000\015<\002\000\0158\002\000\0158\003\000\015\144\002\000\r\188\001\000\r\176\001\000\r\172\001\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\015\144\003\000\012\228\001\000\015\144\004\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\011\012\004\000\011\004\004\000\n\252\004\000\n\244\004\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\011\012\005\000\011\004\005\000\n\252\005\000\n\244\005\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\011\012\006\000\011\004\006\000\n\252\006\000\n\244\006\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\011\012\007\000\011\004\007\000\n\252\007\000\n\244\007\000\n\244\b\000\011\012\b\000\011\012\t\000\b\220\001\000\b\212\001\000\b\208\001\000\b\204\001\000\b\200\001\000\b\196\001\000\b\180\001\000\011\012\n\000\011\004\b\000\n\252\b\000\011\004\t\000\n\252\t\000\b\220\001\000\b\212\001\000\b\208\001\000\b\204\001\000\b\200\001\000\b\196\001\000\b\180\001\000\n\252\n\000\011\004\n\000\011\004\011\000\b\220\001\000\b\212\001\000\b\208\001\000\b\204\001\000\b\200\001\000\b\196\001\000\b\180\001\000\011\004\012\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\011\b\004\000\011\000\004\000\n\248\004\000\n\240\004\000\0044\001\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\n\240\005\000\011\b\005\000\011\b\006\000\b\220\001\000\b\212\001\000\b\208\001\000\b\204\001\000\b\200\001\000\b\196\001\000\b\180\001\000\011\b\007\000\011\000\005\000\n\248\005\000\011\000\006\000\n\248\006\000\b\220\001\000\b\212\001\000\b\208\001\000\b\204\001\000\b\200\001\000\b\196\001\000\b\180\001\000\n\248\007\000\011\000\007\000\011\000\b\000\b\220\001\000\b\212\001\000\b\208\001\000\b\204\001\000\b\200\001\000\b\196\001\000\b\180\001\000\011\000\t\000\bx\001\000\bt\001\000\bl\001\000\002\164\006\000\002\164\007\000\002\164\b\000\002\160\003\000\002\160\004\000\bx\001\000\bt\001\000\bl\001\000\002\160\005\000\002\160\006\000\002\160\007\000\002\152\002\000\002\152\003\000\002\152\004\000\b\152\001\000\b\152\002\000\b\152\003\000\b\152\004\000\002\152\005\000\b8\001\000\bx\001\000\bt\001\000\bl\001\000\b8\002\000\b@\001\000\b<\001\000\b\220\001\000\b\212\001\000\b\208\001\000\b\204\001\000\b\200\001\000\b\196\001\000\b\180\001\000\b@\002\000\b<\002\000\b<\003\000\bx\001\000\bt\001\000\bl\001\000\b<\004\000\b@\003\000\b@\004\000\bx\001\000\bt\001\000\bl\001\000\b@\005\000\002\152\006\000\002\152\007\000\002\152\b\000\bH\001\000\bH\002\000\bD\001\000\bD\002\000\bx\001\000\bt\001\000\bl\001\000\bD\003\000\b\148\001\000\002\156\002\000\002\156\003\000\002\156\004\000\001\220\001\000\001\224\001\000\001\208\001\000\001\224\002\000\001\224\003\000\001\204\001\000\002\156\005\000\004\132\001\000\002\012\001\000\b\248\001\000\b\252\001\000\005\004\001\000\005\000\001\000\005\004\002\000\005\000\002\000\005\004\003\000\005\000\003\000\r\012\001\000\r\b\001\000\011\184\001\000\011\184\002\000\011\184\003\000\000P\001\000\000L\001\000\000H\001\000\005\004\004\000\005\000\004\000\005\004\005\000\005\000\005\000\005\004\006\000\005\000\006\000\005\004\007\000\005\004\b\000\011\180\001\000\000P\001\000\000L\001\000\000H\001\000\002\012\002\000\002\012\003\000\005\016\001\000\005\012\001\000\005\016\002\000\005\b\001\000\rX\001\000\002\000\001\000\rX\002\000\002\000\002\000\000\140\001\000\000\128\001\000\000t\001\000\rX\003\000\002\000\003\000\r`\001\000\r\\\001\000\002\b\001\000\002\004\001\000\r`\002\000\r\\\002\000\002\b\002\000\002\004\002\000\r`\003\000\002\b\003\000\r`\004\000\002\b\004\000\000\140\001\000\000\128\001\000\000t\001\000\r`\005\000\002\b\005\000\r\\\003\000\002\004\003\000\000\140\001\000\000\128\001\000\000t\001\000\r\\\004\000\002\004\004\000\004\132\002\000\rT\001\000\001\252\001\000\000\140\001\000\000\128\001\000\000t\001\000\rT\002\000\001\252\002\000\004\148\001\000\004\144\001\000\004\140\001\000\004\136\001\000\r\004\001\000\0020\001\000\002,\001\000\000\164\001\000\000\160\001\000\000\144\001\000\000\132\001\000\000x\001\000\r\148\001\000\r\144\001\000\r\140\001\000\r\004\002\000\000\160\002\000\000\152\001\000\r\148\002\000\r\144\002\000\r\140\002\000\r\004\003\000\000\160\003\000\000\152\002\000\r\148\003\000\r\144\003\000\r\140\003\000\r\004\004\000\000\160\004\000\r\148\004\000\r\144\004\000\r\140\004\000\r\004\005\000\011\240\001\000\004\228\001\000\004\224\001\000\000\160\005\000\r\004\006\000\000\160\006\000\r\148\005\000\r\144\005\000\r\140\005\000\r\148\006\000\000\156\001\000\r\148\007\000\r\148\b\000\011\240\001\000\004\228\001\000\004\224\001\000\r\144\006\000\000\152\001\000\r\144\007\000\000\152\002\000\r\144\b\000\r\144\t\000\011\240\001\000\004\228\001\000\004\224\001\000\r\140\006\000\002\028\001\000\r\012\001\000\r\b\001\000\004\148\002\000\004\140\002\000\004\148\003\000\004\140\003\000\004\140\004\000\004\140\005\000\004\140\006\000\000\140\001\000\000\128\001\000\000t\001\000\rT\001\000\004\148\004\000\001\252\001\000\000\140\001\000\000\128\001\000\000t\001\000\004\136\002\000\004\136\003\000\004\136\004\000\000\140\001\000\000\128\001\000\000t\001\000\rT\001\000\004\144\002\000\001\252\001\000\000\140\001\000\000\128\001\000\000t\001\000\002\156\006\000\002\156\007\000\002\156\b\000\002\156\t\000\001\228\001\000\006\140\002\000\006\140\003\000\011\228\001\000\006\140\004\000\006\140\005\000\006\140\006\000\n\172\002\000\005L\005\000\005L\006\000\005H\003\000\005H\004\000\005H\005\000\005P\002\000\006\216\002\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\003\224\003\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\003\224\004\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\003\224\005\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\003\224\006\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\003\220\003\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\0048\002\000\015\156\002\000\r\192\001\000\r\184\001\000\r\180\001\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\015\156\003\000\r\192\002\000\r\184\002\000\r\180\002\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\015\156\004\000\r\192\003\000\r\184\003\000\r\180\003\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\015\156\005\000\r\192\004\000\r\184\004\000\r\180\004\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\015\156\006\000\012\228\001\000\015\156\007\000\015x\002\000\015t\002\000\015t\003\000\015\152\002\000\r\188\001\000\r\176\001\000\r\172\001\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\015\152\003\000\012\228\001\000\015\152\004\000\015\028\001\000\015\024\001\000\015\020\001\000\015\b\001\000\015\004\001\000\014\244\002\000\014\204\001\000\014\200\001\000\014\196\001\000\014\192\001\000\014\188\001\000\014\184\001\000\014\180\001\000\014\176\001\000\014\172\001\000\014\224\002\000\014\220\002\000\014\224\003\000\014\220\003\000\014\224\004\000\014\220\004\000\014\224\005\000\014\220\005\000\bx\001\000\bt\001\000\bl\001\000\014\220\006\000\014\224\006\000\014\224\007\000\b\220\001\000\b\212\001\000\b\208\001\000\b\204\001\000\b\200\001\000\b\196\001\000\b\180\001\000\014\224\b\000\014\168\002\000\014\164\002\000\014\160\002\000\014\160\003\000\014\168\003\000\014\164\003\000\014\164\004\000\014\168\004\000\014\168\005\000\002\168\004\000\002\168\005\000\r\024\001\000\002\168\006\000\004@\002\000\002\180\004\000\002\176\004\000\002\180\005\000\002\176\005\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\002\180\006\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\002\180\007\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\002\180\b\000\r\024\001\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\002\180\t\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\002\176\006\000\t\184\001\000\t\180\001\000\t\184\002\000\t\184\003\000\t\184\004\000\t\184\005\000\bx\001\000\bt\001\000\bl\001\000\t\184\006\000\t\180\002\000\t\180\003\000\t\180\004\000\bx\001\000\bt\001\000\bl\001\000\t\180\005\000\0194\001\000\0190\001\000\b\224\001\000\b\224\002\000\b\224\003\000\b\224\004\000\b\224\005\000\n\156\001\000\n\156\002\000\b\220\001\000\b\212\001\000\b\208\001\000\b\204\001\000\b\200\001\000\b\196\001\000\b\180\001\000\b\224\006\000\b\224\007\000\0194\002\000\0190\002\000\0194\003\000\0190\003\000\0194\004\000\0194\005\000\0194\006\000\0194\007\000\007\012\001\000\007\012\002\000\007\012\003\000\007\012\004\000\007\012\005\000\007\012\006\000\0194\b\000\0190\004\000\0190\005\000\0190\006\000\004\208\001\000\004\208\002\000\011\168\001\000\011\164\001\000\012\168\001\000\011\168\002\000\011\164\002\000\011X\001\000\011T\001\000\011L\001\000\011H\001\000\005\180\001\000\005\176\001\000\005\172\001\000\005\168\001\000\011\168\003\000\011\168\004\000\002|\001\000\002|\002\000\004\252\001\000\004\252\002\000\004\252\003\000\011\240\001\000\004\252\004\000\004\228\001\000\004\224\001\000\004\192\001\000\004\188\001\000\004\192\002\000\011\192\001\000\011\192\002\000\011\192\003\000\011\192\004\000\011\192\005\000\r\012\001\000\r\b\001\000\011\176\001\000\011\176\002\000\011\176\003\000\002\028\001\000\011\192\006\000\011\192\007\000\011\192\b\000\t`\001\000\t\\\001\000\t`\002\000\011\192\t\000\011\192\n\000\011\172\001\000\002\028\001\000\016\192\001\000\r\240\001\000\016\192\002\000\r\240\002\000\016\192\003\000\r\240\003\000\016\192\004\000\r\240\004\000\016\192\005\000\001\240\001\000\001\208\001\000\b \001\000\001\236\001\000\001\232\001\000\b \002\000\001\236\002\000\001\236\003\000\016\192\006\000\016\192\007\000\016\192\b\000\r\240\005\000\r\240\006\000\r\240\007\000\011\160\001\000\011\156\001\000\011\156\002\000\011\160\002\000\002\028\001\000\019@\001\000\001|\001\000\001|\002\000\001|\003\000\001|\004\000\020X\001\000\001|\005\000\002\132\001\000\rL\001\000\rP\001\000\002\132\002\000\002\132\003\000\rP\002\000\rP\003\000\001|\006\000\001|\007\000\001|\b\000\001H\001\000\001H\002\000\001\028\001\000\002\028\001\000\001\028\002\000\001\028\003\000\001H\003\000\001(\001\000\001(\002\000\t\016\001\000\t\b\001\000\t\016\002\000\t\012\001\000\t\004\001\000\t\012\002\000\001(\003\000\001(\004\000\001(\005\000\002\028\001\000\001(\006\000\001(\007\000\001,\001\000\001,\002\000\011\220\001\000\011\212\001\000\011\220\002\000\011\216\001\000\011\208\001\000\011\216\002\000\001,\003\000\001,\004\000\001,\005\000\001,\006\000\001,\007\000\001$\001\000\001$\002\000\001T\001\000\001P\001\000\001T\002\000\001P\002\000\001T\003\000\001T\004\000\b \001\000\001T\005\000\001T\006\000\001@\001\000\r@\001\000\001@\002\000\001@\003\000\001@\004\000\r@\002\000\r@\003\000\002\028\001\000\r<\001\000\002\028\001\000\001D\001\000\001<\001\000\001T\007\000\001L\001\000\001L\002\000\001P\003\000\b \001\000\001P\004\000\001P\005\000\001P\006\000\001L\001\000\001L\001\000\001$\003\000\001$\004\000\0010\001\000\0010\002\000\002\028\001\000\001\248\001\000\001\248\002\000\002\028\001\000\001\248\003\000\0010\003\000\0010\004\000\001H\004\000\001H\005\000\0014\001\000\0014\002\000\0018\001\000\007X\001\000\007X\002\000\001|\t\000\001L\001\000\001|\n\000\007\004\001\000\007\004\002\000\007\004\003\000\007\004\004\000\007\004\005\000\007\004\006\000\007\004\007\000\001L\001\000\007\004\b\000\007\004\t\000\001|\011\000\019@\002\000\019@\003\000\019@\004\000\019@\005\000\019@\006\000\020\028\001\000\015\228\001\000\015\180\001\000\015\176\001\000\015\168\001\000\005\148\001\000\005\136\001\000\005\132\001\000\005\128\001\000\001\240\001\000\001\208\001\000\000\248\001\000\001h\001\000\001h\002\000\001h\003\000\000\224\001\000\020<\001\000\0204\001\000\020<\002\000\0204\002\000\b\240\001\000\020<\003\000\0204\003\000\020<\004\000\0204\004\000\0204\005\000\0204\006\000\020<\005\000\020<\006\000\020<\007\000\000\224\002\000\000\224\003\000\0208\001\000\0200\001\000\020,\001\000\020d\001\000\020\\\001\000\020d\002\000\020`\001\000\b\240\001\000\020`\002\000\020,\002\000\020,\003\000\020,\004\000\020,\005\000\002\028\001\000\0208\002\000\0200\002\000\0208\003\000\0200\003\000\0200\004\000\0200\005\000\0208\004\000\0208\005\000\0208\006\000\000\228\001\000\007\208\001\000\007\200\001\000\007\192\001\000\007\208\002\000\007\200\002\000\007\192\002\000\011\200\001\000\007\208\003\000\007\200\003\000\007\192\003\000\007\208\004\000\007\200\004\000\007\192\004\000\007\208\005\000\007\200\005\000\007\208\006\000\007\208\007\000\007\208\b\000\007\208\t\000\002\028\001\000\007\208\n\000\007\208\011\000\007\200\006\000\007\200\007\000\007\200\b\000\007\192\005\000\000\228\002\000\000\228\003\000\007\204\001\000\007\196\001\000\007\188\001\000\007\184\001\000\020p\001\000\020h\001\000\020p\002\000\020l\001\000\011\200\001\000\020l\002\000\007\184\002\000\007\184\003\000\007\184\004\000\007\184\005\000\007\204\002\000\007\196\002\000\007\188\002\000\007\204\003\000\007\196\003\000\007\188\003\000\007\204\004\000\007\196\004\000\007\204\005\000\007\204\006\000\007\204\007\000\007\204\b\000\002\028\001\000\007\204\t\000\007\204\n\000\007\196\005\000\007\196\006\000\007\196\007\000\007\188\004\000\000\236\001\000\000\236\002\000\000\236\003\000\000\236\004\000\000\220\001\000\000\216\001\000\000\220\002\000\000\220\003\000\001d\001\000\001X\001\000\006\152\001\000\006\148\001\000\000\200\001\000\000\196\001\000\006\152\002\000\006\152\003\000\006\152\004\000\006\152\005\000\006\152\006\000\006\152\007\000\000\200\002\000\000\196\002\000\000\200\003\000\000\200\004\000\b \001\000\000\200\005\000\000\200\006\000\001`\001\000\r@\001\000\001`\002\000\001`\003\000\001`\004\000\000\188\001\000\000\188\002\000\001\b\001\000\001\004\001\000\001\004\002\000\006\156\001\000\000\192\001\000\000\192\002\000\000\212\001\000\000\208\001\000\000\184\001\000\012\244\001\000\000\208\002\000\001\\\001\000\000\204\001\000\000\192\003\000\000\204\002\000\006\156\002\000\001\004\003\000\000\204\001\000\001\b\002\000\000\188\003\000\000\204\001\000\000\200\007\000\000\196\003\000\b \001\000\000\196\004\000\000\196\005\000\000\204\001\000\000\196\006\000\006\148\002\000\006\148\003\000\006\148\004\000\006\148\005\000\001d\002\000\001X\002\000\000\204\001\000\001X\003\000\001d\003\000\019\220\001\000\019\216\001\000\007\212\001\000\001t\001\000\001t\002\000\001t\003\000\001t\004\000\002<\001\000\0028\001\000\0024\001\000\001@\001\000\r\168\001\000\r<\001\000\002\028\001\000\001x\001\000\001x\002\000\001p\001\000\001p\002\000\001p\003\000\b0\001\000\b\016\001\000\b\b\001\000\007\224\001\000\007\216\001\000\000\148\001\000\b\016\002\000\b\b\002\000\007\224\002\000\007\216\002\000\000\148\002\000\019\220\001\000\019\216\001\000\007\216\003\000\002x\001\000\001D\001\000\001p\004\000\001l\001\000\001L\001\000\001x\003\000\001t\005\000\001d\004\000\001d\005\000\000\220\004\000\000\204\001\000\n\128\001\000\n\128\002\000\000\220\005\000\000\220\006\000\000\216\002\000\000\216\003\000\000\204\001\000\000\216\004\000\000\216\005\000\000\232\001\000\000\232\002\000\000\232\003\000\000\232\004\000\001h\004\000\001h\005\000\000\240\001\000\000\240\002\000\000\244\001\000\007`\001\000\007`\002\000\000\248\002\000\000\204\001\000\000\252\001\000\000\252\002\000\000\252\003\000\000\252\004\000\000\204\001\000\001\000\001\000\001\000\002\000\019@\007\000\019@\b\000\006\244\001\000\006\244\002\000\006\244\003\000\006\244\004\000\006\244\005\000\006\244\006\000\006\244\007\000\006\244\b\000\019@\t\000\019\028\001\000\007P\001\000\006\140\001\000\019,\001\000\016\188\001\000\019\024\001\000\019<\001\000\0198\001\000\007P\002\000\019\b\001\000\006\144\001\000\019\020\001\000\019\012\001\000\019\012\002\000\019H\001\000\019H\002\000\019H\003\000\019H\004\000\bx\001\000\bt\001\000\bl\001\000\019H\005\000\019 \001\000\007$\001\000\007$\002\000\007$\003\000\007$\004\000\007$\005\000\007$\006\000\012\212\001\000\007$\007\000\007$\b\000\007$\t\000\nx\001\000\019 \002\000\019\016\001\000\019D\001\000\011\152\001\000\019\004\001\000\019\004\002\000\019\004\003\000\000\176\001\000\019\000\001\000\019\b\001\000\006\144\001\000\003\204\001\000\002|\003\000\002|\004\000\004\208\003\000\004\208\004\000\007L\002\000\007L\003\000\007L\004\000\007H\002\000\011\188\003\000\011\188\004\000\004\172\n\000\019(\006\000\019(\007\000\019(\b\000\004\152\001\000\002p\001\000\004\152\002\000\002p\002\000\002p\003\000\002p\004\000\002p\005\000\004\152\003\000\004\152\004\000\019(\t\000\012\024\001\000\012\020\001\000\019(\n\000\012\020\002\000\012\024\002\000\012\004\001\000\012\012\001\000\012\b\001\000\012\016\001\000\004\156\001\000\002t\001\000\002t\002\000\002t\003\000\002t\004\000\004\156\002\000\004\156\003\000\019$\004\000\004\168\004\000\019\220\001\000\004\168\005\000\004\168\006\000\004\168\007\000\012\212\001\000\004\168\b\000\004\168\t\000\019$\005\000\019$\006\000\019$\007\000\019$\b\000\012\024\001\000\012\020\001\000\019$\t\000\b`\003\000\b`\004\000\b\172\005\000\bx\001\000\bt\001\000\bl\001\000\015\180\007\000\b\220\001\000\b\212\001\000\b\208\001\000\b\204\001\000\b\200\001\000\b\196\001\000\b\180\001\000\015\180\b\000\012\172\001\000\005\204\004\000\005\196\001\000\005\192\001\000\005\188\001\000\005\184\001\000\012\172\002\000\005\204\005\000\005\196\002\000\005\192\002\000\005\188\002\000\005\184\002\000\012\176\004\000\012\168\001\000\011X\001\000\011T\001\000\011L\001\000\011H\001\000\005\200\004\000\005\180\001\000\005\176\001\000\005\172\001\000\005\168\001\000\012\172\001\000\005\220\b\000\005\196\001\000\005\192\001\000\005\188\001\000\005\184\001\000\012\172\002\000\005\220\t\000\005\196\002\000\005\192\002\000\005\188\002\000\005\184\002\000\012\180\b\000\012\168\001\000\011X\001\000\011T\001\000\011L\001\000\011H\001\000\005\216\b\000\005\180\001\000\005\176\001\000\005\172\001\000\005\168\001\000\012\176\002\000\005\212\002\000\005\208\002\000\005\204\002\000\005\200\002\000\012\168\001\000\011X\001\000\011T\001\000\011L\001\000\011H\001\000\005\180\001\000\005\176\001\000\005\172\001\000\005\168\001\000\001\020\002\000\001\016\002\000\001\016\003\000\001\020\003\000\002\028\001\000\001\020\004\000\001\020\005\000\014\228\004\000\014\228\005\000\014\228\006\000\003\000\002\000\003\000\003\000\003\000\004\000\r\024\001\000\003\000\005\000\015\028\001\000\015\024\001\000\015\020\001\000\015\b\001\000\015\004\001\000\014\204\001\000\014\200\001\000\014\196\001\000\014\192\001\000\014\188\001\000\014\184\001\000\014\180\001\000\014\176\001\000\014\172\001\000\002\248\002\000\002\252\002\000\014\236\001\000\003\012\002\000\015\028\001\000\015\024\001\000\015\020\001\000\015\b\001\000\015\004\001\000\014\204\001\000\014\200\001\000\014\196\001\000\014\192\001\000\014\188\001\000\014\184\001\000\014\180\001\000\014\176\001\000\014\172\001\000\003\012\003\000\012\128\004\000\012t\001\000\012p\001\000\012l\001\000\012h\001\000\012d\001\000\015\028\001\000\015\024\001\000\015\020\001\000\015\b\001\000\015\004\001\000\014\204\001\000\014\200\001\000\014\196\001\000\014\192\001\000\014\188\001\000\014\184\001\000\014\180\001\000\014\176\001\000\014\172\001\000\012\128\005\000\012t\002\000\012p\002\000\012l\002\000\012h\002\000\012d\002\000\012|\004\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\012|\005\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\012|\006\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\r\024\001\000\012|\007\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\012x\004\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\012\148\007\000\012t\001\000\012p\001\000\012l\001\000\012h\001\000\012d\001\000\015\028\001\000\015\024\001\000\015\020\001\000\015\b\001\000\015\004\001\000\014\204\001\000\014\200\001\000\014\196\001\000\014\192\001\000\014\188\001\000\014\184\001\000\014\180\001\000\014\176\001\000\014\172\001\000\012\148\b\000\012t\002\000\012p\002\000\012l\002\000\012h\002\000\012d\002\000\012\144\007\000\012`\001\000\012\\\001\000\012X\001\000\012T\001\000\012P\001\000\012\144\b\000\012`\002\000\012\\\002\000\012X\002\000\012T\002\000\012P\002\000\012\144\t\000\012`\003\000\012\\\003\000\012X\003\000\012T\003\000\012P\003\000\r\024\001\000\012\144\n\000\012`\004\000\012\\\004\000\012X\004\000\012T\004\000\012P\004\000\012\140\007\000\012L\001\000\012H\001\000\012D\001\000\012@\001\000\012<\001\000\0044\001\000\003\216\001\000\003\212\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\012\136\002\000\012\132\002\000\012\128\002\000\012|\002\000\012x\002\000\002\172\004\000\002\172\005\000\r\024\001\000\002\172\006\000\004<\002\000\002h\003\000\002h\004\000\019\220\001\000\019\216\001\000\007\172\001\000\007\164\001\000\007\156\001\000\007\172\002\000\007\164\002\000\007\156\002\000\007\172\003\000\007\164\003\000\007\156\003\000\007\172\004\000\007\164\004\000\007\156\004\000\007\164\005\000\007\156\005\000\007\164\006\000\007\156\006\000\007\180\001\000\007\156\007\000\007\176\001\000\007\168\001\000\007\160\001\000\000\140\001\000\000\128\001\000\000t\001\000\007\168\002\000\007\160\002\000\007\160\003\000\t\176\002\000\t\172\002\000\t\172\003\000\018H\002\000\018D\002\000\018@\002\000\018<\002\000\0188\002\000\0184\002\000\0180\002\000\018,\002\000\017\016\002\000\017\012\002\000\r\012\001\000\r\b\001\000\018H\003\000\018D\003\000\018@\003\000\018<\003\000\0188\003\000\0184\003\000\0180\003\000\018,\003\000\017\016\003\000\017\012\003\000\018H\004\000\018D\004\000\018@\004\000\018<\004\000\0188\004\000\0184\004\000\0180\004\000\018,\004\000\017\016\004\000\017\012\004\000\002\028\001\000\018H\005\000\018D\005\000\018@\005\000\018<\005\000\0188\005\000\0184\005\000\0180\005\000\018,\005\000\017\016\005\000\017\012\005\000\0188\006\000\0184\006\000\0180\006\000\018,\006\000\017\012\006\000\018h\001\000\018d\001\000\018`\001\000\018\\\001\000\018X\001\000\018T\001\000\018P\001\000\018L\001\000\0180\007\000\018,\007\000\017\024\001\000\017\020\001\000\018h\002\000\018d\002\000\018`\002\000\018\\\002\000\0180\b\000\017\024\002\000\017\012\007\000\018\168\001\000\018\164\001\000\018\160\001\000\018\156\001\000\018\152\001\000\018\148\001\000\018\144\001\000\018\140\001\000\018\136\001\000\018\132\001\000\018\128\001\000\018|\001\000\018x\001\000\018t\001\000\018p\001\000\018l\001\000\0188\007\000\0184\007\000\017(\001\000\017$\001\000\017 \001\000\017\028\001\000\018\168\002\000\018\164\002\000\018\160\002\000\018\156\002\000\018\152\002\000\018\148\002\000\018\144\002\000\018\140\002\000\0188\b\000\0184\b\000\017(\002\000\017$\002\000\018\168\003\000\018\164\003\000\018\160\003\000\018\156\003\000\0188\t\000\017(\003\000\018H\006\000\018D\006\000\018@\006\000\018<\006\000\017\016\006\000\018H\007\000\018D\007\000\018@\007\000\018<\007\000\017\016\007\000\018h\001\000\018d\001\000\018`\001\000\018\\\001\000\018X\001\000\018T\001\000\018P\001\000\018L\001\000\018@\b\000\018<\b\000\017\024\001\000\017\020\001\000\018h\002\000\018d\002\000\018`\002\000\018\\\002\000\018@\t\000\017\024\002\000\017\016\b\000\018\168\001\000\018\164\001\000\018\160\001\000\018\156\001\000\018\152\001\000\018\148\001\000\018\144\001\000\018\140\001\000\018\136\001\000\018\132\001\000\018\128\001\000\018|\001\000\018x\001\000\018t\001\000\018p\001\000\018l\001\000\018H\b\000\018D\b\000\017(\001\000\017$\001\000\017 \001\000\017\028\001\000\018\168\002\000\018\164\002\000\018\160\002\000\018\156\002\000\018\152\002\000\018\148\002\000\018\144\002\000\018\140\002\000\018H\t\000\018D\t\000\017(\002\000\017$\002\000\018\168\003\000\018\164\003\000\018\160\003\000\018\156\003\000\018H\n\000\017(\003\000\002<\001\000\0028\001\000\0024\001\000\001\204\001\000\t\144\002\000\t\144\003\000\t\144\004\000\t\160\002\000\t\160\003\000\t\160\004\000\t\128\002\000\004\152\001\000\002\016\001\000\004\152\002\000\012\000\001\000\002\020\001\000\004\152\001\000\012\000\002\000\011\248\001\000\011\252\001\000\th\002\000\002\028\001\000\tp\002\000\004\156\001\000\t\140\001\000\t\140\002\000\t\140\003\000\t\156\001\000\t\156\002\000\t\156\003\000\t|\001\000\019\188\002\000\t\168\001\000\t\164\001\000\t\152\001\000\t\148\001\000\t\136\001\000\t\132\001\000\tx\001\000\tt\001\000\td\001\000\002\028\001\000\t\168\002\000\t\164\002\000\t\152\002\000\t\148\002\000\t\136\002\000\t\132\002\000\tx\002\000\tt\002\000\t\168\003\000\t\152\003\000\t\136\003\000\tx\003\000\t\152\004\000\t\152\005\000\t\152\006\000\t\168\004\000\t\168\005\000\t\168\006\000\t\136\004\000\tx\004\000\t\148\003\000\t\148\004\000\t\148\005\000\t\164\003\000\t\164\004\000\t\164\005\000\t\132\003\000\tt\003\000\tl\001\000\004\164\b\000\004\164\t\000\012\212\001\000\004\164\n\000\004\164\011\000\014\024\006\000\014\024\007\000\014\024\b\000\014\024\t\000\012$\001\000\014\024\n\000\012$\002\000\012\028\001\000\012 \001\000\014\020\004\000\004\168\004\000\004\160\004\000\019\220\001\000\004\168\005\000\004\160\005\000\004\168\006\000\004\160\006\000\004\160\007\000\004\160\b\000\012\212\001\000\004\160\t\000\004\160\n\000\014\020\005\000\014\020\006\000\014\020\007\000\014\020\b\000\012$\001\000\014\020\t\000\007<\001\000\t\192\001\000\t\188\001\000\t\192\002\000\t\192\003\000\t\192\004\000\t\192\005\000\b0\001\000\007\224\001\000\t\192\006\000\t\188\002\000\t\188\003\000\t\188\004\000\b0\001\000\007\224\001\000\t\188\005\000\014,\001\000\014$\001\000\014 \001\000\b\228\001\000\b\224\001\000\b\156\001\000\b\228\002\000\b\224\002\000\b\228\003\000\b\224\003\000\b\228\004\000\b\224\004\000\b\228\005\000\b\224\005\000\b\228\006\000\b\228\007\000\b\220\001\000\b\212\001\000\b\208\001\000\b\204\001\000\b\200\001\000\b\196\001\000\b\180\001\000\b\228\b\000\014,\002\000\014$\002\000\014 \002\000\b\156\002\000\014,\003\000\014$\003\000\014 \003\000\b\156\003\000\b\156\004\000\b\132\001\000\b\156\005\000\b\156\006\000\b0\001\000\007\224\001\000\b\156\007\000\014,\004\000\014,\005\000\014,\006\000\014,\007\000\b\220\001\000\b\212\001\000\b\208\001\000\b\204\001\000\b\200\001\000\b\196\001\000\b\180\001\000\014,\b\000\014,\t\000\007\020\001\000\007\020\002\000\007\020\003\000\007\020\004\000\b\220\001\000\b\212\001\000\b\208\001\000\b\204\001\000\b\200\001\000\b\196\001\000\b\180\001\000\007\020\005\000\007\020\006\000\007\020\007\000\007\020\b\000\014,\n\000\b\144\001\000\b\144\002\000\000`\001\000\000`\002\000\b\144\003\000\b\144\004\000\014$\004\000\014 \004\000\014$\005\000\014$\006\000\b \001\000\n\188\001\000\n\188\002\000\014$\007\000\014$\b\000\bL\001\000\b\220\001\000\b\212\001\000\b\208\001\000\b\204\001\000\b\200\001\000\b\196\001\000\b\180\001\000\bL\002\000\bL\003\000\014 \005\000\014 \006\000\bP\001\000\bX\001\000\bT\001\000\b\220\001\000\b\212\001\000\b\208\001\000\b\204\001\000\b\200\001\000\b\196\001\000\b\180\001\000\bX\002\000\bT\002\000\bX\003\000\bP\002\000\b\\\001\000\b\\\002\000\b\140\001\000\r\240\001\000\r\240\002\000\r\240\003\000\r\240\004\000\014<\001\000\001|\001\000\014<\002\000\014<\003\000\014<\004\000\014<\005\000\014<\006\000\014<\007\000\014<\b\000\014<\t\000\006\252\001\000\006\252\002\000\006\252\003\000\006\252\004\000\006\252\005\000\006\252\006\000\006\252\007\000\006\252\b\000\006\252\t\000\014<\n\000\014\004\001\000\007@\001\000\014\028\001\000\014\b\001\000\0148\001\000\0144\001\000\0140\001\000\014(\001\000\007@\002\000\014\000\001\000\r\248\001\000\r\248\002\000\014D\001\000\014D\002\000\014D\003\000\014D\004\000\b\220\001\000\b\212\001\000\b\208\001\000\b\204\001\000\b\200\001\000\b\196\001\000\b\180\001\000\014D\005\000\014D\006\000\014\012\001\000\014\012\002\000\014\016\001\000\007,\001\000\007,\002\000\007,\003\000\007,\004\000\007,\005\000\007,\006\000\007,\007\000\012\212\001\000\007,\b\000\007,\t\000\007,\n\000\014\016\002\000\r\252\001\000\014@\001\000\007<\002\000\r\244\002\000\b\220\001\000\b\212\001\000\b\208\001\000\b\204\001\000\b\200\001\000\b\196\001\000\b\180\001\000\0020\005\000\0020\006\000\017\200\004\000\017\196\004\000\017\192\004\000\017\188\004\000\017\184\004\000\017\180\004\000\017\176\004\000\017\172\004\000\016\240\004\000\016\236\004\000\r\012\001\000\r\b\001\000\017\200\005\000\017\196\005\000\017\192\005\000\017\188\005\000\017\184\005\000\017\180\005\000\017\176\005\000\017\172\005\000\016\240\005\000\016\236\005\000\017\200\006\000\017\196\006\000\017\192\006\000\017\188\006\000\017\184\006\000\017\180\006\000\017\176\006\000\017\172\006\000\016\240\006\000\016\236\006\000\002\028\001\000\017\200\007\000\017\196\007\000\017\192\007\000\017\188\007\000\017\184\007\000\017\180\007\000\017\176\007\000\017\172\007\000\016\240\007\000\016\236\007\000\017\184\b\000\017\180\b\000\017\176\b\000\017\172\b\000\016\236\b\000\018h\001\000\018d\001\000\018`\001\000\018\\\001\000\018X\001\000\018T\001\000\018P\001\000\018L\001\000\017\176\t\000\017\172\t\000\017\024\001\000\017\020\001\000\018h\002\000\018d\002\000\018`\002\000\018\\\002\000\017\176\n\000\017\024\002\000\016\236\t\000\018\168\001\000\018\164\001\000\018\160\001\000\018\156\001\000\018\152\001\000\018\148\001\000\018\144\001\000\018\140\001\000\018\136\001\000\018\132\001\000\018\128\001\000\018|\001\000\018x\001\000\018t\001\000\018p\001\000\018l\001\000\017\184\t\000\017\180\t\000\017(\001\000\017$\001\000\017 \001\000\017\028\001\000\018\168\002\000\018\164\002\000\018\160\002\000\018\156\002\000\018\152\002\000\018\148\002\000\018\144\002\000\018\140\002\000\017\184\n\000\017\180\n\000\017(\002\000\017$\002\000\018\168\003\000\018\164\003\000\018\160\003\000\018\156\003\000\017\184\011\000\017(\003\000\017\200\b\000\017\196\b\000\017\192\b\000\017\188\b\000\016\240\b\000\017\200\t\000\017\196\t\000\017\192\t\000\017\188\t\000\016\240\t\000\018h\001\000\018d\001\000\018`\001\000\018\\\001\000\018X\001\000\018T\001\000\018P\001\000\018L\001\000\017\192\n\000\017\188\n\000\017\024\001\000\017\020\001\000\018h\002\000\018d\002\000\018`\002\000\018\\\002\000\017\192\011\000\017\024\002\000\016\240\n\000\018\168\001\000\018\164\001\000\018\160\001\000\018\156\001\000\018\152\001\000\018\148\001\000\018\144\001\000\018\140\001\000\018\136\001\000\018\132\001\000\018\128\001\000\018|\001\000\018x\001\000\018t\001\000\018p\001\000\018l\001\000\017\200\n\000\017\196\n\000\017(\001\000\017$\001\000\017 \001\000\017\028\001\000\018\168\002\000\018\164\002\000\018\160\002\000\018\156\002\000\018\152\002\000\018\148\002\000\018\144\002\000\018\140\002\000\017\200\011\000\017\196\011\000\017(\002\000\017$\002\000\018\168\003\000\018\164\003\000\018\160\003\000\018\156\003\000\017\200\012\000\017(\003\000\017\232\003\000\017\228\003\000\017\224\003\000\017\220\003\000\017\216\003\000\017\212\003\000\017\208\003\000\017\204\003\000\016\248\003\000\016\244\003\000\017\216\004\000\017\212\004\000\017\208\004\000\017\204\004\000\016\244\004\000\018h\001\000\018d\001\000\018`\001\000\018\\\001\000\018X\001\000\018T\001\000\018P\001\000\018L\001\000\017\208\005\000\017\204\005\000\017\024\001\000\017\020\001\000\018h\002\000\018d\002\000\018`\002\000\018\\\002\000\017\208\006\000\017\024\002\000\016\244\005\000\018\168\001\000\018\164\001\000\018\160\001\000\018\156\001\000\018\152\001\000\018\148\001\000\018\144\001\000\018\140\001\000\018\136\001\000\018\132\001\000\018\128\001\000\018|\001\000\018x\001\000\018t\001\000\018p\001\000\018l\001\000\017\216\005\000\017\212\005\000\017(\001\000\017$\001\000\017 \001\000\017\028\001\000\018\168\002\000\018\164\002\000\018\160\002\000\018\156\002\000\018\152\002\000\018\148\002\000\018\144\002\000\018\140\002\000\017\216\006\000\017\212\006\000\017(\002\000\017$\002\000\018\168\003\000\018\164\003\000\018\160\003\000\018\156\003\000\017\216\007\000\017(\003\000\017\232\004\000\017\228\004\000\017\224\004\000\017\220\004\000\016\248\004\000\017\232\005\000\017\228\005\000\017\224\005\000\017\220\005\000\016\248\005\000\018h\001\000\018d\001\000\018`\001\000\018\\\001\000\018X\001\000\018T\001\000\018P\001\000\018L\001\000\017\224\006\000\017\220\006\000\017\024\001\000\017\020\001\000\018h\002\000\018d\002\000\018`\002\000\018\\\002\000\017\224\007\000\017\024\002\000\016\248\006\000\018\168\001\000\018\164\001\000\018\160\001\000\018\156\001\000\018\152\001\000\018\148\001\000\018\144\001\000\018\140\001\000\018\136\001\000\018\132\001\000\018\128\001\000\018|\001\000\018x\001\000\018t\001\000\018p\001\000\018l\001\000\017\232\006\000\017\228\006\000\017(\001\000\017$\001\000\017 \001\000\017\028\001\000\018\168\002\000\018\164\002\000\018\160\002\000\018\156\002\000\018\152\002\000\018\148\002\000\018\144\002\000\018\140\002\000\017\232\007\000\017\228\007\000\017(\002\000\017$\002\000\018\168\003\000\018\164\003\000\018\160\003\000\018\156\003\000\017\232\b\000\017(\003\000\018\248\003\000\018\244\003\000\018\240\003\000\018\236\003\000\018\232\003\000\018\228\003\000\018\224\003\000\018\220\003\000\018\184\003\000\018\180\003\000\018(\003\000\018$\003\000\018 \003\000\018\028\003\000\018\024\003\000\018\020\003\000\018\016\003\000\018\012\003\000\018\b\003\000\018\004\003\000\018\000\003\000\017\252\003\000\017\248\003\000\017\244\003\000\017\240\003\000\017\236\003\000\017\b\003\000\017\004\003\000\017\000\003\000\016\252\003\000\018\b\004\000\018\004\004\000\018\000\004\000\017\252\004\000\017\248\004\000\017\244\004\000\017\240\004\000\017\236\004\000\017\000\004\000\016\252\004\000\0020\001\000\002,\001\000\000\164\001\000\000\160\001\000\000\144\001\000\000\132\001\000\000x\001\000\018\b\005\000\018\004\005\000\018\000\005\000\017\252\005\000\017\248\005\000\017\244\005\000\017\240\005\000\017\236\005\000\017\000\005\000\016\252\005\000\r\012\001\000\r\b\001\000\018\b\006\000\018\004\006\000\018\000\006\000\017\252\006\000\017\248\006\000\017\244\006\000\017\240\006\000\017\236\006\000\017\000\006\000\016\252\006\000\018\b\007\000\018\004\007\000\018\000\007\000\017\252\007\000\017\248\007\000\017\244\007\000\017\240\007\000\017\236\007\000\017\000\007\000\016\252\007\000\002\028\001\000\018\b\b\000\018\004\b\000\018\000\b\000\017\252\b\000\017\248\b\000\017\244\b\000\017\240\b\000\017\236\b\000\017\000\b\000\016\252\b\000\017\248\t\000\017\244\t\000\017\240\t\000\017\236\t\000\016\252\t\000\018h\001\000\018d\001\000\018`\001\000\018\\\001\000\018X\001\000\018T\001\000\018P\001\000\018L\001\000\017\240\n\000\017\236\n\000\017\024\001\000\017\020\001\000\018h\002\000\018d\002\000\018`\002\000\018\\\002\000\017\240\011\000\017\024\002\000\016\252\n\000\018\168\001\000\018\164\001\000\018\160\001\000\018\156\001\000\018\152\001\000\018\148\001\000\018\144\001\000\018\140\001\000\018\136\001\000\018\132\001\000\018\128\001\000\018|\001\000\018x\001\000\018t\001\000\018p\001\000\018l\001\000\017\248\n\000\017\244\n\000\017(\001\000\017$\001\000\017 \001\000\017\028\001\000\018\168\002\000\018\164\002\000\018\160\002\000\018\156\002\000\018\152\002\000\018\148\002\000\018\144\002\000\018\140\002\000\017\248\011\000\017\244\011\000\017(\002\000\017$\002\000\018\168\003\000\018\164\003\000\018\160\003\000\018\156\003\000\017\248\012\000\017(\003\000\018\b\t\000\018\004\t\000\018\000\t\000\017\252\t\000\017\000\t\000\018\b\n\000\018\004\n\000\018\000\n\000\017\252\n\000\017\000\n\000\018h\001\000\018d\001\000\018`\001\000\018\\\001\000\018X\001\000\018T\001\000\018P\001\000\018L\001\000\018\000\011\000\017\252\011\000\017\024\001\000\017\020\001\000\018h\002\000\018d\002\000\018`\002\000\018\\\002\000\018\000\012\000\017\024\002\000\017\000\011\000\018\168\001\000\018\164\001\000\018\160\001\000\018\156\001\000\018\152\001\000\018\148\001\000\018\144\001\000\018\140\001\000\018\136\001\000\018\132\001\000\018\128\001\000\018|\001\000\018x\001\000\018t\001\000\018p\001\000\018l\001\000\018\b\011\000\018\004\011\000\017(\001\000\017$\001\000\017 \001\000\017\028\001\000\018\168\002\000\018\164\002\000\018\160\002\000\018\156\002\000\018\152\002\000\018\148\002\000\018\144\002\000\018\140\002\000\018\b\012\000\018\004\012\000\017(\002\000\017$\002\000\018\168\003\000\018\164\003\000\018\160\003\000\018\156\003\000\018\b\r\000\017(\003\000\018(\004\000\018$\004\000\018 \004\000\018\028\004\000\018\024\004\000\018\020\004\000\018\016\004\000\018\012\004\000\017\b\004\000\017\004\004\000\018\024\005\000\018\020\005\000\018\016\005\000\018\012\005\000\017\004\005\000\018h\001\000\018d\001\000\018`\001\000\018\\\001\000\018X\001\000\018T\001\000\018P\001\000\018L\001\000\018\016\006\000\018\012\006\000\017\024\001\000\017\020\001\000\018h\002\000\018d\002\000\018`\002\000\018\\\002\000\018\016\007\000\017\024\002\000\017\004\006\000\018\168\001\000\018\164\001\000\018\160\001\000\018\156\001\000\018\152\001\000\018\148\001\000\018\144\001\000\018\140\001\000\018\136\001\000\018\132\001\000\018\128\001\000\018|\001\000\018x\001\000\018t\001\000\018p\001\000\018l\001\000\018\024\006\000\018\020\006\000\017(\001\000\017$\001\000\017 \001\000\017\028\001\000\018\168\002\000\018\164\002\000\018\160\002\000\018\156\002\000\018\152\002\000\018\148\002\000\018\144\002\000\018\140\002\000\018\024\007\000\018\020\007\000\017(\002\000\017$\002\000\018\168\003\000\018\164\003\000\018\160\003\000\018\156\003\000\018\024\b\000\017(\003\000\018(\005\000\018$\005\000\018 \005\000\018\028\005\000\017\b\005\000\018(\006\000\018$\006\000\018 \006\000\018\028\006\000\017\b\006\000\018h\001\000\018d\001\000\018`\001\000\018\\\001\000\018X\001\000\018T\001\000\018P\001\000\018L\001\000\018 \007\000\018\028\007\000\017\024\001\000\017\020\001\000\018h\002\000\018d\002\000\018`\002\000\018\\\002\000\018 \b\000\017\024\002\000\017\b\007\000\018\168\001\000\018\164\001\000\018\160\001\000\018\156\001\000\018\152\001\000\018\148\001\000\018\144\001\000\018\140\001\000\018\136\001\000\018\132\001\000\018\128\001\000\018|\001\000\018x\001\000\018t\001\000\018p\001\000\018l\001\000\018(\007\000\018$\007\000\017(\001\000\017$\001\000\017 \001\000\017\028\001\000\018\168\002\000\018\164\002\000\018\160\002\000\018\156\002\000\018\152\002\000\018\148\002\000\018\144\002\000\018\140\002\000\018(\b\000\018$\b\000\017(\002\000\017$\002\000\018\168\003\000\018\164\003\000\018\160\003\000\018\156\003\000\018(\t\000\017(\003\000\019\168\001\000\019\164\001\000\018\248\004\000\018\244\004\000\018\240\004\000\018\236\004\000\018\232\004\000\018\228\004\000\018\224\004\000\018\220\004\000\018\184\004\000\018\180\004\000\000\140\001\000\000\128\001\000\000t\001\000\019\168\002\000\018\248\005\000\018\244\005\000\018\240\005\000\018\236\005\000\018\232\005\000\018\228\005\000\018\224\005\000\018\220\005\000\018\184\005\000\018\180\005\000\019\168\003\000\018\248\006\000\018\244\006\000\018\240\006\000\018\236\006\000\018\232\006\000\018\228\006\000\018\224\006\000\018\220\006\000\018\184\006\000\018\180\006\000\rp\001\000\rl\001\000\018\232\007\000\018\228\007\000\018\224\007\000\018\220\007\000\018\180\007\000\018\224\b\000\018\220\b\000\018h\001\000\018d\001\000\018`\001\000\018\\\001\000\018X\001\000\018T\001\000\018P\001\000\018L\001\000\017\024\001\000\017\020\001\000\018\224\t\000\018h\002\000\018d\002\000\018`\002\000\018\\\002\000\017\024\002\000\018\180\b\000\018\232\b\000\018\228\b\000\018\168\001\000\018\164\001\000\018\160\001\000\018\156\001\000\018\152\001\000\018\148\001\000\018\144\001\000\018\140\001\000\018\136\001\000\018\132\001\000\018\128\001\000\018|\001\000\018x\001\000\018t\001\000\018p\001\000\018l\001\000\017(\001\000\017$\001\000\017 \001\000\017\028\001\000\018\232\t\000\018\228\t\000\018\168\002\000\018\164\002\000\018\160\002\000\018\156\002\000\018\152\002\000\018\148\002\000\018\144\002\000\018\140\002\000\017(\002\000\017$\002\000\018\232\n\000\018\168\003\000\018\164\003\000\018\160\003\000\018\156\003\000\017(\003\000\018\248\007\000\018\244\007\000\018\240\007\000\018\236\007\000\018\184\007\000\018\248\b\000\018\244\b\000\018\240\b\000\018\236\b\000\018\184\b\000\018\240\t\000\018\236\t\000\018h\001\000\018d\001\000\018`\001\000\018\\\001\000\018X\001\000\018T\001\000\018P\001\000\018L\001\000\017\024\001\000\017\020\001\000\018\240\n\000\018h\002\000\018d\002\000\018`\002\000\018\\\002\000\017\024\002\000\018\184\t\000\018\248\t\000\018\244\t\000\018\168\001\000\018\164\001\000\018\160\001\000\018\156\001\000\018\152\001\000\018\148\001\000\018\144\001\000\018\140\001\000\018\136\001\000\018\132\001\000\018\128\001\000\018|\001\000\018x\001\000\018t\001\000\018p\001\000\018l\001\000\017(\001\000\017$\001\000\017 \001\000\017\028\001\000\018\248\n\000\018\244\n\000\018\168\002\000\018\164\002\000\018\160\002\000\018\156\002\000\018\152\002\000\018\148\002\000\018\144\002\000\018\140\002\000\017(\002\000\017$\002\000\018\248\011\000\018\168\003\000\018\164\003\000\018\160\003\000\018\156\003\000\017(\003\000\019\168\001\000\019\164\001\000\018\252\003\000\018\216\003\000\018\212\003\000\018\208\003\000\018\204\003\000\018\200\003\000\018\196\003\000\018\192\003\000\018\188\003\000\018\176\003\000\018\172\003\000\000\140\001\000\000\128\001\000\000t\001\000\019\168\002\000\018\252\004\000\018\216\004\000\018\212\004\000\018\208\004\000\018\204\004\000\018\200\004\000\018\196\004\000\018\192\004\000\018\188\004\000\018\176\004\000\018\172\004\000\019\168\003\000\018\252\005\000\018\216\005\000\018\212\005\000\018\208\005\000\018\204\005\000\018\200\005\000\018\196\005\000\018\192\005\000\018\188\005\000\018\176\005\000\018\172\005\000\rp\001\000\rl\001\000\018\200\006\000\018\196\006\000\018\192\006\000\018\188\006\000\018\172\006\000\018\192\007\000\018\188\007\000\018h\001\000\018d\001\000\018`\001\000\018\\\001\000\018X\001\000\018T\001\000\018P\001\000\018L\001\000\017\024\001\000\017\020\001\000\018\192\b\000\018h\002\000\018d\002\000\018`\002\000\018\\\002\000\017\024\002\000\018\172\007\000\018\200\007\000\018\196\007\000\018\168\001\000\018\164\001\000\018\160\001\000\018\156\001\000\018\152\001\000\018\148\001\000\018\144\001\000\018\140\001\000\018\136\001\000\018\132\001\000\018\128\001\000\018|\001\000\018x\001\000\018t\001\000\018p\001\000\018l\001\000\017(\001\000\017$\001\000\017 \001\000\017\028\001\000\018\200\b\000\018\196\b\000\018\168\002\000\018\164\002\000\018\160\002\000\018\156\002\000\018\152\002\000\018\148\002\000\018\144\002\000\018\140\002\000\017(\002\000\017$\002\000\018\200\t\000\018\168\003\000\018\164\003\000\018\160\003\000\018\156\003\000\017(\003\000\018\216\006\000\018\212\006\000\018\208\006\000\018\204\006\000\018\176\006\000\018\216\007\000\018\212\007\000\018\208\007\000\018\204\007\000\018\176\007\000\018\208\b\000\018\204\b\000\018h\001\000\018d\001\000\018`\001\000\018\\\001\000\018X\001\000\018T\001\000\018P\001\000\018L\001\000\017\024\001\000\017\020\001\000\018\208\t\000\018h\002\000\018d\002\000\018`\002\000\018\\\002\000\017\024\002\000\018\176\b\000\018\216\b\000\018\212\b\000\018\168\001\000\018\164\001\000\018\160\001\000\018\156\001\000\018\152\001\000\018\148\001\000\018\144\001\000\018\140\001\000\018\136\001\000\018\132\001\000\018\128\001\000\018|\001\000\018x\001\000\018t\001\000\018p\001\000\018l\001\000\017(\001\000\017$\001\000\017 \001\000\017\028\001\000\018\216\t\000\018\212\t\000\018\168\002\000\018\164\002\000\018\160\002\000\018\156\002\000\018\152\002\000\018\148\002\000\018\144\002\000\018\140\002\000\017(\002\000\017$\002\000\018\216\n\000\018\168\003\000\018\164\003\000\018\160\003\000\018\156\003\000\017(\003\000\004\228\003\000\002\028\001\000\r\148\004\000\r\144\004\000\r\140\004\000\011\240\001\000\004\228\001\000\004\224\001\000\000\160\005\000\000\160\006\000\004\236\002\000\002\028\001\000\004\248\002\000\004\216\001\000\004\248\003\000\011\240\001\000\004\228\001\000\004\224\001\000\r\160\003\000\r\156\003\000\r\152\003\000\011\240\001\000\004\228\001\000\004\224\001\000\000\164\004\000\000\164\005\000\r\160\004\000\r\156\004\000\r\152\004\000\r\160\005\000\000\156\001\000\r\160\006\000\r\160\007\000\011\240\001\000\004\228\001\000\004\224\001\000\r\156\005\000\000\152\001\000\r\156\006\000\000\152\002\000\r\156\007\000\r\156\b\000\011\240\001\000\004\228\001\000\004\224\001\000\r\152\005\000\002\028\001\000\r\148\001\000\r\144\001\000\r\140\001\000\r\004\002\000\r\000\001\000\000\160\002\000\000\152\001\000\r\148\002\000\r\144\002\000\r\140\002\000\r\004\003\000\r\000\002\000\000\160\003\000\000\152\002\000\020P\006\000\020P\007\000\020P\b\000\000\180\003\000\000\180\004\000\002\208\003\000\002\208\004\000\002\208\005\000\002\208\006\000\002\208\007\000\004\184\001\000\004\184\002\000\000\000\001\000\000\004\000\000\004\204\001\000\004\204\002\000\000\004\001\000\000\b\000\000\020\028\001\000\007\232\001\000\001\208\001\000\007\232\002\000\007\232\003\000\007\236\001\000\000\b\001\000\b0\001\000\007\248\001\000\007\244\001\000\007\240\001\000\007\224\001\000\007\248\002\000\007\244\002\000\007\240\002\000\007\224\002\000\020\028\001\000\007\244\003\000\007\244\004\000\007\244\005\000\007\248\003\000\007\240\003\000\000X\001\000\007\228\001\000\000\\\001\000\011\028\001\000\011\028\002\000\000\012\000\000\000\012\001\000\011 \001\000\011 \002\000\000\016\000\000\000\016\001\000\011$\001\000\002\028\001\000\011$\002\000\000\020\000\000\011(\001\000\011(\002\000\000\020\001\000\000\024\000\000\000\024\001\000\011,\001\000\b0\001\000\007\224\001\000\011,\002\000\000\028\000\000\000\028\001\000\0110\001\000\b \001\000\0110\002\000\000 \000\000\000 \001\000\0114\001\000\bx\001\000\bt\001\000\bl\001\000\0114\002\000\000$\000\000\000$\001\000\0118\001\000\b\220\001\000\b\212\001\000\b\208\001\000\b\204\001\000\b\200\001\000\b\196\001\000\b\180\001\000\0118\002\000\000(\000\000\000(\001\000\011<\001\000\011<\002\000\000,\000\000\012\168\001\000\011X\001\000\011T\001\000\011L\001\000\011H\001\000\011@\001\000\005\180\001\000\005\176\001\000\005\172\001\000\005\168\001\000\011@\002\000\000,\001\000\0000\000\000\011D\001\000\011D\002\000\0000\001\000\b(\001\000\b \001\000\b(\002\000\b \002\000\0004\000\000\019\144\001\000\019\140\001\000\019\136\001\000\019\132\001\000\019\128\001\000\019|\001\000\019x\001\000\019\144\002\000\019\140\002\000\019\136\002\000\019\132\002\000\019\128\002\000\019|\002\000\019x\002\000\019\144\003\000\019|\003\000\019\128\003\000\019\140\003\000\019\132\003\000\019\136\003\000\b(\001\000\b \001\000\019t\001\000\019p\001\000\019l\001\000\019h\001\000\019d\001\000\019`\001\000\019\\\001\000\019t\002\000\019p\002\000\019l\002\000\019h\002\000\019d\002\000\019`\002\000\019\\\002\000\019t\003\000\019`\003\000\019d\003\000\019p\003\000\019h\003\000\019l\003\000\b(\001\000\b \001\000\019\160\001\000\0004\001\000\019\156\001\000\019\156\002\000\007h\001\000\007h\002\000\019\148\001\000\019\148\002\000\019\148\003\000\019\152\001\000\019\152\002\000\0008\000\000\007t\001\000\007p\001\000\007|\001\000\007x\001\000\007x\002\000\007|\002\000\007t\002\000\007t\003\000\007t\004\000\007p\002\000\0008\001\000\020\024\001\000\020\024\002\000\020\024\003\000\020\024\004\000\020\020\001\000\020\020\002"), (16, "\000\000\000\001\000\002\000\003\000\004\000\005\000\006\000\007\000\b\000\t\000\n\000\011\000\012\000\r\000\014\000\015\000\016\000\017\000\018\000\019\000\020\000\021\000\022\000\023\000\024\000\025\000\026\000\027\000\028\000\029\000\030\000\031\000 \000!\000\"\000#\000$\000%\000&\000'\000(\000)\000*\000+\000,\000-\000.\000/\0000\0001\0002\0003\0004\0005\0006\0007\0009\000:\000;\000<\000=\000>\000?\000@\000A\000B\000C\000D\000E\000F\000G\000H\000I\000J\000K\000L\000M\000N\000O\000P\000Q\000R\000S\000T\000U\000V\000W\000]\000_\000`\000a\000c\000e\000f\000h\000j\000l\000m\000o\000q\000s\000t\000u\000v\000w\000x\000y\000z\000{\000|\000}\000~\000\127\000\128\000\129\000\131\000\133\000\135\000\136\000\137\000\138\000\139\000\140\000\141\000\143\000\144\000\145\000\147\000\148\000\149\000\150\000\151\000\169\000\174\000\178\000\179\000\180\000\181\000\182\000\183\000\200\000\206\000\212\000\216\000\218\000\219\000\220\000\224\000\225\001 \001!\001^\001o\001p\001q\001r\001t\001u\001v\001w\001y\001z\001{\001|\001}\001~\001\132\001\138\001\144\001\145\001\147\001\148\001\151\001\153\001\154\001\155\001\156\001\159\001\160\001\161\001\165\001\167\001\169\001\170\001\174\001\175\001\177\001\178\001\179\001\180\001\184\001\185\001\186\001\187\001\189\001\191\001\193\001\194\001\198\001\199\001\201\001\202\001\203\001\204\001\205\001\207\001\208\001\209\001\210\001\211\001\212\001\215\001\218\001\219\001\223\001\225\001\226\001\228\001\229\001\234\001\253\001\254\002\000\002\007\002\012\002\017\002\018\002\019\002\020\002\021\002\022\002\023\002\024\002\025\002#\002(\002-\002.\0020\0021\0023\0025\0026\0027\002:\002<\002?\002@\002B\002C\002D\002G\002H\002K\002L\002M\002N\002O\002Q\002R\002S\002T\002U\002V\002W\002X\002Y\002^\002b\002d\002o\002t\002\128\002\129\002\131\002\132\002\133\002\139\002\144\002\156\002\162\002\163\002\203\002\220\002\221\002\227\002\230\002\231\002\232\002\233\002\234\002\238\002\241\002\242\002\243\002\244\002\245\002\248\002\250\002\251\002\255\003\001\003\003\003\004\003\b\003\028\003-\0039\003:\003;\003<\003=\003>\003?\003C\003D\003N\003O\003P\003Q\003R\003S\003^\003h\003m\003y\003\127\003\128\003\150\003\162\003\167\003\179\003\185\003\186\003\208\003\220\003\226\003\231\003\243\003\249\003\250\004\016\004\028\004\"\004'\004(\004+\004,\0040\0041\0042\0043\0044\0047\0049\004<\004=\004A\004E\004I\004O\004T\004Y\004e\004k\004l\004\130\004\142\004\148\004\149\004\153\004\156\004\157\004\158\004\160\004\161\004\162\004\166\004\167\004\168\004\169\004\170\004\174\004\175\004\180\004\181\004\184\004\186\004\187\004\191\004\193\004\195\004\196\004\200\004\202\004\212\004\217\004\219\004\231\004\241\004\252\005\006\005\011\005\023\005\029\005\030\0054\005@\005F\005K\005P\005\\\005b\005c\005y\005\133\005\139\005\149\005\154\005\166\005\172\005\173\005\195\005\207\005\213\005\218\005\223\005\235\005\241\005\242\006\b\006\020\006\026\006.\006?\006K\006U\006`\006j\006o\006{\006\129\006\130\006\152\006\164\006\170\006\175\006\180\006\192\006\198\006\199\006\221\006\233\006\239\006\249\006\254\007\n\007\016\007\017\007'\0073\0079\007>\007C\007O\007U\007V\007l\007x\007~\007\148\007\160\007\166\007\167\007\189\007\201\007\207\007\212\007\214\007\215\007\219\007\220\007\223\007\224\007\228\007\229\007\232\007\233\007\234\007\235\007\236\007\237\007\238\007\240\007\241\007\242\007\243\007\245\007\246\007\247\007\248\007\250\007\251\007\255\b\000\b\004\b\005\b\007\b\t\b\n\b\011\b\012\b\014\b\015\b\017\b\018\b\021\b\022\b\023\b\025\b\026\b\027\b\028\b\030\b \b#\b$\b&\b+\b0\b5\bA\bG\bM\bS\bY\b_\bd\bp\bv\b|\b\130\b\136\b\142\b\143\b\147\b\148\b\149\b\150\b\151\b\153\b\154\b\164\b\169\b\174\b\179\b\185\b\190\b\195\b\207\b\213\b\219\b\225\b\232\b\238\b\244\b\249\t\005\t\011\t\017\t\023\t\030\t$\t*\t.\t/\t0\t1\t2\t6\t7\t8\t9\t:\tA\tF\tH\tJ\tL\tM\tN\tP\tQ\tR\tS\tT\tU\tV\tW\tX\tY\t]\ta\te\tg\ti\tk\tl\tm\to\tp\tq\ts\tt\tu\tv\tx\tz\t|\t}\t~\t\127\t\128\t\129\t\131\t\133\t\134\t\135\t\136\t\137\t\138\t\139\t\140\t\141\t\142\t\143\t\151\t\153\t\157\t\158\t\161\t\163\t\164\t\174\t\179\t\184\t\189\t\195\t\200\t\205\t\217\t\223\t\229\t\235\t\242\t\248\t\254\n\003\n\015\n\021\n\027\n!\n(\n.\n4\n6\n8\n:\n;\n<\n=\n>\n?\nC\nD\nF\nJ\nK\nL\nM\nN\nO\nP\nQ\nR\nU\nW\nX\nY\nZ\n_\n`\na\nb\nc\nd\ne\nf\ng\nh\ni\nj\nk\nl\nq\nv\n\130\n\136\n\142\n\148\n\155\n\161\n\167\n\173\n\179\n\180\n\182\n\183\n\185\n\187\n\188\n\189\n\190\n\197\n\203\n\206\n\207\n\208\n\209\n\210\n\211\n\212\n\213\n\223\n\228\n\240\n\246\n\252\011\002\011\t\011\015\011\021\011\027\011!\011\"\011#\011$\011%\011/\0110\011:\011;\011E\011F\011G\011H\011J\011T\011Z\011_\011k\011q\011w\011}\011\132\011\138\011\144\011\150\011\156\011\157\011\167\011\170\011\178\011\179\011\180\011\181\011\182\011\187\011\188\011\189\011\200\011\201\011\202\011\204\011\205\011\215\011\216\011\217\011\227\011\228\011\230\011\231\011\232\011\233\011\245\011\247\011\248\011\249\011\250\012\004\012\006\012\007\012\016\012\017\012\027\012\031\012\"\012#\012$\012%\012&\012'\012(\012)\012*\012+\012,\0122\0128\012=\012I\012O\012U\012[\012b\012h\012n\012t\012z\012{\012|\012\134\012\139\012\151\012\157\012\163\012\169\012\176\012\182\012\188\012\194\012\200\012\201\012\211\012\212\012\222\012\223\012\233\012\234\012\235\012\236\012\237\012\243\012\248\r\004\r\n\r\016\r\022\r\029\r#\r)\r/\r5\r6\r@\rA\rK\rQ\rW\rX\rb\rg\rl\rq\rt\rw\ry\r\127\r\131\r\135\r\137\r\140\r\141\r\142\r\143\r\146\r\147\r\148\r\149\r\150\r\151\r\152\r\153\r\154\r\157\r\159\r\160\r\161\r\162\r\167\r\169\r\170\r\171\r\172\r\184\r\192\r\200\r\204\r\208\r\210\r\213\r\215\r\216\r\218\r\219\r\220\r\221\r\222\r\223\r\224\r\226\r\231\r\233\r\235\r\237\r\243\r\249\r\255\014\005\014\011\014\017\014\018\014\030\014\031\014 \014!\014\"\014%\014&\014(\0140\0148\014F\014I\014L\014M\014O\014P\014S\014T\014U\014V\014W\014X\014Y\014h\014l\014p\014r\014u\014v\014y\014z\014{\014|\014}\014~\014\127\014\128\014\129\014\130\014\131\014\132\014\145\014\147\014\148\014\149\014\150\014\154\014\155\014\157\014\158\014\162\014\163\014\164\014\165\014\166\014\168\014\169\014\170\014\185\014\189\014\193\014\195\014\198\014\199\014\201\014\216\014\220\014\224\014\226\014\229\014\232\014\233\014\234\014\235\014\236\014\237\014\238\014\244\015\000\015\015\015\019\015\023\015\025\015\028\015\029\015 \015.\015/\0152\0156\0158\015;\015<\015>\015?\015@\015A\015B\015C\015D\015F\015G\015H\015I\015K\015P\015Q\015R\015S\015Y\015_\015e\015l\015q\015}\015\131\015\137\015\143\015\149\015\155\015\161\015\162\015\163\015\164\015\165\015\166\015\181\015\182\015\183\015\184\015\199\015\200\015\201\015\204\015\205\015\213\015\221\015\229\015\238\015\240\015\241\015\242\015\243\015\253\015\254\015\255\016\000\016\001\016\002\016\017\016\018\016\019\016\026\016\027\016\029\016#\016)\016/\0166\0167\0168\0169\016]\016_\016`\016a\016b\016c\016d\016e\016f\016g\016v\016w\016\140\016\160\016\165\016\166\016\168\016\170\016\171\016\172\016\173\016\174\016\175\016\178\016\179\016\181\016\183\016\186\016\188\016\190\016\192\016\194\016\196\016\197\016\199\016\201\016\202\016\211\016\213\016\215\016\217\016\219\016\221\016\222\016\223\016\227\016\228\016\232\016\234\016\235\016\237\016\238\016\240\016\241\016\245\016\247\016\249\016\250\017\002\017\004\017\r\017\014\017\017\017\019\017\028\017\031\017\"\017$\017&\017'\017(\017)\017*\017,\017-\0175\0178\0179\017<\017=\017>\017A\017B\017D\017E\017F\017I\017L\017M\017V\017Y\017a\017b\017k\017l\017m\017n\017o\017p\017q\017u\017\130\017\131\017\138\017\139\017\141\017\150\017\151\017\152\017\153\017\154\017\155\017\156\017\157\017\159\017\160\017\164\017\165\017\173\017\174\017\176\017\178\017\180\017\182\017\183\017\185\017\186\017\187\017\193\017\198\017\210\017\216\017\222\017\228\017\234\017\240\017\246\018\n\018\015\018\027\018!\018'\018-\0183\0189\018?\018S\018T\018U\018V\018W\018]\018c\018i\018p\018r\018\129\018\131\018\132\018\133\018\134\018\192\018\194\018\200\018\206\018\212\018\219\019\018\019\020\019\026\019 \019&\019-\019d\019f\019l\019r\019x\019\127\019\182\019\184\019\190\019\196\019\202\019\209\020\b\020\n\020\016\020\022\020\028\020#\020Z\020\\\020b\020h\020n\020u\020\172\020\174\020\180\020\186\020\192\020\199\020\254\021\000\021\006\021\012\021\018\021\025\021P\021R\021X\021^\021d\021k\021\162\021\164\021\170\021\176\021\182\021\189\021\244\021\246\021\252\022\002\022\b\022\015\022F\022H\022N\022T\022Z\022a\022\152\022\154\022\160\022\166\022\172\022\179\022\234\022\236\022\242\022\248\022\254\023\005\023<\023>\023D\023J\023P\023W\023\142\023\144\023\150\023\156\023\162\023\169\023\224\023\226\023\232\023\238\023\244\023\251\0242\0247\024C\024I\024O\024U\024[\024a\024g\024{\024\129\024\135\024\141\024\148\024\203\024\205\024\211\024\217\024\223\024\230\025\029\025\031\025%\025+\0251\0258\025o\025q\025w\025}\025\131\025\138\025\193\025\195\025\201\025\207\025\213\025\220\026\019\026\021\026\027\026!\026'\026.\026e\026g\026m\026s\026y\026\128\026\183\026\185\026\191\026\197\026\203\026\210\027\t\027\n\027\011\027\r\027\028\027\030\027$\027*\0270\0277\027n\027q\027r\027s\027t\027u\027v\027w\027\127\027\129\027\130\027\131\027\132\027\133\027\134\027\135\027\137\027\138\027\139\027\140\027\141\027\142\027\143\027\144\027\154\027\160\027\162\027\164\027\166\027\169\027\170\027\171\027\172\027\173\027\174\027\178\027\180\027\183\027\184\027\185\027\186\027\187\027\188\027\190\027\191\027\192\027\193\027\194\027\195\027\196\027\197\027\198\027\199\027\203\027\205\027\208\027\209\027\210\027\211\027\212\027\213\027\214\027\215\027\216\027\226\027\227\027\228\027\234\027\240\027\244\027\248\027\250\027\253\027\254\027\255\028\000\028\001\028\002\028\004\028\005\028\006\028\007\028\b\028\t\028\n\028\011\028\012\028\r\028\014\028\015\028\016\028\017\028\018\028\019\028J\028P\028V\028\\\028c\028\154\028\164\028\165\028\166\028\168\028\169\028\170\028\171\028\172\028\173\028\175\028\176\028\177\028\181\028\190\028\199\028\208\028\218\028\220\028\226\028\232\028\238\028\245\029,\029-\029/\0290\0297\0299\029D\029F\029L\029R\029X\029_\029\150\029\152\029\163\029\165\029\171\029\177\029\183\029\190\029\245\029\247\030\002\030\004\030\n\030\016\030\022\030\029\030T\030^\030`\030f\030l\030r\030y\030\176\030\180\030\187\030\194\030\201\030\209\030\210\030\211\030\213\030\219\030\225\030\231\030\238\031%\031]\031_\031e\031k\031q\031x\031\175\031\176\031\177\031\178\031\180\031\181\031\182\031\183\031\184\031\185\031\186\031\244\031\246\031\247 0 2 3 7 @ I R \\ ^ _ ` a b \156 \158 \159 \163 \164 \173 \182 \191 \201 \203 \204 \205 \206!\b!\n!\011!\012!\r!\014!\015!\030!\031! !#!$!'!*!,!-!.!/!0!F![!]!^!_!n!w!z!}!\128!\130!\136!\142!\148!\155!\210!\213!\216!\219!\221!\227!\233!\239!\246\"-\"0\"3\"6\"8\">\"D\"J\"Q\"\136\"\157\"\160\"\163\"\166\"\168\"\174\"\180\"\186\"\193\"\248\"\251\"\254#\001#\003#\t#\015#\021#\028#S#V#Y#\\#^#d#j#p#w#\174#\185#\194#\197#\200#\203#\205#\211#\217#\223#\230$\029$ $#$&$($.$4$:$A$x${$~$\129$\131$\137$\143$\149$\156$\211$\214$\216$\222$\228$\234$\241%(%7%9%:%;%r%s%t%u%v%w%x%y%z%\127%\130%\131%\132%\133%\134%\135%\136%\137%\138%\139%\140%\141%\142%\143%\144%\145%\146%\147%\148%\149%\150%\151%\152%\153%\154%\155%\156%\176%\182%\188%\194%\201&\000&\001&\002&\003&\004&\005&\007&\b&\t&\n&\017&\023&\029&%&-&5&>&@&F&L&R&Y&\144&\201&\203&\209&\215&\221&\228'\027'\028'\029'\030'1'7'='C'J'K'\130'\131'\146'\147'\148'\163'\168'\173'\178'\184'\191'\192'\246'\247'\248'\254(\004(\n(\017(H(K(M(N(O(P(Q(Z(c(l(v(x(y(z({(\181(\183(\184(\193(\202(\211(\221(\223(\224(\225(\226(\227)\029)\031) )))2);)E)F)G)O)P)R)[)\\)])e)f)\160)\161)\162)\170)\171)\173)\182)\183)\184)\192)\193)\197)\198)\199)\200)\201)\205)\206)\207)\208)\209)\210)\211)\212)\213)\214)\215)\216)\220)\222)\231)\232)\236)\237)\238)\242)\243)\244)\245)\246)\247)\248)\249)\253)\254)\255*\000*\001*\002*\004*\005*\006*\007*\b*\t*\n*\011*\012*\014*\016*\018*\021*\022*\026*\028*\030* *!*\"*&*'*(***+*,*.*3*5*9*=*?*D*F*K*M*N*S*U*Y*a*g*m*r*z*|*\127*\129*\130*\134*\136*\138*\139*\143*\145*\149*\151*\152*\153*\157*\163*\164*\165*\169*\175*\176*\177*\178*\179*\180*\181*\182*\183*\184*\185*\186*\187*\188*\189*\190*\191*\192*\193*\194*\200*\206*\212*\219+\018+\019+\028+%+.+8+:+;+<+=+>+x+z+{+\138+\140+\142+\144+\149+\150+\151+\159+\160+\163+\164+\166+\167+\168+\169+\170+\171+\173+\174+\176+\178+\184+\190+\196+\203,\002,\004,\005,\006,\007,\011,\012,\r,\014,\018,\019,\022,\023,\024,\025,\026,\027,#,$,%,',),*,+,,,-,.,/,0,1,2,3,4,5,6,7,8,9,;,F,G,H,I,J,K,L,M,Q,S,T,U,V,W,X,Y,\\,],_,`,a,b,d,e,f,g,i,k,m,o,q,r,t,w,y,z,{,|,},~,\127,\128,\130,\131,\133,\135,\136,\137,\138,\139,\140,\141,\142,\144,\145,\146,\147,\148,\149,\150,\151,\152,\153,\155,\156,\157,\158,\159,\161,\162,\164,\165,\166,\167,\168,\170,\171,\172,\173,\175,\176,\178,\179,\180,\181,\182,\183,\184,\185,\186,\188,\190,\191,\192,\194,\195,\196,\198,\199,\200,\201,\203,\205,\206,\207,\209,\210,\211,\213,\214,\216,\218,\219,\220,\221,\223,\224,\226,\227,\228,\229,\230,\231,\232,\233,\234,\235,\237,\238,\239,\240,\241,\242,\243,\244,\246,\247,\248,\249,\250,\251,\252,\253,\254-\t-\n-\011-\012-\r-\014-\016-\018-\019-\021-\023-\024-\025-\026-\027-\028-\029-\030-!-#-$-&-'-(-)-*-,-.-0-1-2-3-4-5-6-9-<-=-@-C-E-F-G-H-J-K-L-M-N-O-P-Q-R-V-X-Y-[-\\-]-^-_-`-c-f-h-i-j-k-m-n-o-p-q-r-s-t-u-v-w-y-z-{-}-\129-\130-\131-\132-\133-\134-\135-\137-\138-\139-\141-\142-\143-\145-\146-\147-\148-\149-\151-\152-\154-\155-\156-\158-\160-\161-\163-\164-\165-\167-\168-\169-\171-\172-\174-\175-\177-\178-\179-\180-\181-\184-\185-\186-\190-\191-\192-\193-\197-\200-\201-\202-\203-\204-\205-\211-\216-\219-\221-\222-\224-\225-\226-\227-\228-\230-\231-\232-\233-\234-\235-\237-\238-\239-\240-\241-\242-\243-\244-\245-\246-\247-\248-\249-\250-\252-\253-\254-\255.\001.\002.\003.\004.\005.\006.\007.\b.\t.\n.\011.\012.\r.\014.\015.\016.\017.\018.\019.\020.\021.\022.\023.\025.\026.\027.\028.\029.\030.\031.#.$.%.&.'.(.).*.+.-.../.0.1.2.3.4.5.6.7.8.9.<.=.>.?.@.A.B.C.D.E.F.G.H.I.J.L.N.O.P.Q.R.S.V.W.X.Y.Z.[.\\.]._.`.a.b.c.d.f.h.i.j.l.m.n.o.p.s.t.u.v.z.\130.\131.\137.\143.\144.\154.\160.\166.\167.\177.\182.\193.\194.\195.\197.\198.\199.\200.\201.\202.\203.\204.\206.\221.\222.\224.\239.\245/\t/\015/\021/\027/\"/Y/_/s/y/\127/\133/\140/\195/\200/\201/\202/\204/\205/\206/\207/\212/\215/\218/\221/\223/\225/\226/\227/\233/\235/\236/\237/\238/\239/\2510\0050\0160\0260\0310+01020H0T0Z0_0d0p0v0w0\1410\1530\1590\1630\1640\1650\1660\1670\1680\1690\1700\1720\1730\1750\1760\1770\1780\1790\1810\1820\1830\1840\1850\1860\1870\1880\1890\1900\1910\2010\2090\2130\2140\2150\2160\2170\2180\2190\2200\2210\2220\2230\2240\2250\2260\2270\2280\2290\2300\2310\2320\2340\2350\2360\2370\2380\2400\2410\2420\2430\2440\2470\2500\2520\2530\2541\0001\0011\0021\0031\0041\0061\0071\b1\n1\0111\0121\r1\0161\0171\0181\0191\0221\0231\0291\0311!1#1%1&1.1/1317191:1=1>1?1@1A1I1J1K1L1M1N1O1W1X1Y1Z1[1\\1]1^1_1`1a1c1d1f1g1h1i1j1k1s1t1u1v1w1y1\1301\1311\1321\1331\1341\1351\1361\1371\1381\1391\1411\1421\1431\1441\1451\1461\1471\1481\1491\1501\1511\1521\1531\1541\1551\1561\1571\1581\1591\1601\1611\1621\1631\1641\1651\1661\1671\1681\1691\1701\1711\1721\1731\1741\1821\1831\1841\1851\1861\1871\1881\1891\1901\1911\1921\1931\1941\1961\1971\1981\1991\2001\2011\2021\2031\2111\2121\2241\2341\2451\2552\0042\0162\0222\0232-292?2D2I2U2[2\\2r2~2\1322\1422\1472\1592\1652\1662\1882\2002\2062\2112\2162\2282\2342\2353\0013\r3\019313B3N3X3c3m3r3~3\1323\1333\1553\1673\1733\1783\1833\1953\2013\2023\2243\2363\2423\2524\0014\r4\0194\0204*464<4A4F4R4X4Y4o4{4\1294\1444\1554\1684\1734\1854\1914\1924\2144\2264\2324\2374\2424\2545\0045\0055\0275'5-5=5I5W5\\5h5n5o5\1335\1455\1515\1565\1615\1735\1795\1805\2025\2145\2205\2225\2295\2305\2325\2345\2355\2385\2455\2465\2495\2515\2526\0006\0026\0046\0056\t6\0116\0186\0256\0266\0276\0286\0296\0306\0316 6!6\"6#6$6%6&6'6(6)6*6+6.6/606162676;6=6>6?6@6A6B6C6D6E6F6G6H6I6J6K6L6N6O6P6Q6R6S6T6U6X6Y6Z6[6]6^6_6`6d6e6f6g6o6p6q6r6s6t6u6\1276\1286\1296\1306\1316\1326\1336\1356\1376\1386\1456\1526\1536\1546\1556\1566\1576\1606\1676\1746\1756\1766\1776\1786\1796\1826\1836\1846\1856\1866\1876\1886\1896\1906\1916\1926\1936\1946\1966\1976\1986\1996\2006\2016\2026\2036\2046\2056\2066\2076\2086\2096\2106\211")) and nullable = "\000\000\016\b\144\016\001\000\000\000\128p\128\000\031\255\192\000\224\000\000\003\255\248\000\000\004\004\001\004\000\0000 \000" @@ -103948,59 +103941,59 @@ end let use_file = fun lexer lexbuf -> - (Obj.magic (MenhirInterpreter.entry `Legacy 3049 lexer lexbuf) : (Parsetree.toplevel_phrase list)) + (Obj.magic (MenhirInterpreter.entry `Legacy 3048 lexer lexbuf) : (Parsetree.toplevel_phrase list)) and toplevel_phrase = fun lexer lexbuf -> - (Obj.magic (MenhirInterpreter.entry `Legacy 3021 lexer lexbuf) : (Parsetree.toplevel_phrase)) + (Obj.magic (MenhirInterpreter.entry `Legacy 3020 lexer lexbuf) : (Parsetree.toplevel_phrase)) and parse_val_longident = fun lexer lexbuf -> - (Obj.magic (MenhirInterpreter.entry `Legacy 3015 lexer lexbuf) : (Longident.t)) + (Obj.magic (MenhirInterpreter.entry `Legacy 3014 lexer lexbuf) : (Longident.t)) and parse_pattern = fun lexer lexbuf -> - (Obj.magic (MenhirInterpreter.entry `Legacy 3011 lexer lexbuf) : (Parsetree.pattern)) + (Obj.magic (MenhirInterpreter.entry `Legacy 3010 lexer lexbuf) : (Parsetree.pattern)) and parse_mty_longident = fun lexer lexbuf -> - (Obj.magic (MenhirInterpreter.entry `Legacy 3007 lexer lexbuf) : (Longident.t)) + (Obj.magic (MenhirInterpreter.entry `Legacy 3006 lexer lexbuf) : (Longident.t)) and parse_module_type = fun lexer lexbuf -> - (Obj.magic (MenhirInterpreter.entry `Legacy 3003 lexer lexbuf) : (Parsetree.module_type)) + (Obj.magic (MenhirInterpreter.entry `Legacy 3002 lexer lexbuf) : (Parsetree.module_type)) and parse_module_expr = fun lexer lexbuf -> - (Obj.magic (MenhirInterpreter.entry `Legacy 2999 lexer lexbuf) : (Parsetree.module_expr)) + (Obj.magic (MenhirInterpreter.entry `Legacy 2998 lexer lexbuf) : (Parsetree.module_expr)) and parse_mod_longident = fun lexer lexbuf -> - (Obj.magic (MenhirInterpreter.entry `Legacy 2995 lexer lexbuf) : (Longident.t)) + (Obj.magic (MenhirInterpreter.entry `Legacy 2994 lexer lexbuf) : (Longident.t)) and parse_mod_ext_longident = fun lexer lexbuf -> - (Obj.magic (MenhirInterpreter.entry `Legacy 2991 lexer lexbuf) : (Longident.t)) + (Obj.magic (MenhirInterpreter.entry `Legacy 2990 lexer lexbuf) : (Longident.t)) and parse_expression = fun lexer lexbuf -> - (Obj.magic (MenhirInterpreter.entry `Legacy 2987 lexer lexbuf) : (Parsetree.expression)) + (Obj.magic (MenhirInterpreter.entry `Legacy 2986 lexer lexbuf) : (Parsetree.expression)) and parse_core_type = fun lexer lexbuf -> - (Obj.magic (MenhirInterpreter.entry `Legacy 2983 lexer lexbuf) : (Parsetree.core_type)) + (Obj.magic (MenhirInterpreter.entry `Legacy 2982 lexer lexbuf) : (Parsetree.core_type)) and parse_constr_longident = fun lexer lexbuf -> - (Obj.magic (MenhirInterpreter.entry `Legacy 2979 lexer lexbuf) : (Longident.t)) + (Obj.magic (MenhirInterpreter.entry `Legacy 2978 lexer lexbuf) : (Longident.t)) and parse_any_longident = fun lexer lexbuf -> - (Obj.magic (MenhirInterpreter.entry `Legacy 2961 lexer lexbuf) : (Longident.t)) + (Obj.magic (MenhirInterpreter.entry `Legacy 2960 lexer lexbuf) : (Longident.t)) and interface = fun lexer lexbuf -> - (Obj.magic (MenhirInterpreter.entry `Legacy 2957 lexer lexbuf) : (Parsetree.signature)) + (Obj.magic (MenhirInterpreter.entry `Legacy 2956 lexer lexbuf) : (Parsetree.signature)) and implementation = fun lexer lexbuf -> @@ -104010,59 +104003,59 @@ module Incremental = struct let use_file = fun initial_position -> - (Obj.magic (MenhirInterpreter.start 3049 initial_position) : (Parsetree.toplevel_phrase list) MenhirInterpreter.checkpoint) + (Obj.magic (MenhirInterpreter.start 3048 initial_position) : (Parsetree.toplevel_phrase list) MenhirInterpreter.checkpoint) and toplevel_phrase = fun initial_position -> - (Obj.magic (MenhirInterpreter.start 3021 initial_position) : (Parsetree.toplevel_phrase) MenhirInterpreter.checkpoint) + (Obj.magic (MenhirInterpreter.start 3020 initial_position) : (Parsetree.toplevel_phrase) MenhirInterpreter.checkpoint) and parse_val_longident = fun initial_position -> - (Obj.magic (MenhirInterpreter.start 3015 initial_position) : (Longident.t) MenhirInterpreter.checkpoint) + (Obj.magic (MenhirInterpreter.start 3014 initial_position) : (Longident.t) MenhirInterpreter.checkpoint) and parse_pattern = fun initial_position -> - (Obj.magic (MenhirInterpreter.start 3011 initial_position) : (Parsetree.pattern) MenhirInterpreter.checkpoint) + (Obj.magic (MenhirInterpreter.start 3010 initial_position) : (Parsetree.pattern) MenhirInterpreter.checkpoint) and parse_mty_longident = fun initial_position -> - (Obj.magic (MenhirInterpreter.start 3007 initial_position) : (Longident.t) MenhirInterpreter.checkpoint) + (Obj.magic (MenhirInterpreter.start 3006 initial_position) : (Longident.t) MenhirInterpreter.checkpoint) and parse_module_type = fun initial_position -> - (Obj.magic (MenhirInterpreter.start 3003 initial_position) : (Parsetree.module_type) MenhirInterpreter.checkpoint) + (Obj.magic (MenhirInterpreter.start 3002 initial_position) : (Parsetree.module_type) MenhirInterpreter.checkpoint) and parse_module_expr = fun initial_position -> - (Obj.magic (MenhirInterpreter.start 2999 initial_position) : (Parsetree.module_expr) MenhirInterpreter.checkpoint) + (Obj.magic (MenhirInterpreter.start 2998 initial_position) : (Parsetree.module_expr) MenhirInterpreter.checkpoint) and parse_mod_longident = fun initial_position -> - (Obj.magic (MenhirInterpreter.start 2995 initial_position) : (Longident.t) MenhirInterpreter.checkpoint) + (Obj.magic (MenhirInterpreter.start 2994 initial_position) : (Longident.t) MenhirInterpreter.checkpoint) and parse_mod_ext_longident = fun initial_position -> - (Obj.magic (MenhirInterpreter.start 2991 initial_position) : (Longident.t) MenhirInterpreter.checkpoint) + (Obj.magic (MenhirInterpreter.start 2990 initial_position) : (Longident.t) MenhirInterpreter.checkpoint) and parse_expression = fun initial_position -> - (Obj.magic (MenhirInterpreter.start 2987 initial_position) : (Parsetree.expression) MenhirInterpreter.checkpoint) + (Obj.magic (MenhirInterpreter.start 2986 initial_position) : (Parsetree.expression) MenhirInterpreter.checkpoint) and parse_core_type = fun initial_position -> - (Obj.magic (MenhirInterpreter.start 2983 initial_position) : (Parsetree.core_type) MenhirInterpreter.checkpoint) + (Obj.magic (MenhirInterpreter.start 2982 initial_position) : (Parsetree.core_type) MenhirInterpreter.checkpoint) and parse_constr_longident = fun initial_position -> - (Obj.magic (MenhirInterpreter.start 2979 initial_position) : (Longident.t) MenhirInterpreter.checkpoint) + (Obj.magic (MenhirInterpreter.start 2978 initial_position) : (Longident.t) MenhirInterpreter.checkpoint) and parse_any_longident = fun initial_position -> - (Obj.magic (MenhirInterpreter.start 2961 initial_position) : (Longident.t) MenhirInterpreter.checkpoint) + (Obj.magic (MenhirInterpreter.start 2960 initial_position) : (Longident.t) MenhirInterpreter.checkpoint) and interface = fun initial_position -> - (Obj.magic (MenhirInterpreter.start 2957 initial_position) : (Parsetree.signature) MenhirInterpreter.checkpoint) + (Obj.magic (MenhirInterpreter.start 2956 initial_position) : (Parsetree.signature) MenhirInterpreter.checkpoint) and implementation = fun initial_position -> @@ -104073,9 +104066,9 @@ end # 5449 "src/ocaml/preprocess/parser_raw.mly" -# 104077 "src/ocaml/preprocess/parser_raw.ml" +# 104070 "src/ocaml/preprocess/parser_raw.ml" # 269 "" -# 104082 "src/ocaml/preprocess/parser_raw.ml" +# 104075 "src/ocaml/preprocess/parser_raw.ml" diff --git a/src/ocaml/preprocess/parser_recover.ml b/src/ocaml/preprocess/parser_recover.ml index 78cc2309a..71c9b70af 100644 --- a/src/ocaml/preprocess/parser_recover.ml +++ b/src/ocaml/preprocess/parser_recover.ml @@ -452,7 +452,7 @@ type decision = | Select of (int -> action list) let depth = - [|0;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;2;3;2;2;1;2;1;2;3;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;2;1;2;3;4;5;2;3;4;5;2;3;4;5;1;1;1;1;1;1;1;1;2;3;1;4;5;1;1;1;2;2;2;1;1;1;1;1;1;2;1;2;3;1;1;2;3;1;1;1;1;2;1;2;3;4;1;2;1;3;1;5;2;1;2;2;3;2;3;4;1;1;2;1;1;2;2;3;4;1;1;2;3;1;1;2;4;1;2;1;1;1;2;2;1;2;3;4;5;2;1;2;3;2;3;1;2;2;3;4;5;6;1;2;3;2;3;1;1;2;3;2;3;4;5;6;1;2;7;1;1;1;1;1;2;1;1;2;3;1;2;1;1;1;1;2;3;1;2;3;1;1;1;2;1;2;2;1;1;2;3;1;1;1;1;2;3;4;2;3;1;2;3;1;2;1;1;1;1;1;1;2;1;1;2;3;1;1;2;2;4;3;4;5;4;1;2;1;2;3;4;5;4;4;1;2;3;3;1;1;2;3;4;5;3;4;5;6;1;2;3;2;3;2;3;4;5;6;7;4;1;1;1;1;1;5;6;7;8;9;8;8;9;3;4;5;4;4;5;6;4;5;6;5;5;6;7;1;2;1;2;3;2;3;2;2;3;2;3;4;5;3;1;10;7;8;9;10;9;9;10;11;2;1;2;3;4;3;4;5;6;7;4;5;6;7;8;2;3;2;3;4;5;3;4;5;6;3;2;3;3;3;4;5;6;7;8;9;8;8;9;10;7;8;9;10;9;9;10;11;2;3;4;5;4;4;5;6;3;4;5;6;5;5;6;7;2;3;4;5;6;7;8;9;10;9;9;10;11;8;9;10;11;10;10;11;12;3;4;5;6;5;5;6;7;4;5;6;7;6;6;7;8;4;5;6;3;3;4;5;2;2;3;4;5;6;7;2;3;4;5;2;1;2;1;1;3;4;2;3;1;2;1;3;4;2;3;5;1;2;1;2;3;2;3;4;5;3;4;3;4;4;5;6;2;1;2;1;2;3;4;4;5;6;7;8;9;10;11;8;1;1;1;1;2;3;1;1;1;2;3;4;5;6;7;8;9;10;11;12;13;9;1;2;2;2;2;1;2;2;2;2;1;1;2;3;4;1;1;5;6;6;1;2;3;4;1;1;2;1;2;3;4;5;6;7;8;9;1;2;1;1;1;1;1;2;3;1;1;2;3;1;1;2;3;3;1;1;4;1;1;1;2;3;1;1;1;1;1;2;1;1;2;3;4;5;6;7;8;9;10;11;12;13;9;1;1;1;2;1;1;2;3;1;1;2;2;1;1;2;3;1;1;1;2;1;2;1;1;1;1;1;2;3;1;2;1;1;1;1;1;1;1;1;2;3;4;5;6;7;8;9;5;4;5;1;1;2;1;1;3;1;1;1;2;3;4;1;2;3;1;1;1;4;2;1;2;1;2;3;4;5;6;7;8;4;3;4;1;1;1;3;3;2;3;1;2;3;4;5;6;1;2;3;2;3;2;3;4;5;6;7;8;4;3;4;3;3;3;4;5;2;3;2;3;2;4;5;4;5;3;4;2;3;1;2;3;3;4;4;2;3;1;4;2;3;4;5;1;6;5;2;2;3;2;2;3;8;9;8;1;8;2;3;2;1;1;2;3;4;5;6;7;8;4;3;4;3;3;2;3;4;5;6;7;8;9;5;4;5;4;4;1;2;3;4;5;6;7;8;9;5;4;5;4;4;1;1;2;1;2;3;4;5;1;2;6;3;4;2;3;4;5;3;4;2;1;2;3;4;1;1;2;3;4;5;1;2;3;1;1;1;1;1;1;1;1;1;2;3;1;1;1;1;1;2;3;1;2;3;1;2;3;1;1;2;1;2;3;1;1;2;1;1;2;3;3;4;5;6;4;4;2;2;3;2;3;1;2;3;4;5;6;3;4;2;3;4;5;6;3;4;5;1;2;1;2;1;2;3;4;5;3;4;5;6;1;3;4;1;1;2;2;3;4;5;6;7;2;1;2;3;4;5;3;3;4;3;4;2;3;1;2;3;4;5;6;7;8;3;4;5;5;6;7;8;9;3;4;5;3;4;2;1;1;1;2;4;1;2;3;5;6;1;2;3;4;5;6;7;8;9;10;7;6;1;1;1;1;1;2;1;1;2;3;4;1;1;4;5;6;1;2;1;2;2;3;1;2;3;1;2;1;2;3;4;1;5;2;1;2;3;1;2;4;5;4;5;6;2;3;4;5;1;1;2;3;4;5;2;2;3;4;2;3;4;1;2;3;3;1;1;1;5;4;5;2;3;4;2;3;4;1;3;2;3;3;6;1;4;5;2;3;4;5;5;6;3;4;1;5;2;3;2;3;3;4;5;5;6;2;2;3;4;1;1;7;8;9;10;1;1;1;1;2;3;4;1;2;3;4;5;1;1;2;3;4;2;3;2;3;2;3;1;2;3;4;5;1;2;3;4;5;1;1;1;2;3;4;5;2;1;2;1;2;2;3;2;3;2;3;4;5;1;2;3;4;5;6;7;4;3;4;1;1;1;1;3;4;5;6;2;3;1;2;1;2;3;1;1;2;3;4;5;6;3;2;3;4;5;6;3;2;1;1;2;1;2;3;4;5;2;2;3;4;5;3;2;3;4;5;6;3;2;3;4;5;6;3;2;3;4;5;6;3;2;3;4;5;6;3;2;3;4;5;6;3;2;3;4;5;6;3;2;3;4;5;6;3;2;3;4;5;6;3;2;3;4;5;6;3;2;3;4;5;6;3;2;3;4;5;6;3;2;3;4;5;6;3;2;3;4;5;6;3;2;3;4;5;6;3;2;3;4;5;6;3;2;3;4;5;6;3;2;3;4;5;6;3;2;3;4;5;6;3;2;3;4;5;6;3;2;3;4;5;6;3;2;3;4;5;6;3;2;3;4;5;6;7;4;3;4;3;4;5;6;3;2;3;4;5;6;3;1;2;1;2;3;4;1;2;5;1;1;2;2;3;1;4;1;1;1;2;3;4;5;6;7;8;7;8;9;3;4;5;6;7;6;7;8;2;3;4;3;4;5;2;2;3;4;1;2;3;4;5;4;5;6;2;3;4;1;2;3;2;3;4;5;6;7;8;4;3;4;3;3;2;3;2;3;1;2;3;4;5;6;7;8;7;8;9;3;4;5;4;5;6;3;3;4;5;1;3;1;2;4;2;3;3;4;5;3;4;5;3;4;5;6;7;1;2;3;5;6;7;5;6;7;3;1;2;2;3;4;5;6;7;8;9;10;7;3;4;5;6;7;8;9;10;7;3;4;5;6;7;8;9;10;7;2;3;4;5;6;7;8;9;10;7;3;4;5;6;7;8;9;10;7;3;4;5;6;7;8;9;10;7;3;4;5;6;7;8;9;10;11;12;9;5;6;7;8;9;10;11;12;9;5;6;7;8;9;10;11;12;9;3;4;5;6;7;8;5;1;2;2;1;2;6;4;5;3;4;5;3;4;5;2;6;1;1;7;8;9;10;11;5;1;2;3;2;3;4;2;3;1;1;4;5;3;4;5;6;7;1;2;3;4;5;2;1;2;2;1;2;3;4;5;6;7;8;5;2;3;4;5;6;7;8;5;2;3;4;5;6;7;8;5;2;1;2;3;4;5;2;1;2;3;4;5;6;7;8;9;10;7;2;3;4;5;6;7;4;3;3;1;8;9;2;1;4;4;5;4;5;6;3;4;5;6;7;8;9;4;4;5;4;5;6;3;4;4;5;6;7;8;9;4;5;4;5;6;3;4;5;3;1;2;3;1;1;2;3;4;5;1;4;5;1;2;3;3;7;6;7;8;9;6;7;1;3;4;5;2;3;3;2;4;4;5;6;7;8;9;10;11;12;13;14;11;6;7;8;9;10;11;8;4;4;5;2;3;4;5;6;7;8;5;4;5;4;5;6;7;4;2;3;4;5;6;2;3;2;2;3;4;1;2;3;4;2;3;1;2;3;2;3;4;5;2;2;3;4;2;2;3;2;3;4;5;6;7;2;3;2;3;4;2;3;4;5;6;7;2;2;3;2;3;4;4;5;6;7;8;8;9;10;8;9;10;10;11;12;4;5;5;6;7;5;6;7;7;8;9;6;7;8;3;4;5;6;7;2;3;4;1;2;3;4;5;1;2;1;2;3;4;3;4;5;6;7;8;1;2;1;2;3;1;2;3;4;1;1;2;3;1;5;1;1;1;1;1;2;3;1;2;3;4;5;6;7;8;1;2;3;1;2;1;1;2;3;1;2;3;4;5;3;4;2;1;2;1;1;2;3;4;5;6;5;6;7;8;6;7;8;9;6;2;3;4;5;6;4;2;3;4;2;6;7;8;9;1;2;3;1;4;5;6;2;5;6;3;4;5;2;2;3;4;5;6;3;2;2;3;4;5;6;7;2;2;3;2;3;4;2;2;3;4;5;6;6;7;8;2;3;3;4;4;5;4;5;6;2;4;5;6;7;8;9;6;1;2;3;4;5;6;2;3;4;5;1;2;3;4;5;1;2;6;7;2;3;4;5;6;7;1;2;3;4;5;6;8;4;5;6;1;2;1;2;3;4;1;2;1;2;3;4;1;2;1;2;3;4;5;1;2;3;6;7;8;1;2;9;10;1;1;2;3;4;5;1;1;2;3;6;7;8;5;6;7;1;2;2;1;2;3;4;1;5;1;1;2;3;2;3;6;7;8;1;2;1;2;3;3;1;2;1;2;1;2;3;4;5;6;7;1;2;1;2;1;2;3;4;5;6;7;1;2;1;2;3;4;5;6;1;2;3;4;2;3;1;1;1;7;2;3;4;5;6;3;4;1;2;1;2;3;3;4;4;5;1;2;1;1;2;9;10;1;2;3;4;5;6;7;8;9;11;2;3;4;5;6;1;1;1;2;3;1;1;2;1;3;4;5;6;5;6;7;2;3;1;1;2;1;2;2;3;4;5;2;3;4;5;4;5;6;1;1;2;1;3;4;5;6;7;8;9;10;11;6;7;8;5;2;3;1;1;2;1;2;2;3;4;5;2;3;4;5;6;7;8;9;10;5;6;7;4;1;2;3;4;1;2;3;1;1;2;3;4;5;6;7;2;3;4;5;6;1;2;3;4;1;2;1;2;1;2;1;1;2;1;3;2;2;3;2;3;7;3;4;5;6;2;3;4;5;2;3;3;1;2;3;4;1;1;1;2;1;2;3;1;2;3;1;4;1;3;5;4;5;4;1;2;5;6;2;3;4;5;1;2;3;4;4;5;1;2;1;1;2;2;1;2;3;4;1;2;7;8;1;2;3;4;5;6;7;8;9;1;1;1;1;1;1;1;1;2;1;1;1;2;1;2;3;4;5;1;1;2;3;4;5;6;7;8;9;1;2;1;1;1;1;2;3;1;1;1;3;4;3;4;2;3;4;2;3;4;10;6;7;8;1;2;3;4;5;3;4;9;10;2;2;1;1;1;1;1;2;3;4;2;3;4;5;6;7;8;9;5;6;7;8;9;3;4;5;7;8;8;9;8;8;2;3;4;5;6;7;8;9;5;4;5;4;4;2;3;3;4;5;4;5;6;2;3;4;5;2;2;2;3;7;8;7;8;9;10;7;2;3;4;5;6;7;8;5;4;5;4;5;6;7;4;4;5;6;2;3;4;1;2;3;4;5;6;1;7;1;2;3;2;2;3;2;3;4;5;6;7;8;7;7;8;9;6;7;8;9;8;8;9;10;1;2;3;4;2;3;4;2;1;2;1;1;2;1;1;2;2;1;1;2;3;1;2;3;1;2;1;2;3;4;5;6;4;5;6;4;4;3;4;5;3;4;5;3;3;1;8;9;10;11;6;7;8;9;10;2;1;1;4;5;6;7;8;9;10;5;6;7;8;9;1;1;2;3;4;5;6;2;3;4;5;1;2;3;4;5;6;7;8;2;3;4;5;6;7;4;5;6;7;8;9;1;2;3;4;5;6;7;8;10;1;2;1;2;3;4;4;5;6;1;2;7;8;1;2;3;5;6;1;1;2;3;2;1;2;1;1;2;3;4;1;2;3;4;5;6;7;8;9;1;2;3;4;5;6;7;8;9;10;1;1;1;1;1;1;1;1;2;1;1;2;1;2;3;4;5;6;1;2;1;1;2;3;4;5;6;7;8;9;10;2;1;1;2;2;5;6;4;5;6;7;8;9;10;9;9;10;11;8;9;10;11;10;10;11;12;3;4;5;6;5;5;6;7;4;5;6;7;6;6;7;8;3;4;5;6;7;8;9;10;11;10;10;11;12;9;10;11;12;11;11;12;13;4;5;6;7;6;6;7;8;5;6;7;8;7;7;8;9;4;5;6;7;8;9;8;8;9;10;7;8;9;10;9;9;10;11;3;4;5;6;7;8;7;7;8;9;6;7;8;9;8;8;9;10;3;4;6;2;2;3;1;4;5;4;5;6;7;5;6;7;8;5;2;3;6;7;8;3;4;3;4;5;6;7;1;2;1;0;1;2;1;0;1;2;3;1;1;1;2;3;4;5;3;3;1;1;1;1;2;0;1;1;2;0;1;1;2;0;1;2;1;0;1;1;2;0;1;1;2;0;1;1;2;0;1;1;2;0;1;1;2;0;1;2;1;0;1;2;1;1;2;0;1;2;3;3;3;3;3;3;1;2;3;3;3;3;3;3;1;1;1;2;1;2;1;2;3;1;2;0;1;1;1;2;2;2;3;4;2;1;1;2;3;4;1;2;|] + [|0;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;2;3;2;2;1;2;1;2;3;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;2;1;2;3;4;5;2;3;4;5;2;3;4;5;1;1;1;1;1;1;1;1;2;3;1;4;5;1;1;1;2;2;2;1;1;1;1;1;1;2;1;2;3;1;1;2;3;1;1;1;1;2;1;2;3;4;1;2;1;3;1;5;2;1;2;2;3;2;3;4;1;1;2;1;1;2;2;3;4;1;1;2;3;1;1;2;4;1;2;1;1;1;2;2;1;2;3;4;5;2;1;2;3;2;3;1;2;2;3;4;5;6;1;2;3;2;3;1;1;2;3;2;3;4;5;6;1;2;7;1;1;1;1;1;2;1;1;2;3;1;2;1;1;1;1;2;3;1;2;3;1;1;1;2;1;2;2;1;1;2;3;1;1;1;1;2;3;4;2;3;1;2;3;1;2;1;1;1;1;1;1;2;1;1;2;3;1;1;2;2;4;3;4;5;4;1;2;1;2;3;4;5;4;4;1;2;3;3;1;1;2;3;4;5;3;4;5;6;1;2;3;2;3;2;3;4;5;6;7;4;1;1;1;1;1;5;6;7;8;9;8;8;9;3;4;5;4;4;5;6;4;5;6;5;5;6;7;1;2;1;2;3;2;3;2;2;3;2;3;4;5;3;1;10;7;8;9;10;9;9;10;11;2;1;2;3;4;3;4;5;6;7;4;5;6;7;8;2;3;2;3;4;5;3;4;5;6;3;2;3;3;3;4;5;6;7;8;9;8;8;9;10;7;8;9;10;9;9;10;11;2;3;4;5;4;4;5;6;3;4;5;6;5;5;6;7;2;3;4;5;6;7;8;9;10;9;9;10;11;8;9;10;11;10;10;11;12;3;4;5;6;5;5;6;7;4;5;6;7;6;6;7;8;4;5;6;3;3;4;5;2;2;3;4;5;6;7;2;3;4;5;2;1;2;1;1;3;4;2;3;1;2;1;3;4;2;3;5;1;2;1;2;3;2;3;4;5;3;4;3;4;4;5;6;2;1;2;1;2;3;4;4;5;6;7;8;9;10;11;8;1;1;1;1;2;3;1;1;1;2;3;4;5;6;7;8;9;10;11;12;13;9;1;2;2;2;2;1;2;2;2;2;1;1;2;3;4;1;1;5;6;6;1;2;3;4;1;1;2;1;2;3;4;5;6;7;8;9;1;2;1;1;1;1;1;2;3;1;1;2;3;1;1;2;3;3;1;1;4;1;1;1;2;3;1;1;1;1;1;2;1;1;2;3;4;5;6;7;8;9;10;11;12;13;9;1;1;1;2;1;1;2;3;1;1;2;2;1;1;2;3;1;1;1;2;1;2;1;1;1;1;1;2;3;1;2;1;1;1;1;1;1;1;1;2;3;4;5;6;7;8;9;5;4;5;1;1;2;1;1;3;1;1;1;2;3;4;1;2;3;1;1;1;4;2;1;2;1;2;3;4;5;6;7;8;4;3;4;1;1;1;3;3;2;3;1;2;3;4;5;6;1;2;3;2;3;2;3;4;5;6;7;8;4;3;4;3;3;3;4;5;2;3;2;3;2;4;5;4;5;3;4;2;3;1;2;3;3;4;4;2;3;1;4;2;3;4;5;1;6;5;2;2;3;2;2;3;8;9;8;1;8;2;3;2;1;1;2;3;4;5;6;7;8;4;3;4;3;3;2;3;4;5;6;7;8;9;5;4;5;4;4;1;2;3;4;5;6;7;8;9;5;4;5;4;4;1;1;2;1;2;3;4;5;1;2;6;3;4;2;3;4;5;3;4;2;1;2;3;4;1;1;2;3;4;5;1;2;3;1;1;1;1;1;1;1;1;1;2;3;1;1;1;1;1;2;3;1;2;3;1;2;3;1;1;2;1;2;3;1;1;2;1;1;2;3;3;4;5;6;4;4;2;2;3;2;3;1;2;3;4;5;6;3;4;2;3;4;5;6;3;4;5;1;2;1;2;1;2;3;4;5;3;4;5;6;1;3;4;1;1;2;2;3;4;5;6;7;2;1;2;3;4;5;3;3;4;3;4;2;3;1;2;3;4;5;6;7;8;3;4;5;5;6;7;8;9;3;4;5;3;4;2;1;1;1;2;4;1;2;3;5;6;1;2;3;4;5;6;7;8;9;10;7;6;1;1;1;1;1;2;1;1;2;3;4;1;1;4;5;6;1;2;1;2;2;3;1;2;3;1;2;1;2;3;4;1;5;2;1;2;3;1;2;4;5;4;5;6;2;3;4;5;1;1;2;3;4;5;2;2;3;4;2;3;4;1;2;3;3;1;1;1;5;4;5;2;3;4;2;3;4;1;3;2;3;3;6;1;4;5;2;3;4;5;5;6;3;4;1;5;2;3;2;3;3;4;5;5;6;2;2;3;4;1;1;7;8;9;10;1;1;1;1;2;3;4;1;2;3;4;5;1;1;2;3;4;2;3;2;3;2;3;1;2;3;4;5;1;2;3;4;5;1;1;1;2;3;4;5;2;1;2;1;2;2;3;2;3;2;3;4;5;1;2;3;4;5;6;7;4;3;4;1;1;1;1;3;4;5;6;2;3;1;2;1;2;3;1;1;2;3;4;5;6;3;2;3;4;5;6;3;2;1;1;2;1;2;3;4;5;2;2;3;4;5;3;2;3;4;5;6;3;2;3;4;5;6;3;2;3;4;5;6;3;2;3;4;5;6;3;2;3;4;5;6;3;2;3;4;5;6;3;2;3;4;5;6;3;2;3;4;5;6;3;2;3;4;5;6;3;2;3;4;5;6;3;2;3;4;5;6;3;2;3;4;5;6;3;2;3;4;5;6;3;2;3;4;5;6;3;2;3;4;5;6;3;2;3;4;5;6;3;2;3;4;5;6;3;2;3;4;5;6;3;2;3;4;5;6;3;2;3;4;5;6;3;2;3;4;5;6;3;2;3;4;5;6;7;4;3;4;3;4;5;6;3;2;3;4;5;6;3;1;2;1;2;3;4;1;2;5;1;1;2;2;3;1;4;1;1;1;2;3;4;5;6;7;8;7;8;9;3;4;5;6;7;6;7;8;2;3;4;3;4;5;2;2;3;4;1;2;3;4;5;4;5;6;2;3;4;1;2;3;2;3;4;5;6;7;8;4;3;4;3;3;2;3;2;3;1;2;3;4;5;6;7;8;7;8;9;3;4;5;4;5;6;3;3;4;5;1;3;1;2;4;2;3;3;4;5;3;4;5;3;4;5;6;7;1;2;3;5;6;7;5;6;7;3;1;2;2;3;4;5;6;7;8;9;10;7;3;4;5;6;7;8;9;10;7;3;4;5;6;7;8;9;10;7;2;3;4;5;6;7;8;9;10;7;3;4;5;6;7;8;9;10;7;3;4;5;6;7;8;9;10;7;3;4;5;6;7;8;9;10;11;12;9;5;6;7;8;9;10;11;12;9;5;6;7;8;9;10;11;12;9;3;4;5;6;7;8;5;1;2;2;1;2;6;4;5;3;4;5;3;4;5;2;6;1;1;7;8;9;10;11;5;1;2;3;2;3;4;2;3;1;1;4;5;3;4;5;6;7;1;2;3;4;5;2;1;2;2;1;2;3;4;5;6;7;8;5;2;3;4;5;6;7;8;5;2;3;4;5;6;7;8;5;2;1;2;3;4;5;2;1;2;3;4;5;6;7;8;9;10;7;2;3;4;5;6;7;4;3;3;1;8;9;2;1;4;4;5;4;5;6;3;4;5;6;7;8;9;4;4;5;4;5;6;3;4;4;5;6;7;8;9;4;5;4;5;6;3;4;5;3;1;2;3;1;1;2;3;4;5;1;4;5;1;2;3;3;7;6;7;8;9;6;7;1;3;4;5;2;3;3;2;4;4;5;6;7;8;9;10;11;12;13;14;11;6;7;8;9;10;11;8;4;4;5;2;3;4;5;6;7;8;5;4;5;4;5;6;7;4;2;3;4;5;6;2;3;2;2;3;4;1;2;3;4;2;3;1;2;3;2;3;4;5;2;2;3;4;2;2;3;2;3;4;5;6;7;2;3;2;3;4;2;3;4;5;6;7;2;2;3;2;3;4;4;5;6;7;8;8;9;10;8;9;10;10;11;12;4;5;5;6;7;5;6;7;7;8;9;6;7;8;3;4;5;6;7;2;3;4;1;2;3;4;5;1;2;1;2;3;4;3;4;5;6;7;8;1;2;1;2;3;1;2;3;4;1;1;2;3;1;5;1;1;1;1;1;2;3;1;2;3;4;5;6;7;8;1;2;3;1;2;1;1;2;3;1;2;3;4;5;3;4;2;1;2;1;1;2;3;4;5;6;5;6;7;8;6;7;8;9;6;2;3;4;5;6;4;2;3;4;2;6;7;8;9;1;2;3;1;4;5;6;2;5;6;3;4;5;2;2;3;4;5;6;3;2;2;3;4;5;6;7;2;2;3;2;3;4;2;2;3;4;5;6;6;7;8;2;3;3;4;4;5;4;5;6;2;4;5;6;7;8;9;6;1;2;3;4;5;6;2;3;4;5;1;2;3;4;5;1;2;6;7;2;3;4;5;6;7;1;2;3;4;5;6;8;4;5;6;1;2;1;2;3;4;1;2;1;2;3;4;1;2;1;2;3;4;5;1;2;3;6;7;8;1;2;9;10;1;1;2;3;4;5;1;1;2;3;6;7;8;5;6;7;1;2;2;1;2;3;4;1;5;1;1;2;3;2;3;6;7;8;1;2;1;2;3;3;1;2;1;2;1;2;3;4;5;6;7;1;2;1;2;1;2;3;4;5;6;7;1;2;1;2;3;4;5;6;1;2;3;4;2;3;1;1;1;7;2;3;4;5;6;3;4;1;2;1;2;3;3;4;4;5;1;2;1;1;2;9;10;1;2;3;4;5;6;7;8;9;11;2;3;4;5;6;1;1;1;2;3;1;1;2;1;3;4;5;6;5;6;7;2;3;1;1;2;1;2;2;3;4;5;2;3;4;5;4;5;6;1;1;2;1;3;4;5;6;7;8;9;10;11;6;7;8;5;2;3;1;1;2;1;2;2;3;4;5;2;3;4;5;6;7;8;9;10;5;6;7;4;1;2;3;4;1;2;3;1;1;2;3;4;5;6;7;2;3;4;5;6;1;2;3;4;1;2;1;2;1;2;1;1;2;1;3;2;2;3;2;3;7;3;4;5;6;2;3;4;5;2;3;3;1;2;3;4;1;1;1;2;1;2;3;1;2;3;1;4;1;3;5;4;5;4;1;2;5;6;2;3;4;5;1;2;3;4;4;5;1;2;1;1;2;2;1;2;3;4;1;2;7;8;1;2;3;4;5;6;7;8;9;1;1;1;1;1;1;1;1;2;1;1;1;2;1;2;3;4;5;1;1;2;3;4;5;6;7;8;9;1;2;1;1;1;1;2;3;1;1;1;3;4;3;4;2;3;4;2;3;4;10;6;7;8;1;2;3;4;5;3;4;9;10;2;2;1;1;1;1;1;2;3;4;2;3;4;5;6;7;8;9;5;6;7;8;9;3;4;5;7;8;8;9;8;8;2;3;4;5;6;7;8;9;5;4;5;4;4;2;3;3;4;5;4;5;6;2;3;4;5;2;2;2;3;7;8;7;8;9;10;7;2;3;4;5;6;7;8;5;4;5;4;5;6;7;4;4;5;6;2;3;4;1;2;3;4;5;6;1;7;1;2;3;2;2;3;2;3;4;5;6;7;8;7;7;8;9;6;7;8;9;8;8;9;10;1;2;3;4;2;3;4;2;1;2;1;1;2;1;1;2;2;1;1;2;3;1;2;3;1;2;1;2;3;4;5;6;4;5;6;4;4;3;4;5;3;4;5;3;3;1;8;9;10;11;6;7;8;9;10;2;1;1;4;5;6;7;8;9;10;5;6;7;8;9;1;1;2;3;4;5;6;2;3;4;5;1;2;3;4;5;6;7;8;2;3;4;5;6;7;4;5;6;7;8;9;1;2;3;4;5;6;7;8;10;1;2;1;2;3;4;4;5;6;1;2;7;8;1;2;3;5;6;1;1;2;3;2;1;2;1;1;2;3;4;1;2;3;4;5;6;7;8;9;1;2;3;4;5;6;7;8;9;10;1;1;1;1;1;1;1;1;2;1;1;2;1;2;3;4;5;6;1;2;1;1;2;3;4;5;6;7;8;9;10;2;1;1;2;2;5;6;4;5;6;7;8;9;10;9;9;10;11;8;9;10;11;10;10;11;12;3;4;5;6;5;5;6;7;4;5;6;7;6;6;7;8;3;4;5;6;7;8;9;10;11;10;10;11;12;9;10;11;12;11;11;12;13;4;5;6;7;6;6;7;8;5;6;7;8;7;7;8;9;4;5;6;7;8;9;8;8;9;10;7;8;9;10;9;9;10;11;3;4;5;6;7;8;7;7;8;9;6;7;8;9;8;8;9;10;3;6;2;2;3;1;4;5;4;5;6;7;5;6;7;8;5;2;3;6;7;8;3;4;3;4;5;6;7;1;2;1;0;1;2;1;0;1;2;3;1;1;1;2;3;4;5;3;3;1;1;1;1;2;0;1;1;2;0;1;1;2;0;1;2;1;0;1;1;2;0;1;1;2;0;1;1;2;0;1;1;2;0;1;1;2;0;1;2;1;0;1;2;1;1;2;0;1;2;3;3;3;3;3;3;1;2;3;3;3;3;3;3;1;1;1;2;1;2;1;2;3;1;2;0;1;1;1;2;2;2;3;4;2;1;1;2;3;4;1;2;|] let can_pop (type a) : a terminal -> bool = function | T_WITH -> true @@ -682,1832 +682,1831 @@ let recover = let r100 = Sub (r60) :: r99 in let r101 = [R 765] in let r102 = [R 313] in - let r103 = R 688 :: r102 in - let r104 = [R 1271] in - let r105 = [R 857] in - let r106 = Sub (r26) :: r105 in - let r107 = [R 1215] in - let r108 = Sub (r106) :: r107 in - let r109 = S (T T_STAR) :: r108 in - let r110 = Sub (r26) :: r109 in - let r111 = [R 893] in - let r112 = R 462 :: r111 in - let r113 = R 688 :: r112 in - let r114 = [R 552] in - let r115 = S (T T_END) :: r114 in - let r116 = Sub (r113) :: r115 in - let r117 = [R 587] in - let r118 = S (T T_LIDENT) :: r117 in - let r119 = [R 689] in - let r120 = S (T T_LIDENT) :: r104 in - let r121 = [R 515] in - let r122 = Sub (r120) :: r121 in - let r123 = [R 1264] in - let r124 = Sub (r122) :: r123 in - let r125 = [R 117] in - let r126 = S (T T_FALSE) :: r125 in - let r127 = [R 121] in - let r128 = Sub (r126) :: r127 in - let r129 = [R 295] in - let r130 = R 454 :: r129 in - let r131 = R 288 :: r130 in - let r132 = Sub (r128) :: r131 in - let r133 = [R 775] in - let r134 = Sub (r132) :: r133 in - let r135 = [R 901] in - let r136 = R 460 :: r135 in - let r137 = Sub (r134) :: r136 in - let r138 = R 753 :: r137 in - let r139 = S (T T_PLUSEQ) :: r138 in - let r140 = Sub (r124) :: r139 in - let r141 = R 1267 :: r140 in - let r142 = R 454 :: r141 in - let r143 = [R 902] in - let r144 = R 460 :: r143 in - let r145 = Sub (r134) :: r144 in - let r146 = R 753 :: r145 in - let r147 = S (T T_PLUSEQ) :: r146 in - let r148 = Sub (r124) :: r147 in - let r149 = [R 1266] in - let r150 = R 454 :: r149 in - let r151 = S (T T_UNDERSCORE) :: r150 in - let r152 = R 1273 :: r151 in - let r153 = [R 708] in - let r154 = Sub (r152) :: r153 in - let r155 = [R 849] in - let r156 = Sub (r154) :: r155 in - let r157 = [R 1269] in - let r158 = S (T T_RPAREN) :: r157 in - let r159 = [R 710] in - let r160 = [R 585] in - let r161 = S (T T_LIDENT) :: r160 in - let r162 = [R 312] in - let r163 = [R 764] in - let r164 = Sub (r78) :: r163 in - let r165 = [R 455] in - let r166 = [R 1265] in - let r167 = R 454 :: r166 in - let r168 = Sub (r60) :: r167 in - let r169 = [R 709] in - let r170 = [R 850] in - let r171 = [R 311] in - let r172 = [R 299] in - let r173 = R 460 :: r172 in - let r174 = R 820 :: r173 in - let r175 = R 1262 :: r174 in - let r176 = [R 607] in - let r177 = S (T T_DOTDOT) :: r176 in - let r178 = [R 1263] in - let r179 = [R 608] in - let r180 = [R 120] in - let r181 = S (T T_RPAREN) :: r180 in - let r182 = [R 116] in - let r183 = [R 620] in - let r184 = [R 154] in - let r185 = S (T T_RBRACKET) :: r184 in - let r186 = Sub (r17) :: r185 in - let r187 = [R 271] in - let r188 = [R 969] in - let r189 = [R 519] in - let r190 = [R 484] in - let r191 = Sub (r3) :: r190 in - let r192 = S (T T_MINUSGREATER) :: r191 in - let r193 = S (N N_pattern) :: r192 in - let r194 = [R 836] in - let r195 = Sub (r193) :: r194 in - let r196 = [R 171] in - let r197 = Sub (r195) :: r196 in - let r198 = S (T T_WITH) :: r197 in - let r199 = Sub (r3) :: r198 in - let r200 = R 454 :: r199 in - let r201 = [R 798] in - let r202 = S (N N_fun_expr) :: r201 in - let r203 = S (T T_COMMA) :: r202 in - let r204 = [R 1259] in - let r205 = Sub (r34) :: r204 in - let r206 = S (T T_COLON) :: r205 in - let r207 = [R 803] in - let r208 = S (N N_fun_expr) :: r207 in - let r209 = S (T T_COMMA) :: r208 in - let r210 = S (T T_RPAREN) :: r209 in - let r211 = Sub (r206) :: r210 in - let r212 = [R 1261] in - let r213 = [R 874] in - let r214 = Sub (r34) :: r213 in - let r215 = [R 845] in - let r216 = Sub (r214) :: r215 in - let r217 = [R 146] in - let r218 = S (T T_RBRACKET) :: r217 in - let r219 = Sub (r216) :: r218 in - let r220 = [R 145] in - let r221 = S (T T_RBRACKET) :: r220 in - let r222 = [R 144] in - let r223 = S (T T_RBRACKET) :: r222 in - let r224 = [R 581] in - let r225 = Sub (r60) :: r224 in - let r226 = S (T T_BACKQUOTE) :: r225 in - let r227 = [R 1238] in - let r228 = R 454 :: r227 in - let r229 = Sub (r226) :: r228 in - let r230 = [R 141] in - let r231 = S (T T_RBRACKET) :: r230 in - let r232 = [R 148] in - let r233 = S (T T_RPAREN) :: r232 in - let r234 = Sub (r106) :: r233 in - let r235 = S (T T_STAR) :: r234 in - let r236 = [R 149] in - let r237 = S (T T_RPAREN) :: r236 in - let r238 = Sub (r106) :: r237 in - let r239 = S (T T_STAR) :: r238 in - let r240 = Sub (r26) :: r239 in - let r241 = [R 501] in - let r242 = S (T T_LIDENT) :: r241 in - let r243 = [R 96] in - let r244 = Sub (r242) :: r243 in - let r245 = [R 34] in - let r246 = [R 502] in - let r247 = S (T T_LIDENT) :: r246 in - let r248 = S (T T_DOT) :: r247 in - let r249 = S (T T_UIDENT) :: r57 in - let r250 = [R 523] in - let r251 = Sub (r249) :: r250 in - let r252 = [R 524] in - let r253 = S (T T_RPAREN) :: r252 in - let r254 = [R 504] in - let r255 = S (T T_UIDENT) :: r254 in - let r256 = S (T T_DOT) :: r255 in - let r257 = S (T T_LBRACKETGREATER) :: r221 in - let r258 = [R 37] in - let r259 = Sub (r257) :: r258 in - let r260 = [R 1171] in - let r261 = [R 589] in - let r262 = S (T T_LIDENT) :: r261 in - let r263 = [R 25] in - let r264 = Sub (r262) :: r263 in - let r265 = [R 1175] in - let r266 = Sub (r28) :: r265 in - let r267 = [R 1107] in - let r268 = Sub (r28) :: r267 in - let r269 = S (T T_MINUSGREATER) :: r268 in - let r270 = [R 30] in - let r271 = Sub (r124) :: r270 in - let r272 = [R 36] in - let r273 = [R 516] in - let r274 = Sub (r120) :: r273 in - let r275 = S (T T_DOT) :: r274 in - let r276 = [R 863] in - let r277 = Sub (r78) :: r276 in - let r278 = S (T T_COLON) :: r277 in - let r279 = [R 862] in - let r280 = Sub (r78) :: r279 in - let r281 = S (T T_COLON) :: r280 in - let r282 = [R 1187] in - let r283 = Sub (r28) :: r282 in - let r284 = S (T T_MINUSGREATER) :: r283 in - let r285 = [R 1179] in - let r286 = Sub (r28) :: r285 in - let r287 = S (T T_MINUSGREATER) :: r286 in - let r288 = S (T T_RPAREN) :: r287 in - let r289 = Sub (r34) :: r288 in - let r290 = [R 834] in - let r291 = [R 835] in - let r292 = S (T T_RPAREN) :: r291 in - let r293 = Sub (r78) :: r292 in - let r294 = S (T T_COLON) :: r293 in - let r295 = Sub (r60) :: r294 in - let r296 = [R 1181] in - let r297 = [R 1189] in - let r298 = [R 1191] in - let r299 = Sub (r28) :: r298 in - let r300 = [R 1193] in - let r301 = [R 1258] in - let r302 = [R 858] in - let r303 = Sub (r26) :: r302 in - let r304 = [R 35] in - let r305 = [R 859] in - let r306 = [R 860] in - let r307 = Sub (r26) :: r306 in - let r308 = [R 1183] in - let r309 = Sub (r28) :: r308 in - let r310 = [R 1185] in - let r311 = [R 18] in - let r312 = Sub (r60) :: r311 in - let r313 = [R 20] in - let r314 = S (T T_RPAREN) :: r313 in - let r315 = Sub (r78) :: r314 in - let r316 = S (T T_COLON) :: r315 in - let r317 = [R 19] in - let r318 = S (T T_RPAREN) :: r317 in - let r319 = Sub (r78) :: r318 in - let r320 = S (T T_COLON) :: r319 in - let r321 = [R 139] in - let r322 = [R 866] in - let r323 = Sub (r78) :: r322 in - let r324 = S (T T_COLON) :: r323 in - let r325 = [R 865] in - let r326 = Sub (r78) :: r325 in - let r327 = S (T T_COLON) :: r326 in - let r328 = [R 1099] in - let r329 = Sub (r28) :: r328 in - let r330 = S (T T_MINUSGREATER) :: r329 in - let r331 = S (T T_RPAREN) :: r330 in - let r332 = Sub (r34) :: r331 in - let r333 = [R 1101] in - let r334 = [R 1103] in - let r335 = Sub (r28) :: r334 in - let r336 = [R 1105] in - let r337 = [R 1109] in - let r338 = [R 1111] in - let r339 = Sub (r28) :: r338 in - let r340 = [R 1113] in - let r341 = [R 1123] in - let r342 = Sub (r28) :: r341 in - let r343 = S (T T_MINUSGREATER) :: r342 in - let r344 = [R 1115] in - let r345 = Sub (r28) :: r344 in - let r346 = S (T T_MINUSGREATER) :: r345 in - let r347 = S (T T_RPAREN) :: r346 in - let r348 = Sub (r34) :: r347 in - let r349 = [R 1117] in - let r350 = [R 1119] in - let r351 = Sub (r28) :: r350 in - let r352 = [R 1121] in - let r353 = [R 1125] in - let r354 = [R 1127] in - let r355 = Sub (r28) :: r354 in - let r356 = [R 1129] in - let r357 = [R 1177] in - let r358 = [R 1173] in - let r359 = [R 142] in - let r360 = S (T T_RBRACKET) :: r359 in - let r361 = [R 846] in - let r362 = [R 839] in - let r363 = Sub (r32) :: r362 in - let r364 = [R 1237] in - let r365 = R 454 :: r364 in - let r366 = Sub (r363) :: r365 in - let r367 = [R 840] in - let r368 = [R 143] in - let r369 = S (T T_RBRACKET) :: r368 in - let r370 = Sub (r216) :: r369 in - let r371 = [R 830] in - let r372 = Sub (r226) :: r371 in - let r373 = [R 147] in - let r374 = S (T T_RBRACKET) :: r373 in - let r375 = [R 1260] in - let r376 = [R 806] in - let r377 = [R 807] in - let r378 = S (T T_RPAREN) :: r377 in - let r379 = Sub (r206) :: r378 in - let r380 = S (T T_UNDERSCORE) :: r188 in - let r381 = [R 190] in - let r382 = [R 957] in - let r383 = [R 953] in - let r384 = S (T T_END) :: r383 in - let r385 = R 471 :: r384 in - let r386 = R 70 :: r385 in - let r387 = R 454 :: r386 in - let r388 = [R 68] in - let r389 = S (T T_RPAREN) :: r388 in - let r390 = [R 1006] in - let r391 = [R 812] in - let r392 = S (T T_DOTDOT) :: r391 in - let r393 = S (T T_COMMA) :: r392 in - let r394 = [R 813] in - let r395 = S (T T_DOTDOT) :: r394 in - let r396 = S (T T_COMMA) :: r395 in - let r397 = S (T T_RPAREN) :: r396 in - let r398 = Sub (r34) :: r397 in - let r399 = S (T T_COLON) :: r398 in - let r400 = [R 376] in - let r401 = [R 377] in - let r402 = S (T T_RPAREN) :: r401 in - let r403 = Sub (r34) :: r402 in - let r404 = S (T T_COLON) :: r403 in - let r405 = [R 923] in - let r406 = [R 921] in - let r407 = [R 1002] in - let r408 = S (T T_RPAREN) :: r407 in - let r409 = S (N N_pattern) :: r408 in - let r410 = [R 546] in - let r411 = S (T T_UNDERSCORE) :: r410 in - let r412 = [R 1004] in - let r413 = S (T T_RPAREN) :: r412 in - let r414 = Sub (r411) :: r413 in - let r415 = R 454 :: r414 in - let r416 = [R 1005] in - let r417 = S (T T_RPAREN) :: r416 in - let r418 = [R 555] in - let r419 = S (N N_module_expr) :: r418 in - let r420 = R 454 :: r419 in - let r421 = S (T T_OF) :: r420 in - let r422 = [R 536] in - let r423 = S (T T_END) :: r422 in - let r424 = S (N N_structure) :: r423 in - let r425 = [R 769] in - let r426 = Sub (r132) :: r425 in - let r427 = [R 1225] in - let r428 = R 460 :: r427 in - let r429 = Sub (r426) :: r428 in - let r430 = R 753 :: r429 in - let r431 = S (T T_PLUSEQ) :: r430 in - let r432 = Sub (r124) :: r431 in - let r433 = R 1267 :: r432 in - let r434 = R 454 :: r433 in - let r435 = [R 298] in - let r436 = R 460 :: r435 in - let r437 = R 820 :: r436 in - let r438 = R 1262 :: r437 in - let r439 = R 669 :: r438 in - let r440 = S (T T_LIDENT) :: r439 in - let r441 = R 1267 :: r440 in - let r442 = R 454 :: r441 in - let r443 = [R 1226] in - let r444 = R 460 :: r443 in - let r445 = Sub (r426) :: r444 in - let r446 = R 753 :: r445 in - let r447 = S (T T_PLUSEQ) :: r446 in - let r448 = Sub (r124) :: r447 in - let r449 = R 669 :: r175 in - let r450 = S (T T_LIDENT) :: r449 in - let r451 = [R 751] in - let r452 = S (T T_RBRACKET) :: r451 in - let r453 = Sub (r19) :: r452 in - let r454 = [R 466] in - let r455 = [R 172] in - let r456 = S (N N_fun_expr) :: r455 in - let r457 = S (T T_WITH) :: r456 in - let r458 = Sub (r3) :: r457 in - let r459 = R 454 :: r458 in - let r460 = [R 272] in - let r461 = [R 517] in - let r462 = S (T T_LIDENT) :: r461 in - let r463 = [R 67] in - let r464 = Sub (r462) :: r463 in - let r465 = [R 950] in - let r466 = Sub (r464) :: r465 in - let r467 = R 454 :: r466 in - let r468 = [R 518] in - let r469 = S (T T_LIDENT) :: r468 in - let r470 = [R 520] in - let r471 = [R 525] in - let r472 = [R 170] in - let r473 = Sub (r195) :: r472 in - let r474 = S (T T_WITH) :: r473 in - let r475 = Sub (r3) :: r474 in - let r476 = R 454 :: r475 in - let r477 = [R 936] in - let r478 = S (T T_RPAREN) :: r477 in - let r479 = [R 124] in - let r480 = S (T T_RPAREN) :: r479 in - let r481 = [R 990] in - let r482 = [R 270] in - let r483 = [R 247] in - let r484 = [R 439] in - let r485 = Sub (r24) :: r484 in - let r486 = [R 442] in - let r487 = Sub (r485) :: r486 in - let r488 = [R 244] in - let r489 = Sub (r3) :: r488 in - let r490 = S (T T_IN) :: r489 in - let r491 = [R 818] in - let r492 = S (T T_DOTDOT) :: r491 in - let r493 = S (T T_COMMA) :: r492 in - let r494 = [R 819] in - let r495 = S (T T_DOTDOT) :: r494 in - let r496 = S (T T_COMMA) :: r495 in - let r497 = S (T T_RPAREN) :: r496 in - let r498 = Sub (r34) :: r497 in - let r499 = S (T T_COLON) :: r498 in - let r500 = [R 396] in - let r501 = [R 397] in - let r502 = S (T T_RPAREN) :: r501 in - let r503 = Sub (r34) :: r502 in - let r504 = S (T T_COLON) :: r503 in - let r505 = [R 931] in - let r506 = [R 929] in - let r507 = [R 115] in - let r508 = [R 884] in - let r509 = S (N N_pattern) :: r508 in - let r510 = [R 927] in - let r511 = S (T T_RBRACKET) :: r510 in - let r512 = [R 331] in - let r513 = Sub (r462) :: r512 in - let r514 = [R 480] in - let r515 = R 680 :: r514 in - let r516 = R 673 :: r515 in - let r517 = Sub (r513) :: r516 in - let r518 = [R 925] in - let r519 = S (T T_RBRACE) :: r518 in - let r520 = [R 674] in - let r521 = [R 681] in - let r522 = S (T T_UNDERSCORE) :: r390 in - let r523 = [R 1001] in - let r524 = Sub (r522) :: r523 in - let r525 = [R 733] in - let r526 = Sub (r524) :: r525 in - let r527 = R 454 :: r526 in - let r528 = [R 1296] in - let r529 = [R 1011] in - let r530 = [R 810] in - let r531 = S (T T_DOTDOT) :: r530 in - let r532 = S (T T_COMMA) :: r531 in - let r533 = S (N N_pattern) :: r532 in - let r534 = [R 932] in - let r535 = S (T T_RPAREN) :: r534 in - let r536 = [R 811] in - let r537 = S (T T_DOTDOT) :: r536 in - let r538 = S (T T_COMMA) :: r537 in - let r539 = [R 926] in - let r540 = S (T T_RBRACE) :: r539 in - let r541 = [R 1010] in - let r542 = [R 920] in - let r543 = [R 368] in - let r544 = [R 369] in - let r545 = S (T T_RPAREN) :: r544 in - let r546 = Sub (r34) :: r545 in - let r547 = S (T T_COLON) :: r546 in - let r548 = [R 367] in - let r549 = S (T T_INT) :: r528 in - let r550 = Sub (r549) :: r542 in - let r551 = [R 1007] in - let r552 = Sub (r550) :: r551 in - let r553 = [R 1013] in - let r554 = S (T T_RBRACKET) :: r553 in - let r555 = S (T T_LBRACKET) :: r554 in - let r556 = [R 1014] in - let r557 = [R 728] in - let r558 = S (N N_pattern) :: r557 in - let r559 = R 454 :: r558 in - let r560 = [R 732] in - let r561 = [R 809] in - let r562 = [R 360] in - let r563 = [R 361] in - let r564 = S (T T_RPAREN) :: r563 in - let r565 = Sub (r34) :: r564 in - let r566 = S (T T_COLON) :: r565 in - let r567 = [R 359] in - let r568 = [R 125] in - let r569 = [R 722] in - let r570 = [R 730] in - let r571 = [R 731] in - let r572 = Sub (r524) :: r571 in - let r573 = S (T T_RPAREN) :: r572 in - let r574 = [R 364] in - let r575 = [R 365] in - let r576 = S (T T_RPAREN) :: r575 in - let r577 = Sub (r34) :: r576 in - let r578 = S (T T_COLON) :: r577 in - let r579 = [R 363] in - let r580 = [R 1017] in - let r581 = S (T T_RPAREN) :: r580 in - let r582 = Sub (r34) :: r581 in - let r583 = [R 726] in - let r584 = [R 725] in - let r585 = [R 123] in - let r586 = S (T T_RPAREN) :: r585 in - let r587 = [R 1015] in - let r588 = [R 482] in - let r589 = [R 928] in - let r590 = [R 930] in - let r591 = [R 395] in - let r592 = [R 734] in - let r593 = [R 815] in - let r594 = [R 380] in - let r595 = [R 381] in - let r596 = S (T T_RPAREN) :: r595 in - let r597 = Sub (r34) :: r596 in - let r598 = S (T T_COLON) :: r597 in - let r599 = [R 379] in - let r600 = [R 392] in - let r601 = [R 393] in - let r602 = S (T T_RPAREN) :: r601 in - let r603 = Sub (r34) :: r602 in - let r604 = S (T T_COLON) :: r603 in - let r605 = [R 391] in - let r606 = [R 817] in - let r607 = S (T T_DOTDOT) :: r606 in - let r608 = S (T T_COMMA) :: r607 in - let r609 = [R 388] in - let r610 = [R 389] in - let r611 = S (T T_RPAREN) :: r610 in - let r612 = Sub (r34) :: r611 in - let r613 = S (T T_COLON) :: r612 in - let r614 = [R 387] in - let r615 = [R 346] in - let r616 = [R 325] in - let r617 = S (T T_LIDENT) :: r616 in - let r618 = [R 344] in - let r619 = S (T T_RPAREN) :: r618 in - let r620 = [R 327] in - let r621 = [R 329] in - let r622 = Sub (r34) :: r621 in - let r623 = [R 26] in - let r624 = Sub (r262) :: r623 in - let r625 = [R 345] in - let r626 = S (T T_RPAREN) :: r625 in - let r627 = [R 340] in - let r628 = [R 338] in - let r629 = S (T T_RPAREN) :: r628 in - let r630 = R 682 :: r629 in - let r631 = [R 339] in - let r632 = S (T T_RPAREN) :: r631 in - let r633 = R 682 :: r632 in - let r634 = [R 683] in - let r635 = [R 168] in - let r636 = Sub (r3) :: r635 in - let r637 = S (T T_IN) :: r636 in - let r638 = S (N N_module_expr) :: r637 in - let r639 = R 454 :: r638 in - let r640 = R 152 :: r639 in - let r641 = [R 399] in - let r642 = Sub (r24) :: r641 in - let r643 = [R 419] in - let r644 = R 460 :: r643 in - let r645 = Sub (r642) :: r644 in - let r646 = R 760 :: r645 in - let r647 = R 454 :: r646 in - let r648 = R 152 :: r647 in - let r649 = [R 169] in - let r650 = Sub (r3) :: r649 in - let r651 = S (T T_IN) :: r650 in - let r652 = S (N N_module_expr) :: r651 in - let r653 = R 454 :: r652 in - let r654 = [R 699] in - let r655 = S (T T_RPAREN) :: r654 in - let r656 = [R 700] in - let r657 = S (T T_RPAREN) :: r656 in - let r658 = S (N N_fun_expr) :: r657 in - let r659 = [R 975] in - let r660 = [R 875] in - let r661 = S (N N_fun_expr) :: r660 in - let r662 = [R 978] in - let r663 = S (T T_RBRACKET) :: r662 in - let r664 = [R 960] in - let r665 = [R 881] in - let r666 = R 675 :: r665 in - let r667 = [R 676] in - let r668 = [R 887] in - let r669 = R 675 :: r668 in - let r670 = R 684 :: r669 in - let r671 = Sub (r513) :: r670 in - let r672 = [R 762] in - let r673 = Sub (r671) :: r672 in - let r674 = [R 971] in - let r675 = S (T T_RBRACE) :: r674 in - let r676 = [R 783] in - let r677 = S (N N_fun_expr) :: r676 in - let r678 = S (T T_COMMA) :: r677 in - let r679 = S (N N_fun_expr) :: r678 in - let r680 = [R 988] in - let r681 = S (T T_RPAREN) :: r680 in - let r682 = [R 183] in - let r683 = Sub (r380) :: r682 in - let r684 = R 454 :: r683 in - let r685 = [R 972] in - let r686 = S (T T_RBRACE) :: r685 in - let r687 = [R 935] in - let r688 = [R 933] in - let r689 = S (T T_GREATERDOT) :: r688 in - let r690 = [R 793] in - let r691 = S (N N_fun_expr) :: r690 in - let r692 = S (T T_COMMA) :: r691 in - let r693 = [R 949] in - let r694 = S (T T_END) :: r693 in - let r695 = R 454 :: r694 in - let r696 = [R 178] in - let r697 = S (N N_fun_expr) :: r696 in - let r698 = S (T T_THEN) :: r697 in - let r699 = Sub (r3) :: r698 in - let r700 = R 454 :: r699 in - let r701 = [R 891] in - let r702 = Sub (r195) :: r701 in - let r703 = R 454 :: r702 in - let r704 = [R 837] in - let r705 = [R 485] in - let r706 = Sub (r3) :: r705 in - let r707 = S (T T_MINUSGREATER) :: r706 in - let r708 = [R 351] in - let r709 = Sub (r524) :: r708 in - let r710 = [R 276] in - let r711 = Sub (r709) :: r710 in - let r712 = [R 822] in - let r713 = Sub (r711) :: r712 in - let r714 = [R 277] in - let r715 = Sub (r713) :: r714 in - let r716 = [R 164] in - let r717 = Sub (r1) :: r716 in - let r718 = [R 162] in - let r719 = Sub (r717) :: r718 in - let r720 = S (T T_MINUSGREATER) :: r719 in - let r721 = R 693 :: r720 in - let r722 = Sub (r715) :: r721 in - let r723 = R 454 :: r722 in - let r724 = [R 741] in - let r725 = S (T T_UNDERSCORE) :: r724 in - let r726 = [R 343] in - let r727 = [R 341] in - let r728 = S (T T_RPAREN) :: r727 in - let r729 = R 682 :: r728 in - let r730 = S (T T_ATAT) :: r624 in - let r731 = [R 436] in - let r732 = Sub (r730) :: r731 in - let r733 = Sub (r34) :: r732 in - let r734 = [R 435] in - let r735 = [R 437] in - let r736 = [R 430] in - let r737 = [R 426] in - let r738 = [R 428] in - let r739 = Sub (r34) :: r738 in - let r740 = [R 342] in - let r741 = S (T T_RPAREN) :: r740 in - let r742 = R 682 :: r741 in - let r743 = [R 582] in - let r744 = S (T T_LIDENT) :: r743 in - let r745 = [R 597] in - let r746 = Sub (r744) :: r745 in - let r747 = [R 584] in - let r748 = Sub (r746) :: r747 in - let r749 = [R 274] in - let r750 = S (T T_RPAREN) :: r749 in - let r751 = [R 583] in - let r752 = S (T T_RPAREN) :: r751 in - let r753 = Sub (r78) :: r752 in - let r754 = S (T T_COLON) :: r753 in - let r755 = [R 275] in - let r756 = S (T T_RPAREN) :: r755 in - let r757 = [R 357] in - let r758 = S (T T_RPAREN) :: r757 in - let r759 = Sub (r34) :: r758 in - let r760 = [R 431] in - let r761 = S (N N_pattern) :: r760 in - let r762 = [R 352] in - let r763 = S (T T_RPAREN) :: r762 in - let r764 = [R 432] in - let r765 = [R 433] in - let r766 = Sub (r34) :: r765 in - let r767 = [R 354] in - let r768 = [R 353] in - let r769 = [R 347] in - let r770 = [R 355] in - let r771 = S (T T_RPAREN) :: r770 in - let r772 = Sub (r34) :: r771 in - let r773 = [R 350] in - let r774 = S (T T_RPAREN) :: r773 in - let r775 = Sub (r730) :: r734 in - let r776 = [R 356] in - let r777 = S (T T_RPAREN) :: r776 in - let r778 = Sub (r34) :: r777 in - let r779 = [R 349] in - let r780 = [R 348] in - let r781 = [R 690] in - let r782 = [R 163] in - let r783 = Sub (r195) :: r782 in - let r784 = R 454 :: r783 in - let r785 = [R 788] in - let r786 = S (N N_fun_expr) :: r785 in - let r787 = [R 791] in - let r788 = [R 792] in - let r789 = S (T T_RPAREN) :: r788 in - let r790 = Sub (r206) :: r789 in - let r791 = [R 790] in - let r792 = [R 958] in - let r793 = [R 970] in - let r794 = S (T T_RPAREN) :: r793 in - let r795 = S (T T_LPAREN) :: r794 in - let r796 = S (T T_DOT) :: r795 in - let r797 = [R 987] in - let r798 = S (T T_RPAREN) :: r797 in - let r799 = S (N N_module_type) :: r798 in - let r800 = S (T T_COLON) :: r799 in - let r801 = S (N N_module_expr) :: r800 in - let r802 = R 454 :: r801 in - let r803 = [R 537] in - let r804 = S (N N_module_expr) :: r803 in - let r805 = S (T T_MINUSGREATER) :: r804 in - let r806 = S (N N_functor_args) :: r805 in - let r807 = [R 284] in - let r808 = [R 285] in - let r809 = S (T T_RPAREN) :: r808 in - let r810 = S (N N_module_type) :: r809 in - let r811 = [R 556] in - let r812 = S (T T_RPAREN) :: r811 in - let r813 = [R 559] in - let r814 = S (N N_module_type) :: r813 in - let r815 = [R 553] in - let r816 = S (N N_module_type) :: r815 in - let r817 = S (T T_MINUSGREATER) :: r816 in - let r818 = S (N N_functor_args) :: r817 in - let r819 = [R 567] in - let r820 = [R 1310] in - let r821 = Sub (r32) :: r820 in - let r822 = S (T T_COLONEQUAL) :: r821 in - let r823 = Sub (r513) :: r822 in - let r824 = [R 1309] in - let r825 = R 820 :: r824 in - let r826 = [R 821] in - let r827 = Sub (r34) :: r826 in - let r828 = S (T T_EQUAL) :: r827 in - let r829 = [R 511] in - let r830 = Sub (r60) :: r829 in - let r831 = [R 570] in - let r832 = Sub (r830) :: r831 in - let r833 = [R 1313] in - let r834 = S (N N_module_type) :: r833 in - let r835 = S (T T_EQUAL) :: r834 in - let r836 = Sub (r832) :: r835 in - let r837 = S (T T_TYPE) :: r836 in - let r838 = [R 563] in - let r839 = S (N N_module_type) :: r838 in - let r840 = [R 561] in - let r841 = [R 512] in - let r842 = Sub (r60) :: r841 in - let r843 = [R 1314] in - let r844 = [R 1311] in - let r845 = Sub (r251) :: r844 in - let r846 = S (T T_UIDENT) :: r470 in - let r847 = [R 1312] in - let r848 = S (T T_MODULE) :: r837 in - let r849 = [R 844] in - let r850 = [R 286] in - let r851 = [R 542] in - let r852 = [R 696] in - let r853 = S (T T_RPAREN) :: r852 in - let r854 = [R 697] in - let r855 = [R 698] in - let r856 = [R 440] in - let r857 = Sub (r3) :: r856 in - let r858 = S (T T_EQUAL) :: r857 in - let r859 = [R 151] in - let r860 = S (T T_DOWNTO) :: r859 in - let r861 = [R 181] in - let r862 = S (T T_DONE) :: r861 in - let r863 = Sub (r3) :: r862 in - let r864 = S (T T_DO) :: r863 in - let r865 = Sub (r3) :: r864 in - let r866 = Sub (r860) :: r865 in - let r867 = Sub (r3) :: r866 in - let r868 = S (T T_EQUAL) :: r867 in - let r869 = S (N N_pattern) :: r868 in - let r870 = R 454 :: r869 in - let r871 = [R 273] in - let r872 = [R 182] in - let r873 = Sub (r380) :: r872 in - let r874 = R 454 :: r873 in - let r875 = [R 966] in - let r876 = [R 967] in - let r877 = [R 942] in - let r878 = S (T T_RPAREN) :: r877 in - let r879 = Sub (r661) :: r878 in - let r880 = S (T T_LPAREN) :: r879 in - let r881 = [R 877] in - let r882 = Sub (r195) :: r881 in - let r883 = R 454 :: r882 in - let r884 = R 152 :: r883 in - let r885 = [R 184] in - let r886 = [R 185] in - let r887 = Sub (r195) :: r886 in - let r888 = R 454 :: r887 in - let r889 = [R 334] in - let r890 = [R 335] in - let r891 = S (T T_RPAREN) :: r890 in - let r892 = Sub (r206) :: r891 in - let r893 = [R 336] in - let r894 = [R 337] in - let r895 = [R 965] in - let r896 = [R 962] in - let r897 = [R 939] in - let r898 = S (T T_RPAREN) :: r897 in - let r899 = Sub (r3) :: r898 in - let r900 = S (T T_LPAREN) :: r899 in - let r901 = [R 778] in - let r902 = [R 781] in - let r903 = [R 782] in - let r904 = S (T T_RPAREN) :: r903 in - let r905 = Sub (r206) :: r904 in - let r906 = [R 780] in - let r907 = [R 779] in - let r908 = Sub (r195) :: r907 in - let r909 = R 454 :: r908 in - let r910 = [R 838] in - let r911 = [R 243] in - let r912 = Sub (r3) :: r911 in - let r913 = [R 223] in - let r914 = [R 224] in - let r915 = Sub (r195) :: r914 in - let r916 = R 454 :: r915 in - let r917 = [R 211] in - let r918 = [R 212] in - let r919 = Sub (r195) :: r918 in - let r920 = R 454 :: r919 in - let r921 = [R 186] in - let r922 = [R 187] in - let r923 = Sub (r195) :: r922 in - let r924 = R 454 :: r923 in - let r925 = [R 281] in - let r926 = Sub (r3) :: r925 in - let r927 = [R 217] in - let r928 = [R 218] in - let r929 = Sub (r195) :: r928 in - let r930 = R 454 :: r929 in - let r931 = [R 225] in - let r932 = [R 226] in - let r933 = Sub (r195) :: r932 in - let r934 = R 454 :: r933 in - let r935 = [R 209] in - let r936 = [R 210] in - let r937 = Sub (r195) :: r936 in - let r938 = R 454 :: r937 in - let r939 = [R 207] in - let r940 = [R 208] in - let r941 = Sub (r195) :: r940 in - let r942 = R 454 :: r941 in - let r943 = [R 215] in - let r944 = [R 216] in - let r945 = Sub (r195) :: r944 in - let r946 = R 454 :: r945 in - let r947 = [R 213] in - let r948 = [R 214] in - let r949 = Sub (r195) :: r948 in - let r950 = R 454 :: r949 in - let r951 = [R 233] in - let r952 = [R 234] in - let r953 = Sub (r195) :: r952 in - let r954 = R 454 :: r953 in - let r955 = [R 221] in - let r956 = [R 222] in - let r957 = Sub (r195) :: r956 in - let r958 = R 454 :: r957 in - let r959 = [R 219] in - let r960 = [R 220] in - let r961 = Sub (r195) :: r960 in - let r962 = R 454 :: r961 in - let r963 = [R 229] in - let r964 = [R 230] in - let r965 = Sub (r195) :: r964 in - let r966 = R 454 :: r965 in - let r967 = [R 205] in - let r968 = [R 206] in - let r969 = Sub (r195) :: r968 in - let r970 = R 454 :: r969 in - let r971 = [R 203] in - let r972 = [R 204] in - let r973 = Sub (r195) :: r972 in - let r974 = R 454 :: r973 in - let r975 = [R 245] in - let r976 = [R 246] in - let r977 = Sub (r195) :: r976 in - let r978 = R 454 :: r977 in - let r979 = [R 201] in - let r980 = [R 202] in - let r981 = Sub (r195) :: r980 in - let r982 = R 454 :: r981 in - let r983 = [R 199] in - let r984 = [R 200] in - let r985 = Sub (r195) :: r984 in - let r986 = R 454 :: r985 in - let r987 = [R 197] in - let r988 = [R 198] in - let r989 = Sub (r195) :: r988 in - let r990 = R 454 :: r989 in - let r991 = [R 231] in - let r992 = [R 232] in - let r993 = Sub (r195) :: r992 in - let r994 = R 454 :: r993 in - let r995 = [R 227] in - let r996 = [R 228] in - let r997 = Sub (r195) :: r996 in - let r998 = R 454 :: r997 in - let r999 = [R 235] in - let r1000 = [R 236] in - let r1001 = Sub (r195) :: r1000 in - let r1002 = R 454 :: r1001 in - let r1003 = [R 237] in - let r1004 = [R 238] in - let r1005 = Sub (r195) :: r1004 in - let r1006 = R 454 :: r1005 in - let r1007 = [R 239] in - let r1008 = [R 240] in - let r1009 = Sub (r195) :: r1008 in - let r1010 = R 454 :: r1009 in - let r1011 = [R 786] in - let r1012 = [R 787] in - let r1013 = S (T T_RPAREN) :: r1012 in - let r1014 = Sub (r206) :: r1013 in - let r1015 = [R 785] in - let r1016 = [R 784] in - let r1017 = Sub (r195) :: r1016 in - let r1018 = R 454 :: r1017 in - let r1019 = [R 241] in - let r1020 = [R 242] in - let r1021 = Sub (r195) :: r1020 in - let r1022 = R 454 :: r1021 in - let r1023 = [R 21] in - let r1024 = R 460 :: r1023 in - let r1025 = Sub (r642) :: r1024 in - let r1026 = [R 1073] in - let r1027 = Sub (r3) :: r1026 in - let r1028 = S (T T_EQUAL) :: r1027 in - let r1029 = [R 418] in - let r1030 = Sub (r1028) :: r1029 in - let r1031 = [R 1074] in - let r1032 = Sub (r717) :: r1031 in - let r1033 = S (T T_EQUAL) :: r1032 in - let r1034 = [R 411] in - let r1035 = Sub (r3) :: r1034 in - let r1036 = S (T T_EQUAL) :: r1035 in - let r1037 = Sub (r34) :: r1036 in - let r1038 = S (T T_DOT) :: r1037 in - let r1039 = [R 412] in - let r1040 = Sub (r3) :: r1039 in - let r1041 = [R 407] in - let r1042 = Sub (r3) :: r1041 in - let r1043 = S (T T_EQUAL) :: r1042 in - let r1044 = Sub (r34) :: r1043 in - let r1045 = [R 408] in - let r1046 = Sub (r3) :: r1045 in - let r1047 = [R 401] in - let r1048 = Sub (r3) :: r1047 in - let r1049 = [R 402] in - let r1050 = Sub (r3) :: r1049 in - let r1051 = [R 403] in - let r1052 = Sub (r3) :: r1051 in - let r1053 = [R 415] in - let r1054 = Sub (r3) :: r1053 in - let r1055 = S (T T_EQUAL) :: r1054 in - let r1056 = [R 416] in - let r1057 = Sub (r3) :: r1056 in - let r1058 = [R 414] in - let r1059 = Sub (r3) :: r1058 in - let r1060 = [R 413] in - let r1061 = Sub (r3) :: r1060 in - let r1062 = [R 816] in - let r1063 = [R 384] in - let r1064 = [R 385] in - let r1065 = S (T T_RPAREN) :: r1064 in - let r1066 = Sub (r34) :: r1065 in - let r1067 = S (T T_COLON) :: r1066 in - let r1068 = [R 383] in - let r1069 = [R 738] in - let r1070 = [R 737] in - let r1071 = [R 417] in - let r1072 = Sub (r1028) :: r1071 in - let r1073 = [R 409] in - let r1074 = Sub (r3) :: r1073 in - let r1075 = S (T T_EQUAL) :: r1074 in - let r1076 = Sub (r34) :: r1075 in - let r1077 = [R 410] in - let r1078 = Sub (r3) :: r1077 in - let r1079 = [R 404] in - let r1080 = Sub (r3) :: r1079 in - let r1081 = [R 405] in - let r1082 = Sub (r3) :: r1081 in - let r1083 = [R 406] in - let r1084 = Sub (r3) :: r1083 in - let r1085 = [R 461] in - let r1086 = [R 941] in - let r1087 = S (T T_RBRACKET) :: r1086 in - let r1088 = Sub (r3) :: r1087 in - let r1089 = [R 940] in - let r1090 = S (T T_RBRACE) :: r1089 in - let r1091 = Sub (r3) :: r1090 in - let r1092 = [R 943] in - let r1093 = S (T T_RPAREN) :: r1092 in - let r1094 = Sub (r661) :: r1093 in - let r1095 = S (T T_LPAREN) :: r1094 in - let r1096 = [R 947] in - let r1097 = S (T T_RBRACKET) :: r1096 in - let r1098 = Sub (r661) :: r1097 in - let r1099 = [R 945] in - let r1100 = S (T T_RBRACE) :: r1099 in - let r1101 = Sub (r661) :: r1100 in - let r1102 = [R 333] in - let r1103 = [R 257] in - let r1104 = [R 258] in - let r1105 = Sub (r195) :: r1104 in - let r1106 = R 454 :: r1105 in - let r1107 = [R 946] in - let r1108 = S (T T_RBRACKET) :: r1107 in - let r1109 = Sub (r661) :: r1108 in - let r1110 = [R 265] in - let r1111 = [R 266] in - let r1112 = Sub (r195) :: r1111 in - let r1113 = R 454 :: r1112 in - let r1114 = [R 944] in - let r1115 = S (T T_RBRACE) :: r1114 in - let r1116 = Sub (r661) :: r1115 in - let r1117 = [R 261] in - let r1118 = [R 262] in - let r1119 = Sub (r195) :: r1118 in - let r1120 = R 454 :: r1119 in - let r1121 = [R 251] in - let r1122 = [R 252] in - let r1123 = Sub (r195) :: r1122 in - let r1124 = R 454 :: r1123 in - let r1125 = [R 255] in - let r1126 = [R 256] in - let r1127 = Sub (r195) :: r1126 in - let r1128 = R 454 :: r1127 in - let r1129 = [R 253] in - let r1130 = [R 254] in - let r1131 = Sub (r195) :: r1130 in - let r1132 = R 454 :: r1131 in - let r1133 = [R 259] in - let r1134 = [R 260] in - let r1135 = Sub (r195) :: r1134 in - let r1136 = R 454 :: r1135 in - let r1137 = [R 267] in - let r1138 = [R 268] in - let r1139 = Sub (r195) :: r1138 in - let r1140 = R 454 :: r1139 in - let r1141 = [R 263] in - let r1142 = [R 264] in - let r1143 = Sub (r195) :: r1142 in - let r1144 = R 454 :: r1143 in - let r1145 = [R 249] in - let r1146 = [R 250] in - let r1147 = Sub (r195) :: r1146 in - let r1148 = R 454 :: r1147 in - let r1149 = [R 441] in - let r1150 = Sub (r3) :: r1149 in - let r1151 = [R 443] in - let r1152 = [R 963] in - let r1153 = [R 992] in - let r1154 = [R 98] in - let r1155 = [R 99] in - let r1156 = Sub (r195) :: r1155 in - let r1157 = R 454 :: r1156 in - let r1158 = [R 111] in - let r1159 = S (N N_fun_expr) :: r1158 in - let r1160 = S (T T_IN) :: r1159 in - let r1161 = [R 100] in - let r1162 = Sub (r1160) :: r1161 in - let r1163 = S (N N_pattern) :: r1162 in - let r1164 = R 454 :: r1163 in - let r1165 = [R 841] in - let r1166 = Sub (r1164) :: r1165 in - let r1167 = [R 97] in - let r1168 = [R 842] in - let r1169 = [R 103] in - let r1170 = S (N N_fun_expr) :: r1169 in - let r1171 = S (T T_IN) :: r1170 in - let r1172 = [R 104] in - let r1173 = Sub (r195) :: r1172 in - let r1174 = R 454 :: r1173 in - let r1175 = [R 105] in - let r1176 = S (N N_fun_expr) :: r1175 in - let r1177 = S (T T_IN) :: r1176 in - let r1178 = [R 106] in - let r1179 = Sub (r195) :: r1178 in - let r1180 = R 454 :: r1179 in - let r1181 = [R 101] in - let r1182 = S (N N_fun_expr) :: r1181 in - let r1183 = S (T T_IN) :: r1182 in - let r1184 = [R 102] in - let r1185 = Sub (r195) :: r1184 in - let r1186 = R 454 :: r1185 in - let r1187 = [R 112] in - let r1188 = Sub (r195) :: r1187 in - let r1189 = R 454 :: r1188 in - let r1190 = [R 107] in - let r1191 = S (N N_fun_expr) :: r1190 in - let r1192 = Sub (r860) :: r1191 in - let r1193 = [R 109] in - let r1194 = S (N N_fun_expr) :: r1193 in - let r1195 = Sub (r860) :: r1194 in - let r1196 = Sub (r195) :: r1195 in - let r1197 = R 454 :: r1196 in - let r1198 = [R 110] in - let r1199 = Sub (r195) :: r1198 in - let r1200 = R 454 :: r1199 in - let r1201 = [R 108] in - let r1202 = Sub (r195) :: r1201 in - let r1203 = R 454 :: r1202 in - let r1204 = [R 984] in - let r1205 = [R 991] in - let r1206 = [R 983] in - let r1207 = [R 977] in - let r1208 = [R 982] in - let r1209 = [R 976] in - let r1210 = [R 981] in - let r1211 = [R 986] in - let r1212 = [R 980] in - let r1213 = [R 985] in - let r1214 = [R 979] in - let r1215 = S (T T_LIDENT) :: r666 in - let r1216 = [R 964] in - let r1217 = S (T T_GREATERRBRACE) :: r1216 in - let r1218 = [R 973] in - let r1219 = S (T T_RBRACE) :: r1218 in - let r1220 = [R 763] in - let r1221 = Sub (r671) :: r1220 in - let r1222 = [R 789] in - let r1223 = Sub (r195) :: r1222 in - let r1224 = R 454 :: r1223 in - let r1225 = [R 179] in - let r1226 = Sub (r195) :: r1225 in - let r1227 = R 454 :: r1226 in - let r1228 = [R 176] in - let r1229 = [R 177] in - let r1230 = Sub (r195) :: r1229 in - let r1231 = R 454 :: r1230 in - let r1232 = [R 174] in - let r1233 = [R 175] in - let r1234 = Sub (r195) :: r1233 in - let r1235 = R 454 :: r1234 in - let r1236 = [R 948] in - let r1237 = [R 796] in - let r1238 = [R 797] in - let r1239 = S (T T_RPAREN) :: r1238 in - let r1240 = Sub (r206) :: r1239 in - let r1241 = [R 795] in - let r1242 = [R 794] in - let r1243 = Sub (r195) :: r1242 in - let r1244 = R 454 :: r1243 in - let r1245 = [R 934] in - let r1246 = S (T T_GREATERDOT) :: r1245 in - let r1247 = Sub (r195) :: r1246 in - let r1248 = R 454 :: r1247 in - let r1249 = S (T T_COMMA) :: r786 in - let r1250 = Sub (r195) :: r1249 in - let r1251 = R 454 :: r1250 in - let r1252 = [R 677] in - let r1253 = Sub (r195) :: r1252 in - let r1254 = R 454 :: r1253 in - let r1255 = [R 959] in - let r1256 = [R 995] in - let r1257 = [R 994] in - let r1258 = [R 997] in - let r1259 = [R 974] in - let r1260 = [R 996] in - let r1261 = [R 701] in - let r1262 = S (T T_RPAREN) :: r1261 in - let r1263 = Sub (r195) :: r1262 in - let r1264 = R 454 :: r1263 in - let r1265 = [R 707] in - let r1266 = S (T T_RPAREN) :: r1265 in - let r1267 = [R 703] in - let r1268 = S (T T_RPAREN) :: r1267 in - let r1269 = [R 705] in - let r1270 = S (T T_RPAREN) :: r1269 in - let r1271 = [R 706] in - let r1272 = S (T T_RPAREN) :: r1271 in - let r1273 = [R 702] in - let r1274 = S (T T_RPAREN) :: r1273 in - let r1275 = [R 704] in - let r1276 = S (T T_RPAREN) :: r1275 in - let r1277 = [R 549] in - let r1278 = Sub (r411) :: r1277 in - let r1279 = [R 526] in - let r1280 = S (N N_module_expr) :: r1279 in - let r1281 = S (T T_EQUAL) :: r1280 in - let r1282 = [R 166] in - let r1283 = Sub (r3) :: r1282 in - let r1284 = S (T T_IN) :: r1283 in - let r1285 = Sub (r1281) :: r1284 in - let r1286 = Sub (r1278) :: r1285 in - let r1287 = R 454 :: r1286 in - let r1288 = S (T T_AT) :: r264 in - let r1289 = [R 550] in - let r1290 = S (T T_RPAREN) :: r1289 in - let r1291 = Sub (r1288) :: r1290 in - let r1292 = [R 527] in - let r1293 = S (N N_module_expr) :: r1292 in - let r1294 = S (T T_EQUAL) :: r1293 in - let r1295 = [R 528] in - let r1296 = S (N N_module_expr) :: r1295 in - let r1297 = [R 530] in - let r1298 = [R 529] in - let r1299 = S (N N_module_expr) :: r1298 in - let r1300 = [R 167] in - let r1301 = Sub (r3) :: r1300 in - let r1302 = S (T T_IN) :: r1301 in - let r1303 = R 454 :: r1302 in - let r1304 = R 288 :: r1303 in - let r1305 = Sub (r128) :: r1304 in - let r1306 = R 454 :: r1305 in - let r1307 = [R 127] in - let r1308 = R 688 :: r1307 in - let r1309 = Sub (r26) :: r1308 in - let r1310 = [R 289] in - let r1311 = [R 749] in - let r1312 = Sub (r32) :: r1311 in - let r1313 = [R 320] in - let r1314 = R 454 :: r1313 in - let r1315 = R 688 :: r1314 in - let r1316 = Sub (r1312) :: r1315 in - let r1317 = S (T T_COLON) :: r1316 in - let r1318 = S (T T_LIDENT) :: r1317 in - let r1319 = R 573 :: r1318 in - let r1320 = [R 322] in - let r1321 = Sub (r1319) :: r1320 in - let r1322 = [R 131] in - let r1323 = S (T T_RBRACE) :: r1322 in - let r1324 = [R 321] in - let r1325 = R 454 :: r1324 in - let r1326 = S (T T_SEMI) :: r1325 in - let r1327 = R 454 :: r1326 in - let r1328 = R 688 :: r1327 in - let r1329 = Sub (r1312) :: r1328 in - let r1330 = S (T T_COLON) :: r1329 in - let r1331 = [R 750] in - let r1332 = Sub (r32) :: r1331 in - let r1333 = [R 128] in - let r1334 = R 688 :: r1333 in - let r1335 = [R 129] in - let r1336 = R 688 :: r1335 in - let r1337 = Sub (r26) :: r1336 in - let r1338 = [R 130] in - let r1339 = R 688 :: r1338 in - let r1340 = [R 292] in - let r1341 = [R 869] in - let r1342 = Sub (r78) :: r1341 in - let r1343 = S (T T_COLON) :: r1342 in - let r1344 = [R 868] in - let r1345 = Sub (r78) :: r1344 in - let r1346 = S (T T_COLON) :: r1345 in - let r1347 = [R 293] in - let r1348 = Sub (r26) :: r1347 in - let r1349 = [R 291] in - let r1350 = Sub (r26) :: r1349 in - let r1351 = [R 290] in - let r1352 = Sub (r26) :: r1351 in - let r1353 = [R 248] in - let r1354 = Sub (r195) :: r1353 in - let r1355 = R 454 :: r1354 in - let r1356 = [R 999] in - let r1357 = [R 989] in - let r1358 = [R 998] in - let r1359 = [R 951] in - let r1360 = S (T T_RPAREN) :: r1359 in - let r1361 = S (N N_module_expr) :: r1360 in - let r1362 = R 454 :: r1361 in - let r1363 = [R 952] in - let r1364 = S (T T_RPAREN) :: r1363 in - let r1365 = [R 937] in - let r1366 = [R 938] in - let r1367 = [R 173] in - let r1368 = Sub (r195) :: r1367 in - let r1369 = R 454 :: r1368 in - let r1370 = [R 621] in - let r1371 = R 460 :: r1370 in - let r1372 = S (N N_module_expr) :: r1371 in - let r1373 = R 454 :: r1372 in - let r1374 = [R 622] in - let r1375 = R 460 :: r1374 in - let r1376 = S (N N_module_expr) :: r1375 in - let r1377 = R 454 :: r1376 in - let r1378 = [R 1228] in - let r1379 = R 460 :: r1378 in - let r1380 = Sub (r1281) :: r1379 in - let r1381 = Sub (r1278) :: r1380 in - let r1382 = R 454 :: r1381 in - let r1383 = [R 568] in - let r1384 = R 460 :: r1383 in - let r1385 = R 678 :: r1384 in - let r1386 = Sub (r60) :: r1385 in - let r1387 = R 454 :: r1386 in - let r1388 = [R 679] in - let r1389 = [R 1229] in - let r1390 = R 450 :: r1389 in - let r1391 = R 460 :: r1390 in - let r1392 = Sub (r1281) :: r1391 in - let r1393 = [R 451] in - let r1394 = R 450 :: r1393 in - let r1395 = R 460 :: r1394 in - let r1396 = Sub (r1281) :: r1395 in - let r1397 = Sub (r1278) :: r1396 in - let r1398 = [R 308] in - let r1399 = S (T T_RBRACKET) :: r1398 in - let r1400 = Sub (r17) :: r1399 in - let r1401 = [R 745] in - let r1402 = [R 746] in - let r1403 = [R 159] in - let r1404 = S (T T_RBRACKET) :: r1403 in - let r1405 = Sub (r19) :: r1404 in - let r1406 = [R 319] in - let r1407 = Sub (r78) :: r1406 in - let r1408 = S (T T_EQUAL) :: r1407 in - let r1409 = [R 599] in - let r1410 = S (T T_STRING) :: r1409 in - let r1411 = [R 752] in - let r1412 = R 460 :: r1411 in - let r1413 = Sub (r1410) :: r1412 in - let r1414 = S (T T_EQUAL) :: r1413 in - let r1415 = R 688 :: r1414 in - let r1416 = Sub (r36) :: r1415 in - let r1417 = S (T T_COLON) :: r1416 in - let r1418 = Sub (r24) :: r1417 in - let r1419 = R 454 :: r1418 in - let r1420 = [R 748] in - let r1421 = Sub (r34) :: r1420 in - let r1422 = Sub (r126) :: r568 in - let r1423 = [R 1072] in - let r1424 = R 460 :: r1423 in - let r1425 = R 454 :: r1424 in - let r1426 = Sub (r1422) :: r1425 in - let r1427 = S (T T_EQUAL) :: r1426 in - let r1428 = Sub (r128) :: r1427 in - let r1429 = R 454 :: r1428 in - let r1430 = [R 892] in - let r1431 = R 460 :: r1430 in - let r1432 = R 454 :: r1431 in - let r1433 = R 288 :: r1432 in - let r1434 = Sub (r128) :: r1433 in - let r1435 = R 454 :: r1434 in - let r1436 = R 152 :: r1435 in - let r1437 = S (T T_COLONCOLON) :: r586 in - let r1438 = [R 743] in - let r1439 = S (T T_QUOTED_STRING_EXPR) :: r58 in - let r1440 = [R 53] in - let r1441 = Sub (r1439) :: r1440 in - let r1442 = [R 62] in - let r1443 = Sub (r1441) :: r1442 in - let r1444 = S (T T_EQUAL) :: r1443 in - let r1445 = [R 1232] in - let r1446 = R 444 :: r1445 in - let r1447 = R 460 :: r1446 in - let r1448 = Sub (r1444) :: r1447 in - let r1449 = S (T T_LIDENT) :: r1448 in - let r1450 = R 160 :: r1449 in - let r1451 = R 1301 :: r1450 in - let r1452 = R 454 :: r1451 in - let r1453 = [R 81] in - let r1454 = Sub (r1439) :: r1453 in - let r1455 = [R 95] in - let r1456 = R 448 :: r1455 in - let r1457 = R 460 :: r1456 in - let r1458 = Sub (r1454) :: r1457 in - let r1459 = S (T T_EQUAL) :: r1458 in - let r1460 = S (T T_LIDENT) :: r1459 in - let r1461 = R 160 :: r1460 in - let r1462 = R 1301 :: r1461 in - let r1463 = R 454 :: r1462 in - let r1464 = [R 851] in - let r1465 = Sub (r152) :: r1464 in - let r1466 = [R 161] in - let r1467 = S (T T_RBRACKET) :: r1466 in - let r1468 = [R 852] in - let r1469 = [R 82] in - let r1470 = S (T T_END) :: r1469 in - let r1471 = R 469 :: r1470 in - let r1472 = R 72 :: r1471 in - let r1473 = [R 71] in - let r1474 = S (T T_RPAREN) :: r1473 in - let r1475 = [R 74] in - let r1476 = R 460 :: r1475 in - let r1477 = Sub (r34) :: r1476 in - let r1478 = S (T T_COLON) :: r1477 in - let r1479 = S (T T_LIDENT) :: r1478 in - let r1480 = R 576 :: r1479 in - let r1481 = [R 75] in - let r1482 = R 460 :: r1481 in - let r1483 = Sub (r36) :: r1482 in - let r1484 = S (T T_COLON) :: r1483 in - let r1485 = S (T T_LIDENT) :: r1484 in - let r1486 = R 755 :: r1485 in - let r1487 = [R 73] in - let r1488 = R 460 :: r1487 in - let r1489 = Sub (r1454) :: r1488 in - let r1490 = S (T T_UIDENT) :: r189 in - let r1491 = Sub (r1490) :: r471 in - let r1492 = [R 84] in - let r1493 = Sub (r1454) :: r1492 in - let r1494 = S (T T_IN) :: r1493 in - let r1495 = Sub (r1491) :: r1494 in - let r1496 = R 454 :: r1495 in - let r1497 = [R 85] in - let r1498 = Sub (r1454) :: r1497 in - let r1499 = S (T T_IN) :: r1498 in - let r1500 = Sub (r1491) :: r1499 in - let r1501 = [R 847] in - let r1502 = Sub (r34) :: r1501 in - let r1503 = [R 80] in - let r1504 = Sub (r244) :: r1503 in - let r1505 = S (T T_RBRACKET) :: r1504 in - let r1506 = Sub (r1502) :: r1505 in - let r1507 = [R 848] in - let r1508 = [R 126] in - let r1509 = Sub (r34) :: r1508 in - let r1510 = S (T T_EQUAL) :: r1509 in - let r1511 = Sub (r34) :: r1510 in - let r1512 = [R 76] in - let r1513 = R 460 :: r1512 in - let r1514 = Sub (r1511) :: r1513 in - let r1515 = [R 77] in - let r1516 = [R 470] in - let r1517 = [R 449] in - let r1518 = R 448 :: r1517 in - let r1519 = R 460 :: r1518 in - let r1520 = Sub (r1454) :: r1519 in - let r1521 = S (T T_EQUAL) :: r1520 in - let r1522 = S (T T_LIDENT) :: r1521 in - let r1523 = R 160 :: r1522 in - let r1524 = R 1301 :: r1523 in - let r1525 = [R 90] in - let r1526 = S (T T_END) :: r1525 in - let r1527 = R 471 :: r1526 in - let r1528 = R 70 :: r1527 in - let r1529 = [R 1292] in - let r1530 = Sub (r3) :: r1529 in - let r1531 = S (T T_EQUAL) :: r1530 in - let r1532 = S (T T_LIDENT) :: r1531 in - let r1533 = R 571 :: r1532 in - let r1534 = R 454 :: r1533 in - let r1535 = [R 56] in - let r1536 = R 460 :: r1535 in - let r1537 = [R 1293] in - let r1538 = Sub (r3) :: r1537 in - let r1539 = S (T T_EQUAL) :: r1538 in - let r1540 = S (T T_LIDENT) :: r1539 in - let r1541 = R 571 :: r1540 in - let r1542 = [R 1295] in - let r1543 = Sub (r3) :: r1542 in - let r1544 = [R 1291] in - let r1545 = Sub (r34) :: r1544 in - let r1546 = S (T T_COLON) :: r1545 in - let r1547 = [R 1294] in - let r1548 = Sub (r3) :: r1547 in - let r1549 = [R 495] in - let r1550 = Sub (r1028) :: r1549 in - let r1551 = S (T T_LIDENT) :: r1550 in - let r1552 = R 753 :: r1551 in - let r1553 = R 454 :: r1552 in - let r1554 = [R 57] in - let r1555 = R 460 :: r1554 in - let r1556 = [R 496] in - let r1557 = Sub (r1028) :: r1556 in - let r1558 = S (T T_LIDENT) :: r1557 in - let r1559 = R 753 :: r1558 in - let r1560 = [R 498] in - let r1561 = Sub (r3) :: r1560 in - let r1562 = S (T T_EQUAL) :: r1561 in - let r1563 = [R 500] in - let r1564 = Sub (r3) :: r1563 in - let r1565 = S (T T_EQUAL) :: r1564 in - let r1566 = Sub (r34) :: r1565 in - let r1567 = S (T T_DOT) :: r1566 in - let r1568 = [R 494] in - let r1569 = Sub (r36) :: r1568 in - let r1570 = S (T T_COLON) :: r1569 in - let r1571 = [R 497] in - let r1572 = Sub (r3) :: r1571 in - let r1573 = S (T T_EQUAL) :: r1572 in - let r1574 = [R 499] in - let r1575 = Sub (r3) :: r1574 in - let r1576 = S (T T_EQUAL) :: r1575 in - let r1577 = Sub (r34) :: r1576 in - let r1578 = S (T T_DOT) :: r1577 in - let r1579 = [R 59] in - let r1580 = R 460 :: r1579 in - let r1581 = Sub (r3) :: r1580 in - let r1582 = [R 54] in - let r1583 = R 460 :: r1582 in - let r1584 = R 671 :: r1583 in - let r1585 = Sub (r1441) :: r1584 in - let r1586 = [R 55] in - let r1587 = R 460 :: r1586 in - let r1588 = R 671 :: r1587 in - let r1589 = Sub (r1441) :: r1588 in - let r1590 = [R 86] in - let r1591 = S (T T_RPAREN) :: r1590 in - let r1592 = [R 49] in - let r1593 = Sub (r1441) :: r1592 in - let r1594 = S (T T_IN) :: r1593 in - let r1595 = Sub (r1491) :: r1594 in - let r1596 = R 454 :: r1595 in - let r1597 = [R 422] in - let r1598 = R 460 :: r1597 in - let r1599 = Sub (r642) :: r1598 in - let r1600 = R 760 :: r1599 in - let r1601 = R 454 :: r1600 in - let r1602 = [R 50] in - let r1603 = Sub (r1441) :: r1602 in - let r1604 = S (T T_IN) :: r1603 in - let r1605 = Sub (r1491) :: r1604 in - let r1606 = [R 88] in - let r1607 = Sub (r464) :: r1606 in - let r1608 = S (T T_RBRACKET) :: r1607 in - let r1609 = [R 65] in - let r1610 = Sub (r1441) :: r1609 in - let r1611 = S (T T_MINUSGREATER) :: r1610 in - let r1612 = Sub (r709) :: r1611 in - let r1613 = [R 47] in - let r1614 = Sub (r1612) :: r1613 in - let r1615 = [R 48] in - let r1616 = Sub (r1441) :: r1615 in - let r1617 = [R 421] in - let r1618 = R 460 :: r1617 in - let r1619 = Sub (r642) :: r1618 in - let r1620 = [R 91] in - let r1621 = Sub (r1454) :: r1620 in - let r1622 = [R 89] in - let r1623 = S (T T_RPAREN) :: r1622 in - let r1624 = [R 93] in - let r1625 = Sub (r1621) :: r1624 in - let r1626 = S (T T_MINUSGREATER) :: r1625 in - let r1627 = Sub (r28) :: r1626 in - let r1628 = [R 94] in - let r1629 = Sub (r1621) :: r1628 in - let r1630 = [R 92] in - let r1631 = Sub (r1621) :: r1630 in - let r1632 = S (T T_MINUSGREATER) :: r1631 in - let r1633 = [R 672] in - let r1634 = [R 58] in - let r1635 = R 460 :: r1634 in - let r1636 = Sub (r1511) :: r1635 in - let r1637 = [R 60] in - let r1638 = [R 472] in - let r1639 = [R 63] in - let r1640 = Sub (r1441) :: r1639 in - let r1641 = S (T T_EQUAL) :: r1640 in - let r1642 = [R 64] in - let r1643 = [R 445] in - let r1644 = R 444 :: r1643 in - let r1645 = R 460 :: r1644 in - let r1646 = Sub (r1444) :: r1645 in - let r1647 = S (T T_LIDENT) :: r1646 in - let r1648 = R 160 :: r1647 in - let r1649 = R 1301 :: r1648 in - let r1650 = [R 468] in - let r1651 = [R 1219] in - let r1652 = [R 1234] in - let r1653 = R 460 :: r1652 in - let r1654 = S (N N_module_expr) :: r1653 in - let r1655 = R 454 :: r1654 in - let r1656 = [R 1224] in - let r1657 = [R 457] in - let r1658 = R 456 :: r1657 in - let r1659 = R 460 :: r1658 in - let r1660 = R 820 :: r1659 in - let r1661 = R 1262 :: r1660 in - let r1662 = R 669 :: r1661 in - let r1663 = S (T T_LIDENT) :: r1662 in - let r1664 = R 1267 :: r1663 in - let r1665 = [R 1217] in - let r1666 = R 465 :: r1665 in - let r1667 = [R 467] in - let r1668 = R 465 :: r1667 in - let r1669 = [R 294] in - let r1670 = R 454 :: r1669 in - let r1671 = R 288 :: r1670 in - let r1672 = Sub (r128) :: r1671 in - let r1673 = [R 156] in - let r1674 = R 454 :: r1673 in - let r1675 = [R 157] in - let r1676 = R 454 :: r1675 in - let r1677 = [R 375] in - let r1678 = [R 372] in - let r1679 = [R 373] in - let r1680 = S (T T_RPAREN) :: r1679 in - let r1681 = Sub (r34) :: r1680 in - let r1682 = S (T T_COLON) :: r1681 in - let r1683 = [R 371] in - let r1684 = [R 69] in - let r1685 = S (T T_RPAREN) :: r1684 in - let r1686 = [R 192] in - let r1687 = Sub (r195) :: r1686 in - let r1688 = R 454 :: r1687 in - let r1689 = [R 805] in - let r1690 = [R 804] in - let r1691 = Sub (r195) :: r1690 in - let r1692 = R 454 :: r1691 in - let r1693 = [R 801] in - let r1694 = [R 802] in - let r1695 = S (T T_RPAREN) :: r1694 in - let r1696 = Sub (r206) :: r1695 in - let r1697 = [R 800] in - let r1698 = [R 799] in - let r1699 = Sub (r195) :: r1698 in - let r1700 = R 454 :: r1699 in - let r1701 = [R 491] in - let r1702 = R 454 :: r1701 in - let r1703 = Sub (r1312) :: r1702 in - let r1704 = [R 489] in - let r1705 = [R 619] in - let r1706 = [R 1165] in - let r1707 = [R 1167] in - let r1708 = Sub (r28) :: r1707 in - let r1709 = [R 1169] in - let r1710 = [R 612] in - let r1711 = S (T T_RBRACE) :: r1710 in - let r1712 = [R 616] in - let r1713 = S (T T_RBRACE) :: r1712 in - let r1714 = [R 611] in - let r1715 = S (T T_RBRACE) :: r1714 in - let r1716 = [R 615] in - let r1717 = S (T T_RBRACE) :: r1716 in - let r1718 = [R 609] in - let r1719 = [R 610] in - let r1720 = [R 614] in - let r1721 = S (T T_RBRACE) :: r1720 in - let r1722 = [R 618] in - let r1723 = S (T T_RBRACE) :: r1722 in - let r1724 = [R 613] in - let r1725 = S (T T_RBRACE) :: r1724 in - let r1726 = [R 617] in - let r1727 = S (T T_RBRACE) :: r1726 in - let r1728 = [R 297] in - let r1729 = R 460 :: r1728 in - let r1730 = R 820 :: r1729 in - let r1731 = [R 296] in - let r1732 = R 460 :: r1731 in - let r1733 = R 820 :: r1732 in - let r1734 = [R 463] in - let r1735 = [R 623] in - let r1736 = R 460 :: r1735 in - let r1737 = Sub (r251) :: r1736 in - let r1738 = R 454 :: r1737 in - let r1739 = [R 624] in - let r1740 = R 460 :: r1739 in - let r1741 = Sub (r251) :: r1740 in - let r1742 = R 454 :: r1741 in - let r1743 = [R 547] in - let r1744 = Sub (r411) :: r1743 in - let r1745 = [R 531] in - let r1746 = R 688 :: r1745 in - let r1747 = S (N N_module_type) :: r1746 in - let r1748 = S (T T_COLON) :: r1747 in - let r1749 = [R 904] in - let r1750 = R 460 :: r1749 in - let r1751 = Sub (r1748) :: r1750 in - let r1752 = Sub (r1744) :: r1751 in - let r1753 = R 454 :: r1752 in - let r1754 = [R 569] in - let r1755 = R 460 :: r1754 in - let r1756 = S (N N_module_type) :: r1755 in - let r1757 = S (T T_COLONEQUAL) :: r1756 in - let r1758 = Sub (r60) :: r1757 in - let r1759 = R 454 :: r1758 in - let r1760 = [R 551] in - let r1761 = R 460 :: r1760 in - let r1762 = [R 907] in - let r1763 = R 452 :: r1762 in - let r1764 = R 460 :: r1763 in - let r1765 = R 688 :: r1764 in - let r1766 = S (N N_module_type) :: r1765 in - let r1767 = S (T T_COLON) :: r1766 in - let r1768 = [R 453] in - let r1769 = R 452 :: r1768 in - let r1770 = R 460 :: r1769 in - let r1771 = R 688 :: r1770 in - let r1772 = S (N N_module_type) :: r1771 in - let r1773 = S (T T_COLON) :: r1772 in - let r1774 = Sub (r411) :: r1773 in - let r1775 = [R 24] in - let r1776 = Sub (r118) :: r1775 in - let r1777 = S (T T_AT) :: r1776 in - let r1778 = [R 548] in - let r1779 = S (T T_RPAREN) :: r1778 in - let r1780 = Sub (r1777) :: r1779 in - let r1781 = [R 905] in - let r1782 = R 460 :: r1781 in - let r1783 = R 686 :: r1782 in - let r1784 = [R 687] in - let r1785 = [R 533] in - let r1786 = S (N N_module_type) :: r1785 in - let r1787 = S (T T_COLON) :: r1786 in - let r1788 = [R 532] in - let r1789 = [R 535] in - let r1790 = [R 911] in - let r1791 = R 446 :: r1790 in - let r1792 = R 460 :: r1791 in - let r1793 = Sub (r1621) :: r1792 in - let r1794 = S (T T_COLON) :: r1793 in - let r1795 = S (T T_LIDENT) :: r1794 in - let r1796 = R 160 :: r1795 in - let r1797 = R 1301 :: r1796 in - let r1798 = R 454 :: r1797 in - let r1799 = [R 447] in - let r1800 = R 446 :: r1799 in - let r1801 = R 460 :: r1800 in - let r1802 = Sub (r1621) :: r1801 in - let r1803 = S (T T_COLON) :: r1802 in - let r1804 = S (T T_LIDENT) :: r1803 in - let r1805 = R 160 :: r1804 in - let r1806 = R 1301 :: r1805 in - let r1807 = [R 464] in - let r1808 = [R 894] in - let r1809 = [R 913] in - let r1810 = R 688 :: r1809 in - let r1811 = R 460 :: r1810 in - let r1812 = S (N N_module_type) :: r1811 in - let r1813 = R 454 :: r1812 in - let r1814 = [R 899] in - let r1815 = [R 900] in - let r1816 = [R 459] in - let r1817 = R 458 :: r1816 in - let r1818 = R 460 :: r1817 in - let r1819 = R 820 :: r1818 in - let r1820 = Sub (r177) :: r1819 in - let r1821 = S (T T_COLONEQUAL) :: r1820 in - let r1822 = R 669 :: r1821 in - let r1823 = S (T T_LIDENT) :: r1822 in - let r1824 = R 1267 :: r1823 in - let r1825 = [R 1131] in - let r1826 = Sub (r28) :: r1825 in - let r1827 = S (T T_MINUSGREATER) :: r1826 in - let r1828 = S (T T_RPAREN) :: r1827 in - let r1829 = Sub (r34) :: r1828 in - let r1830 = [R 1133] in - let r1831 = [R 1135] in - let r1832 = Sub (r28) :: r1831 in - let r1833 = [R 1137] in - let r1834 = [R 1139] in - let r1835 = Sub (r28) :: r1834 in - let r1836 = [R 1141] in - let r1837 = [R 1143] in - let r1838 = Sub (r28) :: r1837 in - let r1839 = [R 1145] in - let r1840 = [R 1155] in - let r1841 = Sub (r28) :: r1840 in - let r1842 = S (T T_MINUSGREATER) :: r1841 in - let r1843 = [R 1147] in - let r1844 = Sub (r28) :: r1843 in - let r1845 = S (T T_MINUSGREATER) :: r1844 in - let r1846 = S (T T_RPAREN) :: r1845 in - let r1847 = Sub (r34) :: r1846 in - let r1848 = [R 1149] in - let r1849 = [R 1151] in - let r1850 = Sub (r28) :: r1849 in - let r1851 = [R 1153] in - let r1852 = [R 1157] in - let r1853 = [R 1159] in - let r1854 = Sub (r28) :: r1853 in - let r1855 = [R 1161] in - let r1856 = [R 1207] in - let r1857 = Sub (r28) :: r1856 in - let r1858 = S (T T_MINUSGREATER) :: r1857 in - let r1859 = [R 1209] in - let r1860 = [R 1211] in - let r1861 = Sub (r28) :: r1860 in - let r1862 = [R 1213] in - let r1863 = [R 1199] in - let r1864 = [R 1201] in - let r1865 = [R 1203] in - let r1866 = Sub (r28) :: r1865 in - let r1867 = [R 1205] in - let r1868 = [R 872] in - let r1869 = Sub (r78) :: r1868 in - let r1870 = S (T T_COLON) :: r1869 in - let r1871 = [R 871] in - let r1872 = Sub (r78) :: r1871 in - let r1873 = S (T T_COLON) :: r1872 in - let r1874 = [R 302] in - let r1875 = [R 307] in - let r1876 = [R 506] in - let r1877 = [R 509] in - let r1878 = S (T T_RPAREN) :: r1877 in - let r1879 = S (T T_COLONCOLON) :: r1878 in - let r1880 = S (T T_LPAREN) :: r1879 in - let r1881 = [R 711] in - let r1882 = [R 712] in - let r1883 = [R 713] in - let r1884 = [R 714] in - let r1885 = [R 715] in - let r1886 = [R 716] in - let r1887 = [R 717] in - let r1888 = [R 718] in - let r1889 = [R 719] in - let r1890 = [R 720] in - let r1891 = [R 721] in - let r1892 = [R 1246] in - let r1893 = [R 1239] in - let r1894 = [R 1255] in - let r1895 = [R 474] in - let r1896 = [R 1253] in - let r1897 = S (T T_SEMISEMI) :: r1896 in - let r1898 = [R 1254] in - let r1899 = [R 476] in - let r1900 = [R 479] in - let r1901 = [R 478] in - let r1902 = [R 477] in - let r1903 = R 475 :: r1902 in - let r1904 = [R 1286] in - let r1905 = S (T T_EOF) :: r1904 in - let r1906 = R 475 :: r1905 in - let r1907 = [R 1285] in + let r103 = [R 1271] in + let r104 = [R 857] in + let r105 = Sub (r26) :: r104 in + let r106 = [R 1215] in + let r107 = Sub (r105) :: r106 in + let r108 = S (T T_STAR) :: r107 in + let r109 = Sub (r26) :: r108 in + let r110 = [R 893] in + let r111 = R 462 :: r110 in + let r112 = R 688 :: r111 in + let r113 = [R 552] in + let r114 = S (T T_END) :: r113 in + let r115 = Sub (r112) :: r114 in + let r116 = [R 587] in + let r117 = S (T T_LIDENT) :: r116 in + let r118 = [R 689] in + let r119 = S (T T_LIDENT) :: r103 in + let r120 = [R 515] in + let r121 = Sub (r119) :: r120 in + let r122 = [R 1264] in + let r123 = Sub (r121) :: r122 in + let r124 = [R 117] in + let r125 = S (T T_FALSE) :: r124 in + let r126 = [R 121] in + let r127 = Sub (r125) :: r126 in + let r128 = [R 295] in + let r129 = R 454 :: r128 in + let r130 = R 288 :: r129 in + let r131 = Sub (r127) :: r130 in + let r132 = [R 775] in + let r133 = Sub (r131) :: r132 in + let r134 = [R 901] in + let r135 = R 460 :: r134 in + let r136 = Sub (r133) :: r135 in + let r137 = R 753 :: r136 in + let r138 = S (T T_PLUSEQ) :: r137 in + let r139 = Sub (r123) :: r138 in + let r140 = R 1267 :: r139 in + let r141 = R 454 :: r140 in + let r142 = [R 902] in + let r143 = R 460 :: r142 in + let r144 = Sub (r133) :: r143 in + let r145 = R 753 :: r144 in + let r146 = S (T T_PLUSEQ) :: r145 in + let r147 = Sub (r123) :: r146 in + let r148 = [R 1266] in + let r149 = R 454 :: r148 in + let r150 = S (T T_UNDERSCORE) :: r149 in + let r151 = R 1273 :: r150 in + let r152 = [R 708] in + let r153 = Sub (r151) :: r152 in + let r154 = [R 849] in + let r155 = Sub (r153) :: r154 in + let r156 = [R 1269] in + let r157 = S (T T_RPAREN) :: r156 in + let r158 = [R 710] in + let r159 = [R 585] in + let r160 = S (T T_LIDENT) :: r159 in + let r161 = [R 312] in + let r162 = [R 764] in + let r163 = Sub (r78) :: r162 in + let r164 = [R 455] in + let r165 = [R 1265] in + let r166 = R 454 :: r165 in + let r167 = Sub (r60) :: r166 in + let r168 = [R 709] in + let r169 = [R 850] in + let r170 = [R 311] in + let r171 = [R 299] in + let r172 = R 460 :: r171 in + let r173 = R 820 :: r172 in + let r174 = R 1262 :: r173 in + let r175 = [R 607] in + let r176 = S (T T_DOTDOT) :: r175 in + let r177 = [R 1263] in + let r178 = [R 608] in + let r179 = [R 120] in + let r180 = S (T T_RPAREN) :: r179 in + let r181 = [R 116] in + let r182 = [R 620] in + let r183 = [R 154] in + let r184 = S (T T_RBRACKET) :: r183 in + let r185 = Sub (r17) :: r184 in + let r186 = [R 271] in + let r187 = [R 969] in + let r188 = [R 519] in + let r189 = [R 484] in + let r190 = Sub (r3) :: r189 in + let r191 = S (T T_MINUSGREATER) :: r190 in + let r192 = S (N N_pattern) :: r191 in + let r193 = [R 836] in + let r194 = Sub (r192) :: r193 in + let r195 = [R 171] in + let r196 = Sub (r194) :: r195 in + let r197 = S (T T_WITH) :: r196 in + let r198 = Sub (r3) :: r197 in + let r199 = R 454 :: r198 in + let r200 = [R 798] in + let r201 = S (N N_fun_expr) :: r200 in + let r202 = S (T T_COMMA) :: r201 in + let r203 = [R 1259] in + let r204 = Sub (r34) :: r203 in + let r205 = S (T T_COLON) :: r204 in + let r206 = [R 803] in + let r207 = S (N N_fun_expr) :: r206 in + let r208 = S (T T_COMMA) :: r207 in + let r209 = S (T T_RPAREN) :: r208 in + let r210 = Sub (r205) :: r209 in + let r211 = [R 1261] in + let r212 = [R 874] in + let r213 = Sub (r34) :: r212 in + let r214 = [R 845] in + let r215 = Sub (r213) :: r214 in + let r216 = [R 146] in + let r217 = S (T T_RBRACKET) :: r216 in + let r218 = Sub (r215) :: r217 in + let r219 = [R 145] in + let r220 = S (T T_RBRACKET) :: r219 in + let r221 = [R 144] in + let r222 = S (T T_RBRACKET) :: r221 in + let r223 = [R 581] in + let r224 = Sub (r60) :: r223 in + let r225 = S (T T_BACKQUOTE) :: r224 in + let r226 = [R 1238] in + let r227 = R 454 :: r226 in + let r228 = Sub (r225) :: r227 in + let r229 = [R 141] in + let r230 = S (T T_RBRACKET) :: r229 in + let r231 = [R 148] in + let r232 = S (T T_RPAREN) :: r231 in + let r233 = Sub (r105) :: r232 in + let r234 = S (T T_STAR) :: r233 in + let r235 = [R 149] in + let r236 = S (T T_RPAREN) :: r235 in + let r237 = Sub (r105) :: r236 in + let r238 = S (T T_STAR) :: r237 in + let r239 = Sub (r26) :: r238 in + let r240 = [R 501] in + let r241 = S (T T_LIDENT) :: r240 in + let r242 = [R 96] in + let r243 = Sub (r241) :: r242 in + let r244 = [R 34] in + let r245 = [R 502] in + let r246 = S (T T_LIDENT) :: r245 in + let r247 = S (T T_DOT) :: r246 in + let r248 = S (T T_UIDENT) :: r57 in + let r249 = [R 523] in + let r250 = Sub (r248) :: r249 in + let r251 = [R 524] in + let r252 = S (T T_RPAREN) :: r251 in + let r253 = [R 504] in + let r254 = S (T T_UIDENT) :: r253 in + let r255 = S (T T_DOT) :: r254 in + let r256 = S (T T_LBRACKETGREATER) :: r220 in + let r257 = [R 37] in + let r258 = Sub (r256) :: r257 in + let r259 = [R 1171] in + let r260 = [R 589] in + let r261 = S (T T_LIDENT) :: r260 in + let r262 = [R 25] in + let r263 = Sub (r261) :: r262 in + let r264 = [R 1175] in + let r265 = Sub (r28) :: r264 in + let r266 = [R 1107] in + let r267 = Sub (r28) :: r266 in + let r268 = S (T T_MINUSGREATER) :: r267 in + let r269 = [R 30] in + let r270 = Sub (r123) :: r269 in + let r271 = [R 36] in + let r272 = [R 516] in + let r273 = Sub (r119) :: r272 in + let r274 = S (T T_DOT) :: r273 in + let r275 = [R 863] in + let r276 = Sub (r78) :: r275 in + let r277 = S (T T_COLON) :: r276 in + let r278 = [R 862] in + let r279 = Sub (r78) :: r278 in + let r280 = S (T T_COLON) :: r279 in + let r281 = [R 1187] in + let r282 = Sub (r28) :: r281 in + let r283 = S (T T_MINUSGREATER) :: r282 in + let r284 = [R 1179] in + let r285 = Sub (r28) :: r284 in + let r286 = S (T T_MINUSGREATER) :: r285 in + let r287 = S (T T_RPAREN) :: r286 in + let r288 = Sub (r34) :: r287 in + let r289 = [R 834] in + let r290 = [R 835] in + let r291 = S (T T_RPAREN) :: r290 in + let r292 = Sub (r78) :: r291 in + let r293 = S (T T_COLON) :: r292 in + let r294 = Sub (r60) :: r293 in + let r295 = [R 1181] in + let r296 = [R 1189] in + let r297 = [R 1191] in + let r298 = Sub (r28) :: r297 in + let r299 = [R 1193] in + let r300 = [R 1258] in + let r301 = [R 858] in + let r302 = Sub (r26) :: r301 in + let r303 = [R 35] in + let r304 = [R 859] in + let r305 = [R 860] in + let r306 = Sub (r26) :: r305 in + let r307 = [R 1183] in + let r308 = Sub (r28) :: r307 in + let r309 = [R 1185] in + let r310 = [R 18] in + let r311 = Sub (r60) :: r310 in + let r312 = [R 20] in + let r313 = S (T T_RPAREN) :: r312 in + let r314 = Sub (r78) :: r313 in + let r315 = S (T T_COLON) :: r314 in + let r316 = [R 19] in + let r317 = S (T T_RPAREN) :: r316 in + let r318 = Sub (r78) :: r317 in + let r319 = S (T T_COLON) :: r318 in + let r320 = [R 139] in + let r321 = [R 866] in + let r322 = Sub (r78) :: r321 in + let r323 = S (T T_COLON) :: r322 in + let r324 = [R 865] in + let r325 = Sub (r78) :: r324 in + let r326 = S (T T_COLON) :: r325 in + let r327 = [R 1099] in + let r328 = Sub (r28) :: r327 in + let r329 = S (T T_MINUSGREATER) :: r328 in + let r330 = S (T T_RPAREN) :: r329 in + let r331 = Sub (r34) :: r330 in + let r332 = [R 1101] in + let r333 = [R 1103] in + let r334 = Sub (r28) :: r333 in + let r335 = [R 1105] in + let r336 = [R 1109] in + let r337 = [R 1111] in + let r338 = Sub (r28) :: r337 in + let r339 = [R 1113] in + let r340 = [R 1123] in + let r341 = Sub (r28) :: r340 in + let r342 = S (T T_MINUSGREATER) :: r341 in + let r343 = [R 1115] in + let r344 = Sub (r28) :: r343 in + let r345 = S (T T_MINUSGREATER) :: r344 in + let r346 = S (T T_RPAREN) :: r345 in + let r347 = Sub (r34) :: r346 in + let r348 = [R 1117] in + let r349 = [R 1119] in + let r350 = Sub (r28) :: r349 in + let r351 = [R 1121] in + let r352 = [R 1125] in + let r353 = [R 1127] in + let r354 = Sub (r28) :: r353 in + let r355 = [R 1129] in + let r356 = [R 1177] in + let r357 = [R 1173] in + let r358 = [R 142] in + let r359 = S (T T_RBRACKET) :: r358 in + let r360 = [R 846] in + let r361 = [R 839] in + let r362 = Sub (r32) :: r361 in + let r363 = [R 1237] in + let r364 = R 454 :: r363 in + let r365 = Sub (r362) :: r364 in + let r366 = [R 840] in + let r367 = [R 143] in + let r368 = S (T T_RBRACKET) :: r367 in + let r369 = Sub (r215) :: r368 in + let r370 = [R 830] in + let r371 = Sub (r225) :: r370 in + let r372 = [R 147] in + let r373 = S (T T_RBRACKET) :: r372 in + let r374 = [R 1260] in + let r375 = [R 806] in + let r376 = [R 807] in + let r377 = S (T T_RPAREN) :: r376 in + let r378 = Sub (r205) :: r377 in + let r379 = S (T T_UNDERSCORE) :: r187 in + let r380 = [R 190] in + let r381 = [R 957] in + let r382 = [R 953] in + let r383 = S (T T_END) :: r382 in + let r384 = R 471 :: r383 in + let r385 = R 70 :: r384 in + let r386 = R 454 :: r385 in + let r387 = [R 68] in + let r388 = S (T T_RPAREN) :: r387 in + let r389 = [R 1006] in + let r390 = [R 812] in + let r391 = S (T T_DOTDOT) :: r390 in + let r392 = S (T T_COMMA) :: r391 in + let r393 = [R 813] in + let r394 = S (T T_DOTDOT) :: r393 in + let r395 = S (T T_COMMA) :: r394 in + let r396 = S (T T_RPAREN) :: r395 in + let r397 = Sub (r34) :: r396 in + let r398 = S (T T_COLON) :: r397 in + let r399 = [R 376] in + let r400 = [R 377] in + let r401 = S (T T_RPAREN) :: r400 in + let r402 = Sub (r34) :: r401 in + let r403 = S (T T_COLON) :: r402 in + let r404 = [R 923] in + let r405 = [R 921] in + let r406 = [R 1002] in + let r407 = S (T T_RPAREN) :: r406 in + let r408 = S (N N_pattern) :: r407 in + let r409 = [R 546] in + let r410 = S (T T_UNDERSCORE) :: r409 in + let r411 = [R 1004] in + let r412 = S (T T_RPAREN) :: r411 in + let r413 = Sub (r410) :: r412 in + let r414 = R 454 :: r413 in + let r415 = [R 1005] in + let r416 = S (T T_RPAREN) :: r415 in + let r417 = [R 555] in + let r418 = S (N N_module_expr) :: r417 in + let r419 = R 454 :: r418 in + let r420 = S (T T_OF) :: r419 in + let r421 = [R 536] in + let r422 = S (T T_END) :: r421 in + let r423 = S (N N_structure) :: r422 in + let r424 = [R 769] in + let r425 = Sub (r131) :: r424 in + let r426 = [R 1225] in + let r427 = R 460 :: r426 in + let r428 = Sub (r425) :: r427 in + let r429 = R 753 :: r428 in + let r430 = S (T T_PLUSEQ) :: r429 in + let r431 = Sub (r123) :: r430 in + let r432 = R 1267 :: r431 in + let r433 = R 454 :: r432 in + let r434 = [R 298] in + let r435 = R 460 :: r434 in + let r436 = R 820 :: r435 in + let r437 = R 1262 :: r436 in + let r438 = R 669 :: r437 in + let r439 = S (T T_LIDENT) :: r438 in + let r440 = R 1267 :: r439 in + let r441 = R 454 :: r440 in + let r442 = [R 1226] in + let r443 = R 460 :: r442 in + let r444 = Sub (r425) :: r443 in + let r445 = R 753 :: r444 in + let r446 = S (T T_PLUSEQ) :: r445 in + let r447 = Sub (r123) :: r446 in + let r448 = R 669 :: r174 in + let r449 = S (T T_LIDENT) :: r448 in + let r450 = [R 751] in + let r451 = S (T T_RBRACKET) :: r450 in + let r452 = Sub (r19) :: r451 in + let r453 = [R 466] in + let r454 = [R 172] in + let r455 = S (N N_fun_expr) :: r454 in + let r456 = S (T T_WITH) :: r455 in + let r457 = Sub (r3) :: r456 in + let r458 = R 454 :: r457 in + let r459 = [R 272] in + let r460 = [R 517] in + let r461 = S (T T_LIDENT) :: r460 in + let r462 = [R 67] in + let r463 = Sub (r461) :: r462 in + let r464 = [R 950] in + let r465 = Sub (r463) :: r464 in + let r466 = R 454 :: r465 in + let r467 = [R 518] in + let r468 = S (T T_LIDENT) :: r467 in + let r469 = [R 520] in + let r470 = [R 525] in + let r471 = [R 170] in + let r472 = Sub (r194) :: r471 in + let r473 = S (T T_WITH) :: r472 in + let r474 = Sub (r3) :: r473 in + let r475 = R 454 :: r474 in + let r476 = [R 936] in + let r477 = S (T T_RPAREN) :: r476 in + let r478 = [R 124] in + let r479 = S (T T_RPAREN) :: r478 in + let r480 = [R 990] in + let r481 = [R 270] in + let r482 = [R 247] in + let r483 = [R 439] in + let r484 = Sub (r24) :: r483 in + let r485 = [R 442] in + let r486 = Sub (r484) :: r485 in + let r487 = [R 244] in + let r488 = Sub (r3) :: r487 in + let r489 = S (T T_IN) :: r488 in + let r490 = [R 818] in + let r491 = S (T T_DOTDOT) :: r490 in + let r492 = S (T T_COMMA) :: r491 in + let r493 = [R 819] in + let r494 = S (T T_DOTDOT) :: r493 in + let r495 = S (T T_COMMA) :: r494 in + let r496 = S (T T_RPAREN) :: r495 in + let r497 = Sub (r34) :: r496 in + let r498 = S (T T_COLON) :: r497 in + let r499 = [R 396] in + let r500 = [R 397] in + let r501 = S (T T_RPAREN) :: r500 in + let r502 = Sub (r34) :: r501 in + let r503 = S (T T_COLON) :: r502 in + let r504 = [R 931] in + let r505 = [R 929] in + let r506 = [R 115] in + let r507 = [R 884] in + let r508 = S (N N_pattern) :: r507 in + let r509 = [R 927] in + let r510 = S (T T_RBRACKET) :: r509 in + let r511 = [R 331] in + let r512 = Sub (r461) :: r511 in + let r513 = [R 480] in + let r514 = R 680 :: r513 in + let r515 = R 673 :: r514 in + let r516 = Sub (r512) :: r515 in + let r517 = [R 925] in + let r518 = S (T T_RBRACE) :: r517 in + let r519 = [R 674] in + let r520 = [R 681] in + let r521 = S (T T_UNDERSCORE) :: r389 in + let r522 = [R 1001] in + let r523 = Sub (r521) :: r522 in + let r524 = [R 733] in + let r525 = Sub (r523) :: r524 in + let r526 = R 454 :: r525 in + let r527 = [R 1296] in + let r528 = [R 1011] in + let r529 = [R 810] in + let r530 = S (T T_DOTDOT) :: r529 in + let r531 = S (T T_COMMA) :: r530 in + let r532 = S (N N_pattern) :: r531 in + let r533 = [R 932] in + let r534 = S (T T_RPAREN) :: r533 in + let r535 = [R 811] in + let r536 = S (T T_DOTDOT) :: r535 in + let r537 = S (T T_COMMA) :: r536 in + let r538 = [R 926] in + let r539 = S (T T_RBRACE) :: r538 in + let r540 = [R 1010] in + let r541 = [R 920] in + let r542 = [R 368] in + let r543 = [R 369] in + let r544 = S (T T_RPAREN) :: r543 in + let r545 = Sub (r34) :: r544 in + let r546 = S (T T_COLON) :: r545 in + let r547 = [R 367] in + let r548 = S (T T_INT) :: r527 in + let r549 = Sub (r548) :: r541 in + let r550 = [R 1007] in + let r551 = Sub (r549) :: r550 in + let r552 = [R 1013] in + let r553 = S (T T_RBRACKET) :: r552 in + let r554 = S (T T_LBRACKET) :: r553 in + let r555 = [R 1014] in + let r556 = [R 728] in + let r557 = S (N N_pattern) :: r556 in + let r558 = R 454 :: r557 in + let r559 = [R 732] in + let r560 = [R 809] in + let r561 = [R 360] in + let r562 = [R 361] in + let r563 = S (T T_RPAREN) :: r562 in + let r564 = Sub (r34) :: r563 in + let r565 = S (T T_COLON) :: r564 in + let r566 = [R 359] in + let r567 = [R 125] in + let r568 = [R 722] in + let r569 = [R 730] in + let r570 = [R 731] in + let r571 = Sub (r523) :: r570 in + let r572 = S (T T_RPAREN) :: r571 in + let r573 = [R 364] in + let r574 = [R 365] in + let r575 = S (T T_RPAREN) :: r574 in + let r576 = Sub (r34) :: r575 in + let r577 = S (T T_COLON) :: r576 in + let r578 = [R 363] in + let r579 = [R 1017] in + let r580 = S (T T_RPAREN) :: r579 in + let r581 = Sub (r34) :: r580 in + let r582 = [R 726] in + let r583 = [R 725] in + let r584 = [R 123] in + let r585 = S (T T_RPAREN) :: r584 in + let r586 = [R 1015] in + let r587 = [R 482] in + let r588 = [R 928] in + let r589 = [R 930] in + let r590 = [R 395] in + let r591 = [R 734] in + let r592 = [R 815] in + let r593 = [R 380] in + let r594 = [R 381] in + let r595 = S (T T_RPAREN) :: r594 in + let r596 = Sub (r34) :: r595 in + let r597 = S (T T_COLON) :: r596 in + let r598 = [R 379] in + let r599 = [R 392] in + let r600 = [R 393] in + let r601 = S (T T_RPAREN) :: r600 in + let r602 = Sub (r34) :: r601 in + let r603 = S (T T_COLON) :: r602 in + let r604 = [R 391] in + let r605 = [R 817] in + let r606 = S (T T_DOTDOT) :: r605 in + let r607 = S (T T_COMMA) :: r606 in + let r608 = [R 388] in + let r609 = [R 389] in + let r610 = S (T T_RPAREN) :: r609 in + let r611 = Sub (r34) :: r610 in + let r612 = S (T T_COLON) :: r611 in + let r613 = [R 387] in + let r614 = [R 346] in + let r615 = [R 325] in + let r616 = S (T T_LIDENT) :: r615 in + let r617 = [R 344] in + let r618 = S (T T_RPAREN) :: r617 in + let r619 = [R 327] in + let r620 = [R 329] in + let r621 = Sub (r34) :: r620 in + let r622 = [R 26] in + let r623 = Sub (r261) :: r622 in + let r624 = [R 345] in + let r625 = S (T T_RPAREN) :: r624 in + let r626 = [R 340] in + let r627 = [R 338] in + let r628 = S (T T_RPAREN) :: r627 in + let r629 = R 682 :: r628 in + let r630 = [R 339] in + let r631 = S (T T_RPAREN) :: r630 in + let r632 = R 682 :: r631 in + let r633 = [R 683] in + let r634 = [R 168] in + let r635 = Sub (r3) :: r634 in + let r636 = S (T T_IN) :: r635 in + let r637 = S (N N_module_expr) :: r636 in + let r638 = R 454 :: r637 in + let r639 = R 152 :: r638 in + let r640 = [R 399] in + let r641 = Sub (r24) :: r640 in + let r642 = [R 419] in + let r643 = R 460 :: r642 in + let r644 = Sub (r641) :: r643 in + let r645 = R 760 :: r644 in + let r646 = R 454 :: r645 in + let r647 = R 152 :: r646 in + let r648 = [R 169] in + let r649 = Sub (r3) :: r648 in + let r650 = S (T T_IN) :: r649 in + let r651 = S (N N_module_expr) :: r650 in + let r652 = R 454 :: r651 in + let r653 = [R 699] in + let r654 = S (T T_RPAREN) :: r653 in + let r655 = [R 700] in + let r656 = S (T T_RPAREN) :: r655 in + let r657 = S (N N_fun_expr) :: r656 in + let r658 = [R 975] in + let r659 = [R 875] in + let r660 = S (N N_fun_expr) :: r659 in + let r661 = [R 978] in + let r662 = S (T T_RBRACKET) :: r661 in + let r663 = [R 960] in + let r664 = [R 881] in + let r665 = R 675 :: r664 in + let r666 = [R 676] in + let r667 = [R 887] in + let r668 = R 675 :: r667 in + let r669 = R 684 :: r668 in + let r670 = Sub (r512) :: r669 in + let r671 = [R 762] in + let r672 = Sub (r670) :: r671 in + let r673 = [R 971] in + let r674 = S (T T_RBRACE) :: r673 in + let r675 = [R 783] in + let r676 = S (N N_fun_expr) :: r675 in + let r677 = S (T T_COMMA) :: r676 in + let r678 = S (N N_fun_expr) :: r677 in + let r679 = [R 988] in + let r680 = S (T T_RPAREN) :: r679 in + let r681 = [R 183] in + let r682 = Sub (r379) :: r681 in + let r683 = R 454 :: r682 in + let r684 = [R 972] in + let r685 = S (T T_RBRACE) :: r684 in + let r686 = [R 935] in + let r687 = [R 933] in + let r688 = S (T T_GREATERDOT) :: r687 in + let r689 = [R 793] in + let r690 = S (N N_fun_expr) :: r689 in + let r691 = S (T T_COMMA) :: r690 in + let r692 = [R 949] in + let r693 = S (T T_END) :: r692 in + let r694 = R 454 :: r693 in + let r695 = [R 178] in + let r696 = S (N N_fun_expr) :: r695 in + let r697 = S (T T_THEN) :: r696 in + let r698 = Sub (r3) :: r697 in + let r699 = R 454 :: r698 in + let r700 = [R 891] in + let r701 = Sub (r194) :: r700 in + let r702 = R 454 :: r701 in + let r703 = [R 837] in + let r704 = [R 485] in + let r705 = Sub (r3) :: r704 in + let r706 = S (T T_MINUSGREATER) :: r705 in + let r707 = [R 351] in + let r708 = Sub (r523) :: r707 in + let r709 = [R 276] in + let r710 = Sub (r708) :: r709 in + let r711 = [R 822] in + let r712 = Sub (r710) :: r711 in + let r713 = [R 277] in + let r714 = Sub (r712) :: r713 in + let r715 = [R 164] in + let r716 = Sub (r1) :: r715 in + let r717 = [R 162] in + let r718 = Sub (r716) :: r717 in + let r719 = S (T T_MINUSGREATER) :: r718 in + let r720 = R 693 :: r719 in + let r721 = Sub (r714) :: r720 in + let r722 = R 454 :: r721 in + let r723 = [R 741] in + let r724 = S (T T_UNDERSCORE) :: r723 in + let r725 = [R 343] in + let r726 = [R 341] in + let r727 = S (T T_RPAREN) :: r726 in + let r728 = R 682 :: r727 in + let r729 = S (T T_ATAT) :: r623 in + let r730 = [R 436] in + let r731 = Sub (r729) :: r730 in + let r732 = Sub (r34) :: r731 in + let r733 = [R 435] in + let r734 = [R 437] in + let r735 = [R 430] in + let r736 = [R 426] in + let r737 = [R 428] in + let r738 = Sub (r34) :: r737 in + let r739 = [R 342] in + let r740 = S (T T_RPAREN) :: r739 in + let r741 = R 682 :: r740 in + let r742 = [R 582] in + let r743 = S (T T_LIDENT) :: r742 in + let r744 = [R 597] in + let r745 = Sub (r743) :: r744 in + let r746 = [R 584] in + let r747 = Sub (r745) :: r746 in + let r748 = [R 274] in + let r749 = S (T T_RPAREN) :: r748 in + let r750 = [R 583] in + let r751 = S (T T_RPAREN) :: r750 in + let r752 = Sub (r78) :: r751 in + let r753 = S (T T_COLON) :: r752 in + let r754 = [R 275] in + let r755 = S (T T_RPAREN) :: r754 in + let r756 = [R 357] in + let r757 = S (T T_RPAREN) :: r756 in + let r758 = Sub (r34) :: r757 in + let r759 = [R 431] in + let r760 = S (N N_pattern) :: r759 in + let r761 = [R 352] in + let r762 = S (T T_RPAREN) :: r761 in + let r763 = [R 432] in + let r764 = [R 433] in + let r765 = Sub (r34) :: r764 in + let r766 = [R 354] in + let r767 = [R 353] in + let r768 = [R 347] in + let r769 = [R 355] in + let r770 = S (T T_RPAREN) :: r769 in + let r771 = Sub (r34) :: r770 in + let r772 = [R 350] in + let r773 = S (T T_RPAREN) :: r772 in + let r774 = Sub (r729) :: r733 in + let r775 = [R 356] in + let r776 = S (T T_RPAREN) :: r775 in + let r777 = Sub (r34) :: r776 in + let r778 = [R 349] in + let r779 = [R 348] in + let r780 = [R 690] in + let r781 = [R 163] in + let r782 = Sub (r194) :: r781 in + let r783 = R 454 :: r782 in + let r784 = [R 788] in + let r785 = S (N N_fun_expr) :: r784 in + let r786 = [R 791] in + let r787 = [R 792] in + let r788 = S (T T_RPAREN) :: r787 in + let r789 = Sub (r205) :: r788 in + let r790 = [R 790] in + let r791 = [R 958] in + let r792 = [R 970] in + let r793 = S (T T_RPAREN) :: r792 in + let r794 = S (T T_LPAREN) :: r793 in + let r795 = S (T T_DOT) :: r794 in + let r796 = [R 987] in + let r797 = S (T T_RPAREN) :: r796 in + let r798 = S (N N_module_type) :: r797 in + let r799 = S (T T_COLON) :: r798 in + let r800 = S (N N_module_expr) :: r799 in + let r801 = R 454 :: r800 in + let r802 = [R 537] in + let r803 = S (N N_module_expr) :: r802 in + let r804 = S (T T_MINUSGREATER) :: r803 in + let r805 = S (N N_functor_args) :: r804 in + let r806 = [R 284] in + let r807 = [R 285] in + let r808 = S (T T_RPAREN) :: r807 in + let r809 = S (N N_module_type) :: r808 in + let r810 = [R 556] in + let r811 = S (T T_RPAREN) :: r810 in + let r812 = [R 559] in + let r813 = S (N N_module_type) :: r812 in + let r814 = [R 553] in + let r815 = S (N N_module_type) :: r814 in + let r816 = S (T T_MINUSGREATER) :: r815 in + let r817 = S (N N_functor_args) :: r816 in + let r818 = [R 567] in + let r819 = [R 1310] in + let r820 = Sub (r32) :: r819 in + let r821 = S (T T_COLONEQUAL) :: r820 in + let r822 = Sub (r512) :: r821 in + let r823 = [R 1309] in + let r824 = R 820 :: r823 in + let r825 = [R 821] in + let r826 = Sub (r34) :: r825 in + let r827 = S (T T_EQUAL) :: r826 in + let r828 = [R 511] in + let r829 = Sub (r60) :: r828 in + let r830 = [R 570] in + let r831 = Sub (r829) :: r830 in + let r832 = [R 1313] in + let r833 = S (N N_module_type) :: r832 in + let r834 = S (T T_EQUAL) :: r833 in + let r835 = Sub (r831) :: r834 in + let r836 = S (T T_TYPE) :: r835 in + let r837 = [R 563] in + let r838 = S (N N_module_type) :: r837 in + let r839 = [R 561] in + let r840 = [R 512] in + let r841 = Sub (r60) :: r840 in + let r842 = [R 1314] in + let r843 = [R 1311] in + let r844 = Sub (r250) :: r843 in + let r845 = S (T T_UIDENT) :: r469 in + let r846 = [R 1312] in + let r847 = S (T T_MODULE) :: r836 in + let r848 = [R 844] in + let r849 = [R 286] in + let r850 = [R 542] in + let r851 = [R 696] in + let r852 = S (T T_RPAREN) :: r851 in + let r853 = [R 697] in + let r854 = [R 698] in + let r855 = [R 440] in + let r856 = Sub (r3) :: r855 in + let r857 = S (T T_EQUAL) :: r856 in + let r858 = [R 151] in + let r859 = S (T T_DOWNTO) :: r858 in + let r860 = [R 181] in + let r861 = S (T T_DONE) :: r860 in + let r862 = Sub (r3) :: r861 in + let r863 = S (T T_DO) :: r862 in + let r864 = Sub (r3) :: r863 in + let r865 = Sub (r859) :: r864 in + let r866 = Sub (r3) :: r865 in + let r867 = S (T T_EQUAL) :: r866 in + let r868 = S (N N_pattern) :: r867 in + let r869 = R 454 :: r868 in + let r870 = [R 273] in + let r871 = [R 182] in + let r872 = Sub (r379) :: r871 in + let r873 = R 454 :: r872 in + let r874 = [R 966] in + let r875 = [R 967] in + let r876 = [R 942] in + let r877 = S (T T_RPAREN) :: r876 in + let r878 = Sub (r660) :: r877 in + let r879 = S (T T_LPAREN) :: r878 in + let r880 = [R 877] in + let r881 = Sub (r194) :: r880 in + let r882 = R 454 :: r881 in + let r883 = R 152 :: r882 in + let r884 = [R 184] in + let r885 = [R 185] in + let r886 = Sub (r194) :: r885 in + let r887 = R 454 :: r886 in + let r888 = [R 334] in + let r889 = [R 335] in + let r890 = S (T T_RPAREN) :: r889 in + let r891 = Sub (r205) :: r890 in + let r892 = [R 336] in + let r893 = [R 337] in + let r894 = [R 965] in + let r895 = [R 962] in + let r896 = [R 939] in + let r897 = S (T T_RPAREN) :: r896 in + let r898 = Sub (r3) :: r897 in + let r899 = S (T T_LPAREN) :: r898 in + let r900 = [R 778] in + let r901 = [R 781] in + let r902 = [R 782] in + let r903 = S (T T_RPAREN) :: r902 in + let r904 = Sub (r205) :: r903 in + let r905 = [R 780] in + let r906 = [R 779] in + let r907 = Sub (r194) :: r906 in + let r908 = R 454 :: r907 in + let r909 = [R 838] in + let r910 = [R 243] in + let r911 = Sub (r3) :: r910 in + let r912 = [R 223] in + let r913 = [R 224] in + let r914 = Sub (r194) :: r913 in + let r915 = R 454 :: r914 in + let r916 = [R 211] in + let r917 = [R 212] in + let r918 = Sub (r194) :: r917 in + let r919 = R 454 :: r918 in + let r920 = [R 186] in + let r921 = [R 187] in + let r922 = Sub (r194) :: r921 in + let r923 = R 454 :: r922 in + let r924 = [R 281] in + let r925 = Sub (r3) :: r924 in + let r926 = [R 217] in + let r927 = [R 218] in + let r928 = Sub (r194) :: r927 in + let r929 = R 454 :: r928 in + let r930 = [R 225] in + let r931 = [R 226] in + let r932 = Sub (r194) :: r931 in + let r933 = R 454 :: r932 in + let r934 = [R 209] in + let r935 = [R 210] in + let r936 = Sub (r194) :: r935 in + let r937 = R 454 :: r936 in + let r938 = [R 207] in + let r939 = [R 208] in + let r940 = Sub (r194) :: r939 in + let r941 = R 454 :: r940 in + let r942 = [R 215] in + let r943 = [R 216] in + let r944 = Sub (r194) :: r943 in + let r945 = R 454 :: r944 in + let r946 = [R 213] in + let r947 = [R 214] in + let r948 = Sub (r194) :: r947 in + let r949 = R 454 :: r948 in + let r950 = [R 233] in + let r951 = [R 234] in + let r952 = Sub (r194) :: r951 in + let r953 = R 454 :: r952 in + let r954 = [R 221] in + let r955 = [R 222] in + let r956 = Sub (r194) :: r955 in + let r957 = R 454 :: r956 in + let r958 = [R 219] in + let r959 = [R 220] in + let r960 = Sub (r194) :: r959 in + let r961 = R 454 :: r960 in + let r962 = [R 229] in + let r963 = [R 230] in + let r964 = Sub (r194) :: r963 in + let r965 = R 454 :: r964 in + let r966 = [R 205] in + let r967 = [R 206] in + let r968 = Sub (r194) :: r967 in + let r969 = R 454 :: r968 in + let r970 = [R 203] in + let r971 = [R 204] in + let r972 = Sub (r194) :: r971 in + let r973 = R 454 :: r972 in + let r974 = [R 245] in + let r975 = [R 246] in + let r976 = Sub (r194) :: r975 in + let r977 = R 454 :: r976 in + let r978 = [R 201] in + let r979 = [R 202] in + let r980 = Sub (r194) :: r979 in + let r981 = R 454 :: r980 in + let r982 = [R 199] in + let r983 = [R 200] in + let r984 = Sub (r194) :: r983 in + let r985 = R 454 :: r984 in + let r986 = [R 197] in + let r987 = [R 198] in + let r988 = Sub (r194) :: r987 in + let r989 = R 454 :: r988 in + let r990 = [R 231] in + let r991 = [R 232] in + let r992 = Sub (r194) :: r991 in + let r993 = R 454 :: r992 in + let r994 = [R 227] in + let r995 = [R 228] in + let r996 = Sub (r194) :: r995 in + let r997 = R 454 :: r996 in + let r998 = [R 235] in + let r999 = [R 236] in + let r1000 = Sub (r194) :: r999 in + let r1001 = R 454 :: r1000 in + let r1002 = [R 237] in + let r1003 = [R 238] in + let r1004 = Sub (r194) :: r1003 in + let r1005 = R 454 :: r1004 in + let r1006 = [R 239] in + let r1007 = [R 240] in + let r1008 = Sub (r194) :: r1007 in + let r1009 = R 454 :: r1008 in + let r1010 = [R 786] in + let r1011 = [R 787] in + let r1012 = S (T T_RPAREN) :: r1011 in + let r1013 = Sub (r205) :: r1012 in + let r1014 = [R 785] in + let r1015 = [R 784] in + let r1016 = Sub (r194) :: r1015 in + let r1017 = R 454 :: r1016 in + let r1018 = [R 241] in + let r1019 = [R 242] in + let r1020 = Sub (r194) :: r1019 in + let r1021 = R 454 :: r1020 in + let r1022 = [R 21] in + let r1023 = R 460 :: r1022 in + let r1024 = Sub (r641) :: r1023 in + let r1025 = [R 1073] in + let r1026 = Sub (r3) :: r1025 in + let r1027 = S (T T_EQUAL) :: r1026 in + let r1028 = [R 418] in + let r1029 = Sub (r1027) :: r1028 in + let r1030 = [R 1074] in + let r1031 = Sub (r716) :: r1030 in + let r1032 = S (T T_EQUAL) :: r1031 in + let r1033 = [R 411] in + let r1034 = Sub (r3) :: r1033 in + let r1035 = S (T T_EQUAL) :: r1034 in + let r1036 = Sub (r34) :: r1035 in + let r1037 = S (T T_DOT) :: r1036 in + let r1038 = [R 412] in + let r1039 = Sub (r3) :: r1038 in + let r1040 = [R 407] in + let r1041 = Sub (r3) :: r1040 in + let r1042 = S (T T_EQUAL) :: r1041 in + let r1043 = Sub (r34) :: r1042 in + let r1044 = [R 408] in + let r1045 = Sub (r3) :: r1044 in + let r1046 = [R 401] in + let r1047 = Sub (r3) :: r1046 in + let r1048 = [R 402] in + let r1049 = Sub (r3) :: r1048 in + let r1050 = [R 403] in + let r1051 = Sub (r3) :: r1050 in + let r1052 = [R 415] in + let r1053 = Sub (r3) :: r1052 in + let r1054 = S (T T_EQUAL) :: r1053 in + let r1055 = [R 416] in + let r1056 = Sub (r3) :: r1055 in + let r1057 = [R 414] in + let r1058 = Sub (r3) :: r1057 in + let r1059 = [R 413] in + let r1060 = Sub (r3) :: r1059 in + let r1061 = [R 816] in + let r1062 = [R 384] in + let r1063 = [R 385] in + let r1064 = S (T T_RPAREN) :: r1063 in + let r1065 = Sub (r34) :: r1064 in + let r1066 = S (T T_COLON) :: r1065 in + let r1067 = [R 383] in + let r1068 = [R 738] in + let r1069 = [R 737] in + let r1070 = [R 417] in + let r1071 = Sub (r1027) :: r1070 in + let r1072 = [R 409] in + let r1073 = Sub (r3) :: r1072 in + let r1074 = S (T T_EQUAL) :: r1073 in + let r1075 = Sub (r34) :: r1074 in + let r1076 = [R 410] in + let r1077 = Sub (r3) :: r1076 in + let r1078 = [R 404] in + let r1079 = Sub (r3) :: r1078 in + let r1080 = [R 405] in + let r1081 = Sub (r3) :: r1080 in + let r1082 = [R 406] in + let r1083 = Sub (r3) :: r1082 in + let r1084 = [R 461] in + let r1085 = [R 941] in + let r1086 = S (T T_RBRACKET) :: r1085 in + let r1087 = Sub (r3) :: r1086 in + let r1088 = [R 940] in + let r1089 = S (T T_RBRACE) :: r1088 in + let r1090 = Sub (r3) :: r1089 in + let r1091 = [R 943] in + let r1092 = S (T T_RPAREN) :: r1091 in + let r1093 = Sub (r660) :: r1092 in + let r1094 = S (T T_LPAREN) :: r1093 in + let r1095 = [R 947] in + let r1096 = S (T T_RBRACKET) :: r1095 in + let r1097 = Sub (r660) :: r1096 in + let r1098 = [R 945] in + let r1099 = S (T T_RBRACE) :: r1098 in + let r1100 = Sub (r660) :: r1099 in + let r1101 = [R 333] in + let r1102 = [R 257] in + let r1103 = [R 258] in + let r1104 = Sub (r194) :: r1103 in + let r1105 = R 454 :: r1104 in + let r1106 = [R 946] in + let r1107 = S (T T_RBRACKET) :: r1106 in + let r1108 = Sub (r660) :: r1107 in + let r1109 = [R 265] in + let r1110 = [R 266] in + let r1111 = Sub (r194) :: r1110 in + let r1112 = R 454 :: r1111 in + let r1113 = [R 944] in + let r1114 = S (T T_RBRACE) :: r1113 in + let r1115 = Sub (r660) :: r1114 in + let r1116 = [R 261] in + let r1117 = [R 262] in + let r1118 = Sub (r194) :: r1117 in + let r1119 = R 454 :: r1118 in + let r1120 = [R 251] in + let r1121 = [R 252] in + let r1122 = Sub (r194) :: r1121 in + let r1123 = R 454 :: r1122 in + let r1124 = [R 255] in + let r1125 = [R 256] in + let r1126 = Sub (r194) :: r1125 in + let r1127 = R 454 :: r1126 in + let r1128 = [R 253] in + let r1129 = [R 254] in + let r1130 = Sub (r194) :: r1129 in + let r1131 = R 454 :: r1130 in + let r1132 = [R 259] in + let r1133 = [R 260] in + let r1134 = Sub (r194) :: r1133 in + let r1135 = R 454 :: r1134 in + let r1136 = [R 267] in + let r1137 = [R 268] in + let r1138 = Sub (r194) :: r1137 in + let r1139 = R 454 :: r1138 in + let r1140 = [R 263] in + let r1141 = [R 264] in + let r1142 = Sub (r194) :: r1141 in + let r1143 = R 454 :: r1142 in + let r1144 = [R 249] in + let r1145 = [R 250] in + let r1146 = Sub (r194) :: r1145 in + let r1147 = R 454 :: r1146 in + let r1148 = [R 441] in + let r1149 = Sub (r3) :: r1148 in + let r1150 = [R 443] in + let r1151 = [R 963] in + let r1152 = [R 992] in + let r1153 = [R 98] in + let r1154 = [R 99] in + let r1155 = Sub (r194) :: r1154 in + let r1156 = R 454 :: r1155 in + let r1157 = [R 111] in + let r1158 = S (N N_fun_expr) :: r1157 in + let r1159 = S (T T_IN) :: r1158 in + let r1160 = [R 100] in + let r1161 = Sub (r1159) :: r1160 in + let r1162 = S (N N_pattern) :: r1161 in + let r1163 = R 454 :: r1162 in + let r1164 = [R 841] in + let r1165 = Sub (r1163) :: r1164 in + let r1166 = [R 97] in + let r1167 = [R 842] in + let r1168 = [R 103] in + let r1169 = S (N N_fun_expr) :: r1168 in + let r1170 = S (T T_IN) :: r1169 in + let r1171 = [R 104] in + let r1172 = Sub (r194) :: r1171 in + let r1173 = R 454 :: r1172 in + let r1174 = [R 105] in + let r1175 = S (N N_fun_expr) :: r1174 in + let r1176 = S (T T_IN) :: r1175 in + let r1177 = [R 106] in + let r1178 = Sub (r194) :: r1177 in + let r1179 = R 454 :: r1178 in + let r1180 = [R 101] in + let r1181 = S (N N_fun_expr) :: r1180 in + let r1182 = S (T T_IN) :: r1181 in + let r1183 = [R 102] in + let r1184 = Sub (r194) :: r1183 in + let r1185 = R 454 :: r1184 in + let r1186 = [R 112] in + let r1187 = Sub (r194) :: r1186 in + let r1188 = R 454 :: r1187 in + let r1189 = [R 107] in + let r1190 = S (N N_fun_expr) :: r1189 in + let r1191 = Sub (r859) :: r1190 in + let r1192 = [R 109] in + let r1193 = S (N N_fun_expr) :: r1192 in + let r1194 = Sub (r859) :: r1193 in + let r1195 = Sub (r194) :: r1194 in + let r1196 = R 454 :: r1195 in + let r1197 = [R 110] in + let r1198 = Sub (r194) :: r1197 in + let r1199 = R 454 :: r1198 in + let r1200 = [R 108] in + let r1201 = Sub (r194) :: r1200 in + let r1202 = R 454 :: r1201 in + let r1203 = [R 984] in + let r1204 = [R 991] in + let r1205 = [R 983] in + let r1206 = [R 977] in + let r1207 = [R 982] in + let r1208 = [R 976] in + let r1209 = [R 981] in + let r1210 = [R 986] in + let r1211 = [R 980] in + let r1212 = [R 985] in + let r1213 = [R 979] in + let r1214 = S (T T_LIDENT) :: r665 in + let r1215 = [R 964] in + let r1216 = S (T T_GREATERRBRACE) :: r1215 in + let r1217 = [R 973] in + let r1218 = S (T T_RBRACE) :: r1217 in + let r1219 = [R 763] in + let r1220 = Sub (r670) :: r1219 in + let r1221 = [R 789] in + let r1222 = Sub (r194) :: r1221 in + let r1223 = R 454 :: r1222 in + let r1224 = [R 179] in + let r1225 = Sub (r194) :: r1224 in + let r1226 = R 454 :: r1225 in + let r1227 = [R 176] in + let r1228 = [R 177] in + let r1229 = Sub (r194) :: r1228 in + let r1230 = R 454 :: r1229 in + let r1231 = [R 174] in + let r1232 = [R 175] in + let r1233 = Sub (r194) :: r1232 in + let r1234 = R 454 :: r1233 in + let r1235 = [R 948] in + let r1236 = [R 796] in + let r1237 = [R 797] in + let r1238 = S (T T_RPAREN) :: r1237 in + let r1239 = Sub (r205) :: r1238 in + let r1240 = [R 795] in + let r1241 = [R 794] in + let r1242 = Sub (r194) :: r1241 in + let r1243 = R 454 :: r1242 in + let r1244 = [R 934] in + let r1245 = S (T T_GREATERDOT) :: r1244 in + let r1246 = Sub (r194) :: r1245 in + let r1247 = R 454 :: r1246 in + let r1248 = S (T T_COMMA) :: r785 in + let r1249 = Sub (r194) :: r1248 in + let r1250 = R 454 :: r1249 in + let r1251 = [R 677] in + let r1252 = Sub (r194) :: r1251 in + let r1253 = R 454 :: r1252 in + let r1254 = [R 959] in + let r1255 = [R 995] in + let r1256 = [R 994] in + let r1257 = [R 997] in + let r1258 = [R 974] in + let r1259 = [R 996] in + let r1260 = [R 701] in + let r1261 = S (T T_RPAREN) :: r1260 in + let r1262 = Sub (r194) :: r1261 in + let r1263 = R 454 :: r1262 in + let r1264 = [R 707] in + let r1265 = S (T T_RPAREN) :: r1264 in + let r1266 = [R 703] in + let r1267 = S (T T_RPAREN) :: r1266 in + let r1268 = [R 705] in + let r1269 = S (T T_RPAREN) :: r1268 in + let r1270 = [R 706] in + let r1271 = S (T T_RPAREN) :: r1270 in + let r1272 = [R 702] in + let r1273 = S (T T_RPAREN) :: r1272 in + let r1274 = [R 704] in + let r1275 = S (T T_RPAREN) :: r1274 in + let r1276 = [R 549] in + let r1277 = Sub (r410) :: r1276 in + let r1278 = [R 526] in + let r1279 = S (N N_module_expr) :: r1278 in + let r1280 = S (T T_EQUAL) :: r1279 in + let r1281 = [R 166] in + let r1282 = Sub (r3) :: r1281 in + let r1283 = S (T T_IN) :: r1282 in + let r1284 = Sub (r1280) :: r1283 in + let r1285 = Sub (r1277) :: r1284 in + let r1286 = R 454 :: r1285 in + let r1287 = S (T T_AT) :: r263 in + let r1288 = [R 550] in + let r1289 = S (T T_RPAREN) :: r1288 in + let r1290 = Sub (r1287) :: r1289 in + let r1291 = [R 527] in + let r1292 = S (N N_module_expr) :: r1291 in + let r1293 = S (T T_EQUAL) :: r1292 in + let r1294 = [R 528] in + let r1295 = S (N N_module_expr) :: r1294 in + let r1296 = [R 530] in + let r1297 = [R 529] in + let r1298 = S (N N_module_expr) :: r1297 in + let r1299 = [R 167] in + let r1300 = Sub (r3) :: r1299 in + let r1301 = S (T T_IN) :: r1300 in + let r1302 = R 454 :: r1301 in + let r1303 = R 288 :: r1302 in + let r1304 = Sub (r127) :: r1303 in + let r1305 = R 454 :: r1304 in + let r1306 = [R 127] in + let r1307 = R 688 :: r1306 in + let r1308 = Sub (r26) :: r1307 in + let r1309 = [R 289] in + let r1310 = [R 749] in + let r1311 = Sub (r32) :: r1310 in + let r1312 = [R 320] in + let r1313 = R 454 :: r1312 in + let r1314 = R 688 :: r1313 in + let r1315 = Sub (r1311) :: r1314 in + let r1316 = S (T T_COLON) :: r1315 in + let r1317 = S (T T_LIDENT) :: r1316 in + let r1318 = R 573 :: r1317 in + let r1319 = [R 322] in + let r1320 = Sub (r1318) :: r1319 in + let r1321 = [R 131] in + let r1322 = S (T T_RBRACE) :: r1321 in + let r1323 = [R 321] in + let r1324 = R 454 :: r1323 in + let r1325 = S (T T_SEMI) :: r1324 in + let r1326 = R 454 :: r1325 in + let r1327 = R 688 :: r1326 in + let r1328 = Sub (r1311) :: r1327 in + let r1329 = S (T T_COLON) :: r1328 in + let r1330 = [R 750] in + let r1331 = Sub (r32) :: r1330 in + let r1332 = [R 128] in + let r1333 = R 688 :: r1332 in + let r1334 = [R 129] in + let r1335 = R 688 :: r1334 in + let r1336 = Sub (r26) :: r1335 in + let r1337 = [R 130] in + let r1338 = R 688 :: r1337 in + let r1339 = [R 292] in + let r1340 = [R 869] in + let r1341 = Sub (r78) :: r1340 in + let r1342 = S (T T_COLON) :: r1341 in + let r1343 = [R 868] in + let r1344 = Sub (r78) :: r1343 in + let r1345 = S (T T_COLON) :: r1344 in + let r1346 = [R 293] in + let r1347 = Sub (r26) :: r1346 in + let r1348 = [R 291] in + let r1349 = Sub (r26) :: r1348 in + let r1350 = [R 290] in + let r1351 = Sub (r26) :: r1350 in + let r1352 = [R 248] in + let r1353 = Sub (r194) :: r1352 in + let r1354 = R 454 :: r1353 in + let r1355 = [R 999] in + let r1356 = [R 989] in + let r1357 = [R 998] in + let r1358 = [R 951] in + let r1359 = S (T T_RPAREN) :: r1358 in + let r1360 = S (N N_module_expr) :: r1359 in + let r1361 = R 454 :: r1360 in + let r1362 = [R 952] in + let r1363 = S (T T_RPAREN) :: r1362 in + let r1364 = [R 937] in + let r1365 = [R 938] in + let r1366 = [R 173] in + let r1367 = Sub (r194) :: r1366 in + let r1368 = R 454 :: r1367 in + let r1369 = [R 621] in + let r1370 = R 460 :: r1369 in + let r1371 = S (N N_module_expr) :: r1370 in + let r1372 = R 454 :: r1371 in + let r1373 = [R 622] in + let r1374 = R 460 :: r1373 in + let r1375 = S (N N_module_expr) :: r1374 in + let r1376 = R 454 :: r1375 in + let r1377 = [R 1228] in + let r1378 = R 460 :: r1377 in + let r1379 = Sub (r1280) :: r1378 in + let r1380 = Sub (r1277) :: r1379 in + let r1381 = R 454 :: r1380 in + let r1382 = [R 568] in + let r1383 = R 460 :: r1382 in + let r1384 = R 678 :: r1383 in + let r1385 = Sub (r60) :: r1384 in + let r1386 = R 454 :: r1385 in + let r1387 = [R 679] in + let r1388 = [R 1229] in + let r1389 = R 450 :: r1388 in + let r1390 = R 460 :: r1389 in + let r1391 = Sub (r1280) :: r1390 in + let r1392 = [R 451] in + let r1393 = R 450 :: r1392 in + let r1394 = R 460 :: r1393 in + let r1395 = Sub (r1280) :: r1394 in + let r1396 = Sub (r1277) :: r1395 in + let r1397 = [R 308] in + let r1398 = S (T T_RBRACKET) :: r1397 in + let r1399 = Sub (r17) :: r1398 in + let r1400 = [R 745] in + let r1401 = [R 746] in + let r1402 = [R 159] in + let r1403 = S (T T_RBRACKET) :: r1402 in + let r1404 = Sub (r19) :: r1403 in + let r1405 = [R 319] in + let r1406 = Sub (r78) :: r1405 in + let r1407 = S (T T_EQUAL) :: r1406 in + let r1408 = [R 599] in + let r1409 = S (T T_STRING) :: r1408 in + let r1410 = [R 752] in + let r1411 = R 460 :: r1410 in + let r1412 = Sub (r1409) :: r1411 in + let r1413 = S (T T_EQUAL) :: r1412 in + let r1414 = R 688 :: r1413 in + let r1415 = Sub (r36) :: r1414 in + let r1416 = S (T T_COLON) :: r1415 in + let r1417 = Sub (r24) :: r1416 in + let r1418 = R 454 :: r1417 in + let r1419 = [R 748] in + let r1420 = Sub (r34) :: r1419 in + let r1421 = Sub (r125) :: r567 in + let r1422 = [R 1072] in + let r1423 = R 460 :: r1422 in + let r1424 = R 454 :: r1423 in + let r1425 = Sub (r1421) :: r1424 in + let r1426 = S (T T_EQUAL) :: r1425 in + let r1427 = Sub (r127) :: r1426 in + let r1428 = R 454 :: r1427 in + let r1429 = [R 892] in + let r1430 = R 460 :: r1429 in + let r1431 = R 454 :: r1430 in + let r1432 = R 288 :: r1431 in + let r1433 = Sub (r127) :: r1432 in + let r1434 = R 454 :: r1433 in + let r1435 = R 152 :: r1434 in + let r1436 = S (T T_COLONCOLON) :: r585 in + let r1437 = [R 743] in + let r1438 = S (T T_QUOTED_STRING_EXPR) :: r58 in + let r1439 = [R 53] in + let r1440 = Sub (r1438) :: r1439 in + let r1441 = [R 62] in + let r1442 = Sub (r1440) :: r1441 in + let r1443 = S (T T_EQUAL) :: r1442 in + let r1444 = [R 1232] in + let r1445 = R 444 :: r1444 in + let r1446 = R 460 :: r1445 in + let r1447 = Sub (r1443) :: r1446 in + let r1448 = S (T T_LIDENT) :: r1447 in + let r1449 = R 160 :: r1448 in + let r1450 = R 1301 :: r1449 in + let r1451 = R 454 :: r1450 in + let r1452 = [R 81] in + let r1453 = Sub (r1438) :: r1452 in + let r1454 = [R 95] in + let r1455 = R 448 :: r1454 in + let r1456 = R 460 :: r1455 in + let r1457 = Sub (r1453) :: r1456 in + let r1458 = S (T T_EQUAL) :: r1457 in + let r1459 = S (T T_LIDENT) :: r1458 in + let r1460 = R 160 :: r1459 in + let r1461 = R 1301 :: r1460 in + let r1462 = R 454 :: r1461 in + let r1463 = [R 851] in + let r1464 = Sub (r151) :: r1463 in + let r1465 = [R 161] in + let r1466 = S (T T_RBRACKET) :: r1465 in + let r1467 = [R 852] in + let r1468 = [R 82] in + let r1469 = S (T T_END) :: r1468 in + let r1470 = R 469 :: r1469 in + let r1471 = R 72 :: r1470 in + let r1472 = [R 71] in + let r1473 = S (T T_RPAREN) :: r1472 in + let r1474 = [R 74] in + let r1475 = R 460 :: r1474 in + let r1476 = Sub (r34) :: r1475 in + let r1477 = S (T T_COLON) :: r1476 in + let r1478 = S (T T_LIDENT) :: r1477 in + let r1479 = R 576 :: r1478 in + let r1480 = [R 75] in + let r1481 = R 460 :: r1480 in + let r1482 = Sub (r36) :: r1481 in + let r1483 = S (T T_COLON) :: r1482 in + let r1484 = S (T T_LIDENT) :: r1483 in + let r1485 = R 755 :: r1484 in + let r1486 = [R 73] in + let r1487 = R 460 :: r1486 in + let r1488 = Sub (r1453) :: r1487 in + let r1489 = S (T T_UIDENT) :: r188 in + let r1490 = Sub (r1489) :: r470 in + let r1491 = [R 84] in + let r1492 = Sub (r1453) :: r1491 in + let r1493 = S (T T_IN) :: r1492 in + let r1494 = Sub (r1490) :: r1493 in + let r1495 = R 454 :: r1494 in + let r1496 = [R 85] in + let r1497 = Sub (r1453) :: r1496 in + let r1498 = S (T T_IN) :: r1497 in + let r1499 = Sub (r1490) :: r1498 in + let r1500 = [R 847] in + let r1501 = Sub (r34) :: r1500 in + let r1502 = [R 80] in + let r1503 = Sub (r243) :: r1502 in + let r1504 = S (T T_RBRACKET) :: r1503 in + let r1505 = Sub (r1501) :: r1504 in + let r1506 = [R 848] in + let r1507 = [R 126] in + let r1508 = Sub (r34) :: r1507 in + let r1509 = S (T T_EQUAL) :: r1508 in + let r1510 = Sub (r34) :: r1509 in + let r1511 = [R 76] in + let r1512 = R 460 :: r1511 in + let r1513 = Sub (r1510) :: r1512 in + let r1514 = [R 77] in + let r1515 = [R 470] in + let r1516 = [R 449] in + let r1517 = R 448 :: r1516 in + let r1518 = R 460 :: r1517 in + let r1519 = Sub (r1453) :: r1518 in + let r1520 = S (T T_EQUAL) :: r1519 in + let r1521 = S (T T_LIDENT) :: r1520 in + let r1522 = R 160 :: r1521 in + let r1523 = R 1301 :: r1522 in + let r1524 = [R 90] in + let r1525 = S (T T_END) :: r1524 in + let r1526 = R 471 :: r1525 in + let r1527 = R 70 :: r1526 in + let r1528 = [R 1292] in + let r1529 = Sub (r3) :: r1528 in + let r1530 = S (T T_EQUAL) :: r1529 in + let r1531 = S (T T_LIDENT) :: r1530 in + let r1532 = R 571 :: r1531 in + let r1533 = R 454 :: r1532 in + let r1534 = [R 56] in + let r1535 = R 460 :: r1534 in + let r1536 = [R 1293] in + let r1537 = Sub (r3) :: r1536 in + let r1538 = S (T T_EQUAL) :: r1537 in + let r1539 = S (T T_LIDENT) :: r1538 in + let r1540 = R 571 :: r1539 in + let r1541 = [R 1295] in + let r1542 = Sub (r3) :: r1541 in + let r1543 = [R 1291] in + let r1544 = Sub (r34) :: r1543 in + let r1545 = S (T T_COLON) :: r1544 in + let r1546 = [R 1294] in + let r1547 = Sub (r3) :: r1546 in + let r1548 = [R 495] in + let r1549 = Sub (r1027) :: r1548 in + let r1550 = S (T T_LIDENT) :: r1549 in + let r1551 = R 753 :: r1550 in + let r1552 = R 454 :: r1551 in + let r1553 = [R 57] in + let r1554 = R 460 :: r1553 in + let r1555 = [R 496] in + let r1556 = Sub (r1027) :: r1555 in + let r1557 = S (T T_LIDENT) :: r1556 in + let r1558 = R 753 :: r1557 in + let r1559 = [R 498] in + let r1560 = Sub (r3) :: r1559 in + let r1561 = S (T T_EQUAL) :: r1560 in + let r1562 = [R 500] in + let r1563 = Sub (r3) :: r1562 in + let r1564 = S (T T_EQUAL) :: r1563 in + let r1565 = Sub (r34) :: r1564 in + let r1566 = S (T T_DOT) :: r1565 in + let r1567 = [R 494] in + let r1568 = Sub (r36) :: r1567 in + let r1569 = S (T T_COLON) :: r1568 in + let r1570 = [R 497] in + let r1571 = Sub (r3) :: r1570 in + let r1572 = S (T T_EQUAL) :: r1571 in + let r1573 = [R 499] in + let r1574 = Sub (r3) :: r1573 in + let r1575 = S (T T_EQUAL) :: r1574 in + let r1576 = Sub (r34) :: r1575 in + let r1577 = S (T T_DOT) :: r1576 in + let r1578 = [R 59] in + let r1579 = R 460 :: r1578 in + let r1580 = Sub (r3) :: r1579 in + let r1581 = [R 54] in + let r1582 = R 460 :: r1581 in + let r1583 = R 671 :: r1582 in + let r1584 = Sub (r1440) :: r1583 in + let r1585 = [R 55] in + let r1586 = R 460 :: r1585 in + let r1587 = R 671 :: r1586 in + let r1588 = Sub (r1440) :: r1587 in + let r1589 = [R 86] in + let r1590 = S (T T_RPAREN) :: r1589 in + let r1591 = [R 49] in + let r1592 = Sub (r1440) :: r1591 in + let r1593 = S (T T_IN) :: r1592 in + let r1594 = Sub (r1490) :: r1593 in + let r1595 = R 454 :: r1594 in + let r1596 = [R 422] in + let r1597 = R 460 :: r1596 in + let r1598 = Sub (r641) :: r1597 in + let r1599 = R 760 :: r1598 in + let r1600 = R 454 :: r1599 in + let r1601 = [R 50] in + let r1602 = Sub (r1440) :: r1601 in + let r1603 = S (T T_IN) :: r1602 in + let r1604 = Sub (r1490) :: r1603 in + let r1605 = [R 88] in + let r1606 = Sub (r463) :: r1605 in + let r1607 = S (T T_RBRACKET) :: r1606 in + let r1608 = [R 65] in + let r1609 = Sub (r1440) :: r1608 in + let r1610 = S (T T_MINUSGREATER) :: r1609 in + let r1611 = Sub (r708) :: r1610 in + let r1612 = [R 47] in + let r1613 = Sub (r1611) :: r1612 in + let r1614 = [R 48] in + let r1615 = Sub (r1440) :: r1614 in + let r1616 = [R 421] in + let r1617 = R 460 :: r1616 in + let r1618 = Sub (r641) :: r1617 in + let r1619 = [R 91] in + let r1620 = Sub (r1453) :: r1619 in + let r1621 = [R 89] in + let r1622 = S (T T_RPAREN) :: r1621 in + let r1623 = [R 93] in + let r1624 = Sub (r1620) :: r1623 in + let r1625 = S (T T_MINUSGREATER) :: r1624 in + let r1626 = Sub (r28) :: r1625 in + let r1627 = [R 94] in + let r1628 = Sub (r1620) :: r1627 in + let r1629 = [R 92] in + let r1630 = Sub (r1620) :: r1629 in + let r1631 = S (T T_MINUSGREATER) :: r1630 in + let r1632 = [R 672] in + let r1633 = [R 58] in + let r1634 = R 460 :: r1633 in + let r1635 = Sub (r1510) :: r1634 in + let r1636 = [R 60] in + let r1637 = [R 472] in + let r1638 = [R 63] in + let r1639 = Sub (r1440) :: r1638 in + let r1640 = S (T T_EQUAL) :: r1639 in + let r1641 = [R 64] in + let r1642 = [R 445] in + let r1643 = R 444 :: r1642 in + let r1644 = R 460 :: r1643 in + let r1645 = Sub (r1443) :: r1644 in + let r1646 = S (T T_LIDENT) :: r1645 in + let r1647 = R 160 :: r1646 in + let r1648 = R 1301 :: r1647 in + let r1649 = [R 468] in + let r1650 = [R 1219] in + let r1651 = [R 1234] in + let r1652 = R 460 :: r1651 in + let r1653 = S (N N_module_expr) :: r1652 in + let r1654 = R 454 :: r1653 in + let r1655 = [R 1224] in + let r1656 = [R 457] in + let r1657 = R 456 :: r1656 in + let r1658 = R 460 :: r1657 in + let r1659 = R 820 :: r1658 in + let r1660 = R 1262 :: r1659 in + let r1661 = R 669 :: r1660 in + let r1662 = S (T T_LIDENT) :: r1661 in + let r1663 = R 1267 :: r1662 in + let r1664 = [R 1217] in + let r1665 = R 465 :: r1664 in + let r1666 = [R 467] in + let r1667 = R 465 :: r1666 in + let r1668 = [R 294] in + let r1669 = R 454 :: r1668 in + let r1670 = R 288 :: r1669 in + let r1671 = Sub (r127) :: r1670 in + let r1672 = [R 156] in + let r1673 = R 454 :: r1672 in + let r1674 = [R 157] in + let r1675 = R 454 :: r1674 in + let r1676 = [R 375] in + let r1677 = [R 372] in + let r1678 = [R 373] in + let r1679 = S (T T_RPAREN) :: r1678 in + let r1680 = Sub (r34) :: r1679 in + let r1681 = S (T T_COLON) :: r1680 in + let r1682 = [R 371] in + let r1683 = [R 69] in + let r1684 = S (T T_RPAREN) :: r1683 in + let r1685 = [R 192] in + let r1686 = Sub (r194) :: r1685 in + let r1687 = R 454 :: r1686 in + let r1688 = [R 805] in + let r1689 = [R 804] in + let r1690 = Sub (r194) :: r1689 in + let r1691 = R 454 :: r1690 in + let r1692 = [R 801] in + let r1693 = [R 802] in + let r1694 = S (T T_RPAREN) :: r1693 in + let r1695 = Sub (r205) :: r1694 in + let r1696 = [R 800] in + let r1697 = [R 799] in + let r1698 = Sub (r194) :: r1697 in + let r1699 = R 454 :: r1698 in + let r1700 = [R 491] in + let r1701 = R 454 :: r1700 in + let r1702 = Sub (r1311) :: r1701 in + let r1703 = [R 489] in + let r1704 = [R 619] in + let r1705 = [R 1165] in + let r1706 = [R 1167] in + let r1707 = Sub (r28) :: r1706 in + let r1708 = [R 1169] in + let r1709 = [R 612] in + let r1710 = S (T T_RBRACE) :: r1709 in + let r1711 = [R 616] in + let r1712 = S (T T_RBRACE) :: r1711 in + let r1713 = [R 611] in + let r1714 = S (T T_RBRACE) :: r1713 in + let r1715 = [R 615] in + let r1716 = S (T T_RBRACE) :: r1715 in + let r1717 = [R 609] in + let r1718 = [R 610] in + let r1719 = [R 614] in + let r1720 = S (T T_RBRACE) :: r1719 in + let r1721 = [R 618] in + let r1722 = S (T T_RBRACE) :: r1721 in + let r1723 = [R 613] in + let r1724 = S (T T_RBRACE) :: r1723 in + let r1725 = [R 617] in + let r1726 = S (T T_RBRACE) :: r1725 in + let r1727 = [R 297] in + let r1728 = R 460 :: r1727 in + let r1729 = R 820 :: r1728 in + let r1730 = [R 296] in + let r1731 = R 460 :: r1730 in + let r1732 = R 820 :: r1731 in + let r1733 = [R 463] in + let r1734 = [R 623] in + let r1735 = R 460 :: r1734 in + let r1736 = Sub (r250) :: r1735 in + let r1737 = R 454 :: r1736 in + let r1738 = [R 624] in + let r1739 = R 460 :: r1738 in + let r1740 = Sub (r250) :: r1739 in + let r1741 = R 454 :: r1740 in + let r1742 = [R 547] in + let r1743 = Sub (r410) :: r1742 in + let r1744 = [R 531] in + let r1745 = R 688 :: r1744 in + let r1746 = S (N N_module_type) :: r1745 in + let r1747 = S (T T_COLON) :: r1746 in + let r1748 = [R 904] in + let r1749 = R 460 :: r1748 in + let r1750 = Sub (r1747) :: r1749 in + let r1751 = Sub (r1743) :: r1750 in + let r1752 = R 454 :: r1751 in + let r1753 = [R 569] in + let r1754 = R 460 :: r1753 in + let r1755 = S (N N_module_type) :: r1754 in + let r1756 = S (T T_COLONEQUAL) :: r1755 in + let r1757 = Sub (r60) :: r1756 in + let r1758 = R 454 :: r1757 in + let r1759 = [R 551] in + let r1760 = R 460 :: r1759 in + let r1761 = [R 907] in + let r1762 = R 452 :: r1761 in + let r1763 = R 460 :: r1762 in + let r1764 = R 688 :: r1763 in + let r1765 = S (N N_module_type) :: r1764 in + let r1766 = S (T T_COLON) :: r1765 in + let r1767 = [R 453] in + let r1768 = R 452 :: r1767 in + let r1769 = R 460 :: r1768 in + let r1770 = R 688 :: r1769 in + let r1771 = S (N N_module_type) :: r1770 in + let r1772 = S (T T_COLON) :: r1771 in + let r1773 = Sub (r410) :: r1772 in + let r1774 = [R 24] in + let r1775 = Sub (r117) :: r1774 in + let r1776 = S (T T_AT) :: r1775 in + let r1777 = [R 548] in + let r1778 = S (T T_RPAREN) :: r1777 in + let r1779 = Sub (r1776) :: r1778 in + let r1780 = [R 905] in + let r1781 = R 460 :: r1780 in + let r1782 = R 686 :: r1781 in + let r1783 = [R 687] in + let r1784 = [R 533] in + let r1785 = S (N N_module_type) :: r1784 in + let r1786 = S (T T_COLON) :: r1785 in + let r1787 = [R 532] in + let r1788 = [R 535] in + let r1789 = [R 911] in + let r1790 = R 446 :: r1789 in + let r1791 = R 460 :: r1790 in + let r1792 = Sub (r1620) :: r1791 in + let r1793 = S (T T_COLON) :: r1792 in + let r1794 = S (T T_LIDENT) :: r1793 in + let r1795 = R 160 :: r1794 in + let r1796 = R 1301 :: r1795 in + let r1797 = R 454 :: r1796 in + let r1798 = [R 447] in + let r1799 = R 446 :: r1798 in + let r1800 = R 460 :: r1799 in + let r1801 = Sub (r1620) :: r1800 in + let r1802 = S (T T_COLON) :: r1801 in + let r1803 = S (T T_LIDENT) :: r1802 in + let r1804 = R 160 :: r1803 in + let r1805 = R 1301 :: r1804 in + let r1806 = [R 464] in + let r1807 = [R 894] in + let r1808 = [R 913] in + let r1809 = R 688 :: r1808 in + let r1810 = R 460 :: r1809 in + let r1811 = S (N N_module_type) :: r1810 in + let r1812 = R 454 :: r1811 in + let r1813 = [R 899] in + let r1814 = [R 900] in + let r1815 = [R 459] in + let r1816 = R 458 :: r1815 in + let r1817 = R 460 :: r1816 in + let r1818 = R 820 :: r1817 in + let r1819 = Sub (r176) :: r1818 in + let r1820 = S (T T_COLONEQUAL) :: r1819 in + let r1821 = R 669 :: r1820 in + let r1822 = S (T T_LIDENT) :: r1821 in + let r1823 = R 1267 :: r1822 in + let r1824 = [R 1131] in + let r1825 = Sub (r28) :: r1824 in + let r1826 = S (T T_MINUSGREATER) :: r1825 in + let r1827 = S (T T_RPAREN) :: r1826 in + let r1828 = Sub (r34) :: r1827 in + let r1829 = [R 1133] in + let r1830 = [R 1135] in + let r1831 = Sub (r28) :: r1830 in + let r1832 = [R 1137] in + let r1833 = [R 1139] in + let r1834 = Sub (r28) :: r1833 in + let r1835 = [R 1141] in + let r1836 = [R 1143] in + let r1837 = Sub (r28) :: r1836 in + let r1838 = [R 1145] in + let r1839 = [R 1155] in + let r1840 = Sub (r28) :: r1839 in + let r1841 = S (T T_MINUSGREATER) :: r1840 in + let r1842 = [R 1147] in + let r1843 = Sub (r28) :: r1842 in + let r1844 = S (T T_MINUSGREATER) :: r1843 in + let r1845 = S (T T_RPAREN) :: r1844 in + let r1846 = Sub (r34) :: r1845 in + let r1847 = [R 1149] in + let r1848 = [R 1151] in + let r1849 = Sub (r28) :: r1848 in + let r1850 = [R 1153] in + let r1851 = [R 1157] in + let r1852 = [R 1159] in + let r1853 = Sub (r28) :: r1852 in + let r1854 = [R 1161] in + let r1855 = [R 1207] in + let r1856 = Sub (r28) :: r1855 in + let r1857 = S (T T_MINUSGREATER) :: r1856 in + let r1858 = [R 1209] in + let r1859 = [R 1211] in + let r1860 = Sub (r28) :: r1859 in + let r1861 = [R 1213] in + let r1862 = [R 1199] in + let r1863 = [R 1201] in + let r1864 = [R 1203] in + let r1865 = Sub (r28) :: r1864 in + let r1866 = [R 1205] in + let r1867 = [R 872] in + let r1868 = Sub (r78) :: r1867 in + let r1869 = S (T T_COLON) :: r1868 in + let r1870 = [R 871] in + let r1871 = Sub (r78) :: r1870 in + let r1872 = S (T T_COLON) :: r1871 in + let r1873 = [R 302] in + let r1874 = [R 307] in + let r1875 = [R 506] in + let r1876 = [R 509] in + let r1877 = S (T T_RPAREN) :: r1876 in + let r1878 = S (T T_COLONCOLON) :: r1877 in + let r1879 = S (T T_LPAREN) :: r1878 in + let r1880 = [R 711] in + let r1881 = [R 712] in + let r1882 = [R 713] in + let r1883 = [R 714] in + let r1884 = [R 715] in + let r1885 = [R 716] in + let r1886 = [R 717] in + let r1887 = [R 718] in + let r1888 = [R 719] in + let r1889 = [R 720] in + let r1890 = [R 721] in + let r1891 = [R 1246] in + let r1892 = [R 1239] in + let r1893 = [R 1255] in + let r1894 = [R 474] in + let r1895 = [R 1253] in + let r1896 = S (T T_SEMISEMI) :: r1895 in + let r1897 = [R 1254] in + let r1898 = [R 476] in + let r1899 = [R 479] in + let r1900 = [R 478] in + let r1901 = [R 477] in + let r1902 = R 475 :: r1901 in + let r1903 = [R 1286] in + let r1904 = S (T T_EOF) :: r1903 in + let r1905 = R 475 :: r1904 in + let r1906 = [R 1285] in function - | 0 | 2957 | 2961 | 2979 | 2983 | 2987 | 2991 | 2995 | 2999 | 3003 | 3007 | 3011 | 3015 | 3021 | 3049 -> Nothing - | 2956 -> One ([R 0]) - | 2960 -> One ([R 1]) - | 2966 -> One ([R 2]) - | 2980 -> One ([R 3]) - | 2984 -> One ([R 4]) - | 2990 -> One ([R 5]) - | 2992 -> One ([R 6]) - | 2996 -> One ([R 7]) - | 3000 -> One ([R 8]) - | 3004 -> One ([R 9]) - | 3008 -> One ([R 10]) - | 3014 -> One ([R 11]) - | 3018 -> One ([R 12]) - | 3039 -> One ([R 13]) - | 3059 -> One ([R 14]) + | 0 | 2956 | 2960 | 2978 | 2982 | 2986 | 2990 | 2994 | 2998 | 3002 | 3006 | 3010 | 3014 | 3020 | 3048 -> Nothing + | 2955 -> One ([R 0]) + | 2959 -> One ([R 1]) + | 2965 -> One ([R 2]) + | 2979 -> One ([R 3]) + | 2983 -> One ([R 4]) + | 2989 -> One ([R 5]) + | 2991 -> One ([R 6]) + | 2995 -> One ([R 7]) + | 2999 -> One ([R 8]) + | 3003 -> One ([R 9]) + | 3007 -> One ([R 10]) + | 3013 -> One ([R 11]) + | 3017 -> One ([R 12]) + | 3038 -> One ([R 13]) + | 3058 -> One ([R 14]) | 600 -> One ([R 15]) | 599 -> One ([R 16]) - | 2974 -> One ([R 22]) - | 2976 -> One ([R 23]) + | 2973 -> One ([R 22]) + | 2975 -> One ([R 23]) | 321 -> One ([R 27]) | 265 -> One ([R 28]) | 352 -> One ([R 29]) @@ -2537,102 +2536,102 @@ let recover = | 1626 -> One ([R 150]) | 1 -> One (R 152 :: r9) | 62 -> One (R 152 :: r43) - | 167 -> One (R 152 :: r142) - | 231 -> One (R 152 :: r200) - | 540 -> One (R 152 :: r387) - | 571 -> One (R 152 :: r415) - | 601 -> One (R 152 :: r459) - | 605 -> One (R 152 :: r467) - | 618 -> One (R 152 :: r476) - | 655 -> One (R 152 :: r527) - | 704 -> One (R 152 :: r559) - | 870 -> One (R 152 :: r653) - | 884 -> One (R 152 :: r684) - | 891 -> One (R 152 :: r695) - | 894 -> One (R 152 :: r700) - | 897 -> One (R 152 :: r703) - | 903 -> One (R 152 :: r723) - | 1010 -> One (R 152 :: r784) - | 1035 -> One (R 152 :: r802) - | 1144 -> One (R 152 :: r870) - | 1150 -> One (R 152 :: r874) - | 1166 -> One (R 152 :: r888) - | 1204 -> One (R 152 :: r909) - | 1218 -> One (R 152 :: r916) - | 1224 -> One (R 152 :: r920) - | 1234 -> One (R 152 :: r924) - | 1245 -> One (R 152 :: r930) - | 1251 -> One (R 152 :: r934) - | 1257 -> One (R 152 :: r938) - | 1263 -> One (R 152 :: r942) - | 1269 -> One (R 152 :: r946) - | 1275 -> One (R 152 :: r950) - | 1281 -> One (R 152 :: r954) - | 1287 -> One (R 152 :: r958) - | 1293 -> One (R 152 :: r962) - | 1299 -> One (R 152 :: r966) - | 1305 -> One (R 152 :: r970) - | 1311 -> One (R 152 :: r974) - | 1317 -> One (R 152 :: r978) - | 1323 -> One (R 152 :: r982) - | 1329 -> One (R 152 :: r986) - | 1335 -> One (R 152 :: r990) - | 1341 -> One (R 152 :: r994) - | 1347 -> One (R 152 :: r998) - | 1353 -> One (R 152 :: r1002) - | 1359 -> One (R 152 :: r1006) - | 1365 -> One (R 152 :: r1010) - | 1379 -> One (R 152 :: r1018) - | 1385 -> One (R 152 :: r1022) - | 1523 -> One (R 152 :: r1106) - | 1532 -> One (R 152 :: r1113) - | 1541 -> One (R 152 :: r1120) - | 1551 -> One (R 152 :: r1124) - | 1560 -> One (R 152 :: r1128) - | 1569 -> One (R 152 :: r1132) - | 1580 -> One (R 152 :: r1136) - | 1589 -> One (R 152 :: r1140) - | 1598 -> One (R 152 :: r1144) - | 1605 -> One (R 152 :: r1148) - | 1652 -> One (R 152 :: r1157) - | 1664 -> One (R 152 :: r1174) - | 1672 -> One (R 152 :: r1180) - | 1680 -> One (R 152 :: r1186) - | 1687 -> One (R 152 :: r1189) - | 1693 -> One (R 152 :: r1197) - | 1698 -> One (R 152 :: r1200) - | 1705 -> One (R 152 :: r1203) - | 1770 -> One (R 152 :: r1224) - | 1787 -> One (R 152 :: r1227) - | 1792 -> One (R 152 :: r1231) - | 1799 -> One (R 152 :: r1235) - | 1817 -> One (R 152 :: r1244) - | 1822 -> One (R 152 :: r1248) - | 1833 -> One (R 152 :: r1251) - | 1842 -> One (R 152 :: r1254) - | 1876 -> One (R 152 :: r1264) - | 1909 -> One (R 152 :: r1287) - | 1935 -> One (R 152 :: r1306) - | 2023 -> One (R 152 :: r1355) - | 2042 -> One (R 152 :: r1362) - | 2062 -> One (R 152 :: r1369) - | 2067 -> One (R 152 :: r1373) - | 2068 -> One (R 152 :: r1377) - | 2077 -> One (R 152 :: r1382) - | 2078 -> One (R 152 :: r1387) - | 2116 -> One (R 152 :: r1419) - | 2150 -> One (R 152 :: r1452) - | 2151 -> One (R 152 :: r1463) - | 2448 -> One (R 152 :: r1655) - | 2550 -> One (R 152 :: r1688) - | 2560 -> One (R 152 :: r1692) - | 2575 -> One (R 152 :: r1700) - | 2690 -> One (R 152 :: r1738) - | 2691 -> One (R 152 :: r1742) - | 2700 -> One (R 152 :: r1753) - | 2701 -> One (R 152 :: r1759) - | 2759 -> One (R 152 :: r1798) - | 2790 -> One (R 152 :: r1813) + | 167 -> One (R 152 :: r141) + | 231 -> One (R 152 :: r199) + | 540 -> One (R 152 :: r386) + | 571 -> One (R 152 :: r414) + | 601 -> One (R 152 :: r458) + | 605 -> One (R 152 :: r466) + | 618 -> One (R 152 :: r475) + | 655 -> One (R 152 :: r526) + | 704 -> One (R 152 :: r558) + | 870 -> One (R 152 :: r652) + | 884 -> One (R 152 :: r683) + | 891 -> One (R 152 :: r694) + | 894 -> One (R 152 :: r699) + | 897 -> One (R 152 :: r702) + | 903 -> One (R 152 :: r722) + | 1010 -> One (R 152 :: r783) + | 1035 -> One (R 152 :: r801) + | 1144 -> One (R 152 :: r869) + | 1150 -> One (R 152 :: r873) + | 1166 -> One (R 152 :: r887) + | 1204 -> One (R 152 :: r908) + | 1218 -> One (R 152 :: r915) + | 1224 -> One (R 152 :: r919) + | 1234 -> One (R 152 :: r923) + | 1245 -> One (R 152 :: r929) + | 1251 -> One (R 152 :: r933) + | 1257 -> One (R 152 :: r937) + | 1263 -> One (R 152 :: r941) + | 1269 -> One (R 152 :: r945) + | 1275 -> One (R 152 :: r949) + | 1281 -> One (R 152 :: r953) + | 1287 -> One (R 152 :: r957) + | 1293 -> One (R 152 :: r961) + | 1299 -> One (R 152 :: r965) + | 1305 -> One (R 152 :: r969) + | 1311 -> One (R 152 :: r973) + | 1317 -> One (R 152 :: r977) + | 1323 -> One (R 152 :: r981) + | 1329 -> One (R 152 :: r985) + | 1335 -> One (R 152 :: r989) + | 1341 -> One (R 152 :: r993) + | 1347 -> One (R 152 :: r997) + | 1353 -> One (R 152 :: r1001) + | 1359 -> One (R 152 :: r1005) + | 1365 -> One (R 152 :: r1009) + | 1379 -> One (R 152 :: r1017) + | 1385 -> One (R 152 :: r1021) + | 1523 -> One (R 152 :: r1105) + | 1532 -> One (R 152 :: r1112) + | 1541 -> One (R 152 :: r1119) + | 1551 -> One (R 152 :: r1123) + | 1560 -> One (R 152 :: r1127) + | 1569 -> One (R 152 :: r1131) + | 1580 -> One (R 152 :: r1135) + | 1589 -> One (R 152 :: r1139) + | 1598 -> One (R 152 :: r1143) + | 1605 -> One (R 152 :: r1147) + | 1652 -> One (R 152 :: r1156) + | 1664 -> One (R 152 :: r1173) + | 1672 -> One (R 152 :: r1179) + | 1680 -> One (R 152 :: r1185) + | 1687 -> One (R 152 :: r1188) + | 1693 -> One (R 152 :: r1196) + | 1698 -> One (R 152 :: r1199) + | 1705 -> One (R 152 :: r1202) + | 1770 -> One (R 152 :: r1223) + | 1787 -> One (R 152 :: r1226) + | 1792 -> One (R 152 :: r1230) + | 1799 -> One (R 152 :: r1234) + | 1817 -> One (R 152 :: r1243) + | 1822 -> One (R 152 :: r1247) + | 1833 -> One (R 152 :: r1250) + | 1842 -> One (R 152 :: r1253) + | 1876 -> One (R 152 :: r1263) + | 1909 -> One (R 152 :: r1286) + | 1935 -> One (R 152 :: r1305) + | 2023 -> One (R 152 :: r1354) + | 2042 -> One (R 152 :: r1361) + | 2062 -> One (R 152 :: r1368) + | 2067 -> One (R 152 :: r1372) + | 2068 -> One (R 152 :: r1376) + | 2077 -> One (R 152 :: r1381) + | 2078 -> One (R 152 :: r1386) + | 2116 -> One (R 152 :: r1418) + | 2150 -> One (R 152 :: r1451) + | 2151 -> One (R 152 :: r1462) + | 2448 -> One (R 152 :: r1654) + | 2550 -> One (R 152 :: r1687) + | 2560 -> One (R 152 :: r1691) + | 2575 -> One (R 152 :: r1699) + | 2690 -> One (R 152 :: r1737) + | 2691 -> One (R 152 :: r1741) + | 2700 -> One (R 152 :: r1752) + | 2701 -> One (R 152 :: r1758) + | 2759 -> One (R 152 :: r1797) + | 2790 -> One (R 152 :: r1812) | 319 -> One ([R 158]) | 1171 -> One ([R 165]) | 1230 -> One ([R 188]) @@ -2681,59 +2680,59 @@ let recover = | 929 -> One ([R 429]) | 919 -> One ([R 434]) | 2022 -> One ([R 438]) - | 158 -> One (R 454 :: r116) - | 192 -> One (R 454 :: r165) - | 584 -> One (R 454 :: r424) - | 874 -> One (R 454 :: r658) - | 1038 -> One (R 454 :: r806) - | 1047 -> One (R 454 :: r818) - | 1390 -> One (R 454 :: r1025) - | 2092 -> One (R 454 :: r1397) - | 2165 -> One (R 454 :: r1472) - | 2171 -> One (R 454 :: r1480) - | 2182 -> One (R 454 :: r1486) - | 2193 -> One (R 454 :: r1489) - | 2197 -> One (R 454 :: r1500) - | 2218 -> One (R 454 :: r1514) - | 2234 -> One (R 454 :: r1524) - | 2251 -> One (R 454 :: r1528) - | 2255 -> One (R 454 :: r1541) - | 2284 -> One (R 454 :: r1559) - | 2324 -> One (R 454 :: r1581) - | 2328 -> One (R 454 :: r1585) - | 2329 -> One (R 454 :: r1589) - | 2340 -> One (R 454 :: r1605) - | 2348 -> One (R 454 :: r1614) - | 2406 -> One (R 454 :: r1636) - | 2426 -> One (R 454 :: r1649) - | 2454 -> One (R 454 :: r1664) - | 2590 -> One (R 454 :: r1704) - | 2720 -> One (R 454 :: r1774) - | 2768 -> One (R 454 :: r1806) - | 2799 -> One (R 454 :: r1824) - | 2453 -> One (R 456 :: r1656) - | 2796 -> One (R 456 :: r1814) - | 2798 -> One (R 458 :: r1815) - | 1490 -> One (R 460 :: r1085) - | 2227 -> One (R 460 :: r1515) - | 2412 -> One (R 460 :: r1637) - | 2446 -> One (R 460 :: r1651) - | 2468 -> One (R 460 :: r1666) - | 2478 -> One (R 460 :: r1668) - | 2788 -> One (R 460 :: r1808) - | 3044 -> One (R 460 :: r1897) - | 3055 -> One (R 460 :: r1903) - | 3060 -> One (R 460 :: r1906) - | 2689 -> One (R 462 :: r1734) - | 2779 -> One (R 462 :: r1807) - | 597 -> One (R 465 :: r454) - | 2436 -> One (R 465 :: r1650) - | 2230 -> One (R 469 :: r1516) - | 2415 -> One (R 471 :: r1638) - | 3042 -> One (R 473 :: r1895) + | 158 -> One (R 454 :: r115) + | 192 -> One (R 454 :: r164) + | 584 -> One (R 454 :: r423) + | 874 -> One (R 454 :: r657) + | 1038 -> One (R 454 :: r805) + | 1047 -> One (R 454 :: r817) + | 1390 -> One (R 454 :: r1024) + | 2092 -> One (R 454 :: r1396) + | 2165 -> One (R 454 :: r1471) + | 2171 -> One (R 454 :: r1479) + | 2182 -> One (R 454 :: r1485) + | 2193 -> One (R 454 :: r1488) + | 2197 -> One (R 454 :: r1499) + | 2218 -> One (R 454 :: r1513) + | 2234 -> One (R 454 :: r1523) + | 2251 -> One (R 454 :: r1527) + | 2255 -> One (R 454 :: r1540) + | 2284 -> One (R 454 :: r1558) + | 2324 -> One (R 454 :: r1580) + | 2328 -> One (R 454 :: r1584) + | 2329 -> One (R 454 :: r1588) + | 2340 -> One (R 454 :: r1604) + | 2348 -> One (R 454 :: r1613) + | 2406 -> One (R 454 :: r1635) + | 2426 -> One (R 454 :: r1648) + | 2454 -> One (R 454 :: r1663) + | 2590 -> One (R 454 :: r1703) + | 2720 -> One (R 454 :: r1773) + | 2768 -> One (R 454 :: r1805) + | 2799 -> One (R 454 :: r1823) + | 2453 -> One (R 456 :: r1655) + | 2796 -> One (R 456 :: r1813) + | 2798 -> One (R 458 :: r1814) + | 1490 -> One (R 460 :: r1084) + | 2227 -> One (R 460 :: r1514) + | 2412 -> One (R 460 :: r1636) + | 2446 -> One (R 460 :: r1650) + | 2468 -> One (R 460 :: r1665) + | 2478 -> One (R 460 :: r1667) + | 2788 -> One (R 460 :: r1807) + | 3043 -> One (R 460 :: r1896) + | 3054 -> One (R 460 :: r1902) + | 3059 -> One (R 460 :: r1905) + | 2689 -> One (R 462 :: r1733) + | 2779 -> One (R 462 :: r1806) + | 597 -> One (R 465 :: r453) + | 2436 -> One (R 465 :: r1649) + | 2230 -> One (R 469 :: r1515) + | 2415 -> One (R 471 :: r1637) + | 3041 -> One (R 473 :: r1894) + | 3049 -> One (R 475 :: r1898) | 3050 -> One (R 475 :: r1899) | 3051 -> One (R 475 :: r1900) - | 3052 -> One (R 475 :: r1901) | 783 -> One ([R 481]) | 787 -> One ([R 483]) | 1781 -> One ([R 486]) @@ -2742,10 +2741,10 @@ let recover = | 2595 -> One ([R 490]) | 2594 -> One ([R 492]) | 2592 -> One ([R 493]) - | 2975 -> One ([R 505]) - | 2965 -> One ([R 507]) - | 2973 -> One ([R 508]) - | 2972 -> One ([R 510]) + | 2974 -> One ([R 505]) + | 2964 -> One ([R 507]) + | 2972 -> One ([R 508]) + | 2971 -> One ([R 510]) | 264 -> One ([R 513]) | 294 -> One ([R 514]) | 1025 -> One ([R 521]) @@ -2821,12 +2820,12 @@ let recover = | 107 -> One ([R 656]) | 101 -> One ([R 658]) | 499 -> One ([R 659]) - | 498 -> One (R 660 :: r366) - | 238 -> One (R 661 :: r219) + | 498 -> One (R 660 :: r365) + | 238 -> One (R 661 :: r218) | 239 -> One ([R 662]) - | 784 -> One (R 663 :: r588) + | 784 -> One (R 663 :: r587) | 785 -> One ([R 664]) - | 1399 -> One (R 665 :: r1033) + | 1399 -> One (R 665 :: r1032) | 1400 -> One ([R 666]) | 1401 -> One ([R 667]) | 1406 -> One ([R 668]) @@ -2849,7 +2848,7 @@ let recover = | 2184 -> One ([R 757]) | 2187 -> One ([R 758]) | 2185 -> One ([R 759]) - | 2369 -> One (R 760 :: r1619) + | 2369 -> One (R 760 :: r1618) | 2011 -> One ([R 761]) | 2632 -> One ([R 766]) | 2633 -> One ([R 767]) @@ -2875,7 +2874,7 @@ let recover = | 397 -> One ([R 861]) | 394 -> One ([R 864]) | 1993 -> One ([R 867]) - | 2941 -> One ([R 870]) + | 2940 -> One ([R 870]) | 491 -> One ([R 873]) | 1507 -> One ([R 876]) | 1164 -> One ([R 878]) @@ -3065,21 +3064,21 @@ let recover = | 2466 -> One ([R 1233]) | 617 -> One ([R 1235]) | 616 -> One ([R 1236]) - | 3033 -> One ([R 1240]) - | 3034 -> One ([R 1241]) - | 3036 -> One ([R 1242]) - | 3037 -> One ([R 1243]) - | 3035 -> One ([R 1244]) - | 3032 -> One ([R 1245]) - | 3025 -> One ([R 1247]) - | 3026 -> One ([R 1248]) - | 3028 -> One ([R 1249]) - | 3029 -> One ([R 1250]) - | 3027 -> One ([R 1251]) - | 3024 -> One ([R 1252]) - | 3038 -> One ([R 1256]) - | 173 -> One (R 1267 :: r148) - | 1056 -> One (R 1267 :: r823) + | 3032 -> One ([R 1240]) + | 3033 -> One ([R 1241]) + | 3035 -> One ([R 1242]) + | 3036 -> One ([R 1243]) + | 3034 -> One ([R 1244]) + | 3031 -> One ([R 1245]) + | 3024 -> One ([R 1247]) + | 3025 -> One ([R 1248]) + | 3027 -> One ([R 1249]) + | 3028 -> One ([R 1250]) + | 3026 -> One ([R 1251]) + | 3023 -> One ([R 1252]) + | 3037 -> One ([R 1256]) + | 173 -> One (R 1267 :: r147) + | 1056 -> One (R 1267 :: r822) | 1070 -> One ([R 1268]) | 151 -> One ([R 1270]) | 296 -> One ([R 1272]) @@ -3108,500 +3107,500 @@ let recover = | 2304 -> One ([R 1308]) | 1059 -> One ([R 1315]) | 1060 -> One ([R 1316]) - | 1753 -> One (S (T T_WITH) :: r1221) + | 1753 -> One (S (T T_WITH) :: r1220) | 153 | 223 | 283 | 306 | 434 | 1979 | 2852 -> One (S (T T_UNDERSCORE) :: r87) - | 297 -> One (S (T T_UNDERSCORE) :: r278) - | 374 -> One (S (T T_UNDERSCORE) :: r316) - | 386 -> One (S (T T_UNDERSCORE) :: r324) - | 1985 -> One (S (T T_UNDERSCORE) :: r1343) - | 2933 -> One (S (T T_UNDERSCORE) :: r1870) - | 579 -> One (S (T T_TYPE) :: r421) - | 1968 -> One (S (T T_STAR) :: r1337) - | 3040 -> One (S (T T_SEMISEMI) :: r1894) - | 3047 -> One (S (T T_SEMISEMI) :: r1898) - | 2962 -> One (S (T T_RPAREN) :: r182) - | 285 -> One (S (T T_RPAREN) :: r271) - | 384 | 478 -> One (S (T T_RPAREN) :: r321) - | 702 -> One (S (T T_RPAREN) :: r556) - | 765 -> One (S (T T_RPAREN) :: r587) - | 920 -> One (S (T T_RPAREN) :: r735) - | 922 -> One (S (T T_RPAREN) :: r736) - | 972 -> One (S (T T_RPAREN) :: r767) - | 976 -> One (S (T T_RPAREN) :: r768) - | 995 -> One (S (T T_RPAREN) :: r779) - | 997 -> One (S (T T_RPAREN) :: r780) - | 1040 -> One (S (T T_RPAREN) :: r807) - | 1112 -> One (S (T T_RPAREN) :: r850) - | 1118 -> One (S (T T_RPAREN) :: r851) - | 1125 -> One (S (T T_RPAREN) :: r854) - | 1129 -> One (S (T T_RPAREN) :: r855) - | 1394 -> One (S (T T_RPAREN) :: r1030) - | 1644 -> One (S (T T_RPAREN) :: r1152) - | 2052 -> One (S (T T_RPAREN) :: r1365) - | 2054 -> One (S (T T_RPAREN) :: r1366) - | 2963 -> One (S (T T_RPAREN) :: r1876) - | 1942 | 2619 -> One (S (T T_RBRACKET) :: r507) - | 1736 -> One (S (T T_RBRACKET) :: r1211) - | 1742 -> One (S (T T_RBRACKET) :: r1212) - | 1744 -> One (S (T T_RBRACKET) :: r1213) - | 1747 -> One (S (T T_RBRACKET) :: r1214) - | 1857 -> One (S (T T_RBRACKET) :: r1256) - | 1862 -> One (S (T T_RBRACKET) :: r1257) - | 310 -> One (S (T T_QUOTE) :: r295) - | 371 -> One (S (T T_QUOTE) :: r312) - | 2195 -> One (S (T T_OPEN) :: r1496) - | 2332 -> One (S (T T_OPEN) :: r1596) + | 297 -> One (S (T T_UNDERSCORE) :: r277) + | 374 -> One (S (T T_UNDERSCORE) :: r315) + | 386 -> One (S (T T_UNDERSCORE) :: r323) + | 1985 -> One (S (T T_UNDERSCORE) :: r1342) + | 2932 -> One (S (T T_UNDERSCORE) :: r1869) + | 579 -> One (S (T T_TYPE) :: r420) + | 1968 -> One (S (T T_STAR) :: r1336) + | 3039 -> One (S (T T_SEMISEMI) :: r1893) + | 3046 -> One (S (T T_SEMISEMI) :: r1897) + | 2961 -> One (S (T T_RPAREN) :: r181) + | 285 -> One (S (T T_RPAREN) :: r270) + | 384 | 478 -> One (S (T T_RPAREN) :: r320) + | 702 -> One (S (T T_RPAREN) :: r555) + | 765 -> One (S (T T_RPAREN) :: r586) + | 920 -> One (S (T T_RPAREN) :: r734) + | 922 -> One (S (T T_RPAREN) :: r735) + | 972 -> One (S (T T_RPAREN) :: r766) + | 976 -> One (S (T T_RPAREN) :: r767) + | 995 -> One (S (T T_RPAREN) :: r778) + | 997 -> One (S (T T_RPAREN) :: r779) + | 1040 -> One (S (T T_RPAREN) :: r806) + | 1112 -> One (S (T T_RPAREN) :: r849) + | 1118 -> One (S (T T_RPAREN) :: r850) + | 1125 -> One (S (T T_RPAREN) :: r853) + | 1129 -> One (S (T T_RPAREN) :: r854) + | 1394 -> One (S (T T_RPAREN) :: r1029) + | 1644 -> One (S (T T_RPAREN) :: r1151) + | 2052 -> One (S (T T_RPAREN) :: r1364) + | 2054 -> One (S (T T_RPAREN) :: r1365) + | 2962 -> One (S (T T_RPAREN) :: r1875) + | 1942 | 2619 -> One (S (T T_RBRACKET) :: r506) + | 1736 -> One (S (T T_RBRACKET) :: r1210) + | 1742 -> One (S (T T_RBRACKET) :: r1211) + | 1744 -> One (S (T T_RBRACKET) :: r1212) + | 1747 -> One (S (T T_RBRACKET) :: r1213) + | 1857 -> One (S (T T_RBRACKET) :: r1255) + | 1862 -> One (S (T T_RBRACKET) :: r1256) + | 310 -> One (S (T T_QUOTE) :: r294) + | 371 -> One (S (T T_QUOTE) :: r311) + | 2195 -> One (S (T T_OPEN) :: r1495) + | 2332 -> One (S (T T_OPEN) :: r1595) | 269 -> One (S (T T_MODULE) :: r95) - | 477 -> One (S (T T_MINUSGREATER) :: r266) - | 396 -> One (S (T T_MINUSGREATER) :: r299) - | 361 -> One (S (T T_MINUSGREATER) :: r309) - | 409 -> One (S (T T_MINUSGREATER) :: r335) - | 425 -> One (S (T T_MINUSGREATER) :: r339) - | 446 -> One (S (T T_MINUSGREATER) :: r351) - | 462 -> One (S (T T_MINUSGREATER) :: r355) - | 1045 -> One (S (T T_MINUSGREATER) :: r814) - | 1077 -> One (S (T T_MINUSGREATER) :: r839) - | 1996 -> One (S (T T_MINUSGREATER) :: r1350) - | 2000 -> One (S (T T_MINUSGREATER) :: r1352) - | 2382 -> One (S (T T_MINUSGREATER) :: r1629) - | 2611 -> One (S (T T_MINUSGREATER) :: r1708) - | 2827 -> One (S (T T_MINUSGREATER) :: r1832) - | 2835 -> One (S (T T_MINUSGREATER) :: r1835) - | 2843 -> One (S (T T_MINUSGREATER) :: r1838) - | 2864 -> One (S (T T_MINUSGREATER) :: r1850) - | 2880 -> One (S (T T_MINUSGREATER) :: r1854) - | 2898 -> One (S (T T_MINUSGREATER) :: r1861) - | 2916 -> One (S (T T_MINUSGREATER) :: r1866) + | 477 -> One (S (T T_MINUSGREATER) :: r265) + | 396 -> One (S (T T_MINUSGREATER) :: r298) + | 361 -> One (S (T T_MINUSGREATER) :: r308) + | 409 -> One (S (T T_MINUSGREATER) :: r334) + | 425 -> One (S (T T_MINUSGREATER) :: r338) + | 446 -> One (S (T T_MINUSGREATER) :: r350) + | 462 -> One (S (T T_MINUSGREATER) :: r354) + | 1045 -> One (S (T T_MINUSGREATER) :: r813) + | 1077 -> One (S (T T_MINUSGREATER) :: r838) + | 1996 -> One (S (T T_MINUSGREATER) :: r1349) + | 2000 -> One (S (T T_MINUSGREATER) :: r1351) + | 2382 -> One (S (T T_MINUSGREATER) :: r1628) + | 2611 -> One (S (T T_MINUSGREATER) :: r1707) + | 2827 -> One (S (T T_MINUSGREATER) :: r1831) + | 2835 -> One (S (T T_MINUSGREATER) :: r1834) + | 2843 -> One (S (T T_MINUSGREATER) :: r1837) + | 2864 -> One (S (T T_MINUSGREATER) :: r1849) + | 2880 -> One (S (T T_MINUSGREATER) :: r1853) + | 2898 -> One (S (T T_MINUSGREATER) :: r1860) + | 2916 -> One (S (T T_MINUSGREATER) :: r1865) | 86 -> One (S (T T_LPAREN) :: r51) | 127 -> One (S (T T_LIDENT) :: r66) - | 234 -> One (S (T T_LIDENT) :: r203) - | 235 -> One (S (T T_LIDENT) :: r211) - | 531 -> One (S (T T_LIDENT) :: r376) - | 532 -> One (S (T T_LIDENT) :: r379) - | 545 -> One (S (T T_LIDENT) :: r393) - | 546 -> One (S (T T_LIDENT) :: r399) - | 552 -> One (S (T T_LIDENT) :: r400) - | 553 -> One (S (T T_LIDENT) :: r404) - | 628 -> One (S (T T_LIDENT) :: r493) - | 629 -> One (S (T T_LIDENT) :: r499) - | 635 -> One (S (T T_LIDENT) :: r500) - | 636 -> One (S (T T_LIDENT) :: r504) - | 683 -> One (S (T T_LIDENT) :: r543) - | 684 -> One (S (T T_LIDENT) :: r547) - | 716 -> One (S (T T_LIDENT) :: r562) - | 717 -> One (S (T T_LIDENT) :: r566) - | 744 -> One (S (T T_LIDENT) :: r574) - | 745 -> One (S (T T_LIDENT) :: r578) - | 805 -> One (S (T T_LIDENT) :: r594) - | 806 -> One (S (T T_LIDENT) :: r598) - | 818 -> One (S (T T_LIDENT) :: r600) - | 819 -> One (S (T T_LIDENT) :: r604) - | 832 -> One (S (T T_LIDENT) :: r609) - | 833 -> One (S (T T_LIDENT) :: r613) - | 844 -> One (S (T T_LIDENT) :: r615) - | 863 -> One (S (T T_LIDENT) :: r627) - | 944 -> One (S (T T_LIDENT) :: r754) - | 1015 -> One (S (T T_LIDENT) :: r787) - | 1016 -> One (S (T T_LIDENT) :: r790) - | 1154 -> One (S (T T_LIDENT) :: r875) - | 1172 -> One (S (T T_LIDENT) :: r889) - | 1173 -> One (S (T T_LIDENT) :: r892) - | 1178 -> One (S (T T_LIDENT) :: r893) - | 1182 -> One (S (T T_LIDENT) :: r895) - | 1192 -> One (S (T T_LIDENT) :: r902) - | 1193 -> One (S (T T_LIDENT) :: r905) - | 1371 -> One (S (T T_LIDENT) :: r1011) - | 1372 -> One (S (T T_LIDENT) :: r1014) - | 1452 -> One (S (T T_LIDENT) :: r1063) - | 1453 -> One (S (T T_LIDENT) :: r1067) - | 1809 -> One (S (T T_LIDENT) :: r1237) - | 1810 -> One (S (T T_LIDENT) :: r1240) - | 1948 -> One (S (T T_LIDENT) :: r1330) - | 2110 -> One (S (T T_LIDENT) :: r1408) - | 2272 -> One (S (T T_LIDENT) :: r1546) - | 2307 -> One (S (T T_LIDENT) :: r1570) - | 2398 -> One (S (T T_LIDENT) :: r1633) - | 2531 -> One (S (T T_LIDENT) :: r1678) - | 2532 -> One (S (T T_LIDENT) :: r1682) - | 2567 -> One (S (T T_LIDENT) :: r1693) - | 2568 -> One (S (T T_LIDENT) :: r1696) - | 559 | 695 -> One (S (T T_INT) :: r405) - | 564 | 696 -> One (S (T T_INT) :: r406) - | 1212 -> One (S (T T_IN) :: r912) - | 2352 -> One (S (T T_IN) :: r1616) - | 878 -> One (S (T T_GREATERRBRACE) :: r664) - | 1851 -> One (S (T T_GREATERRBRACE) :: r1255) - | 222 -> One (S (T T_GREATER) :: r183) - | 2598 -> One (S (T T_GREATER) :: r1705) - | 1093 -> One (S (T T_EQUAL) :: r845) - | 1416 -> One (S (T T_EQUAL) :: r1040) - | 1424 -> One (S (T T_EQUAL) :: r1046) - | 1427 -> One (S (T T_EQUAL) :: r1048) - | 1430 -> One (S (T T_EQUAL) :: r1050) - | 1434 -> One (S (T T_EQUAL) :: r1052) - | 1442 -> One (S (T T_EQUAL) :: r1057) - | 1445 -> One (S (T T_EQUAL) :: r1059) - | 1448 -> One (S (T T_EQUAL) :: r1061) - | 1475 -> One (S (T T_EQUAL) :: r1078) - | 1478 -> One (S (T T_EQUAL) :: r1080) - | 1481 -> One (S (T T_EQUAL) :: r1082) - | 1485 -> One (S (T T_EQUAL) :: r1084) - | 1634 -> One (S (T T_EQUAL) :: r1150) - | 1923 -> One (S (T T_EQUAL) :: r1296) - | 1931 -> One (S (T T_EQUAL) :: r1299) - | 2262 -> One (S (T T_EQUAL) :: r1543) - | 2280 -> One (S (T T_EQUAL) :: r1548) - | 2954 -> One (S (T T_EOF) :: r1874) - | 2958 -> One (S (T T_EOF) :: r1875) - | 2977 -> One (S (T T_EOF) :: r1881) - | 2981 -> One (S (T T_EOF) :: r1882) - | 2985 -> One (S (T T_EOF) :: r1883) - | 2988 -> One (S (T T_EOF) :: r1884) - | 2993 -> One (S (T T_EOF) :: r1885) - | 2997 -> One (S (T T_EOF) :: r1886) - | 3001 -> One (S (T T_EOF) :: r1887) - | 3005 -> One (S (T T_EOF) :: r1888) - | 3009 -> One (S (T T_EOF) :: r1889) - | 3012 -> One (S (T T_EOF) :: r1890) - | 3016 -> One (S (T T_EOF) :: r1891) - | 3064 -> One (S (T T_EOF) :: r1907) - | 1805 -> One (S (T T_END) :: r1236) + | 234 -> One (S (T T_LIDENT) :: r202) + | 235 -> One (S (T T_LIDENT) :: r210) + | 531 -> One (S (T T_LIDENT) :: r375) + | 532 -> One (S (T T_LIDENT) :: r378) + | 545 -> One (S (T T_LIDENT) :: r392) + | 546 -> One (S (T T_LIDENT) :: r398) + | 552 -> One (S (T T_LIDENT) :: r399) + | 553 -> One (S (T T_LIDENT) :: r403) + | 628 -> One (S (T T_LIDENT) :: r492) + | 629 -> One (S (T T_LIDENT) :: r498) + | 635 -> One (S (T T_LIDENT) :: r499) + | 636 -> One (S (T T_LIDENT) :: r503) + | 683 -> One (S (T T_LIDENT) :: r542) + | 684 -> One (S (T T_LIDENT) :: r546) + | 716 -> One (S (T T_LIDENT) :: r561) + | 717 -> One (S (T T_LIDENT) :: r565) + | 744 -> One (S (T T_LIDENT) :: r573) + | 745 -> One (S (T T_LIDENT) :: r577) + | 805 -> One (S (T T_LIDENT) :: r593) + | 806 -> One (S (T T_LIDENT) :: r597) + | 818 -> One (S (T T_LIDENT) :: r599) + | 819 -> One (S (T T_LIDENT) :: r603) + | 832 -> One (S (T T_LIDENT) :: r608) + | 833 -> One (S (T T_LIDENT) :: r612) + | 844 -> One (S (T T_LIDENT) :: r614) + | 863 -> One (S (T T_LIDENT) :: r626) + | 944 -> One (S (T T_LIDENT) :: r753) + | 1015 -> One (S (T T_LIDENT) :: r786) + | 1016 -> One (S (T T_LIDENT) :: r789) + | 1154 -> One (S (T T_LIDENT) :: r874) + | 1172 -> One (S (T T_LIDENT) :: r888) + | 1173 -> One (S (T T_LIDENT) :: r891) + | 1178 -> One (S (T T_LIDENT) :: r892) + | 1182 -> One (S (T T_LIDENT) :: r894) + | 1192 -> One (S (T T_LIDENT) :: r901) + | 1193 -> One (S (T T_LIDENT) :: r904) + | 1371 -> One (S (T T_LIDENT) :: r1010) + | 1372 -> One (S (T T_LIDENT) :: r1013) + | 1452 -> One (S (T T_LIDENT) :: r1062) + | 1453 -> One (S (T T_LIDENT) :: r1066) + | 1809 -> One (S (T T_LIDENT) :: r1236) + | 1810 -> One (S (T T_LIDENT) :: r1239) + | 1948 -> One (S (T T_LIDENT) :: r1329) + | 2110 -> One (S (T T_LIDENT) :: r1407) + | 2272 -> One (S (T T_LIDENT) :: r1545) + | 2307 -> One (S (T T_LIDENT) :: r1569) + | 2398 -> One (S (T T_LIDENT) :: r1632) + | 2531 -> One (S (T T_LIDENT) :: r1677) + | 2532 -> One (S (T T_LIDENT) :: r1681) + | 2567 -> One (S (T T_LIDENT) :: r1692) + | 2568 -> One (S (T T_LIDENT) :: r1695) + | 559 | 695 -> One (S (T T_INT) :: r404) + | 564 | 696 -> One (S (T T_INT) :: r405) + | 1212 -> One (S (T T_IN) :: r911) + | 2352 -> One (S (T T_IN) :: r1615) + | 878 -> One (S (T T_GREATERRBRACE) :: r663) + | 1851 -> One (S (T T_GREATERRBRACE) :: r1254) + | 222 -> One (S (T T_GREATER) :: r182) + | 2598 -> One (S (T T_GREATER) :: r1704) + | 1093 -> One (S (T T_EQUAL) :: r844) + | 1416 -> One (S (T T_EQUAL) :: r1039) + | 1424 -> One (S (T T_EQUAL) :: r1045) + | 1427 -> One (S (T T_EQUAL) :: r1047) + | 1430 -> One (S (T T_EQUAL) :: r1049) + | 1434 -> One (S (T T_EQUAL) :: r1051) + | 1442 -> One (S (T T_EQUAL) :: r1056) + | 1445 -> One (S (T T_EQUAL) :: r1058) + | 1448 -> One (S (T T_EQUAL) :: r1060) + | 1475 -> One (S (T T_EQUAL) :: r1077) + | 1478 -> One (S (T T_EQUAL) :: r1079) + | 1481 -> One (S (T T_EQUAL) :: r1081) + | 1485 -> One (S (T T_EQUAL) :: r1083) + | 1634 -> One (S (T T_EQUAL) :: r1149) + | 1923 -> One (S (T T_EQUAL) :: r1295) + | 1931 -> One (S (T T_EQUAL) :: r1298) + | 2262 -> One (S (T T_EQUAL) :: r1542) + | 2280 -> One (S (T T_EQUAL) :: r1547) + | 2953 -> One (S (T T_EOF) :: r1873) + | 2957 -> One (S (T T_EOF) :: r1874) + | 2976 -> One (S (T T_EOF) :: r1880) + | 2980 -> One (S (T T_EOF) :: r1881) + | 2984 -> One (S (T T_EOF) :: r1882) + | 2987 -> One (S (T T_EOF) :: r1883) + | 2992 -> One (S (T T_EOF) :: r1884) + | 2996 -> One (S (T T_EOF) :: r1885) + | 3000 -> One (S (T T_EOF) :: r1886) + | 3004 -> One (S (T T_EOF) :: r1887) + | 3008 -> One (S (T T_EOF) :: r1888) + | 3011 -> One (S (T T_EOF) :: r1889) + | 3015 -> One (S (T T_EOF) :: r1890) + | 3063 -> One (S (T T_EOF) :: r1906) + | 1805 -> One (S (T T_END) :: r1235) | 88 -> One (S (T T_DOTDOT) :: r52) - | 219 -> One (S (T T_DOTDOT) :: r179) - | 715 -> One (S (T T_DOTDOT) :: r561) - | 804 -> One (S (T T_DOTDOT) :: r593) - | 1451 -> One (S (T T_DOTDOT) :: r1062) - | 2646 -> One (S (T T_DOTDOT) :: r1718) - | 2647 -> One (S (T T_DOTDOT) :: r1719) - | 307 -> One (S (T T_DOT) :: r289) - | 398 -> One (S (T T_DOT) :: r332) - | 435 -> One (S (T T_DOT) :: r348) - | 609 | 1501 | 1574 -> One (S (T T_DOT) :: r469) - | 848 -> One (S (T T_DOT) :: r622) - | 913 -> One (S (T T_DOT) :: r733) - | 926 -> One (S (T T_DOT) :: r739) - | 961 -> One (S (T T_DOT) :: r759) - | 968 -> One (S (T T_DOT) :: r766) - | 982 -> One (S (T T_DOT) :: r772) - | 990 -> One (S (T T_DOT) :: r778) - | 3019 -> One (S (T T_DOT) :: r846) - | 1419 -> One (S (T T_DOT) :: r1044) - | 1470 -> One (S (T T_DOT) :: r1076) - | 1951 -> One (S (T T_DOT) :: r1332) - | 1994 -> One (S (T T_DOT) :: r1348) - | 2121 -> One (S (T T_DOT) :: r1421) - | 2816 -> One (S (T T_DOT) :: r1829) - | 2853 -> One (S (T T_DOT) :: r1847) - | 2967 -> One (S (T T_DOT) :: r1880) - | 623 -> One (S (T T_COLONRBRACKET) :: r481) - | 642 -> One (S (T T_COLONRBRACKET) :: r505) - | 792 -> One (S (T T_COLONRBRACKET) :: r590) - | 1646 -> One (S (T T_COLONRBRACKET) :: r1153) - | 1713 -> One (S (T T_COLONRBRACKET) :: r1204) - | 1718 -> One (S (T T_COLONRBRACKET) :: r1205) - | 1721 -> One (S (T T_COLONRBRACKET) :: r1206) - | 2033 -> One (S (T T_COLONRBRACKET) :: r1356) - | 2036 -> One (S (T T_COLONRBRACKET) :: r1357) - | 2039 -> One (S (T T_COLONRBRACKET) :: r1358) - | 220 | 1939 -> One (S (T T_COLONCOLON) :: r181) - | 246 -> One (S (T T_COLON) :: r240) - | 346 -> One (S (T T_COLON) :: r303) - | 355 -> One (S (T T_COLON) :: r307) - | 1042 -> One (S (T T_COLON) :: r810) - | 2376 -> One (S (T T_COLON) :: r1627) - | 2586 -> One (S (T T_COLON) :: r1703) - | 643 -> One (S (T T_BARRBRACKET) :: r506) - | 789 -> One (S (T T_BARRBRACKET) :: r589) - | 876 -> One (S (T T_BARRBRACKET) :: r659) - | 1723 -> One (S (T T_BARRBRACKET) :: r1207) - | 1728 -> One (S (T T_BARRBRACKET) :: r1208) - | 1731 -> One (S (T T_BARRBRACKET) :: r1209) - | 1734 -> One (S (T T_BARRBRACKET) :: r1210) - | 1868 -> One (S (T T_BARRBRACKET) :: r1258) - | 1871 -> One (S (T T_BARRBRACKET) :: r1259) - | 1874 -> One (S (T T_BARRBRACKET) :: r1260) - | 510 -> One (S (T T_BAR) :: r370) - | 2930 -> One (S (T T_AMPERSAND) :: r164) - | 543 -> One (S (N N_pattern) :: r389) - | 654 -> One (S (N N_pattern) :: r521) - | 730 -> One (S (N N_pattern) :: r569) - | 758 -> One (S (N N_pattern) :: r583) - | 799 -> One (S (N N_pattern) :: r592) - | 986 -> One (S (N N_pattern) :: r774) - | 1463 -> One (S (N N_pattern) :: r1069) - | 1661 -> One (S (N N_pattern) :: r1171) - | 1669 -> One (S (N N_pattern) :: r1177) - | 1677 -> One (S (N N_pattern) :: r1183) - | 2104 -> One (S (N N_pattern) :: r1401) - | 578 -> One (S (N N_module_type) :: r417) - | 1044 -> One (S (N N_module_type) :: r812) - | 1080 -> One (S (N N_module_type) :: r840) - | 1091 -> One (S (N N_module_type) :: r843) - | 1122 -> One (S (N N_module_type) :: r853) - | 1881 -> One (S (N N_module_type) :: r1266) - | 1884 -> One (S (N N_module_type) :: r1268) - | 1887 -> One (S (N N_module_type) :: r1270) - | 1892 -> One (S (N N_module_type) :: r1272) - | 1895 -> One (S (N N_module_type) :: r1274) - | 1898 -> One (S (N N_module_type) :: r1276) - | 1919 -> One (S (N N_module_type) :: r1294) - | 2047 -> One (S (N N_module_type) :: r1364) - | 2082 -> One (S (N N_module_type) :: r1388) - | 873 -> One (S (N N_module_expr) :: r655) - | 908 -> One (S (N N_let_pattern) :: r729) - | 933 -> One (S (N N_let_pattern) :: r742) - | 626 -> One (S (N N_fun_expr) :: r483) - | 880 -> One (S (N N_fun_expr) :: r667) - | 889 -> One (S (N N_fun_expr) :: r689) - | 1165 -> One (S (N N_fun_expr) :: r885) - | 1191 -> One (S (N N_fun_expr) :: r901) - | 1217 -> One (S (N N_fun_expr) :: r913) - | 1223 -> One (S (N N_fun_expr) :: r917) - | 1233 -> One (S (N N_fun_expr) :: r921) - | 1244 -> One (S (N N_fun_expr) :: r927) - | 1250 -> One (S (N N_fun_expr) :: r931) - | 1256 -> One (S (N N_fun_expr) :: r935) - | 1262 -> One (S (N N_fun_expr) :: r939) - | 1268 -> One (S (N N_fun_expr) :: r943) - | 1274 -> One (S (N N_fun_expr) :: r947) - | 1280 -> One (S (N N_fun_expr) :: r951) - | 1286 -> One (S (N N_fun_expr) :: r955) - | 1292 -> One (S (N N_fun_expr) :: r959) - | 1298 -> One (S (N N_fun_expr) :: r963) - | 1304 -> One (S (N N_fun_expr) :: r967) - | 1310 -> One (S (N N_fun_expr) :: r971) - | 1316 -> One (S (N N_fun_expr) :: r975) - | 1322 -> One (S (N N_fun_expr) :: r979) - | 1328 -> One (S (N N_fun_expr) :: r983) - | 1334 -> One (S (N N_fun_expr) :: r987) - | 1340 -> One (S (N N_fun_expr) :: r991) - | 1346 -> One (S (N N_fun_expr) :: r995) - | 1352 -> One (S (N N_fun_expr) :: r999) - | 1358 -> One (S (N N_fun_expr) :: r1003) - | 1364 -> One (S (N N_fun_expr) :: r1007) - | 1384 -> One (S (N N_fun_expr) :: r1019) - | 1522 -> One (S (N N_fun_expr) :: r1103) - | 1531 -> One (S (N N_fun_expr) :: r1110) - | 1540 -> One (S (N N_fun_expr) :: r1117) - | 1550 -> One (S (N N_fun_expr) :: r1121) - | 1559 -> One (S (N N_fun_expr) :: r1125) - | 1568 -> One (S (N N_fun_expr) :: r1129) - | 1579 -> One (S (N N_fun_expr) :: r1133) - | 1588 -> One (S (N N_fun_expr) :: r1137) - | 1597 -> One (S (N N_fun_expr) :: r1141) - | 1604 -> One (S (N N_fun_expr) :: r1145) - | 1651 -> One (S (N N_fun_expr) :: r1154) - | 1692 -> One (S (N N_fun_expr) :: r1192) - | 1791 -> One (S (N N_fun_expr) :: r1228) - | 1798 -> One (S (N N_fun_expr) :: r1232) - | 228 -> One (Sub (r3) :: r187) - | 604 -> One (Sub (r3) :: r460) - | 624 -> One (Sub (r3) :: r482) - | 867 -> One (Sub (r3) :: r634) - | 902 -> One (Sub (r3) :: r707) - | 1149 -> One (Sub (r3) :: r871) - | 2106 -> One (Sub (r3) :: r1402) + | 219 -> One (S (T T_DOTDOT) :: r178) + | 715 -> One (S (T T_DOTDOT) :: r560) + | 804 -> One (S (T T_DOTDOT) :: r592) + | 1451 -> One (S (T T_DOTDOT) :: r1061) + | 2646 -> One (S (T T_DOTDOT) :: r1717) + | 2647 -> One (S (T T_DOTDOT) :: r1718) + | 307 -> One (S (T T_DOT) :: r288) + | 398 -> One (S (T T_DOT) :: r331) + | 435 -> One (S (T T_DOT) :: r347) + | 609 | 1501 | 1574 -> One (S (T T_DOT) :: r468) + | 848 -> One (S (T T_DOT) :: r621) + | 913 -> One (S (T T_DOT) :: r732) + | 926 -> One (S (T T_DOT) :: r738) + | 961 -> One (S (T T_DOT) :: r758) + | 968 -> One (S (T T_DOT) :: r765) + | 982 -> One (S (T T_DOT) :: r771) + | 990 -> One (S (T T_DOT) :: r777) + | 3018 -> One (S (T T_DOT) :: r845) + | 1419 -> One (S (T T_DOT) :: r1043) + | 1470 -> One (S (T T_DOT) :: r1075) + | 1951 -> One (S (T T_DOT) :: r1331) + | 1994 -> One (S (T T_DOT) :: r1347) + | 2121 -> One (S (T T_DOT) :: r1420) + | 2816 -> One (S (T T_DOT) :: r1828) + | 2853 -> One (S (T T_DOT) :: r1846) + | 2966 -> One (S (T T_DOT) :: r1879) + | 623 -> One (S (T T_COLONRBRACKET) :: r480) + | 642 -> One (S (T T_COLONRBRACKET) :: r504) + | 792 -> One (S (T T_COLONRBRACKET) :: r589) + | 1646 -> One (S (T T_COLONRBRACKET) :: r1152) + | 1713 -> One (S (T T_COLONRBRACKET) :: r1203) + | 1718 -> One (S (T T_COLONRBRACKET) :: r1204) + | 1721 -> One (S (T T_COLONRBRACKET) :: r1205) + | 2033 -> One (S (T T_COLONRBRACKET) :: r1355) + | 2036 -> One (S (T T_COLONRBRACKET) :: r1356) + | 2039 -> One (S (T T_COLONRBRACKET) :: r1357) + | 220 | 1939 -> One (S (T T_COLONCOLON) :: r180) + | 246 -> One (S (T T_COLON) :: r239) + | 346 -> One (S (T T_COLON) :: r302) + | 355 -> One (S (T T_COLON) :: r306) + | 1042 -> One (S (T T_COLON) :: r809) + | 2376 -> One (S (T T_COLON) :: r1626) + | 2586 -> One (S (T T_COLON) :: r1702) + | 643 -> One (S (T T_BARRBRACKET) :: r505) + | 789 -> One (S (T T_BARRBRACKET) :: r588) + | 876 -> One (S (T T_BARRBRACKET) :: r658) + | 1723 -> One (S (T T_BARRBRACKET) :: r1206) + | 1728 -> One (S (T T_BARRBRACKET) :: r1207) + | 1731 -> One (S (T T_BARRBRACKET) :: r1208) + | 1734 -> One (S (T T_BARRBRACKET) :: r1209) + | 1868 -> One (S (T T_BARRBRACKET) :: r1257) + | 1871 -> One (S (T T_BARRBRACKET) :: r1258) + | 1874 -> One (S (T T_BARRBRACKET) :: r1259) + | 510 -> One (S (T T_BAR) :: r369) + | 2929 -> One (S (T T_AMPERSAND) :: r163) + | 543 -> One (S (N N_pattern) :: r388) + | 654 -> One (S (N N_pattern) :: r520) + | 730 -> One (S (N N_pattern) :: r568) + | 758 -> One (S (N N_pattern) :: r582) + | 799 -> One (S (N N_pattern) :: r591) + | 986 -> One (S (N N_pattern) :: r773) + | 1463 -> One (S (N N_pattern) :: r1068) + | 1661 -> One (S (N N_pattern) :: r1170) + | 1669 -> One (S (N N_pattern) :: r1176) + | 1677 -> One (S (N N_pattern) :: r1182) + | 2104 -> One (S (N N_pattern) :: r1400) + | 578 -> One (S (N N_module_type) :: r416) + | 1044 -> One (S (N N_module_type) :: r811) + | 1080 -> One (S (N N_module_type) :: r839) + | 1091 -> One (S (N N_module_type) :: r842) + | 1122 -> One (S (N N_module_type) :: r852) + | 1881 -> One (S (N N_module_type) :: r1265) + | 1884 -> One (S (N N_module_type) :: r1267) + | 1887 -> One (S (N N_module_type) :: r1269) + | 1892 -> One (S (N N_module_type) :: r1271) + | 1895 -> One (S (N N_module_type) :: r1273) + | 1898 -> One (S (N N_module_type) :: r1275) + | 1919 -> One (S (N N_module_type) :: r1293) + | 2047 -> One (S (N N_module_type) :: r1363) + | 2082 -> One (S (N N_module_type) :: r1387) + | 873 -> One (S (N N_module_expr) :: r654) + | 908 -> One (S (N N_let_pattern) :: r728) + | 933 -> One (S (N N_let_pattern) :: r741) + | 626 -> One (S (N N_fun_expr) :: r482) + | 880 -> One (S (N N_fun_expr) :: r666) + | 889 -> One (S (N N_fun_expr) :: r688) + | 1165 -> One (S (N N_fun_expr) :: r884) + | 1191 -> One (S (N N_fun_expr) :: r900) + | 1217 -> One (S (N N_fun_expr) :: r912) + | 1223 -> One (S (N N_fun_expr) :: r916) + | 1233 -> One (S (N N_fun_expr) :: r920) + | 1244 -> One (S (N N_fun_expr) :: r926) + | 1250 -> One (S (N N_fun_expr) :: r930) + | 1256 -> One (S (N N_fun_expr) :: r934) + | 1262 -> One (S (N N_fun_expr) :: r938) + | 1268 -> One (S (N N_fun_expr) :: r942) + | 1274 -> One (S (N N_fun_expr) :: r946) + | 1280 -> One (S (N N_fun_expr) :: r950) + | 1286 -> One (S (N N_fun_expr) :: r954) + | 1292 -> One (S (N N_fun_expr) :: r958) + | 1298 -> One (S (N N_fun_expr) :: r962) + | 1304 -> One (S (N N_fun_expr) :: r966) + | 1310 -> One (S (N N_fun_expr) :: r970) + | 1316 -> One (S (N N_fun_expr) :: r974) + | 1322 -> One (S (N N_fun_expr) :: r978) + | 1328 -> One (S (N N_fun_expr) :: r982) + | 1334 -> One (S (N N_fun_expr) :: r986) + | 1340 -> One (S (N N_fun_expr) :: r990) + | 1346 -> One (S (N N_fun_expr) :: r994) + | 1352 -> One (S (N N_fun_expr) :: r998) + | 1358 -> One (S (N N_fun_expr) :: r1002) + | 1364 -> One (S (N N_fun_expr) :: r1006) + | 1384 -> One (S (N N_fun_expr) :: r1018) + | 1522 -> One (S (N N_fun_expr) :: r1102) + | 1531 -> One (S (N N_fun_expr) :: r1109) + | 1540 -> One (S (N N_fun_expr) :: r1116) + | 1550 -> One (S (N N_fun_expr) :: r1120) + | 1559 -> One (S (N N_fun_expr) :: r1124) + | 1568 -> One (S (N N_fun_expr) :: r1128) + | 1579 -> One (S (N N_fun_expr) :: r1132) + | 1588 -> One (S (N N_fun_expr) :: r1136) + | 1597 -> One (S (N N_fun_expr) :: r1140) + | 1604 -> One (S (N N_fun_expr) :: r1144) + | 1651 -> One (S (N N_fun_expr) :: r1153) + | 1692 -> One (S (N N_fun_expr) :: r1191) + | 1791 -> One (S (N N_fun_expr) :: r1227) + | 1798 -> One (S (N N_fun_expr) :: r1231) + | 228 -> One (Sub (r3) :: r186) + | 604 -> One (Sub (r3) :: r459) + | 624 -> One (Sub (r3) :: r481) + | 867 -> One (Sub (r3) :: r633) + | 902 -> One (Sub (r3) :: r706) + | 1149 -> One (Sub (r3) :: r870) + | 2106 -> One (Sub (r3) :: r1401) | 2 -> One (Sub (r13) :: r14) | 56 -> One (Sub (r13) :: r15) | 60 -> One (Sub (r13) :: r22) - | 226 -> One (Sub (r13) :: r186) - | 595 -> One (Sub (r13) :: r453) - | 1240 -> One (Sub (r13) :: r926) - | 2102 -> One (Sub (r13) :: r1400) - | 2108 -> One (Sub (r13) :: r1405) - | 2333 -> One (Sub (r13) :: r1601) - | 760 -> One (Sub (r24) :: r584) - | 1465 -> One (Sub (r24) :: r1070) - | 1467 -> One (Sub (r24) :: r1072) - | 245 -> One (Sub (r26) :: r235) - | 354 -> One (Sub (r26) :: r305) - | 1005 -> One (Sub (r26) :: r781) - | 1965 -> One (Sub (r26) :: r1334) - | 1970 -> One (Sub (r26) :: r1339) - | 1978 -> One (Sub (r26) :: r1340) - | 271 -> One (Sub (r28) :: r260) - | 282 -> One (Sub (r28) :: r269) - | 305 -> One (Sub (r28) :: r284) - | 328 -> One (Sub (r28) :: r296) - | 334 -> One (Sub (r28) :: r297) - | 341 -> One (Sub (r28) :: r300) - | 366 -> One (Sub (r28) :: r310) - | 406 -> One (Sub (r28) :: r333) - | 414 -> One (Sub (r28) :: r336) - | 422 -> One (Sub (r28) :: r337) - | 430 -> One (Sub (r28) :: r340) - | 433 -> One (Sub (r28) :: r343) - | 443 -> One (Sub (r28) :: r349) - | 451 -> One (Sub (r28) :: r352) - | 459 -> One (Sub (r28) :: r353) - | 467 -> One (Sub (r28) :: r356) - | 470 -> One (Sub (r28) :: r357) - | 474 -> One (Sub (r28) :: r358) - | 2384 -> One (Sub (r28) :: r1632) - | 2608 -> One (Sub (r28) :: r1706) - | 2616 -> One (Sub (r28) :: r1709) - | 2824 -> One (Sub (r28) :: r1830) - | 2832 -> One (Sub (r28) :: r1833) - | 2840 -> One (Sub (r28) :: r1836) - | 2848 -> One (Sub (r28) :: r1839) - | 2851 -> One (Sub (r28) :: r1842) - | 2861 -> One (Sub (r28) :: r1848) - | 2869 -> One (Sub (r28) :: r1851) - | 2877 -> One (Sub (r28) :: r1852) - | 2885 -> One (Sub (r28) :: r1855) - | 2895 -> One (Sub (r28) :: r1859) - | 2903 -> One (Sub (r28) :: r1862) - | 2909 -> One (Sub (r28) :: r1863) - | 2913 -> One (Sub (r28) :: r1864) - | 2921 -> One (Sub (r28) :: r1867) - | 502 -> One (Sub (r32) :: r367) - | 1063 -> One (Sub (r32) :: r825) + | 226 -> One (Sub (r13) :: r185) + | 595 -> One (Sub (r13) :: r452) + | 1240 -> One (Sub (r13) :: r925) + | 2102 -> One (Sub (r13) :: r1399) + | 2108 -> One (Sub (r13) :: r1404) + | 2333 -> One (Sub (r13) :: r1600) + | 760 -> One (Sub (r24) :: r583) + | 1465 -> One (Sub (r24) :: r1069) + | 1467 -> One (Sub (r24) :: r1071) + | 245 -> One (Sub (r26) :: r234) + | 354 -> One (Sub (r26) :: r304) + | 1005 -> One (Sub (r26) :: r780) + | 1965 -> One (Sub (r26) :: r1333) + | 1970 -> One (Sub (r26) :: r1338) + | 1978 -> One (Sub (r26) :: r1339) + | 271 -> One (Sub (r28) :: r259) + | 282 -> One (Sub (r28) :: r268) + | 305 -> One (Sub (r28) :: r283) + | 328 -> One (Sub (r28) :: r295) + | 334 -> One (Sub (r28) :: r296) + | 341 -> One (Sub (r28) :: r299) + | 366 -> One (Sub (r28) :: r309) + | 406 -> One (Sub (r28) :: r332) + | 414 -> One (Sub (r28) :: r335) + | 422 -> One (Sub (r28) :: r336) + | 430 -> One (Sub (r28) :: r339) + | 433 -> One (Sub (r28) :: r342) + | 443 -> One (Sub (r28) :: r348) + | 451 -> One (Sub (r28) :: r351) + | 459 -> One (Sub (r28) :: r352) + | 467 -> One (Sub (r28) :: r355) + | 470 -> One (Sub (r28) :: r356) + | 474 -> One (Sub (r28) :: r357) + | 2384 -> One (Sub (r28) :: r1631) + | 2608 -> One (Sub (r28) :: r1705) + | 2616 -> One (Sub (r28) :: r1708) + | 2824 -> One (Sub (r28) :: r1829) + | 2832 -> One (Sub (r28) :: r1832) + | 2840 -> One (Sub (r28) :: r1835) + | 2848 -> One (Sub (r28) :: r1838) + | 2851 -> One (Sub (r28) :: r1841) + | 2861 -> One (Sub (r28) :: r1847) + | 2869 -> One (Sub (r28) :: r1850) + | 2877 -> One (Sub (r28) :: r1851) + | 2885 -> One (Sub (r28) :: r1854) + | 2895 -> One (Sub (r28) :: r1858) + | 2903 -> One (Sub (r28) :: r1861) + | 2909 -> One (Sub (r28) :: r1862) + | 2913 -> One (Sub (r28) :: r1863) + | 2921 -> One (Sub (r28) :: r1866) + | 502 -> One (Sub (r32) :: r366) + | 1063 -> One (Sub (r32) :: r824) | 136 -> One (Sub (r34) :: r90) - | 149 -> One (Sub (r34) :: r103) - | 237 -> One (Sub (r34) :: r212) - | 526 -> One (Sub (r34) :: r375) - | 651 -> One (Sub (r34) :: r520) - | 847 -> One (Sub (r34) :: r620) - | 925 -> One (Sub (r34) :: r737) - | 967 -> One (Sub (r34) :: r764) - | 989 -> One (Sub (r34) :: r775) - | 1066 -> One (Sub (r34) :: r828) - | 1141 -> One (Sub (r34) :: r858) - | 1438 -> One (Sub (r34) :: r1055) - | 2167 -> One (Sub (r34) :: r1474) - | 2205 -> One (Sub (r34) :: r1507) - | 2544 -> One (Sub (r34) :: r1685) - | 2289 -> One (Sub (r36) :: r1562) - | 2313 -> One (Sub (r36) :: r1573) - | 301 -> One (Sub (r60) :: r281) - | 308 -> One (Sub (r60) :: r290) - | 379 -> One (Sub (r60) :: r320) - | 390 -> One (Sub (r60) :: r327) - | 1989 -> One (Sub (r60) :: r1346) - | 2937 -> One (Sub (r60) :: r1873) - | 3022 -> One (Sub (r60) :: r1892) - | 3030 -> One (Sub (r60) :: r1893) + | 149 -> One (Sub (r34) :: r102) + | 237 -> One (Sub (r34) :: r211) + | 526 -> One (Sub (r34) :: r374) + | 651 -> One (Sub (r34) :: r519) + | 847 -> One (Sub (r34) :: r619) + | 925 -> One (Sub (r34) :: r736) + | 967 -> One (Sub (r34) :: r763) + | 989 -> One (Sub (r34) :: r774) + | 1066 -> One (Sub (r34) :: r827) + | 1141 -> One (Sub (r34) :: r857) + | 1438 -> One (Sub (r34) :: r1054) + | 2167 -> One (Sub (r34) :: r1473) + | 2205 -> One (Sub (r34) :: r1506) + | 2544 -> One (Sub (r34) :: r1684) + | 2289 -> One (Sub (r36) :: r1561) + | 2313 -> One (Sub (r36) :: r1572) + | 301 -> One (Sub (r60) :: r280) + | 308 -> One (Sub (r60) :: r289) + | 379 -> One (Sub (r60) :: r319) + | 390 -> One (Sub (r60) :: r326) + | 1989 -> One (Sub (r60) :: r1345) + | 2936 -> One (Sub (r60) :: r1872) + | 3021 -> One (Sub (r60) :: r1891) + | 3029 -> One (Sub (r60) :: r1892) | 135 -> One (Sub (r76) :: r89) | 144 -> One (Sub (r78) :: r101) - | 184 -> One (Sub (r78) :: r159) - | 197 -> One (Sub (r78) :: r169) - | 213 -> One (Sub (r78) :: r171) - | 950 -> One (Sub (r78) :: r756) - | 345 -> One (Sub (r106) :: r301) - | 2889 -> One (Sub (r106) :: r1858) - | 2147 -> One (Sub (r113) :: r1438) - | 160 -> One (Sub (r118) :: r119) - | 2738 -> One (Sub (r118) :: r1784) - | 659 -> One (Sub (r124) :: r529) - | 671 -> One (Sub (r124) :: r541) - | 2160 -> One (Sub (r152) :: r1468) - | 202 -> One (Sub (r154) :: r170) - | 176 -> One (Sub (r156) :: r158) - | 186 -> One (Sub (r161) :: r162) - | 734 -> One (Sub (r161) :: r573) - | 216 -> One (Sub (r177) :: r178) - | 2665 -> One (Sub (r177) :: r1730) - | 2680 -> One (Sub (r177) :: r1733) - | 900 -> One (Sub (r193) :: r704) - | 1208 -> One (Sub (r193) :: r910) - | 495 -> One (Sub (r214) :: r361) - | 243 -> One (Sub (r216) :: r223) - | 488 -> One (Sub (r216) :: r360) - | 244 -> One (Sub (r229) :: r231) - | 249 -> One (Sub (r244) :: r245) - | 287 -> One (Sub (r244) :: r272) - | 349 -> One (Sub (r244) :: r304) - | 252 -> One (Sub (r251) :: r253) - | 1055 -> One (Sub (r251) :: r819) - | 1097 -> One (Sub (r251) :: r847) - | 2711 -> One (Sub (r251) :: r1761) - | 518 -> One (Sub (r372) :: r374) - | 538 -> One (Sub (r380) :: r381) - | 539 -> One (Sub (r380) :: r382) - | 888 -> One (Sub (r380) :: r687) - | 890 -> One (Sub (r380) :: r692) - | 1021 -> One (Sub (r380) :: r791) - | 1022 -> One (Sub (r380) :: r792) - | 1156 -> One (Sub (r380) :: r876) - | 1180 -> One (Sub (r380) :: r894) - | 1198 -> One (Sub (r380) :: r906) - | 1377 -> One (Sub (r380) :: r1015) - | 1516 -> One (Sub (r380) :: r1102) - | 1815 -> One (Sub (r380) :: r1241) - | 2558 -> One (Sub (r380) :: r1689) - | 2573 -> One (Sub (r380) :: r1697) - | 1912 -> One (Sub (r411) :: r1291) - | 2714 -> One (Sub (r411) :: r1767) - | 2729 -> One (Sub (r411) :: r1780) - | 1640 -> One (Sub (r485) :: r1151) - | 627 -> One (Sub (r487) :: r490) - | 1184 -> One (Sub (r513) :: r896) - | 646 -> One (Sub (r517) :: r519) - | 668 -> One (Sub (r517) :: r540) - | 667 -> One (Sub (r524) :: r538) - | 690 -> One (Sub (r524) :: r548) - | 723 -> One (Sub (r524) :: r567) - | 751 -> One (Sub (r524) :: r579) - | 794 -> One (Sub (r524) :: r591) - | 812 -> One (Sub (r524) :: r599) - | 825 -> One (Sub (r524) :: r605) - | 829 -> One (Sub (r524) :: r608) - | 839 -> One (Sub (r524) :: r614) - | 978 -> One (Sub (r524) :: r769) - | 1459 -> One (Sub (r524) :: r1068) - | 2525 -> One (Sub (r524) :: r1677) - | 2538 -> One (Sub (r524) :: r1683) - | 666 -> One (Sub (r533) :: r535) - | 845 -> One (Sub (r617) :: r619) - | 857 -> One (Sub (r617) :: r626) - | 864 -> One (Sub (r617) :: r630) - | 865 -> One (Sub (r617) :: r633) - | 881 -> One (Sub (r673) :: r675) - | 887 -> One (Sub (r673) :: r686) - | 1752 -> One (Sub (r673) :: r1219) - | 883 -> One (Sub (r679) :: r681) - | 906 -> One (Sub (r725) :: r726) - | 943 -> One (Sub (r748) :: r750) - | 1410 -> One (Sub (r748) :: r1038) - | 2290 -> One (Sub (r748) :: r1567) - | 2314 -> One (Sub (r748) :: r1578) - | 965 -> One (Sub (r761) :: r763) - | 1101 -> One (Sub (r848) :: r849) - | 1659 -> One (Sub (r1164) :: r1168) - | 1657 -> One (Sub (r1166) :: r1167) - | 1749 -> One (Sub (r1215) :: r1217) - | 2088 -> One (Sub (r1278) :: r1392) - | 1929 -> One (Sub (r1281) :: r1297) - | 1944 -> One (Sub (r1309) :: r1310) - | 1945 -> One (Sub (r1321) :: r1323) - | 2620 -> One (Sub (r1321) :: r1711) - | 2623 -> One (Sub (r1321) :: r1713) - | 2637 -> One (Sub (r1321) :: r1715) - | 2640 -> One (Sub (r1321) :: r1717) - | 2648 -> One (Sub (r1321) :: r1721) - | 2651 -> One (Sub (r1321) :: r1723) - | 2656 -> One (Sub (r1321) :: r1725) - | 2659 -> One (Sub (r1321) :: r1727) - | 2490 -> One (Sub (r1422) :: r1674) - | 2504 -> One (Sub (r1422) :: r1676) - | 2331 -> One (Sub (r1441) :: r1591) - | 2422 -> One (Sub (r1444) :: r1642) - | 2156 -> One (Sub (r1465) :: r1467) - | 2736 -> One (Sub (r1491) :: r1783) - | 2344 -> One (Sub (r1502) :: r1608) - | 2254 -> One (Sub (r1534) :: r1536) - | 2283 -> One (Sub (r1553) :: r1555) - | 2375 -> One (Sub (r1621) :: r1623) - | 2418 -> One (Sub (r1621) :: r1641) - | 2747 -> One (Sub (r1787) :: r1788) - | 2752 -> One (Sub (r1787) :: r1789) + | 184 -> One (Sub (r78) :: r158) + | 197 -> One (Sub (r78) :: r168) + | 213 -> One (Sub (r78) :: r170) + | 950 -> One (Sub (r78) :: r755) + | 345 -> One (Sub (r105) :: r300) + | 2889 -> One (Sub (r105) :: r1857) + | 2147 -> One (Sub (r112) :: r1437) + | 160 -> One (Sub (r117) :: r118) + | 2738 -> One (Sub (r117) :: r1783) + | 659 -> One (Sub (r123) :: r528) + | 671 -> One (Sub (r123) :: r540) + | 2160 -> One (Sub (r151) :: r1467) + | 202 -> One (Sub (r153) :: r169) + | 176 -> One (Sub (r155) :: r157) + | 186 -> One (Sub (r160) :: r161) + | 734 -> One (Sub (r160) :: r572) + | 216 -> One (Sub (r176) :: r177) + | 2665 -> One (Sub (r176) :: r1729) + | 2680 -> One (Sub (r176) :: r1732) + | 900 -> One (Sub (r192) :: r703) + | 1208 -> One (Sub (r192) :: r909) + | 495 -> One (Sub (r213) :: r360) + | 243 -> One (Sub (r215) :: r222) + | 488 -> One (Sub (r215) :: r359) + | 244 -> One (Sub (r228) :: r230) + | 249 -> One (Sub (r243) :: r244) + | 287 -> One (Sub (r243) :: r271) + | 349 -> One (Sub (r243) :: r303) + | 252 -> One (Sub (r250) :: r252) + | 1055 -> One (Sub (r250) :: r818) + | 1097 -> One (Sub (r250) :: r846) + | 2711 -> One (Sub (r250) :: r1760) + | 518 -> One (Sub (r371) :: r373) + | 538 -> One (Sub (r379) :: r380) + | 539 -> One (Sub (r379) :: r381) + | 888 -> One (Sub (r379) :: r686) + | 890 -> One (Sub (r379) :: r691) + | 1021 -> One (Sub (r379) :: r790) + | 1022 -> One (Sub (r379) :: r791) + | 1156 -> One (Sub (r379) :: r875) + | 1180 -> One (Sub (r379) :: r893) + | 1198 -> One (Sub (r379) :: r905) + | 1377 -> One (Sub (r379) :: r1014) + | 1516 -> One (Sub (r379) :: r1101) + | 1815 -> One (Sub (r379) :: r1240) + | 2558 -> One (Sub (r379) :: r1688) + | 2573 -> One (Sub (r379) :: r1696) + | 1912 -> One (Sub (r410) :: r1290) + | 2714 -> One (Sub (r410) :: r1766) + | 2729 -> One (Sub (r410) :: r1779) + | 1640 -> One (Sub (r484) :: r1150) + | 627 -> One (Sub (r486) :: r489) + | 1184 -> One (Sub (r512) :: r895) + | 646 -> One (Sub (r516) :: r518) + | 668 -> One (Sub (r516) :: r539) + | 667 -> One (Sub (r523) :: r537) + | 690 -> One (Sub (r523) :: r547) + | 723 -> One (Sub (r523) :: r566) + | 751 -> One (Sub (r523) :: r578) + | 794 -> One (Sub (r523) :: r590) + | 812 -> One (Sub (r523) :: r598) + | 825 -> One (Sub (r523) :: r604) + | 829 -> One (Sub (r523) :: r607) + | 839 -> One (Sub (r523) :: r613) + | 978 -> One (Sub (r523) :: r768) + | 1459 -> One (Sub (r523) :: r1067) + | 2525 -> One (Sub (r523) :: r1676) + | 2538 -> One (Sub (r523) :: r1682) + | 666 -> One (Sub (r532) :: r534) + | 845 -> One (Sub (r616) :: r618) + | 857 -> One (Sub (r616) :: r625) + | 864 -> One (Sub (r616) :: r629) + | 865 -> One (Sub (r616) :: r632) + | 881 -> One (Sub (r672) :: r674) + | 887 -> One (Sub (r672) :: r685) + | 1752 -> One (Sub (r672) :: r1218) + | 883 -> One (Sub (r678) :: r680) + | 906 -> One (Sub (r724) :: r725) + | 943 -> One (Sub (r747) :: r749) + | 1410 -> One (Sub (r747) :: r1037) + | 2290 -> One (Sub (r747) :: r1566) + | 2314 -> One (Sub (r747) :: r1577) + | 965 -> One (Sub (r760) :: r762) + | 1101 -> One (Sub (r847) :: r848) + | 1659 -> One (Sub (r1163) :: r1167) + | 1657 -> One (Sub (r1165) :: r1166) + | 1749 -> One (Sub (r1214) :: r1216) + | 2088 -> One (Sub (r1277) :: r1391) + | 1929 -> One (Sub (r1280) :: r1296) + | 1944 -> One (Sub (r1308) :: r1309) + | 1945 -> One (Sub (r1320) :: r1322) + | 2620 -> One (Sub (r1320) :: r1710) + | 2623 -> One (Sub (r1320) :: r1712) + | 2637 -> One (Sub (r1320) :: r1714) + | 2640 -> One (Sub (r1320) :: r1716) + | 2648 -> One (Sub (r1320) :: r1720) + | 2651 -> One (Sub (r1320) :: r1722) + | 2656 -> One (Sub (r1320) :: r1724) + | 2659 -> One (Sub (r1320) :: r1726) + | 2490 -> One (Sub (r1421) :: r1673) + | 2504 -> One (Sub (r1421) :: r1675) + | 2331 -> One (Sub (r1440) :: r1590) + | 2422 -> One (Sub (r1443) :: r1641) + | 2156 -> One (Sub (r1464) :: r1466) + | 2736 -> One (Sub (r1490) :: r1782) + | 2344 -> One (Sub (r1501) :: r1607) + | 2254 -> One (Sub (r1533) :: r1535) + | 2283 -> One (Sub (r1552) :: r1554) + | 2375 -> One (Sub (r1620) :: r1622) + | 2418 -> One (Sub (r1620) :: r1640) + | 2747 -> One (Sub (r1786) :: r1787) + | 2752 -> One (Sub (r1786) :: r1788) | 1216 -> One (r0) | 1215 -> One (r2) - | 2953 -> One (r4) - | 2952 -> One (r5) - | 2951 -> One (r6) - | 2950 -> One (r7) - | 2949 -> One (r8) + | 2952 -> One (r4) + | 2951 -> One (r5) + | 2950 -> One (r6) + | 2949 -> One (r7) + | 2948 -> One (r8) | 59 -> One (r9) | 54 -> One (r10) | 55 -> One (r12) @@ -3609,8 +3608,8 @@ let recover = | 57 -> One (r15) | 2467 -> One (r16) | 2471 -> One (r18) - | 2948 -> One (r20) - | 2947 -> One (r21) + | 2947 -> One (r20) + | 2946 -> One (r21) | 61 -> One (r22) | 111 | 625 | 882 | 1767 -> One (r23) | 120 -> One (r25) @@ -3619,9 +3618,9 @@ let recover = | 317 -> One (r31) | 370 -> One (r33) | 2131 -> One (r35) - | 2946 -> One (r37) - | 2945 -> One (r38) - | 2944 -> One (r39) + | 2945 -> One (r37) + | 2944 -> One (r38) + | 2943 -> One (r39) | 113 -> One (r40) | 112 -> One (r41) | 64 -> One (r42) @@ -3653,1784 +3652,1783 @@ let recover = | 2600 -> One (r73) | 134 -> One (r75) | 145 -> One (r77) - | 2932 -> One (r84) - | 2931 -> One (r85) + | 2931 -> One (r84) + | 2930 -> One (r85) | 133 -> One (r86) | 132 -> One (r87) - | 2929 -> One (r88) - | 2928 -> One (r89) - | 2927 -> One (r90) + | 2928 -> One (r88) + | 2927 -> One (r89) + | 2926 -> One (r90) | 2815 -> One (r91) | 2814 -> One (r92) | 156 -> One (r93) | 155 -> One (r94) | 154 -> One (r95) - | 2926 -> One (r96) + | 2925 -> One (r96) | 148 -> One (r97) | 142 -> One (r98) | 225 | 1981 -> One (r99) | 224 | 1980 -> One (r100) | 146 -> One (r101) - | 2925 -> One (r102) - | 2924 -> One (r103) - | 212 | 248 | 660 | 2678 -> One (r104) - | 359 -> One (r105) - | 2908 -> One (r107) - | 2907 -> One (r108) - | 2906 -> One (r109) - | 152 -> One (r110) - | 2813 -> One (r111) - | 166 -> One (r112) - | 165 -> One (r114) - | 164 -> One (r115) - | 159 -> One (r116) - | 161 -> One (r117) - | 163 -> One (r119) - | 263 -> One (r121) - | 295 -> One (r123) - | 674 -> One (r125) - | 2008 -> One (r127) - | 2508 -> One (r129) - | 2507 -> One (r130) - | 2503 | 2636 -> One (r131) - | 2675 -> One (r133) - | 2688 -> One (r135) - | 2687 -> One (r136) - | 2686 -> One (r137) - | 2685 -> One (r138) - | 2684 -> One (r139) - | 2677 -> One (r140) - | 169 -> One (r141) - | 168 -> One (r142) - | 2673 -> One (r143) - | 2672 -> One (r144) - | 2671 -> One (r145) - | 2670 -> One (r146) - | 2669 -> One (r147) - | 211 -> One (r148) - | 183 | 207 -> One (r149) - | 182 | 206 -> One (r150) - | 181 | 205 -> One (r151) - | 199 -> One (r153) - | 204 -> One (r155) - | 201 -> One (r157) - | 200 -> One (r158) - | 185 -> One (r159) - | 187 -> One (r160) - | 189 -> One (r162) - | 191 -> One (r163) - | 190 -> One (r164) - | 193 -> One (r165) - | 196 | 210 -> One (r166) - | 195 | 209 -> One (r167) - | 194 | 208 -> One (r168) - | 198 -> One (r169) - | 203 -> One (r170) - | 214 -> One (r171) - | 2484 -> One (r172) - | 594 -> One (r173) - | 593 -> One (r174) - | 215 | 592 -> One (r175) - | 2643 -> One (r176) - | 2644 -> One (r178) - | 2626 -> One (r179) - | 1941 -> One (r180) - | 1940 -> One (r181) - | 221 -> One (r182) - | 2597 -> One (r183) - | 2585 -> One (r184) - | 2584 -> One (r185) - | 227 -> One (r186) - | 2583 -> One (r187) - | 229 -> One (r188) - | 230 -> One (r189) - | 1782 -> One (r190) - | 1780 -> One (r191) - | 901 -> One (r192) - | 1170 -> One (r194) - | 2582 -> One (r196) - | 2581 -> One (r197) - | 2580 -> One (r198) - | 233 -> One (r199) - | 232 -> One (r200) - | 2579 -> One (r201) - | 2566 -> One (r202) - | 2565 -> One (r203) - | 525 -> One (r204) - | 524 | 1409 | 1469 -> One (r205) - | 2564 -> One (r207) - | 530 -> One (r208) - | 529 -> One (r209) - | 528 -> One (r210) - | 236 -> One (r211) - | 523 -> One (r212) - | 507 -> One (r213) - | 492 -> One (r215) - | 517 -> One (r217) - | 516 -> One (r218) - | 240 -> One (r219) - | 242 -> One (r220) - | 241 -> One (r221) - | 515 -> One (r222) - | 514 -> One (r223) - | 490 -> One (r224) - | 489 -> One (r225) - | 506 -> One (r227) - | 497 -> One (r228) - | 509 -> One (r230) - | 508 -> One (r231) - | 487 -> One (r232) - | 486 -> One (r233) - | 485 -> One (r234) - | 484 -> One (r235) - | 483 -> One (r236) - | 482 -> One (r237) - | 481 -> One (r238) - | 480 -> One (r239) - | 247 -> One (r240) - | 250 -> One (r241) - | 260 -> One (r243) - | 261 -> One (r245) - | 259 | 2389 -> One (r246) - | 258 | 2388 -> One (r247) - | 251 | 2387 -> One (r248) - | 257 -> One (r250) - | 254 -> One (r252) - | 253 -> One (r253) - | 256 -> One (r254) - | 255 -> One (r255) - | 479 -> One (r258) - | 272 -> One (r260) - | 274 -> One (r261) - | 276 -> One (r263) - | 273 -> One (r264) - | 279 -> One (r265) - | 278 -> One (r266) - | 419 -> One (r267) - | 418 -> One (r268) - | 417 -> One (r269) - | 290 -> One (r270) - | 286 -> One (r271) - | 288 -> One (r272) - | 293 -> One (r273) - | 292 | 663 -> One (r274) - | 291 | 662 -> One (r275) - | 300 -> One (r276) - | 299 -> One (r277) - | 298 -> One (r278) - | 304 -> One (r279) - | 303 -> One (r280) - | 302 -> One (r281) - | 331 -> One (r282) - | 330 -> One (r283) - | 395 -> One (r284) - | 325 -> One (r285) - | 324 -> One (r286) - | 323 -> One (r287) - | 322 -> One (r288) - | 316 -> One (r289) - | 309 -> One (r290) - | 315 -> One (r291) - | 314 -> One (r292) - | 313 -> One (r293) - | 312 -> One (r294) - | 311 -> One (r295) - | 329 -> One (r296) - | 335 -> One (r297) - | 338 -> One (r298) - | 337 -> One (r299) - | 342 -> One (r300) - | 353 -> One (r301) - | 348 -> One (r302) - | 347 -> One (r303) - | 350 -> One (r304) - | 358 -> One (r305) - | 357 -> One (r306) - | 356 -> One (r307) - | 363 -> One (r308) - | 362 -> One (r309) - | 367 -> One (r310) - | 373 -> One (r311) - | 372 -> One (r312) - | 378 -> One (r313) - | 377 -> One (r314) - | 376 -> One (r315) - | 375 -> One (r316) - | 383 -> One (r317) - | 382 -> One (r318) - | 381 -> One (r319) - | 380 -> One (r320) - | 385 -> One (r321) - | 389 -> One (r322) - | 388 -> One (r323) - | 387 -> One (r324) - | 393 -> One (r325) - | 392 -> One (r326) - | 391 -> One (r327) - | 403 -> One (r328) - | 402 -> One (r329) - | 401 -> One (r330) - | 400 -> One (r331) - | 399 -> One (r332) - | 407 -> One (r333) - | 411 -> One (r334) - | 410 -> One (r335) - | 415 -> One (r336) - | 423 -> One (r337) - | 427 -> One (r338) - | 426 -> One (r339) - | 431 -> One (r340) - | 456 -> One (r341) - | 455 -> One (r342) - | 454 -> One (r343) - | 440 -> One (r344) - | 439 -> One (r345) - | 438 -> One (r346) - | 437 -> One (r347) - | 436 -> One (r348) - | 444 -> One (r349) - | 448 -> One (r350) - | 447 -> One (r351) - | 452 -> One (r352) - | 460 -> One (r353) - | 464 -> One (r354) - | 463 -> One (r355) - | 468 -> One (r356) - | 471 -> One (r357) - | 475 -> One (r358) - | 494 -> One (r359) - | 493 -> One (r360) - | 496 -> One (r361) - | 505 -> One (r362) - | 504 -> One (r364) - | 501 -> One (r365) - | 500 -> One (r366) - | 503 -> One (r367) - | 513 -> One (r368) - | 512 -> One (r369) - | 511 -> One (r370) - | 522 -> One (r371) - | 520 -> One (r373) - | 519 -> One (r374) - | 527 -> One (r375) - | 536 -> One (r376) - | 535 -> One (r377) - | 534 -> One (r378) - | 533 -> One (r379) - | 2554 -> One (r381) - | 2041 -> One (r382) - | 2549 -> One (r383) - | 2548 -> One (r384) - | 2547 -> One (r385) - | 542 -> One (r386) - | 541 -> One (r387) - | 2543 -> One (r388) - | 2542 -> One (r389) - | 544 -> One (r390) - | 2540 -> One (r391) - | 2530 -> One (r392) - | 2529 -> One (r393) - | 2527 -> One (r394) - | 551 -> One (r395) - | 550 -> One (r396) - | 549 -> One (r397) - | 548 -> One (r398) - | 547 -> One (r399) - | 558 -> One (r400) - | 557 -> One (r401) - | 556 -> One (r402) - | 555 -> One (r403) - | 554 -> One (r404) - | 560 -> One (r405) - | 565 -> One (r406) - | 742 -> One (r407) - | 741 | 911 | 959 | 980 -> One (r408) - | 733 | 909 | 910 | 942 | 979 | 2249 -> One (r409) - | 574 -> One (r410) - | 577 -> One (r412) - | 576 -> One (r413) - | 573 -> One (r414) - | 572 -> One (r415) - | 2524 -> One (r416) - | 2523 -> One (r417) - | 2522 -> One (r418) - | 582 -> One (r419) - | 581 -> One (r420) - | 580 -> One (r421) - | 2521 -> One (r422) - | 2520 -> One (r423) - | 585 -> One (r424) - | 2499 -> One (r425) - | 2519 -> One (r427) - | 2518 -> One (r428) - | 2517 -> One (r429) - | 2516 -> One (r430) - | 2515 -> One (r431) - | 2514 -> One (r435) - | 2513 -> One (r436) - | 2512 -> One (r437) - | 2511 | 2679 -> One (r438) - | 2496 -> One (r443) - | 2495 -> One (r444) - | 2487 -> One (r445) - | 2486 -> One (r446) - | 2485 -> One (r447) - | 2483 -> One (r451) - | 2482 -> One (r452) - | 596 -> One (r453) - | 2481 -> One (r454) - | 2066 -> One (r455) - | 2061 -> One (r456) - | 2060 -> One (r457) - | 603 -> One (r458) - | 602 -> One (r459) - | 2059 -> One (r460) - | 608 -> One (r461) - | 614 -> One (r463) - | 615 -> One (r465) - | 607 -> One (r466) - | 606 -> One (r467) - | 612 -> One (r468) - | 610 -> One (r469) - | 611 -> One (r470) - | 613 -> One (r471) - | 2058 -> One (r472) - | 2057 -> One (r473) - | 2056 -> One (r474) - | 620 -> One (r475) - | 619 -> One (r476) - | 2051 -> One (r477) - | 2050 -> One (r478) - | 740 -> One (r479) - | 739 -> One (r480) - | 2035 -> One (r481) - | 2028 -> One (r482) - | 2027 -> One (r483) - | 843 -> One (r484) - | 1642 -> One (r486) - | 1639 -> One (r488) - | 1638 -> One (r489) - | 1637 -> One (r490) - | 827 -> One (r491) - | 817 -> One (r492) - | 816 -> One (r493) - | 796 -> One (r494) - | 634 -> One (r495) - | 633 -> One (r496) - | 632 -> One (r497) - | 631 -> One (r498) - | 630 -> One (r499) - | 641 -> One (r500) - | 640 -> One (r501) - | 639 -> One (r502) - | 638 -> One (r503) - | 637 -> One (r504) - | 791 -> One (r505) - | 788 -> One (r506) - | 645 -> One (r507) - | 771 -> One (r508) - | 770 -> One (r510) - | 769 -> One (r511) - | 647 -> One (r512) - | 782 -> One (r514) - | 653 -> One (r515) - | 650 -> One (r516) - | 649 -> One (r518) - | 648 -> One (r519) - | 652 -> One (r520) - | 781 -> One (r521) - | 680 | 1437 -> One (r523) - | 780 -> One (r525) - | 657 -> One (r526) - | 656 -> One (r527) - | 658 -> One (r528) - | 661 -> One (r529) - | 753 -> One (r530) - | 743 -> One (r531) - | 779 -> One (r532) - | 778 -> One (r534) - | 777 -> One (r535) - | 775 -> One (r536) - | 682 -> One (r537) - | 681 -> One (r538) - | 670 -> One (r539) - | 669 -> One (r540) - | 672 -> One (r541) - | 676 -> One (r542) - | 689 -> One (r543) - | 688 -> One (r544) - | 687 -> One (r545) - | 686 -> One (r546) - | 685 -> One (r547) - | 691 -> One (r548) - | 697 -> One (r551) - | 694 -> One (r552) - | 768 -> One (r553) - | 767 -> One (r554) - | 701 -> One (r555) - | 703 -> One (r556) - | 710 -> One (r557) - | 706 -> One (r558) - | 705 -> One (r559) - | 713 -> One (r560) - | 728 -> One (r561) - | 722 -> One (r562) - | 721 -> One (r563) - | 720 -> One (r564) - | 719 -> One (r565) - | 718 -> One (r566) - | 724 -> One (r567) - | 727 -> One (r568) - | 731 -> One (r569) - | 762 -> One (r570) - | 737 -> One (r571) - | 736 -> One (r572) - | 735 -> One (r573) - | 750 -> One (r574) - | 749 -> One (r575) - | 748 -> One (r576) - | 747 -> One (r577) - | 746 -> One (r578) - | 752 -> One (r579) - | 757 -> One (r580) - | 756 | 917 -> One (r581) - | 755 | 912 | 960 | 981 -> One (r582) - | 759 -> One (r583) - | 761 -> One (r584) - | 764 -> One (r585) - | 763 -> One (r586) - | 766 -> One (r587) - | 786 -> One (r588) - | 790 -> One (r589) - | 793 -> One (r590) - | 795 -> One (r591) - | 800 -> One (r592) - | 814 -> One (r593) - | 811 -> One (r594) - | 810 -> One (r595) - | 809 -> One (r596) - | 808 -> One (r597) - | 807 -> One (r598) - | 813 -> One (r599) - | 824 -> One (r600) - | 823 -> One (r601) - | 822 -> One (r602) - | 821 -> One (r603) - | 820 -> One (r604) - | 826 -> One (r605) - | 841 -> One (r606) - | 831 -> One (r607) - | 830 -> One (r608) - | 838 -> One (r609) - | 837 -> One (r610) - | 836 -> One (r611) - | 835 -> One (r612) - | 834 -> One (r613) - | 840 -> One (r614) - | 862 -> One (r615) - | 846 -> One (r616) - | 861 -> One (r618) - | 860 -> One (r619) - | 854 -> One (r620) - | 850 -> One (r621) - | 849 -> One (r622) - | 852 -> One (r623) - | 851 -> One (r624) - | 859 -> One (r625) - | 858 -> One (r626) - | 2021 -> One (r627) - | 2020 -> One (r628) - | 2019 -> One (r629) - | 2018 -> One (r630) - | 2017 -> One (r631) - | 2016 -> One (r632) - | 866 -> One (r633) - | 2015 -> One (r634) - | 1908 -> One (r635) - | 1907 -> One (r636) - | 1906 -> One (r637) - | 1905 -> One (r638) - | 1904 -> One (r639) - | 869 -> One (r640) - | 1408 -> One (r641) - | 2014 -> One (r643) - | 2013 -> One (r644) - | 2012 -> One (r645) - | 2010 -> One (r646) - | 2009 -> One (r647) - | 2437 -> One (r648) - | 1903 -> One (r649) - | 1902 -> One (r650) - | 1901 -> One (r651) - | 872 -> One (r652) - | 871 -> One (r653) - | 1121 -> One (r654) - | 1120 -> One (r655) - | 1891 -> One (r656) - | 1890 -> One (r657) - | 875 -> One (r658) - | 1870 -> One (r659) - | 1506 | 1720 | 1733 | 1746 | 1861 | 1873 | 2038 -> One (r660) - | 1860 -> One (r662) - | 1859 -> One (r663) - | 1850 -> One (r664) - | 1847 -> One (r665) - | 879 -> One (r666) - | 1846 -> One (r667) - | 1759 -> One (r668) - | 1758 -> One (r669) - | 1756 -> One (r670) - | 1762 -> One (r672) - | 1841 -> One (r674) - | 1840 -> One (r675) - | 1383 -> One (r676) - | 1370 -> One (r677) - | 1839 -> One (r678) - | 1838 -> One (r680) - | 1837 -> One (r681) - | 1832 -> One (r682) - | 886 -> One (r683) - | 885 -> One (r684) - | 1831 -> One (r685) - | 1830 -> One (r686) - | 1829 -> One (r687) - | 1828 -> One (r688) - | 1827 -> One (r689) - | 1821 -> One (r690) - | 1808 -> One (r691) - | 1807 -> One (r692) - | 1804 -> One (r693) - | 893 -> One (r694) - | 892 -> One (r695) - | 1797 -> One (r696) - | 1786 -> One (r697) - | 1785 -> One (r698) - | 896 -> One (r699) - | 895 -> One (r700) - | 1784 -> One (r701) - | 899 -> One (r702) - | 898 -> One (r703) - | 1783 -> One (r704) - | 1779 -> One (r705) - | 1778 -> One (r706) - | 1777 -> One (r707) - | 1000 -> One (r708) - | 1002 -> One (r710) - | 1407 -> One (r712) - | 1001 -> One (r714) - | 1404 -> One (r716) - | 1775 -> One (r718) - | 1009 -> One (r719) - | 1008 -> One (r720) - | 1004 -> One (r721) - | 905 -> One (r722) - | 904 -> One (r723) - | 907 -> One (r724) - | 941 -> One (r726) - | 939 -> One (r727) - | 938 -> One (r728) - | 937 -> One (r729) - | 916 -> One (r731) - | 915 -> One (r732) - | 914 -> One (r733) - | 918 -> One (r734) - | 921 -> One (r735) - | 923 -> One (r736) - | 930 -> One (r737) - | 928 -> One (r738) - | 927 -> One (r739) - | 936 -> One (r740) - | 935 -> One (r741) - | 934 -> One (r742) - | 949 | 957 -> One (r743) - | 956 -> One (r745) - | 953 -> One (r747) - | 955 -> One (r749) - | 954 -> One (r750) - | 948 -> One (r751) - | 947 -> One (r752) - | 946 -> One (r753) - | 945 -> One (r754) - | 952 -> One (r755) - | 951 -> One (r756) - | 964 -> One (r757) - | 963 -> One (r758) - | 962 -> One (r759) - | 966 -> One (r760) - | 975 -> One (r762) - | 974 -> One (r763) - | 971 -> One (r764) - | 970 -> One (r765) - | 969 -> One (r766) - | 973 -> One (r767) - | 977 -> One (r768) - | 999 -> One (r769) - | 985 -> One (r770) - | 984 -> One (r771) - | 983 -> One (r772) - | 988 -> One (r773) - | 987 -> One (r774) - | 994 -> One (r775) - | 993 -> One (r776) - | 992 -> One (r777) - | 991 -> One (r778) - | 996 -> One (r779) - | 998 -> One (r780) - | 1006 -> One (r781) - | 1013 -> One (r782) - | 1012 -> One (r783) - | 1011 -> One (r784) - | 1774 -> One (r785) - | 1014 -> One (r786) - | 1020 -> One (r787) - | 1019 -> One (r788) - | 1018 -> One (r789) - | 1017 -> One (r790) - | 1769 -> One (r791) - | 1027 -> One (r792) - | 1032 -> One (r793) - | 1031 -> One (r794) - | 1030 | 1766 -> One (r795) - | 1765 -> One (r796) - | 1136 -> One (r797) - | 1135 -> One (r798) - | 1134 -> One (r799) - | 1133 -> One (r800) - | 1037 -> One (r801) - | 1036 -> One (r802) - | 1117 -> One (r803) - | 1115 -> One (r804) - | 1114 -> One (r805) - | 1039 -> One (r806) - | 1041 -> One (r807) - | 1111 -> One (r808) - | 1110 -> One (r809) - | 1043 -> One (r810) - | 1109 -> One (r811) - | 1108 -> One (r812) - | 1106 -> One (r813) - | 1046 -> One (r814) - | 1054 -> One (r815) - | 1052 -> One (r816) - | 1051 -> One (r817) - | 1048 -> One (r818) - | 1103 -> One (r819) - | 1062 -> One (r820) - | 1061 -> One (r821) - | 1058 -> One (r822) - | 1057 -> One (r823) - | 1065 -> One (r824) - | 1064 -> One (r825) - | 1069 -> One (r826) - | 1068 -> One (r827) - | 1067 -> One (r828) - | 1088 -> One (r829) - | 1087 -> One (r831) - | 1075 -> One (r833) - | 1074 -> One (r834) - | 1073 -> One (r835) - | 1072 -> One (r836) - | 1071 -> One (r837) - | 1079 -> One (r838) - | 1078 -> One (r839) - | 1081 -> One (r840) - | 1086 -> One (r841) - | 1092 -> One (r843) - | 1095 -> One (r844) - | 1094 -> One (r845) - | 1096 | 3020 -> One (r846) - | 1098 -> One (r847) - | 1102 -> One (r849) - | 1113 -> One (r850) - | 1119 -> One (r851) - | 1124 -> One (r852) - | 1123 -> One (r853) - | 1126 -> One (r854) - | 1130 -> One (r855) - | 1633 -> One (r856) - | 1143 -> One (r857) - | 1142 -> One (r858) - | 1627 -> One (r859) - | 1632 -> One (r861) - | 1631 -> One (r862) - | 1630 -> One (r863) - | 1629 -> One (r864) - | 1628 -> One (r865) - | 1625 -> One (r866) - | 1148 -> One (r867) - | 1147 -> One (r868) - | 1146 -> One (r869) - | 1145 -> One (r870) - | 1624 -> One (r871) - | 1153 -> One (r872) - | 1152 -> One (r873) - | 1151 -> One (r874) - | 1155 -> One (r875) - | 1157 -> One (r876) - | 1521 | 1617 -> One (r877) - | 1520 | 1616 -> One (r878) - | 1159 | 1519 -> One (r879) - | 1158 | 1518 -> One (r880) - | 1163 | 1650 | 1727 | 1741 | 1856 | 1867 | 2032 -> One (r881) - | 1162 | 1649 | 1726 | 1740 | 1855 | 1866 | 2031 -> One (r882) - | 1161 | 1648 | 1725 | 1739 | 1854 | 1865 | 2030 -> One (r883) - | 1160 | 1647 | 1724 | 1738 | 1853 | 1864 | 2029 -> One (r884) - | 1614 -> One (r885) - | 1169 -> One (r886) - | 1168 -> One (r887) - | 1167 -> One (r888) - | 1177 -> One (r889) - | 1176 -> One (r890) - | 1175 -> One (r891) - | 1174 -> One (r892) - | 1179 -> One (r893) - | 1181 -> One (r894) - | 1183 -> One (r895) - | 1185 -> One (r896) - | 1189 | 1549 -> One (r897) - | 1188 | 1548 -> One (r898) - | 1187 | 1547 -> One (r899) - | 1186 | 1546 -> One (r900) - | 1494 -> One (r901) - | 1197 -> One (r902) - | 1196 -> One (r903) - | 1195 -> One (r904) - | 1194 -> One (r905) - | 1199 -> One (r906) - | 1207 -> One (r907) - | 1206 -> One (r908) - | 1205 -> One (r909) - | 1209 -> One (r910) - | 1214 -> One (r911) - | 1213 -> One (r912) - | 1222 -> One (r913) - | 1221 -> One (r914) - | 1220 -> One (r915) - | 1219 -> One (r916) - | 1228 -> One (r917) - | 1227 -> One (r918) - | 1226 -> One (r919) - | 1225 -> One (r920) - | 1238 -> One (r921) - | 1237 -> One (r922) - | 1236 -> One (r923) - | 1235 -> One (r924) - | 1242 -> One (r925) - | 1241 -> One (r926) - | 1249 -> One (r927) - | 1248 -> One (r928) - | 1247 -> One (r929) - | 1246 -> One (r930) - | 1255 -> One (r931) - | 1254 -> One (r932) - | 1253 -> One (r933) - | 1252 -> One (r934) - | 1261 -> One (r935) - | 1260 -> One (r936) - | 1259 -> One (r937) - | 1258 -> One (r938) - | 1267 -> One (r939) - | 1266 -> One (r940) - | 1265 -> One (r941) - | 1264 -> One (r942) - | 1273 -> One (r943) - | 1272 -> One (r944) - | 1271 -> One (r945) - | 1270 -> One (r946) - | 1279 -> One (r947) - | 1278 -> One (r948) - | 1277 -> One (r949) - | 1276 -> One (r950) - | 1285 -> One (r951) - | 1284 -> One (r952) - | 1283 -> One (r953) - | 1282 -> One (r954) - | 1291 -> One (r955) - | 1290 -> One (r956) - | 1289 -> One (r957) - | 1288 -> One (r958) - | 1297 -> One (r959) - | 1296 -> One (r960) - | 1295 -> One (r961) - | 1294 -> One (r962) - | 1303 -> One (r963) - | 1302 -> One (r964) - | 1301 -> One (r965) - | 1300 -> One (r966) - | 1309 -> One (r967) - | 1308 -> One (r968) - | 1307 -> One (r969) - | 1306 -> One (r970) - | 1315 -> One (r971) - | 1314 -> One (r972) - | 1313 -> One (r973) - | 1312 -> One (r974) - | 1321 -> One (r975) - | 1320 -> One (r976) - | 1319 -> One (r977) - | 1318 -> One (r978) - | 1327 -> One (r979) - | 1326 -> One (r980) - | 1325 -> One (r981) - | 1324 -> One (r982) - | 1333 -> One (r983) - | 1332 -> One (r984) - | 1331 -> One (r985) - | 1330 -> One (r986) - | 1339 -> One (r987) - | 1338 -> One (r988) - | 1337 -> One (r989) - | 1336 -> One (r990) - | 1345 -> One (r991) - | 1344 -> One (r992) - | 1343 -> One (r993) - | 1342 -> One (r994) - | 1351 -> One (r995) - | 1350 -> One (r996) - | 1349 -> One (r997) - | 1348 -> One (r998) - | 1357 -> One (r999) - | 1356 -> One (r1000) - | 1355 -> One (r1001) - | 1354 -> One (r1002) - | 1363 -> One (r1003) - | 1362 -> One (r1004) - | 1361 -> One (r1005) - | 1360 -> One (r1006) - | 1369 -> One (r1007) - | 1368 -> One (r1008) - | 1367 -> One (r1009) - | 1366 -> One (r1010) - | 1376 -> One (r1011) - | 1375 -> One (r1012) - | 1374 -> One (r1013) - | 1373 -> One (r1014) - | 1378 -> One (r1015) - | 1382 -> One (r1016) - | 1381 -> One (r1017) - | 1380 -> One (r1018) - | 1389 -> One (r1019) - | 1388 -> One (r1020) - | 1387 -> One (r1021) - | 1386 -> One (r1022) - | 1492 -> One (r1023) - | 1489 -> One (r1024) - | 1391 -> One (r1025) - | 1397 -> One (r1026) - | 1396 -> One (r1027) - | 1398 -> One (r1029) - | 1395 -> One (r1030) - | 1405 -> One (r1031) - | 1403 -> One (r1032) - | 1402 -> One (r1033) - | 1415 -> One (r1034) - | 1414 -> One (r1035) - | 1413 -> One (r1036) - | 1412 -> One (r1037) - | 1411 -> One (r1038) - | 1418 -> One (r1039) - | 1417 -> One (r1040) - | 1423 -> One (r1041) - | 1422 -> One (r1042) - | 1421 -> One (r1043) - | 1420 -> One (r1044) - | 1426 -> One (r1045) - | 1425 -> One (r1046) - | 1429 -> One (r1047) - | 1428 -> One (r1048) - | 1432 -> One (r1049) - | 1431 -> One (r1050) - | 1436 -> One (r1051) - | 1435 -> One (r1052) - | 1441 -> One (r1053) - | 1440 -> One (r1054) - | 1439 -> One (r1055) - | 1444 -> One (r1056) - | 1443 -> One (r1057) - | 1447 -> One (r1058) - | 1446 -> One (r1059) - | 1450 -> One (r1060) - | 1449 -> One (r1061) - | 1461 -> One (r1062) - | 1458 -> One (r1063) - | 1457 -> One (r1064) - | 1456 -> One (r1065) - | 1455 -> One (r1066) - | 1454 -> One (r1067) - | 1460 -> One (r1068) - | 1464 -> One (r1069) - | 1466 -> One (r1070) - | 1484 -> One (r1071) - | 1468 -> One (r1072) - | 1474 -> One (r1073) - | 1473 -> One (r1074) - | 1472 -> One (r1075) - | 1471 -> One (r1076) - | 1477 -> One (r1077) - | 1476 -> One (r1078) - | 1480 -> One (r1079) - | 1479 -> One (r1080) - | 1483 -> One (r1081) - | 1482 -> One (r1082) - | 1487 -> One (r1083) - | 1486 -> One (r1084) - | 1491 -> One (r1085) - | 1497 | 1558 -> One (r1086) - | 1496 | 1557 -> One (r1087) - | 1495 | 1556 -> One (r1088) - | 1500 | 1567 -> One (r1089) - | 1499 | 1566 -> One (r1090) - | 1498 | 1565 -> One (r1091) - | 1505 | 1578 -> One (r1092) - | 1504 | 1577 -> One (r1093) - | 1503 | 1576 -> One (r1094) - | 1502 | 1575 -> One (r1095) - | 1511 | 1587 -> One (r1096) - | 1510 | 1586 -> One (r1097) - | 1509 | 1585 -> One (r1098) - | 1514 | 1596 -> One (r1099) - | 1513 | 1595 -> One (r1100) - | 1512 | 1594 -> One (r1101) - | 1517 -> One (r1102) - | 1527 -> One (r1103) - | 1526 -> One (r1104) - | 1525 -> One (r1105) - | 1524 -> One (r1106) - | 1530 | 1620 -> One (r1107) - | 1529 | 1619 -> One (r1108) - | 1528 | 1618 -> One (r1109) - | 1536 -> One (r1110) - | 1535 -> One (r1111) - | 1534 -> One (r1112) - | 1533 -> One (r1113) - | 1539 | 1623 -> One (r1114) - | 1538 | 1622 -> One (r1115) - | 1537 | 1621 -> One (r1116) - | 1545 -> One (r1117) - | 1544 -> One (r1118) - | 1543 -> One (r1119) - | 1542 -> One (r1120) - | 1555 -> One (r1121) - | 1554 -> One (r1122) - | 1553 -> One (r1123) - | 1552 -> One (r1124) - | 1564 -> One (r1125) - | 1563 -> One (r1126) - | 1562 -> One (r1127) - | 1561 -> One (r1128) - | 1573 -> One (r1129) - | 1572 -> One (r1130) - | 1571 -> One (r1131) - | 1570 -> One (r1132) - | 1584 -> One (r1133) - | 1583 -> One (r1134) - | 1582 -> One (r1135) - | 1581 -> One (r1136) - | 1593 -> One (r1137) - | 1592 -> One (r1138) - | 1591 -> One (r1139) - | 1590 -> One (r1140) - | 1602 -> One (r1141) - | 1601 -> One (r1142) - | 1600 -> One (r1143) - | 1599 -> One (r1144) - | 1609 -> One (r1145) - | 1608 -> One (r1146) - | 1607 -> One (r1147) - | 1606 -> One (r1148) - | 1636 -> One (r1149) - | 1635 -> One (r1150) - | 1641 -> One (r1151) - | 1645 -> One (r1152) - | 1717 -> One (r1153) - | 1656 -> One (r1154) - | 1655 -> One (r1155) - | 1654 -> One (r1156) - | 1653 -> One (r1157) - | 1691 -> One (r1158) - | 1686 -> One (r1159) - | 1710 -> One (r1161) - | 1685 -> One (r1162) - | 1660 -> One (r1163) - | 1712 -> One (r1165) - | 1658 -> One (r1167) - | 1711 -> One (r1168) - | 1668 -> One (r1169) - | 1663 -> One (r1170) - | 1662 -> One (r1171) - | 1667 -> One (r1172) - | 1666 -> One (r1173) - | 1665 -> One (r1174) - | 1676 -> One (r1175) - | 1671 -> One (r1176) - | 1670 -> One (r1177) - | 1675 -> One (r1178) - | 1674 -> One (r1179) - | 1673 -> One (r1180) - | 1684 -> One (r1181) - | 1679 -> One (r1182) - | 1678 -> One (r1183) - | 1683 -> One (r1184) - | 1682 -> One (r1185) - | 1681 -> One (r1186) - | 1690 -> One (r1187) - | 1689 -> One (r1188) - | 1688 -> One (r1189) - | 1709 -> One (r1190) - | 1704 -> One (r1191) - | 1703 -> One (r1192) - | 1702 -> One (r1193) - | 1697 -> One (r1194) - | 1696 -> One (r1195) - | 1695 -> One (r1196) - | 1694 -> One (r1197) - | 1701 -> One (r1198) - | 1700 -> One (r1199) - | 1699 -> One (r1200) - | 1708 -> One (r1201) - | 1707 -> One (r1202) - | 1706 -> One (r1203) - | 1714 -> One (r1204) - | 1719 -> One (r1205) - | 1722 -> One (r1206) - | 1730 -> One (r1207) - | 1729 -> One (r1208) - | 1732 -> One (r1209) - | 1735 -> One (r1210) - | 1737 -> One (r1211) - | 1743 -> One (r1212) - | 1745 -> One (r1213) - | 1748 -> One (r1214) - | 1751 -> One (r1216) - | 1750 -> One (r1217) - | 1764 -> One (r1218) - | 1763 -> One (r1219) - | 1755 -> One (r1220) - | 1754 -> One (r1221) - | 1773 -> One (r1222) - | 1772 -> One (r1223) - | 1771 -> One (r1224) - | 1790 -> One (r1225) - | 1789 -> One (r1226) - | 1788 -> One (r1227) - | 1796 -> One (r1228) - | 1795 -> One (r1229) - | 1794 -> One (r1230) - | 1793 -> One (r1231) - | 1803 -> One (r1232) - | 1802 -> One (r1233) - | 1801 -> One (r1234) - | 1800 -> One (r1235) - | 1806 -> One (r1236) - | 1814 -> One (r1237) - | 1813 -> One (r1238) - | 1812 -> One (r1239) - | 1811 -> One (r1240) - | 1816 -> One (r1241) - | 1820 -> One (r1242) - | 1819 -> One (r1243) - | 1818 -> One (r1244) - | 1826 -> One (r1245) - | 1825 -> One (r1246) - | 1824 -> One (r1247) - | 1823 -> One (r1248) - | 1836 -> One (r1249) - | 1835 -> One (r1250) - | 1834 -> One (r1251) - | 1845 -> One (r1252) - | 1844 -> One (r1253) - | 1843 -> One (r1254) - | 1852 -> One (r1255) - | 1858 -> One (r1256) - | 1863 -> One (r1257) - | 1869 -> One (r1258) - | 1872 -> One (r1259) - | 1875 -> One (r1260) - | 1880 -> One (r1261) - | 1879 -> One (r1262) - | 1878 -> One (r1263) - | 1877 -> One (r1264) - | 1883 -> One (r1265) - | 1882 -> One (r1266) - | 1886 -> One (r1267) - | 1885 -> One (r1268) - | 1889 -> One (r1269) - | 1888 -> One (r1270) - | 1894 -> One (r1271) - | 1893 -> One (r1272) - | 1897 -> One (r1273) - | 1896 -> One (r1274) - | 1900 -> One (r1275) - | 1899 -> One (r1276) - | 1934 -> One (r1277) - | 1918 -> One (r1279) - | 1917 -> One (r1280) - | 1928 -> One (r1282) - | 1927 -> One (r1283) - | 1926 -> One (r1284) - | 1916 -> One (r1285) - | 1911 -> One (r1286) - | 1910 -> One (r1287) - | 1915 -> One (r1289) - | 1914 -> One (r1290) - | 1913 -> One (r1291) - | 1922 -> One (r1292) - | 1921 -> One (r1293) - | 1920 -> One (r1294) - | 1925 -> One (r1295) - | 1924 -> One (r1296) - | 1930 -> One (r1297) - | 1933 -> One (r1298) - | 1932 -> One (r1299) - | 2007 -> One (r1300) - | 2006 -> One (r1301) - | 2005 -> One (r1302) - | 2004 -> One (r1303) - | 1943 -> One (r1304) - | 1937 -> One (r1305) - | 1936 -> One (r1306) - | 1977 -> One (r1307) - | 1976 -> One (r1308) - | 1975 -> One (r1310) - | 1959 -> One (r1311) - | 1964 -> One (r1320) - | 1961 -> One (r1322) - | 1960 -> One (r1323) - | 1958 -> One (r1324) - | 1957 -> One (r1325) - | 1956 -> One (r1326) - | 1955 -> One (r1327) - | 1954 -> One (r1328) - | 1950 -> One (r1329) - | 1949 -> One (r1330) - | 1953 -> One (r1331) - | 1952 -> One (r1332) - | 1967 -> One (r1333) - | 1966 -> One (r1334) - | 1974 -> One (r1335) - | 1973 -> One (r1336) - | 1969 -> One (r1337) - | 1972 -> One (r1338) - | 1971 -> One (r1339) - | 2003 -> One (r1340) - | 1988 -> One (r1341) - | 1987 -> One (r1342) - | 1986 -> One (r1343) - | 1992 -> One (r1344) - | 1991 -> One (r1345) - | 1990 -> One (r1346) - | 1999 -> One (r1347) - | 1995 -> One (r1348) - | 1998 -> One (r1349) - | 1997 -> One (r1350) - | 2002 -> One (r1351) - | 2001 -> One (r1352) - | 2026 -> One (r1353) - | 2025 -> One (r1354) - | 2024 -> One (r1355) - | 2034 -> One (r1356) - | 2037 -> One (r1357) - | 2040 -> One (r1358) - | 2046 -> One (r1359) - | 2045 -> One (r1360) - | 2044 -> One (r1361) - | 2043 -> One (r1362) - | 2049 -> One (r1363) - | 2048 -> One (r1364) - | 2053 -> One (r1365) - | 2055 -> One (r1366) - | 2065 -> One (r1367) - | 2064 -> One (r1368) - | 2063 -> One (r1369) - | 2076 -> One (r1370) - | 2075 -> One (r1371) - | 2074 -> One (r1372) - | 2073 -> One (r1373) - | 2072 -> One (r1374) - | 2071 -> One (r1375) - | 2070 -> One (r1376) - | 2069 -> One (r1377) - | 2101 -> One (r1378) - | 2100 -> One (r1379) - | 2099 -> One (r1380) - | 2087 -> One (r1381) - | 2086 -> One (r1382) - | 2085 -> One (r1383) - | 2084 -> One (r1384) - | 2081 -> One (r1385) - | 2080 -> One (r1386) - | 2079 -> One (r1387) - | 2083 -> One (r1388) - | 2098 -> One (r1389) - | 2091 -> One (r1390) - | 2090 -> One (r1391) - | 2089 -> One (r1392) - | 2097 -> One (r1393) - | 2096 -> One (r1394) - | 2095 -> One (r1395) - | 2094 -> One (r1396) - | 2093 -> One (r1397) - | 2477 -> One (r1398) - | 2476 -> One (r1399) - | 2103 -> One (r1400) - | 2105 -> One (r1401) - | 2107 -> One (r1402) - | 2475 -> One (r1403) - | 2474 -> One (r1404) - | 2109 -> One (r1405) - | 2113 -> One (r1406) - | 2112 -> One (r1407) - | 2111 -> One (r1408) - | 2127 -> One (r1409) - | 2130 -> One (r1411) - | 2129 -> One (r1412) - | 2126 -> One (r1413) - | 2125 -> One (r1414) - | 2124 -> One (r1415) - | 2120 -> One (r1416) - | 2119 -> One (r1417) - | 2118 -> One (r1418) - | 2117 -> One (r1419) - | 2123 -> One (r1420) - | 2122 -> One (r1421) - | 2143 -> One (r1423) - | 2142 -> One (r1424) - | 2141 -> One (r1425) - | 2136 -> One (r1426) - | 2146 -> One (r1430) - | 2145 -> One (r1431) - | 2144 -> One (r1432) - | 2758 -> One (r1433) - | 2757 -> One (r1434) - | 2756 -> One (r1435) - | 2755 -> One (r1436) - | 2140 -> One (r1437) - | 2148 -> One (r1438) - | 2354 -> One (r1440) - | 2417 -> One (r1442) - | 2250 -> One (r1443) - | 2434 -> One (r1445) - | 2425 -> One (r1446) - | 2424 -> One (r1447) - | 2248 -> One (r1448) - | 2247 -> One (r1449) - | 2246 -> One (r1450) - | 2245 -> One (r1451) - | 2244 -> One (r1452) - | 2208 | 2390 -> One (r1453) - | 2243 -> One (r1455) - | 2233 -> One (r1456) - | 2232 -> One (r1457) - | 2164 -> One (r1458) - | 2163 -> One (r1459) - | 2162 -> One (r1460) - | 2155 -> One (r1461) - | 2153 -> One (r1462) - | 2152 -> One (r1463) - | 2157 -> One (r1464) - | 2159 -> One (r1466) - | 2158 -> One (r1467) - | 2161 -> One (r1468) - | 2226 -> One (r1469) - | 2225 -> One (r1470) - | 2170 -> One (r1471) - | 2166 -> One (r1472) - | 2169 -> One (r1473) - | 2168 -> One (r1474) - | 2181 -> One (r1475) - | 2180 -> One (r1476) - | 2179 -> One (r1477) - | 2178 -> One (r1478) - | 2177 -> One (r1479) - | 2172 -> One (r1480) - | 2192 -> One (r1481) - | 2191 -> One (r1482) - | 2190 -> One (r1483) - | 2189 -> One (r1484) - | 2188 -> One (r1485) - | 2183 -> One (r1486) - | 2217 -> One (r1487) - | 2216 -> One (r1488) - | 2194 -> One (r1489) - | 2215 -> One (r1492) - | 2214 -> One (r1493) - | 2213 -> One (r1494) - | 2212 -> One (r1495) - | 2196 -> One (r1496) - | 2210 -> One (r1497) - | 2200 -> One (r1498) - | 2199 -> One (r1499) - | 2198 -> One (r1500) - | 2207 | 2381 -> One (r1501) - | 2204 -> One (r1503) - | 2203 -> One (r1504) - | 2202 -> One (r1505) - | 2201 | 2380 -> One (r1506) - | 2206 -> One (r1507) - | 2222 -> One (r1508) - | 2221 -> One (r1509) - | 2220 -> One (r1510) - | 2224 -> One (r1512) - | 2223 -> One (r1513) - | 2219 -> One (r1514) - | 2228 -> One (r1515) - | 2231 -> One (r1516) - | 2242 -> One (r1517) - | 2241 -> One (r1518) - | 2240 -> One (r1519) - | 2239 -> One (r1520) - | 2238 -> One (r1521) - | 2237 -> One (r1522) - | 2236 -> One (r1523) - | 2235 -> One (r1524) - | 2411 -> One (r1525) - | 2410 -> One (r1526) - | 2253 -> One (r1527) - | 2252 -> One (r1528) - | 2279 -> One (r1529) - | 2278 -> One (r1530) - | 2277 -> One (r1531) - | 2276 -> One (r1532) - | 2267 -> One (r1533) - | 2266 -> One (r1535) - | 2265 -> One (r1536) - | 2261 -> One (r1537) - | 2260 -> One (r1538) - | 2259 -> One (r1539) - | 2258 -> One (r1540) - | 2256 -> One (r1541) - | 2264 -> One (r1542) - | 2263 -> One (r1543) - | 2275 -> One (r1544) - | 2274 -> One (r1545) - | 2273 -> One (r1546) - | 2282 -> One (r1547) - | 2281 -> One (r1548) - | 2323 -> One (r1549) - | 2312 -> One (r1550) - | 2311 -> One (r1551) - | 2302 -> One (r1552) - | 2301 -> One (r1554) - | 2300 -> One (r1555) - | 2299 -> One (r1556) - | 2288 -> One (r1557) - | 2287 -> One (r1558) - | 2285 -> One (r1559) - | 2298 -> One (r1560) - | 2297 -> One (r1561) - | 2296 -> One (r1562) - | 2295 -> One (r1563) - | 2294 -> One (r1564) - | 2293 -> One (r1565) - | 2292 -> One (r1566) - | 2291 -> One (r1567) - | 2310 -> One (r1568) - | 2309 -> One (r1569) - | 2308 -> One (r1570) - | 2322 -> One (r1571) - | 2321 -> One (r1572) - | 2320 -> One (r1573) - | 2319 -> One (r1574) - | 2318 -> One (r1575) - | 2317 -> One (r1576) - | 2316 -> One (r1577) - | 2315 -> One (r1578) - | 2327 -> One (r1579) - | 2326 -> One (r1580) - | 2325 -> One (r1581) - | 2405 -> One (r1582) - | 2404 -> One (r1583) - | 2403 -> One (r1584) - | 2402 -> One (r1585) - | 2401 -> One (r1586) - | 2400 -> One (r1587) - | 2397 -> One (r1588) - | 2330 -> One (r1589) - | 2374 -> One (r1590) - | 2373 -> One (r1591) - | 2368 -> One (r1592) - | 2367 -> One (r1593) - | 2366 -> One (r1594) - | 2365 -> One (r1595) - | 2339 -> One (r1596) - | 2338 -> One (r1597) - | 2337 -> One (r1598) - | 2336 -> One (r1599) - | 2335 -> One (r1600) - | 2334 -> One (r1601) - | 2364 -> One (r1602) - | 2343 -> One (r1603) - | 2342 -> One (r1604) - | 2341 -> One (r1605) - | 2347 -> One (r1606) - | 2346 -> One (r1607) - | 2345 -> One (r1608) - | 2361 -> One (r1609) - | 2351 -> One (r1610) - | 2350 -> One (r1611) - | 2363 -> One (r1613) - | 2349 -> One (r1614) - | 2358 -> One (r1615) - | 2353 -> One (r1616) - | 2372 -> One (r1617) - | 2371 -> One (r1618) - | 2370 -> One (r1619) - | 2392 -> One (r1620) - | 2396 -> One (r1622) - | 2395 -> One (r1623) - | 2394 -> One (r1624) - | 2379 -> One (r1625) - | 2378 -> One (r1626) - | 2377 -> One (r1627) - | 2393 -> One (r1628) - | 2383 -> One (r1629) - | 2391 -> One (r1630) - | 2386 -> One (r1631) - | 2385 -> One (r1632) - | 2399 -> One (r1633) - | 2409 -> One (r1634) - | 2408 -> One (r1635) - | 2407 -> One (r1636) - | 2413 -> One (r1637) - | 2416 -> One (r1638) - | 2421 -> One (r1639) - | 2420 -> One (r1640) - | 2419 -> One (r1641) - | 2423 -> One (r1642) - | 2433 -> One (r1643) - | 2432 -> One (r1644) - | 2431 -> One (r1645) - | 2430 -> One (r1646) - | 2429 -> One (r1647) - | 2428 -> One (r1648) - | 2427 -> One (r1649) - | 2443 -> One (r1650) - | 2447 -> One (r1651) - | 2452 -> One (r1652) - | 2451 -> One (r1653) - | 2450 -> One (r1654) - | 2449 -> One (r1655) - | 2464 -> One (r1656) - | 2462 -> One (r1657) - | 2461 -> One (r1658) - | 2460 -> One (r1659) - | 2459 -> One (r1660) - | 2458 -> One (r1661) - | 2457 -> One (r1662) - | 2456 -> One (r1663) - | 2455 -> One (r1664) - | 2470 -> One (r1665) - | 2469 -> One (r1666) - | 2480 -> One (r1667) - | 2479 -> One (r1668) - | 2494 -> One (r1669) - | 2493 -> One (r1670) - | 2489 | 2628 -> One (r1671) - | 2488 | 2630 -> One (r1672) - | 2492 -> One (r1673) - | 2491 -> One (r1674) - | 2506 -> One (r1675) - | 2505 -> One (r1676) - | 2526 -> One (r1677) - | 2537 -> One (r1678) - | 2536 -> One (r1679) - | 2535 -> One (r1680) - | 2534 -> One (r1681) - | 2533 -> One (r1682) - | 2539 -> One (r1683) - | 2546 -> One (r1684) - | 2545 -> One (r1685) - | 2553 -> One (r1686) - | 2552 -> One (r1687) - | 2551 -> One (r1688) - | 2559 -> One (r1689) - | 2563 -> One (r1690) - | 2562 -> One (r1691) - | 2561 -> One (r1692) - | 2572 -> One (r1693) - | 2571 -> One (r1694) - | 2570 -> One (r1695) - | 2569 -> One (r1696) - | 2574 -> One (r1697) - | 2578 -> One (r1698) - | 2577 -> One (r1699) - | 2576 -> One (r1700) - | 2589 -> One (r1701) - | 2588 -> One (r1702) - | 2587 -> One (r1703) - | 2591 -> One (r1704) - | 2599 -> One (r1705) - | 2609 -> One (r1706) - | 2613 -> One (r1707) - | 2612 -> One (r1708) - | 2617 -> One (r1709) - | 2622 -> One (r1710) - | 2621 -> One (r1711) - | 2625 -> One (r1712) - | 2624 -> One (r1713) - | 2639 -> One (r1714) - | 2638 -> One (r1715) - | 2642 -> One (r1716) - | 2641 -> One (r1717) - | 2662 -> One (r1718) - | 2654 -> One (r1719) - | 2650 -> One (r1720) - | 2649 -> One (r1721) - | 2653 -> One (r1722) - | 2652 -> One (r1723) - | 2658 -> One (r1724) - | 2657 -> One (r1725) - | 2661 -> One (r1726) - | 2660 -> One (r1727) - | 2668 -> One (r1728) - | 2667 -> One (r1729) - | 2666 -> One (r1730) - | 2683 -> One (r1731) - | 2682 -> One (r1732) - | 2681 -> One (r1733) - | 2812 -> One (r1734) - | 2699 -> One (r1735) - | 2698 -> One (r1736) - | 2697 -> One (r1737) - | 2696 -> One (r1738) - | 2695 -> One (r1739) - | 2694 -> One (r1740) - | 2693 -> One (r1741) - | 2692 -> One (r1742) - | 2754 -> One (r1743) - | 2744 -> One (r1745) - | 2743 -> One (r1746) - | 2742 -> One (r1747) - | 2746 -> One (r1749) - | 2745 -> One (r1750) - | 2735 -> One (r1751) - | 2709 -> One (r1752) - | 2708 -> One (r1753) - | 2707 -> One (r1754) - | 2706 -> One (r1755) - | 2705 -> One (r1756) - | 2704 -> One (r1757) - | 2703 -> One (r1758) - | 2702 -> One (r1759) - | 2713 -> One (r1760) - | 2712 -> One (r1761) - | 2728 -> One (r1762) - | 2719 -> One (r1763) - | 2718 -> One (r1764) - | 2717 -> One (r1765) - | 2716 -> One (r1766) - | 2715 -> One (r1767) - | 2727 -> One (r1768) - | 2726 -> One (r1769) - | 2725 -> One (r1770) - | 2724 -> One (r1771) - | 2723 -> One (r1772) - | 2722 -> One (r1773) - | 2721 -> One (r1774) - | 2732 -> One (r1775) - | 2731 -> One (r1776) - | 2734 -> One (r1778) - | 2733 -> One (r1779) - | 2730 -> One (r1780) - | 2741 -> One (r1781) - | 2740 -> One (r1782) - | 2737 -> One (r1783) - | 2739 -> One (r1784) - | 2749 -> One (r1785) - | 2748 -> One (r1786) - | 2751 -> One (r1788) - | 2753 -> One (r1789) - | 2777 -> One (r1790) - | 2767 -> One (r1791) - | 2766 -> One (r1792) - | 2765 -> One (r1793) - | 2764 -> One (r1794) - | 2763 -> One (r1795) - | 2762 -> One (r1796) - | 2761 -> One (r1797) - | 2760 -> One (r1798) - | 2776 -> One (r1799) - | 2775 -> One (r1800) - | 2774 -> One (r1801) - | 2773 -> One (r1802) - | 2772 -> One (r1803) - | 2771 -> One (r1804) - | 2770 -> One (r1805) - | 2769 -> One (r1806) - | 2786 -> One (r1807) - | 2789 -> One (r1808) - | 2795 -> One (r1809) - | 2794 -> One (r1810) - | 2793 -> One (r1811) - | 2792 -> One (r1812) - | 2791 -> One (r1813) - | 2797 -> One (r1814) - | 2809 -> One (r1815) - | 2808 -> One (r1816) - | 2807 -> One (r1817) - | 2806 -> One (r1818) - | 2805 -> One (r1819) - | 2804 -> One (r1820) - | 2803 -> One (r1821) - | 2802 -> One (r1822) - | 2801 -> One (r1823) - | 2800 -> One (r1824) - | 2821 -> One (r1825) - | 2820 -> One (r1826) - | 2819 -> One (r1827) - | 2818 -> One (r1828) - | 2817 -> One (r1829) - | 2825 -> One (r1830) - | 2829 -> One (r1831) - | 2828 -> One (r1832) - | 2833 -> One (r1833) - | 2837 -> One (r1834) - | 2836 -> One (r1835) - | 2841 -> One (r1836) - | 2845 -> One (r1837) - | 2844 -> One (r1838) - | 2849 -> One (r1839) - | 2874 -> One (r1840) - | 2873 -> One (r1841) - | 2872 -> One (r1842) - | 2858 -> One (r1843) - | 2857 -> One (r1844) - | 2856 -> One (r1845) - | 2855 -> One (r1846) - | 2854 -> One (r1847) - | 2862 -> One (r1848) - | 2866 -> One (r1849) - | 2865 -> One (r1850) - | 2870 -> One (r1851) - | 2878 -> One (r1852) - | 2882 -> One (r1853) - | 2881 -> One (r1854) - | 2886 -> One (r1855) - | 2892 -> One (r1856) - | 2891 -> One (r1857) - | 2890 -> One (r1858) - | 2896 -> One (r1859) - | 2900 -> One (r1860) - | 2899 -> One (r1861) - | 2904 -> One (r1862) - | 2910 -> One (r1863) - | 2914 -> One (r1864) - | 2918 -> One (r1865) - | 2917 -> One (r1866) - | 2922 -> One (r1867) - | 2936 -> One (r1868) - | 2935 -> One (r1869) - | 2934 -> One (r1870) - | 2940 -> One (r1871) - | 2939 -> One (r1872) - | 2938 -> One (r1873) - | 2955 -> One (r1874) - | 2959 -> One (r1875) - | 2964 -> One (r1876) - | 2971 -> One (r1877) - | 2970 -> One (r1878) - | 2969 -> One (r1879) - | 2968 -> One (r1880) - | 2978 -> One (r1881) - | 2982 -> One (r1882) - | 2986 -> One (r1883) - | 2989 -> One (r1884) - | 2994 -> One (r1885) - | 2998 -> One (r1886) - | 3002 -> One (r1887) - | 3006 -> One (r1888) - | 3010 -> One (r1889) - | 3013 -> One (r1890) - | 3017 -> One (r1891) - | 3023 -> One (r1892) - | 3031 -> One (r1893) - | 3041 -> One (r1894) - | 3043 -> One (r1895) - | 3046 -> One (r1896) - | 3045 -> One (r1897) - | 3048 -> One (r1898) - | 3058 -> One (r1899) - | 3054 -> One (r1900) - | 3053 -> One (r1901) - | 3057 -> One (r1902) - | 3056 -> One (r1903) - | 3063 -> One (r1904) - | 3062 -> One (r1905) - | 3061 -> One (r1906) - | 3065 -> One (r1907) + | 2924 -> One (r102) + | 212 | 248 | 660 | 2678 -> One (r103) + | 359 -> One (r104) + | 2908 -> One (r106) + | 2907 -> One (r107) + | 2906 -> One (r108) + | 152 -> One (r109) + | 2813 -> One (r110) + | 166 -> One (r111) + | 165 -> One (r113) + | 164 -> One (r114) + | 159 -> One (r115) + | 161 -> One (r116) + | 163 -> One (r118) + | 263 -> One (r120) + | 295 -> One (r122) + | 674 -> One (r124) + | 2008 -> One (r126) + | 2508 -> One (r128) + | 2507 -> One (r129) + | 2503 | 2636 -> One (r130) + | 2675 -> One (r132) + | 2688 -> One (r134) + | 2687 -> One (r135) + | 2686 -> One (r136) + | 2685 -> One (r137) + | 2684 -> One (r138) + | 2677 -> One (r139) + | 169 -> One (r140) + | 168 -> One (r141) + | 2673 -> One (r142) + | 2672 -> One (r143) + | 2671 -> One (r144) + | 2670 -> One (r145) + | 2669 -> One (r146) + | 211 -> One (r147) + | 183 | 207 -> One (r148) + | 182 | 206 -> One (r149) + | 181 | 205 -> One (r150) + | 199 -> One (r152) + | 204 -> One (r154) + | 201 -> One (r156) + | 200 -> One (r157) + | 185 -> One (r158) + | 187 -> One (r159) + | 189 -> One (r161) + | 191 -> One (r162) + | 190 -> One (r163) + | 193 -> One (r164) + | 196 | 210 -> One (r165) + | 195 | 209 -> One (r166) + | 194 | 208 -> One (r167) + | 198 -> One (r168) + | 203 -> One (r169) + | 214 -> One (r170) + | 2484 -> One (r171) + | 594 -> One (r172) + | 593 -> One (r173) + | 215 | 592 -> One (r174) + | 2643 -> One (r175) + | 2644 -> One (r177) + | 2626 -> One (r178) + | 1941 -> One (r179) + | 1940 -> One (r180) + | 221 -> One (r181) + | 2597 -> One (r182) + | 2585 -> One (r183) + | 2584 -> One (r184) + | 227 -> One (r185) + | 2583 -> One (r186) + | 229 -> One (r187) + | 230 -> One (r188) + | 1782 -> One (r189) + | 1780 -> One (r190) + | 901 -> One (r191) + | 1170 -> One (r193) + | 2582 -> One (r195) + | 2581 -> One (r196) + | 2580 -> One (r197) + | 233 -> One (r198) + | 232 -> One (r199) + | 2579 -> One (r200) + | 2566 -> One (r201) + | 2565 -> One (r202) + | 525 -> One (r203) + | 524 | 1409 | 1469 -> One (r204) + | 2564 -> One (r206) + | 530 -> One (r207) + | 529 -> One (r208) + | 528 -> One (r209) + | 236 -> One (r210) + | 523 -> One (r211) + | 507 -> One (r212) + | 492 -> One (r214) + | 517 -> One (r216) + | 516 -> One (r217) + | 240 -> One (r218) + | 242 -> One (r219) + | 241 -> One (r220) + | 515 -> One (r221) + | 514 -> One (r222) + | 490 -> One (r223) + | 489 -> One (r224) + | 506 -> One (r226) + | 497 -> One (r227) + | 509 -> One (r229) + | 508 -> One (r230) + | 487 -> One (r231) + | 486 -> One (r232) + | 485 -> One (r233) + | 484 -> One (r234) + | 483 -> One (r235) + | 482 -> One (r236) + | 481 -> One (r237) + | 480 -> One (r238) + | 247 -> One (r239) + | 250 -> One (r240) + | 260 -> One (r242) + | 261 -> One (r244) + | 259 | 2389 -> One (r245) + | 258 | 2388 -> One (r246) + | 251 | 2387 -> One (r247) + | 257 -> One (r249) + | 254 -> One (r251) + | 253 -> One (r252) + | 256 -> One (r253) + | 255 -> One (r254) + | 479 -> One (r257) + | 272 -> One (r259) + | 274 -> One (r260) + | 276 -> One (r262) + | 273 -> One (r263) + | 279 -> One (r264) + | 278 -> One (r265) + | 419 -> One (r266) + | 418 -> One (r267) + | 417 -> One (r268) + | 290 -> One (r269) + | 286 -> One (r270) + | 288 -> One (r271) + | 293 -> One (r272) + | 292 | 663 -> One (r273) + | 291 | 662 -> One (r274) + | 300 -> One (r275) + | 299 -> One (r276) + | 298 -> One (r277) + | 304 -> One (r278) + | 303 -> One (r279) + | 302 -> One (r280) + | 331 -> One (r281) + | 330 -> One (r282) + | 395 -> One (r283) + | 325 -> One (r284) + | 324 -> One (r285) + | 323 -> One (r286) + | 322 -> One (r287) + | 316 -> One (r288) + | 309 -> One (r289) + | 315 -> One (r290) + | 314 -> One (r291) + | 313 -> One (r292) + | 312 -> One (r293) + | 311 -> One (r294) + | 329 -> One (r295) + | 335 -> One (r296) + | 338 -> One (r297) + | 337 -> One (r298) + | 342 -> One (r299) + | 353 -> One (r300) + | 348 -> One (r301) + | 347 -> One (r302) + | 350 -> One (r303) + | 358 -> One (r304) + | 357 -> One (r305) + | 356 -> One (r306) + | 363 -> One (r307) + | 362 -> One (r308) + | 367 -> One (r309) + | 373 -> One (r310) + | 372 -> One (r311) + | 378 -> One (r312) + | 377 -> One (r313) + | 376 -> One (r314) + | 375 -> One (r315) + | 383 -> One (r316) + | 382 -> One (r317) + | 381 -> One (r318) + | 380 -> One (r319) + | 385 -> One (r320) + | 389 -> One (r321) + | 388 -> One (r322) + | 387 -> One (r323) + | 393 -> One (r324) + | 392 -> One (r325) + | 391 -> One (r326) + | 403 -> One (r327) + | 402 -> One (r328) + | 401 -> One (r329) + | 400 -> One (r330) + | 399 -> One (r331) + | 407 -> One (r332) + | 411 -> One (r333) + | 410 -> One (r334) + | 415 -> One (r335) + | 423 -> One (r336) + | 427 -> One (r337) + | 426 -> One (r338) + | 431 -> One (r339) + | 456 -> One (r340) + | 455 -> One (r341) + | 454 -> One (r342) + | 440 -> One (r343) + | 439 -> One (r344) + | 438 -> One (r345) + | 437 -> One (r346) + | 436 -> One (r347) + | 444 -> One (r348) + | 448 -> One (r349) + | 447 -> One (r350) + | 452 -> One (r351) + | 460 -> One (r352) + | 464 -> One (r353) + | 463 -> One (r354) + | 468 -> One (r355) + | 471 -> One (r356) + | 475 -> One (r357) + | 494 -> One (r358) + | 493 -> One (r359) + | 496 -> One (r360) + | 505 -> One (r361) + | 504 -> One (r363) + | 501 -> One (r364) + | 500 -> One (r365) + | 503 -> One (r366) + | 513 -> One (r367) + | 512 -> One (r368) + | 511 -> One (r369) + | 522 -> One (r370) + | 520 -> One (r372) + | 519 -> One (r373) + | 527 -> One (r374) + | 536 -> One (r375) + | 535 -> One (r376) + | 534 -> One (r377) + | 533 -> One (r378) + | 2554 -> One (r380) + | 2041 -> One (r381) + | 2549 -> One (r382) + | 2548 -> One (r383) + | 2547 -> One (r384) + | 542 -> One (r385) + | 541 -> One (r386) + | 2543 -> One (r387) + | 2542 -> One (r388) + | 544 -> One (r389) + | 2540 -> One (r390) + | 2530 -> One (r391) + | 2529 -> One (r392) + | 2527 -> One (r393) + | 551 -> One (r394) + | 550 -> One (r395) + | 549 -> One (r396) + | 548 -> One (r397) + | 547 -> One (r398) + | 558 -> One (r399) + | 557 -> One (r400) + | 556 -> One (r401) + | 555 -> One (r402) + | 554 -> One (r403) + | 560 -> One (r404) + | 565 -> One (r405) + | 742 -> One (r406) + | 741 | 911 | 959 | 980 -> One (r407) + | 733 | 909 | 910 | 942 | 979 | 2249 -> One (r408) + | 574 -> One (r409) + | 577 -> One (r411) + | 576 -> One (r412) + | 573 -> One (r413) + | 572 -> One (r414) + | 2524 -> One (r415) + | 2523 -> One (r416) + | 2522 -> One (r417) + | 582 -> One (r418) + | 581 -> One (r419) + | 580 -> One (r420) + | 2521 -> One (r421) + | 2520 -> One (r422) + | 585 -> One (r423) + | 2499 -> One (r424) + | 2519 -> One (r426) + | 2518 -> One (r427) + | 2517 -> One (r428) + | 2516 -> One (r429) + | 2515 -> One (r430) + | 2514 -> One (r434) + | 2513 -> One (r435) + | 2512 -> One (r436) + | 2511 | 2679 -> One (r437) + | 2496 -> One (r442) + | 2495 -> One (r443) + | 2487 -> One (r444) + | 2486 -> One (r445) + | 2485 -> One (r446) + | 2483 -> One (r450) + | 2482 -> One (r451) + | 596 -> One (r452) + | 2481 -> One (r453) + | 2066 -> One (r454) + | 2061 -> One (r455) + | 2060 -> One (r456) + | 603 -> One (r457) + | 602 -> One (r458) + | 2059 -> One (r459) + | 608 -> One (r460) + | 614 -> One (r462) + | 615 -> One (r464) + | 607 -> One (r465) + | 606 -> One (r466) + | 612 -> One (r467) + | 610 -> One (r468) + | 611 -> One (r469) + | 613 -> One (r470) + | 2058 -> One (r471) + | 2057 -> One (r472) + | 2056 -> One (r473) + | 620 -> One (r474) + | 619 -> One (r475) + | 2051 -> One (r476) + | 2050 -> One (r477) + | 740 -> One (r478) + | 739 -> One (r479) + | 2035 -> One (r480) + | 2028 -> One (r481) + | 2027 -> One (r482) + | 843 -> One (r483) + | 1642 -> One (r485) + | 1639 -> One (r487) + | 1638 -> One (r488) + | 1637 -> One (r489) + | 827 -> One (r490) + | 817 -> One (r491) + | 816 -> One (r492) + | 796 -> One (r493) + | 634 -> One (r494) + | 633 -> One (r495) + | 632 -> One (r496) + | 631 -> One (r497) + | 630 -> One (r498) + | 641 -> One (r499) + | 640 -> One (r500) + | 639 -> One (r501) + | 638 -> One (r502) + | 637 -> One (r503) + | 791 -> One (r504) + | 788 -> One (r505) + | 645 -> One (r506) + | 771 -> One (r507) + | 770 -> One (r509) + | 769 -> One (r510) + | 647 -> One (r511) + | 782 -> One (r513) + | 653 -> One (r514) + | 650 -> One (r515) + | 649 -> One (r517) + | 648 -> One (r518) + | 652 -> One (r519) + | 781 -> One (r520) + | 680 | 1437 -> One (r522) + | 780 -> One (r524) + | 657 -> One (r525) + | 656 -> One (r526) + | 658 -> One (r527) + | 661 -> One (r528) + | 753 -> One (r529) + | 743 -> One (r530) + | 779 -> One (r531) + | 778 -> One (r533) + | 777 -> One (r534) + | 775 -> One (r535) + | 682 -> One (r536) + | 681 -> One (r537) + | 670 -> One (r538) + | 669 -> One (r539) + | 672 -> One (r540) + | 676 -> One (r541) + | 689 -> One (r542) + | 688 -> One (r543) + | 687 -> One (r544) + | 686 -> One (r545) + | 685 -> One (r546) + | 691 -> One (r547) + | 697 -> One (r550) + | 694 -> One (r551) + | 768 -> One (r552) + | 767 -> One (r553) + | 701 -> One (r554) + | 703 -> One (r555) + | 710 -> One (r556) + | 706 -> One (r557) + | 705 -> One (r558) + | 713 -> One (r559) + | 728 -> One (r560) + | 722 -> One (r561) + | 721 -> One (r562) + | 720 -> One (r563) + | 719 -> One (r564) + | 718 -> One (r565) + | 724 -> One (r566) + | 727 -> One (r567) + | 731 -> One (r568) + | 762 -> One (r569) + | 737 -> One (r570) + | 736 -> One (r571) + | 735 -> One (r572) + | 750 -> One (r573) + | 749 -> One (r574) + | 748 -> One (r575) + | 747 -> One (r576) + | 746 -> One (r577) + | 752 -> One (r578) + | 757 -> One (r579) + | 756 | 917 -> One (r580) + | 755 | 912 | 960 | 981 -> One (r581) + | 759 -> One (r582) + | 761 -> One (r583) + | 764 -> One (r584) + | 763 -> One (r585) + | 766 -> One (r586) + | 786 -> One (r587) + | 790 -> One (r588) + | 793 -> One (r589) + | 795 -> One (r590) + | 800 -> One (r591) + | 814 -> One (r592) + | 811 -> One (r593) + | 810 -> One (r594) + | 809 -> One (r595) + | 808 -> One (r596) + | 807 -> One (r597) + | 813 -> One (r598) + | 824 -> One (r599) + | 823 -> One (r600) + | 822 -> One (r601) + | 821 -> One (r602) + | 820 -> One (r603) + | 826 -> One (r604) + | 841 -> One (r605) + | 831 -> One (r606) + | 830 -> One (r607) + | 838 -> One (r608) + | 837 -> One (r609) + | 836 -> One (r610) + | 835 -> One (r611) + | 834 -> One (r612) + | 840 -> One (r613) + | 862 -> One (r614) + | 846 -> One (r615) + | 861 -> One (r617) + | 860 -> One (r618) + | 854 -> One (r619) + | 850 -> One (r620) + | 849 -> One (r621) + | 852 -> One (r622) + | 851 -> One (r623) + | 859 -> One (r624) + | 858 -> One (r625) + | 2021 -> One (r626) + | 2020 -> One (r627) + | 2019 -> One (r628) + | 2018 -> One (r629) + | 2017 -> One (r630) + | 2016 -> One (r631) + | 866 -> One (r632) + | 2015 -> One (r633) + | 1908 -> One (r634) + | 1907 -> One (r635) + | 1906 -> One (r636) + | 1905 -> One (r637) + | 1904 -> One (r638) + | 869 -> One (r639) + | 1408 -> One (r640) + | 2014 -> One (r642) + | 2013 -> One (r643) + | 2012 -> One (r644) + | 2010 -> One (r645) + | 2009 -> One (r646) + | 2437 -> One (r647) + | 1903 -> One (r648) + | 1902 -> One (r649) + | 1901 -> One (r650) + | 872 -> One (r651) + | 871 -> One (r652) + | 1121 -> One (r653) + | 1120 -> One (r654) + | 1891 -> One (r655) + | 1890 -> One (r656) + | 875 -> One (r657) + | 1870 -> One (r658) + | 1506 | 1720 | 1733 | 1746 | 1861 | 1873 | 2038 -> One (r659) + | 1860 -> One (r661) + | 1859 -> One (r662) + | 1850 -> One (r663) + | 1847 -> One (r664) + | 879 -> One (r665) + | 1846 -> One (r666) + | 1759 -> One (r667) + | 1758 -> One (r668) + | 1756 -> One (r669) + | 1762 -> One (r671) + | 1841 -> One (r673) + | 1840 -> One (r674) + | 1383 -> One (r675) + | 1370 -> One (r676) + | 1839 -> One (r677) + | 1838 -> One (r679) + | 1837 -> One (r680) + | 1832 -> One (r681) + | 886 -> One (r682) + | 885 -> One (r683) + | 1831 -> One (r684) + | 1830 -> One (r685) + | 1829 -> One (r686) + | 1828 -> One (r687) + | 1827 -> One (r688) + | 1821 -> One (r689) + | 1808 -> One (r690) + | 1807 -> One (r691) + | 1804 -> One (r692) + | 893 -> One (r693) + | 892 -> One (r694) + | 1797 -> One (r695) + | 1786 -> One (r696) + | 1785 -> One (r697) + | 896 -> One (r698) + | 895 -> One (r699) + | 1784 -> One (r700) + | 899 -> One (r701) + | 898 -> One (r702) + | 1783 -> One (r703) + | 1779 -> One (r704) + | 1778 -> One (r705) + | 1777 -> One (r706) + | 1000 -> One (r707) + | 1002 -> One (r709) + | 1407 -> One (r711) + | 1001 -> One (r713) + | 1404 -> One (r715) + | 1775 -> One (r717) + | 1009 -> One (r718) + | 1008 -> One (r719) + | 1004 -> One (r720) + | 905 -> One (r721) + | 904 -> One (r722) + | 907 -> One (r723) + | 941 -> One (r725) + | 939 -> One (r726) + | 938 -> One (r727) + | 937 -> One (r728) + | 916 -> One (r730) + | 915 -> One (r731) + | 914 -> One (r732) + | 918 -> One (r733) + | 921 -> One (r734) + | 923 -> One (r735) + | 930 -> One (r736) + | 928 -> One (r737) + | 927 -> One (r738) + | 936 -> One (r739) + | 935 -> One (r740) + | 934 -> One (r741) + | 949 | 957 -> One (r742) + | 956 -> One (r744) + | 953 -> One (r746) + | 955 -> One (r748) + | 954 -> One (r749) + | 948 -> One (r750) + | 947 -> One (r751) + | 946 -> One (r752) + | 945 -> One (r753) + | 952 -> One (r754) + | 951 -> One (r755) + | 964 -> One (r756) + | 963 -> One (r757) + | 962 -> One (r758) + | 966 -> One (r759) + | 975 -> One (r761) + | 974 -> One (r762) + | 971 -> One (r763) + | 970 -> One (r764) + | 969 -> One (r765) + | 973 -> One (r766) + | 977 -> One (r767) + | 999 -> One (r768) + | 985 -> One (r769) + | 984 -> One (r770) + | 983 -> One (r771) + | 988 -> One (r772) + | 987 -> One (r773) + | 994 -> One (r774) + | 993 -> One (r775) + | 992 -> One (r776) + | 991 -> One (r777) + | 996 -> One (r778) + | 998 -> One (r779) + | 1006 -> One (r780) + | 1013 -> One (r781) + | 1012 -> One (r782) + | 1011 -> One (r783) + | 1774 -> One (r784) + | 1014 -> One (r785) + | 1020 -> One (r786) + | 1019 -> One (r787) + | 1018 -> One (r788) + | 1017 -> One (r789) + | 1769 -> One (r790) + | 1027 -> One (r791) + | 1032 -> One (r792) + | 1031 -> One (r793) + | 1030 | 1766 -> One (r794) + | 1765 -> One (r795) + | 1136 -> One (r796) + | 1135 -> One (r797) + | 1134 -> One (r798) + | 1133 -> One (r799) + | 1037 -> One (r800) + | 1036 -> One (r801) + | 1117 -> One (r802) + | 1115 -> One (r803) + | 1114 -> One (r804) + | 1039 -> One (r805) + | 1041 -> One (r806) + | 1111 -> One (r807) + | 1110 -> One (r808) + | 1043 -> One (r809) + | 1109 -> One (r810) + | 1108 -> One (r811) + | 1106 -> One (r812) + | 1046 -> One (r813) + | 1054 -> One (r814) + | 1052 -> One (r815) + | 1051 -> One (r816) + | 1048 -> One (r817) + | 1103 -> One (r818) + | 1062 -> One (r819) + | 1061 -> One (r820) + | 1058 -> One (r821) + | 1057 -> One (r822) + | 1065 -> One (r823) + | 1064 -> One (r824) + | 1069 -> One (r825) + | 1068 -> One (r826) + | 1067 -> One (r827) + | 1088 -> One (r828) + | 1087 -> One (r830) + | 1075 -> One (r832) + | 1074 -> One (r833) + | 1073 -> One (r834) + | 1072 -> One (r835) + | 1071 -> One (r836) + | 1079 -> One (r837) + | 1078 -> One (r838) + | 1081 -> One (r839) + | 1086 -> One (r840) + | 1092 -> One (r842) + | 1095 -> One (r843) + | 1094 -> One (r844) + | 1096 | 3019 -> One (r845) + | 1098 -> One (r846) + | 1102 -> One (r848) + | 1113 -> One (r849) + | 1119 -> One (r850) + | 1124 -> One (r851) + | 1123 -> One (r852) + | 1126 -> One (r853) + | 1130 -> One (r854) + | 1633 -> One (r855) + | 1143 -> One (r856) + | 1142 -> One (r857) + | 1627 -> One (r858) + | 1632 -> One (r860) + | 1631 -> One (r861) + | 1630 -> One (r862) + | 1629 -> One (r863) + | 1628 -> One (r864) + | 1625 -> One (r865) + | 1148 -> One (r866) + | 1147 -> One (r867) + | 1146 -> One (r868) + | 1145 -> One (r869) + | 1624 -> One (r870) + | 1153 -> One (r871) + | 1152 -> One (r872) + | 1151 -> One (r873) + | 1155 -> One (r874) + | 1157 -> One (r875) + | 1521 | 1617 -> One (r876) + | 1520 | 1616 -> One (r877) + | 1159 | 1519 -> One (r878) + | 1158 | 1518 -> One (r879) + | 1163 | 1650 | 1727 | 1741 | 1856 | 1867 | 2032 -> One (r880) + | 1162 | 1649 | 1726 | 1740 | 1855 | 1866 | 2031 -> One (r881) + | 1161 | 1648 | 1725 | 1739 | 1854 | 1865 | 2030 -> One (r882) + | 1160 | 1647 | 1724 | 1738 | 1853 | 1864 | 2029 -> One (r883) + | 1614 -> One (r884) + | 1169 -> One (r885) + | 1168 -> One (r886) + | 1167 -> One (r887) + | 1177 -> One (r888) + | 1176 -> One (r889) + | 1175 -> One (r890) + | 1174 -> One (r891) + | 1179 -> One (r892) + | 1181 -> One (r893) + | 1183 -> One (r894) + | 1185 -> One (r895) + | 1189 | 1549 -> One (r896) + | 1188 | 1548 -> One (r897) + | 1187 | 1547 -> One (r898) + | 1186 | 1546 -> One (r899) + | 1494 -> One (r900) + | 1197 -> One (r901) + | 1196 -> One (r902) + | 1195 -> One (r903) + | 1194 -> One (r904) + | 1199 -> One (r905) + | 1207 -> One (r906) + | 1206 -> One (r907) + | 1205 -> One (r908) + | 1209 -> One (r909) + | 1214 -> One (r910) + | 1213 -> One (r911) + | 1222 -> One (r912) + | 1221 -> One (r913) + | 1220 -> One (r914) + | 1219 -> One (r915) + | 1228 -> One (r916) + | 1227 -> One (r917) + | 1226 -> One (r918) + | 1225 -> One (r919) + | 1238 -> One (r920) + | 1237 -> One (r921) + | 1236 -> One (r922) + | 1235 -> One (r923) + | 1242 -> One (r924) + | 1241 -> One (r925) + | 1249 -> One (r926) + | 1248 -> One (r927) + | 1247 -> One (r928) + | 1246 -> One (r929) + | 1255 -> One (r930) + | 1254 -> One (r931) + | 1253 -> One (r932) + | 1252 -> One (r933) + | 1261 -> One (r934) + | 1260 -> One (r935) + | 1259 -> One (r936) + | 1258 -> One (r937) + | 1267 -> One (r938) + | 1266 -> One (r939) + | 1265 -> One (r940) + | 1264 -> One (r941) + | 1273 -> One (r942) + | 1272 -> One (r943) + | 1271 -> One (r944) + | 1270 -> One (r945) + | 1279 -> One (r946) + | 1278 -> One (r947) + | 1277 -> One (r948) + | 1276 -> One (r949) + | 1285 -> One (r950) + | 1284 -> One (r951) + | 1283 -> One (r952) + | 1282 -> One (r953) + | 1291 -> One (r954) + | 1290 -> One (r955) + | 1289 -> One (r956) + | 1288 -> One (r957) + | 1297 -> One (r958) + | 1296 -> One (r959) + | 1295 -> One (r960) + | 1294 -> One (r961) + | 1303 -> One (r962) + | 1302 -> One (r963) + | 1301 -> One (r964) + | 1300 -> One (r965) + | 1309 -> One (r966) + | 1308 -> One (r967) + | 1307 -> One (r968) + | 1306 -> One (r969) + | 1315 -> One (r970) + | 1314 -> One (r971) + | 1313 -> One (r972) + | 1312 -> One (r973) + | 1321 -> One (r974) + | 1320 -> One (r975) + | 1319 -> One (r976) + | 1318 -> One (r977) + | 1327 -> One (r978) + | 1326 -> One (r979) + | 1325 -> One (r980) + | 1324 -> One (r981) + | 1333 -> One (r982) + | 1332 -> One (r983) + | 1331 -> One (r984) + | 1330 -> One (r985) + | 1339 -> One (r986) + | 1338 -> One (r987) + | 1337 -> One (r988) + | 1336 -> One (r989) + | 1345 -> One (r990) + | 1344 -> One (r991) + | 1343 -> One (r992) + | 1342 -> One (r993) + | 1351 -> One (r994) + | 1350 -> One (r995) + | 1349 -> One (r996) + | 1348 -> One (r997) + | 1357 -> One (r998) + | 1356 -> One (r999) + | 1355 -> One (r1000) + | 1354 -> One (r1001) + | 1363 -> One (r1002) + | 1362 -> One (r1003) + | 1361 -> One (r1004) + | 1360 -> One (r1005) + | 1369 -> One (r1006) + | 1368 -> One (r1007) + | 1367 -> One (r1008) + | 1366 -> One (r1009) + | 1376 -> One (r1010) + | 1375 -> One (r1011) + | 1374 -> One (r1012) + | 1373 -> One (r1013) + | 1378 -> One (r1014) + | 1382 -> One (r1015) + | 1381 -> One (r1016) + | 1380 -> One (r1017) + | 1389 -> One (r1018) + | 1388 -> One (r1019) + | 1387 -> One (r1020) + | 1386 -> One (r1021) + | 1492 -> One (r1022) + | 1489 -> One (r1023) + | 1391 -> One (r1024) + | 1397 -> One (r1025) + | 1396 -> One (r1026) + | 1398 -> One (r1028) + | 1395 -> One (r1029) + | 1405 -> One (r1030) + | 1403 -> One (r1031) + | 1402 -> One (r1032) + | 1415 -> One (r1033) + | 1414 -> One (r1034) + | 1413 -> One (r1035) + | 1412 -> One (r1036) + | 1411 -> One (r1037) + | 1418 -> One (r1038) + | 1417 -> One (r1039) + | 1423 -> One (r1040) + | 1422 -> One (r1041) + | 1421 -> One (r1042) + | 1420 -> One (r1043) + | 1426 -> One (r1044) + | 1425 -> One (r1045) + | 1429 -> One (r1046) + | 1428 -> One (r1047) + | 1432 -> One (r1048) + | 1431 -> One (r1049) + | 1436 -> One (r1050) + | 1435 -> One (r1051) + | 1441 -> One (r1052) + | 1440 -> One (r1053) + | 1439 -> One (r1054) + | 1444 -> One (r1055) + | 1443 -> One (r1056) + | 1447 -> One (r1057) + | 1446 -> One (r1058) + | 1450 -> One (r1059) + | 1449 -> One (r1060) + | 1461 -> One (r1061) + | 1458 -> One (r1062) + | 1457 -> One (r1063) + | 1456 -> One (r1064) + | 1455 -> One (r1065) + | 1454 -> One (r1066) + | 1460 -> One (r1067) + | 1464 -> One (r1068) + | 1466 -> One (r1069) + | 1484 -> One (r1070) + | 1468 -> One (r1071) + | 1474 -> One (r1072) + | 1473 -> One (r1073) + | 1472 -> One (r1074) + | 1471 -> One (r1075) + | 1477 -> One (r1076) + | 1476 -> One (r1077) + | 1480 -> One (r1078) + | 1479 -> One (r1079) + | 1483 -> One (r1080) + | 1482 -> One (r1081) + | 1487 -> One (r1082) + | 1486 -> One (r1083) + | 1491 -> One (r1084) + | 1497 | 1558 -> One (r1085) + | 1496 | 1557 -> One (r1086) + | 1495 | 1556 -> One (r1087) + | 1500 | 1567 -> One (r1088) + | 1499 | 1566 -> One (r1089) + | 1498 | 1565 -> One (r1090) + | 1505 | 1578 -> One (r1091) + | 1504 | 1577 -> One (r1092) + | 1503 | 1576 -> One (r1093) + | 1502 | 1575 -> One (r1094) + | 1511 | 1587 -> One (r1095) + | 1510 | 1586 -> One (r1096) + | 1509 | 1585 -> One (r1097) + | 1514 | 1596 -> One (r1098) + | 1513 | 1595 -> One (r1099) + | 1512 | 1594 -> One (r1100) + | 1517 -> One (r1101) + | 1527 -> One (r1102) + | 1526 -> One (r1103) + | 1525 -> One (r1104) + | 1524 -> One (r1105) + | 1530 | 1620 -> One (r1106) + | 1529 | 1619 -> One (r1107) + | 1528 | 1618 -> One (r1108) + | 1536 -> One (r1109) + | 1535 -> One (r1110) + | 1534 -> One (r1111) + | 1533 -> One (r1112) + | 1539 | 1623 -> One (r1113) + | 1538 | 1622 -> One (r1114) + | 1537 | 1621 -> One (r1115) + | 1545 -> One (r1116) + | 1544 -> One (r1117) + | 1543 -> One (r1118) + | 1542 -> One (r1119) + | 1555 -> One (r1120) + | 1554 -> One (r1121) + | 1553 -> One (r1122) + | 1552 -> One (r1123) + | 1564 -> One (r1124) + | 1563 -> One (r1125) + | 1562 -> One (r1126) + | 1561 -> One (r1127) + | 1573 -> One (r1128) + | 1572 -> One (r1129) + | 1571 -> One (r1130) + | 1570 -> One (r1131) + | 1584 -> One (r1132) + | 1583 -> One (r1133) + | 1582 -> One (r1134) + | 1581 -> One (r1135) + | 1593 -> One (r1136) + | 1592 -> One (r1137) + | 1591 -> One (r1138) + | 1590 -> One (r1139) + | 1602 -> One (r1140) + | 1601 -> One (r1141) + | 1600 -> One (r1142) + | 1599 -> One (r1143) + | 1609 -> One (r1144) + | 1608 -> One (r1145) + | 1607 -> One (r1146) + | 1606 -> One (r1147) + | 1636 -> One (r1148) + | 1635 -> One (r1149) + | 1641 -> One (r1150) + | 1645 -> One (r1151) + | 1717 -> One (r1152) + | 1656 -> One (r1153) + | 1655 -> One (r1154) + | 1654 -> One (r1155) + | 1653 -> One (r1156) + | 1691 -> One (r1157) + | 1686 -> One (r1158) + | 1710 -> One (r1160) + | 1685 -> One (r1161) + | 1660 -> One (r1162) + | 1712 -> One (r1164) + | 1658 -> One (r1166) + | 1711 -> One (r1167) + | 1668 -> One (r1168) + | 1663 -> One (r1169) + | 1662 -> One (r1170) + | 1667 -> One (r1171) + | 1666 -> One (r1172) + | 1665 -> One (r1173) + | 1676 -> One (r1174) + | 1671 -> One (r1175) + | 1670 -> One (r1176) + | 1675 -> One (r1177) + | 1674 -> One (r1178) + | 1673 -> One (r1179) + | 1684 -> One (r1180) + | 1679 -> One (r1181) + | 1678 -> One (r1182) + | 1683 -> One (r1183) + | 1682 -> One (r1184) + | 1681 -> One (r1185) + | 1690 -> One (r1186) + | 1689 -> One (r1187) + | 1688 -> One (r1188) + | 1709 -> One (r1189) + | 1704 -> One (r1190) + | 1703 -> One (r1191) + | 1702 -> One (r1192) + | 1697 -> One (r1193) + | 1696 -> One (r1194) + | 1695 -> One (r1195) + | 1694 -> One (r1196) + | 1701 -> One (r1197) + | 1700 -> One (r1198) + | 1699 -> One (r1199) + | 1708 -> One (r1200) + | 1707 -> One (r1201) + | 1706 -> One (r1202) + | 1714 -> One (r1203) + | 1719 -> One (r1204) + | 1722 -> One (r1205) + | 1730 -> One (r1206) + | 1729 -> One (r1207) + | 1732 -> One (r1208) + | 1735 -> One (r1209) + | 1737 -> One (r1210) + | 1743 -> One (r1211) + | 1745 -> One (r1212) + | 1748 -> One (r1213) + | 1751 -> One (r1215) + | 1750 -> One (r1216) + | 1764 -> One (r1217) + | 1763 -> One (r1218) + | 1755 -> One (r1219) + | 1754 -> One (r1220) + | 1773 -> One (r1221) + | 1772 -> One (r1222) + | 1771 -> One (r1223) + | 1790 -> One (r1224) + | 1789 -> One (r1225) + | 1788 -> One (r1226) + | 1796 -> One (r1227) + | 1795 -> One (r1228) + | 1794 -> One (r1229) + | 1793 -> One (r1230) + | 1803 -> One (r1231) + | 1802 -> One (r1232) + | 1801 -> One (r1233) + | 1800 -> One (r1234) + | 1806 -> One (r1235) + | 1814 -> One (r1236) + | 1813 -> One (r1237) + | 1812 -> One (r1238) + | 1811 -> One (r1239) + | 1816 -> One (r1240) + | 1820 -> One (r1241) + | 1819 -> One (r1242) + | 1818 -> One (r1243) + | 1826 -> One (r1244) + | 1825 -> One (r1245) + | 1824 -> One (r1246) + | 1823 -> One (r1247) + | 1836 -> One (r1248) + | 1835 -> One (r1249) + | 1834 -> One (r1250) + | 1845 -> One (r1251) + | 1844 -> One (r1252) + | 1843 -> One (r1253) + | 1852 -> One (r1254) + | 1858 -> One (r1255) + | 1863 -> One (r1256) + | 1869 -> One (r1257) + | 1872 -> One (r1258) + | 1875 -> One (r1259) + | 1880 -> One (r1260) + | 1879 -> One (r1261) + | 1878 -> One (r1262) + | 1877 -> One (r1263) + | 1883 -> One (r1264) + | 1882 -> One (r1265) + | 1886 -> One (r1266) + | 1885 -> One (r1267) + | 1889 -> One (r1268) + | 1888 -> One (r1269) + | 1894 -> One (r1270) + | 1893 -> One (r1271) + | 1897 -> One (r1272) + | 1896 -> One (r1273) + | 1900 -> One (r1274) + | 1899 -> One (r1275) + | 1934 -> One (r1276) + | 1918 -> One (r1278) + | 1917 -> One (r1279) + | 1928 -> One (r1281) + | 1927 -> One (r1282) + | 1926 -> One (r1283) + | 1916 -> One (r1284) + | 1911 -> One (r1285) + | 1910 -> One (r1286) + | 1915 -> One (r1288) + | 1914 -> One (r1289) + | 1913 -> One (r1290) + | 1922 -> One (r1291) + | 1921 -> One (r1292) + | 1920 -> One (r1293) + | 1925 -> One (r1294) + | 1924 -> One (r1295) + | 1930 -> One (r1296) + | 1933 -> One (r1297) + | 1932 -> One (r1298) + | 2007 -> One (r1299) + | 2006 -> One (r1300) + | 2005 -> One (r1301) + | 2004 -> One (r1302) + | 1943 -> One (r1303) + | 1937 -> One (r1304) + | 1936 -> One (r1305) + | 1977 -> One (r1306) + | 1976 -> One (r1307) + | 1975 -> One (r1309) + | 1959 -> One (r1310) + | 1964 -> One (r1319) + | 1961 -> One (r1321) + | 1960 -> One (r1322) + | 1958 -> One (r1323) + | 1957 -> One (r1324) + | 1956 -> One (r1325) + | 1955 -> One (r1326) + | 1954 -> One (r1327) + | 1950 -> One (r1328) + | 1949 -> One (r1329) + | 1953 -> One (r1330) + | 1952 -> One (r1331) + | 1967 -> One (r1332) + | 1966 -> One (r1333) + | 1974 -> One (r1334) + | 1973 -> One (r1335) + | 1969 -> One (r1336) + | 1972 -> One (r1337) + | 1971 -> One (r1338) + | 2003 -> One (r1339) + | 1988 -> One (r1340) + | 1987 -> One (r1341) + | 1986 -> One (r1342) + | 1992 -> One (r1343) + | 1991 -> One (r1344) + | 1990 -> One (r1345) + | 1999 -> One (r1346) + | 1995 -> One (r1347) + | 1998 -> One (r1348) + | 1997 -> One (r1349) + | 2002 -> One (r1350) + | 2001 -> One (r1351) + | 2026 -> One (r1352) + | 2025 -> One (r1353) + | 2024 -> One (r1354) + | 2034 -> One (r1355) + | 2037 -> One (r1356) + | 2040 -> One (r1357) + | 2046 -> One (r1358) + | 2045 -> One (r1359) + | 2044 -> One (r1360) + | 2043 -> One (r1361) + | 2049 -> One (r1362) + | 2048 -> One (r1363) + | 2053 -> One (r1364) + | 2055 -> One (r1365) + | 2065 -> One (r1366) + | 2064 -> One (r1367) + | 2063 -> One (r1368) + | 2076 -> One (r1369) + | 2075 -> One (r1370) + | 2074 -> One (r1371) + | 2073 -> One (r1372) + | 2072 -> One (r1373) + | 2071 -> One (r1374) + | 2070 -> One (r1375) + | 2069 -> One (r1376) + | 2101 -> One (r1377) + | 2100 -> One (r1378) + | 2099 -> One (r1379) + | 2087 -> One (r1380) + | 2086 -> One (r1381) + | 2085 -> One (r1382) + | 2084 -> One (r1383) + | 2081 -> One (r1384) + | 2080 -> One (r1385) + | 2079 -> One (r1386) + | 2083 -> One (r1387) + | 2098 -> One (r1388) + | 2091 -> One (r1389) + | 2090 -> One (r1390) + | 2089 -> One (r1391) + | 2097 -> One (r1392) + | 2096 -> One (r1393) + | 2095 -> One (r1394) + | 2094 -> One (r1395) + | 2093 -> One (r1396) + | 2477 -> One (r1397) + | 2476 -> One (r1398) + | 2103 -> One (r1399) + | 2105 -> One (r1400) + | 2107 -> One (r1401) + | 2475 -> One (r1402) + | 2474 -> One (r1403) + | 2109 -> One (r1404) + | 2113 -> One (r1405) + | 2112 -> One (r1406) + | 2111 -> One (r1407) + | 2127 -> One (r1408) + | 2130 -> One (r1410) + | 2129 -> One (r1411) + | 2126 -> One (r1412) + | 2125 -> One (r1413) + | 2124 -> One (r1414) + | 2120 -> One (r1415) + | 2119 -> One (r1416) + | 2118 -> One (r1417) + | 2117 -> One (r1418) + | 2123 -> One (r1419) + | 2122 -> One (r1420) + | 2143 -> One (r1422) + | 2142 -> One (r1423) + | 2141 -> One (r1424) + | 2136 -> One (r1425) + | 2146 -> One (r1429) + | 2145 -> One (r1430) + | 2144 -> One (r1431) + | 2758 -> One (r1432) + | 2757 -> One (r1433) + | 2756 -> One (r1434) + | 2755 -> One (r1435) + | 2140 -> One (r1436) + | 2148 -> One (r1437) + | 2354 -> One (r1439) + | 2417 -> One (r1441) + | 2250 -> One (r1442) + | 2434 -> One (r1444) + | 2425 -> One (r1445) + | 2424 -> One (r1446) + | 2248 -> One (r1447) + | 2247 -> One (r1448) + | 2246 -> One (r1449) + | 2245 -> One (r1450) + | 2244 -> One (r1451) + | 2208 | 2390 -> One (r1452) + | 2243 -> One (r1454) + | 2233 -> One (r1455) + | 2232 -> One (r1456) + | 2164 -> One (r1457) + | 2163 -> One (r1458) + | 2162 -> One (r1459) + | 2155 -> One (r1460) + | 2153 -> One (r1461) + | 2152 -> One (r1462) + | 2157 -> One (r1463) + | 2159 -> One (r1465) + | 2158 -> One (r1466) + | 2161 -> One (r1467) + | 2226 -> One (r1468) + | 2225 -> One (r1469) + | 2170 -> One (r1470) + | 2166 -> One (r1471) + | 2169 -> One (r1472) + | 2168 -> One (r1473) + | 2181 -> One (r1474) + | 2180 -> One (r1475) + | 2179 -> One (r1476) + | 2178 -> One (r1477) + | 2177 -> One (r1478) + | 2172 -> One (r1479) + | 2192 -> One (r1480) + | 2191 -> One (r1481) + | 2190 -> One (r1482) + | 2189 -> One (r1483) + | 2188 -> One (r1484) + | 2183 -> One (r1485) + | 2217 -> One (r1486) + | 2216 -> One (r1487) + | 2194 -> One (r1488) + | 2215 -> One (r1491) + | 2214 -> One (r1492) + | 2213 -> One (r1493) + | 2212 -> One (r1494) + | 2196 -> One (r1495) + | 2210 -> One (r1496) + | 2200 -> One (r1497) + | 2199 -> One (r1498) + | 2198 -> One (r1499) + | 2207 | 2381 -> One (r1500) + | 2204 -> One (r1502) + | 2203 -> One (r1503) + | 2202 -> One (r1504) + | 2201 | 2380 -> One (r1505) + | 2206 -> One (r1506) + | 2222 -> One (r1507) + | 2221 -> One (r1508) + | 2220 -> One (r1509) + | 2224 -> One (r1511) + | 2223 -> One (r1512) + | 2219 -> One (r1513) + | 2228 -> One (r1514) + | 2231 -> One (r1515) + | 2242 -> One (r1516) + | 2241 -> One (r1517) + | 2240 -> One (r1518) + | 2239 -> One (r1519) + | 2238 -> One (r1520) + | 2237 -> One (r1521) + | 2236 -> One (r1522) + | 2235 -> One (r1523) + | 2411 -> One (r1524) + | 2410 -> One (r1525) + | 2253 -> One (r1526) + | 2252 -> One (r1527) + | 2279 -> One (r1528) + | 2278 -> One (r1529) + | 2277 -> One (r1530) + | 2276 -> One (r1531) + | 2267 -> One (r1532) + | 2266 -> One (r1534) + | 2265 -> One (r1535) + | 2261 -> One (r1536) + | 2260 -> One (r1537) + | 2259 -> One (r1538) + | 2258 -> One (r1539) + | 2256 -> One (r1540) + | 2264 -> One (r1541) + | 2263 -> One (r1542) + | 2275 -> One (r1543) + | 2274 -> One (r1544) + | 2273 -> One (r1545) + | 2282 -> One (r1546) + | 2281 -> One (r1547) + | 2323 -> One (r1548) + | 2312 -> One (r1549) + | 2311 -> One (r1550) + | 2302 -> One (r1551) + | 2301 -> One (r1553) + | 2300 -> One (r1554) + | 2299 -> One (r1555) + | 2288 -> One (r1556) + | 2287 -> One (r1557) + | 2285 -> One (r1558) + | 2298 -> One (r1559) + | 2297 -> One (r1560) + | 2296 -> One (r1561) + | 2295 -> One (r1562) + | 2294 -> One (r1563) + | 2293 -> One (r1564) + | 2292 -> One (r1565) + | 2291 -> One (r1566) + | 2310 -> One (r1567) + | 2309 -> One (r1568) + | 2308 -> One (r1569) + | 2322 -> One (r1570) + | 2321 -> One (r1571) + | 2320 -> One (r1572) + | 2319 -> One (r1573) + | 2318 -> One (r1574) + | 2317 -> One (r1575) + | 2316 -> One (r1576) + | 2315 -> One (r1577) + | 2327 -> One (r1578) + | 2326 -> One (r1579) + | 2325 -> One (r1580) + | 2405 -> One (r1581) + | 2404 -> One (r1582) + | 2403 -> One (r1583) + | 2402 -> One (r1584) + | 2401 -> One (r1585) + | 2400 -> One (r1586) + | 2397 -> One (r1587) + | 2330 -> One (r1588) + | 2374 -> One (r1589) + | 2373 -> One (r1590) + | 2368 -> One (r1591) + | 2367 -> One (r1592) + | 2366 -> One (r1593) + | 2365 -> One (r1594) + | 2339 -> One (r1595) + | 2338 -> One (r1596) + | 2337 -> One (r1597) + | 2336 -> One (r1598) + | 2335 -> One (r1599) + | 2334 -> One (r1600) + | 2364 -> One (r1601) + | 2343 -> One (r1602) + | 2342 -> One (r1603) + | 2341 -> One (r1604) + | 2347 -> One (r1605) + | 2346 -> One (r1606) + | 2345 -> One (r1607) + | 2361 -> One (r1608) + | 2351 -> One (r1609) + | 2350 -> One (r1610) + | 2363 -> One (r1612) + | 2349 -> One (r1613) + | 2358 -> One (r1614) + | 2353 -> One (r1615) + | 2372 -> One (r1616) + | 2371 -> One (r1617) + | 2370 -> One (r1618) + | 2392 -> One (r1619) + | 2396 -> One (r1621) + | 2395 -> One (r1622) + | 2394 -> One (r1623) + | 2379 -> One (r1624) + | 2378 -> One (r1625) + | 2377 -> One (r1626) + | 2393 -> One (r1627) + | 2383 -> One (r1628) + | 2391 -> One (r1629) + | 2386 -> One (r1630) + | 2385 -> One (r1631) + | 2399 -> One (r1632) + | 2409 -> One (r1633) + | 2408 -> One (r1634) + | 2407 -> One (r1635) + | 2413 -> One (r1636) + | 2416 -> One (r1637) + | 2421 -> One (r1638) + | 2420 -> One (r1639) + | 2419 -> One (r1640) + | 2423 -> One (r1641) + | 2433 -> One (r1642) + | 2432 -> One (r1643) + | 2431 -> One (r1644) + | 2430 -> One (r1645) + | 2429 -> One (r1646) + | 2428 -> One (r1647) + | 2427 -> One (r1648) + | 2443 -> One (r1649) + | 2447 -> One (r1650) + | 2452 -> One (r1651) + | 2451 -> One (r1652) + | 2450 -> One (r1653) + | 2449 -> One (r1654) + | 2464 -> One (r1655) + | 2462 -> One (r1656) + | 2461 -> One (r1657) + | 2460 -> One (r1658) + | 2459 -> One (r1659) + | 2458 -> One (r1660) + | 2457 -> One (r1661) + | 2456 -> One (r1662) + | 2455 -> One (r1663) + | 2470 -> One (r1664) + | 2469 -> One (r1665) + | 2480 -> One (r1666) + | 2479 -> One (r1667) + | 2494 -> One (r1668) + | 2493 -> One (r1669) + | 2489 | 2628 -> One (r1670) + | 2488 | 2630 -> One (r1671) + | 2492 -> One (r1672) + | 2491 -> One (r1673) + | 2506 -> One (r1674) + | 2505 -> One (r1675) + | 2526 -> One (r1676) + | 2537 -> One (r1677) + | 2536 -> One (r1678) + | 2535 -> One (r1679) + | 2534 -> One (r1680) + | 2533 -> One (r1681) + | 2539 -> One (r1682) + | 2546 -> One (r1683) + | 2545 -> One (r1684) + | 2553 -> One (r1685) + | 2552 -> One (r1686) + | 2551 -> One (r1687) + | 2559 -> One (r1688) + | 2563 -> One (r1689) + | 2562 -> One (r1690) + | 2561 -> One (r1691) + | 2572 -> One (r1692) + | 2571 -> One (r1693) + | 2570 -> One (r1694) + | 2569 -> One (r1695) + | 2574 -> One (r1696) + | 2578 -> One (r1697) + | 2577 -> One (r1698) + | 2576 -> One (r1699) + | 2589 -> One (r1700) + | 2588 -> One (r1701) + | 2587 -> One (r1702) + | 2591 -> One (r1703) + | 2599 -> One (r1704) + | 2609 -> One (r1705) + | 2613 -> One (r1706) + | 2612 -> One (r1707) + | 2617 -> One (r1708) + | 2622 -> One (r1709) + | 2621 -> One (r1710) + | 2625 -> One (r1711) + | 2624 -> One (r1712) + | 2639 -> One (r1713) + | 2638 -> One (r1714) + | 2642 -> One (r1715) + | 2641 -> One (r1716) + | 2662 -> One (r1717) + | 2654 -> One (r1718) + | 2650 -> One (r1719) + | 2649 -> One (r1720) + | 2653 -> One (r1721) + | 2652 -> One (r1722) + | 2658 -> One (r1723) + | 2657 -> One (r1724) + | 2661 -> One (r1725) + | 2660 -> One (r1726) + | 2668 -> One (r1727) + | 2667 -> One (r1728) + | 2666 -> One (r1729) + | 2683 -> One (r1730) + | 2682 -> One (r1731) + | 2681 -> One (r1732) + | 2812 -> One (r1733) + | 2699 -> One (r1734) + | 2698 -> One (r1735) + | 2697 -> One (r1736) + | 2696 -> One (r1737) + | 2695 -> One (r1738) + | 2694 -> One (r1739) + | 2693 -> One (r1740) + | 2692 -> One (r1741) + | 2754 -> One (r1742) + | 2744 -> One (r1744) + | 2743 -> One (r1745) + | 2742 -> One (r1746) + | 2746 -> One (r1748) + | 2745 -> One (r1749) + | 2735 -> One (r1750) + | 2709 -> One (r1751) + | 2708 -> One (r1752) + | 2707 -> One (r1753) + | 2706 -> One (r1754) + | 2705 -> One (r1755) + | 2704 -> One (r1756) + | 2703 -> One (r1757) + | 2702 -> One (r1758) + | 2713 -> One (r1759) + | 2712 -> One (r1760) + | 2728 -> One (r1761) + | 2719 -> One (r1762) + | 2718 -> One (r1763) + | 2717 -> One (r1764) + | 2716 -> One (r1765) + | 2715 -> One (r1766) + | 2727 -> One (r1767) + | 2726 -> One (r1768) + | 2725 -> One (r1769) + | 2724 -> One (r1770) + | 2723 -> One (r1771) + | 2722 -> One (r1772) + | 2721 -> One (r1773) + | 2732 -> One (r1774) + | 2731 -> One (r1775) + | 2734 -> One (r1777) + | 2733 -> One (r1778) + | 2730 -> One (r1779) + | 2741 -> One (r1780) + | 2740 -> One (r1781) + | 2737 -> One (r1782) + | 2739 -> One (r1783) + | 2749 -> One (r1784) + | 2748 -> One (r1785) + | 2751 -> One (r1787) + | 2753 -> One (r1788) + | 2777 -> One (r1789) + | 2767 -> One (r1790) + | 2766 -> One (r1791) + | 2765 -> One (r1792) + | 2764 -> One (r1793) + | 2763 -> One (r1794) + | 2762 -> One (r1795) + | 2761 -> One (r1796) + | 2760 -> One (r1797) + | 2776 -> One (r1798) + | 2775 -> One (r1799) + | 2774 -> One (r1800) + | 2773 -> One (r1801) + | 2772 -> One (r1802) + | 2771 -> One (r1803) + | 2770 -> One (r1804) + | 2769 -> One (r1805) + | 2786 -> One (r1806) + | 2789 -> One (r1807) + | 2795 -> One (r1808) + | 2794 -> One (r1809) + | 2793 -> One (r1810) + | 2792 -> One (r1811) + | 2791 -> One (r1812) + | 2797 -> One (r1813) + | 2809 -> One (r1814) + | 2808 -> One (r1815) + | 2807 -> One (r1816) + | 2806 -> One (r1817) + | 2805 -> One (r1818) + | 2804 -> One (r1819) + | 2803 -> One (r1820) + | 2802 -> One (r1821) + | 2801 -> One (r1822) + | 2800 -> One (r1823) + | 2821 -> One (r1824) + | 2820 -> One (r1825) + | 2819 -> One (r1826) + | 2818 -> One (r1827) + | 2817 -> One (r1828) + | 2825 -> One (r1829) + | 2829 -> One (r1830) + | 2828 -> One (r1831) + | 2833 -> One (r1832) + | 2837 -> One (r1833) + | 2836 -> One (r1834) + | 2841 -> One (r1835) + | 2845 -> One (r1836) + | 2844 -> One (r1837) + | 2849 -> One (r1838) + | 2874 -> One (r1839) + | 2873 -> One (r1840) + | 2872 -> One (r1841) + | 2858 -> One (r1842) + | 2857 -> One (r1843) + | 2856 -> One (r1844) + | 2855 -> One (r1845) + | 2854 -> One (r1846) + | 2862 -> One (r1847) + | 2866 -> One (r1848) + | 2865 -> One (r1849) + | 2870 -> One (r1850) + | 2878 -> One (r1851) + | 2882 -> One (r1852) + | 2881 -> One (r1853) + | 2886 -> One (r1854) + | 2892 -> One (r1855) + | 2891 -> One (r1856) + | 2890 -> One (r1857) + | 2896 -> One (r1858) + | 2900 -> One (r1859) + | 2899 -> One (r1860) + | 2904 -> One (r1861) + | 2910 -> One (r1862) + | 2914 -> One (r1863) + | 2918 -> One (r1864) + | 2917 -> One (r1865) + | 2922 -> One (r1866) + | 2935 -> One (r1867) + | 2934 -> One (r1868) + | 2933 -> One (r1869) + | 2939 -> One (r1870) + | 2938 -> One (r1871) + | 2937 -> One (r1872) + | 2954 -> One (r1873) + | 2958 -> One (r1874) + | 2963 -> One (r1875) + | 2970 -> One (r1876) + | 2969 -> One (r1877) + | 2968 -> One (r1878) + | 2967 -> One (r1879) + | 2977 -> One (r1880) + | 2981 -> One (r1881) + | 2985 -> One (r1882) + | 2988 -> One (r1883) + | 2993 -> One (r1884) + | 2997 -> One (r1885) + | 3001 -> One (r1886) + | 3005 -> One (r1887) + | 3009 -> One (r1888) + | 3012 -> One (r1889) + | 3016 -> One (r1890) + | 3022 -> One (r1891) + | 3030 -> One (r1892) + | 3040 -> One (r1893) + | 3042 -> One (r1894) + | 3045 -> One (r1895) + | 3044 -> One (r1896) + | 3047 -> One (r1897) + | 3057 -> One (r1898) + | 3053 -> One (r1899) + | 3052 -> One (r1900) + | 3056 -> One (r1901) + | 3055 -> One (r1902) + | 3062 -> One (r1903) + | 3061 -> One (r1904) + | 3060 -> One (r1905) + | 3064 -> One (r1906) | 700 -> Select (function | -1 -> [R 122] - | _ -> S (T T_DOT) :: r555) + | _ -> S (T T_DOT) :: r554) | 1029 -> Select (function | -1 | 538 -> [R 122] - | _ -> r796) + | _ -> r795) | 586 -> Select (function - | -1 -> R 152 :: r442 - | _ -> R 152 :: r434) + | -1 -> R 152 :: r441 + | _ -> R 152 :: r433) | 2132 -> Select (function - | -1 -> r1436 - | _ -> R 152 :: r1429) + | -1 -> r1435 + | _ -> R 152 :: r1428) | 1085 -> Select (function - | -1 -> r254 + | -1 -> r253 | _ -> [R 300]) | 693 -> Select (function | -1 -> [R 914] - | _ -> S (T T_DOTDOT) :: r552) + | _ -> S (T T_DOTDOT) :: r551) | 732 -> Select (function | -1 -> [R 1008] - | _ -> S (N N_pattern) :: r570) + | _ -> S (N N_pattern) :: r569) | 712 -> Select (function | -1 -> [R 1009] - | _ -> S (N N_pattern) :: r560) + | _ -> S (N N_pattern) :: r559) | 589 -> Select (function - | -1 -> R 1267 :: r450 - | _ -> R 1267 :: r448) + | -1 -> R 1267 :: r449 + | _ -> R 1267 :: r447) | 139 -> Select (function | 271 | 278 | 324 | 330 | 337 | 362 | 402 | 410 | 418 | 426 | 439 | 447 | 455 | 463 | 2604 | 2612 | 2820 | 2828 | 2836 | 2844 | 2857 | 2865 | 2873 | 2881 | 2891 | 2899 | 2909 | 2917 -> S (T T_UNDERSCORE) :: r87 | -1 -> S (T T_MODULE) :: r95 | _ -> r74) | 621 -> Select (function - | -1 -> S (T T_RPAREN) :: r182 - | 538 -> S (T T_COLONCOLON) :: r480 - | _ -> Sub (r3) :: r478) + | -1 -> S (T T_RPAREN) :: r181 + | 538 -> S (T T_COLONCOLON) :: r479 + | _ -> Sub (r3) :: r477) | 2137 -> Select (function - | -1 -> S (T T_RPAREN) :: r182 - | _ -> S (T T_COLONCOLON) :: r480) + | -1 -> S (T T_RPAREN) :: r181 + | _ -> S (T T_COLONCOLON) :: r479) | 569 -> Select (function | 627 | 1139 | 1640 -> r48 - | -1 -> S (T T_RPAREN) :: r182 - | _ -> r409) + | -1 -> S (T T_RPAREN) :: r181 + | _ -> r408) | 644 -> Select (function - | -1 -> S (T T_RBRACKET) :: r507 - | _ -> Sub (r509) :: r511) + | -1 -> S (T T_RBRACKET) :: r506 + | _ -> Sub (r508) :: r510) | 877 -> Select (function - | -1 -> S (T T_RBRACKET) :: r507 - | _ -> Sub (r661) :: r663) + | -1 -> S (T T_RBRACKET) :: r506 + | _ -> Sub (r660) :: r662) | 131 -> Select (function | 153 | 283 | 306 | 434 | 912 | 1409 | 1469 | 2852 -> r74 | _ -> S (T T_QUOTE) :: r83) | 868 -> Select (function - | 61 | 227 | 585 | 596 | 2103 | 2109 -> r648 - | _ -> S (T T_OPEN) :: r640) + | 61 | 227 | 585 | 596 | 2103 | 2109 -> r647 + | _ -> S (T T_OPEN) :: r639) | 2139 -> Select (function - | -1 -> r846 - | _ -> S (T T_LPAREN) :: r1437) + | -1 -> r845 + | _ -> S (T T_LPAREN) :: r1436) | 267 -> Select (function - | -1 -> r256 - | _ -> S (T T_DOT) :: r259) + | -1 -> r255 + | _ -> S (T T_DOT) :: r258) | 1083 -> Select (function - | -1 -> r256 - | _ -> S (T T_DOT) :: r842) + | -1 -> r255 + | _ -> S (T T_DOT) :: r841) | 150 -> Select (function - | -1 | 271 | 278 | 324 | 330 | 337 | 362 | 402 | 410 | 418 | 426 | 439 | 447 | 455 | 463 | 2604 | 2612 | 2820 | 2828 | 2836 | 2844 | 2857 | 2865 | 2873 | 2881 | 2891 | 2899 | 2909 | 2917 -> r104 - | _ -> S (T T_COLON) :: r110) + | -1 | 271 | 278 | 324 | 330 | 337 | 362 | 402 | 410 | 418 | 426 | 439 | 447 | 455 | 463 | 2604 | 2612 | 2820 | 2828 | 2836 | 2844 | 2857 | 2865 | 2873 | 2881 | 2891 | 2899 | 2909 | 2917 -> r103 + | _ -> S (T T_COLON) :: r109) | 126 -> Select (function | 847 | 912 | 925 | 960 | 967 | 981 | 1409 | 1469 | 1978 -> r63 | _ -> r61) | 141 -> Select (function | -1 | 152 | 271 | 278 | 282 | 305 | 324 | 328 | 330 | 334 | 337 | 341 | 362 | 366 | 402 | 406 | 410 | 414 | 418 | 422 | 426 | 430 | 433 | 439 | 443 | 447 | 451 | 455 | 459 | 463 | 467 | 470 | 474 | 2604 | 2608 | 2612 | 2616 | 2820 | 2824 | 2828 | 2832 | 2836 | 2840 | 2844 | 2848 | 2851 | 2857 | 2861 | 2865 | 2869 | 2873 | 2877 | 2881 | 2885 | 2891 | 2895 | 2899 | 2903 | 2909 | 2913 | 2917 | 2921 -> r99 | _ -> r61) - | 2943 -> Select (function + | 2942 -> Select (function | 153 | 283 | 306 | 434 | 912 | 1409 | 1469 | 2852 -> r61 | _ -> r82) | 123 -> Select (function @@ -5439,7 +5437,7 @@ let recover = | 140 -> Select (function | -1 | 152 | 271 | 278 | 282 | 305 | 324 | 328 | 330 | 334 | 337 | 341 | 362 | 366 | 402 | 406 | 410 | 414 | 418 | 422 | 426 | 430 | 433 | 439 | 443 | 447 | 451 | 455 | 459 | 463 | 467 | 470 | 474 | 2604 | 2608 | 2612 | 2616 | 2820 | 2824 | 2828 | 2832 | 2836 | 2840 | 2844 | 2848 | 2851 | 2857 | 2861 | 2865 | 2869 | 2873 | 2877 | 2881 | 2885 | 2891 | 2895 | 2899 | 2903 | 2909 | 2913 | 2917 | 2921 -> r100 | _ -> r62) - | 2942 -> Select (function + | 2941 -> Select (function | 153 | 283 | 306 | 434 | 912 | 1409 | 1469 | 2852 -> r62 | _ -> r83) | 1984 -> Select (function @@ -5452,36 +5450,36 @@ let recover = | 113 | 989 | 1950 | 2120 | 2190 | 2289 | 2309 | 2313 | 2587 -> r81 | _ -> r98) | 2510 -> Select (function - | -1 -> r439 - | _ -> r104) + | -1 -> r438 + | _ -> r103) | 591 -> Select (function - | -1 -> r449 - | _ -> r104) + | -1 -> r448 + | _ -> r103) | 268 -> Select (function - | -1 -> r255 - | _ -> r259) + | -1 -> r254 + | _ -> r258) | 1084 -> Select (function - | -1 -> r255 - | _ -> r842) + | -1 -> r254 + | _ -> r841) | 2509 -> Select (function + | -1 -> r439 + | _ -> r431) + | 588 -> Select (function | -1 -> r440 | _ -> r432) - | 588 -> Select (function + | 587 -> Select (function | -1 -> r441 | _ -> r433) - | 587 -> Select (function - | -1 -> r442 - | _ -> r434) | 590 -> Select (function - | -1 -> r450 - | _ -> r448) + | -1 -> r449 + | _ -> r447) | 2135 -> Select (function + | -1 -> r1432 + | _ -> r1426) + | 2134 -> Select (function | -1 -> r1433 | _ -> r1427) - | 2134 -> Select (function + | 2133 -> Select (function | -1 -> r1434 | _ -> r1428) - | 2133 -> Select (function - | -1 -> r1435 - | _ -> r1429) | _ -> raise Not_found diff --git a/src/ocaml/typing/jkind.ml b/src/ocaml/typing/jkind.ml index 777c30b31..fbfb596a5 100644 --- a/src/ocaml/typing/jkind.ml +++ b/src/ocaml/typing/jkind.ml @@ -15,22 +15,6 @@ open Mode open Jkind_types -<<<<<<< janestreet/merlin-jst:5.2.0minus-6 -||||||| ocaml-flambda/flambda-backend:6a83bbad9dd6c86ea5019a84258b04c81aa34a38 -[@@@warning "+9"] - -module Nonempty_list = Misc.Nonempty_list - -(* A *sort* is the information the middle/back ends need to be able to - compile a manipulation (storing, passing, etc) of a runtime value. *) -module Sort = struct -======= -[@@@warning "+9"] - -(* A *sort* is the information the middle/back ends need to be able to - compile a manipulation (storing, passing, etc) of a runtime value. *) -module Sort = struct ->>>>>>> ocaml-flambda/flambda-backend:db3778f932fc0a2f9d71ba5f9dcf7c76fcc74a63 (* Merlin-specific: change some module paths to match the compiler *) module Misc = struct include Misc @@ -40,8 +24,6 @@ end [@@@warning "+9"] -module Nonempty_list = Misc_stdlib.Nonempty_list - (* A *sort* is the information the middle/back ends need to be able to compile a manipulation (storing, passing, etc) of a runtime value. *) module Sort = struct diff --git a/src/ocaml/typing/jkind.mli b/src/ocaml/typing/jkind.mli index 50dab0dbd..0eba8cedc 100644 --- a/src/ocaml/typing/jkind.mli +++ b/src/ocaml/typing/jkind.mli @@ -76,60 +76,6 @@ end type sort = Sort.t -<<<<<<< janestreet/merlin-jst:5.2.0minus-6 -module Sub_failure_reason : sig - type t = - | Axis_disagreement of Jkind_axis.Axis.packed - | Layout_disagreement - | Constrain_ran_out_of_fuel -end - -module Sub_result : sig - type t = - | Equal - | Less - | Not_le of Sub_failure_reason.t Misc_stdlib.Nonempty_list.t - - val of_le_result : - failure_reason:(unit -> Sub_failure_reason.t Misc_stdlib.Nonempty_list.t) -> - Misc_stdlib.Le_result.t -> - t - - val combine : t -> t -> t - - val require_le : t -> (unit, Sub_failure_reason.t Misc_stdlib.Nonempty_list.t) result - - val is_le : t -> bool -end - -||||||| ocaml-flambda/flambda-backend:6a83bbad9dd6c86ea5019a84258b04c81aa34a38 -module Sub_failure_reason : sig - type t = - | Axis_disagreement of Jkind_axis.Axis.packed - | Layout_disagreement - | Constrain_ran_out_of_fuel -end - -module Sub_result : sig - type t = - | Equal - | Less - | Not_le of Sub_failure_reason.t Misc.Nonempty_list.t - - val of_le_result : - failure_reason:(unit -> Sub_failure_reason.t Misc.Nonempty_list.t) -> - Misc.Le_result.t -> - t - - val combine : t -> t -> t - - val require_le : t -> (unit, Sub_failure_reason.t Misc.Nonempty_list.t) result - - val is_le : t -> bool -end - -======= ->>>>>>> ocaml-flambda/flambda-backend:db3778f932fc0a2f9d71ba5f9dcf7c76fcc74a63 (* The layout of a type describes its memory layout. A layout is either the indeterminate [Any] or a sort, which is a concrete memory layout. *) module Layout : sig @@ -570,22 +516,8 @@ val sub : jkind_l -> jkind_r -> bool type sub_or_intersect = | Sub (** The first jkind is a subjkind of the second. *) -<<<<<<< janestreet/merlin-jst:5.2.0minus-6 - | Disjoint of Sub_failure_reason.t Misc_stdlib.Nonempty_list.t - (** The two jkinds have no common ground. *) - | Has_intersection of Sub_failure_reason.t Misc_stdlib.Nonempty_list.t - (** The first jkind is not a subjkind of the second, but the two jkinds have an - intersection: try harder. *) -||||||| ocaml-flambda/flambda-backend:6a83bbad9dd6c86ea5019a84258b04c81aa34a38 - | Disjoint of Sub_failure_reason.t Misc.Nonempty_list.t - (** The two jkinds have no common ground. *) - | Has_intersection of Sub_failure_reason.t Misc.Nonempty_list.t - (** The first jkind is not a subjkind of the second, but the two jkinds have an - intersection: try harder. *) -======= | Disjoint (** The two jkinds have no common ground. *) | Has_intersection (** The two jkinds have an intersection: try harder. *) ->>>>>>> ocaml-flambda/flambda-backend:db3778f932fc0a2f9d71ba5f9dcf7c76fcc74a63 (** [sub_or_intersect t1 t2] does a subtype check, returning a [sub_or_intersect]; see comments there for more info. *) diff --git a/src/ocaml/typing/jkind_axis.ml b/src/ocaml/typing/jkind_axis.ml index a2c3dc527..706fa2c84 100644 --- a/src/ocaml/typing/jkind_axis.ml +++ b/src/ocaml/typing/jkind_axis.ml @@ -12,22 +12,14 @@ (* *) (**************************************************************************) -<<<<<<< janestreet/merlin-jst:5.2.0minus-6 (* Merlin-specific: change some module paths to match the compiler *) module Misc = struct module Stdlib = Misc_stdlib include Misc_stdlib end -module type Axis_ops = sig - include Mode_intf.Lattice -||||||| ocaml-flambda/flambda-backend:6a83bbad9dd6c86ea5019a84258b04c81aa34a38 -module type Axis_ops = sig - include Mode_intf.Lattice -======= module type Axis_s = sig type t ->>>>>>> ocaml-flambda/flambda-backend:db3778f932fc0a2f9d71ba5f9dcf7c76fcc74a63 val max : t diff --git a/src/ocaml/typing/jkind_axis.mli b/src/ocaml/typing/jkind_axis.mli index 7bd3ee0de..59d4ed32c 100644 --- a/src/ocaml/typing/jkind_axis.mli +++ b/src/ocaml/typing/jkind_axis.mli @@ -16,19 +16,13 @@ module type Axis_s = sig type t -<<<<<<< janestreet/merlin-jst:5.2.0minus-6 - val less_or_equal : t -> t -> Misc_stdlib.Le_result.t -||||||| ocaml-flambda/flambda-backend:6a83bbad9dd6c86ea5019a84258b04c81aa34a38 - val less_or_equal : t -> t -> Misc.Le_result.t -======= val max : t val min : t ->>>>>>> ocaml-flambda/flambda-backend:db3778f932fc0a2f9d71ba5f9dcf7c76fcc74a63 val equal : t -> t -> bool - val less_or_equal : t -> t -> Misc.Le_result.t + val less_or_equal : t -> t -> Misc_stdlib.Le_result.t val le : t -> t -> bool @@ -96,248 +90,9 @@ module Axis : sig val name : _ t -> string end -<<<<<<< janestreet/merlin-jst:5.2.0minus-6 -(** A collection with one item for each jkind axis *) -module Axis_collection : sig - module type S_gen := sig - type ('a, 'b) u - - (* This is t_poly instead of t because in some instantiations of this signature, u - ignores its second parameter. In order to avoid needed to apply a useless type - parameter for those instantiations, we define [type t = unit t_poly] in them. In - instantiations where the polymorphism is actually used, we define - [type 'a t = 'a t_poly] *) - type 'a t_poly = - { locality : (Mode.Locality.Const.t, 'a) u; - linearity : (Mode.Linearity.Const.t, 'a) u; - uniqueness : (Mode.Uniqueness.Const.t, 'a) u; - portability : (Mode.Portability.Const.t, 'a) u; - contention : (Mode.Contention.Const.t, 'a) u; - yielding : (Mode.Yielding.Const.t, 'a) u; - externality : (Externality.t, 'a) u; - nullability : (Nullability.t, 'a) u - } - - val get : axis:'a Axis.t -> 'b t_poly -> ('a, 'b) u - - val set : axis:'a Axis.t -> 'b t_poly -> ('a, 'b) u -> 'b t_poly - - (** Create an axis collection by applying the function on each axis *) - module Create : sig - module Monadic (M : Misc_stdlib.Monad.S) : sig - type 'a f = { f : 'axis. axis:'axis Axis.t -> ('axis, 'a) u M.t } - [@@unboxed] - - val f : 'a f -> 'a t_poly M.t - end - - (** This record type is used to pass a polymorphic function to [create] *) - type 'a f = 'a Monadic(Misc_stdlib.Monad.Identity).f - - val f : 'a f -> 'a t_poly - end - - (** Map an operation over all the bounds *) - module Map : sig - module Monadic (M : Misc_stdlib.Monad.S) : sig - type ('a, 'b) f = - { f : 'axis. axis:'axis Axis.t -> ('axis, 'a) u -> ('axis, 'b) u M.t } - [@@unboxed] - - val f : ('a, 'b) f -> 'a t_poly -> 'b t_poly M.t - end - - type ('a, 'b) f = ('a, 'b) Monadic(Misc_stdlib.Monad.Identity).f - - val f : ('a, 'b) f -> 'a t_poly -> 'b t_poly - end - - module Iter : sig - type 'a f = { f : 'axis. axis:'axis Axis.t -> ('axis, 'a) u -> unit } - [@@unboxed] - - val f : 'a f -> 'a t_poly -> unit - end - - (** Map an operation over two sets of bounds *) - module Map2 : sig - module Monadic (M : Misc_stdlib.Monad.S) : sig - type ('a, 'b, 'c) f = - { f : - 'axis. - axis:'axis Axis.t -> - ('axis, 'a) u -> - ('axis, 'b) u -> - ('axis, 'c) u M.t - } - [@@unboxed] - - val f : ('a, 'b, 'c) f -> 'a t_poly -> 'b t_poly -> 'c t_poly M.t - end - - type ('a, 'b, 'c) f = ('a, 'b, 'c) Monadic(Misc_stdlib.Monad.Identity).f - - val f : ('a, 'b, 'c) f -> 'a t_poly -> 'b t_poly -> 'c t_poly - end - - (** Fold an operation over the bounds to a summary value *) - module Fold : sig - type ('a, 'r) f = { f : 'axis. axis:'axis Axis.t -> ('axis, 'a) u -> 'r } - [@@unboxed] - - (** [combine] should be commutative and associative. *) - val f : ('a, 'r) f -> 'a t_poly -> combine:('r -> 'r -> 'r) -> 'r - end - - (** Fold an operation over two sets of bounds to a summary value *) - module Fold2 : sig - type ('a, 'b, 'r) f = - { f : 'axis. axis:'axis Axis.t -> ('axis, 'a) u -> ('axis, 'b) u -> 'r } - [@@unboxed] - - (** [combine] should be commutative and associative. *) - val f : - ('a, 'b, 'r) f -> - 'a t_poly -> - 'b t_poly -> - combine:('r -> 'r -> 'r) -> - 'r - end - end - - module type S_poly := sig - include S_gen - - type 'a t = 'a t_poly - end - - module type S_mono := sig - include S_gen - - type t = unit t_poly -||||||| ocaml-flambda/flambda-backend:6a83bbad9dd6c86ea5019a84258b04c81aa34a38 -(** A collection with one item for each jkind axis *) -module Axis_collection : sig - module type S_gen := sig - type ('a, 'b) u - - (* This is t_poly instead of t because in some instantiations of this signature, u - ignores its second parameter. In order to avoid needed to apply a useless type - parameter for those instantiations, we define [type t = unit t_poly] in them. In - instantiations where the polymorphism is actually used, we define - [type 'a t = 'a t_poly] *) - type 'a t_poly = - { locality : (Mode.Locality.Const.t, 'a) u; - linearity : (Mode.Linearity.Const.t, 'a) u; - uniqueness : (Mode.Uniqueness.Const.t, 'a) u; - portability : (Mode.Portability.Const.t, 'a) u; - contention : (Mode.Contention.Const.t, 'a) u; - yielding : (Mode.Yielding.Const.t, 'a) u; - externality : (Externality.t, 'a) u; - nullability : (Nullability.t, 'a) u - } - - val get : axis:'a Axis.t -> 'b t_poly -> ('a, 'b) u - - val set : axis:'a Axis.t -> 'b t_poly -> ('a, 'b) u -> 'b t_poly - - (** Create an axis collection by applying the function on each axis *) - module Create : sig - module Monadic (M : Misc.Stdlib.Monad.S) : sig - type 'a f = { f : 'axis. axis:'axis Axis.t -> ('axis, 'a) u M.t } - [@@unboxed] - - val f : 'a f -> 'a t_poly M.t - end - - (** This record type is used to pass a polymorphic function to [create] *) - type 'a f = 'a Monadic(Misc.Stdlib.Monad.Identity).f - - val f : 'a f -> 'a t_poly - end - - (** Map an operation over all the bounds *) - module Map : sig - module Monadic (M : Misc.Stdlib.Monad.S) : sig - type ('a, 'b) f = - { f : 'axis. axis:'axis Axis.t -> ('axis, 'a) u -> ('axis, 'b) u M.t } - [@@unboxed] - - val f : ('a, 'b) f -> 'a t_poly -> 'b t_poly M.t - end - - type ('a, 'b) f = ('a, 'b) Monadic(Misc.Stdlib.Monad.Identity).f - - val f : ('a, 'b) f -> 'a t_poly -> 'b t_poly - end - - module Iter : sig - type 'a f = { f : 'axis. axis:'axis Axis.t -> ('axis, 'a) u -> unit } - [@@unboxed] - - val f : 'a f -> 'a t_poly -> unit - end - - (** Map an operation over two sets of bounds *) - module Map2 : sig - module Monadic (M : Misc.Stdlib.Monad.S) : sig - type ('a, 'b, 'c) f = - { f : - 'axis. - axis:'axis Axis.t -> - ('axis, 'a) u -> - ('axis, 'b) u -> - ('axis, 'c) u M.t - } - [@@unboxed] - - val f : ('a, 'b, 'c) f -> 'a t_poly -> 'b t_poly -> 'c t_poly M.t - end - - type ('a, 'b, 'c) f = ('a, 'b, 'c) Monadic(Misc.Stdlib.Monad.Identity).f - - val f : ('a, 'b, 'c) f -> 'a t_poly -> 'b t_poly -> 'c t_poly - end - - (** Fold an operation over the bounds to a summary value *) - module Fold : sig - type ('a, 'r) f = { f : 'axis. axis:'axis Axis.t -> ('axis, 'a) u -> 'r } - [@@unboxed] - - (** [combine] should be commutative and associative. *) - val f : ('a, 'r) f -> 'a t_poly -> combine:('r -> 'r -> 'r) -> 'r - end - - (** Fold an operation over two sets of bounds to a summary value *) - module Fold2 : sig - type ('a, 'b, 'r) f = - { f : 'axis. axis:'axis Axis.t -> ('axis, 'a) u -> ('axis, 'b) u -> 'r } - [@@unboxed] - - (** [combine] should be commutative and associative. *) - val f : - ('a, 'b, 'r) f -> - 'a t_poly -> - 'b t_poly -> - combine:('r -> 'r -> 'r) -> - 'r - end - end - - module type S_poly := sig - include S_gen - - type 'a t = 'a t_poly - end - - module type S_mono := sig - include S_gen - - type t = unit t_poly -======= (** A collection with one item for each jkind axis. [T] parametizes what element is being held for each axis. *) -module Axis_collection (T : Misc.T1) : sig +module Axis_collection (T : Misc_stdlib.T1) : sig type t = { locality : Mode.Locality.Const.t T.t; linearity : Mode.Linearity.Const.t T.t; @@ -356,119 +111,8 @@ module Axis_collection (T : Misc.T1) : sig module Create_f : sig (** This record type is used to pass a polymorphic function to [create] *) type t = { f : 'a. axis:'a Axis.t -> 'a T.t } ->>>>>>> ocaml-flambda/flambda-backend:db3778f932fc0a2f9d71ba5f9dcf7c76fcc74a63 end -<<<<<<< janestreet/merlin-jst:5.2.0minus-6 - module Indexed_gen (T : Misc_stdlib.T2) : S_poly with type ('a, 'b) u := ('a, 'b) T.t - - module Indexed (T : Misc_stdlib.T1) : S_mono with type ('a, 'b) u := 'a T.t - - module Identity : S_mono with type ('a, 'b) u := 'a - - include S_poly with type ('a, 'b) u := 'b - - val create : f:(axis:Axis.packed -> 'a) -> 'a t - - val get : axis:'ax Axis.t -> 'a t -> 'a - - val set : axis:'ax Axis.t -> 'a t -> 'a -> 'a t - - val mapi : f:(axis:Axis.packed -> 'a -> 'a) -> 'a t -> 'a t - - val map : f:('a -> 'a) -> 'a t -> 'a t - - val fold : - f:(axis:Axis.packed -> 'a -> 'r) -> combine:('r -> 'r -> 'r) -> 'a t -> 'r -end - -module Axis_set : sig - type t - - val empty : t - - val singleton : _ Axis.t -> t - - val is_empty : t -> bool - - val add : t -> _ Axis.t -> t - - val remove : t -> _ Axis.t -> t - - val mem : t -> _ Axis.t -> bool - - val union : t -> t -> t - - val intersection : t -> t -> t - - val diff : t -> t -> t - - val is_subset : t -> t -> bool - - val complement : t -> t - - val to_list : t -> Axis.packed list - - (** Create a [t], specify for each axis whether it should be included *) - val create : f:(axis:Axis.packed -> bool) -> t - - val print : Format.formatter -> t -> unit -||||||| ocaml-flambda/flambda-backend:6a83bbad9dd6c86ea5019a84258b04c81aa34a38 - module Indexed_gen (T : Misc.T2) : S_poly with type ('a, 'b) u := ('a, 'b) T.t - - module Indexed (T : Misc.T1) : S_mono with type ('a, 'b) u := 'a T.t - - module Identity : S_mono with type ('a, 'b) u := 'a - - include S_poly with type ('a, 'b) u := 'b - - val create : f:(axis:Axis.packed -> 'a) -> 'a t - - val get : axis:'ax Axis.t -> 'a t -> 'a - - val set : axis:'ax Axis.t -> 'a t -> 'a -> 'a t - - val mapi : f:(axis:Axis.packed -> 'a -> 'a) -> 'a t -> 'a t - - val map : f:('a -> 'a) -> 'a t -> 'a t - - val fold : - f:(axis:Axis.packed -> 'a -> 'r) -> combine:('r -> 'r -> 'r) -> 'a t -> 'r -end - -module Axis_set : sig - type t - - val empty : t - - val singleton : _ Axis.t -> t - - val is_empty : t -> bool - - val add : t -> _ Axis.t -> t - - val remove : t -> _ Axis.t -> t - - val mem : t -> _ Axis.t -> bool - - val union : t -> t -> t - - val intersection : t -> t -> t - - val diff : t -> t -> t - - val is_subset : t -> t -> bool - - val complement : t -> t - - val to_list : t -> Axis.packed list - - (** Create a [t], specify for each axis whether it should be included *) - val create : f:(axis:Axis.packed -> bool) -> t - - val print : Format.formatter -> t -> unit -======= (** Create an axis collection by applying the function on each axis *) val create : Create_f.t -> t ->>>>>>> ocaml-flambda/flambda-backend:db3778f932fc0a2f9d71ba5f9dcf7c76fcc74a63 end diff --git a/src/ocaml/typing/jkind_types.mli b/src/ocaml/typing/jkind_types.mli index 54684d45e..0b1da8e17 100644 --- a/src/ocaml/typing/jkind_types.mli +++ b/src/ocaml/typing/jkind_types.mli @@ -143,10 +143,10 @@ module Layout_and_axes : sig val sub : ?allow_any_crossing:bool -> - ('layout -> 'layout -> Misc.Le_result.t) -> + ('layout -> 'layout -> Misc_stdlib.Le_result.t) -> ('layout, allowed * 'r) t -> ('layout, 'l * allowed) t -> - Misc.Le_result.t + Misc_stdlib.Le_result.t val format : (Format.formatter -> 'layout -> unit) -> diff --git a/src/ocaml/typing/mode_intf.mli b/src/ocaml/typing/mode_intf.mli index 9f876be05..7ac52b76e 100644 --- a/src/ocaml/typing/mode_intf.mli +++ b/src/ocaml/typing/mode_intf.mli @@ -298,14 +298,6 @@ module type S = sig | Contention : (monadic, Contention.Const.t) t val print : Format.formatter -> ('p, 'r) t -> unit -<<<<<<< janestreet/merlin-jst:5.2.0minus-6 - - val eq : ('p, 'r0) t -> ('p, 'r1) t -> ('r0, 'r1) Misc_stdlib.eq option -||||||| ocaml-flambda/flambda-backend:6a83bbad9dd6c86ea5019a84258b04c81aa34a38 - - val eq : ('p, 'r0) t -> ('p, 'r1) t -> ('r0, 'r1) Misc.eq option -======= ->>>>>>> ocaml-flambda/flambda-backend:db3778f932fc0a2f9d71ba5f9dcf7c76fcc74a63 end module type Mode := sig diff --git a/src/ocaml/typing/oprint.ml b/src/ocaml/typing/oprint.ml index 631f941e8..8d9f56cc0 100644 --- a/src/ocaml/typing/oprint.ml +++ b/src/ocaml/typing/oprint.ml @@ -348,7 +348,7 @@ let print_out_jkind_const ppf ojkind = | Ojkind_const_default -> fprintf ppf "_" | Ojkind_const_abbreviation abbrev -> fprintf ppf "%s" abbrev | Ojkind_const_mod (base, modes) -> - Misc.pp_parens_if nested (fun ppf (base, modes) -> + Misc_stdlib.pp_parens_if nested (fun ppf (base, modes) -> fprintf ppf "%a mod @[%a@]" (pp_element ~nested:true) base (pp_print_list ~pp_sep:(fun ppf () -> fprintf ppf "@ ") @@ -357,7 +357,7 @@ let print_out_jkind_const ppf ojkind = ) ppf (base, modes) | Ojkind_const_product ts -> let pp_sep ppf () = Format.fprintf ppf "@ & " in - Misc.pp_nested_list ~nested ~pp_element ~pp_sep ppf ts + Misc_stdlib.pp_nested_list ~nested ~pp_element ~pp_sep ppf ts | Ojkind_const_with _ | Ojkind_const_kind_of _ -> failwith "XXX unimplemented jkind syntax" in @@ -370,7 +370,7 @@ let print_out_jkind ppf ojkind = | Ojkind_const jkind -> print_out_jkind_const ppf jkind | Ojkind_product ts -> let pp_sep ppf () = Format.fprintf ppf "@ & " in - Misc.pp_nested_list ~nested ~pp_element ~pp_sep ppf ts + Misc_stdlib.pp_nested_list ~nested ~pp_element ~pp_sep ppf ts in pp_element ~nested:false ppf ojkind @@ -659,178 +659,6 @@ and print_out_label ppf (name, mut, arg, gbl) = print_out_type arg print_out_modalities_new m_new -<<<<<<< janestreet/merlin-jst:5.2.0minus-6 -and print_out_jkind_const ppf ojkind = - let rec pp_element ~nested ppf (ojkind : Outcometree.out_jkind_const) = - (* HACK: we strip off the [Ojkind_const_with]s and convert them to a [string string - list] so we can sort them lexicographically, because otherwise the order of printed - [with]s is nondeterministic. This is sad, but we'd need deterministic sorting of - types to work around it. - - CR aspsmith: remove this if we ever add deterministic, semantic type comparison - *) - let rec strip_withs ojkind = - match ojkind with - | Ojkind_const_with (base, ty, modalities) -> - let base, withs = strip_withs base in - let with_ = - Format.asprintf "%a" print_out_type ty - :: (match modalities with - | [] -> [] - | modalities -> "@@" :: modalities) - in - base, with_ :: withs - | base -> base, [] - in - let base, withs = strip_withs ojkind in - (match base with - | Ojkind_const_default -> fprintf ppf "_" - | Ojkind_const_abbreviation abbrev -> fprintf ppf "%s" abbrev - | Ojkind_const_mod (base, modes) -> - let pp_base ppf base = - match base with - | Some base -> fprintf ppf "%a " (pp_element ~nested:true) base - | None -> () - in - Misc_stdlib.pp_parens_if nested (fun ppf (base, modes) -> - fprintf ppf "%amod @[%a@]" pp_base base - (pp_print_list - ~pp_sep:(fun ppf () -> fprintf ppf "@ ") - (fun ppf -> fprintf ppf "%s")) - modes - ) ppf (base, modes) - | Ojkind_const_product ts -> - let pp_sep ppf () = Format.fprintf ppf "@ & " in - Misc_stdlib.pp_nested_list ~nested ~pp_element ~pp_sep ppf ts - | Ojkind_const_with _ -> failwith "XXX unreachable (stripped off earlier)" - | Ojkind_const_kind_of _ -> - failwith "XXX unimplemented jkind syntax"); - let withs = List.sort (List.compare String.compare) withs in - match withs with - | [] -> () - | withs -> - pp_print_list - (fun ppf -> - Format.fprintf ppf "@ @[with %a@]" - (pp_print_list - ~pp_sep:(fun ppf () -> fprintf ppf " ") - (fun ppf -> Format.fprintf ppf "%s"))) - ppf - withs - in - pp_element ~nested:false ppf ojkind - -and print_out_jkind ppf ojkind = - let rec pp_element ~nested ppf ojkind = - match ojkind with - | Ojkind_var v -> fprintf ppf "%s" v - | Ojkind_const jkind -> print_out_jkind_const ppf jkind - | Ojkind_product ts -> - let pp_sep ppf () = Format.fprintf ppf "@ & " in - Misc_stdlib.pp_nested_list ~nested ~pp_element ~pp_sep ppf ts - in - pp_element ~nested:false ppf ojkind - -and print_out_jkind_annot ppf = function - | None -> () - | Some lay -> fprintf ppf "@ : %a" print_out_jkind lay - -and pr_var_jkind ppf (v, l) = match l with - | None -> pr_var ppf v - | Some lay -> fprintf ppf "(%a : %a)" - pr_var v - print_out_jkind lay - -and pr_var_jkinds jks = - print_list pr_var_jkind (fun ppf -> fprintf ppf "@ ") jks - -||||||| ocaml-flambda/flambda-backend:6a83bbad9dd6c86ea5019a84258b04c81aa34a38 -and print_out_jkind_const ppf ojkind = - let rec pp_element ~nested ppf (ojkind : Outcometree.out_jkind_const) = - (* HACK: we strip off the [Ojkind_const_with]s and convert them to a [string string - list] so we can sort them lexicographically, because otherwise the order of printed - [with]s is nondeterministic. This is sad, but we'd need deterministic sorting of - types to work around it. - - CR aspsmith: remove this if we ever add deterministic, semantic type comparison - *) - let rec strip_withs ojkind = - match ojkind with - | Ojkind_const_with (base, ty, modalities) -> - let base, withs = strip_withs base in - let with_ = - Format.asprintf "%a" print_out_type ty - :: (match modalities with - | [] -> [] - | modalities -> "@@" :: modalities) - in - base, with_ :: withs - | base -> base, [] - in - let base, withs = strip_withs ojkind in - (match base with - | Ojkind_const_default -> fprintf ppf "_" - | Ojkind_const_abbreviation abbrev -> fprintf ppf "%s" abbrev - | Ojkind_const_mod (base, modes) -> - let pp_base ppf base = - match base with - | Some base -> fprintf ppf "%a " (pp_element ~nested:true) base - | None -> () - in - Misc.pp_parens_if nested (fun ppf (base, modes) -> - fprintf ppf "%amod @[%a@]" pp_base base - (pp_print_list - ~pp_sep:(fun ppf () -> fprintf ppf "@ ") - (fun ppf -> fprintf ppf "%s")) - modes - ) ppf (base, modes) - | Ojkind_const_product ts -> - let pp_sep ppf () = Format.fprintf ppf "@ & " in - Misc.pp_nested_list ~nested ~pp_element ~pp_sep ppf ts - | Ojkind_const_with _ -> failwith "XXX unreachable (stripped off earlier)" - | Ojkind_const_kind_of _ -> - failwith "XXX unimplemented jkind syntax"); - let withs = List.sort (List.compare String.compare) withs in - match withs with - | [] -> () - | withs -> - pp_print_list - (fun ppf -> - Format.fprintf ppf "@ @[with %a@]" - (pp_print_list - ~pp_sep:(fun ppf () -> fprintf ppf " ") - (fun ppf -> Format.fprintf ppf "%s"))) - ppf - withs - in - pp_element ~nested:false ppf ojkind - -and print_out_jkind ppf ojkind = - let rec pp_element ~nested ppf ojkind = - match ojkind with - | Ojkind_var v -> fprintf ppf "%s" v - | Ojkind_const jkind -> print_out_jkind_const ppf jkind - | Ojkind_product ts -> - let pp_sep ppf () = Format.fprintf ppf "@ & " in - Misc.pp_nested_list ~nested ~pp_element ~pp_sep ppf ts - in - pp_element ~nested:false ppf ojkind - -and print_out_jkind_annot ppf = function - | None -> () - | Some lay -> fprintf ppf "@ : %a" print_out_jkind lay - -and pr_var_jkind ppf (v, l) = match l with - | None -> pr_var ppf v - | Some lay -> fprintf ppf "(%a : %a)" - pr_var v - print_out_jkind lay - -and pr_var_jkinds jks = - print_list pr_var_jkind (fun ppf -> fprintf ppf "@ ") jks - -======= ->>>>>>> ocaml-flambda/flambda-backend:db3778f932fc0a2f9d71ba5f9dcf7c76fcc74a63 let out_label = ref print_out_label let out_modality = ref print_out_modality diff --git a/src/ocaml/typing/typedecl.ml b/src/ocaml/typing/typedecl.ml index 8c85d8bd9..20fd14dd9 100644 --- a/src/ocaml/typing/typedecl.ml +++ b/src/ocaml/typing/typedecl.ml @@ -1492,22 +1492,6 @@ let update_constructor_representation Constructor_mixed shape -<<<<<<< janestreet/merlin-jst:5.2.0minus-6 -let add_types_to_env decls shapes env = - List.fold_right2 - (fun (id, decl) shape env -> - add_type ~long_path:false ~check:true ~shape id decl env) - decls shapes env - -||||||| ocaml-flambda/flambda-backend:6a83bbad9dd6c86ea5019a84258b04c81aa34a38 -let add_types_to_env decls shapes env = - List.fold_right2 - (fun (id, decl) shape env -> - add_type ~check:true ~shape id decl env) - decls shapes env - -======= ->>>>>>> ocaml-flambda/flambda-backend:db3778f932fc0a2f9d71ba5f9dcf7c76fcc74a63 (* This function updates jkind stored in kinds with more accurate jkinds. It is called after the circularity checks and the delayed jkind checks have happened, so we can fully compute jkinds of types. @@ -1746,45 +1730,6 @@ let update_decl_jkind env dpath decl = type_jkind in -<<<<<<< janestreet/merlin-jst:5.2.0minus-6 - (* Check the layout here, both to check it, but more importantly to fill in any sort - variables in the original decl's jkind, which might be shared with the jkinds of - other types in a (maybe mutually recursive) type declaration. See Note [Default - jkinds in transl_declaration]) *) - match - Jkind.Layout.sub new_decl.type_jkind.jkind.layout decl.type_jkind.jkind.layout - with - | Not_le reason -> - raise (Error ( - decl.type_loc, - Jkind_mismatch_of_path ( - Pident id, - Jkind.Violation.of_ ( - Not_a_subjkind ( - new_decl.type_jkind, decl.type_jkind, Misc_stdlib.Nonempty_list.to_list reason))))) - | Less | Equal -> new_decl - -let update_decls_jkind_reason env decls = -||||||| ocaml-flambda/flambda-backend:6a83bbad9dd6c86ea5019a84258b04c81aa34a38 - (* Check the layout here, both to check it, but more importantly to fill in any sort - variables in the original decl's jkind, which might be shared with the jkinds of - other types in a (maybe mutually recursive) type declaration. See Note [Default - jkinds in transl_declaration]) *) - match - Jkind.Layout.sub new_decl.type_jkind.jkind.layout decl.type_jkind.jkind.layout - with - | Not_le reason -> - raise (Error ( - decl.type_loc, - Jkind_mismatch_of_path ( - Pident id, - Jkind.Violation.of_ ( - Not_a_subjkind ( - new_decl.type_jkind, decl.type_jkind, Nonempty_list.to_list reason))))) - | Less | Equal -> new_decl - -let update_decls_jkind_reason env decls = -======= let allow_any_crossing = Builtin_attributes.has_unsafe_allow_any_mode_crossing decl.type_attributes in @@ -1837,7 +1782,6 @@ let update_decls_jkind_reason env decls = else new_decl let update_decls_jkind_reason decls = ->>>>>>> ocaml-flambda/flambda-backend:db3778f932fc0a2f9d71ba5f9dcf7c76fcc74a63 List.map (fun (id, decl) -> let update_generalized = @@ -2371,216 +2315,11 @@ let check_redefined_unit (td: Parsetree.type_declaration) = | _ -> () -<<<<<<< janestreet/merlin-jst:5.2.0minus-6 -(* Note [Quality of jkinds during inference] - ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - - We're careful during inference of jkinds for type declarations not to ever call - [Jkind.mark_best] on a jkind before we've added all the various pieces of information - to the jkind (the full layout, and all the with-bounds). Early in translation, we give - "dummy" kinds to types, without any with bounds, and have been careful not to mark - these as having a [Best] quality. Later on, in [update_decls_jkind], once we've learned - everything there is to know about a type declaration, we mark the new kind as [Best]. - It's important to do this /before/ [normalize_decl_jkinds], so that mutually recursive - type declarations can look up each others' (best, though perhaps not normalized!) - jkind. -*) - -(* Normalize the jkinds in a list of (potentially mutually recursive) type declarations *) -let normalize_decl_jkinds env shapes decls = - (* Add the types, with non-normalized kinds, to the environment to start, so that eg - types can look up their own (potentially non-normalized) kinds *) - let env = - List.fold_right2 - (fun (id, _, _, decl) shape env -> - add_type ~long_path:false ~check:true ~shape id decl env) - decls shapes env - in - Misc_stdlib.List.fold_left_map2 - (fun env (id, original_jkind, allow_any_crossing, decl) shape -> - let normalized_jkind = - Jkind.normalize - ~mode:Require_best - ~jkind_of_type:(fun ty -> Some (Ctype.type_jkind env ty)) - decl.type_jkind - in - let decl = { decl with type_jkind = normalized_jkind } in - (* Add the decl with the normalized kind back to the environment, so that later - kinds don't have to normalize this kind if they mention this type in their - with-bounds *) - let env = add_type ~long_path:false ~check:false ~shape:shape id decl env in - if normalized_jkind != original_jkind then begin - (* If the jkind has changed, check that it is a subjkind of the original jkind - that we computed, either from a user-written annotation or as a dummy jkind. - - (see Note [Default jkinds in transl_declaration]) *) - (* CR layouts v2.8: it almost definitely has changed, but also we probably trust - the new jkind (we really only want this check here to check against the - user-written annotation). We might be able to do a better job here and save - some work. *) - let jkind_of_type ty = Some (Ctype.type_jkind_purely env ty) in - let type_equal = Ctype.type_equal env in - match - (* CR layouts v2.8: Consider making a function that doesn't compute - histories for this use-case, which doesn't need it. *) - Jkind.sub_jkind_l - ~type_equal - ~jkind_of_type - ~allow_any_crossing - decl.type_jkind - original_jkind - with - | Ok _ -> - if allow_any_crossing then - (* If the user is asking us to allow any crossing, we use the modal bounds from - the annotation rather than the modal bounds inferred from the type_kind. - However, we /only/ take the modal bounds, not the layout - because we still - want to be able to eg locally use a type declared as layout [any] as [value] - if that's its actual layout! *) - let type_jkind = - match - Jkind.unsafely_set_mod_bounds - ~from:original_jkind - decl.type_jkind - with - | Ok jkind -> jkind - | Error () -> - raise(Error(decl.type_loc, Unsafe_mode_crossing_with_with_bounds)) - in - let umc = - Some { modal_upper_bounds = - Jkind.get_modal_upper_bounds ~jkind_of_type type_jkind; - modal_lower_bounds = - Jkind.get_modal_lower_bounds ~jkind_of_type type_jkind } - in - let type_kind = - match decl.type_kind with - | Type_abstract _ | Type_open -> assert false (* Checked above *) - | Type_record (lbls, rep, _) -> - Type_record (lbls, rep, umc) - | Type_record_unboxed_product (lbls, rep, _) -> - Type_record_unboxed_product (lbls, rep, umc) - | Type_variant (cs, rep, _) -> - Type_variant (cs, rep, umc) - in - env, (id, { decl with type_jkind; type_kind; }) - else env, (id, decl) - | Error err -> - raise(Error(decl.type_loc, Jkind_mismatch_of_path (Pident id, err))) - end - else env, (id, decl)) - env - decls - shapes -||||||| ocaml-flambda/flambda-backend:6a83bbad9dd6c86ea5019a84258b04c81aa34a38 - -(* Note [Quality of jkinds during inference] - ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - - We're careful during inference of jkinds for type declarations not to ever call - [Jkind.mark_best] on a jkind before we've added all the various pieces of information - to the jkind (the full layout, and all the with-bounds). Early in translation, we give - "dummy" kinds to types, without any with bounds, and have been careful not to mark - these as having a [Best] quality. Later on, in [update_decls_jkind], once we've learned - everything there is to know about a type declaration, we mark the new kind as [Best]. - It's important to do this /before/ [normalize_decl_jkinds], so that mutually recursive - type declarations can look up each others' (best, though perhaps not normalized!) - jkind. -*) - -(* Normalize the jkinds in a list of (potentially mutually recursive) type declarations *) -let normalize_decl_jkinds env shapes decls = - (* Add the types, with non-normalized kinds, to the environment to start, so that eg - types can look up their own (potentially non-normalized) kinds *) - let env = - List.fold_right2 - (fun (id, _, _, decl) shape env -> - add_type ~check:true ~shape id decl env) - decls shapes env - in - Misc.Stdlib.List.fold_left_map2 - (fun env (id, original_jkind, allow_any_crossing, decl) shape -> - let normalized_jkind = - Jkind.normalize - ~mode:Require_best - ~jkind_of_type:(fun ty -> Some (Ctype.type_jkind env ty)) - decl.type_jkind - in - let decl = { decl with type_jkind = normalized_jkind } in - (* Add the decl with the normalized kind back to the environment, so that later - kinds don't have to normalize this kind if they mention this type in their - with-bounds *) - let env = add_type ~check:false ~shape:shape id decl env in - if normalized_jkind != original_jkind then begin - (* If the jkind has changed, check that it is a subjkind of the original jkind - that we computed, either from a user-written annotation or as a dummy jkind. - - (see Note [Default jkinds in transl_declaration]) *) - (* CR layouts v2.8: it almost definitely has changed, but also we probably trust - the new jkind (we really only want this check here to check against the - user-written annotation). We might be able to do a better job here and save - some work. *) - let jkind_of_type ty = Some (Ctype.type_jkind_purely env ty) in - let type_equal = Ctype.type_equal env in - match - (* CR layouts v2.8: Consider making a function that doesn't compute - histories for this use-case, which doesn't need it. *) - Jkind.sub_jkind_l - ~type_equal - ~jkind_of_type - ~allow_any_crossing - decl.type_jkind - original_jkind - with - | Ok _ -> - if allow_any_crossing then - (* If the user is asking us to allow any crossing, we use the modal bounds from - the annotation rather than the modal bounds inferred from the type_kind. - However, we /only/ take the modal bounds, not the layout - because we still - want to be able to eg locally use a type declared as layout [any] as [value] - if that's its actual layout! *) - let type_jkind = - match - Jkind.unsafely_set_mod_bounds - ~from:original_jkind - decl.type_jkind - with - | Ok jkind -> jkind - | Error () -> - raise(Error(decl.type_loc, Unsafe_mode_crossing_with_with_bounds)) - in - let umc = - Some { modal_upper_bounds = - Jkind.get_modal_upper_bounds ~jkind_of_type type_jkind; - modal_lower_bounds = - Jkind.get_modal_lower_bounds ~jkind_of_type type_jkind } - in - let type_kind = - match decl.type_kind with - | Type_abstract _ | Type_open -> assert false (* Checked above *) - | Type_record (lbls, rep, _) -> - Type_record (lbls, rep, umc) - | Type_record_unboxed_product (lbls, rep, _) -> - Type_record_unboxed_product (lbls, rep, umc) - | Type_variant (cs, rep, _) -> - Type_variant (cs, rep, umc) - in - env, (id, { decl with type_jkind; type_kind; }) - else env, (id, decl) - | Error err -> - raise(Error(decl.type_loc, Jkind_mismatch_of_path (Pident id, err))) - end - else env, (id, decl)) - env - decls - shapes -======= let add_types_to_env decls shapes env = List.fold_right2 (fun (id, decl) shape env -> - add_type ~check:true ~shape id decl env) + add_type ~long_path:false ~check:true ~shape id decl env) decls shapes env ->>>>>>> ocaml-flambda/flambda-backend:db3778f932fc0a2f9d71ba5f9dcf7c76fcc74a63 (* Translate a set of type declarations, mutually recursive or not *) let transl_type_decl env rec_flag sdecl_list = diff --git a/src/ocaml/typing/types.ml b/src/ocaml/typing/types.ml index b4766b3dc..f9c04209a 100644 --- a/src/ocaml/typing/types.ml +++ b/src/ocaml/typing/types.ml @@ -28,24 +28,6 @@ let is_mutable = function (* Type expressions for the core language *) -<<<<<<< janestreet/merlin-jst:5.2.0minus-6 -module Jkind_mod_bounds = - Jkind_axis.Axis_collection.Indexed (Misc_stdlib.Monad.Identity) - -module With_bounds_type_info = struct - type t = {relevant_axes : Jkind_axis.Axis_set.t } [@@unboxed] -end - -||||||| ocaml-flambda/flambda-backend:6a83bbad9dd6c86ea5019a84258b04c81aa34a38 -module Jkind_mod_bounds = - Jkind_axis.Axis_collection.Indexed (Misc.Stdlib.Monad.Identity) - -module With_bounds_type_info = struct - type t = {relevant_axes : Jkind_axis.Axis_set.t } [@@unboxed] -end - -======= ->>>>>>> ocaml-flambda/flambda-backend:db3778f932fc0a2f9d71ba5f9dcf7c76fcc74a63 type transient_expr = { mutable desc: type_desc; mutable level: int; diff --git a/src/ocaml/typing/types.mli b/src/ocaml/typing/types.mli index 0020b40cc..9c0681910 100644 --- a/src/ocaml/typing/types.mli +++ b/src/ocaml/typing/types.mli @@ -67,32 +67,6 @@ val is_mutable : mutability -> bool Note on mutability: TBD. *) -<<<<<<< janestreet/merlin-jst:5.2.0minus-6 - -(** The mod-bounds of a jkind *) -module Jkind_mod_bounds : - module type of Jkind_axis.Axis_collection.Indexed (Misc_stdlib.Monad.Identity) - -(** Information tracked about an individual type within the with-bounds for a jkind *) -module With_bounds_type_info : sig - (** The axes that the with-bound applies to *) - type t = { relevant_axes : Jkind_axis.Axis_set.t } [@@unboxed] -end - -||||||| ocaml-flambda/flambda-backend:6a83bbad9dd6c86ea5019a84258b04c81aa34a38 - -(** The mod-bounds of a jkind *) -module Jkind_mod_bounds : - module type of Jkind_axis.Axis_collection.Indexed (Misc.Stdlib.Monad.Identity) - -(** Information tracked about an individual type within the with-bounds for a jkind *) -module With_bounds_type_info : sig - (** The axes that the with-bound applies to *) - type t = { relevant_axes : Jkind_axis.Axis_set.t } [@@unboxed] -end - -======= ->>>>>>> ocaml-flambda/flambda-backend:db3778f932fc0a2f9d71ba5f9dcf7c76fcc74a63 type type_expr type row_desc type row_field From 0b0c3707b3d3f271e89f3afb705e371fa3d423e4 Mon Sep 17 00:00:00 2001 From: Liam Stevenson Date: Mon, 17 Feb 2025 14:15:09 -0500 Subject: [PATCH 22/25] Revert test --- tests/test-dirs/type-enclosing/types.t/run.t | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/test-dirs/type-enclosing/types.t/run.t b/tests/test-dirs/type-enclosing/types.t/run.t index dbe9b3fa3..4a71cbdb5 100644 --- a/tests/test-dirs/type-enclosing/types.t/run.t +++ b/tests/test-dirs/type-enclosing/types.t/run.t @@ -113,7 +113,7 @@ FIXME: A type with a type param shouldn't equal itself - aliasing a list type } ] -Print inferred kind of a type with higher verbosity +Same result regardless of verbosity: $ $MERLIN single type-enclosing -short-paths -position 11:9 -verbosity 1 \ > -filename ./types.ml < ./types.ml | jq ".value" @@ -127,7 +127,7 @@ Print inferred kind of a type with higher verbosity "line": 11, "col": 19 }, - "type": "type 'a l : immutable_data = 'a l", + "type": "type 'a l = 'a l", "tail": "no" } ] From ce129f339c52f71c703c458247b99fb2fd7afe01 Mon Sep 17 00:00:00 2001 From: Liam Stevenson Date: Tue, 18 Feb 2025 09:09:58 -0500 Subject: [PATCH 23/25] Remove unused declaration --- src/ocaml/typing/jkind_axis.ml | 1 - 1 file changed, 1 deletion(-) diff --git a/src/ocaml/typing/jkind_axis.ml b/src/ocaml/typing/jkind_axis.ml index 706fa2c84..8aa904288 100644 --- a/src/ocaml/typing/jkind_axis.ml +++ b/src/ocaml/typing/jkind_axis.ml @@ -14,7 +14,6 @@ (* Merlin-specific: change some module paths to match the compiler *) module Misc = struct - module Stdlib = Misc_stdlib include Misc_stdlib end From 62ddffbd24103671f90e1386bcf49699ad6af14c Mon Sep 17 00:00:00 2001 From: Liam Stevenson Date: Tue, 18 Feb 2025 09:20:59 -0500 Subject: [PATCH 24/25] Remove unused module alias in ctype --- src/ocaml/typing/ctype.ml | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/ocaml/typing/ctype.ml b/src/ocaml/typing/ctype.ml index ee0d9a481..1964c4f31 100644 --- a/src/ocaml/typing/ctype.ml +++ b/src/ocaml/typing/ctype.ml @@ -23,8 +23,6 @@ open Errortrace open Mode open Local_store -module Nonempty_list = Misc_stdlib.Nonempty_list - (* Type manipulation after type inference ====================================== From 9da2dda534c99f9899d2efdbe3c98cd1c13701a5 Mon Sep 17 00:00:00 2001 From: Liam Stevenson Date: Tue, 18 Feb 2025 11:05:41 -0500 Subject: [PATCH 25/25] Bump setup-ocaml version --- .github/workflows/flambda-backend.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/flambda-backend.yml b/.github/workflows/flambda-backend.yml index 579f5f314..0bf827289 100644 --- a/.github/workflows/flambda-backend.yml +++ b/.github/workflows/flambda-backend.yml @@ -44,7 +44,7 @@ jobs: ocaml-compiler: ${{ matrix.ocaml-compiler }} - name: Cache flambda-backend build - uses: actions/cache@v2 + uses: actions/cache@v3 id: cache with: path: ${{ github.workspace }}/flambda-backend/_install